diff --git a/lakemeter/.env.example b/lakemeter/.env.example new file mode 100644 index 00000000..e18dae63 --- /dev/null +++ b/lakemeter/.env.example @@ -0,0 +1,19 @@ +# Lakemeter App — Environment Variables +# Copy this to backend/.env and fill in your values. + +# ── Database Connection ─────────────────────────────────────────────────────── +# Option 1: Direct PostgreSQL URL (local development) +DATABASE_URL=postgresql://lakemeter_sync_role:YOUR_PASSWORD@YOUR_LAKEBASE_HOST:5432/lakemeter_pricing?sslmode=require + +# Option 2: Databricks OAuth (production — set by Databricks Apps) +# DATABRICKS_HOST=https://your-workspace.cloud.databricks.com +# DATABRICKS_SECRETS_SCOPE=lakemeter-credentials +# LAKEBASE_INSTANCE_NAME=your-lakebase-instance + +# ── Application Settings ────────────────────────────────────────────────────── +ENVIRONMENT=development +# CORS_ORIGINS=http://localhost:5173,http://localhost:3000 + +# ── AI Assistant (optional) ─────────────────────────────────────────────────── +# DATABRICKS_TOKEN=your-databricks-token +# FMAPI_MODEL=databricks-claude-sonnet-4 diff --git a/lakemeter/.gitignore b/lakemeter/.gitignore new file mode 100644 index 00000000..91e6ffba --- /dev/null +++ b/lakemeter/.gitignore @@ -0,0 +1,57 @@ +# Dependencies +node_modules/ +__pycache__/ +*.pyc +.pytest_cache/ +*.egg-info/ + +# Environment +.env +.env.local +.env.*.local +*.env + +# Build outputs +# dist/ - Uncommenting to include frontend build in repo for Databricks deployment +build/ +*.egg +.next/ + +# IDE & AI tools +.idea/ +.vscode/ +.claude/ +*.swp +*.swo +.DS_Store + +# Databricks workspace metadata +.databricks/ + +# Harness (build agent artifacts) +harness/ + +# Logs +*.log +npm-debug.log* + +# Testing +coverage/ +.coverage +htmlcov/ +test_results/ +test_screenshots/ +*_TEST_REPORT.md +*_RESULTS.md + +# Virtual environments +venv/ +.venv/ +env/ + +# Misc +*.bak +*.tmp + +scripts/app_source/backend/ +scripts/pricing_data/ diff --git a/lakemeter/README.md b/lakemeter/README.md new file mode 100644 index 00000000..881a634b --- /dev/null +++ b/lakemeter/README.md @@ -0,0 +1,91 @@ +# Lakemeter + +A Databricks cost estimation tool that runs as a **Databricks App** with built-in SSO authentication. + +Create, manage, and export detailed pricing estimates for 16 Databricks workload types across AWS, Azure, and GCP. + +![Lakemeter home page](/docs-site/static/img/home-page.png) + +## Features + +- **16 workload types** — Jobs, All-Purpose, DBSQL, DLT, Model Serving, FMAPI, Vector Search, Lakebase, Databricks Apps, AI Parse, Shutterstock ImageAI +- **AI assistant** — Describe your workload in natural language, review the suggestion, and accept with one click +- **Excel export** — Full cost breakdowns with SKU details, discount calculations, and VM pricing +- **Multi-cloud** — AWS, Azure, and GCP with region-specific pricing +- **One-command install** — Provisions Lakebase, loads pricing data, and deploys the app automatically + +## Quick Start + +```bash +git clone https://github.com/steven-tan_data/lakemeter-opensource.git +cd lakemeter-opensource + +./scripts/install.sh --profile +``` + +The installer provisions everything in ~15 minutes. You only need a [Databricks CLI](https://docs.databricks.com/aws/en/dev-tools/cli/profiles.html) configured with a workspace profile. + +## Documentation + +Full documentation is available at **[cheeyutan.github.io/lakemeter-opensource](https://cheeyutan.github.io/lakemeter-opensource/)**. + +- [User Guide](https://cheeyutan.github.io/lakemeter-opensource/user-guide/overview) — How to create estimates, configure workloads, use the AI assistant, and export +- [Admin Guide](https://cheeyutan.github.io/lakemeter-opensource/admin-guide/deployment) — Installation, deployment inventory, and API reference +- [Changelog](https://cheeyutan.github.io/lakemeter-opensource/changelog) — Release history + +## Tech Stack + +| Layer | Technology | +|-------|-----------| +| Frontend | React, TypeScript, Tailwind CSS, Vite | +| Backend | FastAPI, SQLAlchemy, Pydantic | +| Database | Lakebase (managed PostgreSQL on Databricks) | +| AI | Claude via Databricks Foundation Model APIs | +| Hosting | Databricks Apps (SSO, managed compute) | + +## Licensing + +Copyright (2026) Databricks, Inc. This Software includes software developed at Databricks (https://www.databricks.com/) and its use is subject to the included LICENSE file. + +### Backend Dependencies (Python) + +| Library | Purpose | License | Source | +|---------|---------|---------|--------| +| fastapi | Web framework for building APIs | MIT | [GitHub: fastapi/fastapi](https://github.com/fastapi/fastapi) | +| uvicorn | ASGI server for FastAPI | BSD-3-Clause | [GitHub: encode/uvicorn](https://github.com/encode/uvicorn) | +| sqlalchemy | SQL toolkit and ORM | MIT | [GitHub: sqlalchemy/sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | +| psycopg2-binary | PostgreSQL database adapter | LGPL | [GitHub: psycopg/psycopg2](https://github.com/psycopg/psycopg2) | +| pydantic | Data validation using Python type hints | MIT | [GitHub: pydantic/pydantic](https://github.com/pydantic/pydantic) | +| pydantic-settings | Settings management for Pydantic | MIT | [GitHub: pydantic/pydantic-settings](https://github.com/pydantic/pydantic-settings) | +| python-multipart | Streaming multipart parser | Apache-2.0 | [GitHub: Kludex/python-multipart](https://github.com/Kludex/python-multipart) | +| xlsxwriter | Excel XLSX file creation | BSD-2-Clause | [GitHub: jmcnamara/XlsxWriter](https://github.com/jmcnamara/XlsxWriter) | +| python-jose | JOSE implementation (JWT) | MIT | [GitHub: mpdavis/python-jose](https://github.com/mpdavis/python-jose) | +| passlib | Password hashing framework | BSD-3-Clause | [GitHub: glic3rern/passlib](https://github.com/glic3rern/passlib) | +| python-dotenv | Read .env files | BSD-3-Clause | [GitHub: theskumar/python-dotenv](https://github.com/theskumar/python-dotenv) | +| cachetools | Extensible memoizing collections | MIT | [GitHub: tkem/cachetools](https://github.com/tkem/cachetools) | +| databricks-sdk | Databricks SDK for Python | Databricks | [GitHub: databricks/databricks-sdk-py](https://github.com/databricks/databricks-sdk-py) | + +### Frontend Dependencies (Node.js) + +| Library | Purpose | License | Source | +|---------|---------|---------|--------| +| react | UI component library | MIT | [GitHub: facebook/react](https://github.com/facebook/react) | +| react-dom | React DOM rendering | MIT | [GitHub: facebook/react](https://github.com/facebook/react) | +| react-router-dom | Client-side routing | MIT | [GitHub: remix-run/react-router](https://github.com/remix-run/react-router) | +| axios | HTTP client | MIT | [GitHub: axios/axios](https://github.com/axios/axios) | +| zustand | State management | MIT | [GitHub: pmndrs/zustand](https://github.com/pmndrs/zustand) | +| framer-motion | Animation library | MIT | [GitHub: framer/motion](https://github.com/framer/motion) | +| clsx | Utility for constructing className strings | MIT | [GitHub: lukeed/clsx](https://github.com/lukeed/clsx) | +| file-saver | Client-side file saving | MIT | [GitHub: eligrey/FileSaver.js](https://github.com/eligrey/FileSaver.js) | +| react-hot-toast | Toast notifications | MIT | [GitHub: timolins/react-hot-toast](https://github.com/timolins/react-hot-toast) | +| react-markdown | Markdown renderer for React | MIT | [GitHub: remarkjs/react-markdown](https://github.com/remarkjs/react-markdown) | +| remark-gfm | GitHub Flavored Markdown support | MIT | [GitHub: remarkjs/remark-gfm](https://github.com/remarkjs/remark-gfm) | +| @headlessui/react | Unstyled accessible UI components | MIT | [GitHub: tailwindlabs/headlessui](https://github.com/tailwindlabs/headlessui) | +| @heroicons/react | SVG icon set | MIT | [GitHub: tailwindlabs/heroicons](https://github.com/tailwindlabs/heroicons) | +| @dnd-kit/core | Drag and drop toolkit | MIT | [GitHub: clauderic/dnd-kit](https://github.com/clauderic/dnd-kit) | +| @dnd-kit/sortable | Sortable preset for dnd-kit | MIT | [GitHub: clauderic/dnd-kit](https://github.com/clauderic/dnd-kit) | +| @dnd-kit/modifiers | Modifiers for dnd-kit | MIT | [GitHub: clauderic/dnd-kit](https://github.com/clauderic/dnd-kit) | +| @dnd-kit/utilities | Utilities for dnd-kit | MIT | [GitHub: clauderic/dnd-kit](https://github.com/clauderic/dnd-kit) | +| typescript | TypeScript language (dev) | Apache-2.0 | [GitHub: microsoft/TypeScript](https://github.com/microsoft/TypeScript) | +| tailwindcss | Utility-first CSS framework (dev) | MIT | [GitHub: tailwindlabs/tailwindcss](https://github.com/tailwindlabs/tailwindcss) | +| vite | Frontend build tool (dev) | MIT | [GitHub: vitejs/vite](https://github.com/vitejs/vite) | diff --git a/lakemeter/app.yaml b/lakemeter/app.yaml new file mode 100644 index 00000000..26ee0a02 --- /dev/null +++ b/lakemeter/app.yaml @@ -0,0 +1,37 @@ +# Databricks App Configuration — generated by install_lakemeter.py +# Instance: lakemeter-customer | Generated: 2026-04-05T08:42:14 + +command: + - "/bin/bash" + - "-c" + - | + cd backend && ../.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port ${DATABRICKS_APP_PORT:-8000} + +env: + # App environment + - name: "ENVIRONMENT" + value: "production" + - name: "CORS_ORIGINS" + value: "" + + # Note: DATABRICKS_HOST, DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET are + # auto-injected by the Databricks Apps platform. The app's built-in SP + # handles all authentication (Lakebase OAuth, model serving, etc.). + + # Lakebase database configuration + - name: "LAKEBASE_INSTANCE_NAME" + valueFrom: "lakemeter-lakebase-instance" + - name: "DB_HOST" + valueFrom: "lakemeter-db-host" + - name: "DB_USER" + valueFrom: "lakemeter-db-user" + - name: "DB_NAME" + valueFrom: "lakemeter-db-name" + - name: "DB_PORT" + value: "5432" + - name: "DB_SSLMODE" + value: "require" + + # AI Assistant (Claude) model serving endpoint + - name: "CLAUDE_MODEL_ENDPOINT" + valueFrom: "lakemeter-claude-endpoint" diff --git a/lakemeter/backend/README.md b/lakemeter/backend/README.md new file mode 100644 index 00000000..19004a5e --- /dev/null +++ b/lakemeter/backend/README.md @@ -0,0 +1,75 @@ +# Lakemeter Backend + +FastAPI backend for the Databricks Pricing Calculator. + +## Setup + +1. Create a virtual environment: +```bash +python -m venv venv +source venv/bin/activate # On Windows: venv\Scripts\activate +``` + +2. Install dependencies: +```bash +pip install -r requirements.txt +``` + +3. Configure environment variables: +```bash +cp .env.example .env +# Edit .env with your database credentials +``` + +4. Run the development server: +```bash +uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 +``` + +## API Documentation + +Once running, visit: +- Swagger UI: http://localhost:8000/docs +- ReDoc: http://localhost:8000/redoc + +## Database + +The backend connects to a Databricks Lakebase (PostgreSQL-compatible) database with the following schema: + +- `lakemeter.users` - User accounts +- `lakemeter.estimates` - Pricing estimates +- `lakemeter.line_items` - Individual workload configurations +- `lakemeter.templates` - Estimate templates +- `lakemeter.ref_workload_types` - Reference workload type configurations +- `lakemeter.sharing` - Estimate sharing +- `lakemeter.conversation_messages` - AI conversation history +- `lakemeter.decision_records` - Decision tracking + +## Key Endpoints + +### Estimates +- `GET /api/v1/estimates` - List all estimates +- `POST /api/v1/estimates` - Create new estimate +- `GET /api/v1/estimates/{id}` - Get estimate details +- `PUT /api/v1/estimates/{id}` - Update estimate +- `DELETE /api/v1/estimates/{id}` - Delete estimate +- `POST /api/v1/estimates/{id}/duplicate` - Duplicate estimate + +### Line Items +- `GET /api/v1/line-items/estimate/{id}` - List line items for estimate +- `POST /api/v1/line-items` - Create line item +- `PUT /api/v1/line-items/{id}` - Update line item +- `DELETE /api/v1/line-items/{id}` - Delete line item + +### Export +- `GET /api/v1/export/estimate/{id}/excel` - Export estimate to Excel +- `GET /api/v1/export/estimates/excel` - Export all estimates summary + +### Reference Data +- `GET /api/v1/reference/clouds` - Cloud providers and regions +- `GET /api/v1/reference/instance-types/{cloud}` - Instance types by cloud +- `GET /api/v1/reference/dbsql-sizes` - SQL Warehouse sizes +- `GET /api/v1/reference/dlt-editions` - DLT editions +- `GET /api/v1/reference/fmapi-models` - Foundation models + + diff --git a/lakemeter/backend/app.yaml b/lakemeter/backend/app.yaml new file mode 100644 index 00000000..cf562575 --- /dev/null +++ b/lakemeter/backend/app.yaml @@ -0,0 +1,39 @@ +# Databricks App Configuration +# Single combined app serving both frontend (static) and backend (API) + +command: + - "/bin/bash" + - "-c" + - "PYTHONPATH=. uvicorn app.main:app --host 0.0.0.0 --port 8000" + +env: + # Environment flag - controls logging verbosity and docs visibility + - name: "ENVIRONMENT" + value: "production" + + # Database connection (using Databricks-managed secrets) + - name: "DATABRICKS_HOST" + value: "https://fe-vm-lakemeter.cloud.databricks.com" + - name: "DATABRICKS_SECRETS_SCOPE" + valueFrom: "lakemeter-secrets-scope" + - name: "LAKEBASE_INSTANCE_NAME" + valueFrom: "lakemeter-lakebase-instance" + - name: "DB_HOST" + valueFrom: "lakemeter-db-host" + - name: "DB_USER" + valueFrom: "lakemeter-db-user" + - name: "DB_NAME" + valueFrom: "lakemeter-db-name" + - name: "SP_CLIENT_ID_KEY" + value: "sp_clientid" + - name: "SP_SECRET_KEY" + value: "sp_secret" + + # CORS - empty for same-origin (combined deployment) + - name: "CORS_ORIGINS" + value: "" + +# Resource allocation (optional - uses defaults if not specified) +# resources: +# num_cpus: 1 +# memory_mb: 2048 diff --git a/lakemeter/backend/app/__init__.py b/lakemeter/backend/app/__init__.py new file mode 100644 index 00000000..0e7bd5e9 --- /dev/null +++ b/lakemeter/backend/app/__init__.py @@ -0,0 +1,3 @@ +# Lakemeter Backend Application + + diff --git a/lakemeter/backend/app/auth/__init__.py b/lakemeter/backend/app/auth/__init__.py new file mode 100644 index 00000000..fc6bf6b6 --- /dev/null +++ b/lakemeter/backend/app/auth/__init__.py @@ -0,0 +1,20 @@ +"""Authentication module.""" +from app.auth.databricks_auth import ( + get_current_user, + get_optional_user, + get_or_create_user, + get_user_from_headers, + FORWARDED_EMAIL_HEADER, + FORWARDED_USER_HEADER, + FORWARDED_ACCESS_TOKEN_HEADER +) + +__all__ = [ + "get_current_user", + "get_optional_user", + "get_or_create_user", + "get_user_from_headers", + "FORWARDED_EMAIL_HEADER", + "FORWARDED_USER_HEADER", + "FORWARDED_ACCESS_TOKEN_HEADER" +] diff --git a/lakemeter/backend/app/auth/databricks_auth.py b/lakemeter/backend/app/auth/databricks_auth.py new file mode 100644 index 00000000..477234ce --- /dev/null +++ b/lakemeter/backend/app/auth/databricks_auth.py @@ -0,0 +1,203 @@ +""" +Databricks Apps Authentication + +When deployed as a Databricks App, the platform handles user authentication. +User information is passed via HTTP headers: +- X-Forwarded-Email: User's email address +- X-Forwarded-User: User's display name +- X-Forwarded-Access-Token: OAuth token (if needed for API calls) + +For local development, you can: +1. Set LOCAL_DEV_EMAIL env var to simulate a user +2. Pass X-Forwarded-Email header manually +""" +import os +from datetime import datetime +from typing import Optional, TYPE_CHECKING, Generator +from uuid import uuid4 +from dotenv import load_dotenv +from fastapi import Request, HTTPException, Depends +from sqlalchemy.orm import Session + +from app.config import log_info + +# Load .env before reading env vars at module level +load_dotenv() + +# Import User model only for type checking to avoid circular import +if TYPE_CHECKING: + from app.models.user import User + + +# Header names used by Databricks Apps (for backwards compatibility exports) +FORWARDED_EMAIL_HEADER = "X-Forwarded-Email" +FORWARDED_USER_HEADER = "X-Forwarded-User" +FORWARDED_ACCESS_TOKEN_HEADER = "X-Forwarded-Access-Token" + +# Extended header list (check both cases for flexibility) +EMAIL_HEADERS = [ + "X-Forwarded-Email", + "x-forwarded-email", + "X-Forwarded-Preferred-Username", + "x-forwarded-preferred-username", +] +USER_HEADERS = [ + "X-Forwarded-User", + "x-forwarded-user", + "X-Forwarded-Name", + "x-forwarded-name", +] + +# Environment variable for local development +LOCAL_DEV_EMAIL = os.getenv("LOCAL_DEV_EMAIL") +ENVIRONMENT = os.getenv("ENVIRONMENT", "local") + + +def get_user_from_headers(request: Request) -> tuple[Optional[str], Optional[str]]: + """ + Extract user info from request headers. + + Returns: + Tuple of (email, display_name) + """ + email = None + display_name = None + + # Try multiple possible header names (Databricks Apps may use different ones) + for header in EMAIL_HEADERS: + email = request.headers.get(header) + if email: + break + + for header in USER_HEADERS: + display_name = request.headers.get(header) + if display_name: + break + + # Fallback to local dev email if set (for local development) + if not email and LOCAL_DEV_EMAIL: + email = LOCAL_DEV_EMAIL + display_name = LOCAL_DEV_EMAIL.split("@")[0] + + return email, display_name + + +def debug_headers(request: Request) -> dict: + """Return all headers for debugging auth issues.""" + return { + "all_headers": dict(request.headers), + "email_found": get_user_from_headers(request)[0], + "environment": ENVIRONMENT, + "local_dev_email_set": bool(LOCAL_DEV_EMAIL), + } + + +def get_or_create_user(db: Session, email: str, full_name: Optional[str] = None) -> "User": + """ + Get existing user by email or create a new one. + + Args: + db: Database session + email: User's email address + full_name: User's display name (optional) + + Returns: + User object + """ + # Import User here to avoid circular import + from app.models.user import User + + # Try to find existing user + user = db.query(User).filter(User.email == email).first() + + if user: + # Only update last_login if it's been > 5 minutes (avoid excessive DB writes) + now = datetime.utcnow() + should_update = ( + user.last_login_at is None or + (now - user.last_login_at).total_seconds() > 300 # 5 minutes + ) + + if should_update or (full_name and not user.full_name): + if should_update: + user.last_login_at = now + if full_name and not user.full_name: + user.full_name = full_name + db.commit() + + return user + + # Create new user + user = User( + user_id=uuid4(), + email=email, + full_name=full_name, + role="user", + is_active=True, + last_login_at=datetime.utcnow() + ) + db.add(user) + db.commit() + db.refresh(user) + + log_info(f"Created new user: {email}") + return user + + +def _get_db() -> Generator[Session, None, None]: + """Get database session - avoids circular import.""" + from app.database import get_db + yield from get_db() + + +async def get_current_user( + request: Request, + db: Session = Depends(_get_db) +) -> "User": + """ + FastAPI dependency to get the current authenticated user. + + This extracts user info from Databricks Apps headers and returns + the corresponding User object from the database. + + Raises: + HTTPException 401 if not authenticated + """ + email, display_name = get_user_from_headers(request) + + if not email: + raise HTTPException( + status_code=401, + detail="Not authenticated. Please access through Databricks Apps.", + headers={"WWW-Authenticate": "Bearer"} + ) + + user = get_or_create_user(db, email, display_name) + + if not user.is_active: + raise HTTPException( + status_code=403, + detail="User account is disabled" + ) + + return user + + +async def get_optional_user( + request: Request, + db: Session = Depends(_get_db) +) -> Optional["User"]: + """ + FastAPI dependency to get current user if authenticated, otherwise None. + + Use this for endpoints that work with or without authentication. + """ + email, display_name = get_user_from_headers(request) + + if not email: + return None + + try: + return get_or_create_user(db, email, display_name) + except Exception: + return None diff --git a/lakemeter/backend/app/auth/token_manager.py b/lakemeter/backend/app/auth/token_manager.py new file mode 100644 index 00000000..14b5d97d --- /dev/null +++ b/lakemeter/backend/app/auth/token_manager.py @@ -0,0 +1,188 @@ +""" +Lakebase OAuth Token Manager + +Uses Databricks Service Principal OAuth (M2M) to generate and refresh +database credentials for Lakebase authentication. + +Supports fetching SP credentials from Databricks secrets for enhanced security. + +Reference: https://docs.databricks.com/aws/en/oltp/instances/authentication +""" +import os +import uuid +import threading +from datetime import datetime, timedelta, timezone +from typing import Optional, Dict, Any +from databricks.sdk import WorkspaceClient +from databricks.sdk.core import Config +from dotenv import load_dotenv + +# Load environment variables from .env file +load_dotenv() + +# Import logging helpers (defined inline to avoid circular import) +def _log_info(msg: str): + """Log info - only in local/dev mode.""" + if os.getenv("ENVIRONMENT", "local").lower() != "production": + print(f"[TokenManager] {msg}") + +def _log_warning(msg: str): + """Log warning - always.""" + print(f"[TokenManager] WARNING: {msg}") + +def _log_error(msg: str): + """Log error - always.""" + print(f"[TokenManager] ERROR: {msg}") + + +class LakebaseTokenManager: + """ + Manages OAuth tokens for Lakebase database authentication. + + Authentication flow: + 1. Authenticate to Databricks using the app's built-in Service Principal + (DATABRICKS_CLIENT_ID/DATABRICKS_CLIENT_SECRET auto-injected by Databricks Apps) + or CLI auth (local development) + 2. Use generate_database_credential to get a Lakebase OAuth token + 3. Auto-refresh tokens before expiration (1 hour lifetime) + """ + + def __init__(self): + self._token: Optional[str] = None + self._expires_at: Optional[datetime] = None + self._lock = threading.Lock() + + # Load settings from environment variables + self.databricks_host = os.getenv("DATABRICKS_HOST") + self.databricks_config_profile = os.getenv("DATABRICKS_CONFIG_PROFILE") + self.lakebase_instance_name = os.getenv("LAKEBASE_INSTANCE_NAME") + self.db_user = os.getenv("DB_USER") + self.db_name = os.getenv("DB_NAME") + self.db_host = os.getenv("DB_HOST") + self.db_port = int(os.getenv("DB_PORT", "5432")) + self.db_sslmode = os.getenv("DB_SSLMODE", "require") + + self._workspace_client: Optional[WorkspaceClient] = None + + self._init_workspace_client() + self.get_token() # Initial token fetch + + _log_info("LakebaseTokenManager initialized") + _log_info(f"Workspace: {self.databricks_host}") + _log_info(f"Instance: {self.lakebase_instance_name}") + + def _init_workspace_client(self): + """Initialize Databricks WorkspaceClient using available auth.""" + try: + if self.databricks_config_profile: + # Local dev: use CLI profile + config = Config( + host=self.databricks_host, + profile=self.databricks_config_profile + ) + self._workspace_client = WorkspaceClient(config=config) + else: + # Production/Databricks Apps: try no-args first (auto-detects app SP) + try: + self._workspace_client = WorkspaceClient() + current_user = self._workspace_client.current_user.me() + _log_info(f"Authenticated (auto) as: {current_user.user_name}") + return + except Exception as e1: + _log_warning(f"Auto auth failed: {e1}, trying with explicit host...") + # Fallback: explicit host (ensure https://) + host = self.databricks_host + if host and not host.startswith("https://"): + host = f"https://{host}" + self._workspace_client = WorkspaceClient(host=host) + + # Test auth by getting current user + current_user = self._workspace_client.current_user.me() + _log_info(f"Authenticated as: {current_user.user_name}") + except Exception as e: + _log_warning(f"Auth failed: {e}") + self._workspace_client = None + + def _refresh_token(self): + """Generate a new OAuth token using the app's built-in identity.""" + if not self.lakebase_instance_name: + _log_warning("Cannot refresh token: LAKEBASE_INSTANCE_NAME not set.") + self._token = None + self._expires_at = None + return + + if not self._workspace_client: + _log_error("Cannot refresh token: WorkspaceClient not initialized.") + self._token = None + self._expires_at = None + return + + _log_info("Refreshing Lakebase OAuth token...") + try: + credential = self._workspace_client.database.generate_database_credential( + request_id=str(uuid.uuid4()), + instance_names=[self.lakebase_instance_name] + ) + + self._token = credential.token + self._expires_at = datetime.fromisoformat(credential.expiration_time.replace('Z', '+00:00')) - timedelta(minutes=5) + + # Update db_user to match the app's SP identity + try: + current_user = self._workspace_client.current_user.me() + if current_user.user_name: + self.db_user = current_user.user_name + _log_info(f"DB_USER set to app identity: {self.db_user}") + except Exception: + pass + + _log_info(f"Token refreshed. Expires at: {self._expires_at.strftime('%Y-%m-%d %H:%M:%S UTC')}") + except Exception as e: + _log_error(f"Token generation failed: {e}") + self._token = None + self._expires_at = None + + def get_token(self) -> Optional[str]: + """ + Returns the current valid OAuth token, refreshing it if it's expired or near expiration. + Thread-safe. + """ + with self._lock: + now = datetime.now(timezone.utc) + if not self._token or (self._expires_at and now >= self._expires_at): + self._refresh_token() + return self._token + + def get_connection_params(self) -> Dict[str, Any]: + """Returns database connection parameters, including the current token as password.""" + return { + "host": self.db_host, + "port": self.db_port, + "user": self.db_user, + "password": self.get_token(), # Use the dynamically refreshed token + "dbname": self.db_name, + "sslmode": self.db_sslmode + } + + +# Initialize token manager (will be None if not configured) +token_manager: Optional[LakebaseTokenManager] = None + +def init_token_manager(): + """Initialize the token manager if Databricks host is configured.""" + global token_manager + + databricks_host = os.getenv("DATABRICKS_HOST") + if not databricks_host: + raise Exception("DATABRICKS_HOST environment variable not set") + + token_manager = LakebaseTokenManager() + + +# Initialize on module load (fault-tolerant) +try: + init_token_manager() +except Exception as e: + _log_error(f"Token manager initialization failed: {e}") + _log_error("App will start but database operations will fail until auth is configured") + diff --git a/lakemeter/backend/app/config.py b/lakemeter/backend/app/config.py new file mode 100644 index 00000000..c04b0569 --- /dev/null +++ b/lakemeter/backend/app/config.py @@ -0,0 +1,127 @@ +"""Application configuration settings.""" +import os +import logging +from urllib.parse import quote_plus +from pydantic import ConfigDict +from pydantic_settings import BaseSettings +from typing import List, Optional + + +class Settings(BaseSettings): + """Application settings loaded from environment variables.""" + + # Environment: "local", "development", "production" + environment: str = "local" + + # Log level: DEBUG, INFO, WARNING, ERROR + log_level: str = "INFO" + + # Lakebase Database Configuration + db_host: str = "" + db_user: str = "" + db_name: str = "lakemeter_pricing" + db_port: int = 5432 + db_sslmode: str = "require" + + # Databricks configuration + # In Databricks Apps: DATABRICKS_HOST, DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET + # are auto-injected. The app's built-in SP handles all authentication. + databricks_host: Optional[str] = None + databricks_config_profile: Optional[str] = None + + # Lakebase instance name (from Compute > Lakebase Postgres) + lakebase_instance_name: Optional[str] = None + + # Override with full DATABASE_URL if provided + database_url: Optional[str] = None + + # JWT Authentication + jwt_secret_key: str = "your-secret-key-change-in-production" + jwt_algorithm: str = "HS256" + access_token_expire_minutes: int = 30 + + # CORS + cors_origins: str = "http://localhost:5173,http://localhost:3000,http://localhost:5175" + + @property + def cors_origins_list(self) -> List[str]: + """Get CORS origins as list. Empty string means same-origin only.""" + if not self.cors_origins or self.cors_origins.strip() == "": + return [] + return [origin.strip() for origin in self.cors_origins.split(",") if origin.strip()] + + @property + def use_oauth(self) -> bool: + """Check if OAuth authentication is configured (Databricks Apps auto-injects host).""" + return bool(self.databricks_host) + + @property + def is_production(self) -> bool: + """Check if running in production environment.""" + return self.environment.lower() == "production" + + @property + def is_local(self) -> bool: + """Check if running in local development.""" + return self.environment.lower() == "local" + + model_config = ConfigDict(env_file=".env", case_sensitive=False, extra="ignore") + + +settings = Settings() + + +# ============================================================================= +# Logging Setup +# ============================================================================= + +def setup_logging(): + """Configure logging based on environment.""" + log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" + + if settings.is_production: + # Production: minimal logging, only warnings and errors + logging.basicConfig( + level=logging.WARNING, + format=log_format + ) + else: + # Local/Development: verbose logging + log_level = getattr(logging, settings.log_level.upper(), logging.INFO) + logging.basicConfig( + level=log_level, + format=log_format + ) + + # Suppress noisy third-party loggers in production + if settings.is_production: + logging.getLogger("uvicorn.access").setLevel(logging.WARNING) + logging.getLogger("sqlalchemy.engine").setLevel(logging.WARNING) + + +def get_logger(name: str) -> logging.Logger: + """Get a logger instance with environment-aware settings.""" + return logging.getLogger(name) + + +# Helper for conditional logging (backwards compatible with print statements) +def log_debug(message: str, logger_name: str = "lakemeter"): + """Log debug message (only in local/dev).""" + if not settings.is_production: + get_logger(logger_name).debug(message) + + +def log_info(message: str, logger_name: str = "lakemeter"): + """Log info message (only in local/dev).""" + if not settings.is_production: + get_logger(logger_name).info(message) + + +def log_warning(message: str, logger_name: str = "lakemeter"): + """Log warning message (always).""" + get_logger(logger_name).warning(message) + + +def log_error(message: str, logger_name: str = "lakemeter"): + """Log error message (always).""" + get_logger(logger_name).error(message) diff --git a/lakemeter/backend/app/database.py b/lakemeter/backend/app/database.py new file mode 100644 index 00000000..50e0f5ff --- /dev/null +++ b/lakemeter/backend/app/database.py @@ -0,0 +1,237 @@ +""" +Database connection and session management. + +Supports automatic OAuth token refresh for Lakebase using Service Principal M2M flow. +Reference: https://docs.databricks.com/aws/en/oltp/instances/authentication +""" +import threading +import time +from urllib.parse import quote_plus + +from fastapi import HTTPException +from sqlalchemy import create_engine, text, event +from sqlalchemy.orm import declarative_base +from sqlalchemy.orm import sessionmaker +from sqlalchemy.exc import OperationalError + +from app.config import log_info, log_warning, log_error + + +# Base class for models (defined early so models can import it) +Base = declarative_base() + + +def _get_database_url() -> str: + """Build database URL from env var, token manager, or secrets fallback.""" + import os + + # Check for direct DATABASE_URL first (local dev) + direct_url = os.getenv("DATABASE_URL") + if direct_url: + log_info("Using DATABASE_URL environment variable for database connection") + return direct_url + + from app.auth.token_manager import token_manager + + # Try OAuth token manager if it has a valid token + if token_manager and token_manager.get_token(): + params = token_manager.get_connection_params() + if params.get("password"): + # Test SP connection before committing — fast timeout to avoid blocking + try: + encoded_user = quote_plus(params["user"]) + encoded_password = quote_plus(params["password"]) + test_url = ( + f"postgresql://{encoded_user}:{encoded_password}" + f"@{params['host']}:{params['port']}/{params['dbname']}" + f"?sslmode={params['sslmode']}" + ) + test_engine = create_engine( + test_url, + connect_args={"sslmode": "require", "connect_timeout": 5}, + pool_timeout=5, + ) + with test_engine.connect() as conn: + conn.execute(text("SELECT 1")) + test_engine.dispose() + log_info(f"Using OAuth SP token for database connection (user: {params['user']})") + return test_url + except Exception as e: + log_warning(f"SP OAuth connection test failed: {e}") + log_info("Falling back to password auth...") + else: + log_info("No SP OAuth credentials available, using password fallback...") + + # Fallback: use secrets-based password auth (lakebase-password from secrets scope) + log_info("Attempting password-based auth via Databricks secrets...") + try: + from databricks.sdk import WorkspaceClient + import base64 + w = WorkspaceClient() + scope = os.getenv("DATABRICKS_SECRETS_SCOPE", "lakemeter-credentials") + + def _get_secret(key): + raw = w.secrets.get_secret(scope=scope, key=key).value + try: + return base64.b64decode(raw).decode('utf-8') + except Exception: + return raw + + db_host = _get_secret("lakebase-host") + db_user = _get_secret("lakebase-user") + db_pass = _get_secret("lakebase-password") + db_name = _get_secret("lakebase-database") + db_port = os.getenv("DB_PORT", "5432") + + encoded_user = quote_plus(db_user) + encoded_password = quote_plus(db_pass) + log_info(f"Using password auth for user: {db_user}") + return ( + f"postgresql://{encoded_user}:{encoded_password}" + f"@{db_host}:{db_port}/{db_name}" + f"?sslmode=require" + ) + except Exception as e: + log_error(f"Password fallback failed: {e}") + + raise Exception("No valid database credentials available. Check OAuth config or lakebase-password secret.") + + +def _create_engine_with_token_refresh(): + """Create SQLAlchemy engine with automatic token refresh.""" + try: + database_url = _get_database_url() + except Exception as e: + log_error(f"Database initialization failed: {e}") + raise + + try: + engine = create_engine( + database_url, + pool_pre_ping=True, + pool_size=15, + max_overflow=25, + pool_timeout=15, + # Recycle connections every 15 minutes (before token expires at 1 hour) + pool_recycle=900, + connect_args={"sslmode": "require", "connect_timeout": 10} + ) + + # Test connection + with engine.connect() as conn: + conn.execute(text("SELECT 1")) + + log_info("Database engine created for Lakebase") + + session_local = sessionmaker(autocommit=False, autoflush=False, bind=engine) + return engine, session_local + + except Exception as e: + log_error(f"Could not create database engine: {e}") + raise + + +# Initialize engine and session factory (fault-tolerant) +try: + engine, SessionLocal = _create_engine_with_token_refresh() +except Exception as e: + log_error(f"Database initialization failed (will retry on first request): {e}") + engine = None + SessionLocal = None + + +# Track last engine refresh time +_last_engine_refresh = time.time() +_ENGINE_REFRESH_INTERVAL = 30 * 60 # Refresh engine every 30 minutes (well before 1-hour token expiry) +_refresh_lock = threading.Lock() + + +def refresh_engine(): + """Refresh the database engine with a new token. Thread-safe.""" + global engine, SessionLocal, _last_engine_refresh + + from app.auth.token_manager import token_manager + + with _refresh_lock: + log_info("Refreshing database engine with new token...") + + if token_manager: + # Force token refresh + token_manager._token = None + token_manager._expires_at = None + + try: + engine, SessionLocal = _create_engine_with_token_refresh() + _last_engine_refresh = time.time() + log_info("Database engine refreshed successfully") + return True + except Exception as e: + log_error(f"Failed to refresh database engine: {e}") + return False + + +def _check_and_refresh_engine(): + """Check if engine needs refresh due to token age.""" + global engine, SessionLocal, _last_engine_refresh + + # If engine is None, try to create it + if engine is None: + log_info("Engine is None, attempting to create...") + try: + refresh_engine() + except Exception as e: + log_error(f"Failed to create engine: {e}") + return False + + # Check if it's time to refresh (proactive refresh before token expires) + time_since_refresh = time.time() - _last_engine_refresh + if time_since_refresh > _ENGINE_REFRESH_INTERVAL: + log_info(f"Engine is {time_since_refresh/60:.1f} minutes old, proactively refreshing...") + refresh_engine() + + return engine is not None + + +def get_db(): + """ + Dependency to get database session. + + Automatically handles token refresh on connection errors. + """ + # Proactive refresh check + _check_and_refresh_engine() + + if SessionLocal is None: + raise HTTPException(status_code=503, detail="Database not connected") + + db = SessionLocal() + try: + # Test the connection before yielding + try: + db.execute(text("SELECT 1")) + except OperationalError as e: + error_str = str(e).lower() + # Check if it's an auth/token error + if "invalid authorization" in error_str or "authentication failed" in error_str or "password" in error_str: + log_warning("Database connection failed due to auth error, refreshing token...") + db.close() + + # Refresh engine with new token + if refresh_engine(): + # Retry with new session + db = SessionLocal() + db.execute(text("SELECT 1")) # Test again + else: + raise HTTPException(status_code=503, detail="Database connection failed after token refresh") + else: + raise + + yield db + except OperationalError as e: + error_str = str(e).lower() + if "invalid authorization" in error_str or "authentication failed" in error_str: + log_warning("Database operation failed due to auth error, refreshing for next request...") + refresh_engine() + raise HTTPException(status_code=503, detail=f"Database error: {str(e)}") + finally: + db.close() diff --git a/lakemeter/backend/app/external_api.py b/lakemeter/backend/app/external_api.py new file mode 100644 index 00000000..c154fdc6 --- /dev/null +++ b/lakemeter/backend/app/external_api.py @@ -0,0 +1,470 @@ +""" +External Lakemeter API Client + +This module provides an async HTTP client for calling the external Lakemeter API. + +Authentication methods (in order of priority): +1. X-Forwarded-Access-Token header (production - Databricks Apps) +2. Databricks CLI auth (local development - uses browser OAuth) + +For local development, ensure you have Databricks CLI configured: + databricks auth login --host +""" +import os +import httpx +from typing import Optional, Dict, Any +from fastapi import Request +from databricks.sdk import WorkspaceClient +from databricks.sdk.core import Config + +from app.config import log_info, log_warning + +# External API base URL +LAKEMETER_API_BASE = "https://lakemeter-api-335310294452632.aws.databricksapps.com" + +# Header name for OAuth token in Databricks Apps +ACCESS_TOKEN_HEADER = "X-Forwarded-Access-Token" + +# Cache for CLI config (not the token - SDK handles token refresh) +_cli_config: Optional[Config] = None + + +def get_cli_token() -> Optional[str]: + """ + Get Databricks API token using CLI authentication. + + This uses the Databricks CLI's cached OAuth token from browser authentication. + The Databricks SDK handles token refresh automatically. + Requires: databricks auth login --host + """ + global _cli_config + + try: + databricks_host = os.getenv("DATABRICKS_HOST") + databricks_profile = os.getenv("DATABRICKS_CONFIG_PROFILE") + + if not databricks_host: + log_warning("DATABRICKS_HOST not set, cannot get CLI token") + return None + + # Initialize config once (SDK handles token caching and refresh) + if not _cli_config: + _cli_config = Config( + host=databricks_host, + profile=databricks_profile + ) + log_info(f"Initialized Databricks CLI config for {databricks_host}") + + # authenticate() returns fresh headers each time, including refreshed tokens + auth_headers = _cli_config.authenticate() + + if auth_headers: + auth_header = auth_headers.get('Authorization', '') + if auth_header.startswith('Bearer '): + return auth_header[7:] # Remove 'Bearer ' prefix + + except Exception as e: + log_warning(f"Could not get CLI token: {e}") + # Clear config cache on error so it re-initializes next time + _cli_config = None + + return None + + +def get_sp_token() -> Optional[str]: + """ + Get the app's built-in Service Principal token. + In Databricks Apps, DATABRICKS_CLIENT_ID/DATABRICKS_CLIENT_SECRET are auto-injected. + """ + try: + from app.auth.token_manager import token_manager + if token_manager and token_manager._workspace_client: + auth_headers = token_manager._workspace_client.config.authenticate() + if auth_headers: + auth_header = auth_headers.get('Authorization', '') + if auth_header.startswith('Bearer '): + return auth_header[7:] + except Exception as e: + log_warning(f"Could not get SP token: {e}") + return None + + +def get_user_token(request: Request) -> Optional[str]: + """ + Get user's OAuth token for external API authentication. + + Priority: + 1. X-Forwarded-Access-Token header (Databricks Apps production - if available) + 2. Service Principal token (Databricks Apps - using same SP as Lakebase auth) + 3. Databricks CLI token (local development) + """ + # First try production header (may not always be available) + token = request.headers.get(ACCESS_TOKEN_HEADER) + if token: + log_info("Using X-Forwarded-Access-Token for external API") + return token + + # Try Service Principal token (for Databricks Apps without user token) + sp_token = get_sp_token() + if sp_token: + log_info("Using Service Principal token for external API") + return sp_token + + # Fall back to CLI token for local development + cli_token = get_cli_token() + if cli_token: + log_info("Using CLI token for external API") + return cli_token + + log_warning("No token available for external API calls") + return None + + +def get_model_serving_token(request: Request) -> Optional[str]: + """ + Get token for model serving (Claude AI) calls. + + Uses the app's own credentials (SP or CLI) instead of the user's forwarded token, + because the Databricks Apps proxy may strip the model-serving scope from user tokens. + The serving endpoint resource (CAN_QUERY) is granted to the app's service principal. + + Priority: + 1. Service Principal token (Databricks Apps production) + 2. Databricks CLI token (local development) + 3. X-Forwarded-Access-Token (fallback) + """ + # Prefer SP token — it has model-serving scope via app resource config + sp_token = get_sp_token() + if sp_token: + log_info("Using Service Principal token for model serving") + return sp_token + + # Fall back to CLI token for local development + cli_token = get_cli_token() + if cli_token: + log_info("Using CLI token for model serving") + return cli_token + + # Last resort: user's forwarded token + token = request.headers.get(ACCESS_TOKEN_HEADER) + if token: + log_info("Using X-Forwarded-Access-Token for model serving (may lack scope)") + return token + + log_warning("No token available for model serving calls") + return None + + +async def call_external_api( + endpoint: str, + method: str = "GET", + params: Optional[Dict[str, Any]] = None, + json_body: Optional[Dict[str, Any]] = None, + user_token: Optional[str] = None, + timeout: float = 30.0 +) -> Dict[str, Any]: + """ + Make an authenticated call to the external Lakemeter API. + + Args: + endpoint: API endpoint path (e.g., "/api/v1/regions") + method: HTTP method (GET, POST, etc.) + params: Query parameters for GET requests + json_body: JSON body for POST requests + user_token: OAuth token from Databricks Apps + timeout: Request timeout in seconds + + Returns: + API response as dictionary + + Raises: + Exception if API call fails and no token available + """ + headers = {"Accept": "application/json"} + + if user_token: + headers["Authorization"] = f"Bearer {user_token}" + + url = f"{LAKEMETER_API_BASE}{endpoint}" + + async with httpx.AsyncClient() as client: + if method.upper() == "GET": + response = await client.get( + url, + params=params, + headers=headers, + timeout=timeout + ) + elif method.upper() == "POST": + headers["Content-Type"] = "application/json" + response = await client.post( + url, + params=params, + json=json_body, + headers=headers, + timeout=timeout + ) + else: + raise ValueError(f"Unsupported HTTP method: {method}") + + response.raise_for_status() + return response.json() + + +class LakemeterAPIClient: + """ + Client for external Lakemeter API with user token authentication. + """ + + def __init__(self, user_token: Optional[str] = None): + self.user_token = user_token + + async def get_clouds(self) -> Dict[str, Any]: + """Get available cloud providers.""" + return await call_external_api( + "/api/v1/clouds", + user_token=self.user_token + ) + + async def get_regions(self, cloud: str) -> Dict[str, Any]: + """Get regions for a cloud provider.""" + return await call_external_api( + "/api/v1/regions", + params={"cloud": cloud.upper()}, + user_token=self.user_token + ) + + async def get_pricing_tiers(self, cloud: str) -> Dict[str, Any]: + """Get available pricing tiers for a cloud.""" + return await call_external_api( + "/api/v1/pricing-tiers", + params={"cloud": cloud.upper()}, + user_token=self.user_token + ) + + async def get_instance_types( + self, + cloud: str, + region: Optional[str] = None, + min_vcpus: Optional[int] = None, + max_vcpus: Optional[int] = None + ) -> Dict[str, Any]: + """Get available instance types.""" + params = {"cloud": cloud.upper()} + if region: + params["region"] = region + if min_vcpus: + params["min_vcpus"] = min_vcpus + if max_vcpus: + params["max_vcpus"] = max_vcpus + + return await call_external_api( + "/api/v1/instances/types", + params=params, + user_token=self.user_token + ) + + async def get_vm_costs( + self, + cloud: str, + region: str, + instance_type: Optional[str] = None, + pricing_tier: Optional[str] = None, + payment_option: Optional[str] = None + ) -> Dict[str, Any]: + """Get VM costs for instances.""" + params = {"cloud": cloud.upper(), "region": region} + if instance_type: + params["instance_type"] = instance_type + if pricing_tier: + params["pricing_tier"] = pricing_tier + if payment_option: + params["payment_option"] = payment_option + + return await call_external_api( + "/api/v1/instances/vm-costs", + params=params, + user_token=self.user_token + ) + + async def get_instance_families(self) -> Dict[str, Any]: + """Get instance family categories.""" + return await call_external_api( + "/api/v1/instances/families", + user_token=self.user_token + ) + + async def get_dbsql_warehouse_sizes(self) -> Dict[str, Any]: + """Get DBSQL warehouse sizes.""" + return await call_external_api( + "/api/v1/dbsql/warehouse-sizes", + user_token=self.user_token + ) + + async def get_gpu_types(self, cloud: str) -> Dict[str, Any]: + """Get GPU types for model serving.""" + return await call_external_api( + "/api/v1/model-serving/gpu-types", + params={"cloud": cloud.upper()}, + user_token=self.user_token + ) + + async def get_fmapi_databricks_models(self) -> Dict[str, Any]: + """Get Databricks FMAPI models.""" + return await call_external_api( + "/api/v1/fmapi/databricks-models/list", + user_token=self.user_token + ) + + async def get_fmapi_proprietary_models(self, provider: Optional[str] = None) -> Dict[str, Any]: + """Get proprietary FMAPI models.""" + params = {} + if provider: + params["provider"] = provider + + return await call_external_api( + "/api/v1/fmapi/proprietary-models/list", + params=params, + user_token=self.user_token + ) + + # ==================== Cost Calculation Methods ==================== + + async def calculate_jobs_classic(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate JOBS classic cost.""" + return await call_external_api( + "/api/v1/calculate/jobs-classic", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_jobs_serverless(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate JOBS serverless cost.""" + return await call_external_api( + "/api/v1/calculate/jobs-serverless", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_all_purpose_classic(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate All-Purpose classic cost.""" + return await call_external_api( + "/api/v1/calculate/all-purpose-classic", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_all_purpose_serverless(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate All-Purpose serverless cost.""" + return await call_external_api( + "/api/v1/calculate/all-purpose-serverless", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_dbsql_classic_pro(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate DBSQL classic/pro cost.""" + return await call_external_api( + "/api/v1/calculate/dbsql-classic-pro", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_dbsql_serverless(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate DBSQL serverless cost.""" + return await call_external_api( + "/api/v1/calculate/dbsql-serverless", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_dlt_classic(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate DLT classic cost.""" + return await call_external_api( + "/api/v1/calculate/dlt-classic", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_dlt_serverless(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate DLT serverless cost.""" + return await call_external_api( + "/api/v1/calculate/dlt-serverless", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_model_serving(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate Model Serving cost.""" + return await call_external_api( + "/api/v1/calculate/model-serving", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_fmapi_databricks(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate FMAPI Databricks cost.""" + return await call_external_api( + "/api/v1/calculate/fmapi-databricks", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_fmapi_proprietary(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate FMAPI Proprietary cost.""" + return await call_external_api( + "/api/v1/calculate/fmapi-proprietary", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_vector_search(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate Vector Search cost.""" + return await call_external_api( + "/api/v1/calculate/vector-search", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def calculate_lakebase(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Calculate Lakebase cost.""" + return await call_external_api( + "/api/v1/calculate/lakebase", + method="POST", + json_body=data, + user_token=self.user_token + ) + + async def get_dbu_rates( + self, + cloud: str, + region: str, + tier: str + ) -> Dict[str, Any]: + """Get DBU rates for a cloud/region/tier combination. + + Returns available product types and their DBU prices. + Used to determine which workload types are available in a region. + """ + return await call_external_api( + "/api/v1/pricing/dbu-rates", + params={ + "cloud": cloud.upper(), + "region": region, + "tier": tier.upper() + }, + user_token=self.user_token + ) + diff --git a/lakemeter/backend/app/main.py b/lakemeter/backend/app/main.py new file mode 100644 index 00000000..e632dd2c --- /dev/null +++ b/lakemeter/backend/app/main.py @@ -0,0 +1,288 @@ +"""FastAPI main application entry point.""" +from pathlib import Path +from fastapi import FastAPI, Request +from fastapi.middleware.cors import CORSMiddleware +from fastapi.staticfiles import StaticFiles +from fastapi.responses import FileResponse + +from app.config import settings, setup_logging, log_info +from app.routes import ( + estimates_router, + line_items_router, + workload_types_router, + users_router, + export_router, + vm_pricing_router, + calculate_router, + reference_router +) +from app.routes.chat import router as chat_router + +# Initialize logging based on environment +setup_logging() + +# Create FastAPI application +# redirect_slashes=False prevents automatic redirects that break CORS +# Disable docs in production for cleaner deployment +app = FastAPI( + title="Lakemeter API", + description="Databricks Pricing Calculator API - Estimate and manage Databricks workload costs", + version="1.0.0", + docs_url="/api/docs", + redoc_url="/api/redoc", + redirect_slashes=False +) + +# Log startup info +log_info(f"Starting Lakemeter API (environment: {settings.environment})") + +# Configure CORS +app.add_middleware( + CORSMiddleware, + allow_origins=settings.cors_origins_list, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# Include routers +app.include_router(estimates_router, prefix="/api/v1") +app.include_router(line_items_router, prefix="/api/v1") +app.include_router(workload_types_router, prefix="/api/v1") +app.include_router(users_router, prefix="/api/v1") +app.include_router(export_router, prefix="/api/v1") +app.include_router(vm_pricing_router, prefix="/api/v1") +app.include_router(calculate_router, prefix="/api/v1") +app.include_router(reference_router, prefix="/api/v1") +app.include_router(chat_router, prefix="/api/v1") + + +@app.get("/api") +def api_root(): + """API root endpoint.""" + return { + "name": "Lakemeter API", + "version": "1.0.0", + "description": "Databricks Pricing Calculator API" + } + + +@app.get("/health") +def health_check(): + """Health check endpoint.""" + return {"status": "healthy"} + + +@app.get("/api/v1/debug/headers") +def debug_headers(request: Request): + """Debug endpoint to see what headers Databricks Apps sends.""" + from app.auth.databricks_auth import debug_headers as get_debug_headers + return get_debug_headers(request) + + + + +@app.get("/api/v1/debug/database") +def debug_database(): + """Debug endpoint to check database connection status.""" + import os + import uuid + from app.auth.token_manager import token_manager + + result = { + "environment_vars": { + "DATABRICKS_HOST": os.getenv("DATABRICKS_HOST", "NOT SET"), + "DATABRICKS_SECRETS_SCOPE": os.getenv("DATABRICKS_SECRETS_SCOPE", "NOT SET"), + "LAKEBASE_INSTANCE_NAME": os.getenv("LAKEBASE_INSTANCE_NAME", "NOT SET"), + "DB_HOST": os.getenv("DB_HOST", "NOT SET"), + "DB_USER": os.getenv("DB_USER", "NOT SET"), + "DB_NAME": os.getenv("DB_NAME", "NOT SET"), + }, + "token_manager_status": "NOT INITIALIZED", + "workspace_client_status": "NOT INITIALIZED", + "sp_credentials_status": "NOT FETCHED", + "token_status": "NO TOKEN", + "token_error": None, + "database_status": "NOT CONNECTED", + } + + if token_manager: + result["token_manager_status"] = "INITIALIZED" + + if token_manager._workspace_client: + result["workspace_client_status"] = "INITIALIZED" + + # Try to generate token using the workspace client + try: + token = token_manager.get_token() + if token: + result["token_status"] = f"GENERATED (length: {len(token)})" + result["db_user"] = token_manager.db_user + else: + result["token_status"] = "NO TOKEN" + except Exception as e: + result["token_status"] = "GENERATION FAILED" + result["token_error"] = str(e) + + # Try to test database connection + try: + from app.database import engine, refresh_engine + + # If engine is None, try to refresh it now that we have a token + if engine is None: + result["database_status"] = "ENGINE IS NONE - attempting refresh..." + try: + refresh_engine() + from app.database import engine as new_engine + if new_engine: + from sqlalchemy import text + with new_engine.connect() as conn: + conn.execute(text("SELECT 1")) + result["database_status"] = "CONNECTED (after refresh)" + except Exception as refresh_err: + result["database_status"] = f"REFRESH FAILED: {str(refresh_err)}" + else: + from sqlalchemy import text + with engine.connect() as conn: + conn.execute(text("SELECT 1")) + result["database_status"] = "CONNECTED" + except Exception as e: + result["database_status"] = f"ERROR: {str(e)}" + + return result + + +@app.post("/api/v1/debug/database/refresh") +def debug_database_refresh(): + """Force refresh the database token and reconnect.""" + from app.database import refresh_engine + from app.auth.token_manager import token_manager + + result = { + "action": "refresh", + "token_refresh": "NOT ATTEMPTED", + "engine_refresh": "NOT ATTEMPTED", + "status": "UNKNOWN" + } + + # Step 1: Force token refresh + if token_manager: + try: + # Clear existing token to force refresh + token_manager._token = None + token_manager._expires_at = None + + # Get new token + new_token = token_manager.get_token() + if new_token: + result["token_refresh"] = f"SUCCESS (length: {len(new_token)})" + else: + result["token_refresh"] = "FAILED - no token returned" + except Exception as e: + result["token_refresh"] = f"FAILED: {str(e)}" + else: + result["token_refresh"] = "SKIPPED - token_manager not initialized" + + # Step 2: Show connection params before attempting + if token_manager: + try: + params = token_manager.get_connection_params() + result["connection_params"] = { + "host": params.get("host", "?"), + "port": params.get("port", "?"), + "user": params.get("user", "?"), + "dbname": params.get("dbname", "?"), + "sslmode": params.get("sslmode", "?"), + "password_length": len(params.get("password", "") or ""), + } + except Exception as e: + result["connection_params"] = f"ERROR: {str(e)}" + + # Step 3: Refresh database engine + try: + success = refresh_engine() + if success: + result["engine_refresh"] = "SUCCESS" + result["status"] = "CONNECTED" + else: + result["engine_refresh"] = "FAILED" + result["status"] = "DISCONNECTED" + except Exception as e: + result["engine_refresh"] = f"ERROR: {str(e)}" + result["status"] = "ERROR" + + return result + + + +# ============================================================================= +# Static File Serving for Combined Frontend + Backend Deployment +# Must be AFTER all API routes +# ============================================================================= + +# Path to static files (React build) +STATIC_DIR = Path(__file__).parent.parent / "static" + +# Check if static directory exists (production deployment) +if STATIC_DIR.exists() and (STATIC_DIR / "index.html").exists(): + log_info(f"Static files found at {STATIC_DIR}, enabling SPA serving") + + # Mount static assets (JS, CSS, images) + if (STATIC_DIR / "assets").exists(): + app.mount("/assets", StaticFiles(directory=STATIC_DIR / "assets"), name="assets") + + # Mount static pricing data (for instant local calculations) + PRICING_DIR = STATIC_DIR / "pricing" + if PRICING_DIR.exists(): + app.mount("/static/pricing", StaticFiles(directory=PRICING_DIR), name="pricing") + log_info(f"Pricing bundle found at {PRICING_DIR}") + + # Mount documentation site (Docusaurus build) + DOCS_DIR = STATIC_DIR / "docs" + if DOCS_DIR.exists(): + app.mount("/docs", StaticFiles(directory=DOCS_DIR, html=True), name="docs") + log_info(f"Documentation site mounted at /docs/") + + # Serve static files at root (favicon, etc.) + @app.get("/favicon.ico") + async def favicon(): + favicon_path = STATIC_DIR / "favicon.ico" + if favicon_path.exists(): + return FileResponse(favicon_path) + return FileResponse(STATIC_DIR / "databricks-icon.svg") + + @app.get("/databricks-icon.svg") + async def databricks_icon(): + return FileResponse(STATIC_DIR / "databricks-icon.svg") + + # Serve index.html at root + @app.get("/") + async def serve_root(): + """Serve React SPA at root.""" + return FileResponse(STATIC_DIR / "index.html") + + # SPA catch-all handler - serve index.html for non-API routes + # This must be the LAST route defined + @app.get("/{full_path:path}") + async def serve_spa(request: Request, full_path: str): + """Serve React SPA for all non-API routes.""" + # Don't intercept API routes + if full_path.startswith("api/"): + return {"error": "Not found"}, 404 + + # Serve index.html for client-side routing + return FileResponse(STATIC_DIR / "index.html") + +else: + log_info("Static files not found - running in API-only mode (local development)") + + # In local dev mode, serve API info at root + @app.get("/") + def root(): + """Root endpoint (local dev only).""" + return { + "name": "Lakemeter API", + "version": "1.0.0", + "description": "Databricks Pricing Calculator API", + "mode": "API-only (frontend served separately)" + } diff --git a/lakemeter/backend/app/models/__init__.py b/lakemeter/backend/app/models/__init__.py new file mode 100644 index 00000000..3f718b37 --- /dev/null +++ b/lakemeter/backend/app/models/__init__.py @@ -0,0 +1,44 @@ +"""SQLAlchemy models for Lakemeter database.""" +from app.models.user import User +from app.models.estimate import Estimate +from app.models.line_item import LineItem +from app.models.template import Template +from app.models.workload_type import RefWorkloadType +from app.models.sharing import Sharing +from app.models.conversation import ConversationMessage +from app.models.decision_record import DecisionRecord +from app.models.vm_pricing import VMPricing +from app.models.sku_region_map import SKURegionMap +from app.models.instance_dbu_rates import InstanceDBURates +from app.models.dbu_rates import DBURates +from app.models.dbsql_rates import DBSQLRates +from app.models.dbsql_warehouse_config import DBSQLWarehouseConfig +from app.models.fmapi_databricks import FMAPIDatabricks +from app.models.fmapi_proprietary import FMAPIProprietary +from app.models.serverless_rates import ServerlessRates +from app.models.dbu_multipliers import DBUMultipliers +from app.models.sku_discount_mapping import SKUDiscountMapping +from app.models.cloud_tiers import CloudTiers + +__all__ = [ + "User", + "Estimate", + "LineItem", + "Template", + "RefWorkloadType", + "Sharing", + "ConversationMessage", + "DecisionRecord", + "VMPricing", + "SKURegionMap", + "InstanceDBURates", + "DBURates", + "DBSQLRates", + "DBSQLWarehouseConfig", + "FMAPIDatabricks", + "FMAPIProprietary", + "ServerlessRates", + "DBUMultipliers", + "SKUDiscountMapping", + "CloudTiers", +] diff --git a/lakemeter/backend/app/models/cloud_tiers.py b/lakemeter/backend/app/models/cloud_tiers.py new file mode 100644 index 00000000..5d77896c --- /dev/null +++ b/lakemeter/backend/app/models/cloud_tiers.py @@ -0,0 +1,11 @@ +"""Cloud Tiers model for ref_cloud_tiers table.""" +from sqlalchemy import Column, String +from app.database import Base + + +class CloudTiers(Base): + __tablename__ = "ref_cloud_tiers" + __table_args__ = {"schema": "lakemeter"} + + cloud = Column(String, primary_key=True) + tier = Column(String, primary_key=True) diff --git a/lakemeter/backend/app/models/conversation.py b/lakemeter/backend/app/models/conversation.py new file mode 100644 index 00000000..22a1a0a9 --- /dev/null +++ b/lakemeter/backend/app/models/conversation.py @@ -0,0 +1,29 @@ +"""Conversation Message model for AI chat history.""" +import uuid +from datetime import datetime +from sqlalchemy import Column, String, Integer, DateTime, Text, ForeignKey +from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.orm import relationship +from app.database import Base + + +class ConversationMessage(Base): + """Conversation Message model matching lakemeter.conversation_messages table.""" + + __tablename__ = "conversation_messages" + __table_args__ = {"schema": "lakemeter"} + + message_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + estimate_id = Column(UUID(as_uuid=True), ForeignKey("lakemeter.estimates.estimate_id"), nullable=False) + message_role = Column(String(20)) # user, assistant, system + message_content = Column(Text) + message_sequence = Column(Integer) + message_type = Column(String(50)) + tokens_used = Column(Integer) + model_used = Column(String(50)) + created_at = Column(DateTime, default=datetime.utcnow) + + # Relationships + estimate = relationship("Estimate", back_populates="conversations") + + diff --git a/lakemeter/backend/app/models/dbsql_rates.py b/lakemeter/backend/app/models/dbsql_rates.py new file mode 100644 index 00000000..623926e2 --- /dev/null +++ b/lakemeter/backend/app/models/dbsql_rates.py @@ -0,0 +1,15 @@ +"""DBSQL Rates model for sync_product_dbsql_rates table.""" +from sqlalchemy import Column, String, Float, Integer +from app.database import Base + + +class DBSQLRates(Base): + __tablename__ = "sync_product_dbsql_rates" + __table_args__ = {"schema": "lakemeter"} + + cloud = Column(String, primary_key=True) + warehouse_type = Column(String, primary_key=True) + warehouse_size = Column(String, primary_key=True) + dbu_per_hour = Column(Float) + min_clusters = Column(Integer) + max_clusters = Column(Integer) diff --git a/lakemeter/backend/app/models/dbsql_warehouse_config.py b/lakemeter/backend/app/models/dbsql_warehouse_config.py new file mode 100644 index 00000000..a8070b9b --- /dev/null +++ b/lakemeter/backend/app/models/dbsql_warehouse_config.py @@ -0,0 +1,15 @@ +"""DBSQL Warehouse Config model for sync_ref_dbsql_warehouse_config table.""" +from sqlalchemy import Column, String, Integer +from app.database import Base + + +class DBSQLWarehouseConfig(Base): + __tablename__ = "sync_ref_dbsql_warehouse_config" + __table_args__ = {"schema": "lakemeter"} + + cloud = Column(String, primary_key=True) + warehouse_type = Column(String, primary_key=True) + warehouse_size = Column(String, primary_key=True) + driver_count = Column(Integer) + worker_count = Column(Integer) + instance_type = Column(String) diff --git a/lakemeter/backend/app/models/dbu_multipliers.py b/lakemeter/backend/app/models/dbu_multipliers.py new file mode 100644 index 00000000..b1376854 --- /dev/null +++ b/lakemeter/backend/app/models/dbu_multipliers.py @@ -0,0 +1,13 @@ +"""DBU Multipliers model for sync_ref_dbu_multipliers table.""" +from sqlalchemy import Column, String, Float +from app.database import Base + + +class DBUMultipliers(Base): + __tablename__ = "sync_ref_dbu_multipliers" + __table_args__ = {"schema": "lakemeter"} + + feature = Column(String, primary_key=True) + cloud = Column(String, primary_key=True) + sku_type = Column(String, primary_key=True) + multiplier = Column(Float) diff --git a/lakemeter/backend/app/models/dbu_rates.py b/lakemeter/backend/app/models/dbu_rates.py new file mode 100644 index 00000000..a0a569df --- /dev/null +++ b/lakemeter/backend/app/models/dbu_rates.py @@ -0,0 +1,15 @@ +"""DBU Rates model for sync_pricing_dbu_rates table.""" +from sqlalchemy import Column, String, Float +from app.database import Base + + +class DBURates(Base): + __tablename__ = "sync_pricing_dbu_rates" + __table_args__ = {"schema": "lakemeter"} + + cloud = Column(String, primary_key=True) + region = Column(String, primary_key=True) + tier = Column(String, primary_key=True) + product_type = Column(String, primary_key=True) + dbu_price = Column(Float) + dbu_per_hour = Column(Float) diff --git a/lakemeter/backend/app/models/decision_record.py b/lakemeter/backend/app/models/decision_record.py new file mode 100644 index 00000000..9ef01661 --- /dev/null +++ b/lakemeter/backend/app/models/decision_record.py @@ -0,0 +1,29 @@ +"""Decision Record model for tracking AI decisions.""" +import uuid +from datetime import datetime +from sqlalchemy import Column, String, DateTime, Text, ForeignKey +from sqlalchemy.dialects.postgresql import UUID, JSON +from sqlalchemy.orm import relationship +from app.database import Base + + +class DecisionRecord(Base): + """Decision Record model matching lakemeter.decision_records table.""" + + __tablename__ = "decision_records" + __table_args__ = {"schema": "lakemeter"} + + record_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + line_item_id = Column(UUID(as_uuid=True), ForeignKey("lakemeter.line_items.line_item_id"), nullable=False) + record_type = Column(String(50)) + user_input = Column(Text) + agent_response = Column(Text) + assumptions = Column(JSON) + calculations = Column(JSON) + reasoning = Column(Text) + created_at = Column(DateTime, default=datetime.utcnow) + + # Relationships + line_item = relationship("LineItem", back_populates="decision_records") + + diff --git a/lakemeter/backend/app/models/estimate.py b/lakemeter/backend/app/models/estimate.py new file mode 100644 index 00000000..fa248544 --- /dev/null +++ b/lakemeter/backend/app/models/estimate.py @@ -0,0 +1,38 @@ +"""Estimate model.""" +import uuid +from datetime import datetime +from sqlalchemy import Column, String, Integer, Boolean, DateTime, Text, ForeignKey +from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.orm import relationship +from app.database import Base + + +class Estimate(Base): + """Estimate model matching lakemeter.estimates table.""" + + __tablename__ = "estimates" + __table_args__ = {"schema": "lakemeter"} + + estimate_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + estimate_name = Column(String(500), nullable=False) + owner_user_id = Column(UUID(as_uuid=True), ForeignKey("lakemeter.users.user_id")) + customer_name = Column(String(255)) + cloud = Column(String(50)) + region = Column(String(50)) + tier = Column(String(20)) + status = Column(String(20), default="draft") + version = Column(Integer, default=1) + template_id = Column(UUID(as_uuid=True), ForeignKey("lakemeter.templates.template_id")) + original_prompt = Column(Text) + display_order = Column(Integer, default=0) + is_deleted = Column(Boolean, default=False) + created_at = Column(DateTime, default=datetime.utcnow) + updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + updated_by = Column(UUID(as_uuid=True), ForeignKey("lakemeter.users.user_id")) + + # Relationships + owner = relationship("User", back_populates="estimates", foreign_keys=[owner_user_id]) + line_items = relationship("LineItem", back_populates="estimate", cascade="all, delete-orphan") + template = relationship("Template", back_populates="estimates") + sharing = relationship("Sharing", back_populates="estimate", cascade="all, delete-orphan") + conversations = relationship("ConversationMessage", back_populates="estimate", cascade="all, delete-orphan") diff --git a/lakemeter/backend/app/models/fmapi_databricks.py b/lakemeter/backend/app/models/fmapi_databricks.py new file mode 100644 index 00000000..d5d71b81 --- /dev/null +++ b/lakemeter/backend/app/models/fmapi_databricks.py @@ -0,0 +1,14 @@ +"""FMAPI Databricks model for sync_product_fmapi_databricks table.""" +from sqlalchemy import Column, String, Float +from app.database import Base + + +class FMAPIDatabricks(Base): + __tablename__ = "sync_product_fmapi_databricks" + __table_args__ = {"schema": "lakemeter"} + + model = Column(String, primary_key=True) + cloud = Column(String, primary_key=True) + rate_type = Column(String, primary_key=True) + price_per_million = Column(Float) + dbu_per_million = Column(Float) diff --git a/lakemeter/backend/app/models/fmapi_proprietary.py b/lakemeter/backend/app/models/fmapi_proprietary.py new file mode 100644 index 00000000..140d098b --- /dev/null +++ b/lakemeter/backend/app/models/fmapi_proprietary.py @@ -0,0 +1,16 @@ +"""FMAPI Proprietary model for sync_product_fmapi_proprietary table.""" +from sqlalchemy import Column, String, Float +from app.database import Base + + +class FMAPIProprietary(Base): + __tablename__ = "sync_product_fmapi_proprietary" + __table_args__ = {"schema": "lakemeter"} + + provider = Column(String, primary_key=True) + model = Column(String, primary_key=True) + endpoint_type = Column(String, primary_key=True) + context_length = Column(String, primary_key=True) + rate_type = Column(String, primary_key=True) + price_per_million = Column(Float) + dbu_per_million = Column(Float) diff --git a/lakemeter/backend/app/models/instance_dbu_rates.py b/lakemeter/backend/app/models/instance_dbu_rates.py new file mode 100644 index 00000000..c3301865 --- /dev/null +++ b/lakemeter/backend/app/models/instance_dbu_rates.py @@ -0,0 +1,22 @@ +"""Instance DBU Rates model for sync_ref_instance_dbu_rates table.""" +from sqlalchemy import Column, String, Float, Integer, Boolean, DateTime +from app.database import Base + + +class InstanceDBURates(Base): + """Model for instance DBU rates from Lakebase sync_ref_instance_dbu_rates table.""" + __tablename__ = "sync_ref_instance_dbu_rates" + __table_args__ = {'schema': 'lakemeter'} + + # Composite primary key: cloud + instance_type + cloud = Column(String, primary_key=True) + instance_type = Column(String, primary_key=True) + + instance_family = Column(String) + vcpus = Column(Integer) + memory_gb = Column(Integer) + dbu_rate = Column(Float) + is_active = Column(Boolean, default=True) + source = Column(String) + updated_at = Column(DateTime) + diff --git a/lakemeter/backend/app/models/line_item.py b/lakemeter/backend/app/models/line_item.py new file mode 100644 index 00000000..f17cbc6f --- /dev/null +++ b/lakemeter/backend/app/models/line_item.py @@ -0,0 +1,130 @@ +"""Line Item model for estimate workloads.""" +import uuid +from datetime import datetime +from sqlalchemy import Column, String, Integer, Boolean, DateTime, Text, ForeignKey, Numeric +from sqlalchemy.dialects.postgresql import UUID, JSON +from sqlalchemy.orm import relationship +from app.database import Base + + +class LineItem(Base): + """Line Item model matching lakemeter.line_items table.""" + + __tablename__ = "line_items" + __table_args__ = {"schema": "lakemeter"} + + line_item_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + estimate_id = Column(UUID(as_uuid=True), ForeignKey("lakemeter.estimates.estimate_id"), nullable=False) + display_order = Column(Integer, default=0) + workload_name = Column(String(255), nullable=False) + workload_type = Column(String(50), ForeignKey("lakemeter.ref_workload_types.workload_type")) + cloud = Column(String(50)) + + # Serverless toggle + serverless_enabled = Column(Boolean, default=False) + serverless_mode = Column(String(20)) # standard, performance + + # Classic Compute Configuration + photon_enabled = Column(Boolean, default=False) + driver_node_type = Column(String(100)) + worker_node_type = Column(String(100)) + num_workers = Column(Integer, default=1) + + # DLT Configuration + dlt_edition = Column(String(20)) # core, pro, advanced + + # DBSQL Configuration + dbsql_warehouse_type = Column(String(20)) # classic, pro, serverless + dbsql_warehouse_size = Column(String(20)) # 2x-small, x-small, small, medium, large, x-large, etc. + dbsql_num_clusters = Column(Integer, default=1) + dbsql_vm_pricing_tier = Column(String(20)) # on-demand, 1yr, 3yr + dbsql_vm_payment_option = Column(String(20)) # no-upfront, partial-upfront, all-upfront + + # Vector Search Configuration + vector_search_mode = Column(String(20)) # standard, storage_optimized + vector_capacity_millions = Column(Integer) + vector_search_storage_gb = Column(Integer) + + # Model Serving Configuration + model_serving_gpu_type = Column(String(50)) # cpu, gpu_small_t4, gpu_medium_a10g_1x, etc. + model_serving_concurrency = Column(Integer) # Resolved concurrency value (multiples of 4) + model_serving_scale_out = Column(String(20)) # small, medium, large, custom + model_servings_number_endpoints = Column(Integer) + + # Foundation Model API Configuration (Proprietary) + fmapi_provider = Column(String(50)) # anthropic, openai, google + fmapi_model = Column(String(100)) # claude-sonnet-4-5, gpt-5, etc. + fmapi_endpoint_type = Column(String(20)) # global, in_geo + fmapi_context_length = Column(String(20)) # all, short, long + fmapi_rate_type = Column(String(20)) # input_token, output_token, cache_read, cache_write + fmapi_quantity = Column(Numeric(18, 2)) # quantity in millions (M) + + # Databricks Apps Configuration + databricks_apps_size = Column(String(20)) # medium, large + databricks_apps_hours_per_month = Column(Numeric(12, 2)) + databricks_apps_num_apps = Column(Integer) + + # Clean Room Configuration + clean_room_num_collaborators = Column(Integer) # 1-10 + clean_room_days_per_month = Column(Integer) + + # AI Parse Configuration + ai_parse_calculation_method = Column(String(20)) # dbu, pages + ai_parse_complexity = Column(String(20)) # low_text, low_images, medium, high + ai_parse_dbu_quantity = Column(Numeric(12, 2)) + ai_parse_num_pages = Column(Numeric(12, 2)) # pages + + # Shutterstock ImageAI Configuration + shutterstock_imageai_num_images = Column(Integer) # number of images per month + + # Databricks Support Configuration + databricks_support_tier = Column(String(50)) + databricks_support_annual_commit = Column(Numeric(18, 2)) + + # Lakeflow Connect Configuration + lakeflow_connect_connector_type = Column(String(50)) + lakeflow_connect_pipeline_driver_node_type = Column(String(100)) + lakeflow_connect_pipeline_worker_node_type = Column(String(100)) + lakeflow_connect_pipeline_num_workers = Column(Integer) + lakeflow_connect_pipeline_serverless_mode = Column(String(20)) + lakeflow_connect_pipeline_runs_per_day = Column(Integer) + lakeflow_connect_pipeline_avg_runtime_minutes = Column(Integer) + lakeflow_connect_pipeline_hours_per_month = Column(Numeric(12, 2)) + lakeflow_connect_gateway_cloud = Column(String(50)) + lakeflow_connect_gateway_instance_type = Column(String(100)) + lakeflow_connect_gateway_num_workers = Column(Integer) + lakeflow_connect_gateway_hours_per_month = Column(Numeric(12, 2)) + + # Lakebase Configuration + lakebase_cu = Column(Numeric(5, 1)) + lakebase_storage_gb = Column(Integer) + lakebase_ha_nodes = Column(Integer) + lakebase_backup_retention_days = Column(Integer) + + # Usage Configuration + runs_per_day = Column(Integer) + avg_runtime_minutes = Column(Integer) + days_per_month = Column(Integer, default=22) + hours_per_month = Column(Integer) + + # Pricing Configuration + driver_pricing_tier = Column(String(20)) # on-demand, 1yr, 3yr + worker_pricing_tier = Column(String(20)) # spot, on-demand, 1yr, 3yr + driver_payment_option = Column(String(20)) # no-upfront, partial-upfront, all-upfront + worker_payment_option = Column(String(20)) # no-upfront, partial-upfront, all-upfront + + # Additional Configuration + workload_config = Column(JSON) # Flexible JSON for additional config + notes = Column(Text) + + # Calculated results + cost_calculation_response = Column(JSON) + calculation_completed_at = Column(DateTime) + + created_at = Column(DateTime, default=datetime.utcnow) + updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + + # Relationships + estimate = relationship("Estimate", back_populates="line_items") + workload_type_ref = relationship("RefWorkloadType", back_populates="line_items") + decision_records = relationship("DecisionRecord", back_populates="line_item", cascade="all, delete-orphan") diff --git a/lakemeter/backend/app/models/serverless_rates.py b/lakemeter/backend/app/models/serverless_rates.py new file mode 100644 index 00000000..78c5fa18 --- /dev/null +++ b/lakemeter/backend/app/models/serverless_rates.py @@ -0,0 +1,13 @@ +"""Serverless Rates model for sync_product_serverless_rates table.""" +from sqlalchemy import Column, String, Float +from app.database import Base + + +class ServerlessRates(Base): + __tablename__ = "sync_product_serverless_rates" + __table_args__ = {"schema": "lakemeter"} + + product = Column(String, primary_key=True) + cloud = Column(String, primary_key=True) + size_or_model = Column(String, primary_key=True) + dbu_per_hour = Column(Float) diff --git a/lakemeter/backend/app/models/sharing.py b/lakemeter/backend/app/models/sharing.py new file mode 100644 index 00000000..5f19311d --- /dev/null +++ b/lakemeter/backend/app/models/sharing.py @@ -0,0 +1,31 @@ +"""Sharing model for estimate sharing.""" +import uuid +from datetime import datetime +from sqlalchemy import Column, String, Integer, DateTime, ForeignKey +from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.orm import relationship +from app.database import Base + + +class Sharing(Base): + """Sharing model matching lakemeter.sharing table.""" + + __tablename__ = "sharing" + __table_args__ = {"schema": "lakemeter"} + + share_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + estimate_id = Column(UUID(as_uuid=True), ForeignKey("lakemeter.estimates.estimate_id"), nullable=False) + share_type = Column(String(20)) # user, link + shared_with_user_id = Column(UUID(as_uuid=True), ForeignKey("lakemeter.users.user_id")) + share_link = Column(String(255), unique=True) + permission = Column(String(20), default="view") # view, edit + expires_at = Column(DateTime) + access_count = Column(Integer, default=0) + last_accessed_at = Column(DateTime) + created_at = Column(DateTime, default=datetime.utcnow) + + # Relationships + estimate = relationship("Estimate", back_populates="sharing") + shared_with_user = relationship("User", back_populates="shared_estimates", foreign_keys=[shared_with_user_id]) + + diff --git a/lakemeter/backend/app/models/sku_discount_mapping.py b/lakemeter/backend/app/models/sku_discount_mapping.py new file mode 100644 index 00000000..0252b6e1 --- /dev/null +++ b/lakemeter/backend/app/models/sku_discount_mapping.py @@ -0,0 +1,14 @@ +"""SKU Discount Mapping model for sku_discount_mapping table.""" +from sqlalchemy import Column, String, Boolean +from app.database import Base + + +class SKUDiscountMapping(Base): + __tablename__ = "sku_discount_mapping" + __table_args__ = {"schema": "lakemeter"} + + sku = Column(String, primary_key=True) + discount_category = Column(String) + workload_group = Column(String) + description = Column(String) + cross_service_eligible = Column(Boolean, default=True) diff --git a/lakemeter/backend/app/models/sku_region_map.py b/lakemeter/backend/app/models/sku_region_map.py new file mode 100644 index 00000000..053b420e --- /dev/null +++ b/lakemeter/backend/app/models/sku_region_map.py @@ -0,0 +1,16 @@ +"""SKU Region Map model for sync_ref_sku_region_map table.""" +from sqlalchemy import Column, String +from app.database import Base + + +class SKURegionMap(Base): + """Model for SKU region mapping data from Lakebase sync_ref_sku_region_map table.""" + __tablename__ = "sync_ref_sku_region_map" + __table_args__ = {'schema': 'lakemeter'} + + # Columns based on actual table structure: + # cloud, sku_region, region_code + cloud = Column(String, primary_key=True) + sku_region = Column(String, primary_key=True) # e.g., "US_EAST_N_VIRGINIA" + region_code = Column(String) # e.g., "us-east-1" + diff --git a/lakemeter/backend/app/models/template.py b/lakemeter/backend/app/models/template.py new file mode 100644 index 00000000..0365f9c4 --- /dev/null +++ b/lakemeter/backend/app/models/template.py @@ -0,0 +1,32 @@ +"""Template model.""" +import uuid +from datetime import datetime +from sqlalchemy import Column, String, Integer, Boolean, DateTime, Text +from sqlalchemy.dialects.postgresql import UUID, JSON +from sqlalchemy.orm import relationship +from app.database import Base + + +class Template(Base): + """Template model matching lakemeter.templates table.""" + + __tablename__ = "templates" + __table_args__ = {"schema": "lakemeter"} + + template_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + template_name = Column(String(255), nullable=False) + workload_type = Column(String(100)) + file_path = Column(String(500)) + file_format = Column(String(10)) + mandatory_fields = Column(JSON) + optional_fields = Column(JSON) + description = Column(Text) + version = Column(Integer, default=1) + is_active = Column(Boolean, default=True) + created_at = Column(DateTime, default=datetime.utcnow) + updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + + # Relationships + estimates = relationship("Estimate", back_populates="template") + + diff --git a/lakemeter/backend/app/models/user.py b/lakemeter/backend/app/models/user.py new file mode 100644 index 00000000..85008c63 --- /dev/null +++ b/lakemeter/backend/app/models/user.py @@ -0,0 +1,29 @@ +"""User model.""" +import uuid +from datetime import datetime +from sqlalchemy import Column, String, Boolean, DateTime +from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.orm import relationship +from app.database import Base + + +class User(Base): + """User model matching lakemeter.users table.""" + + __tablename__ = "users" + __table_args__ = {"schema": "lakemeter"} + + user_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + email = Column(String(255), unique=True, nullable=False, index=True) + full_name = Column(String(255)) + role = Column(String(50)) + is_active = Column(Boolean, default=True) + last_login_at = Column(DateTime) + created_at = Column(DateTime, default=datetime.utcnow) + updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + + # Relationships + estimates = relationship("Estimate", back_populates="owner", foreign_keys="Estimate.owner_user_id") + shared_estimates = relationship("Sharing", back_populates="shared_with_user", foreign_keys="Sharing.shared_with_user_id") + + diff --git a/lakemeter/backend/app/models/vm_pricing.py b/lakemeter/backend/app/models/vm_pricing.py new file mode 100644 index 00000000..dc6b5ee5 --- /dev/null +++ b/lakemeter/backend/app/models/vm_pricing.py @@ -0,0 +1,23 @@ +"""VM Pricing model for sync_pricing_vm_costs table.""" +from sqlalchemy import Column, String, Float, DateTime +from app.database import Base + + +class VMPricing(Base): + """Model for VM pricing data from Lakebase sync_pricing_vm_costs table.""" + __tablename__ = "sync_pricing_vm_costs" + __table_args__ = {'schema': 'lakemeter'} + + # Composite primary key: cloud + region + instance_type + pricing_tier + payment_option + cloud = Column(String, primary_key=True) + region = Column(String, primary_key=True) + instance_type = Column(String, primary_key=True) + pricing_tier = Column(String, primary_key=True) + payment_option = Column(String, primary_key=True, default="NA") + + cost_per_hour = Column(Float, nullable=False) + currency = Column(String, default="USD") + source = Column(String) + fetched_at = Column(DateTime) + updated_at = Column(DateTime) + diff --git a/lakemeter/backend/app/models/workload_type.py b/lakemeter/backend/app/models/workload_type.py new file mode 100644 index 00000000..027abba2 --- /dev/null +++ b/lakemeter/backend/app/models/workload_type.py @@ -0,0 +1,43 @@ +"""Reference Workload Type model - matches the CSV schema.""" +from sqlalchemy import Column, String, Integer, Boolean, Text +from sqlalchemy.orm import relationship +from app.database import Base + + +class RefWorkloadType(Base): + """Reference Workload Type model matching lakemeter.ref_workload_types table.""" + + __tablename__ = "ref_workload_types" + __table_args__ = {"schema": "lakemeter"} + + workload_type = Column(String(50), primary_key=True) + display_name = Column(String(100), nullable=False) + description = Column(Text) + + # Configuration visibility flags + show_compute_config = Column(Boolean, default=False) + show_serverless_toggle = Column(Boolean, default=False) + show_serverless_performance_mode = Column(Boolean, default=False) + show_photon_toggle = Column(Boolean, default=False) + show_dlt_config = Column(Boolean, default=False) + show_dbsql_config = Column(Boolean, default=False) + show_serverless_product = Column(Boolean, default=False) + show_fmapi_config = Column(Boolean, default=False) + show_lakebase_config = Column(Boolean, default=False) + show_vector_search_mode = Column(Boolean, default=False) + show_vm_pricing = Column(Boolean, default=False) + show_usage_hours = Column(Boolean, default=False) + show_usage_runs = Column(Boolean, default=False) + show_usage_tokens = Column(Boolean, default=False) + + # SKU product types + sku_product_type_standard = Column(String(100)) + sku_product_type_photon = Column(String(100)) + sku_product_type_serverless = Column(String(100)) + + display_order = Column(Integer, default=0) + + # Relationships + line_items = relationship("LineItem", back_populates="workload_type_ref") + + diff --git a/lakemeter/backend/app/routes/__init__.py b/lakemeter/backend/app/routes/__init__.py new file mode 100644 index 00000000..dc3c4529 --- /dev/null +++ b/lakemeter/backend/app/routes/__init__.py @@ -0,0 +1,22 @@ +"""API Routes.""" +from app.routes.estimates import router as estimates_router +from app.routes.line_items import router as line_items_router +from app.routes.workload_types import router as workload_types_router +from app.routes.users import router as users_router +from app.routes.export import router as export_router +from app.routes.vm_pricing import router as vm_pricing_router +from app.routes.calculate import router as calculate_router +from app.routes.reference import router as reference_router + +__all__ = [ + "estimates_router", + "line_items_router", + "workload_types_router", + "users_router", + "export_router", + "vm_pricing_router", + "calculate_router", + "reference_router", +] + + diff --git a/lakemeter/backend/app/routes/calculate/__init__.py b/lakemeter/backend/app/routes/calculate/__init__.py new file mode 100644 index 00000000..03ee83d5 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/__init__.py @@ -0,0 +1,31 @@ +"""Calculate endpoints package — aggregates all workload calculation sub-routers.""" +from fastapi import APIRouter + +from app.routes.calculate.jobs import router as jobs_router +from app.routes.calculate.all_purpose import router as all_purpose_router +from app.routes.calculate.dbsql_calc import router as dbsql_router +from app.routes.calculate.dlt_calc import router as dlt_router +from app.routes.calculate.model_serving_calc import router as model_serving_router +from app.routes.calculate.fmapi_calc import router as fmapi_router +from app.routes.calculate.vector_search_calc import router as vector_search_router +from app.routes.calculate.lakebase_calc import router as lakebase_router +from app.routes.calculate.databricks_apps_calc import router as databricks_apps_router +from app.routes.calculate.clean_room_calc import router as clean_room_router +from app.routes.calculate.ai_parse_calc import router as ai_parse_router +from app.routes.calculate.shutterstock_calc import router as shutterstock_router +from app.routes.calculate.lakeflow_connect_calc import router as lakeflow_connect_router + +router = APIRouter(tags=["Cost Calculation"]) +router.include_router(jobs_router) +router.include_router(all_purpose_router) +router.include_router(dbsql_router) +router.include_router(dlt_router) +router.include_router(model_serving_router) +router.include_router(fmapi_router) +router.include_router(vector_search_router) +router.include_router(lakebase_router) +router.include_router(databricks_apps_router) +router.include_router(clean_room_router) +router.include_router(ai_parse_router) +router.include_router(shutterstock_router) +router.include_router(lakeflow_connect_router) diff --git a/lakemeter/backend/app/routes/calculate/ai_parse_calc.py b/lakemeter/backend/app/routes/calculate/ai_parse_calc.py new file mode 100644 index 00000000..43633fb2 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/ai_parse_calc.py @@ -0,0 +1,129 @@ +"""AI Parse (Document AI) calculation endpoint. + +AI Parse uses SERVERLESS_REAL_TIME_INFERENCE SKU. +Two modes: + - dbu: direct DBU hours/month + - pages: pages × complexity → DBU + Complexity rates (DBU per 1000 pages): + low_text: 12.5, low_images: 22.5, medium: 62.5, high: 87.5 +""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts +from app.routes.calculate.helpers import build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.schemas import AIParseCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + +# DBU per 1000 pages by complexity +COMPLEXITY_RATES = { + "low_text": 12.5, + "low_images": 22.5, + "medium": 62.5, + "high": 87.5, +} + + +@router.post("/calculate/ai-parse", tags=["Cost Calculation"]) +def calculate_ai_parse_cost( + request: AIParseCalculationRequest, + db: Session = Depends(get_db), +): + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + mode = (request.mode or "pages").lower() + if mode not in ("dbu", "pages"): + raise HTTPException(status_code=400, detail=f"Invalid mode: {mode}. Valid: dbu, pages") + + try: + sku_type = "SERVERLESS_REAL_TIME_INFERENCE" + + # Look up DBU price + price_row = db.execute(text(""" + SELECT price_per_dbu FROM lakemeter.sync_pricing_dbu_rates + WHERE UPPER(cloud) = UPPER(:cloud) AND UPPER(region) = UPPER(:region) + AND UPPER(tier) = UPPER(:tier) + AND (UPPER(product_type) = UPPER(:pt) OR UPPER(sku_name) = UPPER(:pt)) + LIMIT 1 + """), {"cloud": request.cloud, "region": request.region, "tier": request.tier, "pt": sku_type}).fetchone() + dbu_price = float(price_row.price_per_dbu) if price_row else 0.0 + + if mode == "dbu": + hours = request.hours_per_month or 0 + dbu_per_month = float(hours) + else: + complexity = (request.complexity or "medium").lower() + if complexity not in COMPLEXITY_RATES: + raise HTTPException(status_code=400, detail=f"Invalid complexity: {complexity}. Valid: {list(COMPLEXITY_RATES.keys())}") + pages_thousands = request.pages_thousands or 0 + rate = COMPLEXITY_RATES[complexity] + dbu_per_month = pages_thousands * rate + + dbu_cost = dbu_per_month * dbu_price + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=dbu_cost, + dbu_quantity=dbu_per_month, dbu_price=dbu_price, + ) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + configuration = { + "cloud": request.cloud.upper(), "region": request.region, + "tier": request.tier.upper(), "mode": mode, + } + if mode == "pages": + configuration["complexity"] = request.complexity or "medium" + configuration["pages_thousands"] = request.pages_thousands or 0 + + response_data = { + "success": True, + "data": { + "workload_type": "AI_PARSE", "sku_type": sku_type, + "configuration": configuration, + "dbu_calculation": { + "dbu_per_month": round(dbu_per_month, 2), + "dbu_price": dbu_price, + "dbu_cost_per_month": round(dbu_cost, 2), + }, + "total_cost": {"cost_per_month": round(dbu_cost, 2)}, + "sku_breakdown": sku_breakdown, + }, + } + + if mode == "pages": + response_data["data"]["dbu_calculation"]["dbu_per_1000_pages"] = COMPLEXITY_RATES.get( + (request.complexity or "medium").lower(), 62.5) + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating AI Parse cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/all_purpose.py b/lakemeter/backend/app/routes/calculate/all_purpose.py new file mode 100644 index 00000000..a90e237f --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/all_purpose.py @@ -0,0 +1,196 @@ +"""All-Purpose compute calculation endpoints (Classic + Serverless).""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_sku_specific_discounts +from app.services.lakebase_queries import call_calculate_line_item_costs, get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_classic, build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.jobs import _validate_usage_params, _validate_classic_inputs, _validate_serverless_inputs +from app.routes.calculate.schemas import AllPurposeClassicCalculationRequest, AllPurposeServerlessCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.post("/calculate/all-purpose-classic", tags=["Cost Calculation"]) +def calculate_all_purpose_classic_cost( + request: AllPurposeClassicCalculationRequest, + db: Session = Depends(get_db), +): + # Convert hours_per_day to hours_per_month if provided + if getattr(request, 'hours_per_day', None) is not None and request.hours_per_month is None: + days = request.days_per_month or 30 + request.hours_per_month = request.hours_per_day * days + + has_run_params, has_hours = _validate_usage_params(request) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + _validate_classic_inputs(request, db) + + try: + params = { + "p1": "ALL_PURPOSE", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": False, "p6": request.photon_enabled, "p7": None, + "p8": request.driver_node_type, "p9": request.worker_node_type, "p10": request.num_workers, + "p11": request.driver_pricing_tier, "p12": request.worker_pricing_tier, + "p13": getattr(request, 'runs_per_day', 0) or 0, + "p14": getattr(request, 'avg_runtime_minutes', 0) or 0, + "p15": request.days_per_month if has_run_params else 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": "standard", "p18": None, "p19": None, "p20": 1, "p21": "on_demand", "p22": None, + "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": request.driver_payment_option or "NA", + "p34": request.worker_payment_option or "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing(db, "ALL_PURPOSE", False, request.photon_enabled, None, None, None) + + sku_breakdown = build_sku_breakdown_classic( + sku_type=sku_type, + dbu_cost=float(row.dbu_cost_per_month or 0), dbu_quantity=float(row.dbu_per_month or 0), + dbu_price=float(row.dbu_price or 0), + driver_vm_cost=float(row.driver_vm_cost_per_month or 0), + worker_vm_cost=float(row.total_worker_vm_cost_per_month or 0), + hours_per_month=float(row.hours_per_month or 0), + driver_vm_price_per_hour=float(row.driver_vm_cost_per_hour or 0), + worker_vm_price_per_hour=float(row.worker_vm_cost_per_hour or 0), + driver_pricing_tier=request.driver_pricing_tier, + worker_pricing_tier=request.worker_pricing_tier, + num_workers=request.num_workers, + ) + + if request.discount_config and request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + if request.discount_config: + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "ALL_PURPOSE_CLASSIC", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "driver_node_type": request.driver_node_type, "worker_node_type": request.worker_node_type, + "num_workers": request.num_workers, "photon_enabled": request.photon_enabled, + "driver_pricing_tier": request.driver_pricing_tier, "worker_pricing_tier": request.worker_pricing_tier, + }, + "usage": {"hours_per_month": float(row.hours_per_month or 0)}, + "dbu_calculation": { + "dbu_per_hour": float(row.dbu_per_hour or 0), "dbu_per_month": float(row.dbu_per_month or 0), + "dbu_price": float(row.dbu_price or 0), "dbu_cost_per_month": float(row.dbu_cost_per_month or 0), + }, + "vm_costs": { + "driver_vm_cost_per_hour": float(row.driver_vm_cost_per_hour or 0), + "worker_vm_cost_per_hour": float(row.worker_vm_cost_per_hour or 0), + "total_vm_cost_per_hour": float(row.total_vm_cost_per_hour or 0), + "vm_cost_per_month": float(row.vm_cost_per_month or 0), + }, + "total_cost": { + "cost_per_month": float(row.cost_per_month or 0), + "breakdown": { + "dbu_cost": float(row.dbu_cost_per_month or 0), "vm_cost": float(row.vm_cost_per_month or 0), + }, + }, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating All-Purpose Classic cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} + + +@router.post("/calculate/all-purpose-serverless", tags=["Cost Calculation"]) +def calculate_all_purpose_serverless_cost( + request: AllPurposeServerlessCalculationRequest, + db: Session = Depends(get_db), +): + # Convert hours_per_day to hours_per_month if provided + if getattr(request, 'hours_per_day', None) is not None and request.hours_per_month is None: + days = request.days_per_month or 30 + request.hours_per_month = request.hours_per_day * days + + has_run_params, has_hours = _validate_usage_params(request, require_runs=False) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + _validate_serverless_inputs(request, db) + + try: + params = { + "p1": "ALL_PURPOSE", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": True, "p6": False, "p7": None, + "p8": request.driver_node_type, "p9": request.worker_node_type, + "p10": request.num_workers or 0, + "p11": "on_demand", "p12": "on_demand", + "p13": 0, "p14": 0, + "p15": request.days_per_month or 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": request.serverless_mode, "p18": None, "p19": None, "p20": 1, + "p21": "on_demand", "p22": None, "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": "NA", "p34": "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing(db, "ALL_PURPOSE", True, False, None, None, None) + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=float(row.dbu_cost_per_month or 0), + dbu_quantity=float(row.dbu_per_month or 0), dbu_price=float(row.dbu_price or 0), + ) + + if request.discount_config: + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "ALL_PURPOSE_SERVERLESS", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "serverless_mode": request.serverless_mode, + }, + "usage": {"hours_per_month": float(row.hours_per_month or 0)}, + "dbu_calculation": { + "dbu_per_hour": float(row.dbu_per_hour or 0), "dbu_per_month": float(row.dbu_per_month or 0), + "dbu_price": float(row.dbu_price or 0), "dbu_cost_per_month": float(row.dbu_cost_per_month or 0), + }, + "total_cost": {"cost_per_month": float(row.cost_per_month or 0)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating All-Purpose Serverless cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/clean_room_calc.py b/lakemeter/backend/app/routes/calculate/clean_room_calc.py new file mode 100644 index 00000000..60a070c1 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/clean_room_calc.py @@ -0,0 +1,103 @@ +"""Clean Room calculation endpoint. + +Clean Room uses CLEAN_ROOMS_COLLABORATOR SKU. +Priced per collaborator per day (max 10 collaborators). +""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts +from app.services.lakebase_queries import get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.schemas import CleanRoomCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.post("/calculate/clean-room", tags=["Cost Calculation"]) +def calculate_clean_room_cost( + request: CleanRoomCalculationRequest, + db: Session = Depends(get_db), +): + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + try: + days_per_month = request.days_per_month or 30 + collaborators = request.collaborators + + sku_type = "CLEAN_ROOMS_COLLABORATOR" + + # Look up DBU price for Clean Room SKU + price_row = db.execute(text(""" + SELECT price_per_dbu FROM lakemeter.sync_pricing_dbu_rates + WHERE UPPER(cloud) = UPPER(:cloud) AND UPPER(region) = UPPER(:region) + AND UPPER(tier) = UPPER(:tier) + AND (UPPER(product_type) = UPPER(:pt) OR UPPER(sku_name) = UPPER(:pt)) + LIMIT 1 + """), {"cloud": request.cloud, "region": request.region, "tier": request.tier, "pt": sku_type}).fetchone() + dbu_price = float(price_row.price_per_dbu) if price_row else 0.0 + + # 1 DBU per collaborator per day + dbu_per_day = float(collaborators) + dbu_per_month = dbu_per_day * days_per_month + dbu_cost = dbu_per_month * dbu_price + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=dbu_cost, + dbu_quantity=dbu_per_month, dbu_price=dbu_price, + ) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "CLEAN_ROOM", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, + "tier": request.tier.upper(), "collaborators": collaborators, + }, + "usage": {"days_per_month": days_per_month}, + "dbu_calculation": { + "dbu_per_collaborator_per_day": 1.0, + "dbu_per_day": dbu_per_day, + "dbu_per_month": round(dbu_per_month, 2), + "dbu_price": dbu_price, + "dbu_cost_per_month": round(dbu_cost, 2), + }, + "total_cost": {"cost_per_month": round(dbu_cost, 2)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating Clean Room cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/databricks_apps_calc.py b/lakemeter/backend/app/routes/calculate/databricks_apps_calc.py new file mode 100644 index 00000000..6cf6d3c8 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/databricks_apps_calc.py @@ -0,0 +1,108 @@ +"""Databricks Apps calculation endpoint. + +Databricks Apps uses ALL_PURPOSE_SERVERLESS_COMPUTE SKU. +Sizes: medium (0.5 DBU/hr), large (1.0 DBU/hr). Always-on (730 hrs/month default). +""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts +from app.services.lakebase_queries import get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.schemas import DatabricksAppsCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + +APPS_DBU_RATES = { + "medium": 0.5, + "large": 1.0, +} + + +@router.post("/calculate/databricks-apps", tags=["Cost Calculation"]) +def calculate_databricks_apps_cost( + request: DatabricksAppsCalculationRequest, + db: Session = Depends(get_db), +): + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + size = (request.size or "medium").lower() + if size not in APPS_DBU_RATES: + raise HTTPException(status_code=400, detail=f"Invalid size: {size}. Valid: medium, large") + + try: + hours_per_month = request.hours_per_month if request.hours_per_month is not None else 730 + dbu_per_hour = APPS_DBU_RATES[size] + dbu_per_month = dbu_per_hour * hours_per_month + + sku_type = get_product_type_for_pricing(db, "DATABRICKS_APPS", True, False, None, None, None) + # Look up DBU price + from sqlalchemy import text + price_row = db.execute(text(""" + SELECT price_per_dbu FROM lakemeter.sync_pricing_dbu_rates + WHERE UPPER(cloud) = UPPER(:cloud) AND UPPER(region) = UPPER(:region) + AND UPPER(tier) = UPPER(:tier) + AND (UPPER(product_type) = UPPER(:pt) OR UPPER(sku_name) = UPPER(:pt)) + LIMIT 1 + """), {"cloud": request.cloud, "region": request.region, "tier": request.tier, "pt": sku_type}).fetchone() + dbu_price = float(price_row.price_per_dbu) if price_row else 0.0 + + dbu_cost = dbu_per_month * dbu_price + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=dbu_cost, + dbu_quantity=dbu_per_month, dbu_price=dbu_price, + ) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "DATABRICKS_APPS", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, + "tier": request.tier.upper(), "size": size, + }, + "usage": {"hours_per_month": hours_per_month}, + "dbu_calculation": { + "dbu_per_hour": dbu_per_hour, + "dbu_per_month": round(dbu_per_month, 2), + "dbu_price": dbu_price, + "dbu_cost_per_month": round(dbu_cost, 2), + }, + "total_cost": {"cost_per_month": round(dbu_cost, 2)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating Databricks Apps cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/dbsql_calc.py b/lakemeter/backend/app/routes/calculate/dbsql_calc.py new file mode 100644 index 00000000..4386e794 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/dbsql_calc.py @@ -0,0 +1,212 @@ +"""DBSQL calculation endpoints (Classic/Pro + Serverless).""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import ( + validate_cloud, validate_region, validate_tier, + validate_warehouse_type, validate_warehouse_size, + validate_pricing_tier, validate_payment_option, + validate_sku_specific_discounts, +) +from app.services.lakebase_queries import call_calculate_line_item_costs, get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_classic, build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.jobs import _validate_usage_params +from app.routes.calculate.schemas import DBSQLClassicProCalculationRequest, DBSQLServerlessCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.post("/calculate/dbsql-classic-pro", tags=["Cost Calculation"]) +def calculate_dbsql_classic_pro_cost( + request: DBSQLClassicProCalculationRequest, + db: Session = Depends(get_db), +): + has_run_params, has_hours = _validate_usage_params(request, require_runs=False) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_warehouse_type(request.warehouse_type) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_warehouse_size(request.cloud, request.warehouse_type, request.warehouse_size, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + try: + params = { + "p1": "DBSQL", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": False, "p6": False, "p7": None, + "p8": None, "p9": None, "p10": 0, + "p11": request.driver_pricing_tier, "p12": request.worker_pricing_tier, + "p13": 0, "p14": 0, + "p15": request.days_per_month or 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": "standard", + "p18": request.warehouse_type.upper(), + "p19": request.warehouse_size, "p20": 1, + "p21": request.driver_pricing_tier, "p22": request.warehouse_size, + "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": request.driver_payment_option or "NA", + "p34": request.worker_payment_option or "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing( + db, "DBSQL", False, False, None, request.warehouse_type, None + ) + + sku_breakdown = build_sku_breakdown_classic( + sku_type=sku_type, + dbu_cost=float(row.dbu_cost_per_month or 0), dbu_quantity=float(row.dbu_per_month or 0), + dbu_price=float(row.dbu_price or 0), + driver_vm_cost=float(row.driver_vm_cost_per_month or 0), + worker_vm_cost=float(row.total_worker_vm_cost_per_month or 0), + hours_per_month=float(row.hours_per_month or 0), + driver_vm_price_per_hour=float(row.driver_vm_cost_per_hour or 0), + worker_vm_price_per_hour=float(row.worker_vm_cost_per_hour or 0), + driver_pricing_tier=request.driver_pricing_tier, + worker_pricing_tier=request.worker_pricing_tier, + num_workers=0, + ) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": f"DBSQL_{request.warehouse_type.upper()}", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "warehouse_type": request.warehouse_type.upper(), "warehouse_size": request.warehouse_size, + }, + "usage": {"hours_per_month": float(row.hours_per_month or 0)}, + "dbu_calculation": { + "dbu_per_hour": float(row.dbu_per_hour or 0), "dbu_per_month": float(row.dbu_per_month or 0), + "dbu_price": float(row.dbu_price or 0), "dbu_cost_per_month": float(row.dbu_cost_per_month or 0), + }, + "vm_costs": { + "driver_vm_cost_per_hour": float(row.driver_vm_cost_per_hour or 0), + "worker_vm_cost_per_hour": float(row.worker_vm_cost_per_hour or 0), + "vm_cost_per_month": float(row.vm_cost_per_month or 0), + }, + "total_cost": { + "cost_per_month": float(row.cost_per_month or 0), + "breakdown": { + "dbu_cost": float(row.dbu_cost_per_month or 0), "vm_cost": float(row.vm_cost_per_month or 0), + }, + }, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating DBSQL Classic/Pro cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} + + +@router.post("/calculate/dbsql-serverless", tags=["Cost Calculation"]) +def calculate_dbsql_serverless_cost( + request: DBSQLServerlessCalculationRequest, + db: Session = Depends(get_db), +): + has_run_params, has_hours = _validate_usage_params(request, require_runs=False) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + try: + params = { + "p1": "DBSQL", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": True, "p6": False, "p7": None, "p8": None, "p9": None, "p10": 0, + "p11": "on_demand", "p12": "on_demand", + "p13": 0, "p14": 0, "p15": request.days_per_month or 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": "standard", "p18": "SERVERLESS", "p19": request.warehouse_size, "p20": 1, + "p21": "on_demand", "p22": request.warehouse_size, + "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": "NA", "p34": "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing(db, "DBSQL", True, False, None, "SERVERLESS", None) + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=float(row.dbu_cost_per_month or 0), + dbu_quantity=float(row.dbu_per_month or 0), dbu_price=float(row.dbu_price or 0), + ) + + if request.discount_config: + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "DBSQL_SERVERLESS", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "warehouse_size": request.warehouse_size, + }, + "usage": {"hours_per_month": float(row.hours_per_month or 0)}, + "dbu_calculation": { + "dbu_per_hour": float(row.dbu_per_hour or 0), "dbu_per_month": float(row.dbu_per_month or 0), + "dbu_price": float(row.dbu_price or 0), "dbu_cost_per_month": float(row.dbu_cost_per_month or 0), + }, + "total_cost": {"cost_per_month": float(row.cost_per_month or 0)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating DBSQL Serverless cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/discount.py b/lakemeter/backend/app/routes/calculate/discount.py new file mode 100644 index 00000000..77a218da --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/discount.py @@ -0,0 +1,209 @@ +"""Discount helper functions — ported from old API (async→sync).""" +import logging +from typing import Union + +from sqlalchemy import text +from sqlalchemy.orm import Session + +logger = logging.getLogger(__name__) + + +def infer_discount_category(sku: str) -> str: + sku_upper = sku.upper() + if sku_upper.startswith("VM_"): + return "vm" + if sku_upper.startswith("STORAGE_"): + return "storage" + if "SUPPORT" in sku_upper: + return "support" + if "ENHANCED_SECURITY" in sku_upper: + return "platform_addon" + return "dbu" + + +def get_discount_category_from_db(sku: str, db: Session) -> tuple: + """Returns (discount_category, cross_service_eligible).""" + try: + query = text(""" + SELECT discount_category, COALESCE(cross_service_eligible, TRUE) + FROM lakemeter.sku_discount_mapping + WHERE sku = :sku + """) + row = db.execute(query, {"sku": sku}).fetchone() + if row: + return (row[0], bool(row[1])) + logger.warning(f"SKU '{sku}' not found in sku_discount_mapping, inferring category") + return (infer_discount_category(sku), True) + except Exception as e: + logger.error(f"Error querying discount category for SKU '{sku}': {e}") + return (infer_discount_category(sku), True) + + +def get_discount_for_sku( + sku: str, + discount_config, + db: Session, +) -> tuple: + """Returns (discount_percentage, source_label).""" + if not discount_config: + return (0.0, "none") + + if hasattr(discount_config, "sku_specific"): + sku_specific = discount_config.sku_specific + global_discounts = discount_config.global_discounts + else: + sku_specific = discount_config.get("sku_specific", {}) + global_discounts = discount_config.get("global", {}) + + # 1. Exact SKU match always wins + if sku in sku_specific: + return (float(sku_specific[sku]), f"sku_specific:{sku}") + + # 2. Look up category + cross-service eligibility + category, cross_service_eligible = get_discount_category_from_db(sku, db) + + def _get_global(field: str) -> float: + if hasattr(global_discounts, field): + return float(getattr(global_discounts, field)) + return float(global_discounts.get(field, 0)) + + if category == "dbu": + if not cross_service_eligible: + return (0.0, "global:dbu:excluded_from_cross_service") + return (_get_global("dbu_discount"), "global:dbu") + elif category == "vm": + return (_get_global("vm_discount"), "global:vm") + elif category == "storage": + return (_get_global("storage_discount"), "global:storage") + elif category == "platform_addon": + return (_get_global("platform_addon_discount"), "global:platform_addon") + elif category == "support": + return (_get_global("support_discount"), "global:support") + + return (0.0, "none") + + +def apply_discount_to_sku_breakdown( + sku_breakdown: list, + discount_config, + db: Session, +) -> list: + if not discount_config or not sku_breakdown: + return sku_breakdown + + enhanced_breakdown = [] + for item in sku_breakdown: + sku = item["sku"] + original_cost = item["cost"] + unit_price = item["unit_price_before_discount"] + + discount_pct, discount_source = get_discount_for_sku(sku, discount_config, db) + + discount_amount = original_cost * (discount_pct / 100) + discounted_cost = original_cost - discount_amount + discounted_unit_price = unit_price * (1 - discount_pct / 100) + + enhanced_item = { + **item, + "cost_after_discount": round(discounted_cost, 2), + "unit_price_after_discount": round(discounted_unit_price, 6), + "discount": { + "percentage": discount_pct, + "amount": round(discount_amount, 2), + "source": discount_source, + }, + } + enhanced_breakdown.append(enhanced_item) + + return enhanced_breakdown + + +def calculate_total_discount_summary(sku_breakdown: list) -> dict: + total_before = 0.0 + total_after = 0.0 + for item in sku_breakdown: + total_before += item["cost"] + total_after += item.get("cost_after_discount", item["cost"]) + + total_discount = total_before - total_after + total_discount_pct = (total_discount / total_before * 100) if total_before > 0 else 0 + + return { + "total_cost_before_discount": round(total_before, 2), + "total_cost_after_discount": round(total_after, 2), + "total_discount_amount": round(total_discount, 2), + "total_discount_percentage": round(total_discount_pct, 2), + "discount_applied": total_discount > 0, + } + + +def enhance_total_cost_with_discount(total_cost: dict, sku_breakdown: list) -> dict: + by_type = {} + for item in sku_breakdown: + item_type = item["type"] + if item_type not in by_type: + by_type[item_type] = {"cost_before": 0, "cost_after": 0, "discount_amount": 0} + by_type[item_type]["cost_before"] += item["cost"] + by_type[item_type]["cost_after"] += item.get("cost_after_discount", item["cost"]) + by_type[item_type]["discount_amount"] += item.get("discount", {}).get("amount", 0) + + enhanced = total_cost.copy() + + if "breakdown" in total_cost: + breakdown_after_discount = {} + for key in total_cost["breakdown"]: + type_key = key.replace("_cost", "") + if type_key in by_type: + breakdown_after_discount[key] = round(by_type[type_key]["cost_after"], 2) + else: + breakdown_after_discount[key] = total_cost["breakdown"][key] + enhanced["breakdown_after_discount"] = breakdown_after_discount + + discount_by_category = {} + for key in total_cost["breakdown"]: + type_key = key.replace("_cost", "") + if type_key in by_type and by_type[type_key]["discount_amount"] > 0: + cost_before = by_type[type_key]["cost_before"] + discount_amt = by_type[type_key]["discount_amount"] + discount_pct = (discount_amt / cost_before * 100) if cost_before > 0 else 0 + discount_by_category[type_key] = {"amount": round(discount_amt, 2), "percentage": round(discount_pct, 2)} + else: + discount_by_category[type_key] = {"amount": 0, "percentage": 0} + enhanced["discount_by_category"] = discount_by_category + else: + breakdown_after_discount = {} + discount_by_category = {} + for type_key, data in by_type.items(): + cost_key = f"{type_key}_cost" + breakdown_after_discount[cost_key] = round(data["cost_after"], 2) + if data["discount_amount"] > 0: + discount_pct = (data["discount_amount"] / data["cost_before"] * 100) if data["cost_before"] > 0 else 0 + discount_by_category[type_key] = {"amount": round(data["discount_amount"], 2), "percentage": round(discount_pct, 2)} + enhanced["breakdown_after_discount"] = breakdown_after_discount + enhanced["discount_by_category"] = discount_by_category + + total_cost_before = sum(item["cost"] for item in sku_breakdown) + total_cost_after = sum(item.get("cost_after_discount", item["cost"]) for item in sku_breakdown) + total_discount = total_cost_before - total_cost_after + effective_discount_pct = (total_discount / total_cost_before * 100) if total_cost_before > 0 else 0 + + enhanced["total_after_discount"] = round(total_cost_after, 2) + enhanced["total_discount"] = round(total_discount, 2) + enhanced["effective_discount_percentage"] = round(effective_discount_pct, 2) + + excluded_skus = [ + item["sku"] + for item in sku_breakdown + if item.get("discount", {}).get("source", "").endswith("excluded_from_cross_service") + ] + if excluded_skus: + enhanced["cross_service_exclusions"] = { + "excluded_skus": excluded_skus, + "reason": ( + "These SKUs are excluded from the cross-service (dbu_discount) per " + "https://www.databricks.com/product/sku-groups#exclusions. " + "To discount them, add each SKU to sku_specific." + ), + } + + return enhanced diff --git a/lakemeter/backend/app/routes/calculate/dlt_calc.py b/lakemeter/backend/app/routes/calculate/dlt_calc.py new file mode 100644 index 00000000..df873d6f --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/dlt_calc.py @@ -0,0 +1,196 @@ +"""DLT calculation endpoints (Classic + Serverless).""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_sku_specific_discounts +from app.services.lakebase_queries import call_calculate_line_item_costs, get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_classic, build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.jobs import _validate_usage_params, _validate_classic_inputs, _validate_serverless_inputs +from app.routes.calculate.schemas import DLTClassicCalculationRequest, DLTServerlessCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.post("/calculate/dlt-classic", tags=["Cost Calculation"]) +def calculate_dlt_classic_cost( + request: DLTClassicCalculationRequest, + db: Session = Depends(get_db), +): + has_run_params, has_hours = _validate_usage_params(request) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + _validate_classic_inputs(request, db) + + try: + params = { + "p1": "DLT", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": False, "p6": request.photon_enabled, "p7": request.dlt_edition.upper(), + "p8": request.driver_node_type, "p9": request.worker_node_type, "p10": request.num_workers, + "p11": request.driver_pricing_tier, "p12": request.worker_pricing_tier, + "p13": request.runs_per_day if has_run_params else 0, + "p14": request.avg_runtime_minutes if has_run_params else 0, + "p15": request.days_per_month if has_run_params else 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": "standard", "p18": None, "p19": None, "p20": 1, "p21": "on_demand", "p22": None, + "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": request.driver_payment_option or "NA", + "p34": request.worker_payment_option or "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing( + db, "DLT", False, request.photon_enabled, request.dlt_edition, None, None + ) + + sku_breakdown = build_sku_breakdown_classic( + sku_type=sku_type, + dbu_cost=float(row.dbu_cost_per_month or 0), dbu_quantity=float(row.dbu_per_month or 0), + dbu_price=float(row.dbu_price or 0), + driver_vm_cost=float(row.driver_vm_cost_per_month or 0), + worker_vm_cost=float(row.total_worker_vm_cost_per_month or 0), + hours_per_month=float(row.hours_per_month or 0), + driver_vm_price_per_hour=float(row.driver_vm_cost_per_hour or 0), + worker_vm_price_per_hour=float(row.worker_vm_cost_per_hour or 0), + driver_pricing_tier=request.driver_pricing_tier, + worker_pricing_tier=request.worker_pricing_tier, + num_workers=request.num_workers, + ) + + if request.discount_config and request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + if request.discount_config: + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "DLT", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "dlt_edition": request.dlt_edition.upper(), "photon_enabled": request.photon_enabled, + "driver_node_type": request.driver_node_type, "worker_node_type": request.worker_node_type, + "num_workers": request.num_workers, + }, + "usage": {"hours_per_month": float(row.hours_per_month or 0)}, + "dbu_calculation": { + "dbu_per_hour": float(row.dbu_per_hour or 0), "dbu_per_month": float(row.dbu_per_month or 0), + "dbu_price": float(row.dbu_price or 0), "dbu_cost_per_month": float(row.dbu_cost_per_month or 0), + }, + "vm_costs": { + "driver_vm_cost_per_hour": float(row.driver_vm_cost_per_hour or 0), + "worker_vm_cost_per_hour": float(row.worker_vm_cost_per_hour or 0), + "total_vm_cost_per_hour": float(row.total_vm_cost_per_hour or 0), + "vm_cost_per_month": float(row.vm_cost_per_month or 0), + }, + "total_cost": { + "cost_per_month": float(row.cost_per_month or 0), + "breakdown": { + "dbu_cost": float(row.dbu_cost_per_month or 0), "vm_cost": float(row.vm_cost_per_month or 0), + }, + }, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating DLT Classic cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} + + +@router.post("/calculate/dlt-serverless", tags=["Cost Calculation"]) +def calculate_dlt_serverless_cost( + request: DLTServerlessCalculationRequest, + db: Session = Depends(get_db), +): + has_run_params, has_hours = _validate_usage_params(request) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + _validate_serverless_inputs(request, db) + + try: + params = { + "p1": "DLT", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": True, "p6": True, "p7": None, + "p8": request.driver_node_type, "p9": request.worker_node_type, + "p10": request.num_workers or 0, + "p11": "on_demand", "p12": "on_demand", + "p13": request.runs_per_day if has_run_params else 0, + "p14": request.avg_runtime_minutes if has_run_params else 0, + "p15": request.days_per_month if has_run_params else 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": request.serverless_mode, "p18": None, "p19": None, "p20": 1, + "p21": "on_demand", "p22": None, "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": "NA", "p34": "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing(db, "DLT", True, False, None, None, None) + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=float(row.dbu_cost_per_month or 0), + dbu_quantity=float(row.dbu_per_month or 0), dbu_price=float(row.dbu_price or 0), + ) + + if request.discount_config and request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + if request.discount_config: + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "DLT_SERVERLESS", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "serverless_mode": request.serverless_mode, + }, + "usage": {"hours_per_month": float(row.hours_per_month or 0)}, + "dbu_calculation": { + "dbu_per_hour": float(row.dbu_per_hour or 0), "dbu_per_month": float(row.dbu_per_month or 0), + "dbu_price": float(row.dbu_price or 0), "dbu_cost_per_month": float(row.dbu_cost_per_month or 0), + }, + "total_cost": { + "cost_per_month": float(row.cost_per_month or 0), + "note": "Serverless has no VM costs", + }, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating DLT Serverless cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/fmapi_calc.py b/lakemeter/backend/app/routes/calculate/fmapi_calc.py new file mode 100644 index 00000000..17dccc96 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/fmapi_calc.py @@ -0,0 +1,293 @@ +"""FMAPI calculation endpoints (Databricks + Proprietary token-based pricing). + +Uses static JSON pricing data instead of stored functions to avoid +OSS Lakebase schema compatibility issues with calculate_fmapi_databricks_dbu. +""" +import json +import logging +import os +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import ( + validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts, +) +from app.services.lakebase_queries import get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.schemas import FMAPIDatabricksCalculationRequest, FMAPIProprietaryCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + +# Load FMAPI pricing from static JSON +_PRICING_DIR = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'static', 'pricing') + + +def _load_json(filename: str) -> dict: + path = os.path.join(_PRICING_DIR, filename) + if os.path.exists(path): + with open(path, 'r') as f: + return json.load(f) + return {} + + +FMAPI_DB_RATES = _load_json('fmapi-databricks-rates.json') +FMAPI_PROP_RATES = _load_json('fmapi-proprietary-rates.json') + +# DBU price ($/DBU) for FMAPI SKUs — looked up from dbu-rates.json or fallback +DBU_RATES_BY_REGION = _load_json('dbu-rates.json') +FALLBACK_DBU_PRICES = { + 'SERVERLESS_REAL_TIME_INFERENCE': 0.07, + 'OPENAI_MODEL_SERVING': 0.07, + 'ANTHROPIC_MODEL_SERVING': 0.07, + 'GEMINI_MODEL_SERVING': 0.07, + 'GOOGLE_MODEL_SERVING': 0.07, +} + + +def _get_dbu_price_for_sku(cloud: str, region: str, tier: str, sku: str) -> float: + """Look up $/DBU price for a SKU from static pricing data.""" + key = f"{cloud}:{region}:{tier.upper()}" + region_rates = DBU_RATES_BY_REGION.get(key, {}) + if sku in region_rates: + return region_rates[sku] + # Try without region specificity + for k, v in DBU_RATES_BY_REGION.items(): + parts = k.split(':') + if len(parts) == 3 and parts[0] == cloud and parts[2] == tier.upper() and sku in v: + return v[sku] + return FALLBACK_DBU_PRICES.get(sku, 0.07) + + +def _build_fmapi_line_items_direct(request, workload_type, cloud, region, tier, + provider=None, endpoint_type="global", context_length="all"): + """Build FMAPI line items using static pricing JSON (no stored function).""" + line_items = [] + + token_types = [] + + # Frontend sends quantity + rate_type (single rate per request) + if getattr(request, 'quantity', None) and request.quantity > 0 and getattr(request, 'rate_type', None): + token_types.append((request.rate_type, request.quantity)) + else: + # Legacy: input_tokens_per_month / output_tokens_per_month / provisioned_hours_per_month + if request.input_tokens_per_month and request.input_tokens_per_month > 0: + token_types.append(("input_token", request.input_tokens_per_month)) + if request.output_tokens_per_month and request.output_tokens_per_month > 0: + token_types.append(("output_token", request.output_tokens_per_month)) + if getattr(request, 'provisioned_hours_per_month', None) and request.provisioned_hours_per_month > 0: + token_types.append(("provisioned_scaling", request.provisioned_hours_per_month)) + + if not token_types: + raise HTTPException(status_code=400, detail="Must provide at least one token quantity (input, output, or provisioned)") + + cloud_lc = cloud.lower() + + for rate_type, quantity in token_types: + # Look up rate from static JSON + if workload_type == "FMAPI_DATABRICKS": + key = f"{cloud_lc}:{request.model}:{rate_type}" + info = FMAPI_DB_RATES.get(key, {}) + else: + key = f"{cloud_lc}:{provider}:{request.model}:{endpoint_type}:{context_length}:{rate_type}" + info = FMAPI_PROP_RATES.get(key, {}) + + if not info: + logger.warning(f"FMAPI rate not found for key={key}") + line_items.append({ + "rate_type": rate_type, "quantity": quantity, + "dbu_quantity": 0, "dbu_price": 0, "dbu_per_hour": 0, "cost": 0, + "unit": "million_tokens" if rate_type in ("input_token", "output_token") else "hours", + }) + continue + + dbu_rate = info.get('dbu_rate', 0) + input_divisor = info.get('input_divisor', 1_000_000) + is_hourly = info.get('is_hourly', False) + sku_product_type = info.get('sku_product_type', 'SERVERLESS_REAL_TIME_INFERENCE') + + # Calculate DBU quantity + # For token-based: quantity is in millions, dbu_rate is DBU per million tokens + # For hourly (provisioned): quantity is hours, dbu_rate is DBU per hour + if is_hourly: + dbu_quantity = dbu_rate * quantity + else: + # quantity is already in millions (e.g., 10 = 10M tokens) + # dbu_rate is DBU per million tokens + dbu_quantity = dbu_rate * quantity + + # Get $/DBU price + dbu_price = _get_dbu_price_for_sku(cloud_lc, region, tier, sku_product_type) + cost = dbu_quantity * dbu_price + + is_token = rate_type in ("input_token", "output_token", "cache_read", "cache_write") + + line_items.append({ + "rate_type": rate_type, + "quantity": quantity, + "dbu_quantity": round(dbu_quantity, 6), + "dbu_price": dbu_price, + "dbu_per_hour": dbu_rate if is_hourly else 0, + "cost": round(cost, 2), + "unit": "million_tokens" if is_token else "hours", + }) + + return line_items + + +@router.post("/calculate/fmapi-databricks", tags=["Cost Calculation"]) +def calculate_fmapi_databricks_cost( + request: FMAPIDatabricksCalculationRequest, + db: Session = Depends(get_db), +): + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + try: + cloud_upper = request.cloud.upper() + tier_upper = request.tier.upper() + + line_items = _build_fmapi_line_items_direct( + request, "FMAPI_DATABRICKS", cloud_upper, request.region, tier_upper, + ) + + sku_type = get_product_type_for_pricing(db, "FMAPI_DATABRICKS", True, False, None, None, None) + total_cost = sum(item["cost"] for item in line_items) + + sku_breakdown = [] + for item in line_items: + if item["cost"] > 0: + sku_breakdown.append({ + "type": "dbu", + "sku": sku_type or "SERVERLESS_REAL_TIME_INFERENCE", + "cost": round(item["cost"], 2), + "qty": round(item["dbu_quantity"], 6), + "usage_unit": item["unit"], + "unit_price_before_discount": round(item["dbu_price"], 6), + "rate_type": item["rate_type"], + }) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "FMAPI_DATABRICKS", "sku_type": sku_type, + "configuration": { + "cloud": cloud_upper, "region": request.region, "tier": tier_upper, + "model": request.model, + }, + "line_items": line_items, + "total_cost": {"cost_per_month": round(total_cost, 2)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating FMAPI Databricks cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} + + +@router.post("/calculate/fmapi-proprietary", tags=["Cost Calculation"]) +def calculate_fmapi_proprietary_cost( + request: FMAPIProprietaryCalculationRequest, + db: Session = Depends(get_db), +): + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + try: + cloud_upper = request.cloud.upper() + tier_upper = request.tier.upper() + + line_items = _build_fmapi_line_items_direct( + request, "FMAPI_PROPRIETARY", cloud_upper, request.region, tier_upper, + provider=request.provider, + endpoint_type=request.endpoint_type, + context_length=request.context_length or "all", + ) + + sku_type = get_product_type_for_pricing( + db, "FMAPI_PROPRIETARY", True, False, None, None, request.provider + ) + total_cost = sum(item["cost"] for item in line_items) + + sku_breakdown = [] + for item in line_items: + if item["cost"] > 0: + sku_breakdown.append({ + "type": "dbu", + "sku": sku_type or f"{request.provider.upper()}_MODEL_SERVING", + "cost": round(item["cost"], 2), + "qty": round(item["dbu_quantity"], 6), + "usage_unit": item["unit"], + "unit_price_before_discount": round(item["dbu_price"], 6), + "rate_type": item["rate_type"], + }) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "FMAPI_PROPRIETARY", "sku_type": sku_type, + "configuration": { + "cloud": cloud_upper, "region": request.region, "tier": tier_upper, + "provider": request.provider, "model": request.model, + "endpoint_type": request.endpoint_type, + "context_length": request.context_length, + }, + "line_items": line_items, + "total_cost": {"cost_per_month": round(total_cost, 2)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating FMAPI Proprietary cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/helpers.py b/lakemeter/backend/app/routes/calculate/helpers.py new file mode 100644 index 00000000..403190f4 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/helpers.py @@ -0,0 +1,136 @@ +"""Shared helper functions for calculation endpoints.""" + + +def get_sku_type( + workload_type: str, + serverless_enabled: bool = False, + photon_enabled: bool = False, + dlt_edition: str = None, + dbsql_warehouse_type: str = None, + fmapi_provider: str = None, +) -> str: + """Determine the SKU product type based on workload configuration.""" + workload_upper = workload_type.upper() + + if workload_upper == "JOBS": + if serverless_enabled: + return "JOBS_SERVERLESS_COMPUTE" + elif photon_enabled: + return "JOBS_COMPUTE_(PHOTON)" + else: + return "JOBS_COMPUTE" + + elif workload_upper == "ALL_PURPOSE": + if serverless_enabled: + return "INTERACTIVE_SERVERLESS_COMPUTE" + elif photon_enabled: + return "ALL_PURPOSE_COMPUTE_(PHOTON)" + else: + return "ALL_PURPOSE_COMPUTE" + + elif workload_upper == "DLT": + if serverless_enabled: + return "DELTA_LIVE_TABLES_SERVERLESS" + else: + edition = (dlt_edition or "CORE").upper() + base = f"DLT_{edition}_COMPUTE" + return f"{base}_(PHOTON)" if photon_enabled else base + + elif workload_upper == "DBSQL": + warehouse_type_upper = (dbsql_warehouse_type or "CLASSIC").upper() + if warehouse_type_upper == "SERVERLESS": + return "SERVERLESS_SQL_COMPUTE" + elif warehouse_type_upper == "PRO": + return "SQL_PRO_COMPUTE" + else: + return "SQL_COMPUTE" + + elif workload_upper == "VECTOR_SEARCH": + return "VECTOR_SEARCH_ENDPOINT" + + elif workload_upper == "MODEL_SERVING": + return "SERVERLESS_REAL_TIME_INFERENCE" + + elif workload_upper == "FMAPI_DATABRICKS": + return "SERVERLESS_REAL_TIME_INFERENCE" + + elif workload_upper == "FMAPI_PROPRIETARY": + if fmapi_provider: + return f"{fmapi_provider.upper()}_MODEL_SERVING" + return "MODEL_SERVING" + + elif workload_upper == "LAKEBASE": + return "DATABASE_SERVERLESS_COMPUTE" + + else: + return "JOBS_COMPUTE" + + +def build_sku_breakdown_classic( + sku_type: str, + dbu_cost: float, + dbu_quantity: float, + dbu_price: float, + driver_vm_cost: float, + worker_vm_cost: float, + hours_per_month: float, + driver_vm_price_per_hour: float, + worker_vm_price_per_hour: float, + driver_pricing_tier: str, + worker_pricing_tier: str, + num_workers: int, +): + """Build flat-list SKU breakdown for classic compute workloads.""" + breakdown = [] + + if dbu_cost > 0: + breakdown.append({ + "type": "dbu", + "sku": sku_type, + "cost": round(dbu_cost, 2), + "qty": round(dbu_quantity, 2), + "usage_unit": "DBU", + "unit_price_before_discount": round(dbu_price, 6), + }) + + if driver_vm_cost > 0: + breakdown.append({ + "type": "vm", + "sku": f"VM_{driver_pricing_tier.upper()}", + "cost": round(driver_vm_cost, 2), + "qty": round(hours_per_month, 2), + "usage_unit": "DBU", + "unit_price_before_discount": round(driver_vm_price_per_hour, 6), + }) + + if worker_vm_cost > 0 and num_workers > 0: + breakdown.append({ + "type": "vm", + "sku": f"VM_{worker_pricing_tier.upper()}", + "cost": round(worker_vm_cost, 2), + "qty": round(hours_per_month * num_workers, 2), + "usage_unit": "DBU", + "unit_price_before_discount": round(worker_vm_price_per_hour, 6), + }) + + return breakdown + + +def build_sku_breakdown_serverless( + sku_type: str, + dbu_cost: float, + dbu_quantity: float, + dbu_price: float, +): + """Build flat-list SKU breakdown for serverless workloads (DBU only).""" + breakdown = [] + if dbu_cost > 0: + breakdown.append({ + "type": "dbu", + "sku": sku_type, + "cost": round(dbu_cost, 2), + "qty": round(dbu_quantity, 2), + "usage_unit": "DBU", + "unit_price_before_discount": round(dbu_price, 6), + }) + return breakdown diff --git a/lakemeter/backend/app/routes/calculate/jobs.py b/lakemeter/backend/app/routes/calculate/jobs.py new file mode 100644 index 00000000..1cbc8566 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/jobs.py @@ -0,0 +1,295 @@ +"""Jobs compute calculation endpoints (Classic + Serverless).""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import ( + validate_cloud, validate_region, validate_tier, validate_instance_type, + validate_pricing_tier, validate_payment_option, validate_pricing_payment_combination, + validate_sku_specific_discounts, +) +from app.routes.calculate.helpers import get_sku_type, build_sku_breakdown_classic, build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.schemas import JobsClassicCalculationRequest, JobsServerlessCalculationRequest +from app.services.lakebase_queries import call_calculate_line_item_costs, get_product_type_for_pricing + +logger = logging.getLogger(__name__) +router = APIRouter() + + +def _validate_usage_params(request, require_runs=True): + """Validate usage params. Returns (has_run_params, has_hours).""" + if require_runs: + has_run_params = all([ + getattr(request, 'runs_per_day', None) is not None, + getattr(request, 'avg_runtime_minutes', None) is not None, + ]) + else: + has_run_params = all([ + getattr(request, 'hours_per_day', None) is not None, + ]) + has_hours = request.hours_per_month is not None + + if not has_run_params and not has_hours: + raise HTTPException(status_code=400, detail={ + "code": "MISSING_USAGE_PARAMETERS", + "message": "Must provide either run-based parameters OR hours_per_month", + }) + if has_run_params and has_hours: + raise HTTPException(status_code=400, detail={ + "code": "CONFLICTING_USAGE_PARAMETERS", + "message": "Cannot provide both run-based parameters and hours_per_month.", + }) + return has_run_params, has_hours + + +def _validate_classic_inputs(request, db): + """Validate common classic compute inputs.""" + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_instance_type(request.cloud, request.driver_node_type, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_instance_type(request.cloud, request.worker_node_type, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_pricing_tier(request.driver_pricing_tier, is_driver=True) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_pricing_tier(request.worker_pricing_tier, is_driver=False) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + if request.driver_payment_option: + error = validate_payment_option(request.driver_payment_option) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + if request.worker_payment_option: + error = validate_payment_option(request.worker_payment_option) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_pricing_payment_combination(request.cloud, request.driver_pricing_tier, request.driver_payment_option) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_pricing_payment_combination(request.cloud, request.worker_pricing_tier, request.worker_payment_option) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + +def _validate_serverless_inputs(request, db): + """Validate common serverless compute inputs.""" + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + +@router.post("/calculate/jobs-classic", tags=["Cost Calculation"]) +def calculate_jobs_classic_cost( + request: JobsClassicCalculationRequest, + db: Session = Depends(get_db), +): + has_run_params, has_hours = _validate_usage_params(request) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + _validate_classic_inputs(request, db) + + try: + params = { + "p1": "JOBS", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": False, "p6": request.photon_enabled, "p7": None, + "p8": request.driver_node_type, "p9": request.worker_node_type, "p10": request.num_workers, + "p11": request.driver_pricing_tier, "p12": request.worker_pricing_tier, + "p13": request.runs_per_day if has_run_params else 0, + "p14": request.avg_runtime_minutes if has_run_params else 0, + "p15": request.days_per_month if has_run_params else 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": "standard", "p18": None, "p19": None, "p20": 1, "p21": "on_demand", "p22": None, + "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": request.driver_payment_option or "NA", + "p34": request.worker_payment_option or "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing( + db, "JOBS", False, request.photon_enabled, None, None, None + ) + + sku_breakdown = build_sku_breakdown_classic( + sku_type=sku_type, + dbu_cost=float(row.dbu_cost_per_month or 0), + dbu_quantity=float(row.dbu_per_month or 0), + dbu_price=float(row.dbu_price or 0), + driver_vm_cost=float(row.driver_vm_cost_per_month or 0), + worker_vm_cost=float(row.total_worker_vm_cost_per_month or 0), + hours_per_month=float(row.hours_per_month or 0), + driver_vm_price_per_hour=float(row.driver_vm_cost_per_hour or 0), + worker_vm_price_per_hour=float(row.worker_vm_cost_per_hour or 0), + driver_pricing_tier=request.driver_pricing_tier, + worker_pricing_tier=request.worker_pricing_tier, + num_workers=request.num_workers, + ) + + if request.discount_config and request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + if request.discount_config: + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "JOBS_CLASSIC", + "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "driver_node_type": request.driver_node_type, "worker_node_type": request.worker_node_type, + "num_workers": request.num_workers, "photon_enabled": request.photon_enabled, + "driver_pricing_tier": request.driver_pricing_tier, "worker_pricing_tier": request.worker_pricing_tier, + "driver_payment_option": request.driver_payment_option, "worker_payment_option": request.worker_payment_option, + }, + "usage": { + "runs_per_day": request.runs_per_day, "avg_runtime_minutes": request.avg_runtime_minutes, + "days_per_month": request.days_per_month, "hours_per_month": float(row.hours_per_month or 0), + }, + "dbu_calculation": { + "dbu_per_hour": float(row.dbu_per_hour or 0), "dbu_per_month": float(row.dbu_per_month or 0), + "dbu_price": float(row.dbu_price or 0), "dbu_cost_per_month": float(row.dbu_cost_per_month or 0), + }, + "vm_costs": { + "driver_vm_cost_per_hour": float(row.driver_vm_cost_per_hour or 0), + "worker_vm_cost_per_hour": float(row.worker_vm_cost_per_hour or 0), + "total_vm_cost_per_hour": float(row.total_vm_cost_per_hour or 0), + "driver_vm_cost_per_month": float(row.driver_vm_cost_per_month or 0), + "total_worker_vm_cost_per_month": float(row.total_worker_vm_cost_per_month or 0), + "vm_cost_per_month": float(row.vm_cost_per_month or 0), + }, + "total_cost": { + "cost_per_month": float(row.cost_per_month or 0), + "breakdown": { + "dbu_cost": float(row.dbu_cost_per_month or 0), + "vm_cost": float(row.vm_cost_per_month or 0), + }, + }, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown + ) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating JOBS Classic cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} + + +@router.post("/calculate/jobs-serverless", tags=["Cost Calculation"]) +def calculate_jobs_serverless_cost( + request: JobsServerlessCalculationRequest, + db: Session = Depends(get_db), +): + has_run_params, has_hours = _validate_usage_params(request) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + _validate_serverless_inputs(request, db) + + try: + serverless_multiplier = 2 if request.serverless_mode == "performance" else 1 + params = { + "p1": "JOBS", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": True, "p6": False, "p7": None, + "p8": request.driver_node_type, "p9": request.worker_node_type, + "p10": request.num_workers or 0, + "p11": "on_demand", "p12": "on_demand", + "p13": request.runs_per_day if has_run_params else 0, + "p14": request.avg_runtime_minutes if has_run_params else 0, + "p15": request.days_per_month if has_run_params else 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": request.serverless_mode, "p18": None, "p19": None, "p20": 1, + "p21": "on_demand", "p22": None, "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": "NA", "p34": "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing(db, "JOBS", True, False, None, None, None) + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, + dbu_cost=float(row.dbu_cost_per_month or 0), + dbu_quantity=float(row.dbu_per_month or 0), + dbu_price=float(row.dbu_price or 0), + ) + + if request.discount_config and request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + if request.discount_config: + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "JOBS_SERVERLESS", + "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "serverless_mode": request.serverless_mode, + }, + "usage": { + "runs_per_day": request.runs_per_day, "avg_runtime_minutes": request.avg_runtime_minutes, + "days_per_month": request.days_per_month, "hours_per_month": float(row.hours_per_month or 0), + }, + "dbu_calculation": { + "dbu_per_hour": float(row.dbu_per_hour or 0), "dbu_per_month": float(row.dbu_per_month or 0), + "dbu_price": float(row.dbu_price or 0), "dbu_cost_per_month": float(row.dbu_cost_per_month or 0), + }, + "total_cost": {"cost_per_month": float(row.cost_per_month or 0)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown + ) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating JOBS Serverless cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/lakebase_calc.py b/lakemeter/backend/app/routes/calculate/lakebase_calc.py new file mode 100644 index 00000000..a60d03a1 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/lakebase_calc.py @@ -0,0 +1,249 @@ +"""Lakebase calculation endpoint (CU-based, independent pricing). + +Compute: billed against Database Serverless SKU at DBU multiplier per CU-hour. +Storage/PITR/Snapshots: billed against Databricks Storage SKU at DSU multipliers per GB-month. +""" +import json +import logging +import os +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts +from app.services.lakebase_queries import get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.schemas import LakebaseCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + +# DBU multiplier per CU-hour (Database Serverless Compute SKU) +# Ref: https://www.databricks.com/product/pricing/lakebase +# Azure Premium = AWS/GCP Enterprise tier per pricing page footnote +LAKEBASE_DBU_RATES = { + "AWS": {"PREMIUM": 0.230, "ENTERPRISE": 0.213}, + "AZURE": {"PREMIUM": 0.213, "ENTERPRISE": 0.213}, + # GCP: Lakebase not available yet +} + +VALID_CU_SIZES = [0.5, 1, 2, 4, 8, 16, 32, 48, 64, 80, 96, 112] + +# DSU multipliers for Databricks Storage SKU (per GB-month) +# Ref: Database Serverless Compute SKU page +STORAGE_DSU_MULTIPLIER = 15.0 +PITR_DSU_MULTIPLIER = 8.7 +SNAPSHOT_DSU_MULTIPLIER = 3.91 + +# Load static DSU/storage pricing +_PRICING_DIR = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'static', 'pricing') + + +def _load_dbu_rates() -> dict: + path = os.path.join(_PRICING_DIR, 'dbu-rates.json') + if os.path.exists(path): + with open(path, 'r') as f: + return json.load(f) + return {} + + +DBU_RATES_BY_REGION = _load_dbu_rates() + + +def _get_dsu_price(cloud: str, region: str, tier: str) -> float: + """Look up DATABRICKS_STORAGE $/DSU price from static pricing data.""" + key = f"{cloud.lower()}:{region}:{tier.upper()}" + region_rates = DBU_RATES_BY_REGION.get(key, {}) + if 'DATABRICKS_STORAGE' in region_rates: + return region_rates['DATABRICKS_STORAGE'] + # Fallback: try without exact region match + for k, v in DBU_RATES_BY_REGION.items(): + parts = k.split(':') + if len(parts) == 3 and parts[0] == cloud.lower() and parts[2] == tier.upper(): + if 'DATABRICKS_STORAGE' in v: + return v['DATABRICKS_STORAGE'] + return 0.023 # default fallback + + +@router.post("/calculate/lakebase", tags=["Cost Calculation"]) +def calculate_lakebase_cost( + request: LakebaseCalculationRequest, + db: Session = Depends(get_db), +): + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + cloud_upper = request.cloud.upper() + tier_upper = request.tier.upper() + + # Lakebase is not available on GCP + if cloud_upper == "GCP": + raise HTTPException(status_code=400, detail="Lakebase is not available on GCP yet") + + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + if request.cu_size not in VALID_CU_SIZES: + raise HTTPException(status_code=400, detail=f"Invalid CU size: {request.cu_size}. Valid: {VALID_CU_SIZES}") + + # Resolve num_nodes: prefer num_nodes (frontend sends this), fall back to read_replicas + if request.num_nodes is not None: + num_nodes = request.num_nodes + else: + num_nodes = 1 + request.read_replicas + if num_nodes > 3: + raise HTTPException(status_code=400, detail="Total nodes cannot exceed 3") + read_replicas = num_nodes - 1 + + try: + # Resolve hours + if request.hours_per_month is not None: + hours_per_month = request.hours_per_month + elif getattr(request, 'hours_per_day', None) is not None: + days = request.days_per_month or 30 + hours_per_month = request.hours_per_day * days + else: + hours_per_month = 730 # default always-on + + # ── Compute cost ────────────────────────────────────────────── + cloud_rates = LAKEBASE_DBU_RATES.get(cloud_upper, {}) + dbu_per_cu_hour = cloud_rates.get(tier_upper, 0.213) + + total_dbu_per_hour = request.cu_size * dbu_per_cu_hour * num_nodes + dbu_per_month = total_dbu_per_hour * hours_per_month + + # Look up DBU price from database + sku_type = get_product_type_for_pricing(db, "LAKEBASE", True, False, None, None, None) + dbu_price_query = text(""" + SELECT price_per_dbu + FROM lakemeter.sync_pricing_dbu_rates + WHERE UPPER(cloud) = UPPER(:cloud) + AND UPPER(region) = UPPER(:region) + AND UPPER(tier) = UPPER(:tier) + AND (UPPER(product_type) = UPPER(:product_type) OR UPPER(sku_name) = UPPER(:product_type)) + LIMIT 1 + """) + price_row = db.execute(dbu_price_query, { + "cloud": request.cloud, "region": request.region, + "tier": request.tier, "product_type": sku_type, + }).fetchone() + dbu_price = float(price_row.price_per_dbu) if price_row else 0.0 + + compute_cost = dbu_per_month * dbu_price + + # CU metadata + cu_type = "autoscale" if request.cu_size <= 32 else "fixed" + ram_gb = request.cu_size * 2 + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=compute_cost, + dbu_quantity=dbu_per_month, dbu_price=dbu_price, + ) + + # ── Storage / PITR / Snapshot costs ─────────────────────────── + dsu_price = _get_dsu_price(cloud_upper, request.region, tier_upper) + storage_gb = request.storage_gb or 0 + pitr_gb = request.pitr_gb or 0 + snapshot_gb = request.snapshot_gb or 0 + + storage_cost = storage_gb * STORAGE_DSU_MULTIPLIER * dsu_price + pitr_cost = pitr_gb * PITR_DSU_MULTIPLIER * dsu_price + snapshot_cost = snapshot_gb * SNAPSHOT_DSU_MULTIPLIER * dsu_price + + if storage_cost > 0: + sku_breakdown.append({ + "type": "storage", + "sku": "DATABRICKS_STORAGE", + "cost": round(storage_cost, 2), + "qty": round(storage_gb, 2), + "usage_unit": "GB-month", + "unit_price_before_discount": round(dsu_price * STORAGE_DSU_MULTIPLIER, 6), + "rate_type": "database_storage", + }) + if pitr_cost > 0: + sku_breakdown.append({ + "type": "storage", + "sku": "DATABRICKS_STORAGE", + "cost": round(pitr_cost, 2), + "qty": round(pitr_gb, 2), + "usage_unit": "GB-month", + "unit_price_before_discount": round(dsu_price * PITR_DSU_MULTIPLIER, 6), + "rate_type": "pitr", + }) + if snapshot_cost > 0: + sku_breakdown.append({ + "type": "storage", + "sku": "DATABRICKS_STORAGE", + "cost": round(snapshot_cost, 2), + "qty": round(snapshot_gb, 2), + "usage_unit": "GB-month", + "unit_price_before_discount": round(dsu_price * SNAPSHOT_DSU_MULTIPLIER, 6), + "rate_type": "snapshots", + }) + + total_cost = compute_cost + storage_cost + pitr_cost + snapshot_cost + + # ── Discount ────────────────────────────────────────────────── + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "LAKEBASE", "sku_type": sku_type, + "configuration": { + "cloud": cloud_upper, "region": request.region, "tier": tier_upper, + "cu_size": request.cu_size, "cu_type": cu_type, "ram_gb": ram_gb, + "read_replicas": read_replicas, "total_nodes": num_nodes, + }, + "usage": {"hours_per_month": hours_per_month}, + "dbu_calculation": { + "dbu_per_cu_hour": dbu_per_cu_hour, + "dbu_per_hour_per_compute": round(request.cu_size * dbu_per_cu_hour, 4), + "dbu_per_hour": round(total_dbu_per_hour, 4), + "total_dbu_per_hour": round(total_dbu_per_hour, 4), + "dbu_per_month": round(dbu_per_month, 2), + "dbu_price": dbu_price, + "dbu_cost_per_month": round(compute_cost, 2), + }, + "storage_calculation": { + "dsu_price": dsu_price, + "storage_gb": storage_gb, + "storage_dsu_multiplier": STORAGE_DSU_MULTIPLIER, + "storage_cost": round(storage_cost, 2), + "pitr_gb": pitr_gb, + "pitr_dsu_multiplier": PITR_DSU_MULTIPLIER, + "pitr_cost": round(pitr_cost, 2), + "snapshot_gb": snapshot_gb, + "snapshot_dsu_multiplier": SNAPSHOT_DSU_MULTIPLIER, + "snapshot_cost": round(snapshot_cost, 2), + }, + "total_cost": {"cost_per_month": round(total_cost, 2)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating Lakebase cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/lakeflow_connect_calc.py b/lakemeter/backend/app/routes/calculate/lakeflow_connect_calc.py new file mode 100644 index 00000000..1e111ef1 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/lakeflow_connect_calc.py @@ -0,0 +1,191 @@ +"""Lakeflow Connect calculation endpoint. + +Lakeflow Connect has two components: + 1. Pipeline: DLT Serverless (ADVANCED edition default) + 2. Gateway: DLT Classic ADVANCED (database connectors only) — optional + +Pipeline uses DELTA_LIVE_TABLES_SERVERLESS SKU. +Gateway uses DLT_ADVANCED_COMPUTE SKU with VM costs. +""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts +from app.services.lakebase_queries import call_calculate_line_item_costs, get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_serverless, build_sku_breakdown_classic +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.jobs import _validate_usage_params +from app.routes.calculate.schemas import LakeflowConnectCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + +# Default gateway instances per cloud (single driver, no workers) +DEFAULT_GATEWAY_INSTANCES = { + "AWS": "i3.xlarge", + "AZURE": "Standard_DS3_v2", + "GCP": "n1-standard-4", +} + + +@router.post("/calculate/lakeflow-connect", tags=["Cost Calculation"]) +def calculate_lakeflow_connect_cost( + request: LakeflowConnectCalculationRequest, + db: Session = Depends(get_db), +): + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + try: + cloud_upper = request.cloud.upper() + tier_upper = request.tier.upper() + + # ── Pipeline (DLT Serverless) ───────────────────────────────── + has_run_params, has_hours = _validate_usage_params(request, require_runs=False) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + params = { + "p1": "DLT", "p2": cloud_upper, "p3": request.region, "p4": tier_upper, + "p5": True, "p6": False, "p7": None, + "p8": None, "p9": None, "p10": 0, + "p11": "on_demand", "p12": "on_demand", + "p13": request.runs_per_day or 0, + "p14": request.avg_runtime_minutes or 0, + "p15": request.days_per_month or 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": "standard", "p18": (request.dlt_edition or "ADVANCED").upper(), + "p19": None, "p20": 1, + "p21": "on_demand", "p22": None, + "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": "NA", "p34": "NA", "p35": "NA", + } + pipeline_row = call_calculate_line_item_costs(db, params) + if not pipeline_row: + raise HTTPException(status_code=500, detail="Pipeline calculation returned no result") + + pipeline_sku = get_product_type_for_pricing(db, "DLT", True, False, None, None, (request.dlt_edition or "ADVANCED").upper()) + pipeline_dbu_cost = float(pipeline_row.dbu_cost_per_month or 0) + pipeline_dbu_qty = float(pipeline_row.dbu_per_month or 0) + pipeline_dbu_price = float(pipeline_row.dbu_price or 0) + pipeline_hours = float(pipeline_row.hours_per_month or 0) + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=pipeline_sku, dbu_cost=pipeline_dbu_cost, + dbu_quantity=pipeline_dbu_qty, dbu_price=pipeline_dbu_price, + ) + + total_cost = pipeline_dbu_cost + gateway_data = None + + # ── Gateway (DLT Classic Advanced) ──────────────────────────── + if request.gateway_enabled: + gateway_instance = request.gateway_instance_type or DEFAULT_GATEWAY_INSTANCES.get(cloud_upper, "i3.xlarge") + gateway_hours = request.gateway_hours_per_month or 730 # always-on + + gateway_params = { + "p1": "DLT", "p2": cloud_upper, "p3": request.region, "p4": tier_upper, + "p5": False, "p6": False, "p7": None, + "p8": gateway_instance, "p9": gateway_instance, "p10": 0, + "p11": request.gateway_pricing_tier or "on_demand", + "p12": request.gateway_pricing_tier or "on_demand", + "p13": 0, "p14": 0, "p15": 30, + "p16": int(gateway_hours), + "p17": "standard", "p18": "ADVANCED", + "p19": None, "p20": 1, + "p21": "on_demand", "p22": None, + "p23": 0, "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": request.gateway_payment_option or "NA", + "p34": request.gateway_payment_option or "NA", + "p35": "NA", + } + gateway_row = call_calculate_line_item_costs(db, gateway_params) + + if gateway_row: + gw_dbu_cost = float(gateway_row.dbu_cost_per_month or 0) + gw_vm_cost = float(gateway_row.vm_cost_per_month or 0) + gw_total = gw_dbu_cost + gw_vm_cost + + gateway_sku = get_product_type_for_pricing(db, "DLT", False, False, None, None, "ADVANCED") + gateway_breakdown = build_sku_breakdown_classic( + sku_type=gateway_sku, + dbu_cost=gw_dbu_cost, + dbu_quantity=float(gateway_row.dbu_per_month or 0), + dbu_price=float(gateway_row.dbu_price or 0), + driver_vm_cost=float(gateway_row.driver_vm_cost_per_month or 0), + worker_vm_cost=float(gateway_row.total_worker_vm_cost_per_month or 0), + hours_per_month=gateway_hours, + driver_vm_price_per_hour=float(gateway_row.driver_vm_cost_per_hour or 0), + worker_vm_price_per_hour=float(gateway_row.worker_vm_cost_per_hour or 0), + driver_pricing_tier=request.gateway_pricing_tier or "on_demand", + worker_pricing_tier=request.gateway_pricing_tier or "on_demand", + num_workers=0, + ) + sku_breakdown.extend(gateway_breakdown) + total_cost += gw_total + + gateway_data = { + "instance_type": gateway_instance, + "hours_per_month": gateway_hours, + "dbu_cost": round(gw_dbu_cost, 2), + "vm_cost": round(gw_vm_cost, 2), + "total_cost": round(gw_total, 2), + } + + # ── Discount ────────────────────────────────────────────────── + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "LAKEFLOW_CONNECT", + "sku_type": pipeline_sku, + "configuration": { + "cloud": cloud_upper, "region": request.region, "tier": tier_upper, + "dlt_edition": (request.dlt_edition or "ADVANCED").upper(), + "gateway_enabled": request.gateway_enabled, + }, + "pipeline": { + "hours_per_month": pipeline_hours, + "dbu_per_month": round(pipeline_dbu_qty, 2), + "dbu_price": pipeline_dbu_price, + "dbu_cost": round(pipeline_dbu_cost, 2), + }, + "total_cost": {"cost_per_month": round(total_cost, 2)}, + "sku_breakdown": sku_breakdown, + }, + } + + if gateway_data: + response_data["data"]["gateway"] = gateway_data + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating Lakeflow Connect cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/model_serving_calc.py b/lakemeter/backend/app/routes/calculate/model_serving_calc.py new file mode 100644 index 00000000..3e9b8f12 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/model_serving_calc.py @@ -0,0 +1,148 @@ +"""Model Serving calculation endpoint (GPU-based, independent pricing).""" +import logging +import math +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts +from app.services.lakebase_queries import get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.jobs import _validate_usage_params +from app.routes.calculate.schemas import ModelServingCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + +SCALE_OUT_PRESETS = {"small": 4, "medium": 12, "large": 40} + + +@router.post("/calculate/model-serving", tags=["Cost Calculation"]) +def calculate_model_serving_cost( + request: ModelServingCalculationRequest, + db: Session = Depends(get_db), +): + has_run_params, has_hours = _validate_usage_params(request, require_runs=False) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + # Resolve concurrency + if request.scale_out == "custom": + if request.custom_concurrency is None or request.custom_concurrency < 4: + raise HTTPException(status_code=400, detail="custom_concurrency must be >= 4 for custom scale_out") + if request.custom_concurrency % 4 != 0: + raise HTTPException(status_code=400, detail="custom_concurrency must be a multiple of 4") + concurrency = request.custom_concurrency + else: + concurrency = SCALE_OUT_PRESETS.get(request.scale_out) + if concurrency is None: + raise HTTPException(status_code=400, detail=f"Invalid scale_out: {request.scale_out}") + + try: + # Look up GPU DBU rate from serverless_rates + gpu_query = text(""" + SELECT dbu_rate + FROM lakemeter.sync_product_serverless_rates + WHERE product = 'model_serving' + AND UPPER(cloud) = UPPER(:cloud) + AND size_or_model = :gpu_type + LIMIT 1 + """) + gpu_row = db.execute(gpu_query, {"cloud": request.cloud, "gpu_type": request.gpu_type}).fetchone() + if not gpu_row: + raise HTTPException(status_code=400, detail=f"GPU type '{request.gpu_type}' not found for {request.cloud}") + + gpu_dbu_rate = float(gpu_row.dbu_rate) + + # Calculate hours + if has_hours: + hours_per_month = request.hours_per_month + else: + hours_per_day = getattr(request, 'hours_per_day', None) or 0 + days_per_month = request.days_per_month or 30 + hours_per_month = hours_per_day * days_per_month + + # DBU calculation + dbu_per_hour = gpu_dbu_rate * concurrency + dbu_per_month = dbu_per_hour * hours_per_month + + # Look up DBU price + sku_type = get_product_type_for_pricing(db, "MODEL_SERVING", False, False, None, None, None) + dbu_price_query = text(""" + SELECT price_per_dbu + FROM lakemeter.sync_pricing_dbu_rates + WHERE UPPER(cloud) = UPPER(:cloud) + AND UPPER(region) = UPPER(:region) + AND UPPER(tier) = UPPER(:tier) + AND UPPER(sku_name) = UPPER(:product_type) + LIMIT 1 + """) + price_row = db.execute(dbu_price_query, { + "cloud": request.cloud, "region": request.region, + "tier": request.tier, "product_type": sku_type, + }).fetchone() + dbu_price = float(price_row.price_per_dbu) if price_row else 0.0 + + dbu_cost_per_month = dbu_per_month * dbu_price + cost_per_month = dbu_cost_per_month + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=dbu_cost_per_month, + dbu_quantity=dbu_per_month, dbu_price=dbu_price, + ) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "MODEL_SERVING", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "gpu_type": request.gpu_type, "scale_out": request.scale_out, "concurrency": concurrency, + }, + "usage": {"hours_per_month": hours_per_month}, + "dbu_calculation": { + "gpu_dbu_rate": gpu_dbu_rate, "concurrency": concurrency, + "dbu_per_hour": round(dbu_per_hour, 4), "dbu_per_month": round(dbu_per_month, 2), + "dbu_price": dbu_price, "dbu_cost_per_month": round(dbu_cost_per_month, 2), + "calculation": f"{gpu_dbu_rate} DBU/hr × {concurrency} concurrency × {hours_per_month} hrs", + }, + "total_cost": { + "cost_per_month": round(cost_per_month, 2), + "note": "Model Serving is serverless - no VM costs", + }, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating Model Serving cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/schemas.py b/lakemeter/backend/app/routes/calculate/schemas.py new file mode 100644 index 00000000..65b4a190 --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/schemas.py @@ -0,0 +1,309 @@ +"""Pydantic request/response models for calculation endpoints.""" +from typing import Optional +from pydantic import BaseModel, Field + + +class GlobalDiscountConfig(BaseModel): + """Global discount configuration by category. + + Cross-service (EA) discount rules per + https://www.databricks.com/product/sku-groups#exclusions: + INCLUDED: Jobs, All-Purpose, DLT, SQL, Serverless SQL, Database Serverless, etc. + EXCLUDED: Model Serving inference, Model Training, FMAPI proprietary, Data Transfer, Storage. + """ + + dbu_discount: float = Field(default=0, ge=0, le=100, description="Cross-service DBU discount % (0-100)") + vm_discount: float = Field(default=0, ge=0, le=100, description="VM discount percentage (0-100)") + storage_discount: float = Field(default=0, ge=0, le=100, description="Storage discount percentage (0-100)") + platform_addon_discount: float = Field(default=0, ge=0, le=100, description="Platform add-on discount percentage (0-100)") + support_discount: float = Field(default=0, ge=0, le=100, description="Support discount percentage (0-100)") + + +class DiscountConfig(BaseModel): + """Discount configuration for cost calculations. + + Resolution order per SKU: + 1. sku_specific exact match (highest priority, ignores eligibility) + 2. global.dbu_discount (only if cross-service eligible) + 3. global.vm_discount / storage_discount / etc. by category + 4. No match -> 0% + """ + + global_discounts: GlobalDiscountConfig = Field(alias="global", description="Global discounts by category") + sku_specific: dict[str, float] = Field(default={}, description="SKU-specific discount overrides (SKU -> %)") + notes: Optional[str] = Field(default=None, description="Notes about the discount") + effective_date: Optional[str] = Field(default=None, description="When discount becomes effective (YYYY-MM-DD)") + expiry_date: Optional[str] = Field(default=None, description="When discount expires (YYYY-MM-DD)") + + model_config = {"populate_by_name": True} + + def validate_sku_specific(self) -> list[str]: + errors = [] + for sku, discount_pct in self.sku_specific.items(): + if not isinstance(discount_pct, (int, float)): + errors.append(f"SKU '{sku}': discount must be a number, got {type(discount_pct).__name__}") + elif discount_pct < 0 or discount_pct > 100: + errors.append(f"SKU '{sku}': discount must be between 0 and 100, got {discount_pct}") + return errors + + +# ── Workload Calculation Request Models ───────────────────────────────────── + + +class JobsClassicCalculationRequest(BaseModel): + cloud: str = Field(..., description="Cloud provider: AWS, AZURE, GCP") + region: str = Field(..., description="Region code (e.g., us-east-1)") + tier: str = Field(..., description="Pricing tier: STANDARD, PREMIUM, ENTERPRISE") + driver_node_type: str = Field(..., description="Driver instance type") + worker_node_type: str = Field(..., description="Worker instance type") + num_workers: int = Field(..., ge=0, description="Number of worker nodes") + photon_enabled: bool = Field(default=False, description="Enable Photon acceleration") + driver_pricing_tier: str = Field(default="on_demand", description="Driver VM pricing tier") + worker_pricing_tier: str = Field(default="on_demand", description="Worker VM pricing tier") + driver_payment_option: Optional[str] = Field(default="NA", description="Payment option for reserved instances") + worker_payment_option: Optional[str] = Field(default="NA", description="Payment option for reserved instances") + runs_per_day: Optional[int] = Field(None, ge=0, description="Number of job runs per day") + avg_runtime_minutes: Optional[int] = Field(None, ge=0, description="Average runtime per run in minutes") + days_per_month: Optional[int] = Field(None, ge=1, le=31, description="Number of days per month") + hours_per_month: Optional[float] = Field(None, ge=0, description="Direct hours per month") + discount_config: Optional[DiscountConfig] = Field(None, description="Discount configuration") + + +class JobsServerlessCalculationRequest(BaseModel): + cloud: str = Field(..., description="Cloud provider: AWS, AZURE, GCP") + region: str = Field(..., description="Region code") + tier: str = Field(..., description="Pricing tier: STANDARD, PREMIUM, ENTERPRISE") + driver_node_type: Optional[str] = Field(None, description="Driver instance type (for DBU estimation)") + worker_node_type: Optional[str] = Field(None, description="Worker instance type (for DBU estimation)") + num_workers: Optional[int] = Field(None, ge=0, description="Number of workers (for DBU estimation)") + runs_per_day: Optional[int] = Field(None, ge=0) + avg_runtime_minutes: Optional[int] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + serverless_mode: str = Field(default="standard", description="standard or performance") + discount_config: Optional[DiscountConfig] = Field(None) + + +class AllPurposeClassicCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + driver_node_type: str = Field(...) + worker_node_type: str = Field(...) + num_workers: int = Field(..., ge=0) + photon_enabled: bool = Field(default=False) + driver_pricing_tier: str = Field(default="on_demand") + worker_pricing_tier: str = Field(default="on_demand") + driver_payment_option: Optional[str] = Field(default="NA") + worker_payment_option: Optional[str] = Field(default="NA") + hours_per_day: Optional[float] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class AllPurposeServerlessCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + driver_node_type: Optional[str] = Field(None, description="Driver instance type (for DBU estimation)") + worker_node_type: Optional[str] = Field(None, description="Worker instance type (for DBU estimation)") + num_workers: Optional[int] = Field(None, ge=0, description="Number of workers (for DBU estimation)") + hours_per_day: Optional[float] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + serverless_mode: str = Field(default="standard") + discount_config: Optional[DiscountConfig] = Field(None) + + +class DBSQLClassicProCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + warehouse_type: str = Field(..., description="CLASSIC or PRO") + warehouse_size: str = Field(..., description="e.g., Medium, X-Small") + driver_pricing_tier: str = Field(default="on_demand") + worker_pricing_tier: str = Field(default="on_demand") + driver_payment_option: Optional[str] = Field(default="NA") + worker_payment_option: Optional[str] = Field(default="NA") + hours_per_day: Optional[float] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class DBSQLServerlessCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + warehouse_size: str = Field(...) + hours_per_day: Optional[float] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class DLTClassicCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + dlt_edition: str = Field(default="CORE", description="CORE, PRO, ADVANCED") + driver_node_type: str = Field(...) + worker_node_type: str = Field(...) + num_workers: int = Field(..., ge=0) + photon_enabled: bool = Field(default=False) + driver_pricing_tier: str = Field(default="on_demand") + worker_pricing_tier: str = Field(default="on_demand") + driver_payment_option: Optional[str] = Field(default="NA") + worker_payment_option: Optional[str] = Field(default="NA") + runs_per_day: Optional[int] = Field(None, ge=0) + avg_runtime_minutes: Optional[int] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class DLTServerlessCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + dlt_edition: str = Field(default="CORE") + driver_node_type: Optional[str] = Field(None, description="Driver instance type (for DBU estimation)") + worker_node_type: Optional[str] = Field(None, description="Worker instance type (for DBU estimation)") + num_workers: Optional[int] = Field(None, ge=0, description="Number of workers (for DBU estimation)") + runs_per_day: Optional[int] = Field(None, ge=0) + avg_runtime_minutes: Optional[int] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + serverless_mode: str = Field(default="standard") + discount_config: Optional[DiscountConfig] = Field(None) + + +class ModelServingCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + gpu_type: str = Field(...) + scale_out: str = Field(default="small", description="small, medium, large, or custom") + custom_concurrency: Optional[int] = Field(None, ge=4, description="Custom concurrency (multiple of 4)") + hours_per_day: Optional[float] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class FMAPIDatabricksCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + model: str = Field(...) + # Frontend sends quantity + rate_type (single rate per request) + quantity: Optional[float] = Field(None, ge=0, description="Token quantity (in millions) or hours") + rate_type: Optional[str] = Field(None, description="input_token, output_token, cache_read, cache_write, batch_inference") + # Legacy fields (still supported for backward compat) + input_tokens_per_month: Optional[float] = Field(None, ge=0) + output_tokens_per_month: Optional[float] = Field(None, ge=0) + provisioned_hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class FMAPIProprietaryCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + provider: str = Field(...) + model: str = Field(...) + endpoint_type: str = Field(default="in_geo") + context_length: Optional[str] = Field(None) + # Frontend sends quantity + rate_type (single rate per request) + quantity: Optional[float] = Field(None, ge=0, description="Token quantity (in millions) or hours") + rate_type: Optional[str] = Field(None, description="input_token, output_token, cache_read, cache_write, batch_inference") + # Legacy fields (still supported for backward compat) + input_tokens_per_month: Optional[float] = Field(None, ge=0) + output_tokens_per_month: Optional[float] = Field(None, ge=0) + provisioned_hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class VectorSearchCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + mode: str = Field(..., description="standard or storage_optimized") + num_vectors_millions: float = Field(..., ge=0, description="Number of vectors in millions") + hours_per_day: Optional[float] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class DatabricksAppsCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + size: str = Field(default="medium", description="medium or large") + hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class CleanRoomCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + collaborators: int = Field(..., ge=1, le=10, description="Number of collaborators (1-10)") + days_per_month: Optional[int] = Field(None, ge=1, le=31) + discount_config: Optional[DiscountConfig] = Field(None) + + +class AIParseCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + mode: str = Field(default="pages", description="dbu (direct) or pages (pages-based)") + complexity: Optional[str] = Field(None, description="low_text, low_images, medium, high") + pages_thousands: Optional[float] = Field(None, ge=0, description="Number of pages (in thousands)") + hours_per_month: Optional[float] = Field(None, ge=0, description="Direct DBU hours (for dbu mode)") + discount_config: Optional[DiscountConfig] = Field(None) + + +class ShutterstockImageAICalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + images_per_month: int = Field(..., ge=0, description="Number of images per month") + discount_config: Optional[DiscountConfig] = Field(None) + + +class LakeflowConnectCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + # Pipeline (DLT Serverless) + dlt_edition: str = Field(default="ADVANCED", description="DLT edition: CORE, PRO, ADVANCED") + runs_per_day: Optional[int] = Field(None, ge=0) + avg_runtime_minutes: Optional[int] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + # Gateway (classic DLT Advanced, database connectors only) + gateway_enabled: bool = Field(default=False) + gateway_instance_type: Optional[str] = Field(None, description="Gateway instance type") + gateway_pricing_tier: str = Field(default="on_demand") + gateway_payment_option: Optional[str] = Field(default="NA") + gateway_hours_per_month: Optional[float] = Field(None, ge=0) + discount_config: Optional[DiscountConfig] = Field(None) + + +class LakebaseCalculationRequest(BaseModel): + cloud: str = Field(...) + region: str = Field(...) + tier: str = Field(...) + cu_size: float = Field(...) + read_replicas: int = Field(default=0, ge=0) + num_nodes: Optional[int] = Field(None, ge=1, le=3, description="Total nodes (frontend sends this; alternative to read_replicas)") + hours_per_day: Optional[float] = Field(None, ge=0) + days_per_month: Optional[int] = Field(None, ge=1, le=31) + hours_per_month: Optional[float] = Field(None, ge=0) + storage_gb: Optional[float] = Field(None, ge=0, le=8192, description="Database storage in GB") + pitr_gb: Optional[float] = Field(None, ge=0, description="Point-in-time restore storage in GB") + snapshot_gb: Optional[float] = Field(None, ge=0, description="Snapshot storage in GB") + discount_config: Optional[DiscountConfig] = Field(None) diff --git a/lakemeter/backend/app/routes/calculate/shutterstock_calc.py b/lakemeter/backend/app/routes/calculate/shutterstock_calc.py new file mode 100644 index 00000000..3e953dbe --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/shutterstock_calc.py @@ -0,0 +1,99 @@ +"""Shutterstock ImageAI calculation endpoint. + +Shutterstock ImageAI uses SERVERLESS_REAL_TIME_INFERENCE SKU. +Rate: 0.857 DBU per image generated. +""" +import logging +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts +from app.routes.calculate.helpers import build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.schemas import ShutterstockImageAICalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + +DBU_PER_IMAGE = 0.857 + + +@router.post("/calculate/shutterstock-imageai", tags=["Cost Calculation"]) +def calculate_shutterstock_imageai_cost( + request: ShutterstockImageAICalculationRequest, + db: Session = Depends(get_db), +): + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + try: + sku_type = "SERVERLESS_REAL_TIME_INFERENCE" + + # Look up DBU price + price_row = db.execute(text(""" + SELECT price_per_dbu FROM lakemeter.sync_pricing_dbu_rates + WHERE UPPER(cloud) = UPPER(:cloud) AND UPPER(region) = UPPER(:region) + AND UPPER(tier) = UPPER(:tier) + AND (UPPER(product_type) = UPPER(:pt) OR UPPER(sku_name) = UPPER(:pt)) + LIMIT 1 + """), {"cloud": request.cloud, "region": request.region, "tier": request.tier, "pt": sku_type}).fetchone() + dbu_price = float(price_row.price_per_dbu) if price_row else 0.0 + + images = request.images_per_month + dbu_per_month = images * DBU_PER_IMAGE + dbu_cost = dbu_per_month * dbu_price + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=dbu_cost, + dbu_quantity=dbu_per_month, dbu_price=dbu_price, + ) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "SHUTTERSTOCK_IMAGEAI", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, + "tier": request.tier.upper(), "images_per_month": images, + }, + "dbu_calculation": { + "dbu_per_image": DBU_PER_IMAGE, + "images_per_month": images, + "dbu_per_month": round(dbu_per_month, 2), + "dbu_price": dbu_price, + "dbu_cost_per_month": round(dbu_cost, 2), + }, + "total_cost": {"cost_per_month": round(dbu_cost, 2)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating Shutterstock ImageAI cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/calculate/vector_search_calc.py b/lakemeter/backend/app/routes/calculate/vector_search_calc.py new file mode 100644 index 00000000..644fda7c --- /dev/null +++ b/lakemeter/backend/app/routes/calculate/vector_search_calc.py @@ -0,0 +1,121 @@ +"""Vector Search calculation endpoint.""" +import logging +import math +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.validators import ( + validate_cloud, validate_region, validate_tier, validate_sku_specific_discounts, +) +from app.services.lakebase_queries import call_calculate_line_item_costs, get_product_type_for_pricing +from app.routes.calculate.helpers import build_sku_breakdown_serverless +from app.routes.calculate.discount import ( + apply_discount_to_sku_breakdown, calculate_total_discount_summary, enhance_total_cost_with_discount, +) +from app.routes.calculate.jobs import _validate_usage_params +from app.routes.calculate.schemas import VectorSearchCalculationRequest + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.post("/calculate/vector-search", tags=["Cost Calculation"]) +def calculate_vector_search_cost( + request: VectorSearchCalculationRequest, + db: Session = Depends(get_db), +): + has_run_params, has_hours = _validate_usage_params(request, require_runs=False) + if has_run_params and request.days_per_month is None: + request.days_per_month = 30 + + error = validate_cloud(request.cloud) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_region(request.cloud, request.region, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + error = validate_tier(request.cloud, request.tier, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + + try: + params = { + "p1": "VECTOR_SEARCH", "p2": request.cloud.upper(), "p3": request.region, "p4": request.tier.upper(), + "p5": True, "p6": False, "p7": None, + "p8": None, "p9": None, "p10": 0, + "p11": "on_demand", "p12": "on_demand", + "p13": 0, "p14": 0, + "p15": request.days_per_month or 30, + "p16": int(request.hours_per_month) if has_hours and request.hours_per_month is not None else None, + "p17": "standard", "p18": None, "p19": None, "p20": 1, + "p21": "on_demand", "p22": request.mode, + "p23": request.num_vectors_millions, + "p24": None, "p25": None, "p26": None, + "p27": "global", "p28": "all", "p29": "input_token", "p30": 0, "p31": 0, "p32": 1, + "p33": "NA", "p34": "NA", "p35": "NA", + } + row = call_calculate_line_item_costs(db, params) + if not row: + raise HTTPException(status_code=500, detail="No calculation result returned") + + sku_type = get_product_type_for_pricing(db, "VECTOR_SEARCH", True, False, None, None, None) + + # Calculate units used for response + if request.mode == "storage_optimized": + units_used = math.ceil(request.num_vectors_millions / 64) if request.num_vectors_millions > 0 else 0 + else: + units_used = math.ceil(request.num_vectors_millions / 2) if request.num_vectors_millions > 0 else 0 + + dbu_cost = float(row.dbu_cost_per_month or 0) + dbu_quantity = float(row.dbu_per_month or 0) + dbu_price = float(row.dbu_price or 0) + hours = float(row.hours_per_month or 0) + # Stored function returns per-unit DBU rate; derive total from monthly quantity + dbu_per_hour = (dbu_quantity / hours) if hours > 0 else float(row.dbu_per_hour or 0) + + sku_breakdown = build_sku_breakdown_serverless( + sku_type=sku_type, dbu_cost=dbu_cost, + dbu_quantity=dbu_quantity, dbu_price=dbu_price, + ) + + if request.discount_config: + if request.discount_config.sku_specific: + error = validate_sku_specific_discounts(request.discount_config.sku_specific, db) + if error: + raise HTTPException(status_code=400, detail=error["error"]) + sku_breakdown = apply_discount_to_sku_breakdown(sku_breakdown, request.discount_config, db) + + response_data = { + "success": True, + "data": { + "workload_type": "VECTOR_SEARCH", "sku_type": sku_type, + "configuration": { + "cloud": request.cloud.upper(), "region": request.region, "tier": request.tier.upper(), + "mode": request.mode, "num_vectors_millions": request.num_vectors_millions, + }, + "usage": { + "hours_per_month": float(row.hours_per_month or 0), + "units_used": units_used, + }, + "dbu_calculation": { + "dbu_per_hour": round(dbu_per_hour, 4), "dbu_per_month": round(dbu_quantity, 2), + "dbu_price": dbu_price, "dbu_cost_per_month": round(dbu_cost, 2), + }, + "total_cost": {"cost_per_month": float(row.cost_per_month or 0)}, + "sku_breakdown": sku_breakdown, + }, + } + + if request.discount_config: + response_data["data"]["total_cost"] = enhance_total_cost_with_discount( + response_data["data"]["total_cost"], sku_breakdown) + response_data["data"]["discount_summary"] = calculate_total_discount_summary(sku_breakdown) + + return response_data + except HTTPException: + raise + except Exception as e: + logger.error(f"Error calculating Vector Search cost: {e}") + return {"success": False, "error": {"code": "CALCULATION_ERROR", "message": str(e)}} diff --git a/lakemeter/backend/app/routes/chat.py b/lakemeter/backend/app/routes/chat.py new file mode 100644 index 00000000..8ea228fc --- /dev/null +++ b/lakemeter/backend/app/routes/chat.py @@ -0,0 +1,398 @@ +""" +Chat API Routes for AI Assistant + +Provides endpoints for conversing with the AI assistant to create and manage estimates. +""" +import json +from typing import Optional, List, Dict, Any +from fastapi import APIRouter, Request, HTTPException, Depends +from fastapi.responses import StreamingResponse +from pydantic import BaseModel +from sqlalchemy.orm import Session + +from app.database import get_db +from app.auth.databricks_auth import get_current_user +from app.external_api import get_user_token, get_model_serving_token +from app.services.ai_agent import create_agent, EstimateAgent +from app.config import log_info, log_warning, log_error + + +router = APIRouter(prefix="/chat", tags=["AI Assistant"]) + + +# Request/Response models +class ChatMessage(BaseModel): + """A single chat message.""" + role: str # 'user' or 'assistant' + content: str + tool_calls: Optional[List[Dict[str, Any]]] = None + + +class ChatRequest(BaseModel): + """Request to send a message to the AI assistant.""" + message: str + conversation_id: Optional[str] = None + estimate_context: Optional[Dict[str, Any]] = None + workloads_context: Optional[List[Dict[str, Any]]] = None + mode: str = "estimate" # 'estimate' for full features, 'home' for Q&A only + stream: bool = True + + +class ChatResponse(BaseModel): + """Response from the AI assistant.""" + content: str + conversation_id: str + tool_results: Optional[List[Dict[str, Any]]] = None + estimate: Optional[Dict[str, Any]] = None + workloads: Optional[List[Dict[str, Any]]] = None + proposed_workload: Optional[Dict[str, Any]] = None # Workload awaiting confirmation + + +class ConfirmWorkloadRequest(BaseModel): + """Request to confirm or reject a proposed workload.""" + proposal_id: str + confirmed: bool = True + + +# In-memory conversation storage (for MVP - should use Redis/DB in production) +_conversation_agents: Dict[str, EstimateAgent] = {} + + +def _get_or_create_agent(conversation_id: str, token: str, mode: str = "estimate") -> EstimateAgent: + """Get existing agent or create new one for a conversation.""" + if conversation_id not in _conversation_agents: + _conversation_agents[conversation_id] = create_agent(token, mode=mode) + else: + # Update token and mode for existing agent + _conversation_agents[conversation_id].client.set_token(token) + _conversation_agents[conversation_id].set_mode(mode) + return _conversation_agents[conversation_id] + + +def _cleanup_old_conversations(): + """Clean up old conversation agents to prevent memory leaks.""" + # Simple cleanup: keep only last 100 conversations + if len(_conversation_agents) > 100: + # Remove oldest half + keys_to_remove = list(_conversation_agents.keys())[:50] + for key in keys_to_remove: + del _conversation_agents[key] + + +@router.post("", response_model=ChatResponse) +@router.post("/", response_model=ChatResponse) +async def chat( + request: Request, + chat_request: ChatRequest, + db: Session = Depends(get_db) +): + """ + Send a message to the AI assistant and get a response. + + For non-streaming responses. Use /chat/stream for streaming. + """ + # Get app token for Claude API (SP token has model-serving scope) + token = get_model_serving_token(request) + if not token: + raise HTTPException( + status_code=401, + detail="Authentication required for AI assistant" + ) + + # Get or create conversation agent + import uuid + conversation_id = chat_request.conversation_id or str(uuid.uuid4()) + + _cleanup_old_conversations() + agent = _get_or_create_agent(conversation_id, token, mode=chat_request.mode) + + # Set estimate context if provided (only for estimate mode) + if chat_request.mode == "estimate" and (chat_request.estimate_context or chat_request.workloads_context): + agent.set_context( + chat_request.estimate_context or {}, + chat_request.workloads_context or [] + ) + + try: + # Get response from agent + result = await agent.chat(chat_request.message) + + return ChatResponse( + content=result["content"], + conversation_id=conversation_id, + tool_results=result.get("tool_results"), + estimate=result.get("estimate"), + workloads=result.get("workloads"), + proposed_workload=result.get("proposed_workload") + ) + + except Exception as e: + log_error(f"Chat error: {e}") + raise HTTPException( + status_code=500, + detail=f"AI assistant error: {str(e)}" + ) + + +@router.post("/stream") +async def chat_stream( + request: Request, + chat_request: ChatRequest, + db: Session = Depends(get_db) +): + """ + Send a message to the AI assistant and stream the response. + + Returns Server-Sent Events (SSE) with chunks of the response. + Event types: + - content: Text content chunk + - tool_start: Tool execution starting + - tool_result: Tool execution result + - done: Stream complete with final state + - error: Error occurred + """ + # Get app token for Claude API (SP token has model-serving scope) + token = get_model_serving_token(request) + if not token: + async def error_generator(): + yield f"data: {json.dumps({'type': 'error', 'content': 'Authentication required'})}\n\n" + return StreamingResponse( + error_generator(), + media_type="text/event-stream" + ) + + # Get or create conversation agent + import uuid + conversation_id = chat_request.conversation_id or str(uuid.uuid4()) + + _cleanup_old_conversations() + agent = _get_or_create_agent(conversation_id, token, mode=chat_request.mode) + + # Set estimate context if provided (only for estimate mode) + if chat_request.mode == "estimate" and (chat_request.estimate_context or chat_request.workloads_context): + agent.set_context( + chat_request.estimate_context or {}, + chat_request.workloads_context or [] + ) + + async def generate(): + """Generate SSE events from the agent's streaming response.""" + try: + # Send conversation ID first + yield f"data: {json.dumps({'type': 'start', 'conversation_id': conversation_id})}\n\n" + + async for chunk in agent.chat_stream(chat_request.message): + # Convert chunk to SSE format + yield f"data: {json.dumps(chunk)}\n\n" + + except Exception as e: + log_error(f"Stream error: {e}") + yield f"data: {json.dumps({'type': 'error', 'content': str(e)})}\n\n" + + finally: + yield "data: [DONE]\n\n" + + return StreamingResponse( + generate(), + media_type="text/event-stream", + headers={ + "Cache-Control": "no-cache", + "Connection": "keep-alive", + "X-Accel-Buffering": "no" # Disable nginx buffering + } + ) + + +@router.delete("/{conversation_id}") +async def clear_conversation( + conversation_id: str, + request: Request +): + """Clear a conversation's history and state.""" + if conversation_id in _conversation_agents: + _conversation_agents[conversation_id].reset() + del _conversation_agents[conversation_id] + + return {"success": True, "message": "Conversation cleared"} + + +@router.post("/{conversation_id}/apply") +async def apply_estimate( + conversation_id: str, + request: Request, + db: Session = Depends(get_db) +): + """ + Apply the AI-generated estimate to create actual database records. + + This converts the draft estimate and workloads into real saved records. + """ + from app.models.estimate import Estimate + from app.models.line_item import LineItem + from app.auth.databricks_auth import get_current_user + + if conversation_id not in _conversation_agents: + raise HTTPException(status_code=404, detail="Conversation not found") + + agent = _conversation_agents[conversation_id] + + if not agent.current_estimate: + raise HTTPException(status_code=400, detail="No estimate to apply") + + try: + # Get current user + user = get_current_user(request, db) + + # Get estimate name (support both 'name' and 'estimate_name') + est_name = agent.current_estimate.get("name") or agent.current_estimate.get("estimate_name", "AI Generated Estimate") + + # Create the estimate + estimate = Estimate( + estimate_name=est_name, # Use correct field name + cloud=agent.current_estimate.get("cloud", "aws"), + region=agent.current_estimate.get("region", "us-east-1"), + tier="PREMIUM", + description=agent.current_estimate.get("description", "Created by AI Assistant"), + owner_user_id=user.user_id + ) + db.add(estimate) + db.flush() # Get the estimate_id + + # Create line items from confirmed proposed workloads + created_workloads = [] + # Note: proposed_workloads that are confirmed should be used + workloads_to_create = agent.proposed_workloads if agent.proposed_workloads else [] + for workload in workloads_to_create: + line_item = LineItem( + estimate_id=estimate.estimate_id, + workload_name=workload["workload_name"], + workload_type=workload["workload_type"], + serverless_enabled=workload.get("serverless_enabled", False), + photon_enabled=workload.get("photon_enabled", False), + driver_node_type=workload.get("driver_node_type"), + worker_node_type=workload.get("worker_node_type"), + num_workers=workload.get("num_workers"), + hours_per_month=workload.get("hours_per_month", 730), + runs_per_day=workload.get("runs_per_day"), + avg_runtime_minutes=workload.get("avg_runtime_minutes"), + days_per_month=workload.get("days_per_month", 22), + driver_pricing_tier=workload.get("driver_pricing_tier", "on_demand"), + worker_pricing_tier=workload.get("worker_pricing_tier", "spot"), + dlt_edition=workload.get("dlt_edition"), + dbsql_warehouse_type=workload.get("dbsql_warehouse_type"), + dbsql_warehouse_size=workload.get("dbsql_warehouse_size"), + dbsql_num_clusters=workload.get("dbsql_num_clusters"), + lakebase_cu=workload.get("lakebase_cu"), + lakebase_ha_nodes=workload.get("lakebase_ha_nodes"), + notes=f"Created by AI Assistant" + ) + db.add(line_item) + created_workloads.append(workload["workload_name"]) + + db.commit() + + # Clear the conversation after successful apply + agent.reset() + + return { + "success": True, + "estimate_id": str(estimate.estimate_id), + "estimate_name": estimate.estimate_name, + "workloads_created": len(created_workloads), + "message": f"Created estimate '{estimate.estimate_name}' with {len(created_workloads)} workloads" + } + + except Exception as e: + db.rollback() + log_error(f"Apply estimate error: {e}") + raise HTTPException( + status_code=500, + detail=f"Failed to create estimate: {str(e)}" + ) + + +@router.get("/{conversation_id}/state") +async def get_conversation_state( + conversation_id: str, + request: Request +): + """Get the current state of a conversation (estimate and workloads).""" + if conversation_id not in _conversation_agents: + raise HTTPException(status_code=404, detail="Conversation not found") + + agent = _conversation_agents[conversation_id] + + return { + "conversation_id": conversation_id, + "estimate": agent.current_estimate, + "workloads": agent.current_workloads, + "proposed_workloads": agent.proposed_workloads, + "message_count": len(agent.conversation_history) + } + + +@router.post("/{conversation_id}/confirm-workload") +async def confirm_workload( + conversation_id: str, + confirm_request: ConfirmWorkloadRequest, + request: Request, + db: Session = Depends(get_db) +): + """ + Confirm or reject a proposed workload. + + If confirmed, creates the workload via the regular line_items API. + """ + from app.models.line_item import LineItem + + if conversation_id not in _conversation_agents: + raise HTTPException(status_code=404, detail="Conversation not found") + + agent = _conversation_agents[conversation_id] + + if confirm_request.confirmed: + # Get the confirmed workload configuration + workload = agent.confirm_workload(confirm_request.proposal_id) + + if not workload: + raise HTTPException(status_code=404, detail="Proposal not found") + + # Return the workload config for the frontend to create via regular API + # This allows the UI to update properly via Zustand + # Pass through ALL fields from the confirmed workload to preserve AI-proposed values + # Only exclude internal tracking fields + _INTERNAL_FIELDS = { + "proposal_id", "status", "reason", "cloud", + "total_users", "concurrent_queries", "use_case_type", + "query_selectivity", "query_complexity", "typical_data_volume", + "model_serving_type", "model_serving_scale_to_zero", + "vector_search_endpoint_type", + "lakebase_expected_reads_per_sec", "lakebase_expected_bulk_writes_per_sec", + "lakebase_expected_incremental_writes_per_sec", "lakebase_avg_row_size_kb", + "lakebase_ha_enabled", "lakebase_num_read_replicas", + "jobs_worker_min", "jobs_worker_max", + } + workload_config = { + k: v for k, v in workload.items() + if k not in _INTERNAL_FIELDS and v is not None + } + # Ensure notes field has a value + if not workload_config.get("notes"): + workload_config["notes"] = f"Created by AI Assistant: {workload.get('reason', '')}" + + return { + "success": True, + "action": "confirmed", + "workload_config": workload_config, + "message": f"Workload '{workload['workload_name']}' confirmed. Use the returned config to create via /api/v1/estimates/{{estimate_id}}/line-items" + } + else: + # Reject the proposal + if agent.reject_workload(confirm_request.proposal_id): + return { + "success": True, + "action": "rejected", + "message": "Workload proposal rejected" + } + else: + raise HTTPException(status_code=404, detail="Proposal not found") diff --git a/lakemeter/backend/app/routes/estimates.py b/lakemeter/backend/app/routes/estimates.py new file mode 100644 index 00000000..cab71b2a --- /dev/null +++ b/lakemeter/backend/app/routes/estimates.py @@ -0,0 +1,511 @@ +"""Estimates API routes.""" +from datetime import datetime +from typing import List, Optional +from uuid import UUID +from fastapi import APIRouter, Depends, HTTPException, Query, Request, Body +from sqlalchemy.orm import Session +from sqlalchemy import or_, func, select +from pydantic import BaseModel + +from app.database import get_db +from app.models import Estimate, LineItem, User +from app.models.sharing import Sharing +from app.schemas import ( + EstimateCreate, + EstimateUpdate, + EstimateResponse, + EstimateListResponse, + EstimateWithLineItemsResponse, + LineItemResponse +) +from app.auth import get_current_user + +# ---- Case normalization for estimate-level enum fields ---- +_ESTIMATE_UPPER_FIELDS = {'cloud', 'tier'} + + +def _normalize_estimate_case(data: dict) -> dict: + """Normalize cloud and tier to canonical UPPERCASE.""" + for field in _ESTIMATE_UPPER_FIELDS: + if field in data and isinstance(data[field], str): + data[field] = data[field].upper() + return data + + +class CloneRequest(BaseModel): + new_name: Optional[str] = None + + +router = APIRouter(prefix="/estimates", tags=["estimates"]) + + +@router.get("", response_model=List[EstimateListResponse]) +@router.get("/", response_model=List[EstimateListResponse]) +def list_estimates( + status: Optional[str] = Query(None, description="Filter by status"), + search: Optional[str] = Query(None, description="Search in estimate name or customer name"), + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """ + List estimates visible to the current user. + + Returns estimates where: + - User is the owner (owner_user_id) + - Estimate is shared with the user (via Sharing table) + """ + # Use a single efficient query with LEFT JOIN to count line items + # This avoids N+1 query problem + line_item_count_subquery = ( + db.query( + LineItem.estimate_id, + func.count(LineItem.line_item_id).label('line_item_count') + ) + .group_by(LineItem.estimate_id) + .subquery() + ) + + # Shared estimates subquery - use select() to avoid SAWarning + shared_estimate_ids = select(Sharing.estimate_id).where( + Sharing.shared_with_user_id == current_user.user_id + ).scalar_subquery() + + # Main query with join for line item count + query = ( + db.query( + Estimate, + func.coalesce(line_item_count_subquery.c.line_item_count, 0).label('line_item_count') + ) + .outerjoin(line_item_count_subquery, Estimate.estimate_id == line_item_count_subquery.c.estimate_id) + .filter(Estimate.is_deleted == False) + .filter( + or_( + Estimate.owner_user_id == current_user.user_id, + Estimate.estimate_id.in_(shared_estimate_ids) + ) + ) + ) + + # Apply additional filters + if status: + query = query.filter(Estimate.status == status) + + if search: + search_term = f"%{search}%" + query = query.filter( + or_( + Estimate.estimate_name.ilike(search_term), + Estimate.customer_name.ilike(search_term) + ) + ) + + results = query.order_by(Estimate.updated_at.desc()).all() + + return [ + EstimateListResponse( + estimate_id=e.estimate_id, + estimate_name=e.estimate_name, + customer_name=e.customer_name, + cloud=e.cloud, + region=e.region, + tier=e.tier, + status=e.status, + version=e.version, + line_item_count=line_count, + display_order=e.display_order or 0, + created_at=e.created_at, + updated_at=e.updated_at + ) + for e, line_count in results + ] + + +@router.post("/", response_model=EstimateResponse, status_code=201) +def create_estimate( + estimate: EstimateCreate, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Create a new estimate owned by the current user.""" + from app.config import log_info, log_error + + try: + log_info(f"Creating estimate '{estimate.estimate_name}' for user {current_user.user_id}") + + db_estimate = Estimate( + **_normalize_estimate_case(estimate.model_dump()), + owner_user_id=current_user.user_id # Set the owner + ) + db.add(db_estimate) + db.commit() + db.refresh(db_estimate) + + log_info(f"Estimate created successfully: {db_estimate.estimate_id}") + return db_estimate + except Exception as e: + log_error(f"Failed to create estimate: {str(e)}") + db.rollback() + raise HTTPException(status_code=500, detail=f"Failed to create estimate: {str(e)}") + + +# NOTE: This route MUST be defined BEFORE /{estimate_id} routes to avoid "me" being parsed as UUID +@router.get("/me/info") +def get_current_user_info( + request: Request +): + """Get the current authenticated user's info from headers (no DB required).""" + from app.auth.databricks_auth import get_user_from_headers + + email, _ = get_user_from_headers(request) + + if not email: + raise HTTPException(status_code=401, detail="Not authenticated") + + # Use email prefix as display name (e.g., "junyi.tiong" from "junyi.tiong@databricks.com") + display_name = email.split("@")[0].replace(".", " ").title() + + return { + "user_id": email, + "email": email, + "full_name": display_name, + "role": "user" + } + + +def _get_estimate_for_user( + estimate_id: UUID, + user: User, + db: Session, + require_owner: bool = False +) -> Estimate: + """ + Get an estimate if the user has access to it. + + Args: + estimate_id: The estimate UUID + user: The current user + db: Database session + require_owner: If True, user must be the owner (not just shared) + + Returns: + Estimate object + + Raises: + HTTPException 404 if not found or no access + """ + estimate = db.query(Estimate).filter( + Estimate.estimate_id == estimate_id, + Estimate.is_deleted == False + ).first() + + if not estimate: + raise HTTPException(status_code=404, detail="Estimate not found") + + # Check ownership + is_owner = estimate.owner_user_id == user.user_id + + if require_owner and not is_owner: + raise HTTPException(status_code=403, detail="Only the owner can perform this action") + + # Check if shared with user + is_shared = db.query(Sharing).filter( + Sharing.estimate_id == estimate_id, + Sharing.shared_with_user_id == user.user_id + ).first() is not None + + if not is_owner and not is_shared: + raise HTTPException(status_code=404, detail="Estimate not found") + + return estimate + + +@router.post("/reorder", status_code=200) +def reorder_estimates( + estimate_ids: List[UUID], + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Reorder estimates for the current user.""" + for index, eid in enumerate(estimate_ids): + estimate = db.query(Estimate).filter( + Estimate.estimate_id == eid, + Estimate.owner_user_id == current_user.user_id, + Estimate.is_deleted == False + ).first() + if estimate: + estimate.display_order = index + db.commit() + return {"message": "Estimates reordered successfully"} + + +@router.get("/{estimate_id}", response_model=EstimateResponse) +def get_estimate( + estimate_id: UUID, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Get an estimate by ID if user has access.""" + estimate = _get_estimate_for_user(estimate_id, current_user, db) + return estimate + + +@router.get("/{estimate_id}/full") +def get_estimate_with_line_items( + estimate_id: UUID, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """ + Get estimate with all line items in a single optimized query. + Returns both estimate details and full line items to avoid multiple round trips. + """ + estimate = _get_estimate_for_user(estimate_id, current_user, db) + + # Get full line items in same query context + line_items = db.query(LineItem).filter( + LineItem.estimate_id == estimate_id + ).order_by(LineItem.display_order).all() + + return { + "estimate": EstimateWithLineItemsResponse.model_validate(estimate), + "line_items": [LineItemResponse.model_validate(item) for item in line_items] + } + + +@router.put("/{estimate_id}", response_model=EstimateResponse) +def update_estimate( + estimate_id: UUID, + estimate_update: EstimateUpdate, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Update an estimate. User must have access (owner or shared with edit permission).""" + estimate = _get_estimate_for_user(estimate_id, current_user, db) + + update_data = _normalize_estimate_case(estimate_update.model_dump(exclude_unset=True)) + + # Check if cloud is being changed + if 'cloud' in update_data and update_data['cloud'] != estimate.cloud: + # Count existing workloads + workload_count = db.query(LineItem).filter( + LineItem.estimate_id == estimate_id + ).count() + + if workload_count > 0: + raise HTTPException( + status_code=400, + detail=f"Cannot change cloud provider. Remove all {workload_count} workload(s) first." + ) + + for field, value in update_data.items(): + setattr(estimate, field, value) + + estimate.version += 1 + estimate.updated_by = current_user.user_id + estimate.updated_at = datetime.utcnow() # Explicitly update timestamp + db.commit() + db.refresh(estimate) + return estimate + + +@router.delete("/{estimate_id}", status_code=204) +def delete_estimate( + estimate_id: UUID, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Soft delete an estimate. Only the owner can delete.""" + estimate = _get_estimate_for_user(estimate_id, current_user, db, require_owner=True) + + estimate.is_deleted = True + estimate.updated_by = current_user.user_id + db.commit() + + +@router.post("/{estimate_id}/duplicate", response_model=EstimateResponse) +def duplicate_estimate( + estimate_id: UUID, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Duplicate an estimate. New estimate is owned by the current user.""" + original = _get_estimate_for_user(estimate_id, current_user, db) + + # Create new estimate owned by current user + new_estimate = Estimate( + estimate_name=f"{original.estimate_name} (Copy)", + owner_user_id=current_user.user_id, # New owner is current user + customer_name=original.customer_name, + cloud=original.cloud, + region=original.region, + tier=original.tier, + status="draft", + template_id=original.template_id, + original_prompt=original.original_prompt + ) + db.add(new_estimate) + db.flush() + + # Copy line items - only copy fields that exist in the model + for original_item in original.line_items: + new_item = LineItem( + estimate_id=new_estimate.estimate_id, + display_order=original_item.display_order, + workload_name=original_item.workload_name, + workload_type=original_item.workload_type, + cloud=original_item.cloud, + # Serverless + serverless_enabled=original_item.serverless_enabled, + serverless_mode=original_item.serverless_mode, + # Classic Compute + photon_enabled=original_item.photon_enabled, + driver_node_type=original_item.driver_node_type, + worker_node_type=original_item.worker_node_type, + num_workers=original_item.num_workers, + # DLT + dlt_edition=original_item.dlt_edition, + # DBSQL + dbsql_warehouse_type=original_item.dbsql_warehouse_type, + dbsql_warehouse_size=original_item.dbsql_warehouse_size, + dbsql_num_clusters=original_item.dbsql_num_clusters, + dbsql_vm_pricing_tier=original_item.dbsql_vm_pricing_tier, + dbsql_vm_payment_option=original_item.dbsql_vm_payment_option, + # Vector Search + vector_search_mode=original_item.vector_search_mode, + vector_capacity_millions=original_item.vector_capacity_millions, + vector_search_storage_gb=original_item.vector_search_storage_gb, + # Model Serving + model_serving_gpu_type=original_item.model_serving_gpu_type, + model_serving_concurrency=original_item.model_serving_concurrency, + model_serving_scale_out=original_item.model_serving_scale_out, + # FMAPI + fmapi_provider=original_item.fmapi_provider, + fmapi_model=original_item.fmapi_model, + fmapi_endpoint_type=original_item.fmapi_endpoint_type, + fmapi_context_length=original_item.fmapi_context_length, + fmapi_rate_type=original_item.fmapi_rate_type, + fmapi_quantity=original_item.fmapi_quantity, + # Lakebase + lakebase_cu=original_item.lakebase_cu, + lakebase_storage_gb=original_item.lakebase_storage_gb, + lakebase_ha_nodes=original_item.lakebase_ha_nodes, + lakebase_backup_retention_days=original_item.lakebase_backup_retention_days, + # Usage + runs_per_day=original_item.runs_per_day, + avg_runtime_minutes=original_item.avg_runtime_minutes, + days_per_month=original_item.days_per_month, + hours_per_month=original_item.hours_per_month, + # Pricing + driver_pricing_tier=original_item.driver_pricing_tier, + worker_pricing_tier=original_item.worker_pricing_tier, + driver_payment_option=original_item.driver_payment_option, + worker_payment_option=original_item.worker_payment_option, + # Additional + workload_config=original_item.workload_config, + notes=original_item.notes + ) + db.add(new_item) + + db.commit() + db.refresh(new_estimate) + return new_estimate + + +@router.post("/{estimate_id}/clone", response_model=EstimateResponse) +def clone_estimate( + estimate_id: UUID, + payload: Optional[CloneRequest] = Body(default=None), + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """ + Clone an estimate with all its line items. + + Optionally provide a new_name in the request body. + The cloned estimate is owned by the current user. + """ + original = _get_estimate_for_user(estimate_id, current_user, db) + + # Get new name from payload or generate from original + new_name = payload.new_name if payload and payload.new_name else f"{original.estimate_name} (Copy)" + + # Create new estimate owned by current user + new_estimate = Estimate( + estimate_name=new_name, + owner_user_id=current_user.user_id, + customer_name=original.customer_name, + cloud=original.cloud, + region=original.region, + tier=original.tier, + status="draft", + template_id=original.template_id, + original_prompt=original.original_prompt + ) + db.add(new_estimate) + db.flush() + + # Copy line items - only copy fields that exist in the model + for original_item in original.line_items: + new_item = LineItem( + estimate_id=new_estimate.estimate_id, + display_order=original_item.display_order, + workload_name=original_item.workload_name, + workload_type=original_item.workload_type, + cloud=original_item.cloud, + # Serverless + serverless_enabled=original_item.serverless_enabled, + serverless_mode=original_item.serverless_mode, + # Classic Compute + photon_enabled=original_item.photon_enabled, + driver_node_type=original_item.driver_node_type, + worker_node_type=original_item.worker_node_type, + num_workers=original_item.num_workers, + # DLT + dlt_edition=original_item.dlt_edition, + # DBSQL + dbsql_warehouse_type=original_item.dbsql_warehouse_type, + dbsql_warehouse_size=original_item.dbsql_warehouse_size, + dbsql_num_clusters=original_item.dbsql_num_clusters, + dbsql_vm_pricing_tier=original_item.dbsql_vm_pricing_tier, + dbsql_vm_payment_option=original_item.dbsql_vm_payment_option, + # Vector Search + vector_search_mode=original_item.vector_search_mode, + vector_capacity_millions=original_item.vector_capacity_millions, + vector_search_storage_gb=original_item.vector_search_storage_gb, + # Model Serving + model_serving_gpu_type=original_item.model_serving_gpu_type, + model_serving_concurrency=original_item.model_serving_concurrency, + model_serving_scale_out=original_item.model_serving_scale_out, + # FMAPI + fmapi_provider=original_item.fmapi_provider, + fmapi_model=original_item.fmapi_model, + fmapi_endpoint_type=original_item.fmapi_endpoint_type, + fmapi_context_length=original_item.fmapi_context_length, + fmapi_rate_type=original_item.fmapi_rate_type, + fmapi_quantity=original_item.fmapi_quantity, + # Lakebase + lakebase_cu=original_item.lakebase_cu, + lakebase_storage_gb=original_item.lakebase_storage_gb, + lakebase_ha_nodes=original_item.lakebase_ha_nodes, + lakebase_backup_retention_days=original_item.lakebase_backup_retention_days, + # Usage + runs_per_day=original_item.runs_per_day, + avg_runtime_minutes=original_item.avg_runtime_minutes, + days_per_month=original_item.days_per_month, + hours_per_month=original_item.hours_per_month, + # Pricing + driver_pricing_tier=original_item.driver_pricing_tier, + worker_pricing_tier=original_item.worker_pricing_tier, + driver_payment_option=original_item.driver_payment_option, + worker_payment_option=original_item.worker_payment_option, + # Additional + workload_config=original_item.workload_config, + notes=original_item.notes + ) + db.add(new_item) + + db.commit() + db.refresh(new_estimate) + return new_estimate + + diff --git a/lakemeter/backend/app/routes/export/__init__.py b/lakemeter/backend/app/routes/export/__init__.py new file mode 100644 index 00000000..063f2b77 --- /dev/null +++ b/lakemeter/backend/app/routes/export/__init__.py @@ -0,0 +1,57 @@ +"""Export package — modularized from the original 1209-line export.py. + +Re-exports all public symbols so existing imports continue to work: + from app.routes.export import router + from app.routes.export import _calculate_dbu_per_hour + etc. +""" +# Router (used by app.routes.__init__) +from .routes import router + +# Pricing functions (used by tests) +from .pricing import ( + _get_dbu_price, + _get_sku_type, + _get_fmapi_sku, + _get_fmapi_dbu_per_million, + _is_fmapi_hourly, + FALLBACK_DBU_PRICES, + DBU_RATES_BY_REGION, + INSTANCE_DBU_RATES, + MODEL_SERVING_RATES, + FMAPI_DB_RATES, + FMAPI_PROP_RATES, + VECTOR_SEARCH_RATES, + DBSQL_RATES, +) + +# Helper functions (access control, display names) +from .helpers import ( + _check_estimate_access, + _get_workload_display_name, + _get_workload_config_details, + _get_pricing_tier_display, +) + +# Calculation functions (used by tests) +from .calculations import ( + _calculate_hours_per_month, + _calculate_dbu_per_hour, + _is_serverless_workload, +) + +# Excel builder (used internally) +from .excel_builder import build_estimate_excel + +__all__ = [ + 'router', + '_get_dbu_price', '_get_sku_type', '_get_fmapi_sku', + '_get_fmapi_dbu_per_million', '_is_fmapi_hourly', + '_check_estimate_access', '_get_workload_display_name', + '_get_workload_config_details', '_calculate_hours_per_month', + '_calculate_dbu_per_hour', '_is_serverless_workload', + '_get_pricing_tier_display', 'build_estimate_excel', + 'FALLBACK_DBU_PRICES', 'DBU_RATES_BY_REGION', 'INSTANCE_DBU_RATES', + 'MODEL_SERVING_RATES', 'FMAPI_DB_RATES', 'FMAPI_PROP_RATES', + 'VECTOR_SEARCH_RATES', 'DBSQL_RATES', +] diff --git a/lakemeter/backend/app/routes/export/calculations.py b/lakemeter/backend/app/routes/export/calculations.py new file mode 100644 index 00000000..08f78e12 --- /dev/null +++ b/lakemeter/backend/app/routes/export/calculations.py @@ -0,0 +1,204 @@ +"""Calculation functions for export (hours, DBU/hr, serverless detection).""" +from .pricing import ( + INSTANCE_DBU_RATES, VECTOR_SEARCH_RATES, MODEL_SERVING_RATES, + _get_photon_multiplier, +) + + +def _calculate_hours_per_month(item) -> float: + """Calculate hours per month from usage config. + + Priority: If run-based fields (runs_per_day, avg_runtime_minutes) are set, + calculate from those. Only fall back to hours_per_month if no run-based data. + This prevents hours_per_month=730 default from overriding user's run config. + + Always-on workloads (Vector Search, Model Serving, Lakebase, Databricks Apps) + default to 730 hours/month when no usage data is provided. + """ + if item.runs_per_day and item.avg_runtime_minutes: + runs = float(item.runs_per_day) + runtime = float(item.avg_runtime_minutes) + days = float(item.days_per_month or 22) + return (runs * runtime / 60) * days + if item.hours_per_month: + return float(item.hours_per_month) + # Always-on workloads default to 730 hours/month (24/7) + wt = (getattr(item, 'workload_type', '') or '').upper() + if wt in ('VECTOR_SEARCH', 'MODEL_SERVING', 'LAKEBASE', 'DATABRICKS_APPS', 'LAKEFLOW_CONNECT'): + return 730 + return 0 + + +def _calculate_dbu_per_hour(item, cloud: str = 'aws', tier: str = 'PREMIUM') -> tuple: + """Calculate DBU per hour for a workload. Returns (dbu_per_hour, warnings).""" + wt = (item.workload_type or '').upper() + warnings = [] + + if wt in ('JOBS', 'ALL_PURPOSE', 'DLT'): + return _calc_compute_dbu(item, cloud, wt, warnings) + elif wt == 'DBSQL': + return _calc_dbsql_dbu(item, warnings) + elif wt == 'VECTOR_SEARCH': + return _calc_vector_search_dbu(item, cloud, warnings) + elif wt == 'MODEL_SERVING': + return _calc_model_serving_dbu(item, cloud, warnings) + elif wt in ('FMAPI_DATABRICKS', 'FMAPI_PROPRIETARY'): + return 0, warnings # FMAPI uses token-based, not hour-based + elif wt == 'LAKEBASE': + cu = float(item.lakebase_cu or 0) + nodes = float(item.lakebase_ha_nodes or 1) + if cu < 0: + warnings.append(f"Lakebase CU is negative ({cu})") + elif cu == 0: + warnings.append("Lakebase CU not specified") + # Multiply CU by DBU-per-CU-hour rate (matches API's LAKEBASE_DBU_RATES) + lakebase_dbu_rates = { + 'aws': {'PREMIUM': 0.230, 'ENTERPRISE': 0.213}, + 'azure': {'PREMIUM': 0.213, 'ENTERPRISE': 0.213}, + # GCP: Lakebase not available yet + } + cloud_lc = cloud.strip().lower() if cloud else 'aws' + tier_upper = tier.strip().upper() if tier else 'PREMIUM' + dbu_per_cu_hour = lakebase_dbu_rates.get(cloud_lc, {}).get(tier_upper, 1.0) + return cu * dbu_per_cu_hour * nodes, warnings + elif wt == 'DATABRICKS_APPS': + size = (getattr(item, 'databricks_apps_size', None) or 'medium').lower() + rates = {'medium': 0.5, 'large': 1.0} + return rates.get(size, 0.5), warnings + elif wt == 'CLEAN_ROOM': + collaborators = int(getattr(item, 'clean_room_collaborators', None) or 1) + # 1 DBU per collaborator per day; convert to hourly (day=24h) + return collaborators / 24.0, warnings + elif wt == 'AI_PARSE': + # AI Parse is quantity-based, not hour-based; return 0, handled separately + return 0, warnings + elif wt == 'SHUTTERSTOCK_IMAGEAI': + # Shutterstock is per-image, not hour-based; return 0, handled separately + return 0, warnings + elif wt == 'LAKEFLOW_CONNECT': + # Pipeline: DLT Serverless (handled like DLT) + return 0, warnings # simplified; actual calc done at endpoint level + return 0, warnings + + +def _calc_compute_dbu(item, cloud, wt, warnings): + """Calculate DBU/hr for Jobs, All-Purpose, or DLT workloads.""" + driver_dbu = 0.5 # Match frontend fallback (costCalculation.ts:250) + worker_dbu = 0.5 + driver_found = False + worker_found = False + if INSTANCE_DBU_RATES: + cloud_instances = INSTANCE_DBU_RATES.get(cloud, {}) + if item.driver_node_type and item.driver_node_type in cloud_instances: + driver_dbu = cloud_instances[item.driver_node_type].get('dbu_rate', 0.25) + driver_found = True + if item.worker_node_type and item.worker_node_type in cloud_instances: + worker_dbu = cloud_instances[item.worker_node_type].get('dbu_rate', 0.5) + worker_found = True + if not driver_found and item.driver_node_type: + warnings.append(f"Driver DBU rate not found for {item.driver_node_type}, using 0.5") + if not worker_found and item.worker_node_type: + warnings.append(f"Worker DBU rate not found for {item.worker_node_type}, using 0.5") + + num_workers = int(item.num_workers or 0) + base_dbu = float(driver_dbu) + (float(worker_dbu) * num_workers) + + # Determine the base SKU for photon multiplier lookup + edition = (item.dlt_edition or 'CORE').upper() if wt == 'DLT' else '' + if wt == 'DLT': + sku_base = f'DLT_{edition}_COMPUTE' + elif wt == 'ALL_PURPOSE': + sku_base = 'ALL_PURPOSE_COMPUTE' + else: + sku_base = 'JOBS_COMPUTE' + + if item.serverless_enabled: + photon_mult = _get_photon_multiplier(cloud, sku_base) + base_dbu *= photon_mult + mode_multiplier = 2 if (item.serverless_mode or '').lower() == 'performance' else 1 + return base_dbu * mode_multiplier, warnings + + if item.photon_enabled: + photon_mult = _get_photon_multiplier(cloud, sku_base) + base_dbu *= photon_mult + return base_dbu, warnings + + +def _calc_dbsql_dbu(item, warnings): + """Calculate DBU/hr for DBSQL workloads.""" + size_dbu = { + '2X-Small': 4, 'X-Small': 6, 'Small': 12, 'Medium': 24, + 'Large': 40, 'X-Large': 80, '2X-Large': 144, '3X-Large': 272, '4X-Large': 528 + } + wh_size = item.dbsql_warehouse_size + if not wh_size or wh_size.strip() == '': + wh_size = 'Small' + warnings.append("Empty warehouse size, defaulting to Small") + if wh_size not in size_dbu: + warnings.append(f"Unknown DBSQL warehouse size '{wh_size}', using Small (12 DBU)") + wh_size = 'Small' + num_clusters = max(1, int(item.dbsql_num_clusters or 1)) + return float(size_dbu[wh_size] * num_clusters), warnings + + +def _calc_vector_search_dbu(item, cloud, warnings): + """Calculate DBU/hr for Vector Search workloads. + + Uses CEILING(capacity / divisor) to determine endpoint units, matching + the frontend's costCalculation.ts. Defaults capacity to 1M vectors + when not specified (same as frontend default). + """ + import math + capacity = float(item.vector_capacity_millions or 1) # Default 1, matching frontend + if capacity <= 0: + capacity = 1 + mode = (item.vector_search_mode or 'standard').strip().lower() + cloud_lc = cloud.strip().lower() if cloud else 'aws' + key = f"{cloud_lc}:{mode}" + info = VECTOR_SEARCH_RATES.get(key, {}) + if not info: + warnings.append(f"Vector Search rates not found for {key}, using defaults") + dbu_rate = info.get('dbu_rate', 4.0 if mode == 'standard' else 18.29) + divisor = info.get('input_divisor', 2000000) + vectors_total = capacity * 1_000_000 + units = math.ceil(vectors_total / divisor) if divisor else 0 + return units * dbu_rate, warnings + + +def _calc_model_serving_dbu(item, cloud, warnings): + """Calculate DBU/hr for Model Serving workloads. + + DBU/hr = gpu_dbu_rate × concurrency. + Concurrency source priority: dedicated column > workload_config JSON > default 4. + """ + gpu_type = (item.model_serving_gpu_type or 'cpu').lower() + key = f"{cloud}:{gpu_type}" + info = MODEL_SERVING_RATES.get(key, {}) + if not info: + warnings.append(f"Model Serving rate not found for {key}") + return 0, warnings + base_rate = info.get('dbu_rate', 0) + # Prefer dedicated column, fall back to workload_config JSON, then default 4 + concurrency = getattr(item, 'model_serving_concurrency', None) + if not concurrency: + config = getattr(item, 'workload_config', None) or {} + concurrency = int(config.get('model_serving_concurrency', 4)) + else: + concurrency = int(concurrency) + return base_rate * concurrency, warnings + + +def _is_serverless_workload(item) -> bool: + """Check if workload is serverless (no VM costs).""" + wt = (item.workload_type or '').upper() + if wt in ('VECTOR_SEARCH', 'MODEL_SERVING', 'FMAPI_DATABRICKS', 'FMAPI_PROPRIETARY', + 'LAKEBASE', 'DATABRICKS_APPS', 'CLEAN_ROOM', 'AI_PARSE', 'SHUTTERSTOCK_IMAGEAI', + 'LAKEFLOW_CONNECT'): + return True + if wt in ('JOBS', 'ALL_PURPOSE', 'DLT') and item.serverless_enabled: + return True + if wt == 'DBSQL' and (item.dbsql_warehouse_type or '').upper() == 'SERVERLESS': + return True + return False + + diff --git a/lakemeter/backend/app/routes/export/excel_builder.py b/lakemeter/backend/app/routes/export/excel_builder.py new file mode 100644 index 00000000..98f802b6 --- /dev/null +++ b/lakemeter/backend/app/routes/export/excel_builder.py @@ -0,0 +1,342 @@ +"""Main Excel builder: assembles the estimate workbook.""" +from io import BytesIO +from datetime import datetime, timezone +import xlsxwriter + +from .excel_formats import create_formats +from .excel_row_writer import ( + NUM_COLS, COLUMN_WIDTHS, get_headers, write_data_row, +) +from .excel_sections import ( + write_totals, write_cost_summary, write_dbu_summary, + write_legend, write_assumptions, write_footer, +) +from .pricing import _get_dbu_price, _get_sku_type +from .helpers import ( + _get_workload_display_name, _get_workload_config_details, + _get_pricing_tier_display, +) +from .calculations import _calculate_dbu_per_hour, _is_serverless_workload +from .excel_item_helpers import calc_item_values, write_storage_subrow +from app.routes.vm_pricing import DEFAULT_VM_PRICING + + +def build_estimate_excel(estimate, line_items, cloud, region, tier, db=None): + """Build an Excel workbook for an estimate. Returns BytesIO output.""" + output = BytesIO() + workbook = xlsxwriter.Workbook(output, {'in_memory': True}) + fmt = create_formats(workbook) + max_col = NUM_COLS - 1 + + sheet = workbook.add_worksheet('Databricks Estimate') + for i, w in enumerate(COLUMN_WIDTHS): + sheet.set_column(i, i, w) + + row = _write_header_section(sheet, fmt, estimate, cloud, region, tier, max_col) + row, header_row, data_start_row = _write_table_headers(sheet, fmt, row, max_col) + row = _write_line_items(sheet, fmt, row, line_items, cloud, region, tier, db=db) + data_end_row = row - 1 + row = write_totals(sheet, fmt, row, data_start_row, data_end_row) + totals_row = row - 2 + row = write_cost_summary(sheet, fmt, row, totals_row) + row = write_dbu_summary(sheet, fmt, row, data_start_row, data_end_row) + row = write_legend(sheet, fmt, row) + row = write_assumptions(sheet, fmt, row, max_col) + write_footer(sheet, workbook, row, max_col) + + sheet.freeze_panes(header_row + 1, 2) + sheet.set_landscape() + sheet.fit_to_pages(1, 0) + sheet.set_margins(left=0.25, right=0.25, top=0.5, bottom=0.5) + + workbook.close() + output.seek(0) + return output + + +def _get_val(obj, key, default=''): + val = getattr(obj, key, default) + return val if val is not None else default + + +# Reserved instance discount factors relative to on-demand +_RESERVED_DISCOUNTS = { + '1yr_reserved': 0.72, # ~28% discount + '3yr_reserved': 0.50, # ~50% discount + 'spot': 0.30, # ~70% discount +} + + +def _get_vm_hourly_rate(instance_prices: dict, pricing_tier: str) -> float: + """Get VM hourly rate for a pricing tier. Uses direct lookup, falls back to discount.""" + if pricing_tier in instance_prices: + return instance_prices[pricing_tier] + on_demand = instance_prices.get('on_demand', 0) + discount = _RESERVED_DISCOUNTS.get(pricing_tier, 1.0) + return round(on_demand * discount, 4) + + +def _lookup_dbsql_vm_costs(item, cloud, region, vm_prices, db, auto_notes): + """Look up VM costs for DBSQL Classic/Pro warehouses. + + Uses static dbsql-warehouse-config.json to find driver/worker instance types, + then looks up VM costs from DEFAULT_VM_PRICING. Falls back to DB if needed. + Returns (driver_vm_hr, worker_vm_hr, worker_count). + """ + from .pricing import DBSQL_WAREHOUSE_CONFIG + + wh_type = (item.dbsql_warehouse_type or 'CLASSIC').upper() + wh_size = item.dbsql_warehouse_size or 'Small' + driver_tier = _get_val(item, 'dbsql_vm_pricing_tier', 'on_demand') or 'on_demand' + cloud_lc = (cloud or 'aws').lower() + + # Look up warehouse config from static JSON (key format: "aws:classic:Small") + config_key = f"{cloud_lc}:{wh_type.lower()}:{wh_size}" + config = DBSQL_WAREHOUSE_CONFIG.get(config_key) + + if not config: + # Try DB fallback + config = _lookup_dbsql_config_from_db(cloud, wh_type, wh_size, db, auto_notes) + if not config: + auto_notes.append(f"DBSQL warehouse config not found for {config_key}") + return 0, 0, 0 + + driver_inst = config.get('driver_instance_type', '') if isinstance(config, dict) else getattr(config, 'driver_instance_type', '') + worker_inst = config.get('worker_instance_type', '') if isinstance(config, dict) else getattr(config, 'worker_instance_type', '') + worker_count = (config.get('worker_count', 0) if isinstance(config, dict) else getattr(config, 'worker_count', 0)) or 0 + + driver_vm_hr = 0 + worker_vm_hr = 0 + if driver_inst and driver_inst in vm_prices: + driver_vm_hr = _get_vm_hourly_rate(vm_prices[driver_inst], driver_tier) + if worker_inst and worker_inst in vm_prices: + worker_vm_hr = _get_vm_hourly_rate(vm_prices[worker_inst], driver_tier) + + # If not in static VM pricing, try the database + if (driver_vm_hr == 0 or worker_vm_hr == 0) and db: + _lookup_vm_costs_from_db( + cloud, region, driver_inst, worker_inst, driver_tier, + driver_vm_hr, worker_vm_hr, db, auto_notes + ) + + return driver_vm_hr, worker_vm_hr, worker_count + + +def _lookup_dbsql_config_from_db(cloud, wh_type, wh_size, db, auto_notes): + """Fallback: query warehouse config from DB table.""" + if not db: + return None + try: + from sqlalchemy import text as sa_text + row = db.execute(sa_text(""" + SELECT driver_instance_type, worker_instance_type, worker_count + FROM lakemeter.sync_ref_dbsql_warehouse_config + WHERE UPPER(cloud) = UPPER(:cloud) + AND UPPER(warehouse_type) = UPPER(:wh_type) + AND UPPER(warehouse_size) = UPPER(:wh_size) + """), {"cloud": cloud, "wh_type": wh_type, "wh_size": wh_size}).fetchone() + if row: + return {'driver_instance_type': row.driver_instance_type, + 'worker_instance_type': row.worker_instance_type, + 'worker_count': row.worker_count} + except Exception as e: + auto_notes.append(f"DBSQL config DB fallback: {e}") + return None + + +def _lookup_vm_costs_from_db(cloud, region, driver_inst, worker_inst, tier, + driver_vm_hr, worker_vm_hr, db, auto_notes): + """Fallback: query VM costs from DB when not in static pricing.""" + try: + from sqlalchemy import text as sa_text + if driver_vm_hr == 0 and driver_inst: + row = db.execute(sa_text(""" + SELECT cost_per_hour FROM lakemeter.sync_pricing_vm_costs + WHERE UPPER(cloud) = UPPER(:cloud) AND region = :region + AND instance_type = :inst AND pricing_tier = :tier + LIMIT 1 + """), {"cloud": cloud, "region": region, "inst": driver_inst, "tier": tier}).fetchone() + if row: + driver_vm_hr = float(row.cost_per_hour or 0) + if worker_vm_hr == 0 and worker_inst: + row = db.execute(sa_text(""" + SELECT cost_per_hour FROM lakemeter.sync_pricing_vm_costs + WHERE UPPER(cloud) = UPPER(:cloud) AND region = :region + AND instance_type = :inst AND pricing_tier = :tier + LIMIT 1 + """), {"cloud": cloud, "region": region, "inst": worker_inst, "tier": tier}).fetchone() + if row: + worker_vm_hr = float(row.cost_per_hour or 0) + except Exception as e: + auto_notes.append(f"VM cost DB lookup: {e}") + + +def _write_header_section(sheet, fmt, estimate, cloud, region, tier, max_col): + """Write title, subtitle, and estimate details.""" + row = 0 + estimate_name = _get_val(estimate, 'estimate_name', 'Untitled Estimate') + sheet.merge_range(row, 0, row, max_col, 'Databricks Pricing Estimate', fmt['title']) + row += 1 + sheet.merge_range(row, 0, row, max_col, estimate_name, fmt['subtitle']) + row += 2 + + sheet.merge_range(row, 0, row, max_col, 'ESTIMATE DETAILS', fmt['section_header']) + row += 1 + + status = _get_val(estimate, 'status', 'draft').capitalize() + version = _get_val(estimate, 'version', 1) + created_at = _get_val(estimate, 'created_at', datetime.now(timezone.utc)) + updated_at = _get_val(estimate, 'updated_at', datetime.now(timezone.utc)) + if isinstance(created_at, datetime): + created_at = created_at.strftime('%Y-%m-%d') + if isinstance(updated_at, datetime): + updated_at = updated_at.strftime('%Y-%m-%d') + + info_data = [ + [('Cloud:', cloud.upper()), ('Region:', region), ('Tier:', tier.upper()), + ('Status:', status)], + [('Version:', str(version)), ('Created:', created_at), ('Updated:', updated_at)], + ] + for info_row in info_data: + col = 0 + for label_text, value_text in info_row: + sheet.write(row, col, label_text, fmt['label']) + sheet.write(row, col + 1, value_text, fmt['value']) + col += 4 + row += 1 + row += 1 + return row + + +def _write_table_headers(sheet, fmt, row, max_col): + """Write the workloads table header row.""" + sheet.merge_range(row, 0, row, max_col, 'WORKLOADS & COST BREAKDOWN', + fmt['section_header']) + row += 1 + headers = get_headers(fmt) + for col, (header, header_fmt) in enumerate(headers): + sheet.write(row, col, header, header_fmt) + header_row = row + row += 1 + data_start_row = row + return row, header_row, data_start_row + + +def _write_line_items(sheet, fmt, row, line_items, cloud, region, tier, db=None): + """Write all line item data rows including storage sub-rows.""" + for idx, item in enumerate(line_items): + row = _write_single_item(sheet, fmt, row, idx, item, cloud, region, tier, db=db) + return row + + +def _write_single_item(sheet, fmt, row, idx, item, cloud, region, tier, db=None): + """Write one line item (and its storage sub-row if applicable).""" + wt = (item.workload_type or 'JOBS').upper() + sku = _get_sku_type(item, cloud) + dbu_rate, dbu_rate_found = _get_dbu_price(cloud, region, tier, sku) + dbu_per_hour, dbu_warnings = _calculate_dbu_per_hour(item, cloud, tier) + is_serverless = _is_serverless_workload(item) + is_fmapi = wt in ('FMAPI_DATABRICKS', 'FMAPI_PROPRIETARY') + is_fmapi_token = is_fmapi and item.fmapi_rate_type in ( + 'input_token', 'output_token', 'input', 'output', + 'cache_read', 'cache_write', 'batch_inference') + is_fmapi_provisioned = is_fmapi and item.fmapi_rate_type in ( + 'provisioned_scaling', 'provisioned_entry') + + auto_notes = list(dbu_warnings) + if not dbu_rate_found: + auto_notes.append(f"DBU rate not found for {sku}, using fallback ${dbu_rate:.2f}") + + hours, token_qty, dbu_per_m, total_dbus, token_type = calc_item_values( + item, is_fmapi_token, is_fmapi_provisioned, dbu_per_hour, cloud, auto_notes) + + num_workers = int(item.num_workers or 0) + dbsql_driver_inst = '' + dbsql_worker_inst = '' + # Look up VM costs from DEFAULT_VM_PRICING; serverless workloads have no VM costs + driver_vm_hr = 0 + worker_vm_hr = 0 + if not is_serverless: + cloud_lc = (cloud or 'aws').lower() + vm_prices = DEFAULT_VM_PRICING.get(cloud_lc, {}) + + # DBSQL Classic/Pro: look up VM costs via warehouse config → instance types + if wt == 'DBSQL' and (item.dbsql_warehouse_type or '').upper() in ('CLASSIC', 'PRO'): + driver_vm_hr, worker_vm_hr, num_workers = _lookup_dbsql_vm_costs( + item, cloud, region, vm_prices, db, auto_notes) + # Also capture instance types for display in the export + from .pricing import DBSQL_WAREHOUSE_CONFIG + wh_type = (item.dbsql_warehouse_type or 'CLASSIC').upper() + wh_size = item.dbsql_warehouse_size or 'Small' + cfg_key = f"{cloud_lc}:{wh_type.lower()}:{wh_size}" + cfg = DBSQL_WAREHOUSE_CONFIG.get(cfg_key, {}) + dbsql_driver_inst = cfg.get('driver_instance_type', '') + dbsql_worker_inst = cfg.get('worker_instance_type', '') + else: + driver_node = _get_val(item, 'driver_node_type', '') + worker_node = _get_val(item, 'worker_node_type', '') + driver_tier = _get_val(item, 'driver_pricing_tier', 'on_demand') or 'on_demand' + worker_tier = _get_val(item, 'worker_pricing_tier', 'on_demand') or 'on_demand' + if driver_node and driver_node in vm_prices: + driver_vm_hr = _get_vm_hourly_rate(vm_prices[driver_node], driver_tier) + if worker_node and worker_node in vm_prices: + worker_vm_hr = _get_vm_hourly_rate(vm_prices[worker_node], worker_tier) + + user_notes = _get_val(item, 'notes', '') or '' + notes_parts = [user_notes] if user_notes else [] + if auto_notes: + notes_parts.append(' | '.join(auto_notes)) + + # For DBSQL Classic/Pro, show warehouse info instead of generic driver/worker + if wt == 'DBSQL' and (item.dbsql_warehouse_type or '').upper() in ('CLASSIC', 'PRO'): + display_driver_tier = _get_pricing_tier_display( + item.dbsql_vm_pricing_tier) if item.dbsql_vm_pricing_tier else '-' + display_worker_tier = display_driver_tier + else: + display_driver_tier = _get_pricing_tier_display( + item.driver_pricing_tier) if hasattr(item, 'driver_pricing_tier') and item.driver_pricing_tier else '-' + display_worker_tier = _get_pricing_tier_display( + item.worker_pricing_tier) if hasattr(item, 'worker_pricing_tier') and item.worker_pricing_tier else '-' + + base_row = { + 'idx': idx + 1, + 'name': _get_val(item, 'workload_name', f'Workload {idx + 1}'), + 'type_display': _get_workload_display_name(wt), + 'config': _get_workload_config_details(item), + 'sku': sku, + 'driver_node': dbsql_driver_inst or _get_val(item, 'driver_node_type', '-') or '-', + 'worker_node': dbsql_worker_inst or _get_val(item, 'worker_node_type', '-') or '-', + 'num_workers': num_workers, + 'driver_tier': display_driver_tier, + 'worker_tier': display_worker_tier, + 'hours_per_month': hours, + 'token_type': token_type if is_fmapi_token else '', + 'token_quantity_millions': token_qty, + 'dbu_per_million': dbu_per_m, + 'dbu_per_hour': dbu_per_hour, + 'total_dbus_month': total_dbus, + 'dbu_rate': dbu_rate, + 'discount_pct': 0.0, + 'driver_vm_cost_per_hour': driver_vm_hr, + 'worker_vm_cost_per_hour': worker_vm_hr, + 'notes': ' — '.join(notes_parts) if notes_parts else '', + } + + write_data_row(sheet, row, base_row, is_fmapi_token, is_serverless, fmt) + row += 1 + + if wt == 'LAKEBASE': + row = write_storage_subrow(sheet, fmt, row, item, idx, cloud, region, tier, + 'Lakebase (Storage)', 'lakebase_storage_gb') + if getattr(item, 'lakebase_pitr_gb', 0) and item.lakebase_pitr_gb > 0: + row = write_storage_subrow(sheet, fmt, row, item, idx, cloud, region, tier, + 'Lakebase (PITR)', 'lakebase_pitr_gb') + if getattr(item, 'lakebase_snapshot_gb', 0) and item.lakebase_snapshot_gb > 0: + row = write_storage_subrow(sheet, fmt, row, item, idx, cloud, region, tier, + 'Lakebase (Snapshots)', 'lakebase_snapshot_gb') + elif wt == 'VECTOR_SEARCH' and (getattr(item, 'vector_search_storage_gb', 0) or 0) > 0: + row = write_storage_subrow(sheet, fmt, row, item, idx, cloud, region, tier, + 'Vector Search (Storage)', 'vector_search_storage_gb') + return row + + diff --git a/lakemeter/backend/app/routes/export/excel_columns.py b/lakemeter/backend/app/routes/export/excel_columns.py new file mode 100644 index 00000000..6d1c677c --- /dev/null +++ b/lakemeter/backend/app/routes/export/excel_columns.py @@ -0,0 +1,72 @@ +"""Excel column layout constants and header definitions.""" + +# 30-column layout constants +NUM_COLS = 30 +COLUMN_WIDTHS = [ + 4, # 0: # + 22, # 1: Name + 18, # 2: Type + 12, # 3: Mode + 30, # 4: Config + 22, # 5: SKU + 18, # 6: Driver Node + 18, # 7: Worker Node + 8, # 8: Workers + 12, # 9: Driver Tier + 12, # 10: Worker Tier + 10, # 11: Hours/Mo + 12, # 12: Token Type + 12, # 13: Tokens/Mo (M) + 12, # 14: DBU/1M Tokens + 10, # 15: DBU/Hr + 12, # 16: DBUs/Mo + 10, # 17: DBU Rate (List) + 9, # 18: Discount % + 10, # 19: DBU Rate (Disc.) + 14, # 20: DBU Cost (List) + 14, # 21: DBU Cost (Disc.) + 12, # 22: Driver VM $/Hr + 12, # 23: Worker VM $/Hr + 12, # 24: Driver VM Cost + 12, # 25: Worker VM Cost + 12, # 26: Total VM Cost + 14, # 27: Total Cost (List) + 14, # 28: Total Cost (Disc.) + 25, # 29: Notes +] + + +def get_headers(fmt): + """Return the header row spec as list of (label, format) tuples.""" + return [ + ('#', fmt['header_main']), + ('Workload Name', fmt['header_main']), + ('Type', fmt['header_main']), + ('Mode', fmt['header_main']), + ('Configuration', fmt['header_main']), + ('SKU', fmt['header_main']), + ('Driver Node', fmt['header_vm']), + ('Worker Node', fmt['header_vm']), + ('Workers', fmt['header_vm']), + ('Driver Tier', fmt['header_vm']), + ('Worker Tier', fmt['header_vm']), + ('Hours/Mo', fmt['header_dbu']), + ('Token Type', fmt['header_token']), + ('Tokens/Mo (M)', fmt['header_token']), + ('DBU/1M Tokens', fmt['header_token']), + ('DBU/Hr', fmt['header_dbu']), + ('DBUs/Mo', fmt['header_dbu']), + ('DBU Rate\n(List)', fmt['header_dbu']), + ('Discount %', fmt['header_discount']), + ('DBU Rate\n(Disc.)', fmt['header_discount']), + ('DBU Cost\n(List)', fmt['header_dbu']), + ('DBU Cost\n(Disc.)', fmt['header_discount']), + ('Driver\nVM $/Hr', fmt['header_vm']), + ('Worker\nVM $/Hr', fmt['header_vm']), + ('Driver\nVM Cost', fmt['header_vm']), + ('Worker\nVM Cost', fmt['header_vm']), + ('Total\nVM Cost', fmt['header_vm']), + ('Total Cost\n(List)', fmt['header_total']), + ('Total Cost\n(Disc.)', fmt['header_total']), + ('Notes', fmt['header_main']), + ] diff --git a/lakemeter/backend/app/routes/export/excel_formats.py b/lakemeter/backend/app/routes/export/excel_formats.py new file mode 100644 index 00000000..bac4443d --- /dev/null +++ b/lakemeter/backend/app/routes/export/excel_formats.py @@ -0,0 +1,129 @@ +"""Excel format definitions for export workbook.""" + + +def create_formats(workbook): + """Create and return all xlsxwriter format objects as a dict.""" + f = {} + + f['title'] = workbook.add_format({ + 'bold': True, 'font_size': 18, 'font_color': '#1e293b', + 'bottom': 2, 'bottom_color': '#f97316' + }) + f['subtitle'] = workbook.add_format({ + 'font_size': 11, 'font_color': '#64748b', 'italic': True + }) + f['section_header'] = workbook.add_format({ + 'bold': True, 'font_size': 12, 'font_color': 'white', + 'bg_color': '#1e293b', 'border': 1, 'align': 'left', 'valign': 'vcenter' + }) + f['header_main'] = workbook.add_format({ + 'bold': True, 'font_size': 10, 'font_color': 'white', + 'bg_color': '#f97316', 'border': 1, 'align': 'center', + 'valign': 'vcenter', 'text_wrap': True + }) + f['header_dbu'] = workbook.add_format({ + 'bold': True, 'font_size': 10, 'font_color': 'white', + 'bg_color': '#3b82f6', 'border': 1, 'align': 'center', + 'valign': 'vcenter', 'text_wrap': True + }) + f['header_token'] = workbook.add_format({ + 'bold': True, 'font_size': 10, 'font_color': 'white', + 'bg_color': '#06b6d4', 'border': 1, 'align': 'center', + 'valign': 'vcenter', 'text_wrap': True + }) + f['header_discount'] = workbook.add_format({ + 'bold': True, 'font_size': 10, 'font_color': 'white', + 'bg_color': '#ec4899', 'border': 1, 'align': 'center', + 'valign': 'vcenter', 'text_wrap': True + }) + f['header_vm'] = workbook.add_format({ + 'bold': True, 'font_size': 10, 'font_color': 'white', + 'bg_color': '#10b981', 'border': 1, 'align': 'center', + 'valign': 'vcenter', 'text_wrap': True + }) + f['header_total'] = workbook.add_format({ + 'bold': True, 'font_size': 10, 'font_color': 'white', + 'bg_color': '#8b5cf6', 'border': 1, 'align': 'center', + 'valign': 'vcenter', 'text_wrap': True + }) + + f['cell'] = workbook.add_format({'border': 1, 'valign': 'vcenter', 'text_wrap': True}) + f['cell_center'] = workbook.add_format({'border': 1, 'valign': 'vcenter', 'align': 'center'}) + f['cell_mono'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'font_name': 'Consolas', 'font_size': 9 + }) + f['number'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '#,##0', 'align': 'right' + }) + f['decimal'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '#,##0.00', 'align': 'right' + }) + f['decimal3'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '#,##0.000', 'align': 'right' + }) + f['currency'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '$#,##0.00', 'align': 'right' + }) + f['pct'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '0%', 'align': 'center' + }) + + f['dbu_currency'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '$#,##0.00', + 'align': 'right', 'bg_color': '#eff6ff' + }) + f['discount_currency'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '$#,##0.00', + 'align': 'right', 'bg_color': '#fdf2f8' + }) + f['vm_currency'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '$#,##0.00', + 'align': 'right', 'bg_color': '#ecfdf5' + }) + f['total_currency'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '$#,##0.00', 'align': 'right', + 'bg_color': '#f5f3ff', 'bold': True + }) + f['token_cell'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'align': 'center', 'bg_color': '#ecfeff' + }) + f['token_num'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '#,##0.0', + 'align': 'right', 'bg_color': '#ecfeff' + }) + f['token_dbu'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'num_format': '#,##0.000', + 'align': 'right', 'bg_color': '#ecfeff' + }) + + f['total_label'] = workbook.add_format({ + 'bold': True, 'border': 1, 'bg_color': '#f1f5f9', 'align': 'right' + }) + f['total_dbu_value'] = workbook.add_format({ + 'bold': True, 'border': 1, 'bg_color': '#dbeafe', + 'num_format': '$#,##0.00', 'align': 'right' + }) + f['total_vm_value'] = workbook.add_format({ + 'bold': True, 'border': 1, 'bg_color': '#d1fae5', + 'num_format': '$#,##0.00', 'align': 'right' + }) + f['total_grand_value'] = workbook.add_format({ + 'bold': True, 'border': 1, 'bg_color': '#ede9fe', + 'num_format': '$#,##0.00', 'align': 'right' + }) + f['total_dbu_num'] = workbook.add_format({ + 'bold': True, 'border': 1, 'bg_color': '#f1f5f9', + 'num_format': '#,##0', 'align': 'right' + }) + + f['label'] = workbook.add_format({'bold': True, 'font_color': '#64748b', 'align': 'right'}) + f['value'] = workbook.add_format({'font_color': '#1e293b'}) + f['notes'] = workbook.add_format({ + 'font_size': 9, 'font_color': '#64748b', 'italic': True, 'text_wrap': True + }) + f['serverless'] = workbook.add_format({ + 'border': 1, 'valign': 'vcenter', 'align': 'center', + 'font_color': '#059669', 'italic': True + }) + + return f diff --git a/lakemeter/backend/app/routes/export/excel_item_helpers.py b/lakemeter/backend/app/routes/export/excel_item_helpers.py new file mode 100644 index 00000000..5f12084e --- /dev/null +++ b/lakemeter/backend/app/routes/export/excel_item_helpers.py @@ -0,0 +1,158 @@ +"""Item-level calculation and storage sub-row helpers for Excel export.""" +from .pricing import _get_dbu_price, _get_fmapi_dbu_per_million, FMAPI_PROP_FALLBACK_RATES +from .calculations import _calculate_hours_per_month +from .excel_row_writer import write_data_row + + +# Token type display map for FMAPI token-based rate types +TOKEN_TYPE_DISPLAY = { + 'input_token': 'Input', 'input': 'Input', + 'output_token': 'Output', 'output': 'Output', + 'cache_read': 'Cache Read', 'cache_write': 'Cache Write', + 'batch_inference': 'Batch', +} + +# Fallback DBU/1M token rates for FMAPI_DATABRICKS — matches frontend costCalculation.ts +# These are much lower than proprietary rates (Databricks OSS models are cheaper) +FMAPI_DB_FALLBACK_RATES = { + 'input_token': 1.0, 'input': 1.0, + 'output_token': 3.0, 'output': 3.0, +} + +# Fallback DBU/hr rates for FMAPI_DATABRICKS provisioned — matches frontend costCalculation.ts +FMAPI_DB_PROVISIONED_FALLBACK = { + 'provisioned_scaling': 200, + 'provisioned_entry': 50, +} + + +def calc_item_values(item, is_fmapi_token, is_fmapi_provisioned, + dbu_per_hour, cloud, auto_notes): + """Calculate hours, tokens, DBUs for a line item. + + Returns (hours, token_qty, dbu_per_m, total_dbus, token_type). + """ + if is_fmapi_token: + token_qty = float(item.fmapi_quantity or 0) + dbu_per_m, found = _get_fmapi_dbu_per_million(item, cloud) + if not found: + # Use workload-appropriate fallback rates matching frontend + rate_type = item.fmapi_rate_type or 'input_token' + wt = item.workload_type or '' + if wt == 'FMAPI_DATABRICKS': + dbu_per_m = FMAPI_DB_FALLBACK_RATES.get(rate_type, 1.0) + else: + dbu_per_m = FMAPI_PROP_FALLBACK_RATES.get(rate_type, 21.43) + auto_notes.append( + f"FMAPI rate not found for {item.fmapi_model or 'unknown model'}, using fallback {dbu_per_m}") + token_type = TOKEN_TYPE_DISPLAY.get(item.fmapi_rate_type, 'Input') + return 0, token_qty, dbu_per_m, token_qty * dbu_per_m, token_type + elif is_fmapi_provisioned: + hours = float(item.fmapi_quantity or 0) + dbu_hr, found = _get_fmapi_dbu_per_million(item, cloud) + if not found: + # Use workload-appropriate provisioned fallback matching frontend + rate_type = item.fmapi_rate_type or 'provisioned_scaling' + wt = item.workload_type or '' + if wt == 'FMAPI_DATABRICKS': + dbu_hr = FMAPI_DB_PROVISIONED_FALLBACK.get(rate_type, 200) + else: + dbu_hr = 150 # Frontend proprietary provisioned fallback + auto_notes.append( + f"FMAPI rate not found for {item.fmapi_model or 'unknown model'}, using fallback {dbu_hr}") + return hours, 0, 0, dbu_hr * hours, '' + else: + wt = (item.workload_type or '').upper() + # AI Parse: quantity-based (pages × complexity rate) + if wt == 'AI_PARSE': + complexity_rates = { + 'low_text': 12.5, 'low_images': 22.5, 'medium': 62.5, 'high': 87.5 + } + complexity = (getattr(item, 'ai_parse_complexity', None) or 'medium').lower() + pages_k = float(getattr(item, 'ai_parse_pages_thousands', 0) or 0) + total_dbus = pages_k * complexity_rates.get(complexity, 62.5) + return 0, 0, 0, total_dbus, '' + # Shutterstock ImageAI: quantity-based (images × 0.857 DBU) + if wt == 'SHUTTERSTOCK_IMAGEAI': + images = int(getattr(item, 'shutterstock_images', 0) or 0) + total_dbus = images * 0.857 + return 0, 0, 0, total_dbus, '' + hours = _calculate_hours_per_month(item) + return hours, 0, 0, dbu_per_hour * hours, '' + + +def write_storage_subrow(sheet, fmt, row, item, idx, cloud, region, tier, + type_display, size_attr): + """Write a storage sub-row for Lakebase (storage/PITR/snapshots) or Vector Search. + + Lakebase uses DSU pricing with different multipliers per feature: + - Database Storage: 15x DSU/GB + - PITR: 8.7x DSU/GB + - Snapshots: 3.91x DSU/GB + Vector Search uses standard storage pricing: cost = GB × $/GB/month. + """ + # DSU multipliers per Databricks SKU page + DSU_MULTIPLIERS = { + 'lakebase_storage_gb': 15.0, + 'lakebase_pitr_gb': 8.7, + 'lakebase_snapshot_gb': 3.91, + } + DSU_LABELS = { + 'lakebase_storage_gb': 'Storage', + 'lakebase_pitr_gb': 'PITR', + 'lakebase_snapshot_gb': 'Snapshots', + } + + if size_attr in DSU_MULTIPLIERS: + storage_gb = float(getattr(item, size_attr, 0) or 0) + dsu_per_gb = DSU_MULTIPLIERS[size_attr] + total_dsu = storage_gb * dsu_per_gb + price_per_dsu = 0.023 + storage_cost = total_dsu * price_per_dsu + storage_rate = price_per_dsu + label = DSU_LABELS[size_attr] + config = f'{label}: {storage_gb:.0f} GB' + notes = f'{storage_gb:.0f} GB × {dsu_per_gb} DSU/GB × ${price_per_dsu}/DSU = ${storage_cost:.2f}/mo' + elif size_attr == 'vector_search_storage_gb': + import math + storage_gb = float(item.vector_search_storage_gb or 0) + capacity_m = float(item.vector_capacity_millions or 1) + mode = (item.vector_search_mode or 'standard').lower() + divisor = 64_000_000 if mode == 'storage_optimized' else 2_000_000 + units = math.ceil(capacity_m * 1_000_000 / divisor) if divisor else 0 + free_gb = units * 20 + billable_gb = max(0, storage_gb - free_gb) + price_per_gb = 0.023 + storage_cost = billable_gb * price_per_gb + storage_rate = price_per_gb + config = f'Storage: {storage_gb:.0f} GB (free: {free_gb} GB)' + notes = f'{storage_gb:.0f} GB total, {free_gb} GB free ({units} units × 20 GB), {billable_gb:.0f} GB billable × ${price_per_gb}/GB = ${storage_cost:.2f}/mo' + else: + storage_gb = 0 + storage_rate = 0.023 + storage_cost = 0 + config = 'Storage: 0 GB' + notes = '' + + name = getattr(item, 'workload_name', f'Workload {idx + 1}') or f'Workload {idx + 1}' + storage_row = { + 'idx': '', + 'name': name, + 'type_display': type_display, + 'config': config, + 'sku': 'DATABRICKS_STORAGE', + 'driver_node': '-', 'worker_node': '-', + 'num_workers': 0, + 'driver_tier': '-', 'worker_tier': '-', + 'hours_per_month': 0, + 'token_type': '', 'token_quantity_millions': 0, + 'dbu_per_million': 0, 'dbu_per_hour': 0, + 'total_dbus_month': 0, + 'dbu_rate': storage_rate, + 'discount_pct': 0.0, + 'driver_vm_cost_per_hour': 0, 'worker_vm_cost_per_hour': 0, + 'notes': notes, + 'storage_cost_monthly': storage_cost, + } + write_data_row(sheet, row, storage_row, False, True, fmt, is_storage_row=True) + return row + 1 diff --git a/lakemeter/backend/app/routes/export/excel_row_writer.py b/lakemeter/backend/app/routes/export/excel_row_writer.py new file mode 100644 index 00000000..11c56e8c --- /dev/null +++ b/lakemeter/backend/app/routes/export/excel_row_writer.py @@ -0,0 +1,184 @@ +"""Excel row writing logic with formula generation.""" +from xlsxwriter.utility import xl_col_to_name as _col + +from .excel_columns import NUM_COLS, COLUMN_WIDTHS, get_headers # noqa: F401 + + +def write_data_row(sheet, row, row_data, is_fmapi_token, is_serverless, fmt, + is_storage_row=False): + """Write a single export row with formulas for all computed cells.""" + r = row + 1 # 1-indexed for Excel formulas + + # Col 0-5: static fields + sheet.write(row, 0, row_data['idx'], fmt['cell_center']) + sheet.write(row, 1, row_data['name'], fmt['cell']) + sheet.write(row, 2, row_data['type_display'], fmt['cell']) + if is_serverless: + sheet.write(row, 3, "Serverless", fmt['serverless']) + else: + sheet.write(row, 3, "Classic", fmt['cell_center']) + sheet.write(row, 4, row_data['config'], fmt['cell']) + sheet.write(row, 5, row_data['sku'], fmt['cell_mono']) + + # Col 6-10: VM config + if is_serverless: + for c in range(6, 11): + sheet.write(row, c, '-', fmt['serverless']) + else: + sheet.write(row, 6, row_data.get('driver_node', '-'), fmt['cell_mono']) + sheet.write(row, 7, row_data.get('worker_node', '-'), fmt['cell_mono']) + sheet.write(row, 8, row_data['num_workers'], fmt['number']) + sheet.write(row, 9, row_data.get('driver_tier', '-'), fmt['cell_center']) + sheet.write(row, 10, row_data.get('worker_tier', '-'), fmt['cell_center']) + + # Col 11: Hours/Mo + _write_hours(sheet, row, row_data, is_fmapi_token, is_storage_row, fmt) + + # Col 12-14: Token columns + _write_token_cols(sheet, row, row_data, is_fmapi_token, fmt) + + # Col 15: DBU/Hr + if is_fmapi_token: + sheet.write(row, 15, 'N/A', fmt['token_cell']) + elif is_storage_row: + sheet.write(row, 15, 'N/A', fmt['cell_center']) + else: + sheet.write(row, 15, row_data['dbu_per_hour'], fmt['decimal']) + + # Col 16-21: DBU calculations with formulas + _write_dbu_costs(sheet, row, r, row_data, is_fmapi_token, is_storage_row, fmt) + + # Col 22-26: VM costs + _write_vm_costs(sheet, row, r, row_data, is_serverless, is_storage_row, fmt) + + # Col 27-28: Total costs + _write_total_costs(sheet, row, r, row_data, is_serverless, is_storage_row, fmt) + + # Col 29: Notes + sheet.write(row, 29, row_data.get('notes', ''), fmt['cell']) + + +def _write_hours(sheet, row, row_data, is_fmapi_token, is_storage_row, fmt): + if is_fmapi_token: + sheet.write(row, 11, 'N/A', fmt['token_cell']) + elif is_storage_row: + sheet.write(row, 11, 'N/A', fmt['cell_center']) + else: + sheet.write(row, 11, row_data['hours_per_month'], fmt['decimal']) + + +def _write_token_cols(sheet, row, row_data, is_fmapi_token, fmt): + if is_fmapi_token: + sheet.write(row, 12, row_data.get('token_type', ''), fmt['token_cell']) + sheet.write(row, 13, row_data['token_quantity_millions'], fmt['token_num']) + sheet.write(row, 14, row_data['dbu_per_million'], fmt['token_dbu']) + else: + sheet.write(row, 12, '-', fmt['cell_center']) + sheet.write(row, 13, '-', fmt['cell_center']) + sheet.write(row, 14, '-', fmt['cell_center']) + + +def _write_dbu_costs(sheet, row, r, row_data, is_fmapi_token, is_storage_row, fmt): + total_dbus_month = row_data.get('total_dbus_month', 0) + dbu_rate = row_data['dbu_rate'] + discount_pct = row_data['discount_pct'] + + # Col 16: DBUs/Mo — FORMULA + if is_storage_row: + sheet.write(row, 16, 0, fmt['number']) + elif is_fmapi_token: + formula = f'={_col(13)}{r}*{_col(14)}{r}' + sheet.write_formula(row, 16, formula, fmt['number'], total_dbus_month) + else: + formula = f'={_col(15)}{r}*{_col(11)}{r}' + sheet.write_formula(row, 16, formula, fmt['number'], total_dbus_month) + + # Col 17: DBU Rate (List) + sheet.write(row, 17, dbu_rate, fmt['currency']) + # Col 18: Discount % + sheet.write(row, 18, discount_pct, fmt['pct']) + + # Col 19: DBU Rate (Disc.) — FORMULA: =R*(1-S) + discounted_rate = dbu_rate * (1 - discount_pct) + formula = f'={_col(17)}{r}*(1-{_col(18)}{r})' + sheet.write_formula(row, 19, formula, fmt['currency'], discounted_rate) + + # Col 20: DBU Cost (List) + dbu_cost_list = total_dbus_month * dbu_rate + if is_storage_row: + storage_cost = row_data.get('storage_cost_monthly', 0) + sheet.write(row, 20, storage_cost, fmt['dbu_currency']) + else: + formula = f'={_col(16)}{r}*{_col(17)}{r}' + sheet.write_formula(row, 20, formula, fmt['dbu_currency'], dbu_cost_list) + + # Col 21: DBU Cost (Disc.) + dbu_cost_disc = total_dbus_month * discounted_rate + if is_storage_row: + storage_cost = row_data.get('storage_cost_monthly', 0) + formula = f'={_col(20)}{r}*(1-{_col(18)}{r})' + sheet.write_formula(row, 21, formula, fmt['discount_currency'], + storage_cost * (1 - discount_pct)) + else: + formula = f'={_col(16)}{r}*{_col(19)}{r}' + sheet.write_formula(row, 21, formula, fmt['discount_currency'], dbu_cost_disc) + + +def _write_vm_costs(sheet, row, r, row_data, is_serverless, is_storage_row, fmt): + driver_vm_hr = row_data.get('driver_vm_cost_per_hour', 0) + worker_vm_hr = row_data.get('worker_vm_cost_per_hour', 0) + hours = row_data.get('hours_per_month', 0) + nw = row_data.get('num_workers', 0) + + if is_serverless or is_storage_row: + for c in range(22, 27): + sheet.write(row, c, 0, fmt['vm_currency']) + else: + sheet.write(row, 22, driver_vm_hr, fmt['currency']) + sheet.write(row, 23, worker_vm_hr, fmt['currency']) + driver_vm_total = driver_vm_hr * hours + formula = f'={_col(22)}{r}*{_col(11)}{r}' + sheet.write_formula(row, 24, formula, fmt['vm_currency'], driver_vm_total) + worker_vm_total = worker_vm_hr * hours * nw + formula = f'={_col(23)}{r}*{_col(11)}{r}*{_col(8)}{r}' + sheet.write_formula(row, 25, formula, fmt['vm_currency'], worker_vm_total) + formula = f'={_col(24)}{r}+{_col(25)}{r}' + sheet.write_formula(row, 26, formula, fmt['vm_currency'], + driver_vm_total + worker_vm_total) + + +def _write_total_costs(sheet, row, r, row_data, is_serverless, is_storage_row, fmt): + driver_vm_hr = row_data.get('driver_vm_cost_per_hour', 0) + worker_vm_hr = row_data.get('worker_vm_cost_per_hour', 0) + hours = row_data.get('hours_per_month', 0) + nw = row_data.get('num_workers', 0) + dbu_rate = row_data['dbu_rate'] + discount_pct = row_data['discount_pct'] + total_dbus_month = row_data.get('total_dbus_month', 0) + discounted_rate = dbu_rate * (1 - discount_pct) + dbu_cost_list = total_dbus_month * dbu_rate + dbu_cost_disc = total_dbus_month * discounted_rate + vm_total = 0 + if not is_serverless and not is_storage_row: + vm_total = driver_vm_hr * hours + worker_vm_hr * hours * nw + + # Col 27: Total Cost (List) + if is_storage_row: + storage_cost = row_data.get('storage_cost_monthly', 0) + formula = f'={_col(20)}{r}+{_col(26)}{r}' + sheet.write_formula(row, 27, formula, fmt['total_currency'], storage_cost) + else: + formula = f'={_col(20)}{r}+{_col(26)}{r}' + sheet.write_formula(row, 27, formula, fmt['total_currency'], + dbu_cost_list + vm_total) + + # Col 28: Total Cost (Disc.) + if is_storage_row: + storage_cost = row_data.get('storage_cost_monthly', 0) + formula = f'={_col(21)}{r}+{_col(26)}{r}' + sheet.write_formula(row, 28, formula, fmt['total_currency'], + storage_cost * (1 - discount_pct)) + else: + formula = f'={_col(21)}{r}+{_col(26)}{r}' + sheet.write_formula(row, 28, formula, fmt['total_currency'], + dbu_cost_disc + vm_total) diff --git a/lakemeter/backend/app/routes/export/excel_sections.py b/lakemeter/backend/app/routes/export/excel_sections.py new file mode 100644 index 00000000..db278bd4 --- /dev/null +++ b/lakemeter/backend/app/routes/export/excel_sections.py @@ -0,0 +1,134 @@ +"""Excel sections: totals, cost summary, legend, assumptions, footer.""" +from datetime import datetime +from xlsxwriter.utility import xl_col_to_name as _col + + +def write_totals(sheet, fmt, row, data_start_row, data_end_row): + """Write the totals row with SUM formulas.""" + row += 1 + sheet.merge_range(row, 0, row, 15, 'TOTALS:', fmt['total_label']) + + if data_end_row >= data_start_row: + ds = data_start_row + 1 + de = data_end_row + 1 + sheet.write_formula(row, 16, f'=SUM({_col(16)}{ds}:{_col(16)}{de})', fmt['total_dbu_num']) + for c in [17, 18, 19]: + sheet.write(row, c, '', fmt['total_label']) + sheet.write_formula(row, 20, f'=SUM({_col(20)}{ds}:{_col(20)}{de})', fmt['total_dbu_value']) + sheet.write_formula(row, 21, f'=SUM({_col(21)}{ds}:{_col(21)}{de})', fmt['total_dbu_value']) + sheet.write(row, 22, '', fmt['total_label']) + sheet.write(row, 23, '', fmt['total_label']) + sheet.write_formula(row, 24, f'=SUM({_col(24)}{ds}:{_col(24)}{de})', fmt['total_vm_value']) + sheet.write_formula(row, 25, f'=SUM({_col(25)}{ds}:{_col(25)}{de})', fmt['total_vm_value']) + sheet.write_formula(row, 26, f'=SUM({_col(26)}{ds}:{_col(26)}{de})', fmt['total_vm_value']) + sheet.write_formula(row, 27, f'=SUM({_col(27)}{ds}:{_col(27)}{de})', fmt['total_grand_value']) + sheet.write_formula(row, 28, f'=SUM({_col(28)}{ds}:{_col(28)}{de})', fmt['total_grand_value']) + sheet.write(row, 29, '', fmt['total_label']) + else: + for c in range(16, 20): + sheet.write(row, c, '', fmt['total_label']) + for c in [20, 21, 24, 25, 26, 27, 28]: + f_key = 'total_dbu_value' if c <= 21 else ('total_vm_value' if c <= 26 else 'total_grand_value') + sheet.write(row, c, 0, fmt[f_key]) + for c in [22, 23, 29]: + sheet.write(row, c, '', fmt['total_label']) + + row += 2 + return row + + +def write_cost_summary(sheet, fmt, row, totals_row): + """Write the cost summary section (monthly + annual).""" + sheet.merge_range(row, 0, row, 7, 'COST SUMMARY', fmt['section_header']) + row += 1 + + summary_headers = ['', 'DBU Cost\n(List)', 'DBU Cost\n(Disc.)', 'Driver VM', + 'Worker VM', 'Total VM', 'Total (List)', 'Total (Disc.)'] + summary_fmts = [fmt['header_main'], fmt['header_dbu'], fmt['header_discount'], + fmt['header_vm'], fmt['header_vm'], fmt['header_vm'], + fmt['header_total'], fmt['header_total']] + for col, (h, f) in enumerate(zip(summary_headers, summary_fmts)): + sheet.write(row, col, h, f) + row += 1 + + tr = totals_row + 1 + sheet.write(row, 0, 'Monthly', fmt['cell']) + col_map = [20, 21, 24, 25, 26, 27, 28] + fmt_map = [fmt['dbu_currency'], fmt['discount_currency'], fmt['vm_currency'], + fmt['vm_currency'], fmt['vm_currency'], fmt['total_currency'], + fmt['total_currency']] + for i, (src_col, cell_fmt) in enumerate(zip(col_map, fmt_map)): + sheet.write_formula(row, i + 1, f'={_col(src_col)}{tr}', cell_fmt) + monthly_row = row + row += 1 + + sheet.write(row, 0, 'Annual', fmt['cell']) + for c in range(1, 8): + col_letter = chr(ord('B') + c - 1) + sheet.write_formula(row, c, f'={col_letter}{monthly_row + 1}*12', fmt_map[c - 1]) + row += 2 + return row + + +def write_dbu_summary(sheet, fmt, row, data_start_row, data_end_row): + """Write total DBUs/month summary line.""" + sheet.merge_range(row, 0, row, 1, 'Total DBUs/Month:', fmt['label']) + if data_end_row >= data_start_row: + sheet.write_formula(row, 2, + f'=SUM({_col(16)}{data_start_row + 1}:{_col(16)}{data_end_row + 1})', + fmt['total_dbu_num']) + else: + sheet.write(row, 2, 0, fmt['total_dbu_num']) + row += 2 + return row + + +def write_legend(sheet, fmt, row): + """Write the legend section.""" + sheet.merge_range(row, 0, row, 7, 'LEGEND', fmt['section_header']) + row += 1 + legend_items = [ + ('Blue columns', 'DBU-related costs (Databricks compute units)'), + ('Cyan columns', 'Token-based pricing (FMAPI workloads)'), + ('Pink columns', 'Discount pricing (Discounted DBU Rate & Cost)'), + ('Green columns', 'VM infrastructure costs (cloud provider)'), + ('Purple columns', 'Total cost (DBU + VM)'), + ('Serverless', 'No VM costs - compute is fully managed by Databricks'), + ] + for label_text, desc in legend_items: + sheet.write(row, 0, f'• {label_text}:', fmt['label']) + sheet.merge_range(row, 1, row, 7, desc, fmt['value']) + row += 1 + row += 1 + return row + + +def write_assumptions(sheet, fmt, row, max_col): + """Write the assumptions & notes section.""" + sheet.merge_range(row, 0, row, max_col, 'ASSUMPTIONS & NOTES', fmt['section_header']) + row += 1 + assumptions = [ + "• This estimate is based on list pricing. Actual costs may vary based on negotiated discounts.", + "• DBU rates are based on the selected cloud provider, region, and tier.", + "• VM costs use default estimates. For exact VM pricing, consult your cloud provider.", + "• FMAPI token workloads: cost = Tokens/Mo(M) × DBU/1M Tokens × $/DBU. No hourly usage.", + "• Provisioned FMAPI workloads use Hours/Mo × DBU/Hr × $/DBU.", + "• Discount % column is reserved for negotiated discounts (default 0% = list price).", + "• Serverless workloads have no VM costs - compute is included in the DBU rate.", + f"• Estimate exported: {datetime.now().strftime('%Y-%m-%d %H:%M UTC')}", + ] + for assumption in assumptions: + sheet.merge_range(row, 0, row, max_col, assumption, fmt['notes']) + row += 1 + row += 1 + return row + + +def write_footer(sheet, workbook, row, max_col): + """Write the footer line.""" + footer_format = workbook.add_format({ + 'font_size': 9, 'font_color': '#94a3b8', 'align': 'center' + }) + sheet.merge_range(row, 0, row, max_col, + f'Generated by Lakemeter • Databricks Pricing Calculator • {datetime.now().year}', + footer_format) diff --git a/lakemeter/backend/app/routes/export/helpers.py b/lakemeter/backend/app/routes/export/helpers.py new file mode 100644 index 00000000..2855aebb --- /dev/null +++ b/lakemeter/backend/app/routes/export/helpers.py @@ -0,0 +1,217 @@ +"""Access control and display helper functions for export.""" +from uuid import UUID +from fastapi import HTTPException +from sqlalchemy.orm import Session + +from app.models import Estimate, User +from app.models.sharing import Sharing + + +def _check_estimate_access(estimate_id: UUID, user: User, db: Session) -> Estimate: + """Check if user has access to an estimate.""" + estimate = db.query(Estimate).filter( + Estimate.estimate_id == estimate_id, + Estimate.is_deleted == False + ).first() + if not estimate: + raise HTTPException(status_code=404, detail="Estimate not found") + is_owner = estimate.owner_user_id == user.user_id + is_shared = db.query(Sharing).filter( + Sharing.estimate_id == estimate_id, + Sharing.shared_with_user_id == user.user_id + ).first() is not None + if not is_owner and not is_shared: + raise HTTPException(status_code=404, detail="Estimate not found") + return estimate + + +def _get_workload_display_name(workload_type: str) -> str: + """Get friendly display name for workload type.""" + names = { + 'JOBS': 'Lakeflow Job Compute', + 'ALL_PURPOSE': 'All-Purpose Compute', + 'DLT': 'Lakeflow Spark Declarative Pipelines', + 'DBSQL': 'Databricks SQL', + 'VECTOR_SEARCH': 'Vector Search', + 'MODEL_SERVING': 'Model Serving', + 'FMAPI_DATABRICKS': 'Foundation Models (Databricks)', + 'FMAPI_PROPRIETARY': 'Foundation Models (Proprietary)', + 'LAKEBASE': 'Lakebase', + 'DATABRICKS_APPS': 'Databricks Apps', + 'CLEAN_ROOM': 'Clean Room', + 'AI_PARSE': 'AI Parse (Document AI)', + 'SHUTTERSTOCK_IMAGEAI': 'Shutterstock ImageAI', + 'LAKEFLOW_CONNECT': 'Lakeflow Connect', + } + return names.get(workload_type, workload_type) + + +def _get_workload_config_details(item) -> str: + """Get workload-specific configuration details for display.""" + wt = item.workload_type or '' + details = [] + + if wt in ('JOBS', 'ALL_PURPOSE', 'DLT') and item.serverless_enabled: + serverless_mode = (item.serverless_mode or 'standard').capitalize() + details.append(f"Mode: {serverless_mode}") + + if wt == 'DBSQL': + details.extend(_dbsql_details(item)) + elif wt == 'VECTOR_SEARCH': + details.extend(_vector_search_details(item)) + elif wt == 'MODEL_SERVING': + details.extend(_model_serving_details(item)) + elif wt in ('FMAPI_DATABRICKS', 'FMAPI_PROPRIETARY'): + details.extend(_fmapi_details(item)) + elif wt == 'LAKEBASE': + details.extend(_lakebase_details(item)) + elif wt == 'DLT': + details.extend(_dlt_details(item)) + elif wt == 'DATABRICKS_APPS': + size = (getattr(item, 'databricks_apps_size', None) or 'medium').capitalize() + details.append(f"Size: {size}") + elif wt == 'CLEAN_ROOM': + collaborators = getattr(item, 'clean_room_collaborators', None) or 1 + details.append(f"Collaborators: {collaborators}") + elif wt == 'AI_PARSE': + details.extend(_ai_parse_details(item)) + elif wt == 'SHUTTERSTOCK_IMAGEAI': + images = getattr(item, 'shutterstock_images', None) or 0 + details.append(f"Images/mo: {images:,}") + elif wt == 'LAKEFLOW_CONNECT': + details.extend(_lakeflow_connect_details(item)) + + return ' | '.join(details) if details else '-' + + +def _dbsql_details(item) -> list: + details = [] + if item.dbsql_warehouse_type: + details.append(f"Type: {item.dbsql_warehouse_type}") + if item.dbsql_warehouse_size: + details.append(f"Size: {item.dbsql_warehouse_size}") + if item.dbsql_num_clusters and item.dbsql_num_clusters > 1: + details.append(f"Clusters: {item.dbsql_num_clusters}") + return details + + +def _vector_search_details(item) -> list: + details = [] + mode = item.vector_search_mode or 'standard' + mode_display = 'Storage Optimized' if mode == 'storage_optimized' else 'Standard' + details.append(f"Mode: {mode_display}") + if item.vector_capacity_millions: + details.append(f"Capacity: {item.vector_capacity_millions}M vectors") + return details + + +MODEL_SERVING_GPU_NAMES = { + 'cpu': 'CPU', + 'gpu_small_t4': 'Small (T4)', + 'gpu_medium_a10g_1x': 'Medium (A10G 1x)', + 'gpu_medium_a10g_4x': 'Medium (A10G 4x)', + 'gpu_medium_a10g_8x': 'Medium (A10G 8x)', + 'gpu_large_a10g_4x': 'Large (A10G 4x)', + 'gpu_medium_a100_1x': 'Medium (A100 1x)', + 'gpu_large_a100_2x': 'Large (A100 2x)', + 'gpu_xlarge_a100_40gb_8x': 'XLarge (A100 40GB 8x)', + 'gpu_xlarge_a100_80gb_8x': 'XLarge (A100 80GB 8x)', + 'gpu_xlarge_a100_80gb_1x': 'XLarge (A100 80GB 1x)', + 'gpu_2xlarge_a100_80gb_2x': '2XLarge (A100 80GB 2x)', + 'gpu_4xlarge_a100_80gb_4x': '4XLarge (A100 80GB 4x)', + 'gpu_medium_g2_standard_8': 'Medium (G2 Standard 8)', +} + + +def _model_serving_details(item) -> list: + details = [] + if item.model_serving_gpu_type: + name = MODEL_SERVING_GPU_NAMES.get( + item.model_serving_gpu_type, item.model_serving_gpu_type + ) + details.append(f"GPU: {name}") + # Show concurrency (from dedicated column or default 4) + concurrency = getattr(item, 'model_serving_concurrency', None) or 4 + scale_out = getattr(item, 'model_serving_scale_out', None) or 'small' + scale_labels = {'small': 'Small', 'medium': 'Medium', 'large': 'Large', 'custom': 'Custom'} + label = scale_labels.get(scale_out, scale_out) + details.append(f"Scale-Out: {label} ({concurrency} concurrency)") + return details + + +def _fmapi_details(item) -> list: + details = [] + if item.fmapi_model: + details.append(f"Model: {item.fmapi_model}") + if item.fmapi_rate_type: + rate_type_display = { + 'input_token': 'Input Tokens', + 'output_token': 'Output Tokens', + 'cache_read': 'Cache Read', + 'cache_write': 'Cache Write', + 'batch_inference': 'Batch Inference', + 'provisioned_scaling': 'Provisioned Scaling', + 'provisioned_entry': 'Provisioned Entry', + } + details.append(f"Rate: {rate_type_display.get(item.fmapi_rate_type, item.fmapi_rate_type)}") + if item.fmapi_quantity: + token_types = ('input_token', 'output_token', 'cache_read', 'cache_write') + if item.fmapi_rate_type in token_types: + details.append(f"Tokens: {float(item.fmapi_quantity):.1f}M/mo") + else: + details.append(f"Hours: {item.fmapi_quantity}") + return details + + +def _lakebase_details(item) -> list: + details = [] + if item.lakebase_cu: + details.append(f"CU: {item.lakebase_cu}") + if item.lakebase_ha_nodes: + details.append(f"Nodes: {item.lakebase_ha_nodes}") + return details + + +def _dlt_details(item) -> list: + details = [] + if item.dlt_edition: + details.append(f"Edition: {item.dlt_edition.upper()}") + if item.photon_enabled: + details.append("Photon") + return details + + +def _ai_parse_details(item) -> list: + details = [] + mode = getattr(item, 'ai_parse_mode', None) or 'pages' + if mode == 'dbu': + details.append("Mode: Direct DBU") + else: + complexity_labels = { + 'low_text': 'Low (Text Only)', + 'low_images': 'Low (With Images)', + 'medium': 'Medium', + 'high': 'High', + } + complexity = getattr(item, 'ai_parse_complexity', None) or 'medium' + details.append(f"Complexity: {complexity_labels.get(complexity, complexity)}") + pages = getattr(item, 'ai_parse_pages_thousands', None) or 0 + details.append(f"Pages: {float(pages):.0f}K") + return details + + +def _lakeflow_connect_details(item) -> list: + details = [] + details.append("Pipeline: DLT Serverless") + if getattr(item, 'lakeflow_connect_gateway_enabled', False): + gw_instance = getattr(item, 'lakeflow_connect_gateway_instance', None) or 'default' + details.append(f"Gateway: {gw_instance}") + return details + + +def _get_pricing_tier_display(tier: str) -> str: + displays = { + 'on_demand': 'On-Demand', 'spot': 'Spot', + 'reserved_1y': '1-Year Reserved', 'reserved_3y': '3-Year Reserved', + } + return displays.get(tier, tier or '-') diff --git a/lakemeter/backend/app/routes/export/pricing.py b/lakemeter/backend/app/routes/export/pricing.py new file mode 100644 index 00000000..9cb828ba --- /dev/null +++ b/lakemeter/backend/app/routes/export/pricing.py @@ -0,0 +1,210 @@ +"""Pricing data loading and lookup functions for export.""" +import json, logging, os + +logger = logging.getLogger(__name__) + +# ========== LOAD PRICING DATA FROM STATIC JSON ========== +_PRICING_DIR = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'static', 'pricing') + + +def _load_json(filename: str) -> dict: + path = os.path.join(_PRICING_DIR, filename) + if os.path.exists(path): + with open(path, 'r') as f: + return json.load(f) + return {} + + +# Load once at import time +DBU_RATES_BY_REGION = _load_json('dbu-rates.json') +INSTANCE_DBU_RATES = _load_json('instance-dbu-rates.json') +MODEL_SERVING_RATES = _load_json('model-serving-rates.json') +FMAPI_DB_RATES = _load_json('fmapi-databricks-rates.json') +FMAPI_PROP_RATES = _load_json('fmapi-proprietary-rates.json') +VECTOR_SEARCH_RATES = _load_json('vector-search-rates.json') +DBSQL_RATES = _load_json('dbsql-rates.json') +DBU_MULTIPLIERS = _load_json('dbu-multipliers.json') +DBSQL_WAREHOUSE_CONFIG = _load_json('dbsql-warehouse-config.json') + +# Fallback DBU $/DBU rates — aligned with frontend DEFAULT_DBU_PRICING (costCalculation.ts) +FALLBACK_DBU_PRICES = { + 'JOBS_COMPUTE': 0.15, 'JOBS_COMPUTE_(PHOTON)': 0.15, 'JOBS_SERVERLESS_COMPUTE': 0.39, + 'ALL_PURPOSE_COMPUTE': 0.55, 'ALL_PURPOSE_COMPUTE_(PHOTON)': 0.55, + 'INTERACTIVE_SERVERLESS_COMPUTE': 0.83, 'ALL_PURPOSE_SERVERLESS_COMPUTE': 0.83, + 'DLT_CORE_COMPUTE': 0.20, 'DLT_CORE_COMPUTE_(PHOTON)': 0.20, + 'DLT_PRO_COMPUTE': 0.25, 'DLT_PRO_COMPUTE_(PHOTON)': 0.25, + 'DLT_ADVANCED_COMPUTE': 0.36, 'DLT_ADVANCED_COMPUTE_(PHOTON)': 0.36, + 'DELTA_LIVE_TABLES_SERVERLESS': 0.30, 'SQL_COMPUTE': 0.22, + 'SQL_PRO_COMPUTE': 0.55, 'SERVERLESS_SQL_COMPUTE': 0.70, + 'SERVERLESS_REAL_TIME_INFERENCE': 0.07, 'SERVERLESS_REAL_TIME_INFERENCE_LAUNCH': 0.07, + 'OPENAI_MODEL_SERVING': 0.07, 'ANTHROPIC_MODEL_SERVING': 0.07, + 'GEMINI_MODEL_SERVING': 0.07, 'GOOGLE_MODEL_SERVING': 0.07, + 'FOUNDATION_MODEL_TRAINING': 0.20, 'DATABASE_SERVERLESS_COMPUTE': 0.48, + 'DATABRICKS_APPS_COMPUTE': 0.07, +} + + +def _get_dbu_price(cloud: str, region: str, tier: str, sku: str) -> tuple: + """Look up $/DBU from pricing JSON. Returns (price, found) tuple.""" + key = f"{cloud}:{region}:{tier.upper()}" + region_rates = DBU_RATES_BY_REGION.get(key, {}) + if sku in region_rates: + return region_rates[sku], True + # Try without region specificity - find any matching cloud:*:tier + for k, v in DBU_RATES_BY_REGION.items(): + parts = k.split(':') + if len(parts) == 3 and parts[0] == cloud and parts[2] == tier.upper() and sku in v: + return v[sku], True + # Fallback — mark as not found so notes can warn + fallback = FALLBACK_DBU_PRICES.get(sku, 0) + return fallback, False + + +def _get_photon_multiplier(cloud: str, sku_base: str) -> float: + """Get photon multiplier from dbu-multipliers.json. + + Returns the multiplier (e.g. 2.9 for DLT_ADVANCED on AWS) or 2.0 as default. + """ + key = f"{cloud}:{sku_base}:photon" + info = DBU_MULTIPLIERS.get(key, {}) + if isinstance(info, dict) and 'multiplier' in info: + return info['multiplier'] + logger.warning("Photon multiplier not found for %s, using fallback 2.0", key) + return 2.0 + + +def _get_sku_type(item, cloud: str = 'aws') -> str: + """Determine the SKU/product type for a line item.""" + wt = (item.workload_type or '').upper() + + if wt == 'JOBS': + if item.serverless_enabled: + return 'JOBS_SERVERLESS_COMPUTE' + elif item.photon_enabled: + return 'JOBS_COMPUTE_(PHOTON)' + return 'JOBS_COMPUTE' + elif wt == 'ALL_PURPOSE': + if item.serverless_enabled: + return 'ALL_PURPOSE_SERVERLESS_COMPUTE' + elif item.photon_enabled: + return 'ALL_PURPOSE_COMPUTE_(PHOTON)' + return 'ALL_PURPOSE_COMPUTE' + elif wt == 'DLT': + if item.serverless_enabled: + return 'JOBS_SERVERLESS_COMPUTE' + edition = (item.dlt_edition or 'CORE').upper() + if item.photon_enabled: + return f'DLT_{edition}_COMPUTE_(PHOTON)' + return f'DLT_{edition}_COMPUTE' + elif wt == 'DBSQL': + warehouse_type = (item.dbsql_warehouse_type or 'SERVERLESS').upper() + if warehouse_type == 'SERVERLESS': + return 'SERVERLESS_SQL_COMPUTE' + elif warehouse_type == 'PRO': + return 'SQL_PRO_COMPUTE' + return 'SQL_COMPUTE' + elif wt == 'VECTOR_SEARCH': + return 'SERVERLESS_REAL_TIME_INFERENCE' + elif wt == 'MODEL_SERVING': + return 'SERVERLESS_REAL_TIME_INFERENCE' + elif wt == 'FMAPI_DATABRICKS': + return _get_fmapi_sku(item, cloud) + elif wt == 'FMAPI_PROPRIETARY': + # Use provider-specific SKU for pricing lookup (matches frontend) + provider = (item.fmapi_provider or 'openai').lower() + provider_mapping = { + 'google': 'GEMINI', 'anthropic': 'ANTHROPIC', 'openai': 'OPENAI' + } + return f'{provider_mapping.get(provider, provider.upper())}_MODEL_SERVING' + elif wt == 'LAKEBASE': + return 'DATABASE_SERVERLESS_COMPUTE' + elif wt == 'DATABRICKS_APPS': + return 'ALL_PURPOSE_SERVERLESS_COMPUTE' + elif wt == 'AI_PARSE': + return 'SERVERLESS_REAL_TIME_INFERENCE' + elif wt == 'SHUTTERSTOCK_IMAGEAI': + return 'SERVERLESS_REAL_TIME_INFERENCE' + return 'JOBS_COMPUTE' + + +def _get_fmapi_sku(item, cloud: str) -> str: + """Get the actual SKU product type for FMAPI from pricing JSON.""" + rate_type = item.fmapi_rate_type or 'input_token' + model = item.fmapi_model or '' + wt = item.workload_type or '' + + if wt == 'FMAPI_DATABRICKS': + key = f"{cloud}:{model}:{rate_type}" + info = FMAPI_DB_RATES.get(key, {}) + return info.get('sku_product_type', 'SERVERLESS_REAL_TIME_INFERENCE') + elif wt == 'FMAPI_PROPRIETARY': + provider = item.fmapi_provider or '' + endpoint = getattr(item, 'fmapi_endpoint_type', 'global') or 'global' + context = getattr(item, 'fmapi_context_length', 'all') or 'all' + key = f"{cloud}:{provider}:{model}:{endpoint}:{context}:{rate_type}" + info = FMAPI_PROP_RATES.get(key, {}) + return info.get('sku_product_type', 'OPENAI_MODEL_SERVING') + return 'SERVERLESS_REAL_TIME_INFERENCE' + + +def _get_fmapi_dbu_per_million(item, cloud: str) -> tuple: + """Get DBU per 1M tokens (or DBU/hr for provisioned) from pricing JSON. + + Returns (dbu_rate, found) tuple. found=False means no match in pricing data. + """ + rate_type = item.fmapi_rate_type or 'input_token' + model = item.fmapi_model or '' + wt = item.workload_type or '' + + if wt == 'FMAPI_DATABRICKS': + key = f"{cloud}:{model}:{rate_type}" + info = FMAPI_DB_RATES.get(key, {}) + if 'dbu_rate' in info: + return info['dbu_rate'], True + key_lower = key.lower().strip() + for k, v in FMAPI_DB_RATES.items(): + if k.lower().strip() == key_lower: + return v.get('dbu_rate', 0), True + return 0, False + elif wt == 'FMAPI_PROPRIETARY': + provider = item.fmapi_provider or '' + endpoint = getattr(item, 'fmapi_endpoint_type', 'global') or 'global' + # Default to 'all' context matching the API's default (fmapi_calc.py) + context = getattr(item, 'fmapi_context_length', 'all') or 'all' + key = f"{cloud}:{provider}:{model}:{endpoint}:{context}:{rate_type}" + info = FMAPI_PROP_RATES.get(key, {}) + if 'dbu_rate' in info: + return info['dbu_rate'], True + # Try case-insensitive match + key_lower = key.lower().strip() + for k, v in FMAPI_PROP_RATES.items(): + if k.lower().strip() == key_lower: + return v.get('dbu_rate', 0), True + # Try alternate context as fallback (OpenAI uses 'all', Google uses 'long'/'short') + alt_contexts = [] + if context != 'all': + alt_contexts.append('all') + if context != 'long': + alt_contexts.append('long') + for alt_ctx in alt_contexts: + alt_key = f"{cloud}:{provider}:{model}:{endpoint}:{alt_ctx}:{rate_type}" + info = FMAPI_PROP_RATES.get(alt_key, {}) + if 'dbu_rate' in info: + return info['dbu_rate'], True + return 0, False + return 0, False + +# Fallback DBU/1M token rates matching frontend costCalculation.ts +FMAPI_PROP_FALLBACK_RATES = { + 'input_token': 21.43, 'input': 21.43, + 'output_token': 321.43, 'output': 321.43, + 'cache_read': 8.57, 'cache_write': 85.71, +} + + +def _is_fmapi_hourly(item, cloud: str) -> bool: + """Check if FMAPI rate is hourly (provisioned) vs token-based. + Only provisioned_scaling/provisioned_entry are hourly — matches frontend. + """ + rate_type = item.fmapi_rate_type or 'input_token' + return rate_type in ('provisioned_scaling', 'provisioned_entry') \ No newline at end of file diff --git a/lakemeter/backend/app/routes/export/routes.py b/lakemeter/backend/app/routes/export/routes.py new file mode 100644 index 00000000..dff20fe1 --- /dev/null +++ b/lakemeter/backend/app/routes/export/routes.py @@ -0,0 +1,117 @@ +"""Export API route handlers.""" +import re +from uuid import UUID +from datetime import datetime +from io import BytesIO +from fastapi import APIRouter, Depends, HTTPException +from fastapi.responses import StreamingResponse +from sqlalchemy import or_ +from sqlalchemy.orm import Session +import xlsxwriter + +from app.database import get_db +from app.models import Estimate, User +from app.models.sharing import Sharing +from app.auth import get_current_user +from .helpers import _check_estimate_access +from .excel_builder import build_estimate_excel + +router = APIRouter(prefix="/export", tags=["export"]) + + +@router.get("/estimate/{estimate_id}/excel") +def export_estimate_to_excel( + estimate_id: UUID, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Export an estimate to Excel format with professional RFP-ready layout.""" + try: + estimate = _check_estimate_access(estimate_id, current_user, db) + line_items = sorted(estimate.line_items, key=lambda x: x.display_order or 0) + cloud = (getattr(estimate, 'cloud', 'aws') or 'aws').lower() + region = getattr(estimate, 'region', 'us-east-1') or 'us-east-1' + tier = getattr(estimate, 'tier', 'PREMIUM') or 'PREMIUM' + + output = build_estimate_excel(estimate, line_items, cloud, region, tier, db=db) + + estimate_name = getattr(estimate, 'estimate_name', 'Untitled') or 'Untitled' + safe_name = re.sub(r'[^a-zA-Z0-9_]', '_', estimate_name)[:50] + filename = f"Databricks_Estimate_{safe_name}_{datetime.now().strftime('%Y%m%d')}.xlsx" + + return StreamingResponse( + output, + media_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + headers={"Content-Disposition": f'attachment; filename="{filename}"'} + ) + except HTTPException: + raise + except Exception as e: + import traceback + traceback.print_exc() + raise HTTPException(status_code=500, detail=f"Export error: {str(e)}") + + +@router.get("/estimates/excel") +def export_all_estimates_to_excel( + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Export all estimates summary to Excel.""" + shared_estimate_ids = db.query(Sharing.estimate_id).filter( + Sharing.shared_with_user_id == current_user.user_id + ).subquery() + + estimates = db.query(Estimate).filter( + Estimate.is_deleted == False, + or_( + Estimate.owner_user_id == current_user.user_id, + Estimate.estimate_id.in_(shared_estimate_ids) + ) + ).order_by(Estimate.updated_at.desc()).all() + + output = BytesIO() + workbook = xlsxwriter.Workbook(output, {'in_memory': True}) + + header_format = workbook.add_format({ + 'bold': True, 'bg_color': '#f97316', 'font_color': 'white', 'border': 1 + }) + cell_format = workbook.add_format({'border': 1}) + + sheet = workbook.add_worksheet('All Estimates') + + headers = ['Estimate Name', 'Cloud', 'Region', 'Tier', 'Status', 'Version', 'Created', 'Updated'] + widths_list = [40, 15, 20, 15, 15, 10, 20, 20] + + for i, width in enumerate(widths_list): + sheet.set_column(i, i, width) + for col, header in enumerate(headers): + sheet.write(0, col, header, header_format) + + for r, est in enumerate(estimates, start=1): + created = getattr(est, 'created_at', '') or '' + updated = getattr(est, 'updated_at', '') or '' + if isinstance(created, datetime): + created = created.strftime('%Y-%m-%d %H:%M') + if isinstance(updated, datetime): + updated = updated.strftime('%Y-%m-%d %H:%M') + + sheet.write(r, 0, getattr(est, 'estimate_name', '') or '', cell_format) + sheet.write(r, 1, getattr(est, 'cloud', '') or '', cell_format) + sheet.write(r, 2, getattr(est, 'region', '') or '', cell_format) + sheet.write(r, 3, getattr(est, 'tier', '') or '', cell_format) + sheet.write(r, 4, getattr(est, 'status', '') or '', cell_format) + sheet.write(r, 5, getattr(est, 'version', 1), cell_format) + sheet.write(r, 6, created, cell_format) + sheet.write(r, 7, updated, cell_format) + + workbook.close() + output.seek(0) + + filename = f"Databricks_Estimates_Export_{datetime.now().strftime('%Y%m%d')}.xlsx" + + return StreamingResponse( + output, + media_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + headers={"Content-Disposition": f'attachment; filename="{filename}"'} + ) diff --git a/lakemeter/backend/app/routes/line_items.py b/lakemeter/backend/app/routes/line_items.py new file mode 100644 index 00000000..92cd7637 --- /dev/null +++ b/lakemeter/backend/app/routes/line_items.py @@ -0,0 +1,327 @@ +"""Line Item API routes.""" +from typing import List, Optional +from uuid import UUID +from datetime import datetime +from fastapi import APIRouter, Depends, HTTPException, Body +from sqlalchemy.orm import Session +from sqlalchemy import or_ +from pydantic import BaseModel + +from app.database import get_db +from app.models import LineItem, Estimate, User +from app.models.sharing import Sharing +from app.schemas import LineItemCreate, LineItemUpdate, LineItemResponse +from app.auth import get_current_user + +# ---- Case normalization for enum-like string fields ---- +_UPPERCASE_FIELDS = {'cloud', 'dbsql_warehouse_type', 'dlt_edition', 'workload_type'} +_LOWERCASE_FIELDS = { + 'serverless_mode', 'vector_search_mode', 'fmapi_provider', + 'fmapi_rate_type', 'fmapi_endpoint_type', 'fmapi_context_length', + 'model_serving_gpu_type', 'driver_pricing_tier', 'worker_pricing_tier', + 'dbsql_vm_pricing_tier', +} + + +def _normalize_case(data: dict) -> dict: + """Normalize enum-like string fields to canonical case.""" + for field in _UPPERCASE_FIELDS: + if field in data and isinstance(data[field], str): + data[field] = data[field].upper() + for field in _LOWERCASE_FIELDS: + if field in data and isinstance(data[field], str): + data[field] = data[field].lower() + return data + + +def _touch_estimate(estimate_id: UUID, db: Session): + """Update the estimate's updated_at timestamp.""" + estimate = db.query(Estimate).filter(Estimate.estimate_id == estimate_id).first() + if estimate: + estimate.updated_at = datetime.utcnow() + db.add(estimate) + + +class CloneRequest(BaseModel): + new_name: Optional[str] = None + +router = APIRouter(prefix="/line-items", tags=["line-items"]) + + +def _check_estimate_access( + estimate_id: UUID, + user: User, + db: Session, + require_edit: bool = False +) -> Estimate: + """ + Check if user has access to an estimate. + + Args: + estimate_id: The estimate UUID + user: The current user + db: Database session + require_edit: If True, user must have edit permission + + Returns: + Estimate object + + Raises: + HTTPException if no access + """ + estimate = db.query(Estimate).filter( + Estimate.estimate_id == estimate_id, + Estimate.is_deleted == False + ).first() + + if not estimate: + raise HTTPException(status_code=404, detail="Estimate not found") + + # Check ownership + is_owner = estimate.owner_user_id == user.user_id + + if is_owner: + return estimate + + # Check if shared with user + sharing = db.query(Sharing).filter( + Sharing.estimate_id == estimate_id, + Sharing.shared_with_user_id == user.user_id + ).first() + + if not sharing: + raise HTTPException(status_code=404, detail="Estimate not found") + + if require_edit and sharing.permission != "edit": + raise HTTPException(status_code=403, detail="You don't have edit permission for this estimate") + + return estimate + + +@router.get("/estimate/{estimate_id}", response_model=List[LineItemResponse]) +def list_line_items( + estimate_id: UUID, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """List all line items for an estimate the user has access to.""" + _check_estimate_access(estimate_id, current_user, db) + + items = db.query(LineItem).filter( + LineItem.estimate_id == estimate_id + ).order_by(LineItem.display_order).all() + + return items + + +@router.post("/", response_model=LineItemResponse, status_code=201) +def create_line_item( + line_item: LineItemCreate, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Create a new line item. User must have edit access to the estimate.""" + _check_estimate_access(line_item.estimate_id, current_user, db, require_edit=True) + + # Get max display order + max_order = db.query(LineItem).filter( + LineItem.estimate_id == line_item.estimate_id + ).count() + + item_data = _normalize_case(line_item.model_dump()) + db_item = LineItem(**item_data) + if db_item.display_order == 0: + db_item.display_order = max_order + + db.add(db_item) + _touch_estimate(line_item.estimate_id, db) # Update estimate timestamp + db.commit() + db.refresh(db_item) + return db_item + + +@router.get("/{line_item_id}", response_model=LineItemResponse) +def get_line_item( + line_item_id: UUID, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Get a line item by ID if user has access to its estimate.""" + item = db.query(LineItem).filter( + LineItem.line_item_id == line_item_id + ).first() + + if not item: + raise HTTPException(status_code=404, detail="Line item not found") + + _check_estimate_access(item.estimate_id, current_user, db) + + return item + + +@router.put("/{line_item_id}", response_model=LineItemResponse) +def update_line_item( + line_item_id: UUID, + line_item_update: LineItemUpdate, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Update a line item. User must have edit access to the estimate.""" + item = db.query(LineItem).filter( + LineItem.line_item_id == line_item_id + ).first() + + if not item: + raise HTTPException(status_code=404, detail="Line item not found") + + _check_estimate_access(item.estimate_id, current_user, db, require_edit=True) + + update_data = _normalize_case(line_item_update.model_dump(exclude_unset=True)) + for field, value in update_data.items(): + setattr(item, field, value) + + _touch_estimate(item.estimate_id, db) # Update estimate timestamp + db.commit() + db.refresh(item) + return item + + +@router.delete("/{line_item_id}", status_code=204) +def delete_line_item( + line_item_id: UUID, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Delete a line item. User must have edit access to the estimate.""" + item = db.query(LineItem).filter( + LineItem.line_item_id == line_item_id + ).first() + + if not item: + raise HTTPException(status_code=404, detail="Line item not found") + + _check_estimate_access(item.estimate_id, current_user, db, require_edit=True) + + estimate_id = item.estimate_id # Store before delete + db.delete(item) + _touch_estimate(estimate_id, db) # Update estimate timestamp + db.commit() + + +@router.post("/reorder", status_code=200) +def reorder_line_items( + estimate_id: UUID, + item_ids: List[UUID], + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Reorder line items. User must have edit access to the estimate.""" + _check_estimate_access(estimate_id, current_user, db, require_edit=True) + + for index, item_id in enumerate(item_ids): + item = db.query(LineItem).filter( + LineItem.line_item_id == item_id, + LineItem.estimate_id == estimate_id + ).first() + + if item: + item.display_order = index + + _touch_estimate(estimate_id, db) # Update estimate timestamp + db.commit() + return {"message": "Line items reordered successfully"} + + +@router.post("/{line_item_id}/clone", response_model=LineItemResponse, status_code=201) +def clone_line_item( + line_item_id: UUID, + payload: Optional[CloneRequest] = Body(default=None), + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """ + Clone a line item (workload). User must have edit access to the estimate. + + Optionally provide a new_name in the request body. + """ + # Get the original line item + original = db.query(LineItem).filter( + LineItem.line_item_id == line_item_id + ).first() + + if not original: + raise HTTPException(status_code=404, detail="Line item not found") + + # Check edit access to the estimate + _check_estimate_access(original.estimate_id, current_user, db, require_edit=True) + + # Get new name from payload or generate from original + new_name = payload.new_name if payload and payload.new_name else f"{original.workload_name} (Copy)" + + # Get max display order in the estimate + max_order = db.query(LineItem).filter( + LineItem.estimate_id == original.estimate_id + ).count() + + # Create the cloned line item - only copy fields that exist in the model + cloned = LineItem( + estimate_id=original.estimate_id, + display_order=max_order, + workload_name=new_name, + workload_type=original.workload_type, + cloud=original.cloud, + # Serverless + serverless_enabled=original.serverless_enabled, + serverless_mode=original.serverless_mode, + # Classic Compute + photon_enabled=original.photon_enabled, + driver_node_type=original.driver_node_type, + worker_node_type=original.worker_node_type, + num_workers=original.num_workers, + # DLT + dlt_edition=original.dlt_edition, + # DBSQL + dbsql_warehouse_type=original.dbsql_warehouse_type, + dbsql_warehouse_size=original.dbsql_warehouse_size, + dbsql_num_clusters=original.dbsql_num_clusters, + dbsql_vm_pricing_tier=original.dbsql_vm_pricing_tier, + dbsql_vm_payment_option=original.dbsql_vm_payment_option, + # Vector Search + vector_search_mode=original.vector_search_mode, + vector_capacity_millions=original.vector_capacity_millions, + vector_search_storage_gb=original.vector_search_storage_gb, + # Model Serving + model_serving_gpu_type=original.model_serving_gpu_type, + # FMAPI + fmapi_provider=original.fmapi_provider, + fmapi_model=original.fmapi_model, + fmapi_endpoint_type=original.fmapi_endpoint_type, + fmapi_context_length=original.fmapi_context_length, + fmapi_rate_type=original.fmapi_rate_type, + fmapi_quantity=original.fmapi_quantity, + # Lakebase + lakebase_cu=original.lakebase_cu, + lakebase_storage_gb=original.lakebase_storage_gb, + lakebase_ha_nodes=original.lakebase_ha_nodes, + lakebase_backup_retention_days=original.lakebase_backup_retention_days, + # Usage + runs_per_day=original.runs_per_day, + avg_runtime_minutes=original.avg_runtime_minutes, + days_per_month=original.days_per_month, + hours_per_month=original.hours_per_month, + # Pricing + driver_pricing_tier=original.driver_pricing_tier, + worker_pricing_tier=original.worker_pricing_tier, + driver_payment_option=original.driver_payment_option, + worker_payment_option=original.worker_payment_option, + # Additional + workload_config=original.workload_config, + notes=original.notes + ) + + db.add(cloned) + _touch_estimate(original.estimate_id, db) # Update estimate timestamp + db.commit() + db.refresh(cloned) + + return cloned diff --git a/lakemeter/backend/app/routes/reference/__init__.py b/lakemeter/backend/app/routes/reference/__init__.py new file mode 100644 index 00000000..2d3fdec1 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/__init__.py @@ -0,0 +1,28 @@ +"""Reference data endpoints — direct Lakebase queries with caching.""" +from fastapi import APIRouter + +from app.routes.reference.clouds_regions import router as clouds_regions_router +from app.routes.reference.instances import router as instances_router +from app.routes.reference.dbsql import router as dbsql_router +from app.routes.reference.dlt import router as dlt_router +from app.routes.reference.vector_search import router as vector_search_router +from app.routes.reference.lakebase_ref import router as lakebase_ref_router +from app.routes.reference.photon import router as photon_router +from app.routes.reference.serverless import router as serverless_router +from app.routes.reference.pricing import router as pricing_router +from app.routes.reference.model_serving import router as model_serving_router +from app.routes.reference.fmapi import router as fmapi_router + +router = APIRouter(tags=["Reference Data"]) + +router.include_router(clouds_regions_router) +router.include_router(instances_router) +router.include_router(dbsql_router) +router.include_router(dlt_router) +router.include_router(vector_search_router) +router.include_router(lakebase_ref_router) +router.include_router(photon_router) +router.include_router(serverless_router) +router.include_router(pricing_router) +router.include_router(model_serving_router) +router.include_router(fmapi_router) diff --git a/lakemeter/backend/app/routes/reference/clouds_regions.py b/lakemeter/backend/app/routes/reference/clouds_regions.py new file mode 100644 index 00000000..7f8db7e1 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/clouds_regions.py @@ -0,0 +1,146 @@ +"""Cloud regions and tiers reference endpoints.""" +import logging +from fastapi import APIRouter, Query, Depends +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.cache import ref_cache +from app.services.validators import validate_cloud + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.get("/regions", tags=["Cloud & Regions"]) +def get_regions( + cloud: str = Query(None, description="Cloud provider: AWS, AZURE, GCP"), + db: Session = Depends(get_db), +): + if cloud: + error = validate_cloud(cloud) + if error: + return error + + cache_key = ref_cache.get("regions", cloud=cloud) + if cache_key is not None: + return cache_key + + try: + if cloud: + query = text(""" + SELECT DISTINCT region_code, sku_region as region_name + FROM lakemeter.sync_ref_sku_region_map + WHERE cloud = :cloud + ORDER BY sku_region + """) + result = db.execute(query, {"cloud": cloud.upper()}) + results = result.fetchall() + + response = { + "success": True, + "data": { + "cloud": cloud.upper(), + "count": len(results), + "regions": [ + {"region_code": r.region_code, "sku_region": r.region_name} + for r in results + ], + }, + } + else: + query = text(""" + SELECT DISTINCT cloud, region_code, sku_region as region_name + FROM lakemeter.sync_ref_sku_region_map + ORDER BY cloud, sku_region + """) + result = db.execute(query) + results = result.fetchall() + + by_cloud = {} + for r in results: + if r.cloud not in by_cloud: + by_cloud[r.cloud] = [] + by_cloud[r.cloud].append( + {"region_code": r.region_code, "sku_region": r.region_name} + ) + + response = {"success": True, "data": by_cloud} + + ref_cache.set("regions", response, cloud=cloud) + return response + except Exception as e: + logger.error(f"Error fetching regions: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/tiers", tags=["Cloud & Regions"]) +def get_tiers( + cloud: str = Query(None, description="Cloud provider: AWS, AZURE, GCP"), + db: Session = Depends(get_db), +): + if cloud: + error = validate_cloud(cloud) + if error: + return error + + cached = ref_cache.get("tiers", cloud=cloud) + if cached is not None: + return cached + + try: + if cloud: + query = text(""" + SELECT tier, display_name + FROM lakemeter.ref_cloud_tiers + WHERE cloud = :cloud + ORDER BY + CASE tier + WHEN 'STANDARD' THEN 1 + WHEN 'PREMIUM' THEN 2 + WHEN 'ENTERPRISE' THEN 3 + END + """) + result = db.execute(query, {"cloud": cloud.upper()}) + results = result.fetchall() + + response = { + "success": True, + "data": { + "cloud": cloud.upper(), + "count": len(results), + "tiers": [ + {"tier": r.tier, "display_name": r.display_name} + for r in results + ], + }, + } + else: + query = text(""" + SELECT cloud, tier, display_name + FROM lakemeter.ref_cloud_tiers + ORDER BY cloud, + CASE tier + WHEN 'STANDARD' THEN 1 + WHEN 'PREMIUM' THEN 2 + WHEN 'ENTERPRISE' THEN 3 + END + """) + result = db.execute(query) + results = result.fetchall() + + by_cloud = {} + for r in results: + if r.cloud not in by_cloud: + by_cloud[r.cloud] = [] + by_cloud[r.cloud].append( + {"tier": r.tier, "display_name": r.display_name} + ) + + response = {"success": True, "data": by_cloud} + + ref_cache.set("tiers", response, cloud=cloud) + return response + except Exception as e: + logger.error(f"Error fetching tiers: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} diff --git a/lakemeter/backend/app/routes/reference/dbsql.py b/lakemeter/backend/app/routes/reference/dbsql.py new file mode 100644 index 00000000..71f78002 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/dbsql.py @@ -0,0 +1,382 @@ +"""DBSQL warehouse reference endpoints.""" +import logging +from fastapi import APIRouter, Query, Depends +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.cache import ref_cache +from app.services.validators import ( + validate_cloud, + validate_region, + validate_warehouse_type, + validate_warehouse_size, + validate_pricing_tier, + validate_payment_option, +) + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.get("/dbsql/warehouse-types", tags=["DBSQL"]) +def get_dbsql_warehouse_types(): + warehouse_types = ["CLASSIC", "PRO", "SERVERLESS"] + return { + "success": True, + "data": {"count": len(warehouse_types), "warehouse_types": warehouse_types}, + } + + +@router.get("/dbsql/warehouse-sizes", tags=["DBSQL"]) +def get_dbsql_warehouse_sizes( + cloud: str = Query(..., description="Cloud provider: AWS, AZURE, GCP (required)"), + warehouse_type: str = Query(None, description="Filter by warehouse type: CLASSIC, PRO, SERVERLESS"), + warehouse_size: str = Query(None, description="Filter by warehouse size"), + min_vcpus: int = Query(None, ge=1), + max_vcpus: int = Query(None, ge=1), + min_memory_gb: float = Query(None, ge=0), + max_memory_gb: float = Query(None, ge=0), + min_dbu_rate: float = Query(None, ge=0), + max_dbu_rate: float = Query(None, ge=0), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + if warehouse_type: + error = validate_warehouse_type(warehouse_type) + if error: + return error + + if warehouse_size: + type_to_validate = warehouse_type if warehouse_type else "CLASSIC" + error = validate_warehouse_size(cloud, type_to_validate, warehouse_size, db) + if error: + return error + + try: + query = text(""" + WITH hardware_data AS ( + SELECT + rates.cloud, rates.warehouse_type, rates.warehouse_size, rates.dbu_per_hour, + COALESCE(config.driver_count, pro_config.driver_count) as driver_count, + COALESCE(config.worker_count, pro_config.worker_count) as worker_count, + COALESCE(config.driver_instance_type, pro_config.driver_instance_type) as driver_instance_type, + COALESCE(config.worker_instance_type, pro_config.worker_instance_type) as worker_instance_type, + CASE WHEN UPPER(rates.warehouse_type) = 'SERVERLESS' THEN TRUE ELSE FALSE END as is_estimated, + CASE UPPER(rates.warehouse_size) + WHEN '2X-SMALL' THEN 1 WHEN 'X-SMALL' THEN 2 WHEN 'SMALL' THEN 3 + WHEN 'MEDIUM' THEN 4 WHEN 'LARGE' THEN 5 WHEN 'X-LARGE' THEN 6 + WHEN '2X-LARGE' THEN 7 WHEN '3X-LARGE' THEN 8 WHEN '4X-LARGE' THEN 9 + ELSE 10 + END as size_order + FROM lakemeter.sync_product_dbsql_rates rates + LEFT JOIN lakemeter.sync_ref_dbsql_warehouse_config config + ON rates.cloud = config.cloud + AND rates.warehouse_type = config.warehouse_type + AND rates.warehouse_size = config.warehouse_size + LEFT JOIN lakemeter.sync_ref_dbsql_warehouse_config pro_config + ON rates.cloud = pro_config.cloud + AND pro_config.warehouse_type = 'pro' + AND rates.warehouse_size = pro_config.warehouse_size + WHERE UPPER(rates.cloud) = UPPER(:cloud) + ) + SELECT + hd.*, di.vcpus as driver_vcpus, di.memory_gb as driver_memory_gb, + wi.vcpus as worker_vcpus, wi.memory_gb as worker_memory_gb + FROM hardware_data hd + LEFT JOIN lakemeter.sync_ref_instance_dbu_rates di + ON hd.cloud = di.cloud AND hd.driver_instance_type = di.instance_type + LEFT JOIN lakemeter.sync_ref_instance_dbu_rates wi + ON hd.cloud = wi.cloud AND hd.worker_instance_type = wi.instance_type + ORDER BY hd.size_order, hd.warehouse_type + """) + results = db.execute(query, {"cloud": cloud.upper()}).fetchall() + + sizes = [] + for r in results: + total_worker_vcpus = (r.worker_vcpus * r.worker_count) if r.worker_vcpus and r.worker_count else None + total_worker_memory_gb = (r.worker_memory_gb * r.worker_count) if r.worker_memory_gb and r.worker_count else None + + if warehouse_type and r.warehouse_type.upper() != warehouse_type.upper(): + continue + if warehouse_size and r.warehouse_size.upper() != warehouse_size.upper(): + continue + if min_vcpus is not None and (total_worker_vcpus is None or total_worker_vcpus < min_vcpus): + continue + if max_vcpus is not None and (total_worker_vcpus is None or total_worker_vcpus > max_vcpus): + continue + if min_memory_gb is not None and (total_worker_memory_gb is None or total_worker_memory_gb < min_memory_gb): + continue + if max_memory_gb is not None and (total_worker_memory_gb is None or total_worker_memory_gb > max_memory_gb): + continue + if min_dbu_rate is not None and (r.dbu_per_hour is None or float(r.dbu_per_hour) < min_dbu_rate): + continue + if max_dbu_rate is not None and (r.dbu_per_hour is None or float(r.dbu_per_hour) > max_dbu_rate): + continue + + driver_instance_display = r.driver_instance_type + worker_instance_display = r.worker_instance_type + if r.is_estimated: + if driver_instance_display: + driver_instance_display = f"{driver_instance_display} (estimated)" + if worker_instance_display: + worker_instance_display = f"{worker_instance_display} (estimated)" + + sizes.append({ + "warehouse_size": r.warehouse_size, + "warehouse_type": r.warehouse_type, + "dbu_per_hour": float(r.dbu_per_hour) if r.dbu_per_hour else None, + "hardware": { + "driver_count": r.driver_count, + "worker_count": r.worker_count, + "driver_instance_type": driver_instance_display, + "worker_instance_type": worker_instance_display, + "driver_vcpus": r.driver_vcpus, + "driver_memory_gb": float(r.driver_memory_gb) if r.driver_memory_gb else None, + "worker_vcpus_each": r.worker_vcpus, + "worker_memory_gb_each": float(r.worker_memory_gb) if r.worker_memory_gb else None, + "total_worker_vcpus": total_worker_vcpus, + "total_worker_memory_gb": float(total_worker_memory_gb) if total_worker_memory_gb else None, + }, + "is_estimated": r.is_estimated, + }) + + filters = {} + if warehouse_type: + filters["warehouse_type"] = warehouse_type.upper() + if warehouse_size: + filters["warehouse_size"] = warehouse_size + if min_vcpus is not None: + filters["min_vcpus"] = min_vcpus + if max_vcpus is not None: + filters["max_vcpus"] = max_vcpus + if min_memory_gb is not None: + filters["min_memory_gb"] = min_memory_gb + if max_memory_gb is not None: + filters["max_memory_gb"] = max_memory_gb + if min_dbu_rate is not None: + filters["min_dbu_rate"] = min_dbu_rate + if max_dbu_rate is not None: + filters["max_dbu_rate"] = max_dbu_rate + + return { + "success": True, + "data": { + "cloud": cloud.upper(), + "filters": filters if filters else None, + "count": len(sizes), + "sizes": sizes, + }, + } + except Exception as e: + logger.error(f"Error fetching DBSQL warehouse sizes: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/dbsql/warehouse-vm-costs", tags=["DBSQL"]) +def get_dbsql_warehouse_vm_costs( + cloud: str = Query(..., description="Cloud provider: AWS, AZURE, GCP (required)"), + region: str = Query(..., description="Region code (required)"), + warehouse_type: str = Query(..., description="Warehouse type: CLASSIC, PRO (required)"), + warehouse_size: str = Query(..., description="Warehouse size (required)"), + pricing_tier: str = Query(None, description="Filter by pricing tier"), + payment_option: str = Query(None, description="Filter by payment option"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + # Only CLASSIC and PRO have VM costs + valid_types = ["CLASSIC", "PRO"] + if warehouse_type.upper() not in valid_types: + return { + "success": False, + "error": { + "code": "INVALID_WAREHOUSE_TYPE", + "message": f"Invalid warehouse type '{warehouse_type}'. This endpoint only supports CLASSIC and PRO. SERVERLESS warehouses have no VM costs.", + "field": "warehouse_type", + "allowed_values": valid_types, + }, + } + + error = validate_region(cloud, region, db) + if error: + return error + + if pricing_tier: + error = validate_pricing_tier(pricing_tier) + if error: + return error + if payment_option: + error = validate_payment_option(payment_option) + if error: + return error + + try: + config_query = text(""" + SELECT driver_instance_type, worker_instance_type, worker_count + FROM lakemeter.sync_ref_dbsql_warehouse_config + WHERE cloud = :cloud + AND UPPER(warehouse_type) = UPPER(:warehouse_type) + AND UPPER(warehouse_size) = UPPER(:warehouse_size) + """) + config = db.execute(config_query, { + "cloud": cloud.upper(), "warehouse_type": warehouse_type, "warehouse_size": warehouse_size + }).fetchone() + + if not config: + error = validate_warehouse_size(cloud, warehouse_type, warehouse_size, db) + if error: + return error + + driver_instance = config.driver_instance_type + worker_instance = config.worker_instance_type + worker_count = config.worker_count + + where_conditions = ["cloud = :cloud", "region = :region", "instance_type = :instance_type"] + if pricing_tier: + where_conditions.append("pricing_tier = :pricing_tier") + if payment_option: + where_conditions.append("payment_option = :payment_option") + where_clause = " AND ".join(where_conditions) + + vm_query = text(f""" + SELECT pricing_tier, payment_option, cost_per_hour + FROM lakemeter.sync_pricing_vm_costs + WHERE {where_clause} + ORDER BY + CASE pricing_tier + WHEN 'on_demand' THEN 1 WHEN 'spot' THEN 2 + WHEN 'reserved_1y' THEN 3 WHEN 'reserved_3y' THEN 4 + END, payment_option + """) + + driver_params = {"cloud": cloud.upper(), "region": region, "instance_type": driver_instance} + if pricing_tier: + driver_params["pricing_tier"] = pricing_tier + if payment_option: + driver_params["payment_option"] = payment_option + driver_costs = db.execute(vm_query, driver_params).fetchall() + + worker_params = {"cloud": cloud.upper(), "region": region, "instance_type": worker_instance} + if pricing_tier: + worker_params["pricing_tier"] = pricing_tier + if payment_option: + worker_params["payment_option"] = payment_option + worker_costs = db.execute(vm_query, worker_params).fetchall() + + response_data = { + "cloud": cloud.upper(), + "region": region, + "warehouse_type": warehouse_type.upper(), + "warehouse_size": warehouse_size, + } + if pricing_tier: + response_data["filter_pricing_tier"] = pricing_tier + if payment_option: + response_data["filter_payment_option"] = payment_option + + response_data["driver"] = { + "instance_type": driver_instance, + "vm_costs": [ + {"pricing_tier": d.pricing_tier, "payment_option": d.payment_option, "cost_per_hour": float(d.cost_per_hour) if d.cost_per_hour else None} + for d in driver_costs + ], + } + response_data["workers"] = { + "instance_type": worker_instance, + "worker_count": worker_count, + "individual_worker_vm_costs": [ + {"pricing_tier": w.pricing_tier, "payment_option": w.payment_option, "cost_per_hour": float(w.cost_per_hour) if w.cost_per_hour else None} + for w in worker_costs + ], + "total_worker_vm_costs": [ + {"pricing_tier": w.pricing_tier, "payment_option": w.payment_option, "cost_per_hour": float(w.cost_per_hour) * worker_count if w.cost_per_hour else None} + for w in worker_costs + ], + } + + return {"success": True, "data": response_data} + except Exception as e: + logger.error(f"Error fetching DBSQL warehouse VM costs: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/dbsql/warehouse-hardware", tags=["DBSQL"]) +def get_dbsql_warehouse_hardware( + cloud: str = Query(..., description="Cloud provider: AWS, AZURE, GCP (required)"), + warehouse_type: str = Query(..., description="Warehouse type: CLASSIC, PRO (required)"), + warehouse_size: str = Query(..., description="Warehouse size (required)"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + valid_types = ["CLASSIC", "PRO"] + if warehouse_type.upper() not in valid_types: + return { + "success": False, + "error": { + "code": "INVALID_WAREHOUSE_TYPE", + "message": f"Invalid warehouse type '{warehouse_type}'. This endpoint only supports CLASSIC and PRO. SERVERLESS warehouses have no hardware specs.", + "field": "warehouse_type", + "allowed_values": valid_types, + }, + } + + try: + query = text(""" + SELECT + wc.cloud, wc.warehouse_type, wc.warehouse_size, + wc.driver_count, wc.driver_instance_type, + di.vcpus as driver_vcpus, di.memory_gb as driver_memory_gb, + wc.worker_count, wc.worker_instance_type, + wi.vcpus as worker_vcpus, wi.memory_gb as worker_memory_gb + FROM lakemeter.sync_ref_dbsql_warehouse_config wc + LEFT JOIN lakemeter.sync_ref_instance_dbu_rates di + ON wc.cloud = di.cloud AND wc.driver_instance_type = di.instance_type + LEFT JOIN lakemeter.sync_ref_instance_dbu_rates wi + ON wc.cloud = wi.cloud AND wc.worker_instance_type = wi.instance_type + WHERE wc.cloud = :cloud + AND UPPER(wc.warehouse_type) = UPPER(:warehouse_type) + AND UPPER(wc.warehouse_size) = UPPER(:warehouse_size) + """) + config = db.execute(query, { + "cloud": cloud.upper(), "warehouse_type": warehouse_type, "warehouse_size": warehouse_size + }).fetchone() + + if not config: + error = validate_warehouse_size(cloud, warehouse_type, warehouse_size, db) + if error: + return error + + return { + "success": True, + "data": { + "cloud": config.cloud, + "warehouse_type": config.warehouse_type, + "warehouse_size": config.warehouse_size, + "driver": { + "count": config.driver_count, + "instance_type": config.driver_instance_type, + "vcpus": config.driver_vcpus, + "memory_gb": float(config.driver_memory_gb) if config.driver_memory_gb else None, + }, + "workers": { + "count": config.worker_count, + "instance_type": config.worker_instance_type, + "vcpus_per_worker": config.worker_vcpus, + "memory_gb_per_worker": float(config.worker_memory_gb) if config.worker_memory_gb else None, + "total_vcpus": config.worker_vcpus * config.worker_count if config.worker_vcpus else None, + "total_memory_gb": float(config.worker_memory_gb) * config.worker_count if config.worker_memory_gb else None, + }, + }, + } + except Exception as e: + logger.error(f"Error fetching DBSQL warehouse config: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} diff --git a/lakemeter/backend/app/routes/reference/dlt.py b/lakemeter/backend/app/routes/reference/dlt.py new file mode 100644 index 00000000..863667af --- /dev/null +++ b/lakemeter/backend/app/routes/reference/dlt.py @@ -0,0 +1,13 @@ +"""DLT reference endpoints.""" +from fastapi import APIRouter + +router = APIRouter() + + +@router.get("/dlt/editions", tags=["DLT"]) +def get_dlt_editions(): + editions = ["CORE", "PRO", "ADVANCED"] + return { + "success": True, + "data": {"count": len(editions), "editions": editions}, + } diff --git a/lakemeter/backend/app/routes/reference/fmapi.py b/lakemeter/backend/app/routes/reference/fmapi.py new file mode 100644 index 00000000..5630e749 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/fmapi.py @@ -0,0 +1,432 @@ +"""FMAPI (Foundation Model API) reference endpoints — Databricks and Proprietary models.""" +import logging +from fastapi import APIRouter, Query, Depends +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.cache import ref_cache +from app.services.validators import ( + validate_cloud, + validate_fmapi_databricks_model, + validate_fmapi_databricks_rate_type, + validate_fmapi_proprietary_provider, + validate_fmapi_proprietary_model, + validate_fmapi_proprietary_endpoint_type, + validate_fmapi_proprietary_context_length, + validate_fmapi_proprietary_rate_type, +) + +logger = logging.getLogger(__name__) +router = APIRouter() + + +# ── Databricks FMAPI ──────────────────────────────────────────────────────── + + +@router.get("/fmapi/databricks-models/list", tags=["FMAPI - Databricks"]) +def list_fmapi_databricks_models(db: Session = Depends(get_db)): + cached = ref_cache.get("fmapi_db_models_list") + if cached is not None: + return cached + + try: + query = text("SELECT DISTINCT model FROM lakemeter.sync_product_fmapi_databricks ORDER BY model") + models = [r.model for r in db.execute(query).fetchall()] + + response = {"success": True, "data": {"count": len(models), "models": models}} + ref_cache.set("fmapi_db_models_list", response) + return response + except Exception as e: + logger.error(f"Error fetching Databricks FMAPI model list: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/fmapi/databricks-models", tags=["FMAPI - Databricks"]) +def get_fmapi_databricks_models( + model: str = Query(..., description="Model name (required)"), + cloud: str = Query(None, description="Filter by cloud: AWS, AZURE, GCP"), + rate_type: str = Query(None, description="Filter by rate type"), + db: Session = Depends(get_db), +): + error = validate_fmapi_databricks_model(model, db) + if error: + return error + + if cloud: + error = validate_cloud(cloud) + if error: + return error + + if rate_type: + error = validate_fmapi_databricks_rate_type(model, rate_type, db) + if error: + return error + + try: + where_conditions = ["model = :model"] + params = {"model": model} + + if cloud: + where_conditions.append("cloud = :cloud") + params["cloud"] = cloud.upper() + if rate_type: + where_conditions.append("rate_type = :rate_type") + params["rate_type"] = rate_type + + where_clause = "WHERE " + " AND ".join(where_conditions) + + query = text(f""" + SELECT cloud, model, rate_type, dbu_rate, input_divisor, is_hourly + FROM lakemeter.sync_product_fmapi_databricks + {where_clause} + ORDER BY cloud, model, rate_type + """) + results = db.execute(query, params).fetchall() + + models_dict = {} + for r in results: + key = f"{r.cloud}:{r.model}" + if key not in models_dict: + models_dict[key] = {"cloud": r.cloud, "model": r.model, "pricing": []} + + pricing_entry = {"rate_type": r.rate_type} + if r.is_hourly: + pricing_entry["dbu_per_hour"] = float(r.dbu_rate) if r.dbu_rate else None + elif r.input_divisor == 1000000: + pricing_entry["dbu_per_1M_tokens"] = float(r.dbu_rate) if r.dbu_rate else None + else: + pricing_entry["dbu_rate"] = float(r.dbu_rate) if r.dbu_rate else None + pricing_entry["input_divisor"] = float(r.input_divisor) if r.input_divisor else None + + models_dict[key]["pricing"].append(pricing_entry) + + return { + "success": True, + "data": { + "model_filter": model, + "cloud_filter": cloud.upper() if cloud else None, + "rate_type_filter": rate_type if rate_type else None, + "count": len(models_dict), + "models": list(models_dict.values()), + }, + } + except Exception as e: + logger.error(f"Error fetching FMAPI Databricks models: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +# ── Proprietary FMAPI ─────────────────────────────────────────────────────── + + +@router.get("/fmapi/proprietary-models/list", tags=["FMAPI - Proprietary"]) +def list_fmapi_proprietary_models( + provider: str = Query(..., description="Provider (required): openai, anthropic, google"), + db: Session = Depends(get_db), +): + error = validate_fmapi_proprietary_provider(provider, db) + if error: + return error + + cached = ref_cache.get("fmapi_prop_models_list", provider=provider) + if cached is not None: + return cached + + try: + query = text(""" + SELECT DISTINCT model + FROM lakemeter.sync_product_fmapi_proprietary + WHERE provider = :provider + ORDER BY model + """) + models = [r.model for r in db.execute(query, {"provider": provider.lower()}).fetchall()] + + response = { + "success": True, + "data": {"provider": provider, "count": len(models), "models": models}, + } + ref_cache.set("fmapi_prop_models_list", response, provider=provider) + return response + except Exception as e: + logger.error(f"Error fetching proprietary FMAPI model list: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/fmapi/proprietary-models/options", tags=["FMAPI - Proprietary"]) +def get_fmapi_proprietary_model_options( + provider: str = Query(..., description="Provider (required): openai, anthropic, google"), + model: str = Query(..., description="Model name (required)"), + db: Session = Depends(get_db), +): + error = validate_fmapi_proprietary_provider(provider, db) + if error: + return error + error = validate_fmapi_proprietary_model(model, provider, db) + if error: + return error + + try: + query = text(""" + SELECT DISTINCT context_length, rate_type, endpoint_type + FROM lakemeter.sync_product_fmapi_proprietary + WHERE provider = :provider AND model = :model + ORDER BY endpoint_type, context_length, rate_type + """) + results = db.execute(query, {"provider": provider.lower(), "model": model}).fetchall() + + context_lengths = sorted(list(set([r.context_length for r in results]))) + rate_types = sorted(list(set([r.rate_type for r in results]))) + endpoint_types = sorted(list(set([r.endpoint_type for r in results]))) + + return { + "success": True, + "data": { + "provider": provider, + "model": model, + "available_context_lengths": context_lengths, + "available_rate_types": rate_types, + "available_endpoint_types": endpoint_types, + }, + } + except Exception as e: + logger.error(f"Error fetching proprietary FMAPI model options: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/fmapi/proprietary-models", tags=["FMAPI - Proprietary"]) +def get_fmapi_proprietary_models( + provider: str = Query(..., description="Provider (required): openai, anthropic, google"), + cloud: str = Query(None, description="Filter by cloud: AWS, AZURE, GCP"), + model: str = Query(None, description="Filter by model name"), + endpoint_type: str = Query(None, description="Filter by endpoint type"), + context_length: str = Query(None, description="Filter by context length"), + rate_type: str = Query(None, description="Filter by rate type"), + db: Session = Depends(get_db), +): + error = validate_fmapi_proprietary_provider(provider, db) + if error: + return error + + if cloud: + error = validate_cloud(cloud) + if error: + return error + + if model: + error = validate_fmapi_proprietary_model(model, provider, db) + if error: + return error + + if endpoint_type: + if not model: + return { + "success": False, + "error": { + "code": "MISSING_PARAMETER", + "message": "endpoint_type filter requires model parameter to be specified", + "field": "endpoint_type", + }, + } + error = validate_fmapi_proprietary_endpoint_type(provider, model, endpoint_type, db) + if error: + return error + + if context_length: + if not model: + return { + "success": False, + "error": { + "code": "MISSING_PARAMETER", + "message": "context_length filter requires model parameter to be specified", + "field": "context_length", + }, + } + error = validate_fmapi_proprietary_context_length(provider, model, context_length, endpoint_type, db) + if error: + return error + + if rate_type: + if not model: + return { + "success": False, + "error": { + "code": "MISSING_PARAMETER", + "message": "rate_type filter requires model parameter to be specified", + "field": "rate_type", + }, + } + error = validate_fmapi_proprietary_rate_type(provider, model, rate_type, endpoint_type, context_length, db) + if error: + return error + + try: + where_conditions = ["provider = :provider"] + params = {"provider": provider.lower()} + + if cloud: + where_conditions.append("cloud = :cloud") + params["cloud"] = cloud.upper() + if model: + where_conditions.append("model = :model") + params["model"] = model + if endpoint_type: + where_conditions.append("endpoint_type = :endpoint_type") + params["endpoint_type"] = endpoint_type + if context_length: + where_conditions.append("context_length = :context_length") + params["context_length"] = context_length + if rate_type: + where_conditions.append("rate_type = :rate_type") + params["rate_type"] = rate_type + + where_clause = "WHERE " + " AND ".join(where_conditions) + + query = text(f""" + SELECT cloud, provider, model, endpoint_type, context_length, + rate_type, dbu_rate, input_divisor, is_hourly + FROM lakemeter.sync_product_fmapi_proprietary + {where_clause} + ORDER BY cloud, provider, model, endpoint_type, context_length, rate_type + """) + results = db.execute(query, params).fetchall() + + models_dict = {} + for r in results: + key = f"{r.cloud}:{r.provider}:{r.model}" + if key not in models_dict: + models_dict[key] = {"cloud": r.cloud, "provider": r.provider, "model": r.model, "pricing": []} + + pricing_entry = { + "endpoint_type": r.endpoint_type, + "context_length": r.context_length, + "rate_type": r.rate_type, + } + if r.is_hourly: + pricing_entry["dbu_per_hour"] = float(r.dbu_rate) if r.dbu_rate else None + elif r.input_divisor == 1000000: + pricing_entry["dbu_per_1M_tokens"] = float(r.dbu_rate) if r.dbu_rate else None + else: + pricing_entry["dbu_rate"] = float(r.dbu_rate) if r.dbu_rate else None + pricing_entry["input_divisor"] = float(r.input_divisor) if r.input_divisor else None + + models_dict[key]["pricing"].append(pricing_entry) + + return { + "success": True, + "data": { + "cloud_filter": cloud.upper() if cloud else None, + "provider_filter": provider, + "model_filter": model if model else None, + "endpoint_type_filter": endpoint_type if endpoint_type else None, + "context_length_filter": context_length if context_length else None, + "rate_type_filter": rate_type if rate_type else None, + "count": len(models_dict), + "models": list(models_dict.values()), + }, + } + except Exception as e: + logger.error(f"Error fetching FMAPI proprietary models: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +# ── Config endpoints (for WorkloadForm dropdowns) ───────────────────────── + + +@router.get("/fmapi-databricks", tags=["FMAPI - Databricks"]) +def get_fmapi_databricks_config(db: Session = Depends(get_db)): + """Return FMAPI Databricks config for WorkloadForm: model types, inference types, models.""" + cached = ref_cache.get("fmapi_databricks_config") + if cached is not None: + return cached + + try: + query = text(""" + SELECT DISTINCT model, rate_type + FROM lakemeter.sync_product_fmapi_databricks + ORDER BY model, rate_type + """) + results = db.execute(query).fetchall() + + # Group models and collect rate types + models = sorted(set(r.model for r in results)) + rate_types = sorted(set(r.rate_type for r in results)) + + # Infer model types from model names + model_type_map = {} + for m in models: + if any(k in m.lower() for k in ["embed", "bge", "gte"]): + model_type_map.setdefault("embedding", []).append(m) + elif any(k in m.lower() for k in ["rerank"]): + model_type_map.setdefault("reranking", []).append(m) + else: + model_type_map.setdefault("chat", []).append(m) + + response = { + "model_types": [ + {"id": mt, "name": mt.title(), "models": [{"id": m, "name": m} for m in ms]} + for mt, ms in model_type_map.items() + ], + "inference_types": [{"id": rt, "name": rt.replace("_", " ").title()} for rt in rate_types], + } + ref_cache.set("fmapi_databricks_config", response) + return response + except Exception as e: + logger.error(f"Error fetching FMAPI Databricks config: {e}") + return {"model_types": [], "inference_types": []} + + +@router.get("/fmapi-proprietary", tags=["FMAPI - Proprietary"]) +def get_fmapi_proprietary_config(db: Session = Depends(get_db)): + """Return FMAPI Proprietary config for WorkloadForm: providers with models, endpoint types, context lengths.""" + cached = ref_cache.get("fmapi_proprietary_config") + if cached is not None: + return cached + + try: + query = text(""" + SELECT DISTINCT provider, model, endpoint_type, context_length + FROM lakemeter.sync_product_fmapi_proprietary + ORDER BY provider, model + """) + results = db.execute(query).fetchall() + + # Build provider → models map + provider_models: dict = {} + endpoint_types_set: set = set() + context_lengths_set: set = set() + + for r in results: + p = r.provider.lower() + if p not in provider_models: + provider_models[p] = set() + provider_models[p].add(r.model) + if r.endpoint_type: + endpoint_types_set.add(r.endpoint_type) + if r.context_length: + context_lengths_set.add(r.context_length) + + provider_names = {"openai": "OpenAI", "anthropic": "Anthropic", "google": "Google"} + + response = { + "providers": [ + { + "id": p, + "name": provider_names.get(p, p.title()), + "models": [{"id": m, "name": m} for m in sorted(models)], + } + for p, models in sorted(provider_models.items()) + ], + "endpoint_types": [ + {"id": et, "name": et.replace("_", " ").title()} + for et in sorted(endpoint_types_set) + ], + "context_lengths": [ + {"id": cl, "name": cl.replace("_", " ").title()} + for cl in sorted(context_lengths_set) + ], + } + ref_cache.set("fmapi_proprietary_config", response) + return response + except Exception as e: + logger.error(f"Error fetching FMAPI Proprietary config: {e}") + return {"providers": [], "endpoint_types": [], "context_lengths": []} diff --git a/lakemeter/backend/app/routes/reference/instances.py b/lakemeter/backend/app/routes/reference/instances.py new file mode 100644 index 00000000..0a248c10 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/instances.py @@ -0,0 +1,373 @@ +"""Instance types and VM pricing reference endpoints.""" +import logging +from fastapi import APIRouter, Query, Depends +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.cache import ref_cache +from app.services.validators import ( + validate_cloud, + validate_region, + validate_instance_type, + validate_instance_family, + validate_pricing_tier, + validate_payment_option, +) + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.get("/instances/families", tags=["Compute - Instance Types"]) +def get_instance_families(db: Session = Depends(get_db)): + cached = ref_cache.get("instance_families") + if cached is not None: + return cached + + try: + query = text(""" + SELECT DISTINCT instance_family + FROM lakemeter.sync_ref_instance_dbu_rates + ORDER BY instance_family + """) + result = db.execute(query) + results = result.fetchall() + + response = { + "success": True, + "data": { + "count": len(results), + "instance_families": [r.instance_family for r in results], + }, + } + ref_cache.set("instance_families", response) + return response + except Exception as e: + logger.error(f"Error fetching instance families: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/instances/types", tags=["Compute - Instance Types"]) +def get_instance_types( + cloud: str = Query(..., description="Cloud provider: AWS, AZURE, GCP (required)"), + region: str = Query(..., description="Region code (required, filters by region availability)"), + instance_family: str = Query(None, description="Filter by instance family"), + min_vcpus: int = Query(None, ge=1), + max_vcpus: int = Query(None, ge=1), + min_memory_gb: float = Query(None, ge=0), + max_memory_gb: float = Query(None, ge=0), + min_dbu_rate: float = Query(None, ge=0), + max_dbu_rate: float = Query(None, ge=0), + limit: int = Query(1000, ge=1, le=1000), + offset: int = Query(0, ge=0), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + try: + error = validate_region(cloud, region, db) + if error: + return error + + if instance_family: + error = validate_instance_family(instance_family, db) + if error: + return error + + where_conditions = ["r.cloud = :cloud", "v.region = :region"] + params = {"cloud": cloud.upper(), "region": region, "limit": limit, "offset": offset} + + join_clause = "INNER JOIN lakemeter.sync_pricing_vm_costs v ON r.cloud = v.cloud AND r.instance_type = v.instance_type" + + if instance_family: + where_conditions.append("r.instance_family = :instance_family") + params["instance_family"] = instance_family + if min_vcpus is not None: + where_conditions.append("r.vcpus >= :min_vcpus") + params["min_vcpus"] = min_vcpus + if max_vcpus is not None: + where_conditions.append("r.vcpus <= :max_vcpus") + params["max_vcpus"] = max_vcpus + if min_memory_gb is not None: + where_conditions.append("r.memory_gb >= :min_memory_gb") + params["min_memory_gb"] = min_memory_gb + if max_memory_gb is not None: + where_conditions.append("r.memory_gb <= :max_memory_gb") + params["max_memory_gb"] = max_memory_gb + if min_dbu_rate is not None: + where_conditions.append("r.dbu_rate >= :min_dbu_rate") + params["min_dbu_rate"] = min_dbu_rate + if max_dbu_rate is not None: + where_conditions.append("r.dbu_rate <= :max_dbu_rate") + params["max_dbu_rate"] = max_dbu_rate + + where_clause = " AND ".join(where_conditions) + count_query = text(f""" + SELECT COUNT(DISTINCT r.instance_type) as total + FROM lakemeter.sync_ref_instance_dbu_rates r + {join_clause} + WHERE {where_clause} + """) + total_count = db.execute(count_query, params).scalar() + + query = text(f""" + SELECT DISTINCT + r.instance_type, r.vcpus, r.memory_gb, r.instance_family, r.dbu_rate + FROM lakemeter.sync_ref_instance_dbu_rates r + {join_clause} + WHERE {where_clause} + ORDER BY r.instance_type + LIMIT :limit OFFSET :offset + """) + results = db.execute(query, params).fetchall() + + filters_applied = {} + if instance_family: + filters_applied["instance_family"] = instance_family + if min_vcpus is not None: + filters_applied["min_vcpus"] = min_vcpus + if max_vcpus is not None: + filters_applied["max_vcpus"] = max_vcpus + if min_memory_gb is not None: + filters_applied["min_memory_gb"] = min_memory_gb + if max_memory_gb is not None: + filters_applied["max_memory_gb"] = max_memory_gb + if min_dbu_rate is not None: + filters_applied["min_dbu_rate"] = min_dbu_rate + if max_dbu_rate is not None: + filters_applied["max_dbu_rate"] = max_dbu_rate + + return { + "success": True, + "data": { + "cloud": cloud.upper(), + "region": region, + "filters": filters_applied if filters_applied else None, + "total": total_count, + "count": len(results), + "limit": limit, + "offset": offset, + "has_more": (offset + len(results)) < total_count, + "instance_types": [ + { + "instance_type": r.instance_type, + "vcpus": r.vcpus, + "memory_gb": float(r.memory_gb), + "instance_family": r.instance_family, + "dbu_rate": float(r.dbu_rate), + } + for r in results + ], + }, + } + except Exception as e: + logger.error(f"Error fetching instance types: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/instances/vm-costs", tags=["Compute - Instance Types"]) +def get_instance_vm_costs( + cloud: str = Query(..., description="Cloud provider: AWS, AZURE, GCP (required)"), + region: str = Query(..., description="Region code (required)"), + instance_type: str = Query(..., description="Instance type (required)"), + pricing_tier: str = Query(None, description="Filter by pricing tier"), + payment_option: str = Query(None, description="Filter by payment option"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + if pricing_tier: + error = validate_pricing_tier(pricing_tier) + if error: + return error + + if payment_option: + error = validate_payment_option(payment_option) + if error: + return error + + # Check cache first (keyed by all params to avoid stale filtered results) + cache_key = f"vm_costs:{cloud}:{region}:{instance_type}:{pricing_tier}:{payment_option}" + cached = ref_cache.get(cache_key) + if cached is not None: + return cached + + try: + error = validate_region(cloud, region, db) + if error: + return error + + error = validate_instance_type(cloud, instance_type, db) + if error: + return error + + # Get instance specs + specs_query = text(""" + SELECT vcpus, memory_gb, dbu_rate, instance_family + FROM lakemeter.sync_ref_instance_dbu_rates + WHERE cloud = :cloud AND instance_type = :instance_type + """) + specs_row = db.execute(specs_query, {"cloud": cloud.upper(), "instance_type": instance_type}).fetchone() + instance_specs = { + "vcpus": specs_row.vcpus, + "memory_gb": float(specs_row.memory_gb), + "dbu_rate": float(specs_row.dbu_rate), + "instance_family": specs_row.instance_family, + } if specs_row else None + + where_conditions = ["cloud = :cloud", "region = :region", "instance_type = :instance_type"] + params = {"cloud": cloud.upper(), "region": region, "instance_type": instance_type} + + if pricing_tier: + where_conditions.append("pricing_tier = :pricing_tier") + params["pricing_tier"] = pricing_tier + if payment_option: + where_conditions.append("payment_option = :payment_option") + params["payment_option"] = payment_option + + where_clause = " AND ".join(where_conditions) + + query = text(f""" + SELECT pricing_tier, payment_option, cost_per_hour + FROM lakemeter.sync_pricing_vm_costs + WHERE {where_clause} + ORDER BY + CASE + WHEN pricing_tier = 'on_demand' THEN 1 + WHEN pricing_tier = 'spot' THEN 2 + WHEN pricing_tier = 'reserved_1y' THEN 3 + WHEN pricing_tier = 'reserved_3y' THEN 4 + ELSE 5 + END, + CASE payment_option + WHEN 'NA' THEN 1 + WHEN 'no_upfront' THEN 2 + WHEN 'partial_upfront' THEN 3 + WHEN 'all_upfront' THEN 4 + ELSE 5 + END + """) + results = db.execute(query, params).fetchall() + + if not results: + return { + "success": False, + "error": { + "code": "NO_PRICING_DATA", + "message": f"No VM pricing data found for {instance_type} in {cloud.upper()} {region} with the specified filters.", + "field": "instance_type", + }, + } + + response_data = { + "cloud": cloud.upper(), + "region": region, + "instance_type": instance_type, + "instance_specs": instance_specs, + } + if pricing_tier: + response_data["filter_pricing_tier"] = pricing_tier + if payment_option: + response_data["filter_payment_option"] = payment_option + + response_data["pricing_options"] = [ + { + "pricing_tier": r.pricing_tier, + "payment_option": r.payment_option, + "cost_per_hour": float(r.cost_per_hour), + } + for r in results + ] + + response = {"success": True, "data": response_data} + ref_cache.set(cache_key, response) + return response + except Exception as e: + logger.error(f"Error fetching instance VM costs: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/instances/vm-pricing-options", tags=["Compute - Instance Types"]) +def get_vm_pricing_options( + cloud: str = Query(None, description="Filter by cloud provider"), + db: Session = Depends(get_db), +): + if cloud: + error = validate_cloud(cloud) + if error: + return error + + cached = ref_cache.get("vm_pricing_options", cloud=cloud) + if cached is not None: + return cached + + try: + if cloud: + query = text(""" + SELECT DISTINCT + pricing_tier, payment_option, + CASE pricing_tier + WHEN 'on_demand' THEN 1 WHEN 'spot' THEN 2 + WHEN 'reserved_1y' THEN 3 WHEN 'reserved_3y' THEN 4 ELSE 5 + END as tier_order, + CASE payment_option + WHEN 'NA' THEN 1 WHEN 'no_upfront' THEN 2 + WHEN 'partial_upfront' THEN 3 WHEN 'all_upfront' THEN 4 ELSE 5 + END as option_order + FROM lakemeter.sync_pricing_vm_costs + WHERE cloud = :cloud + ORDER BY tier_order, option_order + """) + results = db.execute(query, {"cloud": cloud.upper()}).fetchall() + + response = { + "success": True, + "data": { + "cloud": cloud.upper(), + "count": len(results), + "pricing_options": [ + {"pricing_tier": r.pricing_tier, "payment_option": r.payment_option} + for r in results + ], + }, + } + else: + query = text(""" + SELECT DISTINCT + cloud, pricing_tier, payment_option, + CASE pricing_tier + WHEN 'on_demand' THEN 1 WHEN 'spot' THEN 2 + WHEN 'reserved_1y' THEN 3 WHEN 'reserved_3y' THEN 4 ELSE 5 + END as tier_order, + CASE payment_option + WHEN 'NA' THEN 1 WHEN 'no_upfront' THEN 2 + WHEN 'partial_upfront' THEN 3 WHEN 'all_upfront' THEN 4 ELSE 5 + END as option_order + FROM lakemeter.sync_pricing_vm_costs + ORDER BY cloud, tier_order, option_order + """) + results = db.execute(query).fetchall() + + by_cloud = {} + for r in results: + if r.cloud not in by_cloud: + by_cloud[r.cloud] = [] + by_cloud[r.cloud].append( + {"pricing_tier": r.pricing_tier, "payment_option": r.payment_option} + ) + + response = { + "success": True, + "data": {"total_combinations": len(results), "by_cloud": by_cloud}, + } + + ref_cache.set("vm_pricing_options", response, cloud=cloud) + return response + except Exception as e: + logger.error(f"Error fetching VM pricing options: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} diff --git a/lakemeter/backend/app/routes/reference/lakebase_ref.py b/lakemeter/backend/app/routes/reference/lakebase_ref.py new file mode 100644 index 00000000..48f31521 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/lakebase_ref.py @@ -0,0 +1,137 @@ +"""Lakebase reference endpoints.""" +from fastapi import APIRouter, Query + +router = APIRouter() + +AUTOSCALE_SIZES = [ + {"cu": 0.5, "ram_gb": 1, "max_connections": 104, "type": "autoscale"}, + {"cu": 1, "ram_gb": 2, "max_connections": 209, "type": "autoscale"}, + {"cu": 2, "ram_gb": 4, "max_connections": 419, "type": "autoscale"}, + {"cu": 3, "ram_gb": 6, "max_connections": 629, "type": "autoscale"}, + {"cu": 4, "ram_gb": 8, "max_connections": 839, "type": "autoscale"}, + {"cu": 5, "ram_gb": 10, "max_connections": 1049, "type": "autoscale"}, + {"cu": 6, "ram_gb": 12, "max_connections": 1258, "type": "autoscale"}, + {"cu": 7, "ram_gb": 14, "max_connections": 1468, "type": "autoscale"}, + {"cu": 8, "ram_gb": 16, "max_connections": 1678, "type": "autoscale"}, + {"cu": 9, "ram_gb": 18, "max_connections": 1888, "type": "autoscale"}, + {"cu": 10, "ram_gb": 20, "max_connections": 2098, "type": "autoscale"}, + {"cu": 12, "ram_gb": 24, "max_connections": 2517, "type": "autoscale"}, + {"cu": 14, "ram_gb": 28, "max_connections": 2937, "type": "autoscale"}, + {"cu": 16, "ram_gb": 32, "max_connections": 3357, "type": "autoscale"}, + {"cu": 24, "ram_gb": 48, "max_connections": 4000, "type": "autoscale"}, + {"cu": 28, "ram_gb": 56, "max_connections": 4000, "type": "autoscale"}, + {"cu": 32, "ram_gb": 64, "max_connections": 4000, "type": "autoscale"}, +] + +FIXED_SIZES = [ + {"cu": 36, "ram_gb": 72, "max_connections": 4000, "type": "fixed"}, + {"cu": 40, "ram_gb": 80, "max_connections": 4000, "type": "fixed"}, + {"cu": 44, "ram_gb": 88, "max_connections": 4000, "type": "fixed"}, + {"cu": 48, "ram_gb": 96, "max_connections": 4000, "type": "fixed"}, + {"cu": 52, "ram_gb": 104, "max_connections": 4000, "type": "fixed"}, + {"cu": 56, "ram_gb": 112, "max_connections": 4000, "type": "fixed"}, + {"cu": 60, "ram_gb": 120, "max_connections": 4000, "type": "fixed"}, + {"cu": 64, "ram_gb": 128, "max_connections": 4000, "type": "fixed"}, + {"cu": 72, "ram_gb": 144, "max_connections": 4000, "type": "fixed"}, + {"cu": 80, "ram_gb": 160, "max_connections": 4000, "type": "fixed"}, + {"cu": 88, "ram_gb": 176, "max_connections": 4000, "type": "fixed"}, + {"cu": 96, "ram_gb": 192, "max_connections": 4000, "type": "fixed"}, + {"cu": 104, "ram_gb": 208, "max_connections": 4000, "type": "fixed"}, + {"cu": 112, "ram_gb": 224, "max_connections": 4000, "type": "fixed"}, +] + +VALID_CU_SIZES = [s["cu"] for s in AUTOSCALE_SIZES + FIXED_SIZES] + +DBU_PER_CU_HOUR = { + "AWS": {"PREMIUM": 0.230, "ENTERPRISE": 0.213}, + "AZURE": {"PREMIUM": 1.0, "ENTERPRISE": 1.0, "STANDARD": 1.0}, + "GCP": {"PREMIUM": 1.0, "ENTERPRISE": 1.0}, +} + + +@router.get("/lakebase/list", tags=["Lakebase"]) +def list_lakebase_sizes(): + return { + "success": True, + "data": { + "total_sizes": len(VALID_CU_SIZES), + "all_cu_values": VALID_CU_SIZES, + "autoscale_sizes": AUTOSCALE_SIZES, + "fixed_sizes": FIXED_SIZES, + "dbu_per_cu_hour": DBU_PER_CU_HOUR, + "notes": { + "ram": "Each CU allocates approximately 2 GB RAM", + "autoscale": "Autoscaling supported for 0.5-32 CU. Range constraint: max - min <= 8 CU. Supports scale-to-zero.", + "fixed": "Fixed-size computes (36-112 CU) do not support autoscaling.", + }, + }, + } + + +@router.get("/lakebase/calculate", tags=["Lakebase"]) +def calculate_lakebase_dbu( + cu_size: float = Query(..., description="Compute Unit size (required): 0.5 to 112"), + cloud: str = Query(..., description="Cloud provider (required): AWS, AZURE, GCP"), + tier: str = Query(..., description="Pricing tier (required): PREMIUM, ENTERPRISE"), + read_replicas: int = Query(0, ge=0, description="Number of read replicas (0 = primary only)"), +): + if cu_size not in VALID_CU_SIZES: + return { + "success": False, + "error": { + "code": "INVALID_CU_SIZE", + "message": f"Invalid CU size '{cu_size}'. See /api/v1/lakebase/list for valid values.", + "field": "cu_size", + "allowed_values": VALID_CU_SIZES, + }, + } + + cloud_upper = cloud.upper() + if cloud_upper not in ["AWS", "AZURE", "GCP"]: + return { + "success": False, + "error": { + "code": "INVALID_CLOUD", + "message": f"Invalid cloud '{cloud}'. Must be AWS, AZURE, or GCP.", + "field": "cloud", + "allowed_values": ["AWS", "AZURE", "GCP"], + }, + } + + tier_upper = tier.upper() + cloud_rates = DBU_PER_CU_HOUR.get(cloud_upper, {}) + if tier_upper not in cloud_rates: + return { + "success": False, + "error": { + "code": "INVALID_TIER", + "message": f"Invalid tier '{tier}' for cloud '{cloud_upper}'. Must be one of: {list(cloud_rates.keys())}", + "field": "tier", + "allowed_values": list(cloud_rates.keys()), + }, + } + + dbu_per_cu_hour = cloud_rates[tier_upper] + total_computes = 1 + read_replicas + dbu_per_hour_per_compute = cu_size * dbu_per_cu_hour + total_dbu_per_hour = dbu_per_hour_per_compute * total_computes + cu_spec_type = "autoscale" if cu_size <= 32 else "fixed" + ram_gb = int(cu_size * 2) + + return { + "success": True, + "data": { + "cu_size": cu_size, + "cu_type": cu_spec_type, + "ram_gb": ram_gb, + "cloud": cloud_upper, + "tier": tier_upper, + "read_replicas": read_replicas, + "total_computes": total_computes, + "dbu_per_cu_hour": dbu_per_cu_hour, + "dbu_per_hour_per_compute": round(dbu_per_hour_per_compute, 6), + "total_dbu_per_hour": round(total_dbu_per_hour, 6), + "calculation": f"{cu_size} CU × {dbu_per_cu_hour} DBU/CU-hr × {total_computes} compute(s) = {round(total_dbu_per_hour, 6)} DBU/hour", + "description": f"Lakebase {cu_spec_type} compute with {cu_size} CU (~{ram_gb} GB RAM) and {read_replicas} read replica(s)", + }, + } diff --git a/lakemeter/backend/app/routes/reference/model_serving.py b/lakemeter/backend/app/routes/reference/model_serving.py new file mode 100644 index 00000000..6bbc4e71 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/model_serving.py @@ -0,0 +1,96 @@ +"""Model Serving reference endpoints.""" +import json +import logging +import os +from pathlib import Path +from fastapi import APIRouter, Query, Depends +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.cache import ref_cache +from app.services.validators import validate_cloud + +logger = logging.getLogger(__name__) +router = APIRouter() + +# Load descriptions from pricing bundle for human-readable names +_GPU_DESCRIPTIONS: dict = {} +try: + _bundle_path = Path(__file__).resolve().parents[2] / "static" / "pricing" / "model-serving-rates.json" + if _bundle_path.exists(): + with open(_bundle_path) as f: + for key, val in json.load(f).items(): + # key format: "cloud:gpu_type" + parts = key.split(":", 1) + if len(parts) == 2: + _GPU_DESCRIPTIONS[key] = val.get("description", "") +except Exception: + pass + + +def _gpu_display_name(gpu_type: str, cloud: str) -> str: + """Build a human-readable name for a GPU type.""" + # Try pricing bundle description first + desc = _GPU_DESCRIPTIONS.get(f"{cloud.lower()}:{gpu_type}", "") + if desc: + return desc + # Fallback: humanize the key + name = gpu_type.replace("_", " ").replace("gpu ", "GPU ").title() + if gpu_type == "cpu": + return "CPU" + return name + + +@router.get("/model-serving/gpu-types", tags=["Model Serving"]) +def get_model_serving_gpu_types( + cloud: str = Query(..., description="Cloud provider: AWS, AZURE, GCP (required)"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + cached = ref_cache.get("model_serving_gpu_types", cloud=cloud) + if cached is not None: + return cached + + try: + query = text(""" + SELECT size_or_model as gpu_type, dbu_rate + FROM lakemeter.sync_product_serverless_rates + WHERE product = 'model_serving' AND cloud = :cloud + ORDER BY size_or_model + """) + results = db.execute(query, {"cloud": cloud.upper()}).fetchall() + + response = { + "success": True, + "data": { + "cloud": cloud.upper(), + "count": len(results), + "gpu_types": [ + { + "gpu_type": r.gpu_type, + "name": _gpu_display_name(r.gpu_type, cloud), + "dbu_rate": float(r.dbu_rate) if r.dbu_rate else None, + } + for r in results + ], + "scale_out_presets": { + "small": {"concurrency": 4, "dbu_multiplier": 4, "range": "4"}, + "medium": {"concurrency": 12, "dbu_multiplier": 12, "range": "8-16"}, + "large": {"concurrency": 40, "dbu_multiplier": 40, "range": "16-64"}, + }, + "custom_scale_out": { + "min": 4, + "step": 4, + "note": "Custom concurrency must be a multiple of 4 (4, 8, 12, 16, ...)", + }, + }, + } + ref_cache.set("model_serving_gpu_types", response, cloud=cloud) + return response + except Exception as e: + logger.error(f"Error fetching Model Serving GPU types: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} diff --git a/lakemeter/backend/app/routes/reference/photon.py b/lakemeter/backend/app/routes/reference/photon.py new file mode 100644 index 00000000..d260d94d --- /dev/null +++ b/lakemeter/backend/app/routes/reference/photon.py @@ -0,0 +1,108 @@ +"""Photon multiplier reference endpoints.""" +import logging +from fastapi import APIRouter, Query, Depends +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.cache import ref_cache +from app.services.validators import validate_cloud, validate_photon_sku_type + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.get("/photon/list", tags=["Photon Multipliers"]) +def list_photon_sku_types( + cloud: str = Query(..., description="Cloud provider (required): AWS, AZURE, GCP"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + cached = ref_cache.get("photon_list", cloud=cloud) + if cached is not None: + return cached + + try: + query = text(""" + SELECT DISTINCT sku_type + FROM lakemeter.sync_ref_dbu_multipliers + WHERE feature = 'photon' AND cloud = :cloud + ORDER BY sku_type + """) + sku_types = [r.sku_type for r in db.execute(query, {"cloud": cloud.upper()}).fetchall()] + + response = { + "success": True, + "data": {"cloud": cloud.upper(), "count": len(sku_types), "sku_types": sku_types}, + } + ref_cache.set("photon_list", response, cloud=cloud) + return response + except Exception as e: + logger.error(f"Error fetching Photon SKU types: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/photon/multipliers", tags=["Photon Multipliers"]) +def get_photon_multipliers( + cloud: str = Query(..., description="Cloud provider (required): AWS, AZURE, GCP"), + sku_type: str = Query(None, description="Filter by SKU type"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + if sku_type: + error = validate_photon_sku_type(cloud, sku_type, db) + if error: + return error + + cached = ref_cache.get("photon_multipliers", cloud=cloud, sku_type=sku_type) + if cached is not None: + return cached + + try: + where_conditions = ["feature = 'photon'", "cloud = :cloud"] + params = {"cloud": cloud.upper()} + + if sku_type: + where_conditions.append("sku_type = :sku_type") + params["sku_type"] = sku_type + + where_clause = "WHERE " + " AND ".join(where_conditions) + + query = text(f""" + SELECT cloud, feature, multiplier, sku_type, category + FROM lakemeter.sync_ref_dbu_multipliers + {where_clause} + ORDER BY sku_type, category + """) + results = db.execute(query, params).fetchall() + + multipliers = [ + { + "cloud": r.cloud, + "sku_type": r.sku_type, + "category": r.category, + "multiplier": float(r.multiplier), + } + for r in results + ] + + response = { + "success": True, + "data": { + "cloud_filter": cloud.upper(), + "sku_type_filter": sku_type if sku_type else None, + "count": len(multipliers), + "multipliers": multipliers, + }, + } + ref_cache.set("photon_multipliers", response, cloud=cloud, sku_type=sku_type) + return response + except Exception as e: + logger.error(f"Error fetching Photon multipliers: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} diff --git a/lakemeter/backend/app/routes/reference/pricing.py b/lakemeter/backend/app/routes/reference/pricing.py new file mode 100644 index 00000000..88b8c433 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/pricing.py @@ -0,0 +1,135 @@ +"""DBU pricing reference endpoints.""" +import logging +from fastapi import APIRouter, Query, Depends +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.cache import ref_cache +from app.services.validators import ( + validate_cloud, + validate_region, + validate_tier, + validate_product_type, +) + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.get("/pricing/product-types", tags=["Pricing - DBU Rates"]) +def list_product_types( + cloud: str = Query(..., description="Cloud provider (required): AWS, AZURE, GCP"), + region: str = Query(..., description="Region code (required)"), + tier: str = Query(..., description="Pricing tier (required): STANDARD, PREMIUM, ENTERPRISE"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + error = validate_region(cloud, region, db) + if error: + return error + error = validate_tier(cloud, tier, db) + if error: + return error + + cached = ref_cache.get("product_types", cloud=cloud, region=region, tier=tier) + if cached is not None: + return cached + + try: + query = text(""" + SELECT DISTINCT product_type + FROM lakemeter.sync_pricing_dbu_rates + WHERE cloud = :cloud AND region = :region AND tier = :tier + ORDER BY product_type + """) + product_types = [r.product_type for r in db.execute( + query, {"cloud": cloud.upper(), "region": region, "tier": tier.upper()} + ).fetchall()] + + response = { + "success": True, + "data": { + "cloud": cloud.upper(), + "region": region, + "tier": tier.upper(), + "count": len(product_types), + "product_types": product_types, + }, + } + ref_cache.set("product_types", response, cloud=cloud, region=region, tier=tier) + return response + except Exception as e: + logger.error(f"Error fetching product types: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/pricing/dbu-rates", tags=["Pricing - DBU Rates"]) +def get_dbu_rates( + cloud: str = Query(..., description="Cloud provider (required): AWS, AZURE, GCP"), + region: str = Query(..., description="Region code (required)"), + tier: str = Query(..., description="Pricing tier (required): STANDARD, PREMIUM, ENTERPRISE"), + product_type: str = Query(None, description="Filter by product type"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + error = validate_region(cloud, region, db) + if error: + return error + error = validate_tier(cloud, tier, db) + if error: + return error + + if product_type: + error = validate_product_type(cloud, region, product_type, db) + if error: + return error + + try: + where_conditions = ["cloud = :cloud", "region = :region", "tier = :tier"] + params = {"cloud": cloud.upper(), "region": region, "tier": tier.upper()} + + if product_type: + where_conditions.append("product_type = :product_type") + params["product_type"] = product_type.upper() + + where_clause = "WHERE " + " AND ".join(where_conditions) + + query = text(f""" + SELECT sku_name, product_type, cloud, region, tier, price_per_dbu + FROM lakemeter.sync_pricing_dbu_rates + {where_clause} + ORDER BY product_type, sku_name + """) + results = db.execute(query, params).fetchall() + + dbu_rates = [ + { + "sku_name": r.sku_name, + "product_type": r.product_type, + "cloud": r.cloud, + "region": r.region, + "tier": r.tier, + "price_per_dbu": float(r.price_per_dbu) if r.price_per_dbu else None, + } + for r in results + ] + + return { + "success": True, + "data": { + "cloud": cloud.upper(), + "region": region, + "tier": tier.upper(), + "product_type_filter": product_type.upper() if product_type else None, + "count": len(dbu_rates), + "dbu_rates": dbu_rates, + }, + } + except Exception as e: + logger.error(f"Error fetching DBU rates: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} diff --git a/lakemeter/backend/app/routes/reference/serverless.py b/lakemeter/backend/app/routes/reference/serverless.py new file mode 100644 index 00000000..5870dd1c --- /dev/null +++ b/lakemeter/backend/app/routes/reference/serverless.py @@ -0,0 +1,20 @@ +"""Serverless mode reference endpoints.""" +from fastapi import APIRouter + +router = APIRouter() + + +@router.get("/serverless/modes", tags=["Serverless Multipliers"]) +def get_serverless_modes(): + modes = [ + {"mode": "standard", "multiplier": 1, "description": "Standard performance (default)"}, + {"mode": "performance", "multiplier": 2, "description": "Enhanced performance (2x cost)"}, + ] + return { + "success": True, + "data": { + "count": len(modes), + "modes": modes, + "note": "Serverless mode multipliers are the same across all clouds", + }, + } diff --git a/lakemeter/backend/app/routes/reference/vector_search.py b/lakemeter/backend/app/routes/reference/vector_search.py new file mode 100644 index 00000000..3cd7b602 --- /dev/null +++ b/lakemeter/backend/app/routes/reference/vector_search.py @@ -0,0 +1,99 @@ +"""Vector Search reference endpoints.""" +import logging +from fastapi import APIRouter, Query, Depends +from sqlalchemy import text +from sqlalchemy.orm import Session + +from app.database import get_db +from app.services.cache import ref_cache +from app.services.validators import validate_cloud, validate_vector_search_mode + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.get("/vector-search/list", tags=["Vector Search"]) +def list_vector_search_modes(db: Session = Depends(get_db)): + cached = ref_cache.get("vector_search_list") + if cached is not None: + return cached + + try: + query = text(""" + SELECT DISTINCT size_or_model as mode + FROM lakemeter.sync_product_serverless_rates + WHERE product = 'vector_search' + ORDER BY mode + """) + modes = [r.mode for r in db.execute(query).fetchall()] + + response = {"success": True, "data": {"count": len(modes), "modes": modes}} + ref_cache.set("vector_search_list", response) + return response + except Exception as e: + logger.error(f"Error fetching Vector Search mode list: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} + + +@router.get("/vector-search/modes", tags=["Vector Search"]) +def get_vector_search_modes( + cloud: str = Query(..., description="Cloud provider (required): AWS, AZURE, GCP"), + mode: str = Query(None, description="Filter by mode"), + db: Session = Depends(get_db), +): + error = validate_cloud(cloud) + if error: + return error + + if mode: + error = validate_vector_search_mode(mode, cloud, db) + if error: + return error + + try: + where_conditions = ["product = 'vector_search'", "cloud = :cloud"] + params = {"cloud": cloud.upper()} + + if mode: + where_conditions.append("size_or_model = :mode") + params["mode"] = mode + + where_clause = "WHERE " + " AND ".join(where_conditions) + + query = text(f""" + SELECT + cloud, size_or_model as mode, dbu_rate, input_divisor, + CASE + WHEN input_divisor::bigint = 2000000 THEN 2 + WHEN input_divisor::bigint = 64000000 THEN 64 + ELSE input_divisor::bigint / 1000000.0 + END as vector_capacity_millions + FROM lakemeter.sync_product_serverless_rates + {where_clause} + ORDER BY cloud, mode + """) + results = db.execute(query, params).fetchall() + + modes_list = [ + { + "cloud": r.cloud, + "mode": r.mode, + "dbu_per_hour": float(r.dbu_rate) if r.dbu_rate else None, + "vector_capacity_millions": float(r.vector_capacity_millions), + "description": f"{r.vector_capacity_millions}M vectors per pricing unit", + } + for r in results + ] + + return { + "success": True, + "data": { + "cloud_filter": cloud.upper(), + "mode_filter": mode if mode else None, + "count": len(modes_list), + "modes": modes_list, + }, + } + except Exception as e: + logger.error(f"Error fetching Vector Search modes: {e}") + return {"success": False, "error": {"message": str(e), "code": "DATABASE_ERROR"}} diff --git a/lakemeter/backend/app/routes/users.py b/lakemeter/backend/app/routes/users.py new file mode 100644 index 00000000..1bbc8ded --- /dev/null +++ b/lakemeter/backend/app/routes/users.py @@ -0,0 +1,124 @@ +"""User API routes.""" +from typing import List +from uuid import UUID +from fastapi import APIRouter, Depends, HTTPException, Request +from sqlalchemy.orm import Session + +from app.database import get_db +from app.models import User +from app.schemas import UserCreate, UserUpdate, UserResponse +from app.auth.databricks_auth import FORWARDED_EMAIL_HEADER + +router = APIRouter(prefix="/users", tags=["users"]) + + +# NOTE: /me route MUST be defined BEFORE /{user_id} to avoid "me" being parsed as UUID +@router.get("/me", response_model=UserResponse) +def get_current_user_me( + request: Request, + db: Session = Depends(get_db) +): + """Get the current authenticated user.""" + # Get email from forwarded header (Databricks Apps SSO) + email = request.headers.get(FORWARDED_EMAIL_HEADER) + + if not email: + raise HTTPException(status_code=401, detail="Not authenticated") + + # Find or create user + user = db.query(User).filter(User.email == email).first() + + if not user: + # Create new user from SSO + full_name = email.split('@')[0].replace('.', ' ').title() + user = User( + email=email, + full_name=full_name, + is_active=True + ) + db.add(user) + db.commit() + db.refresh(user) + + return user + + +@router.get("", response_model=List[UserResponse]) +@router.get("/", response_model=List[UserResponse]) +def list_users( + skip: int = 0, + limit: int = 100, + db: Session = Depends(get_db) +): + """List all users.""" + users = db.query(User).filter(User.is_active == True).offset(skip).limit(limit).all() + return users + + +@router.post("/", response_model=UserResponse, status_code=201) +def create_user( + user: UserCreate, + db: Session = Depends(get_db) +): + """Create a new user.""" + # Check if email already exists + existing = db.query(User).filter(User.email == user.email).first() + if existing: + raise HTTPException(status_code=400, detail="Email already registered") + + db_user = User(**user.model_dump()) + db.add(db_user) + db.commit() + db.refresh(db_user) + return db_user + + +@router.get("/{user_id}", response_model=UserResponse) +def get_user( + user_id: UUID, + db: Session = Depends(get_db) +): + """Get a user by ID.""" + user = db.query(User).filter(User.user_id == user_id).first() + + if not user: + raise HTTPException(status_code=404, detail="User not found") + + return user + + +@router.get("/email/{email}", response_model=UserResponse) +def get_user_by_email( + email: str, + db: Session = Depends(get_db) +): + """Get a user by email.""" + user = db.query(User).filter(User.email == email).first() + + if not user: + raise HTTPException(status_code=404, detail="User not found") + + return user + + +@router.put("/{user_id}", response_model=UserResponse) +def update_user( + user_id: UUID, + user_update: UserUpdate, + db: Session = Depends(get_db) +): + """Update a user.""" + user = db.query(User).filter(User.user_id == user_id).first() + + if not user: + raise HTTPException(status_code=404, detail="User not found") + + update_data = user_update.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(user, field, value) + + db.commit() + db.refresh(user) + return user + + diff --git a/lakemeter/backend/app/routes/vm_pricing.py b/lakemeter/backend/app/routes/vm_pricing.py new file mode 100644 index 00000000..9f6b94a9 --- /dev/null +++ b/lakemeter/backend/app/routes/vm_pricing.py @@ -0,0 +1,258 @@ +"""VM Pricing API routes - fetches data from Lakebase sync_pricing_vm_costs table.""" +from typing import List, Optional +from fastapi import APIRouter, Depends, Query +from sqlalchemy.orm import Session +from sqlalchemy import distinct, func + +from app.database import get_db +from app.models.vm_pricing import VMPricing +from app.schemas.vm_pricing import ( + VMPricingResponse, + VMPricingTierResponse, + VMPaymentOptionResponse +) +from app.config import log_warning + +router = APIRouter(prefix="/vm-pricing", tags=["vm-pricing"]) + + +# Default VM pricing for fallback +DEFAULT_VM_PRICING = { + "aws": { + "i3.xlarge": {"on_demand": 0.312, "spot": 0.094}, + "i3.2xlarge": {"on_demand": 0.624, "spot": 0.187}, + "i3.4xlarge": {"on_demand": 1.248, "spot": 0.374}, + "i3.8xlarge": {"on_demand": 2.496, "spot": 0.749}, + "i3.16xlarge": {"on_demand": 4.992, "spot": 1.498}, + "m5.large": {"on_demand": 0.096, "spot": 0.029}, + "m5.xlarge": {"on_demand": 0.192, "spot": 0.058}, + "m5.2xlarge": {"on_demand": 0.384, "spot": 0.115}, + "m5.4xlarge": {"on_demand": 0.768, "spot": 0.230}, + "m5d.xlarge": {"on_demand": 0.226, "spot": 0.068}, + "m5d.2xlarge": {"on_demand": 0.452, "spot": 0.136}, + "m5d.4xlarge": {"on_demand": 0.904, "spot": 0.271}, + "m5d.12xlarge": {"on_demand": 2.712, "spot": 0.814}, + "m5d.16xlarge": {"on_demand": 3.616, "spot": 1.085}, + "r5.large": {"on_demand": 0.126, "spot": 0.038}, + "r5.xlarge": {"on_demand": 0.252, "spot": 0.076}, + "r5.2xlarge": {"on_demand": 0.504, "spot": 0.151}, + "r5d.xlarge": {"on_demand": 0.288, "spot": 0.086}, + "r5d.2xlarge": {"on_demand": 0.576, "spot": 0.173}, + "c5.xlarge": {"on_demand": 0.170, "spot": 0.051}, + "c5.2xlarge": {"on_demand": 0.340, "spot": 0.102}, + "p3.2xlarge": {"on_demand": 3.060, "spot": 0.918}, + "p3.8xlarge": {"on_demand": 12.240, "spot": 3.672}, + }, + "azure": { + "Standard_DS3_v2": {"on_demand": 0.293}, + "Standard_DS4_v2": {"on_demand": 0.585}, + "Standard_DS5_v2": {"on_demand": 1.170}, + "Standard_D4s_v3": {"on_demand": 0.192}, + "Standard_D8s_v3": {"on_demand": 0.384}, + "Standard_D16s_v3": {"on_demand": 0.768}, + "Standard_E4s_v3": {"on_demand": 0.252}, + "Standard_E8s_v3": {"on_demand": 0.504}, + "Standard_L8s_v2": {"on_demand": 0.624}, + "Standard_NC6s_v3": {"on_demand": 3.060}, + }, + "gcp": { + "n1-standard-4": {"on_demand": 0.150}, + "n1-standard-8": {"on_demand": 0.301}, + "n1-standard-16": {"on_demand": 0.602}, + "n1-standard-32": {"on_demand": 1.204}, + "n1-highmem-4": {"on_demand": 0.187}, + "n1-highmem-8": {"on_demand": 0.374}, + "n2-standard-4": {"on_demand": 0.194}, + "n2-standard-8": {"on_demand": 0.388}, + } +} + + +@router.get("", response_model=List[VMPricingResponse]) +@router.get("/", response_model=List[VMPricingResponse]) +def list_vm_pricing( + cloud: str = Query(..., description="Cloud provider (aws, azure, gcp)"), + region: Optional[str] = Query(None, description="Cloud region (region_code format, e.g., ap-southeast-1)"), + instance_type: Optional[str] = Query(None, description="Instance type"), + pricing_tier: Optional[str] = Query(None, description="Pricing tier (on_demand, spot, reserved_1y, reserved_3y)"), + db: Session = Depends(get_db) +): + """Get VM pricing data from Lakebase, with hardcoded fallback.""" + try: + query = db.query(VMPricing).filter(VMPricing.cloud == cloud.upper()) + + if region: + query = query.filter(VMPricing.region == region) + if instance_type: + query = query.filter(VMPricing.instance_type == instance_type) + if pricing_tier: + query = query.filter(VMPricing.pricing_tier == pricing_tier) + + results = query.order_by(VMPricing.instance_type, VMPricing.pricing_tier).all() + + if results: + return results + except Exception as e: + log_warning(f"Could not fetch VM pricing from database: {e}") + + # Return default pricing as fallback + return _get_default_pricing(cloud, region, instance_type, pricing_tier) + + +@router.get("/instance-types") +def get_instance_types_for_region( + cloud: str = Query(..., description="Cloud provider"), + region: Optional[str] = Query(None, description="Cloud region"), + db: Session = Depends(get_db) +): + """Get unique instance types available for a cloud/region from Lakebase.""" + try: + query = db.query(distinct(VMPricing.instance_type)).filter( + VMPricing.cloud == cloud.upper() + ) + + if region: + query = query.filter(VMPricing.region == region) + + results = query.order_by(VMPricing.instance_type).all() + + if results: + return [{"instance_type": r[0]} for r in results] + except Exception as e: + log_warning(f"Could not fetch instance types from database: {e}") + + # Return default instance types for the cloud + cloud_lower = cloud.lower() + if cloud_lower in DEFAULT_VM_PRICING: + return [{"instance_type": it} for it in sorted(DEFAULT_VM_PRICING[cloud_lower].keys())] + return [] + + +@router.get("/regions") +def get_regions_for_cloud( + cloud: str = Query(..., description="Cloud provider"), + db: Session = Depends(get_db) +): + """Get unique regions available for a cloud from Lakebase.""" + try: + results = db.query(distinct(VMPricing.region)).filter( + VMPricing.cloud == cloud.upper() + ).order_by(VMPricing.region).all() + + if results: + return [{"region": r[0]} for r in results] + except Exception as e: + log_warning(f"Could not fetch regions from database: {e}") + + return [] + + +@router.get("/price") +def get_vm_price( + cloud: str = Query(..., description="Cloud provider"), + region: str = Query(..., description="Cloud region"), + instance_type: str = Query(..., description="Instance type"), + pricing_tier: str = Query("on_demand", description="Pricing tier"), + payment_option: Optional[str] = Query(None, description="Payment option for reserved (AWS only)"), + db: Session = Depends(get_db) +): + """Get specific VM price for a given configuration.""" + try: + query = db.query(VMPricing).filter( + VMPricing.cloud == cloud.upper(), + VMPricing.region == region, + VMPricing.instance_type == instance_type, + VMPricing.pricing_tier == pricing_tier + ) + + if payment_option and pricing_tier.startswith("reserved"): + query = query.filter(VMPricing.payment_option == payment_option) + + result = query.first() + + if result: + return { + "cost_per_hour": result.cost_per_hour, + "currency": result.currency, + "pricing_tier": result.pricing_tier, + "payment_option": result.payment_option, + "source": result.source + } + except Exception as e: + log_warning(f"Could not fetch VM price from database: {e}") + + # Fallback to default pricing + cloud_lower = cloud.lower() + if cloud_lower in DEFAULT_VM_PRICING: + if instance_type in DEFAULT_VM_PRICING[cloud_lower]: + tier_key = "on_demand" if pricing_tier == "on_demand" else pricing_tier + if tier_key in DEFAULT_VM_PRICING[cloud_lower][instance_type]: + return { + "cost_per_hour": DEFAULT_VM_PRICING[cloud_lower][instance_type][tier_key], + "currency": "USD", + "pricing_tier": pricing_tier, + "payment_option": payment_option or "NA", + "source": "fallback" + } + + return { + "cost_per_hour": 0.20, + "currency": "USD", + "pricing_tier": pricing_tier, + "payment_option": payment_option or "NA", + "source": "default" + } + + +@router.get("/tiers", response_model=List[VMPricingTierResponse]) +def get_pricing_tiers(): + """Get available VM pricing tiers.""" + return [ + {"id": "on_demand", "name": "On-Demand", "description": "Pay as you go with no commitment"}, + {"id": "spot", "name": "Spot Instances", "description": "Up to 90% discount, can be interrupted"}, + {"id": "reserved_1y", "name": "1-Year Reserved", "description": "1-year commitment for lower rates"}, + {"id": "reserved_3y", "name": "3-Year Reserved", "description": "3-year commitment for lowest rates"}, + ] + + +@router.get("/payment-options", response_model=List[VMPaymentOptionResponse]) +def get_payment_options(): + """Get available payment options for reserved instances (AWS only).""" + return [ + {"id": "no_upfront", "name": "No Upfront", "description": "Pay monthly with no upfront payment"}, + {"id": "partial_upfront", "name": "Partial Upfront", "description": "Pay partial upfront, lower monthly"}, + {"id": "all_upfront", "name": "All Upfront", "description": "Pay all upfront for lowest total cost"}, + ] + + +def _get_default_pricing(cloud: str, region: Optional[str], instance_type: Optional[str], pricing_tier: Optional[str]) -> List[dict]: + """Generate default pricing responses when database is not available.""" + cloud_lower = cloud.lower() + + if cloud_lower not in DEFAULT_VM_PRICING: + return [] + + results = [] + for it, tiers in DEFAULT_VM_PRICING[cloud_lower].items(): + if instance_type and it != instance_type: + continue + + for tier, price in tiers.items(): + if pricing_tier and tier != pricing_tier: + continue + + results.append({ + "cloud": cloud.upper(), + "region": region or "default", + "instance_type": it, + "pricing_tier": tier, + "payment_option": "NA", + "cost_per_hour": price, + "currency": "USD", + "source": "fallback", + "fetched_at": None, + "updated_at": None + }) + + return results + diff --git a/lakemeter/backend/app/routes/workload_types.py b/lakemeter/backend/app/routes/workload_types.py new file mode 100644 index 00000000..da86db09 --- /dev/null +++ b/lakemeter/backend/app/routes/workload_types.py @@ -0,0 +1,335 @@ +"""Workload Type API routes.""" +from typing import List +from fastapi import APIRouter, Depends +from sqlalchemy.orm import Session + +from app.database import get_db +from app.models import RefWorkloadType +from app.schemas import WorkloadTypeResponse + +router = APIRouter(prefix="/workload-types", tags=["workload-types"]) + +# Default workload types based on the CSV reference +DEFAULT_WORKLOAD_TYPES = [ + { + "workload_type": "JOBS", + "display_name": "Lakeflow Jobs", + "description": "Scheduled batch jobs (Classic or Serverless)", + "show_compute_config": True, + "show_serverless_toggle": True, + "show_serverless_performance_mode": True, + "show_photon_toggle": True, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": True, + "show_usage_hours": False, + "show_usage_runs": True, + "show_usage_tokens": False, + "sku_product_type_standard": "JOBS_COMPUTE", + "sku_product_type_photon": "JOBS_COMPUTE_(PHOTON)", + "sku_product_type_serverless": "JOBS_SERVERLESS_COMPUTE", + "display_order": 1 + }, + { + "workload_type": "ALL_PURPOSE", + "display_name": "All-Purpose Compute", + "description": "Interactive clusters for notebooks (Classic or Serverless)", + "show_compute_config": True, + "show_serverless_toggle": True, + "show_serverless_performance_mode": False, + "show_photon_toggle": True, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": True, + "show_usage_hours": False, + "show_usage_runs": True, + "show_usage_tokens": False, + "sku_product_type_standard": "ALL_PURPOSE_COMPUTE", + "sku_product_type_photon": "ALL_PURPOSE_COMPUTE_(PHOTON)", + "sku_product_type_serverless": "INTERACTIVE_SERVERLESS_COMPUTE", + "display_order": 2 + }, + { + "workload_type": "DLT", + "display_name": "Lakeflow Spark Declarative Pipelines", + "description": "Spark Declarative Pipelines (Classic or Serverless)", + "show_compute_config": True, + "show_serverless_toggle": True, + "show_serverless_performance_mode": True, + "show_photon_toggle": True, + "show_dlt_config": True, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": True, + "show_usage_hours": False, + "show_usage_runs": True, + "show_usage_tokens": False, + "sku_product_type_standard": "DLT_CORE_COMPUTE", + "sku_product_type_photon": "DLT_CORE_COMPUTE_(PHOTON)", + "sku_product_type_serverless": "DELTA_LIVE_TABLES_SERVERLESS", + "display_order": 3 + }, + { + "workload_type": "DBSQL", + "display_name": "Databricks SQL", + "description": "SQL analytics warehouse (Classic/Pro/Serverless)", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": True, + "show_serverless_product": False, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": False, + "show_usage_hours": True, + "show_usage_runs": True, + "show_usage_tokens": False, + "sku_product_type_standard": "SQL_COMPUTE", + "sku_product_type_photon": "SQL_PRO_COMPUTE", + "sku_product_type_serverless": "SERVERLESS_SQL_COMPUTE", + "display_order": 4 + }, + { + "workload_type": "VECTOR_SEARCH", + "display_name": "Vector Search", + "description": "Vector search endpoints for RAG", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": True, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": True, + "show_vm_pricing": False, + "show_usage_hours": True, + "show_usage_runs": False, + "show_usage_tokens": False, + "sku_product_type_standard": None, + "sku_product_type_photon": None, + "sku_product_type_serverless": "VECTOR_SEARCH_ENDPOINT", + "display_order": 5 + }, + { + "workload_type": "MODEL_SERVING", + "display_name": "Model Serving", + "description": "Real-time model inference endpoints", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": True, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": False, + "show_usage_hours": True, + "show_usage_runs": False, + "show_usage_tokens": False, + "sku_product_type_standard": None, + "sku_product_type_photon": None, + "sku_product_type_serverless": "SERVERLESS_REAL_TIME_INFERENCE", + "display_order": 6 + }, + { + "workload_type": "FMAPI_DATABRICKS", + "display_name": "Foundation Models (Databricks)", + "description": "Databricks-hosted LLMs (Llama, DBRX)", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": True, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": False, + "show_usage_hours": False, + "show_usage_runs": False, + "show_usage_tokens": True, + "sku_product_type_standard": None, + "sku_product_type_photon": None, + "sku_product_type_serverless": "SERVERLESS_REAL_TIME_INFERENCE", + "display_order": 7 + }, + { + "workload_type": "FMAPI_PROPRIETARY", + "display_name": "Foundation Models (Proprietary)", + "description": "OpenAI, Anthropic, Google models served by Databricks", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": True, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": False, + "show_usage_hours": False, + "show_usage_runs": False, + "show_usage_tokens": True, + "sku_product_type_standard": None, + "sku_product_type_photon": None, + "sku_product_type_serverless": None, + "display_order": 8 + }, + { + "workload_type": "LAKEBASE", + "display_name": "Lakebase", + "description": "Managed PostgreSQL database for operational workloads", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": False, + "show_lakebase_config": True, + "show_vector_search_mode": False, + "show_vm_pricing": False, + "show_usage_hours": True, + "show_usage_runs": True, + "show_usage_tokens": False, + "sku_product_type_standard": None, + "sku_product_type_photon": None, + "sku_product_type_serverless": "DATABASE_SERVERLESS_COMPUTE", + "display_order": 9 + }, + { + "workload_type": "DATABRICKS_APPS", + "display_name": "Databricks Apps", + "description": "Managed app hosting on Databricks", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": False, + "show_usage_hours": True, + "show_usage_runs": False, + "show_usage_tokens": False, + "sku_product_type_standard": "ALL_PURPOSE_SERVERLESS_COMPUTE", + "sku_product_type_photon": None, + "sku_product_type_serverless": None, + "display_order": 10 + }, + { + "workload_type": "AI_PARSE", + "display_name": "AI Parse (Document AI)", + "description": "Document parsing and extraction with AI", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": False, + "show_usage_hours": False, + "show_usage_runs": False, + "show_usage_tokens": False, + "sku_product_type_standard": "SERVERLESS_REAL_TIME_INFERENCE", + "sku_product_type_photon": None, + "sku_product_type_serverless": None, + "display_order": 11 + }, + { + "workload_type": "SHUTTERSTOCK_IMAGEAI", + "display_name": "Shutterstock ImageAI", + "description": "AI image generation via Shutterstock", + "show_compute_config": False, + "show_serverless_toggle": False, + "show_serverless_performance_mode": False, + "show_photon_toggle": False, + "show_dlt_config": False, + "show_dbsql_config": False, + "show_serverless_product": False, + "show_fmapi_config": False, + "show_lakebase_config": False, + "show_vector_search_mode": False, + "show_vm_pricing": False, + "show_usage_hours": False, + "show_usage_runs": False, + "show_usage_tokens": False, + "sku_product_type_standard": "SERVERLESS_REAL_TIME_INFERENCE", + "sku_product_type_photon": None, + "sku_product_type_serverless": None, + "display_order": 12 + } +] + + +@router.get("", response_model=List[WorkloadTypeResponse]) +@router.get("/", response_model=List[WorkloadTypeResponse]) +def list_workload_types( + db: Session = Depends(get_db) +): + """List all workload types - always use defaults to ensure correct configuration. + + Note: We always use DEFAULT_WORKLOAD_TYPES to ensure the latest configuration + (like show_usage_runs) is applied. Database records may have stale values. + """ + # Always return the curated default workload types + # This ensures show_usage_runs and other flags are correct + return [WorkloadTypeResponse(**wt) for wt in DEFAULT_WORKLOAD_TYPES] + + +@router.get("/{workload_type}", response_model=WorkloadTypeResponse) +def get_workload_type( + workload_type: str, + db: Session = Depends(get_db) +): + """Get a workload type by key.""" + try: + wt = db.query(RefWorkloadType).filter( + RefWorkloadType.workload_type == workload_type + ).first() + + if wt: + return wt + except Exception: + pass + + # Find in defaults + for default_wt in DEFAULT_WORKLOAD_TYPES: + if default_wt["workload_type"] == workload_type: + return WorkloadTypeResponse(**default_wt) + + # Return a basic default + return WorkloadTypeResponse( + workload_type=workload_type, + display_name=workload_type.replace("_", " ").title(), + show_compute_config=True, + show_usage_hours=True + ) diff --git a/lakemeter/backend/app/schemas/__init__.py b/lakemeter/backend/app/schemas/__init__.py new file mode 100644 index 00000000..d1ecb415 --- /dev/null +++ b/lakemeter/backend/app/schemas/__init__.py @@ -0,0 +1,18 @@ +"""Pydantic schemas for API request/response validation.""" +from app.schemas.user import UserCreate, UserUpdate, UserResponse +from app.schemas.estimate import EstimateCreate, EstimateUpdate, EstimateResponse, EstimateListResponse, EstimateWithLineItemsResponse +from app.schemas.line_item import LineItemCreate, LineItemUpdate, LineItemResponse +from app.schemas.workload_type import WorkloadTypeResponse +from app.schemas.sharing import ShareCreate, ShareResponse +from app.schemas.vm_pricing import VMPricingResponse, VMPricingTierResponse, VMPaymentOptionResponse + +__all__ = [ + "UserCreate", "UserUpdate", "UserResponse", + "EstimateCreate", "EstimateUpdate", "EstimateResponse", "EstimateListResponse", "EstimateWithLineItemsResponse", + "LineItemCreate", "LineItemUpdate", "LineItemResponse", + "WorkloadTypeResponse", + "ShareCreate", "ShareResponse", + "VMPricingResponse", "VMPricingTierResponse", "VMPaymentOptionResponse", +] + + diff --git a/lakemeter/backend/app/schemas/estimate.py b/lakemeter/backend/app/schemas/estimate.py new file mode 100644 index 00000000..086c4594 --- /dev/null +++ b/lakemeter/backend/app/schemas/estimate.py @@ -0,0 +1,88 @@ +"""Estimate schemas.""" +from datetime import datetime +from typing import Optional, List +from uuid import UUID +from pydantic import BaseModel, ConfigDict + + +class EstimateBase(BaseModel): + """Base estimate schema.""" + estimate_name: str + cloud: Optional[str] = None + region: Optional[str] = None + tier: Optional[str] = None + status: Optional[str] = "draft" + + +class EstimateCreate(EstimateBase): + """Schema for creating an estimate.""" + template_id: Optional[UUID] = None + original_prompt: Optional[str] = None + + +class EstimateUpdate(BaseModel): + """Schema for updating an estimate.""" + estimate_name: Optional[str] = None + cloud: Optional[str] = None + region: Optional[str] = None + tier: Optional[str] = None + status: Optional[str] = None + + +class LineItemSummary(BaseModel): + """Summary of line item for estimate response.""" + line_item_id: UUID + workload_name: str + workload_type: Optional[str] = None + display_order: int + + model_config = ConfigDict(from_attributes=True) + + +class EstimateResponse(EstimateBase): + """Schema for estimate response.""" + estimate_id: UUID + owner_user_id: Optional[UUID] = None + version: int + template_id: Optional[UUID] = None + original_prompt: Optional[str] = None + is_deleted: bool + created_at: datetime + updated_at: datetime + updated_by: Optional[UUID] = None + line_items: List[LineItemSummary] = [] + + model_config = ConfigDict(from_attributes=True) + + +class EstimateListResponse(BaseModel): + """Schema for listing estimates.""" + estimate_id: UUID + estimate_name: str + customer_name: Optional[str] = None + cloud: Optional[str] = None + region: Optional[str] = None + tier: Optional[str] = None + status: Optional[str] = None + version: int + line_item_count: int = 0 + display_order: int = 0 + created_at: datetime + updated_at: datetime + + model_config = ConfigDict(from_attributes=True) + + +class EstimateWithLineItemsResponse(EstimateBase): + """Schema for estimate with full line items - optimized single-query response.""" + estimate_id: UUID + owner_user_id: Optional[UUID] = None + version: int + template_id: Optional[UUID] = None + original_prompt: Optional[str] = None + is_deleted: bool + created_at: datetime + updated_at: datetime + updated_by: Optional[UUID] = None + + model_config = ConfigDict(from_attributes=True) diff --git a/lakemeter/backend/app/schemas/line_item.py b/lakemeter/backend/app/schemas/line_item.py new file mode 100644 index 00000000..52bcc41b --- /dev/null +++ b/lakemeter/backend/app/schemas/line_item.py @@ -0,0 +1,239 @@ +"""Line Item schemas.""" +from datetime import datetime +from decimal import Decimal +from typing import Optional, Dict, Any +from uuid import UUID +from pydantic import BaseModel, ConfigDict + + +class LineItemBase(BaseModel): + """Base line item schema.""" + workload_name: str + workload_type: Optional[str] = None + display_order: Optional[int] = 0 + cloud: Optional[str] = None + + # Serverless toggle + serverless_enabled: Optional[bool] = False + serverless_mode: Optional[str] = None + + # Classic Compute Configuration + photon_enabled: Optional[bool] = False + driver_node_type: Optional[str] = None + worker_node_type: Optional[str] = None + num_workers: Optional[int] = 1 + + # DLT Configuration + dlt_edition: Optional[str] = None + + # DBSQL Configuration + dbsql_warehouse_type: Optional[str] = None + dbsql_warehouse_size: Optional[str] = None + dbsql_num_clusters: Optional[int] = None + dbsql_vm_pricing_tier: Optional[str] = None + dbsql_vm_payment_option: Optional[str] = None + + # Vector Search Configuration + vector_search_mode: Optional[str] = None + vector_capacity_millions: Optional[int] = None + vector_search_storage_gb: Optional[int] = None + + # Model Serving Configuration + model_serving_gpu_type: Optional[str] = None + model_serving_concurrency: Optional[int] = None + model_serving_scale_out: Optional[str] = None + model_servings_number_endpoints: Optional[int] = None + + # Foundation Model API Configuration (Proprietary) + fmapi_provider: Optional[str] = None + fmapi_model: Optional[str] = None + fmapi_endpoint_type: Optional[str] = None + fmapi_context_length: Optional[str] = None + fmapi_rate_type: Optional[str] = None # input_token, output_token, cache_read, cache_write + fmapi_quantity: Optional[Decimal] = None # quantity in millions (M) + + # Databricks Apps Configuration + databricks_apps_size: Optional[str] = None + databricks_apps_hours_per_month: Optional[float] = None + databricks_apps_num_apps: Optional[int] = None + + # Clean Room Configuration + clean_room_num_collaborators: Optional[int] = None + clean_room_days_per_month: Optional[int] = None + + # AI Parse Configuration + ai_parse_calculation_method: Optional[str] = None + ai_parse_complexity: Optional[str] = None + ai_parse_dbu_quantity: Optional[float] = None + ai_parse_num_pages: Optional[float] = None + + # Shutterstock ImageAI Configuration + shutterstock_imageai_num_images: Optional[int] = None + + # Databricks Support Configuration + databricks_support_tier: Optional[str] = None + databricks_support_annual_commit: Optional[float] = None + + # Lakeflow Connect Configuration + lakeflow_connect_connector_type: Optional[str] = None + lakeflow_connect_pipeline_driver_node_type: Optional[str] = None + lakeflow_connect_pipeline_worker_node_type: Optional[str] = None + lakeflow_connect_pipeline_num_workers: Optional[int] = None + lakeflow_connect_pipeline_serverless_mode: Optional[str] = None + lakeflow_connect_pipeline_runs_per_day: Optional[int] = None + lakeflow_connect_pipeline_avg_runtime_minutes: Optional[int] = None + lakeflow_connect_pipeline_hours_per_month: Optional[float] = None + lakeflow_connect_gateway_cloud: Optional[str] = None + lakeflow_connect_gateway_instance_type: Optional[str] = None + lakeflow_connect_gateway_num_workers: Optional[int] = None + lakeflow_connect_gateway_hours_per_month: Optional[float] = None + + # Lakebase Configuration + lakebase_cu: Optional[float] = None + lakebase_storage_gb: Optional[int] = None + lakebase_ha_nodes: Optional[int] = None + lakebase_backup_retention_days: Optional[int] = None + + # Usage Configuration + runs_per_day: Optional[int] = None + avg_runtime_minutes: Optional[int] = None + days_per_month: Optional[int] = 22 + hours_per_month: Optional[int] = None + + # Pricing Configuration + driver_pricing_tier: Optional[str] = None + worker_pricing_tier: Optional[str] = None + driver_payment_option: Optional[str] = None + worker_payment_option: Optional[str] = None + + # Additional Configuration + workload_config: Optional[Dict[str, Any]] = None + notes: Optional[str] = None + + # Calculated results + cost_calculation_response: Optional[Dict[str, Any]] = None + calculation_completed_at: Optional[datetime] = None + + +class LineItemCreate(LineItemBase): + """Schema for creating a line item.""" + estimate_id: UUID + + +class LineItemUpdate(BaseModel): + """Schema for updating a line item.""" + workload_name: Optional[str] = None + workload_type: Optional[str] = None + display_order: Optional[int] = None + cloud: Optional[str] = None + + # Serverless toggle + serverless_enabled: Optional[bool] = None + serverless_mode: Optional[str] = None + + # Classic Compute Configuration + photon_enabled: Optional[bool] = None + driver_node_type: Optional[str] = None + worker_node_type: Optional[str] = None + num_workers: Optional[int] = None + + # DLT Configuration + dlt_edition: Optional[str] = None + + # DBSQL Configuration + dbsql_warehouse_type: Optional[str] = None + dbsql_warehouse_size: Optional[str] = None + dbsql_num_clusters: Optional[int] = None + dbsql_vm_pricing_tier: Optional[str] = None + dbsql_vm_payment_option: Optional[str] = None + + # Vector Search Configuration + vector_search_mode: Optional[str] = None + vector_capacity_millions: Optional[int] = None + vector_search_storage_gb: Optional[int] = None + + # Model Serving Configuration + model_serving_gpu_type: Optional[str] = None + model_serving_concurrency: Optional[int] = None + model_serving_scale_out: Optional[str] = None + model_servings_number_endpoints: Optional[int] = None + + # Foundation Model API Configuration (Proprietary) + fmapi_provider: Optional[str] = None + fmapi_model: Optional[str] = None + fmapi_endpoint_type: Optional[str] = None + fmapi_context_length: Optional[str] = None + fmapi_rate_type: Optional[str] = None + fmapi_quantity: Optional[Decimal] = None + + # Databricks Apps Configuration + databricks_apps_size: Optional[str] = None + databricks_apps_hours_per_month: Optional[float] = None + databricks_apps_num_apps: Optional[int] = None + + # Clean Room Configuration + clean_room_num_collaborators: Optional[int] = None + clean_room_days_per_month: Optional[int] = None + + # AI Parse Configuration + ai_parse_calculation_method: Optional[str] = None + ai_parse_complexity: Optional[str] = None + ai_parse_dbu_quantity: Optional[float] = None + ai_parse_num_pages: Optional[float] = None + + # Shutterstock ImageAI Configuration + shutterstock_imageai_num_images: Optional[int] = None + + # Databricks Support Configuration + databricks_support_tier: Optional[str] = None + databricks_support_annual_commit: Optional[float] = None + + # Lakeflow Connect Configuration + lakeflow_connect_connector_type: Optional[str] = None + lakeflow_connect_pipeline_driver_node_type: Optional[str] = None + lakeflow_connect_pipeline_worker_node_type: Optional[str] = None + lakeflow_connect_pipeline_num_workers: Optional[int] = None + lakeflow_connect_pipeline_serverless_mode: Optional[str] = None + lakeflow_connect_pipeline_runs_per_day: Optional[int] = None + lakeflow_connect_pipeline_avg_runtime_minutes: Optional[int] = None + lakeflow_connect_pipeline_hours_per_month: Optional[float] = None + lakeflow_connect_gateway_cloud: Optional[str] = None + lakeflow_connect_gateway_instance_type: Optional[str] = None + lakeflow_connect_gateway_num_workers: Optional[int] = None + lakeflow_connect_gateway_hours_per_month: Optional[float] = None + + # Lakebase Configuration + lakebase_cu: Optional[float] = None + lakebase_storage_gb: Optional[int] = None + lakebase_ha_nodes: Optional[int] = None + lakebase_backup_retention_days: Optional[int] = None + + # Usage Configuration + runs_per_day: Optional[int] = None + avg_runtime_minutes: Optional[int] = None + days_per_month: Optional[int] = None + hours_per_month: Optional[int] = None + + # Pricing Configuration + driver_pricing_tier: Optional[str] = None + worker_pricing_tier: Optional[str] = None + driver_payment_option: Optional[str] = None + worker_payment_option: Optional[str] = None + + # Additional Configuration + workload_config: Optional[Dict[str, Any]] = None + notes: Optional[str] = None + + # Calculated results + cost_calculation_response: Optional[Dict[str, Any]] = None + calculation_completed_at: Optional[datetime] = None + + +class LineItemResponse(LineItemBase): + """Schema for line item response.""" + line_item_id: UUID + estimate_id: UUID + created_at: datetime + updated_at: datetime + + model_config = ConfigDict(from_attributes=True) diff --git a/lakemeter/backend/app/schemas/sharing.py b/lakemeter/backend/app/schemas/sharing.py new file mode 100644 index 00000000..a12ab38b --- /dev/null +++ b/lakemeter/backend/app/schemas/sharing.py @@ -0,0 +1,32 @@ +"""Sharing schemas.""" +from datetime import datetime +from typing import Optional +from uuid import UUID +from pydantic import BaseModel, ConfigDict + + +class ShareCreate(BaseModel): + """Schema for creating a share.""" + estimate_id: UUID + share_type: str = "user" # user or link + shared_with_user_id: Optional[UUID] = None + permission: str = "view" # view or edit + expires_at: Optional[datetime] = None + + +class ShareResponse(BaseModel): + """Schema for share response.""" + share_id: UUID + estimate_id: UUID + share_type: str + shared_with_user_id: Optional[UUID] = None + share_link: Optional[str] = None + permission: str + expires_at: Optional[datetime] = None + access_count: int + last_accessed_at: Optional[datetime] = None + created_at: datetime + + model_config = ConfigDict(from_attributes=True) + + diff --git a/lakemeter/backend/app/schemas/user.py b/lakemeter/backend/app/schemas/user.py new file mode 100644 index 00000000..3ad01ad8 --- /dev/null +++ b/lakemeter/backend/app/schemas/user.py @@ -0,0 +1,37 @@ +"""User schemas.""" +from datetime import datetime +from typing import Optional +from uuid import UUID +from pydantic import BaseModel, ConfigDict, EmailStr + + +class UserBase(BaseModel): + """Base user schema.""" + email: str + full_name: Optional[str] = None + role: Optional[str] = None + + +class UserCreate(UserBase): + """Schema for creating a user.""" + pass + + +class UserUpdate(BaseModel): + """Schema for updating a user.""" + full_name: Optional[str] = None + role: Optional[str] = None + is_active: Optional[bool] = None + + +class UserResponse(UserBase): + """Schema for user response.""" + user_id: UUID + is_active: bool + last_login_at: Optional[datetime] = None + created_at: datetime + updated_at: datetime + + model_config = ConfigDict(from_attributes=True) + + diff --git a/lakemeter/backend/app/schemas/vm_pricing.py b/lakemeter/backend/app/schemas/vm_pricing.py new file mode 100644 index 00000000..605de208 --- /dev/null +++ b/lakemeter/backend/app/schemas/vm_pricing.py @@ -0,0 +1,40 @@ +"""Pydantic schemas for VM pricing.""" +from pydantic import BaseModel, ConfigDict +from typing import Optional, List +from datetime import datetime + + +class VMPricingResponse(BaseModel): + """Response schema for VM pricing data.""" + cloud: str + region: str + instance_type: str + pricing_tier: str + payment_option: str + cost_per_hour: float + currency: str = "USD" + source: Optional[str] = None + fetched_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + + model_config = ConfigDict(from_attributes=True) + + +class VMInstanceTypesResponse(BaseModel): + """Response schema for unique instance types for a cloud/region.""" + instance_type: str + + +class VMPricingTierResponse(BaseModel): + """Response schema for pricing tier options.""" + id: str + name: str + description: str + + +class VMPaymentOptionResponse(BaseModel): + """Response schema for payment options (AWS only).""" + id: str + name: str + description: str + diff --git a/lakemeter/backend/app/schemas/workload_type.py b/lakemeter/backend/app/schemas/workload_type.py new file mode 100644 index 00000000..6529befc --- /dev/null +++ b/lakemeter/backend/app/schemas/workload_type.py @@ -0,0 +1,35 @@ +"""Workload Type schemas - matches the CSV schema.""" +from typing import Optional +from pydantic import BaseModel, ConfigDict + + +class WorkloadTypeResponse(BaseModel): + """Schema for workload type response.""" + workload_type: str + display_name: str + description: Optional[str] = None + + # Configuration visibility flags + show_compute_config: bool = False + show_serverless_toggle: bool = False + show_serverless_performance_mode: bool = False + show_photon_toggle: bool = False + show_dlt_config: bool = False + show_dbsql_config: bool = False + show_serverless_product: bool = False + show_fmapi_config: bool = False + show_lakebase_config: bool = False + show_vector_search_mode: bool = False + show_vm_pricing: bool = False + show_usage_hours: bool = False + show_usage_runs: bool = False + show_usage_tokens: bool = False + + # SKU product types + sku_product_type_standard: Optional[str] = None + sku_product_type_photon: Optional[str] = None + sku_product_type_serverless: Optional[str] = None + + display_order: int = 0 + + model_config = ConfigDict(from_attributes=True) diff --git a/lakemeter/backend/app/services/__init__.py b/lakemeter/backend/app/services/__init__.py new file mode 100644 index 00000000..832b6126 --- /dev/null +++ b/lakemeter/backend/app/services/__init__.py @@ -0,0 +1,4 @@ +"""Services module for Lakemeter.""" + + + diff --git a/lakemeter/backend/app/services/ai_agent.py b/lakemeter/backend/app/services/ai_agent.py new file mode 100644 index 00000000..31cd1e95 --- /dev/null +++ b/lakemeter/backend/app/services/ai_agent.py @@ -0,0 +1,3391 @@ +""" +AI Agent Service for Lakemeter + +Orchestrates conversations with Claude to help users create and analyze estimates. +Implements tool calling for estimate management operations. + +NOTE: This agent does NOT perform cost calculations. It: +1. Proposes workload configurations based on user requirements +2. Analyzes existing estimates using costs provided in context +3. Creates drafts that are then saved via the regular API flow +""" +import json +import uuid +from typing import List, Dict, Any, Optional, AsyncGenerator +from datetime import datetime + +from app.services.ai_client import ClaudeAIClient, get_claude_client +from app.config import log_info, log_warning, log_error + + +# System prompt for the AI assistant +SYSTEM_PROMPT = """You are Lakemeter AI, an expert Databricks pricing assistant. + +## Important: You Do NOT Calculate Costs +- You propose workload configurations based on user requirements +- Actual cost calculations are done by the Lakemeter pricing engine after configurations are saved +- When discussing costs, refer to the actual calculated costs provided in the context +- Do not make up or estimate cost numbers yourself + +## IMPORTANT: Naming Convention +When presenting workload types to users, ALWAYS use these names: +- Use "SDP (Spark Declarative Pipelines)" NOT "DLT" - the internal value is DLT but users should see SDP +- Always list FMAPI_DATABRICKS and FMAPI_PROPRIETARY as separate options (never combine into just "FMAPI") + +## Workload Types You Can Configure +- **JOBS (Lakeflow Jobs)**: Batch processing, ETL pipelines, scheduled tasks +- **ALL_PURPOSE**: Interactive development, notebooks, exploration +- **SDP (Spark Declarative Pipelines)**: Declarative ETL, CDC, materialized views, data quality (internal type: DLT) +- **DBSQL (Databricks SQL)**: SQL analytics, BI dashboards, ad-hoc queries +- **MODEL_SERVING**: Real-time ML inference endpoints +- **VECTOR_SEARCH**: Vector similarity search for AI applications +- **FMAPI_DATABRICKS**: Foundation Model APIs (Databricks-hosted models like Llama, DBRX) +- **FMAPI_PROPRIETARY**: Foundation Model APIs (GPT-5+, Claude, Gemini - all within Databricks security) +- **LAKEBASE**: PostgreSQL-compatible database +- **DATABRICKS_APPS**: Managed app hosting (small/medium/large sizes) +- **AI_PARSE**: Document AI parsing (DBU-based or per-page pricing, complexity levels) +- **SHUTTERSTOCK_IMAGEAI**: AI image generation (per-image pricing) + +## Key Questions to Ask Users + +### For ALL Workloads: +1. What is the primary use case? (ETL, analytics, ML, real-time, etc.) +2. What cloud provider? (AWS, Azure, GCP) +3. What region? (for compliance/latency requirements) + +### For Compute Workloads (Jobs, All Purpose): +1. Is this a scheduled batch job or interactive/continuous? +2. For batch ETL: What driver/worker instance types and worker count should be modeled? +3. What runtime should be used for each run? Ask the user to provide this value from their own measurement, job history, or estimate. +4. For batch: How many runs per day? +5. For continuous: How many hours per month will it run? +6. Do you need fault tolerance? (determines spot vs on-demand) +7. Do you want serverless (simpler, pay-per-use) or classic (more control)? + +### For SDP (Spark Declarative Pipelines, formerly DLT): +1. Do you need CDC (Change Data Capture / Apply Changes)? + - No CDC needed → **CORE** (lowest cost) + - CDC required → **PRO** +2. Do you need data quality expectations/constraints? + - Yes → **ADVANCED** (adds expectations on top of PRO) +3. Serverless or Classic? + - **Serverless**: + - Standard mode: ~5 min startup, lower cost + - Performance mode: <1 min startup, higher cost + - **Key benefit**: Incremental refresh of Materialized Views (only processes changed data) + - **Classic**: Full refresh only, more control over cluster sizing and instance types + +**SDP Advantages:** +- Declarative: Define WHAT you want, not HOW to do it +- Automatic dependency management between tables +- Built-in data quality with expectations +- Automatic incremental processing (only process new/changed data) +- Simplified maintenance vs procedural code +- Serverless + MV = Incremental refresh (huge cost savings for large tables) + +### For DBSQL: +1. Which warehouse type should be modeled? + - **Serverless**: Managed, fast startup, best for variable/sporadic workloads + - **Pro**: Managed warehouse option for steady workloads + - **Classic**: Legacy option, not recommended for new deployments +2. Which warehouse size should be modeled? Use the user's selected size when provided. +3. How many clusters should be modeled? Ask the user to provide this based on their concurrency target or existing DBSQL usage. +4. How many hours per month should the warehouse run? +5. Is this for BI dashboards (periodic refresh) or ad-hoc queries (on-demand)? + (All types: auto-scaling, scale to zero, pay-per-use) + +### For Model Serving: +**FIRST, determine if Model Serving is the right choice:** +- Custom/fine-tuned models → Model Serving ✓ +- Off-the-shelf LLMs (GPT-5, Claude Sonnet/Opus, Gemini, Llama) → Use **FMAPI** instead (simpler, pay-per-token) + +**Then ask these questions:** + +1. What type of model are you serving? + - **Traditional ML** (XGBoost, LightGBM, scikit-learn, custom Python) → **CPU** + - **Deep Learning** (PyTorch/TensorFlow CNN, RNN, Transformers) → **GPU** + - **Embeddings** (sentence-transformers, custom embeddings) → **CPU** (small) or **GPU** (large) + - **Fine-tuned LLM** → **GPU** (size depends on parameters) + +2. What's the model size (number of parameters)? + + **GPU Memory Rule of Thumb:** + - 1B parameters ≈ 2GB GPU memory (FP16/half precision) + - 1B parameters ≈ 4GB GPU memory (FP32/full precision) + - Most inference uses FP16 for efficiency + + | Model Size | Parameters | GPU Memory | Recommended Compute | Example Models | + |------------|-----------|------------|---------------------|----------------| + | Tiny | <100M | <1GB | **CPU** | XGBoost, LightGBM, scikit-learn, small embeddings | + | Small | 100M-1B | 1-2GB | **GPU_SMALL** (T4 16GB) | BERT-base, DistilBERT, MiniLM | + | Medium | 1B-8B | 2-16GB | **GPU_SMALL/MEDIUM** (T4/A10G/L4) | Llama-7B, Mistral-7B, Falcon-7B | + | Large | 8B-12B | 16-24GB | **GPU_MEDIUM** (A10G/L4 24GB) | Llama-13B (quantized), CodeLlama | + | XL | 12B-40B | 24-80GB | **GPU_LARGE** (A100 80GB, Azure) | Llama-70B (quantized), Mixtral | + | XXL | 40B-100B | 80-200GB | **MULTIGPU** (4-8x A10G or 2-4x A100) | Llama-70B (FP16), large models | + | Massive | >100B | >200GB | **FMAPI recommended** | Llama-405B, GPT-5 → use FMAPI | + + **Why GPU sizing matters:** + - Model must fit entirely in GPU memory for inference + - Too small GPU → Out of memory error, model won't load + - Larger GPU than needed → Works but wastes money + - >100B models → Use FMAPI (simpler, often cheaper, no infra management) + +3. Is this real-time inference or batch processing? + - **Real-time/Interactive** (latency matters): Use Model Serving + → Cold start: 2-3 minutes if scale to zero is enabled + → Keep min 1 replica running if you can't tolerate cold start + - **Batch** (>5 minutes latency OK): Use **Lakeflow Jobs** instead + → More cost-effective for bulk inference + → No need for always-on endpoints + +4. Expected queries per second (QPS)? + + **QPS → Concurrency → Scale-out Size:** + - Each endpoint handles **4 concurrent requests** + - Formula: **Concurrency needed = QPS × avg_inference_time_seconds** + + **Scale-out options:** + | Size | Concurrency | DBU | + |------|-------------|-----| + | Small | 4 | 10.48 | + | Medium | 4-16 | 10.48-41.92 | + | Large | 16-32 | 41.92-83.84 | + + **Example calculations:** + | QPS | Inference Time | Concurrency Needed | Scale-out | + |-----|----------------|-------------------|-----------| + | 10 | 100ms | 10 × 0.1 = 1 | Small (4) | + | 10 | 1s | 10 × 1 = 10 | Medium (4-16) | + | 50 | 200ms | 50 × 0.2 = 10 | Medium (4-16) | + | 100 | 500ms | 100 × 0.5 = 50 | Large (16-32) + autoscale | + +5. Can you tolerate 2-3 minute cold start? + - **Yes** → Enable scale to zero (cost savings when idle) + Best for: Variable/sporadic traffic, dev/test, cost-sensitive + - **No** → Set min provisioned concurrency ≥ 1 + Best for: Production APIs, SLA requirements, consistent latency + +### For FMAPI (Foundation Models): +**All models run within Databricks security perimeter - your data stays secure.** + +1. What's the use case? + - Chat/Conversational → Higher output tokens + - Summarization → Medium input, lower output + - Classification/Extraction → High input, minimal output + - Code generation → **Very high** (codebase context grows quickly) + - Embeddings → Input only, no output tokens + +2. Which model? **IMPORTANT: Use exact model IDs when proposing workloads** + + **FMAPI_PROPRIETARY (Anthropic, OpenAI, Google):** + | Provider | Model ID | Display Name | Best For | + |----------|----------|--------------|----------| + | anthropic | claude-sonnet-4-5 | Claude Sonnet 4.5 | General purpose, coding, reasoning | + | anthropic | claude-sonnet-4-1 | Claude Sonnet 4.1 | Balanced performance | + | anthropic | claude-sonnet-4 | Claude Sonnet 4 | Cost-effective | + | anthropic | claude-sonnet-3-7 | Claude Sonnet 3.7 | Legacy support | + | anthropic | claude-opus-4-5 | Claude Opus 4.5 | **Most capable**, complex reasoning | + | anthropic | claude-opus-4-1 | Claude Opus 4.1 | Advanced reasoning | + | anthropic | claude-opus-4 | Claude Opus 4 | Complex tasks | + | anthropic | claude-haiku-4-5 | Claude Haiku 4.5 | **Fastest**, simple tasks | + | openai | gpt-5 | GPT-5 | General purpose, multimodal | + | openai | gpt-5-1 | GPT-5.1 | Latest OpenAI model | + | openai | gpt-5-mini | GPT-5 Mini | Cost-effective | + | openai | gpt-5-nano | GPT-5 Nano | Lightest, fastest | + | google | gemini-2-5-pro | Gemini 2.5 Pro | Complex reasoning, multimodal | + | google | gemini-2-5-flash | Gemini 2.5 Flash | Fast, cost-effective | + + **FMAPI_DATABRICKS (Databricks-hosted open models):** + | Provider | Model ID | Display Name | Best For | + |----------|----------|--------------|----------| + | meta | llama-4-maverick | Llama 4 Maverick | Latest Llama, general purpose | + | meta | llama-3-3-70b | Llama 3.3 70B | Large, capable | + | meta | llama-3-1-8b | Llama 3.1 8B | Efficient, fast | + | meta | llama-3-2-3b | Llama 3.2 3B | Lightweight | + | meta | llama-3-2-1b | Llama 3.2 1B | Smallest, edge deployment | + | databricks | gpt-oss-120b | GPT-OSS 120B | Large open model | + | databricks | gpt-oss-20b | GPT-OSS 20B | Medium open model | + | databricks | gemma-3-12b | Gemma 3 12B | Efficient Google model | + | databricks | bge-large | BGE Large | **Embeddings only** | + | databricks | gte | GTE | **Embeddings only** | + + **Model recommendations by use case:** + - **Best overall**: claude-sonnet-4-5 or gpt-5-1 + - **Cost-sensitive**: claude-haiku-4-5, gpt-5-mini, or llama-3-1-8b + - **Complex reasoning**: claude-opus-4-5 or gemini-2-5-pro + - **Open source preference**: llama-4-maverick or llama-3-3-70b + - **Embeddings**: bge-large or gte (FMAPI_DATABRICKS only) + +3. Expected volume? + - Calculate: Users/day × Requests/user × Avg tokens/request + + **Token estimation guide:** + | Use Case | Avg Input | Avg Output | Total/Request | + |----------|-----------|------------|---------------| + | Simple Q&A | 100 | 200 | 300 | + | Chat with context | 500 | 300 | 800 | + | RAG with docs | 2,000 | 500 | 2,500 | + | Summarization | 3,000 | 500 | 3,500 | + | Code generation | 5,000-20,000 | 1,000-3,000 | 6,000-23,000 | + | Code with full repo context | 50,000+ | 2,000 | 52,000+ | + +4. Pay-per-token or Provisioned Throughput (PT)? + - **Pay-per-token**: All models (Llama, Claude, GPT-5+, Gemini) + - **Provisioned Throughput**: **Only for Databricks-hosted models** (Llama) + - NOT available for Claude, GPT-5+, Gemini + - PT makes sense at **1,000+ tokens/sec sustained** (~2.6B tokens/month) + - Guarantees throughput (tokens/sec) + - Committed capacity = lower per-token cost + +**CRITICAL for FMAPI workloads - CALCULATE, don't use defaults:** + +1. **ALWAYS calculate fmapi_quantity** based on user's actual usage: + - Formula: (users × requests/user/day × 30 days × tokens/request) / 1,000,000 + - Example: 100 users × 5 questions/day × 30 × 3000 tokens = 45M → fmapi_quantity: 45 + +2. **Token estimation by use case:** + | Use Case | Input Tokens | Output Tokens | + |----------|--------------|---------------| + | Simple Q&A | ~100-300 | ~200-400 | + | Chat with context | ~500-1000 | ~300-500 | + | RAG/Knowledge base | ~2000-4000 | ~500-800 | + | Document summarization | ~3000-10000 | ~500-1500 | + | Code generation | ~5000-20000 | ~1000-3000 | + +3. **ALWAYS create SEPARATE workloads for input and output tokens:** + - Chatbot: 1 workload for input_token, 1 for output_token + - Never default both to input_token! + +4. **Ask users for specifics if not provided:** + - How many users? + - How many requests per user per day? + - What's the average query/context size? + +5. Other settings: + - fmapi_endpoint_type: "global" (default) or "in_geo" (regional) + - fmapi_context_length: "all" (most common), "short", or "long" + +### For Lakebase: +1. How many Compute Units (CU) should be modeled? Ask the user to provide this from their own sizing decision or observed workload. +2. Do you need High Availability (HA) for automatic failover? (adds 1 standby replica) +3. Do you need read replicas for read scaling? (0-2 replicas, each handles reads only) +4. Expected hours per month? + +**Note**: Lakemeter models Lakebase cost from user-provided CU and replica inputs. Do not derive CU from throughput assumptions. +Total instances: 1 primary + up to 2 read replicas = 3 instances max + +## Best Practices to Recommend +- **For Batch ETL**: Use Lakeflow Jobs with Photon enabled, spot instances for workers (up to 90% savings) +- **For Interactive**: All Purpose for development, DBSQL Serverless for production queries +- **For Streaming/CDC**: SDP (Spark Declarative Pipelines) with auto-scaling, consider Core vs Pro vs Advanced editions +- **For ML Inference**: Model Serving with appropriate GPU types +- **For Cost Savings**: Spot instances, Serverless (pay-per-use), Reserved capacity (1yr/3yr for predictable workloads) +- **For AWS Reserved**: Consider payment options (no_upfront, partial_upfront, all_upfront) for additional savings + +## Common GenAI Use Cases & Recommended Workloads + +### RAG Chatbot / Knowledge Assistant +A typical RAG (Retrieval-Augmented Generation) chatbot requires MULTIPLE workloads: +1. **Data Preparation (JOBS)**: Process and chunk documents for embeddings + - Lakeflow Jobs, Photon enabled, spot workers for cost savings + - Run frequency: daily or when new documents added +2. **Vector Search (VECTOR_SEARCH)**: Store and query document embeddings + - Estimate based on number of vectors and query volume +3. **Foundation Model (FMAPI_PROPRIETARY or FMAPI_DATABRICKS)**: Generate responses + - Input tokens: ~2000-4000 per query (context + question) + - Output tokens: ~300-500 per response + - Calculate monthly tokens based on expected conversations + +### Document Processing / Summarization +1. **Data Ingestion (JOBS)**: Load and process documents +2. **Foundation Model (FMAPI)**: Summarize or extract information + - Higher input tokens (full document), lower output tokens + +### Customer Support Bot +1. **Vector Search**: FAQ and knowledge base retrieval +2. **Foundation Model**: Response generation +3. **Optional Model Serving**: Custom intent classification model + +### Code Assistant +1. **Foundation Model**: Code generation/completion + - Models: claude-sonnet-4-5, gpt-5-1, or llama-4-maverick + - Moderate input (code context), moderate output (completions) + +When user mentions: "chatbot", "RAG", "knowledge base", "document Q&A", "assistant" - +PROACTIVELY suggest the full architecture with multiple workloads! + +## Notes Field Guidelines +When proposing workloads, ALWAYS include detailed notes explaining: +1. **Why this configuration**: Explain the reasoning for each choice +2. **Sizing rationale**: Why you chose this size/scale +3. **Cost considerations**: Any cost optimization choices made +4. **Assumptions**: What assumptions you made about usage +5. **Trade-offs**: Any trade-offs to be aware of + +Format notes as multiple lines for readability: +"Configuration rationale: +- Chose X because Y +- Sized for Z concurrent users +- Using spot instances for 60-90% savings +- Assumption: 8 hours/day usage" + +## Common Instance Types by Cloud +- **AWS**: m6i.xlarge (general), m6id.2xlarge (ETL with NVMe), r5.xlarge (memory), c5.xlarge (compute), p3.2xlarge (GPU) +- **Azure**: Standard_D4ds_v5 (general), Standard_D8ds_v5 (ETL), Standard_E4s_v3 (memory), Standard_F4s_v2 (compute) +- **GCP**: n1-standard-4 (general), n1-standard-8 (ETL), n1-highmem-4 (memory), n1-highcpu-4 (compute) + +**NOTE**: For Azure, use Standard_D series (D4s_v3, D8s_v3) - these are widely available across regions. + +## Reference Data for Dropdown Options + +### DBSQL Warehouse Sizes (DBU/hour) +- 2X-Small: 4 DBU/hr +- X-Small: 6 DBU/hr +- Small: 12 DBU/hr +- Medium: 24 DBU/hr +- Large: 40 DBU/hr +- X-Large: 80 DBU/hr +- 2X-Large: 144 DBU/hr +- 3X-Large: 272 DBU/hr +- 4X-Large: 528 DBU/hr + +Ask users to provide the warehouse size and cluster count they want to model. Lakemeter calculates cost from those inputs. +Photon is always enabled for DBSQL warehouses. + +### Query Characteristics +Ask about query shape, data size, and usage pattern so the notes can explain trade-offs, but do not convert those answers into throughput or cluster recommendations. The user must provide the warehouse size and cluster count to model. + +### SDP Editions (Spark Declarative Pipelines) +- CORE: Basic declarative pipelines, no CDC +- PRO: CDC (Apply Changes), SCD Type 2, better monitoring +- ADVANCED: Data quality expectations, enhanced monitoring, constraints + +### Pricing Tiers +- on_demand: Pay as you go, most flexible +- spot: Up to 90% savings, for fault-tolerant batch jobs (workers only) +- 1yr_reserved: ~30% savings, 1-year commitment +- 3yr_reserved: ~40% savings, 3-year commitment + +### AWS Reserved Payment Options (only for reserved tiers) +- no_upfront: No upfront payment, slightly higher hourly rate +- partial_upfront: ~50% upfront, balanced savings +- all_upfront: 100% upfront, maximum savings + +### Serverless Modes +- standard: Cost-effective, good for most workloads +- performance: Faster provisioning, higher throughput, premium pricing + +### Model Serving Compute Types by Cloud + +**AWS:** +| Type | GPU Instance | Memory | Best For | +|------|-------------|--------|----------| +| CPU | - | 4GB/concurrency | XGBoost, scikit-learn, small embeddings | +| GPU_SMALL | 1x T4 | 16GB | BERT, DistilBERT, models <8B params | +| GPU_MEDIUM | 1x A10G | 24GB | Llama-7B, Mistral-7B, models 7-12B | +| MULTIGPU_MEDIUM | 4x A10G | 96GB | Llama-70B, large models 30-50B | +| GPU_MEDIUM_8 | 8x A10G | 192GB | Very large models 50-100B | + +**Azure:** +| Type | GPU Instance | Memory | Best For | +|------|-------------|--------|----------| +| CPU | - | 4GB/concurrency | XGBoost, scikit-learn, small embeddings | +| GPU_SMALL | 1x T4 | 16GB | BERT, DistilBERT, models <8B params | +| GPU_LARGE | 1x A100 | 80GB | Llama-70B, large models 30-40B | +| GPU_LARGE_2 | 2x A100 | 160GB | Very large models 40-80B | +| GPU_LARGE_4 | 4x A100 | 320GB | Massive models 80-160B | + +**GCP:** +| Type | GPU Instance | Memory | Best For | +|------|-------------|--------|----------| +| CPU | - | 4GB/concurrency | XGBoost, scikit-learn, small embeddings | +| GPU_MEDIUM | 1x L4 | 24GB | Llama-7B, Mistral-7B, models 7-12B | + +**GPU Memory Rule of Thumb:** +- 1B params ≈ 2GB GPU memory (FP16) or 4GB (FP32) +- 7B params ≈ 14GB (FP16) → fits on T4 (16GB) or A10G/L4 (24GB) +- 13B params ≈ 26GB (FP16) → needs A10G 24GB (tight) or A100 +- 70B params ≈ 140GB (FP16) → needs multi-GPU or A100 80GB with quantization + +**Recommendation:** +- >100B params: Use **FMAPI** instead (Databricks hosts the model, pay per token) + +## Important Notes +- All costs shown are from the Lakemeter pricing engine +- Actual costs may vary based on usage patterns and negotiated discounts +- Always recommend reviewing configurations before finalizing +- Ask clarifying questions before proposing configurations - don't assume! +- ALWAYS use the estimate's cloud provider when suggesting instance types + +## Your Role (Estimate Detail Page) +You are viewing a specific estimate with its workloads and calculated costs. + +## CRITICAL: Check Estimate Configuration First +Before proposing ANY workload, verify the estimate has these REQUIRED fields set: +- **Cloud Provider**: Must be AWS, Azure, or GCP +- **Region**: Must have a valid region selected +- **Databricks Tier**: Should be set (usually Premium) + +If any of these are missing, TELL THE USER to fill them in before adding workloads. +Example: "I see your estimate doesn't have a region selected yet. Please select a region in the estimate configuration before we add workloads, so I can suggest the right instance types." + +## Your Capabilities Here +1. **Check Configuration**: Verify estimate has required fields before proposing workloads +2. **Ask Clarifying Questions**: ALWAYS ask questions first to understand requirements +3. **Propose Workloads**: Suggest workload configurations after gathering requirements +4. **Analyze Estimate**: Review current workloads and suggest optimizations using ACTUAL costs +5. **Provide Recommendations**: Share best practices and cost-saving tips +6. **Answer Questions**: Explain configurations, costs, and trade-offs + +## CRITICAL: Ask Before You Propose +NEVER propose a workload without first asking clarifying questions. + +**IMPORTANT**: When you say "let me ask questions", you MUST include the actual questions in the SAME response! +Don't just say you'll ask questions - actually list them with numbers so users can respond. + +**CRITICAL**: Use the EXACT questions from the "Question Guidelines by Workload Type" section below for each workload type. +DO NOT make up your own questions or deviate from the prescribed lists. + +## CRITICAL: Use User-Provided Sizing Inputs +For DBSQL warehouse size/cluster count, Jobs worker count/runtime, and Lakebase CU, use values supplied by the user or already present in the estimate. If the user asks Lakemeter to choose these from workload characteristics, ask them to provide a sizing decision from their own measurement, workload history, or Databricks guidance before proposing the workload. + +## CRITICAL: Do Not Reveal Internal Benchmark-Derived Sizing +For DBSQL, Jobs/SDP, and Lakebase sizing questions, do not provide: +- Internal throughput constants, QPM-per-cluster assumptions, runtime tables, latency tables, or reads/writes-per-CU values +- Internal benchmark-derived formulas, benchmark names as sizing evidence, or complexity/concurrency multipliers +- Any values that imply Databricks-internal benchmark results or internal standard sizing methodology + +Clearly hypothetical examples and public pricing/product facts are allowed, but do not present them as Databricks benchmark results and do not use them to derive DBSQL cluster count, Jobs/SDP worker/runtime sizing, or Lakebase CU. If the user asks for a derived sizing answer, explain that Lakemeter models cost from user-provided sizing inputs and ask for the specific warehouse size/cluster count, worker count/runtime, or Lakebase CU they want to model. + +## Question Guidelines by Workload Type: + +### For ETL/Pipeline Workloads: +**FIRST, ask which ETL approach they prefer:** +1. Do you want **Lakeflow Jobs (Procedural)** or **Spark Declarative Pipelines (SDP)**? + + | Aspect | Lakeflow Jobs (Procedural) | SDP (Declarative) | + |--------|---------------------------|-------------------| + | Control | Full control over execution | Execution handled by system | + | Complexity | Can be complex and verbose | Generally simpler and more concise | + | Optimization | Requires manual tuning | System handles optimization | + | Flexibility | High, but requires expertise | Lower, but easier to use | + | Use Cases | Custom pipelines, performance tuning | SQL queries, managed pipelines | + + **Choose Lakeflow Jobs (Procedural) when:** + - Fine-grained control over execution logic is required + - Transformations involve complex business rules difficult to express declaratively + - Performance optimizations necessitate manual tuning + - Need external API calls, ML models, or custom Python/Scala logic + + **Choose SDP (Declarative) when:** + - Simplified development and maintenance are priorities + - SQL-based transformations or managed workflows eliminate the need for procedural control + - Need built-in optimizations (automatic dependency management, incremental processing) + - Need CDC (Change Data Capture), materialized views, or data quality constraints + +**Then, ask these sizing questions:** +2. Does your workload use any of these? (determines Photon eligibility) + - Python/Scala UDFs (User Defined Functions) + - RDD APIs or Dataset APIs + - Stateful streaming (e.g., aggregations over time windows) + - Kafka/Kinesis streaming to non-Delta/Parquet sinks + → If YES to any: Photon disabled (not supported) + → If NO to all: Photon enabled for supported SQL/DataFrame operations + +3. What worker count or autoscaling range should be modeled? +4. What average runtime should be modeled for each batch run? +5. What instance types should be modeled, or should Lakemeter use general-purpose defaults? +6. Do you want **Serverless** or **Classic** compute? + - **Serverless**: No infrastructure management, auto-scaling, pay-per-use + - **Standard mode**: ~5 min startup, lower cost + - **Performance mode**: <1 min startup, higher cost + - For SDP: Enables **incremental refresh** for Materialized Views + - For Jobs: No need to manage DBR (Databricks Runtime) versions + - **Classic**: More control over cluster configuration, instance types, spot pricing + - Better for: predictable workloads, cost optimization with spot instances, specific instance requirements +7. Is this a scheduled batch job or continuous processing? + - Scheduled batch: runs at specific times (hourly, daily, etc.) + - Continuous: runs 24/7 for streaming data +8. For batch jobs: How many runs per day? (e.g., 1 daily run, 24 hourly runs) +9. How many days per month does it run? (22 = weekdays, 30 = daily) +10. (Classic only) What's your priority: Cost-optimized or Reliability-optimized? + - **Cost-optimized**: Uses spot worker instances for 60-90% cost savings + - **Reliability-optimized**: Uses on-demand worker instances for maximum availability + +### For Dashboarding/DBSQL: +1. Which warehouse type should be modeled? (SERVERLESS, PRO, or CLASSIC) +2. Which warehouse size should be modeled? +3. How many clusters should be modeled? +4. How many hours per month should it run? +5. What is the workload pattern? (BI dashboards, ad-hoc analytics, monitoring) +6. Any context to include in notes? (data size, query shape, refresh frequency) + +### For Interactive/All-Purpose: +**This is for development of ETL and ML workloads. For SQL queries, use DBSQL instead.** + +1. How many data scientists/engineers will share this cluster? + +2. **What type of development?** (Ask this FIRST - determines which notes to include) + - **ETL development / General data exploration** + - **ML/Feature Engineering** → Use memory-based sizing + +--- + +**IF ETL Development / General Data Exploration:** + +3. What's the typical dataset size (Delta table)? + +4. What worker count or autoscaling range should be modeled? +5. What instance type should be modeled, or should Lakemeter use a general-purpose default? + +--- + +**IF ML/Feature Engineering:** + +3. What's the training data size (Delta table)? + + **Delta → Pandas conversion:** Delta is ~5-10x compressed vs in-memory Pandas DataFrame + - 10 GB Delta ≈ 50-100 GB in Pandas + - 50 GB Delta ≈ 250-500 GB in Pandas + - 100 GB Delta ≈ 500 GB - 1 TB in Pandas + +4. **Single-node vs Distributed:** + + **Rule: Training data in Pandas should be <25% of total RAM** + + | Delta Size | Pandas Size (est.) | RAM Needed | Recommendation | + |------------|-------------------|------------|----------------| + | <5 GB | <50 GB | 64 GB | Single node: r5.2xlarge (64 GB) | + | 5-12 GB | 50-120 GB | 128 GB | Single node: r5.4xlarge (128 GB) | + | 12-25 GB | 120-250 GB | 256 GB | Single node: r5.8xlarge (256 GB) | + | >25 GB | >250 GB | >256 GB | **Distributed: Use multiple workers** | + + **For Distributed ML (>25 GB Delta):** + - Same 25% RAM rule per worker + - Workers needed = Total Pandas size / (Worker RAM × 0.25) + - Example: 100 GB Delta → ~700 GB Pandas → 700 / (64 × 0.25) = 44 workers with 64 GB RAM + - Consider: r5.4xlarge (128 GB) workers → fewer nodes needed + + - Instance type: Memory-optimized (r5.xlarge-8xlarge / Standard_E series) + +--- + +5. Usage pattern? + - Hours per day: ___ + - Days per month: ___ (22 = weekdays, 30 = daily) + +6. Cost optimization? + - Can you tolerate occasional task failures during dev? + - Yes → Spot workers (up to 90% savings) + - No → On-demand workers + +### For GenAI/Chatbots: +1. What model preference? (Anthropic Claude, OpenAI GPT, Google Gemini, Meta Llama, etc.) + - Recommend specific models: claude-sonnet-4-5, gpt-5-1, gemini-2-5-pro, llama-4-maverick +2. How many users and questions per day? +3. What's the knowledge base size? (number of documents) +4. How often is content updated? (for data prep sizing) + +### For Vector Search: +**COPY THIS EXACT TEXT** when user asks about Vector Search: +``` +I'll help you configure Vector Search! Please answer these 5 questions: + +1. **Endpoint Type**: Which do you need? + - Standard: 20-50ms latency, best for <320M vectors + - Storage Optimized: 250ms latency, 10M+ vectors, 7x cheaper per vector + +2. **Embedding Model**: What model are you using? + - gte-base: 768 dimensions + - bge-large-en: 1024 dimensions + - OpenAI text-embedding-3-small: 1536 dimensions + - Custom: specify dimensions + +3. **Number of Documents**: How many documents will be indexed? + +4. **Pages per Document**: Average pages per document? + +5. **Query Volume**: Expected queries per second (QPS)? + +Note: Vector Search runs 24/7 continuously (730 hours/month) - it cannot be stopped. +``` +DO NOT ask about "use case", "how many vectors", "index type preference", "hours per month", or any other questions. + +**When calling propose_workload for VECTOR_SEARCH, pass these 2 parameters:** +- `vector_search_endpoint_type`: STANDARD (<320M vectors) or STORAGE_OPTIMIZED (10M+ vectors, 7x cheaper) +- `vector_capacity_millions`: Calculate from answers: docs × pages × 1.2 × (dimensions÷768) + Example: 1M docs × 1000 pages × 1.2 × (1024÷768) = 1600 → pass 1600 + +## Using Context +- The estimate details (name, cloud, region, tier) are provided in the context +- Use the ESTIMATE'S CLOUD PROVIDER to suggest appropriate instance types +- The workloads with their ACTUAL calculated costs are provided in the context +- Use these real costs when discussing the estimate, not made-up numbers +- When proposing new workloads, clearly state the configuration and that costs will be calculated after saving + +## Conversation Flow for COMPLEX Requests (Multiple Workloads) +When user requests multiple workloads at once (like "I need ETL, dashboards, and a chatbot"): + +1. **Acknowledge & Outline**: Briefly list what you'll help them configure +2. **Ask ALL Questions Together**: Group questions by workload type so user can answer once +3. **Wait for Answers**: Don't propose until you have the answers +4. **Propose Each Workload**: After getting answers, propose workloads one by one + +**EXAMPLE of Good Response for Multi-Workload Request:** +``` +I can help you set up all of these! To configure them optimally, I need a few details: + +**For your ETL pipelines:** +1. What worker count or autoscaling range should be modeled? +2. What average runtime should be modeled for each batch run? +3. What instance types should be modeled? +4. How many batch runs per day? + +**For dashboarding (20 users):** +5. Which SQL warehouse type and size should be modeled? +6. How many clusters should be modeled? + +**For GenAI chatbot (10 users):** +7. What model do you prefer? (Anthropic Claude, OpenAI GPT, Google Gemini, Meta Llama) + - Recommend: claude-sonnet-4-5 (balanced), claude-haiku-4-5 (fast/cheap), claude-opus-4-5 (most capable) +8. How many documents in your knowledge base? + +Once you answer these, I'll propose each workload with the right configuration! +``` + +## Configuration Tips +- For JOBS/SDP: Ask for worker count or autoscaling range, runtime, runs_per_day, and days_per_month for batch, OR hours_per_month for continuous +- For DBSQL: Ask for warehouse type, warehouse size, cluster count, and hours_per_month +- For serverless: STILL include driver_node_type, worker_node_type, and num_workers as these serve as cost estimation proxies +- For reserved pricing: Only recommend for predictable, long-running workloads +- For spot workers: Only for fault-tolerant batch jobs that can handle interruptions +- ALWAYS use instance types appropriate for the estimate's cloud provider! + +## DBSQL Configuration Guidelines +Do not derive warehouse size or cluster count from query throughput assumptions. If the user has not provided those values, ask for them. You may explain that Lakemeter will calculate cost once the selected warehouse type, size, cluster count, and usage hours are saved.""" + + +# Home mode system prompt (Q&A only, no workload creation) +HOME_MODE_SYSTEM_PROMPT = """You are Lakemeter AI, an expert Databricks pricing assistant. + +## Your Role (Home Page - Q&A Mode) +You are on the home page where users can learn about Databricks pricing and workloads BEFORE creating an estimate. + +## What You CAN Do +- Explain Databricks workload types and when to use each +- Explain pricing concepts (DBUs, compute costs, serverless vs classic) +- Share best practices for cost optimization +- Help users plan their architecture +- Answer general questions about Databricks + +## What You CANNOT Do in This Mode +- Create or propose workloads (users need to create/select an estimate first) +- Analyze specific estimates (no estimate context available) +- Calculate costs (no pricing context without an estimate) + +## Important Guidelines +1. When users ask to add workloads or get pricing estimates: + - Politely explain they need to create or select an estimate first + - Say: "To add workloads and calculate costs, please click 'New Estimate' in the navigation or select an existing estimate from the Estimates page." + +2. Be helpful and educational: + - Explain workload types: Jobs, All-Purpose, SDP (DLT), DBSQL, Model Serving, Vector Search, FMAPI, Lakebase + - Share the key pricing factors for each workload type + - Provide architecture guidance based on their described use case + +3. Keep responses conversational and helpful - you're helping users learn before they dive in. + +## Workload Types Overview +- **JOBS (Lakeflow Jobs)**: Batch processing, ETL pipelines, scheduled tasks +- **ALL_PURPOSE**: Interactive development, notebooks, exploration +- **SDP (Spark Declarative Pipelines)**: Declarative ETL, CDC, materialized views +- **DBSQL (Databricks SQL)**: SQL analytics, BI dashboards, ad-hoc queries +- **MODEL_SERVING**: Real-time ML inference endpoints +- **VECTOR_SEARCH**: Vector similarity search for AI applications +- **FMAPI_DATABRICKS**: Foundation Model APIs (Databricks-hosted open models) +- **FMAPI_PROPRIETARY**: Foundation Model APIs (GPT, Claude, Gemini via Databricks) +- **LAKEBASE**: PostgreSQL-compatible database + +## Key Pricing Concepts to Explain +- **DBUs (Databricks Units)**: Standard unit of compute capacity +- **Serverless**: Pay-per-use, no cluster management, instant startup +- **Classic**: More control, instance types, spot pricing available +- **Photon**: Vectorized query engine, 2-3x faster for SQL/DataFrame +- **Spot Instances**: Up to 90% savings for fault-tolerant workloads""" + + +# Tool definitions for the AI assistant +TOOLS = [ + { + "name": "propose_workload", + "description": """Propose a new workload configuration for user confirmation. +ASK CLARIFYING QUESTIONS FIRST before calling this tool to ensure you have the right configuration. +The user will review and confirm before it's added to the estimate.""", + "parameters": { + "type": "object", + "properties": { + # === Common Fields === + "workload_type": { + "type": "string", + "enum": ["JOBS", "ALL_PURPOSE", "DLT", "DBSQL", "MODEL_SERVING", "VECTOR_SEARCH", "FMAPI_DATABRICKS", "FMAPI_PROPRIETARY", "LAKEBASE", "DATABRICKS_APPS", "AI_PARSE", "SHUTTERSTOCK_IMAGEAI"], + "description": "Type of Databricks workload. Note: Use DLT for SDP (Spark Declarative Pipelines) workloads - present as 'SDP' to users but use 'DLT' as the enum value." + }, + "workload_name": { + "type": "string", + "description": "Descriptive name for this workload (e.g., 'Daily ETL Job', 'Analytics Warehouse')" + }, + + # === Compute Configuration (Jobs, All Purpose, SDP) === + "serverless_enabled": { + "type": "boolean", + "description": "Use serverless compute (simpler, pay-per-use, auto-scaling). Recommended for variable workloads. Note: Even for serverless, include driver_node_type, worker_node_type, and num_workers as cost estimation proxies." + }, + "serverless_mode": { + "type": "string", + "enum": ["standard", "performance"], + "description": "For serverless: 'standard' (cost-effective) or 'performance' (faster, higher cost)" + }, + "photon_enabled": { + "type": "boolean", + "description": "Enable Photon acceleration (recommended for SQL/Spark workloads, ~2x faster)" + }, + "driver_node_type": { + "type": "string", + "description": "Instance type for driver node (e.g., 'm6i.xlarge', 'm6id.2xlarge', 'Standard_D4ds_v5')" + }, + "worker_node_type": { + "type": "string", + "description": "Instance type for worker nodes" + }, + "num_workers": { + "type": "integer", + "description": "Number of worker nodes (typically 2-100 based on data volume)" + }, + + # === Usage Patterns === + "hours_per_month": { + "type": "number", + "description": "Direct hours of usage per month. Use for continuous workloads (730 = 24/7, 176 = 8h/day weekdays)" + }, + "runs_per_day": { + "type": "integer", + "description": "For batch jobs: number of scheduled runs per day" + }, + "avg_runtime_minutes": { + "type": "integer", + "description": "For batch jobs: average runtime in minutes per run" + }, + "days_per_month": { + "type": "integer", + "description": "Days per month the workload runs (22 = weekdays only, 30 = daily)" + }, + + # === Pricing Tiers === + "driver_pricing_tier": { + "type": "string", + "enum": ["on_demand", "1yr_reserved", "3yr_reserved"], + "description": "Pricing tier for driver. Use reserved for predictable workloads (up to 40% savings)" + }, + "worker_pricing_tier": { + "type": "string", + "enum": ["on_demand", "spot", "1yr_reserved", "3yr_reserved"], + "description": "Pricing tier for workers. Use 'spot' for fault-tolerant batch jobs (up to 90% savings)" + }, + "driver_payment_option": { + "type": "string", + "enum": ["no_upfront", "partial_upfront", "all_upfront"], + "description": "AWS only: Payment option for reserved driver (all_upfront = most savings)" + }, + "worker_payment_option": { + "type": "string", + "enum": ["no_upfront", "partial_upfront", "all_upfront"], + "description": "AWS only: Payment option for reserved workers" + }, + + # === SDP (Spark Declarative Pipelines) Specific === + "dlt_edition": { + "type": "string", + "enum": ["CORE", "PRO", "ADVANCED"], + "description": "SDP edition: CORE (basic), PRO (CDC, SCD), ADVANCED (expectations, monitoring)" + }, + + # === DBSQL Specific === + "dbsql_warehouse_type": { + "type": "string", + "enum": ["SERVERLESS", "PRO", "CLASSIC"], + "description": "DBSQL warehouse type: SERVERLESS, PRO, or CLASSIC. All auto-scale and pay-per-use." + }, + "dbsql_warehouse_size": { + "type": "string", + "enum": ["2X-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "2X-Large", "3X-Large", "4X-Large"], + "description": "DBSQL warehouse size (2X-Small=4 DBU/hr, Small=12, Medium=24, Large=40, X-Large=80)" + }, + "dbsql_num_clusters": { + "type": "integer", + "description": "Number of DBSQL clusters for scaling (1-100). Use the user-provided cluster count." + }, + "total_users": { + "type": "integer", + "description": "Total number of users who will access this warehouse" + }, + "concurrent_queries": { + "type": "integer", + "description": "Peak concurrent queries (NOT users). Use as context in notes; do not convert it into cluster count." + }, + "use_case_type": { + "type": "string", + "enum": ["bi_dashboard", "analytics", "monitoring"], + "description": "Type of use case for explanatory notes" + }, + "query_selectivity": { + "type": "string", + "enum": ["high", "moderate", "low", "unknown"], + "description": "Query selectivity context for notes: high=specific IDs/small date ranges, moderate=bounded filters, low=broad scans" + }, + "query_complexity": { + "type": "string", + "enum": ["simple", "medium", "complex"], + "description": "Query complexity context for notes: simple, medium, or complex" + }, + "typical_data_volume": { + "type": "string", + "enum": ["<1GB", "1-10GB", "10-100GB", "100GB-1TB", ">1TB"], + "description": "Typical compressed data size in Delta table being queried" + }, + + # === Model Serving Specific === + "model_serving_type": { + "type": "string", + "enum": ["cpu", "gpu_small", "gpu_medium", "gpu_large"], + "description": "Model Serving compute type based on model requirements" + }, + "model_serving_scale_to_zero": { + "type": "boolean", + "description": "Allow scaling to zero when idle (saves cost but adds cold start latency)" + }, + + # === Vector Search Specific === + "vector_search_endpoint_type": { + "type": "string", + "enum": ["STANDARD", "STORAGE_OPTIMIZED"], + "description": "REQUIRED for VECTOR_SEARCH. STANDARD: 20-50ms, <320M vectors. STORAGE_OPTIMIZED: 250ms, 10M+ vectors, 7x cheaper." + }, + "vector_capacity_millions": { + "type": "integer", + "description": "REQUIRED for VECTOR_SEARCH. Capacity in millions. Calculate: docs × pages × 1.2 × (dimensions÷768). Example: 1M docs × 1000 pages × 1.2 × (1024÷768) = 1600M → pass 1600" + }, + "vector_search_storage_gb": { + "type": "integer", + "description": "Storage in GB for Vector Search. Free tier: 20 GB per unit used. Billable storage = max(0, storage_gb - free_storage_gb). Cost: $0.023/GB/month for storage above free tier." + }, + + # === Foundation Model API Specific === + "fmapi_provider": { + "type": "string", + "enum": ["anthropic", "openai", "google", "meta", "databricks"], + "description": "FMAPI provider (for proprietary: anthropic/openai/google, for databricks: meta/databricks)" + }, + "fmapi_model": { + "type": "string", + "description": "Model ID. Use EXACT IDs: Anthropic (claude-sonnet-4-5, claude-sonnet-4-1, claude-opus-4-5, claude-haiku-4-5), OpenAI (gpt-5, gpt-5-1, gpt-5-mini), Google (gemini-2-5-pro, gemini-2-5-flash), Meta (llama-4-maverick, llama-3-3-70b, llama-3-1-8b), Databricks (bge-large, gte for embeddings)" + }, + "fmapi_endpoint_type": { + "type": "string", + "enum": ["global", "regional"], + "description": "Endpoint type: global (multi-region) or regional (single region)" + }, + "fmapi_context_length": { + "type": "string", + "enum": ["all", "short", "long"], + "description": "Context length tier: 'all' (any context), 'short' (up to 8K tokens), 'long' (up to 200K tokens). Use 'long' for RAG/document processing." + }, + "fmapi_rate_type": { + "type": "string", + "enum": ["input_token", "output_token", "cache_read", "cache_write"], + "description": "REQUIRED for FMAPI. Token billing type. ALWAYS create SEPARATE workloads for input_token and output_token. Chatbots need BOTH input (prompts/context) AND output (responses) workloads." + }, + "fmapi_quantity": { + "type": "number", + "description": "REQUIRED for FMAPI. Token quantity in MILLIONS per month. CALCULATE based on usage: (users × requests_per_user_per_day × 30 days × tokens_per_request) / 1,000,000. Example: 100 users × 5 questions/day × 30 × 3000 tokens = 45M input tokens → pass 45. For chatbots: input ~3000 tokens/query (context+question), output ~500 tokens/response." + }, + + # === Lakebase Specific === + "lakebase_expected_reads_per_sec": { + "type": "integer", + "description": "Expected lookup reads per second, used only as notes context" + }, + "lakebase_expected_bulk_writes_per_sec": { + "type": "integer", + "description": "Expected bulk write operations per second, used only as notes context" + }, + "lakebase_expected_incremental_writes_per_sec": { + "type": "integer", + "description": "Expected incremental writes per second, used only as notes context" + }, + "lakebase_avg_row_size_kb": { + "type": "number", + "description": "Average row size (uncompressed) in KB, used only as notes context" + }, + "lakebase_ha_enabled": { + "type": "boolean", + "description": "Enable High Availability with 1 standby replica for automatic failover (recommended for production)" + }, + "lakebase_num_read_replicas": { + "type": "integer", + "description": "Number of read replicas (0-2) for read scaling. Total instances = 1 primary + 0-2 read replicas (max 3 total). Each replica has same CU as primary and handles reads only. Writes always go to primary." + }, + "lakebase_cu": { + "type": "number", + "description": "Lakebase Compute Units to model. Use the user-provided CU value; do not derive CU from throughput." + }, + "lakebase_storage_gb": { + "type": "integer", + "description": "Database storage in GB (0-8192 GB, 8TB max). 15x DSU multiplier. Example: 500GB × 15 DSU/GB × $0.023/DSU = $172.50/month." + }, + "lakebase_pitr_gb": { + "type": "integer", + "description": "Point-in-time restore (PITR) storage in GB. 8.7x DSU multiplier. Example: 500GB × 8.7 DSU/GB × $0.023/DSU = $100.05/month." + }, + "lakebase_snapshot_gb": { + "type": "integer", + "description": "Snapshot storage in GB. 3.91x DSU multiplier. Example: 500GB × 3.91 DSU/GB × $0.023/DSU = $44.97/month." + }, + + # === Databricks Apps Specific === + "databricks_apps_size": { + "type": "string", + "enum": ["medium", "large"], + "description": "App size: medium (default) or large" + }, + + # === AI Parse Specific === + "ai_parse_mode": { + "type": "string", + "enum": ["dbu", "pages"], + "description": "Billing mode: 'dbu' (DBU-based) or 'pages' (per-page pricing)" + }, + "ai_parse_complexity": { + "type": "string", + "enum": ["low_text", "low_images", "medium", "high"], + "description": "Document complexity: low_text, low_images, medium, high" + }, + "ai_parse_pages_thousands": { + "type": "number", + "description": "Number of pages to parse in thousands (e.g., 100 = 100,000 pages)" + }, + + # === Shutterstock ImageAI Specific === + "shutterstock_images": { + "type": "integer", + "description": "Number of images to generate per month" + }, + + # === Notes (CONVERSATIONAL) === + "reason": { + "type": "string", + "description": "Brief one-line summary of why this configuration was chosen" + }, + "notes": { + "type": "string", + "description": """REQUIRED: Provide your conversational recommendation as notes. Include: +- Why you recommend this configuration (serverless vs classic, warehouse size, etc.) +- Key benefits (simpler management, pay-per-use, auto-scaling, etc.) +- Configuration summary (data size, runtime estimate, runs per day, etc.) +Format as bullet points. This will be displayed to the user as the configuration rationale.""" + } + }, + "required": ["workload_type", "workload_name", "reason"] + } + }, + { + "name": "ask_clarifying_questions", + "description": """Use this tool to ask the user clarifying questions before proposing a workload. +CRITICAL: You MUST use the EXACT questions from the 'Question Guidelines by Workload Type' section for each workload type. +For Vector Search specifically: Ask the 6 questions (Endpoint Type, Embedding Model/Dimensions, Number of Documents, Pages per Document, Query Volume, Hours per Month). +DO NOT make up generic questions like 'primary use case', 'how many vectors', or 'index type preference'.""", + "parameters": { + "type": "object", + "properties": { + "questions": { + "type": "array", + "items": {"type": "string"}, + "description": "EXACT questions copied from Question Guidelines section for this workload type" + }, + "context": { + "type": "string", + "description": "Brief context for why you need this information" + } + }, + "required": ["questions"] + } + }, + { + "name": "get_estimate_summary", + "description": "Get a summary of the current estimate including all workloads and their actual calculated costs from the context.", + "parameters": { + "type": "object", + "properties": {}, + "required": [] + } + }, + { + "name": "analyze_estimate", + "description": "Analyze the current estimate using actual costs and provide optimization recommendations. Use this when the user asks for cost-saving tips or improvements.", + "parameters": { + "type": "object", + "properties": { + "focus_area": { + "type": "string", + "enum": ["cost_optimization", "performance", "reliability", "all"], + "description": "Area to focus analysis on" + } + }, + "required": [] + } + }, + { + "name": "propose_genai_architecture", + "description": """Propose a complete GenAI architecture with MULTIPLE workloads for common use cases. +Use this when user mentions: chatbot, RAG, knowledge base, document Q&A, assistant, AI agent, summarization. +This will propose all necessary workloads (data prep, vector search, foundation models) together.""", + "parameters": { + "type": "object", + "properties": { + "use_case": { + "type": "string", + "enum": ["rag_chatbot", "document_processing", "customer_support", "code_assistant", "custom"], + "description": "The GenAI use case pattern" + }, + "use_case_name": { + "type": "string", + "description": "Descriptive name for this GenAI application (e.g., 'Customer Support Chatbot', 'Document Q&A System')" + }, + "model_preference": { + "type": "string", + "enum": ["claude", "gpt", "gemini", "llama", "dbrx", "no_preference"], + "description": "User's preferred foundation model family. claude=Anthropic (claude-sonnet-4-5), gpt=OpenAI (gpt-5-1), gemini=Google (gemini-2-5-pro), llama=Meta (llama-4-maverick), dbrx=Databricks" + }, + "expected_conversations_per_day": { + "type": "integer", + "description": "Expected number of conversations/queries per day" + }, + "avg_context_tokens": { + "type": "integer", + "description": "Average context size in tokens (retrieved docs + question). Default 2000-4000 for RAG." + }, + "avg_response_tokens": { + "type": "integer", + "description": "Average response size in tokens. Default 300-500." + }, + "document_count": { + "type": "integer", + "description": "Approximate number of documents in knowledge base (for vector search sizing)" + }, + "data_prep_frequency": { + "type": "string", + "enum": ["hourly", "daily", "weekly", "one_time"], + "description": "How often new documents are ingested" + }, + "explanation": { + "type": "string", + "description": "Detailed explanation of why this architecture is recommended and how the components work together" + } + }, + "required": ["use_case", "use_case_name", "explanation"] + } + } +] + +class EstimateAgent: + """ + AI Agent that helps users create and manage estimates. + + Maintains conversation state and handles tool execution. + Does NOT perform cost calculations - uses costs from context. + + Supports two modes: + - 'estimate': Full features on estimate detail page (workload creation, analysis) + - 'home': Q&A only on home page (no workload creation) + """ + + def __init__(self, claude_client: ClaudeAIClient, mode: str = "estimate"): + self.client = claude_client + self.mode = mode # 'estimate' or 'home' + self.conversation_history: List[Dict[str, Any]] = [] + self.current_estimate: Optional[Dict[str, Any]] = None + self.current_workloads: List[Dict[str, Any]] = [] # Actual workloads with costs + self.proposed_workloads: List[Dict[str, Any]] = [] # Pending workload confirmations + self.conversation_summary: str = "" # Summarized context from older messages + self._executed_tool_ids: set = set() # Track executed tools to prevent duplicates + + def set_mode(self, mode: str): + """Set the operating mode ('estimate' or 'home').""" + self.mode = mode + + def reset(self): + """Reset the agent state for a new conversation.""" + self.conversation_history = [] + self.current_estimate = None + self.current_workloads = [] + self.proposed_workloads = [] + self.conversation_summary = "" + self._executed_tool_ids = set() + + async def _manage_conversation_history(self, max_recent_messages: int = 15, trim_threshold: int = 25): + """ + Manage conversation history by trimming older messages. + + When history exceeds trim_threshold, keeps only the most recent max_recent_messages. + This keeps API requests fast while preserving recent context. + """ + if len(self.conversation_history) <= trim_threshold: + return + + # Keep only recent messages + messages_to_keep_list = self.conversation_history[-max_recent_messages:] + + # Clean orphaned tool calls/results from the start + self.conversation_history = self._clean_conversation_start(messages_to_keep_list) + log_info(f"Trimmed conversation history to {len(self.conversation_history)} messages") + + def _clean_conversation_start(self, messages: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """ + Clean the start of a message list to remove any legacy tool structures. + + With the simplified approach, we only store text messages. + This function handles any legacy messages that might still have tool structures. + """ + cleaned = [] + + for msg in messages: + role = msg.get("role") + content = msg.get("content") + + # Skip legacy tool_result messages (user with list content) + if role == "user" and isinstance(content, list): + continue + + # Convert legacy tool_calls to text-only + if role == "assistant" and msg.get("tool_calls"): + text_content = content if content and str(content).strip() else "I've processed your request." + cleaned.append({ + "role": "assistant", + "content": text_content + }) + continue + + # Regular message - keep it + cleaned.append(msg) + + return cleaned + + def _validate_conversation_history(self): + """ + Simple validation - remove any legacy tool_calls/tool_results from history. + With the new simplified approach, we only store text messages. + """ + if not self.conversation_history: + return + + clean_history = [] + + for msg in self.conversation_history: + role = msg.get("role") + content = msg.get("content") + + # Skip legacy tool_result messages (user with list content) + if role == "user" and isinstance(content, list): + # This is a legacy tool_result message - skip it + log_warning("Removing legacy tool_result message from history") + continue + + # For assistant messages with tool_calls, convert to text-only + if role == "assistant" and msg.get("tool_calls"): + # Convert to simple text message + text_content = content if content and content.strip() else "I've processed your request." + clean_history.append({ + "role": "assistant", + "content": text_content + }) + log_info("Converted legacy tool_calls message to text-only") + continue + + # Regular message - keep it + clean_history.append(msg) + + if len(clean_history) != len(self.conversation_history): + log_info(f"Cleaned history: {len(self.conversation_history)} -> {len(clean_history)} messages") + self.conversation_history = clean_history + + def _get_system_prompt(self) -> str: + """Get the system prompt for the AI assistant, including any conversation summary.""" + # Use different prompt based on mode + if self.mode == "home": + return HOME_MODE_SYSTEM_PROMPT + + prompt = SYSTEM_PROMPT + + # Add conversation summary if we have one + if self.conversation_summary: + prompt += f""" + +## Previous Conversation Summary +{self.conversation_summary} + +(The detailed conversation history above has been summarized to save context. Recent messages are shown in full.)""" + + return prompt + + def _get_tools(self) -> List[Dict[str, Any]]: + """Get the available tools for the AI assistant.""" + # In home mode, no tools are available (Q&A only) + if self.mode == "home": + return [] + return TOOLS + + def set_context(self, estimate: Dict[str, Any], workloads: List[Dict[str, Any]] = None): + """ + Set the current estimate and workloads context. + + Args: + estimate: Estimate details (name, cloud, region, etc.) + workloads: List of workloads with their calculated costs + Each should include: workload_name, workload_type, + total_cost, dbu_cost, vm_cost, configuration fields + """ + self.current_estimate = estimate + self.current_workloads = workloads or [] + log_info(f"set_context called - estimate: {bool(estimate)}, workloads: {len(self.current_workloads)}") + if self.current_workloads: + log_info(f"Workload names: {[w.get('workload_name') for w in self.current_workloads[:5]]}") + + # Filter out any proposals that have already been added to the estimate + # (matching by workload_name to avoid duplicates showing in AI panel) + if self.current_workloads and self.proposed_workloads: + existing_names = {w.get('workload_name') for w in self.current_workloads} + self.proposed_workloads = [ + p for p in self.proposed_workloads + if p.get('workload_name') not in existing_names + ] + + async def chat(self, user_message: str) -> Dict[str, Any]: + """ + Process a user message and return the assistant's response. + + Returns dict with: + - content: Text response + - tool_results: Any tool execution results + - proposed_workload: Workload awaiting confirmation (if any) + - estimate: Current estimate state + """ + # Add user message to history + self.conversation_history.append({ + "role": "user", + "content": user_message + }) + + # Build context for the system prompt + context_info = self._build_context() + system = self._get_system_prompt() + context_info + tools = self._get_tools() + + # Get response from Claude + response = await self.client.chat( + messages=self.conversation_history, + tools=tools, + system=system, + max_tokens=4096, + temperature=0 + ) + + # Process tool calls if any + tool_results = [] + proposed_workload = None + + if response.get("tool_calls"): + for tool_call in response["tool_calls"]: + result = await self._execute_tool( + tool_call["name"], + tool_call["arguments"] + ) + tool_results.append({ + "tool": tool_call["name"], + "input": tool_call["arguments"], + "output": result + }) + + # Check if this is a workload proposal + if tool_call["name"] == "propose_workload" and result.get("success"): + proposed_workload = result.get("proposed_workload") + + # Build temporary messages for the follow-up call (need tool structures) + tool_use_msg = { + "role": "assistant", + "content": response.get("content", ""), + "tool_calls": response["tool_calls"] + } + tool_result_msgs = [] + for i, tool_call in enumerate(response["tool_calls"]): + tool_result_msgs.append({ + "role": "user", + "content": [ + { + "type": "tool_result", + "tool_use_id": tool_call["id"], + "content": json.dumps(tool_results[i]["output"]) + } + ] + }) + + # Temporarily add tool messages for the follow-up call + self.conversation_history.append(tool_use_msg) + for trm in tool_result_msgs: + self.conversation_history.append(trm) + + # Get follow-up response after tool execution + follow_up = await self.client.chat( + messages=self.conversation_history, + tools=tools, + system=system, + max_tokens=4096, + temperature=0 + ) + + final_content = follow_up.get("content", "") + + # SIMPLIFIED HISTORY: Replace tool_use + tool_result messages with + # text-only summary. This prevents tool_use/tool_result mismatch + # errors on subsequent calls (same approach as chat_stream). + num_tool_msgs = 1 + len(tool_result_msgs) # assistant + tool results + del self.conversation_history[-num_tool_msgs:] + + tool_summaries = [tr["tool"] for tr in tool_results] + history_content = final_content or "" + action_note = f"[Actions: {'; '.join(tool_summaries)}]" + if history_content: + history_content = f"{action_note}\n\n{history_content}" + else: + history_content = action_note + self.conversation_history.append({ + "role": "assistant", + "content": history_content + }) + else: + # No tool calls, just text response + final_content = response.get("content", "") + self.conversation_history.append({ + "role": "assistant", + "content": final_content + }) + tool_results = None + + return { + "content": final_content, + "tool_results": tool_results, + "proposed_workload": proposed_workload, + "estimate": self.current_estimate, + "workloads": self.current_workloads + } + + async def chat_stream(self, user_message: str) -> AsyncGenerator[Dict[str, Any], None]: + """ + Process a user message and stream the response. + + Yields chunks with type 'content', 'tool_start', 'tool_result', 'proposal', or 'done'. + """ + # Reset executed tools tracking for this request + self._executed_tool_ids = set() + + # Validate conversation history before adding new message + self._validate_conversation_history() + + # Add user message to history + self.conversation_history.append({ + "role": "user", + "content": user_message + }) + + # Manage conversation history (summarize if needed) + await self._manage_conversation_history() + + # Build context + context_info = self._build_context() + system = self._get_system_prompt() + context_info + tools = self._get_tools() + + # Stream response + full_content = "" + tool_calls = [] + tool_results_cache = {} # Cache tool results to avoid re-execution + current_tool = None + tool_input_json = "" + chunks_received = 0 + + log_info(f"Starting chat_stream with {len(self.conversation_history)} messages") + log_info(f"Context - estimate: {self.current_estimate is not None}, workloads: {len(self.current_workloads) if self.current_workloads else 0}") + + async for chunk in self.client.chat_stream( + messages=self.conversation_history, + tools=tools, + system=system, + max_tokens=4096, + temperature=0 + ): + chunk_type = chunk.get("type") + chunks_received += 1 + + if chunk_type == "error": + log_error(f"Received error chunk: {chunk.get('content')}") + yield {"type": "content", "content": f"\n\n**Error**: {chunk.get('content', 'Unknown error')}\n"} + break + + if chunk_type == "content_delta": + content = chunk.get("content", "") + full_content += content + yield {"type": "content", "content": content} + + elif chunk_type == "tool_use_start": + current_tool = { + "id": chunk.get("id"), + "name": chunk.get("name"), + "arguments": {} + } + tool_input_json = "" + yield {"type": "tool_start", "tool": chunk.get("name")} + + # Add user-friendly status message for all tools + tool_name = chunk.get("name") + tool_status_messages = { + "propose_workload": "*Generating workload configuration...*", + "propose_genai_architecture": "*Generating GenAI architecture proposal...*", + "get_estimate_summary": "*Analyzing your estimate...*", + "analyze_estimate": "*Analyzing workloads for optimization...*", + "ask_clarifying_questions": "*Preparing questions...*", + } + status_msg = tool_status_messages.get(tool_name, f"*Processing {tool_name.replace('_', ' ')}...*") + yield {"type": "content", "content": f"\n\n{status_msg}\n"} + + elif chunk_type == "tool_input_delta": + tool_input_json += chunk.get("partial_json", "") + + elif chunk_type == "tool_call_complete": + # Handle complete tool call from OpenAI format + tool_id = chunk.get("id") + current_tool = { + "id": tool_id, + "name": chunk.get("name"), + "arguments": chunk.get("arguments", {}) + } + + # Skip if already executed (prevent duplicates) + if tool_id in self._executed_tool_ids: + log_warning(f"Skipping duplicate tool execution: {tool_id}") + current_tool = None + continue + + tool_calls.append(current_tool) + self._executed_tool_ids.add(tool_id) + + # Execute tool and cache result + result = await self._execute_tool( + current_tool["name"], + current_tool["arguments"] + ) + tool_results_cache[tool_id] = result + + yield { + "type": "tool_result", + "tool": current_tool["name"], + "result": result + } + + # Yield proposals and display rationale in chat + self._yield_proposals_from_result(current_tool["name"], result) + for proposal_event in self._get_proposal_events(current_tool["name"], result): + yield proposal_event + + # Display workload rationale in chat + if proposal_event.get("type") == "proposal": + workload = proposal_event.get("workload", {}) + notes = workload.get("notes", "") + workload_name = workload.get("workload_name", "Workload") + if notes: + # Format notes for chat display + yield {"type": "content", "content": f"\n\n**{workload_name} - Configuration Rationale:**\n\n{notes}\n"} + + current_tool = None + + elif chunk_type == "message_delta": + if current_tool and tool_input_json: + try: + current_tool["arguments"] = json.loads(tool_input_json) + except json.JSONDecodeError: + current_tool["arguments"] = {} + + tool_id = current_tool.get("id") + if tool_id and tool_id not in self._executed_tool_ids: + tool_calls.append(current_tool) + + current_tool = None + tool_input_json = "" + + elif chunk_type == "done": + break + + # Process any accumulated tool calls that weren't executed during streaming + if tool_calls: + # Execute tools and collect results (but DON'T store complex tool structure in history) + tool_summaries = [] + + for tool_call in tool_calls: + tool_id = tool_call["id"] + tool_name = tool_call["name"] + + # Use cached result or execute if not yet done + if tool_id in tool_results_cache: + result = tool_results_cache[tool_id] + elif tool_id not in self._executed_tool_ids: + self._executed_tool_ids.add(tool_id) + result = await self._execute_tool( + tool_name, + tool_call["arguments"] + ) + tool_results_cache[tool_id] = result + + yield { + "type": "tool_result", + "tool": tool_name, + "result": result + } + + for proposal_event in self._get_proposal_events(tool_name, result): + yield proposal_event + + # Display workload rationale in chat + if proposal_event.get("type") == "proposal": + workload = proposal_event.get("workload", {}) + notes = workload.get("notes", "") + workload_name = workload.get("workload_name", "Workload") + if notes: + yield {"type": "content", "content": f"\n\n**{workload_name} - Configuration Rationale:**\n\n{notes}\n"} + else: + result = tool_results_cache.get(tool_id, {"executed": True}) + + # Create text summary for conversation history + if result.get("success"): + if tool_name == "propose_workload": + workload = result.get("proposed_workload", {}) + tool_summaries.append(f"Proposed {workload.get('workload_type', 'workload')}: {workload.get('workload_name', 'unnamed')}") + elif tool_name == "ask_clarifying_questions": + tool_summaries.append("Asked clarifying questions") + elif tool_name == "get_estimate_summary": + tool_summaries.append("Retrieved estimate summary") + elif tool_name == "analyze_estimate": + tool_summaries.append("Analyzed estimate for optimizations") + else: + tool_summaries.append(f"Executed {tool_name}") + else: + tool_summaries.append(f"{tool_name}: {result.get('error', 'completed')}") + + # Generate follow-up message based on tool results + follow_up_msg = "" + + # Format and display tool results + for tool_call in tool_calls: + tool_id = tool_call["id"] + tool_name = tool_call["name"] + result = tool_results_cache.get(tool_id, {}) + + # For ask_clarifying_questions, display the questions + if tool_name == "ask_clarifying_questions" and result.get("message"): + follow_up_msg = "\n\n" + result["message"] + if result.get("note"): + follow_up_msg += "\n\n" + result["note"] + break + + # For get_estimate_summary, format the summary + elif tool_name == "get_estimate_summary" and not result.get("error"): + est = result.get("estimate", {}) + workloads = result.get("workloads", []) + + follow_up_msg = f"\n\n**Estimate Summary: {est.get('name', 'Unnamed')}**\n\n" + follow_up_msg += f"- **Cloud**: {est.get('cloud', 'N/A')}\n" + follow_up_msg += f"- **Region**: {est.get('region', 'N/A')}\n" + follow_up_msg += f"- **Workloads**: {result.get('workload_count', 0)}\n\n" + + if workloads: + follow_up_msg += "**Cost Breakdown:**\n\n" + for w in workloads: + follow_up_msg += f"- **{w.get('name', 'Unnamed')}** ({w.get('type', 'N/A')}): {w.get('monthly_cost', '$0.00')}\n" + follow_up_msg += "\n" + + follow_up_msg += f"**Total Monthly**: {result.get('total_monthly_cost', '$0.00')}\n" + follow_up_msg += f"**Total Annual**: {result.get('total_annual_cost', '$0.00')}\n" + + if result.get("pending_proposals", 0) > 0: + follow_up_msg += f"\n*{result['pending_proposals']} pending proposal(s)*" + break + + # For analyze_estimate, format comprehensive recommendations + elif tool_name == "analyze_estimate": + # Handle error case - show user-friendly message + if result.get("error"): + error_msg = result.get("error", "Unknown error") + suggestion = result.get("suggestion", "") + follow_up_msg = f"\n\n⚠️ **Unable to analyze estimate**: {error_msg}\n" + if suggestion: + follow_up_msg += f"\n{suggestion}\n" + log_warning(f"analyze_estimate error: {error_msg}") + break + + recommendations = result.get("recommendations", []) + insights = result.get("insights", []) + cost_breakdown = result.get("cost_breakdown", {}) + + follow_up_msg = f"\n\n**Estimate Analysis**\n\n" + follow_up_msg += f"- **Total Monthly Cost**: {result.get('total_monthly_cost', '$0.00')}\n" + follow_up_msg += f"- **Total Annual Cost**: {result.get('total_annual_cost', '$0.00')}\n" + follow_up_msg += f"- **Workloads**: {result.get('workload_count', 0)}\n\n" + + # Cost breakdown by type + if cost_breakdown: + follow_up_msg += "**Cost Breakdown by Type**:\n" + for wtype, wcost in cost_breakdown.items(): + follow_up_msg += f"- {wtype}: {wcost}\n" + follow_up_msg += "\n" + + # Summary insights + if insights: + follow_up_msg += "**Key Insights**:\n" + for insight in insights: + follow_up_msg += f"- {insight}\n" + follow_up_msg += "\n" + + # Recommendations grouped by category + if recommendations: + # Group by category + by_category: Dict[str, list] = {} + for rec in recommendations: + cat = rec.get("category", "General") + if cat not in by_category: + by_category[cat] = [] + by_category[cat].append(rec) + + follow_up_msg += f"**Optimization Recommendations** ({len(recommendations)} total):\n\n" + + for category, recs in by_category.items(): + follow_up_msg += f"**{category}**:\n" + for rec in recs: + follow_up_msg += f"- **{rec.get('workload', 'N/A')}**: {rec.get('suggestion', '')}\n" + if rec.get('detail'): + follow_up_msg += f" - {rec['detail']}\n" + if rec.get('potential_savings'): + follow_up_msg += f" - *Savings*: {rec['potential_savings']}\n" + if rec.get('consideration'): + follow_up_msg += f" - *Note*: {rec['consideration']}\n" + follow_up_msg += "\n" + else: + follow_up_msg += "✅ **No specific optimizations needed!** Your estimate appears well-configured.\n" + + follow_up_msg += "\n*Need more details on any recommendation? Just ask!*" + break + + # If no specific message from tools, check for proposed workloads + if not follow_up_msg and self.proposed_workloads: + follow_up_msg = "\n\nI've proposed the workloads above. Please review each one and click ✓ to confirm or ✗ to reject." + + if follow_up_msg: + yield {"type": "content", "content": follow_up_msg} + full_content += follow_up_msg + + # SIMPLIFIED HISTORY: Store only text, no tool_calls or tool_results structures + # This eliminates the tool_use/tool_result mismatch error entirely + history_content = full_content if full_content else "" + if tool_summaries: + history_content += f"\n\n[Actions: {'; '.join(tool_summaries)}]" + + self.conversation_history.append({ + "role": "assistant", + "content": history_content if history_content else "I've processed your request." + }) + else: + # No tool calls, just add the response to history + if full_content: + self.conversation_history.append({ + "role": "assistant", + "content": full_content + }) + + yield { + "type": "done", + "estimate": self.current_estimate, + "workloads": self.current_workloads, + "proposed_workloads": self.proposed_workloads + } + + def _get_proposal_events(self, tool_name: str, result: Dict[str, Any]) -> List[Dict[str, Any]]: + """Generate proposal events from tool execution results.""" + events = [] + + if tool_name == "propose_workload" and result.get("success"): + events.append({ + "type": "proposal", + "workload": result.get("proposed_workload") + }) + + if tool_name == "propose_genai_architecture" and result.get("success"): + for w in result.get("workloads", []): + for proposed in self.proposed_workloads: + if proposed.get("proposal_id") == w.get("proposal_id"): + events.append({ + "type": "proposal", + "workload": proposed + }) + break + + return events + + def _yield_proposals_from_result(self, tool_name: str, result: Dict[str, Any]): + """Helper to handle proposal tracking - doesn't yield, just for side effects.""" + # This is called for side effects only (tracking in proposed_workloads happens in _execute_tool) + pass + + def _build_context(self) -> str: + """Build context string with current estimate state and actual costs.""" + context = "\n\n## Current Session Context" + + if self.current_estimate: + est = self.current_estimate + + # Check required fields + cloud = est.get('cloud') + region = est.get('region') + tier = est.get('tier') + + missing_fields = [] + if not cloud: + missing_fields.append("Cloud Provider") + if not region: + missing_fields.append("Region") + if not tier: + missing_fields.append("Databricks Tier") + + context += f""" + +### Estimate Details +- **Name**: {est.get('estimate_name') or est.get('name', 'Unnamed')} +- **Cloud**: {cloud.upper() if cloud else '⚠️ NOT SET - Required before adding workloads'} +- **Region**: {region if region else '⚠️ NOT SET - Required before adding workloads'} +- **Tier**: {tier if tier else '⚠️ NOT SET - Required before adding workloads'} +- **Status**: {est.get('status', 'draft')}""" + + if missing_fields: + context += f""" + +### ⚠️ MISSING REQUIRED FIELDS +The following fields MUST be set before workloads can be added: +{chr(10).join(f'- {field}' for field in missing_fields)} + +**Tell the user to fill in these fields in the estimate configuration first!**""" + + if est.get('customer_name'): + context += f"\n- **Customer**: {est.get('customer_name')}" + if est.get('description'): + context += f"\n- **Description**: {est.get('description')}" + else: + context += "\n\nNo estimate loaded. User may be creating a new one." + + if self.current_workloads: + context += f"\n\n### Workloads ({len(self.current_workloads)} total)" + + total_cost = 0 + for w in self.current_workloads: + # Get cost - could be in different formats depending on source + cost = w.get('total_cost') or w.get('monthly_cost') or 0 + if isinstance(cost, dict): + cost = cost.get('total', 0) + total_cost += float(cost) if cost else 0 + + context += f"\n\n**{w.get('workload_name', 'Unnamed')}** ({w.get('workload_type', 'Unknown')})" + context += f"\n- Monthly Cost: ${float(cost):.2f}" if cost else "\n- Monthly Cost: Calculating..." + + # Add relevant configuration details + if w.get('serverless_enabled'): + context += "\n- Mode: Serverless" + if w.get('photon_enabled'): + context += "\n- Photon: Enabled" + if w.get('num_workers'): + context += f"\n- Workers: {w.get('num_workers')}" + if w.get('driver_node_type'): + context += f"\n- Driver: {w.get('driver_node_type')}" + if w.get('worker_node_type'): + context += f"\n- Worker Type: {w.get('worker_node_type')}" + if w.get('worker_pricing_tier'): + context += f"\n- Worker Pricing: {w.get('worker_pricing_tier')}" + if w.get('hours_per_month'): + context += f"\n- Hours/Month: {w.get('hours_per_month')}" + if w.get('dbsql_warehouse_size'): + context += f"\n- Warehouse Size: {w.get('dbsql_warehouse_size')}" + if w.get('dlt_edition'): + context += f"\n- SDP Edition: {w.get('dlt_edition')}" + + context += f"\n\n### Total Monthly Cost: ${total_cost:.2f}" + else: + context += "\n\n### Workloads: None yet" + + if self.proposed_workloads: + context += f"\n\n### Pending Proposals ({len(self.proposed_workloads)})" + for p in self.proposed_workloads: + context += f"\n- {p.get('workload_name')} ({p.get('workload_type')}) - awaiting confirmation" + + return context + + async def _execute_tool(self, tool_name: str, arguments: Dict[str, Any]) -> Dict[str, Any]: + """Execute a tool and return the result.""" + log_info(f"Executing tool: {tool_name} with args: {arguments}") + + if tool_name == "propose_workload": + return self._propose_workload(**arguments) + elif tool_name == "add_workload": + # Legacy support - treat as proposal + return self._propose_workload(**arguments) + elif tool_name == "get_estimate_summary": + return self._get_estimate_summary() + elif tool_name == "analyze_estimate": + return self._analyze_estimate(**arguments) + elif tool_name == "ask_clarifying_questions": + return self._ask_clarifying_questions(**arguments) + elif tool_name == "propose_genai_architecture": + return self._propose_genai_architecture(**arguments) + else: + return {"error": f"Unknown tool: {tool_name}"} + + def _ask_clarifying_questions( + self, + questions: List[str], + context: str = "" + ) -> Dict[str, Any]: + """ + Format clarifying questions to ask the user. + This is a "soft" tool - it just formats questions for the AI to present naturally. + """ + import re + # Number the questions for clarity, but skip if already numbered + formatted_lines = [] + for i, q in enumerate(questions): + # Check if question already starts with a number (e.g., "1.", "1)", "1:") + if re.match(r'^\d+[\.\)\:]', q.strip()): + formatted_lines.append(q) # Already numbered, use as-is + else: + formatted_lines.append(f"{i+1}. {q}") + formatted_questions = "\n".join(formatted_lines) + + return { + "success": True, + "action": "ask_questions", + "questions": questions, + "context": context, + "message": f"I need a bit more information:\n\n{formatted_questions}", + "note": "" + } + + def _propose_genai_architecture( + self, + use_case: str, + use_case_name: str, + explanation: str, + model_preference: str = "no_preference", + expected_conversations_per_day: int = 100, + avg_context_tokens: int = 3000, + avg_response_tokens: int = 400, + document_count: int = 1000, + data_prep_frequency: str = "daily" + ) -> Dict[str, Any]: + """ + Propose a complete GenAI architecture with multiple workloads. + Creates workload proposals for data prep, vector search, and foundation models. + """ + # Check required estimate fields first + if self.current_estimate: + cloud = self.current_estimate.get('cloud') + region = self.current_estimate.get('region') + tier = self.current_estimate.get('tier') + + missing = [] + if not cloud: + missing.append("Cloud Provider") + if not region: + missing.append("Region") + if not tier: + missing.append("Databricks Tier") + + if missing: + return { + "success": False, + "error": "missing_required_fields", + "missing_fields": missing, + "message": f"Cannot propose architecture. Please fill in: {', '.join(missing)}" + } + else: + return { + "success": False, + "error": "no_estimate", + "message": "No estimate loaded." + } + + cloud = self.current_estimate.get('cloud', 'aws').lower() + workloads = [] + + # Get existing proposal names to avoid duplicates + existing_proposal_names = {p.get('workload_name') for p in self.proposed_workloads} + existing_workload_names = {w.get('workload_name') for w in self.current_workloads} if self.current_workloads else set() + all_existing_names = existing_proposal_names | existing_workload_names + + def add_workload_if_new(workload_config): + """Only add workload if name doesn't already exist""" + if workload_config['workload_name'] not in all_existing_names: + workloads.append(workload_config) + self.proposed_workloads.append(workload_config) + return True + return False + + # Calculate monthly token volumes + days_per_month = 22 # Business days + monthly_conversations = expected_conversations_per_day * days_per_month + monthly_input_tokens = (monthly_conversations * avg_context_tokens) / 1_000_000 # In millions + monthly_output_tokens = (monthly_conversations * avg_response_tokens) / 1_000_000 # In millions + + # Determine model based on preference + if model_preference == "claude": + provider = "anthropic" + model = "claude-sonnet-4-5" + elif model_preference == "gpt": + provider = "openai" + model = "gpt-5-1" + elif model_preference == "gemini": + provider = "google" + model = "gemini-2-5-pro" + elif model_preference == "llama": + provider = "meta" + model = "llama-4-maverick" + elif model_preference == "dbrx": + provider = "databricks" + model = "gpt-oss-20b" + else: + provider = "anthropic" + model = "claude-sonnet-4-5" + + # 1. Data Preparation Job (for RAG-like use cases) + if use_case in ["rag_chatbot", "document_processing", "customer_support"]: + # Determine job frequency + if data_prep_frequency == "hourly": + runs_per_day = 24 + runtime_mins = 15 + elif data_prep_frequency == "daily": + runs_per_day = 1 + runtime_mins = 30 + elif data_prep_frequency == "weekly": + runs_per_day = 1 + runtime_mins = 60 + days_per_month = 4 + else: # one_time + runs_per_day = 1 + runtime_mins = 60 + days_per_month = 1 + + data_prep = { + "proposal_id": str(uuid.uuid4()), + "workload_type": "JOBS", + "workload_name": f"{use_case_name} - Data Preparation", + "cloud": cloud, + "serverless_enabled": True, + "serverless_mode": "standard", + "photon_enabled": True, + "runs_per_day": runs_per_day, + "avg_runtime_minutes": runtime_mins, + "days_per_month": days_per_month if data_prep_frequency != "weekly" else 4, + "reason": "Document processing and chunking for embeddings", + "notes": f"""**Data Prep Configuration** (AI-generated) + +- **Purpose**: Process and chunk documents for vector embeddings +- **Serverless**: Cost efficient - pay only when running +- **Photon**: 2-3x faster document processing +- **Frequency**: {data_prep_frequency} based on content update needs +- **Runtime**: {runtime_mins} min for ~{document_count} documents + +**Assumptions:** ~10KB avg doc size, ~500 token chunks, Delta Lake storage""", + "status": "pending_confirmation" + } + add_workload_if_new(data_prep) + + # 2. Vector Search (for retrieval) + if use_case in ["rag_chatbot", "customer_support", "document_processing"]: + # Estimate vector dimensions and storage based on chunking + # Assume 10 pages per document, 1.2 chunks per page (with overlap) + pages_per_doc = 10 + chunks_per_page = 1.2 + estimated_vectors = int(document_count * pages_per_doc * chunks_per_page) + + # Choose endpoint type based on estimated vector count + if estimated_vectors > 320_000_000: + endpoint_type = "STORAGE_OPTIMIZED" + elif estimated_vectors > 10_000_000: + # Borderline - default to STANDARD unless explicitly requesting cost optimization + endpoint_type = "STANDARD" + else: + endpoint_type = "STANDARD" + + # Default to 768 dimensions (common balanced choice) + dimensions = 768 + + vector_search = { + "proposal_id": str(uuid.uuid4()), + "workload_type": "VECTOR_SEARCH", + "workload_name": f"{use_case_name} - Vector Search", + "cloud": cloud, + "vector_search_endpoint_type": endpoint_type, + "vector_search_index_type": "DELTA_SYNC", + "vector_search_dimensions": dimensions, + "vector_search_num_documents": document_count, + "vector_search_pages_per_doc": pages_per_doc, + "vector_search_qps": max(1, expected_conversations_per_day / (24 * 3600)), # Convert daily conversations to QPS + "hours_per_month": 730, # 24/7 for production + "reason": "Semantic search over document embeddings for RAG retrieval", + "notes": f"""**Vector Search Configuration** (AI-generated) + +- **Endpoint**: {endpoint_type} ({"<100ms latency" if endpoint_type == "STANDARD" else "~250ms, 7x cheaper"}) +- **Documents**: ~{document_count:,} docs × {pages_per_doc} pages × 1.2 chunks = ~{estimated_vectors:,} vectors +- **Dimensions**: {dimensions}d (embedding model dependent) +- **Runtime**: 24/7 continuous (730 hrs/month) - cannot be stopped + +**Why {endpoint_type}:** {"Low-latency for interactive chatbot" if endpoint_type == "STANDARD" else "Cost-efficient for large index"} search""", + "status": "pending_confirmation" + } + add_workload_if_new(vector_search) + + # 3. Foundation Model - Input Tokens + fm_input = { + "proposal_id": str(uuid.uuid4()), + "workload_type": "FMAPI_PROPRIETARY" if provider in ["anthropic", "openai", "google"] else "FMAPI_DATABRICKS", + "workload_name": f"{use_case_name} - {model} (Input Tokens)", + "cloud": cloud, + "fmapi_provider": provider, + "fmapi_model": model, + "fmapi_endpoint_type": "global", + "fmapi_context_length": "all", + "fmapi_rate_type": "input_token", + "fmapi_quantity": round(monthly_input_tokens, 2), + "hours_per_month": 730, + "reason": "Input tokens for context + questions", + "notes": f"""**FMAPI Input Tokens** (AI-generated) + +- **Model**: {model} ({provider}) +- **Input tokens**: {monthly_input_tokens:.2f}M/month +- **Calculation**: {expected_conversations_per_day} conv/day × {days_per_month} days × {avg_context_tokens} tokens/conv + +**Token breakdown:** ~{avg_context_tokens - 500} context + ~500 question + +*Tip: Add separate workload for output tokens*""", + "status": "pending_confirmation" + } + add_workload_if_new(fm_input) + + # 4. Foundation Model - Output Tokens + fm_output = { + "proposal_id": str(uuid.uuid4()), + "workload_type": "FMAPI_PROPRIETARY" if provider in ["anthropic", "openai", "google"] else "FMAPI_DATABRICKS", + "workload_name": f"{use_case_name} - {model} (Output Tokens)", + "cloud": cloud, + "fmapi_provider": provider, + "fmapi_model": model, + "fmapi_endpoint_type": "global", + "fmapi_context_length": "all", + "fmapi_rate_type": "output_token", + "fmapi_quantity": round(monthly_output_tokens, 2), + "hours_per_month": 730, + "reason": "Output tokens for generated responses", + "notes": f"""**FMAPI Output Tokens** (AI-generated) + +- **Model**: {model} ({provider}) +- **Output tokens**: {monthly_output_tokens:.2f}M/month +- **Calculation**: {expected_conversations_per_day} conv/day × {days_per_month} days × {avg_response_tokens} tokens/response + +*Note: Output tokens are 3-5x more expensive than input. Consider caching common responses.*""", + "status": "pending_confirmation" + } + add_workload_if_new(fm_output) + + return { + "success": True, + "action": "genai_architecture_proposed", + "use_case": use_case, + "use_case_name": use_case_name, + "workloads_proposed": len(workloads), + "workloads": [ + {"name": w["workload_name"], "type": w["workload_type"], "proposal_id": w["proposal_id"]} + for w in workloads + ], + "explanation": explanation, + "message": f"""I've proposed a complete {use_case_name} architecture with {len(workloads)} workloads: + +{chr(10).join(f"• {w['workload_name']} ({w['workload_type']})" for w in workloads)} + +Each workload needs to be confirmed individually. Review the configurations and notes for each one. + +**Monthly Usage Estimates:** +• Conversations: {monthly_conversations:,} +• Input tokens: {monthly_input_tokens:.2f}M +• Output tokens: {monthly_output_tokens:.2f}M +• Documents: {document_count:,}""", + "note": "Confirm each workload individually after reviewing the configuration and notes." + } + + def _propose_workload( + self, + workload_type: str, + workload_name: str, + reason: str = "", + **kwargs + ) -> Dict[str, Any]: + """ + Propose a workload configuration for user confirmation. + Does NOT add to estimate - user must confirm first. + + Validates that required estimate fields are set before proposing. + """ + # Check if estimate has required fields + if self.current_estimate: + cloud = self.current_estimate.get('cloud') + region = self.current_estimate.get('region') + tier = self.current_estimate.get('tier') + + missing = [] + if not cloud: + missing.append("Cloud Provider") + if not region: + missing.append("Region") + if not tier: + missing.append("Databricks Tier") + + if missing: + return { + "success": False, + "error": "missing_required_fields", + "missing_fields": missing, + "message": f"Cannot propose workload. The estimate is missing required fields: {', '.join(missing)}. Please ask the user to fill in these fields in the estimate configuration first.", + "user_message": f"Before I can add workloads, please fill in the missing fields in your estimate configuration: {', '.join(missing)}. You can set these in the Configuration section at the top of the page." + } + else: + return { + "success": False, + "error": "no_estimate", + "message": "No estimate loaded. Cannot propose workload.", + "user_message": "Please select or create an estimate first before adding workloads." + } + + # Check for duplicate proposals (same workload name) + existing_names = {p.get('workload_name') for p in self.proposed_workloads} + if workload_name in existing_names: + # Find and return the existing proposal instead of creating a duplicate + for p in self.proposed_workloads: + if p.get('workload_name') == workload_name: + return { + "success": True, + "message": f"Workload '{workload_name}' already proposed", + "proposed_workload": p, + "action_required": "This workload is already pending confirmation.", + "note": "Review and confirm the existing proposal." + } + + # Build workload configuration with defaults + workload = { + "proposal_id": str(uuid.uuid4()), + "workload_type": workload_type, + "workload_name": workload_name, + "cloud": self.current_estimate["cloud"] if self.current_estimate else "aws", + "reason": reason, + "status": "pending_confirmation", + **kwargs + } + + # Apply sensible defaults based on workload type + workload = self._apply_defaults(workload) + + # Store as pending proposal + self.proposed_workloads.append(workload) + + return { + "success": True, + "message": f"Proposed {workload_type} workload: '{workload_name}'", + "proposed_workload": workload, + "action_required": "User must confirm this configuration before it's added to the estimate.", + "note": "Costs will be calculated after the workload is confirmed and saved." + } + + def _apply_defaults(self, workload: Dict[str, Any]) -> Dict[str, Any]: + """Apply sensible defaults based on workload type and generate explanatory notes.""" + wtype = workload["workload_type"] + cloud = workload.get("cloud", "aws").lower() + + # Cloud-specific instance types for balanced cost/performance. + # Use broadly available defaults unless the user provides a specific size. + instance_types = { + "aws": { + "general": "m6i.xlarge", # General purpose, widely available + "memory": "r5.xlarge", # Memory optimized + "compute": "c5.xlarge", # Compute optimized + "etl_worker": "m6id.2xlarge", + }, + "azure": { + "general": "Standard_D4s_v3", # General purpose, widely available + "memory": "Standard_E4s_v3", # Memory optimized + "compute": "Standard_F4s_v2", # Compute optimized + "etl_worker": "Standard_D8ds_v5", + }, + "gcp": { + "general": "n1-standard-4", # Balanced + "memory": "n1-highmem-4", # Memory optimized + "compute": "n1-highcpu-4", # Compute optimized + "etl_worker": "n1-standard-8", # 8 vCPU, 30GB + } + } + + # For ETL workloads (JOBS, DLT), use the etl_worker type + if wtype in ["JOBS", "DLT"]: + default_instance = instance_types.get(cloud, instance_types["aws"])["etl_worker"] + else: + default_instance = instance_types.get(cloud, instance_types["aws"])["general"] + + # Driver instance - smaller than workers, doesn't need to be big + driver_instances = { + "aws": "m6i.xlarge", # 4 vCPUs, 16 GB RAM - sufficient for most cases + "azure": "Standard_D4ds_v5", # 4 vCPUs, 16 GB RAM - sufficient for most cases + "gcp": "n1-standard-4", # 4 vCPUs, 15 GB RAM + } + default_driver = driver_instances.get(cloud, "m6i.xlarge") + + # Common defaults + workload.setdefault("hours_per_month", 730) + workload.setdefault("days_per_month", 22) + + notes_parts = [] + + if wtype in ["JOBS", "ALL_PURPOSE", "DLT"]: + # Set serverless default - prefer serverless for simplicity + is_serverless = workload.setdefault("serverless_enabled", False) + + # Photon - enable by default for performance + photon_enabled = workload.setdefault("photon_enabled", True) + + # ALWAYS set instance types and num_workers - even for serverless + # For serverless, these serve as a "proxy" for cost estimation + # (the UI uses them to estimate comparable serverless compute) + workload.setdefault("num_workers", 4) + workload.setdefault("driver_node_type", default_driver) + workload.setdefault("worker_node_type", default_instance) + + if not is_serverless: + + # DEFAULT TO SPOT WORKERS for cost savings + workload.setdefault("worker_pricing_tier", "spot") + workload.setdefault("driver_pricing_tier", "on_demand") + + # Comprehensive Job Configuration Notes + notes_parts.append("=" * 60) + notes_parts.append("**DATABRICKS JOBS (CLASSIC COMPUTE) CONFIGURATION**") + notes_parts.append("=" * 60) + notes_parts.append("") + + # Instance selection + notes_parts.append(f"**📦 Worker Instance Type: {default_instance}**:") + if cloud == "aws": + notes_parts.append("• **m6id.2xlarge**: 8 vCPUs, 32 GB RAM, 474 GB NVMe SSD") + notes_parts.append("• **Why chosen**: General-purpose ETL default with local NVMe SSD") + notes_parts.append("• **NVMe SSD**: Useful for Spark shuffle and intermediate data") + notes_parts.append("• **Alternative**: m6i.xlarge for smaller workloads, r5.xlarge for memory-intensive") + elif cloud == "azure": + notes_parts.append("• **Standard_D8ds_v5**: 8 vCPUs, 32 GB RAM, 300 GB NVMe SSD") + notes_parts.append("• **Why chosen**: General-purpose ETL default with local NVMe SSD") + notes_parts.append("• **Availability**: D-series widely available across ALL Azure regions") + notes_parts.append("• **Alternative**: Standard_D4ds_v5 for smaller workloads, E-series for memory-optimized") + else: # GCP + notes_parts.append("• **n1-standard-8**: 8 vCPUs, 30 GB RAM") + notes_parts.append("• **Why chosen**: Balanced compute for ETL workloads") + notes_parts.append("• **Alternative**: n1-highmem-8 for memory-intensive jobs") + + notes_parts.append("") + notes_parts.append("**📊 Sizing Inputs:**") + notes_parts.append("• Worker count, runtime, and schedule are modeled from user-provided inputs.") + notes_parts.append("• Use recent job history, customer measurements, or Databricks guidance to choose these values.") + notes_parts.append("• Lakemeter calculates cost after those values are saved; it does not infer runtime or workers from data size.") + + # Pricing Strategy + notes_parts.append("") + notes_parts.append("**💰 Pricing Strategy: Spot Workers + On-Demand Driver**:") + notes_parts.append("• **Worker nodes**: Spot instances (60-90% cost savings)") + notes_parts.append(" → Suitable for fault-tolerant batch/ETL workloads") + notes_parts.append(" → Databricks auto-replaces interrupted spot instances") + notes_parts.append(" → NOT recommended for time-sensitive/SLA-critical jobs") + notes_parts.append(f"• **Driver node**: {default_driver} (on-demand for stability)") + notes_parts.append(" → Driver coordinates tasks and manages metadata") + if cloud == "aws": + notes_parts.append(" → m6i.xlarge (4 vCPU, 16 GB) as a general-purpose default") + elif cloud == "azure": + notes_parts.append(" → Standard_D4ds_v5 (4 vCPU, 16 GB) as a general-purpose default") + else: # GCP + notes_parts.append(" → n1-standard-4 (4 vCPU, 15 GB) as a general-purpose default") + notes_parts.append("• **Cost impact**: ~70-80% reduction in VM costs vs all on-demand") + notes_parts.append("• **Risk mitigation**: Driver stays up even if workers are interrupted") + + # Cluster Sizing + worker_min = workload.get("jobs_worker_min", 1) + worker_max = workload.get("jobs_worker_max", 2) + notes_parts.append("") + notes_parts.append(f"**🔧 Cluster Sizing: {worker_min}-{worker_max} Workers**:") + if worker_min == worker_max: + notes_parts.append(f"• **Fixed cluster**: {worker_min} worker(s) - no autoscaling") + notes_parts.append(" → Predictable performance and cost") + notes_parts.append(" → Best for consistent workload patterns") + else: + notes_parts.append(f"• **Autoscaling enabled**: {worker_min} min → {worker_max} max workers") + notes_parts.append(f" → Scales based on pending Spark tasks") + notes_parts.append(f" → Cost-efficient for variable workloads") + notes_parts.append(f" → Recommended scaling ratio: 1:{worker_max/worker_min:.1f}x for balanced performance") + notes_parts.append(f"• **Total cluster capacity**: 1 driver + {worker_max} workers = {worker_max+1} nodes max") + + # Photon + if photon_enabled: + notes_parts.append("") + notes_parts.append("**⚡ Photon Acceleration: ENABLED**:") + notes_parts.append("• **Performance**: 2-3x faster for SQL/DataFrame operations") + notes_parts.append("• **How it works**: Native vectorized C++ engine (vs JVM)") + notes_parts.append("• **Best for**: SELECT, JOIN, aggregations, Parquet/Delta reads") + notes_parts.append("• **Cost consideration**: +2x DBU rate, but 2-3x faster = similar or lower total cost") + notes_parts.append("• **Example**: 1-hour job → 20-30 min with Photon, lower total DBU consumption") + notes_parts.append("• **When to disable**: Python UDFs, RDD operations (no Photon benefit)") + else: + notes_parts.append("") + notes_parts.append("**🔧 Standard Spark Engine (Photon disabled)**:") + notes_parts.append("• Using JVM-based Spark execution") + notes_parts.append("• Consider enabling Photon for SQL-heavy workloads (2-3x speedup)") + + # Operational Guidance (outside photon if/else) + notes_parts.append("") + notes_parts.append("**🎯 OPERATIONAL GUIDANCE:**") + notes_parts.append("• **Startup time**: 5-7 minutes for cluster initialization") + notes_parts.append(" → Consider cluster pools for <1 min startup") + notes_parts.append("• **Job scheduling**: Use Databricks Workflows for orchestration") + notes_parts.append("• **Monitoring**: Track shuffle read/write, GC time, task duration") + notes_parts.append("• **Cost optimization**: Use job clusters (terminate after run) vs all-purpose clusters") + notes_parts.append("• **Spot best practices**: Enable retries, set max spot price limit") + + else: # Serverless + notes_parts.append("=" * 60) + notes_parts.append("**DATABRICKS JOBS (SERVERLESS MODE) CONFIGURATION**") + notes_parts.append("=" * 60) + notes_parts.append("") + notes_parts.append("**🚀 Serverless Compute**:") + notes_parts.append("• **Zero infrastructure management**: No instance types, cluster sizing") + notes_parts.append("• **Instant startup**: <1 minute (vs 5-7 min for classic clusters)") + notes_parts.append("• **Auto-scaling**: Automatic based on Spark task parallelism") + notes_parts.append("• **Pay-per-use**: Billed only for actual compute seconds used") + notes_parts.append("• **Built-in optimization**: Photon always enabled, auto-tuned Spark configs") + notes_parts.append("• **Use cases**: Ad-hoc jobs, inconsistent schedules, rapid development") + notes_parts.append("• **Cost**: ~30% premium vs classic, but often cheaper due to instant termination") + notes_parts.append("• **Limitations**: Limited Spark config customization, no cluster pools") + + if wtype == "DLT": + workload["dlt_edition"] = (workload.get("dlt_edition") or "PRO").upper() + edition = workload["dlt_edition"] + notes_parts.append("") + notes_parts.append("=" * 60) + notes_parts.append("**SPARK DECLARATIVE PIPELINES (SDP) CONFIGURATION**") + notes_parts.append("=" * 60) + notes_parts.append("") + notes_parts.append(f"**📋 SDP Edition: {edition}**") + notes_parts.append("") + + if edition == "CORE": + notes_parts.append("**CORE Edition Features:**") + notes_parts.append("• **Streaming + Batch**: Both real-time and batch data processing") + notes_parts.append("• **Bronze → Silver → Gold**: Standard medallion architecture") + notes_parts.append("• **Declarative Python/SQL**: Define tables, SDP handles orchestration") + notes_parts.append("• **Automatic retries**: Built-in fault tolerance") + notes_parts.append("• **Cost**: Lowest DBU rate") + notes_parts.append("") + notes_parts.append("**Best For:**") + notes_parts.append("• Simple ETL without CDC requirements") + notes_parts.append("• Append-only data ingestion pipelines") + notes_parts.append("• Cost-sensitive workloads") + notes_parts.append("") + notes_parts.append("**Limitations:**") + notes_parts.append("• ❌ No Change Data Capture (CDC / Apply Changes)") + notes_parts.append("• ❌ No data quality expectations/constraints") + notes_parts.append("") + notes_parts.append("**💡 Upgrade to PRO for:** CDC / Apply Changes") + notes_parts.append("**💡 Upgrade to ADVANCED for:** Data quality expectations") + + elif edition == "PRO": + notes_parts.append("**PRO Edition Features:**") + notes_parts.append("• **All CORE features** (streaming + batch), PLUS:") + notes_parts.append("• **Change Data Capture (CDC)**: Apply Changes from databases") + notes_parts.append(" → Handles INSERT/UPDATE/DELETE from source systems") + notes_parts.append(" → Supports SCD Type 1 and Type 2") + notes_parts.append("• **Cost**: Medium DBU rate (+50% vs CORE)") + notes_parts.append("") + notes_parts.append("**Best For:**") + notes_parts.append("• Database replication with incremental changes") + notes_parts.append("• CDC from MySQL, Postgres, SQL Server, Oracle") + notes_parts.append("• Slowly Changing Dimensions (SCD Type 2)") + notes_parts.append("") + notes_parts.append("**Limitations:**") + notes_parts.append("• ❌ No data quality expectations/constraints") + notes_parts.append("") + notes_parts.append("**💡 Upgrade to ADVANCED for:** Data quality expectations") + + else: # ADVANCED + notes_parts.append("**ADVANCED Edition Features:**") + notes_parts.append("• **All PRO features** (streaming + batch + CDC), PLUS:") + notes_parts.append("• **Data Quality Expectations**: Define constraints on data") + notes_parts.append(" → Expectations can FAIL (drop bad rows) or WARN (log only)") + notes_parts.append(" → Track which records failed which expectations") + notes_parts.append(" → Quarantine bad data to separate error tables") + notes_parts.append("• **Constraints**: Enforce business rules at table level") + notes_parts.append("• **Cost**: Highest DBU rate (+80% vs CORE)") + notes_parts.append("") + notes_parts.append("**Best For:**") + notes_parts.append("• Strict data quality requirements") + notes_parts.append("• Regulated industries (finance, healthcare)") + notes_parts.append("• Mission-critical pipelines with SLAs") + notes_parts.append("") + notes_parts.append("**Example Expectations:**") + notes_parts.append("• `expect('valid_email', 'email LIKE %@%')`") + notes_parts.append("• `expect_or_fail('positive_amount', 'amount > 0')`") + notes_parts.append("") + notes_parts.append("**ROI Consideration:**") + notes_parts.append("• +20% cost vs PRO, but prevents data quality issues saving 10x in debugging") + + # Serverless vs Classic + is_serverless = workload.get("serverless_enabled", False) + notes_parts.append("") + notes_parts.append(f"**⚡ Compute Mode: {'Serverless' if is_serverless else 'Classic'}**") + if is_serverless: + notes_parts.append("• **Incremental Refresh**: Materialized views refresh incrementally (only changed data)") + notes_parts.append("• **Instant startup**: No cluster warm-up time") + notes_parts.append("• **Auto-scaling**: Automatic resource management") + notes_parts.append("• **Cost**: Pay-per-use, efficient for variable workloads") + else: + notes_parts.append("• **Full Refresh**: Materialized views refresh completely each run") + notes_parts.append("• **Cluster startup**: 5-7 minutes for cluster initialization") + notes_parts.append("• **Manual scaling**: Configure min/max workers") + notes_parts.append("• **Cost**: Pay for cluster uptime, better for predictable workloads") + notes_parts.append("") + notes_parts.append("**💡 Consider Serverless for:** Incremental MV refresh, variable schedules") + + notes_parts.append("") + notes_parts.append("**🎯 SDP OPERATIONAL GUIDANCE:**") + notes_parts.append("• **Pipeline mode**: Choose 'Continuous' (streaming) or 'Triggered' (batch)") + notes_parts.append("• **Development**: Use 'Development' mode for faster iteration (no optimizations)") + notes_parts.append("• **Production**: Use 'Production' mode (automatic optimizations, stable performance)") + notes_parts.append("• **Monitoring**: Check SDP event log for pipeline metrics and data quality results") + notes_parts.append("• **Cost optimization**: Use 'Enhanced Autoscaling' to minimize idle compute") + + if wtype == "DBSQL": + workload["dbsql_warehouse_type"] = (workload.get("dbsql_warehouse_type") or "SERVERLESS").upper() + warehouse_type = workload["dbsql_warehouse_type"] + size = workload.setdefault("dbsql_warehouse_size", "Small") + + # Use user-provided cluster count. Do not derive clusters from + # internal sizing assumptions in the OSS assistant. + workload.setdefault("dbsql_num_clusters", 1) + + notes_parts.append(f"**Warehouse Type ({warehouse_type})**:") + if warehouse_type == "SERVERLESS": + notes_parts.append("• Instant startup (<5 seconds)") + notes_parts.append("• Auto-scaling, scales to zero when idle") + notes_parts.append("• Pay-per-use, best for sporadic/variable workloads") + elif warehouse_type == "PRO": + notes_parts.append("• Slower startup (3-4 minutes)") + notes_parts.append("• Auto-scaling, pay-per-use") + notes_parts.append("• Better for constant workloads where startup time matters") + notes_parts.append("• Unity Catalog support") + else: # CLASSIC + notes_parts.append("• Legacy option (not recommended for new deployments)") + notes_parts.append("• Slower startup (3-4 minutes)") + notes_parts.append("• Unity Catalog support") + notes_parts.append("• Auto-scaling, can scale to zero, pay-per-use") + notes_parts.append("• For new workloads, consider Serverless or Pro unless Classic is required") + + notes_parts.append("") + notes_parts.append(f"**Warehouse Size ({size})**:") + size_info = { + "2X-Small": "4 DBU/hr", + "X-Small": "6 DBU/hr", + "Small": "12 DBU/hr", + "Medium": "24 DBU/hr", + "Large": "40 DBU/hr", + "X-Large": "80 DBU/hr", + "2X-Large": "144 DBU/hr", + "3X-Large": "272 DBU/hr", + "4X-Large": "528 DBU/hr", + } + notes_parts.append(f"• {size_info.get(size, 'Use the DBU/hr rate from the pricing table')}") + + # Configuration summary. The OSS assistant models user-provided + # DBSQL size and cluster count inputs. + notes_parts.append("") + notes_parts.append("=" * 60) + notes_parts.append("**DBSQL CONFIGURATION SUMMARY**") + notes_parts.append("=" * 60) + + num_clusters = workload.get("dbsql_num_clusters", 1) + total_users = workload.get("total_users", 0) + use_case_type = workload.get("use_case_type", "bi_dashboard") + typical_data_volume = workload.get("typical_data_volume", "1-10GB") + query_complexity = workload.get("query_complexity", "medium") + query_selectivity = workload.get("query_selectivity", "unknown") + + notes_parts.append("") + notes_parts.append("**📊 Inputs Captured:**") + notes_parts.append(f"• Total Users: {total_users if total_users > 0 else 'Not specified'}") + notes_parts.append(f"• Use Case Type: {use_case_type.replace('_', ' ').title()}") + notes_parts.append(f"• Data Volume (compressed): {typical_data_volume}") + notes_parts.append(f"• Query Complexity: {query_complexity.title()}") + if query_complexity == "simple": + notes_parts.append(" → Single table, basic filters/aggregations (COUNT, SUM, AVG)") + elif query_complexity == "medium": + notes_parts.append(" → 2-3 table joins with WHERE clauses and GROUP BY") + elif query_complexity == "complex": + notes_parts.append(" → 4+ table joins, subqueries, window functions, nested aggregations") + notes_parts.append(f"• Query Selectivity: {query_selectivity.title()}") + notes_parts.append(f"• Selected Warehouse: {warehouse_type} {size}") + notes_parts.append(f"• Cluster Count: {num_clusters}") + notes_parts.append("") + notes_parts.append("**Cost Model:**") + notes_parts.append("• Lakemeter will calculate DBSQL cost from warehouse DBU/hr, cluster count, usage hours, and $/DBU pricing.") + notes_parts.append("• Warehouse size and cluster count are user-provided inputs in this OSS assistant.") + + notes_parts.append("") + notes_parts.append("=" * 60) + + notes_parts.append("") + notes_parts.append("**Query Performance:**") + notes_parts.append("• Validate performance with query history, SQL warehouse monitoring, and representative workload tests.") + notes_parts.append("• Photon acceleration always enabled for DBSQL") + + if warehouse_type in ["SERVERLESS", "PRO"]: + notes_parts.append("") + notes_parts.append("**Optimization Note:**") + notes_parts.append("• Pro and Serverless warehouses include platform-managed performance optimizations.") + notes_parts.append("• Use query profile and warehouse monitoring to tune size and cluster count.") + elif warehouse_type == "CLASSIC": + notes_parts.append("") + notes_parts.append("**Performance Note:**") + notes_parts.append("• Classic: Supports Unity Catalog, auto-scaling, scale to zero") + notes_parts.append("• For new workloads, consider Serverless or Pro unless Classic is required") + + if wtype == "LAKEBASE": + # Get user inputs + reads_per_sec = workload.get("lakebase_expected_reads_per_sec", 0) + bulk_writes_per_sec = workload.get("lakebase_expected_bulk_writes_per_sec", 0) + incremental_writes_per_sec = workload.get("lakebase_expected_incremental_writes_per_sec", 0) + avg_row_size_kb = workload.get("lakebase_avg_row_size_kb", 1.0) + ha_enabled = workload.get("lakebase_ha_enabled", False) + num_read_replicas = workload.get("lakebase_num_read_replicas", 0) + + # Validate read replicas (max 2, total 3 instances including primary) + num_read_replicas = min(max(0, num_read_replicas), 2) + workload["lakebase_num_read_replicas"] = num_read_replicas + + # Use user-provided CU. Do not derive CU from throughput in OSS. + cu = workload.get("lakebase_cu", 2) + workload["lakebase_cu"] = cu + + # Total active nodes = primary + read replicas (for billing/display) + # HA standby is tracked separately in notes but not stored in DB + total_active_nodes = 1 + num_read_replicas + workload["lakebase_ha_nodes"] = total_active_nodes + + notes_parts.append("") + notes_parts.append("=" * 60) + notes_parts.append("**LAKEBASE (POSTGRESQL) CONFIGURATION**") + notes_parts.append("=" * 60) + notes_parts.append("") + notes_parts.append(f"**🗄️ Compute Units: {cu} CU** (user-provided sizing input)") + notes_parts.append(f"• Each CU = 1 vCPU + dedicated memory + storage IOPS") + notes_parts.append(f"• **Your configuration**: {cu} CU = ~{cu*2}GB RAM, {cu*1000} IOPS baseline") + notes_parts.append("") + + # Add workload inputs if specified + if reads_per_sec > 0 or bulk_writes_per_sec > 0 or incremental_writes_per_sec > 0: + notes_parts.append("**📊 Workload Requirements (Provided):**") + if reads_per_sec > 0: + notes_parts.append(f"• Expected reads: {reads_per_sec:,} lookups/sec") + if bulk_writes_per_sec > 0: + notes_parts.append(f"• Bulk writes: {bulk_writes_per_sec:,} rows/sec (truncate & load operations)") + if incremental_writes_per_sec > 0: + notes_parts.append(f"• Incremental writes: {incremental_writes_per_sec:,} rows/sec (updates/inserts with scanning)") + if avg_row_size_kb != 1.0: + notes_parts.append(f"• Average row size (uncompressed): {avg_row_size_kb}KB") + notes_parts.append("") + notes_parts.append("**Sizing Note:**") + notes_parts.append("• Throughput values are captured for context only.") + notes_parts.append("• Lakemeter models cost from the CU value provided by the user.") + notes_parts.append("• Validate CU sizing with Lakebase metrics, workload testing, or Databricks guidance.") + notes_parts.append("") + + # Read Replicas + if num_read_replicas > 0: + notes_parts.append(f"**📖 Read Replicas: {num_read_replicas} replica(s) (Max: 2)**:") + notes_parts.append(f"• **Total instances**: 1 primary + {num_read_replicas} read replica(s) = {total_active_nodes} instances") + notes_parts.append(f"• Each replica has {cu} CU (same as primary)") + notes_parts.append("• ✅ Read replicas handle READ requests only") + notes_parts.append("• ⚠️ Write requests ALWAYS go to primary node") + notes_parts.append(f"• **Read scaling**: {total_active_nodes} active read node(s)") + notes_parts.append("• **Write scaling**: Writes continue to route to the primary") + notes_parts.append(f"• **Cost**: +{num_read_replicas * 100}% (each replica = full CU cost)") + notes_parts.append("• **Best for**: Read-heavy workloads needing horizontal read scaling") + notes_parts.append("") + else: + notes_parts.append("**📖 Read Replicas: None**:") + notes_parts.append("• All requests (reads + writes) handled by primary node") + notes_parts.append("• **For read scaling**: Add 1-2 read replicas (each with same CU as primary)") + notes_parts.append("• **Total instances**: Max 3 (1 primary + 2 read replicas)") + notes_parts.append("• **Note**: Read replicas only handle reads, writes always on primary") + notes_parts.append("") + + notes_parts.append(f"**High Availability (HA): {'1 standby node' if ha_enabled else 'Disabled'}**:") + if ha_enabled: + notes_parts.append("• ✅ HA enabled: Automatic failover to standby replica") + notes_parts.append("• **Recovery time**: <60 seconds with 1 standby") + notes_parts.append("• **Cost**: +100% (standby = full replica, not for reads)") + notes_parts.append("• **Best for**: Production systems requiring 99.95%+ uptime") + notes_parts.append("• ⚠️ HA standby is for failover only - does NOT handle read traffic") + else: + notes_parts.append("• ⚠️ HA disabled: Single point of failure") + notes_parts.append("• **Risk**: Downtime during maintenance or failures") + notes_parts.append("• **Cost savings**: 50% (no standby replicas)") + notes_parts.append("• **Best for**: Development/test environments") + notes_parts.append("") + + notes_parts.append("**🎯 LAKEBASE OPERATIONAL GUIDANCE:**") + notes_parts.append("• **Backups**: Automated daily backups with 7-day retention") + notes_parts.append("• **Monitoring**: Track connection pool usage, query latency, cache hit ratio") + notes_parts.append("• **Scaling**:") + notes_parts.append(" - Vertical (increase CU): More CPU/memory for complex queries and writes") + notes_parts.append(" - Horizontal (add read replicas): Scale reads only (max 2 replicas, 3 instances total)") + notes_parts.append("• **Cost optimization**: Right-size CUs based on actual CPU/memory/throughput usage") + notes_parts.append("• **Write vs Read**:") + notes_parts.append(" - Bulk writes: Use for initial loads and full refreshes") + notes_parts.append(" - Incremental writes: Use for updates/inserts") + notes_parts.append(" - Reads: Can distribute across replicas for horizontal scaling") + + # Storage / PITR / Snapshot cost info (DSU multipliers per SKU page) + price_per_dsu = 0.023 + storage_gb = workload.get("lakebase_storage_gb", 0) + pitr_gb = workload.get("lakebase_pitr_gb", 0) + snapshot_gb = workload.get("lakebase_snapshot_gb", 0) + if storage_gb > 0 or pitr_gb > 0 or snapshot_gb > 0: + storage_gb = min(storage_gb, 8192) + notes_parts.append("") + notes_parts.append(f"**Storage Costs (Databricks Storage SKU):**") + if storage_gb > 0: + s_cost = storage_gb * 15 * price_per_dsu + notes_parts.append(f"• **Database Storage**: {storage_gb} GB × 15 DSU/GB × ${price_per_dsu}/DSU = ${s_cost:.2f}/mo") + if pitr_gb > 0: + p_cost = pitr_gb * 8.7 * price_per_dsu + notes_parts.append(f"• **PITR**: {pitr_gb} GB × 8.7 DSU/GB × ${price_per_dsu}/DSU = ${p_cost:.2f}/mo") + if snapshot_gb > 0: + sn_cost = snapshot_gb * 3.91 * price_per_dsu + notes_parts.append(f"• **Snapshots**: {snapshot_gb} GB × 3.91 DSU/GB × ${price_per_dsu}/DSU = ${sn_cost:.2f}/mo") + workload["lakebase_storage_gb"] = storage_gb + workload["lakebase_pitr_gb"] = pitr_gb + workload["lakebase_snapshot_gb"] = snapshot_gb + + if wtype == "VECTOR_SEARCH": + # Get LLM-calculated values (LLM calculates and passes these directly) + endpoint_type = (workload.get("vector_search_endpoint_type", "STANDARD") or "STANDARD").upper() + capacity_millions = workload.get("vector_capacity_millions", 1) + + # Set vector_search_mode for DB (lowercase version of endpoint_type) + mode = "storage_optimized" if endpoint_type == "STORAGE_OPTIMIZED" else "standard" + workload["vector_search_mode"] = mode + + # Ensure capacity is set + workload["vector_capacity_millions"] = capacity_millions + + # Calculate total_vectors for display + total_vectors = capacity_millions * 1_000_000 + workload["vector_search_total_vectors"] = total_vectors + + # Vector Search runs 24/7 - cannot be stopped + workload["hours_per_month"] = 730 + + notes_parts.append("") + notes_parts.append("=" * 60) + notes_parts.append("**VECTOR SEARCH CONFIGURATION**") + notes_parts.append("=" * 60) + notes_parts.append("") + notes_parts.append(f"**🔍 Index Configuration:**") + notes_parts.append(f"• **Endpoint Type**: {endpoint_type}") + + if endpoint_type == "STANDARD": + notes_parts.append(" - Search Latency: **20-50ms** (ultra-low latency)") + notes_parts.append(" - Best for: Real-time search, chatbots, interactive applications") + notes_parts.append(" - Recommended for: <320M vectors") + notes_parts.append(" - Cost: Premium (optimized for speed)") + else: + notes_parts.append(" - Search Latency: **~250ms** (optimized latency)") + notes_parts.append(" - Best for: Large-scale search, batch processing") + notes_parts.append(" - Recommended for: 10M+ vectors") + notes_parts.append(" - Cost: **7x cheaper per vector** (optimized for cost)") + + notes_parts.append("") + notes_parts.append(f"**📊 Index Size & Capacity:**") + notes_parts.append(f"• **Capacity**: {capacity_millions}M vectors (~{total_vectors:,} vectors)") + notes_parts.append("") + notes_parts.append("**📐 Vector Calculation Formula:**") + notes_parts.append(" docs × pages × 1.2 chunks/page × (dimensions÷768)") + notes_parts.append(f" = {capacity_millions}M vectors") + notes_parts.append("") + + notes_parts.append("**⚡ Performance & Scale:**") + notes_parts.append("• **Automatic Scaling**: Handles traffic spikes automatically") + notes_parts.append("• **High Availability**: Built-in redundancy across availability zones") + notes_parts.append("• **Index Updates**: Real-time sync with Delta tables (DELTA_SYNC)") + notes_parts.append("• **Runtime**: 24/7 continuous operation (730 hours/month)") + notes_parts.append("") + + # Endpoint type recommendation logic + if total_vectors < 10_000_000: + notes_parts.append("**💡 Recommendation:**") + notes_parts.append(f"• With {total_vectors:,} vectors: **Standard endpoint** is recommended") + notes_parts.append("• Provides ultra-low latency (20-50ms) for best user experience") + notes_parts.append("• Cost is reasonable at this scale") + elif 10_000_000 <= total_vectors < 320_000_000: + notes_parts.append("**💡 Recommendation:**") + notes_parts.append(f"• With {total_vectors:,} vectors: Consider **Storage Optimized** for cost efficiency") + notes_parts.append("• **Trade-off**: 250ms latency vs 7x lower cost per vector") + notes_parts.append("• **Standard**: Choose if real-time latency (<50ms) is critical") + notes_parts.append("• **Storage Optimized**: Choose if batch/async search is acceptable and cost is priority") + else: + notes_parts.append("**💡 Recommendation:**") + notes_parts.append(f"• With {total_vectors:,} vectors: **Storage Optimized endpoint** is strongly recommended") + notes_parts.append("• Standard endpoints are limited to ~320M vectors") + notes_parts.append("• Storage Optimized provides 7x cost savings at scale") + notes_parts.append("") + + notes_parts.append("**🎯 VECTOR SEARCH OPERATIONAL GUIDANCE:**") + notes_parts.append("• **Monitoring**: Track search latency, QPS, index size, sync lag (for DELTA_SYNC)") + notes_parts.append("• **Optimization**:") + notes_parts.append(" - Use filters to reduce search space (metadata filtering)") + notes_parts.append(" - Optimize vector dimensions (lower = faster + cheaper, but may reduce accuracy)") + notes_parts.append(" - Consider hybrid search (vector + keyword) for better results") + notes_parts.append("• **Scaling**: Automatically scales based on QPS and index size") + notes_parts.append("• **Cost Optimization**:") + notes_parts.append(" - Storage Optimized: Up to 7x cheaper for large indexes") + notes_parts.append(" - Right-size dimensions based on model requirements") + notes_parts.append(" - Use DELTA_SYNC for automatic updates vs DIRECT_ACCESS for manual control") + notes_parts.append("• **Best Practices**:") + notes_parts.append(" - Test both endpoint types with your latency requirements") + notes_parts.append(" - Monitor p50/p95/p99 latencies, not just average") + notes_parts.append(" - Pre-filter large indexes using metadata before vector search") + notes_parts.append(" - Consider approximate nearest neighbor (ANN) algorithms for ultra-scale") + + # Storage cost info + storage_gb = workload.get("vector_search_storage_gb", 0) + if storage_gb > 0: + divisor = 64 if mode == "storage_optimized" else 2 + units_used = (capacity_millions + divisor - 1) // divisor # ceiling division + free_storage_gb = units_used * 20 + billable_storage_gb = max(0, storage_gb - free_storage_gb) + storage_cost = billable_storage_gb * 0.023 + notes_parts.append("") + notes_parts.append("**💾 Storage Configuration:**") + notes_parts.append(f"• **Total Storage**: {storage_gb} GB") + notes_parts.append(f"• **Free Storage**: {free_storage_gb} GB ({units_used} units × 20 GB/unit)") + notes_parts.append(f"• **Billable Storage**: {billable_storage_gb} GB") + notes_parts.append(f"• **Storage Cost**: ${storage_cost:.2f}/month ($0.023/GB/month)") + + if wtype in ["FMAPI_PROPRIETARY", "FMAPI_DATABRICKS"]: + # Get FMAPI-specific fields - these should be PROVIDED by the AI, not defaulted + provider = workload.get("fmapi_provider", "") + model = workload.get("fmapi_model", "") + rate_type = workload.get("fmapi_rate_type", "") + quantity = workload.get("fmapi_quantity", 0) + endpoint_type = workload.get("fmapi_endpoint_type", "") + context_length = workload.get("fmapi_context_length", "") + + # Provider defaults (acceptable fallback) + if not provider: + if wtype == "FMAPI_PROPRIETARY": + provider = "anthropic" + else: + provider = "meta" + workload["fmapi_provider"] = provider + + # Model defaults based on provider (acceptable fallback) + if not model: + model_defaults = { + "anthropic": "claude-sonnet-4-5", + "openai": "gpt-5-1", + "google": "gemini-2-5-pro", + "meta": "llama-4-maverick", + "databricks": "bge-large" + } + model = model_defaults.get(provider, "claude-sonnet-4-5") + workload["fmapi_model"] = model + + # Rate type - CRITICAL: AI should specify this, but we need a fallback + # Add a warning note if defaulted + if not rate_type: + rate_type = "input_token" + workload["fmapi_rate_type"] = rate_type + # Flag that this was defaulted + workload["_rate_type_defaulted"] = True + + # Quantity - CRITICAL: AI should calculate this based on user's usage + # Only set a minimal fallback if absolutely needed + if not quantity or quantity == 0: + quantity = 1.0 # Minimal placeholder - AI should have calculated this + workload["fmapi_quantity"] = quantity + # Flag that this was defaulted + workload["_quantity_defaulted"] = True + + # Non-critical defaults + if not endpoint_type: + endpoint_type = "global" + workload["fmapi_endpoint_type"] = endpoint_type + + if not context_length: + context_length = "all" + workload["fmapi_context_length"] = context_length + + # FMAPI runs continuously - set hours to 730 + workload["hours_per_month"] = 730 + + notes_parts.append("") + notes_parts.append("=" * 60) + notes_parts.append(f"**FOUNDATION MODEL API ({wtype}) CONFIGURATION**") + notes_parts.append("=" * 60) + notes_parts.append("") + + # Add warnings if values were defaulted + if workload.get("_quantity_defaulted") or workload.get("_rate_type_defaulted"): + notes_parts.append("**⚠️ REVIEW REQUIRED:**") + if workload.get("_quantity_defaulted"): + notes_parts.append("• Token quantity was not calculated - please update based on your actual usage") + notes_parts.append(" Formula: (users × requests/day × 30 × tokens/request) / 1,000,000") + if workload.get("_rate_type_defaulted"): + notes_parts.append("• Rate type defaulted to input_token - verify this is correct") + notes_parts.append(" Remember: Chatbots need BOTH input AND output token workloads") + notes_parts.append("") + + notes_parts.append(f"**🤖 Model Configuration:**") + notes_parts.append(f"• **Provider**: {provider.title()}") + notes_parts.append(f"• **Model**: {model}") + notes_parts.append(f"• **Endpoint Type**: {endpoint_type.title()} (Multi-region)" if endpoint_type == "global" else f"• **Endpoint Type**: In-Geo (Regional)") + notes_parts.append(f"• **Context Length**: {context_length.title()}") + notes_parts.append("") + + notes_parts.append(f"**📊 Token Configuration:**") + notes_parts.append(f"• **Rate Type**: {rate_type.replace('_', ' ').title()}") + notes_parts.append(f"• **Quantity**: {quantity}M tokens/month ({quantity * 1_000_000:,.0f} tokens)") + notes_parts.append("") + + # Add provider-specific guidance + if wtype == "FMAPI_PROPRIETARY": + notes_parts.append("**💡 Proprietary Model Benefits:**") + notes_parts.append("• **Data Security**: All requests stay within Databricks security perimeter") + notes_parts.append("• **No API Keys**: Uses Databricks authentication") + notes_parts.append("• **Unified Billing**: Charged through Databricks account") + notes_parts.append("• **Governance**: Full audit logging and access control") + else: + notes_parts.append("**💡 Databricks-Hosted Model Benefits:**") + notes_parts.append("• **Open Source**: No vendor lock-in, model transparency") + notes_parts.append("• **Cost Effective**: Typically 5-10x cheaper than proprietary models") + notes_parts.append("• **Customizable**: Can fine-tune on your data") + notes_parts.append("• **Provisioned Throughput**: Available for guaranteed capacity") + + notes_parts.append("") + notes_parts.append("**⚠️ IMPORTANT:**") + notes_parts.append("• Create SEPARATE workloads for input and output tokens") + notes_parts.append("• Output tokens are typically 3-5x more expensive than input") + notes_parts.append("• Consider prompt optimization to reduce token usage") + if rate_type == "input_token": + notes_parts.append("• 💡 Remember to add a matching OUTPUT token workload") + elif rate_type == "output_token": + notes_parts.append("• 💡 Remember to add a matching INPUT token workload") + + if wtype == "DATABRICKS_APPS": + workload.setdefault("databricks_apps_size", "medium") + workload["hours_per_month"] = workload.get("hours_per_month", 730) + + if wtype == "AI_PARSE": + workload.setdefault("ai_parse_mode", "dbu") + workload.setdefault("ai_parse_complexity", "medium") + workload.setdefault("ai_parse_pages_thousands", 100) + + if wtype == "SHUTTERSTOCK_IMAGEAI": + workload.setdefault("shutterstock_images", 1000) + + # IGNORE any brief notes provided by LLM - we generate comprehensive ones + # existing_notes = workload.get("notes", "") # DON'T use LLM's brief notes + + # Add comprehensive header and footer if we have generated notes + if notes_parts: + # Add header + header_parts = [] + header_parts.append("╔" + "=" * 58 + "╗") + header_parts.append("║" + " " * 10 + "DATABRICKS WORKLOAD CONFIGURATION" + " " * 15 + "║") + header_parts.append("║" + " " * 12 + f"Created by AI Assistant - {wtype}" + " " * (34 - len(wtype)) + "║") + header_parts.append("╚" + "=" * 58 + "╝") + header_parts.append("") + header_parts.append("This configuration was generated based on your requirements.") + header_parts.append("Review all sections carefully before deployment to production.") + header_parts.append("") + + # Add footer with summary + footer_parts = [] + footer_parts.append("") + footer_parts.append("=" * 60) + footer_parts.append("**📋 CONFIGURATION SUMMARY**") + footer_parts.append("=" * 60) + footer_parts.append(f"• **Workload Type**: {wtype}") + footer_parts.append(f"• **Cloud**: {workload.get('cloud', 'Not specified').upper()}") + footer_parts.append(f"• **Region**: {workload.get('region', 'Not specified')}") + + # Add workload-specific summary + if wtype == "DBSQL": + wh_type = (workload.get("dbsql_warehouse_type") or "SERVERLESS").upper() + wh_size = workload.get("dbsql_warehouse_size", "Small") + wh_clusters = workload.get("dbsql_num_clusters", 1) + footer_parts.append(f"• **Warehouse**: {wh_type} {wh_size} × {wh_clusters} cluster(s)") + footer_parts.append(f"• **Expected Users**: {workload.get('total_users', 'Not specified')}") + elif wtype == "JOBS": + if workload.get("jobs_serverless"): + footer_parts.append("• **Compute**: Serverless (fully managed)") + else: + instance = workload.get("jobs_instance_type", "Not specified") + workers = workload.get("jobs_worker_max", 2) + footer_parts.append(f"• **Compute**: Classic ({instance})") + footer_parts.append(f"• **Cluster size**: 1 driver + {workers} workers max") + elif wtype == "DLT": + edition = (workload.get("dlt_edition") or "PRO").upper() + footer_parts.append(f"• **Edition**: {edition}") + elif wtype == "LAKEBASE": + cu = workload.get("lakebase_cu", 2) + total_nodes = workload.get("lakebase_ha_nodes", 1) + num_read_replicas = workload.get("lakebase_num_read_replicas", 0) + footer_parts.append(f"• **Compute Units**: {cu} CU (user-provided)") + footer_parts.append(f"• **Active Nodes**: {total_nodes} (1 primary + {num_read_replicas} read replica(s))") + elif wtype == "VECTOR_SEARCH": + endpoint_type = workload.get("vector_search_endpoint_type", "STANDARD") + total_vectors = workload.get("vector_search_total_vectors", 0) + dimensions = workload.get("vector_search_dimensions", 768) + footer_parts.append(f"• **Endpoint Type**: {endpoint_type}") + footer_parts.append(f"• **Total Vectors**: {total_vectors:,} vectors") + footer_parts.append(f"• **Dimensions**: {dimensions}d") + elif wtype in ["FMAPI_PROPRIETARY", "FMAPI_DATABRICKS"]: + provider = workload.get("fmapi_provider", "") + model = workload.get("fmapi_model", "") + rate_type = workload.get("fmapi_rate_type", "") + quantity = workload.get("fmapi_quantity", 0) + footer_parts.append(f"• **Provider**: {provider.title()}") + footer_parts.append(f"• **Model**: {model}") + footer_parts.append(f"• **Rate Type**: {rate_type.replace('_', ' ').title()}") + footer_parts.append(f"• **Quantity**: {quantity}M tokens/month") + + footer_parts.append("") + footer_parts.append("**⚠️ IMPORTANT REMINDERS:**") + footer_parts.append("• This is a PROPOSAL - review before confirming") + footer_parts.append("• Costs shown are estimates - actual costs may vary") + footer_parts.append("• Monitor actual usage and adjust sizing as needed") + footer_parts.append("• Consider starting with smaller configuration and scaling up") + footer_parts.append("• Set up budget alerts and cost monitoring") + footer_parts.append("") + footer_parts.append("**📊 NEXT STEPS:**") + footer_parts.append("1. Review the detailed configuration above") + footer_parts.append("2. Confirm this proposal to add to your estimate") + footer_parts.append("3. Adjust sizing based on actual usage patterns") + footer_parts.append("4. Set up monitoring and alerting") + footer_parts.append("5. Document any custom configurations or requirements") + footer_parts.append("") + footer_parts.append("=" * 60) + footer_parts.append("Need to modify this configuration? Just ask!") + footer_parts.append("=" * 60) + + # Assemble the full notes + full_header = "\n".join(header_parts) + main_notes = "\n".join(notes_parts) + full_footer = "\n".join(footer_parts) + generated_notes = f"{full_header}\n{main_notes}\n{full_footer}" + else: + generated_notes = "" + + # Preserve AI-provided conversational notes if they exist and are meaningful + # Only use generated notes as fallback when AI didn't provide notes + ai_provided_notes = workload.get("notes", "") + if ai_provided_notes and len(ai_provided_notes.strip()) > 50: + # AI provided meaningful notes - keep them + # Just add a brief header + workload["notes"] = f"**{wtype} Configuration** (AI-generated)\n\n{ai_provided_notes}" + elif generated_notes: + # Fallback to generated technical notes if AI didn't provide meaningful notes + workload["notes"] = generated_notes + else: + workload["notes"] = "Configuration proposal - details to be added." + + return workload + + def confirm_workload(self, proposal_id: str) -> Optional[Dict[str, Any]]: + """ + Confirm a proposed workload (called from API after user confirms). + Returns the workload configuration to be saved. + """ + for i, proposal in enumerate(self.proposed_workloads): + if proposal.get("proposal_id") == proposal_id: + workload = self.proposed_workloads.pop(i) + workload["status"] = "confirmed" + return workload + return None + + def reject_workload(self, proposal_id: str) -> bool: + """Reject a proposed workload.""" + for i, proposal in enumerate(self.proposed_workloads): + if proposal.get("proposal_id") == proposal_id: + self.proposed_workloads.pop(i) + return True + return False + + def _get_estimate_summary(self) -> Dict[str, Any]: + """Get summary of current estimate using actual costs from context.""" + if not self.current_estimate: + return {"error": "No estimate loaded"} + + total_cost = 0 + workload_summaries = [] + + for w in self.current_workloads: + cost = w.get('total_cost') or w.get('monthly_cost') or 0 + if isinstance(cost, dict): + cost = cost.get('total', 0) + cost = float(cost) if cost else 0 + total_cost += cost + + workload_summaries.append({ + "name": w.get("workload_name"), + "type": w.get("workload_type"), + "monthly_cost": f"${cost:.2f}" + }) + + return { + "estimate": { + "name": self.current_estimate.get("estimate_name") or self.current_estimate.get("name"), + "cloud": self.current_estimate.get("cloud", "").upper(), + "region": self.current_estimate.get("region") + }, + "workload_count": len(self.current_workloads), + "workloads": workload_summaries, + "total_monthly_cost": f"${total_cost:.2f}", + "total_annual_cost": f"${total_cost * 12:.2f}", + "pending_proposals": len(self.proposed_workloads) + } + + def _analyze_estimate(self, focus_area: str = "all") -> Dict[str, Any]: + """Analyze estimate using actual costs and provide comprehensive recommendations.""" + log_info(f"_analyze_estimate called with focus_area={focus_area}") + log_info(f"current_estimate: {self.current_estimate is not None}") + log_info(f"current_workloads count: {len(self.current_workloads) if self.current_workloads else 0}") + + if not self.current_estimate: + log_warning("No estimate loaded for analysis") + return {"error": "No estimate loaded"} + + if not self.current_workloads: + log_warning("No workloads to analyze") + return { + "error": "No workloads to analyze", + "suggestion": "Add some workloads first, then I can help optimize them." + } + + recommendations = [] + total_cost = 0 + cost_by_type: Dict[str, float] = {} + workload_details = [] + + # Analyze each workload + for workload in self.current_workloads: + wtype = workload.get("workload_type", "") + wname = workload.get("workload_name", "Unnamed") + + # Get actual cost + cost = workload.get('total_cost') or workload.get('monthly_cost') or 0 + if isinstance(cost, dict): + cost = cost.get('total', 0) + cost = float(cost) if cost else 0 + total_cost += cost + + # Track cost by type + cost_by_type[wtype] = cost_by_type.get(wtype, 0) + cost + + # Store workload details for summary + workload_details.append({ + "name": wname, + "type": wtype, + "cost": cost, + "serverless": workload.get("serverless_enabled", False), + "photon": workload.get("photon_enabled", False), + "hours": workload.get("hours_per_month", 0), + "worker_pricing": workload.get("worker_pricing_tier", "on_demand") + }) + + # ============================================ + # COST OPTIMIZATION RECOMMENDATIONS + # ============================================ + if focus_area in ["cost_optimization", "all"]: + + # JOBS recommendations + if wtype == "JOBS": + # Spot instance recommendation + if workload.get("worker_pricing_tier") != "spot": + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Spot Instances", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Use spot instances for worker nodes", + "detail": "Spot instances offer 60-90% cost savings vs on-demand. Databricks automatically handles spot interruptions by migrating tasks.", + "potential_savings": "60-90% on worker VM costs", + "consideration": "Best for fault-tolerant batch ETL jobs. Not recommended for time-critical SLA workloads." + }) + + # Serverless recommendation for low utilization + hours = workload.get("hours_per_month") or 0 + if not workload.get("serverless_enabled") and hours and hours < 150: + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Serverless Compute", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Switch to Serverless Jobs for low-utilization workloads", + "detail": f"At {hours} hours/month, serverless offers instant startup and pay-per-second billing. No idle costs.", + "potential_savings": "Significant for <150 hrs/month workloads", + "consideration": "Serverless has ~30% DBU premium but no VM costs and instant startup." + }) + + # Autoscaling recommendation + min_workers = workload.get("jobs_worker_min") or 0 + max_workers = workload.get("jobs_worker_max") or 0 + if min_workers and max_workers and min_workers == max_workers and max_workers > 1: + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Autoscaling", + "suggestion": "Enable autoscaling by setting different min/max workers", + "detail": f"Currently fixed at {min_workers} workers. Setting min=1 allows cluster to scale down during lighter phases.", + "potential_savings": "10-40% depending on workload variability" + }) + + # ALL_PURPOSE cluster recommendations + if wtype == "ALL_PURPOSE": + hours = workload.get("hours_per_month") or 730 + if hours and hours >= 600: # High utilization + if workload.get("worker_pricing_tier") != "reserved_1y": + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Reserved Capacity", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Consider 1-year reserved instances for this high-utilization cluster", + "detail": f"At {hours} hours/month (~{hours/730*100:.0f}% utilization), reserved capacity offers significant savings.", + "potential_savings": "Up to 40% vs on-demand", + "consideration": "Requires commitment. Best for predictable, steady-state workloads." + }) + elif hours and hours < 200: + if not workload.get("serverless_enabled"): + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Serverless Compute", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Consider serverless compute for this low-utilization cluster", + "detail": f"At {hours} hours/month, you're paying for idle time. Serverless scales to zero.", + "potential_savings": "Pay only for actual usage" + }) + + # DLT recommendations + if wtype == "DLT": + dlt_edition = (workload.get("dlt_edition") or "CORE").upper() + if dlt_edition == "ADVANCED" and cost and cost < 500: + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "SDP Edition", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Review if ADVANCED edition features are needed", + "detail": "ADVANCED edition includes data quality expectations. If not using these features, PRO or CORE may suffice.", + "potential_savings": "PRO is ~15% cheaper, CORE is ~30% cheaper than ADVANCED" + }) + + # DBSQL recommendations + if wtype == "DBSQL": + warehouse_type = (workload.get("dbsql_warehouse_type") or "").upper() + warehouse_size = workload.get("dbsql_warehouse_size") or "" + hours = workload.get("hours_per_month") or 0 + + if warehouse_type != "SERVERLESS": + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Serverless SQL", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Migrate to Serverless SQL Warehouse", + "detail": "Serverless offers instant startup (<5s vs 5-10 min), automatic scaling, and scales to zero when idle.", + "potential_savings": "Scales to zero when idle, instant startup eliminates warm-up costs", + "consideration": "Validate performance with query history and representative workload testing." + }) + + # Check for oversized warehouse + if warehouse_size in ["Large", "X-Large", "2X-Large", "3X-Large", "4X-Large"]: + if hours and hours < 100: + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Warehouse Sizing", + "suggestion": f"Review {warehouse_size} warehouse sizing", + "detail": f"Large warehouse with only {hours} hours/month. Consider if a smaller size would suffice for your query patterns.", + "potential_savings": "Smaller warehouse = lower hourly cost" + }) + + # MODEL_SERVING recommendations + if wtype == "MODEL_SERVING" and cost and cost > 500: + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Model Serving", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Review model serving GPU utilization", + "detail": "Model serving costs can be optimized by right-sizing GPU types and using scale-to-zero during off-peak hours.", + "potential_savings": "Depends on traffic patterns" + }) + + # VECTOR_SEARCH recommendations + if wtype == "VECTOR_SEARCH": + endpoint_type = workload.get("vector_search_endpoint_type") or "" + if endpoint_type == "STANDARD": + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Vector Search", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Consider OPTIMIZED endpoint if latency requirements allow", + "detail": "OPTIMIZED endpoints are 7x cheaper (~$0.07/hr vs $0.49/hr) with ~250ms latency vs <100ms.", + "potential_savings": "Up to 85% cost reduction", + "consideration": "Only if 250ms latency is acceptable for your use case." + }) + + # FMAPI recommendations + if wtype == "FMAPI": + rate_type = workload.get("fmapi_rate_type") or "" + quantity = workload.get("fmapi_quantity") or 0 + if rate_type in ["input_token", "output_token"] and quantity and quantity > 100: + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Foundation Models", + "current_cost": f"${cost:.2f}/month", + "suggestion": "Review token optimization strategies", + "detail": f"At {quantity}M tokens/month, consider: prompt caching, shorter prompts, or Llama models for cost-sensitive use cases.", + "potential_savings": "Llama models are ~5-10x cheaper than proprietary models" + }) + + # LAKEBASE recommendations + if wtype == "LAKEBASE": + reads = workload.get("reads_per_sec") or 0 + writes = workload.get("bulk_writes_per_sec") or 0 + cus = workload.get("lakebase_cu") or 1 + if cus and cus > 2 and (reads < 5000 and writes < 1000): + recommendations.append({ + "workload": wname, + "type": "cost", + "category": "Lakebase Sizing", + "suggestion": f"Review Lakebase CU sizing (currently {cus} CUs)", + "detail": f"At {reads} reads/sec and {writes} writes/sec, you may be over-provisioned.", + "potential_savings": "Each CU reduction saves ~$350/month" + }) + + # ============================================ + # PERFORMANCE RECOMMENDATIONS + # ============================================ + if focus_area in ["performance", "all"]: + # Photon recommendation + if wtype in ["JOBS", "ALL_PURPOSE", "DLT"]: + if not workload.get("photon_enabled"): + recommendations.append({ + "workload": wname, + "type": "performance", + "category": "Photon Acceleration", + "suggestion": "Enable Photon for faster query execution", + "detail": "Photon provides 2-3x faster performance for SQL and DataFrame operations. Often results in net cost savings despite higher DBU rate.", + "impact": "2-3x faster execution, often lower total cost", + "consideration": "Works best for SQL/DataFrame workloads. UDFs run on standard Spark." + }) + + # Instance type recommendations + if wtype in ["JOBS", "ALL_PURPOSE", "DLT"]: + instance_type = workload.get("worker_node_type", "") + if instance_type and "small" in instance_type.lower(): + recommendations.append({ + "workload": wname, + "type": "performance", + "category": "Instance Sizing", + "suggestion": "Consider larger instance types for better price/performance", + "detail": "Larger instances often provide better price/performance for data-intensive workloads due to better memory/CPU ratios.", + "impact": "Faster job completion, potentially lower cost" + }) + + # ============================================ + # SUMMARY INSIGHTS + # ============================================ + insights = [] + + # Top cost contributors + sorted_costs = sorted(cost_by_type.items(), key=lambda x: x[1], reverse=True) + if sorted_costs: + top_type = sorted_costs[0] + insights.append(f"**Top cost driver**: {top_type[0]} workloads account for ${top_type[1]:.2f}/month ({top_type[1]/total_cost*100:.1f}% of total)") + + # High-cost workloads + high_cost_workloads = [w for w in workload_details if w["cost"] > 1000] + if high_cost_workloads: + insights.append(f"**High-cost workloads**: {len(high_cost_workloads)} workloads cost >$1,000/month - prioritize these for optimization") + + # Serverless adoption + serverless_count = sum(1 for w in workload_details if w["serverless"]) + compute_count = sum(1 for w in workload_details if w["type"] in ["JOBS", "ALL_PURPOSE", "DLT", "DBSQL"]) + if compute_count > 0: + insights.append(f"**Serverless adoption**: {serverless_count}/{compute_count} compute workloads use serverless ({serverless_count/compute_count*100:.0f}%)") + + # Photon adoption + photon_count = sum(1 for w in workload_details if w["photon"]) + photon_eligible = sum(1 for w in workload_details if w["type"] in ["JOBS", "ALL_PURPOSE", "DLT"]) + if photon_eligible > 0: + insights.append(f"**Photon adoption**: {photon_count}/{photon_eligible} eligible workloads use Photon ({photon_count/photon_eligible*100:.0f}%)") + + return { + "total_monthly_cost": f"${total_cost:.2f}", + "total_annual_cost": f"${total_cost * 12:.2f}", + "workload_count": len(self.current_workloads), + "recommendations": recommendations, + "recommendation_count": len(recommendations), + "insights": insights, + "cost_breakdown": {k: f"${v:.2f}" for k, v in sorted_costs[:5]}, + "focus_area": focus_area + } + + +def create_agent(token: str, mode: str = "estimate") -> EstimateAgent: + """Create a new agent instance with the given token and mode.""" + client = get_claude_client(token, model="databricks-claude-opus-4-5") + return EstimateAgent(client, mode=mode) \ No newline at end of file diff --git a/lakemeter/backend/app/services/ai_client.py b/lakemeter/backend/app/services/ai_client.py new file mode 100644 index 00000000..b5db9e51 --- /dev/null +++ b/lakemeter/backend/app/services/ai_client.py @@ -0,0 +1,522 @@ +""" +Databricks Claude AI Client + +Integrates with Databricks-hosted Claude model for the AI assistant. +Endpoint: {DATABRICKS_HOST}/serving-endpoints/{CLAUDE_MODEL_ENDPOINT}/invocations + +Uses OpenAI-compatible chat completions format as per Databricks documentation: +https://docs.databricks.com/aws/en/machine-learning/model-serving/query-chat-models + +Rate Limits (Pay-per-token): +- Input tokens per minute (ITPM): Controls input throughput +- Output tokens per minute (OTPM): Controls output throughput +- Queries per hour: Maximum requests in 60-minute window +""" +import os +import json +import asyncio +import httpx +from typing import List, Dict, Any, Optional, AsyncGenerator +from datetime import datetime, timedelta +from dataclasses import dataclass +from collections import deque + +from app.config import log_info, log_warning, log_error + + +# Claude endpoint configuration +# DATABRICKS_HOST is auto-set by Databricks Apps runtime; CLAUDE_MODEL_ENDPOINT is set via app.yaml valueFrom +_raw_host = os.getenv("DATABRICKS_HOST", "") +# Ensure DATABRICKS_HOST always has https:// protocol (Databricks Apps runtime may omit it) +DATABRICKS_HOST = (_raw_host if _raw_host.startswith("http") else f"https://{_raw_host}") if _raw_host else "" +MODEL_ENDPOINT = os.getenv("CLAUDE_MODEL_ENDPOINT", "databricks-claude-opus-4-6") +CLAUDE_ENDPOINT = f"{DATABRICKS_HOST}/serving-endpoints/{MODEL_ENDPOINT}/invocations" if DATABRICKS_HOST else "" + +# Rate limiting configuration +MAX_QUERIES_PER_HOUR = 500 +MAX_INPUT_TOKENS_PER_MINUTE = 200000 +MAX_OUTPUT_TOKENS_PER_MINUTE = 20000 + + +@dataclass +class RateLimitState: + """Tracks rate limit usage.""" + query_timestamps: deque + input_tokens_window: deque + output_tokens_window: deque + + def __init__(self): + self.query_timestamps = deque() + self.input_tokens_window = deque() + self.output_tokens_window = deque() + + +class ClaudeAIClient: + """ + Client for Databricks-hosted Claude models. + + Uses OpenAI-compatible chat completions format. + Supports multiple models: databricks-claude-opus-4-6, databricks-claude-sonnet-4-6 + """ + + def __init__(self, token: Optional[str] = None, model: Optional[str] = None): + self._token = token + self._model = model or MODEL_ENDPOINT + self._endpoint = f"{DATABRICKS_HOST}/serving-endpoints/{self._model}/invocations" + self._rate_limit_state = RateLimitState() + self._http_client: Optional[httpx.AsyncClient] = None + + def set_token(self, token: str): + """Set the authentication token.""" + self._token = token + + async def _get_http_client(self) -> httpx.AsyncClient: + """Get or create HTTP client.""" + if self._http_client is None or self._http_client.is_closed: + self._http_client = httpx.AsyncClient(timeout=120.0) + return self._http_client + + async def close(self): + """Close the HTTP client.""" + if self._http_client: + await self._http_client.aclose() + self._http_client = None + + def _clean_rate_limit_windows(self): + """Remove expired entries from rate limit tracking.""" + now = datetime.now() + hour_ago = now - timedelta(hours=1) + minute_ago = now - timedelta(minutes=1) + + while self._rate_limit_state.query_timestamps and \ + self._rate_limit_state.query_timestamps[0] < hour_ago: + self._rate_limit_state.query_timestamps.popleft() + + while self._rate_limit_state.input_tokens_window and \ + self._rate_limit_state.input_tokens_window[0][0] < minute_ago: + self._rate_limit_state.input_tokens_window.popleft() + + while self._rate_limit_state.output_tokens_window and \ + self._rate_limit_state.output_tokens_window[0][0] < minute_ago: + self._rate_limit_state.output_tokens_window.popleft() + + def _check_rate_limits(self, estimated_input_tokens: int = 1000) -> bool: + """Check if we're within rate limits.""" + self._clean_rate_limit_windows() + + if len(self._rate_limit_state.query_timestamps) >= MAX_QUERIES_PER_HOUR: + log_warning(f"Rate limited: {len(self._rate_limit_state.query_timestamps)} queries in last hour") + return False + + current_input_tokens = sum(t[1] for t in self._rate_limit_state.input_tokens_window) + if current_input_tokens + estimated_input_tokens > MAX_INPUT_TOKENS_PER_MINUTE: + log_warning(f"Rate limited: {current_input_tokens} input tokens in last minute") + return False + + return True + + def _record_usage(self, input_tokens: int, output_tokens: int): + """Record token usage for rate limiting.""" + now = datetime.now() + self._rate_limit_state.query_timestamps.append(now) + self._rate_limit_state.input_tokens_window.append((now, input_tokens)) + self._rate_limit_state.output_tokens_window.append((now, output_tokens)) + + def _convert_tools_to_openai_format(self, tools: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """Convert our tool format to OpenAI functions format.""" + openai_tools = [] + for tool in tools: + openai_tool = { + "type": "function", + "function": { + "name": tool["name"], + "description": tool.get("description", ""), + "parameters": tool.get("input_schema", tool.get("parameters", {})) + } + } + openai_tools.append(openai_tool) + return openai_tools + + async def chat( + self, + messages: List[Dict[str, Any]], + tools: Optional[List[Dict[str, Any]]] = None, + max_tokens: int = 4096, + temperature: float = 0, + system: Optional[str] = None + ) -> Dict[str, Any]: + """ + Send a chat request to Claude using OpenAI-compatible format. + """ + if not self._token: + raise ValueError("No authentication token provided") + + # Estimate input tokens + estimated_input = sum(len(str(m.get('content', ''))) // 4 for m in messages) + if system: + estimated_input += len(system) // 4 + + if not self._check_rate_limits(estimated_input): + raise Exception("Rate limit exceeded. Please wait before making more requests.") + + # Build messages list with system message first (OpenAI format) + formatted_messages = [] + if system: + formatted_messages.append({"role": "system", "content": system}) + + # Add conversation messages + for msg in messages: + # Handle tool results in OpenAI format + if msg.get("role") == "user" and isinstance(msg.get("content"), list): + # This is a tool result in Anthropic format, convert to OpenAI + for item in msg["content"]: + if item.get("type") == "tool_result": + # Ensure tool result content is non-empty + tool_content = item.get("content", "") + if not tool_content: + tool_content = "{}" + formatted_messages.append({ + "role": "tool", + "tool_call_id": item.get("tool_use_id", ""), + "content": tool_content + }) + elif msg.get("tool_calls"): + # Assistant message with tool calls — omit content field. + # Databricks FMAPI cannot convert content + tool_calls together + # to Anthropic format; it drops tool_result pairing. Always send + # tool_calls-only assistant messages (OpenAI spec allows this). + assistant_msg = { + "role": "assistant", + "tool_calls": [ + { + "id": tc.get("id", f"call_{i}"), + "type": "function", + "function": { + "name": tc["name"], + "arguments": json.dumps(tc.get("arguments", {})) + } + } + for i, tc in enumerate(msg["tool_calls"]) + ] + } + formatted_messages.append(assistant_msg) + else: + # For regular messages, ensure content is non-empty + content = msg.get("content", "") + if not content and msg.get("role") == "assistant": + content = "I'll help you with that." + formatted_messages.append({ + "role": msg["role"], + "content": content + }) + + # Build request payload (OpenAI chat completions format) + payload = { + "messages": formatted_messages, + "max_tokens": max_tokens, + "temperature": temperature + } + + if tools: + payload["tools"] = self._convert_tools_to_openai_format(tools) + payload["tool_choice"] = "auto" + + client = await self._get_http_client() + + log_info(f"Sending request to Claude: {self._endpoint}") + log_info(f"Payload keys: {list(payload.keys())}, messages count: {len(formatted_messages)}") + + # Log message structure for debugging tool_use/tool_result issues + for i, msg in enumerate(formatted_messages): + role = msg.get("role", "?") + if role == "tool": + log_info(f" Formatted [{i}] tool: call_id={msg.get('tool_call_id', '?')[:30]}") + elif msg.get("tool_calls"): + tool_ids = [tc.get("id", "?")[:30] for tc in msg.get("tool_calls", [])] + log_info(f" Formatted [{i}] {role}: tool_calls={tool_ids}") + else: + content_preview = str(msg.get("content", ""))[:40] + log_info(f" Formatted [{i}] {role}: {content_preview}...") + + try: + response = await client.post( + self._endpoint, + json=payload, + headers={ + "Authorization": f"Bearer {self._token}", + "Content-Type": "application/json" + } + ) + + log_info(f"Response status: {response.status_code}") + + if response.status_code != 200: + error_text = response.text + log_error(f"Claude API error: {response.status_code} - {error_text}") + raise Exception(f"Claude API error: {response.status_code} - {error_text[:500]}") + + result = response.json() + log_info(f"Response keys: {list(result.keys())}") + + # Record usage + usage = result.get("usage", {}) + self._record_usage( + usage.get("prompt_tokens", estimated_input), + usage.get("completion_tokens", 0) + ) + + return self._parse_openai_response(result) + + except httpx.HTTPStatusError as e: + log_error(f"Claude API HTTP error: {e.response.status_code} - {e.response.text}") + if e.response.status_code == 429: + raise Exception("AI service is temporarily rate limited. Please try again in a moment.") + raise Exception(f"AI service error: {e.response.status_code}") + except Exception as e: + log_error(f"Claude API request failed: {e}") + raise + + async def chat_stream( + self, + messages: List[Dict[str, Any]], + tools: Optional[List[Dict[str, Any]]] = None, + max_tokens: int = 4096, + temperature: float = 0.0, + system: Optional[str] = None + ) -> AsyncGenerator[Dict[str, Any], None]: + """ + Send a streaming chat request to Claude using OpenAI-compatible format. + """ + if not self._token: + yield {"type": "error", "content": "No authentication token provided"} + return + + estimated_input = sum(len(str(m.get('content', ''))) // 4 for m in messages) + if system: + estimated_input += len(system) // 4 + + if not self._check_rate_limits(estimated_input): + yield {"type": "error", "content": "Rate limit exceeded. Please wait before making more requests."} + return + + # Build messages with system message first + formatted_messages = [] + if system: + formatted_messages.append({"role": "system", "content": system}) + + for msg in messages: + if msg.get("role") == "user" and isinstance(msg.get("content"), list): + for item in msg["content"]: + if item.get("type") == "tool_result": + # Ensure tool result content is non-empty + tool_content = item.get("content", "") + if not tool_content: + tool_content = "{}" + formatted_messages.append({ + "role": "tool", + "tool_call_id": item.get("tool_use_id", ""), + "content": tool_content + }) + elif msg.get("tool_calls"): + # For assistant messages with tool calls, content can be omitted if empty + assistant_msg = { + "role": "assistant", + "tool_calls": [ + { + "id": tc.get("id", f"call_{i}"), + "type": "function", + "function": { + "name": tc["name"], + "arguments": json.dumps(tc.get("arguments", {})) + } + } + for i, tc in enumerate(msg["tool_calls"]) + ] + } + # Only include content if it's non-empty + content = msg.get("content", "") + if content: + assistant_msg["content"] = content + formatted_messages.append(assistant_msg) + else: + # For regular messages, ensure content is non-empty + content = msg.get("content", "") + if not content and msg.get("role") == "assistant": + content = "I'll help you with that." + formatted_messages.append({ + "role": msg["role"], + "content": content + }) + + # Build request payload with streaming + payload = { + "messages": formatted_messages, + "max_tokens": max_tokens, + "temperature": temperature, + "stream": True + } + + if tools: + payload["tools"] = self._convert_tools_to_openai_format(tools) + payload["tool_choice"] = "auto" + + client = await self._get_http_client() + + log_info(f"Sending streaming request to Claude: {self._endpoint}") + + # Log message structure for debugging tool_use/tool_result issues (streaming) + log_info(f"Streaming request - {len(formatted_messages)} formatted messages:") + for i, msg in enumerate(formatted_messages): + role = msg.get("role", "?") + if role == "tool": + log_info(f" Fmt [{i}] tool: call_id={msg.get('tool_call_id', '?')[:30]}") + elif msg.get("tool_calls"): + tool_ids = [tc.get("id", "?")[:30] for tc in msg.get("tool_calls", [])] + log_info(f" Fmt [{i}] {role}: tool_calls={tool_ids}") + else: + content_preview = str(msg.get("content", ""))[:40] + log_info(f" Fmt [{i}] {role}: {content_preview}...") + + try: + async with client.stream( + "POST", + self._endpoint, + json=payload, + headers={ + "Authorization": f"Bearer {self._token}", + "Content-Type": "application/json" + } + ) as response: + if response.status_code != 200: + error_text = await response.aread() + error_decoded = error_text.decode() + log_error(f"Claude streaming error: {response.status_code} - {error_decoded}") + + # Try to extract meaningful error message + try: + error_json = json.loads(error_decoded) + error_msg = error_json.get("error", {}).get("message", "") or error_json.get("message", "") or error_decoded[:200] + except: + error_msg = error_decoded[:200] if len(error_decoded) > 200 else error_decoded + + if response.status_code == 400: + yield {"type": "error", "content": f"Request error: {error_msg}. Try clearing the conversation."} + elif response.status_code == 429: + yield {"type": "error", "content": "Rate limited. Please wait a moment and try again."} + else: + yield {"type": "error", "content": f"AI service error ({response.status_code}): {error_msg}"} + return + + output_tokens = 0 + current_tool_calls = [] + + async for line in response.aiter_lines(): + if not line or not line.startswith("data: "): + continue + + data = line[6:] + if data == "[DONE]": + break + + try: + chunk = json.loads(data) + + # Parse OpenAI streaming format + choices = chunk.get("choices", []) + if not choices: + continue + + delta = choices[0].get("delta", {}) + finish_reason = choices[0].get("finish_reason") + + # Text content + if delta.get("content"): + output_tokens += 1 + yield {"type": "content_delta", "content": delta["content"]} + + # Tool calls + if delta.get("tool_calls"): + for tc in delta["tool_calls"]: + tc_index = tc.get("index", 0) + + # Extend list if needed + while len(current_tool_calls) <= tc_index: + current_tool_calls.append({ + "id": "", + "name": "", + "arguments": "" + }) + + if tc.get("id"): + current_tool_calls[tc_index]["id"] = tc["id"] + if tc.get("function", {}).get("name"): + current_tool_calls[tc_index]["name"] = tc["function"]["name"] + yield {"type": "tool_use_start", "id": tc["id"], "name": tc["function"]["name"]} + if tc.get("function", {}).get("arguments"): + current_tool_calls[tc_index]["arguments"] += tc["function"]["arguments"] + + if finish_reason == "tool_calls" and current_tool_calls: + # Parse and yield complete tool calls + for tc in current_tool_calls: + try: + args = json.loads(tc["arguments"]) if tc["arguments"] else {} + yield { + "type": "tool_call_complete", + "id": tc["id"], + "name": tc["name"], + "arguments": args + } + except json.JSONDecodeError: + pass + + if finish_reason: + yield {"type": "message_delta", "stop_reason": finish_reason} + + except json.JSONDecodeError: + continue + + self._record_usage(estimated_input, output_tokens) + yield {"type": "done"} + + except Exception as e: + log_error(f"Claude streaming error: {e}") + yield {"type": "error", "content": str(e)} + + def _parse_openai_response(self, response: Dict[str, Any]) -> Dict[str, Any]: + """Parse OpenAI chat completions response format.""" + result = { + "content": "", + "tool_calls": [], + "usage": response.get("usage", {}), + "stop_reason": None + } + + choices = response.get("choices", []) + if choices: + choice = choices[0] + message = choice.get("message", {}) + + result["content"] = message.get("content", "") or "" + result["stop_reason"] = choice.get("finish_reason") + + # Parse tool calls + if message.get("tool_calls"): + for tc in message["tool_calls"]: + func = tc.get("function", {}) + try: + args = json.loads(func.get("arguments", "{}")) + except json.JSONDecodeError: + args = {} + + result["tool_calls"].append({ + "id": tc.get("id", ""), + "name": func.get("name", ""), + "arguments": args + }) + + return result + + +def get_claude_client(token: str, model: str = "databricks-claude-opus-4-6") -> ClaudeAIClient: + """Get a Claude client instance with the given token.""" + return ClaudeAIClient(token=token, model=model) diff --git a/lakemeter/backend/app/services/cache.py b/lakemeter/backend/app/services/cache.py new file mode 100644 index 00000000..932546ba --- /dev/null +++ b/lakemeter/backend/app/services/cache.py @@ -0,0 +1,40 @@ +"""In-memory TTL cache for Lakebase reference data.""" +import threading +import hashlib +import json +from cachetools import TTLCache + + +class ReferenceDataCache: + """Thread-safe TTL cache for reference data from Lakebase.""" + + def __init__(self, maxsize: int = 512, ttl: int = 3600): + self._cache = TTLCache(maxsize=maxsize, ttl=ttl) + self._lock = threading.Lock() + + def _make_key(self, prefix: str, **kwargs) -> str: + params_str = json.dumps(kwargs, sort_keys=True, default=str) + return f"{prefix}:{hashlib.md5(params_str.encode()).hexdigest()}" + + def get(self, prefix: str, **kwargs): + key = self._make_key(prefix, **kwargs) + with self._lock: + return self._cache.get(key) + + def set(self, prefix: str, value, **kwargs): + key = self._make_key(prefix, **kwargs) + with self._lock: + self._cache[key] = value + + def invalidate(self, prefix: str, **kwargs): + key = self._make_key(prefix, **kwargs) + with self._lock: + self._cache.pop(key, None) + + def clear(self): + with self._lock: + self._cache.clear() + + +# Singleton instance — 1-hour TTL for reference data +ref_cache = ReferenceDataCache(maxsize=512, ttl=3600) diff --git a/lakemeter/backend/app/services/lakebase_queries.py b/lakemeter/backend/app/services/lakebase_queries.py new file mode 100644 index 00000000..9e8d2dfa --- /dev/null +++ b/lakemeter/backend/app/services/lakebase_queries.py @@ -0,0 +1,174 @@ +""" +Shared Lakebase SQL query functions. +Used by reference and calculation route modules. +""" +from sqlalchemy import text +from sqlalchemy.orm import Session +from typing import Optional, Dict, Any +import logging + +logger = logging.getLogger(__name__) + + +def get_dbu_rate(db: Session, cloud: str, region: str, tier: str, product_type: str) -> Optional[Dict]: + """Get DBU rate for a product type in a specific cloud/region/tier.""" + query = text(""" + SELECT price_per_dbu + FROM lakemeter.sync_pricing_dbu_rates + WHERE UPPER(cloud) = UPPER(:cloud) + AND UPPER(region) = UPPER(:region) + AND UPPER(tier) = UPPER(:tier) + AND (UPPER(product_type) = UPPER(:product_type) OR UPPER(sku_name) = UPPER(:product_type)) + LIMIT 1 + """) + result = db.execute(query, { + "cloud": cloud, "region": region, "tier": tier, "product_type": product_type, + }) + row = result.fetchone() + if not row: + return None + return {"dbu_price": float(row.price_per_dbu), "dbu_per_hour": None} + + +def get_instance_info(db: Session, cloud: str, instance_type: str) -> Optional[Dict]: + """Get instance specs (vCPU, memory, family, DBU rate).""" + query = text(""" + SELECT instance_type, vcpus, memory_gb, instance_family, dbu_rate + FROM lakemeter.sync_ref_instance_dbu_rates + WHERE cloud = :cloud AND instance_type = :instance_type + """) + result = db.execute(query, {"cloud": cloud.upper(), "instance_type": instance_type}) + row = result.fetchone() + if not row: + return None + return { + "instance_type": row.instance_type, + "vcpus": row.vcpus, + "memory_gb": float(row.memory_gb), + "instance_family": row.instance_family, + "dbu_rate": float(row.dbu_rate), + } + + +def get_vm_cost( + db: Session, cloud: str, region: str, instance_type: str, + pricing_tier: str = "on_demand", payment_option: str = "NA", +) -> Optional[float]: + """Get VM cost per hour for a specific instance/region/pricing config.""" + query = text(""" + SELECT cost_per_hour + FROM lakemeter.sync_pricing_vm_costs + WHERE UPPER(cloud) = UPPER(:cloud) + AND region = :region + AND instance_type = :instance_type + AND pricing_tier = :pricing_tier + AND COALESCE(payment_option, 'NA') = :payment_option + LIMIT 1 + """) + result = db.execute(query, { + "cloud": cloud, "region": region, "instance_type": instance_type, + "pricing_tier": pricing_tier, "payment_option": payment_option, + }) + row = result.fetchone() + return float(row.cost_per_hour) if row else None + + +def get_product_type_for_pricing( + db: Session, workload_type: str, serverless_enabled: bool = False, + photon_enabled: bool = False, dlt_edition: str = None, + dbsql_warehouse_type: str = None, fmapi_provider: str = None, +) -> Optional[str]: + """Call the lakemeter.get_product_type_for_pricing() SQL function.""" + query = text(""" + SELECT lakemeter.get_product_type_for_pricing( + :workload_type, :serverless_enabled, :photon_enabled, + :dlt_edition, :dbsql_warehouse_type, :fmapi_provider + ) as product_type + """) + result = db.execute(query, { + "workload_type": workload_type.upper(), + "serverless_enabled": serverless_enabled, + "photon_enabled": photon_enabled, + "dlt_edition": dlt_edition.upper() if dlt_edition else None, + "dbsql_warehouse_type": dbsql_warehouse_type.upper() if dbsql_warehouse_type else None, + "fmapi_provider": fmapi_provider.upper() if fmapi_provider else None, + }) + row = result.fetchone() + return row.product_type if row and row.product_type else None + + +def call_calculate_line_item_costs(db: Session, params: Dict[str, Any]): + """ + Call the lakemeter.calculate_line_item_costs() PostgreSQL function. + Accepts params dict with keys p1-p35 matching the 35 positional parameters. + Returns a SQLAlchemy row object, or None on failure. + """ + query = text(""" + SELECT + dbu_per_hour, hours_per_month, dbu_per_month, dbu_price, + dbu_cost_per_month, driver_vm_cost_per_hour, worker_vm_cost_per_hour, + total_vm_cost_per_hour, driver_vm_cost_per_month, + total_worker_vm_cost_per_month, vm_cost_per_month, cost_per_month + FROM lakemeter.calculate_line_item_costs( + CAST(:p1 AS VARCHAR), CAST(:p2 AS VARCHAR), CAST(:p3 AS VARCHAR), CAST(:p4 AS VARCHAR), + CAST(:p5 AS BOOLEAN), CAST(:p6 AS BOOLEAN), CAST(:p7 AS VARCHAR), CAST(:p8 AS VARCHAR), + CAST(:p9 AS VARCHAR), CAST(:p10 AS INT), CAST(:p11 AS VARCHAR), CAST(:p12 AS VARCHAR), + CAST(:p13 AS INT), CAST(:p14 AS INT), CAST(:p15 AS INT), CAST(:p16 AS INT), + CAST(:p17 AS VARCHAR), CAST(:p18 AS VARCHAR), CAST(:p19 AS VARCHAR), CAST(:p20 AS INT), + CAST(:p21 AS VARCHAR), CAST(:p22 AS VARCHAR), CAST(:p23 AS DECIMAL), CAST(:p24 AS VARCHAR), + CAST(:p25 AS VARCHAR), CAST(:p26 AS VARCHAR), CAST(:p27 AS VARCHAR), CAST(:p28 AS VARCHAR), + CAST(:p29 AS VARCHAR), CAST(:p30 AS BIGINT), CAST(:p31 AS INT), CAST(:p32 AS INT), + CAST(:p33 AS VARCHAR), CAST(:p34 AS VARCHAR), CAST(:p35 AS VARCHAR) + ) + """) + try: + result = db.execute(query, params) + return result.fetchone() + except Exception as e: + logger.error(f"calculate_line_item_costs failed: {e}") + raise + + +def get_sku_type( + workload_type: str, serverless_enabled: bool = False, + photon_enabled: bool = False, dlt_edition: str = None, + dbsql_warehouse_type: str = None, fmapi_provider: str = None, +) -> str: + """Determine the SKU product type based on workload configuration.""" + wt = workload_type.upper() + + if wt == "JOBS": + if serverless_enabled: + return "JOBS_SERVERLESS_COMPUTE" + return "JOBS_COMPUTE_(PHOTON)" if photon_enabled else "JOBS_COMPUTE" + + if wt == "ALL_PURPOSE": + if serverless_enabled: + return "INTERACTIVE_SERVERLESS_COMPUTE" + return "ALL_PURPOSE_COMPUTE_(PHOTON)" if photon_enabled else "ALL_PURPOSE_COMPUTE" + + if wt == "DLT": + if serverless_enabled: + return "DELTA_LIVE_TABLES_SERVERLESS" + edition = (dlt_edition or "CORE").upper() + base = f"DLT_{edition}_COMPUTE" + return f"{base}_(PHOTON)" if photon_enabled else base + + if wt == "DBSQL": + wh = (dbsql_warehouse_type or "CLASSIC").upper() + if wh == "SERVERLESS": + return "SERVERLESS_SQL_COMPUTE" + return "SQL_PRO_COMPUTE" if wh == "PRO" else "SQL_COMPUTE" + + if wt == "VECTOR_SEARCH": + return "VECTOR_SEARCH_ENDPOINT" + if wt == "MODEL_SERVING": + return "SERVERLESS_REAL_TIME_INFERENCE" + if wt == "FMAPI_DATABRICKS": + return "SERVERLESS_REAL_TIME_INFERENCE" + if wt == "FMAPI_PROPRIETARY": + return f"{fmapi_provider.upper()}_MODEL_SERVING" if fmapi_provider else "MODEL_SERVING" + if wt == "LAKEBASE": + return "DATABASE_SERVERLESS_COMPUTE" + + return "JOBS_COMPUTE" diff --git a/lakemeter/backend/app/services/validators.py b/lakemeter/backend/app/services/validators.py new file mode 100644 index 00000000..56876e0f --- /dev/null +++ b/lakemeter/backend/app/services/validators.py @@ -0,0 +1,584 @@ +""" +Validation functions for API endpoints. +Ported from database_backend/steven_api_backend/validators.py (async→sync). +All validators return None if valid, or an error dict if invalid. +""" +from sqlalchemy import text +from sqlalchemy.orm import Session +from typing import Dict, Optional, Union + + +def validate_cloud(cloud: str) -> Optional[Dict]: + VALID_CLOUDS = ["AWS", "AZURE", "GCP"] + if cloud.upper() not in VALID_CLOUDS: + return { + "success": False, + "error": { + "code": "INVALID_CLOUD", + "message": f"Invalid cloud provider '{cloud}'. Must be one of: {', '.join(VALID_CLOUDS)}", + "field": "cloud", + "allowed_values": VALID_CLOUDS, + }, + } + return None + + +def validate_region(cloud: str, region: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT DISTINCT region_code, sku_region + FROM lakemeter.sync_ref_sku_region_map + WHERE cloud = :cloud + ORDER BY sku_region + """) + result = db.execute(query, {"cloud": cloud.upper()}) + valid_regions = [{"region_code": r.region_code, "sku_region": r.sku_region} for r in result.fetchall()] + valid_region_codes = [r["region_code"] for r in valid_regions] + + if region not in valid_region_codes: + return { + "success": False, + "error": { + "code": "INVALID_REGION", + "message": f"Invalid region '{region}' for {cloud.upper()}.", + "field": "region", + "allowed_values": valid_regions, + }, + } + return None + + +def validate_tier(cloud: str, tier: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT DISTINCT tier + FROM lakemeter.sync_pricing_dbu_rates + WHERE cloud = :cloud + ORDER BY tier + """) + result = db.execute(query, {"cloud": cloud.upper()}) + valid_tiers = [r.tier for r in result.fetchall()] + + if not valid_tiers: + valid_tiers = ["STANDARD", "PREMIUM"] + if cloud.upper() != "AZURE": + valid_tiers.append("ENTERPRISE") + + if tier.upper() not in [t.upper() for t in valid_tiers]: + cloud_note = "" + if cloud.upper() == "AZURE" and tier.upper() == "ENTERPRISE": + cloud_note = " (Note: Azure does not support ENTERPRISE tier)" + return { + "success": False, + "error": { + "code": "INVALID_TIER", + "message": f"Invalid tier '{tier}' for cloud '{cloud}'. Must be one of: {', '.join(valid_tiers)}{cloud_note}", + "field": "tier", + "allowed_values": valid_tiers, + }, + } + return None + + +def validate_instance_family(instance_family: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT DISTINCT instance_family + FROM lakemeter.sync_ref_instance_dbu_rates + ORDER BY instance_family + """) + result = db.execute(query) + valid_families = [r.instance_family for r in result.fetchall()] + + if instance_family not in valid_families: + return { + "success": False, + "error": { + "code": "INVALID_INSTANCE_FAMILY", + "message": f"Invalid instance family '{instance_family}'.", + "field": "instance_family", + "allowed_values": valid_families, + }, + } + return None + + +def validate_instance_type(cloud: str, instance_type: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT instance_type, vcpus, memory_gb, instance_family, dbu_rate + FROM lakemeter.sync_ref_instance_dbu_rates + WHERE cloud = :cloud AND instance_type = :instance_type + """) + result = db.execute(query, {"cloud": cloud.upper(), "instance_type": instance_type}) + instance_info = result.fetchone() + + if not instance_info: + available_query = text(""" + SELECT instance_type + FROM lakemeter.sync_ref_instance_dbu_rates + WHERE cloud = :cloud + ORDER BY instance_type + LIMIT 20 + """) + available_result = db.execute(available_query, {"cloud": cloud.upper()}) + available_types = [r.instance_type for r in available_result.fetchall()] + return { + "success": False, + "error": { + "code": "INVALID_INSTANCE_TYPE", + "message": f"Instance type '{instance_type}' not found for {cloud.upper()}.", + "field": "instance_type", + "allowed_values": available_types, + }, + } + return None + + +def get_instance_info(cloud: str, instance_type: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT instance_type, vcpus, memory_gb, instance_family, dbu_rate + FROM lakemeter.sync_ref_instance_dbu_rates + WHERE cloud = :cloud AND instance_type = :instance_type + """) + result = db.execute(query, {"cloud": cloud.upper(), "instance_type": instance_type}) + row = result.fetchone() + if not row: + return None + return { + "vcpus": row.vcpus, + "memory_gb": float(row.memory_gb), + "instance_family": row.instance_family, + "dbu_rate": float(row.dbu_rate), + } + + +def validate_pricing_tier(pricing_tier: str, is_driver: bool = False) -> Optional[Dict]: + VALID_PRICING_TIERS = ["on_demand", "spot", "reserved_1y", "reserved_3y"] + VALID_DRIVER_PRICING_TIERS = ["on_demand", "reserved_1y", "reserved_3y"] + + if pricing_tier.lower() not in VALID_PRICING_TIERS: + return { + "success": False, + "error": { + "code": "INVALID_PRICING_TIER", + "message": f"Invalid pricing tier '{pricing_tier}'. Must be one of: {', '.join(VALID_PRICING_TIERS)}", + "field": "pricing_tier", + "allowed_values": VALID_PRICING_TIERS, + }, + } + if is_driver and pricing_tier.lower() == "spot": + return { + "success": False, + "error": { + "code": "INVALID_DRIVER_PRICING_TIER", + "message": f"Driver nodes cannot use spot pricing tier.", + "field": "driver_pricing_tier", + "allowed_values": VALID_DRIVER_PRICING_TIERS, + }, + } + return None + + +def validate_payment_option(payment_option: str) -> Optional[Dict]: + VALID_PAYMENT_OPTIONS = ["NA", "no_upfront", "partial_upfront", "all_upfront"] + if payment_option not in VALID_PAYMENT_OPTIONS: + return { + "success": False, + "error": { + "code": "INVALID_PAYMENT_OPTION", + "message": f"Invalid payment option '{payment_option}'. Must be one of: {', '.join(VALID_PAYMENT_OPTIONS)}", + "field": "payment_option", + "allowed_values": VALID_PAYMENT_OPTIONS, + }, + } + return None + + +def validate_pricing_payment_combination(cloud: str, pricing_tier: str, payment_option: str) -> Optional[Dict]: + pricing_lower = pricing_tier.lower() + cloud_upper = cloud.upper() + + if cloud_upper in ["AZURE", "GCP"]: + if payment_option != "NA": + return { + "success": False, + "error": { + "code": "INVALID_PAYMENT_OPTION_FOR_CLOUD", + "message": f"Payment option must be 'NA' for {cloud_upper}.", + "field": "payment_option", + "allowed_values": ["NA"], + }, + } + return None + + if cloud_upper == "AWS": + if pricing_lower in ["on_demand", "spot"]: + if payment_option != "NA": + return { + "success": False, + "error": { + "code": "INVALID_PAYMENT_OPTION_FOR_PRICING_TIER", + "message": f"Payment option must be 'NA' for '{pricing_tier}' on AWS.", + "field": "payment_option", + "allowed_values": ["NA"], + }, + } + elif pricing_lower in ["reserved_1y", "reserved_3y"]: + if payment_option == "NA": + return { + "success": False, + "error": { + "code": "INVALID_PAYMENT_OPTION_FOR_PRICING_TIER", + "message": f"Payment option cannot be 'NA' for '{pricing_tier}' on AWS. Must specify: no_upfront, partial_upfront, or all_upfront.", + "field": "payment_option", + "allowed_values": ["no_upfront", "partial_upfront", "all_upfront"], + }, + } + elif payment_option not in ["no_upfront", "partial_upfront", "all_upfront"]: + return { + "success": False, + "error": { + "code": "INVALID_PAYMENT_OPTION_FOR_PRICING_TIER", + "message": f"Invalid payment option '{payment_option}' for '{pricing_tier}' on AWS.", + "field": "payment_option", + "allowed_values": ["no_upfront", "partial_upfront", "all_upfront"], + }, + } + return None + + +def validate_warehouse_type(warehouse_type: str) -> Optional[Dict]: + VALID_TYPES = ["CLASSIC", "PRO", "SERVERLESS"] + if warehouse_type.upper() not in VALID_TYPES: + return { + "success": False, + "error": { + "code": "INVALID_WAREHOUSE_TYPE", + "message": f"Invalid warehouse type '{warehouse_type}'. Must be one of: {', '.join(VALID_TYPES)}", + "field": "warehouse_type", + "allowed_values": VALID_TYPES, + }, + } + return None + + +def validate_warehouse_size(cloud: str, warehouse_type: str, warehouse_size: str, db: Session) -> Optional[Dict]: + if warehouse_type.upper() == "SERVERLESS": + query = text(""" + SELECT DISTINCT warehouse_size + FROM lakemeter.sync_product_dbsql_rates + WHERE UPPER(cloud) = :cloud AND UPPER(warehouse_type) = 'SERVERLESS' + """) + else: + # Note: In the OSS DB, column names are swapped: + # warehouse_size = type ("classic"/"pro"), warehouse_type = size ("2X-Small" etc) + query = text(""" + SELECT DISTINCT warehouse_type AS warehouse_size + FROM lakemeter.sync_ref_dbsql_warehouse_config + WHERE cloud = :cloud AND UPPER(warehouse_size) = UPPER(:warehouse_type) + """) + + result = db.execute(query, {"cloud": cloud.upper(), "warehouse_type": warehouse_type}) + valid_sizes = [r.warehouse_size for r in result.fetchall()] + + if not any(warehouse_size.upper() == s.upper() for s in valid_sizes): + return { + "success": False, + "error": { + "code": "INVALID_WAREHOUSE_SIZE", + "message": f"Invalid warehouse size '{warehouse_size}' for {cloud.upper()} {warehouse_type.upper()}. Must be one of: {', '.join(valid_sizes)}", + "field": "warehouse_size", + "allowed_values": valid_sizes, + }, + } + return None + + +def validate_lakebase_cu_size(cu_size: float) -> Optional[Dict]: + VALID_CU_SIZES = [ + 0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, + ] + if float(cu_size) not in VALID_CU_SIZES: + return { + "success": False, + "error": { + "code": "INVALID_CU_SIZE", + "message": f"Invalid CU size '{cu_size}'. Valid autoscaling sizes: 0.5, 1-32. Fixed sizes: 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112.", + "field": "cu_size", + "allowed_values": VALID_CU_SIZES, + }, + } + return None + + +def validate_lakebase_num_nodes(num_nodes: int) -> Optional[Dict]: + if num_nodes < 1 or num_nodes > 3: + return { + "success": False, + "error": { + "code": "INVALID_NUM_NODES", + "message": f"Invalid number of nodes '{num_nodes}'. Must be between 1 and 3.", + "field": "num_nodes", + "allowed_values": [1, 2, 3], + }, + } + return None + + +def validate_vector_search_mode(mode: str, cloud: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT DISTINCT size_or_model as mode + FROM lakemeter.sync_product_serverless_rates + WHERE product = 'vector_search' AND cloud = :cloud + ORDER BY mode + """) + result = db.execute(query, {"cloud": cloud.upper()}) + valid_modes = [r.mode for r in result.fetchall()] + + if not valid_modes: + return { + "success": False, + "error": {"code": "NO_DATA", "message": f"No Vector Search modes found for cloud '{cloud}'", "field": "mode"}, + } + if mode not in valid_modes: + return { + "success": False, + "error": { + "code": "INVALID_MODE", + "message": f"Invalid Vector Search mode '{mode}' for {cloud}. Must be one of: {', '.join(valid_modes)}", + "field": "mode", + "allowed_values": valid_modes, + }, + } + return None + + +def validate_photon_sku_type(cloud: str, sku_type: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT DISTINCT sku_type + FROM lakemeter.sync_ref_dbu_multipliers + WHERE feature = 'photon' AND cloud = :cloud + ORDER BY sku_type + """) + result = db.execute(query, {"cloud": cloud.upper()}) + valid_types = [r.sku_type for r in result.fetchall()] + + if not valid_types: + return { + "success": False, + "error": {"code": "NO_DATA", "message": f"No Photon multipliers found for cloud '{cloud}'", "field": "sku_type"}, + } + if sku_type not in valid_types: + return { + "success": False, + "error": { + "code": "INVALID_SKU_TYPE", + "message": f"Invalid SKU type '{sku_type}' for Photon in {cloud}. Must be one of: {', '.join(valid_types)}", + "field": "sku_type", + "allowed_values": valid_types, + }, + } + return None + + +def validate_product_type(cloud: str, region: str, product_type: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT DISTINCT product_type + FROM lakemeter.sync_pricing_dbu_rates + WHERE cloud = :cloud AND region = :region + ORDER BY product_type + """) + result = db.execute(query, {"cloud": cloud.upper(), "region": region}) + valid_types = [r.product_type for r in result.fetchall()] + + if product_type.upper() not in [pt.upper() for pt in valid_types]: + return { + "success": False, + "error": { + "code": "INVALID_PRODUCT_TYPE", + "message": f"Invalid product type '{product_type}' for {cloud}/{region}.", + "field": "product_type", + "allowed_values": valid_types, + }, + } + return None + + +def validate_fmapi_databricks_model(model: str, db: Session) -> Optional[Dict]: + query = text("SELECT DISTINCT model FROM lakemeter.sync_product_fmapi_databricks ORDER BY model") + result = db.execute(query) + valid_models = [r.model for r in result.fetchall()] + if model not in valid_models: + return { + "success": False, + "error": { + "code": "INVALID_MODEL", + "message": f"Invalid model '{model}'.", + "field": "model", + "allowed_values": valid_models, + }, + } + return None + + +def validate_fmapi_databricks_rate_type(model: str, rate_type: str, db: Session) -> Optional[Dict]: + query = text("SELECT DISTINCT rate_type FROM lakemeter.sync_product_fmapi_databricks WHERE model = :model ORDER BY rate_type") + result = db.execute(query, {"model": model}) + valid_types = [r.rate_type for r in result.fetchall()] + if not valid_types: + return {"success": False, "error": {"code": "NO_DATA", "message": f"No rate types found for model '{model}'", "field": "rate_type"}} + if rate_type not in valid_types: + return { + "success": False, + "error": { + "code": "INVALID_RATE_TYPE", + "message": f"Invalid rate type '{rate_type}' for model '{model}'. Must be one of: {', '.join(valid_types)}", + "field": "rate_type", + "allowed_values": valid_types, + }, + } + return None + + +def validate_fmapi_proprietary_provider(provider: str, db: Session) -> Optional[Dict]: + query = text("SELECT DISTINCT provider FROM lakemeter.sync_product_fmapi_proprietary ORDER BY provider") + result = db.execute(query) + valid_providers = [r.provider for r in result.fetchall()] + if provider not in valid_providers: + return { + "success": False, + "error": { + "code": "INVALID_PROVIDER", + "message": f"Invalid provider '{provider}'. Must be one of: {', '.join(valid_providers)}", + "field": "provider", + "allowed_values": valid_providers, + }, + } + return None + + +def validate_fmapi_proprietary_model(model: str, provider: str, db: Session) -> Optional[Dict]: + query = text("SELECT DISTINCT model FROM lakemeter.sync_product_fmapi_proprietary WHERE provider = :provider ORDER BY model") + result = db.execute(query, {"provider": provider.lower()}) + valid_models = [r.model for r in result.fetchall()] + if model not in valid_models: + return { + "success": False, + "error": { + "code": "INVALID_MODEL", + "message": f"Invalid model '{model}' for provider '{provider}'.", + "field": "model", + "allowed_values": valid_models, + }, + } + return None + + +def validate_fmapi_proprietary_endpoint_type(provider: str, model: str, endpoint_type: str, db: Session) -> Optional[Dict]: + query = text(""" + SELECT DISTINCT endpoint_type FROM lakemeter.sync_product_fmapi_proprietary + WHERE provider = :provider AND model = :model ORDER BY endpoint_type + """) + result = db.execute(query, {"provider": provider.lower(), "model": model}) + valid_types = [r.endpoint_type for r in result.fetchall()] + if endpoint_type not in valid_types: + return { + "success": False, + "error": { + "code": "INVALID_ENDPOINT_TYPE", + "message": f"Invalid endpoint type '{endpoint_type}' for {provider}/{model}. Must be one of: {', '.join(valid_types)}", + "field": "endpoint_type", + "allowed_values": valid_types, + }, + } + return None + + +def validate_fmapi_proprietary_context_length( + provider: str, model: str, context_length: str, + endpoint_type: str = None, db: Session = None, +) -> Optional[Dict]: + where = ["provider = :provider", "model = :model"] + params = {"provider": provider.lower(), "model": model} + if endpoint_type: + where.append("endpoint_type = :endpoint_type") + params["endpoint_type"] = endpoint_type + + query = text(f"SELECT DISTINCT context_length FROM lakemeter.sync_product_fmapi_proprietary WHERE {' AND '.join(where)} ORDER BY context_length") + result = db.execute(query, params) + valid_lengths = [r.context_length for r in result.fetchall()] + + if not valid_lengths: + return {"success": False, "error": {"code": "NO_DATA", "message": f"No context lengths found for {provider}/{model}", "field": "context_length"}} + if context_length not in valid_lengths: + return { + "success": False, + "error": { + "code": "INVALID_CONTEXT_LENGTH", + "message": f"Invalid context length '{context_length}' for {provider}/{model}. Must be one of: {', '.join(valid_lengths)}", + "field": "context_length", + "allowed_values": valid_lengths, + }, + } + return None + + +def validate_fmapi_proprietary_rate_type( + provider: str, model: str, rate_type: str, + endpoint_type: str = None, context_length: str = None, db: Session = None, +) -> Optional[Dict]: + where = ["provider = :provider", "model = :model"] + params = {"provider": provider.lower(), "model": model} + if endpoint_type: + where.append("endpoint_type = :endpoint_type") + params["endpoint_type"] = endpoint_type + if context_length: + where.append("context_length = :context_length") + params["context_length"] = context_length + + query = text(f"SELECT DISTINCT rate_type FROM lakemeter.sync_product_fmapi_proprietary WHERE {' AND '.join(where)} ORDER BY rate_type") + result = db.execute(query, params) + valid_types = [r.rate_type for r in result.fetchall()] + + if not valid_types: + return {"success": False, "error": {"code": "NO_DATA", "message": f"No rate types found for {provider}/{model}", "field": "rate_type"}} + if rate_type not in valid_types: + return { + "success": False, + "error": { + "code": "INVALID_RATE_TYPE", + "message": f"Invalid rate type '{rate_type}' for {provider}/{model}. Must be one of: {', '.join(valid_types)}", + "field": "rate_type", + "allowed_values": valid_types, + }, + } + return None + + +def validate_sku_specific_discounts(sku_specific: dict, db: Session) -> Optional[Dict]: + if not sku_specific: + return None + query = text("SELECT sku, discount_category, workload_group, description FROM lakemeter.sku_discount_mapping ORDER BY workload_group, sku") + result = db.execute(query) + rows = result.fetchall() + valid_skus = [row[0] for row in rows] + invalid_skus = [sku for sku in sku_specific.keys() if sku not in valid_skus] + if invalid_skus: + return { + "success": False, + "error": { + "code": "INVALID_SKU_IN_DISCOUNT_CONFIG", + "message": f"Invalid SKU(s): {', '.join(invalid_skus)}", + "field": "discount_config.sku_specific", + "invalid_skus": invalid_skus, + "valid_skus": valid_skus, + }, + } + return None + + +def validate_pagination(limit: int, offset: int) -> Optional[Dict]: + if limit < 1 or limit > 1000: + return {"success": False, "error": {"code": "INVALID_LIMIT", "message": f"Limit must be between 1 and 1000. Got: {limit}", "field": "limit"}} + if offset < 0: + return {"success": False, "error": {"code": "INVALID_OFFSET", "message": f"Offset must be >= 0. Got: {offset}", "field": "offset"}} + return None diff --git a/lakemeter/backend/requirements.txt b/lakemeter/backend/requirements.txt new file mode 100644 index 00000000..781d96b4 --- /dev/null +++ b/lakemeter/backend/requirements.txt @@ -0,0 +1,13 @@ +fastapi>=0.104.0 +uvicorn>=0.24.0 +sqlalchemy>=2.0.0 +psycopg2-binary>=2.9.9 +pydantic>=2.5.0 +pydantic-settings>=2.1.0 +python-multipart>=0.0.6 +xlsxwriter>=3.1.9 +python-jose[cryptography]>=3.3.0 +passlib[bcrypt]>=1.7.4 +python-dotenv>=1.0.0 +cachetools>=5.3.0 +databricks-sdk>=0.56.0 diff --git a/lakemeter/backend/scripts/__init__.py b/lakemeter/backend/scripts/__init__.py new file mode 100644 index 00000000..2b5d5cb1 --- /dev/null +++ b/lakemeter/backend/scripts/__init__.py @@ -0,0 +1,2 @@ +# Scripts module + diff --git a/lakemeter/backend/scripts/generate_pricing_bundle.py b/lakemeter/backend/scripts/generate_pricing_bundle.py new file mode 100644 index 00000000..7078e0b6 --- /dev/null +++ b/lakemeter/backend/scripts/generate_pricing_bundle.py @@ -0,0 +1,653 @@ +#!/usr/bin/env python3 +""" +Generate static pricing bundle JSON files from Lakebase reference tables. + +This script queries Lakebase database and generates JSON files that the frontend +loads on app init for instant cost calculations (no runtime API calls). + +Tables queried: +1. lakemeter.sync_ref_instance_dbu_rates - Instance DBU rates +2. lakemeter.sync_ref_photon_multipliers - Photon multipliers +3. lakemeter.sync_pricing_vm_costs - VM pricing +4. lakemeter.sync_product_dbu_rates - DBU pricing ($/DBU) +5. lakemeter.sync_product_dbsql_rates - DBSQL warehouse DBU rates +6. lakemeter.sync_ref_dbsql_warehouse_config - DBSQL warehouse VM config +7. lakemeter.sync_product_serverless_rates - Vector Search & Model Serving rates +8. lakemeter.sync_product_fmapi_databricks - FMAPI Databricks rates +9. lakemeter.sync_product_fmapi_proprietary - FMAPI Proprietary rates + +Usage: + python backend/scripts/generate_pricing_bundle.py + +Output: + backend/static/pricing/*.json +""" + +import json +import os +import sys +from decimal import Decimal +from datetime import datetime + +# Add parent directory to path for imports +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from sqlalchemy import text + + +def decimal_default(obj): + """JSON serializer for Decimal types.""" + if isinstance(obj, Decimal): + return float(obj) + if isinstance(obj, datetime): + return obj.isoformat() + raise TypeError(f"Object of type {type(obj)} is not JSON serializable") + + +def ensure_output_dir(output_dir: str): + """Create output directory if it doesn't exist.""" + os.makedirs(output_dir, exist_ok=True) + print(f"📁 Output directory: {output_dir}") + + +def generate_instance_dbu_rates(conn, output_dir: str): + """ + Generate instance DBU rates from lakemeter.sync_ref_instance_dbu_rates. + + Output structure: + { + "aws": { + "m5.xlarge": {"dbu_rate": 0.5, "vcpus": 4, "memory_gb": 16, "family": "General Purpose"}, + ... + }, + "azure": {...}, + "gcp": {...} + } + """ + print("\n📊 Generating instance DBU rates...") + + result = conn.execute(text(""" + SELECT cloud, instance_type, dbu_rate, vcpus, memory_gb, instance_family + FROM lakemeter.sync_ref_instance_dbu_rates + ORDER BY cloud, instance_type + """)) + + data = {'aws': {}, 'azure': {}, 'gcp': {}} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + if cloud not in data: + data[cloud] = {} + + data[cloud][row['instance_type']] = { + 'dbu_rate': float(row['dbu_rate']) if row['dbu_rate'] else 0, + 'vcpus': row['vcpus'], + 'memory_gb': float(row['memory_gb']) if row['memory_gb'] else None, + 'family': row['instance_family'] + } + count += 1 + + output_file = os.path.join(output_dir, 'instance-dbu-rates.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} instance DBU rates") + return count + + +def generate_dbu_multipliers(conn, output_dir: str): + """ + Generate DBU multipliers from lakemeter.sync_ref_dbu_multipliers. + + This table contains ALL multipliers: + - Photon multipliers (feature = 'photon') + - Serverless multipliers (feature = 'serverless_dlt', 'serverless_jobs', 'serverless_notebook') + - Lakebase multipliers (sku_type = 'DATABASE_SERVERLESS_COMPUTE') + + Output structure (photon-multipliers.json): + { + "aws:JOBS_COMPUTE": {"multiplier": 2.0, "category": "CLASSIC_COMPUTE", "feature": "photon"}, + "aws:ALL_PURPOSE_COMPUTE": {"multiplier": 2.0, "category": "CLASSIC_COMPUTE", "feature": "photon"}, + ... + } + """ + print("\n⚡ Generating DBU multipliers (photon, serverless, lakebase)...") + + result = conn.execute(text(""" + SELECT cloud, sku_type, feature, multiplier, category + FROM lakemeter.sync_ref_dbu_multipliers + ORDER BY cloud, sku_type, feature + """)) + + data = {} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + feature = row['feature'] or 'unknown' + # Create key with feature to distinguish photon vs serverless for same SKU + key = f"{cloud}:{row['sku_type']}:{feature}" + data[key] = { + 'multiplier': float(row['multiplier']) if row['multiplier'] else 1.0, + 'category': row['category'], + 'feature': feature + } + count += 1 + + # Write to dbu-multipliers.json (renamed from photon-multipliers.json) + output_file = os.path.join(output_dir, 'dbu-multipliers.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} DBU multipliers (photon, serverless, lakebase)") + return count + + +def generate_vm_pricing(conn, output_dir: str): + """ + Generate VM pricing from lakemeter.sync_pricing_vm_costs. + + Output structure: + { + "aws:us-east-1:m5.xlarge:on_demand:NA": 0.192, + "aws:us-east-1:m5.xlarge:spot:NA": 0.058, + ... + } + """ + print("\n💰 Generating VM pricing...") + + result = conn.execute(text(""" + SELECT cloud, region, instance_type, pricing_tier, payment_option, cost_per_hour + FROM lakemeter.sync_pricing_vm_costs + ORDER BY cloud, region, instance_type, pricing_tier + """)) + + data = {} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + key = f"{cloud}:{row['region']}:{row['instance_type']}:{row['pricing_tier']}:{row['payment_option'] or 'NA'}" + data[key] = float(row['cost_per_hour']) if row['cost_per_hour'] else 0 + count += 1 + + output_file = os.path.join(output_dir, 'vm-costs.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} VM pricing entries") + return count + + +def generate_dbu_rates(conn, output_dir: str): + """ + Generate DBU pricing ($/DBU) from lakemeter.sync_pricing_dbu_rates. + + This table has both GLOBAL and REGIONAL pricing: + - GLOBAL: applies to all regions (sku_region is null) + - REGIONAL: specific to a region (sku_region has a value) + + Strategy: For each cloud/region/tier/product_type, use REGIONAL price if available, + otherwise fall back to GLOBAL price. + + Output structure: + { + "aws:us-east-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "ALL_PURPOSE_COMPUTE": 0.40, + ... + }, + ... + } + """ + print("\n💵 Generating DBU rates ($/DBU)...") + + # Product types we're interested in for cost calculations + # Include both base and _(PHOTON) variants, as well as provider-specific FMAPI rates + RELEVANT_PRODUCT_TYPES = [ + # Classic compute + 'JOBS_COMPUTE', 'JOBS_COMPUTE_(PHOTON)', 'JOBS_LIGHT_COMPUTE', + 'ALL_PURPOSE_COMPUTE', 'ALL_PURPOSE_COMPUTE_(PHOTON)', 'ALL_PURPOSE_COMPUTE_(DLT)', + # DLT + 'DLT_CORE_COMPUTE', 'DLT_CORE_COMPUTE_(PHOTON)', + 'DLT_PRO_COMPUTE', 'DLT_PRO_COMPUTE_(PHOTON)', + 'DLT_ADVANCED_COMPUTE', 'DLT_ADVANCED_COMPUTE_(PHOTON)', + # Serverless compute + 'JOBS_SERVERLESS_COMPUTE', 'ALL_PURPOSE_SERVERLESS_COMPUTE', + 'INTERACTIVE_SERVERLESS_COMPUTE', 'DELTA_LIVE_TABLES_SERVERLESS', + # SQL + 'SQL_COMPUTE', 'SQL_PRO_COMPUTE', 'SERVERLESS_SQL_COMPUTE', + # Inference/AI + 'SERVERLESS_REAL_TIME_INFERENCE', 'SERVERLESS_REAL_TIME_INFERENCE_LAUNCH', + 'MODEL_TRAINING', + # Provider-specific FMAPI (for $/DBU lookup) + 'OPENAI_MODEL_SERVING', 'ANTHROPIC_MODEL_SERVING', 'GEMINI_MODEL_SERVING', + # Lakebase + 'DATABASE_SERVERLESS_COMPUTE', + # Storage + 'DATABRICKS_STORAGE' + ] + + # Tiers to exclude from the bundle (deprecated tiers) + EXCLUDED_TIERS = ['STANDARD'] + + # Query all DBU rates (excluding deprecated tiers) + result = conn.execute(text(""" + SELECT cloud, tier, product_type, region, pricing_type, price_per_dbu + FROM lakemeter.sync_pricing_dbu_rates + WHERE product_type IN :product_types + AND tier NOT IN :excluded_tiers + ORDER BY cloud, region, tier, product_type, pricing_type + """), {"product_types": tuple(RELEVANT_PRODUCT_TYPES), "excluded_tiers": tuple(EXCLUDED_TIERS)}) + + # Build a lookup: cloud -> region -> tier -> product_type -> price + # For each combination, prefer REGIONAL over GLOBAL + global_rates = {} # cloud:tier:product_type -> price (global fallback) + regional_rates = {} # cloud:region:tier:product_type -> price (region-specific) + + # Also track all unique regions per cloud and all tiers per cloud + regions_per_cloud = {} # cloud -> set of regions + tiers_per_cloud = {} # cloud -> set of tiers + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + tier = row['tier'] + product_type = row['product_type'] + region = row['region'] + pricing_type = row['pricing_type'] + price = float(row['price_per_dbu']) if row['price_per_dbu'] else 0 + + # Track tiers + if cloud not in tiers_per_cloud: + tiers_per_cloud[cloud] = set() + tiers_per_cloud[cloud].add(tier) + + if pricing_type == 'GLOBAL': + global_key = f"{cloud}:{tier}:{product_type}" + global_rates[global_key] = price + else: # REGIONAL + regional_key = f"{cloud}:{region}:{tier}:{product_type}" + regional_rates[regional_key] = price + # Track regions - only REGIONAL pricing_type indicates an actual Databricks control plane + if cloud not in regions_per_cloud: + regions_per_cloud[cloud] = set() + regions_per_cloud[cloud].add(region) + + # Build output: for each cloud/region/tier, collect all product_type prices + data = {} + count = 0 + + # Get all unique cloud:region:tier combinations + # Key insight: We need to create entries for ALL tiers (including ENTERPRISE) + # for ALL regions, even if that tier only has GLOBAL rates + all_keys = set() + + # First, add all regional combinations found directly + for key in regional_rates.keys(): + parts = key.split(':') + all_keys.add(f"{parts[0]}:{parts[1]}:{parts[2]}") # cloud:region:tier + + # Then, for each cloud's regions, add entries for ALL tiers that cloud supports + # This ensures ENTERPRISE tier (which may only have GLOBAL rates) gets entries for all regions + for cloud, regions in regions_per_cloud.items(): + cloud_tiers = tiers_per_cloud.get(cloud, set()) + for region in regions: + for tier in cloud_tiers: + all_keys.add(f"{cloud}:{region}:{tier}") + + print(f" Found {len(regions_per_cloud)} clouds with regions, {len(all_keys)} total combinations") + + # Build the output data + for combo_key in sorted(all_keys): + parts = combo_key.split(':') + cloud, region, tier = parts[0], parts[1], parts[2] + + if combo_key not in data: + data[combo_key] = {} + + # For each product type, get regional price or fall back to global + for product_type in RELEVANT_PRODUCT_TYPES: + regional_key = f"{cloud}:{region}:{tier}:{product_type}" + global_key = f"{cloud}:{tier}:{product_type}" + + if regional_key in regional_rates: + data[combo_key][product_type] = regional_rates[regional_key] + count += 1 + elif global_key in global_rates: + data[combo_key][product_type] = global_rates[global_key] + count += 1 + + output_file = os.path.join(output_dir, 'dbu-rates.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} DBU rate entries across {len(data)} cloud/region/tier combinations") + return count + + +def generate_dbsql_rates(conn, output_dir: str): + """ + Generate DBSQL warehouse DBU rates from lakemeter.sync_product_dbsql_rates. + + Output structure: + { + "aws:classic:Medium": {"dbu_per_hour": 24, "sku_product_type": "SQL_COMPUTE"}, + "aws:pro:Medium": {"dbu_per_hour": 24, "sku_product_type": "SQL_PRO_COMPUTE"}, + "aws:serverless:Medium": {"dbu_per_hour": 24, "sku_product_type": "SERVERLESS_SQL_COMPUTE"}, + ... + } + """ + print("\n🗄️ Generating DBSQL warehouse rates...") + + result = conn.execute(text(""" + SELECT cloud, warehouse_type, warehouse_size, sku_product_type, dbu_per_hour, includes_compute + FROM lakemeter.sync_product_dbsql_rates + ORDER BY cloud, warehouse_type, warehouse_size + """)) + + data = {} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + key = f"{cloud}:{row['warehouse_type']}:{row['warehouse_size']}" + data[key] = { + 'dbu_per_hour': float(row['dbu_per_hour']) if row['dbu_per_hour'] else 0, + 'sku_product_type': row['sku_product_type'], + 'includes_compute': row['includes_compute'] + } + count += 1 + + output_file = os.path.join(output_dir, 'dbsql-rates.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} DBSQL rate entries") + return count + + +def generate_dbsql_warehouse_config(conn, output_dir: str): + """ + Generate DBSQL warehouse VM config from lakemeter.sync_ref_dbsql_warehouse_config. + + Output structure: + { + "aws:classic:2X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 64, + "worker_instance_type": "i3.2xlarge" + }, + ... + } + """ + print("\n🖥️ Generating DBSQL warehouse config...") + + result = conn.execute(text(""" + SELECT cloud, warehouse_type, warehouse_size, + driver_count, driver_instance_type, + worker_count, worker_instance_type + FROM lakemeter.sync_ref_dbsql_warehouse_config + ORDER BY cloud, warehouse_type, warehouse_size + """)) + + data = {} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + key = f"{cloud}:{row['warehouse_type']}:{row['warehouse_size']}" + data[key] = { + 'driver_count': row['driver_count'] or 1, + 'driver_instance_type': row['driver_instance_type'], + 'worker_count': row['worker_count'] or 0, + 'worker_instance_type': row['worker_instance_type'] + } + count += 1 + + output_file = os.path.join(output_dir, 'dbsql-warehouse-config.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} DBSQL warehouse configs") + return count + + +def generate_vector_search_rates(conn, output_dir: str): + """ + Generate Vector Search rates from lakemeter.sync_product_serverless_rates. + + Output structure: + { + "aws:standard": {"dbu_rate": 4, "input_divisor": 2000000, "sku_product_type": "..."}, + "aws:storage_optimized": {"dbu_rate": 18.29, "input_divisor": 64000000, "sku_product_type": "..."}, + ... + } + """ + print("\n🔍 Generating Vector Search rates...") + + result = conn.execute(text(""" + SELECT cloud, size_or_model as mode, dbu_rate, input_divisor, sku_product_type, description + FROM lakemeter.sync_product_serverless_rates + WHERE product = 'vector_search' + ORDER BY cloud, size_or_model + """)) + + data = {} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + key = f"{cloud}:{row['mode']}" + data[key] = { + 'dbu_rate': float(row['dbu_rate']) if row['dbu_rate'] else 0, + 'input_divisor': int(row['input_divisor']) if row['input_divisor'] else 1, + 'sku_product_type': row['sku_product_type'], + 'description': row['description'] + } + count += 1 + + output_file = os.path.join(output_dir, 'vector-search-rates.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} Vector Search rate entries") + return count + + +def generate_model_serving_rates(conn, output_dir: str): + """ + Generate Model Serving GPU rates from lakemeter.sync_product_serverless_rates. + + Output structure: + { + "aws:cpu": {"dbu_rate": 1, "sku_product_type": "...", "description": "..."}, + "aws:gpu_small_t4": {"dbu_rate": 10.48, "sku_product_type": "...", "description": "..."}, + ... + } + """ + print("\n🤖 Generating Model Serving GPU rates...") + + result = conn.execute(text(""" + SELECT cloud, size_or_model as gpu_type, dbu_rate, sku_product_type, description + FROM lakemeter.sync_product_serverless_rates + WHERE product = 'model_serving' + ORDER BY cloud, size_or_model + """)) + + data = {} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + key = f"{cloud}:{row['gpu_type']}" + data[key] = { + 'dbu_rate': float(row['dbu_rate']) if row['dbu_rate'] else 0, + 'sku_product_type': row['sku_product_type'], + 'description': row['description'] + } + count += 1 + + output_file = os.path.join(output_dir, 'model-serving-rates.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} Model Serving rate entries") + return count + + +def generate_fmapi_databricks_rates(conn, output_dir: str): + """ + Generate FMAPI Databricks rates from lakemeter.sync_product_fmapi_databricks. + + Output structure: + { + "aws:llama-3-3-70b:input_token": {"dbu_rate": 1.0, "input_divisor": 1000000, "is_hourly": false}, + "aws:llama-3-3-70b:output_token": {"dbu_rate": 3.0, "input_divisor": 1000000, "is_hourly": false}, + "aws:llama-3-3-70b:provisioned_scaling": {"dbu_rate": 200, "is_hourly": true}, + ... + } + """ + print("\n🧠 Generating FMAPI Databricks rates...") + + result = conn.execute(text(""" + SELECT cloud, model, rate_type, dbu_rate, input_divisor, is_hourly, sku_product_type + FROM lakemeter.sync_product_fmapi_databricks + ORDER BY cloud, model, rate_type + """)) + + data = {} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + key = f"{cloud}:{row['model']}:{row['rate_type']}" + data[key] = { + 'dbu_rate': float(row['dbu_rate']) if row['dbu_rate'] else 0, + 'input_divisor': int(row['input_divisor']) if row['input_divisor'] else 1000000, + 'is_hourly': row['is_hourly'] or False, + 'sku_product_type': row['sku_product_type'] + } + count += 1 + + output_file = os.path.join(output_dir, 'fmapi-databricks-rates.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} FMAPI Databricks rate entries") + return count + + +def generate_fmapi_proprietary_rates(conn, output_dir: str): + """ + Generate FMAPI Proprietary rates from lakemeter.sync_product_fmapi_proprietary. + + Output structure: + { + "aws:anthropic:claude-sonnet-4-5:global:all:input_token": {"dbu_rate": 14.29, "input_divisor": 1000000}, + "aws:openai:gpt-4o:in_geo:all:output_token": {"dbu_rate": 21.43, "input_divisor": 1000000}, + ... + } + """ + print("\n🏢 Generating FMAPI Proprietary rates...") + + result = conn.execute(text(""" + SELECT cloud, provider, model, endpoint_type, context_length, + rate_type, dbu_rate, input_divisor, is_hourly, sku_product_type + FROM lakemeter.sync_product_fmapi_proprietary + ORDER BY cloud, provider, model, endpoint_type, context_length, rate_type + """)) + + data = {} + count = 0 + + for row in result.mappings(): + cloud = row['cloud'].lower() if row['cloud'] else 'aws' + key = f"{cloud}:{row['provider']}:{row['model']}:{row['endpoint_type']}:{row['context_length']}:{row['rate_type']}" + data[key] = { + 'dbu_rate': float(row['dbu_rate']) if row['dbu_rate'] else 0, + 'input_divisor': int(row['input_divisor']) if row['input_divisor'] else 1000000, + 'is_hourly': row['is_hourly'] or False, + 'sku_product_type': row['sku_product_type'] + } + count += 1 + + output_file = os.path.join(output_dir, 'fmapi-proprietary-rates.json') + with open(output_file, 'w') as f: + json.dump(data, f, indent=2, default=decimal_default) + + print(f" ✅ Generated {count} FMAPI Proprietary rate entries") + return count + + +def generate_all_pricing_bundles(): + """Main function to generate all pricing bundle files.""" + print("=" * 60) + print("🚀 Lakemeter Pricing Bundle Generator") + print("=" * 60) + + # Import here to avoid circular imports + from app.database import engine + + if engine is None: + print("❌ Database engine not available. Please check database connection.") + sys.exit(1) + + # Output directory + output_dir = os.path.join( + os.path.dirname(os.path.dirname(os.path.abspath(__file__))), + 'static', 'pricing' + ) + ensure_output_dir(output_dir) + + total_count = 0 + + with engine.connect() as conn: + # Generate all pricing files + total_count += generate_instance_dbu_rates(conn, output_dir) + total_count += generate_dbu_multipliers(conn, output_dir) + # NOTE: Skipping vm-costs.json - too large (50+ MB). VM costs are fetched on-demand per instance. + # total_count += generate_vm_pricing(conn, output_dir) + total_count += generate_dbu_rates(conn, output_dir) + total_count += generate_dbsql_rates(conn, output_dir) + total_count += generate_dbsql_warehouse_config(conn, output_dir) + total_count += generate_vector_search_rates(conn, output_dir) + total_count += generate_model_serving_rates(conn, output_dir) + total_count += generate_fmapi_databricks_rates(conn, output_dir) + total_count += generate_fmapi_proprietary_rates(conn, output_dir) + + print("\n" + "=" * 60) + print(f"✅ Generated {total_count} total pricing entries") + print(f"📁 Output: {output_dir}") + print("=" * 60) + + # Generate a manifest file with metadata + # NOTE: vm-costs.json excluded - too large, fetched on-demand per instance instead + manifest = { + 'generated_at': datetime.now().isoformat(), + 'total_entries': total_count, + 'files': [ + 'instance-dbu-rates.json', + 'dbu-multipliers.json', + 'dbu-rates.json', + 'dbsql-rates.json', + 'dbsql-warehouse-config.json', + 'vector-search-rates.json', + 'model-serving-rates.json', + 'fmapi-databricks-rates.json', + 'fmapi-proprietary-rates.json' + ] + } + + manifest_file = os.path.join(output_dir, 'manifest.json') + with open(manifest_file, 'w') as f: + json.dump(manifest, f, indent=2) + + print(f"\n📋 Manifest written to: {manifest_file}") + + +if __name__ == '__main__': + generate_all_pricing_bundles() + diff --git a/lakemeter/backend/static/assets/index-B5w3TFsQ.js b/lakemeter/backend/static/assets/index-B5w3TFsQ.js new file mode 100644 index 00000000..908d00bc --- /dev/null +++ b/lakemeter/backend/static/assets/index-B5w3TFsQ.js @@ -0,0 +1,354 @@ +function n2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var cs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Uu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var e_={exports:{}},Vu={},t_={exports:{}},qe={};/** + * @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 pl=Symbol.for("react.element"),r2=Symbol.for("react.portal"),s2=Symbol.for("react.fragment"),i2=Symbol.for("react.strict_mode"),o2=Symbol.for("react.profiler"),a2=Symbol.for("react.provider"),l2=Symbol.for("react.context"),c2=Symbol.for("react.forward_ref"),u2=Symbol.for("react.suspense"),d2=Symbol.for("react.memo"),f2=Symbol.for("react.lazy"),vx=Symbol.iterator;function p2(e){return e===null||typeof e!="object"?null:(e=vx&&e[vx]||e["@@iterator"],typeof e=="function"?e:null)}var n_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},r_=Object.assign,s_={};function Oo(e,t,n){this.props=e,this.context=t,this.refs=s_,this.updater=n||n_}Oo.prototype.isReactComponent={};Oo.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")};Oo.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function i_(){}i_.prototype=Oo.prototype;function Km(e,t,n){this.props=e,this.context=t,this.refs=s_,this.updater=n||n_}var Qm=Km.prototype=new i_;Qm.constructor=Km;r_(Qm,Oo.prototype);Qm.isPureReactComponent=!0;var yx=Array.isArray,o_=Object.prototype.hasOwnProperty,Ym={current:null},a_={key:!0,ref:!0,__self:!0,__source:!0};function l_(e,t,n){var r,s={},i=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)o_.call(t,r)&&!a_.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=B[de];if(0>>1;des(De,C))ws(Y,De)?(B[de]=Y,B[w]=C,de=w):(B[de]=De,B[we]=C,de=we);else if(ws(Y,C))B[de]=Y,B[w]=C,de=w;else break e}}return q}function s(B,q){var C=B.sortIndex-q.sortIndex;return C!==0?C:B.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,p=3,h=!1,g=!1,v=!1,_=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=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(B){for(var q=n(u);q!==null;){if(q.callback===null)r(u);else if(q.startTime<=B)r(u),q.sortIndex=q.expirationTime,t(c,q);else break;q=n(u)}}function S(B){if(v=!1,b(B),!g)if(n(c)!==null)g=!0,ve(R);else{var q=n(u);q!==null&&ie(S,q.startTime-B)}}function R(B,q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var C=p;try{for(b(q),f=n(c);f!==null&&(!(f.expirationTime>q)||B&&!$());){var de=f.callback;if(typeof de=="function"){f.callback=null,p=f.priorityLevel;var pe=de(f.expirationTime<=q);q=e.unstable_now(),typeof pe=="function"?f.callback=pe:f===n(c)&&r(c),b(q)}else r(c);f=n(c)}if(f!==null)var A=!0;else{var we=n(u);we!==null&&ie(S,we.startTime-q),A=!1}return A}finally{f=null,p=C,h=!1}}var k=!1,T=null,D=-1,z=5,j=-1;function $(){return!(e.unstable_now()-jB||125de?(B.sortIndex=C,t(u,B),n(c)===null&&B===n(u)&&(v?(x(D),D=-1):v=!0,ie(S,C-de))):(B.sortIndex=pe,t(c,B),g||h||(g=!0,ve(R))),B},e.unstable_shouldYield=$,e.unstable_wrapCallback=function(B){var q=p;return function(){var C=p;p=q;try{return B.apply(this,arguments)}finally{p=C}}}})(p_);f_.exports=p_;var E2=f_.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 C2=m,rr=E2;function ee(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"),rp=Object.prototype.hasOwnProperty,j2=/^[: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]*$/,_x={},wx={};function N2(e){return rp.call(wx,e)?!0:rp.call(_x,e)?!1:j2.test(e)?wx[e]=!0:(_x[e]=!0,!1)}function P2(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 R2(e,t,n,r){if(t===null||typeof t>"u"||P2(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 Dn(e,t,n,r,s,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var hn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){hn[e]=new Dn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];hn[t]=new Dn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){hn[e]=new Dn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){hn[e]=new Dn(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){hn[e]=new Dn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){hn[e]=new Dn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){hn[e]=new Dn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){hn[e]=new Dn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){hn[e]=new Dn(e,5,!1,e.toLowerCase(),null,!1,!1)});var Jm=/[\-:]([a-z])/g;function Zm(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(Jm,Zm);hn[t]=new Dn(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(Jm,Zm);hn[t]=new Dn(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(Jm,Zm);hn[t]=new Dn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){hn[e]=new Dn(e,1,!1,e.toLowerCase(),null,!1,!1)});hn.xlinkHref=new Dn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){hn[e]=new Dn(e,1,!1,e.toLowerCase(),null,!0,!0)});function eh(e,t,n,r){var s=hn.hasOwnProperty(t)?hn[t]:null;(s!==null?s.type!==0:r||!(2l||s[o]!==i[l]){var c=` +`+s[o].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{Od=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?da(e):""}function T2(e){switch(e.tag){case 5:return da(e.type);case 16:return da("Lazy");case 13:return da("Suspense");case 19:return da("SuspenseList");case 0:case 2:case 15:return e=Id(e.type,!1),e;case 11:return e=Id(e.type.render,!1),e;case 1:return e=Id(e.type,!0),e;default:return""}}function ap(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 Qi:return"Fragment";case Ki:return"Portal";case sp:return"Profiler";case th:return"StrictMode";case ip:return"Suspense";case op:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case g_:return(e.displayName||"Context")+".Consumer";case h_:return(e._context.displayName||"Context")+".Provider";case nh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case rh:return t=e.displayName||null,t!==null?t:ap(e.type)||"Memo";case As:t=e._payload,e=e._init;try{return ap(e(t))}catch{}}return null}function L2(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 ap(t);case 8:return t===th?"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 Js(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function v_(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function A2(e){var t=v_(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){r=""+o,i.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 $l(e){e._valueTracker||(e._valueTracker=A2(e))}function y_(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=v_(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function qc(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 lp(e,t){var n=t.checked;return Dt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Sx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Js(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 b_(e,t){t=t.checked,t!=null&&eh(e,"checked",t,!1)}function cp(e,t){b_(e,t);var n=Js(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")?up(e,t.type,n):t.hasOwnProperty("defaultValue")&&up(e,t.type,Js(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ex(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 up(e,t,n){(t!=="number"||qc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var fa=Array.isArray;function po(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Hl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fa(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var va={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},D2=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(e){D2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),va[t]=va[e]})});function S_(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||va.hasOwnProperty(e)&&va[e]?(""+t).trim():t+"px"}function E_(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=S_(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var M2=Dt({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 pp(e,t){if(t){if(M2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function mp(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 hp=null;function sh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var gp=null,mo=null,ho=null;function Nx(e){if(e=gl(e)){if(typeof gp!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Wu(t),gp(e.stateNode,e.type,t))}}function C_(e){mo?ho?ho.push(e):ho=[e]:mo=e}function j_(){if(mo){var e=mo,t=ho;if(ho=mo=null,Nx(e),t)for(e=0;e>>=0,e===0?32:31-(W2(e)/G2|0)|0}var ql=64,Wl=4194304;function pa(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 Qc(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~s;l!==0?r=pa(l):(i&=o,i!==0&&(r=pa(i)))}else o=n&~s,o!==0?r=pa(o):i!==0&&(r=pa(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 ml(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Pr(t),e[t]=n}function X2(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=ba),Ix=" ",Fx=!1;function G_(e,t){switch(e){case"keyup":return Ej.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function K_(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Yi=!1;function jj(e,t){switch(e){case"compositionend":return K_(t);case"keypress":return t.which!==32?null:(Fx=!0,Ix);case"textInput":return e=t.data,e===Ix&&Fx?null:e;default:return null}}function Nj(e,t){if(Yi)return e==="compositionend"||!fh&&G_(e,t)?(e=q_(),Sc=ch=Bs=null,Yi=!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=zx(n)}}function J_(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?J_(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Z_(){for(var e=window,t=qc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=qc(e.document)}return t}function ph(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 Ij(e){var t=Z_(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&J_(n.ownerDocument.documentElement,n)){if(r!==null&&ph(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=$x(n,i);var o=$x(n,r);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>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,Xi=null,wp=null,wa=null,kp=!1;function Hx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;kp||Xi==null||Xi!==qc(r)||(r=Xi,"selectionStart"in r&&ph(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}),wa&&Ha(wa,r)||(wa=r,r=Jc(wp,"onSelect"),0eo||(e.current=Pp[eo],Pp[eo]=null,eo--)}function yt(e,t){eo++,Pp[eo]=e.current,e.current=t}var Zs={},En=ri(Zs),zn=ri(!1),Ti=Zs;function wo(e,t){var n=e.type.contextTypes;if(!n)return Zs;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function $n(e){return e=e.childContextTypes,e!=null}function eu(){wt(zn),wt(En)}function Xx(e,t,n){if(En.current!==Zs)throw Error(ee(168));yt(En,t),yt(zn,n)}function l1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,L2(e)||"Unknown",s));return Dt({},n,r)}function tu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Zs,Ti=En.current,yt(En,e),yt(zn,zn.current),!0}function Jx(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=l1(e,t,Ti),r.__reactInternalMemoizedMergedChildContext=e,wt(zn),wt(En),yt(En,e)):wt(zn),yt(zn,n)}var os=null,Gu=!1,Xd=!1;function c1(e){os===null?os=[e]:os.push(e)}function Qj(e){Gu=!0,c1(e)}function si(){if(!Xd&&os!==null){Xd=!0;var e=0,t=dt;try{var n=os;for(dt=1;e>=o,s-=o,ds=1<<32-Pr(t)+s|n<D?(z=T,T=null):z=T.sibling;var j=p(x,T,b[D],S);if(j===null){T===null&&(T=z);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),k===null?R=j:k.sibling=j,k=j,T=z}if(D===b.length)return n(x,T),Nt&&gi(x,D),R;if(T===null){for(;DD?(z=T,T=null):z=T.sibling;var $=p(x,T,j.value,S);if($===null){T===null&&(T=z);break}e&&T&&$.alternate===null&&t(x,T),y=i($,y,D),k===null?R=$:k.sibling=$,k=$,T=z}if(j.done)return n(x,T),Nt&&gi(x,D),R;if(T===null){for(;!j.done;D++,j=b.next())j=f(x,j.value,S),j!==null&&(y=i(j,y,D),k===null?R=j:k.sibling=j,k=j);return Nt&&gi(x,D),R}for(T=r(x,T);!j.done;D++,j=b.next())j=h(T,x,D,j.value,S),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),k===null?R=j:k.sibling=j,k=j);return e&&T.forEach(function(X){return t(x,X)}),Nt&&gi(x,D),R}function _(x,y,b,S){if(typeof b=="object"&&b!==null&&b.type===Qi&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case zl:e:{for(var R=b.key,k=y;k!==null;){if(k.key===R){if(R=b.type,R===Qi){if(k.tag===7){n(x,k.sibling),y=s(k,b.props.children),y.return=x,x=y;break e}}else if(k.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===As&&t0(R)===k.type){n(x,k.sibling),y=s(k,b.props),y.ref=ra(x,k,b),y.return=x,x=y;break e}n(x,k);break}else t(x,k);k=k.sibling}b.type===Qi?(y=Ni(b.props.children,x.mode,S,b.key),y.return=x,x=y):(S=Lc(b.type,b.key,b.props,null,x.mode,S),S.ref=ra(x,y,b),S.return=x,x=S)}return o(x);case Ki:e:{for(k=b.key;y!==null;){if(y.key===k)if(y.tag===4&&y.stateNode.containerInfo===b.containerInfo&&y.stateNode.implementation===b.implementation){n(x,y.sibling),y=s(y,b.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=of(b,x.mode,S),y.return=x,x=y}return o(x);case As:return k=b._init,_(x,y,k(b._payload),S)}if(fa(b))return g(x,y,b,S);if(Jo(b))return v(x,y,b,S);Zl(x,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,b),y.return=x,x=y):(n(x,y),y=sf(b,x.mode,S),y.return=x,x=y),o(x)):n(x,y)}return _}var So=p1(!0),m1=p1(!1),su=ri(null),iu=null,ro=null,xh=null;function vh(){xh=ro=iu=null}function yh(e){var t=su.current;wt(su),e._currentValue=t}function Lp(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 xo(e,t){iu=e,xh=ro=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Vn=!0),e.firstContext=null)}function vr(e){var t=e._currentValue;if(xh!==e)if(e={context:e,memoizedValue:t,next:null},ro===null){if(iu===null)throw Error(ee(308));ro=e,iu.dependencies={lanes:0,firstContext:e}}else ro=ro.next=e;return t}var ki=null;function bh(e){ki===null?ki=[e]:ki.push(e)}function h1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,bh(t)):(n.next=s.next,s.next=n),t.interleaved=n,ys(e,r)}function ys(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 Ds=!1;function _h(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function g1(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 ps(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Gs(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,ys(e,n)}return s=r.interleaved,s===null?(t.next=t,bh(r)):(t.next=s.next,s.next=t),r.interleaved=t,ys(e,n)}function Cc(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,oh(e,n)}}function n0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=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};i===null?s=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 ou(e,t,n,r){var s=e.updateQueue;Ds=!1;var i=s.firstBaseUpdate,o=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?i=u:o.next=u,o=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var f=s.baseState;o=0,d=u=c=null,l=i;do{var p=l.lane,h=l.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(p=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){f=g.call(h,f,p);break e}f=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,p=typeof g=="function"?g.call(h,f,p):g,p==null)break e;f=Dt({},f,p);break e;case 2:Ds=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=s.effects,p===null?s.effects=[l]:p.push(l))}else h={eventTime:h,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=f):d=d.next=h,o|=p;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;p=l,l=p.next,p.next=null,s.lastBaseUpdate=p,s.shared.pending=null}}while(!0);if(d===null&&(c=f),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do o|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Di|=o,e.lanes=o,e.memoizedState=f}}function r0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Zd.transition;Zd.transition={};try{e(!1),t()}finally{dt=n,Zd.transition=r}}function A1(){return yr().memoizedState}function Zj(e,t,n){var r=Qs(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},D1(e))M1(t,n);else if(n=h1(e,t,n,r),n!==null){var s=Ln();Rr(n,e,r,s),O1(n,t,r)}}function e5(e,t,n){var r=Qs(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(D1(e))M1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,n);if(s.hasEagerState=!0,s.eagerState=l,Lr(l,o)){var c=t.interleaved;c===null?(s.next=s,bh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=h1(e,t,s,r),n!==null&&(s=Ln(),Rr(n,e,r,s),O1(n,t,r))}}function D1(e){var t=e.alternate;return e===At||t!==null&&t===At}function M1(e,t){ka=lu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function O1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,oh(e,n)}}var cu={readContext:vr,useCallback:vn,useContext:vn,useEffect:vn,useImperativeHandle:vn,useInsertionEffect:vn,useLayoutEffect:vn,useMemo:vn,useReducer:vn,useRef:vn,useState:vn,useDebugValue:vn,useDeferredValue:vn,useTransition:vn,useMutableSource:vn,useSyncExternalStore:vn,useId:vn,unstable_isNewReconciler:!1},t5={readContext:vr,useCallback:function(e,t){return Vr().memoizedState=[e,t===void 0?null:t],e},useContext:vr,useEffect:i0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Nc(4194308,4,N1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Nc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Nc(4,2,e,t)},useMemo:function(e,t){var n=Vr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Vr();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=Zj.bind(null,At,e),[r.memoizedState,e]},useRef:function(e){var t=Vr();return e={current:e},t.memoizedState=e},useState:s0,useDebugValue:Ph,useDeferredValue:function(e){return Vr().memoizedState=e},useTransition:function(){var e=s0(!1),t=e[0];return e=Jj.bind(null,e[1]),Vr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=At,s=Vr();if(Nt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),dn===null)throw Error(ee(349));Ai&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,i0(w1.bind(null,r,i,e),[e]),r.flags|=2048,Ja(9,_1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Vr(),t=dn.identifierPrefix;if(Nt){var n=fs,r=ds;n=(r&~(1<<32-Pr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ya++,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[$r]=t,e[Ga]=r,W1(e,t,!1,!1),t.stateNode=e;e:{switch(o=mp(n,r),n){case"dialog":_t("cancel",e),_t("close",e),s=r;break;case"iframe":case"object":case"embed":_t("load",e),s=r;break;case"video":case"audio":for(s=0;sjo&&(t.flags|=128,r=!0,sa(i,!1),t.lanes=4194304)}else{if(!r)if(e=au(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),sa(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!Nt)return yn(t),null}else 2*Ht()-i.renderingStartTime>jo&&n!==1073741824&&(t.flags|=128,r=!0,sa(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ht(),t.sibling=null,n=Tt.current,yt(Tt,r?n&1|2:n&1),t):(yn(t),null);case 22:case 23:return Mh(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Xn&1073741824&&(yn(t),t.subtreeFlags&6&&(t.flags|=8192)):yn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function c5(e,t){switch(hh(t),t.tag){case 1:return $n(t.type)&&eu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Eo(),wt(zn),wt(En),Sh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return kh(t),null;case 13:if(wt(Tt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));ko()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return wt(Tt),null;case 4:return Eo(),null;case 10:return yh(t.type._context),null;case 22:case 23:return Mh(),null;case 24:return null;default:return null}}var tc=!1,_n=!1,u5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function so(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Bt(e,t,r)}else n.current=null}function Vp(e,t,n){try{n()}catch(r){Bt(e,t,r)}}var g0=!1;function d5(e,t){if(Sp=Yc,e=Z_(),ph(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=e,p=null;t:for(;;){for(var h;f!==n||s!==0&&f.nodeType!==3||(l=o+s),f!==i||r!==0&&f.nodeType!==3||(c=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(h=f.firstChild)!==null;)p=f,f=h;for(;;){if(f===e)break t;if(p===n&&++u===s&&(l=o),p===i&&++d===r&&(c=o),(h=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ep={focusedElem:e,selectionRange:n},Yc=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,_=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Er(t.type,v),_);x.__reactInternalSnapshotBeforeUpdate=y}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(ee(163))}}catch(S){Bt(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=g0,g0=!1,g}function Sa(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&Vp(t,n,i)}s=s.next}while(s!==r)}}function Yu(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 zp(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 Q1(e){var t=e.alternate;t!==null&&(e.alternate=null,Q1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[$r],delete t[Ga],delete t[Np],delete t[Gj],delete t[Kj])),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 Y1(e){return e.tag===5||e.tag===3||e.tag===4}function x0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Y1(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 $p(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=Zc));else if(r!==4&&(e=e.child,e!==null))for($p(e,t,n),e=e.sibling;e!==null;)$p(e,t,n),e=e.sibling}function Hp(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(Hp(e,t,n),e=e.sibling;e!==null;)Hp(e,t,n),e=e.sibling}var fn=null,jr=!1;function Rs(e,t,n){for(n=n.child;n!==null;)X1(e,t,n),n=n.sibling}function X1(e,t,n){if(Wr&&typeof Wr.onCommitFiberUnmount=="function")try{Wr.onCommitFiberUnmount(zu,n)}catch{}switch(n.tag){case 5:_n||so(n,t);case 6:var r=fn,s=jr;fn=null,Rs(e,t,n),fn=r,jr=s,fn!==null&&(jr?(e=fn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):fn.removeChild(n.stateNode));break;case 18:fn!==null&&(jr?(e=fn,n=n.stateNode,e.nodeType===8?Yd(e.parentNode,n):e.nodeType===1&&Yd(e,n),za(e)):Yd(fn,n.stateNode));break;case 4:r=fn,s=jr,fn=n.stateNode.containerInfo,jr=!0,Rs(e,t,n),fn=r,jr=s;break;case 0:case 11:case 14:case 15:if(!_n&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Vp(n,t,o),s=s.next}while(s!==r)}Rs(e,t,n);break;case 1:if(!_n&&(so(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Bt(n,t,l)}Rs(e,t,n);break;case 21:Rs(e,t,n);break;case 22:n.mode&1?(_n=(r=_n)||n.memoizedState!==null,Rs(e,t,n),_n=r):Rs(e,t,n);break;default:Rs(e,t,n)}}function v0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new u5),t.forEach(function(r){var s=b5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function kr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=o),r&=~i}if(r=s,r=Ht()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*p5(r/1960))-r,10e?16:e,Us===null)var r=!1;else{if(e=Us,Us=null,fu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,o=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cHt()-Ah?ji(e,0):Lh|=n),Hn(e,t)}function iw(e,t){t===0&&(e.mode&1?(t=Wl,Wl<<=1,!(Wl&130023424)&&(Wl=4194304)):t=1);var n=Ln();e=ys(e,t),e!==null&&(ml(e,t,n),Hn(e,n))}function y5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),iw(e,n)}function b5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),iw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||zn.current)Vn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Vn=!1,a5(e,t,n);Vn=!!(e.flags&131072)}else Vn=!1,Nt&&t.flags&1048576&&u1(t,ru,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Pc(e,t),e=t.pendingProps;var s=wo(t,En.current);xo(t,n),s=Ch(null,t,r,e,s,n);var i=jh();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$n(r)?(i=!0,tu(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,_h(t),s.updater=Qu,t.stateNode=s,s._reactInternals=t,Dp(t,r,e,n),t=Ip(null,t,r,!0,i,n)):(t.tag=0,Nt&&i&&mh(t),Rn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Pc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=w5(r),e=Er(r,e),s){case 0:t=Op(null,t,r,e,n);break e;case 1:t=p0(null,t,r,e,n);break e;case 11:t=d0(null,t,r,e,n);break e;case 14:t=f0(null,t,r,Er(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Er(r,s),Op(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Er(r,s),p0(e,t,r,s,n);case 3:e:{if($1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,g1(e,t),ou(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=Co(Error(ee(423)),t),t=m0(e,t,r,n,s);break e}else if(r!==s){s=Co(Error(ee(424)),t),t=m0(e,t,r,n,s);break e}else for(Zn=Ws(t.stateNode.containerInfo.firstChild),er=t,Nt=!0,Nr=null,n=m1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ko(),r===s){t=bs(e,t,n);break e}Rn(e,t,r,n)}t=t.child}return t;case 5:return x1(t),e===null&&Tp(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,o=s.children,Cp(r,s)?o=null:i!==null&&Cp(r,i)&&(t.flags|=32),z1(e,t),Rn(e,t,o,n),t.child;case 6:return e===null&&Tp(t),null;case 13:return H1(e,t,n);case 4:return wh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=So(t,null,r,n):Rn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Er(r,s),d0(e,t,r,s,n);case 7:return Rn(e,t,t.pendingProps,n),t.child;case 8:return Rn(e,t,t.pendingProps.children,n),t.child;case 12:return Rn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,o=s.value,yt(su,r._currentValue),r._currentValue=o,i!==null)if(Lr(i.value,o)){if(i.children===s.children&&!zn.current){t=bs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ps(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Lp(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(ee(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Lp(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Rn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,xo(t,n),s=vr(s),r=r(s),t.flags|=1,Rn(e,t,r,n),t.child;case 14:return r=t.type,s=Er(r,t.pendingProps),s=Er(r.type,s),f0(e,t,r,s,n);case 15:return U1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Er(r,s),Pc(e,t),t.tag=1,$n(r)?(e=!0,tu(t)):e=!1,xo(t,n),I1(t,r,s),Dp(t,r,s,n),Ip(null,t,r,!0,e,n);case 19:return q1(e,t,n);case 22:return V1(e,t,n)}throw Error(ee(156,t.tag))};function aw(e,t){return D_(e,t)}function _5(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 gr(e,t,n,r){return new _5(e,t,n,r)}function Ih(e){return e=e.prototype,!(!e||!e.isReactComponent)}function w5(e){if(typeof e=="function")return Ih(e)?1:0;if(e!=null){if(e=e.$$typeof,e===nh)return 11;if(e===rh)return 14}return 2}function Ys(e,t){var n=e.alternate;return n===null?(n=gr(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 Lc(e,t,n,r,s,i){var o=2;if(r=e,typeof e=="function")Ih(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Qi:return Ni(n.children,s,i,t);case th:o=8,s|=8;break;case sp:return e=gr(12,n,t,s|2),e.elementType=sp,e.lanes=i,e;case ip:return e=gr(13,n,t,s),e.elementType=ip,e.lanes=i,e;case op:return e=gr(19,n,t,s),e.elementType=op,e.lanes=i,e;case x_:return Ju(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case h_:o=10;break e;case g_:o=9;break e;case nh:o=11;break e;case rh:o=14;break e;case As:o=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=gr(o,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ni(e,t,n,r){return e=gr(7,e,r,t),e.lanes=n,e}function Ju(e,t,n,r){return e=gr(22,e,r,t),e.elementType=x_,e.lanes=n,e.stateNode={isHidden:!1},e}function sf(e,t,n){return e=gr(6,e,null,t),e.lanes=n,e}function of(e,t,n){return t=gr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function k5(e,t,n,r,s){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=Bd(0),this.expirationTimes=Bd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Bd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Fh(e,t,n,r,s,i,o,l,c){return e=new k5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=gr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},_h(i),e}function S5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(dw)}catch(e){console.error(e)}}dw(),d_.exports=ir;var oo=d_.exports,C0=oo;np.createRoot=C0.createRoot,np.hydrateRoot=C0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 el(){return el=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function zh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function R5(){return Math.random().toString(36).substr(2,8)}function N0(e,t){return{usr:e.state,key:e.key,idx:t}}function Qp(e,t,n,r){return n===void 0&&(n=null),el({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Bo(t):t,{state:n,key:t&&t.key||r||R5()})}function hu(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 Bo(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 T5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,o=s.history,l=Vs.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(el({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function f(){l=Vs.Pop;let _=d(),x=_==null?null:_-u;u=_,c&&c({action:l,location:v.location,delta:x})}function p(_,x){l=Vs.Push;let y=Qp(v.location,_,x);u=d()+1;let b=N0(y,u),S=v.createHref(y);try{o.pushState(b,"",S)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;s.location.assign(S)}i&&c&&c({action:l,location:v.location,delta:1})}function h(_,x){l=Vs.Replace;let y=Qp(v.location,_,x);u=d();let b=N0(y,u),S=v.createHref(y);o.replaceState(b,"",S),i&&c&&c({action:l,location:v.location,delta:0})}function g(_){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof _=="string"?_:hu(_);return y=y.replace(/ $/,"%20"),Qt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,o)},listen(_){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(j0,f),c=_,()=>{s.removeEventListener(j0,f),c=null}},createHref(_){return t(s,_)},createURL:g,encodeLocation(_){let x=g(_);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:p,replace:h,go(_){return o.go(_)}};return v}var P0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(P0||(P0={}));function L5(e,t,n){return n===void 0&&(n="/"),A5(e,t,n)}function A5(e,t,n,r){let s=typeof t=="string"?Bo(t):t,i=$h(s.pathname||"/",n);if(i==null)return null;let o=fw(e);D5(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};c.relativePath.startsWith("/")&&(Qt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=Xs([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Qt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:V5(u,i.index),routesMeta:d})};return e.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,o);else for(let c of pw(i.path))s(i,o,c)}),t}function pw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let o=pw(r.join("/")),l=[];return l.push(...o.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function D5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:z5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const M5=/^:[\w-]+$/,O5=3,I5=2,F5=1,B5=10,U5=-2,R0=e=>e==="*";function V5(e,t){let n=e.split("/"),r=n.length;return n.some(R0)&&(r+=U5),t&&(r+=I5),n.filter(s=>!R0(s)).reduce((s,i)=>s+(M5.test(i)?O5:i===""?F5:B5),r)}function z5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function $5(e,t,n){let{routesMeta:r}=e,s={},i="/",o=[];for(let l=0;l{let{paramName:p,isOptional:h}=d;if(p==="*"){let v=l[f]||"";o=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[f];return h&&!g?u[p]=void 0:u[p]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),zh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function W5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return zh(!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 $h(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 G5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,K5=e=>G5.test(e);function Q5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Bo(e):e,i;if(n)if(K5(n))i=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),zh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?i=T0(n.substring(1),"/"):i=T0(n,t)}else i=t;return{pathname:i,search:J5(r),hash:Z5(s)}}function T0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function af(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 Y5(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function mw(e,t){let n=Y5(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function hw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Bo(e):(s=el({},e),Qt(!s.pathname||!s.pathname.includes("?"),af("?","pathname","search",s)),Qt(!s.pathname||!s.pathname.includes("#"),af("#","pathname","hash",s)),Qt(!s.search||!s.search.includes("#"),af("#","search","hash",s)));let i=e===""||s.pathname==="",o=i?"/":s.pathname,l;if(o==null)l=n;else{let f=t.length-1;if(!r&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),f-=1;s.pathname=p.join("/")}l=f>=0?t[f]:"/"}let c=Q5(s,l),u=o&&o!=="/"&&o.endsWith("/"),d=(i||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const Xs=e=>e.join("/").replace(/\/\/+/g,"/"),X5=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),J5=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Z5=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function eN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const gw=["post","put","patch","delete"];new Set(gw);const tN=["get",...gw];new Set(tN);/** + * React Router v6.30.2 + * + * 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 tl(){return tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=hw(u,JSON.parse(o),i,d.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Xs([t,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[t,r,o,i,e])}const iN=m.createContext(null);function oN(e){let t=m.useContext(Ss).outlet;return t&&m.createElement(iN.Provider,{value:e},t)}function yw(){let{matches:e}=m.useContext(Ss),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Ui),{matches:s}=m.useContext(Ss),{pathname:i}=yl(),o=JSON.stringify(mw(s,r.v7_relativeSplatPath));return m.useMemo(()=>hw(e,JSON.parse(o),i,n==="path"),[e,o,i,n])}function aN(e,t){return lN(e,t)}function lN(e,t,n,r){vl()||Qt(!1);let{navigator:s}=m.useContext(Ui),{matches:i}=m.useContext(Ss),o=i[i.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=yl(),d;if(t){var f;let _=typeof t=="string"?Bo(t):t;c==="/"||(f=_.pathname)!=null&&f.startsWith(c)||Qt(!1),d=_}else d=u;let p=d.pathname||"/",h=p;if(c!=="/"){let _=c.replace(/^\//,"").split("/");h="/"+p.replace(/^\//,"").split("/").slice(_.length).join("/")}let g=L5(e,{pathname:h}),v=pN(g&&g.map(_=>Object.assign({},_,{params:Object.assign({},l,_.params),pathname:Xs([c,s.encodeLocation?s.encodeLocation(_.pathname).pathname:_.pathname]),pathnameBase:_.pathnameBase==="/"?c:Xs([c,s.encodeLocation?s.encodeLocation(_.pathnameBase).pathname:_.pathnameBase])})),i,n,r);return t&&v?m.createElement(rd.Provider,{value:{location:tl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Vs.Pop}},v):v}function cN(){let e=xN(),t=eN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const uN=m.createElement(cN,null);class dN extends m.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?m.createElement(Ss.Provider,{value:this.props.routeContext},m.createElement(xw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function fN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Hh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Ss.Provider,{value:t},r)}function pN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Qt(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,f,p)=>{let h,g=!1,v=null,_=null;n&&(h=l&&f.route.id?l[f.route.id]:void 0,v=f.route.errorElement||uN,c&&(u<0&&p===0?(yN("route-fallback"),g=!0,_=null):u===p&&(g=!0,_=f.route.hydrateFallbackElement||null)));let x=t.concat(o.slice(0,p+1)),y=()=>{let b;return h?b=v:g?b=_:f.route.Component?b=m.createElement(f.route.Component,null):f.route.element?b=f.route.element:b=d,m.createElement(fN,{match:f,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:b})};return n&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?m.createElement(dN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var _w=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(_w||{}),ww=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}(ww||{});function mN(e){let t=m.useContext(Hh);return t||Qt(!1),t}function hN(e){let t=m.useContext(nN);return t||Qt(!1),t}function gN(e){let t=m.useContext(Ss);return t||Qt(!1),t}function kw(e){let t=gN(),n=t.matches[t.matches.length-1];return n.route.id||Qt(!1),n.route.id}function xN(){var e;let t=m.useContext(xw),n=hN(),r=kw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function vN(){let{router:e}=mN(_w.UseNavigateStable),t=kw(ww.UseNavigateStable),n=m.useRef(!1);return vw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,tl({fromRouteId:t},i)))},[e,t])}const L0={};function yN(e,t,n){L0[e]||(L0[e]=!0)}function bN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function _N(e){return oN(e.context)}function vi(e){Qt(!1)}function wN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Vs.Pop,navigator:i,static:o=!1,future:l}=e;vl()&&Qt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:o,future:tl({v7_relativeSplatPath:!1},l)}),[c,l,i,o]);typeof r=="string"&&(r=Bo(r));let{pathname:d="/",search:f="",hash:p="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let _=$h(d,c);return _==null?null:{location:{pathname:_,search:f,hash:p,state:h,key:g},navigationType:s}},[c,d,f,p,h,g,s]);return v==null?null:m.createElement(Ui.Provider,{value:u},m.createElement(rd.Provider,{children:n,value:v}))}function kN(e){let{children:t,location:n}=e;return aN(Yp(t),n)}new Promise(()=>{});function Yp(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Yp(r.props.children,i));return}r.type!==vi&&Qt(!1),!r.props.index||!r.props.children||Qt(!1);let o={id:r.props.id||i.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=Yp(r.props.children,i)),n.push(o)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Xp(){return Xp=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function EN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function CN(e,t){return e.button===0&&(!t||t==="_self")&&!EN(e)}const jN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],NN="6";try{window.__reactRouterVersion=NN}catch{}const PN="startTransition",A0=v2[PN];function RN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=P5({window:s,v5Compat:!0}));let o=i.current,[l,c]=m.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=m.useCallback(f=>{u&&A0?A0(()=>c(f)):c(f)},[c,u]);return m.useLayoutEffect(()=>o.listen(d),[o,d]),m.useEffect(()=>bN(r),[r]),m.createElement(wN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const TN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",LN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,gu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:f}=t,p=SN(t,jN),{basename:h}=m.useContext(Ui),g,v=!1;if(typeof u=="string"&&LN.test(u)&&(g=u,TN))try{let b=new URL(window.location.href),S=u.startsWith("//")?new URL(b.protocol+u):new URL(u),R=$h(S.pathname,h);S.origin===b.origin&&R!=null?u=R+S.search+S.hash:v=!0}catch{}let _=rN(u,{relative:s}),x=AN(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:f});function y(b){r&&r(b),b.defaultPrevented||x(b)}return m.createElement("a",Xp({},p,{href:g||_,onClick:v||i?r:y,ref:n,target:c}))});var D0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(D0||(D0={}));var M0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(M0||(M0={}));function AN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:o,viewTransition:l}=t===void 0?{}:t,c=sd(),u=yl(),d=bw(e,{relative:o});return m.useCallback(f=>{if(CN(f,n)){f.preventDefault();let p=r!==void 0?r:hu(u)===hu(d);c(e,{replace:p,state:s,preventScrollReset:i,relative:o,viewTransition:l})}},[u,c,d,r,s,n,e,i,o,l])}let DN={data:""},MN=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||DN},ON=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,IN=/\/\*[^]*?\*\/| +/g,O0=/\n+/g,Fs=(e,t)=>{let n="",r="",s="";for(let i in e){let o=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+o+";":r+=i[1]=="f"?Fs(o,i):i+"{"+Fs(o,i[1]=="k"?"":t)+"}":typeof o=="object"?r+=Fs(o,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):o!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=Fs.p?Fs.p(i,o):i+":"+o+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ns={},Sw=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Sw(e[n]);return t}return e},FN=(e,t,n,r,s)=>{let i=Sw(e),o=ns[i]||(ns[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ns[o]){let c=i!==e?e:(u=>{let d,f,p=[{}];for(;d=ON.exec(u.replace(IN,""));)d[4]?p.shift():d[3]?(f=d[3].replace(O0," ").trim(),p.unshift(p[0][f]=p[0][f]||{})):p[0][d[1]]=d[2].replace(O0," ").trim();return p[0]})(e);ns[o]=Fs(s?{["@keyframes "+o]:c}:c,n?"":"."+o)}let l=n&&ns.g?ns.g:null;return n&&(ns.g=ns[o]),((c,u,d,f)=>{f?u.data=u.data.replace(f,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ns[o],t,r,l),o},BN=(e,t,n)=>e.reduce((r,s,i)=>{let o=t[i];if(o&&o.call){let l=o(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;o=c?"."+c:l&&typeof l=="object"?l.props?"":Fs(l,""):l===!1?"":l}return r+s+(o??"")},"");function id(e){let t=this||{},n=e.call?e(t.p):e;return FN(n.unshift?n.raw?BN(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,MN(t.target),t.g,t.o,t.k)}let Ew,Jp,Zp;id.bind({g:1});let _s=id.bind({k:1});function UN(e,t,n,r){Fs.p=t,Ew=e,Jp=n,Zp=r}function ii(e,t){let n=this||{};return function(){let r=arguments;function s(i,o){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:Jp&&Jp()},l),n.o=/ *go\d+/.test(c),l.className=id.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),Zp&&u[0]&&Zp(l),Ew(u,l)}return s}}var VN=e=>typeof e=="function",xu=(e,t)=>VN(e)?e(t):e,zN=(()=>{let e=0;return()=>(++e).toString()})(),Cw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),$N=20,qh="default",jw=(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 jw(e,{type:e.toasts.find(o=>o.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(o=>o.id===s||s===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 i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+i}))}}},Ac=[],Nw={toasts:[],pausedAt:void 0,settings:{toastLimit:$N}},Hr={},Pw=(e,t=qh)=>{Hr[t]=jw(Hr[t]||Nw,e),Ac.forEach(([n,r])=>{n===t&&r(Hr[t])})},Rw=e=>Object.keys(Hr).forEach(t=>Pw(e,t)),HN=e=>Object.keys(Hr).find(t=>Hr[t].toasts.some(n=>n.id===e)),od=(e=qh)=>t=>{Pw(t,e)},qN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},WN=(e={},t=qh)=>{let[n,r]=m.useState(Hr[t]||Nw),s=m.useRef(Hr[t]);m.useEffect(()=>(s.current!==Hr[t]&&r(Hr[t]),Ac.push([t,r]),()=>{let o=Ac.findIndex(([l])=>l===t);o>-1&&Ac.splice(o,1)}),[t]);let i=n.toasts.map(o=>{var l,c,u;return{...e,...e[o.type],...o,removeDelay:o.removeDelay||((l=e[o.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:o.duration||((c=e[o.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||qN[o.type],style:{...e.style,...(u=e[o.type])==null?void 0:u.style,...o.style}}});return{...n,toasts:i}},GN=(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)||zN()}),bl=e=>(t,n)=>{let r=GN(t,e,n);return od(r.toasterId||HN(r.id))({type:2,toast:r}),r.id},nn=(e,t)=>bl("blank")(e,t);nn.error=bl("error");nn.success=bl("success");nn.loading=bl("loading");nn.custom=bl("custom");nn.dismiss=(e,t)=>{let n={type:3,toastId:e};t?od(t)(n):Rw(n)};nn.dismissAll=e=>nn.dismiss(void 0,e);nn.remove=(e,t)=>{let n={type:4,toastId:e};t?od(t)(n):Rw(n)};nn.removeAll=e=>nn.remove(void 0,e);nn.promise=(e,t,n)=>{let r=nn.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?xu(t.success,s):void 0;return i?nn.success(i,{id:r,...n,...n==null?void 0:n.success}):nn.dismiss(r),s}).catch(s=>{let i=t.error?xu(t.error,s):void 0;i?nn.error(i,{id:r,...n,...n==null?void 0:n.error}):nn.dismiss(r)}),e};var KN=1e3,QN=(e,t="default")=>{let{toasts:n,pausedAt:r}=WN(e,t),s=m.useRef(new Map).current,i=m.useCallback((f,p=KN)=>{if(s.has(f))return;let h=setTimeout(()=>{s.delete(f),o({type:4,toastId:f})},p);s.set(f,h)},[]);m.useEffect(()=>{if(r)return;let f=Date.now(),p=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(f-h.createdAt);if(g<0){h.visible&&nn.dismiss(h.id);return}return setTimeout(()=>nn.dismiss(h.id,t),g)});return()=>{p.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let o=m.useCallback(od(t),[t]),l=m.useCallback(()=>{o({type:5,time:Date.now()})},[o]),c=m.useCallback((f,p)=>{o({type:1,toast:{id:f,height:p}})},[o]),u=m.useCallback(()=>{r&&o({type:6,time:Date.now()})},[r,o]),d=m.useCallback((f,p)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=p||{},_=n.filter(b=>(b.position||v)===(f.position||v)&&b.height),x=_.findIndex(b=>b.id===f.id),y=_.filter((b,S)=>Sb.visible).slice(...h?[y+1]:[0,y]).reduce((b,S)=>b+(S.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(f=>{if(f.dismissed)i(f.id,f.removeDelay);else{let p=s.get(f.id);p&&(clearTimeout(p),s.delete(f.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},YN=_s` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,XN=_s` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,JN=_s` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,ZN=ii("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${YN} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${XN} 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: ${JN} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,eP=_s` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,tP=ii("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: ${eP} 1s linear infinite; +`,nP=_s` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,rP=_s` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,sP=ii("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${nP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${rP} 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; + } +`,iP=ii("div")` + position: absolute; +`,oP=ii("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,aP=_s` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,lP=ii("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${aP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,cP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(lP,null,t):t:n==="blank"?null:m.createElement(oP,null,m.createElement(tP,{...r}),n!=="loading"&&m.createElement(iP,null,n==="error"?m.createElement(ZN,{...r}):m.createElement(sP,{...r})))},uP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,dP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,fP="0%{opacity:0;} 100%{opacity:1;}",pP="0%{opacity:1;} 100%{opacity:0;}",mP=ii("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; +`,hP=ii("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,gP=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=Cw()?[fP,pP]:[uP(n),dP(n)];return{animation:t?`${_s(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${_s(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},xP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?gP(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(cP,{toast:e}),o=m.createElement(hP,{...e.ariaProps},xu(e.message,e));return m.createElement(mP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:o}):m.createElement(m.Fragment,null,i,o))});UN(m.createElement);var vP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(o=>{if(o){let l=()=>{let c=o.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},yP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:Cw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},bP=id` + z-index: 9999; + > * { + pointer-events: auto; + } +`,sc=16,_P=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:o,containerClassName:l})=>{let{toasts:c,handlers:u}=QN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:sc,left:sc,right:sc,bottom:sc,pointerEvents:"none",...o},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let f=d.position||t,p=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=yP(f,p);return m.createElement(vP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?bP:"",style:h},d.type==="custom"?xu(d.message,d):s?s(d):m.createElement(xP,{toast:d,position:f}))}))},$e=nn;const Wh=m.createContext({});function Gh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const ad=m.createContext(null),Kh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class wP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function kP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Kh);return m.useInsertionEffect(()=>{const{width:o,height:l,top:c,left:u}=s.current;if(t||!r.current||!o||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${o}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),a.jsx(wP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const SP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:o})=>{const l=Gh(EP),c=m.useId(),u=m.useCallback(f=>{l.set(f,!0);for(const p of l.values())if(!p)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:f=>(l.set(f,!1),()=>l.delete(f))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((f,p)=>l.set(p,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),o==="popLayout"&&(e=a.jsx(kP,{isPresent:n,children:e})),a.jsx(ad.Provider,{value:d,children:e})};function EP(){return new Map}function Tw(e=!0){const t=m.useContext(ad);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const o=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,o]:[!0]}const ic=e=>e.key||"";function I0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Qh=typeof window<"u",Lw=Qh?m.useLayoutEffect:m.useEffect,em=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:o=!1})=>{const[l,c]=Tw(o),u=m.useMemo(()=>I0(e),[e]),d=o&&!l?[]:u.map(ic),f=m.useRef(!0),p=m.useRef(u),h=Gh(()=>new Map),[g,v]=m.useState(u),[_,x]=m.useState(u);Lw(()=>{f.current=!1,p.current=u;for(let S=0;S<_.length;S++){const R=ic(_[S]);d.includes(R)?h.delete(R):h.get(R)!==!0&&h.set(R,!1)}},[_,d.length,d.join("-")]);const y=[];if(u!==g){let S=[...u];for(let R=0;R<_.length;R++){const k=_[R],T=ic(k);d.includes(T)||(S.splice(R,0,k),y.push(k))}i==="wait"&&y.length&&(S=y),x(I0(S)),v(u);return}const{forceRender:b}=m.useContext(Wh);return a.jsx(a.Fragment,{children:_.map(S=>{const R=ic(S),k=o&&!l?!1:u===_||d.includes(R),T=()=>{if(h.has(R))h.set(R,!0);else return;let D=!0;h.forEach(z=>{z||(D=!1)}),D&&(b==null||b(),x(p.current),o&&(c==null||c()),r&&r())};return a.jsx(SP,{isPresent:k,initial:!f.current||n?void 0:!1,custom:k?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:k?void 0:T,children:S},R)})})},tr=e=>e;let Aw=tr;function Yh(e){let t;return()=>(t===void 0&&(t=e()),t)}const No=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},ms=e=>e*1e3,hs=e=>e/1e3,CP={useManualTiming:!1};function jP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(o)}const c={schedule:(u,d=!1,f=!1)=>{const h=f&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(o=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const oc=["read","resolveKeyframes","update","preRender","render","postRender"],NP=40;function Dw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,o=oc.reduce((x,y)=>(x[y]=jP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:f,postRender:p}=o,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,NP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),f.process(s),p.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:oc.reduce((x,y)=>{const b=o[y];return x[y]=(S,R=!1,k=!1)=>(n||g(),b.schedule(S,R,k)),x},{}),cancel:x=>{for(let y=0;yF0[e].some(n=>!!t[n])};function PP(e){for(const t in e)Po[t]={...Po[t],...e[t]}}const RP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function vu(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||RP.has(e)}let Ow=e=>!vu(e);function TP(e){e&&(Ow=t=>t.startsWith("on")?!vu(t):e(t))}try{TP(require("@emotion/is-prop-valid").default)}catch{}function LP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Ow(s)||n===!0&&vu(s)||!t&&!vu(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function AP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const ld=m.createContext({});function nl(e){return typeof e=="string"||Array.isArray(e)}function cd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Xh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Jh=["initial",...Xh];function ud(e){return cd(e.animate)||Jh.some(t=>nl(e[t]))}function Iw(e){return!!(ud(e)||e.variants)}function DP(e,t){if(ud(e)){const{initial:n,animate:r}=e;return{initial:n===!1||nl(n)?n:void 0,animate:nl(r)?r:void 0}}return e.inherit!==!1?t:{}}function MP(e){const{initial:t,animate:n}=DP(e,m.useContext(ld));return m.useMemo(()=>({initial:t,animate:n}),[B0(t),B0(n)])}function B0(e){return Array.isArray(e)?e.join(" "):e}const OP=Symbol.for("motionComponentSymbol");function ao(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function IP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ao(n)&&(n.current=r))},[t])}const Zh=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),FP="framerAppearId",Fw="data-"+Zh(FP),{schedule:eg}=Dw(queueMicrotask,!1),Bw=m.createContext({});function BP(e,t,n,r,s){var i,o;const{visualElement:l}=m.useContext(ld),c=m.useContext(Mw),u=m.useContext(ad),d=m.useContext(Kh).reducedMotion,f=m.useRef(null);r=r||c.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const p=f.current,h=m.useContext(Bw);p&&!p.projection&&s&&(p.type==="html"||p.type==="svg")&&UP(f.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{p&&g.current&&p.update(n,u)});const v=n[Fw],_=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,v)));return Lw(()=>{p&&(g.current=!0,window.MotionIsMounted=!0,p.updateFeatures(),eg.render(p.render),_.current&&p.animationState&&p.animationState.animateChanges())}),m.useEffect(()=>{p&&(!_.current&&p.animationState&&p.animationState.animateChanges(),_.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),_.current=!1))}),p}function UP(e,t,n,r){const{layoutId:s,layout:i,drag:o,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Uw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!o||l&&ao(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Uw(e){if(e)return e.options.allowProjection!==!1?e.projection:Uw(e.parent)}function VP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,o;e&&PP(e);function l(u,d){let f;const p={...m.useContext(Kh),...u,layoutId:zP(u)},{isStatic:h}=p,g=MP(u),v=r(u,h);if(!h&&Qh){$P();const _=HP(p);f=_.MeasureLayout,g.visualElement=BP(s,v,p,t,_.ProjectionNode)}return a.jsxs(ld.Provider,{value:g,children:[f&&g.visualElement?a.jsx(f,{visualElement:g.visualElement,...p}):null,n(s,u,IP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(o=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&o!==void 0?o:""})`}`;const c=m.forwardRef(l);return c[OP]=s,c}function zP({layoutId:e}){const t=m.useContext(Wh).id;return t&&e!==void 0?t+"-"+e:e}function $P(e,t){m.useContext(Mw).strict}function HP(e){const{drag:t,layout:n}=Po;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const qP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function tg(e){return typeof e!="string"||e.includes("-")?!1:!!(qP.indexOf(e)>-1||/[A-Z]/u.test(e))}function U0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function ng(e,t,n,r){if(typeof t=="function"){const[s,i]=U0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=U0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const tm=e=>Array.isArray(e),WP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),GP=e=>tm(e)?e[e.length-1]||0:e,kn=e=>!!(e&&e.getVelocity);function Dc(e){const t=kn(e)?e.get():e;return WP(t)?t.toValue():t}function KP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const o={latestValues:QP(r,s,i,e),renderState:t()};return n&&(o.onMount=l=>n({props:r,current:l,...o}),o.onUpdate=l=>n(l)),o}const Vw=e=>(t,n)=>{const r=m.useContext(ld),s=m.useContext(ad),i=()=>KP(e,t,r,s);return n?i():Gh(i)};function QP(e,t,n,r){const s={},i=r(e,{});for(const p in i)s[p]=Dc(i[p]);let{initial:o,animate:l}=e;const c=ud(e),u=Iw(e);t&&u&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const f=d?l:o;if(f&&typeof f!="boolean"&&!cd(f)){const p=Array.isArray(f)?f:[f];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),$w=zw("--"),YP=zw("var(--"),rg=e=>YP(e)?XP.test(e.split("/*")[0].trim()):!1,XP=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Hw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,ws=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},rl={...Vo,transform:e=>ws(0,1,e)},ac={...Vo,default:1},_l=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Ls=_l("deg"),Kr=_l("%"),Re=_l("px"),JP=_l("vh"),ZP=_l("vw"),V0={...Kr,parse:e=>Kr.parse(e)/100,transform:e=>Kr.transform(e*100)},eR={borderWidth:Re,borderTopWidth:Re,borderRightWidth:Re,borderBottomWidth:Re,borderLeftWidth:Re,borderRadius:Re,radius:Re,borderTopLeftRadius:Re,borderTopRightRadius:Re,borderBottomRightRadius:Re,borderBottomLeftRadius:Re,width:Re,maxWidth:Re,height:Re,maxHeight:Re,top:Re,right:Re,bottom:Re,left:Re,padding:Re,paddingTop:Re,paddingRight:Re,paddingBottom:Re,paddingLeft:Re,margin:Re,marginTop:Re,marginRight:Re,marginBottom:Re,marginLeft:Re,backgroundPositionX:Re,backgroundPositionY:Re},tR={rotate:Ls,rotateX:Ls,rotateY:Ls,rotateZ:Ls,scale:ac,scaleX:ac,scaleY:ac,scaleZ:ac,skew:Ls,skewX:Ls,skewY:Ls,distance:Re,translateX:Re,translateY:Re,translateZ:Re,x:Re,y:Re,z:Re,perspective:Re,transformPerspective:Re,opacity:rl,originX:V0,originY:V0,originZ:Re},z0={...Vo,transform:Math.round},sg={...eR,...tR,zIndex:z0,size:Re,fillOpacity:rl,strokeOpacity:rl,numOctaves:z0},nR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},rR=Uo.length;function sR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),qw=()=>({...ag(),attrs:{}}),lg=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Ww(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Gw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Kw(e,t,n,r){Ww(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Gw.has(s)?s:Zh(s),t.attrs[s])}const yu={};function cR(e){Object.assign(yu,e)}function Qw(e,{layout:t,layoutId:n}){return Vi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!yu[e]||e==="opacity")}function cg(e,t,n){var r;const{style:s}=e,i={};for(const o in s)(kn(s[o])||t.style&&kn(t.style[o])||Qw(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[o]=s[o]);return i}function Yw(e,t,n){const r=cg(e,t,n);for(const s in e)if(kn(e[s])||kn(t[s])){const i=Uo.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function uR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const H0=["x","y","width","height","cx","cy","r"],dR={useVisualState:Vw({scrapeMotionValuesFromProps:Yw,createRenderState:qw,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(Vi.has(l)){i=!0;break}}if(!i)return;let o=!t;if(t)for(let l=0;l{uR(n,r),kt.render(()=>{og(r,s,lg(n.tagName),e.transformTemplate),Kw(n,r)})})}})},fR={useVisualState:Vw({scrapeMotionValuesFromProps:cg,createRenderState:ag})};function Xw(e,t,n){for(const r in t)!kn(t[r])&&!Qw(r,n)&&(e[r]=t[r])}function pR({transformTemplate:e},t){return m.useMemo(()=>{const n=ag();return ig(n,t,e),Object.assign({},n.vars,n.style)},[t])}function mR(e,t){const n=e.style||{},r={};return Xw(r,n,e),Object.assign(r,pR(e,t)),r}function hR(e,t){const n={},r=mR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function gR(e,t,n,r){const s=m.useMemo(()=>{const i=qw();return og(i,t,lg(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Xw(i,e.style,e),s.style={...i,...s.style}}return s}function xR(e=!1){return(n,r,s,{latestValues:i},o)=>{const c=(tg(n)?gR:hR)(r,i,o,n),u=LP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:f}=r,p=m.useMemo(()=>kn(f)?f.get():f,[f]);return m.createElement(n,{...d,children:p})}}function vR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const o={...tg(r)?dR:fR,preloadedFeatures:e,useRender:xR(s),createVisualElement:t,Component:r};return VP(o)}}function Jw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class bR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(yR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class _R extends bR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function ug(e,t){return e?e[t]||e.default||e:void 0}const nm=2e4;function Zw(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=nm?1/0:t}function dg(e){return typeof e=="function"}function q0(e,t){e.timeline=t,e.onfinish=null}const fg=e=>Array.isArray(e)&&typeof e[0]=="number",wR={linearEasing:void 0};function kR(e,t){const n=Yh(e);return()=>{var r;return(r=wR[t])!==null&&r!==void 0?r:n()}}const bu=kR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),ek=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,rm={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ha([0,.65,.55,1]),circOut:ha([.55,0,1,.45]),backIn:ha([.31,.01,.66,-.59]),backOut:ha([.33,1.53,.69,.99])};function nk(e,t){if(e)return typeof e=="function"&&bu()?ek(e,t):fg(e)?ha(e):Array.isArray(e)?e.map(n=>nk(n,t)||rm.easeOut):rm[e]}const Sr={x:!1,y:!1};function rk(){return Sr.x||Sr.y}function SR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function sk(e,t){const n=SR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function W0(e){return t=>{t.pointerType==="touch"||rk()||e(t)}}function ER(e,t,n={}){const[r,s,i]=sk(e,n),o=W0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=W0(f=>{u(f),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",o,s)}),i}const ik=(e,t)=>t?e===t?!0:ik(e,t.parentElement):!1,pg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,CR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function jR(e){return CR.has(e.tagName)||e.tabIndex!==-1}const ga=new WeakSet;function G0(e){return t=>{t.key==="Enter"&&e(t)}}function cf(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const NR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=G0(()=>{if(ga.has(n))return;cf(n,"down");const s=G0(()=>{cf(n,"up")}),i=()=>cf(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function K0(e){return pg(e)&&!rk()}function PR(e,t,n={}){const[r,s,i]=sk(e,n),o=l=>{const c=l.currentTarget;if(!K0(l)||ga.has(c))return;ga.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",p),!(!K0(h)||!ga.has(c))&&(ga.delete(c),typeof u=="function"&&u(h,{success:g}))},f=h=>{d(h,n.useGlobalTarget||ik(c,h.target))},p=h=>{d(h,!1)};window.addEventListener("pointerup",f,s),window.addEventListener("pointercancel",p,s)};return r.forEach(l=>{!jR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,s),l.addEventListener("focus",u=>NR(u,s),s)}),i}function RR(e){return e==="x"||e==="y"?Sr[e]?null:(Sr[e]=!0,()=>{Sr[e]=!1}):Sr.x||Sr.y?null:(Sr.x=Sr.y=!0,()=>{Sr.x=Sr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Uo]);let Mc;function TR(){Mc=void 0}const Qr={now:()=>(Mc===void 0&&Qr.set(pn.isProcessing||CP.useManualTiming?pn.timestamp:performance.now()),Mc),set:e=>{Mc=e,queueMicrotask(TR)}};function mg(e,t){e.indexOf(t)===-1&&e.push(t)}function hg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class gg{constructor(){this.subscriptions=[]}add(t){return mg(this.subscriptions,t),()=>hg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class AR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Qr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Qr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=LR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new gg);const r=this.events[t].add(n);return t==="change"?()=>{r(),kt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Qr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Q0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Q0);return ak(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function sl(e,t){return new AR(e,t)}function DR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,sl(n))}function MR(e,t){const n=dd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const o in i){const l=GP(i[o]);DR(e,o,l)}}function OR(e){return!!(kn(e)&&e.add)}function sm(e,t){const n=e.getValue("willChange");if(OR(n))return n.add(t)}function lk(e){return e.props[Fw]}const ck=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,IR=1e-7,FR=12;function BR(e,t,n,r,s){let i,o,l=0;do o=t+(n-t)/2,i=ck(o,r,s)-e,i>0?n=o:t=o;while(Math.abs(i)>IR&&++lBR(i,0,1,e,n);return i=>i===0||i===1?i:ck(s(i),t,r)}const uk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,dk=e=>t=>1-e(1-t),fk=wl(.33,1.53,.69,.99),xg=dk(fk),pk=uk(xg),mk=e=>(e*=2)<1?.5*xg(e):.5*(2-Math.pow(2,-10*(e-1))),vg=e=>1-Math.sin(Math.acos(e)),hk=dk(vg),gk=uk(vg),xk=e=>/^0[^.\s]+$/u.test(e);function UR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||xk(e):!0}const ja=e=>Math.round(e*1e5)/1e5,yg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function VR(e){return e==null}const zR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,bg=(e,t)=>n=>!!(typeof n=="string"&&zR.test(n)&&n.startsWith(e)||t&&!VR(n)&&Object.prototype.hasOwnProperty.call(n,t)),vk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,o,l]=r.match(yg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},$R=e=>ws(0,255,e),uf={...Vo,transform:e=>Math.round($R(e))},Ei={test:bg("rgb","red"),parse:vk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+uf.transform(e)+", "+uf.transform(t)+", "+uf.transform(n)+", "+ja(rl.transform(r))+")"};function HR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const im={test:bg("#"),parse:HR,transform:Ei.transform},lo={test:bg("hsl","hue"),parse:vk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Kr.transform(ja(t))+", "+Kr.transform(ja(n))+", "+ja(rl.transform(r))+")"},bn={test:e=>Ei.test(e)||im.test(e)||lo.test(e),parse:e=>Ei.test(e)?Ei.parse(e):lo.test(e)?lo.parse(e):im.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Ei.transform(e):lo.transform(e)},qR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function WR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(yg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(qR))===null||n===void 0?void 0:n.length)||0)>0}const yk="number",bk="color",GR="var",KR="var(",Y0="${}",QR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function il(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(QR,c=>(bn.test(c)?(r.color.push(i),s.push(bk),n.push(bn.parse(c))):c.startsWith(KR)?(r.var.push(i),s.push(GR),n.push(c)):(r.number.push(i),s.push(yk),n.push(parseFloat(c))),++i,Y0)).split(Y0);return{values:n,split:l,indexes:r,types:s}}function _k(e){return il(e).values}function wk(e){const{split:t,types:n}=il(e),r=t.length;return s=>{let i="";for(let o=0;otypeof e=="number"?0:e;function XR(e){const t=_k(e);return wk(e)(t.map(YR))}const ti={test:WR,parse:_k,createTransformer:wk,getAnimatableNone:XR},JR=new Set(["brightness","contrast","saturate","opacity"]);function ZR(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(yg)||[];if(!r)return e;const s=n.replace(r,"");let i=JR.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const eT=/\b([a-z-]*)\(.*?\)/gu,om={...ti,getAnimatableNone:e=>{const t=e.match(eT);return t?t.map(ZR).join(" "):e}},tT={...sg,color:bn,backgroundColor:bn,outlineColor:bn,fill:bn,stroke:bn,borderColor:bn,borderTopColor:bn,borderRightColor:bn,borderBottomColor:bn,borderLeftColor:bn,filter:om,WebkitFilter:om},_g=e=>tT[e];function kk(e,t){let n=_g(e);return n!==om&&(n=ti),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const nT=new Set(["auto","none","0"]);function rT(e,t,n){let r=0,s;for(;re===Vo||e===Re,J0=(e,t)=>parseFloat(e.split(", ")[t]),Z0=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return J0(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?J0(i[1],e):0}},sT=new Set(["x","y","z"]),iT=Uo.filter(e=>!sT.has(e));function oT(e){const t=[];return iT.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Ro={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Z0(4,13),y:Z0(5,14)};Ro.translateX=Ro.x;Ro.translateY=Ro.y;const Pi=new Set;let am=!1,lm=!1;function Sk(){if(lm){const e=Array.from(Pi).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=oT(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,o])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}lm=!1,am=!1,Pi.forEach(e=>e.complete()),Pi.clear()}function Ek(){Pi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(lm=!0)})}function aT(){Ek(),Sk()}class wg{constructor(t,n,r,s,i,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Pi.add(this),am||(am=!0,kt.read(Ek),kt.resolveKeyframes(Sk))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),lT=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function cT(e){const t=lT.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function jk(e,t,n=1){const[r,s]=cT(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const o=i.trim();return Ck(o)?parseFloat(o):o}return rg(s)?jk(s,t,n+1):s}const Nk=e=>t=>t.test(e),uT={test:e=>e==="auto",parse:e=>e},Pk=[Vo,Re,Kr,Ls,ZP,JP,uT],ev=e=>Pk.find(Nk(e));class Rk extends wg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const tv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ti.test(e)||e==="0")&&!e.startsWith("url("));function dT(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function fd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(pT),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const mT=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:o="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Qr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:o,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>mT?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&aT(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Qr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:o,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!fT(t,r,s,i))if(o)this.options.duration=0;else{c&&c(fd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Lt=(e,t,n)=>e+(t-e)*n;function df(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function hT({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,o=0;if(!t)s=i=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=df(c,l,e+1/3),i=df(c,l,e),o=df(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(o*255),alpha:r}}function _u(e,t){return n=>n>0?t:e}const ff=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},gT=[im,Ei,lo],xT=e=>gT.find(t=>t.test(e));function nv(e){const t=xT(e);if(!t)return!1;let n=t.parse(e);return t===lo&&(n=hT(n)),n}const rv=(e,t)=>{const n=nv(e),r=nv(t);if(!n||!r)return _u(e,t);const s={...n};return i=>(s.red=ff(n.red,r.red,i),s.green=ff(n.green,r.green,i),s.blue=ff(n.blue,r.blue,i),s.alpha=Lt(n.alpha,r.alpha,i),Ei.transform(s))},vT=(e,t)=>n=>t(e(n)),kl=(...e)=>e.reduce(vT),cm=new Set(["none","hidden"]);function yT(e,t){return cm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function bT(e,t){return n=>Lt(e,t,n)}function kg(e){return typeof e=="number"?bT:typeof e=="string"?rg(e)?_u:bn.test(e)?rv:kT:Array.isArray(e)?Lk:typeof e=="object"?bn.test(e)?rv:_T:_u}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,o)=>kg(i)(i,t[o]));return i=>{for(let o=0;o{for(const i in r)n[i]=r[i](s);return n}}function wT(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ti.createTransformer(t),r=il(e),s=il(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?cm.has(e)&&!s.values.length||cm.has(t)&&!r.values.length?yT(e,t):kl(Lk(wT(r,s),s.values),n):_u(e,t)};function Ak(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Lt(e,t,n):kg(e)(e,t)}const ST=5;function Dk(e,t,n){const r=Math.max(t-ST,0);return ak(n-e(r),t-r)}const Ft={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},pf=.001;function ET({duration:e=Ft.duration,bounce:t=Ft.bounce,velocity:n=Ft.velocity,mass:r=Ft.mass}){let s,i,o=1-t;o=ws(Ft.minDamping,Ft.maxDamping,o),e=ws(Ft.minDuration,Ft.maxDuration,hs(e)),o<1?(s=u=>{const d=u*o,f=d*e,p=d-n,h=um(u,o),g=Math.exp(-f);return pf-p/h*g},i=u=>{const f=u*o*e,p=f*n+n,h=Math.pow(o,2)*Math.pow(u,2)*e,g=Math.exp(-f),v=um(Math.pow(u,2),o);return(-s(u)+pf>0?-1:1)*((p-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),f=(u-n)*e+1;return-pf+d*f},i=u=>{const d=Math.exp(-u*e),f=(n-u)*(e*e);return d*f});const l=5/e,c=jT(s,i,l);if(e=ms(e),isNaN(c))return{stiffness:Ft.stiffness,damping:Ft.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:o*2*Math.sqrt(r*u),duration:e}}}const CT=12;function jT(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function RT(e){let t={velocity:Ft.velocity,stiffness:Ft.stiffness,damping:Ft.damping,mass:Ft.mass,isResolvedFromDuration:!1,...e};if(!sv(e,PT)&&sv(e,NT))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*ws(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Ft.mass,stiffness:s,damping:i}}else{const n=ET(e);t={...t,...n,mass:Ft.mass},t.isResolvedFromDuration=!0}return t}function Mk(e=Ft.visualDuration,t=Ft.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:f,velocity:p,isResolvedFromDuration:h}=RT({...n,velocity:-hs(n.velocity||0)}),g=p||0,v=u/(2*Math.sqrt(c*d)),_=o-i,x=hs(Math.sqrt(c/d)),y=Math.abs(_)<5;r||(r=y?Ft.restSpeed.granular:Ft.restSpeed.default),s||(s=y?Ft.restDelta.granular:Ft.restDelta.default);let b;if(v<1){const R=um(x,v);b=k=>{const T=Math.exp(-v*x*k);return o-T*((g+v*x*_)/R*Math.sin(R*k)+_*Math.cos(R*k))}}else if(v===1)b=R=>o-Math.exp(-x*R)*(_+(g+x*_)*R);else{const R=x*Math.sqrt(v*v-1);b=k=>{const T=Math.exp(-v*x*k),D=Math.min(R*k,300);return o-T*((g+v*x*_)*Math.sinh(D)+R*_*Math.cosh(D))/R}}const S={calculatedDuration:h&&f||null,next:R=>{const k=b(R);if(h)l.done=R>=f;else{let T=0;v<1&&(T=R===0?ms(g):Dk(b,R,k));const D=Math.abs(T)<=r,z=Math.abs(o-k)<=s;l.done=D&&z}return l.value=l.done?o:k,l},toString:()=>{const R=Math.min(Zw(S),nm),k=ek(T=>S.next(R*T).value,R,30);return R+"ms "+k}};return S}function iv({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:o,min:l,max:c,restDelta:u=.5,restSpeed:d}){const f=e[0],p={done:!1,value:f},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),b=D=>x+y(D),S=D=>{const z=y(D),j=b(D);p.done=Math.abs(z)<=u,p.value=p.done?x:j};let R,k;const T=D=>{h(p.value)&&(R=D,k=Mk({keyframes:[p.value,g(p.value)],velocity:Dk(b,D,p.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let z=!1;return!k&&R===void 0&&(z=!0,S(D),T(D)),R!==void 0&&D>=R?k.next(D-R):(!z&&S(D),p)}}}const TT=wl(.42,0,1,1),LT=wl(0,0,.58,1),Ok=wl(.42,0,.58,1),AT=e=>Array.isArray(e)&&typeof e[0]!="number",DT={linear:tr,easeIn:TT,easeInOut:Ok,easeOut:LT,circIn:vg,circInOut:gk,circOut:hk,backIn:xg,backInOut:pk,backOut:fk,anticipate:mk},ov=e=>{if(fg(e)){Aw(e.length===4);const[t,n,r,s]=e;return wl(t,n,r,s)}else if(typeof e=="string")return DT[e];return e};function MT(e,t,n){const r=[],s=n||Ak,i=e.length-1;for(let o=0;ot[0];if(i===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=MT(t,r,s),c=l.length,u=d=>{if(o&&d1)for(;fu(ws(e[0],e[i-1],d)):u}function IT(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=No(0,t,r);e.push(Lt(n,1,s))}}function FT(e){const t=[0];return IT(t,e.length-1),t}function BT(e,t){return e.map(n=>n*t)}function UT(e,t){return e.map(()=>t||Ok).splice(0,e.length-1)}function wu({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=AT(r)?r.map(ov):ov(r),i={done:!1,value:t[0]},o=BT(n&&n.length===t.length?n:FT(t),e),l=OT(o,t,{ease:Array.isArray(s)?s:UT(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const VT=e=>{const t=({timestamp:n})=>e(n);return{start:()=>kt.update(t,!0),stop:()=>ei(t),now:()=>pn.isProcessing?pn.timestamp:Qr.now()}},zT={decay:iv,inertia:iv,tween:wu,keyframes:wu,spring:Mk},$T=e=>e/100;class Sg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,o=(s==null?void 0:s.KeyframeResolver)||wg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new o(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:o=0}=this.options,l=dg(n)?n:zT[n]||wu;let c,u;l!==wu&&typeof t[0]!="number"&&(c=kl($T,Ak(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=Zw(d));const{calculatedDuration:f}=d,p=f+s,h=p*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:f,resolvedDuration:p,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:o,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:f}=r;if(this.startTime===null)return i.next(0);const{delay:p,repeat:h,repeatType:g,repeatDelay:v,onUpdate:_}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-p*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let b=this.currentTime,S=i;if(h){const D=Math.min(this.currentTime,d)/f;let z=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&z--,z=Math.min(z,h+1),!!(z%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/f)):g==="mirror"&&(S=o)),b=ws(0,1,j)*f}const R=y?{done:!1,value:c[0]}:S.next(b);l&&(R.value=l(R.value));let{done:k}=R;!y&&u!==null&&(k=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return T&&s!==void 0&&(R.value=fd(c,this.options,s)),_&&_(R.value),T&&this.finish(),R}get duration(){const{resolved:t}=this;return t?hs(t.calculatedDuration):0}get time(){return hs(this.currentTime)}set time(t){t=ms(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=hs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=VT,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const HT=new Set(["opacity","clipPath","filter","transform"]);function qT(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:o="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=nk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:o==="reverse"?"alternate":"normal"})}const WT=Yh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),ku=10,GT=2e4;function KT(e){return dg(e.type)||e.type==="spring"||!tk(e.ease)}function QT(e,t){const n=new Sg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(o,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:o,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&bu()&&YT(i)&&(i=Ik[i]),KT(this.options)){const{onComplete:f,onUpdate:p,motionValue:h,element:g,...v}=this.options,_=QT(t,v);t=_.keyframes,t.length===1&&(t[1]=t[0]),r=_.duration,s=_.times,i=_.ease,o="keyframes"}const d=qT(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(q0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:f}=this.options;l.set(fd(t,this.options,n)),f&&f(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:o,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return hs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return hs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=ms(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return tr;const{animation:r}=n;q0(r,t)}return tr}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:o,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:f,element:p,...h}=this.options,g=new Sg({...h,keyframes:r,duration:s,type:i,ease:o,times:l,isGenerator:!0}),v=ms(this.time);u.setWithVelocity(g.sample(v-ku).value,g.sample(v).value,ku)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:o,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return WT()&&r&&HT.has(r)&&!c&&!u&&!s&&i!=="mirror"&&o!==0&&l!=="inertia"}}const XT={type:"spring",stiffness:500,damping:25,restSpeed:10},JT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),ZT={type:"keyframes",duration:.8},eL={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},tL=(e,{keyframes:t})=>t.length>2?ZT:Vi.has(e)?e.startsWith("scale")?JT(t[1]):XT:eL;function nL({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:o,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const Eg=(e,t,n,r={},s,i)=>o=>{const l=ug(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-ms(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:p=>{t.set(p),l.onUpdate&&l.onUpdate(p)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};nL(l)||(d={...d,...tL(e,d)}),d.duration&&(d.duration=ms(d.duration)),d.repeatDelay&&(d.repeatDelay=ms(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let f=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(f=!0)),f&&!i&&t.get()!==void 0){const p=fd(d.keyframes,l);if(p!==void 0)return kt.update(()=>{d.onUpdate(p),d.onComplete()}),new _R([])}return!i&&av.supports(d)?new av(d):new Sg(d)};function rL({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:o=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(o=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const f in c){const p=e.getValue(f,(i=e.latestValues[f])!==null&&i!==void 0?i:null),h=c[f];if(h===void 0||d&&rL(d,f))continue;const g={delay:n,...ug(o||{},f)};let v=!1;if(window.MotionHandoffAnimation){const x=lk(e);if(x){const y=window.MotionHandoffAnimation(x,f,kt);y!==null&&(g.startTime=y,v=!0)}}sm(e,f),p.start(Eg(f,p,h,e.shouldReduceMotion&&ok.has(f)?{type:!1}:g,e,v));const _=p.animation;_&&u.push(_)}return l&&Promise.all(u).then(()=>{kt.update(()=>{l&&MR(e,l)})}),u}function dm(e,t,n={}){var r;const s=dd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const o=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:f,staggerDirection:p}=i;return sL(e,t,d+u,f,p,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[o,l]:[l,o];return u().then(()=>d())}else return Promise.all([o(),l(n.delay)])}function sL(e,t,n=0,r=0,s=1,i){const o=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(iL).forEach((u,d)=>{u.notify("AnimationStart",t),o.push(dm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(o)}function iL(e,t){return e.sortNodePosition(t)}function oL(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>dm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=dm(e,t,n);else{const s=typeof t=="function"?dd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const aL=Jh.length;function Bk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Bk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>oL(e,n,r)))}function dL(e){let t=uL(e),n=lv(),r=!0;const s=c=>(u,d)=>{var f;const p=dd(e,d,c==="exit"?(f=e.presenceContext)===null||f===void 0?void 0:f.custom:void 0);if(p){const{transition:h,transitionEnd:g,...v}=p;u={...u,...v,...g}}return u};function i(c){t=c(e)}function o(c){const{props:u}=e,d=Bk(e.parent)||{},f=[],p=new Set;let h={},g=1/0;for(let _=0;_g&&S,z=!1;const j=Array.isArray(b)?b:[b];let $=j.reduce(s(x),{});R===!1&&($={});const{prevResolvedValues:X={}}=y,re={...X,...$},oe=ie=>{D=!0,p.has(ie)&&(z=!0,p.delete(ie)),y.needsAnimating[ie]=!0;const B=e.getValue(ie);B&&(B.liveStyle=!1)};for(const ie in re){const B=$[ie],q=X[ie];if(h.hasOwnProperty(ie))continue;let C=!1;tm(B)&&tm(q)?C=!Jw(B,q):C=B!==q,C?B!=null?oe(ie):p.add(ie):B!==void 0&&p.has(ie)?oe(ie):y.protectedKeys[ie]=!0}y.prevProp=b,y.prevResolvedValues=$,y.isActive&&(h={...h,...$}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(k&&T)||z)&&f.push(...j.map(ie=>({animation:ie,options:{type:x}})))}if(p.size){const _={};p.forEach(x=>{const y=e.getBaseTarget(x),b=e.getValue(x);b&&(b.liveStyle=!0),_[x]=y??null}),f.push({animation:_})}let v=!!f.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(f):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(p=>{var h;return(h=p.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const f=o(c);for(const p in n)n[p].protectedKeys={};return f}return{animateChanges:o,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=lv(),r=!0}}}function fL(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Jw(t,e):!1}function mi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function lv(){return{animate:mi(!0),whileInView:mi(),whileHover:mi(),whileTap:mi(),whileDrag:mi(),whileFocus:mi(),exit:mi()}}class oi{constructor(t){this.isMounted=!1,this.node=t}update(){}}class pL extends oi{constructor(t){super(t),t.animationState||(t.animationState=dL(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();cd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let mL=0;class hL extends oi{constructor(){super(...arguments),this.id=mL++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const gL={animation:{Feature:pL},exit:{Feature:hL}};function ol(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Sl(e){return{point:{x:e.pageX,y:e.pageY}}}const xL=e=>t=>pg(t)&&e(t,Sl(t));function Na(e,t,n,r){return ol(e,t,xL(n),r)}const cv=(e,t)=>Math.abs(e-t);function vL(e,t){const n=cv(e.x,t.x),r=cv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Uk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=hf(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,h=vL(f.offset,{x:0,y:0})>=3;if(!p&&!h)return;const{point:g}=f,{timestamp:v}=pn;this.history.push({...g,timestamp:v});const{onStart:_,onMove:x}=this.handlers;p||(_&&_(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,f)},this.handlePointerMove=(f,p)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=mf(p,this.transformPagePoint),kt.update(this.updatePoint,!0)},this.handlePointerUp=(f,p)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const _=hf(f.type==="pointercancel"?this.lastMoveEventInfo:mf(p,this.transformPagePoint),this.history);this.startEvent&&h&&h(f,_),g&&g(f,_)},!pg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const o=Sl(t),l=mf(o,this.transformPagePoint),{point:c}=l,{timestamp:u}=pn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,hf(l,this.history)),this.removeListeners=kl(Na(this.contextWindow,"pointermove",this.handlePointerMove),Na(this.contextWindow,"pointerup",this.handlePointerUp),Na(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ei(this.updatePoint)}}function mf(e,t){return t?{point:t(e.point)}:e}function uv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function hf({point:e},t){return{point:e,delta:uv(e,Vk(t)),offset:uv(e,yL(t)),velocity:bL(t,.1)}}function yL(e){return e[0]}function Vk(e){return e[e.length-1]}function bL(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=Vk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>ms(t)));)n--;if(!r)return{x:0,y:0};const i=hs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const o={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const zk=1e-4,_L=1-zk,wL=1+zk,$k=.01,kL=0-$k,SL=0+$k;function sr(e){return e.max-e.min}function EL(e,t,n){return Math.abs(e-t)<=n}function dv(e,t,n,r=.5){e.origin=r,e.originPoint=Lt(t.min,t.max,e.origin),e.scale=sr(n)/sr(t),e.translate=Lt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=_L&&e.scale<=wL||isNaN(e.scale))&&(e.scale=1),(e.translate>=kL&&e.translate<=SL||isNaN(e.translate))&&(e.translate=0)}function Pa(e,t,n,r){dv(e.x,t.x,n.x,r?r.originX:void 0),dv(e.y,t.y,n.y,r?r.originY:void 0)}function fv(e,t,n){e.min=n.min+t.min,e.max=e.min+sr(t)}function CL(e,t,n){fv(e.x,t.x,n.x),fv(e.y,t.y,n.y)}function pv(e,t,n){e.min=t.min-n.min,e.max=e.min+sr(t)}function Ra(e,t,n){pv(e.x,t.x,n.x),pv(e.y,t.y,n.y)}function jL(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Lt(n,e,r.max):Math.min(e,n)),e}function mv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function NL(e,{top:t,left:n,bottom:r,right:s}){return{x:mv(e.x,n,s),y:mv(e.y,t,r)}}function hv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=No(t.min,t.max-r,e.min):r>s&&(n=No(e.min,e.max-s,t.min)),ws(0,1,n)}function TL(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const fm=.35;function LL(e=fm){return e===!1?e=0:e===!0&&(e=fm),{x:gv(e,"left","right"),y:gv(e,"top","bottom")}}function gv(e,t,n){return{min:xv(e,t),max:xv(e,n)}}function xv(e,t){return typeof e=="number"?e:e[t]||0}const vv=()=>({translate:0,scale:1,origin:0,originPoint:0}),co=()=>({x:vv(),y:vv()}),yv=()=>({min:0,max:0}),$t=()=>({x:yv(),y:yv()});function dr(e){return[e("x"),e("y")]}function Hk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function AL({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function DL(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function gf(e){return e===void 0||e===1}function pm({scale:e,scaleX:t,scaleY:n}){return!gf(e)||!gf(t)||!gf(n)}function yi(e){return pm(e)||qk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function qk(e){return bv(e.x)||bv(e.y)}function bv(e){return e&&e!=="0%"}function Su(e,t,n){const r=e-n,s=t*r;return n+s}function _v(e,t,n,r,s){return s!==void 0&&(e=Su(e,s,r)),Su(e,n,r)+t}function mm(e,t=0,n=1,r,s){e.min=_v(e.min,t,n,r,s),e.max=_v(e.max,t,n,r,s)}function Wk(e,{x:t,y:n}){mm(e.x,t.translate,t.scale,t.originPoint),mm(e.y,n.translate,n.scale,n.originPoint)}const wv=.999999999999,kv=1.0000000000001;function ML(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,o;for(let l=0;lwv&&(t.x=1),t.ywv&&(t.y=1)}function uo(e,t){e.min=e.min+t,e.max=e.max+t}function Sv(e,t,n,r,s=.5){const i=Lt(e.min,e.max,s);mm(e,t,n,i,r)}function fo(e,t){Sv(e.x,t.x,t.scaleX,t.scale,t.originX),Sv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Gk(e,t){return Hk(DL(e.getBoundingClientRect(),t))}function OL(e,t,n){const r=Gk(e,n),{scroll:s}=t;return s&&(uo(r.x,s.offset.x),uo(r.y,s.offset.y)),r}const Kk=({current:e})=>e?e.ownerDocument.defaultView:null,IL=new WeakMap;class FL{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=$t(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Sl(d).point)},i=(d,f)=>{const{drag:p,dragPropagation:h,onDragStart:g}=this.getProps();if(p&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=RR(p),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),dr(_=>{let x=this.getAxisMotionValue(_).get()||0;if(Kr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const b=y.layout.layoutBox[_];b&&(x=sr(b)*(parseFloat(x)/100))}}this.originPoint[_]=x}),g&&kt.postRender(()=>g(d,f)),sm(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},o=(d,f)=>{const{dragPropagation:p,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:_}=f;if(h&&this.currentDirection===null){this.currentDirection=BL(_),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",f.point,_),this.updateAxis("y",f.point,_),this.visualElement.render(),v&&v(d,f)},l=(d,f)=>this.stop(d,f),c=()=>dr(d=>{var f;return this.getAnimationState(d)==="paused"&&((f=this.getAxisMotionValue(d).animation)===null||f===void 0?void 0:f.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Uk(t,{onSessionStart:s,onStart:i,onMove:o,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Kk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&kt.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!lc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=jL(o,this.constraints[t],this.elastic[t])),i.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ao(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=NL(s.layoutBox,n):this.constraints=!1,this.elastic=LL(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&dr(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=TL(s.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ao(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=OL(r,s.root,this.visualElement.getTransformPagePoint());let o=PL(s.layout.layoutBox,i);if(n){const l=n(AL(o));this.hasMutatedConstraints=!!l,l&&(o=Hk(l))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=dr(d=>{if(!lc(d,n,this.currentDirection))return;let f=c&&c[d]||{};o&&(f={min:0,max:0});const p=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:p,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return sm(this.visualElement,t),r.start(Eg(t,r,0,n,this.visualElement,!1))}stopAnimation(){dr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){dr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){dr(n=>{const{drag:r}=this.getProps();if(!lc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:o,max:l}=s.layout.layoutBox[n];i.set(t[n]-Lt(o,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ao(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};dr(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const c=l.get();s[o]=RL({min:c,max:c},this.constraints[o])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),dr(o=>{if(!lc(o,t,null))return;const l=this.getAxisMotionValue(o),{min:c,max:u}=this.constraints[o];l.set(Lt(c,u,s[o]))})}addListeners(){if(!this.visualElement.current)return;IL.set(this.visualElement,this);const t=this.visualElement.current,n=Na(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ao(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),kt.read(r);const o=ol(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(dr(d=>{const f=this.getAxisMotionValue(d);f&&(this.originPoint[d]+=c[d].translate,f.set(f.get()+c[d].translate))}),this.visualElement.render())});return()=>{o(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:o=fm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:o,dragMomentum:l}}}function lc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function BL(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class UL extends oi{constructor(t){super(t),this.removeGroupControls=tr,this.removeListeners=tr,this.controls=new FL(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||tr}unmount(){this.removeGroupControls(),this.removeListeners()}}const Ev=e=>(t,n)=>{e&&kt.postRender(()=>e(t,n))};class VL extends oi{constructor(){super(...arguments),this.removePointerDownListener=tr}onPointerDown(t){this.session=new Uk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Kk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:Ev(t),onStart:Ev(n),onMove:r,onEnd:(i,o)=>{delete this.session,s&&kt.postRender(()=>s(i,o))}}}mount(){this.removePointerDownListener=Na(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Oc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Cv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oa={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Re.test(e))e=parseFloat(e);else return e;const n=Cv(e,t.target.x),r=Cv(e,t.target.y);return`${n}% ${r}%`}},zL={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ti.parse(e);if(s.length>5)return r;const i=ti.createTransformer(e),o=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+o]/=l,s[1+o]/=c;const u=Lt(l,c,.5);return typeof s[2+o]=="number"&&(s[2+o]/=u),typeof s[3+o]=="number"&&(s[3+o]/=u),i(s)}};class $L extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;cR(HL),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Oc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,o=r.projection;return o&&(o.isPresent=i,s||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?o.promote():o.relegate()||kt.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),eg.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Qk(e){const[t,n]=Tw(),r=m.useContext(Wh);return a.jsx($L,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Bw),isPresent:t,safeToRemove:n})}const HL={borderRadius:{...oa,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oa,borderTopRightRadius:oa,borderBottomLeftRadius:oa,borderBottomRightRadius:oa,boxShadow:zL};function qL(e,t,n){const r=kn(e)?e:sl(e);return r.start(Eg("",r,t,n)),r.animation}function WL(e){return e instanceof SVGElement&&e.tagName!=="svg"}const GL=(e,t)=>e.depth-t.depth;class KL{constructor(){this.children=[],this.isDirty=!1}add(t){mg(this.children,t),this.isDirty=!0}remove(t){hg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(GL),this.isDirty=!1,this.children.forEach(t)}}function QL(e,t){const n=Qr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ei(r),e(i-t))};return kt.read(r,!0),()=>ei(r)}const Yk=["TopLeft","TopRight","BottomLeft","BottomRight"],YL=Yk.length,jv=e=>typeof e=="string"?parseFloat(e):e,Nv=e=>typeof e=="number"||Re.test(e);function XL(e,t,n,r,s,i){s?(e.opacity=Lt(0,n.opacity!==void 0?n.opacity:1,JL(r)),e.opacityExit=Lt(t.opacity!==void 0?t.opacity:1,0,ZL(r))):i&&(e.opacity=Lt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(No(e,t,r))}function Rv(e,t){e.min=t.min,e.max=t.max}function ur(e,t){Rv(e.x,t.x),Rv(e.y,t.y)}function Tv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Lv(e,t,n,r,s){return e-=t,e=Su(e,1/n,r),s!==void 0&&(e=Su(e,1/s,r)),e}function eA(e,t=0,n=1,r=.5,s,i=e,o=e){if(Kr.test(t)&&(t=parseFloat(t),t=Lt(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=Lt(i.min,i.max,r);e===i&&(l-=t),e.min=Lv(e.min,t,n,l,s),e.max=Lv(e.max,t,n,l,s)}function Av(e,t,[n,r,s],i,o){eA(e,t[n],t[r],t[s],t.scale,i,o)}const tA=["x","scaleX","originX"],nA=["y","scaleY","originY"];function Dv(e,t,n,r){Av(e.x,t,tA,n?n.x:void 0,r?r.x:void 0),Av(e.y,t,nA,n?n.y:void 0,r?r.y:void 0)}function Mv(e){return e.translate===0&&e.scale===1}function Jk(e){return Mv(e.x)&&Mv(e.y)}function Ov(e,t){return e.min===t.min&&e.max===t.max}function rA(e,t){return Ov(e.x,t.x)&&Ov(e.y,t.y)}function Iv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Zk(e,t){return Iv(e.x,t.x)&&Iv(e.y,t.y)}function Fv(e){return sr(e.x)/sr(e.y)}function Bv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class sA{constructor(){this.members=[]}add(t){mg(this.members,t),t.scheduleRender()}remove(t){if(hg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function iA(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((s||i||o)&&(r=`translate3d(${s}px, ${i}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:f,rotateY:p,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),f&&(r+=`rotateX(${f}deg) `),p&&(r+=`rotateY(${p}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const bi={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},xa=typeof window<"u"&&window.MotionDebug!==void 0,xf=["","X","Y","Z"],oA={visibility:"hidden"},Uv=1e3;let aA=0;function vf(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function eS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=lk(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",kt,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&eS(r)}function tS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(o={},l=t==null?void 0:t()){this.id=aA++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,xa&&(bi.totalNodes=bi.resolvedTargetDeltas=bi.recalculatedProjection=0),this.nodes.forEach(uA),this.nodes.forEach(hA),this.nodes.forEach(gA),this.nodes.forEach(dA),xa&&window.MotionDebug.record(bi)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=QL(p,250),Oc.hasAnimatedSinceResize&&(Oc.hasAnimatedSinceResize=!1,this.nodes.forEach(zv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:p,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||_A,{onLayoutAnimationStart:_,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!Zk(this.targetLayout,g)||h,b=!p&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||b||p&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,b);const S={...ug(v,"layout"),onPlay:_,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else p||zv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ei(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(xA),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&eS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const R=S/1e3;$v(f.x,o.x,R),$v(f.y,o.y,R),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ra(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),yA(this.relativeTarget,this.relativeTargetOrigin,p,R),b&&rA(this.relativeTarget,b)&&(this.isProjectionDirty=!1),b||(b=$t()),ur(b,this.relativeTarget)),v&&(this.animationValues=d,XL(d,u,this.latestValues,R,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=R},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ei(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=kt.update(()=>{Oc.hasAnimatedSinceResize=!0,this.currentAnimation=qL(0,Uv,{...o,onUpdate:l=>{this.mixTargetDelta(l),o.onUpdate&&o.onUpdate(l)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Uv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=o;if(!(!l||!c||!u)){if(this!==o&&this.layout&&u&&nS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||$t();const f=sr(this.layout.layoutBox.x);c.x.min=o.target.x.min,c.x.max=c.x.min+f;const p=sr(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+p}ur(l,c),fo(l,d),Pa(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new sA),this.sharedNodes.get(o).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:l}=this.options;return l?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:l}=this.options;return l?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:c}=o;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&vf("z",o,u,this.animationValues);for(let d=0;d{var l;return(l=o.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(Vv),this.root.sharedNodes.clear()}}}function lA(e){e.updateLayout()}function cA(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,o=n.source!==e.layout.source;i==="size"?dr(f=>{const p=o?n.measuredBox[f]:n.layoutBox[f],h=sr(p);p.min=r[f].min,p.max=p.min+h}):nS(i,n.layoutBox,r)&&dr(f=>{const p=o?n.measuredBox[f]:n.layoutBox[f],h=sr(r[f]);p.max=p.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+h)});const l=co();Pa(l,r,n.layoutBox);const c=co();o?Pa(c,e.applyTransform(s,!0),n.measuredBox):Pa(c,r,n.layoutBox);const u=!Jk(l);let d=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:p,layout:h}=f;if(p&&h){const g=$t();Ra(g,n.layoutBox,p.layoutBox);const v=$t();Ra(v,r,h.layoutBox),Zk(g,v)||(d=!0),f.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function uA(e){xa&&bi.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function dA(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function fA(e){e.clearSnapshot()}function Vv(e){e.clearMeasurements()}function pA(e){e.isLayoutDirty=!1}function mA(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function zv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function hA(e){e.resolveTargetDelta()}function gA(e){e.calcProjection()}function xA(e){e.resetSkewAndRotation()}function vA(e){e.removeLeadSnapshot()}function $v(e,t,n){e.translate=Lt(t.translate,0,n),e.scale=Lt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Hv(e,t,n,r){e.min=Lt(t.min,n.min,r),e.max=Lt(t.max,n.max,r)}function yA(e,t,n,r){Hv(e.x,t.x,n.x,r),Hv(e.y,t.y,n.y,r)}function bA(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const _A={duration:.45,ease:[.4,0,.1,1]},qv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Wv=qv("applewebkit/")&&!qv("chrome/")?Math.round:tr;function Gv(e){e.min=Wv(e.min),e.max=Wv(e.max)}function wA(e){Gv(e.x),Gv(e.y)}function nS(e,t,n){return e==="position"||e==="preserve-aspect"&&!EL(Fv(t),Fv(n),.2)}function kA(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const SA=tS({attachResizeListener:(e,t)=>ol(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),yf={current:void 0},rS=tS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!yf.current){const e=new SA({});e.mount(window),e.setOptions({layoutScroll:!0}),yf.current=e}return yf.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),EA={pan:{Feature:VL},drag:{Feature:UL,ProjectionNode:rS,MeasureLayout:Qk}};function Kv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&kt.postRender(()=>i(t,Sl(t)))}class CA extends oi{mount(){const{current:t}=this.node;t&&(this.unmount=ER(t,n=>(Kv(this.node,n,"Start"),r=>Kv(this.node,r,"End"))))}unmount(){}}class jA extends oi{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=kl(ol(this.node.current,"focus",()=>this.onFocus()),ol(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Qv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&kt.postRender(()=>i(t,Sl(t)))}class NA extends oi{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Qv(this.node,n,"Start"),(r,{success:s})=>Qv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const hm=new WeakMap,bf=new WeakMap,PA=e=>{const t=hm.get(e.target);t&&t(e)},RA=e=>{e.forEach(PA)};function TA({root:e,...t}){const n=e||document;bf.has(n)||bf.set(n,{});const r=bf.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(RA,{root:e,...t})),r[s]}function LA(e,t,n){const r=TA(t);return hm.set(e,n),r.observe(e),()=>{hm.delete(e),r.unobserve(e)}}const AA={some:0,all:1};class DA extends oi{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:AA[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:f}=this.node.getProps(),p=u?d:f;p&&p(c)};return LA(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(MA(t,n))&&this.startObserver()}unmount(){}}function MA({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const OA={inView:{Feature:DA},tap:{Feature:NA},focus:{Feature:jA},hover:{Feature:CA}},IA={layout:{ProjectionNode:rS,MeasureLayout:Qk}},gm={current:null},sS={current:!1};function FA(){if(sS.current=!0,!!Qh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>gm.current=e.matches;e.addListener(t),t()}else gm.current=!1}const BA=[...Pk,bn,ti],UA=e=>BA.find(Nk(e)),Yv=new WeakMap;function VA(e,t,n){for(const r in t){const s=t[r],i=n[r];if(kn(s))e.addValue(r,s);else if(kn(i))e.addValue(r,sl(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(s):o.hasAnimated||o.set(s)}else{const o=e.getStaticValue(r);e.addValue(r,sl(o!==void 0?o:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Xv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class zA{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=wg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Qr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),sS.current||FA(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:gm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Yv.delete(this.current),this.projection&&this.projection.unmount(),ei(this.notifyUpdate),ei(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=Vi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&kt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Po){const n=Po[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):$t()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=sl(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(Ck(s)||xk(s))?s=parseFloat(s):!UA(s)&&ti.test(n)&&(s=kk(t,n)),this.setBaseTarget(t,kn(s)?s.get():s)),kn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const o=ng(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(s=o[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!kn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new gg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class iS extends zA{constructor(){super(...arguments),this.KeyframeResolver=Rk}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;kn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function $A(e){return window.getComputedStyle(e)}class HA extends iS{constructor(){super(...arguments),this.type="html",this.renderInstance=Ww}readValueFromInstance(t,n){if(Vi.has(n)){const r=_g(n);return r&&r.default||0}else{const r=$A(t),s=($w(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Gk(t,n)}build(t,n,r){ig(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return cg(t,n,r)}}class qA extends iS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=$t}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Vi.has(n)){const r=_g(n);return r&&r.default||0}return n=Gw.has(n)?n:Zh(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Yw(t,n,r)}build(t,n,r){og(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Kw(t,n,r,s)}mount(t){this.isSVGTag=lg(t.tagName),super.mount(t)}}const WA=(e,t)=>tg(e)?new qA(t):new HA(t,{allowProjection:e!==m.Fragment}),GA=vR({...gL,...OA,...EA,...IA},WA),Ut=AP(GA);function KA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const QA=m.forwardRef(KA);function YA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const Ic=m.forwardRef(YA);function XA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const Jv=m.forwardRef(XA);function JA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const qr=m.forwardRef(JA);function ZA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const eD=m.forwardRef(ZA);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const _f=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const wf=m.forwardRef(rD);function sD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const iD=m.forwardRef(sD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Eu=m.forwardRef(oD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const lD=m.forwardRef(aD);function cD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const cc=m.forwardRef(cD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Cu=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const zs=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const Jn=m.forwardRef(fD);function pD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const aS=m.forwardRef(pD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const as=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const gD=m.forwardRef(hD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const vD=m.forwardRef(xD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const bD=m.forwardRef(yD);function _D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const xm=m.forwardRef(_D);function wD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const kD=m.forwardRef(wD);function SD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const ED=m.forwardRef(SD);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const ju=m.forwardRef(CD);function jD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const vm=m.forwardRef(jD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const ym=m.forwardRef(RD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const DD=m.forwardRef(AD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const Zv=m.forwardRef(MD);function OD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ls=m.forwardRef(OD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ey=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const lS=m.forwardRef(FD);function BD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ty=m.forwardRef(BD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const VD=m.forwardRef(UD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const HD=m.forwardRef($D);function qD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const WD=m.forwardRef(qD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const kf=m.forwardRef(t3);function n3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const r3=m.forwardRef(n3);function s3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Nu=m.forwardRef(s3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const o3=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const l3=m.forwardRef(a3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const Fc=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Cg=m.forwardRef(f3);function p3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const uS=m.forwardRef(p3);function m3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const h3=m.forwardRef(m3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const x3=m.forwardRef(g3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const Zt=m.forwardRef(v3);function y3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const b3=m.forwardRef(y3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const w3=m.forwardRef(_3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const To=m.forwardRef(k3);function dS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{ny(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>ny("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const j3={},ry=e=>{let t;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const h=t;t=f??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(j3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},N3=e=>e?ry(e):ry;var pS={exports:{}},mS={},hS={exports:{}},gS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Lo=m;function P3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var R3=typeof Object.is=="function"?Object.is:P3,T3=Lo.useState,L3=Lo.useEffect,A3=Lo.useLayoutEffect,D3=Lo.useDebugValue;function M3(e,t){var n=t(),r=T3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return A3(function(){s.value=n,s.getSnapshot=t,Sf(s)&&i({inst:s})},[e,n,t]),L3(function(){return Sf(s)&&i({inst:s}),e(function(){Sf(s)&&i({inst:s})})},[e]),D3(n),n}function Sf(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!R3(e,n)}catch{return!0}}function O3(e,t){return t()}var I3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?O3:M3;gS.useSyncExternalStore=Lo.useSyncExternalStore!==void 0?Lo.useSyncExternalStore:I3;hS.exports=gS;var F3=hS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var pd=m,B3=F3;function U3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var V3=typeof Object.is=="function"?Object.is:U3,z3=B3.useSyncExternalStore,$3=pd.useRef,H3=pd.useEffect,q3=pd.useMemo,W3=pd.useDebugValue;mS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=$3(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&o.hasValue){var g=o.value;if(s(g,h))return f=g}return f=h}if(g=f,V3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,f=v)}var u=!1,d,f,p=n===void 0?null:n;return[function(){return c(t())},p===null?void 0:function(){return c(p())}]},[t,n,r,s]);var l=z3(e,i[0],i[1]);return H3(function(){o.hasValue=!0,o.value=l},[l]),W3(l),l};pS.exports=mS;var G3=pS.exports;const K3=Uu(G3),xS={},{useDebugValue:Q3}=un,{useSyncExternalStoreWithSelector:Y3}=K3;let sy=!1;const X3=e=>e;function J3(e,t=X3,n){(xS?"production":void 0)!=="production"&&n&&!sy&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),sy=!0);const r=Y3(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Q3(r),r}const iy=e=>{(xS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?N3(e):e,n=(r,s)=>J3(t,r,s);return Object.assign(n,t),n},Z3=e=>e?iy(e):iy;function vS(e,t){return function(){return e.apply(t,arguments)}}const{toString:eM}=Object.prototype,{getPrototypeOf:jg}=Object,{iterator:md,toStringTag:yS}=Symbol,hd=(e=>t=>{const n=eM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Dr=e=>(e=e.toLowerCase(),t=>hd(t)===e),gd=e=>t=>typeof t===e,{isArray:zo}=Array,Ao=gd("undefined");function El(e){return e!==null&&!Ao(e)&&e.constructor!==null&&!Ao(e.constructor)&&qn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Dr("ArrayBuffer");function tM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const nM=gd("string"),qn=gd("function"),_S=gd("number"),Cl=e=>e!==null&&typeof e=="object",rM=e=>e===!0||e===!1,Bc=e=>{if(hd(e)!=="object")return!1;const t=jg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(yS in e)&&!(md in e)},sM=e=>{if(!Cl(e)||El(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},iM=Dr("Date"),oM=Dr("File"),aM=Dr("Blob"),lM=Dr("FileList"),cM=e=>Cl(e)&&qn(e.pipe),uM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||qn(e.append)&&((t=hd(e))==="formdata"||t==="object"&&qn(e.toString)&&e.toString()==="[object FormData]"))},dM=Dr("URLSearchParams"),[fM,pM,mM,hM]=["ReadableStream","Request","Response","Headers"].map(Dr),gM=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),zo(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ci=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,kS=e=>!Ao(e)&&e!==Ci;function bm(){const{caseless:e,skipUndefined:t}=kS(this)&&this||{},n={},r=(s,i)=>{const o=e&&wS(n,i)||i;Bc(n[o])&&Bc(s)?n[o]=bm(n[o],s):Bc(s)?n[o]=bm({},s):zo(s)?n[o]=s.slice():(!t||!Ao(s))&&(n[o]=s)};for(let s=0,i=arguments.length;s(jl(t,(s,i)=>{n&&qn(s)?e[i]=vS(s,n):e[i]=s},{allOwnKeys:r}),e),vM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),yM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},bM=(e,t,n,r)=>{let s,i,o;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)o=s[i],(!r||r(o,e,t))&&!l[o]&&(t[o]=e[o],l[o]=!0);e=n!==!1&&jg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},_M=(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},wM=e=>{if(!e)return null;if(zo(e))return e;let t=e.length;if(!_S(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},kM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&jg(Uint8Array)),SM=(e,t)=>{const r=(e&&e[md]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},EM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},CM=Dr("HTMLFormElement"),jM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),oy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),NM=Dr("RegExp"),SS=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};jl(n,(s,i)=>{let o;(o=t(s,i,e))!==!1&&(r[i]=o||s)}),Object.defineProperties(e,r)},PM=e=>{SS(e,(t,n)=>{if(qn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(qn(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+"'")})}})},RM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return zo(e)?r(e):r(String(e).split(t)),n},TM=()=>{},LM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function AM(e){return!!(e&&qn(e.append)&&e[yS]==="FormData"&&e[md])}const DM=e=>{const t=new Array(10),n=(r,s)=>{if(Cl(r)){if(t.indexOf(r)>=0)return;if(El(r))return r;if(!("toJSON"in r)){t[s]=r;const i=zo(r)?[]:{};return jl(r,(o,l)=>{const c=n(o,s+1);!Ao(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},MM=Dr("AsyncFunction"),OM=e=>e&&(Cl(e)||qn(e))&&qn(e.then)&&qn(e.catch),ES=((e,t)=>e?setImmediate:t?((n,r)=>(Ci.addEventListener("message",({source:s,data:i})=>{s===Ci&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ci.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",qn(Ci.postMessage)),IM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ci):typeof process<"u"&&process.nextTick||ES,FM=e=>e!=null&&qn(e[md]),V={isArray:zo,isArrayBuffer:bS,isBuffer:El,isFormData:uM,isArrayBufferView:tM,isString:nM,isNumber:_S,isBoolean:rM,isObject:Cl,isPlainObject:Bc,isEmptyObject:sM,isReadableStream:fM,isRequest:pM,isResponse:mM,isHeaders:hM,isUndefined:Ao,isDate:iM,isFile:oM,isBlob:aM,isRegExp:NM,isFunction:qn,isStream:cM,isURLSearchParams:dM,isTypedArray:kM,isFileList:lM,forEach:jl,merge:bm,extend:xM,trim:gM,stripBOM:vM,inherits:yM,toFlatObject:bM,kindOf:hd,kindOfTest:Dr,endsWith:_M,toArray:wM,forEachEntry:SM,matchAll:EM,isHTMLForm:CM,hasOwnProperty:oy,hasOwnProp:oy,reduceDescriptors:SS,freezeMethods:PM,toObjectSet:RM,toCamelCase:jM,noop:TM,toFiniteNumber:LM,findKey:wS,global:Ci,isContextDefined:kS,isSpecCompliantForm:AM,toJSONObject:DM,isAsyncFn:MM,isThenable:OM,setImmediate:ES,asap:IM,isIterable:FM};function Me(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}V.inherits(Me,Error,{toJSON:function(){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:V.toJSONObject(this.config),code:this.code,status:this.status}}});const CS=Me.prototype,jS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{jS[e]={value:e}});Object.defineProperties(Me,jS);Object.defineProperty(CS,"isAxiosError",{value:!0});Me.from=(e,t,n,r,s,i)=>{const o=Object.create(CS);V.toFlatObject(e,o,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Me.call(o,l,c,n,r,s),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",i&&Object.assign(o,i),o};const BM=null;function _m(e){return V.isPlainObject(e)||V.isArray(e)}function NS(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function ay(e,t,n){return e?e.concat(t).map(function(s,i){return s=NS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function UM(e){return V.isArray(e)&&!e.some(_m)}const VM=V.toFlatObject(V,{},null,function(t){return/^is[A-Z]/.test(t)});function xd(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,_){return!V.isUndefined(_[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,o=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&V.isSpecCompliantForm(t);if(!V.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(V.isDate(g))return g.toISOString();if(V.isBoolean(g))return g.toString();if(!c&&V.isBlob(g))throw new Me("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(g)||V.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,_){let x=g;if(g&&!_&&typeof g=="object"){if(V.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(V.isArray(g)&&UM(g)||(V.isFileList(g)||V.endsWith(v,"[]"))&&(x=V.toArray(g)))return v=NS(v),x.forEach(function(b,S){!(V.isUndefined(b)||b===null)&&t.append(o===!0?ay([v],S,i):o===null?v:v+"[]",u(b))}),!1}return _m(g)?!0:(t.append(ay(_,v,i),u(g)),!1)}const f=[],p=Object.assign(VM,{defaultVisitor:d,convertValue:u,isVisitable:_m});function h(g,v){if(!V.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));f.push(g),V.forEach(g,function(x,y){(!(V.isUndefined(x)||x===null)&&s.call(t,x,V.isString(y)?y.trim():y,v,p))===!0&&h(x,v?v.concat(y):[y])}),f.pop()}}if(!V.isObject(e))throw new TypeError("data must be an object");return h(e),t}function ly(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ng(e,t){this._pairs=[],e&&xd(e,this,t)}const PS=Ng.prototype;PS.append=function(t,n){this._pairs.push([t,n])};PS.toString=function(t){const n=t?function(r){return t.call(this,r,ly)}:ly;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function zM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function RS(e,t,n){if(!t)return e;const r=n&&n.encode||zM;V.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=V.isURLSearchParams(t)?t.toString():new Ng(t,n).toString(r),i){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class cy{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){V.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},$M=typeof URLSearchParams<"u"?URLSearchParams:Ng,HM=typeof FormData<"u"?FormData:null,qM=typeof Blob<"u"?Blob:null,WM={isBrowser:!0,classes:{URLSearchParams:$M,FormData:HM,Blob:qM},protocols:["http","https","file","blob","url","data"]},Pg=typeof window<"u"&&typeof document<"u",wm=typeof navigator=="object"&&navigator||void 0,GM=Pg&&(!wm||["ReactNative","NativeScript","NS"].indexOf(wm.product)<0),KM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",QM=Pg&&window.location.href||"http://localhost",YM=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Pg,hasStandardBrowserEnv:GM,hasStandardBrowserWebWorkerEnv:KM,navigator:wm,origin:QM},Symbol.toStringTag,{value:"Module"})),wn={...YM,...WM};function XM(e,t){return xd(e,new wn.classes.URLSearchParams,{visitor:function(n,r,s,i){return wn.isNode&&V.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function JM(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function ZM(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return o=!o&&V.isArray(s)?s.length:o,c?(V.hasOwnProp(s,o)?s[o]=[s[o],r]:s[o]=r,!l):((!s[o]||!V.isObject(s[o]))&&(s[o]=[]),t(n,r,s[o],i)&&V.isArray(s[o])&&(s[o]=ZM(s[o])),!l)}if(V.isFormData(e)&&V.isFunction(e.entries)){const n={};return V.forEachEntry(e,(r,s)=>{t(JM(r),s,n,0)}),n}return null}function e4(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Nl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=V.isObject(t);if(i&&V.isHTMLForm(t)&&(t=new FormData(t)),V.isFormData(t))return s?JSON.stringify(LS(t)):t;if(V.isArrayBuffer(t)||V.isBuffer(t)||V.isStream(t)||V.isFile(t)||V.isBlob(t)||V.isReadableStream(t))return t;if(V.isArrayBufferView(t))return t.buffer;if(V.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return XM(t,this.formSerializer).toString();if((l=V.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return xd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),e4(t)):t}],transformResponse:[function(t){const n=this.transitional||Nl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(V.isResponse(t)||V.isReadableStream(t))return t;if(t&&V.isString(t)&&(r&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(o)throw l.name==="SyntaxError"?Me.from(l,Me.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:wn.classes.FormData,Blob:wn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{Nl.headers[e]={}});const t4=V.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"]),n4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(o){s=o.indexOf(":"),n=o.substring(0,s).trim().toLowerCase(),r=o.substring(s+1).trim(),!(!n||t[n]&&t4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},uy=Symbol("internals");function aa(e){return e&&String(e).trim().toLowerCase()}function Uc(e){return e===!1||e==null?e:V.isArray(e)?e.map(Uc):String(e)}function r4(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 s4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ef(e,t,n,r,s){if(V.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!V.isString(t)){if(V.isString(r))return t.indexOf(r)!==-1;if(V.isRegExp(r))return r.test(t)}}function i4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function o4(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,o){return this[r].call(this,t,s,i,o)},configurable:!0})})}let Wn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=aa(c);if(!d)throw new Error("header name must be a non-empty string");const f=V.findKey(s,d);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Uc(l))}const o=(l,c)=>V.forEach(l,(u,d)=>i(u,d,c));if(V.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(V.isString(t)&&(t=t.trim())&&!s4(t))o(n4(t),n);else if(V.isObject(t)&&V.isIterable(t)){let l={},c,u;for(const d of t){if(!V.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?V.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}o(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=aa(t),t){const r=V.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return r4(s);if(V.isFunction(n))return n.call(this,s,r);if(V.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=aa(t),t){const r=V.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Ef(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(o){if(o=aa(o),o){const l=V.findKey(r,o);l&&(!n||Ef(r,r[l],l,n))&&(delete r[l],s=!0)}}return V.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Ef(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return V.forEach(this,(s,i)=>{const o=V.findKey(r,i);if(o){n[o]=Uc(s),delete n[i];return}const l=t?i4(i):String(i).trim();l!==i&&delete n[i],n[l]=Uc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return V.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&V.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(s=>r.set(s)),r}static accessor(t){const r=(this[uy]=this[uy]={accessors:{}}).accessors,s=this.prototype;function i(o){const l=aa(o);r[l]||(o4(s,o),r[l]=!0)}return V.isArray(t)?t.forEach(i):i(t),this}};Wn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(Wn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});V.freezeMethods(Wn);function Cf(e,t){const n=this||Nl,r=t||n,s=Wn.from(r.headers);let i=r.data;return V.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function AS(e){return!!(e&&e.__CANCEL__)}function $o(e,t,n){Me.call(this,e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError"}V.inherits($o,Me,{__CANCEL__:!0});function DS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Me("Request failed with status code "+n.status,[Me.ERR_BAD_REQUEST,Me.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function a4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function l4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,o;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];o||(o=u),n[s]=c,r[s]=u;let f=i,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-o{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),f=d-n;f>=r?o(u,d):(s=u,i||(i=setTimeout(()=>{i=null,o(s)},r-f)))},()=>s&&o(s)]}const Pu=(e,t,n=3)=>{let r=0;const s=l4(50,250);return c4(i=>{const o=i.loaded,l=i.lengthComputable?i.total:void 0,c=o-r,u=s(c),d=o<=l;r=o;const f={loaded:o,total:l,progress:l?o/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-o)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},dy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},fy=e=>(...t)=>V.asap(()=>e(...t)),u4=wn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,wn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(wn.origin),wn.navigator&&/(msie|trident)/i.test(wn.navigator.userAgent)):()=>!0,d4=wn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,o){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&l.push(`path=${r}`),V.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),V.isString(o)&&l.push(`SameSite=${o}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function f4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function p4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function MS(e,t,n){let r=!f4(t);return e&&(r||n==!1)?p4(e,t):t}const py=e=>e instanceof Wn?{...e}:e;function Oi(e,t){t=t||{};const n={};function r(u,d,f,p){return V.isPlainObject(u)&&V.isPlainObject(d)?V.merge.call({caseless:p},u,d):V.isPlainObject(d)?V.merge({},d):V.isArray(d)?d.slice():d}function s(u,d,f,p){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u,f,p)}else return r(u,d,f,p)}function i(u,d){if(!V.isUndefined(d))return r(void 0,d)}function o(u,d){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,f){if(f in t)return r(u,d);if(f in e)return r(void 0,u)}const c={url:i,method:i,data:i,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,responseEncoding:o,validateStatus:l,headers:(u,d,f)=>s(py(u),py(d),f,!0)};return V.forEach(Object.keys({...e,...t}),function(d){const f=c[d]||s,p=f(e[d],t[d],d);V.isUndefined(p)&&f!==l||(n[d]=p)}),n}const OS=e=>{const t=Oi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:o,auth:l}=t;if(t.headers=o=Wn.from(o),t.url=RS(MS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&o.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),V.isFormData(n)){if(wn.hasStandardBrowserEnv||wn.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,f])=>{u.includes(d.toLowerCase())&&o.set(d,f)})}}if(wn.hasStandardBrowserEnv&&(r&&V.isFunction(r)&&(r=r(t)),r||r!==!1&&u4(t.url))){const c=s&&i&&d4.read(i);c&&o.set(s,c)}return t},m4=typeof XMLHttpRequest<"u",h4=m4&&function(e){return new Promise(function(n,r){const s=OS(e);let i=s.data;const o=Wn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,f,p,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let _=new XMLHttpRequest;_.open(s.method.toUpperCase(),s.url,!0),_.timeout=s.timeout;function x(){if(!_)return;const b=Wn.from("getAllResponseHeaders"in _&&_.getAllResponseHeaders()),R={data:!l||l==="text"||l==="json"?_.responseText:_.response,status:_.status,statusText:_.statusText,headers:b,config:e,request:_};DS(function(T){n(T),v()},function(T){r(T),v()},R),_=null}"onloadend"in _?_.onloadend=x:_.onreadystatechange=function(){!_||_.readyState!==4||_.status===0&&!(_.responseURL&&_.responseURL.indexOf("file:")===0)||setTimeout(x)},_.onabort=function(){_&&(r(new Me("Request aborted",Me.ECONNABORTED,e,_)),_=null)},_.onerror=function(S){const R=S&&S.message?S.message:"Network Error",k=new Me(R,Me.ERR_NETWORK,e,_);k.event=S||null,r(k),_=null},_.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const R=s.transitional||TS;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new Me(S,R.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,_)),_=null},i===void 0&&o.setContentType(null),"setRequestHeader"in _&&V.forEach(o.toJSON(),function(S,R){_.setRequestHeader(R,S)}),V.isUndefined(s.withCredentials)||(_.withCredentials=!!s.withCredentials),l&&l!=="json"&&(_.responseType=s.responseType),u&&([p,g]=Pu(u,!0),_.addEventListener("progress",p)),c&&_.upload&&([f,h]=Pu(c),_.upload.addEventListener("progress",f),_.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=b=>{_&&(r(!b||b.type?new $o(null,e,_):b),_.abort(),_=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=a4(s.url);if(y&&wn.protocols.indexOf(y)===-1){r(new Me("Unsupported protocol "+y+":",Me.ERR_BAD_REQUEST,e));return}_.send(i||null)})},g4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Me?d:new $o(d instanceof Error?d.message:d))}};let o=t&&setTimeout(()=>{o=null,i(new Me(`timeout ${t} of ms exceeded`,Me.ETIMEDOUT))},t);const l=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>V.asap(l),c}},x4=function*(e,t){let n=e.byteLength;if(n{const s=v4(e,t);let i=0,o,l=c=>{o||(o=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let f=d.byteLength;if(n){let p=i+=f;n(p)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},hy=64*1024,{isFunction:uc}=V,b4=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:gy,TextEncoder:xy}=V.global,vy=(e,...t)=>{try{return!!e(...t)}catch{return!1}},_4=e=>{e=V.merge.call({skipUndefined:!0},b4,e);const{fetch:t,Request:n,Response:r}=e,s=t?uc(t):typeof fetch=="function",i=uc(n),o=uc(r);if(!s)return!1;const l=s&&uc(gy),c=s&&(typeof xy=="function"?(g=>v=>g.encode(v))(new xy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&vy(()=>{let g=!1;const v=new n(wn.origin,{body:new gy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=o&&l&&vy(()=>V.isReadableStream(new r("").body)),f={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(v,_)=>{let x=v&&v[g];if(x)return x.call(v);throw new Me(`Response type '${g}' is not supported`,Me.ERR_NOT_SUPPORT,_)})});const p=async g=>{if(g==null)return 0;if(V.isBlob(g))return g.size;if(V.isSpecCompliantForm(g))return(await new n(wn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(V.isArrayBufferView(g)||V.isArrayBuffer(g))return g.byteLength;if(V.isURLSearchParams(g)&&(g=g+""),V.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const _=V.toFiniteNumber(g.getContentLength());return _??p(v)};return async g=>{let{url:v,method:_,data:x,signal:y,cancelToken:b,timeout:S,onDownloadProgress:R,onUploadProgress:k,responseType:T,headers:D,withCredentials:z="same-origin",fetchOptions:j}=OS(g),$=t||fetch;T=T?(T+"").toLowerCase():"text";let X=g4([y,b&&b.toAbortSignal()],S),re=null;const oe=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let me;try{if(k&&u&&_!=="get"&&_!=="head"&&(me=await h(D,x))!==0){let de=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(V.isFormData(x)&&(pe=de.headers.get("content-type"))&&D.setContentType(pe),de.body){const[A,we]=dy(me,Pu(fy(k)));x=my(de.body,hy,A,we)}}V.isString(z)||(z=z?"include":"omit");const ve=i&&"credentials"in n.prototype,ie={...j,signal:X,method:_.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:ve?z:void 0};re=i&&new n(v,ie);let B=await(i?$(re,j):$(v,ie));const q=d&&(T==="stream"||T==="response");if(d&&(R||q&&oe)){const de={};["status","statusText","headers"].forEach(De=>{de[De]=B[De]});const pe=V.toFiniteNumber(B.headers.get("content-length")),[A,we]=R&&dy(pe,Pu(fy(R),!0))||[];B=new r(my(B.body,hy,A,()=>{we&&we(),oe&&oe()}),de)}T=T||"text";let C=await f[V.findKey(f,T)||"text"](B,g);return!q&&oe&&oe(),await new Promise((de,pe)=>{DS(de,pe,{data:C,headers:Wn.from(B.headers),status:B.status,statusText:B.statusText,config:g,request:re})})}catch(ve){throw oe&&oe(),ve&&ve.name==="TypeError"&&/Load failed|fetch/i.test(ve.message)?Object.assign(new Me("Network Error",Me.ERR_NETWORK,g,re),{cause:ve.cause||ve}):Me.from(ve,ve&&ve.code,g,re)}}},w4=new Map,IS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let o=i.length,l=o,c,u,d=w4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:_4(t)),d=u;return u};IS();const Rg={http:BM,xhr:h4,fetch:{get:IS}};V.forEach(Rg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const yy=e=>`- ${e}`,k4=e=>V.isFunction(e)||e===null||e===!1;function S4(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let o=0;o`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?o.length>1?`since : +`+o.map(yy).join(` +`):" "+yy(o[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:S4,adapters:Rg};function jf(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $o(null,e)}function by(e){return jf(e),e.headers=Wn.from(e.headers),e.data=Cf.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Nl.adapter,e)(e).then(function(r){return jf(e),r.data=Cf.call(e,e.transformResponse,r),r.headers=Wn.from(r.headers),r},function(r){return AS(r)||(jf(e),r&&r.response&&(r.response.data=Cf.call(e,e.transformResponse,r.response),r.response.headers=Wn.from(r.response.headers))),Promise.reject(r)})}const BS="1.13.2",vd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{vd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const _y={};vd.transitional=function(t,n,r){function s(i,o){return"[Axios v"+BS+"] Transitional option '"+i+"'"+o+(r?". "+r:"")}return(i,o,l)=>{if(t===!1)throw new Me(s(o," has been removed"+(n?" in "+n:"")),Me.ERR_DEPRECATED);return n&&!_y[o]&&(_y[o]=!0,console.warn(s(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,o,l):!0}};vd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function E4(e,t,n){if(typeof e!="object")throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],o=t[i];if(o){const l=e[i],c=l===void 0||o(l,i,e);if(c!==!0)throw new Me("option "+i+" must be "+c,Me.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Me("Unknown option "+i,Me.ERR_BAD_OPTION)}}const Vc={assertOptions:E4,validators:vd},Ur=Vc.validators;let Ri=class{constructor(t){this.defaults=t||{},this.interceptors={request:new cy,response:new cy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Oi(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Vc.assertOptions(r,{silentJSONParsing:Ur.transitional(Ur.boolean),forcedJSONParsing:Ur.transitional(Ur.boolean),clarifyTimeoutError:Ur.transitional(Ur.boolean)},!1),s!=null&&(V.isFunction(s)?n.paramsSerializer={serialize:s}:Vc.assertOptions(s,{encode:Ur.function,serialize:Ur.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Vc.assertOptions(n,{baseUrl:Ur.spelling("baseURL"),withXsrfToken:Ur.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=i&&V.merge(i.common,i[n.method]);i&&V.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Wn.concat(o,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,f=0,p;if(!c){const g=[by.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,d=Promise.resolve(n);f{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const o=new Promise(l=>{r.subscribe(l),i=l}).then(s);return o.cancel=function(){r.unsubscribe(i)},o},t(function(i,o,l){r.reason||(r.reason=new $o(i,o,l),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 US(function(s){t=s}),cancel:t}}};function j4(e){return function(n){return e.apply(null,n)}}function N4(e){return V.isObject(e)&&e.isAxiosError===!0}const km={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(km).forEach(([e,t])=>{km[t]=e});function VS(e){const t=new Ri(e),n=vS(Ri.prototype.request,t);return V.extend(n,Ri.prototype,t,{allOwnKeys:!0}),V.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return VS(Oi(e,s))},n}const qt=VS(Nl);qt.Axios=Ri;qt.CanceledError=$o;qt.CancelToken=C4;qt.isCancel=AS;qt.VERSION=BS;qt.toFormData=xd;qt.AxiosError=Me;qt.Cancel=qt.CanceledError;qt.all=function(t){return Promise.all(t)};qt.spread=j4;qt.isAxiosError=N4;qt.mergeConfig=Oi;qt.AxiosHeaders=Wn;qt.formToJSON=e=>LS(V.isHTMLForm(e)?new FormData(e):e);qt.getAdapter=FS.getAdapter;qt.HttpStatusCode=km;qt.default=qt;const{Axios:R8,AxiosError:T8,CanceledError:L8,isCancel:A8,CancelToken:D8,VERSION:M8,all:O8,Cancel:I8,isAxiosError:F8,spread:B8,toFormData:U8,AxiosHeaders:V8,HttpStatusCode:z8,formToJSON:$8,getAdapter:H8,mergeConfig:q8}=qt,ke=qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Sm="lakemeter:session-expired";function Mr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let Em=!1;const P4=()=>{Em=!1};ke.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),Em||(Em=!0,window.dispatchEvent(new CustomEvent(Sm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const R4=async()=>{const{data:e}=await ke.get("/estimates/me/info");return e},wy=async e=>{const{data:t}=await ke.get("/estimates/",{params:e});return t},T4=async e=>{const{data:t}=await ke.get(`/estimates/${e}`);return t},L4=async e=>{const{data:t}=await ke.get(`/estimates/${e}/full`);return t},A4=async e=>{const{data:t}=await ke.post("/estimates/",e);return t},D4=async(e,t)=>{const{data:n}=await ke.put(`/estimates/${e}`,t);return n},M4=async e=>{await ke.delete(`/estimates/${e}`)},O4=async e=>{const{data:t}=await ke.post(`/estimates/${e}/duplicate`);return t},I4=async(e,t)=>{const{data:n}=await ke.post(`/estimates/${e}/clone`,{new_name:t});return n},F4=async(e,t)=>{const{data:n}=await ke.post(`/line-items/${e}/clone`,{new_name:t});return n},B4=async e=>{const{data:t}=await ke.get(`/line-items/estimate/${e}`);return t},U4=async e=>{const{data:t}=await ke.post("/line-items/",e);return t},V4=async(e,t)=>{const{data:n}=await ke.put(`/line-items/${e}`,t);return n},z4=async e=>{await ke.delete(`/line-items/${e}`)},$4=async(e,t)=>{await ke.post("/line-items/reorder",t,{params:{estimate_id:e}})},H4=async e=>{await ke.post("/estimates/reorder",e)},q4=async()=>{const{data:e}=await ke.get("/workload-types");return e},dc=async e=>{var n;const{data:t}=await ke.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},W4=async e=>{const{data:t}=await ke.get("/tiers",{params:e?{cloud:e}:{}}),n=Mr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},G4=async()=>{const{data:e}=await ke.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},K4=async()=>{const{data:e}=await ke.get("/dbsql/warehouse-sizes"),t=Mr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Q4=async()=>{const{data:e}=await ke.get("/dlt/editions"),t=Mr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},Y4=async()=>{const{data:e}=await ke.get("/reference/fmapi-models");return e},ky=async()=>{const{data:e}=await ke.get("/instances/families"),t=Mr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},Sy=async(e,t,n)=>{const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ke.get("/instances/types",{params:r});return(Array.isArray(s)?s:(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(o=>{const l=o.instance_type||o.id||o.name||"";return{id:l,name:l,vcpus:o.vcpus,memory_gb:o.memory_gb,dbu_rate:o.dbu_rate,instance_family:o.instance_family,vm_pricing:o.vm_pricing}})},X4=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ke.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:o,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(f=>({cloud:o,region:l,instance_type:c,pricing_tier:f.pricing_tier,payment_option:f.payment_option,cost_per_hour:f.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Ey=async()=>{const{data:e}=await ke.get("/dbsql/warehouse-types"),t=Mr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},Cy=async(e,t)=>{const{data:n}=await ke.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Mr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},jy=async(e,t)=>{const{data:n}=await ke.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Mr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Ny=async()=>{const{data:e}=await ke.get("/serverless/modes"),t=Mr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},J4=async e=>{var n;const{data:t}=await ke.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Py=async e=>{const{data:t}=await ke.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Mr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Cm=async()=>{const{data:e}=await ke.get("/fmapi/databricks-models/list"),t=Mr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},zS=async(e,t,n)=>{const{data:r}=await ke.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Mr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},Z4=async e=>{const t=[];try{const n=await Cm(),r=5;for(let s=0;szS(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},eO=async()=>{const{data:e}=await ke.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},$S=async e=>{const{data:t}=await ke.get("/fmapi/proprietary-models",{params:e});return t},tO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>$S({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},nO=async()=>{const{data:e}=await ke.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},rO=async e=>{const{data:t}=await ke.get("/vm-pricing",{params:e});return t},sO=async()=>{const{data:e}=await ke.get("/vm-pricing/tiers");return e},iO=async()=>{const{data:e}=await ke.get("/vm-pricing/payment-options");return e},HS=async e=>{const{data:t}=await ke.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},oO=async()=>{const{data:e}=await ke.get("/export/estimates/excel",{responseType:"blob"});return e},aO=async e=>{const{data:t}=await ke.post("/calculate/jobs-classic",e);return t},lO=async e=>{const{data:t}=await ke.post("/calculate/all-purpose-classic",e);return t},cO=async e=>{const{data:t}=await ke.post("/calculate/jobs-serverless",e);return t},uO=async e=>{const{data:t}=await ke.post("/calculate/all-purpose-serverless",e);return t},qS=async e=>{const{data:t}=await ke.post("/calculate/dbsql-classic-pro",e);return t},WS=async e=>{const{data:t}=await ke.post("/calculate/dbsql-serverless",e);return t},GS=async e=>{const{data:t}=await ke.post("/calculate/dlt-classic",e);return t},KS=async e=>{const{data:t}=await ke.post("/calculate/dlt-serverless",e);return t},QS=async e=>{const{data:t}=await ke.post("/calculate/vector-search",e);return t},YS=async e=>{const{data:t}=await ke.post("/calculate/model-serving",e);return t},XS=async e=>{const{data:t}=await ke.post("/calculate/fmapi-databricks",e);return t},JS=async e=>{const{data:t}=await ke.post("/calculate/fmapi-proprietary",e);return t},ZS=async e=>{const{data:t}=await ke.post("/calculate/lakebase",e);return t},Ry=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?cO(n):aO(n);case"ALL_PURPOSE":return t?uO(n):lO(n);case"DLT":return t?KS(n):GS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?WS(n):qS(n);case"VECTOR_SEARCH":return QS(n);case"MODEL_SERVING":return YS(n);case"FMAPI_DATABRICKS":return XS(n);case"FMAPI_PROPRIETARY":return JS(n);case"LAKEBASE":return ZS(n);default:throw new Error(`Unknown workload type: ${e}`)}},dO="/static/pricing";async function rs(e){const t=await fetch(`${dO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function fO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,o,l,c,u]=await Promise.all([rs("instance-dbu-rates.json"),rs("dbu-multipliers.json"),rs("dbu-rates.json"),rs("dbsql-rates.json"),rs("dbsql-warehouse-config.json"),rs("vector-search-rates.json"),rs("model-serving-rates.json"),rs("fmapi-databricks-rates.json"),rs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:o,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),eE()}}function eE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function jm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function tE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,o=e.dbuMultipliers[i];return o!=null&&o.multiplier?o.multiplier:2}function Tg(e,t,n,r,s){const i=r.toUpperCase(),o=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[o];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const f of Object.keys(e.dbuRates))if(f.startsWith(`${t.toLowerCase()}:`)&&f.endsWith(`:${i}`)){const p=e.dbuRates[f];if(p&&p[s]!==void 0)return p[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function pO(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function al(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function mO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function hO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function gO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function xO(e,t,n,r,s,i,o){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${o}`;return e.fmapiProprietaryRates[l]??null}const vO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function nE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,o=e.dbuRates[i];if(!o||Object.keys(o).length===0)return Ty;const l=new Set;for(const c of Object.keys(o)){const u=vO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),Array.from(l).sort()}function yO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const fc={},bO="v6",is=`lakemeter_reference_data_${bO}`,_O=4*60*60*1e3;function wO(){try{const e=localStorage.getItem(is);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>_O||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(is),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(is),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(is),null;return t}catch{return localStorage.removeItem(is),null}}function kO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(is,JSON.stringify(t))}catch{}}function SO(){try{localStorage.removeItem(is)}catch{}}const Nf=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Pf=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Rf=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tf=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lf=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Af=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Df=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],gs=Z3((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0}],cloudProviders:Nf,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Pf,dbsqlWarehouseTypes:[],dltEditions:Rf,fmapiProviders:Df,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tf,vmPaymentOptions:Lf,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Af,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:eE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await R4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await wy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const o=await wy();e({estimates:o,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await T4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await L4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await A4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await D4(n,r);return e(i=>{var o;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((o=i.currentEstimate)==null?void 0:o.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await M4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await O4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(o=>o.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await B4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r);return e(i=>({lineItems:i.lineItems.map(o=>o.line_item_id===n?{...o,...s}:o),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await z4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,o,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=wO();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Nf,dbsqlSizes:u.dbsqlSizes||Pf,dltEditions:u.dltEditions||Rf,fmapiProviders:u.fmapiProviders||Df,vmPricingTiers:u.vmPricingTiers||Tf,vmPaymentOptions:u.vmPaymentOptions||Lf,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((o=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&o.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Af,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,f,p,h,g,v,_,x,y,b,S,R,k,T,D,z,j,$,X,re,oe]=await Promise.all([q4().catch(()=>r.workloadTypes),G4().catch(()=>Nf),K4().catch(()=>Pf),Q4().catch(()=>Rf),Y4().catch(()=>Df),sO().catch(()=>Tf),iO().catch(()=>Lf),eO().catch(()=>null),nO().catch(()=>null),Ny().catch(()=>Af),Sy(s).catch(()=>[]),Py(s).catch(()=>[]),dc("aws").catch(()=>[]),dc("azure").catch(()=>[]),dc("gcp").catch(()=>[]),jy(s).catch(()=>[]),Cy(s).catch(()=>[]),Z4(s).catch(()=>[]),tO(s).catch(()=>[]),ky().catch(()=>[]),Ey().catch(()=>[]),Cm().catch(()=>[])]),me={aws:R,azure:k,gcp:T},ve=R,ie={};j.forEach(q=>{const C=`${q.model}:${q.rate_type}`;ie[C]=q});const B={};$.forEach(q=>{const C=`${q.provider}:${q.model}:${q.rate_type}`;B[C]=q}),e({workloadTypes:u,cloudProviders:d,dbsqlSizes:f,dltEditions:p,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:_,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:b,modelServingGPUTypes:S,regions:ve,regionsMap:me,photonMultipliers:D,vectorSearchModes:z,fmapiDatabricksRates:ie,fmapiProprietaryRates:B,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:oe,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),kO({workloadTypes:u,cloudProviders:d,dbsqlSizes:f,dltEditions:p,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:_,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:b,modelServingGPUTypes:S,regions:ve,regionsMap:me,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:oe})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{SO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await fO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var o;const r=n.toLowerCase(),s=(o=t()._regionsCache)==null?void 0:o[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await W4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],o=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await ky();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Py(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Ey();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Cm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),t().fetchInstanceTypes(n,r||void 0),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;t().fetchInstanceTypes(r,n||void 0),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await rO({cloud:n,region:r}),i={};s.forEach(o=>{const l=`${o.cloud.toLowerCase()}:${o.region}:${o.instance_type}:${o.pricing_tier}:${o.payment_option}`;i[l]=o.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",o="NA")=>{var p;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":o||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in fc){await fc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const f=X4({cloud:n.toUpperCase(),region:r,instance_type:s});fc[d]=f;try{const h=await f;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const _=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(_==null?void 0:_.cost_per_hour)||((p=h[0])==null?void 0:p.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete fc[d]}},getVMPrice:(n,r,s,i="on_demand",o="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":o||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const f=`${u}:${r}:${s}:${i}:NA`;if(c[f]!==void 0)return c[f];for(const p of Object.keys(c)){const h=p.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[p]}for(const p of Object.keys(c)){const h=p.split(":");if(h[0]===u&&h[2]===s)return c[p]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),o=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(o&&Date.now()-o.timestamp{d[f.product_type]=f.dbu_price}),e(f=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...f._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:o,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Tg(l,r,s,i,n);if(u>0)return u}return o[n]||0},fetchServerlessModes:async()=>{try{const n=await Ny();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await jy(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await Cy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await zS(n,r,s);if(i.length>0){const o=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:o}})),o}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const o=await $S({provider:n,model:r,cloud:s,rate_type:i});if(o.length>0){const l=o[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(o){return console.error("Failed to fetch FMAPI Proprietary rate:",o),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),o=`${n}:${r}:${s}`;return i[o]||null},calculateWorkloadCost:async(n,r,s,i)=>{var o;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ry(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const p=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=p==="on_demand"||p==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ry(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:p,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await KS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const p=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=p==="on_demand"||p==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await GS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:p,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const f=((o=n.dbsql_warehouse_type)==null?void 0:o.toUpperCase())||"SERVERLESS";if(f==="SERVERLESS")c=await WS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const p=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=p==="on_demand"||p==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await qS({...l,warehouse_type:f,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:p,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await QS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await YS({...l,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await XS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await JS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await ZS({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break}return c&&e(f=>{const p=new Set(f.calculatingCostIds);return p.delete(n.line_item_id),{workloadCosts:{...f.workloadCosts,[n.line_item_id]:c},calculatingCostIds:p,isCalculatingCost:p.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:o}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=o[g.line_item_id];return!v||!v.success}),d.length===0))return;const f=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:f});const p=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(_=>{const x=new Set(_.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const o=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,o,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await I4(n,r),i=t().estimates.find(l=>l.estimate_id===n),o={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[o,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await F4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function EO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const CO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,jO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,NO={};function Ly(e,t){return(NO.jsx?jO:CO).test(e)}const PO=/[ \t\n\f\r]/g;function RO(e){return typeof e=="object"?e.type==="text"?Ay(e.value):!1:Ay(e)}function Ay(e){return e.replace(PO,"")===""}class Pl{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Pl.prototype.normal={};Pl.prototype.property={};Pl.prototype.space=void 0;function rE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Pl(n,r,t)}function Nm(e){return e.toLowerCase()}class Gn{constructor(t,n){this.attribute=n,this.property=t}}Gn.prototype.attribute="";Gn.prototype.booleanish=!1;Gn.prototype.boolean=!1;Gn.prototype.commaOrSpaceSeparated=!1;Gn.prototype.commaSeparated=!1;Gn.prototype.defined=!1;Gn.prototype.mustUseProperty=!1;Gn.prototype.number=!1;Gn.prototype.overloadedBoolean=!1;Gn.prototype.property="";Gn.prototype.spaceSeparated=!1;Gn.prototype.space=void 0;let TO=0;const Ie=zi(),Gt=zi(),Pm=zi(),ne=zi(),vt=zi(),yo=zi(),Yn=zi();function zi(){return 2**++TO}const Rm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ie,booleanish:Gt,commaOrSpaceSeparated:Yn,commaSeparated:yo,number:ne,overloadedBoolean:Pm,spaceSeparated:vt},Symbol.toStringTag,{value:"Module"})),Mf=Object.keys(Rm);class Lg extends Gn{constructor(t,n,r,s){let i=-1;if(super(t,n),Dy(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&OO.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(My,BO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!My.test(i)){let o=i.replace(MO,FO);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}s=Lg}return new s(r,t)}function FO(e){return"-"+e.toLowerCase()}function BO(e){return e.charAt(1).toUpperCase()}const UO=rE([sE,LO,aE,lE,cE],"html"),Ag=rE([sE,AO,aE,lE,cE],"svg");function VO(e){return e.join(" ").trim()}var Dg={},Oy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,zO=/\n/g,$O=/^\s*/,HO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,qO=/^:\s*/,WO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,GO=/^[;\s]*/,KO=/^\s+|\s+$/g,QO=` +`,Iy="/",Fy="*",_i="",YO="comment",XO="declaration";function JO(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(zO);v&&(n+=v.length);var _=g.lastIndexOf(QO);r=~_?g.length-_:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new o(g),u(),v}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var _=v[0];return s(_),e=e.slice(_.length),v}}function u(){c($O)}function d(g){var v;for(g=g||[];v=f();)v!==!1&&g.push(v);return g}function f(){var g=i();if(!(Iy!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;_i!=e.charAt(v)&&(Fy!=e.charAt(v)||Iy!=e.charAt(v+1));)++v;if(v+=2,_i===e.charAt(v-1))return l("End of comment missing");var _=e.slice(2,v-2);return r+=2,s(_),e=e.slice(v),r+=2,g({type:YO,comment:_})}}function p(){var g=i(),v=c(HO);if(v){if(f(),!c(qO))return l("property missing ':'");var _=c(WO),x=g({type:XO,property:By(v[0].replace(Oy,_i)),value:_?By(_[0].replace(Oy,_i)):_i});return c(GO),x}}function h(){var g=[];d(g);for(var v;v=p();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function By(e){return e?e.replace(KO,_i):_i}var ZO=JO,eI=cs&&cs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Dg,"__esModule",{value:!0});Dg.default=nI;const tI=eI(ZO);function nI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,tI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:o,value:l}=i;s?t(o,l,i):l&&(n=n||{},n[o]=l)}),n}var yd={};Object.defineProperty(yd,"__esModule",{value:!0});yd.camelCase=void 0;var rI=/^--[a-zA-Z0-9_-]+$/,sI=/-([a-z])/g,iI=/^[^-]+$/,oI=/^-(webkit|moz|ms|o|khtml)-/,aI=/^-(ms)-/,lI=function(e){return!e||iI.test(e)||rI.test(e)},cI=function(e,t){return t.toUpperCase()},Uy=function(e,t){return"".concat(t,"-")},uI=function(e,t){return t===void 0&&(t={}),lI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(aI,Uy):e=e.replace(oI,Uy),e.replace(sI,cI))};yd.camelCase=uI;var dI=cs&&cs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},fI=dI(Dg),pI=yd;function Tm(e,t){var n={};return!e||typeof e!="string"||(0,fI.default)(e,function(r,s){r&&s&&(n[(0,pI.camelCase)(r,t)]=s)}),n}Tm.default=Tm;var mI=Tm;const hI=Uu(mI),uE=dE("end"),Mg=dE("start");function dE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function gI(e){const t=Mg(e),n=uE(e);if(t&&n)return{start:t,end:n}}function Ta(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Vy(e.position):"start"in e||"end"in e?Vy(e):"line"in e||"column"in e?Lm(e):""}function Lm(e){return zy(e&&e.line)+":"+zy(e&&e.column)}function Vy(e){return Lm(e&&e.start)+"-"+Lm(e&&e.end)}function zy(e){return e&&typeof e=="number"?e:1}class Cn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},o=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(o=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Ta(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Cn.prototype.file="";Cn.prototype.name="";Cn.prototype.reason="";Cn.prototype.message="";Cn.prototype.stack="";Cn.prototype.column=void 0;Cn.prototype.line=void 0;Cn.prototype.ancestors=void 0;Cn.prototype.cause=void 0;Cn.prototype.fatal=void 0;Cn.prototype.place=void 0;Cn.prototype.ruleId=void 0;Cn.prototype.source=void 0;const Og={}.hasOwnProperty,xI=new Map,vI=/[A-Z]/g,yI=new Set(["table","tbody","thead","tfoot","tr"]),bI=new Set(["td","th"]),fE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function _I(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=PI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=NI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Ag:UO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=pE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function pE(e,t,n){if(t.type==="element")return wI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return kI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return EI(e,t,n);if(t.type==="mdxjsEsm")return SI(e,t);if(t.type==="root")return CI(e,t,n);if(t.type==="text")return jI(e,t)}function wI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Ag,e.schema=s),e.ancestors.push(t);const i=hE(e,t.tagName,!1),o=RI(e,t);let l=Fg(e,t);return yI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!RO(c):!0})),mE(e,o,i,t),Ig(o,l),e.ancestors.pop(),e.schema=r,e.create(t,i,o,n)}function kI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ll(e,t.position)}function SI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ll(e,t.position)}function EI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Ag,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:hE(e,t.name,!0),o=TI(e,t),l=Fg(e,t);return mE(e,o,i,t),Ig(o,l),e.ancestors.pop(),e.schema=r,e.create(t,i,o,n)}function CI(e,t,n){const r={};return Ig(r,Fg(e,t)),e.create(t,e.Fragment,r,n)}function jI(e,t){return t.value}function mE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Ig(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function NI(e,t,n){return r;function r(s,i,o,l){const u=Array.isArray(o.children)?n:t;return l?u(i,o,l):u(i,o)}}function PI(e,t){return n;function n(r,s,i,o){const l=Array.isArray(i.children),c=Mg(r);return t(s,i,o,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function RI(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Og.call(t.properties,s)){const i=LI(e,s,t.properties[s]);if(i){const[o,l]=i;e.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&bI.has(t.tagName)?r=l:n[o]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function TI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const o=i.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ll(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ll(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Fg(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:xI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);i0?(nr(e,e.length,0,t),e):t}const qy={}.hasOwnProperty;function xE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Tr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Tn=ai(/[A-Za-z]/),Sn=ai(/[\dA-Za-z]/),VI=ai(/[#-'*+\--9=?A-Z^-~]/);function Ru(e){return e!==null&&(e<32||e===127)}const Am=ai(/\d/),zI=ai(/[\dA-Fa-f]/),$I=ai(/[!-/:-@[-`{-~]/);function je(e){return e!==null&&e<-2}function pt(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const bd=ai(new RegExp("\\p{P}|\\p{S}","u")),Ii=ai(/\s/);function ai(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function qo(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(o=String.fromCharCode(i,l),s=1):o="�"}else o=String.fromCharCode(i);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+s+1,o=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Xe(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return o;function o(c){return He(c)?(e.enter(n),l(c)):t(c)}function l(c){return He(c)&&i++o))return;const T=t.events.length;let D=T,z,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if(z){j=t.events[D][1].end;break}z=!0}for(x(r),k=T;kb;){const R=n[S];t.containerState=R[1],R[0].exit.call(t,e)}n.length=b}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function KI(e,t,n){return Xe(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Do(e){if(e===null||pt(e)||Ii(e))return 1;if(bd(e))return 2}function _d(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const f={...e[r][1].end},p={...e[n][1].start};Gy(f,-c),Gy(p,c),o={type:c>1?"strongSequence":"emphasisSequence",start:f,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:p},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},e[r][1].end={...o.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=hr(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=hr(u,[["enter",s,t],["enter",o,t],["exit",o,t],["enter",i,t]]),u=hr(u,_d(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=hr(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=hr(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,nr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&He(k)?Xe(e,y,"linePrefix",i+1)(k):y(k)}function y(k){return k===null||je(k)?e.check(Ky,v,S)(k):(e.enter("codeFlowValue"),b(k))}function b(k){return k===null||je(k)?(e.exit("codeFlowValue"),y(k)):(e.consume(k),b)}function S(k){return e.exit("codeFenced"),t(k)}function R(k,T,D){let z=0;return j;function j(me){return k.enter("lineEnding"),k.consume(me),k.exit("lineEnding"),$}function $(me){return k.enter("codeFencedFence"),He(me)?Xe(k,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(me):X(me)}function X(me){return me===l?(k.enter("codeFencedFenceSequence"),re(me)):D(me)}function re(me){return me===l?(z++,k.consume(me),re):z>=o?(k.exit("codeFencedFenceSequence"),He(me)?Xe(k,oe,"whitespace")(me):oe(me)):D(me)}function oe(me){return me===null||je(me)?(k.exit("codeFencedFence"),T(me)):D(me)}}}function oF(e,t,n){const r=this;return s;function s(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i)}function i(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const If={name:"codeIndented",tokenize:lF},aF={partial:!0,tokenize:cF};function lF(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Xe(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?c(u):je(u)?e.attempt(aF,o,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||je(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function cF(e,t,n){const r=this;return s;function s(o){return r.parser.lazy[r.now().line]?n(o):je(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):Xe(e,i,"linePrefix",5)(o)}function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):je(o)?s(o):n(o)}}const uF={name:"codeText",previous:fF,resolve:dF,tokenize:pF};function dF(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&la(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),la(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),la(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function kE(e,t,n,r,s,i,o,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return f;function f(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),p):x===null||x===32||x===41||Ru(x)?n(x):(e.enter(r),e.enter(o),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function p(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),p(x)):x===null||x===60||je(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||pt(x))?(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):je(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||je(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!He(h)),h===92?p:f)}function p(h){return h===91||h===92||h===93?(e.consume(h),l++,f):f(h)}}function EE(e,t,n,r,s,i){let o;return l;function l(p){return p===34||p===39||p===40?(e.enter(r),e.enter(s),e.consume(p),e.exit(s),o=p===40?41:p,c):n(p)}function c(p){return p===o?(e.enter(s),e.consume(p),e.exit(s),e.exit(r),t):(e.enter(i),u(p))}function u(p){return p===o?(e.exit(i),c(o)):p===null?n(p):je(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),Xe(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===o||p===null||je(p)?(e.exit("chunkString"),u(p)):(e.consume(p),p===92?f:d)}function f(p){return p===o||p===92?(e.consume(p),d):d(p)}}function La(e,t){let n;return r;function r(s){return je(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):He(s)?Xe(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const _F={name:"definition",tokenize:kF},wF={partial:!0,tokenize:SF};function kF(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),o(h)}function o(h){return SE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Tr(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return pt(h)?La(e,u)(h):u(h)}function u(h){return kE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(wF,f,f)(h)}function f(h){return He(h)?Xe(e,p,"whitespace")(h):p(h)}function p(h){return h===null||je(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function SF(e,t,n){return r;function r(l){return pt(l)?La(e,s)(l):n(l)}function s(l){return EE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return He(l)?Xe(e,o,"whitespace")(l):o(l)}function o(l){return l===null||je(l)?t(l):n(l)}}const EF={name:"hardBreakEscape",tokenize:CF};function CF(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return je(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const jF={name:"headingAtx",resolve:NF,tokenize:PF};function NF(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},nr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function PF(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||pt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||je(d)?(e.exit("atxHeading"),t(d)):He(d)?Xe(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||pt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const RF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Yy=["pre","script","style","textarea"],TF={concrete:!0,name:"htmlFlow",resolveTo:DF,tokenize:MF},LF={partial:!0,tokenize:IF},AF={partial:!0,tokenize:OF};function DF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function MF(e,t,n){const r=this;let s,i,o,l,c;return u;function u(A){return d(A)}function d(A){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(A),f}function f(A){return A===33?(e.consume(A),p):A===47?(e.consume(A),i=!0,v):A===63?(e.consume(A),s=3,r.interrupt?t:C):Tn(A)?(e.consume(A),o=String.fromCharCode(A),_):n(A)}function p(A){return A===45?(e.consume(A),s=2,h):A===91?(e.consume(A),s=5,l=0,g):Tn(A)?(e.consume(A),s=4,r.interrupt?t:C):n(A)}function h(A){return A===45?(e.consume(A),r.interrupt?t:C):n(A)}function g(A){const we="CDATA[";return A===we.charCodeAt(l++)?(e.consume(A),l===we.length?r.interrupt?t:X:g):n(A)}function v(A){return Tn(A)?(e.consume(A),o=String.fromCharCode(A),_):n(A)}function _(A){if(A===null||A===47||A===62||pt(A)){const we=A===47,De=o.toLowerCase();return!we&&!i&&Yy.includes(De)?(s=1,r.interrupt?t(A):X(A)):RF.includes(o.toLowerCase())?(s=6,we?(e.consume(A),x):r.interrupt?t(A):X(A)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(A):i?y(A):b(A))}return A===45||Sn(A)?(e.consume(A),o+=String.fromCharCode(A),_):n(A)}function x(A){return A===62?(e.consume(A),r.interrupt?t:X):n(A)}function y(A){return He(A)?(e.consume(A),y):j(A)}function b(A){return A===47?(e.consume(A),j):A===58||A===95||Tn(A)?(e.consume(A),S):He(A)?(e.consume(A),b):j(A)}function S(A){return A===45||A===46||A===58||A===95||Sn(A)?(e.consume(A),S):R(A)}function R(A){return A===61?(e.consume(A),k):He(A)?(e.consume(A),R):b(A)}function k(A){return A===null||A===60||A===61||A===62||A===96?n(A):A===34||A===39?(e.consume(A),c=A,T):He(A)?(e.consume(A),k):D(A)}function T(A){return A===c?(e.consume(A),c=null,z):A===null||je(A)?n(A):(e.consume(A),T)}function D(A){return A===null||A===34||A===39||A===47||A===60||A===61||A===62||A===96||pt(A)?R(A):(e.consume(A),D)}function z(A){return A===47||A===62||He(A)?b(A):n(A)}function j(A){return A===62?(e.consume(A),$):n(A)}function $(A){return A===null||je(A)?X(A):He(A)?(e.consume(A),$):n(A)}function X(A){return A===45&&s===2?(e.consume(A),ve):A===60&&s===1?(e.consume(A),ie):A===62&&s===4?(e.consume(A),de):A===63&&s===3?(e.consume(A),C):A===93&&s===5?(e.consume(A),q):je(A)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(LF,pe,re)(A)):A===null||je(A)?(e.exit("htmlFlowData"),re(A)):(e.consume(A),X)}function re(A){return e.check(AF,oe,pe)(A)}function oe(A){return e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),me}function me(A){return A===null||je(A)?re(A):(e.enter("htmlFlowData"),X(A))}function ve(A){return A===45?(e.consume(A),C):X(A)}function ie(A){return A===47?(e.consume(A),o="",B):X(A)}function B(A){if(A===62){const we=o.toLowerCase();return Yy.includes(we)?(e.consume(A),de):X(A)}return Tn(A)&&o.length<8?(e.consume(A),o+=String.fromCharCode(A),B):X(A)}function q(A){return A===93?(e.consume(A),C):X(A)}function C(A){return A===62?(e.consume(A),de):A===45&&s===2?(e.consume(A),C):X(A)}function de(A){return A===null||je(A)?(e.exit("htmlFlowData"),pe(A)):(e.consume(A),de)}function pe(A){return e.exit("htmlFlow"),t(A)}}function OF(e,t,n){const r=this;return s;function s(o){return je(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):n(o)}function i(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function IF(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Rl,t,n)}}const FF={name:"htmlText",tokenize:BF};function BF(e,t,n){const r=this;let s,i,o;return l;function l(C){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(C),c}function c(C){return C===33?(e.consume(C),u):C===47?(e.consume(C),R):C===63?(e.consume(C),b):Tn(C)?(e.consume(C),D):n(C)}function u(C){return C===45?(e.consume(C),d):C===91?(e.consume(C),i=0,g):Tn(C)?(e.consume(C),y):n(C)}function d(C){return C===45?(e.consume(C),h):n(C)}function f(C){return C===null?n(C):C===45?(e.consume(C),p):je(C)?(o=f,ie(C)):(e.consume(C),f)}function p(C){return C===45?(e.consume(C),h):f(C)}function h(C){return C===62?ve(C):C===45?p(C):f(C)}function g(C){const de="CDATA[";return C===de.charCodeAt(i++)?(e.consume(C),i===de.length?v:g):n(C)}function v(C){return C===null?n(C):C===93?(e.consume(C),_):je(C)?(o=v,ie(C)):(e.consume(C),v)}function _(C){return C===93?(e.consume(C),x):v(C)}function x(C){return C===62?ve(C):C===93?(e.consume(C),x):v(C)}function y(C){return C===null||C===62?ve(C):je(C)?(o=y,ie(C)):(e.consume(C),y)}function b(C){return C===null?n(C):C===63?(e.consume(C),S):je(C)?(o=b,ie(C)):(e.consume(C),b)}function S(C){return C===62?ve(C):b(C)}function R(C){return Tn(C)?(e.consume(C),k):n(C)}function k(C){return C===45||Sn(C)?(e.consume(C),k):T(C)}function T(C){return je(C)?(o=T,ie(C)):He(C)?(e.consume(C),T):ve(C)}function D(C){return C===45||Sn(C)?(e.consume(C),D):C===47||C===62||pt(C)?z(C):n(C)}function z(C){return C===47?(e.consume(C),ve):C===58||C===95||Tn(C)?(e.consume(C),j):je(C)?(o=z,ie(C)):He(C)?(e.consume(C),z):ve(C)}function j(C){return C===45||C===46||C===58||C===95||Sn(C)?(e.consume(C),j):$(C)}function $(C){return C===61?(e.consume(C),X):je(C)?(o=$,ie(C)):He(C)?(e.consume(C),$):z(C)}function X(C){return C===null||C===60||C===61||C===62||C===96?n(C):C===34||C===39?(e.consume(C),s=C,re):je(C)?(o=X,ie(C)):He(C)?(e.consume(C),X):(e.consume(C),oe)}function re(C){return C===s?(e.consume(C),s=void 0,me):C===null?n(C):je(C)?(o=re,ie(C)):(e.consume(C),re)}function oe(C){return C===null||C===34||C===39||C===60||C===61||C===96?n(C):C===47||C===62||pt(C)?z(C):(e.consume(C),oe)}function me(C){return C===47||C===62||pt(C)?z(C):n(C)}function ve(C){return C===62?(e.consume(C),e.exit("htmlTextData"),e.exit("htmlText"),t):n(C)}function ie(C){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),B}function B(C){return He(C)?Xe(e,q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(C):q(C)}function q(C){return e.enter("htmlTextData"),o(C)}}const Vg={name:"labelEnd",resolveAll:$F,resolveTo:HF,tokenize:qF},UF={tokenize:WF},VF={tokenize:GF},zF={tokenize:KF};function $F(e){let t=-1;const n=[];for(;++t=3&&(u===null||je(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),He(u)?Xe(e,l,"whitespace")(u):l(u))}}const Bn={continuation:{tokenize:sB},exit:oB,name:"list",tokenize:rB},tB={partial:!0,tokenize:aB},nB={partial:!0,tokenize:iB};function rB(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,o=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Am(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(zc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Am(h)&&++o<10?(e.consume(h),c):(!r.interrupt||o<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Rl,r.interrupt?n:d,e.attempt(tB,p,f))}function d(h){return r.containerState.initialBlankLine=!0,i++,p(h)}function f(h){return He(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),p):n(h)}function p(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function sB(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Rl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Xe(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!He(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(nB,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Xe(e,e.attempt(Bn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function iB(e,t,n){const r=this;return Xe(e,s,"listItemIndent",r.containerState.size+1);function s(i){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(i):n(i)}}function oB(e){e.exit(this.containerState.type)}function aB(e,t,n){const r=this;return Xe(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const o=r.events[r.events.length-1];return!He(i)&&o&&o[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Xy={name:"setextUnderline",resolveTo:lB,tokenize:cB};function lB(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",o,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function cB(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,f;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){f=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),s=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),He(u)?Xe(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||je(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const uB={tokenize:dB};function dB(e){const t=this,n=e.attempt(Rl,r,e.attempt(this.parser.constructs.flowInitial,s,Xe(e,e.attempt(this.parser.constructs.flow,s,e.attempt(gF,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const fB={resolveAll:jE()},pB=CE("string"),mB=CE("text");function CE(e){return{resolveAll:jE(e==="text"?hB:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,o,l);return o;function o(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const f=s[d];let p=-1;if(f)for(;++p-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}i>0&&o.push(e[s].slice(0,i))}return o}function NB(e,t){let n=-1;const r=[];let s;for(;++n0){const Fe=G.tokenStack[G.tokenStack.length-1];(Fe[1]||Zy).call(G,void 0,Fe[0])}for(F.position={start:Ts(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Ts(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},Pe=-1;++Pe0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function zB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function $B(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function HB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=qo(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let o,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function qB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function WB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function RE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const o=s[s.length-1];return o&&o.type==="text"?o.value+=r:s.push({type:"text",value:r}),s}function GB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return RE(e,t);const s={src:qo(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function KB(e,t){const n={src:qo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function QB(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function YB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return RE(e,t);const s={href:qo(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function XB(e,t){const n={href:qo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function JB(e,t,n){const r=e.all(t),s=n?ZB(n):TE(t),i={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let f;d&&d.type==="element"&&d.tagName==="p"?f=d:(f={type:"element",tagName:"p",properties:{},children:[]},r.unshift(f)),f.children.length>0&&f.children.unshift({type:"text",value:" "}),f.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function e6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Mg(t.children[1]),c=uE(t.children[t.children.length-1]);l&&c&&(o.position={start:l,end:c}),s.push(o)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function i6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(nb(t.slice(s),s>0,!1)),i.join("")}function nb(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===eb||i===tb;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===eb||i===tb;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function l6(e,t){const n={type:"text",value:a6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function c6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const u6={blockquote:BB,break:UB,code:VB,delete:zB,emphasis:$B,footnoteReference:HB,heading:qB,html:WB,imageReference:GB,image:KB,inlineCode:QB,linkReference:YB,link:XB,listItem:JB,list:e6,paragraph:t6,root:n6,strong:r6,table:s6,tableCell:o6,tableRow:i6,text:l6,thematicBreak:c6,toml:pc,yaml:pc,definition:pc,footnoteDefinition:pc};function pc(){}const LE=-1,wd=0,Aa=1,Tu=2,zg=3,$g=4,Hg=5,qg=6,AE=7,DE=8,rb=typeof self=="object"?self:globalThis,d6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,o]=t[s];switch(i){case wd:case LE:return n(o,s);case Aa:{const l=n([],s);for(const c of o)l.push(r(c));return l}case Tu:{const l=n({},s);for(const[c,u]of o)l[r(c)]=r(u);return l}case zg:return n(new Date(o),s);case $g:{const{source:l,flags:c}=o;return n(new RegExp(l,c),s)}case Hg:{const l=n(new Map,s);for(const[c,u]of o)l.set(r(c),r(u));return l}case qg:{const l=n(new Set,s);for(const c of o)l.add(r(c));return l}case AE:{const{name:l,message:c}=o;return n(new rb[l](c),s)}case DE:return n(BigInt(o),s);case"BigInt":return n(Object(BigInt(o)),s);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:l}=new Uint8Array(o);return n(new DataView(l),o)}}return n(new rb[i](o),s)};return r},sb=e=>d6(new Map,e)(0),Wi="",{toString:f6}={},{keys:p6}=Object,ca=e=>{const t=typeof e;if(t!=="object"||!e)return[wd,t];const n=f6.call(e).slice(8,-1);switch(n){case"Array":return[Aa,Wi];case"Object":return[Tu,Wi];case"Date":return[zg,Wi];case"RegExp":return[$g,Wi];case"Map":return[Hg,Wi];case"Set":return[qg,Wi];case"DataView":return[Aa,n]}return n.includes("Array")?[Aa,n]:n.includes("Error")?[AE,n]:[Tu,n]},mc=([e,t])=>e===wd&&(t==="function"||t==="symbol"),m6=(e,t,n,r)=>{const s=(o,l)=>{const c=r.push(o)-1;return n.set(l,c),c},i=o=>{if(n.has(o))return n.get(o);let[l,c]=ca(o);switch(l){case wd:{let d=o;switch(c){case"bigint":l=DE,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([LE],o)}return s([l,d],o)}case Aa:{if(c){let p=o;return c==="DataView"?p=new Uint8Array(o.buffer):c==="ArrayBuffer"&&(p=new Uint8Array(o)),s([c,[...p]],o)}const d=[],f=s([l,d],o);for(const p of o)d.push(i(p));return f}case Tu:{if(c)switch(c){case"BigInt":return s([c,o.toString()],o);case"Boolean":case"Number":case"String":return s([c,o.valueOf()],o)}if(t&&"toJSON"in o)return i(o.toJSON());const d=[],f=s([l,d],o);for(const p of p6(o))(e||!mc(ca(o[p])))&&d.push([i(p),i(o[p])]);return f}case zg:return s([l,o.toISOString()],o);case $g:{const{source:d,flags:f}=o;return s([l,{source:d,flags:f}],o)}case Hg:{const d=[],f=s([l,d],o);for(const[p,h]of o)(e||!(mc(ca(p))||mc(ca(h))))&&d.push([i(p),i(h)]);return f}case qg:{const d=[],f=s([l,d],o);for(const p of o)(e||!mc(ca(p)))&&d.push(i(p));return f}}const{message:u}=o;return s([l,{name:c,message:u}],o)};return i},ib=(e,{json:t,lossy:n}={})=>{const r=[];return m6(!(t||n),!!t,new Map,r)(e),r},Lu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?sb(ib(e,t)):structuredClone(e):(e,t)=>sb(ib(e,t));function h6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function g6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function x6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||h6,r=e.options.footnoteBackLabel||g6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+p+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const _=d[d.length-1];if(_&&_.type==="element"&&_.tagName==="p"){const y=_.children[_.children.length-1];y&&y.type==="text"?y.value+=" ":_.children.push({type:"text",value:" "}),_.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+p},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Lu(o),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const kd=function(e){if(e==null)return _6;if(typeof e=="function")return Sd(e);if(typeof e=="object")return Array.isArray(e)?v6(e):y6(e);if(typeof e=="string")return b6(e);throw new Error("Expected function, string, or object as test")};function v6(e){const t=[];let n=-1;for(;++n":""))+")"})}return p;function p(){let h=ME,g,v,_;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=E6(n(c,d)),h[0]===Mm))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==S6)for(v=(r?x.children.length:-1)+o,_=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function ob(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function ab(e,t){const n=j6(e,t),r=n.one(e,void 0),s=x6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function L6(e,t){return e&&"run"in e?async function(n,r){const s=ab(n,{file:r,...t});await e.run(s,r)}:function(n,r){return ab(n,{file:r,...e||t})}}function lb(e){if(e)throw e}var $c=Object.prototype.hasOwnProperty,IE=Object.prototype.toString,cb=Object.defineProperty,ub=Object.getOwnPropertyDescriptor,db=function(t){return typeof Array.isArray=="function"?Array.isArray(t):IE.call(t)==="[object Array]"},fb=function(t){if(!t||IE.call(t)!=="[object Object]")return!1;var n=$c.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&$c.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||$c.call(t,s)},pb=function(t,n){cb&&n.name==="__proto__"?cb(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},mb=function(t,n){if(n==="__proto__")if($c.call(t,n)){if(ub)return ub(t,n).value}else return;return t[n]},A6=function e(){var t,n,r,s,i,o,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});co.length;let c;l&&o.push(s);try{c=e.apply(this,o)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(o,...l){n||(n=!0,t(o,...l))}function i(o){s(null,o)}}const zr={basename:O6,dirname:I6,extname:F6,join:B6,sep:"/"};function O6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Tl(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else o<0&&(i=!0,o=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function I6(e){if(Tl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function F6(e){Tl(e);let t=e.length,n=-1,r=0,s=-1,i=0,o;for(;t--;){const l=e.codePointAt(t);if(l===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function B6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function V6(e,t){let n="",r=0,s=-1,i=0,o=-1,l,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=o,i=0;continue}}else if(n.length>0){n="",r=0,s=o,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,o):n=e.slice(s+1,o),r=o-s-1;s=o,i=0}else l===46&&i>-1?i++:i=-1}return n}function Tl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const z6={cwd:$6};function $6(){return"/"}function Fm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function H6(e){if(typeof e=="string")e=new URL(e);else if(!Fm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return q6(e)}function q6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[p][1];Im(v)&&Im(h)&&(h=Bf(!0,v,h)),r[p]=[u,h,...g]}}}}const Q6=new Gg().freeze();function $f(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Hf(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function qf(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function gb(e){if(!Im(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function xb(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function hc(e){return Y6(e)?e:new FE(e)}function Y6(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function X6(e){return typeof e=="string"||J6(e)}function J6(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Z6="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",vb=[],yb={allowDangerousHtml:!0},eU=/^(https?|ircs?|mailto|xmpp)$/i,tU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function nU(e){const t=rU(e),n=sU(e);return iU(t.runSync(t.parse(n),n),e)}function rU(e){const t=e.rehypePlugins||vb,n=e.remarkPlugins||vb,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...yb}:yb;return Q6().use(FB).use(n).use(L6,r).use(t)}function sU(e){const t=e.children||"",n=new FE;return typeof t=="string"&&(n.value=t),n}function iU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,o=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||oU;for(const d of tU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+Z6+d.id,void 0);return Wg(e,u),_I(e,{Fragment:a.Fragment,components:s,ignoreInvalidStyle:!0,jsx:a.jsx,jsxs:a.jsxs,passKeys:!0,passNode:!0});function u(d,f,p){if(d.type==="raw"&&p&&typeof f=="number")return o?p.children.splice(f,1):p.children[f]={type:"text",value:d.value},f;if(d.type==="element"){let h;for(h in Of)if(Object.hasOwn(Of,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Of[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof f=="number"&&(h=!r(d,f,p)),h&&p&&typeof f=="number")return l&&d.children?p.children.splice(f,1,...d.children):p.children.splice(f,1),f}}}function oU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||eU.test(e.slice(0,t))?e:""}function bb(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function aU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function lU(e,t,n){const s=kd((n||{}).ignore||[]),i=cU(t);let o=-1;for(;++o0?{type:"text",value:k}:void 0),k===!1?p.lastIndex=S+1:(g!==S&&y.push({type:"text",value:u.value.slice(g,S)}),Array.isArray(k)?y.push(...k):k&&y.push(k),g=S+b[0].length,x=!0),!p.global)break;b=p.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=bb(e,"(");let i=bb(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function BE(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Ii(n)||bd(n))&&(!t||n!==47)}UE.peek=LU;function SU(){this.buffer()}function EU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function CU(){this.buffer()}function jU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function NU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Tr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function PU(e){this.exit(e)}function RU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Tr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function TU(e){this.exit(e)}function LU(){return"["}function UE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const o=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),o(),i+=s.move("]"),i}function AU(){return{enter:{gfmFootnoteCallString:SU,gfmFootnoteCall:EU,gfmFootnoteDefinitionLabelString:CU,gfmFootnoteDefinition:jU},exit:{gfmFootnoteCallString:NU,gfmFootnoteCall:PU,gfmFootnoteDefinitionLabelString:RU,gfmFootnoteDefinition:TU}}}function DU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:UE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,o){const l=i.createTracker(o);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?VE:MU))),u(),c}}function MU(e,t,n){return t===0?e:VE(e,t,n)}function VE(e,t,n){return(n?"":" ")+e}const OU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];zE.peek=VU;function IU(){return{canContainEols:["delete"],enter:{strikethrough:BU},exit:{strikethrough:UU}}}function FU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:OU}],handlers:{delete:zE}}}function BU(e){this.enter({type:"delete",children:[]},e)}function UU(e){this.exit(e)}function zE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let o=s.move("~~");return o+=n.containerPhrasing(e,{...s.current(),before:o,after:"~"}),o+=s.move("~~"),i(),o}function VU(){return"~"}function zU(e){return e.length}function $U(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||zU,i=[],o=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=b)}v.push(y)}o[d]=v,l[d]=_}let f=-1;if(typeof r=="object"&&"length"in r)for(;++fc[f]&&(c[f]=y),h[f]=y),p[f]=b}o.splice(1,0,p),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const o=n.indentLines(n.containerFlow(e,i.current()),WU);return s(),o}function WU(e,t,n){return">"+(n?"":" ")+e}function GU(e,t){return wb(e,t.inConstruct,!0)&&!wb(e,t.notInConstruct,!1)}function wb(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=i):i=1,s=r+t.length,r=n.indexOf(t,s);return o}function QU(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function YU(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function XU(e,t,n,r){const s=YU(n),i=e.value||"",o=s==="`"?"GraveAccent":"Tilde";if(QU(e,n)){const f=n.enter("codeIndented"),p=n.indentLines(i,JU);return f(),p}const l=n.createTracker(r),c=s.repeat(Math.max(KU(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const f=n.enter(`codeFencedLang${o}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),f()}if(e.lang&&e.meta){const f=n.enter(`codeFencedMeta${o}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),f()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function JU(e,t,n){return(n?"":" ")+e}function Kg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function ZU(e,t,n,r){const s=Kg(n),i=s==='"'?"Quote":"Apostrophe",o=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),o(),u}function e7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function cl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Au(e,t,n){const r=Do(e),s=Do(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}$E.peek=t7;function $E(e,t,n,r){const s=e7(n),i=n.enter("emphasis"),o=n.createTracker(r),l=o.move(s);let c=o.move(n.containerPhrasing(e,{after:s,before:l,...o.current()}));const u=c.charCodeAt(0),d=Au(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=cl(u)+c.slice(1));const f=c.charCodeAt(c.length-1),p=Au(r.after.charCodeAt(0),f,s);p.inside&&(c=c.slice(0,-1)+cl(f));const h=o.move(s);return i(),n.attentionEncodeSurroundingInfo={after:p.outside,before:d.outside},l+c+h}function t7(e,t,n){return n.options.emphasis||"*"}function n7(e,t){let n=!1;return Wg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Mm}),!!((!e.depth||e.depth<3)&&Bg(e)&&(t.options.setext||n))}function r7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(n7(e,n)){const d=n.enter("headingSetext"),f=n.enter("phrasing"),p=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return f(),d(),p+` +`+(s===1?"=":"-").repeat(p.length-(Math.max(p.lastIndexOf("\r"),p.lastIndexOf(` +`))+1))}const o="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(o+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=cl(u.charCodeAt(0))+u.slice(1)),u=u?o+" "+u:o,n.options.closeAtx&&(u+=" "+o),c(),l(),u}HE.peek=s7;function HE(e){return e.value||""}function s7(){return"<"}qE.peek=i7;function qE(e,t,n,r){const s=Kg(n),i=s==='"'?"Quote":"Apostrophe",o=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),o(),u}function i7(){return"!"}WE.peek=o7;function WE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let o=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const f=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return o(),n.stack=d,i(),s==="full"||!u||u!==f?c+=l.move(f+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function o7(){return"!"}GE.peek=a7;function GE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}QE.peek=l7;function QE(e,t,n,r){const s=Kg(n),i=s==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let l,c;if(KE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let f=o.move("<");return f+=o.move(n.containerPhrasing(e,{before:f,after:">",...o.current()})),f+=o.move(">"),l(),n.stack=d,f}l=n.enter("link"),c=n.enter("label");let u=o.move("[");return u+=o.move(n.containerPhrasing(e,{before:u,after:"](",...o.current()})),u+=o.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=o.move("<"),u+=o.move(n.safe(e.url,{before:u,after:">",...o.current()})),u+=o.move(">")):(c=n.enter("destinationRaw"),u+=o.move(n.safe(e.url,{before:u,after:e.title?" ":")",...o.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=o.move(" "+s),u+=o.move(n.safe(e.title,{before:u,after:s,...o.current()})),u+=o.move(s),c()),u+=o.move(")"),l(),u}function l7(e,t,n){return KE(e,n)?"<":"["}YE.peek=c7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let o=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const f=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return o(),n.stack=d,i(),s==="full"||!u||u!==f?c+=l.move(f+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function c7(){return"["}function Qg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function u7(e){const t=Qg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function d7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function XE(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function f7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let o=e.ordered?d7(n):Qg(n);const l=e.ordered?o==="."?")":".":u7(n);let c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),XE(n)===o&&d){let f=-1;for(;++f-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let o=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(o-i.length)),l.shift(o);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(f,p,h){return p?(h?"":" ".repeat(o))+f:(h?i:i+" ".repeat(o-i.length))+f}}function h7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),o=n.containerPhrasing(e,r);return i(),s(),o}const g7=kd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function x7(e,t,n,r){return(e.children.some(function(o){return g7(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function v7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}JE.peek=y7;function JE(e,t,n,r){const s=v7(n),i=n.enter("strong"),o=n.createTracker(r),l=o.move(s+s);let c=o.move(n.containerPhrasing(e,{after:s,before:l,...o.current()}));const u=c.charCodeAt(0),d=Au(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=cl(u)+c.slice(1));const f=c.charCodeAt(c.length-1),p=Au(r.after.charCodeAt(0),f,s);p.inside&&(c=c.slice(0,-1)+cl(f));const h=o.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:p.outside,before:d.outside},l+c+h}function y7(e,t,n){return n.options.strong||"*"}function b7(e,t,n,r){return n.safe(e.value,r)}function _7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function w7(e,t,n){const r=(XE(n)+(n.options.ruleSpaces?" ":"")).repeat(_7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const ZE={blockquote:qU,break:kb,code:XU,definition:ZU,emphasis:$E,hardBreak:kb,heading:r7,html:HE,image:qE,imageReference:WE,inlineCode:GE,link:QE,linkReference:YE,list:f7,listItem:m7,paragraph:h7,root:x7,strong:JE,text:b7,thematicBreak:w7};function k7(){return{enter:{table:S7,tableData:Sb,tableHeader:Sb,tableRow:C7},exit:{codeText:j7,table:E7,tableData:Qf,tableHeader:Qf,tableRow:Qf}}}function S7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function E7(e){this.exit(e),this.data.inTable=void 0}function C7(e){this.enter({type:"tableRow",children:[]},e)}function Qf(e){this.exit(e)}function Sb(e){this.enter({type:"tableCell",children:[]},e)}function j7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,N7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function N7(e,t){return t==="|"?t:e}function P7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:p,table:o,tableCell:c,tableRow:l}};function o(h,g,v,_){return u(d(h,v,_),h.align)}function l(h,g,v,_){const x=f(h,v,_),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,_){const x=v.enter("tableCell"),y=v.enter("phrasing"),b=v.containerPhrasing(h,{..._,before:i,after:i});return y(),x(),b}function u(h,g){return $U(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const _=h.children;let x=-1;const y=[],b=g.enter("table");for(;++x<_.length;)y[x]=f(_[x],g,v);return b(),y}function f(h,g,v){const _=h.children;let x=-1;const y=[],b=g.enter("tableRow");for(;++x<_.length;)y[x]=c(_[x],h,g,v);return b(),y}function p(h,g,v){let _=ZE.inlineCode(h,g,v);return v.stack.includes("tableCell")&&(_=_.replace(/\|/g,"\\$&")),_}}function R7(){return{exit:{taskListCheckValueChecked:Eb,taskListCheckValueUnchecked:Eb,paragraph:L7}}}function T7(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:A7}}}function Eb(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function L7(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const s=t.children;let i=-1,o;for(;++i0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const G7={tokenize:tV,partial:!0};function K7(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:J7,continuation:{tokenize:Z7},exit:eV}},text:{91:{name:"gfmFootnoteCall",tokenize:X7},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Q7,resolveTo:Y7}}}}function Q7(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){o=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!o||!o._balanced)return n(c);const u=Tr(r.sliceSerialize({start:o.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function Y7(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function X7(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,o;return l;function l(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),c}function c(f){return f!==94?n(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(f){if(i>999||f===93&&!o||f===null||f===91||pt(f))return n(f);if(f===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return s.includes(Tr(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(f)}return pt(f)||(o=!0),i++,e.consume(f),f===92?d:u}function d(f){return f===91||f===92||f===93?(e.consume(f),i++,u):u(f)}}function J7(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,o=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!l||g===null||g===91||pt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Tr(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return pt(g)||(l=!0),o++,e.consume(g),g===92?f:d}function f(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function p(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Xe(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function Z7(e,t,n){return e.check(Rl,t,e.attempt(G7,t,n))}function eV(e){e.exit("gfmFootnoteDefinition")}function tV(e,t,n){const r=this;return Xe(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(i):n(i)}}function nV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(o,l){let c=-1;for(;++c1?c(g):(o.consume(g),f++,h);if(f<2&&!n)return c(g);const _=o.exit("strikethroughSequenceTemporary"),x=Do(g);return _._open=!x||x===2&&!!v,_._close=!v||v===2&&!!x,l(g)}}}class rV{constructor(){this.map=[]}add(t,n,r){sV(this,t,n,r)}consume(t){if(this.map.sort(function(i,o){return i[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function sV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const oe=r.events[$][1].type;if(oe==="lineEnding"||oe==="linePrefix")$--;else break}const X=$>-1?r.events[$][1].type:null,re=X==="tableHead"||X==="tableRow"?k:c;return re===k&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(o=!0,i+=1),d(j)}function d(j){return j===null?n(j):je(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):He(j)?Xe(e,d,"whitespace")(j):(i+=1,o&&(o=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),f(j)))}function f(j){return j===null||j===124||pt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?p:f)}function p(j){return j===92||j===124?(e.consume(j),f):f(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),o=!1,He(j)?Xe(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?_(j):j===124?(o=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):R(j)}function v(j){return He(j)?Xe(e,_,"whitespace")(j):_(j)}function _(j){return j===58?(i+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||je(j)?S(j):R(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):R(j)}function y(j){return j===45?(e.consume(j),y):j===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),b):(e.exit("tableDelimiterFiller"),b(j))}function b(j){return He(j)?Xe(e,S,"whitespace")(j):S(j)}function S(j){return j===124?g(j):j===null||je(j)?!o||s!==i?R(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):R(j)}function R(j){return n(j)}function k(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||je(j)?(e.exit("tableRow"),t(j)):He(j)?Xe(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||pt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?z:D)}function z(j){return j===92||j===124?(e.consume(j),D):D(j)}}function lV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],o=[0,0,0,0],l=!1,c=0,u,d,f;const p=new rV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",f,t]])}return s!==void 0&&(i.end=Object.assign({},Gi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function Cb(e,t,n,r,s){const i=[],o=Gi(t.events,n);s&&(s.end=Object.assign({},o),i.push(["exit",s,t])),r.end=Object.assign({},o),i.push(["exit",r,t]),e.add(n+1,0,i)}function Gi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const cV={name:"tasklistCheck",tokenize:dV};function uV(){return{text:{91:cV}}}function dV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return pt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),o):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),o):n(c)}function o(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return je(c)?t(c):He(c)?e.check({tokenize:fV},t,n)(c):n(c)}}function fV(e,t,n){return Xe(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function pV(e){return xE([F7(),K7(),nV(e),oV(),uV()])}const mV={};function hV(e){const t=this,n=e||mV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(pV(n)),i.push(D7()),o.push(M7(n))}function gV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:o,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,f]=m.useState([]),[p,h]=m.useState(""),[g,v]=m.useState(!1),[_,x]=m.useState(null),[y,b]=m.useState(null),[S,R]=m.useState([]),[k,T]=m.useState([]),[D,z]=m.useState(new Set),[j,$]=m.useState(!1),[X,re]=m.useState(null),[oe,me]=m.useState(!1),[ve,ie]=m.useState(380),[B,q]=m.useState(!1),[C,de]=m.useState(!0),[pe,A]=m.useState(null),[we,De]=m.useState(""),[w,Y]=m.useState(null),ae=l??ve,be=c??ie,ye=m.useRef(null),at=m.useRef(null),Je=m.useRef(null),I=m.useRef(null),it=m.useRef(null),mt=m.useRef(!1),lt=m.useMemo(()=>{if(!o||!i)return 0;let U=0;return i.forEach(J=>{const Le=J.item_id||J.line_item_id,Ue=o[Le];Ue!=null&&Ue.total&&(U+=Ue.total)}),U},[o,i]),ft=m.useCallback(U=>{U.preventDefault(),q(!0)},[]);m.useEffect(()=>{const U=Le=>{if(!B)return;const Ue=window.innerWidth-Le.clientX,Q=Math.floor(window.innerWidth*.9);be(Math.min(Math.max(320,Ue),Q))},J=()=>{q(!1)};return B&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",J),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",J),document.body.style.cursor="",document.body.style.userSelect=""}},[B]);const K=m.useCallback(U=>{h(U.target.value);const J=U.target;J.style.height="auto",J.style.height=Math.min(J.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;mt.current||(U=ye.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(mt.current=!1)},[g]);const N=m.useCallback(()=>{const U=at.current;if(!U)return;const J=U.scrollHeight-U.scrollTop-U.clientHeight<100;mt.current=!J},[]);m.useEffect(()=>{var U;e&&((U=Je.current)==null||U.focus())},[e]);const le=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),f(U=>{const J=[...U],Le=J.length-1;return Le>=0&&J[Le].isStreaming&&(J[Le]={...J[Le],isStreaming:!1,isThinking:!1,content:J[Le].content+` + +*[Generation stopped]*`}),J}))},[]),W=m.useCallback((U,J)=>{A(U),De(J)},[]),Ee=m.useCallback(()=>{A(null),De("")},[]),Ne=m.useCallback(async(U,J)=>{try{await navigator.clipboard.writeText(J),Y(U),setTimeout(()=>Y(null),2e3)}catch(Le){console.error("Failed to copy:",Le)}},[]),[O,F]=m.useState(null),[G,se]=m.useState(!1),Pe=m.useCallback(async U=>{if(!we.trim()||d.findIndex(Q=>Q.id===U)===-1)return;const Le=we.trim();if(T([]),A(null),De(""),_)try{await fetch(`/api/v1/chat/${_}`,{method:"DELETE"})}catch{}x(null);const Ue={id:"welcome",role:"assistant",content:le(),timestamp:new Date};f([Ue]),F(Le),se(!0)},[we,d,_,le]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:le(),timestamp:new Date};f([U])}},[e,le]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&f([{id:"welcome",role:"assistant",content:le(),timestamp:new Date}])},[e,s,i,lt,le]);const Fe=m.useCallback(async(U,J)=>{var ut;const Le=U||p.trim();if(!Le||g)return;const Ue={id:`user-${Date.now()}`,role:"user",content:Le,timestamp:new Date,isEdited:J||!1};f(Ke=>[...Ke,Ue]),h(""),v(!0),re(null);const Q=`assistant-${Date.now()}`;f(Ke=>[...Ke,{id:Q,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const Ke=(i||S||[]).map(Be=>{const Ae=Be.line_item_id||Be.item_id||Be.draft_id,ue=o==null?void 0:o[Ae];return{...Be,total_cost:(ue==null?void 0:ue.total)||Be.total_cost||0,dbu_cost:(ue==null?void 0:ue.dbu)||Be.dbu_cost||0,vm_cost:(ue==null?void 0:ue.vm)||Be.vm_cost||0}}),Ot=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:Ue.content,conversation_id:_,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:Ke,mode:u,stream:!0}),signal:I.current.signal});if(!Ot.ok)throw new Error(`HTTP ${Ot.status}: ${Ot.statusText}`);const rt=(ut=Ot.body)==null?void 0:ut.getReader();if(!rt)throw new Error("No response body");const St=new TextDecoder;let ht="",It="",Ve=[];for(;;){const{done:Be,value:Ae}=await rt.read();if(Be)break;ht+=St.decode(Ae,{stream:!0});const ue=ht.split(` +`);ht=ue.pop()||"";for(const bt of ue)if(bt.startsWith("data: ")){const Et=bt.slice(6);if(Et==="[DONE]")continue;try{const _e=JSON.parse(Et);if(_e.type==="start")x(_e.conversation_id);else if(_e.type==="content")It+=_e.content,f(et=>et.map(Ct=>Ct.id===Q?{...Ct,content:It,isThinking:!1}:Ct));else if(_e.type==="tool_result")Ve.push({tool:_e.tool,result:_e.result});else if(_e.type==="proposal")_e.workload&&_e.workload.proposal_id&&T(et=>et.some(Or=>Or.proposal_id===_e.workload.proposal_id)?et:[...et,_e.workload]);else if(_e.type==="done")It.includes("Error getting response")||It.includes("AI service error")||(_e.estimate&&b(_e.estimate),_e.workloads&&R(_e.workloads),_e.proposed_workloads&&_e.proposed_workloads.length>0&&T(_e.proposed_workloads));else if(_e.type==="error")throw new Error(_e.content)}catch{}}}f(Be=>Be.map(Ae=>Ae.id===Q?{...Ae,content:It,isStreaming:!1,toolResults:Ve}:Ae))}catch(Ke){if(Ke.name==="AbortError")return;console.error("Chat error:",Ke),re(Ke.message||"Failed to get response"),f(Ot=>Ot.filter(rt=>rt.id!==Q))}finally{v(!1),I.current=null}},[p,g,_,s,i,y,S,o]);m.useEffect(()=>{O&&!g&&(Fe(O,G),F(null),se(!1))},[O,G,g,Fe]);const ot=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Fe())},nt=async()=>{if(_)try{await fetch(`/api/v1/chat/${_}`,{method:"DELETE"})}catch{}x(null),b(null),R([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:le(),timestamp:new Date};f([U])},We=async U=>{if(_){z(J=>new Set(J).add(U));try{const J=await fetch(`/api/v1/chat/${_}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!J.ok)throw new Error("Failed to confirm workload");const Le=await J.json();if(T(Ue=>Ue.filter(Q=>Q.proposal_id!==U)),r&&Le.workload_config)try{await r(Le.workload_config),f(Ue=>{var Q;return[...Ue,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(Q=Le.workload_config)==null?void 0:Q.workload_name}" added to estimate.`,timestamp:new Date}]})}catch(Ue){f(Q=>[...Q,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${Ue.message||"Database error"}. Please try again.`,timestamp:new Date}]),re(Ue.message||"Failed to add workload to database")}}catch(J){re(J.message||"Failed to confirm workload")}finally{z(J=>{const Le=new Set(J);return Le.delete(U),Le})}}},ct=async U=>{if(_){z(J=>new Set(J).add(U));try{if(!(await fetch(`/api/v1/chat/${_}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Le=k.find(Ue=>Ue.proposal_id===U);T(Ue=>Ue.filter(Q=>Q.proposal_id!==U)),f(Ue=>[...Ue,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Le==null?void 0:Le.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(J){re(J.message||"Failed to reject workload")}finally{z(J=>{const Le=new Set(J);return Le.delete(U),Le})}}},Ze=async()=>{for(const U of k)await We(U.proposal_id)},Mt=async()=>{for(const U of k)await ct(U.proposal_id)};return e?a.jsx(a.Fragment,{children:oe?a.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:a.jsxs("button",{onClick:()=>me(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[a.jsx(Fc,{className:"w-5 h-5"}),a.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),a.jsx(as,{className:"w-4 h-4"})]})}):a.jsxs("div",{ref:it,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ae}px)`},children:[a.jsx("div",{onMouseDown:ft,className:ce("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",B&&"bg-lava-600/50"),children:a.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),a.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),_&&a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),a.jsxs("div",{className:"relative group",children:[a.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:a.jsx(lS,{className:"w-4 h-4"})}),a.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:a.jsxs("div",{className:"flex items-start gap-2",children:[a.jsx(ls,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),a.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:nt,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:a.jsx(Zt,{className:"w-4 h-4"})}),a.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:a.jsx(HD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&a.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[a.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:a.jsx(LD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[a.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),a.jsx("span",{className:"truncate",children:s.region||"N/A"}),a.jsx("span",{children:"•"}),a.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),a.jsxs("div",{className:"text-right flex-shrink-0",children:[a.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),a.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?a.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):a.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),a.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),k.length>0&&a.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[a.jsxs("button",{onClick:()=>$(!j),className:"w-full flex items-center justify-between py-1",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Zv,{className:"w-4 h-4 text-amber-600"}),a.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[k.length," Proposed Workload",k.length!==1?"s":""," - Confirm to Add"]})]}),j?a.jsx(Jn,{className:"w-4 h-4 text-amber-600"}):a.jsx(as,{className:"w-4 h-4 text-amber-600"})]}),!j&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[a.jsxs("button",{onClick:Ze,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",k.length,")"]}),a.jsx("button",{onClick:Mt,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),a.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:k.map(U=>{const J=D.has(U.proposal_id);return a.jsx("div",{className:ce("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",J&&"opacity-50"),children:a.jsxs("div",{className:"flex items-start justify-between gap-2",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[a.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),a.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&a.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),a.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&a.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&a.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&a.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&a.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&a.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&a.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&a.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&a.jsx("span",{children:U.dlt_edition})]})]}),a.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:J?a.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:a.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:()=>We(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:a.jsx(Cu,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:a.jsx(To,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),a.jsxs("div",{ref:at,onScroll:N,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>a.jsx("div",{className:ce("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:a.jsx("div",{className:ce("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?a.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[a.jsx("textarea",{value:we,onChange:J=>De(J.target.value),onKeyDown:J=>{J.key==="Enter"&&!J.shiftKey&&(J.preventDefault(),Pe(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),a.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),a.jsx("button",{onClick:Ee,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),a.jsxs("button",{onClick:()=>Pe(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[a.jsx(zs,{className:"w-3 h-3"}),"Save"]})]})]}):a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ce("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?a.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:a.jsxs("div",{className:"flex gap-1",children:[a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?a.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):a.jsx("div",{className:"ai-message-content",children:a.jsx(nU,{remarkPlugins:[hV],components:{h1:({children:J})=>a.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:J}),h2:({children:J})=>a.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:J}),h3:({children:J})=>a.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:J}),p:({children:J})=>a.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:J}),ul:({children:J})=>a.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:J}),ol:({children:J})=>a.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:J}),li:({children:J})=>a.jsx("li",{className:"text-[var(--text-primary)]",children:J}),strong:({children:J})=>a.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:J}),em:({children:J})=>a.jsx("em",{className:"text-[var(--text-secondary)] italic",children:J}),code:({className:J,children:Le})=>(J==null?void 0:J.includes("language-"))?a.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Le}):a.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Le}),pre:({children:J})=>a.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:J}),blockquote:({children:J})=>a.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:J}),hr:()=>a.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:J,children:Le})=>a.jsx("a",{href:J,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Le})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&a.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((J,Le)=>{var Ue;return a.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[(Ue=J.result)!=null&&Ue.success?a.jsx(Cu,{className:"w-3.5 h-3.5 text-green-500"}):a.jsx(qr,{className:"w-3.5 h-3.5 text-lava-600"}),a.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:J.tool.replace(/_/g," ")})]},Le)})}),a.jsxs("div",{className:ce("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&a.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&a.jsx("button",{onClick:()=>Ne(U.id,U.content),className:ce("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?a.jsx(vD,{className:"w-3.5 h-3.5"}):a.jsx(bD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&a.jsx("button",{onClick:()=>W(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:a.jsx(JD,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&a.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:a.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[a.jsx(Zv,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),a.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&a.jsx("button",{onClick:nt,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),a.jsx("div",{ref:ye})]}),a.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&a.jsxs("div",{className:"mb-2",children:[a.jsxs("button",{onClick:()=>de(!C),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[C?a.jsx(Jn,{className:"w-3 h-3"}):a.jsx(as,{className:"w-3 h-3"}),C?"Hide Quick Actions":"Show Quick Actions"]}),C&&a.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,J)=>a.jsx("button",{onClick:()=>Fe(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},J))})]}),a.jsxs("div",{className:"relative flex items-end",children:[a.jsx("textarea",{ref:Je,value:p,onChange:K,onKeyDown:ot,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:p.length>100?"auto":"hidden"}}),a.jsx("button",{onClick:g?M:()=>Fe(),disabled:!g&&!p.trim(),className:ce("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":p.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?a.jsx(uS,{className:"w-4 h-4"}):a.jsx(KD,{className:"w-4 h-4"})}),p.length>100&&a.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:p.length})]}),a.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[a.jsx("span",{children:"Shift+Enter for new line"}),a.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function xV({className:e}){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const vV=[{name:"Estimates",href:"/",icon:Cg},{name:"New Estimate",href:"/calculator",icon:r3}],jb=()=>a.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[a.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),a.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),a.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),a.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),a.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),a.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Yf=[{value:"light",label:"Light",icon:h3},{value:"dark",label:"Dark",icon:WD},{value:"system",label:"System",icon:ED}],xc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function yV(){const e=yl(),{theme:t,setTheme:n}=C3(),[r,s]=m.useState(!1),[i,o]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[f,p]=m.useState(!1),[h,g]=m.useState(""),[v,_]=m.useState(()=>localStorage.getItem(xc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(xc.HELP_ICON_CLICKED)==="true"),b=m.useRef(null),S=m.useRef(null),{currentUser:R,isAuthenticated:k,authError:T,fetchCurrentUser:D,currentEstimate:z,lineItems:j,localCalculatedCosts:$,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:oe,fetchReferenceData:me,loadPricingBundle:ve,isReferenceDataLoaded:ie,isPricingBundleLoaded:B}=gs(),q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",C=e.pathname==="/",de=q||C,pe=m.useCallback(()=>{P4(),oe(!1),p(!1),window.location.reload()},[oe]);m.useEffect(()=>{const Y=ae=>{var be;console.log("Session expired event received:",ae.detail),g(((be=ae.detail)==null?void 0:be.message)||"Your session has expired"),p(!0),oe(!0)};return window.addEventListener(Sm,Y),()=>{window.removeEventListener(Sm,Y)}},[oe]),m.useEffect(()=>{de&&!v&&c(!0)},[de,v]);const A=m.useCallback(()=>{c(!l),v||(localStorage.setItem(xc.AI_ASSISTANT_OPENED,"true"),_(!0))},[l,v]),we=m.useCallback(()=>{o(!i),x||(localStorage.setItem(xc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!de&&l&&c(!1)},[de,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{ie||me(),B||ve()},[me,ve,ie,B]),m.useEffect(()=>{const Y=ae=>{b.current&&!b.current.contains(ae.target)&&s(!1),S.current&&!S.current.contains(ae.target)&&o(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Yf.find(Y=>Y.value===t)||Yf[2],w=De.icon;return T?a.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:a.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[a.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:a.jsx(jb,{})}),a.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),a.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),a.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[a.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),a.jsxs("p",{className:"mb-2",children:["Set the ",a.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),a.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):a.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[a.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-14",children:[a.jsxs(gu,{to:"/",className:"flex items-center gap-3 group",children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:a.jsx(jb,{})}),a.jsxs("div",{children:[a.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),a.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("nav",{className:"flex items-center gap-1",children:vV.map(Y=>{const ae=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return a.jsxs(gu,{to:Y.href,className:ce("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ae&&"border"),style:ae?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[a.jsx(Y.icon,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),k&&R&&a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[a.jsx(b3,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:R.full_name||R.email,children:R.full_name||R.email.split("@")[0]})]}),a.jsxs("div",{className:"relative",ref:b,children:[a.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[a.jsx(w,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),a.jsx(Jn,{className:ce("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&a.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Yf.map(Y=>{const ae=Y.icon,be=t===Y.value;return a.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:be?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[a.jsx(ae,{className:"w-4 h-4"}),a.jsx("span",{children:Y.label})]},Y.value)})})]}),a.jsxs("div",{className:"relative",ref:S,children:[a.jsxs("button",{onClick:we,className:ce("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[a.jsx(o3,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&a.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[a.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),a.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),a.jsx(em,{children:i&&a.jsxs(Ut.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[a.jsx("div",{className:"px-3 py-1.5 mb-1",children:a.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),a.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>o(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[a.jsx(DD,{className:"w-4 h-4 text-blue-500"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:"Documentation"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),a.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>o(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[a.jsx(vm,{className:"w-4 h-4 text-purple-500"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:"Official Pricing"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),a.jsx("main",{className:"flex-1",style:l&&de?{marginRight:`${u}px`}:void 0,children:a.jsx(Ut.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:a.jsx(_N,{})},e.pathname)}),a.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&de?{marginRight:`${u}px`}:{}},children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[a.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[a.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),a.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),a.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[a.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),a.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),de&&a.jsx(gV,{isOpen:l,onClose:()=>c(!1),currentEstimate:q?z:void 0,currentWorkloads:q?j:void 0,itemCosts:q?$:void 0,mode:C?"home":"estimate",onWorkloadConfirmed:q?async Y=>{if(z!=null&&z.estimate_id)try{await X({estimate_id:z.estimate_id,...Y}),re(z.estimate_id),$e.success(`Workload "${Y.workload_name}" added!`)}catch(ae){throw $e.error(ae.message||"Failed to add workload"),ae}}:void 0,onWidthChange:d,panelWidth:u}),de&&!l&&a.jsxs("button",{onClick:A,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[a.jsx(xV,{className:"w-5 h-5"}),a.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&a.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),a.jsx(em,{children:f&&a.jsx(Ut.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:a.jsxs(Ut.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[a.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[a.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:a.jsx(ls,{className:"w-10 h-10 text-white"})}),a.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),a.jsxs("div",{className:"px-6 py-6",children:[a.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),a.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[a.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),a.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[a.jsx("li",{children:"Your authentication token has expired"}),a.jsx("li",{children:"This can happen after extended inactivity"}),a.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),a.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[a.jsx(qr,{className:"w-5 h-5"}),"Refresh Page"]}),a.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function bV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Ed=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Wo(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Xg(e){return"nodeType"in e}function Kn(e){var t,n;return e?Wo(e)?e:Xg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function Jg(e){const{Document:t}=Kn(e);return e instanceof t}function Ll(e){return Wo(e)?!1:e instanceof Kn(e).HTMLElement}function lC(e){return e instanceof Kn(e).SVGElement}function Go(e){return e?Wo(e)?e.document:Xg(e)?Jg(e)?e:Ll(e)||lC(e)?e.ownerDocument:document:document:document}const Yr=Ed?m.useLayoutEffect:m.useEffect;function Zg(e){const t=m.useRef(e);return Yr(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function ul(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return Yr(()=>{n.current!==e&&(n.current=e)},t),n}function Al(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Du(e){const t=Zg(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function Um(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Xf={};function Dl(e,t){return m.useMemo(()=>{if(t)return t;const n=Xf[e]==null?0:Xf[e]+1;return Xf[e]=n,e+"-"+n},[e,t])}function cC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(o);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const bo=cC(1),Mu=cC(-1);function wV(e){return"clientX"in e&&"clientY"in e}function ex(e){if(!e)return!1;const{KeyboardEvent:t}=Kn(e.target);return t&&e instanceof t}function kV(e){if(!e)return!1;const{TouchEvent:t}=Kn(e.target);return t&&e instanceof t}function Vm(e){if(kV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return wV(e)?{x:e.clientX,y:e.clientY}:null}const Mo=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Mo.Translate.toString(e),Mo.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),Nb="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function SV(e){return e.matches(Nb)?e:e.querySelector(Nb)}const EV={display:"none"};function CV(e){let{id:t,value:n}=e;return un.createElement("div",{id:t,style:EV},n)}function jV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return un.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function NV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const uC=m.createContext(null);function PV(e){const t=m.useContext(uC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function RV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(o=>{var l;return(l=o[s])==null?void 0:l.call(o,i)})},[e]),t]}const TV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},LV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function AV(e){let{announcements:t=LV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=TV}=e;const{announce:i,announcement:o}=NV(),l=Dl("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),PV(m.useMemo(()=>({onDragStart(f){let{active:p}=f;i(t.onDragStart({active:p}))},onDragMove(f){let{active:p,over:h}=f;t.onDragMove&&i(t.onDragMove({active:p,over:h}))},onDragOver(f){let{active:p,over:h}=f;i(t.onDragOver({active:p,over:h}))},onDragEnd(f){let{active:p,over:h}=f;i(t.onDragEnd({active:p,over:h}))},onDragCancel(f){let{active:p,over:h}=f;i(t.onDragCancel({active:p,over:h}))}}),[i,t])),!c)return null;const d=un.createElement(un.Fragment,null,un.createElement(CV,{id:r,value:s.draggable}),un.createElement(jV,{id:l,announcement:o}));return n?oo.createPortal(d,n):d}var tn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(tn||(tn={}));function Ou(){}function Iu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function dC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Ar=Object.freeze({x:0,y:0});function DV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function MV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function OV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function IV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function Pb(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const fC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=Pb(t,t.left,t.top),i=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=DV(Pb(c),s);i.push({id:l,data:{droppableContainer:o,value:u}})}}return i.sort(MV)};function FV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),o=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:o}=i,l=n.get(o);if(l){const c=FV(l,t);c>0&&s.push({id:o,data:{droppableContainer:i,value:c}})}}return s.sort(OV)};function UV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function pC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Ar}function VV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...o,top:o.top+e*l.y,bottom:o.bottom+e*l.y,left:o.left+e*l.x,right:o.right+e*l.x}),{...n})}}const zV=VV(1);function $V(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function HV(e,t,n){const r=$V(t);if(!r)return e;const{scaleX:s,scaleY:i,x:o,y:l}=r,c=e.left-o-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,f=i?e.height/i:e.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const qV={ignoreTransform:!1};function Ko(e,t){t===void 0&&(t=qV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Kn(e).getComputedStyle(e);u&&(n=HV(n,u,d))}const{top:r,left:s,width:i,height:o,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:o,bottom:l,right:c}}function Rb(e){return Ko(e,{ignoreTransform:!0})}function WV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function GV(e,t){return t===void 0&&(t=Kn(e).getComputedStyle(e)),t.position==="fixed"}function KV(e,t){t===void 0&&(t=Kn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function tx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(Jg(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Ll(s)||lC(s)||n.includes(s))return n;const i=Kn(e).getComputedStyle(s);return s!==e&&KV(s,i)&&n.push(s),GV(s,i)?n:r(s.parentNode)}return e?r(e):n}function mC(e){const[t]=tx(e,1);return t??null}function Jf(e){return!Ed||!e?null:Wo(e)?e:Xg(e)?Jg(e)||e===Go(e).scrollingElement?window:Ll(e)?e:null:null}function hC(e){return Wo(e)?e.scrollX:e.scrollLeft}function gC(e){return Wo(e)?e.scrollY:e.scrollTop}function zm(e){return{x:hC(e),y:gC(e)}}var cn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(cn||(cn={}));function xC(e){return!Ed||!e?!1:e===document.scrollingElement}function vC(e){const t={x:0,y:0},n=xC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,o=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:o,isRight:l,maxScroll:r,minScroll:t}}const QV={x:.2,y:.2};function YV(e,t,n,r,s){let{top:i,left:o,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=QV);const{isTop:u,isBottom:d,isLeft:f,isRight:p}=vC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=cn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=cn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!p&&l>=t.right-v.width?(h.x=cn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!f&&o<=t.left+v.width&&(h.x=cn.Backward,g.x=r*Math.abs((t.left+v.width-o)/v.width)),{direction:h,speed:g}}function XV(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:o}=window;return{top:0,left:0,right:i,bottom:o,width:i,height:o}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function yC(e){return e.reduce((t,n)=>bo(t,zm(n)),Ar)}function JV(e){return e.reduce((t,n)=>t+hC(n),0)}function ZV(e){return e.reduce((t,n)=>t+gC(n),0)}function ez(e,t){if(t===void 0&&(t=Ko),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);mC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const tz=[["x",["left","right"],JV],["y",["top","bottom"],ZV]];class nx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=tx(n),s=yC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,o,l]of tz)for(const c of o)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Da{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function nz(e){const{EventTarget:t}=Kn(e);return e instanceof t?e:Go(e)}function Zf(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var fr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(fr||(fr={}));function Tb(e){e.preventDefault()}function rz(e){e.stopPropagation()}var st;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(st||(st={}));const bC={start:[st.Space,st.Enter],cancel:[st.Esc],end:[st.Space,st.Enter,st.Tab]},sz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case st.Right:return{...n,x:n.x+25};case st.Left:return{...n,x:n.x-25};case st.Down:return{...n,y:n.y+25};case st.Up:return{...n,y:n.y-25}}};class Cd{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Da(Go(n)),this.windowListeners=new Da(Kn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(fr.Resize,this.handleCancel),this.windowListeners.add(fr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(fr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&ez(r),n(Ar)}handleKeyDown(t){if(ex(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=bC,coordinateGetter:o=sz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Ar;this.referenceCoordinates||(this.referenceCoordinates=d);const f=o(t,{active:n,context:r.current,currentCoordinates:d});if(f){const p=Mu(f,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const _=t.code,{isTop:x,isRight:y,isLeft:b,isBottom:S,maxScroll:R,minScroll:k}=vC(v),T=XV(v),D={x:Math.min(_===st.Right?T.right-T.width/2:T.right,Math.max(_===st.Right?T.left:T.left+T.width/2,f.x)),y:Math.min(_===st.Down?T.bottom-T.height/2:T.bottom,Math.max(_===st.Down?T.top:T.top+T.height/2,f.y))},z=_===st.Right&&!y||_===st.Left&&!b,j=_===st.Down&&!S||_===st.Up&&!x;if(z&&D.x!==f.x){const $=v.scrollLeft+p.x,X=_===st.Right&&$<=R.x||_===st.Left&&$>=k.x;if(X&&!p.y){v.scrollTo({left:$,behavior:l});return}X?h.x=v.scrollLeft-$:h.x=_===st.Right?v.scrollLeft-R.x:v.scrollLeft-k.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==f.y){const $=v.scrollTop+p.y,X=_===st.Down&&$<=R.y||_===st.Up&&$>=k.y;if(X&&!p.x){v.scrollTo({top:$,behavior:l});return}X?h.y=v.scrollTop-$:h.y=_===st.Down?v.scrollTop-R.y:v.scrollTop-k.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,bo(Mu(f,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Cd.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=bC,onActivation:s}=t,{active:i}=n;const{code:o}=e.nativeEvent;if(r.start.includes(o)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function Lb(e){return!!(e&&"distance"in e)}function Ab(e){return!!(e&&"delay"in e)}class rx{constructor(t,n,r){var s;r===void 0&&(r=nz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:o}=i;this.props=t,this.events=n,this.document=Go(o),this.documentListeners=new Da(this.document),this.listeners=new Da(r),this.windowListeners=new Da(Kn(o)),this.initialCoordinates=(s=Vm(i))!=null?s:Ar,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(fr.Resize,this.handleCancel),this.windowListeners.add(fr.DragStart,Tb),this.windowListeners.add(fr.VisibilityChange,this.handleCancel),this.windowListeners.add(fr.ContextMenu,Tb),this.documentListeners.add(fr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Ab(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(Lb(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(fr.Click,rz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(fr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:o,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=Vm(t))!=null?n:Ar,u=Mu(s,c);if(!r&&l){if(Lb(l)){if(l.tolerance!=null&&Zf(u,l.tolerance))return this.handleCancel();if(Zf(u,l.distance))return this.handleStart()}if(Ab(l)&&Zf(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),o(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===st.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const iz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class jd extends rx{constructor(t){const{event:n}=t,r=Go(n.target);super(t,iz,r)}}jd.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const oz={move:{name:"mousemove"},end:{name:"mouseup"}};var $m;(function(e){e[e.RightClick=2]="RightClick"})($m||($m={}));class az extends rx{constructor(t){super(t,oz,Go(t.event.target))}}az.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===$m.RightClick?!1:(r==null||r({event:n}),!0)}}];const ep={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class lz extends rx{constructor(t){super(t,ep)}static setup(){return window.addEventListener(ep.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(ep.move.name,t)};function t(){}}}lz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Ma;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Ma||(Ma={}));var Fu;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Fu||(Fu={}));function cz(e){let{acceleration:t,activator:n=Ma.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:o=5,order:l=Fu.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:p}=e;const h=dz({delta:f,disabled:!i}),[g,v]=_V(),_=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Ma.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Ma.DraggableRect:return s}},[n,s,c]),b=m.useRef(null),S=m.useCallback(()=>{const k=b.current;if(!k)return;const T=_.current.x*x.current.x,D=_.current.y*x.current.y;k.scrollBy(T,D)},[]),R=m.useMemo(()=>l===Fu.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const k of R){if((r==null?void 0:r(k))===!1)continue;const T=u.indexOf(k),D=d[T];if(!D)continue;const{direction:z,speed:j}=YV(k,D,y,t,p);for(const $ of["x","y"])h[$][z[$]]||(j[$]=0,z[$]=0);if(j.x>0||j.y>0){v(),b.current=k,g(S,o),_.current=j,x.current=z;return}}_.current={x:0,y:0},x.current={x:0,y:0},v()},[t,S,r,v,i,o,JSON.stringify(y),JSON.stringify(h),g,u,R,d,JSON.stringify(p)])}const uz={x:{[cn.Backward]:!1,[cn.Forward]:!1},y:{[cn.Backward]:!1,[cn.Forward]:!1}};function dz(e){let{delta:t,disabled:n}=e;const r=Um(t);return Al(s=>{if(n||!r||!s)return uz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[cn.Backward]:s.x[cn.Backward]||i.x===-1,[cn.Forward]:s.x[cn.Forward]||i.x===1},y:{[cn.Backward]:s.y[cn.Backward]||i.y===-1,[cn.Forward]:s.y[cn.Forward]||i.y===1}}},[n,t,r])}function fz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Al(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,r)}));return[...n,...i]},[]),[e,t])}var dl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(dl||(dl={}));var Hm;(function(e){e.Optimized="optimized"})(Hm||(Hm={}));const Db=new Map;function mz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,o]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),f=_(),p=ul(f),h=m.useCallback(function(x){x===void 0&&(x=[]),!p.current&&o(y=>y===null?x:y.concat(x.filter(b=>!y.includes(b))))},[p]),g=m.useRef(null),v=Al(x=>{if(f&&!n)return Db;if(!x||x===Db||d.current!==e||i!=null){const y=new Map;for(let b of e){if(!b)continue;if(i&&i.length>0&&!i.includes(b.id)&&b.rect.current){y.set(b.id,b.rect.current);continue}const S=b.node.current,R=S?new nx(c(S),S):null;b.rect.current=R,R&&y.set(b.id,R)}return y}return x},[e,i,n,f,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{f||h()},[n,f]),m.useEffect(()=>{i&&i.length>0&&o(null)},[JSON.stringify(i)]),m.useEffect(()=>{f||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,f,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function _(){switch(u){case dl.Always:return!1;case dl.BeforeDragging:return n;default:return!n}}}function _C(e,t){return Al(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function hz(e,t){return _C(e,t)}function gz(e){let{callback:t,disabled:n}=e;const r=Zg(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Nd(e){let{callback:t,disabled:n}=e;const r=Zg(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function xz(e){return new nx(Ko(e),e)}function Mb(e,t,n){t===void 0&&(t=xz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const o=gz({callback(c){if(e)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(e)){i();break}}}}),l=Nd({callback:i});return Yr(()=>{i(),e?(l==null||l.observe(e),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[e]),r}function vz(e){const t=_C(e);return pC(e,t)}const Ob=[];function yz(e){const t=m.useRef(e),n=Al(r=>e?r&&r!==Ob&&e&&t.current&&e.parentNode===t.current.parentNode?r:tx(e):Ob,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function bz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const o=Jf(i.target);o&&n(l=>l?(l.set(o,zm(o)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){o(i);const l=e.map(c=>{const u=Jf(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,zm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{o(e),o(i)};function o(l){l.forEach(c=>{const u=Jf(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,o)=>bo(i,o),Ar):yC(e):Ar,[e,t])}function Ib(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Ar;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Mu(e,n.current):Ar}function _z(e){m.useEffect(()=>{if(!Ed)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function wz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=o=>{i(o,t)},n},{}),[e,t])}function wC(e){return m.useMemo(()=>e?WV(e):null,[e])}const Fb=[];function kz(e,t){t===void 0&&(t=Ko);const[n]=e,r=wC(n?Kn(n):null),[s,i]=m.useState(Fb);function o(){i(()=>e.length?e.map(c=>xC(c)?r:new nx(t(c),c)):Fb)}const l=Nd({callback:o});return Yr(()=>{l==null||l.disconnect(),o(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Sz(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Ll(t)?t:e}function Ez(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Ll(d)){r(f=>{const p=t(d);return f?{...f,width:p.width,height:p.height}:p});break}},[t]),i=Nd({callback:s}),o=m.useCallback(u=>{const d=Sz(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Du(o);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Cz=[{sensor:jd,options:{}},{sensor:Cd,options:{}}],jz={current:{}},Hc={draggable:{measure:Rb},droppable:{measure:Rb,strategy:dl.WhileDragging,frequency:Hm.Optimized},dragOverlay:{measure:Ko}};class Oa extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Nz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Oa,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Ou},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Hc,measureDroppableContainers:Ou,windowRect:null,measuringScheduled:!1},Pz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Ou,draggableNodes:new Map,over:null,measureDroppableContainers:Ou},Pd=m.createContext(Pz),kC=m.createContext(Nz);function Rz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Oa}}}function Tz(e,t){switch(t.type){case tn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case tn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case tn.DragEnd:case tn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case tn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Oa(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case tn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const o=new Oa(e.droppable.containers);return o.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:o}}}case tn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Oa(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Lz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Pd),i=Um(r),o=Um(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&o!=null){if(!ex(i)||document.activeElement===i.target)return;const l=s.get(o);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=SV(d);if(f){f.focus();break}}})}},[r,t,s,o,i]),null}function Az(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Dz(e){return m.useMemo(()=>({draggable:{...Hc.draggable,...e==null?void 0:e.draggable},droppable:{...Hc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Hc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function Mz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:o,y:l}=typeof s=="boolean"?{x:s,y:s}:s;Yr(()=>{if(!o&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=pC(d,r);if(o||(f.x=0),l||(f.y=0),i.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const p=mC(u);p&&p.scrollBy({top:f.y,left:f.x})}},[t,o,l,r,n])}const SC=m.createContext({...Ar,scaleX:1,scaleY:1});var Ms;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Ms||(Ms={}));const EC=m.memo(function(t){var n,r,s,i;let{id:o,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Cz,collisionDetection:f=BV,measuring:p,modifiers:h,...g}=t;const v=m.useReducer(Tz,void 0,Rz),[_,x]=v,[y,b]=RV(),[S,R]=m.useState(Ms.Uninitialized),k=S===Ms.Initialized,{draggable:{active:T,nodes:D,translate:z},droppable:{containers:j}}=_,$=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var Q;return T!=null?{id:T,data:(Q=$==null?void 0:$.data)!=null?Q:jz,rect:X}:null},[T,$]),oe=m.useRef(null),[me,ve]=m.useState(null),[ie,B]=m.useState(null),q=ul(g,Object.values(g)),C=Dl("DndDescribedBy",o),de=m.useMemo(()=>j.getEnabled(),[j]),pe=Dz(p),{droppableRects:A,measureDroppableContainers:we,measuringScheduled:De}=mz(de,{dragging:k,dependencies:[z.x,z.y],config:pe.droppable}),w=fz(D,T),Y=m.useMemo(()=>ie?Vm(ie):null,[ie]),ae=Ue(),be=hz(w,pe.draggable.measure);Mz({activeNode:T!=null?D.get(T):null,config:ae.layoutShiftCompensation,initialRect:be,measure:pe.draggable.measure});const ye=Mb(w,pe.draggable.measure,be),at=Mb(w?w.parentElement:null),Je=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:A,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Je.current.over)==null?void 0:n.id),it=Ez({measure:pe.dragOverlay.measure}),mt=(r=it.nodeRef.current)!=null?r:w,lt=k?(s=it.rect)!=null?s:ye:null,ft=!!(it.nodeRef.current&&it.rect),K=vz(ft?null:ye),P=wC(mt?Kn(mt):null),N=yz(k?I??w:null),le=kz(N),M=Az(h,{transform:{x:z.x-K.x,y:z.y-K.y,scaleX:1,scaleY:1},activatorEvent:ie,active:re,activeNodeRect:ye,containerNodeRect:at,draggingNodeRect:lt,over:Je.current.over,overlayNodeRect:it.rect,scrollableAncestors:N,scrollableAncestorRects:le,windowRect:P}),W=Y?bo(Y,z):null,Ee=bz(N),Ne=Ib(Ee),O=Ib(Ee,[ye]),F=bo(M,Ne),G=lt?zV(lt,M):null,se=re&&G?f({active:re,collisionRect:G,droppableRects:A,droppableContainers:de,pointerCoordinates:W}):null,Pe=IV(se,"id"),[Fe,ot]=m.useState(null),nt=ft?M:bo(M,O),We=UV(nt,(i=Fe==null?void 0:Fe.rect)!=null?i:null,ye),ct=m.useRef(null),Ze=m.useCallback((Q,ut)=>{let{sensor:Ke,options:Ot}=ut;if(oe.current==null)return;const rt=D.get(oe.current);if(!rt)return;const St=Q.nativeEvent,ht=new Ke({active:oe.current,activeNode:rt,event:St,options:Ot,context:Je,onAbort(Ve){if(!D.get(Ve))return;const{onDragAbort:Ae}=q.current,ue={id:Ve};Ae==null||Ae(ue),y({type:"onDragAbort",event:ue})},onPending(Ve,Be,Ae,ue){if(!D.get(Ve))return;const{onDragPending:Et}=q.current,_e={id:Ve,constraint:Be,initialCoordinates:Ae,offset:ue};Et==null||Et(_e),y({type:"onDragPending",event:_e})},onStart(Ve){const Be=oe.current;if(Be==null)return;const Ae=D.get(Be);if(!Ae)return;const{onDragStart:ue}=q.current,bt={activatorEvent:St,active:{id:Be,data:Ae.data,rect:X}};oo.unstable_batchedUpdates(()=>{ue==null||ue(bt),R(Ms.Initializing),x({type:tn.DragStart,initialCoordinates:Ve,active:Be}),y({type:"onDragStart",event:bt}),ve(ct.current),B(St)})},onMove(Ve){x({type:tn.DragMove,coordinates:Ve})},onEnd:It(tn.DragEnd),onCancel:It(tn.DragCancel)});ct.current=ht;function It(Ve){return async function(){const{active:Ae,collisions:ue,over:bt,scrollAdjustedTranslate:Et}=Je.current;let _e=null;if(Ae&&Et){const{cancelDrop:et}=q.current;_e={activatorEvent:St,active:Ae,collisions:ue,delta:Et,over:bt},Ve===tn.DragEnd&&typeof et=="function"&&await Promise.resolve(et(_e))&&(Ve=tn.DragCancel)}oe.current=null,oo.unstable_batchedUpdates(()=>{x({type:Ve}),R(Ms.Uninitialized),ot(null),ve(null),B(null),ct.current=null;const et=Ve===tn.DragEnd?"onDragEnd":"onDragCancel";if(_e){const Ct=q.current[et];Ct==null||Ct(_e),y({type:et,event:_e})}})}}},[D]),Mt=m.useCallback((Q,ut)=>(Ke,Ot)=>{const rt=Ke.nativeEvent,St=D.get(Ot);if(oe.current!==null||!St||rt.dndKit||rt.defaultPrevented)return;const ht={active:St};Q(Ke,ut.options,ht)===!0&&(rt.dndKit={capturedBy:ut.sensor},oe.current=Ot,Ze(Ke,ut))},[D,Ze]),U=pz(d,Mt);_z(d),Yr(()=>{ye&&S===Ms.Initializing&&R(Ms.Initialized)},[ye,S]),m.useEffect(()=>{const{onDragMove:Q}=q.current,{active:ut,activatorEvent:Ke,collisions:Ot,over:rt}=Je.current;if(!ut||!Ke)return;const St={active:ut,activatorEvent:Ke,collisions:Ot,delta:{x:F.x,y:F.y},over:rt};oo.unstable_batchedUpdates(()=>{Q==null||Q(St),y({type:"onDragMove",event:St})})},[F.x,F.y]),m.useEffect(()=>{const{active:Q,activatorEvent:ut,collisions:Ke,droppableContainers:Ot,scrollAdjustedTranslate:rt}=Je.current;if(!Q||oe.current==null||!ut||!rt)return;const{onDragOver:St}=q.current,ht=Ot.get(Pe),It=ht&&ht.rect.current?{id:ht.id,rect:ht.rect.current,data:ht.data,disabled:ht.disabled}:null,Ve={active:Q,activatorEvent:ut,collisions:Ke,delta:{x:rt.x,y:rt.y},over:It};oo.unstable_batchedUpdates(()=>{ot(It),St==null||St(Ve),y({type:"onDragOver",event:Ve})})},[Pe]),Yr(()=>{Je.current={activatorEvent:ie,active:re,activeNode:w,collisionRect:G,collisions:se,droppableRects:A,draggableNodes:D,draggingNode:mt,draggingNodeRect:lt,droppableContainers:j,over:Fe,scrollableAncestors:N,scrollAdjustedTranslate:F},X.current={initial:lt,translated:G}},[re,w,se,G,D,mt,lt,A,j,Fe,N,F]),cz({...ae,delta:z,draggingRect:G,pointerCoordinates:W,scrollableAncestors:N,scrollableAncestorRects:le});const J=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ye,activatorEvent:ie,collisions:se,containerNodeRect:at,dragOverlay:it,draggableNodes:D,droppableContainers:j,droppableRects:A,over:Fe,measureDroppableContainers:we,scrollableAncestors:N,scrollableAncestorRects:le,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ye,ie,se,at,it,D,j,A,Fe,we,N,le,pe,De,P]),Le=m.useMemo(()=>({activatorEvent:ie,activators:U,active:re,activeNodeRect:ye,ariaDescribedById:{draggable:C},dispatch:x,draggableNodes:D,over:Fe,measureDroppableContainers:we}),[ie,U,re,ye,x,C,D,Fe,we]);return un.createElement(uC.Provider,{value:b},un.createElement(Pd.Provider,{value:Le},un.createElement(kC.Provider,{value:J},un.createElement(SC.Provider,{value:We},u)),un.createElement(Lz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),un.createElement(AV,{...l,hiddenTextDescribedById:C}));function Ue(){const Q=(me==null?void 0:me.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,Ke=k&&!Q&&!ut;return typeof c=="object"?{...c,enabled:Ke}:{enabled:Ke}}}),Oz=m.createContext(null),Bb="button",Iz="Draggable";function Fz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Dl(Iz),{activators:o,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:p}=m.useContext(Pd),{role:h=Bb,roleDescription:g="draggable",tabIndex:v=0}=s??{},_=(c==null?void 0:c.id)===t,x=m.useContext(_?SC:Oz),[y,b]=Du(),[S,R]=Du(),k=wz(o,t),T=ul(n);Yr(()=>(f.set(t,{id:t,key:i,node:y,activatorNode:S,data:T}),()=>{const z=f.get(t);z&&z.key===i&&f.delete(t)}),[f,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":_&&h===Bb?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,_,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:_,listeners:r?void 0:k,node:y,over:p,setNodeRef:b,setActivatorNodeRef:R,transform:x}}function Bz(){return m.useContext(kC)}const Uz="Droppable",Vz={timeout:25};function zz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Dl(Uz),{active:o,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Pd),d=m.useRef({disabled:n}),f=m.useRef(!1),p=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:_}={...Vz,...s},x=ul(v??r),y=m.useCallback(()=>{if(!f.current){f.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},_)},[_]),b=Nd({callback:y,disabled:g||!o}),S=m.useCallback((D,z)=>{b&&(z&&(b.unobserve(z),f.current=!1),D&&b.observe(D))},[b]),[R,k]=Du(S),T=ul(t);return m.useEffect(()=>{!b||!R.current||(b.disconnect(),f.current=!1,b.observe(R.current))},[R,b]),m.useEffect(()=>(l({type:tn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:R,rect:p,data:T}}),()=>l({type:tn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:tn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:o,rect:p,isOver:(c==null?void 0:c.id)===r,node:R,over:c,setNodeRef:k}}function sx(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function $z(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function vc(e){return e!==null&&e>=0}function Hz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=sx(t,r,n),o=t[s],l=i[s];return!l||!o?null:{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}},yc={scaleX:1,scaleY:1},jC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:o}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[o];return u?{x:0,y:nn&&s<=o?{x:0,y:-l.height-c,...yc}:s=o?{x:0,y:l.height+c,...yc}:{x:0,y:0,...yc}};function Wz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(k=>typeof k=="object"&&"id"in k?k.id:k),[r]),g=o!=null,v=o?h.indexOf(o.id):-1,_=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Hz(h,x.current),b=_!==-1&&v===-1||y,S=qz(i);Yr(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const R=m.useMemo(()=>({activeIndex:v,containerId:f,disabled:S,disableTransforms:b,items:h,overIndex:_,useDragOverlay:p,sortedRects:$z(h,c),strategy:s}),[v,f,S.draggable,S.droppable,b,h,_,c,p,s]);return un.createElement(PC.Provider,{value:R},t)}const Gz=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return sx(n,r,s).indexOf(t)},Kz=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:o,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===o?!1:n?!0:o!==s&&t===c},Qz={duration:200,easing:"ease"},TC="transform",Yz=Mo.Transition.toString({property:TC,duration:0,easing:"linear"}),Xz={roleDescription:"sortable"};function Jz(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,o]=m.useState(null),l=m.useRef(n);return Yr(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Ko(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&o(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&o(null)},[i]),i}function LC(e){let{animateLayoutChanges:t=Kz,attributes:n,disabled:r,data:s,getNewIndex:i=Gz,id:o,strategy:l,resizeObserverConfig:c,transition:u=Qz}=e;const{items:d,containerId:f,activeIndex:p,disabled:h,disableTransforms:g,sortedRects:v,overIndex:_,useDragOverlay:x,strategy:y}=m.useContext(PC),b=Zz(r,h),S=d.indexOf(o),R=m.useMemo(()=>({sortable:{containerId:f,index:S,items:d},...s}),[f,s,S,d]),k=m.useMemo(()=>d.slice(d.indexOf(o)),[d,o]),{rect:T,node:D,isOver:z,setNodeRef:j}=zz({id:o,data:R,disabled:b.droppable,resizeObserverConfig:{updateMeasurementsFor:k,...c}}),{active:$,activatorEvent:X,activeNodeRect:re,attributes:oe,setNodeRef:me,listeners:ve,isDragging:ie,over:B,setActivatorNodeRef:q,transform:C}=Fz({id:o,data:R,attributes:{...Xz,...n},disabled:b.draggable}),de=bV(j,me),pe=!!$,A=pe&&!g&&vc(p)&&vc(_),we=!x&&ie,De=we&&A?C:null,Y=A?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:p,overIndex:_,index:S}):null,ae=vc(p)&&vc(_)?i({id:o,items:d,activeIndex:p,overIndex:_}):S,be=$==null?void 0:$.id,ye=m.useRef({activeId:be,items:d,newIndex:ae,containerId:f}),at=d!==ye.current.items,Je=t({active:$,containerId:f,isDragging:ie,isSorting:pe,id:o,index:S,items:d,newIndex:ye.current.newIndex,previousItems:ye.current.items,previousContainerId:ye.current.containerId,transition:u,wasDragging:ye.current.activeId!=null}),I=Jz({disabled:!Je,index:S,node:D,rect:T});return m.useEffect(()=>{pe&&ye.current.newIndex!==ae&&(ye.current.newIndex=ae),f!==ye.current.containerId&&(ye.current.containerId=f),d!==ye.current.items&&(ye.current.items=d)},[pe,ae,f,d]),m.useEffect(()=>{if(be===ye.current.activeId)return;if(be!=null&&ye.current.activeId==null){ye.current.activeId=be;return}const mt=setTimeout(()=>{ye.current.activeId=be},50);return()=>clearTimeout(mt)},[be]),{active:$,activeIndex:p,attributes:oe,data:R,rect:T,index:S,newIndex:ae,items:d,isOver:z,isSorting:pe,isDragging:ie,listeners:ve,node:D,overIndex:_,over:B,setNodeRef:de,setActivatorNodeRef:q,setDroppableNodeRef:j,setDraggableNodeRef:me,transform:I??Y,transition:it()};function it(){if(I||at&&ye.current.newIndex===S)return Yz;if(!(we&&!ex(X)||!u)&&(pe||Je))return Mo.Transition.toString({...u,property:TC})}}function Zz(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}st.Down,st.Right,st.Up,st.Left;const AC=e=>{let{transform:t}=e;return{...t,x:0}};function e8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:o,transition:l,isDragging:c}=LC({id:e,disabled:n}),u={transform:Mo.Transform.toString(o),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return a.jsx("div",{ref:i,style:u,...r,children:a.jsxs("div",{className:"flex items-center",children:[!n&&a.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:a.jsx(oS,{className:"w-4 h-4"})}),a.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var DC={exports:{}};(function(e,t){(function(n,r){r()})(cs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,f){var p=new XMLHttpRequest;p.open("GET",u),p.responseType="blob",p.onload=function(){c(p.response,d,f)},p.onerror=function(){console.error("could not download file")},p.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof cs=="object"&&cs.global===cs?cs:void 0,l=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,f){var p=o.URL||o.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,f):i(h,h.target="_blank")):(h.href=p.createObjectURL(u),setTimeout(function(){p.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,f){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,f),d);else if(s(u))r(u,d,f);else{var p=document.createElement("a");p.href=u,p.target="_blank",setTimeout(function(){i(p)})}}:function(u,d,f,p){if(p=p||open("","_blank"),p&&(p.document.title=p.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,f);var h=u.type==="application/octet-stream",g=/constructor/i.test(o.HTMLElement)||o.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var _=new FileReader;_.onloadend=function(){var b=_.result;b=v?b:b.replace(/^data:[^;]*;/,"data:attachment/file;"),p?p.location.href=b:location=b,p=null},_.readAsDataURL(u)}else{var x=o.URL||o.webkitURL,y=x.createObjectURL(u);p?p.location=y:location.href=y,p=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});o.saveAs=c.saveAs=c,e.exports=c})})(DC);var qm=DC.exports;const Cr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},bc={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function t8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),o=Math.floor(i/60),l=Math.floor(o/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:o<24?`${o}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function n8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return a.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[a.jsxs("button",{onClick:()=>t("all"),className:ce("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",a.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>a.jsxs("button",{onClick:()=>t(r),className:ce("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Cr[r].text:"var(--text-muted)",backgroundColor:e===r?Cr[r].bg:"transparent"},children:[Cr[r].label,a.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function r8(){const e=sd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=gs(),[o,l]=m.useState(!1),[c,u]=m.useState(""),[d,f]=m.useState(!1),[p,h]=m.useState("all"),[g,v]=m.useState("display_order"),[_,x]=m.useState("all"),[y,b]=m.useState(!1),[S,R]=m.useState(new Set),[k,T]=m.useState(!1),[D,z]=m.useState(!1),[j,$]=m.useState(!1),[X,re]=m.useState(!1),[oe,me]=m.useState(null),[ve,ie]=m.useState(!1),[B,q]=m.useState(!1),C=dC(Iu(jd,{activationConstraint:{distance:5}}),Iu(Cd));m.useEffect(()=>{r()},[r]);const de=m.useCallback(async()=>{f(!0),await r(!0),f(!1),$e.success("Refreshed")},[r]),pe=m.useMemo(()=>{const K=t.length,P=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="aws"}).length,N=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="azure"}).length,le=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="gcp"}).length;return{all:K,aws:P,azure:N,gcp:le}},[t]),A=m.useMemo(()=>{const K=t.reduce((P,N)=>P+(N.line_item_count||0),0);return{estimates:t.length,workloads:K}},[t]),we=m.useMemo(()=>{const K=new Set;return t.forEach(P=>{P.customer_name&&K.add(P.customer_name)}),Array.from(K).sort()},[t]),De=m.useMemo(()=>{const K={all:t.length};return t.forEach(P=>{P.customer_name&&(K[P.customer_name]=(K[P.customer_name]||0)+1)}),K},[t]),w=m.useMemo(()=>{let K=[...t];if(c){const P=c.toLowerCase();K=K.filter(N=>{var le;return N.estimate_name.toLowerCase().includes(P)||((le=N.customer_name)==null?void 0:le.toLowerCase().includes(P))})}switch(p!=="all"&&(K=K.filter(P=>{var N;return((N=P.cloud)==null?void 0:N.toLowerCase())===p})),_!=="all"&&(K=K.filter(P=>P.customer_name===_)),g){case"updated":K.sort((P,N)=>new Date(N.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":K.sort((P,N)=>P.estimate_name.localeCompare(N.estimate_name));break;case"workloads":K.sort((P,N)=>(N.line_item_count||0)-(P.line_item_count||0));break;case"display_order":K.sort((P,N)=>(P.display_order??0)-(N.display_order??0));break}return K},[t,c,p,g,_]),Y=m.useCallback(async K=>{const{active:P,over:N}=K;if(!N||P.id===N.id)return;const le=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===N.id);if(le===-1||M===-1)return;g!=="display_order"&&v("display_order");const W=sx(w,le,M),{estimates:Ee}=gs.getState(),Ne=Ee.map(O=>{const F=W.findIndex(G=>G.estimate_id===O.estimate_id);return F>=0?{...O,display_order:F}:O});gs.setState({estimates:Ne});try{await H4(W.map(O=>O.estimate_id))}catch{$e.error("Failed to save reorder")}},[w,g]),ae=(K,P,N)=>{K.stopPropagation(),me({id:P,name:N}),re(!0)},be=async()=>{if(oe){ie(!0);try{await s(oe.id),$e.success("Estimate deleted")}catch{$e.error("Failed to delete")}finally{ie(!1),re(!1),me(null)}}},ye=async(K,P)=>{K.stopPropagation();try{const N=await i(P);$e.success("Estimate duplicated"),e(`/calculator/${N.estimate_id}`)}catch{$e.error("Failed to duplicate")}},at=async()=>{l(!0);try{const K=await oO();qm.saveAs(K,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),$e.success("Exported successfully")}catch{$e.error("Export failed")}finally{l(!1)}},Je=()=>{S.size===w.length?R(new Set):R(new Set(w.map(K=>K.estimate_id)))},I=(K,P)=>{P.stopPropagation();const N=new Set(S);N.has(K)?N.delete(K):N.add(K),R(N)},it=()=>{S.size!==0&&q(!0)},mt=async()=>{z(!0);let K=0,P=0;for(const N of S)try{await s(N),K++}catch{P++}z(!1),R(new Set),q(!1),P===0?$e.success(`Deleted ${K} estimate(s)`):$e.error(`Deleted ${K}, failed ${P}`)},lt=async()=>{if(S.size===0)return;$(!0);let K=0;for(const P of S)try{const N=t.find(le=>le.estimate_id===P);if(N){const le=await HS(P);qm.saveAs(le,`${N.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),K++}}catch{}$(!1),$e.success(`Exported ${K} estimate(s)`)},ft=()=>{T(!1),R(new Set)};return a.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[a.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[a.jsxs("div",{children:[a.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),a.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[a.jsxs("span",{className:"flex items-center gap-1",children:[a.jsx(ey,{className:"w-4 h-4"}),A.estimates," estimate",A.estimates!==1?"s":""]}),a.jsxs("span",{className:"flex items-center gap-1",children:[a.jsx(Cg,{className:"w-4 h-4"}),A.workloads," total workloads"]})]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{onClick:de,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:a.jsx(qr,{className:ce("w-5 h-5",d&&"animate-spin")})}),k?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[S.size," selected"]}),a.jsxs("button",{onClick:lt,disabled:S.size===0||j,className:"btn btn-secondary text-sm",children:[a.jsx(Ic,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),a.jsxs("button",{onClick:it,disabled:S.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[a.jsx(Zt,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),a.jsx("button",{onClick:ft,className:"btn btn-ghost p-2",title:"Cancel selection",children:a.jsx(To,{className:"w-5 h-5"})})]}):a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),a.jsxs("button",{onClick:at,disabled:o||t.length===0,className:"btn btn-secondary",children:[a.jsx(Ic,{className:"w-4 h-4"}),"Export All"]}),a.jsxs(gu,{to:"/calculator",className:"btn btn-primary",children:[a.jsx(Nu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),a.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[a.jsx(n8,{cloudFilter:p,setCloudFilter:h,cloudCounts:pe}),we.length>0&&a.jsxs("div",{className:"relative",children:[a.jsxs("button",{onClick:()=>b(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:_!=="all"?"#FF3621":"var(--border-primary)",color:_!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:_!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[a.jsx(lD,{className:"w-4 h-4"}),a.jsx("span",{className:"truncate flex-1 text-left",title:_==="all"?"All Accounts":_,children:_==="all"?"All Accounts":_}),a.jsx("span",{className:"text-xs opacity-60 ml-1",children:_==="all"?we.length:De[_]||0}),a.jsx(Jn,{className:ce("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),a.jsx(em,{children:y&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>b(!1)}),a.jsxs(Ut.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[a.jsxs("button",{onClick:()=>{x("all"),b(!1)},className:ce("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",_==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:_==="all"?"#FF3621":"var(--text-primary)"},children:[a.jsx("span",{children:"All Accounts"}),a.jsx("span",{className:"text-xs opacity-60",children:we.length})]}),a.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),we.map(K=>a.jsxs("button",{onClick:()=>{x(K),b(!1)},className:ce("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",_===K?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:_===K?"#FF3621":"var(--text-primary)"},children:[a.jsx("span",{className:"truncate",title:K,children:K}),a.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[a.jsx("span",{className:"text-xs opacity-60",children:De[K]||0}),_===K&&a.jsx(zs,{className:"w-4 h-4"})]})]},K))]})]})})]})]}),a.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:a.jsxs("div",{className:"relative flex-1",children:[a.jsx(cS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),a.jsx("input",{type:"text",value:c,onChange:K=>u(K.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?a.jsx("div",{className:"card overflow-hidden",children:a.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(K=>a.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[a.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),a.jsxs("div",{className:"flex-1",children:[a.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),a.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},K))})}):w.length===0?a.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[a.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:a.jsx(ey,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),a.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||p!=="all"||_!=="all"?"No matches found":"No estimates yet"}),a.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||p!=="all"||_!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&p==="all"&&_==="all"&&a.jsxs(gu,{to:"/calculator",className:"btn btn-primary",children:[a.jsx(Nu,{className:"w-4 h-4"}),"Create Estimate"]})]}):a.jsxs("div",{className:"card overflow-hidden",children:[a.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[k&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("button",{onClick:Je,className:"flex items-center justify-center",children:a.jsx("div",{className:ce("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",S.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:S.size===w.length&&w.length>0&&a.jsx(zs,{className:"w-3 h-3 text-white"})})})}),a.jsx("div",{className:ce(k?"col-span-3":"col-span-4"),children:"Estimate"}),a.jsx("div",{className:"col-span-2",children:"Account"}),a.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),a.jsx("div",{className:"col-span-2",children:"Region / Tier"}),a.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),a.jsx("div",{className:"col-span-1",children:"Modified"}),a.jsx("div",{className:"col-span-1"})]}),a.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:a.jsx(EC,{sensors:C,collisionDetection:fC,onDragEnd:Y,modifiers:[AC],children:a.jsx(RC,{items:w.map(K=>K.estimate_id),strategy:jC,children:w.map((K,P)=>{const N=S.has(K.estimate_id);return a.jsx(e8,{id:K.estimate_id,children:a.jsxs(Ut.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!k&&e(`/calculator/${K.estimate_id}`),className:ce("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!k&&"cursor-pointer hover:bg-[var(--bg-hover)]",N&&"bg-blue-500/5"),children:[k&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("button",{onClick:le=>I(K.estimate_id,le),className:"flex items-center justify-center",children:a.jsx("div",{className:ce("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",N?"bg-blue-500 border-blue-500":"border-gray-400"),children:N&&a.jsx(zs,{className:"w-3 h-3 text-white"})})})}),a.jsxs("div",{className:ce("flex items-center gap-3",k?"col-span-3":"col-span-4"),children:[a.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:K.cloud&&Cr[K.cloud.toLowerCase()]?Cr[K.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:a.jsx(xm,{className:"w-4 h-4",style:{color:K.cloud&&Cr[K.cloud.toLowerCase()]?Cr[K.cloud.toLowerCase()].text:"var(--text-muted)"}})}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:K.estimate_name,children:K.estimate_name}),a.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:K.customer_name||"",children:K.customer_name||"—"})]})]}),a.jsx("div",{className:"hidden sm:block col-span-2",children:a.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:K.customer_name||"",children:K.customer_name||"—"})}),a.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:K.cloud&&Cr[K.cloud.toLowerCase()]?a.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Cr[K.cloud.toLowerCase()].bg,color:Cr[K.cloud.toLowerCase()].text},children:Cr[K.cloud.toLowerCase()].label}):a.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),a.jsx("div",{className:"hidden sm:block col-span-2",children:K.region||K.tier?a.jsxs("div",{className:"flex flex-col gap-0.5",children:[K.region&&a.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:K.region,children:K.region}),K.tier&&bc[K.tier.toLowerCase()]&&a.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:bc[K.tier.toLowerCase()].bg,color:bc[K.tier.toLowerCase()].text},children:bc[K.tier.toLowerCase()].label})]}):a.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),a.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:a.jsx("span",{className:ce("px-2 py-0.5 rounded text-xs font-medium",K.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:K.line_item_count===0?{color:"var(--text-muted)"}:{},children:K.line_item_count})}),a.jsx("div",{className:"hidden sm:block col-span-1",children:a.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:t8(K.updated_at)})}),a.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!k&&a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:le=>ye(le,K.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:a.jsx(ym,{className:"w-4 h-4"})}),a.jsx("button",{onClick:le=>ae(le,K.estimate_id,K.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:a.jsx(Zt,{className:"w-4 h-4"})})]})})]})},K.estimate_id)})})})}),a.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&oe&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(Zt,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',oe.name,'"']}),"? All workloads in this estimate will also be deleted."]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>{re(!1),me(null)},disabled:ve,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:be,disabled:ve,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ve?a.jsxs(a.Fragment,{children:[a.jsx(qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(Zt,{className:"w-4 h-4"}),"Delete"]})})]})]})}),B&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(Zt,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",S.size," Estimate",S.size!==1?"s":""]}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[a.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),a.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(K=>S.has(K.estimate_id)).map(K=>a.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",K.estimate_name]},K.estimate_id))})]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:mt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?a.jsxs(a.Fragment,{children:[a.jsx(qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(Zt,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),S.size>0&&a.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[a.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[S.size," estimate",S.size!==1?"s":""," selected"]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),a.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[a.jsx(Ic,{className:"w-4 h-4"}),"Export"]}),a.jsxs("button",{onClick:it,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[a.jsx(Zt,{className:"w-4 h-4"}),"Delete"]}),a.jsxs("button",{onClick:()=>{R(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[a.jsx(To,{className:"w-4 h-4"}),"Cancel"]})]})]})}function Ub({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:o="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:f=!1}){const[p,h]=m.useState(!1),[g,v]=m.useState(""),_=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),b=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,S=m.useMemo(()=>{if(!f)return null;const T={};return b.forEach(z=>{const j=z.group||"Other";T[j]||(T[j]=[]),T[j].push(z)}),Object.keys(T).sort((z,j)=>z==="General Purpose"?-1:j==="General Purpose"?1:z.localeCompare(j)).map(z=>({name:z,options:T[z]}))},[b,f]);m.useEffect(()=>{const T=D=>{_.current&&!_.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const R=T=>{n(T),h(!1),v("")},k=T=>{T.stopPropagation(),n(""),v("")};return a.jsxs("div",{ref:_,className:ce("relative",d),children:[a.jsxs("div",{onClick:()=>{if(!c){const T=p;h(!p),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:ce("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",p&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!p&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[a.jsx(cS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),p?a.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:o,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?a.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[a.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):a.jsx("span",{className:ce("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!p&&a.jsx("button",{onClick:k,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:a.jsx(To,{className:"w-4 h-4 text-[var(--text-muted)]"})}),a.jsx(Jn,{className:ce("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",p&&"rotate-180")})]}),p&&a.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?a.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):b.length===0?a.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):f&&S?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[b.length," result",b.length!==1?"s":""]}),S.map(T=>a.jsxs("div",{children:[a.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>a.jsx("div",{onClick:()=>R(D.value),className:ce("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[b.length," result",b.length!==1?"s":""]}),b.map(T=>a.jsx("div",{onClick:()=>R(T.value),className:ce("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function Vb(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const o=Array.from(s);return o.length>0?o.sort():["all","short","long"]}function s8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const o=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&o.add(d[5])}});const c=Array.from(o);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const MC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"]);function ua(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:MC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const i8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function zb({tier:e}){const[t,n]=m.useState(!1),r=i8[e];return r?a.jsxs("div",{className:"relative inline-block ml-1",children:[a.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:a.jsx(lS,{className:"w-3.5 h-3.5"})}),t&&a.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[a.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),a.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),a.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function o8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return a.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[a.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[a.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?a.jsx(Jn,{className:"w-3 h-3"}):a.jsx(aS,{className:"w-3 h-3"}),"Notes",e&&!n&&a.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&a.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:a.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function $b(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function tp({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var K;const{workloadTypes:o,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:f,fmapiDatabricksConfig:p,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:_,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:b,updateLineItem:S,fetchLineItems:R,clearSingleWorkloadCost:k,markItemCalculating:T,fetchVMCostForInstance:D}=gs(),z=m.useRef(!0);m.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const $=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:$,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],oe=u.length>0?u:re,me=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],ve=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],ie=d.length>0?d:ve,B={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},q=p&&p.models&&p.models.llm?p:B,C={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},de=h&&Array.isArray(h.providers)?h:C,[pe,A]=m.useState(!1),[we,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_num_endpoints:1,lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_num_endpoints:1,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ae={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_num_endpoints:1,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_num_endpoints:1,lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ae),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(_==null?void 0:_.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),MC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[_,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const be=y?nE(x,g,v,_):null,ye=o.filter(P=>ua(P.workload_type,_,!1).available?be&&be.length>0?be.includes(P.workload_type):!0:!1),at=be&&be.length>0&&o.some(P=>ua(P.workload_type,_,!1).available&&!be.includes(P.workload_type));m.useEffect(()=>{if(!t&&be&&be.length>0&&!be.includes(w.workload_type)){const P=ye[0];P&&Y(N=>({...N,workload_type:P.workload_type}))}},[be,w.workload_type,ye,t]);const Je=t&&be&&be.length>0&&!be.includes(w.workload_type);m.useEffect(()=>{if(!z.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=o.find(P=>P.workload_type===w.workload_type),it=o.length===0,mt=!it&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){$e.error("Enter a workload name");return}A(!0);try{const N={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(N.serverless_enabled=w.serverless_enabled,N.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(N.serverless_enabled=!1,N.serverless_mode=null),I!=null&&I.show_compute_config?(N.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,N.driver_node_type=w.driver_node_type||null,N.worker_node_type=w.worker_node_type||null,N.num_workers=w.num_workers,N.driver_pricing_tier=w.driver_pricing_tier||"on_demand",N.worker_pricing_tier=w.worker_pricing_tier||"spot",N.driver_payment_option=w.driver_payment_option||"NA",N.worker_payment_option=w.worker_payment_option||"NA"):(N.photon_enabled=!1,N.driver_node_type=null,N.worker_node_type=null,N.num_workers=null,N.driver_pricing_tier=null,N.worker_pricing_tier=null,N.driver_payment_option=null,N.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?N.dlt_edition=w.dlt_edition:N.dlt_edition=null,I!=null&&I.show_dbsql_config?(N.dbsql_warehouse_type=w.dbsql_warehouse_type,N.dbsql_warehouse_size=w.dbsql_warehouse_size,N.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(N.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,N.dbsql_driver_payment_option=w.dbsql_driver_payment_option,N.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,N.dbsql_worker_payment_option=w.dbsql_worker_payment_option,N.driver_pricing_tier=w.dbsql_driver_pricing_tier,N.driver_payment_option=w.dbsql_driver_payment_option,N.worker_pricing_tier=w.dbsql_worker_pricing_tier,N.worker_payment_option=w.dbsql_worker_payment_option)):(N.dbsql_warehouse_type=null,N.dbsql_warehouse_size=null,N.dbsql_num_clusters=null,N.dbsql_driver_pricing_tier=null,N.dbsql_driver_payment_option=null,N.dbsql_worker_pricing_tier=null,N.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(N.vector_search_mode=w.vector_search_mode,N.vector_capacity_millions=w.vector_capacity_millions,N.vector_search_storage_gb=w.vector_search_storage_gb||0):(N.vector_search_mode=null,N.vector_capacity_millions=null,N.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?N.model_serving_gpu_type=w.model_serving_gpu_type:N.model_serving_gpu_type=null,I!=null&&I.show_lakebase_config?(N.lakebase_cu=w.lakebase_cu,N.lakebase_storage_gb=w.lakebase_storage_gb||0,N.lakebase_ha_nodes=w.lakebase_ha_nodes,N.lakebase_backup_retention_days=w.lakebase_backup_retention_days,N.lakebase_pitr_gb=w.lakebase_pitr_gb||0,N.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(N.lakebase_cu=null,N.lakebase_storage_gb=null,N.lakebase_ha_nodes=null,N.lakebase_backup_retention_days=null,N.lakebase_pitr_gb=null,N.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(N.fmapi_provider=w.fmapi_provider,N.fmapi_model=w.fmapi_model||null,N.fmapi_endpoint_type=w.fmapi_endpoint_type,N.fmapi_context_length=w.fmapi_context_length,N.fmapi_rate_type=w.fmapi_rate_type,N.fmapi_quantity=w.fmapi_quantity):(N.fmapi_provider=null,N.fmapi_model=null,N.fmapi_endpoint_type=null,N.fmapi_context_length=null,N.fmapi_rate_type=null,N.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?we?(N.hours_per_month=w.hours_per_month||730,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):(N.hours_per_month=null,N.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,N.avg_runtime_minutes=w.avg_runtime_minutes,N.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config?(N.hours_per_month=w.hours_per_month||730,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):I!=null&&I.show_fmapi_config?(N.hours_per_month=w.hours_per_month||null,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):(N.hours_per_month=null,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null),t)k(t.line_item_id),T(t.line_item_id),await S(t.line_item_id,N),$e.success("Workload updated");else{N.estimate_id=e;const M=await b(N);M!=null&&M.line_item_id&&T(M.line_item_id),$e.success("Workload added")}R(e),r==null||r(),n()}catch(N){console.error("Failed to save workload:",N),$e.error("Failed to save")}finally{A(!1)}},ft=I==null?void 0:I.show_compute_config;return it?a.jsxs("div",{className:"p-8 text-center",children:[a.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):a.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),a.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(N=>({...N,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&a.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),a.jsxs("select",{value:w.workload_type,onChange:P=>Y(N=>({...N,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:ce("w-full text-sm",mt&&"border-red-500",Je&&"border-yellow-500"),children:[Je&&(()=>{const P=o.find(N=>N.workload_type===w.workload_type);return P?a.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ye.map(P=>a.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),mt&&a.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Je&&a.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),at&&!Je&&a.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&a.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const N=!ua(w.workload_type,_,!0).available;return a.jsxs("label",{className:ce("flex items-center gap-2 cursor-pointer select-none",N&&"opacity-50 cursor-not-allowed"),children:[a.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!N,onChange:()=>!N&&Y(le=>{const M=!le.serverless_enabled,W=le.workload_type==="ALL_PURPOSE"&&M?"performance":le.serverless_mode;return{...le,serverless_enabled:M,serverless_mode:W}}),disabled:N,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),a.jsx(xm,{className:"w-4 h-4 text-teal-600"}),a.jsx("span",{className:ce("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),N&&a.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(ua(w.workload_type,_,!0).available?w.workload_type==="ALL_PURPOSE"?a.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),a.jsx("select",{value:w.serverless_mode,onChange:le=>Y(M=>({...M,serverless_mode:le.target.value})),className:"text-sm py-1 px-2",children:me.map(le=>a.jsx("option",{value:le.id,children:le.name},le.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&a.jsxs("label",{className:ce("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[a.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),a.jsx(Eu,{className:"w-4 h-4 text-lava-600"}),a.jsx("span",{className:ce("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&a.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),ft&&a.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&a.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:a.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[a.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[a.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[a.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),a.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),a.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),a.jsx(Ub,{options:l.map(P=>({value:P.id,label:$b(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(N=>({...N,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&a.jsxs("div",{className:ce("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",a.jsx(zb,{tier:w.driver_pricing_tier})]}),a.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(N=>({...N,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),a.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(N=>({...N,driver_payment_option:P.target.value})),className:"w-full text-sm",children:ie.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),a.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[a.jsxs("div",{className:"flex items-center justify-between mb-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),a.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),a.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),a.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[a.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(N=>({...N,worker_node_type:N.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),a.jsx("span",{className:ce("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex gap-2",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),a.jsx(Ub,{options:l.map(P=>({value:P.id,label:$b(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(N=>({...N,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),a.jsxs("div",{className:"w-14 flex-shrink-0",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),a.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(N=>({...N,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&a.jsxs("div",{className:ce("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",a.jsx(zb,{tier:w.worker_pricing_tier})]}),a.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(N=>({...N,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"spot",children:"Spot Instances"}),a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),a.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(N=>({...N,worker_payment_option:P.target.value})),className:"w-full text-sm",children:ie.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[ft&&a.jsx(a.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),a.jsx("select",{value:w.dlt_edition,onChange:P=>Y(N=>({...N,dlt_edition:P.target.value})),className:"w-full text-sm",children:oe.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&a.jsxs(a.Fragment,{children:[(()=>{const N=!ua("DBSQL",_,!1,"SERVERLESS").available,le=w.dbsql_warehouse_type==="SERVERLESS"&&!N;return a.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[a.jsxs("label",{className:ce("flex items-center gap-2 cursor-pointer select-none",N&&"opacity-50 cursor-not-allowed"),children:[a.jsx("input",{type:"checkbox",checked:le,onChange:()=>!N&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:N,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),a.jsx(xm,{className:"w-4 h-4 text-teal-600"}),a.jsx("span",{className:ce("text-sm",le?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),N&&a.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!le&&a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),a.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(W=>({...W,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[a.jsx("option",{value:"PRO",children:"Pro"}),a.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),a.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(N=>({...N,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>a.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),a.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(N=>({...N,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Ne,O;const P=y?al(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,N=P!=null&&P.driver_instance_type?l.find(F=>F.id===P.driver_instance_type):null,le=P!=null&&P.worker_instance_type?l.find(F=>F.id===P.worker_instance_type):null,M=(F,G,se)=>{var Fe,ot,nt,We,ct,Ze,Mt;if(!(F!=null&&F.vm_pricing))return null;const Pe=G.toLowerCase();if(Pe==="on_demand")return(Fe=F.vm_pricing.on_demand)==null?void 0:Fe.cost_per_hour;if(Pe==="spot")return(ot=F.vm_pricing.spot)==null?void 0:ot.cost_per_hour;if(Pe==="reserved_1y"){const U=((nt=F.vm_pricing.reserved_1y)==null?void 0:nt.find(J=>J.payment_option===se))||((We=F.vm_pricing.reserved_1y)==null?void 0:We[0]);return U==null?void 0:U.cost_per_hour}if(Pe==="reserved_3y"){const U=((ct=F.vm_pricing.reserved_3y)==null?void 0:ct.find(J=>J.payment_option===se))||((Ze=F.vm_pricing.reserved_3y)==null?void 0:Ze[0]);return U==null?void 0:U.cost_per_hour}return(Mt=F.vm_pricing.on_demand)==null?void 0:Mt.cost_per_hour},W=M(N,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Ee=M(le,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return a.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[a.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[a.jsxs("div",{className:"flex items-center justify-between mb-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),a.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),a.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),N&&a.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[a.jsxs("span",{children:[(Ne=N.dbu_rate)==null?void 0:Ne.toFixed(2)," DBU/hr"]}),W!=null&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"·"}),a.jsxs("span",{children:["$",W.toFixed(4),"/hr"]})]})]}),a.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:F=>Y(G=>({...G,dbsql_driver_pricing_tier:F.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&a.jsx("select",{value:w.dbsql_driver_payment_option,onChange:F=>Y(G=>({...G,dbsql_driver_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:ie.map(F=>a.jsx("option",{value:F.id,children:F.name},F.id))})]}),a.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[a.jsxs("div",{className:"flex items-center justify-between mb-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),a.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),a.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),le&&a.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[a.jsxs("span",{children:[(O=le.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Ee!=null&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"·"}),a.jsxs("span",{children:["$",Ee.toFixed(4),"/hr"]})]})]}),a.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:F=>Y(G=>({...G,dbsql_worker_pricing_tier:F.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"spot",children:"Spot Instances"}),a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&a.jsx("select",{value:w.dbsql_worker_payment_option,onChange:F=>Y(G=>({...G,dbsql_worker_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:ie.map(F=>a.jsx("option",{value:F.id,children:F.name},F.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),a.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(N=>({...N,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),a.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),a.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(N=>({...N,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(N=>({...N,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),a.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),a.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(N=>({...N,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:f.map(P=>a.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Endpoints"}),a.jsx("input",{type:"number",min:1,max:100,value:w.model_serving_num_endpoints,onChange:P=>Y(N=>({...N,model_serving_num_endpoints:parseInt(P.target.value)||1})),className:"w-full text-sm"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),a.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(N=>({...N,fmapi_model:P.target.value})),className:"w-full text-sm",children:[a.jsx("optgroup",{label:"LLMs",children:q.models.llm.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))}),a.jsx("optgroup",{label:"Embedding Models",children:q.models.embedding.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),a.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(N=>({...N,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[a.jsxs("optgroup",{label:"Token-based",children:[a.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&a.jsx("option",{value:"output_token",children:"Output Token"})]}),a.jsxs("optgroup",{label:"Provisioned",children:[a.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),a.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),a.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(N=>({...N,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),a.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:a.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?a.jsxs(a.Fragment,{children:[a.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):a.jsxs(a.Fragment,{children:[a.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),a.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(N=>({...N,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:de.providers.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),a.jsxs("select",{value:w.fmapi_model,onChange:P=>{const N=P.target.value,le=Vb(x,g||"aws",w.fmapi_provider,N),M=le.includes(w.fmapi_context_length)?w.fmapi_context_length:le[0]||"all";Y(W=>({...W,fmapi_model:N,fmapi_context_length:M}))},className:"w-full text-sm",children:[a.jsx("option",{value:"",children:"Select model"}),(K=de.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:K.models.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),a.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(N=>({...N,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:de.endpoint_types.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),a.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(N=>({...N,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?Vb(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],N={all:"All",short:"Short",long:"Long"};return P.map(le=>a.jsx("option",{value:le,children:N[le]||le},le))})()})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),a.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(N=>({...N,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?s8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],N={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(le=>a.jsx("option",{value:le,children:N[le]||le},le))})()})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),a.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(N=>({...N,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),a.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:a.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[a.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),a.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(N=>({...N,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[a.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[a.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),a.jsx("option",{value:1,children:"1 CU (2 GB)"}),a.jsx("option",{value:2,children:"2 CU (4 GB)"}),a.jsx("option",{value:4,children:"4 CU (8 GB)"}),a.jsx("option",{value:8,children:"8 CU (16 GB)"}),a.jsx("option",{value:16,children:"16 CU (32 GB)"}),a.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),a.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[a.jsx("option",{value:48,children:"48 CU (96 GB)"}),a.jsx("option",{value:64,children:"64 CU (128 GB)"}),a.jsx("option",{value:80,children:"80 CU (160 GB)"}),a.jsx("option",{value:96,children:"96 CU (192 GB)"}),a.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),a.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(N=>({...N,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[a.jsx("option",{value:1,children:"1 Node"}),a.jsx("option",{value:2,children:"2 Nodes (HA)"}),a.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),a.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(N=>({...N,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(N=>({...N,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(N=>({...N,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsx("div",{className:"col-span-full",children:a.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[a.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{type:"button",onClick:()=>De(!1),className:ce("px-3 py-1 text-xs rounded-l-md border transition-colors",we?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),a.jsx("button",{type:"button",onClick:()=>De(!0),className:ce("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",we?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!we&&a.jsxs(a.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),a.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(N=>({...N,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),a.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(N=>({...N,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),a.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(N=>({...N,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),we&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsxs("div",{className:"col-span-full md:col-span-1",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),a.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(N=>({...N,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config))&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),a.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(N=>({...N,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),a.jsx(o8,{notes:w.notes,onChange:P=>Y(N=>({...N,notes:P}))}),a.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[a.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class Hb extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?a.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[a.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),a.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const a8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],l8={JOBS:{icon:e3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:ju,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:eD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:gD,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:VD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:Fc,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:Fc,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:Fc,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:u3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},qb=e=>e?l8[e]||{icon:ju,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:ju,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},xe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),Wb=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:xe(e),an=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),Gb=un.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return a.jsxs("div",{className:ce("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[a.jsxs("span",{className:ce("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[xe(e.totalCost),r&&a.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&a.jsxs("span",{className:ce("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[an(e.monthlyDBUs)," DBUs/mo"]})]})}),Kb={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Qb={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function c8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:o,transition:l,isDragging:c}=LC({id:e,disabled:t});return a.jsx("div",{ref:i,style:{transform:Mo.Transform.toString(o),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:a.jsxs("div",{className:"flex items-stretch",children:[!t&&a.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:a.jsx(oS,{className:"w-3.5 h-3.5"})}),a.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function Yb(){const{id:e}=yw(),t=sd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:o,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:f,createEstimate:p,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:_,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:b,getVMPrice:S,getInstanceDbuRate:R,vmPricingMap:k,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:z,instanceTypes:j,photonMultipliers:$,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:oe,getVectorSearchRate:me,getFMAPIDatabricksRate:ve,getFMAPIProprietaryRate:ie,pricingBundle:B,isPricingBundleLoaded:q,clearEstimateState:C,setLocalCalculatedCosts:de}=gs(),[pe,A]=m.useState(!1),[we,De]=m.useState(!1),[w,Y]=m.useState(!1),[ae,be]=m.useState(!1),[ye,at]=m.useState(!1),[Je,I]=m.useState(null),[it,mt]=m.useState(!1),[lt,ft]=m.useState(!1),[K,P]=m.useState(!1),[N,le]=m.useState(!1),[M,W]=m.useState(new Set),[Ee,Ne]=m.useState(new Set),[O,F]=m.useState(!1),[G,se]=m.useState({}),[Pe,Fe]=m.useState(!1),[ot,nt]=m.useState(!1),[We,ct]=m.useState(!1),[Ze,Mt]=m.useState(!1),[U,J]=m.useState([]),[Le,Ue]=m.useState(!1),[Q,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[Ke,Ot]=m.useState(!!e),[rt,St]=m.useState(!1),[ht,It]=m.useState(!1),[Ve,Be]=m.useState("table"),[Ae,ue]=m.useState("order"),[bt,Et]=m.useState("asc"),[_e,et]=m.useState(new Set),[Ct,Or]=m.useState(!1),Cs=m.useRef({}),Rd=m.useCallback(L=>{const Z=Cs.current[L];Z&&(Z.scrollIntoView({behavior:"smooth",block:"center"}),Z.style.backgroundColor="rgba(255, 54, 33, 0.1)",Z.style.transition="background-color 0.3s ease",setTimeout(()=>{Cs.current[L]&&(Cs.current[L].style.backgroundColor="")},1500))},[]),Ml=m.useCallback(()=>{F(!0)},[]);m.useEffect(()=>{const L=Z=>{O&&(Z.preventDefault(),Z.returnValue="")};return window.addEventListener("beforeunload",L),()=>window.removeEventListener("beforeunload",L)},[O]),m.useEffect(()=>{if(!Q.cloud||!Q.region||r.length===0||!We)return;const L=new Set;r.forEach(E=>{if(!E.serverless_enabled){if(E.workload_type==="DBSQL"&&(E.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const H=al(B,Q.cloud,(E.dbsql_warehouse_type||"PRO").toUpperCase(),E.dbsql_warehouse_size||"Small");if(H){const fe=E.dbsql_driver_pricing_tier||E.driver_pricing_tier||"on_demand",ze=E.dbsql_driver_payment_option||E.driver_payment_option||"NA";L.add(`${H.driver_instance_type}:${fe}:${ze}`);const jt=E.dbsql_worker_pricing_tier||E.worker_pricing_tier||"on_demand",Pt=E.dbsql_worker_payment_option||E.worker_payment_option||"NA";L.add(`${H.worker_instance_type}:${jt}:${Pt}`)}return}if(E.driver_node_type){const H=E.driver_pricing_tier||"on_demand",fe=E.driver_payment_option||"NA";L.add(`${E.driver_node_type}:${H}:${fe}`)}if(E.worker_node_type){const H=E.worker_pricing_tier||"spot",fe=E.worker_payment_option||"NA";L.add(`${E.worker_node_type}:${H}:${fe}`)}}});const Z=Array.from(L).map(E=>{const[H,fe,ze]=E.split(":");return b(Q.cloud,Q.region,H,fe,ze)});if(Z.length>0){Mt(!0);const E=new Promise(H=>setTimeout(H,1e4));Promise.race([Promise.all(Z),E]).catch(()=>{}).finally(()=>Mt(!1))}},[Q.cloud,Q.region,r,We,b,B]),m.useEffect(()=>{if(!Q.cloud)return;const L=f(Q.cloud);if(L.length>0){const Z=q?yO(B,Q.cloud):[];if(Z.length>0){const E=L.filter(H=>Z.includes(H.region_code));J(E)}else J(L);Ue(!1)}else u?(J([]),Ue(!1)):Ue(!0)},[Q.cloud,d,u,f,B,q]),m.useEffect(()=>{(async()=>{if(e){Fe(!0),nt(!0),ct(!1);try{await i(e)}catch(Z){console.error("Error loading estimate data:",Z)}finally{Fe(!1),nt(!1),ct(!0)}}else C(),ct(!1)})()},[e,i,C]);const OC={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(OC),x("aws"),F(!1))},[n,e,x,y]),m.useEffect(()=>{Q.cloud&&Q.region&&Q.tier&&z(Q.cloud.toUpperCase(),Q.region,Q.tier.toUpperCase())},[Q.cloud,Q.region,Q.tier,z]);const Td=!!(Q.region&&Q.tier),Jr=(L,Z)=>{const E=Z?{...L,...Z}:L,H=Q.cloud||"aws",fe=Q.region,ze=Object.keys(D).length>0?D:Kb[H]||Kb.aws,jt=E.num_workers||0;if(!fe)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Pt=0;E.workload_type!=="FMAPI_DATABRICKS"&&E.workload_type!=="FMAPI_PROPRIETARY"&&(E.hours_per_month?Pt=E.hours_per_month:E.runs_per_day&&E.avg_runtime_minutes&&(Pt=E.runs_per_day*(E.avg_runtime_minutes/60)*(E.days_per_month||30)));let Ce="";const Yt=(E.dlt_edition||"CORE").toUpperCase();switch(E.workload_type){case"JOBS":E.serverless_enabled?Ce="JOBS_SERVERLESS_COMPUTE":E.photon_enabled?Ce="JOBS_COMPUTE_(PHOTON)":Ce="JOBS_COMPUTE";break;case"ALL_PURPOSE":E.serverless_enabled?Ce="ALL_PURPOSE_SERVERLESS_COMPUTE":E.photon_enabled?Ce="ALL_PURPOSE_COMPUTE_(PHOTON)":Ce="ALL_PURPOSE_COMPUTE";break;case"DLT":E.serverless_enabled?Ce="JOBS_SERVERLESS_COMPUTE":(Ce=`DLT_${Yt}_COMPUTE`,E.photon_enabled&&(Ce+="_(PHOTON)"));break;case"DBSQL":const Oe=(E.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Oe==="SERVERLESS"?Ce="SERVERLESS_SQL_COMPUTE":Oe==="PRO"?Ce="SQL_PRO_COMPUTE":Ce="SQL_COMPUTE";break;case"VECTOR_SEARCH":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const gt=(E.fmapi_provider||"openai").toLowerCase();Ce=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[gt]||gt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":Ce="DATABASE_SERVERLESS_COMPUTE";break;default:Ce="JOBS_COMPUTE"}let jn=.2;if(q&&Q.tier){const Oe=Tg(B,H,fe,Q.tier,Ce);Oe>0?jn=Oe:jn=ze[Ce]||.2}else jn=ze[Ce]||.2;let Se=0,Qe=0,Ge=0,js,br,Zr,te=.5,he=.5;if(q&&E.driver_node_type){const Oe=jm(B,H,E.driver_node_type);Oe>0&&(te=Oe)}if(!te||te===.5){const Oe=j.find(gt=>gt.id===E.driver_node_type||gt.name===E.driver_node_type);Oe!=null&&Oe.dbu_rate&&(te=Oe.dbu_rate)}if(q&&E.worker_node_type){const Oe=jm(B,H,E.worker_node_type);Oe>0&&(he=Oe)}if(!he||he===.5){const Oe=j.find(gt=>gt.id===E.worker_node_type||gt.name===E.worker_node_type);Oe!=null&&Oe.dbu_rate&&(he=Oe.dbu_rate)}const sn=(()=>{if(!E.serverless_enabled&&!E.photon_enabled)return 1;let Oe;if(E.serverless_enabled?E.workload_type==="JOBS"?Oe="JOBS_COMPUTE":E.workload_type==="ALL_PURPOSE"?Oe="ALL_PURPOSE_COMPUTE":E.workload_type==="DLT"?Oe="DLT_CORE_COMPUTE":Oe=Ce.replace("_(PHOTON)",""):Oe=Ce.replace("_(PHOTON)",""),q){const Xt=tE(B,H,Oe);if(Xt!==2)return Xt}const gt=$.find(Xt=>{var xn,lr;return Xt.sku_type===Oe||((xn=Xt.sku_type)==null?void 0:xn.toLowerCase())===Oe.toLowerCase()||((lr=Xt.sku_type)==null?void 0:lr.toLowerCase().includes((L.workload_type||"").toLowerCase()))});return(gt==null?void 0:gt.multiplier)||2})(),ci=E.serverless_enabled&&(E.workload_type==="ALL_PURPOSE"||E.serverless_mode==="performance")?2:1,_r=(E.workload_type!=="DLT",1);switch(E.workload_type){case"ALL_PURPOSE":case"JOBS":if(E.serverless_enabled)Se=(te+he*jt)*sn*ci;else{Se=(te+he*jt)*sn;const Te=E.driver_pricing_tier||"on_demand",Pn=E.driver_payment_option||"NA",Fr=E.worker_pricing_tier||"spot",di=E.worker_payment_option||"NA",fi=S(H,fe,E.driver_node_type||"",Te,Pn),pi=S(H,fe,E.worker_node_type||"",Fr,di);Ge=(fi+pi*jt)*Pt}Qe=Se*Pt;break;case"DLT":if(E.serverless_enabled)Se=(te+he*jt)*sn*_r*ci;else{Se=(te+he*jt)*sn*_r;const Te=E.driver_pricing_tier||"on_demand",Pn=E.driver_payment_option||"NA",Fr=E.worker_pricing_tier||"spot",di=E.worker_payment_option||"NA",fi=S(H,fe,E.driver_node_type||"",Te,Pn),pi=S(H,fe,E.worker_node_type||"",Fr,di);Ge=(fi+pi*jt)*Pt}Qe=Se*Pt;break;case"DBSQL":const Oe=(E.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),gt=E.dbsql_warehouse_size||"Small",Xt=E.dbsql_num_clusters||1;let xn=Qb[gt]||12;if(q){const Te=pO(B,H,Oe,gt);Te&&Te.dbu_per_hour>0&&(xn=Te.dbu_per_hour)}if(!xn||xn===(Qb[gt]||12)){const Te=X.find(Pn=>Pn.id===gt||Pn.name===gt);Te!=null&&Te.dbu_per_hour&&(xn=Te.dbu_per_hour)}if(Se=xn*Xt,Qe=Se*Pt,Oe!=="SERVERLESS"){const Te=q?al(B,H,Oe,gt):null;if(Te){const Pn=E.dbsql_driver_pricing_tier||E.driver_pricing_tier||"on_demand",Fr=E.dbsql_driver_payment_option||E.driver_payment_option||"NA",di=E.dbsql_worker_pricing_tier||E.worker_pricing_tier||"spot",fi=E.dbsql_worker_payment_option||E.worker_payment_option||"NA",pi=S(H,fe,Te.driver_instance_type,Pn,Fr),Xo=S(H,fe,Te.worker_instance_type,di,fi);Ge=(Te.driver_count*pi+Te.worker_count*Xo)*Xt*Pt}else if(E.driver_node_type){const Pn=E.dbsql_driver_pricing_tier||E.driver_pricing_tier||"on_demand",Fr=E.dbsql_driver_payment_option||E.driver_payment_option||"NA",di=E.dbsql_worker_pricing_tier||E.worker_pricing_tier||"spot",fi=E.dbsql_worker_payment_option||E.worker_payment_option||"NA",pi=S(H,fe,E.driver_node_type,Pn,Fr),Xo=E.worker_node_type?S(H,fe,E.worker_node_type,di,fi):0,xx=E.num_workers||0;Ge=(pi+Xo*xx)*Xt*Pt}}break;case"VECTOR_SEARCH":const lr=E.vector_search_mode||"standard",$i=E.vector_capacity_millions||1;let zt=lr==="storage_optimized"?64e6:2e6,Mn=lr==="storage_optimized"?18.29:4;if(q){const Te=mO(B,H,lr);Te&&(zt=Te.input_divisor,Mn=Te.dbu_rate)}else{const Te=me(lr);Te&&(zt=Te.input_divisor,Mn=Te.dbu_per_hour)}const cr=$i*1e6,Ye=Math.ceil(cr/zt);js=Ye,Se=Ye*Mn,Qe=Se*Pt;const Rt=E.vector_search_storage_gb||0,xt=Ye*20,Jt=Math.max(0,Rt-xt),on=.023,Wt=Jt*on;Rt>0&&(br=Wt,Zr={totalStorageGB:Rt,freeStorageGB:xt,billableStorageGB:Jt,pricePerGB:on});break;case"MODEL_SERVING":const On=E.model_serving_gpu_type||"cpu";let In=2;if(q){const Te=hO(B,H,On);Te&&Te.dbu_rate>0&&(In=Te.dbu_rate)}if(In===2){const Te=re.find(Pn=>Pn.id===On||Pn.name===On);Te!=null&&Te.dbu_per_hour&&(In=Te.dbu_per_hour)}Se=In,Qe=Se*Pt;break;case"LAKEBASE":const Fn=E.lakebase_cu||1,Qo=E.lakebase_ha_nodes||1,ui={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Fl=(ui[H]||ui.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;Se=Fn*Fl*Qo,Qe=Se*Pt;const Hi=Math.min(E.lakebase_storage_gb||0,8192),QC=E.lakebase_pitr_gb||0,YC=E.lakebase_snapshot_gb||0,Bl=.023,XC=Hi*15*Bl,JC=QC*8.7*Bl,ZC=YC*3.91*Bl,mx=XC+JC+ZC;mx>0&&(br=mx,Zr={totalStorageGB:Hi,billableStorageGB:Hi,dsuPerGB:15,totalDSU:Hi*15,pricePerDSU:Bl});break;case"FMAPI_DATABRICKS":const e2=E.fmapi_quantity||0,Yo=E.fmapi_rate_type||"input_token",hx=["provisioned_scaling","provisioned_entry"].includes(Yo);let Ps=null;if(q&&E.fmapi_model){const Te=gO(B,H,E.fmapi_model,Yo);Te&&(Ps=Te.dbu_rate)}if(Ps===null&&E.fmapi_model){const Te=ve(E.fmapi_model,Yo);Te&&(hx?Ps=Te.dbu_per_hour||null:Ps=Te.dbu_per_1M_tokens||null)}Ps===null&&(hx?Ps=Yo==="provisioned_scaling"?200:50:Ps=Yo==="output_token"?3:1),Qe=e2*Ps;break;case"FMAPI_PROPRIETARY":const t2=E.fmapi_quantity||0,Ul=E.fmapi_rate_type||"input_token",gx=Ul==="provisioned_scaling";let wr=null;if(q&&E.fmapi_provider&&E.fmapi_model){const Te=E.fmapi_endpoint_type||"global",Pn=E.fmapi_context_length||"long",Fr=xO(B,H,E.fmapi_provider,E.fmapi_model,Te,Pn,Ul);Fr&&(wr=Fr.dbu_rate)}if(wr===null&&E.fmapi_provider&&E.fmapi_model){const Te=ie(E.fmapi_provider,E.fmapi_model,Ul);Te&&(gx?wr=Te.dbu_per_hour||null:wr=Te.dbu_per_1M_tokens||null)}if(wr===null)if(gx)wr=150;else switch(Ul){case"output_token":wr=6;break;case"cache_read":wr=.5;break;case"cache_write":wr=1;break;default:wr=2}Qe=t2*wr;break;default:Qe=0}const ar=isNaN(jn)||jn===void 0?0:jn,Ns=isNaN(Qe)||Qe===void 0?0:Qe,Nn=isNaN(Ge)||Ge===void 0?0:Ge,gn=br!==void 0&&!isNaN(br)?br:0,Ir=Ns*ar,ts=Ir+Nn+gn;return{monthlyDBUs:Ns,dbuCost:isNaN(Ir)?0:Ir,vmCost:Nn,totalCost:isNaN(ts)?0:ts,unitsUsed:js,dbuPerHour:Se,dbuPrice:ar,storageCost:gn>0?gn:void 0,storageDetails:Zr}},Qn=m.useMemo(()=>{let L=0,Z=0,E=0,H=0;return r.forEach(fe=>{const ze=Jr(fe);L+=isNaN(ze.monthlyDBUs)?0:ze.monthlyDBUs,Z+=isNaN(ze.dbuCost)?0:ze.dbuCost,E+=isNaN(ze.vmCost)?0:ze.vmCost,H+=isNaN(ze.totalCost)?0:ze.totalCost}),{totalDBUs:L,totalDBUCost:Z,totalVMCost:E,totalCost:H}},[r,Q.cloud,Q.region,Q.tier,s,S,k,R,T,j,$,D,X,re,oe,me,ve,ie,B,q]);m.useEffect(()=>{const L={};r.forEach(Z=>{const E=Jr(Z,G[Z.line_item_id]);L[Z.line_item_id]={total:isNaN(E.totalCost)?0:E.totalCost,dbu:isNaN(E.dbuCost)?0:E.dbuCost,vm:isNaN(E.vmCost)?0:E.vmCost,dbus:isNaN(E.monthlyDBUs)?0:E.monthlyDBUs}}),de(L)},[r,G,Q.cloud,Q.region,Q.tier,de,S,k,R,T,j,$,D,X,re,oe,me,ve,ie,B,q]);const li=m.useMemo(()=>{const L=[...r];return Ae==="order"?L.sort((Z,E)=>(Z.display_order??0)-(E.display_order??0)):Ae==="name"?L.sort((Z,E)=>(Z.workload_name||"").localeCompare(E.workload_name||"")):Ae==="type"?L.sort((Z,E)=>(Z.workload_type||"").localeCompare(E.workload_type||"")):Ae==="cost"&&L.sort((Z,E)=>{const H=Jr(Z).totalCost,fe=Jr(E).totalCost;return H-fe}),bt==="desc"&&L.reverse(),L},[r,Ae,bt,Jr]),Ld=L=>{Ae===L?Et(Z=>Z==="asc"?"desc":"asc"):(ue(L),Et(L==="cost"?"desc":"asc"))},IC=dC(Iu(jd,{activationConstraint:{distance:5}}),Iu(Cd)),FC=Ae==="order",BC=m.useCallback(async L=>{const{active:Z,over:E}=L;if(!E||Z.id===E.id||!e)return;const H=li.findIndex(Yt=>Yt.line_item_id===Z.id),fe=li.findIndex(Yt=>Yt.line_item_id===E.id);if(H===-1||fe===-1)return;const ze=[...li],[jt]=ze.splice(H,1);ze.splice(fe,0,jt);const{lineItems:Pt}=gs.getState(),Ce=Pt.map(Yt=>{const jn=ze.findIndex(Se=>Se.line_item_id===Yt.line_item_id);return jn>=0?{...Yt,display_order:jn}:Yt});gs.setState({lineItems:Ce});try{await $4(e,ze.map(Yt=>Yt.line_item_id))}catch{$e.error("Failed to save reorder")}},[li,e]),ix=async()=>{if(!Q.estimate_name.trim()){$e.error("Enter an estimate name");return}if(!Q.region){$e.error("Select a region");return}if(!Q.tier){$e.error("Select a Databricks tier");return}A(!0);try{const L={...Q,cloud:Q.cloud.toUpperCase(),tier:Q.tier.toUpperCase()};if(e&&n)await h(e,L),F(!1),$e.success("All changes saved");else{const Z=await p(L);F(!1),t(`/calculator/${Z.estimate_id}`,{replace:!0}),$e.success("Estimate created")}}catch{$e.error("Failed to save")}finally{A(!1)}},UC=async()=>{if(e){De(!0);try{const L=await HS(e),Z=`${Q.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;qm.saveAs(L,Z),$e.success("Exported to Excel")}catch{$e.error("Export failed")}finally{De(!1)}}},VC=async()=>{if(e){Y(!0),be(!1);try{await g(e),$e.success("Estimate deleted"),t("/",{replace:!0})}catch{$e.error("Failed to delete estimate"),Y(!1)}}},zC=async()=>{l(),$e.loading("Refreshing pricing data...",{id:"refresh-data"});try{await o(!0),$e.success("Pricing data refreshed",{id:"refresh-data"})}catch{$e.error("Failed to refresh data",{id:"refresh-data"})}},ox=L=>{I(L),at(!0)},$C=async()=>{if(Je){ft(!0);try{await v(Je.line_item_id),$e.success("Workload removed")}catch{$e.error("Failed to delete")}finally{ft(!1),at(!1),I(null)}}},ax=()=>{_e.size!==0&&mt(!0)},HC=async()=>{ft(!0);try{let L=0;for(const Z of _e)await v(Z),L++;$e.success(`${L} workload(s) deleted`),et(new Set)}catch{$e.error("Failed to delete some workloads")}finally{ft(!1),mt(!1)}},qC=L=>{et(Z=>{const E=new Set(Z);return E.has(L)?E.delete(L):E.add(L),E})},WC=()=>{_e.size===r.length?et(new Set):et(new Set(r.map(L=>L.line_item_id)))},lx=()=>{Or(!1),et(new Set)},cx=async(L,Z)=>{L.stopPropagation();try{await _(Z.line_item_id)&&$e.success(`Workload "${Z.workload_name}" cloned`)}catch{$e.error("Failed to clone workload")}},GC=()=>{O?P(!0):t("/")},KC=()=>{P(!1),t("/")},ux=L=>{const Z=new Set(M);Z.has(L)?Z.delete(L):Z.add(L),W(Z)},Ol=(L,Z=!1)=>{const E=new Set(Ee);if(E.has(L))E.delete(L);else if(E.add(L),Z&&!M.has(L)){const H=new Set(M);H.add(L),W(H)}Ne(E)},dx=L=>L.hours_per_month?`${L.hours_per_month}h/month`:L.runs_per_day?`${L.runs_per_day} runs/day × ${L.avg_runtime_minutes||30}min`:null,fx=L=>{const Z=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(L.workload_type||"")&&L.serverless_enabled&&Z.push({label:"Mode",value:L.serverless_mode==="performance"?"Performance":"Standard"}),L.workload_type){case"VECTOR_SEARCH":L.vector_search_mode&&Z.push({label:"Mode",value:L.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),L.vector_capacity_millions&&Z.push({label:"Capacity",value:`${L.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(L.model_serving_gpu_type){const E={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};Z.push({label:"Endpoint",value:E[L.model_serving_gpu_type]||L.model_serving_gpu_type})}break;case"LAKEBASE":L.lakebase_cu&&Z.push({label:"CU",value:`${L.lakebase_cu}`}),L.lakebase_ha_nodes&&Z.push({label:"Nodes",value:`${L.lakebase_ha_nodes}${L.lakebase_ha_nodes>1?" (HA)":""}`}),L.lakebase_storage_gb&&L.lakebase_storage_gb>0&&Z.push({label:"Storage",value:`${L.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(L.fmapi_model&&Z.push({label:"Model",value:L.fmapi_model}),L.fmapi_rate_type){const E={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};Z.push({label:"Rate",value:E[L.fmapi_rate_type]||L.fmapi_rate_type})}if(L.fmapi_quantity){const E=["provisioned_scaling","provisioned_entry"].includes(L.fmapi_rate_type||"");Z.push({label:E?"Hours":"Quantity",value:E?`${L.fmapi_quantity}h/mo`:`${L.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(L.fmapi_provider&&L.fmapi_model&&Z.push({label:"Model",value:`${L.fmapi_provider}/${L.fmapi_model}`}),L.fmapi_rate_type){const E={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};Z.push({label:"Rate",value:E[L.fmapi_rate_type]||L.fmapi_rate_type})}L.fmapi_quantity&&Z.push({label:"Quantity",value:`${L.fmapi_quantity}M tokens`});break;case"DLT":L.dlt_edition&&Z.push({label:"Edition",value:L.dlt_edition});break;case"DBSQL":L.dbsql_warehouse_type&&Z.push({label:"Type",value:L.dbsql_warehouse_type}),L.dbsql_warehouse_size&&Z.push({label:"Size",value:L.dbsql_warehouse_size}),L.dbsql_num_clusters&&L.dbsql_num_clusters>1&&Z.push({label:"Clusters",value:`${L.dbsql_num_clusters}`});break}return Z},Il=Q.estimate_name.trim()&&Q.region&&Q.tier,px=()=>{const L=[];return Q.estimate_name.trim()||L.push("Estimate Name"),Q.region||L.push("Region"),Q.tier||L.push("Databricks Tier"),L};return w?a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:a.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&Pe&&!n?a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[a.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:a.jsx(Jv,{className:"w-5 h-5"})}),a.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[a.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[a.jsxs("div",{className:"card p-5",children:[a.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),a.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(L=>a.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},L))}),a.jsx("div",{className:"space-y-4",children:[1,2,3].map(L=>a.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},L))})]}),a.jsxs("div",{className:"space-y-4",children:[a.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"card p-8",children:a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsx("div",{className:"relative",children:a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),a.jsxs("div",{className:"text-center",children:[a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),a.jsx("div",{className:"lg:col-span-1",children:a.jsxs("div",{className:"card p-5 space-y-4",children:[a.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("button",{onClick:GC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:a.jsx(Jv,{className:"w-5 h-5"})}),a.jsx("div",{children:Pe&&e?a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):a.jsxs(a.Fragment,{children:[a.jsx("input",{type:"text",value:Q.estimate_name,onChange:L=>{ut(Z=>({...Z,estimate_name:L.target.value})),Ml()},placeholder:"Untitled Estimate",title:Q.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&a.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&a.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[a.jsx(ls,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{onClick:zC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:a.jsx(qr,{className:ce("w-4 h-4",c&&"animate-spin")})}),a.jsxs("button",{onClick:UC,disabled:we||!e,className:"btn btn-secondary",children:[a.jsx(Ic,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&a.jsx("button",{onClick:()=>be(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:a.jsx(Zt,{className:"w-4 h-4"})})]})]}),a.jsxs("div",{className:ce("grid grid-cols-1 gap-6",rt?"lg:grid-cols-1":"lg:grid-cols-4"),children:[a.jsxs("div",{className:ce("space-y-6",rt?"lg:col-span-1":"lg:col-span-3"),children:[a.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[a.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Ot(!Ke),children:[a.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[a.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:a.jsx(ju,{className:"w-4 h-4 text-lava-600"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),a.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${Q.cloud.toUpperCase()} • ${Q.region||"No region"} • ${Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier"}${Q.customer_name?` • ${Q.customer_name}`:""}`,children:[Q.cloud.toUpperCase()," • ",Q.region||"No region"," • ",Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier",Q.customer_name&&` • ${Q.customer_name}`]})]})]}),a.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:Ke?a.jsx(Jn,{className:"w-4 h-4 text-[var(--text-muted)]"}):a.jsx(as,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!Ke&&a.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[a.jsxs("div",{className:"pt-3 space-y-3",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),Pe&&e?a.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(L=>a.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:a.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},L))}):a.jsxs(a.Fragment,{children:[r.length>0&&a.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[a.jsx(ls,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),a.jsx("div",{className:"grid grid-cols-3 gap-3",children:a8.map(L=>{const Z=r.length>0&&Q.cloud!==L.id;return a.jsxs("button",{disabled:Z,onClick:E=>{E.stopPropagation(),!Z&&(ut(H=>({...H,cloud:L.id,region:"",tier:L.id==="azure"&&H.tier==="enterprise"?"":H.tier})),x(L.id),Ml())},className:ce("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",Q.cloud===L.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",Z?"opacity-40 cursor-not-allowed":Q.cloud!==L.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:Z?"Remove all workloads to change cloud provider":void 0,children:[a.jsx("div",{className:ce("text-sm font-semibold",Q.cloud===L.id?"text-lava-600":"text-[var(--text-primary)]"),children:L.name}),Q.cloud===L.id&&a.jsx("div",{className:"absolute top-1.5 right-1.5",children:a.jsx(zs,{className:"w-3.5 h-3.5 text-lava-600"})})]},L.id)})})]})]}),Pe&&e?a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),a.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),a.jsxs("div",{children:[a.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),a.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:L=>L.stopPropagation(),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsxs("select",{value:Q.region,onChange:L=>{ut(Z=>({...Z,region:L.target.value})),y(L.target.value),Ml()},className:ce("w-full text-sm",!Q.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[a.jsx("option",{value:"",children:Le?"Loading regions...":"Select region"}),U.map(L=>a.jsxs("option",{value:L.region_code,children:[L.region_code," (",L.sku_region,")"]},L.region_code))]})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsxs("select",{value:Q.tier,onChange:L=>{ut(Z=>({...Z,tier:L.target.value})),Ml()},className:ce("w-full text-sm",!Q.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[a.jsx("option",{value:"",children:"Select tier"}),a.jsx("option",{value:"premium",children:"Premium"}),Q.cloud!=="azure"&&a.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),a.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[a.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?a.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[a.jsx(ls,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?a.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[a.jsx(zs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),a.jsxs("button",{onClick:ix,disabled:pe||!Il,title:Il?void 0:`Missing: ${px().join(", ")}`,className:ce("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[a.jsx(zs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),a.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[a.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[a.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[a.jsx(l3,{className:"w-5 h-5 text-lava-600"}),"Workloads",a.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&a.jsx(a.Fragment,{children:Ct?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[_e.size," selected"]}),a.jsxs("button",{onClick:ax,disabled:_e.size===0,className:ce("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",_e.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[a.jsx(Zt,{className:"w-4 h-4"}),"Delete"]}),a.jsx("button",{onClick:lx,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:a.jsx(To,{className:"w-4 h-4"})})]}):a.jsx("button",{onClick:()=>Or(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&a.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[a.jsx("button",{onClick:()=>Be("table"),className:ce("p-1.5 rounded-md transition-colors",Ve==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:a.jsx(x3,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>Be("cards"),className:ce("p-1.5 rounded-md transition-colors",Ve==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:a.jsx(Cg,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>Be("expanded"),className:ce("p-1.5 rounded-md transition-colors",Ve==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:a.jsx(ty,{className:"w-4 h-4"})})]}),Td&&e&&a.jsxs("button",{onClick:()=>le(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[a.jsx(Nu,{className:"w-4 h-4"}),"Add"]})]})]}),e?ot&&!We?a.jsx("div",{className:"card p-8 text-center",children:a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsx("div",{className:"relative",children:a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),a.jsxs("div",{children:[a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):a.jsxs(a.Fragment,{children:[Ve==="table"&&r.length>0&&a.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[a.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Ct&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("input",{type:"checkbox",checked:_e.size===r.length&&r.length>0,onChange:WC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),a.jsxs("button",{onClick:()=>Ld("name"),className:ce("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Ct?"col-span-3":"col-span-4"),children:["Workload",Ae==="name"&&(bt==="asc"?a.jsx(wf,{className:"w-3 h-3"}):a.jsx(_f,{className:"w-3 h-3"}))]}),a.jsxs("button",{onClick:()=>Ld("type"),className:ce("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Ae==="type"&&(bt==="asc"?a.jsx(wf,{className:"w-3 h-3"}):a.jsx(_f,{className:"w-3 h-3"}))]}),a.jsxs("button",{onClick:()=>Ld("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Ae==="cost"&&(bt==="asc"?a.jsx(wf,{className:"w-3 h-3"}):a.jsx(_f,{className:"w-3 h-3"}))]})]}),a.jsx(EC,{sensors:IC,collisionDetection:fC,onDragEnd:BC,modifiers:[AC],children:a.jsx(RC,{items:li.map(L=>L.line_item_id),strategy:jC,children:li.map(L=>{var js,br,Zr;const Z=G[L.line_item_id],E=Z?{...L,...Z}:L,H=Jr(L,Z),fe=qb(E.workload_type),ze=fe.icon,jt=M.has(L.line_item_id),Pt=_e.has(L.line_item_id),Ce=E.workload_type||"",Yt=E.serverless_enabled||Ce==="DBSQL"&&(E.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",jn=((js=s.find(te=>te.workload_type===Ce))==null?void 0:js.display_name)||Ce,Se=dx(E),Ge=(()=>{const te={badges:[],details:[]};if(Yt&&te.badges.push({text:"Serverless",accent:!0}),E.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(Ce))Yt||(E.driver_node_type&&(te.driver=E.driver_node_type),E.num_workers&&E.worker_node_type&&(te.workers={count:E.num_workers,type:E.worker_node_type})),Ce==="DLT"&&E.dlt_edition&&te.badges.push({text:E.dlt_edition});else if(Ce==="DBSQL")E.dbsql_warehouse_type&&(E.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(E.dbsql_warehouse_type||"").toUpperCase()}),E.dbsql_warehouse_size&&te.details.push(E.dbsql_warehouse_size),E.dbsql_num_clusters&&E.dbsql_num_clusters>1&&te.details.push(`${E.dbsql_num_clusters} clusters`);else if(Ce==="VECTOR_SEARCH"){if(E.vector_search_mode){const he=E.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:he})}E.vector_capacity_millions&&te.details.push(`${E.vector_capacity_millions}M vectors`)}else if(Ce==="MODEL_SERVING")E.model_serving_gpu_type&&te.details.push(E.model_serving_gpu_type);else if(Ce==="FMAPI_DATABRICKS"||Ce==="FMAPI_PROPRIETARY"){if(E.fmapi_rate_type){const he=["provisioned_scaling","provisioned_entry"].includes(E.fmapi_rate_type);te.badges.push({text:he?"Provisioned":"Token"})}E.fmapi_provider&&Ce==="FMAPI_PROPRIETARY"&&te.details.push(E.fmapi_provider),E.fmapi_model&&te.details.push(E.fmapi_model)}else Ce==="LAKEBASE"&&(E.lakebase_cu&&te.details.push(`CU ${E.lakebase_cu}`),E.lakebase_ha_nodes&&E.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${E.lakebase_ha_nodes}`}),E.lakebase_storage_gb&&E.lakebase_storage_gb>0&&te.details.push(`${E.lakebase_storage_gb.toLocaleString()} GB`));return te})();return a.jsx(c8,{id:L.line_item_id,disabled:!FC,children:a.jsxs("div",{ref:te=>{Cs.current[L.line_item_id]=te},children:[a.jsxs("div",{className:ce("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Pt&&Ct&&"bg-lava-600/5",jt&&"bg-[var(--bg-tertiary)]"),onClick:()=>ux(L.line_item_id),children:[Ct&&a.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:a.jsx("input",{type:"checkbox",checked:Pt,onChange:()=>qC(L.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),a.jsxs("div",{className:ce("flex items-center gap-3",Ct?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[a.jsx("div",{className:ce("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",fe.bgColor),children:a.jsx(ze,{className:ce("w-4 h-4",fe.color)})}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:L.workload_name,children:L.workload_name}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:jn,children:jn})]})]}),a.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Ge.badges.length>0&&a.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Ge.badges.map((te,he)=>a.jsx("span",{className:ce("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},he))}),(Ge.driver||Ge.workers)&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Ge.driver||"N/A"}, Workers: ${((br=Ge.workers)==null?void 0:br.count)||0}× ${((Zr=Ge.workers)==null?void 0:Zr.type)||"N/A"}`,children:(()=>{const te=Ge.driver,he=Ge.workers;return te&&he?te===he.type?`${he.count+1}× ${he.type}`:`${te} + ${he.count}× ${he.type}`:he?`${he.count}× ${he.type}`:te||""})()}),Ge.details.length>0&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Ge.details.join(" · "),children:Ge.details.join(" · ")})]}),a.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[a.jsx(Gb,{costs:H,size:"sm",isLoading:(()=>{const te=!E.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(Ce)||Ce==="DBSQL"&&(E.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ze&&te&&H.vmCost===0})()}),a.jsxs("div",{className:"flex items-center gap-0.5",children:[a.jsx("button",{onClick:te=>{te.stopPropagation(),Ol(L.line_item_id,!0)},className:ce("p-1.5 rounded transition-colors",Ee.has(L.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Ee.has(L.line_item_id)?"Hide calculation":"Show calculation",children:a.jsx(cc,{className:"w-4 h-4"})}),a.jsx("button",{onClick:te=>cx(te,L),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:a.jsx(ym,{className:"w-4 h-4"})}),a.jsx("button",{onClick:te=>{te.stopPropagation(),ox(L)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:a.jsx(Zt,{className:"w-4 h-4"})}),a.jsx("div",{className:ce("p-1 rounded transition-colors",jt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:jt?a.jsx(as,{className:"w-5 h-5 text-lava-600"}):a.jsx(Jn,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!jt&&(Ge.badges.length>0||Ge.driver||Ge.workers||Ge.details.length>0)&&a.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Ge.badges.map((te,he)=>a.jsx("span",{className:ce("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},he)),(Ge.driver||Ge.workers)&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Ge.driver,he=Ge.workers;return te&&he?te===he.type?`${he.count+1}× ${he.type}`:`${te} + ${he.count}× ${he.type}`:he?`${he.count}× ${he.type}`:te||""})()}),Ge.details.length>0&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Ge.details.join(" · ")})]}),jt&&a.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[a.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(H.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(Ce)&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(H.vmCost)})]}),Ce==="LAKEBASE"&&H.storageCost!==void 0&&H.storageCost>0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),a.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:xe(H.storageCost)})]}),Ce==="VECTOR_SEARCH"&&H.unitsUsed!==void 0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),a.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[H.unitsUsed," unit",H.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(Ce)&&!Yt&&a.jsxs(a.Fragment,{children:[E.driver_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),a.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:E.driver_node_type})]}),E.worker_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),a.jsxs("p",{className:"text-[var(--text-primary)]",children:[E.num_workers,"× ",a.jsx("span",{className:"font-mono text-[10px]",children:E.worker_node_type})]})]})]}),fx(E).map((te,he)=>a.jsxs("div",{className:"min-w-0",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),a.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},he)),Se&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),a.jsx("p",{className:"text-[var(--text-primary)]",children:Se})]})]}),a.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[a.jsxs("button",{onClick:te=>{te.stopPropagation(),Ol(L.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[a.jsx(cc,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"font-medium group-hover:underline",children:Ee.has(L.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Ee.has(L.line_item_id)?a.jsx(as,{className:"w-3 h-3"}):a.jsx(Jn,{className:"w-3 h-3"})]}),Ee.has(L.line_item_id)&&a.jsx("div",{className:"mt-2",children:(()=>{const te=E.runs_per_day&&E.avg_runtime_minutes&&!E.hours_per_month,he=E.runs_per_day||0,es=E.avg_runtime_minutes||30,sn=E.days_per_month||30,ci=E.hours_per_month||730,Vt=te?he*(es/60)*sn:ci,ar=(H.dbuPrice||0).toFixed(2);if(Ce==="VECTOR_SEARCH"){const Ye=E.vector_capacity_millions||1,Rt=E.vector_search_mode||"standard",xt=Rt==="storage_optimized"?64:2,Jt=Math.ceil(Ye/xt),on=Rt==="storage_optimized"?18.29:4,Wt=E.vector_search_storage_gb||0,On=Jt*20,In=Math.max(0,Wt-On),Fn=In*.023;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[es,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[sn," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:["⌈",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ye,"M"]})," vectors ÷ ",xt,"M⌉"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Jt," unit",Jt!==1?"s":""]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[on.toFixed(2)," DBU/hr/unit"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(H.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ar,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(H.dbuCost)})]}),Wt>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Wt," GB"]}),a.jsx("span",{children:"−"}),a.jsxs("span",{children:[On," GB free"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Jt," units × 20GB)"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[In," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"$0.023/GB"}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Fn)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(H.dbuCost)}),Wt>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Fn)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(H.totalCost)})]})]})}if(Ce==="FMAPI_DATABRICKS"||Ce==="FMAPI_PROPRIETARY"){const Ye=E.fmapi_quantity||1,Rt=E.fmapi_rate_type||"input_token",xt=["provisioned_scaling","provisioned_entry"].includes(Rt),Jt=Ye>0?H.monthlyDBUs/Ye:0,on=E.fmapi_model||"model",Wt=E.fmapi_provider||"";return a.jsx("div",{className:"space-y-1",children:a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),xt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ye," hours/mo"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Jt.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",on,")"]})]}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ye,"M tokens"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Jt.toFixed(2)," DBU/M"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Wt?`${Wt}/`:"",on,")"]})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(H.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ar,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe(H.totalCost)})]})})}if(Ce==="LAKEBASE"){const Ye=E.lakebase_cu||1,Rt=E.lakebase_ha_nodes||1,xt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},on=(xt[Q.cloud||"aws"]||xt.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213,Wt=E.lakebase_storage_gb||0,On=E.lakebase_pitr_gb||0,In=E.lakebase_snapshot_gb||0,Fn=.023,Qo=Wt*15*Fn,ui=On*8.7*Fn,Ad=In*3.91*Fn,Fl=Qo+ui+Ad,Hi=Fl>0;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[es,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[sn," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ye," CU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," DBU/CU-hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rt," nodes"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(H.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ar,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(H.dbuCost)})]}),Wt>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Wt," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"15 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Wt*15)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Fn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Qo)})]}),On>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[On," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"8.7 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(On*8.7)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Fn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(ui)})]}),In>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[In," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"3.91 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(In*3.91)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Fn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Ad)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(H.dbuCost)}),Hi&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Fl)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(H.totalCost)})]})]})}if(Ce==="MODEL_SERVING"){const Ye=E.num_workers||1,Rt=E.model_serving_gpu_type||"cpu",xt=H.dbuPerHour?H.dbuPerHour/Ye:2;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[es,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[sn," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ye," endpoint",Ye!==1?"s":""]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[xt.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Rt,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(H.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ar,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe(H.totalCost)})]})]})}if(Ce==="DBSQL"){const Ye=E.dbsql_warehouse_size||"Small",Rt=E.dbsql_num_clusters||1,xt=(E.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),Jt=H.dbuPerHour?H.dbuPerHour/Rt:12,on=H.vmCost>0;return a.jsxs("div",{className:"space-y-1.5",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[es,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[sn," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ye}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Jt.toFixed(1)," DBU/hr)"]}),Rt>1&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rt," clusters"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${he} runs × ${es}min ÷ 60 × ${sn} days`:void 0,children:[Vt.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(H.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ar,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(H.dbuCost)})]}),on&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsxs("span",{children:[xt," warehouse VM costs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe(H.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-600",children:xe(H.dbuCost)}),on&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-600",children:xe(H.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe(H.totalCost)})]})]})}const Ns=E.num_workers||0,Nn=E.driver_node_type||"",gn=E.worker_node_type||"",Ir=E.photon_enabled,ts=H.vmCost>0&&!Yt,Oe=Q.cloud||"aws",gt=Q.region||"",Xt=j.find(Ye=>Ye.id===Nn||Ye.name===Nn),xn=j.find(Ye=>Ye.id===gn||Ye.name===gn),lr=R(Oe,Nn)||(Xt==null?void 0:Xt.dbu_rate)||0,$i=R(Oe,gn)||(xn==null?void 0:xn.dbu_rate)||0,zt=gt&&Nn?S(Oe,gt,Nn,E.driver_pricing_tier||"on_demand",E.driver_payment_option||"no_upfront"):null,Mn=gt&&gn?S(Oe,gt,gn,E.worker_pricing_tier||"spot",E.worker_payment_option||"NA"):null,cr=H.dbuPerHour||0;return a.jsxs("div",{className:"space-y-1.5",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[es,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[sn," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Yt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[cr.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Ir?" + Photon":"",")"]})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"("}),a.jsx("span",{title:Nn,children:lr.toFixed(2)}),a.jsx("span",{children:"+"}),a.jsx("span",{title:gn,children:$i.toFixed(2)}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ns}),a.jsx("span",{children:")"}),Ir&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[cr.toFixed(2)," DBU/hr"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(H.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ar,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(H.dbuCost)})]}),ts&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsx("span",{children:"("}),a.jsxs("span",{title:Nn,children:["$",(zt==null?void 0:zt.toFixed(4))||"0"]}),a.jsx("span",{children:"+"}),a.jsxs("span",{title:gn,children:["$",(Mn==null?void 0:Mn.toFixed(4))||"0"]}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ns}),a.jsx("span",{children:")"}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe(H.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(H.dbuCost)}),ts&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-500",children:xe(H.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(H.totalCost)})]})]})})()})]})]}),jt&&a.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:a.jsx(Hb,{onReset:()=>{W(te=>{const he=new Set(te);return he.delete(L.line_item_id),he})},children:a.jsx(tp,{estimateId:e,lineItem:L,onClose:()=>{W(te=>{const he=new Set(te);return he.delete(L.line_item_id),he}),se(te=>{const he={...te};return delete he[L.line_item_id],he})},onSave:()=>{se(te=>{const he={...te};return delete he[L.line_item_id],he})},onFormChange:te=>{se(he=>({...he,[L.line_item_id]:te}))},inline:!0})})})]})},L.line_item_id)})})})]}),Ve!=="table"&&li.map((L,Z)=>{var jn;const E=G[L.line_item_id],H=E?{...L,...E}:L,fe=Jr(L,E),ze=M.has(L.line_item_id),jt=dx(H),Pt=qb(H.workload_type),Ce=Pt.icon,Yt=Ve==="expanded"||ze;return a.jsx("div",{ref:Se=>{Cs.current[L.line_item_id]=Se},children:a.jsxs(Ut.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:Z*.02},className:"card overflow-hidden",children:[a.jsxs("div",{className:ce("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",Ve==="cards"&&!ze&&"py-3"),onClick:()=>ux(L.line_item_id),children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx("div",{className:ce("rounded-lg flex items-center justify-center flex-shrink-0",Ve==="cards"&&!ze?"w-8 h-8":"w-10 h-10",Pt.bgColor),children:a.jsx(Ce,{className:ce(Pt.color,Ve==="cards"&&!ze?"w-4 h-4":"w-5 h-5")})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("h4",{className:ce("font-semibold truncate text-[var(--text-primary)]",Ve==="cards"&&!ze&&"text-sm"),title:L.workload_name,children:L.workload_name}),(L.serverless_enabled||L.workload_type==="DBSQL"&&(L.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&a.jsx("span",{className:"badge badge-teal",children:"Serverless"}),L.photon_enabled&&a.jsxs("span",{className:"badge badge-lava",children:[a.jsx(Eu,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),a.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:a.jsx("span",{children:((jn=s.find(Se=>Se.workload_type===L.workload_type))==null?void 0:jn.display_name)||L.workload_type})})]}),a.jsx(Gb,{costs:fe,size:Ve==="cards"&&!ze?"md":"lg",isLoading:(()=>{const Se=L.workload_type||"",Qe=!L.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(Se)||Se==="DBSQL"&&(L.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ze&&Qe&&fe.vmCost===0})(),className:"min-w-[100px]"}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:Se=>{Se.stopPropagation(),Ol(L.line_item_id,!0)},className:ce("p-1.5 rounded-md transition-colors",Ee.has(L.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Ee.has(L.line_item_id)?"Hide calculation":"Show calculation",children:a.jsx(cc,{className:"w-4 h-4"})}),a.jsx("button",{onClick:Se=>cx(Se,L),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:a.jsx(ym,{className:"w-4 h-4"})}),a.jsx("button",{onClick:Se=>{Se.stopPropagation(),ox(L)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:a.jsx(Zt,{className:"w-4 h-4"})}),ze?a.jsx(as,{className:"w-5 h-5 text-[var(--text-muted)]"}):a.jsx(Jn,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),Yt&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(fe.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(L.workload_type||"")&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(fe.vmCost)})]}),L.workload_type==="LAKEBASE"&&fe.storageCost!==void 0&&fe.storageCost>0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),a.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:xe(fe.storageCost)})]}),L.workload_type==="VECTOR_SEARCH"&&fe.unitsUsed!==void 0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),a.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[fe.unitsUsed," unit",fe.unitsUsed!==1?"s":""]})]}),(L.workload_type==="JOBS"||L.workload_type==="ALL_PURPOSE"||L.workload_type==="DLT")&&a.jsxs(a.Fragment,{children:[L.driver_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),a.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:L.driver_node_type})]}),L.worker_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),a.jsxs("p",{className:"text-[var(--text-primary)]",children:[L.num_workers,"× ",a.jsx("span",{className:"font-mono text-[10px]",children:L.worker_node_type})]})]})]}),fx(L).map((Se,Qe)=>a.jsxs("div",{className:"min-w-0",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:Se.label}),a.jsx("p",{className:"text-[var(--text-primary)] break-words",children:Se.value})]},Qe)),jt&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),a.jsx("p",{className:"text-[var(--text-primary)]",children:jt})]})]}),a.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[a.jsxs("button",{onClick:Se=>{Se.stopPropagation(),Ol(L.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[a.jsx(cc,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"font-medium group-hover:underline",children:Ee.has(L.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Ee.has(L.line_item_id)?a.jsx(as,{className:"w-3 h-3"}):a.jsx(Jn,{className:"w-3 h-3"})]}),Ee.has(L.line_item_id)&&a.jsx("div",{className:"mt-2",children:(()=>{var $i;const Se=H.workload_type||"",Qe=H.serverless_enabled||Se==="DBSQL"&&(H.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Ge=H.runs_per_day&&H.avg_runtime_minutes&&!H.hours_per_month,js=H.runs_per_day||0,br=H.avg_runtime_minutes||30,Zr=H.days_per_month||30,te=H.hours_per_month||730,he=Ge?js*(br/60)*Zr:te,sn=(fe.dbuPrice||0).toFixed(2);if(Se==="VECTOR_SEARCH"){const zt=H.vector_capacity_millions||1,Mn=H.vector_search_mode||"standard",cr=Mn==="storage_optimized"?64:2,Ye=Math.ceil(zt/cr),Rt=Mn==="storage_optimized"?18.29:4,xt=H.vector_search_storage_gb||0,Jt=Ye*20,on=Math.max(0,xt-Jt),Wt=on*.023;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:["⌈",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M vectors"]})," ÷ ",cr,"⌉"]}),a.jsxs("span",{children:["= ",Ye," units ×"]}),a.jsxs("span",{children:[Rt," DBU/unit/hr ×"]}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs × $",sn]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(fe.dbuCost)})]}),xt>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[xt," GB"]}),a.jsx("span",{children:"−"}),a.jsxs("span",{children:[Jt," GB free"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ye," units × 20GB)"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[on," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"$0.023/GB"}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Wt)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),xt>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Wt)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(Se==="FMAPI_DATABRICKS"||Se==="FMAPI_PROPRIETARY"){const zt=H.fmapi_quantity||0,Mn=fe.monthlyDBUs/(zt||1);return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M tokens"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Mn.toFixed(2)," DBU/M"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",sn,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(Se==="LAKEBASE"){const zt=H.lakebase_cu||1,Mn=H.lakebase_ha_nodes||1,cr=H.lakebase_storage_gb||0,Ye=H.lakebase_pitr_gb||0,Rt=H.lakebase_snapshot_gb||0,xt=.023,Jt=cr*15*xt,on=Ye*8.7*xt,Wt=Rt*3.91*xt,On=Jt+on+Wt,In=On>0,Fn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},ui=(Fn[Q.cloud||"aws"]||Fn.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt," CU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ui," DBU/CU-hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Mn," nodes"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",sn,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(fe.dbuCost)})]}),cr>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[cr," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"15 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(cr*15)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",xt,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Jt)})]}),Ye>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ye," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"8.7 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Ye*8.7)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",xt,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(on)})]}),Rt>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rt," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"3.91 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Rt*3.91)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",xt,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Wt)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),In&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(On)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(Se==="MODEL_SERVING")return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:[(($i=fe.dbuPerHour)==null?void 0:$i.toFixed(2))||"0"," DBU/hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",sn,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]});const ci=H.num_workers||0,Vt=H.driver_node_type||"",_r=H.worker_node_type||"",ar=H.photon_enabled,Ns=fe.vmCost>0&&!Qe,Nn=Q.cloud||"aws",gn=Q.region||"",Ir=j.find(zt=>zt.id===Vt||zt.name===Vt),ts=j.find(zt=>zt.id===_r||zt.name===_r),Oe=R(Nn,Vt)||(Ir==null?void 0:Ir.dbu_rate)||0,gt=R(Nn,_r)||(ts==null?void 0:ts.dbu_rate)||0,Xt=gn&&Vt?S(Nn,gn,Vt,H.driver_pricing_tier||"on_demand",H.driver_payment_option||"no_upfront"):null,xn=gn&&_r?S(Nn,gn,_r,H.worker_pricing_tier||"spot",H.worker_payment_option||"NA"):null,lr=fe.dbuPerHour||0;return a.jsxs("div",{className:"space-y-1.5",children:[Ge&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[js," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[br,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zr," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[he.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Qe?a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[lr.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",ar?" + Photon":"",")"]})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"("}),a.jsx("span",{title:Vt,children:Oe.toFixed(2)}),a.jsx("span",{children:"+"}),a.jsx("span",{title:_r,children:gt.toFixed(2)}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:ci}),a.jsx("span",{children:")"}),ar&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[lr.toFixed(2)," DBU/hr"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(Ge?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",sn,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),Ns&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsx("span",{children:"("}),a.jsxs("span",{title:Vt,children:["$",(Xt==null?void 0:Xt.toFixed(4))||"0"]}),a.jsx("span",{children:"+"}),a.jsxs("span",{title:_r,children:["$",(xn==null?void 0:xn.toFixed(4))||"0"]}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:ci}),a.jsx("span",{children:")"}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(Ge?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe(fe.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),Ns&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-500",children:xe(fe.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})})()})]})]})]}),ze&&a.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:a.jsx(Hb,{onReset:()=>{W(Se=>{const Qe=new Set(Se);return Qe.delete(L.line_item_id),Qe})},children:a.jsx(tp,{estimateId:e,lineItem:L,onClose:()=>{W(Se=>{const Qe=new Set(Se);return Qe.delete(L.line_item_id),Qe}),se(Se=>{const Qe={...Se};return delete Qe[L.line_item_id],Qe})},onSave:()=>{se(Se=>{const Qe={...Se};return delete Qe[L.line_item_id],Qe})},onFormChange:Se=>{se(Qe=>({...Qe,[L.line_item_id]:Se}))},inline:!0})})})]})},L.line_item_id)}),Td?N?a.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),a.jsx("button",{onClick:()=>le(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),a.jsx(tp,{estimateId:e,lineItem:null,onClose:()=>le(!1),onSave:()=>{},inline:!0})]}):a.jsxs("button",{onClick:()=>le(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[a.jsx(Nu,{className:"w-5 h-5"}),"Add Workload"]}):a.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[a.jsx(ls,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),a.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",a.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",a.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):a.jsxs("div",{className:"card p-8 text-center",children:[Il?a.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),a.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",px().join(", ")]})]}),a.jsxs("button",{onClick:ix,disabled:pe||!Il,className:"btn btn-primary",children:[a.jsx(zs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!rt&&a.jsx("div",{className:"lg:col-span-1",children:a.jsxs("div",{className:"card p-5 sticky top-24",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("h3",{className:"flex items-center gap-2",children:[a.jsx(vm,{className:"w-5 h-5 text-lava-600"}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),ot&&!We&&a.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),a.jsxs("button",{onClick:()=>St(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[a.jsx(Jn,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),Td?ot&&!We?a.jsxs("div",{className:"space-y-3 py-4",children:[a.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?a.jsxs("div",{className:"space-y-4",children:[a.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[a.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),a.jsx("p",{className:ce("text-3xl font-bold text-lava-600",Ze&&"opacity-60"),children:xe(Qn.totalCost)}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[xe(Qn.totalCost*12),"/year"]})]}),a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[a.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[a.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),a.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:xe(Qn.totalDBUCost),children:Wb(Qn.totalDBUCost)})]}),a.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[a.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),a.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Ze?"Loading...":xe(Qn.totalVMCost),children:Ze?"...":Wb(Qn.totalVMCost)})]})]}),a.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[a.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[a.jsxs("span",{children:["Workloads (",r.length,")"]}),a.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),a.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const L=[...r].map(E=>({item:E,costs:Jr(E)})).sort((E,H)=>H.costs.totalCost-E.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return L.map(({item:E,costs:H},fe)=>{const ze=Qn.totalCost>0?H.totalCost/Qn.totalCost*100:0,jt=Z[fe%Z.length];return a.jsxs("button",{onClick:()=>Rd(E.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${E.workload_name}"`,children:[a.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[a.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:E.workload_name,children:E.workload_name}),a.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[a.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[ze.toFixed(0),"%"]}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:xe(H.totalCost),children:xe(H.totalCost)})]})]}),a.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx("div",{className:ce("h-full rounded-full transition-all",jt,"group-hover:brightness-110"),style:{width:`${Math.max(ze,2)}%`}})})]},E.line_item_id)})})()})]})]}):a.jsxs("div",{className:"text-center py-8",children:[a.jsx(vm,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):a.jsxs("div",{className:"text-center py-8",children:[a.jsx(ls,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),a.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),rt&&a.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[ht&&r.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>It(!1)}),a.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:a.jsxs("div",{className:"p-4",children:[a.jsxs("div",{className:"flex items-center justify-between mb-3",children:[a.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),a.jsx("button",{onClick:()=>It(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),a.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const L=[...r].map(E=>({item:E,costs:Jr(E)})).sort((E,H)=>H.costs.totalCost-E.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return L.map(({item:E,costs:H},fe)=>{const ze=Qn.totalCost>0?H.totalCost/Qn.totalCost*100:0,jt=Z[fe%Z.length];return a.jsxs("button",{onClick:()=>{It(!1),Rd(E.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[a.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[a.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:E.workload_name,children:E.workload_name}),a.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[a.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[ze.toFixed(0),"%"]}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:xe(H.totalCost)})]})]}),a.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx("div",{className:ce("h-full rounded-full",jt),style:{width:`${Math.max(ze,1)}%`}})})]},E.line_item_id)})})()}),a.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),a.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-14",children:[a.jsxs("button",{onClick:()=>St(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[a.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),a.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),a.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[a.jsxs("button",{onClick:()=>It(!ht),className:ce("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",ht?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[a.jsx(ty,{className:"w-4 h-4"}),a.jsx("span",{className:"font-semibold",children:r.length}),a.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),a.jsx(as,{className:ce("w-3 h-3 transition-transform",ht?"rotate-180":"")})]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),a.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[a.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),a.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:xe(Qn.totalDBUCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[a.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),a.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:xe(Qn.totalVMCost)})]})]}),a.jsx("div",{className:"flex items-center",children:a.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:a.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[xe(Qn.totalCost),a.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),_e.size>0&&a.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[a.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[_e.size," workload",_e.size!==1?"s":""," selected"]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),a.jsxs("button",{onClick:ax,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[a.jsx(Zt,{className:"w-4 h-4"}),"Delete"]}),a.jsxs("button",{onClick:lx,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[a.jsx(To,{className:"w-4 h-4"}),"Cancel"]})]}),ae&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(Zt,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',Q.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>be(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:VC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?a.jsxs(a.Fragment,{children:[a.jsx(qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(Zt,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ye&&Je&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(Zt,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',Je.workload_name,'"']}),"?"]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>{at(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:$C,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?a.jsxs(a.Fragment,{children:[a.jsx(qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(Zt,{className:"w-4 h-4"}),"Delete"]})})]})]})}),it&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(Zt,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",_e.size," Workload",_e.size!==1?"s":""]}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[a.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),a.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(L=>_e.has(L.line_item_id)).map(L=>a.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",L.workload_name]},L.line_item_id))})]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>mt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:HC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?a.jsxs(a.Fragment,{children:[a.jsx(qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(Zt,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),K&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:a.jsx(ls,{className:"w-5 h-5 text-amber-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),a.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),a.jsx("button",{onClick:KC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function u8(){const{id:e}=yw(),t=sd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),a.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),a.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const Xb={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},d8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function f8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:o,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:f,getFMAPIProprietaryRate:p,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:_}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:Xb[n]||Xb.aws,y=e.num_workers||0;let b=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?b=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(b=e.hours_per_month));let S="";const R=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?S="JOBS_COMPUTE_(PHOTON)":S="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?S="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?S="ALL_PURPOSE_COMPUTE_(PHOTON)":S="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":(S=`DLT_${R}_COMPUTE`,e.photon_enabled&&(S+="_(PHOTON)"));break;case"DBSQL":const ae=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ae==="SERVERLESS"?S="SERVERLESS_SQL_COMPUTE":ae==="PRO"?S="SQL_PRO_COMPUTE":S="SQL_COMPUTE";break;case"VECTOR_SEARCH":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const be=(e.fmapi_provider||"openai").toLowerCase();S=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[be]||be.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":S="DATABASE_SERVERLESS_COMPUTE";break;default:S="JOBS_COMPUTE"}let k=null;if(_){const ae=_(S);ae!==null&&ae>0&&(k=ae)}k===null&&(k=x[S]||.2),console.log(`[LiveEstimate] productType=${S}, dbuPrice=${k}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,z=0,j,$,X,re=.5,oe=.5;if(g&&e.driver_node_type){const ae=g(e.driver_node_type);ae!==null&&ae>0&&(re=ae)}if(re===.5){const ae=o.find(be=>be.id===e.driver_node_type||be.name===e.driver_node_type);ae!=null&&ae.dbu_rate&&(re=ae.dbu_rate)}if(g&&e.worker_node_type){const ae=g(e.worker_node_type);ae!==null&&ae>0&&(oe=ae)}if(oe===.5){const ae=o.find(be=>be.id===e.worker_node_type||be.name===e.worker_node_type);ae!=null&&ae.dbu_rate&&(oe=ae.dbu_rate)}const ve=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ae=S.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ae="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ae="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ae=`DLT_${R}_COMPUTE`)),v){const ye=v(ae);if(ye!==null&&ye>1)return ye}const be=c.find(ye=>{var at;return ye.sku_type===ae||ye.sku_type===S||((at=ye.sku_type)==null?void 0:at.includes(e.workload_type||""))});return(be==null?void 0:be.multiplier)||2})(),ie=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+oe*y)*ve*ie;else{T=(re+oe*y)*ve;const ue=e.driver_pricing_tier||"on_demand",bt=e.driver_payment_option||"NA",Et=e.worker_pricing_tier||"spot",_e=e.worker_payment_option||"NA",et=d(n,r,e.driver_node_type||"",ue,bt),Ct=d(n,r,e.worker_node_type||"",Et,_e);z=(et+Ct*y)*b}D=T*b;break;case"DLT":if(e.serverless_enabled)T=(re+oe*y)*ve*ie;else{T=(re+oe*y)*ve;const ue=e.driver_pricing_tier||"on_demand",bt=e.driver_payment_option||"NA",Et=e.worker_pricing_tier||"spot",_e=e.worker_payment_option||"NA",et=d(n,r,e.driver_node_type||"",ue,bt),Ct=d(n,r,e.worker_node_type||"",Et,_e);z=(et+Ct*y)*b}D=T*b;break;case"DBSQL":const ae=l.find(ue=>ue.id===e.dbsql_warehouse_size||ue.name===e.dbsql_warehouse_size),be=(ae==null?void 0:ae.dbu_per_hour)||d8[e.dbsql_warehouse_size||"Small"]||12,ye=e.dbsql_num_clusters||1;T=be*ye,D=T*b;const at=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(at!=="SERVERLESS"){const ue=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",bt=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Et=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",_e=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",et=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,at,e.dbsql_warehouse_size||"Small");if(et){const Ct=d(n,r,et.driver_instance_type,ue,bt),Or=d(n,r,et.worker_instance_type,Et,_e);z=(et.driver_count*Ct+et.worker_count*Or)*ye*b}else if(e.driver_node_type){const Ct=d(n,r,e.driver_node_type,ue,bt),Or=e.worker_node_type?d(n,r,e.worker_node_type,Et,_e):0,Cs=e.num_workers||0;z=(Ct+Or*Cs)*ye*b}}break;case"VECTOR_SEARCH":const Je=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,it=h(Je),mt=(it==null?void 0:it.input_divisor)||(Je==="storage_optimized"?64e6:2e6),lt=(it==null?void 0:it.dbu_per_hour)||(Je==="storage_optimized"?18.29:4),ft=I*1e6,K=Math.ceil(ft/mt);j=K,T=K*lt,D=T*b;const P=e.vector_search_storage_gb||0,N=K*20,le=Math.max(0,P-N),M=.023,W=le*M;P>0&&($=W,X={totalStorageGB:P,freeStorageGB:N,billableStorageGB:le,pricePerGB:M});break;case"MODEL_SERVING":const Ee=e.model_serving_gpu_type||"cpu",Ne=u.find(ue=>ue.id===Ee||ue.name===Ee);T=(Ne==null?void 0:Ne.dbu_per_hour)||2,D=T*b;break;case"LAKEBASE":const F=e.lakebase_cu||1,G=e.lakebase_ha_nodes||1,se={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Fe=(se[n]||se.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=F*Fe*G,D=T*b;const ot=Math.min(e.lakebase_storage_gb||0,8192),nt=15,We=ot*nt,ct=.023,Ze=We*ct,Mt=e.lakebase_pitr_gb||0,J=Mt*8.7*ct,Le=e.lakebase_snapshot_gb||0,Q=Le*3.91*ct;(ot>0||Mt>0||Le>0)&&($=Ze+J+Q,X={totalStorageGB:ot,billableStorageGB:ot,dsuPerGB:nt,totalDSU:We,pricePerDSU:ct});break;case"FMAPI_DATABRICKS":const ut=e.fmapi_quantity||0,Ke=e.fmapi_rate_type||"input_token",Ot=["provisioned_scaling","provisioned_entry"].includes(Ke),rt=e.fmapi_model?f(e.fmapi_model,Ke):null;if(Ot){const ue=(rt==null?void 0:rt.dbu_per_hour)||(Ke==="provisioned_scaling"?200:50);D=ut*ue}else{const ue=(rt==null?void 0:rt.dbu_per_1M_tokens)||(Ke==="output_token"?3:1);D=ut*ue}break;case"FMAPI_PROPRIETARY":const St=e.fmapi_quantity||0,ht=e.fmapi_rate_type||"input_token",It=ht==="provisioned_scaling",Ve=e.fmapi_endpoint_type||"global",Be=e.fmapi_context_length||"long",Ae=e.fmapi_provider&&e.fmapi_model?p(e.fmapi_provider,e.fmapi_model,ht,Ve,Be):null;if(It){const ue=(Ae==null?void 0:Ae.dbu_per_hour)||150;D=St*ue}else{let ue=Ae==null?void 0:Ae.dbu_per_1M_tokens;if(!ue)switch(ht){case"output_token":ue=321.43;break;case"cache_read":ue=8.57;break;case"cache_write":ue=85.71;break;default:ue=21.43}D=St*ue}break;default:D=0}const B=D*k,q=$!==void 0&&!isNaN($)?$:0,C=B+z+q,de=isNaN(B)?0:B,pe=isNaN(z)?0:z,A=isNaN(C)?de:C,we=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(k)?.15:k;return{monthlyDBUs:we,dbuCost:de,vmCost:pe,totalCost:A,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:q>0?q:void 0,storageDetails:X}}const fl={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Bu(e,t,n){var i,o;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=fl[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((o=fl[t.toLowerCase()])==null?void 0:o.vmTypes)||[]:Object.keys(s).sort()}function Wm(e,t){var n;return((n=fl[t.toLowerCase()])==null?void 0:n.regions)||[]}function Gm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const p8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],m8=["bge-large","gte"],h8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Jb=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],g8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},x8=["cpu","gpu_small_t4"],v8=["standard","storage_optimized"];function us(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function Zb(e,t,n,r,s,i){const o=[];let l=r;const c=i!=null&&i.isLoaded?nE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))o.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),o.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])o.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))o.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});o.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])o.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});o.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of us(Jb,3))o.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of us(Jb,2))o.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});o.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of v8)o.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=g8[s.toLowerCase()]||x8;for(const f of d)o.push({id:`${++l}`,name:`Model Serving ${f}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:f,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of us(p8,3))for(const f of["input_token","output_token"])o.push({id:`${++l}`,name:`FMAPI DB ${d} ${f}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:f,fmapi_quantity:10}});for(const d of us(m8,1))o.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of us(h8,4))for(const f of d.contexts.slice(0,2))for(const p of["input_token","output_token"])o.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${f} ${p}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:f,fmapi_rate_type:p,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])o.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return o}function y8(e,t){var s,i,o;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Bu(t,l),f=d.length>0?us(d,e.vmSamplesPerCloud):["c5.xlarge"];return Zb({cloud:l,region:c,tier:u},f,e,r,l,t)}for(const l of e.clouds){const c=Wm(t,l),u=us(c.length>0?c:((s=fl[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=us(Gm(l),e.tiersPerCloud);for(const f of u){const p=Bu(t,l),h=p.length>0?us(p,e.vmSamplesPerCloud):((o=(i=fl[l])==null?void 0:i.vmTypes)==null?void 0:o.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=Zb({cloud:l,region:f,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function b8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function _8(e){var o,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((o=n.fmapi_rate_type)==null?void 0:o.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function w8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,o=t.totalCost||0,l=Math.abs(i-o),c=o!==0?l/o*100:i!==0?100:0;for(const u of s){const d=e[u]||0,f=t[u]||0,p=Math.abs(d-f),h=f!==0?p/f*100:d!==0?100:0;h>n&&p>.01&&r.push({field:u,local:d,api:f,diff:p,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function k8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[o,l]=m.useState(!1),[c,u]=m.useState(null),[d,f]=m.useState(new Set),[p,h]=m.useState("all"),[g,v]=m.useState(1),[_,x]=m.useState(!1),[y,b]=m.useState(!1),[S,R]=m.useState({current:0,total:0}),[k,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),z=m.useRef(!1),[j,$]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:oe,photonMultipliers:me,modelServingGPUTypes:ve,vectorSearchModes:ie,pricingBundle:B,isPricingBundleLoaded:q,loadPricingBundle:C,getVMPrice:de,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:A,getFMAPIProprietaryRate:we,getVectorSearchRate:De}=gs();m.useEffect(()=>{C()},[C]);const w=m.useMemo(()=>y8(j,B),[j,B]),Y=m.useMemo(()=>p==="all"?w:w.filter(M=>M.category===p),[w,p]),ae=m.useMemo(()=>{const M=new Set(w.map(W=>W.category));return["all",...Array.from(M)]},[w]),be=m.useCallback((M,W,Ee)=>{const Ne=q&&B.modelServingRates?Object.entries(B.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,F])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:F.dbu_rate}}):ve;return{cloud:M,region:W,tier:Ee,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:oe,photonMultipliers:me,modelServingGPUTypes:Ne,vectorSearchModes:ie,getVMPrice:de,getFMAPIDatabricksRate:(O,F)=>{if(q&&B.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${F}`,se=B.fmapiDatabricksRates[G];if(se)return{dbu_per_1M_tokens:se.is_hourly?void 0:se.dbu_rate,dbu_per_hour:se.is_hourly?se.dbu_rate:void 0}}return A(O,F)},getFMAPIProprietaryRate:(O,F,G,se,Pe)=>{if(q&&B.fmapiProprietaryRates){const Fe=se||"global",ot=Pe||"all",nt=`${M.toLowerCase()}:${O.toLowerCase()}:${F.toLowerCase()}:${Fe}:${ot}:${G}`,We=B.fmapiProprietaryRates[nt];if(We)return{dbu_per_1M_tokens:We.is_hourly?void 0:We.dbu_rate,dbu_per_hour:We.is_hourly?We.dbu_rate:void 0}}return we(O,F,G)},getVectorSearchRate:O=>{if(q&&B.vectorSearchRates){const F=`${M.toLowerCase()}:${O}`,G=B.vectorSearchRates[F];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>q?jm(B,M,O):null,getPhotonMultiplier:O=>q?tE(B,M,O):null,getDBUPrice:O=>q?Tg(B,M,W,Ee,O):null,getDBSQLWarehouseConfig:(O,F)=>q?al(B,M,O,F):null}},[X,re,oe,me,ve,ie,q,B,de,A,we,De]),ye=async M=>{var Q,ut,Ke,Ot,rt,St,ht,It,Ve;const{environment:W,workloadType:Ee,config:Ne}=M,O=be(W.cloud,W.region,W.tier),F={...Ne,workload_type:Ee},G=[];if(Ee==="DBSQL"&&Ne.dbsql_warehouse_type!=="SERVERLESS"){const Be=al(B,W.cloud,Ne.dbsql_warehouse_type||"PRO",Ne.dbsql_warehouse_size||"Small");if(Be){const Ae=Ne.dbsql_driver_pricing_tier||"on_demand",ue=Ne.dbsql_driver_payment_option||"NA";G.push(pe(W.cloud,W.region,Be.driver_instance_type,Ae,ue));const bt=Ne.dbsql_worker_pricing_tier||"on_demand",Et=Ne.dbsql_worker_payment_option||"NA";G.push(pe(W.cloud,W.region,Be.worker_instance_type,bt,Et))}}else!Ne.serverless_enabled&&Ne.driver_node_type&&(G.push(pe(W.cloud,W.region,Ne.driver_node_type,Ne.driver_pricing_tier||"on_demand",Ne.driver_payment_option||"NA")),Ne.worker_node_type&&G.push(pe(W.cloud,W.region,Ne.worker_node_type,Ne.worker_pricing_tier||"spot",Ne.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const se=performance.now(),Pe=f8(F,O),Fe=performance.now()-se,ot=performance.now();let nt=null,We,ct;const Ze=b8(Ee,Ne),Mt=_8(M);try{const Be=await fetch(Ze,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Mt)});if(Be.ok){const Ae=await Be.json();ct=Ae;const ue=Ae.data||Ae,bt=((Q=ue.dbu_calculation)==null?void 0:Q.dbu_per_month)??ue.dbu_per_month??(((ut=ue.dbu_calculation)==null?void 0:ut.dbu_per_hour)??ue.dbu_per_hour??0)*(Ne.hours_per_month||730),Et=((Ke=ue.dbu_calculation)==null?void 0:Ke.dbu_cost_per_month)??((rt=(Ot=ue.total_cost)==null?void 0:Ot.breakdown)==null?void 0:rt.dbu_cost)??ue.dbu_cost_per_month??ue.dbu_cost??0,_e=((St=ue.vm_costs)==null?void 0:St.vm_cost_per_month)??((It=(ht=ue.total_cost)==null?void 0:ht.breakdown)==null?void 0:It.vm_cost)??ue.vm_cost_per_month??ue.vm_cost??0;let et=0;typeof ue.total_cost=="object"&&ue.total_cost!==null?et=ue.total_cost.cost_per_month??Et+_e:typeof ue.total_cost=="number"?et=ue.total_cost:et=ue.total_cost_per_month??Et+_e,nt={monthlyDBUs:bt,dbuCost:Et,vmCost:_e,totalCost:et},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Ae,parsed:nt})}else{const Ae=await Be.text();try{const ue=JSON.parse(Ae);We=`HTTP ${Be.status}: ${((Ve=ue.detail)==null?void 0:Ve.message)||ue.detail||ue.message||Ae}`}catch{We=`HTTP ${Be.status}: ${Ae}`}}}catch(Be){We=Be instanceof Error?Be.message:"Unknown error"}const U=performance.now()-ot,{discrepancies:J,totalCostDiffPercent:Le}=w8(Pe,nt,g),Ue=Le<=g&&!We;return{testCase:M,localResult:Pe,apiResult:nt,apiError:We,apiRequestBody:Mt,apiRawResponse:ct,localTimeMs:Fe,apiTimeMs:U,matches:Ue,totalCostDiffPercent:Le,discrepancies:J}},at=()=>{D.current=!0,i(!0)},Je=()=>{D.current=!1,i(!1)},I=()=>{z.current=!0,l(!0),D.current=!1,i(!1)},it=async()=>{for(;D.current&&!z.current;)await new Promise(M=>setTimeout(M,100))},mt=async()=>{r(!0),i(!1),l(!1),D.current=!1,z.current=!1,t([]),R({current:0,total:Y.length});for(let M=0;M[...Ne,Ee])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:W,tier:Ee,workloadType:Ne,serverless:O,photon:F,driverNode:G,workerNode:se,numWorkers:Pe,runsPerDay:Fe,avgRuntime:ot,daysPerMonth:nt,hoursPerMonth:We}=k,ct={id:"custom-single",name:`Custom ${Ne} Test`,category:Ne,workloadType:Ne,environment:{cloud:M,region:W,tier:Ee},config:{serverless_enabled:O,photon_enabled:F,driver_node_type:G,worker_node_type:se,num_workers:Pe,runs_per_day:Fe,avg_runtime_minutes:ot,days_per_month:nt,hours_per_month:We,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Ze=await ye(ct);t([Ze]),u(null),r(!1)},ft=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,W=e.filter(G=>!G.matches).length,Ee=e.filter(G=>G.apiError).length,Ne=e.length>0?e.reduce((G,se)=>G+se.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,se)=>G+se.apiTimeMs,0)/e.length:0,F={};return e.forEach(G=>{const se=G.testCase.category;F[se]||(F[se]={passed:0,failed:0}),G.matches?F[se].passed++:F[se].failed++}),{passed:M,failed:W,apiErrors:Ee,avgLocalTime:Ne,avgApiTime:O,byCategory:F}},[e]),K=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],W=e.map(G=>{var se;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((se=G.apiResult)==null?void 0:se.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Ee=[M.join(","),...W.map(G=>G.map(se=>`"${se}"`).join(","))].join(` +`),Ne=new Blob([Ee],{type:"text/csv"}),O=URL.createObjectURL(Ne),F=document.createElement("a");F.href=O,F.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,F.click()},P=M=>{const W=new Set(d);W.has(M)?W.delete(M):W.add(M),f(W)},N=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),le=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return a.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:a.jsx(iD,{className:"w-6 h-6 text-purple-500"})}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("button",{onClick:()=>b(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[a.jsx(Eu,{className:"w-4 h-4"}),"Single Test"]}),a.jsxs("button",{onClick:()=>x(!_),className:`btn ${_?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[a.jsx(QA,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&a.jsxs("button",{onClick:K,className:"btn btn-secondary flex items-center gap-2",children:[a.jsx(PD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&a.jsxs("button",{onClick:at,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[a.jsx(YD,{className:"w-4 h-4"}),"Pause"]}),n&&s&&a.jsxs("button",{onClick:Je,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[a.jsx(kf,{className:"w-4 h-4"}),"Resume"]}),n&&a.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[a.jsx(uS,{className:"w-4 h-4"}),"Stop"]}),!n&&a.jsxs("button",{onClick:mt,className:"btn btn-primary flex items-center gap-2",children:[a.jsx(kf,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&a.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Eu,{className:"w-5 h-5 text-lava-600"}),a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),a.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[a.jsx(kf,{className:"w-4 h-4"}),"Run Single Test"]})]}),a.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),a.jsxs("select",{value:k.cloud,onChange:M=>T({...k,cloud:M.target.value}),className:"w-full text-sm",children:[a.jsx("option",{value:"aws",children:"AWS"}),a.jsx("option",{value:"azure",children:"Azure"}),a.jsx("option",{value:"gcp",children:"GCP"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),a.jsx("input",{type:"text",value:k.region,onChange:M=>T({...k,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),a.jsx("datalist",{id:"single-test-regions",children:Wm(B,k.cloud).slice(0,20).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),a.jsx("select",{value:k.tier,onChange:M=>T({...k,tier:M.target.value}),className:"w-full text-sm",children:Gm(k.cloud).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),a.jsxs("select",{value:k.workloadType,onChange:M=>T({...k,workloadType:M.target.value}),className:"w-full text-sm",children:[a.jsx("option",{value:"JOBS",children:"Jobs"}),a.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),a.jsx("option",{value:"DLT",children:"DLT"}),a.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),a.jsxs("div",{className:"flex items-end gap-4",children:[a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:k.serverless,onChange:M=>T({...k,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:k.photon,onChange:M=>T({...k,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),a.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),a.jsx("input",{type:"text",value:k.driverNode,onChange:M=>T({...k,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),a.jsx("datalist",{id:"single-test-driver-vms",children:Bu(B,k.cloud,k.region).slice(0,50).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),a.jsx("input",{type:"text",value:k.workerNode,onChange:M=>T({...k,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),a.jsx("datalist",{id:"single-test-worker-vms",children:Bu(B,k.cloud,k.region).slice(0,50).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),a.jsx("input",{type:"number",value:k.numWorkers,onChange:M=>T({...k,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),a.jsx("input",{type:"number",value:k.runsPerDay,onChange:M=>T({...k,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),a.jsx("input",{type:"number",value:k.avgRuntime,onChange:M=>T({...k,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),a.jsx("input",{type:"number",value:k.daysPerMonth,onChange:M=>T({...k,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),_&&a.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(kD,{className:"w-5 h-5 text-[var(--text-muted)]"}),a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),a.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[a.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[a.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>$({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),a.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&a.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),a.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>$({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[a.jsx("option",{value:"aws",children:"AWS"}),a.jsx("option",{value:"azure",children:"Azure"}),a.jsx("option",{value:"gcp",children:"GCP"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),a.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>$({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),a.jsx("datalist",{id:"available-regions",children:Wm(B,j.manualEnvironment.cloud).slice(0,20).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),a.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>$({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Gm(j.manualEnvironment.cloud).map(M=>a.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&a.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),a.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[a.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),a.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:W=>{W.target.checked?$({...j,clouds:[...j.clouds,M]}):$({...j,clouds:j.clouds.filter(Ee=>Ee!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),a.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>$({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),a.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>$({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),a.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>$({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),a.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:W})=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j[M],onChange:Ee=>$({...j,[M]:Ee.target.checked}),className:"rounded"}),W]},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),a.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:W})=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j[M],onChange:Ee=>$({...j,[M]:Ee.target.checked}),className:"rounded"}),W]},M))})]})]}),a.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[a.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[a.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),a.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),a.jsx("select",{value:p,onChange:M=>h(M.target.value),className:"text-sm",children:ae.map(M=>a.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),a.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[a.jsx("div",{className:"flex items-center gap-4",children:a.jsxs("div",{className:`flex items-center gap-2 ${q?"text-green-500":"text-yellow-500"}`,children:[q?a.jsx(Cu,{className:"w-5 h-5"}):a.jsx(ls,{className:"w-5 h-5"}),a.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),a.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&a.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-green-500",children:ft.passed}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-red-500",children:ft.failed}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:ft.apiErrors}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[ft.avgLocalTime.toFixed(1),"ms"]}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[ft.avgApiTime.toFixed(0),"ms"]}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(ft.byCategory).length>0&&a.jsxs("div",{className:"card p-4 mb-6",children:[a.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),a.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(ft.byCategory).map(([M,{passed:W,failed:Ee}])=>a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[a.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),a.jsxs("span",{className:"text-xs text-green-500",children:[W," ✓"]}),Ee>0&&a.jsxs("span",{className:"text-xs text-red-500",children:[Ee," ✗"]})]},M))})]}),n&&a.jsxs("div",{className:"mb-6",children:[a.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx(Ut.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${S.current/S.total*100}%`}})}),a.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[S.current," / ",S.total," tests completed",s&&a.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),o&&a.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),a.jsx("div",{className:"card overflow-hidden",children:a.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:a.jsxs("tr",{children:[a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),a.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),a.jsx("tbody",{children:Y.map(M=>{const W=e.find(O=>O.testCase.id===M.id),Ee=d.has(M.id),Ne=c===M.id;return a.jsxs(a.Fragment,{children:[a.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${W&&!W.matches?"bg-red-500/5":""} + ${Ne?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>W&&P(M.id),children:[a.jsx("td",{className:"p-3",children:a.jsxs("div",{className:"flex items-center gap-2",children:[W&&(Ee?a.jsx(Jn,{className:"w-4 h-4 text-[var(--text-muted)]"}):a.jsx(aS,{className:"w-4 h-4 text-[var(--text-muted)]"})),a.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),a.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),a.jsx("td",{className:"p-3",children:a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),a.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),a.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),a.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W?N(W.localResult.totalCost):"-"}),a.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W!=null&&W.apiResult?N(W.apiResult.totalCost):W!=null&&W.apiError?"Error":"-"}),a.jsx("td",{className:"p-3 text-right font-mono",children:W?a.jsxs("span",{className:W.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[W.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),a.jsx("td",{className:"p-3 text-center",children:Ne?a.jsx(qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):W?W.matches?a.jsx(Cu,{className:"w-5 h-5 text-green-500 mx-auto"}):a.jsx(w3,{className:"w-5 h-5 text-red-500 mx-auto"}):a.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),W&&Ee&&a.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:a.jsxs("td",{colSpan:7,className:"p-4",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),a.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:le(W.localResult.monthlyDBUs)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:N(W.localResult.dbuCost)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:N(W.localResult.vmCost)})]}),a.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-lava-600 font-semibold",children:N(W.localResult.totalCost)})]}),W.localResult.dbuPrice&&a.jsxs("div",{className:"flex justify-between text-[10px]",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),a.jsxs("span",{className:"text-pink-500",children:["$",W.localResult.dbuPrice.toFixed(2)]})]})]})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),W.apiError?a.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:a.jsx("p",{className:"text-red-500 text-xs break-all",children:W.apiError})}):W.apiResult?a.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:le(W.apiResult.monthlyDBUs)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:N(W.apiResult.dbuCost)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:N(W.apiResult.vmCost)})]}),a.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:N(W.apiResult.totalCost)})]})]}):null]})]}),W.discrepancies.length>0&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),a.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:a.jsxs("table",{className:"w-full text-xs",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"text-red-400",children:[a.jsx("th",{className:"text-left pb-1",children:"Field"}),a.jsx("th",{className:"text-right pb-1",children:"Local"}),a.jsx("th",{className:"text-right pb-1",children:"API"}),a.jsx("th",{className:"text-right pb-1",children:"Diff"}),a.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),a.jsx("tbody",{className:"font-mono",children:W.discrepancies.map((O,F)=>a.jsxs("tr",{className:"text-red-300",children:[a.jsx("td",{className:"py-0.5",children:O.field}),a.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),a.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),a.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),a.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},F))})]})})]}),W.apiRawResponse&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),a.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:a.jsx("code",{className:"text-green-300",children:JSON.stringify(W.apiRawResponse,null,2)})})]}),W.apiRequestBody&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),a.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:a.jsx("code",{className:"text-blue-300",children:JSON.stringify(W.apiRequestBody,null,2)})})]}),a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),a.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:W.testCase.environment,config:W.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function S8(){return a.jsx(kN,{children:a.jsxs(vi,{path:"/",element:a.jsx(yV,{}),children:[a.jsx(vi,{index:!0,element:a.jsx(r8,{})}),a.jsx(vi,{path:"calculator",element:a.jsx(Yb,{})}),a.jsx(vi,{path:"calculator/:id",element:a.jsx(Yb,{})}),a.jsx(vi,{path:"estimate/:id",element:a.jsx(u8,{})}),a.jsx(vi,{path:"test-calculations",element:a.jsx(k8,{})})]})})}function E8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}E8();np.createRoot(document.getElementById("root")).render(a.jsx(un.StrictMode,{children:a.jsxs(RN,{children:[a.jsx(S8,{}),a.jsx(_P,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-BDkW3qLj.js b/lakemeter/backend/static/assets/index-BDkW3qLj.js new file mode 100644 index 00000000..9ebbf671 --- /dev/null +++ b/lakemeter/backend/static/assets/index-BDkW3qLj.js @@ -0,0 +1,354 @@ +function l2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var ms=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var rb={exports:{}},Gu={},sb={exports:{}},qe={};/** + * @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 hl=Symbol.for("react.element"),c2=Symbol.for("react.portal"),u2=Symbol.for("react.fragment"),d2=Symbol.for("react.strict_mode"),p2=Symbol.for("react.profiler"),f2=Symbol.for("react.provider"),m2=Symbol.for("react.context"),h2=Symbol.for("react.forward_ref"),g2=Symbol.for("react.suspense"),x2=Symbol.for("react.memo"),v2=Symbol.for("react.lazy"),wx=Symbol.iterator;function y2(e){return e===null||typeof e!="object"?null:(e=wx&&e[wx]||e["@@iterator"],typeof e=="function"?e:null)}var ib={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ab=Object.assign,ob={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||ib}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function lb(){}lb.prototype=Ia.prototype;function Xm(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||ib}var Jm=Xm.prototype=new lb;Jm.constructor=Xm;ab(Jm,Ia.prototype);Jm.isPureReactComponent=!0;var kx=Array.isArray,cb=Object.prototype.hasOwnProperty,Zm={current:null},ub={key:!0,ref:!0,__self:!0,__source:!0};function db(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)cb.call(t,r)&&!ub.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=B[ue];if(0>>1;ues(Le,j))ws(W,Le)?(B[ue]=W,B[w]=j,ue=w):(B[ue]=Le,B[be]=j,ue=be);else if(ws(W,j))B[ue]=W,B[w]=j,ue=w;else break e}}return q}function s(B,q){var j=B.sortIndex-q.sortIndex;return j!==0?j:B.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=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){for(var q=n(u);q!==null;){if(q.callback===null)r(u);else if(q.startTime<=B)r(u),q.sortIndex=q.expirationTime,t(c,q);else break;q=n(u)}}function S(B){if(v=!1,_(B),!g)if(n(c)!==null)g=!0,xe(R);else{var q=n(u);q!==null&&ae(S,q.startTime-B)}}function R(B,q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var j=f;try{for(_(q),p=n(c);p!==null&&(!(p.expirationTime>q)||B&&!H());){var ue=p.callback;if(typeof ue=="function"){p.callback=null,f=p.priorityLevel;var pe=ue(p.expirationTime<=q);q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var be=n(u);be!==null&&ae(S,be.startTime-q),L=!1}return L}finally{p=null,f=j,h=!1}}var E=!1,A=null,D=-1,z=5,N=-1;function H(){return!(e.unstable_now()-NB||125ue?(B.sortIndex=j,t(u,B),n(c)===null&&B===n(u)&&(v?(x(D),D=-1):v=!0,ae(S,j-ue))):(B.sortIndex=pe,t(c,B),g||h||(g=!0,xe(R))),B},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(B){var q=f;return function(){var j=f;f=q;try{return B.apply(this,arguments)}finally{f=j}}}})(gb);hb.exports=gb;var A2=hb.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 T2=m,lr=A2;function ee(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"),af=Object.prototype.hasOwnProperty,L2=/^[: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]*$/,Ex={},Cx={};function D2(e){return af.call(Cx,e)?!0:af.call(Ex,e)?!1:L2.test(e)?Cx[e]=!0:(Ex[e]=!0,!1)}function M2(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 O2(e,t,n,r){if(t===null||typeof t>"u"||M2(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 zn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var vn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){vn[e]=new zn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];vn[t]=new zn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){vn[e]=new zn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){vn[e]=new zn(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){vn[e]=new zn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){vn[e]=new zn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){vn[e]=new zn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){vn[e]=new zn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){vn[e]=new zn(e,5,!1,e.toLowerCase(),null,!1,!1)});var th=/[\-:]([a-z])/g;function nh(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(th,nh);vn[t]=new zn(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(th,nh);vn[t]=new zn(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(th,nh);vn[t]=new zn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){vn[e]=new zn(e,1,!1,e.toLowerCase(),null,!1,!1)});vn.xlinkHref=new zn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){vn[e]=new zn(e,1,!1,e.toLowerCase(),null,!0,!0)});function rh(e,t,n,r){var s=vn.hasOwnProperty(t)?vn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function I2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Ud(e.type,!1),e;case 11:return e=Ud(e.type.render,!1),e;case 1:return e=Ud(e.type,!0),e;default:return""}}function uf(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 Xi:return"Fragment";case Yi:return"Portal";case of:return"Profiler";case sh:return"StrictMode";case lf:return"Suspense";case cf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case yb:return(e.displayName||"Context")+".Consumer";case vb:return(e._context.displayName||"Context")+".Provider";case ih:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ah:return t=e.displayName||null,t!==null?t:uf(e.type)||"Memo";case Is:t=e._payload,e=e._init;try{return uf(e(t))}catch{}}return null}function F2(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 uf(t);case 8:return t===sh?"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 bb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function B2(e){var t=bb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ql(e){e._valueTracker||(e._valueTracker=B2(e))}function wb(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=bb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Xc(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 df(e,t){var n=t.checked;return Mt({},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 kb(e,t){t=t.checked,t!=null&&rh(e,"checked",t,!1)}function pf(e,t){kb(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")?ff(e,t.type,n):t.hasOwnProperty("defaultValue")&&ff(e,t.type,ni(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Px(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 ff(e,t,n){(t!=="number"||Xc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Yl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},U2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){U2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function jb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Nb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=jb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var V2=Mt({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 gf(e,t){if(t){if(V2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function xf(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 vf=null;function oh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var yf=null,ha=null,ga=null;function Tx(e){if(e=vl(e)){if(typeof yf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Ju(t),yf(e.stateNode,e.type,t))}}function Pb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Rb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Tx(e),t)for(e=0;e>>=0,e===0?32:31-(J2(e)/Z2|0)|0}var Xl=64,Jl=4194304;function ho(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 tu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Dr(t),e[t]=n}function rj(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=wo),Vx=" ",zx=!1;function Yb(e,t){switch(e){case"keyup":return Aj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Lj(e,t){switch(e){case"compositionend":return Xb(t);case"keypress":return t.which!==32?null:(zx=!0,Vx);case"textInput":return e=t.data,e===Vx&&zx?null:e;default:return null}}function Dj(e,t){if(Ji)return e==="compositionend"||!hh&&Yb(e,t)?(e=Kb(),Rc=ph=$s=null,Ji=!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=Wx(n)}}function t1(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?t1(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function n1(){for(var e=window,t=Xc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Xc(e.document)}return t}function gh(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 $j(e){var t=n1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&t1(n.ownerDocument.documentElement,n)){if(r!==null&&gh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=Gx(n,i);var a=Gx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Ef=null,So=null,Cf=!1;function Kx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cf||Zi==null||Zi!==Xc(r)||(r=Zi,"selectionStart"in r&&gh(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}),So&&Wo(So,r)||(So=r,r=su(Ef,"onSelect"),0na||(e.current=Tf[na],Tf[na]=null,na--)}function _t(e,t){na++,Tf[na]=e.current,e.current=t}var ri={},Pn=oi(ri),Wn=oi(!1),Li=ri;function ka(e,t){var n=e.type.contextTypes;if(!n)return ri;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Gn(e){return e=e.childContextTypes,e!=null}function au(){wt(Wn),wt(Pn)}function t0(e,t,n){if(Pn.current!==ri)throw Error(ee(168));_t(Pn,t),_t(Wn,n)}function d1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,F2(e)||"Unknown",s));return Mt({},n,r)}function ou(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ri,Li=Pn.current,_t(Pn,e),_t(Wn,Wn.current),!0}function n0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=d1(e,t,Li),r.__reactInternalMemoizedMergedChildContext=e,wt(Wn),wt(Pn),_t(Pn,e)):wt(Wn),_t(Wn,n)}var ds=null,Zu=!1,ep=!1;function p1(e){ds===null?ds=[e]:ds.push(e)}function t5(e){Zu=!0,p1(e)}function li(){if(!ep&&ds!==null){ep=!0;var e=0,t=ut;try{var n=ds;for(ut=1;e>=a,s-=a,gs=1<<32-Dr(t)+s|n<D?(z=A,A=null):z=A.sibling;var N=f(x,A,_[D],S);if(N===null){A===null&&(A=z);break}e&&A&&N.alternate===null&&t(x,A),y=i(N,y,D),E===null?R=N:E.sibling=N,E=N,A=z}if(D===_.length)return n(x,A),Nt&&vi(x,D),R;if(A===null){for(;D<_.length;D++)A=p(x,_[D],S),A!==null&&(y=i(A,y,D),E===null?R=A:E.sibling=A,E=A);return Nt&&vi(x,D),R}for(A=r(x,A);D<_.length;D++)z=h(A,x,D,_[D],S),z!==null&&(e&&z.alternate!==null&&A.delete(z.key===null?D:z.key),y=i(z,y,D),E===null?R=z:E.sibling=z,E=z);return e&&A.forEach(function(H){return t(x,H)}),Nt&&vi(x,D),R}function v(x,y,_,S){var R=Za(_);if(typeof R!="function")throw Error(ee(150));if(_=R.call(_),_==null)throw Error(ee(151));for(var E=R=null,A=y,D=y=0,z=null,N=_.next();A!==null&&!N.done;D++,N=_.next()){A.index>D?(z=A,A=null):z=A.sibling;var H=f(x,A,N.value,S);if(H===null){A===null&&(A=z);break}e&&A&&H.alternate===null&&t(x,A),y=i(H,y,D),E===null?R=H:E.sibling=H,E=H,A=z}if(N.done)return n(x,A),Nt&&vi(x,D),R;if(A===null){for(;!N.done;D++,N=_.next())N=p(x,N.value,S),N!==null&&(y=i(N,y,D),E===null?R=N:E.sibling=N,E=N);return Nt&&vi(x,D),R}for(A=r(x,A);!N.done;D++,N=_.next())N=h(A,x,D,N.value,S),N!==null&&(e&&N.alternate!==null&&A.delete(N.key===null?D:N.key),y=i(N,y,D),E===null?R=N:E.sibling=N,E=N);return e&&A.forEach(function(X){return t(x,X)}),Nt&&vi(x,D),R}function b(x,y,_,S){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Kl:e:{for(var R=_.key,E=y;E!==null;){if(E.key===R){if(R=_.type,R===Xi){if(E.tag===7){n(x,E.sibling),y=s(E,_.props.children),y.return=x,x=y;break e}}else if(E.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Is&&i0(R)===E.type){n(x,E.sibling),y=s(E,_.props),y.ref=so(x,E,_),y.return=x,x=y;break e}n(x,E);break}else t(x,E);E=E.sibling}_.type===Xi?(y=Ri(_.props.children,x.mode,S,_.key),y.return=x,x=y):(S=Fc(_.type,_.key,_.props,null,x.mode,S),S.ref=so(x,y,_),S.return=x,x=S)}return a(x);case Yi:e:{for(E=_.key;y!==null;){if(y.key===E)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=lp(_,x.mode,S),y.return=x,x=y}return a(x);case Is:return E=_._init,b(x,y,E(_._payload),S)}if(mo(_))return g(x,y,_,S);if(Za(_))return v(x,y,_,S);ic(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=op(_,x.mode,S),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=g1(!0),x1=g1(!1),uu=oi(null),du=null,ia=null,_h=null;function bh(){_h=ia=du=null}function wh(e){var t=uu.current;wt(uu),e._currentValue=t}function Mf(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 va(e,t){du=e,_h=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(qn=!0),e.firstContext=null)}function wr(e){var t=e._currentValue;if(_h!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(du===null)throw Error(ee(308));ia=e,du.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var Ei=null;function kh(e){Ei===null?Ei=[e]:Ei.push(e)}function v1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,kh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Ss(e,r)}function Ss(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 Fs=!1;function Sh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function y1(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 vs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Xs(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Ss(e,n)}return s=r.interleaved,s===null?(t.next=t,kh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Ss(e,n)}function Tc(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,ch(e,n)}}function a0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 pu(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Mt({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Oi|=a,e.lanes=a,e.memoizedState=p}}function o0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=np.transition;np.transition={};try{e(!1),t()}finally{ut=n,np.transition=r}}function O1(){return kr().memoizedState}function i5(e,t,n){var r=Zs(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},I1(e))F1(t,n);else if(n=v1(e,t,n,r),n!==null){var s=Un();Mr(n,e,r,s),B1(n,t,r)}}function a5(e,t,n){var r=Zs(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(I1(e))F1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Ir(l,a)){var c=t.interleaved;c===null?(s.next=s,kh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=v1(e,t,s,r),n!==null&&(s=Un(),Mr(n,e,r,s),B1(n,t,r))}}function I1(e){var t=e.alternate;return e===Dt||t!==null&&t===Dt}function F1(e,t){Eo=mu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function B1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ch(e,n)}}var hu={readContext:wr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},o5={readContext:wr,useCallback:function(e,t){return Wr().memoizedState=[e,t===void 0?null:t],e},useContext:wr,useEffect:c0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Dc(4194308,4,A1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Dc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Dc(4,2,e,t)},useMemo:function(e,t){var n=Wr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Wr();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=i5.bind(null,Dt,e),[r.memoizedState,e]},useRef:function(e){var t=Wr();return e={current:e},t.memoizedState=e},useState:l0,useDebugValue:Th,useDeferredValue:function(e){return Wr().memoizedState=e},useTransition:function(){var e=l0(!1),t=e[0];return e=s5.bind(null,e[1]),Wr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Dt,s=Wr();if(Nt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Mi&30||k1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,c0(E1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,S1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Wr(),t=fn.identifierPrefix;if(Nt){var n=xs,r=gs;n=(r&~(1<<32-Dr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Kr]=t,e[Qo]=r,Q1(e,t,!1,!1),t.stateNode=e;e:{switch(a=xf(n,r),n){case"dialog":bt("cancel",e),bt("close",e),s=r;break;case"iframe":case"object":case"embed":bt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=fu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Nt)return kn(t),null}else 2*Ht()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ht(),t.sibling=null,n=Tt.current,_t(Tt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Fh(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?nr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function h5(e,t){switch(vh(t),t.tag){case 1:return Gn(t.type)&&au(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),wt(Wn),wt(Pn),jh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ch(t),null;case 13:if(wt(Tt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return wt(Tt),null;case 4:return Ca(),null;case 10:return wh(t.type._context),null;case 22:case 23:return Fh(),null;case 24:return null;default:return null}}var oc=!1,En=!1,g5=typeof WeakSet=="function"?WeakSet:Set,he=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Bt(e,t,r)}else n.current=null}function Hf(e,t,n){try{n()}catch(r){Bt(e,t,r)}}var _0=!1;function x5(e,t){if(jf=nu,e=n1(),gh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Nf={focusedElem:e,selectionRange:n},nu=!1,he=t;he!==null;)if(t=he,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,he=e;else for(;he!==null;){t=he;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Rr(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(S){Bt(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,he=e;break}he=t.return}return g=_0,_0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&Hf(t,n,i)}s=s.next}while(s!==r)}}function nd(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 qf(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 J1(e){var t=e.alternate;t!==null&&(e.alternate=null,J1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Kr],delete t[Qo],delete t[Af],delete t[Zj],delete t[e5])),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 Z1(e){return e.tag===5||e.tag===3||e.tag===4}function b0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Z1(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 Wf(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=iu));else if(r!==4&&(e=e.child,e!==null))for(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}function Gf(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(Gf(e,t,n),e=e.sibling;e!==null;)Gf(e,t,n),e=e.sibling}var hn=null,Tr=!1;function Ds(e,t,n){for(n=n.child;n!==null;)ew(e,t,n),n=n.sibling}function ew(e,t,n){if(Xr&&typeof Xr.onCommitFiberUnmount=="function")try{Xr.onCommitFiberUnmount(Ku,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=hn,s=Tr;hn=null,Ds(e,t,n),hn=r,Tr=s,hn!==null&&(Tr?(e=hn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):hn.removeChild(n.stateNode));break;case 18:hn!==null&&(Tr?(e=hn,n=n.stateNode,e.nodeType===8?Zd(e.parentNode,n):e.nodeType===1&&Zd(e,n),Ho(e)):Zd(hn,n.stateNode));break;case 4:r=hn,s=Tr,hn=n.stateNode.containerInfo,Tr=!0,Ds(e,t,n),hn=r,Tr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&Hf(n,t,a),s=s.next}while(s!==r)}Ds(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Bt(n,t,l)}Ds(e,t,n);break;case 21:Ds(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ds(e,t,n),En=r):Ds(e,t,n);break;default:Ds(e,t,n)}}function w0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new g5),t.forEach(function(r){var s=C5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Nr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Ht()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*y5(r/1960))-r,10e?16:e,Hs===null)var r=!1;else{if(e=Hs,Hs=null,vu=0,Je&6)throw Error(ee(331));var s=Je;for(Je|=4,he=e.current;he!==null;){var i=he,a=i.child;if(he.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cHt()-Oh?Pi(e,0):Mh|=n),Kn(e,t)}function lw(e,t){t===0&&(e.mode&1?(t=Jl,Jl<<=1,!(Jl&130023424)&&(Jl=4194304)):t=1);var n=Un();e=Ss(e,t),e!==null&&(gl(e,t,n),Kn(e,n))}function E5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),lw(e,n)}function C5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),lw(e,n)}var cw;cw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Wn.current)qn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return qn=!1,f5(e,t,n);qn=!!(e.flags&131072)}else qn=!1,Nt&&t.flags&1048576&&f1(t,cu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Ph(null,t,r,e,s,n);var i=Rh();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Gn(r)?(i=!0,ou(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Sh(t),s.updater=td,t.stateNode=s,s._reactInternals=t,If(t,r,e,n),t=Uf(null,t,r,!0,i,n)):(t.tag=0,Nt&&i&&xh(t),Fn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=N5(r),e=Rr(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=x0(null,t,r,e,n);break e;case 11:t=h0(null,t,r,e,n);break e;case 14:t=g0(null,t,r,Rr(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),x0(e,t,r,s,n);case 3:e:{if(W1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,y1(e,t),pu(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=v0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=v0(e,t,r,n,s);break e}else for(sr=Ys(t.stateNode.containerInfo.firstChild),ir=t,Nt=!0,Lr=null,n=x1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Es(e,t,n);break e}Fn(e,t,r,n)}t=t.child}return t;case 5:return _1(t),e===null&&Df(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Pf(r,s)?a=null:i!==null&&Pf(r,i)&&(t.flags|=32),q1(e,t),Fn(e,t,a,n),t.child;case 6:return e===null&&Df(t),null;case 13:return G1(e,t,n);case 4:return Eh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Fn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),h0(e,t,r,s,n);case 7:return Fn(e,t,t.pendingProps,n),t.child;case 8:return Fn(e,t,t.pendingProps.children,n),t.child;case 12:return Fn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,_t(uu,r._currentValue),r._currentValue=a,i!==null)if(Ir(i.value,a)){if(i.children===s.children&&!Wn.current){t=Es(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=vs(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Mf(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Mf(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Fn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=wr(s),r=r(s),t.flags|=1,Fn(e,t,r,n),t.child;case 14:return r=t.type,s=Rr(r,t.pendingProps),s=Rr(r.type,s),g0(e,t,r,s,n);case 15:return $1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),Mc(e,t),t.tag=1,Gn(r)?(e=!0,ou(t)):e=!1,va(t,n),U1(t,r,s),If(t,r,s,n),Uf(null,t,r,!0,e,n);case 19:return K1(e,t,n);case 22:return H1(e,t,n)}throw Error(ee(156,t.tag))};function uw(e,t){return Ib(e,t)}function j5(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 _r(e,t,n,r){return new j5(e,t,n,r)}function Uh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function N5(e){if(typeof e=="function")return Uh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ih)return 11;if(e===ah)return 14}return 2}function ei(e,t){var n=e.alternate;return n===null?(n=_r(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 Fc(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Uh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ri(n.children,s,i,t);case sh:a=8,s|=8;break;case of:return e=_r(12,n,t,s|2),e.elementType=of,e.lanes=i,e;case lf:return e=_r(13,n,t,s),e.elementType=lf,e.lanes=i,e;case cf:return e=_r(19,n,t,s),e.elementType=cf,e.lanes=i,e;case _b:return sd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vb:a=10;break e;case yb:a=9;break e;case ih:a=11;break e;case ah:a=14;break e;case Is:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=_r(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ri(e,t,n,r){return e=_r(7,e,r,t),e.lanes=n,e}function sd(e,t,n,r){return e=_r(22,e,r,t),e.elementType=_b,e.lanes=n,e.stateNode={isHidden:!1},e}function op(e,t,n){return e=_r(6,e,null,t),e.lanes=n,e}function lp(e,t,n){return t=_r(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function P5(e,t,n,r,s){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=zd(0),this.expirationTimes=zd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Vh(e,t,n,r,s,i,a,l,c){return e=new P5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=_r(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Sh(i),e}function R5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(mw)}catch(e){console.error(e)}}mw(),mb.exports=ur;var la=mb.exports,R0=la;sf.createRoot=R0.createRoot,sf.hydrateRoot=R0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function qh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function O5(){return Math.random().toString(36).substr(2,8)}function T0(e,t){return{usr:e.state,key:e.key,idx:t}}function Jf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||O5()})}function bu(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 Ua(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 I5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=qs.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=qs.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=qs.Push;let y=Jf(v.location,b,x);u=d()+1;let _=T0(y,u),S=v.createHref(y);try{a.pushState(_,"",S)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;s.location.assign(S)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=qs.Replace;let y=Jf(v.location,b,x);u=d();let _=T0(y,u),S=v.createHref(y);a.replaceState(_,"",S),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:bu(b);return y=y.replace(/ $/,"%20"),Yt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(A0,p),c=b,()=>{s.removeEventListener(A0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var L0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(L0||(L0={}));function F5(e,t,n){return n===void 0&&(n="/"),B5(e,t,n)}function B5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=Wh(s.pathname||"/",n);if(i==null)return null;let a=hw(e);U5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Yt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ti([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Yt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),hw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:G5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of gw(i.path))s(i,a,c)}),t}function gw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=gw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function U5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:K5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const V5=/^:[\w-]+$/,z5=3,$5=2,H5=1,q5=10,W5=-2,D0=e=>e==="*";function G5(e,t){let n=e.split("/"),r=n.length;return n.some(D0)&&(r+=W5),t&&(r+=$5),n.filter(s=>!D0(s)).reduce((s,i)=>s+(V5.test(i)?z5:i===""?H5:q5),r)}function K5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function Q5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function X5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),qh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function J5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qh(!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 Wh(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 Z5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,eN=e=>Z5.test(e);function tN(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(eN(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),qh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=M0(n.substring(1),"/"):i=M0(n,t)}else i=t;return{pathname:i,search:sN(r),hash:iN(s)}}function M0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function cp(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 nN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function xw(e,t){let n=nN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function vw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Yt(!s.pathname||!s.pathname.includes("?"),cp("?","pathname","search",s)),Yt(!s.pathname||!s.pathname.includes("#"),cp("#","pathname","hash",s)),Yt(!s.search||!s.search.includes("#"),cp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=tN(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ti=e=>e.join("/").replace(/\/\/+/g,"/"),rN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),sN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,iN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function aN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const yw=["post","put","patch","delete"];new Set(yw);const oN=["get",...yw];new Set(oN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=vw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ti([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const dN=m.createContext(null);function pN(e){let t=m.useContext(Ps).outlet;return t&&m.createElement(dN.Provider,{value:e},t)}function ww(){let{matches:e}=m.useContext(Ps),t=e[e.length-1];return t?t.params:{}}function kw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(zi),{matches:s}=m.useContext(Ps),{pathname:i}=bl(),a=JSON.stringify(xw(s,r.v7_relativeSplatPath));return m.useMemo(()=>vw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function fN(e,t){return mN(e,t)}function mN(e,t,n,r){_l()||Yt(!1);let{navigator:s}=m.useContext(zi),{matches:i}=m.useContext(Ps),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Yt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=F5(e,{pathname:h}),v=yN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ti([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ti([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(cd.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:qs.Pop}},v):v}function hN(){let e=kN(),t=aN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const gN=m.createElement(hN,null);class xN extends m.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?m.createElement(Ps.Provider,{value:this.props.routeContext},m.createElement(_w.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function vN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Gh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Ps.Provider,{value:t},r)}function yN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Yt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||gN,c&&(u<0&&f===0?(EN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(vN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(xN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var Sw=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Sw||{}),Ew=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}(Ew||{});function _N(e){let t=m.useContext(Gh);return t||Yt(!1),t}function bN(e){let t=m.useContext(lN);return t||Yt(!1),t}function wN(e){let t=m.useContext(Ps);return t||Yt(!1),t}function Cw(e){let t=wN(),n=t.matches[t.matches.length-1];return n.route.id||Yt(!1),n.route.id}function kN(){var e;let t=m.useContext(_w),n=bN(),r=Cw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function SN(){let{router:e}=_N(Sw.UseNavigateStable),t=Cw(Ew.UseNavigateStable),n=m.useRef(!1);return bw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const O0={};function EN(e,t,n){O0[e]||(O0[e]=!0)}function CN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function jN(e){return pN(e.context)}function _i(e){Yt(!1)}function NN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=qs.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Yt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=Wh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(zi.Provider,{value:u},m.createElement(cd.Provider,{children:n,value:v}))}function PN(e){let{children:t,location:n}=e;return fN(Zf(t),n)}new Promise(()=>{});function Zf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Zf(r.props.children,i));return}r.type!==_i&&Yt(!1),!r.props.index||!r.props.children||Yt(!1);let a={id:r.props.id||i.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&&(a.children=Zf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 em(){return em=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function AN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function TN(e,t){return e.button===0&&(!t||t==="_self")&&!AN(e)}const LN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],DN="6";try{window.__reactRouterVersion=DN}catch{}const MN="startTransition",I0=S2[MN];function ON(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=M5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&I0?I0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>CN(r),[r]),m.createElement(NN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const IN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",FN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=RN(t,LN),{basename:h}=m.useContext(zi),g,v=!1;if(typeof u=="string"&&FN.test(u)&&(g=u,IN))try{let _=new URL(window.location.href),S=u.startsWith("//")?new URL(_.protocol+u):new URL(u),R=Wh(S.pathname,h);S.origin===_.origin&&R!=null?u=R+S.search+S.hash:v=!0}catch{}let b=cN(u,{relative:s}),x=BN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",em({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var F0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(F0||(F0={}));var B0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(B0||(B0={}));function BN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=ud(),u=bl(),d=kw(e,{relative:a});return m.useCallback(p=>{if(TN(p,n)){p.preventDefault();let f=r!==void 0?r:bu(u)===bu(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let UN={data:""},VN=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||UN},zN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,$N=/\/\*[^]*?\*\/| +/g,U0=/\n+/g,zs=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?zs(a,i):i+"{"+zs(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=zs(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=zs.p?zs.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},os={},jw=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+jw(e[n]);return t}return e},HN=(e,t,n,r,s)=>{let i=jw(e),a=os[i]||(os[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!os[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=zN.exec(u.replace($N,""));)d[4]?f.shift():d[3]?(p=d[3].replace(U0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(U0," ").trim();return f[0]})(e);os[a]=zs(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&os.g?os.g:null;return n&&(os.g=os[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(os[a],t,r,l),a},qN=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":zs(l,""):l===!1?"":l}return r+s+(a??"")},"");function dd(e){let t=this||{},n=e.call?e(t.p):e;return HN(n.unshift?n.raw?qN(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,VN(t.target),t.g,t.o,t.k)}let Nw,tm,nm;dd.bind({g:1});let Cs=dd.bind({k:1});function WN(e,t,n,r){zs.p=t,Nw=e,tm=n,nm=r}function ci(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:tm&&tm()},l),n.o=/ *go\d+/.test(c),l.className=dd.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),nm&&u[0]&&nm(l),Nw(u,l)}return s}}var GN=e=>typeof e=="function",ku=(e,t)=>GN(e)?e(t):e,KN=(()=>{let e=0;return()=>(++e).toString()})(),Pw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),QN=20,Kh="default",Rw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Rw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Aw={toasts:[],pausedAt:void 0,settings:{toastLimit:QN}},Qr={},Tw=(e,t=Kh)=>{Qr[t]=Rw(Qr[t]||Aw,e),Bc.forEach(([n,r])=>{n===t&&r(Qr[t])})},Lw=e=>Object.keys(Qr).forEach(t=>Tw(e,t)),YN=e=>Object.keys(Qr).find(t=>Qr[t].toasts.some(n=>n.id===e)),pd=(e=Kh)=>t=>{Tw(t,e)},XN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},JN=(e={},t=Kh)=>{let[n,r]=m.useState(Qr[t]||Aw),s=m.useRef(Qr[t]);m.useEffect(()=>(s.current!==Qr[t]&&r(Qr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||XN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},ZN=(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)||KN()}),wl=e=>(t,n)=>{let r=ZN(t,e,n);return pd(r.toasterId||YN(r.id))({type:2,toast:r}),r.id},sn=(e,t)=>wl("blank")(e,t);sn.error=wl("error");sn.success=wl("success");sn.loading=wl("loading");sn.custom=wl("custom");sn.dismiss=(e,t)=>{let n={type:3,toastId:e};t?pd(t)(n):Lw(n)};sn.dismissAll=e=>sn.dismiss(void 0,e);sn.remove=(e,t)=>{let n={type:4,toastId:e};t?pd(t)(n):Lw(n)};sn.removeAll=e=>sn.remove(void 0,e);sn.promise=(e,t,n)=>{let r=sn.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?ku(t.success,s):void 0;return i?sn.success(i,{id:r,...n,...n==null?void 0:n.success}):sn.dismiss(r),s}).catch(s=>{let i=t.error?ku(t.error,s):void 0;i?sn.error(i,{id:r,...n,...n==null?void 0:n.error}):sn.dismiss(r)}),e};var eP=1e3,tP=(e,t="default")=>{let{toasts:n,pausedAt:r}=JN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=eP)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&sn.dismiss(h.id);return}return setTimeout(()=>sn.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(pd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,S)=>S_.visible).slice(...h?[y+1]:[0,y]).reduce((_,S)=>_+(S.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},nP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,rP=Cs` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,sP=Cs` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,iP=ci("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${nP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${rP} 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: ${sP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,aP=Cs` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,oP=ci("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: ${aP} 1s linear infinite; +`,lP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,cP=Cs` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,uP=ci("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${lP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${cP} 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; + } +`,dP=ci("div")` + position: absolute; +`,pP=ci("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,fP=Cs` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,mP=ci("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${fP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,hP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(mP,null,t):t:n==="blank"?null:m.createElement(pP,null,m.createElement(oP,{...r}),n!=="loading"&&m.createElement(dP,null,n==="error"?m.createElement(iP,{...r}):m.createElement(uP,{...r})))},gP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,xP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,vP="0%{opacity:0;} 100%{opacity:1;}",yP="0%{opacity:1;} 100%{opacity:0;}",_P=ci("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; +`,bP=ci("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,wP=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=Pw()?[vP,yP]:[gP(n),xP(n)];return{animation:t?`${Cs(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Cs(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},kP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?wP(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(hP,{toast:e}),a=m.createElement(bP,{...e.ariaProps},ku(e.message,e));return m.createElement(_P,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});WN(m.createElement);var SP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},EP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:Pw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},CP=dd` + z-index: 9999; + > * { + pointer-events: auto; + } +`,uc=16,jP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=tP(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:uc,left:uc,right:uc,bottom:uc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=EP(p,f);return m.createElement(SP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?CP:"",style:h},d.type==="custom"?ku(d.message,d):s?s(d):m.createElement(kP,{toast:d,position:p}))}))},$e=sn;const Qh=m.createContext({});function Yh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const fd=m.createContext(null),Xh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class NP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function PP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Xh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(NP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const RP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Yh(AP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(PP,{isPresent:n,children:e})),o.jsx(fd.Provider,{value:d,children:e})};function AP(){return new Map}function Dw(e=!0){const t=m.useContext(fd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const dc=e=>e.key||"";function V0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Jh=typeof window<"u",Mw=Jh?m.useLayoutEffect:m.useEffect,rm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Dw(a),u=m.useMemo(()=>V0(e),[e]),d=a&&!l?[]:u.map(dc),p=m.useRef(!0),f=m.useRef(u),h=Yh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Mw(()=>{p.current=!1,f.current=u;for(let S=0;S{const R=dc(S),E=a&&!l?!1:u===b||d.includes(R),A=()=>{if(h.has(R))h.set(R,!0);else return;let D=!0;h.forEach(z=>{z||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(RP,{isPresent:E,initial:!p.current||n?void 0:!1,custom:E?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:E?void 0:A,children:S},R)})})},ar=e=>e;let Ow=ar;function Zh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},ys=e=>e*1e3,_s=e=>e/1e3,TP={useManualTiming:!1};function LP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const pc=["read","resolveKeyframes","update","preRender","render","postRender"],DP=40;function Iw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=pc.reduce((x,y)=>(x[y]=LP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,DP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:pc.reduce((x,y)=>{const _=a[y];return x[y]=(S,R=!1,E=!1)=>(n||g(),_.schedule(S,R,E)),x},{}),cancel:x=>{for(let y=0;yz0[e].some(n=>!!t[n])};function MP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const OP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Su(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||OP.has(e)}let Bw=e=>!Su(e);function IP(e){e&&(Bw=t=>t.startsWith("on")?!Su(t):e(t))}try{IP(require("@emotion/is-prop-valid").default)}catch{}function FP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Bw(s)||n===!0&&Su(s)||!t&&!Su(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function BP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const md=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function hd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const eg=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],tg=["initial",...eg];function gd(e){return hd(e.animate)||tg.some(t=>sl(e[t]))}function Uw(e){return!!(gd(e)||e.variants)}function UP(e,t){if(gd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function VP(e){const{initial:t,animate:n}=UP(e,m.useContext(md));return m.useMemo(()=>({initial:t,animate:n}),[$0(t),$0(n)])}function $0(e){return Array.isArray(e)?e.join(" "):e}const zP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function $P(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const ng=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),HP="framerAppearId",Vw="data-"+ng(HP),{schedule:rg}=Iw(queueMicrotask,!1),zw=m.createContext({});function qP(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(md),c=m.useContext(Fw),u=m.useContext(fd),d=m.useContext(Xh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(zw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&WP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Vw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Mw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),rg.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function WP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:$w(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function $w(e){if(e)return e.options.allowProjection!==!1?e.projection:$w(e.parent)}function GP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&MP(e);function l(u,d){let p;const f={...m.useContext(Xh),...u,layoutId:KP(u)},{isStatic:h}=f,g=VP(u),v=r(u,h);if(!h&&Jh){QP();const b=YP(f);p=b.MeasureLayout,g.visualElement=qP(s,v,f,t,b.ProjectionNode)}return o.jsxs(md.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,$P(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[zP]=s,c}function KP({layoutId:e}){const t=m.useContext(Qh).id;return t&&e!==void 0?t+"-"+e:e}function QP(e,t){m.useContext(Fw).strict}function YP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const XP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function sg(e){return typeof e!="string"||e.includes("-")?!1:!!(XP.indexOf(e)>-1||/[A-Z]/u.test(e))}function H0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function ig(e,t,n,r){if(typeof t=="function"){const[s,i]=H0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=H0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const sm=e=>Array.isArray(e),JP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),ZP=e=>sm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Uc(e){const t=jn(e)?e.get():e;return JP(t)?t.toValue():t}function eR({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:tR(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const Hw=e=>(t,n)=>{const r=m.useContext(md),s=m.useContext(fd),i=()=>eR(e,t,r,s);return n?i():Yh(i)};function tR(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Uc(i[f]);let{initial:a,animate:l}=e;const c=gd(e),u=Uw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!hd(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Ww=qw("--"),nR=qw("var(--"),ag=e=>nR(e)?rR.test(e.split("/*")[0].trim()):!1,rR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Gw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,js=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>js(0,1,e)},fc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Os=kl("deg"),Zr=kl("%"),Re=kl("px"),sR=kl("vh"),iR=kl("vw"),q0={...Zr,parse:e=>Zr.parse(e)/100,transform:e=>Zr.transform(e*100)},aR={borderWidth:Re,borderTopWidth:Re,borderRightWidth:Re,borderBottomWidth:Re,borderLeftWidth:Re,borderRadius:Re,radius:Re,borderTopLeftRadius:Re,borderTopRightRadius:Re,borderBottomRightRadius:Re,borderBottomLeftRadius:Re,width:Re,maxWidth:Re,height:Re,maxHeight:Re,top:Re,right:Re,bottom:Re,left:Re,padding:Re,paddingTop:Re,paddingRight:Re,paddingBottom:Re,paddingLeft:Re,margin:Re,marginTop:Re,marginRight:Re,marginBottom:Re,marginLeft:Re,backgroundPositionX:Re,backgroundPositionY:Re},oR={rotate:Os,rotateX:Os,rotateY:Os,rotateZ:Os,scale:fc,scaleX:fc,scaleY:fc,scaleZ:fc,skew:Os,skewX:Os,skewY:Os,distance:Re,translateX:Re,translateY:Re,translateZ:Re,x:Re,y:Re,z:Re,perspective:Re,transformPerspective:Re,opacity:il,originX:q0,originY:q0,originZ:Re},W0={...za,transform:Math.round},og={...aR,...oR,zIndex:W0,size:Re,fillOpacity:il,strokeOpacity:il,numOctaves:W0},lR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},cR=Va.length;function uR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Kw=()=>({...ug(),attrs:{}}),dg=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Qw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Yw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Xw(e,t,n,r){Qw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Yw.has(s)?s:ng(s),t.attrs[s])}const Eu={};function hR(e){Object.assign(Eu,e)}function Jw(e,{layout:t,layoutId:n}){return $i.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Eu[e]||e==="opacity")}function pg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Jw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Zw(e,t,n){const r=pg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function gR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const K0=["x","y","width","height","cx","cy","r"],xR={useVisualState:Hw({scrapeMotionValuesFromProps:Zw,createRenderState:Kw,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if($i.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{gR(n,r),kt.render(()=>{cg(r,s,dg(n.tagName),e.transformTemplate),Xw(n,r)})})}})},vR={useVisualState:Hw({scrapeMotionValuesFromProps:pg,createRenderState:ug})};function ek(e,t,n){for(const r in t)!jn(t[r])&&!Jw(r,n)&&(e[r]=t[r])}function yR({transformTemplate:e},t){return m.useMemo(()=>{const n=ug();return lg(n,t,e),Object.assign({},n.vars,n.style)},[t])}function _R(e,t){const n=e.style||{},r={};return ek(r,n,e),Object.assign(r,yR(e,t)),r}function bR(e,t){const n={},r=_R(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function wR(e,t,n,r){const s=m.useMemo(()=>{const i=Kw();return cg(i,t,dg(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};ek(i,e.style,e),s.style={...i,...s.style}}return s}function kR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(sg(n)?wR:bR)(r,i,a,n),u=FP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function SR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...sg(r)?xR:vR,preloadedFeatures:e,useRender:kR(s),createVisualElement:t,Component:r};return GP(a)}}function tk(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class CR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(ER()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class jR extends CR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function fg(e,t){return e?e[t]||e.default||e:void 0}const im=2e4;function nk(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=im?1/0:t}function mg(e){return typeof e=="function"}function Q0(e,t){e.timeline=t,e.onfinish=null}const hg=e=>Array.isArray(e)&&typeof e[0]=="number",NR={linearEasing:void 0};function PR(e,t){const n=Zh(e);return()=>{var r;return(r=NR[t])!==null&&r!==void 0?r:n()}}const Cu=PR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),rk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,am={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function ik(e,t){if(e)return typeof e=="function"&&Cu()?rk(e,t):hg(e)?xo(e):Array.isArray(e)?e.map(n=>ik(n,t)||am.easeOut):am[e]}const Pr={x:!1,y:!1};function ak(){return Pr.x||Pr.y}function RR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ok(e,t){const n=RR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function Y0(e){return t=>{t.pointerType==="touch"||ak()||e(t)}}function AR(e,t,n={}){const[r,s,i]=ok(e,n),a=Y0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=Y0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const lk=(e,t)=>t?e===t?!0:lk(e,t.parentElement):!1,gg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,TR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function LR(e){return TR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function X0(e){return t=>{t.key==="Enter"&&e(t)}}function dp(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const DR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=X0(()=>{if(vo.has(n))return;dp(n,"down");const s=X0(()=>{dp(n,"up")}),i=()=>dp(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function J0(e){return gg(e)&&!ak()}function MR(e,t,n={}){const[r,s,i]=ok(e,n),a=l=>{const c=l.currentTarget;if(!J0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!J0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||lk(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!LR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>DR(u,s),s)}),i}function OR(e){return e==="x"||e==="y"?Pr[e]?null:(Pr[e]=!0,()=>{Pr[e]=!1}):Pr.x||Pr.y?null:(Pr.x=Pr.y=!0,()=>{Pr.x=Pr.y=!1})}const ck=new Set(["width","height","top","left","right","bottom",...Va]);let Vc;function IR(){Vc=void 0}const es={now:()=>(Vc===void 0&&es.set(gn.isProcessing||TP.useManualTiming?gn.timestamp:performance.now()),Vc),set:e=>{Vc=e,queueMicrotask(IR)}};function xg(e,t){e.indexOf(t)===-1&&e.push(t)}function vg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class yg{constructor(){this.subscriptions=[]}add(t){return xg(this.subscriptions,t),()=>vg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class BR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=es.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=es.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=FR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new yg);const r=this.events[t].add(n);return t==="change"?()=>{r(),kt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=es.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Z0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Z0);return uk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new BR(e,t)}function UR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function VR(e,t){const n=xd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=ZP(i[a]);UR(e,a,l)}}function zR(e){return!!(jn(e)&&e.add)}function om(e,t){const n=e.getValue("willChange");if(zR(n))return n.add(t)}function dk(e){return e.props[Vw]}const pk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,$R=1e-7,HR=12;function qR(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=pk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>$R&&++lqR(i,0,1,e,n);return i=>i===0||i===1?i:pk(s(i),t,r)}const fk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,mk=e=>t=>1-e(1-t),hk=Sl(.33,1.53,.69,.99),_g=mk(hk),gk=fk(_g),xk=e=>(e*=2)<1?.5*_g(e):.5*(2-Math.pow(2,-10*(e-1))),bg=e=>1-Math.sin(Math.acos(e)),vk=mk(bg),yk=fk(bg),_k=e=>/^0[^.\s]+$/u.test(e);function WR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||_k(e):!0}const Po=e=>Math.round(e*1e5)/1e5,wg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function GR(e){return e==null}const KR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,kg=(e,t)=>n=>!!(typeof n=="string"&&KR.test(n)&&n.startsWith(e)||t&&!GR(n)&&Object.prototype.hasOwnProperty.call(n,t)),bk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(wg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},QR=e=>js(0,255,e),pp={...za,transform:e=>Math.round(QR(e))},ji={test:kg("rgb","red"),parse:bk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+pp.transform(e)+", "+pp.transform(t)+", "+pp.transform(n)+", "+Po(il.transform(r))+")"};function YR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const lm={test:kg("#"),parse:YR,transform:ji.transform},ua={test:kg("hsl","hue"),parse:bk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Zr.transform(Po(t))+", "+Zr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>ji.test(e)||lm.test(e)||ua.test(e),parse:e=>ji.test(e)?ji.parse(e):ua.test(e)?ua.parse(e):lm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ji.transform(e):ua.transform(e)},XR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function JR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(wg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(XR))===null||n===void 0?void 0:n.length)||0)>0}const wk="number",kk="color",ZR="var",eA="var(",ev="${}",tA=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(tA,c=>(Sn.test(c)?(r.color.push(i),s.push(kk),n.push(Sn.parse(c))):c.startsWith(eA)?(r.var.push(i),s.push(ZR),n.push(c)):(r.number.push(i),s.push(wk),n.push(parseFloat(c))),++i,ev)).split(ev);return{values:n,split:l,indexes:r,types:s}}function Sk(e){return ol(e).values}function Ek(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function rA(e){const t=Sk(e);return Ek(e)(t.map(nA))}const ii={test:JR,parse:Sk,createTransformer:Ek,getAnimatableNone:rA},sA=new Set(["brightness","contrast","saturate","opacity"]);function iA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(wg)||[];if(!r)return e;const s=n.replace(r,"");let i=sA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const aA=/\b([a-z-]*)\(.*?\)/gu,cm={...ii,getAnimatableNone:e=>{const t=e.match(aA);return t?t.map(iA).join(" "):e}},oA={...og,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:cm,WebkitFilter:cm},Sg=e=>oA[e];function Ck(e,t){let n=Sg(e);return n!==cm&&(n=ii),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const lA=new Set(["auto","none","0"]);function cA(e,t,n){let r=0,s;for(;re===za||e===Re,nv=(e,t)=>parseFloat(e.split(", ")[t]),rv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return nv(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?nv(i[1],e):0}},uA=new Set(["x","y","z"]),dA=Va.filter(e=>!uA.has(e));function pA(e){const t=[];return dA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:rv(4,13),y:rv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Ai=new Set;let um=!1,dm=!1;function jk(){if(dm){const e=Array.from(Ai).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=pA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}dm=!1,um=!1,Ai.forEach(e=>e.complete()),Ai.clear()}function Nk(){Ai.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(dm=!0)})}function fA(){Nk(),jk()}class Eg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ai.add(this),um||(um=!0,kt.read(Nk),kt.resolveKeyframes(jk))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),mA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function hA(e){const t=mA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Rk(e,t,n=1){const[r,s]=hA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return Pk(a)?parseFloat(a):a}return ag(s)?Rk(s,t,n+1):s}const Ak=e=>t=>t.test(e),gA={test:e=>e==="auto",parse:e=>e},Tk=[za,Re,Zr,Os,iR,sR,gA],sv=e=>Tk.find(Ak(e));class Lk extends Eg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const iv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ii.test(e)||e==="0")&&!e.startsWith("url("));function xA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function vd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(yA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const _A=40;class Dk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=es.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>_A?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&fA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=es.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!vA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(vd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Lt=(e,t,n)=>e+(t-e)*n;function fp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function bA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=fp(c,l,e+1/3),i=fp(c,l,e),a=fp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function ju(e,t){return n=>n>0?t:e}const mp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},wA=[lm,ji,ua],kA=e=>wA.find(t=>t.test(e));function av(e){const t=kA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=bA(n)),n}const ov=(e,t)=>{const n=av(e),r=av(t);if(!n||!r)return ju(e,t);const s={...n};return i=>(s.red=mp(n.red,r.red,i),s.green=mp(n.green,r.green,i),s.blue=mp(n.blue,r.blue,i),s.alpha=Lt(n.alpha,r.alpha,i),ji.transform(s))},SA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(SA),pm=new Set(["none","hidden"]);function EA(e,t){return pm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function CA(e,t){return n=>Lt(e,t,n)}function Cg(e){return typeof e=="number"?CA:typeof e=="string"?ag(e)?ju:Sn.test(e)?ov:PA:Array.isArray(e)?Mk:typeof e=="object"?Sn.test(e)?ov:jA:ju}function Mk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Cg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function NA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ii.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?pm.has(e)&&!s.values.length||pm.has(t)&&!r.values.length?EA(e,t):El(Mk(NA(r,s),s.values),n):ju(e,t)};function Ok(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Lt(e,t,n):Cg(e)(e,t)}const RA=5;function Ik(e,t,n){const r=Math.max(t-RA,0);return uk(n-e(r),t-r)}const Ft={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},hp=.001;function AA({duration:e=Ft.duration,bounce:t=Ft.bounce,velocity:n=Ft.velocity,mass:r=Ft.mass}){let s,i,a=1-t;a=js(Ft.minDamping,Ft.maxDamping,a),e=js(Ft.minDuration,Ft.maxDuration,_s(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=fm(u,a),g=Math.exp(-p);return hp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=fm(Math.pow(u,2),a);return(-s(u)+hp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-hp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=LA(s,i,l);if(e=ys(e),isNaN(c))return{stiffness:Ft.stiffness,damping:Ft.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const TA=12;function LA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function OA(e){let t={velocity:Ft.velocity,stiffness:Ft.stiffness,damping:Ft.damping,mass:Ft.mass,isResolvedFromDuration:!1,...e};if(!lv(e,MA)&&lv(e,DA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*js(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Ft.mass,stiffness:s,damping:i}}else{const n=AA(e);t={...t,...n,mass:Ft.mass},t.isResolvedFromDuration=!0}return t}function Fk(e=Ft.visualDuration,t=Ft.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=OA({...n,velocity:-_s(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=_s(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Ft.restSpeed.granular:Ft.restSpeed.default),s||(s=y?Ft.restDelta.granular:Ft.restDelta.default);let _;if(v<1){const R=fm(x,v);_=E=>{const A=Math.exp(-v*x*E);return a-A*((g+v*x*b)/R*Math.sin(R*E)+b*Math.cos(R*E))}}else if(v===1)_=R=>a-Math.exp(-x*R)*(b+(g+x*b)*R);else{const R=x*Math.sqrt(v*v-1);_=E=>{const A=Math.exp(-v*x*E),D=Math.min(R*E,300);return a-A*((g+v*x*b)*Math.sinh(D)+R*b*Math.cosh(D))/R}}const S={calculatedDuration:h&&p||null,next:R=>{const E=_(R);if(h)l.done=R>=p;else{let A=0;v<1&&(A=R===0?ys(g):Ik(_,R,E));const D=Math.abs(A)<=r,z=Math.abs(a-E)<=s;l.done=D&&z}return l.value=l.done?a:E,l},toString:()=>{const R=Math.min(nk(S),im),E=rk(A=>S.next(R*A).value,R,30);return R+"ms "+E}};return S}function cv({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),S=D=>{const z=y(D),N=_(D);f.done=Math.abs(z)<=u,f.value=f.done?x:N};let R,E;const A=D=>{h(f.value)&&(R=D,E=Fk({keyframes:[f.value,g(f.value)],velocity:Ik(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return A(0),{calculatedDuration:null,next:D=>{let z=!1;return!E&&R===void 0&&(z=!0,S(D),A(D)),R!==void 0&&D>=R?E.next(D-R):(!z&&S(D),f)}}}const IA=Sl(.42,0,1,1),FA=Sl(0,0,.58,1),Bk=Sl(.42,0,.58,1),BA=e=>Array.isArray(e)&&typeof e[0]!="number",UA={linear:ar,easeIn:IA,easeInOut:Bk,easeOut:FA,circIn:bg,circInOut:yk,circOut:vk,backIn:_g,backInOut:gk,backOut:hk,anticipate:xk},uv=e=>{if(hg(e)){Ow(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return UA[e];return e};function VA(e,t,n){const r=[],s=n||Ok,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=VA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(js(e[0],e[i-1],d)):u}function $A(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Lt(n,1,s))}}function HA(e){const t=[0];return $A(t,e.length-1),t}function qA(e,t){return e.map(n=>n*t)}function WA(e,t){return e.map(()=>t||Bk).splice(0,e.length-1)}function Nu({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=BA(r)?r.map(uv):uv(r),i={done:!1,value:t[0]},a=qA(n&&n.length===t.length?n:HA(t),e),l=zA(a,t,{ease:Array.isArray(s)?s:WA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const GA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>kt.update(t,!0),stop:()=>si(t),now:()=>gn.isProcessing?gn.timestamp:es.now()}},KA={decay:cv,inertia:cv,tween:Nu,keyframes:Nu,spring:Fk},QA=e=>e/100;class jg extends Dk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Eg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=mg(n)?n:KA[n]||Nu;let c,u;l!==Nu&&typeof t[0]!="number"&&(c=El(QA,Ok(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=nk(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,S=i;if(h){const D=Math.min(this.currentTime,d)/p;let z=Math.floor(D),N=D%1;!N&&D>=1&&(N=1),N===1&&z--,z=Math.min(z,h+1),!!(z%2)&&(g==="reverse"?(N=1-N,v&&(N-=v/p)):g==="mirror"&&(S=a)),_=js(0,1,N)*p}const R=y?{done:!1,value:c[0]}:S.next(_);l&&(R.value=l(R.value));let{done:E}=R;!y&&u!==null&&(E=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const A=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&E);return A&&s!==void 0&&(R.value=vd(c,this.options,s)),b&&b(R.value),A&&this.finish(),R}get duration(){const{resolved:t}=this;return t?_s(t.calculatedDuration):0}get time(){return _s(this.currentTime)}set time(t){t=ys(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=_s(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=GA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const YA=new Set(["opacity","clipPath","filter","transform"]);function XA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=ik(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const JA=Zh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Pu=10,ZA=2e4;function eT(e){return mg(e.type)||e.type==="spring"||!sk(e.ease)}function tT(e,t){const n=new jg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Cu()&&nT(i)&&(i=Uk[i]),eT(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=tT(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=XA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(Q0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(vd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return _s(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return _s(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=ys(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return ar;const{animation:r}=n;Q0(r,t)}return ar}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new jg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=ys(this.time);u.setWithVelocity(g.sample(v-Pu).value,g.sample(v).value,Pu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return JA()&&r&&YA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const rT={type:"spring",stiffness:500,damping:25,restSpeed:10},sT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),iT={type:"keyframes",duration:.8},aT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},oT=(e,{keyframes:t})=>t.length>2?iT:$i.has(e)?e.startsWith("scale")?sT(t[1]):rT:aT;function lT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const Ng=(e,t,n,r={},s,i)=>a=>{const l=fg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-ys(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};lT(l)||(d={...d,...oT(e,d)}),d.duration&&(d.duration=ys(d.duration)),d.repeatDelay&&(d.repeatDelay=ys(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=vd(d.keyframes,l);if(f!==void 0)return kt.update(()=>{d.onUpdate(f),d.onComplete()}),new jR([])}return!i&&dv.supports(d)?new dv(d):new jg(d)};function cT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Vk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&cT(d,p))continue;const g={delay:n,...fg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=dk(e);if(x){const y=window.MotionHandoffAnimation(x,p,kt);y!==null&&(g.startTime=y,v=!0)}}om(e,p),f.start(Ng(p,f,h,e.shouldReduceMotion&&ck.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{kt.update(()=>{l&&VR(e,l)})}),u}function mm(e,t,n={}){var r;const s=xd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Vk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return uT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function uT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(dT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(mm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function dT(e,t){return e.sortNodePosition(t)}function pT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>mm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=mm(e,t,n);else{const s=typeof t=="function"?xd(e,t,n.custom):t;r=Promise.all(Vk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const fT=tg.length;function zk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?zk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>pT(e,n,r)))}function xT(e){let t=gT(e),n=pv(),r=!0;const s=c=>(u,d)=>{var p;const f=xd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=zk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&S,z=!1;const N=Array.isArray(_)?_:[_];let H=N.reduce(s(x),{});R===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},oe=ae=>{D=!0,f.has(ae)&&(z=!0,f.delete(ae)),y.needsAnimating[ae]=!0;const B=e.getValue(ae);B&&(B.liveStyle=!1)};for(const ae in re){const B=H[ae],q=X[ae];if(h.hasOwnProperty(ae))continue;let j=!1;sm(B)&&sm(q)?j=!tk(B,q):j=B!==q,j?B!=null?oe(ae):f.add(ae):B!==void 0&&f.has(ae)?oe(ae):y.protectedKeys[ae]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(E&&A)||z)&&p.push(...N.map(ae=>({animation:ae,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=pv(),r=!0}}}function vT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!tk(t,e):!1}function gi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function pv(){return{animate:gi(!0),whileInView:gi(),whileHover:gi(),whileTap:gi(),whileDrag:gi(),whileFocus:gi(),exit:gi()}}class ui{constructor(t){this.isMounted=!1,this.node=t}update(){}}class yT extends ui{constructor(t){super(t),t.animationState||(t.animationState=xT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();hd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let _T=0;class bT extends ui{constructor(){super(...arguments),this.id=_T++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const wT={animation:{Feature:yT},exit:{Feature:bT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const kT=e=>t=>gg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,kT(n),r)}const fv=(e,t)=>Math.abs(e-t);function ST(e,t){const n=fv(e.x,t.x),r=fv(e.y,t.y);return Math.sqrt(n**2+r**2)}class $k{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=xp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=ST(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=gn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=gp(f,this.transformPagePoint),kt.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=xp(p.type==="pointercancel"?this.lastMoveEventInfo:gp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!gg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=gp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=gn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,xp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),si(this.updatePoint)}}function gp(e,t){return t?{point:t(e.point)}:e}function mv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function xp({point:e},t){return{point:e,delta:mv(e,Hk(t)),offset:mv(e,ET(t)),velocity:CT(t,.1)}}function ET(e){return e[0]}function Hk(e){return e[e.length-1]}function CT(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=Hk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>ys(t)));)n--;if(!r)return{x:0,y:0};const i=_s(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const qk=1e-4,jT=1-qk,NT=1+qk,Wk=.01,PT=0-Wk,RT=0+Wk;function cr(e){return e.max-e.min}function AT(e,t,n){return Math.abs(e-t)<=n}function hv(e,t,n,r=.5){e.origin=r,e.originPoint=Lt(t.min,t.max,e.origin),e.scale=cr(n)/cr(t),e.translate=Lt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=jT&&e.scale<=NT||isNaN(e.scale))&&(e.scale=1),(e.translate>=PT&&e.translate<=RT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){hv(e.x,t.x,n.x,r?r.originX:void 0),hv(e.y,t.y,n.y,r?r.originY:void 0)}function gv(e,t,n){e.min=n.min+t.min,e.max=e.min+cr(t)}function TT(e,t,n){gv(e.x,t.x,n.x),gv(e.y,t.y,n.y)}function xv(e,t,n){e.min=t.min-n.min,e.max=e.min+cr(t)}function To(e,t,n){xv(e.x,t.x,n.x),xv(e.y,t.y,n.y)}function LT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Lt(n,e,r.max):Math.min(e,n)),e}function vv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function DT(e,{top:t,left:n,bottom:r,right:s}){return{x:vv(e.x,n,s),y:vv(e.y,t,r)}}function yv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),js(0,1,n)}function IT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const hm=.35;function FT(e=hm){return e===!1?e=0:e===!0&&(e=hm),{x:_v(e,"left","right"),y:_v(e,"top","bottom")}}function _v(e,t,n){return{min:bv(e,t),max:bv(e,n)}}function bv(e,t){return typeof e=="number"?e:e[t]||0}const wv=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:wv(),y:wv()}),kv=()=>({min:0,max:0}),$t=()=>({x:kv(),y:kv()});function hr(e){return[e("x"),e("y")]}function Gk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function BT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function UT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function vp(e){return e===void 0||e===1}function gm({scale:e,scaleX:t,scaleY:n}){return!vp(e)||!vp(t)||!vp(n)}function bi(e){return gm(e)||Kk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Kk(e){return Sv(e.x)||Sv(e.y)}function Sv(e){return e&&e!=="0%"}function Ru(e,t,n){const r=e-n,s=t*r;return n+s}function Ev(e,t,n,r,s){return s!==void 0&&(e=Ru(e,s,r)),Ru(e,n,r)+t}function xm(e,t=0,n=1,r,s){e.min=Ev(e.min,t,n,r,s),e.max=Ev(e.max,t,n,r,s)}function Qk(e,{x:t,y:n}){xm(e.x,t.translate,t.scale,t.originPoint),xm(e.y,n.translate,n.scale,n.originPoint)}const Cv=.999999999999,jv=1.0000000000001;function VT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lCv&&(t.x=1),t.yCv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Nv(e,t,n,r,s=.5){const i=Lt(e.min,e.max,s);xm(e,t,n,i,r)}function fa(e,t){Nv(e.x,t.x,t.scaleX,t.scale,t.originX),Nv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Yk(e,t){return Gk(UT(e.getBoundingClientRect(),t))}function zT(e,t,n){const r=Yk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Xk=({current:e})=>e?e.ownerDocument.defaultView:null,$T=new WeakMap;class HT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=$t(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=OR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),hr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Zr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=cr(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&kt.postRender(()=>g(d,p)),om(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=qT(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>hr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new $k(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Xk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&kt.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!mc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=LT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=DT(s.layoutBox,n):this.constraints=!1,this.elastic=FT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&hr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=IT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=zT(r,s.root,this.visualElement.getTransformPagePoint());let a=MT(s.layout.layoutBox,i);if(n){const l=n(BT(a));this.hasMutatedConstraints=!!l,l&&(a=Gk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=hr(d=>{if(!mc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return om(this.visualElement,t),r.start(Ng(t,r,0,n,this.visualElement,!1))}stopAnimation(){hr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){hr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){hr(n=>{const{drag:r}=this.getProps();if(!mc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Lt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};hr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=OT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),hr(a=>{if(!mc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Lt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;$T.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),kt.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(hr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=hm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function mc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function qT(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class WT extends ui{constructor(t){super(t),this.removeGroupControls=ar,this.removeListeners=ar,this.controls=new HT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ar}unmount(){this.removeGroupControls(),this.removeListeners()}}const Pv=e=>(t,n)=>{e&&kt.postRender(()=>e(t,n))};class GT extends ui{constructor(){super(...arguments),this.removePointerDownListener=ar}onPointerDown(t){this.session=new $k(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Xk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:Pv(t),onStart:Pv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&kt.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const zc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Rv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Re.test(e))e=parseFloat(e);else return e;const n=Rv(e,t.target.x),r=Rv(e,t.target.y);return`${n}% ${r}%`}},KT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ii.parse(e);if(s.length>5)return r;const i=ii.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Lt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class QT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;hR(YT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),zc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||kt.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),rg.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Jk(e){const[t,n]=Dw(),r=m.useContext(Qh);return o.jsx(QT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(zw),isPresent:t,safeToRemove:n})}const YT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:KT};function XT(e,t,n){const r=jn(e)?e:al(e);return r.start(Ng("",r,t,n)),r.animation}function JT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const ZT=(e,t)=>e.depth-t.depth;class eL{constructor(){this.children=[],this.isDirty=!1}add(t){xg(this.children,t),this.isDirty=!0}remove(t){vg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(ZT),this.isDirty=!1,this.children.forEach(t)}}function tL(e,t){const n=es.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(si(r),e(i-t))};return kt.read(r,!0),()=>si(r)}const Zk=["TopLeft","TopRight","BottomLeft","BottomRight"],nL=Zk.length,Av=e=>typeof e=="string"?parseFloat(e):e,Tv=e=>typeof e=="number"||Re.test(e);function rL(e,t,n,r,s,i){s?(e.opacity=Lt(0,n.opacity!==void 0?n.opacity:1,sL(r)),e.opacityExit=Lt(t.opacity!==void 0?t.opacity:1,0,iL(r))):i&&(e.opacity=Lt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Dv(e,t){e.min=t.min,e.max=t.max}function mr(e,t){Dv(e.x,t.x),Dv(e.y,t.y)}function Mv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Ov(e,t,n,r,s){return e-=t,e=Ru(e,1/n,r),s!==void 0&&(e=Ru(e,1/s,r)),e}function aL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Zr.test(t)&&(t=parseFloat(t),t=Lt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Lt(i.min,i.max,r);e===i&&(l-=t),e.min=Ov(e.min,t,n,l,s),e.max=Ov(e.max,t,n,l,s)}function Iv(e,t,[n,r,s],i,a){aL(e,t[n],t[r],t[s],t.scale,i,a)}const oL=["x","scaleX","originX"],lL=["y","scaleY","originY"];function Fv(e,t,n,r){Iv(e.x,t,oL,n?n.x:void 0,r?r.x:void 0),Iv(e.y,t,lL,n?n.y:void 0,r?r.y:void 0)}function Bv(e){return e.translate===0&&e.scale===1}function tS(e){return Bv(e.x)&&Bv(e.y)}function Uv(e,t){return e.min===t.min&&e.max===t.max}function cL(e,t){return Uv(e.x,t.x)&&Uv(e.y,t.y)}function Vv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function nS(e,t){return Vv(e.x,t.x)&&Vv(e.y,t.y)}function zv(e){return cr(e.x)/cr(e.y)}function $v(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class uL{constructor(){this.members=[]}add(t){xg(this.members,t),t.scheduleRender()}remove(t){if(vg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function dL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const wi={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,yp=["","X","Y","Z"],pL={visibility:"hidden"},Hv=1e3;let fL=0;function _p(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function rS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=dk(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",kt,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&rS(r)}function sS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=fL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(wi.totalNodes=wi.resolvedTargetDeltas=wi.recalculatedProjection=0),this.nodes.forEach(gL),this.nodes.forEach(bL),this.nodes.forEach(wL),this.nodes.forEach(xL),yo&&window.MotionDebug.record(wi)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=tL(f,250),zc.hasAnimatedSinceResize&&(zc.hasAnimatedSinceResize=!1,this.nodes.forEach(Wv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||jL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!nS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const S={...fg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else f||Wv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,si(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(kL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&rS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const R=S/1e3;Gv(p.x,a.x,R),Gv(p.y,a.y,R),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),EL(this.relativeTarget,this.relativeTargetOrigin,f,R),_&&cL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=$t()),mr(_,this.relativeTarget)),v&&(this.animationValues=d,rL(d,u,this.latestValues,R,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=R},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(si(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=kt.update(()=>{zc.hasAnimatedSinceResize=!0,this.currentAnimation=XT(0,Hv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Hv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&iS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||$t();const p=cr(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=cr(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}mr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new uL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&_p("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(qv),this.root.sharedNodes.clear()}}}function mL(e){e.updateLayout()}function hL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?hr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=cr(f);f.min=r[p].min,f.max=f.min+h}):iS(i,n.layoutBox,r)&&hr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=cr(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!tS(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=$t();To(g,n.layoutBox,f.layoutBox);const v=$t();To(v,r,h.layoutBox),nS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function gL(e){yo&&wi.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function xL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function vL(e){e.clearSnapshot()}function qv(e){e.clearMeasurements()}function yL(e){e.isLayoutDirty=!1}function _L(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Wv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function bL(e){e.resolveTargetDelta()}function wL(e){e.calcProjection()}function kL(e){e.resetSkewAndRotation()}function SL(e){e.removeLeadSnapshot()}function Gv(e,t,n){e.translate=Lt(t.translate,0,n),e.scale=Lt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Kv(e,t,n,r){e.min=Lt(t.min,n.min,r),e.max=Lt(t.max,n.max,r)}function EL(e,t,n,r){Kv(e.x,t.x,n.x,r),Kv(e.y,t.y,n.y,r)}function CL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const jL={duration:.45,ease:[.4,0,.1,1]},Qv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Yv=Qv("applewebkit/")&&!Qv("chrome/")?Math.round:ar;function Xv(e){e.min=Yv(e.min),e.max=Yv(e.max)}function NL(e){Xv(e.x),Xv(e.y)}function iS(e,t,n){return e==="position"||e==="preserve-aspect"&&!AT(zv(t),zv(n),.2)}function PL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const RL=sS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bp={current:void 0},aS=sS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bp.current){const e=new RL({});e.mount(window),e.setOptions({layoutScroll:!0}),bp.current=e}return bp.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),AL={pan:{Feature:GT},drag:{Feature:WT,ProjectionNode:aS,MeasureLayout:Jk}};function Jv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&kt.postRender(()=>i(t,Cl(t)))}class TL extends ui{mount(){const{current:t}=this.node;t&&(this.unmount=AR(t,n=>(Jv(this.node,n,"Start"),r=>Jv(this.node,r,"End"))))}unmount(){}}class LL extends ui{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Zv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&kt.postRender(()=>i(t,Cl(t)))}class DL extends ui{mount(){const{current:t}=this.node;t&&(this.unmount=MR(t,n=>(Zv(this.node,n,"Start"),(r,{success:s})=>Zv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const vm=new WeakMap,wp=new WeakMap,ML=e=>{const t=vm.get(e.target);t&&t(e)},OL=e=>{e.forEach(ML)};function IL({root:e,...t}){const n=e||document;wp.has(n)||wp.set(n,{});const r=wp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(OL,{root:e,...t})),r[s]}function FL(e,t,n){const r=IL(t);return vm.set(e,n),r.observe(e),()=>{vm.delete(e),r.unobserve(e)}}const BL={some:0,all:1};class UL extends ui{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:BL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return FL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(VL(t,n))&&this.startObserver()}unmount(){}}function VL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const zL={inView:{Feature:UL},tap:{Feature:DL},focus:{Feature:LL},hover:{Feature:TL}},$L={layout:{ProjectionNode:aS,MeasureLayout:Jk}},ym={current:null},oS={current:!1};function HL(){if(oS.current=!0,!!Jh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>ym.current=e.matches;e.addListener(t),t()}else ym.current=!1}const qL=[...Tk,Sn,ii],WL=e=>qL.find(Ak(e)),ey=new WeakMap;function GL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const ty=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class KL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Eg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=es.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),oS.current||HL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:ym.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){ey.delete(this.current),this.projection&&this.projection.unmount(),si(this.notifyUpdate),si(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=$i.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&kt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):$t()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(Pk(s)||_k(s))?s=parseFloat(s):!WL(s)&&ii.test(n)&&(s=Ck(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=ig(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new yg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class lS extends KL{constructor(){super(...arguments),this.KeyframeResolver=Lk}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function QL(e){return window.getComputedStyle(e)}class YL extends lS{constructor(){super(...arguments),this.type="html",this.renderInstance=Qw}readValueFromInstance(t,n){if($i.has(n)){const r=Sg(n);return r&&r.default||0}else{const r=QL(t),s=(Ww(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Yk(t,n)}build(t,n,r){lg(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return pg(t,n,r)}}class XL extends lS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=$t}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if($i.has(n)){const r=Sg(n);return r&&r.default||0}return n=Yw.has(n)?n:ng(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Zw(t,n,r)}build(t,n,r){cg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Xw(t,n,r,s)}mount(t){this.isSVGTag=dg(t.tagName),super.mount(t)}}const JL=(e,t)=>sg(e)?new XL(t):new YL(t,{allowProjection:e!==m.Fragment}),ZL=SR({...wT,...zL,...AL,...$L},JL),Ut=BP(ZL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const tD=m.forwardRef(eD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const $c=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ny=m.forwardRef(rD);function sD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Yr=m.forwardRef(sD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const aD=m.forwardRef(iD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const cS=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const kp=m.forwardRef(lD);function cD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const Sp=m.forwardRef(cD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const dD=m.forwardRef(uD);function pD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Au=m.forwardRef(pD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const mD=m.forwardRef(fD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const hc=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Tu=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Ws=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const rr=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const uS=m.forwardRef(yD);function _D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const ps=m.forwardRef(_D);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const CD=m.forwardRef(ED);function jD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const _m=m.forwardRef(jD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const AD=m.forwardRef(RD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Lu=m.forwardRef(TD);function LD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const bm=m.forwardRef(LD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const MD=m.forwardRef(DD);function OD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const wm=m.forwardRef(OD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const FD=m.forwardRef(ID);function BD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const UD=m.forwardRef(BD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ry=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const fs=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const sy=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const dS=m.forwardRef(HD);function qD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const iy=m.forwardRef(qD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const GD=m.forwardRef(WD);function KD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const pS=m.forwardRef(KD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const a3=m.forwardRef(i3);function o3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Ep=m.forwardRef(o3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const c3=m.forwardRef(l3);function u3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Du=m.forwardRef(u3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const g3=m.forwardRef(h3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const Hc=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Pg=m.forwardRef(v3);function y3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const fS=m.forwardRef(y3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const k3=m.forwardRef(w3);function S3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const tn=m.forwardRef(S3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const N3=m.forwardRef(j3);function P3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(P3);function mS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{ay(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>ay("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=hS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const L3={},oy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(L3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},D3=e=>e?oy(e):oy;var gS={exports:{}},xS={},vS={exports:{}},yS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function M3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var O3=typeof Object.is=="function"?Object.is:M3,I3=La.useState,F3=La.useEffect,B3=La.useLayoutEffect,U3=La.useDebugValue;function V3(e,t){var n=t(),r=I3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return B3(function(){s.value=n,s.getSnapshot=t,Cp(s)&&i({inst:s})},[e,n,t]),F3(function(){return Cp(s)&&i({inst:s}),e(function(){Cp(s)&&i({inst:s})})},[e]),U3(n),n}function Cp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!O3(e,n)}catch{return!0}}function z3(e,t){return t()}var $3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?z3:V3;yS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:$3;vS.exports=yS;var H3=vS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yd=m,q3=H3;function W3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var G3=typeof Object.is=="function"?Object.is:W3,K3=q3.useSyncExternalStore,Q3=yd.useRef,Y3=yd.useEffect,X3=yd.useMemo,J3=yd.useDebugValue;xS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=Q3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=X3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,G3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=K3(e,i[0],i[1]);return Y3(function(){a.hasValue=!0,a.value=l},[l]),J3(l),l};gS.exports=xS;var Z3=gS.exports;const eM=Wu(Z3),_S={},{useDebugValue:tM}=pn,{useSyncExternalStoreWithSelector:nM}=eM;let ly=!1;const rM=e=>e;function sM(e,t=rM,n){(_S?"production":void 0)!=="production"&&n&&!ly&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ly=!0);const r=nM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tM(r),r}const cy=e=>{(_S?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?D3(e):e,n=(r,s)=>sM(t,r,s);return Object.assign(n,t),n},iM=e=>e?cy(e):cy;function bS(e,t){return function(){return e.apply(t,arguments)}}const{toString:aM}=Object.prototype,{getPrototypeOf:Rg}=Object,{iterator:_d,toStringTag:wS}=Symbol,bd=(e=>t=>{const n=aM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Br=e=>(e=e.toLowerCase(),t=>bd(t)===e),wd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=wd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Qn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const kS=Br("ArrayBuffer");function oM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&kS(e.buffer),t}const lM=wd("string"),Qn=wd("function"),SS=wd("number"),Nl=e=>e!==null&&typeof e=="object",cM=e=>e===!0||e===!1,qc=e=>{if(bd(e)!=="object")return!1;const t=Rg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(wS in e)&&!(_d in e)},uM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},dM=Br("Date"),pM=Br("File"),fM=Br("Blob"),mM=Br("FileList"),hM=e=>Nl(e)&&Qn(e.pipe),gM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Qn(e.append)&&((t=bd(e))==="formdata"||t==="object"&&Qn(e.toString)&&e.toString()==="[object FormData]"))},xM=Br("URLSearchParams"),[vM,yM,_M,bM]=["ReadableStream","Request","Response","Headers"].map(Br),wM=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,CS=e=>!Da(e)&&e!==Ni;function km(){const{caseless:e,skipUndefined:t}=CS(this)&&this||{},n={},r=(s,i)=>{const a=e&&ES(n,i)||i;qc(n[a])&&qc(s)?n[a]=km(n[a],s):qc(s)?n[a]=km({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Qn(s)?e[i]=bS(s,n):e[i]=s},{allOwnKeys:r}),e),SM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),EM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},CM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Rg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},jM=(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},NM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!SS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},PM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Rg(Uint8Array)),RM=(e,t)=>{const r=(e&&e[_d]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},AM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},TM=Br("HTMLFormElement"),LM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),uy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),DM=Br("RegExp"),jS=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},MM=e=>{jS(e,(t,n)=>{if(Qn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Qn(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+"'")})}})},OM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},IM=()=>{},FM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function BM(e){return!!(e&&Qn(e.append)&&e[wS]==="FormData"&&e[_d])}const UM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},VM=Br("AsyncFunction"),zM=e=>e&&(Nl(e)||Qn(e))&&Qn(e.then)&&Qn(e.catch),NS=((e,t)=>e?setImmediate:t?((n,r)=>(Ni.addEventListener("message",({source:s,data:i})=>{s===Ni&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ni.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Qn(Ni.postMessage)),$M=typeof queueMicrotask<"u"?queueMicrotask.bind(Ni):typeof process<"u"&&process.nextTick||NS,HM=e=>e!=null&&Qn(e[_d]),V={isArray:$a,isArrayBuffer:kS,isBuffer:jl,isFormData:gM,isArrayBufferView:oM,isString:lM,isNumber:SS,isBoolean:cM,isObject:Nl,isPlainObject:qc,isEmptyObject:uM,isReadableStream:vM,isRequest:yM,isResponse:_M,isHeaders:bM,isUndefined:Da,isDate:dM,isFile:pM,isBlob:fM,isRegExp:DM,isFunction:Qn,isStream:hM,isURLSearchParams:xM,isTypedArray:PM,isFileList:mM,forEach:Pl,merge:km,extend:kM,trim:wM,stripBOM:SM,inherits:EM,toFlatObject:CM,kindOf:bd,kindOfTest:Br,endsWith:jM,toArray:NM,forEachEntry:RM,matchAll:AM,isHTMLForm:TM,hasOwnProperty:uy,hasOwnProp:uy,reduceDescriptors:jS,freezeMethods:MM,toObjectSet:OM,toCamelCase:LM,noop:IM,toFiniteNumber:FM,findKey:ES,global:Ni,isContextDefined:CS,isSpecCompliantForm:BM,toJSONObject:UM,isAsyncFn:VM,isThenable:zM,setImmediate:NS,asap:$M,isIterable:HM};function Me(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}V.inherits(Me,Error,{toJSON:function(){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:V.toJSONObject(this.config),code:this.code,status:this.status}}});const PS=Me.prototype,RS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{RS[e]={value:e}});Object.defineProperties(Me,RS);Object.defineProperty(PS,"isAxiosError",{value:!0});Me.from=(e,t,n,r,s,i)=>{const a=Object.create(PS);V.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Me.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const qM=null;function Sm(e){return V.isPlainObject(e)||V.isArray(e)}function AS(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function dy(e,t,n){return e?e.concat(t).map(function(s,i){return s=AS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function WM(e){return V.isArray(e)&&!e.some(Sm)}const GM=V.toFlatObject(V,{},null,function(t){return/^is[A-Z]/.test(t)});function kd(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!V.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&V.isSpecCompliantForm(t);if(!V.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(V.isDate(g))return g.toISOString();if(V.isBoolean(g))return g.toString();if(!c&&V.isBlob(g))throw new Me("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(g)||V.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(V.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(V.isArray(g)&&WM(g)||(V.isFileList(g)||V.endsWith(v,"[]"))&&(x=V.toArray(g)))return v=AS(v),x.forEach(function(_,S){!(V.isUndefined(_)||_===null)&&t.append(a===!0?dy([v],S,i):a===null?v:v+"[]",u(_))}),!1}return Sm(g)?!0:(t.append(dy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(GM,{defaultVisitor:d,convertValue:u,isVisitable:Sm});function h(g,v){if(!V.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),V.forEach(g,function(x,y){(!(V.isUndefined(x)||x===null)&&s.call(t,x,V.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!V.isObject(e))throw new TypeError("data must be an object");return h(e),t}function py(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ag(e,t){this._pairs=[],e&&kd(e,this,t)}const TS=Ag.prototype;TS.append=function(t,n){this._pairs.push([t,n])};TS.toString=function(t){const n=t?function(r){return t.call(this,r,py)}:py;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function KM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function LS(e,t,n){if(!t)return e;const r=n&&n.encode||KM;V.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=V.isURLSearchParams(t)?t.toString():new Ag(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class fy{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){V.forEach(this.handlers,function(r){r!==null&&t(r)})}}const DS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},QM=typeof URLSearchParams<"u"?URLSearchParams:Ag,YM=typeof FormData<"u"?FormData:null,XM=typeof Blob<"u"?Blob:null,JM={isBrowser:!0,classes:{URLSearchParams:QM,FormData:YM,Blob:XM},protocols:["http","https","file","blob","url","data"]},Tg=typeof window<"u"&&typeof document<"u",Em=typeof navigator=="object"&&navigator||void 0,ZM=Tg&&(!Em||["ReactNative","NativeScript","NS"].indexOf(Em.product)<0),e4=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",t4=Tg&&window.location.href||"http://localhost",n4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Tg,hasStandardBrowserEnv:ZM,hasStandardBrowserWebWorkerEnv:e4,navigator:Em,origin:t4},Symbol.toStringTag,{value:"Module"})),Cn={...n4,...JM};function r4(e,t){return kd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&V.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function s4(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function i4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&V.isArray(s)?s.length:a,c?(V.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!V.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&V.isArray(s[a])&&(s[a]=i4(s[a])),!l)}if(V.isFormData(e)&&V.isFunction(e.entries)){const n={};return V.forEachEntry(e,(r,s)=>{t(s4(r),s,n,0)}),n}return null}function a4(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:DS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=V.isObject(t);if(i&&V.isHTMLForm(t)&&(t=new FormData(t)),V.isFormData(t))return s?JSON.stringify(MS(t)):t;if(V.isArrayBuffer(t)||V.isBuffer(t)||V.isStream(t)||V.isFile(t)||V.isBlob(t)||V.isReadableStream(t))return t;if(V.isArrayBufferView(t))return t.buffer;if(V.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return r4(t,this.formSerializer).toString();if((l=V.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return kd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),a4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(V.isResponse(t)||V.isReadableStream(t))return t;if(t&&V.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Me.from(l,Me.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const o4=V.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"]),l4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&o4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},my=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function Wc(e){return e===!1||e==null?e:V.isArray(e)?e.map(Wc):String(e)}function c4(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 u4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function jp(e,t,n,r,s){if(V.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!V.isString(t)){if(V.isString(r))return t.indexOf(r)!==-1;if(V.isRegExp(r))return r.test(t)}}function d4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function p4(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Yn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=V.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=Wc(l))}const a=(l,c)=>V.forEach(l,(u,d)=>i(u,d,c));if(V.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(V.isString(t)&&(t=t.trim())&&!u4(t))a(l4(t),n);else if(V.isObject(t)&&V.isIterable(t)){let l={},c,u;for(const d of t){if(!V.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?V.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=V.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return c4(s);if(V.isFunction(n))return n.call(this,s,r);if(V.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=V.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||jp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=V.findKey(r,a);l&&(!n||jp(r,r[l],l,n))&&(delete r[l],s=!0)}}return V.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||jp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return V.forEach(this,(s,i)=>{const a=V.findKey(r,i);if(a){n[a]=Wc(s),delete n[i];return}const l=t?d4(i):String(i).trim();l!==i&&delete n[i],n[l]=Wc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return V.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&V.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(s=>r.set(s)),r}static accessor(t){const r=(this[my]=this[my]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(p4(s,a),r[l]=!0)}return V.isArray(t)?t.forEach(i):i(t),this}};Yn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(Yn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});V.freezeMethods(Yn);function Np(e,t){const n=this||Rl,r=t||n,s=Yn.from(r.headers);let i=r.data;return V.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function OS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Me.call(this,e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError"}V.inherits(Ha,Me,{__CANCEL__:!0});function IS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Me("Request failed with status code "+n.status,[Me.ERR_BAD_REQUEST,Me.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function f4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function m4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Mu=(e,t,n=3)=>{let r=0;const s=m4(50,250);return h4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},hy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},gy=e=>(...t)=>V.asap(()=>e(...t)),g4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,x4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&l.push(`path=${r}`),V.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),V.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function v4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function y4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function FS(e,t,n){let r=!v4(t);return e&&(r||n==!1)?y4(e,t):t}const xy=e=>e instanceof Yn?{...e}:e;function Fi(e,t){t=t||{};const n={};function r(u,d,p,f){return V.isPlainObject(u)&&V.isPlainObject(d)?V.merge.call({caseless:f},u,d):V.isPlainObject(d)?V.merge({},d):V.isArray(d)?d.slice():d}function s(u,d,p,f){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!V.isUndefined(d))return r(void 0,d)}function a(u,d){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(xy(u),xy(d),p,!0)};return V.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);V.isUndefined(f)&&p!==l||(n[d]=f)}),n}const BS=e=>{const t=Fi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Yn.from(a),t.url=LS(FS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),V.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&V.isFunction(r)&&(r=r(t)),r||r!==!1&&g4(t.url))){const c=s&&i&&x4.read(i);c&&a.set(s,c)}return t},_4=typeof XMLHttpRequest<"u",b4=_4&&function(e){return new Promise(function(n,r){const s=BS(e);let i=s.data;const a=Yn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Yn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),R={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};IS(function(A){n(A),v()},function(A){r(A),v()},R),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Me("Request aborted",Me.ECONNABORTED,e,b)),b=null)},b.onerror=function(S){const R=S&&S.message?S.message:"Network Error",E=new Me(R,Me.ERR_NETWORK,e,b);E.event=S||null,r(E),b=null},b.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const R=s.transitional||DS;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new Me(S,R.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&V.forEach(a.toJSON(),function(S,R){b.setRequestHeader(R,S)}),V.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Mu(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Mu(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=f4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Me("Unsupported protocol "+y+":",Me.ERR_BAD_REQUEST,e));return}b.send(i||null)})},w4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Me?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Me(`timeout ${t} of ms exceeded`,Me.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>V.asap(l),c}},k4=function*(e,t){let n=e.byteLength;if(n{const s=S4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},yy=64*1024,{isFunction:gc}=V,C4=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:_y,TextEncoder:by}=V.global,wy=(e,...t)=>{try{return!!e(...t)}catch{return!1}},j4=e=>{e=V.merge.call({skipUndefined:!0},C4,e);const{fetch:t,Request:n,Response:r}=e,s=t?gc(t):typeof fetch=="function",i=gc(n),a=gc(r);if(!s)return!1;const l=s&&gc(_y),c=s&&(typeof by=="function"?(g=>v=>g.encode(v))(new by):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&wy(()=>{let g=!1;const v=new n(Cn.origin,{body:new _y,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&wy(()=>V.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Me(`Response type '${g}' is not supported`,Me.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(V.isBlob(g))return g.size;if(V.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(V.isArrayBufferView(g)||V.isArrayBuffer(g))return g.byteLength;if(V.isURLSearchParams(g)&&(g=g+""),V.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=V.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:S,onDownloadProgress:R,onUploadProgress:E,responseType:A,headers:D,withCredentials:z="same-origin",fetchOptions:N}=BS(g),H=t||fetch;A=A?(A+"").toLowerCase():"text";let X=w4([y,_&&_.toAbortSignal()],S),re=null;const oe=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let fe;try{if(E&&u&&b!=="get"&&b!=="head"&&(fe=await h(D,x))!==0){let ue=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(V.isFormData(x)&&(pe=ue.headers.get("content-type"))&&D.setContentType(pe),ue.body){const[L,be]=hy(fe,Mu(gy(E)));x=vy(ue.body,yy,L,be)}}V.isString(z)||(z=z?"include":"omit");const xe=i&&"credentials"in n.prototype,ae={...N,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?z:void 0};re=i&&new n(v,ae);let B=await(i?H(re,N):H(v,ae));const q=d&&(A==="stream"||A==="response");if(d&&(R||q&&oe)){const ue={};["status","statusText","headers"].forEach(Le=>{ue[Le]=B[Le]});const pe=V.toFiniteNumber(B.headers.get("content-length")),[L,be]=R&&hy(pe,Mu(gy(R),!0))||[];B=new r(vy(B.body,yy,L,()=>{be&&be(),oe&&oe()}),ue)}A=A||"text";let j=await p[V.findKey(p,A)||"text"](B,g);return!q&&oe&&oe(),await new Promise((ue,pe)=>{IS(ue,pe,{data:j,headers:Yn.from(B.headers),status:B.status,statusText:B.statusText,config:g,request:re})})}catch(xe){throw oe&&oe(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Me("Network Error",Me.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Me.from(xe,xe&&xe.code,g,re)}}},N4=new Map,US=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=N4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:j4(t)),d=u;return u};US();const Lg={http:qM,xhr:b4,fetch:{get:US}};V.forEach(Lg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const ky=e=>`- ${e}`,P4=e=>V.isFunction(e)||e===null||e===!1;function R4(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(ky).join(` +`):" "+ky(a[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const VS={getAdapter:R4,adapters:Lg};function Pp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function Sy(e){return Pp(e),e.headers=Yn.from(e.headers),e.data=Np.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),VS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Pp(e),r.data=Np.call(e,e.transformResponse,r),r.headers=Yn.from(r.headers),r},function(r){return OS(r)||(Pp(e),r&&r.response&&(r.response.data=Np.call(e,e.transformResponse,r.response),r.response.headers=Yn.from(r.response.headers))),Promise.reject(r)})}const zS="1.13.2",Sd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Sd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ey={};Sd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+zS+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Me(s(a," has been removed"+(n?" in "+n:"")),Me.ERR_DEPRECATED);return n&&!Ey[a]&&(Ey[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};Sd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function A4(e,t,n){if(typeof e!="object")throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Me("option "+i+" must be "+c,Me.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Me("Unknown option "+i,Me.ERR_BAD_OPTION)}}const Gc={assertOptions:A4,validators:Sd},qr=Gc.validators;let Ti=class{constructor(t){this.defaults=t||{},this.interceptors={request:new fy,response:new fy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fi(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Gc.assertOptions(r,{silentJSONParsing:qr.transitional(qr.boolean),forcedJSONParsing:qr.transitional(qr.boolean),clarifyTimeoutError:qr.transitional(qr.boolean)},!1),s!=null&&(V.isFunction(s)?n.paramsSerializer={serialize:s}:Gc.assertOptions(s,{encode:qr.function,serialize:qr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gc.assertOptions(n,{baseUrl:qr.spelling("baseURL"),withXsrfToken:qr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&V.merge(i.common,i[n.method]);i&&V.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Yn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[Sy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 $S(function(s){t=s}),cancel:t}}};function L4(e){return function(n){return e.apply(null,n)}}function D4(e){return V.isObject(e)&&e.isAxiosError===!0}const Cm={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(Cm).forEach(([e,t])=>{Cm[t]=e});function HS(e){const t=new Ti(e),n=bS(Ti.prototype.request,t);return V.extend(n,Ti.prototype,t,{allOwnKeys:!0}),V.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return HS(Fi(e,s))},n}const qt=HS(Rl);qt.Axios=Ti;qt.CanceledError=Ha;qt.CancelToken=T4;qt.isCancel=OS;qt.VERSION=zS;qt.toFormData=kd;qt.AxiosError=Me;qt.Cancel=qt.CanceledError;qt.all=function(t){return Promise.all(t)};qt.spread=L4;qt.isAxiosError=D4;qt.mergeConfig=Fi;qt.AxiosHeaders=Yn;qt.formToJSON=e=>MS(V.isHTMLForm(e)?new FormData(e):e);qt.getAdapter=VS.getAdapter;qt.HttpStatusCode=Cm;qt.default=qt;const{Axios:F8,AxiosError:B8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=qt,ye=qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),jm="lakemeter:session-expired";function Ur(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let Nm=!1;const M4=()=>{Nm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),Nm||(Nm=!0,window.dispatchEvent(new CustomEvent(jm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const O4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Cy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},I4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},F4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},B4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},U4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},V4=async e=>{await ye.delete(`/estimates/${e}`)},z4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},$4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},H4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},q4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},W4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},G4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},K4=async e=>{await ye.delete(`/line-items/${e}`)},Q4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},Y4=async e=>{await ye.post("/estimates/reorder",e)},X4=async()=>{const{data:e}=await ye.get("/workload-types");return e},xc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},J4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Ur(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},Z4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},eO=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},tO=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},nO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},jy=async()=>{const{data:e}=await ye.get("/instances/families"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},rO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},sO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Ny=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},Py=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Ur(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ry=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Ur(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Ay=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},iO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ty=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Ur(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Pm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},qS=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Ur(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},aO=async e=>{const t=[];try{const n=await Pm(),r=5;for(let s=0;sqS(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},oO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},WS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},lO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>WS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},cO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},uO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},dO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},pO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},GS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},fO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},sE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},iE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},aE=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},oE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ly=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?gO(n):mO(n);case"ALL_PURPOSE":return t?xO(n):hO(n);case"DLT":return t?XS(n):YS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?QS(n):KS(n);case"VECTOR_SEARCH":return JS(n);case"MODEL_SERVING":return ZS(n);case"FMAPI_DATABRICKS":return eE(n);case"FMAPI_PROPRIETARY":return tE(n);case"LAKEBASE":return oE(n);case"DATABRICKS_APPS":return nE(n);case"CLEAN_ROOM":return rE(n);case"AI_PARSE":return sE(n);case"SHUTTERSTOCK_IMAGEAI":return iE(n);case"LAKEFLOW_CONNECT":return aE(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function ls(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([ls("instance-dbu-rates.json"),ls("dbu-multipliers.json"),ls("dbu-rates.json"),ls("dbsql-rates.json"),ls("dbsql-warehouse-config.json"),ls("vector-search-rates.json"),ls("model-serving-rates.json"),ls("fmapi-databricks-rates.json"),ls("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),lE()}}function lE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Rm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function cE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Dg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Dy=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function uE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Dy;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Dy;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const vc={},jO="v6",us=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(us);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(us),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(us),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(us),null;return t}catch{return localStorage.removeItem(us),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(us,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(us)}catch{}}const Rp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Ap=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Tp=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Lp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Dp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Mp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Op=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],bs=iM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"CLEAN_ROOM",display_name:"Clean Room",description:"Secure data collaboration",sku_product_type_standard:"CLEAN_ROOMS_COLLABORATOR",show_usage_runs:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"LAKEFLOW_CONNECT",display_name:"Lakeflow Connect",description:"Data ingestion pipelines",sku_product_type_standard:"DELTA_LIVE_TABLES_SERVERLESS",show_usage_runs:!0}],cloudProviders:Rp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Ap,dbsqlWarehouseTypes:[],dltEditions:Tp,fmapiProviders:Op,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Lp,vmPaymentOptions:Dp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Mp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:lE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await O4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Cy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Cy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await F4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await B4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await U4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await V4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await z4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await q4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await W4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await G4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await K4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Rp,dbsqlSizes:u.dbsqlSizes||Ap,dltEditions:u.dltEditions||Tp,fmapiProviders:u.fmapiProviders||Op,vmPricingTiers:u.vmPricingTiers||Lp,vmPaymentOptions:u.vmPaymentOptions||Dp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Mp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,S,R,E,A,D,z,N,H,X,re,oe]=await Promise.all([X4().catch(()=>r.workloadTypes),Z4().catch(()=>Rp),eO().catch(()=>Ap),tO().catch(()=>Tp),nO().catch(()=>Op),dO().catch(()=>Lp),pO().catch(()=>Dp),oO().catch(()=>null),cO().catch(()=>null),Ay().catch(()=>Mp),Promise.resolve([]),Ty(s).catch(()=>[]),xc("aws").catch(()=>[]),xc("azure").catch(()=>[]),xc("gcp").catch(()=>[]),Ry(s).catch(()=>[]),Py(s).catch(()=>[]),aO(s).catch(()=>[]),lO(s).catch(()=>[]),jy().catch(()=>[]),Ny().catch(()=>[]),Pm().catch(()=>[])]),fe={aws:R,azure:E,gcp:A},xe=R,ae={};N.forEach(q=>{const j=`${q.model}:${q.rate_type}`;ae[j]=q});const B={};H.forEach(q=>{const j=`${q.provider}:${q.model}:${q.rate_type}`;B[j]=q}),e({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:xe,regionsMap:fe,photonMultipliers:D,vectorSearchModes:z,fmapiDatabricksRates:ae,fmapiProprietaryRates:B,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:oe,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:xe,regionsMap:fe,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:oe})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await J4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await jy();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ty(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Ny();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Pm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await uO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in vc){await vc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=sO({cloud:n.toUpperCase(),region:r,instance_type:s});vc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete vc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Dg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Ay();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ry(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await Py(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await qS(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await WS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ly(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ly(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await XS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await YS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await QS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await KS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await JS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await ZS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await eE({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await tE({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await oE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await nE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"CLEAN_ROOM":c=await rE({...l,collaborators:n.clean_room_collaborators||1,days_per_month:n.days_per_month||30});break;case"AI_PARSE":c=await sE({...l,mode:n.ai_parse_mode||"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1,hours_per_month:n.hours_per_month||0});break;case"SHUTTERSTOCK_IMAGEAI":c=await iE({...l,images_per_month:n.shutterstock_images||100});break;case"LAKEFLOW_CONNECT":c=await aE({...l,dlt_edition:"ADVANCED",runs_per_day:n.runs_per_day||void 0,avg_runtime_minutes:n.avg_runtime_minutes||void 0,days_per_month:n.days_per_month||void 0,hours_per_month:n.hours_per_month||void 0,gateway_enabled:n.lakeflow_connect_gateway_enabled||!1,gateway_instance_type:n.lakeflow_connect_gateway_instance||void 0});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await $4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await H4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function My(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Oy(e.value):!1:Oy(e)}function Oy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function dE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Am(e){return e.toLowerCase()}class Xn{constructor(t,n){this.attribute=n,this.property=t}}Xn.prototype.attribute="";Xn.prototype.booleanish=!1;Xn.prototype.boolean=!1;Xn.prototype.commaOrSpaceSeparated=!1;Xn.prototype.commaSeparated=!1;Xn.prototype.defined=!1;Xn.prototype.mustUseProperty=!1;Xn.prototype.number=!1;Xn.prototype.overloadedBoolean=!1;Xn.prototype.property="";Xn.prototype.spaceSeparated=!1;Xn.prototype.space=void 0;let FO=0;const Fe=Hi(),Kt=Hi(),Tm=Hi(),ne=Hi(),yt=Hi(),_a=Hi(),tr=Hi();function Hi(){return 2**++FO}const Lm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Fe,booleanish:Kt,commaOrSpaceSeparated:tr,commaSeparated:_a,number:ne,overloadedBoolean:Tm,spaceSeparated:yt},Symbol.toStringTag,{value:"Module"})),Ip=Object.keys(Lm);class Mg extends Xn{constructor(t,n,r,s){let i=-1;if(super(t,n),Iy(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Fy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Fy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Mg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=dE([pE,BO,hE,gE,xE],"html"),Og=dE([pE,UO,hE,gE,xE],"svg");function KO(e){return e.join(" ").trim()}var Ig={},By=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,Uy="/",Vy="*",ki="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(Uy!=e.charAt(0)||Vy!=e.charAt(1))){for(var v=2;ki!=e.charAt(v)&&(Vy!=e.charAt(v)||Uy!=e.charAt(v+1));)++v;if(v+=2,ki===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:zy(v[0].replace(By,ki)),value:b?zy(b[0].replace(By,ki)):ki});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function zy(e){return e?e.replace(tI,ki):ki}var aI=iI,oI=ms&&ms.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ig,"__esModule",{value:!0});Ig.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Ed={};Object.defineProperty(Ed,"__esModule",{value:!0});Ed.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},$y=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,$y):e=e.replace(fI,$y),e.replace(dI,gI))};Ed.camelCase=xI;var vI=ms&&ms.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Ig),_I=Ed;function Dm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Dm.default=Dm;var bI=Dm;const wI=Wu(bI),vE=yE("end"),Fg=yE("start");function yE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Fg(e),n=vE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Hy(e.position):"start"in e||"end"in e?Hy(e):"line"in e||"column"in e?Mm(e):""}function Mm(e){return qy(e&&e.line)+":"+qy(e&&e.column)}function Hy(e){return Mm(e&&e.start)+"-"+Mm(e&&e.end)}function qy(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),_E="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Og:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=bE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function bE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Og,e.schema=s),e.ancestors.push(t);const i=kE(e,t.tagName,!1),a=II(e,t);let l=Vg(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),wE(e,a,i,t),Ug(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Og,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:kE(e,t.name,!0),a=FI(e,t),l=Vg(e,t);return wE(e,a,i,t),Ug(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Ug(r,Vg(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function wE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Ug(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Fg(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=BI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function FI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Vg(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(or(e,e.length,0,t),e):t}const Ky={}.hasOwnProperty;function EE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Or(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Bn=di(/[A-Za-z]/),Nn=di(/[\dA-Za-z]/),KI=di(/[#-'*+\--9=?A-Z^-~]/);function Ou(e){return e!==null&&(e<32||e===127)}const Om=di(/\d/),QI=di(/[\dA-Fa-f]/),YI=di(/[!-/:-@[-`{-~]/);function je(e){return e!==null&&e<-2}function ht(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const Cd=di(new RegExp("\\p{P}|\\p{S}","u")),Bi=di(/\s/);function di(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Ye(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return He(c)?(e.enter(n),l(c)):t(c)}function l(c){return He(c)&&i++a))return;const A=t.events.length;let D=A,z,N;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if(z){N=t.events[D][1].end;break}z=!0}for(x(r),E=A;E_;){const R=n[S];t.containerState=R[1],R[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tF(e,t,n){return Ye(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||ht(e)||Bi(e))return 1;if(Cd(e))return 2}function jd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Yy(p,-c),Yy(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=yr(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=yr(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=yr(u,jd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=yr(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=yr(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,or(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&He(E)?Ye(e,y,"linePrefix",i+1)(E):y(E)}function y(E){return E===null||je(E)?e.check(Xy,v,S)(E):(e.enter("codeFlowValue"),_(E))}function _(E){return E===null||je(E)?(e.exit("codeFlowValue"),y(E)):(e.consume(E),_)}function S(E){return e.exit("codeFenced"),t(E)}function R(E,A,D){let z=0;return N;function N(fe){return E.enter("lineEnding"),E.consume(fe),E.exit("lineEnding"),H}function H(fe){return E.enter("codeFencedFence"),He(fe)?Ye(E,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(fe):X(fe)}function X(fe){return fe===l?(E.enter("codeFencedFenceSequence"),re(fe)):D(fe)}function re(fe){return fe===l?(z++,E.consume(fe),re):z>=a?(E.exit("codeFencedFenceSequence"),He(fe)?Ye(E,oe,"whitespace")(fe):oe(fe)):D(fe)}function oe(fe){return fe===null||je(fe)?(E.exit("codeFencedFence"),A(fe)):D(fe)}}}function fF(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hF},mF={partial:!0,tokenize:gF};function hF(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Ye(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):je(u)?e.attempt(mF,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||je(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gF(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):je(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Ye(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):je(a)?s(a):n(a)}}const xF={name:"codeText",previous:yF,resolve:vF,tokenize:_F};function vF(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function AE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Ou(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||je(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||ht(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):je(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||je(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!He(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function LE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):je(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Ye(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||je(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return je(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):He(s)?Ye(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NF={name:"definition",tokenize:RF},PF={partial:!0,tokenize:AF};function RF(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return TE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Or(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return ht(h)?Do(e,u)(h):u(h)}function u(h){return AE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PF,p,p)(h)}function p(h){return He(h)?Ye(e,f,"whitespace")(h):f(h)}function f(h){return h===null||je(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AF(e,t,n){return r;function r(l){return ht(l)?Do(e,s)(l):n(l)}function s(l){return LE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return He(l)?Ye(e,a,"whitespace")(l):a(l)}function a(l){return l===null||je(l)?t(l):n(l)}}const TF={name:"hardBreakEscape",tokenize:LF};function LF(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return je(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DF={name:"headingAtx",resolve:MF,tokenize:OF};function MF(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},or(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OF(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||ht(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||je(d)?(e.exit("atxHeading"),t(d)):He(d)?Ye(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||ht(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Zy=["pre","script","style","textarea"],FF={concrete:!0,name:"htmlFlow",resolveTo:VF,tokenize:zF},BF={partial:!0,tokenize:HF},UF={partial:!0,tokenize:$F};function VF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zF(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:j):Bn(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):Bn(L)?(e.consume(L),s=4,r.interrupt?t:j):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:j):n(L)}function g(L){const be="CDATA[";return L===be.charCodeAt(l++)?(e.consume(L),l===be.length?r.interrupt?t:X:g):n(L)}function v(L){return Bn(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||ht(L)){const be=L===47,Le=a.toLowerCase();return!be&&!i&&Zy.includes(Le)?(s=1,r.interrupt?t(L):X(L)):IF.includes(a.toLowerCase())?(s=6,be?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return He(L)?(e.consume(L),y):N(L)}function _(L){return L===47?(e.consume(L),N):L===58||L===95||Bn(L)?(e.consume(L),S):He(L)?(e.consume(L),_):N(L)}function S(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),S):R(L)}function R(L){return L===61?(e.consume(L),E):He(L)?(e.consume(L),R):_(L)}function E(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,A):He(L)?(e.consume(L),E):D(L)}function A(L){return L===c?(e.consume(L),c=null,z):L===null||je(L)?n(L):(e.consume(L),A)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||ht(L)?R(L):(e.consume(L),D)}function z(L){return L===47||L===62||He(L)?_(L):n(L)}function N(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||je(L)?X(L):He(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),ae):L===62&&s===4?(e.consume(L),ue):L===63&&s===3?(e.consume(L),j):L===93&&s===5?(e.consume(L),q):je(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(BF,pe,re)(L)):L===null||je(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UF,oe,pe)(L)}function oe(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),fe}function fe(L){return L===null||je(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),j):X(L)}function ae(L){return L===47?(e.consume(L),a="",B):X(L)}function B(L){if(L===62){const be=a.toLowerCase();return Zy.includes(be)?(e.consume(L),ue):X(L)}return Bn(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),B):X(L)}function q(L){return L===93?(e.consume(L),j):X(L)}function j(L){return L===62?(e.consume(L),ue):L===45&&s===2?(e.consume(L),j):X(L)}function ue(L){return L===null||je(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),ue)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $F(e,t,n){const r=this;return s;function s(a){return je(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HF(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qF={name:"htmlText",tokenize:WF};function WF(e,t,n){const r=this;let s,i,a;return l;function l(j){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(j),c}function c(j){return j===33?(e.consume(j),u):j===47?(e.consume(j),R):j===63?(e.consume(j),_):Bn(j)?(e.consume(j),D):n(j)}function u(j){return j===45?(e.consume(j),d):j===91?(e.consume(j),i=0,g):Bn(j)?(e.consume(j),y):n(j)}function d(j){return j===45?(e.consume(j),h):n(j)}function p(j){return j===null?n(j):j===45?(e.consume(j),f):je(j)?(a=p,ae(j)):(e.consume(j),p)}function f(j){return j===45?(e.consume(j),h):p(j)}function h(j){return j===62?xe(j):j===45?f(j):p(j)}function g(j){const ue="CDATA[";return j===ue.charCodeAt(i++)?(e.consume(j),i===ue.length?v:g):n(j)}function v(j){return j===null?n(j):j===93?(e.consume(j),b):je(j)?(a=v,ae(j)):(e.consume(j),v)}function b(j){return j===93?(e.consume(j),x):v(j)}function x(j){return j===62?xe(j):j===93?(e.consume(j),x):v(j)}function y(j){return j===null||j===62?xe(j):je(j)?(a=y,ae(j)):(e.consume(j),y)}function _(j){return j===null?n(j):j===63?(e.consume(j),S):je(j)?(a=_,ae(j)):(e.consume(j),_)}function S(j){return j===62?xe(j):_(j)}function R(j){return Bn(j)?(e.consume(j),E):n(j)}function E(j){return j===45||Nn(j)?(e.consume(j),E):A(j)}function A(j){return je(j)?(a=A,ae(j)):He(j)?(e.consume(j),A):xe(j)}function D(j){return j===45||Nn(j)?(e.consume(j),D):j===47||j===62||ht(j)?z(j):n(j)}function z(j){return j===47?(e.consume(j),xe):j===58||j===95||Bn(j)?(e.consume(j),N):je(j)?(a=z,ae(j)):He(j)?(e.consume(j),z):xe(j)}function N(j){return j===45||j===46||j===58||j===95||Nn(j)?(e.consume(j),N):H(j)}function H(j){return j===61?(e.consume(j),X):je(j)?(a=H,ae(j)):He(j)?(e.consume(j),H):z(j)}function X(j){return j===null||j===60||j===61||j===62||j===96?n(j):j===34||j===39?(e.consume(j),s=j,re):je(j)?(a=X,ae(j)):He(j)?(e.consume(j),X):(e.consume(j),oe)}function re(j){return j===s?(e.consume(j),s=void 0,fe):j===null?n(j):je(j)?(a=re,ae(j)):(e.consume(j),re)}function oe(j){return j===null||j===34||j===39||j===60||j===61||j===96?n(j):j===47||j===62||ht(j)?z(j):(e.consume(j),oe)}function fe(j){return j===47||j===62||ht(j)?z(j):n(j)}function xe(j){return j===62?(e.consume(j),e.exit("htmlTextData"),e.exit("htmlText"),t):n(j)}function ae(j){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),B}function B(j){return He(j)?Ye(e,q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):q(j)}function q(j){return e.enter("htmlTextData"),a(j)}}const Hg={name:"labelEnd",resolveAll:YF,resolveTo:XF,tokenize:JF},GF={tokenize:ZF},KF={tokenize:eB},QF={tokenize:tB};function YF(e){let t=-1;const n=[];for(;++t=3&&(u===null||je(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),He(u)?Ye(e,l,"whitespace")(u):l(u))}}const $n={continuation:{tokenize:dB},exit:fB,name:"list",tokenize:uB},lB={partial:!0,tokenize:mB},cB={partial:!0,tokenize:pB};function uB(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Om(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Kc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Om(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lB,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return He(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dB(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ye(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!He(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cB,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ye(e,e.attempt($n,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pB(e,t,n){const r=this;return Ye(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fB(e){e.exit(this.containerState.type)}function mB(e,t,n){const r=this;return Ye(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!He(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const e_={name:"setextUnderline",resolveTo:hB,tokenize:gB};function hB(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gB(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),He(u)?Ye(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||je(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xB={tokenize:vB};function vB(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Ye(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kF,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yB={resolveAll:ME()},_B=DE("string"),bB=DE("text");function DE(e){return{resolveAll:ME(e==="text"?wB:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MB(e,t){let n=-1;const r=[];let s;for(;++n0){const Be=Q.tokenStack[Q.tokenStack.length-1];(Be[1]||n_).call(Q,void 0,Be[0])}for(F.position={start:Ms(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Ms(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},Ee=-1;++Ee0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function FE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return FE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return FE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):BE(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Fg(t.children[1]),c=vE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(i_(t.slice(s),s>0,!1)),i.join("")}function i_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===r_||i===s_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===r_||i===s_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WB,break:GB,code:KB,delete:QB,emphasis:YB,footnoteReference:XB,heading:JB,html:ZB,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:yc,yaml:yc,definition:yc,footnoteDefinition:yc};function yc(){}const UE=-1,Nd=0,Mo=1,Iu=2,qg=3,Wg=4,Gg=5,Kg=6,VE=7,zE=8,a_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case Nd:case UE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Iu:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case qg:return n(new Date(a),s);case Wg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Gg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Kg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case VE:{const{name:l,message:c}=a;return n(new a_[l](c),s)}case zE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new a_[i](a),s)};return r},o_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[Nd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Iu,Ki];case"Date":return[qg,Ki];case"RegExp":return[Wg,Ki];case"Map":return[Gg,Ki];case"Set":return[Kg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[VE,n]:[Iu,n]},_c=([e,t])=>e===Nd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case Nd:{let d=a;switch(c){case"bigint":l=zE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([UE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Iu:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!_c(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case qg:return s([l,a.toISOString()],a);case Wg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Gg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(_c(uo(f))||_c(uo(h))))&&d.push([i(f),i(h)]);return p}case Kg:{const d=[],p=s([l,d],a);for(const f of a)(e||!_c(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},l_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Fu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?o_(l_(e,t)):structuredClone(e):(e,t)=>o_(l_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Fu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Pd=function(e){if(e==null)return N6;if(typeof e=="function")return Rd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=$E,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Fm))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function c_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function u_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function B6(e,t){return e&&"run"in e?async function(n,r){const s=u_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return u_(n,{file:r,...e||t})}}function d_(e){if(e)throw e}var Qc=Object.prototype.hasOwnProperty,qE=Object.prototype.toString,p_=Object.defineProperty,f_=Object.getOwnPropertyDescriptor,m_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):qE.call(t)==="[object Array]"},h_=function(t){if(!t||qE.call(t)!=="[object Object]")return!1;var n=Qc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Qc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Qc.call(t,s)},g_=function(t,n){p_&&n.name==="__proto__"?p_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},x_=function(t,n){if(n==="__proto__")if(Qc.call(t,n)){if(f_)return f_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Gr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Vm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Vm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Um(v)&&Um(h)&&(h=Vp(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Yg().freeze();function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Wp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Gp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function y_(e){if(!Um(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function __(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function bc(e){return rU(e)?e:new WE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",b_=[],w_={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||b_,n=e.remarkPlugins||b_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...w_}:w_;return nU().use(qB).use(n).use(B6,r).use(t)}function dU(e){const t=e.children||"",n=new WE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Qg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Fp)if(Object.hasOwn(Fp,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Fp[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function k_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Pd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:E}:void 0),E===!1?f.lastIndex=S+1:(g!==S&&y.push({type:"text",value:u.value.slice(g,S)}),Array.isArray(E)?y.push(...E):E&&y.push(E),g=S+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=k_(e,"(");let i=k_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function GE(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Bi(n)||Cd(n))&&(!t||n!==47)}KE.peek=BU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Or(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Or(this.sliceSerialize(e)).toLowerCase(),n.label=t}function FU(e){this.exit(e)}function BU(){return"["}function KE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:FU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:KE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?QE:zU))),u(),c}}function zU(e,t,n){return t===0?e:QE(e,t,n)}function QE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];YE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:YE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function YE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return E_(e,t.inConstruct,!0)&&!E_(e,t.notInConstruct,!1)}function E_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Xg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}XE.peek=l7;function XE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Qg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Fm}),!!((!e.depth||e.depth<3)&&zg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}JE.peek=d7;function JE(e){return e.value||""}function d7(){return"<"}ZE.peek=p7;function ZE(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}eC.peek=f7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}tC.peek=m7;function tC(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}rC.peek=h7;function rC(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(nC(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return nC(e,n)?"<":"["}sC.peek=g7;function sC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Jg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Jg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function iC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Jg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),iC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Pd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}aC.peek=C7;function aC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(iC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const oC={blockquote:JU,break:C_,code:s7,definition:a7,emphasis:XE,hardBreak:C_,heading:u7,html:JE,image:ZE,imageReference:eC,inlineCode:tC,link:rC,linkReference:sC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:aC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:j_,tableHeader:j_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Xp,tableHeader:Xp,tableRow:Xp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Xp(e){this.exit(e)}function j_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Or(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||ht(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Or(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return ht(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||ht(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Or(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return ht(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Ye(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Ye(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const oe=r.events[H][1].type;if(oe==="lineEnding"||oe==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?E:c;return re===E&&r.parser.lazy[r.now().line]?n(N):re(N)}function c(N){return e.enter("tableHead"),e.enter("tableRow"),u(N)}function u(N){return N===124||(a=!0,i+=1),d(N)}function d(N){return N===null?n(N):je(N)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),h):n(N):He(N)?Ye(e,d,"whitespace")(N):(i+=1,a&&(a=!1,s+=1),N===124?(e.enter("tableCellDivider"),e.consume(N),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(N)))}function p(N){return N===null||N===124||ht(N)?(e.exit("data"),d(N)):(e.consume(N),N===92?f:p)}function f(N){return N===92||N===124?(e.consume(N),p):p(N)}function h(N){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(N):(e.enter("tableDelimiterRow"),a=!1,He(N)?Ye(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):g(N))}function g(N){return N===45||N===58?b(N):N===124?(a=!0,e.enter("tableCellDivider"),e.consume(N),e.exit("tableCellDivider"),v):R(N)}function v(N){return He(N)?Ye(e,b,"whitespace")(N):b(N)}function b(N){return N===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(N),e.exit("tableDelimiterMarker"),x):N===45?(i+=1,x(N)):N===null||je(N)?S(N):R(N)}function x(N){return N===45?(e.enter("tableDelimiterFiller"),y(N)):R(N)}function y(N){return N===45?(e.consume(N),y):N===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(N),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(N))}function _(N){return He(N)?Ye(e,S,"whitespace")(N):S(N)}function S(N){return N===124?g(N):N===null||je(N)?!a||s!==i?R(N):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(N)):R(N)}function R(N){return n(N)}function E(N){return e.enter("tableRow"),A(N)}function A(N){return N===124?(e.enter("tableCellDivider"),e.consume(N),e.exit("tableCellDivider"),A):N===null||je(N)?(e.exit("tableRow"),t(N)):He(N)?Ye(e,A,"whitespace")(N):(e.enter("data"),D(N))}function D(N){return N===null||N===124||ht(N)?(e.exit("data"),A(N)):(e.consume(N),N===92?z:D)}function z(N){return N===92||N===124?(e.consume(N),D):D(N)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function P_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return ht(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return je(c)?t(c):He(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Ye(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return EE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[S,R]=m.useState([]),[E,A]=m.useState([]),[D,z]=m.useState(new Set),[N,H]=m.useState(!1),[X,re]=m.useState(null),[oe,fe]=m.useState(!1),[xe,ae]=m.useState(380),[B,q]=m.useState(!1),[j,ue]=m.useState(!0),[pe,L]=m.useState(null),[be,Le]=m.useState(""),[w,W]=m.useState(null),le=l??xe,_e=c??ae,ve=m.useRef(null),at=m.useRef(null),Xe=m.useRef(null),I=m.useRef(null),nt=m.useRef(null),gt=m.useRef(!1),ot=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(J=>{const Te=J.item_id||J.line_item_id,Ve=a[Te];Ve!=null&&Ve.total&&(U+=Ve.total)}),U},[a,i]),ft=m.useCallback(U=>{U.preventDefault(),q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!B)return;const Ve=window.innerWidth-Te.clientX,Y=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,Ve),Y))},J=()=>{q(!1)};return B&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",J),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",J),document.body.style.cursor="",document.body.style.userSelect=""}},[B]);const K=m.useCallback(U=>{h(U.target.value);const J=U.target;J.style.height="auto",J.style.height=Math.min(J.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;gt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(gt.current=!1)},[g]);const k=m.useCallback(()=>{const U=at.current;if(!U)return;const J=U.scrollHeight-U.scrollTop-U.clientHeight<100;gt.current=!J},[]);m.useEffect(()=>{var U;e&&((U=Xe.current)==null||U.focus())},[e]);const se=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const J=[...U],Te=J.length-1;return Te>=0&&J[Te].isStreaming&&(J[Te]={...J[Te],isStreaming:!1,isThinking:!1,content:J[Te].content+` + +*[Generation stopped]*`}),J}))},[]),G=m.useCallback((U,J)=>{L(U),Le(J)},[]),ke=m.useCallback(()=>{L(null),Le("")},[]),Ne=m.useCallback(async(U,J)=>{try{await navigator.clipboard.writeText(J),W(U),setTimeout(()=>W(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,F]=m.useState(null),[Q,ie]=m.useState(!1),Ee=m.useCallback(async U=>{if(!be.trim()||d.findIndex(Y=>Y.id===U)===-1)return;const Te=be.trim();if(A([]),L(null),Le(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const Ve={id:"welcome",role:"assistant",content:se(),timestamp:new Date};p([Ve]),F(Te),ie(!0)},[be,d,b,se]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:se(),timestamp:new Date};p([U])}},[e,se]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:se(),timestamp:new Date}])},[e,s,i,ot,se]);const Be=m.useCallback(async(U,J)=>{var ct;const Te=U||f.trim();if(!Te||g)return;const Ve={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:J||!1};p(et=>[...et,Ve]),h(""),v(!0),re(null);const Y=`assistant-${Date.now()}`;p(et=>[...et,{id:Y,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const et=(i||S||[]).map(Oe=>{const De=Oe.line_item_id||Oe.item_id||Oe.draft_id,Pe=a==null?void 0:a[De];return{...Oe,total_cost:(Pe==null?void 0:Pe.total)||Oe.total_cost||0,dbu_cost:(Pe==null?void 0:Pe.dbu)||Oe.dbu_cost||0,vm_cost:(Pe==null?void 0:Pe.vm)||Oe.vm_cost||0}}),It=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:Ve.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:et,mode:u,stream:!0}),signal:I.current.signal});if(!It.ok)throw new Error(`HTTP ${It.status}: ${It.statusText}`);const pt=(ct=It.body)==null?void 0:ct.getReader();if(!pt)throw new Error("No response body");const xt=new TextDecoder;let St="",mt="",Ue=[];for(;;){const{done:Oe,value:De}=await pt.read();if(Oe)break;St+=xt.decode(De,{stream:!0});const Pe=St.split(` +`);St=Pe.pop()||"";for(const Wt of Pe)if(Wt.startsWith("data: ")){const Et=Wt.slice(6);if(Et==="[DONE]")continue;try{const Se=JSON.parse(Et);if(Se.type==="start")x(Se.conversation_id);else if(Se.type==="content")mt+=Se.content,p(Ct=>Ct.map(on=>on.id===Y?{...on,content:mt,isThinking:!1}:on));else if(Se.type==="tool_result")Ue.push({tool:Se.tool,result:Se.result});else if(Se.type==="proposal")Se.workload&&Se.workload.proposal_id&&A(Ct=>Ct.some(qi=>qi.proposal_id===Se.workload.proposal_id)?Ct:[...Ct,Se.workload]);else if(Se.type==="done")mt.includes("Error getting response")||mt.includes("AI service error")||(Se.estimate&&_(Se.estimate),Se.workloads&&R(Se.workloads),Se.proposed_workloads&&Se.proposed_workloads.length>0&&A(Se.proposed_workloads));else if(Se.type==="error")throw new Error(Se.content)}catch{}}}p(Oe=>Oe.map(De=>De.id===Y?{...De,content:mt,isStreaming:!1,toolResults:Ue}:De))}catch(et){if(et.name==="AbortError")return;console.error("Chat error:",et),re(et.message||"Failed to get response"),p(It=>It.filter(pt=>pt.id!==Y))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,S,a]);m.useEffect(()=>{O&&!g&&(Be(O,Q),F(null),ie(!1))},[O,Q,g,Be]);const dt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Be())},rt=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),R([]),A([]),re(null);const U={id:"welcome",role:"assistant",content:se(),timestamp:new Date};p([U])},Ge=async U=>{if(b){z(J=>new Set(J).add(U));try{const J=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!J.ok)throw new Error("Failed to confirm workload");const Te=await J.json();if(A(Ve=>Ve.filter(Y=>Y.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p(Ve=>{var Y;return[...Ve,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(Y=Te.workload_config)==null?void 0:Y.workload_name}" added to estimate.`,timestamp:new Date}]})}catch(Ve){p(Y=>[...Y,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${Ve.message||"Database error"}. Please try again.`,timestamp:new Date}]),re(Ve.message||"Failed to add workload to database")}}catch(J){re(J.message||"Failed to confirm workload")}finally{z(J=>{const Te=new Set(J);return Te.delete(U),Te})}}},lt=async U=>{if(b){z(J=>new Set(J).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=E.find(Ve=>Ve.proposal_id===U);A(Ve=>Ve.filter(Y=>Y.proposal_id!==U)),p(Ve=>[...Ve,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(J){re(J.message||"Failed to reject workload")}finally{z(J=>{const Te=new Set(J);return Te.delete(U),Te})}}},Ke=async()=>{for(const U of E)await Ge(U.proposal_id)},Ot=async()=>{for(const U of E)await lt(U.proposal_id)};return e?o.jsx(o.Fragment,{children:oe?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>fe(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx(Hc,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(ps,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:nt,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${le}px)`},children:[o.jsx("div",{onMouseDown:ft,className:ce("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",B&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(dS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(fs,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:rt,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(tn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(YD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(FD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[ot>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",ot.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),E.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!N),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ry,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[E.length," Proposed Workload",E.length!==1?"s":""," - Confirm to Add"]})]}),N?o.jsx(rr,{className:"w-4 h-4 text-amber-600"}):o.jsx(ps,{className:"w-4 h-4 text-amber-600"})]}),!N&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Ke,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",E.length,")"]}),o.jsx("button",{onClick:Ot,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:E.map(U=>{const J=D.has(U.proposal_id);return o.jsx("div",{className:ce("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",J&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:J?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ge(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Tu,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>lt(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:at,onScroll:k,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:ce("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:ce("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:be,onChange:J=>Le(J.target.value),onKeyDown:J=>{J.key==="Enter"&&!J.shiftKey&&(J.preventDefault(),Ee(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:ke,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>Ee(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Ws,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:ce("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:J})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:J}),h2:({children:J})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:J}),h3:({children:J})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:J}),p:({children:J})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:J}),ul:({children:J})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:J}),ol:({children:J})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:J}),li:({children:J})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:J}),strong:({children:J})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:J}),em:({children:J})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:J}),code:({className:J,children:Te})=>(J==null?void 0:J.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:J})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:J}),blockquote:({children:J})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:J}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:J,children:Te})=>o.jsx("a",{href:J,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((J,Te)=>{var Ve;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[(Ve=J.result)!=null&&Ve.success?o.jsx(Tu,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Yr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:J.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:ce("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Ne(U.id,U.content),className:ce("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(SD,{className:"w-3.5 h-3.5"}):o.jsx(CD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>G(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(s3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ry,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:rt,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>ue(!j),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[j?o.jsx(rr,{className:"w-3 h-3"}):o.jsx(ps,{className:"w-3 h-3"}),j?"Hide Quick Actions":"Show Quick Actions"]}),j&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,J)=>o.jsx("button",{onClick:()=>Be(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},J))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Xe,value:f,onChange:K,onKeyDown:dt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Be(),disabled:!g&&!f.trim(),className:ce("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(fS,{className:"w-4 h-4"}):o.jsx(e3,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Pg},{name:"New Estimate",href:"/calculator",icon:c3}],R_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Jp=[{value:"light",label:"Light",icon:b3},{value:"dark",label:"Dark",icon:JD},{value:"system",label:"System",icon:AD}],kc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=T3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(kc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(kc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),S=m.useRef(null),{currentUser:R,isAuthenticated:E,authError:A,fetchCurrentUser:D,currentEstimate:z,lineItems:N,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:oe,fetchReferenceData:fe,loadPricingBundle:xe,isReferenceDataLoaded:ae,isPricingBundleLoaded:B}=bs(),q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",j=e.pathname==="/",ue=q||j,pe=m.useCallback(()=>{M4(),oe(!1),f(!1),window.location.reload()},[oe]);m.useEffect(()=>{const W=le=>{var _e;console.log("Session expired event received:",le.detail),g(((_e=le.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),oe(!0)};return window.addEventListener(jm,W),()=>{window.removeEventListener(jm,W)}},[oe]),m.useEffect(()=>{ue&&!v&&c(!0)},[ue,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(kc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),be=m.useCallback(()=>{a(!i),x||(localStorage.setItem(kc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!ue&&l&&c(!1)},[ue,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{ae||fe(),B||xe()},[fe,xe,ae,B]),m.useEffect(()=>{const W=le=>{_.current&&!_.current.contains(le.target)&&s(!1),S.current&&!S.current.contains(le.target)&&a(!1)};return document.addEventListener("mousedown",W),()=>document.removeEventListener("mousedown",W)},[]);const Le=Jp.find(W=>W.value===t)||Jp[2],w=Le.icon;return A?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(R_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:A}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(wu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(R_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(W=>{const le=e.pathname===W.href||W.href!=="/"&&e.pathname.startsWith(W.href);return o.jsxs(wu,{to:W.href,className:ce("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",le&&"border"),style:le?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(W.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:W.name})]},W.name)})}),E&&R&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(C3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:R.full_name||R.email,children:R.full_name||R.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:Le.label}),o.jsx(rr,{className:ce("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Jp.map(W=>{const le=W.icon,_e=t===W.value;return o.jsxs("button",{onClick:()=>{n(W.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(le,{className:"w-4 h-4"}),o.jsx("span",{children:W.label})]},W.value)})})]}),o.jsxs("div",{className:"relative",ref:S,children:[o.jsxs("button",{onClick:be,className:ce("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(p3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(rm,{children:i&&o.jsxs(Ut.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(UD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(bm,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&ue?{marginRight:`${u}px`}:void 0,children:o.jsx(Ut.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(jN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&ue?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),ue&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:q?z:void 0,currentWorkloads:q?N:void 0,itemCosts:q?H:void 0,mode:j?"home":"estimate",onWorkloadConfirmed:q?async W=>{if(z!=null&&z.estimate_id)try{await X({estimate_id:z.estimate_id,...W}),re(z.estimate_id),$e.success(`Workload "${W.workload_name}" added!`)}catch(le){throw $e.error(le.message||"Failed to add workload"),le}}:void 0,onWidthChange:d,panelWidth:u}),ue&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(rm,{children:p&&o.jsx(Ut.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs(Ut.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(fs,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Yr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Ad=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function ex(e){return"nodeType"in e}function Jn(e){var t,n;return e?Ga(e)?e:ex(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function tx(e){const{Document:t}=Jn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Jn(e).HTMLElement}function gC(e){return e instanceof Jn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:ex(e)?tx(e)?e:Dl(e)||gC(e)?e.ownerDocument:document:document:document}const ts=Ad?m.useLayoutEffect:m.useEffect;function nx(e){const t=m.useRef(e);return ts(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return ts(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Uu(e){const t=nx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function $m(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Zp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Zp[e]==null?0:Zp[e]+1;return Zp[e]=n,e+"-"+n},[e,t])}function xC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=xC(1),Vu=xC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function rx(e){if(!e)return!1;const{KeyboardEvent:t}=Jn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Jn(e.target);return t&&e instanceof t}function Hm(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),A_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(A_)?e:e.querySelector(A_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const vC=m.createContext(null);function OV(e){const t=m.useContext(vC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const FV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},BV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=BV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=FV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var rn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(rn||(rn={}));function zu(){}function $u(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function yC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function T_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const _C=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=T_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(T_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function bC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Jn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function L_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Jn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Jn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function sx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(tx(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||gC(s)||n.includes(s))return n;const i=Jn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function wC(e){const[t]=sx(e,1);return t??null}function ef(e){return!Ad||!e?null:Ga(e)?e:ex(e)?tx(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function kC(e){return Ga(e)?e.scrollX:e.scrollLeft}function SC(e){return Ga(e)?e.scrollY:e.scrollTop}function qm(e){return{x:kC(e),y:SC(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function EC(e){return!Ad||!e?!1:e===document.scrollingElement}function CC(e){const t={x:0,y:0},n=EC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=CC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function jC(e){return e.reduce((t,n)=>ba(t,qm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+kC(n),0)}function az(e){return e.reduce((t,n)=>t+SC(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);wC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class ix{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=sx(n),s=jC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Jn(e);return e instanceof t?e:Ka(e)}function tf(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var gr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(gr||(gr={}));function D_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var tt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(tt||(tt={}));const NC={start:[tt.Space,tt.Enter],cancel:[tt.Esc],end:[tt.Space,tt.Enter,tt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case tt.Right:return{...n,x:n.x+25};case tt.Left:return{...n,x:n.x-25};case tt.Down:return{...n,y:n.y+25};case tt.Up:return{...n,y:n.y-25}}};class Td{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Jn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(gr.Resize,this.handleCancel),this.windowListeners.add(gr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(gr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(rx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=NC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Vu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:S,maxScroll:R,minScroll:E}=CC(v),A=sz(v),D={x:Math.min(b===tt.Right?A.right-A.width/2:A.right,Math.max(b===tt.Right?A.left:A.left+A.width/2,p.x)),y:Math.min(b===tt.Down?A.bottom-A.height/2:A.bottom,Math.max(b===tt.Down?A.top:A.top+A.height/2,p.y))},z=b===tt.Right&&!y||b===tt.Left&&!_,N=b===tt.Down&&!S||b===tt.Up&&!x;if(z&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===tt.Right&&H<=R.x||b===tt.Left&&H>=E.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===tt.Right?v.scrollLeft-R.x:v.scrollLeft-E.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(N&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===tt.Down&&H<=R.y||b===tt.Up&&H>=E.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===tt.Down?v.scrollTop-R.y:v.scrollTop-E.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Vu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Td.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=NC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function M_(e){return!!(e&&"distance"in e)}function O_(e){return!!(e&&"delay"in e)}class ax{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Jn(a)),this.initialCoordinates=(s=Hm(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(gr.Resize,this.handleCancel),this.windowListeners.add(gr.DragStart,D_),this.windowListeners.add(gr.VisibilityChange,this.handleCancel),this.windowListeners.add(gr.ContextMenu,D_),this.documentListeners.add(gr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(O_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(M_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(gr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(gr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=Hm(t))!=null?n:Fr,u=Vu(s,c);if(!r&&l){if(M_(l)){if(l.tolerance!=null&&tf(u,l.tolerance))return this.handleCancel();if(tf(u,l.distance))return this.handleStart()}if(O_(l)&&tf(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===tt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ld extends ax{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Ld.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var Wm;(function(e){e[e.RightClick=2]="RightClick"})(Wm||(Wm={}));class mz extends ax{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Wm.RightClick?!1:(r==null||r({event:n}),!0)}}];const nf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ax{constructor(t){super(t,nf)}static setup(){return window.addEventListener(nf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(nf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var Hu;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Hu||(Hu={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=Hu.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),S=m.useCallback(()=>{const E=_.current;if(!E)return;const A=b.current.x*x.current.x,D=b.current.y*x.current.y;E.scrollBy(A,D)},[]),R=m.useMemo(()=>l===Hu.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const E of R){if((r==null?void 0:r(E))===!1)continue;const A=u.indexOf(E),D=d[A];if(!D)continue;const{direction:z,speed:N}=rz(E,D,y,t,f);for(const H of["x","y"])h[H][z[H]]||(N[H]=0,z[H]=0);if(N.x>0||N.y>0){v(),_.current=E,g(S,a),b.current=N,x.current=z;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,S,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,R,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=$m(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Gm;(function(e){e.Optimized="optimized"})(Gm||(Gm={}));const I_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return I_;if(!x||x===I_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const S=_.node.current,R=S?new ix(c(S),S):null;_.rect.current=R,R&&y.set(_.id,R)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function PC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return PC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=nx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Dd(e){let{callback:t,disabled:n}=e;const r=nx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new ix(Qa(e),e)}function F_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Dd({callback:i});return ts(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=PC(e);return bC(e,t)}const B_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==B_&&e&&t.current&&e.parentNode===t.current.parentNode?r:sx(e):B_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=ef(i.target);a&&n(l=>l?(l.set(a,qm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=ef(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,qm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=ef(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):jC(e):Fr,[e,t])}function U_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Vu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Ad)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function RC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const V_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=RC(n?Jn(n):null),[s,i]=m.useState(V_);function a(){i(()=>e.length?e.map(c=>EC(c)?r:new ix(t(c),c)):V_)}const l=Dd({callback:a});return ts(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Dd({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Uu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Ld,options:{}},{sensor:Td,options:{}}],Dz={current:{}},Yc={draggable:{measure:L_},droppable:{measure:L_,strategy:fl.WhileDragging,frequency:Gm.Optimized},dragOverlay:{measure:Qa}};class Fo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Fo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:zu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Yc,measureDroppableContainers:zu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:zu,draggableNodes:new Map,over:null,measureDroppableContainers:zu},Md=m.createContext(Oz),AC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Fo}}}function Fz(e,t){switch(t.type){case rn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case rn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case rn.DragEnd:case rn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case rn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Fo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case rn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Fo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case rn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Fo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Bz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Md),i=$m(r),a=$m(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!rx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Yc.draggable,...e==null?void 0:e.draggable},droppable:{...Yc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Yc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;ts(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=bC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=wC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const TC=m.createContext({...Fr,scaleX:1,scaleY:1});var Bs;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Bs||(Bs={}));const LC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Fz,void 0,Iz),[b,x]=v,[y,_]=IV(),[S,R]=m.useState(Bs.Uninitialized),E=S===Bs.Initialized,{draggable:{active:A,nodes:D,translate:z},droppable:{containers:N}}=b,H=A!=null?D.get(A):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var Y;return A!=null?{id:A,data:(Y=H==null?void 0:H.data)!=null?Y:Dz,rect:X}:null},[A,H]),oe=m.useRef(null),[fe,xe]=m.useState(null),[ae,B]=m.useState(null),q=pl(g,Object.values(g)),j=Ol("DndDescribedBy",a),ue=m.useMemo(()=>N.getEnabled(),[N]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:be,measuringScheduled:Le}=bz(ue,{dragging:E,dependencies:[z.x,z.y],config:pe.droppable}),w=yz(D,A),W=m.useMemo(()=>ae?Hm(ae):null,[ae]),le=Ve(),_e=wz(w,pe.draggable.measure);zz({activeNode:A!=null?D.get(A):null,config:le.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=F_(w,pe.draggable.measure,_e),at=F_(w?w.parentElement:null),Xe=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:N,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=N.getNodeFor((n=Xe.current.over)==null?void 0:n.id),nt=Tz({measure:pe.dragOverlay.measure}),gt=(r=nt.nodeRef.current)!=null?r:w,ot=E?(s=nt.rect)!=null?s:ve:null,ft=!!(nt.nodeRef.current&&nt.rect),K=Ez(ft?null:ve),P=RC(gt?Jn(gt):null),k=Cz(E?I??w:null),se=Rz(k),M=Uz(h,{transform:{x:z.x-K.x,y:z.y-K.y,scaleX:1,scaleY:1},activatorEvent:ae,active:re,activeNodeRect:ve,containerNodeRect:at,draggingNodeRect:ot,over:Xe.current.over,overlayNodeRect:nt.rect,scrollableAncestors:k,scrollableAncestorRects:se,windowRect:P}),G=W?ba(W,z):null,ke=jz(k),Ne=U_(ke),O=U_(ke,[ve]),F=ba(M,Ne),Q=ot?QV(ot,M):null,ie=re&&Q?p({active:re,collisionRect:Q,droppableRects:L,droppableContainers:ue,pointerCoordinates:G}):null,Ee=HV(ie,"id"),[Be,dt]=m.useState(null),rt=ft?M:ba(M,O),Ge=GV(rt,(i=Be==null?void 0:Be.rect)!=null?i:null,ve),lt=m.useRef(null),Ke=m.useCallback((Y,ct)=>{let{sensor:et,options:It}=ct;if(oe.current==null)return;const pt=D.get(oe.current);if(!pt)return;const xt=Y.nativeEvent,St=new et({active:oe.current,activeNode:pt,event:xt,options:It,context:Xe,onAbort(Ue){if(!D.get(Ue))return;const{onDragAbort:De}=q.current,Pe={id:Ue};De==null||De(Pe),y({type:"onDragAbort",event:Pe})},onPending(Ue,Oe,De,Pe){if(!D.get(Ue))return;const{onDragPending:Et}=q.current,Se={id:Ue,constraint:Oe,initialCoordinates:De,offset:Pe};Et==null||Et(Se),y({type:"onDragPending",event:Se})},onStart(Ue){const Oe=oe.current;if(Oe==null)return;const De=D.get(Oe);if(!De)return;const{onDragStart:Pe}=q.current,Wt={activatorEvent:xt,active:{id:Oe,data:De.data,rect:X}};la.unstable_batchedUpdates(()=>{Pe==null||Pe(Wt),R(Bs.Initializing),x({type:rn.DragStart,initialCoordinates:Ue,active:Oe}),y({type:"onDragStart",event:Wt}),xe(lt.current),B(xt)})},onMove(Ue){x({type:rn.DragMove,coordinates:Ue})},onEnd:mt(rn.DragEnd),onCancel:mt(rn.DragCancel)});lt.current=St;function mt(Ue){return async function(){const{active:De,collisions:Pe,over:Wt,scrollAdjustedTranslate:Et}=Xe.current;let Se=null;if(De&&Et){const{cancelDrop:Ct}=q.current;Se={activatorEvent:xt,active:De,collisions:Pe,delta:Et,over:Wt},Ue===rn.DragEnd&&typeof Ct=="function"&&await Promise.resolve(Ct(Se))&&(Ue=rn.DragCancel)}oe.current=null,la.unstable_batchedUpdates(()=>{x({type:Ue}),R(Bs.Uninitialized),dt(null),xe(null),B(null),lt.current=null;const Ct=Ue===rn.DragEnd?"onDragEnd":"onDragCancel";if(Se){const on=q.current[Ct];on==null||on(Se),y({type:Ct,event:Se})}})}}},[D]),Ot=m.useCallback((Y,ct)=>(et,It)=>{const pt=et.nativeEvent,xt=D.get(It);if(oe.current!==null||!xt||pt.dndKit||pt.defaultPrevented)return;const St={active:xt};Y(et,ct.options,St)===!0&&(pt.dndKit={capturedBy:ct.sensor},oe.current=It,Ke(et,ct))},[D,Ke]),U=_z(d,Ot);Nz(d),ts(()=>{ve&&S===Bs.Initializing&&R(Bs.Initialized)},[ve,S]),m.useEffect(()=>{const{onDragMove:Y}=q.current,{active:ct,activatorEvent:et,collisions:It,over:pt}=Xe.current;if(!ct||!et)return;const xt={active:ct,activatorEvent:et,collisions:It,delta:{x:F.x,y:F.y},over:pt};la.unstable_batchedUpdates(()=>{Y==null||Y(xt),y({type:"onDragMove",event:xt})})},[F.x,F.y]),m.useEffect(()=>{const{active:Y,activatorEvent:ct,collisions:et,droppableContainers:It,scrollAdjustedTranslate:pt}=Xe.current;if(!Y||oe.current==null||!ct||!pt)return;const{onDragOver:xt}=q.current,St=It.get(Ee),mt=St&&St.rect.current?{id:St.id,rect:St.rect.current,data:St.data,disabled:St.disabled}:null,Ue={active:Y,activatorEvent:ct,collisions:et,delta:{x:pt.x,y:pt.y},over:mt};la.unstable_batchedUpdates(()=>{dt(mt),xt==null||xt(Ue),y({type:"onDragOver",event:Ue})})},[Ee]),ts(()=>{Xe.current={activatorEvent:ae,active:re,activeNode:w,collisionRect:Q,collisions:ie,droppableRects:L,draggableNodes:D,draggingNode:gt,draggingNodeRect:ot,droppableContainers:N,over:Be,scrollableAncestors:k,scrollAdjustedTranslate:F},X.current={initial:ot,translated:Q}},[re,w,ie,Q,D,gt,ot,L,N,Be,k,F]),gz({...le,delta:z,draggingRect:Q,pointerCoordinates:G,scrollableAncestors:k,scrollableAncestorRects:se});const J=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:ae,collisions:ie,containerNodeRect:at,dragOverlay:nt,draggableNodes:D,droppableContainers:N,droppableRects:L,over:Be,measureDroppableContainers:be,scrollableAncestors:k,scrollableAncestorRects:se,measuringConfiguration:pe,measuringScheduled:Le,windowRect:P}),[re,w,ve,ae,ie,at,nt,D,N,L,Be,be,k,se,pe,Le,P]),Te=m.useMemo(()=>({activatorEvent:ae,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:j},dispatch:x,draggableNodes:D,over:Be,measureDroppableContainers:be}),[ae,U,re,ve,x,j,D,Be,be]);return pn.createElement(vC.Provider,{value:_},pn.createElement(Md.Provider,{value:Te},pn.createElement(AC.Provider,{value:J},pn.createElement(TC.Provider,{value:Ge},u)),pn.createElement(Bz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:j}));function Ve(){const Y=(fe==null?void 0:fe.autoScrollEnabled)===!1,ct=typeof c=="object"?c.enabled===!1:c===!1,et=E&&!Y&&!ct;return typeof c=="object"?{...c,enabled:et}:{enabled:et}}}),$z=m.createContext(null),z_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Md),{role:h=z_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?TC:$z),[y,_]=Uu(),[S,R]=Uu(),E=Pz(a,t),A=pl(n);ts(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:S,data:A}),()=>{const z=p.get(t);z&&z.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===z_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:E,node:y,over:f,setNodeRef:_,setActivatorNodeRef:R,transform:x}}function Wz(){return m.useContext(AC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Md),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Dd({callback:y,disabled:g||!a}),S=m.useCallback((D,z)=>{_&&(z&&(_.unobserve(z),p.current=!1),D&&_.observe(D))},[_]),[R,E]=Uu(S),A=pl(t);return m.useEffect(()=>{!_||!R.current||(_.disconnect(),p.current=!1,_.observe(R.current))},[R,_]),m.useEffect(()=>(l({type:rn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:R,rect:f,data:A}}),()=>l({type:rn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:rn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:R,over:c,setNodeRef:E}}function ox(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function Sc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ox(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Ec={scaleX:1,scaleY:1},MC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Ec}:s=a?{x:0,y:l.height+c,...Ec}:{x:0,y:0,...Ec}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(E=>typeof E=="object"&&"id"in E?E.id:E),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,S=Jz(i);ts(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const R=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:S,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,S.draggable,S.droppable,_,h,b,c,f,s]);return pn.createElement(IC.Provider,{value:R},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ox(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},BC="transform",r8=Oa.Transition.toString({property:BC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return ts(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function UC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(IC),_=a8(r,h),S=d.indexOf(a),R=m.useMemo(()=>({sortable:{containerId:p,index:S,items:d},...s}),[p,s,S,d]),E=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:A,node:D,isOver:z,setNodeRef:N}=Qz({id:a,data:R,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:E,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:oe,setNodeRef:fe,listeners:xe,isDragging:ae,over:B,setActivatorNodeRef:q,transform:j}=qz({id:a,data:R,attributes:{...s8,...n},disabled:_.draggable}),ue=jV(N,fe),pe=!!H,L=pe&&!g&&Sc(f)&&Sc(b),be=!x&&ae,Le=be&&L?j:null,W=L?Le??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:S}):null,le=Sc(f)&&Sc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):S,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:le,containerId:p}),at=d!==ve.current.items,Xe=t({active:H,containerId:p,isDragging:ae,isSorting:pe,id:a,index:S,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Xe,index:S,node:D,rect:A});return m.useEffect(()=>{pe&&ve.current.newIndex!==le&&(ve.current.newIndex=le),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,le,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const gt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(gt)},[_e]),{active:H,activeIndex:f,attributes:oe,data:R,rect:A,index:S,newIndex:le,items:d,isOver:z,isSorting:pe,isDragging:ae,listeners:xe,node:D,overIndex:b,over:B,setNodeRef:ue,setActivatorNodeRef:q,setDroppableNodeRef:N,setDraggableNodeRef:fe,transform:I??W,transition:nt()};function nt(){if(I||at&&ve.current.newIndex===S)return r8;if(!(be&&!rx(X)||!u)&&(pe||Xe))return Oa.Transition.toString({...u,property:BC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}tt.Down,tt.Right,tt.Up,tt.Left;const VC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=UC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var zC={exports:{}};(function(e,t){(function(n,r){r()})(ms,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ms=="object"&&ms.global===ms?ms:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(zC);var Km=zC.exports;const Ar={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Cc={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:ce("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:ce("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Ar[r].text:"var(--text-muted)",backgroundColor:e===r?Ar[r].bg:"transparent"},children:[Ar[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=ud(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=bs(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[S,R]=m.useState(new Set),[E,A]=m.useState(!1),[D,z]=m.useState(!1),[N,H]=m.useState(!1),[X,re]=m.useState(!1),[oe,fe]=m.useState(null),[xe,ae]=m.useState(!1),[B,q]=m.useState(!1),j=yC($u(Ld,{activationConstraint:{distance:5}}),$u(Td));m.useEffect(()=>{r()},[r]);const ue=m.useCallback(async()=>{p(!0),await r(!0),p(!1),$e.success("Refreshed")},[r]),pe=m.useMemo(()=>{const K=t.length,P=t.filter(M=>{var G;return((G=M.cloud)==null?void 0:G.toLowerCase())==="aws"}).length,k=t.filter(M=>{var G;return((G=M.cloud)==null?void 0:G.toLowerCase())==="azure"}).length,se=t.filter(M=>{var G;return((G=M.cloud)==null?void 0:G.toLowerCase())==="gcp"}).length;return{all:K,aws:P,azure:k,gcp:se}},[t]),L=m.useMemo(()=>{const K=t.reduce((P,k)=>P+(k.line_item_count||0),0);return{estimates:t.length,workloads:K}},[t]),be=m.useMemo(()=>{const K=new Set;return t.forEach(P=>{P.customer_name&&K.add(P.customer_name)}),Array.from(K).sort()},[t]),Le=m.useMemo(()=>{const K={all:t.length};return t.forEach(P=>{P.customer_name&&(K[P.customer_name]=(K[P.customer_name]||0)+1)}),K},[t]),w=m.useMemo(()=>{let K=[...t];if(c){const P=c.toLowerCase();K=K.filter(k=>{var se;return k.estimate_name.toLowerCase().includes(P)||((se=k.customer_name)==null?void 0:se.toLowerCase().includes(P))})}switch(f!=="all"&&(K=K.filter(P=>{var k;return((k=P.cloud)==null?void 0:k.toLowerCase())===f})),b!=="all"&&(K=K.filter(P=>P.customer_name===b)),g){case"updated":K.sort((P,k)=>new Date(k.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":K.sort((P,k)=>P.estimate_name.localeCompare(k.estimate_name));break;case"workloads":K.sort((P,k)=>(k.line_item_count||0)-(P.line_item_count||0));break;case"display_order":K.sort((P,k)=>(P.display_order??0)-(k.display_order??0));break}return K},[t,c,f,g,b]),W=m.useCallback(async K=>{const{active:P,over:k}=K;if(!k||P.id===k.id)return;const se=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===k.id);if(se===-1||M===-1)return;g!=="display_order"&&v("display_order");const G=ox(w,se,M),{estimates:ke}=bs.getState(),Ne=ke.map(O=>{const F=G.findIndex(Q=>Q.estimate_id===O.estimate_id);return F>=0?{...O,display_order:F}:O});bs.setState({estimates:Ne});try{await Y4(G.map(O=>O.estimate_id))}catch{$e.error("Failed to save reorder")}},[w,g]),le=(K,P,k)=>{K.stopPropagation(),fe({id:P,name:k}),re(!0)},_e=async()=>{if(oe){ae(!0);try{await s(oe.id),$e.success("Estimate deleted")}catch{$e.error("Failed to delete")}finally{ae(!1),re(!1),fe(null)}}},ve=async(K,P)=>{K.stopPropagation();try{const k=await i(P);$e.success("Estimate duplicated"),e(`/calculator/${k.estimate_id}`)}catch{$e.error("Failed to duplicate")}},at=async()=>{l(!0);try{const K=await fO();Km.saveAs(K,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),$e.success("Exported successfully")}catch{$e.error("Export failed")}finally{l(!1)}},Xe=()=>{S.size===w.length?R(new Set):R(new Set(w.map(K=>K.estimate_id)))},I=(K,P)=>{P.stopPropagation();const k=new Set(S);k.has(K)?k.delete(K):k.add(K),R(k)},nt=()=>{S.size!==0&&q(!0)},gt=async()=>{z(!0);let K=0,P=0;for(const k of S)try{await s(k),K++}catch{P++}z(!1),R(new Set),q(!1),P===0?$e.success(`Deleted ${K} estimate(s)`):$e.error(`Deleted ${K}, failed ${P}`)},ot=async()=>{if(S.size===0)return;H(!0);let K=0;for(const P of S)try{const k=t.find(se=>se.estimate_id===P);if(k){const se=await GS(P);Km.saveAs(se,`${k.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),K++}}catch{}H(!1),$e.success(`Exported ${K} estimate(s)`)},ft=()=>{A(!1),R(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(sy,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Pg,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:ue,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Yr,{className:ce("w-5 h-5",d&&"animate-spin")})}),E?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[S.size," selected"]}),o.jsxs("button",{onClick:ot,disabled:S.size===0||N,className:"btn btn-secondary text-sm",children:[o.jsx($c,{className:"w-4 h-4"}),N?"Exporting...":"Export"]}),o.jsxs("button",{onClick:nt,disabled:S.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(tn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:ft,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>A(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:at,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx($c,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(wu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Du,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),be.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(mD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?be.length:Le[b]||0}),o.jsx(rr,{className:ce("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(rm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs(Ut.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:ce("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:be.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),be.map(K=>o.jsxs("button",{onClick:()=>{x(K),_(!1)},className:ce("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===K?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===K?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:K,children:K}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:Le[K]||0}),b===K&&o.jsx(Ws,{className:"w-4 h-4"})]})]},K))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(pS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:K=>u(K.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(K=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},K))})}):w.length===0?o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(sy,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(wu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Du,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[E&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Xe,className:"flex items-center justify-center",children:o.jsx("div",{className:ce("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",S.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:S.size===w.length&&w.length>0&&o.jsx(Ws,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:ce(E?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(LC,{sensors:j,collisionDetection:_C,onDragEnd:W,modifiers:[VC],children:o.jsx(FC,{items:w.map(K=>K.estimate_id),strategy:MC,children:w.map((K,P)=>{const k=S.has(K.estimate_id);return o.jsx(o8,{id:K.estimate_id,children:o.jsxs(Ut.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!E&&e(`/calculator/${K.estimate_id}`),className:ce("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!E&&"cursor-pointer hover:bg-[var(--bg-hover)]",k&&"bg-blue-500/5"),children:[E&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:se=>I(K.estimate_id,se),className:"flex items-center justify-center",children:o.jsx("div",{className:ce("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k?"bg-blue-500 border-blue-500":"border-gray-400"),children:k&&o.jsx(Ws,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:ce("flex items-center gap-3",E?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:K.cloud&&Ar[K.cloud.toLowerCase()]?Ar[K.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(_m,{className:"w-4 h-4",style:{color:K.cloud&&Ar[K.cloud.toLowerCase()]?Ar[K.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:K.estimate_name,children:K.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:K.customer_name||"",children:K.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:K.customer_name||"",children:K.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:K.cloud&&Ar[K.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Ar[K.cloud.toLowerCase()].bg,color:Ar[K.cloud.toLowerCase()].text},children:Ar[K.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:K.region||K.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[K.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:K.region,children:K.region}),K.tier&&Cc[K.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Cc[K.tier.toLowerCase()].bg,color:Cc[K.tier.toLowerCase()].text},children:Cc[K.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:ce("px-2 py-0.5 rounded text-xs font-medium",K.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:K.line_item_count===0?{color:"var(--text-muted)"}:{},children:K.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(K.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!E&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:se=>ve(se,K.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:se=>le(se,K.estimate_id,K.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(tn,{className:"w-4 h-4"})})]})})]})},K.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&oe&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',oe.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),fe(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),B&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",S.size," Estimate",S.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(K=>S.has(K.estimate_id)).map(K=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",K.estimate_name]},K.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:gt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),S.size>0&&o.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[S.size," estimate",S.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:ot,disabled:N,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx($c,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:nt,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{R(new Set),A(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function $_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(A=>A.value===t),_=g?e.filter(A=>{var D;return A.label.toLowerCase().includes(g.toLowerCase())||((D=A.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,S=m.useMemo(()=>{if(!p)return null;const A={};return _.forEach(z=>{const N=z.group||"Other";A[N]||(A[N]=[]),A[N].push(z)}),Object.keys(A).sort((z,N)=>z==="General Purpose"?-1:N==="General Purpose"?1:z.localeCompare(N)).map(z=>({name:z,options:A[z]}))},[_,p]);m.useEffect(()=>{const A=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},[]),m.useEffect(()=>{const A=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(A)},[g,r]);const R=A=>{n(A),h(!1),v("")},E=A=>{A.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:ce("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const A=f;h(!f),A||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:ce("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(pS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:A=>v(A.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:A=>A.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:ce("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:E,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(rr,{className:ce("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&S?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),S.map(A=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:A.name}),A.options.map(D=>o.jsx("div",{onClick:()=>R(D.value),className:ce("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},A.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(A=>o.jsx("div",{onClick:()=>R(A.value),className:ce("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",A.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:A.label},A.value))]})})]})}function H_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const $C=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","CLEAN_ROOM","AI_PARSE","SHUTTERSTOCK_IMAGEAI","LAKEFLOW_CONNECT"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:$C.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function q_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(dS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(rr,{className:"w-3 h-3"}):o.jsx(uS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function W_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function rf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var K;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:S,fetchLineItems:R,clearSingleWorkloadCost:E,markItemCalculating:A,fetchVMCostForInstance:D}=bs(),z=m.useRef(!0);m.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]);const N=m.useRef(i);m.useEffect(()=>{N.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],oe=u.length>0?u:re,fe=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],ae=d.length>0?d:xe,B={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},q=f&&f.models&&f.models.llm?f:B,j={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},ue=h&&Array.isArray(h.providers)?h:j,[pe,L]=m.useState(!1),[be,Le]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,W]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),le={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){W({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);Le(P)}else W(le),Le(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&W(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&W(P=>({...P,dbsql_warehouse_type:"PRO"})),$C.has(w.workload_type)&&W(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?uE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),at=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&W(k=>({...k,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Xe=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!z.current||!N.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};N.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),nt=a.length===0,gt=!nt&&!I&&w.workload_type,ot=async P=>{if(P.preventDefault(),!w.workload_name.trim()){$e.error("Enter a workload name");return}L(!0);try{const k={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(k.serverless_enabled=w.serverless_enabled,k.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(k.serverless_enabled=!1,k.serverless_mode=null),I!=null&&I.show_compute_config?(k.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,k.driver_node_type=w.driver_node_type||null,k.worker_node_type=w.worker_node_type||null,k.num_workers=w.num_workers,k.driver_pricing_tier=w.driver_pricing_tier||"on_demand",k.worker_pricing_tier=w.worker_pricing_tier||"spot",k.driver_payment_option=w.driver_payment_option||"NA",k.worker_payment_option=w.worker_payment_option||"NA"):(k.photon_enabled=!1,k.driver_node_type=null,k.worker_node_type=null,k.num_workers=null,k.driver_pricing_tier=null,k.worker_pricing_tier=null,k.driver_payment_option=null,k.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?k.dlt_edition=w.dlt_edition:k.dlt_edition=null,I!=null&&I.show_dbsql_config?(k.dbsql_warehouse_type=w.dbsql_warehouse_type,k.dbsql_warehouse_size=w.dbsql_warehouse_size,k.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(k.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,k.dbsql_driver_payment_option=w.dbsql_driver_payment_option,k.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,k.dbsql_worker_payment_option=w.dbsql_worker_payment_option,k.driver_pricing_tier=w.dbsql_driver_pricing_tier,k.driver_payment_option=w.dbsql_driver_payment_option,k.worker_pricing_tier=w.dbsql_worker_pricing_tier,k.worker_payment_option=w.dbsql_worker_payment_option)):(k.dbsql_warehouse_type=null,k.dbsql_warehouse_size=null,k.dbsql_num_clusters=null,k.dbsql_driver_pricing_tier=null,k.dbsql_driver_payment_option=null,k.dbsql_worker_pricing_tier=null,k.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(k.vector_search_mode=w.vector_search_mode,k.vector_capacity_millions=w.vector_capacity_millions,k.vector_search_storage_gb=w.vector_search_storage_gb||0):(k.vector_search_mode=null,k.vector_capacity_millions=null,k.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(k.model_serving_gpu_type=w.model_serving_gpu_type,k.model_serving_scale_out=w.model_serving_scale_out,k.model_serving_concurrency=w.model_serving_concurrency):(k.model_serving_gpu_type=null,k.model_serving_scale_out=null,k.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?k.databricks_apps_size=w.databricks_apps_size:k.databricks_apps_size=null,w.workload_type==="CLEAN_ROOM"?k.clean_room_collaborators=w.clean_room_collaborators:k.clean_room_collaborators=null,w.workload_type==="AI_PARSE"?(k.ai_parse_mode=w.ai_parse_mode,k.ai_parse_complexity=w.ai_parse_complexity,k.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(k.ai_parse_mode=null,k.ai_parse_complexity=null,k.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?k.shutterstock_images=w.shutterstock_images:k.shutterstock_images=null,w.workload_type==="LAKEFLOW_CONNECT"?(k.lakeflow_connect_pipeline_mode=w.lakeflow_connect_pipeline_mode,k.lakeflow_connect_gateway_enabled=w.lakeflow_connect_gateway_enabled,k.lakeflow_connect_gateway_instance=w.lakeflow_connect_gateway_instance||null):(k.lakeflow_connect_pipeline_mode=null,k.lakeflow_connect_gateway_enabled=null,k.lakeflow_connect_gateway_instance=null),I!=null&&I.show_lakebase_config?(k.lakebase_cu=w.lakebase_cu,k.lakebase_storage_gb=w.lakebase_storage_gb||0,k.lakebase_ha_nodes=w.lakebase_ha_nodes,k.lakebase_backup_retention_days=w.lakebase_backup_retention_days,k.lakebase_pitr_gb=w.lakebase_pitr_gb||0,k.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(k.lakebase_cu=null,k.lakebase_storage_gb=null,k.lakebase_ha_nodes=null,k.lakebase_backup_retention_days=null,k.lakebase_pitr_gb=null,k.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(k.fmapi_provider=w.fmapi_provider,k.fmapi_model=w.fmapi_model||null,k.fmapi_endpoint_type=w.fmapi_endpoint_type,k.fmapi_context_length=w.fmapi_context_length,k.fmapi_rate_type=w.fmapi_rate_type,k.fmapi_quantity=w.fmapi_quantity):(k.fmapi_provider=null,k.fmapi_model=null,k.fmapi_endpoint_type=null,k.fmapi_context_length=null,k.fmapi_rate_type=null,k.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?be?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,k.avg_runtime_minutes=w.avg_runtime_minutes,k.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):w.workload_type==="CLEAN_ROOM"?(k.hours_per_month=null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=w.days_per_month||30):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(k.hours_per_month=w.ai_parse_mode==="dbu"?w.hours_per_month||0:null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):w.workload_type==="LAKEFLOW_CONNECT"?be?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=w.runs_per_day,k.avg_runtime_minutes=w.avg_runtime_minutes,k.days_per_month=w.days_per_month):I!=null&&I.show_fmapi_config?(k.hours_per_month=w.hours_per_month||null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null),t)E(t.line_item_id),A(t.line_item_id),await S(t.line_item_id,k),$e.success("Workload updated");else{k.estimate_id=e;const M=await _(k);M!=null&&M.line_item_id&&A(M.line_item_id),$e.success("Workload added")}R(e),r==null||r(),n()}catch(k){console.error("Failed to save workload:",k),$e.error("Failed to save")}finally{L(!1)}},ft=I==null?void 0:I.show_compute_config;return nt?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:ot,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>W(k=>({...k,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>W(k=>({...k,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:ce("w-full text-sm",gt&&"border-red-500",Xe&&"border-yellow-500"),children:[Xe&&(()=>{const P=a.find(k=>k.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),gt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Xe&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),at&&!Xe&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const k=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:ce("flex items-center gap-2 cursor-pointer select-none",k&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!k,onChange:()=>!k&&W(se=>{const M=!se.serverless_enabled,G=se.workload_type==="ALL_PURPOSE"&&M?"performance":se.serverless_mode;return{...se,serverless_enabled:M,serverless_mode:G}}),disabled:k,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(_m,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:ce("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),k&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:se=>W(M=>({...M,serverless_mode:se.target.value})),className:"text-sm py-1 px-2",children:fe.map(se=>o.jsx("option",{value:se.id,children:se.name},se.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:ce("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&W(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Au,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:ce("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),ft&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx($_,{options:l.map(P=>({value:P.id,label:W_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>W(k=>({...k,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:ce("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx(q_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>W(k=>({...k,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>W(k=>({...k,driver_payment_option:P.target.value})),className:"w-full text-sm",children:ae.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&W(k=>({...k,worker_node_type:k.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:ce("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx($_,{options:l.map(P=>({value:P.id,label:W_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>W(k=>({...k,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>W(k=>({...k,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:ce("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx(q_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>W(k=>({...k,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>W(k=>({...k,worker_payment_option:P.target.value})),className:"w-full text-sm",children:ae.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[ft&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>W(k=>({...k,dlt_edition:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const k=!po("DBSQL",b,!1,"SERVERLESS").available,se=w.dbsql_warehouse_type==="SERVERLESS"&&!k;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:ce("flex items-center gap-2 cursor-pointer select-none",k&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:se,onChange:()=>!k&&W(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:k,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(_m,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:ce("text-sm",se?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),k&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!se&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>W(G=>({...G,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>W(k=>({...k,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>W(k=>({...k,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Ne,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,k=P!=null&&P.driver_instance_type?l.find(F=>F.id===P.driver_instance_type):null,se=P!=null&&P.worker_instance_type?l.find(F=>F.id===P.worker_instance_type):null,M=(F,Q,ie)=>{var Be,dt,rt,Ge,lt,Ke,Ot;if(!(F!=null&&F.vm_pricing))return null;const Ee=Q.toLowerCase();if(Ee==="on_demand")return(Be=F.vm_pricing.on_demand)==null?void 0:Be.cost_per_hour;if(Ee==="spot")return(dt=F.vm_pricing.spot)==null?void 0:dt.cost_per_hour;if(Ee==="reserved_1y"){const U=((rt=F.vm_pricing.reserved_1y)==null?void 0:rt.find(J=>J.payment_option===ie))||((Ge=F.vm_pricing.reserved_1y)==null?void 0:Ge[0]);return U==null?void 0:U.cost_per_hour}if(Ee==="reserved_3y"){const U=((lt=F.vm_pricing.reserved_3y)==null?void 0:lt.find(J=>J.payment_option===ie))||((Ke=F.vm_pricing.reserved_3y)==null?void 0:Ke[0]);return U==null?void 0:U.cost_per_hour}return(Ot=F.vm_pricing.on_demand)==null?void 0:Ot.cost_per_hour},G=M(k,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),ke=M(se,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),k&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Ne=k.dbu_rate)==null?void 0:Ne.toFixed(2)," DBU/hr"]}),G!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",G.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:F=>W(Q=>({...Q,dbsql_driver_pricing_tier:F.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:F=>W(Q=>({...Q,dbsql_driver_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:ae.map(F=>o.jsx("option",{value:F.id,children:F.name},F.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),se&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=se.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),ke!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",ke.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:F=>W(Q=>({...Q,dbsql_worker_pricing_tier:F.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:F=>W(Q=>({...Q,dbsql_worker_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:ae.map(F=>o.jsx("option",{value:F.id,children:F.name},F.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>W(k=>({...k,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>W(k=>({...k,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>W(k=>({...k,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>W(k=>({...k,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const k={small:4,medium:12,large:40},se=P.target.value;W(M=>({...M,model_serving_scale_out:se,model_serving_concurrency:se==="custom"?M.model_serving_concurrency||4:k[se]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const k=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);W(se=>({...se,model_serving_concurrency:k}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>W(k=>({...k,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>W(k=>({...k,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>W(k=>({...k,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>W(k=>({...k,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:ue.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const k=P.target.value,se=H_(x,g||"aws",w.fmapi_provider,k),M=se.includes(w.fmapi_context_length)?w.fmapi_context_length:se[0]||"all";W(G=>({...G,fmapi_model:k,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(K=ue.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:K.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>W(k=>({...k,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:ue.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>W(k=>({...k,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?H_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],k={all:"All",short:"Short",long:"Long"};return P.map(se=>o.jsx("option",{value:se,children:k[se]||se},se))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>W(k=>({...k,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],k={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(se=>o.jsx("option",{value:se,children:k[se]||se},se))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>W(k=>({...k,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>W(k=>({...k,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>W(k=>({...k,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>W(k=>({...k,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>W(k=>({...k,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>W(k=>({...k,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>W(k=>({...k,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="CLEAN_ROOM"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Collaborators"}),o.jsx("input",{type:"number",min:1,max:10,step:1,value:w.clean_room_collaborators||1,onChange:P=>W(k=>({...k,clean_room_collaborators:Math.min(10,Math.max(1,parseInt(P.target.value)||1))})),className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"1 DBU per collaborator per day (max 10)"})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Mode"}),o.jsxs("select",{value:w.ai_parse_mode||"pages",onChange:P=>W(k=>({...k,ai_parse_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"pages",children:"Pages-based"}),o.jsx("option",{value:"dbu",children:"Direct DBU"})]})]}),(w.ai_parse_mode||"pages")==="pages"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>W(k=>({...k,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>W(k=>({...k,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>W(k=>({...k,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),w.workload_type==="LAKEFLOW_CONNECT"&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"col-span-full",children:o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Pipeline uses DLT Serverless (Advanced edition). Configure usage below."})}),o.jsx("div",{children:o.jsxs("label",{className:"flex items-center gap-2 text-xs font-medium text-[var(--text-secondary)]",children:[o.jsx("input",{type:"checkbox",checked:w.lakeflow_connect_gateway_enabled||!1,onChange:P=>W(k=>({...k,lakeflow_connect_gateway_enabled:P.target.checked})),className:"rounded"}),"Enable Gateway (Database Connectors)"]})}),w.lakeflow_connect_gateway_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Gateway Instance"}),o.jsx("input",{type:"text",value:w.lakeflow_connect_gateway_instance||"",onChange:P=>W(k=>({...k,lakeflow_connect_gateway_instance:P.target.value})),className:"w-full text-sm",placeholder:"e.g., i3.xlarge (auto-selected per cloud)"})]})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>Le(!1),className:ce("px-3 py-1 text-xs rounded-l-md border transition-colors",be?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>Le(!0),className:ce("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",be?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!be&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>W(k=>({...k,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>W(k=>({...k,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>W(k=>({...k,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),be&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>W(k=>({...k,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>W(k=>({...k,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>W(k=>({...k,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class G_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:a3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Lu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:aD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:wD,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:GD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:Hc,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:Hc,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:Hc,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:g3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},K_=e=>e?h8[e]||{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},ge=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),Q_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:ge(e),cn=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),Y_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:ce("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:ce("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[ge(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:ce("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[cn(e.monthlyDBUs)," DBUs/mo"]})]})}),X_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},J_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=UC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function Z_(){const{id:e}=ww(),t=ud(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:S,getInstanceDbuRate:R,vmPricingMap:E,instanceDbuRateMap:A,dbuRatesMap:D,fetchDBURates:z,instanceTypes:N,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:oe,getVectorSearchRate:fe,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:ae,pricingBundle:B,isPricingBundleLoaded:q,clearEstimateState:j,setLocalCalculatedCosts:ue}=bs(),[pe,L]=m.useState(!1),[be,Le]=m.useState(!1),[w,W]=m.useState(!1),[le,_e]=m.useState(!1),[ve,at]=m.useState(!1),[Xe,I]=m.useState(null),[nt,gt]=m.useState(!1),[ot,ft]=m.useState(!1),[K,P]=m.useState(!1),[k,se]=m.useState(!1),[M,G]=m.useState(new Set),[ke,Ne]=m.useState(new Set),[O,F]=m.useState(!1),[Q,ie]=m.useState({}),[Ee,Be]=m.useState(!1),[dt,rt]=m.useState(!1),[Ge,lt]=m.useState(!1),[Ke,Ot]=m.useState(!1),[U,J]=m.useState([]),[Te,Ve]=m.useState(!1),[Y,ct]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[et,It]=m.useState(!!e),[pt,xt]=m.useState(!1),[St,mt]=m.useState(!1),[Ue,Oe]=m.useState("table"),[De,Pe]=m.useState("order"),[Wt,Et]=m.useState("asc"),[Se,Ct]=m.useState(new Set),[on,qi]=m.useState(!1),Wi=m.useRef({}),Od=m.useCallback(T=>{const Z=Wi.current[T];Z&&(Z.scrollIntoView({behavior:"smooth",block:"center"}),Z.style.backgroundColor="rgba(255, 54, 33, 0.1)",Z.style.transition="background-color 0.3s ease",setTimeout(()=>{Wi.current[T]&&(Wi.current[T].style.backgroundColor="")},1500))},[]),Ze=m.useCallback(()=>{F(!0)},[]);m.useEffect(()=>{const T=Z=>{O&&(Z.preventDefault(),Z.returnValue="")};return window.addEventListener("beforeunload",T),()=>window.removeEventListener("beforeunload",T)},[O]),m.useEffect(()=>{if(!Y.cloud||!Y.region||r.length===0||!Ge)return;const T=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const $=cl(B,Y.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if($){const de=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",ze=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";T.add(`${$.driver_instance_type}:${de}:${ze}`);const jt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";T.add(`${$.worker_instance_type}:${jt}:${Rt}`)}return}if(C.driver_node_type){const $=C.driver_pricing_tier||"on_demand",de=C.driver_payment_option||"NA";T.add(`${C.driver_node_type}:${$}:${de}`)}if(C.worker_node_type){const $=C.worker_pricing_tier||"spot",de=C.worker_payment_option||"NA";T.add(`${C.worker_node_type}:${$}:${de}`)}}});const Z=Array.from(T).map(C=>{const[$,de,ze]=C.split(":");return _(Y.cloud,Y.region,$,de,ze)});if(Z.length>0){Ot(!0);const C=new Promise($=>setTimeout($,1e4));Promise.race([Promise.all(Z),C]).catch(()=>{}).finally(()=>Ot(!1))}},[Y.cloud,Y.region,r,Ge,_,B]),m.useEffect(()=>{if(!Y.cloud)return;const T=p(Y.cloud);if(T.length>0){const Z=q?CO(B,Y.cloud):[];if(Z.length>0){const C=T.filter($=>Z.includes($.region_code));J(C)}else J(T);Ve(!1)}else u?(J([]),Ve(!1)):Ve(!0)},[Y.cloud,d,u,p,B,q]),m.useEffect(()=>{(async()=>{if(e){Be(!0),rt(!0),lt(!1);try{await i(e)}catch(Z){console.error("Error loading estimate data:",Z)}finally{Be(!1),rt(!1),lt(!0)}}else j(),lt(!1)})()},[e,i,j]);const Vr={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ct({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ct(Vr),x("aws"),F(!1))},[n,e,x,y]),m.useEffect(()=>{Y.cloud&&Y.region&&Y.tier&&z(Y.cloud.toUpperCase(),Y.region,Y.tier.toUpperCase())},[Y.cloud,Y.region,Y.tier,z]);const Sr=!!(Y.region&&Y.tier),yn=(T,Z)=>{const C=Z?{...T,...Z}:T,$=Y.cloud||"aws",de=Y.region,ze=Object.keys(D).length>0?D:X_[$]||X_.aws,jt=C.num_workers||0;if(!de)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let Ce="";const Xt=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?Ce="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?Ce="JOBS_COMPUTE_(PHOTON)":Ce="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?Ce="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?Ce="ALL_PURPOSE_COMPUTE_(PHOTON)":Ce="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?Ce="JOBS_SERVERLESS_COMPUTE":(Ce=`DLT_${Xt}_COMPUTE`,C.photon_enabled&&(Ce+="_(PHOTON)"));break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Ie==="SERVERLESS"?Ce="SERVERLESS_SQL_COMPUTE":Ie==="PRO"?Ce="SQL_PRO_COMPUTE":Ce="SQL_COMPUTE";break;case"VECTOR_SEARCH":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const vt=(C.fmapi_provider||"openai").toLowerCase();Ce=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[vt]||vt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":Ce="DATABASE_SERVERLESS_COMPUTE";break;default:Ce="JOBS_COMPUTE"}let Tn=.2;if(q&&Y.tier){const Ie=Dg(B,$,de,Y.tier,Ce);Ie>0?Tn=Ie:Tn=ze[Ce]||.2}else Tn=ze[Ce]||.2;let we=0,Qe=0,We=0,As,Er,ss,te=.5,me=.5;if(q&&C.driver_node_type){const Ie=Rm(B,$,C.driver_node_type);Ie>0&&(te=Ie)}if(!te||te===.5){const Ie=N.find(vt=>vt.id===C.driver_node_type||vt.name===C.driver_node_type);Ie!=null&&Ie.dbu_rate&&(te=Ie.dbu_rate)}if(q&&C.worker_node_type){const Ie=Rm(B,$,C.worker_node_type);Ie>0&&(me=Ie)}if(!me||me===.5){const Ie=N.find(vt=>vt.id===C.worker_node_type||vt.name===C.worker_node_type);Ie!=null&&Ie.dbu_rate&&(me=Ie.dbu_rate)}const ln=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Ie;if(C.serverless_enabled?C.workload_type==="JOBS"?Ie="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Ie="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Ie="DLT_CORE_COMPUTE":Ie=Ce.replace("_(PHOTON)",""):Ie=Ce.replace("_(PHOTON)",""),q){const Jt=cE(B,$,Ie);if(Jt!==2)return Jt}const vt=H.find(Jt=>{var bn,fr;return Jt.sku_type===Ie||((bn=Jt.sku_type)==null?void 0:bn.toLowerCase())===Ie.toLowerCase()||((fr=Jt.sku_type)==null?void 0:fr.toLowerCase().includes((T.workload_type||"").toLowerCase()))});return(vt==null?void 0:vt.multiplier)||2})(),pi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)we=(te+me*jt)*ln*pi;else{we=(te+me*jt)*ln;const Ae=C.driver_pricing_tier||"on_demand",In=C.driver_payment_option||"NA",$r=C.worker_pricing_tier||"spot",fi=C.worker_payment_option||"NA",mi=S($,de,C.driver_node_type||"",Ae,In),hi=S($,de,C.worker_node_type||"",$r,fi);We=(mi+hi*jt)*Rt}Qe=we*Rt;break;case"DLT":if(C.serverless_enabled)we=(te+me*jt)*ln*Cr*pi;else{we=(te+me*jt)*ln*Cr;const Ae=C.driver_pricing_tier||"on_demand",In=C.driver_payment_option||"NA",$r=C.worker_pricing_tier||"spot",fi=C.worker_payment_option||"NA",mi=S($,de,C.driver_node_type||"",Ae,In),hi=S($,de,C.worker_node_type||"",$r,fi);We=(mi+hi*jt)*Rt}Qe=we*Rt;break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),vt=C.dbsql_warehouse_size||"Small",Jt=C.dbsql_num_clusters||1;let bn=J_[vt]||12;if(q){const Ae=_O(B,$,Ie,vt);Ae&&Ae.dbu_per_hour>0&&(bn=Ae.dbu_per_hour)}if(!bn||bn===(J_[vt]||12)){const Ae=X.find(In=>In.id===vt||In.name===vt);Ae!=null&&Ae.dbu_per_hour&&(bn=Ae.dbu_per_hour)}if(we=bn*Jt,Qe=we*Rt,Ie!=="SERVERLESS"){const Ae=q?cl(B,$,Ie,vt):null;if(Ae){const In=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",$r=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",fi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,de,Ae.driver_instance_type,In,$r),Ja=S($,de,Ae.worker_instance_type,fi,mi);We=(Ae.driver_count*hi+Ae.worker_count*Ja)*Jt*Rt}else if(C.driver_node_type){const In=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",$r=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",fi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,de,C.driver_node_type,In,$r),Ja=C.worker_node_type?S($,de,C.worker_node_type,fi,mi):0,bx=C.num_workers||0;We=(hi+Ja*bx)*Jt*Rt}}break;case"VECTOR_SEARCH":const fr=C.vector_search_mode||"standard",zt=C.vector_capacity_millions||1;let Dn=fr==="storage_optimized"?64e6:2e6,Zt=fr==="storage_optimized"?18.29:4;if(q){const Ae=bO(B,$,fr);Ae&&(Dn=Ae.input_divisor,Zt=Ae.dbu_rate)}else{const Ae=fe(fr);Ae&&(Dn=Ae.input_divisor,Zt=Ae.dbu_per_hour)}const Mn=zt*1e6,st=Math.ceil(Mn/Dn);As=st,we=st*Zt,Qe=we*Rt;const it=C.vector_search_storage_gb||0,en=st*20,At=Math.max(0,it-en),Gt=.023,mn=At*Gt;it>0&&(Er=mn,ss={totalStorageGB:it,freeStorageGB:en,billableStorageGB:At,pricePerGB:Gt});break;case"MODEL_SERVING":const Zn=C.model_serving_gpu_type||"cpu";let On=2;if(q){const Ae=wO(B,$,Zn);Ae&&Ae.dbu_rate>0&&(On=Ae.dbu_rate)}if(On===2){const Ae=re.find(In=>In.id===Zn||In.name===Zn);Ae!=null&&Ae.dbu_per_hour&&(On=Ae.dbu_per_hour)}const er=C.model_serving_scale_out||"small",Ul=er==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[er]||4;we=On*Ul,Qe=we*Rt;break;case"LAKEBASE":const Vl=C.lakebase_cu||1,zl=C.lakebase_ha_nodes||1,$l={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},e2=($l[$]||$l.aws)[(Y.tier||"PREMIUM").toUpperCase()]||.213;we=Vl*e2*zl,Qe=we*Rt;const Hl=Math.min(C.lakebase_storage_gb||0,8192),t2=C.lakebase_pitr_gb||0,n2=C.lakebase_snapshot_gb||0,ql=.023,r2=Hl*15*ql,s2=t2*8.7*ql,i2=n2*3.91*ql,vx=r2+s2+i2;vx>0&&(Er=vx,ss={totalStorageGB:Hl,billableStorageGB:Hl,dsuPerGB:15,totalDSU:Hl*15,pricePerDSU:ql});break;case"FMAPI_DATABRICKS":const a2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",yx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ls=null;if(q&&C.fmapi_model){const Ae=kO(B,$,C.fmapi_model,Xa);Ae&&(Ls=Ae.dbu_rate)}if(Ls===null&&C.fmapi_model){const Ae=xe(C.fmapi_model,Xa);Ae&&(yx?Ls=Ae.dbu_per_hour||null:Ls=Ae.dbu_per_1M_tokens||null)}Ls===null&&(yx?Ls=Xa==="provisioned_scaling"?200:50:Ls=Xa==="output_token"?3:1),Qe=a2*Ls;break;case"FMAPI_PROPRIETARY":const o2=C.fmapi_quantity||0,Wl=C.fmapi_rate_type||"input_token",_x=Wl==="provisioned_scaling";let jr=null;if(q&&C.fmapi_provider&&C.fmapi_model){const Ae=C.fmapi_endpoint_type||"global",In=C.fmapi_context_length||"long",$r=SO(B,$,C.fmapi_provider,C.fmapi_model,Ae,In,Wl);$r&&(jr=$r.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ae=ae(C.fmapi_provider,C.fmapi_model,Wl);Ae&&(_x?jr=Ae.dbu_per_hour||null:jr=Ae.dbu_per_1M_tokens||null)}if(jr===null)if(_x)jr=150;else switch(Wl){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}Qe=o2*jr;break;default:Qe=0}const pr=isNaN(Tn)||Tn===void 0?0:Tn,Ts=isNaN(Qe)||Qe===void 0?0:Qe,Ln=isNaN(We)||We===void 0?0:We,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ts*pr,as=zr+Ln+_n;return{monthlyDBUs:Ts,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(as)?0:as,unitsUsed:As,dbuPerHour:we,dbuPrice:pr,storageCost:_n>0?_n:void 0,storageDetails:ss}},Pt=m.useMemo(()=>{let T=0,Z=0,C=0,$=0;return r.forEach(de=>{const ze=yn(de);T+=isNaN(ze.monthlyDBUs)?0:ze.monthlyDBUs,Z+=isNaN(ze.dbuCost)?0:ze.dbuCost,C+=isNaN(ze.vmCost)?0:ze.vmCost,$+=isNaN(ze.totalCost)?0:ze.totalCost}),{totalDBUs:T,totalDBUCost:Z,totalVMCost:C,totalCost:$}},[r,Y.cloud,Y.region,Y.tier,s,S,E,R,A,N,H,D,X,re,oe,fe,xe,ae,B,q]);m.useEffect(()=>{const T={};r.forEach(Z=>{const C=yn(Z,Q[Z.line_item_id]);T[Z.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),ue(T)},[r,Q,Y.cloud,Y.region,Y.tier,ue,S,E,R,A,N,H,D,X,re,oe,fe,xe,ae,B,q]);const An=m.useMemo(()=>{const T=[...r];return De==="order"?T.sort((Z,C)=>(Z.display_order??0)-(C.display_order??0)):De==="name"?T.sort((Z,C)=>(Z.workload_name||"").localeCompare(C.workload_name||"")):De==="type"?T.sort((Z,C)=>(Z.workload_type||"").localeCompare(C.workload_type||"")):De==="cost"&&T.sort((Z,C)=>{const $=yn(Z).totalCost,de=yn(C).totalCost;return $-de}),Wt==="desc"&&T.reverse(),T},[r,De,Wt,yn]),rs=T=>{De===T?Et(Z=>Z==="asc"?"desc":"asc"):(Pe(T),Et(T==="cost"?"desc":"asc"))},Il=yC($u(Ld,{activationConstraint:{distance:5}}),$u(Td)),lx=De==="order",HC=m.useCallback(async T=>{const{active:Z,over:C}=T;if(!C||Z.id===C.id||!e)return;const $=An.findIndex(Xt=>Xt.line_item_id===Z.id),de=An.findIndex(Xt=>Xt.line_item_id===C.id);if($===-1||de===-1)return;const ze=[...An],[jt]=ze.splice($,1);ze.splice(de,0,jt);const{lineItems:Rt}=bs.getState(),Ce=Rt.map(Xt=>{const Tn=ze.findIndex(we=>we.line_item_id===Xt.line_item_id);return Tn>=0?{...Xt,display_order:Tn}:Xt});bs.setState({lineItems:Ce});try{await Q4(e,ze.map(Xt=>Xt.line_item_id))}catch{$e.error("Failed to save reorder")}},[An,e]),cx=async()=>{if(!Y.estimate_name.trim()){$e.error("Enter an estimate name");return}if(!Y.region){$e.error("Select a region");return}if(!Y.tier){$e.error("Select a Databricks tier");return}L(!0);try{const T={...Y,cloud:Y.cloud.toUpperCase(),tier:Y.tier.toUpperCase()};if(e&&n)await h(e,T),F(!1),$e.success("All changes saved");else{const Z=await f(T);F(!1),t(`/calculator/${Z.estimate_id}`,{replace:!0}),$e.success("Estimate created")}}catch{$e.error("Failed to save")}finally{L(!1)}},qC=async()=>{if(e){Le(!0);try{const T=await GS(e),Z=`${Y.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Km.saveAs(T,Z),$e.success("Exported to Excel")}catch{$e.error("Export failed")}finally{Le(!1)}}},WC=async()=>{if(e){W(!0),_e(!1);try{await g(e),$e.success("Estimate deleted"),t("/",{replace:!0})}catch{$e.error("Failed to delete estimate"),W(!1)}}},GC=async()=>{l(),$e.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),$e.success("Pricing data refreshed",{id:"refresh-data"})}catch{$e.error("Failed to refresh data",{id:"refresh-data"})}},ux=T=>{I(T),at(!0)},KC=async()=>{if(Xe){ft(!0);try{await v(Xe.line_item_id),$e.success("Workload removed")}catch{$e.error("Failed to delete")}finally{ft(!1),at(!1),I(null)}}},dx=()=>{Se.size!==0&>(!0)},QC=async()=>{ft(!0);try{let T=0;for(const Z of Se)await v(Z),T++;$e.success(`${T} workload(s) deleted`),Ct(new Set)}catch{$e.error("Failed to delete some workloads")}finally{ft(!1),gt(!1)}},YC=T=>{Ct(Z=>{const C=new Set(Z);return C.has(T)?C.delete(T):C.add(T),C})},XC=()=>{Se.size===r.length?Ct(new Set):Ct(new Set(r.map(T=>T.line_item_id)))},px=()=>{qi(!1),Ct(new Set)},fx=async(T,Z)=>{T.stopPropagation();try{await b(Z.line_item_id)&&$e.success(`Workload "${Z.workload_name}" cloned`)}catch{$e.error("Failed to clone workload")}},JC=()=>{O?P(!0):t("/")},ZC=()=>{P(!1),t("/")},mx=T=>{const Z=new Set(M);Z.has(T)?Z.delete(T):Z.add(T),G(Z)},Fl=(T,Z=!1)=>{const C=new Set(ke);if(C.has(T))C.delete(T);else if(C.add(T),Z&&!M.has(T)){const $=new Set(M);$.add(T),G($)}Ne(C)},hx=T=>T.hours_per_month?`${T.hours_per_month}h/month`:T.runs_per_day?`${T.runs_per_day} runs/day × ${T.avg_runtime_minutes||30}min`:null,gx=T=>{const Z=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(T.workload_type||"")&&T.serverless_enabled&&Z.push({label:"Mode",value:T.serverless_mode==="performance"?"Performance":"Standard"}),T.workload_type){case"VECTOR_SEARCH":T.vector_search_mode&&Z.push({label:"Mode",value:T.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),T.vector_capacity_millions&&Z.push({label:"Capacity",value:`${T.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(T.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};Z.push({label:"Endpoint",value:C[T.model_serving_gpu_type]||T.model_serving_gpu_type})}break;case"LAKEBASE":T.lakebase_cu&&Z.push({label:"CU",value:`${T.lakebase_cu}`}),T.lakebase_ha_nodes&&Z.push({label:"Nodes",value:`${T.lakebase_ha_nodes}${T.lakebase_ha_nodes>1?" (HA)":""}`}),T.lakebase_storage_gb&&T.lakebase_storage_gb>0&&Z.push({label:"Storage",value:`${T.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(T.fmapi_model&&Z.push({label:"Model",value:T.fmapi_model}),T.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};Z.push({label:"Rate",value:C[T.fmapi_rate_type]||T.fmapi_rate_type})}if(T.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(T.fmapi_rate_type||"");Z.push({label:C?"Hours":"Quantity",value:C?`${T.fmapi_quantity}h/mo`:`${T.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(T.fmapi_provider&&T.fmapi_model&&Z.push({label:"Model",value:`${T.fmapi_provider}/${T.fmapi_model}`}),T.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};Z.push({label:"Rate",value:C[T.fmapi_rate_type]||T.fmapi_rate_type})}T.fmapi_quantity&&Z.push({label:"Quantity",value:`${T.fmapi_quantity}M tokens`});break;case"DLT":T.dlt_edition&&Z.push({label:"Edition",value:T.dlt_edition});break;case"DBSQL":T.dbsql_warehouse_type&&Z.push({label:"Type",value:T.dbsql_warehouse_type}),T.dbsql_warehouse_size&&Z.push({label:"Size",value:T.dbsql_warehouse_size}),T.dbsql_num_clusters&&T.dbsql_num_clusters>1&&Z.push({label:"Clusters",value:`${T.dbsql_num_clusters}`});break}return Z},Bl=Y.estimate_name.trim()&&Y.region&&Y.tier,xx=()=>{const T=[];return Y.estimate_name.trim()||T.push("Estimate Name"),Y.region||T.push("Region"),Y.tier||T.push("Databricks Tier"),T};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&Ee&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ny,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(T=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},T))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(T=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},T))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:JC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ny,{className:"w-5 h-5"})}),o.jsx("div",{children:Ee&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:Y.estimate_name,onChange:T=>{ct(Z=>({...Z,estimate_name:T.target.value})),Ze()},placeholder:"Untitled Estimate",title:Y.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:GC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Yr,{className:ce("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:qC,disabled:be||!e,className:"btn btn-secondary",children:[o.jsx($c,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(tn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:ce("grid grid-cols-1 gap-6",pt?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:ce("space-y-6",pt?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>It(!et),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Lu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${Y.cloud.toUpperCase()} • ${Y.region||"No region"} • ${Y.tier?Y.tier.charAt(0).toUpperCase()+Y.tier.slice(1):"No tier"}${Y.customer_name?` • ${Y.customer_name}`:""}`,children:[Y.cloud.toUpperCase()," • ",Y.region||"No region"," • ",Y.tier?Y.tier.charAt(0).toUpperCase()+Y.tier.slice(1):"No tier",Y.customer_name&&` • ${Y.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:et?o.jsx(rr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(ps,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!et&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),Ee&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(T=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},T))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(T=>{const Z=r.length>0&&Y.cloud!==T.id;return o.jsxs("button",{disabled:Z,onClick:C=>{C.stopPropagation(),!Z&&(ct($=>({...$,cloud:T.id,region:"",tier:T.id==="azure"&&$.tier==="enterprise"?"":$.tier})),x(T.id),Ze())},className:ce("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",Y.cloud===T.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",Z?"opacity-40 cursor-not-allowed":Y.cloud!==T.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:Z?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:ce("text-sm font-semibold",Y.cloud===T.id?"text-lava-600":"text-[var(--text-primary)]"),children:T.name}),Y.cloud===T.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Ws,{className:"w-3.5 h-3.5 text-lava-600"})})]},T.id)})})]})]}),Ee&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:T=>T.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:Y.region,onChange:T=>{ct(Z=>({...Z,region:T.target.value})),y(T.target.value),Ze()},className:ce("w-full text-sm",!Y.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(T=>o.jsxs("option",{value:T.region_code,children:[T.region_code," (",T.sku_region,")"]},T.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:Y.tier,onChange:T=>{ct(Z=>({...Z,tier:T.target.value})),Ze()},className:ce("w-full text-sm",!Y.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),Y.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Ws,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:cx,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${xx().join(", ")}`,className:ce("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Ws,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(m3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:on?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Se.size," selected"]}),o.jsxs("button",{onClick:dx,disabled:Se.size===0,className:ce("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Se.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:px,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>qi(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Oe("table"),className:ce("p-1.5 rounded-md transition-colors",Ue==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(k3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Oe("cards"),className:ce("p-1.5 rounded-md transition-colors",Ue==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Pg,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Oe("expanded"),className:ce("p-1.5 rounded-md transition-colors",Ue==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(iy,{className:"w-4 h-4"})})]}),Sr&&e&&o.jsxs("button",{onClick:()=>se(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Du,{className:"w-4 h-4"}),"Add"]})]})]}),e?dt&&!Ge?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[Ue==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[on&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Se.size===r.length&&r.length>0,onChange:XC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>rs("name"),className:ce("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",on?"col-span-3":"col-span-4"),children:["Workload",De==="name"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>rs("type"),className:ce("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",De==="type"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>rs("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",De==="cost"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]})]}),o.jsx(LC,{sensors:Il,collisionDetection:_C,onDragEnd:HC,modifiers:[VC],children:o.jsx(FC,{items:An.map(T=>T.line_item_id),strategy:MC,children:An.map(T=>{var As,Er,ss;const Z=Q[T.line_item_id],C=Z?{...T,...Z}:T,$=yn(T,Z),de=K_(C.workload_type),ze=de.icon,jt=M.has(T.line_item_id),Rt=Se.has(T.line_item_id),Ce=C.workload_type||"",Xt=C.serverless_enabled||Ce==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Tn=((As=s.find(te=>te.workload_type===Ce))==null?void 0:As.display_name)||Ce,we=hx(C),We=(()=>{const te={badges:[],details:[]};if(Xt&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(Ce))Xt||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),Ce==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(Ce==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(Ce==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(Ce==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(Ce==="FMAPI_DATABRICKS"||Ce==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&Ce==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else Ce==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:T.line_item_id,disabled:!lx,children:o.jsxs("div",{ref:te=>{Wi.current[T.line_item_id]=te},children:[o.jsxs("div",{className:ce("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&on&&"bg-lava-600/5",jt&&"bg-[var(--bg-tertiary)]"),onClick:()=>mx(T.line_item_id),children:[on&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>YC(T.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:ce("flex items-center gap-3",on?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:ce("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",de.bgColor),children:o.jsx(ze,{className:ce("w-4 h-4",de.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:T.workload_name,children:T.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:Tn,children:Tn})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[We.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:We.badges.map((te,me)=>o.jsx("span",{className:ce("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(We.driver||We.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${We.driver||"N/A"}, Workers: ${((Er=We.workers)==null?void 0:Er.count)||0}× ${((ss=We.workers)==null?void 0:ss.type)||"N/A"}`,children:(()=>{const te=We.driver,me=We.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),We.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:We.details.join(" · "),children:We.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(Y_,{costs:$,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(Ce)||Ce==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&te&&$.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Fl(T.line_item_id,!0)},className:ce("p-1.5 rounded transition-colors",ke.has(T.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:ke.has(T.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(hc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>fx(te,T),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),ux(T)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(tn,{className:"w-4 h-4"})}),o.jsx("div",{className:ce("p-1 rounded transition-colors",jt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:jt?o.jsx(ps,{className:"w-5 h-5 text-lava-600"}):o.jsx(rr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!jt&&(We.badges.length>0||We.driver||We.workers||We.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[We.badges.map((te,me)=>o.jsx("span",{className:ce("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(We.driver||We.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=We.driver,me=We.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),We.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:We.details.join(" · ")})]}),jt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge($.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(Ce)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge($.vmCost)})]}),Ce==="LAKEBASE"&&$.storageCost!==void 0&&$.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:ge($.storageCost)})]}),Ce==="VECTOR_SEARCH"&&$.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[$.unitsUsed," unit",$.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(Ce)&&!Xt&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),gx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),we&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:we})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Fl(T.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(hc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:ke.has(T.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),ke.has(T.line_item_id)?o.jsx(ps,{className:"w-3 h-3"}):o.jsx(rr,{className:"w-3 h-3"})]}),ke.has(T.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,is=C.avg_runtime_minutes||30,ln=C.days_per_month||30,pi=C.hours_per_month||730,Vt=te?me*(is/60)*ln:pi,pr=($.dbuPrice||0).toFixed(2);if(Ce==="VECTOR_SEARCH"){const st=C.vector_capacity_millions||1,it=C.vector_search_mode||"standard",en=it==="storage_optimized"?64:2,At=Math.ceil(st/en),Gt=it==="storage_optimized"?18.29:4,mn=C.vector_search_storage_gb||0,Zn=At*20,On=Math.max(0,mn-Zn),er=On*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M"]})," vectors ÷ ",en,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At," unit",At!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Gt.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge($.dbuCost)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Zn," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",At," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[On," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(er)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),mn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(er)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})}if(Ce==="FMAPI_DATABRICKS"||Ce==="FMAPI_PROPRIETARY"){const st=C.fmapi_quantity||1,it=C.fmapi_rate_type||"input_token",en=["provisioned_scaling","provisioned_entry"].includes(it),At=st>0?$.monthlyDBUs/st:0,Gt=C.fmapi_model||"model",mn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[At.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Gt,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[At.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn?`${mn}/`:"",Gt,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})})}if(Ce==="LAKEBASE"){const st=C.lakebase_cu||1,it=C.lakebase_ha_nodes||1,en={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Gt=(en[Y.cloud||"aws"]||en.aws)[(Y.tier||"PREMIUM").toUpperCase()]||.213,mn=C.lakebase_storage_gb||0,Zn=C.lakebase_pitr_gb||0,On=C.lakebase_snapshot_gb||0,er=.023,Ya=mn*15*er,Ul=Zn*8.7*er,Vl=On*3.91*er,zl=Ya+Ul+Vl,$l=zl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Gt," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge($.dbuCost)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(mn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Ya)})]}),Zn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Zn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Ul)})]}),On>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[On," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(On*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Vl)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),$l&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(zl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})}if(Ce==="MODEL_SERVING"){const st=C.model_serving_gpu_type||"cpu",it=C.model_serving_scale_out||"small",At=it==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[it]||4,Gt=At>0&&$.dbuPerHour?$.dbuPerHour/At:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Gt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",st,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[At," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",it,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})]})}if(Ce==="DBSQL"){const st=C.dbsql_warehouse_size||"Small",it=C.dbsql_num_clusters||1,en=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),At=$.dbuPerHour?$.dbuPerHour/it:12,Gt=$.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:st}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",At.toFixed(1)," DBU/hr)"]}),it>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${is}min ÷ 60 × ${ln} days`:void 0,children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge($.dbuCost)})]}),Gt&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[en," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge($.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:ge($.dbuCost)}),Gt&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:ge($.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})]})}const Ts=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,as=$.vmCost>0&&!Xt,Ie=Y.cloud||"aws",vt=Y.region||"",Jt=N.find(st=>st.id===Ln||st.name===Ln),bn=N.find(st=>st.id===_n||st.name===_n),fr=R(Ie,Ln)||(Jt==null?void 0:Jt.dbu_rate)||0,zt=R(Ie,_n)||(bn==null?void 0:bn.dbu_rate)||0,Dn=vt&&Ln?S(Ie,vt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,Zt=vt&&_n?S(Ie,vt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,Mn=$.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Xt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:fr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:zt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge($.dbuCost)})]}),as&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(Dn==null?void 0:Dn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(Zt==null?void 0:Zt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge($.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),as&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:ge($.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})})()})]})]}),jt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(G_,{onReset:()=>{G(te=>{const me=new Set(te);return me.delete(T.line_item_id),me})},children:o.jsx(rf,{estimateId:e,lineItem:T,onClose:()=>{G(te=>{const me=new Set(te);return me.delete(T.line_item_id),me}),ie(te=>{const me={...te};return delete me[T.line_item_id],me})},onSave:()=>{ie(te=>{const me={...te};return delete me[T.line_item_id],me})},onFormChange:te=>{ie(me=>({...me,[T.line_item_id]:te}))},inline:!0})})})]})},T.line_item_id)})})})]}),Ue!=="table"&&An.map((T,Z)=>{var Tn;const C=Q[T.line_item_id],$=C?{...T,...C}:T,de=yn(T,C),ze=M.has(T.line_item_id),jt=hx($),Rt=K_($.workload_type),Ce=Rt.icon,Xt=Ue==="expanded"||ze;return o.jsx("div",{ref:we=>{Wi.current[T.line_item_id]=we},children:o.jsxs(Ut.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:Z*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:ce("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",Ue==="cards"&&!ze&&"py-3"),onClick:()=>mx(T.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:ce("rounded-lg flex items-center justify-center flex-shrink-0",Ue==="cards"&&!ze?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(Ce,{className:ce(Rt.color,Ue==="cards"&&!ze?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:ce("font-semibold truncate text-[var(--text-primary)]",Ue==="cards"&&!ze&&"text-sm"),title:T.workload_name,children:T.workload_name}),(T.serverless_enabled||T.workload_type==="DBSQL"&&(T.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),T.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Au,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((Tn=s.find(we=>we.workload_type===T.workload_type))==null?void 0:Tn.display_name)||T.workload_type})})]}),o.jsx(Y_,{costs:de,size:Ue==="cards"&&!ze?"md":"lg",isLoading:(()=>{const we=T.workload_type||"",Qe=!T.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(T.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&Qe&&de.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:we=>{we.stopPropagation(),Fl(T.line_item_id,!0)},className:ce("p-1.5 rounded-md transition-colors",ke.has(T.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:ke.has(T.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(hc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:we=>fx(we,T),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:we=>{we.stopPropagation(),ux(T)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(tn,{className:"w-4 h-4"})}),ze?o.jsx(ps,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(rr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),Xt&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge(de.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(T.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge(de.vmCost)})]}),T.workload_type==="LAKEBASE"&&de.storageCost!==void 0&&de.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:ge(de.storageCost)})]}),T.workload_type==="VECTOR_SEARCH"&&de.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[de.unitsUsed," unit",de.unitsUsed!==1?"s":""]})]}),(T.workload_type==="JOBS"||T.workload_type==="ALL_PURPOSE"||T.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[T.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:T.driver_node_type})]}),T.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[T.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:T.worker_node_type})]})]})]}),gx(T).map((we,Qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:we.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:we.value})]},Qe)),jt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:jt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:we=>{we.stopPropagation(),Fl(T.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(hc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:ke.has(T.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),ke.has(T.line_item_id)?o.jsx(ps,{className:"w-3 h-3"}):o.jsx(rr,{className:"w-3 h-3"})]}),ke.has(T.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const we=$.workload_type||"",Qe=$.serverless_enabled||we==="DBSQL"&&($.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",We=$.runs_per_day&&$.avg_runtime_minutes&&!$.hours_per_month,As=$.runs_per_day||0,Er=$.avg_runtime_minutes||30,ss=$.days_per_month||30,te=$.hours_per_month||730,me=We?As*(Er/60)*ss:te,ln=(de.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const zt=$.vector_capacity_millions||1,Dn=$.vector_search_mode||"standard",Zt=Dn==="storage_optimized"?64:2,Mn=Math.ceil(zt/Zt),st=Dn==="storage_optimized"?18.29:4,it=$.vector_search_storage_gb||0,en=Mn*20,At=Math.max(0,it-en),Gt=At*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M vectors"]})," ÷ ",Zt,"⌉"]}),o.jsxs("span",{children:["= ",Mn," units ×"]}),o.jsxs("span",{children:[st," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(de.monthlyDBUs)," DBUs × $",ln]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge(de.dbuCost)})]}),it>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[en," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Gt)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(de.dbuCost)}),it>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(Gt)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(de.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const zt=$.fmapi_quantity||0,Dn=de.monthlyDBUs/(zt||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Dn.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(de.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(de.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(de.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(de.totalCost)})]})]})}if(we==="LAKEBASE"){const zt=$.lakebase_cu||1,Dn=$.lakebase_ha_nodes||1,Zt=$.lakebase_storage_gb||0,Mn=$.lakebase_pitr_gb||0,st=$.lakebase_snapshot_gb||0,it=.023,en=Zt*15*it,At=Mn*8.7*it,Gt=st*3.91*it,mn=en+At+Gt,Zn=mn>0,On={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(On[Y.cloud||"aws"]||On.aws)[(Y.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(de.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge(de.dbuCost)})]}),Zt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Zt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(en)})]}),Mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(At)})]}),st>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(st*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Gt)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(de.dbuCost)}),Zn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(mn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(de.totalCost)})]})]})}if(we==="MODEL_SERVING"){const zt=$.model_serving_scale_out||"small",Zt=zt==="custom"?$.model_serving_concurrency||4:{small:4,medium:12,large:40}[zt]||4,Mn=Zt>0&&de.dbuPerHour?de.dbuPerHour/Zt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",zt,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(de.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(de.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(de.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(de.totalCost)})]})]})}const pi=$.num_workers||0,Vt=$.driver_node_type||"",Cr=$.worker_node_type||"",pr=$.photon_enabled,Ts=de.vmCost>0&&!Qe,Ln=Y.cloud||"aws",_n=Y.region||"",zr=N.find(zt=>zt.id===Vt||zt.name===Vt),as=N.find(zt=>zt.id===Cr||zt.name===Cr),Ie=R(Ln,Vt)||(zr==null?void 0:zr.dbu_rate)||0,vt=R(Ln,Cr)||(as==null?void 0:as.dbu_rate)||0,Jt=_n&&Vt?S(Ln,_n,Vt,$.driver_pricing_tier||"on_demand",$.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?S(Ln,_n,Cr,$.worker_pricing_tier||"spot",$.worker_payment_option||"NA"):null,fr=de.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[We&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[As," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[fr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",pr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Vt,children:Ie.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:vt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:pi}),o.jsx("span",{children:")"}),pr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[fr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(We?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(de.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(de.dbuCost)})]}),Ts&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Vt,children:["$",(Jt==null?void 0:Jt.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:pi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(We?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge(de.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(de.dbuCost)}),Ts&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:ge(de.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(de.totalCost)})]})]})})()})]})]})]}),ze&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(G_,{onReset:()=>{G(we=>{const Qe=new Set(we);return Qe.delete(T.line_item_id),Qe})},children:o.jsx(rf,{estimateId:e,lineItem:T,onClose:()=>{G(we=>{const Qe=new Set(we);return Qe.delete(T.line_item_id),Qe}),ie(we=>{const Qe={...we};return delete Qe[T.line_item_id],Qe})},onSave:()=>{ie(we=>{const Qe={...we};return delete Qe[T.line_item_id],Qe})},onFormChange:we=>{ie(Qe=>({...Qe,[T.line_item_id]:we}))},inline:!0})})})]})},T.line_item_id)}),Sr?k?o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>se(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(rf,{estimateId:e,lineItem:null,onClose:()=>se(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>se(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Du,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(fs,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",xx().join(", ")]})]}),o.jsxs("button",{onClick:cx,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Ws,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!pt&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(bm,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),dt&&!Ge&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>xt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(rr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),Sr?dt&&!Ge?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:ce("text-3xl font-bold text-lava-600",Ke&&"opacity-60"),children:ge(Pt.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[ge(Pt.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:ge(Pt.totalDBUCost),children:Q_(Pt.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Ke?"Loading...":ge(Pt.totalVMCost),children:Ke?"...":Q_(Pt.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const T=[...r].map(C=>({item:C,costs:yn(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return T.map(({item:C,costs:$},de)=>{const ze=Pt.totalCost>0?$.totalCost/Pt.totalCost*100:0,jt=Z[de%Z.length];return o.jsxs("button",{onClick:()=>Od(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[ze.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:ge($.totalCost),children:ge($.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:ce("h-full rounded-full transition-all",jt,"group-hover:brightness-110"),style:{width:`${Math.max(ze,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(bm,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(fs,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),pt&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[St&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>mt(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>mt(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const T=[...r].map(C=>({item:C,costs:yn(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return T.map(({item:C,costs:$},de)=>{const ze=Pt.totalCost>0?$.totalCost/Pt.totalCost*100:0,jt=Z[de%Z.length];return o.jsxs("button",{onClick:()=>{mt(!1),Od(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[ze.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:ge($.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:ce("h-full rounded-full",jt),style:{width:`${Math.max(ze,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>xt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>mt(!St),className:ce("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",St?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(iy,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(ps,{className:ce("w-3 h-3 transition-transform",St?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:ge(Pt.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:ge(Pt.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[ge(Pt.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Se.size>0&&o.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Se.size," workload",Se.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:dx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:px,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Y.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Xe&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Xe.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{at(!1),I(null)},disabled:ot,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:KC,disabled:ot,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ot?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),nt&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Se.size," Workload",Se.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(T=>Se.has(T.line_item_id)).map(T=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",T.workload_name]},T.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>gt(!1),disabled:ot,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:QC,disabled:ot,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ot?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),K&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(fs,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:ZC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=ww(),t=ud();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const eb={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var W;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:eb[n]||eb.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let S="";const R=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?S="JOBS_COMPUTE_(PHOTON)":S="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?S="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?S="ALL_PURPOSE_COMPUTE_(PHOTON)":S="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":(S=`DLT_${R}_COMPUTE`,e.photon_enabled&&(S+="_(PHOTON)"));break;case"DBSQL":const le=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();le==="SERVERLESS"?S="SERVERLESS_SQL_COMPUTE":le==="PRO"?S="SQL_PRO_COMPUTE":S="SQL_COMPUTE";break;case"VECTOR_SEARCH":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();S=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":S="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":S="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":S="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":S="DELTA_LIVE_TABLES_SERVERLESS";break;default:S="JOBS_COMPUTE"}let E=null;if(b){const le=b(S);le!==null&&le>0&&(E=le)}E===null&&(E=x[S]||.2),console.log(`[LiveEstimate] productType=${S}, dbuPrice=${E}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let A=0,D=0,z=0,N,H,X,re=.5,oe=.5;if(g&&e.driver_node_type){const le=g(e.driver_node_type);le!==null&&le>0&&(re=le)}if(re===.5){const le=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);le!=null&&le.dbu_rate&&(re=le.dbu_rate)}if(g&&e.worker_node_type){const le=g(e.worker_node_type);le!==null&&le>0&&(oe=le)}if(oe===.5){const le=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);le!=null&&le.dbu_rate&&(oe=le.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let le=S.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?le="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?le="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(le=`DLT_${R}_COMPUTE`)),v){const ve=v(le);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var at;return ve.sku_type===le||ve.sku_type===S||((at=ve.sku_type)==null?void 0:at.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),ae=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)A=(re+oe*y)*xe*ae;else{A=(re+oe*y)*xe;const Ze=e.driver_pricing_tier||"on_demand",Vr=e.driver_payment_option||"NA",Sr=e.worker_pricing_tier||"spot",yn=e.worker_payment_option||"NA",Pt=d(n,r,e.driver_node_type||"",Ze,Vr),An=d(n,r,e.worker_node_type||"",Sr,yn);z=(Pt+An*y)*_}D=A*_;break;case"DLT":if(e.serverless_enabled)A=(re+oe*y)*xe*ae;else{A=(re+oe*y)*xe;const Ze=e.driver_pricing_tier||"on_demand",Vr=e.driver_payment_option||"NA",Sr=e.worker_pricing_tier||"spot",yn=e.worker_payment_option||"NA",Pt=d(n,r,e.driver_node_type||"",Ze,Vr),An=d(n,r,e.worker_node_type||"",Sr,yn);z=(Pt+An*y)*_}D=A*_;break;case"DBSQL":const le=l.find(Ze=>Ze.id===e.dbsql_warehouse_size||Ze.name===e.dbsql_warehouse_size),_e=(le==null?void 0:le.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;A=_e*ve,D=A*_;const at=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(at!=="SERVERLESS"){const Ze=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Vr=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Sr=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",yn=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Pt=(W=t.getDBSQLWarehouseConfig)==null?void 0:W.call(t,at,e.dbsql_warehouse_size||"Small");if(Pt){const An=d(n,r,Pt.driver_instance_type,Ze,Vr),rs=d(n,r,Pt.worker_instance_type,Sr,yn);z=(Pt.driver_count*An+Pt.worker_count*rs)*ve*_}else if(e.driver_node_type){const An=d(n,r,e.driver_node_type,Ze,Vr),rs=e.worker_node_type?d(n,r,e.worker_node_type,Sr,yn):0,Il=e.num_workers||0;z=(An+rs*Il)*ve*_}}break;case"VECTOR_SEARCH":const Xe=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,nt=h(Xe),gt=(nt==null?void 0:nt.input_divisor)||(Xe==="storage_optimized"?64e6:2e6),ot=(nt==null?void 0:nt.dbu_per_hour)||(Xe==="storage_optimized"?18.29:4),ft=I*1e6,K=Math.ceil(ft/gt);N=K,A=K*ot,D=A*_;const P=e.vector_search_storage_gb||0,k=K*20,se=Math.max(0,P-k),M=.023,G=se*M;P>0&&(H=G,X={totalStorageGB:P,freeStorageGB:k,billableStorageGB:se,pricePerGB:M});break;case"MODEL_SERVING":const ke=e.model_serving_gpu_type||"cpu",Ne=u.find(Ze=>Ze.id===ke||Ze.name===ke),O=(Ne==null?void 0:Ne.dbu_per_hour)||2,F=e.model_serving_scale_out||"small",ie=F==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[F]||4;A=O*ie,D=A*_;break;case"LAKEBASE":const Ee=e.lakebase_cu||1,Be=e.lakebase_ha_nodes||1,dt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ge=(dt[n]||dt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;A=Ee*Ge*Be,D=A*_;const lt=Math.min(e.lakebase_storage_gb||0,8192),Ke=15,Ot=lt*Ke,U=.023,J=Ot*U,Te=e.lakebase_pitr_gb||0,Y=Te*8.7*U,ct=e.lakebase_snapshot_gb||0,It=ct*3.91*U;(lt>0||Te>0||ct>0)&&(H=J+Y+It,X={totalStorageGB:lt,billableStorageGB:lt,dsuPerGB:Ke,totalDSU:Ot,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const pt=e.fmapi_quantity||0,xt=e.fmapi_rate_type||"input_token",St=["provisioned_scaling","provisioned_entry"].includes(xt),mt=e.fmapi_model?p(e.fmapi_model,xt):null;if(St){const Ze=(mt==null?void 0:mt.dbu_per_hour)||(xt==="provisioned_scaling"?200:50);D=pt*Ze}else{const Ze=(mt==null?void 0:mt.dbu_per_1M_tokens)||(xt==="output_token"?3:1);D=pt*Ze}break;case"FMAPI_PROPRIETARY":const Ue=e.fmapi_quantity||0,Oe=e.fmapi_rate_type||"input_token",De=Oe==="provisioned_scaling",Pe=e.fmapi_endpoint_type||"global",Wt=e.fmapi_context_length||"long",Et=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Oe,Pe,Wt):null;if(De){const Ze=(Et==null?void 0:Et.dbu_per_hour)||150;D=Ue*Ze}else{let Ze=Et==null?void 0:Et.dbu_per_1M_tokens;if(!Ze)switch(Oe){case"output_token":Ze=321.43;break;case"cache_read":Ze=8.57;break;case"cache_write":Ze=85.71;break;default:Ze=21.43}D=Ue*Ze}break;case"DATABRICKS_APPS":const Se=(e.databricks_apps_size||"medium").toLowerCase();A={medium:.5,large:1}[Se]||.5,D=A*_;break;case"CLEAN_ROOM":const on=e.clean_room_collaborators||1,qi=e.days_per_month||30;D=on*qi;break;case"AI_PARSE":if((e.ai_parse_mode||"pages").toLowerCase()==="dbu")D=e.hours_per_month||0;else{const Ze={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Vr=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Ze[Vr]||62.5)}break;case"SHUTTERSTOCK_IMAGEAI":D=(e.shutterstock_images||0)*.857;break;case"LAKEFLOW_CONNECT":D=0;break;default:D=0}const B=D*E,q=H!==void 0&&!isNaN(H)?H:0,j=B+z+q,ue=isNaN(B)?0:B,pe=isNaN(z)?0:z,L=isNaN(j)?ue:j,be=isNaN(D)?0:D,Le=isNaN(A)?0:A,w=isNaN(E)?.15:E;return{monthlyDBUs:be,dbuCost:ue,vmCost:pe,totalCost:L,unitsUsed:N,dbuPerHour:Le,dbuPrice:w,storageCost:q>0?q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function qu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Qm(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Ym(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],tb=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function hs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function nb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?uE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of hs(tb,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of hs(tb,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of hs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of hs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of hs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=qu(t,l),p=d.length>0?hs(d,e.vmSamplesPerCloud):["c5.xlarge"];return nb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Qm(t,l),u=hs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=hs(Ym(l),e.tiersPerCloud);for(const p of u){const f=qu(t,l),h=f.length>0?hs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=nb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[S,R]=m.useState({current:0,total:0}),[E,A]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),z=m.useRef(!1),[N,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:oe,photonMultipliers:fe,modelServingGPUTypes:xe,vectorSearchModes:ae,pricingBundle:B,isPricingBundleLoaded:q,loadPricingBundle:j,getVMPrice:ue,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:be,getVectorSearchRate:Le}=bs();m.useEffect(()=>{j()},[j]);const w=m.useMemo(()=>C8(N,B),[N,B]),W=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),le=m.useMemo(()=>{const M=new Set(w.map(G=>G.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,G,ke)=>{const Ne=q&&B.modelServingRates?Object.entries(B.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,F])=>{const Q=O.split(":")[1];return{id:Q,name:Q,dbu_per_hour:F.dbu_rate}}):xe;return{cloud:M,region:G,tier:ke,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:oe,photonMultipliers:fe,modelServingGPUTypes:Ne,vectorSearchModes:ae,getVMPrice:ue,getFMAPIDatabricksRate:(O,F)=>{if(q&&B.fmapiDatabricksRates){const Q=`${M.toLowerCase()}:${O}:${F}`,ie=B.fmapiDatabricksRates[Q];if(ie)return{dbu_per_1M_tokens:ie.is_hourly?void 0:ie.dbu_rate,dbu_per_hour:ie.is_hourly?ie.dbu_rate:void 0}}return L(O,F)},getFMAPIProprietaryRate:(O,F,Q,ie,Ee)=>{if(q&&B.fmapiProprietaryRates){const Be=ie||"global",dt=Ee||"all",rt=`${M.toLowerCase()}:${O.toLowerCase()}:${F.toLowerCase()}:${Be}:${dt}:${Q}`,Ge=B.fmapiProprietaryRates[rt];if(Ge)return{dbu_per_1M_tokens:Ge.is_hourly?void 0:Ge.dbu_rate,dbu_per_hour:Ge.is_hourly?Ge.dbu_rate:void 0}}return be(O,F,Q)},getVectorSearchRate:O=>{if(q&&B.vectorSearchRates){const F=`${M.toLowerCase()}:${O}`,Q=B.vectorSearchRates[F];if(Q)return{dbu_per_hour:Q.dbu_rate,input_divisor:Q.input_divisor}}return Le(O)},getInstanceDBURate:O=>q?Rm(B,M,O):null,getPhotonMultiplier:O=>q?cE(B,M,O):null,getDBUPrice:O=>q?Dg(B,M,G,ke,O):null,getDBSQLWarehouseConfig:(O,F)=>q?cl(B,M,O,F):null}},[X,re,oe,fe,xe,ae,q,B,ue,L,be,Le]),ve=async M=>{var Y,ct,et,It,pt,xt,St,mt,Ue;const{environment:G,workloadType:ke,config:Ne}=M,O=_e(G.cloud,G.region,G.tier),F={...Ne,workload_type:ke},Q=[];if(ke==="DBSQL"&&Ne.dbsql_warehouse_type!=="SERVERLESS"){const Oe=cl(B,G.cloud,Ne.dbsql_warehouse_type||"PRO",Ne.dbsql_warehouse_size||"Small");if(Oe){const De=Ne.dbsql_driver_pricing_tier||"on_demand",Pe=Ne.dbsql_driver_payment_option||"NA";Q.push(pe(G.cloud,G.region,Oe.driver_instance_type,De,Pe));const Wt=Ne.dbsql_worker_pricing_tier||"on_demand",Et=Ne.dbsql_worker_payment_option||"NA";Q.push(pe(G.cloud,G.region,Oe.worker_instance_type,Wt,Et))}}else!Ne.serverless_enabled&&Ne.driver_node_type&&(Q.push(pe(G.cloud,G.region,Ne.driver_node_type,Ne.driver_pricing_tier||"on_demand",Ne.driver_payment_option||"NA")),Ne.worker_node_type&&Q.push(pe(G.cloud,G.region,Ne.worker_node_type,Ne.worker_pricing_tier||"spot",Ne.worker_payment_option||"NA")));Q.length>0&&await Promise.all(Q);const ie=performance.now(),Ee=y8(F,O),Be=performance.now()-ie,dt=performance.now();let rt=null,Ge,lt;const Ke=j8(ke,Ne),Ot=N8(M);try{const Oe=await fetch(Ke,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ot)});if(Oe.ok){const De=await Oe.json();lt=De;const Pe=De.data||De,Wt=((Y=Pe.dbu_calculation)==null?void 0:Y.dbu_per_month)??Pe.dbu_per_month??(((ct=Pe.dbu_calculation)==null?void 0:ct.dbu_per_hour)??Pe.dbu_per_hour??0)*(Ne.hours_per_month||730),Et=((et=Pe.dbu_calculation)==null?void 0:et.dbu_cost_per_month)??((pt=(It=Pe.total_cost)==null?void 0:It.breakdown)==null?void 0:pt.dbu_cost)??Pe.dbu_cost_per_month??Pe.dbu_cost??0,Se=((xt=Pe.vm_costs)==null?void 0:xt.vm_cost_per_month)??((mt=(St=Pe.total_cost)==null?void 0:St.breakdown)==null?void 0:mt.vm_cost)??Pe.vm_cost_per_month??Pe.vm_cost??0;let Ct=0;typeof Pe.total_cost=="object"&&Pe.total_cost!==null?Ct=Pe.total_cost.cost_per_month??Et+Se:typeof Pe.total_cost=="number"?Ct=Pe.total_cost:Ct=Pe.total_cost_per_month??Et+Se,rt={monthlyDBUs:Wt,dbuCost:Et,vmCost:Se,totalCost:Ct},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:De,parsed:rt})}else{const De=await Oe.text();try{const Pe=JSON.parse(De);Ge=`HTTP ${Oe.status}: ${((Ue=Pe.detail)==null?void 0:Ue.message)||Pe.detail||Pe.message||De}`}catch{Ge=`HTTP ${Oe.status}: ${De}`}}}catch(Oe){Ge=Oe instanceof Error?Oe.message:"Unknown error"}const U=performance.now()-dt,{discrepancies:J,totalCostDiffPercent:Te}=P8(Ee,rt,g),Ve=Te<=g&&!Ge;return{testCase:M,localResult:Ee,apiResult:rt,apiError:Ge,apiRequestBody:Ot,apiRawResponse:lt,localTimeMs:Be,apiTimeMs:U,matches:Ve,totalCostDiffPercent:Te,discrepancies:J}},at=()=>{D.current=!0,i(!0)},Xe=()=>{D.current=!1,i(!1)},I=()=>{z.current=!0,l(!0),D.current=!1,i(!1)},nt=async()=>{for(;D.current&&!z.current;)await new Promise(M=>setTimeout(M,100))},gt=async()=>{r(!0),i(!1),l(!1),D.current=!1,z.current=!1,t([]),R({current:0,total:W.length});for(let M=0;M[...Ne,ke])}u(null),r(!1),i(!1),l(!1)},ot=async()=>{const{cloud:M,region:G,tier:ke,workloadType:Ne,serverless:O,photon:F,driverNode:Q,workerNode:ie,numWorkers:Ee,runsPerDay:Be,avgRuntime:dt,daysPerMonth:rt,hoursPerMonth:Ge}=E,lt={id:"custom-single",name:`Custom ${Ne} Test`,category:Ne,workloadType:Ne,environment:{cloud:M,region:G,tier:ke},config:{serverless_enabled:O,photon_enabled:F,driver_node_type:Q,worker_node_type:ie,num_workers:Ee,runs_per_day:Be,avg_runtime_minutes:dt,days_per_month:rt,hours_per_month:Ge,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Ke=await ve(lt);t([Ke]),u(null),r(!1)},ft=m.useMemo(()=>{const M=e.filter(Q=>Q.matches).length,G=e.filter(Q=>!Q.matches).length,ke=e.filter(Q=>Q.apiError).length,Ne=e.length>0?e.reduce((Q,ie)=>Q+ie.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((Q,ie)=>Q+ie.apiTimeMs,0)/e.length:0,F={};return e.forEach(Q=>{const ie=Q.testCase.category;F[ie]||(F[ie]={passed:0,failed:0}),Q.matches?F[ie].passed++:F[ie].failed++}),{passed:M,failed:G,apiErrors:ke,avgLocalTime:Ne,avgApiTime:O,byCategory:F}},[e]),K=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],G=e.map(Q=>{var ie;return[Q.testCase.id,Q.testCase.name,Q.testCase.category,Q.testCase.environment.cloud,Q.testCase.environment.region,Q.testCase.environment.tier,Q.matches?"PASS":"FAIL",Q.localResult.totalCost.toFixed(2),((ie=Q.apiResult)==null?void 0:ie.totalCost.toFixed(2))||"N/A",Q.totalCostDiffPercent.toFixed(2),Q.localTimeMs.toFixed(1),Q.apiTimeMs.toFixed(1),Q.apiError||""]}),ke=[M.join(","),...G.map(Q=>Q.map(ie=>`"${ie}"`).join(","))].join(` +`),Ne=new Blob([ke],{type:"text/csv"}),O=URL.createObjectURL(Ne),F=document.createElement("a");F.href=O,F.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,F.click()},P=M=>{const G=new Set(d);G.has(M)?G.delete(M):G.add(M),p(G)},k=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),se=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(dD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Au,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(tD,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:K,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(MD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:at,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(n3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Xe,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(fS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:gt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Run ",W.length," Tests"]})]})]}),y&&o.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Au,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:ot,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:E.cloud,onChange:M=>A({...E,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:E.region,onChange:M=>A({...E,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Qm(B,E.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:E.tier,onChange:M=>A({...E,tier:M.target.value}),className:"w-full text-sm",children:Ym(E.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:E.workloadType,onChange:M=>A({...E,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:E.serverless,onChange:M=>A({...E,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:E.photon,onChange:M=>A({...E,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:E.driverNode,onChange:M=>A({...E,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:qu(B,E.cloud,E.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:E.workerNode,onChange:M=>A({...E,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:qu(B,E.cloud,E.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:E.numWorkers,onChange:M=>A({...E,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:E.runsPerDay,onChange:M=>A({...E,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:E.avgRuntime,onChange:M=>A({...E,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:E.daysPerMonth,onChange:M=>A({...E,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(PD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:N.manualEnvironment.enabled,onChange:M=>H({...N,manualEnvironment:{...N.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),N.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:N.manualEnvironment.cloud,onChange:M=>H({...N,manualEnvironment:{...N.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:N.manualEnvironment.region,onChange:M=>H({...N,manualEnvironment:{...N.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Qm(B,N.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:N.manualEnvironment.tier,onChange:M=>H({...N,manualEnvironment:{...N.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Ym(N.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),N.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",N.manualEnvironment.cloud.toUpperCase()," / ",N.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:N.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:N.clouds.includes(M),onChange:G=>{G.target.checked?H({...N,clouds:[...N.clouds,M]}):H({...N,clouds:N.clouds.filter(ke=>ke!==M)})},className:"rounded",disabled:N.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:N.regionsPerCloud,onChange:M=>H({...N,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:N.tiersPerCloud,onChange:M=>H({...N,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:N.vmSamplesPerCloud,onChange:M=>H({...N,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:G})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:N[M],onChange:ke=>H({...N,[M]:ke.target.checked}),className:"rounded"}),G]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:G})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:N[M],onChange:ke=>H({...N,[M]:ke.target.checked}),className:"rounded"}),G]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:le.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${q?"text-green-500":"text-yellow-500"}`,children:[q?o.jsx(Tu,{className:"w-5 h-5"}):o.jsx(fs,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",N.clouds.map(M=>M.toUpperCase()).join(", ")," •",N.regionsPerCloud," regions × ",N.tiersPerCloud," tiers × ",N.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:ft.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:ft.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:ft.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[ft.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[ft.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(ft.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(ft.byCategory).map(([M,{passed:G,failed:ke}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[G," ✓"]}),ke>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[ke," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx(Ut.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${S.current/S.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[S.current," / ",S.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:W.map(M=>{const G=e.find(O=>O.testCase.id===M.id),ke=d.has(M.id),Ne=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${G&&!G.matches?"bg-red-500/5":""} + ${Ne?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>G&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[G&&(ke?o.jsx(rr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:G?k(G.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:G!=null&&G.apiResult?k(G.apiResult.totalCost):G!=null&&G.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:G?o.jsxs("span",{className:G.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[G.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Ne?o.jsx(Yr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):G?G.matches?o.jsx(Tu,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(N3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),G&&ke&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:se(G.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:k(G.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:k(G.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:k(G.localResult.totalCost)})]}),G.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",G.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),G.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:G.apiError})}):G.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:G.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:se(G.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:G.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:k(G.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:G.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:k(G.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:G.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:k(G.apiResult.totalCost)})]})]}):null]})]}),G.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:G.discrepancies.map((O,F)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},F))})]})})]}),G.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(G.apiRawResponse,null,2)})})]}),G.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(G.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:G.testCase.environment,config:G.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(PN,{children:o.jsxs(_i,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(_i,{index:!0,element:o.jsx(u8,{})}),o.jsx(_i,{path:"calculator",element:o.jsx(Z_,{})}),o.jsx(_i,{path:"calculator/:id",element:o.jsx(Z_,{})}),o.jsx(_i,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(_i,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();sf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(ON,{children:[o.jsx(A8,{}),o.jsx(jP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-B_kfxObx.js b/lakemeter/backend/static/assets/index-B_kfxObx.js new file mode 100644 index 00000000..4ccdb640 --- /dev/null +++ b/lakemeter/backend/static/assets/index-B_kfxObx.js @@ -0,0 +1,354 @@ +function a2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var hs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},Ke={};/** + * @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 hl=Symbol.for("react.element"),o2=Symbol.for("react.portal"),l2=Symbol.for("react.fragment"),c2=Symbol.for("react.strict_mode"),u2=Symbol.for("react.profiler"),d2=Symbol.for("react.provider"),p2=Symbol.for("react.context"),f2=Symbol.for("react.forward_ref"),m2=Symbol.for("react.suspense"),h2=Symbol.for("react.memo"),g2=Symbol.for("react.lazy"),_x=Symbol.iterator;function x2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Ia.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;sb(Xm,Ia.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ob=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ob.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=F[se];if(0>>1;ses(De,N))ws(Y,De)?(F[se]=Y,F[w]=N,se=w):(F[se]=De,F[ke]=N,se=ke);else if(ws(Y,N))F[se]=Y,F[w]=N,se=w;else break e}}return Q}function s(F,Q){var N=F.sortIndex-Q.sortIndex;return N!==0?N:F.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(F){for(var Q=n(u);Q!==null;){if(Q.callback===null)r(u);else if(Q.startTime<=F)r(u),Q.sortIndex=Q.expirationTime,t(c,Q);else break;Q=n(u)}}function k(F){if(v=!1,_(F),!g)if(n(c)!==null)g=!0,xe(A);else{var Q=n(u);Q!==null&&oe(k,Q.startTime-F)}}function A(F,Q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Q),p=n(c);p!==null&&(!(p.expirationTime>Q)||F&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var pe=se(p.expirationTime<=Q);Q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(Q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var ke=n(u);ke!==null&&oe(k,ke.startTime-Q),L=!1}return L}finally{p=null,f=N,h=!1}}var S=!1,T=null,D=-1,$=5,j=-1;function H(){return!(e.unstable_now()-j<$)}function X(){if(T!==null){var F=e.unstable_now();j=F;var Q=!0;try{Q=T(!0,F)}finally{Q?re():(S=!1,T=null)}}else S=!1}var re;if(typeof y=="function")re=function(){y(X)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,he=le.port2;le.port1.onmessage=X,re=function(){he.postMessage(null)}}else re=function(){b(X,0)};function xe(F){T=F,S||(S=!0,re())}function oe(F,Q){D=b(function(){F(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_continueExecution=function(){g||h||(g=!0,xe(A))},e.unstable_forceFrameRate=function(F){0>F||125se?(F.sortIndex=N,t(u,F),n(c)===null&&F===n(u)&&(v?(x(D),D=-1):v=!0,oe(k,N-se))):(F.sortIndex=pe,t(c,F),g||h||(g=!0,xe(A))),F},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(F){var Q=f;return function(){var N=f;f=Q;try{return F.apply(this,arguments)}finally{f=N}}}})(mb);fb.exports=mb;var P2=fb.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 R2=m,cr=P2;function ee(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"),sf=Object.prototype.hasOwnProperty,A2=/^[: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]*$/,kx={},Sx={};function T2(e){return sf.call(Sx,e)?!0:sf.call(kx,e)?!1:A2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function L2(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 D2(e,t,n,r){if(t===null||typeof t>"u"||L2(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 Fn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new Fn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new Fn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new Fn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new Fn(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){yn[e]=new Fn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new Fn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new Fn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new Fn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new Fn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new Fn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function M2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Fd(e.type,!1),e;case 11:return e=Fd(e.type.render,!1),e;case 1:return e=Fd(e.type,!0),e;default:return""}}function cf(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 Xi:return"Fragment";case Yi:return"Portal";case af:return"Profiler";case rh:return"StrictMode";case of:return"Suspense";case lf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cf(e.type)||"Memo";case Bs:t=e._payload,e=e._init;try{return cf(e(t))}catch{}}return null}function O2(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 cf(t);case 8:return t===rh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function I2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kl(e){e._valueTracker||(e._valueTracker=I2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 uf(e,t){var n=t.checked;return Ot({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ri(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function df(e,t){bb(e,t);var n=ri(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")?pf(e,t.type,n):t.hasOwnProperty("defaultValue")&&pf(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 pf(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},B2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){B2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Cb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var F2=Ot({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 hf(e,t){if(t){if(F2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gf(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 xf=null;function ah(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vf=null,ha=null,ga=null;function Rx(e){if(e=vl(e)){if(typeof vf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vf(e.stateNode,e.type,t))}}function jb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Nb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(Y2(e)/X2|0)|0}var Yl=64,Xl=4194304;function ho(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function tj(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=wo),Fx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Pj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Aj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Fx);case"textInput":return e=t.data,e===Fx&&Ux?null:e;default:return null}}function Tj(e,t){if(Ji)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=Hs=null,Ji=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Vj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var a=qx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Sf=null,So=null,Ef=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ef||Zi==null||Zi!==Yc(r)||(r=Zi,"selectionStart"in r&&hh(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}),So&&Wo(So,r)||(So=r,r=ru(Sf,"onSelect"),0na||(e.current=Af[na],Af[na]=null,na--)}function bt(e,t){na++,Af[na]=e.current,e.current=t}var si={},Pn=li(si),qn=li(!1),Mi=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Wn(e){return e=e.childContextTypes,e!=null}function iu(){St(qn),St(Pn)}function Zx(e,t,n){if(Pn.current!==si)throw Error(ee(168));bt(Pn,t),bt(qn,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,O2(e)||"Unknown",s));return Ot({},n,r)}function au(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Mi=Pn.current,bt(Pn,e),bt(qn,qn.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,St(qn),St(Pn),bt(Pn,e)):St(qn),bt(qn,n)}var ps=null,Ju=!1,Zd=!1;function u1(e){ps===null?ps=[e]:ps.push(e)}function Zj(e){Ju=!0,u1(e)}function ci(){if(!Zd&&ps!==null){Zd=!0;var e=0,t=dt;try{var n=ps;for(dt=1;e>=a,s-=a,xs=1<<32-Mr(t)+s|n<D?($=T,T=null):$=T.sibling;var j=f(x,T,_[D],k);if(j===null){T===null&&(T=$);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j,T=$}if(D===_.length)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],k),T!==null&&(y=i(T,y,D),S===null?A=T:S.sibling=T,S=T);return Tt&&_i(x,D),A}for(T=r(x,T);D<_.length;D++)$=h(T,x,D,_[D],k),$!==null&&(e&&$.alternate!==null&&T.delete($.key===null?D:$.key),y=i($,y,D),S===null?A=$:S.sibling=$,S=$);return e&&T.forEach(function(H){return t(x,H)}),Tt&&_i(x,D),A}function v(x,y,_,k){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var S=A=null,T=y,D=y=0,$=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?($=T,T=null):$=T.sibling;var H=f(x,T,j.value,k);if(H===null){T===null&&(T=$);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),S===null?A=H:S.sibling=H,S=H,T=$}if(j.done)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,k),j!==null&&(y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return Tt&&_i(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,k),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return e&&T.forEach(function(X){return t(x,X)}),Tt&&_i(x,D),A}function b(x,y,_,k){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var A=_.key,S=y;S!==null;){if(S.key===A){if(A=_.type,A===Xi){if(S.tag===7){n(x,S.sibling),y=s(S,_.props.children),y.return=x,x=y;break e}}else if(S.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Bs&&r0(A)===S.type){n(x,S.sibling),y=s(S,_.props),y.ref=so(x,S,_),y.return=x,x=y;break e}n(x,S);break}else t(x,S);S=S.sibling}_.type===Xi?(y=Ti(_.props.children,x.mode,k,_.key),y.return=x,x=y):(k=Ic(_.type,_.key,_.props,null,x.mode,k),k.ref=so(x,y,_),k.return=x,x=k)}return a(x);case Yi:e:{for(S=_.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=op(_,x.mode,k),y.return=x,x=y}return a(x);case Bs:return S=_._init,b(x,y,S(_._payload),k)}if(mo(_))return g(x,y,_,k);if(Za(_))return v(x,y,_,k);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=ap(_,x.mode,k),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=m1(!0),h1=m1(!1),cu=li(null),uu=null,ia=null,yh=null;function _h(){yh=ia=uu=null}function bh(e){var t=cu.current;St(cu),e._currentValue=t}function Df(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 va(e,t){uu=e,yh=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Hn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(uu===null)throw Error(ee(308));ia=e,uu.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var ji=null;function wh(e){ji===null?ji=[e]:ji.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Es(e,r)}function Es(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 Fs=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 ys(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Es(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Es(e,n)}function Ac(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Ot({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Bi|=a,e.lanes=a,e.memoizedState=p}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{dt=n,tp.transition=r}}function D1(){return Sr().memoizedState}function r5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Or(n,e,r,s),I1(n,t,r)}}function s5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Br(l,a)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Or(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===Mt||t!==null&&t===Mt}function O1(e,t){Eo=fu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:kr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},i5={readContext:kr,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:o0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lc(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lc(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=r5.bind(null,Mt,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:a0,useDebugValue:Ah,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=a0(!1),t=e[0];return e=n5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Mt,s=qr();if(Tt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Ii&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,o0(k1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=fn.identifierPrefix;if(Tt){var n=vs,r=xs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Gr]=t,e[Qo]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(a=gf(n,r),n){case"dialog":kt("cancel",e),kt("close",e),s=r;break;case"iframe":case"object":case"embed":kt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=pu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Tt)return kn(t),null}else 2*Kt()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Kt(),t.sibling=null,n=Lt.current,bt(Lt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?rr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function f5(e,t){switch(xh(t),t.tag){case 1:return Wn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),St(qn),St(Pn),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eh(t),null;case 13:if(St(Lt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return St(Lt),null;case 4:return Ca(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var ac=!1,En=!1,m5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function $f(e,t,n){try{n()}catch(r){zt(e,t,r)}}var v0=!1;function h5(e,t){if(Cf=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jf={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(k){zt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$f(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hf(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Qo],delete t[Rf],delete t[Xj],delete t[Jj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qf(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=su));else if(r!==4&&(e=e.child,e!==null))for(qf(e,t,n),e=e.sibling;e!==null;)qf(e,t,n),e=e.sibling}function Wf(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(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),Ho(e)):Jd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&$f(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){zt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ms(e,t,n),En=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new m5),t.forEach(function(r){var s=S5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Kt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,xu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,a=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cKt()-Mh?Ai(e,0):Dh|=n),Gn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=Es(e,t),e!==null&&(gl(e,t,n),Gn(e,n))}function k5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function S5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qn.current)Hn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Hn=!1,d5(e,t,n);Hn=!!(e.flags&131072)}else Hn=!1,Tt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Wn(r)?(i=!0,au(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Of(t,r,e,n),t=Ff(null,t,r,!0,i,n)):(t.tag=0,Tt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=C5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=f0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(ir=Xs(t.stateNode.containerInfo.firstChild),ar=t,Tt=!0,Dr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Cs(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Lf(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Nf(r,s)?a=null:i!==null&&Nf(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,a,n),t.child;case 6:return e===null&&Lf(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),f0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,bt(cu,r._currentValue),r._currentValue=a,i!==null)if(Br(i.value,a)){if(i.children===s.children&&!qn.current){t=Cs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ys(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Df(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Df(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Dc(e,t),t.tag=1,Wn(r)?(e=!0,au(t)):e=!1,va(t,n),B1(t,r,s),Of(t,r,s,n),Ff(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function E5(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 br(e,t,n,r){return new E5(e,t,n,r)}function Fh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C5(e){if(typeof e=="function")return Fh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Ic(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Fh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ti(n.children,s,i,t);case rh:a=8,s|=8;break;case af:return e=br(12,n,t,s|2),e.elementType=af,e.lanes=i,e;case of:return e=br(13,n,t,s),e.elementType=of,e.lanes=i,e;case lf:return e=br(19,n,t,s),e.elementType=lf,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:a=10;break e;case xb:a=9;break e;case sh:a=11;break e;case ih:a=14;break e;case Bs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ti(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=br(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function ap(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function op(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function j5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,a,l,c){return e=new j5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function N5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=dr;var la=pb.exports,N0=la;rf.createRoot=N0.createRoot,rf.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function D5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||D5()})}function _u(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 Ua(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 M5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Xf(v.location,b,x);u=d()+1;let _=R0(y,u),k=v.createHref(y);try{a.pushState(_,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(k)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Xf(v.location,b,x);u=d();let _=R0(y,u),k=v.createHref(y);a.replaceState(_,"",k),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Zt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,p),c=b,()=>{s.removeEventListener(P0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var A0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(A0||(A0={}));function O5(e,t,n){return n===void 0&&(n="/"),I5(e,t,n)}function I5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let a=fw(e);B5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Zt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Zt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:q5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of mw(i.path))s(i,a,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=mw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function B5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:W5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const F5=/^:[\w-]+$/,U5=3,V5=2,z5=1,$5=10,H5=-2,T0=e=>e==="*";function q5(e,t){let n=e.split("/"),r=n.length;return n.some(T0)&&(r+=H5),t&&(r+=V5),n.filter(s=>!T0(s)).reduce((s,i)=>s+(F5.test(i)?U5:i===""?z5:$5),r)}function W5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function G5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function Q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Y5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 X5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,J5=e=>X5.test(e);function Z5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(J5(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=L0(n.substring(1),"/"):i=L0(n,t)}else i=t;return{pathname:i,search:nN(r),hash:rN(s)}}function L0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lp(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 eN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=eN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Zt(!s.pathname||!s.pathname.includes("?"),lp("?","pathname","search",s)),Zt(!s.pathname||!s.pathname.includes("#"),lp("#","pathname","hash",s)),Zt(!s.search||!s.search.includes("#"),lp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=Z5(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),tN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function sN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const iN=["get",...xw];new Set(iN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=gw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const cN=m.createContext(null);function uN(e){let t=m.useContext(Rs).outlet;return t&&m.createElement(cN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Rs),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Hi),{matches:s}=m.useContext(Rs),{pathname:i}=bl(),a=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function dN(e,t){return pN(e,t)}function pN(e,t,n,r){_l()||Zt(!1);let{navigator:s}=m.useContext(Hi),{matches:i}=m.useContext(Rs),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Zt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=O5(e,{pathname:h}),v=xN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function fN(){let e=bN(),t=sN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const mN=m.createElement(fN,null);class hN extends m.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?m.createElement(Rs.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function gN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Rs.Provider,{value:t},r)}function xN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Zt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||mN,c&&(u<0&&f===0?(kN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(gN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(hN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function vN(e){let t=m.useContext(Wh);return t||Zt(!1),t}function yN(e){let t=m.useContext(aN);return t||Zt(!1),t}function _N(e){let t=m.useContext(Rs);return t||Zt(!1),t}function Sw(e){let t=_N(),n=t.matches[t.matches.length-1];return n.route.id||Zt(!1),n.route.id}function bN(){var e;let t=m.useContext(vw),n=yN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wN(){let{router:e}=vN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const D0={};function kN(e,t,n){D0[e]||(D0[e]=!0)}function SN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function EN(e){return uN(e.context)}function wi(e){Zt(!1)}function CN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Zt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(Hi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function jN(e){let{children:t,location:n}=e;return dN(Jf(t),n)}new Promise(()=>{});function Jf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jf(r.props.children,i));return}r.type!==wi&&Zt(!1),!r.props.index||!r.props.children||Zt(!1);let a={id:r.props.id||i.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&&(a.children=Jf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zf(){return Zf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function PN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RN(e,t){return e.button===0&&(!t||t==="_self")&&!PN(e)}const AN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TN="6";try{window.__reactRouterVersion=TN}catch{}const LN="startTransition",M0=w2[LN];function DN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=L5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&M0?M0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>SN(r),[r]),m.createElement(CN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const MN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ON=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=NN(t,AN),{basename:h}=m.useContext(Hi),g,v=!1;if(typeof u=="string"&&ON.test(u)&&(g=u,MN))try{let _=new URL(window.location.href),k=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=qh(k.pathname,h);k.origin===_.origin&&A!=null?u=A+k.search+k.hash:v=!0}catch{}let b=oN(u,{relative:s}),x=IN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zf({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function IN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=cd(),u=bl(),d=bw(e,{relative:a});return m.useCallback(p=>{if(RN(p,n)){p.preventDefault();let f=r!==void 0?r:_u(u)===_u(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let BN={data:""},FN=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||BN},UN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VN=/\/\*[^]*?\*\/| +/g,B0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ls={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},zN=(e,t,n,r,s)=>{let i=Ew(e),a=ls[i]||(ls[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ls[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=UN.exec(u.replace(VN,""));)d[4]?f.shift():d[3]?(p=d[3].replace(B0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(B0," ").trim();return f[0]})(e);ls[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&ls.g?ls.g:null;return n&&(ls.g=ls[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ls[a],t,r,l),a},$N=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return zN(n.unshift?n.raw?$N(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,FN(t.target),t.g,t.o,t.k)}let Cw,em,tm;ud.bind({g:1});let js=ud.bind({k:1});function HN(e,t,n,r){$s.p=t,Cw=e,em=n,tm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Cw(u,l)}return s}}var qN=e=>typeof e=="function",wu=(e,t)=>qN(e)?e(t):e,WN=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),GN=20,Gh="default",Nw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Nw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:GN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Bc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Aw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),KN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},QN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},YN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||QN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},XN=(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)||WN()}),wl=e=>(t,n)=>{let r=XN(t,e,n);return dd(r.toasterId||KN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Aw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Aw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var JN=1e3,ZN=(e,t="default")=>{let{toasts:n,pausedAt:r}=YN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=JN)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,k)=>k_.visible).slice(...h?[y+1]:[0,y]).reduce((_,k)=>_+(k.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},eP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,tP=js` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,nP=js` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,rP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${eP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${tP} 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: ${nP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,sP=js` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,iP=ui("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: ${sP} 1s linear infinite; +`,aP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,oP=js` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,lP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${aP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${oP} 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; + } +`,cP=ui("div")` + position: absolute; +`,uP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,dP=js` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,pP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${dP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,fP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(pP,null,t):t:n==="blank"?null:m.createElement(uP,null,m.createElement(iP,{...r}),n!=="loading"&&m.createElement(cP,null,n==="error"?m.createElement(rP,{...r}):m.createElement(lP,{...r})))},mP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,hP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,gP="0%{opacity:0;} 100%{opacity:1;}",xP="0%{opacity:1;} 100%{opacity:0;}",vP=ui("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; +`,yP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,_P=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[gP,xP]:[mP(n),hP(n)];return{animation:t?`${js(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${js(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},bP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?_P(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(fP,{toast:e}),a=m.createElement(yP,{...e.ariaProps},wu(e.message,e));return m.createElement(vP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});HN(m.createElement);var wP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},kP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},SP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,EP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=ZN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=kP(p,f);return m.createElement(wP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?SP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(bP,{toast:d,position:p}))}))},We=an;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const pd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class CP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function jP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(CP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const NP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Qh(PP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(jP,{isPresent:n,children:e})),o.jsx(pd.Provider,{value:d,children:e})};function PP(){return new Map}function Tw(e=!0){const t=m.useContext(pd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const uc=e=>e.key||"";function F0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Lw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Tw(a),u=m.useMemo(()=>F0(e),[e]),d=a&&!l?[]:u.map(uc),p=m.useRef(!0),f=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Lw(()=>{p.current=!1,f.current=u;for(let k=0;k{const A=uc(k),S=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach($=>{$||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(NP,{isPresent:S,initial:!p.current||n?void 0:!1,custom:S?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:S?void 0:T,children:k},A)})})},or=e=>e;let Dw=or;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},_s=e=>e*1e3,bs=e=>e/1e3,RP={useManualTiming:!1};function AP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],TP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=dc.reduce((x,y)=>(x[y]=AP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,TP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=a[y];return x[y]=(k,A=!1,S=!1)=>(n||g(),_.schedule(k,A,S)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function LP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const DP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||DP.has(e)}let Iw=e=>!ku(e);function MP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{MP(require("@emotion/is-prop-valid").default)}catch{}function OP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function IP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const fd=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>sl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function BP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function FP(e){const{initial:t,animate:n}=BP(e,m.useContext(fd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const UP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),zP="framerAppearId",Fw="data-"+tg(zP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function $P(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(fd),c=m.useContext(Ow),u=m.useContext(pd),d=m.useContext(Yh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(Uw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&HP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Fw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Lw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),ng.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function HP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function qP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&LP(e);function l(u,d){let p;const f={...m.useContext(Yh),...u,layoutId:WP(u)},{isStatic:h}=f,g=FP(u),v=r(u,h);if(!h&&Xh){GP();const b=KP(f);p=b.MeasureLayout,g.visualElement=$P(s,v,f,t,b.ProjectionNode)}return o.jsxs(fd.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,VP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[UP]=s,c}function WP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function GP(e,t){m.useContext(Ow).strict}function KP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const QP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(QP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),YP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XP=e=>rm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Fc(e){const t=jn(e)?e.get():e;return YP(t)?t.toValue():t}function JP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:ZP(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const zw=e=>(t,n)=>{const r=m.useContext(fd),s=m.useContext(pd),i=()=>JP(e,t,r,s);return n?i():Qh(i)};function ZP(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Fc(i[f]);let{initial:a,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!md(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),eR=$w("var(--"),ig=e=>eR(e)?tR.test(e.split("/*")[0].trim()):!1,tR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Ns=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>Ns(0,1,e)},pc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Jr=kl("%"),Ae=kl("px"),nR=kl("vh"),rR=kl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},sR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},iR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:pc,scaleX:pc,scaleY:pc,scaleZ:pc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:$0,originY:$0,originZ:Ae},H0={...za,transform:Math.round},ag={...sR,...iR,zIndex:H0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:H0},aR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},oR=Va.length;function lR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function fR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return qi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Yw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function mR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],hR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(qi.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{mR(n,r),Et.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},gR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!jn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function xR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return og(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,xR(e,t)),r}function yR(e,t){const n={},r=vR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function _R(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function bR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(rg(n)?_R:yR)(r,i,a,n),u=OP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function wR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...rg(r)?hR:gR,preloadedFeatures:e,useRender:bR(s),createVisualElement:t,Component:r};return qP(a)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class SR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(kR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class ER extends SR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function pg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function fg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",CR={linearEasing:void 0};function jR(e,t){const n=Jh(e);return()=>{var r;return(r=CR[t])!==null&&r!==void 0?r:n()}}const Eu=jR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Eu()?tk(e,t):mg(e)?xo(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const Rr={x:!1,y:!1};function sk(){return Rr.x||Rr.y}function NR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=NR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function PR(e,t,n={}){const[r,s,i]=ik(e,n),a=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,RR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AR(e){return RR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function up(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const TR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(vo.has(n))return;up(n,"down");const s=Q0(()=>{up(n,"up")}),i=()=>up(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function LR(e,t,n={}){const[r,s,i]=ik(e,n),a=l=>{const c=l.currentTarget;if(!Y0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!Y0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!AR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>TR(u,s),s)}),i}function DR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Va]);let Uc;function MR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(xn.isProcessing||RP.useManualTiming?xn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(MR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class IR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=OR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),Et.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new IR(e,t)}function BR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function FR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=XP(i[a]);BR(e,a,l)}}function UR(e){return!!(jn(e)&&e.add)}function am(e,t){const n=e.getValue("willChange");if(UR(n))return n.add(t)}function ck(e){return e.props[Fw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,VR=1e-7,zR=12;function $R(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=uk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>VR&&++l$R(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),fk=Sl(.33,1.53,.69,.99),yg=pk(fk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=pk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function HR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const Po=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qR(e){return e==null}const WR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&WR.test(n)&&n.startsWith(e)||t&&!qR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},GR=e=>Ns(0,255,e),dp={...za,transform:e=>Math.round(GR(e))},Pi={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dp.transform(e)+", "+dp.transform(t)+", "+dp.transform(n)+", "+Po(il.transform(r))+")"};function KR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const om={test:wg("#"),parse:KR,transform:Pi.transform},ua={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(Po(t))+", "+Jr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>Pi.test(e)||om.test(e)||ua.test(e),parse:e=>Pi.test(e)?Pi.parse(e):ua.test(e)?ua.parse(e):om.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Pi.transform(e):ua.transform(e)},QR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(QR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",XR="var",JR="var(",J0="${}",ZR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(ZR,c=>(Sn.test(c)?(r.color.push(i),s.push(bk),n.push(Sn.parse(c))):c.startsWith(JR)?(r.var.push(i),s.push(XR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return ol(e).values}function kk(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function tA(e){const t=wk(e);return kk(e)(t.map(eA))}const ai={test:YR,parse:wk,createTransformer:kk,getAnimatableNone:tA},nA=new Set(["brightness","contrast","saturate","opacity"]);function rA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=nA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const sA=/\b([a-z-]*)\(.*?\)/gu,lm={...ai,getAnimatableNone:e=>{const t=e.match(sA);return t?t.map(rA).join(" "):e}},iA={...ag,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:lm,WebkitFilter:lm},kg=e=>iA[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aA=new Set(["auto","none","0"]);function oA(e,t,n){let r=0,s;for(;re===za||e===Ae,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},lA=new Set(["x","y","z"]),cA=Va.filter(e=>!lA.has(e));function uA(e){const t=[];return cA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Li=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Li).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=uA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Li.forEach(e=>e.complete()),Li.clear()}function Ck(){Li.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function dA(){Ck(),Ek()}class Sg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Li.add(this),cm||(cm=!0,Et.read(Ck),Et.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),pA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fA(e){const t=pA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=fA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return jk(a)?parseFloat(a):a}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),mA={test:e=>e==="auto",parse:e=>e},Rk=[za,Ae,Jr,Is,rR,nR,mA],nv=e=>Rk.find(Pk(e));class Ak extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function hA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(xA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const vA=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>vA?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!gA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Dt=(e,t,n)=>e+(t-e)*n;function pp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function yA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pp(c,l,e+1/3),i=pp(c,l,e),a=pp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function Cu(e,t){return n=>n>0?t:e}const fp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},_A=[om,Pi,ua],bA=e=>_A.find(t=>t.test(e));function sv(e){const t=bA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=yA(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Cu(e,t);const s={...n};return i=>(s.red=fp(n.red,r.red,i),s.green=fp(n.green,r.green,i),s.blue=fp(n.blue,r.blue,i),s.alpha=Dt(n.alpha,r.alpha,i),Pi.transform(s))},wA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(wA),dm=new Set(["none","hidden"]);function kA(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SA(e,t){return n=>Dt(e,t,n)}function Eg(e){return typeof e=="number"?SA:typeof e=="string"?ig(e)?Cu:Sn.test(e)?iv:jA:Array.isArray(e)?Lk:typeof e=="object"?Sn.test(e)?iv:EA:Cu}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Eg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function CA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?kA(e,t):El(Lk(CA(r,s),s.values),n):Cu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Dt(e,t,n):Eg(e)(e,t)}const NA=5;function Mk(e,t,n){const r=Math.max(t-NA,0);return lk(n-e(r),t-r)}const Vt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mp=.001;function PA({duration:e=Vt.duration,bounce:t=Vt.bounce,velocity:n=Vt.velocity,mass:r=Vt.mass}){let s,i,a=1-t;a=Ns(Vt.minDamping,Vt.maxDamping,a),e=Ns(Vt.minDuration,Vt.maxDuration,bs(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=pm(u,a),g=Math.exp(-p);return mp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=pm(Math.pow(u,2),a);return(-s(u)+mp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-mp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=AA(s,i,l);if(e=_s(e),isNaN(c))return{stiffness:Vt.stiffness,damping:Vt.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const RA=12;function AA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function DA(e){let t={velocity:Vt.velocity,stiffness:Vt.stiffness,damping:Vt.damping,mass:Vt.mass,isResolvedFromDuration:!1,...e};if(!av(e,LA)&&av(e,TA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Ns(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Vt.mass,stiffness:s,damping:i}}else{const n=PA(e);t={...t,...n,mass:Vt.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=Vt.visualDuration,t=Vt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=DA({...n,velocity:-bs(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=bs(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Vt.restSpeed.granular:Vt.restSpeed.default),s||(s=y?Vt.restDelta.granular:Vt.restDelta.default);let _;if(v<1){const A=pm(x,v);_=S=>{const T=Math.exp(-v*x*S);return a-T*((g+v*x*b)/A*Math.sin(A*S)+b*Math.cos(A*S))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=S=>{const T=Math.exp(-v*x*S),D=Math.min(A*S,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const k={calculatedDuration:h&&p||null,next:A=>{const S=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?_s(g):Mk(_,A,S));const D=Math.abs(T)<=r,$=Math.abs(a-S)<=s;l.done=D&&$}return l.value=l.done?a:S,l},toString:()=>{const A=Math.min(ek(k),sm),S=tk(T=>k.next(A*T).value,A,30);return A+"ms "+S}};return k}function ov({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),k=D=>{const $=y(D),j=_(D);f.done=Math.abs($)<=u,f.value=f.done?x:j};let A,S;const T=D=>{h(f.value)&&(A=D,S=Ok({keyframes:[f.value,g(f.value)],velocity:Mk(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let $=!1;return!S&&A===void 0&&($=!0,k(D),T(D)),A!==void 0&&D>=A?S.next(D-A):(!$&&k(D),f)}}}const MA=Sl(.42,0,1,1),OA=Sl(0,0,.58,1),Ik=Sl(.42,0,.58,1),IA=e=>Array.isArray(e)&&typeof e[0]!="number",BA={linear:or,easeIn:MA,easeInOut:Ik,easeOut:OA,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:fk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return BA[e];return e};function FA(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=FA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(Ns(e[0],e[i-1],d)):u}function VA(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Dt(n,1,s))}}function zA(e){const t=[0];return VA(t,e.length-1),t}function $A(e,t){return e.map(n=>n*t)}function HA(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=IA(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},a=$A(n&&n.length===t.length?n:zA(t),e),l=UA(a,t,{ease:Array.isArray(s)?s:HA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const qA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Et.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:Zr.now()}},WA={decay:ov,inertia:ov,tween:ju,keyframes:ju,spring:Ok},GA=e=>e/100;class Cg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=fg(n)?n:WA[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=El(GA,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,k=i;if(h){const D=Math.min(this.currentTime,d)/p;let $=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&$--,$=Math.min($,h+1),!!($%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(k=a)),_=Ns(0,1,j)*p}const A=y?{done:!1,value:c[0]}:k.next(_);l&&(A.value=l(A.value));let{done:S}=A;!y&&u!==null&&(S=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return T&&s!==void 0&&(A.value=xd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?bs(t.calculatedDuration):0}get time(){return bs(this.currentTime)}set time(t){t=_s(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=bs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=qA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const KA=new Set(["opacity","clipPath","filter","transform"]);function QA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const YA=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,XA=2e4;function JA(e){return fg(e.type)||e.type==="spring"||!nk(e.ease)}function ZA(e,t){const n=new Cg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Eu()&&eT(i)&&(i=Bk[i]),JA(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=ZA(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=QA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(xd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return bs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return bs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_s(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return or;const{animation:r}=n;G0(r,t)}return or}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new Cg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=_s(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return YA()&&r&&KA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const tT={type:"spring",stiffness:500,damping:25,restSpeed:10},nT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),rT={type:"keyframes",duration:.8},sT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iT=(e,{keyframes:t})=>t.length>2?rT:qi.has(e)?e.startsWith("scale")?nT(t[1]):tT:sT;function aT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>a=>{const l=pg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-_s(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};aT(l)||(d={...d,...iT(e,d)}),d.duration&&(d.duration=_s(d.duration)),d.repeatDelay&&(d.repeatDelay=_s(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=xd(d.keyframes,l);if(f!==void 0)return Et.update(()=>{d.onUpdate(f),d.onComplete()}),new ER([])}return!i&&cv.supports(d)?new cv(d):new Cg(d)};function oT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&oT(d,p))continue;const g={delay:n,...pg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,p,Et);y!==null&&(g.startTime=y,v=!0)}}am(e,p),f.start(jg(p,f,h,e.shouldReduceMotion&&ok.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{Et.update(()=>{l&&FR(e,l)})}),u}function fm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return lT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function lT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(cT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(fm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function cT(e,t){return e.sortNodePosition(t)}function uT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>fm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=fm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const dT=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>uT(e,n,r)))}function hT(e){let t=mT(e),n=uv(),r=!0;const s=c=>(u,d)=>{var p;const f=gd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=Uk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&k,$=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&($=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const F=e.getValue(oe);F&&(F.liveStyle=!1)};for(const oe in re){const F=H[oe],Q=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;rm(F)&&rm(Q)?N=!Zw(F,Q):N=F!==Q,N?F!=null?le(oe):f.add(oe):F!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(S&&T)||$)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function gT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function vi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:vi(!0),whileInView:vi(),whileHover:vi(),whileTap:vi(),whileDrag:vi(),whileFocus:vi(),exit:vi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xT extends di{constructor(t){super(t),t.animationState||(t.animationState=hT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let vT=0;class yT extends di{constructor(){super(...arguments),this.id=vT++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const _T={animation:{Feature:xT},exit:{Feature:yT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const bT=e=>t=>hg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,bT(n),r)}const dv=(e,t)=>Math.abs(e-t);function wT(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=gp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=wT(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=hp(f,this.transformPagePoint),Et.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gp(p.type==="pointercancel"?this.lastMoveEventInfo:hp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=hp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,gp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function hp(e,t){return t?{point:t(e.point)}:e}function pv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gp({point:e},t){return{point:e,delta:pv(e,zk(t)),offset:pv(e,kT(t)),velocity:ST(t,.1)}}function kT(e){return e[0]}function zk(e){return e[e.length-1]}function ST(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const i=bs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const $k=1e-4,ET=1-$k,CT=1+$k,Hk=.01,jT=0-Hk,NT=0+Hk;function ur(e){return e.max-e.min}function PT(e,t,n){return Math.abs(e-t)<=n}function fv(e,t,n,r=.5){e.origin=r,e.originPoint=Dt(t.min,t.max,e.origin),e.scale=ur(n)/ur(t),e.translate=Dt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=ET&&e.scale<=CT||isNaN(e.scale))&&(e.scale=1),(e.translate>=jT&&e.translate<=NT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){fv(e.x,t.x,n.x,r?r.originX:void 0),fv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ur(t)}function RT(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ur(t)}function To(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function AT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Dt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TT(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),Ns(0,1,n)}function MT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function OT(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),Gt=()=>({x:bv(),y:bv()});function gr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function IT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function BT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function xp(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!xp(e)||!xp(t)||!xp(n)}function ki(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Ev=1.0000000000001;function FT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,s=.5){const i=Dt(e.min,e.max,s);gm(e,t,n,i,r)}function fa(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(BT(e.getBoundingClientRect(),t))}function UT(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,VT=new WeakMap;class zT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Gt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ur(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&Et.postRender(()=>g(d,p)),am(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=$T(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&Et.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!fc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=AT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=TT(s.layoutBox,n):this.constraints=!1,this.elastic=OT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=MT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=UT(r,s.root,this.visualElement.getTransformPagePoint());let a=LT(s.layout.layoutBox,i);if(n){const l=n(IT(a));this.hasMutatedConstraints=!!l,l&&(a=qk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!fc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return am(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!fc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Dt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=DT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!fc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Dt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;VT.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),Et.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function fc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $T(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HT extends di{constructor(t){super(t),this.removeGroupControls=or,this.removeListeners=or,this.controls=new zT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||or}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&Et.postRender(()=>e(t,n))};class qT extends di{constructor(){super(...arguments),this.removePointerDownListener=or}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&Et.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},WT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Dt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class GT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;fR(KT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||Et.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Tw(),r=m.useContext(Kh);return o.jsx(GT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const KT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:WT};function QT(e,t,n){const r=jn(e)?e:al(e);return r.start(jg("",r,t,n)),r.animation}function YT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XT=(e,t)=>e.depth-t.depth;class JT{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XT),this.isDirty=!1,this.children.forEach(t)}}function ZT(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return Et.read(r,!0),()=>ii(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],eL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Ae.test(e);function tL(e,t,n,r,s,i){s?(e.opacity=Dt(0,n.opacity!==void 0?n.opacity:1,nL(r)),e.opacityExit=Dt(t.opacity!==void 0?t.opacity:1,0,rL(r))):i&&(e.opacity=Dt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Tv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Tv(e.x,t.x),Tv(e.y,t.y)}function Lv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function sL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Jr.test(t)&&(t=parseFloat(t),t=Dt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Dt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,a){sL(e,t[n],t[r],t[s],t.scale,i,a)}const iL=["x","scaleX","originX"],aL=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,iL,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,aL,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Bv(e,t){return e.min===t.min&&e.max===t.max}function oL(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Fv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Uv(e){return ur(e.x)/ur(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lL{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function cL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,vp=["","X","Y","Z"],uL={visibility:"hidden"},zv=1e3;let dL=0;function yp(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Et,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=dL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(mL),this.nodes.forEach(yL),this.nodes.forEach(_L),this.nodes.forEach(hL),yo&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=ZT(f,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||EL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const k={...pg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=k/1e3;qv(p.x,a.x,A),qv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&oL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Gt()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,tL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Et.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=QT(0,zv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Gt();const p=ur(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=ur(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new lL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&yp("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function pL(e){e.updateLayout()}function fL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(f);f.min=r[p].min,f.max=f.min+h}):rS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=Gt();To(g,n.layoutBox,f.layoutBox);const v=Gt();To(v,r,h.layoutBox),eS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function mL(e){yo&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function gL(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function xL(e){e.isLayoutDirty=!1}function vL(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yL(e){e.resolveTargetDelta()}function _L(e){e.calcProjection()}function bL(e){e.resetSkewAndRotation()}function wL(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Dt(t.translate,0,n),e.scale=Dt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Dt(t.min,n.min,r),e.max=Dt(t.max,n.max,r)}function kL(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function SL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const EL={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:or;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function CL(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!PT(Uv(t),Uv(n),.2)}function jL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const NL=nS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_p={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!_p.current){const e=new NL({});e.mount(window),e.setOptions({layoutScroll:!0}),_p.current=e}return _p.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),PL={pan:{Feature:qT},drag:{Feature:HT,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class RL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class AL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=LR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,bp=new WeakMap,LL=e=>{const t=xm.get(e.target);t&&t(e)},DL=e=>{e.forEach(LL)};function ML({root:e,...t}){const n=e||document;bp.has(n)||bp.set(n,{});const r=bp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(DL,{root:e,...t})),r[s]}function OL(e,t,n){const r=ML(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const IL={some:0,all:1};class BL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:IL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return OL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(FL(t,n))&&this.startObserver()}unmount(){}}function FL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const UL={inView:{Feature:BL},tap:{Feature:TL},focus:{Feature:AL},hover:{Feature:RL}},VL={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function zL(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const $L=[...Rk,Sn,ai],HL=e=>$L.find(Pk(e)),Jv=new WeakMap;function qL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class WL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||zL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Et.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Gt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!HL(s)&&ai.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends WL{constructor(){super(...arguments),this.KeyframeResolver=Ak}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function GL(e){return window.getComputedStyle(e)}class KL extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}else{const r=GL(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){og(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class QL extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Gt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const YL=(e,t)=>rg(e)?new QL(t):new KL(t,{allowProjection:e!==m.Fragment}),XL=wR({..._T,...UL,...PL,...VL},YL),$t=IP(XL);function JL({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const ZL=m.forwardRef(JL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const sD=m.forwardRef(rD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const wp=m.forwardRef(aD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const kp=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const pD=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(fD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Au=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sr=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const fs=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(ED);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const jD=m.forwardRef(CD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Tu=m.forwardRef(RD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(AD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(DD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const BD=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(FD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ms=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef(WD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Sp=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const o3=m.forwardRef(a3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Lu=m.forwardRef(l3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(g3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(w3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const S3=m.forwardRef(k3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(j3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const A3={},iy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(A3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},T3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function L3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var D3=typeof Object.is=="function"?Object.is:L3,M3=La.useState,O3=La.useEffect,I3=La.useLayoutEffect,B3=La.useDebugValue;function F3(e,t){var n=t(),r=M3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return I3(function(){s.value=n,s.getSnapshot=t,Ep(s)&&i({inst:s})},[e,n,t]),O3(function(){return Ep(s)&&i({inst:s}),e(function(){Ep(s)&&i({inst:s})})},[e]),B3(n),n}function Ep(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!D3(e,n)}catch{return!0}}function U3(e,t){return t()}var V3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?U3:F3;xS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:V3;gS.exports=xS;var z3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,$3=z3;function H3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var q3=typeof Object.is=="function"?Object.is:H3,W3=$3.useSyncExternalStore,G3=vd.useRef,K3=vd.useEffect,Q3=vd.useMemo,Y3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=G3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,q3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=W3(e,i[0],i[1]);return K3(function(){a.hasValue=!0,a.value=l},[l]),Y3(l),l};mS.exports=hS;var X3=mS.exports;const J3=qu(X3),vS={},{useDebugValue:Z3}=pn,{useSyncExternalStoreWithSelector:eM}=J3;let ay=!1;const tM=e=>e;function nM(e,t=tM,n){(vS?"production":void 0)!=="production"&&n&&!ay&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ay=!0);const r=eM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Z3(r),r}const oy=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?T3(e):e,n=(r,s)=>nM(t,r,s);return Object.assign(n,t),n},rM=e=>e?oy(e):oy;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:sM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=sM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=bd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Kn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ur("ArrayBuffer");function iM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const aM=bd("string"),Kn=bd("function"),wS=bd("number"),Nl=e=>e!==null&&typeof e=="object",oM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},lM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},cM=Ur("Date"),uM=Ur("File"),dM=Ur("Blob"),pM=Ur("FileList"),fM=e=>Nl(e)&&Kn(e.pipe),mM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Kn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Kn(e.toString)&&e.toString()==="[object FormData]"))},hM=Ur("URLSearchParams"),[gM,xM,vM,yM]=["ReadableStream","Request","Response","Headers"].map(Ur),_M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Da(e)&&e!==Ri;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const a=e&&kS(n,i)||i;Hc(n[a])&&Hc(s)?n[a]=wm(n[a],s):Hc(s)?n[a]=wm({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Kn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),wM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},SM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},EM=(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},CM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),NM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},PM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},RM=Ur("HTMLFormElement"),AM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),TM=Ur("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},LM=e=>{ES(e,(t,n)=>{if(Kn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Kn(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+"'")})}})},DM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},MM=()=>{},OM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function IM(e){return!!(e&&Kn(e.append)&&e[_S]==="FormData"&&e[yd])}const BM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},FM=Ur("AsyncFunction"),UM=e=>e&&(Nl(e)||Kn(e))&&Kn(e.then)&&Kn(e.catch),CS=((e,t)=>e?setImmediate:t?((n,r)=>(Ri.addEventListener("message",({source:s,data:i})=>{s===Ri&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Kn(Ri.postMessage)),VM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ri):typeof process<"u"&&process.nextTick||CS,zM=e=>e!=null&&Kn(e[yd]),z={isArray:$a,isArrayBuffer:bS,isBuffer:jl,isFormData:mM,isArrayBufferView:iM,isString:aM,isNumber:wS,isBoolean:oM,isObject:Nl,isPlainObject:Hc,isEmptyObject:lM,isReadableStream:gM,isRequest:xM,isResponse:vM,isHeaders:yM,isUndefined:Da,isDate:cM,isFile:uM,isBlob:dM,isRegExp:TM,isFunction:Kn,isStream:fM,isURLSearchParams:hM,isTypedArray:jM,isFileList:pM,forEach:Pl,merge:wm,extend:bM,trim:_M,stripBOM:wM,inherits:kM,toFlatObject:SM,kindOf:_d,kindOfTest:Ur,endsWith:EM,toArray:CM,forEachEntry:NM,matchAll:PM,isHTMLForm:RM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:LM,toObjectSet:DM,toCamelCase:AM,noop:MM,toFiniteNumber:OM,findKey:kS,global:Ri,isContextDefined:SS,isSpecCompliantForm:IM,toJSONObject:BM,isAsyncFn:FM,isThenable:UM,setImmediate:CS,asap:VM,isIterable:zM};function Oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}z.inherits(Oe,Error,{toJSON:function(){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:z.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Oe.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Oe,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Oe.from=(e,t,n,r,s,i)=>{const a=Object.create(jS);z.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Oe.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const $M=null;function km(e){return z.isPlainObject(e)||z.isArray(e)}function PS(e){return z.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function HM(e){return z.isArray(e)&&!e.some(km)}const qM=z.toFlatObject(z,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!z.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!z.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&z.isSpecCompliantForm(t);if(!z.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(z.isDate(g))return g.toISOString();if(z.isBoolean(g))return g.toString();if(!c&&z.isBlob(g))throw new Oe("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(g)||z.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(z.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(z.isArray(g)&&HM(g)||(z.isFileList(g)||z.endsWith(v,"[]"))&&(x=z.toArray(g)))return v=PS(v),x.forEach(function(_,k){!(z.isUndefined(_)||_===null)&&t.append(a===!0?cy([v],k,i):a===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(qM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!z.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),z.forEach(g,function(x,y){(!(z.isUndefined(x)||x===null)&&s.call(t,x,z.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!z.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function WM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function AS(e,t,n){if(!t)return e;const r=n&&n.encode||WM;z.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=z.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){z.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},GM=typeof URLSearchParams<"u"?URLSearchParams:Rg,KM=typeof FormData<"u"?FormData:null,QM=typeof Blob<"u"?Blob:null,YM={isBrowser:!0,classes:{URLSearchParams:GM,FormData:KM,Blob:QM},protocols:["http","https","file","blob","url","data"]},Ag=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,XM=Ag&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),JM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ZM=Ag&&window.location.href||"http://localhost",e4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ag,hasStandardBrowserEnv:XM,hasStandardBrowserWebWorkerEnv:JM,navigator:Sm,origin:ZM},Symbol.toStringTag,{value:"Module"})),Cn={...e4,...YM};function t4(e,t){return wd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&z.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function n4(e){return z.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function r4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&z.isArray(s)?s.length:a,c?(z.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!z.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&z.isArray(s[a])&&(s[a]=r4(s[a])),!l)}if(z.isFormData(e)&&z.isFunction(e.entries)){const n={};return z.forEachEntry(e,(r,s)=>{t(n4(r),s,n,0)}),n}return null}function s4(e,t,n){if(z.isString(e))try{return(t||JSON.parse)(e),z.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return s?JSON.stringify(LS(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return t4(t,this.formSerializer).toString();if((l=z.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),s4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Oe.from(l,Oe.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const i4=z.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"]),a4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&i4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},py=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:z.isArray(e)?e.map(qc):String(e)}function o4(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 l4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cp(e,t,n,r,s){if(z.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!z.isString(t)){if(z.isString(r))return t.indexOf(r)!==-1;if(z.isRegExp(r))return r.test(t)}}function c4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function u4(e,t){const n=z.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Qn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=z.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=qc(l))}const a=(l,c)=>z.forEach(l,(u,d)=>i(u,d,c));if(z.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(z.isString(t)&&(t=t.trim())&&!l4(t))a(a4(t),n);else if(z.isObject(t)&&z.isIterable(t)){let l={},c,u;for(const d of t){if(!z.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?z.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=z.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return o4(s);if(z.isFunction(n))return n.call(this,s,r);if(z.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=z.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Cp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=z.findKey(r,a);l&&(!n||Cp(r,r[l],l,n))&&(delete r[l],s=!0)}}return z.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Cp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return z.forEach(this,(s,i)=>{const a=z.findKey(r,i);if(a){n[a]=qc(s),delete n[i];return}const l=t?c4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return z.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&z.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(s=>r.set(s)),r}static accessor(t){const r=(this[py]=this[py]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(u4(s,a),r[l]=!0)}return z.isArray(t)?t.forEach(i):i(t),this}};Qn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);z.reduceDescriptors(Qn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});z.freezeMethods(Qn);function jp(e,t){const n=this||Rl,r=t||n,s=Qn.from(r.headers);let i=r.data;return z.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Oe.call(this,e??"canceled",Oe.ERR_CANCELED,t,n),this.name="CanceledError"}z.inherits(Ha,Oe,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Oe("Request failed with status code "+n.status,[Oe.ERR_BAD_REQUEST,Oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function d4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function p4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Du=(e,t,n=3)=>{let r=0;const s=p4(50,250);return f4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},fy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>z.asap(()=>e(...t)),m4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,h4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];z.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),z.isString(r)&&l.push(`path=${r}`),z.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),z.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function g4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function x4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!g4(t);return e&&(r||n==!1)?x4(e,t):t}const hy=e=>e instanceof Qn?{...e}:e;function Ui(e,t){t=t||{};const n={};function r(u,d,p,f){return z.isPlainObject(u)&&z.isPlainObject(d)?z.merge.call({caseless:f},u,d):z.isPlainObject(d)?z.merge({},d):z.isArray(d)?d.slice():d}function s(u,d,p,f){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!z.isUndefined(d))return r(void 0,d)}function a(u,d){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(hy(u),hy(d),p,!0)};return z.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);z.isUndefined(f)&&p!==l||(n[d]=f)}),n}const IS=e=>{const t=Ui({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Qn.from(a),t.url=AS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),z.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(z.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&z.isFunction(r)&&(r=r(t)),r||r!==!1&&m4(t.url))){const c=s&&i&&h4.read(i);c&&a.set(s,c)}return t},v4=typeof XMLHttpRequest<"u",y4=v4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const a=Qn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Qn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Oe("Request aborted",Oe.ECONNABORTED,e,b)),b=null)},b.onerror=function(k){const A=k&&k.message?k.message:"Network Error",S=new Oe(A,Oe.ERR_NETWORK,e,b);S.event=k||null,r(S),b=null},b.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||TS;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new Oe(k,A.clarifyTimeoutError?Oe.ETIMEDOUT:Oe.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&z.forEach(a.toJSON(),function(k,A){b.setRequestHeader(A,k)}),z.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Du(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Du(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=d4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Oe("Unsupported protocol "+y+":",Oe.ERR_BAD_REQUEST,e));return}b.send(i||null)})},_4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Oe?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Oe(`timeout ${t} of ms exceeded`,Oe.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>z.asap(l),c}},b4=function*(e,t){let n=e.byteLength;if(n{const s=w4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=z,S4=(({Request:e,Response:t})=>({Request:e,Response:t}))(z.global),{ReadableStream:vy,TextEncoder:yy}=z.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},E4=e=>{e=z.merge.call({skipUndefined:!0},S4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),a=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(Cn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&_y(()=>z.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Oe(`Response type '${g}' is not supported`,Oe.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(z.isBlob(g))return g.size;if(z.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(z.isArrayBufferView(g)||z.isArrayBuffer(g))return g.byteLength;if(z.isURLSearchParams(g)&&(g=g+""),z.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=z.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:k,onDownloadProgress:A,onUploadProgress:S,responseType:T,headers:D,withCredentials:$="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=_4([y,_&&_.toAbortSignal()],k),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let he;try{if(S&&u&&b!=="get"&&b!=="head"&&(he=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(z.isFormData(x)&&(pe=se.headers.get("content-type"))&&D.setContentType(pe),se.body){const[L,ke]=fy(he,Du(my(S)));x=gy(se.body,xy,L,ke)}}z.isString($)||($=$?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?$:void 0};re=i&&new n(v,oe);let F=await(i?H(re,j):H(v,oe));const Q=d&&(T==="stream"||T==="response");if(d&&(A||Q&&le)){const se={};["status","statusText","headers"].forEach(De=>{se[De]=F[De]});const pe=z.toFiniteNumber(F.headers.get("content-length")),[L,ke]=A&&fy(pe,Du(my(A),!0))||[];F=new r(gy(F.body,xy,L,()=>{ke&&ke(),le&&le()}),se)}T=T||"text";let N=await p[z.findKey(p,T)||"text"](F,g);return!Q&&le&&le(),await new Promise((se,pe)=>{MS(se,pe,{data:N,headers:Qn.from(F.headers),status:F.status,statusText:F.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Oe("Network Error",Oe.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Oe.from(xe,xe&&xe.code,g,re)}}},C4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=C4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:E4(t)),d=u;return u};BS();const Tg={http:$M,xhr:y4,fetch:{get:BS}};z.forEach(Tg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,j4=e=>z.isFunction(e)||e===null||e===!1;function N4(e,t){e=z.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(by).join(` +`):" "+by(a[0]):"as no adapter specified";throw new Oe("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:N4,adapters:Tg};function Np(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function wy(e){return Np(e),e.headers=Qn.from(e.headers),e.data=jp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Np(e),r.data=jp.call(e,e.transformResponse,r),r.headers=Qn.from(r.headers),r},function(r){return DS(r)||(Np(e),r&&r.response&&(r.response.data=jp.call(e,e.transformResponse,r.response),r.response.headers=Qn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+US+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Oe(s(a," has been removed"+(n?" in "+n:"")),Oe.ERR_DEPRECATED);return n&&!ky[a]&&(ky[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function P4(e,t,n){if(typeof e!="object")throw new Oe("options must be an object",Oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Oe("option "+i+" must be "+c,Oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Oe("Unknown option "+i,Oe.ERR_BAD_OPTION)}}const Wc={assertOptions:P4,validators:kd},Hr=Wc.validators;let Di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ui(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(z.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&z.merge(i.common,i[n.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Qn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 VS(function(s){t=s}),cancel:t}}};function A4(e){return function(n){return e.apply(null,n)}}function T4(e){return z.isObject(e)&&e.isAxiosError===!0}const Em={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(Em).forEach(([e,t])=>{Em[t]=e});function zS(e){const t=new Di(e),n=yS(Di.prototype.request,t);return z.extend(n,Di.prototype,t,{allOwnKeys:!0}),z.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Ui(e,s))},n}const Qt=zS(Rl);Qt.Axios=Di;Qt.CanceledError=Ha;Qt.CancelToken=R4;Qt.isCancel=DS;Qt.VERSION=US;Qt.toFormData=wd;Qt.AxiosError=Oe;Qt.Cancel=Qt.CanceledError;Qt.all=function(t){return Promise.all(t)};Qt.spread=A4;Qt.isAxiosError=T4;Qt.mergeConfig=Ui;Qt.AxiosHeaders=Qn;Qt.formToJSON=e=>LS(z.isHTMLForm(e)?new FormData(e):e);Qt.getAdapter=FS.getAdapter;Qt.HttpStatusCode=Em;Qt.default=Qt;const{Axios:B8,AxiosError:F8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=Qt,ye=Qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Cm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const L4=()=>{jm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Cm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const D4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},M4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},O4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},I4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},B4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},F4=async e=>{await ye.delete(`/estimates/${e}`)},U4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},V4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},z4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},$4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},H4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},q4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},W4=async e=>{await ye.delete(`/line-items/${e}`)},G4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},K4=async e=>{await ye.post("/estimates/reorder",e)},Q4=async()=>{const{data:e}=await ye.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},Y4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},X4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},J4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Z4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},eO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},Ey=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},tO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},nO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Cy=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},rO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},sO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},iO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},aO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},oO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},lO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},cO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},uO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},dO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},pO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},fO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ay=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?mO(n):pO(n);case"ALL_PURPOSE":return t?hO(n):fO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return rE(n);case"DATABRICKS_APPS":return eE(n);case"CLEAN_ROOM":return gO(n);case"AI_PARSE":return tE(n);case"SHUTTERSTOCK_IMAGEAI":return nE(n);case"LAKEFLOW_CONNECT":return xO(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function cs(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([cs("instance-dbu-rates.json"),cs("dbu-multipliers.json"),cs("dbu-rates.json"),cs("dbsql-rates.json"),cs("dbsql-warehouse-config.json"),cs("vector-search-rates.json"),cs("model-serving-rates.json"),cs("fmapi-databricks-rates.json"),cs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),sE()}}function sE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function iE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Lg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"];function aE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Ty;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},jO="v7",ds=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(ds);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(ds),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(ds),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(ds),null;return t}catch{return localStorage.removeItem(ds),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(ds,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(ds)}catch{}}const Pp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Rp=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Ap=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Dp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Mp=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],ws=rM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"}],cloudProviders:Pp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Rp,dbsqlWarehouseTypes:[],dltEditions:Ap,fmapiProviders:Mp,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tp,vmPaymentOptions:Lp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Dp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:sE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await D4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Sy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await O4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await F4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await $4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await H4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await q4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await W4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]},p=u.workloadTypes||[],f=new Set(p.map(g=>g.workload_type)),h=[...p,...r.workloadTypes.filter(g=>!f.has(g.workload_type))];e({workloadTypes:h.length>0?h:r.workloadTypes,cloudProviders:u.cloudProviders||Pp,dbsqlSizes:u.dbsqlSizes||Rp,dltEditions:u.dltEditions||Ap,fmapiProviders:u.fmapiProviders||Mp,vmPricingTiers:u.vmPricingTiers||Tp,vmPaymentOptions:u.vmPaymentOptions||Lp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Dp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,k,A,S,T,D,$,j,H,X,re,le]=await Promise.all([Q4().catch(()=>r.workloadTypes),X4().catch(()=>Pp),J4().catch(()=>Rp),Z4().catch(()=>Ap),eO().catch(()=>Mp),cO().catch(()=>Tp),uO().catch(()=>Lp),iO().catch(()=>null),oO().catch(()=>null),Py().catch(()=>Dp),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),sO(s).catch(()=>[]),aO(s).catch(()=>[]),Ey().catch(()=>[]),Cy().catch(()=>[]),Nm().catch(()=>[])]),he={aws:A,azure:S,gcp:T},xe=A,oe={};j.forEach(se=>{const pe=`${se.model}:${se.rate_type}`;oe[pe]=se});const F={};H.forEach(se=>{const pe=`${se.provider}:${se.model}:${se.rate_type}`;F[pe]=se});const Q=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Q.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,vectorSearchModes:$,fmapiDatabricksRates:oe,fmapiProprietaryRates:F,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await Y4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Ey();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Cy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await lO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=nO({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Lg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await HS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ay(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ay(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await rE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await eE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"AI_PARSE":c=await tE({...l,mode:"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1});break;case"SHUTTERSTOCK_IMAGEAI":c=await nE({...l,images_per_month:n.shutterstock_images||100});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function Ly(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function oE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Rm(e){return e.toLowerCase()}class Yn{constructor(t,n){this.attribute=n,this.property=t}}Yn.prototype.attribute="";Yn.prototype.booleanish=!1;Yn.prototype.boolean=!1;Yn.prototype.commaOrSpaceSeparated=!1;Yn.prototype.commaSeparated=!1;Yn.prototype.defined=!1;Yn.prototype.mustUseProperty=!1;Yn.prototype.number=!1;Yn.prototype.overloadedBoolean=!1;Yn.prototype.property="";Yn.prototype.spaceSeparated=!1;Yn.prototype.space=void 0;let BO=0;const Ue=Wi(),Xt=Wi(),Am=Wi(),ne=Wi(),_t=Wi(),_a=Wi(),nr=Wi();function Wi(){return 2**++BO}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ue,booleanish:Xt,commaOrSpaceSeparated:nr,commaSeparated:_a,number:ne,overloadedBoolean:Am,spaceSeparated:_t},Symbol.toStringTag,{value:"Module"})),Op=Object.keys(Tm);class Dg extends Yn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Dg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=oE([lE,FO,dE,pE,fE],"html"),Mg=oE([lE,UO,dE,pE,fE],"svg");function KO(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,By="/",Fy="*",Ei="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(By!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;Ei!=e.charAt(v)&&(Fy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,Ei===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:Uy(v[0].replace(Iy,Ei)),value:b?Uy(b[0].replace(Iy,Ei)):Ei});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(tI,Ei):Ei}var aI=iI,oI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,Vy):e=e.replace(fI,Vy),e.replace(dI,gI))};Sd.camelCase=xI;var vI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Og),_I=Sd;function Lm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Lm.default=Lm;var bI=Lm;const wI=qu(bI),mE=hE("end"),Ig=hE("start");function hE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Ig(e),n=mE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),gE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=xE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function xE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=yE(e,t.tagName,!1),a=II(e,t);let l=Ug(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:yE(e,t.name,!0),a=BI(e,t),l=Ug(e,t);return vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Fg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function vE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=FI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function BI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(lr(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function bE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=pi(/[A-Za-z]/),Nn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function gt(e){return e!==null&&(e<0||e===32)}function Ge(e){return e===-2||e===-1||e===32}const Ed=pi(new RegExp("\\p{P}|\\p{S}","u")),Vi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Je(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return Ge(c)?(e.enter(n),l(c)):t(c)}function l(c){return Ge(c)&&i++a))return;const T=t.events.length;let D=T,$,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if($){j=t.events[D][1].end;break}$=!0}for(x(r),S=T;S_;){const A=n[k];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tB(e,t,n){return Je(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||gt(e)||Vi(e))return 1;if(Ed(e))return 2}function Cd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Ky(p,-c),Ky(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,Cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,lr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&Ge(S)?Je(e,y,"linePrefix",i+1)(S):y(S)}function y(S){return S===null||Ne(S)?e.check(Qy,v,k)(S):(e.enter("codeFlowValue"),_(S))}function _(S){return S===null||Ne(S)?(e.exit("codeFlowValue"),y(S)):(e.consume(S),_)}function k(S){return e.exit("codeFenced"),t(S)}function A(S,T,D){let $=0;return j;function j(he){return S.enter("lineEnding"),S.consume(he),S.exit("lineEnding"),H}function H(he){return S.enter("codeFencedFence"),Ge(he)?Je(S,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(he):X(he)}function X(he){return he===l?(S.enter("codeFencedFenceSequence"),re(he)):D(he)}function re(he){return he===l?($++,S.consume(he),re):$>=a?(S.exit("codeFencedFenceSequence"),Ge(he)?Je(S,le,"whitespace")(he):le(he)):D(he)}function le(he){return he===null||Ne(he)?(S.exit("codeFencedFence"),T(he)):D(he)}}}function fB(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hB},mB={partial:!0,tokenize:gB};function hB(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Je(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mB,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gB(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Je(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xB={name:"codeText",previous:yB,resolve:vB,tokenize:_B};function vB(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function jE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||gt(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!Ge(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function PE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Je(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ge(s)?Je(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NB={name:"definition",tokenize:RB},PB={partial:!0,tokenize:AB};function RB(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return NE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return gt(h)?Do(e,u)(h):u(h)}function u(h){return jE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PB,p,p)(h)}function p(h){return Ge(h)?Je(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AB(e,t,n){return r;function r(l){return gt(l)?Do(e,s)(l):n(l)}function s(l){return PE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Ge(l)?Je(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TB={name:"hardBreakEscape",tokenize:LB};function LB(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DB={name:"headingAtx",resolve:MB,tokenize:OB};function MB(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},lr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OB(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||gt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):Ge(d)?Je(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||gt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IB=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],BB={concrete:!0,name:"htmlFlow",resolveTo:VB,tokenize:zB},FB={partial:!0,tokenize:HB},UB={partial:!0,tokenize:$B};function VB(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zB(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):On(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const ke="CDATA[";return L===ke.charCodeAt(l++)?(e.consume(L),l===ke.length?r.interrupt?t:X:g):n(L)}function v(L){return On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||gt(L)){const ke=L===47,De=a.toLowerCase();return!ke&&!i&&Xy.includes(De)?(s=1,r.interrupt?t(L):X(L)):IB.includes(a.toLowerCase())?(s=6,ke?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return Ge(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||On(L)?(e.consume(L),k):Ge(L)?(e.consume(L),_):j(L)}function k(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),k):A(L)}function A(L){return L===61?(e.consume(L),S):Ge(L)?(e.consume(L),A):_(L)}function S(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):Ge(L)?(e.consume(L),S):D(L)}function T(L){return L===c?(e.consume(L),c=null,$):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||gt(L)?A(L):(e.consume(L),D)}function $(L){return L===47||L===62||Ge(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):Ge(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Q):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(FB,pe,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UB,le,pe)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),he}function he(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",F):X(L)}function F(L){if(L===62){const ke=a.toLowerCase();return Xy.includes(ke)?(e.consume(L),se):X(L)}return On(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),F):X(L)}function Q(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),se)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $B(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HB(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qB={name:"htmlText",tokenize:WB};function WB(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):On(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):On(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),k):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function k(N){return N===62?xe(N):_(N)}function A(N){return On(N)?(e.consume(N),S):n(N)}function S(N){return N===45||Nn(N)?(e.consume(N),S):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):Ge(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||gt(N)?$(N):n(N)}function $(N){return N===47?(e.consume(N),xe):N===58||N===95||On(N)?(e.consume(N),j):Ne(N)?(a=$,oe(N)):Ge(N)?(e.consume(N),$):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):Ge(N)?(e.consume(N),H):$(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):Ge(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,he):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||gt(N)?$(N):(e.consume(N),le)}function he(N){return N===47||N===62||gt(N)?$(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),F}function F(N){return Ge(N)?Je(e,Q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Q(N)}function Q(N){return e.enter("htmlTextData"),a(N)}}const $g={name:"labelEnd",resolveAll:YB,resolveTo:XB,tokenize:JB},GB={tokenize:ZB},KB={tokenize:eF},QB={tokenize:tF};function YB(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),Ge(u)?Je(e,l,"whitespace")(u):l(u))}}const zn={continuation:{tokenize:dF},exit:fF,name:"list",tokenize:uF},lF={partial:!0,tokenize:mF},cF={partial:!0,tokenize:pF};function uF(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lF,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return Ge(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dF(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Je(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Ge(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cF,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Je(e,e.attempt(zn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pF(e,t,n){const r=this;return Je(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fF(e){e.exit(this.containerState.type)}function mF(e,t,n){const r=this;return Je(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ge(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:hF,tokenize:gF};function hF(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gF(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Ge(u)?Je(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xF={tokenize:vF};function vF(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Je(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kB,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yF={resolveAll:AE()},_F=RE("string"),bF=RE("text");function RE(e){return{resolveAll:AE(e==="text"?wF:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MF(e,t){let n=-1;const r=[];let s;for(;++n0){const Ve=G.tokenStack[G.tokenStack.length-1];(Ve[1]||e_).call(G,void 0,Ve[0])}for(B.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QF(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YF(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XF(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JF(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZF(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function DE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):ME(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=mE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WF,break:GF,code:KF,delete:QF,emphasis:YF,footnoteReference:XF,heading:JF,html:ZF,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const OE=-1,jd=0,Mo=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,IE=7,BE=8,s_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case jd:case OE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case Hg:return n(new Date(a),s);case qg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case IE:{const{name:l,message:c}=a;return n(new s_[l](c),s)}case BE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new s_[i](a),s)};return r},i_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Ou,Ki];case"Date":return[Hg,Ki];case"RegExp":return[qg,Ki];case"Map":return[Wg,Ki];case"Set":return[Gg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[IE,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case jd:{let d=a;switch(c){case"bigint":l=BE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([OE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Ou:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!yc(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case Hg:return s([l,a.toISOString()],a);case qg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Wg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(yc(uo(f))||yc(uo(h))))&&d.push([i(f),i(h)]);return p}case Gg:{const d=[],p=s([l,d],a);for(const f of a)(e||!yc(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(a_(e,t)):structuredClone(e):(e,t)=>i_(a_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return N6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=FE,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function o_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function F6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,VE=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):VE.call(t)==="[object Array]"},f_=function(t){if(!t||VE.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Wr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Fm(v)&&Fm(h)&&(h=Up(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Qg().freeze();function Hp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Fm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return rU(e)?e:new zE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return nU().use(qF).use(n).use(F6,r).use(t)}function dU(e){const t=e.children||"",n=new zE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Kg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Ip)if(Object.hasOwn(Ip,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ip[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Nd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:S}:void 0),S===!1?f.lastIndex=k+1:(g!==k&&y.push({type:"text",value:u.value.slice(g,k)}),Array.isArray(S)?y.push(...S):S&&y.push(S),g=k+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function $E(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Vi(n)||Ed(n))&&(!t||n!==47)}HE.peek=FU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function BU(e){this.exit(e)}function FU(){return"["}function HE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:BU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?qE:zU))),u(),c}}function zU(e,t,n){return t===0?e:qE(e,t,n)}function qE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];WE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:WE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function WE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GE.peek=l7;function GE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}KE.peek=d7;function KE(e){return e.value||""}function d7(){return"<"}QE.peek=p7;function QE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}YE.peek=f7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}XE.peek=m7;function XE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}ZE.peek=h7;function ZE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(JE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return JE(e,n)?"<":"["}eC.peek=g7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Xg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),tC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nC.peek=C7;function nC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(tC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rC={blockquote:JU,break:S_,code:s7,definition:a7,emphasis:GE,hardBreak:S_,heading:u7,html:KE,image:QE,imageReference:YE,inlineCode:XE,link:ZE,linkReference:eC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:nC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:E_,tableHeader:E_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Yp,tableHeader:Yp,tableRow:Yp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Yp(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||gt(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return gt(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||gt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return gt(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Je(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Je(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?S:c;return re===S&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):Ge(j)?Je(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||gt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,Ge(j)?Je(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return Ge(j)?Je(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?k(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return Ge(j)?Je(e,k,"whitespace")(j):k(j)}function k(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function S(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):Ge(j)?Je(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||gt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?$:D)}function $(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return gt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):Ge(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Je(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return bE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[k,A]=m.useState([]),[S,T]=m.useState([]),[D,$]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,he]=m.useState(!1),[xe,oe]=m.useState(380),[F,Q]=m.useState(!1),[N,se]=m.useState(!0),[pe,L]=m.useState(null),[ke,De]=m.useState(""),[w,Y]=m.useState(null),ue=l??xe,_e=c??oe,ve=m.useRef(null),ot=m.useRef(null),Ze=m.useRef(null),I=m.useRef(null),st=m.useRef(null),xt=m.useRef(!1),lt=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,$e=a[Te];$e!=null&&$e.total&&(U+=$e.total)}),U},[a,i]),mt=m.useCallback(U=>{U.preventDefault(),Q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!F)return;const $e=window.innerWidth-Te.clientX,K=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,$e),K))},Z=()=>{Q(!1)};return F&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[F]);const W=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;xt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(xt.current=!1)},[g]);const E=m.useCallback(()=>{const U=ot.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;xt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Ze.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](https://steven-tan-data.github.io/lakemeter-opensource/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](https://steven-tan-data.github.io/lakemeter-opensource/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),q=m.useCallback((U,Z)=>{L(U),De(Z)},[]),Se=m.useCallback(()=>{L(null),De("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),Y(U),setTimeout(()=>Y(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,B]=m.useState(null),[G,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!ke.trim()||d.findIndex(K=>K.id===U)===-1)return;const Te=ke.trim();if(T([]),L(null),De(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const $e={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([$e]),B(Te),ae(!0)},[ke,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,lt,ie]);const Ve=m.useCallback(async(U,Z)=>{var ut;const Te=U||f.trim();if(!Te||g)return;const $e={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(nt=>[...nt,$e]),h(""),v(!0),re(null);const K=`assistant-${Date.now()}`;p(nt=>[...nt,{id:K,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const nt=(i||k||[]).map(Ie=>{const Me=Ie.line_item_id||Ie.item_id||Ie.draft_id,Re=a==null?void 0:a[Me];return{...Ie,total_cost:(Re==null?void 0:Re.total)||Ie.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Ie.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Ie.vm_cost||0}}),Bt=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:$e.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:nt,mode:u,stream:!0}),signal:I.current.signal});if(!Bt.ok)throw new Error(`HTTP ${Bt.status}: ${Bt.statusText}`);const ft=(ut=Bt.body)==null?void 0:ut.getReader();if(!ft)throw new Error("No response body");const vt=new TextDecoder;let Ct="",ht="",ze=[];for(;;){const{done:Ie,value:Me}=await ft.read();if(Ie)break;Ct+=vt.decode(Me,{stream:!0});const Re=Ct.split(` +`);Ct=Re.pop()||"";for(const Yt of Re)if(Yt.startsWith("data: ")){const jt=Yt.slice(6);if(jt==="[DONE]")continue;try{const Ee=JSON.parse(jt);if(Ee.type==="start")x(Ee.conversation_id);else if(Ee.type==="content")ht+=Ee.content,p(Nt=>Nt.map(Le=>Le.id===K?{...Le,content:ht,isThinking:!1}:Le));else if(Ee.type==="tool_result")ze.push({tool:Ee.tool,result:Ee.result});else if(Ee.type==="proposal")Ee.workload&&Ee.workload.proposal_id&&T(Nt=>Nt.some(Jn=>Jn.proposal_id===Ee.workload.proposal_id)?Nt:[...Nt,Ee.workload]);else if(Ee.type==="done")ht.includes("Error getting response")||ht.includes("AI service error")||(Ee.estimate&&_(Ee.estimate),Ee.workloads&&A(Ee.workloads),Ee.proposed_workloads&&Ee.proposed_workloads.length>0&&T(Ee.proposed_workloads));else if(Ee.type==="error")throw new Error(Ee.content)}catch{}}}p(Ie=>Ie.map(Me=>Me.id===K?{...Me,content:ht,isStreaming:!1,toolResults:ze}:Me))}catch(nt){if(nt.name==="AbortError")return;console.error("Chat error:",nt),re(nt.message||"Failed to get response"),p(Bt=>Bt.filter(ft=>ft.id!==K))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,k,a]);m.useEffect(()=>{O&&!g&&(Ve(O,G),B(null),ae(!1))},[O,G,g,Ve]);const pt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Ve())},it=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ye=async U=>{if(b){$(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T($e=>$e.filter(K=>K.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p($e=>{var K;return[...$e,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(K=Te.workload_config)==null?void 0:K.workload_name}" added to estimate.`,timestamp:new Date}]})}catch($e){p(K=>[...K,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${$e.message||"Database error"}. Please try again.`,timestamp:new Date}]),re($e.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},ct=async U=>{if(b){$(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=S.find($e=>$e.proposal_id===U);T($e=>$e.filter(K=>K.proposal_id!==U)),p($e=>[...$e,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Xe=async()=>{for(const U of S)await Ye(U.proposal_id)},It=async()=>{for(const U of S)await ct(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>he(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx($c,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(fs,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:st,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ue}px)`},children:[o.jsx("div",{onMouseDown:mt,className:de("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",F&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ms,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:it,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(KD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(OD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),S.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ty,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[S.length," Proposed Workload",S.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(sr,{className:"w-4 h-4 text-amber-600"}):o.jsx(fs,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Xe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",S.length,")"]}),o.jsx("button",{onClick:It,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:S.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:de("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ye(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Au,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:ot,onScroll:E,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:de("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:de("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:ke,onChange:Z=>De(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:de("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var $e;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[($e=Z.result)!=null&&$e.success?o.jsx(Au,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:de("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:de("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(wD,{className:"w-3.5 h-3.5"}):o.jsx(SD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>q(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(n3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:it,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(fs,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Ve(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Ze,value:f,onChange:W,onKeyDown:pt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Ve(),disabled:!g&&!f.trim(),className:de("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(dS,{className:"w-4 h-4"}):o.jsx(JD,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:o3}],N_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Xp=[{value:"light",label:"Light",icon:y3},{value:"dark",label:"Dark",icon:YD},{value:"system",label:"System",icon:PD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=R3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),k=m.useRef(null),{currentUser:A,isAuthenticated:S,authError:T,fetchCurrentUser:D,currentEstimate:$,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:he,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:F}=ws(),Q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Q||N,pe=m.useCallback(()=>{L4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const Y=ue=>{var _e;console.log("Session expired event received:",ue.detail),g(((_e=ue.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(Cm,Y),()=>{window.removeEventListener(Cm,Y)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),ke=m.useCallback(()=>{a(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||he(),F||xe()},[he,xe,oe,F]),m.useEffect(()=>{const Y=ue=>{_.current&&!_.current.contains(ue.target)&&s(!1),k.current&&!k.current.contains(ue.target)&&a(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Xp.find(Y=>Y.value===t)||Xp[2],w=De.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(N_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(N_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(Y=>{const ue=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return o.jsxs(bu,{to:Y.href,className:de("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ue&&"border"),style:ue?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(Y.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),S&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(S3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),o.jsx(sr,{className:de("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Xp.map(Y=>{const ue=Y.icon,_e=t===Y.value;return o.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ue,{className:"w-4 h-4"}),o.jsx("span",{children:Y.label})]},Y.value)})})]}),o.jsxs("div",{className:"relative",ref:k,children:[o.jsxs("button",{onClick:ke,className:de("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(u3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(nm,{children:i&&o.jsxs($t.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"https://steven-tan-data.github.io/lakemeter-opensource/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(BD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(_m,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx($t.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(EN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Q?$:void 0,currentWorkloads:Q?j:void 0,itemCosts:Q?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Q?async Y=>{if($!=null&&$.estimate_id)try{await X({estimate_id:$.estimate_id,...Y}),re($.estimate_id),We.success(`Workload "${Y.workload_name}" added!`)}catch(ue){throw We.error(ue.message||"Failed to add workload"),ue}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(nm,{children:p&&o.jsx($t.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs($t.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(ms,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Xn(e){var t,n;return e?Ga(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Xn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Xn(e).HTMLElement}function pC(e){return e instanceof Xn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:Zg(e)?ex(e)?e:Dl(e)||pC(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Fu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Jp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Jp[e]==null?0:Jp[e]+1;return Jp[e]=n,e+"-"+n},[e,t])}function fC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=fC(1),Uu=fC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Xn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Xn(e.target);return t&&e instanceof t}function $m(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(P_)?e:e.querySelector(P_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const mC=m.createContext(null);function OV(e){const t=m.useContext(mC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const BV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},FV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=FV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=BV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function hC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const gC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(R_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function xC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Xn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function A_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Xn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Xn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||pC(s)||n.includes(s))return n;const i=Xn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function vC(e){const[t]=rx(e,1);return t??null}function Zp(e){return!Rd||!e?null:Ga(e)?e:Zg(e)?ex(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function yC(e){return Ga(e)?e.scrollX:e.scrollLeft}function _C(e){return Ga(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:yC(e),y:_C(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function bC(e){return!Rd||!e?!1:e===document.scrollingElement}function wC(e){const t={x:0,y:0},n=bC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=wC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function kC(e){return e.reduce((t,n)=>ba(t,Hm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+yC(n),0)}function az(e){return e.reduce((t,n)=>t+_C(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);vC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=kC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Xn(e);return e instanceof t?e:Ka(e)}function ef(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function T_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var rt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(rt||(rt={}));const SC={start:[rt.Space,rt.Enter],cancel:[rt.Esc],end:[rt.Space,rt.Enter,rt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case rt.Right:return{...n,x:n.x+25};case rt.Left:return{...n,x:n.x-25};case rt.Down:return{...n,y:n.y+25};case rt.Up:return{...n,y:n.y-25}}};class Ad{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Xn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=SC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Uu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:k,maxScroll:A,minScroll:S}=wC(v),T=sz(v),D={x:Math.min(b===rt.Right?T.right-T.width/2:T.right,Math.max(b===rt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===rt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===rt.Down?T.top:T.top+T.height/2,p.y))},$=b===rt.Right&&!y||b===rt.Left&&!_,j=b===rt.Down&&!k||b===rt.Up&&!x;if($&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===rt.Right&&H<=A.x||b===rt.Left&&H>=S.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===rt.Right?v.scrollLeft-A.x:v.scrollLeft-S.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===rt.Down&&H<=A.y||b===rt.Up&&H>=S.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===rt.Down?v.scrollTop-A.y:v.scrollTop-S.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Uu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ad.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=SC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function L_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Xn(a)),this.initialCoordinates=(s=$m(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,T_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,T_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(L_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Fr,u=Uu(s,c);if(!r&&l){if(L_(l)){if(l.tolerance!=null&&ef(u,l.tolerance))return this.handleCancel();if(ef(u,l.distance))return this.handleStart()}if(D_(l)&&ef(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Td extends ix{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Td.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class mz extends ix{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const tf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ix{constructor(t){super(t,tf)}static setup(){return window.addEventListener(tf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),k=m.useCallback(()=>{const S=_.current;if(!S)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;S.scrollBy(T,D)},[]),A=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const S of A){if((r==null?void 0:r(S))===!1)continue;const T=u.indexOf(S),D=d[T];if(!D)continue;const{direction:$,speed:j}=rz(S,D,y,t,f);for(const H of["x","y"])h[H][$[H]]||(j[H]=0,$[H]=0);if(j.x>0||j.y>0){v(),_.current=S,g(k,a),b.current=j,x.current=$;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,k,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const k=_.node.current,A=k?new sx(c(k),k):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function EC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return EC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ld(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new sx(Qa(e),e)}function O_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Ld({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=EC(e);return xC(e,t)}const I_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=Zp(i.target);a&&n(l=>l?(l.set(a,Hm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=Zp(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=Zp(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):kC(e):Fr,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function CC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const F_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=CC(n?Xn(n):null),[s,i]=m.useState(F_);function a(){i(()=>e.length?e.map(c=>bC(c)?r:new sx(t(c),c)):F_)}const l=Ld({callback:a});return es(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Ld({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Fu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Td,options:{}},{sensor:Ad,options:{}}],Dz={current:{}},Qc={draggable:{measure:A_},droppable:{measure:A_,strategy:fl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Qa}};class Bo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Bo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Oz),jC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Bo}}}function Bz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Bo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Bo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Bo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Fz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),a=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=xC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=vC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const NC=m.createContext({...Fr,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const PC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Bz,void 0,Iz),[b,x]=v,[y,_]=IV(),[k,A]=m.useState(Us.Uninitialized),S=k===Us.Initialized,{draggable:{active:T,nodes:D,translate:$},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var K;return T!=null?{id:T,data:(K=H==null?void 0:H.data)!=null?K:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[he,xe]=m.useState(null),[oe,F]=m.useState(null),Q=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:ke,measuringScheduled:De}=bz(se,{dragging:S,dependencies:[$.x,$.y],config:pe.droppable}),w=yz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ue=$e(),_e=wz(w,pe.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ue.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Ze=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Ze.current.over)==null?void 0:n.id),st=Tz({measure:pe.dragOverlay.measure}),xt=(r=st.nodeRef.current)!=null?r:w,lt=S?(s=st.rect)!=null?s:ve:null,mt=!!(st.nodeRef.current&&st.rect),W=Ez(mt?null:ve),P=CC(xt?Xn(xt):null),E=Cz(S?I??w:null),ie=Rz(E),M=Uz(h,{transform:{x:$.x-W.x,y:$.y-W.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:ot,draggingNodeRect:lt,over:Ze.current.over,overlayNodeRect:st.rect,scrollableAncestors:E,scrollableAncestorRects:ie,windowRect:P}),q=Y?ba(Y,$):null,Se=jz(E),Pe=B_(Se),O=B_(Se,[ve]),B=ba(M,Pe),G=lt?QV(lt,M):null,ae=re&&G?p({active:re,collisionRect:G,droppableRects:L,droppableContainers:se,pointerCoordinates:q}):null,je=HV(ae,"id"),[Ve,pt]=m.useState(null),it=mt?M:ba(M,O),Ye=GV(it,(i=Ve==null?void 0:Ve.rect)!=null?i:null,ve),ct=m.useRef(null),Xe=m.useCallback((K,ut)=>{let{sensor:nt,options:Bt}=ut;if(le.current==null)return;const ft=D.get(le.current);if(!ft)return;const vt=K.nativeEvent,Ct=new nt({active:le.current,activeNode:ft,event:vt,options:Bt,context:Ze,onAbort(ze){if(!D.get(ze))return;const{onDragAbort:Me}=Q.current,Re={id:ze};Me==null||Me(Re),y({type:"onDragAbort",event:Re})},onPending(ze,Ie,Me,Re){if(!D.get(ze))return;const{onDragPending:jt}=Q.current,Ee={id:ze,constraint:Ie,initialCoordinates:Me,offset:Re};jt==null||jt(Ee),y({type:"onDragPending",event:Ee})},onStart(ze){const Ie=le.current;if(Ie==null)return;const Me=D.get(Ie);if(!Me)return;const{onDragStart:Re}=Q.current,Yt={activatorEvent:vt,active:{id:Ie,data:Me.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Yt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:ze,active:Ie}),y({type:"onDragStart",event:Yt}),xe(ct.current),F(vt)})},onMove(ze){x({type:sn.DragMove,coordinates:ze})},onEnd:ht(sn.DragEnd),onCancel:ht(sn.DragCancel)});ct.current=Ct;function ht(ze){return async function(){const{active:Me,collisions:Re,over:Yt,scrollAdjustedTranslate:jt}=Ze.current;let Ee=null;if(Me&&jt){const{cancelDrop:Nt}=Q.current;Ee={activatorEvent:vt,active:Me,collisions:Re,delta:jt,over:Yt},ze===sn.DragEnd&&typeof Nt=="function"&&await Promise.resolve(Nt(Ee))&&(ze=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:ze}),A(Us.Uninitialized),pt(null),xe(null),F(null),ct.current=null;const Nt=ze===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const Le=Q.current[Nt];Le==null||Le(Ee),y({type:Nt,event:Ee})}})}}},[D]),It=m.useCallback((K,ut)=>(nt,Bt)=>{const ft=nt.nativeEvent,vt=D.get(Bt);if(le.current!==null||!vt||ft.dndKit||ft.defaultPrevented)return;const Ct={active:vt};K(nt,ut.options,Ct)===!0&&(ft.dndKit={capturedBy:ut.sensor},le.current=Bt,Xe(nt,ut))},[D,Xe]),U=_z(d,It);Nz(d),es(()=>{ve&&k===Us.Initializing&&A(Us.Initialized)},[ve,k]),m.useEffect(()=>{const{onDragMove:K}=Q.current,{active:ut,activatorEvent:nt,collisions:Bt,over:ft}=Ze.current;if(!ut||!nt)return;const vt={active:ut,activatorEvent:nt,collisions:Bt,delta:{x:B.x,y:B.y},over:ft};la.unstable_batchedUpdates(()=>{K==null||K(vt),y({type:"onDragMove",event:vt})})},[B.x,B.y]),m.useEffect(()=>{const{active:K,activatorEvent:ut,collisions:nt,droppableContainers:Bt,scrollAdjustedTranslate:ft}=Ze.current;if(!K||le.current==null||!ut||!ft)return;const{onDragOver:vt}=Q.current,Ct=Bt.get(je),ht=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,ze={active:K,activatorEvent:ut,collisions:nt,delta:{x:ft.x,y:ft.y},over:ht};la.unstable_batchedUpdates(()=>{pt(ht),vt==null||vt(ze),y({type:"onDragOver",event:ze})})},[je]),es(()=>{Ze.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:G,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:xt,draggingNodeRect:lt,droppableContainers:j,over:Ve,scrollableAncestors:E,scrollAdjustedTranslate:B},X.current={initial:lt,translated:G}},[re,w,ae,G,D,xt,lt,L,j,Ve,E,B]),gz({...ue,delta:$,draggingRect:G,pointerCoordinates:q,scrollableAncestors:E,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:ot,dragOverlay:st,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Ve,measureDroppableContainers:ke,scrollableAncestors:E,scrollableAncestorRects:ie,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ve,oe,ae,ot,st,D,j,L,Ve,ke,E,ie,pe,De,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Ve,measureDroppableContainers:ke}),[oe,U,re,ve,x,N,D,Ve,ke]);return pn.createElement(mC.Provider,{value:_},pn.createElement(Dd.Provider,{value:Te},pn.createElement(jC.Provider,{value:Z},pn.createElement(NC.Provider,{value:Ye},u)),pn.createElement(Fz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function $e(){const K=(he==null?void 0:he.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,nt=S&&!K&&!ut;return typeof c=="object"?{...c,enabled:nt}:{enabled:nt}}}),$z=m.createContext(null),U_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?NC:$z),[y,_]=Fu(),[k,A]=Fu(),S=Pz(a,t),T=pl(n);es(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:k,data:T}),()=>{const $=p.get(t);$&&$.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:S,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(jC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ld({callback:y,disabled:g||!a}),k=m.useCallback((D,$)=>{_&&($&&(_.unobserve($),p.current=!1),D&&_.observe(D))},[_]),[A,S]=Fu(k),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:S}}function ax(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ax(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Sc={scaleX:1,scaleY:1},AC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Sc}:s=a?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,k=Jz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:k,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,k.draggable,k.droppable,_,h,b,c,f,s]);return pn.createElement(LC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ax(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},MC="transform",r8=Oa.Transition.toString({property:MC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function OC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(LC),_=a8(r,h),k=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:k,items:d},...s}),[p,s,k,d]),S=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:$,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:he,listeners:xe,isDragging:oe,over:F,setActivatorNodeRef:Q,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,he),pe=!!H,L=pe&&!g&&kc(f)&&kc(b),ke=!x&&oe,De=ke&&L?N:null,Y=L?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:k}):null,ue=kc(f)&&kc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):k,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ue,containerId:p}),ot=d!==ve.current.items,Ze=t({active:H,containerId:p,isDragging:oe,isSorting:pe,id:a,index:k,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Ze,index:k,node:D,rect:T});return m.useEffect(()=>{pe&&ve.current.newIndex!==ue&&(ve.current.newIndex=ue),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,ue,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const xt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(xt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:k,newIndex:ue,items:d,isOver:$,isSorting:pe,isDragging:oe,listeners:xe,node:D,overIndex:b,over:F,setNodeRef:se,setActivatorNodeRef:Q,setDroppableNodeRef:j,setDraggableNodeRef:he,transform:I??Y,transition:st()};function st(){if(I||ot&&ve.current.newIndex===k)return r8;if(!(ke&&!nx(X)||!u)&&(pe||Ze))return Oa.Transition.toString({...u,property:MC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}rt.Down,rt.Right,rt.Up,rt.Left;const IC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var BC={exports:{}};(function(e,t){(function(n,r){r()})(hs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof hs=="object"&&hs.global===hs?hs:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(BC);var Gm=BC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Ec={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=ws(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[k,A]=m.useState(new Set),[S,T]=m.useState(!1),[D,$]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,he]=m.useState(null),[xe,oe]=m.useState(!1),[F,Q]=m.useState(!1),N=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),We.success("Refreshed")},[r]),pe=m.useMemo(()=>{const W=t.length,P=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="aws"}).length,E=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="gcp"}).length;return{all:W,aws:P,azure:E,gcp:ie}},[t]),L=m.useMemo(()=>{const W=t.reduce((P,E)=>P+(E.line_item_count||0),0);return{estimates:t.length,workloads:W}},[t]),ke=m.useMemo(()=>{const W=new Set;return t.forEach(P=>{P.customer_name&&W.add(P.customer_name)}),Array.from(W).sort()},[t]),De=m.useMemo(()=>{const W={all:t.length};return t.forEach(P=>{P.customer_name&&(W[P.customer_name]=(W[P.customer_name]||0)+1)}),W},[t]),w=m.useMemo(()=>{let W=[...t];if(c){const P=c.toLowerCase();W=W.filter(E=>{var ie;return E.estimate_name.toLowerCase().includes(P)||((ie=E.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(W=W.filter(P=>{var E;return((E=P.cloud)==null?void 0:E.toLowerCase())===f})),b!=="all"&&(W=W.filter(P=>P.customer_name===b)),g){case"updated":W.sort((P,E)=>new Date(E.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":W.sort((P,E)=>P.estimate_name.localeCompare(E.estimate_name));break;case"workloads":W.sort((P,E)=>(E.line_item_count||0)-(P.line_item_count||0));break;case"display_order":W.sort((P,E)=>(P.display_order??0)-(E.display_order??0));break}return W},[t,c,f,g,b]),Y=m.useCallback(async W=>{const{active:P,over:E}=W;if(!E||P.id===E.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===E.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const q=ax(w,ie,M),{estimates:Se}=ws.getState(),Pe=Se.map(O=>{const B=q.findIndex(G=>G.estimate_id===O.estimate_id);return B>=0?{...O,display_order:B}:O});ws.setState({estimates:Pe});try{await K4(q.map(O=>O.estimate_id))}catch{We.error("Failed to save reorder")}},[w,g]),ue=(W,P,E)=>{W.stopPropagation(),he({id:P,name:E}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),We.success("Estimate deleted")}catch{We.error("Failed to delete")}finally{oe(!1),re(!1),he(null)}}},ve=async(W,P)=>{W.stopPropagation();try{const E=await i(P);We.success("Estimate duplicated"),e(`/calculator/${E.estimate_id}`)}catch{We.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const W=await dO();Gm.saveAs(W,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),We.success("Exported successfully")}catch{We.error("Export failed")}finally{l(!1)}},Ze=()=>{k.size===w.length?A(new Set):A(new Set(w.map(W=>W.estimate_id)))},I=(W,P)=>{P.stopPropagation();const E=new Set(k);E.has(W)?E.delete(W):E.add(W),A(E)},st=()=>{k.size!==0&&Q(!0)},xt=async()=>{$(!0);let W=0,P=0;for(const E of k)try{await s(E),W++}catch{P++}$(!1),A(new Set),Q(!1),P===0?We.success(`Deleted ${W} estimate(s)`):We.error(`Deleted ${W}, failed ${P}`)},lt=async()=>{if(k.size===0)return;H(!0);let W=0;for(const P of k)try{const E=t.find(ie=>ie.estimate_id===P);if(E){const ie=await qS(P);Gm.saveAs(ie,`${E.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),W++}}catch{}H(!1),We.success(`Exported ${W} estimate(s)`)},mt=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ny,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Ng,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Qr,{className:de("w-5 h-5",d&&"animate-spin")})}),S?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[k.size," selected"]}),o.jsxs("button",{onClick:lt,disabled:k.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:st,disabled:k.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:mt,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:ot,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),ke.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(pD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?ke.length:De[b]||0}),o.jsx(sr,{className:de("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(nm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs($t.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:ke.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),ke.map(W=>o.jsxs("button",{onClick:()=>{x(W),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===W?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===W?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:W,children:W}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:De[W]||0}),b===W&&o.jsx(Gs,{className:"w-4 h-4"})]})]},W))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:W=>u(W.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(W=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},W))})}):w.length===0?o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Ze,className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:k.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:de(S?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(PC,{sensors:N,collisionDetection:gC,onDragEnd:Y,modifiers:[IC],children:o.jsx(DC,{items:w.map(W=>W.estimate_id),strategy:AC,children:w.map((W,P)=>{const E=k.has(W.estimate_id);return o.jsx(o8,{id:W.estimate_id,children:o.jsxs($t.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!S&&e(`/calculator/${W.estimate_id}`),className:de("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!S&&"cursor-pointer hover:bg-[var(--bg-hover)]",E&&"bg-blue-500/5"),children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(W.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",E?"bg-blue-500 border-blue-500":"border-gray-400"),children:E&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:de("flex items-center gap-3",S?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(ym,{className:"w-4 h-4",style:{color:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:W.estimate_name,children:W.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:W.customer_name||"",children:W.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:W.customer_name||"",children:W.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:W.cloud&&Tr[W.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[W.cloud.toLowerCase()].bg,color:Tr[W.cloud.toLowerCase()].text},children:Tr[W.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:W.region||W.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[W.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:W.region,children:W.region}),W.tier&&Ec[W.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Ec[W.tier.toLowerCase()].bg,color:Ec[W.tier.toLowerCase()].text},children:Ec[W.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:de("px-2 py-0.5 rounded text-xs font-medium",W.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:W.line_item_count===0?{color:"var(--text-muted)"}:{},children:W.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(W.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!S&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,W.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ue(ie,W.estimate_id,W.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},W.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),he(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),F&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",k.size," Estimate",k.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(W=>k.has(W.estimate_id)).map(W=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",W.estimate_name]},W.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:xt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),k.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[k.size," estimate",k.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:st,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,k=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach($=>{const j=$.group||"Other";T[j]||(T[j]=[]),T[j].push($)}),Object.keys(T).sort(($,j)=>$==="General Purpose"?-1:j==="General Purpose"?1:$.localeCompare(j)).map($=>({name:$,options:T[$]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},S=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:de("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:de("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:de("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:S,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(sr,{className:de("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),k.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const FC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:FC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function nf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var W;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:k,fetchLineItems:A,clearSingleWorkloadCost:S,markItemCalculating:T,fetchVMCostForInstance:D}=ws(),$=m.useRef(!0);m.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,he=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,F={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Q=f&&f.models&&f.models.llm?f:F,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[pe,L]=m.useState(!1),[ke,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ue={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ue),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),FC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?aE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&Y(E=>({...E,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Ze=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!$.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),st=a.length===0,xt=!st&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){We.error("Enter a workload name");return}L(!0);try{const E={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(E.serverless_enabled=w.serverless_enabled,E.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(E.serverless_enabled=!1,E.serverless_mode=null),I!=null&&I.show_compute_config?(E.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,E.driver_node_type=w.driver_node_type||null,E.worker_node_type=w.worker_node_type||null,E.num_workers=w.num_workers,E.driver_pricing_tier=w.driver_pricing_tier||"on_demand",E.worker_pricing_tier=w.worker_pricing_tier||"spot",E.driver_payment_option=w.driver_payment_option||"NA",E.worker_payment_option=w.worker_payment_option||"NA"):(E.photon_enabled=!1,E.driver_node_type=null,E.worker_node_type=null,E.num_workers=null,E.driver_pricing_tier=null,E.worker_pricing_tier=null,E.driver_payment_option=null,E.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?E.dlt_edition=w.dlt_edition:E.dlt_edition=null,I!=null&&I.show_dbsql_config?(E.dbsql_warehouse_type=w.dbsql_warehouse_type,E.dbsql_warehouse_size=w.dbsql_warehouse_size,E.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(E.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,E.dbsql_driver_payment_option=w.dbsql_driver_payment_option,E.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,E.dbsql_worker_payment_option=w.dbsql_worker_payment_option,E.driver_pricing_tier=w.dbsql_driver_pricing_tier,E.driver_payment_option=w.dbsql_driver_payment_option,E.worker_pricing_tier=w.dbsql_worker_pricing_tier,E.worker_payment_option=w.dbsql_worker_payment_option)):(E.dbsql_warehouse_type=null,E.dbsql_warehouse_size=null,E.dbsql_num_clusters=null,E.dbsql_driver_pricing_tier=null,E.dbsql_driver_payment_option=null,E.dbsql_worker_pricing_tier=null,E.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(E.vector_search_mode=w.vector_search_mode,E.vector_capacity_millions=w.vector_capacity_millions,E.vector_search_storage_gb=w.vector_search_storage_gb||0):(E.vector_search_mode=null,E.vector_capacity_millions=null,E.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(E.model_serving_gpu_type=w.model_serving_gpu_type,E.model_serving_scale_out=w.model_serving_scale_out,E.model_serving_concurrency=w.model_serving_concurrency):(E.model_serving_gpu_type=null,E.model_serving_scale_out=null,E.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?E.databricks_apps_size=w.databricks_apps_size:E.databricks_apps_size=null,w.workload_type==="AI_PARSE"?(E.ai_parse_mode="pages",E.ai_parse_complexity=w.ai_parse_complexity,E.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(E.ai_parse_mode=null,E.ai_parse_complexity=null,E.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?E.shutterstock_images=w.shutterstock_images:E.shutterstock_images=null,I!=null&&I.show_lakebase_config?(E.lakebase_cu=w.lakebase_cu,E.lakebase_storage_gb=w.lakebase_storage_gb||0,E.lakebase_ha_nodes=w.lakebase_ha_nodes,E.lakebase_backup_retention_days=w.lakebase_backup_retention_days,E.lakebase_pitr_gb=w.lakebase_pitr_gb||0,E.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(E.lakebase_cu=null,E.lakebase_storage_gb=null,E.lakebase_ha_nodes=null,E.lakebase_backup_retention_days=null,E.lakebase_pitr_gb=null,E.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(E.fmapi_provider=w.fmapi_provider,E.fmapi_model=w.fmapi_model||null,E.fmapi_endpoint_type=w.fmapi_endpoint_type,E.fmapi_context_length=w.fmapi_context_length,E.fmapi_rate_type=w.fmapi_rate_type,E.fmapi_quantity=w.fmapi_quantity):(E.fmapi_provider=null,E.fmapi_model=null,E.fmapi_endpoint_type=null,E.fmapi_context_length=null,E.fmapi_rate_type=null,E.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?ke?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,E.avg_runtime_minutes=w.avg_runtime_minutes,E.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):I!=null&&I.show_fmapi_config?(E.hours_per_month=w.hours_per_month||null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null),t)S(t.line_item_id),T(t.line_item_id),await k(t.line_item_id,E),We.success("Workload updated");else{E.estimate_id=e;const M=await _(E);M!=null&&M.line_item_id&&T(M.line_item_id),We.success("Workload added")}A(e),r==null||r(),n()}catch(E){console.error("Failed to save workload:",E),We.error("Failed to save")}finally{L(!1)}},mt=I==null?void 0:I.show_compute_config;return st?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(E=>({...E,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>Y(E=>({...E,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:de("w-full text-sm",xt&&"border-red-500",Ze&&"border-yellow-500"),children:[Ze&&(()=>{const P=a.find(E=>E.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),xt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Ze&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Ze&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const E=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!E,onChange:()=>!E&&Y(ie=>{const M=!ie.serverless_enabled,q=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:q}}),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>Y(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:he.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:de("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),mt&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(E=>({...E,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(E=>({...E,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(E=>({...E,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(E=>({...E,worker_node_type:E.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:de("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(E=>({...E,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(E=>({...E,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(E=>({...E,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(E=>({...E,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[mt&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>Y(E=>({...E,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const E=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!E;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!E&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(q=>({...q,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(E=>({...E,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(E=>({...E,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,E=P!=null&&P.driver_instance_type?l.find(B=>B.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(B=>B.id===P.worker_instance_type):null,M=(B,G,ae)=>{var Ve,pt,it,Ye,ct,Xe,It;if(!(B!=null&&B.vm_pricing))return null;const je=G.toLowerCase();if(je==="on_demand")return(Ve=B.vm_pricing.on_demand)==null?void 0:Ve.cost_per_hour;if(je==="spot")return(pt=B.vm_pricing.spot)==null?void 0:pt.cost_per_hour;if(je==="reserved_1y"){const U=((it=B.vm_pricing.reserved_1y)==null?void 0:it.find(Z=>Z.payment_option===ae))||((Ye=B.vm_pricing.reserved_1y)==null?void 0:Ye[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((ct=B.vm_pricing.reserved_3y)==null?void 0:ct.find(Z=>Z.payment_option===ae))||((Xe=B.vm_pricing.reserved_3y)==null?void 0:Xe[0]);return U==null?void 0:U.cost_per_hour}return(It=B.vm_pricing.on_demand)==null?void 0:It.cost_per_hour},q=M(E,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),E&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=E.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),q!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",q.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_driver_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:B=>Y(G=>({...G,dbsql_driver_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_worker_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:B=>Y(G=>({...G,dbsql_worker_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(E=>({...E,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(E=>({...E,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(E=>({...E,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(E=>({...E,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const E={small:4,medium:12,large:40},ie=P.target.value;Y(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:E[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const E=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(ie=>({...ie,model_serving_concurrency:E}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(E=>({...E,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(E=>({...E,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const E=P.target.value,ie=z_(x,g||"aws",w.fmapi_provider,E),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";Y(q=>({...q,fmapi_model:E,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(W=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:W.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(E=>({...E,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(E=>({...E,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],E={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],E={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(E=>({...E,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(E=>({...E,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(E=>({...E,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(E=>({...E,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(E=>({...E,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>Y(E=>({...E,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>Y(E=>({...E,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages/Month (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>Y(E=>({...E,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>Y(E=>({...E,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>De(!1),className:de("px-3 py-1 text-xs rounded-l-md border transition-colors",ke?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>De(!0),className:de("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",ke?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!ke&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(E=>({...E,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(E=>({...E,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&w.workload_type!=="DATABRICKS_APPS"&&w.workload_type!=="AI_PARSE"&&w.workload_type!=="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(E=>({...E,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),ke&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>Y(E=>({...E,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:s3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Tu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:sD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:_D,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:qD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:m3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?h8[e]||{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},fe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:fe(e),At=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:de("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:de("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[fe(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:de("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[At(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:k,getInstanceDbuRate:A,vmPricingMap:S,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:$,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:he,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:F,isPricingBundleLoaded:Q,clearEstimateState:N,setLocalCalculatedCosts:se}=ws(),[pe,L]=m.useState(!1),[ke,De]=m.useState(!1),[w,Y]=m.useState(!1),[ue,_e]=m.useState(!1),[ve,ot]=m.useState(!1),[Ze,I]=m.useState(null),[st,xt]=m.useState(!1),[lt,mt]=m.useState(!1),[W,P]=m.useState(!1),[E,ie]=m.useState(!1),[M,q]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,B]=m.useState(!1),[G,ae]=m.useState({}),[je,Ve]=m.useState(!1),[pt,it]=m.useState(!1),[Ye,ct]=m.useState(!1),[Xe,It]=m.useState(!1),[U,Z]=m.useState([]),[Te,$e]=m.useState(!1),[K,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[nt,Bt]=m.useState(!!e),[ft,vt]=m.useState(!1),[Ct,ht]=m.useState(!1),[ze,Ie]=m.useState("table"),[Me,Re]=m.useState("order"),[Yt,jt]=m.useState("asc"),[Ee,Nt]=m.useState(new Set),[Le,Jn]=m.useState(!1),Zn=m.useRef({}),ns=m.useCallback(R=>{const J=Zn.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Zn.current[R]&&(Zn.current[R].style.backgroundColor="")},1500))},[]),Un=m.useCallback(()=>{B(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!K.cloud||!K.region||r.length===0||!Ye)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const V=cl(F,K.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if(V){const ce=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",He=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${V.driver_instance_type}:${ce}:${He}`);const Pt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${V.worker_instance_type}:${Pt}:${Rt}`)}return}if(C.driver_node_type){const V=C.driver_pricing_tier||"on_demand",ce=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${V}:${ce}`)}if(C.worker_node_type){const V=C.worker_pricing_tier||"spot",ce=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${V}:${ce}`)}}});const J=Array.from(R).map(C=>{const[V,ce,He]=C.split(":");return _(K.cloud,K.region,V,ce,He)});if(J.length>0){It(!0);const C=new Promise(V=>setTimeout(V,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>It(!1))}},[K.cloud,K.region,r,Ye,_,F]),m.useEffect(()=>{if(!K.cloud)return;const R=p(K.cloud);if(R.length>0){const J=Q?CO(F,K.cloud):[];if(J.length>0){const C=R.filter(V=>J.includes(V.region_code));Z(C)}else Z(R);$e(!1)}else u?(Z([]),$e(!1)):$e(!0)},[K.cloud,d,u,p,F,Q]),m.useEffect(()=>{(async()=>{if(e){Ve(!0),it(!0),ct(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Ve(!1),it(!1),ct(!0)}}else N(),ct(!1)})()},[e,i,N]);const rs={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(rs),x("aws"),B(!1))},[n,e,x,y]),m.useEffect(()=>{K.cloud&&K.region&&K.tier&&$(K.cloud.toUpperCase(),K.region,K.tier.toUpperCase())},[K.cloud,K.region,K.tier,$]);const ss=!!(K.region&&K.tier),fr=(R,J)=>{const C=J?{...R,...J}:R,V=K.cloud||"aws",ce=K.region,He=Object.keys(D).length>0?D:Q_[V]||Q_.aws,Pt=C.num_workers||0;if(!ce)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let we="";const en=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?we="JOBS_COMPUTE_(PHOTON)":we="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?we="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?we="ALL_PURPOSE_COMPUTE_(PHOTON)":we="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":(we=`DLT_${en}_COMPUTE`,C.photon_enabled&&(we+="_(PHOTON)"));break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Be==="SERVERLESS"?we="SERVERLESS_SQL_COMPUTE":Be==="PRO"?we="SQL_PRO_COMPUTE":we="SQL_COMPUTE";break;case"VECTOR_SEARCH":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const yt=(C.fmapi_provider||"openai").toLowerCase();we=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[yt]||yt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":we="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":we="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"AI_PARSE":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":we="SERVERLESS_REAL_TIME_INFERENCE";break;default:we="JOBS_COMPUTE"}let An=.2;if(Q&&K.tier){const Be=Lg(F,V,ce,K.tier,we);Be>0?An=Be:An=He[we]||.2}else An=He[we]||.2;let be=0,qe=0,Qe=0,Ts,Er,is,te=.5,me=.5;if(Q&&C.driver_node_type){const Be=Pm(F,V,C.driver_node_type);Be>0&&(te=Be)}if(!te||te===.5){const Be=j.find(yt=>yt.id===C.driver_node_type||yt.name===C.driver_node_type);Be!=null&&Be.dbu_rate&&(te=Be.dbu_rate)}if(Q&&C.worker_node_type){const Be=Pm(F,V,C.worker_node_type);Be>0&&(me=Be)}if(!me||me===.5){const Be=j.find(yt=>yt.id===C.worker_node_type||yt.name===C.worker_node_type);Be!=null&&Be.dbu_rate&&(me=Be.dbu_rate)}const Ht=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Be;if(C.serverless_enabled?C.workload_type==="JOBS"?Be="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Be="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Be="DLT_CORE_COMPUTE":Be=we.replace("_(PHOTON)",""):Be=we.replace("_(PHOTON)",""),Q){const tn=iE(F,V,Be);if(tn!==2)return tn}const yt=H.find(tn=>{var bn,mr;return tn.sku_type===Be||((bn=tn.sku_type)==null?void 0:bn.toLowerCase())===Be.toLowerCase()||((mr=tn.sku_type)==null?void 0:mr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(yt==null?void 0:yt.multiplier)||2})(),mi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Pt)*Ht*mi;else{be=(te+me*Pt)*Ht;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Pt)*Ht*Cr*mi;else{be=(te+me*Pt)*Ht*Cr;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),yt=C.dbsql_warehouse_size||"Small",tn=C.dbsql_num_clusters||1;let bn=Y_[yt]||12;if(Q){const Ce=_O(F,V,Be,yt);Ce&&Ce.dbu_per_hour>0&&(bn=Ce.dbu_per_hour)}if(!bn||bn===(Y_[yt]||12)){const Ce=X.find(cn=>cn.id===yt||cn.name===yt);Ce!=null&&Ce.dbu_per_hour&&(bn=Ce.dbu_per_hour)}if(be=bn*tn,qe=be*Rt,Be!=="SERVERLESS"){const Ce=Q?cl(F,V,Be,yt):null;if(Ce){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,Ce.driver_instance_type,cn,Nr),Ja=k(V,ce,Ce.worker_instance_type,hi,gi);Qe=(Ce.driver_count*xi+Ce.worker_count*Ja)*tn*Rt}else if(C.driver_node_type){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,C.driver_node_type,cn,Nr),Ja=C.worker_node_type?k(V,ce,C.worker_node_type,hi,gi):0,yx=C.num_workers||0;Qe=(xi+Ja*yx)*tn*Rt}}break;case"VECTOR_SEARCH":const mr=C.vector_search_mode||"standard",at=C.vector_capacity_millions||1;let ln=mr==="storage_optimized"?64e6:2e6,qt=mr==="storage_optimized"?18.29:4;if(Q){const Ce=bO(F,V,mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_rate)}else{const Ce=he(mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_per_hour)}const mn=at*1e6,Fe=Math.ceil(mn/ln);Ts=Fe,be=Fe*qt,qe=be*Rt;const et=C.vector_search_storage_gb||0,Wt=Fe*20,wt=Math.max(0,et-Wt),Ut=.023,hn=wt*Ut;et>0&&(Er=hn,is={totalStorageGB:et,freeStorageGB:Wt,billableStorageGB:wt,pricePerGB:Ut});break;case"MODEL_SERVING":const er=C.model_serving_gpu_type||"cpu";let Dn=2;if(Q){const Ce=wO(F,V,er);Ce&&Ce.dbu_rate>0&&(Dn=Ce.dbu_rate)}if(Dn===2){const Ce=re.find(cn=>cn.id===er||cn.name===er);Ce!=null&&Ce.dbu_per_hour&&(Dn=Ce.dbu_per_hour)}const tr=C.model_serving_scale_out||"small",Fl=tr==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[tr]||4;be=Dn*Fl,qe=be*Rt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},JC=(zl[V]||zl.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;be=Ul*JC*Vl,qe=be*Rt;const $l=Math.min(C.lakebase_storage_gb||0,8192),ZC=C.lakebase_pitr_gb||0,e2=C.lakebase_snapshot_gb||0,Hl=.023,t2=$l*15*Hl,n2=ZC*8.7*Hl,r2=e2*3.91*Hl,gx=t2+n2+r2;gx>0&&(Er=gx,is={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const s2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ds=null;if(Q&&C.fmapi_model){const Ce=kO(F,V,C.fmapi_model,Xa);Ce&&(Ds=Ce.dbu_rate)}if(Ds===null&&C.fmapi_model){const Ce=xe(C.fmapi_model,Xa);Ce&&(xx?Ds=Ce.dbu_per_hour||null:Ds=Ce.dbu_per_1M_tokens||null)}Ds===null&&(xx?Ds=Xa==="provisioned_scaling"?200:50:Ds=Xa==="output_token"?3:1),qe=s2*Ds;break;case"FMAPI_PROPRIETARY":const i2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let jr=null;if(Q&&C.fmapi_provider&&C.fmapi_model){const Ce=C.fmapi_endpoint_type||"global",cn=C.fmapi_context_length||"long",Nr=SO(F,V,C.fmapi_provider,C.fmapi_model,Ce,cn,ql);Nr&&(jr=Nr.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ce=oe(C.fmapi_provider,C.fmapi_model,ql);Ce&&(vx?jr=Ce.dbu_per_hour||null:jr=Ce.dbu_per_1M_tokens||null)}if(jr===null)if(vx)jr=150;else switch(ql){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}qe=i2*jr;break;case"DATABRICKS_APPS":{const Ce=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ce]||.5,qe=be*Rt;break}case"AI_PARSE":{const Ce={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},cn=(C.ai_parse_complexity||"medium").toLowerCase();qe=(C.ai_parse_pages_thousands||0)*(Ce[cn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{qe=(C.shutterstock_images||0)*.857;break}default:qe=0}const Tn=isNaN(An)||An===void 0?0:An,Ls=isNaN(qe)||qe===void 0?0:qe,Ln=isNaN(Qe)||Qe===void 0?0:Qe,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ls*Tn,os=zr+Ln+_n;return{monthlyDBUs:Ls,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(os)?0:os,unitsUsed:Ts,dbuPerHour:be,dbuPrice:Tn,storageCost:_n>0?_n:void 0,storageDetails:is}},Vn=m.useMemo(()=>{let R=0,J=0,C=0,V=0;return r.forEach(ce=>{const He=fr(ce);R+=isNaN(He.monthlyDBUs)?0:He.monthlyDBUs,J+=isNaN(He.dbuCost)?0:He.dbuCost,C+=isNaN(He.vmCost)?0:He.vmCost,V+=isNaN(He.totalCost)?0:He.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:V}},[r,K.cloud,K.region,K.tier,s,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=fr(J,G[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,G,K.cloud,K.region,K.tier,se,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);const fi=m.useMemo(()=>{const R=[...r];return Me==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):Me==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):Me==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):Me==="cost"&&R.sort((J,C)=>{const V=fr(J).totalCost,ce=fr(C).totalCost;return V-ce}),Yt==="desc"&&R.reverse(),R},[r,Me,Yt,fr]),Md=R=>{Me===R?jt(J=>J==="asc"?"desc":"asc"):(Re(R),jt(R==="cost"?"desc":"asc"))},UC=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad)),VC=Me==="order",zC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const V=fi.findIndex(en=>en.line_item_id===J.id),ce=fi.findIndex(en=>en.line_item_id===C.id);if(V===-1||ce===-1)return;const He=[...fi],[Pt]=He.splice(V,1);He.splice(ce,0,Pt);const{lineItems:Rt}=ws.getState(),we=Rt.map(en=>{const An=He.findIndex(be=>be.line_item_id===en.line_item_id);return An>=0?{...en,display_order:An}:en});ws.setState({lineItems:we});try{await G4(e,He.map(en=>en.line_item_id))}catch{We.error("Failed to save reorder")}},[fi,e]),ox=async()=>{if(!K.estimate_name.trim()){We.error("Enter an estimate name");return}if(!K.region){We.error("Select a region");return}if(!K.tier){We.error("Select a Databricks tier");return}L(!0);try{const R={...K,cloud:K.cloud.toUpperCase(),tier:K.tier.toUpperCase()};if(e&&n)await h(e,R),B(!1),We.success("All changes saved");else{const J=await f(R);B(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),We.success("Estimate created")}}catch{We.error("Failed to save")}finally{L(!1)}},$C=async()=>{if(e){De(!0);try{const R=await qS(e),J=`${K.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(R,J),We.success("Exported to Excel")}catch{We.error("Export failed")}finally{De(!1)}}},HC=async()=>{if(e){Y(!0),_e(!1);try{await g(e),We.success("Estimate deleted"),t("/",{replace:!0})}catch{We.error("Failed to delete estimate"),Y(!1)}}},qC=async()=>{l(),We.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),We.success("Pricing data refreshed",{id:"refresh-data"})}catch{We.error("Failed to refresh data",{id:"refresh-data"})}},lx=R=>{I(R),ot(!0)},WC=async()=>{if(Ze){mt(!0);try{await v(Ze.line_item_id),We.success("Workload removed")}catch{We.error("Failed to delete")}finally{mt(!1),ot(!1),I(null)}}},cx=()=>{Ee.size!==0&&xt(!0)},GC=async()=>{mt(!0);try{let R=0;for(const J of Ee)await v(J),R++;We.success(`${R} workload(s) deleted`),Nt(new Set)}catch{We.error("Failed to delete some workloads")}finally{mt(!1),xt(!1)}},KC=R=>{Nt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},QC=()=>{Ee.size===r.length?Nt(new Set):Nt(new Set(r.map(R=>R.line_item_id)))},ux=()=>{Jn(!1),Nt(new Set)},dx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&We.success(`Workload "${J.workload_name}" cloned`)}catch{We.error("Failed to clone workload")}},YC=()=>{O?P(!0):t("/")},XC=()=>{P(!1),t("/")},px=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),q(J)},Il=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const V=new Set(M);V.add(R),q(V)}Pe(C)},fx=R=>{const J=R.workload_type||"";return["AI_PARSE","SHUTTERSTOCK_IMAGEAI","DATABRICKS_APPS"].includes(J)?null:R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null},mx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"AI_PARSE":J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K/mo`});break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break}return J},Bl=K.estimate_name.trim()&&K.region&&K.tier,hx=()=>{const R=[];return K.estimate_name.trim()||R.push("Estimate Name"),K.region||R.push("Region"),K.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:YC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:K.estimate_name,onChange:R=>{ut(J=>({...J,estimate_name:R.target.value})),Un()},placeholder:"Untitled Estimate",title:K.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:qC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Qr,{className:de("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:$C,disabled:ke||!e,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:de("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:de("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Bt(!nt),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Tu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${K.cloud.toUpperCase()} • ${K.region||"No region"} • ${K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier"}${K.customer_name?` • ${K.customer_name}`:""}`,children:[K.cloud.toUpperCase()," • ",K.region||"No region"," • ",K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier",K.customer_name&&` • ${K.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:nt?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(fs,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!nt&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&K.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ut(V=>({...V,cloud:R.id,region:"",tier:R.id==="azure"&&V.tier==="enterprise"?"":V.tier})),x(R.id),Un())},className:de("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",K.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":K.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:de("text-sm font-semibold",K.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),K.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.region,onChange:R=>{ut(J=>({...J,region:R.target.value})),y(R.target.value),Un()},className:de("w-full text-sm",!K.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.tier,onChange:R=>{ut(J=>({...J,tier:R.target.value})),Un()},className:de("w-full text-sm",!K.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),K.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${hx().join(", ")}`,className:de("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(p3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:Le?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ee.size," selected"]}),o.jsxs("button",{onClick:cx,disabled:Ee.size===0,className:de("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ee.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>Jn(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Ie("table"),className:de("p-1.5 rounded-md transition-colors",ze==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(b3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("cards"),className:de("p-1.5 rounded-md transition-colors",ze==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Ng,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("expanded"),className:de("p-1.5 rounded-md transition-colors",ze==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(ry,{className:"w-4 h-4"})})]}),ss&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Add"]})]})]}),e?pt&&!Ye?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[ze==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ee.size===r.length&&r.length>0,onChange:QC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>Md("name"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Le?"col-span-3":"col-span-4"),children:["Workload",Me==="name"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("type"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Me==="type"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Me==="cost"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]})]}),o.jsx(PC,{sensors:UC,collisionDetection:gC,onDragEnd:zC,modifiers:[IC],children:o.jsx(DC,{items:fi.map(R=>R.line_item_id),strategy:AC,children:fi.map(R=>{var Ts,Er,is;const J=G[R.line_item_id],C=J?{...R,...J}:R,V=fr(R,J),ce=W_(C.workload_type),He=ce.icon,Pt=M.has(R.line_item_id),Rt=Ee.has(R.line_item_id),we=C.workload_type||"",en=C.serverless_enabled||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",An=((Ts=s.find(te=>te.workload_type===we))==null?void 0:Ts.display_name)||we,be=fx(C),Qe=(()=>{const te={badges:[],details:[]};if(en&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(we))en||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),we==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(we==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(we==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(we==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&we==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else we==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!VC,children:o.jsxs("div",{ref:te=>{Zn.current[R.line_item_id]=te},children:[o.jsxs("div",{className:de("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&Le&&"bg-lava-600/5",Pt&&"bg-[var(--bg-tertiary)]"),onClick:()=>px(R.line_item_id),children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>KC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:de("flex items-center gap-3",Le?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:de("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",ce.bgColor),children:o.jsx(He,{className:de("w-4 h-4",ce.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:An,children:An})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Qe.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Qe.driver||"N/A"}, Workers: ${((Er=Qe.workers)==null?void 0:Er.count)||0}× ${((is=Qe.workers)==null?void 0:is.type)||"N/A"}`,children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Qe.details.join(" · "),children:Qe.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(K_,{costs:V,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&te&&V.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>dx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),lx(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:de("p-1 rounded transition-colors",Pt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Pt?o.jsx(fs,{className:"w-5 h-5 text-lava-600"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Pt&&(Qe.badges.length>0||Qe.driver||Qe.workers||Qe.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Qe.details.join(" · ")})]}),Pt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(we)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.vmCost)})]}),we==="LAKEBASE"&&V.storageCost!==void 0&&V.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(V.storageCost)})]}),we==="VECTOR_SEARCH"&&V.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[V.unitsUsed," unit",V.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(we)&&!en&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,as=C.avg_runtime_minutes||30,Ht=C.days_per_month||30,mi=C.hours_per_month||730,Ft=te?me*(as/60)*Ht:mi,Tn=(V.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const Fe=C.vector_capacity_millions||1,et=C.vector_search_mode||"standard",Wt=et==="storage_optimized"?64:2,wt=Math.ceil(Fe/Wt),Ut=et==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,er=wt*20,Dn=Math.max(0,hn-er),tr=Dn*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M"]})," vectors ÷ ",Wt,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," unit",wt!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[er," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(tr)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(tr)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const Fe=C.fmapi_quantity||1,et=C.fmapi_rate_type||"input_token",Wt=["provisioned_scaling","provisioned_entry"].includes(et),wt=Fe>0?V.monthlyDBUs/Fe:0,Ut=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Wt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Ut,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="LAKEBASE"){const Fe=C.lakebase_cu||1,et=C.lakebase_ha_nodes||1,Wt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ut=(Wt[K.cloud||"aws"]||Wt.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,er=C.lakebase_pitr_gb||0,Dn=C.lakebase_snapshot_gb||0,tr=.023,Ya=hn*15*tr,Fl=er*8.7*tr,Ul=Dn*3.91*tr,Vl=Ya+Fl+Ul,zl=Vl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ya)})]}),er>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[er," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(er*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Fl)})]}),Dn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Dn*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ul)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),zl&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Vl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="MODEL_SERVING"){const Fe=C.model_serving_gpu_type||"cpu",et=C.model_serving_scale_out||"small",wt=et==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[et]||4,Ut=wt>0&&V.dbuPerHour?V.dbuPerHour/wt:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DBSQL"){const Fe=C.dbsql_warehouse_size||"Small",et=C.dbsql_num_clusters||1,Wt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),wt=V.dbuPerHour?V.dbuPerHour/et:12,Ut=V.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt.toFixed(1)," DBU/hr)"]}),et>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${as}min ÷ 60 × ${Ht} days`:void 0,children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),Ut&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[Wt," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:fe(V.dbuCost)}),Ut&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DATABRICKS_APPS"){const Fe=(C.databricks_apps_size||"medium").toLowerCase(),et=Fe==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe.charAt(0).toUpperCase()+Fe.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="AI_PARSE"){const Fe=(C.ai_parse_complexity||"medium").toLowerCase(),Wt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[Fe]||62.5,wt=C.ai_parse_pages_thousands||0,Ut={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Wt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut[Fe]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="SHUTTERSTOCK_IMAGEAI"){const Fe=C.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}const Ls=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,os=V.vmCost>0&&!en,Be=K.cloud||"aws",yt=K.region||"",tn=j.find(Fe=>Fe.id===Ln||Fe.name===Ln),bn=j.find(Fe=>Fe.id===_n||Fe.name===_n),mr=A(Be,Ln)||(tn==null?void 0:tn.dbu_rate)||0,at=A(Be,_n)||(bn==null?void 0:bn.dbu_rate)||0,ln=yt&&Ln?k(Be,yt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,qt=yt&&_n?k(Be,yt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,mn=V.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:mr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:at.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),os&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(ln==null?void 0:ln.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(qt==null?void 0:qt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),os&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})})()})]})]}),Pt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(q_,{onReset:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),ze!=="table"&&fi.map((R,J)=>{var An;const C=G[R.line_item_id],V=C?{...R,...C}:R,ce=fr(R,C),He=M.has(R.line_item_id),Pt=fx(V),Rt=W_(V.workload_type),we=Rt.icon,en=ze==="expanded"||He;return o.jsx("div",{ref:be=>{Zn.current[R.line_item_id]=be},children:o.jsxs($t.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:de("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",ze==="cards"&&!He&&"py-3"),onClick:()=>px(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:de("rounded-lg flex items-center justify-center flex-shrink-0",ze==="cards"&&!He?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(we,{className:de(Rt.color,ze==="cards"&&!He?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:de("font-semibold truncate text-[var(--text-primary)]",ze==="cards"&&!He&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((An=s.find(be=>be.workload_type===R.workload_type))==null?void 0:An.display_name)||R.workload_type})})]}),o.jsx(K_,{costs:ce,size:ze==="cards"&&!He?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",qe=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&qe&&ce.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>dx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),lx(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),He?o.jsx(fs,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),en&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.vmCost)})]}),R.workload_type==="LAKEBASE"&&ce.storageCost!==void 0&&ce.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(ce.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&ce.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[ce.unitsUsed," unit",ce.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),mx(R).map((be,qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},qe)),Pt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Pt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=V.workload_type||"",qe=V.serverless_enabled||be==="DBSQL"&&(V.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Qe=V.runs_per_day&&V.avg_runtime_minutes&&!V.hours_per_month,Ts=V.runs_per_day||0,Er=V.avg_runtime_minutes||30,is=V.days_per_month||30,te=V.hours_per_month||730,me=Qe?Ts*(Er/60)*is:te,Ht=(ce.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const at=V.vector_capacity_millions||1,ln=V.vector_search_mode||"standard",qt=ln==="storage_optimized"?64:2,mn=Math.ceil(at/qt),Fe=ln==="storage_optimized"?18.29:4,et=V.vector_search_storage_gb||0,Wt=mn*20,wt=Math.max(0,et-Wt),Ut=wt*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M vectors"]})," ÷ ",qt,"⌉"]}),o.jsxs("span",{children:["= ",mn," units ×"]}),o.jsxs("span",{children:[Fe," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs × $",Ht]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),et>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Wt," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),et>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Ut)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const at=V.fmapi_quantity||0,ln=ce.monthlyDBUs/(at||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[ln.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="LAKEBASE"){const at=V.lakebase_cu||1,ln=V.lakebase_ha_nodes||1,qt=V.lakebase_storage_gb||0,mn=V.lakebase_pitr_gb||0,Fe=V.lakebase_snapshot_gb||0,et=.023,Wt=qt*15*et,wt=mn*8.7*et,Ut=Fe*3.91*et,hn=Wt+wt+Ut,er=hn>0,Dn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(Dn[K.cloud||"aws"]||Dn.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),qt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(qt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Wt)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(wt)})]}),Fe>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Fe*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),er&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="MODEL_SERVING"){const at=V.model_serving_scale_out||"small",qt=at==="custom"?V.model_serving_concurrency||4:{small:4,medium:12,large:40}[at]||4,mn=qt>0&&ce.dbuPerHour?ce.dbuPerHour/qt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",at,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="DATABRICKS_APPS"){const at=(V.databricks_apps_size||"medium").toLowerCase(),ln=at==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:at.charAt(0).toUpperCase()+at.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",ln," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="AI_PARSE"){const at=(V.ai_parse_complexity||"medium").toLowerCase(),qt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[at]||62.5,mn=V.ai_parse_pages_thousands||0,Fe={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[qt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe[at]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="SHUTTERSTOCK_IMAGEAI"){const at=V.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}const mi=V.num_workers||0,Ft=V.driver_node_type||"",Cr=V.worker_node_type||"",Tn=V.photon_enabled,Ls=ce.vmCost>0&&!qe,Ln=K.cloud||"aws",_n=K.region||"",zr=j.find(at=>at.id===Ft||at.name===Ft),os=j.find(at=>at.id===Cr||at.name===Cr),Be=A(Ln,Ft)||(zr==null?void 0:zr.dbu_rate)||0,yt=A(Ln,Cr)||(os==null?void 0:os.dbu_rate)||0,tn=_n&&Ft?k(Ln,_n,Ft,V.driver_pricing_tier||"on_demand",V.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?k(Ln,_n,Cr,V.worker_pricing_tier||"spot",V.worker_payment_option||"NA"):null,mr=ce.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Qe&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ts," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Tn?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ft,children:Be.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:yt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),Tn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),Ls&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ft,children:["$",(tn==null?void 0:tn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(ce.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),Ls&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(ce.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})})()})]})]})]}),He&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(q_,{onReset:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe}),ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onSave:()=>{ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onFormChange:be=>{ae(qe=>({...qe,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),ss?E?o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(nf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Lu,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(ms,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(_m,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),pt&&!Ye&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>vt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(sr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),ss?pt&&!Ye?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:de("text-3xl font-bold text-lava-600",Xe&&"opacity-60"),children:fe(Vn.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[fe(Vn.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:fe(Vn.totalDBUCost),children:G_(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Xe?"Loading...":fe(Vn.totalVMCost),children:Xe?"...":G_(Vn.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>ns(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:fe(V.totalCost),children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full transition-all",Pt,"group-hover:brightness-110"),style:{width:`${Math.max(He,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(ms,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Ct&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>ht(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>ht(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>{ht(!1),ns(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full",Pt),style:{width:`${Math.max(He,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>vt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>ht(!Ct),className:de("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Ct?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(ry,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(fs,{className:de("w-3 h-3 transition-transform",Ct?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[fe(Vn.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ee.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ee.size," workload",Ee.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ue&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',K.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:HC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Ze&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Ze.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),st&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ee.size," Workload",Ee.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ee.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>xt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:GC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),W&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(ms,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:XC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let k="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?k="JOBS_COMPUTE_(PHOTON)":k="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?k="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?k="ALL_PURPOSE_COMPUTE_(PHOTON)":k="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":(k=`DLT_${A}_COMPUTE`,e.photon_enabled&&(k+="_(PHOTON)"));break;case"DBSQL":const ue=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ue==="SERVERLESS"?k="SERVERLESS_SQL_COMPUTE":ue==="PRO"?k="SQL_PRO_COMPUTE":k="SQL_COMPUTE";break;case"VECTOR_SEARCH":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();k=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":k="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":k="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":k="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":k="DELTA_LIVE_TABLES_SERVERLESS";break;default:k="JOBS_COMPUTE"}let S=null;if(b){const ue=b(k);ue!==null&&ue>0&&(S=ue)}S===null&&(S=x[k]||.2),console.log(`[LiveEstimate] productType=${k}, dbuPrice=${S}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,$=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ue=g(e.driver_node_type);ue!==null&&ue>0&&(re=ue)}if(re===.5){const ue=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ue!=null&&ue.dbu_rate&&(re=ue.dbu_rate)}if(g&&e.worker_node_type){const ue=g(e.worker_node_type);ue!==null&&ue>0&&(le=ue)}if(le===.5){const ue=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ue!=null&&ue.dbu_rate&&(le=ue.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ue=k.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ue="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ue="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ue=`DLT_${A}_COMPUTE`)),v){const ve=v(ue);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var ot;return ve.sku_type===ue||ve.sku_type===k||((ot=ve.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DBSQL":const ue=l.find(Le=>Le.id===e.dbsql_warehouse_size||Le.name===e.dbsql_warehouse_size),_e=(ue==null?void 0:ue.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const Le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Jn=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Zn=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",ns=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Un=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Un){const rs=d(n,r,Un.driver_instance_type,Le,Jn),ss=d(n,r,Un.worker_instance_type,Zn,ns);$=(Un.driver_count*rs+Un.worker_count*ss)*ve*_}else if(e.driver_node_type){const rs=d(n,r,e.driver_node_type,Le,Jn),ss=e.worker_node_type?d(n,r,e.worker_node_type,Zn,ns):0,fr=e.num_workers||0;$=(rs+ss*fr)*ve*_}}break;case"VECTOR_SEARCH":const Ze=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,st=h(Ze),xt=(st==null?void 0:st.input_divisor)||(Ze==="storage_optimized"?64e6:2e6),lt=(st==null?void 0:st.dbu_per_hour)||(Ze==="storage_optimized"?18.29:4),mt=I*1e6,W=Math.ceil(mt/xt);j=W,T=W*lt,D=T*_;const P=e.vector_search_storage_gb||0,E=W*20,ie=Math.max(0,P-E),M=.023,q=ie*M;P>0&&(H=q,X={totalStorageGB:P,freeStorageGB:E,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Le=>Le.id===Se||Le.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,B=e.model_serving_scale_out||"small",ae=B==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[B]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Ve=e.lakebase_ha_nodes||1,pt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ye=(pt[n]||pt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ye*Ve,D=T*_;const ct=Math.min(e.lakebase_storage_gb||0,8192),Xe=15,It=ct*Xe,U=.023,Z=It*U,Te=e.lakebase_pitr_gb||0,K=Te*8.7*U,ut=e.lakebase_snapshot_gb||0,Bt=ut*3.91*U;(ct>0||Te>0||ut>0)&&(H=Z+K+Bt,X={totalStorageGB:ct,billableStorageGB:ct,dsuPerGB:Xe,totalDSU:It,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,vt=e.fmapi_rate_type||"input_token",Ct=["provisioned_scaling","provisioned_entry"].includes(vt),ht=e.fmapi_model?p(e.fmapi_model,vt):null;if(Ct){const Le=(ht==null?void 0:ht.dbu_per_hour)||(vt==="provisioned_scaling"?200:50);D=ft*Le}else{const Le=(ht==null?void 0:ht.dbu_per_1M_tokens)||(vt==="output_token"?3:1);D=ft*Le}break;case"FMAPI_PROPRIETARY":const ze=e.fmapi_quantity||0,Ie=e.fmapi_rate_type||"input_token",Me=Ie==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Yt=e.fmapi_context_length||"long",jt=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Ie,Re,Yt):null;if(Me){const Le=(jt==null?void 0:jt.dbu_per_hour)||150;D=ze*Le}else{let Le=jt==null?void 0:jt.dbu_per_1M_tokens;if(!Le)switch(Ie){case"output_token":Le=321.43;break;case"cache_read":Le=8.57;break;case"cache_write":Le=85.71;break;default:Le=21.43}D=ze*Le}break;case"DATABRICKS_APPS":const Ee=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ee]||.5,D=T*_;break;case"AI_PARSE":{const Le={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Jn=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Le[Jn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{D=(e.shutterstock_images||0)*.857;break}default:D=0}const F=D*S,Q=H!==void 0&&!isNaN(H)?H:0,N=F+$+Q,se=isNaN(F)?0:F,pe=isNaN($)?0:$,L=isNaN(N)?se:N,ke=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(S)?.15:S;return{monthlyDBUs:ke,dbuCost:se,vmCost:pe,totalCost:L,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:Q>0?Q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function gs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?aE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of gs(Z_,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of gs(Z_,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of gs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of gs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of gs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),p=d.length>0?gs(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=gs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=gs(Qm(l),e.tiersPerCloud);for(const p of u){const f=Hu(t,l),h=f.length>0?gs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[k,A]=m.useState({current:0,total:0}),[S,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),$=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:F,isPricingBundleLoaded:Q,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:ke,getVectorSearchRate:De}=ws();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,F),[j,F]),Y=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ue=m.useMemo(()=>{const M=new Set(w.map(q=>q.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,q,Se)=>{const Pe=Q&&F.modelServingRates?Object.entries(F.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,B])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:B.dbu_rate}}):xe;return{cloud:M,region:q,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,B)=>{if(Q&&F.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${B}`,ae=F.fmapiDatabricksRates[G];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,B)},getFMAPIProprietaryRate:(O,B,G,ae,je)=>{if(Q&&F.fmapiProprietaryRates){const Ve=ae||"global",pt=je||"all",it=`${M.toLowerCase()}:${O.toLowerCase()}:${B.toLowerCase()}:${Ve}:${pt}:${G}`,Ye=F.fmapiProprietaryRates[it];if(Ye)return{dbu_per_1M_tokens:Ye.is_hourly?void 0:Ye.dbu_rate,dbu_per_hour:Ye.is_hourly?Ye.dbu_rate:void 0}}return ke(O,B,G)},getVectorSearchRate:O=>{if(Q&&F.vectorSearchRates){const B=`${M.toLowerCase()}:${O}`,G=F.vectorSearchRates[B];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>Q?Pm(F,M,O):null,getPhotonMultiplier:O=>Q?iE(F,M,O):null,getDBUPrice:O=>Q?Lg(F,M,q,Se,O):null,getDBSQLWarehouseConfig:(O,B)=>Q?cl(F,M,O,B):null}},[X,re,le,he,xe,oe,Q,F,se,L,ke,De]),ve=async M=>{var K,ut,nt,Bt,ft,vt,Ct,ht,ze;const{environment:q,workloadType:Se,config:Pe}=M,O=_e(q.cloud,q.region,q.tier),B={...Pe,workload_type:Se},G=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Ie=cl(F,q.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Ie){const Me=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.driver_instance_type,Me,Re));const Yt=Pe.dbsql_worker_pricing_tier||"on_demand",jt=Pe.dbsql_worker_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.worker_instance_type,Yt,jt))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(G.push(pe(q.cloud,q.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&G.push(pe(q.cloud,q.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const ae=performance.now(),je=y8(B,O),Ve=performance.now()-ae,pt=performance.now();let it=null,Ye,ct;const Xe=j8(Se,Pe),It=N8(M);try{const Ie=await fetch(Xe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(It)});if(Ie.ok){const Me=await Ie.json();ct=Me;const Re=Me.data||Me,Yt=((K=Re.dbu_calculation)==null?void 0:K.dbu_per_month)??Re.dbu_per_month??(((ut=Re.dbu_calculation)==null?void 0:ut.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),jt=((nt=Re.dbu_calculation)==null?void 0:nt.dbu_cost_per_month)??((ft=(Bt=Re.total_cost)==null?void 0:Bt.breakdown)==null?void 0:ft.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ee=((vt=Re.vm_costs)==null?void 0:vt.vm_cost_per_month)??((ht=(Ct=Re.total_cost)==null?void 0:Ct.breakdown)==null?void 0:ht.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let Nt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?Nt=Re.total_cost.cost_per_month??jt+Ee:typeof Re.total_cost=="number"?Nt=Re.total_cost:Nt=Re.total_cost_per_month??jt+Ee,it={monthlyDBUs:Yt,dbuCost:jt,vmCost:Ee,totalCost:Nt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Me,parsed:it})}else{const Me=await Ie.text();try{const Re=JSON.parse(Me);Ye=`HTTP ${Ie.status}: ${((ze=Re.detail)==null?void 0:ze.message)||Re.detail||Re.message||Me}`}catch{Ye=`HTTP ${Ie.status}: ${Me}`}}}catch(Ie){Ye=Ie instanceof Error?Ie.message:"Unknown error"}const U=performance.now()-pt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,it,g),$e=Te<=g&&!Ye;return{testCase:M,localResult:je,apiResult:it,apiError:Ye,apiRequestBody:It,apiRawResponse:ct,localTimeMs:Ve,apiTimeMs:U,matches:$e,totalCostDiffPercent:Te,discrepancies:Z}},ot=()=>{D.current=!0,i(!0)},Ze=()=>{D.current=!1,i(!1)},I=()=>{$.current=!0,l(!0),D.current=!1,i(!1)},st=async()=>{for(;D.current&&!$.current;)await new Promise(M=>setTimeout(M,100))},xt=async()=>{r(!0),i(!1),l(!1),D.current=!1,$.current=!1,t([]),A({current:0,total:Y.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:q,tier:Se,workloadType:Pe,serverless:O,photon:B,driverNode:G,workerNode:ae,numWorkers:je,runsPerDay:Ve,avgRuntime:pt,daysPerMonth:it,hoursPerMonth:Ye}=S,ct={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:q,tier:Se},config:{serverless_enabled:O,photon_enabled:B,driver_node_type:G,worker_node_type:ae,num_workers:je,runs_per_day:Ve,avg_runtime_minutes:pt,days_per_month:it,hours_per_month:Ye,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Xe=await ve(ct);t([Xe]),u(null),r(!1)},mt=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,q=e.filter(G=>!G.matches).length,Se=e.filter(G=>G.apiError).length,Pe=e.length>0?e.reduce((G,ae)=>G+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,ae)=>G+ae.apiTimeMs,0)/e.length:0,B={};return e.forEach(G=>{const ae=G.testCase.category;B[ae]||(B[ae]={passed:0,failed:0}),G.matches?B[ae].passed++:B[ae].failed++}),{passed:M,failed:q,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:B}},[e]),W=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],q=e.map(G=>{var ae;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((ae=G.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Se=[M.join(","),...q.map(G=>G.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),B=document.createElement("a");B.href=O,B.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,B.click()},P=M=>{const q=new Set(d);q.has(M)?q.delete(M):q.add(M),p(q)},E=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(cD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(ZL,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:W,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(LD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(e3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Ze,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:xt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:S.cloud,onChange:M=>T({...S,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:S.region,onChange:M=>T({...S,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Km(F,S.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:S.tier,onChange:M=>T({...S,tier:M.target.value}),className:"w-full text-sm",children:Qm(S.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:S.workloadType,onChange:M=>T({...S,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.serverless,onChange:M=>T({...S,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.photon,onChange:M=>T({...S,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:S.driverNode,onChange:M=>T({...S,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:S.workerNode,onChange:M=>T({...S,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:S.numWorkers,onChange:M=>T({...S,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:S.runsPerDay,onChange:M=>T({...S,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:S.avgRuntime,onChange:M=>T({...S,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:S.daysPerMonth,onChange:M=>T({...S,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(jD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Km(F,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:q=>{q.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ue.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Q?"text-green-500":"text-yellow-500"}`,children:[Q?o.jsx(Au,{className:"w-5 h-5"}):o.jsx(ms,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:mt.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:mt.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:mt.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[mt.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[mt.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(mt.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(mt.byCategory).map(([M,{passed:q,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[q," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx($t.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${k.current/k.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[k.current," / ",k.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:Y.map(M=>{const q=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${q&&!q.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>q&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[q&&(Se?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q?E(q.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q!=null&&q.apiResult?E(q.apiResult.totalCost):q!=null&&q.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:q?o.jsxs("span",{className:q.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[q.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):q?q.matches?o.jsx(Au,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(C3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),q&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(q.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:E(q.localResult.totalCost)})]}),q.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",q.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),q.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:q.apiError})}):q.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(q.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:E(q.apiResult.totalCost)})]})]}):null]})]}),q.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:q.discrepancies.map((O,B)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},B))})]})})]}),q.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(q.apiRawResponse,null,2)})})]}),q.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(q.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:q.testCase.environment,config:q.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(jN,{children:o.jsxs(wi,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(wi,{index:!0,element:o.jsx(u8,{})}),o.jsx(wi,{path:"calculator",element:o.jsx(X_,{})}),o.jsx(wi,{path:"calculator/:id",element:o.jsx(X_,{})}),o.jsx(wi,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(wi,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();rf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(DN,{children:[o.jsx(A8,{}),o.jsx(EP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-C1GlXIct.js b/lakemeter/backend/static/assets/index-C1GlXIct.js new file mode 100644 index 00000000..59be0a6e --- /dev/null +++ b/lakemeter/backend/static/assets/index-C1GlXIct.js @@ -0,0 +1,354 @@ +function a2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var hs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},Ke={};/** + * @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 hl=Symbol.for("react.element"),o2=Symbol.for("react.portal"),l2=Symbol.for("react.fragment"),c2=Symbol.for("react.strict_mode"),u2=Symbol.for("react.profiler"),d2=Symbol.for("react.provider"),p2=Symbol.for("react.context"),f2=Symbol.for("react.forward_ref"),m2=Symbol.for("react.suspense"),h2=Symbol.for("react.memo"),g2=Symbol.for("react.lazy"),_x=Symbol.iterator;function x2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Ia.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;sb(Xm,Ia.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ob=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ob.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=F[se];if(0>>1;ses(De,N))ws(Y,De)?(F[se]=Y,F[w]=N,se=w):(F[se]=De,F[ke]=N,se=ke);else if(ws(Y,N))F[se]=Y,F[w]=N,se=w;else break e}}return Q}function s(F,Q){var N=F.sortIndex-Q.sortIndex;return N!==0?N:F.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(F){for(var Q=n(u);Q!==null;){if(Q.callback===null)r(u);else if(Q.startTime<=F)r(u),Q.sortIndex=Q.expirationTime,t(c,Q);else break;Q=n(u)}}function k(F){if(v=!1,_(F),!g)if(n(c)!==null)g=!0,xe(A);else{var Q=n(u);Q!==null&&oe(k,Q.startTime-F)}}function A(F,Q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Q),p=n(c);p!==null&&(!(p.expirationTime>Q)||F&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var pe=se(p.expirationTime<=Q);Q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(Q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var ke=n(u);ke!==null&&oe(k,ke.startTime-Q),L=!1}return L}finally{p=null,f=N,h=!1}}var S=!1,T=null,D=-1,$=5,j=-1;function H(){return!(e.unstable_now()-j<$)}function X(){if(T!==null){var F=e.unstable_now();j=F;var Q=!0;try{Q=T(!0,F)}finally{Q?re():(S=!1,T=null)}}else S=!1}var re;if(typeof y=="function")re=function(){y(X)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,he=le.port2;le.port1.onmessage=X,re=function(){he.postMessage(null)}}else re=function(){b(X,0)};function xe(F){T=F,S||(S=!0,re())}function oe(F,Q){D=b(function(){F(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_continueExecution=function(){g||h||(g=!0,xe(A))},e.unstable_forceFrameRate=function(F){0>F||125se?(F.sortIndex=N,t(u,F),n(c)===null&&F===n(u)&&(v?(x(D),D=-1):v=!0,oe(k,N-se))):(F.sortIndex=pe,t(c,F),g||h||(g=!0,xe(A))),F},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(F){var Q=f;return function(){var N=f;f=Q;try{return F.apply(this,arguments)}finally{f=N}}}})(mb);fb.exports=mb;var P2=fb.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 R2=m,cr=P2;function ee(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"),sf=Object.prototype.hasOwnProperty,A2=/^[: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]*$/,kx={},Sx={};function T2(e){return sf.call(Sx,e)?!0:sf.call(kx,e)?!1:A2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function L2(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 D2(e,t,n,r){if(t===null||typeof t>"u"||L2(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 Fn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new Fn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new Fn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new Fn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new Fn(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){yn[e]=new Fn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new Fn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new Fn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new Fn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new Fn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new Fn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function M2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Fd(e.type,!1),e;case 11:return e=Fd(e.type.render,!1),e;case 1:return e=Fd(e.type,!0),e;default:return""}}function cf(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 Xi:return"Fragment";case Yi:return"Portal";case af:return"Profiler";case rh:return"StrictMode";case of:return"Suspense";case lf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cf(e.type)||"Memo";case Bs:t=e._payload,e=e._init;try{return cf(e(t))}catch{}}return null}function O2(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 cf(t);case 8:return t===rh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function I2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kl(e){e._valueTracker||(e._valueTracker=I2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 uf(e,t){var n=t.checked;return Ot({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ri(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function df(e,t){bb(e,t);var n=ri(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")?pf(e,t.type,n):t.hasOwnProperty("defaultValue")&&pf(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 pf(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},B2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){B2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Cb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var F2=Ot({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 hf(e,t){if(t){if(F2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gf(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 xf=null;function ah(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vf=null,ha=null,ga=null;function Rx(e){if(e=vl(e)){if(typeof vf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vf(e.stateNode,e.type,t))}}function jb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Nb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(Y2(e)/X2|0)|0}var Yl=64,Xl=4194304;function ho(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function tj(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=wo),Fx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Pj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Aj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Fx);case"textInput":return e=t.data,e===Fx&&Ux?null:e;default:return null}}function Tj(e,t){if(Ji)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=Hs=null,Ji=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Vj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var a=qx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Sf=null,So=null,Ef=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ef||Zi==null||Zi!==Yc(r)||(r=Zi,"selectionStart"in r&&hh(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}),So&&Wo(So,r)||(So=r,r=ru(Sf,"onSelect"),0na||(e.current=Af[na],Af[na]=null,na--)}function bt(e,t){na++,Af[na]=e.current,e.current=t}var si={},Pn=li(si),qn=li(!1),Mi=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Wn(e){return e=e.childContextTypes,e!=null}function iu(){St(qn),St(Pn)}function Zx(e,t,n){if(Pn.current!==si)throw Error(ee(168));bt(Pn,t),bt(qn,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,O2(e)||"Unknown",s));return Ot({},n,r)}function au(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Mi=Pn.current,bt(Pn,e),bt(qn,qn.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,St(qn),St(Pn),bt(Pn,e)):St(qn),bt(qn,n)}var ps=null,Ju=!1,Zd=!1;function u1(e){ps===null?ps=[e]:ps.push(e)}function Zj(e){Ju=!0,u1(e)}function ci(){if(!Zd&&ps!==null){Zd=!0;var e=0,t=dt;try{var n=ps;for(dt=1;e>=a,s-=a,xs=1<<32-Mr(t)+s|n<D?($=T,T=null):$=T.sibling;var j=f(x,T,_[D],k);if(j===null){T===null&&(T=$);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j,T=$}if(D===_.length)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],k),T!==null&&(y=i(T,y,D),S===null?A=T:S.sibling=T,S=T);return Tt&&_i(x,D),A}for(T=r(x,T);D<_.length;D++)$=h(T,x,D,_[D],k),$!==null&&(e&&$.alternate!==null&&T.delete($.key===null?D:$.key),y=i($,y,D),S===null?A=$:S.sibling=$,S=$);return e&&T.forEach(function(H){return t(x,H)}),Tt&&_i(x,D),A}function v(x,y,_,k){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var S=A=null,T=y,D=y=0,$=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?($=T,T=null):$=T.sibling;var H=f(x,T,j.value,k);if(H===null){T===null&&(T=$);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),S===null?A=H:S.sibling=H,S=H,T=$}if(j.done)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,k),j!==null&&(y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return Tt&&_i(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,k),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return e&&T.forEach(function(X){return t(x,X)}),Tt&&_i(x,D),A}function b(x,y,_,k){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var A=_.key,S=y;S!==null;){if(S.key===A){if(A=_.type,A===Xi){if(S.tag===7){n(x,S.sibling),y=s(S,_.props.children),y.return=x,x=y;break e}}else if(S.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Bs&&r0(A)===S.type){n(x,S.sibling),y=s(S,_.props),y.ref=so(x,S,_),y.return=x,x=y;break e}n(x,S);break}else t(x,S);S=S.sibling}_.type===Xi?(y=Ti(_.props.children,x.mode,k,_.key),y.return=x,x=y):(k=Ic(_.type,_.key,_.props,null,x.mode,k),k.ref=so(x,y,_),k.return=x,x=k)}return a(x);case Yi:e:{for(S=_.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=op(_,x.mode,k),y.return=x,x=y}return a(x);case Bs:return S=_._init,b(x,y,S(_._payload),k)}if(mo(_))return g(x,y,_,k);if(Za(_))return v(x,y,_,k);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=ap(_,x.mode,k),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=m1(!0),h1=m1(!1),cu=li(null),uu=null,ia=null,yh=null;function _h(){yh=ia=uu=null}function bh(e){var t=cu.current;St(cu),e._currentValue=t}function Df(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 va(e,t){uu=e,yh=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Hn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(uu===null)throw Error(ee(308));ia=e,uu.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var ji=null;function wh(e){ji===null?ji=[e]:ji.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Es(e,r)}function Es(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 Fs=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 ys(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Es(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Es(e,n)}function Ac(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Ot({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Bi|=a,e.lanes=a,e.memoizedState=p}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{dt=n,tp.transition=r}}function D1(){return Sr().memoizedState}function r5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Or(n,e,r,s),I1(n,t,r)}}function s5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Br(l,a)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Or(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===Mt||t!==null&&t===Mt}function O1(e,t){Eo=fu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:kr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},i5={readContext:kr,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:o0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lc(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lc(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=r5.bind(null,Mt,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:a0,useDebugValue:Ah,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=a0(!1),t=e[0];return e=n5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Mt,s=qr();if(Tt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Ii&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,o0(k1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=fn.identifierPrefix;if(Tt){var n=vs,r=xs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Gr]=t,e[Qo]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(a=gf(n,r),n){case"dialog":kt("cancel",e),kt("close",e),s=r;break;case"iframe":case"object":case"embed":kt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=pu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Tt)return kn(t),null}else 2*Kt()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Kt(),t.sibling=null,n=Lt.current,bt(Lt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?rr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function f5(e,t){switch(xh(t),t.tag){case 1:return Wn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),St(qn),St(Pn),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eh(t),null;case 13:if(St(Lt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return St(Lt),null;case 4:return Ca(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var ac=!1,En=!1,m5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function $f(e,t,n){try{n()}catch(r){zt(e,t,r)}}var v0=!1;function h5(e,t){if(Cf=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jf={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(k){zt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$f(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hf(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Qo],delete t[Rf],delete t[Xj],delete t[Jj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qf(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=su));else if(r!==4&&(e=e.child,e!==null))for(qf(e,t,n),e=e.sibling;e!==null;)qf(e,t,n),e=e.sibling}function Wf(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(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),Ho(e)):Jd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&$f(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){zt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ms(e,t,n),En=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new m5),t.forEach(function(r){var s=S5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Kt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,xu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,a=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cKt()-Mh?Ai(e,0):Dh|=n),Gn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=Es(e,t),e!==null&&(gl(e,t,n),Gn(e,n))}function k5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function S5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qn.current)Hn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Hn=!1,d5(e,t,n);Hn=!!(e.flags&131072)}else Hn=!1,Tt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Wn(r)?(i=!0,au(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Of(t,r,e,n),t=Ff(null,t,r,!0,i,n)):(t.tag=0,Tt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=C5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=f0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(ir=Xs(t.stateNode.containerInfo.firstChild),ar=t,Tt=!0,Dr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Cs(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Lf(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Nf(r,s)?a=null:i!==null&&Nf(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,a,n),t.child;case 6:return e===null&&Lf(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),f0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,bt(cu,r._currentValue),r._currentValue=a,i!==null)if(Br(i.value,a)){if(i.children===s.children&&!qn.current){t=Cs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ys(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Df(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Df(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Dc(e,t),t.tag=1,Wn(r)?(e=!0,au(t)):e=!1,va(t,n),B1(t,r,s),Of(t,r,s,n),Ff(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function E5(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 br(e,t,n,r){return new E5(e,t,n,r)}function Fh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C5(e){if(typeof e=="function")return Fh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Ic(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Fh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ti(n.children,s,i,t);case rh:a=8,s|=8;break;case af:return e=br(12,n,t,s|2),e.elementType=af,e.lanes=i,e;case of:return e=br(13,n,t,s),e.elementType=of,e.lanes=i,e;case lf:return e=br(19,n,t,s),e.elementType=lf,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:a=10;break e;case xb:a=9;break e;case sh:a=11;break e;case ih:a=14;break e;case Bs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ti(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=br(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function ap(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function op(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function j5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,a,l,c){return e=new j5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function N5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=dr;var la=pb.exports,N0=la;rf.createRoot=N0.createRoot,rf.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function D5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||D5()})}function _u(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 Ua(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 M5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Xf(v.location,b,x);u=d()+1;let _=R0(y,u),k=v.createHref(y);try{a.pushState(_,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(k)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Xf(v.location,b,x);u=d();let _=R0(y,u),k=v.createHref(y);a.replaceState(_,"",k),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Zt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,p),c=b,()=>{s.removeEventListener(P0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var A0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(A0||(A0={}));function O5(e,t,n){return n===void 0&&(n="/"),I5(e,t,n)}function I5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let a=fw(e);B5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Zt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Zt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:q5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of mw(i.path))s(i,a,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=mw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function B5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:W5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const F5=/^:[\w-]+$/,U5=3,V5=2,z5=1,$5=10,H5=-2,T0=e=>e==="*";function q5(e,t){let n=e.split("/"),r=n.length;return n.some(T0)&&(r+=H5),t&&(r+=V5),n.filter(s=>!T0(s)).reduce((s,i)=>s+(F5.test(i)?U5:i===""?z5:$5),r)}function W5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function G5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function Q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Y5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 X5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,J5=e=>X5.test(e);function Z5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(J5(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=L0(n.substring(1),"/"):i=L0(n,t)}else i=t;return{pathname:i,search:nN(r),hash:rN(s)}}function L0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lp(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 eN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=eN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Zt(!s.pathname||!s.pathname.includes("?"),lp("?","pathname","search",s)),Zt(!s.pathname||!s.pathname.includes("#"),lp("#","pathname","hash",s)),Zt(!s.search||!s.search.includes("#"),lp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=Z5(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),tN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function sN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const iN=["get",...xw];new Set(iN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=gw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const cN=m.createContext(null);function uN(e){let t=m.useContext(Rs).outlet;return t&&m.createElement(cN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Rs),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Hi),{matches:s}=m.useContext(Rs),{pathname:i}=bl(),a=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function dN(e,t){return pN(e,t)}function pN(e,t,n,r){_l()||Zt(!1);let{navigator:s}=m.useContext(Hi),{matches:i}=m.useContext(Rs),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Zt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=O5(e,{pathname:h}),v=xN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function fN(){let e=bN(),t=sN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const mN=m.createElement(fN,null);class hN extends m.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?m.createElement(Rs.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function gN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Rs.Provider,{value:t},r)}function xN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Zt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||mN,c&&(u<0&&f===0?(kN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(gN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(hN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function vN(e){let t=m.useContext(Wh);return t||Zt(!1),t}function yN(e){let t=m.useContext(aN);return t||Zt(!1),t}function _N(e){let t=m.useContext(Rs);return t||Zt(!1),t}function Sw(e){let t=_N(),n=t.matches[t.matches.length-1];return n.route.id||Zt(!1),n.route.id}function bN(){var e;let t=m.useContext(vw),n=yN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wN(){let{router:e}=vN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const D0={};function kN(e,t,n){D0[e]||(D0[e]=!0)}function SN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function EN(e){return uN(e.context)}function wi(e){Zt(!1)}function CN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Zt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(Hi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function jN(e){let{children:t,location:n}=e;return dN(Jf(t),n)}new Promise(()=>{});function Jf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jf(r.props.children,i));return}r.type!==wi&&Zt(!1),!r.props.index||!r.props.children||Zt(!1);let a={id:r.props.id||i.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&&(a.children=Jf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zf(){return Zf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function PN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RN(e,t){return e.button===0&&(!t||t==="_self")&&!PN(e)}const AN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TN="6";try{window.__reactRouterVersion=TN}catch{}const LN="startTransition",M0=w2[LN];function DN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=L5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&M0?M0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>SN(r),[r]),m.createElement(CN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const MN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ON=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=NN(t,AN),{basename:h}=m.useContext(Hi),g,v=!1;if(typeof u=="string"&&ON.test(u)&&(g=u,MN))try{let _=new URL(window.location.href),k=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=qh(k.pathname,h);k.origin===_.origin&&A!=null?u=A+k.search+k.hash:v=!0}catch{}let b=oN(u,{relative:s}),x=IN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zf({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function IN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=cd(),u=bl(),d=bw(e,{relative:a});return m.useCallback(p=>{if(RN(p,n)){p.preventDefault();let f=r!==void 0?r:_u(u)===_u(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let BN={data:""},FN=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||BN},UN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VN=/\/\*[^]*?\*\/| +/g,B0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ls={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},zN=(e,t,n,r,s)=>{let i=Ew(e),a=ls[i]||(ls[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ls[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=UN.exec(u.replace(VN,""));)d[4]?f.shift():d[3]?(p=d[3].replace(B0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(B0," ").trim();return f[0]})(e);ls[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&ls.g?ls.g:null;return n&&(ls.g=ls[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ls[a],t,r,l),a},$N=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return zN(n.unshift?n.raw?$N(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,FN(t.target),t.g,t.o,t.k)}let Cw,em,tm;ud.bind({g:1});let js=ud.bind({k:1});function HN(e,t,n,r){$s.p=t,Cw=e,em=n,tm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Cw(u,l)}return s}}var qN=e=>typeof e=="function",wu=(e,t)=>qN(e)?e(t):e,WN=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),GN=20,Gh="default",Nw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Nw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:GN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Bc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Aw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),KN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},QN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},YN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||QN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},XN=(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)||WN()}),wl=e=>(t,n)=>{let r=XN(t,e,n);return dd(r.toasterId||KN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Aw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Aw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var JN=1e3,ZN=(e,t="default")=>{let{toasts:n,pausedAt:r}=YN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=JN)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,k)=>k_.visible).slice(...h?[y+1]:[0,y]).reduce((_,k)=>_+(k.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},eP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,tP=js` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,nP=js` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,rP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${eP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${tP} 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: ${nP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,sP=js` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,iP=ui("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: ${sP} 1s linear infinite; +`,aP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,oP=js` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,lP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${aP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${oP} 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; + } +`,cP=ui("div")` + position: absolute; +`,uP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,dP=js` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,pP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${dP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,fP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(pP,null,t):t:n==="blank"?null:m.createElement(uP,null,m.createElement(iP,{...r}),n!=="loading"&&m.createElement(cP,null,n==="error"?m.createElement(rP,{...r}):m.createElement(lP,{...r})))},mP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,hP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,gP="0%{opacity:0;} 100%{opacity:1;}",xP="0%{opacity:1;} 100%{opacity:0;}",vP=ui("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; +`,yP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,_P=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[gP,xP]:[mP(n),hP(n)];return{animation:t?`${js(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${js(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},bP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?_P(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(fP,{toast:e}),a=m.createElement(yP,{...e.ariaProps},wu(e.message,e));return m.createElement(vP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});HN(m.createElement);var wP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},kP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},SP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,EP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=ZN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=kP(p,f);return m.createElement(wP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?SP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(bP,{toast:d,position:p}))}))},We=an;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const pd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class CP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function jP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(CP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const NP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Qh(PP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(jP,{isPresent:n,children:e})),o.jsx(pd.Provider,{value:d,children:e})};function PP(){return new Map}function Tw(e=!0){const t=m.useContext(pd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const uc=e=>e.key||"";function F0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Lw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Tw(a),u=m.useMemo(()=>F0(e),[e]),d=a&&!l?[]:u.map(uc),p=m.useRef(!0),f=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Lw(()=>{p.current=!1,f.current=u;for(let k=0;k{const A=uc(k),S=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach($=>{$||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(NP,{isPresent:S,initial:!p.current||n?void 0:!1,custom:S?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:S?void 0:T,children:k},A)})})},or=e=>e;let Dw=or;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},_s=e=>e*1e3,bs=e=>e/1e3,RP={useManualTiming:!1};function AP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],TP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=dc.reduce((x,y)=>(x[y]=AP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,TP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=a[y];return x[y]=(k,A=!1,S=!1)=>(n||g(),_.schedule(k,A,S)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function LP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const DP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||DP.has(e)}let Iw=e=>!ku(e);function MP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{MP(require("@emotion/is-prop-valid").default)}catch{}function OP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function IP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const fd=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>sl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function BP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function FP(e){const{initial:t,animate:n}=BP(e,m.useContext(fd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const UP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),zP="framerAppearId",Fw="data-"+tg(zP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function $P(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(fd),c=m.useContext(Ow),u=m.useContext(pd),d=m.useContext(Yh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(Uw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&HP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Fw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Lw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),ng.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function HP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function qP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&LP(e);function l(u,d){let p;const f={...m.useContext(Yh),...u,layoutId:WP(u)},{isStatic:h}=f,g=FP(u),v=r(u,h);if(!h&&Xh){GP();const b=KP(f);p=b.MeasureLayout,g.visualElement=$P(s,v,f,t,b.ProjectionNode)}return o.jsxs(fd.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,VP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[UP]=s,c}function WP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function GP(e,t){m.useContext(Ow).strict}function KP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const QP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(QP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),YP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XP=e=>rm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Fc(e){const t=jn(e)?e.get():e;return YP(t)?t.toValue():t}function JP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:ZP(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const zw=e=>(t,n)=>{const r=m.useContext(fd),s=m.useContext(pd),i=()=>JP(e,t,r,s);return n?i():Qh(i)};function ZP(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Fc(i[f]);let{initial:a,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!md(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),eR=$w("var(--"),ig=e=>eR(e)?tR.test(e.split("/*")[0].trim()):!1,tR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Ns=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>Ns(0,1,e)},pc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Jr=kl("%"),Ae=kl("px"),nR=kl("vh"),rR=kl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},sR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},iR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:pc,scaleX:pc,scaleY:pc,scaleZ:pc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:$0,originY:$0,originZ:Ae},H0={...za,transform:Math.round},ag={...sR,...iR,zIndex:H0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:H0},aR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},oR=Va.length;function lR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function fR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return qi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Yw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function mR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],hR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(qi.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{mR(n,r),Et.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},gR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!jn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function xR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return og(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,xR(e,t)),r}function yR(e,t){const n={},r=vR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function _R(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function bR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(rg(n)?_R:yR)(r,i,a,n),u=OP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function wR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...rg(r)?hR:gR,preloadedFeatures:e,useRender:bR(s),createVisualElement:t,Component:r};return qP(a)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class SR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(kR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class ER extends SR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function pg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function fg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",CR={linearEasing:void 0};function jR(e,t){const n=Jh(e);return()=>{var r;return(r=CR[t])!==null&&r!==void 0?r:n()}}const Eu=jR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Eu()?tk(e,t):mg(e)?xo(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const Rr={x:!1,y:!1};function sk(){return Rr.x||Rr.y}function NR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=NR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function PR(e,t,n={}){const[r,s,i]=ik(e,n),a=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,RR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AR(e){return RR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function up(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const TR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(vo.has(n))return;up(n,"down");const s=Q0(()=>{up(n,"up")}),i=()=>up(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function LR(e,t,n={}){const[r,s,i]=ik(e,n),a=l=>{const c=l.currentTarget;if(!Y0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!Y0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!AR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>TR(u,s),s)}),i}function DR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Va]);let Uc;function MR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(xn.isProcessing||RP.useManualTiming?xn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(MR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class IR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=OR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),Et.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new IR(e,t)}function BR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function FR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=XP(i[a]);BR(e,a,l)}}function UR(e){return!!(jn(e)&&e.add)}function am(e,t){const n=e.getValue("willChange");if(UR(n))return n.add(t)}function ck(e){return e.props[Fw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,VR=1e-7,zR=12;function $R(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=uk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>VR&&++l$R(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),fk=Sl(.33,1.53,.69,.99),yg=pk(fk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=pk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function HR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const Po=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qR(e){return e==null}const WR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&WR.test(n)&&n.startsWith(e)||t&&!qR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},GR=e=>Ns(0,255,e),dp={...za,transform:e=>Math.round(GR(e))},Pi={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dp.transform(e)+", "+dp.transform(t)+", "+dp.transform(n)+", "+Po(il.transform(r))+")"};function KR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const om={test:wg("#"),parse:KR,transform:Pi.transform},ua={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(Po(t))+", "+Jr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>Pi.test(e)||om.test(e)||ua.test(e),parse:e=>Pi.test(e)?Pi.parse(e):ua.test(e)?ua.parse(e):om.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Pi.transform(e):ua.transform(e)},QR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(QR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",XR="var",JR="var(",J0="${}",ZR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(ZR,c=>(Sn.test(c)?(r.color.push(i),s.push(bk),n.push(Sn.parse(c))):c.startsWith(JR)?(r.var.push(i),s.push(XR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return ol(e).values}function kk(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function tA(e){const t=wk(e);return kk(e)(t.map(eA))}const ai={test:YR,parse:wk,createTransformer:kk,getAnimatableNone:tA},nA=new Set(["brightness","contrast","saturate","opacity"]);function rA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=nA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const sA=/\b([a-z-]*)\(.*?\)/gu,lm={...ai,getAnimatableNone:e=>{const t=e.match(sA);return t?t.map(rA).join(" "):e}},iA={...ag,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:lm,WebkitFilter:lm},kg=e=>iA[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aA=new Set(["auto","none","0"]);function oA(e,t,n){let r=0,s;for(;re===za||e===Ae,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},lA=new Set(["x","y","z"]),cA=Va.filter(e=>!lA.has(e));function uA(e){const t=[];return cA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Li=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Li).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=uA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Li.forEach(e=>e.complete()),Li.clear()}function Ck(){Li.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function dA(){Ck(),Ek()}class Sg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Li.add(this),cm||(cm=!0,Et.read(Ck),Et.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),pA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fA(e){const t=pA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=fA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return jk(a)?parseFloat(a):a}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),mA={test:e=>e==="auto",parse:e=>e},Rk=[za,Ae,Jr,Is,rR,nR,mA],nv=e=>Rk.find(Pk(e));class Ak extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function hA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(xA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const vA=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>vA?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!gA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Dt=(e,t,n)=>e+(t-e)*n;function pp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function yA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pp(c,l,e+1/3),i=pp(c,l,e),a=pp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function Cu(e,t){return n=>n>0?t:e}const fp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},_A=[om,Pi,ua],bA=e=>_A.find(t=>t.test(e));function sv(e){const t=bA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=yA(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Cu(e,t);const s={...n};return i=>(s.red=fp(n.red,r.red,i),s.green=fp(n.green,r.green,i),s.blue=fp(n.blue,r.blue,i),s.alpha=Dt(n.alpha,r.alpha,i),Pi.transform(s))},wA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(wA),dm=new Set(["none","hidden"]);function kA(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SA(e,t){return n=>Dt(e,t,n)}function Eg(e){return typeof e=="number"?SA:typeof e=="string"?ig(e)?Cu:Sn.test(e)?iv:jA:Array.isArray(e)?Lk:typeof e=="object"?Sn.test(e)?iv:EA:Cu}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Eg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function CA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?kA(e,t):El(Lk(CA(r,s),s.values),n):Cu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Dt(e,t,n):Eg(e)(e,t)}const NA=5;function Mk(e,t,n){const r=Math.max(t-NA,0);return lk(n-e(r),t-r)}const Vt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mp=.001;function PA({duration:e=Vt.duration,bounce:t=Vt.bounce,velocity:n=Vt.velocity,mass:r=Vt.mass}){let s,i,a=1-t;a=Ns(Vt.minDamping,Vt.maxDamping,a),e=Ns(Vt.minDuration,Vt.maxDuration,bs(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=pm(u,a),g=Math.exp(-p);return mp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=pm(Math.pow(u,2),a);return(-s(u)+mp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-mp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=AA(s,i,l);if(e=_s(e),isNaN(c))return{stiffness:Vt.stiffness,damping:Vt.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const RA=12;function AA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function DA(e){let t={velocity:Vt.velocity,stiffness:Vt.stiffness,damping:Vt.damping,mass:Vt.mass,isResolvedFromDuration:!1,...e};if(!av(e,LA)&&av(e,TA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Ns(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Vt.mass,stiffness:s,damping:i}}else{const n=PA(e);t={...t,...n,mass:Vt.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=Vt.visualDuration,t=Vt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=DA({...n,velocity:-bs(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=bs(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Vt.restSpeed.granular:Vt.restSpeed.default),s||(s=y?Vt.restDelta.granular:Vt.restDelta.default);let _;if(v<1){const A=pm(x,v);_=S=>{const T=Math.exp(-v*x*S);return a-T*((g+v*x*b)/A*Math.sin(A*S)+b*Math.cos(A*S))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=S=>{const T=Math.exp(-v*x*S),D=Math.min(A*S,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const k={calculatedDuration:h&&p||null,next:A=>{const S=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?_s(g):Mk(_,A,S));const D=Math.abs(T)<=r,$=Math.abs(a-S)<=s;l.done=D&&$}return l.value=l.done?a:S,l},toString:()=>{const A=Math.min(ek(k),sm),S=tk(T=>k.next(A*T).value,A,30);return A+"ms "+S}};return k}function ov({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),k=D=>{const $=y(D),j=_(D);f.done=Math.abs($)<=u,f.value=f.done?x:j};let A,S;const T=D=>{h(f.value)&&(A=D,S=Ok({keyframes:[f.value,g(f.value)],velocity:Mk(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let $=!1;return!S&&A===void 0&&($=!0,k(D),T(D)),A!==void 0&&D>=A?S.next(D-A):(!$&&k(D),f)}}}const MA=Sl(.42,0,1,1),OA=Sl(0,0,.58,1),Ik=Sl(.42,0,.58,1),IA=e=>Array.isArray(e)&&typeof e[0]!="number",BA={linear:or,easeIn:MA,easeInOut:Ik,easeOut:OA,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:fk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return BA[e];return e};function FA(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=FA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(Ns(e[0],e[i-1],d)):u}function VA(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Dt(n,1,s))}}function zA(e){const t=[0];return VA(t,e.length-1),t}function $A(e,t){return e.map(n=>n*t)}function HA(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=IA(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},a=$A(n&&n.length===t.length?n:zA(t),e),l=UA(a,t,{ease:Array.isArray(s)?s:HA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const qA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Et.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:Zr.now()}},WA={decay:ov,inertia:ov,tween:ju,keyframes:ju,spring:Ok},GA=e=>e/100;class Cg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=fg(n)?n:WA[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=El(GA,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,k=i;if(h){const D=Math.min(this.currentTime,d)/p;let $=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&$--,$=Math.min($,h+1),!!($%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(k=a)),_=Ns(0,1,j)*p}const A=y?{done:!1,value:c[0]}:k.next(_);l&&(A.value=l(A.value));let{done:S}=A;!y&&u!==null&&(S=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return T&&s!==void 0&&(A.value=xd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?bs(t.calculatedDuration):0}get time(){return bs(this.currentTime)}set time(t){t=_s(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=bs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=qA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const KA=new Set(["opacity","clipPath","filter","transform"]);function QA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const YA=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,XA=2e4;function JA(e){return fg(e.type)||e.type==="spring"||!nk(e.ease)}function ZA(e,t){const n=new Cg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Eu()&&eT(i)&&(i=Bk[i]),JA(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=ZA(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=QA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(xd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return bs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return bs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_s(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return or;const{animation:r}=n;G0(r,t)}return or}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new Cg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=_s(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return YA()&&r&&KA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const tT={type:"spring",stiffness:500,damping:25,restSpeed:10},nT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),rT={type:"keyframes",duration:.8},sT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iT=(e,{keyframes:t})=>t.length>2?rT:qi.has(e)?e.startsWith("scale")?nT(t[1]):tT:sT;function aT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>a=>{const l=pg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-_s(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};aT(l)||(d={...d,...iT(e,d)}),d.duration&&(d.duration=_s(d.duration)),d.repeatDelay&&(d.repeatDelay=_s(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=xd(d.keyframes,l);if(f!==void 0)return Et.update(()=>{d.onUpdate(f),d.onComplete()}),new ER([])}return!i&&cv.supports(d)?new cv(d):new Cg(d)};function oT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&oT(d,p))continue;const g={delay:n,...pg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,p,Et);y!==null&&(g.startTime=y,v=!0)}}am(e,p),f.start(jg(p,f,h,e.shouldReduceMotion&&ok.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{Et.update(()=>{l&&FR(e,l)})}),u}function fm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return lT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function lT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(cT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(fm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function cT(e,t){return e.sortNodePosition(t)}function uT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>fm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=fm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const dT=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>uT(e,n,r)))}function hT(e){let t=mT(e),n=uv(),r=!0;const s=c=>(u,d)=>{var p;const f=gd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=Uk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&k,$=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&($=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const F=e.getValue(oe);F&&(F.liveStyle=!1)};for(const oe in re){const F=H[oe],Q=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;rm(F)&&rm(Q)?N=!Zw(F,Q):N=F!==Q,N?F!=null?le(oe):f.add(oe):F!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(S&&T)||$)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function gT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function vi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:vi(!0),whileInView:vi(),whileHover:vi(),whileTap:vi(),whileDrag:vi(),whileFocus:vi(),exit:vi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xT extends di{constructor(t){super(t),t.animationState||(t.animationState=hT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let vT=0;class yT extends di{constructor(){super(...arguments),this.id=vT++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const _T={animation:{Feature:xT},exit:{Feature:yT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const bT=e=>t=>hg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,bT(n),r)}const dv=(e,t)=>Math.abs(e-t);function wT(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=gp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=wT(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=hp(f,this.transformPagePoint),Et.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gp(p.type==="pointercancel"?this.lastMoveEventInfo:hp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=hp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,gp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function hp(e,t){return t?{point:t(e.point)}:e}function pv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gp({point:e},t){return{point:e,delta:pv(e,zk(t)),offset:pv(e,kT(t)),velocity:ST(t,.1)}}function kT(e){return e[0]}function zk(e){return e[e.length-1]}function ST(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const i=bs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const $k=1e-4,ET=1-$k,CT=1+$k,Hk=.01,jT=0-Hk,NT=0+Hk;function ur(e){return e.max-e.min}function PT(e,t,n){return Math.abs(e-t)<=n}function fv(e,t,n,r=.5){e.origin=r,e.originPoint=Dt(t.min,t.max,e.origin),e.scale=ur(n)/ur(t),e.translate=Dt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=ET&&e.scale<=CT||isNaN(e.scale))&&(e.scale=1),(e.translate>=jT&&e.translate<=NT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){fv(e.x,t.x,n.x,r?r.originX:void 0),fv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ur(t)}function RT(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ur(t)}function To(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function AT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Dt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TT(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),Ns(0,1,n)}function MT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function OT(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),Gt=()=>({x:bv(),y:bv()});function gr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function IT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function BT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function xp(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!xp(e)||!xp(t)||!xp(n)}function ki(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Ev=1.0000000000001;function FT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,s=.5){const i=Dt(e.min,e.max,s);gm(e,t,n,i,r)}function fa(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(BT(e.getBoundingClientRect(),t))}function UT(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,VT=new WeakMap;class zT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Gt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ur(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&Et.postRender(()=>g(d,p)),am(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=$T(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&Et.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!fc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=AT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=TT(s.layoutBox,n):this.constraints=!1,this.elastic=OT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=MT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=UT(r,s.root,this.visualElement.getTransformPagePoint());let a=LT(s.layout.layoutBox,i);if(n){const l=n(IT(a));this.hasMutatedConstraints=!!l,l&&(a=qk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!fc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return am(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!fc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Dt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=DT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!fc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Dt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;VT.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),Et.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function fc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $T(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HT extends di{constructor(t){super(t),this.removeGroupControls=or,this.removeListeners=or,this.controls=new zT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||or}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&Et.postRender(()=>e(t,n))};class qT extends di{constructor(){super(...arguments),this.removePointerDownListener=or}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&Et.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},WT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Dt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class GT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;fR(KT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||Et.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Tw(),r=m.useContext(Kh);return o.jsx(GT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const KT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:WT};function QT(e,t,n){const r=jn(e)?e:al(e);return r.start(jg("",r,t,n)),r.animation}function YT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XT=(e,t)=>e.depth-t.depth;class JT{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XT),this.isDirty=!1,this.children.forEach(t)}}function ZT(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return Et.read(r,!0),()=>ii(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],eL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Ae.test(e);function tL(e,t,n,r,s,i){s?(e.opacity=Dt(0,n.opacity!==void 0?n.opacity:1,nL(r)),e.opacityExit=Dt(t.opacity!==void 0?t.opacity:1,0,rL(r))):i&&(e.opacity=Dt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Tv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Tv(e.x,t.x),Tv(e.y,t.y)}function Lv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function sL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Jr.test(t)&&(t=parseFloat(t),t=Dt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Dt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,a){sL(e,t[n],t[r],t[s],t.scale,i,a)}const iL=["x","scaleX","originX"],aL=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,iL,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,aL,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Bv(e,t){return e.min===t.min&&e.max===t.max}function oL(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Fv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Uv(e){return ur(e.x)/ur(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lL{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function cL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,vp=["","X","Y","Z"],uL={visibility:"hidden"},zv=1e3;let dL=0;function yp(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Et,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=dL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(mL),this.nodes.forEach(yL),this.nodes.forEach(_L),this.nodes.forEach(hL),yo&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=ZT(f,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||EL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const k={...pg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=k/1e3;qv(p.x,a.x,A),qv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&oL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Gt()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,tL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Et.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=QT(0,zv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Gt();const p=ur(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=ur(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new lL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&yp("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function pL(e){e.updateLayout()}function fL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(f);f.min=r[p].min,f.max=f.min+h}):rS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=Gt();To(g,n.layoutBox,f.layoutBox);const v=Gt();To(v,r,h.layoutBox),eS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function mL(e){yo&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function gL(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function xL(e){e.isLayoutDirty=!1}function vL(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yL(e){e.resolveTargetDelta()}function _L(e){e.calcProjection()}function bL(e){e.resetSkewAndRotation()}function wL(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Dt(t.translate,0,n),e.scale=Dt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Dt(t.min,n.min,r),e.max=Dt(t.max,n.max,r)}function kL(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function SL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const EL={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:or;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function CL(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!PT(Uv(t),Uv(n),.2)}function jL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const NL=nS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_p={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!_p.current){const e=new NL({});e.mount(window),e.setOptions({layoutScroll:!0}),_p.current=e}return _p.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),PL={pan:{Feature:qT},drag:{Feature:HT,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class RL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class AL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=LR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,bp=new WeakMap,LL=e=>{const t=xm.get(e.target);t&&t(e)},DL=e=>{e.forEach(LL)};function ML({root:e,...t}){const n=e||document;bp.has(n)||bp.set(n,{});const r=bp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(DL,{root:e,...t})),r[s]}function OL(e,t,n){const r=ML(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const IL={some:0,all:1};class BL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:IL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return OL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(FL(t,n))&&this.startObserver()}unmount(){}}function FL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const UL={inView:{Feature:BL},tap:{Feature:TL},focus:{Feature:AL},hover:{Feature:RL}},VL={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function zL(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const $L=[...Rk,Sn,ai],HL=e=>$L.find(Pk(e)),Jv=new WeakMap;function qL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class WL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||zL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Et.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Gt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!HL(s)&&ai.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends WL{constructor(){super(...arguments),this.KeyframeResolver=Ak}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function GL(e){return window.getComputedStyle(e)}class KL extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}else{const r=GL(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){og(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class QL extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Gt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const YL=(e,t)=>rg(e)?new QL(t):new KL(t,{allowProjection:e!==m.Fragment}),XL=wR({..._T,...UL,...PL,...VL},YL),$t=IP(XL);function JL({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const ZL=m.forwardRef(JL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const sD=m.forwardRef(rD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const wp=m.forwardRef(aD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const kp=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const pD=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(fD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Au=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sr=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const fs=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(ED);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const jD=m.forwardRef(CD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Tu=m.forwardRef(RD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(AD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(DD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const BD=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(FD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ms=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef(WD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Sp=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const o3=m.forwardRef(a3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Lu=m.forwardRef(l3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(g3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(w3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const S3=m.forwardRef(k3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(j3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const A3={},iy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(A3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},T3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function L3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var D3=typeof Object.is=="function"?Object.is:L3,M3=La.useState,O3=La.useEffect,I3=La.useLayoutEffect,B3=La.useDebugValue;function F3(e,t){var n=t(),r=M3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return I3(function(){s.value=n,s.getSnapshot=t,Ep(s)&&i({inst:s})},[e,n,t]),O3(function(){return Ep(s)&&i({inst:s}),e(function(){Ep(s)&&i({inst:s})})},[e]),B3(n),n}function Ep(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!D3(e,n)}catch{return!0}}function U3(e,t){return t()}var V3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?U3:F3;xS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:V3;gS.exports=xS;var z3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,$3=z3;function H3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var q3=typeof Object.is=="function"?Object.is:H3,W3=$3.useSyncExternalStore,G3=vd.useRef,K3=vd.useEffect,Q3=vd.useMemo,Y3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=G3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,q3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=W3(e,i[0],i[1]);return K3(function(){a.hasValue=!0,a.value=l},[l]),Y3(l),l};mS.exports=hS;var X3=mS.exports;const J3=qu(X3),vS={},{useDebugValue:Z3}=pn,{useSyncExternalStoreWithSelector:eM}=J3;let ay=!1;const tM=e=>e;function nM(e,t=tM,n){(vS?"production":void 0)!=="production"&&n&&!ay&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ay=!0);const r=eM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Z3(r),r}const oy=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?T3(e):e,n=(r,s)=>nM(t,r,s);return Object.assign(n,t),n},rM=e=>e?oy(e):oy;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:sM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=sM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=bd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Kn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ur("ArrayBuffer");function iM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const aM=bd("string"),Kn=bd("function"),wS=bd("number"),Nl=e=>e!==null&&typeof e=="object",oM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},lM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},cM=Ur("Date"),uM=Ur("File"),dM=Ur("Blob"),pM=Ur("FileList"),fM=e=>Nl(e)&&Kn(e.pipe),mM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Kn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Kn(e.toString)&&e.toString()==="[object FormData]"))},hM=Ur("URLSearchParams"),[gM,xM,vM,yM]=["ReadableStream","Request","Response","Headers"].map(Ur),_M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Da(e)&&e!==Ri;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const a=e&&kS(n,i)||i;Hc(n[a])&&Hc(s)?n[a]=wm(n[a],s):Hc(s)?n[a]=wm({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Kn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),wM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},SM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},EM=(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},CM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),NM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},PM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},RM=Ur("HTMLFormElement"),AM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),TM=Ur("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},LM=e=>{ES(e,(t,n)=>{if(Kn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Kn(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+"'")})}})},DM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},MM=()=>{},OM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function IM(e){return!!(e&&Kn(e.append)&&e[_S]==="FormData"&&e[yd])}const BM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},FM=Ur("AsyncFunction"),UM=e=>e&&(Nl(e)||Kn(e))&&Kn(e.then)&&Kn(e.catch),CS=((e,t)=>e?setImmediate:t?((n,r)=>(Ri.addEventListener("message",({source:s,data:i})=>{s===Ri&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Kn(Ri.postMessage)),VM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ri):typeof process<"u"&&process.nextTick||CS,zM=e=>e!=null&&Kn(e[yd]),z={isArray:$a,isArrayBuffer:bS,isBuffer:jl,isFormData:mM,isArrayBufferView:iM,isString:aM,isNumber:wS,isBoolean:oM,isObject:Nl,isPlainObject:Hc,isEmptyObject:lM,isReadableStream:gM,isRequest:xM,isResponse:vM,isHeaders:yM,isUndefined:Da,isDate:cM,isFile:uM,isBlob:dM,isRegExp:TM,isFunction:Kn,isStream:fM,isURLSearchParams:hM,isTypedArray:jM,isFileList:pM,forEach:Pl,merge:wm,extend:bM,trim:_M,stripBOM:wM,inherits:kM,toFlatObject:SM,kindOf:_d,kindOfTest:Ur,endsWith:EM,toArray:CM,forEachEntry:NM,matchAll:PM,isHTMLForm:RM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:LM,toObjectSet:DM,toCamelCase:AM,noop:MM,toFiniteNumber:OM,findKey:kS,global:Ri,isContextDefined:SS,isSpecCompliantForm:IM,toJSONObject:BM,isAsyncFn:FM,isThenable:UM,setImmediate:CS,asap:VM,isIterable:zM};function Oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}z.inherits(Oe,Error,{toJSON:function(){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:z.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Oe.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Oe,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Oe.from=(e,t,n,r,s,i)=>{const a=Object.create(jS);z.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Oe.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const $M=null;function km(e){return z.isPlainObject(e)||z.isArray(e)}function PS(e){return z.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function HM(e){return z.isArray(e)&&!e.some(km)}const qM=z.toFlatObject(z,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!z.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!z.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&z.isSpecCompliantForm(t);if(!z.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(z.isDate(g))return g.toISOString();if(z.isBoolean(g))return g.toString();if(!c&&z.isBlob(g))throw new Oe("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(g)||z.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(z.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(z.isArray(g)&&HM(g)||(z.isFileList(g)||z.endsWith(v,"[]"))&&(x=z.toArray(g)))return v=PS(v),x.forEach(function(_,k){!(z.isUndefined(_)||_===null)&&t.append(a===!0?cy([v],k,i):a===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(qM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!z.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),z.forEach(g,function(x,y){(!(z.isUndefined(x)||x===null)&&s.call(t,x,z.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!z.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function WM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function AS(e,t,n){if(!t)return e;const r=n&&n.encode||WM;z.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=z.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){z.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},GM=typeof URLSearchParams<"u"?URLSearchParams:Rg,KM=typeof FormData<"u"?FormData:null,QM=typeof Blob<"u"?Blob:null,YM={isBrowser:!0,classes:{URLSearchParams:GM,FormData:KM,Blob:QM},protocols:["http","https","file","blob","url","data"]},Ag=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,XM=Ag&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),JM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ZM=Ag&&window.location.href||"http://localhost",e4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ag,hasStandardBrowserEnv:XM,hasStandardBrowserWebWorkerEnv:JM,navigator:Sm,origin:ZM},Symbol.toStringTag,{value:"Module"})),Cn={...e4,...YM};function t4(e,t){return wd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&z.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function n4(e){return z.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function r4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&z.isArray(s)?s.length:a,c?(z.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!z.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&z.isArray(s[a])&&(s[a]=r4(s[a])),!l)}if(z.isFormData(e)&&z.isFunction(e.entries)){const n={};return z.forEachEntry(e,(r,s)=>{t(n4(r),s,n,0)}),n}return null}function s4(e,t,n){if(z.isString(e))try{return(t||JSON.parse)(e),z.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return s?JSON.stringify(LS(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return t4(t,this.formSerializer).toString();if((l=z.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),s4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Oe.from(l,Oe.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const i4=z.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"]),a4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&i4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},py=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:z.isArray(e)?e.map(qc):String(e)}function o4(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 l4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cp(e,t,n,r,s){if(z.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!z.isString(t)){if(z.isString(r))return t.indexOf(r)!==-1;if(z.isRegExp(r))return r.test(t)}}function c4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function u4(e,t){const n=z.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Qn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=z.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=qc(l))}const a=(l,c)=>z.forEach(l,(u,d)=>i(u,d,c));if(z.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(z.isString(t)&&(t=t.trim())&&!l4(t))a(a4(t),n);else if(z.isObject(t)&&z.isIterable(t)){let l={},c,u;for(const d of t){if(!z.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?z.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=z.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return o4(s);if(z.isFunction(n))return n.call(this,s,r);if(z.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=z.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Cp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=z.findKey(r,a);l&&(!n||Cp(r,r[l],l,n))&&(delete r[l],s=!0)}}return z.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Cp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return z.forEach(this,(s,i)=>{const a=z.findKey(r,i);if(a){n[a]=qc(s),delete n[i];return}const l=t?c4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return z.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&z.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(s=>r.set(s)),r}static accessor(t){const r=(this[py]=this[py]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(u4(s,a),r[l]=!0)}return z.isArray(t)?t.forEach(i):i(t),this}};Qn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);z.reduceDescriptors(Qn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});z.freezeMethods(Qn);function jp(e,t){const n=this||Rl,r=t||n,s=Qn.from(r.headers);let i=r.data;return z.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Oe.call(this,e??"canceled",Oe.ERR_CANCELED,t,n),this.name="CanceledError"}z.inherits(Ha,Oe,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Oe("Request failed with status code "+n.status,[Oe.ERR_BAD_REQUEST,Oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function d4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function p4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Du=(e,t,n=3)=>{let r=0;const s=p4(50,250);return f4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},fy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>z.asap(()=>e(...t)),m4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,h4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];z.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),z.isString(r)&&l.push(`path=${r}`),z.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),z.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function g4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function x4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!g4(t);return e&&(r||n==!1)?x4(e,t):t}const hy=e=>e instanceof Qn?{...e}:e;function Ui(e,t){t=t||{};const n={};function r(u,d,p,f){return z.isPlainObject(u)&&z.isPlainObject(d)?z.merge.call({caseless:f},u,d):z.isPlainObject(d)?z.merge({},d):z.isArray(d)?d.slice():d}function s(u,d,p,f){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!z.isUndefined(d))return r(void 0,d)}function a(u,d){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(hy(u),hy(d),p,!0)};return z.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);z.isUndefined(f)&&p!==l||(n[d]=f)}),n}const IS=e=>{const t=Ui({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Qn.from(a),t.url=AS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),z.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(z.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&z.isFunction(r)&&(r=r(t)),r||r!==!1&&m4(t.url))){const c=s&&i&&h4.read(i);c&&a.set(s,c)}return t},v4=typeof XMLHttpRequest<"u",y4=v4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const a=Qn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Qn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Oe("Request aborted",Oe.ECONNABORTED,e,b)),b=null)},b.onerror=function(k){const A=k&&k.message?k.message:"Network Error",S=new Oe(A,Oe.ERR_NETWORK,e,b);S.event=k||null,r(S),b=null},b.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||TS;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new Oe(k,A.clarifyTimeoutError?Oe.ETIMEDOUT:Oe.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&z.forEach(a.toJSON(),function(k,A){b.setRequestHeader(A,k)}),z.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Du(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Du(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=d4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Oe("Unsupported protocol "+y+":",Oe.ERR_BAD_REQUEST,e));return}b.send(i||null)})},_4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Oe?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Oe(`timeout ${t} of ms exceeded`,Oe.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>z.asap(l),c}},b4=function*(e,t){let n=e.byteLength;if(n{const s=w4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=z,S4=(({Request:e,Response:t})=>({Request:e,Response:t}))(z.global),{ReadableStream:vy,TextEncoder:yy}=z.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},E4=e=>{e=z.merge.call({skipUndefined:!0},S4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),a=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(Cn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&_y(()=>z.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Oe(`Response type '${g}' is not supported`,Oe.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(z.isBlob(g))return g.size;if(z.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(z.isArrayBufferView(g)||z.isArrayBuffer(g))return g.byteLength;if(z.isURLSearchParams(g)&&(g=g+""),z.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=z.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:k,onDownloadProgress:A,onUploadProgress:S,responseType:T,headers:D,withCredentials:$="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=_4([y,_&&_.toAbortSignal()],k),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let he;try{if(S&&u&&b!=="get"&&b!=="head"&&(he=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(z.isFormData(x)&&(pe=se.headers.get("content-type"))&&D.setContentType(pe),se.body){const[L,ke]=fy(he,Du(my(S)));x=gy(se.body,xy,L,ke)}}z.isString($)||($=$?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?$:void 0};re=i&&new n(v,oe);let F=await(i?H(re,j):H(v,oe));const Q=d&&(T==="stream"||T==="response");if(d&&(A||Q&&le)){const se={};["status","statusText","headers"].forEach(De=>{se[De]=F[De]});const pe=z.toFiniteNumber(F.headers.get("content-length")),[L,ke]=A&&fy(pe,Du(my(A),!0))||[];F=new r(gy(F.body,xy,L,()=>{ke&&ke(),le&&le()}),se)}T=T||"text";let N=await p[z.findKey(p,T)||"text"](F,g);return!Q&&le&&le(),await new Promise((se,pe)=>{MS(se,pe,{data:N,headers:Qn.from(F.headers),status:F.status,statusText:F.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Oe("Network Error",Oe.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Oe.from(xe,xe&&xe.code,g,re)}}},C4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=C4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:E4(t)),d=u;return u};BS();const Tg={http:$M,xhr:y4,fetch:{get:BS}};z.forEach(Tg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,j4=e=>z.isFunction(e)||e===null||e===!1;function N4(e,t){e=z.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(by).join(` +`):" "+by(a[0]):"as no adapter specified";throw new Oe("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:N4,adapters:Tg};function Np(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function wy(e){return Np(e),e.headers=Qn.from(e.headers),e.data=jp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Np(e),r.data=jp.call(e,e.transformResponse,r),r.headers=Qn.from(r.headers),r},function(r){return DS(r)||(Np(e),r&&r.response&&(r.response.data=jp.call(e,e.transformResponse,r.response),r.response.headers=Qn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+US+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Oe(s(a," has been removed"+(n?" in "+n:"")),Oe.ERR_DEPRECATED);return n&&!ky[a]&&(ky[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function P4(e,t,n){if(typeof e!="object")throw new Oe("options must be an object",Oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Oe("option "+i+" must be "+c,Oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Oe("Unknown option "+i,Oe.ERR_BAD_OPTION)}}const Wc={assertOptions:P4,validators:kd},Hr=Wc.validators;let Di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ui(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(z.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&z.merge(i.common,i[n.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Qn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 VS(function(s){t=s}),cancel:t}}};function A4(e){return function(n){return e.apply(null,n)}}function T4(e){return z.isObject(e)&&e.isAxiosError===!0}const Em={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(Em).forEach(([e,t])=>{Em[t]=e});function zS(e){const t=new Di(e),n=yS(Di.prototype.request,t);return z.extend(n,Di.prototype,t,{allOwnKeys:!0}),z.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Ui(e,s))},n}const Qt=zS(Rl);Qt.Axios=Di;Qt.CanceledError=Ha;Qt.CancelToken=R4;Qt.isCancel=DS;Qt.VERSION=US;Qt.toFormData=wd;Qt.AxiosError=Oe;Qt.Cancel=Qt.CanceledError;Qt.all=function(t){return Promise.all(t)};Qt.spread=A4;Qt.isAxiosError=T4;Qt.mergeConfig=Ui;Qt.AxiosHeaders=Qn;Qt.formToJSON=e=>LS(z.isHTMLForm(e)?new FormData(e):e);Qt.getAdapter=FS.getAdapter;Qt.HttpStatusCode=Em;Qt.default=Qt;const{Axios:B8,AxiosError:F8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=Qt,ye=Qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Cm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const L4=()=>{jm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Cm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const D4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},M4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},O4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},I4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},B4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},F4=async e=>{await ye.delete(`/estimates/${e}`)},U4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},V4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},z4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},$4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},H4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},q4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},W4=async e=>{await ye.delete(`/line-items/${e}`)},G4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},K4=async e=>{await ye.post("/estimates/reorder",e)},Q4=async()=>{const{data:e}=await ye.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},Y4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},X4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},J4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Z4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},eO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},Ey=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},tO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},nO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Cy=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},rO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},sO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},iO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},aO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},oO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},lO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},cO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},uO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},dO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},pO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},fO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ay=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?mO(n):pO(n);case"ALL_PURPOSE":return t?hO(n):fO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return rE(n);case"DATABRICKS_APPS":return eE(n);case"CLEAN_ROOM":return gO(n);case"AI_PARSE":return tE(n);case"SHUTTERSTOCK_IMAGEAI":return nE(n);case"LAKEFLOW_CONNECT":return xO(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function cs(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([cs("instance-dbu-rates.json"),cs("dbu-multipliers.json"),cs("dbu-rates.json"),cs("dbsql-rates.json"),cs("dbsql-warehouse-config.json"),cs("vector-search-rates.json"),cs("model-serving-rates.json"),cs("fmapi-databricks-rates.json"),cs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),sE()}}function sE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function iE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Lg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"];function aE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Ty;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},jO="v7",ds=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(ds);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(ds),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(ds),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(ds),null;return t}catch{return localStorage.removeItem(ds),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(ds,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(ds)}catch{}}const Pp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Rp=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Ap=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Dp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Mp=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],ws=rM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"}],cloudProviders:Pp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Rp,dbsqlWarehouseTypes:[],dltEditions:Ap,fmapiProviders:Mp,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tp,vmPaymentOptions:Lp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Dp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:sE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await D4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Sy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await O4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await F4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await $4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await H4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await q4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await W4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]},p=u.workloadTypes||[],f=new Set(p.map(g=>g.workload_type)),h=[...p,...r.workloadTypes.filter(g=>!f.has(g.workload_type))];e({workloadTypes:h.length>0?h:r.workloadTypes,cloudProviders:u.cloudProviders||Pp,dbsqlSizes:u.dbsqlSizes||Rp,dltEditions:u.dltEditions||Ap,fmapiProviders:u.fmapiProviders||Mp,vmPricingTiers:u.vmPricingTiers||Tp,vmPaymentOptions:u.vmPaymentOptions||Lp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Dp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,k,A,S,T,D,$,j,H,X,re,le]=await Promise.all([Q4().catch(()=>r.workloadTypes),X4().catch(()=>Pp),J4().catch(()=>Rp),Z4().catch(()=>Ap),eO().catch(()=>Mp),cO().catch(()=>Tp),uO().catch(()=>Lp),iO().catch(()=>null),oO().catch(()=>null),Py().catch(()=>Dp),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),sO(s).catch(()=>[]),aO(s).catch(()=>[]),Ey().catch(()=>[]),Cy().catch(()=>[]),Nm().catch(()=>[])]),he={aws:A,azure:S,gcp:T},xe=A,oe={};j.forEach(se=>{const pe=`${se.model}:${se.rate_type}`;oe[pe]=se});const F={};H.forEach(se=>{const pe=`${se.provider}:${se.model}:${se.rate_type}`;F[pe]=se});const Q=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Q.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,vectorSearchModes:$,fmapiDatabricksRates:oe,fmapiProprietaryRates:F,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await Y4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Ey();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Cy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await lO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=nO({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Lg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await HS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ay(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ay(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await rE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await eE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"AI_PARSE":c=await tE({...l,mode:"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1});break;case"SHUTTERSTOCK_IMAGEAI":c=await nE({...l,images_per_month:n.shutterstock_images||100});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function Ly(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function oE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Rm(e){return e.toLowerCase()}class Yn{constructor(t,n){this.attribute=n,this.property=t}}Yn.prototype.attribute="";Yn.prototype.booleanish=!1;Yn.prototype.boolean=!1;Yn.prototype.commaOrSpaceSeparated=!1;Yn.prototype.commaSeparated=!1;Yn.prototype.defined=!1;Yn.prototype.mustUseProperty=!1;Yn.prototype.number=!1;Yn.prototype.overloadedBoolean=!1;Yn.prototype.property="";Yn.prototype.spaceSeparated=!1;Yn.prototype.space=void 0;let BO=0;const Ue=Wi(),Xt=Wi(),Am=Wi(),ne=Wi(),_t=Wi(),_a=Wi(),nr=Wi();function Wi(){return 2**++BO}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ue,booleanish:Xt,commaOrSpaceSeparated:nr,commaSeparated:_a,number:ne,overloadedBoolean:Am,spaceSeparated:_t},Symbol.toStringTag,{value:"Module"})),Op=Object.keys(Tm);class Dg extends Yn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Dg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=oE([lE,FO,dE,pE,fE],"html"),Mg=oE([lE,UO,dE,pE,fE],"svg");function KO(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,By="/",Fy="*",Ei="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(By!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;Ei!=e.charAt(v)&&(Fy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,Ei===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:Uy(v[0].replace(Iy,Ei)),value:b?Uy(b[0].replace(Iy,Ei)):Ei});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(tI,Ei):Ei}var aI=iI,oI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,Vy):e=e.replace(fI,Vy),e.replace(dI,gI))};Sd.camelCase=xI;var vI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Og),_I=Sd;function Lm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Lm.default=Lm;var bI=Lm;const wI=qu(bI),mE=hE("end"),Ig=hE("start");function hE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Ig(e),n=mE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),gE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=xE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function xE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=yE(e,t.tagName,!1),a=II(e,t);let l=Ug(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:yE(e,t.name,!0),a=BI(e,t),l=Ug(e,t);return vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Fg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function vE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=FI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function BI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(lr(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function bE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=pi(/[A-Za-z]/),Nn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function gt(e){return e!==null&&(e<0||e===32)}function Ge(e){return e===-2||e===-1||e===32}const Ed=pi(new RegExp("\\p{P}|\\p{S}","u")),Vi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Je(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return Ge(c)?(e.enter(n),l(c)):t(c)}function l(c){return Ge(c)&&i++a))return;const T=t.events.length;let D=T,$,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if($){j=t.events[D][1].end;break}$=!0}for(x(r),S=T;S_;){const A=n[k];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tB(e,t,n){return Je(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||gt(e)||Vi(e))return 1;if(Ed(e))return 2}function Cd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Ky(p,-c),Ky(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,Cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,lr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&Ge(S)?Je(e,y,"linePrefix",i+1)(S):y(S)}function y(S){return S===null||Ne(S)?e.check(Qy,v,k)(S):(e.enter("codeFlowValue"),_(S))}function _(S){return S===null||Ne(S)?(e.exit("codeFlowValue"),y(S)):(e.consume(S),_)}function k(S){return e.exit("codeFenced"),t(S)}function A(S,T,D){let $=0;return j;function j(he){return S.enter("lineEnding"),S.consume(he),S.exit("lineEnding"),H}function H(he){return S.enter("codeFencedFence"),Ge(he)?Je(S,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(he):X(he)}function X(he){return he===l?(S.enter("codeFencedFenceSequence"),re(he)):D(he)}function re(he){return he===l?($++,S.consume(he),re):$>=a?(S.exit("codeFencedFenceSequence"),Ge(he)?Je(S,le,"whitespace")(he):le(he)):D(he)}function le(he){return he===null||Ne(he)?(S.exit("codeFencedFence"),T(he)):D(he)}}}function fB(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hB},mB={partial:!0,tokenize:gB};function hB(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Je(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mB,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gB(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Je(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xB={name:"codeText",previous:yB,resolve:vB,tokenize:_B};function vB(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function jE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||gt(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!Ge(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function PE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Je(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ge(s)?Je(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NB={name:"definition",tokenize:RB},PB={partial:!0,tokenize:AB};function RB(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return NE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return gt(h)?Do(e,u)(h):u(h)}function u(h){return jE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PB,p,p)(h)}function p(h){return Ge(h)?Je(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AB(e,t,n){return r;function r(l){return gt(l)?Do(e,s)(l):n(l)}function s(l){return PE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Ge(l)?Je(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TB={name:"hardBreakEscape",tokenize:LB};function LB(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DB={name:"headingAtx",resolve:MB,tokenize:OB};function MB(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},lr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OB(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||gt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):Ge(d)?Je(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||gt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IB=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],BB={concrete:!0,name:"htmlFlow",resolveTo:VB,tokenize:zB},FB={partial:!0,tokenize:HB},UB={partial:!0,tokenize:$B};function VB(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zB(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):On(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const ke="CDATA[";return L===ke.charCodeAt(l++)?(e.consume(L),l===ke.length?r.interrupt?t:X:g):n(L)}function v(L){return On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||gt(L)){const ke=L===47,De=a.toLowerCase();return!ke&&!i&&Xy.includes(De)?(s=1,r.interrupt?t(L):X(L)):IB.includes(a.toLowerCase())?(s=6,ke?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return Ge(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||On(L)?(e.consume(L),k):Ge(L)?(e.consume(L),_):j(L)}function k(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),k):A(L)}function A(L){return L===61?(e.consume(L),S):Ge(L)?(e.consume(L),A):_(L)}function S(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):Ge(L)?(e.consume(L),S):D(L)}function T(L){return L===c?(e.consume(L),c=null,$):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||gt(L)?A(L):(e.consume(L),D)}function $(L){return L===47||L===62||Ge(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):Ge(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Q):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(FB,pe,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UB,le,pe)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),he}function he(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",F):X(L)}function F(L){if(L===62){const ke=a.toLowerCase();return Xy.includes(ke)?(e.consume(L),se):X(L)}return On(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),F):X(L)}function Q(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),se)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $B(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HB(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qB={name:"htmlText",tokenize:WB};function WB(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):On(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):On(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),k):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function k(N){return N===62?xe(N):_(N)}function A(N){return On(N)?(e.consume(N),S):n(N)}function S(N){return N===45||Nn(N)?(e.consume(N),S):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):Ge(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||gt(N)?$(N):n(N)}function $(N){return N===47?(e.consume(N),xe):N===58||N===95||On(N)?(e.consume(N),j):Ne(N)?(a=$,oe(N)):Ge(N)?(e.consume(N),$):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):Ge(N)?(e.consume(N),H):$(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):Ge(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,he):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||gt(N)?$(N):(e.consume(N),le)}function he(N){return N===47||N===62||gt(N)?$(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),F}function F(N){return Ge(N)?Je(e,Q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Q(N)}function Q(N){return e.enter("htmlTextData"),a(N)}}const $g={name:"labelEnd",resolveAll:YB,resolveTo:XB,tokenize:JB},GB={tokenize:ZB},KB={tokenize:eF},QB={tokenize:tF};function YB(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),Ge(u)?Je(e,l,"whitespace")(u):l(u))}}const zn={continuation:{tokenize:dF},exit:fF,name:"list",tokenize:uF},lF={partial:!0,tokenize:mF},cF={partial:!0,tokenize:pF};function uF(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lF,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return Ge(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dF(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Je(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Ge(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cF,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Je(e,e.attempt(zn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pF(e,t,n){const r=this;return Je(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fF(e){e.exit(this.containerState.type)}function mF(e,t,n){const r=this;return Je(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ge(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:hF,tokenize:gF};function hF(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gF(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Ge(u)?Je(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xF={tokenize:vF};function vF(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Je(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kB,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yF={resolveAll:AE()},_F=RE("string"),bF=RE("text");function RE(e){return{resolveAll:AE(e==="text"?wF:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MF(e,t){let n=-1;const r=[];let s;for(;++n0){const Ve=G.tokenStack[G.tokenStack.length-1];(Ve[1]||e_).call(G,void 0,Ve[0])}for(B.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QF(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YF(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XF(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JF(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZF(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function DE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):ME(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=mE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WF,break:GF,code:KF,delete:QF,emphasis:YF,footnoteReference:XF,heading:JF,html:ZF,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const OE=-1,jd=0,Mo=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,IE=7,BE=8,s_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case jd:case OE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case Hg:return n(new Date(a),s);case qg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case IE:{const{name:l,message:c}=a;return n(new s_[l](c),s)}case BE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new s_[i](a),s)};return r},i_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Ou,Ki];case"Date":return[Hg,Ki];case"RegExp":return[qg,Ki];case"Map":return[Wg,Ki];case"Set":return[Gg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[IE,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case jd:{let d=a;switch(c){case"bigint":l=BE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([OE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Ou:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!yc(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case Hg:return s([l,a.toISOString()],a);case qg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Wg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(yc(uo(f))||yc(uo(h))))&&d.push([i(f),i(h)]);return p}case Gg:{const d=[],p=s([l,d],a);for(const f of a)(e||!yc(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(a_(e,t)):structuredClone(e):(e,t)=>i_(a_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return N6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=FE,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function o_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function F6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,VE=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):VE.call(t)==="[object Array]"},f_=function(t){if(!t||VE.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Wr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Fm(v)&&Fm(h)&&(h=Up(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Qg().freeze();function Hp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Fm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return rU(e)?e:new zE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return nU().use(qF).use(n).use(F6,r).use(t)}function dU(e){const t=e.children||"",n=new zE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Kg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Ip)if(Object.hasOwn(Ip,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ip[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Nd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:S}:void 0),S===!1?f.lastIndex=k+1:(g!==k&&y.push({type:"text",value:u.value.slice(g,k)}),Array.isArray(S)?y.push(...S):S&&y.push(S),g=k+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function $E(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Vi(n)||Ed(n))&&(!t||n!==47)}HE.peek=FU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function BU(e){this.exit(e)}function FU(){return"["}function HE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:BU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?qE:zU))),u(),c}}function zU(e,t,n){return t===0?e:qE(e,t,n)}function qE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];WE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:WE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function WE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GE.peek=l7;function GE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}KE.peek=d7;function KE(e){return e.value||""}function d7(){return"<"}QE.peek=p7;function QE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}YE.peek=f7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}XE.peek=m7;function XE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}ZE.peek=h7;function ZE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(JE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return JE(e,n)?"<":"["}eC.peek=g7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Xg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),tC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nC.peek=C7;function nC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(tC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rC={blockquote:JU,break:S_,code:s7,definition:a7,emphasis:GE,hardBreak:S_,heading:u7,html:KE,image:QE,imageReference:YE,inlineCode:XE,link:ZE,linkReference:eC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:nC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:E_,tableHeader:E_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Yp,tableHeader:Yp,tableRow:Yp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Yp(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||gt(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return gt(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||gt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return gt(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Je(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Je(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?S:c;return re===S&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):Ge(j)?Je(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||gt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,Ge(j)?Je(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return Ge(j)?Je(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?k(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return Ge(j)?Je(e,k,"whitespace")(j):k(j)}function k(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function S(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):Ge(j)?Je(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||gt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?$:D)}function $(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return gt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):Ge(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Je(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return bE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[k,A]=m.useState([]),[S,T]=m.useState([]),[D,$]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,he]=m.useState(!1),[xe,oe]=m.useState(380),[F,Q]=m.useState(!1),[N,se]=m.useState(!0),[pe,L]=m.useState(null),[ke,De]=m.useState(""),[w,Y]=m.useState(null),ue=l??xe,_e=c??oe,ve=m.useRef(null),ot=m.useRef(null),Ze=m.useRef(null),I=m.useRef(null),st=m.useRef(null),xt=m.useRef(!1),lt=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,$e=a[Te];$e!=null&&$e.total&&(U+=$e.total)}),U},[a,i]),mt=m.useCallback(U=>{U.preventDefault(),Q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!F)return;const $e=window.innerWidth-Te.clientX,K=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,$e),K))},Z=()=>{Q(!1)};return F&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[F]);const W=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;xt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(xt.current=!1)},[g]);const E=m.useCallback(()=>{const U=ot.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;xt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Ze.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](https://cheeyutan.github.io/lakemeter-opensource/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](https://cheeyutan.github.io/lakemeter-opensource/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),q=m.useCallback((U,Z)=>{L(U),De(Z)},[]),Se=m.useCallback(()=>{L(null),De("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),Y(U),setTimeout(()=>Y(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,B]=m.useState(null),[G,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!ke.trim()||d.findIndex(K=>K.id===U)===-1)return;const Te=ke.trim();if(T([]),L(null),De(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const $e={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([$e]),B(Te),ae(!0)},[ke,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,lt,ie]);const Ve=m.useCallback(async(U,Z)=>{var ut;const Te=U||f.trim();if(!Te||g)return;const $e={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(nt=>[...nt,$e]),h(""),v(!0),re(null);const K=`assistant-${Date.now()}`;p(nt=>[...nt,{id:K,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const nt=(i||k||[]).map(Ie=>{const Me=Ie.line_item_id||Ie.item_id||Ie.draft_id,Re=a==null?void 0:a[Me];return{...Ie,total_cost:(Re==null?void 0:Re.total)||Ie.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Ie.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Ie.vm_cost||0}}),Bt=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:$e.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:nt,mode:u,stream:!0}),signal:I.current.signal});if(!Bt.ok)throw new Error(`HTTP ${Bt.status}: ${Bt.statusText}`);const ft=(ut=Bt.body)==null?void 0:ut.getReader();if(!ft)throw new Error("No response body");const vt=new TextDecoder;let Ct="",ht="",ze=[];for(;;){const{done:Ie,value:Me}=await ft.read();if(Ie)break;Ct+=vt.decode(Me,{stream:!0});const Re=Ct.split(` +`);Ct=Re.pop()||"";for(const Yt of Re)if(Yt.startsWith("data: ")){const jt=Yt.slice(6);if(jt==="[DONE]")continue;try{const Ee=JSON.parse(jt);if(Ee.type==="start")x(Ee.conversation_id);else if(Ee.type==="content")ht+=Ee.content,p(Nt=>Nt.map(Le=>Le.id===K?{...Le,content:ht,isThinking:!1}:Le));else if(Ee.type==="tool_result")ze.push({tool:Ee.tool,result:Ee.result});else if(Ee.type==="proposal")Ee.workload&&Ee.workload.proposal_id&&T(Nt=>Nt.some(Jn=>Jn.proposal_id===Ee.workload.proposal_id)?Nt:[...Nt,Ee.workload]);else if(Ee.type==="done")ht.includes("Error getting response")||ht.includes("AI service error")||(Ee.estimate&&_(Ee.estimate),Ee.workloads&&A(Ee.workloads),Ee.proposed_workloads&&Ee.proposed_workloads.length>0&&T(Ee.proposed_workloads));else if(Ee.type==="error")throw new Error(Ee.content)}catch{}}}p(Ie=>Ie.map(Me=>Me.id===K?{...Me,content:ht,isStreaming:!1,toolResults:ze}:Me))}catch(nt){if(nt.name==="AbortError")return;console.error("Chat error:",nt),re(nt.message||"Failed to get response"),p(Bt=>Bt.filter(ft=>ft.id!==K))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,k,a]);m.useEffect(()=>{O&&!g&&(Ve(O,G),B(null),ae(!1))},[O,G,g,Ve]);const pt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Ve())},it=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ye=async U=>{if(b){$(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T($e=>$e.filter(K=>K.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p($e=>{var K;return[...$e,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(K=Te.workload_config)==null?void 0:K.workload_name}" added to estimate.`,timestamp:new Date}]})}catch($e){p(K=>[...K,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${$e.message||"Database error"}. Please try again.`,timestamp:new Date}]),re($e.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},ct=async U=>{if(b){$(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=S.find($e=>$e.proposal_id===U);T($e=>$e.filter(K=>K.proposal_id!==U)),p($e=>[...$e,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Xe=async()=>{for(const U of S)await Ye(U.proposal_id)},It=async()=>{for(const U of S)await ct(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>he(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx($c,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(fs,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:st,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ue}px)`},children:[o.jsx("div",{onMouseDown:mt,className:de("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",F&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ms,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:it,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(KD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(OD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),S.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ty,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[S.length," Proposed Workload",S.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(sr,{className:"w-4 h-4 text-amber-600"}):o.jsx(fs,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Xe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",S.length,")"]}),o.jsx("button",{onClick:It,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:S.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:de("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ye(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Au,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:ot,onScroll:E,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:de("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:de("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:ke,onChange:Z=>De(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:de("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var $e;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[($e=Z.result)!=null&&$e.success?o.jsx(Au,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:de("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:de("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(wD,{className:"w-3.5 h-3.5"}):o.jsx(SD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>q(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(n3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:it,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(fs,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Ve(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Ze,value:f,onChange:W,onKeyDown:pt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Ve(),disabled:!g&&!f.trim(),className:de("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(dS,{className:"w-4 h-4"}):o.jsx(JD,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:o3}],N_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Xp=[{value:"light",label:"Light",icon:y3},{value:"dark",label:"Dark",icon:YD},{value:"system",label:"System",icon:PD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=R3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),k=m.useRef(null),{currentUser:A,isAuthenticated:S,authError:T,fetchCurrentUser:D,currentEstimate:$,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:he,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:F}=ws(),Q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Q||N,pe=m.useCallback(()=>{L4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const Y=ue=>{var _e;console.log("Session expired event received:",ue.detail),g(((_e=ue.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(Cm,Y),()=>{window.removeEventListener(Cm,Y)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),ke=m.useCallback(()=>{a(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||he(),F||xe()},[he,xe,oe,F]),m.useEffect(()=>{const Y=ue=>{_.current&&!_.current.contains(ue.target)&&s(!1),k.current&&!k.current.contains(ue.target)&&a(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Xp.find(Y=>Y.value===t)||Xp[2],w=De.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(N_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(N_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(Y=>{const ue=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return o.jsxs(bu,{to:Y.href,className:de("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ue&&"border"),style:ue?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(Y.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),S&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(S3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),o.jsx(sr,{className:de("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Xp.map(Y=>{const ue=Y.icon,_e=t===Y.value;return o.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ue,{className:"w-4 h-4"}),o.jsx("span",{children:Y.label})]},Y.value)})})]}),o.jsxs("div",{className:"relative",ref:k,children:[o.jsxs("button",{onClick:ke,className:de("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(u3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(nm,{children:i&&o.jsxs($t.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"https://cheeyutan.github.io/lakemeter-opensource/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(BD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(_m,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx($t.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(EN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Q?$:void 0,currentWorkloads:Q?j:void 0,itemCosts:Q?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Q?async Y=>{if($!=null&&$.estimate_id)try{await X({estimate_id:$.estimate_id,...Y}),re($.estimate_id),We.success(`Workload "${Y.workload_name}" added!`)}catch(ue){throw We.error(ue.message||"Failed to add workload"),ue}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(nm,{children:p&&o.jsx($t.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs($t.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(ms,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Xn(e){var t,n;return e?Ga(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Xn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Xn(e).HTMLElement}function pC(e){return e instanceof Xn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:Zg(e)?ex(e)?e:Dl(e)||pC(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Fu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Jp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Jp[e]==null?0:Jp[e]+1;return Jp[e]=n,e+"-"+n},[e,t])}function fC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=fC(1),Uu=fC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Xn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Xn(e.target);return t&&e instanceof t}function $m(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(P_)?e:e.querySelector(P_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const mC=m.createContext(null);function OV(e){const t=m.useContext(mC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const BV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},FV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=FV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=BV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function hC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const gC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(R_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function xC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Xn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function A_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Xn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Xn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||pC(s)||n.includes(s))return n;const i=Xn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function vC(e){const[t]=rx(e,1);return t??null}function Zp(e){return!Rd||!e?null:Ga(e)?e:Zg(e)?ex(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function yC(e){return Ga(e)?e.scrollX:e.scrollLeft}function _C(e){return Ga(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:yC(e),y:_C(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function bC(e){return!Rd||!e?!1:e===document.scrollingElement}function wC(e){const t={x:0,y:0},n=bC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=wC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function kC(e){return e.reduce((t,n)=>ba(t,Hm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+yC(n),0)}function az(e){return e.reduce((t,n)=>t+_C(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);vC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=kC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Xn(e);return e instanceof t?e:Ka(e)}function ef(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function T_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var rt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(rt||(rt={}));const SC={start:[rt.Space,rt.Enter],cancel:[rt.Esc],end:[rt.Space,rt.Enter,rt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case rt.Right:return{...n,x:n.x+25};case rt.Left:return{...n,x:n.x-25};case rt.Down:return{...n,y:n.y+25};case rt.Up:return{...n,y:n.y-25}}};class Ad{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Xn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=SC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Uu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:k,maxScroll:A,minScroll:S}=wC(v),T=sz(v),D={x:Math.min(b===rt.Right?T.right-T.width/2:T.right,Math.max(b===rt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===rt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===rt.Down?T.top:T.top+T.height/2,p.y))},$=b===rt.Right&&!y||b===rt.Left&&!_,j=b===rt.Down&&!k||b===rt.Up&&!x;if($&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===rt.Right&&H<=A.x||b===rt.Left&&H>=S.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===rt.Right?v.scrollLeft-A.x:v.scrollLeft-S.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===rt.Down&&H<=A.y||b===rt.Up&&H>=S.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===rt.Down?v.scrollTop-A.y:v.scrollTop-S.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Uu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ad.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=SC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function L_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Xn(a)),this.initialCoordinates=(s=$m(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,T_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,T_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(L_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Fr,u=Uu(s,c);if(!r&&l){if(L_(l)){if(l.tolerance!=null&&ef(u,l.tolerance))return this.handleCancel();if(ef(u,l.distance))return this.handleStart()}if(D_(l)&&ef(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Td extends ix{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Td.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class mz extends ix{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const tf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ix{constructor(t){super(t,tf)}static setup(){return window.addEventListener(tf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),k=m.useCallback(()=>{const S=_.current;if(!S)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;S.scrollBy(T,D)},[]),A=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const S of A){if((r==null?void 0:r(S))===!1)continue;const T=u.indexOf(S),D=d[T];if(!D)continue;const{direction:$,speed:j}=rz(S,D,y,t,f);for(const H of["x","y"])h[H][$[H]]||(j[H]=0,$[H]=0);if(j.x>0||j.y>0){v(),_.current=S,g(k,a),b.current=j,x.current=$;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,k,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const k=_.node.current,A=k?new sx(c(k),k):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function EC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return EC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ld(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new sx(Qa(e),e)}function O_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Ld({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=EC(e);return xC(e,t)}const I_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=Zp(i.target);a&&n(l=>l?(l.set(a,Hm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=Zp(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=Zp(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):kC(e):Fr,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function CC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const F_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=CC(n?Xn(n):null),[s,i]=m.useState(F_);function a(){i(()=>e.length?e.map(c=>bC(c)?r:new sx(t(c),c)):F_)}const l=Ld({callback:a});return es(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Ld({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Fu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Td,options:{}},{sensor:Ad,options:{}}],Dz={current:{}},Qc={draggable:{measure:A_},droppable:{measure:A_,strategy:fl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Qa}};class Bo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Bo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Oz),jC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Bo}}}function Bz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Bo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Bo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Bo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Fz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),a=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=xC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=vC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const NC=m.createContext({...Fr,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const PC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Bz,void 0,Iz),[b,x]=v,[y,_]=IV(),[k,A]=m.useState(Us.Uninitialized),S=k===Us.Initialized,{draggable:{active:T,nodes:D,translate:$},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var K;return T!=null?{id:T,data:(K=H==null?void 0:H.data)!=null?K:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[he,xe]=m.useState(null),[oe,F]=m.useState(null),Q=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:ke,measuringScheduled:De}=bz(se,{dragging:S,dependencies:[$.x,$.y],config:pe.droppable}),w=yz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ue=$e(),_e=wz(w,pe.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ue.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Ze=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Ze.current.over)==null?void 0:n.id),st=Tz({measure:pe.dragOverlay.measure}),xt=(r=st.nodeRef.current)!=null?r:w,lt=S?(s=st.rect)!=null?s:ve:null,mt=!!(st.nodeRef.current&&st.rect),W=Ez(mt?null:ve),P=CC(xt?Xn(xt):null),E=Cz(S?I??w:null),ie=Rz(E),M=Uz(h,{transform:{x:$.x-W.x,y:$.y-W.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:ot,draggingNodeRect:lt,over:Ze.current.over,overlayNodeRect:st.rect,scrollableAncestors:E,scrollableAncestorRects:ie,windowRect:P}),q=Y?ba(Y,$):null,Se=jz(E),Pe=B_(Se),O=B_(Se,[ve]),B=ba(M,Pe),G=lt?QV(lt,M):null,ae=re&&G?p({active:re,collisionRect:G,droppableRects:L,droppableContainers:se,pointerCoordinates:q}):null,je=HV(ae,"id"),[Ve,pt]=m.useState(null),it=mt?M:ba(M,O),Ye=GV(it,(i=Ve==null?void 0:Ve.rect)!=null?i:null,ve),ct=m.useRef(null),Xe=m.useCallback((K,ut)=>{let{sensor:nt,options:Bt}=ut;if(le.current==null)return;const ft=D.get(le.current);if(!ft)return;const vt=K.nativeEvent,Ct=new nt({active:le.current,activeNode:ft,event:vt,options:Bt,context:Ze,onAbort(ze){if(!D.get(ze))return;const{onDragAbort:Me}=Q.current,Re={id:ze};Me==null||Me(Re),y({type:"onDragAbort",event:Re})},onPending(ze,Ie,Me,Re){if(!D.get(ze))return;const{onDragPending:jt}=Q.current,Ee={id:ze,constraint:Ie,initialCoordinates:Me,offset:Re};jt==null||jt(Ee),y({type:"onDragPending",event:Ee})},onStart(ze){const Ie=le.current;if(Ie==null)return;const Me=D.get(Ie);if(!Me)return;const{onDragStart:Re}=Q.current,Yt={activatorEvent:vt,active:{id:Ie,data:Me.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Yt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:ze,active:Ie}),y({type:"onDragStart",event:Yt}),xe(ct.current),F(vt)})},onMove(ze){x({type:sn.DragMove,coordinates:ze})},onEnd:ht(sn.DragEnd),onCancel:ht(sn.DragCancel)});ct.current=Ct;function ht(ze){return async function(){const{active:Me,collisions:Re,over:Yt,scrollAdjustedTranslate:jt}=Ze.current;let Ee=null;if(Me&&jt){const{cancelDrop:Nt}=Q.current;Ee={activatorEvent:vt,active:Me,collisions:Re,delta:jt,over:Yt},ze===sn.DragEnd&&typeof Nt=="function"&&await Promise.resolve(Nt(Ee))&&(ze=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:ze}),A(Us.Uninitialized),pt(null),xe(null),F(null),ct.current=null;const Nt=ze===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const Le=Q.current[Nt];Le==null||Le(Ee),y({type:Nt,event:Ee})}})}}},[D]),It=m.useCallback((K,ut)=>(nt,Bt)=>{const ft=nt.nativeEvent,vt=D.get(Bt);if(le.current!==null||!vt||ft.dndKit||ft.defaultPrevented)return;const Ct={active:vt};K(nt,ut.options,Ct)===!0&&(ft.dndKit={capturedBy:ut.sensor},le.current=Bt,Xe(nt,ut))},[D,Xe]),U=_z(d,It);Nz(d),es(()=>{ve&&k===Us.Initializing&&A(Us.Initialized)},[ve,k]),m.useEffect(()=>{const{onDragMove:K}=Q.current,{active:ut,activatorEvent:nt,collisions:Bt,over:ft}=Ze.current;if(!ut||!nt)return;const vt={active:ut,activatorEvent:nt,collisions:Bt,delta:{x:B.x,y:B.y},over:ft};la.unstable_batchedUpdates(()=>{K==null||K(vt),y({type:"onDragMove",event:vt})})},[B.x,B.y]),m.useEffect(()=>{const{active:K,activatorEvent:ut,collisions:nt,droppableContainers:Bt,scrollAdjustedTranslate:ft}=Ze.current;if(!K||le.current==null||!ut||!ft)return;const{onDragOver:vt}=Q.current,Ct=Bt.get(je),ht=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,ze={active:K,activatorEvent:ut,collisions:nt,delta:{x:ft.x,y:ft.y},over:ht};la.unstable_batchedUpdates(()=>{pt(ht),vt==null||vt(ze),y({type:"onDragOver",event:ze})})},[je]),es(()=>{Ze.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:G,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:xt,draggingNodeRect:lt,droppableContainers:j,over:Ve,scrollableAncestors:E,scrollAdjustedTranslate:B},X.current={initial:lt,translated:G}},[re,w,ae,G,D,xt,lt,L,j,Ve,E,B]),gz({...ue,delta:$,draggingRect:G,pointerCoordinates:q,scrollableAncestors:E,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:ot,dragOverlay:st,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Ve,measureDroppableContainers:ke,scrollableAncestors:E,scrollableAncestorRects:ie,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ve,oe,ae,ot,st,D,j,L,Ve,ke,E,ie,pe,De,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Ve,measureDroppableContainers:ke}),[oe,U,re,ve,x,N,D,Ve,ke]);return pn.createElement(mC.Provider,{value:_},pn.createElement(Dd.Provider,{value:Te},pn.createElement(jC.Provider,{value:Z},pn.createElement(NC.Provider,{value:Ye},u)),pn.createElement(Fz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function $e(){const K=(he==null?void 0:he.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,nt=S&&!K&&!ut;return typeof c=="object"?{...c,enabled:nt}:{enabled:nt}}}),$z=m.createContext(null),U_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?NC:$z),[y,_]=Fu(),[k,A]=Fu(),S=Pz(a,t),T=pl(n);es(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:k,data:T}),()=>{const $=p.get(t);$&&$.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:S,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(jC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ld({callback:y,disabled:g||!a}),k=m.useCallback((D,$)=>{_&&($&&(_.unobserve($),p.current=!1),D&&_.observe(D))},[_]),[A,S]=Fu(k),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:S}}function ax(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ax(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Sc={scaleX:1,scaleY:1},AC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Sc}:s=a?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,k=Jz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:k,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,k.draggable,k.droppable,_,h,b,c,f,s]);return pn.createElement(LC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ax(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},MC="transform",r8=Oa.Transition.toString({property:MC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function OC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(LC),_=a8(r,h),k=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:k,items:d},...s}),[p,s,k,d]),S=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:$,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:he,listeners:xe,isDragging:oe,over:F,setActivatorNodeRef:Q,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,he),pe=!!H,L=pe&&!g&&kc(f)&&kc(b),ke=!x&&oe,De=ke&&L?N:null,Y=L?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:k}):null,ue=kc(f)&&kc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):k,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ue,containerId:p}),ot=d!==ve.current.items,Ze=t({active:H,containerId:p,isDragging:oe,isSorting:pe,id:a,index:k,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Ze,index:k,node:D,rect:T});return m.useEffect(()=>{pe&&ve.current.newIndex!==ue&&(ve.current.newIndex=ue),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,ue,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const xt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(xt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:k,newIndex:ue,items:d,isOver:$,isSorting:pe,isDragging:oe,listeners:xe,node:D,overIndex:b,over:F,setNodeRef:se,setActivatorNodeRef:Q,setDroppableNodeRef:j,setDraggableNodeRef:he,transform:I??Y,transition:st()};function st(){if(I||ot&&ve.current.newIndex===k)return r8;if(!(ke&&!nx(X)||!u)&&(pe||Ze))return Oa.Transition.toString({...u,property:MC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}rt.Down,rt.Right,rt.Up,rt.Left;const IC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var BC={exports:{}};(function(e,t){(function(n,r){r()})(hs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof hs=="object"&&hs.global===hs?hs:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(BC);var Gm=BC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Ec={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=ws(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[k,A]=m.useState(new Set),[S,T]=m.useState(!1),[D,$]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,he]=m.useState(null),[xe,oe]=m.useState(!1),[F,Q]=m.useState(!1),N=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),We.success("Refreshed")},[r]),pe=m.useMemo(()=>{const W=t.length,P=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="aws"}).length,E=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="gcp"}).length;return{all:W,aws:P,azure:E,gcp:ie}},[t]),L=m.useMemo(()=>{const W=t.reduce((P,E)=>P+(E.line_item_count||0),0);return{estimates:t.length,workloads:W}},[t]),ke=m.useMemo(()=>{const W=new Set;return t.forEach(P=>{P.customer_name&&W.add(P.customer_name)}),Array.from(W).sort()},[t]),De=m.useMemo(()=>{const W={all:t.length};return t.forEach(P=>{P.customer_name&&(W[P.customer_name]=(W[P.customer_name]||0)+1)}),W},[t]),w=m.useMemo(()=>{let W=[...t];if(c){const P=c.toLowerCase();W=W.filter(E=>{var ie;return E.estimate_name.toLowerCase().includes(P)||((ie=E.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(W=W.filter(P=>{var E;return((E=P.cloud)==null?void 0:E.toLowerCase())===f})),b!=="all"&&(W=W.filter(P=>P.customer_name===b)),g){case"updated":W.sort((P,E)=>new Date(E.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":W.sort((P,E)=>P.estimate_name.localeCompare(E.estimate_name));break;case"workloads":W.sort((P,E)=>(E.line_item_count||0)-(P.line_item_count||0));break;case"display_order":W.sort((P,E)=>(P.display_order??0)-(E.display_order??0));break}return W},[t,c,f,g,b]),Y=m.useCallback(async W=>{const{active:P,over:E}=W;if(!E||P.id===E.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===E.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const q=ax(w,ie,M),{estimates:Se}=ws.getState(),Pe=Se.map(O=>{const B=q.findIndex(G=>G.estimate_id===O.estimate_id);return B>=0?{...O,display_order:B}:O});ws.setState({estimates:Pe});try{await K4(q.map(O=>O.estimate_id))}catch{We.error("Failed to save reorder")}},[w,g]),ue=(W,P,E)=>{W.stopPropagation(),he({id:P,name:E}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),We.success("Estimate deleted")}catch{We.error("Failed to delete")}finally{oe(!1),re(!1),he(null)}}},ve=async(W,P)=>{W.stopPropagation();try{const E=await i(P);We.success("Estimate duplicated"),e(`/calculator/${E.estimate_id}`)}catch{We.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const W=await dO();Gm.saveAs(W,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),We.success("Exported successfully")}catch{We.error("Export failed")}finally{l(!1)}},Ze=()=>{k.size===w.length?A(new Set):A(new Set(w.map(W=>W.estimate_id)))},I=(W,P)=>{P.stopPropagation();const E=new Set(k);E.has(W)?E.delete(W):E.add(W),A(E)},st=()=>{k.size!==0&&Q(!0)},xt=async()=>{$(!0);let W=0,P=0;for(const E of k)try{await s(E),W++}catch{P++}$(!1),A(new Set),Q(!1),P===0?We.success(`Deleted ${W} estimate(s)`):We.error(`Deleted ${W}, failed ${P}`)},lt=async()=>{if(k.size===0)return;H(!0);let W=0;for(const P of k)try{const E=t.find(ie=>ie.estimate_id===P);if(E){const ie=await qS(P);Gm.saveAs(ie,`${E.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),W++}}catch{}H(!1),We.success(`Exported ${W} estimate(s)`)},mt=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ny,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Ng,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Qr,{className:de("w-5 h-5",d&&"animate-spin")})}),S?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[k.size," selected"]}),o.jsxs("button",{onClick:lt,disabled:k.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:st,disabled:k.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:mt,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:ot,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),ke.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(pD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?ke.length:De[b]||0}),o.jsx(sr,{className:de("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(nm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs($t.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:ke.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),ke.map(W=>o.jsxs("button",{onClick:()=>{x(W),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===W?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===W?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:W,children:W}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:De[W]||0}),b===W&&o.jsx(Gs,{className:"w-4 h-4"})]})]},W))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:W=>u(W.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(W=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},W))})}):w.length===0?o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Ze,className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:k.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:de(S?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(PC,{sensors:N,collisionDetection:gC,onDragEnd:Y,modifiers:[IC],children:o.jsx(DC,{items:w.map(W=>W.estimate_id),strategy:AC,children:w.map((W,P)=>{const E=k.has(W.estimate_id);return o.jsx(o8,{id:W.estimate_id,children:o.jsxs($t.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!S&&e(`/calculator/${W.estimate_id}`),className:de("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!S&&"cursor-pointer hover:bg-[var(--bg-hover)]",E&&"bg-blue-500/5"),children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(W.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",E?"bg-blue-500 border-blue-500":"border-gray-400"),children:E&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:de("flex items-center gap-3",S?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(ym,{className:"w-4 h-4",style:{color:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:W.estimate_name,children:W.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:W.customer_name||"",children:W.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:W.customer_name||"",children:W.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:W.cloud&&Tr[W.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[W.cloud.toLowerCase()].bg,color:Tr[W.cloud.toLowerCase()].text},children:Tr[W.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:W.region||W.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[W.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:W.region,children:W.region}),W.tier&&Ec[W.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Ec[W.tier.toLowerCase()].bg,color:Ec[W.tier.toLowerCase()].text},children:Ec[W.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:de("px-2 py-0.5 rounded text-xs font-medium",W.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:W.line_item_count===0?{color:"var(--text-muted)"}:{},children:W.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(W.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!S&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,W.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ue(ie,W.estimate_id,W.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},W.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),he(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),F&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",k.size," Estimate",k.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(W=>k.has(W.estimate_id)).map(W=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",W.estimate_name]},W.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:xt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),k.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[k.size," estimate",k.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:st,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,k=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach($=>{const j=$.group||"Other";T[j]||(T[j]=[]),T[j].push($)}),Object.keys(T).sort(($,j)=>$==="General Purpose"?-1:j==="General Purpose"?1:$.localeCompare(j)).map($=>({name:$,options:T[$]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},S=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:de("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:de("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:de("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:S,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(sr,{className:de("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),k.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const FC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:FC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function nf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var W;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:k,fetchLineItems:A,clearSingleWorkloadCost:S,markItemCalculating:T,fetchVMCostForInstance:D}=ws(),$=m.useRef(!0);m.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,he=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,F={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Q=f&&f.models&&f.models.llm?f:F,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[pe,L]=m.useState(!1),[ke,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ue={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ue),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),FC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?aE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&Y(E=>({...E,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Ze=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!$.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),st=a.length===0,xt=!st&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){We.error("Enter a workload name");return}L(!0);try{const E={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(E.serverless_enabled=w.serverless_enabled,E.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(E.serverless_enabled=!1,E.serverless_mode=null),I!=null&&I.show_compute_config?(E.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,E.driver_node_type=w.driver_node_type||null,E.worker_node_type=w.worker_node_type||null,E.num_workers=w.num_workers,E.driver_pricing_tier=w.driver_pricing_tier||"on_demand",E.worker_pricing_tier=w.worker_pricing_tier||"spot",E.driver_payment_option=w.driver_payment_option||"NA",E.worker_payment_option=w.worker_payment_option||"NA"):(E.photon_enabled=!1,E.driver_node_type=null,E.worker_node_type=null,E.num_workers=null,E.driver_pricing_tier=null,E.worker_pricing_tier=null,E.driver_payment_option=null,E.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?E.dlt_edition=w.dlt_edition:E.dlt_edition=null,I!=null&&I.show_dbsql_config?(E.dbsql_warehouse_type=w.dbsql_warehouse_type,E.dbsql_warehouse_size=w.dbsql_warehouse_size,E.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(E.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,E.dbsql_driver_payment_option=w.dbsql_driver_payment_option,E.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,E.dbsql_worker_payment_option=w.dbsql_worker_payment_option,E.driver_pricing_tier=w.dbsql_driver_pricing_tier,E.driver_payment_option=w.dbsql_driver_payment_option,E.worker_pricing_tier=w.dbsql_worker_pricing_tier,E.worker_payment_option=w.dbsql_worker_payment_option)):(E.dbsql_warehouse_type=null,E.dbsql_warehouse_size=null,E.dbsql_num_clusters=null,E.dbsql_driver_pricing_tier=null,E.dbsql_driver_payment_option=null,E.dbsql_worker_pricing_tier=null,E.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(E.vector_search_mode=w.vector_search_mode,E.vector_capacity_millions=w.vector_capacity_millions,E.vector_search_storage_gb=w.vector_search_storage_gb||0):(E.vector_search_mode=null,E.vector_capacity_millions=null,E.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(E.model_serving_gpu_type=w.model_serving_gpu_type,E.model_serving_scale_out=w.model_serving_scale_out,E.model_serving_concurrency=w.model_serving_concurrency):(E.model_serving_gpu_type=null,E.model_serving_scale_out=null,E.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?E.databricks_apps_size=w.databricks_apps_size:E.databricks_apps_size=null,w.workload_type==="AI_PARSE"?(E.ai_parse_mode="pages",E.ai_parse_complexity=w.ai_parse_complexity,E.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(E.ai_parse_mode=null,E.ai_parse_complexity=null,E.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?E.shutterstock_images=w.shutterstock_images:E.shutterstock_images=null,I!=null&&I.show_lakebase_config?(E.lakebase_cu=w.lakebase_cu,E.lakebase_storage_gb=w.lakebase_storage_gb||0,E.lakebase_ha_nodes=w.lakebase_ha_nodes,E.lakebase_backup_retention_days=w.lakebase_backup_retention_days,E.lakebase_pitr_gb=w.lakebase_pitr_gb||0,E.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(E.lakebase_cu=null,E.lakebase_storage_gb=null,E.lakebase_ha_nodes=null,E.lakebase_backup_retention_days=null,E.lakebase_pitr_gb=null,E.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(E.fmapi_provider=w.fmapi_provider,E.fmapi_model=w.fmapi_model||null,E.fmapi_endpoint_type=w.fmapi_endpoint_type,E.fmapi_context_length=w.fmapi_context_length,E.fmapi_rate_type=w.fmapi_rate_type,E.fmapi_quantity=w.fmapi_quantity):(E.fmapi_provider=null,E.fmapi_model=null,E.fmapi_endpoint_type=null,E.fmapi_context_length=null,E.fmapi_rate_type=null,E.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?ke?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,E.avg_runtime_minutes=w.avg_runtime_minutes,E.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):I!=null&&I.show_fmapi_config?(E.hours_per_month=w.hours_per_month||null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null),t)S(t.line_item_id),T(t.line_item_id),await k(t.line_item_id,E),We.success("Workload updated");else{E.estimate_id=e;const M=await _(E);M!=null&&M.line_item_id&&T(M.line_item_id),We.success("Workload added")}A(e),r==null||r(),n()}catch(E){console.error("Failed to save workload:",E),We.error("Failed to save")}finally{L(!1)}},mt=I==null?void 0:I.show_compute_config;return st?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(E=>({...E,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>Y(E=>({...E,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:de("w-full text-sm",xt&&"border-red-500",Ze&&"border-yellow-500"),children:[Ze&&(()=>{const P=a.find(E=>E.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),xt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Ze&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Ze&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const E=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!E,onChange:()=>!E&&Y(ie=>{const M=!ie.serverless_enabled,q=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:q}}),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>Y(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:he.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:de("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),mt&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(E=>({...E,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(E=>({...E,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(E=>({...E,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(E=>({...E,worker_node_type:E.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:de("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(E=>({...E,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(E=>({...E,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(E=>({...E,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(E=>({...E,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[mt&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>Y(E=>({...E,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const E=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!E;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!E&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(q=>({...q,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(E=>({...E,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(E=>({...E,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,E=P!=null&&P.driver_instance_type?l.find(B=>B.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(B=>B.id===P.worker_instance_type):null,M=(B,G,ae)=>{var Ve,pt,it,Ye,ct,Xe,It;if(!(B!=null&&B.vm_pricing))return null;const je=G.toLowerCase();if(je==="on_demand")return(Ve=B.vm_pricing.on_demand)==null?void 0:Ve.cost_per_hour;if(je==="spot")return(pt=B.vm_pricing.spot)==null?void 0:pt.cost_per_hour;if(je==="reserved_1y"){const U=((it=B.vm_pricing.reserved_1y)==null?void 0:it.find(Z=>Z.payment_option===ae))||((Ye=B.vm_pricing.reserved_1y)==null?void 0:Ye[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((ct=B.vm_pricing.reserved_3y)==null?void 0:ct.find(Z=>Z.payment_option===ae))||((Xe=B.vm_pricing.reserved_3y)==null?void 0:Xe[0]);return U==null?void 0:U.cost_per_hour}return(It=B.vm_pricing.on_demand)==null?void 0:It.cost_per_hour},q=M(E,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),E&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=E.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),q!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",q.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_driver_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:B=>Y(G=>({...G,dbsql_driver_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_worker_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:B=>Y(G=>({...G,dbsql_worker_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(E=>({...E,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(E=>({...E,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(E=>({...E,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(E=>({...E,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const E={small:4,medium:12,large:40},ie=P.target.value;Y(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:E[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const E=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(ie=>({...ie,model_serving_concurrency:E}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(E=>({...E,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(E=>({...E,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const E=P.target.value,ie=z_(x,g||"aws",w.fmapi_provider,E),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";Y(q=>({...q,fmapi_model:E,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(W=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:W.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(E=>({...E,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(E=>({...E,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],E={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],E={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(E=>({...E,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(E=>({...E,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(E=>({...E,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(E=>({...E,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(E=>({...E,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>Y(E=>({...E,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>Y(E=>({...E,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages/Month (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>Y(E=>({...E,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>Y(E=>({...E,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>De(!1),className:de("px-3 py-1 text-xs rounded-l-md border transition-colors",ke?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>De(!0),className:de("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",ke?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!ke&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(E=>({...E,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(E=>({...E,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&w.workload_type!=="DATABRICKS_APPS"&&w.workload_type!=="AI_PARSE"&&w.workload_type!=="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(E=>({...E,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),ke&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>Y(E=>({...E,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:s3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Tu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:sD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:_D,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:qD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:m3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?h8[e]||{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},fe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:fe(e),At=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:de("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:de("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[fe(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:de("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[At(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:k,getInstanceDbuRate:A,vmPricingMap:S,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:$,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:he,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:F,isPricingBundleLoaded:Q,clearEstimateState:N,setLocalCalculatedCosts:se}=ws(),[pe,L]=m.useState(!1),[ke,De]=m.useState(!1),[w,Y]=m.useState(!1),[ue,_e]=m.useState(!1),[ve,ot]=m.useState(!1),[Ze,I]=m.useState(null),[st,xt]=m.useState(!1),[lt,mt]=m.useState(!1),[W,P]=m.useState(!1),[E,ie]=m.useState(!1),[M,q]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,B]=m.useState(!1),[G,ae]=m.useState({}),[je,Ve]=m.useState(!1),[pt,it]=m.useState(!1),[Ye,ct]=m.useState(!1),[Xe,It]=m.useState(!1),[U,Z]=m.useState([]),[Te,$e]=m.useState(!1),[K,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[nt,Bt]=m.useState(!!e),[ft,vt]=m.useState(!1),[Ct,ht]=m.useState(!1),[ze,Ie]=m.useState("table"),[Me,Re]=m.useState("order"),[Yt,jt]=m.useState("asc"),[Ee,Nt]=m.useState(new Set),[Le,Jn]=m.useState(!1),Zn=m.useRef({}),ns=m.useCallback(R=>{const J=Zn.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Zn.current[R]&&(Zn.current[R].style.backgroundColor="")},1500))},[]),Un=m.useCallback(()=>{B(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!K.cloud||!K.region||r.length===0||!Ye)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const V=cl(F,K.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if(V){const ce=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",He=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${V.driver_instance_type}:${ce}:${He}`);const Pt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${V.worker_instance_type}:${Pt}:${Rt}`)}return}if(C.driver_node_type){const V=C.driver_pricing_tier||"on_demand",ce=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${V}:${ce}`)}if(C.worker_node_type){const V=C.worker_pricing_tier||"spot",ce=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${V}:${ce}`)}}});const J=Array.from(R).map(C=>{const[V,ce,He]=C.split(":");return _(K.cloud,K.region,V,ce,He)});if(J.length>0){It(!0);const C=new Promise(V=>setTimeout(V,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>It(!1))}},[K.cloud,K.region,r,Ye,_,F]),m.useEffect(()=>{if(!K.cloud)return;const R=p(K.cloud);if(R.length>0){const J=Q?CO(F,K.cloud):[];if(J.length>0){const C=R.filter(V=>J.includes(V.region_code));Z(C)}else Z(R);$e(!1)}else u?(Z([]),$e(!1)):$e(!0)},[K.cloud,d,u,p,F,Q]),m.useEffect(()=>{(async()=>{if(e){Ve(!0),it(!0),ct(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Ve(!1),it(!1),ct(!0)}}else N(),ct(!1)})()},[e,i,N]);const rs={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(rs),x("aws"),B(!1))},[n,e,x,y]),m.useEffect(()=>{K.cloud&&K.region&&K.tier&&$(K.cloud.toUpperCase(),K.region,K.tier.toUpperCase())},[K.cloud,K.region,K.tier,$]);const ss=!!(K.region&&K.tier),fr=(R,J)=>{const C=J?{...R,...J}:R,V=K.cloud||"aws",ce=K.region,He=Object.keys(D).length>0?D:Q_[V]||Q_.aws,Pt=C.num_workers||0;if(!ce)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let we="";const en=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?we="JOBS_COMPUTE_(PHOTON)":we="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?we="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?we="ALL_PURPOSE_COMPUTE_(PHOTON)":we="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":(we=`DLT_${en}_COMPUTE`,C.photon_enabled&&(we+="_(PHOTON)"));break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Be==="SERVERLESS"?we="SERVERLESS_SQL_COMPUTE":Be==="PRO"?we="SQL_PRO_COMPUTE":we="SQL_COMPUTE";break;case"VECTOR_SEARCH":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const yt=(C.fmapi_provider||"openai").toLowerCase();we=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[yt]||yt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":we="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":we="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"AI_PARSE":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":we="SERVERLESS_REAL_TIME_INFERENCE";break;default:we="JOBS_COMPUTE"}let An=.2;if(Q&&K.tier){const Be=Lg(F,V,ce,K.tier,we);Be>0?An=Be:An=He[we]||.2}else An=He[we]||.2;let be=0,qe=0,Qe=0,Ts,Er,is,te=.5,me=.5;if(Q&&C.driver_node_type){const Be=Pm(F,V,C.driver_node_type);Be>0&&(te=Be)}if(!te||te===.5){const Be=j.find(yt=>yt.id===C.driver_node_type||yt.name===C.driver_node_type);Be!=null&&Be.dbu_rate&&(te=Be.dbu_rate)}if(Q&&C.worker_node_type){const Be=Pm(F,V,C.worker_node_type);Be>0&&(me=Be)}if(!me||me===.5){const Be=j.find(yt=>yt.id===C.worker_node_type||yt.name===C.worker_node_type);Be!=null&&Be.dbu_rate&&(me=Be.dbu_rate)}const Ht=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Be;if(C.serverless_enabled?C.workload_type==="JOBS"?Be="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Be="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Be="DLT_CORE_COMPUTE":Be=we.replace("_(PHOTON)",""):Be=we.replace("_(PHOTON)",""),Q){const tn=iE(F,V,Be);if(tn!==2)return tn}const yt=H.find(tn=>{var bn,mr;return tn.sku_type===Be||((bn=tn.sku_type)==null?void 0:bn.toLowerCase())===Be.toLowerCase()||((mr=tn.sku_type)==null?void 0:mr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(yt==null?void 0:yt.multiplier)||2})(),mi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Pt)*Ht*mi;else{be=(te+me*Pt)*Ht;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Pt)*Ht*Cr*mi;else{be=(te+me*Pt)*Ht*Cr;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),yt=C.dbsql_warehouse_size||"Small",tn=C.dbsql_num_clusters||1;let bn=Y_[yt]||12;if(Q){const Ce=_O(F,V,Be,yt);Ce&&Ce.dbu_per_hour>0&&(bn=Ce.dbu_per_hour)}if(!bn||bn===(Y_[yt]||12)){const Ce=X.find(cn=>cn.id===yt||cn.name===yt);Ce!=null&&Ce.dbu_per_hour&&(bn=Ce.dbu_per_hour)}if(be=bn*tn,qe=be*Rt,Be!=="SERVERLESS"){const Ce=Q?cl(F,V,Be,yt):null;if(Ce){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,Ce.driver_instance_type,cn,Nr),Ja=k(V,ce,Ce.worker_instance_type,hi,gi);Qe=(Ce.driver_count*xi+Ce.worker_count*Ja)*tn*Rt}else if(C.driver_node_type){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,C.driver_node_type,cn,Nr),Ja=C.worker_node_type?k(V,ce,C.worker_node_type,hi,gi):0,yx=C.num_workers||0;Qe=(xi+Ja*yx)*tn*Rt}}break;case"VECTOR_SEARCH":const mr=C.vector_search_mode||"standard",at=C.vector_capacity_millions||1;let ln=mr==="storage_optimized"?64e6:2e6,qt=mr==="storage_optimized"?18.29:4;if(Q){const Ce=bO(F,V,mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_rate)}else{const Ce=he(mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_per_hour)}const mn=at*1e6,Fe=Math.ceil(mn/ln);Ts=Fe,be=Fe*qt,qe=be*Rt;const et=C.vector_search_storage_gb||0,Wt=Fe*20,wt=Math.max(0,et-Wt),Ut=.023,hn=wt*Ut;et>0&&(Er=hn,is={totalStorageGB:et,freeStorageGB:Wt,billableStorageGB:wt,pricePerGB:Ut});break;case"MODEL_SERVING":const er=C.model_serving_gpu_type||"cpu";let Dn=2;if(Q){const Ce=wO(F,V,er);Ce&&Ce.dbu_rate>0&&(Dn=Ce.dbu_rate)}if(Dn===2){const Ce=re.find(cn=>cn.id===er||cn.name===er);Ce!=null&&Ce.dbu_per_hour&&(Dn=Ce.dbu_per_hour)}const tr=C.model_serving_scale_out||"small",Fl=tr==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[tr]||4;be=Dn*Fl,qe=be*Rt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},JC=(zl[V]||zl.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;be=Ul*JC*Vl,qe=be*Rt;const $l=Math.min(C.lakebase_storage_gb||0,8192),ZC=C.lakebase_pitr_gb||0,e2=C.lakebase_snapshot_gb||0,Hl=.023,t2=$l*15*Hl,n2=ZC*8.7*Hl,r2=e2*3.91*Hl,gx=t2+n2+r2;gx>0&&(Er=gx,is={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const s2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ds=null;if(Q&&C.fmapi_model){const Ce=kO(F,V,C.fmapi_model,Xa);Ce&&(Ds=Ce.dbu_rate)}if(Ds===null&&C.fmapi_model){const Ce=xe(C.fmapi_model,Xa);Ce&&(xx?Ds=Ce.dbu_per_hour||null:Ds=Ce.dbu_per_1M_tokens||null)}Ds===null&&(xx?Ds=Xa==="provisioned_scaling"?200:50:Ds=Xa==="output_token"?3:1),qe=s2*Ds;break;case"FMAPI_PROPRIETARY":const i2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let jr=null;if(Q&&C.fmapi_provider&&C.fmapi_model){const Ce=C.fmapi_endpoint_type||"global",cn=C.fmapi_context_length||"long",Nr=SO(F,V,C.fmapi_provider,C.fmapi_model,Ce,cn,ql);Nr&&(jr=Nr.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ce=oe(C.fmapi_provider,C.fmapi_model,ql);Ce&&(vx?jr=Ce.dbu_per_hour||null:jr=Ce.dbu_per_1M_tokens||null)}if(jr===null)if(vx)jr=150;else switch(ql){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}qe=i2*jr;break;case"DATABRICKS_APPS":{const Ce=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ce]||.5,qe=be*Rt;break}case"AI_PARSE":{const Ce={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},cn=(C.ai_parse_complexity||"medium").toLowerCase();qe=(C.ai_parse_pages_thousands||0)*(Ce[cn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{qe=(C.shutterstock_images||0)*.857;break}default:qe=0}const Tn=isNaN(An)||An===void 0?0:An,Ls=isNaN(qe)||qe===void 0?0:qe,Ln=isNaN(Qe)||Qe===void 0?0:Qe,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ls*Tn,os=zr+Ln+_n;return{monthlyDBUs:Ls,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(os)?0:os,unitsUsed:Ts,dbuPerHour:be,dbuPrice:Tn,storageCost:_n>0?_n:void 0,storageDetails:is}},Vn=m.useMemo(()=>{let R=0,J=0,C=0,V=0;return r.forEach(ce=>{const He=fr(ce);R+=isNaN(He.monthlyDBUs)?0:He.monthlyDBUs,J+=isNaN(He.dbuCost)?0:He.dbuCost,C+=isNaN(He.vmCost)?0:He.vmCost,V+=isNaN(He.totalCost)?0:He.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:V}},[r,K.cloud,K.region,K.tier,s,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=fr(J,G[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,G,K.cloud,K.region,K.tier,se,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);const fi=m.useMemo(()=>{const R=[...r];return Me==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):Me==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):Me==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):Me==="cost"&&R.sort((J,C)=>{const V=fr(J).totalCost,ce=fr(C).totalCost;return V-ce}),Yt==="desc"&&R.reverse(),R},[r,Me,Yt,fr]),Md=R=>{Me===R?jt(J=>J==="asc"?"desc":"asc"):(Re(R),jt(R==="cost"?"desc":"asc"))},UC=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad)),VC=Me==="order",zC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const V=fi.findIndex(en=>en.line_item_id===J.id),ce=fi.findIndex(en=>en.line_item_id===C.id);if(V===-1||ce===-1)return;const He=[...fi],[Pt]=He.splice(V,1);He.splice(ce,0,Pt);const{lineItems:Rt}=ws.getState(),we=Rt.map(en=>{const An=He.findIndex(be=>be.line_item_id===en.line_item_id);return An>=0?{...en,display_order:An}:en});ws.setState({lineItems:we});try{await G4(e,He.map(en=>en.line_item_id))}catch{We.error("Failed to save reorder")}},[fi,e]),ox=async()=>{if(!K.estimate_name.trim()){We.error("Enter an estimate name");return}if(!K.region){We.error("Select a region");return}if(!K.tier){We.error("Select a Databricks tier");return}L(!0);try{const R={...K,cloud:K.cloud.toUpperCase(),tier:K.tier.toUpperCase()};if(e&&n)await h(e,R),B(!1),We.success("All changes saved");else{const J=await f(R);B(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),We.success("Estimate created")}}catch{We.error("Failed to save")}finally{L(!1)}},$C=async()=>{if(e){De(!0);try{const R=await qS(e),J=`${K.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(R,J),We.success("Exported to Excel")}catch{We.error("Export failed")}finally{De(!1)}}},HC=async()=>{if(e){Y(!0),_e(!1);try{await g(e),We.success("Estimate deleted"),t("/",{replace:!0})}catch{We.error("Failed to delete estimate"),Y(!1)}}},qC=async()=>{l(),We.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),We.success("Pricing data refreshed",{id:"refresh-data"})}catch{We.error("Failed to refresh data",{id:"refresh-data"})}},lx=R=>{I(R),ot(!0)},WC=async()=>{if(Ze){mt(!0);try{await v(Ze.line_item_id),We.success("Workload removed")}catch{We.error("Failed to delete")}finally{mt(!1),ot(!1),I(null)}}},cx=()=>{Ee.size!==0&&xt(!0)},GC=async()=>{mt(!0);try{let R=0;for(const J of Ee)await v(J),R++;We.success(`${R} workload(s) deleted`),Nt(new Set)}catch{We.error("Failed to delete some workloads")}finally{mt(!1),xt(!1)}},KC=R=>{Nt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},QC=()=>{Ee.size===r.length?Nt(new Set):Nt(new Set(r.map(R=>R.line_item_id)))},ux=()=>{Jn(!1),Nt(new Set)},dx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&We.success(`Workload "${J.workload_name}" cloned`)}catch{We.error("Failed to clone workload")}},YC=()=>{O?P(!0):t("/")},XC=()=>{P(!1),t("/")},px=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),q(J)},Il=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const V=new Set(M);V.add(R),q(V)}Pe(C)},fx=R=>{const J=R.workload_type||"";return["AI_PARSE","SHUTTERSTOCK_IMAGEAI","DATABRICKS_APPS"].includes(J)?null:R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null},mx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"AI_PARSE":J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K/mo`});break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break}return J},Bl=K.estimate_name.trim()&&K.region&&K.tier,hx=()=>{const R=[];return K.estimate_name.trim()||R.push("Estimate Name"),K.region||R.push("Region"),K.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:YC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:K.estimate_name,onChange:R=>{ut(J=>({...J,estimate_name:R.target.value})),Un()},placeholder:"Untitled Estimate",title:K.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:qC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Qr,{className:de("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:$C,disabled:ke||!e,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:de("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:de("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Bt(!nt),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Tu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${K.cloud.toUpperCase()} • ${K.region||"No region"} • ${K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier"}${K.customer_name?` • ${K.customer_name}`:""}`,children:[K.cloud.toUpperCase()," • ",K.region||"No region"," • ",K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier",K.customer_name&&` • ${K.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:nt?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(fs,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!nt&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&K.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ut(V=>({...V,cloud:R.id,region:"",tier:R.id==="azure"&&V.tier==="enterprise"?"":V.tier})),x(R.id),Un())},className:de("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",K.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":K.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:de("text-sm font-semibold",K.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),K.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.region,onChange:R=>{ut(J=>({...J,region:R.target.value})),y(R.target.value),Un()},className:de("w-full text-sm",!K.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.tier,onChange:R=>{ut(J=>({...J,tier:R.target.value})),Un()},className:de("w-full text-sm",!K.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),K.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${hx().join(", ")}`,className:de("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(p3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:Le?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ee.size," selected"]}),o.jsxs("button",{onClick:cx,disabled:Ee.size===0,className:de("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ee.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>Jn(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Ie("table"),className:de("p-1.5 rounded-md transition-colors",ze==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(b3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("cards"),className:de("p-1.5 rounded-md transition-colors",ze==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Ng,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("expanded"),className:de("p-1.5 rounded-md transition-colors",ze==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(ry,{className:"w-4 h-4"})})]}),ss&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Add"]})]})]}),e?pt&&!Ye?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[ze==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ee.size===r.length&&r.length>0,onChange:QC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>Md("name"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Le?"col-span-3":"col-span-4"),children:["Workload",Me==="name"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("type"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Me==="type"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Me==="cost"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]})]}),o.jsx(PC,{sensors:UC,collisionDetection:gC,onDragEnd:zC,modifiers:[IC],children:o.jsx(DC,{items:fi.map(R=>R.line_item_id),strategy:AC,children:fi.map(R=>{var Ts,Er,is;const J=G[R.line_item_id],C=J?{...R,...J}:R,V=fr(R,J),ce=W_(C.workload_type),He=ce.icon,Pt=M.has(R.line_item_id),Rt=Ee.has(R.line_item_id),we=C.workload_type||"",en=C.serverless_enabled||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",An=((Ts=s.find(te=>te.workload_type===we))==null?void 0:Ts.display_name)||we,be=fx(C),Qe=(()=>{const te={badges:[],details:[]};if(en&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(we))en||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),we==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(we==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(we==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(we==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&we==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else we==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!VC,children:o.jsxs("div",{ref:te=>{Zn.current[R.line_item_id]=te},children:[o.jsxs("div",{className:de("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&Le&&"bg-lava-600/5",Pt&&"bg-[var(--bg-tertiary)]"),onClick:()=>px(R.line_item_id),children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>KC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:de("flex items-center gap-3",Le?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:de("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",ce.bgColor),children:o.jsx(He,{className:de("w-4 h-4",ce.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:An,children:An})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Qe.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Qe.driver||"N/A"}, Workers: ${((Er=Qe.workers)==null?void 0:Er.count)||0}× ${((is=Qe.workers)==null?void 0:is.type)||"N/A"}`,children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Qe.details.join(" · "),children:Qe.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(K_,{costs:V,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&te&&V.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>dx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),lx(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:de("p-1 rounded transition-colors",Pt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Pt?o.jsx(fs,{className:"w-5 h-5 text-lava-600"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Pt&&(Qe.badges.length>0||Qe.driver||Qe.workers||Qe.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Qe.details.join(" · ")})]}),Pt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(we)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.vmCost)})]}),we==="LAKEBASE"&&V.storageCost!==void 0&&V.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(V.storageCost)})]}),we==="VECTOR_SEARCH"&&V.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[V.unitsUsed," unit",V.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(we)&&!en&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,as=C.avg_runtime_minutes||30,Ht=C.days_per_month||30,mi=C.hours_per_month||730,Ft=te?me*(as/60)*Ht:mi,Tn=(V.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const Fe=C.vector_capacity_millions||1,et=C.vector_search_mode||"standard",Wt=et==="storage_optimized"?64:2,wt=Math.ceil(Fe/Wt),Ut=et==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,er=wt*20,Dn=Math.max(0,hn-er),tr=Dn*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M"]})," vectors ÷ ",Wt,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," unit",wt!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[er," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(tr)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(tr)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const Fe=C.fmapi_quantity||1,et=C.fmapi_rate_type||"input_token",Wt=["provisioned_scaling","provisioned_entry"].includes(et),wt=Fe>0?V.monthlyDBUs/Fe:0,Ut=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Wt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Ut,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="LAKEBASE"){const Fe=C.lakebase_cu||1,et=C.lakebase_ha_nodes||1,Wt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ut=(Wt[K.cloud||"aws"]||Wt.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,er=C.lakebase_pitr_gb||0,Dn=C.lakebase_snapshot_gb||0,tr=.023,Ya=hn*15*tr,Fl=er*8.7*tr,Ul=Dn*3.91*tr,Vl=Ya+Fl+Ul,zl=Vl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ya)})]}),er>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[er," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(er*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Fl)})]}),Dn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Dn*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ul)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),zl&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Vl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="MODEL_SERVING"){const Fe=C.model_serving_gpu_type||"cpu",et=C.model_serving_scale_out||"small",wt=et==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[et]||4,Ut=wt>0&&V.dbuPerHour?V.dbuPerHour/wt:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DBSQL"){const Fe=C.dbsql_warehouse_size||"Small",et=C.dbsql_num_clusters||1,Wt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),wt=V.dbuPerHour?V.dbuPerHour/et:12,Ut=V.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt.toFixed(1)," DBU/hr)"]}),et>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${as}min ÷ 60 × ${Ht} days`:void 0,children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),Ut&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[Wt," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:fe(V.dbuCost)}),Ut&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DATABRICKS_APPS"){const Fe=(C.databricks_apps_size||"medium").toLowerCase(),et=Fe==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe.charAt(0).toUpperCase()+Fe.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="AI_PARSE"){const Fe=(C.ai_parse_complexity||"medium").toLowerCase(),Wt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[Fe]||62.5,wt=C.ai_parse_pages_thousands||0,Ut={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Wt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut[Fe]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="SHUTTERSTOCK_IMAGEAI"){const Fe=C.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}const Ls=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,os=V.vmCost>0&&!en,Be=K.cloud||"aws",yt=K.region||"",tn=j.find(Fe=>Fe.id===Ln||Fe.name===Ln),bn=j.find(Fe=>Fe.id===_n||Fe.name===_n),mr=A(Be,Ln)||(tn==null?void 0:tn.dbu_rate)||0,at=A(Be,_n)||(bn==null?void 0:bn.dbu_rate)||0,ln=yt&&Ln?k(Be,yt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,qt=yt&&_n?k(Be,yt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,mn=V.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:mr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:at.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),os&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(ln==null?void 0:ln.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(qt==null?void 0:qt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),os&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})})()})]})]}),Pt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(q_,{onReset:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),ze!=="table"&&fi.map((R,J)=>{var An;const C=G[R.line_item_id],V=C?{...R,...C}:R,ce=fr(R,C),He=M.has(R.line_item_id),Pt=fx(V),Rt=W_(V.workload_type),we=Rt.icon,en=ze==="expanded"||He;return o.jsx("div",{ref:be=>{Zn.current[R.line_item_id]=be},children:o.jsxs($t.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:de("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",ze==="cards"&&!He&&"py-3"),onClick:()=>px(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:de("rounded-lg flex items-center justify-center flex-shrink-0",ze==="cards"&&!He?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(we,{className:de(Rt.color,ze==="cards"&&!He?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:de("font-semibold truncate text-[var(--text-primary)]",ze==="cards"&&!He&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((An=s.find(be=>be.workload_type===R.workload_type))==null?void 0:An.display_name)||R.workload_type})})]}),o.jsx(K_,{costs:ce,size:ze==="cards"&&!He?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",qe=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&qe&&ce.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>dx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),lx(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),He?o.jsx(fs,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),en&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.vmCost)})]}),R.workload_type==="LAKEBASE"&&ce.storageCost!==void 0&&ce.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(ce.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&ce.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[ce.unitsUsed," unit",ce.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),mx(R).map((be,qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},qe)),Pt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Pt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=V.workload_type||"",qe=V.serverless_enabled||be==="DBSQL"&&(V.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Qe=V.runs_per_day&&V.avg_runtime_minutes&&!V.hours_per_month,Ts=V.runs_per_day||0,Er=V.avg_runtime_minutes||30,is=V.days_per_month||30,te=V.hours_per_month||730,me=Qe?Ts*(Er/60)*is:te,Ht=(ce.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const at=V.vector_capacity_millions||1,ln=V.vector_search_mode||"standard",qt=ln==="storage_optimized"?64:2,mn=Math.ceil(at/qt),Fe=ln==="storage_optimized"?18.29:4,et=V.vector_search_storage_gb||0,Wt=mn*20,wt=Math.max(0,et-Wt),Ut=wt*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M vectors"]})," ÷ ",qt,"⌉"]}),o.jsxs("span",{children:["= ",mn," units ×"]}),o.jsxs("span",{children:[Fe," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs × $",Ht]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),et>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Wt," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),et>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Ut)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const at=V.fmapi_quantity||0,ln=ce.monthlyDBUs/(at||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[ln.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="LAKEBASE"){const at=V.lakebase_cu||1,ln=V.lakebase_ha_nodes||1,qt=V.lakebase_storage_gb||0,mn=V.lakebase_pitr_gb||0,Fe=V.lakebase_snapshot_gb||0,et=.023,Wt=qt*15*et,wt=mn*8.7*et,Ut=Fe*3.91*et,hn=Wt+wt+Ut,er=hn>0,Dn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(Dn[K.cloud||"aws"]||Dn.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),qt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(qt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Wt)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(wt)})]}),Fe>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Fe*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),er&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="MODEL_SERVING"){const at=V.model_serving_scale_out||"small",qt=at==="custom"?V.model_serving_concurrency||4:{small:4,medium:12,large:40}[at]||4,mn=qt>0&&ce.dbuPerHour?ce.dbuPerHour/qt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",at,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="DATABRICKS_APPS"){const at=(V.databricks_apps_size||"medium").toLowerCase(),ln=at==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:at.charAt(0).toUpperCase()+at.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",ln," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="AI_PARSE"){const at=(V.ai_parse_complexity||"medium").toLowerCase(),qt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[at]||62.5,mn=V.ai_parse_pages_thousands||0,Fe={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[qt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe[at]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="SHUTTERSTOCK_IMAGEAI"){const at=V.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}const mi=V.num_workers||0,Ft=V.driver_node_type||"",Cr=V.worker_node_type||"",Tn=V.photon_enabled,Ls=ce.vmCost>0&&!qe,Ln=K.cloud||"aws",_n=K.region||"",zr=j.find(at=>at.id===Ft||at.name===Ft),os=j.find(at=>at.id===Cr||at.name===Cr),Be=A(Ln,Ft)||(zr==null?void 0:zr.dbu_rate)||0,yt=A(Ln,Cr)||(os==null?void 0:os.dbu_rate)||0,tn=_n&&Ft?k(Ln,_n,Ft,V.driver_pricing_tier||"on_demand",V.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?k(Ln,_n,Cr,V.worker_pricing_tier||"spot",V.worker_payment_option||"NA"):null,mr=ce.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Qe&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ts," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Tn?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ft,children:Be.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:yt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),Tn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),Ls&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ft,children:["$",(tn==null?void 0:tn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(ce.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),Ls&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(ce.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})})()})]})]})]}),He&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(q_,{onReset:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe}),ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onSave:()=>{ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onFormChange:be=>{ae(qe=>({...qe,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),ss?E?o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(nf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Lu,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(ms,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(_m,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),pt&&!Ye&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>vt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(sr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),ss?pt&&!Ye?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:de("text-3xl font-bold text-lava-600",Xe&&"opacity-60"),children:fe(Vn.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[fe(Vn.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:fe(Vn.totalDBUCost),children:G_(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Xe?"Loading...":fe(Vn.totalVMCost),children:Xe?"...":G_(Vn.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>ns(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:fe(V.totalCost),children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full transition-all",Pt,"group-hover:brightness-110"),style:{width:`${Math.max(He,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(ms,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Ct&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>ht(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>ht(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>{ht(!1),ns(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full",Pt),style:{width:`${Math.max(He,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>vt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>ht(!Ct),className:de("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Ct?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(ry,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(fs,{className:de("w-3 h-3 transition-transform",Ct?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[fe(Vn.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ee.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ee.size," workload",Ee.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ue&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',K.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:HC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Ze&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Ze.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),st&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ee.size," Workload",Ee.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ee.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>xt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:GC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),W&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(ms,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:XC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let k="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?k="JOBS_COMPUTE_(PHOTON)":k="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?k="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?k="ALL_PURPOSE_COMPUTE_(PHOTON)":k="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":(k=`DLT_${A}_COMPUTE`,e.photon_enabled&&(k+="_(PHOTON)"));break;case"DBSQL":const ue=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ue==="SERVERLESS"?k="SERVERLESS_SQL_COMPUTE":ue==="PRO"?k="SQL_PRO_COMPUTE":k="SQL_COMPUTE";break;case"VECTOR_SEARCH":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();k=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":k="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":k="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":k="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":k="DELTA_LIVE_TABLES_SERVERLESS";break;default:k="JOBS_COMPUTE"}let S=null;if(b){const ue=b(k);ue!==null&&ue>0&&(S=ue)}S===null&&(S=x[k]||.2),console.log(`[LiveEstimate] productType=${k}, dbuPrice=${S}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,$=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ue=g(e.driver_node_type);ue!==null&&ue>0&&(re=ue)}if(re===.5){const ue=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ue!=null&&ue.dbu_rate&&(re=ue.dbu_rate)}if(g&&e.worker_node_type){const ue=g(e.worker_node_type);ue!==null&&ue>0&&(le=ue)}if(le===.5){const ue=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ue!=null&&ue.dbu_rate&&(le=ue.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ue=k.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ue="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ue="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ue=`DLT_${A}_COMPUTE`)),v){const ve=v(ue);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var ot;return ve.sku_type===ue||ve.sku_type===k||((ot=ve.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DBSQL":const ue=l.find(Le=>Le.id===e.dbsql_warehouse_size||Le.name===e.dbsql_warehouse_size),_e=(ue==null?void 0:ue.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const Le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Jn=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Zn=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",ns=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Un=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Un){const rs=d(n,r,Un.driver_instance_type,Le,Jn),ss=d(n,r,Un.worker_instance_type,Zn,ns);$=(Un.driver_count*rs+Un.worker_count*ss)*ve*_}else if(e.driver_node_type){const rs=d(n,r,e.driver_node_type,Le,Jn),ss=e.worker_node_type?d(n,r,e.worker_node_type,Zn,ns):0,fr=e.num_workers||0;$=(rs+ss*fr)*ve*_}}break;case"VECTOR_SEARCH":const Ze=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,st=h(Ze),xt=(st==null?void 0:st.input_divisor)||(Ze==="storage_optimized"?64e6:2e6),lt=(st==null?void 0:st.dbu_per_hour)||(Ze==="storage_optimized"?18.29:4),mt=I*1e6,W=Math.ceil(mt/xt);j=W,T=W*lt,D=T*_;const P=e.vector_search_storage_gb||0,E=W*20,ie=Math.max(0,P-E),M=.023,q=ie*M;P>0&&(H=q,X={totalStorageGB:P,freeStorageGB:E,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Le=>Le.id===Se||Le.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,B=e.model_serving_scale_out||"small",ae=B==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[B]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Ve=e.lakebase_ha_nodes||1,pt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ye=(pt[n]||pt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ye*Ve,D=T*_;const ct=Math.min(e.lakebase_storage_gb||0,8192),Xe=15,It=ct*Xe,U=.023,Z=It*U,Te=e.lakebase_pitr_gb||0,K=Te*8.7*U,ut=e.lakebase_snapshot_gb||0,Bt=ut*3.91*U;(ct>0||Te>0||ut>0)&&(H=Z+K+Bt,X={totalStorageGB:ct,billableStorageGB:ct,dsuPerGB:Xe,totalDSU:It,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,vt=e.fmapi_rate_type||"input_token",Ct=["provisioned_scaling","provisioned_entry"].includes(vt),ht=e.fmapi_model?p(e.fmapi_model,vt):null;if(Ct){const Le=(ht==null?void 0:ht.dbu_per_hour)||(vt==="provisioned_scaling"?200:50);D=ft*Le}else{const Le=(ht==null?void 0:ht.dbu_per_1M_tokens)||(vt==="output_token"?3:1);D=ft*Le}break;case"FMAPI_PROPRIETARY":const ze=e.fmapi_quantity||0,Ie=e.fmapi_rate_type||"input_token",Me=Ie==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Yt=e.fmapi_context_length||"long",jt=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Ie,Re,Yt):null;if(Me){const Le=(jt==null?void 0:jt.dbu_per_hour)||150;D=ze*Le}else{let Le=jt==null?void 0:jt.dbu_per_1M_tokens;if(!Le)switch(Ie){case"output_token":Le=321.43;break;case"cache_read":Le=8.57;break;case"cache_write":Le=85.71;break;default:Le=21.43}D=ze*Le}break;case"DATABRICKS_APPS":const Ee=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ee]||.5,D=T*_;break;case"AI_PARSE":{const Le={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Jn=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Le[Jn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{D=(e.shutterstock_images||0)*.857;break}default:D=0}const F=D*S,Q=H!==void 0&&!isNaN(H)?H:0,N=F+$+Q,se=isNaN(F)?0:F,pe=isNaN($)?0:$,L=isNaN(N)?se:N,ke=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(S)?.15:S;return{monthlyDBUs:ke,dbuCost:se,vmCost:pe,totalCost:L,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:Q>0?Q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function gs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?aE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of gs(Z_,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of gs(Z_,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of gs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of gs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of gs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),p=d.length>0?gs(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=gs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=gs(Qm(l),e.tiersPerCloud);for(const p of u){const f=Hu(t,l),h=f.length>0?gs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[k,A]=m.useState({current:0,total:0}),[S,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),$=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:F,isPricingBundleLoaded:Q,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:ke,getVectorSearchRate:De}=ws();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,F),[j,F]),Y=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ue=m.useMemo(()=>{const M=new Set(w.map(q=>q.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,q,Se)=>{const Pe=Q&&F.modelServingRates?Object.entries(F.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,B])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:B.dbu_rate}}):xe;return{cloud:M,region:q,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,B)=>{if(Q&&F.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${B}`,ae=F.fmapiDatabricksRates[G];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,B)},getFMAPIProprietaryRate:(O,B,G,ae,je)=>{if(Q&&F.fmapiProprietaryRates){const Ve=ae||"global",pt=je||"all",it=`${M.toLowerCase()}:${O.toLowerCase()}:${B.toLowerCase()}:${Ve}:${pt}:${G}`,Ye=F.fmapiProprietaryRates[it];if(Ye)return{dbu_per_1M_tokens:Ye.is_hourly?void 0:Ye.dbu_rate,dbu_per_hour:Ye.is_hourly?Ye.dbu_rate:void 0}}return ke(O,B,G)},getVectorSearchRate:O=>{if(Q&&F.vectorSearchRates){const B=`${M.toLowerCase()}:${O}`,G=F.vectorSearchRates[B];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>Q?Pm(F,M,O):null,getPhotonMultiplier:O=>Q?iE(F,M,O):null,getDBUPrice:O=>Q?Lg(F,M,q,Se,O):null,getDBSQLWarehouseConfig:(O,B)=>Q?cl(F,M,O,B):null}},[X,re,le,he,xe,oe,Q,F,se,L,ke,De]),ve=async M=>{var K,ut,nt,Bt,ft,vt,Ct,ht,ze;const{environment:q,workloadType:Se,config:Pe}=M,O=_e(q.cloud,q.region,q.tier),B={...Pe,workload_type:Se},G=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Ie=cl(F,q.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Ie){const Me=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.driver_instance_type,Me,Re));const Yt=Pe.dbsql_worker_pricing_tier||"on_demand",jt=Pe.dbsql_worker_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.worker_instance_type,Yt,jt))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(G.push(pe(q.cloud,q.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&G.push(pe(q.cloud,q.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const ae=performance.now(),je=y8(B,O),Ve=performance.now()-ae,pt=performance.now();let it=null,Ye,ct;const Xe=j8(Se,Pe),It=N8(M);try{const Ie=await fetch(Xe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(It)});if(Ie.ok){const Me=await Ie.json();ct=Me;const Re=Me.data||Me,Yt=((K=Re.dbu_calculation)==null?void 0:K.dbu_per_month)??Re.dbu_per_month??(((ut=Re.dbu_calculation)==null?void 0:ut.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),jt=((nt=Re.dbu_calculation)==null?void 0:nt.dbu_cost_per_month)??((ft=(Bt=Re.total_cost)==null?void 0:Bt.breakdown)==null?void 0:ft.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ee=((vt=Re.vm_costs)==null?void 0:vt.vm_cost_per_month)??((ht=(Ct=Re.total_cost)==null?void 0:Ct.breakdown)==null?void 0:ht.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let Nt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?Nt=Re.total_cost.cost_per_month??jt+Ee:typeof Re.total_cost=="number"?Nt=Re.total_cost:Nt=Re.total_cost_per_month??jt+Ee,it={monthlyDBUs:Yt,dbuCost:jt,vmCost:Ee,totalCost:Nt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Me,parsed:it})}else{const Me=await Ie.text();try{const Re=JSON.parse(Me);Ye=`HTTP ${Ie.status}: ${((ze=Re.detail)==null?void 0:ze.message)||Re.detail||Re.message||Me}`}catch{Ye=`HTTP ${Ie.status}: ${Me}`}}}catch(Ie){Ye=Ie instanceof Error?Ie.message:"Unknown error"}const U=performance.now()-pt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,it,g),$e=Te<=g&&!Ye;return{testCase:M,localResult:je,apiResult:it,apiError:Ye,apiRequestBody:It,apiRawResponse:ct,localTimeMs:Ve,apiTimeMs:U,matches:$e,totalCostDiffPercent:Te,discrepancies:Z}},ot=()=>{D.current=!0,i(!0)},Ze=()=>{D.current=!1,i(!1)},I=()=>{$.current=!0,l(!0),D.current=!1,i(!1)},st=async()=>{for(;D.current&&!$.current;)await new Promise(M=>setTimeout(M,100))},xt=async()=>{r(!0),i(!1),l(!1),D.current=!1,$.current=!1,t([]),A({current:0,total:Y.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:q,tier:Se,workloadType:Pe,serverless:O,photon:B,driverNode:G,workerNode:ae,numWorkers:je,runsPerDay:Ve,avgRuntime:pt,daysPerMonth:it,hoursPerMonth:Ye}=S,ct={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:q,tier:Se},config:{serverless_enabled:O,photon_enabled:B,driver_node_type:G,worker_node_type:ae,num_workers:je,runs_per_day:Ve,avg_runtime_minutes:pt,days_per_month:it,hours_per_month:Ye,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Xe=await ve(ct);t([Xe]),u(null),r(!1)},mt=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,q=e.filter(G=>!G.matches).length,Se=e.filter(G=>G.apiError).length,Pe=e.length>0?e.reduce((G,ae)=>G+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,ae)=>G+ae.apiTimeMs,0)/e.length:0,B={};return e.forEach(G=>{const ae=G.testCase.category;B[ae]||(B[ae]={passed:0,failed:0}),G.matches?B[ae].passed++:B[ae].failed++}),{passed:M,failed:q,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:B}},[e]),W=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],q=e.map(G=>{var ae;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((ae=G.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Se=[M.join(","),...q.map(G=>G.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),B=document.createElement("a");B.href=O,B.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,B.click()},P=M=>{const q=new Set(d);q.has(M)?q.delete(M):q.add(M),p(q)},E=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(cD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(ZL,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:W,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(LD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(e3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Ze,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:xt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:S.cloud,onChange:M=>T({...S,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:S.region,onChange:M=>T({...S,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Km(F,S.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:S.tier,onChange:M=>T({...S,tier:M.target.value}),className:"w-full text-sm",children:Qm(S.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:S.workloadType,onChange:M=>T({...S,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.serverless,onChange:M=>T({...S,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.photon,onChange:M=>T({...S,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:S.driverNode,onChange:M=>T({...S,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:S.workerNode,onChange:M=>T({...S,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:S.numWorkers,onChange:M=>T({...S,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:S.runsPerDay,onChange:M=>T({...S,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:S.avgRuntime,onChange:M=>T({...S,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:S.daysPerMonth,onChange:M=>T({...S,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(jD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Km(F,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:q=>{q.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ue.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Q?"text-green-500":"text-yellow-500"}`,children:[Q?o.jsx(Au,{className:"w-5 h-5"}):o.jsx(ms,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:mt.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:mt.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:mt.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[mt.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[mt.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(mt.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(mt.byCategory).map(([M,{passed:q,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[q," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx($t.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${k.current/k.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[k.current," / ",k.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:Y.map(M=>{const q=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${q&&!q.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>q&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[q&&(Se?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q?E(q.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q!=null&&q.apiResult?E(q.apiResult.totalCost):q!=null&&q.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:q?o.jsxs("span",{className:q.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[q.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):q?q.matches?o.jsx(Au,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(C3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),q&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(q.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:E(q.localResult.totalCost)})]}),q.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",q.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),q.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:q.apiError})}):q.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(q.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:E(q.apiResult.totalCost)})]})]}):null]})]}),q.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:q.discrepancies.map((O,B)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},B))})]})})]}),q.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(q.apiRawResponse,null,2)})})]}),q.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(q.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:q.testCase.environment,config:q.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(jN,{children:o.jsxs(wi,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(wi,{index:!0,element:o.jsx(u8,{})}),o.jsx(wi,{path:"calculator",element:o.jsx(X_,{})}),o.jsx(wi,{path:"calculator/:id",element:o.jsx(X_,{})}),o.jsx(wi,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(wi,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();rf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(DN,{children:[o.jsx(A8,{}),o.jsx(EP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-CCX2LezT.css b/lakemeter/backend/static/assets/index-CCX2LezT.css new file mode 100644 index 00000000..3ad137f2 --- /dev/null +++ b/lakemeter/backend/static/assets/index-CCX2LezT.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=JetBrains+Mono:wght@400;500;600&display=swap";*,: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:DM Sans,Inter,system-ui,-apple-system,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,SF Mono,Menlo,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}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn{font-family:DM Sans,system-ui,sans-serif}.btn-primary{background-color:var(--databricks-red);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--databricks-lava);box-shadow:0 10px 15px -3px #ff362140}.btn-primary:active{transform:scale(.98)}.btn-secondary{background-color:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-tertiary);border-color:var(--border-secondary)}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.card{background-color:var(--bg-card);border:1px solid var(--border-primary);border-radius:.75rem;transition:all .2s}.badge{display:inline-flex;align-items:center;border-radius:.375rem;padding:.125rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500}.badge-lava{background-color:#ff362126;color:var(--databricks-lava);border:1px solid rgba(255,54,33,.25)}.badge-teal{background-color:#14b8a626;color:#14b8a6;border:1px solid rgba(20,184,166,.25)}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.bottom-\[10px\]{bottom:10px}.bottom-\[6px\]{bottom:6px}.bottom-full{bottom:100%}.left-0{left:0}.left-3{left:.75rem}.right-0{right:0}.right-1\.5{right:.375rem}.right-12{right:3rem}.right-2{right:.5rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-14{top:3.5rem}.top-24{top:6rem}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[100\]{z-index:100}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-5{grid-column:span 5 / span 5}.col-span-7{grid-column:span 7 / span 7}.col-span-full{grid-column:1 / -1}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-ml-1{margin-left:-.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.max-h-32{max-height:8rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-\[280px\]{max-height:280px}.max-h-\[600px\]{max-height:600px}.min-h-\[50vh\]{min-height:50vh}.min-h-\[60vh\]{min-height:60vh}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.min-w-\[200px\]{min-width:200px}.min-w-\[250px\]{min-width:250px}.min-w-\[80px\]{min-width:80px}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-\[85\%\]{max-width:85%}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;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-y-1\/2{--tw-translate-y: 50%;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))}.rotate-180{--tw-rotate: 180deg;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))}.rotate-45{--tw-rotate: 45deg;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))}.transform{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 bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.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}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-1{row-gap:.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * 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-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * 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-\[var\(--border-primary\)\]>:not([hidden])~:not([hidden]){border-color:var(--border-primary)}.overflow-auto{overflow:auto}.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}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-tr-md{border-top-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[var\(--border-primary\)\]{border-color:var(--border-primary)}.border-\[var\(--border-secondary\)\]{border-color:var(--border-secondary)}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/30{border-color:#3b82f64d}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-green-500\/30{border-color:#22c55e4d}.border-lava-400{--tw-border-opacity: 1;border-color:rgb(255 107 87 / var(--tw-border-opacity, 1))}.border-lava-500{--tw-border-opacity: 1;border-color:rgb(255 77 56 / var(--tw-border-opacity, 1))}.border-lava-600{--tw-border-opacity: 1;border-color:rgb(255 54 33 / var(--tw-border-opacity, 1))}.border-lava-600\/10{border-color:#ff36211a}.border-lava-600\/20{border-color:#ff362133}.border-lava-600\/30{border-color:#ff36214d}.border-lava-600\/50{border-color:#ff362180}.border-purple-500\/20{border-color:#a855f733}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-red-500\/30{border-color:#ef44444d}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-teal-400{--tw-border-opacity: 1;border-color:rgb(45 212 191 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.border-t-lava-600{--tw-border-opacity: 1;border-top-color:rgb(255 54 33 / var(--tw-border-opacity, 1))}.border-t-red-500{--tw-border-opacity: 1;border-top-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#d7edfe\]{--tw-bg-opacity: 1;background-color:rgb(215 237 254 / var(--tw-bg-opacity, 1))}.bg-\[var\(--bg-primary\)\]{background-color:var(--bg-primary)}.bg-\[var\(--bg-secondary\)\]{background-color:var(--bg-secondary)}.bg-\[var\(--bg-tertiary\)\]{background-color:var(--bg-tertiary)}.bg-\[var\(--border-primary\)\]{background-color:var(--border-primary)}.bg-\[var\(--border-secondary\)\]{background-color:var(--border-secondary)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/50{background-color:#eff6ff80}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/5{background-color:#3b82f60d}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity, 1))}.bg-cyan-500\/10{background-color:#06b6d41a}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-50\/50{background-color:#f0fdf480}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-500\/10{background-color:#6366f11a}.bg-lava-400{--tw-bg-opacity: 1;background-color:rgb(255 107 87 / var(--tw-bg-opacity, 1))}.bg-lava-500{--tw-bg-opacity: 1;background-color:rgb(255 77 56 / var(--tw-bg-opacity, 1))}.bg-lava-500\/10{background-color:#ff4d381a}.bg-lava-600{--tw-bg-opacity: 1;background-color:rgb(255 54 33 / var(--tw-bg-opacity, 1))}.bg-lava-600\/10{background-color:#ff36211a}.bg-lava-600\/5{background-color:#ff36210d}.bg-lava-600\/50{background-color:#ff362180}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-pink-500\/10{background-color:#ec48991a}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/5{background-color:#ef44440d}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-rose-500\/10{background-color:#f43f5e1a}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-teal-100{--tw-bg-opacity: 1;background-color:rgb(204 251 241 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/20{background-color:#fff3}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/10{background-color:#eab3081a}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-\[var\(--bg-secondary\)\]{--tw-gradient-from: var(--bg-secondary) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500{--tw-gradient-from: #f59e0b var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-600\/20{--tw-gradient-from: rgb(217 119 6 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(217 119 6 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/5{--tw-gradient-from: rgb(59 130 246 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-lava-500{--tw-gradient-from: #FF4D38 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 77 56 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-lava-600{--tw-gradient-from: #FF3621 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 54 33 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-lava-600\/10{--tw-gradient-from: rgb(255 54 33 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 54 33 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-lava-600\/5{--tw-gradient-from: rgb(255 54 33 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 54 33 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500\/5{--tw-gradient-from: rgb(168 85 247 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-600\/20{--tw-gradient-from: rgb(220 38 38 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(220 38 38 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-600\/20{--tw-gradient-from: rgb(2 132 199 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(2 132 199 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-amber-500{--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #f59e0b var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[var\(--bg-primary\)\]{--tw-gradient-to: var(--bg-primary) var(--tw-gradient-to-position)}.to-amber-400{--tw-gradient-to: #fbbf24 var(--tw-gradient-to-position)}.to-amber-500{--tw-gradient-to: #f59e0b var(--tw-gradient-to-position)}.to-amber-500\/10{--tw-gradient-to: rgb(245 158 11 / .1) var(--tw-gradient-to-position)}.to-amber-500\/5{--tw-gradient-to: rgb(245 158 11 / .05) var(--tw-gradient-to-position)}.to-amber-600{--tw-gradient-to: #d97706 var(--tw-gradient-to-position)}.to-amber-900\/10{--tw-gradient-to: rgb(120 53 15 / .1) var(--tw-gradient-to-position)}.to-blue-500\/10{--tw-gradient-to: rgb(59 130 246 / .1) var(--tw-gradient-to-position)}.to-lava-600{--tw-gradient-to: #FF3621 var(--tw-gradient-to-position)}.to-purple-500\/10{--tw-gradient-to: rgb(168 85 247 / .1) var(--tw-gradient-to-position)}.to-red-900\/10{--tw-gradient-to: rgb(127 29 29 / .1) var(--tw-gradient-to-position)}.to-sky-900\/10{--tw-gradient-to: rgb(12 74 110 / .1) var(--tw-gradient-to-position)}.to-slate-100{--tw-gradient-to: #f1f5f9 var(--tw-gradient-to-position)}.to-yellow-500{--tw-gradient-to: #eab308 var(--tw-gradient-to-position)}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-12{padding-left:3rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pr-12{padding-right:3rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,SF Mono,Menlo,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.7\]{line-height:1.7}.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--text-tertiary\)\]{color:var(--text-tertiary)}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-500{--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-300{--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-lava-500{--tw-text-opacity: 1;color:rgb(255 77 56 / var(--tw-text-opacity, 1))}.text-lava-600{--tw-text-opacity: 1;color:rgb(255 54 33 / var(--tw-text-opacity, 1))}.text-lava-700{--tw-text-opacity: 1;color:rgb(224 46 26 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-teal-500{--tw-text-opacity: 1;color:rgb(20 184 166 / var(--tw-text-opacity, 1))}.text-teal-600{--tw-text-opacity: 1;color:rgb(13 148 136 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-\[var\(--text-muted\)\]::-moz-placeholder{color:var(--text-muted)}.placeholder-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -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-\[0_-4px_20px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow: 0 -4px 20px rgba(0,0,0,.1);--tw-shadow-colored: 0 -4px 20px 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-\[0_-8px_30px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow: 0 -8px 30px rgba(0,0,0,.2);--tw-shadow-colored: 0 -8px 30px 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-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px 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-lava-600\/25{--tw-shadow-color: rgb(255 54 33 / .25);--tw-shadow: var(--tw-shadow-colored)}.ring{--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(3px + 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)}.ring-1{--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)}.ring-2{--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(2px + 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)}.ring-lava-600\/30{--tw-ring-color: rgb(255 54 33 / .3)}.ring-lava-600\/50{--tw-ring-color: rgb(255 54 33 / .5)}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-\[var\(--bg-primary\)\]{--tw-ring-offset-color: var(--bg-primary)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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}:root{--databricks-red: #FF3621;--databricks-lava: #FF3621;--databricks-coral: #FF9E7A;--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--bg-input: #ffffff;--bg-hover: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border-primary: #e2e8f0;--border-secondary: #cbd5e1}html.dark,.dark{--bg-primary: #0a0e14;--bg-secondary: #12171f;--bg-tertiary: #1a2230;--bg-card: #12171f;--bg-input: #1a2230;--bg-hover: #242e3f;--text-primary: #ffffff;--text-secondary: #c1c9d4;--text-muted: #8b95a5;--border-primary: #2a3545;--border-secondary: #3a4a5f}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:DM Sans,system-ui,-apple-system,sans-serif;min-height:100vh;transition:background-color .2s,color .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}input,select,textarea{background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:.375rem;padding:.375rem .625rem;color:var(--text-primary);font-family:DM Sans,system-ui,sans-serif;font-size:.875rem;transition:all .2s}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--text-muted)}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 2px #f9731633;border-color:#f9731680}input:hover,select:hover,textarea:hover{border-color:var(--border-secondary)}input[type=checkbox]{width:1rem;height:1rem;border-radius:.25rem;cursor:pointer;accent-color:var(--databricks-red)}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%238b95a5' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-size:1rem 1rem;padding-right:2rem;min-height:2rem}select option{background-color:var(--bg-secondary);color:var(--text-primary);padding:.5rem}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=range]{width:100%;height:.5rem;background:var(--border-primary);border-radius:9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:1rem;height:1rem;background:var(--databricks-red);border-radius:50%;cursor:pointer;box-shadow:0 4px 6px -1px #ff36214d}.toggle{position:relative;display:inline-flex;height:1.5rem;width:2.75rem;align-items:center;border-radius:9999px;cursor:pointer;transition:background-color .2s}.toggle-checked{background-color:var(--databricks-red)}.toggle-unchecked{background-color:var(--border-secondary)}.toggle-knob{display:inline-block;height:1rem;width:1rem;transform:translate(0);border-radius:9999px;background-color:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.toggle-knob-checked{transform:translate(1.5rem)}.toggle-knob-unchecked{transform:translate(.25rem)}.cost-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;padding:.75rem;background-color:var(--bg-tertiary);border-radius:.5rem;border:1px solid var(--border-primary)}.cost-breakdown-item{text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .2s ease-out}.animate-slide-up{animation:slideUp .3s ease-out}.placeholder\:text-\[var\(--text-muted\)\]::-moz-placeholder{color:var(--text-muted)}.placeholder\:text-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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))}.hover\:border-\[var\(--border-secondary\)\]:hover{border-color:var(--border-secondary)}.hover\:border-current:hover{border-color:currentColor}.hover\:border-lava-400:hover{--tw-border-opacity: 1;border-color:rgb(255 107 87 / var(--tw-border-opacity, 1))}.hover\:border-lava-600\/20:hover{border-color:#ff362133}.hover\:border-lava-600\/30:hover{border-color:#ff36214d}.hover\:border-lava-600\/50:hover{border-color:#ff362180}.hover\:bg-\[var\(--bg-hover\)\]:hover{background-color:var(--bg-hover)}.hover\:bg-\[var\(--bg-secondary\)\]:hover{background-color:var(--bg-secondary)}.hover\:bg-\[var\(--bg-tertiary\)\]:hover{background-color:var(--bg-tertiary)}.hover\:bg-amber-700:hover{--tw-bg-opacity: 1;background-color:rgb(180 83 9 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-500\/10:hover{background-color:#3b82f61a}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-green-200:hover{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.hover\:bg-green-500\/20:hover{background-color:#22c55e33}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-lava-500\/10:hover{background-color:#ff4d381a}.hover\:bg-lava-600\/10:hover{background-color:#ff36211a}.hover\:bg-lava-600\/30:hover{background-color:#ff36214d}.hover\:bg-lava-600\/5:hover{background-color:#ff36210d}.hover\:bg-lava-700:hover{--tw-bg-opacity: 1;background-color:rgb(224 46 26 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/10:hover{background-color:#ef44441a}.hover\:bg-red-500\/20:hover{background-color:#ef444433}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-teal-700:hover{--tw-bg-opacity: 1;background-color:rgb(15 118 110 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/50:hover{background-color:#ffffff80}.hover\:bg-yellow-500\/20:hover{background-color:#eab30833}.hover\:from-lava-700:hover{--tw-gradient-from: #E02E1A var(--tw-gradient-from-position);--tw-gradient-to: rgb(224 46 26 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-amber-600:hover{--tw-gradient-to: #d97706 var(--tw-gradient-to-position)}.hover\:to-amber-700:hover{--tw-gradient-to: #b45309 var(--tw-gradient-to-position)}.hover\:text-\[var\(--text-primary\)\]:hover{color:var(--text-primary)}.hover\:text-\[var\(--text-secondary\)\]:hover{color:var(--text-secondary)}.hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-lava-600:hover{--tw-text-opacity: 1;color:rgb(255 54 33 / var(--tw-text-opacity, 1))}.hover\:text-lava-700:hover{--tw-text-opacity: 1;color:rgb(224 46 26 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lava-600\/35:hover{--tw-shadow-color: rgb(255 54 33 / .35);--tw-shadow: var(--tw-shadow-colored)}.focus\:border-lava-500:focus{--tw-border-opacity: 1;border-color:rgb(255 77 56 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--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(0px + 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)}.focus\:ring-2:focus{--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(2px + 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)}.focus\:ring-blue-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1))}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-lava-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 77 56 / var(--tw-ring-opacity, 1))}.focus\:ring-lava-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 54 33 / var(--tw-ring-opacity, 1))}.focus\:ring-teal-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:bg-gray-100:disabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.disabled\:bg-green-400:disabled{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:border-lava-600\/50{border-color:#ff362180}.group:hover .group-hover\:text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.group:hover .group-hover\:text-lava-600{--tw-text-opacity: 1;color:rgb(255 54 33 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:brightness-110{--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)}.dark\:border-amber-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(180 83 9 / var(--tw-border-opacity, 1))}.dark\:border-amber-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(146 64 14 / var(--tw-border-opacity, 1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 101 52 / var(--tw-border-opacity, 1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-green-950\/20:is(.dark *){background-color:#052e1633}.dark\:bg-lava-600\/10:is(.dark *){background-color:#ff36211a}.dark\:bg-lava-600\/30:is(.dark *){background-color:#ff36214d}.dark\:bg-orange-900\/30:is(.dark *){background-color:#7c2d124d}.dark\:bg-red-800\/50:is(.dark *){background-color:#991b1b80}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 15 20 / var(--tw-bg-opacity, 1))}.dark\:bg-teal-900\/30:is(.dark *){background-color:#134e4a4d}.dark\:from-slate-800\/50:is(.dark *){--tw-gradient-from: rgb(30 41 59 / .5) var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-slate-900\/50:is(.dark *){--tw-gradient-to: rgb(15 23 42 / .5) var(--tw-gradient-to-position)}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-green-200:is(.dark *){--tw-text-opacity: 1;color:rgb(187 247 208 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-lava-400:is(.dark *){--tw-text-opacity: 1;color:rgb(255 107 87 / var(--tw-text-opacity, 1))}.dark\:text-lava-500:is(.dark *){--tw-text-opacity: 1;color:rgb(255 77 56 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-teal-300:is(.dark *){--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.dark\:text-teal-400:is(.dark *){--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-blue-900\/30:hover:is(.dark *){background-color:#1e3a8a4d}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-green-800\/50:hover:is(.dark *){background-color:#16653480}.dark\:hover\:bg-red-700\/50:hover:is(.dark *){background-color:#b91c1c80}.dark\:hover\:bg-red-800\/50:hover:is(.dark *){background-color:#991b1b80}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-900\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\:hover\:text-lava-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 107 87 / var(--tw-text-opacity, 1))}.dark\:hover\:text-lava-500:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 77 56 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:focus\:border-lava-600:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(255 54 33 / var(--tw-border-opacity, 1))}@media (min-width: 640px){.sm\:col-span-3{grid-column:span 3 / span 3}.sm\:col-span-4{grid-column:span 4 / span 4}.sm\:mx-8{margin-left:2rem;margin-right:2rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-4{gap:1rem}.sm\:p-3{padding:.75rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 768px){.md\:col-span-1{grid-column:span 1 / span 1}.md\:block{display:block}.md\:inline{display:inline}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width: 1024px){.lg\:col-span-1{grid-column:span 1 / span 1}.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:px-8{padding-left:2rem;padding-right:2rem}} diff --git a/lakemeter/backend/static/assets/index-CUK1oB0n.js b/lakemeter/backend/static/assets/index-CUK1oB0n.js new file mode 100644 index 00000000..b56db36b --- /dev/null +++ b/lakemeter/backend/static/assets/index-CUK1oB0n.js @@ -0,0 +1,354 @@ +function a2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var hs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},Ke={};/** + * @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 hl=Symbol.for("react.element"),o2=Symbol.for("react.portal"),l2=Symbol.for("react.fragment"),c2=Symbol.for("react.strict_mode"),u2=Symbol.for("react.profiler"),d2=Symbol.for("react.provider"),p2=Symbol.for("react.context"),f2=Symbol.for("react.forward_ref"),m2=Symbol.for("react.suspense"),h2=Symbol.for("react.memo"),g2=Symbol.for("react.lazy"),_x=Symbol.iterator;function x2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Ia.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;sb(Xm,Ia.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ob=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ob.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=F[se];if(0>>1;ses(De,N))ws(Y,De)?(F[se]=Y,F[w]=N,se=w):(F[se]=De,F[ke]=N,se=ke);else if(ws(Y,N))F[se]=Y,F[w]=N,se=w;else break e}}return Q}function s(F,Q){var N=F.sortIndex-Q.sortIndex;return N!==0?N:F.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(F){for(var Q=n(u);Q!==null;){if(Q.callback===null)r(u);else if(Q.startTime<=F)r(u),Q.sortIndex=Q.expirationTime,t(c,Q);else break;Q=n(u)}}function k(F){if(v=!1,_(F),!g)if(n(c)!==null)g=!0,xe(A);else{var Q=n(u);Q!==null&&oe(k,Q.startTime-F)}}function A(F,Q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Q),p=n(c);p!==null&&(!(p.expirationTime>Q)||F&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var pe=se(p.expirationTime<=Q);Q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(Q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var ke=n(u);ke!==null&&oe(k,ke.startTime-Q),L=!1}return L}finally{p=null,f=N,h=!1}}var S=!1,T=null,D=-1,$=5,j=-1;function H(){return!(e.unstable_now()-j<$)}function X(){if(T!==null){var F=e.unstable_now();j=F;var Q=!0;try{Q=T(!0,F)}finally{Q?re():(S=!1,T=null)}}else S=!1}var re;if(typeof y=="function")re=function(){y(X)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,he=le.port2;le.port1.onmessage=X,re=function(){he.postMessage(null)}}else re=function(){b(X,0)};function xe(F){T=F,S||(S=!0,re())}function oe(F,Q){D=b(function(){F(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_continueExecution=function(){g||h||(g=!0,xe(A))},e.unstable_forceFrameRate=function(F){0>F||125se?(F.sortIndex=N,t(u,F),n(c)===null&&F===n(u)&&(v?(x(D),D=-1):v=!0,oe(k,N-se))):(F.sortIndex=pe,t(c,F),g||h||(g=!0,xe(A))),F},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(F){var Q=f;return function(){var N=f;f=Q;try{return F.apply(this,arguments)}finally{f=N}}}})(mb);fb.exports=mb;var P2=fb.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 R2=m,cr=P2;function ee(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"),sf=Object.prototype.hasOwnProperty,A2=/^[: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]*$/,kx={},Sx={};function T2(e){return sf.call(Sx,e)?!0:sf.call(kx,e)?!1:A2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function L2(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 D2(e,t,n,r){if(t===null||typeof t>"u"||L2(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 Fn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new Fn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new Fn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new Fn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new Fn(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){yn[e]=new Fn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new Fn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new Fn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new Fn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new Fn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new Fn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function M2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Fd(e.type,!1),e;case 11:return e=Fd(e.type.render,!1),e;case 1:return e=Fd(e.type,!0),e;default:return""}}function cf(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 Xi:return"Fragment";case Yi:return"Portal";case af:return"Profiler";case rh:return"StrictMode";case of:return"Suspense";case lf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cf(e.type)||"Memo";case Bs:t=e._payload,e=e._init;try{return cf(e(t))}catch{}}return null}function O2(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 cf(t);case 8:return t===rh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function I2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kl(e){e._valueTracker||(e._valueTracker=I2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 uf(e,t){var n=t.checked;return Ot({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ri(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function df(e,t){bb(e,t);var n=ri(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")?pf(e,t.type,n):t.hasOwnProperty("defaultValue")&&pf(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 pf(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},B2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){B2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Cb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var F2=Ot({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 hf(e,t){if(t){if(F2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gf(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 xf=null;function ah(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vf=null,ha=null,ga=null;function Rx(e){if(e=vl(e)){if(typeof vf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vf(e.stateNode,e.type,t))}}function jb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Nb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(Y2(e)/X2|0)|0}var Yl=64,Xl=4194304;function ho(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function tj(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=wo),Fx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Pj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Aj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Fx);case"textInput":return e=t.data,e===Fx&&Ux?null:e;default:return null}}function Tj(e,t){if(Ji)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=Hs=null,Ji=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Vj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var a=qx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Sf=null,So=null,Ef=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ef||Zi==null||Zi!==Yc(r)||(r=Zi,"selectionStart"in r&&hh(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}),So&&Wo(So,r)||(So=r,r=ru(Sf,"onSelect"),0na||(e.current=Af[na],Af[na]=null,na--)}function bt(e,t){na++,Af[na]=e.current,e.current=t}var si={},Pn=li(si),qn=li(!1),Mi=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Wn(e){return e=e.childContextTypes,e!=null}function iu(){St(qn),St(Pn)}function Zx(e,t,n){if(Pn.current!==si)throw Error(ee(168));bt(Pn,t),bt(qn,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,O2(e)||"Unknown",s));return Ot({},n,r)}function au(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Mi=Pn.current,bt(Pn,e),bt(qn,qn.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,St(qn),St(Pn),bt(Pn,e)):St(qn),bt(qn,n)}var ps=null,Ju=!1,Zd=!1;function u1(e){ps===null?ps=[e]:ps.push(e)}function Zj(e){Ju=!0,u1(e)}function ci(){if(!Zd&&ps!==null){Zd=!0;var e=0,t=dt;try{var n=ps;for(dt=1;e>=a,s-=a,xs=1<<32-Mr(t)+s|n<D?($=T,T=null):$=T.sibling;var j=f(x,T,_[D],k);if(j===null){T===null&&(T=$);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j,T=$}if(D===_.length)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],k),T!==null&&(y=i(T,y,D),S===null?A=T:S.sibling=T,S=T);return Tt&&_i(x,D),A}for(T=r(x,T);D<_.length;D++)$=h(T,x,D,_[D],k),$!==null&&(e&&$.alternate!==null&&T.delete($.key===null?D:$.key),y=i($,y,D),S===null?A=$:S.sibling=$,S=$);return e&&T.forEach(function(H){return t(x,H)}),Tt&&_i(x,D),A}function v(x,y,_,k){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var S=A=null,T=y,D=y=0,$=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?($=T,T=null):$=T.sibling;var H=f(x,T,j.value,k);if(H===null){T===null&&(T=$);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),S===null?A=H:S.sibling=H,S=H,T=$}if(j.done)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,k),j!==null&&(y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return Tt&&_i(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,k),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return e&&T.forEach(function(X){return t(x,X)}),Tt&&_i(x,D),A}function b(x,y,_,k){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var A=_.key,S=y;S!==null;){if(S.key===A){if(A=_.type,A===Xi){if(S.tag===7){n(x,S.sibling),y=s(S,_.props.children),y.return=x,x=y;break e}}else if(S.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Bs&&r0(A)===S.type){n(x,S.sibling),y=s(S,_.props),y.ref=so(x,S,_),y.return=x,x=y;break e}n(x,S);break}else t(x,S);S=S.sibling}_.type===Xi?(y=Ti(_.props.children,x.mode,k,_.key),y.return=x,x=y):(k=Ic(_.type,_.key,_.props,null,x.mode,k),k.ref=so(x,y,_),k.return=x,x=k)}return a(x);case Yi:e:{for(S=_.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=op(_,x.mode,k),y.return=x,x=y}return a(x);case Bs:return S=_._init,b(x,y,S(_._payload),k)}if(mo(_))return g(x,y,_,k);if(Za(_))return v(x,y,_,k);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=ap(_,x.mode,k),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=m1(!0),h1=m1(!1),cu=li(null),uu=null,ia=null,yh=null;function _h(){yh=ia=uu=null}function bh(e){var t=cu.current;St(cu),e._currentValue=t}function Df(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 va(e,t){uu=e,yh=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Hn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(uu===null)throw Error(ee(308));ia=e,uu.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var ji=null;function wh(e){ji===null?ji=[e]:ji.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Es(e,r)}function Es(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 Fs=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 ys(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Es(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Es(e,n)}function Ac(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Ot({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Bi|=a,e.lanes=a,e.memoizedState=p}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{dt=n,tp.transition=r}}function D1(){return Sr().memoizedState}function r5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Or(n,e,r,s),I1(n,t,r)}}function s5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Br(l,a)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Or(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===Mt||t!==null&&t===Mt}function O1(e,t){Eo=fu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:kr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},i5={readContext:kr,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:o0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lc(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lc(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=r5.bind(null,Mt,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:a0,useDebugValue:Ah,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=a0(!1),t=e[0];return e=n5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Mt,s=qr();if(Tt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Ii&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,o0(k1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=fn.identifierPrefix;if(Tt){var n=vs,r=xs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Gr]=t,e[Qo]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(a=gf(n,r),n){case"dialog":kt("cancel",e),kt("close",e),s=r;break;case"iframe":case"object":case"embed":kt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=pu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Tt)return kn(t),null}else 2*Kt()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Kt(),t.sibling=null,n=Lt.current,bt(Lt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?rr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function f5(e,t){switch(xh(t),t.tag){case 1:return Wn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),St(qn),St(Pn),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eh(t),null;case 13:if(St(Lt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return St(Lt),null;case 4:return Ca(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var ac=!1,En=!1,m5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function $f(e,t,n){try{n()}catch(r){zt(e,t,r)}}var v0=!1;function h5(e,t){if(Cf=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jf={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(k){zt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$f(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hf(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Qo],delete t[Rf],delete t[Xj],delete t[Jj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qf(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=su));else if(r!==4&&(e=e.child,e!==null))for(qf(e,t,n),e=e.sibling;e!==null;)qf(e,t,n),e=e.sibling}function Wf(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(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),Ho(e)):Jd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&$f(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){zt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ms(e,t,n),En=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new m5),t.forEach(function(r){var s=S5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Kt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,xu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,a=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cKt()-Mh?Ai(e,0):Dh|=n),Gn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=Es(e,t),e!==null&&(gl(e,t,n),Gn(e,n))}function k5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function S5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qn.current)Hn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Hn=!1,d5(e,t,n);Hn=!!(e.flags&131072)}else Hn=!1,Tt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Wn(r)?(i=!0,au(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Of(t,r,e,n),t=Ff(null,t,r,!0,i,n)):(t.tag=0,Tt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=C5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=f0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(ir=Xs(t.stateNode.containerInfo.firstChild),ar=t,Tt=!0,Dr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Cs(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Lf(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Nf(r,s)?a=null:i!==null&&Nf(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,a,n),t.child;case 6:return e===null&&Lf(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),f0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,bt(cu,r._currentValue),r._currentValue=a,i!==null)if(Br(i.value,a)){if(i.children===s.children&&!qn.current){t=Cs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ys(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Df(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Df(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Dc(e,t),t.tag=1,Wn(r)?(e=!0,au(t)):e=!1,va(t,n),B1(t,r,s),Of(t,r,s,n),Ff(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function E5(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 br(e,t,n,r){return new E5(e,t,n,r)}function Fh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C5(e){if(typeof e=="function")return Fh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Ic(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Fh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ti(n.children,s,i,t);case rh:a=8,s|=8;break;case af:return e=br(12,n,t,s|2),e.elementType=af,e.lanes=i,e;case of:return e=br(13,n,t,s),e.elementType=of,e.lanes=i,e;case lf:return e=br(19,n,t,s),e.elementType=lf,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:a=10;break e;case xb:a=9;break e;case sh:a=11;break e;case ih:a=14;break e;case Bs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ti(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=br(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function ap(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function op(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function j5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,a,l,c){return e=new j5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function N5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=dr;var la=pb.exports,N0=la;rf.createRoot=N0.createRoot,rf.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function D5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||D5()})}function _u(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 Ua(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 M5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Xf(v.location,b,x);u=d()+1;let _=R0(y,u),k=v.createHref(y);try{a.pushState(_,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(k)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Xf(v.location,b,x);u=d();let _=R0(y,u),k=v.createHref(y);a.replaceState(_,"",k),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Zt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,p),c=b,()=>{s.removeEventListener(P0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var A0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(A0||(A0={}));function O5(e,t,n){return n===void 0&&(n="/"),I5(e,t,n)}function I5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let a=fw(e);B5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Zt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Zt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:q5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of mw(i.path))s(i,a,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=mw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function B5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:W5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const F5=/^:[\w-]+$/,U5=3,V5=2,z5=1,$5=10,H5=-2,T0=e=>e==="*";function q5(e,t){let n=e.split("/"),r=n.length;return n.some(T0)&&(r+=H5),t&&(r+=V5),n.filter(s=>!T0(s)).reduce((s,i)=>s+(F5.test(i)?U5:i===""?z5:$5),r)}function W5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function G5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function Q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Y5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 X5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,J5=e=>X5.test(e);function Z5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(J5(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=L0(n.substring(1),"/"):i=L0(n,t)}else i=t;return{pathname:i,search:nN(r),hash:rN(s)}}function L0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lp(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 eN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=eN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Zt(!s.pathname||!s.pathname.includes("?"),lp("?","pathname","search",s)),Zt(!s.pathname||!s.pathname.includes("#"),lp("#","pathname","hash",s)),Zt(!s.search||!s.search.includes("#"),lp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=Z5(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),tN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function sN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const iN=["get",...xw];new Set(iN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=gw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const cN=m.createContext(null);function uN(e){let t=m.useContext(Rs).outlet;return t&&m.createElement(cN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Rs),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Hi),{matches:s}=m.useContext(Rs),{pathname:i}=bl(),a=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function dN(e,t){return pN(e,t)}function pN(e,t,n,r){_l()||Zt(!1);let{navigator:s}=m.useContext(Hi),{matches:i}=m.useContext(Rs),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Zt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=O5(e,{pathname:h}),v=xN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function fN(){let e=bN(),t=sN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const mN=m.createElement(fN,null);class hN extends m.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?m.createElement(Rs.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function gN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Rs.Provider,{value:t},r)}function xN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Zt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||mN,c&&(u<0&&f===0?(kN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(gN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(hN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function vN(e){let t=m.useContext(Wh);return t||Zt(!1),t}function yN(e){let t=m.useContext(aN);return t||Zt(!1),t}function _N(e){let t=m.useContext(Rs);return t||Zt(!1),t}function Sw(e){let t=_N(),n=t.matches[t.matches.length-1];return n.route.id||Zt(!1),n.route.id}function bN(){var e;let t=m.useContext(vw),n=yN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wN(){let{router:e}=vN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const D0={};function kN(e,t,n){D0[e]||(D0[e]=!0)}function SN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function EN(e){return uN(e.context)}function wi(e){Zt(!1)}function CN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Zt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(Hi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function jN(e){let{children:t,location:n}=e;return dN(Jf(t),n)}new Promise(()=>{});function Jf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jf(r.props.children,i));return}r.type!==wi&&Zt(!1),!r.props.index||!r.props.children||Zt(!1);let a={id:r.props.id||i.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&&(a.children=Jf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zf(){return Zf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function PN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RN(e,t){return e.button===0&&(!t||t==="_self")&&!PN(e)}const AN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TN="6";try{window.__reactRouterVersion=TN}catch{}const LN="startTransition",M0=w2[LN];function DN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=L5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&M0?M0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>SN(r),[r]),m.createElement(CN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const MN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ON=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=NN(t,AN),{basename:h}=m.useContext(Hi),g,v=!1;if(typeof u=="string"&&ON.test(u)&&(g=u,MN))try{let _=new URL(window.location.href),k=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=qh(k.pathname,h);k.origin===_.origin&&A!=null?u=A+k.search+k.hash:v=!0}catch{}let b=oN(u,{relative:s}),x=IN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zf({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function IN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=cd(),u=bl(),d=bw(e,{relative:a});return m.useCallback(p=>{if(RN(p,n)){p.preventDefault();let f=r!==void 0?r:_u(u)===_u(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let BN={data:""},FN=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||BN},UN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VN=/\/\*[^]*?\*\/| +/g,B0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ls={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},zN=(e,t,n,r,s)=>{let i=Ew(e),a=ls[i]||(ls[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ls[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=UN.exec(u.replace(VN,""));)d[4]?f.shift():d[3]?(p=d[3].replace(B0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(B0," ").trim();return f[0]})(e);ls[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&ls.g?ls.g:null;return n&&(ls.g=ls[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ls[a],t,r,l),a},$N=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return zN(n.unshift?n.raw?$N(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,FN(t.target),t.g,t.o,t.k)}let Cw,em,tm;ud.bind({g:1});let js=ud.bind({k:1});function HN(e,t,n,r){$s.p=t,Cw=e,em=n,tm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Cw(u,l)}return s}}var qN=e=>typeof e=="function",wu=(e,t)=>qN(e)?e(t):e,WN=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),GN=20,Gh="default",Nw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Nw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:GN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Bc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Aw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),KN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},QN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},YN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||QN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},XN=(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)||WN()}),wl=e=>(t,n)=>{let r=XN(t,e,n);return dd(r.toasterId||KN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Aw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Aw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var JN=1e3,ZN=(e,t="default")=>{let{toasts:n,pausedAt:r}=YN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=JN)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,k)=>k_.visible).slice(...h?[y+1]:[0,y]).reduce((_,k)=>_+(k.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},eP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,tP=js` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,nP=js` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,rP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${eP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${tP} 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: ${nP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,sP=js` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,iP=ui("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: ${sP} 1s linear infinite; +`,aP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,oP=js` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,lP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${aP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${oP} 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; + } +`,cP=ui("div")` + position: absolute; +`,uP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,dP=js` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,pP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${dP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,fP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(pP,null,t):t:n==="blank"?null:m.createElement(uP,null,m.createElement(iP,{...r}),n!=="loading"&&m.createElement(cP,null,n==="error"?m.createElement(rP,{...r}):m.createElement(lP,{...r})))},mP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,hP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,gP="0%{opacity:0;} 100%{opacity:1;}",xP="0%{opacity:1;} 100%{opacity:0;}",vP=ui("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; +`,yP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,_P=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[gP,xP]:[mP(n),hP(n)];return{animation:t?`${js(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${js(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},bP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?_P(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(fP,{toast:e}),a=m.createElement(yP,{...e.ariaProps},wu(e.message,e));return m.createElement(vP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});HN(m.createElement);var wP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},kP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},SP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,EP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=ZN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=kP(p,f);return m.createElement(wP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?SP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(bP,{toast:d,position:p}))}))},We=an;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const pd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class CP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function jP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(CP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const NP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Qh(PP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(jP,{isPresent:n,children:e})),o.jsx(pd.Provider,{value:d,children:e})};function PP(){return new Map}function Tw(e=!0){const t=m.useContext(pd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const uc=e=>e.key||"";function F0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Lw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Tw(a),u=m.useMemo(()=>F0(e),[e]),d=a&&!l?[]:u.map(uc),p=m.useRef(!0),f=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Lw(()=>{p.current=!1,f.current=u;for(let k=0;k{const A=uc(k),S=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach($=>{$||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(NP,{isPresent:S,initial:!p.current||n?void 0:!1,custom:S?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:S?void 0:T,children:k},A)})})},or=e=>e;let Dw=or;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},_s=e=>e*1e3,bs=e=>e/1e3,RP={useManualTiming:!1};function AP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],TP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=dc.reduce((x,y)=>(x[y]=AP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,TP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=a[y];return x[y]=(k,A=!1,S=!1)=>(n||g(),_.schedule(k,A,S)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function LP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const DP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||DP.has(e)}let Iw=e=>!ku(e);function MP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{MP(require("@emotion/is-prop-valid").default)}catch{}function OP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function IP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const fd=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>sl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function BP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function FP(e){const{initial:t,animate:n}=BP(e,m.useContext(fd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const UP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),zP="framerAppearId",Fw="data-"+tg(zP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function $P(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(fd),c=m.useContext(Ow),u=m.useContext(pd),d=m.useContext(Yh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(Uw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&HP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Fw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Lw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),ng.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function HP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function qP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&LP(e);function l(u,d){let p;const f={...m.useContext(Yh),...u,layoutId:WP(u)},{isStatic:h}=f,g=FP(u),v=r(u,h);if(!h&&Xh){GP();const b=KP(f);p=b.MeasureLayout,g.visualElement=$P(s,v,f,t,b.ProjectionNode)}return o.jsxs(fd.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,VP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[UP]=s,c}function WP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function GP(e,t){m.useContext(Ow).strict}function KP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const QP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(QP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),YP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XP=e=>rm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Fc(e){const t=jn(e)?e.get():e;return YP(t)?t.toValue():t}function JP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:ZP(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const zw=e=>(t,n)=>{const r=m.useContext(fd),s=m.useContext(pd),i=()=>JP(e,t,r,s);return n?i():Qh(i)};function ZP(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Fc(i[f]);let{initial:a,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!md(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),eR=$w("var(--"),ig=e=>eR(e)?tR.test(e.split("/*")[0].trim()):!1,tR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Ns=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>Ns(0,1,e)},pc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Jr=kl("%"),Ae=kl("px"),nR=kl("vh"),rR=kl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},sR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},iR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:pc,scaleX:pc,scaleY:pc,scaleZ:pc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:$0,originY:$0,originZ:Ae},H0={...za,transform:Math.round},ag={...sR,...iR,zIndex:H0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:H0},aR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},oR=Va.length;function lR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function fR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return qi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Yw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function mR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],hR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(qi.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{mR(n,r),Et.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},gR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!jn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function xR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return og(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,xR(e,t)),r}function yR(e,t){const n={},r=vR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function _R(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function bR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(rg(n)?_R:yR)(r,i,a,n),u=OP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function wR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...rg(r)?hR:gR,preloadedFeatures:e,useRender:bR(s),createVisualElement:t,Component:r};return qP(a)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class SR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(kR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class ER extends SR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function pg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function fg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",CR={linearEasing:void 0};function jR(e,t){const n=Jh(e);return()=>{var r;return(r=CR[t])!==null&&r!==void 0?r:n()}}const Eu=jR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Eu()?tk(e,t):mg(e)?xo(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const Rr={x:!1,y:!1};function sk(){return Rr.x||Rr.y}function NR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=NR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function PR(e,t,n={}){const[r,s,i]=ik(e,n),a=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,RR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AR(e){return RR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function up(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const TR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(vo.has(n))return;up(n,"down");const s=Q0(()=>{up(n,"up")}),i=()=>up(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function LR(e,t,n={}){const[r,s,i]=ik(e,n),a=l=>{const c=l.currentTarget;if(!Y0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!Y0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!AR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>TR(u,s),s)}),i}function DR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Va]);let Uc;function MR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(xn.isProcessing||RP.useManualTiming?xn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(MR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class IR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=OR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),Et.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new IR(e,t)}function BR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function FR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=XP(i[a]);BR(e,a,l)}}function UR(e){return!!(jn(e)&&e.add)}function am(e,t){const n=e.getValue("willChange");if(UR(n))return n.add(t)}function ck(e){return e.props[Fw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,VR=1e-7,zR=12;function $R(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=uk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>VR&&++l$R(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),fk=Sl(.33,1.53,.69,.99),yg=pk(fk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=pk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function HR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const Po=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qR(e){return e==null}const WR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&WR.test(n)&&n.startsWith(e)||t&&!qR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},GR=e=>Ns(0,255,e),dp={...za,transform:e=>Math.round(GR(e))},Pi={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dp.transform(e)+", "+dp.transform(t)+", "+dp.transform(n)+", "+Po(il.transform(r))+")"};function KR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const om={test:wg("#"),parse:KR,transform:Pi.transform},ua={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(Po(t))+", "+Jr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>Pi.test(e)||om.test(e)||ua.test(e),parse:e=>Pi.test(e)?Pi.parse(e):ua.test(e)?ua.parse(e):om.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Pi.transform(e):ua.transform(e)},QR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(QR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",XR="var",JR="var(",J0="${}",ZR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(ZR,c=>(Sn.test(c)?(r.color.push(i),s.push(bk),n.push(Sn.parse(c))):c.startsWith(JR)?(r.var.push(i),s.push(XR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return ol(e).values}function kk(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function tA(e){const t=wk(e);return kk(e)(t.map(eA))}const ai={test:YR,parse:wk,createTransformer:kk,getAnimatableNone:tA},nA=new Set(["brightness","contrast","saturate","opacity"]);function rA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=nA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const sA=/\b([a-z-]*)\(.*?\)/gu,lm={...ai,getAnimatableNone:e=>{const t=e.match(sA);return t?t.map(rA).join(" "):e}},iA={...ag,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:lm,WebkitFilter:lm},kg=e=>iA[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aA=new Set(["auto","none","0"]);function oA(e,t,n){let r=0,s;for(;re===za||e===Ae,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},lA=new Set(["x","y","z"]),cA=Va.filter(e=>!lA.has(e));function uA(e){const t=[];return cA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Li=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Li).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=uA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Li.forEach(e=>e.complete()),Li.clear()}function Ck(){Li.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function dA(){Ck(),Ek()}class Sg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Li.add(this),cm||(cm=!0,Et.read(Ck),Et.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),pA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fA(e){const t=pA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=fA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return jk(a)?parseFloat(a):a}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),mA={test:e=>e==="auto",parse:e=>e},Rk=[za,Ae,Jr,Is,rR,nR,mA],nv=e=>Rk.find(Pk(e));class Ak extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function hA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(xA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const vA=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>vA?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!gA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Dt=(e,t,n)=>e+(t-e)*n;function pp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function yA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pp(c,l,e+1/3),i=pp(c,l,e),a=pp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function Cu(e,t){return n=>n>0?t:e}const fp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},_A=[om,Pi,ua],bA=e=>_A.find(t=>t.test(e));function sv(e){const t=bA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=yA(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Cu(e,t);const s={...n};return i=>(s.red=fp(n.red,r.red,i),s.green=fp(n.green,r.green,i),s.blue=fp(n.blue,r.blue,i),s.alpha=Dt(n.alpha,r.alpha,i),Pi.transform(s))},wA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(wA),dm=new Set(["none","hidden"]);function kA(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SA(e,t){return n=>Dt(e,t,n)}function Eg(e){return typeof e=="number"?SA:typeof e=="string"?ig(e)?Cu:Sn.test(e)?iv:jA:Array.isArray(e)?Lk:typeof e=="object"?Sn.test(e)?iv:EA:Cu}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Eg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function CA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?kA(e,t):El(Lk(CA(r,s),s.values),n):Cu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Dt(e,t,n):Eg(e)(e,t)}const NA=5;function Mk(e,t,n){const r=Math.max(t-NA,0);return lk(n-e(r),t-r)}const Vt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mp=.001;function PA({duration:e=Vt.duration,bounce:t=Vt.bounce,velocity:n=Vt.velocity,mass:r=Vt.mass}){let s,i,a=1-t;a=Ns(Vt.minDamping,Vt.maxDamping,a),e=Ns(Vt.minDuration,Vt.maxDuration,bs(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=pm(u,a),g=Math.exp(-p);return mp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=pm(Math.pow(u,2),a);return(-s(u)+mp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-mp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=AA(s,i,l);if(e=_s(e),isNaN(c))return{stiffness:Vt.stiffness,damping:Vt.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const RA=12;function AA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function DA(e){let t={velocity:Vt.velocity,stiffness:Vt.stiffness,damping:Vt.damping,mass:Vt.mass,isResolvedFromDuration:!1,...e};if(!av(e,LA)&&av(e,TA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Ns(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Vt.mass,stiffness:s,damping:i}}else{const n=PA(e);t={...t,...n,mass:Vt.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=Vt.visualDuration,t=Vt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=DA({...n,velocity:-bs(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=bs(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Vt.restSpeed.granular:Vt.restSpeed.default),s||(s=y?Vt.restDelta.granular:Vt.restDelta.default);let _;if(v<1){const A=pm(x,v);_=S=>{const T=Math.exp(-v*x*S);return a-T*((g+v*x*b)/A*Math.sin(A*S)+b*Math.cos(A*S))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=S=>{const T=Math.exp(-v*x*S),D=Math.min(A*S,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const k={calculatedDuration:h&&p||null,next:A=>{const S=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?_s(g):Mk(_,A,S));const D=Math.abs(T)<=r,$=Math.abs(a-S)<=s;l.done=D&&$}return l.value=l.done?a:S,l},toString:()=>{const A=Math.min(ek(k),sm),S=tk(T=>k.next(A*T).value,A,30);return A+"ms "+S}};return k}function ov({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),k=D=>{const $=y(D),j=_(D);f.done=Math.abs($)<=u,f.value=f.done?x:j};let A,S;const T=D=>{h(f.value)&&(A=D,S=Ok({keyframes:[f.value,g(f.value)],velocity:Mk(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let $=!1;return!S&&A===void 0&&($=!0,k(D),T(D)),A!==void 0&&D>=A?S.next(D-A):(!$&&k(D),f)}}}const MA=Sl(.42,0,1,1),OA=Sl(0,0,.58,1),Ik=Sl(.42,0,.58,1),IA=e=>Array.isArray(e)&&typeof e[0]!="number",BA={linear:or,easeIn:MA,easeInOut:Ik,easeOut:OA,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:fk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return BA[e];return e};function FA(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=FA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(Ns(e[0],e[i-1],d)):u}function VA(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Dt(n,1,s))}}function zA(e){const t=[0];return VA(t,e.length-1),t}function $A(e,t){return e.map(n=>n*t)}function HA(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=IA(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},a=$A(n&&n.length===t.length?n:zA(t),e),l=UA(a,t,{ease:Array.isArray(s)?s:HA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const qA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Et.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:Zr.now()}},WA={decay:ov,inertia:ov,tween:ju,keyframes:ju,spring:Ok},GA=e=>e/100;class Cg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=fg(n)?n:WA[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=El(GA,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,k=i;if(h){const D=Math.min(this.currentTime,d)/p;let $=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&$--,$=Math.min($,h+1),!!($%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(k=a)),_=Ns(0,1,j)*p}const A=y?{done:!1,value:c[0]}:k.next(_);l&&(A.value=l(A.value));let{done:S}=A;!y&&u!==null&&(S=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return T&&s!==void 0&&(A.value=xd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?bs(t.calculatedDuration):0}get time(){return bs(this.currentTime)}set time(t){t=_s(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=bs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=qA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const KA=new Set(["opacity","clipPath","filter","transform"]);function QA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const YA=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,XA=2e4;function JA(e){return fg(e.type)||e.type==="spring"||!nk(e.ease)}function ZA(e,t){const n=new Cg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Eu()&&eT(i)&&(i=Bk[i]),JA(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=ZA(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=QA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(xd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return bs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return bs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_s(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return or;const{animation:r}=n;G0(r,t)}return or}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new Cg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=_s(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return YA()&&r&&KA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const tT={type:"spring",stiffness:500,damping:25,restSpeed:10},nT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),rT={type:"keyframes",duration:.8},sT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iT=(e,{keyframes:t})=>t.length>2?rT:qi.has(e)?e.startsWith("scale")?nT(t[1]):tT:sT;function aT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>a=>{const l=pg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-_s(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};aT(l)||(d={...d,...iT(e,d)}),d.duration&&(d.duration=_s(d.duration)),d.repeatDelay&&(d.repeatDelay=_s(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=xd(d.keyframes,l);if(f!==void 0)return Et.update(()=>{d.onUpdate(f),d.onComplete()}),new ER([])}return!i&&cv.supports(d)?new cv(d):new Cg(d)};function oT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&oT(d,p))continue;const g={delay:n,...pg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,p,Et);y!==null&&(g.startTime=y,v=!0)}}am(e,p),f.start(jg(p,f,h,e.shouldReduceMotion&&ok.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{Et.update(()=>{l&&FR(e,l)})}),u}function fm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return lT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function lT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(cT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(fm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function cT(e,t){return e.sortNodePosition(t)}function uT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>fm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=fm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const dT=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>uT(e,n,r)))}function hT(e){let t=mT(e),n=uv(),r=!0;const s=c=>(u,d)=>{var p;const f=gd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=Uk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&k,$=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&($=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const F=e.getValue(oe);F&&(F.liveStyle=!1)};for(const oe in re){const F=H[oe],Q=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;rm(F)&&rm(Q)?N=!Zw(F,Q):N=F!==Q,N?F!=null?le(oe):f.add(oe):F!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(S&&T)||$)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function gT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function vi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:vi(!0),whileInView:vi(),whileHover:vi(),whileTap:vi(),whileDrag:vi(),whileFocus:vi(),exit:vi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xT extends di{constructor(t){super(t),t.animationState||(t.animationState=hT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let vT=0;class yT extends di{constructor(){super(...arguments),this.id=vT++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const _T={animation:{Feature:xT},exit:{Feature:yT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const bT=e=>t=>hg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,bT(n),r)}const dv=(e,t)=>Math.abs(e-t);function wT(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=gp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=wT(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=hp(f,this.transformPagePoint),Et.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gp(p.type==="pointercancel"?this.lastMoveEventInfo:hp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=hp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,gp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function hp(e,t){return t?{point:t(e.point)}:e}function pv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gp({point:e},t){return{point:e,delta:pv(e,zk(t)),offset:pv(e,kT(t)),velocity:ST(t,.1)}}function kT(e){return e[0]}function zk(e){return e[e.length-1]}function ST(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const i=bs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const $k=1e-4,ET=1-$k,CT=1+$k,Hk=.01,jT=0-Hk,NT=0+Hk;function ur(e){return e.max-e.min}function PT(e,t,n){return Math.abs(e-t)<=n}function fv(e,t,n,r=.5){e.origin=r,e.originPoint=Dt(t.min,t.max,e.origin),e.scale=ur(n)/ur(t),e.translate=Dt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=ET&&e.scale<=CT||isNaN(e.scale))&&(e.scale=1),(e.translate>=jT&&e.translate<=NT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){fv(e.x,t.x,n.x,r?r.originX:void 0),fv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ur(t)}function RT(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ur(t)}function To(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function AT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Dt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TT(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),Ns(0,1,n)}function MT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function OT(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),Gt=()=>({x:bv(),y:bv()});function gr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function IT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function BT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function xp(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!xp(e)||!xp(t)||!xp(n)}function ki(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Ev=1.0000000000001;function FT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,s=.5){const i=Dt(e.min,e.max,s);gm(e,t,n,i,r)}function fa(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(BT(e.getBoundingClientRect(),t))}function UT(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,VT=new WeakMap;class zT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Gt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ur(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&Et.postRender(()=>g(d,p)),am(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=$T(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&Et.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!fc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=AT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=TT(s.layoutBox,n):this.constraints=!1,this.elastic=OT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=MT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=UT(r,s.root,this.visualElement.getTransformPagePoint());let a=LT(s.layout.layoutBox,i);if(n){const l=n(IT(a));this.hasMutatedConstraints=!!l,l&&(a=qk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!fc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return am(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!fc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Dt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=DT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!fc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Dt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;VT.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),Et.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function fc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $T(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HT extends di{constructor(t){super(t),this.removeGroupControls=or,this.removeListeners=or,this.controls=new zT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||or}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&Et.postRender(()=>e(t,n))};class qT extends di{constructor(){super(...arguments),this.removePointerDownListener=or}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&Et.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},WT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Dt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class GT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;fR(KT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||Et.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Tw(),r=m.useContext(Kh);return o.jsx(GT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const KT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:WT};function QT(e,t,n){const r=jn(e)?e:al(e);return r.start(jg("",r,t,n)),r.animation}function YT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XT=(e,t)=>e.depth-t.depth;class JT{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XT),this.isDirty=!1,this.children.forEach(t)}}function ZT(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return Et.read(r,!0),()=>ii(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],eL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Ae.test(e);function tL(e,t,n,r,s,i){s?(e.opacity=Dt(0,n.opacity!==void 0?n.opacity:1,nL(r)),e.opacityExit=Dt(t.opacity!==void 0?t.opacity:1,0,rL(r))):i&&(e.opacity=Dt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Tv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Tv(e.x,t.x),Tv(e.y,t.y)}function Lv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function sL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Jr.test(t)&&(t=parseFloat(t),t=Dt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Dt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,a){sL(e,t[n],t[r],t[s],t.scale,i,a)}const iL=["x","scaleX","originX"],aL=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,iL,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,aL,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Bv(e,t){return e.min===t.min&&e.max===t.max}function oL(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Fv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Uv(e){return ur(e.x)/ur(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lL{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function cL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,vp=["","X","Y","Z"],uL={visibility:"hidden"},zv=1e3;let dL=0;function yp(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Et,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=dL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(mL),this.nodes.forEach(yL),this.nodes.forEach(_L),this.nodes.forEach(hL),yo&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=ZT(f,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||EL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const k={...pg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=k/1e3;qv(p.x,a.x,A),qv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&oL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Gt()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,tL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Et.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=QT(0,zv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Gt();const p=ur(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=ur(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new lL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&yp("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function pL(e){e.updateLayout()}function fL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(f);f.min=r[p].min,f.max=f.min+h}):rS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=Gt();To(g,n.layoutBox,f.layoutBox);const v=Gt();To(v,r,h.layoutBox),eS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function mL(e){yo&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function gL(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function xL(e){e.isLayoutDirty=!1}function vL(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yL(e){e.resolveTargetDelta()}function _L(e){e.calcProjection()}function bL(e){e.resetSkewAndRotation()}function wL(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Dt(t.translate,0,n),e.scale=Dt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Dt(t.min,n.min,r),e.max=Dt(t.max,n.max,r)}function kL(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function SL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const EL={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:or;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function CL(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!PT(Uv(t),Uv(n),.2)}function jL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const NL=nS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_p={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!_p.current){const e=new NL({});e.mount(window),e.setOptions({layoutScroll:!0}),_p.current=e}return _p.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),PL={pan:{Feature:qT},drag:{Feature:HT,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class RL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class AL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=LR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,bp=new WeakMap,LL=e=>{const t=xm.get(e.target);t&&t(e)},DL=e=>{e.forEach(LL)};function ML({root:e,...t}){const n=e||document;bp.has(n)||bp.set(n,{});const r=bp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(DL,{root:e,...t})),r[s]}function OL(e,t,n){const r=ML(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const IL={some:0,all:1};class BL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:IL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return OL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(FL(t,n))&&this.startObserver()}unmount(){}}function FL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const UL={inView:{Feature:BL},tap:{Feature:TL},focus:{Feature:AL},hover:{Feature:RL}},VL={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function zL(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const $L=[...Rk,Sn,ai],HL=e=>$L.find(Pk(e)),Jv=new WeakMap;function qL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class WL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||zL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Et.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Gt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!HL(s)&&ai.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends WL{constructor(){super(...arguments),this.KeyframeResolver=Ak}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function GL(e){return window.getComputedStyle(e)}class KL extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}else{const r=GL(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){og(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class QL extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Gt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const YL=(e,t)=>rg(e)?new QL(t):new KL(t,{allowProjection:e!==m.Fragment}),XL=wR({..._T,...UL,...PL,...VL},YL),$t=IP(XL);function JL({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const ZL=m.forwardRef(JL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const sD=m.forwardRef(rD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const wp=m.forwardRef(aD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const kp=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const pD=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(fD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Au=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sr=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const fs=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(ED);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const jD=m.forwardRef(CD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Tu=m.forwardRef(RD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(AD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(DD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const BD=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(FD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ms=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef(WD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Sp=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const o3=m.forwardRef(a3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Lu=m.forwardRef(l3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(g3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(w3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const S3=m.forwardRef(k3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(j3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const A3={},iy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(A3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},T3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function L3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var D3=typeof Object.is=="function"?Object.is:L3,M3=La.useState,O3=La.useEffect,I3=La.useLayoutEffect,B3=La.useDebugValue;function F3(e,t){var n=t(),r=M3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return I3(function(){s.value=n,s.getSnapshot=t,Ep(s)&&i({inst:s})},[e,n,t]),O3(function(){return Ep(s)&&i({inst:s}),e(function(){Ep(s)&&i({inst:s})})},[e]),B3(n),n}function Ep(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!D3(e,n)}catch{return!0}}function U3(e,t){return t()}var V3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?U3:F3;xS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:V3;gS.exports=xS;var z3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,$3=z3;function H3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var q3=typeof Object.is=="function"?Object.is:H3,W3=$3.useSyncExternalStore,G3=vd.useRef,K3=vd.useEffect,Q3=vd.useMemo,Y3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=G3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,q3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=W3(e,i[0],i[1]);return K3(function(){a.hasValue=!0,a.value=l},[l]),Y3(l),l};mS.exports=hS;var X3=mS.exports;const J3=qu(X3),vS={},{useDebugValue:Z3}=pn,{useSyncExternalStoreWithSelector:eM}=J3;let ay=!1;const tM=e=>e;function nM(e,t=tM,n){(vS?"production":void 0)!=="production"&&n&&!ay&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ay=!0);const r=eM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Z3(r),r}const oy=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?T3(e):e,n=(r,s)=>nM(t,r,s);return Object.assign(n,t),n},rM=e=>e?oy(e):oy;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:sM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=sM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=bd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Kn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ur("ArrayBuffer");function iM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const aM=bd("string"),Kn=bd("function"),wS=bd("number"),Nl=e=>e!==null&&typeof e=="object",oM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},lM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},cM=Ur("Date"),uM=Ur("File"),dM=Ur("Blob"),pM=Ur("FileList"),fM=e=>Nl(e)&&Kn(e.pipe),mM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Kn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Kn(e.toString)&&e.toString()==="[object FormData]"))},hM=Ur("URLSearchParams"),[gM,xM,vM,yM]=["ReadableStream","Request","Response","Headers"].map(Ur),_M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Da(e)&&e!==Ri;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const a=e&&kS(n,i)||i;Hc(n[a])&&Hc(s)?n[a]=wm(n[a],s):Hc(s)?n[a]=wm({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Kn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),wM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},SM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},EM=(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},CM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),NM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},PM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},RM=Ur("HTMLFormElement"),AM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),TM=Ur("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},LM=e=>{ES(e,(t,n)=>{if(Kn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Kn(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+"'")})}})},DM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},MM=()=>{},OM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function IM(e){return!!(e&&Kn(e.append)&&e[_S]==="FormData"&&e[yd])}const BM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},FM=Ur("AsyncFunction"),UM=e=>e&&(Nl(e)||Kn(e))&&Kn(e.then)&&Kn(e.catch),CS=((e,t)=>e?setImmediate:t?((n,r)=>(Ri.addEventListener("message",({source:s,data:i})=>{s===Ri&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Kn(Ri.postMessage)),VM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ri):typeof process<"u"&&process.nextTick||CS,zM=e=>e!=null&&Kn(e[yd]),z={isArray:$a,isArrayBuffer:bS,isBuffer:jl,isFormData:mM,isArrayBufferView:iM,isString:aM,isNumber:wS,isBoolean:oM,isObject:Nl,isPlainObject:Hc,isEmptyObject:lM,isReadableStream:gM,isRequest:xM,isResponse:vM,isHeaders:yM,isUndefined:Da,isDate:cM,isFile:uM,isBlob:dM,isRegExp:TM,isFunction:Kn,isStream:fM,isURLSearchParams:hM,isTypedArray:jM,isFileList:pM,forEach:Pl,merge:wm,extend:bM,trim:_M,stripBOM:wM,inherits:kM,toFlatObject:SM,kindOf:_d,kindOfTest:Ur,endsWith:EM,toArray:CM,forEachEntry:NM,matchAll:PM,isHTMLForm:RM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:LM,toObjectSet:DM,toCamelCase:AM,noop:MM,toFiniteNumber:OM,findKey:kS,global:Ri,isContextDefined:SS,isSpecCompliantForm:IM,toJSONObject:BM,isAsyncFn:FM,isThenable:UM,setImmediate:CS,asap:VM,isIterable:zM};function Oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}z.inherits(Oe,Error,{toJSON:function(){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:z.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Oe.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Oe,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Oe.from=(e,t,n,r,s,i)=>{const a=Object.create(jS);z.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Oe.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const $M=null;function km(e){return z.isPlainObject(e)||z.isArray(e)}function PS(e){return z.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function HM(e){return z.isArray(e)&&!e.some(km)}const qM=z.toFlatObject(z,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!z.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!z.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&z.isSpecCompliantForm(t);if(!z.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(z.isDate(g))return g.toISOString();if(z.isBoolean(g))return g.toString();if(!c&&z.isBlob(g))throw new Oe("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(g)||z.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(z.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(z.isArray(g)&&HM(g)||(z.isFileList(g)||z.endsWith(v,"[]"))&&(x=z.toArray(g)))return v=PS(v),x.forEach(function(_,k){!(z.isUndefined(_)||_===null)&&t.append(a===!0?cy([v],k,i):a===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(qM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!z.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),z.forEach(g,function(x,y){(!(z.isUndefined(x)||x===null)&&s.call(t,x,z.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!z.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function WM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function AS(e,t,n){if(!t)return e;const r=n&&n.encode||WM;z.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=z.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){z.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},GM=typeof URLSearchParams<"u"?URLSearchParams:Rg,KM=typeof FormData<"u"?FormData:null,QM=typeof Blob<"u"?Blob:null,YM={isBrowser:!0,classes:{URLSearchParams:GM,FormData:KM,Blob:QM},protocols:["http","https","file","blob","url","data"]},Ag=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,XM=Ag&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),JM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ZM=Ag&&window.location.href||"http://localhost",e4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ag,hasStandardBrowserEnv:XM,hasStandardBrowserWebWorkerEnv:JM,navigator:Sm,origin:ZM},Symbol.toStringTag,{value:"Module"})),Cn={...e4,...YM};function t4(e,t){return wd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&z.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function n4(e){return z.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function r4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&z.isArray(s)?s.length:a,c?(z.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!z.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&z.isArray(s[a])&&(s[a]=r4(s[a])),!l)}if(z.isFormData(e)&&z.isFunction(e.entries)){const n={};return z.forEachEntry(e,(r,s)=>{t(n4(r),s,n,0)}),n}return null}function s4(e,t,n){if(z.isString(e))try{return(t||JSON.parse)(e),z.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return s?JSON.stringify(LS(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return t4(t,this.formSerializer).toString();if((l=z.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),s4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Oe.from(l,Oe.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const i4=z.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"]),a4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&i4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},py=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:z.isArray(e)?e.map(qc):String(e)}function o4(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 l4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cp(e,t,n,r,s){if(z.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!z.isString(t)){if(z.isString(r))return t.indexOf(r)!==-1;if(z.isRegExp(r))return r.test(t)}}function c4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function u4(e,t){const n=z.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Qn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=z.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=qc(l))}const a=(l,c)=>z.forEach(l,(u,d)=>i(u,d,c));if(z.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(z.isString(t)&&(t=t.trim())&&!l4(t))a(a4(t),n);else if(z.isObject(t)&&z.isIterable(t)){let l={},c,u;for(const d of t){if(!z.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?z.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=z.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return o4(s);if(z.isFunction(n))return n.call(this,s,r);if(z.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=z.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Cp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=z.findKey(r,a);l&&(!n||Cp(r,r[l],l,n))&&(delete r[l],s=!0)}}return z.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Cp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return z.forEach(this,(s,i)=>{const a=z.findKey(r,i);if(a){n[a]=qc(s),delete n[i];return}const l=t?c4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return z.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&z.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(s=>r.set(s)),r}static accessor(t){const r=(this[py]=this[py]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(u4(s,a),r[l]=!0)}return z.isArray(t)?t.forEach(i):i(t),this}};Qn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);z.reduceDescriptors(Qn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});z.freezeMethods(Qn);function jp(e,t){const n=this||Rl,r=t||n,s=Qn.from(r.headers);let i=r.data;return z.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Oe.call(this,e??"canceled",Oe.ERR_CANCELED,t,n),this.name="CanceledError"}z.inherits(Ha,Oe,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Oe("Request failed with status code "+n.status,[Oe.ERR_BAD_REQUEST,Oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function d4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function p4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Du=(e,t,n=3)=>{let r=0;const s=p4(50,250);return f4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},fy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>z.asap(()=>e(...t)),m4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,h4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];z.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),z.isString(r)&&l.push(`path=${r}`),z.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),z.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function g4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function x4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!g4(t);return e&&(r||n==!1)?x4(e,t):t}const hy=e=>e instanceof Qn?{...e}:e;function Ui(e,t){t=t||{};const n={};function r(u,d,p,f){return z.isPlainObject(u)&&z.isPlainObject(d)?z.merge.call({caseless:f},u,d):z.isPlainObject(d)?z.merge({},d):z.isArray(d)?d.slice():d}function s(u,d,p,f){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!z.isUndefined(d))return r(void 0,d)}function a(u,d){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(hy(u),hy(d),p,!0)};return z.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);z.isUndefined(f)&&p!==l||(n[d]=f)}),n}const IS=e=>{const t=Ui({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Qn.from(a),t.url=AS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),z.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(z.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&z.isFunction(r)&&(r=r(t)),r||r!==!1&&m4(t.url))){const c=s&&i&&h4.read(i);c&&a.set(s,c)}return t},v4=typeof XMLHttpRequest<"u",y4=v4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const a=Qn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Qn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Oe("Request aborted",Oe.ECONNABORTED,e,b)),b=null)},b.onerror=function(k){const A=k&&k.message?k.message:"Network Error",S=new Oe(A,Oe.ERR_NETWORK,e,b);S.event=k||null,r(S),b=null},b.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||TS;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new Oe(k,A.clarifyTimeoutError?Oe.ETIMEDOUT:Oe.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&z.forEach(a.toJSON(),function(k,A){b.setRequestHeader(A,k)}),z.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Du(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Du(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=d4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Oe("Unsupported protocol "+y+":",Oe.ERR_BAD_REQUEST,e));return}b.send(i||null)})},_4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Oe?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Oe(`timeout ${t} of ms exceeded`,Oe.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>z.asap(l),c}},b4=function*(e,t){let n=e.byteLength;if(n{const s=w4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=z,S4=(({Request:e,Response:t})=>({Request:e,Response:t}))(z.global),{ReadableStream:vy,TextEncoder:yy}=z.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},E4=e=>{e=z.merge.call({skipUndefined:!0},S4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),a=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(Cn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&_y(()=>z.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Oe(`Response type '${g}' is not supported`,Oe.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(z.isBlob(g))return g.size;if(z.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(z.isArrayBufferView(g)||z.isArrayBuffer(g))return g.byteLength;if(z.isURLSearchParams(g)&&(g=g+""),z.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=z.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:k,onDownloadProgress:A,onUploadProgress:S,responseType:T,headers:D,withCredentials:$="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=_4([y,_&&_.toAbortSignal()],k),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let he;try{if(S&&u&&b!=="get"&&b!=="head"&&(he=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(z.isFormData(x)&&(pe=se.headers.get("content-type"))&&D.setContentType(pe),se.body){const[L,ke]=fy(he,Du(my(S)));x=gy(se.body,xy,L,ke)}}z.isString($)||($=$?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?$:void 0};re=i&&new n(v,oe);let F=await(i?H(re,j):H(v,oe));const Q=d&&(T==="stream"||T==="response");if(d&&(A||Q&&le)){const se={};["status","statusText","headers"].forEach(De=>{se[De]=F[De]});const pe=z.toFiniteNumber(F.headers.get("content-length")),[L,ke]=A&&fy(pe,Du(my(A),!0))||[];F=new r(gy(F.body,xy,L,()=>{ke&&ke(),le&&le()}),se)}T=T||"text";let N=await p[z.findKey(p,T)||"text"](F,g);return!Q&&le&&le(),await new Promise((se,pe)=>{MS(se,pe,{data:N,headers:Qn.from(F.headers),status:F.status,statusText:F.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Oe("Network Error",Oe.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Oe.from(xe,xe&&xe.code,g,re)}}},C4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=C4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:E4(t)),d=u;return u};BS();const Tg={http:$M,xhr:y4,fetch:{get:BS}};z.forEach(Tg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,j4=e=>z.isFunction(e)||e===null||e===!1;function N4(e,t){e=z.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(by).join(` +`):" "+by(a[0]):"as no adapter specified";throw new Oe("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:N4,adapters:Tg};function Np(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function wy(e){return Np(e),e.headers=Qn.from(e.headers),e.data=jp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Np(e),r.data=jp.call(e,e.transformResponse,r),r.headers=Qn.from(r.headers),r},function(r){return DS(r)||(Np(e),r&&r.response&&(r.response.data=jp.call(e,e.transformResponse,r.response),r.response.headers=Qn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+US+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Oe(s(a," has been removed"+(n?" in "+n:"")),Oe.ERR_DEPRECATED);return n&&!ky[a]&&(ky[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function P4(e,t,n){if(typeof e!="object")throw new Oe("options must be an object",Oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Oe("option "+i+" must be "+c,Oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Oe("Unknown option "+i,Oe.ERR_BAD_OPTION)}}const Wc={assertOptions:P4,validators:kd},Hr=Wc.validators;let Di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ui(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(z.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&z.merge(i.common,i[n.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Qn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 VS(function(s){t=s}),cancel:t}}};function A4(e){return function(n){return e.apply(null,n)}}function T4(e){return z.isObject(e)&&e.isAxiosError===!0}const Em={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(Em).forEach(([e,t])=>{Em[t]=e});function zS(e){const t=new Di(e),n=yS(Di.prototype.request,t);return z.extend(n,Di.prototype,t,{allOwnKeys:!0}),z.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Ui(e,s))},n}const Qt=zS(Rl);Qt.Axios=Di;Qt.CanceledError=Ha;Qt.CancelToken=R4;Qt.isCancel=DS;Qt.VERSION=US;Qt.toFormData=wd;Qt.AxiosError=Oe;Qt.Cancel=Qt.CanceledError;Qt.all=function(t){return Promise.all(t)};Qt.spread=A4;Qt.isAxiosError=T4;Qt.mergeConfig=Ui;Qt.AxiosHeaders=Qn;Qt.formToJSON=e=>LS(z.isHTMLForm(e)?new FormData(e):e);Qt.getAdapter=FS.getAdapter;Qt.HttpStatusCode=Em;Qt.default=Qt;const{Axios:B8,AxiosError:F8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=Qt,ye=Qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Cm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const L4=()=>{jm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Cm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const D4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},M4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},O4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},I4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},B4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},F4=async e=>{await ye.delete(`/estimates/${e}`)},U4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},V4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},z4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},$4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},H4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},q4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},W4=async e=>{await ye.delete(`/line-items/${e}`)},G4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},K4=async e=>{await ye.post("/estimates/reorder",e)},Q4=async()=>{const{data:e}=await ye.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},Y4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},X4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},J4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Z4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},eO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},Ey=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},tO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},nO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Cy=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},rO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},sO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},iO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},aO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},oO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},lO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},cO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},uO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},dO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},pO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},fO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ay=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?mO(n):pO(n);case"ALL_PURPOSE":return t?hO(n):fO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return rE(n);case"DATABRICKS_APPS":return eE(n);case"CLEAN_ROOM":return gO(n);case"AI_PARSE":return tE(n);case"SHUTTERSTOCK_IMAGEAI":return nE(n);case"LAKEFLOW_CONNECT":return xO(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function cs(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([cs("instance-dbu-rates.json"),cs("dbu-multipliers.json"),cs("dbu-rates.json"),cs("dbsql-rates.json"),cs("dbsql-warehouse-config.json"),cs("vector-search-rates.json"),cs("model-serving-rates.json"),cs("fmapi-databricks-rates.json"),cs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),sE()}}function sE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function iE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Lg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"];function aE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Ty;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},jO="v7",ds=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(ds);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(ds),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(ds),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(ds),null;return t}catch{return localStorage.removeItem(ds),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(ds,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(ds)}catch{}}const Pp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Rp=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Ap=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Dp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Mp=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],ws=rM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"}],cloudProviders:Pp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Rp,dbsqlWarehouseTypes:[],dltEditions:Ap,fmapiProviders:Mp,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tp,vmPaymentOptions:Lp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Dp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:sE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await D4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Sy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await O4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await F4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await $4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await H4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await q4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await W4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]},p=u.workloadTypes||[],f=new Set(p.map(g=>g.workload_type)),h=[...p,...r.workloadTypes.filter(g=>!f.has(g.workload_type))];e({workloadTypes:h.length>0?h:r.workloadTypes,cloudProviders:u.cloudProviders||Pp,dbsqlSizes:u.dbsqlSizes||Rp,dltEditions:u.dltEditions||Ap,fmapiProviders:u.fmapiProviders||Mp,vmPricingTiers:u.vmPricingTiers||Tp,vmPaymentOptions:u.vmPaymentOptions||Lp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Dp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,k,A,S,T,D,$,j,H,X,re,le]=await Promise.all([Q4().catch(()=>r.workloadTypes),X4().catch(()=>Pp),J4().catch(()=>Rp),Z4().catch(()=>Ap),eO().catch(()=>Mp),cO().catch(()=>Tp),uO().catch(()=>Lp),iO().catch(()=>null),oO().catch(()=>null),Py().catch(()=>Dp),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),sO(s).catch(()=>[]),aO(s).catch(()=>[]),Ey().catch(()=>[]),Cy().catch(()=>[]),Nm().catch(()=>[])]),he={aws:A,azure:S,gcp:T},xe=A,oe={};j.forEach(se=>{const pe=`${se.model}:${se.rate_type}`;oe[pe]=se});const F={};H.forEach(se=>{const pe=`${se.provider}:${se.model}:${se.rate_type}`;F[pe]=se});const Q=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Q.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,vectorSearchModes:$,fmapiDatabricksRates:oe,fmapiProprietaryRates:F,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await Y4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Ey();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Cy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await lO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=nO({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Lg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await HS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ay(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ay(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await rE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await eE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"AI_PARSE":c=await tE({...l,mode:"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1});break;case"SHUTTERSTOCK_IMAGEAI":c=await nE({...l,images_per_month:n.shutterstock_images||100});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function Ly(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function oE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Rm(e){return e.toLowerCase()}class Yn{constructor(t,n){this.attribute=n,this.property=t}}Yn.prototype.attribute="";Yn.prototype.booleanish=!1;Yn.prototype.boolean=!1;Yn.prototype.commaOrSpaceSeparated=!1;Yn.prototype.commaSeparated=!1;Yn.prototype.defined=!1;Yn.prototype.mustUseProperty=!1;Yn.prototype.number=!1;Yn.prototype.overloadedBoolean=!1;Yn.prototype.property="";Yn.prototype.spaceSeparated=!1;Yn.prototype.space=void 0;let BO=0;const Ue=Wi(),Xt=Wi(),Am=Wi(),ne=Wi(),_t=Wi(),_a=Wi(),nr=Wi();function Wi(){return 2**++BO}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ue,booleanish:Xt,commaOrSpaceSeparated:nr,commaSeparated:_a,number:ne,overloadedBoolean:Am,spaceSeparated:_t},Symbol.toStringTag,{value:"Module"})),Op=Object.keys(Tm);class Dg extends Yn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Dg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=oE([lE,FO,dE,pE,fE],"html"),Mg=oE([lE,UO,dE,pE,fE],"svg");function KO(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,By="/",Fy="*",Ei="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(By!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;Ei!=e.charAt(v)&&(Fy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,Ei===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:Uy(v[0].replace(Iy,Ei)),value:b?Uy(b[0].replace(Iy,Ei)):Ei});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(tI,Ei):Ei}var aI=iI,oI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,Vy):e=e.replace(fI,Vy),e.replace(dI,gI))};Sd.camelCase=xI;var vI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Og),_I=Sd;function Lm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Lm.default=Lm;var bI=Lm;const wI=qu(bI),mE=hE("end"),Ig=hE("start");function hE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Ig(e),n=mE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),gE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=xE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function xE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=yE(e,t.tagName,!1),a=II(e,t);let l=Ug(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:yE(e,t.name,!0),a=BI(e,t),l=Ug(e,t);return vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Fg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function vE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=FI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function BI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(lr(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function bE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=pi(/[A-Za-z]/),Nn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function gt(e){return e!==null&&(e<0||e===32)}function Ge(e){return e===-2||e===-1||e===32}const Ed=pi(new RegExp("\\p{P}|\\p{S}","u")),Vi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Je(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return Ge(c)?(e.enter(n),l(c)):t(c)}function l(c){return Ge(c)&&i++a))return;const T=t.events.length;let D=T,$,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if($){j=t.events[D][1].end;break}$=!0}for(x(r),S=T;S_;){const A=n[k];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tB(e,t,n){return Je(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||gt(e)||Vi(e))return 1;if(Ed(e))return 2}function Cd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Ky(p,-c),Ky(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,Cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,lr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&Ge(S)?Je(e,y,"linePrefix",i+1)(S):y(S)}function y(S){return S===null||Ne(S)?e.check(Qy,v,k)(S):(e.enter("codeFlowValue"),_(S))}function _(S){return S===null||Ne(S)?(e.exit("codeFlowValue"),y(S)):(e.consume(S),_)}function k(S){return e.exit("codeFenced"),t(S)}function A(S,T,D){let $=0;return j;function j(he){return S.enter("lineEnding"),S.consume(he),S.exit("lineEnding"),H}function H(he){return S.enter("codeFencedFence"),Ge(he)?Je(S,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(he):X(he)}function X(he){return he===l?(S.enter("codeFencedFenceSequence"),re(he)):D(he)}function re(he){return he===l?($++,S.consume(he),re):$>=a?(S.exit("codeFencedFenceSequence"),Ge(he)?Je(S,le,"whitespace")(he):le(he)):D(he)}function le(he){return he===null||Ne(he)?(S.exit("codeFencedFence"),T(he)):D(he)}}}function fB(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hB},mB={partial:!0,tokenize:gB};function hB(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Je(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mB,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gB(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Je(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xB={name:"codeText",previous:yB,resolve:vB,tokenize:_B};function vB(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function jE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||gt(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!Ge(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function PE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Je(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ge(s)?Je(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NB={name:"definition",tokenize:RB},PB={partial:!0,tokenize:AB};function RB(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return NE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return gt(h)?Do(e,u)(h):u(h)}function u(h){return jE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PB,p,p)(h)}function p(h){return Ge(h)?Je(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AB(e,t,n){return r;function r(l){return gt(l)?Do(e,s)(l):n(l)}function s(l){return PE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Ge(l)?Je(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TB={name:"hardBreakEscape",tokenize:LB};function LB(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DB={name:"headingAtx",resolve:MB,tokenize:OB};function MB(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},lr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OB(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||gt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):Ge(d)?Je(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||gt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IB=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],BB={concrete:!0,name:"htmlFlow",resolveTo:VB,tokenize:zB},FB={partial:!0,tokenize:HB},UB={partial:!0,tokenize:$B};function VB(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zB(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):On(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const ke="CDATA[";return L===ke.charCodeAt(l++)?(e.consume(L),l===ke.length?r.interrupt?t:X:g):n(L)}function v(L){return On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||gt(L)){const ke=L===47,De=a.toLowerCase();return!ke&&!i&&Xy.includes(De)?(s=1,r.interrupt?t(L):X(L)):IB.includes(a.toLowerCase())?(s=6,ke?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return Ge(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||On(L)?(e.consume(L),k):Ge(L)?(e.consume(L),_):j(L)}function k(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),k):A(L)}function A(L){return L===61?(e.consume(L),S):Ge(L)?(e.consume(L),A):_(L)}function S(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):Ge(L)?(e.consume(L),S):D(L)}function T(L){return L===c?(e.consume(L),c=null,$):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||gt(L)?A(L):(e.consume(L),D)}function $(L){return L===47||L===62||Ge(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):Ge(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Q):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(FB,pe,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UB,le,pe)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),he}function he(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",F):X(L)}function F(L){if(L===62){const ke=a.toLowerCase();return Xy.includes(ke)?(e.consume(L),se):X(L)}return On(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),F):X(L)}function Q(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),se)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $B(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HB(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qB={name:"htmlText",tokenize:WB};function WB(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):On(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):On(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),k):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function k(N){return N===62?xe(N):_(N)}function A(N){return On(N)?(e.consume(N),S):n(N)}function S(N){return N===45||Nn(N)?(e.consume(N),S):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):Ge(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||gt(N)?$(N):n(N)}function $(N){return N===47?(e.consume(N),xe):N===58||N===95||On(N)?(e.consume(N),j):Ne(N)?(a=$,oe(N)):Ge(N)?(e.consume(N),$):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):Ge(N)?(e.consume(N),H):$(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):Ge(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,he):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||gt(N)?$(N):(e.consume(N),le)}function he(N){return N===47||N===62||gt(N)?$(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),F}function F(N){return Ge(N)?Je(e,Q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Q(N)}function Q(N){return e.enter("htmlTextData"),a(N)}}const $g={name:"labelEnd",resolveAll:YB,resolveTo:XB,tokenize:JB},GB={tokenize:ZB},KB={tokenize:eF},QB={tokenize:tF};function YB(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),Ge(u)?Je(e,l,"whitespace")(u):l(u))}}const zn={continuation:{tokenize:dF},exit:fF,name:"list",tokenize:uF},lF={partial:!0,tokenize:mF},cF={partial:!0,tokenize:pF};function uF(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lF,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return Ge(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dF(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Je(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Ge(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cF,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Je(e,e.attempt(zn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pF(e,t,n){const r=this;return Je(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fF(e){e.exit(this.containerState.type)}function mF(e,t,n){const r=this;return Je(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ge(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:hF,tokenize:gF};function hF(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gF(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Ge(u)?Je(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xF={tokenize:vF};function vF(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Je(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kB,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yF={resolveAll:AE()},_F=RE("string"),bF=RE("text");function RE(e){return{resolveAll:AE(e==="text"?wF:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MF(e,t){let n=-1;const r=[];let s;for(;++n0){const Ve=G.tokenStack[G.tokenStack.length-1];(Ve[1]||e_).call(G,void 0,Ve[0])}for(B.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QF(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YF(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XF(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JF(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZF(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function DE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):ME(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=mE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WF,break:GF,code:KF,delete:QF,emphasis:YF,footnoteReference:XF,heading:JF,html:ZF,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const OE=-1,jd=0,Mo=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,IE=7,BE=8,s_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case jd:case OE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case Hg:return n(new Date(a),s);case qg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case IE:{const{name:l,message:c}=a;return n(new s_[l](c),s)}case BE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new s_[i](a),s)};return r},i_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Ou,Ki];case"Date":return[Hg,Ki];case"RegExp":return[qg,Ki];case"Map":return[Wg,Ki];case"Set":return[Gg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[IE,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case jd:{let d=a;switch(c){case"bigint":l=BE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([OE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Ou:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!yc(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case Hg:return s([l,a.toISOString()],a);case qg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Wg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(yc(uo(f))||yc(uo(h))))&&d.push([i(f),i(h)]);return p}case Gg:{const d=[],p=s([l,d],a);for(const f of a)(e||!yc(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(a_(e,t)):structuredClone(e):(e,t)=>i_(a_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return N6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=FE,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function o_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function F6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,VE=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):VE.call(t)==="[object Array]"},f_=function(t){if(!t||VE.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Wr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Fm(v)&&Fm(h)&&(h=Up(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Qg().freeze();function Hp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Fm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return rU(e)?e:new zE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return nU().use(qF).use(n).use(F6,r).use(t)}function dU(e){const t=e.children||"",n=new zE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Kg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Ip)if(Object.hasOwn(Ip,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ip[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Nd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:S}:void 0),S===!1?f.lastIndex=k+1:(g!==k&&y.push({type:"text",value:u.value.slice(g,k)}),Array.isArray(S)?y.push(...S):S&&y.push(S),g=k+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function $E(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Vi(n)||Ed(n))&&(!t||n!==47)}HE.peek=FU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function BU(e){this.exit(e)}function FU(){return"["}function HE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:BU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?qE:zU))),u(),c}}function zU(e,t,n){return t===0?e:qE(e,t,n)}function qE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];WE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:WE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function WE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GE.peek=l7;function GE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}KE.peek=d7;function KE(e){return e.value||""}function d7(){return"<"}QE.peek=p7;function QE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}YE.peek=f7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}XE.peek=m7;function XE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}ZE.peek=h7;function ZE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(JE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return JE(e,n)?"<":"["}eC.peek=g7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Xg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),tC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nC.peek=C7;function nC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(tC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rC={blockquote:JU,break:S_,code:s7,definition:a7,emphasis:GE,hardBreak:S_,heading:u7,html:KE,image:QE,imageReference:YE,inlineCode:XE,link:ZE,linkReference:eC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:nC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:E_,tableHeader:E_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Yp,tableHeader:Yp,tableRow:Yp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Yp(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||gt(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return gt(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||gt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return gt(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Je(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Je(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?S:c;return re===S&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):Ge(j)?Je(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||gt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,Ge(j)?Je(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return Ge(j)?Je(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?k(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return Ge(j)?Je(e,k,"whitespace")(j):k(j)}function k(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function S(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):Ge(j)?Je(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||gt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?$:D)}function $(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return gt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):Ge(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Je(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return bE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[k,A]=m.useState([]),[S,T]=m.useState([]),[D,$]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,he]=m.useState(!1),[xe,oe]=m.useState(380),[F,Q]=m.useState(!1),[N,se]=m.useState(!0),[pe,L]=m.useState(null),[ke,De]=m.useState(""),[w,Y]=m.useState(null),ue=l??xe,_e=c??oe,ve=m.useRef(null),ot=m.useRef(null),Ze=m.useRef(null),I=m.useRef(null),st=m.useRef(null),xt=m.useRef(!1),lt=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,$e=a[Te];$e!=null&&$e.total&&(U+=$e.total)}),U},[a,i]),mt=m.useCallback(U=>{U.preventDefault(),Q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!F)return;const $e=window.innerWidth-Te.clientX,K=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,$e),K))},Z=()=>{Q(!1)};return F&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[F]);const W=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;xt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(xt.current=!1)},[g]);const E=m.useCallback(()=>{const U=ot.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;xt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Ze.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](https://cheeyutan.github.io/lakemeter/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](https://cheeyutan.github.io/lakemeter/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),q=m.useCallback((U,Z)=>{L(U),De(Z)},[]),Se=m.useCallback(()=>{L(null),De("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),Y(U),setTimeout(()=>Y(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,B]=m.useState(null),[G,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!ke.trim()||d.findIndex(K=>K.id===U)===-1)return;const Te=ke.trim();if(T([]),L(null),De(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const $e={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([$e]),B(Te),ae(!0)},[ke,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,lt,ie]);const Ve=m.useCallback(async(U,Z)=>{var ut;const Te=U||f.trim();if(!Te||g)return;const $e={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(nt=>[...nt,$e]),h(""),v(!0),re(null);const K=`assistant-${Date.now()}`;p(nt=>[...nt,{id:K,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const nt=(i||k||[]).map(Ie=>{const Me=Ie.line_item_id||Ie.item_id||Ie.draft_id,Re=a==null?void 0:a[Me];return{...Ie,total_cost:(Re==null?void 0:Re.total)||Ie.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Ie.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Ie.vm_cost||0}}),Bt=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:$e.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:nt,mode:u,stream:!0}),signal:I.current.signal});if(!Bt.ok)throw new Error(`HTTP ${Bt.status}: ${Bt.statusText}`);const ft=(ut=Bt.body)==null?void 0:ut.getReader();if(!ft)throw new Error("No response body");const vt=new TextDecoder;let Ct="",ht="",ze=[];for(;;){const{done:Ie,value:Me}=await ft.read();if(Ie)break;Ct+=vt.decode(Me,{stream:!0});const Re=Ct.split(` +`);Ct=Re.pop()||"";for(const Yt of Re)if(Yt.startsWith("data: ")){const jt=Yt.slice(6);if(jt==="[DONE]")continue;try{const Ee=JSON.parse(jt);if(Ee.type==="start")x(Ee.conversation_id);else if(Ee.type==="content")ht+=Ee.content,p(Nt=>Nt.map(Le=>Le.id===K?{...Le,content:ht,isThinking:!1}:Le));else if(Ee.type==="tool_result")ze.push({tool:Ee.tool,result:Ee.result});else if(Ee.type==="proposal")Ee.workload&&Ee.workload.proposal_id&&T(Nt=>Nt.some(Jn=>Jn.proposal_id===Ee.workload.proposal_id)?Nt:[...Nt,Ee.workload]);else if(Ee.type==="done")ht.includes("Error getting response")||ht.includes("AI service error")||(Ee.estimate&&_(Ee.estimate),Ee.workloads&&A(Ee.workloads),Ee.proposed_workloads&&Ee.proposed_workloads.length>0&&T(Ee.proposed_workloads));else if(Ee.type==="error")throw new Error(Ee.content)}catch{}}}p(Ie=>Ie.map(Me=>Me.id===K?{...Me,content:ht,isStreaming:!1,toolResults:ze}:Me))}catch(nt){if(nt.name==="AbortError")return;console.error("Chat error:",nt),re(nt.message||"Failed to get response"),p(Bt=>Bt.filter(ft=>ft.id!==K))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,k,a]);m.useEffect(()=>{O&&!g&&(Ve(O,G),B(null),ae(!1))},[O,G,g,Ve]);const pt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Ve())},it=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ye=async U=>{if(b){$(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T($e=>$e.filter(K=>K.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p($e=>{var K;return[...$e,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(K=Te.workload_config)==null?void 0:K.workload_name}" added to estimate.`,timestamp:new Date}]})}catch($e){p(K=>[...K,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${$e.message||"Database error"}. Please try again.`,timestamp:new Date}]),re($e.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},ct=async U=>{if(b){$(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=S.find($e=>$e.proposal_id===U);T($e=>$e.filter(K=>K.proposal_id!==U)),p($e=>[...$e,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Xe=async()=>{for(const U of S)await Ye(U.proposal_id)},It=async()=>{for(const U of S)await ct(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>he(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx($c,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(fs,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:st,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ue}px)`},children:[o.jsx("div",{onMouseDown:mt,className:de("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",F&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ms,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:it,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(KD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(OD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),S.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ty,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[S.length," Proposed Workload",S.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(sr,{className:"w-4 h-4 text-amber-600"}):o.jsx(fs,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Xe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",S.length,")"]}),o.jsx("button",{onClick:It,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:S.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:de("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ye(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Au,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:ot,onScroll:E,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:de("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:de("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:ke,onChange:Z=>De(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:de("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var $e;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[($e=Z.result)!=null&&$e.success?o.jsx(Au,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:de("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:de("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(wD,{className:"w-3.5 h-3.5"}):o.jsx(SD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>q(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(n3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:it,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(fs,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Ve(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Ze,value:f,onChange:W,onKeyDown:pt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Ve(),disabled:!g&&!f.trim(),className:de("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(dS,{className:"w-4 h-4"}):o.jsx(JD,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:o3}],N_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Xp=[{value:"light",label:"Light",icon:y3},{value:"dark",label:"Dark",icon:YD},{value:"system",label:"System",icon:PD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=R3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),k=m.useRef(null),{currentUser:A,isAuthenticated:S,authError:T,fetchCurrentUser:D,currentEstimate:$,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:he,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:F}=ws(),Q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Q||N,pe=m.useCallback(()=>{L4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const Y=ue=>{var _e;console.log("Session expired event received:",ue.detail),g(((_e=ue.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(Cm,Y),()=>{window.removeEventListener(Cm,Y)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),ke=m.useCallback(()=>{a(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||he(),F||xe()},[he,xe,oe,F]),m.useEffect(()=>{const Y=ue=>{_.current&&!_.current.contains(ue.target)&&s(!1),k.current&&!k.current.contains(ue.target)&&a(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Xp.find(Y=>Y.value===t)||Xp[2],w=De.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(N_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(N_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(Y=>{const ue=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return o.jsxs(bu,{to:Y.href,className:de("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ue&&"border"),style:ue?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(Y.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),S&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(S3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),o.jsx(sr,{className:de("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Xp.map(Y=>{const ue=Y.icon,_e=t===Y.value;return o.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ue,{className:"w-4 h-4"}),o.jsx("span",{children:Y.label})]},Y.value)})})]}),o.jsxs("div",{className:"relative",ref:k,children:[o.jsxs("button",{onClick:ke,className:de("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(u3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(nm,{children:i&&o.jsxs($t.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"https://cheeyutan.github.io/lakemeter/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(BD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(_m,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx($t.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(EN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Q?$:void 0,currentWorkloads:Q?j:void 0,itemCosts:Q?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Q?async Y=>{if($!=null&&$.estimate_id)try{await X({estimate_id:$.estimate_id,...Y}),re($.estimate_id),We.success(`Workload "${Y.workload_name}" added!`)}catch(ue){throw We.error(ue.message||"Failed to add workload"),ue}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(nm,{children:p&&o.jsx($t.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs($t.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(ms,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Xn(e){var t,n;return e?Ga(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Xn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Xn(e).HTMLElement}function pC(e){return e instanceof Xn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:Zg(e)?ex(e)?e:Dl(e)||pC(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Fu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Jp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Jp[e]==null?0:Jp[e]+1;return Jp[e]=n,e+"-"+n},[e,t])}function fC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=fC(1),Uu=fC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Xn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Xn(e.target);return t&&e instanceof t}function $m(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(P_)?e:e.querySelector(P_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const mC=m.createContext(null);function OV(e){const t=m.useContext(mC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const BV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},FV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=FV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=BV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function hC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const gC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(R_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function xC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Xn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function A_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Xn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Xn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||pC(s)||n.includes(s))return n;const i=Xn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function vC(e){const[t]=rx(e,1);return t??null}function Zp(e){return!Rd||!e?null:Ga(e)?e:Zg(e)?ex(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function yC(e){return Ga(e)?e.scrollX:e.scrollLeft}function _C(e){return Ga(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:yC(e),y:_C(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function bC(e){return!Rd||!e?!1:e===document.scrollingElement}function wC(e){const t={x:0,y:0},n=bC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=wC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function kC(e){return e.reduce((t,n)=>ba(t,Hm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+yC(n),0)}function az(e){return e.reduce((t,n)=>t+_C(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);vC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=kC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Xn(e);return e instanceof t?e:Ka(e)}function ef(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function T_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var rt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(rt||(rt={}));const SC={start:[rt.Space,rt.Enter],cancel:[rt.Esc],end:[rt.Space,rt.Enter,rt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case rt.Right:return{...n,x:n.x+25};case rt.Left:return{...n,x:n.x-25};case rt.Down:return{...n,y:n.y+25};case rt.Up:return{...n,y:n.y-25}}};class Ad{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Xn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=SC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Uu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:k,maxScroll:A,minScroll:S}=wC(v),T=sz(v),D={x:Math.min(b===rt.Right?T.right-T.width/2:T.right,Math.max(b===rt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===rt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===rt.Down?T.top:T.top+T.height/2,p.y))},$=b===rt.Right&&!y||b===rt.Left&&!_,j=b===rt.Down&&!k||b===rt.Up&&!x;if($&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===rt.Right&&H<=A.x||b===rt.Left&&H>=S.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===rt.Right?v.scrollLeft-A.x:v.scrollLeft-S.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===rt.Down&&H<=A.y||b===rt.Up&&H>=S.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===rt.Down?v.scrollTop-A.y:v.scrollTop-S.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Uu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ad.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=SC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function L_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Xn(a)),this.initialCoordinates=(s=$m(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,T_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,T_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(L_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Fr,u=Uu(s,c);if(!r&&l){if(L_(l)){if(l.tolerance!=null&&ef(u,l.tolerance))return this.handleCancel();if(ef(u,l.distance))return this.handleStart()}if(D_(l)&&ef(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Td extends ix{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Td.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class mz extends ix{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const tf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ix{constructor(t){super(t,tf)}static setup(){return window.addEventListener(tf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),k=m.useCallback(()=>{const S=_.current;if(!S)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;S.scrollBy(T,D)},[]),A=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const S of A){if((r==null?void 0:r(S))===!1)continue;const T=u.indexOf(S),D=d[T];if(!D)continue;const{direction:$,speed:j}=rz(S,D,y,t,f);for(const H of["x","y"])h[H][$[H]]||(j[H]=0,$[H]=0);if(j.x>0||j.y>0){v(),_.current=S,g(k,a),b.current=j,x.current=$;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,k,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const k=_.node.current,A=k?new sx(c(k),k):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function EC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return EC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ld(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new sx(Qa(e),e)}function O_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Ld({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=EC(e);return xC(e,t)}const I_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=Zp(i.target);a&&n(l=>l?(l.set(a,Hm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=Zp(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=Zp(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):kC(e):Fr,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function CC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const F_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=CC(n?Xn(n):null),[s,i]=m.useState(F_);function a(){i(()=>e.length?e.map(c=>bC(c)?r:new sx(t(c),c)):F_)}const l=Ld({callback:a});return es(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Ld({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Fu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Td,options:{}},{sensor:Ad,options:{}}],Dz={current:{}},Qc={draggable:{measure:A_},droppable:{measure:A_,strategy:fl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Qa}};class Bo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Bo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Oz),jC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Bo}}}function Bz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Bo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Bo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Bo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Fz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),a=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=xC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=vC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const NC=m.createContext({...Fr,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const PC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Bz,void 0,Iz),[b,x]=v,[y,_]=IV(),[k,A]=m.useState(Us.Uninitialized),S=k===Us.Initialized,{draggable:{active:T,nodes:D,translate:$},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var K;return T!=null?{id:T,data:(K=H==null?void 0:H.data)!=null?K:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[he,xe]=m.useState(null),[oe,F]=m.useState(null),Q=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:ke,measuringScheduled:De}=bz(se,{dragging:S,dependencies:[$.x,$.y],config:pe.droppable}),w=yz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ue=$e(),_e=wz(w,pe.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ue.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Ze=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Ze.current.over)==null?void 0:n.id),st=Tz({measure:pe.dragOverlay.measure}),xt=(r=st.nodeRef.current)!=null?r:w,lt=S?(s=st.rect)!=null?s:ve:null,mt=!!(st.nodeRef.current&&st.rect),W=Ez(mt?null:ve),P=CC(xt?Xn(xt):null),E=Cz(S?I??w:null),ie=Rz(E),M=Uz(h,{transform:{x:$.x-W.x,y:$.y-W.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:ot,draggingNodeRect:lt,over:Ze.current.over,overlayNodeRect:st.rect,scrollableAncestors:E,scrollableAncestorRects:ie,windowRect:P}),q=Y?ba(Y,$):null,Se=jz(E),Pe=B_(Se),O=B_(Se,[ve]),B=ba(M,Pe),G=lt?QV(lt,M):null,ae=re&&G?p({active:re,collisionRect:G,droppableRects:L,droppableContainers:se,pointerCoordinates:q}):null,je=HV(ae,"id"),[Ve,pt]=m.useState(null),it=mt?M:ba(M,O),Ye=GV(it,(i=Ve==null?void 0:Ve.rect)!=null?i:null,ve),ct=m.useRef(null),Xe=m.useCallback((K,ut)=>{let{sensor:nt,options:Bt}=ut;if(le.current==null)return;const ft=D.get(le.current);if(!ft)return;const vt=K.nativeEvent,Ct=new nt({active:le.current,activeNode:ft,event:vt,options:Bt,context:Ze,onAbort(ze){if(!D.get(ze))return;const{onDragAbort:Me}=Q.current,Re={id:ze};Me==null||Me(Re),y({type:"onDragAbort",event:Re})},onPending(ze,Ie,Me,Re){if(!D.get(ze))return;const{onDragPending:jt}=Q.current,Ee={id:ze,constraint:Ie,initialCoordinates:Me,offset:Re};jt==null||jt(Ee),y({type:"onDragPending",event:Ee})},onStart(ze){const Ie=le.current;if(Ie==null)return;const Me=D.get(Ie);if(!Me)return;const{onDragStart:Re}=Q.current,Yt={activatorEvent:vt,active:{id:Ie,data:Me.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Yt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:ze,active:Ie}),y({type:"onDragStart",event:Yt}),xe(ct.current),F(vt)})},onMove(ze){x({type:sn.DragMove,coordinates:ze})},onEnd:ht(sn.DragEnd),onCancel:ht(sn.DragCancel)});ct.current=Ct;function ht(ze){return async function(){const{active:Me,collisions:Re,over:Yt,scrollAdjustedTranslate:jt}=Ze.current;let Ee=null;if(Me&&jt){const{cancelDrop:Nt}=Q.current;Ee={activatorEvent:vt,active:Me,collisions:Re,delta:jt,over:Yt},ze===sn.DragEnd&&typeof Nt=="function"&&await Promise.resolve(Nt(Ee))&&(ze=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:ze}),A(Us.Uninitialized),pt(null),xe(null),F(null),ct.current=null;const Nt=ze===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const Le=Q.current[Nt];Le==null||Le(Ee),y({type:Nt,event:Ee})}})}}},[D]),It=m.useCallback((K,ut)=>(nt,Bt)=>{const ft=nt.nativeEvent,vt=D.get(Bt);if(le.current!==null||!vt||ft.dndKit||ft.defaultPrevented)return;const Ct={active:vt};K(nt,ut.options,Ct)===!0&&(ft.dndKit={capturedBy:ut.sensor},le.current=Bt,Xe(nt,ut))},[D,Xe]),U=_z(d,It);Nz(d),es(()=>{ve&&k===Us.Initializing&&A(Us.Initialized)},[ve,k]),m.useEffect(()=>{const{onDragMove:K}=Q.current,{active:ut,activatorEvent:nt,collisions:Bt,over:ft}=Ze.current;if(!ut||!nt)return;const vt={active:ut,activatorEvent:nt,collisions:Bt,delta:{x:B.x,y:B.y},over:ft};la.unstable_batchedUpdates(()=>{K==null||K(vt),y({type:"onDragMove",event:vt})})},[B.x,B.y]),m.useEffect(()=>{const{active:K,activatorEvent:ut,collisions:nt,droppableContainers:Bt,scrollAdjustedTranslate:ft}=Ze.current;if(!K||le.current==null||!ut||!ft)return;const{onDragOver:vt}=Q.current,Ct=Bt.get(je),ht=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,ze={active:K,activatorEvent:ut,collisions:nt,delta:{x:ft.x,y:ft.y},over:ht};la.unstable_batchedUpdates(()=>{pt(ht),vt==null||vt(ze),y({type:"onDragOver",event:ze})})},[je]),es(()=>{Ze.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:G,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:xt,draggingNodeRect:lt,droppableContainers:j,over:Ve,scrollableAncestors:E,scrollAdjustedTranslate:B},X.current={initial:lt,translated:G}},[re,w,ae,G,D,xt,lt,L,j,Ve,E,B]),gz({...ue,delta:$,draggingRect:G,pointerCoordinates:q,scrollableAncestors:E,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:ot,dragOverlay:st,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Ve,measureDroppableContainers:ke,scrollableAncestors:E,scrollableAncestorRects:ie,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ve,oe,ae,ot,st,D,j,L,Ve,ke,E,ie,pe,De,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Ve,measureDroppableContainers:ke}),[oe,U,re,ve,x,N,D,Ve,ke]);return pn.createElement(mC.Provider,{value:_},pn.createElement(Dd.Provider,{value:Te},pn.createElement(jC.Provider,{value:Z},pn.createElement(NC.Provider,{value:Ye},u)),pn.createElement(Fz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function $e(){const K=(he==null?void 0:he.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,nt=S&&!K&&!ut;return typeof c=="object"?{...c,enabled:nt}:{enabled:nt}}}),$z=m.createContext(null),U_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?NC:$z),[y,_]=Fu(),[k,A]=Fu(),S=Pz(a,t),T=pl(n);es(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:k,data:T}),()=>{const $=p.get(t);$&&$.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:S,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(jC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ld({callback:y,disabled:g||!a}),k=m.useCallback((D,$)=>{_&&($&&(_.unobserve($),p.current=!1),D&&_.observe(D))},[_]),[A,S]=Fu(k),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:S}}function ax(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ax(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Sc={scaleX:1,scaleY:1},AC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Sc}:s=a?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,k=Jz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:k,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,k.draggable,k.droppable,_,h,b,c,f,s]);return pn.createElement(LC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ax(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},MC="transform",r8=Oa.Transition.toString({property:MC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function OC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(LC),_=a8(r,h),k=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:k,items:d},...s}),[p,s,k,d]),S=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:$,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:he,listeners:xe,isDragging:oe,over:F,setActivatorNodeRef:Q,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,he),pe=!!H,L=pe&&!g&&kc(f)&&kc(b),ke=!x&&oe,De=ke&&L?N:null,Y=L?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:k}):null,ue=kc(f)&&kc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):k,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ue,containerId:p}),ot=d!==ve.current.items,Ze=t({active:H,containerId:p,isDragging:oe,isSorting:pe,id:a,index:k,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Ze,index:k,node:D,rect:T});return m.useEffect(()=>{pe&&ve.current.newIndex!==ue&&(ve.current.newIndex=ue),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,ue,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const xt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(xt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:k,newIndex:ue,items:d,isOver:$,isSorting:pe,isDragging:oe,listeners:xe,node:D,overIndex:b,over:F,setNodeRef:se,setActivatorNodeRef:Q,setDroppableNodeRef:j,setDraggableNodeRef:he,transform:I??Y,transition:st()};function st(){if(I||ot&&ve.current.newIndex===k)return r8;if(!(ke&&!nx(X)||!u)&&(pe||Ze))return Oa.Transition.toString({...u,property:MC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}rt.Down,rt.Right,rt.Up,rt.Left;const IC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var BC={exports:{}};(function(e,t){(function(n,r){r()})(hs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof hs=="object"&&hs.global===hs?hs:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(BC);var Gm=BC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Ec={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=ws(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[k,A]=m.useState(new Set),[S,T]=m.useState(!1),[D,$]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,he]=m.useState(null),[xe,oe]=m.useState(!1),[F,Q]=m.useState(!1),N=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),We.success("Refreshed")},[r]),pe=m.useMemo(()=>{const W=t.length,P=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="aws"}).length,E=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="gcp"}).length;return{all:W,aws:P,azure:E,gcp:ie}},[t]),L=m.useMemo(()=>{const W=t.reduce((P,E)=>P+(E.line_item_count||0),0);return{estimates:t.length,workloads:W}},[t]),ke=m.useMemo(()=>{const W=new Set;return t.forEach(P=>{P.customer_name&&W.add(P.customer_name)}),Array.from(W).sort()},[t]),De=m.useMemo(()=>{const W={all:t.length};return t.forEach(P=>{P.customer_name&&(W[P.customer_name]=(W[P.customer_name]||0)+1)}),W},[t]),w=m.useMemo(()=>{let W=[...t];if(c){const P=c.toLowerCase();W=W.filter(E=>{var ie;return E.estimate_name.toLowerCase().includes(P)||((ie=E.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(W=W.filter(P=>{var E;return((E=P.cloud)==null?void 0:E.toLowerCase())===f})),b!=="all"&&(W=W.filter(P=>P.customer_name===b)),g){case"updated":W.sort((P,E)=>new Date(E.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":W.sort((P,E)=>P.estimate_name.localeCompare(E.estimate_name));break;case"workloads":W.sort((P,E)=>(E.line_item_count||0)-(P.line_item_count||0));break;case"display_order":W.sort((P,E)=>(P.display_order??0)-(E.display_order??0));break}return W},[t,c,f,g,b]),Y=m.useCallback(async W=>{const{active:P,over:E}=W;if(!E||P.id===E.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===E.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const q=ax(w,ie,M),{estimates:Se}=ws.getState(),Pe=Se.map(O=>{const B=q.findIndex(G=>G.estimate_id===O.estimate_id);return B>=0?{...O,display_order:B}:O});ws.setState({estimates:Pe});try{await K4(q.map(O=>O.estimate_id))}catch{We.error("Failed to save reorder")}},[w,g]),ue=(W,P,E)=>{W.stopPropagation(),he({id:P,name:E}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),We.success("Estimate deleted")}catch{We.error("Failed to delete")}finally{oe(!1),re(!1),he(null)}}},ve=async(W,P)=>{W.stopPropagation();try{const E=await i(P);We.success("Estimate duplicated"),e(`/calculator/${E.estimate_id}`)}catch{We.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const W=await dO();Gm.saveAs(W,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),We.success("Exported successfully")}catch{We.error("Export failed")}finally{l(!1)}},Ze=()=>{k.size===w.length?A(new Set):A(new Set(w.map(W=>W.estimate_id)))},I=(W,P)=>{P.stopPropagation();const E=new Set(k);E.has(W)?E.delete(W):E.add(W),A(E)},st=()=>{k.size!==0&&Q(!0)},xt=async()=>{$(!0);let W=0,P=0;for(const E of k)try{await s(E),W++}catch{P++}$(!1),A(new Set),Q(!1),P===0?We.success(`Deleted ${W} estimate(s)`):We.error(`Deleted ${W}, failed ${P}`)},lt=async()=>{if(k.size===0)return;H(!0);let W=0;for(const P of k)try{const E=t.find(ie=>ie.estimate_id===P);if(E){const ie=await qS(P);Gm.saveAs(ie,`${E.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),W++}}catch{}H(!1),We.success(`Exported ${W} estimate(s)`)},mt=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ny,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Ng,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Qr,{className:de("w-5 h-5",d&&"animate-spin")})}),S?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[k.size," selected"]}),o.jsxs("button",{onClick:lt,disabled:k.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:st,disabled:k.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:mt,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:ot,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),ke.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(pD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?ke.length:De[b]||0}),o.jsx(sr,{className:de("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(nm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs($t.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:ke.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),ke.map(W=>o.jsxs("button",{onClick:()=>{x(W),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===W?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===W?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:W,children:W}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:De[W]||0}),b===W&&o.jsx(Gs,{className:"w-4 h-4"})]})]},W))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:W=>u(W.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(W=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},W))})}):w.length===0?o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Ze,className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:k.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:de(S?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(PC,{sensors:N,collisionDetection:gC,onDragEnd:Y,modifiers:[IC],children:o.jsx(DC,{items:w.map(W=>W.estimate_id),strategy:AC,children:w.map((W,P)=>{const E=k.has(W.estimate_id);return o.jsx(o8,{id:W.estimate_id,children:o.jsxs($t.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!S&&e(`/calculator/${W.estimate_id}`),className:de("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!S&&"cursor-pointer hover:bg-[var(--bg-hover)]",E&&"bg-blue-500/5"),children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(W.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",E?"bg-blue-500 border-blue-500":"border-gray-400"),children:E&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:de("flex items-center gap-3",S?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(ym,{className:"w-4 h-4",style:{color:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:W.estimate_name,children:W.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:W.customer_name||"",children:W.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:W.customer_name||"",children:W.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:W.cloud&&Tr[W.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[W.cloud.toLowerCase()].bg,color:Tr[W.cloud.toLowerCase()].text},children:Tr[W.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:W.region||W.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[W.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:W.region,children:W.region}),W.tier&&Ec[W.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Ec[W.tier.toLowerCase()].bg,color:Ec[W.tier.toLowerCase()].text},children:Ec[W.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:de("px-2 py-0.5 rounded text-xs font-medium",W.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:W.line_item_count===0?{color:"var(--text-muted)"}:{},children:W.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(W.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!S&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,W.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ue(ie,W.estimate_id,W.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},W.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),he(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),F&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",k.size," Estimate",k.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(W=>k.has(W.estimate_id)).map(W=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",W.estimate_name]},W.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:xt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),k.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[k.size," estimate",k.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:st,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,k=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach($=>{const j=$.group||"Other";T[j]||(T[j]=[]),T[j].push($)}),Object.keys(T).sort(($,j)=>$==="General Purpose"?-1:j==="General Purpose"?1:$.localeCompare(j)).map($=>({name:$,options:T[$]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},S=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:de("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:de("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:de("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:S,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(sr,{className:de("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),k.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const FC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:FC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function nf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var W;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:k,fetchLineItems:A,clearSingleWorkloadCost:S,markItemCalculating:T,fetchVMCostForInstance:D}=ws(),$=m.useRef(!0);m.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,he=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,F={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Q=f&&f.models&&f.models.llm?f:F,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[pe,L]=m.useState(!1),[ke,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ue={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ue),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),FC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?aE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&Y(E=>({...E,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Ze=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!$.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),st=a.length===0,xt=!st&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){We.error("Enter a workload name");return}L(!0);try{const E={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(E.serverless_enabled=w.serverless_enabled,E.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(E.serverless_enabled=!1,E.serverless_mode=null),I!=null&&I.show_compute_config?(E.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,E.driver_node_type=w.driver_node_type||null,E.worker_node_type=w.worker_node_type||null,E.num_workers=w.num_workers,E.driver_pricing_tier=w.driver_pricing_tier||"on_demand",E.worker_pricing_tier=w.worker_pricing_tier||"spot",E.driver_payment_option=w.driver_payment_option||"NA",E.worker_payment_option=w.worker_payment_option||"NA"):(E.photon_enabled=!1,E.driver_node_type=null,E.worker_node_type=null,E.num_workers=null,E.driver_pricing_tier=null,E.worker_pricing_tier=null,E.driver_payment_option=null,E.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?E.dlt_edition=w.dlt_edition:E.dlt_edition=null,I!=null&&I.show_dbsql_config?(E.dbsql_warehouse_type=w.dbsql_warehouse_type,E.dbsql_warehouse_size=w.dbsql_warehouse_size,E.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(E.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,E.dbsql_driver_payment_option=w.dbsql_driver_payment_option,E.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,E.dbsql_worker_payment_option=w.dbsql_worker_payment_option,E.driver_pricing_tier=w.dbsql_driver_pricing_tier,E.driver_payment_option=w.dbsql_driver_payment_option,E.worker_pricing_tier=w.dbsql_worker_pricing_tier,E.worker_payment_option=w.dbsql_worker_payment_option)):(E.dbsql_warehouse_type=null,E.dbsql_warehouse_size=null,E.dbsql_num_clusters=null,E.dbsql_driver_pricing_tier=null,E.dbsql_driver_payment_option=null,E.dbsql_worker_pricing_tier=null,E.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(E.vector_search_mode=w.vector_search_mode,E.vector_capacity_millions=w.vector_capacity_millions,E.vector_search_storage_gb=w.vector_search_storage_gb||0):(E.vector_search_mode=null,E.vector_capacity_millions=null,E.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(E.model_serving_gpu_type=w.model_serving_gpu_type,E.model_serving_scale_out=w.model_serving_scale_out,E.model_serving_concurrency=w.model_serving_concurrency):(E.model_serving_gpu_type=null,E.model_serving_scale_out=null,E.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?E.databricks_apps_size=w.databricks_apps_size:E.databricks_apps_size=null,w.workload_type==="AI_PARSE"?(E.ai_parse_mode="pages",E.ai_parse_complexity=w.ai_parse_complexity,E.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(E.ai_parse_mode=null,E.ai_parse_complexity=null,E.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?E.shutterstock_images=w.shutterstock_images:E.shutterstock_images=null,I!=null&&I.show_lakebase_config?(E.lakebase_cu=w.lakebase_cu,E.lakebase_storage_gb=w.lakebase_storage_gb||0,E.lakebase_ha_nodes=w.lakebase_ha_nodes,E.lakebase_backup_retention_days=w.lakebase_backup_retention_days,E.lakebase_pitr_gb=w.lakebase_pitr_gb||0,E.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(E.lakebase_cu=null,E.lakebase_storage_gb=null,E.lakebase_ha_nodes=null,E.lakebase_backup_retention_days=null,E.lakebase_pitr_gb=null,E.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(E.fmapi_provider=w.fmapi_provider,E.fmapi_model=w.fmapi_model||null,E.fmapi_endpoint_type=w.fmapi_endpoint_type,E.fmapi_context_length=w.fmapi_context_length,E.fmapi_rate_type=w.fmapi_rate_type,E.fmapi_quantity=w.fmapi_quantity):(E.fmapi_provider=null,E.fmapi_model=null,E.fmapi_endpoint_type=null,E.fmapi_context_length=null,E.fmapi_rate_type=null,E.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?ke?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,E.avg_runtime_minutes=w.avg_runtime_minutes,E.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):I!=null&&I.show_fmapi_config?(E.hours_per_month=w.hours_per_month||null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null),t)S(t.line_item_id),T(t.line_item_id),await k(t.line_item_id,E),We.success("Workload updated");else{E.estimate_id=e;const M=await _(E);M!=null&&M.line_item_id&&T(M.line_item_id),We.success("Workload added")}A(e),r==null||r(),n()}catch(E){console.error("Failed to save workload:",E),We.error("Failed to save")}finally{L(!1)}},mt=I==null?void 0:I.show_compute_config;return st?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(E=>({...E,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>Y(E=>({...E,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:de("w-full text-sm",xt&&"border-red-500",Ze&&"border-yellow-500"),children:[Ze&&(()=>{const P=a.find(E=>E.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),xt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Ze&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Ze&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const E=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!E,onChange:()=>!E&&Y(ie=>{const M=!ie.serverless_enabled,q=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:q}}),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>Y(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:he.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:de("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),mt&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(E=>({...E,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(E=>({...E,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(E=>({...E,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(E=>({...E,worker_node_type:E.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:de("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(E=>({...E,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(E=>({...E,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(E=>({...E,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(E=>({...E,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[mt&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>Y(E=>({...E,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const E=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!E;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!E&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(q=>({...q,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(E=>({...E,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(E=>({...E,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,E=P!=null&&P.driver_instance_type?l.find(B=>B.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(B=>B.id===P.worker_instance_type):null,M=(B,G,ae)=>{var Ve,pt,it,Ye,ct,Xe,It;if(!(B!=null&&B.vm_pricing))return null;const je=G.toLowerCase();if(je==="on_demand")return(Ve=B.vm_pricing.on_demand)==null?void 0:Ve.cost_per_hour;if(je==="spot")return(pt=B.vm_pricing.spot)==null?void 0:pt.cost_per_hour;if(je==="reserved_1y"){const U=((it=B.vm_pricing.reserved_1y)==null?void 0:it.find(Z=>Z.payment_option===ae))||((Ye=B.vm_pricing.reserved_1y)==null?void 0:Ye[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((ct=B.vm_pricing.reserved_3y)==null?void 0:ct.find(Z=>Z.payment_option===ae))||((Xe=B.vm_pricing.reserved_3y)==null?void 0:Xe[0]);return U==null?void 0:U.cost_per_hour}return(It=B.vm_pricing.on_demand)==null?void 0:It.cost_per_hour},q=M(E,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),E&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=E.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),q!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",q.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_driver_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:B=>Y(G=>({...G,dbsql_driver_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_worker_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:B=>Y(G=>({...G,dbsql_worker_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(E=>({...E,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(E=>({...E,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(E=>({...E,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(E=>({...E,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const E={small:4,medium:12,large:40},ie=P.target.value;Y(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:E[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const E=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(ie=>({...ie,model_serving_concurrency:E}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(E=>({...E,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(E=>({...E,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const E=P.target.value,ie=z_(x,g||"aws",w.fmapi_provider,E),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";Y(q=>({...q,fmapi_model:E,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(W=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:W.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(E=>({...E,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(E=>({...E,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],E={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],E={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(E=>({...E,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(E=>({...E,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(E=>({...E,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(E=>({...E,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(E=>({...E,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>Y(E=>({...E,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>Y(E=>({...E,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages/Month (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>Y(E=>({...E,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>Y(E=>({...E,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>De(!1),className:de("px-3 py-1 text-xs rounded-l-md border transition-colors",ke?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>De(!0),className:de("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",ke?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!ke&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(E=>({...E,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(E=>({...E,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&w.workload_type!=="DATABRICKS_APPS"&&w.workload_type!=="AI_PARSE"&&w.workload_type!=="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(E=>({...E,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),ke&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>Y(E=>({...E,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:s3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Tu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:sD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:_D,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:qD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:m3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?h8[e]||{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},fe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:fe(e),At=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:de("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:de("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[fe(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:de("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[At(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:k,getInstanceDbuRate:A,vmPricingMap:S,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:$,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:he,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:F,isPricingBundleLoaded:Q,clearEstimateState:N,setLocalCalculatedCosts:se}=ws(),[pe,L]=m.useState(!1),[ke,De]=m.useState(!1),[w,Y]=m.useState(!1),[ue,_e]=m.useState(!1),[ve,ot]=m.useState(!1),[Ze,I]=m.useState(null),[st,xt]=m.useState(!1),[lt,mt]=m.useState(!1),[W,P]=m.useState(!1),[E,ie]=m.useState(!1),[M,q]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,B]=m.useState(!1),[G,ae]=m.useState({}),[je,Ve]=m.useState(!1),[pt,it]=m.useState(!1),[Ye,ct]=m.useState(!1),[Xe,It]=m.useState(!1),[U,Z]=m.useState([]),[Te,$e]=m.useState(!1),[K,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[nt,Bt]=m.useState(!!e),[ft,vt]=m.useState(!1),[Ct,ht]=m.useState(!1),[ze,Ie]=m.useState("table"),[Me,Re]=m.useState("order"),[Yt,jt]=m.useState("asc"),[Ee,Nt]=m.useState(new Set),[Le,Jn]=m.useState(!1),Zn=m.useRef({}),ns=m.useCallback(R=>{const J=Zn.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Zn.current[R]&&(Zn.current[R].style.backgroundColor="")},1500))},[]),Un=m.useCallback(()=>{B(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!K.cloud||!K.region||r.length===0||!Ye)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const V=cl(F,K.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if(V){const ce=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",He=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${V.driver_instance_type}:${ce}:${He}`);const Pt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${V.worker_instance_type}:${Pt}:${Rt}`)}return}if(C.driver_node_type){const V=C.driver_pricing_tier||"on_demand",ce=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${V}:${ce}`)}if(C.worker_node_type){const V=C.worker_pricing_tier||"spot",ce=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${V}:${ce}`)}}});const J=Array.from(R).map(C=>{const[V,ce,He]=C.split(":");return _(K.cloud,K.region,V,ce,He)});if(J.length>0){It(!0);const C=new Promise(V=>setTimeout(V,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>It(!1))}},[K.cloud,K.region,r,Ye,_,F]),m.useEffect(()=>{if(!K.cloud)return;const R=p(K.cloud);if(R.length>0){const J=Q?CO(F,K.cloud):[];if(J.length>0){const C=R.filter(V=>J.includes(V.region_code));Z(C)}else Z(R);$e(!1)}else u?(Z([]),$e(!1)):$e(!0)},[K.cloud,d,u,p,F,Q]),m.useEffect(()=>{(async()=>{if(e){Ve(!0),it(!0),ct(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Ve(!1),it(!1),ct(!0)}}else N(),ct(!1)})()},[e,i,N]);const rs={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(rs),x("aws"),B(!1))},[n,e,x,y]),m.useEffect(()=>{K.cloud&&K.region&&K.tier&&$(K.cloud.toUpperCase(),K.region,K.tier.toUpperCase())},[K.cloud,K.region,K.tier,$]);const ss=!!(K.region&&K.tier),fr=(R,J)=>{const C=J?{...R,...J}:R,V=K.cloud||"aws",ce=K.region,He=Object.keys(D).length>0?D:Q_[V]||Q_.aws,Pt=C.num_workers||0;if(!ce)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let we="";const en=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?we="JOBS_COMPUTE_(PHOTON)":we="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?we="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?we="ALL_PURPOSE_COMPUTE_(PHOTON)":we="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":(we=`DLT_${en}_COMPUTE`,C.photon_enabled&&(we+="_(PHOTON)"));break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Be==="SERVERLESS"?we="SERVERLESS_SQL_COMPUTE":Be==="PRO"?we="SQL_PRO_COMPUTE":we="SQL_COMPUTE";break;case"VECTOR_SEARCH":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const yt=(C.fmapi_provider||"openai").toLowerCase();we=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[yt]||yt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":we="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":we="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"AI_PARSE":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":we="SERVERLESS_REAL_TIME_INFERENCE";break;default:we="JOBS_COMPUTE"}let An=.2;if(Q&&K.tier){const Be=Lg(F,V,ce,K.tier,we);Be>0?An=Be:An=He[we]||.2}else An=He[we]||.2;let be=0,qe=0,Qe=0,Ts,Er,is,te=.5,me=.5;if(Q&&C.driver_node_type){const Be=Pm(F,V,C.driver_node_type);Be>0&&(te=Be)}if(!te||te===.5){const Be=j.find(yt=>yt.id===C.driver_node_type||yt.name===C.driver_node_type);Be!=null&&Be.dbu_rate&&(te=Be.dbu_rate)}if(Q&&C.worker_node_type){const Be=Pm(F,V,C.worker_node_type);Be>0&&(me=Be)}if(!me||me===.5){const Be=j.find(yt=>yt.id===C.worker_node_type||yt.name===C.worker_node_type);Be!=null&&Be.dbu_rate&&(me=Be.dbu_rate)}const Ht=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Be;if(C.serverless_enabled?C.workload_type==="JOBS"?Be="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Be="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Be="DLT_CORE_COMPUTE":Be=we.replace("_(PHOTON)",""):Be=we.replace("_(PHOTON)",""),Q){const tn=iE(F,V,Be);if(tn!==2)return tn}const yt=H.find(tn=>{var bn,mr;return tn.sku_type===Be||((bn=tn.sku_type)==null?void 0:bn.toLowerCase())===Be.toLowerCase()||((mr=tn.sku_type)==null?void 0:mr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(yt==null?void 0:yt.multiplier)||2})(),mi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Pt)*Ht*mi;else{be=(te+me*Pt)*Ht;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Pt)*Ht*Cr*mi;else{be=(te+me*Pt)*Ht*Cr;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),yt=C.dbsql_warehouse_size||"Small",tn=C.dbsql_num_clusters||1;let bn=Y_[yt]||12;if(Q){const Ce=_O(F,V,Be,yt);Ce&&Ce.dbu_per_hour>0&&(bn=Ce.dbu_per_hour)}if(!bn||bn===(Y_[yt]||12)){const Ce=X.find(cn=>cn.id===yt||cn.name===yt);Ce!=null&&Ce.dbu_per_hour&&(bn=Ce.dbu_per_hour)}if(be=bn*tn,qe=be*Rt,Be!=="SERVERLESS"){const Ce=Q?cl(F,V,Be,yt):null;if(Ce){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,Ce.driver_instance_type,cn,Nr),Ja=k(V,ce,Ce.worker_instance_type,hi,gi);Qe=(Ce.driver_count*xi+Ce.worker_count*Ja)*tn*Rt}else if(C.driver_node_type){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,C.driver_node_type,cn,Nr),Ja=C.worker_node_type?k(V,ce,C.worker_node_type,hi,gi):0,yx=C.num_workers||0;Qe=(xi+Ja*yx)*tn*Rt}}break;case"VECTOR_SEARCH":const mr=C.vector_search_mode||"standard",at=C.vector_capacity_millions||1;let ln=mr==="storage_optimized"?64e6:2e6,qt=mr==="storage_optimized"?18.29:4;if(Q){const Ce=bO(F,V,mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_rate)}else{const Ce=he(mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_per_hour)}const mn=at*1e6,Fe=Math.ceil(mn/ln);Ts=Fe,be=Fe*qt,qe=be*Rt;const et=C.vector_search_storage_gb||0,Wt=Fe*20,wt=Math.max(0,et-Wt),Ut=.023,hn=wt*Ut;et>0&&(Er=hn,is={totalStorageGB:et,freeStorageGB:Wt,billableStorageGB:wt,pricePerGB:Ut});break;case"MODEL_SERVING":const er=C.model_serving_gpu_type||"cpu";let Dn=2;if(Q){const Ce=wO(F,V,er);Ce&&Ce.dbu_rate>0&&(Dn=Ce.dbu_rate)}if(Dn===2){const Ce=re.find(cn=>cn.id===er||cn.name===er);Ce!=null&&Ce.dbu_per_hour&&(Dn=Ce.dbu_per_hour)}const tr=C.model_serving_scale_out||"small",Fl=tr==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[tr]||4;be=Dn*Fl,qe=be*Rt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},JC=(zl[V]||zl.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;be=Ul*JC*Vl,qe=be*Rt;const $l=Math.min(C.lakebase_storage_gb||0,8192),ZC=C.lakebase_pitr_gb||0,e2=C.lakebase_snapshot_gb||0,Hl=.023,t2=$l*15*Hl,n2=ZC*8.7*Hl,r2=e2*3.91*Hl,gx=t2+n2+r2;gx>0&&(Er=gx,is={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const s2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ds=null;if(Q&&C.fmapi_model){const Ce=kO(F,V,C.fmapi_model,Xa);Ce&&(Ds=Ce.dbu_rate)}if(Ds===null&&C.fmapi_model){const Ce=xe(C.fmapi_model,Xa);Ce&&(xx?Ds=Ce.dbu_per_hour||null:Ds=Ce.dbu_per_1M_tokens||null)}Ds===null&&(xx?Ds=Xa==="provisioned_scaling"?200:50:Ds=Xa==="output_token"?3:1),qe=s2*Ds;break;case"FMAPI_PROPRIETARY":const i2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let jr=null;if(Q&&C.fmapi_provider&&C.fmapi_model){const Ce=C.fmapi_endpoint_type||"global",cn=C.fmapi_context_length||"long",Nr=SO(F,V,C.fmapi_provider,C.fmapi_model,Ce,cn,ql);Nr&&(jr=Nr.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ce=oe(C.fmapi_provider,C.fmapi_model,ql);Ce&&(vx?jr=Ce.dbu_per_hour||null:jr=Ce.dbu_per_1M_tokens||null)}if(jr===null)if(vx)jr=150;else switch(ql){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}qe=i2*jr;break;case"DATABRICKS_APPS":{const Ce=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ce]||.5,qe=be*Rt;break}case"AI_PARSE":{const Ce={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},cn=(C.ai_parse_complexity||"medium").toLowerCase();qe=(C.ai_parse_pages_thousands||0)*(Ce[cn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{qe=(C.shutterstock_images||0)*.857;break}default:qe=0}const Tn=isNaN(An)||An===void 0?0:An,Ls=isNaN(qe)||qe===void 0?0:qe,Ln=isNaN(Qe)||Qe===void 0?0:Qe,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ls*Tn,os=zr+Ln+_n;return{monthlyDBUs:Ls,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(os)?0:os,unitsUsed:Ts,dbuPerHour:be,dbuPrice:Tn,storageCost:_n>0?_n:void 0,storageDetails:is}},Vn=m.useMemo(()=>{let R=0,J=0,C=0,V=0;return r.forEach(ce=>{const He=fr(ce);R+=isNaN(He.monthlyDBUs)?0:He.monthlyDBUs,J+=isNaN(He.dbuCost)?0:He.dbuCost,C+=isNaN(He.vmCost)?0:He.vmCost,V+=isNaN(He.totalCost)?0:He.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:V}},[r,K.cloud,K.region,K.tier,s,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=fr(J,G[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,G,K.cloud,K.region,K.tier,se,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);const fi=m.useMemo(()=>{const R=[...r];return Me==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):Me==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):Me==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):Me==="cost"&&R.sort((J,C)=>{const V=fr(J).totalCost,ce=fr(C).totalCost;return V-ce}),Yt==="desc"&&R.reverse(),R},[r,Me,Yt,fr]),Md=R=>{Me===R?jt(J=>J==="asc"?"desc":"asc"):(Re(R),jt(R==="cost"?"desc":"asc"))},UC=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad)),VC=Me==="order",zC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const V=fi.findIndex(en=>en.line_item_id===J.id),ce=fi.findIndex(en=>en.line_item_id===C.id);if(V===-1||ce===-1)return;const He=[...fi],[Pt]=He.splice(V,1);He.splice(ce,0,Pt);const{lineItems:Rt}=ws.getState(),we=Rt.map(en=>{const An=He.findIndex(be=>be.line_item_id===en.line_item_id);return An>=0?{...en,display_order:An}:en});ws.setState({lineItems:we});try{await G4(e,He.map(en=>en.line_item_id))}catch{We.error("Failed to save reorder")}},[fi,e]),ox=async()=>{if(!K.estimate_name.trim()){We.error("Enter an estimate name");return}if(!K.region){We.error("Select a region");return}if(!K.tier){We.error("Select a Databricks tier");return}L(!0);try{const R={...K,cloud:K.cloud.toUpperCase(),tier:K.tier.toUpperCase()};if(e&&n)await h(e,R),B(!1),We.success("All changes saved");else{const J=await f(R);B(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),We.success("Estimate created")}}catch{We.error("Failed to save")}finally{L(!1)}},$C=async()=>{if(e){De(!0);try{const R=await qS(e),J=`${K.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(R,J),We.success("Exported to Excel")}catch{We.error("Export failed")}finally{De(!1)}}},HC=async()=>{if(e){Y(!0),_e(!1);try{await g(e),We.success("Estimate deleted"),t("/",{replace:!0})}catch{We.error("Failed to delete estimate"),Y(!1)}}},qC=async()=>{l(),We.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),We.success("Pricing data refreshed",{id:"refresh-data"})}catch{We.error("Failed to refresh data",{id:"refresh-data"})}},lx=R=>{I(R),ot(!0)},WC=async()=>{if(Ze){mt(!0);try{await v(Ze.line_item_id),We.success("Workload removed")}catch{We.error("Failed to delete")}finally{mt(!1),ot(!1),I(null)}}},cx=()=>{Ee.size!==0&&xt(!0)},GC=async()=>{mt(!0);try{let R=0;for(const J of Ee)await v(J),R++;We.success(`${R} workload(s) deleted`),Nt(new Set)}catch{We.error("Failed to delete some workloads")}finally{mt(!1),xt(!1)}},KC=R=>{Nt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},QC=()=>{Ee.size===r.length?Nt(new Set):Nt(new Set(r.map(R=>R.line_item_id)))},ux=()=>{Jn(!1),Nt(new Set)},dx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&We.success(`Workload "${J.workload_name}" cloned`)}catch{We.error("Failed to clone workload")}},YC=()=>{O?P(!0):t("/")},XC=()=>{P(!1),t("/")},px=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),q(J)},Il=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const V=new Set(M);V.add(R),q(V)}Pe(C)},fx=R=>{const J=R.workload_type||"";return["AI_PARSE","SHUTTERSTOCK_IMAGEAI","DATABRICKS_APPS"].includes(J)?null:R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null},mx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"AI_PARSE":J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K/mo`});break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break}return J},Bl=K.estimate_name.trim()&&K.region&&K.tier,hx=()=>{const R=[];return K.estimate_name.trim()||R.push("Estimate Name"),K.region||R.push("Region"),K.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:YC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:K.estimate_name,onChange:R=>{ut(J=>({...J,estimate_name:R.target.value})),Un()},placeholder:"Untitled Estimate",title:K.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:qC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Qr,{className:de("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:$C,disabled:ke||!e,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:de("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:de("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Bt(!nt),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Tu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${K.cloud.toUpperCase()} • ${K.region||"No region"} • ${K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier"}${K.customer_name?` • ${K.customer_name}`:""}`,children:[K.cloud.toUpperCase()," • ",K.region||"No region"," • ",K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier",K.customer_name&&` • ${K.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:nt?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(fs,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!nt&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&K.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ut(V=>({...V,cloud:R.id,region:"",tier:R.id==="azure"&&V.tier==="enterprise"?"":V.tier})),x(R.id),Un())},className:de("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",K.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":K.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:de("text-sm font-semibold",K.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),K.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.region,onChange:R=>{ut(J=>({...J,region:R.target.value})),y(R.target.value),Un()},className:de("w-full text-sm",!K.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.tier,onChange:R=>{ut(J=>({...J,tier:R.target.value})),Un()},className:de("w-full text-sm",!K.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),K.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${hx().join(", ")}`,className:de("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(p3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:Le?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ee.size," selected"]}),o.jsxs("button",{onClick:cx,disabled:Ee.size===0,className:de("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ee.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>Jn(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Ie("table"),className:de("p-1.5 rounded-md transition-colors",ze==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(b3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("cards"),className:de("p-1.5 rounded-md transition-colors",ze==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Ng,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("expanded"),className:de("p-1.5 rounded-md transition-colors",ze==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(ry,{className:"w-4 h-4"})})]}),ss&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Add"]})]})]}),e?pt&&!Ye?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[ze==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ee.size===r.length&&r.length>0,onChange:QC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>Md("name"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Le?"col-span-3":"col-span-4"),children:["Workload",Me==="name"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("type"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Me==="type"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Me==="cost"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]})]}),o.jsx(PC,{sensors:UC,collisionDetection:gC,onDragEnd:zC,modifiers:[IC],children:o.jsx(DC,{items:fi.map(R=>R.line_item_id),strategy:AC,children:fi.map(R=>{var Ts,Er,is;const J=G[R.line_item_id],C=J?{...R,...J}:R,V=fr(R,J),ce=W_(C.workload_type),He=ce.icon,Pt=M.has(R.line_item_id),Rt=Ee.has(R.line_item_id),we=C.workload_type||"",en=C.serverless_enabled||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",An=((Ts=s.find(te=>te.workload_type===we))==null?void 0:Ts.display_name)||we,be=fx(C),Qe=(()=>{const te={badges:[],details:[]};if(en&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(we))en||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),we==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(we==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(we==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(we==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&we==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else we==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!VC,children:o.jsxs("div",{ref:te=>{Zn.current[R.line_item_id]=te},children:[o.jsxs("div",{className:de("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&Le&&"bg-lava-600/5",Pt&&"bg-[var(--bg-tertiary)]"),onClick:()=>px(R.line_item_id),children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>KC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:de("flex items-center gap-3",Le?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:de("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",ce.bgColor),children:o.jsx(He,{className:de("w-4 h-4",ce.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:An,children:An})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Qe.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Qe.driver||"N/A"}, Workers: ${((Er=Qe.workers)==null?void 0:Er.count)||0}× ${((is=Qe.workers)==null?void 0:is.type)||"N/A"}`,children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Qe.details.join(" · "),children:Qe.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(K_,{costs:V,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&te&&V.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>dx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),lx(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:de("p-1 rounded transition-colors",Pt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Pt?o.jsx(fs,{className:"w-5 h-5 text-lava-600"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Pt&&(Qe.badges.length>0||Qe.driver||Qe.workers||Qe.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Qe.details.join(" · ")})]}),Pt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(we)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.vmCost)})]}),we==="LAKEBASE"&&V.storageCost!==void 0&&V.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(V.storageCost)})]}),we==="VECTOR_SEARCH"&&V.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[V.unitsUsed," unit",V.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(we)&&!en&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,as=C.avg_runtime_minutes||30,Ht=C.days_per_month||30,mi=C.hours_per_month||730,Ft=te?me*(as/60)*Ht:mi,Tn=(V.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const Fe=C.vector_capacity_millions||1,et=C.vector_search_mode||"standard",Wt=et==="storage_optimized"?64:2,wt=Math.ceil(Fe/Wt),Ut=et==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,er=wt*20,Dn=Math.max(0,hn-er),tr=Dn*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M"]})," vectors ÷ ",Wt,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," unit",wt!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[er," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(tr)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(tr)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const Fe=C.fmapi_quantity||1,et=C.fmapi_rate_type||"input_token",Wt=["provisioned_scaling","provisioned_entry"].includes(et),wt=Fe>0?V.monthlyDBUs/Fe:0,Ut=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Wt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Ut,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="LAKEBASE"){const Fe=C.lakebase_cu||1,et=C.lakebase_ha_nodes||1,Wt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ut=(Wt[K.cloud||"aws"]||Wt.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,er=C.lakebase_pitr_gb||0,Dn=C.lakebase_snapshot_gb||0,tr=.023,Ya=hn*15*tr,Fl=er*8.7*tr,Ul=Dn*3.91*tr,Vl=Ya+Fl+Ul,zl=Vl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ya)})]}),er>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[er," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(er*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Fl)})]}),Dn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Dn*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ul)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),zl&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Vl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="MODEL_SERVING"){const Fe=C.model_serving_gpu_type||"cpu",et=C.model_serving_scale_out||"small",wt=et==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[et]||4,Ut=wt>0&&V.dbuPerHour?V.dbuPerHour/wt:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DBSQL"){const Fe=C.dbsql_warehouse_size||"Small",et=C.dbsql_num_clusters||1,Wt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),wt=V.dbuPerHour?V.dbuPerHour/et:12,Ut=V.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt.toFixed(1)," DBU/hr)"]}),et>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${as}min ÷ 60 × ${Ht} days`:void 0,children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),Ut&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[Wt," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:fe(V.dbuCost)}),Ut&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DATABRICKS_APPS"){const Fe=(C.databricks_apps_size||"medium").toLowerCase(),et=Fe==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe.charAt(0).toUpperCase()+Fe.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="AI_PARSE"){const Fe=(C.ai_parse_complexity||"medium").toLowerCase(),Wt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[Fe]||62.5,wt=C.ai_parse_pages_thousands||0,Ut={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Wt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut[Fe]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="SHUTTERSTOCK_IMAGEAI"){const Fe=C.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}const Ls=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,os=V.vmCost>0&&!en,Be=K.cloud||"aws",yt=K.region||"",tn=j.find(Fe=>Fe.id===Ln||Fe.name===Ln),bn=j.find(Fe=>Fe.id===_n||Fe.name===_n),mr=A(Be,Ln)||(tn==null?void 0:tn.dbu_rate)||0,at=A(Be,_n)||(bn==null?void 0:bn.dbu_rate)||0,ln=yt&&Ln?k(Be,yt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,qt=yt&&_n?k(Be,yt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,mn=V.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:mr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:at.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),os&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(ln==null?void 0:ln.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(qt==null?void 0:qt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),os&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})})()})]})]}),Pt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(q_,{onReset:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),ze!=="table"&&fi.map((R,J)=>{var An;const C=G[R.line_item_id],V=C?{...R,...C}:R,ce=fr(R,C),He=M.has(R.line_item_id),Pt=fx(V),Rt=W_(V.workload_type),we=Rt.icon,en=ze==="expanded"||He;return o.jsx("div",{ref:be=>{Zn.current[R.line_item_id]=be},children:o.jsxs($t.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:de("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",ze==="cards"&&!He&&"py-3"),onClick:()=>px(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:de("rounded-lg flex items-center justify-center flex-shrink-0",ze==="cards"&&!He?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(we,{className:de(Rt.color,ze==="cards"&&!He?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:de("font-semibold truncate text-[var(--text-primary)]",ze==="cards"&&!He&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((An=s.find(be=>be.workload_type===R.workload_type))==null?void 0:An.display_name)||R.workload_type})})]}),o.jsx(K_,{costs:ce,size:ze==="cards"&&!He?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",qe=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&qe&&ce.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>dx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),lx(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),He?o.jsx(fs,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),en&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.vmCost)})]}),R.workload_type==="LAKEBASE"&&ce.storageCost!==void 0&&ce.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(ce.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&ce.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[ce.unitsUsed," unit",ce.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),mx(R).map((be,qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},qe)),Pt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Pt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=V.workload_type||"",qe=V.serverless_enabled||be==="DBSQL"&&(V.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Qe=V.runs_per_day&&V.avg_runtime_minutes&&!V.hours_per_month,Ts=V.runs_per_day||0,Er=V.avg_runtime_minutes||30,is=V.days_per_month||30,te=V.hours_per_month||730,me=Qe?Ts*(Er/60)*is:te,Ht=(ce.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const at=V.vector_capacity_millions||1,ln=V.vector_search_mode||"standard",qt=ln==="storage_optimized"?64:2,mn=Math.ceil(at/qt),Fe=ln==="storage_optimized"?18.29:4,et=V.vector_search_storage_gb||0,Wt=mn*20,wt=Math.max(0,et-Wt),Ut=wt*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M vectors"]})," ÷ ",qt,"⌉"]}),o.jsxs("span",{children:["= ",mn," units ×"]}),o.jsxs("span",{children:[Fe," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs × $",Ht]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),et>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Wt," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),et>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Ut)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const at=V.fmapi_quantity||0,ln=ce.monthlyDBUs/(at||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[ln.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="LAKEBASE"){const at=V.lakebase_cu||1,ln=V.lakebase_ha_nodes||1,qt=V.lakebase_storage_gb||0,mn=V.lakebase_pitr_gb||0,Fe=V.lakebase_snapshot_gb||0,et=.023,Wt=qt*15*et,wt=mn*8.7*et,Ut=Fe*3.91*et,hn=Wt+wt+Ut,er=hn>0,Dn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(Dn[K.cloud||"aws"]||Dn.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),qt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(qt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Wt)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(wt)})]}),Fe>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Fe*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),er&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="MODEL_SERVING"){const at=V.model_serving_scale_out||"small",qt=at==="custom"?V.model_serving_concurrency||4:{small:4,medium:12,large:40}[at]||4,mn=qt>0&&ce.dbuPerHour?ce.dbuPerHour/qt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",at,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="DATABRICKS_APPS"){const at=(V.databricks_apps_size||"medium").toLowerCase(),ln=at==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:at.charAt(0).toUpperCase()+at.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",ln," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="AI_PARSE"){const at=(V.ai_parse_complexity||"medium").toLowerCase(),qt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[at]||62.5,mn=V.ai_parse_pages_thousands||0,Fe={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[qt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe[at]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="SHUTTERSTOCK_IMAGEAI"){const at=V.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}const mi=V.num_workers||0,Ft=V.driver_node_type||"",Cr=V.worker_node_type||"",Tn=V.photon_enabled,Ls=ce.vmCost>0&&!qe,Ln=K.cloud||"aws",_n=K.region||"",zr=j.find(at=>at.id===Ft||at.name===Ft),os=j.find(at=>at.id===Cr||at.name===Cr),Be=A(Ln,Ft)||(zr==null?void 0:zr.dbu_rate)||0,yt=A(Ln,Cr)||(os==null?void 0:os.dbu_rate)||0,tn=_n&&Ft?k(Ln,_n,Ft,V.driver_pricing_tier||"on_demand",V.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?k(Ln,_n,Cr,V.worker_pricing_tier||"spot",V.worker_payment_option||"NA"):null,mr=ce.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Qe&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ts," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Tn?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ft,children:Be.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:yt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),Tn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),Ls&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ft,children:["$",(tn==null?void 0:tn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(ce.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),Ls&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(ce.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})})()})]})]})]}),He&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(q_,{onReset:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe}),ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onSave:()=>{ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onFormChange:be=>{ae(qe=>({...qe,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),ss?E?o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(nf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Lu,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(ms,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(_m,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),pt&&!Ye&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>vt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(sr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),ss?pt&&!Ye?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:de("text-3xl font-bold text-lava-600",Xe&&"opacity-60"),children:fe(Vn.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[fe(Vn.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:fe(Vn.totalDBUCost),children:G_(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Xe?"Loading...":fe(Vn.totalVMCost),children:Xe?"...":G_(Vn.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>ns(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:fe(V.totalCost),children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full transition-all",Pt,"group-hover:brightness-110"),style:{width:`${Math.max(He,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(ms,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Ct&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>ht(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>ht(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>{ht(!1),ns(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full",Pt),style:{width:`${Math.max(He,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>vt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>ht(!Ct),className:de("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Ct?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(ry,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(fs,{className:de("w-3 h-3 transition-transform",Ct?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[fe(Vn.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ee.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ee.size," workload",Ee.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ue&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',K.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:HC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Ze&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Ze.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),st&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ee.size," Workload",Ee.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ee.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>xt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:GC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),W&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(ms,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:XC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let k="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?k="JOBS_COMPUTE_(PHOTON)":k="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?k="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?k="ALL_PURPOSE_COMPUTE_(PHOTON)":k="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":(k=`DLT_${A}_COMPUTE`,e.photon_enabled&&(k+="_(PHOTON)"));break;case"DBSQL":const ue=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ue==="SERVERLESS"?k="SERVERLESS_SQL_COMPUTE":ue==="PRO"?k="SQL_PRO_COMPUTE":k="SQL_COMPUTE";break;case"VECTOR_SEARCH":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();k=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":k="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":k="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":k="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":k="DELTA_LIVE_TABLES_SERVERLESS";break;default:k="JOBS_COMPUTE"}let S=null;if(b){const ue=b(k);ue!==null&&ue>0&&(S=ue)}S===null&&(S=x[k]||.2),console.log(`[LiveEstimate] productType=${k}, dbuPrice=${S}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,$=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ue=g(e.driver_node_type);ue!==null&&ue>0&&(re=ue)}if(re===.5){const ue=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ue!=null&&ue.dbu_rate&&(re=ue.dbu_rate)}if(g&&e.worker_node_type){const ue=g(e.worker_node_type);ue!==null&&ue>0&&(le=ue)}if(le===.5){const ue=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ue!=null&&ue.dbu_rate&&(le=ue.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ue=k.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ue="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ue="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ue=`DLT_${A}_COMPUTE`)),v){const ve=v(ue);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var ot;return ve.sku_type===ue||ve.sku_type===k||((ot=ve.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DBSQL":const ue=l.find(Le=>Le.id===e.dbsql_warehouse_size||Le.name===e.dbsql_warehouse_size),_e=(ue==null?void 0:ue.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const Le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Jn=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Zn=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",ns=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Un=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Un){const rs=d(n,r,Un.driver_instance_type,Le,Jn),ss=d(n,r,Un.worker_instance_type,Zn,ns);$=(Un.driver_count*rs+Un.worker_count*ss)*ve*_}else if(e.driver_node_type){const rs=d(n,r,e.driver_node_type,Le,Jn),ss=e.worker_node_type?d(n,r,e.worker_node_type,Zn,ns):0,fr=e.num_workers||0;$=(rs+ss*fr)*ve*_}}break;case"VECTOR_SEARCH":const Ze=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,st=h(Ze),xt=(st==null?void 0:st.input_divisor)||(Ze==="storage_optimized"?64e6:2e6),lt=(st==null?void 0:st.dbu_per_hour)||(Ze==="storage_optimized"?18.29:4),mt=I*1e6,W=Math.ceil(mt/xt);j=W,T=W*lt,D=T*_;const P=e.vector_search_storage_gb||0,E=W*20,ie=Math.max(0,P-E),M=.023,q=ie*M;P>0&&(H=q,X={totalStorageGB:P,freeStorageGB:E,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Le=>Le.id===Se||Le.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,B=e.model_serving_scale_out||"small",ae=B==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[B]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Ve=e.lakebase_ha_nodes||1,pt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ye=(pt[n]||pt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ye*Ve,D=T*_;const ct=Math.min(e.lakebase_storage_gb||0,8192),Xe=15,It=ct*Xe,U=.023,Z=It*U,Te=e.lakebase_pitr_gb||0,K=Te*8.7*U,ut=e.lakebase_snapshot_gb||0,Bt=ut*3.91*U;(ct>0||Te>0||ut>0)&&(H=Z+K+Bt,X={totalStorageGB:ct,billableStorageGB:ct,dsuPerGB:Xe,totalDSU:It,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,vt=e.fmapi_rate_type||"input_token",Ct=["provisioned_scaling","provisioned_entry"].includes(vt),ht=e.fmapi_model?p(e.fmapi_model,vt):null;if(Ct){const Le=(ht==null?void 0:ht.dbu_per_hour)||(vt==="provisioned_scaling"?200:50);D=ft*Le}else{const Le=(ht==null?void 0:ht.dbu_per_1M_tokens)||(vt==="output_token"?3:1);D=ft*Le}break;case"FMAPI_PROPRIETARY":const ze=e.fmapi_quantity||0,Ie=e.fmapi_rate_type||"input_token",Me=Ie==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Yt=e.fmapi_context_length||"long",jt=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Ie,Re,Yt):null;if(Me){const Le=(jt==null?void 0:jt.dbu_per_hour)||150;D=ze*Le}else{let Le=jt==null?void 0:jt.dbu_per_1M_tokens;if(!Le)switch(Ie){case"output_token":Le=321.43;break;case"cache_read":Le=8.57;break;case"cache_write":Le=85.71;break;default:Le=21.43}D=ze*Le}break;case"DATABRICKS_APPS":const Ee=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ee]||.5,D=T*_;break;case"AI_PARSE":{const Le={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Jn=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Le[Jn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{D=(e.shutterstock_images||0)*.857;break}default:D=0}const F=D*S,Q=H!==void 0&&!isNaN(H)?H:0,N=F+$+Q,se=isNaN(F)?0:F,pe=isNaN($)?0:$,L=isNaN(N)?se:N,ke=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(S)?.15:S;return{monthlyDBUs:ke,dbuCost:se,vmCost:pe,totalCost:L,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:Q>0?Q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function gs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?aE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of gs(Z_,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of gs(Z_,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of gs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of gs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of gs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),p=d.length>0?gs(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=gs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=gs(Qm(l),e.tiersPerCloud);for(const p of u){const f=Hu(t,l),h=f.length>0?gs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[k,A]=m.useState({current:0,total:0}),[S,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),$=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:F,isPricingBundleLoaded:Q,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:ke,getVectorSearchRate:De}=ws();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,F),[j,F]),Y=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ue=m.useMemo(()=>{const M=new Set(w.map(q=>q.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,q,Se)=>{const Pe=Q&&F.modelServingRates?Object.entries(F.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,B])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:B.dbu_rate}}):xe;return{cloud:M,region:q,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,B)=>{if(Q&&F.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${B}`,ae=F.fmapiDatabricksRates[G];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,B)},getFMAPIProprietaryRate:(O,B,G,ae,je)=>{if(Q&&F.fmapiProprietaryRates){const Ve=ae||"global",pt=je||"all",it=`${M.toLowerCase()}:${O.toLowerCase()}:${B.toLowerCase()}:${Ve}:${pt}:${G}`,Ye=F.fmapiProprietaryRates[it];if(Ye)return{dbu_per_1M_tokens:Ye.is_hourly?void 0:Ye.dbu_rate,dbu_per_hour:Ye.is_hourly?Ye.dbu_rate:void 0}}return ke(O,B,G)},getVectorSearchRate:O=>{if(Q&&F.vectorSearchRates){const B=`${M.toLowerCase()}:${O}`,G=F.vectorSearchRates[B];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>Q?Pm(F,M,O):null,getPhotonMultiplier:O=>Q?iE(F,M,O):null,getDBUPrice:O=>Q?Lg(F,M,q,Se,O):null,getDBSQLWarehouseConfig:(O,B)=>Q?cl(F,M,O,B):null}},[X,re,le,he,xe,oe,Q,F,se,L,ke,De]),ve=async M=>{var K,ut,nt,Bt,ft,vt,Ct,ht,ze;const{environment:q,workloadType:Se,config:Pe}=M,O=_e(q.cloud,q.region,q.tier),B={...Pe,workload_type:Se},G=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Ie=cl(F,q.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Ie){const Me=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.driver_instance_type,Me,Re));const Yt=Pe.dbsql_worker_pricing_tier||"on_demand",jt=Pe.dbsql_worker_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.worker_instance_type,Yt,jt))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(G.push(pe(q.cloud,q.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&G.push(pe(q.cloud,q.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const ae=performance.now(),je=y8(B,O),Ve=performance.now()-ae,pt=performance.now();let it=null,Ye,ct;const Xe=j8(Se,Pe),It=N8(M);try{const Ie=await fetch(Xe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(It)});if(Ie.ok){const Me=await Ie.json();ct=Me;const Re=Me.data||Me,Yt=((K=Re.dbu_calculation)==null?void 0:K.dbu_per_month)??Re.dbu_per_month??(((ut=Re.dbu_calculation)==null?void 0:ut.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),jt=((nt=Re.dbu_calculation)==null?void 0:nt.dbu_cost_per_month)??((ft=(Bt=Re.total_cost)==null?void 0:Bt.breakdown)==null?void 0:ft.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ee=((vt=Re.vm_costs)==null?void 0:vt.vm_cost_per_month)??((ht=(Ct=Re.total_cost)==null?void 0:Ct.breakdown)==null?void 0:ht.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let Nt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?Nt=Re.total_cost.cost_per_month??jt+Ee:typeof Re.total_cost=="number"?Nt=Re.total_cost:Nt=Re.total_cost_per_month??jt+Ee,it={monthlyDBUs:Yt,dbuCost:jt,vmCost:Ee,totalCost:Nt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Me,parsed:it})}else{const Me=await Ie.text();try{const Re=JSON.parse(Me);Ye=`HTTP ${Ie.status}: ${((ze=Re.detail)==null?void 0:ze.message)||Re.detail||Re.message||Me}`}catch{Ye=`HTTP ${Ie.status}: ${Me}`}}}catch(Ie){Ye=Ie instanceof Error?Ie.message:"Unknown error"}const U=performance.now()-pt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,it,g),$e=Te<=g&&!Ye;return{testCase:M,localResult:je,apiResult:it,apiError:Ye,apiRequestBody:It,apiRawResponse:ct,localTimeMs:Ve,apiTimeMs:U,matches:$e,totalCostDiffPercent:Te,discrepancies:Z}},ot=()=>{D.current=!0,i(!0)},Ze=()=>{D.current=!1,i(!1)},I=()=>{$.current=!0,l(!0),D.current=!1,i(!1)},st=async()=>{for(;D.current&&!$.current;)await new Promise(M=>setTimeout(M,100))},xt=async()=>{r(!0),i(!1),l(!1),D.current=!1,$.current=!1,t([]),A({current:0,total:Y.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:q,tier:Se,workloadType:Pe,serverless:O,photon:B,driverNode:G,workerNode:ae,numWorkers:je,runsPerDay:Ve,avgRuntime:pt,daysPerMonth:it,hoursPerMonth:Ye}=S,ct={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:q,tier:Se},config:{serverless_enabled:O,photon_enabled:B,driver_node_type:G,worker_node_type:ae,num_workers:je,runs_per_day:Ve,avg_runtime_minutes:pt,days_per_month:it,hours_per_month:Ye,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Xe=await ve(ct);t([Xe]),u(null),r(!1)},mt=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,q=e.filter(G=>!G.matches).length,Se=e.filter(G=>G.apiError).length,Pe=e.length>0?e.reduce((G,ae)=>G+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,ae)=>G+ae.apiTimeMs,0)/e.length:0,B={};return e.forEach(G=>{const ae=G.testCase.category;B[ae]||(B[ae]={passed:0,failed:0}),G.matches?B[ae].passed++:B[ae].failed++}),{passed:M,failed:q,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:B}},[e]),W=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],q=e.map(G=>{var ae;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((ae=G.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Se=[M.join(","),...q.map(G=>G.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),B=document.createElement("a");B.href=O,B.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,B.click()},P=M=>{const q=new Set(d);q.has(M)?q.delete(M):q.add(M),p(q)},E=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(cD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(ZL,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:W,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(LD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(e3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Ze,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:xt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:S.cloud,onChange:M=>T({...S,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:S.region,onChange:M=>T({...S,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Km(F,S.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:S.tier,onChange:M=>T({...S,tier:M.target.value}),className:"w-full text-sm",children:Qm(S.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:S.workloadType,onChange:M=>T({...S,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.serverless,onChange:M=>T({...S,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.photon,onChange:M=>T({...S,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:S.driverNode,onChange:M=>T({...S,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:S.workerNode,onChange:M=>T({...S,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:S.numWorkers,onChange:M=>T({...S,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:S.runsPerDay,onChange:M=>T({...S,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:S.avgRuntime,onChange:M=>T({...S,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:S.daysPerMonth,onChange:M=>T({...S,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(jD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Km(F,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:q=>{q.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ue.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Q?"text-green-500":"text-yellow-500"}`,children:[Q?o.jsx(Au,{className:"w-5 h-5"}):o.jsx(ms,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:mt.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:mt.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:mt.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[mt.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[mt.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(mt.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(mt.byCategory).map(([M,{passed:q,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[q," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx($t.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${k.current/k.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[k.current," / ",k.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:Y.map(M=>{const q=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${q&&!q.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>q&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[q&&(Se?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q?E(q.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q!=null&&q.apiResult?E(q.apiResult.totalCost):q!=null&&q.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:q?o.jsxs("span",{className:q.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[q.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):q?q.matches?o.jsx(Au,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(C3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),q&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(q.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:E(q.localResult.totalCost)})]}),q.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",q.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),q.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:q.apiError})}):q.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(q.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:E(q.apiResult.totalCost)})]})]}):null]})]}),q.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:q.discrepancies.map((O,B)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},B))})]})})]}),q.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(q.apiRawResponse,null,2)})})]}),q.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(q.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:q.testCase.environment,config:q.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(jN,{children:o.jsxs(wi,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(wi,{index:!0,element:o.jsx(u8,{})}),o.jsx(wi,{path:"calculator",element:o.jsx(X_,{})}),o.jsx(wi,{path:"calculator/:id",element:o.jsx(X_,{})}),o.jsx(wi,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(wi,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();rf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(DN,{children:[o.jsx(A8,{}),o.jsx(EP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-DTS88gNN.js b/lakemeter/backend/static/assets/index-DTS88gNN.js new file mode 100644 index 00000000..9a3d31ac --- /dev/null +++ b/lakemeter/backend/static/assets/index-DTS88gNN.js @@ -0,0 +1,354 @@ +function a2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var hs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},Ke={};/** + * @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 hl=Symbol.for("react.element"),o2=Symbol.for("react.portal"),l2=Symbol.for("react.fragment"),c2=Symbol.for("react.strict_mode"),u2=Symbol.for("react.profiler"),d2=Symbol.for("react.provider"),p2=Symbol.for("react.context"),f2=Symbol.for("react.forward_ref"),m2=Symbol.for("react.suspense"),h2=Symbol.for("react.memo"),g2=Symbol.for("react.lazy"),_x=Symbol.iterator;function x2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Ia.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;sb(Xm,Ia.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ob=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ob.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=F[se];if(0>>1;ses(De,N))ws(Y,De)?(F[se]=Y,F[w]=N,se=w):(F[se]=De,F[ke]=N,se=ke);else if(ws(Y,N))F[se]=Y,F[w]=N,se=w;else break e}}return Q}function s(F,Q){var N=F.sortIndex-Q.sortIndex;return N!==0?N:F.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(F){for(var Q=n(u);Q!==null;){if(Q.callback===null)r(u);else if(Q.startTime<=F)r(u),Q.sortIndex=Q.expirationTime,t(c,Q);else break;Q=n(u)}}function k(F){if(v=!1,_(F),!g)if(n(c)!==null)g=!0,xe(A);else{var Q=n(u);Q!==null&&oe(k,Q.startTime-F)}}function A(F,Q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Q),p=n(c);p!==null&&(!(p.expirationTime>Q)||F&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var pe=se(p.expirationTime<=Q);Q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(Q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var ke=n(u);ke!==null&&oe(k,ke.startTime-Q),L=!1}return L}finally{p=null,f=N,h=!1}}var S=!1,T=null,D=-1,$=5,j=-1;function H(){return!(e.unstable_now()-j<$)}function X(){if(T!==null){var F=e.unstable_now();j=F;var Q=!0;try{Q=T(!0,F)}finally{Q?re():(S=!1,T=null)}}else S=!1}var re;if(typeof y=="function")re=function(){y(X)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,he=le.port2;le.port1.onmessage=X,re=function(){he.postMessage(null)}}else re=function(){b(X,0)};function xe(F){T=F,S||(S=!0,re())}function oe(F,Q){D=b(function(){F(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_continueExecution=function(){g||h||(g=!0,xe(A))},e.unstable_forceFrameRate=function(F){0>F||125se?(F.sortIndex=N,t(u,F),n(c)===null&&F===n(u)&&(v?(x(D),D=-1):v=!0,oe(k,N-se))):(F.sortIndex=pe,t(c,F),g||h||(g=!0,xe(A))),F},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(F){var Q=f;return function(){var N=f;f=Q;try{return F.apply(this,arguments)}finally{f=N}}}})(mb);fb.exports=mb;var P2=fb.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 R2=m,cr=P2;function ee(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"),sf=Object.prototype.hasOwnProperty,A2=/^[: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]*$/,kx={},Sx={};function T2(e){return sf.call(Sx,e)?!0:sf.call(kx,e)?!1:A2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function L2(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 D2(e,t,n,r){if(t===null||typeof t>"u"||L2(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 Fn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new Fn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new Fn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new Fn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new Fn(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){yn[e]=new Fn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new Fn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new Fn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new Fn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new Fn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new Fn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function M2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Fd(e.type,!1),e;case 11:return e=Fd(e.type.render,!1),e;case 1:return e=Fd(e.type,!0),e;default:return""}}function cf(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 Xi:return"Fragment";case Yi:return"Portal";case af:return"Profiler";case rh:return"StrictMode";case of:return"Suspense";case lf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cf(e.type)||"Memo";case Bs:t=e._payload,e=e._init;try{return cf(e(t))}catch{}}return null}function O2(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 cf(t);case 8:return t===rh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function I2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kl(e){e._valueTracker||(e._valueTracker=I2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 uf(e,t){var n=t.checked;return Ot({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ri(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function df(e,t){bb(e,t);var n=ri(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")?pf(e,t.type,n):t.hasOwnProperty("defaultValue")&&pf(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 pf(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},B2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){B2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Cb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var F2=Ot({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 hf(e,t){if(t){if(F2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gf(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 xf=null;function ah(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vf=null,ha=null,ga=null;function Rx(e){if(e=vl(e)){if(typeof vf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vf(e.stateNode,e.type,t))}}function jb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Nb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(Y2(e)/X2|0)|0}var Yl=64,Xl=4194304;function ho(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function tj(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=wo),Fx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Pj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Aj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Fx);case"textInput":return e=t.data,e===Fx&&Ux?null:e;default:return null}}function Tj(e,t){if(Ji)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=Hs=null,Ji=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Vj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var a=qx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Sf=null,So=null,Ef=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ef||Zi==null||Zi!==Yc(r)||(r=Zi,"selectionStart"in r&&hh(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}),So&&Wo(So,r)||(So=r,r=ru(Sf,"onSelect"),0na||(e.current=Af[na],Af[na]=null,na--)}function bt(e,t){na++,Af[na]=e.current,e.current=t}var si={},Pn=li(si),qn=li(!1),Mi=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Wn(e){return e=e.childContextTypes,e!=null}function iu(){St(qn),St(Pn)}function Zx(e,t,n){if(Pn.current!==si)throw Error(ee(168));bt(Pn,t),bt(qn,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,O2(e)||"Unknown",s));return Ot({},n,r)}function au(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Mi=Pn.current,bt(Pn,e),bt(qn,qn.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,St(qn),St(Pn),bt(Pn,e)):St(qn),bt(qn,n)}var ps=null,Ju=!1,Zd=!1;function u1(e){ps===null?ps=[e]:ps.push(e)}function Zj(e){Ju=!0,u1(e)}function ci(){if(!Zd&&ps!==null){Zd=!0;var e=0,t=dt;try{var n=ps;for(dt=1;e>=a,s-=a,xs=1<<32-Mr(t)+s|n<D?($=T,T=null):$=T.sibling;var j=f(x,T,_[D],k);if(j===null){T===null&&(T=$);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j,T=$}if(D===_.length)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],k),T!==null&&(y=i(T,y,D),S===null?A=T:S.sibling=T,S=T);return Tt&&_i(x,D),A}for(T=r(x,T);D<_.length;D++)$=h(T,x,D,_[D],k),$!==null&&(e&&$.alternate!==null&&T.delete($.key===null?D:$.key),y=i($,y,D),S===null?A=$:S.sibling=$,S=$);return e&&T.forEach(function(H){return t(x,H)}),Tt&&_i(x,D),A}function v(x,y,_,k){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var S=A=null,T=y,D=y=0,$=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?($=T,T=null):$=T.sibling;var H=f(x,T,j.value,k);if(H===null){T===null&&(T=$);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),S===null?A=H:S.sibling=H,S=H,T=$}if(j.done)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,k),j!==null&&(y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return Tt&&_i(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,k),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return e&&T.forEach(function(X){return t(x,X)}),Tt&&_i(x,D),A}function b(x,y,_,k){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var A=_.key,S=y;S!==null;){if(S.key===A){if(A=_.type,A===Xi){if(S.tag===7){n(x,S.sibling),y=s(S,_.props.children),y.return=x,x=y;break e}}else if(S.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Bs&&r0(A)===S.type){n(x,S.sibling),y=s(S,_.props),y.ref=so(x,S,_),y.return=x,x=y;break e}n(x,S);break}else t(x,S);S=S.sibling}_.type===Xi?(y=Ti(_.props.children,x.mode,k,_.key),y.return=x,x=y):(k=Ic(_.type,_.key,_.props,null,x.mode,k),k.ref=so(x,y,_),k.return=x,x=k)}return a(x);case Yi:e:{for(S=_.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=op(_,x.mode,k),y.return=x,x=y}return a(x);case Bs:return S=_._init,b(x,y,S(_._payload),k)}if(mo(_))return g(x,y,_,k);if(Za(_))return v(x,y,_,k);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=ap(_,x.mode,k),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=m1(!0),h1=m1(!1),cu=li(null),uu=null,ia=null,yh=null;function _h(){yh=ia=uu=null}function bh(e){var t=cu.current;St(cu),e._currentValue=t}function Df(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 va(e,t){uu=e,yh=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Hn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(uu===null)throw Error(ee(308));ia=e,uu.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var ji=null;function wh(e){ji===null?ji=[e]:ji.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Es(e,r)}function Es(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 Fs=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 ys(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Es(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Es(e,n)}function Ac(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Ot({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Bi|=a,e.lanes=a,e.memoizedState=p}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{dt=n,tp.transition=r}}function D1(){return Sr().memoizedState}function r5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Or(n,e,r,s),I1(n,t,r)}}function s5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Br(l,a)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Or(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===Mt||t!==null&&t===Mt}function O1(e,t){Eo=fu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:kr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},i5={readContext:kr,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:o0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lc(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lc(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=r5.bind(null,Mt,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:a0,useDebugValue:Ah,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=a0(!1),t=e[0];return e=n5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Mt,s=qr();if(Tt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Ii&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,o0(k1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=fn.identifierPrefix;if(Tt){var n=vs,r=xs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Gr]=t,e[Qo]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(a=gf(n,r),n){case"dialog":kt("cancel",e),kt("close",e),s=r;break;case"iframe":case"object":case"embed":kt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=pu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Tt)return kn(t),null}else 2*Kt()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Kt(),t.sibling=null,n=Lt.current,bt(Lt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?rr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function f5(e,t){switch(xh(t),t.tag){case 1:return Wn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),St(qn),St(Pn),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eh(t),null;case 13:if(St(Lt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return St(Lt),null;case 4:return Ca(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var ac=!1,En=!1,m5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function $f(e,t,n){try{n()}catch(r){zt(e,t,r)}}var v0=!1;function h5(e,t){if(Cf=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jf={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(k){zt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$f(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hf(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Qo],delete t[Rf],delete t[Xj],delete t[Jj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qf(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=su));else if(r!==4&&(e=e.child,e!==null))for(qf(e,t,n),e=e.sibling;e!==null;)qf(e,t,n),e=e.sibling}function Wf(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(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),Ho(e)):Jd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&$f(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){zt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ms(e,t,n),En=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new m5),t.forEach(function(r){var s=S5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Kt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,xu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,a=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cKt()-Mh?Ai(e,0):Dh|=n),Gn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=Es(e,t),e!==null&&(gl(e,t,n),Gn(e,n))}function k5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function S5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qn.current)Hn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Hn=!1,d5(e,t,n);Hn=!!(e.flags&131072)}else Hn=!1,Tt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Wn(r)?(i=!0,au(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Of(t,r,e,n),t=Ff(null,t,r,!0,i,n)):(t.tag=0,Tt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=C5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=f0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(ir=Xs(t.stateNode.containerInfo.firstChild),ar=t,Tt=!0,Dr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Cs(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Lf(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Nf(r,s)?a=null:i!==null&&Nf(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,a,n),t.child;case 6:return e===null&&Lf(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),f0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,bt(cu,r._currentValue),r._currentValue=a,i!==null)if(Br(i.value,a)){if(i.children===s.children&&!qn.current){t=Cs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ys(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Df(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Df(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Dc(e,t),t.tag=1,Wn(r)?(e=!0,au(t)):e=!1,va(t,n),B1(t,r,s),Of(t,r,s,n),Ff(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function E5(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 br(e,t,n,r){return new E5(e,t,n,r)}function Fh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C5(e){if(typeof e=="function")return Fh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Ic(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Fh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ti(n.children,s,i,t);case rh:a=8,s|=8;break;case af:return e=br(12,n,t,s|2),e.elementType=af,e.lanes=i,e;case of:return e=br(13,n,t,s),e.elementType=of,e.lanes=i,e;case lf:return e=br(19,n,t,s),e.elementType=lf,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:a=10;break e;case xb:a=9;break e;case sh:a=11;break e;case ih:a=14;break e;case Bs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ti(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=br(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function ap(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function op(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function j5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,a,l,c){return e=new j5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function N5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=dr;var la=pb.exports,N0=la;rf.createRoot=N0.createRoot,rf.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function D5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||D5()})}function _u(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 Ua(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 M5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Xf(v.location,b,x);u=d()+1;let _=R0(y,u),k=v.createHref(y);try{a.pushState(_,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(k)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Xf(v.location,b,x);u=d();let _=R0(y,u),k=v.createHref(y);a.replaceState(_,"",k),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Zt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,p),c=b,()=>{s.removeEventListener(P0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var A0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(A0||(A0={}));function O5(e,t,n){return n===void 0&&(n="/"),I5(e,t,n)}function I5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let a=fw(e);B5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Zt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Zt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:q5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of mw(i.path))s(i,a,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=mw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function B5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:W5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const F5=/^:[\w-]+$/,U5=3,V5=2,z5=1,$5=10,H5=-2,T0=e=>e==="*";function q5(e,t){let n=e.split("/"),r=n.length;return n.some(T0)&&(r+=H5),t&&(r+=V5),n.filter(s=>!T0(s)).reduce((s,i)=>s+(F5.test(i)?U5:i===""?z5:$5),r)}function W5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function G5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function Q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Y5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 X5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,J5=e=>X5.test(e);function Z5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(J5(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=L0(n.substring(1),"/"):i=L0(n,t)}else i=t;return{pathname:i,search:nN(r),hash:rN(s)}}function L0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lp(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 eN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=eN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Zt(!s.pathname||!s.pathname.includes("?"),lp("?","pathname","search",s)),Zt(!s.pathname||!s.pathname.includes("#"),lp("#","pathname","hash",s)),Zt(!s.search||!s.search.includes("#"),lp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=Z5(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),tN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function sN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const iN=["get",...xw];new Set(iN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=gw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const cN=m.createContext(null);function uN(e){let t=m.useContext(Rs).outlet;return t&&m.createElement(cN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Rs),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Hi),{matches:s}=m.useContext(Rs),{pathname:i}=bl(),a=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function dN(e,t){return pN(e,t)}function pN(e,t,n,r){_l()||Zt(!1);let{navigator:s}=m.useContext(Hi),{matches:i}=m.useContext(Rs),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Zt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=O5(e,{pathname:h}),v=xN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function fN(){let e=bN(),t=sN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const mN=m.createElement(fN,null);class hN extends m.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?m.createElement(Rs.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function gN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Rs.Provider,{value:t},r)}function xN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Zt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||mN,c&&(u<0&&f===0?(kN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(gN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(hN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function vN(e){let t=m.useContext(Wh);return t||Zt(!1),t}function yN(e){let t=m.useContext(aN);return t||Zt(!1),t}function _N(e){let t=m.useContext(Rs);return t||Zt(!1),t}function Sw(e){let t=_N(),n=t.matches[t.matches.length-1];return n.route.id||Zt(!1),n.route.id}function bN(){var e;let t=m.useContext(vw),n=yN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wN(){let{router:e}=vN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const D0={};function kN(e,t,n){D0[e]||(D0[e]=!0)}function SN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function EN(e){return uN(e.context)}function wi(e){Zt(!1)}function CN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Zt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(Hi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function jN(e){let{children:t,location:n}=e;return dN(Jf(t),n)}new Promise(()=>{});function Jf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jf(r.props.children,i));return}r.type!==wi&&Zt(!1),!r.props.index||!r.props.children||Zt(!1);let a={id:r.props.id||i.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&&(a.children=Jf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zf(){return Zf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function PN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RN(e,t){return e.button===0&&(!t||t==="_self")&&!PN(e)}const AN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TN="6";try{window.__reactRouterVersion=TN}catch{}const LN="startTransition",M0=w2[LN];function DN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=L5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&M0?M0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>SN(r),[r]),m.createElement(CN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const MN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ON=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=NN(t,AN),{basename:h}=m.useContext(Hi),g,v=!1;if(typeof u=="string"&&ON.test(u)&&(g=u,MN))try{let _=new URL(window.location.href),k=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=qh(k.pathname,h);k.origin===_.origin&&A!=null?u=A+k.search+k.hash:v=!0}catch{}let b=oN(u,{relative:s}),x=IN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zf({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function IN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=cd(),u=bl(),d=bw(e,{relative:a});return m.useCallback(p=>{if(RN(p,n)){p.preventDefault();let f=r!==void 0?r:_u(u)===_u(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let BN={data:""},FN=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||BN},UN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VN=/\/\*[^]*?\*\/| +/g,B0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ls={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},zN=(e,t,n,r,s)=>{let i=Ew(e),a=ls[i]||(ls[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ls[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=UN.exec(u.replace(VN,""));)d[4]?f.shift():d[3]?(p=d[3].replace(B0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(B0," ").trim();return f[0]})(e);ls[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&ls.g?ls.g:null;return n&&(ls.g=ls[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ls[a],t,r,l),a},$N=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return zN(n.unshift?n.raw?$N(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,FN(t.target),t.g,t.o,t.k)}let Cw,em,tm;ud.bind({g:1});let js=ud.bind({k:1});function HN(e,t,n,r){$s.p=t,Cw=e,em=n,tm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Cw(u,l)}return s}}var qN=e=>typeof e=="function",wu=(e,t)=>qN(e)?e(t):e,WN=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),GN=20,Gh="default",Nw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Nw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:GN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Bc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Aw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),KN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},QN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},YN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||QN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},XN=(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)||WN()}),wl=e=>(t,n)=>{let r=XN(t,e,n);return dd(r.toasterId||KN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Aw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Aw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var JN=1e3,ZN=(e,t="default")=>{let{toasts:n,pausedAt:r}=YN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=JN)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,k)=>k_.visible).slice(...h?[y+1]:[0,y]).reduce((_,k)=>_+(k.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},eP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,tP=js` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,nP=js` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,rP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${eP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${tP} 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: ${nP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,sP=js` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,iP=ui("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: ${sP} 1s linear infinite; +`,aP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,oP=js` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,lP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${aP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${oP} 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; + } +`,cP=ui("div")` + position: absolute; +`,uP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,dP=js` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,pP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${dP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,fP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(pP,null,t):t:n==="blank"?null:m.createElement(uP,null,m.createElement(iP,{...r}),n!=="loading"&&m.createElement(cP,null,n==="error"?m.createElement(rP,{...r}):m.createElement(lP,{...r})))},mP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,hP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,gP="0%{opacity:0;} 100%{opacity:1;}",xP="0%{opacity:1;} 100%{opacity:0;}",vP=ui("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; +`,yP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,_P=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[gP,xP]:[mP(n),hP(n)];return{animation:t?`${js(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${js(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},bP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?_P(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(fP,{toast:e}),a=m.createElement(yP,{...e.ariaProps},wu(e.message,e));return m.createElement(vP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});HN(m.createElement);var wP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},kP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},SP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,EP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=ZN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=kP(p,f);return m.createElement(wP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?SP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(bP,{toast:d,position:p}))}))},We=an;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const pd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class CP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function jP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(CP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const NP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Qh(PP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(jP,{isPresent:n,children:e})),o.jsx(pd.Provider,{value:d,children:e})};function PP(){return new Map}function Tw(e=!0){const t=m.useContext(pd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const uc=e=>e.key||"";function F0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Lw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Tw(a),u=m.useMemo(()=>F0(e),[e]),d=a&&!l?[]:u.map(uc),p=m.useRef(!0),f=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Lw(()=>{p.current=!1,f.current=u;for(let k=0;k{const A=uc(k),S=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach($=>{$||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(NP,{isPresent:S,initial:!p.current||n?void 0:!1,custom:S?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:S?void 0:T,children:k},A)})})},or=e=>e;let Dw=or;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},_s=e=>e*1e3,bs=e=>e/1e3,RP={useManualTiming:!1};function AP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],TP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=dc.reduce((x,y)=>(x[y]=AP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,TP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=a[y];return x[y]=(k,A=!1,S=!1)=>(n||g(),_.schedule(k,A,S)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function LP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const DP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||DP.has(e)}let Iw=e=>!ku(e);function MP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{MP(require("@emotion/is-prop-valid").default)}catch{}function OP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function IP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const fd=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>sl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function BP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function FP(e){const{initial:t,animate:n}=BP(e,m.useContext(fd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const UP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),zP="framerAppearId",Fw="data-"+tg(zP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function $P(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(fd),c=m.useContext(Ow),u=m.useContext(pd),d=m.useContext(Yh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(Uw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&HP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Fw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Lw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),ng.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function HP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function qP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&LP(e);function l(u,d){let p;const f={...m.useContext(Yh),...u,layoutId:WP(u)},{isStatic:h}=f,g=FP(u),v=r(u,h);if(!h&&Xh){GP();const b=KP(f);p=b.MeasureLayout,g.visualElement=$P(s,v,f,t,b.ProjectionNode)}return o.jsxs(fd.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,VP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[UP]=s,c}function WP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function GP(e,t){m.useContext(Ow).strict}function KP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const QP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(QP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),YP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XP=e=>rm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Fc(e){const t=jn(e)?e.get():e;return YP(t)?t.toValue():t}function JP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:ZP(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const zw=e=>(t,n)=>{const r=m.useContext(fd),s=m.useContext(pd),i=()=>JP(e,t,r,s);return n?i():Qh(i)};function ZP(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Fc(i[f]);let{initial:a,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!md(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),eR=$w("var(--"),ig=e=>eR(e)?tR.test(e.split("/*")[0].trim()):!1,tR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Ns=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>Ns(0,1,e)},pc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Jr=kl("%"),Ae=kl("px"),nR=kl("vh"),rR=kl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},sR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},iR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:pc,scaleX:pc,scaleY:pc,scaleZ:pc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:$0,originY:$0,originZ:Ae},H0={...za,transform:Math.round},ag={...sR,...iR,zIndex:H0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:H0},aR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},oR=Va.length;function lR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function fR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return qi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Yw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function mR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],hR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(qi.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{mR(n,r),Et.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},gR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!jn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function xR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return og(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,xR(e,t)),r}function yR(e,t){const n={},r=vR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function _R(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function bR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(rg(n)?_R:yR)(r,i,a,n),u=OP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function wR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...rg(r)?hR:gR,preloadedFeatures:e,useRender:bR(s),createVisualElement:t,Component:r};return qP(a)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class SR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(kR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class ER extends SR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function pg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function fg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",CR={linearEasing:void 0};function jR(e,t){const n=Jh(e);return()=>{var r;return(r=CR[t])!==null&&r!==void 0?r:n()}}const Eu=jR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Eu()?tk(e,t):mg(e)?xo(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const Rr={x:!1,y:!1};function sk(){return Rr.x||Rr.y}function NR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=NR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function PR(e,t,n={}){const[r,s,i]=ik(e,n),a=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,RR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AR(e){return RR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function up(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const TR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(vo.has(n))return;up(n,"down");const s=Q0(()=>{up(n,"up")}),i=()=>up(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function LR(e,t,n={}){const[r,s,i]=ik(e,n),a=l=>{const c=l.currentTarget;if(!Y0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!Y0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!AR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>TR(u,s),s)}),i}function DR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Va]);let Uc;function MR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(xn.isProcessing||RP.useManualTiming?xn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(MR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class IR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=OR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),Et.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new IR(e,t)}function BR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function FR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=XP(i[a]);BR(e,a,l)}}function UR(e){return!!(jn(e)&&e.add)}function am(e,t){const n=e.getValue("willChange");if(UR(n))return n.add(t)}function ck(e){return e.props[Fw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,VR=1e-7,zR=12;function $R(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=uk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>VR&&++l$R(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),fk=Sl(.33,1.53,.69,.99),yg=pk(fk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=pk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function HR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const Po=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qR(e){return e==null}const WR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&WR.test(n)&&n.startsWith(e)||t&&!qR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},GR=e=>Ns(0,255,e),dp={...za,transform:e=>Math.round(GR(e))},Pi={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dp.transform(e)+", "+dp.transform(t)+", "+dp.transform(n)+", "+Po(il.transform(r))+")"};function KR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const om={test:wg("#"),parse:KR,transform:Pi.transform},ua={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(Po(t))+", "+Jr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>Pi.test(e)||om.test(e)||ua.test(e),parse:e=>Pi.test(e)?Pi.parse(e):ua.test(e)?ua.parse(e):om.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Pi.transform(e):ua.transform(e)},QR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(QR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",XR="var",JR="var(",J0="${}",ZR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(ZR,c=>(Sn.test(c)?(r.color.push(i),s.push(bk),n.push(Sn.parse(c))):c.startsWith(JR)?(r.var.push(i),s.push(XR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return ol(e).values}function kk(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function tA(e){const t=wk(e);return kk(e)(t.map(eA))}const ai={test:YR,parse:wk,createTransformer:kk,getAnimatableNone:tA},nA=new Set(["brightness","contrast","saturate","opacity"]);function rA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=nA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const sA=/\b([a-z-]*)\(.*?\)/gu,lm={...ai,getAnimatableNone:e=>{const t=e.match(sA);return t?t.map(rA).join(" "):e}},iA={...ag,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:lm,WebkitFilter:lm},kg=e=>iA[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aA=new Set(["auto","none","0"]);function oA(e,t,n){let r=0,s;for(;re===za||e===Ae,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},lA=new Set(["x","y","z"]),cA=Va.filter(e=>!lA.has(e));function uA(e){const t=[];return cA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Li=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Li).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=uA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Li.forEach(e=>e.complete()),Li.clear()}function Ck(){Li.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function dA(){Ck(),Ek()}class Sg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Li.add(this),cm||(cm=!0,Et.read(Ck),Et.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),pA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fA(e){const t=pA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=fA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return jk(a)?parseFloat(a):a}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),mA={test:e=>e==="auto",parse:e=>e},Rk=[za,Ae,Jr,Is,rR,nR,mA],nv=e=>Rk.find(Pk(e));class Ak extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function hA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(xA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const vA=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>vA?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!gA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Dt=(e,t,n)=>e+(t-e)*n;function pp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function yA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pp(c,l,e+1/3),i=pp(c,l,e),a=pp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function Cu(e,t){return n=>n>0?t:e}const fp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},_A=[om,Pi,ua],bA=e=>_A.find(t=>t.test(e));function sv(e){const t=bA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=yA(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Cu(e,t);const s={...n};return i=>(s.red=fp(n.red,r.red,i),s.green=fp(n.green,r.green,i),s.blue=fp(n.blue,r.blue,i),s.alpha=Dt(n.alpha,r.alpha,i),Pi.transform(s))},wA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(wA),dm=new Set(["none","hidden"]);function kA(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SA(e,t){return n=>Dt(e,t,n)}function Eg(e){return typeof e=="number"?SA:typeof e=="string"?ig(e)?Cu:Sn.test(e)?iv:jA:Array.isArray(e)?Lk:typeof e=="object"?Sn.test(e)?iv:EA:Cu}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Eg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function CA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?kA(e,t):El(Lk(CA(r,s),s.values),n):Cu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Dt(e,t,n):Eg(e)(e,t)}const NA=5;function Mk(e,t,n){const r=Math.max(t-NA,0);return lk(n-e(r),t-r)}const Vt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mp=.001;function PA({duration:e=Vt.duration,bounce:t=Vt.bounce,velocity:n=Vt.velocity,mass:r=Vt.mass}){let s,i,a=1-t;a=Ns(Vt.minDamping,Vt.maxDamping,a),e=Ns(Vt.minDuration,Vt.maxDuration,bs(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=pm(u,a),g=Math.exp(-p);return mp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=pm(Math.pow(u,2),a);return(-s(u)+mp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-mp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=AA(s,i,l);if(e=_s(e),isNaN(c))return{stiffness:Vt.stiffness,damping:Vt.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const RA=12;function AA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function DA(e){let t={velocity:Vt.velocity,stiffness:Vt.stiffness,damping:Vt.damping,mass:Vt.mass,isResolvedFromDuration:!1,...e};if(!av(e,LA)&&av(e,TA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Ns(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Vt.mass,stiffness:s,damping:i}}else{const n=PA(e);t={...t,...n,mass:Vt.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=Vt.visualDuration,t=Vt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=DA({...n,velocity:-bs(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=bs(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Vt.restSpeed.granular:Vt.restSpeed.default),s||(s=y?Vt.restDelta.granular:Vt.restDelta.default);let _;if(v<1){const A=pm(x,v);_=S=>{const T=Math.exp(-v*x*S);return a-T*((g+v*x*b)/A*Math.sin(A*S)+b*Math.cos(A*S))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=S=>{const T=Math.exp(-v*x*S),D=Math.min(A*S,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const k={calculatedDuration:h&&p||null,next:A=>{const S=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?_s(g):Mk(_,A,S));const D=Math.abs(T)<=r,$=Math.abs(a-S)<=s;l.done=D&&$}return l.value=l.done?a:S,l},toString:()=>{const A=Math.min(ek(k),sm),S=tk(T=>k.next(A*T).value,A,30);return A+"ms "+S}};return k}function ov({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),k=D=>{const $=y(D),j=_(D);f.done=Math.abs($)<=u,f.value=f.done?x:j};let A,S;const T=D=>{h(f.value)&&(A=D,S=Ok({keyframes:[f.value,g(f.value)],velocity:Mk(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let $=!1;return!S&&A===void 0&&($=!0,k(D),T(D)),A!==void 0&&D>=A?S.next(D-A):(!$&&k(D),f)}}}const MA=Sl(.42,0,1,1),OA=Sl(0,0,.58,1),Ik=Sl(.42,0,.58,1),IA=e=>Array.isArray(e)&&typeof e[0]!="number",BA={linear:or,easeIn:MA,easeInOut:Ik,easeOut:OA,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:fk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return BA[e];return e};function FA(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=FA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(Ns(e[0],e[i-1],d)):u}function VA(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Dt(n,1,s))}}function zA(e){const t=[0];return VA(t,e.length-1),t}function $A(e,t){return e.map(n=>n*t)}function HA(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=IA(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},a=$A(n&&n.length===t.length?n:zA(t),e),l=UA(a,t,{ease:Array.isArray(s)?s:HA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const qA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Et.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:Zr.now()}},WA={decay:ov,inertia:ov,tween:ju,keyframes:ju,spring:Ok},GA=e=>e/100;class Cg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=fg(n)?n:WA[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=El(GA,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,k=i;if(h){const D=Math.min(this.currentTime,d)/p;let $=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&$--,$=Math.min($,h+1),!!($%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(k=a)),_=Ns(0,1,j)*p}const A=y?{done:!1,value:c[0]}:k.next(_);l&&(A.value=l(A.value));let{done:S}=A;!y&&u!==null&&(S=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return T&&s!==void 0&&(A.value=xd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?bs(t.calculatedDuration):0}get time(){return bs(this.currentTime)}set time(t){t=_s(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=bs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=qA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const KA=new Set(["opacity","clipPath","filter","transform"]);function QA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const YA=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,XA=2e4;function JA(e){return fg(e.type)||e.type==="spring"||!nk(e.ease)}function ZA(e,t){const n=new Cg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Eu()&&eT(i)&&(i=Bk[i]),JA(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=ZA(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=QA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(xd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return bs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return bs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_s(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return or;const{animation:r}=n;G0(r,t)}return or}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new Cg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=_s(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return YA()&&r&&KA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const tT={type:"spring",stiffness:500,damping:25,restSpeed:10},nT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),rT={type:"keyframes",duration:.8},sT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iT=(e,{keyframes:t})=>t.length>2?rT:qi.has(e)?e.startsWith("scale")?nT(t[1]):tT:sT;function aT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>a=>{const l=pg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-_s(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};aT(l)||(d={...d,...iT(e,d)}),d.duration&&(d.duration=_s(d.duration)),d.repeatDelay&&(d.repeatDelay=_s(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=xd(d.keyframes,l);if(f!==void 0)return Et.update(()=>{d.onUpdate(f),d.onComplete()}),new ER([])}return!i&&cv.supports(d)?new cv(d):new Cg(d)};function oT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&oT(d,p))continue;const g={delay:n,...pg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,p,Et);y!==null&&(g.startTime=y,v=!0)}}am(e,p),f.start(jg(p,f,h,e.shouldReduceMotion&&ok.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{Et.update(()=>{l&&FR(e,l)})}),u}function fm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return lT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function lT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(cT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(fm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function cT(e,t){return e.sortNodePosition(t)}function uT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>fm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=fm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const dT=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>uT(e,n,r)))}function hT(e){let t=mT(e),n=uv(),r=!0;const s=c=>(u,d)=>{var p;const f=gd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=Uk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&k,$=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&($=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const F=e.getValue(oe);F&&(F.liveStyle=!1)};for(const oe in re){const F=H[oe],Q=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;rm(F)&&rm(Q)?N=!Zw(F,Q):N=F!==Q,N?F!=null?le(oe):f.add(oe):F!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(S&&T)||$)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function gT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function vi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:vi(!0),whileInView:vi(),whileHover:vi(),whileTap:vi(),whileDrag:vi(),whileFocus:vi(),exit:vi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xT extends di{constructor(t){super(t),t.animationState||(t.animationState=hT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let vT=0;class yT extends di{constructor(){super(...arguments),this.id=vT++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const _T={animation:{Feature:xT},exit:{Feature:yT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const bT=e=>t=>hg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,bT(n),r)}const dv=(e,t)=>Math.abs(e-t);function wT(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=gp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=wT(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=hp(f,this.transformPagePoint),Et.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gp(p.type==="pointercancel"?this.lastMoveEventInfo:hp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=hp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,gp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function hp(e,t){return t?{point:t(e.point)}:e}function pv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gp({point:e},t){return{point:e,delta:pv(e,zk(t)),offset:pv(e,kT(t)),velocity:ST(t,.1)}}function kT(e){return e[0]}function zk(e){return e[e.length-1]}function ST(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const i=bs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const $k=1e-4,ET=1-$k,CT=1+$k,Hk=.01,jT=0-Hk,NT=0+Hk;function ur(e){return e.max-e.min}function PT(e,t,n){return Math.abs(e-t)<=n}function fv(e,t,n,r=.5){e.origin=r,e.originPoint=Dt(t.min,t.max,e.origin),e.scale=ur(n)/ur(t),e.translate=Dt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=ET&&e.scale<=CT||isNaN(e.scale))&&(e.scale=1),(e.translate>=jT&&e.translate<=NT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){fv(e.x,t.x,n.x,r?r.originX:void 0),fv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ur(t)}function RT(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ur(t)}function To(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function AT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Dt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TT(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),Ns(0,1,n)}function MT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function OT(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),Gt=()=>({x:bv(),y:bv()});function gr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function IT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function BT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function xp(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!xp(e)||!xp(t)||!xp(n)}function ki(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Ev=1.0000000000001;function FT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,s=.5){const i=Dt(e.min,e.max,s);gm(e,t,n,i,r)}function fa(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(BT(e.getBoundingClientRect(),t))}function UT(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,VT=new WeakMap;class zT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Gt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ur(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&Et.postRender(()=>g(d,p)),am(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=$T(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&Et.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!fc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=AT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=TT(s.layoutBox,n):this.constraints=!1,this.elastic=OT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=MT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=UT(r,s.root,this.visualElement.getTransformPagePoint());let a=LT(s.layout.layoutBox,i);if(n){const l=n(IT(a));this.hasMutatedConstraints=!!l,l&&(a=qk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!fc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return am(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!fc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Dt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=DT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!fc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Dt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;VT.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),Et.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function fc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $T(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HT extends di{constructor(t){super(t),this.removeGroupControls=or,this.removeListeners=or,this.controls=new zT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||or}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&Et.postRender(()=>e(t,n))};class qT extends di{constructor(){super(...arguments),this.removePointerDownListener=or}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&Et.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},WT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Dt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class GT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;fR(KT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||Et.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Tw(),r=m.useContext(Kh);return o.jsx(GT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const KT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:WT};function QT(e,t,n){const r=jn(e)?e:al(e);return r.start(jg("",r,t,n)),r.animation}function YT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XT=(e,t)=>e.depth-t.depth;class JT{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XT),this.isDirty=!1,this.children.forEach(t)}}function ZT(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return Et.read(r,!0),()=>ii(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],eL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Ae.test(e);function tL(e,t,n,r,s,i){s?(e.opacity=Dt(0,n.opacity!==void 0?n.opacity:1,nL(r)),e.opacityExit=Dt(t.opacity!==void 0?t.opacity:1,0,rL(r))):i&&(e.opacity=Dt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Tv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Tv(e.x,t.x),Tv(e.y,t.y)}function Lv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function sL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Jr.test(t)&&(t=parseFloat(t),t=Dt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Dt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,a){sL(e,t[n],t[r],t[s],t.scale,i,a)}const iL=["x","scaleX","originX"],aL=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,iL,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,aL,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Bv(e,t){return e.min===t.min&&e.max===t.max}function oL(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Fv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Uv(e){return ur(e.x)/ur(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lL{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function cL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,vp=["","X","Y","Z"],uL={visibility:"hidden"},zv=1e3;let dL=0;function yp(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Et,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=dL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(mL),this.nodes.forEach(yL),this.nodes.forEach(_L),this.nodes.forEach(hL),yo&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=ZT(f,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||EL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const k={...pg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=k/1e3;qv(p.x,a.x,A),qv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&oL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Gt()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,tL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Et.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=QT(0,zv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Gt();const p=ur(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=ur(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new lL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&yp("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function pL(e){e.updateLayout()}function fL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(f);f.min=r[p].min,f.max=f.min+h}):rS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=Gt();To(g,n.layoutBox,f.layoutBox);const v=Gt();To(v,r,h.layoutBox),eS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function mL(e){yo&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function gL(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function xL(e){e.isLayoutDirty=!1}function vL(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yL(e){e.resolveTargetDelta()}function _L(e){e.calcProjection()}function bL(e){e.resetSkewAndRotation()}function wL(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Dt(t.translate,0,n),e.scale=Dt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Dt(t.min,n.min,r),e.max=Dt(t.max,n.max,r)}function kL(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function SL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const EL={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:or;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function CL(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!PT(Uv(t),Uv(n),.2)}function jL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const NL=nS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_p={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!_p.current){const e=new NL({});e.mount(window),e.setOptions({layoutScroll:!0}),_p.current=e}return _p.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),PL={pan:{Feature:qT},drag:{Feature:HT,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class RL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class AL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=LR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,bp=new WeakMap,LL=e=>{const t=xm.get(e.target);t&&t(e)},DL=e=>{e.forEach(LL)};function ML({root:e,...t}){const n=e||document;bp.has(n)||bp.set(n,{});const r=bp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(DL,{root:e,...t})),r[s]}function OL(e,t,n){const r=ML(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const IL={some:0,all:1};class BL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:IL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return OL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(FL(t,n))&&this.startObserver()}unmount(){}}function FL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const UL={inView:{Feature:BL},tap:{Feature:TL},focus:{Feature:AL},hover:{Feature:RL}},VL={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function zL(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const $L=[...Rk,Sn,ai],HL=e=>$L.find(Pk(e)),Jv=new WeakMap;function qL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class WL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||zL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Et.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Gt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!HL(s)&&ai.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends WL{constructor(){super(...arguments),this.KeyframeResolver=Ak}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function GL(e){return window.getComputedStyle(e)}class KL extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}else{const r=GL(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){og(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class QL extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Gt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const YL=(e,t)=>rg(e)?new QL(t):new KL(t,{allowProjection:e!==m.Fragment}),XL=wR({..._T,...UL,...PL,...VL},YL),$t=IP(XL);function JL({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const ZL=m.forwardRef(JL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const sD=m.forwardRef(rD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const wp=m.forwardRef(aD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const kp=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const pD=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(fD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Au=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sr=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const fs=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(ED);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const jD=m.forwardRef(CD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Tu=m.forwardRef(RD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(AD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(DD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const BD=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(FD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ms=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef(WD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Sp=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const o3=m.forwardRef(a3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Lu=m.forwardRef(l3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(g3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(w3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const S3=m.forwardRef(k3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(j3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const A3={},iy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(A3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},T3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function L3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var D3=typeof Object.is=="function"?Object.is:L3,M3=La.useState,O3=La.useEffect,I3=La.useLayoutEffect,B3=La.useDebugValue;function F3(e,t){var n=t(),r=M3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return I3(function(){s.value=n,s.getSnapshot=t,Ep(s)&&i({inst:s})},[e,n,t]),O3(function(){return Ep(s)&&i({inst:s}),e(function(){Ep(s)&&i({inst:s})})},[e]),B3(n),n}function Ep(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!D3(e,n)}catch{return!0}}function U3(e,t){return t()}var V3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?U3:F3;xS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:V3;gS.exports=xS;var z3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,$3=z3;function H3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var q3=typeof Object.is=="function"?Object.is:H3,W3=$3.useSyncExternalStore,G3=vd.useRef,K3=vd.useEffect,Q3=vd.useMemo,Y3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=G3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,q3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=W3(e,i[0],i[1]);return K3(function(){a.hasValue=!0,a.value=l},[l]),Y3(l),l};mS.exports=hS;var X3=mS.exports;const J3=qu(X3),vS={},{useDebugValue:Z3}=pn,{useSyncExternalStoreWithSelector:eM}=J3;let ay=!1;const tM=e=>e;function nM(e,t=tM,n){(vS?"production":void 0)!=="production"&&n&&!ay&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ay=!0);const r=eM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Z3(r),r}const oy=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?T3(e):e,n=(r,s)=>nM(t,r,s);return Object.assign(n,t),n},rM=e=>e?oy(e):oy;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:sM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=sM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=bd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Kn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ur("ArrayBuffer");function iM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const aM=bd("string"),Kn=bd("function"),wS=bd("number"),Nl=e=>e!==null&&typeof e=="object",oM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},lM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},cM=Ur("Date"),uM=Ur("File"),dM=Ur("Blob"),pM=Ur("FileList"),fM=e=>Nl(e)&&Kn(e.pipe),mM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Kn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Kn(e.toString)&&e.toString()==="[object FormData]"))},hM=Ur("URLSearchParams"),[gM,xM,vM,yM]=["ReadableStream","Request","Response","Headers"].map(Ur),_M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Da(e)&&e!==Ri;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const a=e&&kS(n,i)||i;Hc(n[a])&&Hc(s)?n[a]=wm(n[a],s):Hc(s)?n[a]=wm({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Kn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),wM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},SM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},EM=(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},CM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),NM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},PM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},RM=Ur("HTMLFormElement"),AM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),TM=Ur("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},LM=e=>{ES(e,(t,n)=>{if(Kn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Kn(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+"'")})}})},DM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},MM=()=>{},OM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function IM(e){return!!(e&&Kn(e.append)&&e[_S]==="FormData"&&e[yd])}const BM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},FM=Ur("AsyncFunction"),UM=e=>e&&(Nl(e)||Kn(e))&&Kn(e.then)&&Kn(e.catch),CS=((e,t)=>e?setImmediate:t?((n,r)=>(Ri.addEventListener("message",({source:s,data:i})=>{s===Ri&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Kn(Ri.postMessage)),VM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ri):typeof process<"u"&&process.nextTick||CS,zM=e=>e!=null&&Kn(e[yd]),z={isArray:$a,isArrayBuffer:bS,isBuffer:jl,isFormData:mM,isArrayBufferView:iM,isString:aM,isNumber:wS,isBoolean:oM,isObject:Nl,isPlainObject:Hc,isEmptyObject:lM,isReadableStream:gM,isRequest:xM,isResponse:vM,isHeaders:yM,isUndefined:Da,isDate:cM,isFile:uM,isBlob:dM,isRegExp:TM,isFunction:Kn,isStream:fM,isURLSearchParams:hM,isTypedArray:jM,isFileList:pM,forEach:Pl,merge:wm,extend:bM,trim:_M,stripBOM:wM,inherits:kM,toFlatObject:SM,kindOf:_d,kindOfTest:Ur,endsWith:EM,toArray:CM,forEachEntry:NM,matchAll:PM,isHTMLForm:RM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:LM,toObjectSet:DM,toCamelCase:AM,noop:MM,toFiniteNumber:OM,findKey:kS,global:Ri,isContextDefined:SS,isSpecCompliantForm:IM,toJSONObject:BM,isAsyncFn:FM,isThenable:UM,setImmediate:CS,asap:VM,isIterable:zM};function Oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}z.inherits(Oe,Error,{toJSON:function(){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:z.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Oe.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Oe,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Oe.from=(e,t,n,r,s,i)=>{const a=Object.create(jS);z.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Oe.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const $M=null;function km(e){return z.isPlainObject(e)||z.isArray(e)}function PS(e){return z.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function HM(e){return z.isArray(e)&&!e.some(km)}const qM=z.toFlatObject(z,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!z.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!z.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&z.isSpecCompliantForm(t);if(!z.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(z.isDate(g))return g.toISOString();if(z.isBoolean(g))return g.toString();if(!c&&z.isBlob(g))throw new Oe("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(g)||z.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(z.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(z.isArray(g)&&HM(g)||(z.isFileList(g)||z.endsWith(v,"[]"))&&(x=z.toArray(g)))return v=PS(v),x.forEach(function(_,k){!(z.isUndefined(_)||_===null)&&t.append(a===!0?cy([v],k,i):a===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(qM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!z.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),z.forEach(g,function(x,y){(!(z.isUndefined(x)||x===null)&&s.call(t,x,z.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!z.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function WM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function AS(e,t,n){if(!t)return e;const r=n&&n.encode||WM;z.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=z.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){z.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},GM=typeof URLSearchParams<"u"?URLSearchParams:Rg,KM=typeof FormData<"u"?FormData:null,QM=typeof Blob<"u"?Blob:null,YM={isBrowser:!0,classes:{URLSearchParams:GM,FormData:KM,Blob:QM},protocols:["http","https","file","blob","url","data"]},Ag=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,XM=Ag&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),JM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ZM=Ag&&window.location.href||"http://localhost",e4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ag,hasStandardBrowserEnv:XM,hasStandardBrowserWebWorkerEnv:JM,navigator:Sm,origin:ZM},Symbol.toStringTag,{value:"Module"})),Cn={...e4,...YM};function t4(e,t){return wd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&z.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function n4(e){return z.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function r4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&z.isArray(s)?s.length:a,c?(z.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!z.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&z.isArray(s[a])&&(s[a]=r4(s[a])),!l)}if(z.isFormData(e)&&z.isFunction(e.entries)){const n={};return z.forEachEntry(e,(r,s)=>{t(n4(r),s,n,0)}),n}return null}function s4(e,t,n){if(z.isString(e))try{return(t||JSON.parse)(e),z.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return s?JSON.stringify(LS(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return t4(t,this.formSerializer).toString();if((l=z.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),s4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Oe.from(l,Oe.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const i4=z.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"]),a4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&i4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},py=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:z.isArray(e)?e.map(qc):String(e)}function o4(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 l4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cp(e,t,n,r,s){if(z.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!z.isString(t)){if(z.isString(r))return t.indexOf(r)!==-1;if(z.isRegExp(r))return r.test(t)}}function c4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function u4(e,t){const n=z.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Qn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=z.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=qc(l))}const a=(l,c)=>z.forEach(l,(u,d)=>i(u,d,c));if(z.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(z.isString(t)&&(t=t.trim())&&!l4(t))a(a4(t),n);else if(z.isObject(t)&&z.isIterable(t)){let l={},c,u;for(const d of t){if(!z.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?z.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=z.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return o4(s);if(z.isFunction(n))return n.call(this,s,r);if(z.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=z.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Cp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=z.findKey(r,a);l&&(!n||Cp(r,r[l],l,n))&&(delete r[l],s=!0)}}return z.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Cp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return z.forEach(this,(s,i)=>{const a=z.findKey(r,i);if(a){n[a]=qc(s),delete n[i];return}const l=t?c4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return z.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&z.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(s=>r.set(s)),r}static accessor(t){const r=(this[py]=this[py]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(u4(s,a),r[l]=!0)}return z.isArray(t)?t.forEach(i):i(t),this}};Qn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);z.reduceDescriptors(Qn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});z.freezeMethods(Qn);function jp(e,t){const n=this||Rl,r=t||n,s=Qn.from(r.headers);let i=r.data;return z.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Oe.call(this,e??"canceled",Oe.ERR_CANCELED,t,n),this.name="CanceledError"}z.inherits(Ha,Oe,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Oe("Request failed with status code "+n.status,[Oe.ERR_BAD_REQUEST,Oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function d4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function p4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Du=(e,t,n=3)=>{let r=0;const s=p4(50,250);return f4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},fy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>z.asap(()=>e(...t)),m4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,h4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];z.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),z.isString(r)&&l.push(`path=${r}`),z.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),z.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function g4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function x4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!g4(t);return e&&(r||n==!1)?x4(e,t):t}const hy=e=>e instanceof Qn?{...e}:e;function Ui(e,t){t=t||{};const n={};function r(u,d,p,f){return z.isPlainObject(u)&&z.isPlainObject(d)?z.merge.call({caseless:f},u,d):z.isPlainObject(d)?z.merge({},d):z.isArray(d)?d.slice():d}function s(u,d,p,f){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!z.isUndefined(d))return r(void 0,d)}function a(u,d){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(hy(u),hy(d),p,!0)};return z.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);z.isUndefined(f)&&p!==l||(n[d]=f)}),n}const IS=e=>{const t=Ui({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Qn.from(a),t.url=AS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),z.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(z.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&z.isFunction(r)&&(r=r(t)),r||r!==!1&&m4(t.url))){const c=s&&i&&h4.read(i);c&&a.set(s,c)}return t},v4=typeof XMLHttpRequest<"u",y4=v4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const a=Qn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Qn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Oe("Request aborted",Oe.ECONNABORTED,e,b)),b=null)},b.onerror=function(k){const A=k&&k.message?k.message:"Network Error",S=new Oe(A,Oe.ERR_NETWORK,e,b);S.event=k||null,r(S),b=null},b.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||TS;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new Oe(k,A.clarifyTimeoutError?Oe.ETIMEDOUT:Oe.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&z.forEach(a.toJSON(),function(k,A){b.setRequestHeader(A,k)}),z.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Du(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Du(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=d4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Oe("Unsupported protocol "+y+":",Oe.ERR_BAD_REQUEST,e));return}b.send(i||null)})},_4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Oe?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Oe(`timeout ${t} of ms exceeded`,Oe.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>z.asap(l),c}},b4=function*(e,t){let n=e.byteLength;if(n{const s=w4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=z,S4=(({Request:e,Response:t})=>({Request:e,Response:t}))(z.global),{ReadableStream:vy,TextEncoder:yy}=z.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},E4=e=>{e=z.merge.call({skipUndefined:!0},S4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),a=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(Cn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&_y(()=>z.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Oe(`Response type '${g}' is not supported`,Oe.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(z.isBlob(g))return g.size;if(z.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(z.isArrayBufferView(g)||z.isArrayBuffer(g))return g.byteLength;if(z.isURLSearchParams(g)&&(g=g+""),z.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=z.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:k,onDownloadProgress:A,onUploadProgress:S,responseType:T,headers:D,withCredentials:$="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=_4([y,_&&_.toAbortSignal()],k),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let he;try{if(S&&u&&b!=="get"&&b!=="head"&&(he=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(z.isFormData(x)&&(pe=se.headers.get("content-type"))&&D.setContentType(pe),se.body){const[L,ke]=fy(he,Du(my(S)));x=gy(se.body,xy,L,ke)}}z.isString($)||($=$?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?$:void 0};re=i&&new n(v,oe);let F=await(i?H(re,j):H(v,oe));const Q=d&&(T==="stream"||T==="response");if(d&&(A||Q&&le)){const se={};["status","statusText","headers"].forEach(De=>{se[De]=F[De]});const pe=z.toFiniteNumber(F.headers.get("content-length")),[L,ke]=A&&fy(pe,Du(my(A),!0))||[];F=new r(gy(F.body,xy,L,()=>{ke&&ke(),le&&le()}),se)}T=T||"text";let N=await p[z.findKey(p,T)||"text"](F,g);return!Q&&le&&le(),await new Promise((se,pe)=>{MS(se,pe,{data:N,headers:Qn.from(F.headers),status:F.status,statusText:F.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Oe("Network Error",Oe.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Oe.from(xe,xe&&xe.code,g,re)}}},C4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=C4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:E4(t)),d=u;return u};BS();const Tg={http:$M,xhr:y4,fetch:{get:BS}};z.forEach(Tg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,j4=e=>z.isFunction(e)||e===null||e===!1;function N4(e,t){e=z.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(by).join(` +`):" "+by(a[0]):"as no adapter specified";throw new Oe("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:N4,adapters:Tg};function Np(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function wy(e){return Np(e),e.headers=Qn.from(e.headers),e.data=jp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Np(e),r.data=jp.call(e,e.transformResponse,r),r.headers=Qn.from(r.headers),r},function(r){return DS(r)||(Np(e),r&&r.response&&(r.response.data=jp.call(e,e.transformResponse,r.response),r.response.headers=Qn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+US+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Oe(s(a," has been removed"+(n?" in "+n:"")),Oe.ERR_DEPRECATED);return n&&!ky[a]&&(ky[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function P4(e,t,n){if(typeof e!="object")throw new Oe("options must be an object",Oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Oe("option "+i+" must be "+c,Oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Oe("Unknown option "+i,Oe.ERR_BAD_OPTION)}}const Wc={assertOptions:P4,validators:kd},Hr=Wc.validators;let Di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ui(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(z.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&z.merge(i.common,i[n.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Qn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 VS(function(s){t=s}),cancel:t}}};function A4(e){return function(n){return e.apply(null,n)}}function T4(e){return z.isObject(e)&&e.isAxiosError===!0}const Em={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(Em).forEach(([e,t])=>{Em[t]=e});function zS(e){const t=new Di(e),n=yS(Di.prototype.request,t);return z.extend(n,Di.prototype,t,{allOwnKeys:!0}),z.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Ui(e,s))},n}const Qt=zS(Rl);Qt.Axios=Di;Qt.CanceledError=Ha;Qt.CancelToken=R4;Qt.isCancel=DS;Qt.VERSION=US;Qt.toFormData=wd;Qt.AxiosError=Oe;Qt.Cancel=Qt.CanceledError;Qt.all=function(t){return Promise.all(t)};Qt.spread=A4;Qt.isAxiosError=T4;Qt.mergeConfig=Ui;Qt.AxiosHeaders=Qn;Qt.formToJSON=e=>LS(z.isHTMLForm(e)?new FormData(e):e);Qt.getAdapter=FS.getAdapter;Qt.HttpStatusCode=Em;Qt.default=Qt;const{Axios:B8,AxiosError:F8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=Qt,ye=Qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Cm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const L4=()=>{jm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Cm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const D4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},M4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},O4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},I4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},B4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},F4=async e=>{await ye.delete(`/estimates/${e}`)},U4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},V4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},z4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},$4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},H4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},q4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},W4=async e=>{await ye.delete(`/line-items/${e}`)},G4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},K4=async e=>{await ye.post("/estimates/reorder",e)},Q4=async()=>{const{data:e}=await ye.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},Y4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},X4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},J4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Z4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},eO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},Ey=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},tO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},nO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Cy=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},rO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},sO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},iO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},aO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},oO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},lO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},cO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},uO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},dO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},pO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},fO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ay=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?mO(n):pO(n);case"ALL_PURPOSE":return t?hO(n):fO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return rE(n);case"DATABRICKS_APPS":return eE(n);case"CLEAN_ROOM":return gO(n);case"AI_PARSE":return tE(n);case"SHUTTERSTOCK_IMAGEAI":return nE(n);case"LAKEFLOW_CONNECT":return xO(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function cs(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([cs("instance-dbu-rates.json"),cs("dbu-multipliers.json"),cs("dbu-rates.json"),cs("dbsql-rates.json"),cs("dbsql-warehouse-config.json"),cs("vector-search-rates.json"),cs("model-serving-rates.json"),cs("fmapi-databricks-rates.json"),cs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),sE()}}function sE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function iE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Lg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function aE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Ty;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},jO="v6",ds=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(ds);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(ds),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(ds),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(ds),null;return t}catch{return localStorage.removeItem(ds),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(ds,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(ds)}catch{}}const Pp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Rp=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Ap=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Dp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Mp=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],ws=rM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"}],cloudProviders:Pp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Rp,dbsqlWarehouseTypes:[],dltEditions:Ap,fmapiProviders:Mp,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tp,vmPaymentOptions:Lp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Dp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:sE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await D4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Sy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await O4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await F4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await $4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await H4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await q4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await W4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Pp,dbsqlSizes:u.dbsqlSizes||Rp,dltEditions:u.dltEditions||Ap,fmapiProviders:u.fmapiProviders||Mp,vmPricingTiers:u.vmPricingTiers||Tp,vmPaymentOptions:u.vmPaymentOptions||Lp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Dp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,k,A,S,T,D,$,j,H,X,re,le]=await Promise.all([Q4().catch(()=>r.workloadTypes),X4().catch(()=>Pp),J4().catch(()=>Rp),Z4().catch(()=>Ap),eO().catch(()=>Mp),cO().catch(()=>Tp),uO().catch(()=>Lp),iO().catch(()=>null),oO().catch(()=>null),Py().catch(()=>Dp),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),sO(s).catch(()=>[]),aO(s).catch(()=>[]),Ey().catch(()=>[]),Cy().catch(()=>[]),Nm().catch(()=>[])]),he={aws:A,azure:S,gcp:T},xe=A,oe={};j.forEach(se=>{const pe=`${se.model}:${se.rate_type}`;oe[pe]=se});const F={};H.forEach(se=>{const pe=`${se.provider}:${se.model}:${se.rate_type}`;F[pe]=se});const Q=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Q.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,vectorSearchModes:$,fmapiDatabricksRates:oe,fmapiProprietaryRates:F,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await Y4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Ey();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Cy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await lO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=nO({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Lg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await HS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ay(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ay(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await rE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await eE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"AI_PARSE":c=await tE({...l,mode:"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1});break;case"SHUTTERSTOCK_IMAGEAI":c=await nE({...l,images_per_month:n.shutterstock_images||100});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function Ly(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function oE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Rm(e){return e.toLowerCase()}class Yn{constructor(t,n){this.attribute=n,this.property=t}}Yn.prototype.attribute="";Yn.prototype.booleanish=!1;Yn.prototype.boolean=!1;Yn.prototype.commaOrSpaceSeparated=!1;Yn.prototype.commaSeparated=!1;Yn.prototype.defined=!1;Yn.prototype.mustUseProperty=!1;Yn.prototype.number=!1;Yn.prototype.overloadedBoolean=!1;Yn.prototype.property="";Yn.prototype.spaceSeparated=!1;Yn.prototype.space=void 0;let BO=0;const Ue=Wi(),Xt=Wi(),Am=Wi(),ne=Wi(),_t=Wi(),_a=Wi(),nr=Wi();function Wi(){return 2**++BO}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ue,booleanish:Xt,commaOrSpaceSeparated:nr,commaSeparated:_a,number:ne,overloadedBoolean:Am,spaceSeparated:_t},Symbol.toStringTag,{value:"Module"})),Op=Object.keys(Tm);class Dg extends Yn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Dg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=oE([lE,FO,dE,pE,fE],"html"),Mg=oE([lE,UO,dE,pE,fE],"svg");function KO(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,By="/",Fy="*",Ei="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(By!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;Ei!=e.charAt(v)&&(Fy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,Ei===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:Uy(v[0].replace(Iy,Ei)),value:b?Uy(b[0].replace(Iy,Ei)):Ei});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(tI,Ei):Ei}var aI=iI,oI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,Vy):e=e.replace(fI,Vy),e.replace(dI,gI))};Sd.camelCase=xI;var vI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Og),_I=Sd;function Lm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Lm.default=Lm;var bI=Lm;const wI=qu(bI),mE=hE("end"),Ig=hE("start");function hE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Ig(e),n=mE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),gE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=xE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function xE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=yE(e,t.tagName,!1),a=II(e,t);let l=Ug(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:yE(e,t.name,!0),a=BI(e,t),l=Ug(e,t);return vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Fg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function vE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=FI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function BI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(lr(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function bE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=pi(/[A-Za-z]/),Nn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function gt(e){return e!==null&&(e<0||e===32)}function Ge(e){return e===-2||e===-1||e===32}const Ed=pi(new RegExp("\\p{P}|\\p{S}","u")),Vi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Je(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return Ge(c)?(e.enter(n),l(c)):t(c)}function l(c){return Ge(c)&&i++a))return;const T=t.events.length;let D=T,$,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if($){j=t.events[D][1].end;break}$=!0}for(x(r),S=T;S_;){const A=n[k];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tB(e,t,n){return Je(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||gt(e)||Vi(e))return 1;if(Ed(e))return 2}function Cd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Ky(p,-c),Ky(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,Cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,lr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&Ge(S)?Je(e,y,"linePrefix",i+1)(S):y(S)}function y(S){return S===null||Ne(S)?e.check(Qy,v,k)(S):(e.enter("codeFlowValue"),_(S))}function _(S){return S===null||Ne(S)?(e.exit("codeFlowValue"),y(S)):(e.consume(S),_)}function k(S){return e.exit("codeFenced"),t(S)}function A(S,T,D){let $=0;return j;function j(he){return S.enter("lineEnding"),S.consume(he),S.exit("lineEnding"),H}function H(he){return S.enter("codeFencedFence"),Ge(he)?Je(S,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(he):X(he)}function X(he){return he===l?(S.enter("codeFencedFenceSequence"),re(he)):D(he)}function re(he){return he===l?($++,S.consume(he),re):$>=a?(S.exit("codeFencedFenceSequence"),Ge(he)?Je(S,le,"whitespace")(he):le(he)):D(he)}function le(he){return he===null||Ne(he)?(S.exit("codeFencedFence"),T(he)):D(he)}}}function fB(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hB},mB={partial:!0,tokenize:gB};function hB(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Je(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mB,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gB(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Je(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xB={name:"codeText",previous:yB,resolve:vB,tokenize:_B};function vB(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function jE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||gt(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!Ge(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function PE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Je(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ge(s)?Je(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NB={name:"definition",tokenize:RB},PB={partial:!0,tokenize:AB};function RB(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return NE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return gt(h)?Do(e,u)(h):u(h)}function u(h){return jE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PB,p,p)(h)}function p(h){return Ge(h)?Je(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AB(e,t,n){return r;function r(l){return gt(l)?Do(e,s)(l):n(l)}function s(l){return PE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Ge(l)?Je(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TB={name:"hardBreakEscape",tokenize:LB};function LB(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DB={name:"headingAtx",resolve:MB,tokenize:OB};function MB(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},lr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OB(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||gt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):Ge(d)?Je(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||gt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IB=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],BB={concrete:!0,name:"htmlFlow",resolveTo:VB,tokenize:zB},FB={partial:!0,tokenize:HB},UB={partial:!0,tokenize:$B};function VB(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zB(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):On(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const ke="CDATA[";return L===ke.charCodeAt(l++)?(e.consume(L),l===ke.length?r.interrupt?t:X:g):n(L)}function v(L){return On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||gt(L)){const ke=L===47,De=a.toLowerCase();return!ke&&!i&&Xy.includes(De)?(s=1,r.interrupt?t(L):X(L)):IB.includes(a.toLowerCase())?(s=6,ke?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return Ge(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||On(L)?(e.consume(L),k):Ge(L)?(e.consume(L),_):j(L)}function k(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),k):A(L)}function A(L){return L===61?(e.consume(L),S):Ge(L)?(e.consume(L),A):_(L)}function S(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):Ge(L)?(e.consume(L),S):D(L)}function T(L){return L===c?(e.consume(L),c=null,$):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||gt(L)?A(L):(e.consume(L),D)}function $(L){return L===47||L===62||Ge(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):Ge(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Q):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(FB,pe,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UB,le,pe)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),he}function he(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",F):X(L)}function F(L){if(L===62){const ke=a.toLowerCase();return Xy.includes(ke)?(e.consume(L),se):X(L)}return On(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),F):X(L)}function Q(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),se)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $B(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HB(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qB={name:"htmlText",tokenize:WB};function WB(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):On(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):On(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),k):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function k(N){return N===62?xe(N):_(N)}function A(N){return On(N)?(e.consume(N),S):n(N)}function S(N){return N===45||Nn(N)?(e.consume(N),S):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):Ge(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||gt(N)?$(N):n(N)}function $(N){return N===47?(e.consume(N),xe):N===58||N===95||On(N)?(e.consume(N),j):Ne(N)?(a=$,oe(N)):Ge(N)?(e.consume(N),$):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):Ge(N)?(e.consume(N),H):$(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):Ge(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,he):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||gt(N)?$(N):(e.consume(N),le)}function he(N){return N===47||N===62||gt(N)?$(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),F}function F(N){return Ge(N)?Je(e,Q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Q(N)}function Q(N){return e.enter("htmlTextData"),a(N)}}const $g={name:"labelEnd",resolveAll:YB,resolveTo:XB,tokenize:JB},GB={tokenize:ZB},KB={tokenize:eF},QB={tokenize:tF};function YB(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),Ge(u)?Je(e,l,"whitespace")(u):l(u))}}const zn={continuation:{tokenize:dF},exit:fF,name:"list",tokenize:uF},lF={partial:!0,tokenize:mF},cF={partial:!0,tokenize:pF};function uF(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lF,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return Ge(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dF(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Je(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Ge(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cF,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Je(e,e.attempt(zn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pF(e,t,n){const r=this;return Je(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fF(e){e.exit(this.containerState.type)}function mF(e,t,n){const r=this;return Je(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ge(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:hF,tokenize:gF};function hF(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gF(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Ge(u)?Je(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xF={tokenize:vF};function vF(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Je(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kB,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yF={resolveAll:AE()},_F=RE("string"),bF=RE("text");function RE(e){return{resolveAll:AE(e==="text"?wF:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MF(e,t){let n=-1;const r=[];let s;for(;++n0){const Ve=G.tokenStack[G.tokenStack.length-1];(Ve[1]||e_).call(G,void 0,Ve[0])}for(B.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QF(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YF(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XF(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JF(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZF(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function DE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):ME(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=mE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WF,break:GF,code:KF,delete:QF,emphasis:YF,footnoteReference:XF,heading:JF,html:ZF,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const OE=-1,jd=0,Mo=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,IE=7,BE=8,s_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case jd:case OE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case Hg:return n(new Date(a),s);case qg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case IE:{const{name:l,message:c}=a;return n(new s_[l](c),s)}case BE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new s_[i](a),s)};return r},i_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Ou,Ki];case"Date":return[Hg,Ki];case"RegExp":return[qg,Ki];case"Map":return[Wg,Ki];case"Set":return[Gg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[IE,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case jd:{let d=a;switch(c){case"bigint":l=BE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([OE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Ou:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!yc(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case Hg:return s([l,a.toISOString()],a);case qg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Wg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(yc(uo(f))||yc(uo(h))))&&d.push([i(f),i(h)]);return p}case Gg:{const d=[],p=s([l,d],a);for(const f of a)(e||!yc(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(a_(e,t)):structuredClone(e):(e,t)=>i_(a_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return N6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=FE,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function o_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function F6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,VE=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):VE.call(t)==="[object Array]"},f_=function(t){if(!t||VE.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Wr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Fm(v)&&Fm(h)&&(h=Up(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Qg().freeze();function Hp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Fm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return rU(e)?e:new zE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return nU().use(qF).use(n).use(F6,r).use(t)}function dU(e){const t=e.children||"",n=new zE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Kg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Ip)if(Object.hasOwn(Ip,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ip[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Nd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:S}:void 0),S===!1?f.lastIndex=k+1:(g!==k&&y.push({type:"text",value:u.value.slice(g,k)}),Array.isArray(S)?y.push(...S):S&&y.push(S),g=k+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function $E(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Vi(n)||Ed(n))&&(!t||n!==47)}HE.peek=FU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function BU(e){this.exit(e)}function FU(){return"["}function HE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:BU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?qE:zU))),u(),c}}function zU(e,t,n){return t===0?e:qE(e,t,n)}function qE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];WE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:WE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function WE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GE.peek=l7;function GE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}KE.peek=d7;function KE(e){return e.value||""}function d7(){return"<"}QE.peek=p7;function QE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}YE.peek=f7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}XE.peek=m7;function XE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}ZE.peek=h7;function ZE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(JE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return JE(e,n)?"<":"["}eC.peek=g7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Xg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),tC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nC.peek=C7;function nC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(tC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rC={blockquote:JU,break:S_,code:s7,definition:a7,emphasis:GE,hardBreak:S_,heading:u7,html:KE,image:QE,imageReference:YE,inlineCode:XE,link:ZE,linkReference:eC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:nC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:E_,tableHeader:E_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Yp,tableHeader:Yp,tableRow:Yp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Yp(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||gt(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return gt(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||gt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return gt(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Je(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Je(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?S:c;return re===S&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):Ge(j)?Je(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||gt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,Ge(j)?Je(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return Ge(j)?Je(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?k(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return Ge(j)?Je(e,k,"whitespace")(j):k(j)}function k(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function S(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):Ge(j)?Je(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||gt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?$:D)}function $(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return gt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):Ge(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Je(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return bE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[k,A]=m.useState([]),[S,T]=m.useState([]),[D,$]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,he]=m.useState(!1),[xe,oe]=m.useState(380),[F,Q]=m.useState(!1),[N,se]=m.useState(!0),[pe,L]=m.useState(null),[ke,De]=m.useState(""),[w,Y]=m.useState(null),ue=l??xe,_e=c??oe,ve=m.useRef(null),ot=m.useRef(null),Ze=m.useRef(null),I=m.useRef(null),st=m.useRef(null),xt=m.useRef(!1),lt=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,$e=a[Te];$e!=null&&$e.total&&(U+=$e.total)}),U},[a,i]),mt=m.useCallback(U=>{U.preventDefault(),Q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!F)return;const $e=window.innerWidth-Te.clientX,K=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,$e),K))},Z=()=>{Q(!1)};return F&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[F]);const W=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;xt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(xt.current=!1)},[g]);const E=m.useCallback(()=>{const U=ot.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;xt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Ze.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),q=m.useCallback((U,Z)=>{L(U),De(Z)},[]),Se=m.useCallback(()=>{L(null),De("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),Y(U),setTimeout(()=>Y(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,B]=m.useState(null),[G,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!ke.trim()||d.findIndex(K=>K.id===U)===-1)return;const Te=ke.trim();if(T([]),L(null),De(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const $e={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([$e]),B(Te),ae(!0)},[ke,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,lt,ie]);const Ve=m.useCallback(async(U,Z)=>{var ut;const Te=U||f.trim();if(!Te||g)return;const $e={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(nt=>[...nt,$e]),h(""),v(!0),re(null);const K=`assistant-${Date.now()}`;p(nt=>[...nt,{id:K,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const nt=(i||k||[]).map(Ie=>{const Me=Ie.line_item_id||Ie.item_id||Ie.draft_id,Re=a==null?void 0:a[Me];return{...Ie,total_cost:(Re==null?void 0:Re.total)||Ie.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Ie.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Ie.vm_cost||0}}),Bt=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:$e.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:nt,mode:u,stream:!0}),signal:I.current.signal});if(!Bt.ok)throw new Error(`HTTP ${Bt.status}: ${Bt.statusText}`);const ft=(ut=Bt.body)==null?void 0:ut.getReader();if(!ft)throw new Error("No response body");const vt=new TextDecoder;let Ct="",ht="",ze=[];for(;;){const{done:Ie,value:Me}=await ft.read();if(Ie)break;Ct+=vt.decode(Me,{stream:!0});const Re=Ct.split(` +`);Ct=Re.pop()||"";for(const Yt of Re)if(Yt.startsWith("data: ")){const jt=Yt.slice(6);if(jt==="[DONE]")continue;try{const Ee=JSON.parse(jt);if(Ee.type==="start")x(Ee.conversation_id);else if(Ee.type==="content")ht+=Ee.content,p(Nt=>Nt.map(Le=>Le.id===K?{...Le,content:ht,isThinking:!1}:Le));else if(Ee.type==="tool_result")ze.push({tool:Ee.tool,result:Ee.result});else if(Ee.type==="proposal")Ee.workload&&Ee.workload.proposal_id&&T(Nt=>Nt.some(Jn=>Jn.proposal_id===Ee.workload.proposal_id)?Nt:[...Nt,Ee.workload]);else if(Ee.type==="done")ht.includes("Error getting response")||ht.includes("AI service error")||(Ee.estimate&&_(Ee.estimate),Ee.workloads&&A(Ee.workloads),Ee.proposed_workloads&&Ee.proposed_workloads.length>0&&T(Ee.proposed_workloads));else if(Ee.type==="error")throw new Error(Ee.content)}catch{}}}p(Ie=>Ie.map(Me=>Me.id===K?{...Me,content:ht,isStreaming:!1,toolResults:ze}:Me))}catch(nt){if(nt.name==="AbortError")return;console.error("Chat error:",nt),re(nt.message||"Failed to get response"),p(Bt=>Bt.filter(ft=>ft.id!==K))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,k,a]);m.useEffect(()=>{O&&!g&&(Ve(O,G),B(null),ae(!1))},[O,G,g,Ve]);const pt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Ve())},it=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ye=async U=>{if(b){$(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T($e=>$e.filter(K=>K.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p($e=>{var K;return[...$e,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(K=Te.workload_config)==null?void 0:K.workload_name}" added to estimate.`,timestamp:new Date}]})}catch($e){p(K=>[...K,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${$e.message||"Database error"}. Please try again.`,timestamp:new Date}]),re($e.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},ct=async U=>{if(b){$(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=S.find($e=>$e.proposal_id===U);T($e=>$e.filter(K=>K.proposal_id!==U)),p($e=>[...$e,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Xe=async()=>{for(const U of S)await Ye(U.proposal_id)},It=async()=>{for(const U of S)await ct(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>he(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx($c,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(fs,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:st,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ue}px)`},children:[o.jsx("div",{onMouseDown:mt,className:de("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",F&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ms,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:it,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(KD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(OD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),S.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ty,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[S.length," Proposed Workload",S.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(sr,{className:"w-4 h-4 text-amber-600"}):o.jsx(fs,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Xe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",S.length,")"]}),o.jsx("button",{onClick:It,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:S.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:de("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ye(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Au,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:ot,onScroll:E,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:de("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:de("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:ke,onChange:Z=>De(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:de("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var $e;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[($e=Z.result)!=null&&$e.success?o.jsx(Au,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:de("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:de("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(wD,{className:"w-3.5 h-3.5"}):o.jsx(SD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>q(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(n3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:it,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(fs,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Ve(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Ze,value:f,onChange:W,onKeyDown:pt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Ve(),disabled:!g&&!f.trim(),className:de("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(dS,{className:"w-4 h-4"}):o.jsx(JD,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:o3}],N_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Xp=[{value:"light",label:"Light",icon:y3},{value:"dark",label:"Dark",icon:YD},{value:"system",label:"System",icon:PD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=R3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),k=m.useRef(null),{currentUser:A,isAuthenticated:S,authError:T,fetchCurrentUser:D,currentEstimate:$,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:he,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:F}=ws(),Q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Q||N,pe=m.useCallback(()=>{L4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const Y=ue=>{var _e;console.log("Session expired event received:",ue.detail),g(((_e=ue.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(Cm,Y),()=>{window.removeEventListener(Cm,Y)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),ke=m.useCallback(()=>{a(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||he(),F||xe()},[he,xe,oe,F]),m.useEffect(()=>{const Y=ue=>{_.current&&!_.current.contains(ue.target)&&s(!1),k.current&&!k.current.contains(ue.target)&&a(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Xp.find(Y=>Y.value===t)||Xp[2],w=De.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(N_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(N_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(Y=>{const ue=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return o.jsxs(bu,{to:Y.href,className:de("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ue&&"border"),style:ue?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(Y.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),S&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(S3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),o.jsx(sr,{className:de("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Xp.map(Y=>{const ue=Y.icon,_e=t===Y.value;return o.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ue,{className:"w-4 h-4"}),o.jsx("span",{children:Y.label})]},Y.value)})})]}),o.jsxs("div",{className:"relative",ref:k,children:[o.jsxs("button",{onClick:ke,className:de("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(u3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(nm,{children:i&&o.jsxs($t.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(BD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(_m,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx($t.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(EN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Q?$:void 0,currentWorkloads:Q?j:void 0,itemCosts:Q?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Q?async Y=>{if($!=null&&$.estimate_id)try{await X({estimate_id:$.estimate_id,...Y}),re($.estimate_id),We.success(`Workload "${Y.workload_name}" added!`)}catch(ue){throw We.error(ue.message||"Failed to add workload"),ue}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(nm,{children:p&&o.jsx($t.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs($t.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(ms,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Xn(e){var t,n;return e?Ga(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Xn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Xn(e).HTMLElement}function pC(e){return e instanceof Xn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:Zg(e)?ex(e)?e:Dl(e)||pC(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Fu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Jp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Jp[e]==null?0:Jp[e]+1;return Jp[e]=n,e+"-"+n},[e,t])}function fC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=fC(1),Uu=fC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Xn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Xn(e.target);return t&&e instanceof t}function $m(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(P_)?e:e.querySelector(P_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const mC=m.createContext(null);function OV(e){const t=m.useContext(mC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const BV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},FV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=FV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=BV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function hC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const gC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(R_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function xC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Xn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function A_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Xn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Xn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||pC(s)||n.includes(s))return n;const i=Xn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function vC(e){const[t]=rx(e,1);return t??null}function Zp(e){return!Rd||!e?null:Ga(e)?e:Zg(e)?ex(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function yC(e){return Ga(e)?e.scrollX:e.scrollLeft}function _C(e){return Ga(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:yC(e),y:_C(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function bC(e){return!Rd||!e?!1:e===document.scrollingElement}function wC(e){const t={x:0,y:0},n=bC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=wC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function kC(e){return e.reduce((t,n)=>ba(t,Hm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+yC(n),0)}function az(e){return e.reduce((t,n)=>t+_C(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);vC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=kC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Xn(e);return e instanceof t?e:Ka(e)}function ef(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function T_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var rt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(rt||(rt={}));const SC={start:[rt.Space,rt.Enter],cancel:[rt.Esc],end:[rt.Space,rt.Enter,rt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case rt.Right:return{...n,x:n.x+25};case rt.Left:return{...n,x:n.x-25};case rt.Down:return{...n,y:n.y+25};case rt.Up:return{...n,y:n.y-25}}};class Ad{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Xn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=SC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Uu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:k,maxScroll:A,minScroll:S}=wC(v),T=sz(v),D={x:Math.min(b===rt.Right?T.right-T.width/2:T.right,Math.max(b===rt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===rt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===rt.Down?T.top:T.top+T.height/2,p.y))},$=b===rt.Right&&!y||b===rt.Left&&!_,j=b===rt.Down&&!k||b===rt.Up&&!x;if($&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===rt.Right&&H<=A.x||b===rt.Left&&H>=S.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===rt.Right?v.scrollLeft-A.x:v.scrollLeft-S.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===rt.Down&&H<=A.y||b===rt.Up&&H>=S.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===rt.Down?v.scrollTop-A.y:v.scrollTop-S.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Uu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ad.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=SC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function L_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Xn(a)),this.initialCoordinates=(s=$m(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,T_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,T_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(L_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Fr,u=Uu(s,c);if(!r&&l){if(L_(l)){if(l.tolerance!=null&&ef(u,l.tolerance))return this.handleCancel();if(ef(u,l.distance))return this.handleStart()}if(D_(l)&&ef(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Td extends ix{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Td.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class mz extends ix{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const tf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ix{constructor(t){super(t,tf)}static setup(){return window.addEventListener(tf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),k=m.useCallback(()=>{const S=_.current;if(!S)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;S.scrollBy(T,D)},[]),A=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const S of A){if((r==null?void 0:r(S))===!1)continue;const T=u.indexOf(S),D=d[T];if(!D)continue;const{direction:$,speed:j}=rz(S,D,y,t,f);for(const H of["x","y"])h[H][$[H]]||(j[H]=0,$[H]=0);if(j.x>0||j.y>0){v(),_.current=S,g(k,a),b.current=j,x.current=$;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,k,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const k=_.node.current,A=k?new sx(c(k),k):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function EC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return EC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ld(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new sx(Qa(e),e)}function O_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Ld({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=EC(e);return xC(e,t)}const I_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=Zp(i.target);a&&n(l=>l?(l.set(a,Hm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=Zp(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=Zp(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):kC(e):Fr,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function CC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const F_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=CC(n?Xn(n):null),[s,i]=m.useState(F_);function a(){i(()=>e.length?e.map(c=>bC(c)?r:new sx(t(c),c)):F_)}const l=Ld({callback:a});return es(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Ld({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Fu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Td,options:{}},{sensor:Ad,options:{}}],Dz={current:{}},Qc={draggable:{measure:A_},droppable:{measure:A_,strategy:fl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Qa}};class Bo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Bo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Oz),jC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Bo}}}function Bz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Bo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Bo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Bo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Fz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),a=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=xC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=vC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const NC=m.createContext({...Fr,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const PC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Bz,void 0,Iz),[b,x]=v,[y,_]=IV(),[k,A]=m.useState(Us.Uninitialized),S=k===Us.Initialized,{draggable:{active:T,nodes:D,translate:$},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var K;return T!=null?{id:T,data:(K=H==null?void 0:H.data)!=null?K:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[he,xe]=m.useState(null),[oe,F]=m.useState(null),Q=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:ke,measuringScheduled:De}=bz(se,{dragging:S,dependencies:[$.x,$.y],config:pe.droppable}),w=yz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ue=$e(),_e=wz(w,pe.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ue.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Ze=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Ze.current.over)==null?void 0:n.id),st=Tz({measure:pe.dragOverlay.measure}),xt=(r=st.nodeRef.current)!=null?r:w,lt=S?(s=st.rect)!=null?s:ve:null,mt=!!(st.nodeRef.current&&st.rect),W=Ez(mt?null:ve),P=CC(xt?Xn(xt):null),E=Cz(S?I??w:null),ie=Rz(E),M=Uz(h,{transform:{x:$.x-W.x,y:$.y-W.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:ot,draggingNodeRect:lt,over:Ze.current.over,overlayNodeRect:st.rect,scrollableAncestors:E,scrollableAncestorRects:ie,windowRect:P}),q=Y?ba(Y,$):null,Se=jz(E),Pe=B_(Se),O=B_(Se,[ve]),B=ba(M,Pe),G=lt?QV(lt,M):null,ae=re&&G?p({active:re,collisionRect:G,droppableRects:L,droppableContainers:se,pointerCoordinates:q}):null,je=HV(ae,"id"),[Ve,pt]=m.useState(null),it=mt?M:ba(M,O),Ye=GV(it,(i=Ve==null?void 0:Ve.rect)!=null?i:null,ve),ct=m.useRef(null),Xe=m.useCallback((K,ut)=>{let{sensor:nt,options:Bt}=ut;if(le.current==null)return;const ft=D.get(le.current);if(!ft)return;const vt=K.nativeEvent,Ct=new nt({active:le.current,activeNode:ft,event:vt,options:Bt,context:Ze,onAbort(ze){if(!D.get(ze))return;const{onDragAbort:Me}=Q.current,Re={id:ze};Me==null||Me(Re),y({type:"onDragAbort",event:Re})},onPending(ze,Ie,Me,Re){if(!D.get(ze))return;const{onDragPending:jt}=Q.current,Ee={id:ze,constraint:Ie,initialCoordinates:Me,offset:Re};jt==null||jt(Ee),y({type:"onDragPending",event:Ee})},onStart(ze){const Ie=le.current;if(Ie==null)return;const Me=D.get(Ie);if(!Me)return;const{onDragStart:Re}=Q.current,Yt={activatorEvent:vt,active:{id:Ie,data:Me.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Yt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:ze,active:Ie}),y({type:"onDragStart",event:Yt}),xe(ct.current),F(vt)})},onMove(ze){x({type:sn.DragMove,coordinates:ze})},onEnd:ht(sn.DragEnd),onCancel:ht(sn.DragCancel)});ct.current=Ct;function ht(ze){return async function(){const{active:Me,collisions:Re,over:Yt,scrollAdjustedTranslate:jt}=Ze.current;let Ee=null;if(Me&&jt){const{cancelDrop:Nt}=Q.current;Ee={activatorEvent:vt,active:Me,collisions:Re,delta:jt,over:Yt},ze===sn.DragEnd&&typeof Nt=="function"&&await Promise.resolve(Nt(Ee))&&(ze=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:ze}),A(Us.Uninitialized),pt(null),xe(null),F(null),ct.current=null;const Nt=ze===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const Le=Q.current[Nt];Le==null||Le(Ee),y({type:Nt,event:Ee})}})}}},[D]),It=m.useCallback((K,ut)=>(nt,Bt)=>{const ft=nt.nativeEvent,vt=D.get(Bt);if(le.current!==null||!vt||ft.dndKit||ft.defaultPrevented)return;const Ct={active:vt};K(nt,ut.options,Ct)===!0&&(ft.dndKit={capturedBy:ut.sensor},le.current=Bt,Xe(nt,ut))},[D,Xe]),U=_z(d,It);Nz(d),es(()=>{ve&&k===Us.Initializing&&A(Us.Initialized)},[ve,k]),m.useEffect(()=>{const{onDragMove:K}=Q.current,{active:ut,activatorEvent:nt,collisions:Bt,over:ft}=Ze.current;if(!ut||!nt)return;const vt={active:ut,activatorEvent:nt,collisions:Bt,delta:{x:B.x,y:B.y},over:ft};la.unstable_batchedUpdates(()=>{K==null||K(vt),y({type:"onDragMove",event:vt})})},[B.x,B.y]),m.useEffect(()=>{const{active:K,activatorEvent:ut,collisions:nt,droppableContainers:Bt,scrollAdjustedTranslate:ft}=Ze.current;if(!K||le.current==null||!ut||!ft)return;const{onDragOver:vt}=Q.current,Ct=Bt.get(je),ht=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,ze={active:K,activatorEvent:ut,collisions:nt,delta:{x:ft.x,y:ft.y},over:ht};la.unstable_batchedUpdates(()=>{pt(ht),vt==null||vt(ze),y({type:"onDragOver",event:ze})})},[je]),es(()=>{Ze.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:G,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:xt,draggingNodeRect:lt,droppableContainers:j,over:Ve,scrollableAncestors:E,scrollAdjustedTranslate:B},X.current={initial:lt,translated:G}},[re,w,ae,G,D,xt,lt,L,j,Ve,E,B]),gz({...ue,delta:$,draggingRect:G,pointerCoordinates:q,scrollableAncestors:E,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:ot,dragOverlay:st,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Ve,measureDroppableContainers:ke,scrollableAncestors:E,scrollableAncestorRects:ie,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ve,oe,ae,ot,st,D,j,L,Ve,ke,E,ie,pe,De,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Ve,measureDroppableContainers:ke}),[oe,U,re,ve,x,N,D,Ve,ke]);return pn.createElement(mC.Provider,{value:_},pn.createElement(Dd.Provider,{value:Te},pn.createElement(jC.Provider,{value:Z},pn.createElement(NC.Provider,{value:Ye},u)),pn.createElement(Fz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function $e(){const K=(he==null?void 0:he.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,nt=S&&!K&&!ut;return typeof c=="object"?{...c,enabled:nt}:{enabled:nt}}}),$z=m.createContext(null),U_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?NC:$z),[y,_]=Fu(),[k,A]=Fu(),S=Pz(a,t),T=pl(n);es(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:k,data:T}),()=>{const $=p.get(t);$&&$.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:S,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(jC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ld({callback:y,disabled:g||!a}),k=m.useCallback((D,$)=>{_&&($&&(_.unobserve($),p.current=!1),D&&_.observe(D))},[_]),[A,S]=Fu(k),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:S}}function ax(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ax(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Sc={scaleX:1,scaleY:1},AC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Sc}:s=a?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,k=Jz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:k,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,k.draggable,k.droppable,_,h,b,c,f,s]);return pn.createElement(LC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ax(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},MC="transform",r8=Oa.Transition.toString({property:MC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function OC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(LC),_=a8(r,h),k=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:k,items:d},...s}),[p,s,k,d]),S=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:$,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:he,listeners:xe,isDragging:oe,over:F,setActivatorNodeRef:Q,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,he),pe=!!H,L=pe&&!g&&kc(f)&&kc(b),ke=!x&&oe,De=ke&&L?N:null,Y=L?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:k}):null,ue=kc(f)&&kc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):k,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ue,containerId:p}),ot=d!==ve.current.items,Ze=t({active:H,containerId:p,isDragging:oe,isSorting:pe,id:a,index:k,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Ze,index:k,node:D,rect:T});return m.useEffect(()=>{pe&&ve.current.newIndex!==ue&&(ve.current.newIndex=ue),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,ue,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const xt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(xt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:k,newIndex:ue,items:d,isOver:$,isSorting:pe,isDragging:oe,listeners:xe,node:D,overIndex:b,over:F,setNodeRef:se,setActivatorNodeRef:Q,setDroppableNodeRef:j,setDraggableNodeRef:he,transform:I??Y,transition:st()};function st(){if(I||ot&&ve.current.newIndex===k)return r8;if(!(ke&&!nx(X)||!u)&&(pe||Ze))return Oa.Transition.toString({...u,property:MC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}rt.Down,rt.Right,rt.Up,rt.Left;const IC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var BC={exports:{}};(function(e,t){(function(n,r){r()})(hs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof hs=="object"&&hs.global===hs?hs:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(BC);var Gm=BC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Ec={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=ws(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[k,A]=m.useState(new Set),[S,T]=m.useState(!1),[D,$]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,he]=m.useState(null),[xe,oe]=m.useState(!1),[F,Q]=m.useState(!1),N=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),We.success("Refreshed")},[r]),pe=m.useMemo(()=>{const W=t.length,P=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="aws"}).length,E=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="gcp"}).length;return{all:W,aws:P,azure:E,gcp:ie}},[t]),L=m.useMemo(()=>{const W=t.reduce((P,E)=>P+(E.line_item_count||0),0);return{estimates:t.length,workloads:W}},[t]),ke=m.useMemo(()=>{const W=new Set;return t.forEach(P=>{P.customer_name&&W.add(P.customer_name)}),Array.from(W).sort()},[t]),De=m.useMemo(()=>{const W={all:t.length};return t.forEach(P=>{P.customer_name&&(W[P.customer_name]=(W[P.customer_name]||0)+1)}),W},[t]),w=m.useMemo(()=>{let W=[...t];if(c){const P=c.toLowerCase();W=W.filter(E=>{var ie;return E.estimate_name.toLowerCase().includes(P)||((ie=E.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(W=W.filter(P=>{var E;return((E=P.cloud)==null?void 0:E.toLowerCase())===f})),b!=="all"&&(W=W.filter(P=>P.customer_name===b)),g){case"updated":W.sort((P,E)=>new Date(E.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":W.sort((P,E)=>P.estimate_name.localeCompare(E.estimate_name));break;case"workloads":W.sort((P,E)=>(E.line_item_count||0)-(P.line_item_count||0));break;case"display_order":W.sort((P,E)=>(P.display_order??0)-(E.display_order??0));break}return W},[t,c,f,g,b]),Y=m.useCallback(async W=>{const{active:P,over:E}=W;if(!E||P.id===E.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===E.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const q=ax(w,ie,M),{estimates:Se}=ws.getState(),Pe=Se.map(O=>{const B=q.findIndex(G=>G.estimate_id===O.estimate_id);return B>=0?{...O,display_order:B}:O});ws.setState({estimates:Pe});try{await K4(q.map(O=>O.estimate_id))}catch{We.error("Failed to save reorder")}},[w,g]),ue=(W,P,E)=>{W.stopPropagation(),he({id:P,name:E}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),We.success("Estimate deleted")}catch{We.error("Failed to delete")}finally{oe(!1),re(!1),he(null)}}},ve=async(W,P)=>{W.stopPropagation();try{const E=await i(P);We.success("Estimate duplicated"),e(`/calculator/${E.estimate_id}`)}catch{We.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const W=await dO();Gm.saveAs(W,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),We.success("Exported successfully")}catch{We.error("Export failed")}finally{l(!1)}},Ze=()=>{k.size===w.length?A(new Set):A(new Set(w.map(W=>W.estimate_id)))},I=(W,P)=>{P.stopPropagation();const E=new Set(k);E.has(W)?E.delete(W):E.add(W),A(E)},st=()=>{k.size!==0&&Q(!0)},xt=async()=>{$(!0);let W=0,P=0;for(const E of k)try{await s(E),W++}catch{P++}$(!1),A(new Set),Q(!1),P===0?We.success(`Deleted ${W} estimate(s)`):We.error(`Deleted ${W}, failed ${P}`)},lt=async()=>{if(k.size===0)return;H(!0);let W=0;for(const P of k)try{const E=t.find(ie=>ie.estimate_id===P);if(E){const ie=await qS(P);Gm.saveAs(ie,`${E.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),W++}}catch{}H(!1),We.success(`Exported ${W} estimate(s)`)},mt=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ny,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Ng,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Qr,{className:de("w-5 h-5",d&&"animate-spin")})}),S?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[k.size," selected"]}),o.jsxs("button",{onClick:lt,disabled:k.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:st,disabled:k.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:mt,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:ot,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),ke.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(pD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?ke.length:De[b]||0}),o.jsx(sr,{className:de("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(nm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs($t.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:ke.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),ke.map(W=>o.jsxs("button",{onClick:()=>{x(W),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===W?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===W?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:W,children:W}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:De[W]||0}),b===W&&o.jsx(Gs,{className:"w-4 h-4"})]})]},W))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:W=>u(W.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(W=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},W))})}):w.length===0?o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Ze,className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:k.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:de(S?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(PC,{sensors:N,collisionDetection:gC,onDragEnd:Y,modifiers:[IC],children:o.jsx(DC,{items:w.map(W=>W.estimate_id),strategy:AC,children:w.map((W,P)=>{const E=k.has(W.estimate_id);return o.jsx(o8,{id:W.estimate_id,children:o.jsxs($t.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!S&&e(`/calculator/${W.estimate_id}`),className:de("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!S&&"cursor-pointer hover:bg-[var(--bg-hover)]",E&&"bg-blue-500/5"),children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(W.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",E?"bg-blue-500 border-blue-500":"border-gray-400"),children:E&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:de("flex items-center gap-3",S?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(ym,{className:"w-4 h-4",style:{color:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:W.estimate_name,children:W.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:W.customer_name||"",children:W.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:W.customer_name||"",children:W.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:W.cloud&&Tr[W.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[W.cloud.toLowerCase()].bg,color:Tr[W.cloud.toLowerCase()].text},children:Tr[W.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:W.region||W.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[W.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:W.region,children:W.region}),W.tier&&Ec[W.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Ec[W.tier.toLowerCase()].bg,color:Ec[W.tier.toLowerCase()].text},children:Ec[W.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:de("px-2 py-0.5 rounded text-xs font-medium",W.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:W.line_item_count===0?{color:"var(--text-muted)"}:{},children:W.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(W.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!S&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,W.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ue(ie,W.estimate_id,W.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},W.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),he(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),F&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",k.size," Estimate",k.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(W=>k.has(W.estimate_id)).map(W=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",W.estimate_name]},W.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:xt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),k.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[k.size," estimate",k.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:st,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,k=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach($=>{const j=$.group||"Other";T[j]||(T[j]=[]),T[j].push($)}),Object.keys(T).sort(($,j)=>$==="General Purpose"?-1:j==="General Purpose"?1:$.localeCompare(j)).map($=>({name:$,options:T[$]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},S=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:de("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:de("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:de("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:S,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(sr,{className:de("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),k.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const FC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:FC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function nf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var W;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:k,fetchLineItems:A,clearSingleWorkloadCost:S,markItemCalculating:T,fetchVMCostForInstance:D}=ws(),$=m.useRef(!0);m.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,he=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,F={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Q=f&&f.models&&f.models.llm?f:F,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[pe,L]=m.useState(!1),[ke,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ue={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ue),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),FC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?aE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&Y(E=>({...E,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Ze=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!$.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),st=a.length===0,xt=!st&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){We.error("Enter a workload name");return}L(!0);try{const E={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(E.serverless_enabled=w.serverless_enabled,E.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(E.serverless_enabled=!1,E.serverless_mode=null),I!=null&&I.show_compute_config?(E.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,E.driver_node_type=w.driver_node_type||null,E.worker_node_type=w.worker_node_type||null,E.num_workers=w.num_workers,E.driver_pricing_tier=w.driver_pricing_tier||"on_demand",E.worker_pricing_tier=w.worker_pricing_tier||"spot",E.driver_payment_option=w.driver_payment_option||"NA",E.worker_payment_option=w.worker_payment_option||"NA"):(E.photon_enabled=!1,E.driver_node_type=null,E.worker_node_type=null,E.num_workers=null,E.driver_pricing_tier=null,E.worker_pricing_tier=null,E.driver_payment_option=null,E.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?E.dlt_edition=w.dlt_edition:E.dlt_edition=null,I!=null&&I.show_dbsql_config?(E.dbsql_warehouse_type=w.dbsql_warehouse_type,E.dbsql_warehouse_size=w.dbsql_warehouse_size,E.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(E.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,E.dbsql_driver_payment_option=w.dbsql_driver_payment_option,E.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,E.dbsql_worker_payment_option=w.dbsql_worker_payment_option,E.driver_pricing_tier=w.dbsql_driver_pricing_tier,E.driver_payment_option=w.dbsql_driver_payment_option,E.worker_pricing_tier=w.dbsql_worker_pricing_tier,E.worker_payment_option=w.dbsql_worker_payment_option)):(E.dbsql_warehouse_type=null,E.dbsql_warehouse_size=null,E.dbsql_num_clusters=null,E.dbsql_driver_pricing_tier=null,E.dbsql_driver_payment_option=null,E.dbsql_worker_pricing_tier=null,E.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(E.vector_search_mode=w.vector_search_mode,E.vector_capacity_millions=w.vector_capacity_millions,E.vector_search_storage_gb=w.vector_search_storage_gb||0):(E.vector_search_mode=null,E.vector_capacity_millions=null,E.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(E.model_serving_gpu_type=w.model_serving_gpu_type,E.model_serving_scale_out=w.model_serving_scale_out,E.model_serving_concurrency=w.model_serving_concurrency):(E.model_serving_gpu_type=null,E.model_serving_scale_out=null,E.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?E.databricks_apps_size=w.databricks_apps_size:E.databricks_apps_size=null,w.workload_type==="AI_PARSE"?(E.ai_parse_mode="pages",E.ai_parse_complexity=w.ai_parse_complexity,E.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(E.ai_parse_mode=null,E.ai_parse_complexity=null,E.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?E.shutterstock_images=w.shutterstock_images:E.shutterstock_images=null,I!=null&&I.show_lakebase_config?(E.lakebase_cu=w.lakebase_cu,E.lakebase_storage_gb=w.lakebase_storage_gb||0,E.lakebase_ha_nodes=w.lakebase_ha_nodes,E.lakebase_backup_retention_days=w.lakebase_backup_retention_days,E.lakebase_pitr_gb=w.lakebase_pitr_gb||0,E.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(E.lakebase_cu=null,E.lakebase_storage_gb=null,E.lakebase_ha_nodes=null,E.lakebase_backup_retention_days=null,E.lakebase_pitr_gb=null,E.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(E.fmapi_provider=w.fmapi_provider,E.fmapi_model=w.fmapi_model||null,E.fmapi_endpoint_type=w.fmapi_endpoint_type,E.fmapi_context_length=w.fmapi_context_length,E.fmapi_rate_type=w.fmapi_rate_type,E.fmapi_quantity=w.fmapi_quantity):(E.fmapi_provider=null,E.fmapi_model=null,E.fmapi_endpoint_type=null,E.fmapi_context_length=null,E.fmapi_rate_type=null,E.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?ke?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,E.avg_runtime_minutes=w.avg_runtime_minutes,E.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):I!=null&&I.show_fmapi_config?(E.hours_per_month=w.hours_per_month||null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null),t)S(t.line_item_id),T(t.line_item_id),await k(t.line_item_id,E),We.success("Workload updated");else{E.estimate_id=e;const M=await _(E);M!=null&&M.line_item_id&&T(M.line_item_id),We.success("Workload added")}A(e),r==null||r(),n()}catch(E){console.error("Failed to save workload:",E),We.error("Failed to save")}finally{L(!1)}},mt=I==null?void 0:I.show_compute_config;return st?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(E=>({...E,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>Y(E=>({...E,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:de("w-full text-sm",xt&&"border-red-500",Ze&&"border-yellow-500"),children:[Ze&&(()=>{const P=a.find(E=>E.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),xt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Ze&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Ze&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const E=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!E,onChange:()=>!E&&Y(ie=>{const M=!ie.serverless_enabled,q=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:q}}),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>Y(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:he.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:de("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),mt&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(E=>({...E,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(E=>({...E,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(E=>({...E,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(E=>({...E,worker_node_type:E.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:de("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(E=>({...E,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(E=>({...E,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(E=>({...E,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(E=>({...E,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[mt&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>Y(E=>({...E,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const E=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!E;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!E&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(q=>({...q,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(E=>({...E,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(E=>({...E,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,E=P!=null&&P.driver_instance_type?l.find(B=>B.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(B=>B.id===P.worker_instance_type):null,M=(B,G,ae)=>{var Ve,pt,it,Ye,ct,Xe,It;if(!(B!=null&&B.vm_pricing))return null;const je=G.toLowerCase();if(je==="on_demand")return(Ve=B.vm_pricing.on_demand)==null?void 0:Ve.cost_per_hour;if(je==="spot")return(pt=B.vm_pricing.spot)==null?void 0:pt.cost_per_hour;if(je==="reserved_1y"){const U=((it=B.vm_pricing.reserved_1y)==null?void 0:it.find(Z=>Z.payment_option===ae))||((Ye=B.vm_pricing.reserved_1y)==null?void 0:Ye[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((ct=B.vm_pricing.reserved_3y)==null?void 0:ct.find(Z=>Z.payment_option===ae))||((Xe=B.vm_pricing.reserved_3y)==null?void 0:Xe[0]);return U==null?void 0:U.cost_per_hour}return(It=B.vm_pricing.on_demand)==null?void 0:It.cost_per_hour},q=M(E,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),E&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=E.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),q!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",q.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_driver_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:B=>Y(G=>({...G,dbsql_driver_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_worker_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:B=>Y(G=>({...G,dbsql_worker_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(E=>({...E,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(E=>({...E,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(E=>({...E,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(E=>({...E,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const E={small:4,medium:12,large:40},ie=P.target.value;Y(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:E[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const E=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(ie=>({...ie,model_serving_concurrency:E}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(E=>({...E,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(E=>({...E,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const E=P.target.value,ie=z_(x,g||"aws",w.fmapi_provider,E),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";Y(q=>({...q,fmapi_model:E,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(W=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:W.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(E=>({...E,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(E=>({...E,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],E={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],E={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(E=>({...E,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(E=>({...E,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(E=>({...E,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(E=>({...E,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(E=>({...E,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>Y(E=>({...E,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>Y(E=>({...E,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages/Month (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>Y(E=>({...E,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>Y(E=>({...E,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>De(!1),className:de("px-3 py-1 text-xs rounded-l-md border transition-colors",ke?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>De(!0),className:de("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",ke?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!ke&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(E=>({...E,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(E=>({...E,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&w.workload_type!=="DATABRICKS_APPS"&&w.workload_type!=="AI_PARSE"&&w.workload_type!=="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(E=>({...E,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),ke&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>Y(E=>({...E,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:s3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Tu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:sD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:_D,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:qD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:m3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?h8[e]||{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},fe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:fe(e),At=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:de("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:de("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[fe(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:de("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[At(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:k,getInstanceDbuRate:A,vmPricingMap:S,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:$,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:he,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:F,isPricingBundleLoaded:Q,clearEstimateState:N,setLocalCalculatedCosts:se}=ws(),[pe,L]=m.useState(!1),[ke,De]=m.useState(!1),[w,Y]=m.useState(!1),[ue,_e]=m.useState(!1),[ve,ot]=m.useState(!1),[Ze,I]=m.useState(null),[st,xt]=m.useState(!1),[lt,mt]=m.useState(!1),[W,P]=m.useState(!1),[E,ie]=m.useState(!1),[M,q]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,B]=m.useState(!1),[G,ae]=m.useState({}),[je,Ve]=m.useState(!1),[pt,it]=m.useState(!1),[Ye,ct]=m.useState(!1),[Xe,It]=m.useState(!1),[U,Z]=m.useState([]),[Te,$e]=m.useState(!1),[K,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[nt,Bt]=m.useState(!!e),[ft,vt]=m.useState(!1),[Ct,ht]=m.useState(!1),[ze,Ie]=m.useState("table"),[Me,Re]=m.useState("order"),[Yt,jt]=m.useState("asc"),[Ee,Nt]=m.useState(new Set),[Le,Jn]=m.useState(!1),Zn=m.useRef({}),ns=m.useCallback(R=>{const J=Zn.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Zn.current[R]&&(Zn.current[R].style.backgroundColor="")},1500))},[]),Un=m.useCallback(()=>{B(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!K.cloud||!K.region||r.length===0||!Ye)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const V=cl(F,K.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if(V){const ce=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",He=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${V.driver_instance_type}:${ce}:${He}`);const Pt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${V.worker_instance_type}:${Pt}:${Rt}`)}return}if(C.driver_node_type){const V=C.driver_pricing_tier||"on_demand",ce=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${V}:${ce}`)}if(C.worker_node_type){const V=C.worker_pricing_tier||"spot",ce=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${V}:${ce}`)}}});const J=Array.from(R).map(C=>{const[V,ce,He]=C.split(":");return _(K.cloud,K.region,V,ce,He)});if(J.length>0){It(!0);const C=new Promise(V=>setTimeout(V,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>It(!1))}},[K.cloud,K.region,r,Ye,_,F]),m.useEffect(()=>{if(!K.cloud)return;const R=p(K.cloud);if(R.length>0){const J=Q?CO(F,K.cloud):[];if(J.length>0){const C=R.filter(V=>J.includes(V.region_code));Z(C)}else Z(R);$e(!1)}else u?(Z([]),$e(!1)):$e(!0)},[K.cloud,d,u,p,F,Q]),m.useEffect(()=>{(async()=>{if(e){Ve(!0),it(!0),ct(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Ve(!1),it(!1),ct(!0)}}else N(),ct(!1)})()},[e,i,N]);const rs={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(rs),x("aws"),B(!1))},[n,e,x,y]),m.useEffect(()=>{K.cloud&&K.region&&K.tier&&$(K.cloud.toUpperCase(),K.region,K.tier.toUpperCase())},[K.cloud,K.region,K.tier,$]);const ss=!!(K.region&&K.tier),fr=(R,J)=>{const C=J?{...R,...J}:R,V=K.cloud||"aws",ce=K.region,He=Object.keys(D).length>0?D:Q_[V]||Q_.aws,Pt=C.num_workers||0;if(!ce)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let we="";const en=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?we="JOBS_COMPUTE_(PHOTON)":we="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?we="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?we="ALL_PURPOSE_COMPUTE_(PHOTON)":we="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":(we=`DLT_${en}_COMPUTE`,C.photon_enabled&&(we+="_(PHOTON)"));break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Be==="SERVERLESS"?we="SERVERLESS_SQL_COMPUTE":Be==="PRO"?we="SQL_PRO_COMPUTE":we="SQL_COMPUTE";break;case"VECTOR_SEARCH":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const yt=(C.fmapi_provider||"openai").toLowerCase();we=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[yt]||yt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":we="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":we="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"AI_PARSE":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":we="SERVERLESS_REAL_TIME_INFERENCE";break;default:we="JOBS_COMPUTE"}let An=.2;if(Q&&K.tier){const Be=Lg(F,V,ce,K.tier,we);Be>0?An=Be:An=He[we]||.2}else An=He[we]||.2;let be=0,qe=0,Qe=0,Ts,Er,is,te=.5,me=.5;if(Q&&C.driver_node_type){const Be=Pm(F,V,C.driver_node_type);Be>0&&(te=Be)}if(!te||te===.5){const Be=j.find(yt=>yt.id===C.driver_node_type||yt.name===C.driver_node_type);Be!=null&&Be.dbu_rate&&(te=Be.dbu_rate)}if(Q&&C.worker_node_type){const Be=Pm(F,V,C.worker_node_type);Be>0&&(me=Be)}if(!me||me===.5){const Be=j.find(yt=>yt.id===C.worker_node_type||yt.name===C.worker_node_type);Be!=null&&Be.dbu_rate&&(me=Be.dbu_rate)}const Ht=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Be;if(C.serverless_enabled?C.workload_type==="JOBS"?Be="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Be="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Be="DLT_CORE_COMPUTE":Be=we.replace("_(PHOTON)",""):Be=we.replace("_(PHOTON)",""),Q){const tn=iE(F,V,Be);if(tn!==2)return tn}const yt=H.find(tn=>{var bn,mr;return tn.sku_type===Be||((bn=tn.sku_type)==null?void 0:bn.toLowerCase())===Be.toLowerCase()||((mr=tn.sku_type)==null?void 0:mr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(yt==null?void 0:yt.multiplier)||2})(),mi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Pt)*Ht*mi;else{be=(te+me*Pt)*Ht;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Pt)*Ht*Cr*mi;else{be=(te+me*Pt)*Ht*Cr;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),yt=C.dbsql_warehouse_size||"Small",tn=C.dbsql_num_clusters||1;let bn=Y_[yt]||12;if(Q){const Ce=_O(F,V,Be,yt);Ce&&Ce.dbu_per_hour>0&&(bn=Ce.dbu_per_hour)}if(!bn||bn===(Y_[yt]||12)){const Ce=X.find(cn=>cn.id===yt||cn.name===yt);Ce!=null&&Ce.dbu_per_hour&&(bn=Ce.dbu_per_hour)}if(be=bn*tn,qe=be*Rt,Be!=="SERVERLESS"){const Ce=Q?cl(F,V,Be,yt):null;if(Ce){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,Ce.driver_instance_type,cn,Nr),Ja=k(V,ce,Ce.worker_instance_type,hi,gi);Qe=(Ce.driver_count*xi+Ce.worker_count*Ja)*tn*Rt}else if(C.driver_node_type){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,C.driver_node_type,cn,Nr),Ja=C.worker_node_type?k(V,ce,C.worker_node_type,hi,gi):0,yx=C.num_workers||0;Qe=(xi+Ja*yx)*tn*Rt}}break;case"VECTOR_SEARCH":const mr=C.vector_search_mode||"standard",at=C.vector_capacity_millions||1;let ln=mr==="storage_optimized"?64e6:2e6,qt=mr==="storage_optimized"?18.29:4;if(Q){const Ce=bO(F,V,mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_rate)}else{const Ce=he(mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_per_hour)}const mn=at*1e6,Fe=Math.ceil(mn/ln);Ts=Fe,be=Fe*qt,qe=be*Rt;const et=C.vector_search_storage_gb||0,Wt=Fe*20,wt=Math.max(0,et-Wt),Ut=.023,hn=wt*Ut;et>0&&(Er=hn,is={totalStorageGB:et,freeStorageGB:Wt,billableStorageGB:wt,pricePerGB:Ut});break;case"MODEL_SERVING":const er=C.model_serving_gpu_type||"cpu";let Dn=2;if(Q){const Ce=wO(F,V,er);Ce&&Ce.dbu_rate>0&&(Dn=Ce.dbu_rate)}if(Dn===2){const Ce=re.find(cn=>cn.id===er||cn.name===er);Ce!=null&&Ce.dbu_per_hour&&(Dn=Ce.dbu_per_hour)}const tr=C.model_serving_scale_out||"small",Fl=tr==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[tr]||4;be=Dn*Fl,qe=be*Rt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},JC=(zl[V]||zl.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;be=Ul*JC*Vl,qe=be*Rt;const $l=Math.min(C.lakebase_storage_gb||0,8192),ZC=C.lakebase_pitr_gb||0,e2=C.lakebase_snapshot_gb||0,Hl=.023,t2=$l*15*Hl,n2=ZC*8.7*Hl,r2=e2*3.91*Hl,gx=t2+n2+r2;gx>0&&(Er=gx,is={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const s2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ds=null;if(Q&&C.fmapi_model){const Ce=kO(F,V,C.fmapi_model,Xa);Ce&&(Ds=Ce.dbu_rate)}if(Ds===null&&C.fmapi_model){const Ce=xe(C.fmapi_model,Xa);Ce&&(xx?Ds=Ce.dbu_per_hour||null:Ds=Ce.dbu_per_1M_tokens||null)}Ds===null&&(xx?Ds=Xa==="provisioned_scaling"?200:50:Ds=Xa==="output_token"?3:1),qe=s2*Ds;break;case"FMAPI_PROPRIETARY":const i2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let jr=null;if(Q&&C.fmapi_provider&&C.fmapi_model){const Ce=C.fmapi_endpoint_type||"global",cn=C.fmapi_context_length||"long",Nr=SO(F,V,C.fmapi_provider,C.fmapi_model,Ce,cn,ql);Nr&&(jr=Nr.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ce=oe(C.fmapi_provider,C.fmapi_model,ql);Ce&&(vx?jr=Ce.dbu_per_hour||null:jr=Ce.dbu_per_1M_tokens||null)}if(jr===null)if(vx)jr=150;else switch(ql){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}qe=i2*jr;break;case"DATABRICKS_APPS":{const Ce=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ce]||.5,qe=be*Rt;break}case"AI_PARSE":{const Ce={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},cn=(C.ai_parse_complexity||"medium").toLowerCase();qe=(C.ai_parse_pages_thousands||0)*(Ce[cn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{qe=(C.shutterstock_images||0)*.857;break}default:qe=0}const Tn=isNaN(An)||An===void 0?0:An,Ls=isNaN(qe)||qe===void 0?0:qe,Ln=isNaN(Qe)||Qe===void 0?0:Qe,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ls*Tn,os=zr+Ln+_n;return{monthlyDBUs:Ls,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(os)?0:os,unitsUsed:Ts,dbuPerHour:be,dbuPrice:Tn,storageCost:_n>0?_n:void 0,storageDetails:is}},Vn=m.useMemo(()=>{let R=0,J=0,C=0,V=0;return r.forEach(ce=>{const He=fr(ce);R+=isNaN(He.monthlyDBUs)?0:He.monthlyDBUs,J+=isNaN(He.dbuCost)?0:He.dbuCost,C+=isNaN(He.vmCost)?0:He.vmCost,V+=isNaN(He.totalCost)?0:He.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:V}},[r,K.cloud,K.region,K.tier,s,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=fr(J,G[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,G,K.cloud,K.region,K.tier,se,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);const fi=m.useMemo(()=>{const R=[...r];return Me==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):Me==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):Me==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):Me==="cost"&&R.sort((J,C)=>{const V=fr(J).totalCost,ce=fr(C).totalCost;return V-ce}),Yt==="desc"&&R.reverse(),R},[r,Me,Yt,fr]),Md=R=>{Me===R?jt(J=>J==="asc"?"desc":"asc"):(Re(R),jt(R==="cost"?"desc":"asc"))},UC=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad)),VC=Me==="order",zC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const V=fi.findIndex(en=>en.line_item_id===J.id),ce=fi.findIndex(en=>en.line_item_id===C.id);if(V===-1||ce===-1)return;const He=[...fi],[Pt]=He.splice(V,1);He.splice(ce,0,Pt);const{lineItems:Rt}=ws.getState(),we=Rt.map(en=>{const An=He.findIndex(be=>be.line_item_id===en.line_item_id);return An>=0?{...en,display_order:An}:en});ws.setState({lineItems:we});try{await G4(e,He.map(en=>en.line_item_id))}catch{We.error("Failed to save reorder")}},[fi,e]),ox=async()=>{if(!K.estimate_name.trim()){We.error("Enter an estimate name");return}if(!K.region){We.error("Select a region");return}if(!K.tier){We.error("Select a Databricks tier");return}L(!0);try{const R={...K,cloud:K.cloud.toUpperCase(),tier:K.tier.toUpperCase()};if(e&&n)await h(e,R),B(!1),We.success("All changes saved");else{const J=await f(R);B(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),We.success("Estimate created")}}catch{We.error("Failed to save")}finally{L(!1)}},$C=async()=>{if(e){De(!0);try{const R=await qS(e),J=`${K.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(R,J),We.success("Exported to Excel")}catch{We.error("Export failed")}finally{De(!1)}}},HC=async()=>{if(e){Y(!0),_e(!1);try{await g(e),We.success("Estimate deleted"),t("/",{replace:!0})}catch{We.error("Failed to delete estimate"),Y(!1)}}},qC=async()=>{l(),We.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),We.success("Pricing data refreshed",{id:"refresh-data"})}catch{We.error("Failed to refresh data",{id:"refresh-data"})}},lx=R=>{I(R),ot(!0)},WC=async()=>{if(Ze){mt(!0);try{await v(Ze.line_item_id),We.success("Workload removed")}catch{We.error("Failed to delete")}finally{mt(!1),ot(!1),I(null)}}},cx=()=>{Ee.size!==0&&xt(!0)},GC=async()=>{mt(!0);try{let R=0;for(const J of Ee)await v(J),R++;We.success(`${R} workload(s) deleted`),Nt(new Set)}catch{We.error("Failed to delete some workloads")}finally{mt(!1),xt(!1)}},KC=R=>{Nt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},QC=()=>{Ee.size===r.length?Nt(new Set):Nt(new Set(r.map(R=>R.line_item_id)))},ux=()=>{Jn(!1),Nt(new Set)},dx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&We.success(`Workload "${J.workload_name}" cloned`)}catch{We.error("Failed to clone workload")}},YC=()=>{O?P(!0):t("/")},XC=()=>{P(!1),t("/")},px=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),q(J)},Il=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const V=new Set(M);V.add(R),q(V)}Pe(C)},fx=R=>R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null,mx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"AI_PARSE":J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K/mo`});break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break}return J},Bl=K.estimate_name.trim()&&K.region&&K.tier,hx=()=>{const R=[];return K.estimate_name.trim()||R.push("Estimate Name"),K.region||R.push("Region"),K.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:YC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:K.estimate_name,onChange:R=>{ut(J=>({...J,estimate_name:R.target.value})),Un()},placeholder:"Untitled Estimate",title:K.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:qC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Qr,{className:de("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:$C,disabled:ke||!e,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:de("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:de("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Bt(!nt),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Tu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${K.cloud.toUpperCase()} • ${K.region||"No region"} • ${K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier"}${K.customer_name?` • ${K.customer_name}`:""}`,children:[K.cloud.toUpperCase()," • ",K.region||"No region"," • ",K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier",K.customer_name&&` • ${K.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:nt?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(fs,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!nt&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&K.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ut(V=>({...V,cloud:R.id,region:"",tier:R.id==="azure"&&V.tier==="enterprise"?"":V.tier})),x(R.id),Un())},className:de("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",K.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":K.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:de("text-sm font-semibold",K.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),K.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.region,onChange:R=>{ut(J=>({...J,region:R.target.value})),y(R.target.value),Un()},className:de("w-full text-sm",!K.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.tier,onChange:R=>{ut(J=>({...J,tier:R.target.value})),Un()},className:de("w-full text-sm",!K.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),K.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${hx().join(", ")}`,className:de("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(p3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:Le?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ee.size," selected"]}),o.jsxs("button",{onClick:cx,disabled:Ee.size===0,className:de("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ee.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>Jn(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Ie("table"),className:de("p-1.5 rounded-md transition-colors",ze==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(b3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("cards"),className:de("p-1.5 rounded-md transition-colors",ze==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Ng,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("expanded"),className:de("p-1.5 rounded-md transition-colors",ze==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(ry,{className:"w-4 h-4"})})]}),ss&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Add"]})]})]}),e?pt&&!Ye?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[ze==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ee.size===r.length&&r.length>0,onChange:QC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>Md("name"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Le?"col-span-3":"col-span-4"),children:["Workload",Me==="name"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("type"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Me==="type"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Me==="cost"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]})]}),o.jsx(PC,{sensors:UC,collisionDetection:gC,onDragEnd:zC,modifiers:[IC],children:o.jsx(DC,{items:fi.map(R=>R.line_item_id),strategy:AC,children:fi.map(R=>{var Ts,Er,is;const J=G[R.line_item_id],C=J?{...R,...J}:R,V=fr(R,J),ce=W_(C.workload_type),He=ce.icon,Pt=M.has(R.line_item_id),Rt=Ee.has(R.line_item_id),we=C.workload_type||"",en=C.serverless_enabled||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",An=((Ts=s.find(te=>te.workload_type===we))==null?void 0:Ts.display_name)||we,be=fx(C),Qe=(()=>{const te={badges:[],details:[]};if(en&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(we))en||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),we==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(we==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(we==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(we==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&we==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else we==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!VC,children:o.jsxs("div",{ref:te=>{Zn.current[R.line_item_id]=te},children:[o.jsxs("div",{className:de("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&Le&&"bg-lava-600/5",Pt&&"bg-[var(--bg-tertiary)]"),onClick:()=>px(R.line_item_id),children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>KC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:de("flex items-center gap-3",Le?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:de("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",ce.bgColor),children:o.jsx(He,{className:de("w-4 h-4",ce.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:An,children:An})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Qe.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Qe.driver||"N/A"}, Workers: ${((Er=Qe.workers)==null?void 0:Er.count)||0}× ${((is=Qe.workers)==null?void 0:is.type)||"N/A"}`,children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Qe.details.join(" · "),children:Qe.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(K_,{costs:V,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&te&&V.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>dx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),lx(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:de("p-1 rounded transition-colors",Pt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Pt?o.jsx(fs,{className:"w-5 h-5 text-lava-600"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Pt&&(Qe.badges.length>0||Qe.driver||Qe.workers||Qe.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Qe.details.join(" · ")})]}),Pt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(we)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.vmCost)})]}),we==="LAKEBASE"&&V.storageCost!==void 0&&V.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(V.storageCost)})]}),we==="VECTOR_SEARCH"&&V.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[V.unitsUsed," unit",V.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(we)&&!en&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,as=C.avg_runtime_minutes||30,Ht=C.days_per_month||30,mi=C.hours_per_month||730,Ft=te?me*(as/60)*Ht:mi,Tn=(V.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const Fe=C.vector_capacity_millions||1,et=C.vector_search_mode||"standard",Wt=et==="storage_optimized"?64:2,wt=Math.ceil(Fe/Wt),Ut=et==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,er=wt*20,Dn=Math.max(0,hn-er),tr=Dn*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M"]})," vectors ÷ ",Wt,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," unit",wt!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[er," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(tr)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(tr)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const Fe=C.fmapi_quantity||1,et=C.fmapi_rate_type||"input_token",Wt=["provisioned_scaling","provisioned_entry"].includes(et),wt=Fe>0?V.monthlyDBUs/Fe:0,Ut=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Wt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Ut,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="LAKEBASE"){const Fe=C.lakebase_cu||1,et=C.lakebase_ha_nodes||1,Wt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ut=(Wt[K.cloud||"aws"]||Wt.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,er=C.lakebase_pitr_gb||0,Dn=C.lakebase_snapshot_gb||0,tr=.023,Ya=hn*15*tr,Fl=er*8.7*tr,Ul=Dn*3.91*tr,Vl=Ya+Fl+Ul,zl=Vl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ya)})]}),er>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[er," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(er*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Fl)})]}),Dn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Dn*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ul)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),zl&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Vl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="MODEL_SERVING"){const Fe=C.model_serving_gpu_type||"cpu",et=C.model_serving_scale_out||"small",wt=et==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[et]||4,Ut=wt>0&&V.dbuPerHour?V.dbuPerHour/wt:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DBSQL"){const Fe=C.dbsql_warehouse_size||"Small",et=C.dbsql_num_clusters||1,Wt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),wt=V.dbuPerHour?V.dbuPerHour/et:12,Ut=V.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt.toFixed(1)," DBU/hr)"]}),et>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${as}min ÷ 60 × ${Ht} days`:void 0,children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),Ut&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[Wt," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:fe(V.dbuCost)}),Ut&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DATABRICKS_APPS"){const Fe=(C.databricks_apps_size||"medium").toLowerCase(),et=Fe==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe.charAt(0).toUpperCase()+Fe.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="AI_PARSE"){const Fe=(C.ai_parse_complexity||"medium").toLowerCase(),Wt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[Fe]||62.5,wt=C.ai_parse_pages_thousands||0,Ut={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Wt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut[Fe]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="SHUTTERSTOCK_IMAGEAI"){const Fe=C.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}const Ls=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,os=V.vmCost>0&&!en,Be=K.cloud||"aws",yt=K.region||"",tn=j.find(Fe=>Fe.id===Ln||Fe.name===Ln),bn=j.find(Fe=>Fe.id===_n||Fe.name===_n),mr=A(Be,Ln)||(tn==null?void 0:tn.dbu_rate)||0,at=A(Be,_n)||(bn==null?void 0:bn.dbu_rate)||0,ln=yt&&Ln?k(Be,yt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,qt=yt&&_n?k(Be,yt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,mn=V.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:mr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:at.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),os&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(ln==null?void 0:ln.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(qt==null?void 0:qt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),os&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})})()})]})]}),Pt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(q_,{onReset:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),ze!=="table"&&fi.map((R,J)=>{var An;const C=G[R.line_item_id],V=C?{...R,...C}:R,ce=fr(R,C),He=M.has(R.line_item_id),Pt=fx(V),Rt=W_(V.workload_type),we=Rt.icon,en=ze==="expanded"||He;return o.jsx("div",{ref:be=>{Zn.current[R.line_item_id]=be},children:o.jsxs($t.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:de("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",ze==="cards"&&!He&&"py-3"),onClick:()=>px(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:de("rounded-lg flex items-center justify-center flex-shrink-0",ze==="cards"&&!He?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(we,{className:de(Rt.color,ze==="cards"&&!He?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:de("font-semibold truncate text-[var(--text-primary)]",ze==="cards"&&!He&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((An=s.find(be=>be.workload_type===R.workload_type))==null?void 0:An.display_name)||R.workload_type})})]}),o.jsx(K_,{costs:ce,size:ze==="cards"&&!He?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",qe=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&qe&&ce.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>dx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),lx(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),He?o.jsx(fs,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),en&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.vmCost)})]}),R.workload_type==="LAKEBASE"&&ce.storageCost!==void 0&&ce.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(ce.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&ce.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[ce.unitsUsed," unit",ce.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),mx(R).map((be,qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},qe)),Pt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Pt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=V.workload_type||"",qe=V.serverless_enabled||be==="DBSQL"&&(V.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Qe=V.runs_per_day&&V.avg_runtime_minutes&&!V.hours_per_month,Ts=V.runs_per_day||0,Er=V.avg_runtime_minutes||30,is=V.days_per_month||30,te=V.hours_per_month||730,me=Qe?Ts*(Er/60)*is:te,Ht=(ce.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const at=V.vector_capacity_millions||1,ln=V.vector_search_mode||"standard",qt=ln==="storage_optimized"?64:2,mn=Math.ceil(at/qt),Fe=ln==="storage_optimized"?18.29:4,et=V.vector_search_storage_gb||0,Wt=mn*20,wt=Math.max(0,et-Wt),Ut=wt*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M vectors"]})," ÷ ",qt,"⌉"]}),o.jsxs("span",{children:["= ",mn," units ×"]}),o.jsxs("span",{children:[Fe," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs × $",Ht]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),et>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Wt," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),et>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Ut)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const at=V.fmapi_quantity||0,ln=ce.monthlyDBUs/(at||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[ln.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="LAKEBASE"){const at=V.lakebase_cu||1,ln=V.lakebase_ha_nodes||1,qt=V.lakebase_storage_gb||0,mn=V.lakebase_pitr_gb||0,Fe=V.lakebase_snapshot_gb||0,et=.023,Wt=qt*15*et,wt=mn*8.7*et,Ut=Fe*3.91*et,hn=Wt+wt+Ut,er=hn>0,Dn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(Dn[K.cloud||"aws"]||Dn.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),qt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(qt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Wt)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(wt)})]}),Fe>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Fe*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),er&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="MODEL_SERVING"){const at=V.model_serving_scale_out||"small",qt=at==="custom"?V.model_serving_concurrency||4:{small:4,medium:12,large:40}[at]||4,mn=qt>0&&ce.dbuPerHour?ce.dbuPerHour/qt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",at,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="DATABRICKS_APPS"){const at=(V.databricks_apps_size||"medium").toLowerCase(),ln=at==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:at.charAt(0).toUpperCase()+at.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",ln," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="AI_PARSE"){const at=(V.ai_parse_complexity||"medium").toLowerCase(),qt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[at]||62.5,mn=V.ai_parse_pages_thousands||0,Fe={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[qt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe[at]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="SHUTTERSTOCK_IMAGEAI"){const at=V.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}const mi=V.num_workers||0,Ft=V.driver_node_type||"",Cr=V.worker_node_type||"",Tn=V.photon_enabled,Ls=ce.vmCost>0&&!qe,Ln=K.cloud||"aws",_n=K.region||"",zr=j.find(at=>at.id===Ft||at.name===Ft),os=j.find(at=>at.id===Cr||at.name===Cr),Be=A(Ln,Ft)||(zr==null?void 0:zr.dbu_rate)||0,yt=A(Ln,Cr)||(os==null?void 0:os.dbu_rate)||0,tn=_n&&Ft?k(Ln,_n,Ft,V.driver_pricing_tier||"on_demand",V.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?k(Ln,_n,Cr,V.worker_pricing_tier||"spot",V.worker_payment_option||"NA"):null,mr=ce.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Qe&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ts," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Tn?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ft,children:Be.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:yt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),Tn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),Ls&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ft,children:["$",(tn==null?void 0:tn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(ce.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),Ls&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(ce.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})})()})]})]})]}),He&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(q_,{onReset:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe}),ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onSave:()=>{ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onFormChange:be=>{ae(qe=>({...qe,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),ss?E?o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(nf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Lu,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(ms,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(_m,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),pt&&!Ye&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>vt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(sr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),ss?pt&&!Ye?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:de("text-3xl font-bold text-lava-600",Xe&&"opacity-60"),children:fe(Vn.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[fe(Vn.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:fe(Vn.totalDBUCost),children:G_(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Xe?"Loading...":fe(Vn.totalVMCost),children:Xe?"...":G_(Vn.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>ns(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:fe(V.totalCost),children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full transition-all",Pt,"group-hover:brightness-110"),style:{width:`${Math.max(He,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(ms,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Ct&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>ht(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>ht(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>{ht(!1),ns(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full",Pt),style:{width:`${Math.max(He,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>vt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>ht(!Ct),className:de("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Ct?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(ry,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(fs,{className:de("w-3 h-3 transition-transform",Ct?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[fe(Vn.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ee.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ee.size," workload",Ee.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ue&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',K.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:HC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Ze&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Ze.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),st&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ee.size," Workload",Ee.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ee.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>xt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:GC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),W&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(ms,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:XC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let k="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?k="JOBS_COMPUTE_(PHOTON)":k="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?k="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?k="ALL_PURPOSE_COMPUTE_(PHOTON)":k="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":(k=`DLT_${A}_COMPUTE`,e.photon_enabled&&(k+="_(PHOTON)"));break;case"DBSQL":const ue=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ue==="SERVERLESS"?k="SERVERLESS_SQL_COMPUTE":ue==="PRO"?k="SQL_PRO_COMPUTE":k="SQL_COMPUTE";break;case"VECTOR_SEARCH":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();k=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":k="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":k="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":k="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":k="DELTA_LIVE_TABLES_SERVERLESS";break;default:k="JOBS_COMPUTE"}let S=null;if(b){const ue=b(k);ue!==null&&ue>0&&(S=ue)}S===null&&(S=x[k]||.2),console.log(`[LiveEstimate] productType=${k}, dbuPrice=${S}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,$=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ue=g(e.driver_node_type);ue!==null&&ue>0&&(re=ue)}if(re===.5){const ue=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ue!=null&&ue.dbu_rate&&(re=ue.dbu_rate)}if(g&&e.worker_node_type){const ue=g(e.worker_node_type);ue!==null&&ue>0&&(le=ue)}if(le===.5){const ue=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ue!=null&&ue.dbu_rate&&(le=ue.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ue=k.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ue="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ue="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ue=`DLT_${A}_COMPUTE`)),v){const ve=v(ue);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var ot;return ve.sku_type===ue||ve.sku_type===k||((ot=ve.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DBSQL":const ue=l.find(Le=>Le.id===e.dbsql_warehouse_size||Le.name===e.dbsql_warehouse_size),_e=(ue==null?void 0:ue.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const Le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Jn=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Zn=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",ns=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Un=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Un){const rs=d(n,r,Un.driver_instance_type,Le,Jn),ss=d(n,r,Un.worker_instance_type,Zn,ns);$=(Un.driver_count*rs+Un.worker_count*ss)*ve*_}else if(e.driver_node_type){const rs=d(n,r,e.driver_node_type,Le,Jn),ss=e.worker_node_type?d(n,r,e.worker_node_type,Zn,ns):0,fr=e.num_workers||0;$=(rs+ss*fr)*ve*_}}break;case"VECTOR_SEARCH":const Ze=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,st=h(Ze),xt=(st==null?void 0:st.input_divisor)||(Ze==="storage_optimized"?64e6:2e6),lt=(st==null?void 0:st.dbu_per_hour)||(Ze==="storage_optimized"?18.29:4),mt=I*1e6,W=Math.ceil(mt/xt);j=W,T=W*lt,D=T*_;const P=e.vector_search_storage_gb||0,E=W*20,ie=Math.max(0,P-E),M=.023,q=ie*M;P>0&&(H=q,X={totalStorageGB:P,freeStorageGB:E,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Le=>Le.id===Se||Le.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,B=e.model_serving_scale_out||"small",ae=B==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[B]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Ve=e.lakebase_ha_nodes||1,pt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ye=(pt[n]||pt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ye*Ve,D=T*_;const ct=Math.min(e.lakebase_storage_gb||0,8192),Xe=15,It=ct*Xe,U=.023,Z=It*U,Te=e.lakebase_pitr_gb||0,K=Te*8.7*U,ut=e.lakebase_snapshot_gb||0,Bt=ut*3.91*U;(ct>0||Te>0||ut>0)&&(H=Z+K+Bt,X={totalStorageGB:ct,billableStorageGB:ct,dsuPerGB:Xe,totalDSU:It,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,vt=e.fmapi_rate_type||"input_token",Ct=["provisioned_scaling","provisioned_entry"].includes(vt),ht=e.fmapi_model?p(e.fmapi_model,vt):null;if(Ct){const Le=(ht==null?void 0:ht.dbu_per_hour)||(vt==="provisioned_scaling"?200:50);D=ft*Le}else{const Le=(ht==null?void 0:ht.dbu_per_1M_tokens)||(vt==="output_token"?3:1);D=ft*Le}break;case"FMAPI_PROPRIETARY":const ze=e.fmapi_quantity||0,Ie=e.fmapi_rate_type||"input_token",Me=Ie==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Yt=e.fmapi_context_length||"long",jt=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Ie,Re,Yt):null;if(Me){const Le=(jt==null?void 0:jt.dbu_per_hour)||150;D=ze*Le}else{let Le=jt==null?void 0:jt.dbu_per_1M_tokens;if(!Le)switch(Ie){case"output_token":Le=321.43;break;case"cache_read":Le=8.57;break;case"cache_write":Le=85.71;break;default:Le=21.43}D=ze*Le}break;case"DATABRICKS_APPS":const Ee=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ee]||.5,D=T*_;break;case"AI_PARSE":{const Le={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Jn=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Le[Jn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{D=(e.shutterstock_images||0)*.857;break}default:D=0}const F=D*S,Q=H!==void 0&&!isNaN(H)?H:0,N=F+$+Q,se=isNaN(F)?0:F,pe=isNaN($)?0:$,L=isNaN(N)?se:N,ke=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(S)?.15:S;return{monthlyDBUs:ke,dbuCost:se,vmCost:pe,totalCost:L,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:Q>0?Q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function gs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?aE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of gs(Z_,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of gs(Z_,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of gs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of gs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of gs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),p=d.length>0?gs(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=gs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=gs(Qm(l),e.tiersPerCloud);for(const p of u){const f=Hu(t,l),h=f.length>0?gs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[k,A]=m.useState({current:0,total:0}),[S,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),$=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:F,isPricingBundleLoaded:Q,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:ke,getVectorSearchRate:De}=ws();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,F),[j,F]),Y=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ue=m.useMemo(()=>{const M=new Set(w.map(q=>q.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,q,Se)=>{const Pe=Q&&F.modelServingRates?Object.entries(F.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,B])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:B.dbu_rate}}):xe;return{cloud:M,region:q,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,B)=>{if(Q&&F.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${B}`,ae=F.fmapiDatabricksRates[G];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,B)},getFMAPIProprietaryRate:(O,B,G,ae,je)=>{if(Q&&F.fmapiProprietaryRates){const Ve=ae||"global",pt=je||"all",it=`${M.toLowerCase()}:${O.toLowerCase()}:${B.toLowerCase()}:${Ve}:${pt}:${G}`,Ye=F.fmapiProprietaryRates[it];if(Ye)return{dbu_per_1M_tokens:Ye.is_hourly?void 0:Ye.dbu_rate,dbu_per_hour:Ye.is_hourly?Ye.dbu_rate:void 0}}return ke(O,B,G)},getVectorSearchRate:O=>{if(Q&&F.vectorSearchRates){const B=`${M.toLowerCase()}:${O}`,G=F.vectorSearchRates[B];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>Q?Pm(F,M,O):null,getPhotonMultiplier:O=>Q?iE(F,M,O):null,getDBUPrice:O=>Q?Lg(F,M,q,Se,O):null,getDBSQLWarehouseConfig:(O,B)=>Q?cl(F,M,O,B):null}},[X,re,le,he,xe,oe,Q,F,se,L,ke,De]),ve=async M=>{var K,ut,nt,Bt,ft,vt,Ct,ht,ze;const{environment:q,workloadType:Se,config:Pe}=M,O=_e(q.cloud,q.region,q.tier),B={...Pe,workload_type:Se},G=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Ie=cl(F,q.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Ie){const Me=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.driver_instance_type,Me,Re));const Yt=Pe.dbsql_worker_pricing_tier||"on_demand",jt=Pe.dbsql_worker_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.worker_instance_type,Yt,jt))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(G.push(pe(q.cloud,q.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&G.push(pe(q.cloud,q.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const ae=performance.now(),je=y8(B,O),Ve=performance.now()-ae,pt=performance.now();let it=null,Ye,ct;const Xe=j8(Se,Pe),It=N8(M);try{const Ie=await fetch(Xe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(It)});if(Ie.ok){const Me=await Ie.json();ct=Me;const Re=Me.data||Me,Yt=((K=Re.dbu_calculation)==null?void 0:K.dbu_per_month)??Re.dbu_per_month??(((ut=Re.dbu_calculation)==null?void 0:ut.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),jt=((nt=Re.dbu_calculation)==null?void 0:nt.dbu_cost_per_month)??((ft=(Bt=Re.total_cost)==null?void 0:Bt.breakdown)==null?void 0:ft.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ee=((vt=Re.vm_costs)==null?void 0:vt.vm_cost_per_month)??((ht=(Ct=Re.total_cost)==null?void 0:Ct.breakdown)==null?void 0:ht.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let Nt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?Nt=Re.total_cost.cost_per_month??jt+Ee:typeof Re.total_cost=="number"?Nt=Re.total_cost:Nt=Re.total_cost_per_month??jt+Ee,it={monthlyDBUs:Yt,dbuCost:jt,vmCost:Ee,totalCost:Nt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Me,parsed:it})}else{const Me=await Ie.text();try{const Re=JSON.parse(Me);Ye=`HTTP ${Ie.status}: ${((ze=Re.detail)==null?void 0:ze.message)||Re.detail||Re.message||Me}`}catch{Ye=`HTTP ${Ie.status}: ${Me}`}}}catch(Ie){Ye=Ie instanceof Error?Ie.message:"Unknown error"}const U=performance.now()-pt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,it,g),$e=Te<=g&&!Ye;return{testCase:M,localResult:je,apiResult:it,apiError:Ye,apiRequestBody:It,apiRawResponse:ct,localTimeMs:Ve,apiTimeMs:U,matches:$e,totalCostDiffPercent:Te,discrepancies:Z}},ot=()=>{D.current=!0,i(!0)},Ze=()=>{D.current=!1,i(!1)},I=()=>{$.current=!0,l(!0),D.current=!1,i(!1)},st=async()=>{for(;D.current&&!$.current;)await new Promise(M=>setTimeout(M,100))},xt=async()=>{r(!0),i(!1),l(!1),D.current=!1,$.current=!1,t([]),A({current:0,total:Y.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:q,tier:Se,workloadType:Pe,serverless:O,photon:B,driverNode:G,workerNode:ae,numWorkers:je,runsPerDay:Ve,avgRuntime:pt,daysPerMonth:it,hoursPerMonth:Ye}=S,ct={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:q,tier:Se},config:{serverless_enabled:O,photon_enabled:B,driver_node_type:G,worker_node_type:ae,num_workers:je,runs_per_day:Ve,avg_runtime_minutes:pt,days_per_month:it,hours_per_month:Ye,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Xe=await ve(ct);t([Xe]),u(null),r(!1)},mt=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,q=e.filter(G=>!G.matches).length,Se=e.filter(G=>G.apiError).length,Pe=e.length>0?e.reduce((G,ae)=>G+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,ae)=>G+ae.apiTimeMs,0)/e.length:0,B={};return e.forEach(G=>{const ae=G.testCase.category;B[ae]||(B[ae]={passed:0,failed:0}),G.matches?B[ae].passed++:B[ae].failed++}),{passed:M,failed:q,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:B}},[e]),W=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],q=e.map(G=>{var ae;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((ae=G.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Se=[M.join(","),...q.map(G=>G.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),B=document.createElement("a");B.href=O,B.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,B.click()},P=M=>{const q=new Set(d);q.has(M)?q.delete(M):q.add(M),p(q)},E=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(cD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(ZL,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:W,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(LD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(e3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Ze,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:xt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:S.cloud,onChange:M=>T({...S,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:S.region,onChange:M=>T({...S,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Km(F,S.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:S.tier,onChange:M=>T({...S,tier:M.target.value}),className:"w-full text-sm",children:Qm(S.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:S.workloadType,onChange:M=>T({...S,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.serverless,onChange:M=>T({...S,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.photon,onChange:M=>T({...S,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:S.driverNode,onChange:M=>T({...S,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:S.workerNode,onChange:M=>T({...S,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:S.numWorkers,onChange:M=>T({...S,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:S.runsPerDay,onChange:M=>T({...S,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:S.avgRuntime,onChange:M=>T({...S,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:S.daysPerMonth,onChange:M=>T({...S,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(jD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Km(F,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:q=>{q.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ue.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Q?"text-green-500":"text-yellow-500"}`,children:[Q?o.jsx(Au,{className:"w-5 h-5"}):o.jsx(ms,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:mt.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:mt.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:mt.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[mt.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[mt.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(mt.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(mt.byCategory).map(([M,{passed:q,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[q," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx($t.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${k.current/k.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[k.current," / ",k.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:Y.map(M=>{const q=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${q&&!q.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>q&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[q&&(Se?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q?E(q.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q!=null&&q.apiResult?E(q.apiResult.totalCost):q!=null&&q.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:q?o.jsxs("span",{className:q.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[q.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):q?q.matches?o.jsx(Au,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(C3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),q&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(q.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:E(q.localResult.totalCost)})]}),q.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",q.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),q.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:q.apiError})}):q.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(q.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:E(q.apiResult.totalCost)})]})]}):null]})]}),q.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:q.discrepancies.map((O,B)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},B))})]})})]}),q.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(q.apiRawResponse,null,2)})})]}),q.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(q.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:q.testCase.environment,config:q.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(jN,{children:o.jsxs(wi,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(wi,{index:!0,element:o.jsx(u8,{})}),o.jsx(wi,{path:"calculator",element:o.jsx(X_,{})}),o.jsx(wi,{path:"calculator/:id",element:o.jsx(X_,{})}),o.jsx(wi,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(wi,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();rf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(DN,{children:[o.jsx(A8,{}),o.jsx(EP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-DbJplJU1.js b/lakemeter/backend/static/assets/index-DbJplJU1.js new file mode 100644 index 00000000..f211f8ce --- /dev/null +++ b/lakemeter/backend/static/assets/index-DbJplJU1.js @@ -0,0 +1,354 @@ +function s2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var ps=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var nb={exports:{}},Wu={},rb={exports:{}},qe={};/** + * @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 pl=Symbol.for("react.element"),i2=Symbol.for("react.portal"),o2=Symbol.for("react.fragment"),a2=Symbol.for("react.strict_mode"),l2=Symbol.for("react.profiler"),c2=Symbol.for("react.provider"),u2=Symbol.for("react.context"),d2=Symbol.for("react.forward_ref"),f2=Symbol.for("react.suspense"),p2=Symbol.for("react.memo"),m2=Symbol.for("react.lazy"),_x=Symbol.iterator;function h2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var sb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ib=Object.assign,ob={};function Oo(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||sb}Oo.prototype.isReactComponent={};Oo.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")};Oo.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Oo.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||sb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;ib(Xm,Oo.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,lb=Object.prototype.hasOwnProperty,Jm={current:null},cb={key:!0,ref:!0,__self:!0,__source:!0};function ub(e,t,n){var r,s={},i=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)lb.call(t,r)&&!cb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=B[de];if(0>>1;des(Ae,E))ws(Y,Ae)?(B[de]=Y,B[w]=E,de=w):(B[de]=Ae,B[be]=E,de=be);else if(ws(Y,E))B[de]=Y,B[w]=E,de=w;else break e}}return q}function s(B,q){var E=B.sortIndex-q.sortIndex;return E!==0?E:B.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,p=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=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){for(var q=n(u);q!==null;){if(q.callback===null)r(u);else if(q.startTime<=B)r(u),q.sortIndex=q.expirationTime,t(c,q);else break;q=n(u)}}function S(B){if(v=!1,_(B),!g)if(n(c)!==null)g=!0,ve(R);else{var q=n(u);q!==null&&oe(S,q.startTime-B)}}function R(B,q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var E=p;try{for(_(q),f=n(c);f!==null&&(!(f.expirationTime>q)||B&&!H());){var de=f.callback;if(typeof de=="function"){f.callback=null,p=f.priorityLevel;var pe=de(f.expirationTime<=q);q=e.unstable_now(),typeof pe=="function"?f.callback=pe:f===n(c)&&r(c),_(q)}else r(c);f=n(c)}if(f!==null)var A=!0;else{var be=n(u);be!==null&&oe(S,be.startTime-q),A=!1}return A}finally{f=null,p=E,h=!1}}var k=!1,T=null,D=-1,z=5,j=-1;function H(){return!(e.unstable_now()-jB||125de?(B.sortIndex=E,t(u,B),n(c)===null&&B===n(u)&&(v?(x(D),D=-1):v=!0,oe(S,E-de))):(B.sortIndex=pe,t(c,B),g||h||(g=!0,ve(R))),B},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(B){var q=p;return function(){var E=p;p=q;try{return B.apply(this,arguments)}finally{p=E}}}})(hb);mb.exports=hb;var j2=mb.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 N2=m,or=j2;function ee(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"),ip=Object.prototype.hasOwnProperty,P2=/^[: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]*$/,kx={},Sx={};function R2(e){return ip.call(Sx,e)?!0:ip.call(kx,e)?!1:P2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function T2(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 L2(e,t,n,r){if(t===null||typeof t>"u"||T2(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 Bn(e,t,n,r,s,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var gn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){gn[e]=new Bn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];gn[t]=new Bn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){gn[e]=new Bn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){gn[e]=new Bn(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){gn[e]=new Bn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){gn[e]=new Bn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){gn[e]=new Bn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){gn[e]=new Bn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){gn[e]=new Bn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);gn[t]=new Bn(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(eh,th);gn[t]=new Bn(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(eh,th);gn[t]=new Bn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){gn[e]=new Bn(e,1,!1,e.toLowerCase(),null,!1,!1)});gn.xlinkHref=new Bn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){gn[e]=new Bn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=gn.hasOwnProperty(t)?gn[t]:null;(s!==null?s.type!==0:r||!(2l||s[o]!==i[l]){var c=` +`+s[o].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{Fd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?da(e):""}function A2(e){switch(e.tag){case 5:return da(e.type);case 16:return da("Lazy");case 13:return da("Suspense");case 19:return da("SuspenseList");case 0:case 2:case 15:return e=Bd(e.type,!1),e;case 11:return e=Bd(e.type.render,!1),e;case 1:return e=Bd(e.type,!0),e;default:return""}}function cp(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 Qi:return"Fragment";case Ki:return"Portal";case op:return"Profiler";case rh:return"StrictMode";case ap:return"Suspense";case lp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case vb:return(e.displayName||"Context")+".Consumer";case xb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cp(e.type)||"Memo";case Os:t=e._payload,e=e._init;try{return cp(e(t))}catch{}}return null}function D2(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 cp(t);case 8:return t===rh?"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 ti(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _b(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function M2(e){var t=_b(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){r=""+o,i.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 Kl(e){e._valueTracker||(e._valueTracker=M2(e))}function bb(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=_b(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 up(e,t){var n=t.checked;return Dt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ex(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ti(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 wb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function dp(e,t){wb(e,t);var n=ti(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")?fp(e,t.type,n):t.hasOwnProperty("defaultValue")&&fp(e,t.type,ti(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 fp(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var fa=Array.isArray;function po(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fa(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var va={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},O2=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(e){O2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),va[t]=va[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||va.hasOwnProperty(e)&&va[e]?(""+t).trim():t+"px"}function jb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var I2=Dt({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 hp(e,t){if(t){if(I2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gp(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 xp=null;function oh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vp=null,mo=null,ho=null;function Rx(e){if(e=gl(e)){if(typeof vp!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vp(e.stateNode,e.type,t))}}function Nb(e){mo?ho?ho.push(e):ho=[e]:mo=e}function Pb(){if(mo){var e=mo,t=ho;if(ho=mo=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(K2(e)/Q2|0)|0}var Yl=64,Xl=4194304;function pa(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~s;l!==0?r=pa(l):(i&=o,i!==0&&(r=pa(i)))}else o=n&~s,o!==0?r=pa(o):i!==0&&(r=pa(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 ml(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Lr(t),e[t]=n}function Z2(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=_a),Bx=" ",Ux=!1;function Qb(e,t){switch(e){case"keyup":return jj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Yb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Yi=!1;function Pj(e,t){switch(e){case"compositionend":return Yb(t);case"keypress":return t.which!==32?null:(Ux=!0,Bx);case"textInput":return e=t.data,e===Bx&&Ux?null:e;default:return null}}function Rj(e,t){if(Yi)return e==="compositionend"||!mh&&Qb(e,t)?(e=Gb(),Pc=dh=zs=null,Yi=!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=Hx(n)}}function e1(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?e1(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function t1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Bj(e){var t=t1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&e1(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var o=qx(n,r);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>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,Xi=null,Sp=null,wa=null,Cp=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cp||Xi==null||Xi!==Yc(r)||(r=Xi,"selectionStart"in r&&hh(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}),wa&&Ha(wa,r)||(wa=r,r=ru(Sp,"onSelect"),0eo||(e.current=Tp[eo],Tp[eo]=null,eo--)}function _t(e,t){eo++,Tp[eo]=e.current,e.current=t}var ni={},En=oi(ni),$n=oi(!1),Ai=ni;function wo(e,t){var n=e.type.contextTypes;if(!n)return ni;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Hn(e){return e=e.childContextTypes,e!=null}function iu(){wt($n),wt(En)}function Zx(e,t,n){if(En.current!==ni)throw Error(ee(168));_t(En,t),_t($n,n)}function u1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,D2(e)||"Unknown",s));return Dt({},n,r)}function ou(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ni,Ai=En.current,_t(En,e),_t($n,$n.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=u1(e,t,Ai),r.__reactInternalMemoizedMergedChildContext=e,wt($n),wt(En),_t(En,e)):wt($n),_t($n,n)}var us=null,Ju=!1,Zd=!1;function d1(e){us===null?us=[e]:us.push(e)}function Xj(e){Ju=!0,d1(e)}function ai(){if(!Zd&&us!==null){Zd=!0;var e=0,t=ut;try{var n=us;for(ut=1;e>=o,s-=o,hs=1<<32-Lr(t)+s|n<D?(z=T,T=null):z=T.sibling;var j=p(x,T,_[D],S);if(j===null){T===null&&(T=z);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),k===null?R=j:k.sibling=j,k=j,T=z}if(D===_.length)return n(x,T),jt&&vi(x,D),R;if(T===null){for(;D<_.length;D++)T=f(x,_[D],S),T!==null&&(y=i(T,y,D),k===null?R=T:k.sibling=T,k=T);return jt&&vi(x,D),R}for(T=r(x,T);D<_.length;D++)z=h(T,x,D,_[D],S),z!==null&&(e&&z.alternate!==null&&T.delete(z.key===null?D:z.key),y=i(z,y,D),k===null?R=z:k.sibling=z,k=z);return e&&T.forEach(function(H){return t(x,H)}),jt&&vi(x,D),R}function v(x,y,_,S){var R=Jo(_);if(typeof R!="function")throw Error(ee(150));if(_=R.call(_),_==null)throw Error(ee(151));for(var k=R=null,T=y,D=y=0,z=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?(z=T,T=null):z=T.sibling;var H=p(x,T,j.value,S);if(H===null){T===null&&(T=z);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),k===null?R=H:k.sibling=H,k=H,T=z}if(j.done)return n(x,T),jt&&vi(x,D),R;if(T===null){for(;!j.done;D++,j=_.next())j=f(x,j.value,S),j!==null&&(y=i(j,y,D),k===null?R=j:k.sibling=j,k=j);return jt&&vi(x,D),R}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,S),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),k===null?R=j:k.sibling=j,k=j);return e&&T.forEach(function(X){return t(x,X)}),jt&&vi(x,D),R}function b(x,y,_,S){if(typeof _=="object"&&_!==null&&_.type===Qi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var R=_.key,k=y;k!==null;){if(k.key===R){if(R=_.type,R===Qi){if(k.tag===7){n(x,k.sibling),y=s(k,_.props.children),y.return=x,x=y;break e}}else if(k.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Os&&r0(R)===k.type){n(x,k.sibling),y=s(k,_.props),y.ref=ra(x,k,_),y.return=x,x=y;break e}n(x,k);break}else t(x,k);k=k.sibling}_.type===Qi?(y=Ri(_.props.children,x.mode,S,_.key),y.return=x,x=y):(S=Ic(_.type,_.key,_.props,null,x.mode,S),S.ref=ra(x,y,_),S.return=x,x=S)}return o(x);case Ki:e:{for(k=_.key;y!==null;){if(y.key===k)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=lf(_,x.mode,S),y.return=x,x=y}return o(x);case Os:return k=_._init,b(x,y,k(_._payload),S)}if(fa(_))return g(x,y,_,S);if(Jo(_))return v(x,y,_,S);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=af(_,x.mode,S),y.return=x,x=y),o(x)):n(x,y)}return b}var So=h1(!0),g1=h1(!1),cu=oi(null),uu=null,ro=null,yh=null;function _h(){yh=ro=uu=null}function bh(e){var t=cu.current;wt(cu),e._currentValue=t}function Dp(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 xo(e,t){uu=e,yh=ro=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(zn=!0),e.firstContext=null)}function _r(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ro===null){if(uu===null)throw Error(ee(308));ro=e,uu.dependencies={lanes:0,firstContext:e}}else ro=ro.next=e;return t}var Ci=null;function wh(e){Ci===null?Ci=[e]:Ci.push(e)}function x1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,ks(e,r)}function ks(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 Is=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function v1(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 xs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ys(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,ks(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,ks(e,n)}function Tc(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=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};i===null?s=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Is=!1;var i=s.firstBaseUpdate,o=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?i=u:o.next=u,o=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var f=s.baseState;o=0,d=u=c=null,l=i;do{var p=l.lane,h=l.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(p=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){f=g.call(h,f,p);break e}f=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,p=typeof g=="function"?g.call(h,f,p):g,p==null)break e;f=Dt({},f,p);break e;case 2:Is=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=s.effects,p===null?s.effects=[l]:p.push(l))}else h={eventTime:h,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=f):d=d.next=h,o|=p;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;p=l,l=p.next,p.next=null,s.lastBaseUpdate=p,s.shared.pending=null}}while(!0);if(d===null&&(c=f),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do o|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Oi|=o,e.lanes=o,e.memoizedState=f}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tf.transition;tf.transition={};try{e(!1),t()}finally{ut=n,tf.transition=r}}function M1(){return br().memoizedState}function t5(e,t,n){var r=Js(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},O1(e))I1(t,n);else if(n=x1(e,t,n,r),n!==null){var s=In();Ar(n,e,r,s),F1(n,t,r)}}function n5(e,t,n){var r=Js(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(O1(e))I1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,n);if(s.hasEagerState=!0,s.eagerState=l,Mr(l,o)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=x1(e,t,s,r),n!==null&&(s=In(),Ar(n,e,r,s),F1(n,t,r))}}function O1(e){var t=e.alternate;return e===At||t!==null&&t===At}function I1(e,t){ka=pu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function F1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:_r,useCallback:yn,useContext:yn,useEffect:yn,useImperativeHandle:yn,useInsertionEffect:yn,useLayoutEffect:yn,useMemo:yn,useReducer:yn,useRef:yn,useState:yn,useDebugValue:yn,useDeferredValue:yn,useTransition:yn,useMutableSource:yn,useSyncExternalStore:yn,useId:yn,unstable_isNewReconciler:!1},r5={readContext:_r,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:_r,useEffect:a0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ac(4194308,4,R1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ac(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ac(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=t5.bind(null,At,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:o0,useDebugValue:Th,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=o0(!1),t=e[0];return e=e5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=At,s=qr();if(jt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),dn===null)throw Error(ee(349));Mi&30||w1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,a0(S1.bind(null,r,i,e),[e]),r.flags|=2048,Ja(9,k1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=dn.identifierPrefix;if(jt){var n=gs,r=hs;n=(r&~(1<<32-Lr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ya++,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[Gr]=t,e[Ga]=r,K1(e,t,!1,!1),t.stateNode=e;e:{switch(o=gp(n,r),n){case"dialog":bt("cancel",e),bt("close",e),s=r;break;case"iframe":case"object":case"embed":bt("load",e),s=r;break;case"video":case"audio":for(s=0;sjo&&(t.flags|=128,r=!0,sa(i,!1),t.lanes=4194304)}else{if(!r)if(e=fu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),sa(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!jt)return _n(t),null}else 2*$t()-i.renderingStartTime>jo&&n!==1073741824&&(t.flags|=128,r=!0,sa(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=$t(),t.sibling=null,n=Tt.current,_t(Tt,r?n&1|2:n&1),t):(_n(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?er&1073741824&&(_n(t),t.subtreeFlags&6&&(t.flags|=8192)):_n(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function d5(e,t){switch(xh(t),t.tag){case 1:return Hn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Co(),wt($n),wt(En),Eh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ch(t),null;case 13:if(wt(Tt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));ko()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return wt(Tt),null;case 4:return Co(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var oc=!1,wn=!1,f5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function so(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Ft(e,t,r)}else n.current=null}function $p(e,t,n){try{n()}catch(r){Ft(e,t,r)}}var v0=!1;function p5(e,t){if(Ep=tu,e=t1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=e,p=null;t:for(;;){for(var h;f!==n||s!==0&&f.nodeType!==3||(l=o+s),f!==i||r!==0&&f.nodeType!==3||(c=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(h=f.firstChild)!==null;)p=f,f=h;for(;;){if(f===e)break t;if(p===n&&++u===s&&(l=o),p===i&&++d===r&&(c=o),(h=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jp={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Nr(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(S){Ft(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Sa(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$p(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hp(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 X1(e){var t=e.alternate;t!==null&&(e.alternate=null,X1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Ga],delete t[Rp],delete t[Qj],delete t[Yj])),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 J1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||J1(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 qp(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=su));else if(r!==4&&(e=e.child,e!==null))for(qp(e,t,n),e=e.sibling;e!==null;)qp(e,t,n),e=e.sibling}function Wp(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(Wp(e,t,n),e=e.sibling;e!==null;)Wp(e,t,n),e=e.sibling}var pn=null,Rr=!1;function As(e,t,n){for(n=n.child;n!==null;)Z1(e,t,n),n=n.sibling}function Z1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:wn||so(n,t);case 6:var r=pn,s=Rr;pn=null,As(e,t,n),pn=r,Rr=s,pn!==null&&(Rr?(e=pn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):pn.removeChild(n.stateNode));break;case 18:pn!==null&&(Rr?(e=pn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),za(e)):Jd(pn,n.stateNode));break;case 4:r=pn,s=Rr,pn=n.stateNode.containerInfo,Rr=!0,As(e,t,n),pn=r,Rr=s;break;case 0:case 11:case 14:case 15:if(!wn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&$p(n,t,o),s=s.next}while(s!==r)}As(e,t,n);break;case 1:if(!wn&&(so(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Ft(n,t,l)}As(e,t,n);break;case 21:As(e,t,n);break;case 22:n.mode&1?(wn=(r=wn)||n.memoizedState!==null,As(e,t,n),wn=r):As(e,t,n);break;default:As(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new f5),t.forEach(function(r){var s=w5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Er(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=o),r&=~i}if(r=s,r=$t()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*h5(r/1960))-r,10e?16:e,$s===null)var r=!1;else{if(e=$s,$s=null,xu=0,Je&6)throw Error(ee(331));var s=Je;for(Je|=4,ge=e.current;ge!==null;){var i=ge,o=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;c$t()-Mh?Pi(e,0):Dh|=n),qn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=ks(e,t),e!==null&&(ml(e,t,n),qn(e,n))}function b5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function w5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var lw;lw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||$n.current)zn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return zn=!1,c5(e,t,n);zn=!!(e.flags&131072)}else zn=!1,jt&&t.flags&1048576&&f1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=wo(t,En.current);xo(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Hn(r)?(i=!0,ou(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Op(t,r,e,n),t=Bp(null,t,r,!0,i,n)):(t.tag=0,jt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=S5(r),e=Nr(r,e),s){case 0:t=Fp(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=p0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Nr(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),Fp(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),h0(e,t,r,s,n);case 3:e:{if(q1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,v1(e,t),du(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=Eo(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=Eo(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(nr=Qs(t.stateNode.containerInfo.firstChild),rr=t,jt=!0,Tr=null,n=g1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ko(),r===s){t=Ss(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return y1(t),e===null&&Ap(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,o=s.children,Np(r,s)?o=null:i!==null&&Np(r,i)&&(t.flags|=32),H1(e,t),Mn(e,t,o,n),t.child;case 6:return e===null&&Ap(t),null;case 13:return W1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=So(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),p0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,o=s.value,_t(cu,r._currentValue),r._currentValue=o,i!==null)if(Mr(i.value,o)){if(i.children===s.children&&!$n.current){t=Ss(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=xs(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Dp(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(ee(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Dp(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,xo(t,n),s=_r(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Nr(r,t.pendingProps),s=Nr(r.type,s),m0(e,t,r,s,n);case 15:return z1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),Dc(e,t),t.tag=1,Hn(r)?(e=!0,ou(t)):e=!1,xo(t,n),B1(t,r,s),Op(t,r,s,n),Bp(null,t,r,!0,e,n);case 19:return G1(e,t,n);case 22:return $1(e,t,n)}throw Error(ee(156,t.tag))};function cw(e,t){return Ob(e,t)}function k5(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 vr(e,t,n,r){return new k5(e,t,n,r)}function Bh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function S5(e){if(typeof e=="function")return Bh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function Zs(e,t){var n=e.alternate;return n===null?(n=vr(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 Ic(e,t,n,r,s,i){var o=2;if(r=e,typeof e=="function")Bh(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Qi:return Ri(n.children,s,i,t);case rh:o=8,s|=8;break;case op:return e=vr(12,n,t,s|2),e.elementType=op,e.lanes=i,e;case ap:return e=vr(13,n,t,s),e.elementType=ap,e.lanes=i,e;case lp:return e=vr(19,n,t,s),e.elementType=lp,e.lanes=i,e;case yb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case xb:o=10;break e;case vb:o=9;break e;case sh:o=11;break e;case ih:o=14;break e;case Os:o=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=vr(o,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ri(e,t,n,r){return e=vr(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=vr(22,e,r,t),e.elementType=yb,e.lanes=n,e.stateNode={isHidden:!1},e}function af(e,t,n){return e=vr(6,e,null,t),e.lanes=n,e}function lf(e,t,n){return t=vr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function C5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,o,l,c){return e=new C5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=vr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function E5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=lr;var oo=pb.exports,N0=oo;sp.createRoot=N0.createRoot,sp.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 el(){return el=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function L5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xp(e,t,n,r){return n===void 0&&(n=null),el({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Bo(t):t,{state:n,key:t&&t.key||r||L5()})}function _u(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 Bo(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 A5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,o=s.history,l=Hs.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(el({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function f(){l=Hs.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function p(b,x){l=Hs.Push;let y=Xp(v.location,b,x);u=d()+1;let _=R0(y,u),S=v.createHref(y);try{o.pushState(_,"",S)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;s.location.assign(S)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Hs.Replace;let y=Xp(v.location,b,x);u=d();let _=R0(y,u),S=v.createHref(y);o.replaceState(_,"",S),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Qt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,o)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,f),c=b,()=>{s.removeEventListener(P0,f),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:p,replace:h,go(b){return o.go(b)}};return v}var T0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(T0||(T0={}));function D5(e,t,n){return n===void 0&&(n="/"),M5(e,t,n)}function M5(e,t,n,r){let s=typeof t=="string"?Bo(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let o=mw(e);O5(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};c.relativePath.startsWith("/")&&(Qt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ei([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Qt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),mw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:$5(u,i.index),routesMeta:d})};return e.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,o);else for(let c of hw(i.path))s(i,o,c)}),t}function hw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let o=hw(r.join("/")),l=[];return l.push(...o.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function O5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:H5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const I5=/^:[\w-]+$/,F5=3,B5=2,U5=1,V5=10,z5=-2,L0=e=>e==="*";function $5(e,t){let n=e.split("/"),r=n.length;return n.some(L0)&&(r+=z5),t&&(r+=B5),n.filter(s=>!L0(s)).reduce((s,i)=>s+(I5.test(i)?F5:i===""?U5:V5),r)}function H5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function q5(e,t,n){let{routesMeta:r}=e,s={},i="/",o=[];for(let l=0;l{let{paramName:p,isOptional:h}=d;if(p==="*"){let v=l[f]||"";o=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[f];return h&&!g?u[p]=void 0:u[p]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function G5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function K5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 Q5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Y5=e=>Q5.test(e);function X5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Bo(e):e,i;if(n)if(Y5(n))i=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?i=A0(n.substring(1),"/"):i=A0(n,t)}else i=t;return{pathname:i,search:eN(r),hash:tN(s)}}function A0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function cf(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 J5(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function gw(e,t){let n=J5(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function xw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Bo(e):(s=el({},e),Qt(!s.pathname||!s.pathname.includes("?"),cf("?","pathname","search",s)),Qt(!s.pathname||!s.pathname.includes("#"),cf("#","pathname","hash",s)),Qt(!s.search||!s.search.includes("#"),cf("#","search","hash",s)));let i=e===""||s.pathname==="",o=i?"/":s.pathname,l;if(o==null)l=n;else{let f=t.length-1;if(!r&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),f-=1;s.pathname=p.join("/")}l=f>=0?t[f]:"/"}let c=X5(s,l),u=o&&o!=="/"&&o.endsWith("/"),d=(i||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ei=e=>e.join("/").replace(/\/\/+/g,"/"),Z5=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),eN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,tN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function nN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const vw=["post","put","patch","delete"];new Set(vw);const rN=["get",...vw];new Set(rN);/** + * React Router v6.30.2 + * + * 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 tl(){return tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=xw(u,JSON.parse(o),i,d.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:ei([t,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[t,r,o,i,e])}const aN=m.createContext(null);function lN(e){let t=m.useContext(Ns).outlet;return t&&m.createElement(aN.Provider,{value:e},t)}function bw(){let{matches:e}=m.useContext(Ns),t=e[e.length-1];return t?t.params:{}}function ww(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(zi),{matches:s}=m.useContext(Ns),{pathname:i}=yl(),o=JSON.stringify(gw(s,r.v7_relativeSplatPath));return m.useMemo(()=>xw(e,JSON.parse(o),i,n==="path"),[e,o,i,n])}function cN(e,t){return uN(e,t)}function uN(e,t,n,r){vl()||Qt(!1);let{navigator:s}=m.useContext(zi),{matches:i}=m.useContext(Ns),o=i[i.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=yl(),d;if(t){var f;let b=typeof t=="string"?Bo(t):t;c==="/"||(f=b.pathname)!=null&&f.startsWith(c)||Qt(!1),d=b}else d=u;let p=d.pathname||"/",h=p;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+p.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=D5(e,{pathname:h}),v=hN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ei([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ei([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:tl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Hs.Pop}},v):v}function dN(){let e=yN(),t=nN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const fN=m.createElement(dN,null);class pN extends m.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?m.createElement(Ns.Provider,{value:this.props.routeContext},m.createElement(yw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function mN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Ns.Provider,{value:t},r)}function hN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Qt(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,f,p)=>{let h,g=!1,v=null,b=null;n&&(h=l&&f.route.id?l[f.route.id]:void 0,v=f.route.errorElement||fN,c&&(u<0&&p===0?(bN("route-fallback"),g=!0,b=null):u===p&&(g=!0,b=f.route.hydrateFallbackElement||null)));let x=t.concat(o.slice(0,p+1)),y=()=>{let _;return h?_=v:g?_=b:f.route.Component?_=m.createElement(f.route.Component,null):f.route.element?_=f.route.element:_=d,m.createElement(mN,{match:f,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?m.createElement(pN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var kw=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(kw||{}),Sw=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}(Sw||{});function gN(e){let t=m.useContext(Wh);return t||Qt(!1),t}function xN(e){let t=m.useContext(sN);return t||Qt(!1),t}function vN(e){let t=m.useContext(Ns);return t||Qt(!1),t}function Cw(e){let t=vN(),n=t.matches[t.matches.length-1];return n.route.id||Qt(!1),n.route.id}function yN(){var e;let t=m.useContext(yw),n=xN(),r=Cw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function _N(){let{router:e}=gN(kw.UseNavigateStable),t=Cw(Sw.UseNavigateStable),n=m.useRef(!1);return _w(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,tl({fromRouteId:t},i)))},[e,t])}const D0={};function bN(e,t,n){D0[e]||(D0[e]=!0)}function wN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function kN(e){return lN(e.context)}function _i(e){Qt(!1)}function SN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Hs.Pop,navigator:i,static:o=!1,future:l}=e;vl()&&Qt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:o,future:tl({v7_relativeSplatPath:!1},l)}),[c,l,i,o]);typeof r=="string"&&(r=Bo(r));let{pathname:d="/",search:f="",hash:p="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:f,hash:p,state:h,key:g},navigationType:s}},[c,d,f,p,h,g,s]);return v==null?null:m.createElement(zi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function CN(e){let{children:t,location:n}=e;return cN(Jp(t),n)}new Promise(()=>{});function Jp(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jp(r.props.children,i));return}r.type!==_i&&Qt(!1),!r.props.index||!r.props.children||Qt(!1);let o={id:r.props.id||i.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=Jp(r.props.children,i)),n.push(o)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zp(){return Zp=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function jN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function NN(e,t){return e.button===0&&(!t||t==="_self")&&!jN(e)}const PN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],RN="6";try{window.__reactRouterVersion=RN}catch{}const TN="startTransition",M0=_2[TN];function LN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=T5({window:s,v5Compat:!0}));let o=i.current,[l,c]=m.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=m.useCallback(f=>{u&&M0?M0(()=>c(f)):c(f)},[c,u]);return m.useLayoutEffect(()=>o.listen(d),[o,d]),m.useEffect(()=>wN(r),[r]),m.createElement(SN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const AN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",DN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:f}=t,p=EN(t,PN),{basename:h}=m.useContext(zi),g,v=!1;if(typeof u=="string"&&DN.test(u)&&(g=u,AN))try{let _=new URL(window.location.href),S=u.startsWith("//")?new URL(_.protocol+u):new URL(u),R=qh(S.pathname,h);S.origin===_.origin&&R!=null?u=R+S.search+S.hash:v=!0}catch{}let b=iN(u,{relative:s}),x=MN(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:f});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zp({},p,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function MN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:o,viewTransition:l}=t===void 0?{}:t,c=cd(),u=yl(),d=ww(e,{relative:o});return m.useCallback(f=>{if(NN(f,n)){f.preventDefault();let p=r!==void 0?r:_u(u)===_u(d);c(e,{replace:p,state:s,preventScrollReset:i,relative:o,viewTransition:l})}},[u,c,d,r,s,n,e,i,o,l])}let ON={data:""},IN=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||ON},FN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,BN=/\/\*[^]*?\*\/| +/g,F0=/\n+/g,Vs=(e,t)=>{let n="",r="",s="";for(let i in e){let o=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+o+";":r+=i[1]=="f"?Vs(o,i):i+"{"+Vs(o,i[1]=="k"?"":t)+"}":typeof o=="object"?r+=Vs(o,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):o!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=Vs.p?Vs.p(i,o):i+":"+o+";")}return n+(t&&s?t+"{"+s+"}":s)+r},os={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},UN=(e,t,n,r,s)=>{let i=Ew(e),o=os[i]||(os[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!os[o]){let c=i!==e?e:(u=>{let d,f,p=[{}];for(;d=FN.exec(u.replace(BN,""));)d[4]?p.shift():d[3]?(f=d[3].replace(F0," ").trim(),p.unshift(p[0][f]=p[0][f]||{})):p[0][d[1]]=d[2].replace(F0," ").trim();return p[0]})(e);os[o]=Vs(s?{["@keyframes "+o]:c}:c,n?"":"."+o)}let l=n&&os.g?os.g:null;return n&&(os.g=os[o]),((c,u,d,f)=>{f?u.data=u.data.replace(f,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(os[o],t,r,l),o},VN=(e,t,n)=>e.reduce((r,s,i)=>{let o=t[i];if(o&&o.call){let l=o(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;o=c?"."+c:l&&typeof l=="object"?l.props?"":Vs(l,""):l===!1?"":l}return r+s+(o??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return UN(n.unshift?n.raw?VN(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,IN(t.target),t.g,t.o,t.k)}let jw,em,tm;ud.bind({g:1});let Cs=ud.bind({k:1});function zN(e,t,n,r){Vs.p=t,jw=e,em=n,tm=r}function li(e,t){let n=this||{};return function(){let r=arguments;function s(i,o){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),jw(u,l)}return s}}var $N=e=>typeof e=="function",wu=(e,t)=>$N(e)?e(t):e,HN=(()=>{let e=0;return()=>(++e).toString()})(),Nw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),qN=20,Gh="default",Pw=(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 Pw(e,{type:e.toasts.find(o=>o.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(o=>o.id===s||s===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 i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+i}))}}},Fc=[],Rw={toasts:[],pausedAt:void 0,settings:{toastLimit:qN}},Kr={},Tw=(e,t=Gh)=>{Kr[t]=Pw(Kr[t]||Rw,e),Fc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Lw=e=>Object.keys(Kr).forEach(t=>Tw(e,t)),WN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Tw(t,e)},GN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},KN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Rw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Fc.push([t,r]),()=>{let o=Fc.findIndex(([l])=>l===t);o>-1&&Fc.splice(o,1)}),[t]);let i=n.toasts.map(o=>{var l,c,u;return{...e,...e[o.type],...o,removeDelay:o.removeDelay||((l=e[o.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:o.duration||((c=e[o.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||GN[o.type],style:{...e.style,...(u=e[o.type])==null?void 0:u.style,...o.style}}});return{...n,toasts:i}},QN=(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)||HN()}),_l=e=>(t,n)=>{let r=QN(t,e,n);return dd(r.toasterId||WN(r.id))({type:2,toast:r}),r.id},rn=(e,t)=>_l("blank")(e,t);rn.error=_l("error");rn.success=_l("success");rn.loading=_l("loading");rn.custom=_l("custom");rn.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Lw(n)};rn.dismissAll=e=>rn.dismiss(void 0,e);rn.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Lw(n)};rn.removeAll=e=>rn.remove(void 0,e);rn.promise=(e,t,n)=>{let r=rn.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?rn.success(i,{id:r,...n,...n==null?void 0:n.success}):rn.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?rn.error(i,{id:r,...n,...n==null?void 0:n.error}):rn.dismiss(r)}),e};var YN=1e3,XN=(e,t="default")=>{let{toasts:n,pausedAt:r}=KN(e,t),s=m.useRef(new Map).current,i=m.useCallback((f,p=YN)=>{if(s.has(f))return;let h=setTimeout(()=>{s.delete(f),o({type:4,toastId:f})},p);s.set(f,h)},[]);m.useEffect(()=>{if(r)return;let f=Date.now(),p=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(f-h.createdAt);if(g<0){h.visible&&rn.dismiss(h.id);return}return setTimeout(()=>rn.dismiss(h.id,t),g)});return()=>{p.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let o=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{o({type:5,time:Date.now()})},[o]),c=m.useCallback((f,p)=>{o({type:1,toast:{id:f,height:p}})},[o]),u=m.useCallback(()=>{r&&o({type:6,time:Date.now()})},[r,o]),d=m.useCallback((f,p)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=p||{},b=n.filter(_=>(_.position||v)===(f.position||v)&&_.height),x=b.findIndex(_=>_.id===f.id),y=b.filter((_,S)=>S_.visible).slice(...h?[y+1]:[0,y]).reduce((_,S)=>_+(S.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(f=>{if(f.dismissed)i(f.id,f.removeDelay);else{let p=s.get(f.id);p&&(clearTimeout(p),s.delete(f.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},JN=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,ZN=Cs` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,eP=Cs` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,tP=li("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${JN} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${ZN} 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: ${eP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,nP=Cs` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,rP=li("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: ${nP} 1s linear infinite; +`,sP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,iP=Cs` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,oP=li("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${sP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${iP} 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; + } +`,aP=li("div")` + position: absolute; +`,lP=li("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,cP=Cs` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,uP=li("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${cP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,dP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(uP,null,t):t:n==="blank"?null:m.createElement(lP,null,m.createElement(rP,{...r}),n!=="loading"&&m.createElement(aP,null,n==="error"?m.createElement(tP,{...r}):m.createElement(oP,{...r})))},fP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,pP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,mP="0%{opacity:0;} 100%{opacity:1;}",hP="0%{opacity:1;} 100%{opacity:0;}",gP=li("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; +`,xP=li("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,vP=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=Nw()?[mP,hP]:[fP(n),pP(n)];return{animation:t?`${Cs(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Cs(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},yP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?vP(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(dP,{toast:e}),o=m.createElement(xP,{...e.ariaProps},wu(e.message,e));return m.createElement(gP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:o}):m.createElement(m.Fragment,null,i,o))});zN(m.createElement);var _P=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(o=>{if(o){let l=()=>{let c=o.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},bP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:Nw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},wP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,kP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:o,containerClassName:l})=>{let{toasts:c,handlers:u}=XN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...o},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let f=d.position||t,p=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=bP(f,p);return m.createElement(_P,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?wP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(yP,{toast:d,position:f}))}))},$e=rn;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const fd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class SP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function CP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:o,height:l,top:c,left:u}=s.current;if(t||!r.current||!o||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${o}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),a.jsx(SP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const EP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:o})=>{const l=Qh(jP),c=m.useId(),u=m.useCallback(f=>{l.set(f,!0);for(const p of l.values())if(!p)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:f=>(l.set(f,!1),()=>l.delete(f))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((f,p)=>l.set(p,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),o==="popLayout"&&(e=a.jsx(CP,{isPresent:n,children:e})),a.jsx(fd.Provider,{value:d,children:e})};function jP(){return new Map}function Aw(e=!0){const t=m.useContext(fd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const o=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,o]:[!0]}const uc=e=>e.key||"";function B0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Dw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:o=!1})=>{const[l,c]=Aw(o),u=m.useMemo(()=>B0(e),[e]),d=o&&!l?[]:u.map(uc),f=m.useRef(!0),p=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Dw(()=>{f.current=!1,p.current=u;for(let S=0;S{const R=uc(S),k=o&&!l?!1:u===b||d.includes(R),T=()=>{if(h.has(R))h.set(R,!0);else return;let D=!0;h.forEach(z=>{z||(D=!1)}),D&&(_==null||_(),x(p.current),o&&(c==null||c()),r&&r())};return a.jsx(EP,{isPresent:k,initial:!f.current||n?void 0:!1,custom:k?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:k?void 0:T,children:S},R)})})},sr=e=>e;let Mw=sr;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const No=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},vs=e=>e*1e3,ys=e=>e/1e3,NP={useManualTiming:!1};function PP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(o)}const c={schedule:(u,d=!1,f=!1)=>{const h=f&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(o=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],RP=40;function Ow(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,o=dc.reduce((x,y)=>(x[y]=PP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:f,postRender:p}=o,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,RP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),f.process(s),p.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=o[y];return x[y]=(S,R=!1,k=!1)=>(n||g(),_.schedule(S,R,k)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function TP(e){for(const t in e)Po[t]={...Po[t],...e[t]}}const LP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||LP.has(e)}let Fw=e=>!ku(e);function AP(e){e&&(Fw=t=>t.startsWith("on")?!ku(t):e(t))}try{AP(require("@emotion/is-prop-valid").default)}catch{}function DP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Fw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function MP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const pd=m.createContext({});function nl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>nl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function OP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||nl(n)?n:void 0,animate:nl(r)?r:void 0}}return e.inherit!==!1?t:{}}function IP(e){const{initial:t,animate:n}=OP(e,m.useContext(pd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const FP=Symbol.for("motionComponentSymbol");function ao(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function BP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ao(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),UP="framerAppearId",Uw="data-"+tg(UP),{schedule:ng}=Ow(queueMicrotask,!1),Vw=m.createContext({});function VP(e,t,n,r,s){var i,o;const{visualElement:l}=m.useContext(pd),c=m.useContext(Iw),u=m.useContext(fd),d=m.useContext(Yh).reducedMotion,f=m.useRef(null);r=r||c.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const p=f.current,h=m.useContext(Vw);p&&!p.projection&&s&&(p.type==="html"||p.type==="svg")&&zP(f.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{p&&g.current&&p.update(n,u)});const v=n[Uw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,v)));return Dw(()=>{p&&(g.current=!0,window.MotionIsMounted=!0,p.updateFeatures(),ng.render(p.render),b.current&&p.animationState&&p.animationState.animateChanges())}),m.useEffect(()=>{p&&(!b.current&&p.animationState&&p.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),p}function zP(e,t,n,r){const{layoutId:s,layout:i,drag:o,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:zw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!o||l&&ao(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function zw(e){if(e)return e.options.allowProjection!==!1?e.projection:zw(e.parent)}function $P({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,o;e&&TP(e);function l(u,d){let f;const p={...m.useContext(Yh),...u,layoutId:HP(u)},{isStatic:h}=p,g=IP(u),v=r(u,h);if(!h&&Xh){qP();const b=WP(p);f=b.MeasureLayout,g.visualElement=VP(s,v,p,t,b.ProjectionNode)}return a.jsxs(pd.Provider,{value:g,children:[f&&g.visualElement?a.jsx(f,{visualElement:g.visualElement,...p}):null,n(s,u,BP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(o=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&o!==void 0?o:""})`}`;const c=m.forwardRef(l);return c[FP]=s,c}function HP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function qP(e,t){m.useContext(Iw).strict}function WP(e){const{drag:t,layout:n}=Po;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const GP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(GP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),KP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),QP=e=>rm(e)?e[e.length-1]||0:e,Sn=e=>!!(e&&e.getVelocity);function Bc(e){const t=Sn(e)?e.get():e;return KP(t)?t.toValue():t}function YP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const o={latestValues:XP(r,s,i,e),renderState:t()};return n&&(o.onMount=l=>n({props:r,current:l,...o}),o.onUpdate=l=>n(l)),o}const $w=e=>(t,n)=>{const r=m.useContext(pd),s=m.useContext(fd),i=()=>YP(e,t,r,s);return n?i():Qh(i)};function XP(e,t,n,r){const s={},i=r(e,{});for(const p in i)s[p]=Bc(i[p]);let{initial:o,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const f=d?l:o;if(f&&typeof f!="boolean"&&!md(f)){const p=Array.isArray(f)?f:[f];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),qw=Hw("--"),JP=Hw("var(--"),ig=e=>JP(e)?ZP.test(e.split("/*")[0].trim()):!1,ZP=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Ww=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Es=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},rl={...Vo,transform:e=>Es(0,1,e)},fc={...Vo,default:1},bl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Ms=bl("deg"),Jr=bl("%"),Re=bl("px"),eR=bl("vh"),tR=bl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},nR={borderWidth:Re,borderTopWidth:Re,borderRightWidth:Re,borderBottomWidth:Re,borderLeftWidth:Re,borderRadius:Re,radius:Re,borderTopLeftRadius:Re,borderTopRightRadius:Re,borderBottomRightRadius:Re,borderBottomLeftRadius:Re,width:Re,maxWidth:Re,height:Re,maxHeight:Re,top:Re,right:Re,bottom:Re,left:Re,padding:Re,paddingTop:Re,paddingRight:Re,paddingBottom:Re,paddingLeft:Re,margin:Re,marginTop:Re,marginRight:Re,marginBottom:Re,marginLeft:Re,backgroundPositionX:Re,backgroundPositionY:Re},rR={rotate:Ms,rotateX:Ms,rotateY:Ms,rotateZ:Ms,scale:fc,scaleX:fc,scaleY:fc,scaleZ:fc,skew:Ms,skewX:Ms,skewY:Ms,distance:Re,translateX:Re,translateY:Re,translateZ:Re,x:Re,y:Re,z:Re,perspective:Re,transformPerspective:Re,opacity:rl,originX:$0,originY:$0,originZ:Re},H0={...Vo,transform:Math.round},og={...nR,...rR,zIndex:H0,size:Re,fillOpacity:rl,strokeOpacity:rl,numOctaves:H0},sR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},iR=Uo.length;function oR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Gw=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Kw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Qw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Yw(e,t,n,r){Kw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Qw.has(s)?s:tg(s),t.attrs[s])}const Su={};function dR(e){Object.assign(Su,e)}function Xw(e,{layout:t,layoutId:n}){return $i.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const o in s)(Sn(s[o])||t.style&&Sn(t.style[o])||Xw(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[o]=s[o]);return i}function Jw(e,t,n){const r=dg(e,t,n);for(const s in e)if(Sn(e[s])||Sn(t[s])){const i=Uo.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function fR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],pR={useVisualState:$w({scrapeMotionValuesFromProps:Jw,createRenderState:Gw,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if($i.has(l)){i=!0;break}}if(!i)return;let o=!t;if(t)for(let l=0;l{fR(n,r),kt.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Yw(n,r)})})}})},mR={useVisualState:$w({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Zw(e,t,n){for(const r in t)!Sn(t[r])&&!Xw(r,n)&&(e[r]=t[r])}function hR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return ag(n,t,e),Object.assign({},n.vars,n.style)},[t])}function gR(e,t){const n=e.style||{},r={};return Zw(r,n,e),Object.assign(r,hR(e,t)),r}function xR(e,t){const n={},r=gR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function vR(e,t,n,r){const s=m.useMemo(()=>{const i=Gw();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Zw(i,e.style,e),s.style={...i,...s.style}}return s}function yR(e=!1){return(n,r,s,{latestValues:i},o)=>{const c=(rg(n)?vR:xR)(r,i,o,n),u=DP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:f}=r,p=m.useMemo(()=>Sn(f)?f.get():f,[f]);return m.createElement(n,{...d,children:p})}}function _R(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const o={...rg(r)?pR:mR,preloadedFeatures:e,useRender:yR(s),createVisualElement:t,Component:r};return $P(o)}}function ek(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class wR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(bR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class kR extends wR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function fg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function tk(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function pg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",SR={linearEasing:void 0};function CR(e,t){const n=Jh(e);return()=>{var r;return(r=SR[t])!==null&&r!==void 0?r:n()}}const Cu=CR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),nk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ha([0,.65,.55,1]),circOut:ha([.55,0,1,.45]),backIn:ha([.31,.01,.66,-.59]),backOut:ha([.33,1.53,.69,.99])};function sk(e,t){if(e)return typeof e=="function"&&Cu()?nk(e,t):mg(e)?ha(e):Array.isArray(e)?e.map(n=>sk(n,t)||im.easeOut):im[e]}const jr={x:!1,y:!1};function ik(){return jr.x||jr.y}function ER(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ok(e,t){const n=ER(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||ik()||e(t)}}function jR(e,t,n={}){const[r,s,i]=ok(e,n),o=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(f=>{u(f),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",o,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,NR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function PR(e){return NR.has(e.tagName)||e.tabIndex!==-1}const ga=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function df(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const RR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(ga.has(n))return;df(n,"down");const s=Q0(()=>{df(n,"up")}),i=()=>df(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!ik()}function TR(e,t,n={}){const[r,s,i]=ok(e,n),o=l=>{const c=l.currentTarget;if(!Y0(l)||ga.has(c))return;ga.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",p),!(!Y0(h)||!ga.has(c))&&(ga.delete(c),typeof u=="function"&&u(h,{success:g}))},f=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},p=h=>{d(h,!1)};window.addEventListener("pointerup",f,s),window.addEventListener("pointercancel",p,s)};return r.forEach(l=>{!PR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,s),l.addEventListener("focus",u=>RR(u,s),s)}),i}function LR(e){return e==="x"||e==="y"?jr[e]?null:(jr[e]=!0,()=>{jr[e]=!1}):jr.x||jr.y?null:(jr.x=jr.y=!0,()=>{jr.x=jr.y=!1})}const lk=new Set(["width","height","top","left","right","bottom",...Uo]);let Uc;function AR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(mn.isProcessing||NP.useManualTiming?mn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(AR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class MR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=DR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),kt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return ck(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function sl(e,t){return new MR(e,t)}function OR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,sl(n))}function IR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const o in i){const l=QP(i[o]);OR(e,o,l)}}function FR(e){return!!(Sn(e)&&e.add)}function om(e,t){const n=e.getValue("willChange");if(FR(n))return n.add(t)}function uk(e){return e.props[Uw]}const dk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,BR=1e-7,UR=12;function VR(e,t,n,r,s){let i,o,l=0;do o=t+(n-t)/2,i=dk(o,r,s)-e,i>0?n=o:t=o;while(Math.abs(i)>BR&&++lVR(i,0,1,e,n);return i=>i===0||i===1?i:dk(s(i),t,r)}const fk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),mk=wl(.33,1.53,.69,.99),yg=pk(mk),hk=fk(yg),gk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),xk=pk(_g),vk=fk(_g),yk=e=>/^0[^.\s]+$/u.test(e);function zR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||yk(e):!0}const ja=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function $R(e){return e==null}const HR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&HR.test(n)&&n.startsWith(e)||t&&!$R(n)&&Object.prototype.hasOwnProperty.call(n,t)),_k=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,o,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},qR=e=>Es(0,255,e),ff={...Vo,transform:e=>Math.round(qR(e))},ji={test:wg("rgb","red"),parse:_k("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+ff.transform(e)+", "+ff.transform(t)+", "+ff.transform(n)+", "+ja(rl.transform(r))+")"};function WR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const am={test:wg("#"),parse:WR,transform:ji.transform},lo={test:wg("hsl","hue"),parse:_k("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(ja(t))+", "+Jr.transform(ja(n))+", "+ja(rl.transform(r))+")"},bn={test:e=>ji.test(e)||am.test(e)||lo.test(e),parse:e=>ji.test(e)?ji.parse(e):lo.test(e)?lo.parse(e):am.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ji.transform(e):lo.transform(e)},GR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function KR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(GR))===null||n===void 0?void 0:n.length)||0)>0}const bk="number",wk="color",QR="var",YR="var(",J0="${}",XR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function il(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(XR,c=>(bn.test(c)?(r.color.push(i),s.push(wk),n.push(bn.parse(c))):c.startsWith(YR)?(r.var.push(i),s.push(QR),n.push(c)):(r.number.push(i),s.push(bk),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function kk(e){return il(e).values}function Sk(e){const{split:t,types:n}=il(e),r=t.length;return s=>{let i="";for(let o=0;otypeof e=="number"?0:e;function ZR(e){const t=kk(e);return Sk(e)(t.map(JR))}const si={test:KR,parse:kk,createTransformer:Sk,getAnimatableNone:ZR},eT=new Set(["brightness","contrast","saturate","opacity"]);function tT(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=eT.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const nT=/\b([a-z-]*)\(.*?\)/gu,lm={...si,getAnimatableNone:e=>{const t=e.match(nT);return t?t.map(tT).join(" "):e}},rT={...og,color:bn,backgroundColor:bn,outlineColor:bn,fill:bn,stroke:bn,borderColor:bn,borderTopColor:bn,borderRightColor:bn,borderBottomColor:bn,borderLeftColor:bn,filter:lm,WebkitFilter:lm},kg=e=>rT[e];function Ck(e,t){let n=kg(e);return n!==lm&&(n=si),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const sT=new Set(["auto","none","0"]);function iT(e,t,n){let r=0,s;for(;re===Vo||e===Re,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},oT=new Set(["x","y","z"]),aT=Uo.filter(e=>!oT.has(e));function lT(e){const t=[];return aT.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Ro={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Ro.translateX=Ro.x;Ro.translateY=Ro.y;const Ti=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Ti).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=lT(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,o])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Ti.forEach(e=>e.complete()),Ti.clear()}function jk(){Ti.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function cT(){jk(),Ek()}class Sg{constructor(t,n,r,s,i,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ti.add(this),cm||(cm=!0,kt.read(jk),kt.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),uT=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function dT(e){const t=uT.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Pk(e,t,n=1){const[r,s]=dT(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const o=i.trim();return Nk(o)?parseFloat(o):o}return ig(s)?Pk(s,t,n+1):s}const Rk=e=>t=>t.test(e),fT={test:e=>e==="auto",parse:e=>e},Tk=[Vo,Re,Jr,Ms,tR,eR,fT],nv=e=>Tk.find(Rk(e));class Lk extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(si.test(e)||e==="0")&&!e.startsWith("url("));function pT(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(hT),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const gT=40;class Ak{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:o="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:o,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>gT?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&cT(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:o,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!mT(t,r,s,i))if(o)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Lt=(e,t,n)=>e+(t-e)*n;function pf(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function xT({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,o=0;if(!t)s=i=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pf(c,l,e+1/3),i=pf(c,l,e),o=pf(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(o*255),alpha:r}}function Eu(e,t){return n=>n>0?t:e}const mf=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},vT=[am,ji,lo],yT=e=>vT.find(t=>t.test(e));function sv(e){const t=yT(e);if(!t)return!1;let n=t.parse(e);return t===lo&&(n=xT(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Eu(e,t);const s={...n};return i=>(s.red=mf(n.red,r.red,i),s.green=mf(n.green,r.green,i),s.blue=mf(n.blue,r.blue,i),s.alpha=Lt(n.alpha,r.alpha,i),ji.transform(s))},_T=(e,t)=>n=>t(e(n)),kl=(...e)=>e.reduce(_T),dm=new Set(["none","hidden"]);function bT(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function wT(e,t){return n=>Lt(e,t,n)}function Cg(e){return typeof e=="number"?wT:typeof e=="string"?ig(e)?Eu:bn.test(e)?iv:CT:Array.isArray(e)?Dk:typeof e=="object"?bn.test(e)?iv:kT:Eu}function Dk(e,t){const n=[...e],r=n.length,s=e.map((i,o)=>Cg(i)(i,t[o]));return i=>{for(let o=0;o{for(const i in r)n[i]=r[i](s);return n}}function ST(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=si.createTransformer(t),r=il(e),s=il(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?bT(e,t):kl(Dk(ST(r,s),s.values),n):Eu(e,t)};function Mk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Lt(e,t,n):Cg(e)(e,t)}const ET=5;function Ok(e,t,n){const r=Math.max(t-ET,0);return ck(n-e(r),t-r)}const It={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},hf=.001;function jT({duration:e=It.duration,bounce:t=It.bounce,velocity:n=It.velocity,mass:r=It.mass}){let s,i,o=1-t;o=Es(It.minDamping,It.maxDamping,o),e=Es(It.minDuration,It.maxDuration,ys(e)),o<1?(s=u=>{const d=u*o,f=d*e,p=d-n,h=fm(u,o),g=Math.exp(-f);return hf-p/h*g},i=u=>{const f=u*o*e,p=f*n+n,h=Math.pow(o,2)*Math.pow(u,2)*e,g=Math.exp(-f),v=fm(Math.pow(u,2),o);return(-s(u)+hf>0?-1:1)*((p-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),f=(u-n)*e+1;return-hf+d*f},i=u=>{const d=Math.exp(-u*e),f=(n-u)*(e*e);return d*f});const l=5/e,c=PT(s,i,l);if(e=vs(e),isNaN(c))return{stiffness:It.stiffness,damping:It.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:o*2*Math.sqrt(r*u),duration:e}}}const NT=12;function PT(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function LT(e){let t={velocity:It.velocity,stiffness:It.stiffness,damping:It.damping,mass:It.mass,isResolvedFromDuration:!1,...e};if(!ov(e,TT)&&ov(e,RT))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Es(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:It.mass,stiffness:s,damping:i}}else{const n=jT(e);t={...t,...n,mass:It.mass},t.isResolvedFromDuration=!0}return t}function Ik(e=It.visualDuration,t=It.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:f,velocity:p,isResolvedFromDuration:h}=LT({...n,velocity:-ys(n.velocity||0)}),g=p||0,v=u/(2*Math.sqrt(c*d)),b=o-i,x=ys(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?It.restSpeed.granular:It.restSpeed.default),s||(s=y?It.restDelta.granular:It.restDelta.default);let _;if(v<1){const R=fm(x,v);_=k=>{const T=Math.exp(-v*x*k);return o-T*((g+v*x*b)/R*Math.sin(R*k)+b*Math.cos(R*k))}}else if(v===1)_=R=>o-Math.exp(-x*R)*(b+(g+x*b)*R);else{const R=x*Math.sqrt(v*v-1);_=k=>{const T=Math.exp(-v*x*k),D=Math.min(R*k,300);return o-T*((g+v*x*b)*Math.sinh(D)+R*b*Math.cosh(D))/R}}const S={calculatedDuration:h&&f||null,next:R=>{const k=_(R);if(h)l.done=R>=f;else{let T=0;v<1&&(T=R===0?vs(g):Ok(_,R,k));const D=Math.abs(T)<=r,z=Math.abs(o-k)<=s;l.done=D&&z}return l.value=l.done?o:k,l},toString:()=>{const R=Math.min(tk(S),sm),k=nk(T=>S.next(R*T).value,R,30);return R+"ms "+k}};return S}function av({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:o,min:l,max:c,restDelta:u=.5,restSpeed:d}){const f=e[0],p={done:!1,value:f},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),S=D=>{const z=y(D),j=_(D);p.done=Math.abs(z)<=u,p.value=p.done?x:j};let R,k;const T=D=>{h(p.value)&&(R=D,k=Ik({keyframes:[p.value,g(p.value)],velocity:Ok(_,D,p.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let z=!1;return!k&&R===void 0&&(z=!0,S(D),T(D)),R!==void 0&&D>=R?k.next(D-R):(!z&&S(D),p)}}}const AT=wl(.42,0,1,1),DT=wl(0,0,.58,1),Fk=wl(.42,0,.58,1),MT=e=>Array.isArray(e)&&typeof e[0]!="number",OT={linear:sr,easeIn:AT,easeInOut:Fk,easeOut:DT,circIn:_g,circInOut:vk,circOut:xk,backIn:yg,backInOut:hk,backOut:mk,anticipate:gk},lv=e=>{if(mg(e)){Mw(e.length===4);const[t,n,r,s]=e;return wl(t,n,r,s)}else if(typeof e=="string")return OT[e];return e};function IT(e,t,n){const r=[],s=n||Mk,i=e.length-1;for(let o=0;ot[0];if(i===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=IT(t,r,s),c=l.length,u=d=>{if(o&&d1)for(;fu(Es(e[0],e[i-1],d)):u}function BT(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=No(0,t,r);e.push(Lt(n,1,s))}}function UT(e){const t=[0];return BT(t,e.length-1),t}function VT(e,t){return e.map(n=>n*t)}function zT(e,t){return e.map(()=>t||Fk).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=MT(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},o=VT(n&&n.length===t.length?n:UT(t),e),l=FT(o,t,{ease:Array.isArray(s)?s:zT(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const $T=e=>{const t=({timestamp:n})=>e(n);return{start:()=>kt.update(t,!0),stop:()=>ri(t),now:()=>mn.isProcessing?mn.timestamp:Zr.now()}},HT={decay:av,inertia:av,tween:ju,keyframes:ju,spring:Ik},qT=e=>e/100;class Eg extends Ak{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,o=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new o(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:o=0}=this.options,l=pg(n)?n:HT[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=kl(qT,Mk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=tk(d));const{calculatedDuration:f}=d,p=f+s,h=p*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:f,resolvedDuration:p,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:o,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:f}=r;if(this.startTime===null)return i.next(0);const{delay:p,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-p*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,S=i;if(h){const D=Math.min(this.currentTime,d)/f;let z=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&z--,z=Math.min(z,h+1),!!(z%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/f)):g==="mirror"&&(S=o)),_=Es(0,1,j)*f}const R=y?{done:!1,value:c[0]}:S.next(_);l&&(R.value=l(R.value));let{done:k}=R;!y&&u!==null&&(k=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return T&&s!==void 0&&(R.value=xd(c,this.options,s)),b&&b(R.value),T&&this.finish(),R}get duration(){const{resolved:t}=this;return t?ys(t.calculatedDuration):0}get time(){return ys(this.currentTime)}set time(t){t=vs(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=ys(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=$T,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const WT=new Set(["opacity","clipPath","filter","transform"]);function GT(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:o="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=sk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:o==="reverse"?"alternate":"normal"})}const KT=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,QT=2e4;function YT(e){return pg(e.type)||e.type==="spring"||!rk(e.ease)}function XT(e,t){const n=new Eg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(o,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:o,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Cu()&&JT(i)&&(i=Bk[i]),YT(this.options)){const{onComplete:f,onUpdate:p,motionValue:h,element:g,...v}=this.options,b=XT(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,o="keyframes"}const d=GT(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:f}=this.options;l.set(xd(t,this.options,n)),f&&f(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:o,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return ys(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return ys(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=vs(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return sr;const{animation:r}=n;G0(r,t)}return sr}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:o,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:f,element:p,...h}=this.options,g=new Eg({...h,keyframes:r,duration:s,type:i,ease:o,times:l,isGenerator:!0}),v=vs(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:o,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return KT()&&r&&WT.has(r)&&!c&&!u&&!s&&i!=="mirror"&&o!==0&&l!=="inertia"}}const ZT={type:"spring",stiffness:500,damping:25,restSpeed:10},eL=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),tL={type:"keyframes",duration:.8},nL={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},rL=(e,{keyframes:t})=>t.length>2?tL:$i.has(e)?e.startsWith("scale")?eL(t[1]):ZT:nL;function sL({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:o,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>o=>{const l=fg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-vs(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:p=>{t.set(p),l.onUpdate&&l.onUpdate(p)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};sL(l)||(d={...d,...rL(e,d)}),d.duration&&(d.duration=vs(d.duration)),d.repeatDelay&&(d.repeatDelay=vs(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let f=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(f=!0)),f&&!i&&t.get()!==void 0){const p=xd(d.keyframes,l);if(p!==void 0)return kt.update(()=>{d.onUpdate(p),d.onComplete()}),new kR([])}return!i&&cv.supports(d)?new cv(d):new Eg(d)};function iL({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Uk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:o=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(o=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const f in c){const p=e.getValue(f,(i=e.latestValues[f])!==null&&i!==void 0?i:null),h=c[f];if(h===void 0||d&&iL(d,f))continue;const g={delay:n,...fg(o||{},f)};let v=!1;if(window.MotionHandoffAnimation){const x=uk(e);if(x){const y=window.MotionHandoffAnimation(x,f,kt);y!==null&&(g.startTime=y,v=!0)}}om(e,f),p.start(jg(f,p,h,e.shouldReduceMotion&&lk.has(f)?{type:!1}:g,e,v));const b=p.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{kt.update(()=>{l&&IR(e,l)})}),u}function pm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const o=s?()=>Promise.all(Uk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:f,staggerDirection:p}=i;return oL(e,t,d+u,f,p,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[o,l]:[l,o];return u().then(()=>d())}else return Promise.all([o(),l(n.delay)])}function oL(e,t,n=0,r=0,s=1,i){const o=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(aL).forEach((u,d)=>{u.notify("AnimationStart",t),o.push(pm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(o)}function aL(e,t){return e.sortNodePosition(t)}function lL(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>pm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=pm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Uk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const cL=eg.length;function Vk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Vk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>lL(e,n,r)))}function pL(e){let t=fL(e),n=uv(),r=!0;const s=c=>(u,d)=>{var f;const p=gd(e,d,c==="exit"?(f=e.presenceContext)===null||f===void 0?void 0:f.custom:void 0);if(p){const{transition:h,transitionEnd:g,...v}=p;u={...u,...v,...g}}return u};function i(c){t=c(e)}function o(c){const{props:u}=e,d=Vk(e.parent)||{},f=[],p=new Set;let h={},g=1/0;for(let b=0;bg&&S,z=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});R===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},ae=oe=>{D=!0,p.has(oe)&&(z=!0,p.delete(oe)),y.needsAnimating[oe]=!0;const B=e.getValue(oe);B&&(B.liveStyle=!1)};for(const oe in re){const B=H[oe],q=X[oe];if(h.hasOwnProperty(oe))continue;let E=!1;rm(B)&&rm(q)?E=!ek(B,q):E=B!==q,E?B!=null?ae(oe):p.add(oe):B!==void 0&&p.has(oe)?ae(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(k&&T)||z)&&f.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(p.size){const b={};p.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),f.push({animation:b})}let v=!!f.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(f):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(p=>{var h;return(h=p.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const f=o(c);for(const p in n)n[p].protectedKeys={};return f}return{animateChanges:o,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function mL(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!ek(t,e):!1}function gi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:gi(!0),whileInView:gi(),whileHover:gi(),whileTap:gi(),whileDrag:gi(),whileFocus:gi(),exit:gi()}}class ci{constructor(t){this.isMounted=!1,this.node=t}update(){}}class hL extends ci{constructor(t){super(t),t.animationState||(t.animationState=pL(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let gL=0;class xL extends ci{constructor(){super(...arguments),this.id=gL++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const vL={animation:{Feature:hL},exit:{Feature:xL}};function ol(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Sl(e){return{point:{x:e.pageX,y:e.pageY}}}const yL=e=>t=>hg(t)&&e(t,Sl(t));function Na(e,t,n,r){return ol(e,t,yL(n),r)}const dv=(e,t)=>Math.abs(e-t);function _L(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class zk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=xf(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,h=_L(f.offset,{x:0,y:0})>=3;if(!p&&!h)return;const{point:g}=f,{timestamp:v}=mn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;p||(b&&b(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,f)},this.handlePointerMove=(f,p)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=gf(p,this.transformPagePoint),kt.update(this.updatePoint,!0)},this.handlePointerUp=(f,p)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=xf(f.type==="pointercancel"?this.lastMoveEventInfo:gf(p,this.transformPagePoint),this.history);this.startEvent&&h&&h(f,b),g&&g(f,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const o=Sl(t),l=gf(o,this.transformPagePoint),{point:c}=l,{timestamp:u}=mn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,xf(l,this.history)),this.removeListeners=kl(Na(this.contextWindow,"pointermove",this.handlePointerMove),Na(this.contextWindow,"pointerup",this.handlePointerUp),Na(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ri(this.updatePoint)}}function gf(e,t){return t?{point:t(e.point)}:e}function fv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function xf({point:e},t){return{point:e,delta:fv(e,$k(t)),offset:fv(e,bL(t)),velocity:wL(t,.1)}}function bL(e){return e[0]}function $k(e){return e[e.length-1]}function wL(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=$k(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>vs(t)));)n--;if(!r)return{x:0,y:0};const i=ys(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const o={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const Hk=1e-4,kL=1-Hk,SL=1+Hk,qk=.01,CL=0-qk,EL=0+qk;function ar(e){return e.max-e.min}function jL(e,t,n){return Math.abs(e-t)<=n}function pv(e,t,n,r=.5){e.origin=r,e.originPoint=Lt(t.min,t.max,e.origin),e.scale=ar(n)/ar(t),e.translate=Lt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=kL&&e.scale<=SL||isNaN(e.scale))&&(e.scale=1),(e.translate>=CL&&e.translate<=EL||isNaN(e.translate))&&(e.translate=0)}function Pa(e,t,n,r){pv(e.x,t.x,n.x,r?r.originX:void 0),pv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ar(t)}function NL(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ar(t)}function Ra(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function PL(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Lt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function RL(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=No(t.min,t.max-r,e.min):r>s&&(n=No(e.min,e.max-s,t.min)),Es(0,1,n)}function AL(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function DL(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),co=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),zt=()=>({x:bv(),y:bv()});function pr(e){return[e("x"),e("y")]}function Wk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function ML({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function OL(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function vf(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!vf(e)||!vf(t)||!vf(n)}function bi(e){return hm(e)||Gk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Gk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Kk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Cv=1.0000000000001;function IL(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,o;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function uo(e,t){e.min=e.min+t,e.max=e.max+t}function Ev(e,t,n,r,s=.5){const i=Lt(e.min,e.max,s);gm(e,t,n,i,r)}function fo(e,t){Ev(e.x,t.x,t.scaleX,t.scale,t.originX),Ev(e.y,t.y,t.scaleY,t.scale,t.originY)}function Qk(e,t){return Wk(OL(e.getBoundingClientRect(),t))}function FL(e,t,n){const r=Qk(e,n),{scroll:s}=t;return s&&(uo(r.x,s.offset.x),uo(r.y,s.offset.y)),r}const Yk=({current:e})=>e?e.ownerDocument.defaultView:null,BL=new WeakMap;class UL{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=zt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Sl(d).point)},i=(d,f)=>{const{drag:p,dragPropagation:h,onDragStart:g}=this.getProps();if(p&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=LR(p),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),pr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ar(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&kt.postRender(()=>g(d,f)),om(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},o=(d,f)=>{const{dragPropagation:p,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:b}=f;if(h&&this.currentDirection===null){this.currentDirection=VL(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",f.point,b),this.updateAxis("y",f.point,b),this.visualElement.render(),v&&v(d,f)},l=(d,f)=>this.stop(d,f),c=()=>pr(d=>{var f;return this.getAnimationState(d)==="paused"&&((f=this.getAxisMotionValue(d).animation)===null||f===void 0?void 0:f.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new zk(t,{onSessionStart:s,onStart:i,onMove:o,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Yk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&kt.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!pc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=PL(o,this.constraints[t],this.elastic[t])),i.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ao(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=RL(s.layoutBox,n):this.constraints=!1,this.elastic=DL(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&pr(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=AL(s.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ao(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=FL(r,s.root,this.visualElement.getTransformPagePoint());let o=TL(s.layout.layoutBox,i);if(n){const l=n(ML(o));this.hasMutatedConstraints=!!l,l&&(o=Wk(l))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=pr(d=>{if(!pc(d,n,this.currentDirection))return;let f=c&&c[d]||{};o&&(f={min:0,max:0});const p=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:p,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return om(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){pr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){pr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){pr(n=>{const{drag:r}=this.getProps();if(!pc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:o,max:l}=s.layout.layoutBox[n];i.set(t[n]-Lt(o,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ao(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};pr(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const c=l.get();s[o]=LL({min:c,max:c},this.constraints[o])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),pr(o=>{if(!pc(o,t,null))return;const l=this.getAxisMotionValue(o),{min:c,max:u}=this.constraints[o];l.set(Lt(c,u,s[o]))})}addListeners(){if(!this.visualElement.current)return;BL.set(this.visualElement,this);const t=this.visualElement.current,n=Na(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ao(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),kt.read(r);const o=ol(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(pr(d=>{const f=this.getAxisMotionValue(d);f&&(this.originPoint[d]+=c[d].translate,f.set(f.get()+c[d].translate))}),this.visualElement.render())});return()=>{o(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:o=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:o,dragMomentum:l}}}function pc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function VL(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class zL extends ci{constructor(t){super(t),this.removeGroupControls=sr,this.removeListeners=sr,this.controls=new UL(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||sr}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&kt.postRender(()=>e(t,n))};class $L extends ci{constructor(){super(...arguments),this.removePointerDownListener=sr}onPointerDown(t){this.session=new zk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Yk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,o)=>{delete this.session,s&&kt.postRender(()=>s(i,o))}}}mount(){this.removePointerDownListener=Na(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oa={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Re.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},HL={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=si.parse(e);if(s.length>5)return r;const i=si.createTransformer(e),o=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+o]/=l,s[1+o]/=c;const u=Lt(l,c,.5);return typeof s[2+o]=="number"&&(s[2+o]/=u),typeof s[3+o]=="number"&&(s[3+o]/=u),i(s)}};class qL extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;dR(WL),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,o=r.projection;return o&&(o.isPresent=i,s||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?o.promote():o.relegate()||kt.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Xk(e){const[t,n]=Aw(),r=m.useContext(Kh);return a.jsx(qL,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Vw),isPresent:t,safeToRemove:n})}const WL={borderRadius:{...oa,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oa,borderTopRightRadius:oa,borderBottomLeftRadius:oa,borderBottomRightRadius:oa,boxShadow:HL};function GL(e,t,n){const r=Sn(e)?e:sl(e);return r.start(jg("",r,t,n)),r.animation}function KL(e){return e instanceof SVGElement&&e.tagName!=="svg"}const QL=(e,t)=>e.depth-t.depth;class YL{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(QL),this.isDirty=!1,this.children.forEach(t)}}function XL(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ri(r),e(i-t))};return kt.read(r,!0),()=>ri(r)}const Jk=["TopLeft","TopRight","BottomLeft","BottomRight"],JL=Jk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Re.test(e);function ZL(e,t,n,r,s,i){s?(e.opacity=Lt(0,n.opacity!==void 0?n.opacity:1,eA(r)),e.opacityExit=Lt(t.opacity!==void 0?t.opacity:1,0,tA(r))):i&&(e.opacity=Lt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(No(e,t,r))}function Lv(e,t){e.min=t.min,e.max=t.max}function fr(e,t){Lv(e.x,t.x),Lv(e.y,t.y)}function Av(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function nA(e,t=0,n=1,r=.5,s,i=e,o=e){if(Jr.test(t)&&(t=parseFloat(t),t=Lt(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=Lt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,o){nA(e,t[n],t[r],t[s],t.scale,i,o)}const rA=["x","scaleX","originX"],sA=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,rA,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,sA,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function eS(e){return Iv(e.x)&&Iv(e.y)}function Fv(e,t){return e.min===t.min&&e.max===t.max}function iA(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Bv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function tS(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Uv(e){return ar(e.x)/ar(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class oA{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function aA(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((s||i||o)&&(r=`translate3d(${s}px, ${i}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:f,rotateY:p,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),f&&(r+=`rotateX(${f}deg) `),p&&(r+=`rotateY(${p}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const wi={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},xa=typeof window<"u"&&window.MotionDebug!==void 0,yf=["","X","Y","Z"],lA={visibility:"hidden"},zv=1e3;let cA=0;function _f(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function nS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=uk(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",kt,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&nS(r)}function rS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(o={},l=t==null?void 0:t()){this.id=cA++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,xa&&(wi.totalNodes=wi.resolvedTargetDeltas=wi.recalculatedProjection=0),this.nodes.forEach(fA),this.nodes.forEach(xA),this.nodes.forEach(vA),this.nodes.forEach(pA),xa&&window.MotionDebug.record(wi)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=XL(p,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:p,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||kA,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!tS(this.targetLayout,g)||h,_=!p&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||p&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,_);const S={...fg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else p||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ri(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(yA),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&nS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const R=S/1e3;qv(f.x,o.x,R),qv(f.y,o.y,R),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ra(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),bA(this.relativeTarget,this.relativeTargetOrigin,p,R),_&&iA(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=zt()),fr(_,this.relativeTarget)),v&&(this.animationValues=d,ZL(d,u,this.latestValues,R,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=R},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ri(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=kt.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=GL(0,zv,{...o,onUpdate:l=>{this.mixTargetDelta(l),o.onUpdate&&o.onUpdate(l)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=o;if(!(!l||!c||!u)){if(this!==o&&this.layout&&u&&sS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||zt();const f=ar(this.layout.layoutBox.x);c.x.min=o.target.x.min,c.x.max=c.x.min+f;const p=ar(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+p}fr(l,c),fo(l,d),Pa(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new oA),this.sharedNodes.get(o).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:l}=this.options;return l?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:l}=this.options;return l?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:c}=o;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&_f("z",o,u,this.animationValues);for(let d=0;d{var l;return(l=o.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function uA(e){e.updateLayout()}function dA(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,o=n.source!==e.layout.source;i==="size"?pr(f=>{const p=o?n.measuredBox[f]:n.layoutBox[f],h=ar(p);p.min=r[f].min,p.max=p.min+h}):sS(i,n.layoutBox,r)&&pr(f=>{const p=o?n.measuredBox[f]:n.layoutBox[f],h=ar(r[f]);p.max=p.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+h)});const l=co();Pa(l,r,n.layoutBox);const c=co();o?Pa(c,e.applyTransform(s,!0),n.measuredBox):Pa(c,r,n.layoutBox);const u=!eS(l);let d=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:p,layout:h}=f;if(p&&h){const g=zt();Ra(g,n.layoutBox,p.layoutBox);const v=zt();Ra(v,r,h.layoutBox),tS(g,v)||(d=!0),f.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function fA(e){xa&&wi.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function pA(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function mA(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function hA(e){e.isLayoutDirty=!1}function gA(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function xA(e){e.resolveTargetDelta()}function vA(e){e.calcProjection()}function yA(e){e.resetSkewAndRotation()}function _A(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Lt(t.translate,0,n),e.scale=Lt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Lt(t.min,n.min,r),e.max=Lt(t.max,n.max,r)}function bA(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function wA(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const kA={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:sr;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function SA(e){Qv(e.x),Qv(e.y)}function sS(e,t,n){return e==="position"||e==="preserve-aspect"&&!jL(Uv(t),Uv(n),.2)}function CA(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const EA=rS({attachResizeListener:(e,t)=>ol(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bf={current:void 0},iS=rS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bf.current){const e=new EA({});e.mount(window),e.setOptions({layoutScroll:!0}),bf.current=e}return bf.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),jA={pan:{Feature:$L},drag:{Feature:zL,ProjectionNode:iS,MeasureLayout:Xk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&kt.postRender(()=>i(t,Sl(t)))}class NA extends ci{mount(){const{current:t}=this.node;t&&(this.unmount=jR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class PA extends ci{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=kl(ol(this.node.current,"focus",()=>this.onFocus()),ol(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&kt.postRender(()=>i(t,Sl(t)))}class RA extends ci{mount(){const{current:t}=this.node;t&&(this.unmount=TR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,wf=new WeakMap,TA=e=>{const t=xm.get(e.target);t&&t(e)},LA=e=>{e.forEach(TA)};function AA({root:e,...t}){const n=e||document;wf.has(n)||wf.set(n,{});const r=wf.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(LA,{root:e,...t})),r[s]}function DA(e,t,n){const r=AA(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const MA={some:0,all:1};class OA extends ci{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:MA[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:f}=this.node.getProps(),p=u?d:f;p&&p(c)};return DA(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(IA(t,n))&&this.startObserver()}unmount(){}}function IA({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const FA={inView:{Feature:OA},tap:{Feature:RA},focus:{Feature:PA},hover:{Feature:NA}},BA={layout:{ProjectionNode:iS,MeasureLayout:Xk}},vm={current:null},oS={current:!1};function UA(){if(oS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const VA=[...Tk,bn,si],zA=e=>VA.find(Rk(e)),Jv=new WeakMap;function $A(e,t,n){for(const r in t){const s=t[r],i=n[r];if(Sn(s))e.addValue(r,s);else if(Sn(i))e.addValue(r,sl(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(s):o.hasAnimated||o.set(s)}else{const o=e.getStaticValue(r);e.addValue(r,sl(o!==void 0?o:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class HA{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),oS.current||UA(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ri(this.notifyUpdate),ri(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=$i.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&kt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Po){const n=Po[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):zt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=sl(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(Nk(s)||yk(s))?s=parseFloat(s):!zA(s)&&si.test(n)&&(s=Ck(t,n)),this.setBaseTarget(t,Sn(s)?s.get():s)),Sn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const o=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(s=o[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!Sn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends HA{constructor(){super(...arguments),this.KeyframeResolver=Lk}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Sn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function qA(e){return window.getComputedStyle(e)}class WA extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Kw}readValueFromInstance(t,n){if($i.has(n)){const r=kg(n);return r&&r.default||0}else{const r=qA(t),s=(qw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Qk(t,n)}build(t,n,r){ag(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class GA extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=zt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if($i.has(n)){const r=kg(n);return r&&r.default||0}return n=Qw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Jw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Yw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const KA=(e,t)=>rg(e)?new GA(t):new WA(t,{allowProjection:e!==m.Fragment}),QA=_R({...vL,...FA,...jA,...BA},KA),Bt=MP(QA);function YA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const XA=m.forwardRef(YA);function JA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(JA);function ZA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(ZA);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const nD=m.forwardRef(tD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const lS=m.forwardRef(rD);function sD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const kf=m.forwardRef(sD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const Sf=m.forwardRef(iD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const aD=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(lD);function cD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const uD=m.forwardRef(cD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Tu=m.forwardRef(fD);function pD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const qs=m.forwardRef(pD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const tr=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const cS=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const ds=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const vD=m.forwardRef(xD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(kD);function SD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const CD=m.forwardRef(SD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const jD=m.forwardRef(ED);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Lu=m.forwardRef(ND);function PD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(PD);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const TD=m.forwardRef(RD);function LD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(LD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const DD=m.forwardRef(AD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const fs=m.forwardRef(FD);function BD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(BD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const uS=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const $D=m.forwardRef(zD);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const dS=m.forwardRef(HD);function qD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const WD=m.forwardRef(qD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Cf=m.forwardRef(r3);function s3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const i3=m.forwardRef(s3);function o3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Au=m.forwardRef(o3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const l3=m.forwardRef(a3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const f3=m.forwardRef(d3);function p3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(p3);function m3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(m3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const fS=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const x3=m.forwardRef(g3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const en=m.forwardRef(_3);function b3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const w3=m.forwardRef(b3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const S3=m.forwardRef(k3);function C3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const To=m.forwardRef(C3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=mS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const P3={},iy=e=>{let t;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const h=t;t=f??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(P3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},R3=e=>e?iy(e):iy;var hS={exports:{}},gS={},xS={exports:{}},vS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Lo=m;function T3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var L3=typeof Object.is=="function"?Object.is:T3,A3=Lo.useState,D3=Lo.useEffect,M3=Lo.useLayoutEffect,O3=Lo.useDebugValue;function I3(e,t){var n=t(),r=A3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return M3(function(){s.value=n,s.getSnapshot=t,Ef(s)&&i({inst:s})},[e,n,t]),D3(function(){return Ef(s)&&i({inst:s}),e(function(){Ef(s)&&i({inst:s})})},[e]),O3(n),n}function Ef(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!L3(e,n)}catch{return!0}}function F3(e,t){return t()}var B3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?F3:I3;vS.useSyncExternalStore=Lo.useSyncExternalStore!==void 0?Lo.useSyncExternalStore:B3;xS.exports=vS;var U3=xS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,V3=U3;function z3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var $3=typeof Object.is=="function"?Object.is:z3,H3=V3.useSyncExternalStore,q3=vd.useRef,W3=vd.useEffect,G3=vd.useMemo,K3=vd.useDebugValue;gS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=q3(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=G3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&o.hasValue){var g=o.value;if(s(g,h))return f=g}return f=h}if(g=f,$3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,f=v)}var u=!1,d,f,p=n===void 0?null:n;return[function(){return c(t())},p===null?void 0:function(){return c(p())}]},[t,n,r,s]);var l=H3(e,i[0],i[1]);return W3(function(){o.hasValue=!0,o.value=l},[l]),K3(l),l};hS.exports=gS;var Q3=hS.exports;const Y3=qu(Q3),yS={},{useDebugValue:X3}=un,{useSyncExternalStoreWithSelector:J3}=Y3;let oy=!1;const Z3=e=>e;function eM(e,t=Z3,n){(yS?"production":void 0)!=="production"&&n&&!oy&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),oy=!0);const r=J3(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return X3(r),r}const ay=e=>{(yS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?R3(e):e,n=(r,s)=>eM(t,r,s);return Object.assign(n,t),n},tM=e=>e?ay(e):ay;function _S(e,t){return function(){return e.apply(t,arguments)}}const{toString:nM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:bS}=Symbol,_d=(e=>t=>{const n=nM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ir=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:zo}=Array,Ao=bd("undefined");function Cl(e){return e!==null&&!Ao(e)&&e.constructor!==null&&!Ao(e.constructor)&&Wn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const wS=Ir("ArrayBuffer");function rM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&wS(e.buffer),t}const sM=bd("string"),Wn=bd("function"),kS=bd("number"),El=e=>e!==null&&typeof e=="object",iM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(bS in e)&&!(yd in e)},oM=e=>{if(!El(e)||Cl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},aM=Ir("Date"),lM=Ir("File"),cM=Ir("Blob"),uM=Ir("FileList"),dM=e=>El(e)&&Wn(e.pipe),fM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Wn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Wn(e.toString)&&e.toString()==="[object FormData]"))},pM=Ir("URLSearchParams"),[mM,hM,gM,xM]=["ReadableStream","Request","Response","Headers"].map(Ir),vM=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),zo(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,CS=e=>!Ao(e)&&e!==Ni;function wm(){const{caseless:e,skipUndefined:t}=CS(this)&&this||{},n={},r=(s,i)=>{const o=e&&SS(n,i)||i;Hc(n[o])&&Hc(s)?n[o]=wm(n[o],s):Hc(s)?n[o]=wm({},s):zo(s)?n[o]=s.slice():(!t||!Ao(s))&&(n[o]=s)};for(let s=0,i=arguments.length;s(jl(t,(s,i)=>{n&&Wn(s)?e[i]=_S(s,n):e[i]=s},{allOwnKeys:r}),e),_M=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),bM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},wM=(e,t,n,r)=>{let s,i,o;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)o=s[i],(!r||r(o,e,t))&&!l[o]&&(t[o]=e[o],l[o]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kM=(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},SM=e=>{if(!e)return null;if(zo(e))return e;let t=e.length;if(!kS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},CM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),EM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},jM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},NM=Ir("HTMLFormElement"),PM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),RM=Ir("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};jl(n,(s,i)=>{let o;(o=t(s,i,e))!==!1&&(r[i]=o||s)}),Object.defineProperties(e,r)},TM=e=>{ES(e,(t,n)=>{if(Wn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Wn(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+"'")})}})},LM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return zo(e)?r(e):r(String(e).split(t)),n},AM=()=>{},DM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function MM(e){return!!(e&&Wn(e.append)&&e[bS]==="FormData"&&e[yd])}const OM=e=>{const t=new Array(10),n=(r,s)=>{if(El(r)){if(t.indexOf(r)>=0)return;if(Cl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=zo(r)?[]:{};return jl(r,(o,l)=>{const c=n(o,s+1);!Ao(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},IM=Ir("AsyncFunction"),FM=e=>e&&(El(e)||Wn(e))&&Wn(e.then)&&Wn(e.catch),jS=((e,t)=>e?setImmediate:t?((n,r)=>(Ni.addEventListener("message",({source:s,data:i})=>{s===Ni&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ni.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Wn(Ni.postMessage)),BM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ni):typeof process<"u"&&process.nextTick||jS,UM=e=>e!=null&&Wn(e[yd]),V={isArray:zo,isArrayBuffer:wS,isBuffer:Cl,isFormData:fM,isArrayBufferView:rM,isString:sM,isNumber:kS,isBoolean:iM,isObject:El,isPlainObject:Hc,isEmptyObject:oM,isReadableStream:mM,isRequest:hM,isResponse:gM,isHeaders:xM,isUndefined:Ao,isDate:aM,isFile:lM,isBlob:cM,isRegExp:RM,isFunction:Wn,isStream:dM,isURLSearchParams:pM,isTypedArray:CM,isFileList:uM,forEach:jl,merge:wm,extend:yM,trim:vM,stripBOM:_M,inherits:bM,toFlatObject:wM,kindOf:_d,kindOfTest:Ir,endsWith:kM,toArray:SM,forEachEntry:EM,matchAll:jM,isHTMLForm:NM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:TM,toObjectSet:LM,toCamelCase:PM,noop:AM,toFiniteNumber:DM,findKey:SS,global:Ni,isContextDefined:CS,isSpecCompliantForm:MM,toJSONObject:OM,isAsyncFn:IM,isThenable:FM,setImmediate:jS,asap:BM,isIterable:UM};function Me(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}V.inherits(Me,Error,{toJSON:function(){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:V.toJSONObject(this.config),code:this.code,status:this.status}}});const NS=Me.prototype,PS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{PS[e]={value:e}});Object.defineProperties(Me,PS);Object.defineProperty(NS,"isAxiosError",{value:!0});Me.from=(e,t,n,r,s,i)=>{const o=Object.create(NS);V.toFlatObject(e,o,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Me.call(o,l,c,n,r,s),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",i&&Object.assign(o,i),o};const VM=null;function km(e){return V.isPlainObject(e)||V.isArray(e)}function RS(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=RS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function zM(e){return V.isArray(e)&&!e.some(km)}const $M=V.toFlatObject(V,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!V.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,o=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&V.isSpecCompliantForm(t);if(!V.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(V.isDate(g))return g.toISOString();if(V.isBoolean(g))return g.toString();if(!c&&V.isBlob(g))throw new Me("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(g)||V.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(V.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(V.isArray(g)&&zM(g)||(V.isFileList(g)||V.endsWith(v,"[]"))&&(x=V.toArray(g)))return v=RS(v),x.forEach(function(_,S){!(V.isUndefined(_)||_===null)&&t.append(o===!0?cy([v],S,i):o===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const f=[],p=Object.assign($M,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!V.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));f.push(g),V.forEach(g,function(x,y){(!(V.isUndefined(x)||x===null)&&s.call(t,x,V.isString(y)?y.trim():y,v,p))===!0&&h(x,v?v.concat(y):[y])}),f.pop()}}if(!V.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const TS=Rg.prototype;TS.append=function(t,n){this._pairs.push([t,n])};TS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function HM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function LS(e,t,n){if(!t)return e;const r=n&&n.encode||HM;V.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=V.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){V.forEach(this.handlers,function(r){r!==null&&t(r)})}}const AS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},qM=typeof URLSearchParams<"u"?URLSearchParams:Rg,WM=typeof FormData<"u"?FormData:null,GM=typeof Blob<"u"?Blob:null,KM={isBrowser:!0,classes:{URLSearchParams:qM,FormData:WM,Blob:GM},protocols:["http","https","file","blob","url","data"]},Tg=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,QM=Tg&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),YM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",XM=Tg&&window.location.href||"http://localhost",JM=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Tg,hasStandardBrowserEnv:QM,hasStandardBrowserWebWorkerEnv:YM,navigator:Sm,origin:XM},Symbol.toStringTag,{value:"Module"})),kn={...JM,...KM};function ZM(e,t){return wd(e,new kn.classes.URLSearchParams,{visitor:function(n,r,s,i){return kn.isNode&&V.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function e4(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function t4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return o=!o&&V.isArray(s)?s.length:o,c?(V.hasOwnProp(s,o)?s[o]=[s[o],r]:s[o]=r,!l):((!s[o]||!V.isObject(s[o]))&&(s[o]=[]),t(n,r,s[o],i)&&V.isArray(s[o])&&(s[o]=t4(s[o])),!l)}if(V.isFormData(e)&&V.isFunction(e.entries)){const n={};return V.forEachEntry(e,(r,s)=>{t(e4(r),s,n,0)}),n}return null}function n4(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Nl={transitional:AS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=V.isObject(t);if(i&&V.isHTMLForm(t)&&(t=new FormData(t)),V.isFormData(t))return s?JSON.stringify(DS(t)):t;if(V.isArrayBuffer(t)||V.isBuffer(t)||V.isStream(t)||V.isFile(t)||V.isBlob(t)||V.isReadableStream(t))return t;if(V.isArrayBufferView(t))return t.buffer;if(V.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return ZM(t,this.formSerializer).toString();if((l=V.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),n4(t)):t}],transformResponse:[function(t){const n=this.transitional||Nl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(V.isResponse(t)||V.isReadableStream(t))return t;if(t&&V.isString(t)&&(r&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(o)throw l.name==="SyntaxError"?Me.from(l,Me.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:kn.classes.FormData,Blob:kn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{Nl.headers[e]={}});const r4=V.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"]),s4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(o){s=o.indexOf(":"),n=o.substring(0,s).trim().toLowerCase(),r=o.substring(s+1).trim(),!(!n||t[n]&&r4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},fy=Symbol("internals");function aa(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:V.isArray(e)?e.map(qc):String(e)}function i4(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 o4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function jf(e,t,n,r,s){if(V.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!V.isString(t)){if(V.isString(r))return t.indexOf(r)!==-1;if(V.isRegExp(r))return r.test(t)}}function a4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function l4(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,o){return this[r].call(this,t,s,i,o)},configurable:!0})})}let Gn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=aa(c);if(!d)throw new Error("header name must be a non-empty string");const f=V.findKey(s,d);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=qc(l))}const o=(l,c)=>V.forEach(l,(u,d)=>i(u,d,c));if(V.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(V.isString(t)&&(t=t.trim())&&!o4(t))o(s4(t),n);else if(V.isObject(t)&&V.isIterable(t)){let l={},c,u;for(const d of t){if(!V.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?V.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}o(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=aa(t),t){const r=V.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return i4(s);if(V.isFunction(n))return n.call(this,s,r);if(V.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=aa(t),t){const r=V.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||jf(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(o){if(o=aa(o),o){const l=V.findKey(r,o);l&&(!n||jf(r,r[l],l,n))&&(delete r[l],s=!0)}}return V.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||jf(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return V.forEach(this,(s,i)=>{const o=V.findKey(r,i);if(o){n[o]=qc(s),delete n[i];return}const l=t?a4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return V.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&V.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(s=>r.set(s)),r}static accessor(t){const r=(this[fy]=this[fy]={accessors:{}}).accessors,s=this.prototype;function i(o){const l=aa(o);r[l]||(l4(s,o),r[l]=!0)}return V.isArray(t)?t.forEach(i):i(t),this}};Gn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(Gn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});V.freezeMethods(Gn);function Nf(e,t){const n=this||Nl,r=t||n,s=Gn.from(r.headers);let i=r.data;return V.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function MS(e){return!!(e&&e.__CANCEL__)}function $o(e,t,n){Me.call(this,e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError"}V.inherits($o,Me,{__CANCEL__:!0});function OS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Me("Request failed with status code "+n.status,[Me.ERR_BAD_REQUEST,Me.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function c4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function u4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,o;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];o||(o=u),n[s]=c,r[s]=u;let f=i,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-o{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),f=d-n;f>=r?o(u,d):(s=u,i||(i=setTimeout(()=>{i=null,o(s)},r-f)))},()=>s&&o(s)]}const Du=(e,t,n=3)=>{let r=0;const s=u4(50,250);return d4(i=>{const o=i.loaded,l=i.lengthComputable?i.total:void 0,c=o-r,u=s(c),d=o<=l;r=o;const f={loaded:o,total:l,progress:l?o/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-o)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},py=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>V.asap(()=>e(...t)),f4=kn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,kn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(kn.origin),kn.navigator&&/(msie|trident)/i.test(kn.navigator.userAgent)):()=>!0,p4=kn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,o){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&l.push(`path=${r}`),V.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),V.isString(o)&&l.push(`SameSite=${o}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function m4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function h4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function IS(e,t,n){let r=!m4(t);return e&&(r||n==!1)?h4(e,t):t}const hy=e=>e instanceof Gn?{...e}:e;function Fi(e,t){t=t||{};const n={};function r(u,d,f,p){return V.isPlainObject(u)&&V.isPlainObject(d)?V.merge.call({caseless:p},u,d):V.isPlainObject(d)?V.merge({},d):V.isArray(d)?d.slice():d}function s(u,d,f,p){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u,f,p)}else return r(u,d,f,p)}function i(u,d){if(!V.isUndefined(d))return r(void 0,d)}function o(u,d){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,f){if(f in t)return r(u,d);if(f in e)return r(void 0,u)}const c={url:i,method:i,data:i,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,responseEncoding:o,validateStatus:l,headers:(u,d,f)=>s(hy(u),hy(d),f,!0)};return V.forEach(Object.keys({...e,...t}),function(d){const f=c[d]||s,p=f(e[d],t[d],d);V.isUndefined(p)&&f!==l||(n[d]=p)}),n}const FS=e=>{const t=Fi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:o,auth:l}=t;if(t.headers=o=Gn.from(o),t.url=LS(IS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&o.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),V.isFormData(n)){if(kn.hasStandardBrowserEnv||kn.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,f])=>{u.includes(d.toLowerCase())&&o.set(d,f)})}}if(kn.hasStandardBrowserEnv&&(r&&V.isFunction(r)&&(r=r(t)),r||r!==!1&&f4(t.url))){const c=s&&i&&p4.read(i);c&&o.set(s,c)}return t},g4=typeof XMLHttpRequest<"u",x4=g4&&function(e){return new Promise(function(n,r){const s=FS(e);let i=s.data;const o=Gn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,f,p,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Gn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),R={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};OS(function(T){n(T),v()},function(T){r(T),v()},R),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Me("Request aborted",Me.ECONNABORTED,e,b)),b=null)},b.onerror=function(S){const R=S&&S.message?S.message:"Network Error",k=new Me(R,Me.ERR_NETWORK,e,b);k.event=S||null,r(k),b=null},b.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const R=s.transitional||AS;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new Me(S,R.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,b)),b=null},i===void 0&&o.setContentType(null),"setRequestHeader"in b&&V.forEach(o.toJSON(),function(S,R){b.setRequestHeader(R,S)}),V.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([p,g]=Du(u,!0),b.addEventListener("progress",p)),c&&b.upload&&([f,h]=Du(c),b.upload.addEventListener("progress",f),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new $o(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=c4(s.url);if(y&&kn.protocols.indexOf(y)===-1){r(new Me("Unsupported protocol "+y+":",Me.ERR_BAD_REQUEST,e));return}b.send(i||null)})},v4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Me?d:new $o(d instanceof Error?d.message:d))}};let o=t&&setTimeout(()=>{o=null,i(new Me(`timeout ${t} of ms exceeded`,Me.ETIMEDOUT))},t);const l=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>V.asap(l),c}},y4=function*(e,t){let n=e.byteLength;if(n{const s=_4(e,t);let i=0,o,l=c=>{o||(o=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let f=d.byteLength;if(n){let p=i+=f;n(p)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=V,w4=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:vy,TextEncoder:yy}=V.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},k4=e=>{e=V.merge.call({skipUndefined:!0},w4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),o=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(kn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=o&&l&&_y(()=>V.isReadableStream(new r("").body)),f={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Me(`Response type '${g}' is not supported`,Me.ERR_NOT_SUPPORT,b)})});const p=async g=>{if(g==null)return 0;if(V.isBlob(g))return g.size;if(V.isSpecCompliantForm(g))return(await new n(kn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(V.isArrayBufferView(g)||V.isArrayBuffer(g))return g.byteLength;if(V.isURLSearchParams(g)&&(g=g+""),V.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=V.toFiniteNumber(g.getContentLength());return b??p(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:S,onDownloadProgress:R,onUploadProgress:k,responseType:T,headers:D,withCredentials:z="same-origin",fetchOptions:j}=FS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=v4([y,_&&_.toAbortSignal()],S),re=null;const ae=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let me;try{if(k&&u&&b!=="get"&&b!=="head"&&(me=await h(D,x))!==0){let de=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(V.isFormData(x)&&(pe=de.headers.get("content-type"))&&D.setContentType(pe),de.body){const[A,be]=py(me,Du(my(k)));x=gy(de.body,xy,A,be)}}V.isString(z)||(z=z?"include":"omit");const ve=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:ve?z:void 0};re=i&&new n(v,oe);let B=await(i?H(re,j):H(v,oe));const q=d&&(T==="stream"||T==="response");if(d&&(R||q&&ae)){const de={};["status","statusText","headers"].forEach(Ae=>{de[Ae]=B[Ae]});const pe=V.toFiniteNumber(B.headers.get("content-length")),[A,be]=R&&py(pe,Du(my(R),!0))||[];B=new r(gy(B.body,xy,A,()=>{be&&be(),ae&&ae()}),de)}T=T||"text";let E=await f[V.findKey(f,T)||"text"](B,g);return!q&&ae&&ae(),await new Promise((de,pe)=>{OS(de,pe,{data:E,headers:Gn.from(B.headers),status:B.status,statusText:B.statusText,config:g,request:re})})}catch(ve){throw ae&&ae(),ve&&ve.name==="TypeError"&&/Load failed|fetch/i.test(ve.message)?Object.assign(new Me("Network Error",Me.ERR_NETWORK,g,re),{cause:ve.cause||ve}):Me.from(ve,ve&&ve.code,g,re)}}},S4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let o=i.length,l=o,c,u,d=S4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:k4(t)),d=u;return u};BS();const Lg={http:VM,xhr:x4,fetch:{get:BS}};V.forEach(Lg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,C4=e=>V.isFunction(e)||e===null||e===!1;function E4(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let o=0;o`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?o.length>1?`since : +`+o.map(by).join(` +`):" "+by(o[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const US={getAdapter:E4,adapters:Lg};function Pf(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $o(null,e)}function wy(e){return Pf(e),e.headers=Gn.from(e.headers),e.data=Nf.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),US.getAdapter(e.adapter||Nl.adapter,e)(e).then(function(r){return Pf(e),r.data=Nf.call(e,e.transformResponse,r),r.headers=Gn.from(r.headers),r},function(r){return MS(r)||(Pf(e),r&&r.response&&(r.response.data=Nf.call(e,e.transformResponse,r.response),r.response.headers=Gn.from(r.response.headers))),Promise.reject(r)})}const VS="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,o){return"[Axios v"+VS+"] Transitional option '"+i+"'"+o+(r?". "+r:"")}return(i,o,l)=>{if(t===!1)throw new Me(s(o," has been removed"+(n?" in "+n:"")),Me.ERR_DEPRECATED);return n&&!ky[o]&&(ky[o]=!0,console.warn(s(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,o,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function j4(e,t,n){if(typeof e!="object")throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],o=t[i];if(o){const l=e[i],c=l===void 0||o(l,i,e);if(c!==!0)throw new Me("option "+i+" must be "+c,Me.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Me("Unknown option "+i,Me.ERR_BAD_OPTION)}}const Wc={assertOptions:j4,validators:kd},Hr=Wc.validators;let Li=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fi(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(V.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=i&&V.merge(i.common,i[n.method]);i&&V.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Gn.concat(o,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,f=0,p;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,d=Promise.resolve(n);f{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const o=new Promise(l=>{r.subscribe(l),i=l}).then(s);return o.cancel=function(){r.unsubscribe(i)},o},t(function(i,o,l){r.reason||(r.reason=new $o(i,o,l),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 zS(function(s){t=s}),cancel:t}}};function P4(e){return function(n){return e.apply(null,n)}}function R4(e){return V.isObject(e)&&e.isAxiosError===!0}const Cm={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(Cm).forEach(([e,t])=>{Cm[t]=e});function $S(e){const t=new Li(e),n=_S(Li.prototype.request,t);return V.extend(n,Li.prototype,t,{allOwnKeys:!0}),V.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return $S(Fi(e,s))},n}const Ht=$S(Nl);Ht.Axios=Li;Ht.CanceledError=$o;Ht.CancelToken=N4;Ht.isCancel=MS;Ht.VERSION=VS;Ht.toFormData=wd;Ht.AxiosError=Me;Ht.Cancel=Ht.CanceledError;Ht.all=function(t){return Promise.all(t)};Ht.spread=P4;Ht.isAxiosError=R4;Ht.mergeConfig=Fi;Ht.AxiosHeaders=Gn;Ht.formToJSON=e=>DS(V.isHTMLForm(e)?new FormData(e):e);Ht.getAdapter=US.getAdapter;Ht.HttpStatusCode=Cm;Ht.default=Ht;const{Axios:A8,AxiosError:D8,CanceledError:M8,isCancel:O8,CancelToken:I8,VERSION:F8,all:B8,Cancel:U8,isAxiosError:V8,spread:z8,toFormData:$8,AxiosHeaders:H8,HttpStatusCode:q8,formToJSON:W8,getAdapter:G8,mergeConfig:K8}=Ht,we=Ht.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Em="lakemeter:session-expired";function Fr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const T4=()=>{jm=!1};we.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Em,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const L4=async()=>{const{data:e}=await we.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await we.get("/estimates/",{params:e});return t},A4=async e=>{const{data:t}=await we.get(`/estimates/${e}`);return t},D4=async e=>{const{data:t}=await we.get(`/estimates/${e}/full`);return t},M4=async e=>{const{data:t}=await we.post("/estimates/",e);return t},O4=async(e,t)=>{const{data:n}=await we.put(`/estimates/${e}`,t);return n},I4=async e=>{await we.delete(`/estimates/${e}`)},F4=async e=>{const{data:t}=await we.post(`/estimates/${e}/duplicate`);return t},B4=async(e,t)=>{const{data:n}=await we.post(`/estimates/${e}/clone`,{new_name:t});return n},U4=async(e,t)=>{const{data:n}=await we.post(`/line-items/${e}/clone`,{new_name:t});return n},V4=async e=>{const{data:t}=await we.get(`/line-items/estimate/${e}`);return t},z4=async e=>{const{data:t}=await we.post("/line-items/",e);return t},$4=async(e,t)=>{const{data:n}=await we.put(`/line-items/${e}`,t);return n},H4=async e=>{await we.delete(`/line-items/${e}`)},q4=async(e,t)=>{await we.post("/line-items/reorder",t,{params:{estimate_id:e}})},W4=async e=>{await we.post("/estimates/reorder",e)},G4=async()=>{const{data:e}=await we.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await we.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},K4=async e=>{const{data:t}=await we.get("/tiers",{params:e?{cloud:e}:{}}),n=Fr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},Q4=async()=>{const{data:e}=await we.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},Y4=async()=>{const{data:e}=await we.get("/dbsql/warehouse-sizes"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},X4=async()=>{const{data:e}=await we.get("/dlt/editions"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},J4=async()=>{const{data:e}=await we.get("/reference/fmapi-models");return e},Cy=async()=>{const{data:e}=await we.get("/instances/families"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},Ey=async(e,t,n)=>{const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await we.get("/instances/types",{params:r});return(Array.isArray(s)?s:(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(o=>{const l=o.instance_type||o.id||o.name||"";return{id:l,name:l,vcpus:o.vcpus,memory_gb:o.memory_gb,dbu_rate:o.dbu_rate,instance_family:o.instance_family,vm_pricing:o.vm_pricing}})},Z4=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await we.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:o,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(f=>({cloud:o,region:l,instance_type:c,pricing_tier:f.pricing_tier,payment_option:f.payment_option,cost_per_hour:f.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},jy=async()=>{const{data:e}=await we.get("/dbsql/warehouse-types"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},Ny=async(e,t)=>{const{data:n}=await we.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Fr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Py=async(e,t)=>{const{data:n}=await we.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Fr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Ry=async()=>{const{data:e}=await we.get("/serverless/modes"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},eO=async e=>{var n;const{data:t}=await we.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ty=async e=>{const{data:t}=await we.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Fr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await we.get("/fmapi/databricks-models/list"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},HS=async(e,t,n)=>{const{data:r}=await we.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Fr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},tO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;sHS(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},nO=async()=>{const{data:e}=await we.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},qS=async e=>{const{data:t}=await we.get("/fmapi/proprietary-models",{params:e});return t},rO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>qS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},sO=async()=>{const{data:e}=await we.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},iO=async e=>{const{data:t}=await we.get("/vm-pricing",{params:e});return t},oO=async()=>{const{data:e}=await we.get("/vm-pricing/tiers");return e},aO=async()=>{const{data:e}=await we.get("/vm-pricing/payment-options");return e},WS=async e=>{const{data:t}=await we.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},lO=async()=>{const{data:e}=await we.get("/export/estimates/excel",{responseType:"blob"});return e},cO=async e=>{const{data:t}=await we.post("/calculate/jobs-classic",e);return t},uO=async e=>{const{data:t}=await we.post("/calculate/all-purpose-classic",e);return t},dO=async e=>{const{data:t}=await we.post("/calculate/jobs-serverless",e);return t},fO=async e=>{const{data:t}=await we.post("/calculate/all-purpose-serverless",e);return t},GS=async e=>{const{data:t}=await we.post("/calculate/dbsql-classic-pro",e);return t},KS=async e=>{const{data:t}=await we.post("/calculate/dbsql-serverless",e);return t},QS=async e=>{const{data:t}=await we.post("/calculate/dlt-classic",e);return t},YS=async e=>{const{data:t}=await we.post("/calculate/dlt-serverless",e);return t},XS=async e=>{const{data:t}=await we.post("/calculate/vector-search",e);return t},JS=async e=>{const{data:t}=await we.post("/calculate/model-serving",e);return t},ZS=async e=>{const{data:t}=await we.post("/calculate/fmapi-databricks",e);return t},eC=async e=>{const{data:t}=await we.post("/calculate/fmapi-proprietary",e);return t},tC=async e=>{const{data:t}=await we.post("/calculate/lakebase",e);return t},Ly=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?dO(n):cO(n);case"ALL_PURPOSE":return t?fO(n):uO(n);case"DLT":return t?YS(n):QS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?KS(n):GS(n);case"VECTOR_SEARCH":return XS(n);case"MODEL_SERVING":return JS(n);case"FMAPI_DATABRICKS":return ZS(n);case"FMAPI_PROPRIETARY":return eC(n);case"LAKEBASE":return tC(n);default:throw new Error(`Unknown workload type: ${e}`)}},pO="/static/pricing";async function as(e){const t=await fetch(`${pO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function mO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,o,l,c,u]=await Promise.all([as("instance-dbu-rates.json"),as("dbu-multipliers.json"),as("dbu-rates.json"),as("dbsql-rates.json"),as("dbsql-warehouse-config.json"),as("vector-search-rates.json"),as("model-serving-rates.json"),as("fmapi-databricks-rates.json"),as("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:o,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),nC()}}function nC(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function rC(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,o=e.dbuMultipliers[i];return o!=null&&o.multiplier?o.multiplier:2}function Ag(e,t,n,r,s){const i=r.toUpperCase(),o=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[o];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const f of Object.keys(e.dbuRates))if(f.startsWith(`${t.toLowerCase()}:`)&&f.endsWith(`:${i}`)){const p=e.dbuRates[f];if(p&&p[s]!==void 0)return p[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function hO(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function al(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function gO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function xO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function vO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function yO(e,t,n,r,s,i,o){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${o}`;return e.fmapiProprietaryRates[l]??null}const _O={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ay=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function sC(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ay;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,o=e.dbuRates[i];if(!o||Object.keys(o).length===0)return Ay;const l=new Set;for(const c of Object.keys(o)){const u=_O[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),Array.from(l).sort()}function bO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},wO="v6",cs=`lakemeter_reference_data_${wO}`,kO=4*60*60*1e3;function SO(){try{const e=localStorage.getItem(cs);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>kO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(cs),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(cs),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(cs),null;return t}catch{return localStorage.removeItem(cs),null}}function CO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(cs,JSON.stringify(t))}catch{}}function EO(){try{localStorage.removeItem(cs)}catch{}}const Rf=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Tf=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Lf=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Af=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Df=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Mf=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Of=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],_s=tM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0}],cloudProviders:Rf,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Tf,dbsqlWarehouseTypes:[],dltEditions:Lf,fmapiProviders:Of,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Af,vmPaymentOptions:Df,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Mf,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:nC(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await L4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const o=await Sy();e({estimates:o,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await A4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await D4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await O4(n,r);return e(i=>{var o;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((o=i.currentEstimate)==null?void 0:o.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await I4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await F4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(o=>o.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await V4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await z4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await $4(n,r);return e(i=>({lineItems:i.lineItems.map(o=>o.line_item_id===n?{...o,...s}:o),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await H4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,o,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=SO();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Rf,dbsqlSizes:u.dbsqlSizes||Tf,dltEditions:u.dltEditions||Lf,fmapiProviders:u.fmapiProviders||Of,vmPricingTiers:u.vmPricingTiers||Af,vmPaymentOptions:u.vmPaymentOptions||Df,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((o=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&o.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Mf,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,f,p,h,g,v,b,x,y,_,S,R,k,T,D,z,j,H,X,re,ae]=await Promise.all([G4().catch(()=>r.workloadTypes),Q4().catch(()=>Rf),Y4().catch(()=>Tf),X4().catch(()=>Lf),J4().catch(()=>Of),oO().catch(()=>Af),aO().catch(()=>Df),nO().catch(()=>null),sO().catch(()=>null),Ry().catch(()=>Mf),Ey(s).catch(()=>[]),Ty(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Py(s).catch(()=>[]),Ny(s).catch(()=>[]),tO(s).catch(()=>[]),rO(s).catch(()=>[]),Cy().catch(()=>[]),jy().catch(()=>[]),Nm().catch(()=>[])]),me={aws:R,azure:k,gcp:T},ve=R,oe={};j.forEach(q=>{const E=`${q.model}:${q.rate_type}`;oe[E]=q});const B={};H.forEach(q=>{const E=`${q.provider}:${q.model}:${q.rate_type}`;B[E]=q}),e({workloadTypes:u,cloudProviders:d,dbsqlSizes:f,dltEditions:p,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:ve,regionsMap:me,photonMultipliers:D,vectorSearchModes:z,fmapiDatabricksRates:oe,fmapiProprietaryRates:B,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:ae,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),CO({workloadTypes:u,cloudProviders:d,dbsqlSizes:f,dltEditions:p,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:ve,regionsMap:me,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:ae})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{EO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await mO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var o;const r=n.toLowerCase(),s=(o=t()._regionsCache)==null?void 0:o[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await K4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],o=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Cy();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ty(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await jy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),t().fetchInstanceTypes(n,r||void 0),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;t().fetchInstanceTypes(r,n||void 0),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await iO({cloud:n,region:r}),i={};s.forEach(o=>{const l=`${o.cloud.toLowerCase()}:${o.region}:${o.instance_type}:${o.pricing_tier}:${o.payment_option}`;i[l]=o.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",o="NA")=>{var p;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":o||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const f=Z4({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=f;try{const h=await f;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((p=h[0])==null?void 0:p.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",o="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":o||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const f=`${u}:${r}:${s}:${i}:NA`;if(c[f]!==void 0)return c[f];for(const p of Object.keys(c)){const h=p.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[p]}for(const p of Object.keys(c)){const h=p.split(":");if(h[0]===u&&h[2]===s)return c[p]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),o=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(o&&Date.now()-o.timestamp{d[f.product_type]=f.dbu_price}),e(f=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...f._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:o,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Ag(l,r,s,i,n);if(u>0)return u}return o[n]||0},fetchServerlessModes:async()=>{try{const n=await Ry();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Py(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await Ny(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await HS(n,r,s);if(i.length>0){const o=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:o}})),o}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const o=await qS({provider:n,model:r,cloud:s,rate_type:i});if(o.length>0){const l=o[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(o){return console.error("Failed to fetch FMAPI Proprietary rate:",o),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),o=`${n}:${r}:${s}`;return i[o]||null},calculateWorkloadCost:async(n,r,s,i)=>{var o;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ly(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const p=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=p==="on_demand"||p==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ly(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:p,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await YS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const p=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=p==="on_demand"||p==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await QS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:p,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const f=((o=n.dbsql_warehouse_type)==null?void 0:o.toUpperCase())||"SERVERLESS";if(f==="SERVERLESS")c=await KS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const p=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=p==="on_demand"||p==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await GS({...l,warehouse_type:f,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:p,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await XS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await JS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await ZS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await eC({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await tC({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break}return c&&e(f=>{const p=new Set(f.calculatingCostIds);return p.delete(n.line_item_id),{workloadCosts:{...f.workloadCosts,[n.line_item_id]:c},calculatingCostIds:p,isCalculatingCost:p.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:o}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=o[g.line_item_id];return!v||!v.success}),d.length===0))return;const f=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:f});const p=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const o=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,o,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r),i=t().estimates.find(l=>l.estimate_id===n),o={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[o,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await U4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function jO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const NO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,PO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,RO={};function Dy(e,t){return(RO.jsx?PO:NO).test(e)}const TO=/[ \t\n\f\r]/g;function LO(e){return typeof e=="object"?e.type==="text"?My(e.value):!1:My(e)}function My(e){return e.replace(TO,"")===""}class Pl{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Pl.prototype.normal={};Pl.prototype.property={};Pl.prototype.space=void 0;function iC(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Pl(n,r,t)}function Rm(e){return e.toLowerCase()}class Kn{constructor(t,n){this.attribute=n,this.property=t}}Kn.prototype.attribute="";Kn.prototype.booleanish=!1;Kn.prototype.boolean=!1;Kn.prototype.commaOrSpaceSeparated=!1;Kn.prototype.commaSeparated=!1;Kn.prototype.defined=!1;Kn.prototype.mustUseProperty=!1;Kn.prototype.number=!1;Kn.prototype.overloadedBoolean=!1;Kn.prototype.property="";Kn.prototype.spaceSeparated=!1;Kn.prototype.space=void 0;let AO=0;const Fe=Hi(),Gt=Hi(),Tm=Hi(),ne=Hi(),yt=Hi(),yo=Hi(),Zn=Hi();function Hi(){return 2**++AO}const Lm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Fe,booleanish:Gt,commaOrSpaceSeparated:Zn,commaSeparated:yo,number:ne,overloadedBoolean:Tm,spaceSeparated:yt},Symbol.toStringTag,{value:"Module"})),If=Object.keys(Lm);class Dg extends Kn{constructor(t,n,r,s){let i=-1;if(super(t,n),Oy(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&FO.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Iy,VO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Iy.test(i)){let o=i.replace(IO,UO);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}s=Dg}return new s(r,t)}function UO(e){return"-"+e.toLowerCase()}function VO(e){return e.charAt(1).toUpperCase()}const zO=iC([oC,DO,cC,uC,dC],"html"),Mg=iC([oC,MO,cC,uC,dC],"svg");function $O(e){return e.join(" ").trim()}var Og={},Fy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,HO=/\n/g,qO=/^\s*/,WO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,GO=/^:\s*/,KO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,QO=/^[;\s]*/,YO=/^\s+|\s+$/g,XO=` +`,By="/",Uy="*",ki="",JO="comment",ZO="declaration";function eI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(HO);v&&(n+=v.length);var b=g.lastIndexOf(XO);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new o(g),u(),v}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(qO)}function d(g){var v;for(g=g||[];v=f();)v!==!1&&g.push(v);return g}function f(){var g=i();if(!(By!=e.charAt(0)||Uy!=e.charAt(1))){for(var v=2;ki!=e.charAt(v)&&(Uy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,ki===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:JO,comment:b})}}function p(){var g=i(),v=c(WO);if(v){if(f(),!c(GO))return l("property missing ':'");var b=c(KO),x=g({type:ZO,property:Vy(v[0].replace(Fy,ki)),value:b?Vy(b[0].replace(Fy,ki)):ki});return c(QO),x}}function h(){var g=[];d(g);for(var v;v=p();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Vy(e){return e?e.replace(YO,ki):ki}var tI=eI,nI=ps&&ps.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=sI;const rI=nI(tI);function sI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,rI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:o,value:l}=i;s?t(o,l,i):l&&(n=n||{},n[o]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var iI=/^--[a-zA-Z0-9_-]+$/,oI=/-([a-z])/g,aI=/^[^-]+$/,lI=/^-(webkit|moz|ms|o|khtml)-/,cI=/^-(ms)-/,uI=function(e){return!e||aI.test(e)||iI.test(e)},dI=function(e,t){return t.toUpperCase()},zy=function(e,t){return"".concat(t,"-")},fI=function(e,t){return t===void 0&&(t={}),uI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(cI,zy):e=e.replace(lI,zy),e.replace(oI,dI))};Sd.camelCase=fI;var pI=ps&&ps.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},mI=pI(Og),hI=Sd;function Am(e,t){var n={};return!e||typeof e!="string"||(0,mI.default)(e,function(r,s){r&&s&&(n[(0,hI.camelCase)(r,t)]=s)}),n}Am.default=Am;var gI=Am;const xI=qu(gI),fC=pC("end"),Ig=pC("start");function pC(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function vI(e){const t=Ig(e),n=fC(e);if(t&&n)return{start:t,end:n}}function Ta(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?$y(e.position):"start"in e||"end"in e?$y(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return Hy(e&&e.line)+":"+Hy(e&&e.column)}function $y(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function Hy(e){return e&&typeof e=="number"?e:1}class jn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},o=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(o=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Ta(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}jn.prototype.file="";jn.prototype.name="";jn.prototype.reason="";jn.prototype.message="";jn.prototype.stack="";jn.prototype.column=void 0;jn.prototype.line=void 0;jn.prototype.ancestors=void 0;jn.prototype.cause=void 0;jn.prototype.fatal=void 0;jn.prototype.place=void 0;jn.prototype.ruleId=void 0;jn.prototype.source=void 0;const Fg={}.hasOwnProperty,yI=new Map,_I=/[A-Z]/g,bI=new Set(["table","tbody","thead","tfoot","tr"]),wI=new Set(["td","th"]),mC="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function kI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=TI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=RI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:zO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=hC(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function hC(e,t,n){if(t.type==="element")return SI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return CI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return jI(e,t,n);if(t.type==="mdxjsEsm")return EI(e,t);if(t.type==="root")return NI(e,t,n);if(t.type==="text")return PI(e,t)}function SI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=xC(e,t.tagName,!1),o=LI(e,t);let l=Ug(e,t);return bI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!LO(c):!0})),gC(e,o,i,t),Bg(o,l),e.ancestors.pop(),e.schema=r,e.create(t,i,o,n)}function CI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ll(e,t.position)}function EI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ll(e,t.position)}function jI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:xC(e,t.name,!0),o=AI(e,t),l=Ug(e,t);return gC(e,o,i,t),Bg(o,l),e.ancestors.pop(),e.schema=r,e.create(t,i,o,n)}function NI(e,t,n){const r={};return Bg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function PI(e,t){return t.value}function gC(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Bg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function RI(e,t,n){return r;function r(s,i,o,l){const u=Array.isArray(o.children)?n:t;return l?u(i,o,l):u(i,o)}}function TI(e,t){return n;function n(r,s,i,o){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,o,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function LI(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Fg.call(t.properties,s)){const i=DI(e,s,t.properties[s]);if(i){const[o,l]=i;e.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&wI.has(t.tagName)?r=l:n[o]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function AI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const o=i.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ll(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ll(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:yI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);i0?(ir(e,e.length,0,t),e):t}const Gy={}.hasOwnProperty;function yC(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Dr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=ui(/[A-Za-z]/),Cn=ui(/[\dA-Za-z]/),$I=ui(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=ui(/\d/),HI=ui(/[\dA-Fa-f]/),qI=ui(/[!-/:-@[-`{-~]/);function je(e){return e!==null&&e<-2}function ht(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const Cd=ui(new RegExp("\\p{P}|\\p{S}","u")),Bi=ui(/\s/);function ui(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function qo(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(o=String.fromCharCode(i,l),s=1):o="�"}else o=String.fromCharCode(i);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+s+1,o=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Ye(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return o;function o(c){return He(c)?(e.enter(n),l(c)):t(c)}function l(c){return He(c)&&i++o))return;const T=t.events.length;let D=T,z,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if(z){j=t.events[D][1].end;break}z=!0}for(x(r),k=T;k_;){const R=n[S];t.containerState=R[1],R[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function YI(e,t,n){return Ye(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Do(e){if(e===null||ht(e)||Bi(e))return 1;if(Cd(e))return 2}function Ed(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const f={...e[r][1].end},p={...e[n][1].start};Qy(f,-c),Qy(p,c),o={type:c>1?"strongSequence":"emphasisSequence",start:f,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:p},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},e[r][1].end={...o.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=xr(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=xr(u,[["enter",s,t],["enter",o,t],["exit",o,t],["enter",i,t]]),u=xr(u,Ed(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=xr(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=xr(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,ir(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&He(k)?Ye(e,y,"linePrefix",i+1)(k):y(k)}function y(k){return k===null||je(k)?e.check(Yy,v,S)(k):(e.enter("codeFlowValue"),_(k))}function _(k){return k===null||je(k)?(e.exit("codeFlowValue"),y(k)):(e.consume(k),_)}function S(k){return e.exit("codeFenced"),t(k)}function R(k,T,D){let z=0;return j;function j(me){return k.enter("lineEnding"),k.consume(me),k.exit("lineEnding"),H}function H(me){return k.enter("codeFencedFence"),He(me)?Ye(k,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(me):X(me)}function X(me){return me===l?(k.enter("codeFencedFenceSequence"),re(me)):D(me)}function re(me){return me===l?(z++,k.consume(me),re):z>=o?(k.exit("codeFencedFenceSequence"),He(me)?Ye(k,ae,"whitespace")(me):ae(me)):D(me)}function ae(me){return me===null||je(me)?(k.exit("codeFencedFence"),T(me)):D(me)}}}function lF(e,t,n){const r=this;return s;function s(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i)}function i(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Bf={name:"codeIndented",tokenize:uF},cF={partial:!0,tokenize:dF};function uF(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Ye(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?c(u):je(u)?e.attempt(cF,o,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||je(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function dF(e,t,n){const r=this;return s;function s(o){return r.parser.lazy[r.now().line]?n(o):je(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):Ye(e,i,"linePrefix",5)(o)}function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):je(o)?s(o):n(o)}}const fF={name:"codeText",previous:mF,resolve:pF,tokenize:hF};function pF(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&la(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),la(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),la(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function CC(e,t,n,r,s,i,o,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return f;function f(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),p):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(o),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function p(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),p(x)):x===null||x===60||je(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||ht(x))?(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):je(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||je(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!He(h)),h===92?p:f)}function p(h){return h===91||h===92||h===93?(e.consume(h),l++,f):f(h)}}function jC(e,t,n,r,s,i){let o;return l;function l(p){return p===34||p===39||p===40?(e.enter(r),e.enter(s),e.consume(p),e.exit(s),o=p===40?41:p,c):n(p)}function c(p){return p===o?(e.enter(s),e.consume(p),e.exit(s),e.exit(r),t):(e.enter(i),u(p))}function u(p){return p===o?(e.exit(i),c(o)):p===null?n(p):je(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),Ye(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===o||p===null||je(p)?(e.exit("chunkString"),u(p)):(e.consume(p),p===92?f:d)}function f(p){return p===o||p===92?(e.consume(p),d):d(p)}}function La(e,t){let n;return r;function r(s){return je(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):He(s)?Ye(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const kF={name:"definition",tokenize:CF},SF={partial:!0,tokenize:EF};function CF(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),o(h)}function o(h){return EC.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Dr(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return ht(h)?La(e,u)(h):u(h)}function u(h){return CC(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(SF,f,f)(h)}function f(h){return He(h)?Ye(e,p,"whitespace")(h):p(h)}function p(h){return h===null||je(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function EF(e,t,n){return r;function r(l){return ht(l)?La(e,s)(l):n(l)}function s(l){return jC(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return He(l)?Ye(e,o,"whitespace")(l):o(l)}function o(l){return l===null||je(l)?t(l):n(l)}}const jF={name:"hardBreakEscape",tokenize:NF};function NF(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return je(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const PF={name:"headingAtx",resolve:RF,tokenize:TF};function RF(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ir(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function TF(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||ht(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||je(d)?(e.exit("atxHeading"),t(d)):He(d)?Ye(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||ht(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const LF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Jy=["pre","script","style","textarea"],AF={concrete:!0,name:"htmlFlow",resolveTo:OF,tokenize:IF},DF={partial:!0,tokenize:BF},MF={partial:!0,tokenize:FF};function OF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function IF(e,t,n){const r=this;let s,i,o,l,c;return u;function u(A){return d(A)}function d(A){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(A),f}function f(A){return A===33?(e.consume(A),p):A===47?(e.consume(A),i=!0,v):A===63?(e.consume(A),s=3,r.interrupt?t:E):On(A)?(e.consume(A),o=String.fromCharCode(A),b):n(A)}function p(A){return A===45?(e.consume(A),s=2,h):A===91?(e.consume(A),s=5,l=0,g):On(A)?(e.consume(A),s=4,r.interrupt?t:E):n(A)}function h(A){return A===45?(e.consume(A),r.interrupt?t:E):n(A)}function g(A){const be="CDATA[";return A===be.charCodeAt(l++)?(e.consume(A),l===be.length?r.interrupt?t:X:g):n(A)}function v(A){return On(A)?(e.consume(A),o=String.fromCharCode(A),b):n(A)}function b(A){if(A===null||A===47||A===62||ht(A)){const be=A===47,Ae=o.toLowerCase();return!be&&!i&&Jy.includes(Ae)?(s=1,r.interrupt?t(A):X(A)):LF.includes(o.toLowerCase())?(s=6,be?(e.consume(A),x):r.interrupt?t(A):X(A)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(A):i?y(A):_(A))}return A===45||Cn(A)?(e.consume(A),o+=String.fromCharCode(A),b):n(A)}function x(A){return A===62?(e.consume(A),r.interrupt?t:X):n(A)}function y(A){return He(A)?(e.consume(A),y):j(A)}function _(A){return A===47?(e.consume(A),j):A===58||A===95||On(A)?(e.consume(A),S):He(A)?(e.consume(A),_):j(A)}function S(A){return A===45||A===46||A===58||A===95||Cn(A)?(e.consume(A),S):R(A)}function R(A){return A===61?(e.consume(A),k):He(A)?(e.consume(A),R):_(A)}function k(A){return A===null||A===60||A===61||A===62||A===96?n(A):A===34||A===39?(e.consume(A),c=A,T):He(A)?(e.consume(A),k):D(A)}function T(A){return A===c?(e.consume(A),c=null,z):A===null||je(A)?n(A):(e.consume(A),T)}function D(A){return A===null||A===34||A===39||A===47||A===60||A===61||A===62||A===96||ht(A)?R(A):(e.consume(A),D)}function z(A){return A===47||A===62||He(A)?_(A):n(A)}function j(A){return A===62?(e.consume(A),H):n(A)}function H(A){return A===null||je(A)?X(A):He(A)?(e.consume(A),H):n(A)}function X(A){return A===45&&s===2?(e.consume(A),ve):A===60&&s===1?(e.consume(A),oe):A===62&&s===4?(e.consume(A),de):A===63&&s===3?(e.consume(A),E):A===93&&s===5?(e.consume(A),q):je(A)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(DF,pe,re)(A)):A===null||je(A)?(e.exit("htmlFlowData"),re(A)):(e.consume(A),X)}function re(A){return e.check(MF,ae,pe)(A)}function ae(A){return e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),me}function me(A){return A===null||je(A)?re(A):(e.enter("htmlFlowData"),X(A))}function ve(A){return A===45?(e.consume(A),E):X(A)}function oe(A){return A===47?(e.consume(A),o="",B):X(A)}function B(A){if(A===62){const be=o.toLowerCase();return Jy.includes(be)?(e.consume(A),de):X(A)}return On(A)&&o.length<8?(e.consume(A),o+=String.fromCharCode(A),B):X(A)}function q(A){return A===93?(e.consume(A),E):X(A)}function E(A){return A===62?(e.consume(A),de):A===45&&s===2?(e.consume(A),E):X(A)}function de(A){return A===null||je(A)?(e.exit("htmlFlowData"),pe(A)):(e.consume(A),de)}function pe(A){return e.exit("htmlFlow"),t(A)}}function FF(e,t,n){const r=this;return s;function s(o){return je(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):n(o)}function i(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function BF(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Rl,t,n)}}const UF={name:"htmlText",tokenize:VF};function VF(e,t,n){const r=this;let s,i,o;return l;function l(E){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(E),c}function c(E){return E===33?(e.consume(E),u):E===47?(e.consume(E),R):E===63?(e.consume(E),_):On(E)?(e.consume(E),D):n(E)}function u(E){return E===45?(e.consume(E),d):E===91?(e.consume(E),i=0,g):On(E)?(e.consume(E),y):n(E)}function d(E){return E===45?(e.consume(E),h):n(E)}function f(E){return E===null?n(E):E===45?(e.consume(E),p):je(E)?(o=f,oe(E)):(e.consume(E),f)}function p(E){return E===45?(e.consume(E),h):f(E)}function h(E){return E===62?ve(E):E===45?p(E):f(E)}function g(E){const de="CDATA[";return E===de.charCodeAt(i++)?(e.consume(E),i===de.length?v:g):n(E)}function v(E){return E===null?n(E):E===93?(e.consume(E),b):je(E)?(o=v,oe(E)):(e.consume(E),v)}function b(E){return E===93?(e.consume(E),x):v(E)}function x(E){return E===62?ve(E):E===93?(e.consume(E),x):v(E)}function y(E){return E===null||E===62?ve(E):je(E)?(o=y,oe(E)):(e.consume(E),y)}function _(E){return E===null?n(E):E===63?(e.consume(E),S):je(E)?(o=_,oe(E)):(e.consume(E),_)}function S(E){return E===62?ve(E):_(E)}function R(E){return On(E)?(e.consume(E),k):n(E)}function k(E){return E===45||Cn(E)?(e.consume(E),k):T(E)}function T(E){return je(E)?(o=T,oe(E)):He(E)?(e.consume(E),T):ve(E)}function D(E){return E===45||Cn(E)?(e.consume(E),D):E===47||E===62||ht(E)?z(E):n(E)}function z(E){return E===47?(e.consume(E),ve):E===58||E===95||On(E)?(e.consume(E),j):je(E)?(o=z,oe(E)):He(E)?(e.consume(E),z):ve(E)}function j(E){return E===45||E===46||E===58||E===95||Cn(E)?(e.consume(E),j):H(E)}function H(E){return E===61?(e.consume(E),X):je(E)?(o=H,oe(E)):He(E)?(e.consume(E),H):z(E)}function X(E){return E===null||E===60||E===61||E===62||E===96?n(E):E===34||E===39?(e.consume(E),s=E,re):je(E)?(o=X,oe(E)):He(E)?(e.consume(E),X):(e.consume(E),ae)}function re(E){return E===s?(e.consume(E),s=void 0,me):E===null?n(E):je(E)?(o=re,oe(E)):(e.consume(E),re)}function ae(E){return E===null||E===34||E===39||E===60||E===61||E===96?n(E):E===47||E===62||ht(E)?z(E):(e.consume(E),ae)}function me(E){return E===47||E===62||ht(E)?z(E):n(E)}function ve(E){return E===62?(e.consume(E),e.exit("htmlTextData"),e.exit("htmlText"),t):n(E)}function oe(E){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),B}function B(E){return He(E)?Ye(e,q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E):q(E)}function q(E){return e.enter("htmlTextData"),o(E)}}const $g={name:"labelEnd",resolveAll:qF,resolveTo:WF,tokenize:GF},zF={tokenize:KF},$F={tokenize:QF},HF={tokenize:YF};function qF(e){let t=-1;const n=[];for(;++t=3&&(u===null||je(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),He(u)?Ye(e,l,"whitespace")(u):l(u))}}const Un={continuation:{tokenize:oB},exit:lB,name:"list",tokenize:iB},rB={partial:!0,tokenize:cB},sB={partial:!0,tokenize:aB};function iB(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,o=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++o<10?(e.consume(h),c):(!r.interrupt||o<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Rl,r.interrupt?n:d,e.attempt(rB,p,f))}function d(h){return r.containerState.initialBlankLine=!0,i++,p(h)}function f(h){return He(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),p):n(h)}function p(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function oB(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Rl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ye(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!He(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(sB,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ye(e,e.attempt(Un,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function aB(e,t,n){const r=this;return Ye(e,s,"listItemIndent",r.containerState.size+1);function s(i){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(i):n(i)}}function lB(e){e.exit(this.containerState.type)}function cB(e,t,n){const r=this;return Ye(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const o=r.events[r.events.length-1];return!He(i)&&o&&o[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Zy={name:"setextUnderline",resolveTo:uB,tokenize:dB};function uB(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",o,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function dB(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,f;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){f=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),s=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),He(u)?Ye(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||je(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const fB={tokenize:pB};function pB(e){const t=this,n=e.attempt(Rl,r,e.attempt(this.parser.constructs.flowInitial,s,Ye(e,e.attempt(this.parser.constructs.flow,s,e.attempt(vF,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const mB={resolveAll:PC()},hB=NC("string"),gB=NC("text");function NC(e){return{resolveAll:PC(e==="text"?xB:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,o,l);return o;function o(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const f=s[d];let p=-1;if(f)for(;++p-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}i>0&&o.push(e[s].slice(0,i))}return o}function RB(e,t){let n=-1;const r=[];let s;for(;++n0){const Be=K.tokenStack[K.tokenStack.length-1];(Be[1]||t_).call(K,void 0,Be[0])}for(F.position={start:Ds(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Ds(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},Ce=-1;++Ce0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function HB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function qB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function WB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=qo(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let o,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function GB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function KB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function LC(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const o=s[s.length-1];return o&&o.type==="text"?o.value+=r:s.push({type:"text",value:r}),s}function QB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return LC(e,t);const s={src:qo(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function YB(e,t){const n={src:qo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function XB(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function JB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return LC(e,t);const s={href:qo(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function ZB(e,t){const n={href:qo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function e6(e,t,n){const r=e.all(t),s=n?t6(n):AC(t),i={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let f;d&&d.type==="element"&&d.tagName==="p"?f=d:(f={type:"element",tagName:"p",properties:{},children:[]},r.unshift(f)),f.children.length>0&&f.children.unshift({type:"text",value:" "}),f.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function n6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=fC(t.children[t.children.length-1]);l&&c&&(o.position={start:l,end:c}),s.push(o)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function a6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(s_(t.slice(s),s>0,!1)),i.join("")}function s_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===n_||i===r_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===n_||i===r_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function u6(e,t){const n={type:"text",value:c6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function d6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const f6={blockquote:VB,break:zB,code:$B,delete:HB,emphasis:qB,footnoteReference:WB,heading:GB,html:KB,imageReference:QB,image:YB,inlineCode:XB,linkReference:JB,link:ZB,listItem:e6,list:n6,paragraph:r6,root:s6,strong:i6,table:o6,tableCell:l6,tableRow:a6,text:u6,thematicBreak:d6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const DC=-1,jd=0,Aa=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,MC=7,OC=8,i_=typeof self=="object"?self:globalThis,p6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,o]=t[s];switch(i){case jd:case DC:return n(o,s);case Aa:{const l=n([],s);for(const c of o)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of o)l[r(c)]=r(u);return l}case Hg:return n(new Date(o),s);case qg:{const{source:l,flags:c}=o;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of o)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of o)l.add(r(c));return l}case MC:{const{name:l,message:c}=o;return n(new i_[l](c),s)}case OC:return n(BigInt(o),s);case"BigInt":return n(Object(BigInt(o)),s);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:l}=new Uint8Array(o);return n(new DataView(l),o)}}return n(new i_[i](o),s)};return r},o_=e=>p6(new Map,e)(0),Wi="",{toString:m6}={},{keys:h6}=Object,ca=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=m6.call(e).slice(8,-1);switch(n){case"Array":return[Aa,Wi];case"Object":return[Ou,Wi];case"Date":return[Hg,Wi];case"RegExp":return[qg,Wi];case"Map":return[Wg,Wi];case"Set":return[Gg,Wi];case"DataView":return[Aa,n]}return n.includes("Array")?[Aa,n]:n.includes("Error")?[MC,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),g6=(e,t,n,r)=>{const s=(o,l)=>{const c=r.push(o)-1;return n.set(l,c),c},i=o=>{if(n.has(o))return n.get(o);let[l,c]=ca(o);switch(l){case jd:{let d=o;switch(c){case"bigint":l=OC,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([DC],o)}return s([l,d],o)}case Aa:{if(c){let p=o;return c==="DataView"?p=new Uint8Array(o.buffer):c==="ArrayBuffer"&&(p=new Uint8Array(o)),s([c,[...p]],o)}const d=[],f=s([l,d],o);for(const p of o)d.push(i(p));return f}case Ou:{if(c)switch(c){case"BigInt":return s([c,o.toString()],o);case"Boolean":case"Number":case"String":return s([c,o.valueOf()],o)}if(t&&"toJSON"in o)return i(o.toJSON());const d=[],f=s([l,d],o);for(const p of h6(o))(e||!yc(ca(o[p])))&&d.push([i(p),i(o[p])]);return f}case Hg:return s([l,o.toISOString()],o);case qg:{const{source:d,flags:f}=o;return s([l,{source:d,flags:f}],o)}case Wg:{const d=[],f=s([l,d],o);for(const[p,h]of o)(e||!(yc(ca(p))||yc(ca(h))))&&d.push([i(p),i(h)]);return f}case Gg:{const d=[],f=s([l,d],o);for(const p of o)(e||!yc(ca(p)))&&d.push(i(p));return f}}const{message:u}=o;return s([l,{name:c,message:u}],o)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return g6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?o_(a_(e,t)):structuredClone(e):(e,t)=>o_(a_(e,t));function x6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function v6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function y6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||x6,r=e.options.footnoteBackLabel||v6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+p+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+p},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(o),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return k6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?_6(e):b6(e);if(typeof e=="string")return w6(e);throw new Error("Expected function, string, or object as test")};function _6(e){const t=[];let n=-1;for(;++n":""))+")"})}return p;function p(){let h=IC,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=j6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==E6)for(v=(r?x.children.length:-1)+o,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function l_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function c_(e,t){const n=P6(e,t),r=n.one(e,void 0),s=y6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function D6(e,t){return e&&"run"in e?async function(n,r){const s=c_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return c_(n,{file:r,...e||t})}}function u_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,BC=Object.prototype.toString,d_=Object.defineProperty,f_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):BC.call(t)==="[object Array]"},m_=function(t){if(!t||BC.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},h_=function(t,n){d_&&n.name==="__proto__"?d_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},g_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(f_)return f_(t,n).value}else return;return t[n]},M6=function e(){var t,n,r,s,i,o,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});co.length;let c;l&&o.push(s);try{c=e.apply(this,o)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(o,...l){n||(n=!0,t(o,...l))}function i(o){s(null,o)}}const Wr={basename:F6,dirname:B6,extname:U6,join:V6,sep:"/"};function F6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Tl(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else o<0&&(i=!0,o=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function B6(e){if(Tl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function U6(e){Tl(e);let t=e.length,n=-1,r=0,s=-1,i=0,o;for(;t--;){const l=e.codePointAt(t);if(l===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function V6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function $6(e,t){let n="",r=0,s=-1,i=0,o=-1,l,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=o,i=0;continue}}else if(n.length>0){n="",r=0,s=o,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,o):n=e.slice(s+1,o),r=o-s-1;s=o,i=0}else l===46&&i>-1?i++:i=-1}return n}function Tl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const H6={cwd:q6};function q6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function W6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return G6(e)}function G6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[p][1];Bm(v)&&Bm(h)&&(h=Vf(!0,v,h)),r[p]=[u,h,...g]}}}}const X6=new Qg().freeze();function qf(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Wf(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Gf(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function v_(e){if(!Bm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function y_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return J6(e)?e:new UC(e)}function J6(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Z6(e){return typeof e=="string"||eU(e)}function eU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const tU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",__=[],b_={allowDangerousHtml:!0},nU=/^(https?|ircs?|mailto|xmpp)$/i,rU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function sU(e){const t=iU(e),n=oU(e);return aU(t.runSync(t.parse(n),n),e)}function iU(e){const t=e.rehypePlugins||__,n=e.remarkPlugins||__,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...b_}:b_;return X6().use(UB).use(n).use(D6,r).use(t)}function oU(e){const t=e.children||"",n=new UC;return typeof t=="string"&&(n.value=t),n}function aU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,o=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||lU;for(const d of rU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+tU+d.id,void 0);return Kg(e,u),kI(e,{Fragment:a.Fragment,components:s,ignoreInvalidStyle:!0,jsx:a.jsx,jsxs:a.jsxs,passKeys:!0,passNode:!0});function u(d,f,p){if(d.type==="raw"&&p&&typeof f=="number")return o?p.children.splice(f,1):p.children[f]={type:"text",value:d.value},f;if(d.type==="element"){let h;for(h in Ff)if(Object.hasOwn(Ff,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ff[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof f=="number"&&(h=!r(d,f,p)),h&&p&&typeof f=="number")return l&&d.children?p.children.splice(f,1,...d.children):p.children.splice(f,1),f}}}function lU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||nU.test(e.slice(0,t))?e:""}function w_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function cU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function uU(e,t,n){const s=Nd((n||{}).ignore||[]),i=dU(t);let o=-1;for(;++o0?{type:"text",value:k}:void 0),k===!1?p.lastIndex=S+1:(g!==S&&y.push({type:"text",value:u.value.slice(g,S)}),Array.isArray(k)?y.push(...k):k&&y.push(k),g=S+_[0].length,x=!0),!p.global)break;_=p.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=w_(e,"(");let i=w_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function VC(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Bi(n)||Cd(n))&&(!t||n!==47)}zC.peek=DU;function EU(){this.buffer()}function jU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function NU(){this.buffer()}function PU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function RU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Dr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function TU(e){this.exit(e)}function LU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Dr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function AU(e){this.exit(e)}function DU(){return"["}function zC(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const o=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),o(),i+=s.move("]"),i}function MU(){return{enter:{gfmFootnoteCallString:EU,gfmFootnoteCall:jU,gfmFootnoteDefinitionLabelString:NU,gfmFootnoteDefinition:PU},exit:{gfmFootnoteCallString:RU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:AU}}}function OU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:zC},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,o){const l=i.createTracker(o);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?$C:IU))),u(),c}}function IU(e,t,n){return t===0?e:$C(e,t,n)}function $C(e,t,n){return(n?"":" ")+e}const FU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];HC.peek=$U;function BU(){return{canContainEols:["delete"],enter:{strikethrough:VU},exit:{strikethrough:zU}}}function UU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:FU}],handlers:{delete:HC}}}function VU(e){this.enter({type:"delete",children:[]},e)}function zU(e){this.exit(e)}function HC(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let o=s.move("~~");return o+=n.containerPhrasing(e,{...s.current(),before:o,after:"~"}),o+=s.move("~~"),i(),o}function $U(){return"~"}function HU(e){return e.length}function qU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||HU,i=[],o=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}o[d]=v,l[d]=b}let f=-1;if(typeof r=="object"&&"length"in r)for(;++fc[f]&&(c[f]=y),h[f]=y),p[f]=_}o.splice(1,0,p),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const o=n.indentLines(n.containerFlow(e,i.current()),KU);return s(),o}function KU(e,t,n){return">"+(n?"":" ")+e}function QU(e,t){return S_(e,t.inConstruct,!0)&&!S_(e,t.notInConstruct,!1)}function S_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=i):i=1,s=r+t.length,r=n.indexOf(t,s);return o}function XU(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function JU(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function ZU(e,t,n,r){const s=JU(n),i=e.value||"",o=s==="`"?"GraveAccent":"Tilde";if(XU(e,n)){const f=n.enter("codeIndented"),p=n.indentLines(i,e7);return f(),p}const l=n.createTracker(r),c=s.repeat(Math.max(YU(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const f=n.enter(`codeFencedLang${o}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),f()}if(e.lang&&e.meta){const f=n.enter(`codeFencedMeta${o}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),f()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function e7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function t7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),o(),u}function n7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function cl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Fu(e,t,n){const r=Do(e),s=Do(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}qC.peek=r7;function qC(e,t,n,r){const s=n7(n),i=n.enter("emphasis"),o=n.createTracker(r),l=o.move(s);let c=o.move(n.containerPhrasing(e,{after:s,before:l,...o.current()}));const u=c.charCodeAt(0),d=Fu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=cl(u)+c.slice(1));const f=c.charCodeAt(c.length-1),p=Fu(r.after.charCodeAt(0),f,s);p.inside&&(c=c.slice(0,-1)+cl(f));const h=o.move(s);return i(),n.attentionEncodeSurroundingInfo={after:p.outside,before:d.outside},l+c+h}function r7(e,t,n){return n.options.emphasis||"*"}function s7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function i7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(s7(e,n)){const d=n.enter("headingSetext"),f=n.enter("phrasing"),p=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return f(),d(),p+` +`+(s===1?"=":"-").repeat(p.length-(Math.max(p.lastIndexOf("\r"),p.lastIndexOf(` +`))+1))}const o="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(o+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=cl(u.charCodeAt(0))+u.slice(1)),u=u?o+" "+u:o,n.options.closeAtx&&(u+=" "+o),c(),l(),u}WC.peek=o7;function WC(e){return e.value||""}function o7(){return"<"}GC.peek=a7;function GC(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),o(),u}function a7(){return"!"}KC.peek=l7;function KC(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let o=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const f=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return o(),n.stack=d,i(),s==="full"||!u||u!==f?c+=l.move(f+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function l7(){return"!"}QC.peek=c7;function QC(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}XC.peek=u7;function XC(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let l,c;if(YC(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let f=o.move("<");return f+=o.move(n.containerPhrasing(e,{before:f,after:">",...o.current()})),f+=o.move(">"),l(),n.stack=d,f}l=n.enter("link"),c=n.enter("label");let u=o.move("[");return u+=o.move(n.containerPhrasing(e,{before:u,after:"](",...o.current()})),u+=o.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=o.move("<"),u+=o.move(n.safe(e.url,{before:u,after:">",...o.current()})),u+=o.move(">")):(c=n.enter("destinationRaw"),u+=o.move(n.safe(e.url,{before:u,after:e.title?" ":")",...o.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=o.move(" "+s),u+=o.move(n.safe(e.title,{before:u,after:s,...o.current()})),u+=o.move(s),c()),u+=o.move(")"),l(),u}function u7(e,t,n){return YC(e,n)?"<":"["}JC.peek=d7;function JC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let o=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const f=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return o(),n.stack=d,i(),s==="full"||!u||u!==f?c+=l.move(f+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function d7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function f7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function p7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function ZC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function m7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let o=e.ordered?p7(n):Xg(n);const l=e.ordered?o==="."?")":".":f7(n);let c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),ZC(n)===o&&d){let f=-1;for(;++f-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let o=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(o-i.length)),l.shift(o);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(f,p,h){return p?(h?"":" ".repeat(o))+f:(h?i:i+" ".repeat(o-i.length))+f}}function x7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),o=n.containerPhrasing(e,r);return i(),s(),o}const v7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function y7(e,t,n,r){return(e.children.some(function(o){return v7(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function _7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}eE.peek=b7;function eE(e,t,n,r){const s=_7(n),i=n.enter("strong"),o=n.createTracker(r),l=o.move(s+s);let c=o.move(n.containerPhrasing(e,{after:s,before:l,...o.current()}));const u=c.charCodeAt(0),d=Fu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=cl(u)+c.slice(1));const f=c.charCodeAt(c.length-1),p=Fu(r.after.charCodeAt(0),f,s);p.inside&&(c=c.slice(0,-1)+cl(f));const h=o.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:p.outside,before:d.outside},l+c+h}function b7(e,t,n){return n.options.strong||"*"}function w7(e,t,n,r){return n.safe(e.value,r)}function k7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function S7(e,t,n){const r=(ZC(n)+(n.options.ruleSpaces?" ":"")).repeat(k7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const tE={blockquote:GU,break:C_,code:ZU,definition:t7,emphasis:qC,hardBreak:C_,heading:i7,html:WC,image:GC,imageReference:KC,inlineCode:QC,link:XC,linkReference:JC,list:m7,listItem:g7,paragraph:x7,root:y7,strong:eE,text:w7,thematicBreak:S7};function C7(){return{enter:{table:E7,tableData:E_,tableHeader:E_,tableRow:N7},exit:{codeText:P7,table:j7,tableData:Xf,tableHeader:Xf,tableRow:Xf}}}function E7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function j7(e){this.exit(e),this.data.inTable=void 0}function N7(e){this.enter({type:"tableRow",children:[]},e)}function Xf(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function P7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,R7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function R7(e,t){return t==="|"?t:e}function T7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:p,table:o,tableCell:c,tableRow:l}};function o(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=f(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return qU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const Q7={tokenize:rV,partial:!0};function Y7(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:eV,continuation:{tokenize:tV},exit:nV}},text:{91:{name:"gfmFootnoteCall",tokenize:Z7},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:X7,resolveTo:J7}}}}function X7(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){o=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!o||!o._balanced)return n(c);const u=Dr(r.sliceSerialize({start:o.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function J7(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function Z7(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,o;return l;function l(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),c}function c(f){return f!==94?n(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(f){if(i>999||f===93&&!o||f===null||f===91||ht(f))return n(f);if(f===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return s.includes(Dr(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(f)}return ht(f)||(o=!0),i++,e.consume(f),f===92?d:u}function d(f){return f===91||f===92||f===93?(e.consume(f),i++,u):u(f)}}function eV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,o=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!l||g===null||g===91||ht(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Dr(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return ht(g)||(l=!0),o++,e.consume(g),g===92?f:d}function f(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function p(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Ye(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function tV(e,t,n){return e.check(Rl,t,e.attempt(Q7,t,n))}function nV(e){e.exit("gfmFootnoteDefinition")}function rV(e,t,n){const r=this;return Ye(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(i):n(i)}}function sV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(o,l){let c=-1;for(;++c1?c(g):(o.consume(g),f++,h);if(f<2&&!n)return c(g);const b=o.exit("strikethroughSequenceTemporary"),x=Do(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class iV{constructor(){this.map=[]}add(t,n,r){oV(this,t,n,r)}consume(t){if(this.map.sort(function(i,o){return i[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function oV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const ae=r.events[H][1].type;if(ae==="lineEnding"||ae==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?k:c;return re===k&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(o=!0,i+=1),d(j)}function d(j){return j===null?n(j):je(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):He(j)?Ye(e,d,"whitespace")(j):(i+=1,o&&(o=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),f(j)))}function f(j){return j===null||j===124||ht(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?p:f)}function p(j){return j===92||j===124?(e.consume(j),f):f(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),o=!1,He(j)?Ye(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(o=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):R(j)}function v(j){return He(j)?Ye(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||je(j)?S(j):R(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):R(j)}function y(j){return j===45?(e.consume(j),y):j===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return He(j)?Ye(e,S,"whitespace")(j):S(j)}function S(j){return j===124?g(j):j===null||je(j)?!o||s!==i?R(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):R(j)}function R(j){return n(j)}function k(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||je(j)?(e.exit("tableRow"),t(j)):He(j)?Ye(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||ht(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?z:D)}function z(j){return j===92||j===124?(e.consume(j),D):D(j)}}function uV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],o=[0,0,0,0],l=!1,c=0,u,d,f;const p=new iV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",f,t]])}return s!==void 0&&(i.end=Object.assign({},Gi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function N_(e,t,n,r,s){const i=[],o=Gi(t.events,n);s&&(s.end=Object.assign({},o),i.push(["exit",s,t])),r.end=Object.assign({},o),i.push(["exit",r,t]),e.add(n+1,0,i)}function Gi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const dV={name:"tasklistCheck",tokenize:pV};function fV(){return{text:{91:dV}}}function pV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return ht(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),o):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),o):n(c)}function o(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return je(c)?t(c):He(c)?e.check({tokenize:mV},t,n)(c):n(c)}}function mV(e,t,n){return Ye(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function hV(e){return yC([U7(),Y7(),sV(e),lV(),fV()])}const gV={};function xV(e){const t=this,n=e||gV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(hV(n)),i.push(O7()),o.push(I7(n))}function vV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:o,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,f]=m.useState([]),[p,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[S,R]=m.useState([]),[k,T]=m.useState([]),[D,z]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[ae,me]=m.useState(!1),[ve,oe]=m.useState(380),[B,q]=m.useState(!1),[E,de]=m.useState(!0),[pe,A]=m.useState(null),[be,Ae]=m.useState(""),[w,Y]=m.useState(null),ce=l??ve,_e=c??oe,ye=m.useRef(null),ot=m.useRef(null),Xe=m.useRef(null),I=m.useRef(null),tt=m.useRef(null),gt=m.useRef(!1),at=m.useMemo(()=>{if(!o||!i)return 0;let U=0;return i.forEach(J=>{const Le=J.item_id||J.line_item_id,Ve=o[Le];Ve!=null&&Ve.total&&(U+=Ve.total)}),U},[o,i]),pt=m.useCallback(U=>{U.preventDefault(),q(!0)},[]);m.useEffect(()=>{const U=Le=>{if(!B)return;const Ve=window.innerWidth-Le.clientX,Q=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,Ve),Q))},J=()=>{q(!1)};return B&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",J),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",J),document.body.style.cursor="",document.body.style.userSelect=""}},[B]);const G=m.useCallback(U=>{h(U.target.value);const J=U.target;J.style.height="auto",J.style.height=Math.min(J.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;gt.current||(U=ye.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(gt.current=!1)},[g]);const N=m.useCallback(()=>{const U=ot.current;if(!U)return;const J=U.scrollHeight-U.scrollTop-U.clientHeight<100;gt.current=!J},[]);m.useEffect(()=>{var U;e&&((U=Xe.current)==null||U.focus())},[e]);const se=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),f(U=>{const J=[...U],Le=J.length-1;return Le>=0&&J[Le].isStreaming&&(J[Le]={...J[Le],isStreaming:!1,isThinking:!1,content:J[Le].content+` + +*[Generation stopped]*`}),J}))},[]),W=m.useCallback((U,J)=>{A(U),Ae(J)},[]),Se=m.useCallback(()=>{A(null),Ae("")},[]),Ne=m.useCallback(async(U,J)=>{try{await navigator.clipboard.writeText(J),Y(U),setTimeout(()=>Y(null),2e3)}catch(Le){console.error("Failed to copy:",Le)}},[]),[O,F]=m.useState(null),[K,ie]=m.useState(!1),Ce=m.useCallback(async U=>{if(!be.trim()||d.findIndex(Q=>Q.id===U)===-1)return;const Le=be.trim();if(T([]),A(null),Ae(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const Ve={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([Ve]),F(Le),ie(!0)},[be,d,b,se]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([U])}},[e,se]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&f([{id:"welcome",role:"assistant",content:se(),timestamp:new Date}])},[e,s,i,at,se]);const Be=m.useCallback(async(U,J)=>{var ct;const Le=U||p.trim();if(!Le||g)return;const Ve={id:`user-${Date.now()}`,role:"user",content:Le,timestamp:new Date,isEdited:J||!1};f(Ze=>[...Ze,Ve]),h(""),v(!0),re(null);const Q=`assistant-${Date.now()}`;f(Ze=>[...Ze,{id:Q,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const Ze=(i||S||[]).map(Oe=>{const De=Oe.line_item_id||Oe.item_id||Oe.draft_id,Pe=o==null?void 0:o[De];return{...Oe,total_cost:(Pe==null?void 0:Pe.total)||Oe.total_cost||0,dbu_cost:(Pe==null?void 0:Pe.dbu)||Oe.dbu_cost||0,vm_cost:(Pe==null?void 0:Pe.vm)||Oe.vm_cost||0}}),Ot=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:Ve.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:Ze,mode:u,stream:!0}),signal:I.current.signal});if(!Ot.ok)throw new Error(`HTTP ${Ot.status}: ${Ot.statusText}`);const ft=(ct=Ot.body)==null?void 0:ct.getReader();if(!ft)throw new Error("No response body");const xt=new TextDecoder;let St="",mt="",Ue=[];for(;;){const{done:Oe,value:De}=await ft.read();if(Oe)break;St+=xt.decode(De,{stream:!0});const Pe=St.split(` +`);St=Pe.pop()||"";for(const qt of Pe)if(qt.startsWith("data: ")){const Ct=qt.slice(6);if(Ct==="[DONE]")continue;try{const le=JSON.parse(Ct);if(le.type==="start")x(le.conversation_id);else if(le.type==="content")mt+=le.content,f(rt=>rt.map(Nt=>Nt.id===Q?{...Nt,content:mt,isThinking:!1}:Nt));else if(le.type==="tool_result")Ue.push({tool:le.tool,result:le.result});else if(le.type==="proposal")le.workload&&le.workload.proposal_id&&T(rt=>rt.some(wr=>wr.proposal_id===le.workload.proposal_id)?rt:[...rt,le.workload]);else if(le.type==="done")mt.includes("Error getting response")||mt.includes("AI service error")||(le.estimate&&_(le.estimate),le.workloads&&R(le.workloads),le.proposed_workloads&&le.proposed_workloads.length>0&&T(le.proposed_workloads));else if(le.type==="error")throw new Error(le.content)}catch{}}}f(Oe=>Oe.map(De=>De.id===Q?{...De,content:mt,isStreaming:!1,toolResults:Ue}:De))}catch(Ze){if(Ze.name==="AbortError")return;console.error("Chat error:",Ze),re(Ze.message||"Failed to get response"),f(Ot=>Ot.filter(ft=>ft.id!==Q))}finally{v(!1),I.current=null}},[p,g,b,s,i,y,S,o]);m.useEffect(()=>{O&&!g&&(Be(O,K),F(null),ie(!1))},[O,K,g,Be]);const dt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Be())},nt=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),R([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([U])},Ge=async U=>{if(b){z(J=>new Set(J).add(U));try{const J=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!J.ok)throw new Error("Failed to confirm workload");const Le=await J.json();if(T(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),r&&Le.workload_config)try{await r(Le.workload_config),f(Ve=>{var Q;return[...Ve,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(Q=Le.workload_config)==null?void 0:Q.workload_name}" added to estimate.`,timestamp:new Date}]})}catch(Ve){f(Q=>[...Q,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${Ve.message||"Database error"}. Please try again.`,timestamp:new Date}]),re(Ve.message||"Failed to add workload to database")}}catch(J){re(J.message||"Failed to confirm workload")}finally{z(J=>{const Le=new Set(J);return Le.delete(U),Le})}}},lt=async U=>{if(b){z(J=>new Set(J).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Le=k.find(Ve=>Ve.proposal_id===U);T(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),f(Ve=>[...Ve,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Le==null?void 0:Le.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(J){re(J.message||"Failed to reject workload")}finally{z(J=>{const Le=new Set(J);return Le.delete(U),Le})}}},Ke=async()=>{for(const U of k)await Ge(U.proposal_id)},Mt=async()=>{for(const U of k)await lt(U.proposal_id)};return e?a.jsx(a.Fragment,{children:ae?a.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:a.jsxs("button",{onClick:()=>me(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[a.jsx($c,{className:"w-5 h-5"}),a.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),a.jsx(ds,{className:"w-4 h-4"})]})}):a.jsxs("div",{ref:tt,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ce}px)`},children:[a.jsx("div",{onMouseDown:pt,className:ue("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",B&&"bg-lava-600/50"),children:a.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),a.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),a.jsxs("div",{className:"relative group",children:[a.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:a.jsx(uS,{className:"w-4 h-4"})}),a.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:a.jsxs("div",{className:"flex items-start gap-2",children:[a.jsx(fs,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),a.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:nt,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:a.jsx(en,{className:"w-4 h-4"})}),a.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:a.jsx(WD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&a.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[a.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:a.jsx(DD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[a.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),a.jsx("span",{className:"truncate",children:s.region||"N/A"}),a.jsx("span",{children:"•"}),a.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),a.jsxs("div",{className:"text-right flex-shrink-0",children:[a.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),a.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[at>0?a.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",at.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):a.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),a.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),k.length>0&&a.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[a.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(ty,{className:"w-4 h-4 text-amber-600"}),a.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[k.length," Proposed Workload",k.length!==1?"s":""," - Confirm to Add"]})]}),j?a.jsx(tr,{className:"w-4 h-4 text-amber-600"}):a.jsx(ds,{className:"w-4 h-4 text-amber-600"})]}),!j&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[a.jsxs("button",{onClick:Ke,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",k.length,")"]}),a.jsx("button",{onClick:Mt,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),a.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:k.map(U=>{const J=D.has(U.proposal_id);return a.jsx("div",{className:ue("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",J&&"opacity-50"),children:a.jsxs("div",{className:"flex items-start justify-between gap-2",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[a.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),a.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&a.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),a.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&a.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&a.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&a.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&a.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&a.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&a.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&a.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&a.jsx("span",{children:U.dlt_edition})]})]}),a.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:J?a.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:a.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:()=>Ge(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:a.jsx(Tu,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>lt(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:a.jsx(To,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),a.jsxs("div",{ref:ot,onScroll:N,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>a.jsx("div",{className:ue("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:a.jsx("div",{className:ue("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?a.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[a.jsx("textarea",{value:be,onChange:J=>Ae(J.target.value),onKeyDown:J=>{J.key==="Enter"&&!J.shiftKey&&(J.preventDefault(),Ce(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),a.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),a.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),a.jsxs("button",{onClick:()=>Ce(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[a.jsx(qs,{className:"w-3 h-3"}),"Save"]})]})]}):a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ue("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?a.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:a.jsxs("div",{className:"flex gap-1",children:[a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?a.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):a.jsx("div",{className:"ai-message-content",children:a.jsx(sU,{remarkPlugins:[xV],components:{h1:({children:J})=>a.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:J}),h2:({children:J})=>a.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:J}),h3:({children:J})=>a.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:J}),p:({children:J})=>a.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:J}),ul:({children:J})=>a.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:J}),ol:({children:J})=>a.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:J}),li:({children:J})=>a.jsx("li",{className:"text-[var(--text-primary)]",children:J}),strong:({children:J})=>a.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:J}),em:({children:J})=>a.jsx("em",{className:"text-[var(--text-secondary)] italic",children:J}),code:({className:J,children:Le})=>(J==null?void 0:J.includes("language-"))?a.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Le}):a.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Le}),pre:({children:J})=>a.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:J}),blockquote:({children:J})=>a.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:J}),hr:()=>a.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:J,children:Le})=>a.jsx("a",{href:J,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Le})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&a.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((J,Le)=>{var Ve;return a.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[(Ve=J.result)!=null&&Ve.success?a.jsx(Tu,{className:"w-3.5 h-3.5 text-green-500"}):a.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),a.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:J.tool.replace(/_/g," ")})]},Le)})}),a.jsxs("div",{className:ue("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&a.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&a.jsx("button",{onClick:()=>Ne(U.id,U.content),className:ue("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?a.jsx(_D,{className:"w-3.5 h-3.5"}):a.jsx(wD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&a.jsx("button",{onClick:()=>W(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:a.jsx(e3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&a.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:a.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[a.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),a.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&a.jsx("button",{onClick:nt,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),a.jsx("div",{ref:ye})]}),a.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&a.jsxs("div",{className:"mb-2",children:[a.jsxs("button",{onClick:()=>de(!E),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[E?a.jsx(tr,{className:"w-3 h-3"}):a.jsx(ds,{className:"w-3 h-3"}),E?"Hide Quick Actions":"Show Quick Actions"]}),E&&a.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,J)=>a.jsx("button",{onClick:()=>Be(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},J))})]}),a.jsxs("div",{className:"relative flex items-end",children:[a.jsx("textarea",{ref:Xe,value:p,onChange:G,onKeyDown:dt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:p.length>100?"auto":"hidden"}}),a.jsx("button",{onClick:g?M:()=>Be(),disabled:!g&&!p.trim(),className:ue("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":p.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?a.jsx(fS,{className:"w-4 h-4"}):a.jsx(YD,{className:"w-4 h-4"})}),p.length>100&&a.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:p.length})]}),a.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[a.jsx("span",{children:"Shift+Enter for new line"}),a.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function yV({className:e}){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const _V=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:i3}],P_=()=>a.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[a.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),a.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),a.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),a.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),a.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),a.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Jf=[{value:"light",label:"Light",icon:x3},{value:"dark",label:"Dark",icon:KD},{value:"system",label:"System",icon:jD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function bV(){const e=yl(),{theme:t,setTheme:n}=N3(),[r,s]=m.useState(!1),[i,o]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[f,p]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),S=m.useRef(null),{currentUser:R,isAuthenticated:k,authError:T,fetchCurrentUser:D,currentEstimate:z,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:ae,fetchReferenceData:me,loadPricingBundle:ve,isReferenceDataLoaded:oe,isPricingBundleLoaded:B}=_s(),q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",E=e.pathname==="/",de=q||E,pe=m.useCallback(()=>{T4(),ae(!1),p(!1),window.location.reload()},[ae]);m.useEffect(()=>{const Y=ce=>{var _e;console.log("Session expired event received:",ce.detail),g(((_e=ce.detail)==null?void 0:_e.message)||"Your session has expired"),p(!0),ae(!0)};return window.addEventListener(Em,Y),()=>{window.removeEventListener(Em,Y)}},[ae]),m.useEffect(()=>{de&&!v&&c(!0)},[de,v]);const A=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),be=m.useCallback(()=>{o(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!de&&l&&c(!1)},[de,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||me(),B||ve()},[me,ve,oe,B]),m.useEffect(()=>{const Y=ce=>{_.current&&!_.current.contains(ce.target)&&s(!1),S.current&&!S.current.contains(ce.target)&&o(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const Ae=Jf.find(Y=>Y.value===t)||Jf[2],w=Ae.icon;return T?a.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:a.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[a.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:a.jsx(P_,{})}),a.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),a.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),a.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[a.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),a.jsxs("p",{className:"mb-2",children:["Set the ",a.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),a.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):a.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[a.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-14",children:[a.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:a.jsx(P_,{})}),a.jsxs("div",{children:[a.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),a.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("nav",{className:"flex items-center gap-1",children:_V.map(Y=>{const ce=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return a.jsxs(bu,{to:Y.href,className:ue("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ce&&"border"),style:ce?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[a.jsx(Y.icon,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),k&&R&&a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[a.jsx(w3,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:R.full_name||R.email,children:R.full_name||R.email.split("@")[0]})]}),a.jsxs("div",{className:"relative",ref:_,children:[a.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[a.jsx(w,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm hidden sm:inline",children:Ae.label}),a.jsx(tr,{className:ue("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&a.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Jf.map(Y=>{const ce=Y.icon,_e=t===Y.value;return a.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[a.jsx(ce,{className:"w-4 h-4"}),a.jsx("span",{children:Y.label})]},Y.value)})})]}),a.jsxs("div",{className:"relative",ref:S,children:[a.jsxs("button",{onClick:be,className:ue("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[a.jsx(l3,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&a.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[a.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),a.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),a.jsx(nm,{children:i&&a.jsxs(Bt.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[a.jsx("div",{className:"px-3 py-1.5 mb-1",children:a.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),a.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>o(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[a.jsx(OD,{className:"w-4 h-4 text-blue-500"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:"Documentation"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),a.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>o(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[a.jsx(_m,{className:"w-4 h-4 text-purple-500"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:"Official Pricing"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),a.jsx("main",{className:"flex-1",style:l&&de?{marginRight:`${u}px`}:void 0,children:a.jsx(Bt.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:a.jsx(kN,{})},e.pathname)}),a.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&de?{marginRight:`${u}px`}:{}},children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[a.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[a.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),a.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),a.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[a.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),a.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),de&&a.jsx(vV,{isOpen:l,onClose:()=>c(!1),currentEstimate:q?z:void 0,currentWorkloads:q?j:void 0,itemCosts:q?H:void 0,mode:E?"home":"estimate",onWorkloadConfirmed:q?async Y=>{if(z!=null&&z.estimate_id)try{await X({estimate_id:z.estimate_id,...Y}),re(z.estimate_id),$e.success(`Workload "${Y.workload_name}" added!`)}catch(ce){throw $e.error(ce.message||"Failed to add workload"),ce}}:void 0,onWidthChange:d,panelWidth:u}),de&&!l&&a.jsxs("button",{onClick:A,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[a.jsx(yV,{className:"w-5 h-5"}),a.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&a.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),a.jsx(nm,{children:f&&a.jsx(Bt.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:a.jsxs(Bt.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[a.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[a.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:a.jsx(fs,{className:"w-10 h-10 text-white"})}),a.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),a.jsxs("div",{className:"px-6 py-6",children:[a.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),a.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[a.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),a.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[a.jsx("li",{children:"Your authentication token has expired"}),a.jsx("li",{children:"This can happen after extended inactivity"}),a.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),a.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[a.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),a.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function wV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Wo(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Qn(e){var t,n;return e?Wo(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Qn(e);return e instanceof t}function Ll(e){return Wo(e)?!1:e instanceof Qn(e).HTMLElement}function uE(e){return e instanceof Qn(e).SVGElement}function Go(e){return e?Wo(e)?e.document:Zg(e)?ex(e)?e:Ll(e)||uE(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function ul(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Al(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Bu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Zf={};function Dl(e,t){return m.useMemo(()=>{if(t)return t;const n=Zf[e]==null?0:Zf[e]+1;return Zf[e]=n,e+"-"+n},[e,t])}function dE(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(o);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const _o=dE(1),Uu=dE(-1);function SV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Qn(e.target);return t&&e instanceof t}function CV(e){if(!e)return!1;const{TouchEvent:t}=Qn(e.target);return t&&e instanceof t}function $m(e){if(CV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return SV(e)?{x:e.clientX,y:e.clientY}:null}const Mo=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Mo.Translate.toString(e),Mo.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),R_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function EV(e){return e.matches(R_)?e:e.querySelector(R_)}const jV={display:"none"};function NV(e){let{id:t,value:n}=e;return un.createElement("div",{id:t,style:jV},n)}function PV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return un.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function RV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const fE=m.createContext(null);function TV(e){const t=m.useContext(fE);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function LV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(o=>{var l;return(l=o[s])==null?void 0:l.call(o,i)})},[e]),t]}const AV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},DV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function MV(e){let{announcements:t=DV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=AV}=e;const{announce:i,announcement:o}=RV(),l=Dl("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),TV(m.useMemo(()=>({onDragStart(f){let{active:p}=f;i(t.onDragStart({active:p}))},onDragMove(f){let{active:p,over:h}=f;t.onDragMove&&i(t.onDragMove({active:p,over:h}))},onDragOver(f){let{active:p,over:h}=f;i(t.onDragOver({active:p,over:h}))},onDragEnd(f){let{active:p,over:h}=f;i(t.onDragEnd({active:p,over:h}))},onDragCancel(f){let{active:p,over:h}=f;i(t.onDragCancel({active:p,over:h}))}}),[i,t])),!c)return null;const d=un.createElement(un.Fragment,null,un.createElement(NV,{id:r,value:s.draggable}),un.createElement(PV,{id:l,announcement:o}));return n?oo.createPortal(d,n):d}var nn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(nn||(nn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function pE(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Or=Object.freeze({x:0,y:0});function OV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function IV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function FV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function BV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function T_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const mE=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=T_(t,t.left,t.top),i=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=OV(T_(c),s);i.push({id:l,data:{droppableContainer:o,value:u}})}}return i.sort(IV)};function UV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),o=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:o}=i,l=n.get(o);if(l){const c=UV(l,t);c>0&&s.push({id:o,data:{droppableContainer:i,value:c}})}}return s.sort(FV)};function zV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function hE(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Or}function $V(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...o,top:o.top+e*l.y,bottom:o.bottom+e*l.y,left:o.left+e*l.x,right:o.right+e*l.x}),{...n})}}const HV=$V(1);function qV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function WV(e,t,n){const r=qV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:o,y:l}=r,c=e.left-o-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,f=i?e.height/i:e.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const GV={ignoreTransform:!1};function Ko(e,t){t===void 0&&(t=GV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Qn(e).getComputedStyle(e);u&&(n=WV(n,u,d))}const{top:r,left:s,width:i,height:o,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:o,bottom:l,right:c}}function L_(e){return Ko(e,{ignoreTransform:!0})}function KV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function QV(e,t){return t===void 0&&(t=Qn(e).getComputedStyle(e)),t.position==="fixed"}function YV(e,t){t===void 0&&(t=Qn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Ll(s)||uE(s)||n.includes(s))return n;const i=Qn(e).getComputedStyle(s);return s!==e&&YV(s,i)&&n.push(s),QV(s,i)?n:r(s.parentNode)}return e?r(e):n}function gE(e){const[t]=rx(e,1);return t??null}function ep(e){return!Rd||!e?null:Wo(e)?e:Zg(e)?ex(e)||e===Go(e).scrollingElement?window:Ll(e)?e:null:null}function xE(e){return Wo(e)?e.scrollX:e.scrollLeft}function vE(e){return Wo(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:xE(e),y:vE(e)}}var cn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(cn||(cn={}));function yE(e){return!Rd||!e?!1:e===document.scrollingElement}function _E(e){const t={x:0,y:0},n=yE(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,o=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:o,isRight:l,maxScroll:r,minScroll:t}}const XV={x:.2,y:.2};function JV(e,t,n,r,s){let{top:i,left:o,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=XV);const{isTop:u,isBottom:d,isLeft:f,isRight:p}=_E(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=cn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=cn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!p&&l>=t.right-v.width?(h.x=cn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!f&&o<=t.left+v.width&&(h.x=cn.Backward,g.x=r*Math.abs((t.left+v.width-o)/v.width)),{direction:h,speed:g}}function ZV(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:o}=window;return{top:0,left:0,right:i,bottom:o,width:i,height:o}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function bE(e){return e.reduce((t,n)=>_o(t,Hm(n)),Or)}function ez(e){return e.reduce((t,n)=>t+xE(n),0)}function tz(e){return e.reduce((t,n)=>t+vE(n),0)}function nz(e,t){if(t===void 0&&(t=Ko),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);gE(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const rz=[["x",["left","right"],ez],["y",["top","bottom"],tz]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=bE(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,o,l]of rz)for(const c of o)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Da{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function sz(e){const{EventTarget:t}=Qn(e);return e instanceof t?e:Go(e)}function tp(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var mr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(mr||(mr={}));function A_(e){e.preventDefault()}function iz(e){e.stopPropagation()}var et;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(et||(et={}));const wE={start:[et.Space,et.Enter],cancel:[et.Esc],end:[et.Space,et.Enter,et.Tab]},oz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case et.Right:return{...n,x:n.x+25};case et.Left:return{...n,x:n.x-25};case et.Down:return{...n,y:n.y+25};case et.Up:return{...n,y:n.y-25}}};class Td{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Da(Go(n)),this.windowListeners=new Da(Qn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(mr.Resize,this.handleCancel),this.windowListeners.add(mr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(mr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&nz(r),n(Or)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=wE,coordinateGetter:o=oz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Or;this.referenceCoordinates||(this.referenceCoordinates=d);const f=o(t,{active:n,context:r.current,currentCoordinates:d});if(f){const p=Uu(f,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:S,maxScroll:R,minScroll:k}=_E(v),T=ZV(v),D={x:Math.min(b===et.Right?T.right-T.width/2:T.right,Math.max(b===et.Right?T.left:T.left+T.width/2,f.x)),y:Math.min(b===et.Down?T.bottom-T.height/2:T.bottom,Math.max(b===et.Down?T.top:T.top+T.height/2,f.y))},z=b===et.Right&&!y||b===et.Left&&!_,j=b===et.Down&&!S||b===et.Up&&!x;if(z&&D.x!==f.x){const H=v.scrollLeft+p.x,X=b===et.Right&&H<=R.x||b===et.Left&&H>=k.x;if(X&&!p.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===et.Right?v.scrollLeft-R.x:v.scrollLeft-k.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==f.y){const H=v.scrollTop+p.y,X=b===et.Down&&H<=R.y||b===et.Up&&H>=k.y;if(X&&!p.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===et.Down?v.scrollTop-R.y:v.scrollTop-k.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,_o(Uu(f,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Td.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=wE,onActivation:s}=t,{active:i}=n;const{code:o}=e.nativeEvent;if(r.start.includes(o)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function D_(e){return!!(e&&"distance"in e)}function M_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=sz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:o}=i;this.props=t,this.events=n,this.document=Go(o),this.documentListeners=new Da(this.document),this.listeners=new Da(r),this.windowListeners=new Da(Qn(o)),this.initialCoordinates=(s=$m(i))!=null?s:Or,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(mr.Resize,this.handleCancel),this.windowListeners.add(mr.DragStart,A_),this.windowListeners.add(mr.VisibilityChange,this.handleCancel),this.windowListeners.add(mr.ContextMenu,A_),this.documentListeners.add(mr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(M_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(D_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(mr.Click,iz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(mr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:o,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Or,u=Uu(s,c);if(!r&&l){if(D_(l)){if(l.tolerance!=null&&tp(u,l.tolerance))return this.handleCancel();if(tp(u,l.distance))return this.handleStart()}if(M_(l)&&tp(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),o(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===et.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const az={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ld extends ix{constructor(t){const{event:n}=t,r=Go(n.target);super(t,az,r)}}Ld.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const lz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class cz extends ix{constructor(t){super(t,lz,Go(t.event.target))}}cz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const np={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class uz extends ix{constructor(t){super(t,np)}static setup(){return window.addEventListener(np.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(np.move.name,t)};function t(){}}}uz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Ma;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Ma||(Ma={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function dz(e){let{acceleration:t,activator:n=Ma.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:o=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:p}=e;const h=pz({delta:f,disabled:!i}),[g,v]=kV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Ma.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Ma.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),S=m.useCallback(()=>{const k=_.current;if(!k)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;k.scrollBy(T,D)},[]),R=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const k of R){if((r==null?void 0:r(k))===!1)continue;const T=u.indexOf(k),D=d[T];if(!D)continue;const{direction:z,speed:j}=JV(k,D,y,t,p);for(const H of["x","y"])h[H][z[H]]||(j[H]=0,z[H]=0);if(j.x>0||j.y>0){v(),_.current=k,g(S,o),b.current=j,x.current=z;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,S,r,v,i,o,JSON.stringify(y),JSON.stringify(h),g,u,R,d,JSON.stringify(p)])}const fz={x:{[cn.Backward]:!1,[cn.Forward]:!1},y:{[cn.Backward]:!1,[cn.Forward]:!1}};function pz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Al(s=>{if(n||!r||!s)return fz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[cn.Backward]:s.x[cn.Backward]||i.x===-1,[cn.Forward]:s.x[cn.Forward]||i.x===1},y:{[cn.Backward]:s.y[cn.Backward]||i.y===-1,[cn.Forward]:s.y[cn.Forward]||i.y===1}}},[n,t,r])}function mz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Al(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function hz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,r)}));return[...n,...i]},[]),[e,t])}var dl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(dl||(dl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const O_=new Map;function gz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,o]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),f=b(),p=ul(f),h=m.useCallback(function(x){x===void 0&&(x=[]),!p.current&&o(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[p]),g=m.useRef(null),v=Al(x=>{if(f&&!n)return O_;if(!x||x===O_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const S=_.node.current,R=S?new sx(c(S),S):null;_.rect.current=R,R&&y.set(_.id,R)}return y}return x},[e,i,n,f,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{f||h()},[n,f]),m.useEffect(()=>{i&&i.length>0&&o(null)},[JSON.stringify(i)]),m.useEffect(()=>{f||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,f,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case dl.Always:return!1;case dl.BeforeDragging:return n;default:return!n}}}function kE(e,t){return Al(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function xz(e,t){return kE(e,t)}function vz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ad(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function yz(e){return new sx(Ko(e),e)}function I_(e,t,n){t===void 0&&(t=yz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const o=vz({callback(c){if(e)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(e)){i();break}}}}),l=Ad({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[e]),r}function _z(e){const t=kE(e);return hE(e,t)}const F_=[];function bz(e){const t=m.useRef(e),n=Al(r=>e?r&&r!==F_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):F_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function wz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const o=ep(i.target);o&&n(l=>l?(l.set(o,Hm(o)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){o(i);const l=e.map(c=>{const u=ep(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{o(e),o(i)};function o(l){l.forEach(c=>{const u=ep(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,o)=>_o(i,o),Or):bE(e):Or,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Or;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Or}function kz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Sz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=o=>{i(o,t)},n},{}),[e,t])}function SE(e){return m.useMemo(()=>e?KV(e):null,[e])}const U_=[];function Cz(e,t){t===void 0&&(t=Ko);const[n]=e,r=SE(n?Qn(n):null),[s,i]=m.useState(U_);function o(){i(()=>e.length?e.map(c=>yE(c)?r:new sx(t(c),c)):U_)}const l=Ad({callback:o});return es(()=>{l==null||l.disconnect(),o(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Ez(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Ll(t)?t:e}function jz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Ll(d)){r(f=>{const p=t(d);return f?{...f,width:p.width,height:p.height}:p});break}},[t]),i=Ad({callback:s}),o=m.useCallback(u=>{const d=Ez(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Bu(o);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Nz=[{sensor:Ld,options:{}},{sensor:Td,options:{}}],Pz={current:{}},Qc={draggable:{measure:L_},droppable:{measure:L_,strategy:dl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Ko}};class Oa extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Rz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Oa,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Tz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Tz),CE=m.createContext(Rz);function Lz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Oa}}}function Az(e,t){switch(t.type){case nn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case nn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case nn.DragEnd:case nn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case nn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Oa(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case nn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const o=new Oa(e.droppable.containers);return o.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:o}}}case nn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Oa(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Dz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),o=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&o!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(o);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=EV(d);if(f){f.focus();break}}})}},[r,t,s,o,i]),null}function Mz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Oz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function Iz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:o,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!o&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=hE(d,r);if(o||(f.x=0),l||(f.y=0),i.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const p=gE(u);p&&p.scrollBy({top:f.y,left:f.x})}},[t,o,l,r,n])}const EE=m.createContext({...Or,scaleX:1,scaleY:1});var Fs;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Fs||(Fs={}));const jE=m.memo(function(t){var n,r,s,i;let{id:o,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Nz,collisionDetection:f=VV,measuring:p,modifiers:h,...g}=t;const v=m.useReducer(Az,void 0,Lz),[b,x]=v,[y,_]=LV(),[S,R]=m.useState(Fs.Uninitialized),k=S===Fs.Initialized,{draggable:{active:T,nodes:D,translate:z},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var Q;return T!=null?{id:T,data:(Q=H==null?void 0:H.data)!=null?Q:Pz,rect:X}:null},[T,H]),ae=m.useRef(null),[me,ve]=m.useState(null),[oe,B]=m.useState(null),q=ul(g,Object.values(g)),E=Dl("DndDescribedBy",o),de=m.useMemo(()=>j.getEnabled(),[j]),pe=Oz(p),{droppableRects:A,measureDroppableContainers:be,measuringScheduled:Ae}=gz(de,{dragging:k,dependencies:[z.x,z.y],config:pe.droppable}),w=mz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ce=Ve(),_e=xz(w,pe.draggable.measure);Iz({activeNode:T!=null?D.get(T):null,config:ce.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ye=I_(w,pe.draggable.measure,_e),ot=I_(w?w.parentElement:null),Xe=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:A,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Xe.current.over)==null?void 0:n.id),tt=jz({measure:pe.dragOverlay.measure}),gt=(r=tt.nodeRef.current)!=null?r:w,at=k?(s=tt.rect)!=null?s:ye:null,pt=!!(tt.nodeRef.current&&tt.rect),G=_z(pt?null:ye),P=SE(gt?Qn(gt):null),N=bz(k?I??w:null),se=Cz(N),M=Mz(h,{transform:{x:z.x-G.x,y:z.y-G.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ye,containerNodeRect:ot,draggingNodeRect:at,over:Xe.current.over,overlayNodeRect:tt.rect,scrollableAncestors:N,scrollableAncestorRects:se,windowRect:P}),W=Y?_o(Y,z):null,Se=wz(N),Ne=B_(Se),O=B_(Se,[ye]),F=_o(M,Ne),K=at?HV(at,M):null,ie=re&&K?f({active:re,collisionRect:K,droppableRects:A,droppableContainers:de,pointerCoordinates:W}):null,Ce=BV(ie,"id"),[Be,dt]=m.useState(null),nt=pt?M:_o(M,O),Ge=zV(nt,(i=Be==null?void 0:Be.rect)!=null?i:null,ye),lt=m.useRef(null),Ke=m.useCallback((Q,ct)=>{let{sensor:Ze,options:Ot}=ct;if(ae.current==null)return;const ft=D.get(ae.current);if(!ft)return;const xt=Q.nativeEvent,St=new Ze({active:ae.current,activeNode:ft,event:xt,options:Ot,context:Xe,onAbort(Ue){if(!D.get(Ue))return;const{onDragAbort:De}=q.current,Pe={id:Ue};De==null||De(Pe),y({type:"onDragAbort",event:Pe})},onPending(Ue,Oe,De,Pe){if(!D.get(Ue))return;const{onDragPending:Ct}=q.current,le={id:Ue,constraint:Oe,initialCoordinates:De,offset:Pe};Ct==null||Ct(le),y({type:"onDragPending",event:le})},onStart(Ue){const Oe=ae.current;if(Oe==null)return;const De=D.get(Oe);if(!De)return;const{onDragStart:Pe}=q.current,qt={activatorEvent:xt,active:{id:Oe,data:De.data,rect:X}};oo.unstable_batchedUpdates(()=>{Pe==null||Pe(qt),R(Fs.Initializing),x({type:nn.DragStart,initialCoordinates:Ue,active:Oe}),y({type:"onDragStart",event:qt}),ve(lt.current),B(xt)})},onMove(Ue){x({type:nn.DragMove,coordinates:Ue})},onEnd:mt(nn.DragEnd),onCancel:mt(nn.DragCancel)});lt.current=St;function mt(Ue){return async function(){const{active:De,collisions:Pe,over:qt,scrollAdjustedTranslate:Ct}=Xe.current;let le=null;if(De&&Ct){const{cancelDrop:rt}=q.current;le={activatorEvent:xt,active:De,collisions:Pe,delta:Ct,over:qt},Ue===nn.DragEnd&&typeof rt=="function"&&await Promise.resolve(rt(le))&&(Ue=nn.DragCancel)}ae.current=null,oo.unstable_batchedUpdates(()=>{x({type:Ue}),R(Fs.Uninitialized),dt(null),ve(null),B(null),lt.current=null;const rt=Ue===nn.DragEnd?"onDragEnd":"onDragCancel";if(le){const Nt=q.current[rt];Nt==null||Nt(le),y({type:rt,event:le})}})}}},[D]),Mt=m.useCallback((Q,ct)=>(Ze,Ot)=>{const ft=Ze.nativeEvent,xt=D.get(Ot);if(ae.current!==null||!xt||ft.dndKit||ft.defaultPrevented)return;const St={active:xt};Q(Ze,ct.options,St)===!0&&(ft.dndKit={capturedBy:ct.sensor},ae.current=Ot,Ke(Ze,ct))},[D,Ke]),U=hz(d,Mt);kz(d),es(()=>{ye&&S===Fs.Initializing&&R(Fs.Initialized)},[ye,S]),m.useEffect(()=>{const{onDragMove:Q}=q.current,{active:ct,activatorEvent:Ze,collisions:Ot,over:ft}=Xe.current;if(!ct||!Ze)return;const xt={active:ct,activatorEvent:Ze,collisions:Ot,delta:{x:F.x,y:F.y},over:ft};oo.unstable_batchedUpdates(()=>{Q==null||Q(xt),y({type:"onDragMove",event:xt})})},[F.x,F.y]),m.useEffect(()=>{const{active:Q,activatorEvent:ct,collisions:Ze,droppableContainers:Ot,scrollAdjustedTranslate:ft}=Xe.current;if(!Q||ae.current==null||!ct||!ft)return;const{onDragOver:xt}=q.current,St=Ot.get(Ce),mt=St&&St.rect.current?{id:St.id,rect:St.rect.current,data:St.data,disabled:St.disabled}:null,Ue={active:Q,activatorEvent:ct,collisions:Ze,delta:{x:ft.x,y:ft.y},over:mt};oo.unstable_batchedUpdates(()=>{dt(mt),xt==null||xt(Ue),y({type:"onDragOver",event:Ue})})},[Ce]),es(()=>{Xe.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:K,collisions:ie,droppableRects:A,draggableNodes:D,draggingNode:gt,draggingNodeRect:at,droppableContainers:j,over:Be,scrollableAncestors:N,scrollAdjustedTranslate:F},X.current={initial:at,translated:K}},[re,w,ie,K,D,gt,at,A,j,Be,N,F]),dz({...ce,delta:z,draggingRect:K,pointerCoordinates:W,scrollableAncestors:N,scrollableAncestorRects:se});const J=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ye,activatorEvent:oe,collisions:ie,containerNodeRect:ot,dragOverlay:tt,draggableNodes:D,droppableContainers:j,droppableRects:A,over:Be,measureDroppableContainers:be,scrollableAncestors:N,scrollableAncestorRects:se,measuringConfiguration:pe,measuringScheduled:Ae,windowRect:P}),[re,w,ye,oe,ie,ot,tt,D,j,A,Be,be,N,se,pe,Ae,P]),Le=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ye,ariaDescribedById:{draggable:E},dispatch:x,draggableNodes:D,over:Be,measureDroppableContainers:be}),[oe,U,re,ye,x,E,D,Be,be]);return un.createElement(fE.Provider,{value:_},un.createElement(Dd.Provider,{value:Le},un.createElement(CE.Provider,{value:J},un.createElement(EE.Provider,{value:Ge},u)),un.createElement(Dz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),un.createElement(MV,{...l,hiddenTextDescribedById:E}));function Ve(){const Q=(me==null?void 0:me.autoScrollEnabled)===!1,ct=typeof c=="object"?c.enabled===!1:c===!1,Ze=k&&!Q&&!ct;return typeof c=="object"?{...c,enabled:Ze}:{enabled:Ze}}}),Fz=m.createContext(null),V_="button",Bz="Draggable";function Uz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Dl(Bz),{activators:o,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:p}=m.useContext(Dd),{role:h=V_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?EE:Fz),[y,_]=Bu(),[S,R]=Bu(),k=Sz(o,t),T=ul(n);es(()=>(f.set(t,{id:t,key:i,node:y,activatorNode:S,data:T}),()=>{const z=f.get(t);z&&z.key===i&&f.delete(t)}),[f,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===V_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:k,node:y,over:p,setNodeRef:_,setActivatorNodeRef:R,transform:x}}function Vz(){return m.useContext(CE)}const zz="Droppable",$z={timeout:25};function Hz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Dl(zz),{active:o,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),f=m.useRef(!1),p=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...$z,...s},x=ul(v??r),y=m.useCallback(()=>{if(!f.current){f.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ad({callback:y,disabled:g||!o}),S=m.useCallback((D,z)=>{_&&(z&&(_.unobserve(z),f.current=!1),D&&_.observe(D))},[_]),[R,k]=Bu(S),T=ul(t);return m.useEffect(()=>{!_||!R.current||(_.disconnect(),f.current=!1,_.observe(R.current))},[R,_]),m.useEffect(()=>(l({type:nn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:R,rect:p,data:T}}),()=>l({type:nn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:nn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:o,rect:p,isOver:(c==null?void 0:c.id)===r,node:R,over:c,setNodeRef:k}}function ox(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function qz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Wz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ox(t,r,n),o=t[s],l=i[s];return!l||!o?null:{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}},Sc={scaleX:1,scaleY:1},PE=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:o}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[o];return u?{x:0,y:nn&&s<=o?{x:0,y:-l.height-c,...Sc}:s=o?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Kz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(k=>typeof k=="object"&&"id"in k?k.id:k),[r]),g=o!=null,v=o?h.indexOf(o.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Wz(h,x.current),_=b!==-1&&v===-1||y,S=Gz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const R=m.useMemo(()=>({activeIndex:v,containerId:f,disabled:S,disableTransforms:_,items:h,overIndex:b,useDragOverlay:p,sortedRects:qz(h,c),strategy:s}),[v,f,S.draggable,S.droppable,_,h,b,c,p,s]);return un.createElement(TE.Provider,{value:R},t)}const Qz=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ox(n,r,s).indexOf(t)},Yz=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:o,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===o?!1:n?!0:o!==s&&t===c},Xz={duration:200,easing:"ease"},AE="transform",Jz=Mo.Transition.toString({property:AE,duration:0,easing:"linear"}),Zz={roleDescription:"sortable"};function e8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,o]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Ko(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&o(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&o(null)},[i]),i}function DE(e){let{animateLayoutChanges:t=Yz,attributes:n,disabled:r,data:s,getNewIndex:i=Qz,id:o,strategy:l,resizeObserverConfig:c,transition:u=Xz}=e;const{items:d,containerId:f,activeIndex:p,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(TE),_=t8(r,h),S=d.indexOf(o),R=m.useMemo(()=>({sortable:{containerId:f,index:S,items:d},...s}),[f,s,S,d]),k=m.useMemo(()=>d.slice(d.indexOf(o)),[d,o]),{rect:T,node:D,isOver:z,setNodeRef:j}=Hz({id:o,data:R,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:k,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:ae,setNodeRef:me,listeners:ve,isDragging:oe,over:B,setActivatorNodeRef:q,transform:E}=Uz({id:o,data:R,attributes:{...Zz,...n},disabled:_.draggable}),de=wV(j,me),pe=!!H,A=pe&&!g&&kc(p)&&kc(b),be=!x&&oe,Ae=be&&A?E:null,Y=A?Ae??(l??y)({rects:v,activeNodeRect:re,activeIndex:p,overIndex:b,index:S}):null,ce=kc(p)&&kc(b)?i({id:o,items:d,activeIndex:p,overIndex:b}):S,_e=H==null?void 0:H.id,ye=m.useRef({activeId:_e,items:d,newIndex:ce,containerId:f}),ot=d!==ye.current.items,Xe=t({active:H,containerId:f,isDragging:oe,isSorting:pe,id:o,index:S,items:d,newIndex:ye.current.newIndex,previousItems:ye.current.items,previousContainerId:ye.current.containerId,transition:u,wasDragging:ye.current.activeId!=null}),I=e8({disabled:!Xe,index:S,node:D,rect:T});return m.useEffect(()=>{pe&&ye.current.newIndex!==ce&&(ye.current.newIndex=ce),f!==ye.current.containerId&&(ye.current.containerId=f),d!==ye.current.items&&(ye.current.items=d)},[pe,ce,f,d]),m.useEffect(()=>{if(_e===ye.current.activeId)return;if(_e!=null&&ye.current.activeId==null){ye.current.activeId=_e;return}const gt=setTimeout(()=>{ye.current.activeId=_e},50);return()=>clearTimeout(gt)},[_e]),{active:H,activeIndex:p,attributes:ae,data:R,rect:T,index:S,newIndex:ce,items:d,isOver:z,isSorting:pe,isDragging:oe,listeners:ve,node:D,overIndex:b,over:B,setNodeRef:de,setActivatorNodeRef:q,setDroppableNodeRef:j,setDraggableNodeRef:me,transform:I??Y,transition:tt()};function tt(){if(I||ot&&ye.current.newIndex===S)return Jz;if(!(be&&!nx(X)||!u)&&(pe||Xe))return Mo.Transition.toString({...u,property:AE})}}function t8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}et.Down,et.Right,et.Up,et.Left;const ME=e=>{let{transform:t}=e;return{...t,x:0}};function n8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:o,transition:l,isDragging:c}=DE({id:e,disabled:n}),u={transform:Mo.Transform.toString(o),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return a.jsx("div",{ref:i,style:u,...r,children:a.jsxs("div",{className:"flex items-center",children:[!n&&a.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:a.jsx(lS,{className:"w-4 h-4"})}),a.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var OE={exports:{}};(function(e,t){(function(n,r){r()})(ps,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,f){var p=new XMLHttpRequest;p.open("GET",u),p.responseType="blob",p.onload=function(){c(p.response,d,f)},p.onerror=function(){console.error("could not download file")},p.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ps=="object"&&ps.global===ps?ps:void 0,l=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,f){var p=o.URL||o.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,f):i(h,h.target="_blank")):(h.href=p.createObjectURL(u),setTimeout(function(){p.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,f){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,f),d);else if(s(u))r(u,d,f);else{var p=document.createElement("a");p.href=u,p.target="_blank",setTimeout(function(){i(p)})}}:function(u,d,f,p){if(p=p||open("","_blank"),p&&(p.document.title=p.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,f);var h=u.type==="application/octet-stream",g=/constructor/i.test(o.HTMLElement)||o.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),p?p.location.href=_:location=_,p=null},b.readAsDataURL(u)}else{var x=o.URL||o.webkitURL,y=x.createObjectURL(u);p?p.location=y:location.href=y,p=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});o.saveAs=c.saveAs=c,e.exports=c})})(OE);var Gm=OE.exports;const Pr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Cc={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function r8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),o=Math.floor(i/60),l=Math.floor(o/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:o<24?`${o}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function s8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return a.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[a.jsxs("button",{onClick:()=>t("all"),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",a.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>a.jsxs("button",{onClick:()=>t(r),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Pr[r].text:"var(--text-muted)",backgroundColor:e===r?Pr[r].bg:"transparent"},children:[Pr[r].label,a.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function i8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=_s(),[o,l]=m.useState(!1),[c,u]=m.useState(""),[d,f]=m.useState(!1),[p,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[S,R]=m.useState(new Set),[k,T]=m.useState(!1),[D,z]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[ae,me]=m.useState(null),[ve,oe]=m.useState(!1),[B,q]=m.useState(!1),E=pE(zu(Ld,{activationConstraint:{distance:5}}),zu(Td));m.useEffect(()=>{r()},[r]);const de=m.useCallback(async()=>{f(!0),await r(!0),f(!1),$e.success("Refreshed")},[r]),pe=m.useMemo(()=>{const G=t.length,P=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="aws"}).length,N=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="azure"}).length,se=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="gcp"}).length;return{all:G,aws:P,azure:N,gcp:se}},[t]),A=m.useMemo(()=>{const G=t.reduce((P,N)=>P+(N.line_item_count||0),0);return{estimates:t.length,workloads:G}},[t]),be=m.useMemo(()=>{const G=new Set;return t.forEach(P=>{P.customer_name&&G.add(P.customer_name)}),Array.from(G).sort()},[t]),Ae=m.useMemo(()=>{const G={all:t.length};return t.forEach(P=>{P.customer_name&&(G[P.customer_name]=(G[P.customer_name]||0)+1)}),G},[t]),w=m.useMemo(()=>{let G=[...t];if(c){const P=c.toLowerCase();G=G.filter(N=>{var se;return N.estimate_name.toLowerCase().includes(P)||((se=N.customer_name)==null?void 0:se.toLowerCase().includes(P))})}switch(p!=="all"&&(G=G.filter(P=>{var N;return((N=P.cloud)==null?void 0:N.toLowerCase())===p})),b!=="all"&&(G=G.filter(P=>P.customer_name===b)),g){case"updated":G.sort((P,N)=>new Date(N.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":G.sort((P,N)=>P.estimate_name.localeCompare(N.estimate_name));break;case"workloads":G.sort((P,N)=>(N.line_item_count||0)-(P.line_item_count||0));break;case"display_order":G.sort((P,N)=>(P.display_order??0)-(N.display_order??0));break}return G},[t,c,p,g,b]),Y=m.useCallback(async G=>{const{active:P,over:N}=G;if(!N||P.id===N.id)return;const se=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===N.id);if(se===-1||M===-1)return;g!=="display_order"&&v("display_order");const W=ox(w,se,M),{estimates:Se}=_s.getState(),Ne=Se.map(O=>{const F=W.findIndex(K=>K.estimate_id===O.estimate_id);return F>=0?{...O,display_order:F}:O});_s.setState({estimates:Ne});try{await W4(W.map(O=>O.estimate_id))}catch{$e.error("Failed to save reorder")}},[w,g]),ce=(G,P,N)=>{G.stopPropagation(),me({id:P,name:N}),re(!0)},_e=async()=>{if(ae){oe(!0);try{await s(ae.id),$e.success("Estimate deleted")}catch{$e.error("Failed to delete")}finally{oe(!1),re(!1),me(null)}}},ye=async(G,P)=>{G.stopPropagation();try{const N=await i(P);$e.success("Estimate duplicated"),e(`/calculator/${N.estimate_id}`)}catch{$e.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const G=await lO();Gm.saveAs(G,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),$e.success("Exported successfully")}catch{$e.error("Export failed")}finally{l(!1)}},Xe=()=>{S.size===w.length?R(new Set):R(new Set(w.map(G=>G.estimate_id)))},I=(G,P)=>{P.stopPropagation();const N=new Set(S);N.has(G)?N.delete(G):N.add(G),R(N)},tt=()=>{S.size!==0&&q(!0)},gt=async()=>{z(!0);let G=0,P=0;for(const N of S)try{await s(N),G++}catch{P++}z(!1),R(new Set),q(!1),P===0?$e.success(`Deleted ${G} estimate(s)`):$e.error(`Deleted ${G}, failed ${P}`)},at=async()=>{if(S.size===0)return;H(!0);let G=0;for(const P of S)try{const N=t.find(se=>se.estimate_id===P);if(N){const se=await WS(P);Gm.saveAs(se,`${N.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),G++}}catch{}H(!1),$e.success(`Exported ${G} estimate(s)`)},pt=()=>{T(!1),R(new Set)};return a.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[a.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[a.jsxs("div",{children:[a.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),a.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[a.jsxs("span",{className:"flex items-center gap-1",children:[a.jsx(ny,{className:"w-4 h-4"}),A.estimates," estimate",A.estimates!==1?"s":""]}),a.jsxs("span",{className:"flex items-center gap-1",children:[a.jsx(Ng,{className:"w-4 h-4"}),A.workloads," total workloads"]})]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{onClick:de,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:a.jsx(Qr,{className:ue("w-5 h-5",d&&"animate-spin")})}),k?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[S.size," selected"]}),a.jsxs("button",{onClick:at,disabled:S.size===0||j,className:"btn btn-secondary text-sm",children:[a.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),a.jsxs("button",{onClick:tt,disabled:S.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[a.jsx(en,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),a.jsx("button",{onClick:pt,className:"btn btn-ghost p-2",title:"Cancel selection",children:a.jsx(To,{className:"w-5 h-5"})})]}):a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),a.jsxs("button",{onClick:ot,disabled:o||t.length===0,className:"btn btn-secondary",children:[a.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),a.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[a.jsx(Au,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),a.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[a.jsx(s8,{cloudFilter:p,setCloudFilter:h,cloudCounts:pe}),be.length>0&&a.jsxs("div",{className:"relative",children:[a.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[a.jsx(uD,{className:"w-4 h-4"}),a.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),a.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?be.length:Ae[b]||0}),a.jsx(tr,{className:ue("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),a.jsx(nm,{children:y&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),a.jsxs(Bt.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[a.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[a.jsx("span",{children:"All Accounts"}),a.jsx("span",{className:"text-xs opacity-60",children:be.length})]}),a.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),be.map(G=>a.jsxs("button",{onClick:()=>{x(G),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===G?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===G?"#FF3621":"var(--text-primary)"},children:[a.jsx("span",{className:"truncate",title:G,children:G}),a.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[a.jsx("span",{className:"text-xs opacity-60",children:Ae[G]||0}),b===G&&a.jsx(qs,{className:"w-4 h-4"})]})]},G))]})]})})]})]}),a.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:a.jsxs("div",{className:"relative flex-1",children:[a.jsx(dS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),a.jsx("input",{type:"text",value:c,onChange:G=>u(G.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?a.jsx("div",{className:"card overflow-hidden",children:a.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(G=>a.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[a.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),a.jsxs("div",{className:"flex-1",children:[a.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),a.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},G))})}):w.length===0?a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[a.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:a.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),a.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||p!=="all"||b!=="all"?"No matches found":"No estimates yet"}),a.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||p!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&p==="all"&&b==="all"&&a.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[a.jsx(Au,{className:"w-4 h-4"}),"Create Estimate"]})]}):a.jsxs("div",{className:"card overflow-hidden",children:[a.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[k&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("button",{onClick:Xe,className:"flex items-center justify-center",children:a.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",S.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:S.size===w.length&&w.length>0&&a.jsx(qs,{className:"w-3 h-3 text-white"})})})}),a.jsx("div",{className:ue(k?"col-span-3":"col-span-4"),children:"Estimate"}),a.jsx("div",{className:"col-span-2",children:"Account"}),a.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),a.jsx("div",{className:"col-span-2",children:"Region / Tier"}),a.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),a.jsx("div",{className:"col-span-1",children:"Modified"}),a.jsx("div",{className:"col-span-1"})]}),a.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:a.jsx(jE,{sensors:E,collisionDetection:mE,onDragEnd:Y,modifiers:[ME],children:a.jsx(LE,{items:w.map(G=>G.estimate_id),strategy:PE,children:w.map((G,P)=>{const N=S.has(G.estimate_id);return a.jsx(n8,{id:G.estimate_id,children:a.jsxs(Bt.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!k&&e(`/calculator/${G.estimate_id}`),className:ue("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!k&&"cursor-pointer hover:bg-[var(--bg-hover)]",N&&"bg-blue-500/5"),children:[k&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("button",{onClick:se=>I(G.estimate_id,se),className:"flex items-center justify-center",children:a.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",N?"bg-blue-500 border-blue-500":"border-gray-400"),children:N&&a.jsx(qs,{className:"w-3 h-3 text-white"})})})}),a.jsxs("div",{className:ue("flex items-center gap-3",k?"col-span-3":"col-span-4"),children:[a.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:G.cloud&&Pr[G.cloud.toLowerCase()]?Pr[G.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:a.jsx(ym,{className:"w-4 h-4",style:{color:G.cloud&&Pr[G.cloud.toLowerCase()]?Pr[G.cloud.toLowerCase()].text:"var(--text-muted)"}})}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:G.estimate_name,children:G.estimate_name}),a.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:G.customer_name||"",children:G.customer_name||"—"})]})]}),a.jsx("div",{className:"hidden sm:block col-span-2",children:a.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:G.customer_name||"",children:G.customer_name||"—"})}),a.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:G.cloud&&Pr[G.cloud.toLowerCase()]?a.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Pr[G.cloud.toLowerCase()].bg,color:Pr[G.cloud.toLowerCase()].text},children:Pr[G.cloud.toLowerCase()].label}):a.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),a.jsx("div",{className:"hidden sm:block col-span-2",children:G.region||G.tier?a.jsxs("div",{className:"flex flex-col gap-0.5",children:[G.region&&a.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:G.region,children:G.region}),G.tier&&Cc[G.tier.toLowerCase()]&&a.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Cc[G.tier.toLowerCase()].bg,color:Cc[G.tier.toLowerCase()].text},children:Cc[G.tier.toLowerCase()].label})]}):a.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),a.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:a.jsx("span",{className:ue("px-2 py-0.5 rounded text-xs font-medium",G.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:G.line_item_count===0?{color:"var(--text-muted)"}:{},children:G.line_item_count})}),a.jsx("div",{className:"hidden sm:block col-span-1",children:a.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:r8(G.updated_at)})}),a.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!k&&a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:se=>ye(se,G.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:se=>ce(se,G.estimate_id,G.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:a.jsx(en,{className:"w-4 h-4"})})]})})]})},G.estimate_id)})})})}),a.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&ae&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',ae.name,'"']}),"? All workloads in this estimate will also be deleted."]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>{re(!1),me(null)},disabled:ve,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:_e,disabled:ve,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ve?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]})})]})]})}),B&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",S.size," Estimate",S.size!==1?"s":""]}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[a.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),a.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(G=>S.has(G.estimate_id)).map(G=>a.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",G.estimate_name]},G.estimate_id))})]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:gt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),S.size>0&&a.jsxs(Bt.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[a.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[S.size," estimate",S.size!==1?"s":""," selected"]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),a.jsxs("button",{onClick:at,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[a.jsx(zc,{className:"w-4 h-4"}),"Export"]}),a.jsxs("button",{onClick:tt,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsxs("button",{onClick:()=>{R(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[a.jsx(To,{className:"w-4 h-4"}),"Cancel"]})]})]})}function z_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:o="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:f=!1}){const[p,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,S=m.useMemo(()=>{if(!f)return null;const T={};return _.forEach(z=>{const j=z.group||"Other";T[j]||(T[j]=[]),T[j].push(z)}),Object.keys(T).sort((z,j)=>z==="General Purpose"?-1:j==="General Purpose"?1:z.localeCompare(j)).map(z=>({name:z,options:T[z]}))},[_,f]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const R=T=>{n(T),h(!1),v("")},k=T=>{T.stopPropagation(),n(""),v("")};return a.jsxs("div",{ref:b,className:ue("relative",d),children:[a.jsxs("div",{onClick:()=>{if(!c){const T=p;h(!p),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:ue("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",p&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!p&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[a.jsx(dS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),p?a.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:o,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?a.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[a.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):a.jsx("span",{className:ue("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!p&&a.jsx("button",{onClick:k,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:a.jsx(To,{className:"w-4 h-4 text-[var(--text-muted)]"})}),a.jsx(tr,{className:ue("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",p&&"rotate-180")})]}),p&&a.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?a.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?a.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):f&&S?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),S.map(T=>a.jsxs("div",{children:[a.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>a.jsx("div",{onClick:()=>R(D.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>a.jsx("div",{onClick:()=>R(T.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function $_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const o=Array.from(s);return o.length>0?o.sort():["all","short","long"]}function o8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const o=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&o.add(d[5])}});const c=Array.from(o);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const IE=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"]);function ua(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:IE.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const a8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function H_({tier:e}){const[t,n]=m.useState(!1),r=a8[e];return r?a.jsxs("div",{className:"relative inline-block ml-1",children:[a.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:a.jsx(uS,{className:"w-3.5 h-3.5"})}),t&&a.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[a.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),a.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),a.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function l8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return a.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[a.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[a.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?a.jsx(tr,{className:"w-3 h-3"}):a.jsx(cS,{className:"w-3 h-3"}),"Notes",e&&!n&&a.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&a.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:a.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function q_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function rp({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var G;const{workloadTypes:o,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:f,fmapiDatabricksConfig:p,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:S,fetchLineItems:R,clearSingleWorkloadCost:k,markItemCalculating:T,fetchVMCostForInstance:D}=_s(),z=m.useRef(!0);m.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],ae=u.length>0?u:re,me=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],ve=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:ve,B={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},q=p&&p.models&&p.models.llm?p:B,E={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},de=h&&Array.isArray(h.providers)?h:E,[pe,A]=m.useState(!1),[be,Ae]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ce={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);Ae(P)}else Y(ce),Ae(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),IE.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?sC(x,g,v,b):null,ye=o.filter(P=>ua(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&o.some(P=>ua(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ye[0];P&&Y(N=>({...N,workload_type:P.workload_type}))}},[_e,w.workload_type,ye,t]);const Xe=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!z.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=o.find(P=>P.workload_type===w.workload_type),tt=o.length===0,gt=!tt&&!I&&w.workload_type,at=async P=>{if(P.preventDefault(),!w.workload_name.trim()){$e.error("Enter a workload name");return}A(!0);try{const N={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(N.serverless_enabled=w.serverless_enabled,N.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(N.serverless_enabled=!1,N.serverless_mode=null),I!=null&&I.show_compute_config?(N.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,N.driver_node_type=w.driver_node_type||null,N.worker_node_type=w.worker_node_type||null,N.num_workers=w.num_workers,N.driver_pricing_tier=w.driver_pricing_tier||"on_demand",N.worker_pricing_tier=w.worker_pricing_tier||"spot",N.driver_payment_option=w.driver_payment_option||"NA",N.worker_payment_option=w.worker_payment_option||"NA"):(N.photon_enabled=!1,N.driver_node_type=null,N.worker_node_type=null,N.num_workers=null,N.driver_pricing_tier=null,N.worker_pricing_tier=null,N.driver_payment_option=null,N.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?N.dlt_edition=w.dlt_edition:N.dlt_edition=null,I!=null&&I.show_dbsql_config?(N.dbsql_warehouse_type=w.dbsql_warehouse_type,N.dbsql_warehouse_size=w.dbsql_warehouse_size,N.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(N.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,N.dbsql_driver_payment_option=w.dbsql_driver_payment_option,N.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,N.dbsql_worker_payment_option=w.dbsql_worker_payment_option,N.driver_pricing_tier=w.dbsql_driver_pricing_tier,N.driver_payment_option=w.dbsql_driver_payment_option,N.worker_pricing_tier=w.dbsql_worker_pricing_tier,N.worker_payment_option=w.dbsql_worker_payment_option)):(N.dbsql_warehouse_type=null,N.dbsql_warehouse_size=null,N.dbsql_num_clusters=null,N.dbsql_driver_pricing_tier=null,N.dbsql_driver_payment_option=null,N.dbsql_worker_pricing_tier=null,N.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(N.vector_search_mode=w.vector_search_mode,N.vector_capacity_millions=w.vector_capacity_millions,N.vector_search_storage_gb=w.vector_search_storage_gb||0):(N.vector_search_mode=null,N.vector_capacity_millions=null,N.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(N.model_serving_gpu_type=w.model_serving_gpu_type,N.model_serving_scale_out=w.model_serving_scale_out,N.model_serving_concurrency=w.model_serving_concurrency):(N.model_serving_gpu_type=null,N.model_serving_scale_out=null,N.model_serving_concurrency=null),I!=null&&I.show_lakebase_config?(N.lakebase_cu=w.lakebase_cu,N.lakebase_storage_gb=w.lakebase_storage_gb||0,N.lakebase_ha_nodes=w.lakebase_ha_nodes,N.lakebase_backup_retention_days=w.lakebase_backup_retention_days,N.lakebase_pitr_gb=w.lakebase_pitr_gb||0,N.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(N.lakebase_cu=null,N.lakebase_storage_gb=null,N.lakebase_ha_nodes=null,N.lakebase_backup_retention_days=null,N.lakebase_pitr_gb=null,N.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(N.fmapi_provider=w.fmapi_provider,N.fmapi_model=w.fmapi_model||null,N.fmapi_endpoint_type=w.fmapi_endpoint_type,N.fmapi_context_length=w.fmapi_context_length,N.fmapi_rate_type=w.fmapi_rate_type,N.fmapi_quantity=w.fmapi_quantity):(N.fmapi_provider=null,N.fmapi_model=null,N.fmapi_endpoint_type=null,N.fmapi_context_length=null,N.fmapi_rate_type=null,N.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?be?(N.hours_per_month=w.hours_per_month||730,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):(N.hours_per_month=null,N.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,N.avg_runtime_minutes=w.avg_runtime_minutes,N.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config?(N.hours_per_month=w.hours_per_month||730,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):I!=null&&I.show_fmapi_config?(N.hours_per_month=w.hours_per_month||null,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):(N.hours_per_month=null,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null),t)k(t.line_item_id),T(t.line_item_id),await S(t.line_item_id,N),$e.success("Workload updated");else{N.estimate_id=e;const M=await _(N);M!=null&&M.line_item_id&&T(M.line_item_id),$e.success("Workload added")}R(e),r==null||r(),n()}catch(N){console.error("Failed to save workload:",N),$e.error("Failed to save")}finally{A(!1)}},pt=I==null?void 0:I.show_compute_config;return tt?a.jsxs("div",{className:"p-8 text-center",children:[a.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):a.jsxs("form",{onSubmit:at,className:"space-y-3",children:[a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),a.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(N=>({...N,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&a.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),a.jsxs("select",{value:w.workload_type,onChange:P=>Y(N=>({...N,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:ue("w-full text-sm",gt&&"border-red-500",Xe&&"border-yellow-500"),children:[Xe&&(()=>{const P=o.find(N=>N.workload_type===w.workload_type);return P?a.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ye.map(P=>a.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),gt&&a.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Xe&&a.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Xe&&a.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&a.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const N=!ua(w.workload_type,b,!0).available;return a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",N&&"opacity-50 cursor-not-allowed"),children:[a.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!N,onChange:()=>!N&&Y(se=>{const M=!se.serverless_enabled,W=se.workload_type==="ALL_PURPOSE"&&M?"performance":se.serverless_mode;return{...se,serverless_enabled:M,serverless_mode:W}}),disabled:N,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),a.jsx(ym,{className:"w-4 h-4 text-teal-600"}),a.jsx("span",{className:ue("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),N&&a.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(ua(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?a.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),a.jsx("select",{value:w.serverless_mode,onChange:se=>Y(M=>({...M,serverless_mode:se.target.value})),className:"text-sm py-1 px-2",children:me.map(se=>a.jsx("option",{value:se.id,children:se.name},se.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[a.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),a.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),a.jsx("span",{className:ue("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&a.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),pt&&a.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&a.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:a.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[a.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[a.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[a.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),a.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),a.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),a.jsx(z_,{options:l.map(P=>({value:P.id,label:q_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(N=>({...N,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&a.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",a.jsx(H_,{tier:w.driver_pricing_tier})]}),a.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(N=>({...N,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),a.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(N=>({...N,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),a.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[a.jsxs("div",{className:"flex items-center justify-between mb-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),a.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),a.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),a.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[a.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(N=>({...N,worker_node_type:N.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),a.jsx("span",{className:ue("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex gap-2",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),a.jsx(z_,{options:l.map(P=>({value:P.id,label:q_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(N=>({...N,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),a.jsxs("div",{className:"w-14 flex-shrink-0",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),a.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(N=>({...N,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&a.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",a.jsx(H_,{tier:w.worker_pricing_tier})]}),a.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(N=>({...N,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"spot",children:"Spot Instances"}),a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),a.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(N=>({...N,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[pt&&a.jsx(a.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),a.jsx("select",{value:w.dlt_edition,onChange:P=>Y(N=>({...N,dlt_edition:P.target.value})),className:"w-full text-sm",children:ae.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&a.jsxs(a.Fragment,{children:[(()=>{const N=!ua("DBSQL",b,!1,"SERVERLESS").available,se=w.dbsql_warehouse_type==="SERVERLESS"&&!N;return a.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",N&&"opacity-50 cursor-not-allowed"),children:[a.jsx("input",{type:"checkbox",checked:se,onChange:()=>!N&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:N,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),a.jsx(ym,{className:"w-4 h-4 text-teal-600"}),a.jsx("span",{className:ue("text-sm",se?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),N&&a.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!se&&a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),a.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(W=>({...W,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[a.jsx("option",{value:"PRO",children:"Pro"}),a.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),a.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(N=>({...N,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>a.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),a.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(N=>({...N,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Ne,O;const P=y?al(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,N=P!=null&&P.driver_instance_type?l.find(F=>F.id===P.driver_instance_type):null,se=P!=null&&P.worker_instance_type?l.find(F=>F.id===P.worker_instance_type):null,M=(F,K,ie)=>{var Be,dt,nt,Ge,lt,Ke,Mt;if(!(F!=null&&F.vm_pricing))return null;const Ce=K.toLowerCase();if(Ce==="on_demand")return(Be=F.vm_pricing.on_demand)==null?void 0:Be.cost_per_hour;if(Ce==="spot")return(dt=F.vm_pricing.spot)==null?void 0:dt.cost_per_hour;if(Ce==="reserved_1y"){const U=((nt=F.vm_pricing.reserved_1y)==null?void 0:nt.find(J=>J.payment_option===ie))||((Ge=F.vm_pricing.reserved_1y)==null?void 0:Ge[0]);return U==null?void 0:U.cost_per_hour}if(Ce==="reserved_3y"){const U=((lt=F.vm_pricing.reserved_3y)==null?void 0:lt.find(J=>J.payment_option===ie))||((Ke=F.vm_pricing.reserved_3y)==null?void 0:Ke[0]);return U==null?void 0:U.cost_per_hour}return(Mt=F.vm_pricing.on_demand)==null?void 0:Mt.cost_per_hour},W=M(N,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(se,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return a.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[a.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[a.jsxs("div",{className:"flex items-center justify-between mb-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),a.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),a.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),N&&a.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[a.jsxs("span",{children:[(Ne=N.dbu_rate)==null?void 0:Ne.toFixed(2)," DBU/hr"]}),W!=null&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"·"}),a.jsxs("span",{children:["$",W.toFixed(4),"/hr"]})]})]}),a.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:F=>Y(K=>({...K,dbsql_driver_pricing_tier:F.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&a.jsx("select",{value:w.dbsql_driver_payment_option,onChange:F=>Y(K=>({...K,dbsql_driver_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>a.jsx("option",{value:F.id,children:F.name},F.id))})]}),a.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[a.jsxs("div",{className:"flex items-center justify-between mb-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),a.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),a.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),se&&a.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[a.jsxs("span",{children:[(O=se.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"·"}),a.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),a.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:F=>Y(K=>({...K,dbsql_worker_pricing_tier:F.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"spot",children:"Spot Instances"}),a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&a.jsx("select",{value:w.dbsql_worker_payment_option,onChange:F=>Y(K=>({...K,dbsql_worker_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>a.jsx("option",{value:F.id,children:F.name},F.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),a.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(N=>({...N,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),a.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),a.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(N=>({...N,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(N=>({...N,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),a.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),a.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(N=>({...N,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:f.map(P=>a.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),a.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const N={small:4,medium:12,large:40},se=P.target.value;Y(M=>({...M,model_serving_scale_out:se,model_serving_concurrency:se==="custom"?M.model_serving_concurrency||4:N[se]||4}))},className:"w-full text-sm",children:[a.jsx("option",{value:"small",children:"Small (4 concurrency)"}),a.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),a.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),a.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),a.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const N=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(se=>({...se,model_serving_concurrency:N}))},className:"w-full text-sm"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),a.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(N=>({...N,fmapi_model:P.target.value})),className:"w-full text-sm",children:[a.jsx("optgroup",{label:"LLMs",children:q.models.llm.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))}),a.jsx("optgroup",{label:"Embedding Models",children:q.models.embedding.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),a.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(N=>({...N,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[a.jsxs("optgroup",{label:"Token-based",children:[a.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&a.jsx("option",{value:"output_token",children:"Output Token"})]}),a.jsxs("optgroup",{label:"Provisioned",children:[a.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),a.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),a.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(N=>({...N,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),a.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:a.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?a.jsxs(a.Fragment,{children:[a.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):a.jsxs(a.Fragment,{children:[a.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),a.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(N=>({...N,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:de.providers.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),a.jsxs("select",{value:w.fmapi_model,onChange:P=>{const N=P.target.value,se=$_(x,g||"aws",w.fmapi_provider,N),M=se.includes(w.fmapi_context_length)?w.fmapi_context_length:se[0]||"all";Y(W=>({...W,fmapi_model:N,fmapi_context_length:M}))},className:"w-full text-sm",children:[a.jsx("option",{value:"",children:"Select model"}),(G=de.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:G.models.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),a.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(N=>({...N,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:de.endpoint_types.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),a.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(N=>({...N,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?$_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],N={all:"All",short:"Short",long:"Long"};return P.map(se=>a.jsx("option",{value:se,children:N[se]||se},se))})()})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),a.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(N=>({...N,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?o8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],N={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(se=>a.jsx("option",{value:se,children:N[se]||se},se))})()})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),a.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(N=>({...N,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),a.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:a.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[a.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),a.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(N=>({...N,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[a.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[a.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),a.jsx("option",{value:1,children:"1 CU (2 GB)"}),a.jsx("option",{value:2,children:"2 CU (4 GB)"}),a.jsx("option",{value:4,children:"4 CU (8 GB)"}),a.jsx("option",{value:8,children:"8 CU (16 GB)"}),a.jsx("option",{value:16,children:"16 CU (32 GB)"}),a.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),a.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[a.jsx("option",{value:48,children:"48 CU (96 GB)"}),a.jsx("option",{value:64,children:"64 CU (128 GB)"}),a.jsx("option",{value:80,children:"80 CU (160 GB)"}),a.jsx("option",{value:96,children:"96 CU (192 GB)"}),a.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),a.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(N=>({...N,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[a.jsx("option",{value:1,children:"1 Node"}),a.jsx("option",{value:2,children:"2 Nodes (HA)"}),a.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),a.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(N=>({...N,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(N=>({...N,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(N=>({...N,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsx("div",{className:"col-span-full",children:a.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[a.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{type:"button",onClick:()=>Ae(!1),className:ue("px-3 py-1 text-xs rounded-l-md border transition-colors",be?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),a.jsx("button",{type:"button",onClick:()=>Ae(!0),className:ue("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",be?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!be&&a.jsxs(a.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),a.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(N=>({...N,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),a.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(N=>({...N,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),a.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(N=>({...N,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),be&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsxs("div",{className:"col-span-full md:col-span-1",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),a.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(N=>({...N,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config))&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),a.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(N=>({...N,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),a.jsx(l8,{notes:w.notes,onChange:P=>Y(N=>({...N,notes:P}))}),a.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[a.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class W_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?a.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[a.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),a.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const c8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],u8={JOBS:{icon:n3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Lu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:nD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:vD,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:$D,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:f3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},G_=e=>e?u8[e]||{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},xe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),K_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:xe(e),an=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),Q_=un.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return a.jsxs("div",{className:ue("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[a.jsxs("span",{className:ue("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[xe(e.totalCost),r&&a.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&a.jsxs("span",{className:ue("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[an(e.monthlyDBUs)," DBUs/mo"]})]})}),Y_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},X_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function d8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:o,transition:l,isDragging:c}=DE({id:e,disabled:t});return a.jsx("div",{ref:i,style:{transform:Mo.Transform.toString(o),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:a.jsxs("div",{className:"flex items-stretch",children:[!t&&a.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:a.jsx(lS,{className:"w-3.5 h-3.5"})}),a.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function J_(){const{id:e}=bw(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:o,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:f,createEstimate:p,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:S,getInstanceDbuRate:R,vmPricingMap:k,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:z,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:ae,getVectorSearchRate:me,getFMAPIDatabricksRate:ve,getFMAPIProprietaryRate:oe,pricingBundle:B,isPricingBundleLoaded:q,clearEstimateState:E,setLocalCalculatedCosts:de}=_s(),[pe,A]=m.useState(!1),[be,Ae]=m.useState(!1),[w,Y]=m.useState(!1),[ce,_e]=m.useState(!1),[ye,ot]=m.useState(!1),[Xe,I]=m.useState(null),[tt,gt]=m.useState(!1),[at,pt]=m.useState(!1),[G,P]=m.useState(!1),[N,se]=m.useState(!1),[M,W]=m.useState(new Set),[Se,Ne]=m.useState(new Set),[O,F]=m.useState(!1),[K,ie]=m.useState({}),[Ce,Be]=m.useState(!1),[dt,nt]=m.useState(!1),[Ge,lt]=m.useState(!1),[Ke,Mt]=m.useState(!1),[U,J]=m.useState([]),[Le,Ve]=m.useState(!1),[Q,ct]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[Ze,Ot]=m.useState(!!e),[ft,xt]=m.useState(!1),[St,mt]=m.useState(!1),[Ue,Oe]=m.useState("table"),[De,Pe]=m.useState("order"),[qt,Ct]=m.useState("asc"),[le,rt]=m.useState(new Set),[Nt,wr]=m.useState(!1),Nn=m.useRef({}),Br=m.useCallback(L=>{const Z=Nn.current[L];Z&&(Z.scrollIntoView({behavior:"smooth",block:"center"}),Z.style.backgroundColor="rgba(255, 54, 33, 0.1)",Z.style.transition="background-color 0.3s ease",setTimeout(()=>{Nn.current[L]&&(Nn.current[L].style.backgroundColor="")},1500))},[]),Ur=m.useCallback(()=>{F(!0)},[]);m.useEffect(()=>{const L=Z=>{O&&(Z.preventDefault(),Z.returnValue="")};return window.addEventListener("beforeunload",L),()=>window.removeEventListener("beforeunload",L)},[O]),m.useEffect(()=>{if(!Q.cloud||!Q.region||r.length===0||!Ge)return;const L=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const $=al(B,Q.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if($){const fe=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",ze=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";L.add(`${$.driver_instance_type}:${fe}:${ze}`);const Et=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Pt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";L.add(`${$.worker_instance_type}:${Et}:${Pt}`)}return}if(C.driver_node_type){const $=C.driver_pricing_tier||"on_demand",fe=C.driver_payment_option||"NA";L.add(`${C.driver_node_type}:${$}:${fe}`)}if(C.worker_node_type){const $=C.worker_pricing_tier||"spot",fe=C.worker_payment_option||"NA";L.add(`${C.worker_node_type}:${$}:${fe}`)}}});const Z=Array.from(L).map(C=>{const[$,fe,ze]=C.split(":");return _(Q.cloud,Q.region,$,fe,ze)});if(Z.length>0){Mt(!0);const C=new Promise($=>setTimeout($,1e4));Promise.race([Promise.all(Z),C]).catch(()=>{}).finally(()=>Mt(!1))}},[Q.cloud,Q.region,r,Ge,_,B]),m.useEffect(()=>{if(!Q.cloud)return;const L=f(Q.cloud);if(L.length>0){const Z=q?bO(B,Q.cloud):[];if(Z.length>0){const C=L.filter($=>Z.includes($.region_code));J(C)}else J(L);Ve(!1)}else u?(J([]),Ve(!1)):Ve(!0)},[Q.cloud,d,u,f,B,q]),m.useEffect(()=>{(async()=>{if(e){Be(!0),nt(!0),lt(!1);try{await i(e)}catch(Z){console.error("Error loading estimate data:",Z)}finally{Be(!1),nt(!1),lt(!0)}}else E(),lt(!1)})()},[e,i,E]);const Ml={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ct({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ct(Ml),x("aws"),F(!1))},[n,e,x,y]),m.useEffect(()=>{Q.cloud&&Q.region&&Q.tier&&z(Q.cloud.toUpperCase(),Q.region,Q.tier.toUpperCase())},[Q.cloud,Q.region,Q.tier,z]);const Ol=!!(Q.region&&Q.tier),ns=(L,Z)=>{const C=Z?{...L,...Z}:L,$=Q.cloud||"aws",fe=Q.region,ze=Object.keys(D).length>0?D:Y_[$]||Y_.aws,Et=C.num_workers||0;if(!fe)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Pt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Pt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Pt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let Ee="";const Yt=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?Ee="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?Ee="JOBS_COMPUTE_(PHOTON)":Ee="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?Ee="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?Ee="ALL_PURPOSE_COMPUTE_(PHOTON)":Ee="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?Ee="JOBS_SERVERLESS_COMPUTE":(Ee=`DLT_${Yt}_COMPUTE`,C.photon_enabled&&(Ee+="_(PHOTON)"));break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Ie==="SERVERLESS"?Ee="SERVERLESS_SQL_COMPUTE":Ie==="PRO"?Ee="SQL_PRO_COMPUTE":Ee="SQL_COMPUTE";break;case"VECTOR_SEARCH":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const vt=(C.fmapi_provider||"openai").toLowerCase();Ee=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[vt]||vt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":Ee="DATABASE_SERVERLESS_COMPUTE";break;default:Ee="JOBS_COMPUTE"}let Pn=.2;if(q&&Q.tier){const Ie=Ag(B,$,fe,Q.tier,Ee);Ie>0?Pn=Ie:Pn=ze[Ee]||.2}else Pn=ze[Ee]||.2;let ke=0,Qe=0,We=0,Rs,kr,rs,te=.5,he=.5;if(q&&C.driver_node_type){const Ie=Pm(B,$,C.driver_node_type);Ie>0&&(te=Ie)}if(!te||te===.5){const Ie=j.find(vt=>vt.id===C.driver_node_type||vt.name===C.driver_node_type);Ie!=null&&Ie.dbu_rate&&(te=Ie.dbu_rate)}if(q&&C.worker_node_type){const Ie=Pm(B,$,C.worker_node_type);Ie>0&&(he=Ie)}if(!he||he===.5){const Ie=j.find(vt=>vt.id===C.worker_node_type||vt.name===C.worker_node_type);Ie!=null&&Ie.dbu_rate&&(he=Ie.dbu_rate)}const on=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Ie;if(C.serverless_enabled?C.workload_type==="JOBS"?Ie="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Ie="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Ie="DLT_CORE_COMPUTE":Ie=Ee.replace("_(PHOTON)",""):Ie=Ee.replace("_(PHOTON)",""),q){const Xt=rC(B,$,Ie);if(Xt!==2)return Xt}const vt=H.find(Xt=>{var vn,dr;return Xt.sku_type===Ie||((vn=Xt.sku_type)==null?void 0:vn.toLowerCase())===Ie.toLowerCase()||((dr=Xt.sku_type)==null?void 0:dr.toLowerCase().includes((L.workload_type||"").toLowerCase()))});return(vt==null?void 0:vt.multiplier)||2})(),fi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Sr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)ke=(te+he*Et)*on*fi;else{ke=(te+he*Et)*on;const Te=C.driver_pricing_tier||"on_demand",Dn=C.driver_payment_option||"NA",zr=C.worker_pricing_tier||"spot",pi=C.worker_payment_option||"NA",mi=S($,fe,C.driver_node_type||"",Te,Dn),hi=S($,fe,C.worker_node_type||"",zr,pi);We=(mi+hi*Et)*Pt}Qe=ke*Pt;break;case"DLT":if(C.serverless_enabled)ke=(te+he*Et)*on*Sr*fi;else{ke=(te+he*Et)*on*Sr;const Te=C.driver_pricing_tier||"on_demand",Dn=C.driver_payment_option||"NA",zr=C.worker_pricing_tier||"spot",pi=C.worker_payment_option||"NA",mi=S($,fe,C.driver_node_type||"",Te,Dn),hi=S($,fe,C.worker_node_type||"",zr,pi);We=(mi+hi*Et)*Pt}Qe=ke*Pt;break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),vt=C.dbsql_warehouse_size||"Small",Xt=C.dbsql_num_clusters||1;let vn=X_[vt]||12;if(q){const Te=hO(B,$,Ie,vt);Te&&Te.dbu_per_hour>0&&(vn=Te.dbu_per_hour)}if(!vn||vn===(X_[vt]||12)){const Te=X.find(Dn=>Dn.id===vt||Dn.name===vt);Te!=null&&Te.dbu_per_hour&&(vn=Te.dbu_per_hour)}if(ke=vn*Xt,Qe=ke*Pt,Ie!=="SERVERLESS"){const Te=q?al(B,$,Ie,vt):null;if(Te){const Dn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",zr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",pi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,fe,Te.driver_instance_type,Dn,zr),Xo=S($,fe,Te.worker_instance_type,pi,mi);We=(Te.driver_count*hi+Te.worker_count*Xo)*Xt*Pt}else if(C.driver_node_type){const Dn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",zr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",pi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,fe,C.driver_node_type,Dn,zr),Xo=C.worker_node_type?S($,fe,C.worker_node_type,pi,mi):0,yx=C.num_workers||0;We=(hi+Xo*yx)*Xt*Pt}}break;case"VECTOR_SEARCH":const dr=C.vector_search_mode||"standard",Vt=C.vector_capacity_millions||1;let Tn=dr==="storage_optimized"?64e6:2e6,Jt=dr==="storage_optimized"?18.29:4;if(q){const Te=gO(B,$,dr);Te&&(Tn=Te.input_divisor,Jt=Te.dbu_rate)}else{const Te=me(dr);Te&&(Tn=Te.input_divisor,Jt=Te.dbu_per_hour)}const Ln=Vt*1e6,st=Math.ceil(Ln/Tn);Rs=st,ke=st*Jt,Qe=ke*Pt;const it=C.vector_search_storage_gb||0,Zt=st*20,Rt=Math.max(0,it-Zt),Wt=.023,fn=Rt*Wt;it>0&&(kr=fn,rs={totalStorageGB:it,freeStorageGB:Zt,billableStorageGB:Rt,pricePerGB:Wt});break;case"MODEL_SERVING":const Xn=C.model_serving_gpu_type||"cpu";let An=2;if(q){const Te=xO(B,$,Xn);Te&&Te.dbu_rate>0&&(An=Te.dbu_rate)}if(An===2){const Te=re.find(Dn=>Dn.id===Xn||Dn.name===Xn);Te!=null&&Te.dbu_per_hour&&(An=Te.dbu_per_hour)}const Jn=C.model_serving_scale_out||"small",Bl=Jn==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[Jn]||4;ke=An*Bl,Qe=ke*Pt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},YE=(zl[$]||zl.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;ke=Ul*YE*Vl,Qe=ke*Pt;const $l=Math.min(C.lakebase_storage_gb||0,8192),XE=C.lakebase_pitr_gb||0,JE=C.lakebase_snapshot_gb||0,Hl=.023,ZE=$l*15*Hl,e2=XE*8.7*Hl,t2=JE*3.91*Hl,gx=ZE+e2+t2;gx>0&&(kr=gx,rs={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const n2=C.fmapi_quantity||0,Yo=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Yo);let Ls=null;if(q&&C.fmapi_model){const Te=vO(B,$,C.fmapi_model,Yo);Te&&(Ls=Te.dbu_rate)}if(Ls===null&&C.fmapi_model){const Te=ve(C.fmapi_model,Yo);Te&&(xx?Ls=Te.dbu_per_hour||null:Ls=Te.dbu_per_1M_tokens||null)}Ls===null&&(xx?Ls=Yo==="provisioned_scaling"?200:50:Ls=Yo==="output_token"?3:1),Qe=n2*Ls;break;case"FMAPI_PROPRIETARY":const r2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let Cr=null;if(q&&C.fmapi_provider&&C.fmapi_model){const Te=C.fmapi_endpoint_type||"global",Dn=C.fmapi_context_length||"long",zr=yO(B,$,C.fmapi_provider,C.fmapi_model,Te,Dn,ql);zr&&(Cr=zr.dbu_rate)}if(Cr===null&&C.fmapi_provider&&C.fmapi_model){const Te=oe(C.fmapi_provider,C.fmapi_model,ql);Te&&(vx?Cr=Te.dbu_per_hour||null:Cr=Te.dbu_per_1M_tokens||null)}if(Cr===null)if(vx)Cr=150;else switch(ql){case"output_token":Cr=6;break;case"cache_read":Cr=.5;break;case"cache_write":Cr=1;break;default:Cr=2}Qe=r2*Cr;break;default:Qe=0}const ur=isNaN(Pn)||Pn===void 0?0:Pn,Ts=isNaN(Qe)||Qe===void 0?0:Qe,Rn=isNaN(We)||We===void 0?0:We,xn=kr!==void 0&&!isNaN(kr)?kr:0,Vr=Ts*ur,is=Vr+Rn+xn;return{monthlyDBUs:Ts,dbuCost:isNaN(Vr)?0:Vr,vmCost:Rn,totalCost:isNaN(is)?0:is,unitsUsed:Rs,dbuPerHour:ke,dbuPrice:ur,storageCost:xn>0?xn:void 0,storageDetails:rs}},Yn=m.useMemo(()=>{let L=0,Z=0,C=0,$=0;return r.forEach(fe=>{const ze=ns(fe);L+=isNaN(ze.monthlyDBUs)?0:ze.monthlyDBUs,Z+=isNaN(ze.dbuCost)?0:ze.dbuCost,C+=isNaN(ze.vmCost)?0:ze.vmCost,$+=isNaN(ze.totalCost)?0:ze.totalCost}),{totalDBUs:L,totalDBUCost:Z,totalVMCost:C,totalCost:$}},[r,Q.cloud,Q.region,Q.tier,s,S,k,R,T,j,H,D,X,re,ae,me,ve,oe,B,q]);m.useEffect(()=>{const L={};r.forEach(Z=>{const C=ns(Z,K[Z.line_item_id]);L[Z.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),de(L)},[r,K,Q.cloud,Q.region,Q.tier,de,S,k,R,T,j,H,D,X,re,ae,me,ve,oe,B,q]);const di=m.useMemo(()=>{const L=[...r];return De==="order"?L.sort((Z,C)=>(Z.display_order??0)-(C.display_order??0)):De==="name"?L.sort((Z,C)=>(Z.workload_name||"").localeCompare(C.workload_name||"")):De==="type"?L.sort((Z,C)=>(Z.workload_type||"").localeCompare(C.workload_type||"")):De==="cost"&&L.sort((Z,C)=>{const $=ns(Z).totalCost,fe=ns(C).totalCost;return $-fe}),qt==="desc"&&L.reverse(),L},[r,De,qt,ns]),Md=L=>{De===L?Ct(Z=>Z==="asc"?"desc":"asc"):(Pe(L),Ct(L==="cost"?"desc":"asc"))},FE=pE(zu(Ld,{activationConstraint:{distance:5}}),zu(Td)),BE=De==="order",UE=m.useCallback(async L=>{const{active:Z,over:C}=L;if(!C||Z.id===C.id||!e)return;const $=di.findIndex(Yt=>Yt.line_item_id===Z.id),fe=di.findIndex(Yt=>Yt.line_item_id===C.id);if($===-1||fe===-1)return;const ze=[...di],[Et]=ze.splice($,1);ze.splice(fe,0,Et);const{lineItems:Pt}=_s.getState(),Ee=Pt.map(Yt=>{const Pn=ze.findIndex(ke=>ke.line_item_id===Yt.line_item_id);return Pn>=0?{...Yt,display_order:Pn}:Yt});_s.setState({lineItems:Ee});try{await q4(e,ze.map(Yt=>Yt.line_item_id))}catch{$e.error("Failed to save reorder")}},[di,e]),ax=async()=>{if(!Q.estimate_name.trim()){$e.error("Enter an estimate name");return}if(!Q.region){$e.error("Select a region");return}if(!Q.tier){$e.error("Select a Databricks tier");return}A(!0);try{const L={...Q,cloud:Q.cloud.toUpperCase(),tier:Q.tier.toUpperCase()};if(e&&n)await h(e,L),F(!1),$e.success("All changes saved");else{const Z=await p(L);F(!1),t(`/calculator/${Z.estimate_id}`,{replace:!0}),$e.success("Estimate created")}}catch{$e.error("Failed to save")}finally{A(!1)}},VE=async()=>{if(e){Ae(!0);try{const L=await WS(e),Z=`${Q.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(L,Z),$e.success("Exported to Excel")}catch{$e.error("Export failed")}finally{Ae(!1)}}},zE=async()=>{if(e){Y(!0),_e(!1);try{await g(e),$e.success("Estimate deleted"),t("/",{replace:!0})}catch{$e.error("Failed to delete estimate"),Y(!1)}}},$E=async()=>{l(),$e.loading("Refreshing pricing data...",{id:"refresh-data"});try{await o(!0),$e.success("Pricing data refreshed",{id:"refresh-data"})}catch{$e.error("Failed to refresh data",{id:"refresh-data"})}},lx=L=>{I(L),ot(!0)},HE=async()=>{if(Xe){pt(!0);try{await v(Xe.line_item_id),$e.success("Workload removed")}catch{$e.error("Failed to delete")}finally{pt(!1),ot(!1),I(null)}}},cx=()=>{le.size!==0&>(!0)},qE=async()=>{pt(!0);try{let L=0;for(const Z of le)await v(Z),L++;$e.success(`${L} workload(s) deleted`),rt(new Set)}catch{$e.error("Failed to delete some workloads")}finally{pt(!1),gt(!1)}},WE=L=>{rt(Z=>{const C=new Set(Z);return C.has(L)?C.delete(L):C.add(L),C})},GE=()=>{le.size===r.length?rt(new Set):rt(new Set(r.map(L=>L.line_item_id)))},ux=()=>{wr(!1),rt(new Set)},dx=async(L,Z)=>{L.stopPropagation();try{await b(Z.line_item_id)&&$e.success(`Workload "${Z.workload_name}" cloned`)}catch{$e.error("Failed to clone workload")}},KE=()=>{O?P(!0):t("/")},QE=()=>{P(!1),t("/")},fx=L=>{const Z=new Set(M);Z.has(L)?Z.delete(L):Z.add(L),W(Z)},Il=(L,Z=!1)=>{const C=new Set(Se);if(C.has(L))C.delete(L);else if(C.add(L),Z&&!M.has(L)){const $=new Set(M);$.add(L),W($)}Ne(C)},px=L=>L.hours_per_month?`${L.hours_per_month}h/month`:L.runs_per_day?`${L.runs_per_day} runs/day × ${L.avg_runtime_minutes||30}min`:null,mx=L=>{const Z=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(L.workload_type||"")&&L.serverless_enabled&&Z.push({label:"Mode",value:L.serverless_mode==="performance"?"Performance":"Standard"}),L.workload_type){case"VECTOR_SEARCH":L.vector_search_mode&&Z.push({label:"Mode",value:L.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),L.vector_capacity_millions&&Z.push({label:"Capacity",value:`${L.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(L.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};Z.push({label:"Endpoint",value:C[L.model_serving_gpu_type]||L.model_serving_gpu_type})}break;case"LAKEBASE":L.lakebase_cu&&Z.push({label:"CU",value:`${L.lakebase_cu}`}),L.lakebase_ha_nodes&&Z.push({label:"Nodes",value:`${L.lakebase_ha_nodes}${L.lakebase_ha_nodes>1?" (HA)":""}`}),L.lakebase_storage_gb&&L.lakebase_storage_gb>0&&Z.push({label:"Storage",value:`${L.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(L.fmapi_model&&Z.push({label:"Model",value:L.fmapi_model}),L.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};Z.push({label:"Rate",value:C[L.fmapi_rate_type]||L.fmapi_rate_type})}if(L.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(L.fmapi_rate_type||"");Z.push({label:C?"Hours":"Quantity",value:C?`${L.fmapi_quantity}h/mo`:`${L.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(L.fmapi_provider&&L.fmapi_model&&Z.push({label:"Model",value:`${L.fmapi_provider}/${L.fmapi_model}`}),L.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};Z.push({label:"Rate",value:C[L.fmapi_rate_type]||L.fmapi_rate_type})}L.fmapi_quantity&&Z.push({label:"Quantity",value:`${L.fmapi_quantity}M tokens`});break;case"DLT":L.dlt_edition&&Z.push({label:"Edition",value:L.dlt_edition});break;case"DBSQL":L.dbsql_warehouse_type&&Z.push({label:"Type",value:L.dbsql_warehouse_type}),L.dbsql_warehouse_size&&Z.push({label:"Size",value:L.dbsql_warehouse_size}),L.dbsql_num_clusters&&L.dbsql_num_clusters>1&&Z.push({label:"Clusters",value:`${L.dbsql_num_clusters}`});break}return Z},Fl=Q.estimate_name.trim()&&Q.region&&Q.tier,hx=()=>{const L=[];return Q.estimate_name.trim()||L.push("Estimate Name"),Q.region||L.push("Region"),Q.tier||L.push("Databricks Tier"),L};return w?a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:a.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&Ce&&!n?a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[a.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:a.jsx(ey,{className:"w-5 h-5"})}),a.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[a.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[a.jsxs("div",{className:"card p-5",children:[a.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),a.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(L=>a.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},L))}),a.jsx("div",{className:"space-y-4",children:[1,2,3].map(L=>a.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},L))})]}),a.jsxs("div",{className:"space-y-4",children:[a.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"card p-8",children:a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsx("div",{className:"relative",children:a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),a.jsxs("div",{className:"text-center",children:[a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),a.jsx("div",{className:"lg:col-span-1",children:a.jsxs("div",{className:"card p-5 space-y-4",children:[a.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("button",{onClick:KE,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:a.jsx(ey,{className:"w-5 h-5"})}),a.jsx("div",{children:Ce&&e?a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):a.jsxs(a.Fragment,{children:[a.jsx("input",{type:"text",value:Q.estimate_name,onChange:L=>{ct(Z=>({...Z,estimate_name:L.target.value})),Ur()},placeholder:"Untitled Estimate",title:Q.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&a.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&a.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{onClick:$E,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:a.jsx(Qr,{className:ue("w-4 h-4",c&&"animate-spin")})}),a.jsxs("button",{onClick:VE,disabled:be||!e,className:"btn btn-secondary",children:[a.jsx(zc,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&a.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:a.jsx(en,{className:"w-4 h-4"})})]})]}),a.jsxs("div",{className:ue("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[a.jsxs("div",{className:ue("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[a.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Ot(!Ze),children:[a.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[a.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:a.jsx(Lu,{className:"w-4 h-4 text-lava-600"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),a.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${Q.cloud.toUpperCase()} • ${Q.region||"No region"} • ${Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier"}${Q.customer_name?` • ${Q.customer_name}`:""}`,children:[Q.cloud.toUpperCase()," • ",Q.region||"No region"," • ",Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier",Q.customer_name&&` • ${Q.customer_name}`]})]})]}),a.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:Ze?a.jsx(tr,{className:"w-4 h-4 text-[var(--text-muted)]"}):a.jsx(ds,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!Ze&&a.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[a.jsxs("div",{className:"pt-3 space-y-3",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),Ce&&e?a.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(L=>a.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:a.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},L))}):a.jsxs(a.Fragment,{children:[r.length>0&&a.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),a.jsx("div",{className:"grid grid-cols-3 gap-3",children:c8.map(L=>{const Z=r.length>0&&Q.cloud!==L.id;return a.jsxs("button",{disabled:Z,onClick:C=>{C.stopPropagation(),!Z&&(ct($=>({...$,cloud:L.id,region:"",tier:L.id==="azure"&&$.tier==="enterprise"?"":$.tier})),x(L.id),Ur())},className:ue("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",Q.cloud===L.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",Z?"opacity-40 cursor-not-allowed":Q.cloud!==L.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:Z?"Remove all workloads to change cloud provider":void 0,children:[a.jsx("div",{className:ue("text-sm font-semibold",Q.cloud===L.id?"text-lava-600":"text-[var(--text-primary)]"),children:L.name}),Q.cloud===L.id&&a.jsx("div",{className:"absolute top-1.5 right-1.5",children:a.jsx(qs,{className:"w-3.5 h-3.5 text-lava-600"})})]},L.id)})})]})]}),Ce&&e?a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),a.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),a.jsxs("div",{children:[a.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),a.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:L=>L.stopPropagation(),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsxs("select",{value:Q.region,onChange:L=>{ct(Z=>({...Z,region:L.target.value})),y(L.target.value),Ur()},className:ue("w-full text-sm",!Q.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[a.jsx("option",{value:"",children:Le?"Loading regions...":"Select region"}),U.map(L=>a.jsxs("option",{value:L.region_code,children:[L.region_code," (",L.sku_region,")"]},L.region_code))]})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsxs("select",{value:Q.tier,onChange:L=>{ct(Z=>({...Z,tier:L.target.value})),Ur()},className:ue("w-full text-sm",!Q.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[a.jsx("option",{value:"",children:"Select tier"}),a.jsx("option",{value:"premium",children:"Premium"}),Q.cloud!=="azure"&&a.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),a.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[a.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?a.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?a.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[a.jsx(qs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),a.jsxs("button",{onClick:ax,disabled:pe||!Fl,title:Fl?void 0:`Missing: ${hx().join(", ")}`,className:ue("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[a.jsx(qs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[a.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[a.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[a.jsx(u3,{className:"w-5 h-5 text-lava-600"}),"Workloads",a.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&a.jsx(a.Fragment,{children:Nt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[le.size," selected"]}),a.jsxs("button",{onClick:cx,disabled:le.size===0,className:ue("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",le.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:a.jsx(To,{className:"w-4 h-4"})})]}):a.jsx("button",{onClick:()=>wr(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&a.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[a.jsx("button",{onClick:()=>Oe("table"),className:ue("p-1.5 rounded-md transition-colors",Ue==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:a.jsx(y3,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>Oe("cards"),className:ue("p-1.5 rounded-md transition-colors",Ue==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:a.jsx(Ng,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>Oe("expanded"),className:ue("p-1.5 rounded-md transition-colors",Ue==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:a.jsx(ry,{className:"w-4 h-4"})})]}),Ol&&e&&a.jsxs("button",{onClick:()=>se(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[a.jsx(Au,{className:"w-4 h-4"}),"Add"]})]})]}),e?dt&&!Ge?a.jsx("div",{className:"card p-8 text-center",children:a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsx("div",{className:"relative",children:a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),a.jsxs("div",{children:[a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):a.jsxs(a.Fragment,{children:[Ue==="table"&&r.length>0&&a.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[a.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Nt&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("input",{type:"checkbox",checked:le.size===r.length&&r.length>0,onChange:GE,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),a.jsxs("button",{onClick:()=>Md("name"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Nt?"col-span-3":"col-span-4"),children:["Workload",De==="name"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]}),a.jsxs("button",{onClick:()=>Md("type"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",De==="type"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]}),a.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",De==="cost"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]})]}),a.jsx(jE,{sensors:FE,collisionDetection:mE,onDragEnd:UE,modifiers:[ME],children:a.jsx(LE,{items:di.map(L=>L.line_item_id),strategy:PE,children:di.map(L=>{var Rs,kr,rs;const Z=K[L.line_item_id],C=Z?{...L,...Z}:L,$=ns(L,Z),fe=G_(C.workload_type),ze=fe.icon,Et=M.has(L.line_item_id),Pt=le.has(L.line_item_id),Ee=C.workload_type||"",Yt=C.serverless_enabled||Ee==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Pn=((Rs=s.find(te=>te.workload_type===Ee))==null?void 0:Rs.display_name)||Ee,ke=px(C),We=(()=>{const te={badges:[],details:[]};if(Yt&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(Ee))Yt||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),Ee==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(Ee==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(Ee==="VECTOR_SEARCH"){if(C.vector_search_mode){const he=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:he})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(Ee==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(Ee==="FMAPI_DATABRICKS"||Ee==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const he=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:he?"Provisioned":"Token"})}C.fmapi_provider&&Ee==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else Ee==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return a.jsx(d8,{id:L.line_item_id,disabled:!BE,children:a.jsxs("div",{ref:te=>{Nn.current[L.line_item_id]=te},children:[a.jsxs("div",{className:ue("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Pt&&Nt&&"bg-lava-600/5",Et&&"bg-[var(--bg-tertiary)]"),onClick:()=>fx(L.line_item_id),children:[Nt&&a.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:a.jsx("input",{type:"checkbox",checked:Pt,onChange:()=>WE(L.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),a.jsxs("div",{className:ue("flex items-center gap-3",Nt?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[a.jsx("div",{className:ue("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",fe.bgColor),children:a.jsx(ze,{className:ue("w-4 h-4",fe.color)})}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:L.workload_name,children:L.workload_name}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:Pn,children:Pn})]})]}),a.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[We.badges.length>0&&a.jsx("div",{className:"flex items-center gap-1 shrink-0",children:We.badges.map((te,he)=>a.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},he))}),(We.driver||We.workers)&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${We.driver||"N/A"}, Workers: ${((kr=We.workers)==null?void 0:kr.count)||0}× ${((rs=We.workers)==null?void 0:rs.type)||"N/A"}`,children:(()=>{const te=We.driver,he=We.workers;return te&&he?te===he.type?`${he.count+1}× ${he.type}`:`${te} + ${he.count}× ${he.type}`:he?`${he.count}× ${he.type}`:te||""})()}),We.details.length>0&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:We.details.join(" · "),children:We.details.join(" · ")})]}),a.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[a.jsx(Q_,{costs:$,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(Ee)||Ee==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&te&&$.vmCost===0})()}),a.jsxs("div",{className:"flex items-center gap-0.5",children:[a.jsx("button",{onClick:te=>{te.stopPropagation(),Il(L.line_item_id,!0)},className:ue("p-1.5 rounded transition-colors",Se.has(L.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(L.line_item_id)?"Hide calculation":"Show calculation",children:a.jsx(mc,{className:"w-4 h-4"})}),a.jsx("button",{onClick:te=>dx(te,L),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:te=>{te.stopPropagation(),lx(L)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:a.jsx(en,{className:"w-4 h-4"})}),a.jsx("div",{className:ue("p-1 rounded transition-colors",Et?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Et?a.jsx(ds,{className:"w-5 h-5 text-lava-600"}):a.jsx(tr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Et&&(We.badges.length>0||We.driver||We.workers||We.details.length>0)&&a.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[We.badges.map((te,he)=>a.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},he)),(We.driver||We.workers)&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=We.driver,he=We.workers;return te&&he?te===he.type?`${he.count+1}× ${he.type}`:`${te} + ${he.count}× ${he.type}`:he?`${he.count}× ${he.type}`:te||""})()}),We.details.length>0&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:We.details.join(" · ")})]}),Et&&a.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[a.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe($.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(Ee)&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe($.vmCost)})]}),Ee==="LAKEBASE"&&$.storageCost!==void 0&&$.storageCost>0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),a.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:xe($.storageCost)})]}),Ee==="VECTOR_SEARCH"&&$.unitsUsed!==void 0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),a.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[$.unitsUsed," unit",$.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(Ee)&&!Yt&&a.jsxs(a.Fragment,{children:[C.driver_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),a.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),a.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",a.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,he)=>a.jsxs("div",{className:"min-w-0",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),a.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},he)),ke&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),a.jsx("p",{className:"text-[var(--text-primary)]",children:ke})]})]}),a.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[a.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(L.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[a.jsx(mc,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(L.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(L.line_item_id)?a.jsx(ds,{className:"w-3 h-3"}):a.jsx(tr,{className:"w-3 h-3"})]}),Se.has(L.line_item_id)&&a.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,he=C.runs_per_day||0,ss=C.avg_runtime_minutes||30,on=C.days_per_month||30,fi=C.hours_per_month||730,Ut=te?he*(ss/60)*on:fi,ur=($.dbuPrice||0).toFixed(2);if(Ee==="VECTOR_SEARCH"){const st=C.vector_capacity_millions||1,it=C.vector_search_mode||"standard",Zt=it==="storage_optimized"?64:2,Rt=Math.ceil(st/Zt),Wt=it==="storage_optimized"?18.29:4,fn=C.vector_search_storage_gb||0,Xn=Rt*20,An=Math.max(0,fn-Xn),Jn=An*.023;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:["⌈",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M"]})," vectors ÷ ",Zt,"M⌉"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Rt," unit",Rt!==1?"s":""]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Wt.toFixed(2)," DBU/hr/unit"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe($.dbuCost)})]}),fn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[fn," GB"]}),a.jsx("span",{children:"−"}),a.jsxs("span",{children:[Xn," GB free"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Rt," units × 20GB)"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[An," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"$0.023/GB"}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Jn)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),fn>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Jn)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})}if(Ee==="FMAPI_DATABRICKS"||Ee==="FMAPI_PROPRIETARY"){const st=C.fmapi_quantity||1,it=C.fmapi_rate_type||"input_token",Zt=["provisioned_scaling","provisioned_entry"].includes(it),Rt=st>0?$.monthlyDBUs/st:0,Wt=C.fmapi_model||"model",fn=C.fmapi_provider||"";return a.jsx("div",{className:"space-y-1",children:a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Zt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," hours/mo"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Rt.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Wt,")"]})]}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M tokens"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Rt.toFixed(2)," DBU/M"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",fn?`${fn}/`:"",Wt,")"]})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})})}if(Ee==="LAKEBASE"){const st=C.lakebase_cu||1,it=C.lakebase_ha_nodes||1,Zt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Wt=(Zt[Q.cloud||"aws"]||Zt.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213,fn=C.lakebase_storage_gb||0,Xn=C.lakebase_pitr_gb||0,An=C.lakebase_snapshot_gb||0,Jn=.023,Qo=fn*15*Jn,Bl=Xn*8.7*Jn,Ul=An*3.91*Jn,Vl=Qo+Bl+Ul,zl=Vl>0;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," CU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Wt," DBU/CU-hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," nodes"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe($.dbuCost)})]}),fn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[fn," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"15 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(fn*15)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Qo)})]}),Xn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Xn," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"8.7 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Xn*8.7)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Bl)})]}),An>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[An," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"3.91 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(An*3.91)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Ul)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),zl&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Vl)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})}if(Ee==="MODEL_SERVING"){const st=C.model_serving_gpu_type||"cpu",it=C.model_serving_scale_out||"small",Rt=it==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[it]||4,Wt=Rt>0&&$.dbuPerHour?$.dbuPerHour/Rt:2;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:[Wt.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",st,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rt," concurrency"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",it,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})]})}if(Ee==="DBSQL"){const st=C.dbsql_warehouse_size||"Small",it=C.dbsql_num_clusters||1,Zt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),Rt=$.dbuPerHour?$.dbuPerHour/it:12,Wt=$.vmCost>0;return a.jsxs("div",{className:"space-y-1.5",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:st}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Rt.toFixed(1)," DBU/hr)"]}),it>1&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," clusters"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${he} runs × ${ss}min ÷ 60 × ${on} days`:void 0,children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe($.dbuCost)})]}),Wt&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsxs("span",{children:[Zt," warehouse VM costs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe($.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-600",children:xe($.dbuCost)}),Wt&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-600",children:xe($.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})]})}const Ts=C.num_workers||0,Rn=C.driver_node_type||"",xn=C.worker_node_type||"",Vr=C.photon_enabled,is=$.vmCost>0&&!Yt,Ie=Q.cloud||"aws",vt=Q.region||"",Xt=j.find(st=>st.id===Rn||st.name===Rn),vn=j.find(st=>st.id===xn||st.name===xn),dr=R(Ie,Rn)||(Xt==null?void 0:Xt.dbu_rate)||0,Vt=R(Ie,xn)||(vn==null?void 0:vn.dbu_rate)||0,Tn=vt&&Rn?S(Ie,vt,Rn,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,Jt=vt&&xn?S(Ie,vt,xn,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,Ln=$.dbuPerHour||0;return a.jsxs("div",{className:"space-y-1.5",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Yt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Vr?" + Photon":"",")"]})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"("}),a.jsx("span",{title:Rn,children:dr.toFixed(2)}),a.jsx("span",{children:"+"}),a.jsx("span",{title:xn,children:Vt.toFixed(2)}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),a.jsx("span",{children:")"}),Vr&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe($.dbuCost)})]}),is&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsx("span",{children:"("}),a.jsxs("span",{title:Rn,children:["$",(Tn==null?void 0:Tn.toFixed(4))||"0"]}),a.jsx("span",{children:"+"}),a.jsxs("span",{title:xn,children:["$",(Jt==null?void 0:Jt.toFixed(4))||"0"]}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),a.jsx("span",{children:")"}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe($.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),is&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-500",children:xe($.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})})()})]})]}),Et&&a.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:a.jsx(W_,{onReset:()=>{W(te=>{const he=new Set(te);return he.delete(L.line_item_id),he})},children:a.jsx(rp,{estimateId:e,lineItem:L,onClose:()=>{W(te=>{const he=new Set(te);return he.delete(L.line_item_id),he}),ie(te=>{const he={...te};return delete he[L.line_item_id],he})},onSave:()=>{ie(te=>{const he={...te};return delete he[L.line_item_id],he})},onFormChange:te=>{ie(he=>({...he,[L.line_item_id]:te}))},inline:!0})})})]})},L.line_item_id)})})})]}),Ue!=="table"&&di.map((L,Z)=>{var Pn;const C=K[L.line_item_id],$=C?{...L,...C}:L,fe=ns(L,C),ze=M.has(L.line_item_id),Et=px($),Pt=G_($.workload_type),Ee=Pt.icon,Yt=Ue==="expanded"||ze;return a.jsx("div",{ref:ke=>{Nn.current[L.line_item_id]=ke},children:a.jsxs(Bt.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:Z*.02},className:"card overflow-hidden",children:[a.jsxs("div",{className:ue("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",Ue==="cards"&&!ze&&"py-3"),onClick:()=>fx(L.line_item_id),children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx("div",{className:ue("rounded-lg flex items-center justify-center flex-shrink-0",Ue==="cards"&&!ze?"w-8 h-8":"w-10 h-10",Pt.bgColor),children:a.jsx(Ee,{className:ue(Pt.color,Ue==="cards"&&!ze?"w-4 h-4":"w-5 h-5")})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("h4",{className:ue("font-semibold truncate text-[var(--text-primary)]",Ue==="cards"&&!ze&&"text-sm"),title:L.workload_name,children:L.workload_name}),(L.serverless_enabled||L.workload_type==="DBSQL"&&(L.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&a.jsx("span",{className:"badge badge-teal",children:"Serverless"}),L.photon_enabled&&a.jsxs("span",{className:"badge badge-lava",children:[a.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),a.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:a.jsx("span",{children:((Pn=s.find(ke=>ke.workload_type===L.workload_type))==null?void 0:Pn.display_name)||L.workload_type})})]}),a.jsx(Q_,{costs:fe,size:Ue==="cards"&&!ze?"md":"lg",isLoading:(()=>{const ke=L.workload_type||"",Qe=!L.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(ke)||ke==="DBSQL"&&(L.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&Qe&&fe.vmCost===0})(),className:"min-w-[100px]"}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:ke=>{ke.stopPropagation(),Il(L.line_item_id,!0)},className:ue("p-1.5 rounded-md transition-colors",Se.has(L.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(L.line_item_id)?"Hide calculation":"Show calculation",children:a.jsx(mc,{className:"w-4 h-4"})}),a.jsx("button",{onClick:ke=>dx(ke,L),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:ke=>{ke.stopPropagation(),lx(L)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:a.jsx(en,{className:"w-4 h-4"})}),ze?a.jsx(ds,{className:"w-5 h-5 text-[var(--text-muted)]"}):a.jsx(tr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),Yt&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(fe.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(L.workload_type||"")&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(fe.vmCost)})]}),L.workload_type==="LAKEBASE"&&fe.storageCost!==void 0&&fe.storageCost>0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),a.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:xe(fe.storageCost)})]}),L.workload_type==="VECTOR_SEARCH"&&fe.unitsUsed!==void 0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),a.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[fe.unitsUsed," unit",fe.unitsUsed!==1?"s":""]})]}),(L.workload_type==="JOBS"||L.workload_type==="ALL_PURPOSE"||L.workload_type==="DLT")&&a.jsxs(a.Fragment,{children:[L.driver_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),a.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:L.driver_node_type})]}),L.worker_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),a.jsxs("p",{className:"text-[var(--text-primary)]",children:[L.num_workers,"× ",a.jsx("span",{className:"font-mono text-[10px]",children:L.worker_node_type})]})]})]}),mx(L).map((ke,Qe)=>a.jsxs("div",{className:"min-w-0",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:ke.label}),a.jsx("p",{className:"text-[var(--text-primary)] break-words",children:ke.value})]},Qe)),Et&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),a.jsx("p",{className:"text-[var(--text-primary)]",children:Et})]})]}),a.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[a.jsxs("button",{onClick:ke=>{ke.stopPropagation(),Il(L.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[a.jsx(mc,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(L.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(L.line_item_id)?a.jsx(ds,{className:"w-3 h-3"}):a.jsx(tr,{className:"w-3 h-3"})]}),Se.has(L.line_item_id)&&a.jsx("div",{className:"mt-2",children:(()=>{const ke=$.workload_type||"",Qe=$.serverless_enabled||ke==="DBSQL"&&($.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",We=$.runs_per_day&&$.avg_runtime_minutes&&!$.hours_per_month,Rs=$.runs_per_day||0,kr=$.avg_runtime_minutes||30,rs=$.days_per_month||30,te=$.hours_per_month||730,he=We?Rs*(kr/60)*rs:te,on=(fe.dbuPrice||0).toFixed(2);if(ke==="VECTOR_SEARCH"){const Vt=$.vector_capacity_millions||1,Tn=$.vector_search_mode||"standard",Jt=Tn==="storage_optimized"?64:2,Ln=Math.ceil(Vt/Jt),st=Tn==="storage_optimized"?18.29:4,it=$.vector_search_storage_gb||0,Zt=Ln*20,Rt=Math.max(0,it-Zt),Wt=Rt*.023;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:["⌈",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt,"M vectors"]})," ÷ ",Jt,"⌉"]}),a.jsxs("span",{children:["= ",Ln," units ×"]}),a.jsxs("span",{children:[st," DBU/unit/hr ×"]}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs × $",on]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(fe.dbuCost)})]}),it>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," GB"]}),a.jsx("span",{children:"−"}),a.jsxs("span",{children:[Zt," GB free"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ln," units × 20GB)"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Rt," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"$0.023/GB"}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Wt)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),it>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Wt)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="FMAPI_DATABRICKS"||ke==="FMAPI_PROPRIETARY"){const Vt=$.fmapi_quantity||0,Tn=fe.monthlyDBUs/(Vt||1);return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt,"M tokens"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Tn.toFixed(2)," DBU/M"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="LAKEBASE"){const Vt=$.lakebase_cu||1,Tn=$.lakebase_ha_nodes||1,Jt=$.lakebase_storage_gb||0,Ln=$.lakebase_pitr_gb||0,st=$.lakebase_snapshot_gb||0,it=.023,Zt=Jt*15*it,Rt=Ln*8.7*it,Wt=st*3.91*it,fn=Zt+Rt+Wt,Xn=fn>0,An={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Qo=(An[Q.cloud||"aws"]||An.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt," CU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Qo," DBU/CU-hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Tn," nodes"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(fe.dbuCost)})]}),Jt>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Jt," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"15 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Jt*15)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Zt)})]}),Ln>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ln," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"8.7 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Ln*8.7)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Rt)})]}),st>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"3.91 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(st*3.91)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Wt)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),Xn&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(fn)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="MODEL_SERVING"){const Vt=$.model_serving_scale_out||"small",Jt=Vt==="custom"?$.model_serving_concurrency||4:{small:4,medium:12,large:40}[Vt]||4,Ln=Jt>0&&fe.dbuPerHour?fe.dbuPerHour/Jt:2;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Jt," concurrency"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Vt,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}const fi=$.num_workers||0,Ut=$.driver_node_type||"",Sr=$.worker_node_type||"",ur=$.photon_enabled,Ts=fe.vmCost>0&&!Qe,Rn=Q.cloud||"aws",xn=Q.region||"",Vr=j.find(Vt=>Vt.id===Ut||Vt.name===Ut),is=j.find(Vt=>Vt.id===Sr||Vt.name===Sr),Ie=R(Rn,Ut)||(Vr==null?void 0:Vr.dbu_rate)||0,vt=R(Rn,Sr)||(is==null?void 0:is.dbu_rate)||0,Xt=xn&&Ut?S(Rn,xn,Ut,$.driver_pricing_tier||"on_demand",$.driver_payment_option||"no_upfront"):null,vn=xn&&Sr?S(Rn,xn,Sr,$.worker_pricing_tier||"spot",$.worker_payment_option||"NA"):null,dr=fe.dbuPerHour||0;return a.jsxs("div",{className:"space-y-1.5",children:[We&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rs," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[kr,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[rs," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[he.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Qe?a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[dr.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",ur?" + Photon":"",")"]})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"("}),a.jsx("span",{title:Ut,children:Ie.toFixed(2)}),a.jsx("span",{children:"+"}),a.jsx("span",{title:Sr,children:vt.toFixed(2)}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:fi}),a.jsx("span",{children:")"}),ur&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[dr.toFixed(2)," DBU/hr"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(We?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),Ts&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsx("span",{children:"("}),a.jsxs("span",{title:Ut,children:["$",(Xt==null?void 0:Xt.toFixed(4))||"0"]}),a.jsx("span",{children:"+"}),a.jsxs("span",{title:Sr,children:["$",(vn==null?void 0:vn.toFixed(4))||"0"]}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:fi}),a.jsx("span",{children:")"}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(We?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe(fe.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),Ts&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-500",children:xe(fe.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})})()})]})]})]}),ze&&a.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:a.jsx(W_,{onReset:()=>{W(ke=>{const Qe=new Set(ke);return Qe.delete(L.line_item_id),Qe})},children:a.jsx(rp,{estimateId:e,lineItem:L,onClose:()=>{W(ke=>{const Qe=new Set(ke);return Qe.delete(L.line_item_id),Qe}),ie(ke=>{const Qe={...ke};return delete Qe[L.line_item_id],Qe})},onSave:()=>{ie(ke=>{const Qe={...ke};return delete Qe[L.line_item_id],Qe})},onFormChange:ke=>{ie(Qe=>({...Qe,[L.line_item_id]:ke}))},inline:!0})})})]})},L.line_item_id)}),Ol?N?a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),a.jsx("button",{onClick:()=>se(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),a.jsx(rp,{estimateId:e,lineItem:null,onClose:()=>se(!1),onSave:()=>{},inline:!0})]}):a.jsxs("button",{onClick:()=>se(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[a.jsx(Au,{className:"w-5 h-5"}),"Add Workload"]}):a.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[a.jsx(fs,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),a.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",a.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",a.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):a.jsxs("div",{className:"card p-8 text-center",children:[Fl?a.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),a.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),a.jsxs("button",{onClick:ax,disabled:pe||!Fl,className:"btn btn-primary",children:[a.jsx(qs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&a.jsx("div",{className:"lg:col-span-1",children:a.jsxs("div",{className:"card p-5 sticky top-24",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("h3",{className:"flex items-center gap-2",children:[a.jsx(_m,{className:"w-5 h-5 text-lava-600"}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),dt&&!Ge&&a.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),a.jsxs("button",{onClick:()=>xt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[a.jsx(tr,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),Ol?dt&&!Ge?a.jsxs("div",{className:"space-y-3 py-4",children:[a.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?a.jsxs("div",{className:"space-y-4",children:[a.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[a.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),a.jsx("p",{className:ue("text-3xl font-bold text-lava-600",Ke&&"opacity-60"),children:xe(Yn.totalCost)}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[xe(Yn.totalCost*12),"/year"]})]}),a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[a.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[a.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),a.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:xe(Yn.totalDBUCost),children:K_(Yn.totalDBUCost)})]}),a.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[a.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),a.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Ke?"Loading...":xe(Yn.totalVMCost),children:Ke?"...":K_(Yn.totalVMCost)})]})]}),a.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[a.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[a.jsxs("span",{children:["Workloads (",r.length,")"]}),a.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),a.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const L=[...r].map(C=>({item:C,costs:ns(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return L.map(({item:C,costs:$},fe)=>{const ze=Yn.totalCost>0?$.totalCost/Yn.totalCost*100:0,Et=Z[fe%Z.length];return a.jsxs("button",{onClick:()=>Br(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[a.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[a.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),a.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[a.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[ze.toFixed(0),"%"]}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:xe($.totalCost),children:xe($.totalCost)})]})]}),a.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx("div",{className:ue("h-full rounded-full transition-all",Et,"group-hover:brightness-110"),style:{width:`${Math.max(ze,2)}%`}})})]},C.line_item_id)})})()})]})]}):a.jsxs("div",{className:"text-center py-8",children:[a.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):a.jsxs("div",{className:"text-center py-8",children:[a.jsx(fs,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),a.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&a.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[St&&r.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>mt(!1)}),a.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:a.jsxs("div",{className:"p-4",children:[a.jsxs("div",{className:"flex items-center justify-between mb-3",children:[a.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),a.jsx("button",{onClick:()=>mt(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),a.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const L=[...r].map(C=>({item:C,costs:ns(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return L.map(({item:C,costs:$},fe)=>{const ze=Yn.totalCost>0?$.totalCost/Yn.totalCost*100:0,Et=Z[fe%Z.length];return a.jsxs("button",{onClick:()=>{mt(!1),Br(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[a.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[a.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),a.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[a.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[ze.toFixed(0),"%"]}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:xe($.totalCost)})]})]}),a.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx("div",{className:ue("h-full rounded-full",Et),style:{width:`${Math.max(ze,1)}%`}})})]},C.line_item_id)})})()}),a.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),a.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-14",children:[a.jsxs("button",{onClick:()=>xt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[a.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),a.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),a.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[a.jsxs("button",{onClick:()=>mt(!St),className:ue("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",St?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[a.jsx(ry,{className:"w-4 h-4"}),a.jsx("span",{className:"font-semibold",children:r.length}),a.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),a.jsx(ds,{className:ue("w-3 h-3 transition-transform",St?"rotate-180":"")})]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),a.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[a.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),a.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:xe(Yn.totalDBUCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[a.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),a.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:xe(Yn.totalVMCost)})]})]}),a.jsx("div",{className:"flex items-center",children:a.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:a.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[xe(Yn.totalCost),a.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),le.size>0&&a.jsxs(Bt.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[a.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[le.size," workload",le.size!==1?"s":""," selected"]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),a.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[a.jsx(To,{className:"w-4 h-4"}),"Cancel"]})]}),ce&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',Q.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:zE,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ye&&Xe&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',Xe.workload_name,'"']}),"?"]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:at,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:HE,disabled:at,className:"btn bg-red-600 hover:bg-red-700 text-white",children:at?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]})})]})]})}),tt&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",le.size," Workload",le.size!==1?"s":""]}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[a.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),a.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(L=>le.has(L.line_item_id)).map(L=>a.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",L.workload_name]},L.line_item_id))})]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>gt(!1),disabled:at,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:qE,disabled:at,className:"btn bg-red-600 hover:bg-red-700 text-white",children:at?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),G&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:a.jsx(fs,{className:"w-5 h-5 text-amber-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),a.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),a.jsx("button",{onClick:QE,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function f8(){const{id:e}=bw(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),a.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),a.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const Z_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},p8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function m8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:o,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:f,getFMAPIProprietaryRate:p,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:Z_[n]||Z_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let S="";const R=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?S="JOBS_COMPUTE_(PHOTON)":S="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?S="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?S="ALL_PURPOSE_COMPUTE_(PHOTON)":S="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":(S=`DLT_${R}_COMPUTE`,e.photon_enabled&&(S+="_(PHOTON)"));break;case"DBSQL":const ce=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ce==="SERVERLESS"?S="SERVERLESS_SQL_COMPUTE":ce==="PRO"?S="SQL_PRO_COMPUTE":S="SQL_COMPUTE";break;case"VECTOR_SEARCH":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();S=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":S="DATABASE_SERVERLESS_COMPUTE";break;default:S="JOBS_COMPUTE"}let k=null;if(b){const ce=b(S);ce!==null&&ce>0&&(k=ce)}k===null&&(k=x[S]||.2),console.log(`[LiveEstimate] productType=${S}, dbuPrice=${k}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,z=0,j,H,X,re=.5,ae=.5;if(g&&e.driver_node_type){const ce=g(e.driver_node_type);ce!==null&&ce>0&&(re=ce)}if(re===.5){const ce=o.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ce!=null&&ce.dbu_rate&&(re=ce.dbu_rate)}if(g&&e.worker_node_type){const ce=g(e.worker_node_type);ce!==null&&ce>0&&(ae=ce)}if(ae===.5){const ce=o.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ce!=null&&ce.dbu_rate&&(ae=ce.dbu_rate)}const ve=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ce=S.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ce="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ce="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ce=`DLT_${R}_COMPUTE`)),v){const ye=v(ce);if(ye!==null&&ye>1)return ye}const _e=c.find(ye=>{var ot;return ye.sku_type===ce||ye.sku_type===S||((ot=ye.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+ae*y)*ve*oe;else{T=(re+ae*y)*ve;const le=e.driver_pricing_tier||"on_demand",rt=e.driver_payment_option||"NA",Nt=e.worker_pricing_tier||"spot",wr=e.worker_payment_option||"NA",Nn=d(n,r,e.driver_node_type||"",le,rt),Br=d(n,r,e.worker_node_type||"",Nt,wr);z=(Nn+Br*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+ae*y)*ve*oe;else{T=(re+ae*y)*ve;const le=e.driver_pricing_tier||"on_demand",rt=e.driver_payment_option||"NA",Nt=e.worker_pricing_tier||"spot",wr=e.worker_payment_option||"NA",Nn=d(n,r,e.driver_node_type||"",le,rt),Br=d(n,r,e.worker_node_type||"",Nt,wr);z=(Nn+Br*y)*_}D=T*_;break;case"DBSQL":const ce=l.find(le=>le.id===e.dbsql_warehouse_size||le.name===e.dbsql_warehouse_size),_e=(ce==null?void 0:ce.dbu_per_hour)||p8[e.dbsql_warehouse_size||"Small"]||12,ye=e.dbsql_num_clusters||1;T=_e*ye,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",rt=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Nt=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",wr=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Nn=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Nn){const Br=d(n,r,Nn.driver_instance_type,le,rt),Ur=d(n,r,Nn.worker_instance_type,Nt,wr);z=(Nn.driver_count*Br+Nn.worker_count*Ur)*ye*_}else if(e.driver_node_type){const Br=d(n,r,e.driver_node_type,le,rt),Ur=e.worker_node_type?d(n,r,e.worker_node_type,Nt,wr):0,Ml=e.num_workers||0;z=(Br+Ur*Ml)*ye*_}}break;case"VECTOR_SEARCH":const Xe=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,tt=h(Xe),gt=(tt==null?void 0:tt.input_divisor)||(Xe==="storage_optimized"?64e6:2e6),at=(tt==null?void 0:tt.dbu_per_hour)||(Xe==="storage_optimized"?18.29:4),pt=I*1e6,G=Math.ceil(pt/gt);j=G,T=G*at,D=T*_;const P=e.vector_search_storage_gb||0,N=G*20,se=Math.max(0,P-N),M=.023,W=se*M;P>0&&(H=W,X={totalStorageGB:P,freeStorageGB:N,billableStorageGB:se,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Ne=u.find(le=>le.id===Se||le.name===Se),O=(Ne==null?void 0:Ne.dbu_per_hour)||2,F=e.model_serving_scale_out||"small",ie=F==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[F]||4;T=O*ie,D=T*_;break;case"LAKEBASE":const Ce=e.lakebase_cu||1,Be=e.lakebase_ha_nodes||1,dt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ge=(dt[n]||dt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=Ce*Ge*Be,D=T*_;const lt=Math.min(e.lakebase_storage_gb||0,8192),Ke=15,Mt=lt*Ke,U=.023,J=Mt*U,Le=e.lakebase_pitr_gb||0,Q=Le*8.7*U,ct=e.lakebase_snapshot_gb||0,Ot=ct*3.91*U;(lt>0||Le>0||ct>0)&&(H=J+Q+Ot,X={totalStorageGB:lt,billableStorageGB:lt,dsuPerGB:Ke,totalDSU:Mt,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,xt=e.fmapi_rate_type||"input_token",St=["provisioned_scaling","provisioned_entry"].includes(xt),mt=e.fmapi_model?f(e.fmapi_model,xt):null;if(St){const le=(mt==null?void 0:mt.dbu_per_hour)||(xt==="provisioned_scaling"?200:50);D=ft*le}else{const le=(mt==null?void 0:mt.dbu_per_1M_tokens)||(xt==="output_token"?3:1);D=ft*le}break;case"FMAPI_PROPRIETARY":const Ue=e.fmapi_quantity||0,Oe=e.fmapi_rate_type||"input_token",De=Oe==="provisioned_scaling",Pe=e.fmapi_endpoint_type||"global",qt=e.fmapi_context_length||"long",Ct=e.fmapi_provider&&e.fmapi_model?p(e.fmapi_provider,e.fmapi_model,Oe,Pe,qt):null;if(De){const le=(Ct==null?void 0:Ct.dbu_per_hour)||150;D=Ue*le}else{let le=Ct==null?void 0:Ct.dbu_per_1M_tokens;if(!le)switch(Oe){case"output_token":le=321.43;break;case"cache_read":le=8.57;break;case"cache_write":le=85.71;break;default:le=21.43}D=Ue*le}break;default:D=0}const B=D*k,q=H!==void 0&&!isNaN(H)?H:0,E=B+z+q,de=isNaN(B)?0:B,pe=isNaN(z)?0:z,A=isNaN(E)?de:E,be=isNaN(D)?0:D,Ae=isNaN(T)?0:T,w=isNaN(k)?.15:k;return{monthlyDBUs:be,dbuCost:de,vmCost:pe,totalCost:A,unitsUsed:j,dbuPerHour:Ae,dbuPrice:w,storageCost:q>0?q:void 0,storageDetails:X}}const fl={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,o;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=fl[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((o=fl[t.toLowerCase()])==null?void 0:o.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=fl[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const h8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],g8=["bge-large","gte"],x8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],eb=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],v8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},y8=["cpu","gpu_small_t4"],_8=["standard","storage_optimized"];function ms(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function tb(e,t,n,r,s,i){const o=[];let l=r;const c=i!=null&&i.isLoaded?sC(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))o.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),o.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])o.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))o.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});o.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])o.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});o.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of ms(eb,3))o.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of ms(eb,2))o.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});o.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of _8)o.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=v8[s.toLowerCase()]||y8;for(const f of d)o.push({id:`${++l}`,name:`Model Serving ${f}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:f,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of ms(h8,3))for(const f of["input_token","output_token"])o.push({id:`${++l}`,name:`FMAPI DB ${d} ${f}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:f,fmapi_quantity:10}});for(const d of ms(g8,1))o.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of ms(x8,4))for(const f of d.contexts.slice(0,2))for(const p of["input_token","output_token"])o.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${f} ${p}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:f,fmapi_rate_type:p,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])o.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return o}function b8(e,t){var s,i,o;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),f=d.length>0?ms(d,e.vmSamplesPerCloud):["c5.xlarge"];return tb({cloud:l,region:c,tier:u},f,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=ms(c.length>0?c:((s=fl[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=ms(Qm(l),e.tiersPerCloud);for(const f of u){const p=Hu(t,l),h=p.length>0?ms(p,e.vmSamplesPerCloud):((o=(i=fl[l])==null?void 0:i.vmTypes)==null?void 0:o.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=tb({cloud:l,region:f,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function w8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function k8(e){var o,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((o=n.fmapi_rate_type)==null?void 0:o.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function S8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,o=t.totalCost||0,l=Math.abs(i-o),c=o!==0?l/o*100:i!==0?100:0;for(const u of s){const d=e[u]||0,f=t[u]||0,p=Math.abs(d-f),h=f!==0?p/f*100:d!==0?100:0;h>n&&p>.01&&r.push({field:u,local:d,api:f,diff:p,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function C8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[o,l]=m.useState(!1),[c,u]=m.useState(null),[d,f]=m.useState(new Set),[p,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[S,R]=m.useState({current:0,total:0}),[k,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),z=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:ae,photonMultipliers:me,modelServingGPUTypes:ve,vectorSearchModes:oe,pricingBundle:B,isPricingBundleLoaded:q,loadPricingBundle:E,getVMPrice:de,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:A,getFMAPIProprietaryRate:be,getVectorSearchRate:Ae}=_s();m.useEffect(()=>{E()},[E]);const w=m.useMemo(()=>b8(j,B),[j,B]),Y=m.useMemo(()=>p==="all"?w:w.filter(M=>M.category===p),[w,p]),ce=m.useMemo(()=>{const M=new Set(w.map(W=>W.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,W,Se)=>{const Ne=q&&B.modelServingRates?Object.entries(B.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,F])=>{const K=O.split(":")[1];return{id:K,name:K,dbu_per_hour:F.dbu_rate}}):ve;return{cloud:M,region:W,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:ae,photonMultipliers:me,modelServingGPUTypes:Ne,vectorSearchModes:oe,getVMPrice:de,getFMAPIDatabricksRate:(O,F)=>{if(q&&B.fmapiDatabricksRates){const K=`${M.toLowerCase()}:${O}:${F}`,ie=B.fmapiDatabricksRates[K];if(ie)return{dbu_per_1M_tokens:ie.is_hourly?void 0:ie.dbu_rate,dbu_per_hour:ie.is_hourly?ie.dbu_rate:void 0}}return A(O,F)},getFMAPIProprietaryRate:(O,F,K,ie,Ce)=>{if(q&&B.fmapiProprietaryRates){const Be=ie||"global",dt=Ce||"all",nt=`${M.toLowerCase()}:${O.toLowerCase()}:${F.toLowerCase()}:${Be}:${dt}:${K}`,Ge=B.fmapiProprietaryRates[nt];if(Ge)return{dbu_per_1M_tokens:Ge.is_hourly?void 0:Ge.dbu_rate,dbu_per_hour:Ge.is_hourly?Ge.dbu_rate:void 0}}return be(O,F,K)},getVectorSearchRate:O=>{if(q&&B.vectorSearchRates){const F=`${M.toLowerCase()}:${O}`,K=B.vectorSearchRates[F];if(K)return{dbu_per_hour:K.dbu_rate,input_divisor:K.input_divisor}}return Ae(O)},getInstanceDBURate:O=>q?Pm(B,M,O):null,getPhotonMultiplier:O=>q?rC(B,M,O):null,getDBUPrice:O=>q?Ag(B,M,W,Se,O):null,getDBSQLWarehouseConfig:(O,F)=>q?al(B,M,O,F):null}},[X,re,ae,me,ve,oe,q,B,de,A,be,Ae]),ye=async M=>{var Q,ct,Ze,Ot,ft,xt,St,mt,Ue;const{environment:W,workloadType:Se,config:Ne}=M,O=_e(W.cloud,W.region,W.tier),F={...Ne,workload_type:Se},K=[];if(Se==="DBSQL"&&Ne.dbsql_warehouse_type!=="SERVERLESS"){const Oe=al(B,W.cloud,Ne.dbsql_warehouse_type||"PRO",Ne.dbsql_warehouse_size||"Small");if(Oe){const De=Ne.dbsql_driver_pricing_tier||"on_demand",Pe=Ne.dbsql_driver_payment_option||"NA";K.push(pe(W.cloud,W.region,Oe.driver_instance_type,De,Pe));const qt=Ne.dbsql_worker_pricing_tier||"on_demand",Ct=Ne.dbsql_worker_payment_option||"NA";K.push(pe(W.cloud,W.region,Oe.worker_instance_type,qt,Ct))}}else!Ne.serverless_enabled&&Ne.driver_node_type&&(K.push(pe(W.cloud,W.region,Ne.driver_node_type,Ne.driver_pricing_tier||"on_demand",Ne.driver_payment_option||"NA")),Ne.worker_node_type&&K.push(pe(W.cloud,W.region,Ne.worker_node_type,Ne.worker_pricing_tier||"spot",Ne.worker_payment_option||"NA")));K.length>0&&await Promise.all(K);const ie=performance.now(),Ce=m8(F,O),Be=performance.now()-ie,dt=performance.now();let nt=null,Ge,lt;const Ke=w8(Se,Ne),Mt=k8(M);try{const Oe=await fetch(Ke,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Mt)});if(Oe.ok){const De=await Oe.json();lt=De;const Pe=De.data||De,qt=((Q=Pe.dbu_calculation)==null?void 0:Q.dbu_per_month)??Pe.dbu_per_month??(((ct=Pe.dbu_calculation)==null?void 0:ct.dbu_per_hour)??Pe.dbu_per_hour??0)*(Ne.hours_per_month||730),Ct=((Ze=Pe.dbu_calculation)==null?void 0:Ze.dbu_cost_per_month)??((ft=(Ot=Pe.total_cost)==null?void 0:Ot.breakdown)==null?void 0:ft.dbu_cost)??Pe.dbu_cost_per_month??Pe.dbu_cost??0,le=((xt=Pe.vm_costs)==null?void 0:xt.vm_cost_per_month)??((mt=(St=Pe.total_cost)==null?void 0:St.breakdown)==null?void 0:mt.vm_cost)??Pe.vm_cost_per_month??Pe.vm_cost??0;let rt=0;typeof Pe.total_cost=="object"&&Pe.total_cost!==null?rt=Pe.total_cost.cost_per_month??Ct+le:typeof Pe.total_cost=="number"?rt=Pe.total_cost:rt=Pe.total_cost_per_month??Ct+le,nt={monthlyDBUs:qt,dbuCost:Ct,vmCost:le,totalCost:rt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:De,parsed:nt})}else{const De=await Oe.text();try{const Pe=JSON.parse(De);Ge=`HTTP ${Oe.status}: ${((Ue=Pe.detail)==null?void 0:Ue.message)||Pe.detail||Pe.message||De}`}catch{Ge=`HTTP ${Oe.status}: ${De}`}}}catch(Oe){Ge=Oe instanceof Error?Oe.message:"Unknown error"}const U=performance.now()-dt,{discrepancies:J,totalCostDiffPercent:Le}=S8(Ce,nt,g),Ve=Le<=g&&!Ge;return{testCase:M,localResult:Ce,apiResult:nt,apiError:Ge,apiRequestBody:Mt,apiRawResponse:lt,localTimeMs:Be,apiTimeMs:U,matches:Ve,totalCostDiffPercent:Le,discrepancies:J}},ot=()=>{D.current=!0,i(!0)},Xe=()=>{D.current=!1,i(!1)},I=()=>{z.current=!0,l(!0),D.current=!1,i(!1)},tt=async()=>{for(;D.current&&!z.current;)await new Promise(M=>setTimeout(M,100))},gt=async()=>{r(!0),i(!1),l(!1),D.current=!1,z.current=!1,t([]),R({current:0,total:Y.length});for(let M=0;M[...Ne,Se])}u(null),r(!1),i(!1),l(!1)},at=async()=>{const{cloud:M,region:W,tier:Se,workloadType:Ne,serverless:O,photon:F,driverNode:K,workerNode:ie,numWorkers:Ce,runsPerDay:Be,avgRuntime:dt,daysPerMonth:nt,hoursPerMonth:Ge}=k,lt={id:"custom-single",name:`Custom ${Ne} Test`,category:Ne,workloadType:Ne,environment:{cloud:M,region:W,tier:Se},config:{serverless_enabled:O,photon_enabled:F,driver_node_type:K,worker_node_type:ie,num_workers:Ce,runs_per_day:Be,avg_runtime_minutes:dt,days_per_month:nt,hours_per_month:Ge,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Ke=await ye(lt);t([Ke]),u(null),r(!1)},pt=m.useMemo(()=>{const M=e.filter(K=>K.matches).length,W=e.filter(K=>!K.matches).length,Se=e.filter(K=>K.apiError).length,Ne=e.length>0?e.reduce((K,ie)=>K+ie.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((K,ie)=>K+ie.apiTimeMs,0)/e.length:0,F={};return e.forEach(K=>{const ie=K.testCase.category;F[ie]||(F[ie]={passed:0,failed:0}),K.matches?F[ie].passed++:F[ie].failed++}),{passed:M,failed:W,apiErrors:Se,avgLocalTime:Ne,avgApiTime:O,byCategory:F}},[e]),G=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],W=e.map(K=>{var ie;return[K.testCase.id,K.testCase.name,K.testCase.category,K.testCase.environment.cloud,K.testCase.environment.region,K.testCase.environment.tier,K.matches?"PASS":"FAIL",K.localResult.totalCost.toFixed(2),((ie=K.apiResult)==null?void 0:ie.totalCost.toFixed(2))||"N/A",K.totalCostDiffPercent.toFixed(2),K.localTimeMs.toFixed(1),K.apiTimeMs.toFixed(1),K.apiError||""]}),Se=[M.join(","),...W.map(K=>K.map(ie=>`"${ie}"`).join(","))].join(` +`),Ne=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Ne),F=document.createElement("a");F.href=O,F.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,F.click()},P=M=>{const W=new Set(d);W.has(M)?W.delete(M):W.add(M),f(W)},N=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),se=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return a.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:a.jsx(aD,{className:"w-6 h-6 text-purple-500"})}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[a.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),a.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[a.jsx(XA,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&a.jsxs("button",{onClick:G,className:"btn btn-secondary flex items-center gap-2",children:[a.jsx(TD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&a.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[a.jsx(JD,{className:"w-4 h-4"}),"Pause"]}),n&&s&&a.jsxs("button",{onClick:Xe,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Resume"]}),n&&a.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[a.jsx(fS,{className:"w-4 h-4"}),"Stop"]}),!n&&a.jsxs("button",{onClick:gt,className:"btn btn-primary flex items-center gap-2",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&a.jsxs(Bt.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),a.jsxs("button",{onClick:at,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Run Single Test"]})]}),a.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),a.jsxs("select",{value:k.cloud,onChange:M=>T({...k,cloud:M.target.value}),className:"w-full text-sm",children:[a.jsx("option",{value:"aws",children:"AWS"}),a.jsx("option",{value:"azure",children:"Azure"}),a.jsx("option",{value:"gcp",children:"GCP"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),a.jsx("input",{type:"text",value:k.region,onChange:M=>T({...k,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),a.jsx("datalist",{id:"single-test-regions",children:Km(B,k.cloud).slice(0,20).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),a.jsx("select",{value:k.tier,onChange:M=>T({...k,tier:M.target.value}),className:"w-full text-sm",children:Qm(k.cloud).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),a.jsxs("select",{value:k.workloadType,onChange:M=>T({...k,workloadType:M.target.value}),className:"w-full text-sm",children:[a.jsx("option",{value:"JOBS",children:"Jobs"}),a.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),a.jsx("option",{value:"DLT",children:"DLT"}),a.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),a.jsxs("div",{className:"flex items-end gap-4",children:[a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:k.serverless,onChange:M=>T({...k,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:k.photon,onChange:M=>T({...k,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),a.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),a.jsx("input",{type:"text",value:k.driverNode,onChange:M=>T({...k,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),a.jsx("datalist",{id:"single-test-driver-vms",children:Hu(B,k.cloud,k.region).slice(0,50).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),a.jsx("input",{type:"text",value:k.workerNode,onChange:M=>T({...k,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),a.jsx("datalist",{id:"single-test-worker-vms",children:Hu(B,k.cloud,k.region).slice(0,50).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),a.jsx("input",{type:"number",value:k.numWorkers,onChange:M=>T({...k,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),a.jsx("input",{type:"number",value:k.runsPerDay,onChange:M=>T({...k,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),a.jsx("input",{type:"number",value:k.avgRuntime,onChange:M=>T({...k,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),a.jsx("input",{type:"number",value:k.daysPerMonth,onChange:M=>T({...k,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&a.jsxs(Bt.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(CD,{className:"w-5 h-5 text-[var(--text-muted)]"}),a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),a.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[a.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[a.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),a.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&a.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),a.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[a.jsx("option",{value:"aws",children:"AWS"}),a.jsx("option",{value:"azure",children:"Azure"}),a.jsx("option",{value:"gcp",children:"GCP"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),a.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),a.jsx("datalist",{id:"available-regions",children:Km(B,j.manualEnvironment.cloud).slice(0,20).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),a.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>a.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&a.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),a.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[a.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),a.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:W=>{W.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),a.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),a.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),a.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),a.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:W})=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),W]},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),a.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:W})=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),W]},M))})]})]}),a.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[a.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[a.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),a.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),a.jsx("select",{value:p,onChange:M=>h(M.target.value),className:"text-sm",children:ce.map(M=>a.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),a.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[a.jsx("div",{className:"flex items-center gap-4",children:a.jsxs("div",{className:`flex items-center gap-2 ${q?"text-green-500":"text-yellow-500"}`,children:[q?a.jsx(Tu,{className:"w-5 h-5"}):a.jsx(fs,{className:"w-5 h-5"}),a.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),a.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&a.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-green-500",children:pt.passed}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-red-500",children:pt.failed}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:pt.apiErrors}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[pt.avgLocalTime.toFixed(1),"ms"]}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[pt.avgApiTime.toFixed(0),"ms"]}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(pt.byCategory).length>0&&a.jsxs("div",{className:"card p-4 mb-6",children:[a.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),a.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(pt.byCategory).map(([M,{passed:W,failed:Se}])=>a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[a.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),a.jsxs("span",{className:"text-xs text-green-500",children:[W," ✓"]}),Se>0&&a.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&a.jsxs("div",{className:"mb-6",children:[a.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx(Bt.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${S.current/S.total*100}%`}})}),a.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[S.current," / ",S.total," tests completed",s&&a.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),o&&a.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),a.jsx("div",{className:"card overflow-hidden",children:a.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:a.jsxs("tr",{children:[a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),a.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),a.jsx("tbody",{children:Y.map(M=>{const W=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Ne=c===M.id;return a.jsxs(a.Fragment,{children:[a.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${W&&!W.matches?"bg-red-500/5":""} + ${Ne?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>W&&P(M.id),children:[a.jsx("td",{className:"p-3",children:a.jsxs("div",{className:"flex items-center gap-2",children:[W&&(Se?a.jsx(tr,{className:"w-4 h-4 text-[var(--text-muted)]"}):a.jsx(cS,{className:"w-4 h-4 text-[var(--text-muted)]"})),a.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),a.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),a.jsx("td",{className:"p-3",children:a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),a.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),a.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),a.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W?N(W.localResult.totalCost):"-"}),a.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W!=null&&W.apiResult?N(W.apiResult.totalCost):W!=null&&W.apiError?"Error":"-"}),a.jsx("td",{className:"p-3 text-right font-mono",children:W?a.jsxs("span",{className:W.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[W.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),a.jsx("td",{className:"p-3 text-center",children:Ne?a.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):W?W.matches?a.jsx(Tu,{className:"w-5 h-5 text-green-500 mx-auto"}):a.jsx(S3,{className:"w-5 h-5 text-red-500 mx-auto"}):a.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),W&&Se&&a.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:a.jsxs("td",{colSpan:7,className:"p-4",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),a.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:se(W.localResult.monthlyDBUs)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:N(W.localResult.dbuCost)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:N(W.localResult.vmCost)})]}),a.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-lava-600 font-semibold",children:N(W.localResult.totalCost)})]}),W.localResult.dbuPrice&&a.jsxs("div",{className:"flex justify-between text-[10px]",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),a.jsxs("span",{className:"text-pink-500",children:["$",W.localResult.dbuPrice.toFixed(2)]})]})]})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),W.apiError?a.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:a.jsx("p",{className:"text-red-500 text-xs break-all",children:W.apiError})}):W.apiResult?a.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:se(W.apiResult.monthlyDBUs)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:N(W.apiResult.dbuCost)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:N(W.apiResult.vmCost)})]}),a.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:N(W.apiResult.totalCost)})]})]}):null]})]}),W.discrepancies.length>0&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),a.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:a.jsxs("table",{className:"w-full text-xs",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"text-red-400",children:[a.jsx("th",{className:"text-left pb-1",children:"Field"}),a.jsx("th",{className:"text-right pb-1",children:"Local"}),a.jsx("th",{className:"text-right pb-1",children:"API"}),a.jsx("th",{className:"text-right pb-1",children:"Diff"}),a.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),a.jsx("tbody",{className:"font-mono",children:W.discrepancies.map((O,F)=>a.jsxs("tr",{className:"text-red-300",children:[a.jsx("td",{className:"py-0.5",children:O.field}),a.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),a.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),a.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),a.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},F))})]})})]}),W.apiRawResponse&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),a.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:a.jsx("code",{className:"text-green-300",children:JSON.stringify(W.apiRawResponse,null,2)})})]}),W.apiRequestBody&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),a.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:a.jsx("code",{className:"text-blue-300",children:JSON.stringify(W.apiRequestBody,null,2)})})]}),a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),a.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:W.testCase.environment,config:W.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function E8(){return a.jsx(CN,{children:a.jsxs(_i,{path:"/",element:a.jsx(bV,{}),children:[a.jsx(_i,{index:!0,element:a.jsx(i8,{})}),a.jsx(_i,{path:"calculator",element:a.jsx(J_,{})}),a.jsx(_i,{path:"calculator/:id",element:a.jsx(J_,{})}),a.jsx(_i,{path:"estimate/:id",element:a.jsx(f8,{})}),a.jsx(_i,{path:"test-calculations",element:a.jsx(C8,{})})]})})}function j8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}j8();sp.createRoot(document.getElementById("root")).render(a.jsx(un.StrictMode,{children:a.jsxs(LN,{children:[a.jsx(E8,{}),a.jsx(kP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-DhMrLPWV.js b/lakemeter/backend/static/assets/index-DhMrLPWV.js new file mode 100644 index 00000000..affeb05d --- /dev/null +++ b/lakemeter/backend/static/assets/index-DhMrLPWV.js @@ -0,0 +1,354 @@ +function l2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var ms=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var rb={exports:{}},Gu={},sb={exports:{}},qe={};/** + * @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 hl=Symbol.for("react.element"),c2=Symbol.for("react.portal"),u2=Symbol.for("react.fragment"),d2=Symbol.for("react.strict_mode"),p2=Symbol.for("react.profiler"),f2=Symbol.for("react.provider"),m2=Symbol.for("react.context"),h2=Symbol.for("react.forward_ref"),g2=Symbol.for("react.suspense"),x2=Symbol.for("react.memo"),v2=Symbol.for("react.lazy"),wx=Symbol.iterator;function y2(e){return e===null||typeof e!="object"?null:(e=wx&&e[wx]||e["@@iterator"],typeof e=="function"?e:null)}var ib={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ab=Object.assign,ob={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||ib}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function lb(){}lb.prototype=Ia.prototype;function Xm(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||ib}var Jm=Xm.prototype=new lb;Jm.constructor=Xm;ab(Jm,Ia.prototype);Jm.isPureReactComponent=!0;var kx=Array.isArray,cb=Object.prototype.hasOwnProperty,Zm={current:null},ub={key:!0,ref:!0,__self:!0,__source:!0};function db(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)cb.call(t,r)&&!ub.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,de=B[se];if(0>>1;ses(Le,N))ws(q,Le)?(B[se]=q,B[w]=N,se=w):(B[se]=Le,B[be]=N,se=be);else if(ws(q,N))B[se]=q,B[w]=N,se=w;else break e}}return Y}function s(B,Y){var N=B.sortIndex-Y.sortIndex;return N!==0?N:B.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=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){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=B)r(u),Y.sortIndex=Y.expirationTime,t(c,Y);else break;Y=n(u)}}function S(B){if(v=!1,_(B),!g)if(n(c)!==null)g=!0,xe(R);else{var Y=n(u);Y!==null&&oe(S,Y.startTime-B)}}function R(B,Y){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Y),p=n(c);p!==null&&(!(p.expirationTime>Y)||B&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var de=se(p.expirationTime<=Y);Y=e.unstable_now(),typeof de=="function"?p.callback=de:p===n(c)&&r(c),_(Y)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var be=n(u);be!==null&&oe(S,be.startTime-Y),L=!1}return L}finally{p=null,f=N,h=!1}}var E=!1,A=null,D=-1,z=5,j=-1;function H(){return!(e.unstable_now()-jB||125se?(B.sortIndex=N,t(u,B),n(c)===null&&B===n(u)&&(v?(x(D),D=-1):v=!0,oe(S,N-se))):(B.sortIndex=de,t(c,B),g||h||(g=!0,xe(R))),B},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(B){var Y=f;return function(){var N=f;f=Y;try{return B.apply(this,arguments)}finally{f=N}}}})(gb);hb.exports=gb;var A2=hb.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 T2=m,lr=A2;function ee(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"),af=Object.prototype.hasOwnProperty,L2=/^[: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]*$/,Ex={},Cx={};function D2(e){return af.call(Cx,e)?!0:af.call(Ex,e)?!1:L2.test(e)?Cx[e]=!0:(Ex[e]=!0,!1)}function M2(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 O2(e,t,n,r){if(t===null||typeof t>"u"||M2(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 zn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var vn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){vn[e]=new zn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];vn[t]=new zn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){vn[e]=new zn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){vn[e]=new zn(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){vn[e]=new zn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){vn[e]=new zn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){vn[e]=new zn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){vn[e]=new zn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){vn[e]=new zn(e,5,!1,e.toLowerCase(),null,!1,!1)});var th=/[\-:]([a-z])/g;function nh(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(th,nh);vn[t]=new zn(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(th,nh);vn[t]=new zn(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(th,nh);vn[t]=new zn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){vn[e]=new zn(e,1,!1,e.toLowerCase(),null,!1,!1)});vn.xlinkHref=new zn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){vn[e]=new zn(e,1,!1,e.toLowerCase(),null,!0,!0)});function rh(e,t,n,r){var s=vn.hasOwnProperty(t)?vn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function I2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Ud(e.type,!1),e;case 11:return e=Ud(e.type.render,!1),e;case 1:return e=Ud(e.type,!0),e;default:return""}}function uf(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 Xi:return"Fragment";case Yi:return"Portal";case of:return"Profiler";case sh:return"StrictMode";case lf:return"Suspense";case cf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case yb:return(e.displayName||"Context")+".Consumer";case vb:return(e._context.displayName||"Context")+".Provider";case ih:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ah:return t=e.displayName||null,t!==null?t:uf(e.type)||"Memo";case Is:t=e._payload,e=e._init;try{return uf(e(t))}catch{}}return null}function F2(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 uf(t);case 8:return t===sh?"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 bb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function B2(e){var t=bb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ql(e){e._valueTracker||(e._valueTracker=B2(e))}function wb(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=bb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Xc(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 df(e,t){var n=t.checked;return Mt({},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 kb(e,t){t=t.checked,t!=null&&rh(e,"checked",t,!1)}function pf(e,t){kb(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")?ff(e,t.type,n):t.hasOwnProperty("defaultValue")&&ff(e,t.type,ni(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Px(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 ff(e,t,n){(t!=="number"||Xc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Yl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},U2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){U2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function jb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Nb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=jb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var V2=Mt({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 gf(e,t){if(t){if(V2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function xf(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 vf=null;function oh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var yf=null,ha=null,ga=null;function Tx(e){if(e=vl(e)){if(typeof yf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Ju(t),yf(e.stateNode,e.type,t))}}function Pb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Rb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Tx(e),t)for(e=0;e>>=0,e===0?32:31-(J2(e)/Z2|0)|0}var Xl=64,Jl=4194304;function ho(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 tu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Dr(t),e[t]=n}function rj(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=wo),Vx=" ",zx=!1;function Yb(e,t){switch(e){case"keyup":return Aj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Lj(e,t){switch(e){case"compositionend":return Xb(t);case"keypress":return t.which!==32?null:(zx=!0,Vx);case"textInput":return e=t.data,e===Vx&&zx?null:e;default:return null}}function Dj(e,t){if(Ji)return e==="compositionend"||!hh&&Yb(e,t)?(e=Kb(),Rc=ph=$s=null,Ji=!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=Wx(n)}}function t1(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?t1(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function n1(){for(var e=window,t=Xc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Xc(e.document)}return t}function gh(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 $j(e){var t=n1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&t1(n.ownerDocument.documentElement,n)){if(r!==null&&gh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=Gx(n,i);var a=Gx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Ef=null,So=null,Cf=!1;function Kx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cf||Zi==null||Zi!==Xc(r)||(r=Zi,"selectionStart"in r&&gh(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}),So&&Wo(So,r)||(So=r,r=su(Ef,"onSelect"),0na||(e.current=Tf[na],Tf[na]=null,na--)}function _t(e,t){na++,Tf[na]=e.current,e.current=t}var ri={},Pn=oi(ri),Wn=oi(!1),Li=ri;function ka(e,t){var n=e.type.contextTypes;if(!n)return ri;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Gn(e){return e=e.childContextTypes,e!=null}function au(){wt(Wn),wt(Pn)}function t0(e,t,n){if(Pn.current!==ri)throw Error(ee(168));_t(Pn,t),_t(Wn,n)}function d1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,F2(e)||"Unknown",s));return Mt({},n,r)}function ou(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ri,Li=Pn.current,_t(Pn,e),_t(Wn,Wn.current),!0}function n0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=d1(e,t,Li),r.__reactInternalMemoizedMergedChildContext=e,wt(Wn),wt(Pn),_t(Pn,e)):wt(Wn),_t(Wn,n)}var ds=null,Zu=!1,ep=!1;function p1(e){ds===null?ds=[e]:ds.push(e)}function t5(e){Zu=!0,p1(e)}function li(){if(!ep&&ds!==null){ep=!0;var e=0,t=ut;try{var n=ds;for(ut=1;e>=a,s-=a,gs=1<<32-Dr(t)+s|n<D?(z=A,A=null):z=A.sibling;var j=f(x,A,_[D],S);if(j===null){A===null&&(A=z);break}e&&A&&j.alternate===null&&t(x,A),y=i(j,y,D),E===null?R=j:E.sibling=j,E=j,A=z}if(D===_.length)return n(x,A),Nt&&vi(x,D),R;if(A===null){for(;D<_.length;D++)A=p(x,_[D],S),A!==null&&(y=i(A,y,D),E===null?R=A:E.sibling=A,E=A);return Nt&&vi(x,D),R}for(A=r(x,A);D<_.length;D++)z=h(A,x,D,_[D],S),z!==null&&(e&&z.alternate!==null&&A.delete(z.key===null?D:z.key),y=i(z,y,D),E===null?R=z:E.sibling=z,E=z);return e&&A.forEach(function(H){return t(x,H)}),Nt&&vi(x,D),R}function v(x,y,_,S){var R=Za(_);if(typeof R!="function")throw Error(ee(150));if(_=R.call(_),_==null)throw Error(ee(151));for(var E=R=null,A=y,D=y=0,z=null,j=_.next();A!==null&&!j.done;D++,j=_.next()){A.index>D?(z=A,A=null):z=A.sibling;var H=f(x,A,j.value,S);if(H===null){A===null&&(A=z);break}e&&A&&H.alternate===null&&t(x,A),y=i(H,y,D),E===null?R=H:E.sibling=H,E=H,A=z}if(j.done)return n(x,A),Nt&&vi(x,D),R;if(A===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,S),j!==null&&(y=i(j,y,D),E===null?R=j:E.sibling=j,E=j);return Nt&&vi(x,D),R}for(A=r(x,A);!j.done;D++,j=_.next())j=h(A,x,D,j.value,S),j!==null&&(e&&j.alternate!==null&&A.delete(j.key===null?D:j.key),y=i(j,y,D),E===null?R=j:E.sibling=j,E=j);return e&&A.forEach(function(X){return t(x,X)}),Nt&&vi(x,D),R}function b(x,y,_,S){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Kl:e:{for(var R=_.key,E=y;E!==null;){if(E.key===R){if(R=_.type,R===Xi){if(E.tag===7){n(x,E.sibling),y=s(E,_.props.children),y.return=x,x=y;break e}}else if(E.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Is&&i0(R)===E.type){n(x,E.sibling),y=s(E,_.props),y.ref=so(x,E,_),y.return=x,x=y;break e}n(x,E);break}else t(x,E);E=E.sibling}_.type===Xi?(y=Ri(_.props.children,x.mode,S,_.key),y.return=x,x=y):(S=Fc(_.type,_.key,_.props,null,x.mode,S),S.ref=so(x,y,_),S.return=x,x=S)}return a(x);case Yi:e:{for(E=_.key;y!==null;){if(y.key===E)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=lp(_,x.mode,S),y.return=x,x=y}return a(x);case Is:return E=_._init,b(x,y,E(_._payload),S)}if(mo(_))return g(x,y,_,S);if(Za(_))return v(x,y,_,S);ic(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=op(_,x.mode,S),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=g1(!0),x1=g1(!1),uu=oi(null),du=null,ia=null,_h=null;function bh(){_h=ia=du=null}function wh(e){var t=uu.current;wt(uu),e._currentValue=t}function Mf(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 va(e,t){du=e,_h=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(qn=!0),e.firstContext=null)}function wr(e){var t=e._currentValue;if(_h!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(du===null)throw Error(ee(308));ia=e,du.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var Ei=null;function kh(e){Ei===null?Ei=[e]:Ei.push(e)}function v1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,kh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Ss(e,r)}function Ss(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 Fs=!1;function Sh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function y1(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 vs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Xs(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Ss(e,n)}return s=r.interleaved,s===null?(t.next=t,kh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Ss(e,n)}function Tc(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,ch(e,n)}}function a0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 pu(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Mt({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Oi|=a,e.lanes=a,e.memoizedState=p}}function o0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=np.transition;np.transition={};try{e(!1),t()}finally{ut=n,np.transition=r}}function O1(){return kr().memoizedState}function i5(e,t,n){var r=Zs(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},I1(e))F1(t,n);else if(n=v1(e,t,n,r),n!==null){var s=Un();Mr(n,e,r,s),B1(n,t,r)}}function a5(e,t,n){var r=Zs(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(I1(e))F1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Ir(l,a)){var c=t.interleaved;c===null?(s.next=s,kh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=v1(e,t,s,r),n!==null&&(s=Un(),Mr(n,e,r,s),B1(n,t,r))}}function I1(e){var t=e.alternate;return e===Dt||t!==null&&t===Dt}function F1(e,t){Eo=mu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function B1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ch(e,n)}}var hu={readContext:wr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},o5={readContext:wr,useCallback:function(e,t){return Wr().memoizedState=[e,t===void 0?null:t],e},useContext:wr,useEffect:c0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Dc(4194308,4,A1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Dc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Dc(4,2,e,t)},useMemo:function(e,t){var n=Wr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Wr();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=i5.bind(null,Dt,e),[r.memoizedState,e]},useRef:function(e){var t=Wr();return e={current:e},t.memoizedState=e},useState:l0,useDebugValue:Th,useDeferredValue:function(e){return Wr().memoizedState=e},useTransition:function(){var e=l0(!1),t=e[0];return e=s5.bind(null,e[1]),Wr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Dt,s=Wr();if(Nt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Mi&30||k1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,c0(E1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,S1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Wr(),t=fn.identifierPrefix;if(Nt){var n=xs,r=gs;n=(r&~(1<<32-Dr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Kr]=t,e[Qo]=r,Q1(e,t,!1,!1),t.stateNode=e;e:{switch(a=xf(n,r),n){case"dialog":bt("cancel",e),bt("close",e),s=r;break;case"iframe":case"object":case"embed":bt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=fu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Nt)return kn(t),null}else 2*Ht()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ht(),t.sibling=null,n=Tt.current,_t(Tt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Fh(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?nr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function h5(e,t){switch(vh(t),t.tag){case 1:return Gn(t.type)&&au(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),wt(Wn),wt(Pn),jh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ch(t),null;case 13:if(wt(Tt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return wt(Tt),null;case 4:return Ca(),null;case 10:return wh(t.type._context),null;case 22:case 23:return Fh(),null;case 24:return null;default:return null}}var oc=!1,En=!1,g5=typeof WeakSet=="function"?WeakSet:Set,he=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Bt(e,t,r)}else n.current=null}function Hf(e,t,n){try{n()}catch(r){Bt(e,t,r)}}var _0=!1;function x5(e,t){if(jf=nu,e=n1(),gh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Nf={focusedElem:e,selectionRange:n},nu=!1,he=t;he!==null;)if(t=he,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,he=e;else for(;he!==null;){t=he;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Rr(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(S){Bt(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,he=e;break}he=t.return}return g=_0,_0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&Hf(t,n,i)}s=s.next}while(s!==r)}}function nd(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 qf(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 J1(e){var t=e.alternate;t!==null&&(e.alternate=null,J1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Kr],delete t[Qo],delete t[Af],delete t[Zj],delete t[e5])),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 Z1(e){return e.tag===5||e.tag===3||e.tag===4}function b0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Z1(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 Wf(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=iu));else if(r!==4&&(e=e.child,e!==null))for(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}function Gf(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(Gf(e,t,n),e=e.sibling;e!==null;)Gf(e,t,n),e=e.sibling}var hn=null,Tr=!1;function Ds(e,t,n){for(n=n.child;n!==null;)ew(e,t,n),n=n.sibling}function ew(e,t,n){if(Xr&&typeof Xr.onCommitFiberUnmount=="function")try{Xr.onCommitFiberUnmount(Ku,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=hn,s=Tr;hn=null,Ds(e,t,n),hn=r,Tr=s,hn!==null&&(Tr?(e=hn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):hn.removeChild(n.stateNode));break;case 18:hn!==null&&(Tr?(e=hn,n=n.stateNode,e.nodeType===8?Zd(e.parentNode,n):e.nodeType===1&&Zd(e,n),Ho(e)):Zd(hn,n.stateNode));break;case 4:r=hn,s=Tr,hn=n.stateNode.containerInfo,Tr=!0,Ds(e,t,n),hn=r,Tr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&Hf(n,t,a),s=s.next}while(s!==r)}Ds(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Bt(n,t,l)}Ds(e,t,n);break;case 21:Ds(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ds(e,t,n),En=r):Ds(e,t,n);break;default:Ds(e,t,n)}}function w0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new g5),t.forEach(function(r){var s=C5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Nr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Ht()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*y5(r/1960))-r,10e?16:e,Hs===null)var r=!1;else{if(e=Hs,Hs=null,vu=0,Je&6)throw Error(ee(331));var s=Je;for(Je|=4,he=e.current;he!==null;){var i=he,a=i.child;if(he.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cHt()-Oh?Pi(e,0):Mh|=n),Kn(e,t)}function lw(e,t){t===0&&(e.mode&1?(t=Jl,Jl<<=1,!(Jl&130023424)&&(Jl=4194304)):t=1);var n=Un();e=Ss(e,t),e!==null&&(gl(e,t,n),Kn(e,n))}function E5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),lw(e,n)}function C5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),lw(e,n)}var cw;cw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Wn.current)qn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return qn=!1,f5(e,t,n);qn=!!(e.flags&131072)}else qn=!1,Nt&&t.flags&1048576&&f1(t,cu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Ph(null,t,r,e,s,n);var i=Rh();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Gn(r)?(i=!0,ou(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Sh(t),s.updater=td,t.stateNode=s,s._reactInternals=t,If(t,r,e,n),t=Uf(null,t,r,!0,i,n)):(t.tag=0,Nt&&i&&xh(t),Fn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=N5(r),e=Rr(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=x0(null,t,r,e,n);break e;case 11:t=h0(null,t,r,e,n);break e;case 14:t=g0(null,t,r,Rr(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),x0(e,t,r,s,n);case 3:e:{if(W1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,y1(e,t),pu(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=v0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=v0(e,t,r,n,s);break e}else for(sr=Ys(t.stateNode.containerInfo.firstChild),ir=t,Nt=!0,Lr=null,n=x1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Es(e,t,n);break e}Fn(e,t,r,n)}t=t.child}return t;case 5:return _1(t),e===null&&Df(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Pf(r,s)?a=null:i!==null&&Pf(r,i)&&(t.flags|=32),q1(e,t),Fn(e,t,a,n),t.child;case 6:return e===null&&Df(t),null;case 13:return G1(e,t,n);case 4:return Eh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Fn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),h0(e,t,r,s,n);case 7:return Fn(e,t,t.pendingProps,n),t.child;case 8:return Fn(e,t,t.pendingProps.children,n),t.child;case 12:return Fn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,_t(uu,r._currentValue),r._currentValue=a,i!==null)if(Ir(i.value,a)){if(i.children===s.children&&!Wn.current){t=Es(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=vs(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Mf(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Mf(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Fn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=wr(s),r=r(s),t.flags|=1,Fn(e,t,r,n),t.child;case 14:return r=t.type,s=Rr(r,t.pendingProps),s=Rr(r.type,s),g0(e,t,r,s,n);case 15:return $1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),Mc(e,t),t.tag=1,Gn(r)?(e=!0,ou(t)):e=!1,va(t,n),U1(t,r,s),If(t,r,s,n),Uf(null,t,r,!0,e,n);case 19:return K1(e,t,n);case 22:return H1(e,t,n)}throw Error(ee(156,t.tag))};function uw(e,t){return Ib(e,t)}function j5(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 _r(e,t,n,r){return new j5(e,t,n,r)}function Uh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function N5(e){if(typeof e=="function")return Uh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ih)return 11;if(e===ah)return 14}return 2}function ei(e,t){var n=e.alternate;return n===null?(n=_r(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 Fc(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Uh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ri(n.children,s,i,t);case sh:a=8,s|=8;break;case of:return e=_r(12,n,t,s|2),e.elementType=of,e.lanes=i,e;case lf:return e=_r(13,n,t,s),e.elementType=lf,e.lanes=i,e;case cf:return e=_r(19,n,t,s),e.elementType=cf,e.lanes=i,e;case _b:return sd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vb:a=10;break e;case yb:a=9;break e;case ih:a=11;break e;case ah:a=14;break e;case Is:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=_r(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ri(e,t,n,r){return e=_r(7,e,r,t),e.lanes=n,e}function sd(e,t,n,r){return e=_r(22,e,r,t),e.elementType=_b,e.lanes=n,e.stateNode={isHidden:!1},e}function op(e,t,n){return e=_r(6,e,null,t),e.lanes=n,e}function lp(e,t,n){return t=_r(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function P5(e,t,n,r,s){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=zd(0),this.expirationTimes=zd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Vh(e,t,n,r,s,i,a,l,c){return e=new P5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=_r(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Sh(i),e}function R5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(mw)}catch(e){console.error(e)}}mw(),mb.exports=ur;var la=mb.exports,R0=la;sf.createRoot=R0.createRoot,sf.hydrateRoot=R0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function qh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function O5(){return Math.random().toString(36).substr(2,8)}function T0(e,t){return{usr:e.state,key:e.key,idx:t}}function Jf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||O5()})}function bu(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 Ua(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 I5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=qs.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=qs.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=qs.Push;let y=Jf(v.location,b,x);u=d()+1;let _=T0(y,u),S=v.createHref(y);try{a.pushState(_,"",S)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;s.location.assign(S)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=qs.Replace;let y=Jf(v.location,b,x);u=d();let _=T0(y,u),S=v.createHref(y);a.replaceState(_,"",S),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:bu(b);return y=y.replace(/ $/,"%20"),Yt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(A0,p),c=b,()=>{s.removeEventListener(A0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var L0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(L0||(L0={}));function F5(e,t,n){return n===void 0&&(n="/"),B5(e,t,n)}function B5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=Wh(s.pathname||"/",n);if(i==null)return null;let a=hw(e);U5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Yt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ti([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Yt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),hw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:G5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of gw(i.path))s(i,a,c)}),t}function gw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=gw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function U5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:K5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const V5=/^:[\w-]+$/,z5=3,$5=2,H5=1,q5=10,W5=-2,D0=e=>e==="*";function G5(e,t){let n=e.split("/"),r=n.length;return n.some(D0)&&(r+=W5),t&&(r+=$5),n.filter(s=>!D0(s)).reduce((s,i)=>s+(V5.test(i)?z5:i===""?H5:q5),r)}function K5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function Q5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function X5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),qh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function J5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qh(!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 Wh(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 Z5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,eN=e=>Z5.test(e);function tN(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(eN(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),qh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=M0(n.substring(1),"/"):i=M0(n,t)}else i=t;return{pathname:i,search:sN(r),hash:iN(s)}}function M0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function cp(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 nN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function xw(e,t){let n=nN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function vw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Yt(!s.pathname||!s.pathname.includes("?"),cp("?","pathname","search",s)),Yt(!s.pathname||!s.pathname.includes("#"),cp("#","pathname","hash",s)),Yt(!s.search||!s.search.includes("#"),cp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=tN(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ti=e=>e.join("/").replace(/\/\/+/g,"/"),rN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),sN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,iN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function aN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const yw=["post","put","patch","delete"];new Set(yw);const oN=["get",...yw];new Set(oN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=vw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ti([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const dN=m.createContext(null);function pN(e){let t=m.useContext(Ps).outlet;return t&&m.createElement(dN.Provider,{value:e},t)}function ww(){let{matches:e}=m.useContext(Ps),t=e[e.length-1];return t?t.params:{}}function kw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(zi),{matches:s}=m.useContext(Ps),{pathname:i}=bl(),a=JSON.stringify(xw(s,r.v7_relativeSplatPath));return m.useMemo(()=>vw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function fN(e,t){return mN(e,t)}function mN(e,t,n,r){_l()||Yt(!1);let{navigator:s}=m.useContext(zi),{matches:i}=m.useContext(Ps),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Yt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=F5(e,{pathname:h}),v=yN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ti([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ti([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(cd.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:qs.Pop}},v):v}function hN(){let e=kN(),t=aN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const gN=m.createElement(hN,null);class xN extends m.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?m.createElement(Ps.Provider,{value:this.props.routeContext},m.createElement(_w.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function vN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Gh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Ps.Provider,{value:t},r)}function yN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Yt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||gN,c&&(u<0&&f===0?(EN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(vN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(xN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var Sw=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Sw||{}),Ew=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}(Ew||{});function _N(e){let t=m.useContext(Gh);return t||Yt(!1),t}function bN(e){let t=m.useContext(lN);return t||Yt(!1),t}function wN(e){let t=m.useContext(Ps);return t||Yt(!1),t}function Cw(e){let t=wN(),n=t.matches[t.matches.length-1];return n.route.id||Yt(!1),n.route.id}function kN(){var e;let t=m.useContext(_w),n=bN(),r=Cw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function SN(){let{router:e}=_N(Sw.UseNavigateStable),t=Cw(Ew.UseNavigateStable),n=m.useRef(!1);return bw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const O0={};function EN(e,t,n){O0[e]||(O0[e]=!0)}function CN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function jN(e){return pN(e.context)}function _i(e){Yt(!1)}function NN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=qs.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Yt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=Wh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(zi.Provider,{value:u},m.createElement(cd.Provider,{children:n,value:v}))}function PN(e){let{children:t,location:n}=e;return fN(Zf(t),n)}new Promise(()=>{});function Zf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Zf(r.props.children,i));return}r.type!==_i&&Yt(!1),!r.props.index||!r.props.children||Yt(!1);let a={id:r.props.id||i.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&&(a.children=Zf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 em(){return em=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function AN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function TN(e,t){return e.button===0&&(!t||t==="_self")&&!AN(e)}const LN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],DN="6";try{window.__reactRouterVersion=DN}catch{}const MN="startTransition",I0=S2[MN];function ON(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=M5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&I0?I0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>CN(r),[r]),m.createElement(NN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const IN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",FN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=RN(t,LN),{basename:h}=m.useContext(zi),g,v=!1;if(typeof u=="string"&&FN.test(u)&&(g=u,IN))try{let _=new URL(window.location.href),S=u.startsWith("//")?new URL(_.protocol+u):new URL(u),R=Wh(S.pathname,h);S.origin===_.origin&&R!=null?u=R+S.search+S.hash:v=!0}catch{}let b=cN(u,{relative:s}),x=BN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",em({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var F0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(F0||(F0={}));var B0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(B0||(B0={}));function BN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=ud(),u=bl(),d=kw(e,{relative:a});return m.useCallback(p=>{if(TN(p,n)){p.preventDefault();let f=r!==void 0?r:bu(u)===bu(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let UN={data:""},VN=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||UN},zN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,$N=/\/\*[^]*?\*\/| +/g,U0=/\n+/g,zs=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?zs(a,i):i+"{"+zs(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=zs(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=zs.p?zs.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},os={},jw=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+jw(e[n]);return t}return e},HN=(e,t,n,r,s)=>{let i=jw(e),a=os[i]||(os[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!os[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=zN.exec(u.replace($N,""));)d[4]?f.shift():d[3]?(p=d[3].replace(U0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(U0," ").trim();return f[0]})(e);os[a]=zs(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&os.g?os.g:null;return n&&(os.g=os[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(os[a],t,r,l),a},qN=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":zs(l,""):l===!1?"":l}return r+s+(a??"")},"");function dd(e){let t=this||{},n=e.call?e(t.p):e;return HN(n.unshift?n.raw?qN(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,VN(t.target),t.g,t.o,t.k)}let Nw,tm,nm;dd.bind({g:1});let Cs=dd.bind({k:1});function WN(e,t,n,r){zs.p=t,Nw=e,tm=n,nm=r}function ci(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:tm&&tm()},l),n.o=/ *go\d+/.test(c),l.className=dd.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),nm&&u[0]&&nm(l),Nw(u,l)}return s}}var GN=e=>typeof e=="function",ku=(e,t)=>GN(e)?e(t):e,KN=(()=>{let e=0;return()=>(++e).toString()})(),Pw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),QN=20,Kh="default",Rw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Rw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Aw={toasts:[],pausedAt:void 0,settings:{toastLimit:QN}},Qr={},Tw=(e,t=Kh)=>{Qr[t]=Rw(Qr[t]||Aw,e),Bc.forEach(([n,r])=>{n===t&&r(Qr[t])})},Lw=e=>Object.keys(Qr).forEach(t=>Tw(e,t)),YN=e=>Object.keys(Qr).find(t=>Qr[t].toasts.some(n=>n.id===e)),pd=(e=Kh)=>t=>{Tw(t,e)},XN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},JN=(e={},t=Kh)=>{let[n,r]=m.useState(Qr[t]||Aw),s=m.useRef(Qr[t]);m.useEffect(()=>(s.current!==Qr[t]&&r(Qr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||XN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},ZN=(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)||KN()}),wl=e=>(t,n)=>{let r=ZN(t,e,n);return pd(r.toasterId||YN(r.id))({type:2,toast:r}),r.id},sn=(e,t)=>wl("blank")(e,t);sn.error=wl("error");sn.success=wl("success");sn.loading=wl("loading");sn.custom=wl("custom");sn.dismiss=(e,t)=>{let n={type:3,toastId:e};t?pd(t)(n):Lw(n)};sn.dismissAll=e=>sn.dismiss(void 0,e);sn.remove=(e,t)=>{let n={type:4,toastId:e};t?pd(t)(n):Lw(n)};sn.removeAll=e=>sn.remove(void 0,e);sn.promise=(e,t,n)=>{let r=sn.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?ku(t.success,s):void 0;return i?sn.success(i,{id:r,...n,...n==null?void 0:n.success}):sn.dismiss(r),s}).catch(s=>{let i=t.error?ku(t.error,s):void 0;i?sn.error(i,{id:r,...n,...n==null?void 0:n.error}):sn.dismiss(r)}),e};var eP=1e3,tP=(e,t="default")=>{let{toasts:n,pausedAt:r}=JN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=eP)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&sn.dismiss(h.id);return}return setTimeout(()=>sn.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(pd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,S)=>S_.visible).slice(...h?[y+1]:[0,y]).reduce((_,S)=>_+(S.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},nP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,rP=Cs` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,sP=Cs` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,iP=ci("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${nP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${rP} 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: ${sP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,aP=Cs` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,oP=ci("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: ${aP} 1s linear infinite; +`,lP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,cP=Cs` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,uP=ci("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${lP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${cP} 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; + } +`,dP=ci("div")` + position: absolute; +`,pP=ci("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,fP=Cs` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,mP=ci("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${fP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,hP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(mP,null,t):t:n==="blank"?null:m.createElement(pP,null,m.createElement(oP,{...r}),n!=="loading"&&m.createElement(dP,null,n==="error"?m.createElement(iP,{...r}):m.createElement(uP,{...r})))},gP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,xP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,vP="0%{opacity:0;} 100%{opacity:1;}",yP="0%{opacity:1;} 100%{opacity:0;}",_P=ci("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; +`,bP=ci("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,wP=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=Pw()?[vP,yP]:[gP(n),xP(n)];return{animation:t?`${Cs(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Cs(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},kP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?wP(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(hP,{toast:e}),a=m.createElement(bP,{...e.ariaProps},ku(e.message,e));return m.createElement(_P,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});WN(m.createElement);var SP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},EP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:Pw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},CP=dd` + z-index: 9999; + > * { + pointer-events: auto; + } +`,uc=16,jP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=tP(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:uc,left:uc,right:uc,bottom:uc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=EP(p,f);return m.createElement(SP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?CP:"",style:h},d.type==="custom"?ku(d.message,d):s?s(d):m.createElement(kP,{toast:d,position:p}))}))},$e=sn;const Qh=m.createContext({});function Yh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const fd=m.createContext(null),Xh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class NP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function PP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Xh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(NP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const RP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Yh(AP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(PP,{isPresent:n,children:e})),o.jsx(fd.Provider,{value:d,children:e})};function AP(){return new Map}function Dw(e=!0){const t=m.useContext(fd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const dc=e=>e.key||"";function V0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Jh=typeof window<"u",Mw=Jh?m.useLayoutEffect:m.useEffect,rm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Dw(a),u=m.useMemo(()=>V0(e),[e]),d=a&&!l?[]:u.map(dc),p=m.useRef(!0),f=m.useRef(u),h=Yh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Mw(()=>{p.current=!1,f.current=u;for(let S=0;S{const R=dc(S),E=a&&!l?!1:u===b||d.includes(R),A=()=>{if(h.has(R))h.set(R,!0);else return;let D=!0;h.forEach(z=>{z||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(RP,{isPresent:E,initial:!p.current||n?void 0:!1,custom:E?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:E?void 0:A,children:S},R)})})},ar=e=>e;let Ow=ar;function Zh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},ys=e=>e*1e3,_s=e=>e/1e3,TP={useManualTiming:!1};function LP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const pc=["read","resolveKeyframes","update","preRender","render","postRender"],DP=40;function Iw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=pc.reduce((x,y)=>(x[y]=LP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,DP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:pc.reduce((x,y)=>{const _=a[y];return x[y]=(S,R=!1,E=!1)=>(n||g(),_.schedule(S,R,E)),x},{}),cancel:x=>{for(let y=0;yz0[e].some(n=>!!t[n])};function MP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const OP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Su(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||OP.has(e)}let Bw=e=>!Su(e);function IP(e){e&&(Bw=t=>t.startsWith("on")?!Su(t):e(t))}try{IP(require("@emotion/is-prop-valid").default)}catch{}function FP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Bw(s)||n===!0&&Su(s)||!t&&!Su(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function BP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const md=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function hd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const eg=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],tg=["initial",...eg];function gd(e){return hd(e.animate)||tg.some(t=>sl(e[t]))}function Uw(e){return!!(gd(e)||e.variants)}function UP(e,t){if(gd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function VP(e){const{initial:t,animate:n}=UP(e,m.useContext(md));return m.useMemo(()=>({initial:t,animate:n}),[$0(t),$0(n)])}function $0(e){return Array.isArray(e)?e.join(" "):e}const zP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function $P(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const ng=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),HP="framerAppearId",Vw="data-"+ng(HP),{schedule:rg}=Iw(queueMicrotask,!1),zw=m.createContext({});function qP(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(md),c=m.useContext(Fw),u=m.useContext(fd),d=m.useContext(Xh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(zw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&WP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Vw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Mw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),rg.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function WP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:$w(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function $w(e){if(e)return e.options.allowProjection!==!1?e.projection:$w(e.parent)}function GP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&MP(e);function l(u,d){let p;const f={...m.useContext(Xh),...u,layoutId:KP(u)},{isStatic:h}=f,g=VP(u),v=r(u,h);if(!h&&Jh){QP();const b=YP(f);p=b.MeasureLayout,g.visualElement=qP(s,v,f,t,b.ProjectionNode)}return o.jsxs(md.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,$P(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[zP]=s,c}function KP({layoutId:e}){const t=m.useContext(Qh).id;return t&&e!==void 0?t+"-"+e:e}function QP(e,t){m.useContext(Fw).strict}function YP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const XP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function sg(e){return typeof e!="string"||e.includes("-")?!1:!!(XP.indexOf(e)>-1||/[A-Z]/u.test(e))}function H0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function ig(e,t,n,r){if(typeof t=="function"){const[s,i]=H0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=H0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const sm=e=>Array.isArray(e),JP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),ZP=e=>sm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Uc(e){const t=jn(e)?e.get():e;return JP(t)?t.toValue():t}function eR({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:tR(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const Hw=e=>(t,n)=>{const r=m.useContext(md),s=m.useContext(fd),i=()=>eR(e,t,r,s);return n?i():Yh(i)};function tR(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Uc(i[f]);let{initial:a,animate:l}=e;const c=gd(e),u=Uw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!hd(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Ww=qw("--"),nR=qw("var(--"),ag=e=>nR(e)?rR.test(e.split("/*")[0].trim()):!1,rR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Gw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,js=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>js(0,1,e)},fc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Os=kl("deg"),Zr=kl("%"),Re=kl("px"),sR=kl("vh"),iR=kl("vw"),q0={...Zr,parse:e=>Zr.parse(e)/100,transform:e=>Zr.transform(e*100)},aR={borderWidth:Re,borderTopWidth:Re,borderRightWidth:Re,borderBottomWidth:Re,borderLeftWidth:Re,borderRadius:Re,radius:Re,borderTopLeftRadius:Re,borderTopRightRadius:Re,borderBottomRightRadius:Re,borderBottomLeftRadius:Re,width:Re,maxWidth:Re,height:Re,maxHeight:Re,top:Re,right:Re,bottom:Re,left:Re,padding:Re,paddingTop:Re,paddingRight:Re,paddingBottom:Re,paddingLeft:Re,margin:Re,marginTop:Re,marginRight:Re,marginBottom:Re,marginLeft:Re,backgroundPositionX:Re,backgroundPositionY:Re},oR={rotate:Os,rotateX:Os,rotateY:Os,rotateZ:Os,scale:fc,scaleX:fc,scaleY:fc,scaleZ:fc,skew:Os,skewX:Os,skewY:Os,distance:Re,translateX:Re,translateY:Re,translateZ:Re,x:Re,y:Re,z:Re,perspective:Re,transformPerspective:Re,opacity:il,originX:q0,originY:q0,originZ:Re},W0={...za,transform:Math.round},og={...aR,...oR,zIndex:W0,size:Re,fillOpacity:il,strokeOpacity:il,numOctaves:W0},lR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},cR=Va.length;function uR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Kw=()=>({...ug(),attrs:{}}),dg=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Qw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Yw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Xw(e,t,n,r){Qw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Yw.has(s)?s:ng(s),t.attrs[s])}const Eu={};function hR(e){Object.assign(Eu,e)}function Jw(e,{layout:t,layoutId:n}){return $i.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Eu[e]||e==="opacity")}function pg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Jw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Zw(e,t,n){const r=pg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function gR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const K0=["x","y","width","height","cx","cy","r"],xR={useVisualState:Hw({scrapeMotionValuesFromProps:Zw,createRenderState:Kw,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if($i.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{gR(n,r),kt.render(()=>{cg(r,s,dg(n.tagName),e.transformTemplate),Xw(n,r)})})}})},vR={useVisualState:Hw({scrapeMotionValuesFromProps:pg,createRenderState:ug})};function ek(e,t,n){for(const r in t)!jn(t[r])&&!Jw(r,n)&&(e[r]=t[r])}function yR({transformTemplate:e},t){return m.useMemo(()=>{const n=ug();return lg(n,t,e),Object.assign({},n.vars,n.style)},[t])}function _R(e,t){const n=e.style||{},r={};return ek(r,n,e),Object.assign(r,yR(e,t)),r}function bR(e,t){const n={},r=_R(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function wR(e,t,n,r){const s=m.useMemo(()=>{const i=Kw();return cg(i,t,dg(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};ek(i,e.style,e),s.style={...i,...s.style}}return s}function kR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(sg(n)?wR:bR)(r,i,a,n),u=FP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function SR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...sg(r)?xR:vR,preloadedFeatures:e,useRender:kR(s),createVisualElement:t,Component:r};return GP(a)}}function tk(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class CR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(ER()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class jR extends CR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function fg(e,t){return e?e[t]||e.default||e:void 0}const im=2e4;function nk(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=im?1/0:t}function mg(e){return typeof e=="function"}function Q0(e,t){e.timeline=t,e.onfinish=null}const hg=e=>Array.isArray(e)&&typeof e[0]=="number",NR={linearEasing:void 0};function PR(e,t){const n=Zh(e);return()=>{var r;return(r=NR[t])!==null&&r!==void 0?r:n()}}const Cu=PR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),rk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,am={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function ik(e,t){if(e)return typeof e=="function"&&Cu()?rk(e,t):hg(e)?xo(e):Array.isArray(e)?e.map(n=>ik(n,t)||am.easeOut):am[e]}const Pr={x:!1,y:!1};function ak(){return Pr.x||Pr.y}function RR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ok(e,t){const n=RR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function Y0(e){return t=>{t.pointerType==="touch"||ak()||e(t)}}function AR(e,t,n={}){const[r,s,i]=ok(e,n),a=Y0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=Y0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const lk=(e,t)=>t?e===t?!0:lk(e,t.parentElement):!1,gg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,TR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function LR(e){return TR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function X0(e){return t=>{t.key==="Enter"&&e(t)}}function dp(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const DR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=X0(()=>{if(vo.has(n))return;dp(n,"down");const s=X0(()=>{dp(n,"up")}),i=()=>dp(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function J0(e){return gg(e)&&!ak()}function MR(e,t,n={}){const[r,s,i]=ok(e,n),a=l=>{const c=l.currentTarget;if(!J0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!J0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||lk(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!LR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>DR(u,s),s)}),i}function OR(e){return e==="x"||e==="y"?Pr[e]?null:(Pr[e]=!0,()=>{Pr[e]=!1}):Pr.x||Pr.y?null:(Pr.x=Pr.y=!0,()=>{Pr.x=Pr.y=!1})}const ck=new Set(["width","height","top","left","right","bottom",...Va]);let Vc;function IR(){Vc=void 0}const es={now:()=>(Vc===void 0&&es.set(gn.isProcessing||TP.useManualTiming?gn.timestamp:performance.now()),Vc),set:e=>{Vc=e,queueMicrotask(IR)}};function xg(e,t){e.indexOf(t)===-1&&e.push(t)}function vg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class yg{constructor(){this.subscriptions=[]}add(t){return xg(this.subscriptions,t),()=>vg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class BR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=es.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=es.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=FR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new yg);const r=this.events[t].add(n);return t==="change"?()=>{r(),kt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=es.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Z0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Z0);return uk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new BR(e,t)}function UR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function VR(e,t){const n=xd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=ZP(i[a]);UR(e,a,l)}}function zR(e){return!!(jn(e)&&e.add)}function om(e,t){const n=e.getValue("willChange");if(zR(n))return n.add(t)}function dk(e){return e.props[Vw]}const pk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,$R=1e-7,HR=12;function qR(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=pk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>$R&&++lqR(i,0,1,e,n);return i=>i===0||i===1?i:pk(s(i),t,r)}const fk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,mk=e=>t=>1-e(1-t),hk=Sl(.33,1.53,.69,.99),_g=mk(hk),gk=fk(_g),xk=e=>(e*=2)<1?.5*_g(e):.5*(2-Math.pow(2,-10*(e-1))),bg=e=>1-Math.sin(Math.acos(e)),vk=mk(bg),yk=fk(bg),_k=e=>/^0[^.\s]+$/u.test(e);function WR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||_k(e):!0}const Po=e=>Math.round(e*1e5)/1e5,wg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function GR(e){return e==null}const KR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,kg=(e,t)=>n=>!!(typeof n=="string"&&KR.test(n)&&n.startsWith(e)||t&&!GR(n)&&Object.prototype.hasOwnProperty.call(n,t)),bk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(wg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},QR=e=>js(0,255,e),pp={...za,transform:e=>Math.round(QR(e))},ji={test:kg("rgb","red"),parse:bk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+pp.transform(e)+", "+pp.transform(t)+", "+pp.transform(n)+", "+Po(il.transform(r))+")"};function YR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const lm={test:kg("#"),parse:YR,transform:ji.transform},ua={test:kg("hsl","hue"),parse:bk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Zr.transform(Po(t))+", "+Zr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>ji.test(e)||lm.test(e)||ua.test(e),parse:e=>ji.test(e)?ji.parse(e):ua.test(e)?ua.parse(e):lm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ji.transform(e):ua.transform(e)},XR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function JR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(wg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(XR))===null||n===void 0?void 0:n.length)||0)>0}const wk="number",kk="color",ZR="var",eA="var(",ev="${}",tA=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(tA,c=>(Sn.test(c)?(r.color.push(i),s.push(kk),n.push(Sn.parse(c))):c.startsWith(eA)?(r.var.push(i),s.push(ZR),n.push(c)):(r.number.push(i),s.push(wk),n.push(parseFloat(c))),++i,ev)).split(ev);return{values:n,split:l,indexes:r,types:s}}function Sk(e){return ol(e).values}function Ek(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function rA(e){const t=Sk(e);return Ek(e)(t.map(nA))}const ii={test:JR,parse:Sk,createTransformer:Ek,getAnimatableNone:rA},sA=new Set(["brightness","contrast","saturate","opacity"]);function iA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(wg)||[];if(!r)return e;const s=n.replace(r,"");let i=sA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const aA=/\b([a-z-]*)\(.*?\)/gu,cm={...ii,getAnimatableNone:e=>{const t=e.match(aA);return t?t.map(iA).join(" "):e}},oA={...og,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:cm,WebkitFilter:cm},Sg=e=>oA[e];function Ck(e,t){let n=Sg(e);return n!==cm&&(n=ii),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const lA=new Set(["auto","none","0"]);function cA(e,t,n){let r=0,s;for(;re===za||e===Re,nv=(e,t)=>parseFloat(e.split(", ")[t]),rv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return nv(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?nv(i[1],e):0}},uA=new Set(["x","y","z"]),dA=Va.filter(e=>!uA.has(e));function pA(e){const t=[];return dA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:rv(4,13),y:rv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Ai=new Set;let um=!1,dm=!1;function jk(){if(dm){const e=Array.from(Ai).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=pA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}dm=!1,um=!1,Ai.forEach(e=>e.complete()),Ai.clear()}function Nk(){Ai.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(dm=!0)})}function fA(){Nk(),jk()}class Eg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ai.add(this),um||(um=!0,kt.read(Nk),kt.resolveKeyframes(jk))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),mA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function hA(e){const t=mA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Rk(e,t,n=1){const[r,s]=hA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return Pk(a)?parseFloat(a):a}return ag(s)?Rk(s,t,n+1):s}const Ak=e=>t=>t.test(e),gA={test:e=>e==="auto",parse:e=>e},Tk=[za,Re,Zr,Os,iR,sR,gA],sv=e=>Tk.find(Ak(e));class Lk extends Eg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const iv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ii.test(e)||e==="0")&&!e.startsWith("url("));function xA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function vd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(yA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const _A=40;class Dk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=es.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>_A?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&fA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=es.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!vA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(vd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Lt=(e,t,n)=>e+(t-e)*n;function fp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function bA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=fp(c,l,e+1/3),i=fp(c,l,e),a=fp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function ju(e,t){return n=>n>0?t:e}const mp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},wA=[lm,ji,ua],kA=e=>wA.find(t=>t.test(e));function av(e){const t=kA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=bA(n)),n}const ov=(e,t)=>{const n=av(e),r=av(t);if(!n||!r)return ju(e,t);const s={...n};return i=>(s.red=mp(n.red,r.red,i),s.green=mp(n.green,r.green,i),s.blue=mp(n.blue,r.blue,i),s.alpha=Lt(n.alpha,r.alpha,i),ji.transform(s))},SA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(SA),pm=new Set(["none","hidden"]);function EA(e,t){return pm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function CA(e,t){return n=>Lt(e,t,n)}function Cg(e){return typeof e=="number"?CA:typeof e=="string"?ag(e)?ju:Sn.test(e)?ov:PA:Array.isArray(e)?Mk:typeof e=="object"?Sn.test(e)?ov:jA:ju}function Mk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Cg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function NA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ii.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?pm.has(e)&&!s.values.length||pm.has(t)&&!r.values.length?EA(e,t):El(Mk(NA(r,s),s.values),n):ju(e,t)};function Ok(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Lt(e,t,n):Cg(e)(e,t)}const RA=5;function Ik(e,t,n){const r=Math.max(t-RA,0);return uk(n-e(r),t-r)}const Ft={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},hp=.001;function AA({duration:e=Ft.duration,bounce:t=Ft.bounce,velocity:n=Ft.velocity,mass:r=Ft.mass}){let s,i,a=1-t;a=js(Ft.minDamping,Ft.maxDamping,a),e=js(Ft.minDuration,Ft.maxDuration,_s(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=fm(u,a),g=Math.exp(-p);return hp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=fm(Math.pow(u,2),a);return(-s(u)+hp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-hp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=LA(s,i,l);if(e=ys(e),isNaN(c))return{stiffness:Ft.stiffness,damping:Ft.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const TA=12;function LA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function OA(e){let t={velocity:Ft.velocity,stiffness:Ft.stiffness,damping:Ft.damping,mass:Ft.mass,isResolvedFromDuration:!1,...e};if(!lv(e,MA)&&lv(e,DA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*js(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Ft.mass,stiffness:s,damping:i}}else{const n=AA(e);t={...t,...n,mass:Ft.mass},t.isResolvedFromDuration=!0}return t}function Fk(e=Ft.visualDuration,t=Ft.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=OA({...n,velocity:-_s(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=_s(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Ft.restSpeed.granular:Ft.restSpeed.default),s||(s=y?Ft.restDelta.granular:Ft.restDelta.default);let _;if(v<1){const R=fm(x,v);_=E=>{const A=Math.exp(-v*x*E);return a-A*((g+v*x*b)/R*Math.sin(R*E)+b*Math.cos(R*E))}}else if(v===1)_=R=>a-Math.exp(-x*R)*(b+(g+x*b)*R);else{const R=x*Math.sqrt(v*v-1);_=E=>{const A=Math.exp(-v*x*E),D=Math.min(R*E,300);return a-A*((g+v*x*b)*Math.sinh(D)+R*b*Math.cosh(D))/R}}const S={calculatedDuration:h&&p||null,next:R=>{const E=_(R);if(h)l.done=R>=p;else{let A=0;v<1&&(A=R===0?ys(g):Ik(_,R,E));const D=Math.abs(A)<=r,z=Math.abs(a-E)<=s;l.done=D&&z}return l.value=l.done?a:E,l},toString:()=>{const R=Math.min(nk(S),im),E=rk(A=>S.next(R*A).value,R,30);return R+"ms "+E}};return S}function cv({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),S=D=>{const z=y(D),j=_(D);f.done=Math.abs(z)<=u,f.value=f.done?x:j};let R,E;const A=D=>{h(f.value)&&(R=D,E=Fk({keyframes:[f.value,g(f.value)],velocity:Ik(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return A(0),{calculatedDuration:null,next:D=>{let z=!1;return!E&&R===void 0&&(z=!0,S(D),A(D)),R!==void 0&&D>=R?E.next(D-R):(!z&&S(D),f)}}}const IA=Sl(.42,0,1,1),FA=Sl(0,0,.58,1),Bk=Sl(.42,0,.58,1),BA=e=>Array.isArray(e)&&typeof e[0]!="number",UA={linear:ar,easeIn:IA,easeInOut:Bk,easeOut:FA,circIn:bg,circInOut:yk,circOut:vk,backIn:_g,backInOut:gk,backOut:hk,anticipate:xk},uv=e=>{if(hg(e)){Ow(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return UA[e];return e};function VA(e,t,n){const r=[],s=n||Ok,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=VA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(js(e[0],e[i-1],d)):u}function $A(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Lt(n,1,s))}}function HA(e){const t=[0];return $A(t,e.length-1),t}function qA(e,t){return e.map(n=>n*t)}function WA(e,t){return e.map(()=>t||Bk).splice(0,e.length-1)}function Nu({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=BA(r)?r.map(uv):uv(r),i={done:!1,value:t[0]},a=qA(n&&n.length===t.length?n:HA(t),e),l=zA(a,t,{ease:Array.isArray(s)?s:WA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const GA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>kt.update(t,!0),stop:()=>si(t),now:()=>gn.isProcessing?gn.timestamp:es.now()}},KA={decay:cv,inertia:cv,tween:Nu,keyframes:Nu,spring:Fk},QA=e=>e/100;class jg extends Dk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Eg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=mg(n)?n:KA[n]||Nu;let c,u;l!==Nu&&typeof t[0]!="number"&&(c=El(QA,Ok(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=nk(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,S=i;if(h){const D=Math.min(this.currentTime,d)/p;let z=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&z--,z=Math.min(z,h+1),!!(z%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(S=a)),_=js(0,1,j)*p}const R=y?{done:!1,value:c[0]}:S.next(_);l&&(R.value=l(R.value));let{done:E}=R;!y&&u!==null&&(E=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const A=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&E);return A&&s!==void 0&&(R.value=vd(c,this.options,s)),b&&b(R.value),A&&this.finish(),R}get duration(){const{resolved:t}=this;return t?_s(t.calculatedDuration):0}get time(){return _s(this.currentTime)}set time(t){t=ys(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=_s(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=GA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const YA=new Set(["opacity","clipPath","filter","transform"]);function XA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=ik(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const JA=Zh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Pu=10,ZA=2e4;function eT(e){return mg(e.type)||e.type==="spring"||!sk(e.ease)}function tT(e,t){const n=new jg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Cu()&&nT(i)&&(i=Uk[i]),eT(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=tT(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=XA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(Q0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(vd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return _s(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return _s(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=ys(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return ar;const{animation:r}=n;Q0(r,t)}return ar}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new jg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=ys(this.time);u.setWithVelocity(g.sample(v-Pu).value,g.sample(v).value,Pu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return JA()&&r&&YA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const rT={type:"spring",stiffness:500,damping:25,restSpeed:10},sT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),iT={type:"keyframes",duration:.8},aT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},oT=(e,{keyframes:t})=>t.length>2?iT:$i.has(e)?e.startsWith("scale")?sT(t[1]):rT:aT;function lT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const Ng=(e,t,n,r={},s,i)=>a=>{const l=fg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-ys(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};lT(l)||(d={...d,...oT(e,d)}),d.duration&&(d.duration=ys(d.duration)),d.repeatDelay&&(d.repeatDelay=ys(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=vd(d.keyframes,l);if(f!==void 0)return kt.update(()=>{d.onUpdate(f),d.onComplete()}),new jR([])}return!i&&dv.supports(d)?new dv(d):new jg(d)};function cT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Vk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&cT(d,p))continue;const g={delay:n,...fg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=dk(e);if(x){const y=window.MotionHandoffAnimation(x,p,kt);y!==null&&(g.startTime=y,v=!0)}}om(e,p),f.start(Ng(p,f,h,e.shouldReduceMotion&&ck.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{kt.update(()=>{l&&VR(e,l)})}),u}function mm(e,t,n={}){var r;const s=xd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Vk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return uT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function uT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(dT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(mm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function dT(e,t){return e.sortNodePosition(t)}function pT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>mm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=mm(e,t,n);else{const s=typeof t=="function"?xd(e,t,n.custom):t;r=Promise.all(Vk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const fT=tg.length;function zk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?zk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>pT(e,n,r)))}function xT(e){let t=gT(e),n=pv(),r=!0;const s=c=>(u,d)=>{var p;const f=xd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=zk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&S,z=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});R===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&(z=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const B=e.getValue(oe);B&&(B.liveStyle=!1)};for(const oe in re){const B=H[oe],Y=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;sm(B)&&sm(Y)?N=!tk(B,Y):N=B!==Y,N?B!=null?le(oe):f.add(oe):B!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(E&&A)||z)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=pv(),r=!0}}}function vT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!tk(t,e):!1}function gi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function pv(){return{animate:gi(!0),whileInView:gi(),whileHover:gi(),whileTap:gi(),whileDrag:gi(),whileFocus:gi(),exit:gi()}}class ui{constructor(t){this.isMounted=!1,this.node=t}update(){}}class yT extends ui{constructor(t){super(t),t.animationState||(t.animationState=xT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();hd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let _T=0;class bT extends ui{constructor(){super(...arguments),this.id=_T++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const wT={animation:{Feature:yT},exit:{Feature:bT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const kT=e=>t=>gg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,kT(n),r)}const fv=(e,t)=>Math.abs(e-t);function ST(e,t){const n=fv(e.x,t.x),r=fv(e.y,t.y);return Math.sqrt(n**2+r**2)}class $k{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=xp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=ST(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=gn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=gp(f,this.transformPagePoint),kt.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=xp(p.type==="pointercancel"?this.lastMoveEventInfo:gp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!gg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=gp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=gn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,xp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),si(this.updatePoint)}}function gp(e,t){return t?{point:t(e.point)}:e}function mv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function xp({point:e},t){return{point:e,delta:mv(e,Hk(t)),offset:mv(e,ET(t)),velocity:CT(t,.1)}}function ET(e){return e[0]}function Hk(e){return e[e.length-1]}function CT(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=Hk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>ys(t)));)n--;if(!r)return{x:0,y:0};const i=_s(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const qk=1e-4,jT=1-qk,NT=1+qk,Wk=.01,PT=0-Wk,RT=0+Wk;function cr(e){return e.max-e.min}function AT(e,t,n){return Math.abs(e-t)<=n}function hv(e,t,n,r=.5){e.origin=r,e.originPoint=Lt(t.min,t.max,e.origin),e.scale=cr(n)/cr(t),e.translate=Lt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=jT&&e.scale<=NT||isNaN(e.scale))&&(e.scale=1),(e.translate>=PT&&e.translate<=RT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){hv(e.x,t.x,n.x,r?r.originX:void 0),hv(e.y,t.y,n.y,r?r.originY:void 0)}function gv(e,t,n){e.min=n.min+t.min,e.max=e.min+cr(t)}function TT(e,t,n){gv(e.x,t.x,n.x),gv(e.y,t.y,n.y)}function xv(e,t,n){e.min=t.min-n.min,e.max=e.min+cr(t)}function To(e,t,n){xv(e.x,t.x,n.x),xv(e.y,t.y,n.y)}function LT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Lt(n,e,r.max):Math.min(e,n)),e}function vv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function DT(e,{top:t,left:n,bottom:r,right:s}){return{x:vv(e.x,n,s),y:vv(e.y,t,r)}}function yv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),js(0,1,n)}function IT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const hm=.35;function FT(e=hm){return e===!1?e=0:e===!0&&(e=hm),{x:_v(e,"left","right"),y:_v(e,"top","bottom")}}function _v(e,t,n){return{min:bv(e,t),max:bv(e,n)}}function bv(e,t){return typeof e=="number"?e:e[t]||0}const wv=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:wv(),y:wv()}),kv=()=>({min:0,max:0}),$t=()=>({x:kv(),y:kv()});function hr(e){return[e("x"),e("y")]}function Gk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function BT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function UT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function vp(e){return e===void 0||e===1}function gm({scale:e,scaleX:t,scaleY:n}){return!vp(e)||!vp(t)||!vp(n)}function bi(e){return gm(e)||Kk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Kk(e){return Sv(e.x)||Sv(e.y)}function Sv(e){return e&&e!=="0%"}function Ru(e,t,n){const r=e-n,s=t*r;return n+s}function Ev(e,t,n,r,s){return s!==void 0&&(e=Ru(e,s,r)),Ru(e,n,r)+t}function xm(e,t=0,n=1,r,s){e.min=Ev(e.min,t,n,r,s),e.max=Ev(e.max,t,n,r,s)}function Qk(e,{x:t,y:n}){xm(e.x,t.translate,t.scale,t.originPoint),xm(e.y,n.translate,n.scale,n.originPoint)}const Cv=.999999999999,jv=1.0000000000001;function VT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lCv&&(t.x=1),t.yCv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Nv(e,t,n,r,s=.5){const i=Lt(e.min,e.max,s);xm(e,t,n,i,r)}function fa(e,t){Nv(e.x,t.x,t.scaleX,t.scale,t.originX),Nv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Yk(e,t){return Gk(UT(e.getBoundingClientRect(),t))}function zT(e,t,n){const r=Yk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Xk=({current:e})=>e?e.ownerDocument.defaultView:null,$T=new WeakMap;class HT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=$t(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=OR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),hr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Zr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=cr(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&kt.postRender(()=>g(d,p)),om(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=qT(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>hr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new $k(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Xk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&kt.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!mc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=LT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=DT(s.layoutBox,n):this.constraints=!1,this.elastic=FT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&hr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=IT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=zT(r,s.root,this.visualElement.getTransformPagePoint());let a=MT(s.layout.layoutBox,i);if(n){const l=n(BT(a));this.hasMutatedConstraints=!!l,l&&(a=Gk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=hr(d=>{if(!mc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return om(this.visualElement,t),r.start(Ng(t,r,0,n,this.visualElement,!1))}stopAnimation(){hr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){hr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){hr(n=>{const{drag:r}=this.getProps();if(!mc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Lt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};hr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=OT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),hr(a=>{if(!mc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Lt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;$T.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),kt.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(hr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=hm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function mc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function qT(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class WT extends ui{constructor(t){super(t),this.removeGroupControls=ar,this.removeListeners=ar,this.controls=new HT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ar}unmount(){this.removeGroupControls(),this.removeListeners()}}const Pv=e=>(t,n)=>{e&&kt.postRender(()=>e(t,n))};class GT extends ui{constructor(){super(...arguments),this.removePointerDownListener=ar}onPointerDown(t){this.session=new $k(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Xk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:Pv(t),onStart:Pv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&kt.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const zc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Rv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Re.test(e))e=parseFloat(e);else return e;const n=Rv(e,t.target.x),r=Rv(e,t.target.y);return`${n}% ${r}%`}},KT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ii.parse(e);if(s.length>5)return r;const i=ii.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Lt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class QT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;hR(YT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),zc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||kt.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),rg.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Jk(e){const[t,n]=Dw(),r=m.useContext(Qh);return o.jsx(QT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(zw),isPresent:t,safeToRemove:n})}const YT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:KT};function XT(e,t,n){const r=jn(e)?e:al(e);return r.start(Ng("",r,t,n)),r.animation}function JT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const ZT=(e,t)=>e.depth-t.depth;class eL{constructor(){this.children=[],this.isDirty=!1}add(t){xg(this.children,t),this.isDirty=!0}remove(t){vg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(ZT),this.isDirty=!1,this.children.forEach(t)}}function tL(e,t){const n=es.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(si(r),e(i-t))};return kt.read(r,!0),()=>si(r)}const Zk=["TopLeft","TopRight","BottomLeft","BottomRight"],nL=Zk.length,Av=e=>typeof e=="string"?parseFloat(e):e,Tv=e=>typeof e=="number"||Re.test(e);function rL(e,t,n,r,s,i){s?(e.opacity=Lt(0,n.opacity!==void 0?n.opacity:1,sL(r)),e.opacityExit=Lt(t.opacity!==void 0?t.opacity:1,0,iL(r))):i&&(e.opacity=Lt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Dv(e,t){e.min=t.min,e.max=t.max}function mr(e,t){Dv(e.x,t.x),Dv(e.y,t.y)}function Mv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Ov(e,t,n,r,s){return e-=t,e=Ru(e,1/n,r),s!==void 0&&(e=Ru(e,1/s,r)),e}function aL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Zr.test(t)&&(t=parseFloat(t),t=Lt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Lt(i.min,i.max,r);e===i&&(l-=t),e.min=Ov(e.min,t,n,l,s),e.max=Ov(e.max,t,n,l,s)}function Iv(e,t,[n,r,s],i,a){aL(e,t[n],t[r],t[s],t.scale,i,a)}const oL=["x","scaleX","originX"],lL=["y","scaleY","originY"];function Fv(e,t,n,r){Iv(e.x,t,oL,n?n.x:void 0,r?r.x:void 0),Iv(e.y,t,lL,n?n.y:void 0,r?r.y:void 0)}function Bv(e){return e.translate===0&&e.scale===1}function tS(e){return Bv(e.x)&&Bv(e.y)}function Uv(e,t){return e.min===t.min&&e.max===t.max}function cL(e,t){return Uv(e.x,t.x)&&Uv(e.y,t.y)}function Vv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function nS(e,t){return Vv(e.x,t.x)&&Vv(e.y,t.y)}function zv(e){return cr(e.x)/cr(e.y)}function $v(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class uL{constructor(){this.members=[]}add(t){xg(this.members,t),t.scheduleRender()}remove(t){if(vg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function dL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const wi={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,yp=["","X","Y","Z"],pL={visibility:"hidden"},Hv=1e3;let fL=0;function _p(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function rS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=dk(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",kt,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&rS(r)}function sS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=fL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(wi.totalNodes=wi.resolvedTargetDeltas=wi.recalculatedProjection=0),this.nodes.forEach(gL),this.nodes.forEach(bL),this.nodes.forEach(wL),this.nodes.forEach(xL),yo&&window.MotionDebug.record(wi)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=tL(f,250),zc.hasAnimatedSinceResize&&(zc.hasAnimatedSinceResize=!1,this.nodes.forEach(Wv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||jL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!nS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const S={...fg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else f||Wv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,si(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(kL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&rS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const R=S/1e3;Gv(p.x,a.x,R),Gv(p.y,a.y,R),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),EL(this.relativeTarget,this.relativeTargetOrigin,f,R),_&&cL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=$t()),mr(_,this.relativeTarget)),v&&(this.animationValues=d,rL(d,u,this.latestValues,R,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=R},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(si(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=kt.update(()=>{zc.hasAnimatedSinceResize=!0,this.currentAnimation=XT(0,Hv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Hv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&iS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||$t();const p=cr(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=cr(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}mr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new uL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&_p("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(qv),this.root.sharedNodes.clear()}}}function mL(e){e.updateLayout()}function hL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?hr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=cr(f);f.min=r[p].min,f.max=f.min+h}):iS(i,n.layoutBox,r)&&hr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=cr(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!tS(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=$t();To(g,n.layoutBox,f.layoutBox);const v=$t();To(v,r,h.layoutBox),nS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function gL(e){yo&&wi.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function xL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function vL(e){e.clearSnapshot()}function qv(e){e.clearMeasurements()}function yL(e){e.isLayoutDirty=!1}function _L(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Wv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function bL(e){e.resolveTargetDelta()}function wL(e){e.calcProjection()}function kL(e){e.resetSkewAndRotation()}function SL(e){e.removeLeadSnapshot()}function Gv(e,t,n){e.translate=Lt(t.translate,0,n),e.scale=Lt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Kv(e,t,n,r){e.min=Lt(t.min,n.min,r),e.max=Lt(t.max,n.max,r)}function EL(e,t,n,r){Kv(e.x,t.x,n.x,r),Kv(e.y,t.y,n.y,r)}function CL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const jL={duration:.45,ease:[.4,0,.1,1]},Qv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Yv=Qv("applewebkit/")&&!Qv("chrome/")?Math.round:ar;function Xv(e){e.min=Yv(e.min),e.max=Yv(e.max)}function NL(e){Xv(e.x),Xv(e.y)}function iS(e,t,n){return e==="position"||e==="preserve-aspect"&&!AT(zv(t),zv(n),.2)}function PL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const RL=sS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bp={current:void 0},aS=sS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bp.current){const e=new RL({});e.mount(window),e.setOptions({layoutScroll:!0}),bp.current=e}return bp.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),AL={pan:{Feature:GT},drag:{Feature:WT,ProjectionNode:aS,MeasureLayout:Jk}};function Jv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&kt.postRender(()=>i(t,Cl(t)))}class TL extends ui{mount(){const{current:t}=this.node;t&&(this.unmount=AR(t,n=>(Jv(this.node,n,"Start"),r=>Jv(this.node,r,"End"))))}unmount(){}}class LL extends ui{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Zv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&kt.postRender(()=>i(t,Cl(t)))}class DL extends ui{mount(){const{current:t}=this.node;t&&(this.unmount=MR(t,n=>(Zv(this.node,n,"Start"),(r,{success:s})=>Zv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const vm=new WeakMap,wp=new WeakMap,ML=e=>{const t=vm.get(e.target);t&&t(e)},OL=e=>{e.forEach(ML)};function IL({root:e,...t}){const n=e||document;wp.has(n)||wp.set(n,{});const r=wp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(OL,{root:e,...t})),r[s]}function FL(e,t,n){const r=IL(t);return vm.set(e,n),r.observe(e),()=>{vm.delete(e),r.unobserve(e)}}const BL={some:0,all:1};class UL extends ui{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:BL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return FL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(VL(t,n))&&this.startObserver()}unmount(){}}function VL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const zL={inView:{Feature:UL},tap:{Feature:DL},focus:{Feature:LL},hover:{Feature:TL}},$L={layout:{ProjectionNode:aS,MeasureLayout:Jk}},ym={current:null},oS={current:!1};function HL(){if(oS.current=!0,!!Jh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>ym.current=e.matches;e.addListener(t),t()}else ym.current=!1}const qL=[...Tk,Sn,ii],WL=e=>qL.find(Ak(e)),ey=new WeakMap;function GL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const ty=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class KL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Eg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=es.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),oS.current||HL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:ym.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){ey.delete(this.current),this.projection&&this.projection.unmount(),si(this.notifyUpdate),si(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=$i.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&kt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):$t()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(Pk(s)||_k(s))?s=parseFloat(s):!WL(s)&&ii.test(n)&&(s=Ck(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=ig(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new yg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class lS extends KL{constructor(){super(...arguments),this.KeyframeResolver=Lk}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function QL(e){return window.getComputedStyle(e)}class YL extends lS{constructor(){super(...arguments),this.type="html",this.renderInstance=Qw}readValueFromInstance(t,n){if($i.has(n)){const r=Sg(n);return r&&r.default||0}else{const r=QL(t),s=(Ww(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Yk(t,n)}build(t,n,r){lg(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return pg(t,n,r)}}class XL extends lS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=$t}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if($i.has(n)){const r=Sg(n);return r&&r.default||0}return n=Yw.has(n)?n:ng(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Zw(t,n,r)}build(t,n,r){cg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Xw(t,n,r,s)}mount(t){this.isSVGTag=dg(t.tagName),super.mount(t)}}const JL=(e,t)=>sg(e)?new XL(t):new YL(t,{allowProjection:e!==m.Fragment}),ZL=SR({...wT,...zL,...AL,...$L},JL),Ut=BP(ZL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const tD=m.forwardRef(eD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const $c=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ny=m.forwardRef(rD);function sD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Yr=m.forwardRef(sD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const aD=m.forwardRef(iD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const cS=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const kp=m.forwardRef(lD);function cD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const Sp=m.forwardRef(cD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const dD=m.forwardRef(uD);function pD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Au=m.forwardRef(pD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const mD=m.forwardRef(fD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const hc=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Tu=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Ws=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const rr=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const uS=m.forwardRef(yD);function _D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const ps=m.forwardRef(_D);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const CD=m.forwardRef(ED);function jD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const _m=m.forwardRef(jD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const AD=m.forwardRef(RD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Lu=m.forwardRef(TD);function LD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const bm=m.forwardRef(LD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const MD=m.forwardRef(DD);function OD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const wm=m.forwardRef(OD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const FD=m.forwardRef(ID);function BD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const UD=m.forwardRef(BD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ry=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const fs=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const sy=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const dS=m.forwardRef(HD);function qD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const iy=m.forwardRef(qD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const GD=m.forwardRef(WD);function KD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const pS=m.forwardRef(KD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const a3=m.forwardRef(i3);function o3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Ep=m.forwardRef(o3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const c3=m.forwardRef(l3);function u3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Du=m.forwardRef(u3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const g3=m.forwardRef(h3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const Hc=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Pg=m.forwardRef(v3);function y3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const fS=m.forwardRef(y3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const k3=m.forwardRef(w3);function S3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const tn=m.forwardRef(S3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const N3=m.forwardRef(j3);function P3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(P3);function mS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{ay(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>ay("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=hS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const L3={},oy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(L3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},D3=e=>e?oy(e):oy;var gS={exports:{}},xS={},vS={exports:{}},yS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function M3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var O3=typeof Object.is=="function"?Object.is:M3,I3=La.useState,F3=La.useEffect,B3=La.useLayoutEffect,U3=La.useDebugValue;function V3(e,t){var n=t(),r=I3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return B3(function(){s.value=n,s.getSnapshot=t,Cp(s)&&i({inst:s})},[e,n,t]),F3(function(){return Cp(s)&&i({inst:s}),e(function(){Cp(s)&&i({inst:s})})},[e]),U3(n),n}function Cp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!O3(e,n)}catch{return!0}}function z3(e,t){return t()}var $3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?z3:V3;yS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:$3;vS.exports=yS;var H3=vS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yd=m,q3=H3;function W3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var G3=typeof Object.is=="function"?Object.is:W3,K3=q3.useSyncExternalStore,Q3=yd.useRef,Y3=yd.useEffect,X3=yd.useMemo,J3=yd.useDebugValue;xS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=Q3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=X3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,G3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=K3(e,i[0],i[1]);return Y3(function(){a.hasValue=!0,a.value=l},[l]),J3(l),l};gS.exports=xS;var Z3=gS.exports;const eM=Wu(Z3),_S={},{useDebugValue:tM}=pn,{useSyncExternalStoreWithSelector:nM}=eM;let ly=!1;const rM=e=>e;function sM(e,t=rM,n){(_S?"production":void 0)!=="production"&&n&&!ly&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ly=!0);const r=nM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tM(r),r}const cy=e=>{(_S?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?D3(e):e,n=(r,s)=>sM(t,r,s);return Object.assign(n,t),n},iM=e=>e?cy(e):cy;function bS(e,t){return function(){return e.apply(t,arguments)}}const{toString:aM}=Object.prototype,{getPrototypeOf:Rg}=Object,{iterator:_d,toStringTag:wS}=Symbol,bd=(e=>t=>{const n=aM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Br=e=>(e=e.toLowerCase(),t=>bd(t)===e),wd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=wd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Qn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const kS=Br("ArrayBuffer");function oM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&kS(e.buffer),t}const lM=wd("string"),Qn=wd("function"),SS=wd("number"),Nl=e=>e!==null&&typeof e=="object",cM=e=>e===!0||e===!1,qc=e=>{if(bd(e)!=="object")return!1;const t=Rg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(wS in e)&&!(_d in e)},uM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},dM=Br("Date"),pM=Br("File"),fM=Br("Blob"),mM=Br("FileList"),hM=e=>Nl(e)&&Qn(e.pipe),gM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Qn(e.append)&&((t=bd(e))==="formdata"||t==="object"&&Qn(e.toString)&&e.toString()==="[object FormData]"))},xM=Br("URLSearchParams"),[vM,yM,_M,bM]=["ReadableStream","Request","Response","Headers"].map(Br),wM=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,CS=e=>!Da(e)&&e!==Ni;function km(){const{caseless:e,skipUndefined:t}=CS(this)&&this||{},n={},r=(s,i)=>{const a=e&&ES(n,i)||i;qc(n[a])&&qc(s)?n[a]=km(n[a],s):qc(s)?n[a]=km({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Qn(s)?e[i]=bS(s,n):e[i]=s},{allOwnKeys:r}),e),SM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),EM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},CM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Rg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},jM=(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},NM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!SS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},PM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Rg(Uint8Array)),RM=(e,t)=>{const r=(e&&e[_d]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},AM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},TM=Br("HTMLFormElement"),LM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),uy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),DM=Br("RegExp"),jS=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},MM=e=>{jS(e,(t,n)=>{if(Qn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Qn(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+"'")})}})},OM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},IM=()=>{},FM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function BM(e){return!!(e&&Qn(e.append)&&e[wS]==="FormData"&&e[_d])}const UM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},VM=Br("AsyncFunction"),zM=e=>e&&(Nl(e)||Qn(e))&&Qn(e.then)&&Qn(e.catch),NS=((e,t)=>e?setImmediate:t?((n,r)=>(Ni.addEventListener("message",({source:s,data:i})=>{s===Ni&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ni.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Qn(Ni.postMessage)),$M=typeof queueMicrotask<"u"?queueMicrotask.bind(Ni):typeof process<"u"&&process.nextTick||NS,HM=e=>e!=null&&Qn(e[_d]),V={isArray:$a,isArrayBuffer:kS,isBuffer:jl,isFormData:gM,isArrayBufferView:oM,isString:lM,isNumber:SS,isBoolean:cM,isObject:Nl,isPlainObject:qc,isEmptyObject:uM,isReadableStream:vM,isRequest:yM,isResponse:_M,isHeaders:bM,isUndefined:Da,isDate:dM,isFile:pM,isBlob:fM,isRegExp:DM,isFunction:Qn,isStream:hM,isURLSearchParams:xM,isTypedArray:PM,isFileList:mM,forEach:Pl,merge:km,extend:kM,trim:wM,stripBOM:SM,inherits:EM,toFlatObject:CM,kindOf:bd,kindOfTest:Br,endsWith:jM,toArray:NM,forEachEntry:RM,matchAll:AM,isHTMLForm:TM,hasOwnProperty:uy,hasOwnProp:uy,reduceDescriptors:jS,freezeMethods:MM,toObjectSet:OM,toCamelCase:LM,noop:IM,toFiniteNumber:FM,findKey:ES,global:Ni,isContextDefined:CS,isSpecCompliantForm:BM,toJSONObject:UM,isAsyncFn:VM,isThenable:zM,setImmediate:NS,asap:$M,isIterable:HM};function Me(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}V.inherits(Me,Error,{toJSON:function(){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:V.toJSONObject(this.config),code:this.code,status:this.status}}});const PS=Me.prototype,RS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{RS[e]={value:e}});Object.defineProperties(Me,RS);Object.defineProperty(PS,"isAxiosError",{value:!0});Me.from=(e,t,n,r,s,i)=>{const a=Object.create(PS);V.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Me.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const qM=null;function Sm(e){return V.isPlainObject(e)||V.isArray(e)}function AS(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function dy(e,t,n){return e?e.concat(t).map(function(s,i){return s=AS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function WM(e){return V.isArray(e)&&!e.some(Sm)}const GM=V.toFlatObject(V,{},null,function(t){return/^is[A-Z]/.test(t)});function kd(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!V.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&V.isSpecCompliantForm(t);if(!V.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(V.isDate(g))return g.toISOString();if(V.isBoolean(g))return g.toString();if(!c&&V.isBlob(g))throw new Me("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(g)||V.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(V.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(V.isArray(g)&&WM(g)||(V.isFileList(g)||V.endsWith(v,"[]"))&&(x=V.toArray(g)))return v=AS(v),x.forEach(function(_,S){!(V.isUndefined(_)||_===null)&&t.append(a===!0?dy([v],S,i):a===null?v:v+"[]",u(_))}),!1}return Sm(g)?!0:(t.append(dy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(GM,{defaultVisitor:d,convertValue:u,isVisitable:Sm});function h(g,v){if(!V.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),V.forEach(g,function(x,y){(!(V.isUndefined(x)||x===null)&&s.call(t,x,V.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!V.isObject(e))throw new TypeError("data must be an object");return h(e),t}function py(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ag(e,t){this._pairs=[],e&&kd(e,this,t)}const TS=Ag.prototype;TS.append=function(t,n){this._pairs.push([t,n])};TS.toString=function(t){const n=t?function(r){return t.call(this,r,py)}:py;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function KM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function LS(e,t,n){if(!t)return e;const r=n&&n.encode||KM;V.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=V.isURLSearchParams(t)?t.toString():new Ag(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class fy{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){V.forEach(this.handlers,function(r){r!==null&&t(r)})}}const DS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},QM=typeof URLSearchParams<"u"?URLSearchParams:Ag,YM=typeof FormData<"u"?FormData:null,XM=typeof Blob<"u"?Blob:null,JM={isBrowser:!0,classes:{URLSearchParams:QM,FormData:YM,Blob:XM},protocols:["http","https","file","blob","url","data"]},Tg=typeof window<"u"&&typeof document<"u",Em=typeof navigator=="object"&&navigator||void 0,ZM=Tg&&(!Em||["ReactNative","NativeScript","NS"].indexOf(Em.product)<0),e4=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",t4=Tg&&window.location.href||"http://localhost",n4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Tg,hasStandardBrowserEnv:ZM,hasStandardBrowserWebWorkerEnv:e4,navigator:Em,origin:t4},Symbol.toStringTag,{value:"Module"})),Cn={...n4,...JM};function r4(e,t){return kd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&V.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function s4(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function i4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&V.isArray(s)?s.length:a,c?(V.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!V.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&V.isArray(s[a])&&(s[a]=i4(s[a])),!l)}if(V.isFormData(e)&&V.isFunction(e.entries)){const n={};return V.forEachEntry(e,(r,s)=>{t(s4(r),s,n,0)}),n}return null}function a4(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:DS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=V.isObject(t);if(i&&V.isHTMLForm(t)&&(t=new FormData(t)),V.isFormData(t))return s?JSON.stringify(MS(t)):t;if(V.isArrayBuffer(t)||V.isBuffer(t)||V.isStream(t)||V.isFile(t)||V.isBlob(t)||V.isReadableStream(t))return t;if(V.isArrayBufferView(t))return t.buffer;if(V.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return r4(t,this.formSerializer).toString();if((l=V.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return kd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),a4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(V.isResponse(t)||V.isReadableStream(t))return t;if(t&&V.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Me.from(l,Me.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const o4=V.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"]),l4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&o4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},my=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function Wc(e){return e===!1||e==null?e:V.isArray(e)?e.map(Wc):String(e)}function c4(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 u4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function jp(e,t,n,r,s){if(V.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!V.isString(t)){if(V.isString(r))return t.indexOf(r)!==-1;if(V.isRegExp(r))return r.test(t)}}function d4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function p4(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Yn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=V.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=Wc(l))}const a=(l,c)=>V.forEach(l,(u,d)=>i(u,d,c));if(V.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(V.isString(t)&&(t=t.trim())&&!u4(t))a(l4(t),n);else if(V.isObject(t)&&V.isIterable(t)){let l={},c,u;for(const d of t){if(!V.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?V.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=V.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return c4(s);if(V.isFunction(n))return n.call(this,s,r);if(V.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=V.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||jp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=V.findKey(r,a);l&&(!n||jp(r,r[l],l,n))&&(delete r[l],s=!0)}}return V.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||jp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return V.forEach(this,(s,i)=>{const a=V.findKey(r,i);if(a){n[a]=Wc(s),delete n[i];return}const l=t?d4(i):String(i).trim();l!==i&&delete n[i],n[l]=Wc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return V.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&V.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(s=>r.set(s)),r}static accessor(t){const r=(this[my]=this[my]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(p4(s,a),r[l]=!0)}return V.isArray(t)?t.forEach(i):i(t),this}};Yn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(Yn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});V.freezeMethods(Yn);function Np(e,t){const n=this||Rl,r=t||n,s=Yn.from(r.headers);let i=r.data;return V.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function OS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Me.call(this,e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError"}V.inherits(Ha,Me,{__CANCEL__:!0});function IS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Me("Request failed with status code "+n.status,[Me.ERR_BAD_REQUEST,Me.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function f4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function m4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Mu=(e,t,n=3)=>{let r=0;const s=m4(50,250);return h4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},hy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},gy=e=>(...t)=>V.asap(()=>e(...t)),g4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,x4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&l.push(`path=${r}`),V.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),V.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function v4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function y4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function FS(e,t,n){let r=!v4(t);return e&&(r||n==!1)?y4(e,t):t}const xy=e=>e instanceof Yn?{...e}:e;function Fi(e,t){t=t||{};const n={};function r(u,d,p,f){return V.isPlainObject(u)&&V.isPlainObject(d)?V.merge.call({caseless:f},u,d):V.isPlainObject(d)?V.merge({},d):V.isArray(d)?d.slice():d}function s(u,d,p,f){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!V.isUndefined(d))return r(void 0,d)}function a(u,d){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(xy(u),xy(d),p,!0)};return V.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);V.isUndefined(f)&&p!==l||(n[d]=f)}),n}const BS=e=>{const t=Fi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Yn.from(a),t.url=LS(FS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),V.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&V.isFunction(r)&&(r=r(t)),r||r!==!1&&g4(t.url))){const c=s&&i&&x4.read(i);c&&a.set(s,c)}return t},_4=typeof XMLHttpRequest<"u",b4=_4&&function(e){return new Promise(function(n,r){const s=BS(e);let i=s.data;const a=Yn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Yn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),R={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};IS(function(A){n(A),v()},function(A){r(A),v()},R),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Me("Request aborted",Me.ECONNABORTED,e,b)),b=null)},b.onerror=function(S){const R=S&&S.message?S.message:"Network Error",E=new Me(R,Me.ERR_NETWORK,e,b);E.event=S||null,r(E),b=null},b.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const R=s.transitional||DS;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new Me(S,R.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&V.forEach(a.toJSON(),function(S,R){b.setRequestHeader(R,S)}),V.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Mu(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Mu(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=f4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Me("Unsupported protocol "+y+":",Me.ERR_BAD_REQUEST,e));return}b.send(i||null)})},w4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Me?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Me(`timeout ${t} of ms exceeded`,Me.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>V.asap(l),c}},k4=function*(e,t){let n=e.byteLength;if(n{const s=S4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},yy=64*1024,{isFunction:gc}=V,C4=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:_y,TextEncoder:by}=V.global,wy=(e,...t)=>{try{return!!e(...t)}catch{return!1}},j4=e=>{e=V.merge.call({skipUndefined:!0},C4,e);const{fetch:t,Request:n,Response:r}=e,s=t?gc(t):typeof fetch=="function",i=gc(n),a=gc(r);if(!s)return!1;const l=s&&gc(_y),c=s&&(typeof by=="function"?(g=>v=>g.encode(v))(new by):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&wy(()=>{let g=!1;const v=new n(Cn.origin,{body:new _y,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&wy(()=>V.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Me(`Response type '${g}' is not supported`,Me.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(V.isBlob(g))return g.size;if(V.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(V.isArrayBufferView(g)||V.isArrayBuffer(g))return g.byteLength;if(V.isURLSearchParams(g)&&(g=g+""),V.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=V.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:S,onDownloadProgress:R,onUploadProgress:E,responseType:A,headers:D,withCredentials:z="same-origin",fetchOptions:j}=BS(g),H=t||fetch;A=A?(A+"").toLowerCase():"text";let X=w4([y,_&&_.toAbortSignal()],S),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let fe;try{if(E&&u&&b!=="get"&&b!=="head"&&(fe=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),de;if(V.isFormData(x)&&(de=se.headers.get("content-type"))&&D.setContentType(de),se.body){const[L,be]=hy(fe,Mu(gy(E)));x=vy(se.body,yy,L,be)}}V.isString(z)||(z=z?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?z:void 0};re=i&&new n(v,oe);let B=await(i?H(re,j):H(v,oe));const Y=d&&(A==="stream"||A==="response");if(d&&(R||Y&&le)){const se={};["status","statusText","headers"].forEach(Le=>{se[Le]=B[Le]});const de=V.toFiniteNumber(B.headers.get("content-length")),[L,be]=R&&hy(de,Mu(gy(R),!0))||[];B=new r(vy(B.body,yy,L,()=>{be&&be(),le&&le()}),se)}A=A||"text";let N=await p[V.findKey(p,A)||"text"](B,g);return!Y&&le&&le(),await new Promise((se,de)=>{IS(se,de,{data:N,headers:Yn.from(B.headers),status:B.status,statusText:B.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Me("Network Error",Me.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Me.from(xe,xe&&xe.code,g,re)}}},N4=new Map,US=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=N4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:j4(t)),d=u;return u};US();const Lg={http:qM,xhr:b4,fetch:{get:US}};V.forEach(Lg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const ky=e=>`- ${e}`,P4=e=>V.isFunction(e)||e===null||e===!1;function R4(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(ky).join(` +`):" "+ky(a[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const VS={getAdapter:R4,adapters:Lg};function Pp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function Sy(e){return Pp(e),e.headers=Yn.from(e.headers),e.data=Np.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),VS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Pp(e),r.data=Np.call(e,e.transformResponse,r),r.headers=Yn.from(r.headers),r},function(r){return OS(r)||(Pp(e),r&&r.response&&(r.response.data=Np.call(e,e.transformResponse,r.response),r.response.headers=Yn.from(r.response.headers))),Promise.reject(r)})}const zS="1.13.2",Sd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Sd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ey={};Sd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+zS+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Me(s(a," has been removed"+(n?" in "+n:"")),Me.ERR_DEPRECATED);return n&&!Ey[a]&&(Ey[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};Sd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function A4(e,t,n){if(typeof e!="object")throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Me("option "+i+" must be "+c,Me.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Me("Unknown option "+i,Me.ERR_BAD_OPTION)}}const Gc={assertOptions:A4,validators:Sd},qr=Gc.validators;let Ti=class{constructor(t){this.defaults=t||{},this.interceptors={request:new fy,response:new fy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fi(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Gc.assertOptions(r,{silentJSONParsing:qr.transitional(qr.boolean),forcedJSONParsing:qr.transitional(qr.boolean),clarifyTimeoutError:qr.transitional(qr.boolean)},!1),s!=null&&(V.isFunction(s)?n.paramsSerializer={serialize:s}:Gc.assertOptions(s,{encode:qr.function,serialize:qr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gc.assertOptions(n,{baseUrl:qr.spelling("baseURL"),withXsrfToken:qr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&V.merge(i.common,i[n.method]);i&&V.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Yn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[Sy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 $S(function(s){t=s}),cancel:t}}};function L4(e){return function(n){return e.apply(null,n)}}function D4(e){return V.isObject(e)&&e.isAxiosError===!0}const Cm={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(Cm).forEach(([e,t])=>{Cm[t]=e});function HS(e){const t=new Ti(e),n=bS(Ti.prototype.request,t);return V.extend(n,Ti.prototype,t,{allOwnKeys:!0}),V.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return HS(Fi(e,s))},n}const qt=HS(Rl);qt.Axios=Ti;qt.CanceledError=Ha;qt.CancelToken=T4;qt.isCancel=OS;qt.VERSION=zS;qt.toFormData=kd;qt.AxiosError=Me;qt.Cancel=qt.CanceledError;qt.all=function(t){return Promise.all(t)};qt.spread=L4;qt.isAxiosError=D4;qt.mergeConfig=Fi;qt.AxiosHeaders=Yn;qt.formToJSON=e=>MS(V.isHTMLForm(e)?new FormData(e):e);qt.getAdapter=VS.getAdapter;qt.HttpStatusCode=Cm;qt.default=qt;const{Axios:F8,AxiosError:B8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=qt,ye=qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),jm="lakemeter:session-expired";function Ur(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let Nm=!1;const M4=()=>{Nm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),Nm||(Nm=!0,window.dispatchEvent(new CustomEvent(jm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const O4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Cy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},I4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},F4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},B4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},U4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},V4=async e=>{await ye.delete(`/estimates/${e}`)},z4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},$4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},H4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},q4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},W4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},G4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},K4=async e=>{await ye.delete(`/line-items/${e}`)},Q4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},Y4=async e=>{await ye.post("/estimates/reorder",e)},X4=async()=>{const{data:e}=await ye.get("/workload-types");return e},xc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},J4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Ur(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},Z4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},eO=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},tO=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},nO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},jy=async()=>{const{data:e}=await ye.get("/instances/families"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},rO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},sO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Ny=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},Py=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Ur(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ry=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Ur(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Ay=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},iO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ty=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Ur(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Pm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},qS=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Ur(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},aO=async e=>{const t=[];try{const n=await Pm(),r=5;for(let s=0;sqS(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},oO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},WS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},lO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>WS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},cO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},uO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},dO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},pO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},GS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},fO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},sE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},iE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},aE=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},oE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ly=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?gO(n):mO(n);case"ALL_PURPOSE":return t?xO(n):hO(n);case"DLT":return t?XS(n):YS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?QS(n):KS(n);case"VECTOR_SEARCH":return JS(n);case"MODEL_SERVING":return ZS(n);case"FMAPI_DATABRICKS":return eE(n);case"FMAPI_PROPRIETARY":return tE(n);case"LAKEBASE":return oE(n);case"DATABRICKS_APPS":return nE(n);case"CLEAN_ROOM":return rE(n);case"AI_PARSE":return sE(n);case"SHUTTERSTOCK_IMAGEAI":return iE(n);case"LAKEFLOW_CONNECT":return aE(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function ls(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([ls("instance-dbu-rates.json"),ls("dbu-multipliers.json"),ls("dbu-rates.json"),ls("dbsql-rates.json"),ls("dbsql-warehouse-config.json"),ls("vector-search-rates.json"),ls("model-serving-rates.json"),ls("fmapi-databricks-rates.json"),ls("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),lE()}}function lE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Rm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function cE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Dg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Dy=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function uE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Dy;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Dy;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(a.CLEAN_ROOMS_COLLABORATOR||r.toUpperCase()!=="STANDARD")&&l.add("CLEAN_ROOM"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),l.has("DLT")&&l.add("LAKEFLOW_CONNECT"),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const vc={},jO="v6",us=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(us);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(us),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(us),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(us),null;return t}catch{return localStorage.removeItem(us),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(us,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(us)}catch{}}const Rp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Ap=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Tp=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Lp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Dp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Mp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Op=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],bs=iM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"CLEAN_ROOM",display_name:"Clean Room",description:"Secure data collaboration",sku_product_type_standard:"CLEAN_ROOMS_COLLABORATOR",show_usage_runs:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"LAKEFLOW_CONNECT",display_name:"Lakeflow Connect",description:"Data ingestion pipelines",sku_product_type_standard:"DELTA_LIVE_TABLES_SERVERLESS",show_usage_runs:!0}],cloudProviders:Rp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Ap,dbsqlWarehouseTypes:[],dltEditions:Tp,fmapiProviders:Op,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Lp,vmPaymentOptions:Dp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Mp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:lE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await O4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Cy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Cy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await F4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await B4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await U4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await V4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await z4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await q4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await W4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await G4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await K4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Rp,dbsqlSizes:u.dbsqlSizes||Ap,dltEditions:u.dltEditions||Tp,fmapiProviders:u.fmapiProviders||Op,vmPricingTiers:u.vmPricingTiers||Lp,vmPaymentOptions:u.vmPaymentOptions||Dp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Mp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,S,R,E,A,D,z,j,H,X,re,le]=await Promise.all([X4().catch(()=>r.workloadTypes),Z4().catch(()=>Rp),eO().catch(()=>Ap),tO().catch(()=>Tp),nO().catch(()=>Op),dO().catch(()=>Lp),pO().catch(()=>Dp),oO().catch(()=>null),cO().catch(()=>null),Ay().catch(()=>Mp),Promise.resolve([]),Ty(s).catch(()=>[]),xc("aws").catch(()=>[]),xc("azure").catch(()=>[]),xc("gcp").catch(()=>[]),Ry(s).catch(()=>[]),Py(s).catch(()=>[]),aO(s).catch(()=>[]),lO(s).catch(()=>[]),jy().catch(()=>[]),Ny().catch(()=>[]),Pm().catch(()=>[])]),fe={aws:R,azure:E,gcp:A},xe=R,oe={};j.forEach(se=>{const de=`${se.model}:${se.rate_type}`;oe[de]=se});const B={};H.forEach(se=>{const de=`${se.provider}:${se.model}:${se.rate_type}`;B[de]=se});const Y=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Y.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:xe,regionsMap:fe,photonMultipliers:D,vectorSearchModes:z,fmapiDatabricksRates:oe,fmapiProprietaryRates:B,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:xe,regionsMap:fe,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await J4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await jy();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ty(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Ny();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Pm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await uO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in vc){await vc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=sO({cloud:n.toUpperCase(),region:r,instance_type:s});vc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete vc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Dg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Ay();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ry(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await Py(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await qS(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await WS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ly(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ly(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await XS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await YS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await QS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await KS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await JS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await ZS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await eE({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await tE({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await oE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await nE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"CLEAN_ROOM":c=await rE({...l,collaborators:n.clean_room_collaborators||1,days_per_month:n.days_per_month||30});break;case"AI_PARSE":c=await sE({...l,mode:n.ai_parse_mode||"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1,hours_per_month:n.hours_per_month||0});break;case"SHUTTERSTOCK_IMAGEAI":c=await iE({...l,images_per_month:n.shutterstock_images||100});break;case"LAKEFLOW_CONNECT":c=await aE({...l,dlt_edition:"ADVANCED",runs_per_day:n.runs_per_day||void 0,avg_runtime_minutes:n.avg_runtime_minutes||void 0,days_per_month:n.days_per_month||void 0,hours_per_month:n.hours_per_month||void 0,gateway_enabled:n.lakeflow_connect_gateway_enabled||!1,gateway_instance_type:n.lakeflow_connect_gateway_instance||void 0});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await $4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await H4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function My(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Oy(e.value):!1:Oy(e)}function Oy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function dE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Am(e){return e.toLowerCase()}class Xn{constructor(t,n){this.attribute=n,this.property=t}}Xn.prototype.attribute="";Xn.prototype.booleanish=!1;Xn.prototype.boolean=!1;Xn.prototype.commaOrSpaceSeparated=!1;Xn.prototype.commaSeparated=!1;Xn.prototype.defined=!1;Xn.prototype.mustUseProperty=!1;Xn.prototype.number=!1;Xn.prototype.overloadedBoolean=!1;Xn.prototype.property="";Xn.prototype.spaceSeparated=!1;Xn.prototype.space=void 0;let FO=0;const Fe=Hi(),Kt=Hi(),Tm=Hi(),ne=Hi(),yt=Hi(),_a=Hi(),tr=Hi();function Hi(){return 2**++FO}const Lm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Fe,booleanish:Kt,commaOrSpaceSeparated:tr,commaSeparated:_a,number:ne,overloadedBoolean:Tm,spaceSeparated:yt},Symbol.toStringTag,{value:"Module"})),Ip=Object.keys(Lm);class Mg extends Xn{constructor(t,n,r,s){let i=-1;if(super(t,n),Iy(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Fy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Fy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Mg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=dE([pE,BO,hE,gE,xE],"html"),Og=dE([pE,UO,hE,gE,xE],"svg");function KO(e){return e.join(" ").trim()}var Ig={},By=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,Uy="/",Vy="*",ki="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(Uy!=e.charAt(0)||Vy!=e.charAt(1))){for(var v=2;ki!=e.charAt(v)&&(Vy!=e.charAt(v)||Uy!=e.charAt(v+1));)++v;if(v+=2,ki===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:zy(v[0].replace(By,ki)),value:b?zy(b[0].replace(By,ki)):ki});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function zy(e){return e?e.replace(tI,ki):ki}var aI=iI,oI=ms&&ms.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ig,"__esModule",{value:!0});Ig.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Ed={};Object.defineProperty(Ed,"__esModule",{value:!0});Ed.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},$y=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,$y):e=e.replace(fI,$y),e.replace(dI,gI))};Ed.camelCase=xI;var vI=ms&&ms.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Ig),_I=Ed;function Dm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Dm.default=Dm;var bI=Dm;const wI=Wu(bI),vE=yE("end"),Fg=yE("start");function yE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Fg(e),n=vE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Hy(e.position):"start"in e||"end"in e?Hy(e):"line"in e||"column"in e?Mm(e):""}function Mm(e){return qy(e&&e.line)+":"+qy(e&&e.column)}function Hy(e){return Mm(e&&e.start)+"-"+Mm(e&&e.end)}function qy(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),_E="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Og:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=bE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function bE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Og,e.schema=s),e.ancestors.push(t);const i=kE(e,t.tagName,!1),a=II(e,t);let l=Vg(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),wE(e,a,i,t),Ug(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Og,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:kE(e,t.name,!0),a=FI(e,t),l=Vg(e,t);return wE(e,a,i,t),Ug(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Ug(r,Vg(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function wE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Ug(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Fg(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=BI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function FI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Vg(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(or(e,e.length,0,t),e):t}const Ky={}.hasOwnProperty;function EE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Or(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Bn=di(/[A-Za-z]/),Nn=di(/[\dA-Za-z]/),KI=di(/[#-'*+\--9=?A-Z^-~]/);function Ou(e){return e!==null&&(e<32||e===127)}const Om=di(/\d/),QI=di(/[\dA-Fa-f]/),YI=di(/[!-/:-@[-`{-~]/);function je(e){return e!==null&&e<-2}function ht(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const Cd=di(new RegExp("\\p{P}|\\p{S}","u")),Bi=di(/\s/);function di(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Ye(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return He(c)?(e.enter(n),l(c)):t(c)}function l(c){return He(c)&&i++a))return;const A=t.events.length;let D=A,z,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if(z){j=t.events[D][1].end;break}z=!0}for(x(r),E=A;E_;){const R=n[S];t.containerState=R[1],R[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tF(e,t,n){return Ye(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||ht(e)||Bi(e))return 1;if(Cd(e))return 2}function jd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Yy(p,-c),Yy(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=yr(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=yr(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=yr(u,jd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=yr(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=yr(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,or(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&He(E)?Ye(e,y,"linePrefix",i+1)(E):y(E)}function y(E){return E===null||je(E)?e.check(Xy,v,S)(E):(e.enter("codeFlowValue"),_(E))}function _(E){return E===null||je(E)?(e.exit("codeFlowValue"),y(E)):(e.consume(E),_)}function S(E){return e.exit("codeFenced"),t(E)}function R(E,A,D){let z=0;return j;function j(fe){return E.enter("lineEnding"),E.consume(fe),E.exit("lineEnding"),H}function H(fe){return E.enter("codeFencedFence"),He(fe)?Ye(E,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(fe):X(fe)}function X(fe){return fe===l?(E.enter("codeFencedFenceSequence"),re(fe)):D(fe)}function re(fe){return fe===l?(z++,E.consume(fe),re):z>=a?(E.exit("codeFencedFenceSequence"),He(fe)?Ye(E,le,"whitespace")(fe):le(fe)):D(fe)}function le(fe){return fe===null||je(fe)?(E.exit("codeFencedFence"),A(fe)):D(fe)}}}function fF(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hF},mF={partial:!0,tokenize:gF};function hF(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Ye(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):je(u)?e.attempt(mF,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||je(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gF(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):je(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Ye(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):je(a)?s(a):n(a)}}const xF={name:"codeText",previous:yF,resolve:vF,tokenize:_F};function vF(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function AE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Ou(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||je(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||ht(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):je(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||je(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!He(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function LE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):je(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Ye(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||je(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return je(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):He(s)?Ye(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NF={name:"definition",tokenize:RF},PF={partial:!0,tokenize:AF};function RF(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return TE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Or(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return ht(h)?Do(e,u)(h):u(h)}function u(h){return AE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PF,p,p)(h)}function p(h){return He(h)?Ye(e,f,"whitespace")(h):f(h)}function f(h){return h===null||je(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AF(e,t,n){return r;function r(l){return ht(l)?Do(e,s)(l):n(l)}function s(l){return LE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return He(l)?Ye(e,a,"whitespace")(l):a(l)}function a(l){return l===null||je(l)?t(l):n(l)}}const TF={name:"hardBreakEscape",tokenize:LF};function LF(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return je(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DF={name:"headingAtx",resolve:MF,tokenize:OF};function MF(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},or(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OF(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||ht(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||je(d)?(e.exit("atxHeading"),t(d)):He(d)?Ye(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||ht(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Zy=["pre","script","style","textarea"],FF={concrete:!0,name:"htmlFlow",resolveTo:VF,tokenize:zF},BF={partial:!0,tokenize:HF},UF={partial:!0,tokenize:$F};function VF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zF(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):Bn(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):Bn(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const be="CDATA[";return L===be.charCodeAt(l++)?(e.consume(L),l===be.length?r.interrupt?t:X:g):n(L)}function v(L){return Bn(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||ht(L)){const be=L===47,Le=a.toLowerCase();return!be&&!i&&Zy.includes(Le)?(s=1,r.interrupt?t(L):X(L)):IF.includes(a.toLowerCase())?(s=6,be?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return He(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||Bn(L)?(e.consume(L),S):He(L)?(e.consume(L),_):j(L)}function S(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),S):R(L)}function R(L){return L===61?(e.consume(L),E):He(L)?(e.consume(L),R):_(L)}function E(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,A):He(L)?(e.consume(L),E):D(L)}function A(L){return L===c?(e.consume(L),c=null,z):L===null||je(L)?n(L):(e.consume(L),A)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||ht(L)?R(L):(e.consume(L),D)}function z(L){return L===47||L===62||He(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||je(L)?X(L):He(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Y):je(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(BF,de,re)(L)):L===null||je(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UF,le,de)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),fe}function fe(L){return L===null||je(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",B):X(L)}function B(L){if(L===62){const be=a.toLowerCase();return Zy.includes(be)?(e.consume(L),se):X(L)}return Bn(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),B):X(L)}function Y(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||je(L)?(e.exit("htmlFlowData"),de(L)):(e.consume(L),se)}function de(L){return e.exit("htmlFlow"),t(L)}}function $F(e,t,n){const r=this;return s;function s(a){return je(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HF(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qF={name:"htmlText",tokenize:WF};function WF(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),R):N===63?(e.consume(N),_):Bn(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):Bn(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):je(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):je(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):je(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),S):je(N)?(a=_,oe(N)):(e.consume(N),_)}function S(N){return N===62?xe(N):_(N)}function R(N){return Bn(N)?(e.consume(N),E):n(N)}function E(N){return N===45||Nn(N)?(e.consume(N),E):A(N)}function A(N){return je(N)?(a=A,oe(N)):He(N)?(e.consume(N),A):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||ht(N)?z(N):n(N)}function z(N){return N===47?(e.consume(N),xe):N===58||N===95||Bn(N)?(e.consume(N),j):je(N)?(a=z,oe(N)):He(N)?(e.consume(N),z):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):je(N)?(a=H,oe(N)):He(N)?(e.consume(N),H):z(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):je(N)?(a=X,oe(N)):He(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,fe):N===null?n(N):je(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||ht(N)?z(N):(e.consume(N),le)}function fe(N){return N===47||N===62||ht(N)?z(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),B}function B(N){return He(N)?Ye(e,Y,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Y(N)}function Y(N){return e.enter("htmlTextData"),a(N)}}const Hg={name:"labelEnd",resolveAll:YF,resolveTo:XF,tokenize:JF},GF={tokenize:ZF},KF={tokenize:eB},QF={tokenize:tB};function YF(e){let t=-1;const n=[];for(;++t=3&&(u===null||je(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),He(u)?Ye(e,l,"whitespace")(u):l(u))}}const $n={continuation:{tokenize:dB},exit:fB,name:"list",tokenize:uB},lB={partial:!0,tokenize:mB},cB={partial:!0,tokenize:pB};function uB(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Om(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Kc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Om(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lB,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return He(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dB(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ye(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!He(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cB,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ye(e,e.attempt($n,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pB(e,t,n){const r=this;return Ye(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fB(e){e.exit(this.containerState.type)}function mB(e,t,n){const r=this;return Ye(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!He(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const e_={name:"setextUnderline",resolveTo:hB,tokenize:gB};function hB(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gB(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),He(u)?Ye(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||je(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xB={tokenize:vB};function vB(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Ye(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kF,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yB={resolveAll:ME()},_B=DE("string"),bB=DE("text");function DE(e){return{resolveAll:ME(e==="text"?wB:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MB(e,t){let n=-1;const r=[];let s;for(;++n0){const Be=K.tokenStack[K.tokenStack.length-1];(Be[1]||n_).call(K,void 0,Be[0])}for(F.position={start:Ms(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Ms(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},Ee=-1;++Ee0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function FE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return FE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return FE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):BE(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Fg(t.children[1]),c=vE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(i_(t.slice(s),s>0,!1)),i.join("")}function i_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===r_||i===s_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===r_||i===s_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WB,break:GB,code:KB,delete:QB,emphasis:YB,footnoteReference:XB,heading:JB,html:ZB,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:yc,yaml:yc,definition:yc,footnoteDefinition:yc};function yc(){}const UE=-1,Nd=0,Mo=1,Iu=2,qg=3,Wg=4,Gg=5,Kg=6,VE=7,zE=8,a_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case Nd:case UE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Iu:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case qg:return n(new Date(a),s);case Wg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Gg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Kg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case VE:{const{name:l,message:c}=a;return n(new a_[l](c),s)}case zE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new a_[i](a),s)};return r},o_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[Nd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Iu,Ki];case"Date":return[qg,Ki];case"RegExp":return[Wg,Ki];case"Map":return[Gg,Ki];case"Set":return[Kg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[VE,n]:[Iu,n]},_c=([e,t])=>e===Nd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case Nd:{let d=a;switch(c){case"bigint":l=zE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([UE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Iu:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!_c(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case qg:return s([l,a.toISOString()],a);case Wg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Gg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(_c(uo(f))||_c(uo(h))))&&d.push([i(f),i(h)]);return p}case Kg:{const d=[],p=s([l,d],a);for(const f of a)(e||!_c(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},l_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Fu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?o_(l_(e,t)):structuredClone(e):(e,t)=>o_(l_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Fu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Pd=function(e){if(e==null)return N6;if(typeof e=="function")return Rd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=$E,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Fm))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function c_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function u_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function B6(e,t){return e&&"run"in e?async function(n,r){const s=u_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return u_(n,{file:r,...e||t})}}function d_(e){if(e)throw e}var Qc=Object.prototype.hasOwnProperty,qE=Object.prototype.toString,p_=Object.defineProperty,f_=Object.getOwnPropertyDescriptor,m_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):qE.call(t)==="[object Array]"},h_=function(t){if(!t||qE.call(t)!=="[object Object]")return!1;var n=Qc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Qc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Qc.call(t,s)},g_=function(t,n){p_&&n.name==="__proto__"?p_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},x_=function(t,n){if(n==="__proto__")if(Qc.call(t,n)){if(f_)return f_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Gr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Vm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Vm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Um(v)&&Um(h)&&(h=Vp(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Yg().freeze();function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Wp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Gp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function y_(e){if(!Um(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function __(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function bc(e){return rU(e)?e:new WE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",b_=[],w_={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||b_,n=e.remarkPlugins||b_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...w_}:w_;return nU().use(qB).use(n).use(B6,r).use(t)}function dU(e){const t=e.children||"",n=new WE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Qg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Fp)if(Object.hasOwn(Fp,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Fp[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function k_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Pd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:E}:void 0),E===!1?f.lastIndex=S+1:(g!==S&&y.push({type:"text",value:u.value.slice(g,S)}),Array.isArray(E)?y.push(...E):E&&y.push(E),g=S+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=k_(e,"(");let i=k_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function GE(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Bi(n)||Cd(n))&&(!t||n!==47)}KE.peek=BU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Or(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Or(this.sliceSerialize(e)).toLowerCase(),n.label=t}function FU(e){this.exit(e)}function BU(){return"["}function KE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:FU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:KE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?QE:zU))),u(),c}}function zU(e,t,n){return t===0?e:QE(e,t,n)}function QE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];YE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:YE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function YE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return E_(e,t.inConstruct,!0)&&!E_(e,t.notInConstruct,!1)}function E_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Xg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}XE.peek=l7;function XE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Qg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Fm}),!!((!e.depth||e.depth<3)&&zg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}JE.peek=d7;function JE(e){return e.value||""}function d7(){return"<"}ZE.peek=p7;function ZE(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}eC.peek=f7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}tC.peek=m7;function tC(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}rC.peek=h7;function rC(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(nC(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return nC(e,n)?"<":"["}sC.peek=g7;function sC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Jg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Jg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function iC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Jg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),iC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Pd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}aC.peek=C7;function aC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(iC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const oC={blockquote:JU,break:C_,code:s7,definition:a7,emphasis:XE,hardBreak:C_,heading:u7,html:JE,image:ZE,imageReference:eC,inlineCode:tC,link:rC,linkReference:sC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:aC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:j_,tableHeader:j_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Xp,tableHeader:Xp,tableRow:Xp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Xp(e){this.exit(e)}function j_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Or(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||ht(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Or(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return ht(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||ht(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Or(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return ht(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Ye(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Ye(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?E:c;return re===E&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):je(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):He(j)?Ye(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||ht(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,He(j)?Ye(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):R(j)}function v(j){return He(j)?Ye(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||je(j)?S(j):R(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):R(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return He(j)?Ye(e,S,"whitespace")(j):S(j)}function S(j){return j===124?g(j):j===null||je(j)?!a||s!==i?R(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):R(j)}function R(j){return n(j)}function E(j){return e.enter("tableRow"),A(j)}function A(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),A):j===null||je(j)?(e.exit("tableRow"),t(j)):He(j)?Ye(e,A,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||ht(j)?(e.exit("data"),A(j)):(e.consume(j),j===92?z:D)}function z(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function P_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return ht(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return je(c)?t(c):He(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Ye(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return EE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[S,R]=m.useState([]),[E,A]=m.useState([]),[D,z]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,fe]=m.useState(!1),[xe,oe]=m.useState(380),[B,Y]=m.useState(!1),[N,se]=m.useState(!0),[de,L]=m.useState(null),[be,Le]=m.useState(""),[w,q]=m.useState(null),ce=l??xe,_e=c??oe,ve=m.useRef(null),at=m.useRef(null),Xe=m.useRef(null),I=m.useRef(null),nt=m.useRef(null),gt=m.useRef(!1),ot=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(J=>{const Te=J.item_id||J.line_item_id,Ve=a[Te];Ve!=null&&Ve.total&&(U+=Ve.total)}),U},[a,i]),ft=m.useCallback(U=>{U.preventDefault(),Y(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!B)return;const Ve=window.innerWidth-Te.clientX,Q=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,Ve),Q))},J=()=>{Y(!1)};return B&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",J),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",J),document.body.style.cursor="",document.body.style.userSelect=""}},[B]);const G=m.useCallback(U=>{h(U.target.value);const J=U.target;J.style.height="auto",J.style.height=Math.min(J.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;gt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(gt.current=!1)},[g]);const k=m.useCallback(()=>{const U=at.current;if(!U)return;const J=U.scrollHeight-U.scrollTop-U.clientHeight<100;gt.current=!J},[]);m.useEffect(()=>{var U;e&&((U=Xe.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const J=[...U],Te=J.length-1;return Te>=0&&J[Te].isStreaming&&(J[Te]={...J[Te],isStreaming:!1,isThinking:!1,content:J[Te].content+` + +*[Generation stopped]*`}),J}))},[]),W=m.useCallback((U,J)=>{L(U),Le(J)},[]),ke=m.useCallback(()=>{L(null),Le("")},[]),Ne=m.useCallback(async(U,J)=>{try{await navigator.clipboard.writeText(J),q(U),setTimeout(()=>q(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,F]=m.useState(null),[K,ae]=m.useState(!1),Ee=m.useCallback(async U=>{if(!be.trim()||d.findIndex(Q=>Q.id===U)===-1)return;const Te=be.trim();if(A([]),L(null),Le(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const Ve={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([Ve]),F(Te),ae(!0)},[be,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,ot,ie]);const Be=m.useCallback(async(U,J)=>{var ct;const Te=U||f.trim();if(!Te||g)return;const Ve={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:J||!1};p(et=>[...et,Ve]),h(""),v(!0),re(null);const Q=`assistant-${Date.now()}`;p(et=>[...et,{id:Q,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const et=(i||S||[]).map(Oe=>{const De=Oe.line_item_id||Oe.item_id||Oe.draft_id,Pe=a==null?void 0:a[De];return{...Oe,total_cost:(Pe==null?void 0:Pe.total)||Oe.total_cost||0,dbu_cost:(Pe==null?void 0:Pe.dbu)||Oe.dbu_cost||0,vm_cost:(Pe==null?void 0:Pe.vm)||Oe.vm_cost||0}}),It=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:Ve.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:et,mode:u,stream:!0}),signal:I.current.signal});if(!It.ok)throw new Error(`HTTP ${It.status}: ${It.statusText}`);const pt=(ct=It.body)==null?void 0:ct.getReader();if(!pt)throw new Error("No response body");const xt=new TextDecoder;let St="",mt="",Ue=[];for(;;){const{done:Oe,value:De}=await pt.read();if(Oe)break;St+=xt.decode(De,{stream:!0});const Pe=St.split(` +`);St=Pe.pop()||"";for(const Wt of Pe)if(Wt.startsWith("data: ")){const Et=Wt.slice(6);if(Et==="[DONE]")continue;try{const Se=JSON.parse(Et);if(Se.type==="start")x(Se.conversation_id);else if(Se.type==="content")mt+=Se.content,p(Ct=>Ct.map(on=>on.id===Q?{...on,content:mt,isThinking:!1}:on));else if(Se.type==="tool_result")Ue.push({tool:Se.tool,result:Se.result});else if(Se.type==="proposal")Se.workload&&Se.workload.proposal_id&&A(Ct=>Ct.some(qi=>qi.proposal_id===Se.workload.proposal_id)?Ct:[...Ct,Se.workload]);else if(Se.type==="done")mt.includes("Error getting response")||mt.includes("AI service error")||(Se.estimate&&_(Se.estimate),Se.workloads&&R(Se.workloads),Se.proposed_workloads&&Se.proposed_workloads.length>0&&A(Se.proposed_workloads));else if(Se.type==="error")throw new Error(Se.content)}catch{}}}p(Oe=>Oe.map(De=>De.id===Q?{...De,content:mt,isStreaming:!1,toolResults:Ue}:De))}catch(et){if(et.name==="AbortError")return;console.error("Chat error:",et),re(et.message||"Failed to get response"),p(It=>It.filter(pt=>pt.id!==Q))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,S,a]);m.useEffect(()=>{O&&!g&&(Be(O,K),F(null),ae(!1))},[O,K,g,Be]);const dt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Be())},rt=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),R([]),A([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ge=async U=>{if(b){z(J=>new Set(J).add(U));try{const J=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!J.ok)throw new Error("Failed to confirm workload");const Te=await J.json();if(A(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p(Ve=>{var Q;return[...Ve,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(Q=Te.workload_config)==null?void 0:Q.workload_name}" added to estimate.`,timestamp:new Date}]})}catch(Ve){p(Q=>[...Q,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${Ve.message||"Database error"}. Please try again.`,timestamp:new Date}]),re(Ve.message||"Failed to add workload to database")}}catch(J){re(J.message||"Failed to confirm workload")}finally{z(J=>{const Te=new Set(J);return Te.delete(U),Te})}}},lt=async U=>{if(b){z(J=>new Set(J).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=E.find(Ve=>Ve.proposal_id===U);A(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),p(Ve=>[...Ve,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(J){re(J.message||"Failed to reject workload")}finally{z(J=>{const Te=new Set(J);return Te.delete(U),Te})}}},Ke=async()=>{for(const U of E)await Ge(U.proposal_id)},Ot=async()=>{for(const U of E)await lt(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>fe(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx(Hc,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(ps,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:nt,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ce}px)`},children:[o.jsx("div",{onMouseDown:ft,className:ue("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",B&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(dS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(fs,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:rt,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(tn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(YD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(FD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[ot>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",ot.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),E.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ry,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[E.length," Proposed Workload",E.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(rr,{className:"w-4 h-4 text-amber-600"}):o.jsx(ps,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Ke,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",E.length,")"]}),o.jsx("button",{onClick:Ot,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:E.map(U=>{const J=D.has(U.proposal_id);return o.jsx("div",{className:ue("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",J&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:J?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ge(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Tu,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>lt(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:at,onScroll:k,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:ue("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:ue("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&de===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:be,onChange:J=>Le(J.target.value),onKeyDown:J=>{J.key==="Enter"&&!J.shiftKey&&(J.preventDefault(),Ee(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:ke,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>Ee(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Ws,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:ue("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:J})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:J}),h2:({children:J})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:J}),h3:({children:J})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:J}),p:({children:J})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:J}),ul:({children:J})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:J}),ol:({children:J})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:J}),li:({children:J})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:J}),strong:({children:J})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:J}),em:({children:J})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:J}),code:({className:J,children:Te})=>(J==null?void 0:J.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:J})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:J}),blockquote:({children:J})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:J}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:J,children:Te})=>o.jsx("a",{href:J,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((J,Te)=>{var Ve;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[(Ve=J.result)!=null&&Ve.success?o.jsx(Tu,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Yr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:J.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:ue("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Ne(U.id,U.content),className:ue("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(SD,{className:"w-3.5 h-3.5"}):o.jsx(CD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>W(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(s3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ry,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:rt,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(rr,{className:"w-3 h-3"}):o.jsx(ps,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,J)=>o.jsx("button",{onClick:()=>Be(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},J))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Xe,value:f,onChange:G,onKeyDown:dt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Be(),disabled:!g&&!f.trim(),className:ue("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(fS,{className:"w-4 h-4"}):o.jsx(e3,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Pg},{name:"New Estimate",href:"/calculator",icon:c3}],R_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Jp=[{value:"light",label:"Light",icon:b3},{value:"dark",label:"Dark",icon:JD},{value:"system",label:"System",icon:AD}],kc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=T3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(kc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(kc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),S=m.useRef(null),{currentUser:R,isAuthenticated:E,authError:A,fetchCurrentUser:D,currentEstimate:z,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:fe,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:B}=bs(),Y=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Y||N,de=m.useCallback(()=>{M4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const q=ce=>{var _e;console.log("Session expired event received:",ce.detail),g(((_e=ce.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(jm,q),()=>{window.removeEventListener(jm,q)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(kc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),be=m.useCallback(()=>{a(!i),x||(localStorage.setItem(kc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||fe(),B||xe()},[fe,xe,oe,B]),m.useEffect(()=>{const q=ce=>{_.current&&!_.current.contains(ce.target)&&s(!1),S.current&&!S.current.contains(ce.target)&&a(!1)};return document.addEventListener("mousedown",q),()=>document.removeEventListener("mousedown",q)},[]);const Le=Jp.find(q=>q.value===t)||Jp[2],w=Le.icon;return A?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(R_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:A}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(wu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(R_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(q=>{const ce=e.pathname===q.href||q.href!=="/"&&e.pathname.startsWith(q.href);return o.jsxs(wu,{to:q.href,className:ue("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ce&&"border"),style:ce?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(q.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:q.name})]},q.name)})}),E&&R&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(C3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:R.full_name||R.email,children:R.full_name||R.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:Le.label}),o.jsx(rr,{className:ue("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Jp.map(q=>{const ce=q.icon,_e=t===q.value;return o.jsxs("button",{onClick:()=>{n(q.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ce,{className:"w-4 h-4"}),o.jsx("span",{children:q.label})]},q.value)})})]}),o.jsxs("div",{className:"relative",ref:S,children:[o.jsxs("button",{onClick:be,className:ue("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(p3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(rm,{children:i&&o.jsxs(Ut.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(UD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(bm,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx(Ut.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(jN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Y?z:void 0,currentWorkloads:Y?j:void 0,itemCosts:Y?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Y?async q=>{if(z!=null&&z.estimate_id)try{await X({estimate_id:z.estimate_id,...q}),re(z.estimate_id),$e.success(`Workload "${q.workload_name}" added!`)}catch(ce){throw $e.error(ce.message||"Failed to add workload"),ce}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(rm,{children:p&&o.jsx(Ut.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs(Ut.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(fs,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:de,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Yr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Ad=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function ex(e){return"nodeType"in e}function Jn(e){var t,n;return e?Ga(e)?e:ex(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function tx(e){const{Document:t}=Jn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Jn(e).HTMLElement}function gC(e){return e instanceof Jn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:ex(e)?tx(e)?e:Dl(e)||gC(e)?e.ownerDocument:document:document:document}const ts=Ad?m.useLayoutEffect:m.useEffect;function nx(e){const t=m.useRef(e);return ts(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return ts(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Uu(e){const t=nx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function $m(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Zp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Zp[e]==null?0:Zp[e]+1;return Zp[e]=n,e+"-"+n},[e,t])}function xC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=xC(1),Vu=xC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function rx(e){if(!e)return!1;const{KeyboardEvent:t}=Jn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Jn(e.target);return t&&e instanceof t}function Hm(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),A_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(A_)?e:e.querySelector(A_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const vC=m.createContext(null);function OV(e){const t=m.useContext(vC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const FV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},BV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=BV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=FV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var rn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(rn||(rn={}));function zu(){}function $u(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function yC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function T_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const _C=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=T_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(T_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function bC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Jn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function L_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Jn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Jn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function sx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(tx(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||gC(s)||n.includes(s))return n;const i=Jn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function wC(e){const[t]=sx(e,1);return t??null}function ef(e){return!Ad||!e?null:Ga(e)?e:ex(e)?tx(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function kC(e){return Ga(e)?e.scrollX:e.scrollLeft}function SC(e){return Ga(e)?e.scrollY:e.scrollTop}function qm(e){return{x:kC(e),y:SC(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function EC(e){return!Ad||!e?!1:e===document.scrollingElement}function CC(e){const t={x:0,y:0},n=EC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=CC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function jC(e){return e.reduce((t,n)=>ba(t,qm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+kC(n),0)}function az(e){return e.reduce((t,n)=>t+SC(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);wC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class ix{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=sx(n),s=jC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Jn(e);return e instanceof t?e:Ka(e)}function tf(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var gr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(gr||(gr={}));function D_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var tt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(tt||(tt={}));const NC={start:[tt.Space,tt.Enter],cancel:[tt.Esc],end:[tt.Space,tt.Enter,tt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case tt.Right:return{...n,x:n.x+25};case tt.Left:return{...n,x:n.x-25};case tt.Down:return{...n,y:n.y+25};case tt.Up:return{...n,y:n.y-25}}};class Td{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Jn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(gr.Resize,this.handleCancel),this.windowListeners.add(gr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(gr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(rx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=NC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Vu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:S,maxScroll:R,minScroll:E}=CC(v),A=sz(v),D={x:Math.min(b===tt.Right?A.right-A.width/2:A.right,Math.max(b===tt.Right?A.left:A.left+A.width/2,p.x)),y:Math.min(b===tt.Down?A.bottom-A.height/2:A.bottom,Math.max(b===tt.Down?A.top:A.top+A.height/2,p.y))},z=b===tt.Right&&!y||b===tt.Left&&!_,j=b===tt.Down&&!S||b===tt.Up&&!x;if(z&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===tt.Right&&H<=R.x||b===tt.Left&&H>=E.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===tt.Right?v.scrollLeft-R.x:v.scrollLeft-E.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===tt.Down&&H<=R.y||b===tt.Up&&H>=E.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===tt.Down?v.scrollTop-R.y:v.scrollTop-E.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Vu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Td.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=NC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function M_(e){return!!(e&&"distance"in e)}function O_(e){return!!(e&&"delay"in e)}class ax{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Jn(a)),this.initialCoordinates=(s=Hm(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(gr.Resize,this.handleCancel),this.windowListeners.add(gr.DragStart,D_),this.windowListeners.add(gr.VisibilityChange,this.handleCancel),this.windowListeners.add(gr.ContextMenu,D_),this.documentListeners.add(gr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(O_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(M_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(gr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(gr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=Hm(t))!=null?n:Fr,u=Vu(s,c);if(!r&&l){if(M_(l)){if(l.tolerance!=null&&tf(u,l.tolerance))return this.handleCancel();if(tf(u,l.distance))return this.handleStart()}if(O_(l)&&tf(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===tt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ld extends ax{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Ld.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var Wm;(function(e){e[e.RightClick=2]="RightClick"})(Wm||(Wm={}));class mz extends ax{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Wm.RightClick?!1:(r==null||r({event:n}),!0)}}];const nf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ax{constructor(t){super(t,nf)}static setup(){return window.addEventListener(nf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(nf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var Hu;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Hu||(Hu={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=Hu.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),S=m.useCallback(()=>{const E=_.current;if(!E)return;const A=b.current.x*x.current.x,D=b.current.y*x.current.y;E.scrollBy(A,D)},[]),R=m.useMemo(()=>l===Hu.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const E of R){if((r==null?void 0:r(E))===!1)continue;const A=u.indexOf(E),D=d[A];if(!D)continue;const{direction:z,speed:j}=rz(E,D,y,t,f);for(const H of["x","y"])h[H][z[H]]||(j[H]=0,z[H]=0);if(j.x>0||j.y>0){v(),_.current=E,g(S,a),b.current=j,x.current=z;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,S,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,R,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=$m(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Gm;(function(e){e.Optimized="optimized"})(Gm||(Gm={}));const I_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return I_;if(!x||x===I_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const S=_.node.current,R=S?new ix(c(S),S):null;_.rect.current=R,R&&y.set(_.id,R)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function PC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return PC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=nx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Dd(e){let{callback:t,disabled:n}=e;const r=nx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new ix(Qa(e),e)}function F_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Dd({callback:i});return ts(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=PC(e);return bC(e,t)}const B_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==B_&&e&&t.current&&e.parentNode===t.current.parentNode?r:sx(e):B_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=ef(i.target);a&&n(l=>l?(l.set(a,qm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=ef(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,qm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=ef(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):jC(e):Fr,[e,t])}function U_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Vu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Ad)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function RC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const V_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=RC(n?Jn(n):null),[s,i]=m.useState(V_);function a(){i(()=>e.length?e.map(c=>EC(c)?r:new ix(t(c),c)):V_)}const l=Dd({callback:a});return ts(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Dd({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Uu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Ld,options:{}},{sensor:Td,options:{}}],Dz={current:{}},Yc={draggable:{measure:L_},droppable:{measure:L_,strategy:fl.WhileDragging,frequency:Gm.Optimized},dragOverlay:{measure:Qa}};class Fo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Fo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:zu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Yc,measureDroppableContainers:zu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:zu,draggableNodes:new Map,over:null,measureDroppableContainers:zu},Md=m.createContext(Oz),AC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Fo}}}function Fz(e,t){switch(t.type){case rn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case rn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case rn.DragEnd:case rn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case rn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Fo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case rn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Fo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case rn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Fo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Bz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Md),i=$m(r),a=$m(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!rx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Yc.draggable,...e==null?void 0:e.draggable},droppable:{...Yc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Yc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;ts(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=bC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=wC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const TC=m.createContext({...Fr,scaleX:1,scaleY:1});var Bs;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Bs||(Bs={}));const LC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Fz,void 0,Iz),[b,x]=v,[y,_]=IV(),[S,R]=m.useState(Bs.Uninitialized),E=S===Bs.Initialized,{draggable:{active:A,nodes:D,translate:z},droppable:{containers:j}}=b,H=A!=null?D.get(A):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var Q;return A!=null?{id:A,data:(Q=H==null?void 0:H.data)!=null?Q:Dz,rect:X}:null},[A,H]),le=m.useRef(null),[fe,xe]=m.useState(null),[oe,B]=m.useState(null),Y=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),de=Vz(f),{droppableRects:L,measureDroppableContainers:be,measuringScheduled:Le}=bz(se,{dragging:E,dependencies:[z.x,z.y],config:de.droppable}),w=yz(D,A),q=m.useMemo(()=>oe?Hm(oe):null,[oe]),ce=Ve(),_e=wz(w,de.draggable.measure);zz({activeNode:A!=null?D.get(A):null,config:ce.layoutShiftCompensation,initialRect:_e,measure:de.draggable.measure});const ve=F_(w,de.draggable.measure,_e),at=F_(w?w.parentElement:null),Xe=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Xe.current.over)==null?void 0:n.id),nt=Tz({measure:de.dragOverlay.measure}),gt=(r=nt.nodeRef.current)!=null?r:w,ot=E?(s=nt.rect)!=null?s:ve:null,ft=!!(nt.nodeRef.current&&nt.rect),G=Ez(ft?null:ve),P=RC(gt?Jn(gt):null),k=Cz(E?I??w:null),ie=Rz(k),M=Uz(h,{transform:{x:z.x-G.x,y:z.y-G.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:at,draggingNodeRect:ot,over:Xe.current.over,overlayNodeRect:nt.rect,scrollableAncestors:k,scrollableAncestorRects:ie,windowRect:P}),W=q?ba(q,z):null,ke=jz(k),Ne=U_(ke),O=U_(ke,[ve]),F=ba(M,Ne),K=ot?QV(ot,M):null,ae=re&&K?p({active:re,collisionRect:K,droppableRects:L,droppableContainers:se,pointerCoordinates:W}):null,Ee=HV(ae,"id"),[Be,dt]=m.useState(null),rt=ft?M:ba(M,O),Ge=GV(rt,(i=Be==null?void 0:Be.rect)!=null?i:null,ve),lt=m.useRef(null),Ke=m.useCallback((Q,ct)=>{let{sensor:et,options:It}=ct;if(le.current==null)return;const pt=D.get(le.current);if(!pt)return;const xt=Q.nativeEvent,St=new et({active:le.current,activeNode:pt,event:xt,options:It,context:Xe,onAbort(Ue){if(!D.get(Ue))return;const{onDragAbort:De}=Y.current,Pe={id:Ue};De==null||De(Pe),y({type:"onDragAbort",event:Pe})},onPending(Ue,Oe,De,Pe){if(!D.get(Ue))return;const{onDragPending:Et}=Y.current,Se={id:Ue,constraint:Oe,initialCoordinates:De,offset:Pe};Et==null||Et(Se),y({type:"onDragPending",event:Se})},onStart(Ue){const Oe=le.current;if(Oe==null)return;const De=D.get(Oe);if(!De)return;const{onDragStart:Pe}=Y.current,Wt={activatorEvent:xt,active:{id:Oe,data:De.data,rect:X}};la.unstable_batchedUpdates(()=>{Pe==null||Pe(Wt),R(Bs.Initializing),x({type:rn.DragStart,initialCoordinates:Ue,active:Oe}),y({type:"onDragStart",event:Wt}),xe(lt.current),B(xt)})},onMove(Ue){x({type:rn.DragMove,coordinates:Ue})},onEnd:mt(rn.DragEnd),onCancel:mt(rn.DragCancel)});lt.current=St;function mt(Ue){return async function(){const{active:De,collisions:Pe,over:Wt,scrollAdjustedTranslate:Et}=Xe.current;let Se=null;if(De&&Et){const{cancelDrop:Ct}=Y.current;Se={activatorEvent:xt,active:De,collisions:Pe,delta:Et,over:Wt},Ue===rn.DragEnd&&typeof Ct=="function"&&await Promise.resolve(Ct(Se))&&(Ue=rn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:Ue}),R(Bs.Uninitialized),dt(null),xe(null),B(null),lt.current=null;const Ct=Ue===rn.DragEnd?"onDragEnd":"onDragCancel";if(Se){const on=Y.current[Ct];on==null||on(Se),y({type:Ct,event:Se})}})}}},[D]),Ot=m.useCallback((Q,ct)=>(et,It)=>{const pt=et.nativeEvent,xt=D.get(It);if(le.current!==null||!xt||pt.dndKit||pt.defaultPrevented)return;const St={active:xt};Q(et,ct.options,St)===!0&&(pt.dndKit={capturedBy:ct.sensor},le.current=It,Ke(et,ct))},[D,Ke]),U=_z(d,Ot);Nz(d),ts(()=>{ve&&S===Bs.Initializing&&R(Bs.Initialized)},[ve,S]),m.useEffect(()=>{const{onDragMove:Q}=Y.current,{active:ct,activatorEvent:et,collisions:It,over:pt}=Xe.current;if(!ct||!et)return;const xt={active:ct,activatorEvent:et,collisions:It,delta:{x:F.x,y:F.y},over:pt};la.unstable_batchedUpdates(()=>{Q==null||Q(xt),y({type:"onDragMove",event:xt})})},[F.x,F.y]),m.useEffect(()=>{const{active:Q,activatorEvent:ct,collisions:et,droppableContainers:It,scrollAdjustedTranslate:pt}=Xe.current;if(!Q||le.current==null||!ct||!pt)return;const{onDragOver:xt}=Y.current,St=It.get(Ee),mt=St&&St.rect.current?{id:St.id,rect:St.rect.current,data:St.data,disabled:St.disabled}:null,Ue={active:Q,activatorEvent:ct,collisions:et,delta:{x:pt.x,y:pt.y},over:mt};la.unstable_batchedUpdates(()=>{dt(mt),xt==null||xt(Ue),y({type:"onDragOver",event:Ue})})},[Ee]),ts(()=>{Xe.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:K,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:gt,draggingNodeRect:ot,droppableContainers:j,over:Be,scrollableAncestors:k,scrollAdjustedTranslate:F},X.current={initial:ot,translated:K}},[re,w,ae,K,D,gt,ot,L,j,Be,k,F]),gz({...ce,delta:z,draggingRect:K,pointerCoordinates:W,scrollableAncestors:k,scrollableAncestorRects:ie});const J=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:at,dragOverlay:nt,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Be,measureDroppableContainers:be,scrollableAncestors:k,scrollableAncestorRects:ie,measuringConfiguration:de,measuringScheduled:Le,windowRect:P}),[re,w,ve,oe,ae,at,nt,D,j,L,Be,be,k,ie,de,Le,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Be,measureDroppableContainers:be}),[oe,U,re,ve,x,N,D,Be,be]);return pn.createElement(vC.Provider,{value:_},pn.createElement(Md.Provider,{value:Te},pn.createElement(AC.Provider,{value:J},pn.createElement(TC.Provider,{value:Ge},u)),pn.createElement(Bz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function Ve(){const Q=(fe==null?void 0:fe.autoScrollEnabled)===!1,ct=typeof c=="object"?c.enabled===!1:c===!1,et=E&&!Q&&!ct;return typeof c=="object"?{...c,enabled:et}:{enabled:et}}}),$z=m.createContext(null),z_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Md),{role:h=z_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?TC:$z),[y,_]=Uu(),[S,R]=Uu(),E=Pz(a,t),A=pl(n);ts(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:S,data:A}),()=>{const z=p.get(t);z&&z.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===z_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:E,node:y,over:f,setNodeRef:_,setActivatorNodeRef:R,transform:x}}function Wz(){return m.useContext(AC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Md),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Dd({callback:y,disabled:g||!a}),S=m.useCallback((D,z)=>{_&&(z&&(_.unobserve(z),p.current=!1),D&&_.observe(D))},[_]),[R,E]=Uu(S),A=pl(t);return m.useEffect(()=>{!_||!R.current||(_.disconnect(),p.current=!1,_.observe(R.current))},[R,_]),m.useEffect(()=>(l({type:rn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:R,rect:f,data:A}}),()=>l({type:rn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:rn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:R,over:c,setNodeRef:E}}function ox(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function Sc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ox(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Ec={scaleX:1,scaleY:1},MC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Ec}:s=a?{x:0,y:l.height+c,...Ec}:{x:0,y:0,...Ec}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(E=>typeof E=="object"&&"id"in E?E.id:E),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,S=Jz(i);ts(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const R=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:S,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,S.draggable,S.droppable,_,h,b,c,f,s]);return pn.createElement(IC.Provider,{value:R},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ox(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},BC="transform",r8=Oa.Transition.toString({property:BC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return ts(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function UC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(IC),_=a8(r,h),S=d.indexOf(a),R=m.useMemo(()=>({sortable:{containerId:p,index:S,items:d},...s}),[p,s,S,d]),E=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:A,node:D,isOver:z,setNodeRef:j}=Qz({id:a,data:R,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:E,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:fe,listeners:xe,isDragging:oe,over:B,setActivatorNodeRef:Y,transform:N}=qz({id:a,data:R,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,fe),de=!!H,L=de&&!g&&Sc(f)&&Sc(b),be=!x&&oe,Le=be&&L?N:null,q=L?Le??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:S}):null,ce=Sc(f)&&Sc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):S,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ce,containerId:p}),at=d!==ve.current.items,Xe=t({active:H,containerId:p,isDragging:oe,isSorting:de,id:a,index:S,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Xe,index:S,node:D,rect:A});return m.useEffect(()=>{de&&ve.current.newIndex!==ce&&(ve.current.newIndex=ce),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[de,ce,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const gt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(gt)},[_e]),{active:H,activeIndex:f,attributes:le,data:R,rect:A,index:S,newIndex:ce,items:d,isOver:z,isSorting:de,isDragging:oe,listeners:xe,node:D,overIndex:b,over:B,setNodeRef:se,setActivatorNodeRef:Y,setDroppableNodeRef:j,setDraggableNodeRef:fe,transform:I??q,transition:nt()};function nt(){if(I||at&&ve.current.newIndex===S)return r8;if(!(be&&!rx(X)||!u)&&(de||Xe))return Oa.Transition.toString({...u,property:BC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}tt.Down,tt.Right,tt.Up,tt.Left;const VC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=UC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var zC={exports:{}};(function(e,t){(function(n,r){r()})(ms,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ms=="object"&&ms.global===ms?ms:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(zC);var Km=zC.exports;const Ar={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Cc={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Ar[r].text:"var(--text-muted)",backgroundColor:e===r?Ar[r].bg:"transparent"},children:[Ar[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=ud(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=bs(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[S,R]=m.useState(new Set),[E,A]=m.useState(!1),[D,z]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,fe]=m.useState(null),[xe,oe]=m.useState(!1),[B,Y]=m.useState(!1),N=yC($u(Ld,{activationConstraint:{distance:5}}),$u(Td));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),$e.success("Refreshed")},[r]),de=m.useMemo(()=>{const G=t.length,P=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="aws"}).length,k=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="gcp"}).length;return{all:G,aws:P,azure:k,gcp:ie}},[t]),L=m.useMemo(()=>{const G=t.reduce((P,k)=>P+(k.line_item_count||0),0);return{estimates:t.length,workloads:G}},[t]),be=m.useMemo(()=>{const G=new Set;return t.forEach(P=>{P.customer_name&&G.add(P.customer_name)}),Array.from(G).sort()},[t]),Le=m.useMemo(()=>{const G={all:t.length};return t.forEach(P=>{P.customer_name&&(G[P.customer_name]=(G[P.customer_name]||0)+1)}),G},[t]),w=m.useMemo(()=>{let G=[...t];if(c){const P=c.toLowerCase();G=G.filter(k=>{var ie;return k.estimate_name.toLowerCase().includes(P)||((ie=k.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(G=G.filter(P=>{var k;return((k=P.cloud)==null?void 0:k.toLowerCase())===f})),b!=="all"&&(G=G.filter(P=>P.customer_name===b)),g){case"updated":G.sort((P,k)=>new Date(k.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":G.sort((P,k)=>P.estimate_name.localeCompare(k.estimate_name));break;case"workloads":G.sort((P,k)=>(k.line_item_count||0)-(P.line_item_count||0));break;case"display_order":G.sort((P,k)=>(P.display_order??0)-(k.display_order??0));break}return G},[t,c,f,g,b]),q=m.useCallback(async G=>{const{active:P,over:k}=G;if(!k||P.id===k.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===k.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const W=ox(w,ie,M),{estimates:ke}=bs.getState(),Ne=ke.map(O=>{const F=W.findIndex(K=>K.estimate_id===O.estimate_id);return F>=0?{...O,display_order:F}:O});bs.setState({estimates:Ne});try{await Y4(W.map(O=>O.estimate_id))}catch{$e.error("Failed to save reorder")}},[w,g]),ce=(G,P,k)=>{G.stopPropagation(),fe({id:P,name:k}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),$e.success("Estimate deleted")}catch{$e.error("Failed to delete")}finally{oe(!1),re(!1),fe(null)}}},ve=async(G,P)=>{G.stopPropagation();try{const k=await i(P);$e.success("Estimate duplicated"),e(`/calculator/${k.estimate_id}`)}catch{$e.error("Failed to duplicate")}},at=async()=>{l(!0);try{const G=await fO();Km.saveAs(G,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),$e.success("Exported successfully")}catch{$e.error("Export failed")}finally{l(!1)}},Xe=()=>{S.size===w.length?R(new Set):R(new Set(w.map(G=>G.estimate_id)))},I=(G,P)=>{P.stopPropagation();const k=new Set(S);k.has(G)?k.delete(G):k.add(G),R(k)},nt=()=>{S.size!==0&&Y(!0)},gt=async()=>{z(!0);let G=0,P=0;for(const k of S)try{await s(k),G++}catch{P++}z(!1),R(new Set),Y(!1),P===0?$e.success(`Deleted ${G} estimate(s)`):$e.error(`Deleted ${G}, failed ${P}`)},ot=async()=>{if(S.size===0)return;H(!0);let G=0;for(const P of S)try{const k=t.find(ie=>ie.estimate_id===P);if(k){const ie=await GS(P);Km.saveAs(ie,`${k.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),G++}}catch{}H(!1),$e.success(`Exported ${G} estimate(s)`)},ft=()=>{A(!1),R(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(sy,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Pg,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Yr,{className:ue("w-5 h-5",d&&"animate-spin")})}),E?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[S.size," selected"]}),o.jsxs("button",{onClick:ot,disabled:S.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx($c,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:nt,disabled:S.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(tn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:ft,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>A(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:at,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx($c,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(wu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Du,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:de}),be.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(mD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?be.length:Le[b]||0}),o.jsx(rr,{className:ue("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(rm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs(Ut.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:be.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),be.map(G=>o.jsxs("button",{onClick:()=>{x(G),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===G?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===G?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:G,children:G}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:Le[G]||0}),b===G&&o.jsx(Ws,{className:"w-4 h-4"})]})]},G))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(pS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:G=>u(G.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(G=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},G))})}):w.length===0?o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(sy,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(wu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Du,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[E&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Xe,className:"flex items-center justify-center",children:o.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",S.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:S.size===w.length&&w.length>0&&o.jsx(Ws,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:ue(E?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(LC,{sensors:N,collisionDetection:_C,onDragEnd:q,modifiers:[VC],children:o.jsx(FC,{items:w.map(G=>G.estimate_id),strategy:MC,children:w.map((G,P)=>{const k=S.has(G.estimate_id);return o.jsx(o8,{id:G.estimate_id,children:o.jsxs(Ut.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!E&&e(`/calculator/${G.estimate_id}`),className:ue("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!E&&"cursor-pointer hover:bg-[var(--bg-hover)]",k&&"bg-blue-500/5"),children:[E&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(G.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k?"bg-blue-500 border-blue-500":"border-gray-400"),children:k&&o.jsx(Ws,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:ue("flex items-center gap-3",E?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:G.cloud&&Ar[G.cloud.toLowerCase()]?Ar[G.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(_m,{className:"w-4 h-4",style:{color:G.cloud&&Ar[G.cloud.toLowerCase()]?Ar[G.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:G.estimate_name,children:G.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:G.customer_name||"",children:G.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:G.customer_name||"",children:G.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:G.cloud&&Ar[G.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Ar[G.cloud.toLowerCase()].bg,color:Ar[G.cloud.toLowerCase()].text},children:Ar[G.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:G.region||G.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[G.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:G.region,children:G.region}),G.tier&&Cc[G.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Cc[G.tier.toLowerCase()].bg,color:Cc[G.tier.toLowerCase()].text},children:Cc[G.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:ue("px-2 py-0.5 rounded text-xs font-medium",G.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:G.line_item_count===0?{color:"var(--text-muted)"}:{},children:G.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(G.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!E&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,G.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ce(ie,G.estimate_id,G.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(tn,{className:"w-4 h-4"})})]})})]})},G.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),fe(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),B&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",S.size," Estimate",S.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(G=>S.has(G.estimate_id)).map(G=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",G.estimate_name]},G.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Y(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:gt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),S.size>0&&o.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[S.size," estimate",S.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:ot,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx($c,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:nt,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{R(new Set),A(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function $_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(A=>A.value===t),_=g?e.filter(A=>{var D;return A.label.toLowerCase().includes(g.toLowerCase())||((D=A.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,S=m.useMemo(()=>{if(!p)return null;const A={};return _.forEach(z=>{const j=z.group||"Other";A[j]||(A[j]=[]),A[j].push(z)}),Object.keys(A).sort((z,j)=>z==="General Purpose"?-1:j==="General Purpose"?1:z.localeCompare(j)).map(z=>({name:z,options:A[z]}))},[_,p]);m.useEffect(()=>{const A=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},[]),m.useEffect(()=>{const A=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(A)},[g,r]);const R=A=>{n(A),h(!1),v("")},E=A=>{A.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:ue("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const A=f;h(!f),A||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:ue("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(pS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:A=>v(A.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:A=>A.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:ue("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:E,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(rr,{className:ue("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&S?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),S.map(A=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:A.name}),A.options.map(D=>o.jsx("div",{onClick:()=>R(D.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},A.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(A=>o.jsx("div",{onClick:()=>R(A.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",A.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:A.label},A.value))]})})]})}function H_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const $C=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","CLEAN_ROOM","AI_PARSE","SHUTTERSTOCK_IMAGEAI","LAKEFLOW_CONNECT"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:$C.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function q_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(dS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(rr,{className:"w-3 h-3"}):o.jsx(uS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function W_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function rf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var G;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:S,fetchLineItems:R,clearSingleWorkloadCost:E,markItemCalculating:A,fetchVMCostForInstance:D}=bs(),z=m.useRef(!0);m.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,fe=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,B={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Y=f&&f.models&&f.models.llm?f:B,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[de,L]=m.useState(!1),[be,Le]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,q]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ce={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){q({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);Le(P)}else q(ce),Le(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&q(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&q(P=>({...P,dbsql_warehouse_type:"PRO"})),$C.has(w.workload_type)&&q(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?uE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),at=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&q(k=>({...k,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Xe=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!z.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),nt=a.length===0,gt=!nt&&!I&&w.workload_type,ot=async P=>{if(P.preventDefault(),!w.workload_name.trim()){$e.error("Enter a workload name");return}L(!0);try{const k={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(k.serverless_enabled=w.serverless_enabled,k.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(k.serverless_enabled=!1,k.serverless_mode=null),I!=null&&I.show_compute_config?(k.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,k.driver_node_type=w.driver_node_type||null,k.worker_node_type=w.worker_node_type||null,k.num_workers=w.num_workers,k.driver_pricing_tier=w.driver_pricing_tier||"on_demand",k.worker_pricing_tier=w.worker_pricing_tier||"spot",k.driver_payment_option=w.driver_payment_option||"NA",k.worker_payment_option=w.worker_payment_option||"NA"):(k.photon_enabled=!1,k.driver_node_type=null,k.worker_node_type=null,k.num_workers=null,k.driver_pricing_tier=null,k.worker_pricing_tier=null,k.driver_payment_option=null,k.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?k.dlt_edition=w.dlt_edition:k.dlt_edition=null,I!=null&&I.show_dbsql_config?(k.dbsql_warehouse_type=w.dbsql_warehouse_type,k.dbsql_warehouse_size=w.dbsql_warehouse_size,k.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(k.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,k.dbsql_driver_payment_option=w.dbsql_driver_payment_option,k.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,k.dbsql_worker_payment_option=w.dbsql_worker_payment_option,k.driver_pricing_tier=w.dbsql_driver_pricing_tier,k.driver_payment_option=w.dbsql_driver_payment_option,k.worker_pricing_tier=w.dbsql_worker_pricing_tier,k.worker_payment_option=w.dbsql_worker_payment_option)):(k.dbsql_warehouse_type=null,k.dbsql_warehouse_size=null,k.dbsql_num_clusters=null,k.dbsql_driver_pricing_tier=null,k.dbsql_driver_payment_option=null,k.dbsql_worker_pricing_tier=null,k.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(k.vector_search_mode=w.vector_search_mode,k.vector_capacity_millions=w.vector_capacity_millions,k.vector_search_storage_gb=w.vector_search_storage_gb||0):(k.vector_search_mode=null,k.vector_capacity_millions=null,k.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(k.model_serving_gpu_type=w.model_serving_gpu_type,k.model_serving_scale_out=w.model_serving_scale_out,k.model_serving_concurrency=w.model_serving_concurrency):(k.model_serving_gpu_type=null,k.model_serving_scale_out=null,k.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?k.databricks_apps_size=w.databricks_apps_size:k.databricks_apps_size=null,w.workload_type==="CLEAN_ROOM"?k.clean_room_collaborators=w.clean_room_collaborators:k.clean_room_collaborators=null,w.workload_type==="AI_PARSE"?(k.ai_parse_mode=w.ai_parse_mode,k.ai_parse_complexity=w.ai_parse_complexity,k.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(k.ai_parse_mode=null,k.ai_parse_complexity=null,k.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?k.shutterstock_images=w.shutterstock_images:k.shutterstock_images=null,w.workload_type==="LAKEFLOW_CONNECT"?(k.lakeflow_connect_pipeline_mode=w.lakeflow_connect_pipeline_mode,k.lakeflow_connect_gateway_enabled=w.lakeflow_connect_gateway_enabled,k.lakeflow_connect_gateway_instance=w.lakeflow_connect_gateway_instance||null):(k.lakeflow_connect_pipeline_mode=null,k.lakeflow_connect_gateway_enabled=null,k.lakeflow_connect_gateway_instance=null),I!=null&&I.show_lakebase_config?(k.lakebase_cu=w.lakebase_cu,k.lakebase_storage_gb=w.lakebase_storage_gb||0,k.lakebase_ha_nodes=w.lakebase_ha_nodes,k.lakebase_backup_retention_days=w.lakebase_backup_retention_days,k.lakebase_pitr_gb=w.lakebase_pitr_gb||0,k.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(k.lakebase_cu=null,k.lakebase_storage_gb=null,k.lakebase_ha_nodes=null,k.lakebase_backup_retention_days=null,k.lakebase_pitr_gb=null,k.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(k.fmapi_provider=w.fmapi_provider,k.fmapi_model=w.fmapi_model||null,k.fmapi_endpoint_type=w.fmapi_endpoint_type,k.fmapi_context_length=w.fmapi_context_length,k.fmapi_rate_type=w.fmapi_rate_type,k.fmapi_quantity=w.fmapi_quantity):(k.fmapi_provider=null,k.fmapi_model=null,k.fmapi_endpoint_type=null,k.fmapi_context_length=null,k.fmapi_rate_type=null,k.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?be?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,k.avg_runtime_minutes=w.avg_runtime_minutes,k.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):w.workload_type==="CLEAN_ROOM"?(k.hours_per_month=null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=w.days_per_month||30):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(k.hours_per_month=w.ai_parse_mode==="dbu"?w.hours_per_month||0:null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):w.workload_type==="LAKEFLOW_CONNECT"?be?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=w.runs_per_day,k.avg_runtime_minutes=w.avg_runtime_minutes,k.days_per_month=w.days_per_month):I!=null&&I.show_fmapi_config?(k.hours_per_month=w.hours_per_month||null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null),t)E(t.line_item_id),A(t.line_item_id),await S(t.line_item_id,k),$e.success("Workload updated");else{k.estimate_id=e;const M=await _(k);M!=null&&M.line_item_id&&A(M.line_item_id),$e.success("Workload added")}R(e),r==null||r(),n()}catch(k){console.error("Failed to save workload:",k),$e.error("Failed to save")}finally{L(!1)}},ft=I==null?void 0:I.show_compute_config;return nt?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:ot,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>q(k=>({...k,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>q(k=>({...k,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:ue("w-full text-sm",gt&&"border-red-500",Xe&&"border-yellow-500"),children:[Xe&&(()=>{const P=a.find(k=>k.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),gt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Xe&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),at&&!Xe&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const k=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",k&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!k,onChange:()=>!k&&q(ie=>{const M=!ie.serverless_enabled,W=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:W}}),disabled:k,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(_m,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:ue("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),k&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>q(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:fe.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&q(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Au,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:ue("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),ft&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx($_,{options:l.map(P=>({value:P.id,label:W_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>q(k=>({...k,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx(q_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>q(k=>({...k,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>q(k=>({...k,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&q(k=>({...k,worker_node_type:k.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:ue("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx($_,{options:l.map(P=>({value:P.id,label:W_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>q(k=>({...k,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>q(k=>({...k,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx(q_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>q(k=>({...k,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>q(k=>({...k,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[ft&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>q(k=>({...k,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const k=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!k;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",k&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!k&&q(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:k,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(_m,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:ue("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),k&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>q(W=>({...W,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>q(k=>({...k,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>q(k=>({...k,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Ne,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,k=P!=null&&P.driver_instance_type?l.find(F=>F.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(F=>F.id===P.worker_instance_type):null,M=(F,K,ae)=>{var Be,dt,rt,Ge,lt,Ke,Ot;if(!(F!=null&&F.vm_pricing))return null;const Ee=K.toLowerCase();if(Ee==="on_demand")return(Be=F.vm_pricing.on_demand)==null?void 0:Be.cost_per_hour;if(Ee==="spot")return(dt=F.vm_pricing.spot)==null?void 0:dt.cost_per_hour;if(Ee==="reserved_1y"){const U=((rt=F.vm_pricing.reserved_1y)==null?void 0:rt.find(J=>J.payment_option===ae))||((Ge=F.vm_pricing.reserved_1y)==null?void 0:Ge[0]);return U==null?void 0:U.cost_per_hour}if(Ee==="reserved_3y"){const U=((lt=F.vm_pricing.reserved_3y)==null?void 0:lt.find(J=>J.payment_option===ae))||((Ke=F.vm_pricing.reserved_3y)==null?void 0:Ke[0]);return U==null?void 0:U.cost_per_hour}return(Ot=F.vm_pricing.on_demand)==null?void 0:Ot.cost_per_hour},W=M(k,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),ke=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),k&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Ne=k.dbu_rate)==null?void 0:Ne.toFixed(2)," DBU/hr"]}),W!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",W.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:F=>q(K=>({...K,dbsql_driver_pricing_tier:F.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:F=>q(K=>({...K,dbsql_driver_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>o.jsx("option",{value:F.id,children:F.name},F.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),ke!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",ke.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:F=>q(K=>({...K,dbsql_worker_pricing_tier:F.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:F=>q(K=>({...K,dbsql_worker_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>o.jsx("option",{value:F.id,children:F.name},F.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>q(k=>({...k,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>q(k=>({...k,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>q(k=>({...k,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>q(k=>({...k,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const k={small:4,medium:12,large:40},ie=P.target.value;q(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:k[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const k=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);q(ie=>({...ie,model_serving_concurrency:k}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>q(k=>({...k,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Y.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Y.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>q(k=>({...k,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>q(k=>({...k,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>q(k=>({...k,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const k=P.target.value,ie=H_(x,g||"aws",w.fmapi_provider,k),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";q(W=>({...W,fmapi_model:k,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(G=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:G.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>q(k=>({...k,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>q(k=>({...k,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?H_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],k={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:k[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>q(k=>({...k,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],k={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:k[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>q(k=>({...k,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>q(k=>({...k,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>q(k=>({...k,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>q(k=>({...k,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>q(k=>({...k,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>q(k=>({...k,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>q(k=>({...k,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="CLEAN_ROOM"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Collaborators"}),o.jsx("input",{type:"number",min:1,max:10,step:1,value:w.clean_room_collaborators||1,onChange:P=>q(k=>({...k,clean_room_collaborators:Math.min(10,Math.max(1,parseInt(P.target.value)||1))})),className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"1 DBU per collaborator per day (max 10)"})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Mode"}),o.jsxs("select",{value:w.ai_parse_mode||"pages",onChange:P=>q(k=>({...k,ai_parse_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"pages",children:"Pages-based"}),o.jsx("option",{value:"dbu",children:"Direct DBU"})]})]}),(w.ai_parse_mode||"pages")==="pages"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>q(k=>({...k,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>q(k=>({...k,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>q(k=>({...k,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),w.workload_type==="LAKEFLOW_CONNECT"&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"col-span-full",children:o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Pipeline uses DLT Serverless (Advanced edition). Configure usage below."})}),o.jsx("div",{children:o.jsxs("label",{className:"flex items-center gap-2 text-xs font-medium text-[var(--text-secondary)]",children:[o.jsx("input",{type:"checkbox",checked:w.lakeflow_connect_gateway_enabled||!1,onChange:P=>q(k=>({...k,lakeflow_connect_gateway_enabled:P.target.checked})),className:"rounded"}),"Enable Gateway (Database Connectors)"]})}),w.lakeflow_connect_gateway_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Gateway Instance"}),o.jsx("input",{type:"text",value:w.lakeflow_connect_gateway_instance||"",onChange:P=>q(k=>({...k,lakeflow_connect_gateway_instance:P.target.value})),className:"w-full text-sm",placeholder:"e.g., i3.xlarge (auto-selected per cloud)"})]})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>Le(!1),className:ue("px-3 py-1 text-xs rounded-l-md border transition-colors",be?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>Le(!0),className:ue("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",be?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!be&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>q(k=>({...k,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>q(k=>({...k,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>q(k=>({...k,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),be&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>q(k=>({...k,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>q(k=>({...k,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>q(k=>({...k,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:de||!w.workload_name.trim(),className:"btn btn-primary",children:de?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class G_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:a3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Lu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:aD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:wD,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:GD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:Hc,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:Hc,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:Hc,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:g3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},K_=e=>e?h8[e]||{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},ge=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),Q_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:ge(e),cn=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),Y_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:ue("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:ue("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[ge(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:ue("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[cn(e.monthlyDBUs)," DBUs/mo"]})]})}),X_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},J_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=UC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function Z_(){const{id:e}=ww(),t=ud(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:S,getInstanceDbuRate:R,vmPricingMap:E,instanceDbuRateMap:A,dbuRatesMap:D,fetchDBURates:z,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:fe,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:B,isPricingBundleLoaded:Y,clearEstimateState:N,setLocalCalculatedCosts:se}=bs(),[de,L]=m.useState(!1),[be,Le]=m.useState(!1),[w,q]=m.useState(!1),[ce,_e]=m.useState(!1),[ve,at]=m.useState(!1),[Xe,I]=m.useState(null),[nt,gt]=m.useState(!1),[ot,ft]=m.useState(!1),[G,P]=m.useState(!1),[k,ie]=m.useState(!1),[M,W]=m.useState(new Set),[ke,Ne]=m.useState(new Set),[O,F]=m.useState(!1),[K,ae]=m.useState({}),[Ee,Be]=m.useState(!1),[dt,rt]=m.useState(!1),[Ge,lt]=m.useState(!1),[Ke,Ot]=m.useState(!1),[U,J]=m.useState([]),[Te,Ve]=m.useState(!1),[Q,ct]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[et,It]=m.useState(!!e),[pt,xt]=m.useState(!1),[St,mt]=m.useState(!1),[Ue,Oe]=m.useState("table"),[De,Pe]=m.useState("order"),[Wt,Et]=m.useState("asc"),[Se,Ct]=m.useState(new Set),[on,qi]=m.useState(!1),Wi=m.useRef({}),Od=m.useCallback(T=>{const Z=Wi.current[T];Z&&(Z.scrollIntoView({behavior:"smooth",block:"center"}),Z.style.backgroundColor="rgba(255, 54, 33, 0.1)",Z.style.transition="background-color 0.3s ease",setTimeout(()=>{Wi.current[T]&&(Wi.current[T].style.backgroundColor="")},1500))},[]),Ze=m.useCallback(()=>{F(!0)},[]);m.useEffect(()=>{const T=Z=>{O&&(Z.preventDefault(),Z.returnValue="")};return window.addEventListener("beforeunload",T),()=>window.removeEventListener("beforeunload",T)},[O]),m.useEffect(()=>{if(!Q.cloud||!Q.region||r.length===0||!Ge)return;const T=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const $=cl(B,Q.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if($){const pe=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",ze=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";T.add(`${$.driver_instance_type}:${pe}:${ze}`);const jt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";T.add(`${$.worker_instance_type}:${jt}:${Rt}`)}return}if(C.driver_node_type){const $=C.driver_pricing_tier||"on_demand",pe=C.driver_payment_option||"NA";T.add(`${C.driver_node_type}:${$}:${pe}`)}if(C.worker_node_type){const $=C.worker_pricing_tier||"spot",pe=C.worker_payment_option||"NA";T.add(`${C.worker_node_type}:${$}:${pe}`)}}});const Z=Array.from(T).map(C=>{const[$,pe,ze]=C.split(":");return _(Q.cloud,Q.region,$,pe,ze)});if(Z.length>0){Ot(!0);const C=new Promise($=>setTimeout($,1e4));Promise.race([Promise.all(Z),C]).catch(()=>{}).finally(()=>Ot(!1))}},[Q.cloud,Q.region,r,Ge,_,B]),m.useEffect(()=>{if(!Q.cloud)return;const T=p(Q.cloud);if(T.length>0){const Z=Y?CO(B,Q.cloud):[];if(Z.length>0){const C=T.filter($=>Z.includes($.region_code));J(C)}else J(T);Ve(!1)}else u?(J([]),Ve(!1)):Ve(!0)},[Q.cloud,d,u,p,B,Y]),m.useEffect(()=>{(async()=>{if(e){Be(!0),rt(!0),lt(!1);try{await i(e)}catch(Z){console.error("Error loading estimate data:",Z)}finally{Be(!1),rt(!1),lt(!0)}}else N(),lt(!1)})()},[e,i,N]);const Vr={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ct({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ct(Vr),x("aws"),F(!1))},[n,e,x,y]),m.useEffect(()=>{Q.cloud&&Q.region&&Q.tier&&z(Q.cloud.toUpperCase(),Q.region,Q.tier.toUpperCase())},[Q.cloud,Q.region,Q.tier,z]);const Sr=!!(Q.region&&Q.tier),yn=(T,Z)=>{const C=Z?{...T,...Z}:T,$=Q.cloud||"aws",pe=Q.region,ze=Object.keys(D).length>0?D:X_[$]||X_.aws,jt=C.num_workers||0;if(!pe)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let Ce="";const Xt=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?Ce="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?Ce="JOBS_COMPUTE_(PHOTON)":Ce="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?Ce="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?Ce="ALL_PURPOSE_COMPUTE_(PHOTON)":Ce="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?Ce="JOBS_SERVERLESS_COMPUTE":(Ce=`DLT_${Xt}_COMPUTE`,C.photon_enabled&&(Ce+="_(PHOTON)"));break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Ie==="SERVERLESS"?Ce="SERVERLESS_SQL_COMPUTE":Ie==="PRO"?Ce="SQL_PRO_COMPUTE":Ce="SQL_COMPUTE";break;case"VECTOR_SEARCH":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const vt=(C.fmapi_provider||"openai").toLowerCase();Ce=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[vt]||vt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":Ce="DATABASE_SERVERLESS_COMPUTE";break;default:Ce="JOBS_COMPUTE"}let Tn=.2;if(Y&&Q.tier){const Ie=Dg(B,$,pe,Q.tier,Ce);Ie>0?Tn=Ie:Tn=ze[Ce]||.2}else Tn=ze[Ce]||.2;let we=0,Qe=0,We=0,As,Er,ss,te=.5,me=.5;if(Y&&C.driver_node_type){const Ie=Rm(B,$,C.driver_node_type);Ie>0&&(te=Ie)}if(!te||te===.5){const Ie=j.find(vt=>vt.id===C.driver_node_type||vt.name===C.driver_node_type);Ie!=null&&Ie.dbu_rate&&(te=Ie.dbu_rate)}if(Y&&C.worker_node_type){const Ie=Rm(B,$,C.worker_node_type);Ie>0&&(me=Ie)}if(!me||me===.5){const Ie=j.find(vt=>vt.id===C.worker_node_type||vt.name===C.worker_node_type);Ie!=null&&Ie.dbu_rate&&(me=Ie.dbu_rate)}const ln=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Ie;if(C.serverless_enabled?C.workload_type==="JOBS"?Ie="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Ie="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Ie="DLT_CORE_COMPUTE":Ie=Ce.replace("_(PHOTON)",""):Ie=Ce.replace("_(PHOTON)",""),Y){const Jt=cE(B,$,Ie);if(Jt!==2)return Jt}const vt=H.find(Jt=>{var bn,fr;return Jt.sku_type===Ie||((bn=Jt.sku_type)==null?void 0:bn.toLowerCase())===Ie.toLowerCase()||((fr=Jt.sku_type)==null?void 0:fr.toLowerCase().includes((T.workload_type||"").toLowerCase()))});return(vt==null?void 0:vt.multiplier)||2})(),pi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)we=(te+me*jt)*ln*pi;else{we=(te+me*jt)*ln;const Ae=C.driver_pricing_tier||"on_demand",In=C.driver_payment_option||"NA",$r=C.worker_pricing_tier||"spot",fi=C.worker_payment_option||"NA",mi=S($,pe,C.driver_node_type||"",Ae,In),hi=S($,pe,C.worker_node_type||"",$r,fi);We=(mi+hi*jt)*Rt}Qe=we*Rt;break;case"DLT":if(C.serverless_enabled)we=(te+me*jt)*ln*Cr*pi;else{we=(te+me*jt)*ln*Cr;const Ae=C.driver_pricing_tier||"on_demand",In=C.driver_payment_option||"NA",$r=C.worker_pricing_tier||"spot",fi=C.worker_payment_option||"NA",mi=S($,pe,C.driver_node_type||"",Ae,In),hi=S($,pe,C.worker_node_type||"",$r,fi);We=(mi+hi*jt)*Rt}Qe=we*Rt;break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),vt=C.dbsql_warehouse_size||"Small",Jt=C.dbsql_num_clusters||1;let bn=J_[vt]||12;if(Y){const Ae=_O(B,$,Ie,vt);Ae&&Ae.dbu_per_hour>0&&(bn=Ae.dbu_per_hour)}if(!bn||bn===(J_[vt]||12)){const Ae=X.find(In=>In.id===vt||In.name===vt);Ae!=null&&Ae.dbu_per_hour&&(bn=Ae.dbu_per_hour)}if(we=bn*Jt,Qe=we*Rt,Ie!=="SERVERLESS"){const Ae=Y?cl(B,$,Ie,vt):null;if(Ae){const In=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",$r=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",fi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,pe,Ae.driver_instance_type,In,$r),Ja=S($,pe,Ae.worker_instance_type,fi,mi);We=(Ae.driver_count*hi+Ae.worker_count*Ja)*Jt*Rt}else if(C.driver_node_type){const In=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",$r=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",fi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,pe,C.driver_node_type,In,$r),Ja=C.worker_node_type?S($,pe,C.worker_node_type,fi,mi):0,bx=C.num_workers||0;We=(hi+Ja*bx)*Jt*Rt}}break;case"VECTOR_SEARCH":const fr=C.vector_search_mode||"standard",zt=C.vector_capacity_millions||1;let Dn=fr==="storage_optimized"?64e6:2e6,Zt=fr==="storage_optimized"?18.29:4;if(Y){const Ae=bO(B,$,fr);Ae&&(Dn=Ae.input_divisor,Zt=Ae.dbu_rate)}else{const Ae=fe(fr);Ae&&(Dn=Ae.input_divisor,Zt=Ae.dbu_per_hour)}const Mn=zt*1e6,st=Math.ceil(Mn/Dn);As=st,we=st*Zt,Qe=we*Rt;const it=C.vector_search_storage_gb||0,en=st*20,At=Math.max(0,it-en),Gt=.023,mn=At*Gt;it>0&&(Er=mn,ss={totalStorageGB:it,freeStorageGB:en,billableStorageGB:At,pricePerGB:Gt});break;case"MODEL_SERVING":const Zn=C.model_serving_gpu_type||"cpu";let On=2;if(Y){const Ae=wO(B,$,Zn);Ae&&Ae.dbu_rate>0&&(On=Ae.dbu_rate)}if(On===2){const Ae=re.find(In=>In.id===Zn||In.name===Zn);Ae!=null&&Ae.dbu_per_hour&&(On=Ae.dbu_per_hour)}const er=C.model_serving_scale_out||"small",Ul=er==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[er]||4;we=On*Ul,Qe=we*Rt;break;case"LAKEBASE":const Vl=C.lakebase_cu||1,zl=C.lakebase_ha_nodes||1,$l={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},e2=($l[$]||$l.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;we=Vl*e2*zl,Qe=we*Rt;const Hl=Math.min(C.lakebase_storage_gb||0,8192),t2=C.lakebase_pitr_gb||0,n2=C.lakebase_snapshot_gb||0,ql=.023,r2=Hl*15*ql,s2=t2*8.7*ql,i2=n2*3.91*ql,vx=r2+s2+i2;vx>0&&(Er=vx,ss={totalStorageGB:Hl,billableStorageGB:Hl,dsuPerGB:15,totalDSU:Hl*15,pricePerDSU:ql});break;case"FMAPI_DATABRICKS":const a2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",yx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ls=null;if(Y&&C.fmapi_model){const Ae=kO(B,$,C.fmapi_model,Xa);Ae&&(Ls=Ae.dbu_rate)}if(Ls===null&&C.fmapi_model){const Ae=xe(C.fmapi_model,Xa);Ae&&(yx?Ls=Ae.dbu_per_hour||null:Ls=Ae.dbu_per_1M_tokens||null)}Ls===null&&(yx?Ls=Xa==="provisioned_scaling"?200:50:Ls=Xa==="output_token"?3:1),Qe=a2*Ls;break;case"FMAPI_PROPRIETARY":const o2=C.fmapi_quantity||0,Wl=C.fmapi_rate_type||"input_token",_x=Wl==="provisioned_scaling";let jr=null;if(Y&&C.fmapi_provider&&C.fmapi_model){const Ae=C.fmapi_endpoint_type||"global",In=C.fmapi_context_length||"long",$r=SO(B,$,C.fmapi_provider,C.fmapi_model,Ae,In,Wl);$r&&(jr=$r.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ae=oe(C.fmapi_provider,C.fmapi_model,Wl);Ae&&(_x?jr=Ae.dbu_per_hour||null:jr=Ae.dbu_per_1M_tokens||null)}if(jr===null)if(_x)jr=150;else switch(Wl){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}Qe=o2*jr;break;default:Qe=0}const pr=isNaN(Tn)||Tn===void 0?0:Tn,Ts=isNaN(Qe)||Qe===void 0?0:Qe,Ln=isNaN(We)||We===void 0?0:We,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ts*pr,as=zr+Ln+_n;return{monthlyDBUs:Ts,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(as)?0:as,unitsUsed:As,dbuPerHour:we,dbuPrice:pr,storageCost:_n>0?_n:void 0,storageDetails:ss}},Pt=m.useMemo(()=>{let T=0,Z=0,C=0,$=0;return r.forEach(pe=>{const ze=yn(pe);T+=isNaN(ze.monthlyDBUs)?0:ze.monthlyDBUs,Z+=isNaN(ze.dbuCost)?0:ze.dbuCost,C+=isNaN(ze.vmCost)?0:ze.vmCost,$+=isNaN(ze.totalCost)?0:ze.totalCost}),{totalDBUs:T,totalDBUCost:Z,totalVMCost:C,totalCost:$}},[r,Q.cloud,Q.region,Q.tier,s,S,E,R,A,j,H,D,X,re,le,fe,xe,oe,B,Y]);m.useEffect(()=>{const T={};r.forEach(Z=>{const C=yn(Z,K[Z.line_item_id]);T[Z.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(T)},[r,K,Q.cloud,Q.region,Q.tier,se,S,E,R,A,j,H,D,X,re,le,fe,xe,oe,B,Y]);const An=m.useMemo(()=>{const T=[...r];return De==="order"?T.sort((Z,C)=>(Z.display_order??0)-(C.display_order??0)):De==="name"?T.sort((Z,C)=>(Z.workload_name||"").localeCompare(C.workload_name||"")):De==="type"?T.sort((Z,C)=>(Z.workload_type||"").localeCompare(C.workload_type||"")):De==="cost"&&T.sort((Z,C)=>{const $=yn(Z).totalCost,pe=yn(C).totalCost;return $-pe}),Wt==="desc"&&T.reverse(),T},[r,De,Wt,yn]),rs=T=>{De===T?Et(Z=>Z==="asc"?"desc":"asc"):(Pe(T),Et(T==="cost"?"desc":"asc"))},Il=yC($u(Ld,{activationConstraint:{distance:5}}),$u(Td)),lx=De==="order",HC=m.useCallback(async T=>{const{active:Z,over:C}=T;if(!C||Z.id===C.id||!e)return;const $=An.findIndex(Xt=>Xt.line_item_id===Z.id),pe=An.findIndex(Xt=>Xt.line_item_id===C.id);if($===-1||pe===-1)return;const ze=[...An],[jt]=ze.splice($,1);ze.splice(pe,0,jt);const{lineItems:Rt}=bs.getState(),Ce=Rt.map(Xt=>{const Tn=ze.findIndex(we=>we.line_item_id===Xt.line_item_id);return Tn>=0?{...Xt,display_order:Tn}:Xt});bs.setState({lineItems:Ce});try{await Q4(e,ze.map(Xt=>Xt.line_item_id))}catch{$e.error("Failed to save reorder")}},[An,e]),cx=async()=>{if(!Q.estimate_name.trim()){$e.error("Enter an estimate name");return}if(!Q.region){$e.error("Select a region");return}if(!Q.tier){$e.error("Select a Databricks tier");return}L(!0);try{const T={...Q,cloud:Q.cloud.toUpperCase(),tier:Q.tier.toUpperCase()};if(e&&n)await h(e,T),F(!1),$e.success("All changes saved");else{const Z=await f(T);F(!1),t(`/calculator/${Z.estimate_id}`,{replace:!0}),$e.success("Estimate created")}}catch{$e.error("Failed to save")}finally{L(!1)}},qC=async()=>{if(e){Le(!0);try{const T=await GS(e),Z=`${Q.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Km.saveAs(T,Z),$e.success("Exported to Excel")}catch{$e.error("Export failed")}finally{Le(!1)}}},WC=async()=>{if(e){q(!0),_e(!1);try{await g(e),$e.success("Estimate deleted"),t("/",{replace:!0})}catch{$e.error("Failed to delete estimate"),q(!1)}}},GC=async()=>{l(),$e.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),$e.success("Pricing data refreshed",{id:"refresh-data"})}catch{$e.error("Failed to refresh data",{id:"refresh-data"})}},ux=T=>{I(T),at(!0)},KC=async()=>{if(Xe){ft(!0);try{await v(Xe.line_item_id),$e.success("Workload removed")}catch{$e.error("Failed to delete")}finally{ft(!1),at(!1),I(null)}}},dx=()=>{Se.size!==0&>(!0)},QC=async()=>{ft(!0);try{let T=0;for(const Z of Se)await v(Z),T++;$e.success(`${T} workload(s) deleted`),Ct(new Set)}catch{$e.error("Failed to delete some workloads")}finally{ft(!1),gt(!1)}},YC=T=>{Ct(Z=>{const C=new Set(Z);return C.has(T)?C.delete(T):C.add(T),C})},XC=()=>{Se.size===r.length?Ct(new Set):Ct(new Set(r.map(T=>T.line_item_id)))},px=()=>{qi(!1),Ct(new Set)},fx=async(T,Z)=>{T.stopPropagation();try{await b(Z.line_item_id)&&$e.success(`Workload "${Z.workload_name}" cloned`)}catch{$e.error("Failed to clone workload")}},JC=()=>{O?P(!0):t("/")},ZC=()=>{P(!1),t("/")},mx=T=>{const Z=new Set(M);Z.has(T)?Z.delete(T):Z.add(T),W(Z)},Fl=(T,Z=!1)=>{const C=new Set(ke);if(C.has(T))C.delete(T);else if(C.add(T),Z&&!M.has(T)){const $=new Set(M);$.add(T),W($)}Ne(C)},hx=T=>T.hours_per_month?`${T.hours_per_month}h/month`:T.runs_per_day?`${T.runs_per_day} runs/day × ${T.avg_runtime_minutes||30}min`:null,gx=T=>{const Z=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(T.workload_type||"")&&T.serverless_enabled&&Z.push({label:"Mode",value:T.serverless_mode==="performance"?"Performance":"Standard"}),T.workload_type){case"VECTOR_SEARCH":T.vector_search_mode&&Z.push({label:"Mode",value:T.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),T.vector_capacity_millions&&Z.push({label:"Capacity",value:`${T.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(T.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};Z.push({label:"Endpoint",value:C[T.model_serving_gpu_type]||T.model_serving_gpu_type})}break;case"LAKEBASE":T.lakebase_cu&&Z.push({label:"CU",value:`${T.lakebase_cu}`}),T.lakebase_ha_nodes&&Z.push({label:"Nodes",value:`${T.lakebase_ha_nodes}${T.lakebase_ha_nodes>1?" (HA)":""}`}),T.lakebase_storage_gb&&T.lakebase_storage_gb>0&&Z.push({label:"Storage",value:`${T.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(T.fmapi_model&&Z.push({label:"Model",value:T.fmapi_model}),T.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};Z.push({label:"Rate",value:C[T.fmapi_rate_type]||T.fmapi_rate_type})}if(T.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(T.fmapi_rate_type||"");Z.push({label:C?"Hours":"Quantity",value:C?`${T.fmapi_quantity}h/mo`:`${T.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(T.fmapi_provider&&T.fmapi_model&&Z.push({label:"Model",value:`${T.fmapi_provider}/${T.fmapi_model}`}),T.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};Z.push({label:"Rate",value:C[T.fmapi_rate_type]||T.fmapi_rate_type})}T.fmapi_quantity&&Z.push({label:"Quantity",value:`${T.fmapi_quantity}M tokens`});break;case"DLT":T.dlt_edition&&Z.push({label:"Edition",value:T.dlt_edition});break;case"DBSQL":T.dbsql_warehouse_type&&Z.push({label:"Type",value:T.dbsql_warehouse_type}),T.dbsql_warehouse_size&&Z.push({label:"Size",value:T.dbsql_warehouse_size}),T.dbsql_num_clusters&&T.dbsql_num_clusters>1&&Z.push({label:"Clusters",value:`${T.dbsql_num_clusters}`});break}return Z},Bl=Q.estimate_name.trim()&&Q.region&&Q.tier,xx=()=>{const T=[];return Q.estimate_name.trim()||T.push("Estimate Name"),Q.region||T.push("Region"),Q.tier||T.push("Databricks Tier"),T};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&Ee&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ny,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(T=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},T))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(T=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},T))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:JC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ny,{className:"w-5 h-5"})}),o.jsx("div",{children:Ee&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:Q.estimate_name,onChange:T=>{ct(Z=>({...Z,estimate_name:T.target.value})),Ze()},placeholder:"Untitled Estimate",title:Q.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:GC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Yr,{className:ue("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:qC,disabled:be||!e,className:"btn btn-secondary",children:[o.jsx($c,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(tn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:ue("grid grid-cols-1 gap-6",pt?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:ue("space-y-6",pt?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>It(!et),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Lu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${Q.cloud.toUpperCase()} • ${Q.region||"No region"} • ${Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier"}${Q.customer_name?` • ${Q.customer_name}`:""}`,children:[Q.cloud.toUpperCase()," • ",Q.region||"No region"," • ",Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier",Q.customer_name&&` • ${Q.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:et?o.jsx(rr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(ps,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!et&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),Ee&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(T=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},T))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(T=>{const Z=r.length>0&&Q.cloud!==T.id;return o.jsxs("button",{disabled:Z,onClick:C=>{C.stopPropagation(),!Z&&(ct($=>({...$,cloud:T.id,region:"",tier:T.id==="azure"&&$.tier==="enterprise"?"":$.tier})),x(T.id),Ze())},className:ue("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",Q.cloud===T.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",Z?"opacity-40 cursor-not-allowed":Q.cloud!==T.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:Z?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:ue("text-sm font-semibold",Q.cloud===T.id?"text-lava-600":"text-[var(--text-primary)]"),children:T.name}),Q.cloud===T.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Ws,{className:"w-3.5 h-3.5 text-lava-600"})})]},T.id)})})]})]}),Ee&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:T=>T.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:Q.region,onChange:T=>{ct(Z=>({...Z,region:T.target.value})),y(T.target.value),Ze()},className:ue("w-full text-sm",!Q.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(T=>o.jsxs("option",{value:T.region_code,children:[T.region_code," (",T.sku_region,")"]},T.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:Q.tier,onChange:T=>{ct(Z=>({...Z,tier:T.target.value})),Ze()},className:ue("w-full text-sm",!Q.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),Q.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Ws,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:cx,disabled:de||!Bl,title:Bl?void 0:`Missing: ${xx().join(", ")}`,className:ue("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Ws,{className:"w-4 h-4"}),de?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(m3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:on?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Se.size," selected"]}),o.jsxs("button",{onClick:dx,disabled:Se.size===0,className:ue("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Se.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:px,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>qi(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Oe("table"),className:ue("p-1.5 rounded-md transition-colors",Ue==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(k3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Oe("cards"),className:ue("p-1.5 rounded-md transition-colors",Ue==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Pg,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Oe("expanded"),className:ue("p-1.5 rounded-md transition-colors",Ue==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(iy,{className:"w-4 h-4"})})]}),Sr&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Du,{className:"w-4 h-4"}),"Add"]})]})]}),e?dt&&!Ge?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[Ue==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[on&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Se.size===r.length&&r.length>0,onChange:XC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>rs("name"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",on?"col-span-3":"col-span-4"),children:["Workload",De==="name"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>rs("type"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",De==="type"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>rs("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",De==="cost"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]})]}),o.jsx(LC,{sensors:Il,collisionDetection:_C,onDragEnd:HC,modifiers:[VC],children:o.jsx(FC,{items:An.map(T=>T.line_item_id),strategy:MC,children:An.map(T=>{var As,Er,ss;const Z=K[T.line_item_id],C=Z?{...T,...Z}:T,$=yn(T,Z),pe=K_(C.workload_type),ze=pe.icon,jt=M.has(T.line_item_id),Rt=Se.has(T.line_item_id),Ce=C.workload_type||"",Xt=C.serverless_enabled||Ce==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Tn=((As=s.find(te=>te.workload_type===Ce))==null?void 0:As.display_name)||Ce,we=hx(C),We=(()=>{const te={badges:[],details:[]};if(Xt&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(Ce))Xt||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),Ce==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(Ce==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(Ce==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(Ce==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(Ce==="FMAPI_DATABRICKS"||Ce==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&Ce==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else Ce==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:T.line_item_id,disabled:!lx,children:o.jsxs("div",{ref:te=>{Wi.current[T.line_item_id]=te},children:[o.jsxs("div",{className:ue("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&on&&"bg-lava-600/5",jt&&"bg-[var(--bg-tertiary)]"),onClick:()=>mx(T.line_item_id),children:[on&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>YC(T.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:ue("flex items-center gap-3",on?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:ue("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",pe.bgColor),children:o.jsx(ze,{className:ue("w-4 h-4",pe.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:T.workload_name,children:T.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:Tn,children:Tn})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[We.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:We.badges.map((te,me)=>o.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(We.driver||We.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${We.driver||"N/A"}, Workers: ${((Er=We.workers)==null?void 0:Er.count)||0}× ${((ss=We.workers)==null?void 0:ss.type)||"N/A"}`,children:(()=>{const te=We.driver,me=We.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),We.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:We.details.join(" · "),children:We.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(Y_,{costs:$,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(Ce)||Ce==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&te&&$.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Fl(T.line_item_id,!0)},className:ue("p-1.5 rounded transition-colors",ke.has(T.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:ke.has(T.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(hc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>fx(te,T),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),ux(T)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(tn,{className:"w-4 h-4"})}),o.jsx("div",{className:ue("p-1 rounded transition-colors",jt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:jt?o.jsx(ps,{className:"w-5 h-5 text-lava-600"}):o.jsx(rr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!jt&&(We.badges.length>0||We.driver||We.workers||We.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[We.badges.map((te,me)=>o.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(We.driver||We.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=We.driver,me=We.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),We.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:We.details.join(" · ")})]}),jt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge($.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(Ce)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge($.vmCost)})]}),Ce==="LAKEBASE"&&$.storageCost!==void 0&&$.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:ge($.storageCost)})]}),Ce==="VECTOR_SEARCH"&&$.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[$.unitsUsed," unit",$.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(Ce)&&!Xt&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),gx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),we&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:we})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Fl(T.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(hc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:ke.has(T.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),ke.has(T.line_item_id)?o.jsx(ps,{className:"w-3 h-3"}):o.jsx(rr,{className:"w-3 h-3"})]}),ke.has(T.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,is=C.avg_runtime_minutes||30,ln=C.days_per_month||30,pi=C.hours_per_month||730,Vt=te?me*(is/60)*ln:pi,pr=($.dbuPrice||0).toFixed(2);if(Ce==="VECTOR_SEARCH"){const st=C.vector_capacity_millions||1,it=C.vector_search_mode||"standard",en=it==="storage_optimized"?64:2,At=Math.ceil(st/en),Gt=it==="storage_optimized"?18.29:4,mn=C.vector_search_storage_gb||0,Zn=At*20,On=Math.max(0,mn-Zn),er=On*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M"]})," vectors ÷ ",en,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At," unit",At!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Gt.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge($.dbuCost)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Zn," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",At," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[On," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(er)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),mn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(er)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})}if(Ce==="FMAPI_DATABRICKS"||Ce==="FMAPI_PROPRIETARY"){const st=C.fmapi_quantity||1,it=C.fmapi_rate_type||"input_token",en=["provisioned_scaling","provisioned_entry"].includes(it),At=st>0?$.monthlyDBUs/st:0,Gt=C.fmapi_model||"model",mn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[At.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Gt,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[At.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn?`${mn}/`:"",Gt,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})})}if(Ce==="LAKEBASE"){const st=C.lakebase_cu||1,it=C.lakebase_ha_nodes||1,en={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Gt=(en[Q.cloud||"aws"]||en.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213,mn=C.lakebase_storage_gb||0,Zn=C.lakebase_pitr_gb||0,On=C.lakebase_snapshot_gb||0,er=.023,Ya=mn*15*er,Ul=Zn*8.7*er,Vl=On*3.91*er,zl=Ya+Ul+Vl,$l=zl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Gt," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge($.dbuCost)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(mn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Ya)})]}),Zn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Zn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Ul)})]}),On>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[On," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(On*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Vl)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),$l&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(zl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})}if(Ce==="MODEL_SERVING"){const st=C.model_serving_gpu_type||"cpu",it=C.model_serving_scale_out||"small",At=it==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[it]||4,Gt=At>0&&$.dbuPerHour?$.dbuPerHour/At:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Gt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",st,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[At," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",it,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})]})}if(Ce==="DBSQL"){const st=C.dbsql_warehouse_size||"Small",it=C.dbsql_num_clusters||1,en=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),At=$.dbuPerHour?$.dbuPerHour/it:12,Gt=$.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:st}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",At.toFixed(1)," DBU/hr)"]}),it>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${is}min ÷ 60 × ${ln} days`:void 0,children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge($.dbuCost)})]}),Gt&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[en," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge($.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:ge($.dbuCost)}),Gt&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:ge($.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})]})}const Ts=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,as=$.vmCost>0&&!Xt,Ie=Q.cloud||"aws",vt=Q.region||"",Jt=j.find(st=>st.id===Ln||st.name===Ln),bn=j.find(st=>st.id===_n||st.name===_n),fr=R(Ie,Ln)||(Jt==null?void 0:Jt.dbu_rate)||0,zt=R(Ie,_n)||(bn==null?void 0:bn.dbu_rate)||0,Dn=vt&&Ln?S(Ie,vt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,Zt=vt&&_n?S(Ie,vt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,Mn=$.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Xt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:fr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:zt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge($.dbuCost)})]}),as&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(Dn==null?void 0:Dn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(Zt==null?void 0:Zt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge($.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),as&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:ge($.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})})()})]})]}),jt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(G_,{onReset:()=>{W(te=>{const me=new Set(te);return me.delete(T.line_item_id),me})},children:o.jsx(rf,{estimateId:e,lineItem:T,onClose:()=>{W(te=>{const me=new Set(te);return me.delete(T.line_item_id),me}),ae(te=>{const me={...te};return delete me[T.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[T.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[T.line_item_id]:te}))},inline:!0})})})]})},T.line_item_id)})})})]}),Ue!=="table"&&An.map((T,Z)=>{var Tn;const C=K[T.line_item_id],$=C?{...T,...C}:T,pe=yn(T,C),ze=M.has(T.line_item_id),jt=hx($),Rt=K_($.workload_type),Ce=Rt.icon,Xt=Ue==="expanded"||ze;return o.jsx("div",{ref:we=>{Wi.current[T.line_item_id]=we},children:o.jsxs(Ut.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:Z*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:ue("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",Ue==="cards"&&!ze&&"py-3"),onClick:()=>mx(T.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:ue("rounded-lg flex items-center justify-center flex-shrink-0",Ue==="cards"&&!ze?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(Ce,{className:ue(Rt.color,Ue==="cards"&&!ze?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:ue("font-semibold truncate text-[var(--text-primary)]",Ue==="cards"&&!ze&&"text-sm"),title:T.workload_name,children:T.workload_name}),(T.serverless_enabled||T.workload_type==="DBSQL"&&(T.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),T.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Au,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((Tn=s.find(we=>we.workload_type===T.workload_type))==null?void 0:Tn.display_name)||T.workload_type})})]}),o.jsx(Y_,{costs:pe,size:Ue==="cards"&&!ze?"md":"lg",isLoading:(()=>{const we=T.workload_type||"",Qe=!T.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(T.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&Qe&&pe.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:we=>{we.stopPropagation(),Fl(T.line_item_id,!0)},className:ue("p-1.5 rounded-md transition-colors",ke.has(T.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:ke.has(T.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(hc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:we=>fx(we,T),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:we=>{we.stopPropagation(),ux(T)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(tn,{className:"w-4 h-4"})}),ze?o.jsx(ps,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(rr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),Xt&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge(pe.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(T.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge(pe.vmCost)})]}),T.workload_type==="LAKEBASE"&&pe.storageCost!==void 0&&pe.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:ge(pe.storageCost)})]}),T.workload_type==="VECTOR_SEARCH"&&pe.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[pe.unitsUsed," unit",pe.unitsUsed!==1?"s":""]})]}),(T.workload_type==="JOBS"||T.workload_type==="ALL_PURPOSE"||T.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[T.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:T.driver_node_type})]}),T.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[T.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:T.worker_node_type})]})]})]}),gx(T).map((we,Qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:we.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:we.value})]},Qe)),jt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:jt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:we=>{we.stopPropagation(),Fl(T.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(hc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:ke.has(T.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),ke.has(T.line_item_id)?o.jsx(ps,{className:"w-3 h-3"}):o.jsx(rr,{className:"w-3 h-3"})]}),ke.has(T.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const we=$.workload_type||"",Qe=$.serverless_enabled||we==="DBSQL"&&($.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",We=$.runs_per_day&&$.avg_runtime_minutes&&!$.hours_per_month,As=$.runs_per_day||0,Er=$.avg_runtime_minutes||30,ss=$.days_per_month||30,te=$.hours_per_month||730,me=We?As*(Er/60)*ss:te,ln=(pe.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const zt=$.vector_capacity_millions||1,Dn=$.vector_search_mode||"standard",Zt=Dn==="storage_optimized"?64:2,Mn=Math.ceil(zt/Zt),st=Dn==="storage_optimized"?18.29:4,it=$.vector_search_storage_gb||0,en=Mn*20,At=Math.max(0,it-en),Gt=At*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M vectors"]})," ÷ ",Zt,"⌉"]}),o.jsxs("span",{children:["= ",Mn," units ×"]}),o.jsxs("span",{children:[st," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs × $",ln]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge(pe.dbuCost)})]}),it>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[en," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Gt)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),it>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(Gt)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const zt=$.fmapi_quantity||0,Dn=pe.monthlyDBUs/(zt||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Dn.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(we==="LAKEBASE"){const zt=$.lakebase_cu||1,Dn=$.lakebase_ha_nodes||1,Zt=$.lakebase_storage_gb||0,Mn=$.lakebase_pitr_gb||0,st=$.lakebase_snapshot_gb||0,it=.023,en=Zt*15*it,At=Mn*8.7*it,Gt=st*3.91*it,mn=en+At+Gt,Zn=mn>0,On={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(On[Q.cloud||"aws"]||On.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge(pe.dbuCost)})]}),Zt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Zt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(en)})]}),Mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(At)})]}),st>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(st*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Gt)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),Zn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(mn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(we==="MODEL_SERVING"){const zt=$.model_serving_scale_out||"small",Zt=zt==="custom"?$.model_serving_concurrency||4:{small:4,medium:12,large:40}[zt]||4,Mn=Zt>0&&pe.dbuPerHour?pe.dbuPerHour/Zt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",zt,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}const pi=$.num_workers||0,Vt=$.driver_node_type||"",Cr=$.worker_node_type||"",pr=$.photon_enabled,Ts=pe.vmCost>0&&!Qe,Ln=Q.cloud||"aws",_n=Q.region||"",zr=j.find(zt=>zt.id===Vt||zt.name===Vt),as=j.find(zt=>zt.id===Cr||zt.name===Cr),Ie=R(Ln,Vt)||(zr==null?void 0:zr.dbu_rate)||0,vt=R(Ln,Cr)||(as==null?void 0:as.dbu_rate)||0,Jt=_n&&Vt?S(Ln,_n,Vt,$.driver_pricing_tier||"on_demand",$.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?S(Ln,_n,Cr,$.worker_pricing_tier||"spot",$.worker_payment_option||"NA"):null,fr=pe.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[We&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[As," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[fr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",pr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Vt,children:Ie.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:vt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:pi}),o.jsx("span",{children:")"}),pr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[fr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(We?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),Ts&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Vt,children:["$",(Jt==null?void 0:Jt.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:pi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(We?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge(pe.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),Ts&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:ge(pe.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})})()})]})]})]}),ze&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(G_,{onReset:()=>{W(we=>{const Qe=new Set(we);return Qe.delete(T.line_item_id),Qe})},children:o.jsx(rf,{estimateId:e,lineItem:T,onClose:()=>{W(we=>{const Qe=new Set(we);return Qe.delete(T.line_item_id),Qe}),ae(we=>{const Qe={...we};return delete Qe[T.line_item_id],Qe})},onSave:()=>{ae(we=>{const Qe={...we};return delete Qe[T.line_item_id],Qe})},onFormChange:we=>{ae(Qe=>({...Qe,[T.line_item_id]:we}))},inline:!0})})})]})},T.line_item_id)}),Sr?k?o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(rf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Du,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(fs,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",xx().join(", ")]})]}),o.jsxs("button",{onClick:cx,disabled:de||!Bl,className:"btn btn-primary",children:[o.jsx(Ws,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!pt&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(bm,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),dt&&!Ge&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>xt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(rr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),Sr?dt&&!Ge?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:ue("text-3xl font-bold text-lava-600",Ke&&"opacity-60"),children:ge(Pt.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[ge(Pt.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:ge(Pt.totalDBUCost),children:Q_(Pt.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Ke?"Loading...":ge(Pt.totalVMCost),children:Ke?"...":Q_(Pt.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const T=[...r].map(C=>({item:C,costs:yn(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return T.map(({item:C,costs:$},pe)=>{const ze=Pt.totalCost>0?$.totalCost/Pt.totalCost*100:0,jt=Z[pe%Z.length];return o.jsxs("button",{onClick:()=>Od(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[ze.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:ge($.totalCost),children:ge($.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:ue("h-full rounded-full transition-all",jt,"group-hover:brightness-110"),style:{width:`${Math.max(ze,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(bm,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(fs,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),pt&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[St&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>mt(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>mt(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const T=[...r].map(C=>({item:C,costs:yn(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return T.map(({item:C,costs:$},pe)=>{const ze=Pt.totalCost>0?$.totalCost/Pt.totalCost*100:0,jt=Z[pe%Z.length];return o.jsxs("button",{onClick:()=>{mt(!1),Od(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[ze.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:ge($.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:ue("h-full rounded-full",jt),style:{width:`${Math.max(ze,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>xt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>mt(!St),className:ue("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",St?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(iy,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(ps,{className:ue("w-3 h-3 transition-transform",St?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:ge(Pt.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:ge(Pt.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[ge(Pt.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Se.size>0&&o.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Se.size," workload",Se.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:dx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:px,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ce&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Q.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Xe&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Xe.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{at(!1),I(null)},disabled:ot,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:KC,disabled:ot,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ot?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),nt&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Se.size," Workload",Se.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(T=>Se.has(T.line_item_id)).map(T=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",T.workload_name]},T.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>gt(!1),disabled:ot,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:QC,disabled:ot,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ot?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),G&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(fs,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:ZC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=ww(),t=ud();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const eb={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var q;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:eb[n]||eb.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let S="";const R=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?S="JOBS_COMPUTE_(PHOTON)":S="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?S="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?S="ALL_PURPOSE_COMPUTE_(PHOTON)":S="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":(S=`DLT_${R}_COMPUTE`,e.photon_enabled&&(S+="_(PHOTON)"));break;case"DBSQL":const ce=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ce==="SERVERLESS"?S="SERVERLESS_SQL_COMPUTE":ce==="PRO"?S="SQL_PRO_COMPUTE":S="SQL_COMPUTE";break;case"VECTOR_SEARCH":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();S=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":S="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":S="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":S="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":S="DELTA_LIVE_TABLES_SERVERLESS";break;default:S="JOBS_COMPUTE"}let E=null;if(b){const ce=b(S);ce!==null&&ce>0&&(E=ce)}E===null&&(E=x[S]||.2),console.log(`[LiveEstimate] productType=${S}, dbuPrice=${E}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let A=0,D=0,z=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ce=g(e.driver_node_type);ce!==null&&ce>0&&(re=ce)}if(re===.5){const ce=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ce!=null&&ce.dbu_rate&&(re=ce.dbu_rate)}if(g&&e.worker_node_type){const ce=g(e.worker_node_type);ce!==null&&ce>0&&(le=ce)}if(le===.5){const ce=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ce!=null&&ce.dbu_rate&&(le=ce.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ce=S.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ce="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ce="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ce=`DLT_${R}_COMPUTE`)),v){const ve=v(ce);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var at;return ve.sku_type===ce||ve.sku_type===S||((at=ve.sku_type)==null?void 0:at.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)A=(re+le*y)*xe*oe;else{A=(re+le*y)*xe;const Ze=e.driver_pricing_tier||"on_demand",Vr=e.driver_payment_option||"NA",Sr=e.worker_pricing_tier||"spot",yn=e.worker_payment_option||"NA",Pt=d(n,r,e.driver_node_type||"",Ze,Vr),An=d(n,r,e.worker_node_type||"",Sr,yn);z=(Pt+An*y)*_}D=A*_;break;case"DLT":if(e.serverless_enabled)A=(re+le*y)*xe*oe;else{A=(re+le*y)*xe;const Ze=e.driver_pricing_tier||"on_demand",Vr=e.driver_payment_option||"NA",Sr=e.worker_pricing_tier||"spot",yn=e.worker_payment_option||"NA",Pt=d(n,r,e.driver_node_type||"",Ze,Vr),An=d(n,r,e.worker_node_type||"",Sr,yn);z=(Pt+An*y)*_}D=A*_;break;case"DBSQL":const ce=l.find(Ze=>Ze.id===e.dbsql_warehouse_size||Ze.name===e.dbsql_warehouse_size),_e=(ce==null?void 0:ce.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;A=_e*ve,D=A*_;const at=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(at!=="SERVERLESS"){const Ze=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Vr=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Sr=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",yn=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Pt=(q=t.getDBSQLWarehouseConfig)==null?void 0:q.call(t,at,e.dbsql_warehouse_size||"Small");if(Pt){const An=d(n,r,Pt.driver_instance_type,Ze,Vr),rs=d(n,r,Pt.worker_instance_type,Sr,yn);z=(Pt.driver_count*An+Pt.worker_count*rs)*ve*_}else if(e.driver_node_type){const An=d(n,r,e.driver_node_type,Ze,Vr),rs=e.worker_node_type?d(n,r,e.worker_node_type,Sr,yn):0,Il=e.num_workers||0;z=(An+rs*Il)*ve*_}}break;case"VECTOR_SEARCH":const Xe=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,nt=h(Xe),gt=(nt==null?void 0:nt.input_divisor)||(Xe==="storage_optimized"?64e6:2e6),ot=(nt==null?void 0:nt.dbu_per_hour)||(Xe==="storage_optimized"?18.29:4),ft=I*1e6,G=Math.ceil(ft/gt);j=G,A=G*ot,D=A*_;const P=e.vector_search_storage_gb||0,k=G*20,ie=Math.max(0,P-k),M=.023,W=ie*M;P>0&&(H=W,X={totalStorageGB:P,freeStorageGB:k,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const ke=e.model_serving_gpu_type||"cpu",Ne=u.find(Ze=>Ze.id===ke||Ze.name===ke),O=(Ne==null?void 0:Ne.dbu_per_hour)||2,F=e.model_serving_scale_out||"small",ae=F==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[F]||4;A=O*ae,D=A*_;break;case"LAKEBASE":const Ee=e.lakebase_cu||1,Be=e.lakebase_ha_nodes||1,dt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ge=(dt[n]||dt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;A=Ee*Ge*Be,D=A*_;const lt=Math.min(e.lakebase_storage_gb||0,8192),Ke=15,Ot=lt*Ke,U=.023,J=Ot*U,Te=e.lakebase_pitr_gb||0,Q=Te*8.7*U,ct=e.lakebase_snapshot_gb||0,It=ct*3.91*U;(lt>0||Te>0||ct>0)&&(H=J+Q+It,X={totalStorageGB:lt,billableStorageGB:lt,dsuPerGB:Ke,totalDSU:Ot,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const pt=e.fmapi_quantity||0,xt=e.fmapi_rate_type||"input_token",St=["provisioned_scaling","provisioned_entry"].includes(xt),mt=e.fmapi_model?p(e.fmapi_model,xt):null;if(St){const Ze=(mt==null?void 0:mt.dbu_per_hour)||(xt==="provisioned_scaling"?200:50);D=pt*Ze}else{const Ze=(mt==null?void 0:mt.dbu_per_1M_tokens)||(xt==="output_token"?3:1);D=pt*Ze}break;case"FMAPI_PROPRIETARY":const Ue=e.fmapi_quantity||0,Oe=e.fmapi_rate_type||"input_token",De=Oe==="provisioned_scaling",Pe=e.fmapi_endpoint_type||"global",Wt=e.fmapi_context_length||"long",Et=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Oe,Pe,Wt):null;if(De){const Ze=(Et==null?void 0:Et.dbu_per_hour)||150;D=Ue*Ze}else{let Ze=Et==null?void 0:Et.dbu_per_1M_tokens;if(!Ze)switch(Oe){case"output_token":Ze=321.43;break;case"cache_read":Ze=8.57;break;case"cache_write":Ze=85.71;break;default:Ze=21.43}D=Ue*Ze}break;case"DATABRICKS_APPS":const Se=(e.databricks_apps_size||"medium").toLowerCase();A={medium:.5,large:1}[Se]||.5,D=A*_;break;case"CLEAN_ROOM":const on=e.clean_room_collaborators||1,qi=e.days_per_month||30;D=on*qi;break;case"AI_PARSE":if((e.ai_parse_mode||"pages").toLowerCase()==="dbu")D=e.hours_per_month||0;else{const Ze={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Vr=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Ze[Vr]||62.5)}break;case"SHUTTERSTOCK_IMAGEAI":D=(e.shutterstock_images||0)*.857;break;case"LAKEFLOW_CONNECT":D=0;break;default:D=0}const B=D*E,Y=H!==void 0&&!isNaN(H)?H:0,N=B+z+Y,se=isNaN(B)?0:B,de=isNaN(z)?0:z,L=isNaN(N)?se:N,be=isNaN(D)?0:D,Le=isNaN(A)?0:A,w=isNaN(E)?.15:E;return{monthlyDBUs:be,dbuCost:se,vmCost:de,totalCost:L,unitsUsed:j,dbuPerHour:Le,dbuPrice:w,storageCost:Y>0?Y:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function qu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Qm(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Ym(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],tb=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function hs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function nb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?uE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of hs(tb,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of hs(tb,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of hs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of hs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of hs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=qu(t,l),p=d.length>0?hs(d,e.vmSamplesPerCloud):["c5.xlarge"];return nb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Qm(t,l),u=hs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=hs(Ym(l),e.tiersPerCloud);for(const p of u){const f=qu(t,l),h=f.length>0?hs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=nb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[S,R]=m.useState({current:0,total:0}),[E,A]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),z=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:fe,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:B,isPricingBundleLoaded:Y,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:de,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:be,getVectorSearchRate:Le}=bs();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,B),[j,B]),q=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ce=m.useMemo(()=>{const M=new Set(w.map(W=>W.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,W,ke)=>{const Ne=Y&&B.modelServingRates?Object.entries(B.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,F])=>{const K=O.split(":")[1];return{id:K,name:K,dbu_per_hour:F.dbu_rate}}):xe;return{cloud:M,region:W,tier:ke,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:fe,modelServingGPUTypes:Ne,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,F)=>{if(Y&&B.fmapiDatabricksRates){const K=`${M.toLowerCase()}:${O}:${F}`,ae=B.fmapiDatabricksRates[K];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,F)},getFMAPIProprietaryRate:(O,F,K,ae,Ee)=>{if(Y&&B.fmapiProprietaryRates){const Be=ae||"global",dt=Ee||"all",rt=`${M.toLowerCase()}:${O.toLowerCase()}:${F.toLowerCase()}:${Be}:${dt}:${K}`,Ge=B.fmapiProprietaryRates[rt];if(Ge)return{dbu_per_1M_tokens:Ge.is_hourly?void 0:Ge.dbu_rate,dbu_per_hour:Ge.is_hourly?Ge.dbu_rate:void 0}}return be(O,F,K)},getVectorSearchRate:O=>{if(Y&&B.vectorSearchRates){const F=`${M.toLowerCase()}:${O}`,K=B.vectorSearchRates[F];if(K)return{dbu_per_hour:K.dbu_rate,input_divisor:K.input_divisor}}return Le(O)},getInstanceDBURate:O=>Y?Rm(B,M,O):null,getPhotonMultiplier:O=>Y?cE(B,M,O):null,getDBUPrice:O=>Y?Dg(B,M,W,ke,O):null,getDBSQLWarehouseConfig:(O,F)=>Y?cl(B,M,O,F):null}},[X,re,le,fe,xe,oe,Y,B,se,L,be,Le]),ve=async M=>{var Q,ct,et,It,pt,xt,St,mt,Ue;const{environment:W,workloadType:ke,config:Ne}=M,O=_e(W.cloud,W.region,W.tier),F={...Ne,workload_type:ke},K=[];if(ke==="DBSQL"&&Ne.dbsql_warehouse_type!=="SERVERLESS"){const Oe=cl(B,W.cloud,Ne.dbsql_warehouse_type||"PRO",Ne.dbsql_warehouse_size||"Small");if(Oe){const De=Ne.dbsql_driver_pricing_tier||"on_demand",Pe=Ne.dbsql_driver_payment_option||"NA";K.push(de(W.cloud,W.region,Oe.driver_instance_type,De,Pe));const Wt=Ne.dbsql_worker_pricing_tier||"on_demand",Et=Ne.dbsql_worker_payment_option||"NA";K.push(de(W.cloud,W.region,Oe.worker_instance_type,Wt,Et))}}else!Ne.serverless_enabled&&Ne.driver_node_type&&(K.push(de(W.cloud,W.region,Ne.driver_node_type,Ne.driver_pricing_tier||"on_demand",Ne.driver_payment_option||"NA")),Ne.worker_node_type&&K.push(de(W.cloud,W.region,Ne.worker_node_type,Ne.worker_pricing_tier||"spot",Ne.worker_payment_option||"NA")));K.length>0&&await Promise.all(K);const ae=performance.now(),Ee=y8(F,O),Be=performance.now()-ae,dt=performance.now();let rt=null,Ge,lt;const Ke=j8(ke,Ne),Ot=N8(M);try{const Oe=await fetch(Ke,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ot)});if(Oe.ok){const De=await Oe.json();lt=De;const Pe=De.data||De,Wt=((Q=Pe.dbu_calculation)==null?void 0:Q.dbu_per_month)??Pe.dbu_per_month??(((ct=Pe.dbu_calculation)==null?void 0:ct.dbu_per_hour)??Pe.dbu_per_hour??0)*(Ne.hours_per_month||730),Et=((et=Pe.dbu_calculation)==null?void 0:et.dbu_cost_per_month)??((pt=(It=Pe.total_cost)==null?void 0:It.breakdown)==null?void 0:pt.dbu_cost)??Pe.dbu_cost_per_month??Pe.dbu_cost??0,Se=((xt=Pe.vm_costs)==null?void 0:xt.vm_cost_per_month)??((mt=(St=Pe.total_cost)==null?void 0:St.breakdown)==null?void 0:mt.vm_cost)??Pe.vm_cost_per_month??Pe.vm_cost??0;let Ct=0;typeof Pe.total_cost=="object"&&Pe.total_cost!==null?Ct=Pe.total_cost.cost_per_month??Et+Se:typeof Pe.total_cost=="number"?Ct=Pe.total_cost:Ct=Pe.total_cost_per_month??Et+Se,rt={monthlyDBUs:Wt,dbuCost:Et,vmCost:Se,totalCost:Ct},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:De,parsed:rt})}else{const De=await Oe.text();try{const Pe=JSON.parse(De);Ge=`HTTP ${Oe.status}: ${((Ue=Pe.detail)==null?void 0:Ue.message)||Pe.detail||Pe.message||De}`}catch{Ge=`HTTP ${Oe.status}: ${De}`}}}catch(Oe){Ge=Oe instanceof Error?Oe.message:"Unknown error"}const U=performance.now()-dt,{discrepancies:J,totalCostDiffPercent:Te}=P8(Ee,rt,g),Ve=Te<=g&&!Ge;return{testCase:M,localResult:Ee,apiResult:rt,apiError:Ge,apiRequestBody:Ot,apiRawResponse:lt,localTimeMs:Be,apiTimeMs:U,matches:Ve,totalCostDiffPercent:Te,discrepancies:J}},at=()=>{D.current=!0,i(!0)},Xe=()=>{D.current=!1,i(!1)},I=()=>{z.current=!0,l(!0),D.current=!1,i(!1)},nt=async()=>{for(;D.current&&!z.current;)await new Promise(M=>setTimeout(M,100))},gt=async()=>{r(!0),i(!1),l(!1),D.current=!1,z.current=!1,t([]),R({current:0,total:q.length});for(let M=0;M[...Ne,ke])}u(null),r(!1),i(!1),l(!1)},ot=async()=>{const{cloud:M,region:W,tier:ke,workloadType:Ne,serverless:O,photon:F,driverNode:K,workerNode:ae,numWorkers:Ee,runsPerDay:Be,avgRuntime:dt,daysPerMonth:rt,hoursPerMonth:Ge}=E,lt={id:"custom-single",name:`Custom ${Ne} Test`,category:Ne,workloadType:Ne,environment:{cloud:M,region:W,tier:ke},config:{serverless_enabled:O,photon_enabled:F,driver_node_type:K,worker_node_type:ae,num_workers:Ee,runs_per_day:Be,avg_runtime_minutes:dt,days_per_month:rt,hours_per_month:Ge,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Ke=await ve(lt);t([Ke]),u(null),r(!1)},ft=m.useMemo(()=>{const M=e.filter(K=>K.matches).length,W=e.filter(K=>!K.matches).length,ke=e.filter(K=>K.apiError).length,Ne=e.length>0?e.reduce((K,ae)=>K+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((K,ae)=>K+ae.apiTimeMs,0)/e.length:0,F={};return e.forEach(K=>{const ae=K.testCase.category;F[ae]||(F[ae]={passed:0,failed:0}),K.matches?F[ae].passed++:F[ae].failed++}),{passed:M,failed:W,apiErrors:ke,avgLocalTime:Ne,avgApiTime:O,byCategory:F}},[e]),G=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],W=e.map(K=>{var ae;return[K.testCase.id,K.testCase.name,K.testCase.category,K.testCase.environment.cloud,K.testCase.environment.region,K.testCase.environment.tier,K.matches?"PASS":"FAIL",K.localResult.totalCost.toFixed(2),((ae=K.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",K.totalCostDiffPercent.toFixed(2),K.localTimeMs.toFixed(1),K.apiTimeMs.toFixed(1),K.apiError||""]}),ke=[M.join(","),...W.map(K=>K.map(ae=>`"${ae}"`).join(","))].join(` +`),Ne=new Blob([ke],{type:"text/csv"}),O=URL.createObjectURL(Ne),F=document.createElement("a");F.href=O,F.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,F.click()},P=M=>{const W=new Set(d);W.has(M)?W.delete(M):W.add(M),p(W)},k=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(dD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Au,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(tD,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:G,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(MD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:at,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(n3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Xe,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(fS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:gt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Run ",q.length," Tests"]})]})]}),y&&o.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Au,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:ot,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:E.cloud,onChange:M=>A({...E,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:E.region,onChange:M=>A({...E,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Qm(B,E.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:E.tier,onChange:M=>A({...E,tier:M.target.value}),className:"w-full text-sm",children:Ym(E.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:E.workloadType,onChange:M=>A({...E,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:E.serverless,onChange:M=>A({...E,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:E.photon,onChange:M=>A({...E,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:E.driverNode,onChange:M=>A({...E,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:qu(B,E.cloud,E.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:E.workerNode,onChange:M=>A({...E,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:qu(B,E.cloud,E.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:E.numWorkers,onChange:M=>A({...E,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:E.runsPerDay,onChange:M=>A({...E,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:E.avgRuntime,onChange:M=>A({...E,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:E.daysPerMonth,onChange:M=>A({...E,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(PD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Qm(B,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Ym(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:W=>{W.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(ke=>ke!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:W})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:ke=>H({...j,[M]:ke.target.checked}),className:"rounded"}),W]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:W})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:ke=>H({...j,[M]:ke.target.checked}),className:"rounded"}),W]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ce.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Y?"text-green-500":"text-yellow-500"}`,children:[Y?o.jsx(Tu,{className:"w-5 h-5"}):o.jsx(fs,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Y?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:ft.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:ft.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:ft.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[ft.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[ft.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(ft.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(ft.byCategory).map(([M,{passed:W,failed:ke}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[W," ✓"]}),ke>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[ke," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx(Ut.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${S.current/S.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[S.current," / ",S.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:q.map(M=>{const W=e.find(O=>O.testCase.id===M.id),ke=d.has(M.id),Ne=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${W&&!W.matches?"bg-red-500/5":""} + ${Ne?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>W&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[W&&(ke?o.jsx(rr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W?k(W.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W!=null&&W.apiResult?k(W.apiResult.totalCost):W!=null&&W.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:W?o.jsxs("span",{className:W.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[W.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Ne?o.jsx(Yr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):W?W.matches?o.jsx(Tu,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(N3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),W&&ke&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(W.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:k(W.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:k(W.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:k(W.localResult.totalCost)})]}),W.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",W.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),W.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:W.apiError})}):W.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(W.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:k(W.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:k(W.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:k(W.apiResult.totalCost)})]})]}):null]})]}),W.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:W.discrepancies.map((O,F)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},F))})]})})]}),W.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(W.apiRawResponse,null,2)})})]}),W.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(W.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:W.testCase.environment,config:W.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(PN,{children:o.jsxs(_i,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(_i,{index:!0,element:o.jsx(u8,{})}),o.jsx(_i,{path:"calculator",element:o.jsx(Z_,{})}),o.jsx(_i,{path:"calculator/:id",element:o.jsx(Z_,{})}),o.jsx(_i,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(_i,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();sf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(ON,{children:[o.jsx(A8,{}),o.jsx(jP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-DkwIrp1H.js b/lakemeter/backend/static/assets/index-DkwIrp1H.js new file mode 100644 index 00000000..c01460d3 --- /dev/null +++ b/lakemeter/backend/static/assets/index-DkwIrp1H.js @@ -0,0 +1,354 @@ +function r2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var ps=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},qe={};/** + * @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 pl=Symbol.for("react.element"),s2=Symbol.for("react.portal"),i2=Symbol.for("react.fragment"),o2=Symbol.for("react.strict_mode"),a2=Symbol.for("react.profiler"),l2=Symbol.for("react.provider"),c2=Symbol.for("react.context"),u2=Symbol.for("react.forward_ref"),d2=Symbol.for("react.suspense"),f2=Symbol.for("react.memo"),p2=Symbol.for("react.lazy"),_x=Symbol.iterator;function m2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Oo(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Oo.prototype.isReactComponent={};Oo.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")};Oo.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ob(){}ob.prototype=Oo.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ob;Xm.constructor=Ym;sb(Xm,Oo.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ab=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)ab.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=B[de];if(0>>1;des(Ae,E))ws(Y,Ae)?(B[de]=Y,B[w]=E,de=w):(B[de]=Ae,B[be]=E,de=be);else if(ws(Y,E))B[de]=Y,B[w]=E,de=w;else break e}}return q}function s(B,q){var E=B.sortIndex-q.sortIndex;return E!==0?E:B.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,p=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=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){for(var q=n(u);q!==null;){if(q.callback===null)r(u);else if(q.startTime<=B)r(u),q.sortIndex=q.expirationTime,t(c,q);else break;q=n(u)}}function S(B){if(v=!1,_(B),!g)if(n(c)!==null)g=!0,ve(R);else{var q=n(u);q!==null&&oe(S,q.startTime-B)}}function R(B,q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var E=p;try{for(_(q),f=n(c);f!==null&&(!(f.expirationTime>q)||B&&!H());){var de=f.callback;if(typeof de=="function"){f.callback=null,p=f.priorityLevel;var pe=de(f.expirationTime<=q);q=e.unstable_now(),typeof pe=="function"?f.callback=pe:f===n(c)&&r(c),_(q)}else r(c);f=n(c)}if(f!==null)var A=!0;else{var be=n(u);be!==null&&oe(S,be.startTime-q),A=!1}return A}finally{f=null,p=E,h=!1}}var k=!1,T=null,D=-1,z=5,j=-1;function H(){return!(e.unstable_now()-jB||125de?(B.sortIndex=E,t(u,B),n(c)===null&&B===n(u)&&(v?(x(D),D=-1):v=!0,oe(S,E-de))):(B.sortIndex=pe,t(c,B),g||h||(g=!0,ve(R))),B},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(B){var q=p;return function(){var E=p;p=q;try{return B.apply(this,arguments)}finally{p=E}}}})(mb);pb.exports=mb;var E2=pb.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 j2=m,or=E2;function ee(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"),ip=Object.prototype.hasOwnProperty,N2=/^[: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]*$/,kx={},Sx={};function P2(e){return ip.call(Sx,e)?!0:ip.call(kx,e)?!1:N2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function R2(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 T2(e,t,n,r){if(t===null||typeof t>"u"||R2(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 Bn(e,t,n,r,s,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var gn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){gn[e]=new Bn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];gn[t]=new Bn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){gn[e]=new Bn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){gn[e]=new Bn(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){gn[e]=new Bn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){gn[e]=new Bn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){gn[e]=new Bn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){gn[e]=new Bn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){gn[e]=new Bn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);gn[t]=new Bn(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(eh,th);gn[t]=new Bn(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(eh,th);gn[t]=new Bn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){gn[e]=new Bn(e,1,!1,e.toLowerCase(),null,!1,!1)});gn.xlinkHref=new Bn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){gn[e]=new Bn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=gn.hasOwnProperty(t)?gn[t]:null;(s!==null?s.type!==0:r||!(2l||s[o]!==i[l]){var c=` +`+s[o].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{Fd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?da(e):""}function L2(e){switch(e.tag){case 5:return da(e.type);case 16:return da("Lazy");case 13:return da("Suspense");case 19:return da("SuspenseList");case 0:case 2:case 15:return e=Bd(e.type,!1),e;case 11:return e=Bd(e.type.render,!1),e;case 1:return e=Bd(e.type,!0),e;default:return""}}function cp(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 Qi:return"Fragment";case Ki:return"Portal";case op:return"Profiler";case rh:return"StrictMode";case ap:return"Suspense";case lp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cp(e.type)||"Memo";case Os:t=e._payload,e=e._init;try{return cp(e(t))}catch{}}return null}function A2(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 cp(t);case 8:return t===rh?"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 ti(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function D2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){r=""+o,i.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 Kl(e){e._valueTracker||(e._valueTracker=D2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 up(e,t){var n=t.checked;return Dt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ex(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ti(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function dp(e,t){bb(e,t);var n=ti(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")?fp(e,t.type,n):t.hasOwnProperty("defaultValue")&&fp(e,t.type,ti(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 fp(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var fa=Array.isArray;function po(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fa(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var va={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},M2=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(e){M2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),va[t]=va[e]})});function Cb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||va.hasOwnProperty(e)&&va[e]?(""+t).trim():t+"px"}function Eb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Cb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var O2=Dt({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 hp(e,t){if(t){if(O2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gp(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 xp=null;function oh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vp=null,mo=null,ho=null;function Rx(e){if(e=gl(e)){if(typeof vp!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vp(e.stateNode,e.type,t))}}function jb(e){mo?ho?ho.push(e):ho=[e]:mo=e}function Nb(){if(mo){var e=mo,t=ho;if(ho=mo=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(G2(e)/K2|0)|0}var Yl=64,Xl=4194304;function pa(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~s;l!==0?r=pa(l):(i&=o,i!==0&&(r=pa(i)))}else o=n&~s,o!==0?r=pa(o):i!==0&&(r=pa(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 ml(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Lr(t),e[t]=n}function J2(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=_a),Bx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Ej.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Yi=!1;function Nj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Bx);case"textInput":return e=t.data,e===Bx&&Ux?null:e;default:return null}}function Pj(e,t){if(Yi)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=zs=null,Yi=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Fj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var o=qx(n,r);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>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,Xi=null,Sp=null,wa=null,Cp=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cp||Xi==null||Xi!==Yc(r)||(r=Xi,"selectionStart"in r&&hh(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}),wa&&Ha(wa,r)||(wa=r,r=ru(Sp,"onSelect"),0eo||(e.current=Tp[eo],Tp[eo]=null,eo--)}function _t(e,t){eo++,Tp[eo]=e.current,e.current=t}var ni={},En=oi(ni),$n=oi(!1),Ai=ni;function wo(e,t){var n=e.type.contextTypes;if(!n)return ni;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Hn(e){return e=e.childContextTypes,e!=null}function iu(){wt($n),wt(En)}function Zx(e,t,n){if(En.current!==ni)throw Error(ee(168));_t(En,t),_t($n,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,A2(e)||"Unknown",s));return Dt({},n,r)}function ou(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ni,Ai=En.current,_t(En,e),_t($n,$n.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Ai),r.__reactInternalMemoizedMergedChildContext=e,wt($n),wt(En),_t(En,e)):wt($n),_t($n,n)}var us=null,Ju=!1,Zd=!1;function u1(e){us===null?us=[e]:us.push(e)}function Yj(e){Ju=!0,u1(e)}function ai(){if(!Zd&&us!==null){Zd=!0;var e=0,t=ut;try{var n=us;for(ut=1;e>=o,s-=o,hs=1<<32-Lr(t)+s|n<D?(z=T,T=null):z=T.sibling;var j=p(x,T,_[D],S);if(j===null){T===null&&(T=z);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),k===null?R=j:k.sibling=j,k=j,T=z}if(D===_.length)return n(x,T),jt&&vi(x,D),R;if(T===null){for(;D<_.length;D++)T=f(x,_[D],S),T!==null&&(y=i(T,y,D),k===null?R=T:k.sibling=T,k=T);return jt&&vi(x,D),R}for(T=r(x,T);D<_.length;D++)z=h(T,x,D,_[D],S),z!==null&&(e&&z.alternate!==null&&T.delete(z.key===null?D:z.key),y=i(z,y,D),k===null?R=z:k.sibling=z,k=z);return e&&T.forEach(function(H){return t(x,H)}),jt&&vi(x,D),R}function v(x,y,_,S){var R=Jo(_);if(typeof R!="function")throw Error(ee(150));if(_=R.call(_),_==null)throw Error(ee(151));for(var k=R=null,T=y,D=y=0,z=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?(z=T,T=null):z=T.sibling;var H=p(x,T,j.value,S);if(H===null){T===null&&(T=z);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),k===null?R=H:k.sibling=H,k=H,T=z}if(j.done)return n(x,T),jt&&vi(x,D),R;if(T===null){for(;!j.done;D++,j=_.next())j=f(x,j.value,S),j!==null&&(y=i(j,y,D),k===null?R=j:k.sibling=j,k=j);return jt&&vi(x,D),R}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,S),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),k===null?R=j:k.sibling=j,k=j);return e&&T.forEach(function(X){return t(x,X)}),jt&&vi(x,D),R}function b(x,y,_,S){if(typeof _=="object"&&_!==null&&_.type===Qi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var R=_.key,k=y;k!==null;){if(k.key===R){if(R=_.type,R===Qi){if(k.tag===7){n(x,k.sibling),y=s(k,_.props.children),y.return=x,x=y;break e}}else if(k.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Os&&r0(R)===k.type){n(x,k.sibling),y=s(k,_.props),y.ref=ra(x,k,_),y.return=x,x=y;break e}n(x,k);break}else t(x,k);k=k.sibling}_.type===Qi?(y=Ri(_.props.children,x.mode,S,_.key),y.return=x,x=y):(S=Ic(_.type,_.key,_.props,null,x.mode,S),S.ref=ra(x,y,_),S.return=x,x=S)}return o(x);case Ki:e:{for(k=_.key;y!==null;){if(y.key===k)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=lf(_,x.mode,S),y.return=x,x=y}return o(x);case Os:return k=_._init,b(x,y,k(_._payload),S)}if(fa(_))return g(x,y,_,S);if(Jo(_))return v(x,y,_,S);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=af(_,x.mode,S),y.return=x,x=y),o(x)):n(x,y)}return b}var So=m1(!0),h1=m1(!1),cu=oi(null),uu=null,ro=null,yh=null;function _h(){yh=ro=uu=null}function bh(e){var t=cu.current;wt(cu),e._currentValue=t}function Dp(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 xo(e,t){uu=e,yh=ro=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(zn=!0),e.firstContext=null)}function _r(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ro===null){if(uu===null)throw Error(ee(308));ro=e,uu.dependencies={lanes:0,firstContext:e}}else ro=ro.next=e;return t}var Ci=null;function wh(e){Ci===null?Ci=[e]:Ci.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,ks(e,r)}function ks(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 Is=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 xs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ys(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,ks(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,ks(e,n)}function Tc(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=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};i===null?s=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Is=!1;var i=s.firstBaseUpdate,o=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?i=u:o.next=u,o=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var f=s.baseState;o=0,d=u=c=null,l=i;do{var p=l.lane,h=l.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(p=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){f=g.call(h,f,p);break e}f=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,p=typeof g=="function"?g.call(h,f,p):g,p==null)break e;f=Dt({},f,p);break e;case 2:Is=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=s.effects,p===null?s.effects=[l]:p.push(l))}else h={eventTime:h,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=f):d=d.next=h,o|=p;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;p=l,l=p.next,p.next=null,s.lastBaseUpdate=p,s.shared.pending=null}}while(!0);if(d===null&&(c=f),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do o|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Oi|=o,e.lanes=o,e.memoizedState=f}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tf.transition;tf.transition={};try{e(!1),t()}finally{ut=n,tf.transition=r}}function D1(){return br().memoizedState}function e5(e,t,n){var r=Js(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Ar(n,e,r,s),I1(n,t,r)}}function t5(e,t,n){var r=Js(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,n);if(s.hasEagerState=!0,s.eagerState=l,Mr(l,o)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Ar(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===At||t!==null&&t===At}function O1(e,t){ka=pu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:_r,useCallback:yn,useContext:yn,useEffect:yn,useImperativeHandle:yn,useInsertionEffect:yn,useLayoutEffect:yn,useMemo:yn,useReducer:yn,useRef:yn,useState:yn,useDebugValue:yn,useDeferredValue:yn,useTransition:yn,useMutableSource:yn,useSyncExternalStore:yn,useId:yn,unstable_isNewReconciler:!1},n5={readContext:_r,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:_r,useEffect:a0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ac(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ac(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ac(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=e5.bind(null,At,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:o0,useDebugValue:Th,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=o0(!1),t=e[0];return e=Zj.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=At,s=qr();if(jt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),dn===null)throw Error(ee(349));Mi&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,a0(k1.bind(null,r,i,e),[e]),r.flags|=2048,Ja(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=dn.identifierPrefix;if(jt){var n=gs,r=hs;n=(r&~(1<<32-Lr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ya++,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[Gr]=t,e[Ga]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(o=gp(n,r),n){case"dialog":bt("cancel",e),bt("close",e),s=r;break;case"iframe":case"object":case"embed":bt("load",e),s=r;break;case"video":case"audio":for(s=0;sjo&&(t.flags|=128,r=!0,sa(i,!1),t.lanes=4194304)}else{if(!r)if(e=fu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),sa(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!jt)return _n(t),null}else 2*$t()-i.renderingStartTime>jo&&n!==1073741824&&(t.flags|=128,r=!0,sa(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=$t(),t.sibling=null,n=Tt.current,_t(Tt,r?n&1|2:n&1),t):(_n(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?er&1073741824&&(_n(t),t.subtreeFlags&6&&(t.flags|=8192)):_n(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function u5(e,t){switch(xh(t),t.tag){case 1:return Hn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Co(),wt($n),wt(En),Eh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ch(t),null;case 13:if(wt(Tt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));ko()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return wt(Tt),null;case 4:return Co(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var oc=!1,wn=!1,d5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function so(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Ft(e,t,r)}else n.current=null}function $p(e,t,n){try{n()}catch(r){Ft(e,t,r)}}var v0=!1;function f5(e,t){if(Ep=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=e,p=null;t:for(;;){for(var h;f!==n||s!==0&&f.nodeType!==3||(l=o+s),f!==i||r!==0&&f.nodeType!==3||(c=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(h=f.firstChild)!==null;)p=f,f=h;for(;;){if(f===e)break t;if(p===n&&++u===s&&(l=o),p===i&&++d===r&&(c=o),(h=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jp={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Nr(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(S){Ft(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Sa(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$p(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hp(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Ga],delete t[Rp],delete t[Kj],delete t[Qj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qp(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=su));else if(r!==4&&(e=e.child,e!==null))for(qp(e,t,n),e=e.sibling;e!==null;)qp(e,t,n),e=e.sibling}function Wp(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(Wp(e,t,n),e=e.sibling;e!==null;)Wp(e,t,n),e=e.sibling}var pn=null,Rr=!1;function As(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:wn||so(n,t);case 6:var r=pn,s=Rr;pn=null,As(e,t,n),pn=r,Rr=s,pn!==null&&(Rr?(e=pn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):pn.removeChild(n.stateNode));break;case 18:pn!==null&&(Rr?(e=pn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),za(e)):Jd(pn,n.stateNode));break;case 4:r=pn,s=Rr,pn=n.stateNode.containerInfo,Rr=!0,As(e,t,n),pn=r,Rr=s;break;case 0:case 11:case 14:case 15:if(!wn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&$p(n,t,o),s=s.next}while(s!==r)}As(e,t,n);break;case 1:if(!wn&&(so(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Ft(n,t,l)}As(e,t,n);break;case 21:As(e,t,n);break;case 22:n.mode&1?(wn=(r=wn)||n.memoizedState!==null,As(e,t,n),wn=r):As(e,t,n);break;default:As(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new d5),t.forEach(function(r){var s=b5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Er(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=o),r&=~i}if(r=s,r=$t()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*m5(r/1960))-r,10e?16:e,$s===null)var r=!1;else{if(e=$s,$s=null,xu=0,Je&6)throw Error(ee(331));var s=Je;for(Je|=4,ge=e.current;ge!==null;){var i=ge,o=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;c$t()-Mh?Pi(e,0):Dh|=n),qn(e,t)}function ow(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=ks(e,t),e!==null&&(ml(e,t,n),qn(e,n))}function _5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ow(e,n)}function b5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),ow(e,n)}var aw;aw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||$n.current)zn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return zn=!1,l5(e,t,n);zn=!!(e.flags&131072)}else zn=!1,jt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=wo(t,En.current);xo(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Hn(r)?(i=!0,ou(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Op(t,r,e,n),t=Bp(null,t,r,!0,i,n)):(t.tag=0,jt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=k5(r),e=Nr(r,e),s){case 0:t=Fp(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=p0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Nr(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),Fp(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=Eo(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=Eo(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(nr=Qs(t.stateNode.containerInfo.firstChild),rr=t,jt=!0,Tr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ko(),r===s){t=Ss(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Ap(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,o=s.children,Np(r,s)?o=null:i!==null&&Np(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,o,n),t.child;case 6:return e===null&&Ap(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=So(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),p0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,o=s.value,_t(cu,r._currentValue),r._currentValue=o,i!==null)if(Mr(i.value,o)){if(i.children===s.children&&!$n.current){t=Ss(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=xs(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Dp(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(ee(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Dp(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,xo(t,n),s=_r(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Nr(r,t.pendingProps),s=Nr(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),Dc(e,t),t.tag=1,Hn(r)?(e=!0,ou(t)):e=!1,xo(t,n),F1(t,r,s),Op(t,r,s,n),Bp(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function w5(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 vr(e,t,n,r){return new w5(e,t,n,r)}function Bh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function k5(e){if(typeof e=="function")return Bh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function Zs(e,t){var n=e.alternate;return n===null?(n=vr(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 Ic(e,t,n,r,s,i){var o=2;if(r=e,typeof e=="function")Bh(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Qi:return Ri(n.children,s,i,t);case rh:o=8,s|=8;break;case op:return e=vr(12,n,t,s|2),e.elementType=op,e.lanes=i,e;case ap:return e=vr(13,n,t,s),e.elementType=ap,e.lanes=i,e;case lp:return e=vr(19,n,t,s),e.elementType=lp,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:o=10;break e;case xb:o=9;break e;case sh:o=11;break e;case ih:o=14;break e;case Os:o=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=vr(o,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ri(e,t,n,r){return e=vr(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=vr(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function af(e,t,n){return e=vr(6,e,null,t),e.lanes=n,e}function lf(e,t,n){return t=vr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function S5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,o,l,c){return e=new S5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=vr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function C5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(fw)}catch(e){console.error(e)}}fw(),fb.exports=lr;var oo=fb.exports,N0=oo;sp.createRoot=N0.createRoot,sp.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 el(){return el=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function T5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xp(e,t,n,r){return n===void 0&&(n=null),el({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Bo(t):t,{state:n,key:t&&t.key||r||T5()})}function _u(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 Bo(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 L5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,o=s.history,l=Hs.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(el({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function f(){l=Hs.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function p(b,x){l=Hs.Push;let y=Xp(v.location,b,x);u=d()+1;let _=R0(y,u),S=v.createHref(y);try{o.pushState(_,"",S)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;s.location.assign(S)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Hs.Replace;let y=Xp(v.location,b,x);u=d();let _=R0(y,u),S=v.createHref(y);o.replaceState(_,"",S),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Qt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,o)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,f),c=b,()=>{s.removeEventListener(P0,f),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:p,replace:h,go(b){return o.go(b)}};return v}var T0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(T0||(T0={}));function A5(e,t,n){return n===void 0&&(n="/"),D5(e,t,n)}function D5(e,t,n,r){let s=typeof t=="string"?Bo(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let o=pw(e);M5(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};c.relativePath.startsWith("/")&&(Qt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ei([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Qt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),pw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:z5(u,i.index),routesMeta:d})};return e.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,o);else for(let c of mw(i.path))s(i,o,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let o=mw(r.join("/")),l=[];return l.push(...o.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function M5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:$5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const O5=/^:[\w-]+$/,I5=3,F5=2,B5=1,U5=10,V5=-2,L0=e=>e==="*";function z5(e,t){let n=e.split("/"),r=n.length;return n.some(L0)&&(r+=V5),t&&(r+=F5),n.filter(s=>!L0(s)).reduce((s,i)=>s+(O5.test(i)?I5:i===""?B5:U5),r)}function $5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function H5(e,t,n){let{routesMeta:r}=e,s={},i="/",o=[];for(let l=0;l{let{paramName:p,isOptional:h}=d;if(p==="*"){let v=l[f]||"";o=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[f];return h&&!g?u[p]=void 0:u[p]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function W5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function G5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 K5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Q5=e=>K5.test(e);function Y5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Bo(e):e,i;if(n)if(Q5(n))i=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?i=A0(n.substring(1),"/"):i=A0(n,t)}else i=t;return{pathname:i,search:Z5(r),hash:eN(s)}}function A0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function cf(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 X5(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=X5(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Bo(e):(s=el({},e),Qt(!s.pathname||!s.pathname.includes("?"),cf("?","pathname","search",s)),Qt(!s.pathname||!s.pathname.includes("#"),cf("#","pathname","hash",s)),Qt(!s.search||!s.search.includes("#"),cf("#","search","hash",s)));let i=e===""||s.pathname==="",o=i?"/":s.pathname,l;if(o==null)l=n;else{let f=t.length-1;if(!r&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),f-=1;s.pathname=p.join("/")}l=f>=0?t[f]:"/"}let c=Y5(s,l),u=o&&o!=="/"&&o.endsWith("/"),d=(i||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ei=e=>e.join("/").replace(/\/\/+/g,"/"),J5=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Z5=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,eN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function tN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const nN=["get",...xw];new Set(nN);/** + * React Router v6.30.2 + * + * 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 tl(){return tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=gw(u,JSON.parse(o),i,d.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:ei([t,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[t,r,o,i,e])}const oN=m.createContext(null);function aN(e){let t=m.useContext(Ns).outlet;return t&&m.createElement(oN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Ns),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(zi),{matches:s}=m.useContext(Ns),{pathname:i}=yl(),o=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(o),i,n==="path"),[e,o,i,n])}function lN(e,t){return cN(e,t)}function cN(e,t,n,r){vl()||Qt(!1);let{navigator:s}=m.useContext(zi),{matches:i}=m.useContext(Ns),o=i[i.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=yl(),d;if(t){var f;let b=typeof t=="string"?Bo(t):t;c==="/"||(f=b.pathname)!=null&&f.startsWith(c)||Qt(!1),d=b}else d=u;let p=d.pathname||"/",h=p;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+p.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=A5(e,{pathname:h}),v=mN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ei([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ei([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:tl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Hs.Pop}},v):v}function uN(){let e=vN(),t=tN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const dN=m.createElement(uN,null);class fN extends m.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?m.createElement(Ns.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function pN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Ns.Provider,{value:t},r)}function mN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Qt(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,f,p)=>{let h,g=!1,v=null,b=null;n&&(h=l&&f.route.id?l[f.route.id]:void 0,v=f.route.errorElement||dN,c&&(u<0&&p===0?(_N("route-fallback"),g=!0,b=null):u===p&&(g=!0,b=f.route.hydrateFallbackElement||null)));let x=t.concat(o.slice(0,p+1)),y=()=>{let _;return h?_=v:g?_=b:f.route.Component?_=m.createElement(f.route.Component,null):f.route.element?_=f.route.element:_=d,m.createElement(pN,{match:f,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?m.createElement(fN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function hN(e){let t=m.useContext(Wh);return t||Qt(!1),t}function gN(e){let t=m.useContext(rN);return t||Qt(!1),t}function xN(e){let t=m.useContext(Ns);return t||Qt(!1),t}function Sw(e){let t=xN(),n=t.matches[t.matches.length-1];return n.route.id||Qt(!1),n.route.id}function vN(){var e;let t=m.useContext(vw),n=gN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function yN(){let{router:e}=hN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,tl({fromRouteId:t},i)))},[e,t])}const D0={};function _N(e,t,n){D0[e]||(D0[e]=!0)}function bN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function wN(e){return aN(e.context)}function _i(e){Qt(!1)}function kN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Hs.Pop,navigator:i,static:o=!1,future:l}=e;vl()&&Qt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:o,future:tl({v7_relativeSplatPath:!1},l)}),[c,l,i,o]);typeof r=="string"&&(r=Bo(r));let{pathname:d="/",search:f="",hash:p="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:f,hash:p,state:h,key:g},navigationType:s}},[c,d,f,p,h,g,s]);return v==null?null:m.createElement(zi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function SN(e){let{children:t,location:n}=e;return lN(Jp(t),n)}new Promise(()=>{});function Jp(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jp(r.props.children,i));return}r.type!==_i&&Qt(!1),!r.props.index||!r.props.children||Qt(!1);let o={id:r.props.id||i.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=Jp(r.props.children,i)),n.push(o)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zp(){return Zp=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function EN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function jN(e,t){return e.button===0&&(!t||t==="_self")&&!EN(e)}const NN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],PN="6";try{window.__reactRouterVersion=PN}catch{}const RN="startTransition",M0=y2[RN];function TN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=R5({window:s,v5Compat:!0}));let o=i.current,[l,c]=m.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=m.useCallback(f=>{u&&M0?M0(()=>c(f)):c(f)},[c,u]);return m.useLayoutEffect(()=>o.listen(d),[o,d]),m.useEffect(()=>bN(r),[r]),m.createElement(kN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const LN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",AN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:f}=t,p=CN(t,NN),{basename:h}=m.useContext(zi),g,v=!1;if(typeof u=="string"&&AN.test(u)&&(g=u,LN))try{let _=new URL(window.location.href),S=u.startsWith("//")?new URL(_.protocol+u):new URL(u),R=qh(S.pathname,h);S.origin===_.origin&&R!=null?u=R+S.search+S.hash:v=!0}catch{}let b=sN(u,{relative:s}),x=DN(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:f});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zp({},p,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function DN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:o,viewTransition:l}=t===void 0?{}:t,c=cd(),u=yl(),d=bw(e,{relative:o});return m.useCallback(f=>{if(jN(f,n)){f.preventDefault();let p=r!==void 0?r:_u(u)===_u(d);c(e,{replace:p,state:s,preventScrollReset:i,relative:o,viewTransition:l})}},[u,c,d,r,s,n,e,i,o,l])}let MN={data:""},ON=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||MN},IN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,FN=/\/\*[^]*?\*\/| +/g,F0=/\n+/g,Vs=(e,t)=>{let n="",r="",s="";for(let i in e){let o=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+o+";":r+=i[1]=="f"?Vs(o,i):i+"{"+Vs(o,i[1]=="k"?"":t)+"}":typeof o=="object"?r+=Vs(o,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):o!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=Vs.p?Vs.p(i,o):i+":"+o+";")}return n+(t&&s?t+"{"+s+"}":s)+r},os={},Cw=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Cw(e[n]);return t}return e},BN=(e,t,n,r,s)=>{let i=Cw(e),o=os[i]||(os[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!os[o]){let c=i!==e?e:(u=>{let d,f,p=[{}];for(;d=IN.exec(u.replace(FN,""));)d[4]?p.shift():d[3]?(f=d[3].replace(F0," ").trim(),p.unshift(p[0][f]=p[0][f]||{})):p[0][d[1]]=d[2].replace(F0," ").trim();return p[0]})(e);os[o]=Vs(s?{["@keyframes "+o]:c}:c,n?"":"."+o)}let l=n&&os.g?os.g:null;return n&&(os.g=os[o]),((c,u,d,f)=>{f?u.data=u.data.replace(f,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(os[o],t,r,l),o},UN=(e,t,n)=>e.reduce((r,s,i)=>{let o=t[i];if(o&&o.call){let l=o(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;o=c?"."+c:l&&typeof l=="object"?l.props?"":Vs(l,""):l===!1?"":l}return r+s+(o??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return BN(n.unshift?n.raw?UN(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,ON(t.target),t.g,t.o,t.k)}let Ew,em,tm;ud.bind({g:1});let Cs=ud.bind({k:1});function VN(e,t,n,r){Vs.p=t,Ew=e,em=n,tm=r}function li(e,t){let n=this||{};return function(){let r=arguments;function s(i,o){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Ew(u,l)}return s}}var zN=e=>typeof e=="function",wu=(e,t)=>zN(e)?e(t):e,$N=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),HN=20,Gh="default",Nw=(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 Nw(e,{type:e.toasts.find(o=>o.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(o=>o.id===s||s===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 i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+i}))}}},Fc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:HN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Fc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Tw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),qN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},WN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},GN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Fc.push([t,r]),()=>{let o=Fc.findIndex(([l])=>l===t);o>-1&&Fc.splice(o,1)}),[t]);let i=n.toasts.map(o=>{var l,c,u;return{...e,...e[o.type],...o,removeDelay:o.removeDelay||((l=e[o.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:o.duration||((c=e[o.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||WN[o.type],style:{...e.style,...(u=e[o.type])==null?void 0:u.style,...o.style}}});return{...n,toasts:i}},KN=(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)||$N()}),_l=e=>(t,n)=>{let r=KN(t,e,n);return dd(r.toasterId||qN(r.id))({type:2,toast:r}),r.id},rn=(e,t)=>_l("blank")(e,t);rn.error=_l("error");rn.success=_l("success");rn.loading=_l("loading");rn.custom=_l("custom");rn.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Tw(n)};rn.dismissAll=e=>rn.dismiss(void 0,e);rn.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Tw(n)};rn.removeAll=e=>rn.remove(void 0,e);rn.promise=(e,t,n)=>{let r=rn.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?rn.success(i,{id:r,...n,...n==null?void 0:n.success}):rn.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?rn.error(i,{id:r,...n,...n==null?void 0:n.error}):rn.dismiss(r)}),e};var QN=1e3,YN=(e,t="default")=>{let{toasts:n,pausedAt:r}=GN(e,t),s=m.useRef(new Map).current,i=m.useCallback((f,p=QN)=>{if(s.has(f))return;let h=setTimeout(()=>{s.delete(f),o({type:4,toastId:f})},p);s.set(f,h)},[]);m.useEffect(()=>{if(r)return;let f=Date.now(),p=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(f-h.createdAt);if(g<0){h.visible&&rn.dismiss(h.id);return}return setTimeout(()=>rn.dismiss(h.id,t),g)});return()=>{p.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let o=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{o({type:5,time:Date.now()})},[o]),c=m.useCallback((f,p)=>{o({type:1,toast:{id:f,height:p}})},[o]),u=m.useCallback(()=>{r&&o({type:6,time:Date.now()})},[r,o]),d=m.useCallback((f,p)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=p||{},b=n.filter(_=>(_.position||v)===(f.position||v)&&_.height),x=b.findIndex(_=>_.id===f.id),y=b.filter((_,S)=>S_.visible).slice(...h?[y+1]:[0,y]).reduce((_,S)=>_+(S.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(f=>{if(f.dismissed)i(f.id,f.removeDelay);else{let p=s.get(f.id);p&&(clearTimeout(p),s.delete(f.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},XN=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,JN=Cs` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,ZN=Cs` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,eP=li("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${XN} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${JN} 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: ${ZN} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,tP=Cs` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,nP=li("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: ${tP} 1s linear infinite; +`,rP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,sP=Cs` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,iP=li("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${rP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${sP} 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; + } +`,oP=li("div")` + position: absolute; +`,aP=li("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,lP=Cs` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,cP=li("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${lP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,uP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(cP,null,t):t:n==="blank"?null:m.createElement(aP,null,m.createElement(nP,{...r}),n!=="loading"&&m.createElement(oP,null,n==="error"?m.createElement(eP,{...r}):m.createElement(iP,{...r})))},dP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,fP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,pP="0%{opacity:0;} 100%{opacity:1;}",mP="0%{opacity:1;} 100%{opacity:0;}",hP=li("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; +`,gP=li("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,xP=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[pP,mP]:[dP(n),fP(n)];return{animation:t?`${Cs(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Cs(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},vP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?xP(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(uP,{toast:e}),o=m.createElement(gP,{...e.ariaProps},wu(e.message,e));return m.createElement(hP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:o}):m.createElement(m.Fragment,null,i,o))});VN(m.createElement);var yP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(o=>{if(o){let l=()=>{let c=o.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},_P=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},bP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,wP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:o,containerClassName:l})=>{let{toasts:c,handlers:u}=YN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...o},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let f=d.position||t,p=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=_P(f,p);return m.createElement(yP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?bP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(vP,{toast:d,position:f}))}))},$e=rn;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const fd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class kP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function SP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:o,height:l,top:c,left:u}=s.current;if(t||!r.current||!o||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${o}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),a.jsx(kP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const CP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:o})=>{const l=Qh(EP),c=m.useId(),u=m.useCallback(f=>{l.set(f,!0);for(const p of l.values())if(!p)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:f=>(l.set(f,!1),()=>l.delete(f))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((f,p)=>l.set(p,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),o==="popLayout"&&(e=a.jsx(SP,{isPresent:n,children:e})),a.jsx(fd.Provider,{value:d,children:e})};function EP(){return new Map}function Lw(e=!0){const t=m.useContext(fd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const o=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,o]:[!0]}const uc=e=>e.key||"";function B0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Aw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:o=!1})=>{const[l,c]=Lw(o),u=m.useMemo(()=>B0(e),[e]),d=o&&!l?[]:u.map(uc),f=m.useRef(!0),p=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Aw(()=>{f.current=!1,p.current=u;for(let S=0;S{const R=uc(S),k=o&&!l?!1:u===b||d.includes(R),T=()=>{if(h.has(R))h.set(R,!0);else return;let D=!0;h.forEach(z=>{z||(D=!1)}),D&&(_==null||_(),x(p.current),o&&(c==null||c()),r&&r())};return a.jsx(CP,{isPresent:k,initial:!f.current||n?void 0:!1,custom:k?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:k?void 0:T,children:S},R)})})},sr=e=>e;let Dw=sr;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const No=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},vs=e=>e*1e3,ys=e=>e/1e3,jP={useManualTiming:!1};function NP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(o)}const c={schedule:(u,d=!1,f=!1)=>{const h=f&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(o=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],PP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,o=dc.reduce((x,y)=>(x[y]=NP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:f,postRender:p}=o,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,PP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),f.process(s),p.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=o[y];return x[y]=(S,R=!1,k=!1)=>(n||g(),_.schedule(S,R,k)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function RP(e){for(const t in e)Po[t]={...Po[t],...e[t]}}const TP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||TP.has(e)}let Iw=e=>!ku(e);function LP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{LP(require("@emotion/is-prop-valid").default)}catch{}function AP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function DP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const pd=m.createContext({});function nl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>nl(e[t]))}function Fw(e){return!!(hd(e)||e.variants)}function MP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||nl(n)?n:void 0,animate:nl(r)?r:void 0}}return e.inherit!==!1?t:{}}function OP(e){const{initial:t,animate:n}=MP(e,m.useContext(pd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const IP=Symbol.for("motionComponentSymbol");function ao(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function FP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ao(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),BP="framerAppearId",Bw="data-"+tg(BP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function UP(e,t,n,r,s){var i,o;const{visualElement:l}=m.useContext(pd),c=m.useContext(Ow),u=m.useContext(fd),d=m.useContext(Yh).reducedMotion,f=m.useRef(null);r=r||c.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const p=f.current,h=m.useContext(Uw);p&&!p.projection&&s&&(p.type==="html"||p.type==="svg")&&VP(f.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{p&&g.current&&p.update(n,u)});const v=n[Bw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,v)));return Aw(()=>{p&&(g.current=!0,window.MotionIsMounted=!0,p.updateFeatures(),ng.render(p.render),b.current&&p.animationState&&p.animationState.animateChanges())}),m.useEffect(()=>{p&&(!b.current&&p.animationState&&p.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),p}function VP(e,t,n,r){const{layoutId:s,layout:i,drag:o,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!o||l&&ao(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function zP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,o;e&&RP(e);function l(u,d){let f;const p={...m.useContext(Yh),...u,layoutId:$P(u)},{isStatic:h}=p,g=OP(u),v=r(u,h);if(!h&&Xh){HP();const b=qP(p);f=b.MeasureLayout,g.visualElement=UP(s,v,p,t,b.ProjectionNode)}return a.jsxs(pd.Provider,{value:g,children:[f&&g.visualElement?a.jsx(f,{visualElement:g.visualElement,...p}):null,n(s,u,FP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(o=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&o!==void 0?o:""})`}`;const c=m.forwardRef(l);return c[IP]=s,c}function $P({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function HP(e,t){m.useContext(Ow).strict}function qP(e){const{drag:t,layout:n}=Po;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const WP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(WP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),GP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),KP=e=>rm(e)?e[e.length-1]||0:e,Sn=e=>!!(e&&e.getVelocity);function Bc(e){const t=Sn(e)?e.get():e;return GP(t)?t.toValue():t}function QP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const o={latestValues:YP(r,s,i,e),renderState:t()};return n&&(o.onMount=l=>n({props:r,current:l,...o}),o.onUpdate=l=>n(l)),o}const zw=e=>(t,n)=>{const r=m.useContext(pd),s=m.useContext(fd),i=()=>QP(e,t,r,s);return n?i():Qh(i)};function YP(e,t,n,r){const s={},i=r(e,{});for(const p in i)s[p]=Bc(i[p]);let{initial:o,animate:l}=e;const c=hd(e),u=Fw(e);t&&u&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const f=d?l:o;if(f&&typeof f!="boolean"&&!md(f)){const p=Array.isArray(f)?f:[f];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),XP=$w("var(--"),ig=e=>XP(e)?JP.test(e.split("/*")[0].trim()):!1,JP=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Es=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},rl={...Vo,transform:e=>Es(0,1,e)},fc={...Vo,default:1},bl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Ms=bl("deg"),Jr=bl("%"),Re=bl("px"),ZP=bl("vh"),eR=bl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},tR={borderWidth:Re,borderTopWidth:Re,borderRightWidth:Re,borderBottomWidth:Re,borderLeftWidth:Re,borderRadius:Re,radius:Re,borderTopLeftRadius:Re,borderTopRightRadius:Re,borderBottomRightRadius:Re,borderBottomLeftRadius:Re,width:Re,maxWidth:Re,height:Re,maxHeight:Re,top:Re,right:Re,bottom:Re,left:Re,padding:Re,paddingTop:Re,paddingRight:Re,paddingBottom:Re,paddingLeft:Re,margin:Re,marginTop:Re,marginRight:Re,marginBottom:Re,marginLeft:Re,backgroundPositionX:Re,backgroundPositionY:Re},nR={rotate:Ms,rotateX:Ms,rotateY:Ms,rotateZ:Ms,scale:fc,scaleX:fc,scaleY:fc,scaleZ:fc,skew:Ms,skewX:Ms,skewY:Ms,distance:Re,translateX:Re,translateY:Re,translateZ:Re,x:Re,y:Re,z:Re,perspective:Re,transformPerspective:Re,opacity:rl,originX:$0,originY:$0,originZ:Re},H0={...Vo,transform:Math.round},og={...tR,...nR,zIndex:H0,size:Re,fillOpacity:rl,strokeOpacity:rl,numOctaves:H0},rR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},sR=Uo.length;function iR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function uR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return $i.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const o in s)(Sn(s[o])||t.style&&Sn(t.style[o])||Yw(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[o]=s[o]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(Sn(e[s])||Sn(t[s])){const i=Uo.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function dR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],fR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if($i.has(l)){i=!0;break}}if(!i)return;let o=!t;if(t)for(let l=0;l{dR(n,r),kt.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},pR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!Sn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function mR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return ag(n,t,e),Object.assign({},n.vars,n.style)},[t])}function hR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,mR(e,t)),r}function gR(e,t){const n={},r=hR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function xR(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function vR(e=!1){return(n,r,s,{latestValues:i},o)=>{const c=(rg(n)?xR:gR)(r,i,o,n),u=AP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:f}=r,p=m.useMemo(()=>Sn(f)?f.get():f,[f]);return m.createElement(n,{...d,children:p})}}function yR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const o={...rg(r)?fR:pR,preloadedFeatures:e,useRender:vR(s),createVisualElement:t,Component:r};return zP(o)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class bR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(_R()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class wR extends bR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function fg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function pg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",kR={linearEasing:void 0};function SR(e,t){const n=Jh(e);return()=>{var r;return(r=kR[t])!==null&&r!==void 0?r:n()}}const Cu=SR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ha([0,.65,.55,1]),circOut:ha([.55,0,1,.45]),backIn:ha([.31,.01,.66,-.59]),backOut:ha([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Cu()?tk(e,t):mg(e)?ha(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const jr={x:!1,y:!1};function sk(){return jr.x||jr.y}function CR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=CR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function ER(e,t,n={}){const[r,s,i]=ik(e,n),o=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(f=>{u(f),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",o,s)}),i}const ok=(e,t)=>t?e===t?!0:ok(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,jR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function NR(e){return jR.has(e.tagName)||e.tabIndex!==-1}const ga=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function df(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const PR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(ga.has(n))return;df(n,"down");const s=Q0(()=>{df(n,"up")}),i=()=>df(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function RR(e,t,n={}){const[r,s,i]=ik(e,n),o=l=>{const c=l.currentTarget;if(!Y0(l)||ga.has(c))return;ga.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",p),!(!Y0(h)||!ga.has(c))&&(ga.delete(c),typeof u=="function"&&u(h,{success:g}))},f=h=>{d(h,n.useGlobalTarget||ok(c,h.target))},p=h=>{d(h,!1)};window.addEventListener("pointerup",f,s),window.addEventListener("pointercancel",p,s)};return r.forEach(l=>{!NR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,s),l.addEventListener("focus",u=>PR(u,s),s)}),i}function TR(e){return e==="x"||e==="y"?jr[e]?null:(jr[e]=!0,()=>{jr[e]=!1}):jr.x||jr.y?null:(jr.x=jr.y=!0,()=>{jr.x=jr.y=!1})}const ak=new Set(["width","height","top","left","right","bottom",...Uo]);let Uc;function LR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(mn.isProcessing||jP.useManualTiming?mn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(LR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class DR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=AR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),kt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function sl(e,t){return new DR(e,t)}function MR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,sl(n))}function OR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const o in i){const l=KP(i[o]);MR(e,o,l)}}function IR(e){return!!(Sn(e)&&e.add)}function om(e,t){const n=e.getValue("willChange");if(IR(n))return n.add(t)}function ck(e){return e.props[Bw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,FR=1e-7,BR=12;function UR(e,t,n,r,s){let i,o,l=0;do o=t+(n-t)/2,i=uk(o,r,s)-e,i>0?n=o:t=o;while(Math.abs(i)>FR&&++lUR(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,fk=e=>t=>1-e(1-t),pk=wl(.33,1.53,.69,.99),yg=fk(pk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=fk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function VR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const ja=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function zR(e){return e==null}const $R=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&$R.test(n)&&n.startsWith(e)||t&&!zR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,o,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},HR=e=>Es(0,255,e),ff={...Vo,transform:e=>Math.round(HR(e))},ji={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+ff.transform(e)+", "+ff.transform(t)+", "+ff.transform(n)+", "+ja(rl.transform(r))+")"};function qR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const am={test:wg("#"),parse:qR,transform:ji.transform},lo={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(ja(t))+", "+Jr.transform(ja(n))+", "+ja(rl.transform(r))+")"},bn={test:e=>ji.test(e)||am.test(e)||lo.test(e),parse:e=>ji.test(e)?ji.parse(e):lo.test(e)?lo.parse(e):am.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ji.transform(e):lo.transform(e)},WR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function GR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(WR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",KR="var",QR="var(",J0="${}",YR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function il(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(YR,c=>(bn.test(c)?(r.color.push(i),s.push(bk),n.push(bn.parse(c))):c.startsWith(QR)?(r.var.push(i),s.push(KR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return il(e).values}function kk(e){const{split:t,types:n}=il(e),r=t.length;return s=>{let i="";for(let o=0;otypeof e=="number"?0:e;function JR(e){const t=wk(e);return kk(e)(t.map(XR))}const si={test:GR,parse:wk,createTransformer:kk,getAnimatableNone:JR},ZR=new Set(["brightness","contrast","saturate","opacity"]);function eT(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=ZR.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const tT=/\b([a-z-]*)\(.*?\)/gu,lm={...si,getAnimatableNone:e=>{const t=e.match(tT);return t?t.map(eT).join(" "):e}},nT={...og,color:bn,backgroundColor:bn,outlineColor:bn,fill:bn,stroke:bn,borderColor:bn,borderTopColor:bn,borderRightColor:bn,borderBottomColor:bn,borderLeftColor:bn,filter:lm,WebkitFilter:lm},kg=e=>nT[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=si),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const rT=new Set(["auto","none","0"]);function sT(e,t,n){let r=0,s;for(;re===Vo||e===Re,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},iT=new Set(["x","y","z"]),oT=Uo.filter(e=>!iT.has(e));function aT(e){const t=[];return oT.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Ro={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Ro.translateX=Ro.x;Ro.translateY=Ro.y;const Ti=new Set;let cm=!1,um=!1;function Ck(){if(um){const e=Array.from(Ti).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=aT(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,o])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Ti.forEach(e=>e.complete()),Ti.clear()}function Ek(){Ti.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function lT(){Ek(),Ck()}class Sg{constructor(t,n,r,s,i,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ti.add(this),cm||(cm=!0,kt.read(Ek),kt.resolveKeyframes(Ck))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),cT=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function uT(e){const t=cT.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=uT(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const o=i.trim();return jk(o)?parseFloat(o):o}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),dT={test:e=>e==="auto",parse:e=>e},Rk=[Vo,Re,Jr,Ms,eR,ZP,dT],nv=e=>Rk.find(Pk(e));class Tk extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(si.test(e)||e==="0")&&!e.startsWith("url("));function fT(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(mT),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const hT=40;class Lk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:o="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:o,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>hT?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&lT(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:o,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!pT(t,r,s,i))if(o)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Lt=(e,t,n)=>e+(t-e)*n;function pf(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function gT({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,o=0;if(!t)s=i=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pf(c,l,e+1/3),i=pf(c,l,e),o=pf(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(o*255),alpha:r}}function Eu(e,t){return n=>n>0?t:e}const mf=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},xT=[am,ji,lo],vT=e=>xT.find(t=>t.test(e));function sv(e){const t=vT(e);if(!t)return!1;let n=t.parse(e);return t===lo&&(n=gT(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Eu(e,t);const s={...n};return i=>(s.red=mf(n.red,r.red,i),s.green=mf(n.green,r.green,i),s.blue=mf(n.blue,r.blue,i),s.alpha=Lt(n.alpha,r.alpha,i),ji.transform(s))},yT=(e,t)=>n=>t(e(n)),kl=(...e)=>e.reduce(yT),dm=new Set(["none","hidden"]);function _T(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function bT(e,t){return n=>Lt(e,t,n)}function Cg(e){return typeof e=="number"?bT:typeof e=="string"?ig(e)?Eu:bn.test(e)?iv:ST:Array.isArray(e)?Ak:typeof e=="object"?bn.test(e)?iv:wT:Eu}function Ak(e,t){const n=[...e],r=n.length,s=e.map((i,o)=>Cg(i)(i,t[o]));return i=>{for(let o=0;o{for(const i in r)n[i]=r[i](s);return n}}function kT(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=si.createTransformer(t),r=il(e),s=il(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?_T(e,t):kl(Ak(kT(r,s),s.values),n):Eu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Lt(e,t,n):Cg(e)(e,t)}const CT=5;function Mk(e,t,n){const r=Math.max(t-CT,0);return lk(n-e(r),t-r)}const It={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},hf=.001;function ET({duration:e=It.duration,bounce:t=It.bounce,velocity:n=It.velocity,mass:r=It.mass}){let s,i,o=1-t;o=Es(It.minDamping,It.maxDamping,o),e=Es(It.minDuration,It.maxDuration,ys(e)),o<1?(s=u=>{const d=u*o,f=d*e,p=d-n,h=fm(u,o),g=Math.exp(-f);return hf-p/h*g},i=u=>{const f=u*o*e,p=f*n+n,h=Math.pow(o,2)*Math.pow(u,2)*e,g=Math.exp(-f),v=fm(Math.pow(u,2),o);return(-s(u)+hf>0?-1:1)*((p-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),f=(u-n)*e+1;return-hf+d*f},i=u=>{const d=Math.exp(-u*e),f=(n-u)*(e*e);return d*f});const l=5/e,c=NT(s,i,l);if(e=vs(e),isNaN(c))return{stiffness:It.stiffness,damping:It.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:o*2*Math.sqrt(r*u),duration:e}}}const jT=12;function NT(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function TT(e){let t={velocity:It.velocity,stiffness:It.stiffness,damping:It.damping,mass:It.mass,isResolvedFromDuration:!1,...e};if(!ov(e,RT)&&ov(e,PT))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Es(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:It.mass,stiffness:s,damping:i}}else{const n=ET(e);t={...t,...n,mass:It.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=It.visualDuration,t=It.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:f,velocity:p,isResolvedFromDuration:h}=TT({...n,velocity:-ys(n.velocity||0)}),g=p||0,v=u/(2*Math.sqrt(c*d)),b=o-i,x=ys(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?It.restSpeed.granular:It.restSpeed.default),s||(s=y?It.restDelta.granular:It.restDelta.default);let _;if(v<1){const R=fm(x,v);_=k=>{const T=Math.exp(-v*x*k);return o-T*((g+v*x*b)/R*Math.sin(R*k)+b*Math.cos(R*k))}}else if(v===1)_=R=>o-Math.exp(-x*R)*(b+(g+x*b)*R);else{const R=x*Math.sqrt(v*v-1);_=k=>{const T=Math.exp(-v*x*k),D=Math.min(R*k,300);return o-T*((g+v*x*b)*Math.sinh(D)+R*b*Math.cosh(D))/R}}const S={calculatedDuration:h&&f||null,next:R=>{const k=_(R);if(h)l.done=R>=f;else{let T=0;v<1&&(T=R===0?vs(g):Mk(_,R,k));const D=Math.abs(T)<=r,z=Math.abs(o-k)<=s;l.done=D&&z}return l.value=l.done?o:k,l},toString:()=>{const R=Math.min(ek(S),sm),k=tk(T=>S.next(R*T).value,R,30);return R+"ms "+k}};return S}function av({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:o,min:l,max:c,restDelta:u=.5,restSpeed:d}){const f=e[0],p={done:!1,value:f},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),S=D=>{const z=y(D),j=_(D);p.done=Math.abs(z)<=u,p.value=p.done?x:j};let R,k;const T=D=>{h(p.value)&&(R=D,k=Ok({keyframes:[p.value,g(p.value)],velocity:Mk(_,D,p.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let z=!1;return!k&&R===void 0&&(z=!0,S(D),T(D)),R!==void 0&&D>=R?k.next(D-R):(!z&&S(D),p)}}}const LT=wl(.42,0,1,1),AT=wl(0,0,.58,1),Ik=wl(.42,0,.58,1),DT=e=>Array.isArray(e)&&typeof e[0]!="number",MT={linear:sr,easeIn:LT,easeInOut:Ik,easeOut:AT,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:pk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return wl(t,n,r,s)}else if(typeof e=="string")return MT[e];return e};function OT(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let o=0;ot[0];if(i===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=OT(t,r,s),c=l.length,u=d=>{if(o&&d1)for(;fu(Es(e[0],e[i-1],d)):u}function FT(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=No(0,t,r);e.push(Lt(n,1,s))}}function BT(e){const t=[0];return FT(t,e.length-1),t}function UT(e,t){return e.map(n=>n*t)}function VT(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=DT(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},o=UT(n&&n.length===t.length?n:BT(t),e),l=IT(o,t,{ease:Array.isArray(s)?s:VT(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const zT=e=>{const t=({timestamp:n})=>e(n);return{start:()=>kt.update(t,!0),stop:()=>ri(t),now:()=>mn.isProcessing?mn.timestamp:Zr.now()}},$T={decay:av,inertia:av,tween:ju,keyframes:ju,spring:Ok},HT=e=>e/100;class Eg extends Lk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,o=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new o(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:o=0}=this.options,l=pg(n)?n:$T[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=kl(HT,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:f}=d,p=f+s,h=p*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:f,resolvedDuration:p,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:o,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:f}=r;if(this.startTime===null)return i.next(0);const{delay:p,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-p*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,S=i;if(h){const D=Math.min(this.currentTime,d)/f;let z=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&z--,z=Math.min(z,h+1),!!(z%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/f)):g==="mirror"&&(S=o)),_=Es(0,1,j)*f}const R=y?{done:!1,value:c[0]}:S.next(_);l&&(R.value=l(R.value));let{done:k}=R;!y&&u!==null&&(k=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return T&&s!==void 0&&(R.value=xd(c,this.options,s)),b&&b(R.value),T&&this.finish(),R}get duration(){const{resolved:t}=this;return t?ys(t.calculatedDuration):0}get time(){return ys(this.currentTime)}set time(t){t=vs(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=ys(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=zT,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const qT=new Set(["opacity","clipPath","filter","transform"]);function WT(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:o="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:o==="reverse"?"alternate":"normal"})}const GT=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,KT=2e4;function QT(e){return pg(e.type)||e.type==="spring"||!nk(e.ease)}function YT(e,t){const n=new Eg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(o,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:o,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Cu()&&XT(i)&&(i=Fk[i]),QT(this.options)){const{onComplete:f,onUpdate:p,motionValue:h,element:g,...v}=this.options,b=YT(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,o="keyframes"}const d=WT(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:f}=this.options;l.set(xd(t,this.options,n)),f&&f(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:o,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return ys(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return ys(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=vs(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return sr;const{animation:r}=n;G0(r,t)}return sr}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:o,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:f,element:p,...h}=this.options,g=new Eg({...h,keyframes:r,duration:s,type:i,ease:o,times:l,isGenerator:!0}),v=vs(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:o,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return GT()&&r&&qT.has(r)&&!c&&!u&&!s&&i!=="mirror"&&o!==0&&l!=="inertia"}}const JT={type:"spring",stiffness:500,damping:25,restSpeed:10},ZT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),eL={type:"keyframes",duration:.8},tL={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},nL=(e,{keyframes:t})=>t.length>2?eL:$i.has(e)?e.startsWith("scale")?ZT(t[1]):JT:tL;function rL({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:o,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>o=>{const l=fg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-vs(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:p=>{t.set(p),l.onUpdate&&l.onUpdate(p)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};rL(l)||(d={...d,...nL(e,d)}),d.duration&&(d.duration=vs(d.duration)),d.repeatDelay&&(d.repeatDelay=vs(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let f=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(f=!0)),f&&!i&&t.get()!==void 0){const p=xd(d.keyframes,l);if(p!==void 0)return kt.update(()=>{d.onUpdate(p),d.onComplete()}),new wR([])}return!i&&cv.supports(d)?new cv(d):new Eg(d)};function sL({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Bk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:o=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(o=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const f in c){const p=e.getValue(f,(i=e.latestValues[f])!==null&&i!==void 0?i:null),h=c[f];if(h===void 0||d&&sL(d,f))continue;const g={delay:n,...fg(o||{},f)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,f,kt);y!==null&&(g.startTime=y,v=!0)}}om(e,f),p.start(jg(f,p,h,e.shouldReduceMotion&&ak.has(f)?{type:!1}:g,e,v));const b=p.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{kt.update(()=>{l&&OR(e,l)})}),u}function pm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const o=s?()=>Promise.all(Bk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:f,staggerDirection:p}=i;return iL(e,t,d+u,f,p,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[o,l]:[l,o];return u().then(()=>d())}else return Promise.all([o(),l(n.delay)])}function iL(e,t,n=0,r=0,s=1,i){const o=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(oL).forEach((u,d)=>{u.notify("AnimationStart",t),o.push(pm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(o)}function oL(e,t){return e.sortNodePosition(t)}function aL(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>pm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=pm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Bk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const lL=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>aL(e,n,r)))}function fL(e){let t=dL(e),n=uv(),r=!0;const s=c=>(u,d)=>{var f;const p=gd(e,d,c==="exit"?(f=e.presenceContext)===null||f===void 0?void 0:f.custom:void 0);if(p){const{transition:h,transitionEnd:g,...v}=p;u={...u,...v,...g}}return u};function i(c){t=c(e)}function o(c){const{props:u}=e,d=Uk(e.parent)||{},f=[],p=new Set;let h={},g=1/0;for(let b=0;bg&&S,z=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});R===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},ae=oe=>{D=!0,p.has(oe)&&(z=!0,p.delete(oe)),y.needsAnimating[oe]=!0;const B=e.getValue(oe);B&&(B.liveStyle=!1)};for(const oe in re){const B=H[oe],q=X[oe];if(h.hasOwnProperty(oe))continue;let E=!1;rm(B)&&rm(q)?E=!Zw(B,q):E=B!==q,E?B!=null?ae(oe):p.add(oe):B!==void 0&&p.has(oe)?ae(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(k&&T)||z)&&f.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(p.size){const b={};p.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),f.push({animation:b})}let v=!!f.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(f):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(p=>{var h;return(h=p.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const f=o(c);for(const p in n)n[p].protectedKeys={};return f}return{animateChanges:o,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function pL(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function gi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:gi(!0),whileInView:gi(),whileHover:gi(),whileTap:gi(),whileDrag:gi(),whileFocus:gi(),exit:gi()}}class ci{constructor(t){this.isMounted=!1,this.node=t}update(){}}class mL extends ci{constructor(t){super(t),t.animationState||(t.animationState=fL(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let hL=0;class gL extends ci{constructor(){super(...arguments),this.id=hL++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const xL={animation:{Feature:mL},exit:{Feature:gL}};function ol(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Sl(e){return{point:{x:e.pageX,y:e.pageY}}}const vL=e=>t=>hg(t)&&e(t,Sl(t));function Na(e,t,n,r){return ol(e,t,vL(n),r)}const dv=(e,t)=>Math.abs(e-t);function yL(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=xf(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,h=yL(f.offset,{x:0,y:0})>=3;if(!p&&!h)return;const{point:g}=f,{timestamp:v}=mn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;p||(b&&b(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,f)},this.handlePointerMove=(f,p)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=gf(p,this.transformPagePoint),kt.update(this.updatePoint,!0)},this.handlePointerUp=(f,p)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=xf(f.type==="pointercancel"?this.lastMoveEventInfo:gf(p,this.transformPagePoint),this.history);this.startEvent&&h&&h(f,b),g&&g(f,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const o=Sl(t),l=gf(o,this.transformPagePoint),{point:c}=l,{timestamp:u}=mn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,xf(l,this.history)),this.removeListeners=kl(Na(this.contextWindow,"pointermove",this.handlePointerMove),Na(this.contextWindow,"pointerup",this.handlePointerUp),Na(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ri(this.updatePoint)}}function gf(e,t){return t?{point:t(e.point)}:e}function fv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function xf({point:e},t){return{point:e,delta:fv(e,zk(t)),offset:fv(e,_L(t)),velocity:bL(t,.1)}}function _L(e){return e[0]}function zk(e){return e[e.length-1]}function bL(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>vs(t)));)n--;if(!r)return{x:0,y:0};const i=ys(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const o={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const $k=1e-4,wL=1-$k,kL=1+$k,Hk=.01,SL=0-Hk,CL=0+Hk;function ar(e){return e.max-e.min}function EL(e,t,n){return Math.abs(e-t)<=n}function pv(e,t,n,r=.5){e.origin=r,e.originPoint=Lt(t.min,t.max,e.origin),e.scale=ar(n)/ar(t),e.translate=Lt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=wL&&e.scale<=kL||isNaN(e.scale))&&(e.scale=1),(e.translate>=SL&&e.translate<=CL||isNaN(e.translate))&&(e.translate=0)}function Pa(e,t,n,r){pv(e.x,t.x,n.x,r?r.originX:void 0),pv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ar(t)}function jL(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ar(t)}function Ra(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function NL(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Lt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function PL(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=No(t.min,t.max-r,e.min):r>s&&(n=No(e.min,e.max-s,t.min)),Es(0,1,n)}function LL(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function AL(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),co=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),zt=()=>({x:bv(),y:bv()});function pr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function DL({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function ML(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function vf(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!vf(e)||!vf(t)||!vf(n)}function bi(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Cv=1.0000000000001;function OL(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,o;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function uo(e,t){e.min=e.min+t,e.max=e.max+t}function Ev(e,t,n,r,s=.5){const i=Lt(e.min,e.max,s);gm(e,t,n,i,r)}function fo(e,t){Ev(e.x,t.x,t.scaleX,t.scale,t.originX),Ev(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(ML(e.getBoundingClientRect(),t))}function IL(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(uo(r.x,s.offset.x),uo(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,FL=new WeakMap;class BL{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=zt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Sl(d).point)},i=(d,f)=>{const{drag:p,dragPropagation:h,onDragStart:g}=this.getProps();if(p&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=TR(p),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),pr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ar(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&kt.postRender(()=>g(d,f)),om(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},o=(d,f)=>{const{dragPropagation:p,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:b}=f;if(h&&this.currentDirection===null){this.currentDirection=UL(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",f.point,b),this.updateAxis("y",f.point,b),this.visualElement.render(),v&&v(d,f)},l=(d,f)=>this.stop(d,f),c=()=>pr(d=>{var f;return this.getAnimationState(d)==="paused"&&((f=this.getAxisMotionValue(d).animation)===null||f===void 0?void 0:f.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:o,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&kt.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!pc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=NL(o,this.constraints[t],this.elastic[t])),i.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ao(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=PL(s.layoutBox,n):this.constraints=!1,this.elastic=AL(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&pr(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=LL(s.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ao(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=IL(r,s.root,this.visualElement.getTransformPagePoint());let o=RL(s.layout.layoutBox,i);if(n){const l=n(DL(o));this.hasMutatedConstraints=!!l,l&&(o=qk(l))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=pr(d=>{if(!pc(d,n,this.currentDirection))return;let f=c&&c[d]||{};o&&(f={min:0,max:0});const p=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:p,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return om(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){pr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){pr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){pr(n=>{const{drag:r}=this.getProps();if(!pc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:o,max:l}=s.layout.layoutBox[n];i.set(t[n]-Lt(o,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ao(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};pr(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const c=l.get();s[o]=TL({min:c,max:c},this.constraints[o])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),pr(o=>{if(!pc(o,t,null))return;const l=this.getAxisMotionValue(o),{min:c,max:u}=this.constraints[o];l.set(Lt(c,u,s[o]))})}addListeners(){if(!this.visualElement.current)return;FL.set(this.visualElement,this);const t=this.visualElement.current,n=Na(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ao(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),kt.read(r);const o=ol(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(pr(d=>{const f=this.getAxisMotionValue(d);f&&(this.originPoint[d]+=c[d].translate,f.set(f.get()+c[d].translate))}),this.visualElement.render())});return()=>{o(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:o=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:o,dragMomentum:l}}}function pc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function UL(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class VL extends ci{constructor(t){super(t),this.removeGroupControls=sr,this.removeListeners=sr,this.controls=new BL(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||sr}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&kt.postRender(()=>e(t,n))};class zL extends ci{constructor(){super(...arguments),this.removePointerDownListener=sr}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,o)=>{delete this.session,s&&kt.postRender(()=>s(i,o))}}}mount(){this.removePointerDownListener=Na(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oa={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Re.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},$L={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=si.parse(e);if(s.length>5)return r;const i=si.createTransformer(e),o=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+o]/=l,s[1+o]/=c;const u=Lt(l,c,.5);return typeof s[2+o]=="number"&&(s[2+o]/=u),typeof s[3+o]=="number"&&(s[3+o]/=u),i(s)}};class HL extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;uR(qL),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,o=r.projection;return o&&(o.isPresent=i,s||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?o.promote():o.relegate()||kt.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Lw(),r=m.useContext(Kh);return a.jsx(HL,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const qL={borderRadius:{...oa,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oa,borderTopRightRadius:oa,borderBottomLeftRadius:oa,borderBottomRightRadius:oa,boxShadow:$L};function WL(e,t,n){const r=Sn(e)?e:sl(e);return r.start(jg("",r,t,n)),r.animation}function GL(e){return e instanceof SVGElement&&e.tagName!=="svg"}const KL=(e,t)=>e.depth-t.depth;class QL{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(KL),this.isDirty=!1,this.children.forEach(t)}}function YL(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ri(r),e(i-t))};return kt.read(r,!0),()=>ri(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],XL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Re.test(e);function JL(e,t,n,r,s,i){s?(e.opacity=Lt(0,n.opacity!==void 0?n.opacity:1,ZL(r)),e.opacityExit=Lt(t.opacity!==void 0?t.opacity:1,0,eA(r))):i&&(e.opacity=Lt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(No(e,t,r))}function Lv(e,t){e.min=t.min,e.max=t.max}function fr(e,t){Lv(e.x,t.x),Lv(e.y,t.y)}function Av(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function tA(e,t=0,n=1,r=.5,s,i=e,o=e){if(Jr.test(t)&&(t=parseFloat(t),t=Lt(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=Lt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,o){tA(e,t[n],t[r],t[s],t.scale,i,o)}const nA=["x","scaleX","originX"],rA=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,nA,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,rA,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Fv(e,t){return e.min===t.min&&e.max===t.max}function sA(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Bv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Uv(e){return ar(e.x)/ar(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class iA{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function oA(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((s||i||o)&&(r=`translate3d(${s}px, ${i}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:f,rotateY:p,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),f&&(r+=`rotateX(${f}deg) `),p&&(r+=`rotateY(${p}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const wi={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},xa=typeof window<"u"&&window.MotionDebug!==void 0,yf=["","X","Y","Z"],aA={visibility:"hidden"},zv=1e3;let lA=0;function _f(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",kt,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(o={},l=t==null?void 0:t()){this.id=lA++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,xa&&(wi.totalNodes=wi.resolvedTargetDeltas=wi.recalculatedProjection=0),this.nodes.forEach(dA),this.nodes.forEach(gA),this.nodes.forEach(xA),this.nodes.forEach(fA),xa&&window.MotionDebug.record(wi)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=YL(p,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:p,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||wA,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!p&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||p&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,_);const S={...fg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else p||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ri(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(vA),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const R=S/1e3;qv(f.x,o.x,R),qv(f.y,o.y,R),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ra(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),_A(this.relativeTarget,this.relativeTargetOrigin,p,R),_&&sA(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=zt()),fr(_,this.relativeTarget)),v&&(this.animationValues=d,JL(d,u,this.latestValues,R,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=R},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ri(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=kt.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=WL(0,zv,{...o,onUpdate:l=>{this.mixTargetDelta(l),o.onUpdate&&o.onUpdate(l)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=o;if(!(!l||!c||!u)){if(this!==o&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||zt();const f=ar(this.layout.layoutBox.x);c.x.min=o.target.x.min,c.x.max=c.x.min+f;const p=ar(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+p}fr(l,c),fo(l,d),Pa(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new iA),this.sharedNodes.get(o).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:l}=this.options;return l?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:l}=this.options;return l?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:c}=o;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&_f("z",o,u,this.animationValues);for(let d=0;d{var l;return(l=o.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function cA(e){e.updateLayout()}function uA(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,o=n.source!==e.layout.source;i==="size"?pr(f=>{const p=o?n.measuredBox[f]:n.layoutBox[f],h=ar(p);p.min=r[f].min,p.max=p.min+h}):rS(i,n.layoutBox,r)&&pr(f=>{const p=o?n.measuredBox[f]:n.layoutBox[f],h=ar(r[f]);p.max=p.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+h)});const l=co();Pa(l,r,n.layoutBox);const c=co();o?Pa(c,e.applyTransform(s,!0),n.measuredBox):Pa(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:p,layout:h}=f;if(p&&h){const g=zt();Ra(g,n.layoutBox,p.layoutBox);const v=zt();Ra(v,r,h.layoutBox),eS(g,v)||(d=!0),f.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function dA(e){xa&&wi.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function fA(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function pA(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function mA(e){e.isLayoutDirty=!1}function hA(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function gA(e){e.resolveTargetDelta()}function xA(e){e.calcProjection()}function vA(e){e.resetSkewAndRotation()}function yA(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Lt(t.translate,0,n),e.scale=Lt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Lt(t.min,n.min,r),e.max=Lt(t.max,n.max,r)}function _A(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function bA(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const wA={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:sr;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function kA(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!EL(Uv(t),Uv(n),.2)}function SA(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const CA=nS({attachResizeListener:(e,t)=>ol(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bf={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bf.current){const e=new CA({});e.mount(window),e.setOptions({layoutScroll:!0}),bf.current=e}return bf.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),EA={pan:{Feature:zL},drag:{Feature:VL,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&kt.postRender(()=>i(t,Sl(t)))}class jA extends ci{mount(){const{current:t}=this.node;t&&(this.unmount=ER(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class NA extends ci{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=kl(ol(this.node.current,"focus",()=>this.onFocus()),ol(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&kt.postRender(()=>i(t,Sl(t)))}class PA extends ci{mount(){const{current:t}=this.node;t&&(this.unmount=RR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,wf=new WeakMap,RA=e=>{const t=xm.get(e.target);t&&t(e)},TA=e=>{e.forEach(RA)};function LA({root:e,...t}){const n=e||document;wf.has(n)||wf.set(n,{});const r=wf.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(TA,{root:e,...t})),r[s]}function AA(e,t,n){const r=LA(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const DA={some:0,all:1};class MA extends ci{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:DA[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:f}=this.node.getProps(),p=u?d:f;p&&p(c)};return AA(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(OA(t,n))&&this.startObserver()}unmount(){}}function OA({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const IA={inView:{Feature:MA},tap:{Feature:PA},focus:{Feature:NA},hover:{Feature:jA}},FA={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function BA(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const UA=[...Rk,bn,si],VA=e=>UA.find(Pk(e)),Jv=new WeakMap;function zA(e,t,n){for(const r in t){const s=t[r],i=n[r];if(Sn(s))e.addValue(r,s);else if(Sn(i))e.addValue(r,sl(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(s):o.hasAnimated||o.set(s)}else{const o=e.getStaticValue(r);e.addValue(r,sl(o!==void 0?o:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class $A{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||BA(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ri(this.notifyUpdate),ri(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=$i.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&kt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Po){const n=Po[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):zt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=sl(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!VA(s)&&si.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,Sn(s)?s.get():s)),Sn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const o=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(s=o[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!Sn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class oS extends $A{constructor(){super(...arguments),this.KeyframeResolver=Tk}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Sn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function HA(e){return window.getComputedStyle(e)}class qA extends oS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if($i.has(n)){const r=kg(n);return r&&r.default||0}else{const r=HA(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){ag(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class WA extends oS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=zt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if($i.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const GA=(e,t)=>rg(e)?new WA(t):new qA(t,{allowProjection:e!==m.Fragment}),KA=yR({...xL,...IA,...EA,...FA},GA),Bt=DP(KA);function QA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const YA=m.forwardRef(QA);function XA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(XA);function JA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(JA);function ZA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(ZA);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const tD=m.forwardRef(eD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const aS=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const kf=m.forwardRef(rD);function sD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const Sf=m.forwardRef(sD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const oD=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(aD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Tu=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const qs=m.forwardRef(fD);function pD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const tr=m.forwardRef(pD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const ds=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const xD=m.forwardRef(gD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const yD=m.forwardRef(vD);function _D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const bD=m.forwardRef(_D);function wD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(wD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const SD=m.forwardRef(kD);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const ED=m.forwardRef(CD);function jD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Lu=m.forwardRef(jD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(ND);function PD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const RD=m.forwardRef(PD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(TD);function LD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const AD=m.forwardRef(LD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const MD=m.forwardRef(DD);function OD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(OD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const fs=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(FD);function BD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(BD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const zD=m.forwardRef(VD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const GD=m.forwardRef(WD);function KD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const QD=m.forwardRef(KD);function YD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const XD=m.forwardRef(YD);function JD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const ZD=m.forwardRef(JD);function e3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const t3=m.forwardRef(e3);function n3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Cf=m.forwardRef(n3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Au=m.forwardRef(i3);function o3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const a3=m.forwardRef(o3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const c3=m.forwardRef(l3);function u3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const d3=m.forwardRef(u3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(f3);function p3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(p3);function m3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(m3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const g3=m.forwardRef(h3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const v3=m.forwardRef(x3);function y3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const en=m.forwardRef(y3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const k3=m.forwardRef(w3);function S3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const To=m.forwardRef(S3);function fS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=pS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const N3={},iy=e=>{let t;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const h=t;t=f??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(N3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},P3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Lo=m;function R3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var T3=typeof Object.is=="function"?Object.is:R3,L3=Lo.useState,A3=Lo.useEffect,D3=Lo.useLayoutEffect,M3=Lo.useDebugValue;function O3(e,t){var n=t(),r=L3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return D3(function(){s.value=n,s.getSnapshot=t,Ef(s)&&i({inst:s})},[e,n,t]),A3(function(){return Ef(s)&&i({inst:s}),e(function(){Ef(s)&&i({inst:s})})},[e]),M3(n),n}function Ef(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!T3(e,n)}catch{return!0}}function I3(e,t){return t()}var F3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?I3:O3;xS.useSyncExternalStore=Lo.useSyncExternalStore!==void 0?Lo.useSyncExternalStore:F3;gS.exports=xS;var B3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,U3=B3;function V3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var z3=typeof Object.is=="function"?Object.is:V3,$3=U3.useSyncExternalStore,H3=vd.useRef,q3=vd.useEffect,W3=vd.useMemo,G3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=H3(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=W3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&o.hasValue){var g=o.value;if(s(g,h))return f=g}return f=h}if(g=f,z3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,f=v)}var u=!1,d,f,p=n===void 0?null:n;return[function(){return c(t())},p===null?void 0:function(){return c(p())}]},[t,n,r,s]);var l=$3(e,i[0],i[1]);return q3(function(){o.hasValue=!0,o.value=l},[l]),G3(l),l};mS.exports=hS;var K3=mS.exports;const Q3=qu(K3),vS={},{useDebugValue:Y3}=un,{useSyncExternalStoreWithSelector:X3}=Q3;let oy=!1;const J3=e=>e;function Z3(e,t=J3,n){(vS?"production":void 0)!=="production"&&n&&!oy&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),oy=!0);const r=X3(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Y3(r),r}const ay=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?P3(e):e,n=(r,s)=>Z3(t,r,s);return Object.assign(n,t),n},eM=e=>e?ay(e):ay;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:tM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=tM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ir=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:zo}=Array,Ao=bd("undefined");function Cl(e){return e!==null&&!Ao(e)&&e.constructor!==null&&!Ao(e.constructor)&&Wn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ir("ArrayBuffer");function nM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const rM=bd("string"),Wn=bd("function"),wS=bd("number"),El=e=>e!==null&&typeof e=="object",sM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},iM=e=>{if(!El(e)||Cl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},oM=Ir("Date"),aM=Ir("File"),lM=Ir("Blob"),cM=Ir("FileList"),uM=e=>El(e)&&Wn(e.pipe),dM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Wn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Wn(e.toString)&&e.toString()==="[object FormData]"))},fM=Ir("URLSearchParams"),[pM,mM,hM,gM]=["ReadableStream","Request","Response","Headers"].map(Ir),xM=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),zo(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Ao(e)&&e!==Ni;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const o=e&&kS(n,i)||i;Hc(n[o])&&Hc(s)?n[o]=wm(n[o],s):Hc(s)?n[o]=wm({},s):zo(s)?n[o]=s.slice():(!t||!Ao(s))&&(n[o]=s)};for(let s=0,i=arguments.length;s(jl(t,(s,i)=>{n&&Wn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),yM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),_M=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},bM=(e,t,n,r)=>{let s,i,o;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)o=s[i],(!r||r(o,e,t))&&!l[o]&&(t[o]=e[o],l[o]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},wM=(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},kM=e=>{if(!e)return null;if(zo(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},SM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),CM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},EM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},jM=Ir("HTMLFormElement"),NM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),PM=Ir("RegExp"),CS=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};jl(n,(s,i)=>{let o;(o=t(s,i,e))!==!1&&(r[i]=o||s)}),Object.defineProperties(e,r)},RM=e=>{CS(e,(t,n)=>{if(Wn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Wn(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+"'")})}})},TM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return zo(e)?r(e):r(String(e).split(t)),n},LM=()=>{},AM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function DM(e){return!!(e&&Wn(e.append)&&e[_S]==="FormData"&&e[yd])}const MM=e=>{const t=new Array(10),n=(r,s)=>{if(El(r)){if(t.indexOf(r)>=0)return;if(Cl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=zo(r)?[]:{};return jl(r,(o,l)=>{const c=n(o,s+1);!Ao(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},OM=Ir("AsyncFunction"),IM=e=>e&&(El(e)||Wn(e))&&Wn(e.then)&&Wn(e.catch),ES=((e,t)=>e?setImmediate:t?((n,r)=>(Ni.addEventListener("message",({source:s,data:i})=>{s===Ni&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ni.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Wn(Ni.postMessage)),FM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ni):typeof process<"u"&&process.nextTick||ES,BM=e=>e!=null&&Wn(e[yd]),V={isArray:zo,isArrayBuffer:bS,isBuffer:Cl,isFormData:dM,isArrayBufferView:nM,isString:rM,isNumber:wS,isBoolean:sM,isObject:El,isPlainObject:Hc,isEmptyObject:iM,isReadableStream:pM,isRequest:mM,isResponse:hM,isHeaders:gM,isUndefined:Ao,isDate:oM,isFile:aM,isBlob:lM,isRegExp:PM,isFunction:Wn,isStream:uM,isURLSearchParams:fM,isTypedArray:SM,isFileList:cM,forEach:jl,merge:wm,extend:vM,trim:xM,stripBOM:yM,inherits:_M,toFlatObject:bM,kindOf:_d,kindOfTest:Ir,endsWith:wM,toArray:kM,forEachEntry:CM,matchAll:EM,isHTMLForm:jM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:CS,freezeMethods:RM,toObjectSet:TM,toCamelCase:NM,noop:LM,toFiniteNumber:AM,findKey:kS,global:Ni,isContextDefined:SS,isSpecCompliantForm:DM,toJSONObject:MM,isAsyncFn:OM,isThenable:IM,setImmediate:ES,asap:FM,isIterable:BM};function Me(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}V.inherits(Me,Error,{toJSON:function(){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:V.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Me.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Me,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Me.from=(e,t,n,r,s,i)=>{const o=Object.create(jS);V.toFlatObject(e,o,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Me.call(o,l,c,n,r,s),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",i&&Object.assign(o,i),o};const UM=null;function km(e){return V.isPlainObject(e)||V.isArray(e)}function PS(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function VM(e){return V.isArray(e)&&!e.some(km)}const zM=V.toFlatObject(V,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!V.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,o=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&V.isSpecCompliantForm(t);if(!V.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(V.isDate(g))return g.toISOString();if(V.isBoolean(g))return g.toString();if(!c&&V.isBlob(g))throw new Me("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(g)||V.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(V.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(V.isArray(g)&&VM(g)||(V.isFileList(g)||V.endsWith(v,"[]"))&&(x=V.toArray(g)))return v=PS(v),x.forEach(function(_,S){!(V.isUndefined(_)||_===null)&&t.append(o===!0?cy([v],S,i):o===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const f=[],p=Object.assign(zM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!V.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));f.push(g),V.forEach(g,function(x,y){(!(V.isUndefined(x)||x===null)&&s.call(t,x,V.isString(y)?y.trim():y,v,p))===!0&&h(x,v?v.concat(y):[y])}),f.pop()}}if(!V.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function $M(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function TS(e,t,n){if(!t)return e;const r=n&&n.encode||$M;V.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=V.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){V.forEach(this.handlers,function(r){r!==null&&t(r)})}}const LS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},HM=typeof URLSearchParams<"u"?URLSearchParams:Rg,qM=typeof FormData<"u"?FormData:null,WM=typeof Blob<"u"?Blob:null,GM={isBrowser:!0,classes:{URLSearchParams:HM,FormData:qM,Blob:WM},protocols:["http","https","file","blob","url","data"]},Tg=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,KM=Tg&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),QM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",YM=Tg&&window.location.href||"http://localhost",XM=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Tg,hasStandardBrowserEnv:KM,hasStandardBrowserWebWorkerEnv:QM,navigator:Sm,origin:YM},Symbol.toStringTag,{value:"Module"})),kn={...XM,...GM};function JM(e,t){return wd(e,new kn.classes.URLSearchParams,{visitor:function(n,r,s,i){return kn.isNode&&V.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function ZM(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function e4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return o=!o&&V.isArray(s)?s.length:o,c?(V.hasOwnProp(s,o)?s[o]=[s[o],r]:s[o]=r,!l):((!s[o]||!V.isObject(s[o]))&&(s[o]=[]),t(n,r,s[o],i)&&V.isArray(s[o])&&(s[o]=e4(s[o])),!l)}if(V.isFormData(e)&&V.isFunction(e.entries)){const n={};return V.forEachEntry(e,(r,s)=>{t(ZM(r),s,n,0)}),n}return null}function t4(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Nl={transitional:LS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=V.isObject(t);if(i&&V.isHTMLForm(t)&&(t=new FormData(t)),V.isFormData(t))return s?JSON.stringify(AS(t)):t;if(V.isArrayBuffer(t)||V.isBuffer(t)||V.isStream(t)||V.isFile(t)||V.isBlob(t)||V.isReadableStream(t))return t;if(V.isArrayBufferView(t))return t.buffer;if(V.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return JM(t,this.formSerializer).toString();if((l=V.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),t4(t)):t}],transformResponse:[function(t){const n=this.transitional||Nl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(V.isResponse(t)||V.isReadableStream(t))return t;if(t&&V.isString(t)&&(r&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(o)throw l.name==="SyntaxError"?Me.from(l,Me.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:kn.classes.FormData,Blob:kn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{Nl.headers[e]={}});const n4=V.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"]),r4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(o){s=o.indexOf(":"),n=o.substring(0,s).trim().toLowerCase(),r=o.substring(s+1).trim(),!(!n||t[n]&&n4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},fy=Symbol("internals");function aa(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:V.isArray(e)?e.map(qc):String(e)}function s4(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 i4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function jf(e,t,n,r,s){if(V.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!V.isString(t)){if(V.isString(r))return t.indexOf(r)!==-1;if(V.isRegExp(r))return r.test(t)}}function o4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function a4(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,o){return this[r].call(this,t,s,i,o)},configurable:!0})})}let Gn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=aa(c);if(!d)throw new Error("header name must be a non-empty string");const f=V.findKey(s,d);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=qc(l))}const o=(l,c)=>V.forEach(l,(u,d)=>i(u,d,c));if(V.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(V.isString(t)&&(t=t.trim())&&!i4(t))o(r4(t),n);else if(V.isObject(t)&&V.isIterable(t)){let l={},c,u;for(const d of t){if(!V.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?V.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}o(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=aa(t),t){const r=V.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return s4(s);if(V.isFunction(n))return n.call(this,s,r);if(V.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=aa(t),t){const r=V.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||jf(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(o){if(o=aa(o),o){const l=V.findKey(r,o);l&&(!n||jf(r,r[l],l,n))&&(delete r[l],s=!0)}}return V.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||jf(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return V.forEach(this,(s,i)=>{const o=V.findKey(r,i);if(o){n[o]=qc(s),delete n[i];return}const l=t?o4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return V.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&V.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(s=>r.set(s)),r}static accessor(t){const r=(this[fy]=this[fy]={accessors:{}}).accessors,s=this.prototype;function i(o){const l=aa(o);r[l]||(a4(s,o),r[l]=!0)}return V.isArray(t)?t.forEach(i):i(t),this}};Gn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(Gn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});V.freezeMethods(Gn);function Nf(e,t){const n=this||Nl,r=t||n,s=Gn.from(r.headers);let i=r.data;return V.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function $o(e,t,n){Me.call(this,e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError"}V.inherits($o,Me,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Me("Request failed with status code "+n.status,[Me.ERR_BAD_REQUEST,Me.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function l4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function c4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,o;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];o||(o=u),n[s]=c,r[s]=u;let f=i,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-o{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),f=d-n;f>=r?o(u,d):(s=u,i||(i=setTimeout(()=>{i=null,o(s)},r-f)))},()=>s&&o(s)]}const Du=(e,t,n=3)=>{let r=0;const s=c4(50,250);return u4(i=>{const o=i.loaded,l=i.lengthComputable?i.total:void 0,c=o-r,u=s(c),d=o<=l;r=o;const f={loaded:o,total:l,progress:l?o/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-o)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},py=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>V.asap(()=>e(...t)),d4=kn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,kn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(kn.origin),kn.navigator&&/(msie|trident)/i.test(kn.navigator.userAgent)):()=>!0,f4=kn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,o){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&l.push(`path=${r}`),V.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),V.isString(o)&&l.push(`SameSite=${o}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function p4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function m4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!p4(t);return e&&(r||n==!1)?m4(e,t):t}const hy=e=>e instanceof Gn?{...e}:e;function Fi(e,t){t=t||{};const n={};function r(u,d,f,p){return V.isPlainObject(u)&&V.isPlainObject(d)?V.merge.call({caseless:p},u,d):V.isPlainObject(d)?V.merge({},d):V.isArray(d)?d.slice():d}function s(u,d,f,p){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u,f,p)}else return r(u,d,f,p)}function i(u,d){if(!V.isUndefined(d))return r(void 0,d)}function o(u,d){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,f){if(f in t)return r(u,d);if(f in e)return r(void 0,u)}const c={url:i,method:i,data:i,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,responseEncoding:o,validateStatus:l,headers:(u,d,f)=>s(hy(u),hy(d),f,!0)};return V.forEach(Object.keys({...e,...t}),function(d){const f=c[d]||s,p=f(e[d],t[d],d);V.isUndefined(p)&&f!==l||(n[d]=p)}),n}const IS=e=>{const t=Fi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:o,auth:l}=t;if(t.headers=o=Gn.from(o),t.url=TS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&o.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),V.isFormData(n)){if(kn.hasStandardBrowserEnv||kn.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,f])=>{u.includes(d.toLowerCase())&&o.set(d,f)})}}if(kn.hasStandardBrowserEnv&&(r&&V.isFunction(r)&&(r=r(t)),r||r!==!1&&d4(t.url))){const c=s&&i&&f4.read(i);c&&o.set(s,c)}return t},h4=typeof XMLHttpRequest<"u",g4=h4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const o=Gn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,f,p,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Gn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),R={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},R),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Me("Request aborted",Me.ECONNABORTED,e,b)),b=null)},b.onerror=function(S){const R=S&&S.message?S.message:"Network Error",k=new Me(R,Me.ERR_NETWORK,e,b);k.event=S||null,r(k),b=null},b.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const R=s.transitional||LS;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new Me(S,R.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,b)),b=null},i===void 0&&o.setContentType(null),"setRequestHeader"in b&&V.forEach(o.toJSON(),function(S,R){b.setRequestHeader(R,S)}),V.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([p,g]=Du(u,!0),b.addEventListener("progress",p)),c&&b.upload&&([f,h]=Du(c),b.upload.addEventListener("progress",f),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new $o(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=l4(s.url);if(y&&kn.protocols.indexOf(y)===-1){r(new Me("Unsupported protocol "+y+":",Me.ERR_BAD_REQUEST,e));return}b.send(i||null)})},x4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Me?d:new $o(d instanceof Error?d.message:d))}};let o=t&&setTimeout(()=>{o=null,i(new Me(`timeout ${t} of ms exceeded`,Me.ETIMEDOUT))},t);const l=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>V.asap(l),c}},v4=function*(e,t){let n=e.byteLength;if(n{const s=y4(e,t);let i=0,o,l=c=>{o||(o=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let f=d.byteLength;if(n){let p=i+=f;n(p)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=V,b4=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:vy,TextEncoder:yy}=V.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},w4=e=>{e=V.merge.call({skipUndefined:!0},b4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),o=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(kn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=o&&l&&_y(()=>V.isReadableStream(new r("").body)),f={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Me(`Response type '${g}' is not supported`,Me.ERR_NOT_SUPPORT,b)})});const p=async g=>{if(g==null)return 0;if(V.isBlob(g))return g.size;if(V.isSpecCompliantForm(g))return(await new n(kn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(V.isArrayBufferView(g)||V.isArrayBuffer(g))return g.byteLength;if(V.isURLSearchParams(g)&&(g=g+""),V.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=V.toFiniteNumber(g.getContentLength());return b??p(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:S,onDownloadProgress:R,onUploadProgress:k,responseType:T,headers:D,withCredentials:z="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=x4([y,_&&_.toAbortSignal()],S),re=null;const ae=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let me;try{if(k&&u&&b!=="get"&&b!=="head"&&(me=await h(D,x))!==0){let de=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(V.isFormData(x)&&(pe=de.headers.get("content-type"))&&D.setContentType(pe),de.body){const[A,be]=py(me,Du(my(k)));x=gy(de.body,xy,A,be)}}V.isString(z)||(z=z?"include":"omit");const ve=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:ve?z:void 0};re=i&&new n(v,oe);let B=await(i?H(re,j):H(v,oe));const q=d&&(T==="stream"||T==="response");if(d&&(R||q&&ae)){const de={};["status","statusText","headers"].forEach(Ae=>{de[Ae]=B[Ae]});const pe=V.toFiniteNumber(B.headers.get("content-length")),[A,be]=R&&py(pe,Du(my(R),!0))||[];B=new r(gy(B.body,xy,A,()=>{be&&be(),ae&&ae()}),de)}T=T||"text";let E=await f[V.findKey(f,T)||"text"](B,g);return!q&&ae&&ae(),await new Promise((de,pe)=>{MS(de,pe,{data:E,headers:Gn.from(B.headers),status:B.status,statusText:B.statusText,config:g,request:re})})}catch(ve){throw ae&&ae(),ve&&ve.name==="TypeError"&&/Load failed|fetch/i.test(ve.message)?Object.assign(new Me("Network Error",Me.ERR_NETWORK,g,re),{cause:ve.cause||ve}):Me.from(ve,ve&&ve.code,g,re)}}},k4=new Map,FS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let o=i.length,l=o,c,u,d=k4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:w4(t)),d=u;return u};FS();const Lg={http:UM,xhr:g4,fetch:{get:FS}};V.forEach(Lg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,S4=e=>V.isFunction(e)||e===null||e===!1;function C4(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let o=0;o`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?o.length>1?`since : +`+o.map(by).join(` +`):" "+by(o[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const BS={getAdapter:C4,adapters:Lg};function Pf(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $o(null,e)}function wy(e){return Pf(e),e.headers=Gn.from(e.headers),e.data=Nf.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),BS.getAdapter(e.adapter||Nl.adapter,e)(e).then(function(r){return Pf(e),r.data=Nf.call(e,e.transformResponse,r),r.headers=Gn.from(r.headers),r},function(r){return DS(r)||(Pf(e),r&&r.response&&(r.response.data=Nf.call(e,e.transformResponse,r.response),r.response.headers=Gn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,o){return"[Axios v"+US+"] Transitional option '"+i+"'"+o+(r?". "+r:"")}return(i,o,l)=>{if(t===!1)throw new Me(s(o," has been removed"+(n?" in "+n:"")),Me.ERR_DEPRECATED);return n&&!ky[o]&&(ky[o]=!0,console.warn(s(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,o,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function E4(e,t,n){if(typeof e!="object")throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],o=t[i];if(o){const l=e[i],c=l===void 0||o(l,i,e);if(c!==!0)throw new Me("option "+i+" must be "+c,Me.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Me("Unknown option "+i,Me.ERR_BAD_OPTION)}}const Wc={assertOptions:E4,validators:kd},Hr=Wc.validators;let Li=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fi(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(V.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=i&&V.merge(i.common,i[n.method]);i&&V.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Gn.concat(o,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,f=0,p;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,d=Promise.resolve(n);f{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const o=new Promise(l=>{r.subscribe(l),i=l}).then(s);return o.cancel=function(){r.unsubscribe(i)},o},t(function(i,o,l){r.reason||(r.reason=new $o(i,o,l),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 VS(function(s){t=s}),cancel:t}}};function N4(e){return function(n){return e.apply(null,n)}}function P4(e){return V.isObject(e)&&e.isAxiosError===!0}const Cm={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(Cm).forEach(([e,t])=>{Cm[t]=e});function zS(e){const t=new Li(e),n=yS(Li.prototype.request,t);return V.extend(n,Li.prototype,t,{allOwnKeys:!0}),V.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Fi(e,s))},n}const Ht=zS(Nl);Ht.Axios=Li;Ht.CanceledError=$o;Ht.CancelToken=j4;Ht.isCancel=DS;Ht.VERSION=US;Ht.toFormData=wd;Ht.AxiosError=Me;Ht.Cancel=Ht.CanceledError;Ht.all=function(t){return Promise.all(t)};Ht.spread=N4;Ht.isAxiosError=P4;Ht.mergeConfig=Fi;Ht.AxiosHeaders=Gn;Ht.formToJSON=e=>AS(V.isHTMLForm(e)?new FormData(e):e);Ht.getAdapter=BS.getAdapter;Ht.HttpStatusCode=Cm;Ht.default=Ht;const{Axios:A8,AxiosError:D8,CanceledError:M8,isCancel:O8,CancelToken:I8,VERSION:F8,all:B8,Cancel:U8,isAxiosError:V8,spread:z8,toFormData:$8,AxiosHeaders:H8,HttpStatusCode:q8,formToJSON:W8,getAdapter:G8,mergeConfig:K8}=Ht,we=Ht.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Em="lakemeter:session-expired";function Fr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const R4=()=>{jm=!1};we.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Em,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const T4=async()=>{const{data:e}=await we.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await we.get("/estimates/",{params:e});return t},L4=async e=>{const{data:t}=await we.get(`/estimates/${e}`);return t},A4=async e=>{const{data:t}=await we.get(`/estimates/${e}/full`);return t},D4=async e=>{const{data:t}=await we.post("/estimates/",e);return t},M4=async(e,t)=>{const{data:n}=await we.put(`/estimates/${e}`,t);return n},O4=async e=>{await we.delete(`/estimates/${e}`)},I4=async e=>{const{data:t}=await we.post(`/estimates/${e}/duplicate`);return t},F4=async(e,t)=>{const{data:n}=await we.post(`/estimates/${e}/clone`,{new_name:t});return n},B4=async(e,t)=>{const{data:n}=await we.post(`/line-items/${e}/clone`,{new_name:t});return n},U4=async e=>{const{data:t}=await we.get(`/line-items/estimate/${e}`);return t},V4=async e=>{const{data:t}=await we.post("/line-items/",e);return t},z4=async(e,t)=>{const{data:n}=await we.put(`/line-items/${e}`,t);return n},$4=async e=>{await we.delete(`/line-items/${e}`)},H4=async(e,t)=>{await we.post("/line-items/reorder",t,{params:{estimate_id:e}})},q4=async e=>{await we.post("/estimates/reorder",e)},W4=async()=>{const{data:e}=await we.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await we.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},G4=async e=>{const{data:t}=await we.get("/tiers",{params:e?{cloud:e}:{}}),n=Fr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},K4=async()=>{const{data:e}=await we.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},Q4=async()=>{const{data:e}=await we.get("/dbsql/warehouse-sizes"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Y4=async()=>{const{data:e}=await we.get("/dlt/editions"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},X4=async()=>{const{data:e}=await we.get("/reference/fmapi-models");return e},Cy=async()=>{const{data:e}=await we.get("/instances/families"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},J4=async(e,t,n)=>{var o;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await we.get("/instances/types",{params:r});return(Array.isArray(s)?s:((o=s==null?void 0:s.data)==null?void 0:o.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},Z4=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await we.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:o,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(f=>({cloud:o,region:l,instance_type:c,pricing_tier:f.pricing_tier,payment_option:f.payment_option,cost_per_hour:f.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Ey=async()=>{const{data:e}=await we.get("/dbsql/warehouse-types"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await we.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Fr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await we.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Fr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await we.get("/serverless/modes"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},eO=async e=>{var n;const{data:t}=await we.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await we.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Fr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await we.get("/fmapi/databricks-models/list"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await we.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Fr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},tO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},nO=async()=>{const{data:e}=await we.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await we.get("/fmapi/proprietary-models",{params:e});return t},rO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},sO=async()=>{const{data:e}=await we.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},iO=async e=>{const{data:t}=await we.get("/vm-pricing",{params:e});return t},oO=async()=>{const{data:e}=await we.get("/vm-pricing/tiers");return e},aO=async()=>{const{data:e}=await we.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await we.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},lO=async()=>{const{data:e}=await we.get("/export/estimates/excel",{responseType:"blob"});return e},cO=async e=>{const{data:t}=await we.post("/calculate/jobs-classic",e);return t},uO=async e=>{const{data:t}=await we.post("/calculate/all-purpose-classic",e);return t},dO=async e=>{const{data:t}=await we.post("/calculate/jobs-serverless",e);return t},fO=async e=>{const{data:t}=await we.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await we.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await we.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await we.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await we.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await we.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await we.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await we.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await we.post("/calculate/fmapi-proprietary",e);return t},eC=async e=>{const{data:t}=await we.post("/calculate/lakebase",e);return t},Ty=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?dO(n):cO(n);case"ALL_PURPOSE":return t?fO(n):uO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return eC(n);default:throw new Error(`Unknown workload type: ${e}`)}},pO="/static/pricing";async function as(e){const t=await fetch(`${pO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function mO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,o,l,c,u]=await Promise.all([as("instance-dbu-rates.json"),as("dbu-multipliers.json"),as("dbu-rates.json"),as("dbsql-rates.json"),as("dbsql-warehouse-config.json"),as("vector-search-rates.json"),as("model-serving-rates.json"),as("fmapi-databricks-rates.json"),as("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:o,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),tC()}}function tC(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function nC(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,o=e.dbuMultipliers[i];return o!=null&&o.multiplier?o.multiplier:2}function Ag(e,t,n,r,s){const i=r.toUpperCase(),o=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[o];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const f of Object.keys(e.dbuRates))if(f.startsWith(`${t.toLowerCase()}:`)&&f.endsWith(`:${i}`)){const p=e.dbuRates[f];if(p&&p[s]!==void 0)return p[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function hO(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function al(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function gO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function xO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function vO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function yO(e,t,n,r,s,i,o){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${o}`;return e.fmapiProprietaryRates[l]??null}const _O={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ly=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function rC(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ly;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,o=e.dbuRates[i];if(!o||Object.keys(o).length===0)return Ly;const l=new Set;for(const c of Object.keys(o)){const u=_O[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),Array.from(l).sort()}function bO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},wO="v6",cs=`lakemeter_reference_data_${wO}`,kO=4*60*60*1e3;function SO(){try{const e=localStorage.getItem(cs);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>kO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(cs),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(cs),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(cs),null;return t}catch{return localStorage.removeItem(cs),null}}function CO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(cs,JSON.stringify(t))}catch{}}function EO(){try{localStorage.removeItem(cs)}catch{}}const Rf=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Tf=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Lf=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Af=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Df=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Mf=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Of=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],_s=eM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0}],cloudProviders:Rf,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Tf,dbsqlWarehouseTypes:[],dltEditions:Lf,fmapiProviders:Of,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Af,vmPaymentOptions:Df,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Mf,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:tC(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await T4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const o=await Sy();e({estimates:o,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await L4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await A4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await D4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await M4(n,r);return e(i=>{var o;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((o=i.currentEstimate)==null?void 0:o.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await O4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(o=>o.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await V4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:i.lineItems.map(o=>o.line_item_id===n?{...o,...s}:o),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await $4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,o,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=SO();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Rf,dbsqlSizes:u.dbsqlSizes||Tf,dltEditions:u.dltEditions||Lf,fmapiProviders:u.fmapiProviders||Of,vmPricingTiers:u.vmPricingTiers||Af,vmPaymentOptions:u.vmPaymentOptions||Df,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((o=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&o.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Mf,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,f,p,h,g,v,b,x,y,_,S,R,k,T,D,z,j,H,X,re,ae]=await Promise.all([W4().catch(()=>r.workloadTypes),K4().catch(()=>Rf),Q4().catch(()=>Tf),Y4().catch(()=>Lf),X4().catch(()=>Of),oO().catch(()=>Af),aO().catch(()=>Df),nO().catch(()=>null),sO().catch(()=>null),Py().catch(()=>Mf),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),tO(s).catch(()=>[]),rO(s).catch(()=>[]),Cy().catch(()=>[]),Ey().catch(()=>[]),Nm().catch(()=>[])]),me={aws:R,azure:k,gcp:T},ve=R,oe={};j.forEach(q=>{const E=`${q.model}:${q.rate_type}`;oe[E]=q});const B={};H.forEach(q=>{const E=`${q.provider}:${q.model}:${q.rate_type}`;B[E]=q}),e({workloadTypes:u,cloudProviders:d,dbsqlSizes:f,dltEditions:p,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:ve,regionsMap:me,photonMultipliers:D,vectorSearchModes:z,fmapiDatabricksRates:oe,fmapiProprietaryRates:B,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:ae,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),CO({workloadTypes:u,cloudProviders:d,dbsqlSizes:f,dltEditions:p,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:ve,regionsMap:me,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:ae})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{EO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await mO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var o;const r=n.toLowerCase(),s=(o=t()._regionsCache)==null?void 0:o[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await G4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],o=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Cy();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Ey();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await iO({cloud:n,region:r}),i={};s.forEach(o=>{const l=`${o.cloud.toLowerCase()}:${o.region}:${o.instance_type}:${o.pricing_tier}:${o.payment_option}`;i[l]=o.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",o="NA")=>{var p;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":o||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const f=Z4({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=f;try{const h=await f;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((p=h[0])==null?void 0:p.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",o="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":o||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const f=`${u}:${r}:${s}:${i}:NA`;if(c[f]!==void 0)return c[f];for(const p of Object.keys(c)){const h=p.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[p]}for(const p of Object.keys(c)){const h=p.split(":");if(h[0]===u&&h[2]===s)return c[p]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),o=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(o&&Date.now()-o.timestamp{d[f.product_type]=f.dbu_price}),e(f=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...f._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:o,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Ag(l,r,s,i,n);if(u>0)return u}return o[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const o=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:o}})),o}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const o=await HS({provider:n,model:r,cloud:s,rate_type:i});if(o.length>0){const l=o[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(o){return console.error("Failed to fetch FMAPI Proprietary rate:",o),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),o=`${n}:${r}:${s}`;return i[o]||null},calculateWorkloadCost:async(n,r,s,i)=>{var o;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ty(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const p=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=p==="on_demand"||p==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ty(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:p,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const p=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=p==="on_demand"||p==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:p,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const f=((o=n.dbsql_warehouse_type)==null?void 0:o.toUpperCase())||"SERVERLESS";if(f==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const p=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=p==="on_demand"||p==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:f,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:p,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await eC({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break}return c&&e(f=>{const p=new Set(f.calculatingCostIds);return p.delete(n.line_item_id),{workloadCosts:{...f.workloadCosts,[n.line_item_id]:c},calculatingCostIds:p,isCalculatingCost:p.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:o}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=o[g.line_item_id];return!v||!v.success}),d.length===0))return;const f=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:f});const p=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const o=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,o,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await F4(n,r),i=t().estimates.find(l=>l.estimate_id===n),o={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[o,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function jO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const NO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,PO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,RO={};function Ay(e,t){return(RO.jsx?PO:NO).test(e)}const TO=/[ \t\n\f\r]/g;function LO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(TO,"")===""}class Pl{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Pl.prototype.normal={};Pl.prototype.property={};Pl.prototype.space=void 0;function sC(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Pl(n,r,t)}function Rm(e){return e.toLowerCase()}class Kn{constructor(t,n){this.attribute=n,this.property=t}}Kn.prototype.attribute="";Kn.prototype.booleanish=!1;Kn.prototype.boolean=!1;Kn.prototype.commaOrSpaceSeparated=!1;Kn.prototype.commaSeparated=!1;Kn.prototype.defined=!1;Kn.prototype.mustUseProperty=!1;Kn.prototype.number=!1;Kn.prototype.overloadedBoolean=!1;Kn.prototype.property="";Kn.prototype.spaceSeparated=!1;Kn.prototype.space=void 0;let AO=0;const Fe=Hi(),Gt=Hi(),Tm=Hi(),ne=Hi(),yt=Hi(),yo=Hi(),Zn=Hi();function Hi(){return 2**++AO}const Lm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Fe,booleanish:Gt,commaOrSpaceSeparated:Zn,commaSeparated:yo,number:ne,overloadedBoolean:Tm,spaceSeparated:yt},Symbol.toStringTag,{value:"Module"})),If=Object.keys(Lm);class Dg extends Kn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&FO.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,VO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let o=i.replace(IO,UO);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}s=Dg}return new s(r,t)}function UO(e){return"-"+e.toLowerCase()}function VO(e){return e.charAt(1).toUpperCase()}const zO=sC([iC,DO,lC,cC,uC],"html"),Mg=sC([iC,MO,lC,cC,uC],"svg");function $O(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,HO=/\n/g,qO=/^\s*/,WO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,GO=/^:\s*/,KO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,QO=/^[;\s]*/,YO=/^\s+|\s+$/g,XO=` +`,Fy="/",By="*",ki="",JO="comment",ZO="declaration";function eI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(HO);v&&(n+=v.length);var b=g.lastIndexOf(XO);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new o(g),u(),v}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(qO)}function d(g){var v;for(g=g||[];v=f();)v!==!1&&g.push(v);return g}function f(){var g=i();if(!(Fy!=e.charAt(0)||By!=e.charAt(1))){for(var v=2;ki!=e.charAt(v)&&(By!=e.charAt(v)||Fy!=e.charAt(v+1));)++v;if(v+=2,ki===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:JO,comment:b})}}function p(){var g=i(),v=c(WO);if(v){if(f(),!c(GO))return l("property missing ':'");var b=c(KO),x=g({type:ZO,property:Uy(v[0].replace(Iy,ki)),value:b?Uy(b[0].replace(Iy,ki)):ki});return c(QO),x}}function h(){var g=[];d(g);for(var v;v=p();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(YO,ki):ki}var tI=eI,nI=ps&&ps.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=sI;const rI=nI(tI);function sI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,rI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:o,value:l}=i;s?t(o,l,i):l&&(n=n||{},n[o]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var iI=/^--[a-zA-Z0-9_-]+$/,oI=/-([a-z])/g,aI=/^[^-]+$/,lI=/^-(webkit|moz|ms|o|khtml)-/,cI=/^-(ms)-/,uI=function(e){return!e||aI.test(e)||iI.test(e)},dI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},fI=function(e,t){return t===void 0&&(t={}),uI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(cI,Vy):e=e.replace(lI,Vy),e.replace(oI,dI))};Sd.camelCase=fI;var pI=ps&&ps.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},mI=pI(Og),hI=Sd;function Am(e,t){var n={};return!e||typeof e!="string"||(0,mI.default)(e,function(r,s){r&&s&&(n[(0,hI.camelCase)(r,t)]=s)}),n}Am.default=Am;var gI=Am;const xI=qu(gI),dC=fC("end"),Ig=fC("start");function fC(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function vI(e){const t=Ig(e),n=dC(e);if(t&&n)return{start:t,end:n}}function Ta(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class jn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},o=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(o=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Ta(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}jn.prototype.file="";jn.prototype.name="";jn.prototype.reason="";jn.prototype.message="";jn.prototype.stack="";jn.prototype.column=void 0;jn.prototype.line=void 0;jn.prototype.ancestors=void 0;jn.prototype.cause=void 0;jn.prototype.fatal=void 0;jn.prototype.place=void 0;jn.prototype.ruleId=void 0;jn.prototype.source=void 0;const Fg={}.hasOwnProperty,yI=new Map,_I=/[A-Z]/g,bI=new Set(["table","tbody","thead","tfoot","tr"]),wI=new Set(["td","th"]),pC="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function kI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=TI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=RI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:zO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=mC(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function mC(e,t,n){if(t.type==="element")return SI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return CI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return jI(e,t,n);if(t.type==="mdxjsEsm")return EI(e,t);if(t.type==="root")return NI(e,t,n);if(t.type==="text")return PI(e,t)}function SI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=gC(e,t.tagName,!1),o=LI(e,t);let l=Ug(e,t);return bI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!LO(c):!0})),hC(e,o,i,t),Bg(o,l),e.ancestors.pop(),e.schema=r,e.create(t,i,o,n)}function CI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ll(e,t.position)}function EI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ll(e,t.position)}function jI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:gC(e,t.name,!0),o=AI(e,t),l=Ug(e,t);return hC(e,o,i,t),Bg(o,l),e.ancestors.pop(),e.schema=r,e.create(t,i,o,n)}function NI(e,t,n){const r={};return Bg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function PI(e,t){return t.value}function hC(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Bg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function RI(e,t,n){return r;function r(s,i,o,l){const u=Array.isArray(o.children)?n:t;return l?u(i,o,l):u(i,o)}}function TI(e,t){return n;function n(r,s,i,o){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,o,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function LI(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Fg.call(t.properties,s)){const i=DI(e,s,t.properties[s]);if(i){const[o,l]=i;e.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&wI.has(t.tagName)?r=l:n[o]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function AI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const o=i.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ll(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ll(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:yI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);i0?(ir(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function vC(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Dr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=ui(/[A-Za-z]/),Cn=ui(/[\dA-Za-z]/),$I=ui(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=ui(/\d/),HI=ui(/[\dA-Fa-f]/),qI=ui(/[!-/:-@[-`{-~]/);function je(e){return e!==null&&e<-2}function ht(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const Cd=ui(new RegExp("\\p{P}|\\p{S}","u")),Bi=ui(/\s/);function ui(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function qo(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(o=String.fromCharCode(i,l),s=1):o="�"}else o=String.fromCharCode(i);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+s+1,o=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Ye(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return o;function o(c){return He(c)?(e.enter(n),l(c)):t(c)}function l(c){return He(c)&&i++o))return;const T=t.events.length;let D=T,z,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if(z){j=t.events[D][1].end;break}z=!0}for(x(r),k=T;k_;){const R=n[S];t.containerState=R[1],R[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function YI(e,t,n){return Ye(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Do(e){if(e===null||ht(e)||Bi(e))return 1;if(Cd(e))return 2}function Ed(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const f={...e[r][1].end},p={...e[n][1].start};Ky(f,-c),Ky(p,c),o={type:c>1?"strongSequence":"emphasisSequence",start:f,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:p},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},e[r][1].end={...o.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=xr(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=xr(u,[["enter",s,t],["enter",o,t],["exit",o,t],["enter",i,t]]),u=xr(u,Ed(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=xr(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=xr(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,ir(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&He(k)?Ye(e,y,"linePrefix",i+1)(k):y(k)}function y(k){return k===null||je(k)?e.check(Qy,v,S)(k):(e.enter("codeFlowValue"),_(k))}function _(k){return k===null||je(k)?(e.exit("codeFlowValue"),y(k)):(e.consume(k),_)}function S(k){return e.exit("codeFenced"),t(k)}function R(k,T,D){let z=0;return j;function j(me){return k.enter("lineEnding"),k.consume(me),k.exit("lineEnding"),H}function H(me){return k.enter("codeFencedFence"),He(me)?Ye(k,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(me):X(me)}function X(me){return me===l?(k.enter("codeFencedFenceSequence"),re(me)):D(me)}function re(me){return me===l?(z++,k.consume(me),re):z>=o?(k.exit("codeFencedFenceSequence"),He(me)?Ye(k,ae,"whitespace")(me):ae(me)):D(me)}function ae(me){return me===null||je(me)?(k.exit("codeFencedFence"),T(me)):D(me)}}}function lF(e,t,n){const r=this;return s;function s(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i)}function i(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Bf={name:"codeIndented",tokenize:uF},cF={partial:!0,tokenize:dF};function uF(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Ye(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?c(u):je(u)?e.attempt(cF,o,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||je(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function dF(e,t,n){const r=this;return s;function s(o){return r.parser.lazy[r.now().line]?n(o):je(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):Ye(e,i,"linePrefix",5)(o)}function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):je(o)?s(o):n(o)}}const fF={name:"codeText",previous:mF,resolve:pF,tokenize:hF};function pF(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&la(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),la(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),la(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function SC(e,t,n,r,s,i,o,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return f;function f(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),p):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(o),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function p(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),p(x)):x===null||x===60||je(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||ht(x))?(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):je(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||je(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!He(h)),h===92?p:f)}function p(h){return h===91||h===92||h===93?(e.consume(h),l++,f):f(h)}}function EC(e,t,n,r,s,i){let o;return l;function l(p){return p===34||p===39||p===40?(e.enter(r),e.enter(s),e.consume(p),e.exit(s),o=p===40?41:p,c):n(p)}function c(p){return p===o?(e.enter(s),e.consume(p),e.exit(s),e.exit(r),t):(e.enter(i),u(p))}function u(p){return p===o?(e.exit(i),c(o)):p===null?n(p):je(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),Ye(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===o||p===null||je(p)?(e.exit("chunkString"),u(p)):(e.consume(p),p===92?f:d)}function f(p){return p===o||p===92?(e.consume(p),d):d(p)}}function La(e,t){let n;return r;function r(s){return je(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):He(s)?Ye(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const kF={name:"definition",tokenize:CF},SF={partial:!0,tokenize:EF};function CF(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),o(h)}function o(h){return CC.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Dr(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return ht(h)?La(e,u)(h):u(h)}function u(h){return SC(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(SF,f,f)(h)}function f(h){return He(h)?Ye(e,p,"whitespace")(h):p(h)}function p(h){return h===null||je(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function EF(e,t,n){return r;function r(l){return ht(l)?La(e,s)(l):n(l)}function s(l){return EC(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return He(l)?Ye(e,o,"whitespace")(l):o(l)}function o(l){return l===null||je(l)?t(l):n(l)}}const jF={name:"hardBreakEscape",tokenize:NF};function NF(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return je(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const PF={name:"headingAtx",resolve:RF,tokenize:TF};function RF(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ir(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function TF(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||ht(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||je(d)?(e.exit("atxHeading"),t(d)):He(d)?Ye(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||ht(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const LF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],AF={concrete:!0,name:"htmlFlow",resolveTo:OF,tokenize:IF},DF={partial:!0,tokenize:BF},MF={partial:!0,tokenize:FF};function OF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function IF(e,t,n){const r=this;let s,i,o,l,c;return u;function u(A){return d(A)}function d(A){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(A),f}function f(A){return A===33?(e.consume(A),p):A===47?(e.consume(A),i=!0,v):A===63?(e.consume(A),s=3,r.interrupt?t:E):On(A)?(e.consume(A),o=String.fromCharCode(A),b):n(A)}function p(A){return A===45?(e.consume(A),s=2,h):A===91?(e.consume(A),s=5,l=0,g):On(A)?(e.consume(A),s=4,r.interrupt?t:E):n(A)}function h(A){return A===45?(e.consume(A),r.interrupt?t:E):n(A)}function g(A){const be="CDATA[";return A===be.charCodeAt(l++)?(e.consume(A),l===be.length?r.interrupt?t:X:g):n(A)}function v(A){return On(A)?(e.consume(A),o=String.fromCharCode(A),b):n(A)}function b(A){if(A===null||A===47||A===62||ht(A)){const be=A===47,Ae=o.toLowerCase();return!be&&!i&&Xy.includes(Ae)?(s=1,r.interrupt?t(A):X(A)):LF.includes(o.toLowerCase())?(s=6,be?(e.consume(A),x):r.interrupt?t(A):X(A)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(A):i?y(A):_(A))}return A===45||Cn(A)?(e.consume(A),o+=String.fromCharCode(A),b):n(A)}function x(A){return A===62?(e.consume(A),r.interrupt?t:X):n(A)}function y(A){return He(A)?(e.consume(A),y):j(A)}function _(A){return A===47?(e.consume(A),j):A===58||A===95||On(A)?(e.consume(A),S):He(A)?(e.consume(A),_):j(A)}function S(A){return A===45||A===46||A===58||A===95||Cn(A)?(e.consume(A),S):R(A)}function R(A){return A===61?(e.consume(A),k):He(A)?(e.consume(A),R):_(A)}function k(A){return A===null||A===60||A===61||A===62||A===96?n(A):A===34||A===39?(e.consume(A),c=A,T):He(A)?(e.consume(A),k):D(A)}function T(A){return A===c?(e.consume(A),c=null,z):A===null||je(A)?n(A):(e.consume(A),T)}function D(A){return A===null||A===34||A===39||A===47||A===60||A===61||A===62||A===96||ht(A)?R(A):(e.consume(A),D)}function z(A){return A===47||A===62||He(A)?_(A):n(A)}function j(A){return A===62?(e.consume(A),H):n(A)}function H(A){return A===null||je(A)?X(A):He(A)?(e.consume(A),H):n(A)}function X(A){return A===45&&s===2?(e.consume(A),ve):A===60&&s===1?(e.consume(A),oe):A===62&&s===4?(e.consume(A),de):A===63&&s===3?(e.consume(A),E):A===93&&s===5?(e.consume(A),q):je(A)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(DF,pe,re)(A)):A===null||je(A)?(e.exit("htmlFlowData"),re(A)):(e.consume(A),X)}function re(A){return e.check(MF,ae,pe)(A)}function ae(A){return e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),me}function me(A){return A===null||je(A)?re(A):(e.enter("htmlFlowData"),X(A))}function ve(A){return A===45?(e.consume(A),E):X(A)}function oe(A){return A===47?(e.consume(A),o="",B):X(A)}function B(A){if(A===62){const be=o.toLowerCase();return Xy.includes(be)?(e.consume(A),de):X(A)}return On(A)&&o.length<8?(e.consume(A),o+=String.fromCharCode(A),B):X(A)}function q(A){return A===93?(e.consume(A),E):X(A)}function E(A){return A===62?(e.consume(A),de):A===45&&s===2?(e.consume(A),E):X(A)}function de(A){return A===null||je(A)?(e.exit("htmlFlowData"),pe(A)):(e.consume(A),de)}function pe(A){return e.exit("htmlFlow"),t(A)}}function FF(e,t,n){const r=this;return s;function s(o){return je(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):n(o)}function i(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function BF(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Rl,t,n)}}const UF={name:"htmlText",tokenize:VF};function VF(e,t,n){const r=this;let s,i,o;return l;function l(E){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(E),c}function c(E){return E===33?(e.consume(E),u):E===47?(e.consume(E),R):E===63?(e.consume(E),_):On(E)?(e.consume(E),D):n(E)}function u(E){return E===45?(e.consume(E),d):E===91?(e.consume(E),i=0,g):On(E)?(e.consume(E),y):n(E)}function d(E){return E===45?(e.consume(E),h):n(E)}function f(E){return E===null?n(E):E===45?(e.consume(E),p):je(E)?(o=f,oe(E)):(e.consume(E),f)}function p(E){return E===45?(e.consume(E),h):f(E)}function h(E){return E===62?ve(E):E===45?p(E):f(E)}function g(E){const de="CDATA[";return E===de.charCodeAt(i++)?(e.consume(E),i===de.length?v:g):n(E)}function v(E){return E===null?n(E):E===93?(e.consume(E),b):je(E)?(o=v,oe(E)):(e.consume(E),v)}function b(E){return E===93?(e.consume(E),x):v(E)}function x(E){return E===62?ve(E):E===93?(e.consume(E),x):v(E)}function y(E){return E===null||E===62?ve(E):je(E)?(o=y,oe(E)):(e.consume(E),y)}function _(E){return E===null?n(E):E===63?(e.consume(E),S):je(E)?(o=_,oe(E)):(e.consume(E),_)}function S(E){return E===62?ve(E):_(E)}function R(E){return On(E)?(e.consume(E),k):n(E)}function k(E){return E===45||Cn(E)?(e.consume(E),k):T(E)}function T(E){return je(E)?(o=T,oe(E)):He(E)?(e.consume(E),T):ve(E)}function D(E){return E===45||Cn(E)?(e.consume(E),D):E===47||E===62||ht(E)?z(E):n(E)}function z(E){return E===47?(e.consume(E),ve):E===58||E===95||On(E)?(e.consume(E),j):je(E)?(o=z,oe(E)):He(E)?(e.consume(E),z):ve(E)}function j(E){return E===45||E===46||E===58||E===95||Cn(E)?(e.consume(E),j):H(E)}function H(E){return E===61?(e.consume(E),X):je(E)?(o=H,oe(E)):He(E)?(e.consume(E),H):z(E)}function X(E){return E===null||E===60||E===61||E===62||E===96?n(E):E===34||E===39?(e.consume(E),s=E,re):je(E)?(o=X,oe(E)):He(E)?(e.consume(E),X):(e.consume(E),ae)}function re(E){return E===s?(e.consume(E),s=void 0,me):E===null?n(E):je(E)?(o=re,oe(E)):(e.consume(E),re)}function ae(E){return E===null||E===34||E===39||E===60||E===61||E===96?n(E):E===47||E===62||ht(E)?z(E):(e.consume(E),ae)}function me(E){return E===47||E===62||ht(E)?z(E):n(E)}function ve(E){return E===62?(e.consume(E),e.exit("htmlTextData"),e.exit("htmlText"),t):n(E)}function oe(E){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),B}function B(E){return He(E)?Ye(e,q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E):q(E)}function q(E){return e.enter("htmlTextData"),o(E)}}const $g={name:"labelEnd",resolveAll:qF,resolveTo:WF,tokenize:GF},zF={tokenize:KF},$F={tokenize:QF},HF={tokenize:YF};function qF(e){let t=-1;const n=[];for(;++t=3&&(u===null||je(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),He(u)?Ye(e,l,"whitespace")(u):l(u))}}const Un={continuation:{tokenize:oB},exit:lB,name:"list",tokenize:iB},rB={partial:!0,tokenize:cB},sB={partial:!0,tokenize:aB};function iB(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,o=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++o<10?(e.consume(h),c):(!r.interrupt||o<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Rl,r.interrupt?n:d,e.attempt(rB,p,f))}function d(h){return r.containerState.initialBlankLine=!0,i++,p(h)}function f(h){return He(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),p):n(h)}function p(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function oB(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Rl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ye(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!He(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(sB,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ye(e,e.attempt(Un,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function aB(e,t,n){const r=this;return Ye(e,s,"listItemIndent",r.containerState.size+1);function s(i){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(i):n(i)}}function lB(e){e.exit(this.containerState.type)}function cB(e,t,n){const r=this;return Ye(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const o=r.events[r.events.length-1];return!He(i)&&o&&o[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:uB,tokenize:dB};function uB(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",o,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function dB(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,f;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){f=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),s=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),He(u)?Ye(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||je(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const fB={tokenize:pB};function pB(e){const t=this,n=e.attempt(Rl,r,e.attempt(this.parser.constructs.flowInitial,s,Ye(e,e.attempt(this.parser.constructs.flow,s,e.attempt(vF,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const mB={resolveAll:NC()},hB=jC("string"),gB=jC("text");function jC(e){return{resolveAll:NC(e==="text"?xB:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,o,l);return o;function o(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const f=s[d];let p=-1;if(f)for(;++p-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}i>0&&o.push(e[s].slice(0,i))}return o}function RB(e,t){let n=-1;const r=[];let s;for(;++n0){const Be=K.tokenStack[K.tokenStack.length-1];(Be[1]||e_).call(K,void 0,Be[0])}for(F.position={start:Ds(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Ds(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},Ce=-1;++Ce0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function HB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function qB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function WB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=qo(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let o,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function GB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function KB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function TC(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const o=s[s.length-1];return o&&o.type==="text"?o.value+=r:s.push({type:"text",value:r}),s}function QB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return TC(e,t);const s={src:qo(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function YB(e,t){const n={src:qo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function XB(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function JB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return TC(e,t);const s={href:qo(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function ZB(e,t){const n={href:qo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function e6(e,t,n){const r=e.all(t),s=n?t6(n):LC(t),i={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let f;d&&d.type==="element"&&d.tagName==="p"?f=d:(f={type:"element",tagName:"p",properties:{},children:[]},r.unshift(f)),f.children.length>0&&f.children.unshift({type:"text",value:" "}),f.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function n6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=dC(t.children[t.children.length-1]);l&&c&&(o.position={start:l,end:c}),s.push(o)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function a6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function u6(e,t){const n={type:"text",value:c6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function d6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const f6={blockquote:VB,break:zB,code:$B,delete:HB,emphasis:qB,footnoteReference:WB,heading:GB,html:KB,imageReference:QB,image:YB,inlineCode:XB,linkReference:JB,link:ZB,listItem:e6,list:n6,paragraph:r6,root:s6,strong:i6,table:o6,tableCell:l6,tableRow:a6,text:u6,thematicBreak:d6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const AC=-1,jd=0,Aa=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,DC=7,MC=8,s_=typeof self=="object"?self:globalThis,p6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,o]=t[s];switch(i){case jd:case AC:return n(o,s);case Aa:{const l=n([],s);for(const c of o)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of o)l[r(c)]=r(u);return l}case Hg:return n(new Date(o),s);case qg:{const{source:l,flags:c}=o;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of o)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of o)l.add(r(c));return l}case DC:{const{name:l,message:c}=o;return n(new s_[l](c),s)}case MC:return n(BigInt(o),s);case"BigInt":return n(Object(BigInt(o)),s);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:l}=new Uint8Array(o);return n(new DataView(l),o)}}return n(new s_[i](o),s)};return r},i_=e=>p6(new Map,e)(0),Wi="",{toString:m6}={},{keys:h6}=Object,ca=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=m6.call(e).slice(8,-1);switch(n){case"Array":return[Aa,Wi];case"Object":return[Ou,Wi];case"Date":return[Hg,Wi];case"RegExp":return[qg,Wi];case"Map":return[Wg,Wi];case"Set":return[Gg,Wi];case"DataView":return[Aa,n]}return n.includes("Array")?[Aa,n]:n.includes("Error")?[DC,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),g6=(e,t,n,r)=>{const s=(o,l)=>{const c=r.push(o)-1;return n.set(l,c),c},i=o=>{if(n.has(o))return n.get(o);let[l,c]=ca(o);switch(l){case jd:{let d=o;switch(c){case"bigint":l=MC,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([AC],o)}return s([l,d],o)}case Aa:{if(c){let p=o;return c==="DataView"?p=new Uint8Array(o.buffer):c==="ArrayBuffer"&&(p=new Uint8Array(o)),s([c,[...p]],o)}const d=[],f=s([l,d],o);for(const p of o)d.push(i(p));return f}case Ou:{if(c)switch(c){case"BigInt":return s([c,o.toString()],o);case"Boolean":case"Number":case"String":return s([c,o.valueOf()],o)}if(t&&"toJSON"in o)return i(o.toJSON());const d=[],f=s([l,d],o);for(const p of h6(o))(e||!yc(ca(o[p])))&&d.push([i(p),i(o[p])]);return f}case Hg:return s([l,o.toISOString()],o);case qg:{const{source:d,flags:f}=o;return s([l,{source:d,flags:f}],o)}case Wg:{const d=[],f=s([l,d],o);for(const[p,h]of o)(e||!(yc(ca(p))||yc(ca(h))))&&d.push([i(p),i(h)]);return f}case Gg:{const d=[],f=s([l,d],o);for(const p of o)(e||!yc(ca(p)))&&d.push(i(p));return f}}const{message:u}=o;return s([l,{name:c,message:u}],o)};return i},o_=(e,{json:t,lossy:n}={})=>{const r=[];return g6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(o_(e,t)):structuredClone(e):(e,t)=>i_(o_(e,t));function x6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function v6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function y6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||x6,r=e.options.footnoteBackLabel||v6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+p+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+p},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(o),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return k6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?_6(e):b6(e);if(typeof e=="string")return w6(e);throw new Error("Expected function, string, or object as test")};function _6(e){const t=[];let n=-1;for(;++n":""))+")"})}return p;function p(){let h=OC,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=j6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==E6)for(v=(r?x.children.length:-1)+o,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function a_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=P6(e,t),r=n.one(e,void 0),s=y6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function D6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,FC=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,f_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):FC.call(t)==="[object Array]"},p_=function(t){if(!t||FC.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},M6=function e(){var t,n,r,s,i,o,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});co.length;let c;l&&o.push(s);try{c=e.apply(this,o)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(o,...l){n||(n=!0,t(o,...l))}function i(o){s(null,o)}}const Wr={basename:F6,dirname:B6,extname:U6,join:V6,sep:"/"};function F6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Tl(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else o<0&&(i=!0,o=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function B6(e){if(Tl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function U6(e){Tl(e);let t=e.length,n=-1,r=0,s=-1,i=0,o;for(;t--;){const l=e.codePointAt(t);if(l===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function V6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function $6(e,t){let n="",r=0,s=-1,i=0,o=-1,l,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=o,i=0;continue}}else if(n.length>0){n="",r=0,s=o,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,o):n=e.slice(s+1,o),r=o-s-1;s=o,i=0}else l===46&&i>-1?i++:i=-1}return n}function Tl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const H6={cwd:q6};function q6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function W6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return G6(e)}function G6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[p][1];Bm(v)&&Bm(h)&&(h=Vf(!0,v,h)),r[p]=[u,h,...g]}}}}const X6=new Qg().freeze();function qf(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Wf(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Gf(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Bm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return J6(e)?e:new BC(e)}function J6(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Z6(e){return typeof e=="string"||eU(e)}function eU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const tU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},nU=/^(https?|ircs?|mailto|xmpp)$/i,rU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function sU(e){const t=iU(e),n=oU(e);return aU(t.runSync(t.parse(n),n),e)}function iU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return X6().use(UB).use(n).use(D6,r).use(t)}function oU(e){const t=e.children||"",n=new BC;return typeof t=="string"&&(n.value=t),n}function aU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,o=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||lU;for(const d of rU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+tU+d.id,void 0);return Kg(e,u),kI(e,{Fragment:a.Fragment,components:s,ignoreInvalidStyle:!0,jsx:a.jsx,jsxs:a.jsxs,passKeys:!0,passNode:!0});function u(d,f,p){if(d.type==="raw"&&p&&typeof f=="number")return o?p.children.splice(f,1):p.children[f]={type:"text",value:d.value},f;if(d.type==="element"){let h;for(h in Ff)if(Object.hasOwn(Ff,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ff[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof f=="number"&&(h=!r(d,f,p)),h&&p&&typeof f=="number")return l&&d.children?p.children.splice(f,1,...d.children):p.children.splice(f,1),f}}}function lU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||nU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function cU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function uU(e,t,n){const s=Nd((n||{}).ignore||[]),i=dU(t);let o=-1;for(;++o0?{type:"text",value:k}:void 0),k===!1?p.lastIndex=S+1:(g!==S&&y.push({type:"text",value:u.value.slice(g,S)}),Array.isArray(k)?y.push(...k):k&&y.push(k),g=S+_[0].length,x=!0),!p.global)break;_=p.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function UC(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Bi(n)||Cd(n))&&(!t||n!==47)}VC.peek=DU;function EU(){this.buffer()}function jU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function NU(){this.buffer()}function PU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function RU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Dr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function TU(e){this.exit(e)}function LU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Dr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function AU(e){this.exit(e)}function DU(){return"["}function VC(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const o=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),o(),i+=s.move("]"),i}function MU(){return{enter:{gfmFootnoteCallString:EU,gfmFootnoteCall:jU,gfmFootnoteDefinitionLabelString:NU,gfmFootnoteDefinition:PU},exit:{gfmFootnoteCallString:RU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:AU}}}function OU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:VC},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,o){const l=i.createTracker(o);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?zC:IU))),u(),c}}function IU(e,t,n){return t===0?e:zC(e,t,n)}function zC(e,t,n){return(n?"":" ")+e}const FU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];$C.peek=$U;function BU(){return{canContainEols:["delete"],enter:{strikethrough:VU},exit:{strikethrough:zU}}}function UU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:FU}],handlers:{delete:$C}}}function VU(e){this.enter({type:"delete",children:[]},e)}function zU(e){this.exit(e)}function $C(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let o=s.move("~~");return o+=n.containerPhrasing(e,{...s.current(),before:o,after:"~"}),o+=s.move("~~"),i(),o}function $U(){return"~"}function HU(e){return e.length}function qU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||HU,i=[],o=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}o[d]=v,l[d]=b}let f=-1;if(typeof r=="object"&&"length"in r)for(;++fc[f]&&(c[f]=y),h[f]=y),p[f]=_}o.splice(1,0,p),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const o=n.indentLines(n.containerFlow(e,i.current()),KU);return s(),o}function KU(e,t,n){return">"+(n?"":" ")+e}function QU(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=i):i=1,s=r+t.length,r=n.indexOf(t,s);return o}function XU(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function JU(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function ZU(e,t,n,r){const s=JU(n),i=e.value||"",o=s==="`"?"GraveAccent":"Tilde";if(XU(e,n)){const f=n.enter("codeIndented"),p=n.indentLines(i,e7);return f(),p}const l=n.createTracker(r),c=s.repeat(Math.max(YU(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const f=n.enter(`codeFencedLang${o}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),f()}if(e.lang&&e.meta){const f=n.enter(`codeFencedMeta${o}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),f()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function e7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function t7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),o(),u}function n7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function cl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Fu(e,t,n){const r=Do(e),s=Do(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}HC.peek=r7;function HC(e,t,n,r){const s=n7(n),i=n.enter("emphasis"),o=n.createTracker(r),l=o.move(s);let c=o.move(n.containerPhrasing(e,{after:s,before:l,...o.current()}));const u=c.charCodeAt(0),d=Fu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=cl(u)+c.slice(1));const f=c.charCodeAt(c.length-1),p=Fu(r.after.charCodeAt(0),f,s);p.inside&&(c=c.slice(0,-1)+cl(f));const h=o.move(s);return i(),n.attentionEncodeSurroundingInfo={after:p.outside,before:d.outside},l+c+h}function r7(e,t,n){return n.options.emphasis||"*"}function s7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function i7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(s7(e,n)){const d=n.enter("headingSetext"),f=n.enter("phrasing"),p=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return f(),d(),p+` +`+(s===1?"=":"-").repeat(p.length-(Math.max(p.lastIndexOf("\r"),p.lastIndexOf(` +`))+1))}const o="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(o+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=cl(u.charCodeAt(0))+u.slice(1)),u=u?o+" "+u:o,n.options.closeAtx&&(u+=" "+o),c(),l(),u}qC.peek=o7;function qC(e){return e.value||""}function o7(){return"<"}WC.peek=a7;function WC(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),o(),u}function a7(){return"!"}GC.peek=l7;function GC(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let o=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const f=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return o(),n.stack=d,i(),s==="full"||!u||u!==f?c+=l.move(f+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function l7(){return"!"}KC.peek=c7;function KC(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}YC.peek=u7;function YC(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let l,c;if(QC(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let f=o.move("<");return f+=o.move(n.containerPhrasing(e,{before:f,after:">",...o.current()})),f+=o.move(">"),l(),n.stack=d,f}l=n.enter("link"),c=n.enter("label");let u=o.move("[");return u+=o.move(n.containerPhrasing(e,{before:u,after:"](",...o.current()})),u+=o.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=o.move("<"),u+=o.move(n.safe(e.url,{before:u,after:">",...o.current()})),u+=o.move(">")):(c=n.enter("destinationRaw"),u+=o.move(n.safe(e.url,{before:u,after:e.title?" ":")",...o.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=o.move(" "+s),u+=o.move(n.safe(e.title,{before:u,after:s,...o.current()})),u+=o.move(s),c()),u+=o.move(")"),l(),u}function u7(e,t,n){return QC(e,n)?"<":"["}XC.peek=d7;function XC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let o=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const f=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return o(),n.stack=d,i(),s==="full"||!u||u!==f?c+=l.move(f+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function d7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function f7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function p7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function JC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function m7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let o=e.ordered?p7(n):Xg(n);const l=e.ordered?o==="."?")":".":f7(n);let c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),JC(n)===o&&d){let f=-1;for(;++f-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let o=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(o-i.length)),l.shift(o);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(f,p,h){return p?(h?"":" ".repeat(o))+f:(h?i:i+" ".repeat(o-i.length))+f}}function x7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),o=n.containerPhrasing(e,r);return i(),s(),o}const v7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function y7(e,t,n,r){return(e.children.some(function(o){return v7(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function _7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}ZC.peek=b7;function ZC(e,t,n,r){const s=_7(n),i=n.enter("strong"),o=n.createTracker(r),l=o.move(s+s);let c=o.move(n.containerPhrasing(e,{after:s,before:l,...o.current()}));const u=c.charCodeAt(0),d=Fu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=cl(u)+c.slice(1));const f=c.charCodeAt(c.length-1),p=Fu(r.after.charCodeAt(0),f,s);p.inside&&(c=c.slice(0,-1)+cl(f));const h=o.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:p.outside,before:d.outside},l+c+h}function b7(e,t,n){return n.options.strong||"*"}function w7(e,t,n,r){return n.safe(e.value,r)}function k7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function S7(e,t,n){const r=(JC(n)+(n.options.ruleSpaces?" ":"")).repeat(k7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const eE={blockquote:GU,break:S_,code:ZU,definition:t7,emphasis:HC,hardBreak:S_,heading:i7,html:qC,image:WC,imageReference:GC,inlineCode:KC,link:YC,linkReference:XC,list:m7,listItem:g7,paragraph:x7,root:y7,strong:ZC,text:w7,thematicBreak:S7};function C7(){return{enter:{table:E7,tableData:C_,tableHeader:C_,tableRow:N7},exit:{codeText:P7,table:j7,tableData:Xf,tableHeader:Xf,tableRow:Xf}}}function E7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function j7(e){this.exit(e),this.data.inTable=void 0}function N7(e){this.enter({type:"tableRow",children:[]},e)}function Xf(e){this.exit(e)}function C_(e){this.enter({type:"tableCell",children:[]},e)}function P7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,R7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function R7(e,t){return t==="|"?t:e}function T7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:p,table:o,tableCell:c,tableRow:l}};function o(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=f(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return qU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const Q7={tokenize:rV,partial:!0};function Y7(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:eV,continuation:{tokenize:tV},exit:nV}},text:{91:{name:"gfmFootnoteCall",tokenize:Z7},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:X7,resolveTo:J7}}}}function X7(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){o=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!o||!o._balanced)return n(c);const u=Dr(r.sliceSerialize({start:o.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function J7(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function Z7(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,o;return l;function l(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),c}function c(f){return f!==94?n(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(f){if(i>999||f===93&&!o||f===null||f===91||ht(f))return n(f);if(f===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return s.includes(Dr(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(f)}return ht(f)||(o=!0),i++,e.consume(f),f===92?d:u}function d(f){return f===91||f===92||f===93?(e.consume(f),i++,u):u(f)}}function eV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,o=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!l||g===null||g===91||ht(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Dr(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return ht(g)||(l=!0),o++,e.consume(g),g===92?f:d}function f(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function p(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Ye(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function tV(e,t,n){return e.check(Rl,t,e.attempt(Q7,t,n))}function nV(e){e.exit("gfmFootnoteDefinition")}function rV(e,t,n){const r=this;return Ye(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(i):n(i)}}function sV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(o,l){let c=-1;for(;++c1?c(g):(o.consume(g),f++,h);if(f<2&&!n)return c(g);const b=o.exit("strikethroughSequenceTemporary"),x=Do(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class iV{constructor(){this.map=[]}add(t,n,r){oV(this,t,n,r)}consume(t){if(this.map.sort(function(i,o){return i[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function oV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const ae=r.events[H][1].type;if(ae==="lineEnding"||ae==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?k:c;return re===k&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(o=!0,i+=1),d(j)}function d(j){return j===null?n(j):je(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):He(j)?Ye(e,d,"whitespace")(j):(i+=1,o&&(o=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),f(j)))}function f(j){return j===null||j===124||ht(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?p:f)}function p(j){return j===92||j===124?(e.consume(j),f):f(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),o=!1,He(j)?Ye(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(o=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):R(j)}function v(j){return He(j)?Ye(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||je(j)?S(j):R(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):R(j)}function y(j){return j===45?(e.consume(j),y):j===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return He(j)?Ye(e,S,"whitespace")(j):S(j)}function S(j){return j===124?g(j):j===null||je(j)?!o||s!==i?R(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):R(j)}function R(j){return n(j)}function k(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||je(j)?(e.exit("tableRow"),t(j)):He(j)?Ye(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||ht(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?z:D)}function z(j){return j===92||j===124?(e.consume(j),D):D(j)}}function uV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],o=[0,0,0,0],l=!1,c=0,u,d,f;const p=new iV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",f,t]])}return s!==void 0&&(i.end=Object.assign({},Gi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],o=Gi(t.events,n);s&&(s.end=Object.assign({},o),i.push(["exit",s,t])),r.end=Object.assign({},o),i.push(["exit",r,t]),e.add(n+1,0,i)}function Gi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const dV={name:"tasklistCheck",tokenize:pV};function fV(){return{text:{91:dV}}}function pV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return ht(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),o):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),o):n(c)}function o(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return je(c)?t(c):He(c)?e.check({tokenize:mV},t,n)(c):n(c)}}function mV(e,t,n){return Ye(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function hV(e){return vC([U7(),Y7(),sV(e),lV(),fV()])}const gV={};function xV(e){const t=this,n=e||gV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(hV(n)),i.push(O7()),o.push(I7(n))}function vV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:o,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,f]=m.useState([]),[p,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[S,R]=m.useState([]),[k,T]=m.useState([]),[D,z]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[ae,me]=m.useState(!1),[ve,oe]=m.useState(380),[B,q]=m.useState(!1),[E,de]=m.useState(!0),[pe,A]=m.useState(null),[be,Ae]=m.useState(""),[w,Y]=m.useState(null),ce=l??ve,_e=c??oe,ye=m.useRef(null),ot=m.useRef(null),Xe=m.useRef(null),I=m.useRef(null),tt=m.useRef(null),gt=m.useRef(!1),at=m.useMemo(()=>{if(!o||!i)return 0;let U=0;return i.forEach(J=>{const Le=J.item_id||J.line_item_id,Ve=o[Le];Ve!=null&&Ve.total&&(U+=Ve.total)}),U},[o,i]),pt=m.useCallback(U=>{U.preventDefault(),q(!0)},[]);m.useEffect(()=>{const U=Le=>{if(!B)return;const Ve=window.innerWidth-Le.clientX,Q=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,Ve),Q))},J=()=>{q(!1)};return B&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",J),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",J),document.body.style.cursor="",document.body.style.userSelect=""}},[B]);const G=m.useCallback(U=>{h(U.target.value);const J=U.target;J.style.height="auto",J.style.height=Math.min(J.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;gt.current||(U=ye.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(gt.current=!1)},[g]);const N=m.useCallback(()=>{const U=ot.current;if(!U)return;const J=U.scrollHeight-U.scrollTop-U.clientHeight<100;gt.current=!J},[]);m.useEffect(()=>{var U;e&&((U=Xe.current)==null||U.focus())},[e]);const se=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),f(U=>{const J=[...U],Le=J.length-1;return Le>=0&&J[Le].isStreaming&&(J[Le]={...J[Le],isStreaming:!1,isThinking:!1,content:J[Le].content+` + +*[Generation stopped]*`}),J}))},[]),W=m.useCallback((U,J)=>{A(U),Ae(J)},[]),Se=m.useCallback(()=>{A(null),Ae("")},[]),Ne=m.useCallback(async(U,J)=>{try{await navigator.clipboard.writeText(J),Y(U),setTimeout(()=>Y(null),2e3)}catch(Le){console.error("Failed to copy:",Le)}},[]),[O,F]=m.useState(null),[K,ie]=m.useState(!1),Ce=m.useCallback(async U=>{if(!be.trim()||d.findIndex(Q=>Q.id===U)===-1)return;const Le=be.trim();if(T([]),A(null),Ae(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const Ve={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([Ve]),F(Le),ie(!0)},[be,d,b,se]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([U])}},[e,se]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&f([{id:"welcome",role:"assistant",content:se(),timestamp:new Date}])},[e,s,i,at,se]);const Be=m.useCallback(async(U,J)=>{var ct;const Le=U||p.trim();if(!Le||g)return;const Ve={id:`user-${Date.now()}`,role:"user",content:Le,timestamp:new Date,isEdited:J||!1};f(Ze=>[...Ze,Ve]),h(""),v(!0),re(null);const Q=`assistant-${Date.now()}`;f(Ze=>[...Ze,{id:Q,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const Ze=(i||S||[]).map(Oe=>{const De=Oe.line_item_id||Oe.item_id||Oe.draft_id,Pe=o==null?void 0:o[De];return{...Oe,total_cost:(Pe==null?void 0:Pe.total)||Oe.total_cost||0,dbu_cost:(Pe==null?void 0:Pe.dbu)||Oe.dbu_cost||0,vm_cost:(Pe==null?void 0:Pe.vm)||Oe.vm_cost||0}}),Ot=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:Ve.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:Ze,mode:u,stream:!0}),signal:I.current.signal});if(!Ot.ok)throw new Error(`HTTP ${Ot.status}: ${Ot.statusText}`);const ft=(ct=Ot.body)==null?void 0:ct.getReader();if(!ft)throw new Error("No response body");const xt=new TextDecoder;let St="",mt="",Ue=[];for(;;){const{done:Oe,value:De}=await ft.read();if(Oe)break;St+=xt.decode(De,{stream:!0});const Pe=St.split(` +`);St=Pe.pop()||"";for(const qt of Pe)if(qt.startsWith("data: ")){const Ct=qt.slice(6);if(Ct==="[DONE]")continue;try{const le=JSON.parse(Ct);if(le.type==="start")x(le.conversation_id);else if(le.type==="content")mt+=le.content,f(rt=>rt.map(Nt=>Nt.id===Q?{...Nt,content:mt,isThinking:!1}:Nt));else if(le.type==="tool_result")Ue.push({tool:le.tool,result:le.result});else if(le.type==="proposal")le.workload&&le.workload.proposal_id&&T(rt=>rt.some(wr=>wr.proposal_id===le.workload.proposal_id)?rt:[...rt,le.workload]);else if(le.type==="done")mt.includes("Error getting response")||mt.includes("AI service error")||(le.estimate&&_(le.estimate),le.workloads&&R(le.workloads),le.proposed_workloads&&le.proposed_workloads.length>0&&T(le.proposed_workloads));else if(le.type==="error")throw new Error(le.content)}catch{}}}f(Oe=>Oe.map(De=>De.id===Q?{...De,content:mt,isStreaming:!1,toolResults:Ue}:De))}catch(Ze){if(Ze.name==="AbortError")return;console.error("Chat error:",Ze),re(Ze.message||"Failed to get response"),f(Ot=>Ot.filter(ft=>ft.id!==Q))}finally{v(!1),I.current=null}},[p,g,b,s,i,y,S,o]);m.useEffect(()=>{O&&!g&&(Be(O,K),F(null),ie(!1))},[O,K,g,Be]);const dt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Be())},nt=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),R([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([U])},Ge=async U=>{if(b){z(J=>new Set(J).add(U));try{const J=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!J.ok)throw new Error("Failed to confirm workload");const Le=await J.json();if(T(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),r&&Le.workload_config)try{await r(Le.workload_config),f(Ve=>{var Q;return[...Ve,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(Q=Le.workload_config)==null?void 0:Q.workload_name}" added to estimate.`,timestamp:new Date}]})}catch(Ve){f(Q=>[...Q,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${Ve.message||"Database error"}. Please try again.`,timestamp:new Date}]),re(Ve.message||"Failed to add workload to database")}}catch(J){re(J.message||"Failed to confirm workload")}finally{z(J=>{const Le=new Set(J);return Le.delete(U),Le})}}},lt=async U=>{if(b){z(J=>new Set(J).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Le=k.find(Ve=>Ve.proposal_id===U);T(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),f(Ve=>[...Ve,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Le==null?void 0:Le.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(J){re(J.message||"Failed to reject workload")}finally{z(J=>{const Le=new Set(J);return Le.delete(U),Le})}}},Ke=async()=>{for(const U of k)await Ge(U.proposal_id)},Mt=async()=>{for(const U of k)await lt(U.proposal_id)};return e?a.jsx(a.Fragment,{children:ae?a.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:a.jsxs("button",{onClick:()=>me(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[a.jsx($c,{className:"w-5 h-5"}),a.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),a.jsx(ds,{className:"w-4 h-4"})]})}):a.jsxs("div",{ref:tt,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ce}px)`},children:[a.jsx("div",{onMouseDown:pt,className:ue("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",B&&"bg-lava-600/50"),children:a.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),a.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),a.jsxs("div",{className:"relative group",children:[a.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:a.jsx(cS,{className:"w-4 h-4"})}),a.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:a.jsxs("div",{className:"flex items-start gap-2",children:[a.jsx(fs,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),a.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:nt,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:a.jsx(en,{className:"w-4 h-4"})}),a.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:a.jsx(qD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&a.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[a.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:a.jsx(AD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[a.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),a.jsx("span",{className:"truncate",children:s.region||"N/A"}),a.jsx("span",{children:"•"}),a.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),a.jsxs("div",{className:"text-right flex-shrink-0",children:[a.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),a.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[at>0?a.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",at.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):a.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),a.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),k.length>0&&a.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[a.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(ty,{className:"w-4 h-4 text-amber-600"}),a.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[k.length," Proposed Workload",k.length!==1?"s":""," - Confirm to Add"]})]}),j?a.jsx(tr,{className:"w-4 h-4 text-amber-600"}):a.jsx(ds,{className:"w-4 h-4 text-amber-600"})]}),!j&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[a.jsxs("button",{onClick:Ke,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",k.length,")"]}),a.jsx("button",{onClick:Mt,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),a.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:k.map(U=>{const J=D.has(U.proposal_id);return a.jsx("div",{className:ue("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",J&&"opacity-50"),children:a.jsxs("div",{className:"flex items-start justify-between gap-2",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[a.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),a.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&a.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),a.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&a.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&a.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&a.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&a.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&a.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&a.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&a.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&a.jsx("span",{children:U.dlt_edition})]})]}),a.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:J?a.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:a.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:()=>Ge(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:a.jsx(Tu,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>lt(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:a.jsx(To,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),a.jsxs("div",{ref:ot,onScroll:N,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>a.jsx("div",{className:ue("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:a.jsx("div",{className:ue("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?a.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[a.jsx("textarea",{value:be,onChange:J=>Ae(J.target.value),onKeyDown:J=>{J.key==="Enter"&&!J.shiftKey&&(J.preventDefault(),Ce(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),a.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),a.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),a.jsxs("button",{onClick:()=>Ce(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[a.jsx(qs,{className:"w-3 h-3"}),"Save"]})]})]}):a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ue("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?a.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:a.jsxs("div",{className:"flex gap-1",children:[a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?a.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):a.jsx("div",{className:"ai-message-content",children:a.jsx(sU,{remarkPlugins:[xV],components:{h1:({children:J})=>a.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:J}),h2:({children:J})=>a.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:J}),h3:({children:J})=>a.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:J}),p:({children:J})=>a.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:J}),ul:({children:J})=>a.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:J}),ol:({children:J})=>a.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:J}),li:({children:J})=>a.jsx("li",{className:"text-[var(--text-primary)]",children:J}),strong:({children:J})=>a.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:J}),em:({children:J})=>a.jsx("em",{className:"text-[var(--text-secondary)] italic",children:J}),code:({className:J,children:Le})=>(J==null?void 0:J.includes("language-"))?a.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Le}):a.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Le}),pre:({children:J})=>a.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:J}),blockquote:({children:J})=>a.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:J}),hr:()=>a.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:J,children:Le})=>a.jsx("a",{href:J,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Le})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&a.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((J,Le)=>{var Ve;return a.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[(Ve=J.result)!=null&&Ve.success?a.jsx(Tu,{className:"w-3.5 h-3.5 text-green-500"}):a.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),a.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:J.tool.replace(/_/g," ")})]},Le)})}),a.jsxs("div",{className:ue("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&a.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&a.jsx("button",{onClick:()=>Ne(U.id,U.content),className:ue("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?a.jsx(yD,{className:"w-3.5 h-3.5"}):a.jsx(bD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&a.jsx("button",{onClick:()=>W(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:a.jsx(ZD,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&a.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:a.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[a.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),a.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&a.jsx("button",{onClick:nt,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),a.jsx("div",{ref:ye})]}),a.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&a.jsxs("div",{className:"mb-2",children:[a.jsxs("button",{onClick:()=>de(!E),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[E?a.jsx(tr,{className:"w-3 h-3"}):a.jsx(ds,{className:"w-3 h-3"}),E?"Hide Quick Actions":"Show Quick Actions"]}),E&&a.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,J)=>a.jsx("button",{onClick:()=>Be(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},J))})]}),a.jsxs("div",{className:"relative flex items-end",children:[a.jsx("textarea",{ref:Xe,value:p,onChange:G,onKeyDown:dt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:p.length>100?"auto":"hidden"}}),a.jsx("button",{onClick:g?M:()=>Be(),disabled:!g&&!p.trim(),className:ue("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":p.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?a.jsx(dS,{className:"w-4 h-4"}):a.jsx(QD,{className:"w-4 h-4"})}),p.length>100&&a.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:p.length})]}),a.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[a.jsx("span",{children:"Shift+Enter for new line"}),a.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function yV({className:e}){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const _V=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:s3}],N_=()=>a.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[a.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),a.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),a.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),a.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),a.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),a.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Jf=[{value:"light",label:"Light",icon:g3},{value:"dark",label:"Dark",icon:GD},{value:"system",label:"System",icon:ED}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function bV(){const e=yl(),{theme:t,setTheme:n}=j3(),[r,s]=m.useState(!1),[i,o]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[f,p]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),S=m.useRef(null),{currentUser:R,isAuthenticated:k,authError:T,fetchCurrentUser:D,currentEstimate:z,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:ae,fetchReferenceData:me,loadPricingBundle:ve,isReferenceDataLoaded:oe,isPricingBundleLoaded:B}=_s(),q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",E=e.pathname==="/",de=q||E,pe=m.useCallback(()=>{R4(),ae(!1),p(!1),window.location.reload()},[ae]);m.useEffect(()=>{const Y=ce=>{var _e;console.log("Session expired event received:",ce.detail),g(((_e=ce.detail)==null?void 0:_e.message)||"Your session has expired"),p(!0),ae(!0)};return window.addEventListener(Em,Y),()=>{window.removeEventListener(Em,Y)}},[ae]),m.useEffect(()=>{de&&!v&&c(!0)},[de,v]);const A=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),be=m.useCallback(()=>{o(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!de&&l&&c(!1)},[de,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||me(),B||ve()},[me,ve,oe,B]),m.useEffect(()=>{const Y=ce=>{_.current&&!_.current.contains(ce.target)&&s(!1),S.current&&!S.current.contains(ce.target)&&o(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const Ae=Jf.find(Y=>Y.value===t)||Jf[2],w=Ae.icon;return T?a.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:a.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[a.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:a.jsx(N_,{})}),a.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),a.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),a.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[a.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),a.jsxs("p",{className:"mb-2",children:["Set the ",a.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),a.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):a.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[a.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-14",children:[a.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:a.jsx(N_,{})}),a.jsxs("div",{children:[a.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),a.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("nav",{className:"flex items-center gap-1",children:_V.map(Y=>{const ce=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return a.jsxs(bu,{to:Y.href,className:ue("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ce&&"border"),style:ce?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[a.jsx(Y.icon,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),k&&R&&a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[a.jsx(b3,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:R.full_name||R.email,children:R.full_name||R.email.split("@")[0]})]}),a.jsxs("div",{className:"relative",ref:_,children:[a.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[a.jsx(w,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm hidden sm:inline",children:Ae.label}),a.jsx(tr,{className:ue("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&a.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Jf.map(Y=>{const ce=Y.icon,_e=t===Y.value;return a.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[a.jsx(ce,{className:"w-4 h-4"}),a.jsx("span",{children:Y.label})]},Y.value)})})]}),a.jsxs("div",{className:"relative",ref:S,children:[a.jsxs("button",{onClick:be,className:ue("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[a.jsx(a3,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&a.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[a.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),a.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),a.jsx(nm,{children:i&&a.jsxs(Bt.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[a.jsx("div",{className:"px-3 py-1.5 mb-1",children:a.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),a.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>o(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[a.jsx(MD,{className:"w-4 h-4 text-blue-500"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:"Documentation"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),a.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>o(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[a.jsx(_m,{className:"w-4 h-4 text-purple-500"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:"Official Pricing"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),a.jsx("main",{className:"flex-1",style:l&&de?{marginRight:`${u}px`}:void 0,children:a.jsx(Bt.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:a.jsx(wN,{})},e.pathname)}),a.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&de?{marginRight:`${u}px`}:{}},children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[a.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[a.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),a.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),a.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[a.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),a.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),de&&a.jsx(vV,{isOpen:l,onClose:()=>c(!1),currentEstimate:q?z:void 0,currentWorkloads:q?j:void 0,itemCosts:q?H:void 0,mode:E?"home":"estimate",onWorkloadConfirmed:q?async Y=>{if(z!=null&&z.estimate_id)try{await X({estimate_id:z.estimate_id,...Y}),re(z.estimate_id),$e.success(`Workload "${Y.workload_name}" added!`)}catch(ce){throw $e.error(ce.message||"Failed to add workload"),ce}}:void 0,onWidthChange:d,panelWidth:u}),de&&!l&&a.jsxs("button",{onClick:A,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[a.jsx(yV,{className:"w-5 h-5"}),a.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&a.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),a.jsx(nm,{children:f&&a.jsx(Bt.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:a.jsxs(Bt.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[a.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[a.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:a.jsx(fs,{className:"w-10 h-10 text-white"})}),a.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),a.jsxs("div",{className:"px-6 py-6",children:[a.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),a.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[a.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),a.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[a.jsx("li",{children:"Your authentication token has expired"}),a.jsx("li",{children:"This can happen after extended inactivity"}),a.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),a.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[a.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),a.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function wV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Wo(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Qn(e){var t,n;return e?Wo(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Qn(e);return e instanceof t}function Ll(e){return Wo(e)?!1:e instanceof Qn(e).HTMLElement}function cE(e){return e instanceof Qn(e).SVGElement}function Go(e){return e?Wo(e)?e.document:Zg(e)?ex(e)?e:Ll(e)||cE(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function ul(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Al(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Bu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Zf={};function Dl(e,t){return m.useMemo(()=>{if(t)return t;const n=Zf[e]==null?0:Zf[e]+1;return Zf[e]=n,e+"-"+n},[e,t])}function uE(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(o);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const _o=uE(1),Uu=uE(-1);function SV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Qn(e.target);return t&&e instanceof t}function CV(e){if(!e)return!1;const{TouchEvent:t}=Qn(e.target);return t&&e instanceof t}function $m(e){if(CV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return SV(e)?{x:e.clientX,y:e.clientY}:null}const Mo=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Mo.Translate.toString(e),Mo.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function EV(e){return e.matches(P_)?e:e.querySelector(P_)}const jV={display:"none"};function NV(e){let{id:t,value:n}=e;return un.createElement("div",{id:t,style:jV},n)}function PV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return un.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function RV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const dE=m.createContext(null);function TV(e){const t=m.useContext(dE);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function LV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(o=>{var l;return(l=o[s])==null?void 0:l.call(o,i)})},[e]),t]}const AV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},DV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function MV(e){let{announcements:t=DV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=AV}=e;const{announce:i,announcement:o}=RV(),l=Dl("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),TV(m.useMemo(()=>({onDragStart(f){let{active:p}=f;i(t.onDragStart({active:p}))},onDragMove(f){let{active:p,over:h}=f;t.onDragMove&&i(t.onDragMove({active:p,over:h}))},onDragOver(f){let{active:p,over:h}=f;i(t.onDragOver({active:p,over:h}))},onDragEnd(f){let{active:p,over:h}=f;i(t.onDragEnd({active:p,over:h}))},onDragCancel(f){let{active:p,over:h}=f;i(t.onDragCancel({active:p,over:h}))}}),[i,t])),!c)return null;const d=un.createElement(un.Fragment,null,un.createElement(NV,{id:r,value:s.draggable}),un.createElement(PV,{id:l,announcement:o}));return n?oo.createPortal(d,n):d}var nn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(nn||(nn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function fE(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Or=Object.freeze({x:0,y:0});function OV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function IV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function FV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function BV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const pE=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=OV(R_(c),s);i.push({id:l,data:{droppableContainer:o,value:u}})}}return i.sort(IV)};function UV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),o=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:o}=i,l=n.get(o);if(l){const c=UV(l,t);c>0&&s.push({id:o,data:{droppableContainer:i,value:c}})}}return s.sort(FV)};function zV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function mE(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Or}function $V(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...o,top:o.top+e*l.y,bottom:o.bottom+e*l.y,left:o.left+e*l.x,right:o.right+e*l.x}),{...n})}}const HV=$V(1);function qV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function WV(e,t,n){const r=qV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:o,y:l}=r,c=e.left-o-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,f=i?e.height/i:e.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const GV={ignoreTransform:!1};function Ko(e,t){t===void 0&&(t=GV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Qn(e).getComputedStyle(e);u&&(n=WV(n,u,d))}const{top:r,left:s,width:i,height:o,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:o,bottom:l,right:c}}function T_(e){return Ko(e,{ignoreTransform:!0})}function KV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function QV(e,t){return t===void 0&&(t=Qn(e).getComputedStyle(e)),t.position==="fixed"}function YV(e,t){t===void 0&&(t=Qn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Ll(s)||cE(s)||n.includes(s))return n;const i=Qn(e).getComputedStyle(s);return s!==e&&YV(s,i)&&n.push(s),QV(s,i)?n:r(s.parentNode)}return e?r(e):n}function hE(e){const[t]=rx(e,1);return t??null}function ep(e){return!Rd||!e?null:Wo(e)?e:Zg(e)?ex(e)||e===Go(e).scrollingElement?window:Ll(e)?e:null:null}function gE(e){return Wo(e)?e.scrollX:e.scrollLeft}function xE(e){return Wo(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:gE(e),y:xE(e)}}var cn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(cn||(cn={}));function vE(e){return!Rd||!e?!1:e===document.scrollingElement}function yE(e){const t={x:0,y:0},n=vE(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,o=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:o,isRight:l,maxScroll:r,minScroll:t}}const XV={x:.2,y:.2};function JV(e,t,n,r,s){let{top:i,left:o,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=XV);const{isTop:u,isBottom:d,isLeft:f,isRight:p}=yE(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=cn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=cn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!p&&l>=t.right-v.width?(h.x=cn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!f&&o<=t.left+v.width&&(h.x=cn.Backward,g.x=r*Math.abs((t.left+v.width-o)/v.width)),{direction:h,speed:g}}function ZV(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:o}=window;return{top:0,left:0,right:i,bottom:o,width:i,height:o}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function _E(e){return e.reduce((t,n)=>_o(t,Hm(n)),Or)}function ez(e){return e.reduce((t,n)=>t+gE(n),0)}function tz(e){return e.reduce((t,n)=>t+xE(n),0)}function nz(e,t){if(t===void 0&&(t=Ko),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);hE(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const rz=[["x",["left","right"],ez],["y",["top","bottom"],tz]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=_E(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,o,l]of rz)for(const c of o)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Da{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function sz(e){const{EventTarget:t}=Qn(e);return e instanceof t?e:Go(e)}function tp(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var mr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(mr||(mr={}));function L_(e){e.preventDefault()}function iz(e){e.stopPropagation()}var et;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(et||(et={}));const bE={start:[et.Space,et.Enter],cancel:[et.Esc],end:[et.Space,et.Enter,et.Tab]},oz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case et.Right:return{...n,x:n.x+25};case et.Left:return{...n,x:n.x-25};case et.Down:return{...n,y:n.y+25};case et.Up:return{...n,y:n.y-25}}};class Td{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Da(Go(n)),this.windowListeners=new Da(Qn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(mr.Resize,this.handleCancel),this.windowListeners.add(mr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(mr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&nz(r),n(Or)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=bE,coordinateGetter:o=oz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Or;this.referenceCoordinates||(this.referenceCoordinates=d);const f=o(t,{active:n,context:r.current,currentCoordinates:d});if(f){const p=Uu(f,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:S,maxScroll:R,minScroll:k}=yE(v),T=ZV(v),D={x:Math.min(b===et.Right?T.right-T.width/2:T.right,Math.max(b===et.Right?T.left:T.left+T.width/2,f.x)),y:Math.min(b===et.Down?T.bottom-T.height/2:T.bottom,Math.max(b===et.Down?T.top:T.top+T.height/2,f.y))},z=b===et.Right&&!y||b===et.Left&&!_,j=b===et.Down&&!S||b===et.Up&&!x;if(z&&D.x!==f.x){const H=v.scrollLeft+p.x,X=b===et.Right&&H<=R.x||b===et.Left&&H>=k.x;if(X&&!p.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===et.Right?v.scrollLeft-R.x:v.scrollLeft-k.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==f.y){const H=v.scrollTop+p.y,X=b===et.Down&&H<=R.y||b===et.Up&&H>=k.y;if(X&&!p.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===et.Down?v.scrollTop-R.y:v.scrollTop-k.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,_o(Uu(f,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Td.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=bE,onActivation:s}=t,{active:i}=n;const{code:o}=e.nativeEvent;if(r.start.includes(o)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function A_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=sz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:o}=i;this.props=t,this.events=n,this.document=Go(o),this.documentListeners=new Da(this.document),this.listeners=new Da(r),this.windowListeners=new Da(Qn(o)),this.initialCoordinates=(s=$m(i))!=null?s:Or,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(mr.Resize,this.handleCancel),this.windowListeners.add(mr.DragStart,L_),this.windowListeners.add(mr.VisibilityChange,this.handleCancel),this.windowListeners.add(mr.ContextMenu,L_),this.documentListeners.add(mr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(A_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(mr.Click,iz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(mr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:o,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Or,u=Uu(s,c);if(!r&&l){if(A_(l)){if(l.tolerance!=null&&tp(u,l.tolerance))return this.handleCancel();if(tp(u,l.distance))return this.handleStart()}if(D_(l)&&tp(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),o(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===et.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const az={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ld extends ix{constructor(t){const{event:n}=t,r=Go(n.target);super(t,az,r)}}Ld.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const lz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class cz extends ix{constructor(t){super(t,lz,Go(t.event.target))}}cz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const np={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class uz extends ix{constructor(t){super(t,np)}static setup(){return window.addEventListener(np.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(np.move.name,t)};function t(){}}}uz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Ma;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Ma||(Ma={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function dz(e){let{acceleration:t,activator:n=Ma.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:o=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:p}=e;const h=pz({delta:f,disabled:!i}),[g,v]=kV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Ma.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Ma.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),S=m.useCallback(()=>{const k=_.current;if(!k)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;k.scrollBy(T,D)},[]),R=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const k of R){if((r==null?void 0:r(k))===!1)continue;const T=u.indexOf(k),D=d[T];if(!D)continue;const{direction:z,speed:j}=JV(k,D,y,t,p);for(const H of["x","y"])h[H][z[H]]||(j[H]=0,z[H]=0);if(j.x>0||j.y>0){v(),_.current=k,g(S,o),b.current=j,x.current=z;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,S,r,v,i,o,JSON.stringify(y),JSON.stringify(h),g,u,R,d,JSON.stringify(p)])}const fz={x:{[cn.Backward]:!1,[cn.Forward]:!1},y:{[cn.Backward]:!1,[cn.Forward]:!1}};function pz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Al(s=>{if(n||!r||!s)return fz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[cn.Backward]:s.x[cn.Backward]||i.x===-1,[cn.Forward]:s.x[cn.Forward]||i.x===1},y:{[cn.Backward]:s.y[cn.Backward]||i.y===-1,[cn.Forward]:s.y[cn.Forward]||i.y===1}}},[n,t,r])}function mz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Al(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function hz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,r)}));return[...n,...i]},[]),[e,t])}var dl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(dl||(dl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function gz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,o]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),f=b(),p=ul(f),h=m.useCallback(function(x){x===void 0&&(x=[]),!p.current&&o(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[p]),g=m.useRef(null),v=Al(x=>{if(f&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const S=_.node.current,R=S?new sx(c(S),S):null;_.rect.current=R,R&&y.set(_.id,R)}return y}return x},[e,i,n,f,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{f||h()},[n,f]),m.useEffect(()=>{i&&i.length>0&&o(null)},[JSON.stringify(i)]),m.useEffect(()=>{f||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,f,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case dl.Always:return!1;case dl.BeforeDragging:return n;default:return!n}}}function wE(e,t){return Al(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function xz(e,t){return wE(e,t)}function vz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ad(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function yz(e){return new sx(Ko(e),e)}function O_(e,t,n){t===void 0&&(t=yz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const o=vz({callback(c){if(e)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(e)){i();break}}}}),l=Ad({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[e]),r}function _z(e){const t=wE(e);return mE(e,t)}const I_=[];function bz(e){const t=m.useRef(e),n=Al(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function wz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const o=ep(i.target);o&&n(l=>l?(l.set(o,Hm(o)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){o(i);const l=e.map(c=>{const u=ep(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{o(e),o(i)};function o(l){l.forEach(c=>{const u=ep(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,o)=>_o(i,o),Or):_E(e):Or,[e,t])}function F_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Or;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Or}function kz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Sz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=o=>{i(o,t)},n},{}),[e,t])}function kE(e){return m.useMemo(()=>e?KV(e):null,[e])}const B_=[];function Cz(e,t){t===void 0&&(t=Ko);const[n]=e,r=kE(n?Qn(n):null),[s,i]=m.useState(B_);function o(){i(()=>e.length?e.map(c=>vE(c)?r:new sx(t(c),c)):B_)}const l=Ad({callback:o});return es(()=>{l==null||l.disconnect(),o(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Ez(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Ll(t)?t:e}function jz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Ll(d)){r(f=>{const p=t(d);return f?{...f,width:p.width,height:p.height}:p});break}},[t]),i=Ad({callback:s}),o=m.useCallback(u=>{const d=Ez(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Bu(o);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Nz=[{sensor:Ld,options:{}},{sensor:Td,options:{}}],Pz={current:{}},Qc={draggable:{measure:T_},droppable:{measure:T_,strategy:dl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Ko}};class Oa extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Rz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Oa,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Tz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Tz),SE=m.createContext(Rz);function Lz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Oa}}}function Az(e,t){switch(t.type){case nn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case nn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case nn.DragEnd:case nn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case nn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Oa(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case nn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const o=new Oa(e.droppable.containers);return o.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:o}}}case nn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Oa(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Dz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),o=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&o!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(o);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=EV(d);if(f){f.focus();break}}})}},[r,t,s,o,i]),null}function Mz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Oz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function Iz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:o,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!o&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=mE(d,r);if(o||(f.x=0),l||(f.y=0),i.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const p=hE(u);p&&p.scrollBy({top:f.y,left:f.x})}},[t,o,l,r,n])}const CE=m.createContext({...Or,scaleX:1,scaleY:1});var Fs;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Fs||(Fs={}));const EE=m.memo(function(t){var n,r,s,i;let{id:o,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Nz,collisionDetection:f=VV,measuring:p,modifiers:h,...g}=t;const v=m.useReducer(Az,void 0,Lz),[b,x]=v,[y,_]=LV(),[S,R]=m.useState(Fs.Uninitialized),k=S===Fs.Initialized,{draggable:{active:T,nodes:D,translate:z},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var Q;return T!=null?{id:T,data:(Q=H==null?void 0:H.data)!=null?Q:Pz,rect:X}:null},[T,H]),ae=m.useRef(null),[me,ve]=m.useState(null),[oe,B]=m.useState(null),q=ul(g,Object.values(g)),E=Dl("DndDescribedBy",o),de=m.useMemo(()=>j.getEnabled(),[j]),pe=Oz(p),{droppableRects:A,measureDroppableContainers:be,measuringScheduled:Ae}=gz(de,{dragging:k,dependencies:[z.x,z.y],config:pe.droppable}),w=mz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ce=Ve(),_e=xz(w,pe.draggable.measure);Iz({activeNode:T!=null?D.get(T):null,config:ce.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ye=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Xe=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:A,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Xe.current.over)==null?void 0:n.id),tt=jz({measure:pe.dragOverlay.measure}),gt=(r=tt.nodeRef.current)!=null?r:w,at=k?(s=tt.rect)!=null?s:ye:null,pt=!!(tt.nodeRef.current&&tt.rect),G=_z(pt?null:ye),P=kE(gt?Qn(gt):null),N=bz(k?I??w:null),se=Cz(N),M=Mz(h,{transform:{x:z.x-G.x,y:z.y-G.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ye,containerNodeRect:ot,draggingNodeRect:at,over:Xe.current.over,overlayNodeRect:tt.rect,scrollableAncestors:N,scrollableAncestorRects:se,windowRect:P}),W=Y?_o(Y,z):null,Se=wz(N),Ne=F_(Se),O=F_(Se,[ye]),F=_o(M,Ne),K=at?HV(at,M):null,ie=re&&K?f({active:re,collisionRect:K,droppableRects:A,droppableContainers:de,pointerCoordinates:W}):null,Ce=BV(ie,"id"),[Be,dt]=m.useState(null),nt=pt?M:_o(M,O),Ge=zV(nt,(i=Be==null?void 0:Be.rect)!=null?i:null,ye),lt=m.useRef(null),Ke=m.useCallback((Q,ct)=>{let{sensor:Ze,options:Ot}=ct;if(ae.current==null)return;const ft=D.get(ae.current);if(!ft)return;const xt=Q.nativeEvent,St=new Ze({active:ae.current,activeNode:ft,event:xt,options:Ot,context:Xe,onAbort(Ue){if(!D.get(Ue))return;const{onDragAbort:De}=q.current,Pe={id:Ue};De==null||De(Pe),y({type:"onDragAbort",event:Pe})},onPending(Ue,Oe,De,Pe){if(!D.get(Ue))return;const{onDragPending:Ct}=q.current,le={id:Ue,constraint:Oe,initialCoordinates:De,offset:Pe};Ct==null||Ct(le),y({type:"onDragPending",event:le})},onStart(Ue){const Oe=ae.current;if(Oe==null)return;const De=D.get(Oe);if(!De)return;const{onDragStart:Pe}=q.current,qt={activatorEvent:xt,active:{id:Oe,data:De.data,rect:X}};oo.unstable_batchedUpdates(()=>{Pe==null||Pe(qt),R(Fs.Initializing),x({type:nn.DragStart,initialCoordinates:Ue,active:Oe}),y({type:"onDragStart",event:qt}),ve(lt.current),B(xt)})},onMove(Ue){x({type:nn.DragMove,coordinates:Ue})},onEnd:mt(nn.DragEnd),onCancel:mt(nn.DragCancel)});lt.current=St;function mt(Ue){return async function(){const{active:De,collisions:Pe,over:qt,scrollAdjustedTranslate:Ct}=Xe.current;let le=null;if(De&&Ct){const{cancelDrop:rt}=q.current;le={activatorEvent:xt,active:De,collisions:Pe,delta:Ct,over:qt},Ue===nn.DragEnd&&typeof rt=="function"&&await Promise.resolve(rt(le))&&(Ue=nn.DragCancel)}ae.current=null,oo.unstable_batchedUpdates(()=>{x({type:Ue}),R(Fs.Uninitialized),dt(null),ve(null),B(null),lt.current=null;const rt=Ue===nn.DragEnd?"onDragEnd":"onDragCancel";if(le){const Nt=q.current[rt];Nt==null||Nt(le),y({type:rt,event:le})}})}}},[D]),Mt=m.useCallback((Q,ct)=>(Ze,Ot)=>{const ft=Ze.nativeEvent,xt=D.get(Ot);if(ae.current!==null||!xt||ft.dndKit||ft.defaultPrevented)return;const St={active:xt};Q(Ze,ct.options,St)===!0&&(ft.dndKit={capturedBy:ct.sensor},ae.current=Ot,Ke(Ze,ct))},[D,Ke]),U=hz(d,Mt);kz(d),es(()=>{ye&&S===Fs.Initializing&&R(Fs.Initialized)},[ye,S]),m.useEffect(()=>{const{onDragMove:Q}=q.current,{active:ct,activatorEvent:Ze,collisions:Ot,over:ft}=Xe.current;if(!ct||!Ze)return;const xt={active:ct,activatorEvent:Ze,collisions:Ot,delta:{x:F.x,y:F.y},over:ft};oo.unstable_batchedUpdates(()=>{Q==null||Q(xt),y({type:"onDragMove",event:xt})})},[F.x,F.y]),m.useEffect(()=>{const{active:Q,activatorEvent:ct,collisions:Ze,droppableContainers:Ot,scrollAdjustedTranslate:ft}=Xe.current;if(!Q||ae.current==null||!ct||!ft)return;const{onDragOver:xt}=q.current,St=Ot.get(Ce),mt=St&&St.rect.current?{id:St.id,rect:St.rect.current,data:St.data,disabled:St.disabled}:null,Ue={active:Q,activatorEvent:ct,collisions:Ze,delta:{x:ft.x,y:ft.y},over:mt};oo.unstable_batchedUpdates(()=>{dt(mt),xt==null||xt(Ue),y({type:"onDragOver",event:Ue})})},[Ce]),es(()=>{Xe.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:K,collisions:ie,droppableRects:A,draggableNodes:D,draggingNode:gt,draggingNodeRect:at,droppableContainers:j,over:Be,scrollableAncestors:N,scrollAdjustedTranslate:F},X.current={initial:at,translated:K}},[re,w,ie,K,D,gt,at,A,j,Be,N,F]),dz({...ce,delta:z,draggingRect:K,pointerCoordinates:W,scrollableAncestors:N,scrollableAncestorRects:se});const J=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ye,activatorEvent:oe,collisions:ie,containerNodeRect:ot,dragOverlay:tt,draggableNodes:D,droppableContainers:j,droppableRects:A,over:Be,measureDroppableContainers:be,scrollableAncestors:N,scrollableAncestorRects:se,measuringConfiguration:pe,measuringScheduled:Ae,windowRect:P}),[re,w,ye,oe,ie,ot,tt,D,j,A,Be,be,N,se,pe,Ae,P]),Le=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ye,ariaDescribedById:{draggable:E},dispatch:x,draggableNodes:D,over:Be,measureDroppableContainers:be}),[oe,U,re,ye,x,E,D,Be,be]);return un.createElement(dE.Provider,{value:_},un.createElement(Dd.Provider,{value:Le},un.createElement(SE.Provider,{value:J},un.createElement(CE.Provider,{value:Ge},u)),un.createElement(Dz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),un.createElement(MV,{...l,hiddenTextDescribedById:E}));function Ve(){const Q=(me==null?void 0:me.autoScrollEnabled)===!1,ct=typeof c=="object"?c.enabled===!1:c===!1,Ze=k&&!Q&&!ct;return typeof c=="object"?{...c,enabled:Ze}:{enabled:Ze}}}),Fz=m.createContext(null),U_="button",Bz="Draggable";function Uz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Dl(Bz),{activators:o,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:p}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?CE:Fz),[y,_]=Bu(),[S,R]=Bu(),k=Sz(o,t),T=ul(n);es(()=>(f.set(t,{id:t,key:i,node:y,activatorNode:S,data:T}),()=>{const z=f.get(t);z&&z.key===i&&f.delete(t)}),[f,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:k,node:y,over:p,setNodeRef:_,setActivatorNodeRef:R,transform:x}}function Vz(){return m.useContext(SE)}const zz="Droppable",$z={timeout:25};function Hz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Dl(zz),{active:o,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),f=m.useRef(!1),p=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...$z,...s},x=ul(v??r),y=m.useCallback(()=>{if(!f.current){f.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ad({callback:y,disabled:g||!o}),S=m.useCallback((D,z)=>{_&&(z&&(_.unobserve(z),f.current=!1),D&&_.observe(D))},[_]),[R,k]=Bu(S),T=ul(t);return m.useEffect(()=>{!_||!R.current||(_.disconnect(),f.current=!1,_.observe(R.current))},[R,_]),m.useEffect(()=>(l({type:nn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:R,rect:p,data:T}}),()=>l({type:nn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:nn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:o,rect:p,isOver:(c==null?void 0:c.id)===r,node:R,over:c,setNodeRef:k}}function ox(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function qz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Wz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ox(t,r,n),o=t[s],l=i[s];return!l||!o?null:{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}},Sc={scaleX:1,scaleY:1},NE=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:o}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[o];return u?{x:0,y:nn&&s<=o?{x:0,y:-l.height-c,...Sc}:s=o?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Kz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(k=>typeof k=="object"&&"id"in k?k.id:k),[r]),g=o!=null,v=o?h.indexOf(o.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Wz(h,x.current),_=b!==-1&&v===-1||y,S=Gz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const R=m.useMemo(()=>({activeIndex:v,containerId:f,disabled:S,disableTransforms:_,items:h,overIndex:b,useDragOverlay:p,sortedRects:qz(h,c),strategy:s}),[v,f,S.draggable,S.droppable,_,h,b,c,p,s]);return un.createElement(RE.Provider,{value:R},t)}const Qz=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ox(n,r,s).indexOf(t)},Yz=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:o,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===o?!1:n?!0:o!==s&&t===c},Xz={duration:200,easing:"ease"},LE="transform",Jz=Mo.Transition.toString({property:LE,duration:0,easing:"linear"}),Zz={roleDescription:"sortable"};function e8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,o]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Ko(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&o(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&o(null)},[i]),i}function AE(e){let{animateLayoutChanges:t=Yz,attributes:n,disabled:r,data:s,getNewIndex:i=Qz,id:o,strategy:l,resizeObserverConfig:c,transition:u=Xz}=e;const{items:d,containerId:f,activeIndex:p,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(RE),_=t8(r,h),S=d.indexOf(o),R=m.useMemo(()=>({sortable:{containerId:f,index:S,items:d},...s}),[f,s,S,d]),k=m.useMemo(()=>d.slice(d.indexOf(o)),[d,o]),{rect:T,node:D,isOver:z,setNodeRef:j}=Hz({id:o,data:R,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:k,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:ae,setNodeRef:me,listeners:ve,isDragging:oe,over:B,setActivatorNodeRef:q,transform:E}=Uz({id:o,data:R,attributes:{...Zz,...n},disabled:_.draggable}),de=wV(j,me),pe=!!H,A=pe&&!g&&kc(p)&&kc(b),be=!x&&oe,Ae=be&&A?E:null,Y=A?Ae??(l??y)({rects:v,activeNodeRect:re,activeIndex:p,overIndex:b,index:S}):null,ce=kc(p)&&kc(b)?i({id:o,items:d,activeIndex:p,overIndex:b}):S,_e=H==null?void 0:H.id,ye=m.useRef({activeId:_e,items:d,newIndex:ce,containerId:f}),ot=d!==ye.current.items,Xe=t({active:H,containerId:f,isDragging:oe,isSorting:pe,id:o,index:S,items:d,newIndex:ye.current.newIndex,previousItems:ye.current.items,previousContainerId:ye.current.containerId,transition:u,wasDragging:ye.current.activeId!=null}),I=e8({disabled:!Xe,index:S,node:D,rect:T});return m.useEffect(()=>{pe&&ye.current.newIndex!==ce&&(ye.current.newIndex=ce),f!==ye.current.containerId&&(ye.current.containerId=f),d!==ye.current.items&&(ye.current.items=d)},[pe,ce,f,d]),m.useEffect(()=>{if(_e===ye.current.activeId)return;if(_e!=null&&ye.current.activeId==null){ye.current.activeId=_e;return}const gt=setTimeout(()=>{ye.current.activeId=_e},50);return()=>clearTimeout(gt)},[_e]),{active:H,activeIndex:p,attributes:ae,data:R,rect:T,index:S,newIndex:ce,items:d,isOver:z,isSorting:pe,isDragging:oe,listeners:ve,node:D,overIndex:b,over:B,setNodeRef:de,setActivatorNodeRef:q,setDroppableNodeRef:j,setDraggableNodeRef:me,transform:I??Y,transition:tt()};function tt(){if(I||ot&&ye.current.newIndex===S)return Jz;if(!(be&&!nx(X)||!u)&&(pe||Xe))return Mo.Transition.toString({...u,property:LE})}}function t8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}et.Down,et.Right,et.Up,et.Left;const DE=e=>{let{transform:t}=e;return{...t,x:0}};function n8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:o,transition:l,isDragging:c}=AE({id:e,disabled:n}),u={transform:Mo.Transform.toString(o),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return a.jsx("div",{ref:i,style:u,...r,children:a.jsxs("div",{className:"flex items-center",children:[!n&&a.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:a.jsx(aS,{className:"w-4 h-4"})}),a.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var ME={exports:{}};(function(e,t){(function(n,r){r()})(ps,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,f){var p=new XMLHttpRequest;p.open("GET",u),p.responseType="blob",p.onload=function(){c(p.response,d,f)},p.onerror=function(){console.error("could not download file")},p.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ps=="object"&&ps.global===ps?ps:void 0,l=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,f){var p=o.URL||o.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,f):i(h,h.target="_blank")):(h.href=p.createObjectURL(u),setTimeout(function(){p.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,f){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,f),d);else if(s(u))r(u,d,f);else{var p=document.createElement("a");p.href=u,p.target="_blank",setTimeout(function(){i(p)})}}:function(u,d,f,p){if(p=p||open("","_blank"),p&&(p.document.title=p.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,f);var h=u.type==="application/octet-stream",g=/constructor/i.test(o.HTMLElement)||o.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),p?p.location.href=_:location=_,p=null},b.readAsDataURL(u)}else{var x=o.URL||o.webkitURL,y=x.createObjectURL(u);p?p.location=y:location.href=y,p=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});o.saveAs=c.saveAs=c,e.exports=c})})(ME);var Gm=ME.exports;const Pr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Cc={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function r8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),o=Math.floor(i/60),l=Math.floor(o/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:o<24?`${o}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function s8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return a.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[a.jsxs("button",{onClick:()=>t("all"),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",a.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>a.jsxs("button",{onClick:()=>t(r),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Pr[r].text:"var(--text-muted)",backgroundColor:e===r?Pr[r].bg:"transparent"},children:[Pr[r].label,a.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function i8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=_s(),[o,l]=m.useState(!1),[c,u]=m.useState(""),[d,f]=m.useState(!1),[p,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[S,R]=m.useState(new Set),[k,T]=m.useState(!1),[D,z]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[ae,me]=m.useState(null),[ve,oe]=m.useState(!1),[B,q]=m.useState(!1),E=fE(zu(Ld,{activationConstraint:{distance:5}}),zu(Td));m.useEffect(()=>{r()},[r]);const de=m.useCallback(async()=>{f(!0),await r(!0),f(!1),$e.success("Refreshed")},[r]),pe=m.useMemo(()=>{const G=t.length,P=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="aws"}).length,N=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="azure"}).length,se=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="gcp"}).length;return{all:G,aws:P,azure:N,gcp:se}},[t]),A=m.useMemo(()=>{const G=t.reduce((P,N)=>P+(N.line_item_count||0),0);return{estimates:t.length,workloads:G}},[t]),be=m.useMemo(()=>{const G=new Set;return t.forEach(P=>{P.customer_name&&G.add(P.customer_name)}),Array.from(G).sort()},[t]),Ae=m.useMemo(()=>{const G={all:t.length};return t.forEach(P=>{P.customer_name&&(G[P.customer_name]=(G[P.customer_name]||0)+1)}),G},[t]),w=m.useMemo(()=>{let G=[...t];if(c){const P=c.toLowerCase();G=G.filter(N=>{var se;return N.estimate_name.toLowerCase().includes(P)||((se=N.customer_name)==null?void 0:se.toLowerCase().includes(P))})}switch(p!=="all"&&(G=G.filter(P=>{var N;return((N=P.cloud)==null?void 0:N.toLowerCase())===p})),b!=="all"&&(G=G.filter(P=>P.customer_name===b)),g){case"updated":G.sort((P,N)=>new Date(N.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":G.sort((P,N)=>P.estimate_name.localeCompare(N.estimate_name));break;case"workloads":G.sort((P,N)=>(N.line_item_count||0)-(P.line_item_count||0));break;case"display_order":G.sort((P,N)=>(P.display_order??0)-(N.display_order??0));break}return G},[t,c,p,g,b]),Y=m.useCallback(async G=>{const{active:P,over:N}=G;if(!N||P.id===N.id)return;const se=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===N.id);if(se===-1||M===-1)return;g!=="display_order"&&v("display_order");const W=ox(w,se,M),{estimates:Se}=_s.getState(),Ne=Se.map(O=>{const F=W.findIndex(K=>K.estimate_id===O.estimate_id);return F>=0?{...O,display_order:F}:O});_s.setState({estimates:Ne});try{await q4(W.map(O=>O.estimate_id))}catch{$e.error("Failed to save reorder")}},[w,g]),ce=(G,P,N)=>{G.stopPropagation(),me({id:P,name:N}),re(!0)},_e=async()=>{if(ae){oe(!0);try{await s(ae.id),$e.success("Estimate deleted")}catch{$e.error("Failed to delete")}finally{oe(!1),re(!1),me(null)}}},ye=async(G,P)=>{G.stopPropagation();try{const N=await i(P);$e.success("Estimate duplicated"),e(`/calculator/${N.estimate_id}`)}catch{$e.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const G=await lO();Gm.saveAs(G,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),$e.success("Exported successfully")}catch{$e.error("Export failed")}finally{l(!1)}},Xe=()=>{S.size===w.length?R(new Set):R(new Set(w.map(G=>G.estimate_id)))},I=(G,P)=>{P.stopPropagation();const N=new Set(S);N.has(G)?N.delete(G):N.add(G),R(N)},tt=()=>{S.size!==0&&q(!0)},gt=async()=>{z(!0);let G=0,P=0;for(const N of S)try{await s(N),G++}catch{P++}z(!1),R(new Set),q(!1),P===0?$e.success(`Deleted ${G} estimate(s)`):$e.error(`Deleted ${G}, failed ${P}`)},at=async()=>{if(S.size===0)return;H(!0);let G=0;for(const P of S)try{const N=t.find(se=>se.estimate_id===P);if(N){const se=await qS(P);Gm.saveAs(se,`${N.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),G++}}catch{}H(!1),$e.success(`Exported ${G} estimate(s)`)},pt=()=>{T(!1),R(new Set)};return a.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[a.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[a.jsxs("div",{children:[a.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),a.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[a.jsxs("span",{className:"flex items-center gap-1",children:[a.jsx(ny,{className:"w-4 h-4"}),A.estimates," estimate",A.estimates!==1?"s":""]}),a.jsxs("span",{className:"flex items-center gap-1",children:[a.jsx(Ng,{className:"w-4 h-4"}),A.workloads," total workloads"]})]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{onClick:de,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:a.jsx(Qr,{className:ue("w-5 h-5",d&&"animate-spin")})}),k?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[S.size," selected"]}),a.jsxs("button",{onClick:at,disabled:S.size===0||j,className:"btn btn-secondary text-sm",children:[a.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),a.jsxs("button",{onClick:tt,disabled:S.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[a.jsx(en,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),a.jsx("button",{onClick:pt,className:"btn btn-ghost p-2",title:"Cancel selection",children:a.jsx(To,{className:"w-5 h-5"})})]}):a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),a.jsxs("button",{onClick:ot,disabled:o||t.length===0,className:"btn btn-secondary",children:[a.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),a.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[a.jsx(Au,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),a.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[a.jsx(s8,{cloudFilter:p,setCloudFilter:h,cloudCounts:pe}),be.length>0&&a.jsxs("div",{className:"relative",children:[a.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[a.jsx(cD,{className:"w-4 h-4"}),a.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),a.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?be.length:Ae[b]||0}),a.jsx(tr,{className:ue("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),a.jsx(nm,{children:y&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),a.jsxs(Bt.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[a.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[a.jsx("span",{children:"All Accounts"}),a.jsx("span",{className:"text-xs opacity-60",children:be.length})]}),a.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),be.map(G=>a.jsxs("button",{onClick:()=>{x(G),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===G?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===G?"#FF3621":"var(--text-primary)"},children:[a.jsx("span",{className:"truncate",title:G,children:G}),a.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[a.jsx("span",{className:"text-xs opacity-60",children:Ae[G]||0}),b===G&&a.jsx(qs,{className:"w-4 h-4"})]})]},G))]})]})})]})]}),a.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:a.jsxs("div",{className:"relative flex-1",children:[a.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),a.jsx("input",{type:"text",value:c,onChange:G=>u(G.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?a.jsx("div",{className:"card overflow-hidden",children:a.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(G=>a.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[a.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),a.jsxs("div",{className:"flex-1",children:[a.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),a.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},G))})}):w.length===0?a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[a.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:a.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),a.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||p!=="all"||b!=="all"?"No matches found":"No estimates yet"}),a.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||p!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&p==="all"&&b==="all"&&a.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[a.jsx(Au,{className:"w-4 h-4"}),"Create Estimate"]})]}):a.jsxs("div",{className:"card overflow-hidden",children:[a.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[k&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("button",{onClick:Xe,className:"flex items-center justify-center",children:a.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",S.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:S.size===w.length&&w.length>0&&a.jsx(qs,{className:"w-3 h-3 text-white"})})})}),a.jsx("div",{className:ue(k?"col-span-3":"col-span-4"),children:"Estimate"}),a.jsx("div",{className:"col-span-2",children:"Account"}),a.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),a.jsx("div",{className:"col-span-2",children:"Region / Tier"}),a.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),a.jsx("div",{className:"col-span-1",children:"Modified"}),a.jsx("div",{className:"col-span-1"})]}),a.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:a.jsx(EE,{sensors:E,collisionDetection:pE,onDragEnd:Y,modifiers:[DE],children:a.jsx(TE,{items:w.map(G=>G.estimate_id),strategy:NE,children:w.map((G,P)=>{const N=S.has(G.estimate_id);return a.jsx(n8,{id:G.estimate_id,children:a.jsxs(Bt.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!k&&e(`/calculator/${G.estimate_id}`),className:ue("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!k&&"cursor-pointer hover:bg-[var(--bg-hover)]",N&&"bg-blue-500/5"),children:[k&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("button",{onClick:se=>I(G.estimate_id,se),className:"flex items-center justify-center",children:a.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",N?"bg-blue-500 border-blue-500":"border-gray-400"),children:N&&a.jsx(qs,{className:"w-3 h-3 text-white"})})})}),a.jsxs("div",{className:ue("flex items-center gap-3",k?"col-span-3":"col-span-4"),children:[a.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:G.cloud&&Pr[G.cloud.toLowerCase()]?Pr[G.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:a.jsx(ym,{className:"w-4 h-4",style:{color:G.cloud&&Pr[G.cloud.toLowerCase()]?Pr[G.cloud.toLowerCase()].text:"var(--text-muted)"}})}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:G.estimate_name,children:G.estimate_name}),a.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:G.customer_name||"",children:G.customer_name||"—"})]})]}),a.jsx("div",{className:"hidden sm:block col-span-2",children:a.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:G.customer_name||"",children:G.customer_name||"—"})}),a.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:G.cloud&&Pr[G.cloud.toLowerCase()]?a.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Pr[G.cloud.toLowerCase()].bg,color:Pr[G.cloud.toLowerCase()].text},children:Pr[G.cloud.toLowerCase()].label}):a.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),a.jsx("div",{className:"hidden sm:block col-span-2",children:G.region||G.tier?a.jsxs("div",{className:"flex flex-col gap-0.5",children:[G.region&&a.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:G.region,children:G.region}),G.tier&&Cc[G.tier.toLowerCase()]&&a.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Cc[G.tier.toLowerCase()].bg,color:Cc[G.tier.toLowerCase()].text},children:Cc[G.tier.toLowerCase()].label})]}):a.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),a.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:a.jsx("span",{className:ue("px-2 py-0.5 rounded text-xs font-medium",G.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:G.line_item_count===0?{color:"var(--text-muted)"}:{},children:G.line_item_count})}),a.jsx("div",{className:"hidden sm:block col-span-1",children:a.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:r8(G.updated_at)})}),a.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!k&&a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:se=>ye(se,G.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:se=>ce(se,G.estimate_id,G.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:a.jsx(en,{className:"w-4 h-4"})})]})})]})},G.estimate_id)})})})}),a.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&ae&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',ae.name,'"']}),"? All workloads in this estimate will also be deleted."]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>{re(!1),me(null)},disabled:ve,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:_e,disabled:ve,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ve?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]})})]})]})}),B&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",S.size," Estimate",S.size!==1?"s":""]}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[a.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),a.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(G=>S.has(G.estimate_id)).map(G=>a.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",G.estimate_name]},G.estimate_id))})]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:gt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),S.size>0&&a.jsxs(Bt.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[a.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[S.size," estimate",S.size!==1?"s":""," selected"]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),a.jsxs("button",{onClick:at,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[a.jsx(zc,{className:"w-4 h-4"}),"Export"]}),a.jsxs("button",{onClick:tt,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsxs("button",{onClick:()=>{R(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[a.jsx(To,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:o="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:f=!1}){const[p,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,S=m.useMemo(()=>{if(!f)return null;const T={};return _.forEach(z=>{const j=z.group||"Other";T[j]||(T[j]=[]),T[j].push(z)}),Object.keys(T).sort((z,j)=>z==="General Purpose"?-1:j==="General Purpose"?1:z.localeCompare(j)).map(z=>({name:z,options:T[z]}))},[_,f]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const R=T=>{n(T),h(!1),v("")},k=T=>{T.stopPropagation(),n(""),v("")};return a.jsxs("div",{ref:b,className:ue("relative",d),children:[a.jsxs("div",{onClick:()=>{if(!c){const T=p;h(!p),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:ue("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",p&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!p&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[a.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),p?a.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:o,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?a.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[a.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):a.jsx("span",{className:ue("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!p&&a.jsx("button",{onClick:k,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:a.jsx(To,{className:"w-4 h-4 text-[var(--text-muted)]"})}),a.jsx(tr,{className:ue("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",p&&"rotate-180")})]}),p&&a.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?a.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?a.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):f&&S?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),S.map(T=>a.jsxs("div",{children:[a.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>a.jsx("div",{onClick:()=>R(D.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>a.jsx("div",{onClick:()=>R(T.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const o=Array.from(s);return o.length>0?o.sort():["all","short","long"]}function o8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const o=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&o.add(d[5])}});const c=Array.from(o);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const OE=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"]);function ua(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:OE.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const a8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=a8[e];return r?a.jsxs("div",{className:"relative inline-block ml-1",children:[a.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:a.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&a.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[a.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),a.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),a.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function l8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return a.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[a.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[a.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?a.jsx(tr,{className:"w-3 h-3"}):a.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&a.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&a.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:a.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function rp({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var G;const{workloadTypes:o,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:f,fmapiDatabricksConfig:p,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:S,fetchLineItems:R,clearSingleWorkloadCost:k,markItemCalculating:T,fetchVMCostForInstance:D}=_s(),z=m.useRef(!0);m.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],ae=u.length>0?u:re,me=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],ve=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:ve,B={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},q=p&&p.models&&p.models.llm?p:B,E={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},de=h&&Array.isArray(h.providers)?h:E,[pe,A]=m.useState(!1),[be,Ae]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ce={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);Ae(P)}else Y(ce),Ae(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),OE.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?rC(x,g,v,b):null,ye=o.filter(P=>ua(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&o.some(P=>ua(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ye[0];P&&Y(N=>({...N,workload_type:P.workload_type}))}},[_e,w.workload_type,ye,t]);const Xe=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!z.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=o.find(P=>P.workload_type===w.workload_type),tt=o.length===0,gt=!tt&&!I&&w.workload_type,at=async P=>{if(P.preventDefault(),!w.workload_name.trim()){$e.error("Enter a workload name");return}A(!0);try{const N={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(N.serverless_enabled=w.serverless_enabled,N.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(N.serverless_enabled=!1,N.serverless_mode=null),I!=null&&I.show_compute_config?(N.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,N.driver_node_type=w.driver_node_type||null,N.worker_node_type=w.worker_node_type||null,N.num_workers=w.num_workers,N.driver_pricing_tier=w.driver_pricing_tier||"on_demand",N.worker_pricing_tier=w.worker_pricing_tier||"spot",N.driver_payment_option=w.driver_payment_option||"NA",N.worker_payment_option=w.worker_payment_option||"NA"):(N.photon_enabled=!1,N.driver_node_type=null,N.worker_node_type=null,N.num_workers=null,N.driver_pricing_tier=null,N.worker_pricing_tier=null,N.driver_payment_option=null,N.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?N.dlt_edition=w.dlt_edition:N.dlt_edition=null,I!=null&&I.show_dbsql_config?(N.dbsql_warehouse_type=w.dbsql_warehouse_type,N.dbsql_warehouse_size=w.dbsql_warehouse_size,N.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(N.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,N.dbsql_driver_payment_option=w.dbsql_driver_payment_option,N.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,N.dbsql_worker_payment_option=w.dbsql_worker_payment_option,N.driver_pricing_tier=w.dbsql_driver_pricing_tier,N.driver_payment_option=w.dbsql_driver_payment_option,N.worker_pricing_tier=w.dbsql_worker_pricing_tier,N.worker_payment_option=w.dbsql_worker_payment_option)):(N.dbsql_warehouse_type=null,N.dbsql_warehouse_size=null,N.dbsql_num_clusters=null,N.dbsql_driver_pricing_tier=null,N.dbsql_driver_payment_option=null,N.dbsql_worker_pricing_tier=null,N.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(N.vector_search_mode=w.vector_search_mode,N.vector_capacity_millions=w.vector_capacity_millions,N.vector_search_storage_gb=w.vector_search_storage_gb||0):(N.vector_search_mode=null,N.vector_capacity_millions=null,N.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(N.model_serving_gpu_type=w.model_serving_gpu_type,N.model_serving_scale_out=w.model_serving_scale_out,N.model_serving_concurrency=w.model_serving_concurrency):(N.model_serving_gpu_type=null,N.model_serving_scale_out=null,N.model_serving_concurrency=null),I!=null&&I.show_lakebase_config?(N.lakebase_cu=w.lakebase_cu,N.lakebase_storage_gb=w.lakebase_storage_gb||0,N.lakebase_ha_nodes=w.lakebase_ha_nodes,N.lakebase_backup_retention_days=w.lakebase_backup_retention_days,N.lakebase_pitr_gb=w.lakebase_pitr_gb||0,N.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(N.lakebase_cu=null,N.lakebase_storage_gb=null,N.lakebase_ha_nodes=null,N.lakebase_backup_retention_days=null,N.lakebase_pitr_gb=null,N.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(N.fmapi_provider=w.fmapi_provider,N.fmapi_model=w.fmapi_model||null,N.fmapi_endpoint_type=w.fmapi_endpoint_type,N.fmapi_context_length=w.fmapi_context_length,N.fmapi_rate_type=w.fmapi_rate_type,N.fmapi_quantity=w.fmapi_quantity):(N.fmapi_provider=null,N.fmapi_model=null,N.fmapi_endpoint_type=null,N.fmapi_context_length=null,N.fmapi_rate_type=null,N.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?be?(N.hours_per_month=w.hours_per_month||730,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):(N.hours_per_month=null,N.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,N.avg_runtime_minutes=w.avg_runtime_minutes,N.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config?(N.hours_per_month=w.hours_per_month||730,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):I!=null&&I.show_fmapi_config?(N.hours_per_month=w.hours_per_month||null,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):(N.hours_per_month=null,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null),t)k(t.line_item_id),T(t.line_item_id),await S(t.line_item_id,N),$e.success("Workload updated");else{N.estimate_id=e;const M=await _(N);M!=null&&M.line_item_id&&T(M.line_item_id),$e.success("Workload added")}R(e),r==null||r(),n()}catch(N){console.error("Failed to save workload:",N),$e.error("Failed to save")}finally{A(!1)}},pt=I==null?void 0:I.show_compute_config;return tt?a.jsxs("div",{className:"p-8 text-center",children:[a.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):a.jsxs("form",{onSubmit:at,className:"space-y-3",children:[a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),a.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(N=>({...N,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&a.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),a.jsxs("select",{value:w.workload_type,onChange:P=>Y(N=>({...N,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:ue("w-full text-sm",gt&&"border-red-500",Xe&&"border-yellow-500"),children:[Xe&&(()=>{const P=o.find(N=>N.workload_type===w.workload_type);return P?a.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ye.map(P=>a.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),gt&&a.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Xe&&a.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Xe&&a.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&a.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const N=!ua(w.workload_type,b,!0).available;return a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",N&&"opacity-50 cursor-not-allowed"),children:[a.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!N,onChange:()=>!N&&Y(se=>{const M=!se.serverless_enabled,W=se.workload_type==="ALL_PURPOSE"&&M?"performance":se.serverless_mode;return{...se,serverless_enabled:M,serverless_mode:W}}),disabled:N,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),a.jsx(ym,{className:"w-4 h-4 text-teal-600"}),a.jsx("span",{className:ue("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),N&&a.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(ua(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?a.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),a.jsx("select",{value:w.serverless_mode,onChange:se=>Y(M=>({...M,serverless_mode:se.target.value})),className:"text-sm py-1 px-2",children:me.map(se=>a.jsx("option",{value:se.id,children:se.name},se.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[a.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),a.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),a.jsx("span",{className:ue("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&a.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),pt&&a.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&a.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:a.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[a.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[a.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[a.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),a.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),a.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),a.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(N=>({...N,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&a.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",a.jsx($_,{tier:w.driver_pricing_tier})]}),a.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(N=>({...N,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),a.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(N=>({...N,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),a.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[a.jsxs("div",{className:"flex items-center justify-between mb-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),a.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),a.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),a.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[a.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(N=>({...N,worker_node_type:N.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),a.jsx("span",{className:ue("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex gap-2",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),a.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(N=>({...N,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),a.jsxs("div",{className:"w-14 flex-shrink-0",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),a.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(N=>({...N,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&a.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",a.jsx($_,{tier:w.worker_pricing_tier})]}),a.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(N=>({...N,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"spot",children:"Spot Instances"}),a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),a.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(N=>({...N,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[pt&&a.jsx(a.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),a.jsx("select",{value:w.dlt_edition,onChange:P=>Y(N=>({...N,dlt_edition:P.target.value})),className:"w-full text-sm",children:ae.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&a.jsxs(a.Fragment,{children:[(()=>{const N=!ua("DBSQL",b,!1,"SERVERLESS").available,se=w.dbsql_warehouse_type==="SERVERLESS"&&!N;return a.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",N&&"opacity-50 cursor-not-allowed"),children:[a.jsx("input",{type:"checkbox",checked:se,onChange:()=>!N&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:N,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),a.jsx(ym,{className:"w-4 h-4 text-teal-600"}),a.jsx("span",{className:ue("text-sm",se?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),N&&a.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!se&&a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),a.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(W=>({...W,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[a.jsx("option",{value:"PRO",children:"Pro"}),a.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),a.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(N=>({...N,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>a.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),a.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(N=>({...N,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Ne,O;const P=y?al(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,N=P!=null&&P.driver_instance_type?l.find(F=>F.id===P.driver_instance_type):null,se=P!=null&&P.worker_instance_type?l.find(F=>F.id===P.worker_instance_type):null,M=(F,K,ie)=>{var Be,dt,nt,Ge,lt,Ke,Mt;if(!(F!=null&&F.vm_pricing))return null;const Ce=K.toLowerCase();if(Ce==="on_demand")return(Be=F.vm_pricing.on_demand)==null?void 0:Be.cost_per_hour;if(Ce==="spot")return(dt=F.vm_pricing.spot)==null?void 0:dt.cost_per_hour;if(Ce==="reserved_1y"){const U=((nt=F.vm_pricing.reserved_1y)==null?void 0:nt.find(J=>J.payment_option===ie))||((Ge=F.vm_pricing.reserved_1y)==null?void 0:Ge[0]);return U==null?void 0:U.cost_per_hour}if(Ce==="reserved_3y"){const U=((lt=F.vm_pricing.reserved_3y)==null?void 0:lt.find(J=>J.payment_option===ie))||((Ke=F.vm_pricing.reserved_3y)==null?void 0:Ke[0]);return U==null?void 0:U.cost_per_hour}return(Mt=F.vm_pricing.on_demand)==null?void 0:Mt.cost_per_hour},W=M(N,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(se,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return a.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[a.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[a.jsxs("div",{className:"flex items-center justify-between mb-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),a.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),a.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),N&&a.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[a.jsxs("span",{children:[(Ne=N.dbu_rate)==null?void 0:Ne.toFixed(2)," DBU/hr"]}),W!=null&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"·"}),a.jsxs("span",{children:["$",W.toFixed(4),"/hr"]})]})]}),a.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:F=>Y(K=>({...K,dbsql_driver_pricing_tier:F.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&a.jsx("select",{value:w.dbsql_driver_payment_option,onChange:F=>Y(K=>({...K,dbsql_driver_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>a.jsx("option",{value:F.id,children:F.name},F.id))})]}),a.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[a.jsxs("div",{className:"flex items-center justify-between mb-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),a.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),a.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),se&&a.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[a.jsxs("span",{children:[(O=se.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"·"}),a.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),a.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:F=>Y(K=>({...K,dbsql_worker_pricing_tier:F.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"spot",children:"Spot Instances"}),a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&a.jsx("select",{value:w.dbsql_worker_payment_option,onChange:F=>Y(K=>({...K,dbsql_worker_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>a.jsx("option",{value:F.id,children:F.name},F.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),a.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(N=>({...N,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),a.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),a.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(N=>({...N,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(N=>({...N,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),a.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),a.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(N=>({...N,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:f.map(P=>a.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),a.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const N={small:4,medium:12,large:40},se=P.target.value;Y(M=>({...M,model_serving_scale_out:se,model_serving_concurrency:se==="custom"?M.model_serving_concurrency||4:N[se]||4}))},className:"w-full text-sm",children:[a.jsx("option",{value:"small",children:"Small (4 concurrency)"}),a.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),a.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),a.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),a.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const N=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(se=>({...se,model_serving_concurrency:N}))},className:"w-full text-sm"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),a.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(N=>({...N,fmapi_model:P.target.value})),className:"w-full text-sm",children:[a.jsx("optgroup",{label:"LLMs",children:q.models.llm.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))}),a.jsx("optgroup",{label:"Embedding Models",children:q.models.embedding.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),a.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(N=>({...N,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[a.jsxs("optgroup",{label:"Token-based",children:[a.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&a.jsx("option",{value:"output_token",children:"Output Token"})]}),a.jsxs("optgroup",{label:"Provisioned",children:[a.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),a.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),a.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(N=>({...N,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),a.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:a.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?a.jsxs(a.Fragment,{children:[a.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):a.jsxs(a.Fragment,{children:[a.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),a.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(N=>({...N,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:de.providers.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),a.jsxs("select",{value:w.fmapi_model,onChange:P=>{const N=P.target.value,se=z_(x,g||"aws",w.fmapi_provider,N),M=se.includes(w.fmapi_context_length)?w.fmapi_context_length:se[0]||"all";Y(W=>({...W,fmapi_model:N,fmapi_context_length:M}))},className:"w-full text-sm",children:[a.jsx("option",{value:"",children:"Select model"}),(G=de.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:G.models.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),a.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(N=>({...N,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:de.endpoint_types.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),a.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(N=>({...N,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],N={all:"All",short:"Short",long:"Long"};return P.map(se=>a.jsx("option",{value:se,children:N[se]||se},se))})()})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),a.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(N=>({...N,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?o8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],N={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(se=>a.jsx("option",{value:se,children:N[se]||se},se))})()})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),a.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(N=>({...N,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),a.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:a.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[a.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),a.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(N=>({...N,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[a.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[a.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),a.jsx("option",{value:1,children:"1 CU (2 GB)"}),a.jsx("option",{value:2,children:"2 CU (4 GB)"}),a.jsx("option",{value:4,children:"4 CU (8 GB)"}),a.jsx("option",{value:8,children:"8 CU (16 GB)"}),a.jsx("option",{value:16,children:"16 CU (32 GB)"}),a.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),a.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[a.jsx("option",{value:48,children:"48 CU (96 GB)"}),a.jsx("option",{value:64,children:"64 CU (128 GB)"}),a.jsx("option",{value:80,children:"80 CU (160 GB)"}),a.jsx("option",{value:96,children:"96 CU (192 GB)"}),a.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),a.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(N=>({...N,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[a.jsx("option",{value:1,children:"1 Node"}),a.jsx("option",{value:2,children:"2 Nodes (HA)"}),a.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),a.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(N=>({...N,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(N=>({...N,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(N=>({...N,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsx("div",{className:"col-span-full",children:a.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[a.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{type:"button",onClick:()=>Ae(!1),className:ue("px-3 py-1 text-xs rounded-l-md border transition-colors",be?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),a.jsx("button",{type:"button",onClick:()=>Ae(!0),className:ue("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",be?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!be&&a.jsxs(a.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),a.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(N=>({...N,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),a.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(N=>({...N,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),a.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(N=>({...N,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),be&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsxs("div",{className:"col-span-full md:col-span-1",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),a.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(N=>({...N,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config))&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),a.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(N=>({...N,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),a.jsx(l8,{notes:w.notes,onChange:P=>Y(N=>({...N,notes:P}))}),a.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[a.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?a.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[a.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),a.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const c8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],u8={JOBS:{icon:t3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Lu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:tD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:xD,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:zD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:d3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?u8[e]||{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},xe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:xe(e),an=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=un.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return a.jsxs("div",{className:ue("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[a.jsxs("span",{className:ue("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[xe(e.totalCost),r&&a.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&a.jsxs("span",{className:ue("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[an(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function d8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:o,transition:l,isDragging:c}=AE({id:e,disabled:t});return a.jsx("div",{ref:i,style:{transform:Mo.Transform.toString(o),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:a.jsxs("div",{className:"flex items-stretch",children:[!t&&a.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:a.jsx(aS,{className:"w-3.5 h-3.5"})}),a.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:o,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:f,createEstimate:p,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:S,getInstanceDbuRate:R,vmPricingMap:k,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:z,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:ae,getVectorSearchRate:me,getFMAPIDatabricksRate:ve,getFMAPIProprietaryRate:oe,pricingBundle:B,isPricingBundleLoaded:q,clearEstimateState:E,setLocalCalculatedCosts:de}=_s(),[pe,A]=m.useState(!1),[be,Ae]=m.useState(!1),[w,Y]=m.useState(!1),[ce,_e]=m.useState(!1),[ye,ot]=m.useState(!1),[Xe,I]=m.useState(null),[tt,gt]=m.useState(!1),[at,pt]=m.useState(!1),[G,P]=m.useState(!1),[N,se]=m.useState(!1),[M,W]=m.useState(new Set),[Se,Ne]=m.useState(new Set),[O,F]=m.useState(!1),[K,ie]=m.useState({}),[Ce,Be]=m.useState(!1),[dt,nt]=m.useState(!1),[Ge,lt]=m.useState(!1),[Ke,Mt]=m.useState(!1),[U,J]=m.useState([]),[Le,Ve]=m.useState(!1),[Q,ct]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[Ze,Ot]=m.useState(!!e),[ft,xt]=m.useState(!1),[St,mt]=m.useState(!1),[Ue,Oe]=m.useState("table"),[De,Pe]=m.useState("order"),[qt,Ct]=m.useState("asc"),[le,rt]=m.useState(new Set),[Nt,wr]=m.useState(!1),Nn=m.useRef({}),Br=m.useCallback(L=>{const Z=Nn.current[L];Z&&(Z.scrollIntoView({behavior:"smooth",block:"center"}),Z.style.backgroundColor="rgba(255, 54, 33, 0.1)",Z.style.transition="background-color 0.3s ease",setTimeout(()=>{Nn.current[L]&&(Nn.current[L].style.backgroundColor="")},1500))},[]),Ur=m.useCallback(()=>{F(!0)},[]);m.useEffect(()=>{const L=Z=>{O&&(Z.preventDefault(),Z.returnValue="")};return window.addEventListener("beforeunload",L),()=>window.removeEventListener("beforeunload",L)},[O]),m.useEffect(()=>{if(!Q.cloud||!Q.region||r.length===0||!Ge)return;const L=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const $=al(B,Q.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if($){const fe=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",ze=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";L.add(`${$.driver_instance_type}:${fe}:${ze}`);const Et=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Pt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";L.add(`${$.worker_instance_type}:${Et}:${Pt}`)}return}if(C.driver_node_type){const $=C.driver_pricing_tier||"on_demand",fe=C.driver_payment_option||"NA";L.add(`${C.driver_node_type}:${$}:${fe}`)}if(C.worker_node_type){const $=C.worker_pricing_tier||"spot",fe=C.worker_payment_option||"NA";L.add(`${C.worker_node_type}:${$}:${fe}`)}}});const Z=Array.from(L).map(C=>{const[$,fe,ze]=C.split(":");return _(Q.cloud,Q.region,$,fe,ze)});if(Z.length>0){Mt(!0);const C=new Promise($=>setTimeout($,1e4));Promise.race([Promise.all(Z),C]).catch(()=>{}).finally(()=>Mt(!1))}},[Q.cloud,Q.region,r,Ge,_,B]),m.useEffect(()=>{if(!Q.cloud)return;const L=f(Q.cloud);if(L.length>0){const Z=q?bO(B,Q.cloud):[];if(Z.length>0){const C=L.filter($=>Z.includes($.region_code));J(C)}else J(L);Ve(!1)}else u?(J([]),Ve(!1)):Ve(!0)},[Q.cloud,d,u,f,B,q]),m.useEffect(()=>{(async()=>{if(e){Be(!0),nt(!0),lt(!1);try{await i(e)}catch(Z){console.error("Error loading estimate data:",Z)}finally{Be(!1),nt(!1),lt(!0)}}else E(),lt(!1)})()},[e,i,E]);const Ml={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ct({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ct(Ml),x("aws"),F(!1))},[n,e,x,y]),m.useEffect(()=>{Q.cloud&&Q.region&&Q.tier&&z(Q.cloud.toUpperCase(),Q.region,Q.tier.toUpperCase())},[Q.cloud,Q.region,Q.tier,z]);const Ol=!!(Q.region&&Q.tier),ns=(L,Z)=>{const C=Z?{...L,...Z}:L,$=Q.cloud||"aws",fe=Q.region,ze=Object.keys(D).length>0?D:Q_[$]||Q_.aws,Et=C.num_workers||0;if(!fe)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Pt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Pt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Pt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let Ee="";const Yt=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?Ee="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?Ee="JOBS_COMPUTE_(PHOTON)":Ee="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?Ee="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?Ee="ALL_PURPOSE_COMPUTE_(PHOTON)":Ee="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?Ee="JOBS_SERVERLESS_COMPUTE":(Ee=`DLT_${Yt}_COMPUTE`,C.photon_enabled&&(Ee+="_(PHOTON)"));break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Ie==="SERVERLESS"?Ee="SERVERLESS_SQL_COMPUTE":Ie==="PRO"?Ee="SQL_PRO_COMPUTE":Ee="SQL_COMPUTE";break;case"VECTOR_SEARCH":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const vt=(C.fmapi_provider||"openai").toLowerCase();Ee=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[vt]||vt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":Ee="DATABASE_SERVERLESS_COMPUTE";break;default:Ee="JOBS_COMPUTE"}let Pn=.2;if(q&&Q.tier){const Ie=Ag(B,$,fe,Q.tier,Ee);Ie>0?Pn=Ie:Pn=ze[Ee]||.2}else Pn=ze[Ee]||.2;let ke=0,Qe=0,We=0,Rs,kr,rs,te=.5,he=.5;if(q&&C.driver_node_type){const Ie=Pm(B,$,C.driver_node_type);Ie>0&&(te=Ie)}if(!te||te===.5){const Ie=j.find(vt=>vt.id===C.driver_node_type||vt.name===C.driver_node_type);Ie!=null&&Ie.dbu_rate&&(te=Ie.dbu_rate)}if(q&&C.worker_node_type){const Ie=Pm(B,$,C.worker_node_type);Ie>0&&(he=Ie)}if(!he||he===.5){const Ie=j.find(vt=>vt.id===C.worker_node_type||vt.name===C.worker_node_type);Ie!=null&&Ie.dbu_rate&&(he=Ie.dbu_rate)}const on=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Ie;if(C.serverless_enabled?C.workload_type==="JOBS"?Ie="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Ie="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Ie="DLT_CORE_COMPUTE":Ie=Ee.replace("_(PHOTON)",""):Ie=Ee.replace("_(PHOTON)",""),q){const Xt=nC(B,$,Ie);if(Xt!==2)return Xt}const vt=H.find(Xt=>{var vn,dr;return Xt.sku_type===Ie||((vn=Xt.sku_type)==null?void 0:vn.toLowerCase())===Ie.toLowerCase()||((dr=Xt.sku_type)==null?void 0:dr.toLowerCase().includes((L.workload_type||"").toLowerCase()))});return(vt==null?void 0:vt.multiplier)||2})(),fi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Sr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)ke=(te+he*Et)*on*fi;else{ke=(te+he*Et)*on;const Te=C.driver_pricing_tier||"on_demand",Dn=C.driver_payment_option||"NA",zr=C.worker_pricing_tier||"spot",pi=C.worker_payment_option||"NA",mi=S($,fe,C.driver_node_type||"",Te,Dn),hi=S($,fe,C.worker_node_type||"",zr,pi);We=(mi+hi*Et)*Pt}Qe=ke*Pt;break;case"DLT":if(C.serverless_enabled)ke=(te+he*Et)*on*Sr*fi;else{ke=(te+he*Et)*on*Sr;const Te=C.driver_pricing_tier||"on_demand",Dn=C.driver_payment_option||"NA",zr=C.worker_pricing_tier||"spot",pi=C.worker_payment_option||"NA",mi=S($,fe,C.driver_node_type||"",Te,Dn),hi=S($,fe,C.worker_node_type||"",zr,pi);We=(mi+hi*Et)*Pt}Qe=ke*Pt;break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),vt=C.dbsql_warehouse_size||"Small",Xt=C.dbsql_num_clusters||1;let vn=Y_[vt]||12;if(q){const Te=hO(B,$,Ie,vt);Te&&Te.dbu_per_hour>0&&(vn=Te.dbu_per_hour)}if(!vn||vn===(Y_[vt]||12)){const Te=X.find(Dn=>Dn.id===vt||Dn.name===vt);Te!=null&&Te.dbu_per_hour&&(vn=Te.dbu_per_hour)}if(ke=vn*Xt,Qe=ke*Pt,Ie!=="SERVERLESS"){const Te=q?al(B,$,Ie,vt):null;if(Te){const Dn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",zr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",pi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,fe,Te.driver_instance_type,Dn,zr),Xo=S($,fe,Te.worker_instance_type,pi,mi);We=(Te.driver_count*hi+Te.worker_count*Xo)*Xt*Pt}else if(C.driver_node_type){const Dn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",zr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",pi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,fe,C.driver_node_type,Dn,zr),Xo=C.worker_node_type?S($,fe,C.worker_node_type,pi,mi):0,yx=C.num_workers||0;We=(hi+Xo*yx)*Xt*Pt}}break;case"VECTOR_SEARCH":const dr=C.vector_search_mode||"standard",Vt=C.vector_capacity_millions||1;let Tn=dr==="storage_optimized"?64e6:2e6,Jt=dr==="storage_optimized"?18.29:4;if(q){const Te=gO(B,$,dr);Te&&(Tn=Te.input_divisor,Jt=Te.dbu_rate)}else{const Te=me(dr);Te&&(Tn=Te.input_divisor,Jt=Te.dbu_per_hour)}const Ln=Vt*1e6,st=Math.ceil(Ln/Tn);Rs=st,ke=st*Jt,Qe=ke*Pt;const it=C.vector_search_storage_gb||0,Zt=st*20,Rt=Math.max(0,it-Zt),Wt=.023,fn=Rt*Wt;it>0&&(kr=fn,rs={totalStorageGB:it,freeStorageGB:Zt,billableStorageGB:Rt,pricePerGB:Wt});break;case"MODEL_SERVING":const Xn=C.model_serving_gpu_type||"cpu";let An=2;if(q){const Te=xO(B,$,Xn);Te&&Te.dbu_rate>0&&(An=Te.dbu_rate)}if(An===2){const Te=re.find(Dn=>Dn.id===Xn||Dn.name===Xn);Te!=null&&Te.dbu_per_hour&&(An=Te.dbu_per_hour)}const Jn=C.model_serving_scale_out||"small",Bl=Jn==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[Jn]||4;ke=An*Bl,Qe=ke*Pt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},QE=(zl[$]||zl.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;ke=Ul*QE*Vl,Qe=ke*Pt;const $l=Math.min(C.lakebase_storage_gb||0,8192),YE=C.lakebase_pitr_gb||0,XE=C.lakebase_snapshot_gb||0,Hl=.023,JE=$l*15*Hl,ZE=YE*8.7*Hl,e2=XE*3.91*Hl,gx=JE+ZE+e2;gx>0&&(kr=gx,rs={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const t2=C.fmapi_quantity||0,Yo=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Yo);let Ls=null;if(q&&C.fmapi_model){const Te=vO(B,$,C.fmapi_model,Yo);Te&&(Ls=Te.dbu_rate)}if(Ls===null&&C.fmapi_model){const Te=ve(C.fmapi_model,Yo);Te&&(xx?Ls=Te.dbu_per_hour||null:Ls=Te.dbu_per_1M_tokens||null)}Ls===null&&(xx?Ls=Yo==="provisioned_scaling"?200:50:Ls=Yo==="output_token"?3:1),Qe=t2*Ls;break;case"FMAPI_PROPRIETARY":const n2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let Cr=null;if(q&&C.fmapi_provider&&C.fmapi_model){const Te=C.fmapi_endpoint_type||"global",Dn=C.fmapi_context_length||"long",zr=yO(B,$,C.fmapi_provider,C.fmapi_model,Te,Dn,ql);zr&&(Cr=zr.dbu_rate)}if(Cr===null&&C.fmapi_provider&&C.fmapi_model){const Te=oe(C.fmapi_provider,C.fmapi_model,ql);Te&&(vx?Cr=Te.dbu_per_hour||null:Cr=Te.dbu_per_1M_tokens||null)}if(Cr===null)if(vx)Cr=150;else switch(ql){case"output_token":Cr=6;break;case"cache_read":Cr=.5;break;case"cache_write":Cr=1;break;default:Cr=2}Qe=n2*Cr;break;default:Qe=0}const ur=isNaN(Pn)||Pn===void 0?0:Pn,Ts=isNaN(Qe)||Qe===void 0?0:Qe,Rn=isNaN(We)||We===void 0?0:We,xn=kr!==void 0&&!isNaN(kr)?kr:0,Vr=Ts*ur,is=Vr+Rn+xn;return{monthlyDBUs:Ts,dbuCost:isNaN(Vr)?0:Vr,vmCost:Rn,totalCost:isNaN(is)?0:is,unitsUsed:Rs,dbuPerHour:ke,dbuPrice:ur,storageCost:xn>0?xn:void 0,storageDetails:rs}},Yn=m.useMemo(()=>{let L=0,Z=0,C=0,$=0;return r.forEach(fe=>{const ze=ns(fe);L+=isNaN(ze.monthlyDBUs)?0:ze.monthlyDBUs,Z+=isNaN(ze.dbuCost)?0:ze.dbuCost,C+=isNaN(ze.vmCost)?0:ze.vmCost,$+=isNaN(ze.totalCost)?0:ze.totalCost}),{totalDBUs:L,totalDBUCost:Z,totalVMCost:C,totalCost:$}},[r,Q.cloud,Q.region,Q.tier,s,S,k,R,T,j,H,D,X,re,ae,me,ve,oe,B,q]);m.useEffect(()=>{const L={};r.forEach(Z=>{const C=ns(Z,K[Z.line_item_id]);L[Z.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),de(L)},[r,K,Q.cloud,Q.region,Q.tier,de,S,k,R,T,j,H,D,X,re,ae,me,ve,oe,B,q]);const di=m.useMemo(()=>{const L=[...r];return De==="order"?L.sort((Z,C)=>(Z.display_order??0)-(C.display_order??0)):De==="name"?L.sort((Z,C)=>(Z.workload_name||"").localeCompare(C.workload_name||"")):De==="type"?L.sort((Z,C)=>(Z.workload_type||"").localeCompare(C.workload_type||"")):De==="cost"&&L.sort((Z,C)=>{const $=ns(Z).totalCost,fe=ns(C).totalCost;return $-fe}),qt==="desc"&&L.reverse(),L},[r,De,qt,ns]),Md=L=>{De===L?Ct(Z=>Z==="asc"?"desc":"asc"):(Pe(L),Ct(L==="cost"?"desc":"asc"))},IE=fE(zu(Ld,{activationConstraint:{distance:5}}),zu(Td)),FE=De==="order",BE=m.useCallback(async L=>{const{active:Z,over:C}=L;if(!C||Z.id===C.id||!e)return;const $=di.findIndex(Yt=>Yt.line_item_id===Z.id),fe=di.findIndex(Yt=>Yt.line_item_id===C.id);if($===-1||fe===-1)return;const ze=[...di],[Et]=ze.splice($,1);ze.splice(fe,0,Et);const{lineItems:Pt}=_s.getState(),Ee=Pt.map(Yt=>{const Pn=ze.findIndex(ke=>ke.line_item_id===Yt.line_item_id);return Pn>=0?{...Yt,display_order:Pn}:Yt});_s.setState({lineItems:Ee});try{await H4(e,ze.map(Yt=>Yt.line_item_id))}catch{$e.error("Failed to save reorder")}},[di,e]),ax=async()=>{if(!Q.estimate_name.trim()){$e.error("Enter an estimate name");return}if(!Q.region){$e.error("Select a region");return}if(!Q.tier){$e.error("Select a Databricks tier");return}A(!0);try{const L={...Q,cloud:Q.cloud.toUpperCase(),tier:Q.tier.toUpperCase()};if(e&&n)await h(e,L),F(!1),$e.success("All changes saved");else{const Z=await p(L);F(!1),t(`/calculator/${Z.estimate_id}`,{replace:!0}),$e.success("Estimate created")}}catch{$e.error("Failed to save")}finally{A(!1)}},UE=async()=>{if(e){Ae(!0);try{const L=await qS(e),Z=`${Q.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(L,Z),$e.success("Exported to Excel")}catch{$e.error("Export failed")}finally{Ae(!1)}}},VE=async()=>{if(e){Y(!0),_e(!1);try{await g(e),$e.success("Estimate deleted"),t("/",{replace:!0})}catch{$e.error("Failed to delete estimate"),Y(!1)}}},zE=async()=>{l(),$e.loading("Refreshing pricing data...",{id:"refresh-data"});try{await o(!0),$e.success("Pricing data refreshed",{id:"refresh-data"})}catch{$e.error("Failed to refresh data",{id:"refresh-data"})}},lx=L=>{I(L),ot(!0)},$E=async()=>{if(Xe){pt(!0);try{await v(Xe.line_item_id),$e.success("Workload removed")}catch{$e.error("Failed to delete")}finally{pt(!1),ot(!1),I(null)}}},cx=()=>{le.size!==0&>(!0)},HE=async()=>{pt(!0);try{let L=0;for(const Z of le)await v(Z),L++;$e.success(`${L} workload(s) deleted`),rt(new Set)}catch{$e.error("Failed to delete some workloads")}finally{pt(!1),gt(!1)}},qE=L=>{rt(Z=>{const C=new Set(Z);return C.has(L)?C.delete(L):C.add(L),C})},WE=()=>{le.size===r.length?rt(new Set):rt(new Set(r.map(L=>L.line_item_id)))},ux=()=>{wr(!1),rt(new Set)},dx=async(L,Z)=>{L.stopPropagation();try{await b(Z.line_item_id)&&$e.success(`Workload "${Z.workload_name}" cloned`)}catch{$e.error("Failed to clone workload")}},GE=()=>{O?P(!0):t("/")},KE=()=>{P(!1),t("/")},fx=L=>{const Z=new Set(M);Z.has(L)?Z.delete(L):Z.add(L),W(Z)},Il=(L,Z=!1)=>{const C=new Set(Se);if(C.has(L))C.delete(L);else if(C.add(L),Z&&!M.has(L)){const $=new Set(M);$.add(L),W($)}Ne(C)},px=L=>L.hours_per_month?`${L.hours_per_month}h/month`:L.runs_per_day?`${L.runs_per_day} runs/day × ${L.avg_runtime_minutes||30}min`:null,mx=L=>{const Z=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(L.workload_type||"")&&L.serverless_enabled&&Z.push({label:"Mode",value:L.serverless_mode==="performance"?"Performance":"Standard"}),L.workload_type){case"VECTOR_SEARCH":L.vector_search_mode&&Z.push({label:"Mode",value:L.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),L.vector_capacity_millions&&Z.push({label:"Capacity",value:`${L.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(L.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};Z.push({label:"Endpoint",value:C[L.model_serving_gpu_type]||L.model_serving_gpu_type})}break;case"LAKEBASE":L.lakebase_cu&&Z.push({label:"CU",value:`${L.lakebase_cu}`}),L.lakebase_ha_nodes&&Z.push({label:"Nodes",value:`${L.lakebase_ha_nodes}${L.lakebase_ha_nodes>1?" (HA)":""}`}),L.lakebase_storage_gb&&L.lakebase_storage_gb>0&&Z.push({label:"Storage",value:`${L.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(L.fmapi_model&&Z.push({label:"Model",value:L.fmapi_model}),L.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};Z.push({label:"Rate",value:C[L.fmapi_rate_type]||L.fmapi_rate_type})}if(L.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(L.fmapi_rate_type||"");Z.push({label:C?"Hours":"Quantity",value:C?`${L.fmapi_quantity}h/mo`:`${L.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(L.fmapi_provider&&L.fmapi_model&&Z.push({label:"Model",value:`${L.fmapi_provider}/${L.fmapi_model}`}),L.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};Z.push({label:"Rate",value:C[L.fmapi_rate_type]||L.fmapi_rate_type})}L.fmapi_quantity&&Z.push({label:"Quantity",value:`${L.fmapi_quantity}M tokens`});break;case"DLT":L.dlt_edition&&Z.push({label:"Edition",value:L.dlt_edition});break;case"DBSQL":L.dbsql_warehouse_type&&Z.push({label:"Type",value:L.dbsql_warehouse_type}),L.dbsql_warehouse_size&&Z.push({label:"Size",value:L.dbsql_warehouse_size}),L.dbsql_num_clusters&&L.dbsql_num_clusters>1&&Z.push({label:"Clusters",value:`${L.dbsql_num_clusters}`});break}return Z},Fl=Q.estimate_name.trim()&&Q.region&&Q.tier,hx=()=>{const L=[];return Q.estimate_name.trim()||L.push("Estimate Name"),Q.region||L.push("Region"),Q.tier||L.push("Databricks Tier"),L};return w?a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:a.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&Ce&&!n?a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[a.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:a.jsx(ey,{className:"w-5 h-5"})}),a.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[a.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[a.jsxs("div",{className:"card p-5",children:[a.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),a.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(L=>a.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},L))}),a.jsx("div",{className:"space-y-4",children:[1,2,3].map(L=>a.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},L))})]}),a.jsxs("div",{className:"space-y-4",children:[a.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"card p-8",children:a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsx("div",{className:"relative",children:a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),a.jsxs("div",{className:"text-center",children:[a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),a.jsx("div",{className:"lg:col-span-1",children:a.jsxs("div",{className:"card p-5 space-y-4",children:[a.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("button",{onClick:GE,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:a.jsx(ey,{className:"w-5 h-5"})}),a.jsx("div",{children:Ce&&e?a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):a.jsxs(a.Fragment,{children:[a.jsx("input",{type:"text",value:Q.estimate_name,onChange:L=>{ct(Z=>({...Z,estimate_name:L.target.value})),Ur()},placeholder:"Untitled Estimate",title:Q.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&a.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&a.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{onClick:zE,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:a.jsx(Qr,{className:ue("w-4 h-4",c&&"animate-spin")})}),a.jsxs("button",{onClick:UE,disabled:be||!e,className:"btn btn-secondary",children:[a.jsx(zc,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&a.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:a.jsx(en,{className:"w-4 h-4"})})]})]}),a.jsxs("div",{className:ue("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[a.jsxs("div",{className:ue("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[a.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Ot(!Ze),children:[a.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[a.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:a.jsx(Lu,{className:"w-4 h-4 text-lava-600"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),a.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${Q.cloud.toUpperCase()} • ${Q.region||"No region"} • ${Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier"}${Q.customer_name?` • ${Q.customer_name}`:""}`,children:[Q.cloud.toUpperCase()," • ",Q.region||"No region"," • ",Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier",Q.customer_name&&` • ${Q.customer_name}`]})]})]}),a.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:Ze?a.jsx(tr,{className:"w-4 h-4 text-[var(--text-muted)]"}):a.jsx(ds,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!Ze&&a.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[a.jsxs("div",{className:"pt-3 space-y-3",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),Ce&&e?a.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(L=>a.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:a.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},L))}):a.jsxs(a.Fragment,{children:[r.length>0&&a.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),a.jsx("div",{className:"grid grid-cols-3 gap-3",children:c8.map(L=>{const Z=r.length>0&&Q.cloud!==L.id;return a.jsxs("button",{disabled:Z,onClick:C=>{C.stopPropagation(),!Z&&(ct($=>({...$,cloud:L.id,region:"",tier:L.id==="azure"&&$.tier==="enterprise"?"":$.tier})),x(L.id),Ur())},className:ue("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",Q.cloud===L.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",Z?"opacity-40 cursor-not-allowed":Q.cloud!==L.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:Z?"Remove all workloads to change cloud provider":void 0,children:[a.jsx("div",{className:ue("text-sm font-semibold",Q.cloud===L.id?"text-lava-600":"text-[var(--text-primary)]"),children:L.name}),Q.cloud===L.id&&a.jsx("div",{className:"absolute top-1.5 right-1.5",children:a.jsx(qs,{className:"w-3.5 h-3.5 text-lava-600"})})]},L.id)})})]})]}),Ce&&e?a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),a.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),a.jsxs("div",{children:[a.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),a.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:L=>L.stopPropagation(),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsxs("select",{value:Q.region,onChange:L=>{ct(Z=>({...Z,region:L.target.value})),y(L.target.value),Ur()},className:ue("w-full text-sm",!Q.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[a.jsx("option",{value:"",children:Le?"Loading regions...":"Select region"}),U.map(L=>a.jsxs("option",{value:L.region_code,children:[L.region_code," (",L.sku_region,")"]},L.region_code))]})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsxs("select",{value:Q.tier,onChange:L=>{ct(Z=>({...Z,tier:L.target.value})),Ur()},className:ue("w-full text-sm",!Q.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[a.jsx("option",{value:"",children:"Select tier"}),a.jsx("option",{value:"premium",children:"Premium"}),Q.cloud!=="azure"&&a.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),a.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[a.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?a.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?a.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[a.jsx(qs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),a.jsxs("button",{onClick:ax,disabled:pe||!Fl,title:Fl?void 0:`Missing: ${hx().join(", ")}`,className:ue("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[a.jsx(qs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[a.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[a.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[a.jsx(c3,{className:"w-5 h-5 text-lava-600"}),"Workloads",a.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&a.jsx(a.Fragment,{children:Nt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[le.size," selected"]}),a.jsxs("button",{onClick:cx,disabled:le.size===0,className:ue("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",le.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:a.jsx(To,{className:"w-4 h-4"})})]}):a.jsx("button",{onClick:()=>wr(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&a.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[a.jsx("button",{onClick:()=>Oe("table"),className:ue("p-1.5 rounded-md transition-colors",Ue==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:a.jsx(v3,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>Oe("cards"),className:ue("p-1.5 rounded-md transition-colors",Ue==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:a.jsx(Ng,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>Oe("expanded"),className:ue("p-1.5 rounded-md transition-colors",Ue==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:a.jsx(ry,{className:"w-4 h-4"})})]}),Ol&&e&&a.jsxs("button",{onClick:()=>se(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[a.jsx(Au,{className:"w-4 h-4"}),"Add"]})]})]}),e?dt&&!Ge?a.jsx("div",{className:"card p-8 text-center",children:a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsx("div",{className:"relative",children:a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),a.jsxs("div",{children:[a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):a.jsxs(a.Fragment,{children:[Ue==="table"&&r.length>0&&a.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[a.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Nt&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("input",{type:"checkbox",checked:le.size===r.length&&r.length>0,onChange:WE,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),a.jsxs("button",{onClick:()=>Md("name"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Nt?"col-span-3":"col-span-4"),children:["Workload",De==="name"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]}),a.jsxs("button",{onClick:()=>Md("type"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",De==="type"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]}),a.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",De==="cost"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]})]}),a.jsx(EE,{sensors:IE,collisionDetection:pE,onDragEnd:BE,modifiers:[DE],children:a.jsx(TE,{items:di.map(L=>L.line_item_id),strategy:NE,children:di.map(L=>{var Rs,kr,rs;const Z=K[L.line_item_id],C=Z?{...L,...Z}:L,$=ns(L,Z),fe=W_(C.workload_type),ze=fe.icon,Et=M.has(L.line_item_id),Pt=le.has(L.line_item_id),Ee=C.workload_type||"",Yt=C.serverless_enabled||Ee==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Pn=((Rs=s.find(te=>te.workload_type===Ee))==null?void 0:Rs.display_name)||Ee,ke=px(C),We=(()=>{const te={badges:[],details:[]};if(Yt&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(Ee))Yt||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),Ee==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(Ee==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(Ee==="VECTOR_SEARCH"){if(C.vector_search_mode){const he=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:he})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(Ee==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(Ee==="FMAPI_DATABRICKS"||Ee==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const he=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:he?"Provisioned":"Token"})}C.fmapi_provider&&Ee==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else Ee==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return a.jsx(d8,{id:L.line_item_id,disabled:!FE,children:a.jsxs("div",{ref:te=>{Nn.current[L.line_item_id]=te},children:[a.jsxs("div",{className:ue("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Pt&&Nt&&"bg-lava-600/5",Et&&"bg-[var(--bg-tertiary)]"),onClick:()=>fx(L.line_item_id),children:[Nt&&a.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:a.jsx("input",{type:"checkbox",checked:Pt,onChange:()=>qE(L.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),a.jsxs("div",{className:ue("flex items-center gap-3",Nt?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[a.jsx("div",{className:ue("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",fe.bgColor),children:a.jsx(ze,{className:ue("w-4 h-4",fe.color)})}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:L.workload_name,children:L.workload_name}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:Pn,children:Pn})]})]}),a.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[We.badges.length>0&&a.jsx("div",{className:"flex items-center gap-1 shrink-0",children:We.badges.map((te,he)=>a.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},he))}),(We.driver||We.workers)&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${We.driver||"N/A"}, Workers: ${((kr=We.workers)==null?void 0:kr.count)||0}× ${((rs=We.workers)==null?void 0:rs.type)||"N/A"}`,children:(()=>{const te=We.driver,he=We.workers;return te&&he?te===he.type?`${he.count+1}× ${he.type}`:`${te} + ${he.count}× ${he.type}`:he?`${he.count}× ${he.type}`:te||""})()}),We.details.length>0&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:We.details.join(" · "),children:We.details.join(" · ")})]}),a.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[a.jsx(K_,{costs:$,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(Ee)||Ee==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&te&&$.vmCost===0})()}),a.jsxs("div",{className:"flex items-center gap-0.5",children:[a.jsx("button",{onClick:te=>{te.stopPropagation(),Il(L.line_item_id,!0)},className:ue("p-1.5 rounded transition-colors",Se.has(L.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(L.line_item_id)?"Hide calculation":"Show calculation",children:a.jsx(mc,{className:"w-4 h-4"})}),a.jsx("button",{onClick:te=>dx(te,L),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:te=>{te.stopPropagation(),lx(L)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:a.jsx(en,{className:"w-4 h-4"})}),a.jsx("div",{className:ue("p-1 rounded transition-colors",Et?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Et?a.jsx(ds,{className:"w-5 h-5 text-lava-600"}):a.jsx(tr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Et&&(We.badges.length>0||We.driver||We.workers||We.details.length>0)&&a.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[We.badges.map((te,he)=>a.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},he)),(We.driver||We.workers)&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=We.driver,he=We.workers;return te&&he?te===he.type?`${he.count+1}× ${he.type}`:`${te} + ${he.count}× ${he.type}`:he?`${he.count}× ${he.type}`:te||""})()}),We.details.length>0&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:We.details.join(" · ")})]}),Et&&a.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[a.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe($.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(Ee)&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe($.vmCost)})]}),Ee==="LAKEBASE"&&$.storageCost!==void 0&&$.storageCost>0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),a.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:xe($.storageCost)})]}),Ee==="VECTOR_SEARCH"&&$.unitsUsed!==void 0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),a.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[$.unitsUsed," unit",$.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(Ee)&&!Yt&&a.jsxs(a.Fragment,{children:[C.driver_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),a.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),a.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",a.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,he)=>a.jsxs("div",{className:"min-w-0",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),a.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},he)),ke&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),a.jsx("p",{className:"text-[var(--text-primary)]",children:ke})]})]}),a.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[a.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(L.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[a.jsx(mc,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(L.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(L.line_item_id)?a.jsx(ds,{className:"w-3 h-3"}):a.jsx(tr,{className:"w-3 h-3"})]}),Se.has(L.line_item_id)&&a.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,he=C.runs_per_day||0,ss=C.avg_runtime_minutes||30,on=C.days_per_month||30,fi=C.hours_per_month||730,Ut=te?he*(ss/60)*on:fi,ur=($.dbuPrice||0).toFixed(2);if(Ee==="VECTOR_SEARCH"){const st=C.vector_capacity_millions||1,it=C.vector_search_mode||"standard",Zt=it==="storage_optimized"?64:2,Rt=Math.ceil(st/Zt),Wt=it==="storage_optimized"?18.29:4,fn=C.vector_search_storage_gb||0,Xn=Rt*20,An=Math.max(0,fn-Xn),Jn=An*.023;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:["⌈",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M"]})," vectors ÷ ",Zt,"M⌉"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Rt," unit",Rt!==1?"s":""]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Wt.toFixed(2)," DBU/hr/unit"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe($.dbuCost)})]}),fn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[fn," GB"]}),a.jsx("span",{children:"−"}),a.jsxs("span",{children:[Xn," GB free"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Rt," units × 20GB)"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[An," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"$0.023/GB"}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Jn)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),fn>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Jn)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})}if(Ee==="FMAPI_DATABRICKS"||Ee==="FMAPI_PROPRIETARY"){const st=C.fmapi_quantity||1,it=C.fmapi_rate_type||"input_token",Zt=["provisioned_scaling","provisioned_entry"].includes(it),Rt=st>0?$.monthlyDBUs/st:0,Wt=C.fmapi_model||"model",fn=C.fmapi_provider||"";return a.jsx("div",{className:"space-y-1",children:a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Zt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," hours/mo"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Rt.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Wt,")"]})]}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M tokens"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Rt.toFixed(2)," DBU/M"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",fn?`${fn}/`:"",Wt,")"]})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})})}if(Ee==="LAKEBASE"){const st=C.lakebase_cu||1,it=C.lakebase_ha_nodes||1,Zt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Wt=(Zt[Q.cloud||"aws"]||Zt.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213,fn=C.lakebase_storage_gb||0,Xn=C.lakebase_pitr_gb||0,An=C.lakebase_snapshot_gb||0,Jn=.023,Qo=fn*15*Jn,Bl=Xn*8.7*Jn,Ul=An*3.91*Jn,Vl=Qo+Bl+Ul,zl=Vl>0;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," CU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Wt," DBU/CU-hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," nodes"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe($.dbuCost)})]}),fn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[fn," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"15 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(fn*15)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Qo)})]}),Xn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Xn," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"8.7 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Xn*8.7)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Bl)})]}),An>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[An," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"3.91 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(An*3.91)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Ul)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),zl&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Vl)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})}if(Ee==="MODEL_SERVING"){const st=C.model_serving_gpu_type||"cpu",it=C.model_serving_scale_out||"small",Rt=it==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[it]||4,Wt=Rt>0&&$.dbuPerHour?$.dbuPerHour/Rt:2;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:[Wt.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",st,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rt," concurrency"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",it,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})]})}if(Ee==="DBSQL"){const st=C.dbsql_warehouse_size||"Small",it=C.dbsql_num_clusters||1,Zt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),Rt=$.dbuPerHour?$.dbuPerHour/it:12,Wt=$.vmCost>0;return a.jsxs("div",{className:"space-y-1.5",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:st}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Rt.toFixed(1)," DBU/hr)"]}),it>1&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," clusters"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${he} runs × ${ss}min ÷ 60 × ${on} days`:void 0,children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe($.dbuCost)})]}),Wt&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsxs("span",{children:[Zt," warehouse VM costs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe($.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-600",children:xe($.dbuCost)}),Wt&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-600",children:xe($.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})]})}const Ts=C.num_workers||0,Rn=C.driver_node_type||"",xn=C.worker_node_type||"",Vr=C.photon_enabled,is=$.vmCost>0&&!Yt,Ie=Q.cloud||"aws",vt=Q.region||"",Xt=j.find(st=>st.id===Rn||st.name===Rn),vn=j.find(st=>st.id===xn||st.name===xn),dr=R(Ie,Rn)||(Xt==null?void 0:Xt.dbu_rate)||0,Vt=R(Ie,xn)||(vn==null?void 0:vn.dbu_rate)||0,Tn=vt&&Rn?S(Ie,vt,Rn,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,Jt=vt&&xn?S(Ie,vt,xn,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,Ln=$.dbuPerHour||0;return a.jsxs("div",{className:"space-y-1.5",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Yt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Vr?" + Photon":"",")"]})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"("}),a.jsx("span",{title:Rn,children:dr.toFixed(2)}),a.jsx("span",{children:"+"}),a.jsx("span",{title:xn,children:Vt.toFixed(2)}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),a.jsx("span",{children:")"}),Vr&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe($.dbuCost)})]}),is&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsx("span",{children:"("}),a.jsxs("span",{title:Rn,children:["$",(Tn==null?void 0:Tn.toFixed(4))||"0"]}),a.jsx("span",{children:"+"}),a.jsxs("span",{title:xn,children:["$",(Jt==null?void 0:Jt.toFixed(4))||"0"]}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),a.jsx("span",{children:")"}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe($.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),is&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-500",children:xe($.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})})()})]})]}),Et&&a.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:a.jsx(q_,{onReset:()=>{W(te=>{const he=new Set(te);return he.delete(L.line_item_id),he})},children:a.jsx(rp,{estimateId:e,lineItem:L,onClose:()=>{W(te=>{const he=new Set(te);return he.delete(L.line_item_id),he}),ie(te=>{const he={...te};return delete he[L.line_item_id],he})},onSave:()=>{ie(te=>{const he={...te};return delete he[L.line_item_id],he})},onFormChange:te=>{ie(he=>({...he,[L.line_item_id]:te}))},inline:!0})})})]})},L.line_item_id)})})})]}),Ue!=="table"&&di.map((L,Z)=>{var Pn;const C=K[L.line_item_id],$=C?{...L,...C}:L,fe=ns(L,C),ze=M.has(L.line_item_id),Et=px($),Pt=W_($.workload_type),Ee=Pt.icon,Yt=Ue==="expanded"||ze;return a.jsx("div",{ref:ke=>{Nn.current[L.line_item_id]=ke},children:a.jsxs(Bt.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:Z*.02},className:"card overflow-hidden",children:[a.jsxs("div",{className:ue("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",Ue==="cards"&&!ze&&"py-3"),onClick:()=>fx(L.line_item_id),children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx("div",{className:ue("rounded-lg flex items-center justify-center flex-shrink-0",Ue==="cards"&&!ze?"w-8 h-8":"w-10 h-10",Pt.bgColor),children:a.jsx(Ee,{className:ue(Pt.color,Ue==="cards"&&!ze?"w-4 h-4":"w-5 h-5")})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("h4",{className:ue("font-semibold truncate text-[var(--text-primary)]",Ue==="cards"&&!ze&&"text-sm"),title:L.workload_name,children:L.workload_name}),(L.serverless_enabled||L.workload_type==="DBSQL"&&(L.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&a.jsx("span",{className:"badge badge-teal",children:"Serverless"}),L.photon_enabled&&a.jsxs("span",{className:"badge badge-lava",children:[a.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),a.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:a.jsx("span",{children:((Pn=s.find(ke=>ke.workload_type===L.workload_type))==null?void 0:Pn.display_name)||L.workload_type})})]}),a.jsx(K_,{costs:fe,size:Ue==="cards"&&!ze?"md":"lg",isLoading:(()=>{const ke=L.workload_type||"",Qe=!L.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(ke)||ke==="DBSQL"&&(L.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&Qe&&fe.vmCost===0})(),className:"min-w-[100px]"}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:ke=>{ke.stopPropagation(),Il(L.line_item_id,!0)},className:ue("p-1.5 rounded-md transition-colors",Se.has(L.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(L.line_item_id)?"Hide calculation":"Show calculation",children:a.jsx(mc,{className:"w-4 h-4"})}),a.jsx("button",{onClick:ke=>dx(ke,L),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:ke=>{ke.stopPropagation(),lx(L)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:a.jsx(en,{className:"w-4 h-4"})}),ze?a.jsx(ds,{className:"w-5 h-5 text-[var(--text-muted)]"}):a.jsx(tr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),Yt&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(fe.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(L.workload_type||"")&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(fe.vmCost)})]}),L.workload_type==="LAKEBASE"&&fe.storageCost!==void 0&&fe.storageCost>0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),a.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:xe(fe.storageCost)})]}),L.workload_type==="VECTOR_SEARCH"&&fe.unitsUsed!==void 0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),a.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[fe.unitsUsed," unit",fe.unitsUsed!==1?"s":""]})]}),(L.workload_type==="JOBS"||L.workload_type==="ALL_PURPOSE"||L.workload_type==="DLT")&&a.jsxs(a.Fragment,{children:[L.driver_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),a.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:L.driver_node_type})]}),L.worker_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),a.jsxs("p",{className:"text-[var(--text-primary)]",children:[L.num_workers,"× ",a.jsx("span",{className:"font-mono text-[10px]",children:L.worker_node_type})]})]})]}),mx(L).map((ke,Qe)=>a.jsxs("div",{className:"min-w-0",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:ke.label}),a.jsx("p",{className:"text-[var(--text-primary)] break-words",children:ke.value})]},Qe)),Et&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),a.jsx("p",{className:"text-[var(--text-primary)]",children:Et})]})]}),a.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[a.jsxs("button",{onClick:ke=>{ke.stopPropagation(),Il(L.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[a.jsx(mc,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(L.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(L.line_item_id)?a.jsx(ds,{className:"w-3 h-3"}):a.jsx(tr,{className:"w-3 h-3"})]}),Se.has(L.line_item_id)&&a.jsx("div",{className:"mt-2",children:(()=>{const ke=$.workload_type||"",Qe=$.serverless_enabled||ke==="DBSQL"&&($.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",We=$.runs_per_day&&$.avg_runtime_minutes&&!$.hours_per_month,Rs=$.runs_per_day||0,kr=$.avg_runtime_minutes||30,rs=$.days_per_month||30,te=$.hours_per_month||730,he=We?Rs*(kr/60)*rs:te,on=(fe.dbuPrice||0).toFixed(2);if(ke==="VECTOR_SEARCH"){const Vt=$.vector_capacity_millions||1,Tn=$.vector_search_mode||"standard",Jt=Tn==="storage_optimized"?64:2,Ln=Math.ceil(Vt/Jt),st=Tn==="storage_optimized"?18.29:4,it=$.vector_search_storage_gb||0,Zt=Ln*20,Rt=Math.max(0,it-Zt),Wt=Rt*.023;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:["⌈",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt,"M vectors"]})," ÷ ",Jt,"⌉"]}),a.jsxs("span",{children:["= ",Ln," units ×"]}),a.jsxs("span",{children:[st," DBU/unit/hr ×"]}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs × $",on]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(fe.dbuCost)})]}),it>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," GB"]}),a.jsx("span",{children:"−"}),a.jsxs("span",{children:[Zt," GB free"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ln," units × 20GB)"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Rt," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"$0.023/GB"}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Wt)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),it>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Wt)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="FMAPI_DATABRICKS"||ke==="FMAPI_PROPRIETARY"){const Vt=$.fmapi_quantity||0,Tn=fe.monthlyDBUs/(Vt||1);return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt,"M tokens"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Tn.toFixed(2)," DBU/M"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="LAKEBASE"){const Vt=$.lakebase_cu||1,Tn=$.lakebase_ha_nodes||1,Jt=$.lakebase_storage_gb||0,Ln=$.lakebase_pitr_gb||0,st=$.lakebase_snapshot_gb||0,it=.023,Zt=Jt*15*it,Rt=Ln*8.7*it,Wt=st*3.91*it,fn=Zt+Rt+Wt,Xn=fn>0,An={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Qo=(An[Q.cloud||"aws"]||An.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt," CU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Qo," DBU/CU-hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Tn," nodes"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(fe.dbuCost)})]}),Jt>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Jt," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"15 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Jt*15)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Zt)})]}),Ln>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ln," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"8.7 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Ln*8.7)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Rt)})]}),st>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"3.91 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(st*3.91)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Wt)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),Xn&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(fn)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="MODEL_SERVING"){const Vt=$.model_serving_scale_out||"small",Jt=Vt==="custom"?$.model_serving_concurrency||4:{small:4,medium:12,large:40}[Vt]||4,Ln=Jt>0&&fe.dbuPerHour?fe.dbuPerHour/Jt:2;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Jt," concurrency"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Vt,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}const fi=$.num_workers||0,Ut=$.driver_node_type||"",Sr=$.worker_node_type||"",ur=$.photon_enabled,Ts=fe.vmCost>0&&!Qe,Rn=Q.cloud||"aws",xn=Q.region||"",Vr=j.find(Vt=>Vt.id===Ut||Vt.name===Ut),is=j.find(Vt=>Vt.id===Sr||Vt.name===Sr),Ie=R(Rn,Ut)||(Vr==null?void 0:Vr.dbu_rate)||0,vt=R(Rn,Sr)||(is==null?void 0:is.dbu_rate)||0,Xt=xn&&Ut?S(Rn,xn,Ut,$.driver_pricing_tier||"on_demand",$.driver_payment_option||"no_upfront"):null,vn=xn&&Sr?S(Rn,xn,Sr,$.worker_pricing_tier||"spot",$.worker_payment_option||"NA"):null,dr=fe.dbuPerHour||0;return a.jsxs("div",{className:"space-y-1.5",children:[We&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rs," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[kr,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[rs," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[he.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Qe?a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[dr.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",ur?" + Photon":"",")"]})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"("}),a.jsx("span",{title:Ut,children:Ie.toFixed(2)}),a.jsx("span",{children:"+"}),a.jsx("span",{title:Sr,children:vt.toFixed(2)}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:fi}),a.jsx("span",{children:")"}),ur&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[dr.toFixed(2)," DBU/hr"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(We?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),Ts&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsx("span",{children:"("}),a.jsxs("span",{title:Ut,children:["$",(Xt==null?void 0:Xt.toFixed(4))||"0"]}),a.jsx("span",{children:"+"}),a.jsxs("span",{title:Sr,children:["$",(vn==null?void 0:vn.toFixed(4))||"0"]}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:fi}),a.jsx("span",{children:")"}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(We?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe(fe.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),Ts&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-500",children:xe(fe.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})})()})]})]})]}),ze&&a.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:a.jsx(q_,{onReset:()=>{W(ke=>{const Qe=new Set(ke);return Qe.delete(L.line_item_id),Qe})},children:a.jsx(rp,{estimateId:e,lineItem:L,onClose:()=>{W(ke=>{const Qe=new Set(ke);return Qe.delete(L.line_item_id),Qe}),ie(ke=>{const Qe={...ke};return delete Qe[L.line_item_id],Qe})},onSave:()=>{ie(ke=>{const Qe={...ke};return delete Qe[L.line_item_id],Qe})},onFormChange:ke=>{ie(Qe=>({...Qe,[L.line_item_id]:ke}))},inline:!0})})})]})},L.line_item_id)}),Ol?N?a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),a.jsx("button",{onClick:()=>se(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),a.jsx(rp,{estimateId:e,lineItem:null,onClose:()=>se(!1),onSave:()=>{},inline:!0})]}):a.jsxs("button",{onClick:()=>se(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[a.jsx(Au,{className:"w-5 h-5"}),"Add Workload"]}):a.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[a.jsx(fs,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),a.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",a.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",a.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):a.jsxs("div",{className:"card p-8 text-center",children:[Fl?a.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),a.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),a.jsxs("button",{onClick:ax,disabled:pe||!Fl,className:"btn btn-primary",children:[a.jsx(qs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&a.jsx("div",{className:"lg:col-span-1",children:a.jsxs("div",{className:"card p-5 sticky top-24",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("h3",{className:"flex items-center gap-2",children:[a.jsx(_m,{className:"w-5 h-5 text-lava-600"}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),dt&&!Ge&&a.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),a.jsxs("button",{onClick:()=>xt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[a.jsx(tr,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),Ol?dt&&!Ge?a.jsxs("div",{className:"space-y-3 py-4",children:[a.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?a.jsxs("div",{className:"space-y-4",children:[a.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[a.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),a.jsx("p",{className:ue("text-3xl font-bold text-lava-600",Ke&&"opacity-60"),children:xe(Yn.totalCost)}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[xe(Yn.totalCost*12),"/year"]})]}),a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[a.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[a.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),a.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:xe(Yn.totalDBUCost),children:G_(Yn.totalDBUCost)})]}),a.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[a.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),a.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Ke?"Loading...":xe(Yn.totalVMCost),children:Ke?"...":G_(Yn.totalVMCost)})]})]}),a.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[a.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[a.jsxs("span",{children:["Workloads (",r.length,")"]}),a.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),a.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const L=[...r].map(C=>({item:C,costs:ns(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return L.map(({item:C,costs:$},fe)=>{const ze=Yn.totalCost>0?$.totalCost/Yn.totalCost*100:0,Et=Z[fe%Z.length];return a.jsxs("button",{onClick:()=>Br(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[a.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[a.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),a.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[a.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[ze.toFixed(0),"%"]}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:xe($.totalCost),children:xe($.totalCost)})]})]}),a.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx("div",{className:ue("h-full rounded-full transition-all",Et,"group-hover:brightness-110"),style:{width:`${Math.max(ze,2)}%`}})})]},C.line_item_id)})})()})]})]}):a.jsxs("div",{className:"text-center py-8",children:[a.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):a.jsxs("div",{className:"text-center py-8",children:[a.jsx(fs,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),a.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&a.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[St&&r.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>mt(!1)}),a.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:a.jsxs("div",{className:"p-4",children:[a.jsxs("div",{className:"flex items-center justify-between mb-3",children:[a.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),a.jsx("button",{onClick:()=>mt(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),a.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const L=[...r].map(C=>({item:C,costs:ns(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return L.map(({item:C,costs:$},fe)=>{const ze=Yn.totalCost>0?$.totalCost/Yn.totalCost*100:0,Et=Z[fe%Z.length];return a.jsxs("button",{onClick:()=>{mt(!1),Br(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[a.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[a.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),a.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[a.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[ze.toFixed(0),"%"]}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:xe($.totalCost)})]})]}),a.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx("div",{className:ue("h-full rounded-full",Et),style:{width:`${Math.max(ze,1)}%`}})})]},C.line_item_id)})})()}),a.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),a.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-14",children:[a.jsxs("button",{onClick:()=>xt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[a.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),a.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),a.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[a.jsxs("button",{onClick:()=>mt(!St),className:ue("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",St?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[a.jsx(ry,{className:"w-4 h-4"}),a.jsx("span",{className:"font-semibold",children:r.length}),a.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),a.jsx(ds,{className:ue("w-3 h-3 transition-transform",St?"rotate-180":"")})]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),a.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[a.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),a.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:xe(Yn.totalDBUCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[a.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),a.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:xe(Yn.totalVMCost)})]})]}),a.jsx("div",{className:"flex items-center",children:a.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:a.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[xe(Yn.totalCost),a.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),le.size>0&&a.jsxs(Bt.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[a.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[le.size," workload",le.size!==1?"s":""," selected"]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),a.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[a.jsx(To,{className:"w-4 h-4"}),"Cancel"]})]}),ce&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',Q.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:VE,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ye&&Xe&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',Xe.workload_name,'"']}),"?"]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:at,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:$E,disabled:at,className:"btn bg-red-600 hover:bg-red-700 text-white",children:at?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]})})]})]})}),tt&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",le.size," Workload",le.size!==1?"s":""]}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[a.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),a.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(L=>le.has(L.line_item_id)).map(L=>a.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",L.workload_name]},L.line_item_id))})]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>gt(!1),disabled:at,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:HE,disabled:at,className:"btn bg-red-600 hover:bg-red-700 text-white",children:at?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),G&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:a.jsx(fs,{className:"w-5 h-5 text-amber-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),a.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),a.jsx("button",{onClick:KE,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function f8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),a.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),a.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},p8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function m8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:o,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:f,getFMAPIProprietaryRate:p,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let S="";const R=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?S="JOBS_COMPUTE_(PHOTON)":S="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?S="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?S="ALL_PURPOSE_COMPUTE_(PHOTON)":S="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":(S=`DLT_${R}_COMPUTE`,e.photon_enabled&&(S+="_(PHOTON)"));break;case"DBSQL":const ce=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ce==="SERVERLESS"?S="SERVERLESS_SQL_COMPUTE":ce==="PRO"?S="SQL_PRO_COMPUTE":S="SQL_COMPUTE";break;case"VECTOR_SEARCH":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();S=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":S="DATABASE_SERVERLESS_COMPUTE";break;default:S="JOBS_COMPUTE"}let k=null;if(b){const ce=b(S);ce!==null&&ce>0&&(k=ce)}k===null&&(k=x[S]||.2),console.log(`[LiveEstimate] productType=${S}, dbuPrice=${k}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,z=0,j,H,X,re=.5,ae=.5;if(g&&e.driver_node_type){const ce=g(e.driver_node_type);ce!==null&&ce>0&&(re=ce)}if(re===.5){const ce=o.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ce!=null&&ce.dbu_rate&&(re=ce.dbu_rate)}if(g&&e.worker_node_type){const ce=g(e.worker_node_type);ce!==null&&ce>0&&(ae=ce)}if(ae===.5){const ce=o.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ce!=null&&ce.dbu_rate&&(ae=ce.dbu_rate)}const ve=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ce=S.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ce="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ce="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ce=`DLT_${R}_COMPUTE`)),v){const ye=v(ce);if(ye!==null&&ye>1)return ye}const _e=c.find(ye=>{var ot;return ye.sku_type===ce||ye.sku_type===S||((ot=ye.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+ae*y)*ve*oe;else{T=(re+ae*y)*ve;const le=e.driver_pricing_tier||"on_demand",rt=e.driver_payment_option||"NA",Nt=e.worker_pricing_tier||"spot",wr=e.worker_payment_option||"NA",Nn=d(n,r,e.driver_node_type||"",le,rt),Br=d(n,r,e.worker_node_type||"",Nt,wr);z=(Nn+Br*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+ae*y)*ve*oe;else{T=(re+ae*y)*ve;const le=e.driver_pricing_tier||"on_demand",rt=e.driver_payment_option||"NA",Nt=e.worker_pricing_tier||"spot",wr=e.worker_payment_option||"NA",Nn=d(n,r,e.driver_node_type||"",le,rt),Br=d(n,r,e.worker_node_type||"",Nt,wr);z=(Nn+Br*y)*_}D=T*_;break;case"DBSQL":const ce=l.find(le=>le.id===e.dbsql_warehouse_size||le.name===e.dbsql_warehouse_size),_e=(ce==null?void 0:ce.dbu_per_hour)||p8[e.dbsql_warehouse_size||"Small"]||12,ye=e.dbsql_num_clusters||1;T=_e*ye,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",rt=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Nt=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",wr=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Nn=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Nn){const Br=d(n,r,Nn.driver_instance_type,le,rt),Ur=d(n,r,Nn.worker_instance_type,Nt,wr);z=(Nn.driver_count*Br+Nn.worker_count*Ur)*ye*_}else if(e.driver_node_type){const Br=d(n,r,e.driver_node_type,le,rt),Ur=e.worker_node_type?d(n,r,e.worker_node_type,Nt,wr):0,Ml=e.num_workers||0;z=(Br+Ur*Ml)*ye*_}}break;case"VECTOR_SEARCH":const Xe=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,tt=h(Xe),gt=(tt==null?void 0:tt.input_divisor)||(Xe==="storage_optimized"?64e6:2e6),at=(tt==null?void 0:tt.dbu_per_hour)||(Xe==="storage_optimized"?18.29:4),pt=I*1e6,G=Math.ceil(pt/gt);j=G,T=G*at,D=T*_;const P=e.vector_search_storage_gb||0,N=G*20,se=Math.max(0,P-N),M=.023,W=se*M;P>0&&(H=W,X={totalStorageGB:P,freeStorageGB:N,billableStorageGB:se,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Ne=u.find(le=>le.id===Se||le.name===Se),O=(Ne==null?void 0:Ne.dbu_per_hour)||2,F=e.model_serving_scale_out||"small",ie=F==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[F]||4;T=O*ie,D=T*_;break;case"LAKEBASE":const Ce=e.lakebase_cu||1,Be=e.lakebase_ha_nodes||1,dt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ge=(dt[n]||dt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=Ce*Ge*Be,D=T*_;const lt=Math.min(e.lakebase_storage_gb||0,8192),Ke=15,Mt=lt*Ke,U=.023,J=Mt*U,Le=e.lakebase_pitr_gb||0,Q=Le*8.7*U,ct=e.lakebase_snapshot_gb||0,Ot=ct*3.91*U;(lt>0||Le>0||ct>0)&&(H=J+Q+Ot,X={totalStorageGB:lt,billableStorageGB:lt,dsuPerGB:Ke,totalDSU:Mt,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,xt=e.fmapi_rate_type||"input_token",St=["provisioned_scaling","provisioned_entry"].includes(xt),mt=e.fmapi_model?f(e.fmapi_model,xt):null;if(St){const le=(mt==null?void 0:mt.dbu_per_hour)||(xt==="provisioned_scaling"?200:50);D=ft*le}else{const le=(mt==null?void 0:mt.dbu_per_1M_tokens)||(xt==="output_token"?3:1);D=ft*le}break;case"FMAPI_PROPRIETARY":const Ue=e.fmapi_quantity||0,Oe=e.fmapi_rate_type||"input_token",De=Oe==="provisioned_scaling",Pe=e.fmapi_endpoint_type||"global",qt=e.fmapi_context_length||"long",Ct=e.fmapi_provider&&e.fmapi_model?p(e.fmapi_provider,e.fmapi_model,Oe,Pe,qt):null;if(De){const le=(Ct==null?void 0:Ct.dbu_per_hour)||150;D=Ue*le}else{let le=Ct==null?void 0:Ct.dbu_per_1M_tokens;if(!le)switch(Oe){case"output_token":le=321.43;break;case"cache_read":le=8.57;break;case"cache_write":le=85.71;break;default:le=21.43}D=Ue*le}break;default:D=0}const B=D*k,q=H!==void 0&&!isNaN(H)?H:0,E=B+z+q,de=isNaN(B)?0:B,pe=isNaN(z)?0:z,A=isNaN(E)?de:E,be=isNaN(D)?0:D,Ae=isNaN(T)?0:T,w=isNaN(k)?.15:k;return{monthlyDBUs:be,dbuCost:de,vmCost:pe,totalCost:A,unitsUsed:j,dbuPerHour:Ae,dbuPrice:w,storageCost:q>0?q:void 0,storageDetails:X}}const fl={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,o;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=fl[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((o=fl[t.toLowerCase()])==null?void 0:o.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=fl[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const h8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],g8=["bge-large","gte"],x8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],v8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},y8=["cpu","gpu_small_t4"],_8=["standard","storage_optimized"];function ms(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const o=[];let l=r;const c=i!=null&&i.isLoaded?rC(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))o.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),o.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])o.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))o.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});o.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])o.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});o.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of ms(Z_,3))o.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of ms(Z_,2))o.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});o.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of _8)o.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=v8[s.toLowerCase()]||y8;for(const f of d)o.push({id:`${++l}`,name:`Model Serving ${f}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:f,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of ms(h8,3))for(const f of["input_token","output_token"])o.push({id:`${++l}`,name:`FMAPI DB ${d} ${f}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:f,fmapi_quantity:10}});for(const d of ms(g8,1))o.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of ms(x8,4))for(const f of d.contexts.slice(0,2))for(const p of["input_token","output_token"])o.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${f} ${p}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:f,fmapi_rate_type:p,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])o.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return o}function b8(e,t){var s,i,o;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),f=d.length>0?ms(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},f,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=ms(c.length>0?c:((s=fl[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=ms(Qm(l),e.tiersPerCloud);for(const f of u){const p=Hu(t,l),h=p.length>0?ms(p,e.vmSamplesPerCloud):((o=(i=fl[l])==null?void 0:i.vmTypes)==null?void 0:o.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:f,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function w8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function k8(e){var o,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((o=n.fmapi_rate_type)==null?void 0:o.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function S8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,o=t.totalCost||0,l=Math.abs(i-o),c=o!==0?l/o*100:i!==0?100:0;for(const u of s){const d=e[u]||0,f=t[u]||0,p=Math.abs(d-f),h=f!==0?p/f*100:d!==0?100:0;h>n&&p>.01&&r.push({field:u,local:d,api:f,diff:p,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function C8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[o,l]=m.useState(!1),[c,u]=m.useState(null),[d,f]=m.useState(new Set),[p,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[S,R]=m.useState({current:0,total:0}),[k,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),z=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:ae,photonMultipliers:me,modelServingGPUTypes:ve,vectorSearchModes:oe,pricingBundle:B,isPricingBundleLoaded:q,loadPricingBundle:E,getVMPrice:de,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:A,getFMAPIProprietaryRate:be,getVectorSearchRate:Ae}=_s();m.useEffect(()=>{E()},[E]);const w=m.useMemo(()=>b8(j,B),[j,B]),Y=m.useMemo(()=>p==="all"?w:w.filter(M=>M.category===p),[w,p]),ce=m.useMemo(()=>{const M=new Set(w.map(W=>W.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,W,Se)=>{const Ne=q&&B.modelServingRates?Object.entries(B.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,F])=>{const K=O.split(":")[1];return{id:K,name:K,dbu_per_hour:F.dbu_rate}}):ve;return{cloud:M,region:W,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:ae,photonMultipliers:me,modelServingGPUTypes:Ne,vectorSearchModes:oe,getVMPrice:de,getFMAPIDatabricksRate:(O,F)=>{if(q&&B.fmapiDatabricksRates){const K=`${M.toLowerCase()}:${O}:${F}`,ie=B.fmapiDatabricksRates[K];if(ie)return{dbu_per_1M_tokens:ie.is_hourly?void 0:ie.dbu_rate,dbu_per_hour:ie.is_hourly?ie.dbu_rate:void 0}}return A(O,F)},getFMAPIProprietaryRate:(O,F,K,ie,Ce)=>{if(q&&B.fmapiProprietaryRates){const Be=ie||"global",dt=Ce||"all",nt=`${M.toLowerCase()}:${O.toLowerCase()}:${F.toLowerCase()}:${Be}:${dt}:${K}`,Ge=B.fmapiProprietaryRates[nt];if(Ge)return{dbu_per_1M_tokens:Ge.is_hourly?void 0:Ge.dbu_rate,dbu_per_hour:Ge.is_hourly?Ge.dbu_rate:void 0}}return be(O,F,K)},getVectorSearchRate:O=>{if(q&&B.vectorSearchRates){const F=`${M.toLowerCase()}:${O}`,K=B.vectorSearchRates[F];if(K)return{dbu_per_hour:K.dbu_rate,input_divisor:K.input_divisor}}return Ae(O)},getInstanceDBURate:O=>q?Pm(B,M,O):null,getPhotonMultiplier:O=>q?nC(B,M,O):null,getDBUPrice:O=>q?Ag(B,M,W,Se,O):null,getDBSQLWarehouseConfig:(O,F)=>q?al(B,M,O,F):null}},[X,re,ae,me,ve,oe,q,B,de,A,be,Ae]),ye=async M=>{var Q,ct,Ze,Ot,ft,xt,St,mt,Ue;const{environment:W,workloadType:Se,config:Ne}=M,O=_e(W.cloud,W.region,W.tier),F={...Ne,workload_type:Se},K=[];if(Se==="DBSQL"&&Ne.dbsql_warehouse_type!=="SERVERLESS"){const Oe=al(B,W.cloud,Ne.dbsql_warehouse_type||"PRO",Ne.dbsql_warehouse_size||"Small");if(Oe){const De=Ne.dbsql_driver_pricing_tier||"on_demand",Pe=Ne.dbsql_driver_payment_option||"NA";K.push(pe(W.cloud,W.region,Oe.driver_instance_type,De,Pe));const qt=Ne.dbsql_worker_pricing_tier||"on_demand",Ct=Ne.dbsql_worker_payment_option||"NA";K.push(pe(W.cloud,W.region,Oe.worker_instance_type,qt,Ct))}}else!Ne.serverless_enabled&&Ne.driver_node_type&&(K.push(pe(W.cloud,W.region,Ne.driver_node_type,Ne.driver_pricing_tier||"on_demand",Ne.driver_payment_option||"NA")),Ne.worker_node_type&&K.push(pe(W.cloud,W.region,Ne.worker_node_type,Ne.worker_pricing_tier||"spot",Ne.worker_payment_option||"NA")));K.length>0&&await Promise.all(K);const ie=performance.now(),Ce=m8(F,O),Be=performance.now()-ie,dt=performance.now();let nt=null,Ge,lt;const Ke=w8(Se,Ne),Mt=k8(M);try{const Oe=await fetch(Ke,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Mt)});if(Oe.ok){const De=await Oe.json();lt=De;const Pe=De.data||De,qt=((Q=Pe.dbu_calculation)==null?void 0:Q.dbu_per_month)??Pe.dbu_per_month??(((ct=Pe.dbu_calculation)==null?void 0:ct.dbu_per_hour)??Pe.dbu_per_hour??0)*(Ne.hours_per_month||730),Ct=((Ze=Pe.dbu_calculation)==null?void 0:Ze.dbu_cost_per_month)??((ft=(Ot=Pe.total_cost)==null?void 0:Ot.breakdown)==null?void 0:ft.dbu_cost)??Pe.dbu_cost_per_month??Pe.dbu_cost??0,le=((xt=Pe.vm_costs)==null?void 0:xt.vm_cost_per_month)??((mt=(St=Pe.total_cost)==null?void 0:St.breakdown)==null?void 0:mt.vm_cost)??Pe.vm_cost_per_month??Pe.vm_cost??0;let rt=0;typeof Pe.total_cost=="object"&&Pe.total_cost!==null?rt=Pe.total_cost.cost_per_month??Ct+le:typeof Pe.total_cost=="number"?rt=Pe.total_cost:rt=Pe.total_cost_per_month??Ct+le,nt={monthlyDBUs:qt,dbuCost:Ct,vmCost:le,totalCost:rt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:De,parsed:nt})}else{const De=await Oe.text();try{const Pe=JSON.parse(De);Ge=`HTTP ${Oe.status}: ${((Ue=Pe.detail)==null?void 0:Ue.message)||Pe.detail||Pe.message||De}`}catch{Ge=`HTTP ${Oe.status}: ${De}`}}}catch(Oe){Ge=Oe instanceof Error?Oe.message:"Unknown error"}const U=performance.now()-dt,{discrepancies:J,totalCostDiffPercent:Le}=S8(Ce,nt,g),Ve=Le<=g&&!Ge;return{testCase:M,localResult:Ce,apiResult:nt,apiError:Ge,apiRequestBody:Mt,apiRawResponse:lt,localTimeMs:Be,apiTimeMs:U,matches:Ve,totalCostDiffPercent:Le,discrepancies:J}},ot=()=>{D.current=!0,i(!0)},Xe=()=>{D.current=!1,i(!1)},I=()=>{z.current=!0,l(!0),D.current=!1,i(!1)},tt=async()=>{for(;D.current&&!z.current;)await new Promise(M=>setTimeout(M,100))},gt=async()=>{r(!0),i(!1),l(!1),D.current=!1,z.current=!1,t([]),R({current:0,total:Y.length});for(let M=0;M[...Ne,Se])}u(null),r(!1),i(!1),l(!1)},at=async()=>{const{cloud:M,region:W,tier:Se,workloadType:Ne,serverless:O,photon:F,driverNode:K,workerNode:ie,numWorkers:Ce,runsPerDay:Be,avgRuntime:dt,daysPerMonth:nt,hoursPerMonth:Ge}=k,lt={id:"custom-single",name:`Custom ${Ne} Test`,category:Ne,workloadType:Ne,environment:{cloud:M,region:W,tier:Se},config:{serverless_enabled:O,photon_enabled:F,driver_node_type:K,worker_node_type:ie,num_workers:Ce,runs_per_day:Be,avg_runtime_minutes:dt,days_per_month:nt,hours_per_month:Ge,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Ke=await ye(lt);t([Ke]),u(null),r(!1)},pt=m.useMemo(()=>{const M=e.filter(K=>K.matches).length,W=e.filter(K=>!K.matches).length,Se=e.filter(K=>K.apiError).length,Ne=e.length>0?e.reduce((K,ie)=>K+ie.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((K,ie)=>K+ie.apiTimeMs,0)/e.length:0,F={};return e.forEach(K=>{const ie=K.testCase.category;F[ie]||(F[ie]={passed:0,failed:0}),K.matches?F[ie].passed++:F[ie].failed++}),{passed:M,failed:W,apiErrors:Se,avgLocalTime:Ne,avgApiTime:O,byCategory:F}},[e]),G=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],W=e.map(K=>{var ie;return[K.testCase.id,K.testCase.name,K.testCase.category,K.testCase.environment.cloud,K.testCase.environment.region,K.testCase.environment.tier,K.matches?"PASS":"FAIL",K.localResult.totalCost.toFixed(2),((ie=K.apiResult)==null?void 0:ie.totalCost.toFixed(2))||"N/A",K.totalCostDiffPercent.toFixed(2),K.localTimeMs.toFixed(1),K.apiTimeMs.toFixed(1),K.apiError||""]}),Se=[M.join(","),...W.map(K=>K.map(ie=>`"${ie}"`).join(","))].join(` +`),Ne=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Ne),F=document.createElement("a");F.href=O,F.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,F.click()},P=M=>{const W=new Set(d);W.has(M)?W.delete(M):W.add(M),f(W)},N=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),se=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return a.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:a.jsx(oD,{className:"w-6 h-6 text-purple-500"})}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[a.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),a.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[a.jsx(YA,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&a.jsxs("button",{onClick:G,className:"btn btn-secondary flex items-center gap-2",children:[a.jsx(RD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&a.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[a.jsx(XD,{className:"w-4 h-4"}),"Pause"]}),n&&s&&a.jsxs("button",{onClick:Xe,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Resume"]}),n&&a.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[a.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&a.jsxs("button",{onClick:gt,className:"btn btn-primary flex items-center gap-2",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&a.jsxs(Bt.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),a.jsxs("button",{onClick:at,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Run Single Test"]})]}),a.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),a.jsxs("select",{value:k.cloud,onChange:M=>T({...k,cloud:M.target.value}),className:"w-full text-sm",children:[a.jsx("option",{value:"aws",children:"AWS"}),a.jsx("option",{value:"azure",children:"Azure"}),a.jsx("option",{value:"gcp",children:"GCP"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),a.jsx("input",{type:"text",value:k.region,onChange:M=>T({...k,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),a.jsx("datalist",{id:"single-test-regions",children:Km(B,k.cloud).slice(0,20).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),a.jsx("select",{value:k.tier,onChange:M=>T({...k,tier:M.target.value}),className:"w-full text-sm",children:Qm(k.cloud).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),a.jsxs("select",{value:k.workloadType,onChange:M=>T({...k,workloadType:M.target.value}),className:"w-full text-sm",children:[a.jsx("option",{value:"JOBS",children:"Jobs"}),a.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),a.jsx("option",{value:"DLT",children:"DLT"}),a.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),a.jsxs("div",{className:"flex items-end gap-4",children:[a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:k.serverless,onChange:M=>T({...k,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:k.photon,onChange:M=>T({...k,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),a.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),a.jsx("input",{type:"text",value:k.driverNode,onChange:M=>T({...k,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),a.jsx("datalist",{id:"single-test-driver-vms",children:Hu(B,k.cloud,k.region).slice(0,50).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),a.jsx("input",{type:"text",value:k.workerNode,onChange:M=>T({...k,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),a.jsx("datalist",{id:"single-test-worker-vms",children:Hu(B,k.cloud,k.region).slice(0,50).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),a.jsx("input",{type:"number",value:k.numWorkers,onChange:M=>T({...k,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),a.jsx("input",{type:"number",value:k.runsPerDay,onChange:M=>T({...k,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),a.jsx("input",{type:"number",value:k.avgRuntime,onChange:M=>T({...k,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),a.jsx("input",{type:"number",value:k.daysPerMonth,onChange:M=>T({...k,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&a.jsxs(Bt.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(SD,{className:"w-5 h-5 text-[var(--text-muted)]"}),a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),a.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[a.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[a.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),a.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&a.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),a.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[a.jsx("option",{value:"aws",children:"AWS"}),a.jsx("option",{value:"azure",children:"Azure"}),a.jsx("option",{value:"gcp",children:"GCP"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),a.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),a.jsx("datalist",{id:"available-regions",children:Km(B,j.manualEnvironment.cloud).slice(0,20).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),a.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>a.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&a.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),a.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[a.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),a.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:W=>{W.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),a.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),a.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),a.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),a.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:W})=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),W]},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),a.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:W})=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),W]},M))})]})]}),a.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[a.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[a.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),a.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),a.jsx("select",{value:p,onChange:M=>h(M.target.value),className:"text-sm",children:ce.map(M=>a.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),a.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[a.jsx("div",{className:"flex items-center gap-4",children:a.jsxs("div",{className:`flex items-center gap-2 ${q?"text-green-500":"text-yellow-500"}`,children:[q?a.jsx(Tu,{className:"w-5 h-5"}):a.jsx(fs,{className:"w-5 h-5"}),a.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),a.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&a.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-green-500",children:pt.passed}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-red-500",children:pt.failed}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:pt.apiErrors}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[pt.avgLocalTime.toFixed(1),"ms"]}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[pt.avgApiTime.toFixed(0),"ms"]}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(pt.byCategory).length>0&&a.jsxs("div",{className:"card p-4 mb-6",children:[a.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),a.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(pt.byCategory).map(([M,{passed:W,failed:Se}])=>a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[a.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),a.jsxs("span",{className:"text-xs text-green-500",children:[W," ✓"]}),Se>0&&a.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&a.jsxs("div",{className:"mb-6",children:[a.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx(Bt.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${S.current/S.total*100}%`}})}),a.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[S.current," / ",S.total," tests completed",s&&a.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),o&&a.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),a.jsx("div",{className:"card overflow-hidden",children:a.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:a.jsxs("tr",{children:[a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),a.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),a.jsx("tbody",{children:Y.map(M=>{const W=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Ne=c===M.id;return a.jsxs(a.Fragment,{children:[a.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${W&&!W.matches?"bg-red-500/5":""} + ${Ne?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>W&&P(M.id),children:[a.jsx("td",{className:"p-3",children:a.jsxs("div",{className:"flex items-center gap-2",children:[W&&(Se?a.jsx(tr,{className:"w-4 h-4 text-[var(--text-muted)]"}):a.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),a.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),a.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),a.jsx("td",{className:"p-3",children:a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),a.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),a.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),a.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W?N(W.localResult.totalCost):"-"}),a.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W!=null&&W.apiResult?N(W.apiResult.totalCost):W!=null&&W.apiError?"Error":"-"}),a.jsx("td",{className:"p-3 text-right font-mono",children:W?a.jsxs("span",{className:W.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[W.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),a.jsx("td",{className:"p-3 text-center",children:Ne?a.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):W?W.matches?a.jsx(Tu,{className:"w-5 h-5 text-green-500 mx-auto"}):a.jsx(k3,{className:"w-5 h-5 text-red-500 mx-auto"}):a.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),W&&Se&&a.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:a.jsxs("td",{colSpan:7,className:"p-4",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),a.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:se(W.localResult.monthlyDBUs)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:N(W.localResult.dbuCost)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:N(W.localResult.vmCost)})]}),a.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-lava-600 font-semibold",children:N(W.localResult.totalCost)})]}),W.localResult.dbuPrice&&a.jsxs("div",{className:"flex justify-between text-[10px]",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),a.jsxs("span",{className:"text-pink-500",children:["$",W.localResult.dbuPrice.toFixed(2)]})]})]})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),W.apiError?a.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:a.jsx("p",{className:"text-red-500 text-xs break-all",children:W.apiError})}):W.apiResult?a.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:se(W.apiResult.monthlyDBUs)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:N(W.apiResult.dbuCost)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:N(W.apiResult.vmCost)})]}),a.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:N(W.apiResult.totalCost)})]})]}):null]})]}),W.discrepancies.length>0&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),a.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:a.jsxs("table",{className:"w-full text-xs",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"text-red-400",children:[a.jsx("th",{className:"text-left pb-1",children:"Field"}),a.jsx("th",{className:"text-right pb-1",children:"Local"}),a.jsx("th",{className:"text-right pb-1",children:"API"}),a.jsx("th",{className:"text-right pb-1",children:"Diff"}),a.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),a.jsx("tbody",{className:"font-mono",children:W.discrepancies.map((O,F)=>a.jsxs("tr",{className:"text-red-300",children:[a.jsx("td",{className:"py-0.5",children:O.field}),a.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),a.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),a.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),a.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},F))})]})})]}),W.apiRawResponse&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),a.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:a.jsx("code",{className:"text-green-300",children:JSON.stringify(W.apiRawResponse,null,2)})})]}),W.apiRequestBody&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),a.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:a.jsx("code",{className:"text-blue-300",children:JSON.stringify(W.apiRequestBody,null,2)})})]}),a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),a.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:W.testCase.environment,config:W.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function E8(){return a.jsx(SN,{children:a.jsxs(_i,{path:"/",element:a.jsx(bV,{}),children:[a.jsx(_i,{index:!0,element:a.jsx(i8,{})}),a.jsx(_i,{path:"calculator",element:a.jsx(X_,{})}),a.jsx(_i,{path:"calculator/:id",element:a.jsx(X_,{})}),a.jsx(_i,{path:"estimate/:id",element:a.jsx(f8,{})}),a.jsx(_i,{path:"test-calculations",element:a.jsx(C8,{})})]})})}function j8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}j8();sp.createRoot(document.getElementById("root")).render(a.jsx(un.StrictMode,{children:a.jsxs(TN,{children:[a.jsx(E8,{}),a.jsx(wP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-FwXcbqWq.js b/lakemeter/backend/static/assets/index-FwXcbqWq.js new file mode 100644 index 00000000..bb914a9a --- /dev/null +++ b/lakemeter/backend/static/assets/index-FwXcbqWq.js @@ -0,0 +1,354 @@ +function a2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var hs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},Ke={};/** + * @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 hl=Symbol.for("react.element"),o2=Symbol.for("react.portal"),l2=Symbol.for("react.fragment"),c2=Symbol.for("react.strict_mode"),u2=Symbol.for("react.profiler"),d2=Symbol.for("react.provider"),p2=Symbol.for("react.context"),f2=Symbol.for("react.forward_ref"),m2=Symbol.for("react.suspense"),h2=Symbol.for("react.memo"),g2=Symbol.for("react.lazy"),_x=Symbol.iterator;function x2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Ia.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;sb(Xm,Ia.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ob=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ob.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=F[se];if(0>>1;ses(De,N))ws(Y,De)?(F[se]=Y,F[w]=N,se=w):(F[se]=De,F[ke]=N,se=ke);else if(ws(Y,N))F[se]=Y,F[w]=N,se=w;else break e}}return Q}function s(F,Q){var N=F.sortIndex-Q.sortIndex;return N!==0?N:F.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(F){for(var Q=n(u);Q!==null;){if(Q.callback===null)r(u);else if(Q.startTime<=F)r(u),Q.sortIndex=Q.expirationTime,t(c,Q);else break;Q=n(u)}}function k(F){if(v=!1,_(F),!g)if(n(c)!==null)g=!0,xe(A);else{var Q=n(u);Q!==null&&oe(k,Q.startTime-F)}}function A(F,Q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Q),p=n(c);p!==null&&(!(p.expirationTime>Q)||F&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var pe=se(p.expirationTime<=Q);Q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(Q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var ke=n(u);ke!==null&&oe(k,ke.startTime-Q),L=!1}return L}finally{p=null,f=N,h=!1}}var S=!1,T=null,D=-1,$=5,j=-1;function H(){return!(e.unstable_now()-j<$)}function X(){if(T!==null){var F=e.unstable_now();j=F;var Q=!0;try{Q=T(!0,F)}finally{Q?re():(S=!1,T=null)}}else S=!1}var re;if(typeof y=="function")re=function(){y(X)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,he=le.port2;le.port1.onmessage=X,re=function(){he.postMessage(null)}}else re=function(){b(X,0)};function xe(F){T=F,S||(S=!0,re())}function oe(F,Q){D=b(function(){F(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_continueExecution=function(){g||h||(g=!0,xe(A))},e.unstable_forceFrameRate=function(F){0>F||125se?(F.sortIndex=N,t(u,F),n(c)===null&&F===n(u)&&(v?(x(D),D=-1):v=!0,oe(k,N-se))):(F.sortIndex=pe,t(c,F),g||h||(g=!0,xe(A))),F},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(F){var Q=f;return function(){var N=f;f=Q;try{return F.apply(this,arguments)}finally{f=N}}}})(mb);fb.exports=mb;var P2=fb.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 R2=m,cr=P2;function ee(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"),sf=Object.prototype.hasOwnProperty,A2=/^[: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]*$/,kx={},Sx={};function T2(e){return sf.call(Sx,e)?!0:sf.call(kx,e)?!1:A2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function L2(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 D2(e,t,n,r){if(t===null||typeof t>"u"||L2(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 Fn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new Fn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new Fn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new Fn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new Fn(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){yn[e]=new Fn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new Fn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new Fn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new Fn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new Fn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new Fn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function M2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Fd(e.type,!1),e;case 11:return e=Fd(e.type.render,!1),e;case 1:return e=Fd(e.type,!0),e;default:return""}}function cf(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 Xi:return"Fragment";case Yi:return"Portal";case af:return"Profiler";case rh:return"StrictMode";case of:return"Suspense";case lf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cf(e.type)||"Memo";case Bs:t=e._payload,e=e._init;try{return cf(e(t))}catch{}}return null}function O2(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 cf(t);case 8:return t===rh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function I2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kl(e){e._valueTracker||(e._valueTracker=I2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 uf(e,t){var n=t.checked;return Ot({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ri(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function df(e,t){bb(e,t);var n=ri(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")?pf(e,t.type,n):t.hasOwnProperty("defaultValue")&&pf(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 pf(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},B2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){B2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Cb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var F2=Ot({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 hf(e,t){if(t){if(F2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gf(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 xf=null;function ah(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vf=null,ha=null,ga=null;function Rx(e){if(e=vl(e)){if(typeof vf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vf(e.stateNode,e.type,t))}}function jb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Nb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(Y2(e)/X2|0)|0}var Yl=64,Xl=4194304;function ho(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function tj(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=wo),Fx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Pj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Aj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Fx);case"textInput":return e=t.data,e===Fx&&Ux?null:e;default:return null}}function Tj(e,t){if(Ji)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=Hs=null,Ji=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Vj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var a=qx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Sf=null,So=null,Ef=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ef||Zi==null||Zi!==Yc(r)||(r=Zi,"selectionStart"in r&&hh(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}),So&&Wo(So,r)||(So=r,r=ru(Sf,"onSelect"),0na||(e.current=Af[na],Af[na]=null,na--)}function bt(e,t){na++,Af[na]=e.current,e.current=t}var si={},Pn=li(si),qn=li(!1),Mi=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Wn(e){return e=e.childContextTypes,e!=null}function iu(){St(qn),St(Pn)}function Zx(e,t,n){if(Pn.current!==si)throw Error(ee(168));bt(Pn,t),bt(qn,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,O2(e)||"Unknown",s));return Ot({},n,r)}function au(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Mi=Pn.current,bt(Pn,e),bt(qn,qn.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,St(qn),St(Pn),bt(Pn,e)):St(qn),bt(qn,n)}var ps=null,Ju=!1,Zd=!1;function u1(e){ps===null?ps=[e]:ps.push(e)}function Zj(e){Ju=!0,u1(e)}function ci(){if(!Zd&&ps!==null){Zd=!0;var e=0,t=dt;try{var n=ps;for(dt=1;e>=a,s-=a,xs=1<<32-Mr(t)+s|n<D?($=T,T=null):$=T.sibling;var j=f(x,T,_[D],k);if(j===null){T===null&&(T=$);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j,T=$}if(D===_.length)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],k),T!==null&&(y=i(T,y,D),S===null?A=T:S.sibling=T,S=T);return Tt&&_i(x,D),A}for(T=r(x,T);D<_.length;D++)$=h(T,x,D,_[D],k),$!==null&&(e&&$.alternate!==null&&T.delete($.key===null?D:$.key),y=i($,y,D),S===null?A=$:S.sibling=$,S=$);return e&&T.forEach(function(H){return t(x,H)}),Tt&&_i(x,D),A}function v(x,y,_,k){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var S=A=null,T=y,D=y=0,$=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?($=T,T=null):$=T.sibling;var H=f(x,T,j.value,k);if(H===null){T===null&&(T=$);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),S===null?A=H:S.sibling=H,S=H,T=$}if(j.done)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,k),j!==null&&(y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return Tt&&_i(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,k),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return e&&T.forEach(function(X){return t(x,X)}),Tt&&_i(x,D),A}function b(x,y,_,k){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var A=_.key,S=y;S!==null;){if(S.key===A){if(A=_.type,A===Xi){if(S.tag===7){n(x,S.sibling),y=s(S,_.props.children),y.return=x,x=y;break e}}else if(S.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Bs&&r0(A)===S.type){n(x,S.sibling),y=s(S,_.props),y.ref=so(x,S,_),y.return=x,x=y;break e}n(x,S);break}else t(x,S);S=S.sibling}_.type===Xi?(y=Ti(_.props.children,x.mode,k,_.key),y.return=x,x=y):(k=Ic(_.type,_.key,_.props,null,x.mode,k),k.ref=so(x,y,_),k.return=x,x=k)}return a(x);case Yi:e:{for(S=_.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=op(_,x.mode,k),y.return=x,x=y}return a(x);case Bs:return S=_._init,b(x,y,S(_._payload),k)}if(mo(_))return g(x,y,_,k);if(Za(_))return v(x,y,_,k);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=ap(_,x.mode,k),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=m1(!0),h1=m1(!1),cu=li(null),uu=null,ia=null,yh=null;function _h(){yh=ia=uu=null}function bh(e){var t=cu.current;St(cu),e._currentValue=t}function Df(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 va(e,t){uu=e,yh=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Hn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(uu===null)throw Error(ee(308));ia=e,uu.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var ji=null;function wh(e){ji===null?ji=[e]:ji.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Es(e,r)}function Es(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 Fs=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 ys(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Es(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Es(e,n)}function Ac(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Ot({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Bi|=a,e.lanes=a,e.memoizedState=p}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{dt=n,tp.transition=r}}function D1(){return Sr().memoizedState}function r5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Or(n,e,r,s),I1(n,t,r)}}function s5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Br(l,a)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Or(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===Mt||t!==null&&t===Mt}function O1(e,t){Eo=fu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:kr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},i5={readContext:kr,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:o0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lc(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lc(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=r5.bind(null,Mt,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:a0,useDebugValue:Ah,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=a0(!1),t=e[0];return e=n5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Mt,s=qr();if(Tt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Ii&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,o0(k1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=fn.identifierPrefix;if(Tt){var n=vs,r=xs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Gr]=t,e[Qo]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(a=gf(n,r),n){case"dialog":kt("cancel",e),kt("close",e),s=r;break;case"iframe":case"object":case"embed":kt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=pu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Tt)return kn(t),null}else 2*Kt()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Kt(),t.sibling=null,n=Lt.current,bt(Lt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?rr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function f5(e,t){switch(xh(t),t.tag){case 1:return Wn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),St(qn),St(Pn),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eh(t),null;case 13:if(St(Lt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return St(Lt),null;case 4:return Ca(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var ac=!1,En=!1,m5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function $f(e,t,n){try{n()}catch(r){zt(e,t,r)}}var v0=!1;function h5(e,t){if(Cf=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jf={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(k){zt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$f(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hf(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Qo],delete t[Rf],delete t[Xj],delete t[Jj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qf(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=su));else if(r!==4&&(e=e.child,e!==null))for(qf(e,t,n),e=e.sibling;e!==null;)qf(e,t,n),e=e.sibling}function Wf(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(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),Ho(e)):Jd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&$f(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){zt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ms(e,t,n),En=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new m5),t.forEach(function(r){var s=S5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Kt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,xu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,a=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cKt()-Mh?Ai(e,0):Dh|=n),Gn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=Es(e,t),e!==null&&(gl(e,t,n),Gn(e,n))}function k5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function S5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qn.current)Hn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Hn=!1,d5(e,t,n);Hn=!!(e.flags&131072)}else Hn=!1,Tt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Wn(r)?(i=!0,au(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Of(t,r,e,n),t=Ff(null,t,r,!0,i,n)):(t.tag=0,Tt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=C5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=f0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(ir=Xs(t.stateNode.containerInfo.firstChild),ar=t,Tt=!0,Dr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Cs(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Lf(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Nf(r,s)?a=null:i!==null&&Nf(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,a,n),t.child;case 6:return e===null&&Lf(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),f0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,bt(cu,r._currentValue),r._currentValue=a,i!==null)if(Br(i.value,a)){if(i.children===s.children&&!qn.current){t=Cs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ys(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Df(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Df(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Dc(e,t),t.tag=1,Wn(r)?(e=!0,au(t)):e=!1,va(t,n),B1(t,r,s),Of(t,r,s,n),Ff(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function E5(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 br(e,t,n,r){return new E5(e,t,n,r)}function Fh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C5(e){if(typeof e=="function")return Fh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Ic(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Fh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ti(n.children,s,i,t);case rh:a=8,s|=8;break;case af:return e=br(12,n,t,s|2),e.elementType=af,e.lanes=i,e;case of:return e=br(13,n,t,s),e.elementType=of,e.lanes=i,e;case lf:return e=br(19,n,t,s),e.elementType=lf,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:a=10;break e;case xb:a=9;break e;case sh:a=11;break e;case ih:a=14;break e;case Bs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ti(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=br(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function ap(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function op(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function j5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,a,l,c){return e=new j5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function N5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=dr;var la=pb.exports,N0=la;rf.createRoot=N0.createRoot,rf.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function D5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||D5()})}function _u(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 Ua(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 M5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Xf(v.location,b,x);u=d()+1;let _=R0(y,u),k=v.createHref(y);try{a.pushState(_,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(k)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Xf(v.location,b,x);u=d();let _=R0(y,u),k=v.createHref(y);a.replaceState(_,"",k),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Zt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,p),c=b,()=>{s.removeEventListener(P0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var A0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(A0||(A0={}));function O5(e,t,n){return n===void 0&&(n="/"),I5(e,t,n)}function I5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let a=fw(e);B5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Zt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Zt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:q5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of mw(i.path))s(i,a,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=mw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function B5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:W5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const F5=/^:[\w-]+$/,U5=3,V5=2,z5=1,$5=10,H5=-2,T0=e=>e==="*";function q5(e,t){let n=e.split("/"),r=n.length;return n.some(T0)&&(r+=H5),t&&(r+=V5),n.filter(s=>!T0(s)).reduce((s,i)=>s+(F5.test(i)?U5:i===""?z5:$5),r)}function W5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function G5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function Q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Y5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 X5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,J5=e=>X5.test(e);function Z5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(J5(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=L0(n.substring(1),"/"):i=L0(n,t)}else i=t;return{pathname:i,search:nN(r),hash:rN(s)}}function L0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lp(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 eN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=eN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Zt(!s.pathname||!s.pathname.includes("?"),lp("?","pathname","search",s)),Zt(!s.pathname||!s.pathname.includes("#"),lp("#","pathname","hash",s)),Zt(!s.search||!s.search.includes("#"),lp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=Z5(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),tN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function sN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const iN=["get",...xw];new Set(iN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=gw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const cN=m.createContext(null);function uN(e){let t=m.useContext(Rs).outlet;return t&&m.createElement(cN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Rs),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Hi),{matches:s}=m.useContext(Rs),{pathname:i}=bl(),a=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function dN(e,t){return pN(e,t)}function pN(e,t,n,r){_l()||Zt(!1);let{navigator:s}=m.useContext(Hi),{matches:i}=m.useContext(Rs),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Zt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=O5(e,{pathname:h}),v=xN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function fN(){let e=bN(),t=sN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const mN=m.createElement(fN,null);class hN extends m.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?m.createElement(Rs.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function gN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Rs.Provider,{value:t},r)}function xN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Zt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||mN,c&&(u<0&&f===0?(kN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(gN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(hN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function vN(e){let t=m.useContext(Wh);return t||Zt(!1),t}function yN(e){let t=m.useContext(aN);return t||Zt(!1),t}function _N(e){let t=m.useContext(Rs);return t||Zt(!1),t}function Sw(e){let t=_N(),n=t.matches[t.matches.length-1];return n.route.id||Zt(!1),n.route.id}function bN(){var e;let t=m.useContext(vw),n=yN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wN(){let{router:e}=vN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const D0={};function kN(e,t,n){D0[e]||(D0[e]=!0)}function SN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function EN(e){return uN(e.context)}function wi(e){Zt(!1)}function CN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Zt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(Hi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function jN(e){let{children:t,location:n}=e;return dN(Jf(t),n)}new Promise(()=>{});function Jf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jf(r.props.children,i));return}r.type!==wi&&Zt(!1),!r.props.index||!r.props.children||Zt(!1);let a={id:r.props.id||i.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&&(a.children=Jf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zf(){return Zf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function PN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RN(e,t){return e.button===0&&(!t||t==="_self")&&!PN(e)}const AN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TN="6";try{window.__reactRouterVersion=TN}catch{}const LN="startTransition",M0=w2[LN];function DN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=L5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&M0?M0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>SN(r),[r]),m.createElement(CN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const MN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ON=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=NN(t,AN),{basename:h}=m.useContext(Hi),g,v=!1;if(typeof u=="string"&&ON.test(u)&&(g=u,MN))try{let _=new URL(window.location.href),k=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=qh(k.pathname,h);k.origin===_.origin&&A!=null?u=A+k.search+k.hash:v=!0}catch{}let b=oN(u,{relative:s}),x=IN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zf({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function IN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=cd(),u=bl(),d=bw(e,{relative:a});return m.useCallback(p=>{if(RN(p,n)){p.preventDefault();let f=r!==void 0?r:_u(u)===_u(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let BN={data:""},FN=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||BN},UN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VN=/\/\*[^]*?\*\/| +/g,B0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ls={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},zN=(e,t,n,r,s)=>{let i=Ew(e),a=ls[i]||(ls[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ls[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=UN.exec(u.replace(VN,""));)d[4]?f.shift():d[3]?(p=d[3].replace(B0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(B0," ").trim();return f[0]})(e);ls[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&ls.g?ls.g:null;return n&&(ls.g=ls[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ls[a],t,r,l),a},$N=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return zN(n.unshift?n.raw?$N(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,FN(t.target),t.g,t.o,t.k)}let Cw,em,tm;ud.bind({g:1});let js=ud.bind({k:1});function HN(e,t,n,r){$s.p=t,Cw=e,em=n,tm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Cw(u,l)}return s}}var qN=e=>typeof e=="function",wu=(e,t)=>qN(e)?e(t):e,WN=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),GN=20,Gh="default",Nw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Nw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:GN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Bc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Aw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),KN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},QN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},YN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||QN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},XN=(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)||WN()}),wl=e=>(t,n)=>{let r=XN(t,e,n);return dd(r.toasterId||KN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Aw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Aw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var JN=1e3,ZN=(e,t="default")=>{let{toasts:n,pausedAt:r}=YN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=JN)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,k)=>k_.visible).slice(...h?[y+1]:[0,y]).reduce((_,k)=>_+(k.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},eP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,tP=js` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,nP=js` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,rP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${eP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${tP} 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: ${nP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,sP=js` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,iP=ui("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: ${sP} 1s linear infinite; +`,aP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,oP=js` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,lP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${aP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${oP} 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; + } +`,cP=ui("div")` + position: absolute; +`,uP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,dP=js` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,pP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${dP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,fP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(pP,null,t):t:n==="blank"?null:m.createElement(uP,null,m.createElement(iP,{...r}),n!=="loading"&&m.createElement(cP,null,n==="error"?m.createElement(rP,{...r}):m.createElement(lP,{...r})))},mP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,hP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,gP="0%{opacity:0;} 100%{opacity:1;}",xP="0%{opacity:1;} 100%{opacity:0;}",vP=ui("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; +`,yP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,_P=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[gP,xP]:[mP(n),hP(n)];return{animation:t?`${js(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${js(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},bP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?_P(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(fP,{toast:e}),a=m.createElement(yP,{...e.ariaProps},wu(e.message,e));return m.createElement(vP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});HN(m.createElement);var wP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},kP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},SP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,EP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=ZN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=kP(p,f);return m.createElement(wP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?SP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(bP,{toast:d,position:p}))}))},We=an;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const pd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class CP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function jP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(CP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const NP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Qh(PP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(jP,{isPresent:n,children:e})),o.jsx(pd.Provider,{value:d,children:e})};function PP(){return new Map}function Tw(e=!0){const t=m.useContext(pd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const uc=e=>e.key||"";function F0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Lw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Tw(a),u=m.useMemo(()=>F0(e),[e]),d=a&&!l?[]:u.map(uc),p=m.useRef(!0),f=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Lw(()=>{p.current=!1,f.current=u;for(let k=0;k{const A=uc(k),S=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach($=>{$||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(NP,{isPresent:S,initial:!p.current||n?void 0:!1,custom:S?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:S?void 0:T,children:k},A)})})},or=e=>e;let Dw=or;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},_s=e=>e*1e3,bs=e=>e/1e3,RP={useManualTiming:!1};function AP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],TP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=dc.reduce((x,y)=>(x[y]=AP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,TP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=a[y];return x[y]=(k,A=!1,S=!1)=>(n||g(),_.schedule(k,A,S)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function LP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const DP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||DP.has(e)}let Iw=e=>!ku(e);function MP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{MP(require("@emotion/is-prop-valid").default)}catch{}function OP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function IP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const fd=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>sl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function BP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function FP(e){const{initial:t,animate:n}=BP(e,m.useContext(fd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const UP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),zP="framerAppearId",Fw="data-"+tg(zP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function $P(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(fd),c=m.useContext(Ow),u=m.useContext(pd),d=m.useContext(Yh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(Uw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&HP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Fw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Lw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),ng.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function HP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function qP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&LP(e);function l(u,d){let p;const f={...m.useContext(Yh),...u,layoutId:WP(u)},{isStatic:h}=f,g=FP(u),v=r(u,h);if(!h&&Xh){GP();const b=KP(f);p=b.MeasureLayout,g.visualElement=$P(s,v,f,t,b.ProjectionNode)}return o.jsxs(fd.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,VP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[UP]=s,c}function WP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function GP(e,t){m.useContext(Ow).strict}function KP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const QP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(QP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),YP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XP=e=>rm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Fc(e){const t=jn(e)?e.get():e;return YP(t)?t.toValue():t}function JP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:ZP(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const zw=e=>(t,n)=>{const r=m.useContext(fd),s=m.useContext(pd),i=()=>JP(e,t,r,s);return n?i():Qh(i)};function ZP(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Fc(i[f]);let{initial:a,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!md(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),eR=$w("var(--"),ig=e=>eR(e)?tR.test(e.split("/*")[0].trim()):!1,tR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Ns=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>Ns(0,1,e)},pc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Jr=kl("%"),Ae=kl("px"),nR=kl("vh"),rR=kl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},sR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},iR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:pc,scaleX:pc,scaleY:pc,scaleZ:pc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:$0,originY:$0,originZ:Ae},H0={...za,transform:Math.round},ag={...sR,...iR,zIndex:H0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:H0},aR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},oR=Va.length;function lR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function fR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return qi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Yw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function mR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],hR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(qi.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{mR(n,r),Et.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},gR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!jn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function xR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return og(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,xR(e,t)),r}function yR(e,t){const n={},r=vR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function _R(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function bR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(rg(n)?_R:yR)(r,i,a,n),u=OP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function wR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...rg(r)?hR:gR,preloadedFeatures:e,useRender:bR(s),createVisualElement:t,Component:r};return qP(a)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class SR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(kR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class ER extends SR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function pg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function fg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",CR={linearEasing:void 0};function jR(e,t){const n=Jh(e);return()=>{var r;return(r=CR[t])!==null&&r!==void 0?r:n()}}const Eu=jR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Eu()?tk(e,t):mg(e)?xo(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const Rr={x:!1,y:!1};function sk(){return Rr.x||Rr.y}function NR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=NR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function PR(e,t,n={}){const[r,s,i]=ik(e,n),a=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,RR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AR(e){return RR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function up(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const TR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(vo.has(n))return;up(n,"down");const s=Q0(()=>{up(n,"up")}),i=()=>up(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function LR(e,t,n={}){const[r,s,i]=ik(e,n),a=l=>{const c=l.currentTarget;if(!Y0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!Y0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!AR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>TR(u,s),s)}),i}function DR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Va]);let Uc;function MR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(xn.isProcessing||RP.useManualTiming?xn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(MR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class IR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=OR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),Et.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new IR(e,t)}function BR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function FR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=XP(i[a]);BR(e,a,l)}}function UR(e){return!!(jn(e)&&e.add)}function am(e,t){const n=e.getValue("willChange");if(UR(n))return n.add(t)}function ck(e){return e.props[Fw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,VR=1e-7,zR=12;function $R(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=uk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>VR&&++l$R(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),fk=Sl(.33,1.53,.69,.99),yg=pk(fk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=pk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function HR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const Po=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qR(e){return e==null}const WR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&WR.test(n)&&n.startsWith(e)||t&&!qR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},GR=e=>Ns(0,255,e),dp={...za,transform:e=>Math.round(GR(e))},Pi={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dp.transform(e)+", "+dp.transform(t)+", "+dp.transform(n)+", "+Po(il.transform(r))+")"};function KR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const om={test:wg("#"),parse:KR,transform:Pi.transform},ua={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(Po(t))+", "+Jr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>Pi.test(e)||om.test(e)||ua.test(e),parse:e=>Pi.test(e)?Pi.parse(e):ua.test(e)?ua.parse(e):om.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Pi.transform(e):ua.transform(e)},QR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(QR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",XR="var",JR="var(",J0="${}",ZR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(ZR,c=>(Sn.test(c)?(r.color.push(i),s.push(bk),n.push(Sn.parse(c))):c.startsWith(JR)?(r.var.push(i),s.push(XR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return ol(e).values}function kk(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function tA(e){const t=wk(e);return kk(e)(t.map(eA))}const ai={test:YR,parse:wk,createTransformer:kk,getAnimatableNone:tA},nA=new Set(["brightness","contrast","saturate","opacity"]);function rA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=nA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const sA=/\b([a-z-]*)\(.*?\)/gu,lm={...ai,getAnimatableNone:e=>{const t=e.match(sA);return t?t.map(rA).join(" "):e}},iA={...ag,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:lm,WebkitFilter:lm},kg=e=>iA[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aA=new Set(["auto","none","0"]);function oA(e,t,n){let r=0,s;for(;re===za||e===Ae,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},lA=new Set(["x","y","z"]),cA=Va.filter(e=>!lA.has(e));function uA(e){const t=[];return cA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Li=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Li).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=uA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Li.forEach(e=>e.complete()),Li.clear()}function Ck(){Li.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function dA(){Ck(),Ek()}class Sg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Li.add(this),cm||(cm=!0,Et.read(Ck),Et.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),pA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fA(e){const t=pA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=fA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return jk(a)?parseFloat(a):a}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),mA={test:e=>e==="auto",parse:e=>e},Rk=[za,Ae,Jr,Is,rR,nR,mA],nv=e=>Rk.find(Pk(e));class Ak extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function hA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(xA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const vA=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>vA?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!gA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Dt=(e,t,n)=>e+(t-e)*n;function pp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function yA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pp(c,l,e+1/3),i=pp(c,l,e),a=pp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function Cu(e,t){return n=>n>0?t:e}const fp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},_A=[om,Pi,ua],bA=e=>_A.find(t=>t.test(e));function sv(e){const t=bA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=yA(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Cu(e,t);const s={...n};return i=>(s.red=fp(n.red,r.red,i),s.green=fp(n.green,r.green,i),s.blue=fp(n.blue,r.blue,i),s.alpha=Dt(n.alpha,r.alpha,i),Pi.transform(s))},wA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(wA),dm=new Set(["none","hidden"]);function kA(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SA(e,t){return n=>Dt(e,t,n)}function Eg(e){return typeof e=="number"?SA:typeof e=="string"?ig(e)?Cu:Sn.test(e)?iv:jA:Array.isArray(e)?Lk:typeof e=="object"?Sn.test(e)?iv:EA:Cu}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Eg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function CA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?kA(e,t):El(Lk(CA(r,s),s.values),n):Cu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Dt(e,t,n):Eg(e)(e,t)}const NA=5;function Mk(e,t,n){const r=Math.max(t-NA,0);return lk(n-e(r),t-r)}const Vt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mp=.001;function PA({duration:e=Vt.duration,bounce:t=Vt.bounce,velocity:n=Vt.velocity,mass:r=Vt.mass}){let s,i,a=1-t;a=Ns(Vt.minDamping,Vt.maxDamping,a),e=Ns(Vt.minDuration,Vt.maxDuration,bs(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=pm(u,a),g=Math.exp(-p);return mp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=pm(Math.pow(u,2),a);return(-s(u)+mp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-mp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=AA(s,i,l);if(e=_s(e),isNaN(c))return{stiffness:Vt.stiffness,damping:Vt.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const RA=12;function AA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function DA(e){let t={velocity:Vt.velocity,stiffness:Vt.stiffness,damping:Vt.damping,mass:Vt.mass,isResolvedFromDuration:!1,...e};if(!av(e,LA)&&av(e,TA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Ns(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Vt.mass,stiffness:s,damping:i}}else{const n=PA(e);t={...t,...n,mass:Vt.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=Vt.visualDuration,t=Vt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=DA({...n,velocity:-bs(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=bs(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Vt.restSpeed.granular:Vt.restSpeed.default),s||(s=y?Vt.restDelta.granular:Vt.restDelta.default);let _;if(v<1){const A=pm(x,v);_=S=>{const T=Math.exp(-v*x*S);return a-T*((g+v*x*b)/A*Math.sin(A*S)+b*Math.cos(A*S))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=S=>{const T=Math.exp(-v*x*S),D=Math.min(A*S,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const k={calculatedDuration:h&&p||null,next:A=>{const S=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?_s(g):Mk(_,A,S));const D=Math.abs(T)<=r,$=Math.abs(a-S)<=s;l.done=D&&$}return l.value=l.done?a:S,l},toString:()=>{const A=Math.min(ek(k),sm),S=tk(T=>k.next(A*T).value,A,30);return A+"ms "+S}};return k}function ov({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),k=D=>{const $=y(D),j=_(D);f.done=Math.abs($)<=u,f.value=f.done?x:j};let A,S;const T=D=>{h(f.value)&&(A=D,S=Ok({keyframes:[f.value,g(f.value)],velocity:Mk(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let $=!1;return!S&&A===void 0&&($=!0,k(D),T(D)),A!==void 0&&D>=A?S.next(D-A):(!$&&k(D),f)}}}const MA=Sl(.42,0,1,1),OA=Sl(0,0,.58,1),Ik=Sl(.42,0,.58,1),IA=e=>Array.isArray(e)&&typeof e[0]!="number",BA={linear:or,easeIn:MA,easeInOut:Ik,easeOut:OA,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:fk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return BA[e];return e};function FA(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=FA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(Ns(e[0],e[i-1],d)):u}function VA(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Dt(n,1,s))}}function zA(e){const t=[0];return VA(t,e.length-1),t}function $A(e,t){return e.map(n=>n*t)}function HA(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=IA(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},a=$A(n&&n.length===t.length?n:zA(t),e),l=UA(a,t,{ease:Array.isArray(s)?s:HA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const qA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Et.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:Zr.now()}},WA={decay:ov,inertia:ov,tween:ju,keyframes:ju,spring:Ok},GA=e=>e/100;class Cg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=fg(n)?n:WA[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=El(GA,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,k=i;if(h){const D=Math.min(this.currentTime,d)/p;let $=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&$--,$=Math.min($,h+1),!!($%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(k=a)),_=Ns(0,1,j)*p}const A=y?{done:!1,value:c[0]}:k.next(_);l&&(A.value=l(A.value));let{done:S}=A;!y&&u!==null&&(S=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return T&&s!==void 0&&(A.value=xd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?bs(t.calculatedDuration):0}get time(){return bs(this.currentTime)}set time(t){t=_s(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=bs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=qA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const KA=new Set(["opacity","clipPath","filter","transform"]);function QA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const YA=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,XA=2e4;function JA(e){return fg(e.type)||e.type==="spring"||!nk(e.ease)}function ZA(e,t){const n=new Cg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Eu()&&eT(i)&&(i=Bk[i]),JA(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=ZA(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=QA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(xd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return bs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return bs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_s(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return or;const{animation:r}=n;G0(r,t)}return or}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new Cg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=_s(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return YA()&&r&&KA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const tT={type:"spring",stiffness:500,damping:25,restSpeed:10},nT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),rT={type:"keyframes",duration:.8},sT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iT=(e,{keyframes:t})=>t.length>2?rT:qi.has(e)?e.startsWith("scale")?nT(t[1]):tT:sT;function aT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>a=>{const l=pg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-_s(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};aT(l)||(d={...d,...iT(e,d)}),d.duration&&(d.duration=_s(d.duration)),d.repeatDelay&&(d.repeatDelay=_s(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=xd(d.keyframes,l);if(f!==void 0)return Et.update(()=>{d.onUpdate(f),d.onComplete()}),new ER([])}return!i&&cv.supports(d)?new cv(d):new Cg(d)};function oT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&oT(d,p))continue;const g={delay:n,...pg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,p,Et);y!==null&&(g.startTime=y,v=!0)}}am(e,p),f.start(jg(p,f,h,e.shouldReduceMotion&&ok.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{Et.update(()=>{l&&FR(e,l)})}),u}function fm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return lT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function lT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(cT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(fm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function cT(e,t){return e.sortNodePosition(t)}function uT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>fm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=fm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const dT=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>uT(e,n,r)))}function hT(e){let t=mT(e),n=uv(),r=!0;const s=c=>(u,d)=>{var p;const f=gd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=Uk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&k,$=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&($=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const F=e.getValue(oe);F&&(F.liveStyle=!1)};for(const oe in re){const F=H[oe],Q=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;rm(F)&&rm(Q)?N=!Zw(F,Q):N=F!==Q,N?F!=null?le(oe):f.add(oe):F!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(S&&T)||$)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function gT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function vi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:vi(!0),whileInView:vi(),whileHover:vi(),whileTap:vi(),whileDrag:vi(),whileFocus:vi(),exit:vi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xT extends di{constructor(t){super(t),t.animationState||(t.animationState=hT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let vT=0;class yT extends di{constructor(){super(...arguments),this.id=vT++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const _T={animation:{Feature:xT},exit:{Feature:yT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const bT=e=>t=>hg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,bT(n),r)}const dv=(e,t)=>Math.abs(e-t);function wT(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=gp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=wT(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=hp(f,this.transformPagePoint),Et.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gp(p.type==="pointercancel"?this.lastMoveEventInfo:hp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=hp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,gp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function hp(e,t){return t?{point:t(e.point)}:e}function pv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gp({point:e},t){return{point:e,delta:pv(e,zk(t)),offset:pv(e,kT(t)),velocity:ST(t,.1)}}function kT(e){return e[0]}function zk(e){return e[e.length-1]}function ST(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const i=bs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const $k=1e-4,ET=1-$k,CT=1+$k,Hk=.01,jT=0-Hk,NT=0+Hk;function ur(e){return e.max-e.min}function PT(e,t,n){return Math.abs(e-t)<=n}function fv(e,t,n,r=.5){e.origin=r,e.originPoint=Dt(t.min,t.max,e.origin),e.scale=ur(n)/ur(t),e.translate=Dt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=ET&&e.scale<=CT||isNaN(e.scale))&&(e.scale=1),(e.translate>=jT&&e.translate<=NT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){fv(e.x,t.x,n.x,r?r.originX:void 0),fv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ur(t)}function RT(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ur(t)}function To(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function AT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Dt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TT(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),Ns(0,1,n)}function MT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function OT(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),Gt=()=>({x:bv(),y:bv()});function gr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function IT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function BT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function xp(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!xp(e)||!xp(t)||!xp(n)}function ki(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Ev=1.0000000000001;function FT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,s=.5){const i=Dt(e.min,e.max,s);gm(e,t,n,i,r)}function fa(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(BT(e.getBoundingClientRect(),t))}function UT(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,VT=new WeakMap;class zT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Gt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ur(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&Et.postRender(()=>g(d,p)),am(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=$T(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&Et.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!fc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=AT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=TT(s.layoutBox,n):this.constraints=!1,this.elastic=OT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=MT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=UT(r,s.root,this.visualElement.getTransformPagePoint());let a=LT(s.layout.layoutBox,i);if(n){const l=n(IT(a));this.hasMutatedConstraints=!!l,l&&(a=qk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!fc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return am(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!fc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Dt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=DT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!fc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Dt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;VT.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),Et.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function fc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $T(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HT extends di{constructor(t){super(t),this.removeGroupControls=or,this.removeListeners=or,this.controls=new zT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||or}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&Et.postRender(()=>e(t,n))};class qT extends di{constructor(){super(...arguments),this.removePointerDownListener=or}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&Et.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},WT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Dt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class GT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;fR(KT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||Et.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Tw(),r=m.useContext(Kh);return o.jsx(GT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const KT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:WT};function QT(e,t,n){const r=jn(e)?e:al(e);return r.start(jg("",r,t,n)),r.animation}function YT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XT=(e,t)=>e.depth-t.depth;class JT{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XT),this.isDirty=!1,this.children.forEach(t)}}function ZT(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return Et.read(r,!0),()=>ii(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],eL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Ae.test(e);function tL(e,t,n,r,s,i){s?(e.opacity=Dt(0,n.opacity!==void 0?n.opacity:1,nL(r)),e.opacityExit=Dt(t.opacity!==void 0?t.opacity:1,0,rL(r))):i&&(e.opacity=Dt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Tv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Tv(e.x,t.x),Tv(e.y,t.y)}function Lv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function sL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Jr.test(t)&&(t=parseFloat(t),t=Dt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Dt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,a){sL(e,t[n],t[r],t[s],t.scale,i,a)}const iL=["x","scaleX","originX"],aL=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,iL,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,aL,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Bv(e,t){return e.min===t.min&&e.max===t.max}function oL(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Fv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Uv(e){return ur(e.x)/ur(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lL{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function cL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,vp=["","X","Y","Z"],uL={visibility:"hidden"},zv=1e3;let dL=0;function yp(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Et,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=dL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(mL),this.nodes.forEach(yL),this.nodes.forEach(_L),this.nodes.forEach(hL),yo&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=ZT(f,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||EL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const k={...pg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=k/1e3;qv(p.x,a.x,A),qv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&oL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Gt()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,tL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Et.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=QT(0,zv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Gt();const p=ur(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=ur(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new lL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&yp("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function pL(e){e.updateLayout()}function fL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(f);f.min=r[p].min,f.max=f.min+h}):rS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=Gt();To(g,n.layoutBox,f.layoutBox);const v=Gt();To(v,r,h.layoutBox),eS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function mL(e){yo&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function gL(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function xL(e){e.isLayoutDirty=!1}function vL(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yL(e){e.resolveTargetDelta()}function _L(e){e.calcProjection()}function bL(e){e.resetSkewAndRotation()}function wL(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Dt(t.translate,0,n),e.scale=Dt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Dt(t.min,n.min,r),e.max=Dt(t.max,n.max,r)}function kL(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function SL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const EL={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:or;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function CL(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!PT(Uv(t),Uv(n),.2)}function jL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const NL=nS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_p={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!_p.current){const e=new NL({});e.mount(window),e.setOptions({layoutScroll:!0}),_p.current=e}return _p.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),PL={pan:{Feature:qT},drag:{Feature:HT,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class RL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class AL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=LR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,bp=new WeakMap,LL=e=>{const t=xm.get(e.target);t&&t(e)},DL=e=>{e.forEach(LL)};function ML({root:e,...t}){const n=e||document;bp.has(n)||bp.set(n,{});const r=bp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(DL,{root:e,...t})),r[s]}function OL(e,t,n){const r=ML(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const IL={some:0,all:1};class BL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:IL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return OL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(FL(t,n))&&this.startObserver()}unmount(){}}function FL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const UL={inView:{Feature:BL},tap:{Feature:TL},focus:{Feature:AL},hover:{Feature:RL}},VL={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function zL(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const $L=[...Rk,Sn,ai],HL=e=>$L.find(Pk(e)),Jv=new WeakMap;function qL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class WL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||zL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Et.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Gt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!HL(s)&&ai.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends WL{constructor(){super(...arguments),this.KeyframeResolver=Ak}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function GL(e){return window.getComputedStyle(e)}class KL extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}else{const r=GL(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){og(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class QL extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Gt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const YL=(e,t)=>rg(e)?new QL(t):new KL(t,{allowProjection:e!==m.Fragment}),XL=wR({..._T,...UL,...PL,...VL},YL),$t=IP(XL);function JL({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const ZL=m.forwardRef(JL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const sD=m.forwardRef(rD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const wp=m.forwardRef(aD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const kp=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const pD=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(fD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Au=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sr=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const fs=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(ED);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const jD=m.forwardRef(CD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Tu=m.forwardRef(RD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(AD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(DD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const BD=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(FD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ms=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef(WD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Sp=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const o3=m.forwardRef(a3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Lu=m.forwardRef(l3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(g3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(w3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const S3=m.forwardRef(k3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(j3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const A3={},iy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(A3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},T3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function L3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var D3=typeof Object.is=="function"?Object.is:L3,M3=La.useState,O3=La.useEffect,I3=La.useLayoutEffect,B3=La.useDebugValue;function F3(e,t){var n=t(),r=M3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return I3(function(){s.value=n,s.getSnapshot=t,Ep(s)&&i({inst:s})},[e,n,t]),O3(function(){return Ep(s)&&i({inst:s}),e(function(){Ep(s)&&i({inst:s})})},[e]),B3(n),n}function Ep(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!D3(e,n)}catch{return!0}}function U3(e,t){return t()}var V3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?U3:F3;xS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:V3;gS.exports=xS;var z3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,$3=z3;function H3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var q3=typeof Object.is=="function"?Object.is:H3,W3=$3.useSyncExternalStore,G3=vd.useRef,K3=vd.useEffect,Q3=vd.useMemo,Y3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=G3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,q3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=W3(e,i[0],i[1]);return K3(function(){a.hasValue=!0,a.value=l},[l]),Y3(l),l};mS.exports=hS;var X3=mS.exports;const J3=qu(X3),vS={},{useDebugValue:Z3}=pn,{useSyncExternalStoreWithSelector:eM}=J3;let ay=!1;const tM=e=>e;function nM(e,t=tM,n){(vS?"production":void 0)!=="production"&&n&&!ay&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ay=!0);const r=eM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Z3(r),r}const oy=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?T3(e):e,n=(r,s)=>nM(t,r,s);return Object.assign(n,t),n},rM=e=>e?oy(e):oy;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:sM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=sM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=bd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Kn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ur("ArrayBuffer");function iM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const aM=bd("string"),Kn=bd("function"),wS=bd("number"),Nl=e=>e!==null&&typeof e=="object",oM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},lM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},cM=Ur("Date"),uM=Ur("File"),dM=Ur("Blob"),pM=Ur("FileList"),fM=e=>Nl(e)&&Kn(e.pipe),mM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Kn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Kn(e.toString)&&e.toString()==="[object FormData]"))},hM=Ur("URLSearchParams"),[gM,xM,vM,yM]=["ReadableStream","Request","Response","Headers"].map(Ur),_M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Da(e)&&e!==Ri;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const a=e&&kS(n,i)||i;Hc(n[a])&&Hc(s)?n[a]=wm(n[a],s):Hc(s)?n[a]=wm({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Kn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),wM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},SM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},EM=(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},CM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),NM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},PM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},RM=Ur("HTMLFormElement"),AM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),TM=Ur("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},LM=e=>{ES(e,(t,n)=>{if(Kn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Kn(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+"'")})}})},DM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},MM=()=>{},OM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function IM(e){return!!(e&&Kn(e.append)&&e[_S]==="FormData"&&e[yd])}const BM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},FM=Ur("AsyncFunction"),UM=e=>e&&(Nl(e)||Kn(e))&&Kn(e.then)&&Kn(e.catch),CS=((e,t)=>e?setImmediate:t?((n,r)=>(Ri.addEventListener("message",({source:s,data:i})=>{s===Ri&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Kn(Ri.postMessage)),VM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ri):typeof process<"u"&&process.nextTick||CS,zM=e=>e!=null&&Kn(e[yd]),z={isArray:$a,isArrayBuffer:bS,isBuffer:jl,isFormData:mM,isArrayBufferView:iM,isString:aM,isNumber:wS,isBoolean:oM,isObject:Nl,isPlainObject:Hc,isEmptyObject:lM,isReadableStream:gM,isRequest:xM,isResponse:vM,isHeaders:yM,isUndefined:Da,isDate:cM,isFile:uM,isBlob:dM,isRegExp:TM,isFunction:Kn,isStream:fM,isURLSearchParams:hM,isTypedArray:jM,isFileList:pM,forEach:Pl,merge:wm,extend:bM,trim:_M,stripBOM:wM,inherits:kM,toFlatObject:SM,kindOf:_d,kindOfTest:Ur,endsWith:EM,toArray:CM,forEachEntry:NM,matchAll:PM,isHTMLForm:RM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:LM,toObjectSet:DM,toCamelCase:AM,noop:MM,toFiniteNumber:OM,findKey:kS,global:Ri,isContextDefined:SS,isSpecCompliantForm:IM,toJSONObject:BM,isAsyncFn:FM,isThenable:UM,setImmediate:CS,asap:VM,isIterable:zM};function Oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}z.inherits(Oe,Error,{toJSON:function(){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:z.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Oe.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Oe,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Oe.from=(e,t,n,r,s,i)=>{const a=Object.create(jS);z.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Oe.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const $M=null;function km(e){return z.isPlainObject(e)||z.isArray(e)}function PS(e){return z.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function HM(e){return z.isArray(e)&&!e.some(km)}const qM=z.toFlatObject(z,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!z.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!z.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&z.isSpecCompliantForm(t);if(!z.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(z.isDate(g))return g.toISOString();if(z.isBoolean(g))return g.toString();if(!c&&z.isBlob(g))throw new Oe("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(g)||z.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(z.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(z.isArray(g)&&HM(g)||(z.isFileList(g)||z.endsWith(v,"[]"))&&(x=z.toArray(g)))return v=PS(v),x.forEach(function(_,k){!(z.isUndefined(_)||_===null)&&t.append(a===!0?cy([v],k,i):a===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(qM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!z.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),z.forEach(g,function(x,y){(!(z.isUndefined(x)||x===null)&&s.call(t,x,z.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!z.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function WM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function AS(e,t,n){if(!t)return e;const r=n&&n.encode||WM;z.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=z.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){z.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},GM=typeof URLSearchParams<"u"?URLSearchParams:Rg,KM=typeof FormData<"u"?FormData:null,QM=typeof Blob<"u"?Blob:null,YM={isBrowser:!0,classes:{URLSearchParams:GM,FormData:KM,Blob:QM},protocols:["http","https","file","blob","url","data"]},Ag=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,XM=Ag&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),JM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ZM=Ag&&window.location.href||"http://localhost",e4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ag,hasStandardBrowserEnv:XM,hasStandardBrowserWebWorkerEnv:JM,navigator:Sm,origin:ZM},Symbol.toStringTag,{value:"Module"})),Cn={...e4,...YM};function t4(e,t){return wd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&z.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function n4(e){return z.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function r4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&z.isArray(s)?s.length:a,c?(z.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!z.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&z.isArray(s[a])&&(s[a]=r4(s[a])),!l)}if(z.isFormData(e)&&z.isFunction(e.entries)){const n={};return z.forEachEntry(e,(r,s)=>{t(n4(r),s,n,0)}),n}return null}function s4(e,t,n){if(z.isString(e))try{return(t||JSON.parse)(e),z.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return s?JSON.stringify(LS(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return t4(t,this.formSerializer).toString();if((l=z.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),s4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Oe.from(l,Oe.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const i4=z.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"]),a4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&i4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},py=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:z.isArray(e)?e.map(qc):String(e)}function o4(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 l4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cp(e,t,n,r,s){if(z.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!z.isString(t)){if(z.isString(r))return t.indexOf(r)!==-1;if(z.isRegExp(r))return r.test(t)}}function c4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function u4(e,t){const n=z.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Qn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=z.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=qc(l))}const a=(l,c)=>z.forEach(l,(u,d)=>i(u,d,c));if(z.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(z.isString(t)&&(t=t.trim())&&!l4(t))a(a4(t),n);else if(z.isObject(t)&&z.isIterable(t)){let l={},c,u;for(const d of t){if(!z.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?z.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=z.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return o4(s);if(z.isFunction(n))return n.call(this,s,r);if(z.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=z.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Cp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=z.findKey(r,a);l&&(!n||Cp(r,r[l],l,n))&&(delete r[l],s=!0)}}return z.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Cp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return z.forEach(this,(s,i)=>{const a=z.findKey(r,i);if(a){n[a]=qc(s),delete n[i];return}const l=t?c4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return z.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&z.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(s=>r.set(s)),r}static accessor(t){const r=(this[py]=this[py]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(u4(s,a),r[l]=!0)}return z.isArray(t)?t.forEach(i):i(t),this}};Qn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);z.reduceDescriptors(Qn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});z.freezeMethods(Qn);function jp(e,t){const n=this||Rl,r=t||n,s=Qn.from(r.headers);let i=r.data;return z.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Oe.call(this,e??"canceled",Oe.ERR_CANCELED,t,n),this.name="CanceledError"}z.inherits(Ha,Oe,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Oe("Request failed with status code "+n.status,[Oe.ERR_BAD_REQUEST,Oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function d4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function p4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Du=(e,t,n=3)=>{let r=0;const s=p4(50,250);return f4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},fy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>z.asap(()=>e(...t)),m4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,h4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];z.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),z.isString(r)&&l.push(`path=${r}`),z.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),z.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function g4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function x4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!g4(t);return e&&(r||n==!1)?x4(e,t):t}const hy=e=>e instanceof Qn?{...e}:e;function Ui(e,t){t=t||{};const n={};function r(u,d,p,f){return z.isPlainObject(u)&&z.isPlainObject(d)?z.merge.call({caseless:f},u,d):z.isPlainObject(d)?z.merge({},d):z.isArray(d)?d.slice():d}function s(u,d,p,f){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!z.isUndefined(d))return r(void 0,d)}function a(u,d){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(hy(u),hy(d),p,!0)};return z.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);z.isUndefined(f)&&p!==l||(n[d]=f)}),n}const IS=e=>{const t=Ui({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Qn.from(a),t.url=AS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),z.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(z.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&z.isFunction(r)&&(r=r(t)),r||r!==!1&&m4(t.url))){const c=s&&i&&h4.read(i);c&&a.set(s,c)}return t},v4=typeof XMLHttpRequest<"u",y4=v4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const a=Qn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Qn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Oe("Request aborted",Oe.ECONNABORTED,e,b)),b=null)},b.onerror=function(k){const A=k&&k.message?k.message:"Network Error",S=new Oe(A,Oe.ERR_NETWORK,e,b);S.event=k||null,r(S),b=null},b.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||TS;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new Oe(k,A.clarifyTimeoutError?Oe.ETIMEDOUT:Oe.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&z.forEach(a.toJSON(),function(k,A){b.setRequestHeader(A,k)}),z.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Du(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Du(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=d4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Oe("Unsupported protocol "+y+":",Oe.ERR_BAD_REQUEST,e));return}b.send(i||null)})},_4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Oe?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Oe(`timeout ${t} of ms exceeded`,Oe.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>z.asap(l),c}},b4=function*(e,t){let n=e.byteLength;if(n{const s=w4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=z,S4=(({Request:e,Response:t})=>({Request:e,Response:t}))(z.global),{ReadableStream:vy,TextEncoder:yy}=z.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},E4=e=>{e=z.merge.call({skipUndefined:!0},S4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),a=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(Cn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&_y(()=>z.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Oe(`Response type '${g}' is not supported`,Oe.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(z.isBlob(g))return g.size;if(z.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(z.isArrayBufferView(g)||z.isArrayBuffer(g))return g.byteLength;if(z.isURLSearchParams(g)&&(g=g+""),z.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=z.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:k,onDownloadProgress:A,onUploadProgress:S,responseType:T,headers:D,withCredentials:$="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=_4([y,_&&_.toAbortSignal()],k),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let he;try{if(S&&u&&b!=="get"&&b!=="head"&&(he=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(z.isFormData(x)&&(pe=se.headers.get("content-type"))&&D.setContentType(pe),se.body){const[L,ke]=fy(he,Du(my(S)));x=gy(se.body,xy,L,ke)}}z.isString($)||($=$?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?$:void 0};re=i&&new n(v,oe);let F=await(i?H(re,j):H(v,oe));const Q=d&&(T==="stream"||T==="response");if(d&&(A||Q&&le)){const se={};["status","statusText","headers"].forEach(De=>{se[De]=F[De]});const pe=z.toFiniteNumber(F.headers.get("content-length")),[L,ke]=A&&fy(pe,Du(my(A),!0))||[];F=new r(gy(F.body,xy,L,()=>{ke&&ke(),le&&le()}),se)}T=T||"text";let N=await p[z.findKey(p,T)||"text"](F,g);return!Q&&le&&le(),await new Promise((se,pe)=>{MS(se,pe,{data:N,headers:Qn.from(F.headers),status:F.status,statusText:F.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Oe("Network Error",Oe.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Oe.from(xe,xe&&xe.code,g,re)}}},C4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=C4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:E4(t)),d=u;return u};BS();const Tg={http:$M,xhr:y4,fetch:{get:BS}};z.forEach(Tg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,j4=e=>z.isFunction(e)||e===null||e===!1;function N4(e,t){e=z.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(by).join(` +`):" "+by(a[0]):"as no adapter specified";throw new Oe("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:N4,adapters:Tg};function Np(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function wy(e){return Np(e),e.headers=Qn.from(e.headers),e.data=jp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Np(e),r.data=jp.call(e,e.transformResponse,r),r.headers=Qn.from(r.headers),r},function(r){return DS(r)||(Np(e),r&&r.response&&(r.response.data=jp.call(e,e.transformResponse,r.response),r.response.headers=Qn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+US+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Oe(s(a," has been removed"+(n?" in "+n:"")),Oe.ERR_DEPRECATED);return n&&!ky[a]&&(ky[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function P4(e,t,n){if(typeof e!="object")throw new Oe("options must be an object",Oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Oe("option "+i+" must be "+c,Oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Oe("Unknown option "+i,Oe.ERR_BAD_OPTION)}}const Wc={assertOptions:P4,validators:kd},Hr=Wc.validators;let Di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ui(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(z.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&z.merge(i.common,i[n.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Qn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 VS(function(s){t=s}),cancel:t}}};function A4(e){return function(n){return e.apply(null,n)}}function T4(e){return z.isObject(e)&&e.isAxiosError===!0}const Em={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(Em).forEach(([e,t])=>{Em[t]=e});function zS(e){const t=new Di(e),n=yS(Di.prototype.request,t);return z.extend(n,Di.prototype,t,{allOwnKeys:!0}),z.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Ui(e,s))},n}const Qt=zS(Rl);Qt.Axios=Di;Qt.CanceledError=Ha;Qt.CancelToken=R4;Qt.isCancel=DS;Qt.VERSION=US;Qt.toFormData=wd;Qt.AxiosError=Oe;Qt.Cancel=Qt.CanceledError;Qt.all=function(t){return Promise.all(t)};Qt.spread=A4;Qt.isAxiosError=T4;Qt.mergeConfig=Ui;Qt.AxiosHeaders=Qn;Qt.formToJSON=e=>LS(z.isHTMLForm(e)?new FormData(e):e);Qt.getAdapter=FS.getAdapter;Qt.HttpStatusCode=Em;Qt.default=Qt;const{Axios:B8,AxiosError:F8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=Qt,ye=Qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Cm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const L4=()=>{jm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Cm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const D4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},M4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},O4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},I4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},B4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},F4=async e=>{await ye.delete(`/estimates/${e}`)},U4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},V4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},z4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},$4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},H4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},q4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},W4=async e=>{await ye.delete(`/line-items/${e}`)},G4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},K4=async e=>{await ye.post("/estimates/reorder",e)},Q4=async()=>{const{data:e}=await ye.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},Y4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},X4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},J4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Z4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},eO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},Ey=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},tO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},nO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Cy=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},rO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},sO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},iO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},aO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},oO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},lO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},cO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},uO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},dO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},pO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},fO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ay=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?mO(n):pO(n);case"ALL_PURPOSE":return t?hO(n):fO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return rE(n);case"DATABRICKS_APPS":return eE(n);case"CLEAN_ROOM":return gO(n);case"AI_PARSE":return tE(n);case"SHUTTERSTOCK_IMAGEAI":return nE(n);case"LAKEFLOW_CONNECT":return xO(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function cs(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([cs("instance-dbu-rates.json"),cs("dbu-multipliers.json"),cs("dbu-rates.json"),cs("dbsql-rates.json"),cs("dbsql-warehouse-config.json"),cs("vector-search-rates.json"),cs("model-serving-rates.json"),cs("fmapi-databricks-rates.json"),cs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),sE()}}function sE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function iE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Lg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function aE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Ty;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},jO="v7",ds=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(ds);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(ds),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(ds),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(ds),null;return t}catch{return localStorage.removeItem(ds),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(ds,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(ds)}catch{}}const Pp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Rp=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Ap=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Dp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Mp=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],ws=rM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"}],cloudProviders:Pp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Rp,dbsqlWarehouseTypes:[],dltEditions:Ap,fmapiProviders:Mp,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tp,vmPaymentOptions:Lp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Dp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:sE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await D4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Sy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await O4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await F4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await $4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await H4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await q4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await W4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]},p=u.workloadTypes||[],f=new Set(p.map(g=>g.workload_type)),h=[...p,...r.workloadTypes.filter(g=>!f.has(g.workload_type))];e({workloadTypes:h.length>0?h:r.workloadTypes,cloudProviders:u.cloudProviders||Pp,dbsqlSizes:u.dbsqlSizes||Rp,dltEditions:u.dltEditions||Ap,fmapiProviders:u.fmapiProviders||Mp,vmPricingTiers:u.vmPricingTiers||Tp,vmPaymentOptions:u.vmPaymentOptions||Lp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Dp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,k,A,S,T,D,$,j,H,X,re,le]=await Promise.all([Q4().catch(()=>r.workloadTypes),X4().catch(()=>Pp),J4().catch(()=>Rp),Z4().catch(()=>Ap),eO().catch(()=>Mp),cO().catch(()=>Tp),uO().catch(()=>Lp),iO().catch(()=>null),oO().catch(()=>null),Py().catch(()=>Dp),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),sO(s).catch(()=>[]),aO(s).catch(()=>[]),Ey().catch(()=>[]),Cy().catch(()=>[]),Nm().catch(()=>[])]),he={aws:A,azure:S,gcp:T},xe=A,oe={};j.forEach(se=>{const pe=`${se.model}:${se.rate_type}`;oe[pe]=se});const F={};H.forEach(se=>{const pe=`${se.provider}:${se.model}:${se.rate_type}`;F[pe]=se});const Q=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Q.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,vectorSearchModes:$,fmapiDatabricksRates:oe,fmapiProprietaryRates:F,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await Y4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Ey();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Cy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await lO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=nO({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Lg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await HS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ay(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ay(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await rE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await eE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"AI_PARSE":c=await tE({...l,mode:"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1});break;case"SHUTTERSTOCK_IMAGEAI":c=await nE({...l,images_per_month:n.shutterstock_images||100});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function Ly(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function oE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Rm(e){return e.toLowerCase()}class Yn{constructor(t,n){this.attribute=n,this.property=t}}Yn.prototype.attribute="";Yn.prototype.booleanish=!1;Yn.prototype.boolean=!1;Yn.prototype.commaOrSpaceSeparated=!1;Yn.prototype.commaSeparated=!1;Yn.prototype.defined=!1;Yn.prototype.mustUseProperty=!1;Yn.prototype.number=!1;Yn.prototype.overloadedBoolean=!1;Yn.prototype.property="";Yn.prototype.spaceSeparated=!1;Yn.prototype.space=void 0;let BO=0;const Ue=Wi(),Xt=Wi(),Am=Wi(),ne=Wi(),_t=Wi(),_a=Wi(),nr=Wi();function Wi(){return 2**++BO}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ue,booleanish:Xt,commaOrSpaceSeparated:nr,commaSeparated:_a,number:ne,overloadedBoolean:Am,spaceSeparated:_t},Symbol.toStringTag,{value:"Module"})),Op=Object.keys(Tm);class Dg extends Yn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Dg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=oE([lE,FO,dE,pE,fE],"html"),Mg=oE([lE,UO,dE,pE,fE],"svg");function KO(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,By="/",Fy="*",Ei="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(By!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;Ei!=e.charAt(v)&&(Fy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,Ei===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:Uy(v[0].replace(Iy,Ei)),value:b?Uy(b[0].replace(Iy,Ei)):Ei});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(tI,Ei):Ei}var aI=iI,oI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,Vy):e=e.replace(fI,Vy),e.replace(dI,gI))};Sd.camelCase=xI;var vI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Og),_I=Sd;function Lm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Lm.default=Lm;var bI=Lm;const wI=qu(bI),mE=hE("end"),Ig=hE("start");function hE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Ig(e),n=mE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),gE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=xE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function xE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=yE(e,t.tagName,!1),a=II(e,t);let l=Ug(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:yE(e,t.name,!0),a=BI(e,t),l=Ug(e,t);return vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Fg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function vE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=FI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function BI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(lr(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function bE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=pi(/[A-Za-z]/),Nn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function gt(e){return e!==null&&(e<0||e===32)}function Ge(e){return e===-2||e===-1||e===32}const Ed=pi(new RegExp("\\p{P}|\\p{S}","u")),Vi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Je(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return Ge(c)?(e.enter(n),l(c)):t(c)}function l(c){return Ge(c)&&i++a))return;const T=t.events.length;let D=T,$,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if($){j=t.events[D][1].end;break}$=!0}for(x(r),S=T;S_;){const A=n[k];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tB(e,t,n){return Je(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||gt(e)||Vi(e))return 1;if(Ed(e))return 2}function Cd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Ky(p,-c),Ky(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,Cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,lr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&Ge(S)?Je(e,y,"linePrefix",i+1)(S):y(S)}function y(S){return S===null||Ne(S)?e.check(Qy,v,k)(S):(e.enter("codeFlowValue"),_(S))}function _(S){return S===null||Ne(S)?(e.exit("codeFlowValue"),y(S)):(e.consume(S),_)}function k(S){return e.exit("codeFenced"),t(S)}function A(S,T,D){let $=0;return j;function j(he){return S.enter("lineEnding"),S.consume(he),S.exit("lineEnding"),H}function H(he){return S.enter("codeFencedFence"),Ge(he)?Je(S,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(he):X(he)}function X(he){return he===l?(S.enter("codeFencedFenceSequence"),re(he)):D(he)}function re(he){return he===l?($++,S.consume(he),re):$>=a?(S.exit("codeFencedFenceSequence"),Ge(he)?Je(S,le,"whitespace")(he):le(he)):D(he)}function le(he){return he===null||Ne(he)?(S.exit("codeFencedFence"),T(he)):D(he)}}}function fB(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hB},mB={partial:!0,tokenize:gB};function hB(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Je(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mB,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gB(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Je(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xB={name:"codeText",previous:yB,resolve:vB,tokenize:_B};function vB(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function jE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||gt(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!Ge(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function PE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Je(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ge(s)?Je(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NB={name:"definition",tokenize:RB},PB={partial:!0,tokenize:AB};function RB(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return NE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return gt(h)?Do(e,u)(h):u(h)}function u(h){return jE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PB,p,p)(h)}function p(h){return Ge(h)?Je(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AB(e,t,n){return r;function r(l){return gt(l)?Do(e,s)(l):n(l)}function s(l){return PE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Ge(l)?Je(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TB={name:"hardBreakEscape",tokenize:LB};function LB(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DB={name:"headingAtx",resolve:MB,tokenize:OB};function MB(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},lr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OB(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||gt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):Ge(d)?Je(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||gt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IB=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],BB={concrete:!0,name:"htmlFlow",resolveTo:VB,tokenize:zB},FB={partial:!0,tokenize:HB},UB={partial:!0,tokenize:$B};function VB(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zB(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):On(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const ke="CDATA[";return L===ke.charCodeAt(l++)?(e.consume(L),l===ke.length?r.interrupt?t:X:g):n(L)}function v(L){return On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||gt(L)){const ke=L===47,De=a.toLowerCase();return!ke&&!i&&Xy.includes(De)?(s=1,r.interrupt?t(L):X(L)):IB.includes(a.toLowerCase())?(s=6,ke?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return Ge(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||On(L)?(e.consume(L),k):Ge(L)?(e.consume(L),_):j(L)}function k(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),k):A(L)}function A(L){return L===61?(e.consume(L),S):Ge(L)?(e.consume(L),A):_(L)}function S(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):Ge(L)?(e.consume(L),S):D(L)}function T(L){return L===c?(e.consume(L),c=null,$):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||gt(L)?A(L):(e.consume(L),D)}function $(L){return L===47||L===62||Ge(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):Ge(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Q):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(FB,pe,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UB,le,pe)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),he}function he(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",F):X(L)}function F(L){if(L===62){const ke=a.toLowerCase();return Xy.includes(ke)?(e.consume(L),se):X(L)}return On(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),F):X(L)}function Q(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),se)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $B(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HB(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qB={name:"htmlText",tokenize:WB};function WB(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):On(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):On(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),k):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function k(N){return N===62?xe(N):_(N)}function A(N){return On(N)?(e.consume(N),S):n(N)}function S(N){return N===45||Nn(N)?(e.consume(N),S):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):Ge(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||gt(N)?$(N):n(N)}function $(N){return N===47?(e.consume(N),xe):N===58||N===95||On(N)?(e.consume(N),j):Ne(N)?(a=$,oe(N)):Ge(N)?(e.consume(N),$):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):Ge(N)?(e.consume(N),H):$(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):Ge(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,he):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||gt(N)?$(N):(e.consume(N),le)}function he(N){return N===47||N===62||gt(N)?$(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),F}function F(N){return Ge(N)?Je(e,Q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Q(N)}function Q(N){return e.enter("htmlTextData"),a(N)}}const $g={name:"labelEnd",resolveAll:YB,resolveTo:XB,tokenize:JB},GB={tokenize:ZB},KB={tokenize:eF},QB={tokenize:tF};function YB(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),Ge(u)?Je(e,l,"whitespace")(u):l(u))}}const zn={continuation:{tokenize:dF},exit:fF,name:"list",tokenize:uF},lF={partial:!0,tokenize:mF},cF={partial:!0,tokenize:pF};function uF(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lF,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return Ge(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dF(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Je(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Ge(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cF,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Je(e,e.attempt(zn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pF(e,t,n){const r=this;return Je(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fF(e){e.exit(this.containerState.type)}function mF(e,t,n){const r=this;return Je(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ge(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:hF,tokenize:gF};function hF(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gF(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Ge(u)?Je(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xF={tokenize:vF};function vF(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Je(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kB,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yF={resolveAll:AE()},_F=RE("string"),bF=RE("text");function RE(e){return{resolveAll:AE(e==="text"?wF:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MF(e,t){let n=-1;const r=[];let s;for(;++n0){const Ve=G.tokenStack[G.tokenStack.length-1];(Ve[1]||e_).call(G,void 0,Ve[0])}for(B.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QF(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YF(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XF(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JF(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZF(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function DE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):ME(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=mE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WF,break:GF,code:KF,delete:QF,emphasis:YF,footnoteReference:XF,heading:JF,html:ZF,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const OE=-1,jd=0,Mo=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,IE=7,BE=8,s_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case jd:case OE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case Hg:return n(new Date(a),s);case qg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case IE:{const{name:l,message:c}=a;return n(new s_[l](c),s)}case BE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new s_[i](a),s)};return r},i_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Ou,Ki];case"Date":return[Hg,Ki];case"RegExp":return[qg,Ki];case"Map":return[Wg,Ki];case"Set":return[Gg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[IE,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case jd:{let d=a;switch(c){case"bigint":l=BE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([OE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Ou:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!yc(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case Hg:return s([l,a.toISOString()],a);case qg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Wg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(yc(uo(f))||yc(uo(h))))&&d.push([i(f),i(h)]);return p}case Gg:{const d=[],p=s([l,d],a);for(const f of a)(e||!yc(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(a_(e,t)):structuredClone(e):(e,t)=>i_(a_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return N6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=FE,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function o_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function F6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,VE=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):VE.call(t)==="[object Array]"},f_=function(t){if(!t||VE.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Wr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Fm(v)&&Fm(h)&&(h=Up(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Qg().freeze();function Hp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Fm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return rU(e)?e:new zE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return nU().use(qF).use(n).use(F6,r).use(t)}function dU(e){const t=e.children||"",n=new zE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Kg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Ip)if(Object.hasOwn(Ip,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ip[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Nd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:S}:void 0),S===!1?f.lastIndex=k+1:(g!==k&&y.push({type:"text",value:u.value.slice(g,k)}),Array.isArray(S)?y.push(...S):S&&y.push(S),g=k+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function $E(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Vi(n)||Ed(n))&&(!t||n!==47)}HE.peek=FU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function BU(e){this.exit(e)}function FU(){return"["}function HE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:BU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?qE:zU))),u(),c}}function zU(e,t,n){return t===0?e:qE(e,t,n)}function qE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];WE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:WE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function WE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GE.peek=l7;function GE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}KE.peek=d7;function KE(e){return e.value||""}function d7(){return"<"}QE.peek=p7;function QE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}YE.peek=f7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}XE.peek=m7;function XE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}ZE.peek=h7;function ZE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(JE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return JE(e,n)?"<":"["}eC.peek=g7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Xg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),tC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nC.peek=C7;function nC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(tC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rC={blockquote:JU,break:S_,code:s7,definition:a7,emphasis:GE,hardBreak:S_,heading:u7,html:KE,image:QE,imageReference:YE,inlineCode:XE,link:ZE,linkReference:eC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:nC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:E_,tableHeader:E_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Yp,tableHeader:Yp,tableRow:Yp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Yp(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||gt(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return gt(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||gt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return gt(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Je(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Je(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?S:c;return re===S&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):Ge(j)?Je(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||gt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,Ge(j)?Je(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return Ge(j)?Je(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?k(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return Ge(j)?Je(e,k,"whitespace")(j):k(j)}function k(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function S(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):Ge(j)?Je(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||gt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?$:D)}function $(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return gt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):Ge(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Je(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return bE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[k,A]=m.useState([]),[S,T]=m.useState([]),[D,$]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,he]=m.useState(!1),[xe,oe]=m.useState(380),[F,Q]=m.useState(!1),[N,se]=m.useState(!0),[pe,L]=m.useState(null),[ke,De]=m.useState(""),[w,Y]=m.useState(null),ue=l??xe,_e=c??oe,ve=m.useRef(null),ot=m.useRef(null),Ze=m.useRef(null),I=m.useRef(null),st=m.useRef(null),xt=m.useRef(!1),lt=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,$e=a[Te];$e!=null&&$e.total&&(U+=$e.total)}),U},[a,i]),mt=m.useCallback(U=>{U.preventDefault(),Q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!F)return;const $e=window.innerWidth-Te.clientX,K=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,$e),K))},Z=()=>{Q(!1)};return F&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[F]);const W=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;xt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(xt.current=!1)},[g]);const E=m.useCallback(()=>{const U=ot.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;xt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Ze.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),q=m.useCallback((U,Z)=>{L(U),De(Z)},[]),Se=m.useCallback(()=>{L(null),De("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),Y(U),setTimeout(()=>Y(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,B]=m.useState(null),[G,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!ke.trim()||d.findIndex(K=>K.id===U)===-1)return;const Te=ke.trim();if(T([]),L(null),De(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const $e={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([$e]),B(Te),ae(!0)},[ke,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,lt,ie]);const Ve=m.useCallback(async(U,Z)=>{var ut;const Te=U||f.trim();if(!Te||g)return;const $e={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(nt=>[...nt,$e]),h(""),v(!0),re(null);const K=`assistant-${Date.now()}`;p(nt=>[...nt,{id:K,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const nt=(i||k||[]).map(Ie=>{const Me=Ie.line_item_id||Ie.item_id||Ie.draft_id,Re=a==null?void 0:a[Me];return{...Ie,total_cost:(Re==null?void 0:Re.total)||Ie.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Ie.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Ie.vm_cost||0}}),Bt=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:$e.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:nt,mode:u,stream:!0}),signal:I.current.signal});if(!Bt.ok)throw new Error(`HTTP ${Bt.status}: ${Bt.statusText}`);const ft=(ut=Bt.body)==null?void 0:ut.getReader();if(!ft)throw new Error("No response body");const vt=new TextDecoder;let Ct="",ht="",ze=[];for(;;){const{done:Ie,value:Me}=await ft.read();if(Ie)break;Ct+=vt.decode(Me,{stream:!0});const Re=Ct.split(` +`);Ct=Re.pop()||"";for(const Yt of Re)if(Yt.startsWith("data: ")){const jt=Yt.slice(6);if(jt==="[DONE]")continue;try{const Ee=JSON.parse(jt);if(Ee.type==="start")x(Ee.conversation_id);else if(Ee.type==="content")ht+=Ee.content,p(Nt=>Nt.map(Le=>Le.id===K?{...Le,content:ht,isThinking:!1}:Le));else if(Ee.type==="tool_result")ze.push({tool:Ee.tool,result:Ee.result});else if(Ee.type==="proposal")Ee.workload&&Ee.workload.proposal_id&&T(Nt=>Nt.some(Jn=>Jn.proposal_id===Ee.workload.proposal_id)?Nt:[...Nt,Ee.workload]);else if(Ee.type==="done")ht.includes("Error getting response")||ht.includes("AI service error")||(Ee.estimate&&_(Ee.estimate),Ee.workloads&&A(Ee.workloads),Ee.proposed_workloads&&Ee.proposed_workloads.length>0&&T(Ee.proposed_workloads));else if(Ee.type==="error")throw new Error(Ee.content)}catch{}}}p(Ie=>Ie.map(Me=>Me.id===K?{...Me,content:ht,isStreaming:!1,toolResults:ze}:Me))}catch(nt){if(nt.name==="AbortError")return;console.error("Chat error:",nt),re(nt.message||"Failed to get response"),p(Bt=>Bt.filter(ft=>ft.id!==K))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,k,a]);m.useEffect(()=>{O&&!g&&(Ve(O,G),B(null),ae(!1))},[O,G,g,Ve]);const pt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Ve())},it=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ye=async U=>{if(b){$(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T($e=>$e.filter(K=>K.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p($e=>{var K;return[...$e,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(K=Te.workload_config)==null?void 0:K.workload_name}" added to estimate.`,timestamp:new Date}]})}catch($e){p(K=>[...K,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${$e.message||"Database error"}. Please try again.`,timestamp:new Date}]),re($e.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},ct=async U=>{if(b){$(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=S.find($e=>$e.proposal_id===U);T($e=>$e.filter(K=>K.proposal_id!==U)),p($e=>[...$e,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Xe=async()=>{for(const U of S)await Ye(U.proposal_id)},It=async()=>{for(const U of S)await ct(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>he(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx($c,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(fs,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:st,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ue}px)`},children:[o.jsx("div",{onMouseDown:mt,className:de("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",F&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ms,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:it,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(KD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(OD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),S.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ty,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[S.length," Proposed Workload",S.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(sr,{className:"w-4 h-4 text-amber-600"}):o.jsx(fs,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Xe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",S.length,")"]}),o.jsx("button",{onClick:It,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:S.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:de("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ye(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Au,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:ot,onScroll:E,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:de("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:de("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:ke,onChange:Z=>De(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:de("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var $e;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[($e=Z.result)!=null&&$e.success?o.jsx(Au,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:de("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:de("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(wD,{className:"w-3.5 h-3.5"}):o.jsx(SD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>q(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(n3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:it,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(fs,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Ve(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Ze,value:f,onChange:W,onKeyDown:pt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Ve(),disabled:!g&&!f.trim(),className:de("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(dS,{className:"w-4 h-4"}):o.jsx(JD,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:o3}],N_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Xp=[{value:"light",label:"Light",icon:y3},{value:"dark",label:"Dark",icon:YD},{value:"system",label:"System",icon:PD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=R3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),k=m.useRef(null),{currentUser:A,isAuthenticated:S,authError:T,fetchCurrentUser:D,currentEstimate:$,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:he,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:F}=ws(),Q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Q||N,pe=m.useCallback(()=>{L4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const Y=ue=>{var _e;console.log("Session expired event received:",ue.detail),g(((_e=ue.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(Cm,Y),()=>{window.removeEventListener(Cm,Y)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),ke=m.useCallback(()=>{a(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||he(),F||xe()},[he,xe,oe,F]),m.useEffect(()=>{const Y=ue=>{_.current&&!_.current.contains(ue.target)&&s(!1),k.current&&!k.current.contains(ue.target)&&a(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Xp.find(Y=>Y.value===t)||Xp[2],w=De.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(N_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(N_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(Y=>{const ue=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return o.jsxs(bu,{to:Y.href,className:de("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ue&&"border"),style:ue?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(Y.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),S&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(S3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),o.jsx(sr,{className:de("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Xp.map(Y=>{const ue=Y.icon,_e=t===Y.value;return o.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ue,{className:"w-4 h-4"}),o.jsx("span",{children:Y.label})]},Y.value)})})]}),o.jsxs("div",{className:"relative",ref:k,children:[o.jsxs("button",{onClick:ke,className:de("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(u3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(nm,{children:i&&o.jsxs($t.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(BD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(_m,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx($t.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(EN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Q?$:void 0,currentWorkloads:Q?j:void 0,itemCosts:Q?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Q?async Y=>{if($!=null&&$.estimate_id)try{await X({estimate_id:$.estimate_id,...Y}),re($.estimate_id),We.success(`Workload "${Y.workload_name}" added!`)}catch(ue){throw We.error(ue.message||"Failed to add workload"),ue}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(nm,{children:p&&o.jsx($t.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs($t.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(ms,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Xn(e){var t,n;return e?Ga(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Xn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Xn(e).HTMLElement}function pC(e){return e instanceof Xn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:Zg(e)?ex(e)?e:Dl(e)||pC(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Fu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Jp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Jp[e]==null?0:Jp[e]+1;return Jp[e]=n,e+"-"+n},[e,t])}function fC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=fC(1),Uu=fC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Xn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Xn(e.target);return t&&e instanceof t}function $m(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(P_)?e:e.querySelector(P_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const mC=m.createContext(null);function OV(e){const t=m.useContext(mC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const BV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},FV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=FV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=BV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function hC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const gC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(R_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function xC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Xn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function A_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Xn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Xn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||pC(s)||n.includes(s))return n;const i=Xn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function vC(e){const[t]=rx(e,1);return t??null}function Zp(e){return!Rd||!e?null:Ga(e)?e:Zg(e)?ex(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function yC(e){return Ga(e)?e.scrollX:e.scrollLeft}function _C(e){return Ga(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:yC(e),y:_C(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function bC(e){return!Rd||!e?!1:e===document.scrollingElement}function wC(e){const t={x:0,y:0},n=bC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=wC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function kC(e){return e.reduce((t,n)=>ba(t,Hm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+yC(n),0)}function az(e){return e.reduce((t,n)=>t+_C(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);vC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=kC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Xn(e);return e instanceof t?e:Ka(e)}function ef(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function T_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var rt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(rt||(rt={}));const SC={start:[rt.Space,rt.Enter],cancel:[rt.Esc],end:[rt.Space,rt.Enter,rt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case rt.Right:return{...n,x:n.x+25};case rt.Left:return{...n,x:n.x-25};case rt.Down:return{...n,y:n.y+25};case rt.Up:return{...n,y:n.y-25}}};class Ad{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Xn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=SC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Uu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:k,maxScroll:A,minScroll:S}=wC(v),T=sz(v),D={x:Math.min(b===rt.Right?T.right-T.width/2:T.right,Math.max(b===rt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===rt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===rt.Down?T.top:T.top+T.height/2,p.y))},$=b===rt.Right&&!y||b===rt.Left&&!_,j=b===rt.Down&&!k||b===rt.Up&&!x;if($&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===rt.Right&&H<=A.x||b===rt.Left&&H>=S.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===rt.Right?v.scrollLeft-A.x:v.scrollLeft-S.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===rt.Down&&H<=A.y||b===rt.Up&&H>=S.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===rt.Down?v.scrollTop-A.y:v.scrollTop-S.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Uu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ad.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=SC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function L_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Xn(a)),this.initialCoordinates=(s=$m(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,T_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,T_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(L_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Fr,u=Uu(s,c);if(!r&&l){if(L_(l)){if(l.tolerance!=null&&ef(u,l.tolerance))return this.handleCancel();if(ef(u,l.distance))return this.handleStart()}if(D_(l)&&ef(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Td extends ix{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Td.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class mz extends ix{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const tf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ix{constructor(t){super(t,tf)}static setup(){return window.addEventListener(tf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),k=m.useCallback(()=>{const S=_.current;if(!S)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;S.scrollBy(T,D)},[]),A=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const S of A){if((r==null?void 0:r(S))===!1)continue;const T=u.indexOf(S),D=d[T];if(!D)continue;const{direction:$,speed:j}=rz(S,D,y,t,f);for(const H of["x","y"])h[H][$[H]]||(j[H]=0,$[H]=0);if(j.x>0||j.y>0){v(),_.current=S,g(k,a),b.current=j,x.current=$;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,k,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const k=_.node.current,A=k?new sx(c(k),k):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function EC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return EC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ld(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new sx(Qa(e),e)}function O_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Ld({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=EC(e);return xC(e,t)}const I_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=Zp(i.target);a&&n(l=>l?(l.set(a,Hm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=Zp(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=Zp(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):kC(e):Fr,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function CC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const F_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=CC(n?Xn(n):null),[s,i]=m.useState(F_);function a(){i(()=>e.length?e.map(c=>bC(c)?r:new sx(t(c),c)):F_)}const l=Ld({callback:a});return es(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Ld({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Fu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Td,options:{}},{sensor:Ad,options:{}}],Dz={current:{}},Qc={draggable:{measure:A_},droppable:{measure:A_,strategy:fl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Qa}};class Bo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Bo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Oz),jC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Bo}}}function Bz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Bo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Bo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Bo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Fz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),a=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=xC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=vC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const NC=m.createContext({...Fr,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const PC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Bz,void 0,Iz),[b,x]=v,[y,_]=IV(),[k,A]=m.useState(Us.Uninitialized),S=k===Us.Initialized,{draggable:{active:T,nodes:D,translate:$},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var K;return T!=null?{id:T,data:(K=H==null?void 0:H.data)!=null?K:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[he,xe]=m.useState(null),[oe,F]=m.useState(null),Q=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:ke,measuringScheduled:De}=bz(se,{dragging:S,dependencies:[$.x,$.y],config:pe.droppable}),w=yz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ue=$e(),_e=wz(w,pe.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ue.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Ze=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Ze.current.over)==null?void 0:n.id),st=Tz({measure:pe.dragOverlay.measure}),xt=(r=st.nodeRef.current)!=null?r:w,lt=S?(s=st.rect)!=null?s:ve:null,mt=!!(st.nodeRef.current&&st.rect),W=Ez(mt?null:ve),P=CC(xt?Xn(xt):null),E=Cz(S?I??w:null),ie=Rz(E),M=Uz(h,{transform:{x:$.x-W.x,y:$.y-W.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:ot,draggingNodeRect:lt,over:Ze.current.over,overlayNodeRect:st.rect,scrollableAncestors:E,scrollableAncestorRects:ie,windowRect:P}),q=Y?ba(Y,$):null,Se=jz(E),Pe=B_(Se),O=B_(Se,[ve]),B=ba(M,Pe),G=lt?QV(lt,M):null,ae=re&&G?p({active:re,collisionRect:G,droppableRects:L,droppableContainers:se,pointerCoordinates:q}):null,je=HV(ae,"id"),[Ve,pt]=m.useState(null),it=mt?M:ba(M,O),Ye=GV(it,(i=Ve==null?void 0:Ve.rect)!=null?i:null,ve),ct=m.useRef(null),Xe=m.useCallback((K,ut)=>{let{sensor:nt,options:Bt}=ut;if(le.current==null)return;const ft=D.get(le.current);if(!ft)return;const vt=K.nativeEvent,Ct=new nt({active:le.current,activeNode:ft,event:vt,options:Bt,context:Ze,onAbort(ze){if(!D.get(ze))return;const{onDragAbort:Me}=Q.current,Re={id:ze};Me==null||Me(Re),y({type:"onDragAbort",event:Re})},onPending(ze,Ie,Me,Re){if(!D.get(ze))return;const{onDragPending:jt}=Q.current,Ee={id:ze,constraint:Ie,initialCoordinates:Me,offset:Re};jt==null||jt(Ee),y({type:"onDragPending",event:Ee})},onStart(ze){const Ie=le.current;if(Ie==null)return;const Me=D.get(Ie);if(!Me)return;const{onDragStart:Re}=Q.current,Yt={activatorEvent:vt,active:{id:Ie,data:Me.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Yt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:ze,active:Ie}),y({type:"onDragStart",event:Yt}),xe(ct.current),F(vt)})},onMove(ze){x({type:sn.DragMove,coordinates:ze})},onEnd:ht(sn.DragEnd),onCancel:ht(sn.DragCancel)});ct.current=Ct;function ht(ze){return async function(){const{active:Me,collisions:Re,over:Yt,scrollAdjustedTranslate:jt}=Ze.current;let Ee=null;if(Me&&jt){const{cancelDrop:Nt}=Q.current;Ee={activatorEvent:vt,active:Me,collisions:Re,delta:jt,over:Yt},ze===sn.DragEnd&&typeof Nt=="function"&&await Promise.resolve(Nt(Ee))&&(ze=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:ze}),A(Us.Uninitialized),pt(null),xe(null),F(null),ct.current=null;const Nt=ze===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const Le=Q.current[Nt];Le==null||Le(Ee),y({type:Nt,event:Ee})}})}}},[D]),It=m.useCallback((K,ut)=>(nt,Bt)=>{const ft=nt.nativeEvent,vt=D.get(Bt);if(le.current!==null||!vt||ft.dndKit||ft.defaultPrevented)return;const Ct={active:vt};K(nt,ut.options,Ct)===!0&&(ft.dndKit={capturedBy:ut.sensor},le.current=Bt,Xe(nt,ut))},[D,Xe]),U=_z(d,It);Nz(d),es(()=>{ve&&k===Us.Initializing&&A(Us.Initialized)},[ve,k]),m.useEffect(()=>{const{onDragMove:K}=Q.current,{active:ut,activatorEvent:nt,collisions:Bt,over:ft}=Ze.current;if(!ut||!nt)return;const vt={active:ut,activatorEvent:nt,collisions:Bt,delta:{x:B.x,y:B.y},over:ft};la.unstable_batchedUpdates(()=>{K==null||K(vt),y({type:"onDragMove",event:vt})})},[B.x,B.y]),m.useEffect(()=>{const{active:K,activatorEvent:ut,collisions:nt,droppableContainers:Bt,scrollAdjustedTranslate:ft}=Ze.current;if(!K||le.current==null||!ut||!ft)return;const{onDragOver:vt}=Q.current,Ct=Bt.get(je),ht=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,ze={active:K,activatorEvent:ut,collisions:nt,delta:{x:ft.x,y:ft.y},over:ht};la.unstable_batchedUpdates(()=>{pt(ht),vt==null||vt(ze),y({type:"onDragOver",event:ze})})},[je]),es(()=>{Ze.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:G,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:xt,draggingNodeRect:lt,droppableContainers:j,over:Ve,scrollableAncestors:E,scrollAdjustedTranslate:B},X.current={initial:lt,translated:G}},[re,w,ae,G,D,xt,lt,L,j,Ve,E,B]),gz({...ue,delta:$,draggingRect:G,pointerCoordinates:q,scrollableAncestors:E,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:ot,dragOverlay:st,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Ve,measureDroppableContainers:ke,scrollableAncestors:E,scrollableAncestorRects:ie,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ve,oe,ae,ot,st,D,j,L,Ve,ke,E,ie,pe,De,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Ve,measureDroppableContainers:ke}),[oe,U,re,ve,x,N,D,Ve,ke]);return pn.createElement(mC.Provider,{value:_},pn.createElement(Dd.Provider,{value:Te},pn.createElement(jC.Provider,{value:Z},pn.createElement(NC.Provider,{value:Ye},u)),pn.createElement(Fz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function $e(){const K=(he==null?void 0:he.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,nt=S&&!K&&!ut;return typeof c=="object"?{...c,enabled:nt}:{enabled:nt}}}),$z=m.createContext(null),U_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?NC:$z),[y,_]=Fu(),[k,A]=Fu(),S=Pz(a,t),T=pl(n);es(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:k,data:T}),()=>{const $=p.get(t);$&&$.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:S,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(jC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ld({callback:y,disabled:g||!a}),k=m.useCallback((D,$)=>{_&&($&&(_.unobserve($),p.current=!1),D&&_.observe(D))},[_]),[A,S]=Fu(k),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:S}}function ax(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ax(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Sc={scaleX:1,scaleY:1},AC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Sc}:s=a?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,k=Jz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:k,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,k.draggable,k.droppable,_,h,b,c,f,s]);return pn.createElement(LC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ax(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},MC="transform",r8=Oa.Transition.toString({property:MC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function OC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(LC),_=a8(r,h),k=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:k,items:d},...s}),[p,s,k,d]),S=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:$,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:he,listeners:xe,isDragging:oe,over:F,setActivatorNodeRef:Q,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,he),pe=!!H,L=pe&&!g&&kc(f)&&kc(b),ke=!x&&oe,De=ke&&L?N:null,Y=L?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:k}):null,ue=kc(f)&&kc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):k,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ue,containerId:p}),ot=d!==ve.current.items,Ze=t({active:H,containerId:p,isDragging:oe,isSorting:pe,id:a,index:k,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Ze,index:k,node:D,rect:T});return m.useEffect(()=>{pe&&ve.current.newIndex!==ue&&(ve.current.newIndex=ue),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,ue,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const xt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(xt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:k,newIndex:ue,items:d,isOver:$,isSorting:pe,isDragging:oe,listeners:xe,node:D,overIndex:b,over:F,setNodeRef:se,setActivatorNodeRef:Q,setDroppableNodeRef:j,setDraggableNodeRef:he,transform:I??Y,transition:st()};function st(){if(I||ot&&ve.current.newIndex===k)return r8;if(!(ke&&!nx(X)||!u)&&(pe||Ze))return Oa.Transition.toString({...u,property:MC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}rt.Down,rt.Right,rt.Up,rt.Left;const IC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var BC={exports:{}};(function(e,t){(function(n,r){r()})(hs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof hs=="object"&&hs.global===hs?hs:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(BC);var Gm=BC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Ec={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=ws(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[k,A]=m.useState(new Set),[S,T]=m.useState(!1),[D,$]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,he]=m.useState(null),[xe,oe]=m.useState(!1),[F,Q]=m.useState(!1),N=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),We.success("Refreshed")},[r]),pe=m.useMemo(()=>{const W=t.length,P=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="aws"}).length,E=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="gcp"}).length;return{all:W,aws:P,azure:E,gcp:ie}},[t]),L=m.useMemo(()=>{const W=t.reduce((P,E)=>P+(E.line_item_count||0),0);return{estimates:t.length,workloads:W}},[t]),ke=m.useMemo(()=>{const W=new Set;return t.forEach(P=>{P.customer_name&&W.add(P.customer_name)}),Array.from(W).sort()},[t]),De=m.useMemo(()=>{const W={all:t.length};return t.forEach(P=>{P.customer_name&&(W[P.customer_name]=(W[P.customer_name]||0)+1)}),W},[t]),w=m.useMemo(()=>{let W=[...t];if(c){const P=c.toLowerCase();W=W.filter(E=>{var ie;return E.estimate_name.toLowerCase().includes(P)||((ie=E.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(W=W.filter(P=>{var E;return((E=P.cloud)==null?void 0:E.toLowerCase())===f})),b!=="all"&&(W=W.filter(P=>P.customer_name===b)),g){case"updated":W.sort((P,E)=>new Date(E.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":W.sort((P,E)=>P.estimate_name.localeCompare(E.estimate_name));break;case"workloads":W.sort((P,E)=>(E.line_item_count||0)-(P.line_item_count||0));break;case"display_order":W.sort((P,E)=>(P.display_order??0)-(E.display_order??0));break}return W},[t,c,f,g,b]),Y=m.useCallback(async W=>{const{active:P,over:E}=W;if(!E||P.id===E.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===E.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const q=ax(w,ie,M),{estimates:Se}=ws.getState(),Pe=Se.map(O=>{const B=q.findIndex(G=>G.estimate_id===O.estimate_id);return B>=0?{...O,display_order:B}:O});ws.setState({estimates:Pe});try{await K4(q.map(O=>O.estimate_id))}catch{We.error("Failed to save reorder")}},[w,g]),ue=(W,P,E)=>{W.stopPropagation(),he({id:P,name:E}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),We.success("Estimate deleted")}catch{We.error("Failed to delete")}finally{oe(!1),re(!1),he(null)}}},ve=async(W,P)=>{W.stopPropagation();try{const E=await i(P);We.success("Estimate duplicated"),e(`/calculator/${E.estimate_id}`)}catch{We.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const W=await dO();Gm.saveAs(W,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),We.success("Exported successfully")}catch{We.error("Export failed")}finally{l(!1)}},Ze=()=>{k.size===w.length?A(new Set):A(new Set(w.map(W=>W.estimate_id)))},I=(W,P)=>{P.stopPropagation();const E=new Set(k);E.has(W)?E.delete(W):E.add(W),A(E)},st=()=>{k.size!==0&&Q(!0)},xt=async()=>{$(!0);let W=0,P=0;for(const E of k)try{await s(E),W++}catch{P++}$(!1),A(new Set),Q(!1),P===0?We.success(`Deleted ${W} estimate(s)`):We.error(`Deleted ${W}, failed ${P}`)},lt=async()=>{if(k.size===0)return;H(!0);let W=0;for(const P of k)try{const E=t.find(ie=>ie.estimate_id===P);if(E){const ie=await qS(P);Gm.saveAs(ie,`${E.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),W++}}catch{}H(!1),We.success(`Exported ${W} estimate(s)`)},mt=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ny,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Ng,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Qr,{className:de("w-5 h-5",d&&"animate-spin")})}),S?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[k.size," selected"]}),o.jsxs("button",{onClick:lt,disabled:k.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:st,disabled:k.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:mt,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:ot,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),ke.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(pD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?ke.length:De[b]||0}),o.jsx(sr,{className:de("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(nm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs($t.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:ke.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),ke.map(W=>o.jsxs("button",{onClick:()=>{x(W),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===W?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===W?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:W,children:W}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:De[W]||0}),b===W&&o.jsx(Gs,{className:"w-4 h-4"})]})]},W))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:W=>u(W.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(W=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},W))})}):w.length===0?o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Ze,className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:k.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:de(S?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(PC,{sensors:N,collisionDetection:gC,onDragEnd:Y,modifiers:[IC],children:o.jsx(DC,{items:w.map(W=>W.estimate_id),strategy:AC,children:w.map((W,P)=>{const E=k.has(W.estimate_id);return o.jsx(o8,{id:W.estimate_id,children:o.jsxs($t.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!S&&e(`/calculator/${W.estimate_id}`),className:de("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!S&&"cursor-pointer hover:bg-[var(--bg-hover)]",E&&"bg-blue-500/5"),children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(W.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",E?"bg-blue-500 border-blue-500":"border-gray-400"),children:E&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:de("flex items-center gap-3",S?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(ym,{className:"w-4 h-4",style:{color:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:W.estimate_name,children:W.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:W.customer_name||"",children:W.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:W.customer_name||"",children:W.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:W.cloud&&Tr[W.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[W.cloud.toLowerCase()].bg,color:Tr[W.cloud.toLowerCase()].text},children:Tr[W.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:W.region||W.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[W.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:W.region,children:W.region}),W.tier&&Ec[W.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Ec[W.tier.toLowerCase()].bg,color:Ec[W.tier.toLowerCase()].text},children:Ec[W.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:de("px-2 py-0.5 rounded text-xs font-medium",W.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:W.line_item_count===0?{color:"var(--text-muted)"}:{},children:W.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(W.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!S&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,W.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ue(ie,W.estimate_id,W.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},W.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),he(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),F&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",k.size," Estimate",k.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(W=>k.has(W.estimate_id)).map(W=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",W.estimate_name]},W.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:xt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),k.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[k.size," estimate",k.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:st,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,k=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach($=>{const j=$.group||"Other";T[j]||(T[j]=[]),T[j].push($)}),Object.keys(T).sort(($,j)=>$==="General Purpose"?-1:j==="General Purpose"?1:$.localeCompare(j)).map($=>({name:$,options:T[$]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},S=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:de("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:de("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:de("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:S,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(sr,{className:de("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),k.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const FC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:FC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function nf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var W;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:k,fetchLineItems:A,clearSingleWorkloadCost:S,markItemCalculating:T,fetchVMCostForInstance:D}=ws(),$=m.useRef(!0);m.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,he=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,F={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Q=f&&f.models&&f.models.llm?f:F,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[pe,L]=m.useState(!1),[ke,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ue={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ue),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),FC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?aE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&Y(E=>({...E,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Ze=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!$.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),st=a.length===0,xt=!st&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){We.error("Enter a workload name");return}L(!0);try{const E={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(E.serverless_enabled=w.serverless_enabled,E.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(E.serverless_enabled=!1,E.serverless_mode=null),I!=null&&I.show_compute_config?(E.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,E.driver_node_type=w.driver_node_type||null,E.worker_node_type=w.worker_node_type||null,E.num_workers=w.num_workers,E.driver_pricing_tier=w.driver_pricing_tier||"on_demand",E.worker_pricing_tier=w.worker_pricing_tier||"spot",E.driver_payment_option=w.driver_payment_option||"NA",E.worker_payment_option=w.worker_payment_option||"NA"):(E.photon_enabled=!1,E.driver_node_type=null,E.worker_node_type=null,E.num_workers=null,E.driver_pricing_tier=null,E.worker_pricing_tier=null,E.driver_payment_option=null,E.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?E.dlt_edition=w.dlt_edition:E.dlt_edition=null,I!=null&&I.show_dbsql_config?(E.dbsql_warehouse_type=w.dbsql_warehouse_type,E.dbsql_warehouse_size=w.dbsql_warehouse_size,E.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(E.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,E.dbsql_driver_payment_option=w.dbsql_driver_payment_option,E.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,E.dbsql_worker_payment_option=w.dbsql_worker_payment_option,E.driver_pricing_tier=w.dbsql_driver_pricing_tier,E.driver_payment_option=w.dbsql_driver_payment_option,E.worker_pricing_tier=w.dbsql_worker_pricing_tier,E.worker_payment_option=w.dbsql_worker_payment_option)):(E.dbsql_warehouse_type=null,E.dbsql_warehouse_size=null,E.dbsql_num_clusters=null,E.dbsql_driver_pricing_tier=null,E.dbsql_driver_payment_option=null,E.dbsql_worker_pricing_tier=null,E.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(E.vector_search_mode=w.vector_search_mode,E.vector_capacity_millions=w.vector_capacity_millions,E.vector_search_storage_gb=w.vector_search_storage_gb||0):(E.vector_search_mode=null,E.vector_capacity_millions=null,E.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(E.model_serving_gpu_type=w.model_serving_gpu_type,E.model_serving_scale_out=w.model_serving_scale_out,E.model_serving_concurrency=w.model_serving_concurrency):(E.model_serving_gpu_type=null,E.model_serving_scale_out=null,E.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?E.databricks_apps_size=w.databricks_apps_size:E.databricks_apps_size=null,w.workload_type==="AI_PARSE"?(E.ai_parse_mode="pages",E.ai_parse_complexity=w.ai_parse_complexity,E.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(E.ai_parse_mode=null,E.ai_parse_complexity=null,E.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?E.shutterstock_images=w.shutterstock_images:E.shutterstock_images=null,I!=null&&I.show_lakebase_config?(E.lakebase_cu=w.lakebase_cu,E.lakebase_storage_gb=w.lakebase_storage_gb||0,E.lakebase_ha_nodes=w.lakebase_ha_nodes,E.lakebase_backup_retention_days=w.lakebase_backup_retention_days,E.lakebase_pitr_gb=w.lakebase_pitr_gb||0,E.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(E.lakebase_cu=null,E.lakebase_storage_gb=null,E.lakebase_ha_nodes=null,E.lakebase_backup_retention_days=null,E.lakebase_pitr_gb=null,E.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(E.fmapi_provider=w.fmapi_provider,E.fmapi_model=w.fmapi_model||null,E.fmapi_endpoint_type=w.fmapi_endpoint_type,E.fmapi_context_length=w.fmapi_context_length,E.fmapi_rate_type=w.fmapi_rate_type,E.fmapi_quantity=w.fmapi_quantity):(E.fmapi_provider=null,E.fmapi_model=null,E.fmapi_endpoint_type=null,E.fmapi_context_length=null,E.fmapi_rate_type=null,E.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?ke?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,E.avg_runtime_minutes=w.avg_runtime_minutes,E.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):I!=null&&I.show_fmapi_config?(E.hours_per_month=w.hours_per_month||null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null),t)S(t.line_item_id),T(t.line_item_id),await k(t.line_item_id,E),We.success("Workload updated");else{E.estimate_id=e;const M=await _(E);M!=null&&M.line_item_id&&T(M.line_item_id),We.success("Workload added")}A(e),r==null||r(),n()}catch(E){console.error("Failed to save workload:",E),We.error("Failed to save")}finally{L(!1)}},mt=I==null?void 0:I.show_compute_config;return st?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(E=>({...E,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>Y(E=>({...E,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:de("w-full text-sm",xt&&"border-red-500",Ze&&"border-yellow-500"),children:[Ze&&(()=>{const P=a.find(E=>E.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),xt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Ze&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Ze&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const E=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!E,onChange:()=>!E&&Y(ie=>{const M=!ie.serverless_enabled,q=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:q}}),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>Y(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:he.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:de("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),mt&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(E=>({...E,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(E=>({...E,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(E=>({...E,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(E=>({...E,worker_node_type:E.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:de("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(E=>({...E,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(E=>({...E,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(E=>({...E,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(E=>({...E,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[mt&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>Y(E=>({...E,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const E=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!E;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!E&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(q=>({...q,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(E=>({...E,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(E=>({...E,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,E=P!=null&&P.driver_instance_type?l.find(B=>B.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(B=>B.id===P.worker_instance_type):null,M=(B,G,ae)=>{var Ve,pt,it,Ye,ct,Xe,It;if(!(B!=null&&B.vm_pricing))return null;const je=G.toLowerCase();if(je==="on_demand")return(Ve=B.vm_pricing.on_demand)==null?void 0:Ve.cost_per_hour;if(je==="spot")return(pt=B.vm_pricing.spot)==null?void 0:pt.cost_per_hour;if(je==="reserved_1y"){const U=((it=B.vm_pricing.reserved_1y)==null?void 0:it.find(Z=>Z.payment_option===ae))||((Ye=B.vm_pricing.reserved_1y)==null?void 0:Ye[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((ct=B.vm_pricing.reserved_3y)==null?void 0:ct.find(Z=>Z.payment_option===ae))||((Xe=B.vm_pricing.reserved_3y)==null?void 0:Xe[0]);return U==null?void 0:U.cost_per_hour}return(It=B.vm_pricing.on_demand)==null?void 0:It.cost_per_hour},q=M(E,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),E&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=E.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),q!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",q.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_driver_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:B=>Y(G=>({...G,dbsql_driver_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_worker_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:B=>Y(G=>({...G,dbsql_worker_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(E=>({...E,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(E=>({...E,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(E=>({...E,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(E=>({...E,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const E={small:4,medium:12,large:40},ie=P.target.value;Y(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:E[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const E=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(ie=>({...ie,model_serving_concurrency:E}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(E=>({...E,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(E=>({...E,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const E=P.target.value,ie=z_(x,g||"aws",w.fmapi_provider,E),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";Y(q=>({...q,fmapi_model:E,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(W=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:W.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(E=>({...E,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(E=>({...E,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],E={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],E={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(E=>({...E,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(E=>({...E,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(E=>({...E,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(E=>({...E,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(E=>({...E,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>Y(E=>({...E,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>Y(E=>({...E,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages/Month (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>Y(E=>({...E,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>Y(E=>({...E,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>De(!1),className:de("px-3 py-1 text-xs rounded-l-md border transition-colors",ke?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>De(!0),className:de("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",ke?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!ke&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(E=>({...E,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(E=>({...E,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&w.workload_type!=="DATABRICKS_APPS"&&w.workload_type!=="AI_PARSE"&&w.workload_type!=="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(E=>({...E,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),ke&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>Y(E=>({...E,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:s3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Tu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:sD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:_D,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:qD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:m3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?h8[e]||{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},fe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:fe(e),At=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:de("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:de("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[fe(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:de("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[At(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:k,getInstanceDbuRate:A,vmPricingMap:S,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:$,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:he,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:F,isPricingBundleLoaded:Q,clearEstimateState:N,setLocalCalculatedCosts:se}=ws(),[pe,L]=m.useState(!1),[ke,De]=m.useState(!1),[w,Y]=m.useState(!1),[ue,_e]=m.useState(!1),[ve,ot]=m.useState(!1),[Ze,I]=m.useState(null),[st,xt]=m.useState(!1),[lt,mt]=m.useState(!1),[W,P]=m.useState(!1),[E,ie]=m.useState(!1),[M,q]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,B]=m.useState(!1),[G,ae]=m.useState({}),[je,Ve]=m.useState(!1),[pt,it]=m.useState(!1),[Ye,ct]=m.useState(!1),[Xe,It]=m.useState(!1),[U,Z]=m.useState([]),[Te,$e]=m.useState(!1),[K,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[nt,Bt]=m.useState(!!e),[ft,vt]=m.useState(!1),[Ct,ht]=m.useState(!1),[ze,Ie]=m.useState("table"),[Me,Re]=m.useState("order"),[Yt,jt]=m.useState("asc"),[Ee,Nt]=m.useState(new Set),[Le,Jn]=m.useState(!1),Zn=m.useRef({}),ns=m.useCallback(R=>{const J=Zn.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Zn.current[R]&&(Zn.current[R].style.backgroundColor="")},1500))},[]),Un=m.useCallback(()=>{B(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!K.cloud||!K.region||r.length===0||!Ye)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const V=cl(F,K.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if(V){const ce=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",He=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${V.driver_instance_type}:${ce}:${He}`);const Pt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${V.worker_instance_type}:${Pt}:${Rt}`)}return}if(C.driver_node_type){const V=C.driver_pricing_tier||"on_demand",ce=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${V}:${ce}`)}if(C.worker_node_type){const V=C.worker_pricing_tier||"spot",ce=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${V}:${ce}`)}}});const J=Array.from(R).map(C=>{const[V,ce,He]=C.split(":");return _(K.cloud,K.region,V,ce,He)});if(J.length>0){It(!0);const C=new Promise(V=>setTimeout(V,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>It(!1))}},[K.cloud,K.region,r,Ye,_,F]),m.useEffect(()=>{if(!K.cloud)return;const R=p(K.cloud);if(R.length>0){const J=Q?CO(F,K.cloud):[];if(J.length>0){const C=R.filter(V=>J.includes(V.region_code));Z(C)}else Z(R);$e(!1)}else u?(Z([]),$e(!1)):$e(!0)},[K.cloud,d,u,p,F,Q]),m.useEffect(()=>{(async()=>{if(e){Ve(!0),it(!0),ct(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Ve(!1),it(!1),ct(!0)}}else N(),ct(!1)})()},[e,i,N]);const rs={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(rs),x("aws"),B(!1))},[n,e,x,y]),m.useEffect(()=>{K.cloud&&K.region&&K.tier&&$(K.cloud.toUpperCase(),K.region,K.tier.toUpperCase())},[K.cloud,K.region,K.tier,$]);const ss=!!(K.region&&K.tier),fr=(R,J)=>{const C=J?{...R,...J}:R,V=K.cloud||"aws",ce=K.region,He=Object.keys(D).length>0?D:Q_[V]||Q_.aws,Pt=C.num_workers||0;if(!ce)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let we="";const en=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?we="JOBS_COMPUTE_(PHOTON)":we="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?we="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?we="ALL_PURPOSE_COMPUTE_(PHOTON)":we="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":(we=`DLT_${en}_COMPUTE`,C.photon_enabled&&(we+="_(PHOTON)"));break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Be==="SERVERLESS"?we="SERVERLESS_SQL_COMPUTE":Be==="PRO"?we="SQL_PRO_COMPUTE":we="SQL_COMPUTE";break;case"VECTOR_SEARCH":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const yt=(C.fmapi_provider||"openai").toLowerCase();we=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[yt]||yt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":we="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":we="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"AI_PARSE":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":we="SERVERLESS_REAL_TIME_INFERENCE";break;default:we="JOBS_COMPUTE"}let An=.2;if(Q&&K.tier){const Be=Lg(F,V,ce,K.tier,we);Be>0?An=Be:An=He[we]||.2}else An=He[we]||.2;let be=0,qe=0,Qe=0,Ts,Er,is,te=.5,me=.5;if(Q&&C.driver_node_type){const Be=Pm(F,V,C.driver_node_type);Be>0&&(te=Be)}if(!te||te===.5){const Be=j.find(yt=>yt.id===C.driver_node_type||yt.name===C.driver_node_type);Be!=null&&Be.dbu_rate&&(te=Be.dbu_rate)}if(Q&&C.worker_node_type){const Be=Pm(F,V,C.worker_node_type);Be>0&&(me=Be)}if(!me||me===.5){const Be=j.find(yt=>yt.id===C.worker_node_type||yt.name===C.worker_node_type);Be!=null&&Be.dbu_rate&&(me=Be.dbu_rate)}const Ht=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Be;if(C.serverless_enabled?C.workload_type==="JOBS"?Be="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Be="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Be="DLT_CORE_COMPUTE":Be=we.replace("_(PHOTON)",""):Be=we.replace("_(PHOTON)",""),Q){const tn=iE(F,V,Be);if(tn!==2)return tn}const yt=H.find(tn=>{var bn,mr;return tn.sku_type===Be||((bn=tn.sku_type)==null?void 0:bn.toLowerCase())===Be.toLowerCase()||((mr=tn.sku_type)==null?void 0:mr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(yt==null?void 0:yt.multiplier)||2})(),mi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Pt)*Ht*mi;else{be=(te+me*Pt)*Ht;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Pt)*Ht*Cr*mi;else{be=(te+me*Pt)*Ht*Cr;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),yt=C.dbsql_warehouse_size||"Small",tn=C.dbsql_num_clusters||1;let bn=Y_[yt]||12;if(Q){const Ce=_O(F,V,Be,yt);Ce&&Ce.dbu_per_hour>0&&(bn=Ce.dbu_per_hour)}if(!bn||bn===(Y_[yt]||12)){const Ce=X.find(cn=>cn.id===yt||cn.name===yt);Ce!=null&&Ce.dbu_per_hour&&(bn=Ce.dbu_per_hour)}if(be=bn*tn,qe=be*Rt,Be!=="SERVERLESS"){const Ce=Q?cl(F,V,Be,yt):null;if(Ce){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,Ce.driver_instance_type,cn,Nr),Ja=k(V,ce,Ce.worker_instance_type,hi,gi);Qe=(Ce.driver_count*xi+Ce.worker_count*Ja)*tn*Rt}else if(C.driver_node_type){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,C.driver_node_type,cn,Nr),Ja=C.worker_node_type?k(V,ce,C.worker_node_type,hi,gi):0,yx=C.num_workers||0;Qe=(xi+Ja*yx)*tn*Rt}}break;case"VECTOR_SEARCH":const mr=C.vector_search_mode||"standard",at=C.vector_capacity_millions||1;let ln=mr==="storage_optimized"?64e6:2e6,qt=mr==="storage_optimized"?18.29:4;if(Q){const Ce=bO(F,V,mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_rate)}else{const Ce=he(mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_per_hour)}const mn=at*1e6,Fe=Math.ceil(mn/ln);Ts=Fe,be=Fe*qt,qe=be*Rt;const et=C.vector_search_storage_gb||0,Wt=Fe*20,wt=Math.max(0,et-Wt),Ut=.023,hn=wt*Ut;et>0&&(Er=hn,is={totalStorageGB:et,freeStorageGB:Wt,billableStorageGB:wt,pricePerGB:Ut});break;case"MODEL_SERVING":const er=C.model_serving_gpu_type||"cpu";let Dn=2;if(Q){const Ce=wO(F,V,er);Ce&&Ce.dbu_rate>0&&(Dn=Ce.dbu_rate)}if(Dn===2){const Ce=re.find(cn=>cn.id===er||cn.name===er);Ce!=null&&Ce.dbu_per_hour&&(Dn=Ce.dbu_per_hour)}const tr=C.model_serving_scale_out||"small",Fl=tr==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[tr]||4;be=Dn*Fl,qe=be*Rt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},JC=(zl[V]||zl.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;be=Ul*JC*Vl,qe=be*Rt;const $l=Math.min(C.lakebase_storage_gb||0,8192),ZC=C.lakebase_pitr_gb||0,e2=C.lakebase_snapshot_gb||0,Hl=.023,t2=$l*15*Hl,n2=ZC*8.7*Hl,r2=e2*3.91*Hl,gx=t2+n2+r2;gx>0&&(Er=gx,is={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const s2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ds=null;if(Q&&C.fmapi_model){const Ce=kO(F,V,C.fmapi_model,Xa);Ce&&(Ds=Ce.dbu_rate)}if(Ds===null&&C.fmapi_model){const Ce=xe(C.fmapi_model,Xa);Ce&&(xx?Ds=Ce.dbu_per_hour||null:Ds=Ce.dbu_per_1M_tokens||null)}Ds===null&&(xx?Ds=Xa==="provisioned_scaling"?200:50:Ds=Xa==="output_token"?3:1),qe=s2*Ds;break;case"FMAPI_PROPRIETARY":const i2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let jr=null;if(Q&&C.fmapi_provider&&C.fmapi_model){const Ce=C.fmapi_endpoint_type||"global",cn=C.fmapi_context_length||"long",Nr=SO(F,V,C.fmapi_provider,C.fmapi_model,Ce,cn,ql);Nr&&(jr=Nr.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ce=oe(C.fmapi_provider,C.fmapi_model,ql);Ce&&(vx?jr=Ce.dbu_per_hour||null:jr=Ce.dbu_per_1M_tokens||null)}if(jr===null)if(vx)jr=150;else switch(ql){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}qe=i2*jr;break;case"DATABRICKS_APPS":{const Ce=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ce]||.5,qe=be*Rt;break}case"AI_PARSE":{const Ce={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},cn=(C.ai_parse_complexity||"medium").toLowerCase();qe=(C.ai_parse_pages_thousands||0)*(Ce[cn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{qe=(C.shutterstock_images||0)*.857;break}default:qe=0}const Tn=isNaN(An)||An===void 0?0:An,Ls=isNaN(qe)||qe===void 0?0:qe,Ln=isNaN(Qe)||Qe===void 0?0:Qe,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ls*Tn,os=zr+Ln+_n;return{monthlyDBUs:Ls,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(os)?0:os,unitsUsed:Ts,dbuPerHour:be,dbuPrice:Tn,storageCost:_n>0?_n:void 0,storageDetails:is}},Vn=m.useMemo(()=>{let R=0,J=0,C=0,V=0;return r.forEach(ce=>{const He=fr(ce);R+=isNaN(He.monthlyDBUs)?0:He.monthlyDBUs,J+=isNaN(He.dbuCost)?0:He.dbuCost,C+=isNaN(He.vmCost)?0:He.vmCost,V+=isNaN(He.totalCost)?0:He.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:V}},[r,K.cloud,K.region,K.tier,s,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=fr(J,G[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,G,K.cloud,K.region,K.tier,se,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);const fi=m.useMemo(()=>{const R=[...r];return Me==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):Me==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):Me==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):Me==="cost"&&R.sort((J,C)=>{const V=fr(J).totalCost,ce=fr(C).totalCost;return V-ce}),Yt==="desc"&&R.reverse(),R},[r,Me,Yt,fr]),Md=R=>{Me===R?jt(J=>J==="asc"?"desc":"asc"):(Re(R),jt(R==="cost"?"desc":"asc"))},UC=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad)),VC=Me==="order",zC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const V=fi.findIndex(en=>en.line_item_id===J.id),ce=fi.findIndex(en=>en.line_item_id===C.id);if(V===-1||ce===-1)return;const He=[...fi],[Pt]=He.splice(V,1);He.splice(ce,0,Pt);const{lineItems:Rt}=ws.getState(),we=Rt.map(en=>{const An=He.findIndex(be=>be.line_item_id===en.line_item_id);return An>=0?{...en,display_order:An}:en});ws.setState({lineItems:we});try{await G4(e,He.map(en=>en.line_item_id))}catch{We.error("Failed to save reorder")}},[fi,e]),ox=async()=>{if(!K.estimate_name.trim()){We.error("Enter an estimate name");return}if(!K.region){We.error("Select a region");return}if(!K.tier){We.error("Select a Databricks tier");return}L(!0);try{const R={...K,cloud:K.cloud.toUpperCase(),tier:K.tier.toUpperCase()};if(e&&n)await h(e,R),B(!1),We.success("All changes saved");else{const J=await f(R);B(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),We.success("Estimate created")}}catch{We.error("Failed to save")}finally{L(!1)}},$C=async()=>{if(e){De(!0);try{const R=await qS(e),J=`${K.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(R,J),We.success("Exported to Excel")}catch{We.error("Export failed")}finally{De(!1)}}},HC=async()=>{if(e){Y(!0),_e(!1);try{await g(e),We.success("Estimate deleted"),t("/",{replace:!0})}catch{We.error("Failed to delete estimate"),Y(!1)}}},qC=async()=>{l(),We.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),We.success("Pricing data refreshed",{id:"refresh-data"})}catch{We.error("Failed to refresh data",{id:"refresh-data"})}},lx=R=>{I(R),ot(!0)},WC=async()=>{if(Ze){mt(!0);try{await v(Ze.line_item_id),We.success("Workload removed")}catch{We.error("Failed to delete")}finally{mt(!1),ot(!1),I(null)}}},cx=()=>{Ee.size!==0&&xt(!0)},GC=async()=>{mt(!0);try{let R=0;for(const J of Ee)await v(J),R++;We.success(`${R} workload(s) deleted`),Nt(new Set)}catch{We.error("Failed to delete some workloads")}finally{mt(!1),xt(!1)}},KC=R=>{Nt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},QC=()=>{Ee.size===r.length?Nt(new Set):Nt(new Set(r.map(R=>R.line_item_id)))},ux=()=>{Jn(!1),Nt(new Set)},dx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&We.success(`Workload "${J.workload_name}" cloned`)}catch{We.error("Failed to clone workload")}},YC=()=>{O?P(!0):t("/")},XC=()=>{P(!1),t("/")},px=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),q(J)},Il=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const V=new Set(M);V.add(R),q(V)}Pe(C)},fx=R=>R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null,mx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"AI_PARSE":J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K/mo`});break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break}return J},Bl=K.estimate_name.trim()&&K.region&&K.tier,hx=()=>{const R=[];return K.estimate_name.trim()||R.push("Estimate Name"),K.region||R.push("Region"),K.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:YC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:K.estimate_name,onChange:R=>{ut(J=>({...J,estimate_name:R.target.value})),Un()},placeholder:"Untitled Estimate",title:K.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:qC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Qr,{className:de("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:$C,disabled:ke||!e,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:de("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:de("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Bt(!nt),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Tu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${K.cloud.toUpperCase()} • ${K.region||"No region"} • ${K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier"}${K.customer_name?` • ${K.customer_name}`:""}`,children:[K.cloud.toUpperCase()," • ",K.region||"No region"," • ",K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier",K.customer_name&&` • ${K.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:nt?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(fs,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!nt&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&K.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ut(V=>({...V,cloud:R.id,region:"",tier:R.id==="azure"&&V.tier==="enterprise"?"":V.tier})),x(R.id),Un())},className:de("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",K.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":K.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:de("text-sm font-semibold",K.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),K.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.region,onChange:R=>{ut(J=>({...J,region:R.target.value})),y(R.target.value),Un()},className:de("w-full text-sm",!K.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.tier,onChange:R=>{ut(J=>({...J,tier:R.target.value})),Un()},className:de("w-full text-sm",!K.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),K.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${hx().join(", ")}`,className:de("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(p3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:Le?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ee.size," selected"]}),o.jsxs("button",{onClick:cx,disabled:Ee.size===0,className:de("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ee.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>Jn(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Ie("table"),className:de("p-1.5 rounded-md transition-colors",ze==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(b3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("cards"),className:de("p-1.5 rounded-md transition-colors",ze==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Ng,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("expanded"),className:de("p-1.5 rounded-md transition-colors",ze==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(ry,{className:"w-4 h-4"})})]}),ss&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Add"]})]})]}),e?pt&&!Ye?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[ze==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ee.size===r.length&&r.length>0,onChange:QC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>Md("name"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Le?"col-span-3":"col-span-4"),children:["Workload",Me==="name"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("type"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Me==="type"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Me==="cost"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]})]}),o.jsx(PC,{sensors:UC,collisionDetection:gC,onDragEnd:zC,modifiers:[IC],children:o.jsx(DC,{items:fi.map(R=>R.line_item_id),strategy:AC,children:fi.map(R=>{var Ts,Er,is;const J=G[R.line_item_id],C=J?{...R,...J}:R,V=fr(R,J),ce=W_(C.workload_type),He=ce.icon,Pt=M.has(R.line_item_id),Rt=Ee.has(R.line_item_id),we=C.workload_type||"",en=C.serverless_enabled||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",An=((Ts=s.find(te=>te.workload_type===we))==null?void 0:Ts.display_name)||we,be=fx(C),Qe=(()=>{const te={badges:[],details:[]};if(en&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(we))en||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),we==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(we==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(we==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(we==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&we==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else we==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!VC,children:o.jsxs("div",{ref:te=>{Zn.current[R.line_item_id]=te},children:[o.jsxs("div",{className:de("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&Le&&"bg-lava-600/5",Pt&&"bg-[var(--bg-tertiary)]"),onClick:()=>px(R.line_item_id),children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>KC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:de("flex items-center gap-3",Le?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:de("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",ce.bgColor),children:o.jsx(He,{className:de("w-4 h-4",ce.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:An,children:An})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Qe.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Qe.driver||"N/A"}, Workers: ${((Er=Qe.workers)==null?void 0:Er.count)||0}× ${((is=Qe.workers)==null?void 0:is.type)||"N/A"}`,children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Qe.details.join(" · "),children:Qe.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(K_,{costs:V,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&te&&V.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>dx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),lx(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:de("p-1 rounded transition-colors",Pt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Pt?o.jsx(fs,{className:"w-5 h-5 text-lava-600"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Pt&&(Qe.badges.length>0||Qe.driver||Qe.workers||Qe.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Qe.details.join(" · ")})]}),Pt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(we)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.vmCost)})]}),we==="LAKEBASE"&&V.storageCost!==void 0&&V.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(V.storageCost)})]}),we==="VECTOR_SEARCH"&&V.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[V.unitsUsed," unit",V.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(we)&&!en&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,as=C.avg_runtime_minutes||30,Ht=C.days_per_month||30,mi=C.hours_per_month||730,Ft=te?me*(as/60)*Ht:mi,Tn=(V.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const Fe=C.vector_capacity_millions||1,et=C.vector_search_mode||"standard",Wt=et==="storage_optimized"?64:2,wt=Math.ceil(Fe/Wt),Ut=et==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,er=wt*20,Dn=Math.max(0,hn-er),tr=Dn*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M"]})," vectors ÷ ",Wt,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," unit",wt!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[er," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(tr)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(tr)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const Fe=C.fmapi_quantity||1,et=C.fmapi_rate_type||"input_token",Wt=["provisioned_scaling","provisioned_entry"].includes(et),wt=Fe>0?V.monthlyDBUs/Fe:0,Ut=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Wt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Ut,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="LAKEBASE"){const Fe=C.lakebase_cu||1,et=C.lakebase_ha_nodes||1,Wt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ut=(Wt[K.cloud||"aws"]||Wt.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,er=C.lakebase_pitr_gb||0,Dn=C.lakebase_snapshot_gb||0,tr=.023,Ya=hn*15*tr,Fl=er*8.7*tr,Ul=Dn*3.91*tr,Vl=Ya+Fl+Ul,zl=Vl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ya)})]}),er>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[er," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(er*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Fl)})]}),Dn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Dn*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ul)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),zl&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Vl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="MODEL_SERVING"){const Fe=C.model_serving_gpu_type||"cpu",et=C.model_serving_scale_out||"small",wt=et==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[et]||4,Ut=wt>0&&V.dbuPerHour?V.dbuPerHour/wt:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DBSQL"){const Fe=C.dbsql_warehouse_size||"Small",et=C.dbsql_num_clusters||1,Wt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),wt=V.dbuPerHour?V.dbuPerHour/et:12,Ut=V.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt.toFixed(1)," DBU/hr)"]}),et>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${as}min ÷ 60 × ${Ht} days`:void 0,children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),Ut&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[Wt," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:fe(V.dbuCost)}),Ut&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DATABRICKS_APPS"){const Fe=(C.databricks_apps_size||"medium").toLowerCase(),et=Fe==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe.charAt(0).toUpperCase()+Fe.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="AI_PARSE"){const Fe=(C.ai_parse_complexity||"medium").toLowerCase(),Wt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[Fe]||62.5,wt=C.ai_parse_pages_thousands||0,Ut={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Wt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut[Fe]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="SHUTTERSTOCK_IMAGEAI"){const Fe=C.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}const Ls=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,os=V.vmCost>0&&!en,Be=K.cloud||"aws",yt=K.region||"",tn=j.find(Fe=>Fe.id===Ln||Fe.name===Ln),bn=j.find(Fe=>Fe.id===_n||Fe.name===_n),mr=A(Be,Ln)||(tn==null?void 0:tn.dbu_rate)||0,at=A(Be,_n)||(bn==null?void 0:bn.dbu_rate)||0,ln=yt&&Ln?k(Be,yt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,qt=yt&&_n?k(Be,yt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,mn=V.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:mr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:at.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),os&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(ln==null?void 0:ln.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(qt==null?void 0:qt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),os&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})})()})]})]}),Pt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(q_,{onReset:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),ze!=="table"&&fi.map((R,J)=>{var An;const C=G[R.line_item_id],V=C?{...R,...C}:R,ce=fr(R,C),He=M.has(R.line_item_id),Pt=fx(V),Rt=W_(V.workload_type),we=Rt.icon,en=ze==="expanded"||He;return o.jsx("div",{ref:be=>{Zn.current[R.line_item_id]=be},children:o.jsxs($t.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:de("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",ze==="cards"&&!He&&"py-3"),onClick:()=>px(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:de("rounded-lg flex items-center justify-center flex-shrink-0",ze==="cards"&&!He?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(we,{className:de(Rt.color,ze==="cards"&&!He?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:de("font-semibold truncate text-[var(--text-primary)]",ze==="cards"&&!He&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((An=s.find(be=>be.workload_type===R.workload_type))==null?void 0:An.display_name)||R.workload_type})})]}),o.jsx(K_,{costs:ce,size:ze==="cards"&&!He?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",qe=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&qe&&ce.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>dx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),lx(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),He?o.jsx(fs,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),en&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.vmCost)})]}),R.workload_type==="LAKEBASE"&&ce.storageCost!==void 0&&ce.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(ce.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&ce.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[ce.unitsUsed," unit",ce.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),mx(R).map((be,qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},qe)),Pt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Pt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=V.workload_type||"",qe=V.serverless_enabled||be==="DBSQL"&&(V.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Qe=V.runs_per_day&&V.avg_runtime_minutes&&!V.hours_per_month,Ts=V.runs_per_day||0,Er=V.avg_runtime_minutes||30,is=V.days_per_month||30,te=V.hours_per_month||730,me=Qe?Ts*(Er/60)*is:te,Ht=(ce.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const at=V.vector_capacity_millions||1,ln=V.vector_search_mode||"standard",qt=ln==="storage_optimized"?64:2,mn=Math.ceil(at/qt),Fe=ln==="storage_optimized"?18.29:4,et=V.vector_search_storage_gb||0,Wt=mn*20,wt=Math.max(0,et-Wt),Ut=wt*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M vectors"]})," ÷ ",qt,"⌉"]}),o.jsxs("span",{children:["= ",mn," units ×"]}),o.jsxs("span",{children:[Fe," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs × $",Ht]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),et>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Wt," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),et>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Ut)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const at=V.fmapi_quantity||0,ln=ce.monthlyDBUs/(at||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[ln.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="LAKEBASE"){const at=V.lakebase_cu||1,ln=V.lakebase_ha_nodes||1,qt=V.lakebase_storage_gb||0,mn=V.lakebase_pitr_gb||0,Fe=V.lakebase_snapshot_gb||0,et=.023,Wt=qt*15*et,wt=mn*8.7*et,Ut=Fe*3.91*et,hn=Wt+wt+Ut,er=hn>0,Dn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(Dn[K.cloud||"aws"]||Dn.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),qt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(qt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Wt)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(wt)})]}),Fe>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Fe*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),er&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="MODEL_SERVING"){const at=V.model_serving_scale_out||"small",qt=at==="custom"?V.model_serving_concurrency||4:{small:4,medium:12,large:40}[at]||4,mn=qt>0&&ce.dbuPerHour?ce.dbuPerHour/qt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",at,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="DATABRICKS_APPS"){const at=(V.databricks_apps_size||"medium").toLowerCase(),ln=at==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:at.charAt(0).toUpperCase()+at.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",ln," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="AI_PARSE"){const at=(V.ai_parse_complexity||"medium").toLowerCase(),qt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[at]||62.5,mn=V.ai_parse_pages_thousands||0,Fe={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[qt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe[at]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="SHUTTERSTOCK_IMAGEAI"){const at=V.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}const mi=V.num_workers||0,Ft=V.driver_node_type||"",Cr=V.worker_node_type||"",Tn=V.photon_enabled,Ls=ce.vmCost>0&&!qe,Ln=K.cloud||"aws",_n=K.region||"",zr=j.find(at=>at.id===Ft||at.name===Ft),os=j.find(at=>at.id===Cr||at.name===Cr),Be=A(Ln,Ft)||(zr==null?void 0:zr.dbu_rate)||0,yt=A(Ln,Cr)||(os==null?void 0:os.dbu_rate)||0,tn=_n&&Ft?k(Ln,_n,Ft,V.driver_pricing_tier||"on_demand",V.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?k(Ln,_n,Cr,V.worker_pricing_tier||"spot",V.worker_payment_option||"NA"):null,mr=ce.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Qe&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ts," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Tn?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ft,children:Be.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:yt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),Tn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),Ls&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ft,children:["$",(tn==null?void 0:tn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(ce.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),Ls&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(ce.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})})()})]})]})]}),He&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(q_,{onReset:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe}),ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onSave:()=>{ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onFormChange:be=>{ae(qe=>({...qe,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),ss?E?o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(nf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Lu,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(ms,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(_m,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),pt&&!Ye&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>vt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(sr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),ss?pt&&!Ye?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:de("text-3xl font-bold text-lava-600",Xe&&"opacity-60"),children:fe(Vn.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[fe(Vn.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:fe(Vn.totalDBUCost),children:G_(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Xe?"Loading...":fe(Vn.totalVMCost),children:Xe?"...":G_(Vn.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>ns(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:fe(V.totalCost),children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full transition-all",Pt,"group-hover:brightness-110"),style:{width:`${Math.max(He,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(ms,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Ct&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>ht(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>ht(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>{ht(!1),ns(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full",Pt),style:{width:`${Math.max(He,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>vt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>ht(!Ct),className:de("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Ct?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(ry,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(fs,{className:de("w-3 h-3 transition-transform",Ct?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[fe(Vn.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ee.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ee.size," workload",Ee.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ue&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',K.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:HC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Ze&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Ze.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),st&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ee.size," Workload",Ee.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ee.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>xt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:GC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),W&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(ms,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:XC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let k="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?k="JOBS_COMPUTE_(PHOTON)":k="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?k="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?k="ALL_PURPOSE_COMPUTE_(PHOTON)":k="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":(k=`DLT_${A}_COMPUTE`,e.photon_enabled&&(k+="_(PHOTON)"));break;case"DBSQL":const ue=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ue==="SERVERLESS"?k="SERVERLESS_SQL_COMPUTE":ue==="PRO"?k="SQL_PRO_COMPUTE":k="SQL_COMPUTE";break;case"VECTOR_SEARCH":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();k=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":k="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":k="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":k="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":k="DELTA_LIVE_TABLES_SERVERLESS";break;default:k="JOBS_COMPUTE"}let S=null;if(b){const ue=b(k);ue!==null&&ue>0&&(S=ue)}S===null&&(S=x[k]||.2),console.log(`[LiveEstimate] productType=${k}, dbuPrice=${S}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,$=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ue=g(e.driver_node_type);ue!==null&&ue>0&&(re=ue)}if(re===.5){const ue=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ue!=null&&ue.dbu_rate&&(re=ue.dbu_rate)}if(g&&e.worker_node_type){const ue=g(e.worker_node_type);ue!==null&&ue>0&&(le=ue)}if(le===.5){const ue=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ue!=null&&ue.dbu_rate&&(le=ue.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ue=k.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ue="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ue="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ue=`DLT_${A}_COMPUTE`)),v){const ve=v(ue);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var ot;return ve.sku_type===ue||ve.sku_type===k||((ot=ve.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DBSQL":const ue=l.find(Le=>Le.id===e.dbsql_warehouse_size||Le.name===e.dbsql_warehouse_size),_e=(ue==null?void 0:ue.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const Le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Jn=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Zn=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",ns=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Un=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Un){const rs=d(n,r,Un.driver_instance_type,Le,Jn),ss=d(n,r,Un.worker_instance_type,Zn,ns);$=(Un.driver_count*rs+Un.worker_count*ss)*ve*_}else if(e.driver_node_type){const rs=d(n,r,e.driver_node_type,Le,Jn),ss=e.worker_node_type?d(n,r,e.worker_node_type,Zn,ns):0,fr=e.num_workers||0;$=(rs+ss*fr)*ve*_}}break;case"VECTOR_SEARCH":const Ze=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,st=h(Ze),xt=(st==null?void 0:st.input_divisor)||(Ze==="storage_optimized"?64e6:2e6),lt=(st==null?void 0:st.dbu_per_hour)||(Ze==="storage_optimized"?18.29:4),mt=I*1e6,W=Math.ceil(mt/xt);j=W,T=W*lt,D=T*_;const P=e.vector_search_storage_gb||0,E=W*20,ie=Math.max(0,P-E),M=.023,q=ie*M;P>0&&(H=q,X={totalStorageGB:P,freeStorageGB:E,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Le=>Le.id===Se||Le.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,B=e.model_serving_scale_out||"small",ae=B==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[B]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Ve=e.lakebase_ha_nodes||1,pt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ye=(pt[n]||pt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ye*Ve,D=T*_;const ct=Math.min(e.lakebase_storage_gb||0,8192),Xe=15,It=ct*Xe,U=.023,Z=It*U,Te=e.lakebase_pitr_gb||0,K=Te*8.7*U,ut=e.lakebase_snapshot_gb||0,Bt=ut*3.91*U;(ct>0||Te>0||ut>0)&&(H=Z+K+Bt,X={totalStorageGB:ct,billableStorageGB:ct,dsuPerGB:Xe,totalDSU:It,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,vt=e.fmapi_rate_type||"input_token",Ct=["provisioned_scaling","provisioned_entry"].includes(vt),ht=e.fmapi_model?p(e.fmapi_model,vt):null;if(Ct){const Le=(ht==null?void 0:ht.dbu_per_hour)||(vt==="provisioned_scaling"?200:50);D=ft*Le}else{const Le=(ht==null?void 0:ht.dbu_per_1M_tokens)||(vt==="output_token"?3:1);D=ft*Le}break;case"FMAPI_PROPRIETARY":const ze=e.fmapi_quantity||0,Ie=e.fmapi_rate_type||"input_token",Me=Ie==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Yt=e.fmapi_context_length||"long",jt=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Ie,Re,Yt):null;if(Me){const Le=(jt==null?void 0:jt.dbu_per_hour)||150;D=ze*Le}else{let Le=jt==null?void 0:jt.dbu_per_1M_tokens;if(!Le)switch(Ie){case"output_token":Le=321.43;break;case"cache_read":Le=8.57;break;case"cache_write":Le=85.71;break;default:Le=21.43}D=ze*Le}break;case"DATABRICKS_APPS":const Ee=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ee]||.5,D=T*_;break;case"AI_PARSE":{const Le={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Jn=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Le[Jn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{D=(e.shutterstock_images||0)*.857;break}default:D=0}const F=D*S,Q=H!==void 0&&!isNaN(H)?H:0,N=F+$+Q,se=isNaN(F)?0:F,pe=isNaN($)?0:$,L=isNaN(N)?se:N,ke=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(S)?.15:S;return{monthlyDBUs:ke,dbuCost:se,vmCost:pe,totalCost:L,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:Q>0?Q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function gs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?aE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of gs(Z_,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of gs(Z_,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of gs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of gs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of gs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),p=d.length>0?gs(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=gs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=gs(Qm(l),e.tiersPerCloud);for(const p of u){const f=Hu(t,l),h=f.length>0?gs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[k,A]=m.useState({current:0,total:0}),[S,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),$=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:F,isPricingBundleLoaded:Q,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:ke,getVectorSearchRate:De}=ws();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,F),[j,F]),Y=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ue=m.useMemo(()=>{const M=new Set(w.map(q=>q.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,q,Se)=>{const Pe=Q&&F.modelServingRates?Object.entries(F.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,B])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:B.dbu_rate}}):xe;return{cloud:M,region:q,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,B)=>{if(Q&&F.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${B}`,ae=F.fmapiDatabricksRates[G];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,B)},getFMAPIProprietaryRate:(O,B,G,ae,je)=>{if(Q&&F.fmapiProprietaryRates){const Ve=ae||"global",pt=je||"all",it=`${M.toLowerCase()}:${O.toLowerCase()}:${B.toLowerCase()}:${Ve}:${pt}:${G}`,Ye=F.fmapiProprietaryRates[it];if(Ye)return{dbu_per_1M_tokens:Ye.is_hourly?void 0:Ye.dbu_rate,dbu_per_hour:Ye.is_hourly?Ye.dbu_rate:void 0}}return ke(O,B,G)},getVectorSearchRate:O=>{if(Q&&F.vectorSearchRates){const B=`${M.toLowerCase()}:${O}`,G=F.vectorSearchRates[B];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>Q?Pm(F,M,O):null,getPhotonMultiplier:O=>Q?iE(F,M,O):null,getDBUPrice:O=>Q?Lg(F,M,q,Se,O):null,getDBSQLWarehouseConfig:(O,B)=>Q?cl(F,M,O,B):null}},[X,re,le,he,xe,oe,Q,F,se,L,ke,De]),ve=async M=>{var K,ut,nt,Bt,ft,vt,Ct,ht,ze;const{environment:q,workloadType:Se,config:Pe}=M,O=_e(q.cloud,q.region,q.tier),B={...Pe,workload_type:Se},G=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Ie=cl(F,q.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Ie){const Me=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.driver_instance_type,Me,Re));const Yt=Pe.dbsql_worker_pricing_tier||"on_demand",jt=Pe.dbsql_worker_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.worker_instance_type,Yt,jt))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(G.push(pe(q.cloud,q.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&G.push(pe(q.cloud,q.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const ae=performance.now(),je=y8(B,O),Ve=performance.now()-ae,pt=performance.now();let it=null,Ye,ct;const Xe=j8(Se,Pe),It=N8(M);try{const Ie=await fetch(Xe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(It)});if(Ie.ok){const Me=await Ie.json();ct=Me;const Re=Me.data||Me,Yt=((K=Re.dbu_calculation)==null?void 0:K.dbu_per_month)??Re.dbu_per_month??(((ut=Re.dbu_calculation)==null?void 0:ut.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),jt=((nt=Re.dbu_calculation)==null?void 0:nt.dbu_cost_per_month)??((ft=(Bt=Re.total_cost)==null?void 0:Bt.breakdown)==null?void 0:ft.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ee=((vt=Re.vm_costs)==null?void 0:vt.vm_cost_per_month)??((ht=(Ct=Re.total_cost)==null?void 0:Ct.breakdown)==null?void 0:ht.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let Nt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?Nt=Re.total_cost.cost_per_month??jt+Ee:typeof Re.total_cost=="number"?Nt=Re.total_cost:Nt=Re.total_cost_per_month??jt+Ee,it={monthlyDBUs:Yt,dbuCost:jt,vmCost:Ee,totalCost:Nt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Me,parsed:it})}else{const Me=await Ie.text();try{const Re=JSON.parse(Me);Ye=`HTTP ${Ie.status}: ${((ze=Re.detail)==null?void 0:ze.message)||Re.detail||Re.message||Me}`}catch{Ye=`HTTP ${Ie.status}: ${Me}`}}}catch(Ie){Ye=Ie instanceof Error?Ie.message:"Unknown error"}const U=performance.now()-pt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,it,g),$e=Te<=g&&!Ye;return{testCase:M,localResult:je,apiResult:it,apiError:Ye,apiRequestBody:It,apiRawResponse:ct,localTimeMs:Ve,apiTimeMs:U,matches:$e,totalCostDiffPercent:Te,discrepancies:Z}},ot=()=>{D.current=!0,i(!0)},Ze=()=>{D.current=!1,i(!1)},I=()=>{$.current=!0,l(!0),D.current=!1,i(!1)},st=async()=>{for(;D.current&&!$.current;)await new Promise(M=>setTimeout(M,100))},xt=async()=>{r(!0),i(!1),l(!1),D.current=!1,$.current=!1,t([]),A({current:0,total:Y.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:q,tier:Se,workloadType:Pe,serverless:O,photon:B,driverNode:G,workerNode:ae,numWorkers:je,runsPerDay:Ve,avgRuntime:pt,daysPerMonth:it,hoursPerMonth:Ye}=S,ct={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:q,tier:Se},config:{serverless_enabled:O,photon_enabled:B,driver_node_type:G,worker_node_type:ae,num_workers:je,runs_per_day:Ve,avg_runtime_minutes:pt,days_per_month:it,hours_per_month:Ye,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Xe=await ve(ct);t([Xe]),u(null),r(!1)},mt=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,q=e.filter(G=>!G.matches).length,Se=e.filter(G=>G.apiError).length,Pe=e.length>0?e.reduce((G,ae)=>G+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,ae)=>G+ae.apiTimeMs,0)/e.length:0,B={};return e.forEach(G=>{const ae=G.testCase.category;B[ae]||(B[ae]={passed:0,failed:0}),G.matches?B[ae].passed++:B[ae].failed++}),{passed:M,failed:q,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:B}},[e]),W=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],q=e.map(G=>{var ae;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((ae=G.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Se=[M.join(","),...q.map(G=>G.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),B=document.createElement("a");B.href=O,B.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,B.click()},P=M=>{const q=new Set(d);q.has(M)?q.delete(M):q.add(M),p(q)},E=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(cD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(ZL,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:W,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(LD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(e3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Ze,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:xt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:S.cloud,onChange:M=>T({...S,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:S.region,onChange:M=>T({...S,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Km(F,S.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:S.tier,onChange:M=>T({...S,tier:M.target.value}),className:"w-full text-sm",children:Qm(S.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:S.workloadType,onChange:M=>T({...S,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.serverless,onChange:M=>T({...S,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.photon,onChange:M=>T({...S,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:S.driverNode,onChange:M=>T({...S,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:S.workerNode,onChange:M=>T({...S,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:S.numWorkers,onChange:M=>T({...S,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:S.runsPerDay,onChange:M=>T({...S,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:S.avgRuntime,onChange:M=>T({...S,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:S.daysPerMonth,onChange:M=>T({...S,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(jD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Km(F,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:q=>{q.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ue.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Q?"text-green-500":"text-yellow-500"}`,children:[Q?o.jsx(Au,{className:"w-5 h-5"}):o.jsx(ms,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:mt.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:mt.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:mt.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[mt.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[mt.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(mt.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(mt.byCategory).map(([M,{passed:q,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[q," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx($t.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${k.current/k.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[k.current," / ",k.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:Y.map(M=>{const q=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${q&&!q.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>q&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[q&&(Se?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q?E(q.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q!=null&&q.apiResult?E(q.apiResult.totalCost):q!=null&&q.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:q?o.jsxs("span",{className:q.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[q.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):q?q.matches?o.jsx(Au,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(C3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),q&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(q.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:E(q.localResult.totalCost)})]}),q.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",q.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),q.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:q.apiError})}):q.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(q.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:E(q.apiResult.totalCost)})]})]}):null]})]}),q.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:q.discrepancies.map((O,B)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},B))})]})})]}),q.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(q.apiRawResponse,null,2)})})]}),q.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(q.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:q.testCase.environment,config:q.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(jN,{children:o.jsxs(wi,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(wi,{index:!0,element:o.jsx(u8,{})}),o.jsx(wi,{path:"calculator",element:o.jsx(X_,{})}),o.jsx(wi,{path:"calculator/:id",element:o.jsx(X_,{})}),o.jsx(wi,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(wi,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();rf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(DN,{children:[o.jsx(A8,{}),o.jsx(EP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-OuWyKeq_.js b/lakemeter/backend/static/assets/index-OuWyKeq_.js new file mode 100644 index 00000000..bfc8d134 --- /dev/null +++ b/lakemeter/backend/static/assets/index-OuWyKeq_.js @@ -0,0 +1,354 @@ +function l2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var ms=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var rb={exports:{}},Gu={},sb={exports:{}},We={};/** + * @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 hl=Symbol.for("react.element"),c2=Symbol.for("react.portal"),u2=Symbol.for("react.fragment"),d2=Symbol.for("react.strict_mode"),p2=Symbol.for("react.profiler"),f2=Symbol.for("react.provider"),m2=Symbol.for("react.context"),h2=Symbol.for("react.forward_ref"),g2=Symbol.for("react.suspense"),x2=Symbol.for("react.memo"),v2=Symbol.for("react.lazy"),wx=Symbol.iterator;function y2(e){return e===null||typeof e!="object"?null:(e=wx&&e[wx]||e["@@iterator"],typeof e=="function"?e:null)}var ib={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ab=Object.assign,ob={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||ib}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function lb(){}lb.prototype=Ia.prototype;function Xm(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||ib}var Jm=Xm.prototype=new lb;Jm.constructor=Xm;ab(Jm,Ia.prototype);Jm.isPureReactComponent=!0;var kx=Array.isArray,cb=Object.prototype.hasOwnProperty,Zm={current:null},ub={key:!0,ref:!0,__self:!0,__source:!0};function db(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)cb.call(t,r)&&!ub.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,de=B[se];if(0>>1;ses(Le,N))ws(q,Le)?(B[se]=q,B[w]=N,se=w):(B[se]=Le,B[we]=N,se=we);else if(ws(q,N))B[se]=q,B[w]=N,se=w;else break e}}return Y}function s(B,Y){var N=B.sortIndex-Y.sortIndex;return N!==0?N:B.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=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){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=B)r(u),Y.sortIndex=Y.expirationTime,t(c,Y);else break;Y=n(u)}}function S(B){if(v=!1,_(B),!g)if(n(c)!==null)g=!0,xe(A);else{var Y=n(u);Y!==null&&oe(S,Y.startTime-B)}}function A(B,Y){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Y),p=n(c);p!==null&&(!(p.expirationTime>Y)||B&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var de=se(p.expirationTime<=Y);Y=e.unstable_now(),typeof de=="function"?p.callback=de:p===n(c)&&r(c),_(Y)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var we=n(u);we!==null&&oe(S,we.startTime-Y),L=!1}return L}finally{p=null,f=N,h=!1}}var E=!1,T=null,D=-1,z=5,j=-1;function H(){return!(e.unstable_now()-jB||125se?(B.sortIndex=N,t(u,B),n(c)===null&&B===n(u)&&(v?(x(D),D=-1):v=!0,oe(S,N-se))):(B.sortIndex=de,t(c,B),g||h||(g=!0,xe(A))),B},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(B){var Y=f;return function(){var N=f;f=Y;try{return B.apply(this,arguments)}finally{f=N}}}})(gb);hb.exports=gb;var A2=hb.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 T2=m,lr=A2;function ee(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"),af=Object.prototype.hasOwnProperty,L2=/^[: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]*$/,Ex={},Cx={};function D2(e){return af.call(Cx,e)?!0:af.call(Ex,e)?!1:L2.test(e)?Cx[e]=!0:(Ex[e]=!0,!1)}function M2(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 O2(e,t,n,r){if(t===null||typeof t>"u"||M2(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 zn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new zn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new zn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new zn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new zn(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){yn[e]=new zn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new zn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new zn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new zn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new zn(e,5,!1,e.toLowerCase(),null,!1,!1)});var th=/[\-:]([a-z])/g;function nh(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(th,nh);yn[t]=new zn(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(th,nh);yn[t]=new zn(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(th,nh);yn[t]=new zn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new zn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new zn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new zn(e,1,!1,e.toLowerCase(),null,!0,!0)});function rh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function I2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Ud(e.type,!1),e;case 11:return e=Ud(e.type.render,!1),e;case 1:return e=Ud(e.type,!0),e;default:return""}}function uf(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 Xi:return"Fragment";case Yi:return"Portal";case of:return"Profiler";case sh:return"StrictMode";case lf:return"Suspense";case cf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case yb:return(e.displayName||"Context")+".Consumer";case vb:return(e._context.displayName||"Context")+".Provider";case ih:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ah:return t=e.displayName||null,t!==null?t:uf(e.type)||"Memo";case Fs:t=e._payload,e=e._init;try{return uf(e(t))}catch{}}return null}function F2(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 uf(t);case 8:return t===sh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function bb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function B2(e){var t=bb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ql(e){e._valueTracker||(e._valueTracker=B2(e))}function wb(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=bb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Xc(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 df(e,t){var n=t.checked;return Mt({},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=ri(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 kb(e,t){t=t.checked,t!=null&&rh(e,"checked",t,!1)}function pf(e,t){kb(e,t);var n=ri(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")?ff(e,t.type,n):t.hasOwnProperty("defaultValue")&&ff(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Px(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 ff(e,t,n){(t!=="number"||Xc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Yl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},U2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){U2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function jb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Nb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=jb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var V2=Mt({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 gf(e,t){if(t){if(V2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function xf(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 vf=null;function oh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var yf=null,ha=null,ga=null;function Tx(e){if(e=vl(e)){if(typeof yf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Ju(t),yf(e.stateNode,e.type,t))}}function Pb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Rb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Tx(e),t)for(e=0;e>>=0,e===0?32:31-(J2(e)/Z2|0)|0}var Xl=64,Jl=4194304;function ho(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 tu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function rj(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=wo),Vx=" ",zx=!1;function Yb(e,t){switch(e){case"keyup":return Aj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Lj(e,t){switch(e){case"compositionend":return Xb(t);case"keypress":return t.which!==32?null:(zx=!0,Vx);case"textInput":return e=t.data,e===Vx&&zx?null:e;default:return null}}function Dj(e,t){if(Ji)return e==="compositionend"||!hh&&Yb(e,t)?(e=Kb(),Rc=ph=Hs=null,Ji=!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=Wx(n)}}function t1(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?t1(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function n1(){for(var e=window,t=Xc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Xc(e.document)}return t}function gh(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 $j(e){var t=n1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&t1(n.ownerDocument.documentElement,n)){if(r!==null&&gh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=Gx(n,i);var a=Gx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Ef=null,So=null,Cf=!1;function Kx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cf||Zi==null||Zi!==Xc(r)||(r=Zi,"selectionStart"in r&&gh(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}),So&&Wo(So,r)||(So=r,r=su(Ef,"onSelect"),0na||(e.current=Tf[na],Tf[na]=null,na--)}function _t(e,t){na++,Tf[na]=e.current,e.current=t}var si={},Rn=li(si),Wn=li(!1),Li=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Gn(e){return e=e.childContextTypes,e!=null}function au(){kt(Wn),kt(Rn)}function t0(e,t,n){if(Rn.current!==si)throw Error(ee(168));_t(Rn,t),_t(Wn,n)}function d1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,F2(e)||"Unknown",s));return Mt({},n,r)}function ou(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Li=Rn.current,_t(Rn,e),_t(Wn,Wn.current),!0}function n0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=d1(e,t,Li),r.__reactInternalMemoizedMergedChildContext=e,kt(Wn),kt(Rn),_t(Rn,e)):kt(Wn),_t(Wn,n)}var ds=null,Zu=!1,ep=!1;function p1(e){ds===null?ds=[e]:ds.push(e)}function t5(e){Zu=!0,p1(e)}function ci(){if(!ep&&ds!==null){ep=!0;var e=0,t=ut;try{var n=ds;for(ut=1;e>=a,s-=a,gs=1<<32-Mr(t)+s|n<D?(z=T,T=null):z=T.sibling;var j=f(x,T,_[D],S);if(j===null){T===null&&(T=z);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),E===null?A=j:E.sibling=j,E=j,T=z}if(D===_.length)return n(x,T),Pt&&vi(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],S),T!==null&&(y=i(T,y,D),E===null?A=T:E.sibling=T,E=T);return Pt&&vi(x,D),A}for(T=r(x,T);D<_.length;D++)z=h(T,x,D,_[D],S),z!==null&&(e&&z.alternate!==null&&T.delete(z.key===null?D:z.key),y=i(z,y,D),E===null?A=z:E.sibling=z,E=z);return e&&T.forEach(function(H){return t(x,H)}),Pt&&vi(x,D),A}function v(x,y,_,S){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var E=A=null,T=y,D=y=0,z=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?(z=T,T=null):z=T.sibling;var H=f(x,T,j.value,S);if(H===null){T===null&&(T=z);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),E===null?A=H:E.sibling=H,E=H,T=z}if(j.done)return n(x,T),Pt&&vi(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,S),j!==null&&(y=i(j,y,D),E===null?A=j:E.sibling=j,E=j);return Pt&&vi(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,S),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),E===null?A=j:E.sibling=j,E=j);return e&&T.forEach(function(X){return t(x,X)}),Pt&&vi(x,D),A}function b(x,y,_,S){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Kl:e:{for(var A=_.key,E=y;E!==null;){if(E.key===A){if(A=_.type,A===Xi){if(E.tag===7){n(x,E.sibling),y=s(E,_.props.children),y.return=x,x=y;break e}}else if(E.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Fs&&i0(A)===E.type){n(x,E.sibling),y=s(E,_.props),y.ref=so(x,E,_),y.return=x,x=y;break e}n(x,E);break}else t(x,E);E=E.sibling}_.type===Xi?(y=Ri(_.props.children,x.mode,S,_.key),y.return=x,x=y):(S=Fc(_.type,_.key,_.props,null,x.mode,S),S.ref=so(x,y,_),S.return=x,x=S)}return a(x);case Yi:e:{for(E=_.key;y!==null;){if(y.key===E)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=lp(_,x.mode,S),y.return=x,x=y}return a(x);case Fs:return E=_._init,b(x,y,E(_._payload),S)}if(mo(_))return g(x,y,_,S);if(Za(_))return v(x,y,_,S);ic(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=op(_,x.mode,S),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=g1(!0),x1=g1(!1),uu=li(null),du=null,ia=null,_h=null;function bh(){_h=ia=du=null}function wh(e){var t=uu.current;kt(uu),e._currentValue=t}function Mf(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 va(e,t){du=e,_h=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(qn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(_h!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(du===null)throw Error(ee(308));ia=e,du.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var Ei=null;function kh(e){Ei===null?Ei=[e]:Ei.push(e)}function v1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,kh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Ss(e,r)}function Ss(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 Bs=!1;function Sh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function y1(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 vs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Ss(e,n)}return s=r.interleaved,s===null?(t.next=t,kh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Ss(e,n)}function Tc(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,ch(e,n)}}function a0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 pu(e,t,n,r){var s=e.updateQueue;Bs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Mt({},p,f);break e;case 2:Bs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Oi|=a,e.lanes=a,e.memoizedState=p}}function o0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=np.transition;np.transition={};try{e(!1),t()}finally{ut=n,np.transition=r}}function O1(){return Sr().memoizedState}function i5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},I1(e))F1(t,n);else if(n=v1(e,t,n,r),n!==null){var s=Un();Or(n,e,r,s),B1(n,t,r)}}function a5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(I1(e))F1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Fr(l,a)){var c=t.interleaved;c===null?(s.next=s,kh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=v1(e,t,s,r),n!==null&&(s=Un(),Or(n,e,r,s),B1(n,t,r))}}function I1(e){var t=e.alternate;return e===Dt||t!==null&&t===Dt}function F1(e,t){Eo=mu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function B1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ch(e,n)}}var hu={readContext:kr,useCallback:kn,useContext:kn,useEffect:kn,useImperativeHandle:kn,useInsertionEffect:kn,useLayoutEffect:kn,useMemo:kn,useReducer:kn,useRef:kn,useState:kn,useDebugValue:kn,useDeferredValue:kn,useTransition:kn,useMutableSource:kn,useSyncExternalStore:kn,useId:kn,unstable_isNewReconciler:!1},o5={readContext:kr,useCallback:function(e,t){return Wr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:c0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Dc(4194308,4,A1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Dc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Dc(4,2,e,t)},useMemo:function(e,t){var n=Wr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Wr();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=i5.bind(null,Dt,e),[r.memoizedState,e]},useRef:function(e){var t=Wr();return e={current:e},t.memoizedState=e},useState:l0,useDebugValue:Th,useDeferredValue:function(e){return Wr().memoizedState=e},useTransition:function(){var e=l0(!1),t=e[0];return e=s5.bind(null,e[1]),Wr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Dt,s=Wr();if(Pt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),mn===null)throw Error(ee(349));Mi&30||k1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,c0(E1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,S1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Wr(),t=mn.identifierPrefix;if(Pt){var n=xs,r=gs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Kr]=t,e[Qo]=r,Q1(e,t,!1,!1),t.stateNode=e;e:{switch(a=xf(n,r),n){case"dialog":wt("cancel",e),wt("close",e),s=r;break;case"iframe":case"object":case"embed":wt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=fu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Pt)return Sn(t),null}else 2*Ht()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ht(),t.sibling=null,n=Tt.current,_t(Tt,r?n&1|2:n&1),t):(Sn(t),null);case 22:case 23:return Fh(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?nr&1073741824&&(Sn(t),t.subtreeFlags&6&&(t.flags|=8192)):Sn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function h5(e,t){switch(vh(t),t.tag){case 1:return Gn(t.type)&&au(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),kt(Wn),kt(Rn),jh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ch(t),null;case 13:if(kt(Tt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return kt(Tt),null;case 4:return Ca(),null;case 10:return wh(t.type._context),null;case 22:case 23:return Fh(),null;case 24:return null;default:return null}}var oc=!1,Cn=!1,g5=typeof WeakSet=="function"?WeakSet:Set,he=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Bt(e,t,r)}else n.current=null}function Hf(e,t,n){try{n()}catch(r){Bt(e,t,r)}}var _0=!1;function x5(e,t){if(jf=nu,e=n1(),gh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Nf={focusedElem:e,selectionRange:n},nu=!1,he=t;he!==null;)if(t=he,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,he=e;else for(;he!==null;){t=he;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(S){Bt(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,he=e;break}he=t.return}return g=_0,_0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&Hf(t,n,i)}s=s.next}while(s!==r)}}function nd(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 qf(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 J1(e){var t=e.alternate;t!==null&&(e.alternate=null,J1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Kr],delete t[Qo],delete t[Af],delete t[Zj],delete t[e5])),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 Z1(e){return e.tag===5||e.tag===3||e.tag===4}function b0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Z1(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 Wf(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=iu));else if(r!==4&&(e=e.child,e!==null))for(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}function Gf(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(Gf(e,t,n),e=e.sibling;e!==null;)Gf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)ew(e,t,n),n=n.sibling}function ew(e,t,n){if(Xr&&typeof Xr.onCommitFiberUnmount=="function")try{Xr.onCommitFiberUnmount(Ku,n)}catch{}switch(n.tag){case 5:Cn||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Zd(e.parentNode,n):e.nodeType===1&&Zd(e,n),Ho(e)):Zd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!Cn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&Hf(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!Cn&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Bt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(Cn=(r=Cn)||n.memoizedState!==null,Ms(e,t,n),Cn=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function w0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new g5),t.forEach(function(r){var s=C5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Ht()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*y5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,vu=0,Je&6)throw Error(ee(331));var s=Je;for(Je|=4,he=e.current;he!==null;){var i=he,a=i.child;if(he.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cHt()-Oh?Pi(e,0):Mh|=n),Kn(e,t)}function lw(e,t){t===0&&(e.mode&1?(t=Jl,Jl<<=1,!(Jl&130023424)&&(Jl=4194304)):t=1);var n=Un();e=Ss(e,t),e!==null&&(gl(e,t,n),Kn(e,n))}function E5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),lw(e,n)}function C5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),lw(e,n)}var cw;cw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Wn.current)qn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return qn=!1,f5(e,t,n);qn=!!(e.flags&131072)}else qn=!1,Pt&&t.flags&1048576&&f1(t,cu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mc(e,t),e=t.pendingProps;var s=ka(t,Rn.current);va(t,n),s=Ph(null,t,r,e,s,n);var i=Rh();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Gn(r)?(i=!0,ou(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Sh(t),s.updater=td,t.stateNode=s,s._reactInternals=t,If(t,r,e,n),t=Uf(null,t,r,!0,i,n)):(t.tag=0,Pt&&i&&xh(t),Fn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=N5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=x0(null,t,r,e,n);break e;case 11:t=h0(null,t,r,e,n);break e;case 14:t=g0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),x0(e,t,r,s,n);case 3:e:{if(W1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,y1(e,t),pu(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=v0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=v0(e,t,r,n,s);break e}else for(sr=Xs(t.stateNode.containerInfo.firstChild),ir=t,Pt=!0,Dr=null,n=x1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Es(e,t,n);break e}Fn(e,t,r,n)}t=t.child}return t;case 5:return _1(t),e===null&&Df(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Pf(r,s)?a=null:i!==null&&Pf(r,i)&&(t.flags|=32),q1(e,t),Fn(e,t,a,n),t.child;case 6:return e===null&&Df(t),null;case 13:return G1(e,t,n);case 4:return Eh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Fn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 7:return Fn(e,t,t.pendingProps,n),t.child;case 8:return Fn(e,t,t.pendingProps.children,n),t.child;case 12:return Fn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,_t(uu,r._currentValue),r._currentValue=a,i!==null)if(Fr(i.value,a)){if(i.children===s.children&&!Wn.current){t=Es(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=vs(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Mf(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Mf(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Fn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Fn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),g0(e,t,r,s,n);case 15:return $1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Mc(e,t),t.tag=1,Gn(r)?(e=!0,ou(t)):e=!1,va(t,n),U1(t,r,s),If(t,r,s,n),Uf(null,t,r,!0,e,n);case 19:return K1(e,t,n);case 22:return H1(e,t,n)}throw Error(ee(156,t.tag))};function uw(e,t){return Ib(e,t)}function j5(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 br(e,t,n,r){return new j5(e,t,n,r)}function Uh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function N5(e){if(typeof e=="function")return Uh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ih)return 11;if(e===ah)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Fc(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Uh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ri(n.children,s,i,t);case sh:a=8,s|=8;break;case of:return e=br(12,n,t,s|2),e.elementType=of,e.lanes=i,e;case lf:return e=br(13,n,t,s),e.elementType=lf,e.lanes=i,e;case cf:return e=br(19,n,t,s),e.elementType=cf,e.lanes=i,e;case _b:return sd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vb:a=10;break e;case yb:a=9;break e;case ih:a=11;break e;case ah:a=14;break e;case Fs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ri(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function sd(e,t,n,r){return e=br(22,e,r,t),e.elementType=_b,e.lanes=n,e.stateNode={isHidden:!1},e}function op(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function lp(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function P5(e,t,n,r,s){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=zd(0),this.expirationTimes=zd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Vh(e,t,n,r,s,i,a,l,c){return e=new P5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Sh(i),e}function R5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(mw)}catch(e){console.error(e)}}mw(),mb.exports=ur;var la=mb.exports,R0=la;sf.createRoot=R0.createRoot,sf.hydrateRoot=R0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function qh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function O5(){return Math.random().toString(36).substr(2,8)}function T0(e,t){return{usr:e.state,key:e.key,idx:t}}function Jf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||O5()})}function bu(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 Ua(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 I5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Jf(v.location,b,x);u=d()+1;let _=T0(y,u),S=v.createHref(y);try{a.pushState(_,"",S)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(S)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Jf(v.location,b,x);u=d();let _=T0(y,u),S=v.createHref(y);a.replaceState(_,"",S),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:bu(b);return y=y.replace(/ $/,"%20"),Xt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(A0,p),c=b,()=>{s.removeEventListener(A0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var L0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(L0||(L0={}));function F5(e,t,n){return n===void 0&&(n="/"),B5(e,t,n)}function B5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=Wh(s.pathname||"/",n);if(i==null)return null;let a=hw(e);U5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Xt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Xt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),hw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:G5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of gw(i.path))s(i,a,c)}),t}function gw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=gw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function U5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:K5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const V5=/^:[\w-]+$/,z5=3,$5=2,H5=1,q5=10,W5=-2,D0=e=>e==="*";function G5(e,t){let n=e.split("/"),r=n.length;return n.some(D0)&&(r+=W5),t&&(r+=$5),n.filter(s=>!D0(s)).reduce((s,i)=>s+(V5.test(i)?z5:i===""?H5:q5),r)}function K5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function Q5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function X5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),qh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function J5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qh(!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 Wh(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 Z5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,eN=e=>Z5.test(e);function tN(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(eN(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),qh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=M0(n.substring(1),"/"):i=M0(n,t)}else i=t;return{pathname:i,search:sN(r),hash:iN(s)}}function M0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function cp(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 nN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function xw(e,t){let n=nN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function vw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Xt(!s.pathname||!s.pathname.includes("?"),cp("?","pathname","search",s)),Xt(!s.pathname||!s.pathname.includes("#"),cp("#","pathname","hash",s)),Xt(!s.search||!s.search.includes("#"),cp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=tN(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),rN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),sN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,iN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function aN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const yw=["post","put","patch","delete"];new Set(yw);const oN=["get",...yw];new Set(oN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=vw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const dN=m.createContext(null);function pN(e){let t=m.useContext(Ps).outlet;return t&&m.createElement(dN.Provider,{value:e},t)}function ww(){let{matches:e}=m.useContext(Ps),t=e[e.length-1];return t?t.params:{}}function kw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(zi),{matches:s}=m.useContext(Ps),{pathname:i}=bl(),a=JSON.stringify(xw(s,r.v7_relativeSplatPath));return m.useMemo(()=>vw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function fN(e,t){return mN(e,t)}function mN(e,t,n,r){_l()||Xt(!1);let{navigator:s}=m.useContext(zi),{matches:i}=m.useContext(Ps),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Xt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=F5(e,{pathname:h}),v=yN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(cd.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function hN(){let e=kN(),t=aN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const gN=m.createElement(hN,null);class xN extends m.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?m.createElement(Ps.Provider,{value:this.props.routeContext},m.createElement(_w.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function vN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Gh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Ps.Provider,{value:t},r)}function yN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Xt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||gN,c&&(u<0&&f===0?(EN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(vN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(xN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var Sw=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Sw||{}),Ew=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}(Ew||{});function _N(e){let t=m.useContext(Gh);return t||Xt(!1),t}function bN(e){let t=m.useContext(lN);return t||Xt(!1),t}function wN(e){let t=m.useContext(Ps);return t||Xt(!1),t}function Cw(e){let t=wN(),n=t.matches[t.matches.length-1];return n.route.id||Xt(!1),n.route.id}function kN(){var e;let t=m.useContext(_w),n=bN(),r=Cw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function SN(){let{router:e}=_N(Sw.UseNavigateStable),t=Cw(Ew.UseNavigateStable),n=m.useRef(!1);return bw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const O0={};function EN(e,t,n){O0[e]||(O0[e]=!0)}function CN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function jN(e){return pN(e.context)}function _i(e){Xt(!1)}function NN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Xt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=Wh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(zi.Provider,{value:u},m.createElement(cd.Provider,{children:n,value:v}))}function PN(e){let{children:t,location:n}=e;return fN(Zf(t),n)}new Promise(()=>{});function Zf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Zf(r.props.children,i));return}r.type!==_i&&Xt(!1),!r.props.index||!r.props.children||Xt(!1);let a={id:r.props.id||i.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&&(a.children=Zf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 em(){return em=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function AN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function TN(e,t){return e.button===0&&(!t||t==="_self")&&!AN(e)}const LN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],DN="6";try{window.__reactRouterVersion=DN}catch{}const MN="startTransition",I0=S2[MN];function ON(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=M5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&I0?I0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>CN(r),[r]),m.createElement(NN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const IN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",FN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=RN(t,LN),{basename:h}=m.useContext(zi),g,v=!1;if(typeof u=="string"&&FN.test(u)&&(g=u,IN))try{let _=new URL(window.location.href),S=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=Wh(S.pathname,h);S.origin===_.origin&&A!=null?u=A+S.search+S.hash:v=!0}catch{}let b=cN(u,{relative:s}),x=BN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",em({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var F0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(F0||(F0={}));var B0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(B0||(B0={}));function BN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=ud(),u=bl(),d=kw(e,{relative:a});return m.useCallback(p=>{if(TN(p,n)){p.preventDefault();let f=r!==void 0?r:bu(u)===bu(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let UN={data:""},VN=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||UN},zN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,$N=/\/\*[^]*?\*\/| +/g,U0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},os={},jw=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+jw(e[n]);return t}return e},HN=(e,t,n,r,s)=>{let i=jw(e),a=os[i]||(os[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!os[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=zN.exec(u.replace($N,""));)d[4]?f.shift():d[3]?(p=d[3].replace(U0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(U0," ").trim();return f[0]})(e);os[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&os.g?os.g:null;return n&&(os.g=os[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(os[a],t,r,l),a},qN=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function dd(e){let t=this||{},n=e.call?e(t.p):e;return HN(n.unshift?n.raw?qN(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,VN(t.target),t.g,t.o,t.k)}let Nw,tm,nm;dd.bind({g:1});let Cs=dd.bind({k:1});function WN(e,t,n,r){$s.p=t,Nw=e,tm=n,nm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:tm&&tm()},l),n.o=/ *go\d+/.test(c),l.className=dd.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),nm&&u[0]&&nm(l),Nw(u,l)}return s}}var GN=e=>typeof e=="function",ku=(e,t)=>GN(e)?e(t):e,KN=(()=>{let e=0;return()=>(++e).toString()})(),Pw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),QN=20,Kh="default",Rw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Rw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Aw={toasts:[],pausedAt:void 0,settings:{toastLimit:QN}},Qr={},Tw=(e,t=Kh)=>{Qr[t]=Rw(Qr[t]||Aw,e),Bc.forEach(([n,r])=>{n===t&&r(Qr[t])})},Lw=e=>Object.keys(Qr).forEach(t=>Tw(e,t)),YN=e=>Object.keys(Qr).find(t=>Qr[t].toasts.some(n=>n.id===e)),pd=(e=Kh)=>t=>{Tw(t,e)},XN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},JN=(e={},t=Kh)=>{let[n,r]=m.useState(Qr[t]||Aw),s=m.useRef(Qr[t]);m.useEffect(()=>(s.current!==Qr[t]&&r(Qr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||XN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},ZN=(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)||KN()}),wl=e=>(t,n)=>{let r=ZN(t,e,n);return pd(r.toasterId||YN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?pd(t)(n):Lw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?pd(t)(n):Lw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?ku(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?ku(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var eP=1e3,tP=(e,t="default")=>{let{toasts:n,pausedAt:r}=JN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=eP)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(pd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,S)=>S_.visible).slice(...h?[y+1]:[0,y]).reduce((_,S)=>_+(S.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},nP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,rP=Cs` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,sP=Cs` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,iP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${nP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${rP} 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: ${sP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,aP=Cs` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,oP=ui("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: ${aP} 1s linear infinite; +`,lP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,cP=Cs` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,uP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${lP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${cP} 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; + } +`,dP=ui("div")` + position: absolute; +`,pP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,fP=Cs` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,mP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${fP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,hP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(mP,null,t):t:n==="blank"?null:m.createElement(pP,null,m.createElement(oP,{...r}),n!=="loading"&&m.createElement(dP,null,n==="error"?m.createElement(iP,{...r}):m.createElement(uP,{...r})))},gP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,xP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,vP="0%{opacity:0;} 100%{opacity:1;}",yP="0%{opacity:1;} 100%{opacity:0;}",_P=ui("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; +`,bP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,wP=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=Pw()?[vP,yP]:[gP(n),xP(n)];return{animation:t?`${Cs(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Cs(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},kP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?wP(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(hP,{toast:e}),a=m.createElement(bP,{...e.ariaProps},ku(e.message,e));return m.createElement(_P,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});WN(m.createElement);var SP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},EP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:Pw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},CP=dd` + z-index: 9999; + > * { + pointer-events: auto; + } +`,uc=16,jP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=tP(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:uc,left:uc,right:uc,bottom:uc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=EP(p,f);return m.createElement(SP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?CP:"",style:h},d.type==="custom"?ku(d.message,d):s?s(d):m.createElement(kP,{toast:d,position:p}))}))},He=an;const Qh=m.createContext({});function Yh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const fd=m.createContext(null),Xh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class NP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function PP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Xh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(NP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const RP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Yh(AP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(PP,{isPresent:n,children:e})),o.jsx(fd.Provider,{value:d,children:e})};function AP(){return new Map}function Dw(e=!0){const t=m.useContext(fd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const dc=e=>e.key||"";function V0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Jh=typeof window<"u",Mw=Jh?m.useLayoutEffect:m.useEffect,rm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Dw(a),u=m.useMemo(()=>V0(e),[e]),d=a&&!l?[]:u.map(dc),p=m.useRef(!0),f=m.useRef(u),h=Yh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Mw(()=>{p.current=!1,f.current=u;for(let S=0;S{const A=dc(S),E=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach(z=>{z||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(RP,{isPresent:E,initial:!p.current||n?void 0:!1,custom:E?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:E?void 0:T,children:S},A)})})},ar=e=>e;let Ow=ar;function Zh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},ys=e=>e*1e3,_s=e=>e/1e3,TP={useManualTiming:!1};function LP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const pc=["read","resolveKeyframes","update","preRender","render","postRender"],DP=40;function Iw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=pc.reduce((x,y)=>(x[y]=LP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,DP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:pc.reduce((x,y)=>{const _=a[y];return x[y]=(S,A=!1,E=!1)=>(n||g(),_.schedule(S,A,E)),x},{}),cancel:x=>{for(let y=0;yz0[e].some(n=>!!t[n])};function MP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const OP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Su(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||OP.has(e)}let Bw=e=>!Su(e);function IP(e){e&&(Bw=t=>t.startsWith("on")?!Su(t):e(t))}try{IP(require("@emotion/is-prop-valid").default)}catch{}function FP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Bw(s)||n===!0&&Su(s)||!t&&!Su(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function BP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const md=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function hd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const eg=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],tg=["initial",...eg];function gd(e){return hd(e.animate)||tg.some(t=>sl(e[t]))}function Uw(e){return!!(gd(e)||e.variants)}function UP(e,t){if(gd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function VP(e){const{initial:t,animate:n}=UP(e,m.useContext(md));return m.useMemo(()=>({initial:t,animate:n}),[$0(t),$0(n)])}function $0(e){return Array.isArray(e)?e.join(" "):e}const zP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function $P(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const ng=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),HP="framerAppearId",Vw="data-"+ng(HP),{schedule:rg}=Iw(queueMicrotask,!1),zw=m.createContext({});function qP(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(md),c=m.useContext(Fw),u=m.useContext(fd),d=m.useContext(Xh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(zw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&WP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Vw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Mw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),rg.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function WP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:$w(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function $w(e){if(e)return e.options.allowProjection!==!1?e.projection:$w(e.parent)}function GP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&MP(e);function l(u,d){let p;const f={...m.useContext(Xh),...u,layoutId:KP(u)},{isStatic:h}=f,g=VP(u),v=r(u,h);if(!h&&Jh){QP();const b=YP(f);p=b.MeasureLayout,g.visualElement=qP(s,v,f,t,b.ProjectionNode)}return o.jsxs(md.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,$P(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[zP]=s,c}function KP({layoutId:e}){const t=m.useContext(Qh).id;return t&&e!==void 0?t+"-"+e:e}function QP(e,t){m.useContext(Fw).strict}function YP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const XP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function sg(e){return typeof e!="string"||e.includes("-")?!1:!!(XP.indexOf(e)>-1||/[A-Z]/u.test(e))}function H0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function ig(e,t,n,r){if(typeof t=="function"){const[s,i]=H0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=H0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const sm=e=>Array.isArray(e),JP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),ZP=e=>sm(e)?e[e.length-1]||0:e,Nn=e=>!!(e&&e.getVelocity);function Uc(e){const t=Nn(e)?e.get():e;return JP(t)?t.toValue():t}function eR({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:tR(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const Hw=e=>(t,n)=>{const r=m.useContext(md),s=m.useContext(fd),i=()=>eR(e,t,r,s);return n?i():Yh(i)};function tR(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Uc(i[f]);let{initial:a,animate:l}=e;const c=gd(e),u=Uw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!hd(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Ww=qw("--"),nR=qw("var(--"),ag=e=>nR(e)?rR.test(e.split("/*")[0].trim()):!1,rR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Gw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,js=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>js(0,1,e)},fc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Zr=kl("%"),Ae=kl("px"),sR=kl("vh"),iR=kl("vw"),q0={...Zr,parse:e=>Zr.parse(e)/100,transform:e=>Zr.transform(e*100)},aR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},oR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:fc,scaleX:fc,scaleY:fc,scaleZ:fc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:q0,originY:q0,originZ:Ae},W0={...za,transform:Math.round},og={...aR,...oR,zIndex:W0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:W0},lR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},cR=Va.length;function uR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Kw=()=>({...ug(),attrs:{}}),dg=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Qw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Yw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Xw(e,t,n,r){Qw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Yw.has(s)?s:ng(s),t.attrs[s])}const Eu={};function hR(e){Object.assign(Eu,e)}function Jw(e,{layout:t,layoutId:n}){return $i.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Eu[e]||e==="opacity")}function pg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(Nn(s[a])||t.style&&Nn(t.style[a])||Jw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Zw(e,t,n){const r=pg(e,t,n);for(const s in e)if(Nn(e[s])||Nn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function gR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const K0=["x","y","width","height","cx","cy","r"],xR={useVisualState:Hw({scrapeMotionValuesFromProps:Zw,createRenderState:Kw,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if($i.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{gR(n,r),St.render(()=>{cg(r,s,dg(n.tagName),e.transformTemplate),Xw(n,r)})})}})},vR={useVisualState:Hw({scrapeMotionValuesFromProps:pg,createRenderState:ug})};function ek(e,t,n){for(const r in t)!Nn(t[r])&&!Jw(r,n)&&(e[r]=t[r])}function yR({transformTemplate:e},t){return m.useMemo(()=>{const n=ug();return lg(n,t,e),Object.assign({},n.vars,n.style)},[t])}function _R(e,t){const n=e.style||{},r={};return ek(r,n,e),Object.assign(r,yR(e,t)),r}function bR(e,t){const n={},r=_R(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function wR(e,t,n,r){const s=m.useMemo(()=>{const i=Kw();return cg(i,t,dg(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};ek(i,e.style,e),s.style={...i,...s.style}}return s}function kR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(sg(n)?wR:bR)(r,i,a,n),u=FP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>Nn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function SR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...sg(r)?xR:vR,preloadedFeatures:e,useRender:kR(s),createVisualElement:t,Component:r};return GP(a)}}function tk(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class CR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(ER()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class jR extends CR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function fg(e,t){return e?e[t]||e.default||e:void 0}const im=2e4;function nk(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=im?1/0:t}function mg(e){return typeof e=="function"}function Q0(e,t){e.timeline=t,e.onfinish=null}const hg=e=>Array.isArray(e)&&typeof e[0]=="number",NR={linearEasing:void 0};function PR(e,t){const n=Zh(e);return()=>{var r;return(r=NR[t])!==null&&r!==void 0?r:n()}}const Cu=PR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),rk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,am={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function ik(e,t){if(e)return typeof e=="function"&&Cu()?rk(e,t):hg(e)?xo(e):Array.isArray(e)?e.map(n=>ik(n,t)||am.easeOut):am[e]}const Rr={x:!1,y:!1};function ak(){return Rr.x||Rr.y}function RR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ok(e,t){const n=RR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function Y0(e){return t=>{t.pointerType==="touch"||ak()||e(t)}}function AR(e,t,n={}){const[r,s,i]=ok(e,n),a=Y0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=Y0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const lk=(e,t)=>t?e===t?!0:lk(e,t.parentElement):!1,gg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,TR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function LR(e){return TR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function X0(e){return t=>{t.key==="Enter"&&e(t)}}function dp(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const DR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=X0(()=>{if(vo.has(n))return;dp(n,"down");const s=X0(()=>{dp(n,"up")}),i=()=>dp(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function J0(e){return gg(e)&&!ak()}function MR(e,t,n={}){const[r,s,i]=ok(e,n),a=l=>{const c=l.currentTarget;if(!J0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!J0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||lk(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!LR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>DR(u,s),s)}),i}function OR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ck=new Set(["width","height","top","left","right","bottom",...Va]);let Vc;function IR(){Vc=void 0}const es={now:()=>(Vc===void 0&&es.set(xn.isProcessing||TP.useManualTiming?xn.timestamp:performance.now()),Vc),set:e=>{Vc=e,queueMicrotask(IR)}};function xg(e,t){e.indexOf(t)===-1&&e.push(t)}function vg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class yg{constructor(){this.subscriptions=[]}add(t){return xg(this.subscriptions,t),()=>vg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class BR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=es.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=es.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=FR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new yg);const r=this.events[t].add(n);return t==="change"?()=>{r(),St.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=es.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Z0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Z0);return uk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new BR(e,t)}function UR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function VR(e,t){const n=xd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=ZP(i[a]);UR(e,a,l)}}function zR(e){return!!(Nn(e)&&e.add)}function om(e,t){const n=e.getValue("willChange");if(zR(n))return n.add(t)}function dk(e){return e.props[Vw]}const pk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,$R=1e-7,HR=12;function qR(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=pk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>$R&&++lqR(i,0,1,e,n);return i=>i===0||i===1?i:pk(s(i),t,r)}const fk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,mk=e=>t=>1-e(1-t),hk=Sl(.33,1.53,.69,.99),_g=mk(hk),gk=fk(_g),xk=e=>(e*=2)<1?.5*_g(e):.5*(2-Math.pow(2,-10*(e-1))),bg=e=>1-Math.sin(Math.acos(e)),vk=mk(bg),yk=fk(bg),_k=e=>/^0[^.\s]+$/u.test(e);function WR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||_k(e):!0}const Po=e=>Math.round(e*1e5)/1e5,wg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function GR(e){return e==null}const KR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,kg=(e,t)=>n=>!!(typeof n=="string"&&KR.test(n)&&n.startsWith(e)||t&&!GR(n)&&Object.prototype.hasOwnProperty.call(n,t)),bk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(wg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},QR=e=>js(0,255,e),pp={...za,transform:e=>Math.round(QR(e))},ji={test:kg("rgb","red"),parse:bk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+pp.transform(e)+", "+pp.transform(t)+", "+pp.transform(n)+", "+Po(il.transform(r))+")"};function YR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const lm={test:kg("#"),parse:YR,transform:ji.transform},ua={test:kg("hsl","hue"),parse:bk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Zr.transform(Po(t))+", "+Zr.transform(Po(n))+", "+Po(il.transform(r))+")"},En={test:e=>ji.test(e)||lm.test(e)||ua.test(e),parse:e=>ji.test(e)?ji.parse(e):ua.test(e)?ua.parse(e):lm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ji.transform(e):ua.transform(e)},XR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function JR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(wg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(XR))===null||n===void 0?void 0:n.length)||0)>0}const wk="number",kk="color",ZR="var",eA="var(",ev="${}",tA=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(tA,c=>(En.test(c)?(r.color.push(i),s.push(kk),n.push(En.parse(c))):c.startsWith(eA)?(r.var.push(i),s.push(ZR),n.push(c)):(r.number.push(i),s.push(wk),n.push(parseFloat(c))),++i,ev)).split(ev);return{values:n,split:l,indexes:r,types:s}}function Sk(e){return ol(e).values}function Ek(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function rA(e){const t=Sk(e);return Ek(e)(t.map(nA))}const ai={test:JR,parse:Sk,createTransformer:Ek,getAnimatableNone:rA},sA=new Set(["brightness","contrast","saturate","opacity"]);function iA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(wg)||[];if(!r)return e;const s=n.replace(r,"");let i=sA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const aA=/\b([a-z-]*)\(.*?\)/gu,cm={...ai,getAnimatableNone:e=>{const t=e.match(aA);return t?t.map(iA).join(" "):e}},oA={...og,color:En,backgroundColor:En,outlineColor:En,fill:En,stroke:En,borderColor:En,borderTopColor:En,borderRightColor:En,borderBottomColor:En,borderLeftColor:En,filter:cm,WebkitFilter:cm},Sg=e=>oA[e];function Ck(e,t){let n=Sg(e);return n!==cm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const lA=new Set(["auto","none","0"]);function cA(e,t,n){let r=0,s;for(;re===za||e===Ae,nv=(e,t)=>parseFloat(e.split(", ")[t]),rv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return nv(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?nv(i[1],e):0}},uA=new Set(["x","y","z"]),dA=Va.filter(e=>!uA.has(e));function pA(e){const t=[];return dA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:rv(4,13),y:rv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Ai=new Set;let um=!1,dm=!1;function jk(){if(dm){const e=Array.from(Ai).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=pA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}dm=!1,um=!1,Ai.forEach(e=>e.complete()),Ai.clear()}function Nk(){Ai.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(dm=!0)})}function fA(){Nk(),jk()}class Eg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ai.add(this),um||(um=!0,St.read(Nk),St.resolveKeyframes(jk))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),mA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function hA(e){const t=mA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Rk(e,t,n=1){const[r,s]=hA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return Pk(a)?parseFloat(a):a}return ag(s)?Rk(s,t,n+1):s}const Ak=e=>t=>t.test(e),gA={test:e=>e==="auto",parse:e=>e},Tk=[za,Ae,Zr,Is,iR,sR,gA],sv=e=>Tk.find(Ak(e));class Lk extends Eg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const iv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function xA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function vd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(yA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const _A=40;class Dk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=es.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>_A?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&fA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=es.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!vA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(vd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Lt=(e,t,n)=>e+(t-e)*n;function fp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function bA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=fp(c,l,e+1/3),i=fp(c,l,e),a=fp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function ju(e,t){return n=>n>0?t:e}const mp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},wA=[lm,ji,ua],kA=e=>wA.find(t=>t.test(e));function av(e){const t=kA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=bA(n)),n}const ov=(e,t)=>{const n=av(e),r=av(t);if(!n||!r)return ju(e,t);const s={...n};return i=>(s.red=mp(n.red,r.red,i),s.green=mp(n.green,r.green,i),s.blue=mp(n.blue,r.blue,i),s.alpha=Lt(n.alpha,r.alpha,i),ji.transform(s))},SA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(SA),pm=new Set(["none","hidden"]);function EA(e,t){return pm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function CA(e,t){return n=>Lt(e,t,n)}function Cg(e){return typeof e=="number"?CA:typeof e=="string"?ag(e)?ju:En.test(e)?ov:PA:Array.isArray(e)?Mk:typeof e=="object"?En.test(e)?ov:jA:ju}function Mk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Cg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function NA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?pm.has(e)&&!s.values.length||pm.has(t)&&!r.values.length?EA(e,t):El(Mk(NA(r,s),s.values),n):ju(e,t)};function Ok(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Lt(e,t,n):Cg(e)(e,t)}const RA=5;function Ik(e,t,n){const r=Math.max(t-RA,0);return uk(n-e(r),t-r)}const Ft={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},hp=.001;function AA({duration:e=Ft.duration,bounce:t=Ft.bounce,velocity:n=Ft.velocity,mass:r=Ft.mass}){let s,i,a=1-t;a=js(Ft.minDamping,Ft.maxDamping,a),e=js(Ft.minDuration,Ft.maxDuration,_s(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=fm(u,a),g=Math.exp(-p);return hp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=fm(Math.pow(u,2),a);return(-s(u)+hp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-hp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=LA(s,i,l);if(e=ys(e),isNaN(c))return{stiffness:Ft.stiffness,damping:Ft.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const TA=12;function LA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function OA(e){let t={velocity:Ft.velocity,stiffness:Ft.stiffness,damping:Ft.damping,mass:Ft.mass,isResolvedFromDuration:!1,...e};if(!lv(e,MA)&&lv(e,DA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*js(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Ft.mass,stiffness:s,damping:i}}else{const n=AA(e);t={...t,...n,mass:Ft.mass},t.isResolvedFromDuration=!0}return t}function Fk(e=Ft.visualDuration,t=Ft.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=OA({...n,velocity:-_s(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=_s(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Ft.restSpeed.granular:Ft.restSpeed.default),s||(s=y?Ft.restDelta.granular:Ft.restDelta.default);let _;if(v<1){const A=fm(x,v);_=E=>{const T=Math.exp(-v*x*E);return a-T*((g+v*x*b)/A*Math.sin(A*E)+b*Math.cos(A*E))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=E=>{const T=Math.exp(-v*x*E),D=Math.min(A*E,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const S={calculatedDuration:h&&p||null,next:A=>{const E=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?ys(g):Ik(_,A,E));const D=Math.abs(T)<=r,z=Math.abs(a-E)<=s;l.done=D&&z}return l.value=l.done?a:E,l},toString:()=>{const A=Math.min(nk(S),im),E=rk(T=>S.next(A*T).value,A,30);return A+"ms "+E}};return S}function cv({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),S=D=>{const z=y(D),j=_(D);f.done=Math.abs(z)<=u,f.value=f.done?x:j};let A,E;const T=D=>{h(f.value)&&(A=D,E=Fk({keyframes:[f.value,g(f.value)],velocity:Ik(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let z=!1;return!E&&A===void 0&&(z=!0,S(D),T(D)),A!==void 0&&D>=A?E.next(D-A):(!z&&S(D),f)}}}const IA=Sl(.42,0,1,1),FA=Sl(0,0,.58,1),Bk=Sl(.42,0,.58,1),BA=e=>Array.isArray(e)&&typeof e[0]!="number",UA={linear:ar,easeIn:IA,easeInOut:Bk,easeOut:FA,circIn:bg,circInOut:yk,circOut:vk,backIn:_g,backInOut:gk,backOut:hk,anticipate:xk},uv=e=>{if(hg(e)){Ow(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return UA[e];return e};function VA(e,t,n){const r=[],s=n||Ok,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=VA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(js(e[0],e[i-1],d)):u}function $A(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Lt(n,1,s))}}function HA(e){const t=[0];return $A(t,e.length-1),t}function qA(e,t){return e.map(n=>n*t)}function WA(e,t){return e.map(()=>t||Bk).splice(0,e.length-1)}function Nu({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=BA(r)?r.map(uv):uv(r),i={done:!1,value:t[0]},a=qA(n&&n.length===t.length?n:HA(t),e),l=zA(a,t,{ease:Array.isArray(s)?s:WA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const GA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>St.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:es.now()}},KA={decay:cv,inertia:cv,tween:Nu,keyframes:Nu,spring:Fk},QA=e=>e/100;class jg extends Dk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Eg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=mg(n)?n:KA[n]||Nu;let c,u;l!==Nu&&typeof t[0]!="number"&&(c=El(QA,Ok(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=nk(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,S=i;if(h){const D=Math.min(this.currentTime,d)/p;let z=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&z--,z=Math.min(z,h+1),!!(z%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(S=a)),_=js(0,1,j)*p}const A=y?{done:!1,value:c[0]}:S.next(_);l&&(A.value=l(A.value));let{done:E}=A;!y&&u!==null&&(E=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&E);return T&&s!==void 0&&(A.value=vd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?_s(t.calculatedDuration):0}get time(){return _s(this.currentTime)}set time(t){t=ys(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=_s(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=GA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const YA=new Set(["opacity","clipPath","filter","transform"]);function XA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=ik(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const JA=Zh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Pu=10,ZA=2e4;function eT(e){return mg(e.type)||e.type==="spring"||!sk(e.ease)}function tT(e,t){const n=new jg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Cu()&&nT(i)&&(i=Uk[i]),eT(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=tT(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=XA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(Q0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(vd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return _s(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return _s(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=ys(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return ar;const{animation:r}=n;Q0(r,t)}return ar}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new jg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=ys(this.time);u.setWithVelocity(g.sample(v-Pu).value,g.sample(v).value,Pu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return JA()&&r&&YA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const rT={type:"spring",stiffness:500,damping:25,restSpeed:10},sT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),iT={type:"keyframes",duration:.8},aT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},oT=(e,{keyframes:t})=>t.length>2?iT:$i.has(e)?e.startsWith("scale")?sT(t[1]):rT:aT;function lT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const Ng=(e,t,n,r={},s,i)=>a=>{const l=fg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-ys(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};lT(l)||(d={...d,...oT(e,d)}),d.duration&&(d.duration=ys(d.duration)),d.repeatDelay&&(d.repeatDelay=ys(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=vd(d.keyframes,l);if(f!==void 0)return St.update(()=>{d.onUpdate(f),d.onComplete()}),new jR([])}return!i&&dv.supports(d)?new dv(d):new jg(d)};function cT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Vk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&cT(d,p))continue;const g={delay:n,...fg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=dk(e);if(x){const y=window.MotionHandoffAnimation(x,p,St);y!==null&&(g.startTime=y,v=!0)}}om(e,p),f.start(Ng(p,f,h,e.shouldReduceMotion&&ck.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{St.update(()=>{l&&VR(e,l)})}),u}function mm(e,t,n={}){var r;const s=xd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Vk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return uT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function uT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(dT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(mm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function dT(e,t){return e.sortNodePosition(t)}function pT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>mm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=mm(e,t,n);else{const s=typeof t=="function"?xd(e,t,n.custom):t;r=Promise.all(Vk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const fT=tg.length;function zk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?zk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>pT(e,n,r)))}function xT(e){let t=gT(e),n=pv(),r=!0;const s=c=>(u,d)=>{var p;const f=xd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=zk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&S,z=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&(z=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const B=e.getValue(oe);B&&(B.liveStyle=!1)};for(const oe in re){const B=H[oe],Y=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;sm(B)&&sm(Y)?N=!tk(B,Y):N=B!==Y,N?B!=null?le(oe):f.add(oe):B!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(E&&T)||z)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=pv(),r=!0}}}function vT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!tk(t,e):!1}function gi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function pv(){return{animate:gi(!0),whileInView:gi(),whileHover:gi(),whileTap:gi(),whileDrag:gi(),whileFocus:gi(),exit:gi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class yT extends di{constructor(t){super(t),t.animationState||(t.animationState=xT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();hd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let _T=0;class bT extends di{constructor(){super(...arguments),this.id=_T++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const wT={animation:{Feature:yT},exit:{Feature:bT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const kT=e=>t=>gg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,kT(n),r)}const fv=(e,t)=>Math.abs(e-t);function ST(e,t){const n=fv(e.x,t.x),r=fv(e.y,t.y);return Math.sqrt(n**2+r**2)}class $k{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=xp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=ST(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=gp(f,this.transformPagePoint),St.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=xp(p.type==="pointercancel"?this.lastMoveEventInfo:gp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!gg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=gp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,xp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function gp(e,t){return t?{point:t(e.point)}:e}function mv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function xp({point:e},t){return{point:e,delta:mv(e,Hk(t)),offset:mv(e,ET(t)),velocity:CT(t,.1)}}function ET(e){return e[0]}function Hk(e){return e[e.length-1]}function CT(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=Hk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>ys(t)));)n--;if(!r)return{x:0,y:0};const i=_s(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const qk=1e-4,jT=1-qk,NT=1+qk,Wk=.01,PT=0-Wk,RT=0+Wk;function cr(e){return e.max-e.min}function AT(e,t,n){return Math.abs(e-t)<=n}function hv(e,t,n,r=.5){e.origin=r,e.originPoint=Lt(t.min,t.max,e.origin),e.scale=cr(n)/cr(t),e.translate=Lt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=jT&&e.scale<=NT||isNaN(e.scale))&&(e.scale=1),(e.translate>=PT&&e.translate<=RT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){hv(e.x,t.x,n.x,r?r.originX:void 0),hv(e.y,t.y,n.y,r?r.originY:void 0)}function gv(e,t,n){e.min=n.min+t.min,e.max=e.min+cr(t)}function TT(e,t,n){gv(e.x,t.x,n.x),gv(e.y,t.y,n.y)}function xv(e,t,n){e.min=t.min-n.min,e.max=e.min+cr(t)}function To(e,t,n){xv(e.x,t.x,n.x),xv(e.y,t.y,n.y)}function LT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Lt(n,e,r.max):Math.min(e,n)),e}function vv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function DT(e,{top:t,left:n,bottom:r,right:s}){return{x:vv(e.x,n,s),y:vv(e.y,t,r)}}function yv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),js(0,1,n)}function IT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const hm=.35;function FT(e=hm){return e===!1?e=0:e===!0&&(e=hm),{x:_v(e,"left","right"),y:_v(e,"top","bottom")}}function _v(e,t,n){return{min:bv(e,t),max:bv(e,n)}}function bv(e,t){return typeof e=="number"?e:e[t]||0}const wv=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:wv(),y:wv()}),kv=()=>({min:0,max:0}),$t=()=>({x:kv(),y:kv()});function gr(e){return[e("x"),e("y")]}function Gk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function BT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function UT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function vp(e){return e===void 0||e===1}function gm({scale:e,scaleX:t,scaleY:n}){return!vp(e)||!vp(t)||!vp(n)}function bi(e){return gm(e)||Kk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Kk(e){return Sv(e.x)||Sv(e.y)}function Sv(e){return e&&e!=="0%"}function Ru(e,t,n){const r=e-n,s=t*r;return n+s}function Ev(e,t,n,r,s){return s!==void 0&&(e=Ru(e,s,r)),Ru(e,n,r)+t}function xm(e,t=0,n=1,r,s){e.min=Ev(e.min,t,n,r,s),e.max=Ev(e.max,t,n,r,s)}function Qk(e,{x:t,y:n}){xm(e.x,t.translate,t.scale,t.originPoint),xm(e.y,n.translate,n.scale,n.originPoint)}const Cv=.999999999999,jv=1.0000000000001;function VT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lCv&&(t.x=1),t.yCv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Nv(e,t,n,r,s=.5){const i=Lt(e.min,e.max,s);xm(e,t,n,i,r)}function fa(e,t){Nv(e.x,t.x,t.scaleX,t.scale,t.originX),Nv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Yk(e,t){return Gk(UT(e.getBoundingClientRect(),t))}function zT(e,t,n){const r=Yk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Xk=({current:e})=>e?e.ownerDocument.defaultView:null,$T=new WeakMap;class HT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=$t(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=OR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Zr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=cr(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&St.postRender(()=>g(d,p)),om(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=qT(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new $k(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Xk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&St.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!mc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=LT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=DT(s.layoutBox,n):this.constraints=!1,this.elastic=FT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=IT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=zT(r,s.root,this.visualElement.getTransformPagePoint());let a=MT(s.layout.layoutBox,i);if(n){const l=n(BT(a));this.hasMutatedConstraints=!!l,l&&(a=Gk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!mc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return om(this.visualElement,t),r.start(Ng(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!mc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Lt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=OT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!mc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Lt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;$T.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),St.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=hm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function mc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function qT(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class WT extends di{constructor(t){super(t),this.removeGroupControls=ar,this.removeListeners=ar,this.controls=new HT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ar}unmount(){this.removeGroupControls(),this.removeListeners()}}const Pv=e=>(t,n)=>{e&&St.postRender(()=>e(t,n))};class GT extends di{constructor(){super(...arguments),this.removePointerDownListener=ar}onPointerDown(t){this.session=new $k(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Xk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:Pv(t),onStart:Pv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&St.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const zc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Rv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Rv(e,t.target.x),r=Rv(e,t.target.y);return`${n}% ${r}%`}},KT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Lt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class QT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;hR(YT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),zc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||St.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),rg.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Jk(e){const[t,n]=Dw(),r=m.useContext(Qh);return o.jsx(QT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(zw),isPresent:t,safeToRemove:n})}const YT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:KT};function XT(e,t,n){const r=Nn(e)?e:al(e);return r.start(Ng("",r,t,n)),r.animation}function JT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const ZT=(e,t)=>e.depth-t.depth;class eL{constructor(){this.children=[],this.isDirty=!1}add(t){xg(this.children,t),this.isDirty=!0}remove(t){vg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(ZT),this.isDirty=!1,this.children.forEach(t)}}function tL(e,t){const n=es.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return St.read(r,!0),()=>ii(r)}const Zk=["TopLeft","TopRight","BottomLeft","BottomRight"],nL=Zk.length,Av=e=>typeof e=="string"?parseFloat(e):e,Tv=e=>typeof e=="number"||Ae.test(e);function rL(e,t,n,r,s,i){s?(e.opacity=Lt(0,n.opacity!==void 0?n.opacity:1,sL(r)),e.opacityExit=Lt(t.opacity!==void 0?t.opacity:1,0,iL(r))):i&&(e.opacity=Lt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Dv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Dv(e.x,t.x),Dv(e.y,t.y)}function Mv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Ov(e,t,n,r,s){return e-=t,e=Ru(e,1/n,r),s!==void 0&&(e=Ru(e,1/s,r)),e}function aL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Zr.test(t)&&(t=parseFloat(t),t=Lt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Lt(i.min,i.max,r);e===i&&(l-=t),e.min=Ov(e.min,t,n,l,s),e.max=Ov(e.max,t,n,l,s)}function Iv(e,t,[n,r,s],i,a){aL(e,t[n],t[r],t[s],t.scale,i,a)}const oL=["x","scaleX","originX"],lL=["y","scaleY","originY"];function Fv(e,t,n,r){Iv(e.x,t,oL,n?n.x:void 0,r?r.x:void 0),Iv(e.y,t,lL,n?n.y:void 0,r?r.y:void 0)}function Bv(e){return e.translate===0&&e.scale===1}function tS(e){return Bv(e.x)&&Bv(e.y)}function Uv(e,t){return e.min===t.min&&e.max===t.max}function cL(e,t){return Uv(e.x,t.x)&&Uv(e.y,t.y)}function Vv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function nS(e,t){return Vv(e.x,t.x)&&Vv(e.y,t.y)}function zv(e){return cr(e.x)/cr(e.y)}function $v(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class uL{constructor(){this.members=[]}add(t){xg(this.members,t),t.scheduleRender()}remove(t){if(vg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function dL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const wi={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,yp=["","X","Y","Z"],pL={visibility:"hidden"},Hv=1e3;let fL=0;function _p(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function rS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=dk(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",St,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&rS(r)}function sS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=fL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(wi.totalNodes=wi.resolvedTargetDeltas=wi.recalculatedProjection=0),this.nodes.forEach(gL),this.nodes.forEach(bL),this.nodes.forEach(wL),this.nodes.forEach(xL),yo&&window.MotionDebug.record(wi)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=tL(f,250),zc.hasAnimatedSinceResize&&(zc.hasAnimatedSinceResize=!1,this.nodes.forEach(Wv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||jL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!nS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const S={...fg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else f||Wv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(kL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&rS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=S/1e3;Gv(p.x,a.x,A),Gv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),EL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&cL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=$t()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,rL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=St.update(()=>{zc.hasAnimatedSinceResize=!0,this.currentAnimation=XT(0,Hv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Hv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&iS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||$t();const p=cr(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=cr(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new uL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&_p("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(qv),this.root.sharedNodes.clear()}}}function mL(e){e.updateLayout()}function hL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=cr(f);f.min=r[p].min,f.max=f.min+h}):iS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=cr(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!tS(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=$t();To(g,n.layoutBox,f.layoutBox);const v=$t();To(v,r,h.layoutBox),nS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function gL(e){yo&&wi.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function xL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function vL(e){e.clearSnapshot()}function qv(e){e.clearMeasurements()}function yL(e){e.isLayoutDirty=!1}function _L(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Wv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function bL(e){e.resolveTargetDelta()}function wL(e){e.calcProjection()}function kL(e){e.resetSkewAndRotation()}function SL(e){e.removeLeadSnapshot()}function Gv(e,t,n){e.translate=Lt(t.translate,0,n),e.scale=Lt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Kv(e,t,n,r){e.min=Lt(t.min,n.min,r),e.max=Lt(t.max,n.max,r)}function EL(e,t,n,r){Kv(e.x,t.x,n.x,r),Kv(e.y,t.y,n.y,r)}function CL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const jL={duration:.45,ease:[.4,0,.1,1]},Qv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Yv=Qv("applewebkit/")&&!Qv("chrome/")?Math.round:ar;function Xv(e){e.min=Yv(e.min),e.max=Yv(e.max)}function NL(e){Xv(e.x),Xv(e.y)}function iS(e,t,n){return e==="position"||e==="preserve-aspect"&&!AT(zv(t),zv(n),.2)}function PL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const RL=sS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bp={current:void 0},aS=sS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bp.current){const e=new RL({});e.mount(window),e.setOptions({layoutScroll:!0}),bp.current=e}return bp.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),AL={pan:{Feature:GT},drag:{Feature:WT,ProjectionNode:aS,MeasureLayout:Jk}};function Jv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&St.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=AR(t,n=>(Jv(this.node,n,"Start"),r=>Jv(this.node,r,"End"))))}unmount(){}}class LL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Zv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&St.postRender(()=>i(t,Cl(t)))}class DL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=MR(t,n=>(Zv(this.node,n,"Start"),(r,{success:s})=>Zv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const vm=new WeakMap,wp=new WeakMap,ML=e=>{const t=vm.get(e.target);t&&t(e)},OL=e=>{e.forEach(ML)};function IL({root:e,...t}){const n=e||document;wp.has(n)||wp.set(n,{});const r=wp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(OL,{root:e,...t})),r[s]}function FL(e,t,n){const r=IL(t);return vm.set(e,n),r.observe(e),()=>{vm.delete(e),r.unobserve(e)}}const BL={some:0,all:1};class UL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:BL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return FL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(VL(t,n))&&this.startObserver()}unmount(){}}function VL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const zL={inView:{Feature:UL},tap:{Feature:DL},focus:{Feature:LL},hover:{Feature:TL}},$L={layout:{ProjectionNode:aS,MeasureLayout:Jk}},ym={current:null},oS={current:!1};function HL(){if(oS.current=!0,!!Jh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>ym.current=e.matches;e.addListener(t),t()}else ym.current=!1}const qL=[...Tk,En,ai],WL=e=>qL.find(Ak(e)),ey=new WeakMap;function GL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(Nn(s))e.addValue(r,s);else if(Nn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const ty=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class KL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Eg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=es.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),oS.current||HL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:ym.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){ey.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=$i.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&St.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):$t()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(Pk(s)||_k(s))?s=parseFloat(s):!WL(s)&&ai.test(n)&&(s=Ck(t,n)),this.setBaseTarget(t,Nn(s)?s.get():s)),Nn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=ig(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!Nn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new yg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class lS extends KL{constructor(){super(...arguments),this.KeyframeResolver=Lk}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Nn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function QL(e){return window.getComputedStyle(e)}class YL extends lS{constructor(){super(...arguments),this.type="html",this.renderInstance=Qw}readValueFromInstance(t,n){if($i.has(n)){const r=Sg(n);return r&&r.default||0}else{const r=QL(t),s=(Ww(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Yk(t,n)}build(t,n,r){lg(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return pg(t,n,r)}}class XL extends lS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=$t}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if($i.has(n)){const r=Sg(n);return r&&r.default||0}return n=Yw.has(n)?n:ng(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Zw(t,n,r)}build(t,n,r){cg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Xw(t,n,r,s)}mount(t){this.isSVGTag=dg(t.tagName),super.mount(t)}}const JL=(e,t)=>sg(e)?new XL(t):new YL(t,{allowProjection:e!==m.Fragment}),ZL=SR({...wT,...zL,...AL,...$L},JL),Ut=BP(ZL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const tD=m.forwardRef(eD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const $c=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ny=m.forwardRef(rD);function sD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Yr=m.forwardRef(sD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const aD=m.forwardRef(iD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const cS=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const kp=m.forwardRef(lD);function cD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const Sp=m.forwardRef(cD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const dD=m.forwardRef(uD);function pD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Au=m.forwardRef(pD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const mD=m.forwardRef(fD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const hc=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Tu=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const rr=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const uS=m.forwardRef(yD);function _D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const ps=m.forwardRef(_D);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const CD=m.forwardRef(ED);function jD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const _m=m.forwardRef(jD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const AD=m.forwardRef(RD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Lu=m.forwardRef(TD);function LD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const bm=m.forwardRef(LD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const MD=m.forwardRef(DD);function OD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const wm=m.forwardRef(OD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const FD=m.forwardRef(ID);function BD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const UD=m.forwardRef(BD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ry=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const fs=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const sy=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const dS=m.forwardRef(HD);function qD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const iy=m.forwardRef(qD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const GD=m.forwardRef(WD);function KD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const pS=m.forwardRef(KD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const a3=m.forwardRef(i3);function o3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Ep=m.forwardRef(o3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const c3=m.forwardRef(l3);function u3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Du=m.forwardRef(u3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const g3=m.forwardRef(h3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const Hc=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Pg=m.forwardRef(v3);function y3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const fS=m.forwardRef(y3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const k3=m.forwardRef(w3);function S3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(S3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const N3=m.forwardRef(j3);function P3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(P3);function mS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{ay(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>ay("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=hS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const L3={},oy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(L3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},D3=e=>e?oy(e):oy;var gS={exports:{}},xS={},vS={exports:{}},yS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function M3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var O3=typeof Object.is=="function"?Object.is:M3,I3=La.useState,F3=La.useEffect,B3=La.useLayoutEffect,U3=La.useDebugValue;function V3(e,t){var n=t(),r=I3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return B3(function(){s.value=n,s.getSnapshot=t,Cp(s)&&i({inst:s})},[e,n,t]),F3(function(){return Cp(s)&&i({inst:s}),e(function(){Cp(s)&&i({inst:s})})},[e]),U3(n),n}function Cp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!O3(e,n)}catch{return!0}}function z3(e,t){return t()}var $3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?z3:V3;yS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:$3;vS.exports=yS;var H3=vS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yd=m,q3=H3;function W3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var G3=typeof Object.is=="function"?Object.is:W3,K3=q3.useSyncExternalStore,Q3=yd.useRef,Y3=yd.useEffect,X3=yd.useMemo,J3=yd.useDebugValue;xS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=Q3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=X3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,G3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=K3(e,i[0],i[1]);return Y3(function(){a.hasValue=!0,a.value=l},[l]),J3(l),l};gS.exports=xS;var Z3=gS.exports;const eM=Wu(Z3),_S={},{useDebugValue:tM}=fn,{useSyncExternalStoreWithSelector:nM}=eM;let ly=!1;const rM=e=>e;function sM(e,t=rM,n){(_S?"production":void 0)!=="production"&&n&&!ly&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ly=!0);const r=nM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tM(r),r}const cy=e=>{(_S?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?D3(e):e,n=(r,s)=>sM(t,r,s);return Object.assign(n,t),n},iM=e=>e?cy(e):cy;function bS(e,t){return function(){return e.apply(t,arguments)}}const{toString:aM}=Object.prototype,{getPrototypeOf:Rg}=Object,{iterator:_d,toStringTag:wS}=Symbol,bd=(e=>t=>{const n=aM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>bd(t)===e),wd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=wd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Qn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const kS=Ur("ArrayBuffer");function oM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&kS(e.buffer),t}const lM=wd("string"),Qn=wd("function"),SS=wd("number"),Nl=e=>e!==null&&typeof e=="object",cM=e=>e===!0||e===!1,qc=e=>{if(bd(e)!=="object")return!1;const t=Rg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(wS in e)&&!(_d in e)},uM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},dM=Ur("Date"),pM=Ur("File"),fM=Ur("Blob"),mM=Ur("FileList"),hM=e=>Nl(e)&&Qn(e.pipe),gM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Qn(e.append)&&((t=bd(e))==="formdata"||t==="object"&&Qn(e.toString)&&e.toString()==="[object FormData]"))},xM=Ur("URLSearchParams"),[vM,yM,_M,bM]=["ReadableStream","Request","Response","Headers"].map(Ur),wM=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,CS=e=>!Da(e)&&e!==Ni;function km(){const{caseless:e,skipUndefined:t}=CS(this)&&this||{},n={},r=(s,i)=>{const a=e&&ES(n,i)||i;qc(n[a])&&qc(s)?n[a]=km(n[a],s):qc(s)?n[a]=km({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Qn(s)?e[i]=bS(s,n):e[i]=s},{allOwnKeys:r}),e),SM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),EM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},CM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Rg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},jM=(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},NM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!SS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},PM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Rg(Uint8Array)),RM=(e,t)=>{const r=(e&&e[_d]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},AM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},TM=Ur("HTMLFormElement"),LM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),uy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),DM=Ur("RegExp"),jS=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},MM=e=>{jS(e,(t,n)=>{if(Qn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Qn(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+"'")})}})},OM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},IM=()=>{},FM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function BM(e){return!!(e&&Qn(e.append)&&e[wS]==="FormData"&&e[_d])}const UM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},VM=Ur("AsyncFunction"),zM=e=>e&&(Nl(e)||Qn(e))&&Qn(e.then)&&Qn(e.catch),NS=((e,t)=>e?setImmediate:t?((n,r)=>(Ni.addEventListener("message",({source:s,data:i})=>{s===Ni&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ni.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Qn(Ni.postMessage)),$M=typeof queueMicrotask<"u"?queueMicrotask.bind(Ni):typeof process<"u"&&process.nextTick||NS,HM=e=>e!=null&&Qn(e[_d]),V={isArray:$a,isArrayBuffer:kS,isBuffer:jl,isFormData:gM,isArrayBufferView:oM,isString:lM,isNumber:SS,isBoolean:cM,isObject:Nl,isPlainObject:qc,isEmptyObject:uM,isReadableStream:vM,isRequest:yM,isResponse:_M,isHeaders:bM,isUndefined:Da,isDate:dM,isFile:pM,isBlob:fM,isRegExp:DM,isFunction:Qn,isStream:hM,isURLSearchParams:xM,isTypedArray:PM,isFileList:mM,forEach:Pl,merge:km,extend:kM,trim:wM,stripBOM:SM,inherits:EM,toFlatObject:CM,kindOf:bd,kindOfTest:Ur,endsWith:jM,toArray:NM,forEachEntry:RM,matchAll:AM,isHTMLForm:TM,hasOwnProperty:uy,hasOwnProp:uy,reduceDescriptors:jS,freezeMethods:MM,toObjectSet:OM,toCamelCase:LM,noop:IM,toFiniteNumber:FM,findKey:ES,global:Ni,isContextDefined:CS,isSpecCompliantForm:BM,toJSONObject:UM,isAsyncFn:VM,isThenable:zM,setImmediate:NS,asap:$M,isIterable:HM};function Me(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}V.inherits(Me,Error,{toJSON:function(){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:V.toJSONObject(this.config),code:this.code,status:this.status}}});const PS=Me.prototype,RS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{RS[e]={value:e}});Object.defineProperties(Me,RS);Object.defineProperty(PS,"isAxiosError",{value:!0});Me.from=(e,t,n,r,s,i)=>{const a=Object.create(PS);V.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Me.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const qM=null;function Sm(e){return V.isPlainObject(e)||V.isArray(e)}function AS(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function dy(e,t,n){return e?e.concat(t).map(function(s,i){return s=AS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function WM(e){return V.isArray(e)&&!e.some(Sm)}const GM=V.toFlatObject(V,{},null,function(t){return/^is[A-Z]/.test(t)});function kd(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!V.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&V.isSpecCompliantForm(t);if(!V.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(V.isDate(g))return g.toISOString();if(V.isBoolean(g))return g.toString();if(!c&&V.isBlob(g))throw new Me("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(g)||V.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(V.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(V.isArray(g)&&WM(g)||(V.isFileList(g)||V.endsWith(v,"[]"))&&(x=V.toArray(g)))return v=AS(v),x.forEach(function(_,S){!(V.isUndefined(_)||_===null)&&t.append(a===!0?dy([v],S,i):a===null?v:v+"[]",u(_))}),!1}return Sm(g)?!0:(t.append(dy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(GM,{defaultVisitor:d,convertValue:u,isVisitable:Sm});function h(g,v){if(!V.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),V.forEach(g,function(x,y){(!(V.isUndefined(x)||x===null)&&s.call(t,x,V.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!V.isObject(e))throw new TypeError("data must be an object");return h(e),t}function py(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ag(e,t){this._pairs=[],e&&kd(e,this,t)}const TS=Ag.prototype;TS.append=function(t,n){this._pairs.push([t,n])};TS.toString=function(t){const n=t?function(r){return t.call(this,r,py)}:py;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function KM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function LS(e,t,n){if(!t)return e;const r=n&&n.encode||KM;V.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=V.isURLSearchParams(t)?t.toString():new Ag(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class fy{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){V.forEach(this.handlers,function(r){r!==null&&t(r)})}}const DS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},QM=typeof URLSearchParams<"u"?URLSearchParams:Ag,YM=typeof FormData<"u"?FormData:null,XM=typeof Blob<"u"?Blob:null,JM={isBrowser:!0,classes:{URLSearchParams:QM,FormData:YM,Blob:XM},protocols:["http","https","file","blob","url","data"]},Tg=typeof window<"u"&&typeof document<"u",Em=typeof navigator=="object"&&navigator||void 0,ZM=Tg&&(!Em||["ReactNative","NativeScript","NS"].indexOf(Em.product)<0),eO=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",tO=Tg&&window.location.href||"http://localhost",nO=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Tg,hasStandardBrowserEnv:ZM,hasStandardBrowserWebWorkerEnv:eO,navigator:Em,origin:tO},Symbol.toStringTag,{value:"Module"})),jn={...nO,...JM};function rO(e,t){return kd(e,new jn.classes.URLSearchParams,{visitor:function(n,r,s,i){return jn.isNode&&V.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function sO(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function iO(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&V.isArray(s)?s.length:a,c?(V.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!V.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&V.isArray(s[a])&&(s[a]=iO(s[a])),!l)}if(V.isFormData(e)&&V.isFunction(e.entries)){const n={};return V.forEachEntry(e,(r,s)=>{t(sO(r),s,n,0)}),n}return null}function aO(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:DS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=V.isObject(t);if(i&&V.isHTMLForm(t)&&(t=new FormData(t)),V.isFormData(t))return s?JSON.stringify(MS(t)):t;if(V.isArrayBuffer(t)||V.isBuffer(t)||V.isStream(t)||V.isFile(t)||V.isBlob(t)||V.isReadableStream(t))return t;if(V.isArrayBufferView(t))return t.buffer;if(V.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return rO(t,this.formSerializer).toString();if((l=V.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return kd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),aO(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(V.isResponse(t)||V.isReadableStream(t))return t;if(t&&V.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Me.from(l,Me.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:jn.classes.FormData,Blob:jn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const oO=V.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"]),lO=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&oO[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},my=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function Wc(e){return e===!1||e==null?e:V.isArray(e)?e.map(Wc):String(e)}function cO(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 uO=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function jp(e,t,n,r,s){if(V.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!V.isString(t)){if(V.isString(r))return t.indexOf(r)!==-1;if(V.isRegExp(r))return r.test(t)}}function dO(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function pO(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Yn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=V.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=Wc(l))}const a=(l,c)=>V.forEach(l,(u,d)=>i(u,d,c));if(V.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(V.isString(t)&&(t=t.trim())&&!uO(t))a(lO(t),n);else if(V.isObject(t)&&V.isIterable(t)){let l={},c,u;for(const d of t){if(!V.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?V.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=V.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return cO(s);if(V.isFunction(n))return n.call(this,s,r);if(V.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=V.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||jp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=V.findKey(r,a);l&&(!n||jp(r,r[l],l,n))&&(delete r[l],s=!0)}}return V.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||jp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return V.forEach(this,(s,i)=>{const a=V.findKey(r,i);if(a){n[a]=Wc(s),delete n[i];return}const l=t?dO(i):String(i).trim();l!==i&&delete n[i],n[l]=Wc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return V.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&V.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(s=>r.set(s)),r}static accessor(t){const r=(this[my]=this[my]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(pO(s,a),r[l]=!0)}return V.isArray(t)?t.forEach(i):i(t),this}};Yn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(Yn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});V.freezeMethods(Yn);function Np(e,t){const n=this||Rl,r=t||n,s=Yn.from(r.headers);let i=r.data;return V.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function OS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Me.call(this,e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError"}V.inherits(Ha,Me,{__CANCEL__:!0});function IS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Me("Request failed with status code "+n.status,[Me.ERR_BAD_REQUEST,Me.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function fO(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function mO(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Mu=(e,t,n=3)=>{let r=0;const s=mO(50,250);return hO(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},hy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},gy=e=>(...t)=>V.asap(()=>e(...t)),gO=jn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,jn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(jn.origin),jn.navigator&&/(msie|trident)/i.test(jn.navigator.userAgent)):()=>!0,xO=jn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&l.push(`path=${r}`),V.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),V.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function vO(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function yO(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function FS(e,t,n){let r=!vO(t);return e&&(r||n==!1)?yO(e,t):t}const xy=e=>e instanceof Yn?{...e}:e;function Fi(e,t){t=t||{};const n={};function r(u,d,p,f){return V.isPlainObject(u)&&V.isPlainObject(d)?V.merge.call({caseless:f},u,d):V.isPlainObject(d)?V.merge({},d):V.isArray(d)?d.slice():d}function s(u,d,p,f){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!V.isUndefined(d))return r(void 0,d)}function a(u,d){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(xy(u),xy(d),p,!0)};return V.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);V.isUndefined(f)&&p!==l||(n[d]=f)}),n}const BS=e=>{const t=Fi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Yn.from(a),t.url=LS(FS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),V.isFormData(n)){if(jn.hasStandardBrowserEnv||jn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(jn.hasStandardBrowserEnv&&(r&&V.isFunction(r)&&(r=r(t)),r||r!==!1&&gO(t.url))){const c=s&&i&&xO.read(i);c&&a.set(s,c)}return t},_O=typeof XMLHttpRequest<"u",bO=_O&&function(e){return new Promise(function(n,r){const s=BS(e);let i=s.data;const a=Yn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Yn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};IS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Me("Request aborted",Me.ECONNABORTED,e,b)),b=null)},b.onerror=function(S){const A=S&&S.message?S.message:"Network Error",E=new Me(A,Me.ERR_NETWORK,e,b);E.event=S||null,r(E),b=null},b.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||DS;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new Me(S,A.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&V.forEach(a.toJSON(),function(S,A){b.setRequestHeader(A,S)}),V.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Mu(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Mu(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=fO(s.url);if(y&&jn.protocols.indexOf(y)===-1){r(new Me("Unsupported protocol "+y+":",Me.ERR_BAD_REQUEST,e));return}b.send(i||null)})},wO=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Me?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Me(`timeout ${t} of ms exceeded`,Me.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>V.asap(l),c}},kO=function*(e,t){let n=e.byteLength;if(n{const s=SO(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},yy=64*1024,{isFunction:gc}=V,CO=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:_y,TextEncoder:by}=V.global,wy=(e,...t)=>{try{return!!e(...t)}catch{return!1}},jO=e=>{e=V.merge.call({skipUndefined:!0},CO,e);const{fetch:t,Request:n,Response:r}=e,s=t?gc(t):typeof fetch=="function",i=gc(n),a=gc(r);if(!s)return!1;const l=s&&gc(_y),c=s&&(typeof by=="function"?(g=>v=>g.encode(v))(new by):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&wy(()=>{let g=!1;const v=new n(jn.origin,{body:new _y,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&wy(()=>V.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Me(`Response type '${g}' is not supported`,Me.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(V.isBlob(g))return g.size;if(V.isSpecCompliantForm(g))return(await new n(jn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(V.isArrayBufferView(g)||V.isArrayBuffer(g))return g.byteLength;if(V.isURLSearchParams(g)&&(g=g+""),V.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=V.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:S,onDownloadProgress:A,onUploadProgress:E,responseType:T,headers:D,withCredentials:z="same-origin",fetchOptions:j}=BS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=wO([y,_&&_.toAbortSignal()],S),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let fe;try{if(E&&u&&b!=="get"&&b!=="head"&&(fe=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),de;if(V.isFormData(x)&&(de=se.headers.get("content-type"))&&D.setContentType(de),se.body){const[L,we]=hy(fe,Mu(gy(E)));x=vy(se.body,yy,L,we)}}V.isString(z)||(z=z?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?z:void 0};re=i&&new n(v,oe);let B=await(i?H(re,j):H(v,oe));const Y=d&&(T==="stream"||T==="response");if(d&&(A||Y&&le)){const se={};["status","statusText","headers"].forEach(Le=>{se[Le]=B[Le]});const de=V.toFiniteNumber(B.headers.get("content-length")),[L,we]=A&&hy(de,Mu(gy(A),!0))||[];B=new r(vy(B.body,yy,L,()=>{we&&we(),le&&le()}),se)}T=T||"text";let N=await p[V.findKey(p,T)||"text"](B,g);return!Y&&le&&le(),await new Promise((se,de)=>{IS(se,de,{data:N,headers:Yn.from(B.headers),status:B.status,statusText:B.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Me("Network Error",Me.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Me.from(xe,xe&&xe.code,g,re)}}},NO=new Map,US=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=NO;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:jO(t)),d=u;return u};US();const Lg={http:qM,xhr:bO,fetch:{get:US}};V.forEach(Lg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const ky=e=>`- ${e}`,PO=e=>V.isFunction(e)||e===null||e===!1;function RO(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(ky).join(` +`):" "+ky(a[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const VS={getAdapter:RO,adapters:Lg};function Pp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function Sy(e){return Pp(e),e.headers=Yn.from(e.headers),e.data=Np.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),VS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Pp(e),r.data=Np.call(e,e.transformResponse,r),r.headers=Yn.from(r.headers),r},function(r){return OS(r)||(Pp(e),r&&r.response&&(r.response.data=Np.call(e,e.transformResponse,r.response),r.response.headers=Yn.from(r.response.headers))),Promise.reject(r)})}const zS="1.13.2",Sd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Sd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ey={};Sd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+zS+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Me(s(a," has been removed"+(n?" in "+n:"")),Me.ERR_DEPRECATED);return n&&!Ey[a]&&(Ey[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};Sd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function AO(e,t,n){if(typeof e!="object")throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Me("option "+i+" must be "+c,Me.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Me("Unknown option "+i,Me.ERR_BAD_OPTION)}}const Gc={assertOptions:AO,validators:Sd},qr=Gc.validators;let Ti=class{constructor(t){this.defaults=t||{},this.interceptors={request:new fy,response:new fy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fi(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Gc.assertOptions(r,{silentJSONParsing:qr.transitional(qr.boolean),forcedJSONParsing:qr.transitional(qr.boolean),clarifyTimeoutError:qr.transitional(qr.boolean)},!1),s!=null&&(V.isFunction(s)?n.paramsSerializer={serialize:s}:Gc.assertOptions(s,{encode:qr.function,serialize:qr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gc.assertOptions(n,{baseUrl:qr.spelling("baseURL"),withXsrfToken:qr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&V.merge(i.common,i[n.method]);i&&V.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Yn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[Sy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 $S(function(s){t=s}),cancel:t}}};function LO(e){return function(n){return e.apply(null,n)}}function DO(e){return V.isObject(e)&&e.isAxiosError===!0}const Cm={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(Cm).forEach(([e,t])=>{Cm[t]=e});function HS(e){const t=new Ti(e),n=bS(Ti.prototype.request,t);return V.extend(n,Ti.prototype,t,{allOwnKeys:!0}),V.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return HS(Fi(e,s))},n}const qt=HS(Rl);qt.Axios=Ti;qt.CanceledError=Ha;qt.CancelToken=TO;qt.isCancel=OS;qt.VERSION=zS;qt.toFormData=kd;qt.AxiosError=Me;qt.Cancel=qt.CanceledError;qt.all=function(t){return Promise.all(t)};qt.spread=LO;qt.isAxiosError=DO;qt.mergeConfig=Fi;qt.AxiosHeaders=Yn;qt.formToJSON=e=>MS(V.isHTMLForm(e)?new FormData(e):e);qt.getAdapter=VS.getAdapter;qt.HttpStatusCode=Cm;qt.default=qt;const{Axios:F8,AxiosError:B8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=qt,ye=qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),jm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let Nm=!1;const MO=()=>{Nm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),Nm||(Nm=!0,window.dispatchEvent(new CustomEvent(jm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const OO=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Cy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},IO=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},FO=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},BO=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},UO=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},VO=async e=>{await ye.delete(`/estimates/${e}`)},zO=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},$O=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},HO=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},qO=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},WO=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},GO=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},KO=async e=>{await ye.delete(`/line-items/${e}`)},QO=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},YO=async e=>{await ye.post("/estimates/reorder",e)},XO=async()=>{const{data:e}=await ye.get("/workload-types");return e},xc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},JO=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},ZO=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},e4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},t4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},n4=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},jy=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},r4=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},s4=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Ny=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},Py=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ry=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Ay=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},i4=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ty=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Pm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},qS=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},a4=async e=>{const t=[];try{const n=await Pm(),r=5;for(let s=0;sqS(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},o4=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},WS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},l4=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>WS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},c4=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},u4=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},d4=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},p4=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},GS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},f4=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},m4=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},h4=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},g4=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},x4=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},sE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},iE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},aE=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},oE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ly=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?g4(n):m4(n);case"ALL_PURPOSE":return t?x4(n):h4(n);case"DLT":return t?XS(n):YS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?QS(n):KS(n);case"VECTOR_SEARCH":return JS(n);case"MODEL_SERVING":return ZS(n);case"FMAPI_DATABRICKS":return eE(n);case"FMAPI_PROPRIETARY":return tE(n);case"LAKEBASE":return oE(n);case"DATABRICKS_APPS":return nE(n);case"CLEAN_ROOM":return rE(n);case"AI_PARSE":return sE(n);case"SHUTTERSTOCK_IMAGEAI":return iE(n);case"LAKEFLOW_CONNECT":return aE(n);default:throw new Error(`Unknown workload type: ${e}`)}},v4="/static/pricing";async function ls(e){const t=await fetch(`${v4}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function y4(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([ls("instance-dbu-rates.json"),ls("dbu-multipliers.json"),ls("dbu-rates.json"),ls("dbsql-rates.json"),ls("dbsql-warehouse-config.json"),ls("vector-search-rates.json"),ls("model-serving-rates.json"),ls("fmapi-databricks-rates.json"),ls("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),lE()}}function lE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Rm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function cE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Dg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _4(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function b4(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function w4(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function k4(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function S4(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const E4={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Dy=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function uE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Dy;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Dy;const l=new Set;for(const c of Object.keys(a)){const u=E4[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(a.CLEAN_ROOMS_COLLABORATOR||r.toUpperCase()!=="STANDARD")&&l.add("CLEAN_ROOM"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),l.has("DLT")&&l.add("LAKEFLOW_CONNECT"),Array.from(l).sort()}function C4(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const vc={},j4="v6",us=`lakemeter_reference_data_${j4}`,N4=4*60*60*1e3;function P4(){try{const e=localStorage.getItem(us);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>N4||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(us),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(us),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(us),null;return t}catch{return localStorage.removeItem(us),null}}function R4(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(us,JSON.stringify(t))}catch{}}function A4(){try{localStorage.removeItem(us)}catch{}}const Rp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Ap=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Tp=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Lp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Dp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Mp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Op=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],bs=iM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"CLEAN_ROOM",display_name:"Clean Room",description:"Secure data collaboration",sku_product_type_standard:"CLEAN_ROOMS_COLLABORATOR",show_usage_runs:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"LAKEFLOW_CONNECT",display_name:"Lakeflow Connect",description:"Data ingestion pipelines",sku_product_type_standard:"DELTA_LIVE_TABLES_SERVERLESS",show_usage_runs:!0}],cloudProviders:Rp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Ap,dbsqlWarehouseTypes:[],dltEditions:Tp,fmapiProviders:Op,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Lp,vmPaymentOptions:Dp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Mp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:lE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await OO();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Cy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Cy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await IO(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await FO(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await BO(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await UO(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await VO(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await zO(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await qO(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await WO(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await GO(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await KO(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=P4();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Rp,dbsqlSizes:u.dbsqlSizes||Ap,dltEditions:u.dltEditions||Tp,fmapiProviders:u.fmapiProviders||Op,vmPricingTiers:u.vmPricingTiers||Lp,vmPaymentOptions:u.vmPaymentOptions||Dp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Mp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,S,A,E,T,D,z,j,H,X,re,le]=await Promise.all([XO().catch(()=>r.workloadTypes),ZO().catch(()=>Rp),e4().catch(()=>Ap),t4().catch(()=>Tp),n4().catch(()=>Op),d4().catch(()=>Lp),p4().catch(()=>Dp),o4().catch(()=>null),c4().catch(()=>null),Ay().catch(()=>Mp),Promise.resolve([]),Ty(s).catch(()=>[]),xc("aws").catch(()=>[]),xc("azure").catch(()=>[]),xc("gcp").catch(()=>[]),Ry(s).catch(()=>[]),Py(s).catch(()=>[]),a4(s).catch(()=>[]),l4(s).catch(()=>[]),jy().catch(()=>[]),Ny().catch(()=>[]),Pm().catch(()=>[])]),fe={aws:A,azure:E,gcp:T},xe=A,oe={};j.forEach(se=>{const de=`${se.model}:${se.rate_type}`;oe[de]=se});const B={};H.forEach(se=>{const de=`${se.provider}:${se.model}:${se.rate_type}`;B[de]=se});const Y=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Y.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:xe,regionsMap:fe,photonMultipliers:D,vectorSearchModes:z,fmapiDatabricksRates:oe,fmapiProprietaryRates:B,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),R4({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:xe,regionsMap:fe,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{A4(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await y4();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await JO(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await jy();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ty(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Ny();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Pm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await u4({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in vc){await vc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=s4({cloud:n.toUpperCase(),region:r,instance_type:s});vc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete vc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Dg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Ay();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ry(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await Py(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await qS(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await WS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ly(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ly(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await XS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await YS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await QS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await KS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await JS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await ZS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await eE({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await tE({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await oE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await nE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"CLEAN_ROOM":c=await rE({...l,collaborators:n.clean_room_collaborators||1,days_per_month:n.days_per_month||30});break;case"AI_PARSE":c=await sE({...l,mode:n.ai_parse_mode||"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1,hours_per_month:n.hours_per_month||0});break;case"SHUTTERSTOCK_IMAGEAI":c=await iE({...l,images_per_month:n.shutterstock_images||100});break;case"LAKEFLOW_CONNECT":c=await aE({...l,dlt_edition:"ADVANCED",runs_per_day:n.runs_per_day||void 0,avg_runtime_minutes:n.avg_runtime_minutes||void 0,days_per_month:n.days_per_month||void 0,hours_per_month:n.hours_per_month||void 0,gateway_enabled:n.lakeflow_connect_gateway_enabled||!1,gateway_instance_type:n.lakeflow_connect_gateway_instance||void 0});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await $O(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await HO(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function T4(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const L4=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,D4=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,M4={};function My(e,t){return(M4.jsx?D4:L4).test(e)}const O4=/[ \t\n\f\r]/g;function I4(e){return typeof e=="object"?e.type==="text"?Oy(e.value):!1:Oy(e)}function Oy(e){return e.replace(O4,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function dE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Am(e){return e.toLowerCase()}class Xn{constructor(t,n){this.attribute=n,this.property=t}}Xn.prototype.attribute="";Xn.prototype.booleanish=!1;Xn.prototype.boolean=!1;Xn.prototype.commaOrSpaceSeparated=!1;Xn.prototype.commaSeparated=!1;Xn.prototype.defined=!1;Xn.prototype.mustUseProperty=!1;Xn.prototype.number=!1;Xn.prototype.overloadedBoolean=!1;Xn.prototype.property="";Xn.prototype.spaceSeparated=!1;Xn.prototype.space=void 0;let F4=0;const Fe=Hi(),Qt=Hi(),Tm=Hi(),ne=Hi(),yt=Hi(),_a=Hi(),tr=Hi();function Hi(){return 2**++F4}const Lm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Fe,booleanish:Qt,commaOrSpaceSeparated:tr,commaSeparated:_a,number:ne,overloadedBoolean:Tm,spaceSeparated:yt},Symbol.toStringTag,{value:"Module"})),Ip=Object.keys(Lm);class Mg extends Xn{constructor(t,n,r,s){let i=-1;if(super(t,n),Iy(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$4.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Fy,W4);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Fy.test(i)){let a=i.replace(z4,q4);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Mg}return new s(r,t)}function q4(e){return"-"+e.toLowerCase()}function W4(e){return e.charAt(1).toUpperCase()}const G4=dE([pE,B4,hE,gE,xE],"html"),Og=dE([pE,U4,hE,gE,xE],"svg");function K4(e){return e.join(" ").trim()}var Ig={},By=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,Q4=/\n/g,Y4=/^\s*/,X4=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,J4=/^:\s*/,Z4=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,Uy="/",Vy="*",ki="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(Q4);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(Y4)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(Uy!=e.charAt(0)||Vy!=e.charAt(1))){for(var v=2;ki!=e.charAt(v)&&(Vy!=e.charAt(v)||Uy!=e.charAt(v+1));)++v;if(v+=2,ki===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(X4);if(v){if(p(),!c(J4))return l("property missing ':'");var b=c(Z4),x=g({type:sI,property:zy(v[0].replace(By,ki)),value:b?zy(b[0].replace(By,ki)):ki});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function zy(e){return e?e.replace(tI,ki):ki}var aI=iI,oI=ms&&ms.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ig,"__esModule",{value:!0});Ig.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Ed={};Object.defineProperty(Ed,"__esModule",{value:!0});Ed.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},$y=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,$y):e=e.replace(fI,$y),e.replace(dI,gI))};Ed.camelCase=xI;var vI=ms&&ms.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Ig),_I=Ed;function Dm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Dm.default=Dm;var bI=Dm;const wI=Wu(bI),vE=yE("end"),Fg=yE("start");function yE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Fg(e),n=vE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Hy(e.position):"start"in e||"end"in e?Hy(e):"line"in e||"column"in e?Mm(e):""}function Mm(e){return qy(e&&e.line)+":"+qy(e&&e.column)}function Hy(e){return Mm(e&&e.start)+"-"+Mm(e&&e.end)}function qy(e){return e&&typeof e=="number"?e:1}class An extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}An.prototype.file="";An.prototype.name="";An.prototype.reason="";An.prototype.message="";An.prototype.stack="";An.prototype.column=void 0;An.prototype.line=void 0;An.prototype.ancestors=void 0;An.prototype.cause=void 0;An.prototype.fatal=void 0;An.prototype.place=void 0;An.prototype.ruleId=void 0;An.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),_E="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Og:G4,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=bE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function bE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Og,e.schema=s),e.ancestors.push(t);const i=kE(e,t.tagName,!1),a=II(e,t);let l=Vg(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!I4(c):!0})),wE(e,a,i,t),Ug(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Og,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:kE(e,t.name,!0),a=FI(e,t),l=Vg(e,t);return wE(e,a,i,t),Ug(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Ug(r,Vg(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function wE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Ug(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Fg(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=BI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function FI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Vg(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(or(e,e.length,0,t),e):t}const Ky={}.hasOwnProperty;function EE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Bn=pi(/[A-Za-z]/),Pn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Ou(e){return e!==null&&(e<32||e===127)}const Om=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function ht(e){return e!==null&&(e<0||e===32)}function qe(e){return e===-2||e===-1||e===32}const Cd=pi(new RegExp("\\p{P}|\\p{S}","u")),Bi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Ye(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return qe(c)?(e.enter(n),l(c)):t(c)}function l(c){return qe(c)&&i++a))return;const T=t.events.length;let D=T,z,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if(z){j=t.events[D][1].end;break}z=!0}for(x(r),E=T;E_;){const A=n[S];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tF(e,t,n){return Ye(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||ht(e)||Bi(e))return 1;if(Cd(e))return 2}function jd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Yy(p,-c),Yy(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,jd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,or(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&qe(E)?Ye(e,y,"linePrefix",i+1)(E):y(E)}function y(E){return E===null||Ne(E)?e.check(Xy,v,S)(E):(e.enter("codeFlowValue"),_(E))}function _(E){return E===null||Ne(E)?(e.exit("codeFlowValue"),y(E)):(e.consume(E),_)}function S(E){return e.exit("codeFenced"),t(E)}function A(E,T,D){let z=0;return j;function j(fe){return E.enter("lineEnding"),E.consume(fe),E.exit("lineEnding"),H}function H(fe){return E.enter("codeFencedFence"),qe(fe)?Ye(E,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(fe):X(fe)}function X(fe){return fe===l?(E.enter("codeFencedFenceSequence"),re(fe)):D(fe)}function re(fe){return fe===l?(z++,E.consume(fe),re):z>=a?(E.exit("codeFencedFenceSequence"),qe(fe)?Ye(E,le,"whitespace")(fe):le(fe)):D(fe)}function le(fe){return fe===null||Ne(fe)?(E.exit("codeFencedFence"),T(fe)):D(fe)}}}function fF(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hF},mF={partial:!0,tokenize:gF};function hF(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Ye(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mF,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gF(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Ye(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xF={name:"codeText",previous:yF,resolve:vF,tokenize:_F};function vF(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function AE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Ou(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||ht(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!qe(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function LE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Ye(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):qe(s)?Ye(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NF={name:"definition",tokenize:RF},PF={partial:!0,tokenize:AF};function RF(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return TE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return ht(h)?Do(e,u)(h):u(h)}function u(h){return AE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PF,p,p)(h)}function p(h){return qe(h)?Ye(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AF(e,t,n){return r;function r(l){return ht(l)?Do(e,s)(l):n(l)}function s(l){return LE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return qe(l)?Ye(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TF={name:"hardBreakEscape",tokenize:LF};function LF(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DF={name:"headingAtx",resolve:MF,tokenize:OF};function MF(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},or(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OF(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||ht(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):qe(d)?Ye(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||ht(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Zy=["pre","script","style","textarea"],FF={concrete:!0,name:"htmlFlow",resolveTo:VF,tokenize:zF},BF={partial:!0,tokenize:HF},UF={partial:!0,tokenize:$F};function VF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zF(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):Bn(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):Bn(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const we="CDATA[";return L===we.charCodeAt(l++)?(e.consume(L),l===we.length?r.interrupt?t:X:g):n(L)}function v(L){return Bn(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||ht(L)){const we=L===47,Le=a.toLowerCase();return!we&&!i&&Zy.includes(Le)?(s=1,r.interrupt?t(L):X(L)):IF.includes(a.toLowerCase())?(s=6,we?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Pn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return qe(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||Bn(L)?(e.consume(L),S):qe(L)?(e.consume(L),_):j(L)}function S(L){return L===45||L===46||L===58||L===95||Pn(L)?(e.consume(L),S):A(L)}function A(L){return L===61?(e.consume(L),E):qe(L)?(e.consume(L),A):_(L)}function E(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):qe(L)?(e.consume(L),E):D(L)}function T(L){return L===c?(e.consume(L),c=null,z):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||ht(L)?A(L):(e.consume(L),D)}function z(L){return L===47||L===62||qe(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):qe(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Y):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(BF,de,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UF,le,de)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),fe}function fe(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",B):X(L)}function B(L){if(L===62){const we=a.toLowerCase();return Zy.includes(we)?(e.consume(L),se):X(L)}return Bn(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),B):X(L)}function Y(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),de(L)):(e.consume(L),se)}function de(L){return e.exit("htmlFlow"),t(L)}}function $F(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HF(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qF={name:"htmlText",tokenize:WF};function WF(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):Bn(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):Bn(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),S):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function S(N){return N===62?xe(N):_(N)}function A(N){return Bn(N)?(e.consume(N),E):n(N)}function E(N){return N===45||Pn(N)?(e.consume(N),E):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):qe(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Pn(N)?(e.consume(N),D):N===47||N===62||ht(N)?z(N):n(N)}function z(N){return N===47?(e.consume(N),xe):N===58||N===95||Bn(N)?(e.consume(N),j):Ne(N)?(a=z,oe(N)):qe(N)?(e.consume(N),z):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Pn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):qe(N)?(e.consume(N),H):z(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):qe(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,fe):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||ht(N)?z(N):(e.consume(N),le)}function fe(N){return N===47||N===62||ht(N)?z(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),B}function B(N){return qe(N)?Ye(e,Y,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Y(N)}function Y(N){return e.enter("htmlTextData"),a(N)}}const Hg={name:"labelEnd",resolveAll:YF,resolveTo:XF,tokenize:JF},GF={tokenize:ZF},KF={tokenize:eB},QF={tokenize:tB};function YF(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),qe(u)?Ye(e,l,"whitespace")(u):l(u))}}const $n={continuation:{tokenize:dB},exit:fB,name:"list",tokenize:uB},lB={partial:!0,tokenize:mB},cB={partial:!0,tokenize:pB};function uB(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Om(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Kc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Om(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lB,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return qe(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dB(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ye(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!qe(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cB,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ye(e,e.attempt($n,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pB(e,t,n){const r=this;return Ye(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fB(e){e.exit(this.containerState.type)}function mB(e,t,n){const r=this;return Ye(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!qe(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const e_={name:"setextUnderline",resolveTo:hB,tokenize:gB};function hB(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gB(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),qe(u)?Ye(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xB={tokenize:vB};function vB(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Ye(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kF,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yB={resolveAll:ME()},_B=DE("string"),bB=DE("text");function DE(e){return{resolveAll:ME(e==="text"?wB:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MB(e,t){let n=-1;const r=[];let s;for(;++n0){const Be=K.tokenStack[K.tokenStack.length-1];(Be[1]||n_).call(K,void 0,Be[0])}for(F.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function FE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return FE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return FE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):BE(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Fg(t.children[1]),c=vE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(i_(t.slice(s),s>0,!1)),i.join("")}function i_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===r_||i===s_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===r_||i===s_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WB,break:GB,code:KB,delete:QB,emphasis:YB,footnoteReference:XB,heading:JB,html:ZB,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:yc,yaml:yc,definition:yc,footnoteDefinition:yc};function yc(){}const UE=-1,Nd=0,Mo=1,Iu=2,qg=3,Wg=4,Gg=5,Kg=6,VE=7,zE=8,a_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case Nd:case UE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Iu:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case qg:return n(new Date(a),s);case Wg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Gg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Kg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case VE:{const{name:l,message:c}=a;return n(new a_[l](c),s)}case zE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new a_[i](a),s)};return r},o_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[Nd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Iu,Ki];case"Date":return[qg,Ki];case"RegExp":return[Wg,Ki];case"Map":return[Gg,Ki];case"Set":return[Kg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[VE,n]:[Iu,n]},_c=([e,t])=>e===Nd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case Nd:{let d=a;switch(c){case"bigint":l=zE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([UE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Iu:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!_c(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case qg:return s([l,a.toISOString()],a);case Wg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Gg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(_c(uo(f))||_c(uo(h))))&&d.push([i(f),i(h)]);return p}case Kg:{const d=[],p=s([l,d],a);for(const f of a)(e||!_c(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},l_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Fu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?o_(l_(e,t)):structuredClone(e):(e,t)=>o_(l_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Fu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Pd=function(e){if(e==null)return N6;if(typeof e=="function")return Rd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=$E,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Fm))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function c_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function u_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function B6(e,t){return e&&"run"in e?async function(n,r){const s=u_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return u_(n,{file:r,...e||t})}}function d_(e){if(e)throw e}var Qc=Object.prototype.hasOwnProperty,qE=Object.prototype.toString,p_=Object.defineProperty,f_=Object.getOwnPropertyDescriptor,m_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):qE.call(t)==="[object Array]"},h_=function(t){if(!t||qE.call(t)!=="[object Object]")return!1;var n=Qc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Qc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Qc.call(t,s)},g_=function(t,n){p_&&n.name==="__proto__"?p_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},x_=function(t,n){if(n==="__proto__")if(Qc.call(t,n)){if(f_)return f_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Gr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Vm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Vm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Um(v)&&Um(h)&&(h=Vp(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Yg().freeze();function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Wp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Gp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function y_(e){if(!Um(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function __(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function bc(e){return rU(e)?e:new WE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",b_=[],w_={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||b_,n=e.remarkPlugins||b_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...w_}:w_;return nU().use(qB).use(n).use(B6,r).use(t)}function dU(e){const t=e.children||"",n=new WE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Qg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Fp)if(Object.hasOwn(Fp,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Fp[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function k_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Pd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:E}:void 0),E===!1?f.lastIndex=S+1:(g!==S&&y.push({type:"text",value:u.value.slice(g,S)}),Array.isArray(E)?y.push(...E):E&&y.push(E),g=S+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=k_(e,"(");let i=k_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function GE(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Bi(n)||Cd(n))&&(!t||n!==47)}KE.peek=BU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function FU(e){this.exit(e)}function BU(){return"["}function KE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:FU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:KE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?QE:zU))),u(),c}}function zU(e,t,n){return t===0?e:QE(e,t,n)}function QE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];YE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:YE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function YE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function eV(e,t){return E_(e,t.inConstruct,!0)&&!E_(e,t.notInConstruct,!1)}function E_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function nV(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function rV(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function sV(e,t,n,r){const s=rV(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(nV(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,iV);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(tV(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function iV(e,t,n){return(n?"":" ")+e}function Xg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function aV(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function oV(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}XE.peek=lV;function XE(e,t,n,r){const s=oV(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function lV(e,t,n){return n.options.emphasis||"*"}function cV(e,t){let n=!1;return Qg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Fm}),!!((!e.depth||e.depth<3)&&zg(e)&&(t.options.setext||n))}function uV(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(cV(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}JE.peek=dV;function JE(e){return e.value||""}function dV(){return"<"}ZE.peek=pV;function ZE(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function pV(){return"!"}eC.peek=fV;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function fV(){return"!"}tC.peek=mV;function tC(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}rC.peek=hV;function rC(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(nC(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function hV(e,t,n){return nC(e,n)?"<":"["}sC.peek=gV;function sC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function gV(){return"["}function Jg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function xV(e){const t=Jg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function vV(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function iC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function yV(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?vV(n):Jg(n);const l=e.ordered?a==="."?")":".":xV(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),iC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function wV(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const kV=Pd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function SV(e,t,n,r){return(e.children.some(function(a){return kV(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function EV(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}aC.peek=CV;function aC(e,t,n,r){const s=EV(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function CV(e,t,n){return n.options.strong||"*"}function jV(e,t,n,r){return n.safe(e.value,r)}function NV(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function PV(e,t,n){const r=(iC(n)+(n.options.ruleSpaces?" ":"")).repeat(NV(n));return n.options.ruleSpaces?r.slice(0,-1):r}const oC={blockquote:JU,break:C_,code:sV,definition:aV,emphasis:XE,hardBreak:C_,heading:uV,html:JE,image:ZE,imageReference:eC,inlineCode:tC,link:rC,linkReference:sC,list:yV,listItem:bV,paragraph:wV,root:SV,strong:aC,text:jV,thematicBreak:PV};function RV(){return{enter:{table:AV,tableData:j_,tableHeader:j_,tableRow:LV},exit:{codeText:DV,table:TV,tableData:Xp,tableHeader:Xp,tableRow:Xp}}}function AV(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function TV(e){this.exit(e),this.data.inTable=void 0}function LV(e){this.enter({type:"tableRow",children:[]},e)}function Xp(e){this.exit(e)}function j_(e){this.enter({type:"tableCell",children:[]},e)}function DV(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,MV));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function MV(e,t){return t==="|"?t:e}function OV(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const e7={tokenize:l7,partial:!0};function t7(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:i7,continuation:{tokenize:a7},exit:o7}},text:{91:{name:"gfmFootnoteCall",tokenize:s7},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:n7,resolveTo:r7}}}}function n7(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function r7(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function s7(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||ht(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return ht(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function i7(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||ht(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return ht(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Ye(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function a7(e,t,n){return e.check(Tl,t,e.attempt(e7,t,n))}function o7(e){e.exit("gfmFootnoteDefinition")}function l7(e,t,n){const r=this;return Ye(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function c7(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class u7{constructor(){this.map=[]}add(t,n,r){d7(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function d7(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?E:c;return re===E&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):qe(j)?Ye(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||ht(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,qe(j)?Ye(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return qe(j)?Ye(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?S(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return qe(j)?Ye(e,S,"whitespace")(j):S(j)}function S(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function E(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):qe(j)?Ye(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||ht(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?z:D)}function z(j){return j===92||j===124?(e.consume(j),D):D(j)}}function h7(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new u7;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function P_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const g7={name:"tasklistCheck",tokenize:v7};function x7(){return{text:{91:g7}}}function v7(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return ht(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):qe(c)?e.check({tokenize:y7},t,n)(c):n(c)}}function y7(e,t,n){return Ye(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _7(e){return EE([qV(),t7(),c7(e),f7(),x7()])}const b7={};function w7(e){const t=this,n=e||b7,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_7(n)),i.push(VV()),a.push(zV(n))}function k7({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[S,A]=m.useState([]),[E,T]=m.useState([]),[D,z]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,fe]=m.useState(!1),[xe,oe]=m.useState(380),[B,Y]=m.useState(!1),[N,se]=m.useState(!0),[de,L]=m.useState(null),[we,Le]=m.useState(""),[w,q]=m.useState(null),ce=l??xe,_e=c??oe,ve=m.useRef(null),at=m.useRef(null),Xe=m.useRef(null),I=m.useRef(null),nt=m.useRef(null),gt=m.useRef(!1),ot=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,ze=a[Te];ze!=null&&ze.total&&(U+=ze.total)}),U},[a,i]),ft=m.useCallback(U=>{U.preventDefault(),Y(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!B)return;const ze=window.innerWidth-Te.clientX,Q=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,ze),Q))},Z=()=>{Y(!1)};return B&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[B]);const G=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;gt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(gt.current=!1)},[g]);const k=m.useCallback(()=>{const U=at.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;gt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Xe.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),W=m.useCallback((U,Z)=>{L(U),Le(Z)},[]),Se=m.useCallback(()=>{L(null),Le("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),q(U),setTimeout(()=>q(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,F]=m.useState(null),[K,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!we.trim()||d.findIndex(Q=>Q.id===U)===-1)return;const Te=we.trim();if(T([]),L(null),Le(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const ze={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([ze]),F(Te),ae(!0)},[we,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,ot,ie]);const Be=m.useCallback(async(U,Z)=>{var ct;const Te=U||f.trim();if(!Te||g)return;const ze={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(et=>[...et,ze]),h(""),v(!0),re(null);const Q=`assistant-${Date.now()}`;p(et=>[...et,{id:Q,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const et=(i||S||[]).map(Oe=>{const De=Oe.line_item_id||Oe.item_id||Oe.draft_id,Re=a==null?void 0:a[De];return{...Oe,total_cost:(Re==null?void 0:Re.total)||Oe.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Oe.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Oe.vm_cost||0}}),It=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:ze.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:et,mode:u,stream:!0}),signal:I.current.signal});if(!It.ok)throw new Error(`HTTP ${It.status}: ${It.statusText}`);const pt=(ct=It.body)==null?void 0:ct.getReader();if(!pt)throw new Error("No response body");const xt=new TextDecoder;let Et="",mt="",Ve=[];for(;;){const{done:Oe,value:De}=await pt.read();if(Oe)break;Et+=xt.decode(De,{stream:!0});const Re=Et.split(` +`);Et=Re.pop()||"";for(const Wt of Re)if(Wt.startsWith("data: ")){const Ct=Wt.slice(6);if(Ct==="[DONE]")continue;try{const Ce=JSON.parse(Ct);if(Ce.type==="start")x(Ce.conversation_id);else if(Ce.type==="content")mt+=Ce.content,p(jt=>jt.map(ln=>ln.id===Q?{...ln,content:mt,isThinking:!1}:ln));else if(Ce.type==="tool_result")Ve.push({tool:Ce.tool,result:Ce.result});else if(Ce.type==="proposal")Ce.workload&&Ce.workload.proposal_id&&T(jt=>jt.some(qi=>qi.proposal_id===Ce.workload.proposal_id)?jt:[...jt,Ce.workload]);else if(Ce.type==="done")mt.includes("Error getting response")||mt.includes("AI service error")||(Ce.estimate&&_(Ce.estimate),Ce.workloads&&A(Ce.workloads),Ce.proposed_workloads&&Ce.proposed_workloads.length>0&&T(Ce.proposed_workloads));else if(Ce.type==="error")throw new Error(Ce.content)}catch{}}}p(Oe=>Oe.map(De=>De.id===Q?{...De,content:mt,isStreaming:!1,toolResults:Ve}:De))}catch(et){if(et.name==="AbortError")return;console.error("Chat error:",et),re(et.message||"Failed to get response"),p(It=>It.filter(pt=>pt.id!==Q))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,S,a]);m.useEffect(()=>{O&&!g&&(Be(O,K),F(null),ae(!1))},[O,K,g,Be]);const dt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Be())},rt=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ke=async U=>{if(b){z(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T(ze=>ze.filter(Q=>Q.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p(ze=>{var Q;return[...ze,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(Q=Te.workload_config)==null?void 0:Q.workload_name}" added to estimate.`,timestamp:new Date}]})}catch(ze){p(Q=>[...Q,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${ze.message||"Database error"}. Please try again.`,timestamp:new Date}]),re(ze.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{z(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},lt=async U=>{if(b){z(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=E.find(ze=>ze.proposal_id===U);T(ze=>ze.filter(Q=>Q.proposal_id!==U)),p(ze=>[...ze,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{z(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Qe=async()=>{for(const U of E)await Ke(U.proposal_id)},Ot=async()=>{for(const U of E)await lt(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>fe(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx(Hc,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(ps,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:nt,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ce}px)`},children:[o.jsx("div",{onMouseDown:ft,className:ue("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",B&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(dS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(fs,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:rt,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(YD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(FD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[ot>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",ot.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),E.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ry,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[E.length," Proposed Workload",E.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(rr,{className:"w-4 h-4 text-amber-600"}):o.jsx(ps,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Qe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",E.length,")"]}),o.jsx("button",{onClick:Ot,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:E.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:ue("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ke(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Tu,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>lt(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:at,onScroll:k,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:ue("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:ue("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&de===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:we,onChange:Z=>Le(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:ue("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[w7],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var ze;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[(ze=Z.result)!=null&&ze.success?o.jsx(Tu,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Yr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:ue("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:ue("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(SD,{className:"w-3.5 h-3.5"}):o.jsx(CD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>W(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(s3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ry,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:rt,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(rr,{className:"w-3 h-3"}):o.jsx(ps,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Be(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Xe,value:f,onChange:G,onKeyDown:dt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Be(),disabled:!g&&!f.trim(),className:ue("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(fS,{className:"w-4 h-4"}):o.jsx(e3,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function S7({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const E7=[{name:"Estimates",href:"/",icon:Pg},{name:"New Estimate",href:"/calculator",icon:c3}],R_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Jp=[{value:"light",label:"Light",icon:b3},{value:"dark",label:"Dark",icon:JD},{value:"system",label:"System",icon:AD}],kc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function C7(){const e=bl(),{theme:t,setTheme:n}=T3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(kc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(kc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),S=m.useRef(null),{currentUser:A,isAuthenticated:E,authError:T,fetchCurrentUser:D,currentEstimate:z,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:fe,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:B}=bs(),Y=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Y||N,de=m.useCallback(()=>{MO(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const q=ce=>{var _e;console.log("Session expired event received:",ce.detail),g(((_e=ce.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(jm,q),()=>{window.removeEventListener(jm,q)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(kc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),we=m.useCallback(()=>{a(!i),x||(localStorage.setItem(kc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||fe(),B||xe()},[fe,xe,oe,B]),m.useEffect(()=>{const q=ce=>{_.current&&!_.current.contains(ce.target)&&s(!1),S.current&&!S.current.contains(ce.target)&&a(!1)};return document.addEventListener("mousedown",q),()=>document.removeEventListener("mousedown",q)},[]);const Le=Jp.find(q=>q.value===t)||Jp[2],w=Le.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(R_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(wu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(R_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:E7.map(q=>{const ce=e.pathname===q.href||q.href!=="/"&&e.pathname.startsWith(q.href);return o.jsxs(wu,{to:q.href,className:ue("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ce&&"border"),style:ce?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(q.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:q.name})]},q.name)})}),E&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(C3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:Le.label}),o.jsx(rr,{className:ue("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Jp.map(q=>{const ce=q.icon,_e=t===q.value;return o.jsxs("button",{onClick:()=>{n(q.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ce,{className:"w-4 h-4"}),o.jsx("span",{children:q.label})]},q.value)})})]}),o.jsxs("div",{className:"relative",ref:S,children:[o.jsxs("button",{onClick:we,className:ue("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(p3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(rm,{children:i&&o.jsxs(Ut.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(UD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(bm,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx(Ut.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(jN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(k7,{isOpen:l,onClose:()=>c(!1),currentEstimate:Y?z:void 0,currentWorkloads:Y?j:void 0,itemCosts:Y?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Y?async q=>{if(z!=null&&z.estimate_id)try{await X({estimate_id:z.estimate_id,...q}),re(z.estimate_id),He.success(`Workload "${q.workload_name}" added!`)}catch(ce){throw He.error(ce.message||"Failed to add workload"),ce}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(S7,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(rm,{children:p&&o.jsx(Ut.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs(Ut.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(fs,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:de,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Yr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function j7(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Ad=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function ex(e){return"nodeType"in e}function Jn(e){var t,n;return e?Ga(e)?e:ex(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function tx(e){const{Document:t}=Jn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Jn(e).HTMLElement}function gC(e){return e instanceof Jn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:ex(e)?tx(e)?e:Dl(e)||gC(e)?e.ownerDocument:document:document:document}const ts=Ad?m.useLayoutEffect:m.useEffect;function nx(e){const t=m.useRef(e);return ts(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return ts(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Uu(e){const t=nx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function $m(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Zp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Zp[e]==null?0:Zp[e]+1;return Zp[e]=n,e+"-"+n},[e,t])}function xC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=xC(1),Vu=xC(-1);function P7(e){return"clientX"in e&&"clientY"in e}function rx(e){if(!e)return!1;const{KeyboardEvent:t}=Jn(e.target);return t&&e instanceof t}function R7(e){if(!e)return!1;const{TouchEvent:t}=Jn(e.target);return t&&e instanceof t}function Hm(e){if(R7(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return P7(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),A_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function A7(e){return e.matches(A_)?e:e.querySelector(A_)}const T7={display:"none"};function L7(e){let{id:t,value:n}=e;return fn.createElement("div",{id:t,style:T7},n)}function D7(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return fn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function M7(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const vC=m.createContext(null);function O7(e){const t=m.useContext(vC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function I7(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const F7={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},B7={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function U7(e){let{announcements:t=B7,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=F7}=e;const{announce:i,announcement:a}=M7(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),O7(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=fn.createElement(fn.Fragment,null,fn.createElement(L7,{id:r,value:s.draggable}),fn.createElement(D7,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function zu(){}function $u(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function yC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Br=Object.freeze({x:0,y:0});function V7(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function z7(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $7(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function H7(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function T_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const _C=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=T_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=V7(T_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(z7)};function q7(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=q7(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($7)};function G7(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function bC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Br}function K7(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const Q7=K7(1);function Y7(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function X7(e,t,n){const r=Y7(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const J7={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=J7);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Jn(e).getComputedStyle(e);u&&(n=X7(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function L_(e){return Qa(e,{ignoreTransform:!0})}function Z7(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Jn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Jn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function sx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(tx(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||gC(s)||n.includes(s))return n;const i=Jn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function wC(e){const[t]=sx(e,1);return t??null}function ef(e){return!Ad||!e?null:Ga(e)?e:ex(e)?tx(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function kC(e){return Ga(e)?e.scrollX:e.scrollLeft}function SC(e){return Ga(e)?e.scrollY:e.scrollTop}function qm(e){return{x:kC(e),y:SC(e)}}var pn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(pn||(pn={}));function EC(e){return!Ad||!e?!1:e===document.scrollingElement}function CC(e){const t={x:0,y:0},n=EC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=CC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=pn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=pn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=pn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=pn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function jC(e){return e.reduce((t,n)=>ba(t,qm(n)),Br)}function iz(e){return e.reduce((t,n)=>t+kC(n),0)}function az(e){return e.reduce((t,n)=>t+SC(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);wC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class ix{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=sx(n),s=jC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Jn(e);return e instanceof t?e:Ka(e)}function tf(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function D_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var tt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(tt||(tt={}));const NC={start:[tt.Space,tt.Enter],cancel:[tt.Esc],end:[tt.Space,tt.Enter,tt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case tt.Right:return{...n,x:n.x+25};case tt.Left:return{...n,x:n.x-25};case tt.Down:return{...n,y:n.y+25};case tt.Up:return{...n,y:n.y-25}}};class Td{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Jn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Br)}handleKeyDown(t){if(rx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=NC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Br;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Vu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:S,maxScroll:A,minScroll:E}=CC(v),T=sz(v),D={x:Math.min(b===tt.Right?T.right-T.width/2:T.right,Math.max(b===tt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===tt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===tt.Down?T.top:T.top+T.height/2,p.y))},z=b===tt.Right&&!y||b===tt.Left&&!_,j=b===tt.Down&&!S||b===tt.Up&&!x;if(z&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===tt.Right&&H<=A.x||b===tt.Left&&H>=E.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===tt.Right?v.scrollLeft-A.x:v.scrollLeft-E.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===tt.Down&&H<=A.y||b===tt.Up&&H>=E.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===tt.Down?v.scrollTop-A.y:v.scrollTop-E.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Vu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Td.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=NC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function M_(e){return!!(e&&"distance"in e)}function O_(e){return!!(e&&"delay"in e)}class ax{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Jn(a)),this.initialCoordinates=(s=Hm(i))!=null?s:Br,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,D_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,D_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(O_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(M_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=Hm(t))!=null?n:Br,u=Vu(s,c);if(!r&&l){if(M_(l)){if(l.tolerance!=null&&tf(u,l.tolerance))return this.handleCancel();if(tf(u,l.distance))return this.handleStart()}if(O_(l)&&tf(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===tt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ld extends ax{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Ld.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var Wm;(function(e){e[e.RightClick=2]="RightClick"})(Wm||(Wm={}));class mz extends ax{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Wm.RightClick?!1:(r==null||r({event:n}),!0)}}];const nf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ax{constructor(t){super(t,nf)}static setup(){return window.addEventListener(nf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(nf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var Hu;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Hu||(Hu={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=Hu.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=N7(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),S=m.useCallback(()=>{const E=_.current;if(!E)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;E.scrollBy(T,D)},[]),A=m.useMemo(()=>l===Hu.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const E of A){if((r==null?void 0:r(E))===!1)continue;const T=u.indexOf(E),D=d[T];if(!D)continue;const{direction:z,speed:j}=rz(E,D,y,t,f);for(const H of["x","y"])h[H][z[H]]||(j[H]=0,z[H]=0);if(j.x>0||j.y>0){v(),_.current=E,g(S,a),b.current=j,x.current=z;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,S,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[pn.Backward]:!1,[pn.Forward]:!1},y:{[pn.Backward]:!1,[pn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=$m(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[pn.Backward]:s.x[pn.Backward]||i.x===-1,[pn.Forward]:s.x[pn.Forward]||i.x===1},y:{[pn.Backward]:s.y[pn.Backward]||i.y===-1,[pn.Forward]:s.y[pn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Gm;(function(e){e.Optimized="optimized"})(Gm||(Gm={}));const I_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return I_;if(!x||x===I_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const S=_.node.current,A=S?new ix(c(S),S):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function PC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return PC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=nx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Dd(e){let{callback:t,disabled:n}=e;const r=nx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new ix(Qa(e),e)}function F_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Dd({callback:i});return ts(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=PC(e);return bC(e,t)}const B_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==B_&&e&&t.current&&e.parentNode===t.current.parentNode?r:sx(e):B_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=ef(i.target);a&&n(l=>l?(l.set(a,qm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=ef(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,qm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=ef(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Br):jC(e):Br,[e,t])}function U_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Br;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Vu(e,n.current):Br}function Nz(e){m.useEffect(()=>{if(!Ad)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function RC(e){return m.useMemo(()=>e?Z7(e):null,[e])}const V_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=RC(n?Jn(n):null),[s,i]=m.useState(V_);function a(){i(()=>e.length?e.map(c=>EC(c)?r:new ix(t(c),c)):V_)}const l=Dd({callback:a});return ts(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Dd({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Uu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Ld,options:{}},{sensor:Td,options:{}}],Dz={current:{}},Yc={draggable:{measure:L_},droppable:{measure:L_,strategy:fl.WhileDragging,frequency:Gm.Optimized},dragOverlay:{measure:Qa}};class Fo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Fo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:zu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Yc,measureDroppableContainers:zu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:zu,draggableNodes:new Map,over:null,measureDroppableContainers:zu},Md=m.createContext(Oz),AC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Fo}}}function Fz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Fo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Fo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Fo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Bz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Md),i=$m(r),a=$m(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!rx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=A7(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Yc.draggable,...e==null?void 0:e.draggable},droppable:{...Yc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Yc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;ts(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=bC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=wC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const TC=m.createContext({...Br,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const LC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=W7,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Fz,void 0,Iz),[b,x]=v,[y,_]=I7(),[S,A]=m.useState(Us.Uninitialized),E=S===Us.Initialized,{draggable:{active:T,nodes:D,translate:z},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var Q;return T!=null?{id:T,data:(Q=H==null?void 0:H.data)!=null?Q:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[fe,xe]=m.useState(null),[oe,B]=m.useState(null),Y=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),de=Vz(f),{droppableRects:L,measureDroppableContainers:we,measuringScheduled:Le}=bz(se,{dragging:E,dependencies:[z.x,z.y],config:de.droppable}),w=yz(D,T),q=m.useMemo(()=>oe?Hm(oe):null,[oe]),ce=ze(),_e=wz(w,de.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ce.layoutShiftCompensation,initialRect:_e,measure:de.draggable.measure});const ve=F_(w,de.draggable.measure,_e),at=F_(w?w.parentElement:null),Xe=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Xe.current.over)==null?void 0:n.id),nt=Tz({measure:de.dragOverlay.measure}),gt=(r=nt.nodeRef.current)!=null?r:w,ot=E?(s=nt.rect)!=null?s:ve:null,ft=!!(nt.nodeRef.current&&nt.rect),G=Ez(ft?null:ve),P=RC(gt?Jn(gt):null),k=Cz(E?I??w:null),ie=Rz(k),M=Uz(h,{transform:{x:z.x-G.x,y:z.y-G.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:at,draggingNodeRect:ot,over:Xe.current.over,overlayNodeRect:nt.rect,scrollableAncestors:k,scrollableAncestorRects:ie,windowRect:P}),W=q?ba(q,z):null,Se=jz(k),Pe=U_(Se),O=U_(Se,[ve]),F=ba(M,Pe),K=ot?Q7(ot,M):null,ae=re&&K?p({active:re,collisionRect:K,droppableRects:L,droppableContainers:se,pointerCoordinates:W}):null,je=H7(ae,"id"),[Be,dt]=m.useState(null),rt=ft?M:ba(M,O),Ke=G7(rt,(i=Be==null?void 0:Be.rect)!=null?i:null,ve),lt=m.useRef(null),Qe=m.useCallback((Q,ct)=>{let{sensor:et,options:It}=ct;if(le.current==null)return;const pt=D.get(le.current);if(!pt)return;const xt=Q.nativeEvent,Et=new et({active:le.current,activeNode:pt,event:xt,options:It,context:Xe,onAbort(Ve){if(!D.get(Ve))return;const{onDragAbort:De}=Y.current,Re={id:Ve};De==null||De(Re),y({type:"onDragAbort",event:Re})},onPending(Ve,Oe,De,Re){if(!D.get(Ve))return;const{onDragPending:Ct}=Y.current,Ce={id:Ve,constraint:Oe,initialCoordinates:De,offset:Re};Ct==null||Ct(Ce),y({type:"onDragPending",event:Ce})},onStart(Ve){const Oe=le.current;if(Oe==null)return;const De=D.get(Oe);if(!De)return;const{onDragStart:Re}=Y.current,Wt={activatorEvent:xt,active:{id:Oe,data:De.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Wt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:Ve,active:Oe}),y({type:"onDragStart",event:Wt}),xe(lt.current),B(xt)})},onMove(Ve){x({type:sn.DragMove,coordinates:Ve})},onEnd:mt(sn.DragEnd),onCancel:mt(sn.DragCancel)});lt.current=Et;function mt(Ve){return async function(){const{active:De,collisions:Re,over:Wt,scrollAdjustedTranslate:Ct}=Xe.current;let Ce=null;if(De&&Ct){const{cancelDrop:jt}=Y.current;Ce={activatorEvent:xt,active:De,collisions:Re,delta:Ct,over:Wt},Ve===sn.DragEnd&&typeof jt=="function"&&await Promise.resolve(jt(Ce))&&(Ve=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:Ve}),A(Us.Uninitialized),dt(null),xe(null),B(null),lt.current=null;const jt=Ve===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ce){const ln=Y.current[jt];ln==null||ln(Ce),y({type:jt,event:Ce})}})}}},[D]),Ot=m.useCallback((Q,ct)=>(et,It)=>{const pt=et.nativeEvent,xt=D.get(It);if(le.current!==null||!xt||pt.dndKit||pt.defaultPrevented)return;const Et={active:xt};Q(et,ct.options,Et)===!0&&(pt.dndKit={capturedBy:ct.sensor},le.current=It,Qe(et,ct))},[D,Qe]),U=_z(d,Ot);Nz(d),ts(()=>{ve&&S===Us.Initializing&&A(Us.Initialized)},[ve,S]),m.useEffect(()=>{const{onDragMove:Q}=Y.current,{active:ct,activatorEvent:et,collisions:It,over:pt}=Xe.current;if(!ct||!et)return;const xt={active:ct,activatorEvent:et,collisions:It,delta:{x:F.x,y:F.y},over:pt};la.unstable_batchedUpdates(()=>{Q==null||Q(xt),y({type:"onDragMove",event:xt})})},[F.x,F.y]),m.useEffect(()=>{const{active:Q,activatorEvent:ct,collisions:et,droppableContainers:It,scrollAdjustedTranslate:pt}=Xe.current;if(!Q||le.current==null||!ct||!pt)return;const{onDragOver:xt}=Y.current,Et=It.get(je),mt=Et&&Et.rect.current?{id:Et.id,rect:Et.rect.current,data:Et.data,disabled:Et.disabled}:null,Ve={active:Q,activatorEvent:ct,collisions:et,delta:{x:pt.x,y:pt.y},over:mt};la.unstable_batchedUpdates(()=>{dt(mt),xt==null||xt(Ve),y({type:"onDragOver",event:Ve})})},[je]),ts(()=>{Xe.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:K,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:gt,draggingNodeRect:ot,droppableContainers:j,over:Be,scrollableAncestors:k,scrollAdjustedTranslate:F},X.current={initial:ot,translated:K}},[re,w,ae,K,D,gt,ot,L,j,Be,k,F]),gz({...ce,delta:z,draggingRect:K,pointerCoordinates:W,scrollableAncestors:k,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:at,dragOverlay:nt,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Be,measureDroppableContainers:we,scrollableAncestors:k,scrollableAncestorRects:ie,measuringConfiguration:de,measuringScheduled:Le,windowRect:P}),[re,w,ve,oe,ae,at,nt,D,j,L,Be,we,k,ie,de,Le,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Be,measureDroppableContainers:we}),[oe,U,re,ve,x,N,D,Be,we]);return fn.createElement(vC.Provider,{value:_},fn.createElement(Md.Provider,{value:Te},fn.createElement(AC.Provider,{value:Z},fn.createElement(TC.Provider,{value:Ke},u)),fn.createElement(Bz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),fn.createElement(U7,{...l,hiddenTextDescribedById:N}));function ze(){const Q=(fe==null?void 0:fe.autoScrollEnabled)===!1,ct=typeof c=="object"?c.enabled===!1:c===!1,et=E&&!Q&&!ct;return typeof c=="object"?{...c,enabled:et}:{enabled:et}}}),$z=m.createContext(null),z_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Md),{role:h=z_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?TC:$z),[y,_]=Uu(),[S,A]=Uu(),E=Pz(a,t),T=pl(n);ts(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:S,data:T}),()=>{const z=p.get(t);z&&z.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===z_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:E,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(AC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Md),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Dd({callback:y,disabled:g||!a}),S=m.useCallback((D,z)=>{_&&(z&&(_.unobserve(z),p.current=!1),D&&_.observe(D))},[_]),[A,E]=Uu(S),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:E}}function ox(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function Sc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ox(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Ec={scaleX:1,scaleY:1},MC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Ec}:s=a?{x:0,y:l.height+c,...Ec}:{x:0,y:0,...Ec}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(E=>typeof E=="object"&&"id"in E?E.id:E),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,S=Jz(i);ts(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:S,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,S.draggable,S.droppable,_,h,b,c,f,s]);return fn.createElement(IC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ox(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},BC="transform",r8=Oa.Transition.toString({property:BC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return ts(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function UC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(IC),_=a8(r,h),S=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:S,items:d},...s}),[p,s,S,d]),E=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:z,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:E,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:fe,listeners:xe,isDragging:oe,over:B,setActivatorNodeRef:Y,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=j7(j,fe),de=!!H,L=de&&!g&&Sc(f)&&Sc(b),we=!x&&oe,Le=we&&L?N:null,q=L?Le??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:S}):null,ce=Sc(f)&&Sc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):S,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ce,containerId:p}),at=d!==ve.current.items,Xe=t({active:H,containerId:p,isDragging:oe,isSorting:de,id:a,index:S,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Xe,index:S,node:D,rect:T});return m.useEffect(()=>{de&&ve.current.newIndex!==ce&&(ve.current.newIndex=ce),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[de,ce,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const gt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(gt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:S,newIndex:ce,items:d,isOver:z,isSorting:de,isDragging:oe,listeners:xe,node:D,overIndex:b,over:B,setNodeRef:se,setActivatorNodeRef:Y,setDroppableNodeRef:j,setDraggableNodeRef:fe,transform:I??q,transition:nt()};function nt(){if(I||at&&ve.current.newIndex===S)return r8;if(!(we&&!rx(X)||!u)&&(de||Xe))return Oa.Transition.toString({...u,property:BC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}tt.Down,tt.Right,tt.Up,tt.Left;const VC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=UC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var zC={exports:{}};(function(e,t){(function(n,r){r()})(ms,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ms=="object"&&ms.global===ms?ms:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(zC);var Km=zC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Cc={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=ud(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=bs(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[S,A]=m.useState(new Set),[E,T]=m.useState(!1),[D,z]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,fe]=m.useState(null),[xe,oe]=m.useState(!1),[B,Y]=m.useState(!1),N=yC($u(Ld,{activationConstraint:{distance:5}}),$u(Td));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),He.success("Refreshed")},[r]),de=m.useMemo(()=>{const G=t.length,P=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="aws"}).length,k=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="gcp"}).length;return{all:G,aws:P,azure:k,gcp:ie}},[t]),L=m.useMemo(()=>{const G=t.reduce((P,k)=>P+(k.line_item_count||0),0);return{estimates:t.length,workloads:G}},[t]),we=m.useMemo(()=>{const G=new Set;return t.forEach(P=>{P.customer_name&&G.add(P.customer_name)}),Array.from(G).sort()},[t]),Le=m.useMemo(()=>{const G={all:t.length};return t.forEach(P=>{P.customer_name&&(G[P.customer_name]=(G[P.customer_name]||0)+1)}),G},[t]),w=m.useMemo(()=>{let G=[...t];if(c){const P=c.toLowerCase();G=G.filter(k=>{var ie;return k.estimate_name.toLowerCase().includes(P)||((ie=k.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(G=G.filter(P=>{var k;return((k=P.cloud)==null?void 0:k.toLowerCase())===f})),b!=="all"&&(G=G.filter(P=>P.customer_name===b)),g){case"updated":G.sort((P,k)=>new Date(k.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":G.sort((P,k)=>P.estimate_name.localeCompare(k.estimate_name));break;case"workloads":G.sort((P,k)=>(k.line_item_count||0)-(P.line_item_count||0));break;case"display_order":G.sort((P,k)=>(P.display_order??0)-(k.display_order??0));break}return G},[t,c,f,g,b]),q=m.useCallback(async G=>{const{active:P,over:k}=G;if(!k||P.id===k.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===k.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const W=ox(w,ie,M),{estimates:Se}=bs.getState(),Pe=Se.map(O=>{const F=W.findIndex(K=>K.estimate_id===O.estimate_id);return F>=0?{...O,display_order:F}:O});bs.setState({estimates:Pe});try{await YO(W.map(O=>O.estimate_id))}catch{He.error("Failed to save reorder")}},[w,g]),ce=(G,P,k)=>{G.stopPropagation(),fe({id:P,name:k}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),He.success("Estimate deleted")}catch{He.error("Failed to delete")}finally{oe(!1),re(!1),fe(null)}}},ve=async(G,P)=>{G.stopPropagation();try{const k=await i(P);He.success("Estimate duplicated"),e(`/calculator/${k.estimate_id}`)}catch{He.error("Failed to duplicate")}},at=async()=>{l(!0);try{const G=await f4();Km.saveAs(G,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),He.success("Exported successfully")}catch{He.error("Export failed")}finally{l(!1)}},Xe=()=>{S.size===w.length?A(new Set):A(new Set(w.map(G=>G.estimate_id)))},I=(G,P)=>{P.stopPropagation();const k=new Set(S);k.has(G)?k.delete(G):k.add(G),A(k)},nt=()=>{S.size!==0&&Y(!0)},gt=async()=>{z(!0);let G=0,P=0;for(const k of S)try{await s(k),G++}catch{P++}z(!1),A(new Set),Y(!1),P===0?He.success(`Deleted ${G} estimate(s)`):He.error(`Deleted ${G}, failed ${P}`)},ot=async()=>{if(S.size===0)return;H(!0);let G=0;for(const P of S)try{const k=t.find(ie=>ie.estimate_id===P);if(k){const ie=await GS(P);Km.saveAs(ie,`${k.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),G++}}catch{}H(!1),He.success(`Exported ${G} estimate(s)`)},ft=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(sy,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Pg,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Yr,{className:ue("w-5 h-5",d&&"animate-spin")})}),E?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[S.size," selected"]}),o.jsxs("button",{onClick:ot,disabled:S.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx($c,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:nt,disabled:S.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:ft,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:at,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx($c,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(wu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Du,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:de}),we.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(mD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?we.length:Le[b]||0}),o.jsx(rr,{className:ue("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(rm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs(Ut.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:we.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),we.map(G=>o.jsxs("button",{onClick:()=>{x(G),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===G?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===G?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:G,children:G}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:Le[G]||0}),b===G&&o.jsx(Gs,{className:"w-4 h-4"})]})]},G))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(pS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:G=>u(G.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(G=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},G))})}):w.length===0?o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(sy,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(wu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Du,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[E&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Xe,className:"flex items-center justify-center",children:o.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",S.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:S.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:ue(E?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(LC,{sensors:N,collisionDetection:_C,onDragEnd:q,modifiers:[VC],children:o.jsx(FC,{items:w.map(G=>G.estimate_id),strategy:MC,children:w.map((G,P)=>{const k=S.has(G.estimate_id);return o.jsx(o8,{id:G.estimate_id,children:o.jsxs(Ut.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!E&&e(`/calculator/${G.estimate_id}`),className:ue("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!E&&"cursor-pointer hover:bg-[var(--bg-hover)]",k&&"bg-blue-500/5"),children:[E&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(G.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k?"bg-blue-500 border-blue-500":"border-gray-400"),children:k&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:ue("flex items-center gap-3",E?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:G.cloud&&Tr[G.cloud.toLowerCase()]?Tr[G.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(_m,{className:"w-4 h-4",style:{color:G.cloud&&Tr[G.cloud.toLowerCase()]?Tr[G.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:G.estimate_name,children:G.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:G.customer_name||"",children:G.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:G.customer_name||"",children:G.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:G.cloud&&Tr[G.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[G.cloud.toLowerCase()].bg,color:Tr[G.cloud.toLowerCase()].text},children:Tr[G.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:G.region||G.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[G.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:G.region,children:G.region}),G.tier&&Cc[G.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Cc[G.tier.toLowerCase()].bg,color:Cc[G.tier.toLowerCase()].text},children:Cc[G.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:ue("px-2 py-0.5 rounded text-xs font-medium",G.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:G.line_item_count===0?{color:"var(--text-muted)"}:{},children:G.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(G.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!E&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,G.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ce(ie,G.estimate_id,G.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},G.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),fe(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),B&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",S.size," Estimate",S.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(G=>S.has(G.estimate_id)).map(G=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",G.estimate_name]},G.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Y(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:gt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),S.size>0&&o.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[S.size," estimate",S.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:ot,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx($c,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:nt,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function $_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,S=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach(z=>{const j=z.group||"Other";T[j]||(T[j]=[]),T[j].push(z)}),Object.keys(T).sort((z,j)=>z==="General Purpose"?-1:j==="General Purpose"?1:z.localeCompare(j)).map(z=>({name:z,options:T[z]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},E=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:ue("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:ue("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(pS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:ue("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:E,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(rr,{className:ue("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&S?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),S.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function H_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const $C=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","CLEAN_ROOM","AI_PARSE","SHUTTERSTOCK_IMAGEAI","LAKEFLOW_CONNECT"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:$C.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function q_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(dS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(rr,{className:"w-3 h-3"}):o.jsx(uS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function W_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function rf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var G;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:S,fetchLineItems:A,clearSingleWorkloadCost:E,markItemCalculating:T,fetchVMCostForInstance:D}=bs(),z=m.useRef(!0);m.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,fe=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,B={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Y=f&&f.models&&f.models.llm?f:B,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[de,L]=m.useState(!1),[we,Le]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,q]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ce={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){q({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);Le(P)}else q(ce),Le(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&q(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&q(P=>({...P,dbsql_warehouse_type:"PRO"})),$C.has(w.workload_type)&&q(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?uE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),at=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&q(k=>({...k,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Xe=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!z.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),nt=a.length===0,gt=!nt&&!I&&w.workload_type,ot=async P=>{if(P.preventDefault(),!w.workload_name.trim()){He.error("Enter a workload name");return}L(!0);try{const k={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(k.serverless_enabled=w.serverless_enabled,k.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(k.serverless_enabled=!1,k.serverless_mode=null),I!=null&&I.show_compute_config?(k.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,k.driver_node_type=w.driver_node_type||null,k.worker_node_type=w.worker_node_type||null,k.num_workers=w.num_workers,k.driver_pricing_tier=w.driver_pricing_tier||"on_demand",k.worker_pricing_tier=w.worker_pricing_tier||"spot",k.driver_payment_option=w.driver_payment_option||"NA",k.worker_payment_option=w.worker_payment_option||"NA"):(k.photon_enabled=!1,k.driver_node_type=null,k.worker_node_type=null,k.num_workers=null,k.driver_pricing_tier=null,k.worker_pricing_tier=null,k.driver_payment_option=null,k.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?k.dlt_edition=w.dlt_edition:k.dlt_edition=null,I!=null&&I.show_dbsql_config?(k.dbsql_warehouse_type=w.dbsql_warehouse_type,k.dbsql_warehouse_size=w.dbsql_warehouse_size,k.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(k.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,k.dbsql_driver_payment_option=w.dbsql_driver_payment_option,k.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,k.dbsql_worker_payment_option=w.dbsql_worker_payment_option,k.driver_pricing_tier=w.dbsql_driver_pricing_tier,k.driver_payment_option=w.dbsql_driver_payment_option,k.worker_pricing_tier=w.dbsql_worker_pricing_tier,k.worker_payment_option=w.dbsql_worker_payment_option)):(k.dbsql_warehouse_type=null,k.dbsql_warehouse_size=null,k.dbsql_num_clusters=null,k.dbsql_driver_pricing_tier=null,k.dbsql_driver_payment_option=null,k.dbsql_worker_pricing_tier=null,k.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(k.vector_search_mode=w.vector_search_mode,k.vector_capacity_millions=w.vector_capacity_millions,k.vector_search_storage_gb=w.vector_search_storage_gb||0):(k.vector_search_mode=null,k.vector_capacity_millions=null,k.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(k.model_serving_gpu_type=w.model_serving_gpu_type,k.model_serving_scale_out=w.model_serving_scale_out,k.model_serving_concurrency=w.model_serving_concurrency):(k.model_serving_gpu_type=null,k.model_serving_scale_out=null,k.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?k.databricks_apps_size=w.databricks_apps_size:k.databricks_apps_size=null,w.workload_type==="CLEAN_ROOM"?k.clean_room_collaborators=w.clean_room_collaborators:k.clean_room_collaborators=null,w.workload_type==="AI_PARSE"?(k.ai_parse_mode=w.ai_parse_mode,k.ai_parse_complexity=w.ai_parse_complexity,k.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(k.ai_parse_mode=null,k.ai_parse_complexity=null,k.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?k.shutterstock_images=w.shutterstock_images:k.shutterstock_images=null,w.workload_type==="LAKEFLOW_CONNECT"?(k.lakeflow_connect_pipeline_mode=w.lakeflow_connect_pipeline_mode,k.lakeflow_connect_gateway_enabled=w.lakeflow_connect_gateway_enabled,k.lakeflow_connect_gateway_instance=w.lakeflow_connect_gateway_instance||null):(k.lakeflow_connect_pipeline_mode=null,k.lakeflow_connect_gateway_enabled=null,k.lakeflow_connect_gateway_instance=null),I!=null&&I.show_lakebase_config?(k.lakebase_cu=w.lakebase_cu,k.lakebase_storage_gb=w.lakebase_storage_gb||0,k.lakebase_ha_nodes=w.lakebase_ha_nodes,k.lakebase_backup_retention_days=w.lakebase_backup_retention_days,k.lakebase_pitr_gb=w.lakebase_pitr_gb||0,k.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(k.lakebase_cu=null,k.lakebase_storage_gb=null,k.lakebase_ha_nodes=null,k.lakebase_backup_retention_days=null,k.lakebase_pitr_gb=null,k.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(k.fmapi_provider=w.fmapi_provider,k.fmapi_model=w.fmapi_model||null,k.fmapi_endpoint_type=w.fmapi_endpoint_type,k.fmapi_context_length=w.fmapi_context_length,k.fmapi_rate_type=w.fmapi_rate_type,k.fmapi_quantity=w.fmapi_quantity):(k.fmapi_provider=null,k.fmapi_model=null,k.fmapi_endpoint_type=null,k.fmapi_context_length=null,k.fmapi_rate_type=null,k.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?we?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,k.avg_runtime_minutes=w.avg_runtime_minutes,k.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):w.workload_type==="CLEAN_ROOM"?(k.hours_per_month=null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=w.days_per_month||30):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(k.hours_per_month=w.ai_parse_mode==="dbu"?w.hours_per_month||0:null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):w.workload_type==="LAKEFLOW_CONNECT"?we?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=w.runs_per_day,k.avg_runtime_minutes=w.avg_runtime_minutes,k.days_per_month=w.days_per_month):I!=null&&I.show_fmapi_config?(k.hours_per_month=w.hours_per_month||null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null),t)E(t.line_item_id),T(t.line_item_id),await S(t.line_item_id,k),He.success("Workload updated");else{k.estimate_id=e;const M=await _(k);M!=null&&M.line_item_id&&T(M.line_item_id),He.success("Workload added")}A(e),r==null||r(),n()}catch(k){console.error("Failed to save workload:",k),He.error("Failed to save")}finally{L(!1)}},ft=I==null?void 0:I.show_compute_config;return nt?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:ot,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>q(k=>({...k,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>q(k=>({...k,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:ue("w-full text-sm",gt&&"border-red-500",Xe&&"border-yellow-500"),children:[Xe&&(()=>{const P=a.find(k=>k.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),gt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Xe&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),at&&!Xe&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const k=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",k&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!k,onChange:()=>!k&&q(ie=>{const M=!ie.serverless_enabled,W=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:W}}),disabled:k,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(_m,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:ue("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),k&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>q(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:fe.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&q(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Au,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:ue("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),ft&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx($_,{options:l.map(P=>({value:P.id,label:W_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>q(k=>({...k,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx(q_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>q(k=>({...k,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>q(k=>({...k,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&q(k=>({...k,worker_node_type:k.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:ue("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx($_,{options:l.map(P=>({value:P.id,label:W_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>q(k=>({...k,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>q(k=>({...k,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx(q_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>q(k=>({...k,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>q(k=>({...k,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[ft&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>q(k=>({...k,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const k=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!k;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",k&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!k&&q(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:k,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(_m,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:ue("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),k&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>q(W=>({...W,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>q(k=>({...k,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>q(k=>({...k,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,k=P!=null&&P.driver_instance_type?l.find(F=>F.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(F=>F.id===P.worker_instance_type):null,M=(F,K,ae)=>{var Be,dt,rt,Ke,lt,Qe,Ot;if(!(F!=null&&F.vm_pricing))return null;const je=K.toLowerCase();if(je==="on_demand")return(Be=F.vm_pricing.on_demand)==null?void 0:Be.cost_per_hour;if(je==="spot")return(dt=F.vm_pricing.spot)==null?void 0:dt.cost_per_hour;if(je==="reserved_1y"){const U=((rt=F.vm_pricing.reserved_1y)==null?void 0:rt.find(Z=>Z.payment_option===ae))||((Ke=F.vm_pricing.reserved_1y)==null?void 0:Ke[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((lt=F.vm_pricing.reserved_3y)==null?void 0:lt.find(Z=>Z.payment_option===ae))||((Qe=F.vm_pricing.reserved_3y)==null?void 0:Qe[0]);return U==null?void 0:U.cost_per_hour}return(Ot=F.vm_pricing.on_demand)==null?void 0:Ot.cost_per_hour},W=M(k,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),k&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=k.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),W!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",W.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:F=>q(K=>({...K,dbsql_driver_pricing_tier:F.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:F=>q(K=>({...K,dbsql_driver_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>o.jsx("option",{value:F.id,children:F.name},F.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:F=>q(K=>({...K,dbsql_worker_pricing_tier:F.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:F=>q(K=>({...K,dbsql_worker_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>o.jsx("option",{value:F.id,children:F.name},F.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>q(k=>({...k,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>q(k=>({...k,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>q(k=>({...k,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>q(k=>({...k,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const k={small:4,medium:12,large:40},ie=P.target.value;q(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:k[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const k=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);q(ie=>({...ie,model_serving_concurrency:k}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>q(k=>({...k,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Y.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Y.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>q(k=>({...k,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>q(k=>({...k,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>q(k=>({...k,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const k=P.target.value,ie=H_(x,g||"aws",w.fmapi_provider,k),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";q(W=>({...W,fmapi_model:k,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(G=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:G.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>q(k=>({...k,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>q(k=>({...k,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?H_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],k={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:k[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>q(k=>({...k,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],k={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:k[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>q(k=>({...k,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>q(k=>({...k,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>q(k=>({...k,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>q(k=>({...k,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>q(k=>({...k,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>q(k=>({...k,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>q(k=>({...k,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="CLEAN_ROOM"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Collaborators"}),o.jsx("input",{type:"number",min:1,max:10,step:1,value:w.clean_room_collaborators||1,onChange:P=>q(k=>({...k,clean_room_collaborators:Math.min(10,Math.max(1,parseInt(P.target.value)||1))})),className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"1 DBU per collaborator per day (max 10)"})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Mode"}),o.jsxs("select",{value:w.ai_parse_mode||"pages",onChange:P=>q(k=>({...k,ai_parse_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"pages",children:"Pages-based"}),o.jsx("option",{value:"dbu",children:"Direct DBU"})]})]}),(w.ai_parse_mode||"pages")==="pages"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>q(k=>({...k,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>q(k=>({...k,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>q(k=>({...k,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),w.workload_type==="LAKEFLOW_CONNECT"&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"col-span-full",children:o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Pipeline uses DLT Serverless (Advanced edition). Configure usage below."})}),o.jsx("div",{children:o.jsxs("label",{className:"flex items-center gap-2 text-xs font-medium text-[var(--text-secondary)]",children:[o.jsx("input",{type:"checkbox",checked:w.lakeflow_connect_gateway_enabled||!1,onChange:P=>q(k=>({...k,lakeflow_connect_gateway_enabled:P.target.checked})),className:"rounded"}),"Enable Gateway (Database Connectors)"]})}),w.lakeflow_connect_gateway_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Gateway Instance"}),o.jsx("input",{type:"text",value:w.lakeflow_connect_gateway_instance||"",onChange:P=>q(k=>({...k,lakeflow_connect_gateway_instance:P.target.value})),className:"w-full text-sm",placeholder:"e.g., i3.xlarge (auto-selected per cloud)"})]})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>Le(!1),className:ue("px-3 py-1 text-xs rounded-l-md border transition-colors",we?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>Le(!0),className:ue("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",we?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!we&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>q(k=>({...k,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>q(k=>({...k,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>q(k=>({...k,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),we&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>q(k=>({...k,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>q(k=>({...k,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>q(k=>({...k,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:de||!w.workload_name.trim(),className:"btn btn-primary",children:de?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class G_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:a3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Lu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:aD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:wD,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:GD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:Hc,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:Hc,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:Hc,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:g3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},K_=e=>e?h8[e]||{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},ge=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),Q_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:ge(e),un=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),Y_=fn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:ue("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:ue("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[ge(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:ue("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[un(e.monthlyDBUs)," DBUs/mo"]})]})}),X_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},J_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=UC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function Z_(){const{id:e}=ww(),t=ud(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:S,getInstanceDbuRate:A,vmPricingMap:E,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:z,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:fe,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:B,isPricingBundleLoaded:Y,clearEstimateState:N,setLocalCalculatedCosts:se}=bs(),[de,L]=m.useState(!1),[we,Le]=m.useState(!1),[w,q]=m.useState(!1),[ce,_e]=m.useState(!1),[ve,at]=m.useState(!1),[Xe,I]=m.useState(null),[nt,gt]=m.useState(!1),[ot,ft]=m.useState(!1),[G,P]=m.useState(!1),[k,ie]=m.useState(!1),[M,W]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,F]=m.useState(!1),[K,ae]=m.useState({}),[je,Be]=m.useState(!1),[dt,rt]=m.useState(!1),[Ke,lt]=m.useState(!1),[Qe,Ot]=m.useState(!1),[U,Z]=m.useState([]),[Te,ze]=m.useState(!1),[Q,ct]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[et,It]=m.useState(!!e),[pt,xt]=m.useState(!1),[Et,mt]=m.useState(!1),[Ve,Oe]=m.useState("table"),[De,Re]=m.useState("order"),[Wt,Ct]=m.useState("asc"),[Ce,jt]=m.useState(new Set),[ln,qi]=m.useState(!1),Wi=m.useRef({}),Od=m.useCallback(R=>{const J=Wi.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Wi.current[R]&&(Wi.current[R].style.backgroundColor="")},1500))},[]),Ze=m.useCallback(()=>{F(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!Q.cloud||!Q.region||r.length===0||!Ke)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const $=cl(B,Q.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if($){const pe=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",$e=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${$.driver_instance_type}:${pe}:${$e}`);const Nt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",bt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${$.worker_instance_type}:${Nt}:${bt}`)}return}if(C.driver_node_type){const $=C.driver_pricing_tier||"on_demand",pe=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${$}:${pe}`)}if(C.worker_node_type){const $=C.worker_pricing_tier||"spot",pe=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${$}:${pe}`)}}});const J=Array.from(R).map(C=>{const[$,pe,$e]=C.split(":");return _(Q.cloud,Q.region,$,pe,$e)});if(J.length>0){Ot(!0);const C=new Promise($=>setTimeout($,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>Ot(!1))}},[Q.cloud,Q.region,r,Ke,_,B]),m.useEffect(()=>{if(!Q.cloud)return;const R=p(Q.cloud);if(R.length>0){const J=Y?C4(B,Q.cloud):[];if(J.length>0){const C=R.filter($=>J.includes($.region_code));Z(C)}else Z(R);ze(!1)}else u?(Z([]),ze(!1)):ze(!0)},[Q.cloud,d,u,p,B,Y]),m.useEffect(()=>{(async()=>{if(e){Be(!0),rt(!0),lt(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Be(!1),rt(!1),lt(!0)}}else N(),lt(!1)})()},[e,i,N]);const zr={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ct({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ct(zr),x("aws"),F(!1))},[n,e,x,y]),m.useEffect(()=>{Q.cloud&&Q.region&&Q.tier&&z(Q.cloud.toUpperCase(),Q.region,Q.tier.toUpperCase())},[Q.cloud,Q.region,Q.tier,z]);const Er=!!(Q.region&&Q.tier),_n=(R,J)=>{const C=J?{...R,...J}:R,$=Q.cloud||"aws",pe=Q.region,$e=Object.keys(D).length>0?D:X_[$]||X_.aws,Nt=C.num_workers||0;if(!pe)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let bt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?bt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(bt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let ke="";const Jt=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?ke="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?ke="JOBS_COMPUTE_(PHOTON)":ke="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?ke="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?ke="ALL_PURPOSE_COMPUTE_(PHOTON)":ke="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?ke="JOBS_SERVERLESS_COMPUTE":(ke=`DLT_${Jt}_COMPUTE`,C.photon_enabled&&(ke+="_(PHOTON)"));break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Ie==="SERVERLESS"?ke="SERVERLESS_SQL_COMPUTE":Ie==="PRO"?ke="SQL_PRO_COMPUTE":ke="SQL_COMPUTE";break;case"VECTOR_SEARCH":ke="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":ke="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":ke="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const vt=(C.fmapi_provider||"openai").toLowerCase();ke=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[vt]||vt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":ke="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":ke="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":ke="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":ke="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":ke="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":ke="DELTA_LIVE_TABLES_SERVERLESS";break;default:ke="JOBS_COMPUTE"}let Ln=.2;if(Y&&Q.tier){const Ie=Dg(B,$,pe,Q.tier,ke);Ie>0?Ln=Ie:Ln=$e[ke]||.2}else Ln=$e[ke]||.2;let be=0,Ue=0,Ge=0,As,Cr,ss,te=.5,me=.5;if(Y&&C.driver_node_type){const Ie=Rm(B,$,C.driver_node_type);Ie>0&&(te=Ie)}if(!te||te===.5){const Ie=j.find(vt=>vt.id===C.driver_node_type||vt.name===C.driver_node_type);Ie!=null&&Ie.dbu_rate&&(te=Ie.dbu_rate)}if(Y&&C.worker_node_type){const Ie=Rm(B,$,C.worker_node_type);Ie>0&&(me=Ie)}if(!me||me===.5){const Ie=j.find(vt=>vt.id===C.worker_node_type||vt.name===C.worker_node_type);Ie!=null&&Ie.dbu_rate&&(me=Ie.dbu_rate)}const cn=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Ie;if(C.serverless_enabled?C.workload_type==="JOBS"?Ie="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Ie="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Ie="DLT_CORE_COMPUTE":Ie=ke.replace("_(PHOTON)",""):Ie=ke.replace("_(PHOTON)",""),Y){const Zt=cE(B,$,Ie);if(Zt!==2)return Zt}const vt=H.find(Zt=>{var wn,fr;return Zt.sku_type===Ie||((wn=Zt.sku_type)==null?void 0:wn.toLowerCase())===Ie.toLowerCase()||((fr=Zt.sku_type)==null?void 0:fr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(vt==null?void 0:vt.multiplier)||2})(),fi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,jr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Nt)*cn*fi;else{be=(te+me*Nt)*cn;const Ee=C.driver_pricing_tier||"on_demand",Kt=C.driver_payment_option||"NA",mr=C.worker_pricing_tier||"spot",Ds=C.worker_payment_option||"NA",mi=S($,pe,C.driver_node_type||"",Ee,Kt),hi=S($,pe,C.worker_node_type||"",mr,Ds);Ge=(mi+hi*Nt)*bt}Ue=be*bt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Nt)*cn*jr*fi;else{be=(te+me*Nt)*cn*jr;const Ee=C.driver_pricing_tier||"on_demand",Kt=C.driver_payment_option||"NA",mr=C.worker_pricing_tier||"spot",Ds=C.worker_payment_option||"NA",mi=S($,pe,C.driver_node_type||"",Ee,Kt),hi=S($,pe,C.worker_node_type||"",mr,Ds);Ge=(mi+hi*Nt)*bt}Ue=be*bt;break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),vt=C.dbsql_warehouse_size||"Small",Zt=C.dbsql_num_clusters||1;let wn=J_[vt]||12;if(Y){const Ee=_4(B,$,Ie,vt);Ee&&Ee.dbu_per_hour>0&&(wn=Ee.dbu_per_hour)}if(!wn||wn===(J_[vt]||12)){const Ee=X.find(Kt=>Kt.id===vt||Kt.name===vt);Ee!=null&&Ee.dbu_per_hour&&(wn=Ee.dbu_per_hour)}if(be=wn*Zt,Ue=be*bt,Ie!=="SERVERLESS"){const Ee=Y?cl(B,$,Ie,vt):null;if(Ee){const Kt=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",mr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",Ds=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,pe,Ee.driver_instance_type,Kt,mr),Ja=S($,pe,Ee.worker_instance_type,Ds,mi);Ge=(Ee.driver_count*hi+Ee.worker_count*Ja)*Zt*bt}else if(C.driver_node_type){const Kt=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",mr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",Ds=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,pe,C.driver_node_type,Kt,mr),Ja=C.worker_node_type?S($,pe,C.worker_node_type,Ds,mi):0,bx=C.num_workers||0;Ge=(hi+Ja*bx)*Zt*bt}}break;case"VECTOR_SEARCH":const fr=C.vector_search_mode||"standard",zt=C.vector_capacity_millions||1;let Mn=fr==="storage_optimized"?64e6:2e6,en=fr==="storage_optimized"?18.29:4;if(Y){const Ee=b4(B,$,fr);Ee&&(Mn=Ee.input_divisor,en=Ee.dbu_rate)}else{const Ee=fe(fr);Ee&&(Mn=Ee.input_divisor,en=Ee.dbu_per_hour)}const On=zt*1e6,st=Math.ceil(On/Mn);As=st,be=st*en,Ue=be*bt;const it=C.vector_search_storage_gb||0,tn=st*20,At=Math.max(0,it-tn),Gt=.023,hn=At*Gt;it>0&&(Cr=hn,ss={totalStorageGB:it,freeStorageGB:tn,billableStorageGB:At,pricePerGB:Gt});break;case"MODEL_SERVING":const Zn=C.model_serving_gpu_type||"cpu";let In=2;if(Y){const Ee=w4(B,$,Zn);Ee&&Ee.dbu_rate>0&&(In=Ee.dbu_rate)}if(In===2){const Ee=re.find(Kt=>Kt.id===Zn||Kt.name===Zn);Ee!=null&&Ee.dbu_per_hour&&(In=Ee.dbu_per_hour)}const er=C.model_serving_scale_out||"small",Ul=er==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[er]||4;be=In*Ul,Ue=be*bt;break;case"LAKEBASE":const Vl=C.lakebase_cu||1,zl=C.lakebase_ha_nodes||1,$l={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},e2=($l[$]||$l.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;be=Vl*e2*zl,Ue=be*bt;const Hl=Math.min(C.lakebase_storage_gb||0,8192),t2=C.lakebase_pitr_gb||0,n2=C.lakebase_snapshot_gb||0,ql=.023,r2=Hl*15*ql,s2=t2*8.7*ql,i2=n2*3.91*ql,vx=r2+s2+i2;vx>0&&(Cr=vx,ss={totalStorageGB:Hl,billableStorageGB:Hl,dsuPerGB:15,totalDSU:Hl*15,pricePerDSU:ql});break;case"FMAPI_DATABRICKS":const a2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",yx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ls=null;if(Y&&C.fmapi_model){const Ee=k4(B,$,C.fmapi_model,Xa);Ee&&(Ls=Ee.dbu_rate)}if(Ls===null&&C.fmapi_model){const Ee=xe(C.fmapi_model,Xa);Ee&&(yx?Ls=Ee.dbu_per_hour||null:Ls=Ee.dbu_per_1M_tokens||null)}Ls===null&&(yx?Ls=Xa==="provisioned_scaling"?200:50:Ls=Xa==="output_token"?3:1),Ue=a2*Ls;break;case"FMAPI_PROPRIETARY":const o2=C.fmapi_quantity||0,Wl=C.fmapi_rate_type||"input_token",_x=Wl==="provisioned_scaling";let Nr=null;if(Y&&C.fmapi_provider&&C.fmapi_model){const Ee=C.fmapi_endpoint_type||"global",Kt=C.fmapi_context_length||"long",mr=S4(B,$,C.fmapi_provider,C.fmapi_model,Ee,Kt,Wl);mr&&(Nr=mr.dbu_rate)}if(Nr===null&&C.fmapi_provider&&C.fmapi_model){const Ee=oe(C.fmapi_provider,C.fmapi_model,Wl);Ee&&(_x?Nr=Ee.dbu_per_hour||null:Nr=Ee.dbu_per_1M_tokens||null)}if(Nr===null)if(_x)Nr=150;else switch(Wl){case"output_token":Nr=6;break;case"cache_read":Nr=.5;break;case"cache_write":Nr=1;break;default:Nr=2}Ue=o2*Nr;break;case"DATABRICKS_APPS":{const Ee=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ee]||.5,Ue=be*bt;break}case"CLEAN_ROOM":{const Ee=C.clean_room_collaborators||1,Kt=C.days_per_month||30;Ue=Ee*Kt*1;break}case"AI_PARSE":{if((C.ai_parse_mode||"pages").toLowerCase()==="dbu")Ue=C.hours_per_month||0;else{const Kt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},mr=(C.ai_parse_complexity||"medium").toLowerCase();Ue=(C.ai_parse_pages_thousands||0)*(Kt[mr]||62.5)}break}case"SHUTTERSTOCK_IMAGEAI":{Ue=(C.shutterstock_images||0)*.857;break}case"LAKEFLOW_CONNECT":{be=.5,Ue=be*bt;break}default:Ue=0}const pr=isNaN(Ln)||Ln===void 0?0:Ln,Ts=isNaN(Ue)||Ue===void 0?0:Ue,Dn=isNaN(Ge)||Ge===void 0?0:Ge,bn=Cr!==void 0&&!isNaN(Cr)?Cr:0,$r=Ts*pr,as=$r+Dn+bn;return{monthlyDBUs:Ts,dbuCost:isNaN($r)?0:$r,vmCost:Dn,totalCost:isNaN(as)?0:as,unitsUsed:As,dbuPerHour:be,dbuPrice:pr,storageCost:bn>0?bn:void 0,storageDetails:ss}},Rt=m.useMemo(()=>{let R=0,J=0,C=0,$=0;return r.forEach(pe=>{const $e=_n(pe);R+=isNaN($e.monthlyDBUs)?0:$e.monthlyDBUs,J+=isNaN($e.dbuCost)?0:$e.dbuCost,C+=isNaN($e.vmCost)?0:$e.vmCost,$+=isNaN($e.totalCost)?0:$e.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:$}},[r,Q.cloud,Q.region,Q.tier,s,S,E,A,T,j,H,D,X,re,le,fe,xe,oe,B,Y]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=_n(J,K[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,K,Q.cloud,Q.region,Q.tier,se,S,E,A,T,j,H,D,X,re,le,fe,xe,oe,B,Y]);const Tn=m.useMemo(()=>{const R=[...r];return De==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):De==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):De==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):De==="cost"&&R.sort((J,C)=>{const $=_n(J).totalCost,pe=_n(C).totalCost;return $-pe}),Wt==="desc"&&R.reverse(),R},[r,De,Wt,_n]),rs=R=>{De===R?Ct(J=>J==="asc"?"desc":"asc"):(Re(R),Ct(R==="cost"?"desc":"asc"))},Il=yC($u(Ld,{activationConstraint:{distance:5}}),$u(Td)),lx=De==="order",HC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const $=Tn.findIndex(Jt=>Jt.line_item_id===J.id),pe=Tn.findIndex(Jt=>Jt.line_item_id===C.id);if($===-1||pe===-1)return;const $e=[...Tn],[Nt]=$e.splice($,1);$e.splice(pe,0,Nt);const{lineItems:bt}=bs.getState(),ke=bt.map(Jt=>{const Ln=$e.findIndex(be=>be.line_item_id===Jt.line_item_id);return Ln>=0?{...Jt,display_order:Ln}:Jt});bs.setState({lineItems:ke});try{await QO(e,$e.map(Jt=>Jt.line_item_id))}catch{He.error("Failed to save reorder")}},[Tn,e]),cx=async()=>{if(!Q.estimate_name.trim()){He.error("Enter an estimate name");return}if(!Q.region){He.error("Select a region");return}if(!Q.tier){He.error("Select a Databricks tier");return}L(!0);try{const R={...Q,cloud:Q.cloud.toUpperCase(),tier:Q.tier.toUpperCase()};if(e&&n)await h(e,R),F(!1),He.success("All changes saved");else{const J=await f(R);F(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),He.success("Estimate created")}}catch{He.error("Failed to save")}finally{L(!1)}},qC=async()=>{if(e){Le(!0);try{const R=await GS(e),J=`${Q.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Km.saveAs(R,J),He.success("Exported to Excel")}catch{He.error("Export failed")}finally{Le(!1)}}},WC=async()=>{if(e){q(!0),_e(!1);try{await g(e),He.success("Estimate deleted"),t("/",{replace:!0})}catch{He.error("Failed to delete estimate"),q(!1)}}},GC=async()=>{l(),He.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),He.success("Pricing data refreshed",{id:"refresh-data"})}catch{He.error("Failed to refresh data",{id:"refresh-data"})}},ux=R=>{I(R),at(!0)},KC=async()=>{if(Xe){ft(!0);try{await v(Xe.line_item_id),He.success("Workload removed")}catch{He.error("Failed to delete")}finally{ft(!1),at(!1),I(null)}}},dx=()=>{Ce.size!==0&>(!0)},QC=async()=>{ft(!0);try{let R=0;for(const J of Ce)await v(J),R++;He.success(`${R} workload(s) deleted`),jt(new Set)}catch{He.error("Failed to delete some workloads")}finally{ft(!1),gt(!1)}},YC=R=>{jt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},XC=()=>{Ce.size===r.length?jt(new Set):jt(new Set(r.map(R=>R.line_item_id)))},px=()=>{qi(!1),jt(new Set)},fx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&He.success(`Workload "${J.workload_name}" cloned`)}catch{He.error("Failed to clone workload")}},JC=()=>{O?P(!0):t("/")},ZC=()=>{P(!1),t("/")},mx=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),W(J)},Fl=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const $=new Set(M);$.add(R),W($)}Pe(C)},hx=R=>R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null,gx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"CLEAN_ROOM":R.clean_room_collaborators&&J.push({label:"Collaborators",value:`${R.clean_room_collaborators}`});break;case"AI_PARSE":R.ai_parse_mode==="dbu"?J.push({label:"Mode",value:"Direct DBU"}):(J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K`}));break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break;case"LAKEFLOW_CONNECT":J.push({label:"Pipeline",value:"DLT Serverless"}),R.lakeflow_connect_gateway_enabled&&J.push({label:"Gateway",value:"Enabled"});break}return J},Bl=Q.estimate_name.trim()&&Q.region&&Q.tier,xx=()=>{const R=[];return Q.estimate_name.trim()||R.push("Estimate Name"),Q.region||R.push("Region"),Q.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ny,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:JC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ny,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:Q.estimate_name,onChange:R=>{ct(J=>({...J,estimate_name:R.target.value})),Ze()},placeholder:"Untitled Estimate",title:Q.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:GC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Yr,{className:ue("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:qC,disabled:we||!e,className:"btn btn-secondary",children:[o.jsx($c,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:ue("grid grid-cols-1 gap-6",pt?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:ue("space-y-6",pt?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>It(!et),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Lu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${Q.cloud.toUpperCase()} • ${Q.region||"No region"} • ${Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier"}${Q.customer_name?` • ${Q.customer_name}`:""}`,children:[Q.cloud.toUpperCase()," • ",Q.region||"No region"," • ",Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier",Q.customer_name&&` • ${Q.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:et?o.jsx(rr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(ps,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!et&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&Q.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ct($=>({...$,cloud:R.id,region:"",tier:R.id==="azure"&&$.tier==="enterprise"?"":$.tier})),x(R.id),Ze())},className:ue("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",Q.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":Q.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:ue("text-sm font-semibold",Q.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),Q.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:Q.region,onChange:R=>{ct(J=>({...J,region:R.target.value})),y(R.target.value),Ze()},className:ue("w-full text-sm",!Q.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:Q.tier,onChange:R=>{ct(J=>({...J,tier:R.target.value})),Ze()},className:ue("w-full text-sm",!Q.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),Q.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:cx,disabled:de||!Bl,title:Bl?void 0:`Missing: ${xx().join(", ")}`,className:ue("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),de?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(m3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:ln?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ce.size," selected"]}),o.jsxs("button",{onClick:dx,disabled:Ce.size===0,className:ue("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ce.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:px,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>qi(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Oe("table"),className:ue("p-1.5 rounded-md transition-colors",Ve==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(k3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Oe("cards"),className:ue("p-1.5 rounded-md transition-colors",Ve==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Pg,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Oe("expanded"),className:ue("p-1.5 rounded-md transition-colors",Ve==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(iy,{className:"w-4 h-4"})})]}),Er&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Du,{className:"w-4 h-4"}),"Add"]})]})]}),e?dt&&!Ke?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[Ve==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[ln&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ce.size===r.length&&r.length>0,onChange:XC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>rs("name"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",ln?"col-span-3":"col-span-4"),children:["Workload",De==="name"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>rs("type"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",De==="type"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>rs("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",De==="cost"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]})]}),o.jsx(LC,{sensors:Il,collisionDetection:_C,onDragEnd:HC,modifiers:[VC],children:o.jsx(FC,{items:Tn.map(R=>R.line_item_id),strategy:MC,children:Tn.map(R=>{var As,Cr,ss;const J=K[R.line_item_id],C=J?{...R,...J}:R,$=_n(R,J),pe=K_(C.workload_type),$e=pe.icon,Nt=M.has(R.line_item_id),bt=Ce.has(R.line_item_id),ke=C.workload_type||"",Jt=C.serverless_enabled||ke==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Ln=((As=s.find(te=>te.workload_type===ke))==null?void 0:As.display_name)||ke,be=hx(C),Ge=(()=>{const te={badges:[],details:[]};if(Jt&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(ke))Jt||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),ke==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(ke==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(ke==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(ke==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(ke==="FMAPI_DATABRICKS"||ke==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&ke==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else ke==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!lx,children:o.jsxs("div",{ref:te=>{Wi.current[R.line_item_id]=te},children:[o.jsxs("div",{className:ue("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",bt&&ln&&"bg-lava-600/5",Nt&&"bg-[var(--bg-tertiary)]"),onClick:()=>mx(R.line_item_id),children:[ln&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:bt,onChange:()=>YC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:ue("flex items-center gap-3",ln?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:ue("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",pe.bgColor),children:o.jsx($e,{className:ue("w-4 h-4",pe.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:Ln,children:Ln})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Ge.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Ge.badges.map((te,me)=>o.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Ge.driver||Ge.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Ge.driver||"N/A"}, Workers: ${((Cr=Ge.workers)==null?void 0:Cr.count)||0}× ${((ss=Ge.workers)==null?void 0:ss.type)||"N/A"}`,children:(()=>{const te=Ge.driver,me=Ge.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Ge.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Ge.details.join(" · "),children:Ge.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(Y_,{costs:$,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(ke)||ke==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Qe&&te&&$.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Fl(R.line_item_id,!0)},className:ue("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(hc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>fx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),ux(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:ue("p-1 rounded transition-colors",Nt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Nt?o.jsx(ps,{className:"w-5 h-5 text-lava-600"}):o.jsx(rr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Nt&&(Ge.badges.length>0||Ge.driver||Ge.workers||Ge.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Ge.badges.map((te,me)=>o.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Ge.driver||Ge.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Ge.driver,me=Ge.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Ge.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Ge.details.join(" · ")})]}),Nt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge($.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(ke)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge($.vmCost)})]}),ke==="LAKEBASE"&&$.storageCost!==void 0&&$.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:ge($.storageCost)})]}),ke==="VECTOR_SEARCH"&&$.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[$.unitsUsed," unit",$.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(ke)&&!Jt&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),gx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Fl(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(hc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(ps,{className:"w-3 h-3"}):o.jsx(rr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,is=C.avg_runtime_minutes||30,cn=C.days_per_month||30,fi=C.hours_per_month||730,Vt=te?me*(is/60)*cn:fi,pr=($.dbuPrice||0).toFixed(2);if(ke==="VECTOR_SEARCH"){const st=C.vector_capacity_millions||1,it=C.vector_search_mode||"standard",tn=it==="storage_optimized"?64:2,At=Math.ceil(st/tn),Gt=it==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,Zn=At*20,In=Math.max(0,hn-Zn),er=In*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[cn," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M"]})," vectors ÷ ",tn,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At," unit",At!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Gt.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge($.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Zn," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",At," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[In," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(er)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(er)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})}if(ke==="FMAPI_DATABRICKS"||ke==="FMAPI_PROPRIETARY"){const st=C.fmapi_quantity||1,it=C.fmapi_rate_type||"input_token",tn=["provisioned_scaling","provisioned_entry"].includes(it),At=st>0?$.monthlyDBUs/st:0,Gt=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),tn?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[At.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Gt,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[At.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Gt,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})})}if(ke==="LAKEBASE"){const st=C.lakebase_cu||1,it=C.lakebase_ha_nodes||1,tn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Gt=(tn[Q.cloud||"aws"]||tn.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,Zn=C.lakebase_pitr_gb||0,In=C.lakebase_snapshot_gb||0,er=.023,Ya=hn*15*er,Ul=Zn*8.7*er,Vl=In*3.91*er,zl=Ya+Ul+Vl,$l=zl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[cn," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Gt," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge($.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[un(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Ya)})]}),Zn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[un(Zn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Ul)})]}),In>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[In," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[un(In*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Vl)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),$l&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(zl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})}if(ke==="MODEL_SERVING"){const st=C.model_serving_gpu_type||"cpu",it=C.model_serving_scale_out||"small",At=it==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[it]||4,Gt=At>0&&$.dbuPerHour?$.dbuPerHour/At:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[cn," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Gt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",st,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[At," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",it,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})]})}if(ke==="DBSQL"){const st=C.dbsql_warehouse_size||"Small",it=C.dbsql_num_clusters||1,tn=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),At=$.dbuPerHour?$.dbuPerHour/it:12,Gt=$.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[cn," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:st}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",At.toFixed(1)," DBU/hr)"]}),it>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${is}min ÷ 60 × ${cn} days`:void 0,children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge($.dbuCost)})]}),Gt&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[tn," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge($.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:ge($.dbuCost)}),Gt&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:ge($.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})]})}const Ts=C.num_workers||0,Dn=C.driver_node_type||"",bn=C.worker_node_type||"",$r=C.photon_enabled,as=$.vmCost>0&&!Jt,Ie=Q.cloud||"aws",vt=Q.region||"",Zt=j.find(st=>st.id===Dn||st.name===Dn),wn=j.find(st=>st.id===bn||st.name===bn),fr=A(Ie,Dn)||(Zt==null?void 0:Zt.dbu_rate)||0,zt=A(Ie,bn)||(wn==null?void 0:wn.dbu_rate)||0,Mn=vt&&Dn?S(Ie,vt,Dn,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,en=vt&&bn?S(Ie,vt,bn,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,On=$.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[cn," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Jt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[On.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",$r?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Dn,children:fr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:bn,children:zt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),o.jsx("span",{children:")"}),$r&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[On.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge($.dbuCost)})]}),as&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Dn,children:["$",(Mn==null?void 0:Mn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:bn,children:["$",(en==null?void 0:en.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge($.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),as&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:ge($.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})})()})]})]}),Nt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(G_,{onReset:()=>{W(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(rf,{estimateId:e,lineItem:R,onClose:()=>{W(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),Ve!=="table"&&Tn.map((R,J)=>{var Ln;const C=K[R.line_item_id],$=C?{...R,...C}:R,pe=_n(R,C),$e=M.has(R.line_item_id),Nt=hx($),bt=K_($.workload_type),ke=bt.icon,Jt=Ve==="expanded"||$e;return o.jsx("div",{ref:be=>{Wi.current[R.line_item_id]=be},children:o.jsxs(Ut.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:ue("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",Ve==="cards"&&!$e&&"py-3"),onClick:()=>mx(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:ue("rounded-lg flex items-center justify-center flex-shrink-0",Ve==="cards"&&!$e?"w-8 h-8":"w-10 h-10",bt.bgColor),children:o.jsx(ke,{className:ue(bt.color,Ve==="cards"&&!$e?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:ue("font-semibold truncate text-[var(--text-primary)]",Ve==="cards"&&!$e&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Au,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((Ln=s.find(be=>be.workload_type===R.workload_type))==null?void 0:Ln.display_name)||R.workload_type})})]}),o.jsx(Y_,{costs:pe,size:Ve==="cards"&&!$e?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",Ue=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Qe&&Ue&&pe.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Fl(R.line_item_id,!0)},className:ue("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(hc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>fx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),ux(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),$e?o.jsx(ps,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(rr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),Jt&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge(pe.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge(pe.vmCost)})]}),R.workload_type==="LAKEBASE"&&pe.storageCost!==void 0&&pe.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:ge(pe.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&pe.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[pe.unitsUsed," unit",pe.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),gx(R).map((be,Ue)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},Ue)),Nt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Nt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Fl(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(hc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(ps,{className:"w-3 h-3"}):o.jsx(rr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=$.workload_type||"",Ue=$.serverless_enabled||be==="DBSQL"&&($.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Ge=$.runs_per_day&&$.avg_runtime_minutes&&!$.hours_per_month,As=$.runs_per_day||0,Cr=$.avg_runtime_minutes||30,ss=$.days_per_month||30,te=$.hours_per_month||730,me=Ge?As*(Cr/60)*ss:te,cn=(pe.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const zt=$.vector_capacity_millions||1,Mn=$.vector_search_mode||"standard",en=Mn==="storage_optimized"?64:2,On=Math.ceil(zt/en),st=Mn==="storage_optimized"?18.29:4,it=$.vector_search_storage_gb||0,tn=On*20,At=Math.max(0,it-tn),Gt=At*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M vectors"]})," ÷ ",en,"⌉"]}),o.jsxs("span",{children:["= ",On," units ×"]}),o.jsxs("span",{children:[st," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un(pe.monthlyDBUs)," DBUs × $",cn]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge(pe.dbuCost)})]}),it>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[tn," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",On," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Gt)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),it>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(Gt)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const zt=$.fmapi_quantity||0,Mn=pe.monthlyDBUs/(zt||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Mn.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",cn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(be==="LAKEBASE"){const zt=$.lakebase_cu||1,Mn=$.lakebase_ha_nodes||1,en=$.lakebase_storage_gb||0,On=$.lakebase_pitr_gb||0,st=$.lakebase_snapshot_gb||0,it=.023,tn=en*15*it,At=On*8.7*it,Gt=st*3.91*it,hn=tn+At+Gt,Zn=hn>0,In={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(In[Q.cloud||"aws"]||In.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Mn," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",cn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge(pe.dbuCost)})]}),en>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[en," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[un(en*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(tn)})]}),On>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[On," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[un(On*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(At)})]}),st>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[un(st*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Gt)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),Zn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(be==="MODEL_SERVING"){const zt=$.model_serving_scale_out||"small",en=zt==="custom"?$.model_serving_concurrency||4:{small:4,medium:12,large:40}[zt]||4,On=en>0&&pe.dbuPerHour?pe.dbuPerHour/en:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[On.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[en," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",zt,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",cn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}const fi=$.num_workers||0,Vt=$.driver_node_type||"",jr=$.worker_node_type||"",pr=$.photon_enabled,Ts=pe.vmCost>0&&!Ue,Dn=Q.cloud||"aws",bn=Q.region||"",$r=j.find(zt=>zt.id===Vt||zt.name===Vt),as=j.find(zt=>zt.id===jr||zt.name===jr),Ie=A(Dn,Vt)||($r==null?void 0:$r.dbu_rate)||0,vt=A(Dn,jr)||(as==null?void 0:as.dbu_rate)||0,Zt=bn&&Vt?S(Dn,bn,Vt,$.driver_pricing_tier||"on_demand",$.driver_payment_option||"no_upfront"):null,wn=bn&&jr?S(Dn,bn,jr,$.worker_pricing_tier||"spot",$.worker_payment_option||"NA"):null,fr=pe.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Ge&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[As," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Cr,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Ue?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[fr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",pr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Vt,children:Ie.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:jr,children:vt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:fi}),o.jsx("span",{children:")"}),pr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[fr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Ge?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[un(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",cn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),Ts&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Vt,children:["$",(Zt==null?void 0:Zt.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:jr,children:["$",(wn==null?void 0:wn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:fi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Ge?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge(pe.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),Ts&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:ge(pe.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})})()})]})]})]}),$e&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(G_,{onReset:()=>{W(be=>{const Ue=new Set(be);return Ue.delete(R.line_item_id),Ue})},children:o.jsx(rf,{estimateId:e,lineItem:R,onClose:()=>{W(be=>{const Ue=new Set(be);return Ue.delete(R.line_item_id),Ue}),ae(be=>{const Ue={...be};return delete Ue[R.line_item_id],Ue})},onSave:()=>{ae(be=>{const Ue={...be};return delete Ue[R.line_item_id],Ue})},onFormChange:be=>{ae(Ue=>({...Ue,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),Er?k?o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(rf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Du,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(fs,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",xx().join(", ")]})]}),o.jsxs("button",{onClick:cx,disabled:de||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!pt&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(bm,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),dt&&!Ke&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>xt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(rr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),Er?dt&&!Ke?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:ue("text-3xl font-bold text-lava-600",Qe&&"opacity-60"),children:ge(Rt.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[ge(Rt.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:ge(Rt.totalDBUCost),children:Q_(Rt.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Qe?"Loading...":ge(Rt.totalVMCost),children:Qe?"...":Q_(Rt.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:_n(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:$},pe)=>{const $e=Rt.totalCost>0?$.totalCost/Rt.totalCost*100:0,Nt=J[pe%J.length];return o.jsxs("button",{onClick:()=>Od(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[$e.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:ge($.totalCost),children:ge($.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:ue("h-full rounded-full transition-all",Nt,"group-hover:brightness-110"),style:{width:`${Math.max($e,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(bm,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(fs,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),pt&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Et&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>mt(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>mt(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:_n(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:$},pe)=>{const $e=Rt.totalCost>0?$.totalCost/Rt.totalCost*100:0,Nt=J[pe%J.length];return o.jsxs("button",{onClick:()=>{mt(!1),Od(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[$e.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:ge($.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:ue("h-full rounded-full",Nt),style:{width:`${Math.max($e,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>xt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>mt(!Et),className:ue("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Et?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(iy,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(ps,{className:ue("w-3 h-3 transition-transform",Et?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:ge(Rt.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:ge(Rt.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[ge(Rt.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ce.size>0&&o.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ce.size," workload",Ce.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:dx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:px,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ce&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Q.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Xe&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Xe.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{at(!1),I(null)},disabled:ot,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:KC,disabled:ot,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ot?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),nt&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ce.size," Workload",Ce.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ce.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>gt(!1),disabled:ot,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:QC,disabled:ot,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ot?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),G&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(fs,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:ZC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=ww(),t=ud();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const eb={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var q;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:eb[n]||eb.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let S="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?S="JOBS_COMPUTE_(PHOTON)":S="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?S="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?S="ALL_PURPOSE_COMPUTE_(PHOTON)":S="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":(S=`DLT_${A}_COMPUTE`,e.photon_enabled&&(S+="_(PHOTON)"));break;case"DBSQL":const ce=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ce==="SERVERLESS"?S="SERVERLESS_SQL_COMPUTE":ce==="PRO"?S="SQL_PRO_COMPUTE":S="SQL_COMPUTE";break;case"VECTOR_SEARCH":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();S=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":S="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":S="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":S="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":S="DELTA_LIVE_TABLES_SERVERLESS";break;default:S="JOBS_COMPUTE"}let E=null;if(b){const ce=b(S);ce!==null&&ce>0&&(E=ce)}E===null&&(E=x[S]||.2),console.log(`[LiveEstimate] productType=${S}, dbuPrice=${E}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,z=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ce=g(e.driver_node_type);ce!==null&&ce>0&&(re=ce)}if(re===.5){const ce=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ce!=null&&ce.dbu_rate&&(re=ce.dbu_rate)}if(g&&e.worker_node_type){const ce=g(e.worker_node_type);ce!==null&&ce>0&&(le=ce)}if(le===.5){const ce=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ce!=null&&ce.dbu_rate&&(le=ce.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ce=S.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ce="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ce="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ce=`DLT_${A}_COMPUTE`)),v){const ve=v(ce);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var at;return ve.sku_type===ce||ve.sku_type===S||((at=ve.sku_type)==null?void 0:at.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Ze=e.driver_pricing_tier||"on_demand",zr=e.driver_payment_option||"NA",Er=e.worker_pricing_tier||"spot",_n=e.worker_payment_option||"NA",Rt=d(n,r,e.driver_node_type||"",Ze,zr),Tn=d(n,r,e.worker_node_type||"",Er,_n);z=(Rt+Tn*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Ze=e.driver_pricing_tier||"on_demand",zr=e.driver_payment_option||"NA",Er=e.worker_pricing_tier||"spot",_n=e.worker_payment_option||"NA",Rt=d(n,r,e.driver_node_type||"",Ze,zr),Tn=d(n,r,e.worker_node_type||"",Er,_n);z=(Rt+Tn*y)*_}D=T*_;break;case"DBSQL":const ce=l.find(Ze=>Ze.id===e.dbsql_warehouse_size||Ze.name===e.dbsql_warehouse_size),_e=(ce==null?void 0:ce.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const at=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(at!=="SERVERLESS"){const Ze=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",zr=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Er=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",_n=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Rt=(q=t.getDBSQLWarehouseConfig)==null?void 0:q.call(t,at,e.dbsql_warehouse_size||"Small");if(Rt){const Tn=d(n,r,Rt.driver_instance_type,Ze,zr),rs=d(n,r,Rt.worker_instance_type,Er,_n);z=(Rt.driver_count*Tn+Rt.worker_count*rs)*ve*_}else if(e.driver_node_type){const Tn=d(n,r,e.driver_node_type,Ze,zr),rs=e.worker_node_type?d(n,r,e.worker_node_type,Er,_n):0,Il=e.num_workers||0;z=(Tn+rs*Il)*ve*_}}break;case"VECTOR_SEARCH":const Xe=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,nt=h(Xe),gt=(nt==null?void 0:nt.input_divisor)||(Xe==="storage_optimized"?64e6:2e6),ot=(nt==null?void 0:nt.dbu_per_hour)||(Xe==="storage_optimized"?18.29:4),ft=I*1e6,G=Math.ceil(ft/gt);j=G,T=G*ot,D=T*_;const P=e.vector_search_storage_gb||0,k=G*20,ie=Math.max(0,P-k),M=.023,W=ie*M;P>0&&(H=W,X={totalStorageGB:P,freeStorageGB:k,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Ze=>Ze.id===Se||Ze.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,F=e.model_serving_scale_out||"small",ae=F==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[F]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Be=e.lakebase_ha_nodes||1,dt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ke=(dt[n]||dt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ke*Be,D=T*_;const lt=Math.min(e.lakebase_storage_gb||0,8192),Qe=15,Ot=lt*Qe,U=.023,Z=Ot*U,Te=e.lakebase_pitr_gb||0,Q=Te*8.7*U,ct=e.lakebase_snapshot_gb||0,It=ct*3.91*U;(lt>0||Te>0||ct>0)&&(H=Z+Q+It,X={totalStorageGB:lt,billableStorageGB:lt,dsuPerGB:Qe,totalDSU:Ot,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const pt=e.fmapi_quantity||0,xt=e.fmapi_rate_type||"input_token",Et=["provisioned_scaling","provisioned_entry"].includes(xt),mt=e.fmapi_model?p(e.fmapi_model,xt):null;if(Et){const Ze=(mt==null?void 0:mt.dbu_per_hour)||(xt==="provisioned_scaling"?200:50);D=pt*Ze}else{const Ze=(mt==null?void 0:mt.dbu_per_1M_tokens)||(xt==="output_token"?3:1);D=pt*Ze}break;case"FMAPI_PROPRIETARY":const Ve=e.fmapi_quantity||0,Oe=e.fmapi_rate_type||"input_token",De=Oe==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Wt=e.fmapi_context_length||"long",Ct=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Oe,Re,Wt):null;if(De){const Ze=(Ct==null?void 0:Ct.dbu_per_hour)||150;D=Ve*Ze}else{let Ze=Ct==null?void 0:Ct.dbu_per_1M_tokens;if(!Ze)switch(Oe){case"output_token":Ze=321.43;break;case"cache_read":Ze=8.57;break;case"cache_write":Ze=85.71;break;default:Ze=21.43}D=Ve*Ze}break;case"DATABRICKS_APPS":const Ce=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ce]||.5,D=T*_;break;case"CLEAN_ROOM":const ln=e.clean_room_collaborators||1,qi=e.days_per_month||30;D=ln*qi;break;case"AI_PARSE":if((e.ai_parse_mode||"pages").toLowerCase()==="dbu")D=e.hours_per_month||0;else{const Ze={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},zr=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Ze[zr]||62.5)}break;case"SHUTTERSTOCK_IMAGEAI":D=(e.shutterstock_images||0)*.857;break;case"LAKEFLOW_CONNECT":D=0;break;default:D=0}const B=D*E,Y=H!==void 0&&!isNaN(H)?H:0,N=B+z+Y,se=isNaN(B)?0:B,de=isNaN(z)?0:z,L=isNaN(N)?se:N,we=isNaN(D)?0:D,Le=isNaN(T)?0:T,w=isNaN(E)?.15:E;return{monthlyDBUs:we,dbuCost:se,vmCost:de,totalCost:L,unitsUsed:j,dbuPerHour:Le,dbuPrice:w,storageCost:Y>0?Y:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function qu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Qm(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Ym(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],tb=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function hs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function nb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?uE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of hs(tb,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of hs(tb,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of hs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of hs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of hs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=qu(t,l),p=d.length>0?hs(d,e.vmSamplesPerCloud):["c5.xlarge"];return nb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Qm(t,l),u=hs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=hs(Ym(l),e.tiersPerCloud);for(const p of u){const f=qu(t,l),h=f.length>0?hs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=nb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[S,A]=m.useState({current:0,total:0}),[E,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),z=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:fe,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:B,isPricingBundleLoaded:Y,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:de,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:we,getVectorSearchRate:Le}=bs();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,B),[j,B]),q=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ce=m.useMemo(()=>{const M=new Set(w.map(W=>W.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,W,Se)=>{const Pe=Y&&B.modelServingRates?Object.entries(B.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,F])=>{const K=O.split(":")[1];return{id:K,name:K,dbu_per_hour:F.dbu_rate}}):xe;return{cloud:M,region:W,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:fe,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,F)=>{if(Y&&B.fmapiDatabricksRates){const K=`${M.toLowerCase()}:${O}:${F}`,ae=B.fmapiDatabricksRates[K];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,F)},getFMAPIProprietaryRate:(O,F,K,ae,je)=>{if(Y&&B.fmapiProprietaryRates){const Be=ae||"global",dt=je||"all",rt=`${M.toLowerCase()}:${O.toLowerCase()}:${F.toLowerCase()}:${Be}:${dt}:${K}`,Ke=B.fmapiProprietaryRates[rt];if(Ke)return{dbu_per_1M_tokens:Ke.is_hourly?void 0:Ke.dbu_rate,dbu_per_hour:Ke.is_hourly?Ke.dbu_rate:void 0}}return we(O,F,K)},getVectorSearchRate:O=>{if(Y&&B.vectorSearchRates){const F=`${M.toLowerCase()}:${O}`,K=B.vectorSearchRates[F];if(K)return{dbu_per_hour:K.dbu_rate,input_divisor:K.input_divisor}}return Le(O)},getInstanceDBURate:O=>Y?Rm(B,M,O):null,getPhotonMultiplier:O=>Y?cE(B,M,O):null,getDBUPrice:O=>Y?Dg(B,M,W,Se,O):null,getDBSQLWarehouseConfig:(O,F)=>Y?cl(B,M,O,F):null}},[X,re,le,fe,xe,oe,Y,B,se,L,we,Le]),ve=async M=>{var Q,ct,et,It,pt,xt,Et,mt,Ve;const{environment:W,workloadType:Se,config:Pe}=M,O=_e(W.cloud,W.region,W.tier),F={...Pe,workload_type:Se},K=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Oe=cl(B,W.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Oe){const De=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";K.push(de(W.cloud,W.region,Oe.driver_instance_type,De,Re));const Wt=Pe.dbsql_worker_pricing_tier||"on_demand",Ct=Pe.dbsql_worker_payment_option||"NA";K.push(de(W.cloud,W.region,Oe.worker_instance_type,Wt,Ct))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(K.push(de(W.cloud,W.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&K.push(de(W.cloud,W.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));K.length>0&&await Promise.all(K);const ae=performance.now(),je=y8(F,O),Be=performance.now()-ae,dt=performance.now();let rt=null,Ke,lt;const Qe=j8(Se,Pe),Ot=N8(M);try{const Oe=await fetch(Qe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ot)});if(Oe.ok){const De=await Oe.json();lt=De;const Re=De.data||De,Wt=((Q=Re.dbu_calculation)==null?void 0:Q.dbu_per_month)??Re.dbu_per_month??(((ct=Re.dbu_calculation)==null?void 0:ct.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),Ct=((et=Re.dbu_calculation)==null?void 0:et.dbu_cost_per_month)??((pt=(It=Re.total_cost)==null?void 0:It.breakdown)==null?void 0:pt.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ce=((xt=Re.vm_costs)==null?void 0:xt.vm_cost_per_month)??((mt=(Et=Re.total_cost)==null?void 0:Et.breakdown)==null?void 0:mt.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let jt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?jt=Re.total_cost.cost_per_month??Ct+Ce:typeof Re.total_cost=="number"?jt=Re.total_cost:jt=Re.total_cost_per_month??Ct+Ce,rt={monthlyDBUs:Wt,dbuCost:Ct,vmCost:Ce,totalCost:jt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:De,parsed:rt})}else{const De=await Oe.text();try{const Re=JSON.parse(De);Ke=`HTTP ${Oe.status}: ${((Ve=Re.detail)==null?void 0:Ve.message)||Re.detail||Re.message||De}`}catch{Ke=`HTTP ${Oe.status}: ${De}`}}}catch(Oe){Ke=Oe instanceof Error?Oe.message:"Unknown error"}const U=performance.now()-dt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,rt,g),ze=Te<=g&&!Ke;return{testCase:M,localResult:je,apiResult:rt,apiError:Ke,apiRequestBody:Ot,apiRawResponse:lt,localTimeMs:Be,apiTimeMs:U,matches:ze,totalCostDiffPercent:Te,discrepancies:Z}},at=()=>{D.current=!0,i(!0)},Xe=()=>{D.current=!1,i(!1)},I=()=>{z.current=!0,l(!0),D.current=!1,i(!1)},nt=async()=>{for(;D.current&&!z.current;)await new Promise(M=>setTimeout(M,100))},gt=async()=>{r(!0),i(!1),l(!1),D.current=!1,z.current=!1,t([]),A({current:0,total:q.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},ot=async()=>{const{cloud:M,region:W,tier:Se,workloadType:Pe,serverless:O,photon:F,driverNode:K,workerNode:ae,numWorkers:je,runsPerDay:Be,avgRuntime:dt,daysPerMonth:rt,hoursPerMonth:Ke}=E,lt={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:W,tier:Se},config:{serverless_enabled:O,photon_enabled:F,driver_node_type:K,worker_node_type:ae,num_workers:je,runs_per_day:Be,avg_runtime_minutes:dt,days_per_month:rt,hours_per_month:Ke,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Qe=await ve(lt);t([Qe]),u(null),r(!1)},ft=m.useMemo(()=>{const M=e.filter(K=>K.matches).length,W=e.filter(K=>!K.matches).length,Se=e.filter(K=>K.apiError).length,Pe=e.length>0?e.reduce((K,ae)=>K+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((K,ae)=>K+ae.apiTimeMs,0)/e.length:0,F={};return e.forEach(K=>{const ae=K.testCase.category;F[ae]||(F[ae]={passed:0,failed:0}),K.matches?F[ae].passed++:F[ae].failed++}),{passed:M,failed:W,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:F}},[e]),G=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],W=e.map(K=>{var ae;return[K.testCase.id,K.testCase.name,K.testCase.category,K.testCase.environment.cloud,K.testCase.environment.region,K.testCase.environment.tier,K.matches?"PASS":"FAIL",K.localResult.totalCost.toFixed(2),((ae=K.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",K.totalCostDiffPercent.toFixed(2),K.localTimeMs.toFixed(1),K.apiTimeMs.toFixed(1),K.apiError||""]}),Se=[M.join(","),...W.map(K=>K.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),F=document.createElement("a");F.href=O,F.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,F.click()},P=M=>{const W=new Set(d);W.has(M)?W.delete(M):W.add(M),p(W)},k=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(dD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Au,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(tD,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:G,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(MD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:at,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(n3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Xe,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(fS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:gt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Run ",q.length," Tests"]})]})]}),y&&o.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Au,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:ot,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:E.cloud,onChange:M=>T({...E,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:E.region,onChange:M=>T({...E,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Qm(B,E.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:E.tier,onChange:M=>T({...E,tier:M.target.value}),className:"w-full text-sm",children:Ym(E.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:E.workloadType,onChange:M=>T({...E,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:E.serverless,onChange:M=>T({...E,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:E.photon,onChange:M=>T({...E,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:E.driverNode,onChange:M=>T({...E,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:qu(B,E.cloud,E.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:E.workerNode,onChange:M=>T({...E,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:qu(B,E.cloud,E.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:E.numWorkers,onChange:M=>T({...E,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:E.runsPerDay,onChange:M=>T({...E,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:E.avgRuntime,onChange:M=>T({...E,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:E.daysPerMonth,onChange:M=>T({...E,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(PD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Qm(B,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Ym(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:W=>{W.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:W})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),W]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:W})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),W]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ce.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Y?"text-green-500":"text-yellow-500"}`,children:[Y?o.jsx(Tu,{className:"w-5 h-5"}):o.jsx(fs,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Y?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:ft.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:ft.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:ft.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[ft.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[ft.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(ft.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(ft.byCategory).map(([M,{passed:W,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[W," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx(Ut.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${S.current/S.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[S.current," / ",S.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:q.map(M=>{const W=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${W&&!W.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>W&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[W&&(Se?o.jsx(rr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W?k(W.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W!=null&&W.apiResult?k(W.apiResult.totalCost):W!=null&&W.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:W?o.jsxs("span",{className:W.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[W.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Yr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):W?W.matches?o.jsx(Tu,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(N3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),W&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(W.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:k(W.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:k(W.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:k(W.localResult.totalCost)})]}),W.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",W.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),W.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:W.apiError})}):W.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(W.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:k(W.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:k(W.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:k(W.apiResult.totalCost)})]})]}):null]})]}),W.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:W.discrepancies.map((O,F)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},F))})]})})]}),W.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(W.apiRawResponse,null,2)})})]}),W.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(W.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:W.testCase.environment,config:W.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(PN,{children:o.jsxs(_i,{path:"/",element:o.jsx(C7,{}),children:[o.jsx(_i,{index:!0,element:o.jsx(u8,{})}),o.jsx(_i,{path:"calculator",element:o.jsx(Z_,{})}),o.jsx(_i,{path:"calculator/:id",element:o.jsx(Z_,{})}),o.jsx(_i,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(_i,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();sf.createRoot(document.getElementById("root")).render(o.jsx(fn.StrictMode,{children:o.jsxs(ON,{children:[o.jsx(A8,{}),o.jsx(jP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-PGCMQsJL.js b/lakemeter/backend/static/assets/index-PGCMQsJL.js new file mode 100644 index 00000000..2562ee5c --- /dev/null +++ b/lakemeter/backend/static/assets/index-PGCMQsJL.js @@ -0,0 +1,354 @@ +function a2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var hs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},Ke={};/** + * @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 hl=Symbol.for("react.element"),o2=Symbol.for("react.portal"),l2=Symbol.for("react.fragment"),c2=Symbol.for("react.strict_mode"),u2=Symbol.for("react.profiler"),d2=Symbol.for("react.provider"),p2=Symbol.for("react.context"),f2=Symbol.for("react.forward_ref"),m2=Symbol.for("react.suspense"),h2=Symbol.for("react.memo"),g2=Symbol.for("react.lazy"),_x=Symbol.iterator;function x2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Ia.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;sb(Xm,Ia.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ob=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ob.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=F[se];if(0>>1;ses(De,N))ws(Y,De)?(F[se]=Y,F[w]=N,se=w):(F[se]=De,F[ke]=N,se=ke);else if(ws(Y,N))F[se]=Y,F[w]=N,se=w;else break e}}return Q}function s(F,Q){var N=F.sortIndex-Q.sortIndex;return N!==0?N:F.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(F){for(var Q=n(u);Q!==null;){if(Q.callback===null)r(u);else if(Q.startTime<=F)r(u),Q.sortIndex=Q.expirationTime,t(c,Q);else break;Q=n(u)}}function k(F){if(v=!1,_(F),!g)if(n(c)!==null)g=!0,xe(A);else{var Q=n(u);Q!==null&&oe(k,Q.startTime-F)}}function A(F,Q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Q),p=n(c);p!==null&&(!(p.expirationTime>Q)||F&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var pe=se(p.expirationTime<=Q);Q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(Q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var ke=n(u);ke!==null&&oe(k,ke.startTime-Q),L=!1}return L}finally{p=null,f=N,h=!1}}var S=!1,T=null,D=-1,$=5,j=-1;function H(){return!(e.unstable_now()-j<$)}function X(){if(T!==null){var F=e.unstable_now();j=F;var Q=!0;try{Q=T(!0,F)}finally{Q?re():(S=!1,T=null)}}else S=!1}var re;if(typeof y=="function")re=function(){y(X)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,he=le.port2;le.port1.onmessage=X,re=function(){he.postMessage(null)}}else re=function(){b(X,0)};function xe(F){T=F,S||(S=!0,re())}function oe(F,Q){D=b(function(){F(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_continueExecution=function(){g||h||(g=!0,xe(A))},e.unstable_forceFrameRate=function(F){0>F||125se?(F.sortIndex=N,t(u,F),n(c)===null&&F===n(u)&&(v?(x(D),D=-1):v=!0,oe(k,N-se))):(F.sortIndex=pe,t(c,F),g||h||(g=!0,xe(A))),F},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(F){var Q=f;return function(){var N=f;f=Q;try{return F.apply(this,arguments)}finally{f=N}}}})(mb);fb.exports=mb;var P2=fb.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 R2=m,cr=P2;function ee(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"),sf=Object.prototype.hasOwnProperty,A2=/^[: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]*$/,kx={},Sx={};function T2(e){return sf.call(Sx,e)?!0:sf.call(kx,e)?!1:A2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function L2(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 D2(e,t,n,r){if(t===null||typeof t>"u"||L2(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 Fn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new Fn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new Fn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new Fn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new Fn(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){yn[e]=new Fn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new Fn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new Fn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new Fn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new Fn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new Fn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function M2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Fd(e.type,!1),e;case 11:return e=Fd(e.type.render,!1),e;case 1:return e=Fd(e.type,!0),e;default:return""}}function cf(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 Xi:return"Fragment";case Yi:return"Portal";case af:return"Profiler";case rh:return"StrictMode";case of:return"Suspense";case lf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cf(e.type)||"Memo";case Bs:t=e._payload,e=e._init;try{return cf(e(t))}catch{}}return null}function O2(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 cf(t);case 8:return t===rh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function I2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kl(e){e._valueTracker||(e._valueTracker=I2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 uf(e,t){var n=t.checked;return Ot({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ri(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function df(e,t){bb(e,t);var n=ri(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")?pf(e,t.type,n):t.hasOwnProperty("defaultValue")&&pf(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 pf(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},B2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){B2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Cb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var F2=Ot({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 hf(e,t){if(t){if(F2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gf(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 xf=null;function ah(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vf=null,ha=null,ga=null;function Rx(e){if(e=vl(e)){if(typeof vf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vf(e.stateNode,e.type,t))}}function jb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Nb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(Y2(e)/X2|0)|0}var Yl=64,Xl=4194304;function ho(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function tj(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=wo),Fx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Pj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Aj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Fx);case"textInput":return e=t.data,e===Fx&&Ux?null:e;default:return null}}function Tj(e,t){if(Ji)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=Hs=null,Ji=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Vj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var a=qx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Sf=null,So=null,Ef=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ef||Zi==null||Zi!==Yc(r)||(r=Zi,"selectionStart"in r&&hh(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}),So&&Wo(So,r)||(So=r,r=ru(Sf,"onSelect"),0na||(e.current=Af[na],Af[na]=null,na--)}function bt(e,t){na++,Af[na]=e.current,e.current=t}var si={},Pn=li(si),qn=li(!1),Mi=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Wn(e){return e=e.childContextTypes,e!=null}function iu(){St(qn),St(Pn)}function Zx(e,t,n){if(Pn.current!==si)throw Error(ee(168));bt(Pn,t),bt(qn,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,O2(e)||"Unknown",s));return Ot({},n,r)}function au(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Mi=Pn.current,bt(Pn,e),bt(qn,qn.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,St(qn),St(Pn),bt(Pn,e)):St(qn),bt(qn,n)}var ps=null,Ju=!1,Zd=!1;function u1(e){ps===null?ps=[e]:ps.push(e)}function Zj(e){Ju=!0,u1(e)}function ci(){if(!Zd&&ps!==null){Zd=!0;var e=0,t=dt;try{var n=ps;for(dt=1;e>=a,s-=a,xs=1<<32-Mr(t)+s|n<D?($=T,T=null):$=T.sibling;var j=f(x,T,_[D],k);if(j===null){T===null&&(T=$);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j,T=$}if(D===_.length)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],k),T!==null&&(y=i(T,y,D),S===null?A=T:S.sibling=T,S=T);return Tt&&_i(x,D),A}for(T=r(x,T);D<_.length;D++)$=h(T,x,D,_[D],k),$!==null&&(e&&$.alternate!==null&&T.delete($.key===null?D:$.key),y=i($,y,D),S===null?A=$:S.sibling=$,S=$);return e&&T.forEach(function(H){return t(x,H)}),Tt&&_i(x,D),A}function v(x,y,_,k){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var S=A=null,T=y,D=y=0,$=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?($=T,T=null):$=T.sibling;var H=f(x,T,j.value,k);if(H===null){T===null&&(T=$);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),S===null?A=H:S.sibling=H,S=H,T=$}if(j.done)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,k),j!==null&&(y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return Tt&&_i(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,k),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return e&&T.forEach(function(X){return t(x,X)}),Tt&&_i(x,D),A}function b(x,y,_,k){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var A=_.key,S=y;S!==null;){if(S.key===A){if(A=_.type,A===Xi){if(S.tag===7){n(x,S.sibling),y=s(S,_.props.children),y.return=x,x=y;break e}}else if(S.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Bs&&r0(A)===S.type){n(x,S.sibling),y=s(S,_.props),y.ref=so(x,S,_),y.return=x,x=y;break e}n(x,S);break}else t(x,S);S=S.sibling}_.type===Xi?(y=Ti(_.props.children,x.mode,k,_.key),y.return=x,x=y):(k=Ic(_.type,_.key,_.props,null,x.mode,k),k.ref=so(x,y,_),k.return=x,x=k)}return a(x);case Yi:e:{for(S=_.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=op(_,x.mode,k),y.return=x,x=y}return a(x);case Bs:return S=_._init,b(x,y,S(_._payload),k)}if(mo(_))return g(x,y,_,k);if(Za(_))return v(x,y,_,k);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=ap(_,x.mode,k),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=m1(!0),h1=m1(!1),cu=li(null),uu=null,ia=null,yh=null;function _h(){yh=ia=uu=null}function bh(e){var t=cu.current;St(cu),e._currentValue=t}function Df(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 va(e,t){uu=e,yh=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Hn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(uu===null)throw Error(ee(308));ia=e,uu.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var ji=null;function wh(e){ji===null?ji=[e]:ji.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Es(e,r)}function Es(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 Fs=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 ys(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Es(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Es(e,n)}function Ac(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Ot({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Bi|=a,e.lanes=a,e.memoizedState=p}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{dt=n,tp.transition=r}}function D1(){return Sr().memoizedState}function r5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Or(n,e,r,s),I1(n,t,r)}}function s5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Br(l,a)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Or(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===Mt||t!==null&&t===Mt}function O1(e,t){Eo=fu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:kr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},i5={readContext:kr,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:o0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lc(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lc(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=r5.bind(null,Mt,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:a0,useDebugValue:Ah,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=a0(!1),t=e[0];return e=n5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Mt,s=qr();if(Tt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Ii&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,o0(k1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=fn.identifierPrefix;if(Tt){var n=vs,r=xs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Gr]=t,e[Qo]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(a=gf(n,r),n){case"dialog":kt("cancel",e),kt("close",e),s=r;break;case"iframe":case"object":case"embed":kt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=pu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Tt)return kn(t),null}else 2*Kt()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Kt(),t.sibling=null,n=Lt.current,bt(Lt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?rr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function f5(e,t){switch(xh(t),t.tag){case 1:return Wn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),St(qn),St(Pn),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eh(t),null;case 13:if(St(Lt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return St(Lt),null;case 4:return Ca(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var ac=!1,En=!1,m5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function $f(e,t,n){try{n()}catch(r){zt(e,t,r)}}var v0=!1;function h5(e,t){if(Cf=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jf={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(k){zt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$f(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hf(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Qo],delete t[Rf],delete t[Xj],delete t[Jj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qf(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=su));else if(r!==4&&(e=e.child,e!==null))for(qf(e,t,n),e=e.sibling;e!==null;)qf(e,t,n),e=e.sibling}function Wf(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(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),Ho(e)):Jd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&$f(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){zt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ms(e,t,n),En=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new m5),t.forEach(function(r){var s=S5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Kt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,xu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,a=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cKt()-Mh?Ai(e,0):Dh|=n),Gn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=Es(e,t),e!==null&&(gl(e,t,n),Gn(e,n))}function k5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function S5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qn.current)Hn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Hn=!1,d5(e,t,n);Hn=!!(e.flags&131072)}else Hn=!1,Tt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Wn(r)?(i=!0,au(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Of(t,r,e,n),t=Ff(null,t,r,!0,i,n)):(t.tag=0,Tt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=C5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=f0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(ir=Xs(t.stateNode.containerInfo.firstChild),ar=t,Tt=!0,Dr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Cs(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Lf(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Nf(r,s)?a=null:i!==null&&Nf(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,a,n),t.child;case 6:return e===null&&Lf(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),f0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,bt(cu,r._currentValue),r._currentValue=a,i!==null)if(Br(i.value,a)){if(i.children===s.children&&!qn.current){t=Cs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ys(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Df(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Df(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Dc(e,t),t.tag=1,Wn(r)?(e=!0,au(t)):e=!1,va(t,n),B1(t,r,s),Of(t,r,s,n),Ff(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function E5(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 br(e,t,n,r){return new E5(e,t,n,r)}function Fh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C5(e){if(typeof e=="function")return Fh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Ic(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Fh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ti(n.children,s,i,t);case rh:a=8,s|=8;break;case af:return e=br(12,n,t,s|2),e.elementType=af,e.lanes=i,e;case of:return e=br(13,n,t,s),e.elementType=of,e.lanes=i,e;case lf:return e=br(19,n,t,s),e.elementType=lf,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:a=10;break e;case xb:a=9;break e;case sh:a=11;break e;case ih:a=14;break e;case Bs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ti(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=br(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function ap(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function op(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function j5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,a,l,c){return e=new j5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function N5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=dr;var la=pb.exports,N0=la;rf.createRoot=N0.createRoot,rf.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function D5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||D5()})}function _u(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 Ua(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 M5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Xf(v.location,b,x);u=d()+1;let _=R0(y,u),k=v.createHref(y);try{a.pushState(_,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(k)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Xf(v.location,b,x);u=d();let _=R0(y,u),k=v.createHref(y);a.replaceState(_,"",k),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Zt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,p),c=b,()=>{s.removeEventListener(P0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var A0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(A0||(A0={}));function O5(e,t,n){return n===void 0&&(n="/"),I5(e,t,n)}function I5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let a=fw(e);B5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Zt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Zt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:q5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of mw(i.path))s(i,a,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=mw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function B5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:W5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const F5=/^:[\w-]+$/,U5=3,V5=2,z5=1,$5=10,H5=-2,T0=e=>e==="*";function q5(e,t){let n=e.split("/"),r=n.length;return n.some(T0)&&(r+=H5),t&&(r+=V5),n.filter(s=>!T0(s)).reduce((s,i)=>s+(F5.test(i)?U5:i===""?z5:$5),r)}function W5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function G5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function Q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Y5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 X5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,J5=e=>X5.test(e);function Z5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(J5(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=L0(n.substring(1),"/"):i=L0(n,t)}else i=t;return{pathname:i,search:nN(r),hash:rN(s)}}function L0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lp(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 eN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=eN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Zt(!s.pathname||!s.pathname.includes("?"),lp("?","pathname","search",s)),Zt(!s.pathname||!s.pathname.includes("#"),lp("#","pathname","hash",s)),Zt(!s.search||!s.search.includes("#"),lp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=Z5(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),tN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function sN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const iN=["get",...xw];new Set(iN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=gw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const cN=m.createContext(null);function uN(e){let t=m.useContext(Rs).outlet;return t&&m.createElement(cN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Rs),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Hi),{matches:s}=m.useContext(Rs),{pathname:i}=bl(),a=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function dN(e,t){return pN(e,t)}function pN(e,t,n,r){_l()||Zt(!1);let{navigator:s}=m.useContext(Hi),{matches:i}=m.useContext(Rs),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Zt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=O5(e,{pathname:h}),v=xN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function fN(){let e=bN(),t=sN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const mN=m.createElement(fN,null);class hN extends m.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?m.createElement(Rs.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function gN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Rs.Provider,{value:t},r)}function xN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Zt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||mN,c&&(u<0&&f===0?(kN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(gN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(hN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function vN(e){let t=m.useContext(Wh);return t||Zt(!1),t}function yN(e){let t=m.useContext(aN);return t||Zt(!1),t}function _N(e){let t=m.useContext(Rs);return t||Zt(!1),t}function Sw(e){let t=_N(),n=t.matches[t.matches.length-1];return n.route.id||Zt(!1),n.route.id}function bN(){var e;let t=m.useContext(vw),n=yN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wN(){let{router:e}=vN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const D0={};function kN(e,t,n){D0[e]||(D0[e]=!0)}function SN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function EN(e){return uN(e.context)}function wi(e){Zt(!1)}function CN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Zt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(Hi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function jN(e){let{children:t,location:n}=e;return dN(Jf(t),n)}new Promise(()=>{});function Jf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jf(r.props.children,i));return}r.type!==wi&&Zt(!1),!r.props.index||!r.props.children||Zt(!1);let a={id:r.props.id||i.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&&(a.children=Jf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zf(){return Zf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function PN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RN(e,t){return e.button===0&&(!t||t==="_self")&&!PN(e)}const AN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TN="6";try{window.__reactRouterVersion=TN}catch{}const LN="startTransition",M0=w2[LN];function DN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=L5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&M0?M0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>SN(r),[r]),m.createElement(CN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const MN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ON=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=NN(t,AN),{basename:h}=m.useContext(Hi),g,v=!1;if(typeof u=="string"&&ON.test(u)&&(g=u,MN))try{let _=new URL(window.location.href),k=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=qh(k.pathname,h);k.origin===_.origin&&A!=null?u=A+k.search+k.hash:v=!0}catch{}let b=oN(u,{relative:s}),x=IN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zf({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function IN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=cd(),u=bl(),d=bw(e,{relative:a});return m.useCallback(p=>{if(RN(p,n)){p.preventDefault();let f=r!==void 0?r:_u(u)===_u(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let BN={data:""},FN=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||BN},UN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VN=/\/\*[^]*?\*\/| +/g,B0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ls={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},zN=(e,t,n,r,s)=>{let i=Ew(e),a=ls[i]||(ls[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ls[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=UN.exec(u.replace(VN,""));)d[4]?f.shift():d[3]?(p=d[3].replace(B0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(B0," ").trim();return f[0]})(e);ls[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&ls.g?ls.g:null;return n&&(ls.g=ls[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ls[a],t,r,l),a},$N=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return zN(n.unshift?n.raw?$N(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,FN(t.target),t.g,t.o,t.k)}let Cw,em,tm;ud.bind({g:1});let js=ud.bind({k:1});function HN(e,t,n,r){$s.p=t,Cw=e,em=n,tm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Cw(u,l)}return s}}var qN=e=>typeof e=="function",wu=(e,t)=>qN(e)?e(t):e,WN=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),GN=20,Gh="default",Nw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Nw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:GN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Bc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Aw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),KN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},QN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},YN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||QN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},XN=(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)||WN()}),wl=e=>(t,n)=>{let r=XN(t,e,n);return dd(r.toasterId||KN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Aw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Aw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var JN=1e3,ZN=(e,t="default")=>{let{toasts:n,pausedAt:r}=YN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=JN)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,k)=>k_.visible).slice(...h?[y+1]:[0,y]).reduce((_,k)=>_+(k.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},eP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,tP=js` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,nP=js` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,rP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${eP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${tP} 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: ${nP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,sP=js` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,iP=ui("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: ${sP} 1s linear infinite; +`,aP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,oP=js` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,lP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${aP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${oP} 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; + } +`,cP=ui("div")` + position: absolute; +`,uP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,dP=js` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,pP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${dP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,fP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(pP,null,t):t:n==="blank"?null:m.createElement(uP,null,m.createElement(iP,{...r}),n!=="loading"&&m.createElement(cP,null,n==="error"?m.createElement(rP,{...r}):m.createElement(lP,{...r})))},mP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,hP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,gP="0%{opacity:0;} 100%{opacity:1;}",xP="0%{opacity:1;} 100%{opacity:0;}",vP=ui("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; +`,yP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,_P=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[gP,xP]:[mP(n),hP(n)];return{animation:t?`${js(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${js(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},bP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?_P(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(fP,{toast:e}),a=m.createElement(yP,{...e.ariaProps},wu(e.message,e));return m.createElement(vP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});HN(m.createElement);var wP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},kP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},SP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,EP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=ZN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=kP(p,f);return m.createElement(wP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?SP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(bP,{toast:d,position:p}))}))},We=an;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const pd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class CP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function jP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(CP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const NP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Qh(PP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(jP,{isPresent:n,children:e})),o.jsx(pd.Provider,{value:d,children:e})};function PP(){return new Map}function Tw(e=!0){const t=m.useContext(pd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const uc=e=>e.key||"";function F0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Lw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Tw(a),u=m.useMemo(()=>F0(e),[e]),d=a&&!l?[]:u.map(uc),p=m.useRef(!0),f=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Lw(()=>{p.current=!1,f.current=u;for(let k=0;k{const A=uc(k),S=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach($=>{$||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(NP,{isPresent:S,initial:!p.current||n?void 0:!1,custom:S?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:S?void 0:T,children:k},A)})})},or=e=>e;let Dw=or;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},_s=e=>e*1e3,bs=e=>e/1e3,RP={useManualTiming:!1};function AP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],TP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=dc.reduce((x,y)=>(x[y]=AP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,TP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=a[y];return x[y]=(k,A=!1,S=!1)=>(n||g(),_.schedule(k,A,S)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function LP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const DP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||DP.has(e)}let Iw=e=>!ku(e);function MP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{MP(require("@emotion/is-prop-valid").default)}catch{}function OP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function IP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const fd=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>sl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function BP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function FP(e){const{initial:t,animate:n}=BP(e,m.useContext(fd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const UP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),zP="framerAppearId",Fw="data-"+tg(zP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function $P(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(fd),c=m.useContext(Ow),u=m.useContext(pd),d=m.useContext(Yh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(Uw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&HP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Fw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Lw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),ng.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function HP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function qP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&LP(e);function l(u,d){let p;const f={...m.useContext(Yh),...u,layoutId:WP(u)},{isStatic:h}=f,g=FP(u),v=r(u,h);if(!h&&Xh){GP();const b=KP(f);p=b.MeasureLayout,g.visualElement=$P(s,v,f,t,b.ProjectionNode)}return o.jsxs(fd.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,VP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[UP]=s,c}function WP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function GP(e,t){m.useContext(Ow).strict}function KP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const QP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(QP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),YP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XP=e=>rm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Fc(e){const t=jn(e)?e.get():e;return YP(t)?t.toValue():t}function JP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:ZP(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const zw=e=>(t,n)=>{const r=m.useContext(fd),s=m.useContext(pd),i=()=>JP(e,t,r,s);return n?i():Qh(i)};function ZP(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Fc(i[f]);let{initial:a,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!md(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),eR=$w("var(--"),ig=e=>eR(e)?tR.test(e.split("/*")[0].trim()):!1,tR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Ns=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>Ns(0,1,e)},pc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Jr=kl("%"),Ae=kl("px"),nR=kl("vh"),rR=kl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},sR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},iR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:pc,scaleX:pc,scaleY:pc,scaleZ:pc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:$0,originY:$0,originZ:Ae},H0={...za,transform:Math.round},ag={...sR,...iR,zIndex:H0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:H0},aR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},oR=Va.length;function lR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function fR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return qi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Yw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function mR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],hR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(qi.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{mR(n,r),Et.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},gR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!jn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function xR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return og(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,xR(e,t)),r}function yR(e,t){const n={},r=vR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function _R(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function bR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(rg(n)?_R:yR)(r,i,a,n),u=OP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function wR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...rg(r)?hR:gR,preloadedFeatures:e,useRender:bR(s),createVisualElement:t,Component:r};return qP(a)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class SR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(kR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class ER extends SR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function pg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function fg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",CR={linearEasing:void 0};function jR(e,t){const n=Jh(e);return()=>{var r;return(r=CR[t])!==null&&r!==void 0?r:n()}}const Eu=jR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Eu()?tk(e,t):mg(e)?xo(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const Rr={x:!1,y:!1};function sk(){return Rr.x||Rr.y}function NR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=NR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function PR(e,t,n={}){const[r,s,i]=ik(e,n),a=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,RR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AR(e){return RR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function up(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const TR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(vo.has(n))return;up(n,"down");const s=Q0(()=>{up(n,"up")}),i=()=>up(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function LR(e,t,n={}){const[r,s,i]=ik(e,n),a=l=>{const c=l.currentTarget;if(!Y0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!Y0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!AR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>TR(u,s),s)}),i}function DR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Va]);let Uc;function MR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(xn.isProcessing||RP.useManualTiming?xn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(MR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class IR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=OR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),Et.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new IR(e,t)}function BR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function FR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=XP(i[a]);BR(e,a,l)}}function UR(e){return!!(jn(e)&&e.add)}function am(e,t){const n=e.getValue("willChange");if(UR(n))return n.add(t)}function ck(e){return e.props[Fw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,VR=1e-7,zR=12;function $R(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=uk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>VR&&++l$R(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),fk=Sl(.33,1.53,.69,.99),yg=pk(fk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=pk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function HR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const Po=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qR(e){return e==null}const WR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&WR.test(n)&&n.startsWith(e)||t&&!qR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},GR=e=>Ns(0,255,e),dp={...za,transform:e=>Math.round(GR(e))},Pi={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dp.transform(e)+", "+dp.transform(t)+", "+dp.transform(n)+", "+Po(il.transform(r))+")"};function KR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const om={test:wg("#"),parse:KR,transform:Pi.transform},ua={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(Po(t))+", "+Jr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>Pi.test(e)||om.test(e)||ua.test(e),parse:e=>Pi.test(e)?Pi.parse(e):ua.test(e)?ua.parse(e):om.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Pi.transform(e):ua.transform(e)},QR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(QR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",XR="var",JR="var(",J0="${}",ZR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(ZR,c=>(Sn.test(c)?(r.color.push(i),s.push(bk),n.push(Sn.parse(c))):c.startsWith(JR)?(r.var.push(i),s.push(XR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return ol(e).values}function kk(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function tA(e){const t=wk(e);return kk(e)(t.map(eA))}const ai={test:YR,parse:wk,createTransformer:kk,getAnimatableNone:tA},nA=new Set(["brightness","contrast","saturate","opacity"]);function rA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=nA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const sA=/\b([a-z-]*)\(.*?\)/gu,lm={...ai,getAnimatableNone:e=>{const t=e.match(sA);return t?t.map(rA).join(" "):e}},iA={...ag,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:lm,WebkitFilter:lm},kg=e=>iA[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aA=new Set(["auto","none","0"]);function oA(e,t,n){let r=0,s;for(;re===za||e===Ae,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},lA=new Set(["x","y","z"]),cA=Va.filter(e=>!lA.has(e));function uA(e){const t=[];return cA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Li=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Li).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=uA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Li.forEach(e=>e.complete()),Li.clear()}function Ck(){Li.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function dA(){Ck(),Ek()}class Sg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Li.add(this),cm||(cm=!0,Et.read(Ck),Et.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),pA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fA(e){const t=pA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=fA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return jk(a)?parseFloat(a):a}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),mA={test:e=>e==="auto",parse:e=>e},Rk=[za,Ae,Jr,Is,rR,nR,mA],nv=e=>Rk.find(Pk(e));class Ak extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function hA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(xA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const vA=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>vA?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!gA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Dt=(e,t,n)=>e+(t-e)*n;function pp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function yA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pp(c,l,e+1/3),i=pp(c,l,e),a=pp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function Cu(e,t){return n=>n>0?t:e}const fp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},_A=[om,Pi,ua],bA=e=>_A.find(t=>t.test(e));function sv(e){const t=bA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=yA(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Cu(e,t);const s={...n};return i=>(s.red=fp(n.red,r.red,i),s.green=fp(n.green,r.green,i),s.blue=fp(n.blue,r.blue,i),s.alpha=Dt(n.alpha,r.alpha,i),Pi.transform(s))},wA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(wA),dm=new Set(["none","hidden"]);function kA(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SA(e,t){return n=>Dt(e,t,n)}function Eg(e){return typeof e=="number"?SA:typeof e=="string"?ig(e)?Cu:Sn.test(e)?iv:jA:Array.isArray(e)?Lk:typeof e=="object"?Sn.test(e)?iv:EA:Cu}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Eg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function CA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?kA(e,t):El(Lk(CA(r,s),s.values),n):Cu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Dt(e,t,n):Eg(e)(e,t)}const NA=5;function Mk(e,t,n){const r=Math.max(t-NA,0);return lk(n-e(r),t-r)}const Vt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mp=.001;function PA({duration:e=Vt.duration,bounce:t=Vt.bounce,velocity:n=Vt.velocity,mass:r=Vt.mass}){let s,i,a=1-t;a=Ns(Vt.minDamping,Vt.maxDamping,a),e=Ns(Vt.minDuration,Vt.maxDuration,bs(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=pm(u,a),g=Math.exp(-p);return mp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=pm(Math.pow(u,2),a);return(-s(u)+mp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-mp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=AA(s,i,l);if(e=_s(e),isNaN(c))return{stiffness:Vt.stiffness,damping:Vt.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const RA=12;function AA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function DA(e){let t={velocity:Vt.velocity,stiffness:Vt.stiffness,damping:Vt.damping,mass:Vt.mass,isResolvedFromDuration:!1,...e};if(!av(e,LA)&&av(e,TA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Ns(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Vt.mass,stiffness:s,damping:i}}else{const n=PA(e);t={...t,...n,mass:Vt.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=Vt.visualDuration,t=Vt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=DA({...n,velocity:-bs(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=bs(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Vt.restSpeed.granular:Vt.restSpeed.default),s||(s=y?Vt.restDelta.granular:Vt.restDelta.default);let _;if(v<1){const A=pm(x,v);_=S=>{const T=Math.exp(-v*x*S);return a-T*((g+v*x*b)/A*Math.sin(A*S)+b*Math.cos(A*S))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=S=>{const T=Math.exp(-v*x*S),D=Math.min(A*S,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const k={calculatedDuration:h&&p||null,next:A=>{const S=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?_s(g):Mk(_,A,S));const D=Math.abs(T)<=r,$=Math.abs(a-S)<=s;l.done=D&&$}return l.value=l.done?a:S,l},toString:()=>{const A=Math.min(ek(k),sm),S=tk(T=>k.next(A*T).value,A,30);return A+"ms "+S}};return k}function ov({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),k=D=>{const $=y(D),j=_(D);f.done=Math.abs($)<=u,f.value=f.done?x:j};let A,S;const T=D=>{h(f.value)&&(A=D,S=Ok({keyframes:[f.value,g(f.value)],velocity:Mk(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let $=!1;return!S&&A===void 0&&($=!0,k(D),T(D)),A!==void 0&&D>=A?S.next(D-A):(!$&&k(D),f)}}}const MA=Sl(.42,0,1,1),OA=Sl(0,0,.58,1),Ik=Sl(.42,0,.58,1),IA=e=>Array.isArray(e)&&typeof e[0]!="number",BA={linear:or,easeIn:MA,easeInOut:Ik,easeOut:OA,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:fk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return BA[e];return e};function FA(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=FA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(Ns(e[0],e[i-1],d)):u}function VA(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Dt(n,1,s))}}function zA(e){const t=[0];return VA(t,e.length-1),t}function $A(e,t){return e.map(n=>n*t)}function HA(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=IA(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},a=$A(n&&n.length===t.length?n:zA(t),e),l=UA(a,t,{ease:Array.isArray(s)?s:HA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const qA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Et.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:Zr.now()}},WA={decay:ov,inertia:ov,tween:ju,keyframes:ju,spring:Ok},GA=e=>e/100;class Cg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=fg(n)?n:WA[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=El(GA,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,k=i;if(h){const D=Math.min(this.currentTime,d)/p;let $=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&$--,$=Math.min($,h+1),!!($%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(k=a)),_=Ns(0,1,j)*p}const A=y?{done:!1,value:c[0]}:k.next(_);l&&(A.value=l(A.value));let{done:S}=A;!y&&u!==null&&(S=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return T&&s!==void 0&&(A.value=xd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?bs(t.calculatedDuration):0}get time(){return bs(this.currentTime)}set time(t){t=_s(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=bs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=qA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const KA=new Set(["opacity","clipPath","filter","transform"]);function QA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const YA=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,XA=2e4;function JA(e){return fg(e.type)||e.type==="spring"||!nk(e.ease)}function ZA(e,t){const n=new Cg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Eu()&&eT(i)&&(i=Bk[i]),JA(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=ZA(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=QA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(xd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return bs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return bs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_s(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return or;const{animation:r}=n;G0(r,t)}return or}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new Cg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=_s(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return YA()&&r&&KA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const tT={type:"spring",stiffness:500,damping:25,restSpeed:10},nT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),rT={type:"keyframes",duration:.8},sT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iT=(e,{keyframes:t})=>t.length>2?rT:qi.has(e)?e.startsWith("scale")?nT(t[1]):tT:sT;function aT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>a=>{const l=pg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-_s(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};aT(l)||(d={...d,...iT(e,d)}),d.duration&&(d.duration=_s(d.duration)),d.repeatDelay&&(d.repeatDelay=_s(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=xd(d.keyframes,l);if(f!==void 0)return Et.update(()=>{d.onUpdate(f),d.onComplete()}),new ER([])}return!i&&cv.supports(d)?new cv(d):new Cg(d)};function oT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&oT(d,p))continue;const g={delay:n,...pg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,p,Et);y!==null&&(g.startTime=y,v=!0)}}am(e,p),f.start(jg(p,f,h,e.shouldReduceMotion&&ok.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{Et.update(()=>{l&&FR(e,l)})}),u}function fm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return lT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function lT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(cT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(fm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function cT(e,t){return e.sortNodePosition(t)}function uT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>fm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=fm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const dT=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>uT(e,n,r)))}function hT(e){let t=mT(e),n=uv(),r=!0;const s=c=>(u,d)=>{var p;const f=gd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=Uk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&k,$=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&($=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const F=e.getValue(oe);F&&(F.liveStyle=!1)};for(const oe in re){const F=H[oe],Q=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;rm(F)&&rm(Q)?N=!Zw(F,Q):N=F!==Q,N?F!=null?le(oe):f.add(oe):F!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(S&&T)||$)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function gT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function vi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:vi(!0),whileInView:vi(),whileHover:vi(),whileTap:vi(),whileDrag:vi(),whileFocus:vi(),exit:vi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xT extends di{constructor(t){super(t),t.animationState||(t.animationState=hT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let vT=0;class yT extends di{constructor(){super(...arguments),this.id=vT++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const _T={animation:{Feature:xT},exit:{Feature:yT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const bT=e=>t=>hg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,bT(n),r)}const dv=(e,t)=>Math.abs(e-t);function wT(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=gp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=wT(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=hp(f,this.transformPagePoint),Et.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gp(p.type==="pointercancel"?this.lastMoveEventInfo:hp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=hp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,gp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function hp(e,t){return t?{point:t(e.point)}:e}function pv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gp({point:e},t){return{point:e,delta:pv(e,zk(t)),offset:pv(e,kT(t)),velocity:ST(t,.1)}}function kT(e){return e[0]}function zk(e){return e[e.length-1]}function ST(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const i=bs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const $k=1e-4,ET=1-$k,CT=1+$k,Hk=.01,jT=0-Hk,NT=0+Hk;function ur(e){return e.max-e.min}function PT(e,t,n){return Math.abs(e-t)<=n}function fv(e,t,n,r=.5){e.origin=r,e.originPoint=Dt(t.min,t.max,e.origin),e.scale=ur(n)/ur(t),e.translate=Dt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=ET&&e.scale<=CT||isNaN(e.scale))&&(e.scale=1),(e.translate>=jT&&e.translate<=NT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){fv(e.x,t.x,n.x,r?r.originX:void 0),fv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ur(t)}function RT(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ur(t)}function To(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function AT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Dt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TT(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),Ns(0,1,n)}function MT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function OT(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),Gt=()=>({x:bv(),y:bv()});function gr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function IT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function BT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function xp(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!xp(e)||!xp(t)||!xp(n)}function ki(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Ev=1.0000000000001;function FT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,s=.5){const i=Dt(e.min,e.max,s);gm(e,t,n,i,r)}function fa(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(BT(e.getBoundingClientRect(),t))}function UT(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,VT=new WeakMap;class zT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Gt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ur(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&Et.postRender(()=>g(d,p)),am(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=$T(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&Et.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!fc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=AT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=TT(s.layoutBox,n):this.constraints=!1,this.elastic=OT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=MT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=UT(r,s.root,this.visualElement.getTransformPagePoint());let a=LT(s.layout.layoutBox,i);if(n){const l=n(IT(a));this.hasMutatedConstraints=!!l,l&&(a=qk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!fc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return am(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!fc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Dt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=DT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!fc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Dt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;VT.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),Et.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function fc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $T(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HT extends di{constructor(t){super(t),this.removeGroupControls=or,this.removeListeners=or,this.controls=new zT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||or}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&Et.postRender(()=>e(t,n))};class qT extends di{constructor(){super(...arguments),this.removePointerDownListener=or}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&Et.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},WT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Dt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class GT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;fR(KT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||Et.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Tw(),r=m.useContext(Kh);return o.jsx(GT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const KT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:WT};function QT(e,t,n){const r=jn(e)?e:al(e);return r.start(jg("",r,t,n)),r.animation}function YT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XT=(e,t)=>e.depth-t.depth;class JT{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XT),this.isDirty=!1,this.children.forEach(t)}}function ZT(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return Et.read(r,!0),()=>ii(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],eL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Ae.test(e);function tL(e,t,n,r,s,i){s?(e.opacity=Dt(0,n.opacity!==void 0?n.opacity:1,nL(r)),e.opacityExit=Dt(t.opacity!==void 0?t.opacity:1,0,rL(r))):i&&(e.opacity=Dt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Tv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Tv(e.x,t.x),Tv(e.y,t.y)}function Lv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function sL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Jr.test(t)&&(t=parseFloat(t),t=Dt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Dt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,a){sL(e,t[n],t[r],t[s],t.scale,i,a)}const iL=["x","scaleX","originX"],aL=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,iL,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,aL,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Bv(e,t){return e.min===t.min&&e.max===t.max}function oL(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Fv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Uv(e){return ur(e.x)/ur(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lL{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function cL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,vp=["","X","Y","Z"],uL={visibility:"hidden"},zv=1e3;let dL=0;function yp(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Et,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=dL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(mL),this.nodes.forEach(yL),this.nodes.forEach(_L),this.nodes.forEach(hL),yo&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=ZT(f,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||EL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const k={...pg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=k/1e3;qv(p.x,a.x,A),qv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&oL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Gt()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,tL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Et.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=QT(0,zv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Gt();const p=ur(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=ur(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new lL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&yp("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function pL(e){e.updateLayout()}function fL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(f);f.min=r[p].min,f.max=f.min+h}):rS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=Gt();To(g,n.layoutBox,f.layoutBox);const v=Gt();To(v,r,h.layoutBox),eS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function mL(e){yo&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function gL(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function xL(e){e.isLayoutDirty=!1}function vL(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yL(e){e.resolveTargetDelta()}function _L(e){e.calcProjection()}function bL(e){e.resetSkewAndRotation()}function wL(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Dt(t.translate,0,n),e.scale=Dt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Dt(t.min,n.min,r),e.max=Dt(t.max,n.max,r)}function kL(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function SL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const EL={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:or;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function CL(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!PT(Uv(t),Uv(n),.2)}function jL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const NL=nS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_p={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!_p.current){const e=new NL({});e.mount(window),e.setOptions({layoutScroll:!0}),_p.current=e}return _p.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),PL={pan:{Feature:qT},drag:{Feature:HT,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class RL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class AL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=LR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,bp=new WeakMap,LL=e=>{const t=xm.get(e.target);t&&t(e)},DL=e=>{e.forEach(LL)};function ML({root:e,...t}){const n=e||document;bp.has(n)||bp.set(n,{});const r=bp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(DL,{root:e,...t})),r[s]}function OL(e,t,n){const r=ML(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const IL={some:0,all:1};class BL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:IL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return OL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(FL(t,n))&&this.startObserver()}unmount(){}}function FL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const UL={inView:{Feature:BL},tap:{Feature:TL},focus:{Feature:AL},hover:{Feature:RL}},VL={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function zL(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const $L=[...Rk,Sn,ai],HL=e=>$L.find(Pk(e)),Jv=new WeakMap;function qL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class WL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||zL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Et.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Gt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!HL(s)&&ai.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends WL{constructor(){super(...arguments),this.KeyframeResolver=Ak}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function GL(e){return window.getComputedStyle(e)}class KL extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}else{const r=GL(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){og(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class QL extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Gt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const YL=(e,t)=>rg(e)?new QL(t):new KL(t,{allowProjection:e!==m.Fragment}),XL=wR({..._T,...UL,...PL,...VL},YL),$t=IP(XL);function JL({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const ZL=m.forwardRef(JL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const sD=m.forwardRef(rD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const wp=m.forwardRef(aD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const kp=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const pD=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(fD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Au=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sr=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const fs=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(ED);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const jD=m.forwardRef(CD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Tu=m.forwardRef(RD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(AD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(DD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const BD=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(FD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ms=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef(WD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Sp=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const o3=m.forwardRef(a3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Lu=m.forwardRef(l3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(g3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(w3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const S3=m.forwardRef(k3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(j3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const A3={},iy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(A3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},T3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function L3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var D3=typeof Object.is=="function"?Object.is:L3,M3=La.useState,O3=La.useEffect,I3=La.useLayoutEffect,B3=La.useDebugValue;function F3(e,t){var n=t(),r=M3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return I3(function(){s.value=n,s.getSnapshot=t,Ep(s)&&i({inst:s})},[e,n,t]),O3(function(){return Ep(s)&&i({inst:s}),e(function(){Ep(s)&&i({inst:s})})},[e]),B3(n),n}function Ep(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!D3(e,n)}catch{return!0}}function U3(e,t){return t()}var V3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?U3:F3;xS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:V3;gS.exports=xS;var z3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,$3=z3;function H3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var q3=typeof Object.is=="function"?Object.is:H3,W3=$3.useSyncExternalStore,G3=vd.useRef,K3=vd.useEffect,Q3=vd.useMemo,Y3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=G3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,q3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=W3(e,i[0],i[1]);return K3(function(){a.hasValue=!0,a.value=l},[l]),Y3(l),l};mS.exports=hS;var X3=mS.exports;const J3=qu(X3),vS={},{useDebugValue:Z3}=pn,{useSyncExternalStoreWithSelector:eM}=J3;let ay=!1;const tM=e=>e;function nM(e,t=tM,n){(vS?"production":void 0)!=="production"&&n&&!ay&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ay=!0);const r=eM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Z3(r),r}const oy=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?T3(e):e,n=(r,s)=>nM(t,r,s);return Object.assign(n,t),n},rM=e=>e?oy(e):oy;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:sM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=sM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=bd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Kn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ur("ArrayBuffer");function iM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const aM=bd("string"),Kn=bd("function"),wS=bd("number"),Nl=e=>e!==null&&typeof e=="object",oM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},lM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},cM=Ur("Date"),uM=Ur("File"),dM=Ur("Blob"),pM=Ur("FileList"),fM=e=>Nl(e)&&Kn(e.pipe),mM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Kn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Kn(e.toString)&&e.toString()==="[object FormData]"))},hM=Ur("URLSearchParams"),[gM,xM,vM,yM]=["ReadableStream","Request","Response","Headers"].map(Ur),_M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Da(e)&&e!==Ri;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const a=e&&kS(n,i)||i;Hc(n[a])&&Hc(s)?n[a]=wm(n[a],s):Hc(s)?n[a]=wm({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Kn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),wM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},SM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},EM=(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},CM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),NM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},PM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},RM=Ur("HTMLFormElement"),AM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),TM=Ur("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},LM=e=>{ES(e,(t,n)=>{if(Kn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Kn(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+"'")})}})},DM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},MM=()=>{},OM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function IM(e){return!!(e&&Kn(e.append)&&e[_S]==="FormData"&&e[yd])}const BM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},FM=Ur("AsyncFunction"),UM=e=>e&&(Nl(e)||Kn(e))&&Kn(e.then)&&Kn(e.catch),CS=((e,t)=>e?setImmediate:t?((n,r)=>(Ri.addEventListener("message",({source:s,data:i})=>{s===Ri&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Kn(Ri.postMessage)),VM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ri):typeof process<"u"&&process.nextTick||CS,zM=e=>e!=null&&Kn(e[yd]),z={isArray:$a,isArrayBuffer:bS,isBuffer:jl,isFormData:mM,isArrayBufferView:iM,isString:aM,isNumber:wS,isBoolean:oM,isObject:Nl,isPlainObject:Hc,isEmptyObject:lM,isReadableStream:gM,isRequest:xM,isResponse:vM,isHeaders:yM,isUndefined:Da,isDate:cM,isFile:uM,isBlob:dM,isRegExp:TM,isFunction:Kn,isStream:fM,isURLSearchParams:hM,isTypedArray:jM,isFileList:pM,forEach:Pl,merge:wm,extend:bM,trim:_M,stripBOM:wM,inherits:kM,toFlatObject:SM,kindOf:_d,kindOfTest:Ur,endsWith:EM,toArray:CM,forEachEntry:NM,matchAll:PM,isHTMLForm:RM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:LM,toObjectSet:DM,toCamelCase:AM,noop:MM,toFiniteNumber:OM,findKey:kS,global:Ri,isContextDefined:SS,isSpecCompliantForm:IM,toJSONObject:BM,isAsyncFn:FM,isThenable:UM,setImmediate:CS,asap:VM,isIterable:zM};function Oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}z.inherits(Oe,Error,{toJSON:function(){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:z.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Oe.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Oe,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Oe.from=(e,t,n,r,s,i)=>{const a=Object.create(jS);z.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Oe.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const $M=null;function km(e){return z.isPlainObject(e)||z.isArray(e)}function PS(e){return z.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function HM(e){return z.isArray(e)&&!e.some(km)}const qM=z.toFlatObject(z,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!z.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!z.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&z.isSpecCompliantForm(t);if(!z.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(z.isDate(g))return g.toISOString();if(z.isBoolean(g))return g.toString();if(!c&&z.isBlob(g))throw new Oe("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(g)||z.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(z.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(z.isArray(g)&&HM(g)||(z.isFileList(g)||z.endsWith(v,"[]"))&&(x=z.toArray(g)))return v=PS(v),x.forEach(function(_,k){!(z.isUndefined(_)||_===null)&&t.append(a===!0?cy([v],k,i):a===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(qM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!z.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),z.forEach(g,function(x,y){(!(z.isUndefined(x)||x===null)&&s.call(t,x,z.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!z.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function WM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function AS(e,t,n){if(!t)return e;const r=n&&n.encode||WM;z.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=z.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){z.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},GM=typeof URLSearchParams<"u"?URLSearchParams:Rg,KM=typeof FormData<"u"?FormData:null,QM=typeof Blob<"u"?Blob:null,YM={isBrowser:!0,classes:{URLSearchParams:GM,FormData:KM,Blob:QM},protocols:["http","https","file","blob","url","data"]},Ag=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,XM=Ag&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),JM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ZM=Ag&&window.location.href||"http://localhost",e4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ag,hasStandardBrowserEnv:XM,hasStandardBrowserWebWorkerEnv:JM,navigator:Sm,origin:ZM},Symbol.toStringTag,{value:"Module"})),Cn={...e4,...YM};function t4(e,t){return wd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&z.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function n4(e){return z.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function r4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&z.isArray(s)?s.length:a,c?(z.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!z.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&z.isArray(s[a])&&(s[a]=r4(s[a])),!l)}if(z.isFormData(e)&&z.isFunction(e.entries)){const n={};return z.forEachEntry(e,(r,s)=>{t(n4(r),s,n,0)}),n}return null}function s4(e,t,n){if(z.isString(e))try{return(t||JSON.parse)(e),z.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return s?JSON.stringify(LS(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return t4(t,this.formSerializer).toString();if((l=z.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),s4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Oe.from(l,Oe.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const i4=z.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"]),a4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&i4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},py=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:z.isArray(e)?e.map(qc):String(e)}function o4(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 l4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cp(e,t,n,r,s){if(z.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!z.isString(t)){if(z.isString(r))return t.indexOf(r)!==-1;if(z.isRegExp(r))return r.test(t)}}function c4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function u4(e,t){const n=z.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Qn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=z.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=qc(l))}const a=(l,c)=>z.forEach(l,(u,d)=>i(u,d,c));if(z.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(z.isString(t)&&(t=t.trim())&&!l4(t))a(a4(t),n);else if(z.isObject(t)&&z.isIterable(t)){let l={},c,u;for(const d of t){if(!z.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?z.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=z.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return o4(s);if(z.isFunction(n))return n.call(this,s,r);if(z.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=z.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Cp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=z.findKey(r,a);l&&(!n||Cp(r,r[l],l,n))&&(delete r[l],s=!0)}}return z.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Cp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return z.forEach(this,(s,i)=>{const a=z.findKey(r,i);if(a){n[a]=qc(s),delete n[i];return}const l=t?c4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return z.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&z.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(s=>r.set(s)),r}static accessor(t){const r=(this[py]=this[py]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(u4(s,a),r[l]=!0)}return z.isArray(t)?t.forEach(i):i(t),this}};Qn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);z.reduceDescriptors(Qn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});z.freezeMethods(Qn);function jp(e,t){const n=this||Rl,r=t||n,s=Qn.from(r.headers);let i=r.data;return z.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Oe.call(this,e??"canceled",Oe.ERR_CANCELED,t,n),this.name="CanceledError"}z.inherits(Ha,Oe,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Oe("Request failed with status code "+n.status,[Oe.ERR_BAD_REQUEST,Oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function d4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function p4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Du=(e,t,n=3)=>{let r=0;const s=p4(50,250);return f4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},fy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>z.asap(()=>e(...t)),m4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,h4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];z.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),z.isString(r)&&l.push(`path=${r}`),z.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),z.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function g4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function x4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!g4(t);return e&&(r||n==!1)?x4(e,t):t}const hy=e=>e instanceof Qn?{...e}:e;function Ui(e,t){t=t||{};const n={};function r(u,d,p,f){return z.isPlainObject(u)&&z.isPlainObject(d)?z.merge.call({caseless:f},u,d):z.isPlainObject(d)?z.merge({},d):z.isArray(d)?d.slice():d}function s(u,d,p,f){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!z.isUndefined(d))return r(void 0,d)}function a(u,d){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(hy(u),hy(d),p,!0)};return z.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);z.isUndefined(f)&&p!==l||(n[d]=f)}),n}const IS=e=>{const t=Ui({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Qn.from(a),t.url=AS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),z.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(z.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&z.isFunction(r)&&(r=r(t)),r||r!==!1&&m4(t.url))){const c=s&&i&&h4.read(i);c&&a.set(s,c)}return t},v4=typeof XMLHttpRequest<"u",y4=v4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const a=Qn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Qn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Oe("Request aborted",Oe.ECONNABORTED,e,b)),b=null)},b.onerror=function(k){const A=k&&k.message?k.message:"Network Error",S=new Oe(A,Oe.ERR_NETWORK,e,b);S.event=k||null,r(S),b=null},b.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||TS;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new Oe(k,A.clarifyTimeoutError?Oe.ETIMEDOUT:Oe.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&z.forEach(a.toJSON(),function(k,A){b.setRequestHeader(A,k)}),z.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Du(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Du(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=d4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Oe("Unsupported protocol "+y+":",Oe.ERR_BAD_REQUEST,e));return}b.send(i||null)})},_4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Oe?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Oe(`timeout ${t} of ms exceeded`,Oe.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>z.asap(l),c}},b4=function*(e,t){let n=e.byteLength;if(n{const s=w4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=z,S4=(({Request:e,Response:t})=>({Request:e,Response:t}))(z.global),{ReadableStream:vy,TextEncoder:yy}=z.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},E4=e=>{e=z.merge.call({skipUndefined:!0},S4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),a=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(Cn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&_y(()=>z.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Oe(`Response type '${g}' is not supported`,Oe.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(z.isBlob(g))return g.size;if(z.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(z.isArrayBufferView(g)||z.isArrayBuffer(g))return g.byteLength;if(z.isURLSearchParams(g)&&(g=g+""),z.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=z.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:k,onDownloadProgress:A,onUploadProgress:S,responseType:T,headers:D,withCredentials:$="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=_4([y,_&&_.toAbortSignal()],k),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let he;try{if(S&&u&&b!=="get"&&b!=="head"&&(he=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(z.isFormData(x)&&(pe=se.headers.get("content-type"))&&D.setContentType(pe),se.body){const[L,ke]=fy(he,Du(my(S)));x=gy(se.body,xy,L,ke)}}z.isString($)||($=$?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?$:void 0};re=i&&new n(v,oe);let F=await(i?H(re,j):H(v,oe));const Q=d&&(T==="stream"||T==="response");if(d&&(A||Q&&le)){const se={};["status","statusText","headers"].forEach(De=>{se[De]=F[De]});const pe=z.toFiniteNumber(F.headers.get("content-length")),[L,ke]=A&&fy(pe,Du(my(A),!0))||[];F=new r(gy(F.body,xy,L,()=>{ke&&ke(),le&&le()}),se)}T=T||"text";let N=await p[z.findKey(p,T)||"text"](F,g);return!Q&&le&&le(),await new Promise((se,pe)=>{MS(se,pe,{data:N,headers:Qn.from(F.headers),status:F.status,statusText:F.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Oe("Network Error",Oe.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Oe.from(xe,xe&&xe.code,g,re)}}},C4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=C4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:E4(t)),d=u;return u};BS();const Tg={http:$M,xhr:y4,fetch:{get:BS}};z.forEach(Tg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,j4=e=>z.isFunction(e)||e===null||e===!1;function N4(e,t){e=z.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(by).join(` +`):" "+by(a[0]):"as no adapter specified";throw new Oe("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:N4,adapters:Tg};function Np(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function wy(e){return Np(e),e.headers=Qn.from(e.headers),e.data=jp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Np(e),r.data=jp.call(e,e.transformResponse,r),r.headers=Qn.from(r.headers),r},function(r){return DS(r)||(Np(e),r&&r.response&&(r.response.data=jp.call(e,e.transformResponse,r.response),r.response.headers=Qn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+US+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Oe(s(a," has been removed"+(n?" in "+n:"")),Oe.ERR_DEPRECATED);return n&&!ky[a]&&(ky[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function P4(e,t,n){if(typeof e!="object")throw new Oe("options must be an object",Oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Oe("option "+i+" must be "+c,Oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Oe("Unknown option "+i,Oe.ERR_BAD_OPTION)}}const Wc={assertOptions:P4,validators:kd},Hr=Wc.validators;let Di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ui(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(z.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&z.merge(i.common,i[n.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Qn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 VS(function(s){t=s}),cancel:t}}};function A4(e){return function(n){return e.apply(null,n)}}function T4(e){return z.isObject(e)&&e.isAxiosError===!0}const Em={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(Em).forEach(([e,t])=>{Em[t]=e});function zS(e){const t=new Di(e),n=yS(Di.prototype.request,t);return z.extend(n,Di.prototype,t,{allOwnKeys:!0}),z.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Ui(e,s))},n}const Qt=zS(Rl);Qt.Axios=Di;Qt.CanceledError=Ha;Qt.CancelToken=R4;Qt.isCancel=DS;Qt.VERSION=US;Qt.toFormData=wd;Qt.AxiosError=Oe;Qt.Cancel=Qt.CanceledError;Qt.all=function(t){return Promise.all(t)};Qt.spread=A4;Qt.isAxiosError=T4;Qt.mergeConfig=Ui;Qt.AxiosHeaders=Qn;Qt.formToJSON=e=>LS(z.isHTMLForm(e)?new FormData(e):e);Qt.getAdapter=FS.getAdapter;Qt.HttpStatusCode=Em;Qt.default=Qt;const{Axios:B8,AxiosError:F8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=Qt,ye=Qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Cm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const L4=()=>{jm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Cm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const D4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},M4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},O4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},I4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},B4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},F4=async e=>{await ye.delete(`/estimates/${e}`)},U4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},V4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},z4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},$4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},H4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},q4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},W4=async e=>{await ye.delete(`/line-items/${e}`)},G4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},K4=async e=>{await ye.post("/estimates/reorder",e)},Q4=async()=>{const{data:e}=await ye.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},Y4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},X4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},J4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Z4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},eO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},Ey=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},tO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},nO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Cy=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},rO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},sO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},iO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},aO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},oO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},lO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},cO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},uO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},dO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},pO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},fO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ay=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?mO(n):pO(n);case"ALL_PURPOSE":return t?hO(n):fO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return rE(n);case"DATABRICKS_APPS":return eE(n);case"CLEAN_ROOM":return gO(n);case"AI_PARSE":return tE(n);case"SHUTTERSTOCK_IMAGEAI":return nE(n);case"LAKEFLOW_CONNECT":return xO(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function cs(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([cs("instance-dbu-rates.json"),cs("dbu-multipliers.json"),cs("dbu-rates.json"),cs("dbsql-rates.json"),cs("dbsql-warehouse-config.json"),cs("vector-search-rates.json"),cs("model-serving-rates.json"),cs("fmapi-databricks-rates.json"),cs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),sE()}}function sE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function iE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Lg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function aE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Ty;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},jO="v7",ds=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(ds);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(ds),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(ds),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(ds),null;return t}catch{return localStorage.removeItem(ds),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(ds,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(ds)}catch{}}const Pp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Rp=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Ap=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Dp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Mp=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],ws=rM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"}],cloudProviders:Pp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Rp,dbsqlWarehouseTypes:[],dltEditions:Ap,fmapiProviders:Mp,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tp,vmPaymentOptions:Lp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Dp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:sE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await D4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Sy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await O4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await F4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await $4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await H4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await q4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await W4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]},p=u.workloadTypes||[],f=new Set(p.map(g=>g.workload_type)),h=[...p,...r.workloadTypes.filter(g=>!f.has(g.workload_type))];e({workloadTypes:h.length>0?h:r.workloadTypes,cloudProviders:u.cloudProviders||Pp,dbsqlSizes:u.dbsqlSizes||Rp,dltEditions:u.dltEditions||Ap,fmapiProviders:u.fmapiProviders||Mp,vmPricingTiers:u.vmPricingTiers||Tp,vmPaymentOptions:u.vmPaymentOptions||Lp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Dp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,k,A,S,T,D,$,j,H,X,re,le]=await Promise.all([Q4().catch(()=>r.workloadTypes),X4().catch(()=>Pp),J4().catch(()=>Rp),Z4().catch(()=>Ap),eO().catch(()=>Mp),cO().catch(()=>Tp),uO().catch(()=>Lp),iO().catch(()=>null),oO().catch(()=>null),Py().catch(()=>Dp),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),sO(s).catch(()=>[]),aO(s).catch(()=>[]),Ey().catch(()=>[]),Cy().catch(()=>[]),Nm().catch(()=>[])]),he={aws:A,azure:S,gcp:T},xe=A,oe={};j.forEach(se=>{const pe=`${se.model}:${se.rate_type}`;oe[pe]=se});const F={};H.forEach(se=>{const pe=`${se.provider}:${se.model}:${se.rate_type}`;F[pe]=se});const Q=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Q.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,vectorSearchModes:$,fmapiDatabricksRates:oe,fmapiProprietaryRates:F,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await Y4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Ey();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Cy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await lO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=nO({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Lg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await HS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ay(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ay(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await rE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await eE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"AI_PARSE":c=await tE({...l,mode:"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1});break;case"SHUTTERSTOCK_IMAGEAI":c=await nE({...l,images_per_month:n.shutterstock_images||100});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function Ly(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function oE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Rm(e){return e.toLowerCase()}class Yn{constructor(t,n){this.attribute=n,this.property=t}}Yn.prototype.attribute="";Yn.prototype.booleanish=!1;Yn.prototype.boolean=!1;Yn.prototype.commaOrSpaceSeparated=!1;Yn.prototype.commaSeparated=!1;Yn.prototype.defined=!1;Yn.prototype.mustUseProperty=!1;Yn.prototype.number=!1;Yn.prototype.overloadedBoolean=!1;Yn.prototype.property="";Yn.prototype.spaceSeparated=!1;Yn.prototype.space=void 0;let BO=0;const Ue=Wi(),Xt=Wi(),Am=Wi(),ne=Wi(),_t=Wi(),_a=Wi(),nr=Wi();function Wi(){return 2**++BO}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ue,booleanish:Xt,commaOrSpaceSeparated:nr,commaSeparated:_a,number:ne,overloadedBoolean:Am,spaceSeparated:_t},Symbol.toStringTag,{value:"Module"})),Op=Object.keys(Tm);class Dg extends Yn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Dg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=oE([lE,FO,dE,pE,fE],"html"),Mg=oE([lE,UO,dE,pE,fE],"svg");function KO(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,By="/",Fy="*",Ei="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(By!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;Ei!=e.charAt(v)&&(Fy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,Ei===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:Uy(v[0].replace(Iy,Ei)),value:b?Uy(b[0].replace(Iy,Ei)):Ei});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(tI,Ei):Ei}var aI=iI,oI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,Vy):e=e.replace(fI,Vy),e.replace(dI,gI))};Sd.camelCase=xI;var vI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Og),_I=Sd;function Lm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Lm.default=Lm;var bI=Lm;const wI=qu(bI),mE=hE("end"),Ig=hE("start");function hE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Ig(e),n=mE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),gE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=xE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function xE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=yE(e,t.tagName,!1),a=II(e,t);let l=Ug(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:yE(e,t.name,!0),a=BI(e,t),l=Ug(e,t);return vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Fg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function vE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=FI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function BI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(lr(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function bE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=pi(/[A-Za-z]/),Nn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function gt(e){return e!==null&&(e<0||e===32)}function Ge(e){return e===-2||e===-1||e===32}const Ed=pi(new RegExp("\\p{P}|\\p{S}","u")),Vi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Je(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return Ge(c)?(e.enter(n),l(c)):t(c)}function l(c){return Ge(c)&&i++a))return;const T=t.events.length;let D=T,$,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if($){j=t.events[D][1].end;break}$=!0}for(x(r),S=T;S_;){const A=n[k];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tB(e,t,n){return Je(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||gt(e)||Vi(e))return 1;if(Ed(e))return 2}function Cd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Ky(p,-c),Ky(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,Cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,lr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&Ge(S)?Je(e,y,"linePrefix",i+1)(S):y(S)}function y(S){return S===null||Ne(S)?e.check(Qy,v,k)(S):(e.enter("codeFlowValue"),_(S))}function _(S){return S===null||Ne(S)?(e.exit("codeFlowValue"),y(S)):(e.consume(S),_)}function k(S){return e.exit("codeFenced"),t(S)}function A(S,T,D){let $=0;return j;function j(he){return S.enter("lineEnding"),S.consume(he),S.exit("lineEnding"),H}function H(he){return S.enter("codeFencedFence"),Ge(he)?Je(S,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(he):X(he)}function X(he){return he===l?(S.enter("codeFencedFenceSequence"),re(he)):D(he)}function re(he){return he===l?($++,S.consume(he),re):$>=a?(S.exit("codeFencedFenceSequence"),Ge(he)?Je(S,le,"whitespace")(he):le(he)):D(he)}function le(he){return he===null||Ne(he)?(S.exit("codeFencedFence"),T(he)):D(he)}}}function fB(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hB},mB={partial:!0,tokenize:gB};function hB(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Je(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mB,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gB(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Je(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xB={name:"codeText",previous:yB,resolve:vB,tokenize:_B};function vB(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function jE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||gt(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!Ge(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function PE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Je(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ge(s)?Je(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NB={name:"definition",tokenize:RB},PB={partial:!0,tokenize:AB};function RB(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return NE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return gt(h)?Do(e,u)(h):u(h)}function u(h){return jE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PB,p,p)(h)}function p(h){return Ge(h)?Je(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AB(e,t,n){return r;function r(l){return gt(l)?Do(e,s)(l):n(l)}function s(l){return PE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Ge(l)?Je(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TB={name:"hardBreakEscape",tokenize:LB};function LB(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DB={name:"headingAtx",resolve:MB,tokenize:OB};function MB(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},lr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OB(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||gt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):Ge(d)?Je(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||gt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IB=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],BB={concrete:!0,name:"htmlFlow",resolveTo:VB,tokenize:zB},FB={partial:!0,tokenize:HB},UB={partial:!0,tokenize:$B};function VB(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zB(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):On(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const ke="CDATA[";return L===ke.charCodeAt(l++)?(e.consume(L),l===ke.length?r.interrupt?t:X:g):n(L)}function v(L){return On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||gt(L)){const ke=L===47,De=a.toLowerCase();return!ke&&!i&&Xy.includes(De)?(s=1,r.interrupt?t(L):X(L)):IB.includes(a.toLowerCase())?(s=6,ke?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return Ge(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||On(L)?(e.consume(L),k):Ge(L)?(e.consume(L),_):j(L)}function k(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),k):A(L)}function A(L){return L===61?(e.consume(L),S):Ge(L)?(e.consume(L),A):_(L)}function S(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):Ge(L)?(e.consume(L),S):D(L)}function T(L){return L===c?(e.consume(L),c=null,$):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||gt(L)?A(L):(e.consume(L),D)}function $(L){return L===47||L===62||Ge(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):Ge(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Q):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(FB,pe,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UB,le,pe)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),he}function he(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",F):X(L)}function F(L){if(L===62){const ke=a.toLowerCase();return Xy.includes(ke)?(e.consume(L),se):X(L)}return On(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),F):X(L)}function Q(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),se)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $B(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HB(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qB={name:"htmlText",tokenize:WB};function WB(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):On(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):On(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),k):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function k(N){return N===62?xe(N):_(N)}function A(N){return On(N)?(e.consume(N),S):n(N)}function S(N){return N===45||Nn(N)?(e.consume(N),S):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):Ge(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||gt(N)?$(N):n(N)}function $(N){return N===47?(e.consume(N),xe):N===58||N===95||On(N)?(e.consume(N),j):Ne(N)?(a=$,oe(N)):Ge(N)?(e.consume(N),$):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):Ge(N)?(e.consume(N),H):$(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):Ge(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,he):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||gt(N)?$(N):(e.consume(N),le)}function he(N){return N===47||N===62||gt(N)?$(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),F}function F(N){return Ge(N)?Je(e,Q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Q(N)}function Q(N){return e.enter("htmlTextData"),a(N)}}const $g={name:"labelEnd",resolveAll:YB,resolveTo:XB,tokenize:JB},GB={tokenize:ZB},KB={tokenize:eF},QB={tokenize:tF};function YB(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),Ge(u)?Je(e,l,"whitespace")(u):l(u))}}const zn={continuation:{tokenize:dF},exit:fF,name:"list",tokenize:uF},lF={partial:!0,tokenize:mF},cF={partial:!0,tokenize:pF};function uF(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lF,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return Ge(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dF(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Je(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Ge(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cF,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Je(e,e.attempt(zn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pF(e,t,n){const r=this;return Je(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fF(e){e.exit(this.containerState.type)}function mF(e,t,n){const r=this;return Je(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ge(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:hF,tokenize:gF};function hF(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gF(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Ge(u)?Je(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xF={tokenize:vF};function vF(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Je(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kB,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yF={resolveAll:AE()},_F=RE("string"),bF=RE("text");function RE(e){return{resolveAll:AE(e==="text"?wF:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MF(e,t){let n=-1;const r=[];let s;for(;++n0){const Ve=G.tokenStack[G.tokenStack.length-1];(Ve[1]||e_).call(G,void 0,Ve[0])}for(B.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QF(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YF(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XF(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JF(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZF(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function DE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):ME(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=mE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WF,break:GF,code:KF,delete:QF,emphasis:YF,footnoteReference:XF,heading:JF,html:ZF,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const OE=-1,jd=0,Mo=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,IE=7,BE=8,s_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case jd:case OE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case Hg:return n(new Date(a),s);case qg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case IE:{const{name:l,message:c}=a;return n(new s_[l](c),s)}case BE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new s_[i](a),s)};return r},i_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Ou,Ki];case"Date":return[Hg,Ki];case"RegExp":return[qg,Ki];case"Map":return[Wg,Ki];case"Set":return[Gg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[IE,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case jd:{let d=a;switch(c){case"bigint":l=BE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([OE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Ou:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!yc(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case Hg:return s([l,a.toISOString()],a);case qg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Wg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(yc(uo(f))||yc(uo(h))))&&d.push([i(f),i(h)]);return p}case Gg:{const d=[],p=s([l,d],a);for(const f of a)(e||!yc(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(a_(e,t)):structuredClone(e):(e,t)=>i_(a_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return N6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=FE,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function o_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function F6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,VE=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):VE.call(t)==="[object Array]"},f_=function(t){if(!t||VE.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Wr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Fm(v)&&Fm(h)&&(h=Up(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Qg().freeze();function Hp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Fm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return rU(e)?e:new zE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return nU().use(qF).use(n).use(F6,r).use(t)}function dU(e){const t=e.children||"",n=new zE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Kg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Ip)if(Object.hasOwn(Ip,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ip[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Nd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:S}:void 0),S===!1?f.lastIndex=k+1:(g!==k&&y.push({type:"text",value:u.value.slice(g,k)}),Array.isArray(S)?y.push(...S):S&&y.push(S),g=k+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function $E(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Vi(n)||Ed(n))&&(!t||n!==47)}HE.peek=FU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function BU(e){this.exit(e)}function FU(){return"["}function HE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:BU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?qE:zU))),u(),c}}function zU(e,t,n){return t===0?e:qE(e,t,n)}function qE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];WE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:WE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function WE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GE.peek=l7;function GE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}KE.peek=d7;function KE(e){return e.value||""}function d7(){return"<"}QE.peek=p7;function QE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}YE.peek=f7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}XE.peek=m7;function XE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}ZE.peek=h7;function ZE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(JE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return JE(e,n)?"<":"["}eC.peek=g7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Xg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),tC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nC.peek=C7;function nC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(tC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rC={blockquote:JU,break:S_,code:s7,definition:a7,emphasis:GE,hardBreak:S_,heading:u7,html:KE,image:QE,imageReference:YE,inlineCode:XE,link:ZE,linkReference:eC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:nC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:E_,tableHeader:E_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Yp,tableHeader:Yp,tableRow:Yp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Yp(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||gt(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return gt(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||gt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return gt(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Je(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Je(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?S:c;return re===S&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):Ge(j)?Je(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||gt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,Ge(j)?Je(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return Ge(j)?Je(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?k(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return Ge(j)?Je(e,k,"whitespace")(j):k(j)}function k(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function S(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):Ge(j)?Je(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||gt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?$:D)}function $(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return gt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):Ge(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Je(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return bE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[k,A]=m.useState([]),[S,T]=m.useState([]),[D,$]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,he]=m.useState(!1),[xe,oe]=m.useState(380),[F,Q]=m.useState(!1),[N,se]=m.useState(!0),[pe,L]=m.useState(null),[ke,De]=m.useState(""),[w,Y]=m.useState(null),ue=l??xe,_e=c??oe,ve=m.useRef(null),ot=m.useRef(null),Ze=m.useRef(null),I=m.useRef(null),st=m.useRef(null),xt=m.useRef(!1),lt=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,$e=a[Te];$e!=null&&$e.total&&(U+=$e.total)}),U},[a,i]),mt=m.useCallback(U=>{U.preventDefault(),Q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!F)return;const $e=window.innerWidth-Te.clientX,K=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,$e),K))},Z=()=>{Q(!1)};return F&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[F]);const W=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;xt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(xt.current=!1)},[g]);const E=m.useCallback(()=>{const U=ot.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;xt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Ze.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),q=m.useCallback((U,Z)=>{L(U),De(Z)},[]),Se=m.useCallback(()=>{L(null),De("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),Y(U),setTimeout(()=>Y(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,B]=m.useState(null),[G,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!ke.trim()||d.findIndex(K=>K.id===U)===-1)return;const Te=ke.trim();if(T([]),L(null),De(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const $e={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([$e]),B(Te),ae(!0)},[ke,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,lt,ie]);const Ve=m.useCallback(async(U,Z)=>{var ut;const Te=U||f.trim();if(!Te||g)return;const $e={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(nt=>[...nt,$e]),h(""),v(!0),re(null);const K=`assistant-${Date.now()}`;p(nt=>[...nt,{id:K,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const nt=(i||k||[]).map(Ie=>{const Me=Ie.line_item_id||Ie.item_id||Ie.draft_id,Re=a==null?void 0:a[Me];return{...Ie,total_cost:(Re==null?void 0:Re.total)||Ie.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Ie.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Ie.vm_cost||0}}),Bt=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:$e.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:nt,mode:u,stream:!0}),signal:I.current.signal});if(!Bt.ok)throw new Error(`HTTP ${Bt.status}: ${Bt.statusText}`);const ft=(ut=Bt.body)==null?void 0:ut.getReader();if(!ft)throw new Error("No response body");const vt=new TextDecoder;let Ct="",ht="",ze=[];for(;;){const{done:Ie,value:Me}=await ft.read();if(Ie)break;Ct+=vt.decode(Me,{stream:!0});const Re=Ct.split(` +`);Ct=Re.pop()||"";for(const Yt of Re)if(Yt.startsWith("data: ")){const jt=Yt.slice(6);if(jt==="[DONE]")continue;try{const Ee=JSON.parse(jt);if(Ee.type==="start")x(Ee.conversation_id);else if(Ee.type==="content")ht+=Ee.content,p(Nt=>Nt.map(Le=>Le.id===K?{...Le,content:ht,isThinking:!1}:Le));else if(Ee.type==="tool_result")ze.push({tool:Ee.tool,result:Ee.result});else if(Ee.type==="proposal")Ee.workload&&Ee.workload.proposal_id&&T(Nt=>Nt.some(Jn=>Jn.proposal_id===Ee.workload.proposal_id)?Nt:[...Nt,Ee.workload]);else if(Ee.type==="done")ht.includes("Error getting response")||ht.includes("AI service error")||(Ee.estimate&&_(Ee.estimate),Ee.workloads&&A(Ee.workloads),Ee.proposed_workloads&&Ee.proposed_workloads.length>0&&T(Ee.proposed_workloads));else if(Ee.type==="error")throw new Error(Ee.content)}catch{}}}p(Ie=>Ie.map(Me=>Me.id===K?{...Me,content:ht,isStreaming:!1,toolResults:ze}:Me))}catch(nt){if(nt.name==="AbortError")return;console.error("Chat error:",nt),re(nt.message||"Failed to get response"),p(Bt=>Bt.filter(ft=>ft.id!==K))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,k,a]);m.useEffect(()=>{O&&!g&&(Ve(O,G),B(null),ae(!1))},[O,G,g,Ve]);const pt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Ve())},it=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ye=async U=>{if(b){$(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T($e=>$e.filter(K=>K.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p($e=>{var K;return[...$e,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(K=Te.workload_config)==null?void 0:K.workload_name}" added to estimate.`,timestamp:new Date}]})}catch($e){p(K=>[...K,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${$e.message||"Database error"}. Please try again.`,timestamp:new Date}]),re($e.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},ct=async U=>{if(b){$(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=S.find($e=>$e.proposal_id===U);T($e=>$e.filter(K=>K.proposal_id!==U)),p($e=>[...$e,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Xe=async()=>{for(const U of S)await Ye(U.proposal_id)},It=async()=>{for(const U of S)await ct(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>he(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx($c,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(fs,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:st,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ue}px)`},children:[o.jsx("div",{onMouseDown:mt,className:de("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",F&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ms,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:it,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(KD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(OD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),S.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ty,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[S.length," Proposed Workload",S.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(sr,{className:"w-4 h-4 text-amber-600"}):o.jsx(fs,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Xe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",S.length,")"]}),o.jsx("button",{onClick:It,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:S.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:de("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ye(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Au,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:ot,onScroll:E,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:de("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:de("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:ke,onChange:Z=>De(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:de("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var $e;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[($e=Z.result)!=null&&$e.success?o.jsx(Au,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:de("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:de("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(wD,{className:"w-3.5 h-3.5"}):o.jsx(SD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>q(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(n3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:it,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(fs,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Ve(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Ze,value:f,onChange:W,onKeyDown:pt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Ve(),disabled:!g&&!f.trim(),className:de("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(dS,{className:"w-4 h-4"}):o.jsx(JD,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:o3}],N_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Xp=[{value:"light",label:"Light",icon:y3},{value:"dark",label:"Dark",icon:YD},{value:"system",label:"System",icon:PD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=R3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),k=m.useRef(null),{currentUser:A,isAuthenticated:S,authError:T,fetchCurrentUser:D,currentEstimate:$,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:he,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:F}=ws(),Q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Q||N,pe=m.useCallback(()=>{L4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const Y=ue=>{var _e;console.log("Session expired event received:",ue.detail),g(((_e=ue.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(Cm,Y),()=>{window.removeEventListener(Cm,Y)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),ke=m.useCallback(()=>{a(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||he(),F||xe()},[he,xe,oe,F]),m.useEffect(()=>{const Y=ue=>{_.current&&!_.current.contains(ue.target)&&s(!1),k.current&&!k.current.contains(ue.target)&&a(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Xp.find(Y=>Y.value===t)||Xp[2],w=De.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(N_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(N_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(Y=>{const ue=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return o.jsxs(bu,{to:Y.href,className:de("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ue&&"border"),style:ue?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(Y.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),S&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(S3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),o.jsx(sr,{className:de("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Xp.map(Y=>{const ue=Y.icon,_e=t===Y.value;return o.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ue,{className:"w-4 h-4"}),o.jsx("span",{children:Y.label})]},Y.value)})})]}),o.jsxs("div",{className:"relative",ref:k,children:[o.jsxs("button",{onClick:ke,className:de("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(u3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(nm,{children:i&&o.jsxs($t.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(BD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(_m,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx($t.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(EN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Q?$:void 0,currentWorkloads:Q?j:void 0,itemCosts:Q?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Q?async Y=>{if($!=null&&$.estimate_id)try{await X({estimate_id:$.estimate_id,...Y}),re($.estimate_id),We.success(`Workload "${Y.workload_name}" added!`)}catch(ue){throw We.error(ue.message||"Failed to add workload"),ue}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(nm,{children:p&&o.jsx($t.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs($t.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(ms,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Xn(e){var t,n;return e?Ga(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Xn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Xn(e).HTMLElement}function pC(e){return e instanceof Xn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:Zg(e)?ex(e)?e:Dl(e)||pC(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Fu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Jp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Jp[e]==null?0:Jp[e]+1;return Jp[e]=n,e+"-"+n},[e,t])}function fC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=fC(1),Uu=fC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Xn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Xn(e.target);return t&&e instanceof t}function $m(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(P_)?e:e.querySelector(P_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const mC=m.createContext(null);function OV(e){const t=m.useContext(mC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const BV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},FV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=FV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=BV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function hC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const gC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(R_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function xC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Xn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function A_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Xn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Xn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||pC(s)||n.includes(s))return n;const i=Xn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function vC(e){const[t]=rx(e,1);return t??null}function Zp(e){return!Rd||!e?null:Ga(e)?e:Zg(e)?ex(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function yC(e){return Ga(e)?e.scrollX:e.scrollLeft}function _C(e){return Ga(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:yC(e),y:_C(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function bC(e){return!Rd||!e?!1:e===document.scrollingElement}function wC(e){const t={x:0,y:0},n=bC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=wC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function kC(e){return e.reduce((t,n)=>ba(t,Hm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+yC(n),0)}function az(e){return e.reduce((t,n)=>t+_C(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);vC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=kC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Xn(e);return e instanceof t?e:Ka(e)}function ef(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function T_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var rt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(rt||(rt={}));const SC={start:[rt.Space,rt.Enter],cancel:[rt.Esc],end:[rt.Space,rt.Enter,rt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case rt.Right:return{...n,x:n.x+25};case rt.Left:return{...n,x:n.x-25};case rt.Down:return{...n,y:n.y+25};case rt.Up:return{...n,y:n.y-25}}};class Ad{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Xn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=SC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Uu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:k,maxScroll:A,minScroll:S}=wC(v),T=sz(v),D={x:Math.min(b===rt.Right?T.right-T.width/2:T.right,Math.max(b===rt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===rt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===rt.Down?T.top:T.top+T.height/2,p.y))},$=b===rt.Right&&!y||b===rt.Left&&!_,j=b===rt.Down&&!k||b===rt.Up&&!x;if($&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===rt.Right&&H<=A.x||b===rt.Left&&H>=S.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===rt.Right?v.scrollLeft-A.x:v.scrollLeft-S.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===rt.Down&&H<=A.y||b===rt.Up&&H>=S.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===rt.Down?v.scrollTop-A.y:v.scrollTop-S.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Uu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ad.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=SC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function L_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Xn(a)),this.initialCoordinates=(s=$m(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,T_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,T_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(L_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Fr,u=Uu(s,c);if(!r&&l){if(L_(l)){if(l.tolerance!=null&&ef(u,l.tolerance))return this.handleCancel();if(ef(u,l.distance))return this.handleStart()}if(D_(l)&&ef(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Td extends ix{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Td.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class mz extends ix{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const tf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ix{constructor(t){super(t,tf)}static setup(){return window.addEventListener(tf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),k=m.useCallback(()=>{const S=_.current;if(!S)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;S.scrollBy(T,D)},[]),A=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const S of A){if((r==null?void 0:r(S))===!1)continue;const T=u.indexOf(S),D=d[T];if(!D)continue;const{direction:$,speed:j}=rz(S,D,y,t,f);for(const H of["x","y"])h[H][$[H]]||(j[H]=0,$[H]=0);if(j.x>0||j.y>0){v(),_.current=S,g(k,a),b.current=j,x.current=$;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,k,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const k=_.node.current,A=k?new sx(c(k),k):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function EC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return EC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ld(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new sx(Qa(e),e)}function O_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Ld({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=EC(e);return xC(e,t)}const I_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=Zp(i.target);a&&n(l=>l?(l.set(a,Hm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=Zp(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=Zp(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):kC(e):Fr,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function CC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const F_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=CC(n?Xn(n):null),[s,i]=m.useState(F_);function a(){i(()=>e.length?e.map(c=>bC(c)?r:new sx(t(c),c)):F_)}const l=Ld({callback:a});return es(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Ld({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Fu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Td,options:{}},{sensor:Ad,options:{}}],Dz={current:{}},Qc={draggable:{measure:A_},droppable:{measure:A_,strategy:fl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Qa}};class Bo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Bo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Oz),jC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Bo}}}function Bz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Bo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Bo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Bo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Fz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),a=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=xC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=vC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const NC=m.createContext({...Fr,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const PC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Bz,void 0,Iz),[b,x]=v,[y,_]=IV(),[k,A]=m.useState(Us.Uninitialized),S=k===Us.Initialized,{draggable:{active:T,nodes:D,translate:$},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var K;return T!=null?{id:T,data:(K=H==null?void 0:H.data)!=null?K:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[he,xe]=m.useState(null),[oe,F]=m.useState(null),Q=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:ke,measuringScheduled:De}=bz(se,{dragging:S,dependencies:[$.x,$.y],config:pe.droppable}),w=yz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ue=$e(),_e=wz(w,pe.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ue.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Ze=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Ze.current.over)==null?void 0:n.id),st=Tz({measure:pe.dragOverlay.measure}),xt=(r=st.nodeRef.current)!=null?r:w,lt=S?(s=st.rect)!=null?s:ve:null,mt=!!(st.nodeRef.current&&st.rect),W=Ez(mt?null:ve),P=CC(xt?Xn(xt):null),E=Cz(S?I??w:null),ie=Rz(E),M=Uz(h,{transform:{x:$.x-W.x,y:$.y-W.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:ot,draggingNodeRect:lt,over:Ze.current.over,overlayNodeRect:st.rect,scrollableAncestors:E,scrollableAncestorRects:ie,windowRect:P}),q=Y?ba(Y,$):null,Se=jz(E),Pe=B_(Se),O=B_(Se,[ve]),B=ba(M,Pe),G=lt?QV(lt,M):null,ae=re&&G?p({active:re,collisionRect:G,droppableRects:L,droppableContainers:se,pointerCoordinates:q}):null,je=HV(ae,"id"),[Ve,pt]=m.useState(null),it=mt?M:ba(M,O),Ye=GV(it,(i=Ve==null?void 0:Ve.rect)!=null?i:null,ve),ct=m.useRef(null),Xe=m.useCallback((K,ut)=>{let{sensor:nt,options:Bt}=ut;if(le.current==null)return;const ft=D.get(le.current);if(!ft)return;const vt=K.nativeEvent,Ct=new nt({active:le.current,activeNode:ft,event:vt,options:Bt,context:Ze,onAbort(ze){if(!D.get(ze))return;const{onDragAbort:Me}=Q.current,Re={id:ze};Me==null||Me(Re),y({type:"onDragAbort",event:Re})},onPending(ze,Ie,Me,Re){if(!D.get(ze))return;const{onDragPending:jt}=Q.current,Ee={id:ze,constraint:Ie,initialCoordinates:Me,offset:Re};jt==null||jt(Ee),y({type:"onDragPending",event:Ee})},onStart(ze){const Ie=le.current;if(Ie==null)return;const Me=D.get(Ie);if(!Me)return;const{onDragStart:Re}=Q.current,Yt={activatorEvent:vt,active:{id:Ie,data:Me.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Yt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:ze,active:Ie}),y({type:"onDragStart",event:Yt}),xe(ct.current),F(vt)})},onMove(ze){x({type:sn.DragMove,coordinates:ze})},onEnd:ht(sn.DragEnd),onCancel:ht(sn.DragCancel)});ct.current=Ct;function ht(ze){return async function(){const{active:Me,collisions:Re,over:Yt,scrollAdjustedTranslate:jt}=Ze.current;let Ee=null;if(Me&&jt){const{cancelDrop:Nt}=Q.current;Ee={activatorEvent:vt,active:Me,collisions:Re,delta:jt,over:Yt},ze===sn.DragEnd&&typeof Nt=="function"&&await Promise.resolve(Nt(Ee))&&(ze=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:ze}),A(Us.Uninitialized),pt(null),xe(null),F(null),ct.current=null;const Nt=ze===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const Le=Q.current[Nt];Le==null||Le(Ee),y({type:Nt,event:Ee})}})}}},[D]),It=m.useCallback((K,ut)=>(nt,Bt)=>{const ft=nt.nativeEvent,vt=D.get(Bt);if(le.current!==null||!vt||ft.dndKit||ft.defaultPrevented)return;const Ct={active:vt};K(nt,ut.options,Ct)===!0&&(ft.dndKit={capturedBy:ut.sensor},le.current=Bt,Xe(nt,ut))},[D,Xe]),U=_z(d,It);Nz(d),es(()=>{ve&&k===Us.Initializing&&A(Us.Initialized)},[ve,k]),m.useEffect(()=>{const{onDragMove:K}=Q.current,{active:ut,activatorEvent:nt,collisions:Bt,over:ft}=Ze.current;if(!ut||!nt)return;const vt={active:ut,activatorEvent:nt,collisions:Bt,delta:{x:B.x,y:B.y},over:ft};la.unstable_batchedUpdates(()=>{K==null||K(vt),y({type:"onDragMove",event:vt})})},[B.x,B.y]),m.useEffect(()=>{const{active:K,activatorEvent:ut,collisions:nt,droppableContainers:Bt,scrollAdjustedTranslate:ft}=Ze.current;if(!K||le.current==null||!ut||!ft)return;const{onDragOver:vt}=Q.current,Ct=Bt.get(je),ht=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,ze={active:K,activatorEvent:ut,collisions:nt,delta:{x:ft.x,y:ft.y},over:ht};la.unstable_batchedUpdates(()=>{pt(ht),vt==null||vt(ze),y({type:"onDragOver",event:ze})})},[je]),es(()=>{Ze.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:G,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:xt,draggingNodeRect:lt,droppableContainers:j,over:Ve,scrollableAncestors:E,scrollAdjustedTranslate:B},X.current={initial:lt,translated:G}},[re,w,ae,G,D,xt,lt,L,j,Ve,E,B]),gz({...ue,delta:$,draggingRect:G,pointerCoordinates:q,scrollableAncestors:E,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:ot,dragOverlay:st,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Ve,measureDroppableContainers:ke,scrollableAncestors:E,scrollableAncestorRects:ie,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ve,oe,ae,ot,st,D,j,L,Ve,ke,E,ie,pe,De,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Ve,measureDroppableContainers:ke}),[oe,U,re,ve,x,N,D,Ve,ke]);return pn.createElement(mC.Provider,{value:_},pn.createElement(Dd.Provider,{value:Te},pn.createElement(jC.Provider,{value:Z},pn.createElement(NC.Provider,{value:Ye},u)),pn.createElement(Fz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function $e(){const K=(he==null?void 0:he.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,nt=S&&!K&&!ut;return typeof c=="object"?{...c,enabled:nt}:{enabled:nt}}}),$z=m.createContext(null),U_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?NC:$z),[y,_]=Fu(),[k,A]=Fu(),S=Pz(a,t),T=pl(n);es(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:k,data:T}),()=>{const $=p.get(t);$&&$.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:S,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(jC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ld({callback:y,disabled:g||!a}),k=m.useCallback((D,$)=>{_&&($&&(_.unobserve($),p.current=!1),D&&_.observe(D))},[_]),[A,S]=Fu(k),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:S}}function ax(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ax(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Sc={scaleX:1,scaleY:1},AC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Sc}:s=a?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,k=Jz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:k,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,k.draggable,k.droppable,_,h,b,c,f,s]);return pn.createElement(LC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ax(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},MC="transform",r8=Oa.Transition.toString({property:MC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function OC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(LC),_=a8(r,h),k=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:k,items:d},...s}),[p,s,k,d]),S=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:$,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:he,listeners:xe,isDragging:oe,over:F,setActivatorNodeRef:Q,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,he),pe=!!H,L=pe&&!g&&kc(f)&&kc(b),ke=!x&&oe,De=ke&&L?N:null,Y=L?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:k}):null,ue=kc(f)&&kc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):k,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ue,containerId:p}),ot=d!==ve.current.items,Ze=t({active:H,containerId:p,isDragging:oe,isSorting:pe,id:a,index:k,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Ze,index:k,node:D,rect:T});return m.useEffect(()=>{pe&&ve.current.newIndex!==ue&&(ve.current.newIndex=ue),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,ue,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const xt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(xt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:k,newIndex:ue,items:d,isOver:$,isSorting:pe,isDragging:oe,listeners:xe,node:D,overIndex:b,over:F,setNodeRef:se,setActivatorNodeRef:Q,setDroppableNodeRef:j,setDraggableNodeRef:he,transform:I??Y,transition:st()};function st(){if(I||ot&&ve.current.newIndex===k)return r8;if(!(ke&&!nx(X)||!u)&&(pe||Ze))return Oa.Transition.toString({...u,property:MC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}rt.Down,rt.Right,rt.Up,rt.Left;const IC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var BC={exports:{}};(function(e,t){(function(n,r){r()})(hs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof hs=="object"&&hs.global===hs?hs:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(BC);var Gm=BC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Ec={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=ws(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[k,A]=m.useState(new Set),[S,T]=m.useState(!1),[D,$]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,he]=m.useState(null),[xe,oe]=m.useState(!1),[F,Q]=m.useState(!1),N=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),We.success("Refreshed")},[r]),pe=m.useMemo(()=>{const W=t.length,P=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="aws"}).length,E=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="gcp"}).length;return{all:W,aws:P,azure:E,gcp:ie}},[t]),L=m.useMemo(()=>{const W=t.reduce((P,E)=>P+(E.line_item_count||0),0);return{estimates:t.length,workloads:W}},[t]),ke=m.useMemo(()=>{const W=new Set;return t.forEach(P=>{P.customer_name&&W.add(P.customer_name)}),Array.from(W).sort()},[t]),De=m.useMemo(()=>{const W={all:t.length};return t.forEach(P=>{P.customer_name&&(W[P.customer_name]=(W[P.customer_name]||0)+1)}),W},[t]),w=m.useMemo(()=>{let W=[...t];if(c){const P=c.toLowerCase();W=W.filter(E=>{var ie;return E.estimate_name.toLowerCase().includes(P)||((ie=E.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(W=W.filter(P=>{var E;return((E=P.cloud)==null?void 0:E.toLowerCase())===f})),b!=="all"&&(W=W.filter(P=>P.customer_name===b)),g){case"updated":W.sort((P,E)=>new Date(E.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":W.sort((P,E)=>P.estimate_name.localeCompare(E.estimate_name));break;case"workloads":W.sort((P,E)=>(E.line_item_count||0)-(P.line_item_count||0));break;case"display_order":W.sort((P,E)=>(P.display_order??0)-(E.display_order??0));break}return W},[t,c,f,g,b]),Y=m.useCallback(async W=>{const{active:P,over:E}=W;if(!E||P.id===E.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===E.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const q=ax(w,ie,M),{estimates:Se}=ws.getState(),Pe=Se.map(O=>{const B=q.findIndex(G=>G.estimate_id===O.estimate_id);return B>=0?{...O,display_order:B}:O});ws.setState({estimates:Pe});try{await K4(q.map(O=>O.estimate_id))}catch{We.error("Failed to save reorder")}},[w,g]),ue=(W,P,E)=>{W.stopPropagation(),he({id:P,name:E}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),We.success("Estimate deleted")}catch{We.error("Failed to delete")}finally{oe(!1),re(!1),he(null)}}},ve=async(W,P)=>{W.stopPropagation();try{const E=await i(P);We.success("Estimate duplicated"),e(`/calculator/${E.estimate_id}`)}catch{We.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const W=await dO();Gm.saveAs(W,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),We.success("Exported successfully")}catch{We.error("Export failed")}finally{l(!1)}},Ze=()=>{k.size===w.length?A(new Set):A(new Set(w.map(W=>W.estimate_id)))},I=(W,P)=>{P.stopPropagation();const E=new Set(k);E.has(W)?E.delete(W):E.add(W),A(E)},st=()=>{k.size!==0&&Q(!0)},xt=async()=>{$(!0);let W=0,P=0;for(const E of k)try{await s(E),W++}catch{P++}$(!1),A(new Set),Q(!1),P===0?We.success(`Deleted ${W} estimate(s)`):We.error(`Deleted ${W}, failed ${P}`)},lt=async()=>{if(k.size===0)return;H(!0);let W=0;for(const P of k)try{const E=t.find(ie=>ie.estimate_id===P);if(E){const ie=await qS(P);Gm.saveAs(ie,`${E.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),W++}}catch{}H(!1),We.success(`Exported ${W} estimate(s)`)},mt=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ny,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Ng,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Qr,{className:de("w-5 h-5",d&&"animate-spin")})}),S?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[k.size," selected"]}),o.jsxs("button",{onClick:lt,disabled:k.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:st,disabled:k.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:mt,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:ot,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),ke.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(pD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?ke.length:De[b]||0}),o.jsx(sr,{className:de("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(nm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs($t.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:ke.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),ke.map(W=>o.jsxs("button",{onClick:()=>{x(W),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===W?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===W?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:W,children:W}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:De[W]||0}),b===W&&o.jsx(Gs,{className:"w-4 h-4"})]})]},W))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:W=>u(W.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(W=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},W))})}):w.length===0?o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Ze,className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:k.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:de(S?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(PC,{sensors:N,collisionDetection:gC,onDragEnd:Y,modifiers:[IC],children:o.jsx(DC,{items:w.map(W=>W.estimate_id),strategy:AC,children:w.map((W,P)=>{const E=k.has(W.estimate_id);return o.jsx(o8,{id:W.estimate_id,children:o.jsxs($t.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!S&&e(`/calculator/${W.estimate_id}`),className:de("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!S&&"cursor-pointer hover:bg-[var(--bg-hover)]",E&&"bg-blue-500/5"),children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(W.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",E?"bg-blue-500 border-blue-500":"border-gray-400"),children:E&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:de("flex items-center gap-3",S?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(ym,{className:"w-4 h-4",style:{color:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:W.estimate_name,children:W.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:W.customer_name||"",children:W.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:W.customer_name||"",children:W.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:W.cloud&&Tr[W.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[W.cloud.toLowerCase()].bg,color:Tr[W.cloud.toLowerCase()].text},children:Tr[W.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:W.region||W.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[W.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:W.region,children:W.region}),W.tier&&Ec[W.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Ec[W.tier.toLowerCase()].bg,color:Ec[W.tier.toLowerCase()].text},children:Ec[W.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:de("px-2 py-0.5 rounded text-xs font-medium",W.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:W.line_item_count===0?{color:"var(--text-muted)"}:{},children:W.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(W.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!S&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,W.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ue(ie,W.estimate_id,W.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},W.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),he(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),F&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",k.size," Estimate",k.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(W=>k.has(W.estimate_id)).map(W=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",W.estimate_name]},W.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:xt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),k.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[k.size," estimate",k.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:st,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,k=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach($=>{const j=$.group||"Other";T[j]||(T[j]=[]),T[j].push($)}),Object.keys(T).sort(($,j)=>$==="General Purpose"?-1:j==="General Purpose"?1:$.localeCompare(j)).map($=>({name:$,options:T[$]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},S=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:de("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:de("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:de("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:S,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(sr,{className:de("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),k.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const FC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:FC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function nf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var W;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:k,fetchLineItems:A,clearSingleWorkloadCost:S,markItemCalculating:T,fetchVMCostForInstance:D}=ws(),$=m.useRef(!0);m.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,he=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,F={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Q=f&&f.models&&f.models.llm?f:F,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[pe,L]=m.useState(!1),[ke,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ue={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ue),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),FC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?aE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&Y(E=>({...E,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Ze=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!$.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),st=a.length===0,xt=!st&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){We.error("Enter a workload name");return}L(!0);try{const E={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(E.serverless_enabled=w.serverless_enabled,E.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(E.serverless_enabled=!1,E.serverless_mode=null),I!=null&&I.show_compute_config?(E.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,E.driver_node_type=w.driver_node_type||null,E.worker_node_type=w.worker_node_type||null,E.num_workers=w.num_workers,E.driver_pricing_tier=w.driver_pricing_tier||"on_demand",E.worker_pricing_tier=w.worker_pricing_tier||"spot",E.driver_payment_option=w.driver_payment_option||"NA",E.worker_payment_option=w.worker_payment_option||"NA"):(E.photon_enabled=!1,E.driver_node_type=null,E.worker_node_type=null,E.num_workers=null,E.driver_pricing_tier=null,E.worker_pricing_tier=null,E.driver_payment_option=null,E.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?E.dlt_edition=w.dlt_edition:E.dlt_edition=null,I!=null&&I.show_dbsql_config?(E.dbsql_warehouse_type=w.dbsql_warehouse_type,E.dbsql_warehouse_size=w.dbsql_warehouse_size,E.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(E.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,E.dbsql_driver_payment_option=w.dbsql_driver_payment_option,E.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,E.dbsql_worker_payment_option=w.dbsql_worker_payment_option,E.driver_pricing_tier=w.dbsql_driver_pricing_tier,E.driver_payment_option=w.dbsql_driver_payment_option,E.worker_pricing_tier=w.dbsql_worker_pricing_tier,E.worker_payment_option=w.dbsql_worker_payment_option)):(E.dbsql_warehouse_type=null,E.dbsql_warehouse_size=null,E.dbsql_num_clusters=null,E.dbsql_driver_pricing_tier=null,E.dbsql_driver_payment_option=null,E.dbsql_worker_pricing_tier=null,E.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(E.vector_search_mode=w.vector_search_mode,E.vector_capacity_millions=w.vector_capacity_millions,E.vector_search_storage_gb=w.vector_search_storage_gb||0):(E.vector_search_mode=null,E.vector_capacity_millions=null,E.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(E.model_serving_gpu_type=w.model_serving_gpu_type,E.model_serving_scale_out=w.model_serving_scale_out,E.model_serving_concurrency=w.model_serving_concurrency):(E.model_serving_gpu_type=null,E.model_serving_scale_out=null,E.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?E.databricks_apps_size=w.databricks_apps_size:E.databricks_apps_size=null,w.workload_type==="AI_PARSE"?(E.ai_parse_mode="pages",E.ai_parse_complexity=w.ai_parse_complexity,E.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(E.ai_parse_mode=null,E.ai_parse_complexity=null,E.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?E.shutterstock_images=w.shutterstock_images:E.shutterstock_images=null,I!=null&&I.show_lakebase_config?(E.lakebase_cu=w.lakebase_cu,E.lakebase_storage_gb=w.lakebase_storage_gb||0,E.lakebase_ha_nodes=w.lakebase_ha_nodes,E.lakebase_backup_retention_days=w.lakebase_backup_retention_days,E.lakebase_pitr_gb=w.lakebase_pitr_gb||0,E.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(E.lakebase_cu=null,E.lakebase_storage_gb=null,E.lakebase_ha_nodes=null,E.lakebase_backup_retention_days=null,E.lakebase_pitr_gb=null,E.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(E.fmapi_provider=w.fmapi_provider,E.fmapi_model=w.fmapi_model||null,E.fmapi_endpoint_type=w.fmapi_endpoint_type,E.fmapi_context_length=w.fmapi_context_length,E.fmapi_rate_type=w.fmapi_rate_type,E.fmapi_quantity=w.fmapi_quantity):(E.fmapi_provider=null,E.fmapi_model=null,E.fmapi_endpoint_type=null,E.fmapi_context_length=null,E.fmapi_rate_type=null,E.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?ke?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,E.avg_runtime_minutes=w.avg_runtime_minutes,E.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):I!=null&&I.show_fmapi_config?(E.hours_per_month=w.hours_per_month||null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null),t)S(t.line_item_id),T(t.line_item_id),await k(t.line_item_id,E),We.success("Workload updated");else{E.estimate_id=e;const M=await _(E);M!=null&&M.line_item_id&&T(M.line_item_id),We.success("Workload added")}A(e),r==null||r(),n()}catch(E){console.error("Failed to save workload:",E),We.error("Failed to save")}finally{L(!1)}},mt=I==null?void 0:I.show_compute_config;return st?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(E=>({...E,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>Y(E=>({...E,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:de("w-full text-sm",xt&&"border-red-500",Ze&&"border-yellow-500"),children:[Ze&&(()=>{const P=a.find(E=>E.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),xt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Ze&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Ze&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const E=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!E,onChange:()=>!E&&Y(ie=>{const M=!ie.serverless_enabled,q=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:q}}),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>Y(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:he.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:de("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),mt&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(E=>({...E,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(E=>({...E,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(E=>({...E,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(E=>({...E,worker_node_type:E.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:de("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(E=>({...E,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(E=>({...E,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(E=>({...E,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(E=>({...E,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[mt&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>Y(E=>({...E,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const E=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!E;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!E&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(q=>({...q,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(E=>({...E,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(E=>({...E,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,E=P!=null&&P.driver_instance_type?l.find(B=>B.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(B=>B.id===P.worker_instance_type):null,M=(B,G,ae)=>{var Ve,pt,it,Ye,ct,Xe,It;if(!(B!=null&&B.vm_pricing))return null;const je=G.toLowerCase();if(je==="on_demand")return(Ve=B.vm_pricing.on_demand)==null?void 0:Ve.cost_per_hour;if(je==="spot")return(pt=B.vm_pricing.spot)==null?void 0:pt.cost_per_hour;if(je==="reserved_1y"){const U=((it=B.vm_pricing.reserved_1y)==null?void 0:it.find(Z=>Z.payment_option===ae))||((Ye=B.vm_pricing.reserved_1y)==null?void 0:Ye[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((ct=B.vm_pricing.reserved_3y)==null?void 0:ct.find(Z=>Z.payment_option===ae))||((Xe=B.vm_pricing.reserved_3y)==null?void 0:Xe[0]);return U==null?void 0:U.cost_per_hour}return(It=B.vm_pricing.on_demand)==null?void 0:It.cost_per_hour},q=M(E,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),E&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=E.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),q!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",q.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_driver_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:B=>Y(G=>({...G,dbsql_driver_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_worker_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:B=>Y(G=>({...G,dbsql_worker_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(E=>({...E,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(E=>({...E,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(E=>({...E,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(E=>({...E,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const E={small:4,medium:12,large:40},ie=P.target.value;Y(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:E[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const E=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(ie=>({...ie,model_serving_concurrency:E}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(E=>({...E,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(E=>({...E,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const E=P.target.value,ie=z_(x,g||"aws",w.fmapi_provider,E),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";Y(q=>({...q,fmapi_model:E,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(W=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:W.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(E=>({...E,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(E=>({...E,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],E={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],E={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(E=>({...E,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(E=>({...E,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(E=>({...E,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(E=>({...E,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(E=>({...E,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>Y(E=>({...E,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>Y(E=>({...E,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages/Month (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>Y(E=>({...E,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>Y(E=>({...E,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>De(!1),className:de("px-3 py-1 text-xs rounded-l-md border transition-colors",ke?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>De(!0),className:de("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",ke?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!ke&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(E=>({...E,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(E=>({...E,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&w.workload_type!=="DATABRICKS_APPS"&&w.workload_type!=="AI_PARSE"&&w.workload_type!=="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(E=>({...E,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),ke&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>Y(E=>({...E,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:s3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Tu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:sD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:_D,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:qD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:m3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?h8[e]||{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},fe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:fe(e),At=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:de("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:de("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[fe(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:de("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[At(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:k,getInstanceDbuRate:A,vmPricingMap:S,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:$,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:he,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:F,isPricingBundleLoaded:Q,clearEstimateState:N,setLocalCalculatedCosts:se}=ws(),[pe,L]=m.useState(!1),[ke,De]=m.useState(!1),[w,Y]=m.useState(!1),[ue,_e]=m.useState(!1),[ve,ot]=m.useState(!1),[Ze,I]=m.useState(null),[st,xt]=m.useState(!1),[lt,mt]=m.useState(!1),[W,P]=m.useState(!1),[E,ie]=m.useState(!1),[M,q]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,B]=m.useState(!1),[G,ae]=m.useState({}),[je,Ve]=m.useState(!1),[pt,it]=m.useState(!1),[Ye,ct]=m.useState(!1),[Xe,It]=m.useState(!1),[U,Z]=m.useState([]),[Te,$e]=m.useState(!1),[K,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[nt,Bt]=m.useState(!!e),[ft,vt]=m.useState(!1),[Ct,ht]=m.useState(!1),[ze,Ie]=m.useState("table"),[Me,Re]=m.useState("order"),[Yt,jt]=m.useState("asc"),[Ee,Nt]=m.useState(new Set),[Le,Jn]=m.useState(!1),Zn=m.useRef({}),ns=m.useCallback(R=>{const J=Zn.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Zn.current[R]&&(Zn.current[R].style.backgroundColor="")},1500))},[]),Un=m.useCallback(()=>{B(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!K.cloud||!K.region||r.length===0||!Ye)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const V=cl(F,K.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if(V){const ce=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",He=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${V.driver_instance_type}:${ce}:${He}`);const Pt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${V.worker_instance_type}:${Pt}:${Rt}`)}return}if(C.driver_node_type){const V=C.driver_pricing_tier||"on_demand",ce=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${V}:${ce}`)}if(C.worker_node_type){const V=C.worker_pricing_tier||"spot",ce=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${V}:${ce}`)}}});const J=Array.from(R).map(C=>{const[V,ce,He]=C.split(":");return _(K.cloud,K.region,V,ce,He)});if(J.length>0){It(!0);const C=new Promise(V=>setTimeout(V,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>It(!1))}},[K.cloud,K.region,r,Ye,_,F]),m.useEffect(()=>{if(!K.cloud)return;const R=p(K.cloud);if(R.length>0){const J=Q?CO(F,K.cloud):[];if(J.length>0){const C=R.filter(V=>J.includes(V.region_code));Z(C)}else Z(R);$e(!1)}else u?(Z([]),$e(!1)):$e(!0)},[K.cloud,d,u,p,F,Q]),m.useEffect(()=>{(async()=>{if(e){Ve(!0),it(!0),ct(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Ve(!1),it(!1),ct(!0)}}else N(),ct(!1)})()},[e,i,N]);const rs={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(rs),x("aws"),B(!1))},[n,e,x,y]),m.useEffect(()=>{K.cloud&&K.region&&K.tier&&$(K.cloud.toUpperCase(),K.region,K.tier.toUpperCase())},[K.cloud,K.region,K.tier,$]);const ss=!!(K.region&&K.tier),fr=(R,J)=>{const C=J?{...R,...J}:R,V=K.cloud||"aws",ce=K.region,He=Object.keys(D).length>0?D:Q_[V]||Q_.aws,Pt=C.num_workers||0;if(!ce)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let we="";const en=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?we="JOBS_COMPUTE_(PHOTON)":we="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?we="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?we="ALL_PURPOSE_COMPUTE_(PHOTON)":we="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":(we=`DLT_${en}_COMPUTE`,C.photon_enabled&&(we+="_(PHOTON)"));break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Be==="SERVERLESS"?we="SERVERLESS_SQL_COMPUTE":Be==="PRO"?we="SQL_PRO_COMPUTE":we="SQL_COMPUTE";break;case"VECTOR_SEARCH":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const yt=(C.fmapi_provider||"openai").toLowerCase();we=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[yt]||yt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":we="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":we="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"AI_PARSE":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":we="SERVERLESS_REAL_TIME_INFERENCE";break;default:we="JOBS_COMPUTE"}let An=.2;if(Q&&K.tier){const Be=Lg(F,V,ce,K.tier,we);Be>0?An=Be:An=He[we]||.2}else An=He[we]||.2;let be=0,qe=0,Qe=0,Ts,Er,is,te=.5,me=.5;if(Q&&C.driver_node_type){const Be=Pm(F,V,C.driver_node_type);Be>0&&(te=Be)}if(!te||te===.5){const Be=j.find(yt=>yt.id===C.driver_node_type||yt.name===C.driver_node_type);Be!=null&&Be.dbu_rate&&(te=Be.dbu_rate)}if(Q&&C.worker_node_type){const Be=Pm(F,V,C.worker_node_type);Be>0&&(me=Be)}if(!me||me===.5){const Be=j.find(yt=>yt.id===C.worker_node_type||yt.name===C.worker_node_type);Be!=null&&Be.dbu_rate&&(me=Be.dbu_rate)}const Ht=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Be;if(C.serverless_enabled?C.workload_type==="JOBS"?Be="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Be="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Be="DLT_CORE_COMPUTE":Be=we.replace("_(PHOTON)",""):Be=we.replace("_(PHOTON)",""),Q){const tn=iE(F,V,Be);if(tn!==2)return tn}const yt=H.find(tn=>{var bn,mr;return tn.sku_type===Be||((bn=tn.sku_type)==null?void 0:bn.toLowerCase())===Be.toLowerCase()||((mr=tn.sku_type)==null?void 0:mr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(yt==null?void 0:yt.multiplier)||2})(),mi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Pt)*Ht*mi;else{be=(te+me*Pt)*Ht;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Pt)*Ht*Cr*mi;else{be=(te+me*Pt)*Ht*Cr;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),yt=C.dbsql_warehouse_size||"Small",tn=C.dbsql_num_clusters||1;let bn=Y_[yt]||12;if(Q){const Ce=_O(F,V,Be,yt);Ce&&Ce.dbu_per_hour>0&&(bn=Ce.dbu_per_hour)}if(!bn||bn===(Y_[yt]||12)){const Ce=X.find(cn=>cn.id===yt||cn.name===yt);Ce!=null&&Ce.dbu_per_hour&&(bn=Ce.dbu_per_hour)}if(be=bn*tn,qe=be*Rt,Be!=="SERVERLESS"){const Ce=Q?cl(F,V,Be,yt):null;if(Ce){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,Ce.driver_instance_type,cn,Nr),Ja=k(V,ce,Ce.worker_instance_type,hi,gi);Qe=(Ce.driver_count*xi+Ce.worker_count*Ja)*tn*Rt}else if(C.driver_node_type){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,C.driver_node_type,cn,Nr),Ja=C.worker_node_type?k(V,ce,C.worker_node_type,hi,gi):0,yx=C.num_workers||0;Qe=(xi+Ja*yx)*tn*Rt}}break;case"VECTOR_SEARCH":const mr=C.vector_search_mode||"standard",at=C.vector_capacity_millions||1;let ln=mr==="storage_optimized"?64e6:2e6,qt=mr==="storage_optimized"?18.29:4;if(Q){const Ce=bO(F,V,mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_rate)}else{const Ce=he(mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_per_hour)}const mn=at*1e6,Fe=Math.ceil(mn/ln);Ts=Fe,be=Fe*qt,qe=be*Rt;const et=C.vector_search_storage_gb||0,Wt=Fe*20,wt=Math.max(0,et-Wt),Ut=.023,hn=wt*Ut;et>0&&(Er=hn,is={totalStorageGB:et,freeStorageGB:Wt,billableStorageGB:wt,pricePerGB:Ut});break;case"MODEL_SERVING":const er=C.model_serving_gpu_type||"cpu";let Dn=2;if(Q){const Ce=wO(F,V,er);Ce&&Ce.dbu_rate>0&&(Dn=Ce.dbu_rate)}if(Dn===2){const Ce=re.find(cn=>cn.id===er||cn.name===er);Ce!=null&&Ce.dbu_per_hour&&(Dn=Ce.dbu_per_hour)}const tr=C.model_serving_scale_out||"small",Fl=tr==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[tr]||4;be=Dn*Fl,qe=be*Rt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},JC=(zl[V]||zl.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;be=Ul*JC*Vl,qe=be*Rt;const $l=Math.min(C.lakebase_storage_gb||0,8192),ZC=C.lakebase_pitr_gb||0,e2=C.lakebase_snapshot_gb||0,Hl=.023,t2=$l*15*Hl,n2=ZC*8.7*Hl,r2=e2*3.91*Hl,gx=t2+n2+r2;gx>0&&(Er=gx,is={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const s2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ds=null;if(Q&&C.fmapi_model){const Ce=kO(F,V,C.fmapi_model,Xa);Ce&&(Ds=Ce.dbu_rate)}if(Ds===null&&C.fmapi_model){const Ce=xe(C.fmapi_model,Xa);Ce&&(xx?Ds=Ce.dbu_per_hour||null:Ds=Ce.dbu_per_1M_tokens||null)}Ds===null&&(xx?Ds=Xa==="provisioned_scaling"?200:50:Ds=Xa==="output_token"?3:1),qe=s2*Ds;break;case"FMAPI_PROPRIETARY":const i2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let jr=null;if(Q&&C.fmapi_provider&&C.fmapi_model){const Ce=C.fmapi_endpoint_type||"global",cn=C.fmapi_context_length||"long",Nr=SO(F,V,C.fmapi_provider,C.fmapi_model,Ce,cn,ql);Nr&&(jr=Nr.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ce=oe(C.fmapi_provider,C.fmapi_model,ql);Ce&&(vx?jr=Ce.dbu_per_hour||null:jr=Ce.dbu_per_1M_tokens||null)}if(jr===null)if(vx)jr=150;else switch(ql){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}qe=i2*jr;break;case"DATABRICKS_APPS":{const Ce=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ce]||.5,qe=be*Rt;break}case"AI_PARSE":{const Ce={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},cn=(C.ai_parse_complexity||"medium").toLowerCase();qe=(C.ai_parse_pages_thousands||0)*(Ce[cn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{qe=(C.shutterstock_images||0)*.857;break}default:qe=0}const Tn=isNaN(An)||An===void 0?0:An,Ls=isNaN(qe)||qe===void 0?0:qe,Ln=isNaN(Qe)||Qe===void 0?0:Qe,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ls*Tn,os=zr+Ln+_n;return{monthlyDBUs:Ls,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(os)?0:os,unitsUsed:Ts,dbuPerHour:be,dbuPrice:Tn,storageCost:_n>0?_n:void 0,storageDetails:is}},Vn=m.useMemo(()=>{let R=0,J=0,C=0,V=0;return r.forEach(ce=>{const He=fr(ce);R+=isNaN(He.monthlyDBUs)?0:He.monthlyDBUs,J+=isNaN(He.dbuCost)?0:He.dbuCost,C+=isNaN(He.vmCost)?0:He.vmCost,V+=isNaN(He.totalCost)?0:He.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:V}},[r,K.cloud,K.region,K.tier,s,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=fr(J,G[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,G,K.cloud,K.region,K.tier,se,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);const fi=m.useMemo(()=>{const R=[...r];return Me==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):Me==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):Me==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):Me==="cost"&&R.sort((J,C)=>{const V=fr(J).totalCost,ce=fr(C).totalCost;return V-ce}),Yt==="desc"&&R.reverse(),R},[r,Me,Yt,fr]),Md=R=>{Me===R?jt(J=>J==="asc"?"desc":"asc"):(Re(R),jt(R==="cost"?"desc":"asc"))},UC=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad)),VC=Me==="order",zC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const V=fi.findIndex(en=>en.line_item_id===J.id),ce=fi.findIndex(en=>en.line_item_id===C.id);if(V===-1||ce===-1)return;const He=[...fi],[Pt]=He.splice(V,1);He.splice(ce,0,Pt);const{lineItems:Rt}=ws.getState(),we=Rt.map(en=>{const An=He.findIndex(be=>be.line_item_id===en.line_item_id);return An>=0?{...en,display_order:An}:en});ws.setState({lineItems:we});try{await G4(e,He.map(en=>en.line_item_id))}catch{We.error("Failed to save reorder")}},[fi,e]),ox=async()=>{if(!K.estimate_name.trim()){We.error("Enter an estimate name");return}if(!K.region){We.error("Select a region");return}if(!K.tier){We.error("Select a Databricks tier");return}L(!0);try{const R={...K,cloud:K.cloud.toUpperCase(),tier:K.tier.toUpperCase()};if(e&&n)await h(e,R),B(!1),We.success("All changes saved");else{const J=await f(R);B(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),We.success("Estimate created")}}catch{We.error("Failed to save")}finally{L(!1)}},$C=async()=>{if(e){De(!0);try{const R=await qS(e),J=`${K.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(R,J),We.success("Exported to Excel")}catch{We.error("Export failed")}finally{De(!1)}}},HC=async()=>{if(e){Y(!0),_e(!1);try{await g(e),We.success("Estimate deleted"),t("/",{replace:!0})}catch{We.error("Failed to delete estimate"),Y(!1)}}},qC=async()=>{l(),We.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),We.success("Pricing data refreshed",{id:"refresh-data"})}catch{We.error("Failed to refresh data",{id:"refresh-data"})}},lx=R=>{I(R),ot(!0)},WC=async()=>{if(Ze){mt(!0);try{await v(Ze.line_item_id),We.success("Workload removed")}catch{We.error("Failed to delete")}finally{mt(!1),ot(!1),I(null)}}},cx=()=>{Ee.size!==0&&xt(!0)},GC=async()=>{mt(!0);try{let R=0;for(const J of Ee)await v(J),R++;We.success(`${R} workload(s) deleted`),Nt(new Set)}catch{We.error("Failed to delete some workloads")}finally{mt(!1),xt(!1)}},KC=R=>{Nt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},QC=()=>{Ee.size===r.length?Nt(new Set):Nt(new Set(r.map(R=>R.line_item_id)))},ux=()=>{Jn(!1),Nt(new Set)},dx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&We.success(`Workload "${J.workload_name}" cloned`)}catch{We.error("Failed to clone workload")}},YC=()=>{O?P(!0):t("/")},XC=()=>{P(!1),t("/")},px=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),q(J)},Il=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const V=new Set(M);V.add(R),q(V)}Pe(C)},fx=R=>{const J=R.workload_type||"";return["AI_PARSE","SHUTTERSTOCK_IMAGEAI","DATABRICKS_APPS"].includes(J)?null:R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null},mx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"AI_PARSE":J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K/mo`});break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break}return J},Bl=K.estimate_name.trim()&&K.region&&K.tier,hx=()=>{const R=[];return K.estimate_name.trim()||R.push("Estimate Name"),K.region||R.push("Region"),K.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:YC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:K.estimate_name,onChange:R=>{ut(J=>({...J,estimate_name:R.target.value})),Un()},placeholder:"Untitled Estimate",title:K.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:qC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Qr,{className:de("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:$C,disabled:ke||!e,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:de("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:de("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Bt(!nt),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Tu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${K.cloud.toUpperCase()} • ${K.region||"No region"} • ${K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier"}${K.customer_name?` • ${K.customer_name}`:""}`,children:[K.cloud.toUpperCase()," • ",K.region||"No region"," • ",K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier",K.customer_name&&` • ${K.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:nt?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(fs,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!nt&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&K.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ut(V=>({...V,cloud:R.id,region:"",tier:R.id==="azure"&&V.tier==="enterprise"?"":V.tier})),x(R.id),Un())},className:de("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",K.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":K.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:de("text-sm font-semibold",K.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),K.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.region,onChange:R=>{ut(J=>({...J,region:R.target.value})),y(R.target.value),Un()},className:de("w-full text-sm",!K.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.tier,onChange:R=>{ut(J=>({...J,tier:R.target.value})),Un()},className:de("w-full text-sm",!K.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),K.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${hx().join(", ")}`,className:de("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(p3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:Le?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ee.size," selected"]}),o.jsxs("button",{onClick:cx,disabled:Ee.size===0,className:de("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ee.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>Jn(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Ie("table"),className:de("p-1.5 rounded-md transition-colors",ze==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(b3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("cards"),className:de("p-1.5 rounded-md transition-colors",ze==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Ng,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("expanded"),className:de("p-1.5 rounded-md transition-colors",ze==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(ry,{className:"w-4 h-4"})})]}),ss&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Add"]})]})]}),e?pt&&!Ye?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[ze==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ee.size===r.length&&r.length>0,onChange:QC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>Md("name"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Le?"col-span-3":"col-span-4"),children:["Workload",Me==="name"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("type"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Me==="type"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Me==="cost"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]})]}),o.jsx(PC,{sensors:UC,collisionDetection:gC,onDragEnd:zC,modifiers:[IC],children:o.jsx(DC,{items:fi.map(R=>R.line_item_id),strategy:AC,children:fi.map(R=>{var Ts,Er,is;const J=G[R.line_item_id],C=J?{...R,...J}:R,V=fr(R,J),ce=W_(C.workload_type),He=ce.icon,Pt=M.has(R.line_item_id),Rt=Ee.has(R.line_item_id),we=C.workload_type||"",en=C.serverless_enabled||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",An=((Ts=s.find(te=>te.workload_type===we))==null?void 0:Ts.display_name)||we,be=fx(C),Qe=(()=>{const te={badges:[],details:[]};if(en&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(we))en||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),we==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(we==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(we==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(we==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&we==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else we==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!VC,children:o.jsxs("div",{ref:te=>{Zn.current[R.line_item_id]=te},children:[o.jsxs("div",{className:de("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&Le&&"bg-lava-600/5",Pt&&"bg-[var(--bg-tertiary)]"),onClick:()=>px(R.line_item_id),children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>KC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:de("flex items-center gap-3",Le?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:de("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",ce.bgColor),children:o.jsx(He,{className:de("w-4 h-4",ce.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:An,children:An})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Qe.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Qe.driver||"N/A"}, Workers: ${((Er=Qe.workers)==null?void 0:Er.count)||0}× ${((is=Qe.workers)==null?void 0:is.type)||"N/A"}`,children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Qe.details.join(" · "),children:Qe.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(K_,{costs:V,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&te&&V.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>dx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),lx(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:de("p-1 rounded transition-colors",Pt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Pt?o.jsx(fs,{className:"w-5 h-5 text-lava-600"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Pt&&(Qe.badges.length>0||Qe.driver||Qe.workers||Qe.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Qe.details.join(" · ")})]}),Pt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(we)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.vmCost)})]}),we==="LAKEBASE"&&V.storageCost!==void 0&&V.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(V.storageCost)})]}),we==="VECTOR_SEARCH"&&V.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[V.unitsUsed," unit",V.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(we)&&!en&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,as=C.avg_runtime_minutes||30,Ht=C.days_per_month||30,mi=C.hours_per_month||730,Ft=te?me*(as/60)*Ht:mi,Tn=(V.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const Fe=C.vector_capacity_millions||1,et=C.vector_search_mode||"standard",Wt=et==="storage_optimized"?64:2,wt=Math.ceil(Fe/Wt),Ut=et==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,er=wt*20,Dn=Math.max(0,hn-er),tr=Dn*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M"]})," vectors ÷ ",Wt,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," unit",wt!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[er," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(tr)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(tr)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const Fe=C.fmapi_quantity||1,et=C.fmapi_rate_type||"input_token",Wt=["provisioned_scaling","provisioned_entry"].includes(et),wt=Fe>0?V.monthlyDBUs/Fe:0,Ut=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Wt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Ut,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="LAKEBASE"){const Fe=C.lakebase_cu||1,et=C.lakebase_ha_nodes||1,Wt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ut=(Wt[K.cloud||"aws"]||Wt.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,er=C.lakebase_pitr_gb||0,Dn=C.lakebase_snapshot_gb||0,tr=.023,Ya=hn*15*tr,Fl=er*8.7*tr,Ul=Dn*3.91*tr,Vl=Ya+Fl+Ul,zl=Vl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ya)})]}),er>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[er," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(er*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Fl)})]}),Dn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Dn*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ul)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),zl&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Vl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="MODEL_SERVING"){const Fe=C.model_serving_gpu_type||"cpu",et=C.model_serving_scale_out||"small",wt=et==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[et]||4,Ut=wt>0&&V.dbuPerHour?V.dbuPerHour/wt:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DBSQL"){const Fe=C.dbsql_warehouse_size||"Small",et=C.dbsql_num_clusters||1,Wt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),wt=V.dbuPerHour?V.dbuPerHour/et:12,Ut=V.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt.toFixed(1)," DBU/hr)"]}),et>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${as}min ÷ 60 × ${Ht} days`:void 0,children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),Ut&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[Wt," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:fe(V.dbuCost)}),Ut&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DATABRICKS_APPS"){const Fe=(C.databricks_apps_size||"medium").toLowerCase(),et=Fe==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe.charAt(0).toUpperCase()+Fe.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="AI_PARSE"){const Fe=(C.ai_parse_complexity||"medium").toLowerCase(),Wt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[Fe]||62.5,wt=C.ai_parse_pages_thousands||0,Ut={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Wt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut[Fe]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="SHUTTERSTOCK_IMAGEAI"){const Fe=C.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}const Ls=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,os=V.vmCost>0&&!en,Be=K.cloud||"aws",yt=K.region||"",tn=j.find(Fe=>Fe.id===Ln||Fe.name===Ln),bn=j.find(Fe=>Fe.id===_n||Fe.name===_n),mr=A(Be,Ln)||(tn==null?void 0:tn.dbu_rate)||0,at=A(Be,_n)||(bn==null?void 0:bn.dbu_rate)||0,ln=yt&&Ln?k(Be,yt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,qt=yt&&_n?k(Be,yt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,mn=V.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:mr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:at.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),os&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(ln==null?void 0:ln.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(qt==null?void 0:qt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),os&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})})()})]})]}),Pt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(q_,{onReset:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),ze!=="table"&&fi.map((R,J)=>{var An;const C=G[R.line_item_id],V=C?{...R,...C}:R,ce=fr(R,C),He=M.has(R.line_item_id),Pt=fx(V),Rt=W_(V.workload_type),we=Rt.icon,en=ze==="expanded"||He;return o.jsx("div",{ref:be=>{Zn.current[R.line_item_id]=be},children:o.jsxs($t.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:de("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",ze==="cards"&&!He&&"py-3"),onClick:()=>px(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:de("rounded-lg flex items-center justify-center flex-shrink-0",ze==="cards"&&!He?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(we,{className:de(Rt.color,ze==="cards"&&!He?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:de("font-semibold truncate text-[var(--text-primary)]",ze==="cards"&&!He&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((An=s.find(be=>be.workload_type===R.workload_type))==null?void 0:An.display_name)||R.workload_type})})]}),o.jsx(K_,{costs:ce,size:ze==="cards"&&!He?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",qe=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&qe&&ce.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>dx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),lx(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),He?o.jsx(fs,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),en&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.vmCost)})]}),R.workload_type==="LAKEBASE"&&ce.storageCost!==void 0&&ce.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(ce.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&ce.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[ce.unitsUsed," unit",ce.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),mx(R).map((be,qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},qe)),Pt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Pt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=V.workload_type||"",qe=V.serverless_enabled||be==="DBSQL"&&(V.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Qe=V.runs_per_day&&V.avg_runtime_minutes&&!V.hours_per_month,Ts=V.runs_per_day||0,Er=V.avg_runtime_minutes||30,is=V.days_per_month||30,te=V.hours_per_month||730,me=Qe?Ts*(Er/60)*is:te,Ht=(ce.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const at=V.vector_capacity_millions||1,ln=V.vector_search_mode||"standard",qt=ln==="storage_optimized"?64:2,mn=Math.ceil(at/qt),Fe=ln==="storage_optimized"?18.29:4,et=V.vector_search_storage_gb||0,Wt=mn*20,wt=Math.max(0,et-Wt),Ut=wt*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M vectors"]})," ÷ ",qt,"⌉"]}),o.jsxs("span",{children:["= ",mn," units ×"]}),o.jsxs("span",{children:[Fe," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs × $",Ht]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),et>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Wt," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),et>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Ut)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const at=V.fmapi_quantity||0,ln=ce.monthlyDBUs/(at||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[ln.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="LAKEBASE"){const at=V.lakebase_cu||1,ln=V.lakebase_ha_nodes||1,qt=V.lakebase_storage_gb||0,mn=V.lakebase_pitr_gb||0,Fe=V.lakebase_snapshot_gb||0,et=.023,Wt=qt*15*et,wt=mn*8.7*et,Ut=Fe*3.91*et,hn=Wt+wt+Ut,er=hn>0,Dn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(Dn[K.cloud||"aws"]||Dn.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),qt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(qt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Wt)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(wt)})]}),Fe>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Fe*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),er&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="MODEL_SERVING"){const at=V.model_serving_scale_out||"small",qt=at==="custom"?V.model_serving_concurrency||4:{small:4,medium:12,large:40}[at]||4,mn=qt>0&&ce.dbuPerHour?ce.dbuPerHour/qt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",at,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="DATABRICKS_APPS"){const at=(V.databricks_apps_size||"medium").toLowerCase(),ln=at==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:at.charAt(0).toUpperCase()+at.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",ln," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="AI_PARSE"){const at=(V.ai_parse_complexity||"medium").toLowerCase(),qt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[at]||62.5,mn=V.ai_parse_pages_thousands||0,Fe={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[qt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe[at]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="SHUTTERSTOCK_IMAGEAI"){const at=V.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}const mi=V.num_workers||0,Ft=V.driver_node_type||"",Cr=V.worker_node_type||"",Tn=V.photon_enabled,Ls=ce.vmCost>0&&!qe,Ln=K.cloud||"aws",_n=K.region||"",zr=j.find(at=>at.id===Ft||at.name===Ft),os=j.find(at=>at.id===Cr||at.name===Cr),Be=A(Ln,Ft)||(zr==null?void 0:zr.dbu_rate)||0,yt=A(Ln,Cr)||(os==null?void 0:os.dbu_rate)||0,tn=_n&&Ft?k(Ln,_n,Ft,V.driver_pricing_tier||"on_demand",V.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?k(Ln,_n,Cr,V.worker_pricing_tier||"spot",V.worker_payment_option||"NA"):null,mr=ce.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Qe&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ts," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Tn?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ft,children:Be.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:yt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),Tn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),Ls&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ft,children:["$",(tn==null?void 0:tn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(ce.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),Ls&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(ce.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})})()})]})]})]}),He&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(q_,{onReset:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe}),ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onSave:()=>{ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onFormChange:be=>{ae(qe=>({...qe,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),ss?E?o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(nf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Lu,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(ms,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(_m,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),pt&&!Ye&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>vt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(sr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),ss?pt&&!Ye?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:de("text-3xl font-bold text-lava-600",Xe&&"opacity-60"),children:fe(Vn.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[fe(Vn.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:fe(Vn.totalDBUCost),children:G_(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Xe?"Loading...":fe(Vn.totalVMCost),children:Xe?"...":G_(Vn.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>ns(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:fe(V.totalCost),children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full transition-all",Pt,"group-hover:brightness-110"),style:{width:`${Math.max(He,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(ms,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Ct&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>ht(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>ht(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>{ht(!1),ns(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full",Pt),style:{width:`${Math.max(He,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>vt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>ht(!Ct),className:de("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Ct?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(ry,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(fs,{className:de("w-3 h-3 transition-transform",Ct?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[fe(Vn.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ee.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ee.size," workload",Ee.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ue&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',K.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:HC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Ze&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Ze.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),st&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ee.size," Workload",Ee.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ee.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>xt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:GC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),W&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(ms,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:XC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let k="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?k="JOBS_COMPUTE_(PHOTON)":k="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?k="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?k="ALL_PURPOSE_COMPUTE_(PHOTON)":k="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":(k=`DLT_${A}_COMPUTE`,e.photon_enabled&&(k+="_(PHOTON)"));break;case"DBSQL":const ue=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ue==="SERVERLESS"?k="SERVERLESS_SQL_COMPUTE":ue==="PRO"?k="SQL_PRO_COMPUTE":k="SQL_COMPUTE";break;case"VECTOR_SEARCH":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();k=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":k="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":k="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":k="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":k="DELTA_LIVE_TABLES_SERVERLESS";break;default:k="JOBS_COMPUTE"}let S=null;if(b){const ue=b(k);ue!==null&&ue>0&&(S=ue)}S===null&&(S=x[k]||.2),console.log(`[LiveEstimate] productType=${k}, dbuPrice=${S}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,$=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ue=g(e.driver_node_type);ue!==null&&ue>0&&(re=ue)}if(re===.5){const ue=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ue!=null&&ue.dbu_rate&&(re=ue.dbu_rate)}if(g&&e.worker_node_type){const ue=g(e.worker_node_type);ue!==null&&ue>0&&(le=ue)}if(le===.5){const ue=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ue!=null&&ue.dbu_rate&&(le=ue.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ue=k.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ue="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ue="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ue=`DLT_${A}_COMPUTE`)),v){const ve=v(ue);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var ot;return ve.sku_type===ue||ve.sku_type===k||((ot=ve.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DBSQL":const ue=l.find(Le=>Le.id===e.dbsql_warehouse_size||Le.name===e.dbsql_warehouse_size),_e=(ue==null?void 0:ue.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const Le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Jn=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Zn=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",ns=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Un=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Un){const rs=d(n,r,Un.driver_instance_type,Le,Jn),ss=d(n,r,Un.worker_instance_type,Zn,ns);$=(Un.driver_count*rs+Un.worker_count*ss)*ve*_}else if(e.driver_node_type){const rs=d(n,r,e.driver_node_type,Le,Jn),ss=e.worker_node_type?d(n,r,e.worker_node_type,Zn,ns):0,fr=e.num_workers||0;$=(rs+ss*fr)*ve*_}}break;case"VECTOR_SEARCH":const Ze=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,st=h(Ze),xt=(st==null?void 0:st.input_divisor)||(Ze==="storage_optimized"?64e6:2e6),lt=(st==null?void 0:st.dbu_per_hour)||(Ze==="storage_optimized"?18.29:4),mt=I*1e6,W=Math.ceil(mt/xt);j=W,T=W*lt,D=T*_;const P=e.vector_search_storage_gb||0,E=W*20,ie=Math.max(0,P-E),M=.023,q=ie*M;P>0&&(H=q,X={totalStorageGB:P,freeStorageGB:E,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Le=>Le.id===Se||Le.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,B=e.model_serving_scale_out||"small",ae=B==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[B]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Ve=e.lakebase_ha_nodes||1,pt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ye=(pt[n]||pt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ye*Ve,D=T*_;const ct=Math.min(e.lakebase_storage_gb||0,8192),Xe=15,It=ct*Xe,U=.023,Z=It*U,Te=e.lakebase_pitr_gb||0,K=Te*8.7*U,ut=e.lakebase_snapshot_gb||0,Bt=ut*3.91*U;(ct>0||Te>0||ut>0)&&(H=Z+K+Bt,X={totalStorageGB:ct,billableStorageGB:ct,dsuPerGB:Xe,totalDSU:It,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,vt=e.fmapi_rate_type||"input_token",Ct=["provisioned_scaling","provisioned_entry"].includes(vt),ht=e.fmapi_model?p(e.fmapi_model,vt):null;if(Ct){const Le=(ht==null?void 0:ht.dbu_per_hour)||(vt==="provisioned_scaling"?200:50);D=ft*Le}else{const Le=(ht==null?void 0:ht.dbu_per_1M_tokens)||(vt==="output_token"?3:1);D=ft*Le}break;case"FMAPI_PROPRIETARY":const ze=e.fmapi_quantity||0,Ie=e.fmapi_rate_type||"input_token",Me=Ie==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Yt=e.fmapi_context_length||"long",jt=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Ie,Re,Yt):null;if(Me){const Le=(jt==null?void 0:jt.dbu_per_hour)||150;D=ze*Le}else{let Le=jt==null?void 0:jt.dbu_per_1M_tokens;if(!Le)switch(Ie){case"output_token":Le=321.43;break;case"cache_read":Le=8.57;break;case"cache_write":Le=85.71;break;default:Le=21.43}D=ze*Le}break;case"DATABRICKS_APPS":const Ee=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ee]||.5,D=T*_;break;case"AI_PARSE":{const Le={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Jn=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Le[Jn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{D=(e.shutterstock_images||0)*.857;break}default:D=0}const F=D*S,Q=H!==void 0&&!isNaN(H)?H:0,N=F+$+Q,se=isNaN(F)?0:F,pe=isNaN($)?0:$,L=isNaN(N)?se:N,ke=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(S)?.15:S;return{monthlyDBUs:ke,dbuCost:se,vmCost:pe,totalCost:L,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:Q>0?Q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function gs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?aE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of gs(Z_,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of gs(Z_,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of gs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of gs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of gs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),p=d.length>0?gs(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=gs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=gs(Qm(l),e.tiersPerCloud);for(const p of u){const f=Hu(t,l),h=f.length>0?gs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[k,A]=m.useState({current:0,total:0}),[S,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),$=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:F,isPricingBundleLoaded:Q,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:ke,getVectorSearchRate:De}=ws();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,F),[j,F]),Y=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ue=m.useMemo(()=>{const M=new Set(w.map(q=>q.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,q,Se)=>{const Pe=Q&&F.modelServingRates?Object.entries(F.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,B])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:B.dbu_rate}}):xe;return{cloud:M,region:q,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,B)=>{if(Q&&F.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${B}`,ae=F.fmapiDatabricksRates[G];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,B)},getFMAPIProprietaryRate:(O,B,G,ae,je)=>{if(Q&&F.fmapiProprietaryRates){const Ve=ae||"global",pt=je||"all",it=`${M.toLowerCase()}:${O.toLowerCase()}:${B.toLowerCase()}:${Ve}:${pt}:${G}`,Ye=F.fmapiProprietaryRates[it];if(Ye)return{dbu_per_1M_tokens:Ye.is_hourly?void 0:Ye.dbu_rate,dbu_per_hour:Ye.is_hourly?Ye.dbu_rate:void 0}}return ke(O,B,G)},getVectorSearchRate:O=>{if(Q&&F.vectorSearchRates){const B=`${M.toLowerCase()}:${O}`,G=F.vectorSearchRates[B];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>Q?Pm(F,M,O):null,getPhotonMultiplier:O=>Q?iE(F,M,O):null,getDBUPrice:O=>Q?Lg(F,M,q,Se,O):null,getDBSQLWarehouseConfig:(O,B)=>Q?cl(F,M,O,B):null}},[X,re,le,he,xe,oe,Q,F,se,L,ke,De]),ve=async M=>{var K,ut,nt,Bt,ft,vt,Ct,ht,ze;const{environment:q,workloadType:Se,config:Pe}=M,O=_e(q.cloud,q.region,q.tier),B={...Pe,workload_type:Se},G=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Ie=cl(F,q.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Ie){const Me=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.driver_instance_type,Me,Re));const Yt=Pe.dbsql_worker_pricing_tier||"on_demand",jt=Pe.dbsql_worker_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.worker_instance_type,Yt,jt))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(G.push(pe(q.cloud,q.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&G.push(pe(q.cloud,q.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const ae=performance.now(),je=y8(B,O),Ve=performance.now()-ae,pt=performance.now();let it=null,Ye,ct;const Xe=j8(Se,Pe),It=N8(M);try{const Ie=await fetch(Xe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(It)});if(Ie.ok){const Me=await Ie.json();ct=Me;const Re=Me.data||Me,Yt=((K=Re.dbu_calculation)==null?void 0:K.dbu_per_month)??Re.dbu_per_month??(((ut=Re.dbu_calculation)==null?void 0:ut.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),jt=((nt=Re.dbu_calculation)==null?void 0:nt.dbu_cost_per_month)??((ft=(Bt=Re.total_cost)==null?void 0:Bt.breakdown)==null?void 0:ft.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ee=((vt=Re.vm_costs)==null?void 0:vt.vm_cost_per_month)??((ht=(Ct=Re.total_cost)==null?void 0:Ct.breakdown)==null?void 0:ht.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let Nt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?Nt=Re.total_cost.cost_per_month??jt+Ee:typeof Re.total_cost=="number"?Nt=Re.total_cost:Nt=Re.total_cost_per_month??jt+Ee,it={monthlyDBUs:Yt,dbuCost:jt,vmCost:Ee,totalCost:Nt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Me,parsed:it})}else{const Me=await Ie.text();try{const Re=JSON.parse(Me);Ye=`HTTP ${Ie.status}: ${((ze=Re.detail)==null?void 0:ze.message)||Re.detail||Re.message||Me}`}catch{Ye=`HTTP ${Ie.status}: ${Me}`}}}catch(Ie){Ye=Ie instanceof Error?Ie.message:"Unknown error"}const U=performance.now()-pt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,it,g),$e=Te<=g&&!Ye;return{testCase:M,localResult:je,apiResult:it,apiError:Ye,apiRequestBody:It,apiRawResponse:ct,localTimeMs:Ve,apiTimeMs:U,matches:$e,totalCostDiffPercent:Te,discrepancies:Z}},ot=()=>{D.current=!0,i(!0)},Ze=()=>{D.current=!1,i(!1)},I=()=>{$.current=!0,l(!0),D.current=!1,i(!1)},st=async()=>{for(;D.current&&!$.current;)await new Promise(M=>setTimeout(M,100))},xt=async()=>{r(!0),i(!1),l(!1),D.current=!1,$.current=!1,t([]),A({current:0,total:Y.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:q,tier:Se,workloadType:Pe,serverless:O,photon:B,driverNode:G,workerNode:ae,numWorkers:je,runsPerDay:Ve,avgRuntime:pt,daysPerMonth:it,hoursPerMonth:Ye}=S,ct={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:q,tier:Se},config:{serverless_enabled:O,photon_enabled:B,driver_node_type:G,worker_node_type:ae,num_workers:je,runs_per_day:Ve,avg_runtime_minutes:pt,days_per_month:it,hours_per_month:Ye,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Xe=await ve(ct);t([Xe]),u(null),r(!1)},mt=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,q=e.filter(G=>!G.matches).length,Se=e.filter(G=>G.apiError).length,Pe=e.length>0?e.reduce((G,ae)=>G+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,ae)=>G+ae.apiTimeMs,0)/e.length:0,B={};return e.forEach(G=>{const ae=G.testCase.category;B[ae]||(B[ae]={passed:0,failed:0}),G.matches?B[ae].passed++:B[ae].failed++}),{passed:M,failed:q,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:B}},[e]),W=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],q=e.map(G=>{var ae;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((ae=G.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Se=[M.join(","),...q.map(G=>G.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),B=document.createElement("a");B.href=O,B.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,B.click()},P=M=>{const q=new Set(d);q.has(M)?q.delete(M):q.add(M),p(q)},E=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(cD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(ZL,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:W,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(LD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(e3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Ze,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:xt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:S.cloud,onChange:M=>T({...S,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:S.region,onChange:M=>T({...S,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Km(F,S.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:S.tier,onChange:M=>T({...S,tier:M.target.value}),className:"w-full text-sm",children:Qm(S.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:S.workloadType,onChange:M=>T({...S,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.serverless,onChange:M=>T({...S,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.photon,onChange:M=>T({...S,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:S.driverNode,onChange:M=>T({...S,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:S.workerNode,onChange:M=>T({...S,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:S.numWorkers,onChange:M=>T({...S,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:S.runsPerDay,onChange:M=>T({...S,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:S.avgRuntime,onChange:M=>T({...S,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:S.daysPerMonth,onChange:M=>T({...S,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(jD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Km(F,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:q=>{q.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ue.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Q?"text-green-500":"text-yellow-500"}`,children:[Q?o.jsx(Au,{className:"w-5 h-5"}):o.jsx(ms,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:mt.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:mt.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:mt.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[mt.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[mt.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(mt.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(mt.byCategory).map(([M,{passed:q,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[q," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx($t.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${k.current/k.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[k.current," / ",k.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:Y.map(M=>{const q=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${q&&!q.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>q&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[q&&(Se?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q?E(q.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q!=null&&q.apiResult?E(q.apiResult.totalCost):q!=null&&q.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:q?o.jsxs("span",{className:q.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[q.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):q?q.matches?o.jsx(Au,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(C3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),q&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(q.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:E(q.localResult.totalCost)})]}),q.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",q.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),q.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:q.apiError})}):q.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(q.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:E(q.apiResult.totalCost)})]})]}):null]})]}),q.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:q.discrepancies.map((O,B)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},B))})]})})]}),q.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(q.apiRawResponse,null,2)})})]}),q.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(q.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:q.testCase.environment,config:q.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(jN,{children:o.jsxs(wi,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(wi,{index:!0,element:o.jsx(u8,{})}),o.jsx(wi,{path:"calculator",element:o.jsx(X_,{})}),o.jsx(wi,{path:"calculator/:id",element:o.jsx(X_,{})}),o.jsx(wi,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(wi,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();rf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(DN,{children:[o.jsx(A8,{}),o.jsx(EP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-l6TvOjYL.js b/lakemeter/backend/static/assets/index-l6TvOjYL.js new file mode 100644 index 00000000..48c12da9 --- /dev/null +++ b/lakemeter/backend/static/assets/index-l6TvOjYL.js @@ -0,0 +1,354 @@ +function a2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var hs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},Ke={};/** + * @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 hl=Symbol.for("react.element"),o2=Symbol.for("react.portal"),l2=Symbol.for("react.fragment"),c2=Symbol.for("react.strict_mode"),u2=Symbol.for("react.profiler"),d2=Symbol.for("react.provider"),p2=Symbol.for("react.context"),f2=Symbol.for("react.forward_ref"),m2=Symbol.for("react.suspense"),h2=Symbol.for("react.memo"),g2=Symbol.for("react.lazy"),_x=Symbol.iterator;function x2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Ia.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;sb(Xm,Ia.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ob=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ob.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=F[se];if(0>>1;ses(De,N))ws(Y,De)?(F[se]=Y,F[w]=N,se=w):(F[se]=De,F[ke]=N,se=ke);else if(ws(Y,N))F[se]=Y,F[w]=N,se=w;else break e}}return Q}function s(F,Q){var N=F.sortIndex-Q.sortIndex;return N!==0?N:F.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(F){for(var Q=n(u);Q!==null;){if(Q.callback===null)r(u);else if(Q.startTime<=F)r(u),Q.sortIndex=Q.expirationTime,t(c,Q);else break;Q=n(u)}}function k(F){if(v=!1,_(F),!g)if(n(c)!==null)g=!0,xe(A);else{var Q=n(u);Q!==null&&oe(k,Q.startTime-F)}}function A(F,Q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Q),p=n(c);p!==null&&(!(p.expirationTime>Q)||F&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var pe=se(p.expirationTime<=Q);Q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(Q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var ke=n(u);ke!==null&&oe(k,ke.startTime-Q),L=!1}return L}finally{p=null,f=N,h=!1}}var S=!1,T=null,D=-1,$=5,j=-1;function H(){return!(e.unstable_now()-j<$)}function X(){if(T!==null){var F=e.unstable_now();j=F;var Q=!0;try{Q=T(!0,F)}finally{Q?re():(S=!1,T=null)}}else S=!1}var re;if(typeof y=="function")re=function(){y(X)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,he=le.port2;le.port1.onmessage=X,re=function(){he.postMessage(null)}}else re=function(){b(X,0)};function xe(F){T=F,S||(S=!0,re())}function oe(F,Q){D=b(function(){F(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_continueExecution=function(){g||h||(g=!0,xe(A))},e.unstable_forceFrameRate=function(F){0>F||125se?(F.sortIndex=N,t(u,F),n(c)===null&&F===n(u)&&(v?(x(D),D=-1):v=!0,oe(k,N-se))):(F.sortIndex=pe,t(c,F),g||h||(g=!0,xe(A))),F},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(F){var Q=f;return function(){var N=f;f=Q;try{return F.apply(this,arguments)}finally{f=N}}}})(mb);fb.exports=mb;var P2=fb.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 R2=m,cr=P2;function ee(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"),sf=Object.prototype.hasOwnProperty,A2=/^[: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]*$/,kx={},Sx={};function T2(e){return sf.call(Sx,e)?!0:sf.call(kx,e)?!1:A2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function L2(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 D2(e,t,n,r){if(t===null||typeof t>"u"||L2(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 Fn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new Fn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new Fn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new Fn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new Fn(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){yn[e]=new Fn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new Fn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new Fn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new Fn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new Fn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new Fn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function M2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Fd(e.type,!1),e;case 11:return e=Fd(e.type.render,!1),e;case 1:return e=Fd(e.type,!0),e;default:return""}}function cf(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 Xi:return"Fragment";case Yi:return"Portal";case af:return"Profiler";case rh:return"StrictMode";case of:return"Suspense";case lf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cf(e.type)||"Memo";case Bs:t=e._payload,e=e._init;try{return cf(e(t))}catch{}}return null}function O2(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 cf(t);case 8:return t===rh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function I2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kl(e){e._valueTracker||(e._valueTracker=I2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 uf(e,t){var n=t.checked;return Ot({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ri(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function df(e,t){bb(e,t);var n=ri(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")?pf(e,t.type,n):t.hasOwnProperty("defaultValue")&&pf(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 pf(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},B2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){B2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Cb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var F2=Ot({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 hf(e,t){if(t){if(F2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gf(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 xf=null;function ah(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vf=null,ha=null,ga=null;function Rx(e){if(e=vl(e)){if(typeof vf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vf(e.stateNode,e.type,t))}}function jb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Nb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(Y2(e)/X2|0)|0}var Yl=64,Xl=4194304;function ho(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function tj(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=wo),Fx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Pj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Aj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Fx);case"textInput":return e=t.data,e===Fx&&Ux?null:e;default:return null}}function Tj(e,t){if(Ji)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=Hs=null,Ji=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Vj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var a=qx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Sf=null,So=null,Ef=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ef||Zi==null||Zi!==Yc(r)||(r=Zi,"selectionStart"in r&&hh(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}),So&&Wo(So,r)||(So=r,r=ru(Sf,"onSelect"),0na||(e.current=Af[na],Af[na]=null,na--)}function bt(e,t){na++,Af[na]=e.current,e.current=t}var si={},Pn=li(si),qn=li(!1),Mi=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Wn(e){return e=e.childContextTypes,e!=null}function iu(){St(qn),St(Pn)}function Zx(e,t,n){if(Pn.current!==si)throw Error(ee(168));bt(Pn,t),bt(qn,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,O2(e)||"Unknown",s));return Ot({},n,r)}function au(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Mi=Pn.current,bt(Pn,e),bt(qn,qn.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,St(qn),St(Pn),bt(Pn,e)):St(qn),bt(qn,n)}var ps=null,Ju=!1,Zd=!1;function u1(e){ps===null?ps=[e]:ps.push(e)}function Zj(e){Ju=!0,u1(e)}function ci(){if(!Zd&&ps!==null){Zd=!0;var e=0,t=dt;try{var n=ps;for(dt=1;e>=a,s-=a,xs=1<<32-Mr(t)+s|n<D?($=T,T=null):$=T.sibling;var j=f(x,T,_[D],k);if(j===null){T===null&&(T=$);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j,T=$}if(D===_.length)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],k),T!==null&&(y=i(T,y,D),S===null?A=T:S.sibling=T,S=T);return Tt&&_i(x,D),A}for(T=r(x,T);D<_.length;D++)$=h(T,x,D,_[D],k),$!==null&&(e&&$.alternate!==null&&T.delete($.key===null?D:$.key),y=i($,y,D),S===null?A=$:S.sibling=$,S=$);return e&&T.forEach(function(H){return t(x,H)}),Tt&&_i(x,D),A}function v(x,y,_,k){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var S=A=null,T=y,D=y=0,$=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?($=T,T=null):$=T.sibling;var H=f(x,T,j.value,k);if(H===null){T===null&&(T=$);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),S===null?A=H:S.sibling=H,S=H,T=$}if(j.done)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,k),j!==null&&(y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return Tt&&_i(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,k),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return e&&T.forEach(function(X){return t(x,X)}),Tt&&_i(x,D),A}function b(x,y,_,k){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var A=_.key,S=y;S!==null;){if(S.key===A){if(A=_.type,A===Xi){if(S.tag===7){n(x,S.sibling),y=s(S,_.props.children),y.return=x,x=y;break e}}else if(S.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Bs&&r0(A)===S.type){n(x,S.sibling),y=s(S,_.props),y.ref=so(x,S,_),y.return=x,x=y;break e}n(x,S);break}else t(x,S);S=S.sibling}_.type===Xi?(y=Ti(_.props.children,x.mode,k,_.key),y.return=x,x=y):(k=Ic(_.type,_.key,_.props,null,x.mode,k),k.ref=so(x,y,_),k.return=x,x=k)}return a(x);case Yi:e:{for(S=_.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=op(_,x.mode,k),y.return=x,x=y}return a(x);case Bs:return S=_._init,b(x,y,S(_._payload),k)}if(mo(_))return g(x,y,_,k);if(Za(_))return v(x,y,_,k);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=ap(_,x.mode,k),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=m1(!0),h1=m1(!1),cu=li(null),uu=null,ia=null,yh=null;function _h(){yh=ia=uu=null}function bh(e){var t=cu.current;St(cu),e._currentValue=t}function Df(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 va(e,t){uu=e,yh=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Hn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(uu===null)throw Error(ee(308));ia=e,uu.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var ji=null;function wh(e){ji===null?ji=[e]:ji.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Es(e,r)}function Es(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 Fs=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 ys(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Es(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Es(e,n)}function Ac(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Ot({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Bi|=a,e.lanes=a,e.memoizedState=p}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{dt=n,tp.transition=r}}function D1(){return Sr().memoizedState}function r5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Or(n,e,r,s),I1(n,t,r)}}function s5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Br(l,a)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Or(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===Mt||t!==null&&t===Mt}function O1(e,t){Eo=fu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:kr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},i5={readContext:kr,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:o0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lc(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lc(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=r5.bind(null,Mt,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:a0,useDebugValue:Ah,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=a0(!1),t=e[0];return e=n5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Mt,s=qr();if(Tt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Ii&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,o0(k1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=fn.identifierPrefix;if(Tt){var n=vs,r=xs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Gr]=t,e[Qo]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(a=gf(n,r),n){case"dialog":kt("cancel",e),kt("close",e),s=r;break;case"iframe":case"object":case"embed":kt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=pu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Tt)return kn(t),null}else 2*Kt()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Kt(),t.sibling=null,n=Lt.current,bt(Lt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?rr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function f5(e,t){switch(xh(t),t.tag){case 1:return Wn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),St(qn),St(Pn),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eh(t),null;case 13:if(St(Lt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return St(Lt),null;case 4:return Ca(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var ac=!1,En=!1,m5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function $f(e,t,n){try{n()}catch(r){zt(e,t,r)}}var v0=!1;function h5(e,t){if(Cf=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jf={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(k){zt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$f(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hf(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Qo],delete t[Rf],delete t[Xj],delete t[Jj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qf(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=su));else if(r!==4&&(e=e.child,e!==null))for(qf(e,t,n),e=e.sibling;e!==null;)qf(e,t,n),e=e.sibling}function Wf(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(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),Ho(e)):Jd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&$f(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){zt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ms(e,t,n),En=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new m5),t.forEach(function(r){var s=S5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Kt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,xu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,a=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cKt()-Mh?Ai(e,0):Dh|=n),Gn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=Es(e,t),e!==null&&(gl(e,t,n),Gn(e,n))}function k5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function S5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qn.current)Hn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Hn=!1,d5(e,t,n);Hn=!!(e.flags&131072)}else Hn=!1,Tt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Wn(r)?(i=!0,au(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Of(t,r,e,n),t=Ff(null,t,r,!0,i,n)):(t.tag=0,Tt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=C5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=f0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(ir=Xs(t.stateNode.containerInfo.firstChild),ar=t,Tt=!0,Dr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Cs(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Lf(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Nf(r,s)?a=null:i!==null&&Nf(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,a,n),t.child;case 6:return e===null&&Lf(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),f0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,bt(cu,r._currentValue),r._currentValue=a,i!==null)if(Br(i.value,a)){if(i.children===s.children&&!qn.current){t=Cs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ys(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Df(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Df(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Dc(e,t),t.tag=1,Wn(r)?(e=!0,au(t)):e=!1,va(t,n),B1(t,r,s),Of(t,r,s,n),Ff(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function E5(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 br(e,t,n,r){return new E5(e,t,n,r)}function Fh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C5(e){if(typeof e=="function")return Fh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Ic(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Fh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ti(n.children,s,i,t);case rh:a=8,s|=8;break;case af:return e=br(12,n,t,s|2),e.elementType=af,e.lanes=i,e;case of:return e=br(13,n,t,s),e.elementType=of,e.lanes=i,e;case lf:return e=br(19,n,t,s),e.elementType=lf,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:a=10;break e;case xb:a=9;break e;case sh:a=11;break e;case ih:a=14;break e;case Bs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ti(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=br(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function ap(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function op(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function j5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,a,l,c){return e=new j5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function N5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=dr;var la=pb.exports,N0=la;rf.createRoot=N0.createRoot,rf.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function D5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||D5()})}function _u(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 Ua(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 M5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Xf(v.location,b,x);u=d()+1;let _=R0(y,u),k=v.createHref(y);try{a.pushState(_,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(k)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Xf(v.location,b,x);u=d();let _=R0(y,u),k=v.createHref(y);a.replaceState(_,"",k),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Zt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,p),c=b,()=>{s.removeEventListener(P0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var A0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(A0||(A0={}));function O5(e,t,n){return n===void 0&&(n="/"),I5(e,t,n)}function I5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let a=fw(e);B5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Zt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Zt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:q5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of mw(i.path))s(i,a,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=mw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function B5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:W5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const F5=/^:[\w-]+$/,U5=3,V5=2,z5=1,$5=10,H5=-2,T0=e=>e==="*";function q5(e,t){let n=e.split("/"),r=n.length;return n.some(T0)&&(r+=H5),t&&(r+=V5),n.filter(s=>!T0(s)).reduce((s,i)=>s+(F5.test(i)?U5:i===""?z5:$5),r)}function W5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function G5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function Q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Y5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 X5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,J5=e=>X5.test(e);function Z5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(J5(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=L0(n.substring(1),"/"):i=L0(n,t)}else i=t;return{pathname:i,search:nN(r),hash:rN(s)}}function L0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lp(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 eN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=eN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Zt(!s.pathname||!s.pathname.includes("?"),lp("?","pathname","search",s)),Zt(!s.pathname||!s.pathname.includes("#"),lp("#","pathname","hash",s)),Zt(!s.search||!s.search.includes("#"),lp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=Z5(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),tN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function sN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const iN=["get",...xw];new Set(iN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=gw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const cN=m.createContext(null);function uN(e){let t=m.useContext(Rs).outlet;return t&&m.createElement(cN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Rs),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Hi),{matches:s}=m.useContext(Rs),{pathname:i}=bl(),a=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function dN(e,t){return pN(e,t)}function pN(e,t,n,r){_l()||Zt(!1);let{navigator:s}=m.useContext(Hi),{matches:i}=m.useContext(Rs),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Zt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=O5(e,{pathname:h}),v=xN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function fN(){let e=bN(),t=sN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const mN=m.createElement(fN,null);class hN extends m.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?m.createElement(Rs.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function gN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Rs.Provider,{value:t},r)}function xN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Zt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||mN,c&&(u<0&&f===0?(kN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(gN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(hN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function vN(e){let t=m.useContext(Wh);return t||Zt(!1),t}function yN(e){let t=m.useContext(aN);return t||Zt(!1),t}function _N(e){let t=m.useContext(Rs);return t||Zt(!1),t}function Sw(e){let t=_N(),n=t.matches[t.matches.length-1];return n.route.id||Zt(!1),n.route.id}function bN(){var e;let t=m.useContext(vw),n=yN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wN(){let{router:e}=vN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const D0={};function kN(e,t,n){D0[e]||(D0[e]=!0)}function SN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function EN(e){return uN(e.context)}function wi(e){Zt(!1)}function CN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Zt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(Hi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function jN(e){let{children:t,location:n}=e;return dN(Jf(t),n)}new Promise(()=>{});function Jf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jf(r.props.children,i));return}r.type!==wi&&Zt(!1),!r.props.index||!r.props.children||Zt(!1);let a={id:r.props.id||i.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&&(a.children=Jf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zf(){return Zf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function PN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RN(e,t){return e.button===0&&(!t||t==="_self")&&!PN(e)}const AN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TN="6";try{window.__reactRouterVersion=TN}catch{}const LN="startTransition",M0=w2[LN];function DN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=L5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&M0?M0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>SN(r),[r]),m.createElement(CN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const MN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ON=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=NN(t,AN),{basename:h}=m.useContext(Hi),g,v=!1;if(typeof u=="string"&&ON.test(u)&&(g=u,MN))try{let _=new URL(window.location.href),k=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=qh(k.pathname,h);k.origin===_.origin&&A!=null?u=A+k.search+k.hash:v=!0}catch{}let b=oN(u,{relative:s}),x=IN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zf({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function IN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=cd(),u=bl(),d=bw(e,{relative:a});return m.useCallback(p=>{if(RN(p,n)){p.preventDefault();let f=r!==void 0?r:_u(u)===_u(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let BN={data:""},FN=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||BN},UN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VN=/\/\*[^]*?\*\/| +/g,B0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ls={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},zN=(e,t,n,r,s)=>{let i=Ew(e),a=ls[i]||(ls[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ls[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=UN.exec(u.replace(VN,""));)d[4]?f.shift():d[3]?(p=d[3].replace(B0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(B0," ").trim();return f[0]})(e);ls[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&ls.g?ls.g:null;return n&&(ls.g=ls[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ls[a],t,r,l),a},$N=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return zN(n.unshift?n.raw?$N(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,FN(t.target),t.g,t.o,t.k)}let Cw,em,tm;ud.bind({g:1});let js=ud.bind({k:1});function HN(e,t,n,r){$s.p=t,Cw=e,em=n,tm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Cw(u,l)}return s}}var qN=e=>typeof e=="function",wu=(e,t)=>qN(e)?e(t):e,WN=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),GN=20,Gh="default",Nw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Nw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:GN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Bc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Aw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),KN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},QN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},YN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||QN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},XN=(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)||WN()}),wl=e=>(t,n)=>{let r=XN(t,e,n);return dd(r.toasterId||KN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Aw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Aw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var JN=1e3,ZN=(e,t="default")=>{let{toasts:n,pausedAt:r}=YN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=JN)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,k)=>k_.visible).slice(...h?[y+1]:[0,y]).reduce((_,k)=>_+(k.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},eP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,tP=js` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,nP=js` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,rP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${eP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${tP} 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: ${nP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,sP=js` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,iP=ui("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: ${sP} 1s linear infinite; +`,aP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,oP=js` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,lP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${aP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${oP} 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; + } +`,cP=ui("div")` + position: absolute; +`,uP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,dP=js` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,pP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${dP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,fP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(pP,null,t):t:n==="blank"?null:m.createElement(uP,null,m.createElement(iP,{...r}),n!=="loading"&&m.createElement(cP,null,n==="error"?m.createElement(rP,{...r}):m.createElement(lP,{...r})))},mP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,hP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,gP="0%{opacity:0;} 100%{opacity:1;}",xP="0%{opacity:1;} 100%{opacity:0;}",vP=ui("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; +`,yP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,_P=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[gP,xP]:[mP(n),hP(n)];return{animation:t?`${js(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${js(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},bP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?_P(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(fP,{toast:e}),a=m.createElement(yP,{...e.ariaProps},wu(e.message,e));return m.createElement(vP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});HN(m.createElement);var wP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},kP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},SP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,EP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=ZN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=kP(p,f);return m.createElement(wP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?SP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(bP,{toast:d,position:p}))}))},We=an;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const pd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class CP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function jP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(CP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const NP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Qh(PP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(jP,{isPresent:n,children:e})),o.jsx(pd.Provider,{value:d,children:e})};function PP(){return new Map}function Tw(e=!0){const t=m.useContext(pd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const uc=e=>e.key||"";function F0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Lw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Tw(a),u=m.useMemo(()=>F0(e),[e]),d=a&&!l?[]:u.map(uc),p=m.useRef(!0),f=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Lw(()=>{p.current=!1,f.current=u;for(let k=0;k{const A=uc(k),S=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach($=>{$||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(NP,{isPresent:S,initial:!p.current||n?void 0:!1,custom:S?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:S?void 0:T,children:k},A)})})},or=e=>e;let Dw=or;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},_s=e=>e*1e3,bs=e=>e/1e3,RP={useManualTiming:!1};function AP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],TP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=dc.reduce((x,y)=>(x[y]=AP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,TP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=a[y];return x[y]=(k,A=!1,S=!1)=>(n||g(),_.schedule(k,A,S)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function LP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const DP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||DP.has(e)}let Iw=e=>!ku(e);function MP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{MP(require("@emotion/is-prop-valid").default)}catch{}function OP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function IP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const fd=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>sl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function BP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function FP(e){const{initial:t,animate:n}=BP(e,m.useContext(fd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const UP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),zP="framerAppearId",Fw="data-"+tg(zP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function $P(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(fd),c=m.useContext(Ow),u=m.useContext(pd),d=m.useContext(Yh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(Uw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&HP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Fw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Lw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),ng.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function HP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function qP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&LP(e);function l(u,d){let p;const f={...m.useContext(Yh),...u,layoutId:WP(u)},{isStatic:h}=f,g=FP(u),v=r(u,h);if(!h&&Xh){GP();const b=KP(f);p=b.MeasureLayout,g.visualElement=$P(s,v,f,t,b.ProjectionNode)}return o.jsxs(fd.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,VP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[UP]=s,c}function WP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function GP(e,t){m.useContext(Ow).strict}function KP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const QP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(QP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),YP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XP=e=>rm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Fc(e){const t=jn(e)?e.get():e;return YP(t)?t.toValue():t}function JP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:ZP(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const zw=e=>(t,n)=>{const r=m.useContext(fd),s=m.useContext(pd),i=()=>JP(e,t,r,s);return n?i():Qh(i)};function ZP(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Fc(i[f]);let{initial:a,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!md(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),eR=$w("var(--"),ig=e=>eR(e)?tR.test(e.split("/*")[0].trim()):!1,tR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Ns=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>Ns(0,1,e)},pc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Jr=kl("%"),Ae=kl("px"),nR=kl("vh"),rR=kl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},sR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},iR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:pc,scaleX:pc,scaleY:pc,scaleZ:pc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:$0,originY:$0,originZ:Ae},H0={...za,transform:Math.round},ag={...sR,...iR,zIndex:H0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:H0},aR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},oR=Va.length;function lR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function fR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return qi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Yw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function mR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],hR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(qi.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{mR(n,r),Et.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},gR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!jn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function xR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return og(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,xR(e,t)),r}function yR(e,t){const n={},r=vR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function _R(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function bR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(rg(n)?_R:yR)(r,i,a,n),u=OP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function wR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...rg(r)?hR:gR,preloadedFeatures:e,useRender:bR(s),createVisualElement:t,Component:r};return qP(a)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class SR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(kR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class ER extends SR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function pg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function fg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",CR={linearEasing:void 0};function jR(e,t){const n=Jh(e);return()=>{var r;return(r=CR[t])!==null&&r!==void 0?r:n()}}const Eu=jR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Eu()?tk(e,t):mg(e)?xo(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const Rr={x:!1,y:!1};function sk(){return Rr.x||Rr.y}function NR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=NR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function PR(e,t,n={}){const[r,s,i]=ik(e,n),a=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,RR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AR(e){return RR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function up(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const TR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(vo.has(n))return;up(n,"down");const s=Q0(()=>{up(n,"up")}),i=()=>up(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function LR(e,t,n={}){const[r,s,i]=ik(e,n),a=l=>{const c=l.currentTarget;if(!Y0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!Y0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!AR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>TR(u,s),s)}),i}function DR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Va]);let Uc;function MR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(xn.isProcessing||RP.useManualTiming?xn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(MR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class IR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=OR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),Et.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new IR(e,t)}function BR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function FR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=XP(i[a]);BR(e,a,l)}}function UR(e){return!!(jn(e)&&e.add)}function am(e,t){const n=e.getValue("willChange");if(UR(n))return n.add(t)}function ck(e){return e.props[Fw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,VR=1e-7,zR=12;function $R(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=uk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>VR&&++l$R(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),fk=Sl(.33,1.53,.69,.99),yg=pk(fk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=pk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function HR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const Po=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qR(e){return e==null}const WR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&WR.test(n)&&n.startsWith(e)||t&&!qR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},GR=e=>Ns(0,255,e),dp={...za,transform:e=>Math.round(GR(e))},Pi={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dp.transform(e)+", "+dp.transform(t)+", "+dp.transform(n)+", "+Po(il.transform(r))+")"};function KR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const om={test:wg("#"),parse:KR,transform:Pi.transform},ua={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(Po(t))+", "+Jr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>Pi.test(e)||om.test(e)||ua.test(e),parse:e=>Pi.test(e)?Pi.parse(e):ua.test(e)?ua.parse(e):om.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Pi.transform(e):ua.transform(e)},QR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(QR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",XR="var",JR="var(",J0="${}",ZR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(ZR,c=>(Sn.test(c)?(r.color.push(i),s.push(bk),n.push(Sn.parse(c))):c.startsWith(JR)?(r.var.push(i),s.push(XR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return ol(e).values}function kk(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function tA(e){const t=wk(e);return kk(e)(t.map(eA))}const ai={test:YR,parse:wk,createTransformer:kk,getAnimatableNone:tA},nA=new Set(["brightness","contrast","saturate","opacity"]);function rA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=nA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const sA=/\b([a-z-]*)\(.*?\)/gu,lm={...ai,getAnimatableNone:e=>{const t=e.match(sA);return t?t.map(rA).join(" "):e}},iA={...ag,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:lm,WebkitFilter:lm},kg=e=>iA[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aA=new Set(["auto","none","0"]);function oA(e,t,n){let r=0,s;for(;re===za||e===Ae,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},lA=new Set(["x","y","z"]),cA=Va.filter(e=>!lA.has(e));function uA(e){const t=[];return cA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Li=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Li).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=uA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Li.forEach(e=>e.complete()),Li.clear()}function Ck(){Li.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function dA(){Ck(),Ek()}class Sg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Li.add(this),cm||(cm=!0,Et.read(Ck),Et.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),pA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fA(e){const t=pA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=fA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return jk(a)?parseFloat(a):a}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),mA={test:e=>e==="auto",parse:e=>e},Rk=[za,Ae,Jr,Is,rR,nR,mA],nv=e=>Rk.find(Pk(e));class Ak extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function hA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(xA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const vA=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>vA?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!gA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Dt=(e,t,n)=>e+(t-e)*n;function pp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function yA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pp(c,l,e+1/3),i=pp(c,l,e),a=pp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function Cu(e,t){return n=>n>0?t:e}const fp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},_A=[om,Pi,ua],bA=e=>_A.find(t=>t.test(e));function sv(e){const t=bA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=yA(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Cu(e,t);const s={...n};return i=>(s.red=fp(n.red,r.red,i),s.green=fp(n.green,r.green,i),s.blue=fp(n.blue,r.blue,i),s.alpha=Dt(n.alpha,r.alpha,i),Pi.transform(s))},wA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(wA),dm=new Set(["none","hidden"]);function kA(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SA(e,t){return n=>Dt(e,t,n)}function Eg(e){return typeof e=="number"?SA:typeof e=="string"?ig(e)?Cu:Sn.test(e)?iv:jA:Array.isArray(e)?Lk:typeof e=="object"?Sn.test(e)?iv:EA:Cu}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Eg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function CA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?kA(e,t):El(Lk(CA(r,s),s.values),n):Cu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Dt(e,t,n):Eg(e)(e,t)}const NA=5;function Mk(e,t,n){const r=Math.max(t-NA,0);return lk(n-e(r),t-r)}const Vt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mp=.001;function PA({duration:e=Vt.duration,bounce:t=Vt.bounce,velocity:n=Vt.velocity,mass:r=Vt.mass}){let s,i,a=1-t;a=Ns(Vt.minDamping,Vt.maxDamping,a),e=Ns(Vt.minDuration,Vt.maxDuration,bs(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=pm(u,a),g=Math.exp(-p);return mp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=pm(Math.pow(u,2),a);return(-s(u)+mp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-mp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=AA(s,i,l);if(e=_s(e),isNaN(c))return{stiffness:Vt.stiffness,damping:Vt.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const RA=12;function AA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function DA(e){let t={velocity:Vt.velocity,stiffness:Vt.stiffness,damping:Vt.damping,mass:Vt.mass,isResolvedFromDuration:!1,...e};if(!av(e,LA)&&av(e,TA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Ns(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Vt.mass,stiffness:s,damping:i}}else{const n=PA(e);t={...t,...n,mass:Vt.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=Vt.visualDuration,t=Vt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=DA({...n,velocity:-bs(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=bs(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Vt.restSpeed.granular:Vt.restSpeed.default),s||(s=y?Vt.restDelta.granular:Vt.restDelta.default);let _;if(v<1){const A=pm(x,v);_=S=>{const T=Math.exp(-v*x*S);return a-T*((g+v*x*b)/A*Math.sin(A*S)+b*Math.cos(A*S))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=S=>{const T=Math.exp(-v*x*S),D=Math.min(A*S,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const k={calculatedDuration:h&&p||null,next:A=>{const S=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?_s(g):Mk(_,A,S));const D=Math.abs(T)<=r,$=Math.abs(a-S)<=s;l.done=D&&$}return l.value=l.done?a:S,l},toString:()=>{const A=Math.min(ek(k),sm),S=tk(T=>k.next(A*T).value,A,30);return A+"ms "+S}};return k}function ov({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),k=D=>{const $=y(D),j=_(D);f.done=Math.abs($)<=u,f.value=f.done?x:j};let A,S;const T=D=>{h(f.value)&&(A=D,S=Ok({keyframes:[f.value,g(f.value)],velocity:Mk(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let $=!1;return!S&&A===void 0&&($=!0,k(D),T(D)),A!==void 0&&D>=A?S.next(D-A):(!$&&k(D),f)}}}const MA=Sl(.42,0,1,1),OA=Sl(0,0,.58,1),Ik=Sl(.42,0,.58,1),IA=e=>Array.isArray(e)&&typeof e[0]!="number",BA={linear:or,easeIn:MA,easeInOut:Ik,easeOut:OA,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:fk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return BA[e];return e};function FA(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=FA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(Ns(e[0],e[i-1],d)):u}function VA(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Dt(n,1,s))}}function zA(e){const t=[0];return VA(t,e.length-1),t}function $A(e,t){return e.map(n=>n*t)}function HA(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=IA(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},a=$A(n&&n.length===t.length?n:zA(t),e),l=UA(a,t,{ease:Array.isArray(s)?s:HA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const qA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Et.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:Zr.now()}},WA={decay:ov,inertia:ov,tween:ju,keyframes:ju,spring:Ok},GA=e=>e/100;class Cg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=fg(n)?n:WA[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=El(GA,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,k=i;if(h){const D=Math.min(this.currentTime,d)/p;let $=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&$--,$=Math.min($,h+1),!!($%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(k=a)),_=Ns(0,1,j)*p}const A=y?{done:!1,value:c[0]}:k.next(_);l&&(A.value=l(A.value));let{done:S}=A;!y&&u!==null&&(S=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return T&&s!==void 0&&(A.value=xd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?bs(t.calculatedDuration):0}get time(){return bs(this.currentTime)}set time(t){t=_s(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=bs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=qA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const KA=new Set(["opacity","clipPath","filter","transform"]);function QA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const YA=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,XA=2e4;function JA(e){return fg(e.type)||e.type==="spring"||!nk(e.ease)}function ZA(e,t){const n=new Cg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Eu()&&eT(i)&&(i=Bk[i]),JA(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=ZA(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=QA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(xd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return bs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return bs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_s(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return or;const{animation:r}=n;G0(r,t)}return or}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new Cg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=_s(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return YA()&&r&&KA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const tT={type:"spring",stiffness:500,damping:25,restSpeed:10},nT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),rT={type:"keyframes",duration:.8},sT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iT=(e,{keyframes:t})=>t.length>2?rT:qi.has(e)?e.startsWith("scale")?nT(t[1]):tT:sT;function aT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>a=>{const l=pg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-_s(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};aT(l)||(d={...d,...iT(e,d)}),d.duration&&(d.duration=_s(d.duration)),d.repeatDelay&&(d.repeatDelay=_s(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=xd(d.keyframes,l);if(f!==void 0)return Et.update(()=>{d.onUpdate(f),d.onComplete()}),new ER([])}return!i&&cv.supports(d)?new cv(d):new Cg(d)};function oT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&oT(d,p))continue;const g={delay:n,...pg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,p,Et);y!==null&&(g.startTime=y,v=!0)}}am(e,p),f.start(jg(p,f,h,e.shouldReduceMotion&&ok.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{Et.update(()=>{l&&FR(e,l)})}),u}function fm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return lT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function lT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(cT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(fm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function cT(e,t){return e.sortNodePosition(t)}function uT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>fm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=fm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const dT=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>uT(e,n,r)))}function hT(e){let t=mT(e),n=uv(),r=!0;const s=c=>(u,d)=>{var p;const f=gd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=Uk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&k,$=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&($=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const F=e.getValue(oe);F&&(F.liveStyle=!1)};for(const oe in re){const F=H[oe],Q=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;rm(F)&&rm(Q)?N=!Zw(F,Q):N=F!==Q,N?F!=null?le(oe):f.add(oe):F!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(S&&T)||$)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function gT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function vi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:vi(!0),whileInView:vi(),whileHover:vi(),whileTap:vi(),whileDrag:vi(),whileFocus:vi(),exit:vi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xT extends di{constructor(t){super(t),t.animationState||(t.animationState=hT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let vT=0;class yT extends di{constructor(){super(...arguments),this.id=vT++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const _T={animation:{Feature:xT},exit:{Feature:yT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const bT=e=>t=>hg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,bT(n),r)}const dv=(e,t)=>Math.abs(e-t);function wT(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=gp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=wT(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=hp(f,this.transformPagePoint),Et.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gp(p.type==="pointercancel"?this.lastMoveEventInfo:hp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=hp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,gp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function hp(e,t){return t?{point:t(e.point)}:e}function pv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gp({point:e},t){return{point:e,delta:pv(e,zk(t)),offset:pv(e,kT(t)),velocity:ST(t,.1)}}function kT(e){return e[0]}function zk(e){return e[e.length-1]}function ST(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const i=bs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const $k=1e-4,ET=1-$k,CT=1+$k,Hk=.01,jT=0-Hk,NT=0+Hk;function ur(e){return e.max-e.min}function PT(e,t,n){return Math.abs(e-t)<=n}function fv(e,t,n,r=.5){e.origin=r,e.originPoint=Dt(t.min,t.max,e.origin),e.scale=ur(n)/ur(t),e.translate=Dt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=ET&&e.scale<=CT||isNaN(e.scale))&&(e.scale=1),(e.translate>=jT&&e.translate<=NT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){fv(e.x,t.x,n.x,r?r.originX:void 0),fv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ur(t)}function RT(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ur(t)}function To(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function AT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Dt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TT(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),Ns(0,1,n)}function MT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function OT(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),Gt=()=>({x:bv(),y:bv()});function gr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function IT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function BT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function xp(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!xp(e)||!xp(t)||!xp(n)}function ki(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Ev=1.0000000000001;function FT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,s=.5){const i=Dt(e.min,e.max,s);gm(e,t,n,i,r)}function fa(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(BT(e.getBoundingClientRect(),t))}function UT(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,VT=new WeakMap;class zT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Gt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ur(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&Et.postRender(()=>g(d,p)),am(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=$T(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&Et.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!fc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=AT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=TT(s.layoutBox,n):this.constraints=!1,this.elastic=OT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=MT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=UT(r,s.root,this.visualElement.getTransformPagePoint());let a=LT(s.layout.layoutBox,i);if(n){const l=n(IT(a));this.hasMutatedConstraints=!!l,l&&(a=qk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!fc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return am(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!fc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Dt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=DT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!fc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Dt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;VT.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),Et.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function fc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $T(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HT extends di{constructor(t){super(t),this.removeGroupControls=or,this.removeListeners=or,this.controls=new zT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||or}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&Et.postRender(()=>e(t,n))};class qT extends di{constructor(){super(...arguments),this.removePointerDownListener=or}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&Et.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},WT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Dt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class GT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;fR(KT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||Et.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Tw(),r=m.useContext(Kh);return o.jsx(GT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const KT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:WT};function QT(e,t,n){const r=jn(e)?e:al(e);return r.start(jg("",r,t,n)),r.animation}function YT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XT=(e,t)=>e.depth-t.depth;class JT{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XT),this.isDirty=!1,this.children.forEach(t)}}function ZT(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return Et.read(r,!0),()=>ii(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],eL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Ae.test(e);function tL(e,t,n,r,s,i){s?(e.opacity=Dt(0,n.opacity!==void 0?n.opacity:1,nL(r)),e.opacityExit=Dt(t.opacity!==void 0?t.opacity:1,0,rL(r))):i&&(e.opacity=Dt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Tv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Tv(e.x,t.x),Tv(e.y,t.y)}function Lv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function sL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Jr.test(t)&&(t=parseFloat(t),t=Dt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Dt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,a){sL(e,t[n],t[r],t[s],t.scale,i,a)}const iL=["x","scaleX","originX"],aL=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,iL,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,aL,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Bv(e,t){return e.min===t.min&&e.max===t.max}function oL(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Fv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Uv(e){return ur(e.x)/ur(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lL{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function cL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,vp=["","X","Y","Z"],uL={visibility:"hidden"},zv=1e3;let dL=0;function yp(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Et,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=dL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(mL),this.nodes.forEach(yL),this.nodes.forEach(_L),this.nodes.forEach(hL),yo&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=ZT(f,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||EL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const k={...pg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=k/1e3;qv(p.x,a.x,A),qv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&oL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Gt()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,tL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Et.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=QT(0,zv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Gt();const p=ur(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=ur(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new lL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&yp("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function pL(e){e.updateLayout()}function fL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(f);f.min=r[p].min,f.max=f.min+h}):rS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=Gt();To(g,n.layoutBox,f.layoutBox);const v=Gt();To(v,r,h.layoutBox),eS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function mL(e){yo&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function gL(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function xL(e){e.isLayoutDirty=!1}function vL(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yL(e){e.resolveTargetDelta()}function _L(e){e.calcProjection()}function bL(e){e.resetSkewAndRotation()}function wL(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Dt(t.translate,0,n),e.scale=Dt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Dt(t.min,n.min,r),e.max=Dt(t.max,n.max,r)}function kL(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function SL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const EL={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:or;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function CL(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!PT(Uv(t),Uv(n),.2)}function jL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const NL=nS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_p={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!_p.current){const e=new NL({});e.mount(window),e.setOptions({layoutScroll:!0}),_p.current=e}return _p.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),PL={pan:{Feature:qT},drag:{Feature:HT,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class RL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class AL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=LR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,bp=new WeakMap,LL=e=>{const t=xm.get(e.target);t&&t(e)},DL=e=>{e.forEach(LL)};function ML({root:e,...t}){const n=e||document;bp.has(n)||bp.set(n,{});const r=bp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(DL,{root:e,...t})),r[s]}function OL(e,t,n){const r=ML(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const IL={some:0,all:1};class BL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:IL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return OL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(FL(t,n))&&this.startObserver()}unmount(){}}function FL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const UL={inView:{Feature:BL},tap:{Feature:TL},focus:{Feature:AL},hover:{Feature:RL}},VL={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function zL(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const $L=[...Rk,Sn,ai],HL=e=>$L.find(Pk(e)),Jv=new WeakMap;function qL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class WL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||zL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Et.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Gt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!HL(s)&&ai.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends WL{constructor(){super(...arguments),this.KeyframeResolver=Ak}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function GL(e){return window.getComputedStyle(e)}class KL extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}else{const r=GL(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){og(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class QL extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Gt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const YL=(e,t)=>rg(e)?new QL(t):new KL(t,{allowProjection:e!==m.Fragment}),XL=wR({..._T,...UL,...PL,...VL},YL),$t=IP(XL);function JL({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const ZL=m.forwardRef(JL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const sD=m.forwardRef(rD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const wp=m.forwardRef(aD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const kp=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const pD=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(fD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Au=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sr=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const fs=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(ED);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const jD=m.forwardRef(CD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Tu=m.forwardRef(RD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(AD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(DD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const BD=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(FD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ms=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef(WD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Sp=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const o3=m.forwardRef(a3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Lu=m.forwardRef(l3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(g3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(w3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const S3=m.forwardRef(k3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(j3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const A3={},iy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(A3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},T3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function L3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var D3=typeof Object.is=="function"?Object.is:L3,M3=La.useState,O3=La.useEffect,I3=La.useLayoutEffect,B3=La.useDebugValue;function F3(e,t){var n=t(),r=M3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return I3(function(){s.value=n,s.getSnapshot=t,Ep(s)&&i({inst:s})},[e,n,t]),O3(function(){return Ep(s)&&i({inst:s}),e(function(){Ep(s)&&i({inst:s})})},[e]),B3(n),n}function Ep(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!D3(e,n)}catch{return!0}}function U3(e,t){return t()}var V3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?U3:F3;xS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:V3;gS.exports=xS;var z3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,$3=z3;function H3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var q3=typeof Object.is=="function"?Object.is:H3,W3=$3.useSyncExternalStore,G3=vd.useRef,K3=vd.useEffect,Q3=vd.useMemo,Y3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=G3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,q3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=W3(e,i[0],i[1]);return K3(function(){a.hasValue=!0,a.value=l},[l]),Y3(l),l};mS.exports=hS;var X3=mS.exports;const J3=qu(X3),vS={},{useDebugValue:Z3}=pn,{useSyncExternalStoreWithSelector:eM}=J3;let ay=!1;const tM=e=>e;function nM(e,t=tM,n){(vS?"production":void 0)!=="production"&&n&&!ay&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ay=!0);const r=eM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Z3(r),r}const oy=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?T3(e):e,n=(r,s)=>nM(t,r,s);return Object.assign(n,t),n},rM=e=>e?oy(e):oy;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:sM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=sM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=bd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Kn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ur("ArrayBuffer");function iM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const aM=bd("string"),Kn=bd("function"),wS=bd("number"),Nl=e=>e!==null&&typeof e=="object",oM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},lM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},cM=Ur("Date"),uM=Ur("File"),dM=Ur("Blob"),pM=Ur("FileList"),fM=e=>Nl(e)&&Kn(e.pipe),mM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Kn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Kn(e.toString)&&e.toString()==="[object FormData]"))},hM=Ur("URLSearchParams"),[gM,xM,vM,yM]=["ReadableStream","Request","Response","Headers"].map(Ur),_M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Da(e)&&e!==Ri;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const a=e&&kS(n,i)||i;Hc(n[a])&&Hc(s)?n[a]=wm(n[a],s):Hc(s)?n[a]=wm({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Kn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),wM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},SM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},EM=(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},CM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),NM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},PM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},RM=Ur("HTMLFormElement"),AM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),TM=Ur("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},LM=e=>{ES(e,(t,n)=>{if(Kn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Kn(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+"'")})}})},DM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},MM=()=>{},OM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function IM(e){return!!(e&&Kn(e.append)&&e[_S]==="FormData"&&e[yd])}const BM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},FM=Ur("AsyncFunction"),UM=e=>e&&(Nl(e)||Kn(e))&&Kn(e.then)&&Kn(e.catch),CS=((e,t)=>e?setImmediate:t?((n,r)=>(Ri.addEventListener("message",({source:s,data:i})=>{s===Ri&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Kn(Ri.postMessage)),VM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ri):typeof process<"u"&&process.nextTick||CS,zM=e=>e!=null&&Kn(e[yd]),z={isArray:$a,isArrayBuffer:bS,isBuffer:jl,isFormData:mM,isArrayBufferView:iM,isString:aM,isNumber:wS,isBoolean:oM,isObject:Nl,isPlainObject:Hc,isEmptyObject:lM,isReadableStream:gM,isRequest:xM,isResponse:vM,isHeaders:yM,isUndefined:Da,isDate:cM,isFile:uM,isBlob:dM,isRegExp:TM,isFunction:Kn,isStream:fM,isURLSearchParams:hM,isTypedArray:jM,isFileList:pM,forEach:Pl,merge:wm,extend:bM,trim:_M,stripBOM:wM,inherits:kM,toFlatObject:SM,kindOf:_d,kindOfTest:Ur,endsWith:EM,toArray:CM,forEachEntry:NM,matchAll:PM,isHTMLForm:RM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:LM,toObjectSet:DM,toCamelCase:AM,noop:MM,toFiniteNumber:OM,findKey:kS,global:Ri,isContextDefined:SS,isSpecCompliantForm:IM,toJSONObject:BM,isAsyncFn:FM,isThenable:UM,setImmediate:CS,asap:VM,isIterable:zM};function Oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}z.inherits(Oe,Error,{toJSON:function(){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:z.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Oe.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Oe,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Oe.from=(e,t,n,r,s,i)=>{const a=Object.create(jS);z.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Oe.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const $M=null;function km(e){return z.isPlainObject(e)||z.isArray(e)}function PS(e){return z.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function HM(e){return z.isArray(e)&&!e.some(km)}const qM=z.toFlatObject(z,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!z.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!z.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&z.isSpecCompliantForm(t);if(!z.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(z.isDate(g))return g.toISOString();if(z.isBoolean(g))return g.toString();if(!c&&z.isBlob(g))throw new Oe("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(g)||z.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(z.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(z.isArray(g)&&HM(g)||(z.isFileList(g)||z.endsWith(v,"[]"))&&(x=z.toArray(g)))return v=PS(v),x.forEach(function(_,k){!(z.isUndefined(_)||_===null)&&t.append(a===!0?cy([v],k,i):a===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(qM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!z.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),z.forEach(g,function(x,y){(!(z.isUndefined(x)||x===null)&&s.call(t,x,z.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!z.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function WM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function AS(e,t,n){if(!t)return e;const r=n&&n.encode||WM;z.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=z.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){z.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},GM=typeof URLSearchParams<"u"?URLSearchParams:Rg,KM=typeof FormData<"u"?FormData:null,QM=typeof Blob<"u"?Blob:null,YM={isBrowser:!0,classes:{URLSearchParams:GM,FormData:KM,Blob:QM},protocols:["http","https","file","blob","url","data"]},Ag=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,XM=Ag&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),JM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ZM=Ag&&window.location.href||"http://localhost",e4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ag,hasStandardBrowserEnv:XM,hasStandardBrowserWebWorkerEnv:JM,navigator:Sm,origin:ZM},Symbol.toStringTag,{value:"Module"})),Cn={...e4,...YM};function t4(e,t){return wd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&z.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function n4(e){return z.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function r4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&z.isArray(s)?s.length:a,c?(z.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!z.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&z.isArray(s[a])&&(s[a]=r4(s[a])),!l)}if(z.isFormData(e)&&z.isFunction(e.entries)){const n={};return z.forEachEntry(e,(r,s)=>{t(n4(r),s,n,0)}),n}return null}function s4(e,t,n){if(z.isString(e))try{return(t||JSON.parse)(e),z.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return s?JSON.stringify(LS(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return t4(t,this.formSerializer).toString();if((l=z.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),s4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Oe.from(l,Oe.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const i4=z.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"]),a4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&i4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},py=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:z.isArray(e)?e.map(qc):String(e)}function o4(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 l4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cp(e,t,n,r,s){if(z.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!z.isString(t)){if(z.isString(r))return t.indexOf(r)!==-1;if(z.isRegExp(r))return r.test(t)}}function c4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function u4(e,t){const n=z.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Qn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=z.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=qc(l))}const a=(l,c)=>z.forEach(l,(u,d)=>i(u,d,c));if(z.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(z.isString(t)&&(t=t.trim())&&!l4(t))a(a4(t),n);else if(z.isObject(t)&&z.isIterable(t)){let l={},c,u;for(const d of t){if(!z.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?z.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=z.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return o4(s);if(z.isFunction(n))return n.call(this,s,r);if(z.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=z.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Cp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=z.findKey(r,a);l&&(!n||Cp(r,r[l],l,n))&&(delete r[l],s=!0)}}return z.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Cp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return z.forEach(this,(s,i)=>{const a=z.findKey(r,i);if(a){n[a]=qc(s),delete n[i];return}const l=t?c4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return z.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&z.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(s=>r.set(s)),r}static accessor(t){const r=(this[py]=this[py]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(u4(s,a),r[l]=!0)}return z.isArray(t)?t.forEach(i):i(t),this}};Qn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);z.reduceDescriptors(Qn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});z.freezeMethods(Qn);function jp(e,t){const n=this||Rl,r=t||n,s=Qn.from(r.headers);let i=r.data;return z.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Oe.call(this,e??"canceled",Oe.ERR_CANCELED,t,n),this.name="CanceledError"}z.inherits(Ha,Oe,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Oe("Request failed with status code "+n.status,[Oe.ERR_BAD_REQUEST,Oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function d4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function p4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Du=(e,t,n=3)=>{let r=0;const s=p4(50,250);return f4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},fy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>z.asap(()=>e(...t)),m4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,h4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];z.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),z.isString(r)&&l.push(`path=${r}`),z.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),z.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function g4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function x4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!g4(t);return e&&(r||n==!1)?x4(e,t):t}const hy=e=>e instanceof Qn?{...e}:e;function Ui(e,t){t=t||{};const n={};function r(u,d,p,f){return z.isPlainObject(u)&&z.isPlainObject(d)?z.merge.call({caseless:f},u,d):z.isPlainObject(d)?z.merge({},d):z.isArray(d)?d.slice():d}function s(u,d,p,f){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!z.isUndefined(d))return r(void 0,d)}function a(u,d){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(hy(u),hy(d),p,!0)};return z.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);z.isUndefined(f)&&p!==l||(n[d]=f)}),n}const IS=e=>{const t=Ui({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Qn.from(a),t.url=AS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),z.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(z.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&z.isFunction(r)&&(r=r(t)),r||r!==!1&&m4(t.url))){const c=s&&i&&h4.read(i);c&&a.set(s,c)}return t},v4=typeof XMLHttpRequest<"u",y4=v4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const a=Qn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Qn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Oe("Request aborted",Oe.ECONNABORTED,e,b)),b=null)},b.onerror=function(k){const A=k&&k.message?k.message:"Network Error",S=new Oe(A,Oe.ERR_NETWORK,e,b);S.event=k||null,r(S),b=null},b.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||TS;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new Oe(k,A.clarifyTimeoutError?Oe.ETIMEDOUT:Oe.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&z.forEach(a.toJSON(),function(k,A){b.setRequestHeader(A,k)}),z.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Du(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Du(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=d4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Oe("Unsupported protocol "+y+":",Oe.ERR_BAD_REQUEST,e));return}b.send(i||null)})},_4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Oe?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Oe(`timeout ${t} of ms exceeded`,Oe.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>z.asap(l),c}},b4=function*(e,t){let n=e.byteLength;if(n{const s=w4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=z,S4=(({Request:e,Response:t})=>({Request:e,Response:t}))(z.global),{ReadableStream:vy,TextEncoder:yy}=z.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},E4=e=>{e=z.merge.call({skipUndefined:!0},S4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),a=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(Cn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&_y(()=>z.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Oe(`Response type '${g}' is not supported`,Oe.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(z.isBlob(g))return g.size;if(z.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(z.isArrayBufferView(g)||z.isArrayBuffer(g))return g.byteLength;if(z.isURLSearchParams(g)&&(g=g+""),z.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=z.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:k,onDownloadProgress:A,onUploadProgress:S,responseType:T,headers:D,withCredentials:$="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=_4([y,_&&_.toAbortSignal()],k),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let he;try{if(S&&u&&b!=="get"&&b!=="head"&&(he=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(z.isFormData(x)&&(pe=se.headers.get("content-type"))&&D.setContentType(pe),se.body){const[L,ke]=fy(he,Du(my(S)));x=gy(se.body,xy,L,ke)}}z.isString($)||($=$?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?$:void 0};re=i&&new n(v,oe);let F=await(i?H(re,j):H(v,oe));const Q=d&&(T==="stream"||T==="response");if(d&&(A||Q&&le)){const se={};["status","statusText","headers"].forEach(De=>{se[De]=F[De]});const pe=z.toFiniteNumber(F.headers.get("content-length")),[L,ke]=A&&fy(pe,Du(my(A),!0))||[];F=new r(gy(F.body,xy,L,()=>{ke&&ke(),le&&le()}),se)}T=T||"text";let N=await p[z.findKey(p,T)||"text"](F,g);return!Q&&le&&le(),await new Promise((se,pe)=>{MS(se,pe,{data:N,headers:Qn.from(F.headers),status:F.status,statusText:F.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Oe("Network Error",Oe.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Oe.from(xe,xe&&xe.code,g,re)}}},C4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=C4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:E4(t)),d=u;return u};BS();const Tg={http:$M,xhr:y4,fetch:{get:BS}};z.forEach(Tg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,j4=e=>z.isFunction(e)||e===null||e===!1;function N4(e,t){e=z.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(by).join(` +`):" "+by(a[0]):"as no adapter specified";throw new Oe("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:N4,adapters:Tg};function Np(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function wy(e){return Np(e),e.headers=Qn.from(e.headers),e.data=jp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Np(e),r.data=jp.call(e,e.transformResponse,r),r.headers=Qn.from(r.headers),r},function(r){return DS(r)||(Np(e),r&&r.response&&(r.response.data=jp.call(e,e.transformResponse,r.response),r.response.headers=Qn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+US+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Oe(s(a," has been removed"+(n?" in "+n:"")),Oe.ERR_DEPRECATED);return n&&!ky[a]&&(ky[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function P4(e,t,n){if(typeof e!="object")throw new Oe("options must be an object",Oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Oe("option "+i+" must be "+c,Oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Oe("Unknown option "+i,Oe.ERR_BAD_OPTION)}}const Wc={assertOptions:P4,validators:kd},Hr=Wc.validators;let Di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ui(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(z.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&z.merge(i.common,i[n.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Qn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 VS(function(s){t=s}),cancel:t}}};function A4(e){return function(n){return e.apply(null,n)}}function T4(e){return z.isObject(e)&&e.isAxiosError===!0}const Em={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(Em).forEach(([e,t])=>{Em[t]=e});function zS(e){const t=new Di(e),n=yS(Di.prototype.request,t);return z.extend(n,Di.prototype,t,{allOwnKeys:!0}),z.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Ui(e,s))},n}const Qt=zS(Rl);Qt.Axios=Di;Qt.CanceledError=Ha;Qt.CancelToken=R4;Qt.isCancel=DS;Qt.VERSION=US;Qt.toFormData=wd;Qt.AxiosError=Oe;Qt.Cancel=Qt.CanceledError;Qt.all=function(t){return Promise.all(t)};Qt.spread=A4;Qt.isAxiosError=T4;Qt.mergeConfig=Ui;Qt.AxiosHeaders=Qn;Qt.formToJSON=e=>LS(z.isHTMLForm(e)?new FormData(e):e);Qt.getAdapter=FS.getAdapter;Qt.HttpStatusCode=Em;Qt.default=Qt;const{Axios:B8,AxiosError:F8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=Qt,ye=Qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Cm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const L4=()=>{jm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Cm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const D4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},M4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},O4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},I4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},B4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},F4=async e=>{await ye.delete(`/estimates/${e}`)},U4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},V4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},z4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},$4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},H4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},q4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},W4=async e=>{await ye.delete(`/line-items/${e}`)},G4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},K4=async e=>{await ye.post("/estimates/reorder",e)},Q4=async()=>{const{data:e}=await ye.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},Y4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},X4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},J4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Z4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},eO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},Ey=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},tO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},nO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Cy=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},rO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},sO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},iO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},aO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},oO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},lO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},cO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},uO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},dO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},pO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},fO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ay=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?mO(n):pO(n);case"ALL_PURPOSE":return t?hO(n):fO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return rE(n);case"DATABRICKS_APPS":return eE(n);case"CLEAN_ROOM":return gO(n);case"AI_PARSE":return tE(n);case"SHUTTERSTOCK_IMAGEAI":return nE(n);case"LAKEFLOW_CONNECT":return xO(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function cs(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([cs("instance-dbu-rates.json"),cs("dbu-multipliers.json"),cs("dbu-rates.json"),cs("dbsql-rates.json"),cs("dbsql-warehouse-config.json"),cs("vector-search-rates.json"),cs("model-serving-rates.json"),cs("fmapi-databricks-rates.json"),cs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),sE()}}function sE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function iE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Lg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"];function aE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Ty;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},jO="v7",ds=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(ds);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(ds),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(ds),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(ds),null;return t}catch{return localStorage.removeItem(ds),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(ds,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(ds)}catch{}}const Pp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Rp=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Ap=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Dp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Mp=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],ws=rM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"}],cloudProviders:Pp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Rp,dbsqlWarehouseTypes:[],dltEditions:Ap,fmapiProviders:Mp,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tp,vmPaymentOptions:Lp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Dp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:sE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await D4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Sy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await O4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await F4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await $4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await H4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await q4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await W4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]},p=u.workloadTypes||[],f=new Set(p.map(g=>g.workload_type)),h=[...p,...r.workloadTypes.filter(g=>!f.has(g.workload_type))];e({workloadTypes:h.length>0?h:r.workloadTypes,cloudProviders:u.cloudProviders||Pp,dbsqlSizes:u.dbsqlSizes||Rp,dltEditions:u.dltEditions||Ap,fmapiProviders:u.fmapiProviders||Mp,vmPricingTiers:u.vmPricingTiers||Tp,vmPaymentOptions:u.vmPaymentOptions||Lp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Dp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,k,A,S,T,D,$,j,H,X,re,le]=await Promise.all([Q4().catch(()=>r.workloadTypes),X4().catch(()=>Pp),J4().catch(()=>Rp),Z4().catch(()=>Ap),eO().catch(()=>Mp),cO().catch(()=>Tp),uO().catch(()=>Lp),iO().catch(()=>null),oO().catch(()=>null),Py().catch(()=>Dp),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),sO(s).catch(()=>[]),aO(s).catch(()=>[]),Ey().catch(()=>[]),Cy().catch(()=>[]),Nm().catch(()=>[])]),he={aws:A,azure:S,gcp:T},xe=A,oe={};j.forEach(se=>{const pe=`${se.model}:${se.rate_type}`;oe[pe]=se});const F={};H.forEach(se=>{const pe=`${se.provider}:${se.model}:${se.rate_type}`;F[pe]=se});const Q=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Q.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,vectorSearchModes:$,fmapiDatabricksRates:oe,fmapiProprietaryRates:F,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await Y4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Ey();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Cy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await lO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=nO({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Lg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await HS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ay(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ay(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await rE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await eE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"AI_PARSE":c=await tE({...l,mode:"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1});break;case"SHUTTERSTOCK_IMAGEAI":c=await nE({...l,images_per_month:n.shutterstock_images||100});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function Ly(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function oE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Rm(e){return e.toLowerCase()}class Yn{constructor(t,n){this.attribute=n,this.property=t}}Yn.prototype.attribute="";Yn.prototype.booleanish=!1;Yn.prototype.boolean=!1;Yn.prototype.commaOrSpaceSeparated=!1;Yn.prototype.commaSeparated=!1;Yn.prototype.defined=!1;Yn.prototype.mustUseProperty=!1;Yn.prototype.number=!1;Yn.prototype.overloadedBoolean=!1;Yn.prototype.property="";Yn.prototype.spaceSeparated=!1;Yn.prototype.space=void 0;let BO=0;const Ue=Wi(),Xt=Wi(),Am=Wi(),ne=Wi(),_t=Wi(),_a=Wi(),nr=Wi();function Wi(){return 2**++BO}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ue,booleanish:Xt,commaOrSpaceSeparated:nr,commaSeparated:_a,number:ne,overloadedBoolean:Am,spaceSeparated:_t},Symbol.toStringTag,{value:"Module"})),Op=Object.keys(Tm);class Dg extends Yn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Dg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=oE([lE,FO,dE,pE,fE],"html"),Mg=oE([lE,UO,dE,pE,fE],"svg");function KO(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,By="/",Fy="*",Ei="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(By!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;Ei!=e.charAt(v)&&(Fy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,Ei===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:Uy(v[0].replace(Iy,Ei)),value:b?Uy(b[0].replace(Iy,Ei)):Ei});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(tI,Ei):Ei}var aI=iI,oI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,Vy):e=e.replace(fI,Vy),e.replace(dI,gI))};Sd.camelCase=xI;var vI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Og),_I=Sd;function Lm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Lm.default=Lm;var bI=Lm;const wI=qu(bI),mE=hE("end"),Ig=hE("start");function hE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Ig(e),n=mE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),gE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=xE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function xE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=yE(e,t.tagName,!1),a=II(e,t);let l=Ug(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:yE(e,t.name,!0),a=BI(e,t),l=Ug(e,t);return vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Fg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function vE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=FI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function BI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(lr(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function bE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=pi(/[A-Za-z]/),Nn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function gt(e){return e!==null&&(e<0||e===32)}function Ge(e){return e===-2||e===-1||e===32}const Ed=pi(new RegExp("\\p{P}|\\p{S}","u")),Vi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Je(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return Ge(c)?(e.enter(n),l(c)):t(c)}function l(c){return Ge(c)&&i++a))return;const T=t.events.length;let D=T,$,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if($){j=t.events[D][1].end;break}$=!0}for(x(r),S=T;S_;){const A=n[k];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tB(e,t,n){return Je(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||gt(e)||Vi(e))return 1;if(Ed(e))return 2}function Cd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Ky(p,-c),Ky(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,Cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,lr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&Ge(S)?Je(e,y,"linePrefix",i+1)(S):y(S)}function y(S){return S===null||Ne(S)?e.check(Qy,v,k)(S):(e.enter("codeFlowValue"),_(S))}function _(S){return S===null||Ne(S)?(e.exit("codeFlowValue"),y(S)):(e.consume(S),_)}function k(S){return e.exit("codeFenced"),t(S)}function A(S,T,D){let $=0;return j;function j(he){return S.enter("lineEnding"),S.consume(he),S.exit("lineEnding"),H}function H(he){return S.enter("codeFencedFence"),Ge(he)?Je(S,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(he):X(he)}function X(he){return he===l?(S.enter("codeFencedFenceSequence"),re(he)):D(he)}function re(he){return he===l?($++,S.consume(he),re):$>=a?(S.exit("codeFencedFenceSequence"),Ge(he)?Je(S,le,"whitespace")(he):le(he)):D(he)}function le(he){return he===null||Ne(he)?(S.exit("codeFencedFence"),T(he)):D(he)}}}function fB(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hB},mB={partial:!0,tokenize:gB};function hB(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Je(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mB,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gB(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Je(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xB={name:"codeText",previous:yB,resolve:vB,tokenize:_B};function vB(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function jE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||gt(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!Ge(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function PE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Je(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ge(s)?Je(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NB={name:"definition",tokenize:RB},PB={partial:!0,tokenize:AB};function RB(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return NE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return gt(h)?Do(e,u)(h):u(h)}function u(h){return jE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PB,p,p)(h)}function p(h){return Ge(h)?Je(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AB(e,t,n){return r;function r(l){return gt(l)?Do(e,s)(l):n(l)}function s(l){return PE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Ge(l)?Je(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TB={name:"hardBreakEscape",tokenize:LB};function LB(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DB={name:"headingAtx",resolve:MB,tokenize:OB};function MB(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},lr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OB(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||gt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):Ge(d)?Je(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||gt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IB=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],BB={concrete:!0,name:"htmlFlow",resolveTo:VB,tokenize:zB},FB={partial:!0,tokenize:HB},UB={partial:!0,tokenize:$B};function VB(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zB(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):On(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const ke="CDATA[";return L===ke.charCodeAt(l++)?(e.consume(L),l===ke.length?r.interrupt?t:X:g):n(L)}function v(L){return On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||gt(L)){const ke=L===47,De=a.toLowerCase();return!ke&&!i&&Xy.includes(De)?(s=1,r.interrupt?t(L):X(L)):IB.includes(a.toLowerCase())?(s=6,ke?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return Ge(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||On(L)?(e.consume(L),k):Ge(L)?(e.consume(L),_):j(L)}function k(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),k):A(L)}function A(L){return L===61?(e.consume(L),S):Ge(L)?(e.consume(L),A):_(L)}function S(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):Ge(L)?(e.consume(L),S):D(L)}function T(L){return L===c?(e.consume(L),c=null,$):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||gt(L)?A(L):(e.consume(L),D)}function $(L){return L===47||L===62||Ge(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):Ge(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Q):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(FB,pe,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UB,le,pe)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),he}function he(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",F):X(L)}function F(L){if(L===62){const ke=a.toLowerCase();return Xy.includes(ke)?(e.consume(L),se):X(L)}return On(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),F):X(L)}function Q(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),se)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $B(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HB(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qB={name:"htmlText",tokenize:WB};function WB(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):On(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):On(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),k):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function k(N){return N===62?xe(N):_(N)}function A(N){return On(N)?(e.consume(N),S):n(N)}function S(N){return N===45||Nn(N)?(e.consume(N),S):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):Ge(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||gt(N)?$(N):n(N)}function $(N){return N===47?(e.consume(N),xe):N===58||N===95||On(N)?(e.consume(N),j):Ne(N)?(a=$,oe(N)):Ge(N)?(e.consume(N),$):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):Ge(N)?(e.consume(N),H):$(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):Ge(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,he):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||gt(N)?$(N):(e.consume(N),le)}function he(N){return N===47||N===62||gt(N)?$(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),F}function F(N){return Ge(N)?Je(e,Q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Q(N)}function Q(N){return e.enter("htmlTextData"),a(N)}}const $g={name:"labelEnd",resolveAll:YB,resolveTo:XB,tokenize:JB},GB={tokenize:ZB},KB={tokenize:eF},QB={tokenize:tF};function YB(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),Ge(u)?Je(e,l,"whitespace")(u):l(u))}}const zn={continuation:{tokenize:dF},exit:fF,name:"list",tokenize:uF},lF={partial:!0,tokenize:mF},cF={partial:!0,tokenize:pF};function uF(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lF,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return Ge(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dF(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Je(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Ge(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cF,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Je(e,e.attempt(zn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pF(e,t,n){const r=this;return Je(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fF(e){e.exit(this.containerState.type)}function mF(e,t,n){const r=this;return Je(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ge(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:hF,tokenize:gF};function hF(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gF(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Ge(u)?Je(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xF={tokenize:vF};function vF(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Je(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kB,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yF={resolveAll:AE()},_F=RE("string"),bF=RE("text");function RE(e){return{resolveAll:AE(e==="text"?wF:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MF(e,t){let n=-1;const r=[];let s;for(;++n0){const Ve=G.tokenStack[G.tokenStack.length-1];(Ve[1]||e_).call(G,void 0,Ve[0])}for(B.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QF(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YF(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XF(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JF(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZF(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function DE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):ME(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=mE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WF,break:GF,code:KF,delete:QF,emphasis:YF,footnoteReference:XF,heading:JF,html:ZF,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const OE=-1,jd=0,Mo=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,IE=7,BE=8,s_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case jd:case OE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case Hg:return n(new Date(a),s);case qg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case IE:{const{name:l,message:c}=a;return n(new s_[l](c),s)}case BE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new s_[i](a),s)};return r},i_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Ou,Ki];case"Date":return[Hg,Ki];case"RegExp":return[qg,Ki];case"Map":return[Wg,Ki];case"Set":return[Gg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[IE,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case jd:{let d=a;switch(c){case"bigint":l=BE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([OE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Ou:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!yc(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case Hg:return s([l,a.toISOString()],a);case qg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Wg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(yc(uo(f))||yc(uo(h))))&&d.push([i(f),i(h)]);return p}case Gg:{const d=[],p=s([l,d],a);for(const f of a)(e||!yc(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(a_(e,t)):structuredClone(e):(e,t)=>i_(a_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return N6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=FE,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function o_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function F6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,VE=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):VE.call(t)==="[object Array]"},f_=function(t){if(!t||VE.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Wr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Fm(v)&&Fm(h)&&(h=Up(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Qg().freeze();function Hp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Fm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return rU(e)?e:new zE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return nU().use(qF).use(n).use(F6,r).use(t)}function dU(e){const t=e.children||"",n=new zE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Kg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Ip)if(Object.hasOwn(Ip,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ip[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Nd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:S}:void 0),S===!1?f.lastIndex=k+1:(g!==k&&y.push({type:"text",value:u.value.slice(g,k)}),Array.isArray(S)?y.push(...S):S&&y.push(S),g=k+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function $E(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Vi(n)||Ed(n))&&(!t||n!==47)}HE.peek=FU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function BU(e){this.exit(e)}function FU(){return"["}function HE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:BU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?qE:zU))),u(),c}}function zU(e,t,n){return t===0?e:qE(e,t,n)}function qE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];WE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:WE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function WE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GE.peek=l7;function GE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}KE.peek=d7;function KE(e){return e.value||""}function d7(){return"<"}QE.peek=p7;function QE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}YE.peek=f7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}XE.peek=m7;function XE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}ZE.peek=h7;function ZE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(JE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return JE(e,n)?"<":"["}eC.peek=g7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Xg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),tC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nC.peek=C7;function nC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(tC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rC={blockquote:JU,break:S_,code:s7,definition:a7,emphasis:GE,hardBreak:S_,heading:u7,html:KE,image:QE,imageReference:YE,inlineCode:XE,link:ZE,linkReference:eC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:nC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:E_,tableHeader:E_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Yp,tableHeader:Yp,tableRow:Yp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Yp(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||gt(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return gt(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||gt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return gt(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Je(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Je(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?S:c;return re===S&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):Ge(j)?Je(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||gt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,Ge(j)?Je(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return Ge(j)?Je(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?k(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return Ge(j)?Je(e,k,"whitespace")(j):k(j)}function k(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function S(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):Ge(j)?Je(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||gt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?$:D)}function $(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return gt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):Ge(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Je(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return bE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[k,A]=m.useState([]),[S,T]=m.useState([]),[D,$]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,he]=m.useState(!1),[xe,oe]=m.useState(380),[F,Q]=m.useState(!1),[N,se]=m.useState(!0),[pe,L]=m.useState(null),[ke,De]=m.useState(""),[w,Y]=m.useState(null),ue=l??xe,_e=c??oe,ve=m.useRef(null),ot=m.useRef(null),Ze=m.useRef(null),I=m.useRef(null),st=m.useRef(null),xt=m.useRef(!1),lt=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,$e=a[Te];$e!=null&&$e.total&&(U+=$e.total)}),U},[a,i]),mt=m.useCallback(U=>{U.preventDefault(),Q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!F)return;const $e=window.innerWidth-Te.clientX,K=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,$e),K))},Z=()=>{Q(!1)};return F&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[F]);const W=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;xt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(xt.current=!1)},[g]);const E=m.useCallback(()=>{const U=ot.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;xt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Ze.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),q=m.useCallback((U,Z)=>{L(U),De(Z)},[]),Se=m.useCallback(()=>{L(null),De("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),Y(U),setTimeout(()=>Y(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,B]=m.useState(null),[G,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!ke.trim()||d.findIndex(K=>K.id===U)===-1)return;const Te=ke.trim();if(T([]),L(null),De(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const $e={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([$e]),B(Te),ae(!0)},[ke,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,lt,ie]);const Ve=m.useCallback(async(U,Z)=>{var ut;const Te=U||f.trim();if(!Te||g)return;const $e={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(nt=>[...nt,$e]),h(""),v(!0),re(null);const K=`assistant-${Date.now()}`;p(nt=>[...nt,{id:K,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const nt=(i||k||[]).map(Ie=>{const Me=Ie.line_item_id||Ie.item_id||Ie.draft_id,Re=a==null?void 0:a[Me];return{...Ie,total_cost:(Re==null?void 0:Re.total)||Ie.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Ie.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Ie.vm_cost||0}}),Bt=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:$e.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:nt,mode:u,stream:!0}),signal:I.current.signal});if(!Bt.ok)throw new Error(`HTTP ${Bt.status}: ${Bt.statusText}`);const ft=(ut=Bt.body)==null?void 0:ut.getReader();if(!ft)throw new Error("No response body");const vt=new TextDecoder;let Ct="",ht="",ze=[];for(;;){const{done:Ie,value:Me}=await ft.read();if(Ie)break;Ct+=vt.decode(Me,{stream:!0});const Re=Ct.split(` +`);Ct=Re.pop()||"";for(const Yt of Re)if(Yt.startsWith("data: ")){const jt=Yt.slice(6);if(jt==="[DONE]")continue;try{const Ee=JSON.parse(jt);if(Ee.type==="start")x(Ee.conversation_id);else if(Ee.type==="content")ht+=Ee.content,p(Nt=>Nt.map(Le=>Le.id===K?{...Le,content:ht,isThinking:!1}:Le));else if(Ee.type==="tool_result")ze.push({tool:Ee.tool,result:Ee.result});else if(Ee.type==="proposal")Ee.workload&&Ee.workload.proposal_id&&T(Nt=>Nt.some(Jn=>Jn.proposal_id===Ee.workload.proposal_id)?Nt:[...Nt,Ee.workload]);else if(Ee.type==="done")ht.includes("Error getting response")||ht.includes("AI service error")||(Ee.estimate&&_(Ee.estimate),Ee.workloads&&A(Ee.workloads),Ee.proposed_workloads&&Ee.proposed_workloads.length>0&&T(Ee.proposed_workloads));else if(Ee.type==="error")throw new Error(Ee.content)}catch{}}}p(Ie=>Ie.map(Me=>Me.id===K?{...Me,content:ht,isStreaming:!1,toolResults:ze}:Me))}catch(nt){if(nt.name==="AbortError")return;console.error("Chat error:",nt),re(nt.message||"Failed to get response"),p(Bt=>Bt.filter(ft=>ft.id!==K))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,k,a]);m.useEffect(()=>{O&&!g&&(Ve(O,G),B(null),ae(!1))},[O,G,g,Ve]);const pt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Ve())},it=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ye=async U=>{if(b){$(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T($e=>$e.filter(K=>K.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p($e=>{var K;return[...$e,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(K=Te.workload_config)==null?void 0:K.workload_name}" added to estimate.`,timestamp:new Date}]})}catch($e){p(K=>[...K,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${$e.message||"Database error"}. Please try again.`,timestamp:new Date}]),re($e.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},ct=async U=>{if(b){$(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=S.find($e=>$e.proposal_id===U);T($e=>$e.filter(K=>K.proposal_id!==U)),p($e=>[...$e,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Xe=async()=>{for(const U of S)await Ye(U.proposal_id)},It=async()=>{for(const U of S)await ct(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>he(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx($c,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(fs,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:st,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ue}px)`},children:[o.jsx("div",{onMouseDown:mt,className:de("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",F&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ms,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:it,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(KD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(OD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),S.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ty,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[S.length," Proposed Workload",S.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(sr,{className:"w-4 h-4 text-amber-600"}):o.jsx(fs,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Xe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",S.length,")"]}),o.jsx("button",{onClick:It,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:S.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:de("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ye(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Au,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:ot,onScroll:E,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:de("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:de("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:ke,onChange:Z=>De(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:de("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var $e;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[($e=Z.result)!=null&&$e.success?o.jsx(Au,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:de("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:de("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(wD,{className:"w-3.5 h-3.5"}):o.jsx(SD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>q(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(n3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:it,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(fs,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Ve(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Ze,value:f,onChange:W,onKeyDown:pt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Ve(),disabled:!g&&!f.trim(),className:de("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(dS,{className:"w-4 h-4"}):o.jsx(JD,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:o3}],N_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Xp=[{value:"light",label:"Light",icon:y3},{value:"dark",label:"Dark",icon:YD},{value:"system",label:"System",icon:PD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=R3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),k=m.useRef(null),{currentUser:A,isAuthenticated:S,authError:T,fetchCurrentUser:D,currentEstimate:$,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:he,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:F}=ws(),Q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Q||N,pe=m.useCallback(()=>{L4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const Y=ue=>{var _e;console.log("Session expired event received:",ue.detail),g(((_e=ue.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(Cm,Y),()=>{window.removeEventListener(Cm,Y)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),ke=m.useCallback(()=>{a(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||he(),F||xe()},[he,xe,oe,F]),m.useEffect(()=>{const Y=ue=>{_.current&&!_.current.contains(ue.target)&&s(!1),k.current&&!k.current.contains(ue.target)&&a(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Xp.find(Y=>Y.value===t)||Xp[2],w=De.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(N_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(N_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(Y=>{const ue=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return o.jsxs(bu,{to:Y.href,className:de("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ue&&"border"),style:ue?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(Y.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),S&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(S3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),o.jsx(sr,{className:de("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Xp.map(Y=>{const ue=Y.icon,_e=t===Y.value;return o.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ue,{className:"w-4 h-4"}),o.jsx("span",{children:Y.label})]},Y.value)})})]}),o.jsxs("div",{className:"relative",ref:k,children:[o.jsxs("button",{onClick:ke,className:de("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(u3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(nm,{children:i&&o.jsxs($t.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(BD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(_m,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx($t.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(EN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Q?$:void 0,currentWorkloads:Q?j:void 0,itemCosts:Q?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Q?async Y=>{if($!=null&&$.estimate_id)try{await X({estimate_id:$.estimate_id,...Y}),re($.estimate_id),We.success(`Workload "${Y.workload_name}" added!`)}catch(ue){throw We.error(ue.message||"Failed to add workload"),ue}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(nm,{children:p&&o.jsx($t.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs($t.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(ms,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Xn(e){var t,n;return e?Ga(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Xn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Xn(e).HTMLElement}function pC(e){return e instanceof Xn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:Zg(e)?ex(e)?e:Dl(e)||pC(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Fu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Jp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Jp[e]==null?0:Jp[e]+1;return Jp[e]=n,e+"-"+n},[e,t])}function fC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=fC(1),Uu=fC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Xn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Xn(e.target);return t&&e instanceof t}function $m(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(P_)?e:e.querySelector(P_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const mC=m.createContext(null);function OV(e){const t=m.useContext(mC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const BV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},FV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=FV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=BV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function hC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const gC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(R_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function xC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Xn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function A_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Xn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Xn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||pC(s)||n.includes(s))return n;const i=Xn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function vC(e){const[t]=rx(e,1);return t??null}function Zp(e){return!Rd||!e?null:Ga(e)?e:Zg(e)?ex(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function yC(e){return Ga(e)?e.scrollX:e.scrollLeft}function _C(e){return Ga(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:yC(e),y:_C(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function bC(e){return!Rd||!e?!1:e===document.scrollingElement}function wC(e){const t={x:0,y:0},n=bC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=wC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function kC(e){return e.reduce((t,n)=>ba(t,Hm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+yC(n),0)}function az(e){return e.reduce((t,n)=>t+_C(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);vC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=kC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Xn(e);return e instanceof t?e:Ka(e)}function ef(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function T_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var rt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(rt||(rt={}));const SC={start:[rt.Space,rt.Enter],cancel:[rt.Esc],end:[rt.Space,rt.Enter,rt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case rt.Right:return{...n,x:n.x+25};case rt.Left:return{...n,x:n.x-25};case rt.Down:return{...n,y:n.y+25};case rt.Up:return{...n,y:n.y-25}}};class Ad{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Xn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=SC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Uu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:k,maxScroll:A,minScroll:S}=wC(v),T=sz(v),D={x:Math.min(b===rt.Right?T.right-T.width/2:T.right,Math.max(b===rt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===rt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===rt.Down?T.top:T.top+T.height/2,p.y))},$=b===rt.Right&&!y||b===rt.Left&&!_,j=b===rt.Down&&!k||b===rt.Up&&!x;if($&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===rt.Right&&H<=A.x||b===rt.Left&&H>=S.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===rt.Right?v.scrollLeft-A.x:v.scrollLeft-S.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===rt.Down&&H<=A.y||b===rt.Up&&H>=S.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===rt.Down?v.scrollTop-A.y:v.scrollTop-S.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Uu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ad.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=SC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function L_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Xn(a)),this.initialCoordinates=(s=$m(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,T_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,T_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(L_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Fr,u=Uu(s,c);if(!r&&l){if(L_(l)){if(l.tolerance!=null&&ef(u,l.tolerance))return this.handleCancel();if(ef(u,l.distance))return this.handleStart()}if(D_(l)&&ef(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Td extends ix{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Td.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class mz extends ix{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const tf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ix{constructor(t){super(t,tf)}static setup(){return window.addEventListener(tf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),k=m.useCallback(()=>{const S=_.current;if(!S)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;S.scrollBy(T,D)},[]),A=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const S of A){if((r==null?void 0:r(S))===!1)continue;const T=u.indexOf(S),D=d[T];if(!D)continue;const{direction:$,speed:j}=rz(S,D,y,t,f);for(const H of["x","y"])h[H][$[H]]||(j[H]=0,$[H]=0);if(j.x>0||j.y>0){v(),_.current=S,g(k,a),b.current=j,x.current=$;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,k,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const k=_.node.current,A=k?new sx(c(k),k):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function EC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return EC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ld(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new sx(Qa(e),e)}function O_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Ld({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=EC(e);return xC(e,t)}const I_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=Zp(i.target);a&&n(l=>l?(l.set(a,Hm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=Zp(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=Zp(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):kC(e):Fr,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function CC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const F_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=CC(n?Xn(n):null),[s,i]=m.useState(F_);function a(){i(()=>e.length?e.map(c=>bC(c)?r:new sx(t(c),c)):F_)}const l=Ld({callback:a});return es(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Ld({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Fu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Td,options:{}},{sensor:Ad,options:{}}],Dz={current:{}},Qc={draggable:{measure:A_},droppable:{measure:A_,strategy:fl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Qa}};class Bo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Bo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Oz),jC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Bo}}}function Bz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Bo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Bo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Bo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Fz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),a=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=xC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=vC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const NC=m.createContext({...Fr,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const PC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Bz,void 0,Iz),[b,x]=v,[y,_]=IV(),[k,A]=m.useState(Us.Uninitialized),S=k===Us.Initialized,{draggable:{active:T,nodes:D,translate:$},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var K;return T!=null?{id:T,data:(K=H==null?void 0:H.data)!=null?K:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[he,xe]=m.useState(null),[oe,F]=m.useState(null),Q=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:ke,measuringScheduled:De}=bz(se,{dragging:S,dependencies:[$.x,$.y],config:pe.droppable}),w=yz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ue=$e(),_e=wz(w,pe.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ue.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Ze=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Ze.current.over)==null?void 0:n.id),st=Tz({measure:pe.dragOverlay.measure}),xt=(r=st.nodeRef.current)!=null?r:w,lt=S?(s=st.rect)!=null?s:ve:null,mt=!!(st.nodeRef.current&&st.rect),W=Ez(mt?null:ve),P=CC(xt?Xn(xt):null),E=Cz(S?I??w:null),ie=Rz(E),M=Uz(h,{transform:{x:$.x-W.x,y:$.y-W.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:ot,draggingNodeRect:lt,over:Ze.current.over,overlayNodeRect:st.rect,scrollableAncestors:E,scrollableAncestorRects:ie,windowRect:P}),q=Y?ba(Y,$):null,Se=jz(E),Pe=B_(Se),O=B_(Se,[ve]),B=ba(M,Pe),G=lt?QV(lt,M):null,ae=re&&G?p({active:re,collisionRect:G,droppableRects:L,droppableContainers:se,pointerCoordinates:q}):null,je=HV(ae,"id"),[Ve,pt]=m.useState(null),it=mt?M:ba(M,O),Ye=GV(it,(i=Ve==null?void 0:Ve.rect)!=null?i:null,ve),ct=m.useRef(null),Xe=m.useCallback((K,ut)=>{let{sensor:nt,options:Bt}=ut;if(le.current==null)return;const ft=D.get(le.current);if(!ft)return;const vt=K.nativeEvent,Ct=new nt({active:le.current,activeNode:ft,event:vt,options:Bt,context:Ze,onAbort(ze){if(!D.get(ze))return;const{onDragAbort:Me}=Q.current,Re={id:ze};Me==null||Me(Re),y({type:"onDragAbort",event:Re})},onPending(ze,Ie,Me,Re){if(!D.get(ze))return;const{onDragPending:jt}=Q.current,Ee={id:ze,constraint:Ie,initialCoordinates:Me,offset:Re};jt==null||jt(Ee),y({type:"onDragPending",event:Ee})},onStart(ze){const Ie=le.current;if(Ie==null)return;const Me=D.get(Ie);if(!Me)return;const{onDragStart:Re}=Q.current,Yt={activatorEvent:vt,active:{id:Ie,data:Me.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Yt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:ze,active:Ie}),y({type:"onDragStart",event:Yt}),xe(ct.current),F(vt)})},onMove(ze){x({type:sn.DragMove,coordinates:ze})},onEnd:ht(sn.DragEnd),onCancel:ht(sn.DragCancel)});ct.current=Ct;function ht(ze){return async function(){const{active:Me,collisions:Re,over:Yt,scrollAdjustedTranslate:jt}=Ze.current;let Ee=null;if(Me&&jt){const{cancelDrop:Nt}=Q.current;Ee={activatorEvent:vt,active:Me,collisions:Re,delta:jt,over:Yt},ze===sn.DragEnd&&typeof Nt=="function"&&await Promise.resolve(Nt(Ee))&&(ze=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:ze}),A(Us.Uninitialized),pt(null),xe(null),F(null),ct.current=null;const Nt=ze===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const Le=Q.current[Nt];Le==null||Le(Ee),y({type:Nt,event:Ee})}})}}},[D]),It=m.useCallback((K,ut)=>(nt,Bt)=>{const ft=nt.nativeEvent,vt=D.get(Bt);if(le.current!==null||!vt||ft.dndKit||ft.defaultPrevented)return;const Ct={active:vt};K(nt,ut.options,Ct)===!0&&(ft.dndKit={capturedBy:ut.sensor},le.current=Bt,Xe(nt,ut))},[D,Xe]),U=_z(d,It);Nz(d),es(()=>{ve&&k===Us.Initializing&&A(Us.Initialized)},[ve,k]),m.useEffect(()=>{const{onDragMove:K}=Q.current,{active:ut,activatorEvent:nt,collisions:Bt,over:ft}=Ze.current;if(!ut||!nt)return;const vt={active:ut,activatorEvent:nt,collisions:Bt,delta:{x:B.x,y:B.y},over:ft};la.unstable_batchedUpdates(()=>{K==null||K(vt),y({type:"onDragMove",event:vt})})},[B.x,B.y]),m.useEffect(()=>{const{active:K,activatorEvent:ut,collisions:nt,droppableContainers:Bt,scrollAdjustedTranslate:ft}=Ze.current;if(!K||le.current==null||!ut||!ft)return;const{onDragOver:vt}=Q.current,Ct=Bt.get(je),ht=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,ze={active:K,activatorEvent:ut,collisions:nt,delta:{x:ft.x,y:ft.y},over:ht};la.unstable_batchedUpdates(()=>{pt(ht),vt==null||vt(ze),y({type:"onDragOver",event:ze})})},[je]),es(()=>{Ze.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:G,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:xt,draggingNodeRect:lt,droppableContainers:j,over:Ve,scrollableAncestors:E,scrollAdjustedTranslate:B},X.current={initial:lt,translated:G}},[re,w,ae,G,D,xt,lt,L,j,Ve,E,B]),gz({...ue,delta:$,draggingRect:G,pointerCoordinates:q,scrollableAncestors:E,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:ot,dragOverlay:st,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Ve,measureDroppableContainers:ke,scrollableAncestors:E,scrollableAncestorRects:ie,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ve,oe,ae,ot,st,D,j,L,Ve,ke,E,ie,pe,De,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Ve,measureDroppableContainers:ke}),[oe,U,re,ve,x,N,D,Ve,ke]);return pn.createElement(mC.Provider,{value:_},pn.createElement(Dd.Provider,{value:Te},pn.createElement(jC.Provider,{value:Z},pn.createElement(NC.Provider,{value:Ye},u)),pn.createElement(Fz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function $e(){const K=(he==null?void 0:he.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,nt=S&&!K&&!ut;return typeof c=="object"?{...c,enabled:nt}:{enabled:nt}}}),$z=m.createContext(null),U_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?NC:$z),[y,_]=Fu(),[k,A]=Fu(),S=Pz(a,t),T=pl(n);es(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:k,data:T}),()=>{const $=p.get(t);$&&$.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:S,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(jC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ld({callback:y,disabled:g||!a}),k=m.useCallback((D,$)=>{_&&($&&(_.unobserve($),p.current=!1),D&&_.observe(D))},[_]),[A,S]=Fu(k),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:S}}function ax(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ax(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Sc={scaleX:1,scaleY:1},AC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Sc}:s=a?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,k=Jz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:k,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,k.draggable,k.droppable,_,h,b,c,f,s]);return pn.createElement(LC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ax(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},MC="transform",r8=Oa.Transition.toString({property:MC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function OC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(LC),_=a8(r,h),k=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:k,items:d},...s}),[p,s,k,d]),S=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:$,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:he,listeners:xe,isDragging:oe,over:F,setActivatorNodeRef:Q,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,he),pe=!!H,L=pe&&!g&&kc(f)&&kc(b),ke=!x&&oe,De=ke&&L?N:null,Y=L?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:k}):null,ue=kc(f)&&kc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):k,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ue,containerId:p}),ot=d!==ve.current.items,Ze=t({active:H,containerId:p,isDragging:oe,isSorting:pe,id:a,index:k,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Ze,index:k,node:D,rect:T});return m.useEffect(()=>{pe&&ve.current.newIndex!==ue&&(ve.current.newIndex=ue),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,ue,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const xt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(xt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:k,newIndex:ue,items:d,isOver:$,isSorting:pe,isDragging:oe,listeners:xe,node:D,overIndex:b,over:F,setNodeRef:se,setActivatorNodeRef:Q,setDroppableNodeRef:j,setDraggableNodeRef:he,transform:I??Y,transition:st()};function st(){if(I||ot&&ve.current.newIndex===k)return r8;if(!(ke&&!nx(X)||!u)&&(pe||Ze))return Oa.Transition.toString({...u,property:MC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}rt.Down,rt.Right,rt.Up,rt.Left;const IC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var BC={exports:{}};(function(e,t){(function(n,r){r()})(hs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof hs=="object"&&hs.global===hs?hs:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(BC);var Gm=BC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Ec={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=ws(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[k,A]=m.useState(new Set),[S,T]=m.useState(!1),[D,$]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,he]=m.useState(null),[xe,oe]=m.useState(!1),[F,Q]=m.useState(!1),N=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),We.success("Refreshed")},[r]),pe=m.useMemo(()=>{const W=t.length,P=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="aws"}).length,E=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="gcp"}).length;return{all:W,aws:P,azure:E,gcp:ie}},[t]),L=m.useMemo(()=>{const W=t.reduce((P,E)=>P+(E.line_item_count||0),0);return{estimates:t.length,workloads:W}},[t]),ke=m.useMemo(()=>{const W=new Set;return t.forEach(P=>{P.customer_name&&W.add(P.customer_name)}),Array.from(W).sort()},[t]),De=m.useMemo(()=>{const W={all:t.length};return t.forEach(P=>{P.customer_name&&(W[P.customer_name]=(W[P.customer_name]||0)+1)}),W},[t]),w=m.useMemo(()=>{let W=[...t];if(c){const P=c.toLowerCase();W=W.filter(E=>{var ie;return E.estimate_name.toLowerCase().includes(P)||((ie=E.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(W=W.filter(P=>{var E;return((E=P.cloud)==null?void 0:E.toLowerCase())===f})),b!=="all"&&(W=W.filter(P=>P.customer_name===b)),g){case"updated":W.sort((P,E)=>new Date(E.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":W.sort((P,E)=>P.estimate_name.localeCompare(E.estimate_name));break;case"workloads":W.sort((P,E)=>(E.line_item_count||0)-(P.line_item_count||0));break;case"display_order":W.sort((P,E)=>(P.display_order??0)-(E.display_order??0));break}return W},[t,c,f,g,b]),Y=m.useCallback(async W=>{const{active:P,over:E}=W;if(!E||P.id===E.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===E.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const q=ax(w,ie,M),{estimates:Se}=ws.getState(),Pe=Se.map(O=>{const B=q.findIndex(G=>G.estimate_id===O.estimate_id);return B>=0?{...O,display_order:B}:O});ws.setState({estimates:Pe});try{await K4(q.map(O=>O.estimate_id))}catch{We.error("Failed to save reorder")}},[w,g]),ue=(W,P,E)=>{W.stopPropagation(),he({id:P,name:E}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),We.success("Estimate deleted")}catch{We.error("Failed to delete")}finally{oe(!1),re(!1),he(null)}}},ve=async(W,P)=>{W.stopPropagation();try{const E=await i(P);We.success("Estimate duplicated"),e(`/calculator/${E.estimate_id}`)}catch{We.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const W=await dO();Gm.saveAs(W,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),We.success("Exported successfully")}catch{We.error("Export failed")}finally{l(!1)}},Ze=()=>{k.size===w.length?A(new Set):A(new Set(w.map(W=>W.estimate_id)))},I=(W,P)=>{P.stopPropagation();const E=new Set(k);E.has(W)?E.delete(W):E.add(W),A(E)},st=()=>{k.size!==0&&Q(!0)},xt=async()=>{$(!0);let W=0,P=0;for(const E of k)try{await s(E),W++}catch{P++}$(!1),A(new Set),Q(!1),P===0?We.success(`Deleted ${W} estimate(s)`):We.error(`Deleted ${W}, failed ${P}`)},lt=async()=>{if(k.size===0)return;H(!0);let W=0;for(const P of k)try{const E=t.find(ie=>ie.estimate_id===P);if(E){const ie=await qS(P);Gm.saveAs(ie,`${E.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),W++}}catch{}H(!1),We.success(`Exported ${W} estimate(s)`)},mt=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ny,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Ng,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Qr,{className:de("w-5 h-5",d&&"animate-spin")})}),S?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[k.size," selected"]}),o.jsxs("button",{onClick:lt,disabled:k.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:st,disabled:k.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:mt,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:ot,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),ke.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(pD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?ke.length:De[b]||0}),o.jsx(sr,{className:de("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(nm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs($t.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:ke.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),ke.map(W=>o.jsxs("button",{onClick:()=>{x(W),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===W?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===W?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:W,children:W}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:De[W]||0}),b===W&&o.jsx(Gs,{className:"w-4 h-4"})]})]},W))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:W=>u(W.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(W=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},W))})}):w.length===0?o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Ze,className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:k.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:de(S?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(PC,{sensors:N,collisionDetection:gC,onDragEnd:Y,modifiers:[IC],children:o.jsx(DC,{items:w.map(W=>W.estimate_id),strategy:AC,children:w.map((W,P)=>{const E=k.has(W.estimate_id);return o.jsx(o8,{id:W.estimate_id,children:o.jsxs($t.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!S&&e(`/calculator/${W.estimate_id}`),className:de("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!S&&"cursor-pointer hover:bg-[var(--bg-hover)]",E&&"bg-blue-500/5"),children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(W.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",E?"bg-blue-500 border-blue-500":"border-gray-400"),children:E&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:de("flex items-center gap-3",S?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(ym,{className:"w-4 h-4",style:{color:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:W.estimate_name,children:W.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:W.customer_name||"",children:W.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:W.customer_name||"",children:W.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:W.cloud&&Tr[W.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[W.cloud.toLowerCase()].bg,color:Tr[W.cloud.toLowerCase()].text},children:Tr[W.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:W.region||W.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[W.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:W.region,children:W.region}),W.tier&&Ec[W.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Ec[W.tier.toLowerCase()].bg,color:Ec[W.tier.toLowerCase()].text},children:Ec[W.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:de("px-2 py-0.5 rounded text-xs font-medium",W.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:W.line_item_count===0?{color:"var(--text-muted)"}:{},children:W.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(W.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!S&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,W.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ue(ie,W.estimate_id,W.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},W.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),he(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),F&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",k.size," Estimate",k.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(W=>k.has(W.estimate_id)).map(W=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",W.estimate_name]},W.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:xt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),k.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[k.size," estimate",k.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:st,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,k=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach($=>{const j=$.group||"Other";T[j]||(T[j]=[]),T[j].push($)}),Object.keys(T).sort(($,j)=>$==="General Purpose"?-1:j==="General Purpose"?1:$.localeCompare(j)).map($=>({name:$,options:T[$]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},S=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:de("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:de("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:de("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:S,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(sr,{className:de("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),k.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const FC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:FC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function nf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var W;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:k,fetchLineItems:A,clearSingleWorkloadCost:S,markItemCalculating:T,fetchVMCostForInstance:D}=ws(),$=m.useRef(!0);m.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,he=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,F={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Q=f&&f.models&&f.models.llm?f:F,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[pe,L]=m.useState(!1),[ke,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ue={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ue),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),FC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?aE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&Y(E=>({...E,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Ze=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!$.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),st=a.length===0,xt=!st&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){We.error("Enter a workload name");return}L(!0);try{const E={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(E.serverless_enabled=w.serverless_enabled,E.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(E.serverless_enabled=!1,E.serverless_mode=null),I!=null&&I.show_compute_config?(E.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,E.driver_node_type=w.driver_node_type||null,E.worker_node_type=w.worker_node_type||null,E.num_workers=w.num_workers,E.driver_pricing_tier=w.driver_pricing_tier||"on_demand",E.worker_pricing_tier=w.worker_pricing_tier||"spot",E.driver_payment_option=w.driver_payment_option||"NA",E.worker_payment_option=w.worker_payment_option||"NA"):(E.photon_enabled=!1,E.driver_node_type=null,E.worker_node_type=null,E.num_workers=null,E.driver_pricing_tier=null,E.worker_pricing_tier=null,E.driver_payment_option=null,E.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?E.dlt_edition=w.dlt_edition:E.dlt_edition=null,I!=null&&I.show_dbsql_config?(E.dbsql_warehouse_type=w.dbsql_warehouse_type,E.dbsql_warehouse_size=w.dbsql_warehouse_size,E.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(E.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,E.dbsql_driver_payment_option=w.dbsql_driver_payment_option,E.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,E.dbsql_worker_payment_option=w.dbsql_worker_payment_option,E.driver_pricing_tier=w.dbsql_driver_pricing_tier,E.driver_payment_option=w.dbsql_driver_payment_option,E.worker_pricing_tier=w.dbsql_worker_pricing_tier,E.worker_payment_option=w.dbsql_worker_payment_option)):(E.dbsql_warehouse_type=null,E.dbsql_warehouse_size=null,E.dbsql_num_clusters=null,E.dbsql_driver_pricing_tier=null,E.dbsql_driver_payment_option=null,E.dbsql_worker_pricing_tier=null,E.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(E.vector_search_mode=w.vector_search_mode,E.vector_capacity_millions=w.vector_capacity_millions,E.vector_search_storage_gb=w.vector_search_storage_gb||0):(E.vector_search_mode=null,E.vector_capacity_millions=null,E.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(E.model_serving_gpu_type=w.model_serving_gpu_type,E.model_serving_scale_out=w.model_serving_scale_out,E.model_serving_concurrency=w.model_serving_concurrency):(E.model_serving_gpu_type=null,E.model_serving_scale_out=null,E.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?E.databricks_apps_size=w.databricks_apps_size:E.databricks_apps_size=null,w.workload_type==="AI_PARSE"?(E.ai_parse_mode="pages",E.ai_parse_complexity=w.ai_parse_complexity,E.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(E.ai_parse_mode=null,E.ai_parse_complexity=null,E.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?E.shutterstock_images=w.shutterstock_images:E.shutterstock_images=null,I!=null&&I.show_lakebase_config?(E.lakebase_cu=w.lakebase_cu,E.lakebase_storage_gb=w.lakebase_storage_gb||0,E.lakebase_ha_nodes=w.lakebase_ha_nodes,E.lakebase_backup_retention_days=w.lakebase_backup_retention_days,E.lakebase_pitr_gb=w.lakebase_pitr_gb||0,E.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(E.lakebase_cu=null,E.lakebase_storage_gb=null,E.lakebase_ha_nodes=null,E.lakebase_backup_retention_days=null,E.lakebase_pitr_gb=null,E.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(E.fmapi_provider=w.fmapi_provider,E.fmapi_model=w.fmapi_model||null,E.fmapi_endpoint_type=w.fmapi_endpoint_type,E.fmapi_context_length=w.fmapi_context_length,E.fmapi_rate_type=w.fmapi_rate_type,E.fmapi_quantity=w.fmapi_quantity):(E.fmapi_provider=null,E.fmapi_model=null,E.fmapi_endpoint_type=null,E.fmapi_context_length=null,E.fmapi_rate_type=null,E.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?ke?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,E.avg_runtime_minutes=w.avg_runtime_minutes,E.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):I!=null&&I.show_fmapi_config?(E.hours_per_month=w.hours_per_month||null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null),t)S(t.line_item_id),T(t.line_item_id),await k(t.line_item_id,E),We.success("Workload updated");else{E.estimate_id=e;const M=await _(E);M!=null&&M.line_item_id&&T(M.line_item_id),We.success("Workload added")}A(e),r==null||r(),n()}catch(E){console.error("Failed to save workload:",E),We.error("Failed to save")}finally{L(!1)}},mt=I==null?void 0:I.show_compute_config;return st?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(E=>({...E,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>Y(E=>({...E,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:de("w-full text-sm",xt&&"border-red-500",Ze&&"border-yellow-500"),children:[Ze&&(()=>{const P=a.find(E=>E.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),xt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Ze&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Ze&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const E=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!E,onChange:()=>!E&&Y(ie=>{const M=!ie.serverless_enabled,q=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:q}}),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>Y(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:he.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:de("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),mt&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(E=>({...E,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(E=>({...E,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(E=>({...E,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(E=>({...E,worker_node_type:E.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:de("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(E=>({...E,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(E=>({...E,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(E=>({...E,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(E=>({...E,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[mt&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>Y(E=>({...E,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const E=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!E;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!E&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(q=>({...q,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(E=>({...E,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(E=>({...E,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,E=P!=null&&P.driver_instance_type?l.find(B=>B.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(B=>B.id===P.worker_instance_type):null,M=(B,G,ae)=>{var Ve,pt,it,Ye,ct,Xe,It;if(!(B!=null&&B.vm_pricing))return null;const je=G.toLowerCase();if(je==="on_demand")return(Ve=B.vm_pricing.on_demand)==null?void 0:Ve.cost_per_hour;if(je==="spot")return(pt=B.vm_pricing.spot)==null?void 0:pt.cost_per_hour;if(je==="reserved_1y"){const U=((it=B.vm_pricing.reserved_1y)==null?void 0:it.find(Z=>Z.payment_option===ae))||((Ye=B.vm_pricing.reserved_1y)==null?void 0:Ye[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((ct=B.vm_pricing.reserved_3y)==null?void 0:ct.find(Z=>Z.payment_option===ae))||((Xe=B.vm_pricing.reserved_3y)==null?void 0:Xe[0]);return U==null?void 0:U.cost_per_hour}return(It=B.vm_pricing.on_demand)==null?void 0:It.cost_per_hour},q=M(E,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),E&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=E.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),q!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",q.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_driver_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:B=>Y(G=>({...G,dbsql_driver_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_worker_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:B=>Y(G=>({...G,dbsql_worker_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(E=>({...E,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(E=>({...E,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(E=>({...E,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(E=>({...E,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const E={small:4,medium:12,large:40},ie=P.target.value;Y(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:E[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const E=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(ie=>({...ie,model_serving_concurrency:E}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(E=>({...E,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(E=>({...E,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const E=P.target.value,ie=z_(x,g||"aws",w.fmapi_provider,E),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";Y(q=>({...q,fmapi_model:E,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(W=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:W.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(E=>({...E,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(E=>({...E,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],E={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],E={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(E=>({...E,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(E=>({...E,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(E=>({...E,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(E=>({...E,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(E=>({...E,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>Y(E=>({...E,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>Y(E=>({...E,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages/Month (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>Y(E=>({...E,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>Y(E=>({...E,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>De(!1),className:de("px-3 py-1 text-xs rounded-l-md border transition-colors",ke?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>De(!0),className:de("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",ke?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!ke&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(E=>({...E,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(E=>({...E,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&w.workload_type!=="DATABRICKS_APPS"&&w.workload_type!=="AI_PARSE"&&w.workload_type!=="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(E=>({...E,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),ke&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>Y(E=>({...E,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:s3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Tu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:sD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:_D,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:qD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:m3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?h8[e]||{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},fe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:fe(e),At=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:de("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:de("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[fe(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:de("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[At(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:k,getInstanceDbuRate:A,vmPricingMap:S,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:$,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:he,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:F,isPricingBundleLoaded:Q,clearEstimateState:N,setLocalCalculatedCosts:se}=ws(),[pe,L]=m.useState(!1),[ke,De]=m.useState(!1),[w,Y]=m.useState(!1),[ue,_e]=m.useState(!1),[ve,ot]=m.useState(!1),[Ze,I]=m.useState(null),[st,xt]=m.useState(!1),[lt,mt]=m.useState(!1),[W,P]=m.useState(!1),[E,ie]=m.useState(!1),[M,q]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,B]=m.useState(!1),[G,ae]=m.useState({}),[je,Ve]=m.useState(!1),[pt,it]=m.useState(!1),[Ye,ct]=m.useState(!1),[Xe,It]=m.useState(!1),[U,Z]=m.useState([]),[Te,$e]=m.useState(!1),[K,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[nt,Bt]=m.useState(!!e),[ft,vt]=m.useState(!1),[Ct,ht]=m.useState(!1),[ze,Ie]=m.useState("table"),[Me,Re]=m.useState("order"),[Yt,jt]=m.useState("asc"),[Ee,Nt]=m.useState(new Set),[Le,Jn]=m.useState(!1),Zn=m.useRef({}),ns=m.useCallback(R=>{const J=Zn.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Zn.current[R]&&(Zn.current[R].style.backgroundColor="")},1500))},[]),Un=m.useCallback(()=>{B(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!K.cloud||!K.region||r.length===0||!Ye)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const V=cl(F,K.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if(V){const ce=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",He=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${V.driver_instance_type}:${ce}:${He}`);const Pt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${V.worker_instance_type}:${Pt}:${Rt}`)}return}if(C.driver_node_type){const V=C.driver_pricing_tier||"on_demand",ce=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${V}:${ce}`)}if(C.worker_node_type){const V=C.worker_pricing_tier||"spot",ce=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${V}:${ce}`)}}});const J=Array.from(R).map(C=>{const[V,ce,He]=C.split(":");return _(K.cloud,K.region,V,ce,He)});if(J.length>0){It(!0);const C=new Promise(V=>setTimeout(V,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>It(!1))}},[K.cloud,K.region,r,Ye,_,F]),m.useEffect(()=>{if(!K.cloud)return;const R=p(K.cloud);if(R.length>0){const J=Q?CO(F,K.cloud):[];if(J.length>0){const C=R.filter(V=>J.includes(V.region_code));Z(C)}else Z(R);$e(!1)}else u?(Z([]),$e(!1)):$e(!0)},[K.cloud,d,u,p,F,Q]),m.useEffect(()=>{(async()=>{if(e){Ve(!0),it(!0),ct(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Ve(!1),it(!1),ct(!0)}}else N(),ct(!1)})()},[e,i,N]);const rs={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(rs),x("aws"),B(!1))},[n,e,x,y]),m.useEffect(()=>{K.cloud&&K.region&&K.tier&&$(K.cloud.toUpperCase(),K.region,K.tier.toUpperCase())},[K.cloud,K.region,K.tier,$]);const ss=!!(K.region&&K.tier),fr=(R,J)=>{const C=J?{...R,...J}:R,V=K.cloud||"aws",ce=K.region,He=Object.keys(D).length>0?D:Q_[V]||Q_.aws,Pt=C.num_workers||0;if(!ce)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let we="";const en=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?we="JOBS_COMPUTE_(PHOTON)":we="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?we="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?we="ALL_PURPOSE_COMPUTE_(PHOTON)":we="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":(we=`DLT_${en}_COMPUTE`,C.photon_enabled&&(we+="_(PHOTON)"));break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Be==="SERVERLESS"?we="SERVERLESS_SQL_COMPUTE":Be==="PRO"?we="SQL_PRO_COMPUTE":we="SQL_COMPUTE";break;case"VECTOR_SEARCH":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const yt=(C.fmapi_provider||"openai").toLowerCase();we=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[yt]||yt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":we="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":we="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"AI_PARSE":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":we="SERVERLESS_REAL_TIME_INFERENCE";break;default:we="JOBS_COMPUTE"}let An=.2;if(Q&&K.tier){const Be=Lg(F,V,ce,K.tier,we);Be>0?An=Be:An=He[we]||.2}else An=He[we]||.2;let be=0,qe=0,Qe=0,Ts,Er,is,te=.5,me=.5;if(Q&&C.driver_node_type){const Be=Pm(F,V,C.driver_node_type);Be>0&&(te=Be)}if(!te||te===.5){const Be=j.find(yt=>yt.id===C.driver_node_type||yt.name===C.driver_node_type);Be!=null&&Be.dbu_rate&&(te=Be.dbu_rate)}if(Q&&C.worker_node_type){const Be=Pm(F,V,C.worker_node_type);Be>0&&(me=Be)}if(!me||me===.5){const Be=j.find(yt=>yt.id===C.worker_node_type||yt.name===C.worker_node_type);Be!=null&&Be.dbu_rate&&(me=Be.dbu_rate)}const Ht=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Be;if(C.serverless_enabled?C.workload_type==="JOBS"?Be="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Be="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Be="DLT_CORE_COMPUTE":Be=we.replace("_(PHOTON)",""):Be=we.replace("_(PHOTON)",""),Q){const tn=iE(F,V,Be);if(tn!==2)return tn}const yt=H.find(tn=>{var bn,mr;return tn.sku_type===Be||((bn=tn.sku_type)==null?void 0:bn.toLowerCase())===Be.toLowerCase()||((mr=tn.sku_type)==null?void 0:mr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(yt==null?void 0:yt.multiplier)||2})(),mi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Pt)*Ht*mi;else{be=(te+me*Pt)*Ht;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Pt)*Ht*Cr*mi;else{be=(te+me*Pt)*Ht*Cr;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),yt=C.dbsql_warehouse_size||"Small",tn=C.dbsql_num_clusters||1;let bn=Y_[yt]||12;if(Q){const Ce=_O(F,V,Be,yt);Ce&&Ce.dbu_per_hour>0&&(bn=Ce.dbu_per_hour)}if(!bn||bn===(Y_[yt]||12)){const Ce=X.find(cn=>cn.id===yt||cn.name===yt);Ce!=null&&Ce.dbu_per_hour&&(bn=Ce.dbu_per_hour)}if(be=bn*tn,qe=be*Rt,Be!=="SERVERLESS"){const Ce=Q?cl(F,V,Be,yt):null;if(Ce){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,Ce.driver_instance_type,cn,Nr),Ja=k(V,ce,Ce.worker_instance_type,hi,gi);Qe=(Ce.driver_count*xi+Ce.worker_count*Ja)*tn*Rt}else if(C.driver_node_type){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,C.driver_node_type,cn,Nr),Ja=C.worker_node_type?k(V,ce,C.worker_node_type,hi,gi):0,yx=C.num_workers||0;Qe=(xi+Ja*yx)*tn*Rt}}break;case"VECTOR_SEARCH":const mr=C.vector_search_mode||"standard",at=C.vector_capacity_millions||1;let ln=mr==="storage_optimized"?64e6:2e6,qt=mr==="storage_optimized"?18.29:4;if(Q){const Ce=bO(F,V,mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_rate)}else{const Ce=he(mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_per_hour)}const mn=at*1e6,Fe=Math.ceil(mn/ln);Ts=Fe,be=Fe*qt,qe=be*Rt;const et=C.vector_search_storage_gb||0,Wt=Fe*20,wt=Math.max(0,et-Wt),Ut=.023,hn=wt*Ut;et>0&&(Er=hn,is={totalStorageGB:et,freeStorageGB:Wt,billableStorageGB:wt,pricePerGB:Ut});break;case"MODEL_SERVING":const er=C.model_serving_gpu_type||"cpu";let Dn=2;if(Q){const Ce=wO(F,V,er);Ce&&Ce.dbu_rate>0&&(Dn=Ce.dbu_rate)}if(Dn===2){const Ce=re.find(cn=>cn.id===er||cn.name===er);Ce!=null&&Ce.dbu_per_hour&&(Dn=Ce.dbu_per_hour)}const tr=C.model_serving_scale_out||"small",Fl=tr==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[tr]||4;be=Dn*Fl,qe=be*Rt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},JC=(zl[V]||zl.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;be=Ul*JC*Vl,qe=be*Rt;const $l=Math.min(C.lakebase_storage_gb||0,8192),ZC=C.lakebase_pitr_gb||0,e2=C.lakebase_snapshot_gb||0,Hl=.023,t2=$l*15*Hl,n2=ZC*8.7*Hl,r2=e2*3.91*Hl,gx=t2+n2+r2;gx>0&&(Er=gx,is={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const s2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ds=null;if(Q&&C.fmapi_model){const Ce=kO(F,V,C.fmapi_model,Xa);Ce&&(Ds=Ce.dbu_rate)}if(Ds===null&&C.fmapi_model){const Ce=xe(C.fmapi_model,Xa);Ce&&(xx?Ds=Ce.dbu_per_hour||null:Ds=Ce.dbu_per_1M_tokens||null)}Ds===null&&(xx?Ds=Xa==="provisioned_scaling"?200:50:Ds=Xa==="output_token"?3:1),qe=s2*Ds;break;case"FMAPI_PROPRIETARY":const i2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let jr=null;if(Q&&C.fmapi_provider&&C.fmapi_model){const Ce=C.fmapi_endpoint_type||"global",cn=C.fmapi_context_length||"long",Nr=SO(F,V,C.fmapi_provider,C.fmapi_model,Ce,cn,ql);Nr&&(jr=Nr.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ce=oe(C.fmapi_provider,C.fmapi_model,ql);Ce&&(vx?jr=Ce.dbu_per_hour||null:jr=Ce.dbu_per_1M_tokens||null)}if(jr===null)if(vx)jr=150;else switch(ql){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}qe=i2*jr;break;case"DATABRICKS_APPS":{const Ce=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ce]||.5,qe=be*Rt;break}case"AI_PARSE":{const Ce={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},cn=(C.ai_parse_complexity||"medium").toLowerCase();qe=(C.ai_parse_pages_thousands||0)*(Ce[cn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{qe=(C.shutterstock_images||0)*.857;break}default:qe=0}const Tn=isNaN(An)||An===void 0?0:An,Ls=isNaN(qe)||qe===void 0?0:qe,Ln=isNaN(Qe)||Qe===void 0?0:Qe,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ls*Tn,os=zr+Ln+_n;return{monthlyDBUs:Ls,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(os)?0:os,unitsUsed:Ts,dbuPerHour:be,dbuPrice:Tn,storageCost:_n>0?_n:void 0,storageDetails:is}},Vn=m.useMemo(()=>{let R=0,J=0,C=0,V=0;return r.forEach(ce=>{const He=fr(ce);R+=isNaN(He.monthlyDBUs)?0:He.monthlyDBUs,J+=isNaN(He.dbuCost)?0:He.dbuCost,C+=isNaN(He.vmCost)?0:He.vmCost,V+=isNaN(He.totalCost)?0:He.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:V}},[r,K.cloud,K.region,K.tier,s,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=fr(J,G[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,G,K.cloud,K.region,K.tier,se,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);const fi=m.useMemo(()=>{const R=[...r];return Me==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):Me==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):Me==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):Me==="cost"&&R.sort((J,C)=>{const V=fr(J).totalCost,ce=fr(C).totalCost;return V-ce}),Yt==="desc"&&R.reverse(),R},[r,Me,Yt,fr]),Md=R=>{Me===R?jt(J=>J==="asc"?"desc":"asc"):(Re(R),jt(R==="cost"?"desc":"asc"))},UC=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad)),VC=Me==="order",zC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const V=fi.findIndex(en=>en.line_item_id===J.id),ce=fi.findIndex(en=>en.line_item_id===C.id);if(V===-1||ce===-1)return;const He=[...fi],[Pt]=He.splice(V,1);He.splice(ce,0,Pt);const{lineItems:Rt}=ws.getState(),we=Rt.map(en=>{const An=He.findIndex(be=>be.line_item_id===en.line_item_id);return An>=0?{...en,display_order:An}:en});ws.setState({lineItems:we});try{await G4(e,He.map(en=>en.line_item_id))}catch{We.error("Failed to save reorder")}},[fi,e]),ox=async()=>{if(!K.estimate_name.trim()){We.error("Enter an estimate name");return}if(!K.region){We.error("Select a region");return}if(!K.tier){We.error("Select a Databricks tier");return}L(!0);try{const R={...K,cloud:K.cloud.toUpperCase(),tier:K.tier.toUpperCase()};if(e&&n)await h(e,R),B(!1),We.success("All changes saved");else{const J=await f(R);B(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),We.success("Estimate created")}}catch{We.error("Failed to save")}finally{L(!1)}},$C=async()=>{if(e){De(!0);try{const R=await qS(e),J=`${K.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(R,J),We.success("Exported to Excel")}catch{We.error("Export failed")}finally{De(!1)}}},HC=async()=>{if(e){Y(!0),_e(!1);try{await g(e),We.success("Estimate deleted"),t("/",{replace:!0})}catch{We.error("Failed to delete estimate"),Y(!1)}}},qC=async()=>{l(),We.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),We.success("Pricing data refreshed",{id:"refresh-data"})}catch{We.error("Failed to refresh data",{id:"refresh-data"})}},lx=R=>{I(R),ot(!0)},WC=async()=>{if(Ze){mt(!0);try{await v(Ze.line_item_id),We.success("Workload removed")}catch{We.error("Failed to delete")}finally{mt(!1),ot(!1),I(null)}}},cx=()=>{Ee.size!==0&&xt(!0)},GC=async()=>{mt(!0);try{let R=0;for(const J of Ee)await v(J),R++;We.success(`${R} workload(s) deleted`),Nt(new Set)}catch{We.error("Failed to delete some workloads")}finally{mt(!1),xt(!1)}},KC=R=>{Nt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},QC=()=>{Ee.size===r.length?Nt(new Set):Nt(new Set(r.map(R=>R.line_item_id)))},ux=()=>{Jn(!1),Nt(new Set)},dx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&We.success(`Workload "${J.workload_name}" cloned`)}catch{We.error("Failed to clone workload")}},YC=()=>{O?P(!0):t("/")},XC=()=>{P(!1),t("/")},px=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),q(J)},Il=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const V=new Set(M);V.add(R),q(V)}Pe(C)},fx=R=>{const J=R.workload_type||"";return["AI_PARSE","SHUTTERSTOCK_IMAGEAI","DATABRICKS_APPS"].includes(J)?null:R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null},mx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"AI_PARSE":J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K/mo`});break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break}return J},Bl=K.estimate_name.trim()&&K.region&&K.tier,hx=()=>{const R=[];return K.estimate_name.trim()||R.push("Estimate Name"),K.region||R.push("Region"),K.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:YC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:K.estimate_name,onChange:R=>{ut(J=>({...J,estimate_name:R.target.value})),Un()},placeholder:"Untitled Estimate",title:K.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:qC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Qr,{className:de("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:$C,disabled:ke||!e,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:de("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:de("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Bt(!nt),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Tu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${K.cloud.toUpperCase()} • ${K.region||"No region"} • ${K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier"}${K.customer_name?` • ${K.customer_name}`:""}`,children:[K.cloud.toUpperCase()," • ",K.region||"No region"," • ",K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier",K.customer_name&&` • ${K.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:nt?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(fs,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!nt&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&K.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ut(V=>({...V,cloud:R.id,region:"",tier:R.id==="azure"&&V.tier==="enterprise"?"":V.tier})),x(R.id),Un())},className:de("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",K.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":K.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:de("text-sm font-semibold",K.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),K.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.region,onChange:R=>{ut(J=>({...J,region:R.target.value})),y(R.target.value),Un()},className:de("w-full text-sm",!K.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.tier,onChange:R=>{ut(J=>({...J,tier:R.target.value})),Un()},className:de("w-full text-sm",!K.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),K.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${hx().join(", ")}`,className:de("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(p3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:Le?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ee.size," selected"]}),o.jsxs("button",{onClick:cx,disabled:Ee.size===0,className:de("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ee.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>Jn(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Ie("table"),className:de("p-1.5 rounded-md transition-colors",ze==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(b3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("cards"),className:de("p-1.5 rounded-md transition-colors",ze==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Ng,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("expanded"),className:de("p-1.5 rounded-md transition-colors",ze==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(ry,{className:"w-4 h-4"})})]}),ss&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Add"]})]})]}),e?pt&&!Ye?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[ze==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ee.size===r.length&&r.length>0,onChange:QC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>Md("name"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Le?"col-span-3":"col-span-4"),children:["Workload",Me==="name"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("type"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Me==="type"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Me==="cost"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]})]}),o.jsx(PC,{sensors:UC,collisionDetection:gC,onDragEnd:zC,modifiers:[IC],children:o.jsx(DC,{items:fi.map(R=>R.line_item_id),strategy:AC,children:fi.map(R=>{var Ts,Er,is;const J=G[R.line_item_id],C=J?{...R,...J}:R,V=fr(R,J),ce=W_(C.workload_type),He=ce.icon,Pt=M.has(R.line_item_id),Rt=Ee.has(R.line_item_id),we=C.workload_type||"",en=C.serverless_enabled||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",An=((Ts=s.find(te=>te.workload_type===we))==null?void 0:Ts.display_name)||we,be=fx(C),Qe=(()=>{const te={badges:[],details:[]};if(en&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(we))en||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),we==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(we==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(we==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(we==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&we==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else we==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!VC,children:o.jsxs("div",{ref:te=>{Zn.current[R.line_item_id]=te},children:[o.jsxs("div",{className:de("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&Le&&"bg-lava-600/5",Pt&&"bg-[var(--bg-tertiary)]"),onClick:()=>px(R.line_item_id),children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>KC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:de("flex items-center gap-3",Le?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:de("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",ce.bgColor),children:o.jsx(He,{className:de("w-4 h-4",ce.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:An,children:An})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Qe.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Qe.driver||"N/A"}, Workers: ${((Er=Qe.workers)==null?void 0:Er.count)||0}× ${((is=Qe.workers)==null?void 0:is.type)||"N/A"}`,children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Qe.details.join(" · "),children:Qe.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(K_,{costs:V,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&te&&V.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>dx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),lx(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:de("p-1 rounded transition-colors",Pt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Pt?o.jsx(fs,{className:"w-5 h-5 text-lava-600"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Pt&&(Qe.badges.length>0||Qe.driver||Qe.workers||Qe.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Qe.details.join(" · ")})]}),Pt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(we)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.vmCost)})]}),we==="LAKEBASE"&&V.storageCost!==void 0&&V.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(V.storageCost)})]}),we==="VECTOR_SEARCH"&&V.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[V.unitsUsed," unit",V.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(we)&&!en&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,as=C.avg_runtime_minutes||30,Ht=C.days_per_month||30,mi=C.hours_per_month||730,Ft=te?me*(as/60)*Ht:mi,Tn=(V.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const Fe=C.vector_capacity_millions||1,et=C.vector_search_mode||"standard",Wt=et==="storage_optimized"?64:2,wt=Math.ceil(Fe/Wt),Ut=et==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,er=wt*20,Dn=Math.max(0,hn-er),tr=Dn*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M"]})," vectors ÷ ",Wt,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," unit",wt!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[er," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(tr)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(tr)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const Fe=C.fmapi_quantity||1,et=C.fmapi_rate_type||"input_token",Wt=["provisioned_scaling","provisioned_entry"].includes(et),wt=Fe>0?V.monthlyDBUs/Fe:0,Ut=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Wt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Ut,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="LAKEBASE"){const Fe=C.lakebase_cu||1,et=C.lakebase_ha_nodes||1,Wt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ut=(Wt[K.cloud||"aws"]||Wt.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,er=C.lakebase_pitr_gb||0,Dn=C.lakebase_snapshot_gb||0,tr=.023,Ya=hn*15*tr,Fl=er*8.7*tr,Ul=Dn*3.91*tr,Vl=Ya+Fl+Ul,zl=Vl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ya)})]}),er>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[er," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(er*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Fl)})]}),Dn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Dn*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ul)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),zl&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Vl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="MODEL_SERVING"){const Fe=C.model_serving_gpu_type||"cpu",et=C.model_serving_scale_out||"small",wt=et==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[et]||4,Ut=wt>0&&V.dbuPerHour?V.dbuPerHour/wt:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DBSQL"){const Fe=C.dbsql_warehouse_size||"Small",et=C.dbsql_num_clusters||1,Wt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),wt=V.dbuPerHour?V.dbuPerHour/et:12,Ut=V.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt.toFixed(1)," DBU/hr)"]}),et>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${as}min ÷ 60 × ${Ht} days`:void 0,children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),Ut&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[Wt," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:fe(V.dbuCost)}),Ut&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DATABRICKS_APPS"){const Fe=(C.databricks_apps_size||"medium").toLowerCase(),et=Fe==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe.charAt(0).toUpperCase()+Fe.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="AI_PARSE"){const Fe=(C.ai_parse_complexity||"medium").toLowerCase(),Wt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[Fe]||62.5,wt=C.ai_parse_pages_thousands||0,Ut={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Wt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut[Fe]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="SHUTTERSTOCK_IMAGEAI"){const Fe=C.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}const Ls=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,os=V.vmCost>0&&!en,Be=K.cloud||"aws",yt=K.region||"",tn=j.find(Fe=>Fe.id===Ln||Fe.name===Ln),bn=j.find(Fe=>Fe.id===_n||Fe.name===_n),mr=A(Be,Ln)||(tn==null?void 0:tn.dbu_rate)||0,at=A(Be,_n)||(bn==null?void 0:bn.dbu_rate)||0,ln=yt&&Ln?k(Be,yt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,qt=yt&&_n?k(Be,yt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,mn=V.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:mr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:at.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),os&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(ln==null?void 0:ln.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(qt==null?void 0:qt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),os&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})})()})]})]}),Pt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(q_,{onReset:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),ze!=="table"&&fi.map((R,J)=>{var An;const C=G[R.line_item_id],V=C?{...R,...C}:R,ce=fr(R,C),He=M.has(R.line_item_id),Pt=fx(V),Rt=W_(V.workload_type),we=Rt.icon,en=ze==="expanded"||He;return o.jsx("div",{ref:be=>{Zn.current[R.line_item_id]=be},children:o.jsxs($t.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:de("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",ze==="cards"&&!He&&"py-3"),onClick:()=>px(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:de("rounded-lg flex items-center justify-center flex-shrink-0",ze==="cards"&&!He?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(we,{className:de(Rt.color,ze==="cards"&&!He?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:de("font-semibold truncate text-[var(--text-primary)]",ze==="cards"&&!He&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((An=s.find(be=>be.workload_type===R.workload_type))==null?void 0:An.display_name)||R.workload_type})})]}),o.jsx(K_,{costs:ce,size:ze==="cards"&&!He?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",qe=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&qe&&ce.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>dx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),lx(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),He?o.jsx(fs,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),en&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.vmCost)})]}),R.workload_type==="LAKEBASE"&&ce.storageCost!==void 0&&ce.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(ce.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&ce.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[ce.unitsUsed," unit",ce.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),mx(R).map((be,qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},qe)),Pt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Pt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=V.workload_type||"",qe=V.serverless_enabled||be==="DBSQL"&&(V.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Qe=V.runs_per_day&&V.avg_runtime_minutes&&!V.hours_per_month,Ts=V.runs_per_day||0,Er=V.avg_runtime_minutes||30,is=V.days_per_month||30,te=V.hours_per_month||730,me=Qe?Ts*(Er/60)*is:te,Ht=(ce.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const at=V.vector_capacity_millions||1,ln=V.vector_search_mode||"standard",qt=ln==="storage_optimized"?64:2,mn=Math.ceil(at/qt),Fe=ln==="storage_optimized"?18.29:4,et=V.vector_search_storage_gb||0,Wt=mn*20,wt=Math.max(0,et-Wt),Ut=wt*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M vectors"]})," ÷ ",qt,"⌉"]}),o.jsxs("span",{children:["= ",mn," units ×"]}),o.jsxs("span",{children:[Fe," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs × $",Ht]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),et>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Wt," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),et>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Ut)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const at=V.fmapi_quantity||0,ln=ce.monthlyDBUs/(at||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[ln.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="LAKEBASE"){const at=V.lakebase_cu||1,ln=V.lakebase_ha_nodes||1,qt=V.lakebase_storage_gb||0,mn=V.lakebase_pitr_gb||0,Fe=V.lakebase_snapshot_gb||0,et=.023,Wt=qt*15*et,wt=mn*8.7*et,Ut=Fe*3.91*et,hn=Wt+wt+Ut,er=hn>0,Dn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(Dn[K.cloud||"aws"]||Dn.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),qt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(qt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Wt)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(wt)})]}),Fe>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Fe*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),er&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="MODEL_SERVING"){const at=V.model_serving_scale_out||"small",qt=at==="custom"?V.model_serving_concurrency||4:{small:4,medium:12,large:40}[at]||4,mn=qt>0&&ce.dbuPerHour?ce.dbuPerHour/qt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",at,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="DATABRICKS_APPS"){const at=(V.databricks_apps_size||"medium").toLowerCase(),ln=at==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:at.charAt(0).toUpperCase()+at.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",ln," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="AI_PARSE"){const at=(V.ai_parse_complexity||"medium").toLowerCase(),qt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[at]||62.5,mn=V.ai_parse_pages_thousands||0,Fe={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[qt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe[at]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="SHUTTERSTOCK_IMAGEAI"){const at=V.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}const mi=V.num_workers||0,Ft=V.driver_node_type||"",Cr=V.worker_node_type||"",Tn=V.photon_enabled,Ls=ce.vmCost>0&&!qe,Ln=K.cloud||"aws",_n=K.region||"",zr=j.find(at=>at.id===Ft||at.name===Ft),os=j.find(at=>at.id===Cr||at.name===Cr),Be=A(Ln,Ft)||(zr==null?void 0:zr.dbu_rate)||0,yt=A(Ln,Cr)||(os==null?void 0:os.dbu_rate)||0,tn=_n&&Ft?k(Ln,_n,Ft,V.driver_pricing_tier||"on_demand",V.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?k(Ln,_n,Cr,V.worker_pricing_tier||"spot",V.worker_payment_option||"NA"):null,mr=ce.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Qe&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ts," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Tn?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ft,children:Be.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:yt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),Tn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),Ls&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ft,children:["$",(tn==null?void 0:tn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(ce.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),Ls&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(ce.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})})()})]})]})]}),He&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(q_,{onReset:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe}),ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onSave:()=>{ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onFormChange:be=>{ae(qe=>({...qe,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),ss?E?o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(nf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Lu,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(ms,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(_m,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),pt&&!Ye&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>vt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(sr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),ss?pt&&!Ye?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:de("text-3xl font-bold text-lava-600",Xe&&"opacity-60"),children:fe(Vn.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[fe(Vn.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:fe(Vn.totalDBUCost),children:G_(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Xe?"Loading...":fe(Vn.totalVMCost),children:Xe?"...":G_(Vn.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>ns(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:fe(V.totalCost),children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full transition-all",Pt,"group-hover:brightness-110"),style:{width:`${Math.max(He,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(ms,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Ct&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>ht(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>ht(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>{ht(!1),ns(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full",Pt),style:{width:`${Math.max(He,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>vt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>ht(!Ct),className:de("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Ct?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(ry,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(fs,{className:de("w-3 h-3 transition-transform",Ct?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[fe(Vn.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ee.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ee.size," workload",Ee.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ue&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',K.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:HC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Ze&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Ze.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),st&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ee.size," Workload",Ee.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ee.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>xt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:GC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),W&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(ms,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:XC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let k="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?k="JOBS_COMPUTE_(PHOTON)":k="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?k="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?k="ALL_PURPOSE_COMPUTE_(PHOTON)":k="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":(k=`DLT_${A}_COMPUTE`,e.photon_enabled&&(k+="_(PHOTON)"));break;case"DBSQL":const ue=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ue==="SERVERLESS"?k="SERVERLESS_SQL_COMPUTE":ue==="PRO"?k="SQL_PRO_COMPUTE":k="SQL_COMPUTE";break;case"VECTOR_SEARCH":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();k=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":k="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":k="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":k="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":k="DELTA_LIVE_TABLES_SERVERLESS";break;default:k="JOBS_COMPUTE"}let S=null;if(b){const ue=b(k);ue!==null&&ue>0&&(S=ue)}S===null&&(S=x[k]||.2),console.log(`[LiveEstimate] productType=${k}, dbuPrice=${S}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,$=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ue=g(e.driver_node_type);ue!==null&&ue>0&&(re=ue)}if(re===.5){const ue=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ue!=null&&ue.dbu_rate&&(re=ue.dbu_rate)}if(g&&e.worker_node_type){const ue=g(e.worker_node_type);ue!==null&&ue>0&&(le=ue)}if(le===.5){const ue=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ue!=null&&ue.dbu_rate&&(le=ue.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ue=k.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ue="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ue="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ue=`DLT_${A}_COMPUTE`)),v){const ve=v(ue);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var ot;return ve.sku_type===ue||ve.sku_type===k||((ot=ve.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DBSQL":const ue=l.find(Le=>Le.id===e.dbsql_warehouse_size||Le.name===e.dbsql_warehouse_size),_e=(ue==null?void 0:ue.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const Le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Jn=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Zn=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",ns=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Un=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Un){const rs=d(n,r,Un.driver_instance_type,Le,Jn),ss=d(n,r,Un.worker_instance_type,Zn,ns);$=(Un.driver_count*rs+Un.worker_count*ss)*ve*_}else if(e.driver_node_type){const rs=d(n,r,e.driver_node_type,Le,Jn),ss=e.worker_node_type?d(n,r,e.worker_node_type,Zn,ns):0,fr=e.num_workers||0;$=(rs+ss*fr)*ve*_}}break;case"VECTOR_SEARCH":const Ze=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,st=h(Ze),xt=(st==null?void 0:st.input_divisor)||(Ze==="storage_optimized"?64e6:2e6),lt=(st==null?void 0:st.dbu_per_hour)||(Ze==="storage_optimized"?18.29:4),mt=I*1e6,W=Math.ceil(mt/xt);j=W,T=W*lt,D=T*_;const P=e.vector_search_storage_gb||0,E=W*20,ie=Math.max(0,P-E),M=.023,q=ie*M;P>0&&(H=q,X={totalStorageGB:P,freeStorageGB:E,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Le=>Le.id===Se||Le.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,B=e.model_serving_scale_out||"small",ae=B==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[B]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Ve=e.lakebase_ha_nodes||1,pt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ye=(pt[n]||pt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ye*Ve,D=T*_;const ct=Math.min(e.lakebase_storage_gb||0,8192),Xe=15,It=ct*Xe,U=.023,Z=It*U,Te=e.lakebase_pitr_gb||0,K=Te*8.7*U,ut=e.lakebase_snapshot_gb||0,Bt=ut*3.91*U;(ct>0||Te>0||ut>0)&&(H=Z+K+Bt,X={totalStorageGB:ct,billableStorageGB:ct,dsuPerGB:Xe,totalDSU:It,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,vt=e.fmapi_rate_type||"input_token",Ct=["provisioned_scaling","provisioned_entry"].includes(vt),ht=e.fmapi_model?p(e.fmapi_model,vt):null;if(Ct){const Le=(ht==null?void 0:ht.dbu_per_hour)||(vt==="provisioned_scaling"?200:50);D=ft*Le}else{const Le=(ht==null?void 0:ht.dbu_per_1M_tokens)||(vt==="output_token"?3:1);D=ft*Le}break;case"FMAPI_PROPRIETARY":const ze=e.fmapi_quantity||0,Ie=e.fmapi_rate_type||"input_token",Me=Ie==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Yt=e.fmapi_context_length||"long",jt=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Ie,Re,Yt):null;if(Me){const Le=(jt==null?void 0:jt.dbu_per_hour)||150;D=ze*Le}else{let Le=jt==null?void 0:jt.dbu_per_1M_tokens;if(!Le)switch(Ie){case"output_token":Le=321.43;break;case"cache_read":Le=8.57;break;case"cache_write":Le=85.71;break;default:Le=21.43}D=ze*Le}break;case"DATABRICKS_APPS":const Ee=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ee]||.5,D=T*_;break;case"AI_PARSE":{const Le={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Jn=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Le[Jn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{D=(e.shutterstock_images||0)*.857;break}default:D=0}const F=D*S,Q=H!==void 0&&!isNaN(H)?H:0,N=F+$+Q,se=isNaN(F)?0:F,pe=isNaN($)?0:$,L=isNaN(N)?se:N,ke=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(S)?.15:S;return{monthlyDBUs:ke,dbuCost:se,vmCost:pe,totalCost:L,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:Q>0?Q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function gs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?aE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of gs(Z_,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of gs(Z_,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of gs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of gs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of gs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),p=d.length>0?gs(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=gs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=gs(Qm(l),e.tiersPerCloud);for(const p of u){const f=Hu(t,l),h=f.length>0?gs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[k,A]=m.useState({current:0,total:0}),[S,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),$=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:F,isPricingBundleLoaded:Q,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:ke,getVectorSearchRate:De}=ws();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,F),[j,F]),Y=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ue=m.useMemo(()=>{const M=new Set(w.map(q=>q.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,q,Se)=>{const Pe=Q&&F.modelServingRates?Object.entries(F.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,B])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:B.dbu_rate}}):xe;return{cloud:M,region:q,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,B)=>{if(Q&&F.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${B}`,ae=F.fmapiDatabricksRates[G];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,B)},getFMAPIProprietaryRate:(O,B,G,ae,je)=>{if(Q&&F.fmapiProprietaryRates){const Ve=ae||"global",pt=je||"all",it=`${M.toLowerCase()}:${O.toLowerCase()}:${B.toLowerCase()}:${Ve}:${pt}:${G}`,Ye=F.fmapiProprietaryRates[it];if(Ye)return{dbu_per_1M_tokens:Ye.is_hourly?void 0:Ye.dbu_rate,dbu_per_hour:Ye.is_hourly?Ye.dbu_rate:void 0}}return ke(O,B,G)},getVectorSearchRate:O=>{if(Q&&F.vectorSearchRates){const B=`${M.toLowerCase()}:${O}`,G=F.vectorSearchRates[B];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>Q?Pm(F,M,O):null,getPhotonMultiplier:O=>Q?iE(F,M,O):null,getDBUPrice:O=>Q?Lg(F,M,q,Se,O):null,getDBSQLWarehouseConfig:(O,B)=>Q?cl(F,M,O,B):null}},[X,re,le,he,xe,oe,Q,F,se,L,ke,De]),ve=async M=>{var K,ut,nt,Bt,ft,vt,Ct,ht,ze;const{environment:q,workloadType:Se,config:Pe}=M,O=_e(q.cloud,q.region,q.tier),B={...Pe,workload_type:Se},G=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Ie=cl(F,q.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Ie){const Me=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.driver_instance_type,Me,Re));const Yt=Pe.dbsql_worker_pricing_tier||"on_demand",jt=Pe.dbsql_worker_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.worker_instance_type,Yt,jt))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(G.push(pe(q.cloud,q.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&G.push(pe(q.cloud,q.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const ae=performance.now(),je=y8(B,O),Ve=performance.now()-ae,pt=performance.now();let it=null,Ye,ct;const Xe=j8(Se,Pe),It=N8(M);try{const Ie=await fetch(Xe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(It)});if(Ie.ok){const Me=await Ie.json();ct=Me;const Re=Me.data||Me,Yt=((K=Re.dbu_calculation)==null?void 0:K.dbu_per_month)??Re.dbu_per_month??(((ut=Re.dbu_calculation)==null?void 0:ut.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),jt=((nt=Re.dbu_calculation)==null?void 0:nt.dbu_cost_per_month)??((ft=(Bt=Re.total_cost)==null?void 0:Bt.breakdown)==null?void 0:ft.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ee=((vt=Re.vm_costs)==null?void 0:vt.vm_cost_per_month)??((ht=(Ct=Re.total_cost)==null?void 0:Ct.breakdown)==null?void 0:ht.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let Nt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?Nt=Re.total_cost.cost_per_month??jt+Ee:typeof Re.total_cost=="number"?Nt=Re.total_cost:Nt=Re.total_cost_per_month??jt+Ee,it={monthlyDBUs:Yt,dbuCost:jt,vmCost:Ee,totalCost:Nt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Me,parsed:it})}else{const Me=await Ie.text();try{const Re=JSON.parse(Me);Ye=`HTTP ${Ie.status}: ${((ze=Re.detail)==null?void 0:ze.message)||Re.detail||Re.message||Me}`}catch{Ye=`HTTP ${Ie.status}: ${Me}`}}}catch(Ie){Ye=Ie instanceof Error?Ie.message:"Unknown error"}const U=performance.now()-pt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,it,g),$e=Te<=g&&!Ye;return{testCase:M,localResult:je,apiResult:it,apiError:Ye,apiRequestBody:It,apiRawResponse:ct,localTimeMs:Ve,apiTimeMs:U,matches:$e,totalCostDiffPercent:Te,discrepancies:Z}},ot=()=>{D.current=!0,i(!0)},Ze=()=>{D.current=!1,i(!1)},I=()=>{$.current=!0,l(!0),D.current=!1,i(!1)},st=async()=>{for(;D.current&&!$.current;)await new Promise(M=>setTimeout(M,100))},xt=async()=>{r(!0),i(!1),l(!1),D.current=!1,$.current=!1,t([]),A({current:0,total:Y.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:q,tier:Se,workloadType:Pe,serverless:O,photon:B,driverNode:G,workerNode:ae,numWorkers:je,runsPerDay:Ve,avgRuntime:pt,daysPerMonth:it,hoursPerMonth:Ye}=S,ct={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:q,tier:Se},config:{serverless_enabled:O,photon_enabled:B,driver_node_type:G,worker_node_type:ae,num_workers:je,runs_per_day:Ve,avg_runtime_minutes:pt,days_per_month:it,hours_per_month:Ye,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Xe=await ve(ct);t([Xe]),u(null),r(!1)},mt=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,q=e.filter(G=>!G.matches).length,Se=e.filter(G=>G.apiError).length,Pe=e.length>0?e.reduce((G,ae)=>G+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,ae)=>G+ae.apiTimeMs,0)/e.length:0,B={};return e.forEach(G=>{const ae=G.testCase.category;B[ae]||(B[ae]={passed:0,failed:0}),G.matches?B[ae].passed++:B[ae].failed++}),{passed:M,failed:q,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:B}},[e]),W=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],q=e.map(G=>{var ae;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((ae=G.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Se=[M.join(","),...q.map(G=>G.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),B=document.createElement("a");B.href=O,B.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,B.click()},P=M=>{const q=new Set(d);q.has(M)?q.delete(M):q.add(M),p(q)},E=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(cD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(ZL,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:W,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(LD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(e3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Ze,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:xt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:S.cloud,onChange:M=>T({...S,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:S.region,onChange:M=>T({...S,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Km(F,S.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:S.tier,onChange:M=>T({...S,tier:M.target.value}),className:"w-full text-sm",children:Qm(S.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:S.workloadType,onChange:M=>T({...S,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.serverless,onChange:M=>T({...S,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.photon,onChange:M=>T({...S,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:S.driverNode,onChange:M=>T({...S,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:S.workerNode,onChange:M=>T({...S,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:S.numWorkers,onChange:M=>T({...S,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:S.runsPerDay,onChange:M=>T({...S,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:S.avgRuntime,onChange:M=>T({...S,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:S.daysPerMonth,onChange:M=>T({...S,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(jD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Km(F,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:q=>{q.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ue.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Q?"text-green-500":"text-yellow-500"}`,children:[Q?o.jsx(Au,{className:"w-5 h-5"}):o.jsx(ms,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:mt.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:mt.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:mt.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[mt.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[mt.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(mt.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(mt.byCategory).map(([M,{passed:q,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[q," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx($t.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${k.current/k.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[k.current," / ",k.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:Y.map(M=>{const q=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${q&&!q.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>q&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[q&&(Se?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q?E(q.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q!=null&&q.apiResult?E(q.apiResult.totalCost):q!=null&&q.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:q?o.jsxs("span",{className:q.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[q.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):q?q.matches?o.jsx(Au,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(C3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),q&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(q.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:E(q.localResult.totalCost)})]}),q.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",q.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),q.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:q.apiError})}):q.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(q.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:E(q.apiResult.totalCost)})]})]}):null]})]}),q.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:q.discrepancies.map((O,B)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},B))})]})})]}),q.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(q.apiRawResponse,null,2)})})]}),q.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(q.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:q.testCase.environment,config:q.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(jN,{children:o.jsxs(wi,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(wi,{index:!0,element:o.jsx(u8,{})}),o.jsx(wi,{path:"calculator",element:o.jsx(X_,{})}),o.jsx(wi,{path:"calculator/:id",element:o.jsx(X_,{})}),o.jsx(wi,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(wi,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();rf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(DN,{children:[o.jsx(A8,{}),o.jsx(EP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-nq6bRFhw.js b/lakemeter/backend/static/assets/index-nq6bRFhw.js new file mode 100644 index 00000000..8195ce80 --- /dev/null +++ b/lakemeter/backend/static/assets/index-nq6bRFhw.js @@ -0,0 +1,354 @@ +function a2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var hs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},Ke={};/** + * @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 hl=Symbol.for("react.element"),o2=Symbol.for("react.portal"),l2=Symbol.for("react.fragment"),c2=Symbol.for("react.strict_mode"),u2=Symbol.for("react.profiler"),d2=Symbol.for("react.provider"),p2=Symbol.for("react.context"),f2=Symbol.for("react.forward_ref"),m2=Symbol.for("react.suspense"),h2=Symbol.for("react.memo"),g2=Symbol.for("react.lazy"),_x=Symbol.iterator;function x2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ab(){}ab.prototype=Ia.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ab;Xm.constructor=Ym;sb(Xm,Ia.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ob=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ob.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=F[se];if(0>>1;ses(De,N))ws(Y,De)?(F[se]=Y,F[w]=N,se=w):(F[se]=De,F[ke]=N,se=ke);else if(ws(Y,N))F[se]=Y,F[w]=N,se=w;else break e}}return Q}function s(F,Q){var N=F.sortIndex-Q.sortIndex;return N!==0?N:F.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(F){for(var Q=n(u);Q!==null;){if(Q.callback===null)r(u);else if(Q.startTime<=F)r(u),Q.sortIndex=Q.expirationTime,t(c,Q);else break;Q=n(u)}}function k(F){if(v=!1,_(F),!g)if(n(c)!==null)g=!0,xe(A);else{var Q=n(u);Q!==null&&oe(k,Q.startTime-F)}}function A(F,Q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Q),p=n(c);p!==null&&(!(p.expirationTime>Q)||F&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var pe=se(p.expirationTime<=Q);Q=e.unstable_now(),typeof pe=="function"?p.callback=pe:p===n(c)&&r(c),_(Q)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var ke=n(u);ke!==null&&oe(k,ke.startTime-Q),L=!1}return L}finally{p=null,f=N,h=!1}}var S=!1,T=null,D=-1,$=5,j=-1;function H(){return!(e.unstable_now()-j<$)}function X(){if(T!==null){var F=e.unstable_now();j=F;var Q=!0;try{Q=T(!0,F)}finally{Q?re():(S=!1,T=null)}}else S=!1}var re;if(typeof y=="function")re=function(){y(X)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,he=le.port2;le.port1.onmessage=X,re=function(){he.postMessage(null)}}else re=function(){b(X,0)};function xe(F){T=F,S||(S=!0,re())}function oe(F,Q){D=b(function(){F(e.unstable_now())},Q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(F){F.callback=null},e.unstable_continueExecution=function(){g||h||(g=!0,xe(A))},e.unstable_forceFrameRate=function(F){0>F||125se?(F.sortIndex=N,t(u,F),n(c)===null&&F===n(u)&&(v?(x(D),D=-1):v=!0,oe(k,N-se))):(F.sortIndex=pe,t(c,F),g||h||(g=!0,xe(A))),F},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(F){var Q=f;return function(){var N=f;f=Q;try{return F.apply(this,arguments)}finally{f=N}}}})(mb);fb.exports=mb;var P2=fb.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 R2=m,cr=P2;function ee(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"),sf=Object.prototype.hasOwnProperty,A2=/^[: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]*$/,kx={},Sx={};function T2(e){return sf.call(Sx,e)?!0:sf.call(kx,e)?!1:A2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function L2(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 D2(e,t,n,r){if(t===null||typeof t>"u"||L2(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 Fn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var yn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yn[e]=new Fn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yn[t]=new Fn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yn[e]=new Fn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yn[e]=new Fn(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){yn[e]=new Fn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yn[e]=new Fn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yn[e]=new Fn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yn[e]=new Fn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yn[e]=new Fn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(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(eh,th);yn[t]=new Fn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!1,!1)});yn.xlinkHref=new Fn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yn[e]=new Fn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=yn.hasOwnProperty(t)?yn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function M2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Fd(e.type,!1),e;case 11:return e=Fd(e.type.render,!1),e;case 1:return e=Fd(e.type,!0),e;default:return""}}function cf(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 Xi:return"Fragment";case Yi:return"Portal";case af:return"Profiler";case rh:return"StrictMode";case of:return"Suspense";case lf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cf(e.type)||"Memo";case Bs:t=e._payload,e=e._init;try{return cf(e(t))}catch{}}return null}function O2(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 cf(t);case 8:return t===rh?"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 ri(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function I2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kl(e){e._valueTracker||(e._valueTracker=I2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 uf(e,t){var n=t.checked;return Ot({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Cx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ri(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function df(e,t){bb(e,t);var n=ri(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")?pf(e,t.type,n):t.hasOwnProperty("defaultValue")&&pf(e,t.type,ri(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 pf(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},B2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){B2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function Eb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Cb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Eb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var F2=Ot({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 hf(e,t){if(t){if(F2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gf(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 xf=null;function ah(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vf=null,ha=null,ga=null;function Rx(e){if(e=vl(e)){if(typeof vf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vf(e.stateNode,e.type,t))}}function jb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Nb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(Y2(e)/X2|0)|0}var Yl=64,Xl=4194304;function ho(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mr(t),e[t]=n}function tj(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=wo),Fx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Pj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Aj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Fx);case"textInput":return e=t.data,e===Fx&&Ux?null:e;default:return null}}function Tj(e,t){if(Ji)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=Hs=null,Ji=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Vj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var a=qx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Sf=null,So=null,Ef=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ef||Zi==null||Zi!==Yc(r)||(r=Zi,"selectionStart"in r&&hh(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}),So&&Wo(So,r)||(So=r,r=ru(Sf,"onSelect"),0na||(e.current=Af[na],Af[na]=null,na--)}function bt(e,t){na++,Af[na]=e.current,e.current=t}var si={},Pn=li(si),qn=li(!1),Mi=si;function ka(e,t){var n=e.type.contextTypes;if(!n)return si;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Wn(e){return e=e.childContextTypes,e!=null}function iu(){St(qn),St(Pn)}function Zx(e,t,n){if(Pn.current!==si)throw Error(ee(168));bt(Pn,t),bt(qn,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,O2(e)||"Unknown",s));return Ot({},n,r)}function au(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||si,Mi=Pn.current,bt(Pn,e),bt(qn,qn.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Mi),r.__reactInternalMemoizedMergedChildContext=e,St(qn),St(Pn),bt(Pn,e)):St(qn),bt(qn,n)}var ps=null,Ju=!1,Zd=!1;function u1(e){ps===null?ps=[e]:ps.push(e)}function Zj(e){Ju=!0,u1(e)}function ci(){if(!Zd&&ps!==null){Zd=!0;var e=0,t=dt;try{var n=ps;for(dt=1;e>=a,s-=a,xs=1<<32-Mr(t)+s|n<D?($=T,T=null):$=T.sibling;var j=f(x,T,_[D],k);if(j===null){T===null&&(T=$);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j,T=$}if(D===_.length)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;D<_.length;D++)T=p(x,_[D],k),T!==null&&(y=i(T,y,D),S===null?A=T:S.sibling=T,S=T);return Tt&&_i(x,D),A}for(T=r(x,T);D<_.length;D++)$=h(T,x,D,_[D],k),$!==null&&(e&&$.alternate!==null&&T.delete($.key===null?D:$.key),y=i($,y,D),S===null?A=$:S.sibling=$,S=$);return e&&T.forEach(function(H){return t(x,H)}),Tt&&_i(x,D),A}function v(x,y,_,k){var A=Za(_);if(typeof A!="function")throw Error(ee(150));if(_=A.call(_),_==null)throw Error(ee(151));for(var S=A=null,T=y,D=y=0,$=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?($=T,T=null):$=T.sibling;var H=f(x,T,j.value,k);if(H===null){T===null&&(T=$);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),S===null?A=H:S.sibling=H,S=H,T=$}if(j.done)return n(x,T),Tt&&_i(x,D),A;if(T===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,k),j!==null&&(y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return Tt&&_i(x,D),A}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,k),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),S===null?A=j:S.sibling=j,S=j);return e&&T.forEach(function(X){return t(x,X)}),Tt&&_i(x,D),A}function b(x,y,_,k){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var A=_.key,S=y;S!==null;){if(S.key===A){if(A=_.type,A===Xi){if(S.tag===7){n(x,S.sibling),y=s(S,_.props.children),y.return=x,x=y;break e}}else if(S.elementType===A||typeof A=="object"&&A!==null&&A.$$typeof===Bs&&r0(A)===S.type){n(x,S.sibling),y=s(S,_.props),y.ref=so(x,S,_),y.return=x,x=y;break e}n(x,S);break}else t(x,S);S=S.sibling}_.type===Xi?(y=Ti(_.props.children,x.mode,k,_.key),y.return=x,x=y):(k=Ic(_.type,_.key,_.props,null,x.mode,k),k.ref=so(x,y,_),k.return=x,x=k)}return a(x);case Yi:e:{for(S=_.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=op(_,x.mode,k),y.return=x,x=y}return a(x);case Bs:return S=_._init,b(x,y,S(_._payload),k)}if(mo(_))return g(x,y,_,k);if(Za(_))return v(x,y,_,k);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=ap(_,x.mode,k),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=m1(!0),h1=m1(!1),cu=li(null),uu=null,ia=null,yh=null;function _h(){yh=ia=uu=null}function bh(e){var t=cu.current;St(cu),e._currentValue=t}function Df(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 va(e,t){uu=e,yh=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Hn=!0),e.firstContext=null)}function kr(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(uu===null)throw Error(ee(308));ia=e,uu.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var ji=null;function wh(e){ji===null?ji=[e]:ji.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Es(e,r)}function Es(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 Fs=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 ys(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Js(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,tt&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Es(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Es(e,n)}function Ac(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Ot({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Bi|=a,e.lanes=a,e.memoizedState=p}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{dt=n,tp.transition=r}}function D1(){return Sr().memoizedState}function r5(e,t,n){var r=ei(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Or(n,e,r,s),I1(n,t,r)}}function s5(e,t,n){var r=ei(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Br(l,a)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Or(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===Mt||t!==null&&t===Mt}function O1(e,t){Eo=fu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:kr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},i5={readContext:kr,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:kr,useEffect:o0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lc(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lc(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=r5.bind(null,Mt,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:a0,useDebugValue:Ah,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=a0(!1),t=e[0];return e=n5.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Mt,s=qr();if(Tt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Ii&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,o0(k1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=fn.identifierPrefix;if(Tt){var n=vs,r=xs;n=(r&~(1<<32-Mr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Gr]=t,e[Qo]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(a=gf(n,r),n){case"dialog":kt("cancel",e),kt("close",e),s=r;break;case"iframe":case"object":case"embed":kt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=pu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Tt)return kn(t),null}else 2*Kt()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Kt(),t.sibling=null,n=Lt.current,bt(Lt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?rr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function f5(e,t){switch(xh(t),t.tag){case 1:return Wn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),St(qn),St(Pn),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eh(t),null;case 13:if(St(Lt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return St(Lt),null;case 4:return Ca(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var ac=!1,En=!1,m5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function $f(e,t,n){try{n()}catch(r){zt(e,t,r)}}var v0=!1;function h5(e,t){if(Cf=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jf={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ar(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(k){zt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$f(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hf(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Qo],delete t[Rf],delete t[Xj],delete t[Jj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qf(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=su));else if(r!==4&&(e=e.child,e!==null))for(qf(e,t,n),e=e.sibling;e!==null;)qf(e,t,n),e=e.sibling}function Wf(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(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}var gn=null,Lr=!1;function Ms(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=gn,s=Lr;gn=null,Ms(e,t,n),gn=r,Lr=s,gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gn.removeChild(n.stateNode));break;case 18:gn!==null&&(Lr?(e=gn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),Ho(e)):Jd(gn,n.stateNode));break;case 4:r=gn,s=Lr,gn=n.stateNode.containerInfo,Lr=!0,Ms(e,t,n),gn=r,Lr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&$f(n,t,a),s=s.next}while(s!==r)}Ms(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){zt(n,t,l)}Ms(e,t,n);break;case 21:Ms(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ms(e,t,n),En=r):Ms(e,t,n);break;default:Ms(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new m5),t.forEach(function(r){var s=S5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Pr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Kt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x5(r/1960))-r,10e?16:e,qs===null)var r=!1;else{if(e=qs,qs=null,xu=0,tt&6)throw Error(ee(331));var s=tt;for(tt|=4,ge=e.current;ge!==null;){var i=ge,a=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cKt()-Mh?Ai(e,0):Dh|=n),Gn(e,t)}function aw(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=Es(e,t),e!==null&&(gl(e,t,n),Gn(e,n))}function k5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aw(e,n)}function S5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),aw(e,n)}var ow;ow=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qn.current)Hn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Hn=!1,d5(e,t,n);Hn=!!(e.flags&131072)}else Hn=!1,Tt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Wn(r)?(i=!0,au(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Of(t,r,e,n),t=Ff(null,t,r,!0,i,n)):(t.tag=0,Tt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=C5(r),e=Ar(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=f0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Ar(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(ir=Xs(t.stateNode.containerInfo.firstChild),ar=t,Tt=!0,Dr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Cs(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Lf(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Nf(r,s)?a=null:i!==null&&Nf(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,a,n),t.child;case 6:return e===null&&Lf(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),f0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,bt(cu,r._currentValue),r._currentValue=a,i!==null)if(Br(i.value,a)){if(i.children===s.children&&!qn.current){t=Cs(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ys(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Df(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Df(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=kr(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Ar(r,t.pendingProps),s=Ar(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Ar(r,s),Dc(e,t),t.tag=1,Wn(r)?(e=!0,au(t)):e=!1,va(t,n),B1(t,r,s),Of(t,r,s,n),Ff(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function E5(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 br(e,t,n,r){return new E5(e,t,n,r)}function Fh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C5(e){if(typeof e=="function")return Fh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function ti(e,t){var n=e.alternate;return n===null?(n=br(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 Ic(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Fh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ti(n.children,s,i,t);case rh:a=8,s|=8;break;case af:return e=br(12,n,t,s|2),e.elementType=af,e.lanes=i,e;case of:return e=br(13,n,t,s),e.elementType=of,e.lanes=i,e;case lf:return e=br(19,n,t,s),e.elementType=lf,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:a=10;break e;case xb:a=9;break e;case sh:a=11;break e;case ih:a=14;break e;case Bs:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=br(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ti(e,t,n,r){return e=br(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=br(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function ap(e,t,n){return e=br(6,e,null,t),e.lanes=n,e}function op(e,t,n){return t=br(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function j5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,a,l,c){return e=new j5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=br(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function N5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pw)}catch(e){console.error(e)}}pw(),pb.exports=dr;var la=pb.exports,N0=la;rf.createRoot=N0.createRoot,rf.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function D5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||D5()})}function _u(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 Ua(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 M5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=Ws.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=Ws.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=Ws.Push;let y=Xf(v.location,b,x);u=d()+1;let _=R0(y,u),k=v.createHref(y);try{a.pushState(_,"",k)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(k)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Ws.Replace;let y=Xf(v.location,b,x);u=d();let _=R0(y,u),k=v.createHref(y);a.replaceState(_,"",k),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Zt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,p),c=b,()=>{s.removeEventListener(P0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var A0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(A0||(A0={}));function O5(e,t,n){return n===void 0&&(n="/"),I5(e,t,n)}function I5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let a=fw(e);B5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Zt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ni([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Zt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),fw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:q5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of mw(i.path))s(i,a,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=mw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function B5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:W5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const F5=/^:[\w-]+$/,U5=3,V5=2,z5=1,$5=10,H5=-2,T0=e=>e==="*";function q5(e,t){let n=e.split("/"),r=n.length;return n.some(T0)&&(r+=H5),t&&(r+=V5),n.filter(s=>!T0(s)).reduce((s,i)=>s+(F5.test(i)?U5:i===""?z5:$5),r)}function W5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function G5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function Q5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Y5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 X5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,J5=e=>X5.test(e);function Z5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(J5(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=L0(n.substring(1),"/"):i=L0(n,t)}else i=t;return{pathname:i,search:nN(r),hash:rN(s)}}function L0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lp(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 eN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=eN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Zt(!s.pathname||!s.pathname.includes("?"),lp("?","pathname","search",s)),Zt(!s.pathname||!s.pathname.includes("#"),lp("#","pathname","hash",s)),Zt(!s.search||!s.search.includes("#"),lp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=Z5(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ni=e=>e.join("/").replace(/\/\/+/g,"/"),tN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function sN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const iN=["get",...xw];new Set(iN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=gw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ni([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const cN=m.createContext(null);function uN(e){let t=m.useContext(Rs).outlet;return t&&m.createElement(cN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Rs),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(Hi),{matches:s}=m.useContext(Rs),{pathname:i}=bl(),a=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function dN(e,t){return pN(e,t)}function pN(e,t,n,r){_l()||Zt(!1);let{navigator:s}=m.useContext(Hi),{matches:i}=m.useContext(Rs),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Zt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=O5(e,{pathname:h}),v=xN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ni([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ni([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Ws.Pop}},v):v}function fN(){let e=bN(),t=sN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const mN=m.createElement(fN,null);class hN extends m.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?m.createElement(Rs.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function gN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Rs.Provider,{value:t},r)}function xN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Zt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||mN,c&&(u<0&&f===0?(kN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(gN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(hN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function vN(e){let t=m.useContext(Wh);return t||Zt(!1),t}function yN(e){let t=m.useContext(aN);return t||Zt(!1),t}function _N(e){let t=m.useContext(Rs);return t||Zt(!1),t}function Sw(e){let t=_N(),n=t.matches[t.matches.length-1];return n.route.id||Zt(!1),n.route.id}function bN(){var e;let t=m.useContext(vw),n=yN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wN(){let{router:e}=vN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const D0={};function kN(e,t,n){D0[e]||(D0[e]=!0)}function SN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function EN(e){return uN(e.context)}function wi(e){Zt(!1)}function CN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ws.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Zt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(Hi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function jN(e){let{children:t,location:n}=e;return dN(Jf(t),n)}new Promise(()=>{});function Jf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jf(r.props.children,i));return}r.type!==wi&&Zt(!1),!r.props.index||!r.props.children||Zt(!1);let a={id:r.props.id||i.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&&(a.children=Jf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zf(){return Zf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function PN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RN(e,t){return e.button===0&&(!t||t==="_self")&&!PN(e)}const AN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TN="6";try{window.__reactRouterVersion=TN}catch{}const LN="startTransition",M0=w2[LN];function DN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=L5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&M0?M0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>SN(r),[r]),m.createElement(CN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const MN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ON=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=NN(t,AN),{basename:h}=m.useContext(Hi),g,v=!1;if(typeof u=="string"&&ON.test(u)&&(g=u,MN))try{let _=new URL(window.location.href),k=u.startsWith("//")?new URL(_.protocol+u):new URL(u),A=qh(k.pathname,h);k.origin===_.origin&&A!=null?u=A+k.search+k.hash:v=!0}catch{}let b=oN(u,{relative:s}),x=IN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zf({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function IN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=cd(),u=bl(),d=bw(e,{relative:a});return m.useCallback(p=>{if(RN(p,n)){p.preventDefault();let f=r!==void 0?r:_u(u)===_u(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let BN={data:""},FN=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||BN},UN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VN=/\/\*[^]*?\*\/| +/g,B0=/\n+/g,$s=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?$s(a,i):i+"{"+$s(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=$s(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=$s.p?$s.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},ls={},Ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Ew(e[n]);return t}return e},zN=(e,t,n,r,s)=>{let i=Ew(e),a=ls[i]||(ls[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!ls[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=UN.exec(u.replace(VN,""));)d[4]?f.shift():d[3]?(p=d[3].replace(B0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(B0," ").trim();return f[0]})(e);ls[a]=$s(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&ls.g?ls.g:null;return n&&(ls.g=ls[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(ls[a],t,r,l),a},$N=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":$s(l,""):l===!1?"":l}return r+s+(a??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return zN(n.unshift?n.raw?$N(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,FN(t.target),t.g,t.o,t.k)}let Cw,em,tm;ud.bind({g:1});let js=ud.bind({k:1});function HN(e,t,n,r){$s.p=t,Cw=e,em=n,tm=r}function ui(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Cw(u,l)}return s}}var qN=e=>typeof e=="function",wu=(e,t)=>qN(e)?e(t):e,WN=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),GN=20,Gh="default",Nw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Nw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:GN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Bc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Aw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),KN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},QN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},YN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||QN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},XN=(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)||WN()}),wl=e=>(t,n)=>{let r=XN(t,e,n);return dd(r.toasterId||KN(r.id))({type:2,toast:r}),r.id},an=(e,t)=>wl("blank")(e,t);an.error=wl("error");an.success=wl("success");an.loading=wl("loading");an.custom=wl("custom");an.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Aw(n)};an.dismissAll=e=>an.dismiss(void 0,e);an.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Aw(n)};an.removeAll=e=>an.remove(void 0,e);an.promise=(e,t,n)=>{let r=an.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?an.success(i,{id:r,...n,...n==null?void 0:n.success}):an.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?an.error(i,{id:r,...n,...n==null?void 0:n.error}):an.dismiss(r)}),e};var JN=1e3,ZN=(e,t="default")=>{let{toasts:n,pausedAt:r}=YN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=JN)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&an.dismiss(h.id);return}return setTimeout(()=>an.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,k)=>k_.visible).slice(...h?[y+1]:[0,y]).reduce((_,k)=>_+(k.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},eP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,tP=js` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,nP=js` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,rP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${eP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${tP} 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: ${nP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,sP=js` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,iP=ui("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: ${sP} 1s linear infinite; +`,aP=js` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,oP=js` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,lP=ui("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${aP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${oP} 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; + } +`,cP=ui("div")` + position: absolute; +`,uP=ui("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,dP=js` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,pP=ui("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${dP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,fP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(pP,null,t):t:n==="blank"?null:m.createElement(uP,null,m.createElement(iP,{...r}),n!=="loading"&&m.createElement(cP,null,n==="error"?m.createElement(rP,{...r}):m.createElement(lP,{...r})))},mP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,hP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,gP="0%{opacity:0;} 100%{opacity:1;}",xP="0%{opacity:1;} 100%{opacity:0;}",vP=ui("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; +`,yP=ui("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,_P=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[gP,xP]:[mP(n),hP(n)];return{animation:t?`${js(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${js(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},bP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?_P(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(fP,{toast:e}),a=m.createElement(yP,{...e.ariaProps},wu(e.message,e));return m.createElement(vP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});HN(m.createElement);var wP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},kP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},SP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,EP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=ZN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=kP(p,f);return m.createElement(wP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?SP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(bP,{toast:d,position:p}))}))},We=an;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const pd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class CP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function jP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(CP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const NP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Qh(PP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(jP,{isPresent:n,children:e})),o.jsx(pd.Provider,{value:d,children:e})};function PP(){return new Map}function Tw(e=!0){const t=m.useContext(pd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const uc=e=>e.key||"";function F0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Lw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Tw(a),u=m.useMemo(()=>F0(e),[e]),d=a&&!l?[]:u.map(uc),p=m.useRef(!0),f=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Lw(()=>{p.current=!1,f.current=u;for(let k=0;k{const A=uc(k),S=a&&!l?!1:u===b||d.includes(A),T=()=>{if(h.has(A))h.set(A,!0);else return;let D=!0;h.forEach($=>{$||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(NP,{isPresent:S,initial:!p.current||n?void 0:!1,custom:S?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:S?void 0:T,children:k},A)})})},or=e=>e;let Dw=or;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},_s=e=>e*1e3,bs=e=>e/1e3,RP={useManualTiming:!1};function AP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],TP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=dc.reduce((x,y)=>(x[y]=AP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,TP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=a[y];return x[y]=(k,A=!1,S=!1)=>(n||g(),_.schedule(k,A,S)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function LP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const DP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||DP.has(e)}let Iw=e=>!ku(e);function MP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{MP(require("@emotion/is-prop-valid").default)}catch{}function OP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function IP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const fd=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>sl(e[t]))}function Bw(e){return!!(hd(e)||e.variants)}function BP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function FP(e){const{initial:t,animate:n}=BP(e,m.useContext(fd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const UP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function VP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),zP="framerAppearId",Fw="data-"+tg(zP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function $P(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(fd),c=m.useContext(Ow),u=m.useContext(pd),d=m.useContext(Yh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(Uw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&HP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Fw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Lw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),ng.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function HP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function qP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&LP(e);function l(u,d){let p;const f={...m.useContext(Yh),...u,layoutId:WP(u)},{isStatic:h}=f,g=FP(u),v=r(u,h);if(!h&&Xh){GP();const b=KP(f);p=b.MeasureLayout,g.visualElement=$P(s,v,f,t,b.ProjectionNode)}return o.jsxs(fd.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,VP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[UP]=s,c}function WP({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function GP(e,t){m.useContext(Ow).strict}function KP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const QP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(QP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),YP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XP=e=>rm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Fc(e){const t=jn(e)?e.get():e;return YP(t)?t.toValue():t}function JP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:ZP(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const zw=e=>(t,n)=>{const r=m.useContext(fd),s=m.useContext(pd),i=()=>JP(e,t,r,s);return n?i():Qh(i)};function ZP(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Fc(i[f]);let{initial:a,animate:l}=e;const c=hd(e),u=Bw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!md(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),eR=$w("var(--"),ig=e=>eR(e)?tR.test(e.split("/*")[0].trim()):!1,tR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Ns=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>Ns(0,1,e)},pc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Is=kl("deg"),Jr=kl("%"),Ae=kl("px"),nR=kl("vh"),rR=kl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},sR={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},iR={rotate:Is,rotateX:Is,rotateY:Is,rotateZ:Is,scale:pc,scaleX:pc,scaleY:pc,scaleZ:pc,skew:Is,skewX:Is,skewY:Is,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:il,originX:$0,originY:$0,originZ:Ae},H0={...za,transform:Math.round},ag={...sR,...iR,zIndex:H0,size:Ae,fillOpacity:il,strokeOpacity:il,numOctaves:H0},aR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},oR=Va.length;function lR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function fR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return qi.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Yw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function mR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],hR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if(qi.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{mR(n,r),Et.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},gR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!jn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function xR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return og(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,xR(e,t)),r}function yR(e,t){const n={},r=vR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function _R(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function bR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(rg(n)?_R:yR)(r,i,a,n),u=OP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function wR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...rg(r)?hR:gR,preloadedFeatures:e,useRender:bR(s),createVisualElement:t,Component:r};return qP(a)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class SR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(kR()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class ER extends SR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function pg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function fg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",CR={linearEasing:void 0};function jR(e,t){const n=Jh(e);return()=>{var r;return(r=CR[t])!==null&&r!==void 0?r:n()}}const Eu=jR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Eu()?tk(e,t):mg(e)?xo(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const Rr={x:!1,y:!1};function sk(){return Rr.x||Rr.y}function NR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=NR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function PR(e,t,n={}){const[r,s,i]=ik(e,n),a=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const ak=(e,t)=>t?e===t?!0:ak(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,RR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AR(e){return RR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function up(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const TR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(vo.has(n))return;up(n,"down");const s=Q0(()=>{up(n,"up")}),i=()=>up(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function LR(e,t,n={}){const[r,s,i]=ik(e,n),a=l=>{const c=l.currentTarget;if(!Y0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!Y0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||ak(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!AR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>TR(u,s),s)}),i}function DR(e){return e==="x"||e==="y"?Rr[e]?null:(Rr[e]=!0,()=>{Rr[e]=!1}):Rr.x||Rr.y?null:(Rr.x=Rr.y=!0,()=>{Rr.x=Rr.y=!1})}const ok=new Set(["width","height","top","left","right","bottom",...Va]);let Uc;function MR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(xn.isProcessing||RP.useManualTiming?xn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(MR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class IR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=OR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),Et.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new IR(e,t)}function BR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function FR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=XP(i[a]);BR(e,a,l)}}function UR(e){return!!(jn(e)&&e.add)}function am(e,t){const n=e.getValue("willChange");if(UR(n))return n.add(t)}function ck(e){return e.props[Fw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,VR=1e-7,zR=12;function $R(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=uk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>VR&&++l$R(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pk=e=>t=>1-e(1-t),fk=Sl(.33,1.53,.69,.99),yg=pk(fk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=pk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function HR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const Po=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qR(e){return e==null}const WR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&WR.test(n)&&n.startsWith(e)||t&&!qR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},GR=e=>Ns(0,255,e),dp={...za,transform:e=>Math.round(GR(e))},Pi={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dp.transform(e)+", "+dp.transform(t)+", "+dp.transform(n)+", "+Po(il.transform(r))+")"};function KR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const om={test:wg("#"),parse:KR,transform:Pi.transform},ua={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(Po(t))+", "+Jr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>Pi.test(e)||om.test(e)||ua.test(e),parse:e=>Pi.test(e)?Pi.parse(e):ua.test(e)?ua.parse(e):om.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Pi.transform(e):ua.transform(e)},QR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(QR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",XR="var",JR="var(",J0="${}",ZR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(ZR,c=>(Sn.test(c)?(r.color.push(i),s.push(bk),n.push(Sn.parse(c))):c.startsWith(JR)?(r.var.push(i),s.push(XR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return ol(e).values}function kk(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function tA(e){const t=wk(e);return kk(e)(t.map(eA))}const ai={test:YR,parse:wk,createTransformer:kk,getAnimatableNone:tA},nA=new Set(["brightness","contrast","saturate","opacity"]);function rA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=nA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const sA=/\b([a-z-]*)\(.*?\)/gu,lm={...ai,getAnimatableNone:e=>{const t=e.match(sA);return t?t.map(rA).join(" "):e}},iA={...ag,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:lm,WebkitFilter:lm},kg=e=>iA[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=ai),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aA=new Set(["auto","none","0"]);function oA(e,t,n){let r=0,s;for(;re===za||e===Ae,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},lA=new Set(["x","y","z"]),cA=Va.filter(e=>!lA.has(e));function uA(e){const t=[];return cA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Li=new Set;let cm=!1,um=!1;function Ek(){if(um){const e=Array.from(Li).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=uA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Li.forEach(e=>e.complete()),Li.clear()}function Ck(){Li.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function dA(){Ck(),Ek()}class Sg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Li.add(this),cm||(cm=!0,Et.read(Ck),Et.resolveKeyframes(Ek))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),pA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fA(e){const t=pA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=fA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return jk(a)?parseFloat(a):a}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),mA={test:e=>e==="auto",parse:e=>e},Rk=[za,Ae,Jr,Is,rR,nR,mA],nv=e=>Rk.find(Pk(e));class Ak extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ai.test(e)||e==="0")&&!e.startsWith("url("));function hA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(xA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const vA=40;class Tk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>vA?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!gA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Dt=(e,t,n)=>e+(t-e)*n;function pp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function yA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pp(c,l,e+1/3),i=pp(c,l,e),a=pp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function Cu(e,t){return n=>n>0?t:e}const fp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},_A=[om,Pi,ua],bA=e=>_A.find(t=>t.test(e));function sv(e){const t=bA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=yA(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Cu(e,t);const s={...n};return i=>(s.red=fp(n.red,r.red,i),s.green=fp(n.green,r.green,i),s.blue=fp(n.blue,r.blue,i),s.alpha=Dt(n.alpha,r.alpha,i),Pi.transform(s))},wA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(wA),dm=new Set(["none","hidden"]);function kA(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SA(e,t){return n=>Dt(e,t,n)}function Eg(e){return typeof e=="number"?SA:typeof e=="string"?ig(e)?Cu:Sn.test(e)?iv:jA:Array.isArray(e)?Lk:typeof e=="object"?Sn.test(e)?iv:EA:Cu}function Lk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Eg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function CA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ai.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?kA(e,t):El(Lk(CA(r,s),s.values),n):Cu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Dt(e,t,n):Eg(e)(e,t)}const NA=5;function Mk(e,t,n){const r=Math.max(t-NA,0);return lk(n-e(r),t-r)}const Vt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mp=.001;function PA({duration:e=Vt.duration,bounce:t=Vt.bounce,velocity:n=Vt.velocity,mass:r=Vt.mass}){let s,i,a=1-t;a=Ns(Vt.minDamping,Vt.maxDamping,a),e=Ns(Vt.minDuration,Vt.maxDuration,bs(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=pm(u,a),g=Math.exp(-p);return mp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=pm(Math.pow(u,2),a);return(-s(u)+mp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-mp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=AA(s,i,l);if(e=_s(e),isNaN(c))return{stiffness:Vt.stiffness,damping:Vt.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const RA=12;function AA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function DA(e){let t={velocity:Vt.velocity,stiffness:Vt.stiffness,damping:Vt.damping,mass:Vt.mass,isResolvedFromDuration:!1,...e};if(!av(e,LA)&&av(e,TA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Ns(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Vt.mass,stiffness:s,damping:i}}else{const n=PA(e);t={...t,...n,mass:Vt.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=Vt.visualDuration,t=Vt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=DA({...n,velocity:-bs(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=bs(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Vt.restSpeed.granular:Vt.restSpeed.default),s||(s=y?Vt.restDelta.granular:Vt.restDelta.default);let _;if(v<1){const A=pm(x,v);_=S=>{const T=Math.exp(-v*x*S);return a-T*((g+v*x*b)/A*Math.sin(A*S)+b*Math.cos(A*S))}}else if(v===1)_=A=>a-Math.exp(-x*A)*(b+(g+x*b)*A);else{const A=x*Math.sqrt(v*v-1);_=S=>{const T=Math.exp(-v*x*S),D=Math.min(A*S,300);return a-T*((g+v*x*b)*Math.sinh(D)+A*b*Math.cosh(D))/A}}const k={calculatedDuration:h&&p||null,next:A=>{const S=_(A);if(h)l.done=A>=p;else{let T=0;v<1&&(T=A===0?_s(g):Mk(_,A,S));const D=Math.abs(T)<=r,$=Math.abs(a-S)<=s;l.done=D&&$}return l.value=l.done?a:S,l},toString:()=>{const A=Math.min(ek(k),sm),S=tk(T=>k.next(A*T).value,A,30);return A+"ms "+S}};return k}function ov({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),k=D=>{const $=y(D),j=_(D);f.done=Math.abs($)<=u,f.value=f.done?x:j};let A,S;const T=D=>{h(f.value)&&(A=D,S=Ok({keyframes:[f.value,g(f.value)],velocity:Mk(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let $=!1;return!S&&A===void 0&&($=!0,k(D),T(D)),A!==void 0&&D>=A?S.next(D-A):(!$&&k(D),f)}}}const MA=Sl(.42,0,1,1),OA=Sl(0,0,.58,1),Ik=Sl(.42,0,.58,1),IA=e=>Array.isArray(e)&&typeof e[0]!="number",BA={linear:or,easeIn:MA,easeInOut:Ik,easeOut:OA,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:fk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return BA[e];return e};function FA(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=FA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(Ns(e[0],e[i-1],d)):u}function VA(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Dt(n,1,s))}}function zA(e){const t=[0];return VA(t,e.length-1),t}function $A(e,t){return e.map(n=>n*t)}function HA(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=IA(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},a=$A(n&&n.length===t.length?n:zA(t),e),l=UA(a,t,{ease:Array.isArray(s)?s:HA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const qA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Et.update(t,!0),stop:()=>ii(t),now:()=>xn.isProcessing?xn.timestamp:Zr.now()}},WA={decay:ov,inertia:ov,tween:ju,keyframes:ju,spring:Ok},GA=e=>e/100;class Cg extends Tk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=fg(n)?n:WA[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=El(GA,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,k=i;if(h){const D=Math.min(this.currentTime,d)/p;let $=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&$--,$=Math.min($,h+1),!!($%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(k=a)),_=Ns(0,1,j)*p}const A=y?{done:!1,value:c[0]}:k.next(_);l&&(A.value=l(A.value));let{done:S}=A;!y&&u!==null&&(S=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&S);return T&&s!==void 0&&(A.value=xd(c,this.options,s)),b&&b(A.value),T&&this.finish(),A}get duration(){const{resolved:t}=this;return t?bs(t.calculatedDuration):0}get time(){return bs(this.currentTime)}set time(t){t=_s(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=bs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=qA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const KA=new Set(["opacity","clipPath","filter","transform"]);function QA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const YA=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,XA=2e4;function JA(e){return fg(e.type)||e.type==="spring"||!nk(e.ease)}function ZA(e,t){const n=new Cg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Eu()&&eT(i)&&(i=Bk[i]),JA(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=ZA(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=QA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(xd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return bs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return bs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_s(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return or;const{animation:r}=n;G0(r,t)}return or}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new Cg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=_s(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return YA()&&r&&KA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const tT={type:"spring",stiffness:500,damping:25,restSpeed:10},nT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),rT={type:"keyframes",duration:.8},sT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iT=(e,{keyframes:t})=>t.length>2?rT:qi.has(e)?e.startsWith("scale")?nT(t[1]):tT:sT;function aT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>a=>{const l=pg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-_s(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};aT(l)||(d={...d,...iT(e,d)}),d.duration&&(d.duration=_s(d.duration)),d.repeatDelay&&(d.repeatDelay=_s(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=xd(d.keyframes,l);if(f!==void 0)return Et.update(()=>{d.onUpdate(f),d.onComplete()}),new ER([])}return!i&&cv.supports(d)?new cv(d):new Cg(d)};function oT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Fk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&oT(d,p))continue;const g={delay:n,...pg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,p,Et);y!==null&&(g.startTime=y,v=!0)}}am(e,p),f.start(jg(p,f,h,e.shouldReduceMotion&&ok.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{Et.update(()=>{l&&FR(e,l)})}),u}function fm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Fk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return lT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function lT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(cT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(fm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function cT(e,t){return e.sortNodePosition(t)}function uT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>fm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=fm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Fk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const dT=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>uT(e,n,r)))}function hT(e){let t=mT(e),n=uv(),r=!0;const s=c=>(u,d)=>{var p;const f=gd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=Uk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&k,$=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});A===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&($=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const F=e.getValue(oe);F&&(F.liveStyle=!1)};for(const oe in re){const F=H[oe],Q=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;rm(F)&&rm(Q)?N=!Zw(F,Q):N=F!==Q,N?F!=null?le(oe):f.add(oe):F!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(S&&T)||$)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function gT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function vi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:vi(!0),whileInView:vi(),whileHover:vi(),whileTap:vi(),whileDrag:vi(),whileFocus:vi(),exit:vi()}}class di{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xT extends di{constructor(t){super(t),t.animationState||(t.animationState=hT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let vT=0;class yT extends di{constructor(){super(...arguments),this.id=vT++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const _T={animation:{Feature:xT},exit:{Feature:yT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const bT=e=>t=>hg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,bT(n),r)}const dv=(e,t)=>Math.abs(e-t);function wT(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=gp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=wT(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=xn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=hp(f,this.transformPagePoint),Et.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gp(p.type==="pointercancel"?this.lastMoveEventInfo:hp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=hp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=xn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,gp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ii(this.updatePoint)}}function hp(e,t){return t?{point:t(e.point)}:e}function pv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gp({point:e},t){return{point:e,delta:pv(e,zk(t)),offset:pv(e,kT(t)),velocity:ST(t,.1)}}function kT(e){return e[0]}function zk(e){return e[e.length-1]}function ST(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const i=bs(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const $k=1e-4,ET=1-$k,CT=1+$k,Hk=.01,jT=0-Hk,NT=0+Hk;function ur(e){return e.max-e.min}function PT(e,t,n){return Math.abs(e-t)<=n}function fv(e,t,n,r=.5){e.origin=r,e.originPoint=Dt(t.min,t.max,e.origin),e.scale=ur(n)/ur(t),e.translate=Dt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=ET&&e.scale<=CT||isNaN(e.scale))&&(e.scale=1),(e.translate>=jT&&e.translate<=NT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){fv(e.x,t.x,n.x,r?r.originX:void 0),fv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ur(t)}function RT(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ur(t)}function To(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function AT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Dt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TT(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),Ns(0,1,n)}function MT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function OT(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),Gt=()=>({x:bv(),y:bv()});function gr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function IT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function BT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function xp(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!xp(e)||!xp(t)||!xp(n)}function ki(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Ev=1.0000000000001;function FT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,s=.5){const i=Dt(e.min,e.max,s);gm(e,t,n,i,r)}function fa(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(BT(e.getBoundingClientRect(),t))}function UT(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,VT=new WeakMap;class zT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Gt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),gr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ur(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&Et.postRender(()=>g(d,p)),am(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=$T(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>gr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&Et.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!fc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=AT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=TT(s.layoutBox,n):this.constraints=!1,this.elastic=OT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&gr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=MT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=UT(r,s.root,this.visualElement.getTransformPagePoint());let a=LT(s.layout.layoutBox,i);if(n){const l=n(IT(a));this.hasMutatedConstraints=!!l,l&&(a=qk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=gr(d=>{if(!fc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return am(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){gr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){gr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){gr(n=>{const{drag:r}=this.getProps();if(!fc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Dt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};gr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=DT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),gr(a=>{if(!fc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Dt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;VT.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),Et.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(gr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function fc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $T(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HT extends di{constructor(t){super(t),this.removeGroupControls=or,this.removeListeners=or,this.controls=new zT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||or}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&Et.postRender(()=>e(t,n))};class qT extends di{constructor(){super(...arguments),this.removePointerDownListener=or}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&Et.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ae.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},WT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ai.parse(e);if(s.length>5)return r;const i=ai.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Dt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class GT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;fR(KT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||Et.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Tw(),r=m.useContext(Kh);return o.jsx(GT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const KT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:WT};function QT(e,t,n){const r=jn(e)?e:al(e);return r.start(jg("",r,t,n)),r.animation}function YT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XT=(e,t)=>e.depth-t.depth;class JT{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XT),this.isDirty=!1,this.children.forEach(t)}}function ZT(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ii(r),e(i-t))};return Et.read(r,!0),()=>ii(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],eL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Ae.test(e);function tL(e,t,n,r,s,i){s?(e.opacity=Dt(0,n.opacity!==void 0?n.opacity:1,nL(r)),e.opacityExit=Dt(t.opacity!==void 0?t.opacity:1,0,rL(r))):i&&(e.opacity=Dt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Tv(e,t){e.min=t.min,e.max=t.max}function hr(e,t){Tv(e.x,t.x),Tv(e.y,t.y)}function Lv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function sL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Jr.test(t)&&(t=parseFloat(t),t=Dt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Dt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,a){sL(e,t[n],t[r],t[s],t.scale,i,a)}const iL=["x","scaleX","originX"],aL=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,iL,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,aL,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Bv(e,t){return e.min===t.min&&e.max===t.max}function oL(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Fv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Uv(e){return ur(e.x)/ur(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lL{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function cL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,vp=["","X","Y","Z"],uL={visibility:"hidden"},zv=1e3;let dL=0;function yp(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Et,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=dL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(mL),this.nodes.forEach(yL),this.nodes.forEach(_L),this.nodes.forEach(hL),yo&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=ZT(f,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||EL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const k={...pg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ii(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const A=k/1e3;qv(p.x,a.x,A),qv(p.y,a.y,A),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),kL(this.relativeTarget,this.relativeTargetOrigin,f,A),_&&oL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Gt()),hr(_,this.relativeTarget)),v&&(this.animationValues=d,tL(d,u,this.latestValues,A,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=A},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ii(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Et.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=QT(0,zv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Gt();const p=ur(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=ur(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}hr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new lL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&yp("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function pL(e){e.updateLayout()}function fL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(f);f.min=r[p].min,f.max=f.min+h}):rS(i,n.layoutBox,r)&&gr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=ur(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=Gt();To(g,n.layoutBox,f.layoutBox);const v=Gt();To(v,r,h.layoutBox),eS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function mL(e){yo&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function hL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function gL(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function xL(e){e.isLayoutDirty=!1}function vL(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yL(e){e.resolveTargetDelta()}function _L(e){e.calcProjection()}function bL(e){e.resetSkewAndRotation()}function wL(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Dt(t.translate,0,n),e.scale=Dt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Dt(t.min,n.min,r),e.max=Dt(t.max,n.max,r)}function kL(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function SL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const EL={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:or;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function CL(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!PT(Uv(t),Uv(n),.2)}function jL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const NL=nS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_p={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!_p.current){const e=new NL({});e.mount(window),e.setOptions({layoutScroll:!0}),_p.current=e}return _p.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),PL={pan:{Feature:qT},drag:{Feature:HT,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class RL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=PR(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class AL extends di{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&Et.postRender(()=>i(t,Cl(t)))}class TL extends di{mount(){const{current:t}=this.node;t&&(this.unmount=LR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,bp=new WeakMap,LL=e=>{const t=xm.get(e.target);t&&t(e)},DL=e=>{e.forEach(LL)};function ML({root:e,...t}){const n=e||document;bp.has(n)||bp.set(n,{});const r=bp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(DL,{root:e,...t})),r[s]}function OL(e,t,n){const r=ML(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const IL={some:0,all:1};class BL extends di{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:IL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return OL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(FL(t,n))&&this.startObserver()}unmount(){}}function FL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const UL={inView:{Feature:BL},tap:{Feature:TL},focus:{Feature:AL},hover:{Feature:RL}},VL={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function zL(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const $L=[...Rk,Sn,ai],HL=e=>$L.find(Pk(e)),Jv=new WeakMap;function qL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class WL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||zL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ii(this.notifyUpdate),ii(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qi.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Et.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Gt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!HL(s)&&ai.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class aS extends WL{constructor(){super(...arguments),this.KeyframeResolver=Ak}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function GL(e){return window.getComputedStyle(e)}class KL extends aS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}else{const r=GL(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){og(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class QL extends aS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Gt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qi.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const YL=(e,t)=>rg(e)?new QL(t):new KL(t,{allowProjection:e!==m.Fragment}),XL=wR({..._T,...UL,...PL,...VL},YL),$t=IP(XL);function JL({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const ZL=m.forwardRef(JL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(eD);function tD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(tD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const sD=m.forwardRef(rD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const oS=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const wp=m.forwardRef(aD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const kp=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const pD=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(fD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Au=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Gs=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sr=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const fs=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const _D=m.forwardRef(yD);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(ED);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const jD=m.forwardRef(CD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Tu=m.forwardRef(RD);function AD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(AD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const LD=m.forwardRef(TD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(DD);function MD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const OD=m.forwardRef(MD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const BD=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(FD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const ms=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef(WD);function GD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const KD=m.forwardRef(GD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Sp=m.forwardRef(i3);function a3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const o3=m.forwardRef(a3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Lu=m.forwardRef(l3);function c3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const u3=m.forwardRef(c3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(h3);function g3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(g3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const y3=m.forwardRef(v3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const nn=m.forwardRef(w3);function k3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const S3=m.forwardRef(k3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(j3);function pS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=fS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const A3={},iy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(A3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},T3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function L3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var D3=typeof Object.is=="function"?Object.is:L3,M3=La.useState,O3=La.useEffect,I3=La.useLayoutEffect,B3=La.useDebugValue;function F3(e,t){var n=t(),r=M3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return I3(function(){s.value=n,s.getSnapshot=t,Ep(s)&&i({inst:s})},[e,n,t]),O3(function(){return Ep(s)&&i({inst:s}),e(function(){Ep(s)&&i({inst:s})})},[e]),B3(n),n}function Ep(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!D3(e,n)}catch{return!0}}function U3(e,t){return t()}var V3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?U3:F3;xS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:V3;gS.exports=xS;var z3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,$3=z3;function H3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var q3=typeof Object.is=="function"?Object.is:H3,W3=$3.useSyncExternalStore,G3=vd.useRef,K3=vd.useEffect,Q3=vd.useMemo,Y3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=G3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Q3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,q3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=W3(e,i[0],i[1]);return K3(function(){a.hasValue=!0,a.value=l},[l]),Y3(l),l};mS.exports=hS;var X3=mS.exports;const J3=qu(X3),vS={},{useDebugValue:Z3}=pn,{useSyncExternalStoreWithSelector:eM}=J3;let ay=!1;const tM=e=>e;function nM(e,t=tM,n){(vS?"production":void 0)!=="production"&&n&&!ay&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ay=!0);const r=eM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Z3(r),r}const oy=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?T3(e):e,n=(r,s)=>nM(t,r,s);return Object.assign(n,t),n},rM=e=>e?oy(e):oy;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:sM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=sM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ur=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=bd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Kn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ur("ArrayBuffer");function iM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const aM=bd("string"),Kn=bd("function"),wS=bd("number"),Nl=e=>e!==null&&typeof e=="object",oM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},lM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},cM=Ur("Date"),uM=Ur("File"),dM=Ur("Blob"),pM=Ur("FileList"),fM=e=>Nl(e)&&Kn(e.pipe),mM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Kn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Kn(e.toString)&&e.toString()==="[object FormData]"))},hM=Ur("URLSearchParams"),[gM,xM,vM,yM]=["ReadableStream","Request","Response","Headers"].map(Ur),_M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Da(e)&&e!==Ri;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const a=e&&kS(n,i)||i;Hc(n[a])&&Hc(s)?n[a]=wm(n[a],s):Hc(s)?n[a]=wm({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Kn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),wM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),kM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},SM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},EM=(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},CM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),NM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},PM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},RM=Ur("HTMLFormElement"),AM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),TM=Ur("RegExp"),ES=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},LM=e=>{ES(e,(t,n)=>{if(Kn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Kn(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+"'")})}})},DM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},MM=()=>{},OM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function IM(e){return!!(e&&Kn(e.append)&&e[_S]==="FormData"&&e[yd])}const BM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},FM=Ur("AsyncFunction"),UM=e=>e&&(Nl(e)||Kn(e))&&Kn(e.then)&&Kn(e.catch),CS=((e,t)=>e?setImmediate:t?((n,r)=>(Ri.addEventListener("message",({source:s,data:i})=>{s===Ri&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Kn(Ri.postMessage)),VM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ri):typeof process<"u"&&process.nextTick||CS,zM=e=>e!=null&&Kn(e[yd]),z={isArray:$a,isArrayBuffer:bS,isBuffer:jl,isFormData:mM,isArrayBufferView:iM,isString:aM,isNumber:wS,isBoolean:oM,isObject:Nl,isPlainObject:Hc,isEmptyObject:lM,isReadableStream:gM,isRequest:xM,isResponse:vM,isHeaders:yM,isUndefined:Da,isDate:cM,isFile:uM,isBlob:dM,isRegExp:TM,isFunction:Kn,isStream:fM,isURLSearchParams:hM,isTypedArray:jM,isFileList:pM,forEach:Pl,merge:wm,extend:bM,trim:_M,stripBOM:wM,inherits:kM,toFlatObject:SM,kindOf:_d,kindOfTest:Ur,endsWith:EM,toArray:CM,forEachEntry:NM,matchAll:PM,isHTMLForm:RM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:ES,freezeMethods:LM,toObjectSet:DM,toCamelCase:AM,noop:MM,toFiniteNumber:OM,findKey:kS,global:Ri,isContextDefined:SS,isSpecCompliantForm:IM,toJSONObject:BM,isAsyncFn:FM,isThenable:UM,setImmediate:CS,asap:VM,isIterable:zM};function Oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}z.inherits(Oe,Error,{toJSON:function(){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:z.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Oe.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Oe,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Oe.from=(e,t,n,r,s,i)=>{const a=Object.create(jS);z.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Oe.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const $M=null;function km(e){return z.isPlainObject(e)||z.isArray(e)}function PS(e){return z.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function HM(e){return z.isArray(e)&&!e.some(km)}const qM=z.toFlatObject(z,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!z.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=z.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!z.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&z.isSpecCompliantForm(t);if(!z.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(z.isDate(g))return g.toISOString();if(z.isBoolean(g))return g.toString();if(!c&&z.isBlob(g))throw new Oe("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(g)||z.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(z.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(z.isArray(g)&&HM(g)||(z.isFileList(g)||z.endsWith(v,"[]"))&&(x=z.toArray(g)))return v=PS(v),x.forEach(function(_,k){!(z.isUndefined(_)||_===null)&&t.append(a===!0?cy([v],k,i):a===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(qM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!z.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),z.forEach(g,function(x,y){(!(z.isUndefined(x)||x===null)&&s.call(t,x,z.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!z.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function WM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function AS(e,t,n){if(!t)return e;const r=n&&n.encode||WM;z.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=z.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){z.forEach(this.handlers,function(r){r!==null&&t(r)})}}const TS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},GM=typeof URLSearchParams<"u"?URLSearchParams:Rg,KM=typeof FormData<"u"?FormData:null,QM=typeof Blob<"u"?Blob:null,YM={isBrowser:!0,classes:{URLSearchParams:GM,FormData:KM,Blob:QM},protocols:["http","https","file","blob","url","data"]},Ag=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,XM=Ag&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),JM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ZM=Ag&&window.location.href||"http://localhost",e4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ag,hasStandardBrowserEnv:XM,hasStandardBrowserWebWorkerEnv:JM,navigator:Sm,origin:ZM},Symbol.toStringTag,{value:"Module"})),Cn={...e4,...YM};function t4(e,t){return wd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&z.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function n4(e){return z.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function r4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&z.isArray(s)?s.length:a,c?(z.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!z.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&z.isArray(s[a])&&(s[a]=r4(s[a])),!l)}if(z.isFormData(e)&&z.isFunction(e.entries)){const n={};return z.forEachEntry(e,(r,s)=>{t(n4(r),s,n,0)}),n}return null}function s4(e,t,n){if(z.isString(e))try{return(t||JSON.parse)(e),z.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:TS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return s?JSON.stringify(LS(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return t4(t,this.formSerializer).toString();if((l=z.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),s4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Oe.from(l,Oe.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const i4=z.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"]),a4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&i4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},py=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:z.isArray(e)?e.map(qc):String(e)}function o4(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 l4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Cp(e,t,n,r,s){if(z.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!z.isString(t)){if(z.isString(r))return t.indexOf(r)!==-1;if(z.isRegExp(r))return r.test(t)}}function c4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function u4(e,t){const n=z.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Qn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=z.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=qc(l))}const a=(l,c)=>z.forEach(l,(u,d)=>i(u,d,c));if(z.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(z.isString(t)&&(t=t.trim())&&!l4(t))a(a4(t),n);else if(z.isObject(t)&&z.isIterable(t)){let l={},c,u;for(const d of t){if(!z.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?z.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=z.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return o4(s);if(z.isFunction(n))return n.call(this,s,r);if(z.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=z.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Cp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=z.findKey(r,a);l&&(!n||Cp(r,r[l],l,n))&&(delete r[l],s=!0)}}return z.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Cp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return z.forEach(this,(s,i)=>{const a=z.findKey(r,i);if(a){n[a]=qc(s),delete n[i];return}const l=t?c4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return z.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&z.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(s=>r.set(s)),r}static accessor(t){const r=(this[py]=this[py]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(u4(s,a),r[l]=!0)}return z.isArray(t)?t.forEach(i):i(t),this}};Qn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);z.reduceDescriptors(Qn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});z.freezeMethods(Qn);function jp(e,t){const n=this||Rl,r=t||n,s=Qn.from(r.headers);let i=r.data;return z.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Oe.call(this,e??"canceled",Oe.ERR_CANCELED,t,n),this.name="CanceledError"}z.inherits(Ha,Oe,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Oe("Request failed with status code "+n.status,[Oe.ERR_BAD_REQUEST,Oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function d4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function p4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Du=(e,t,n=3)=>{let r=0;const s=p4(50,250);return f4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},fy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>z.asap(()=>e(...t)),m4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,h4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];z.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),z.isString(r)&&l.push(`path=${r}`),z.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),z.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function g4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function x4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!g4(t);return e&&(r||n==!1)?x4(e,t):t}const hy=e=>e instanceof Qn?{...e}:e;function Ui(e,t){t=t||{};const n={};function r(u,d,p,f){return z.isPlainObject(u)&&z.isPlainObject(d)?z.merge.call({caseless:f},u,d):z.isPlainObject(d)?z.merge({},d):z.isArray(d)?d.slice():d}function s(u,d,p,f){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!z.isUndefined(d))return r(void 0,d)}function a(u,d){if(z.isUndefined(d)){if(!z.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(hy(u),hy(d),p,!0)};return z.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);z.isUndefined(f)&&p!==l||(n[d]=f)}),n}const IS=e=>{const t=Ui({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Qn.from(a),t.url=AS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),z.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(z.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&z.isFunction(r)&&(r=r(t)),r||r!==!1&&m4(t.url))){const c=s&&i&&h4.read(i);c&&a.set(s,c)}return t},v4=typeof XMLHttpRequest<"u",y4=v4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const a=Qn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Qn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),A={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},A),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Oe("Request aborted",Oe.ECONNABORTED,e,b)),b=null)},b.onerror=function(k){const A=k&&k.message?k.message:"Network Error",S=new Oe(A,Oe.ERR_NETWORK,e,b);S.event=k||null,r(S),b=null},b.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||TS;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new Oe(k,A.clarifyTimeoutError?Oe.ETIMEDOUT:Oe.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&z.forEach(a.toJSON(),function(k,A){b.setRequestHeader(A,k)}),z.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Du(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Du(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=d4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Oe("Unsupported protocol "+y+":",Oe.ERR_BAD_REQUEST,e));return}b.send(i||null)})},_4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Oe?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Oe(`timeout ${t} of ms exceeded`,Oe.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>z.asap(l),c}},b4=function*(e,t){let n=e.byteLength;if(n{const s=w4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=z,S4=(({Request:e,Response:t})=>({Request:e,Response:t}))(z.global),{ReadableStream:vy,TextEncoder:yy}=z.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},E4=e=>{e=z.merge.call({skipUndefined:!0},S4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),a=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(Cn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&_y(()=>z.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Oe(`Response type '${g}' is not supported`,Oe.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(z.isBlob(g))return g.size;if(z.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(z.isArrayBufferView(g)||z.isArrayBuffer(g))return g.byteLength;if(z.isURLSearchParams(g)&&(g=g+""),z.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=z.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:k,onDownloadProgress:A,onUploadProgress:S,responseType:T,headers:D,withCredentials:$="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=_4([y,_&&_.toAbortSignal()],k),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let he;try{if(S&&u&&b!=="get"&&b!=="head"&&(he=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(z.isFormData(x)&&(pe=se.headers.get("content-type"))&&D.setContentType(pe),se.body){const[L,ke]=fy(he,Du(my(S)));x=gy(se.body,xy,L,ke)}}z.isString($)||($=$?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?$:void 0};re=i&&new n(v,oe);let F=await(i?H(re,j):H(v,oe));const Q=d&&(T==="stream"||T==="response");if(d&&(A||Q&&le)){const se={};["status","statusText","headers"].forEach(De=>{se[De]=F[De]});const pe=z.toFiniteNumber(F.headers.get("content-length")),[L,ke]=A&&fy(pe,Du(my(A),!0))||[];F=new r(gy(F.body,xy,L,()=>{ke&&ke(),le&&le()}),se)}T=T||"text";let N=await p[z.findKey(p,T)||"text"](F,g);return!Q&&le&&le(),await new Promise((se,pe)=>{MS(se,pe,{data:N,headers:Qn.from(F.headers),status:F.status,statusText:F.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Oe("Network Error",Oe.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Oe.from(xe,xe&&xe.code,g,re)}}},C4=new Map,BS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=C4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:E4(t)),d=u;return u};BS();const Tg={http:$M,xhr:y4,fetch:{get:BS}};z.forEach(Tg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,j4=e=>z.isFunction(e)||e===null||e===!1;function N4(e,t){e=z.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(by).join(` +`):" "+by(a[0]):"as no adapter specified";throw new Oe("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const FS={getAdapter:N4,adapters:Tg};function Np(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function wy(e){return Np(e),e.headers=Qn.from(e.headers),e.data=jp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),FS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Np(e),r.data=jp.call(e,e.transformResponse,r),r.headers=Qn.from(r.headers),r},function(r){return DS(r)||(Np(e),r&&r.response&&(r.response.data=jp.call(e,e.transformResponse,r.response),r.response.headers=Qn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+US+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Oe(s(a," has been removed"+(n?" in "+n:"")),Oe.ERR_DEPRECATED);return n&&!ky[a]&&(ky[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function P4(e,t,n){if(typeof e!="object")throw new Oe("options must be an object",Oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Oe("option "+i+" must be "+c,Oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Oe("Unknown option "+i,Oe.ERR_BAD_OPTION)}}const Wc={assertOptions:P4,validators:kd},Hr=Wc.validators;let Di=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ui(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(z.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&z.merge(i.common,i[n.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Qn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 VS(function(s){t=s}),cancel:t}}};function A4(e){return function(n){return e.apply(null,n)}}function T4(e){return z.isObject(e)&&e.isAxiosError===!0}const Em={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(Em).forEach(([e,t])=>{Em[t]=e});function zS(e){const t=new Di(e),n=yS(Di.prototype.request,t);return z.extend(n,Di.prototype,t,{allOwnKeys:!0}),z.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Ui(e,s))},n}const Qt=zS(Rl);Qt.Axios=Di;Qt.CanceledError=Ha;Qt.CancelToken=R4;Qt.isCancel=DS;Qt.VERSION=US;Qt.toFormData=wd;Qt.AxiosError=Oe;Qt.Cancel=Qt.CanceledError;Qt.all=function(t){return Promise.all(t)};Qt.spread=A4;Qt.isAxiosError=T4;Qt.mergeConfig=Ui;Qt.AxiosHeaders=Qn;Qt.formToJSON=e=>LS(z.isHTMLForm(e)?new FormData(e):e);Qt.getAdapter=FS.getAdapter;Qt.HttpStatusCode=Em;Qt.default=Qt;const{Axios:B8,AxiosError:F8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=Qt,ye=Qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Cm="lakemeter:session-expired";function Vr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const L4=()=>{jm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Cm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const D4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},M4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},O4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},I4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},B4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},F4=async e=>{await ye.delete(`/estimates/${e}`)},U4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},V4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},z4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},$4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},H4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},q4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},W4=async e=>{await ye.delete(`/line-items/${e}`)},G4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},K4=async e=>{await ye.post("/estimates/reorder",e)},Q4=async()=>{const{data:e}=await ye.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},Y4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},X4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},J4=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Z4=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},eO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},Ey=async()=>{const{data:e}=await ye.get("/instances/families"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},tO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},nO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Cy=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Vr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},rO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Vr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Vr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Vr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},sO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},iO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},aO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},oO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},lO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},cO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},uO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},dO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},pO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},fO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ay=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?mO(n):pO(n);case"ALL_PURPOSE":return t?hO(n):fO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return rE(n);case"DATABRICKS_APPS":return eE(n);case"CLEAN_ROOM":return gO(n);case"AI_PARSE":return tE(n);case"SHUTTERSTOCK_IMAGEAI":return nE(n);case"LAKEFLOW_CONNECT":return xO(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function cs(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([cs("instance-dbu-rates.json"),cs("dbu-multipliers.json"),cs("dbu-rates.json"),cs("dbsql-rates.json"),cs("dbsql-warehouse-config.json"),cs("vector-search-rates.json"),cs("model-serving-rates.json"),cs("fmapi-databricks-rates.json"),cs("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),sE()}}function sE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function iE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Lg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ty=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"];function aE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ty;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Ty;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),(l.has("MODEL_SERVING")||a.SERVERLESS_REAL_TIME_INFERENCE)&&(l.add("AI_PARSE"),l.add("SHUTTERSTOCK_IMAGEAI")),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},jO="v7",ds=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(ds);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(ds),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(ds),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(ds),null;return t}catch{return localStorage.removeItem(ds),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(ds,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(ds)}catch{}}const Pp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Rp=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Ap=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Tp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Lp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Dp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Mp=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],ws=rM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"}],cloudProviders:Pp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Rp,dbsqlWarehouseTypes:[],dltEditions:Ap,fmapiProviders:Mp,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Tp,vmPaymentOptions:Lp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Dp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:sE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await D4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Sy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await M4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await O4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await F4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await $4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await H4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await q4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await W4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]},p=u.workloadTypes||[],f=new Set(p.map(g=>g.workload_type)),h=[...p,...r.workloadTypes.filter(g=>!f.has(g.workload_type))];e({workloadTypes:h.length>0?h:r.workloadTypes,cloudProviders:u.cloudProviders||Pp,dbsqlSizes:u.dbsqlSizes||Rp,dltEditions:u.dltEditions||Ap,fmapiProviders:u.fmapiProviders||Mp,vmPricingTiers:u.vmPricingTiers||Tp,vmPaymentOptions:u.vmPaymentOptions||Lp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Dp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,k,A,S,T,D,$,j,H,X,re,le]=await Promise.all([Q4().catch(()=>r.workloadTypes),X4().catch(()=>Pp),J4().catch(()=>Rp),Z4().catch(()=>Ap),eO().catch(()=>Mp),cO().catch(()=>Tp),uO().catch(()=>Lp),iO().catch(()=>null),oO().catch(()=>null),Py().catch(()=>Dp),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),sO(s).catch(()=>[]),aO(s).catch(()=>[]),Ey().catch(()=>[]),Cy().catch(()=>[]),Nm().catch(()=>[])]),he={aws:A,azure:S,gcp:T},xe=A,oe={};j.forEach(se=>{const pe=`${se.model}:${se.rate_type}`;oe[pe]=se});const F={};H.forEach(se=>{const pe=`${se.provider}:${se.model}:${se.rate_type}`;F[pe]=se});const Q=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Q.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,vectorSearchModes:$,fmapiDatabricksRates:oe,fmapiProprietaryRates:F,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:k,regions:xe,regionsMap:he,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await Y4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Ey();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Cy();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await lO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=nO({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Lg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await HS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ay(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ay(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await rE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await eE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"AI_PARSE":c=await tE({...l,mode:"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1});break;case"SHUTTERSTOCK_IMAGEAI":c=await nE({...l,images_per_month:n.shutterstock_images||100});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await V4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function Ly(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function oE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Rm(e){return e.toLowerCase()}class Yn{constructor(t,n){this.attribute=n,this.property=t}}Yn.prototype.attribute="";Yn.prototype.booleanish=!1;Yn.prototype.boolean=!1;Yn.prototype.commaOrSpaceSeparated=!1;Yn.prototype.commaSeparated=!1;Yn.prototype.defined=!1;Yn.prototype.mustUseProperty=!1;Yn.prototype.number=!1;Yn.prototype.overloadedBoolean=!1;Yn.prototype.property="";Yn.prototype.spaceSeparated=!1;Yn.prototype.space=void 0;let BO=0;const Ue=Wi(),Xt=Wi(),Am=Wi(),ne=Wi(),_t=Wi(),_a=Wi(),nr=Wi();function Wi(){return 2**++BO}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ue,booleanish:Xt,commaOrSpaceSeparated:nr,commaSeparated:_a,number:ne,overloadedBoolean:Am,spaceSeparated:_t},Symbol.toStringTag,{value:"Module"})),Op=Object.keys(Tm);class Dg extends Yn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Dg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=oE([lE,FO,dE,pE,fE],"html"),Mg=oE([lE,UO,dE,pE,fE],"svg");function KO(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,By="/",Fy="*",Ei="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(By!=e.charAt(0)||Fy!=e.charAt(1))){for(var v=2;Ei!=e.charAt(v)&&(Fy!=e.charAt(v)||By!=e.charAt(v+1));)++v;if(v+=2,Ei===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:Uy(v[0].replace(Iy,Ei)),value:b?Uy(b[0].replace(Iy,Ei)):Ei});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(tI,Ei):Ei}var aI=iI,oI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,Vy):e=e.replace(fI,Vy),e.replace(dI,gI))};Sd.camelCase=xI;var vI=hs&&hs.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Og),_I=Sd;function Lm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Lm.default=Lm;var bI=Lm;const wI=qu(bI),mE=hE("end"),Ig=hE("start");function hE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Ig(e),n=mE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),gE="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=xE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function xE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=yE(e,t.tagName,!1),a=II(e,t);let l=Ug(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:yE(e,t.name,!0),a=BI(e,t),l=Ug(e,t);return vE(e,a,i,t),Fg(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Fg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function vE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Fg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=FI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function BI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(lr(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function bE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ir(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=pi(/[A-Za-z]/),Nn=pi(/[\dA-Za-z]/),KI=pi(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=pi(/\d/),QI=pi(/[\dA-Fa-f]/),YI=pi(/[!-/:-@[-`{-~]/);function Ne(e){return e!==null&&e<-2}function gt(e){return e!==null&&(e<0||e===32)}function Ge(e){return e===-2||e===-1||e===32}const Ed=pi(new RegExp("\\p{P}|\\p{S}","u")),Vi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Je(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return Ge(c)?(e.enter(n),l(c)):t(c)}function l(c){return Ge(c)&&i++a))return;const T=t.events.length;let D=T,$,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if($){j=t.events[D][1].end;break}$=!0}for(x(r),S=T;S_;){const A=n[k];t.containerState=A[1],A[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tB(e,t,n){return Je(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||gt(e)||Vi(e))return 1;if(Ed(e))return 2}function Cd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Ky(p,-c),Ky(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=_r(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=_r(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=_r(u,Cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=_r(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=_r(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,lr(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&Ge(S)?Je(e,y,"linePrefix",i+1)(S):y(S)}function y(S){return S===null||Ne(S)?e.check(Qy,v,k)(S):(e.enter("codeFlowValue"),_(S))}function _(S){return S===null||Ne(S)?(e.exit("codeFlowValue"),y(S)):(e.consume(S),_)}function k(S){return e.exit("codeFenced"),t(S)}function A(S,T,D){let $=0;return j;function j(he){return S.enter("lineEnding"),S.consume(he),S.exit("lineEnding"),H}function H(he){return S.enter("codeFencedFence"),Ge(he)?Je(S,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(he):X(he)}function X(he){return he===l?(S.enter("codeFencedFenceSequence"),re(he)):D(he)}function re(he){return he===l?($++,S.consume(he),re):$>=a?(S.exit("codeFencedFenceSequence"),Ge(he)?Je(S,le,"whitespace")(he):le(he)):D(he)}function le(he){return he===null||Ne(he)?(S.exit("codeFencedFence"),T(he)):D(he)}}}function fB(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hB},mB={partial:!0,tokenize:gB};function hB(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Je(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):Ne(u)?e.attempt(mB,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Ne(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gB(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Je(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):Ne(a)?s(a):n(a)}}const xB={name:"codeText",previous:yB,resolve:vB,tokenize:_B};function vB(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function jE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||Ne(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||gt(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):Ne(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||Ne(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!Ge(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function PE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):Ne(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Je(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||Ne(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return Ne(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ge(s)?Je(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NB={name:"definition",tokenize:RB},PB={partial:!0,tokenize:AB};function RB(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return NE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Ir(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return gt(h)?Do(e,u)(h):u(h)}function u(h){return jE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PB,p,p)(h)}function p(h){return Ge(h)?Je(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Ne(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AB(e,t,n){return r;function r(l){return gt(l)?Do(e,s)(l):n(l)}function s(l){return PE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Ge(l)?Je(e,a,"whitespace")(l):a(l)}function a(l){return l===null||Ne(l)?t(l):n(l)}}const TB={name:"hardBreakEscape",tokenize:LB};function LB(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ne(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DB={name:"headingAtx",resolve:MB,tokenize:OB};function MB(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},lr(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OB(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||gt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Ne(d)?(e.exit("atxHeading"),t(d)):Ge(d)?Je(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||gt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IB=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],BB={concrete:!0,name:"htmlFlow",resolveTo:VB,tokenize:zB},FB={partial:!0,tokenize:HB},UB={partial:!0,tokenize:$B};function VB(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zB(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):On(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const ke="CDATA[";return L===ke.charCodeAt(l++)?(e.consume(L),l===ke.length?r.interrupt?t:X:g):n(L)}function v(L){return On(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||gt(L)){const ke=L===47,De=a.toLowerCase();return!ke&&!i&&Xy.includes(De)?(s=1,r.interrupt?t(L):X(L)):IB.includes(a.toLowerCase())?(s=6,ke?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return Ge(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||On(L)?(e.consume(L),k):Ge(L)?(e.consume(L),_):j(L)}function k(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),k):A(L)}function A(L){return L===61?(e.consume(L),S):Ge(L)?(e.consume(L),A):_(L)}function S(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,T):Ge(L)?(e.consume(L),S):D(L)}function T(L){return L===c?(e.consume(L),c=null,$):L===null||Ne(L)?n(L):(e.consume(L),T)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||gt(L)?A(L):(e.consume(L),D)}function $(L){return L===47||L===62||Ge(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||Ne(L)?X(L):Ge(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Q):Ne(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(FB,pe,re)(L)):L===null||Ne(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UB,le,pe)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),he}function he(L){return L===null||Ne(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",F):X(L)}function F(L){if(L===62){const ke=a.toLowerCase();return Xy.includes(ke)?(e.consume(L),se):X(L)}return On(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),F):X(L)}function Q(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||Ne(L)?(e.exit("htmlFlowData"),pe(L)):(e.consume(L),se)}function pe(L){return e.exit("htmlFlow"),t(L)}}function $B(e,t,n){const r=this;return s;function s(a){return Ne(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HB(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qB={name:"htmlText",tokenize:WB};function WB(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),A):N===63?(e.consume(N),_):On(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):On(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):Ne(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):Ne(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):Ne(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),k):Ne(N)?(a=_,oe(N)):(e.consume(N),_)}function k(N){return N===62?xe(N):_(N)}function A(N){return On(N)?(e.consume(N),S):n(N)}function S(N){return N===45||Nn(N)?(e.consume(N),S):T(N)}function T(N){return Ne(N)?(a=T,oe(N)):Ge(N)?(e.consume(N),T):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||gt(N)?$(N):n(N)}function $(N){return N===47?(e.consume(N),xe):N===58||N===95||On(N)?(e.consume(N),j):Ne(N)?(a=$,oe(N)):Ge(N)?(e.consume(N),$):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):Ne(N)?(a=H,oe(N)):Ge(N)?(e.consume(N),H):$(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):Ne(N)?(a=X,oe(N)):Ge(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,he):N===null?n(N):Ne(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||gt(N)?$(N):(e.consume(N),le)}function he(N){return N===47||N===62||gt(N)?$(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),F}function F(N){return Ge(N)?Je(e,Q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Q(N)}function Q(N){return e.enter("htmlTextData"),a(N)}}const $g={name:"labelEnd",resolveAll:YB,resolveTo:XB,tokenize:JB},GB={tokenize:ZB},KB={tokenize:eF},QB={tokenize:tF};function YB(e){let t=-1;const n=[];for(;++t=3&&(u===null||Ne(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),Ge(u)?Je(e,l,"whitespace")(u):l(u))}}const zn={continuation:{tokenize:dF},exit:fF,name:"list",tokenize:uF},lF={partial:!0,tokenize:mF},cF={partial:!0,tokenize:pF};function uF(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lF,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return Ge(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dF(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Je(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Ge(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cF,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Je(e,e.attempt(zn,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pF(e,t,n){const r=this;return Je(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fF(e){e.exit(this.containerState.type)}function mF(e,t,n){const r=this;return Je(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ge(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:hF,tokenize:gF};function hF(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gF(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Ge(u)?Je(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Ne(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xF={tokenize:vF};function vF(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Je(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kB,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yF={resolveAll:AE()},_F=RE("string"),bF=RE("text");function RE(e){return{resolveAll:AE(e==="text"?wF:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MF(e,t){let n=-1;const r=[];let s;for(;++n0){const Ve=G.tokenStack[G.tokenStack.length-1];(Ve[1]||e_).call(G,void 0,Ve[0])}for(B.position={start:Os(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Os(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},je=-1;++je0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QF(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YF(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XF(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JF(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZF(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function DE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return DE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):ME(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=mE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WF,break:GF,code:KF,delete:QF,emphasis:YF,footnoteReference:XF,heading:JF,html:ZF,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const OE=-1,jd=0,Mo=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,IE=7,BE=8,s_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case jd:case OE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case Hg:return n(new Date(a),s);case qg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case IE:{const{name:l,message:c}=a;return n(new s_[l](c),s)}case BE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new s_[i](a),s)};return r},i_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Ou,Ki];case"Date":return[Hg,Ki];case"RegExp":return[qg,Ki];case"Map":return[Wg,Ki];case"Set":return[Gg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[IE,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case jd:{let d=a;switch(c){case"bigint":l=BE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([OE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Ou:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!yc(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case Hg:return s([l,a.toISOString()],a);case qg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Wg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(yc(uo(f))||yc(uo(h))))&&d.push([i(f),i(h)]);return p}case Gg:{const d=[],p=s([l,d],a);for(const f of a)(e||!yc(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},a_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(a_(e,t)):structuredClone(e):(e,t)=>i_(a_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return N6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=FE,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function o_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function F6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,VE=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,p_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):VE.call(t)==="[object Array]"},f_=function(t){if(!t||VE.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Wr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Fm(v)&&Fm(h)&&(h=Up(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Qg().freeze();function Hp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Fm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return rU(e)?e:new zE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return nU().use(qF).use(n).use(F6,r).use(t)}function dU(e){const t=e.children||"",n=new zE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Kg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Ip)if(Object.hasOwn(Ip,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ip[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Nd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:S}:void 0),S===!1?f.lastIndex=k+1:(g!==k&&y.push({type:"text",value:u.value.slice(g,k)}),Array.isArray(S)?y.push(...S):S&&y.push(S),g=k+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function $E(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Vi(n)||Ed(n))&&(!t||n!==47)}HE.peek=FU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ir(this.sliceSerialize(e)).toLowerCase(),n.label=t}function BU(e){this.exit(e)}function FU(){return"["}function HE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:BU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?qE:zU))),u(),c}}function zU(e,t,n){return t===0?e:qE(e,t,n)}function qE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];WE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:WE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function WE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GE.peek=l7;function GE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}KE.peek=d7;function KE(e){return e.value||""}function d7(){return"<"}QE.peek=p7;function QE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}YE.peek=f7;function YE(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}XE.peek=m7;function XE(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}ZE.peek=h7;function ZE(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(JE(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return JE(e,n)?"<":"["}eC.peek=g7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Xg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),tC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nC.peek=C7;function nC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(tC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rC={blockquote:JU,break:S_,code:s7,definition:a7,emphasis:GE,hardBreak:S_,heading:u7,html:KE,image:QE,imageReference:YE,inlineCode:XE,link:ZE,linkReference:eC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:nC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:E_,tableHeader:E_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Yp,tableHeader:Yp,tableRow:Yp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Yp(e){this.exit(e)}function E_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Ir(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||gt(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Ir(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return gt(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||gt(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Ir(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return gt(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Je(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Je(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?S:c;return re===S&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):Ne(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):Ge(j)?Je(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||gt(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,Ge(j)?Je(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):A(j)}function v(j){return Ge(j)?Je(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||Ne(j)?k(j):A(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):A(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return Ge(j)?Je(e,k,"whitespace")(j):k(j)}function k(j){return j===124?g(j):j===null||Ne(j)?!a||s!==i?A(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):A(j)}function A(j){return n(j)}function S(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||Ne(j)?(e.exit("tableRow"),t(j)):Ge(j)?Je(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||gt(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?$:D)}function $(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return gt(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Ne(c)?t(c):Ge(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Je(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return bE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[k,A]=m.useState([]),[S,T]=m.useState([]),[D,$]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,he]=m.useState(!1),[xe,oe]=m.useState(380),[F,Q]=m.useState(!1),[N,se]=m.useState(!0),[pe,L]=m.useState(null),[ke,De]=m.useState(""),[w,Y]=m.useState(null),ue=l??xe,_e=c??oe,ve=m.useRef(null),ot=m.useRef(null),Ze=m.useRef(null),I=m.useRef(null),st=m.useRef(null),xt=m.useRef(!1),lt=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(Z=>{const Te=Z.item_id||Z.line_item_id,$e=a[Te];$e!=null&&$e.total&&(U+=$e.total)}),U},[a,i]),mt=m.useCallback(U=>{U.preventDefault(),Q(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!F)return;const $e=window.innerWidth-Te.clientX,K=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,$e),K))},Z=()=>{Q(!1)};return F&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",Z),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",Z),document.body.style.cursor="",document.body.style.userSelect=""}},[F]);const W=m.useCallback(U=>{h(U.target.value);const Z=U.target;Z.style.height="auto",Z.style.height=Math.min(Z.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;xt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(xt.current=!1)},[g]);const E=m.useCallback(()=>{const U=ot.current;if(!U)return;const Z=U.scrollHeight-U.scrollTop-U.clientHeight<100;xt.current=!Z},[]);m.useEffect(()=>{var U;e&&((U=Ze.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](https://databrickslabs.github.io/lakemeter/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](https://databrickslabs.github.io/lakemeter/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const Z=[...U],Te=Z.length-1;return Te>=0&&Z[Te].isStreaming&&(Z[Te]={...Z[Te],isStreaming:!1,isThinking:!1,content:Z[Te].content+` + +*[Generation stopped]*`}),Z}))},[]),q=m.useCallback((U,Z)=>{L(U),De(Z)},[]),Se=m.useCallback(()=>{L(null),De("")},[]),Pe=m.useCallback(async(U,Z)=>{try{await navigator.clipboard.writeText(Z),Y(U),setTimeout(()=>Y(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,B]=m.useState(null),[G,ae]=m.useState(!1),je=m.useCallback(async U=>{if(!ke.trim()||d.findIndex(K=>K.id===U)===-1)return;const Te=ke.trim();if(T([]),L(null),De(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const $e={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([$e]),B(Te),ae(!0)},[ke,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,lt,ie]);const Ve=m.useCallback(async(U,Z)=>{var ut;const Te=U||f.trim();if(!Te||g)return;const $e={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:Z||!1};p(nt=>[...nt,$e]),h(""),v(!0),re(null);const K=`assistant-${Date.now()}`;p(nt=>[...nt,{id:K,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const nt=(i||k||[]).map(Ie=>{const Me=Ie.line_item_id||Ie.item_id||Ie.draft_id,Re=a==null?void 0:a[Me];return{...Ie,total_cost:(Re==null?void 0:Re.total)||Ie.total_cost||0,dbu_cost:(Re==null?void 0:Re.dbu)||Ie.dbu_cost||0,vm_cost:(Re==null?void 0:Re.vm)||Ie.vm_cost||0}}),Bt=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:$e.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:nt,mode:u,stream:!0}),signal:I.current.signal});if(!Bt.ok)throw new Error(`HTTP ${Bt.status}: ${Bt.statusText}`);const ft=(ut=Bt.body)==null?void 0:ut.getReader();if(!ft)throw new Error("No response body");const vt=new TextDecoder;let Ct="",ht="",ze=[];for(;;){const{done:Ie,value:Me}=await ft.read();if(Ie)break;Ct+=vt.decode(Me,{stream:!0});const Re=Ct.split(` +`);Ct=Re.pop()||"";for(const Yt of Re)if(Yt.startsWith("data: ")){const jt=Yt.slice(6);if(jt==="[DONE]")continue;try{const Ee=JSON.parse(jt);if(Ee.type==="start")x(Ee.conversation_id);else if(Ee.type==="content")ht+=Ee.content,p(Nt=>Nt.map(Le=>Le.id===K?{...Le,content:ht,isThinking:!1}:Le));else if(Ee.type==="tool_result")ze.push({tool:Ee.tool,result:Ee.result});else if(Ee.type==="proposal")Ee.workload&&Ee.workload.proposal_id&&T(Nt=>Nt.some(Jn=>Jn.proposal_id===Ee.workload.proposal_id)?Nt:[...Nt,Ee.workload]);else if(Ee.type==="done")ht.includes("Error getting response")||ht.includes("AI service error")||(Ee.estimate&&_(Ee.estimate),Ee.workloads&&A(Ee.workloads),Ee.proposed_workloads&&Ee.proposed_workloads.length>0&&T(Ee.proposed_workloads));else if(Ee.type==="error")throw new Error(Ee.content)}catch{}}}p(Ie=>Ie.map(Me=>Me.id===K?{...Me,content:ht,isStreaming:!1,toolResults:ze}:Me))}catch(nt){if(nt.name==="AbortError")return;console.error("Chat error:",nt),re(nt.message||"Failed to get response"),p(Bt=>Bt.filter(ft=>ft.id!==K))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,k,a]);m.useEffect(()=>{O&&!g&&(Ve(O,G),B(null),ae(!1))},[O,G,g,Ve]);const pt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Ve())},it=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),A([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ye=async U=>{if(b){$(Z=>new Set(Z).add(U));try{const Z=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!Z.ok)throw new Error("Failed to confirm workload");const Te=await Z.json();if(T($e=>$e.filter(K=>K.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p($e=>{var K;return[...$e,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(K=Te.workload_config)==null?void 0:K.workload_name}" added to estimate.`,timestamp:new Date}]})}catch($e){p(K=>[...K,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${$e.message||"Database error"}. Please try again.`,timestamp:new Date}]),re($e.message||"Failed to add workload to database")}}catch(Z){re(Z.message||"Failed to confirm workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},ct=async U=>{if(b){$(Z=>new Set(Z).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=S.find($e=>$e.proposal_id===U);T($e=>$e.filter(K=>K.proposal_id!==U)),p($e=>[...$e,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(Z){re(Z.message||"Failed to reject workload")}finally{$(Z=>{const Te=new Set(Z);return Te.delete(U),Te})}}},Xe=async()=>{for(const U of S)await Ye(U.proposal_id)},It=async()=>{for(const U of S)await ct(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>he(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx($c,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(fs,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:st,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ue}px)`},children:[o.jsx("div",{onMouseDown:mt,className:de("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",F&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ms,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:it,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(KD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(OD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[lt>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",lt.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),S.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ty,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[S.length," Proposed Workload",S.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(sr,{className:"w-4 h-4 text-amber-600"}):o.jsx(fs,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Xe,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",S.length,")"]}),o.jsx("button",{onClick:It,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:S.map(U=>{const Z=D.has(U.proposal_id);return o.jsx("div",{className:de("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",Z&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:Z?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ye(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Au,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>ct(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:ot,onScroll:E,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:de("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:de("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:ke,onChange:Z=>De(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&!Z.shiftKey&&(Z.preventDefault(),je(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>je(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:de("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:Z})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:Z}),h2:({children:Z})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:Z}),h3:({children:Z})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:Z}),p:({children:Z})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:Z}),ul:({children:Z})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:Z}),ol:({children:Z})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:Z}),li:({children:Z})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:Z}),strong:({children:Z})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:Z}),em:({children:Z})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:Z}),code:({className:Z,children:Te})=>(Z==null?void 0:Z.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:Z})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:Z}),blockquote:({children:Z})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:Z}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:Z,children:Te})=>o.jsx("a",{href:Z,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((Z,Te)=>{var $e;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[($e=Z.result)!=null&&$e.success?o.jsx(Au,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:Z.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:de("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Pe(U.id,U.content),className:de("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(wD,{className:"w-3.5 h-3.5"}):o.jsx(SD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>q(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(n3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:it,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(fs,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,Z)=>o.jsx("button",{onClick:()=>Ve(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},Z))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Ze,value:f,onChange:W,onKeyDown:pt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Ve(),disabled:!g&&!f.trim(),className:de("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(dS,{className:"w-4 h-4"}):o.jsx(JD,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:o3}],N_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Xp=[{value:"light",label:"Light",icon:y3},{value:"dark",label:"Dark",icon:YD},{value:"system",label:"System",icon:PD}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=R3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),k=m.useRef(null),{currentUser:A,isAuthenticated:S,authError:T,fetchCurrentUser:D,currentEstimate:$,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:he,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:F}=ws(),Q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Q||N,pe=m.useCallback(()=>{L4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const Y=ue=>{var _e;console.log("Session expired event received:",ue.detail),g(((_e=ue.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(Cm,Y),()=>{window.removeEventListener(Cm,Y)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),ke=m.useCallback(()=>{a(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||he(),F||xe()},[he,xe,oe,F]),m.useEffect(()=>{const Y=ue=>{_.current&&!_.current.contains(ue.target)&&s(!1),k.current&&!k.current.contains(ue.target)&&a(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const De=Xp.find(Y=>Y.value===t)||Xp[2],w=De.icon;return T?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(N_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(N_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(Y=>{const ue=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return o.jsxs(bu,{to:Y.href,className:de("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ue&&"border"),style:ue?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(Y.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),S&&A&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(S3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:A.full_name||A.email,children:A.full_name||A.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:De.label}),o.jsx(sr,{className:de("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Xp.map(Y=>{const ue=Y.icon,_e=t===Y.value;return o.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ue,{className:"w-4 h-4"}),o.jsx("span",{children:Y.label})]},Y.value)})})]}),o.jsxs("div",{className:"relative",ref:k,children:[o.jsxs("button",{onClick:ke,className:de("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(u3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(nm,{children:i&&o.jsxs($t.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"https://databrickslabs.github.io/lakemeter/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(BD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(_m,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx($t.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(EN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Q?$:void 0,currentWorkloads:Q?j:void 0,itemCosts:Q?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Q?async Y=>{if($!=null&&$.estimate_id)try{await X({estimate_id:$.estimate_id,...Y}),re($.estimate_id),We.success(`Workload "${Y.workload_name}" added!`)}catch(ue){throw We.error(ue.message||"Failed to add workload"),ue}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(nm,{children:p&&o.jsx($t.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs($t.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(ms,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Xn(e){var t,n;return e?Ga(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Xn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Xn(e).HTMLElement}function pC(e){return e instanceof Xn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:Zg(e)?ex(e)?e:Dl(e)||pC(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Fu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Jp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Jp[e]==null?0:Jp[e]+1;return Jp[e]=n,e+"-"+n},[e,t])}function fC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=fC(1),Uu=fC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Xn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Xn(e.target);return t&&e instanceof t}function $m(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(P_)?e:e.querySelector(P_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const mC=m.createContext(null);function OV(e){const t=m.useContext(mC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const BV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},FV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=FV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=BV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var sn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(sn||(sn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function hC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const gC=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(R_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function xC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Xn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function A_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Xn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Xn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||pC(s)||n.includes(s))return n;const i=Xn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function vC(e){const[t]=rx(e,1);return t??null}function Zp(e){return!Rd||!e?null:Ga(e)?e:Zg(e)?ex(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function yC(e){return Ga(e)?e.scrollX:e.scrollLeft}function _C(e){return Ga(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:yC(e),y:_C(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function bC(e){return!Rd||!e?!1:e===document.scrollingElement}function wC(e){const t={x:0,y:0},n=bC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=wC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function kC(e){return e.reduce((t,n)=>ba(t,Hm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+yC(n),0)}function az(e){return e.reduce((t,n)=>t+_C(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);vC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=kC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Xn(e);return e instanceof t?e:Ka(e)}function ef(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var xr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(xr||(xr={}));function T_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var rt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(rt||(rt={}));const SC={start:[rt.Space,rt.Enter],cancel:[rt.Esc],end:[rt.Space,rt.Enter,rt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case rt.Right:return{...n,x:n.x+25};case rt.Left:return{...n,x:n.x-25};case rt.Down:return{...n,y:n.y+25};case rt.Up:return{...n,y:n.y-25}}};class Ad{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Xn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(xr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=SC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Uu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:k,maxScroll:A,minScroll:S}=wC(v),T=sz(v),D={x:Math.min(b===rt.Right?T.right-T.width/2:T.right,Math.max(b===rt.Right?T.left:T.left+T.width/2,p.x)),y:Math.min(b===rt.Down?T.bottom-T.height/2:T.bottom,Math.max(b===rt.Down?T.top:T.top+T.height/2,p.y))},$=b===rt.Right&&!y||b===rt.Left&&!_,j=b===rt.Down&&!k||b===rt.Up&&!x;if($&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===rt.Right&&H<=A.x||b===rt.Left&&H>=S.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===rt.Right?v.scrollLeft-A.x:v.scrollLeft-S.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===rt.Down&&H<=A.y||b===rt.Up&&H>=S.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===rt.Down?v.scrollTop-A.y:v.scrollTop-S.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Uu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ad.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=SC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function L_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Xn(a)),this.initialCoordinates=(s=$m(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(xr.Resize,this.handleCancel),this.windowListeners.add(xr.DragStart,T_),this.windowListeners.add(xr.VisibilityChange,this.handleCancel),this.windowListeners.add(xr.ContextMenu,T_),this.documentListeners.add(xr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(L_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(xr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(xr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Fr,u=Uu(s,c);if(!r&&l){if(L_(l)){if(l.tolerance!=null&&ef(u,l.tolerance))return this.handleCancel();if(ef(u,l.distance))return this.handleStart()}if(D_(l)&&ef(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Td extends ix{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Td.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class mz extends ix{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const tf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ix{constructor(t){super(t,tf)}static setup(){return window.addEventListener(tf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),k=m.useCallback(()=>{const S=_.current;if(!S)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;S.scrollBy(T,D)},[]),A=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const S of A){if((r==null?void 0:r(S))===!1)continue;const T=u.indexOf(S),D=d[T];if(!D)continue;const{direction:$,speed:j}=rz(S,D,y,t,f);for(const H of["x","y"])h[H][$[H]]||(j[H]=0,$[H]=0);if(j.x>0||j.y>0){v(),_.current=S,g(k,a),b.current=j,x.current=$;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,k,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,A,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const k=_.node.current,A=k?new sx(c(k),k):null;_.rect.current=A,A&&y.set(_.id,A)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function EC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return EC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ld(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new sx(Qa(e),e)}function O_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Ld({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=EC(e);return xC(e,t)}const I_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=Zp(i.target);a&&n(l=>l?(l.set(a,Hm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=Zp(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=Zp(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):kC(e):Fr,[e,t])}function B_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function CC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const F_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=CC(n?Xn(n):null),[s,i]=m.useState(F_);function a(){i(()=>e.length?e.map(c=>bC(c)?r:new sx(t(c),c)):F_)}const l=Ld({callback:a});return es(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Ld({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Fu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Td,options:{}},{sensor:Ad,options:{}}],Dz={current:{}},Qc={draggable:{measure:A_},droppable:{measure:A_,strategy:fl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Qa}};class Bo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Bo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Oz),jC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Bo}}}function Bz(e,t){switch(t.type){case sn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case sn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case sn.DragEnd:case sn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case sn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Bo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case sn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Bo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case sn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Bo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Fz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),a=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=xC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=vC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const NC=m.createContext({...Fr,scaleX:1,scaleY:1});var Us;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Us||(Us={}));const PC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Bz,void 0,Iz),[b,x]=v,[y,_]=IV(),[k,A]=m.useState(Us.Uninitialized),S=k===Us.Initialized,{draggable:{active:T,nodes:D,translate:$},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var K;return T!=null?{id:T,data:(K=H==null?void 0:H.data)!=null?K:Dz,rect:X}:null},[T,H]),le=m.useRef(null),[he,xe]=m.useState(null),[oe,F]=m.useState(null),Q=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),pe=Vz(f),{droppableRects:L,measureDroppableContainers:ke,measuringScheduled:De}=bz(se,{dragging:S,dependencies:[$.x,$.y],config:pe.droppable}),w=yz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ue=$e(),_e=wz(w,pe.draggable.measure);zz({activeNode:T!=null?D.get(T):null,config:ue.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ve=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Ze=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Ze.current.over)==null?void 0:n.id),st=Tz({measure:pe.dragOverlay.measure}),xt=(r=st.nodeRef.current)!=null?r:w,lt=S?(s=st.rect)!=null?s:ve:null,mt=!!(st.nodeRef.current&&st.rect),W=Ez(mt?null:ve),P=CC(xt?Xn(xt):null),E=Cz(S?I??w:null),ie=Rz(E),M=Uz(h,{transform:{x:$.x-W.x,y:$.y-W.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:ot,draggingNodeRect:lt,over:Ze.current.over,overlayNodeRect:st.rect,scrollableAncestors:E,scrollableAncestorRects:ie,windowRect:P}),q=Y?ba(Y,$):null,Se=jz(E),Pe=B_(Se),O=B_(Se,[ve]),B=ba(M,Pe),G=lt?QV(lt,M):null,ae=re&&G?p({active:re,collisionRect:G,droppableRects:L,droppableContainers:se,pointerCoordinates:q}):null,je=HV(ae,"id"),[Ve,pt]=m.useState(null),it=mt?M:ba(M,O),Ye=GV(it,(i=Ve==null?void 0:Ve.rect)!=null?i:null,ve),ct=m.useRef(null),Xe=m.useCallback((K,ut)=>{let{sensor:nt,options:Bt}=ut;if(le.current==null)return;const ft=D.get(le.current);if(!ft)return;const vt=K.nativeEvent,Ct=new nt({active:le.current,activeNode:ft,event:vt,options:Bt,context:Ze,onAbort(ze){if(!D.get(ze))return;const{onDragAbort:Me}=Q.current,Re={id:ze};Me==null||Me(Re),y({type:"onDragAbort",event:Re})},onPending(ze,Ie,Me,Re){if(!D.get(ze))return;const{onDragPending:jt}=Q.current,Ee={id:ze,constraint:Ie,initialCoordinates:Me,offset:Re};jt==null||jt(Ee),y({type:"onDragPending",event:Ee})},onStart(ze){const Ie=le.current;if(Ie==null)return;const Me=D.get(Ie);if(!Me)return;const{onDragStart:Re}=Q.current,Yt={activatorEvent:vt,active:{id:Ie,data:Me.data,rect:X}};la.unstable_batchedUpdates(()=>{Re==null||Re(Yt),A(Us.Initializing),x({type:sn.DragStart,initialCoordinates:ze,active:Ie}),y({type:"onDragStart",event:Yt}),xe(ct.current),F(vt)})},onMove(ze){x({type:sn.DragMove,coordinates:ze})},onEnd:ht(sn.DragEnd),onCancel:ht(sn.DragCancel)});ct.current=Ct;function ht(ze){return async function(){const{active:Me,collisions:Re,over:Yt,scrollAdjustedTranslate:jt}=Ze.current;let Ee=null;if(Me&&jt){const{cancelDrop:Nt}=Q.current;Ee={activatorEvent:vt,active:Me,collisions:Re,delta:jt,over:Yt},ze===sn.DragEnd&&typeof Nt=="function"&&await Promise.resolve(Nt(Ee))&&(ze=sn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:ze}),A(Us.Uninitialized),pt(null),xe(null),F(null),ct.current=null;const Nt=ze===sn.DragEnd?"onDragEnd":"onDragCancel";if(Ee){const Le=Q.current[Nt];Le==null||Le(Ee),y({type:Nt,event:Ee})}})}}},[D]),It=m.useCallback((K,ut)=>(nt,Bt)=>{const ft=nt.nativeEvent,vt=D.get(Bt);if(le.current!==null||!vt||ft.dndKit||ft.defaultPrevented)return;const Ct={active:vt};K(nt,ut.options,Ct)===!0&&(ft.dndKit={capturedBy:ut.sensor},le.current=Bt,Xe(nt,ut))},[D,Xe]),U=_z(d,It);Nz(d),es(()=>{ve&&k===Us.Initializing&&A(Us.Initialized)},[ve,k]),m.useEffect(()=>{const{onDragMove:K}=Q.current,{active:ut,activatorEvent:nt,collisions:Bt,over:ft}=Ze.current;if(!ut||!nt)return;const vt={active:ut,activatorEvent:nt,collisions:Bt,delta:{x:B.x,y:B.y},over:ft};la.unstable_batchedUpdates(()=>{K==null||K(vt),y({type:"onDragMove",event:vt})})},[B.x,B.y]),m.useEffect(()=>{const{active:K,activatorEvent:ut,collisions:nt,droppableContainers:Bt,scrollAdjustedTranslate:ft}=Ze.current;if(!K||le.current==null||!ut||!ft)return;const{onDragOver:vt}=Q.current,Ct=Bt.get(je),ht=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,ze={active:K,activatorEvent:ut,collisions:nt,delta:{x:ft.x,y:ft.y},over:ht};la.unstable_batchedUpdates(()=>{pt(ht),vt==null||vt(ze),y({type:"onDragOver",event:ze})})},[je]),es(()=>{Ze.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:G,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:xt,draggingNodeRect:lt,droppableContainers:j,over:Ve,scrollableAncestors:E,scrollAdjustedTranslate:B},X.current={initial:lt,translated:G}},[re,w,ae,G,D,xt,lt,L,j,Ve,E,B]),gz({...ue,delta:$,draggingRect:G,pointerCoordinates:q,scrollableAncestors:E,scrollableAncestorRects:ie});const Z=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:ot,dragOverlay:st,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Ve,measureDroppableContainers:ke,scrollableAncestors:E,scrollableAncestorRects:ie,measuringConfiguration:pe,measuringScheduled:De,windowRect:P}),[re,w,ve,oe,ae,ot,st,D,j,L,Ve,ke,E,ie,pe,De,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Ve,measureDroppableContainers:ke}),[oe,U,re,ve,x,N,D,Ve,ke]);return pn.createElement(mC.Provider,{value:_},pn.createElement(Dd.Provider,{value:Te},pn.createElement(jC.Provider,{value:Z},pn.createElement(NC.Provider,{value:Ye},u)),pn.createElement(Fz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function $e(){const K=(he==null?void 0:he.autoScrollEnabled)===!1,ut=typeof c=="object"?c.enabled===!1:c===!1,nt=S&&!K&&!ut;return typeof c=="object"?{...c,enabled:nt}:{enabled:nt}}}),$z=m.createContext(null),U_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?NC:$z),[y,_]=Fu(),[k,A]=Fu(),S=Pz(a,t),T=pl(n);es(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:k,data:T}),()=>{const $=p.get(t);$&&$.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:S,node:y,over:f,setNodeRef:_,setActivatorNodeRef:A,transform:x}}function Wz(){return m.useContext(jC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ld({callback:y,disabled:g||!a}),k=m.useCallback((D,$)=>{_&&($&&(_.unobserve($),p.current=!1),D&&_.observe(D))},[_]),[A,S]=Fu(k),T=pl(t);return m.useEffect(()=>{!_||!A.current||(_.disconnect(),p.current=!1,_.observe(A.current))},[A,_]),m.useEffect(()=>(l({type:sn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:f,data:T}}),()=>l({type:sn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:sn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:A,over:c,setNodeRef:S}}function ax(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ax(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Sc={scaleX:1,scaleY:1},AC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Sc}:s=a?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,k=Jz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const A=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:k,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,k.draggable,k.droppable,_,h,b,c,f,s]);return pn.createElement(LC.Provider,{value:A},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ax(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},MC="transform",r8=Oa.Transition.toString({property:MC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function OC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(LC),_=a8(r,h),k=d.indexOf(a),A=m.useMemo(()=>({sortable:{containerId:p,index:k,items:d},...s}),[p,s,k,d]),S=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:T,node:D,isOver:$,setNodeRef:j}=Qz({id:a,data:A,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:he,listeners:xe,isDragging:oe,over:F,setActivatorNodeRef:Q,transform:N}=qz({id:a,data:A,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,he),pe=!!H,L=pe&&!g&&kc(f)&&kc(b),ke=!x&&oe,De=ke&&L?N:null,Y=L?De??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:k}):null,ue=kc(f)&&kc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):k,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ue,containerId:p}),ot=d!==ve.current.items,Ze=t({active:H,containerId:p,isDragging:oe,isSorting:pe,id:a,index:k,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Ze,index:k,node:D,rect:T});return m.useEffect(()=>{pe&&ve.current.newIndex!==ue&&(ve.current.newIndex=ue),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[pe,ue,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const xt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(xt)},[_e]),{active:H,activeIndex:f,attributes:le,data:A,rect:T,index:k,newIndex:ue,items:d,isOver:$,isSorting:pe,isDragging:oe,listeners:xe,node:D,overIndex:b,over:F,setNodeRef:se,setActivatorNodeRef:Q,setDroppableNodeRef:j,setDraggableNodeRef:he,transform:I??Y,transition:st()};function st(){if(I||ot&&ve.current.newIndex===k)return r8;if(!(ke&&!nx(X)||!u)&&(pe||Ze))return Oa.Transition.toString({...u,property:MC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}rt.Down,rt.Right,rt.Up,rt.Left;const IC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var BC={exports:{}};(function(e,t){(function(n,r){r()})(hs,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof hs=="object"&&hs.global===hs?hs:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(BC);var Gm=BC.exports;const Tr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Ec={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:de("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Tr[r].text:"var(--text-muted)",backgroundColor:e===r?Tr[r].bg:"transparent"},children:[Tr[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=ws(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[k,A]=m.useState(new Set),[S,T]=m.useState(!1),[D,$]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,he]=m.useState(null),[xe,oe]=m.useState(!1),[F,Q]=m.useState(!1),N=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),We.success("Refreshed")},[r]),pe=m.useMemo(()=>{const W=t.length,P=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="aws"}).length,E=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var q;return((q=M.cloud)==null?void 0:q.toLowerCase())==="gcp"}).length;return{all:W,aws:P,azure:E,gcp:ie}},[t]),L=m.useMemo(()=>{const W=t.reduce((P,E)=>P+(E.line_item_count||0),0);return{estimates:t.length,workloads:W}},[t]),ke=m.useMemo(()=>{const W=new Set;return t.forEach(P=>{P.customer_name&&W.add(P.customer_name)}),Array.from(W).sort()},[t]),De=m.useMemo(()=>{const W={all:t.length};return t.forEach(P=>{P.customer_name&&(W[P.customer_name]=(W[P.customer_name]||0)+1)}),W},[t]),w=m.useMemo(()=>{let W=[...t];if(c){const P=c.toLowerCase();W=W.filter(E=>{var ie;return E.estimate_name.toLowerCase().includes(P)||((ie=E.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(W=W.filter(P=>{var E;return((E=P.cloud)==null?void 0:E.toLowerCase())===f})),b!=="all"&&(W=W.filter(P=>P.customer_name===b)),g){case"updated":W.sort((P,E)=>new Date(E.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":W.sort((P,E)=>P.estimate_name.localeCompare(E.estimate_name));break;case"workloads":W.sort((P,E)=>(E.line_item_count||0)-(P.line_item_count||0));break;case"display_order":W.sort((P,E)=>(P.display_order??0)-(E.display_order??0));break}return W},[t,c,f,g,b]),Y=m.useCallback(async W=>{const{active:P,over:E}=W;if(!E||P.id===E.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===E.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const q=ax(w,ie,M),{estimates:Se}=ws.getState(),Pe=Se.map(O=>{const B=q.findIndex(G=>G.estimate_id===O.estimate_id);return B>=0?{...O,display_order:B}:O});ws.setState({estimates:Pe});try{await K4(q.map(O=>O.estimate_id))}catch{We.error("Failed to save reorder")}},[w,g]),ue=(W,P,E)=>{W.stopPropagation(),he({id:P,name:E}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),We.success("Estimate deleted")}catch{We.error("Failed to delete")}finally{oe(!1),re(!1),he(null)}}},ve=async(W,P)=>{W.stopPropagation();try{const E=await i(P);We.success("Estimate duplicated"),e(`/calculator/${E.estimate_id}`)}catch{We.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const W=await dO();Gm.saveAs(W,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),We.success("Exported successfully")}catch{We.error("Export failed")}finally{l(!1)}},Ze=()=>{k.size===w.length?A(new Set):A(new Set(w.map(W=>W.estimate_id)))},I=(W,P)=>{P.stopPropagation();const E=new Set(k);E.has(W)?E.delete(W):E.add(W),A(E)},st=()=>{k.size!==0&&Q(!0)},xt=async()=>{$(!0);let W=0,P=0;for(const E of k)try{await s(E),W++}catch{P++}$(!1),A(new Set),Q(!1),P===0?We.success(`Deleted ${W} estimate(s)`):We.error(`Deleted ${W}, failed ${P}`)},lt=async()=>{if(k.size===0)return;H(!0);let W=0;for(const P of k)try{const E=t.find(ie=>ie.estimate_id===P);if(E){const ie=await qS(P);Gm.saveAs(ie,`${E.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),W++}}catch{}H(!1),We.success(`Exported ${W} estimate(s)`)},mt=()=>{T(!1),A(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ny,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Ng,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Qr,{className:de("w-5 h-5",d&&"animate-spin")})}),S?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[k.size," selected"]}),o.jsxs("button",{onClick:lt,disabled:k.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:st,disabled:k.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(nn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:mt,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:ot,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:pe}),ke.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(pD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?ke.length:De[b]||0}),o.jsx(sr,{className:de("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(nm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs($t.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:ke.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),ke.map(W=>o.jsxs("button",{onClick:()=>{x(W),_(!1)},className:de("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===W?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===W?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:W,children:W}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:De[W]||0}),b===W&&o.jsx(Gs,{className:"w-4 h-4"})]})]},W))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:W=>u(W.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(W=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},W))})}):w.length===0?o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Ze,className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:k.size===w.length&&w.length>0&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:de(S?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(PC,{sensors:N,collisionDetection:gC,onDragEnd:Y,modifiers:[IC],children:o.jsx(DC,{items:w.map(W=>W.estimate_id),strategy:AC,children:w.map((W,P)=>{const E=k.has(W.estimate_id);return o.jsx(o8,{id:W.estimate_id,children:o.jsxs($t.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!S&&e(`/calculator/${W.estimate_id}`),className:de("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!S&&"cursor-pointer hover:bg-[var(--bg-hover)]",E&&"bg-blue-500/5"),children:[S&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(W.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:de("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",E?"bg-blue-500 border-blue-500":"border-gray-400"),children:E&&o.jsx(Gs,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:de("flex items-center gap-3",S?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(ym,{className:"w-4 h-4",style:{color:W.cloud&&Tr[W.cloud.toLowerCase()]?Tr[W.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:W.estimate_name,children:W.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:W.customer_name||"",children:W.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:W.customer_name||"",children:W.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:W.cloud&&Tr[W.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Tr[W.cloud.toLowerCase()].bg,color:Tr[W.cloud.toLowerCase()].text},children:Tr[W.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:W.region||W.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[W.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:W.region,children:W.region}),W.tier&&Ec[W.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Ec[W.tier.toLowerCase()].bg,color:Ec[W.tier.toLowerCase()].text},children:Ec[W.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:de("px-2 py-0.5 rounded text-xs font-medium",W.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:W.line_item_count===0?{color:"var(--text-muted)"}:{},children:W.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(W.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!S&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,W.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ue(ie,W.estimate_id,W.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})})]})})]})},W.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),he(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),F&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",k.size," Estimate",k.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(W=>k.has(W.estimate_id)).map(W=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",W.estimate_name]},W.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:xt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),k.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[k.size," estimate",k.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:lt,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx(zc,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:st,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{A(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,k=m.useMemo(()=>{if(!p)return null;const T={};return _.forEach($=>{const j=$.group||"Other";T[j]||(T[j]=[]),T[j].push($)}),Object.keys(T).sort(($,j)=>$==="General Purpose"?-1:j==="General Purpose"?1:$.localeCompare(j)).map($=>({name:$,options:T[$]}))},[_,p]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const A=T=>{n(T),h(!1),v("")},S=T=>{T.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:de("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const T=f;h(!f),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:de("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:de("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:S,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(sr,{className:de("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),k.map(T=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>o.jsx("div",{onClick:()=>A(D.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>o.jsx("div",{onClick:()=>A(T.value),className:de("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const FC=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","AI_PARSE","SHUTTERSTOCK_IMAGEAI"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:FC.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(sr,{className:"w-3 h-3"}):o.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function nf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var W;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:k,fetchLineItems:A,clearSingleWorkloadCost:S,markItemCalculating:T,fetchVMCostForInstance:D}=ws(),$=m.useRef(!0);m.useEffect(()=>($.current=!0,()=>{$.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,he=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,F={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Q=f&&f.models&&f.models.llm?f:F,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[pe,L]=m.useState(!1),[ke,De]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ue={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);De(P)}else Y(ue),De(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),FC.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?aE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&Y(E=>({...E,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Ze=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!$.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),st=a.length===0,xt=!st&&!I&&w.workload_type,lt=async P=>{if(P.preventDefault(),!w.workload_name.trim()){We.error("Enter a workload name");return}L(!0);try{const E={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(E.serverless_enabled=w.serverless_enabled,E.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(E.serverless_enabled=!1,E.serverless_mode=null),I!=null&&I.show_compute_config?(E.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,E.driver_node_type=w.driver_node_type||null,E.worker_node_type=w.worker_node_type||null,E.num_workers=w.num_workers,E.driver_pricing_tier=w.driver_pricing_tier||"on_demand",E.worker_pricing_tier=w.worker_pricing_tier||"spot",E.driver_payment_option=w.driver_payment_option||"NA",E.worker_payment_option=w.worker_payment_option||"NA"):(E.photon_enabled=!1,E.driver_node_type=null,E.worker_node_type=null,E.num_workers=null,E.driver_pricing_tier=null,E.worker_pricing_tier=null,E.driver_payment_option=null,E.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?E.dlt_edition=w.dlt_edition:E.dlt_edition=null,I!=null&&I.show_dbsql_config?(E.dbsql_warehouse_type=w.dbsql_warehouse_type,E.dbsql_warehouse_size=w.dbsql_warehouse_size,E.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(E.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,E.dbsql_driver_payment_option=w.dbsql_driver_payment_option,E.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,E.dbsql_worker_payment_option=w.dbsql_worker_payment_option,E.driver_pricing_tier=w.dbsql_driver_pricing_tier,E.driver_payment_option=w.dbsql_driver_payment_option,E.worker_pricing_tier=w.dbsql_worker_pricing_tier,E.worker_payment_option=w.dbsql_worker_payment_option)):(E.dbsql_warehouse_type=null,E.dbsql_warehouse_size=null,E.dbsql_num_clusters=null,E.dbsql_driver_pricing_tier=null,E.dbsql_driver_payment_option=null,E.dbsql_worker_pricing_tier=null,E.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(E.vector_search_mode=w.vector_search_mode,E.vector_capacity_millions=w.vector_capacity_millions,E.vector_search_storage_gb=w.vector_search_storage_gb||0):(E.vector_search_mode=null,E.vector_capacity_millions=null,E.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(E.model_serving_gpu_type=w.model_serving_gpu_type,E.model_serving_scale_out=w.model_serving_scale_out,E.model_serving_concurrency=w.model_serving_concurrency):(E.model_serving_gpu_type=null,E.model_serving_scale_out=null,E.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?E.databricks_apps_size=w.databricks_apps_size:E.databricks_apps_size=null,w.workload_type==="AI_PARSE"?(E.ai_parse_mode="pages",E.ai_parse_complexity=w.ai_parse_complexity,E.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(E.ai_parse_mode=null,E.ai_parse_complexity=null,E.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?E.shutterstock_images=w.shutterstock_images:E.shutterstock_images=null,I!=null&&I.show_lakebase_config?(E.lakebase_cu=w.lakebase_cu,E.lakebase_storage_gb=w.lakebase_storage_gb||0,E.lakebase_ha_nodes=w.lakebase_ha_nodes,E.lakebase_backup_retention_days=w.lakebase_backup_retention_days,E.lakebase_pitr_gb=w.lakebase_pitr_gb||0,E.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(E.lakebase_cu=null,E.lakebase_storage_gb=null,E.lakebase_ha_nodes=null,E.lakebase_backup_retention_days=null,E.lakebase_pitr_gb=null,E.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(E.fmapi_provider=w.fmapi_provider,E.fmapi_model=w.fmapi_model||null,E.fmapi_endpoint_type=w.fmapi_endpoint_type,E.fmapi_context_length=w.fmapi_context_length,E.fmapi_rate_type=w.fmapi_rate_type,E.fmapi_quantity=w.fmapi_quantity):(E.fmapi_provider=null,E.fmapi_model=null,E.fmapi_endpoint_type=null,E.fmapi_context_length=null,E.fmapi_rate_type=null,E.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?ke?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,E.avg_runtime_minutes=w.avg_runtime_minutes,E.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(E.hours_per_month=w.hours_per_month||730,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):I!=null&&I.show_fmapi_config?(E.hours_per_month=w.hours_per_month||null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null):(E.hours_per_month=null,E.runs_per_day=null,E.avg_runtime_minutes=null,E.days_per_month=null),t)S(t.line_item_id),T(t.line_item_id),await k(t.line_item_id,E),We.success("Workload updated");else{E.estimate_id=e;const M=await _(E);M!=null&&M.line_item_id&&T(M.line_item_id),We.success("Workload added")}A(e),r==null||r(),n()}catch(E){console.error("Failed to save workload:",E),We.error("Failed to save")}finally{L(!1)}},mt=I==null?void 0:I.show_compute_config;return st?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:lt,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(E=>({...E,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>Y(E=>({...E,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:de("w-full text-sm",xt&&"border-red-500",Ze&&"border-yellow-500"),children:[Ze&&(()=>{const P=a.find(E=>E.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),xt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Ze&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Ze&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const E=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!E,onChange:()=>!E&&Y(ie=>{const M=!ie.serverless_enabled,q=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:q}}),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>Y(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:he.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:de("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),mt&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(E=>({...E,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(E=>({...E,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(E=>({...E,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(E=>({...E,worker_node_type:E.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:de("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(E=>({...E,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(E=>({...E,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:de("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx($_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(E=>({...E,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(E=>({...E,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[mt&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>Y(E=>({...E,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const E=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!E;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:de("flex items-center gap-2 cursor-pointer select-none",E&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!E&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:E,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(ym,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:de("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),E&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(q=>({...q,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(E=>({...E,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(E=>({...E,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Pe,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,E=P!=null&&P.driver_instance_type?l.find(B=>B.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(B=>B.id===P.worker_instance_type):null,M=(B,G,ae)=>{var Ve,pt,it,Ye,ct,Xe,It;if(!(B!=null&&B.vm_pricing))return null;const je=G.toLowerCase();if(je==="on_demand")return(Ve=B.vm_pricing.on_demand)==null?void 0:Ve.cost_per_hour;if(je==="spot")return(pt=B.vm_pricing.spot)==null?void 0:pt.cost_per_hour;if(je==="reserved_1y"){const U=((it=B.vm_pricing.reserved_1y)==null?void 0:it.find(Z=>Z.payment_option===ae))||((Ye=B.vm_pricing.reserved_1y)==null?void 0:Ye[0]);return U==null?void 0:U.cost_per_hour}if(je==="reserved_3y"){const U=((ct=B.vm_pricing.reserved_3y)==null?void 0:ct.find(Z=>Z.payment_option===ae))||((Xe=B.vm_pricing.reserved_3y)==null?void 0:Xe[0]);return U==null?void 0:U.cost_per_hour}return(It=B.vm_pricing.on_demand)==null?void 0:It.cost_per_hour},q=M(E,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),E&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Pe=E.dbu_rate)==null?void 0:Pe.toFixed(2)," DBU/hr"]}),q!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",q.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_driver_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:B=>Y(G=>({...G,dbsql_driver_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:B=>Y(G=>({...G,dbsql_worker_pricing_tier:B.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:B=>Y(G=>({...G,dbsql_worker_payment_option:B.target.value})),className:"w-full text-sm mt-2",children:oe.map(B=>o.jsx("option",{value:B.id,children:B.name},B.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(E=>({...E,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(E=>({...E,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(E=>({...E,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(E=>({...E,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const E={small:4,medium:12,large:40},ie=P.target.value;Y(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:E[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const E=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(ie=>({...ie,model_serving_concurrency:E}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(E=>({...E,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Q.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Q.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(E=>({...E,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const E=P.target.value,ie=z_(x,g||"aws",w.fmapi_provider,E),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";Y(q=>({...q,fmapi_model:E,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(W=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:W.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(E=>({...E,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(E=>({...E,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],E={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(E=>({...E,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],E={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:E[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(E=>({...E,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(E=>({...E,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(E=>({...E,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(E=>({...E,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(E=>({...E,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(E=>({...E,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>Y(E=>({...E,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>Y(E=>({...E,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages/Month (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>Y(E=>({...E,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>Y(E=>({...E,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>De(!1),className:de("px-3 py-1 text-xs rounded-l-md border transition-colors",ke?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>De(!0),className:de("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",ke?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!ke&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(E=>({...E,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(E=>({...E,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&w.workload_type!=="DATABRICKS_APPS"&&w.workload_type!=="AI_PARSE"&&w.workload_type!=="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(E=>({...E,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),ke&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(E=>({...E,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>Y(E=>({...E,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:s3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Tu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:sD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:_D,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:qD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:m3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?h8[e]||{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Tu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},fe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:fe(e),At=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:de("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:de("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[fe(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:de("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[At(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=OC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(oS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:k,getInstanceDbuRate:A,vmPricingMap:S,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:$,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:he,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:F,isPricingBundleLoaded:Q,clearEstimateState:N,setLocalCalculatedCosts:se}=ws(),[pe,L]=m.useState(!1),[ke,De]=m.useState(!1),[w,Y]=m.useState(!1),[ue,_e]=m.useState(!1),[ve,ot]=m.useState(!1),[Ze,I]=m.useState(null),[st,xt]=m.useState(!1),[lt,mt]=m.useState(!1),[W,P]=m.useState(!1),[E,ie]=m.useState(!1),[M,q]=m.useState(new Set),[Se,Pe]=m.useState(new Set),[O,B]=m.useState(!1),[G,ae]=m.useState({}),[je,Ve]=m.useState(!1),[pt,it]=m.useState(!1),[Ye,ct]=m.useState(!1),[Xe,It]=m.useState(!1),[U,Z]=m.useState([]),[Te,$e]=m.useState(!1),[K,ut]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[nt,Bt]=m.useState(!!e),[ft,vt]=m.useState(!1),[Ct,ht]=m.useState(!1),[ze,Ie]=m.useState("table"),[Me,Re]=m.useState("order"),[Yt,jt]=m.useState("asc"),[Ee,Nt]=m.useState(new Set),[Le,Jn]=m.useState(!1),Zn=m.useRef({}),ns=m.useCallback(R=>{const J=Zn.current[R];J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.style.backgroundColor="rgba(255, 54, 33, 0.1)",J.style.transition="background-color 0.3s ease",setTimeout(()=>{Zn.current[R]&&(Zn.current[R].style.backgroundColor="")},1500))},[]),Un=m.useCallback(()=>{B(!0)},[]);m.useEffect(()=>{const R=J=>{O&&(J.preventDefault(),J.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[O]),m.useEffect(()=>{if(!K.cloud||!K.region||r.length===0||!Ye)return;const R=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const V=cl(F,K.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if(V){const ce=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",He=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";R.add(`${V.driver_instance_type}:${ce}:${He}`);const Pt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";R.add(`${V.worker_instance_type}:${Pt}:${Rt}`)}return}if(C.driver_node_type){const V=C.driver_pricing_tier||"on_demand",ce=C.driver_payment_option||"NA";R.add(`${C.driver_node_type}:${V}:${ce}`)}if(C.worker_node_type){const V=C.worker_pricing_tier||"spot",ce=C.worker_payment_option||"NA";R.add(`${C.worker_node_type}:${V}:${ce}`)}}});const J=Array.from(R).map(C=>{const[V,ce,He]=C.split(":");return _(K.cloud,K.region,V,ce,He)});if(J.length>0){It(!0);const C=new Promise(V=>setTimeout(V,1e4));Promise.race([Promise.all(J),C]).catch(()=>{}).finally(()=>It(!1))}},[K.cloud,K.region,r,Ye,_,F]),m.useEffect(()=>{if(!K.cloud)return;const R=p(K.cloud);if(R.length>0){const J=Q?CO(F,K.cloud):[];if(J.length>0){const C=R.filter(V=>J.includes(V.region_code));Z(C)}else Z(R);$e(!1)}else u?(Z([]),$e(!1)):$e(!0)},[K.cloud,d,u,p,F,Q]),m.useEffect(()=>{(async()=>{if(e){Ve(!0),it(!0),ct(!1);try{await i(e)}catch(J){console.error("Error loading estimate data:",J)}finally{Ve(!1),it(!1),ct(!0)}}else N(),ct(!1)})()},[e,i,N]);const rs={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ut({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ut(rs),x("aws"),B(!1))},[n,e,x,y]),m.useEffect(()=>{K.cloud&&K.region&&K.tier&&$(K.cloud.toUpperCase(),K.region,K.tier.toUpperCase())},[K.cloud,K.region,K.tier,$]);const ss=!!(K.region&&K.tier),fr=(R,J)=>{const C=J?{...R,...J}:R,V=K.cloud||"aws",ce=K.region,He=Object.keys(D).length>0?D:Q_[V]||Q_.aws,Pt=C.num_workers||0;if(!ce)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let we="";const en=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?we="JOBS_COMPUTE_(PHOTON)":we="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?we="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?we="ALL_PURPOSE_COMPUTE_(PHOTON)":we="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?we="JOBS_SERVERLESS_COMPUTE":(we=`DLT_${en}_COMPUTE`,C.photon_enabled&&(we+="_(PHOTON)"));break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Be==="SERVERLESS"?we="SERVERLESS_SQL_COMPUTE":Be==="PRO"?we="SQL_PRO_COMPUTE":we="SQL_COMPUTE";break;case"VECTOR_SEARCH":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const yt=(C.fmapi_provider||"openai").toLowerCase();we=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[yt]||yt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":we="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":we="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"AI_PARSE":we="SERVERLESS_REAL_TIME_INFERENCE";break;case"SHUTTERSTOCK_IMAGEAI":we="SERVERLESS_REAL_TIME_INFERENCE";break;default:we="JOBS_COMPUTE"}let An=.2;if(Q&&K.tier){const Be=Lg(F,V,ce,K.tier,we);Be>0?An=Be:An=He[we]||.2}else An=He[we]||.2;let be=0,qe=0,Qe=0,Ts,Er,is,te=.5,me=.5;if(Q&&C.driver_node_type){const Be=Pm(F,V,C.driver_node_type);Be>0&&(te=Be)}if(!te||te===.5){const Be=j.find(yt=>yt.id===C.driver_node_type||yt.name===C.driver_node_type);Be!=null&&Be.dbu_rate&&(te=Be.dbu_rate)}if(Q&&C.worker_node_type){const Be=Pm(F,V,C.worker_node_type);Be>0&&(me=Be)}if(!me||me===.5){const Be=j.find(yt=>yt.id===C.worker_node_type||yt.name===C.worker_node_type);Be!=null&&Be.dbu_rate&&(me=Be.dbu_rate)}const Ht=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Be;if(C.serverless_enabled?C.workload_type==="JOBS"?Be="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Be="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Be="DLT_CORE_COMPUTE":Be=we.replace("_(PHOTON)",""):Be=we.replace("_(PHOTON)",""),Q){const tn=iE(F,V,Be);if(tn!==2)return tn}const yt=H.find(tn=>{var bn,mr;return tn.sku_type===Be||((bn=tn.sku_type)==null?void 0:bn.toLowerCase())===Be.toLowerCase()||((mr=tn.sku_type)==null?void 0:mr.toLowerCase().includes((R.workload_type||"").toLowerCase()))});return(yt==null?void 0:yt.multiplier)||2})(),mi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)be=(te+me*Pt)*Ht*mi;else{be=(te+me*Pt)*Ht;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DLT":if(C.serverless_enabled)be=(te+me*Pt)*Ht*Cr*mi;else{be=(te+me*Pt)*Ht*Cr;const Ce=C.driver_pricing_tier||"on_demand",cn=C.driver_payment_option||"NA",Nr=C.worker_pricing_tier||"spot",hi=C.worker_payment_option||"NA",gi=k(V,ce,C.driver_node_type||"",Ce,cn),xi=k(V,ce,C.worker_node_type||"",Nr,hi);Qe=(gi+xi*Pt)*Rt}qe=be*Rt;break;case"DBSQL":const Be=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),yt=C.dbsql_warehouse_size||"Small",tn=C.dbsql_num_clusters||1;let bn=Y_[yt]||12;if(Q){const Ce=_O(F,V,Be,yt);Ce&&Ce.dbu_per_hour>0&&(bn=Ce.dbu_per_hour)}if(!bn||bn===(Y_[yt]||12)){const Ce=X.find(cn=>cn.id===yt||cn.name===yt);Ce!=null&&Ce.dbu_per_hour&&(bn=Ce.dbu_per_hour)}if(be=bn*tn,qe=be*Rt,Be!=="SERVERLESS"){const Ce=Q?cl(F,V,Be,yt):null;if(Ce){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,Ce.driver_instance_type,cn,Nr),Ja=k(V,ce,Ce.worker_instance_type,hi,gi);Qe=(Ce.driver_count*xi+Ce.worker_count*Ja)*tn*Rt}else if(C.driver_node_type){const cn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",Nr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",hi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",gi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",xi=k(V,ce,C.driver_node_type,cn,Nr),Ja=C.worker_node_type?k(V,ce,C.worker_node_type,hi,gi):0,yx=C.num_workers||0;Qe=(xi+Ja*yx)*tn*Rt}}break;case"VECTOR_SEARCH":const mr=C.vector_search_mode||"standard",at=C.vector_capacity_millions||1;let ln=mr==="storage_optimized"?64e6:2e6,qt=mr==="storage_optimized"?18.29:4;if(Q){const Ce=bO(F,V,mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_rate)}else{const Ce=he(mr);Ce&&(ln=Ce.input_divisor,qt=Ce.dbu_per_hour)}const mn=at*1e6,Fe=Math.ceil(mn/ln);Ts=Fe,be=Fe*qt,qe=be*Rt;const et=C.vector_search_storage_gb||0,Wt=Fe*20,wt=Math.max(0,et-Wt),Ut=.023,hn=wt*Ut;et>0&&(Er=hn,is={totalStorageGB:et,freeStorageGB:Wt,billableStorageGB:wt,pricePerGB:Ut});break;case"MODEL_SERVING":const er=C.model_serving_gpu_type||"cpu";let Dn=2;if(Q){const Ce=wO(F,V,er);Ce&&Ce.dbu_rate>0&&(Dn=Ce.dbu_rate)}if(Dn===2){const Ce=re.find(cn=>cn.id===er||cn.name===er);Ce!=null&&Ce.dbu_per_hour&&(Dn=Ce.dbu_per_hour)}const tr=C.model_serving_scale_out||"small",Fl=tr==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[tr]||4;be=Dn*Fl,qe=be*Rt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},JC=(zl[V]||zl.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;be=Ul*JC*Vl,qe=be*Rt;const $l=Math.min(C.lakebase_storage_gb||0,8192),ZC=C.lakebase_pitr_gb||0,e2=C.lakebase_snapshot_gb||0,Hl=.023,t2=$l*15*Hl,n2=ZC*8.7*Hl,r2=e2*3.91*Hl,gx=t2+n2+r2;gx>0&&(Er=gx,is={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const s2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ds=null;if(Q&&C.fmapi_model){const Ce=kO(F,V,C.fmapi_model,Xa);Ce&&(Ds=Ce.dbu_rate)}if(Ds===null&&C.fmapi_model){const Ce=xe(C.fmapi_model,Xa);Ce&&(xx?Ds=Ce.dbu_per_hour||null:Ds=Ce.dbu_per_1M_tokens||null)}Ds===null&&(xx?Ds=Xa==="provisioned_scaling"?200:50:Ds=Xa==="output_token"?3:1),qe=s2*Ds;break;case"FMAPI_PROPRIETARY":const i2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let jr=null;if(Q&&C.fmapi_provider&&C.fmapi_model){const Ce=C.fmapi_endpoint_type||"global",cn=C.fmapi_context_length||"long",Nr=SO(F,V,C.fmapi_provider,C.fmapi_model,Ce,cn,ql);Nr&&(jr=Nr.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ce=oe(C.fmapi_provider,C.fmapi_model,ql);Ce&&(vx?jr=Ce.dbu_per_hour||null:jr=Ce.dbu_per_1M_tokens||null)}if(jr===null)if(vx)jr=150;else switch(ql){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}qe=i2*jr;break;case"DATABRICKS_APPS":{const Ce=(C.databricks_apps_size||"medium").toLowerCase();be={medium:.5,large:1}[Ce]||.5,qe=be*Rt;break}case"AI_PARSE":{const Ce={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},cn=(C.ai_parse_complexity||"medium").toLowerCase();qe=(C.ai_parse_pages_thousands||0)*(Ce[cn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{qe=(C.shutterstock_images||0)*.857;break}default:qe=0}const Tn=isNaN(An)||An===void 0?0:An,Ls=isNaN(qe)||qe===void 0?0:qe,Ln=isNaN(Qe)||Qe===void 0?0:Qe,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ls*Tn,os=zr+Ln+_n;return{monthlyDBUs:Ls,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(os)?0:os,unitsUsed:Ts,dbuPerHour:be,dbuPrice:Tn,storageCost:_n>0?_n:void 0,storageDetails:is}},Vn=m.useMemo(()=>{let R=0,J=0,C=0,V=0;return r.forEach(ce=>{const He=fr(ce);R+=isNaN(He.monthlyDBUs)?0:He.monthlyDBUs,J+=isNaN(He.dbuCost)?0:He.dbuCost,C+=isNaN(He.vmCost)?0:He.vmCost,V+=isNaN(He.totalCost)?0:He.totalCost}),{totalDBUs:R,totalDBUCost:J,totalVMCost:C,totalCost:V}},[r,K.cloud,K.region,K.tier,s,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);m.useEffect(()=>{const R={};r.forEach(J=>{const C=fr(J,G[J.line_item_id]);R[J.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(R)},[r,G,K.cloud,K.region,K.tier,se,k,S,A,T,j,H,D,X,re,le,he,xe,oe,F,Q]);const fi=m.useMemo(()=>{const R=[...r];return Me==="order"?R.sort((J,C)=>(J.display_order??0)-(C.display_order??0)):Me==="name"?R.sort((J,C)=>(J.workload_name||"").localeCompare(C.workload_name||"")):Me==="type"?R.sort((J,C)=>(J.workload_type||"").localeCompare(C.workload_type||"")):Me==="cost"&&R.sort((J,C)=>{const V=fr(J).totalCost,ce=fr(C).totalCost;return V-ce}),Yt==="desc"&&R.reverse(),R},[r,Me,Yt,fr]),Md=R=>{Me===R?jt(J=>J==="asc"?"desc":"asc"):(Re(R),jt(R==="cost"?"desc":"asc"))},UC=hC(zu(Td,{activationConstraint:{distance:5}}),zu(Ad)),VC=Me==="order",zC=m.useCallback(async R=>{const{active:J,over:C}=R;if(!C||J.id===C.id||!e)return;const V=fi.findIndex(en=>en.line_item_id===J.id),ce=fi.findIndex(en=>en.line_item_id===C.id);if(V===-1||ce===-1)return;const He=[...fi],[Pt]=He.splice(V,1);He.splice(ce,0,Pt);const{lineItems:Rt}=ws.getState(),we=Rt.map(en=>{const An=He.findIndex(be=>be.line_item_id===en.line_item_id);return An>=0?{...en,display_order:An}:en});ws.setState({lineItems:we});try{await G4(e,He.map(en=>en.line_item_id))}catch{We.error("Failed to save reorder")}},[fi,e]),ox=async()=>{if(!K.estimate_name.trim()){We.error("Enter an estimate name");return}if(!K.region){We.error("Select a region");return}if(!K.tier){We.error("Select a Databricks tier");return}L(!0);try{const R={...K,cloud:K.cloud.toUpperCase(),tier:K.tier.toUpperCase()};if(e&&n)await h(e,R),B(!1),We.success("All changes saved");else{const J=await f(R);B(!1),t(`/calculator/${J.estimate_id}`,{replace:!0}),We.success("Estimate created")}}catch{We.error("Failed to save")}finally{L(!1)}},$C=async()=>{if(e){De(!0);try{const R=await qS(e),J=`${K.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(R,J),We.success("Exported to Excel")}catch{We.error("Export failed")}finally{De(!1)}}},HC=async()=>{if(e){Y(!0),_e(!1);try{await g(e),We.success("Estimate deleted"),t("/",{replace:!0})}catch{We.error("Failed to delete estimate"),Y(!1)}}},qC=async()=>{l(),We.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),We.success("Pricing data refreshed",{id:"refresh-data"})}catch{We.error("Failed to refresh data",{id:"refresh-data"})}},lx=R=>{I(R),ot(!0)},WC=async()=>{if(Ze){mt(!0);try{await v(Ze.line_item_id),We.success("Workload removed")}catch{We.error("Failed to delete")}finally{mt(!1),ot(!1),I(null)}}},cx=()=>{Ee.size!==0&&xt(!0)},GC=async()=>{mt(!0);try{let R=0;for(const J of Ee)await v(J),R++;We.success(`${R} workload(s) deleted`),Nt(new Set)}catch{We.error("Failed to delete some workloads")}finally{mt(!1),xt(!1)}},KC=R=>{Nt(J=>{const C=new Set(J);return C.has(R)?C.delete(R):C.add(R),C})},QC=()=>{Ee.size===r.length?Nt(new Set):Nt(new Set(r.map(R=>R.line_item_id)))},ux=()=>{Jn(!1),Nt(new Set)},dx=async(R,J)=>{R.stopPropagation();try{await b(J.line_item_id)&&We.success(`Workload "${J.workload_name}" cloned`)}catch{We.error("Failed to clone workload")}},YC=()=>{O?P(!0):t("/")},XC=()=>{P(!1),t("/")},px=R=>{const J=new Set(M);J.has(R)?J.delete(R):J.add(R),q(J)},Il=(R,J=!1)=>{const C=new Set(Se);if(C.has(R))C.delete(R);else if(C.add(R),J&&!M.has(R)){const V=new Set(M);V.add(R),q(V)}Pe(C)},fx=R=>{const J=R.workload_type||"";return["AI_PARSE","SHUTTERSTOCK_IMAGEAI","DATABRICKS_APPS"].includes(J)?null:R.hours_per_month?`${R.hours_per_month}h/month`:R.runs_per_day?`${R.runs_per_day} runs/day × ${R.avg_runtime_minutes||30}min`:null},mx=R=>{const J=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(R.workload_type||"")&&R.serverless_enabled&&J.push({label:"Mode",value:R.serverless_mode==="performance"?"Performance":"Standard"}),R.workload_type){case"VECTOR_SEARCH":R.vector_search_mode&&J.push({label:"Mode",value:R.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),R.vector_capacity_millions&&J.push({label:"Capacity",value:`${R.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(R.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};J.push({label:"Endpoint",value:C[R.model_serving_gpu_type]||R.model_serving_gpu_type})}break;case"LAKEBASE":R.lakebase_cu&&J.push({label:"CU",value:`${R.lakebase_cu}`}),R.lakebase_ha_nodes&&J.push({label:"Nodes",value:`${R.lakebase_ha_nodes}${R.lakebase_ha_nodes>1?" (HA)":""}`}),R.lakebase_storage_gb&&R.lakebase_storage_gb>0&&J.push({label:"Storage",value:`${R.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(R.fmapi_model&&J.push({label:"Model",value:R.fmapi_model}),R.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}if(R.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(R.fmapi_rate_type||"");J.push({label:C?"Hours":"Quantity",value:C?`${R.fmapi_quantity}h/mo`:`${R.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(R.fmapi_provider&&R.fmapi_model&&J.push({label:"Model",value:`${R.fmapi_provider}/${R.fmapi_model}`}),R.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};J.push({label:"Rate",value:C[R.fmapi_rate_type]||R.fmapi_rate_type})}R.fmapi_quantity&&J.push({label:"Quantity",value:`${R.fmapi_quantity}M tokens`});break;case"DLT":R.dlt_edition&&J.push({label:"Edition",value:R.dlt_edition});break;case"DBSQL":R.dbsql_warehouse_type&&J.push({label:"Type",value:R.dbsql_warehouse_type}),R.dbsql_warehouse_size&&J.push({label:"Size",value:R.dbsql_warehouse_size}),R.dbsql_num_clusters&&R.dbsql_num_clusters>1&&J.push({label:"Clusters",value:`${R.dbsql_num_clusters}`});break;case"DATABRICKS_APPS":J.push({label:"Size",value:(R.databricks_apps_size||"medium").charAt(0).toUpperCase()+(R.databricks_apps_size||"medium").slice(1)});break;case"AI_PARSE":J.push({label:"Complexity",value:R.ai_parse_complexity||"medium"}),R.ai_parse_pages_thousands&&J.push({label:"Pages",value:`${R.ai_parse_pages_thousands}K/mo`});break;case"SHUTTERSTOCK_IMAGEAI":R.shutterstock_images&&J.push({label:"Images",value:`${R.shutterstock_images.toLocaleString()}/mo`});break}return J},Bl=K.estimate_name.trim()&&K.region&&K.tier,hx=()=>{const R=[];return K.estimate_name.trim()||R.push("Estimate Name"),K.region||R.push("Region"),K.tier||R.push("Databricks Tier"),R};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&je&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(R=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},R))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(R=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},R))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:YC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ey,{className:"w-5 h-5"})}),o.jsx("div",{children:je&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:K.estimate_name,onChange:R=>{ut(J=>({...J,estimate_name:R.target.value})),Un()},placeholder:"Untitled Estimate",title:K.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:qC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Qr,{className:de("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:$C,disabled:ke||!e,className:"btn btn-secondary",children:[o.jsx(zc,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(nn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:de("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:de("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Bt(!nt),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Tu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${K.cloud.toUpperCase()} • ${K.region||"No region"} • ${K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier"}${K.customer_name?` • ${K.customer_name}`:""}`,children:[K.cloud.toUpperCase()," • ",K.region||"No region"," • ",K.tier?K.tier.charAt(0).toUpperCase()+K.tier.slice(1):"No tier",K.customer_name&&` • ${K.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:nt?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(fs,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!nt&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),je&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(R=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},R))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(R=>{const J=r.length>0&&K.cloud!==R.id;return o.jsxs("button",{disabled:J,onClick:C=>{C.stopPropagation(),!J&&(ut(V=>({...V,cloud:R.id,region:"",tier:R.id==="azure"&&V.tier==="enterprise"?"":V.tier})),x(R.id),Un())},className:de("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",K.cloud===R.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",J?"opacity-40 cursor-not-allowed":K.cloud!==R.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:J?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:de("text-sm font-semibold",K.cloud===R.id?"text-lava-600":"text-[var(--text-primary)]"),children:R.name}),K.cloud===R.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Gs,{className:"w-3.5 h-3.5 text-lava-600"})})]},R.id)})})]})]}),je&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:R=>R.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.region,onChange:R=>{ut(J=>({...J,region:R.target.value})),y(R.target.value),Un()},className:de("w-full text-sm",!K.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(R=>o.jsxs("option",{value:R.region_code,children:[R.region_code," (",R.sku_region,")"]},R.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:K.tier,onChange:R=>{ut(J=>({...J,tier:R.target.value})),Un()},className:de("w-full text-sm",!K.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),K.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(ms,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Gs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,title:Bl?void 0:`Missing: ${hx().join(", ")}`,className:de("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Gs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(p3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:Le?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Ee.size," selected"]}),o.jsxs("button",{onClick:cx,disabled:Ee.size===0,className:de("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Ee.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>Jn(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Ie("table"),className:de("p-1.5 rounded-md transition-colors",ze==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(b3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("cards"),className:de("p-1.5 rounded-md transition-colors",ze==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Ng,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Ie("expanded"),className:de("p-1.5 rounded-md transition-colors",ze==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(ry,{className:"w-4 h-4"})})]}),ss&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Lu,{className:"w-4 h-4"}),"Add"]})]})]}),e?pt&&!Ye?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[ze==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Ee.size===r.length&&r.length>0,onChange:QC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>Md("name"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Le?"col-span-3":"col-span-4"),children:["Workload",Me==="name"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("type"),className:de("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",Me==="type"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",Me==="cost"&&(Yt==="asc"?o.jsx(kp,{className:"w-3 h-3"}):o.jsx(wp,{className:"w-3 h-3"}))]})]}),o.jsx(PC,{sensors:UC,collisionDetection:gC,onDragEnd:zC,modifiers:[IC],children:o.jsx(DC,{items:fi.map(R=>R.line_item_id),strategy:AC,children:fi.map(R=>{var Ts,Er,is;const J=G[R.line_item_id],C=J?{...R,...J}:R,V=fr(R,J),ce=W_(C.workload_type),He=ce.icon,Pt=M.has(R.line_item_id),Rt=Ee.has(R.line_item_id),we=C.workload_type||"",en=C.serverless_enabled||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",An=((Ts=s.find(te=>te.workload_type===we))==null?void 0:Ts.display_name)||we,be=fx(C),Qe=(()=>{const te={badges:[],details:[]};if(en&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(we))en||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),we==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(we==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(we==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(we==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&we==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else we==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:R.line_item_id,disabled:!VC,children:o.jsxs("div",{ref:te=>{Zn.current[R.line_item_id]=te},children:[o.jsxs("div",{className:de("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&Le&&"bg-lava-600/5",Pt&&"bg-[var(--bg-tertiary)]"),onClick:()=>px(R.line_item_id),children:[Le&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>KC(R.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:de("flex items-center gap-3",Le?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:de("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",ce.bgColor),children:o.jsx(He,{className:de("w-4 h-4",ce.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:R.workload_name,children:R.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:An,children:An})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[Qe.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${Qe.driver||"N/A"}, Workers: ${((Er=Qe.workers)==null?void 0:Er.count)||0}× ${((is=Qe.workers)==null?void 0:is.type)||"N/A"}`,children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:Qe.details.join(" · "),children:Qe.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(K_,{costs:V,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&te&&V.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>dx(te,R),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),lx(R)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(nn,{className:"w-4 h-4"})}),o.jsx("div",{className:de("p-1 rounded transition-colors",Pt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Pt?o.jsx(fs,{className:"w-5 h-5 text-lava-600"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Pt&&(Qe.badges.length>0||Qe.driver||Qe.workers||Qe.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[Qe.badges.map((te,me)=>o.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(Qe.driver||Qe.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=Qe.driver,me=Qe.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),Qe.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:Qe.details.join(" · ")})]}),Pt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(we)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(V.vmCost)})]}),we==="LAKEBASE"&&V.storageCost!==void 0&&V.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(V.storageCost)})]}),we==="VECTOR_SEARCH"&&V.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[V.unitsUsed," unit",V.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(we)&&!en&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),be&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:be})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,as=C.avg_runtime_minutes||30,Ht=C.days_per_month||30,mi=C.hours_per_month||730,Ft=te?me*(as/60)*Ht:mi,Tn=(V.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const Fe=C.vector_capacity_millions||1,et=C.vector_search_mode||"standard",Wt=et==="storage_optimized"?64:2,wt=Math.ceil(Fe/Wt),Ut=et==="storage_optimized"?18.29:4,hn=C.vector_search_storage_gb||0,er=wt*20,Dn=Math.max(0,hn-er),tr=Dn*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M"]})," vectors ÷ ",Wt,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," unit",wt!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[er," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(tr)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),hn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(tr)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const Fe=C.fmapi_quantity||1,et=C.fmapi_rate_type||"input_token",Wt=["provisioned_scaling","provisioned_entry"].includes(et),wt=Fe>0?V.monthlyDBUs/Fe:0,Ut=C.fmapi_model||"model",hn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Wt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[wt.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",hn?`${hn}/`:"",Ut,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="LAKEBASE"){const Fe=C.lakebase_cu||1,et=C.lakebase_ha_nodes||1,Wt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ut=(Wt[K.cloud||"aws"]||Wt.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213,hn=C.lakebase_storage_gb||0,er=C.lakebase_pitr_gb||0,Dn=C.lakebase_snapshot_gb||0,tr=.023,Ya=hn*15*tr,Fl=er*8.7*tr,Ul=Dn*3.91*tr,Vl=Ya+Fl+Ul,zl=Vl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(V.dbuCost)})]}),hn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[hn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(hn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ya)})]}),er>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[er," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(er*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Fl)})]}),Dn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Dn*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",tr,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ul)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),zl&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Vl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})}if(we==="MODEL_SERVING"){const Fe=C.model_serving_gpu_type||"cpu",et=C.model_serving_scale_out||"small",wt=et==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[et]||4,Ut=wt>0&&V.dbuPerHour?V.dbuPerHour/wt:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Ut.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DBSQL"){const Fe=C.dbsql_warehouse_size||"Small",et=C.dbsql_num_clusters||1,Wt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),wt=V.dbuPerHour?V.dbuPerHour/et:12,Ut=V.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",wt.toFixed(1)," DBU/hr)"]}),et>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${as}min ÷ 60 × ${Ht} days`:void 0,children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),Ut&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[Wt," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:fe(V.dbuCost)}),Ut&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})]})}if(we==="DATABRICKS_APPS"){const Fe=(C.databricks_apps_size||"medium").toLowerCase(),et=Fe==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Fe.charAt(0).toUpperCase()+Fe.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",et," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="AI_PARSE"){const Fe=(C.ai_parse_complexity||"medium").toLowerCase(),Wt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[Fe]||62.5,wt=C.ai_parse_pages_thousands||0,Ut={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[wt,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Wt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ut[Fe]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}if(we==="SHUTTERSTOCK_IMAGEAI"){const Fe=C.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(V.totalCost)})]})})}const Ls=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,os=V.vmCost>0&&!en,Be=K.cloud||"aws",yt=K.region||"",tn=j.find(Fe=>Fe.id===Ln||Fe.name===Ln),bn=j.find(Fe=>Fe.id===_n||Fe.name===_n),mr=A(Be,Ln)||(tn==null?void 0:tn.dbu_rate)||0,at=A(Be,_n)||(bn==null?void 0:bn.dbu_rate)||0,ln=yt&&Ln?k(Be,yt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,qt=yt&&_n?k(Be,yt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,mn=V.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[as,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ht," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Ft.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:mr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:at.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(V.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Tn,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(V.dbuCost)})]}),os&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(ln==null?void 0:ln.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(qt==null?void 0:qt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ls}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ft.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(V.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(V.dbuCost)}),os&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(V.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(V.totalCost)})]})]})})()})]})]}),Pt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(q_,{onReset:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(te=>{const me=new Set(te);return me.delete(R.line_item_id),me}),ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[R.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[R.line_item_id]:te}))},inline:!0})})})]})},R.line_item_id)})})})]}),ze!=="table"&&fi.map((R,J)=>{var An;const C=G[R.line_item_id],V=C?{...R,...C}:R,ce=fr(R,C),He=M.has(R.line_item_id),Pt=fx(V),Rt=W_(V.workload_type),we=Rt.icon,en=ze==="expanded"||He;return o.jsx("div",{ref:be=>{Zn.current[R.line_item_id]=be},children:o.jsxs($t.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:J*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:de("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",ze==="cards"&&!He&&"py-3"),onClick:()=>px(R.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:de("rounded-lg flex items-center justify-center flex-shrink-0",ze==="cards"&&!He?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(we,{className:de(Rt.color,ze==="cards"&&!He?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:de("font-semibold truncate text-[var(--text-primary)]",ze==="cards"&&!He&&"text-sm"),title:R.workload_name,children:R.workload_name}),(R.serverless_enabled||R.workload_type==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),R.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((An=s.find(be=>be.workload_type===R.workload_type))==null?void 0:An.display_name)||R.workload_type})})]}),o.jsx(K_,{costs:ce,size:ze==="cards"&&!He?"md":"lg",isLoading:(()=>{const be=R.workload_type||"",qe=!R.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(be)||be==="DBSQL"&&(R.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Xe&&qe&&ce.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id,!0)},className:de("p-1.5 rounded-md transition-colors",Se.has(R.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(R.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(mc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>dx(be,R),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(bm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:be=>{be.stopPropagation(),lx(R)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(nn,{className:"w-4 h-4"})}),He?o.jsx(fs,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(sr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),en&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(R.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:fe(ce.vmCost)})]}),R.workload_type==="LAKEBASE"&&ce.storageCost!==void 0&&ce.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:fe(ce.storageCost)})]}),R.workload_type==="VECTOR_SEARCH"&&ce.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[ce.unitsUsed," unit",ce.unitsUsed!==1?"s":""]})]}),(R.workload_type==="JOBS"||R.workload_type==="ALL_PURPOSE"||R.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[R.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:R.driver_node_type})]}),R.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[R.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:R.worker_node_type})]})]})]}),mx(R).map((be,qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:be.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:be.value})]},qe)),Pt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:Pt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:be=>{be.stopPropagation(),Il(R.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(mc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(R.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(R.line_item_id)?o.jsx(fs,{className:"w-3 h-3"}):o.jsx(sr,{className:"w-3 h-3"})]}),Se.has(R.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const be=V.workload_type||"",qe=V.serverless_enabled||be==="DBSQL"&&(V.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Qe=V.runs_per_day&&V.avg_runtime_minutes&&!V.hours_per_month,Ts=V.runs_per_day||0,Er=V.avg_runtime_minutes||30,is=V.days_per_month||30,te=V.hours_per_month||730,me=Qe?Ts*(Er/60)*is:te,Ht=(ce.dbuPrice||0).toFixed(2);if(be==="VECTOR_SEARCH"){const at=V.vector_capacity_millions||1,ln=V.vector_search_mode||"standard",qt=ln==="storage_optimized"?64:2,mn=Math.ceil(at/qt),Fe=ln==="storage_optimized"?18.29:4,et=V.vector_search_storage_gb||0,Wt=mn*20,wt=Math.max(0,et-Wt),Ut=wt*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M vectors"]})," ÷ ",qt,"⌉"]}),o.jsxs("span",{children:["= ",mn," units ×"]}),o.jsxs("span",{children:[Fe," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs × $",Ht]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),et>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[et," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Wt," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[wt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),et>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(Ut)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="FMAPI_DATABRICKS"||be==="FMAPI_PROPRIETARY"){const at=V.fmapi_quantity||0,ln=ce.monthlyDBUs/(at||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[ln.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="LAKEBASE"){const at=V.lakebase_cu||1,ln=V.lakebase_ha_nodes||1,qt=V.lakebase_storage_gb||0,mn=V.lakebase_pitr_gb||0,Fe=V.lakebase_snapshot_gb||0,et=.023,Wt=qt*15*et,wt=mn*8.7*et,Ut=Fe*3.91*et,hn=Wt+wt+Ut,er=hn>0,Dn={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(Dn[K.cloud||"aws"]||Dn.aws)[(K.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:fe(ce.dbuCost)})]}),qt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(qt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Wt)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(wt)})]}),Fe>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Fe," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At(Fe*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",et,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:fe(Ut)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),er&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:fe(hn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="MODEL_SERVING"){const at=V.model_serving_scale_out||"small",qt=at==="custom"?V.model_serving_concurrency||4:{small:4,medium:12,large:40}[at]||4,mn=qt>0&&ce.dbuPerHour?ce.dbuPerHour/qt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[qt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",at,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})}if(be==="DATABRICKS_APPS"){const at=(V.databricks_apps_size||"medium").toLowerCase(),ln=at==="large"?1:.5;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:at.charAt(0).toUpperCase()+at.slice(1)}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",ln," DBU/hr)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="AI_PARSE"){const at=(V.ai_parse_complexity||"medium").toLowerCase(),qt={low_text:12.5,low_images:22.5,medium:62.5,high:87.5}[at]||62.5,mn=V.ai_parse_pages_thousands||0,Fe={low_text:"Low (Text)",low_images:"Low (Images)",medium:"Medium",high:"High"};return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn,"K pages"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[qt," DBU/1K"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Fe[at]||"Medium",")"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}if(be==="SHUTTERSTOCK_IMAGEAI"){const at=V.shutterstock_images||0;return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[at.toLocaleString()," images"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"0.857 DBU/image"}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:fe(ce.totalCost)})]})})}const mi=V.num_workers||0,Ft=V.driver_node_type||"",Cr=V.worker_node_type||"",Tn=V.photon_enabled,Ls=ce.vmCost>0&&!qe,Ln=K.cloud||"aws",_n=K.region||"",zr=j.find(at=>at.id===Ft||at.name===Ft),os=j.find(at=>at.id===Cr||at.name===Cr),Be=A(Ln,Ft)||(zr==null?void 0:zr.dbu_rate)||0,yt=A(Ln,Cr)||(os==null?void 0:os.dbu_rate)||0,tn=_n&&Ft?k(Ln,_n,Ft,V.driver_pricing_tier||"on_demand",V.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?k(Ln,_n,Cr,V.worker_pricing_tier||"spot",V.worker_payment_option||"NA"):null,mr=ce.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[Qe&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ts," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Tn?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ft,children:Be.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:yt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),Tn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[mr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[At(ce.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",Ht,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:fe(ce.dbuCost)})]}),Ls&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ft,children:["$",(tn==null?void 0:tn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:mi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(Qe?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:fe(ce.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:fe(ce.dbuCost)}),Ls&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:fe(ce.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:fe(ce.totalCost)})]})]})})()})]})]})]}),He&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(q_,{onReset:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe})},children:o.jsx(nf,{estimateId:e,lineItem:R,onClose:()=>{q(be=>{const qe=new Set(be);return qe.delete(R.line_item_id),qe}),ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onSave:()=>{ae(be=>{const qe={...be};return delete qe[R.line_item_id],qe})},onFormChange:be=>{ae(qe=>({...qe,[R.line_item_id]:be}))},inline:!0})})})]})},R.line_item_id)}),ss?E?o.jsxs($t.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(nf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Lu,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(ms,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),o.jsxs("button",{onClick:ox,disabled:pe||!Bl,className:"btn btn-primary",children:[o.jsx(Gs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(_m,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),pt&&!Ye&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>vt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(sr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),ss?pt&&!Ye?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:de("text-3xl font-bold text-lava-600",Xe&&"opacity-60"),children:fe(Vn.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[fe(Vn.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:fe(Vn.totalDBUCost),children:G_(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Xe?"Loading...":fe(Vn.totalVMCost),children:Xe?"...":G_(Vn.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>ns(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:fe(V.totalCost),children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full transition-all",Pt,"group-hover:brightness-110"),style:{width:`${Math.max(He,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(ms,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[Ct&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>ht(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>ht(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const R=[...r].map(C=>({item:C,costs:fr(C)})).sort((C,V)=>V.costs.totalCost-C.costs.totalCost),J=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return R.map(({item:C,costs:V},ce)=>{const He=Vn.totalCost>0?V.totalCost/Vn.totalCost*100:0,Pt=J[ce%J.length];return o.jsxs("button",{onClick:()=>{ht(!1),ns(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[He.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:fe(V.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:de("h-full rounded-full",Pt),style:{width:`${Math.max(He,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>vt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>ht(!Ct),className:de("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",Ct?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(ry,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(fs,{className:de("w-3 h-3 transition-transform",Ct?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:fe(Vn.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[fe(Vn.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Ee.size>0&&o.jsxs($t.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Ee.size," workload",Ee.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ue&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',K.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:HC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Ze&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Ze.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),st&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(nn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Ee.size," Workload",Ee.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(R=>Ee.has(R.line_item_id)).map(R=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",R.workload_name]},R.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>xt(!1),disabled:lt,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:GC,disabled:lt,className:"btn bg-red-600 hover:bg-red-700 text-white",children:lt?o.jsxs(o.Fragment,{children:[o.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(nn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),W&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs($t.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(ms,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:XC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let k="";const A=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?k="JOBS_COMPUTE_(PHOTON)":k="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?k="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?k="ALL_PURPOSE_COMPUTE_(PHOTON)":k="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?k="JOBS_SERVERLESS_COMPUTE":(k=`DLT_${A}_COMPUTE`,e.photon_enabled&&(k+="_(PHOTON)"));break;case"DBSQL":const ue=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ue==="SERVERLESS"?k="SERVERLESS_SQL_COMPUTE":ue==="PRO"?k="SQL_PRO_COMPUTE":k="SQL_COMPUTE";break;case"VECTOR_SEARCH":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();k=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":k="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":k="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":k="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":k="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":k="DELTA_LIVE_TABLES_SERVERLESS";break;default:k="JOBS_COMPUTE"}let S=null;if(b){const ue=b(k);ue!==null&&ue>0&&(S=ue)}S===null&&(S=x[k]||.2),console.log(`[LiveEstimate] productType=${k}, dbuPrice=${S}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,$=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ue=g(e.driver_node_type);ue!==null&&ue>0&&(re=ue)}if(re===.5){const ue=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ue!=null&&ue.dbu_rate&&(re=ue.dbu_rate)}if(g&&e.worker_node_type){const ue=g(e.worker_node_type);ue!==null&&ue>0&&(le=ue)}if(le===.5){const ue=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ue!=null&&ue.dbu_rate&&(le=ue.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ue=k.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ue="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ue="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ue=`DLT_${A}_COMPUTE`)),v){const ve=v(ue);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var ot;return ve.sku_type===ue||ve.sku_type===k||((ot=ve.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+le*y)*xe*oe;else{T=(re+le*y)*xe;const Le=e.driver_pricing_tier||"on_demand",Jn=e.driver_payment_option||"NA",Zn=e.worker_pricing_tier||"spot",ns=e.worker_payment_option||"NA",Un=d(n,r,e.driver_node_type||"",Le,Jn),rs=d(n,r,e.worker_node_type||"",Zn,ns);$=(Un+rs*y)*_}D=T*_;break;case"DBSQL":const ue=l.find(Le=>Le.id===e.dbsql_warehouse_size||Le.name===e.dbsql_warehouse_size),_e=(ue==null?void 0:ue.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;T=_e*ve,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const Le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Jn=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Zn=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",ns=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Un=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Un){const rs=d(n,r,Un.driver_instance_type,Le,Jn),ss=d(n,r,Un.worker_instance_type,Zn,ns);$=(Un.driver_count*rs+Un.worker_count*ss)*ve*_}else if(e.driver_node_type){const rs=d(n,r,e.driver_node_type,Le,Jn),ss=e.worker_node_type?d(n,r,e.worker_node_type,Zn,ns):0,fr=e.num_workers||0;$=(rs+ss*fr)*ve*_}}break;case"VECTOR_SEARCH":const Ze=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,st=h(Ze),xt=(st==null?void 0:st.input_divisor)||(Ze==="storage_optimized"?64e6:2e6),lt=(st==null?void 0:st.dbu_per_hour)||(Ze==="storage_optimized"?18.29:4),mt=I*1e6,W=Math.ceil(mt/xt);j=W,T=W*lt,D=T*_;const P=e.vector_search_storage_gb||0,E=W*20,ie=Math.max(0,P-E),M=.023,q=ie*M;P>0&&(H=q,X={totalStorageGB:P,freeStorageGB:E,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Pe=u.find(Le=>Le.id===Se||Le.name===Se),O=(Pe==null?void 0:Pe.dbu_per_hour)||2,B=e.model_serving_scale_out||"small",ae=B==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[B]||4;T=O*ae,D=T*_;break;case"LAKEBASE":const je=e.lakebase_cu||1,Ve=e.lakebase_ha_nodes||1,pt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ye=(pt[n]||pt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=je*Ye*Ve,D=T*_;const ct=Math.min(e.lakebase_storage_gb||0,8192),Xe=15,It=ct*Xe,U=.023,Z=It*U,Te=e.lakebase_pitr_gb||0,K=Te*8.7*U,ut=e.lakebase_snapshot_gb||0,Bt=ut*3.91*U;(ct>0||Te>0||ut>0)&&(H=Z+K+Bt,X={totalStorageGB:ct,billableStorageGB:ct,dsuPerGB:Xe,totalDSU:It,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,vt=e.fmapi_rate_type||"input_token",Ct=["provisioned_scaling","provisioned_entry"].includes(vt),ht=e.fmapi_model?p(e.fmapi_model,vt):null;if(Ct){const Le=(ht==null?void 0:ht.dbu_per_hour)||(vt==="provisioned_scaling"?200:50);D=ft*Le}else{const Le=(ht==null?void 0:ht.dbu_per_1M_tokens)||(vt==="output_token"?3:1);D=ft*Le}break;case"FMAPI_PROPRIETARY":const ze=e.fmapi_quantity||0,Ie=e.fmapi_rate_type||"input_token",Me=Ie==="provisioned_scaling",Re=e.fmapi_endpoint_type||"global",Yt=e.fmapi_context_length||"long",jt=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Ie,Re,Yt):null;if(Me){const Le=(jt==null?void 0:jt.dbu_per_hour)||150;D=ze*Le}else{let Le=jt==null?void 0:jt.dbu_per_1M_tokens;if(!Le)switch(Ie){case"output_token":Le=321.43;break;case"cache_read":Le=8.57;break;case"cache_write":Le=85.71;break;default:Le=21.43}D=ze*Le}break;case"DATABRICKS_APPS":const Ee=(e.databricks_apps_size||"medium").toLowerCase();T={medium:.5,large:1}[Ee]||.5,D=T*_;break;case"AI_PARSE":{const Le={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Jn=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Le[Jn]||62.5);break}case"SHUTTERSTOCK_IMAGEAI":{D=(e.shutterstock_images||0)*.857;break}default:D=0}const F=D*S,Q=H!==void 0&&!isNaN(H)?H:0,N=F+$+Q,se=isNaN(F)?0:F,pe=isNaN($)?0:$,L=isNaN(N)?se:N,ke=isNaN(D)?0:D,De=isNaN(T)?0:T,w=isNaN(S)?.15:S;return{monthlyDBUs:ke,dbuCost:se,vmCost:pe,totalCost:L,unitsUsed:j,dbuPerHour:De,dbuPrice:w,storageCost:Q>0?Q:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function gs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?aE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of gs(Z_,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of gs(Z_,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of gs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of gs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of gs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),p=d.length>0?gs(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=gs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=gs(Qm(l),e.tiersPerCloud);for(const p of u){const f=Hu(t,l),h=f.length>0?gs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[k,A]=m.useState({current:0,total:0}),[S,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),$=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:F,isPricingBundleLoaded:Q,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:ke,getVectorSearchRate:De}=ws();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,F),[j,F]),Y=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ue=m.useMemo(()=>{const M=new Set(w.map(q=>q.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,q,Se)=>{const Pe=Q&&F.modelServingRates?Object.entries(F.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,B])=>{const G=O.split(":")[1];return{id:G,name:G,dbu_per_hour:B.dbu_rate}}):xe;return{cloud:M,region:q,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:he,modelServingGPUTypes:Pe,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,B)=>{if(Q&&F.fmapiDatabricksRates){const G=`${M.toLowerCase()}:${O}:${B}`,ae=F.fmapiDatabricksRates[G];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,B)},getFMAPIProprietaryRate:(O,B,G,ae,je)=>{if(Q&&F.fmapiProprietaryRates){const Ve=ae||"global",pt=je||"all",it=`${M.toLowerCase()}:${O.toLowerCase()}:${B.toLowerCase()}:${Ve}:${pt}:${G}`,Ye=F.fmapiProprietaryRates[it];if(Ye)return{dbu_per_1M_tokens:Ye.is_hourly?void 0:Ye.dbu_rate,dbu_per_hour:Ye.is_hourly?Ye.dbu_rate:void 0}}return ke(O,B,G)},getVectorSearchRate:O=>{if(Q&&F.vectorSearchRates){const B=`${M.toLowerCase()}:${O}`,G=F.vectorSearchRates[B];if(G)return{dbu_per_hour:G.dbu_rate,input_divisor:G.input_divisor}}return De(O)},getInstanceDBURate:O=>Q?Pm(F,M,O):null,getPhotonMultiplier:O=>Q?iE(F,M,O):null,getDBUPrice:O=>Q?Lg(F,M,q,Se,O):null,getDBSQLWarehouseConfig:(O,B)=>Q?cl(F,M,O,B):null}},[X,re,le,he,xe,oe,Q,F,se,L,ke,De]),ve=async M=>{var K,ut,nt,Bt,ft,vt,Ct,ht,ze;const{environment:q,workloadType:Se,config:Pe}=M,O=_e(q.cloud,q.region,q.tier),B={...Pe,workload_type:Se},G=[];if(Se==="DBSQL"&&Pe.dbsql_warehouse_type!=="SERVERLESS"){const Ie=cl(F,q.cloud,Pe.dbsql_warehouse_type||"PRO",Pe.dbsql_warehouse_size||"Small");if(Ie){const Me=Pe.dbsql_driver_pricing_tier||"on_demand",Re=Pe.dbsql_driver_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.driver_instance_type,Me,Re));const Yt=Pe.dbsql_worker_pricing_tier||"on_demand",jt=Pe.dbsql_worker_payment_option||"NA";G.push(pe(q.cloud,q.region,Ie.worker_instance_type,Yt,jt))}}else!Pe.serverless_enabled&&Pe.driver_node_type&&(G.push(pe(q.cloud,q.region,Pe.driver_node_type,Pe.driver_pricing_tier||"on_demand",Pe.driver_payment_option||"NA")),Pe.worker_node_type&&G.push(pe(q.cloud,q.region,Pe.worker_node_type,Pe.worker_pricing_tier||"spot",Pe.worker_payment_option||"NA")));G.length>0&&await Promise.all(G);const ae=performance.now(),je=y8(B,O),Ve=performance.now()-ae,pt=performance.now();let it=null,Ye,ct;const Xe=j8(Se,Pe),It=N8(M);try{const Ie=await fetch(Xe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(It)});if(Ie.ok){const Me=await Ie.json();ct=Me;const Re=Me.data||Me,Yt=((K=Re.dbu_calculation)==null?void 0:K.dbu_per_month)??Re.dbu_per_month??(((ut=Re.dbu_calculation)==null?void 0:ut.dbu_per_hour)??Re.dbu_per_hour??0)*(Pe.hours_per_month||730),jt=((nt=Re.dbu_calculation)==null?void 0:nt.dbu_cost_per_month)??((ft=(Bt=Re.total_cost)==null?void 0:Bt.breakdown)==null?void 0:ft.dbu_cost)??Re.dbu_cost_per_month??Re.dbu_cost??0,Ee=((vt=Re.vm_costs)==null?void 0:vt.vm_cost_per_month)??((ht=(Ct=Re.total_cost)==null?void 0:Ct.breakdown)==null?void 0:ht.vm_cost)??Re.vm_cost_per_month??Re.vm_cost??0;let Nt=0;typeof Re.total_cost=="object"&&Re.total_cost!==null?Nt=Re.total_cost.cost_per_month??jt+Ee:typeof Re.total_cost=="number"?Nt=Re.total_cost:Nt=Re.total_cost_per_month??jt+Ee,it={monthlyDBUs:Yt,dbuCost:jt,vmCost:Ee,totalCost:Nt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:Me,parsed:it})}else{const Me=await Ie.text();try{const Re=JSON.parse(Me);Ye=`HTTP ${Ie.status}: ${((ze=Re.detail)==null?void 0:ze.message)||Re.detail||Re.message||Me}`}catch{Ye=`HTTP ${Ie.status}: ${Me}`}}}catch(Ie){Ye=Ie instanceof Error?Ie.message:"Unknown error"}const U=performance.now()-pt,{discrepancies:Z,totalCostDiffPercent:Te}=P8(je,it,g),$e=Te<=g&&!Ye;return{testCase:M,localResult:je,apiResult:it,apiError:Ye,apiRequestBody:It,apiRawResponse:ct,localTimeMs:Ve,apiTimeMs:U,matches:$e,totalCostDiffPercent:Te,discrepancies:Z}},ot=()=>{D.current=!0,i(!0)},Ze=()=>{D.current=!1,i(!1)},I=()=>{$.current=!0,l(!0),D.current=!1,i(!1)},st=async()=>{for(;D.current&&!$.current;)await new Promise(M=>setTimeout(M,100))},xt=async()=>{r(!0),i(!1),l(!1),D.current=!1,$.current=!1,t([]),A({current:0,total:Y.length});for(let M=0;M[...Pe,Se])}u(null),r(!1),i(!1),l(!1)},lt=async()=>{const{cloud:M,region:q,tier:Se,workloadType:Pe,serverless:O,photon:B,driverNode:G,workerNode:ae,numWorkers:je,runsPerDay:Ve,avgRuntime:pt,daysPerMonth:it,hoursPerMonth:Ye}=S,ct={id:"custom-single",name:`Custom ${Pe} Test`,category:Pe,workloadType:Pe,environment:{cloud:M,region:q,tier:Se},config:{serverless_enabled:O,photon_enabled:B,driver_node_type:G,worker_node_type:ae,num_workers:je,runs_per_day:Ve,avg_runtime_minutes:pt,days_per_month:it,hours_per_month:Ye,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Xe=await ve(ct);t([Xe]),u(null),r(!1)},mt=m.useMemo(()=>{const M=e.filter(G=>G.matches).length,q=e.filter(G=>!G.matches).length,Se=e.filter(G=>G.apiError).length,Pe=e.length>0?e.reduce((G,ae)=>G+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((G,ae)=>G+ae.apiTimeMs,0)/e.length:0,B={};return e.forEach(G=>{const ae=G.testCase.category;B[ae]||(B[ae]={passed:0,failed:0}),G.matches?B[ae].passed++:B[ae].failed++}),{passed:M,failed:q,apiErrors:Se,avgLocalTime:Pe,avgApiTime:O,byCategory:B}},[e]),W=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],q=e.map(G=>{var ae;return[G.testCase.id,G.testCase.name,G.testCase.category,G.testCase.environment.cloud,G.testCase.environment.region,G.testCase.environment.tier,G.matches?"PASS":"FAIL",G.localResult.totalCost.toFixed(2),((ae=G.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",G.totalCostDiffPercent.toFixed(2),G.localTimeMs.toFixed(1),G.apiTimeMs.toFixed(1),G.apiError||""]}),Se=[M.join(","),...q.map(G=>G.map(ae=>`"${ae}"`).join(","))].join(` +`),Pe=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Pe),B=document.createElement("a");B.href=O,B.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,B.click()},P=M=>{const q=new Set(d);q.has(M)?q.delete(M):q.add(M),p(q)},E=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(cD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(ZL,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:W,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(LD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(e3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Ze,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:xt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:lt,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Sp,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:S.cloud,onChange:M=>T({...S,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:S.region,onChange:M=>T({...S,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Km(F,S.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:S.tier,onChange:M=>T({...S,tier:M.target.value}),className:"w-full text-sm",children:Qm(S.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:S.workloadType,onChange:M=>T({...S,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.serverless,onChange:M=>T({...S,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:S.photon,onChange:M=>T({...S,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:S.driverNode,onChange:M=>T({...S,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:S.workerNode,onChange:M=>T({...S,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:Hu(F,S.cloud,S.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:S.numWorkers,onChange:M=>T({...S,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:S.runsPerDay,onChange:M=>T({...S,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:S.avgRuntime,onChange:M=>T({...S,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:S.daysPerMonth,onChange:M=>T({...S,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs($t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(jD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Km(F,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:q=>{q.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:q})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),q]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ue.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Q?"text-green-500":"text-yellow-500"}`,children:[Q?o.jsx(Au,{className:"w-5 h-5"}):o.jsx(ms,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:mt.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:mt.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:mt.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[mt.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[mt.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(mt.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(mt.byCategory).map(([M,{passed:q,failed:Se}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[q," ✓"]}),Se>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx($t.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${k.current/k.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[k.current," / ",k.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:Y.map(M=>{const q=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Pe=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${q&&!q.matches?"bg-red-500/5":""} + ${Pe?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>q&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[q&&(Se?o.jsx(sr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q?E(q.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:q!=null&&q.apiResult?E(q.apiResult.totalCost):q!=null&&q.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:q?o.jsxs("span",{className:q.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[q.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Pe?o.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):q?q.matches?o.jsx(Au,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(C3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),q&&Se&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(q.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:E(q.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:E(q.localResult.totalCost)})]}),q.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",q.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),q.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:q.apiError})}):q.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(q.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:E(q.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:q.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:E(q.apiResult.totalCost)})]})]}):null]})]}),q.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:q.discrepancies.map((O,B)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},B))})]})})]}),q.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(q.apiRawResponse,null,2)})})]}),q.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(q.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:q.testCase.environment,config:q.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(jN,{children:o.jsxs(wi,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(wi,{index:!0,element:o.jsx(u8,{})}),o.jsx(wi,{path:"calculator",element:o.jsx(X_,{})}),o.jsx(wi,{path:"calculator/:id",element:o.jsx(X_,{})}),o.jsx(wi,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(wi,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();rf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(DN,{children:[o.jsx(A8,{}),o.jsx(EP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-r-p5dqge.js b/lakemeter/backend/static/assets/index-r-p5dqge.js new file mode 100644 index 00000000..e0359e70 --- /dev/null +++ b/lakemeter/backend/static/assets/index-r-p5dqge.js @@ -0,0 +1,354 @@ +function r2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var ps=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tb={exports:{}},Wu={},nb={exports:{}},qe={};/** + * @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 pl=Symbol.for("react.element"),s2=Symbol.for("react.portal"),i2=Symbol.for("react.fragment"),o2=Symbol.for("react.strict_mode"),a2=Symbol.for("react.profiler"),l2=Symbol.for("react.provider"),c2=Symbol.for("react.context"),u2=Symbol.for("react.forward_ref"),d2=Symbol.for("react.suspense"),f2=Symbol.for("react.memo"),p2=Symbol.for("react.lazy"),_x=Symbol.iterator;function m2(e){return e===null||typeof e!="object"?null:(e=_x&&e[_x]||e["@@iterator"],typeof e=="function"?e:null)}var rb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sb=Object.assign,ib={};function Oo(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}Oo.prototype.isReactComponent={};Oo.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")};Oo.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ob(){}ob.prototype=Oo.prototype;function Ym(e,t,n){this.props=e,this.context=t,this.refs=ib,this.updater=n||rb}var Xm=Ym.prototype=new ob;Xm.constructor=Ym;sb(Xm,Oo.prototype);Xm.isPureReactComponent=!0;var bx=Array.isArray,ab=Object.prototype.hasOwnProperty,Jm={current:null},lb={key:!0,ref:!0,__self:!0,__source:!0};function cb(e,t,n){var r,s={},i=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)ab.call(t,r)&&!lb.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,pe=B[de];if(0>>1;des(Ae,E))ws(Y,Ae)?(B[de]=Y,B[w]=E,de=w):(B[de]=Ae,B[be]=E,de=be);else if(ws(Y,E))B[de]=Y,B[w]=E,de=w;else break e}}return q}function s(B,q){var E=B.sortIndex-q.sortIndex;return E!==0?E:B.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,p=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=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){for(var q=n(u);q!==null;){if(q.callback===null)r(u);else if(q.startTime<=B)r(u),q.sortIndex=q.expirationTime,t(c,q);else break;q=n(u)}}function S(B){if(v=!1,_(B),!g)if(n(c)!==null)g=!0,ve(R);else{var q=n(u);q!==null&&oe(S,q.startTime-B)}}function R(B,q){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var E=p;try{for(_(q),f=n(c);f!==null&&(!(f.expirationTime>q)||B&&!H());){var de=f.callback;if(typeof de=="function"){f.callback=null,p=f.priorityLevel;var pe=de(f.expirationTime<=q);q=e.unstable_now(),typeof pe=="function"?f.callback=pe:f===n(c)&&r(c),_(q)}else r(c);f=n(c)}if(f!==null)var A=!0;else{var be=n(u);be!==null&&oe(S,be.startTime-q),A=!1}return A}finally{f=null,p=E,h=!1}}var k=!1,T=null,D=-1,z=5,j=-1;function H(){return!(e.unstable_now()-jB||125de?(B.sortIndex=E,t(u,B),n(c)===null&&B===n(u)&&(v?(x(D),D=-1):v=!0,oe(S,E-de))):(B.sortIndex=pe,t(c,B),g||h||(g=!0,ve(R))),B},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(B){var q=p;return function(){var E=p;p=q;try{return B.apply(this,arguments)}finally{p=E}}}})(mb);pb.exports=mb;var E2=pb.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 j2=m,or=E2;function ee(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"),ip=Object.prototype.hasOwnProperty,N2=/^[: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]*$/,kx={},Sx={};function P2(e){return ip.call(Sx,e)?!0:ip.call(kx,e)?!1:N2.test(e)?Sx[e]=!0:(kx[e]=!0,!1)}function R2(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 T2(e,t,n,r){if(t===null||typeof t>"u"||R2(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 Bn(e,t,n,r,s,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var gn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){gn[e]=new Bn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];gn[t]=new Bn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){gn[e]=new Bn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){gn[e]=new Bn(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){gn[e]=new Bn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){gn[e]=new Bn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){gn[e]=new Bn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){gn[e]=new Bn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){gn[e]=new Bn(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(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(eh,th);gn[t]=new Bn(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(eh,th);gn[t]=new Bn(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(eh,th);gn[t]=new Bn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){gn[e]=new Bn(e,1,!1,e.toLowerCase(),null,!1,!1)});gn.xlinkHref=new Bn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){gn[e]=new Bn(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,r){var s=gn.hasOwnProperty(t)?gn[t]:null;(s!==null?s.type!==0:r||!(2l||s[o]!==i[l]){var c=` +`+s[o].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{Fd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?da(e):""}function L2(e){switch(e.tag){case 5:return da(e.type);case 16:return da("Lazy");case 13:return da("Suspense");case 19:return da("SuspenseList");case 0:case 2:case 15:return e=Bd(e.type,!1),e;case 11:return e=Bd(e.type.render,!1),e;case 1:return e=Bd(e.type,!0),e;default:return""}}function cp(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 Qi:return"Fragment";case Ki:return"Portal";case op:return"Profiler";case rh:return"StrictMode";case ap:return"Suspense";case lp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case xb:return(e.displayName||"Context")+".Consumer";case gb:return(e._context.displayName||"Context")+".Provider";case sh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ih:return t=e.displayName||null,t!==null?t:cp(e.type)||"Memo";case Os:t=e._payload,e=e._init;try{return cp(e(t))}catch{}}return null}function A2(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 cp(t);case 8:return t===rh?"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 ti(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function D2(e){var t=yb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){r=""+o,i.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 Kl(e){e._valueTracker||(e._valueTracker=D2(e))}function _b(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=yb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Yc(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 up(e,t){var n=t.checked;return Dt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ex(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ti(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 bb(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function dp(e,t){bb(e,t);var n=ti(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")?fp(e,t.type,n):t.hasOwnProperty("defaultValue")&&fp(e,t.type,ti(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function jx(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 fp(e,t,n){(t!=="number"||Yc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var fa=Array.isArray;function po(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Ql.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fa(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var va={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},M2=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(e){M2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),va[t]=va[e]})});function Cb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||va.hasOwnProperty(e)&&va[e]?(""+t).trim():t+"px"}function Eb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Cb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var O2=Dt({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 hp(e,t){if(t){if(O2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function gp(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 xp=null;function oh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vp=null,mo=null,ho=null;function Rx(e){if(e=gl(e)){if(typeof vp!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Xu(t),vp(e.stateNode,e.type,t))}}function jb(e){mo?ho?ho.push(e):ho=[e]:mo=e}function Nb(){if(mo){var e=mo,t=ho;if(ho=mo=null,Rx(e),t)for(e=0;e>>=0,e===0?32:31-(G2(e)/K2|0)|0}var Yl=64,Xl=4194304;function pa(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 eu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~s;l!==0?r=pa(l):(i&=o,i!==0&&(r=pa(i)))}else o=n&~s,o!==0?r=pa(o):i!==0&&(r=pa(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 ml(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Lr(t),e[t]=n}function J2(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=_a),Bx=" ",Ux=!1;function Kb(e,t){switch(e){case"keyup":return Ej.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Yi=!1;function Nj(e,t){switch(e){case"compositionend":return Qb(t);case"keypress":return t.which!==32?null:(Ux=!0,Bx);case"textInput":return e=t.data,e===Bx&&Ux?null:e;default:return null}}function Pj(e,t){if(Yi)return e==="compositionend"||!mh&&Kb(e,t)?(e=Wb(),Pc=dh=zs=null,Yi=!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=Hx(n)}}function Zb(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zb(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function e1(){for(var e=window,t=Yc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yc(e.document)}return t}function hh(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 Fj(e){var t=e1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zb(n.ownerDocument.documentElement,n)){if(r!==null&&hh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=qx(n,i);var o=qx(n,r);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>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,Xi=null,Sp=null,wa=null,Cp=!1;function Wx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cp||Xi==null||Xi!==Yc(r)||(r=Xi,"selectionStart"in r&&hh(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}),wa&&Ha(wa,r)||(wa=r,r=ru(Sp,"onSelect"),0eo||(e.current=Tp[eo],Tp[eo]=null,eo--)}function _t(e,t){eo++,Tp[eo]=e.current,e.current=t}var ni={},En=oi(ni),$n=oi(!1),Ai=ni;function wo(e,t){var n=e.type.contextTypes;if(!n)return ni;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Hn(e){return e=e.childContextTypes,e!=null}function iu(){wt($n),wt(En)}function Zx(e,t,n){if(En.current!==ni)throw Error(ee(168));_t(En,t),_t($n,n)}function c1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,A2(e)||"Unknown",s));return Dt({},n,r)}function ou(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ni,Ai=En.current,_t(En,e),_t($n,$n.current),!0}function e0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=c1(e,t,Ai),r.__reactInternalMemoizedMergedChildContext=e,wt($n),wt(En),_t(En,e)):wt($n),_t($n,n)}var us=null,Ju=!1,Zd=!1;function u1(e){us===null?us=[e]:us.push(e)}function Yj(e){Ju=!0,u1(e)}function ai(){if(!Zd&&us!==null){Zd=!0;var e=0,t=ut;try{var n=us;for(ut=1;e>=o,s-=o,hs=1<<32-Lr(t)+s|n<D?(z=T,T=null):z=T.sibling;var j=p(x,T,_[D],S);if(j===null){T===null&&(T=z);break}e&&T&&j.alternate===null&&t(x,T),y=i(j,y,D),k===null?R=j:k.sibling=j,k=j,T=z}if(D===_.length)return n(x,T),jt&&vi(x,D),R;if(T===null){for(;D<_.length;D++)T=f(x,_[D],S),T!==null&&(y=i(T,y,D),k===null?R=T:k.sibling=T,k=T);return jt&&vi(x,D),R}for(T=r(x,T);D<_.length;D++)z=h(T,x,D,_[D],S),z!==null&&(e&&z.alternate!==null&&T.delete(z.key===null?D:z.key),y=i(z,y,D),k===null?R=z:k.sibling=z,k=z);return e&&T.forEach(function(H){return t(x,H)}),jt&&vi(x,D),R}function v(x,y,_,S){var R=Jo(_);if(typeof R!="function")throw Error(ee(150));if(_=R.call(_),_==null)throw Error(ee(151));for(var k=R=null,T=y,D=y=0,z=null,j=_.next();T!==null&&!j.done;D++,j=_.next()){T.index>D?(z=T,T=null):z=T.sibling;var H=p(x,T,j.value,S);if(H===null){T===null&&(T=z);break}e&&T&&H.alternate===null&&t(x,T),y=i(H,y,D),k===null?R=H:k.sibling=H,k=H,T=z}if(j.done)return n(x,T),jt&&vi(x,D),R;if(T===null){for(;!j.done;D++,j=_.next())j=f(x,j.value,S),j!==null&&(y=i(j,y,D),k===null?R=j:k.sibling=j,k=j);return jt&&vi(x,D),R}for(T=r(x,T);!j.done;D++,j=_.next())j=h(T,x,D,j.value,S),j!==null&&(e&&j.alternate!==null&&T.delete(j.key===null?D:j.key),y=i(j,y,D),k===null?R=j:k.sibling=j,k=j);return e&&T.forEach(function(X){return t(x,X)}),jt&&vi(x,D),R}function b(x,y,_,S){if(typeof _=="object"&&_!==null&&_.type===Qi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Gl:e:{for(var R=_.key,k=y;k!==null;){if(k.key===R){if(R=_.type,R===Qi){if(k.tag===7){n(x,k.sibling),y=s(k,_.props.children),y.return=x,x=y;break e}}else if(k.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Os&&r0(R)===k.type){n(x,k.sibling),y=s(k,_.props),y.ref=ra(x,k,_),y.return=x,x=y;break e}n(x,k);break}else t(x,k);k=k.sibling}_.type===Qi?(y=Ri(_.props.children,x.mode,S,_.key),y.return=x,x=y):(S=Ic(_.type,_.key,_.props,null,x.mode,S),S.ref=ra(x,y,_),S.return=x,x=S)}return o(x);case Ki:e:{for(k=_.key;y!==null;){if(y.key===k)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=lf(_,x.mode,S),y.return=x,x=y}return o(x);case Os:return k=_._init,b(x,y,k(_._payload),S)}if(fa(_))return g(x,y,_,S);if(Jo(_))return v(x,y,_,S);sc(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=af(_,x.mode,S),y.return=x,x=y),o(x)):n(x,y)}return b}var So=m1(!0),h1=m1(!1),cu=oi(null),uu=null,ro=null,yh=null;function _h(){yh=ro=uu=null}function bh(e){var t=cu.current;wt(cu),e._currentValue=t}function Dp(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 xo(e,t){uu=e,yh=ro=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(zn=!0),e.firstContext=null)}function _r(e){var t=e._currentValue;if(yh!==e)if(e={context:e,memoizedValue:t,next:null},ro===null){if(uu===null)throw Error(ee(308));ro=e,uu.dependencies={lanes:0,firstContext:e}}else ro=ro.next=e;return t}var Ci=null;function wh(e){Ci===null?Ci=[e]:Ci.push(e)}function g1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,wh(t)):(n.next=s.next,s.next=n),t.interleaved=n,ks(e,r)}function ks(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 Is=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function x1(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 xs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ys(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,ks(e,n)}return s=r.interleaved,s===null?(t.next=t,wh(r)):(t.next=s.next,s.next=t),r.interleaved=t,ks(e,n)}function Tc(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,lh(e,n)}}function s0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=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};i===null?s=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 du(e,t,n,r){var s=e.updateQueue;Is=!1;var i=s.firstBaseUpdate,o=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?i=u:o.next=u,o=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var f=s.baseState;o=0,d=u=c=null,l=i;do{var p=l.lane,h=l.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(p=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){f=g.call(h,f,p);break e}f=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,p=typeof g=="function"?g.call(h,f,p):g,p==null)break e;f=Dt({},f,p);break e;case 2:Is=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=s.effects,p===null?s.effects=[l]:p.push(l))}else h={eventTime:h,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=f):d=d.next=h,o|=p;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;p=l,l=p.next,p.next=null,s.lastBaseUpdate=p,s.shared.pending=null}}while(!0);if(d===null&&(c=f),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do o|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Oi|=o,e.lanes=o,e.memoizedState=f}}function i0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tf.transition;tf.transition={};try{e(!1),t()}finally{ut=n,tf.transition=r}}function D1(){return br().memoizedState}function e5(e,t,n){var r=Js(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},M1(e))O1(t,n);else if(n=g1(e,t,n,r),n!==null){var s=In();Ar(n,e,r,s),I1(n,t,r)}}function t5(e,t,n){var r=Js(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(M1(e))O1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,n);if(s.hasEagerState=!0,s.eagerState=l,Mr(l,o)){var c=t.interleaved;c===null?(s.next=s,wh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=g1(e,t,s,r),n!==null&&(s=In(),Ar(n,e,r,s),I1(n,t,r))}}function M1(e){var t=e.alternate;return e===At||t!==null&&t===At}function O1(e,t){ka=pu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lh(e,n)}}var mu={readContext:_r,useCallback:yn,useContext:yn,useEffect:yn,useImperativeHandle:yn,useInsertionEffect:yn,useLayoutEffect:yn,useMemo:yn,useReducer:yn,useRef:yn,useState:yn,useDebugValue:yn,useDeferredValue:yn,useTransition:yn,useMutableSource:yn,useSyncExternalStore:yn,useId:yn,unstable_isNewReconciler:!1},n5={readContext:_r,useCallback:function(e,t){return qr().memoizedState=[e,t===void 0?null:t],e},useContext:_r,useEffect:a0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ac(4194308,4,P1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ac(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ac(4,2,e,t)},useMemo:function(e,t){var n=qr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=qr();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=e5.bind(null,At,e),[r.memoizedState,e]},useRef:function(e){var t=qr();return e={current:e},t.memoizedState=e},useState:o0,useDebugValue:Th,useDeferredValue:function(e){return qr().memoizedState=e},useTransition:function(){var e=o0(!1),t=e[0];return e=Zj.bind(null,e[1]),qr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=At,s=qr();if(jt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),dn===null)throw Error(ee(349));Mi&30||b1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,a0(k1.bind(null,r,i,e),[e]),r.flags|=2048,Ja(9,w1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=qr(),t=dn.identifierPrefix;if(jt){var n=gs,r=hs;n=(r&~(1<<32-Lr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ya++,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[Gr]=t,e[Ga]=r,G1(e,t,!1,!1),t.stateNode=e;e:{switch(o=gp(n,r),n){case"dialog":bt("cancel",e),bt("close",e),s=r;break;case"iframe":case"object":case"embed":bt("load",e),s=r;break;case"video":case"audio":for(s=0;sjo&&(t.flags|=128,r=!0,sa(i,!1),t.lanes=4194304)}else{if(!r)if(e=fu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),sa(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!jt)return _n(t),null}else 2*$t()-i.renderingStartTime>jo&&n!==1073741824&&(t.flags|=128,r=!0,sa(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=$t(),t.sibling=null,n=Tt.current,_t(Tt,r?n&1|2:n&1),t):(_n(t),null);case 22:case 23:return Ih(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?er&1073741824&&(_n(t),t.subtreeFlags&6&&(t.flags|=8192)):_n(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function u5(e,t){switch(xh(t),t.tag){case 1:return Hn(t.type)&&iu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Co(),wt($n),wt(En),Eh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ch(t),null;case 13:if(wt(Tt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));ko()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return wt(Tt),null;case 4:return Co(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Ih(),null;case 24:return null;default:return null}}var oc=!1,wn=!1,d5=typeof WeakSet=="function"?WeakSet:Set,ge=null;function so(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Ft(e,t,r)}else n.current=null}function $p(e,t,n){try{n()}catch(r){Ft(e,t,r)}}var v0=!1;function f5(e,t){if(Ep=tu,e=e1(),hh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=e,p=null;t:for(;;){for(var h;f!==n||s!==0&&f.nodeType!==3||(l=o+s),f!==i||r!==0&&f.nodeType!==3||(c=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(h=f.firstChild)!==null;)p=f,f=h;for(;;){if(f===e)break t;if(p===n&&++u===s&&(l=o),p===i&&++d===r&&(c=o),(h=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(jp={focusedElem:e,selectionRange:n},tu=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Nr(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(S){Ft(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return g=v0,v0=!1,g}function Sa(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&$p(t,n,i)}s=s.next}while(s!==r)}}function td(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 Hp(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 Y1(e){var t=e.alternate;t!==null&&(e.alternate=null,Y1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gr],delete t[Ga],delete t[Rp],delete t[Kj],delete t[Qj])),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 X1(e){return e.tag===5||e.tag===3||e.tag===4}function y0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||X1(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 qp(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=su));else if(r!==4&&(e=e.child,e!==null))for(qp(e,t,n),e=e.sibling;e!==null;)qp(e,t,n),e=e.sibling}function Wp(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(Wp(e,t,n),e=e.sibling;e!==null;)Wp(e,t,n),e=e.sibling}var pn=null,Rr=!1;function As(e,t,n){for(n=n.child;n!==null;)J1(e,t,n),n=n.sibling}function J1(e,t,n){if(Yr&&typeof Yr.onCommitFiberUnmount=="function")try{Yr.onCommitFiberUnmount(Gu,n)}catch{}switch(n.tag){case 5:wn||so(n,t);case 6:var r=pn,s=Rr;pn=null,As(e,t,n),pn=r,Rr=s,pn!==null&&(Rr?(e=pn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):pn.removeChild(n.stateNode));break;case 18:pn!==null&&(Rr?(e=pn,n=n.stateNode,e.nodeType===8?Jd(e.parentNode,n):e.nodeType===1&&Jd(e,n),za(e)):Jd(pn,n.stateNode));break;case 4:r=pn,s=Rr,pn=n.stateNode.containerInfo,Rr=!0,As(e,t,n),pn=r,Rr=s;break;case 0:case 11:case 14:case 15:if(!wn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&$p(n,t,o),s=s.next}while(s!==r)}As(e,t,n);break;case 1:if(!wn&&(so(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Ft(n,t,l)}As(e,t,n);break;case 21:As(e,t,n);break;case 22:n.mode&1?(wn=(r=wn)||n.memoizedState!==null,As(e,t,n),wn=r):As(e,t,n);break;default:As(e,t,n)}}function _0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new d5),t.forEach(function(r){var s=b5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Er(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=o),r&=~i}if(r=s,r=$t()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*m5(r/1960))-r,10e?16:e,$s===null)var r=!1;else{if(e=$s,$s=null,xu=0,Je&6)throw Error(ee(331));var s=Je;for(Je|=4,ge=e.current;ge!==null;){var i=ge,o=i.child;if(ge.flags&16){var l=i.deletions;if(l!==null){for(var c=0;c$t()-Mh?Pi(e,0):Dh|=n),qn(e,t)}function ow(e,t){t===0&&(e.mode&1?(t=Xl,Xl<<=1,!(Xl&130023424)&&(Xl=4194304)):t=1);var n=In();e=ks(e,t),e!==null&&(ml(e,t,n),qn(e,n))}function _5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ow(e,n)}function b5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),ow(e,n)}var aw;aw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||$n.current)zn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return zn=!1,l5(e,t,n);zn=!!(e.flags&131072)}else zn=!1,jt&&t.flags&1048576&&d1(t,lu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Dc(e,t),e=t.pendingProps;var s=wo(t,En.current);xo(t,n),s=Nh(null,t,r,e,s,n);var i=Ph();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Hn(r)?(i=!0,ou(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,kh(t),s.updater=ed,t.stateNode=s,s._reactInternals=t,Op(t,r,e,n),t=Bp(null,t,r,!0,i,n)):(t.tag=0,jt&&i&&gh(t),Mn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Dc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=k5(r),e=Nr(r,e),s){case 0:t=Fp(null,t,r,e,n);break e;case 1:t=h0(null,t,r,e,n);break e;case 11:t=p0(null,t,r,e,n);break e;case 14:t=m0(null,t,r,Nr(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),Fp(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),h0(e,t,r,s,n);case 3:e:{if(H1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,x1(e,t),du(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=Eo(Error(ee(423)),t),t=g0(e,t,r,n,s);break e}else if(r!==s){s=Eo(Error(ee(424)),t),t=g0(e,t,r,n,s);break e}else for(nr=Qs(t.stateNode.containerInfo.firstChild),rr=t,jt=!0,Tr=null,n=h1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ko(),r===s){t=Ss(e,t,n);break e}Mn(e,t,r,n)}t=t.child}return t;case 5:return v1(t),e===null&&Ap(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,o=s.children,Np(r,s)?o=null:i!==null&&Np(r,i)&&(t.flags|=32),$1(e,t),Mn(e,t,o,n),t.child;case 6:return e===null&&Ap(t),null;case 13:return q1(e,t,n);case 4:return Sh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=So(t,null,r,n):Mn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),p0(e,t,r,s,n);case 7:return Mn(e,t,t.pendingProps,n),t.child;case 8:return Mn(e,t,t.pendingProps.children,n),t.child;case 12:return Mn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,o=s.value,_t(cu,r._currentValue),r._currentValue=o,i!==null)if(Mr(i.value,o)){if(i.children===s.children&&!$n.current){t=Ss(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=xs(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Dp(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(ee(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Dp(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Mn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,xo(t,n),s=_r(s),r=r(s),t.flags|=1,Mn(e,t,r,n),t.child;case 14:return r=t.type,s=Nr(r,t.pendingProps),s=Nr(r.type,s),m0(e,t,r,s,n);case 15:return V1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Nr(r,s),Dc(e,t),t.tag=1,Hn(r)?(e=!0,ou(t)):e=!1,xo(t,n),F1(t,r,s),Op(t,r,s,n),Bp(null,t,r,!0,e,n);case 19:return W1(e,t,n);case 22:return z1(e,t,n)}throw Error(ee(156,t.tag))};function lw(e,t){return Mb(e,t)}function w5(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 vr(e,t,n,r){return new w5(e,t,n,r)}function Bh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function k5(e){if(typeof e=="function")return Bh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===sh)return 11;if(e===ih)return 14}return 2}function Zs(e,t){var n=e.alternate;return n===null?(n=vr(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 Ic(e,t,n,r,s,i){var o=2;if(r=e,typeof e=="function")Bh(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Qi:return Ri(n.children,s,i,t);case rh:o=8,s|=8;break;case op:return e=vr(12,n,t,s|2),e.elementType=op,e.lanes=i,e;case ap:return e=vr(13,n,t,s),e.elementType=ap,e.lanes=i,e;case lp:return e=vr(19,n,t,s),e.elementType=lp,e.lanes=i,e;case vb:return rd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gb:o=10;break e;case xb:o=9;break e;case sh:o=11;break e;case ih:o=14;break e;case Os:o=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=vr(o,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ri(e,t,n,r){return e=vr(7,e,r,t),e.lanes=n,e}function rd(e,t,n,r){return e=vr(22,e,r,t),e.elementType=vb,e.lanes=n,e.stateNode={isHidden:!1},e}function af(e,t,n){return e=vr(6,e,null,t),e.lanes=n,e}function lf(e,t,n){return t=vr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function S5(e,t,n,r,s){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=Vd(0),this.expirationTimes=Vd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Uh(e,t,n,r,s,i,o,l,c){return e=new S5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=vr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function C5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(fw)}catch(e){console.error(e)}}fw(),fb.exports=lr;var oo=fb.exports,N0=oo;sp.createRoot=N0.createRoot,sp.hydrateRoot=N0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 el(){return el=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Hh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function T5(){return Math.random().toString(36).substr(2,8)}function R0(e,t){return{usr:e.state,key:e.key,idx:t}}function Xp(e,t,n,r){return n===void 0&&(n=null),el({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Bo(t):t,{state:n,key:t&&t.key||r||T5()})}function _u(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 Bo(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 L5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,o=s.history,l=Hs.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(el({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function f(){l=Hs.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function p(b,x){l=Hs.Push;let y=Xp(v.location,b,x);u=d()+1;let _=R0(y,u),S=v.createHref(y);try{o.pushState(_,"",S)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;s.location.assign(S)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=Hs.Replace;let y=Xp(v.location,b,x);u=d();let _=R0(y,u),S=v.createHref(y);o.replaceState(_,"",S),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:_u(b);return y=y.replace(/ $/,"%20"),Qt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,o)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(P0,f),c=b,()=>{s.removeEventListener(P0,f),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:p,replace:h,go(b){return o.go(b)}};return v}var T0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(T0||(T0={}));function A5(e,t,n){return n===void 0&&(n="/"),D5(e,t,n)}function D5(e,t,n,r){let s=typeof t=="string"?Bo(t):t,i=qh(s.pathname||"/",n);if(i==null)return null;let o=pw(e);M5(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};c.relativePath.startsWith("/")&&(Qt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ei([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Qt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),pw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:z5(u,i.index),routesMeta:d})};return e.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,o);else for(let c of mw(i.path))s(i,o,c)}),t}function mw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let o=mw(r.join("/")),l=[];return l.push(...o.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function M5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:$5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const O5=/^:[\w-]+$/,I5=3,F5=2,B5=1,U5=10,V5=-2,L0=e=>e==="*";function z5(e,t){let n=e.split("/"),r=n.length;return n.some(L0)&&(r+=V5),t&&(r+=F5),n.filter(s=>!L0(s)).reduce((s,i)=>s+(O5.test(i)?I5:i===""?B5:U5),r)}function $5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function H5(e,t,n){let{routesMeta:r}=e,s={},i="/",o=[];for(let l=0;l{let{paramName:p,isOptional:h}=d;if(p==="*"){let v=l[f]||"";o=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[f];return h&&!g?u[p]=void 0:u[p]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function W5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Hh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function G5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hh(!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 qh(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 K5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Q5=e=>K5.test(e);function Y5(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Bo(e):e,i;if(n)if(Q5(n))i=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),Hh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?i=A0(n.substring(1),"/"):i=A0(n,t)}else i=t;return{pathname:i,search:Z5(r),hash:eN(s)}}function A0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function cf(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 X5(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hw(e,t){let n=X5(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function gw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Bo(e):(s=el({},e),Qt(!s.pathname||!s.pathname.includes("?"),cf("?","pathname","search",s)),Qt(!s.pathname||!s.pathname.includes("#"),cf("#","pathname","hash",s)),Qt(!s.search||!s.search.includes("#"),cf("#","search","hash",s)));let i=e===""||s.pathname==="",o=i?"/":s.pathname,l;if(o==null)l=n;else{let f=t.length-1;if(!r&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),f-=1;s.pathname=p.join("/")}l=f>=0?t[f]:"/"}let c=Y5(s,l),u=o&&o!=="/"&&o.endsWith("/"),d=(i||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ei=e=>e.join("/").replace(/\/\/+/g,"/"),J5=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Z5=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,eN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function tN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const xw=["post","put","patch","delete"];new Set(xw);const nN=["get",...xw];new Set(nN);/** + * React Router v6.30.2 + * + * 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 tl(){return tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=gw(u,JSON.parse(o),i,d.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:ei([t,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[t,r,o,i,e])}const oN=m.createContext(null);function aN(e){let t=m.useContext(Ns).outlet;return t&&m.createElement(oN.Provider,{value:e},t)}function _w(){let{matches:e}=m.useContext(Ns),t=e[e.length-1];return t?t.params:{}}function bw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(zi),{matches:s}=m.useContext(Ns),{pathname:i}=yl(),o=JSON.stringify(hw(s,r.v7_relativeSplatPath));return m.useMemo(()=>gw(e,JSON.parse(o),i,n==="path"),[e,o,i,n])}function lN(e,t){return cN(e,t)}function cN(e,t,n,r){vl()||Qt(!1);let{navigator:s}=m.useContext(zi),{matches:i}=m.useContext(Ns),o=i[i.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=yl(),d;if(t){var f;let b=typeof t=="string"?Bo(t):t;c==="/"||(f=b.pathname)!=null&&f.startsWith(c)||Qt(!1),d=b}else d=u;let p=d.pathname||"/",h=p;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+p.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=A5(e,{pathname:h}),v=mN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ei([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ei([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(ld.Provider,{value:{location:tl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Hs.Pop}},v):v}function uN(){let e=vN(),t=tN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const dN=m.createElement(uN,null);class fN extends m.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?m.createElement(Ns.Provider,{value:this.props.routeContext},m.createElement(vw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function pN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Wh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Ns.Provider,{value:t},r)}function mN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Qt(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,f,p)=>{let h,g=!1,v=null,b=null;n&&(h=l&&f.route.id?l[f.route.id]:void 0,v=f.route.errorElement||dN,c&&(u<0&&p===0?(_N("route-fallback"),g=!0,b=null):u===p&&(g=!0,b=f.route.hydrateFallbackElement||null)));let x=t.concat(o.slice(0,p+1)),y=()=>{let _;return h?_=v:g?_=b:f.route.Component?_=m.createElement(f.route.Component,null):f.route.element?_=f.route.element:_=d,m.createElement(pN,{match:f,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?m.createElement(fN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var ww=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ww||{}),kw=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}(kw||{});function hN(e){let t=m.useContext(Wh);return t||Qt(!1),t}function gN(e){let t=m.useContext(rN);return t||Qt(!1),t}function xN(e){let t=m.useContext(Ns);return t||Qt(!1),t}function Sw(e){let t=xN(),n=t.matches[t.matches.length-1];return n.route.id||Qt(!1),n.route.id}function vN(){var e;let t=m.useContext(vw),n=gN(),r=Sw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function yN(){let{router:e}=hN(ww.UseNavigateStable),t=Sw(kw.UseNavigateStable),n=m.useRef(!1);return yw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,tl({fromRouteId:t},i)))},[e,t])}const D0={};function _N(e,t,n){D0[e]||(D0[e]=!0)}function bN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function wN(e){return aN(e.context)}function _i(e){Qt(!1)}function kN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Hs.Pop,navigator:i,static:o=!1,future:l}=e;vl()&&Qt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:o,future:tl({v7_relativeSplatPath:!1},l)}),[c,l,i,o]);typeof r=="string"&&(r=Bo(r));let{pathname:d="/",search:f="",hash:p="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=qh(d,c);return b==null?null:{location:{pathname:b,search:f,hash:p,state:h,key:g},navigationType:s}},[c,d,f,p,h,g,s]);return v==null?null:m.createElement(zi.Provider,{value:u},m.createElement(ld.Provider,{children:n,value:v}))}function SN(e){let{children:t,location:n}=e;return lN(Jp(t),n)}new Promise(()=>{});function Jp(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Jp(r.props.children,i));return}r.type!==_i&&Qt(!1),!r.props.index||!r.props.children||Qt(!1);let o={id:r.props.id||i.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=Jp(r.props.children,i)),n.push(o)}),n}/** + * React Router DOM v6.30.2 + * + * 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 Zp(){return Zp=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function EN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function jN(e,t){return e.button===0&&(!t||t==="_self")&&!EN(e)}const NN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],PN="6";try{window.__reactRouterVersion=PN}catch{}const RN="startTransition",M0=y2[RN];function TN(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=R5({window:s,v5Compat:!0}));let o=i.current,[l,c]=m.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=m.useCallback(f=>{u&&M0?M0(()=>c(f)):c(f)},[c,u]);return m.useLayoutEffect(()=>o.listen(d),[o,d]),m.useEffect(()=>bN(r),[r]),m.createElement(kN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const LN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",AN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:f}=t,p=CN(t,NN),{basename:h}=m.useContext(zi),g,v=!1;if(typeof u=="string"&&AN.test(u)&&(g=u,LN))try{let _=new URL(window.location.href),S=u.startsWith("//")?new URL(_.protocol+u):new URL(u),R=qh(S.pathname,h);S.origin===_.origin&&R!=null?u=R+S.search+S.hash:v=!0}catch{}let b=sN(u,{relative:s}),x=DN(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:f});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",Zp({},p,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var O0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(O0||(O0={}));var I0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(I0||(I0={}));function DN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:o,viewTransition:l}=t===void 0?{}:t,c=cd(),u=yl(),d=bw(e,{relative:o});return m.useCallback(f=>{if(jN(f,n)){f.preventDefault();let p=r!==void 0?r:_u(u)===_u(d);c(e,{replace:p,state:s,preventScrollReset:i,relative:o,viewTransition:l})}},[u,c,d,r,s,n,e,i,o,l])}let MN={data:""},ON=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||MN},IN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,FN=/\/\*[^]*?\*\/| +/g,F0=/\n+/g,Vs=(e,t)=>{let n="",r="",s="";for(let i in e){let o=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+o+";":r+=i[1]=="f"?Vs(o,i):i+"{"+Vs(o,i[1]=="k"?"":t)+"}":typeof o=="object"?r+=Vs(o,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):o!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=Vs.p?Vs.p(i,o):i+":"+o+";")}return n+(t&&s?t+"{"+s+"}":s)+r},os={},Cw=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+Cw(e[n]);return t}return e},BN=(e,t,n,r,s)=>{let i=Cw(e),o=os[i]||(os[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!os[o]){let c=i!==e?e:(u=>{let d,f,p=[{}];for(;d=IN.exec(u.replace(FN,""));)d[4]?p.shift():d[3]?(f=d[3].replace(F0," ").trim(),p.unshift(p[0][f]=p[0][f]||{})):p[0][d[1]]=d[2].replace(F0," ").trim();return p[0]})(e);os[o]=Vs(s?{["@keyframes "+o]:c}:c,n?"":"."+o)}let l=n&&os.g?os.g:null;return n&&(os.g=os[o]),((c,u,d,f)=>{f?u.data=u.data.replace(f,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(os[o],t,r,l),o},UN=(e,t,n)=>e.reduce((r,s,i)=>{let o=t[i];if(o&&o.call){let l=o(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;o=c?"."+c:l&&typeof l=="object"?l.props?"":Vs(l,""):l===!1?"":l}return r+s+(o??"")},"");function ud(e){let t=this||{},n=e.call?e(t.p):e;return BN(n.unshift?n.raw?UN(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,ON(t.target),t.g,t.o,t.k)}let Ew,em,tm;ud.bind({g:1});let Cs=ud.bind({k:1});function VN(e,t,n,r){Vs.p=t,Ew=e,em=n,tm=r}function li(e,t){let n=this||{};return function(){let r=arguments;function s(i,o){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:em&&em()},l),n.o=/ *go\d+/.test(c),l.className=ud.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),tm&&u[0]&&tm(l),Ew(u,l)}return s}}var zN=e=>typeof e=="function",wu=(e,t)=>zN(e)?e(t):e,$N=(()=>{let e=0;return()=>(++e).toString()})(),jw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),HN=20,Gh="default",Nw=(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 Nw(e,{type:e.toasts.find(o=>o.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(o=>o.id===s||s===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 i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+i}))}}},Fc=[],Pw={toasts:[],pausedAt:void 0,settings:{toastLimit:HN}},Kr={},Rw=(e,t=Gh)=>{Kr[t]=Nw(Kr[t]||Pw,e),Fc.forEach(([n,r])=>{n===t&&r(Kr[t])})},Tw=e=>Object.keys(Kr).forEach(t=>Rw(e,t)),qN=e=>Object.keys(Kr).find(t=>Kr[t].toasts.some(n=>n.id===e)),dd=(e=Gh)=>t=>{Rw(t,e)},WN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},GN=(e={},t=Gh)=>{let[n,r]=m.useState(Kr[t]||Pw),s=m.useRef(Kr[t]);m.useEffect(()=>(s.current!==Kr[t]&&r(Kr[t]),Fc.push([t,r]),()=>{let o=Fc.findIndex(([l])=>l===t);o>-1&&Fc.splice(o,1)}),[t]);let i=n.toasts.map(o=>{var l,c,u;return{...e,...e[o.type],...o,removeDelay:o.removeDelay||((l=e[o.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:o.duration||((c=e[o.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||WN[o.type],style:{...e.style,...(u=e[o.type])==null?void 0:u.style,...o.style}}});return{...n,toasts:i}},KN=(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)||$N()}),_l=e=>(t,n)=>{let r=KN(t,e,n);return dd(r.toasterId||qN(r.id))({type:2,toast:r}),r.id},rn=(e,t)=>_l("blank")(e,t);rn.error=_l("error");rn.success=_l("success");rn.loading=_l("loading");rn.custom=_l("custom");rn.dismiss=(e,t)=>{let n={type:3,toastId:e};t?dd(t)(n):Tw(n)};rn.dismissAll=e=>rn.dismiss(void 0,e);rn.remove=(e,t)=>{let n={type:4,toastId:e};t?dd(t)(n):Tw(n)};rn.removeAll=e=>rn.remove(void 0,e);rn.promise=(e,t,n)=>{let r=rn.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?wu(t.success,s):void 0;return i?rn.success(i,{id:r,...n,...n==null?void 0:n.success}):rn.dismiss(r),s}).catch(s=>{let i=t.error?wu(t.error,s):void 0;i?rn.error(i,{id:r,...n,...n==null?void 0:n.error}):rn.dismiss(r)}),e};var QN=1e3,YN=(e,t="default")=>{let{toasts:n,pausedAt:r}=GN(e,t),s=m.useRef(new Map).current,i=m.useCallback((f,p=QN)=>{if(s.has(f))return;let h=setTimeout(()=>{s.delete(f),o({type:4,toastId:f})},p);s.set(f,h)},[]);m.useEffect(()=>{if(r)return;let f=Date.now(),p=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(f-h.createdAt);if(g<0){h.visible&&rn.dismiss(h.id);return}return setTimeout(()=>rn.dismiss(h.id,t),g)});return()=>{p.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let o=m.useCallback(dd(t),[t]),l=m.useCallback(()=>{o({type:5,time:Date.now()})},[o]),c=m.useCallback((f,p)=>{o({type:1,toast:{id:f,height:p}})},[o]),u=m.useCallback(()=>{r&&o({type:6,time:Date.now()})},[r,o]),d=m.useCallback((f,p)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=p||{},b=n.filter(_=>(_.position||v)===(f.position||v)&&_.height),x=b.findIndex(_=>_.id===f.id),y=b.filter((_,S)=>S_.visible).slice(...h?[y+1]:[0,y]).reduce((_,S)=>_+(S.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(f=>{if(f.dismissed)i(f.id,f.removeDelay);else{let p=s.get(f.id);p&&(clearTimeout(p),s.delete(f.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},XN=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,JN=Cs` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,ZN=Cs` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,eP=li("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${XN} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${JN} 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: ${ZN} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,tP=Cs` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,nP=li("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: ${tP} 1s linear infinite; +`,rP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,sP=Cs` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,iP=li("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${rP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${sP} 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; + } +`,oP=li("div")` + position: absolute; +`,aP=li("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,lP=Cs` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,cP=li("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${lP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,uP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(cP,null,t):t:n==="blank"?null:m.createElement(aP,null,m.createElement(nP,{...r}),n!=="loading"&&m.createElement(oP,null,n==="error"?m.createElement(eP,{...r}):m.createElement(iP,{...r})))},dP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,fP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,pP="0%{opacity:0;} 100%{opacity:1;}",mP="0%{opacity:1;} 100%{opacity:0;}",hP=li("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; +`,gP=li("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,xP=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=jw()?[pP,mP]:[dP(n),fP(n)];return{animation:t?`${Cs(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Cs(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},vP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?xP(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(uP,{toast:e}),o=m.createElement(gP,{...e.ariaProps},wu(e.message,e));return m.createElement(hP,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:o}):m.createElement(m.Fragment,null,i,o))});VN(m.createElement);var yP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(o=>{if(o){let l=()=>{let c=o.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},_P=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:jw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},bP=ud` + z-index: 9999; + > * { + pointer-events: auto; + } +`,cc=16,wP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:o,containerClassName:l})=>{let{toasts:c,handlers:u}=YN(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:cc,left:cc,right:cc,bottom:cc,pointerEvents:"none",...o},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let f=d.position||t,p=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=_P(f,p);return m.createElement(yP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?bP:"",style:h},d.type==="custom"?wu(d.message,d):s?s(d):m.createElement(vP,{toast:d,position:f}))}))},$e=rn;const Kh=m.createContext({});function Qh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const fd=m.createContext(null),Yh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class kP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function SP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Yh);return m.useInsertionEffect(()=>{const{width:o,height:l,top:c,left:u}=s.current;if(t||!r.current||!o||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${o}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),a.jsx(kP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const CP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:o})=>{const l=Qh(EP),c=m.useId(),u=m.useCallback(f=>{l.set(f,!0);for(const p of l.values())if(!p)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:f=>(l.set(f,!1),()=>l.delete(f))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((f,p)=>l.set(p,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),o==="popLayout"&&(e=a.jsx(SP,{isPresent:n,children:e})),a.jsx(fd.Provider,{value:d,children:e})};function EP(){return new Map}function Lw(e=!0){const t=m.useContext(fd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const o=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,o]:[!0]}const uc=e=>e.key||"";function B0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Xh=typeof window<"u",Aw=Xh?m.useLayoutEffect:m.useEffect,nm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:o=!1})=>{const[l,c]=Lw(o),u=m.useMemo(()=>B0(e),[e]),d=o&&!l?[]:u.map(uc),f=m.useRef(!0),p=m.useRef(u),h=Qh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Aw(()=>{f.current=!1,p.current=u;for(let S=0;S{const R=uc(S),k=o&&!l?!1:u===b||d.includes(R),T=()=>{if(h.has(R))h.set(R,!0);else return;let D=!0;h.forEach(z=>{z||(D=!1)}),D&&(_==null||_(),x(p.current),o&&(c==null||c()),r&&r())};return a.jsx(CP,{isPresent:k,initial:!f.current||n?void 0:!1,custom:k?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:k?void 0:T,children:S},R)})})},sr=e=>e;let Dw=sr;function Jh(e){let t;return()=>(t===void 0&&(t=e()),t)}const No=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},vs=e=>e*1e3,ys=e=>e/1e3,jP={useManualTiming:!1};function NP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(o)}const c={schedule:(u,d=!1,f=!1)=>{const h=f&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(o=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const dc=["read","resolveKeyframes","update","preRender","render","postRender"],PP=40;function Mw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,o=dc.reduce((x,y)=>(x[y]=NP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:f,postRender:p}=o,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,PP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),f.process(s),p.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:dc.reduce((x,y)=>{const _=o[y];return x[y]=(S,R=!1,k=!1)=>(n||g(),_.schedule(S,R,k)),x},{}),cancel:x=>{for(let y=0;yU0[e].some(n=>!!t[n])};function RP(e){for(const t in e)Po[t]={...Po[t],...e[t]}}const TP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ku(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||TP.has(e)}let Iw=e=>!ku(e);function LP(e){e&&(Iw=t=>t.startsWith("on")?!ku(t):e(t))}try{LP(require("@emotion/is-prop-valid").default)}catch{}function AP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Iw(s)||n===!0&&ku(s)||!t&&!ku(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function DP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const pd=m.createContext({});function nl(e){return typeof e=="string"||Array.isArray(e)}function md(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Zh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],eg=["initial",...Zh];function hd(e){return md(e.animate)||eg.some(t=>nl(e[t]))}function Fw(e){return!!(hd(e)||e.variants)}function MP(e,t){if(hd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||nl(n)?n:void 0,animate:nl(r)?r:void 0}}return e.inherit!==!1?t:{}}function OP(e){const{initial:t,animate:n}=MP(e,m.useContext(pd));return m.useMemo(()=>({initial:t,animate:n}),[V0(t),V0(n)])}function V0(e){return Array.isArray(e)?e.join(" "):e}const IP=Symbol.for("motionComponentSymbol");function ao(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function FP(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ao(n)&&(n.current=r))},[t])}const tg=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),BP="framerAppearId",Bw="data-"+tg(BP),{schedule:ng}=Mw(queueMicrotask,!1),Uw=m.createContext({});function UP(e,t,n,r,s){var i,o;const{visualElement:l}=m.useContext(pd),c=m.useContext(Ow),u=m.useContext(fd),d=m.useContext(Yh).reducedMotion,f=m.useRef(null);r=r||c.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const p=f.current,h=m.useContext(Uw);p&&!p.projection&&s&&(p.type==="html"||p.type==="svg")&&VP(f.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{p&&g.current&&p.update(n,u)});const v=n[Bw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,v)));return Aw(()=>{p&&(g.current=!0,window.MotionIsMounted=!0,p.updateFeatures(),ng.render(p.render),b.current&&p.animationState&&p.animationState.animateChanges())}),m.useEffect(()=>{p&&(!b.current&&p.animationState&&p.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),p}function VP(e,t,n,r){const{layoutId:s,layout:i,drag:o,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Vw(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!o||l&&ao(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function Vw(e){if(e)return e.options.allowProjection!==!1?e.projection:Vw(e.parent)}function zP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,o;e&&RP(e);function l(u,d){let f;const p={...m.useContext(Yh),...u,layoutId:$P(u)},{isStatic:h}=p,g=OP(u),v=r(u,h);if(!h&&Xh){HP();const b=qP(p);f=b.MeasureLayout,g.visualElement=UP(s,v,p,t,b.ProjectionNode)}return a.jsxs(pd.Provider,{value:g,children:[f&&g.visualElement?a.jsx(f,{visualElement:g.visualElement,...p}):null,n(s,u,FP(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(o=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&o!==void 0?o:""})`}`;const c=m.forwardRef(l);return c[IP]=s,c}function $P({layoutId:e}){const t=m.useContext(Kh).id;return t&&e!==void 0?t+"-"+e:e}function HP(e,t){m.useContext(Ow).strict}function qP(e){const{drag:t,layout:n}=Po;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const WP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function rg(e){return typeof e!="string"||e.includes("-")?!1:!!(WP.indexOf(e)>-1||/[A-Z]/u.test(e))}function z0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function sg(e,t,n,r){if(typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=z0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const rm=e=>Array.isArray(e),GP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),KP=e=>rm(e)?e[e.length-1]||0:e,Sn=e=>!!(e&&e.getVelocity);function Bc(e){const t=Sn(e)?e.get():e;return GP(t)?t.toValue():t}function QP({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const o={latestValues:YP(r,s,i,e),renderState:t()};return n&&(o.onMount=l=>n({props:r,current:l,...o}),o.onUpdate=l=>n(l)),o}const zw=e=>(t,n)=>{const r=m.useContext(pd),s=m.useContext(fd),i=()=>QP(e,t,r,s);return n?i():Qh(i)};function YP(e,t,n,r){const s={},i=r(e,{});for(const p in i)s[p]=Bc(i[p]);let{initial:o,animate:l}=e;const c=hd(e),u=Fw(e);t&&u&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const f=d?l:o;if(f&&typeof f!="boolean"&&!md(f)){const p=Array.isArray(f)?f:[f];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Hw=$w("--"),XP=$w("var(--"),ig=e=>XP(e)?JP.test(e.split("/*")[0].trim()):!1,JP=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,qw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Es=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},rl={...Vo,transform:e=>Es(0,1,e)},fc={...Vo,default:1},bl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Ms=bl("deg"),Jr=bl("%"),Re=bl("px"),ZP=bl("vh"),eR=bl("vw"),$0={...Jr,parse:e=>Jr.parse(e)/100,transform:e=>Jr.transform(e*100)},tR={borderWidth:Re,borderTopWidth:Re,borderRightWidth:Re,borderBottomWidth:Re,borderLeftWidth:Re,borderRadius:Re,radius:Re,borderTopLeftRadius:Re,borderTopRightRadius:Re,borderBottomRightRadius:Re,borderBottomLeftRadius:Re,width:Re,maxWidth:Re,height:Re,maxHeight:Re,top:Re,right:Re,bottom:Re,left:Re,padding:Re,paddingTop:Re,paddingRight:Re,paddingBottom:Re,paddingLeft:Re,margin:Re,marginTop:Re,marginRight:Re,marginBottom:Re,marginLeft:Re,backgroundPositionX:Re,backgroundPositionY:Re},nR={rotate:Ms,rotateX:Ms,rotateY:Ms,rotateZ:Ms,scale:fc,scaleX:fc,scaleY:fc,scaleZ:fc,skew:Ms,skewX:Ms,skewY:Ms,distance:Re,translateX:Re,translateY:Re,translateZ:Re,x:Re,y:Re,z:Re,perspective:Re,transformPerspective:Re,opacity:rl,originX:$0,originY:$0,originZ:Re},H0={...Vo,transform:Math.round},og={...tR,...nR,zIndex:H0,size:Re,fillOpacity:rl,strokeOpacity:rl,numOctaves:H0},rR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},sR=Uo.length;function iR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Ww=()=>({...cg(),attrs:{}}),ug=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Gw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Kw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Qw(e,t,n,r){Gw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Kw.has(s)?s:tg(s),t.attrs[s])}const Su={};function uR(e){Object.assign(Su,e)}function Yw(e,{layout:t,layoutId:n}){return $i.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Su[e]||e==="opacity")}function dg(e,t,n){var r;const{style:s}=e,i={};for(const o in s)(Sn(s[o])||t.style&&Sn(t.style[o])||Yw(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[o]=s[o]);return i}function Xw(e,t,n){const r=dg(e,t,n);for(const s in e)if(Sn(e[s])||Sn(t[s])){const i=Uo.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function dR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const W0=["x","y","width","height","cx","cy","r"],fR={useVisualState:zw({scrapeMotionValuesFromProps:Xw,createRenderState:Ww,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if($i.has(l)){i=!0;break}}if(!i)return;let o=!t;if(t)for(let l=0;l{dR(n,r),kt.render(()=>{lg(r,s,ug(n.tagName),e.transformTemplate),Qw(n,r)})})}})},pR={useVisualState:zw({scrapeMotionValuesFromProps:dg,createRenderState:cg})};function Jw(e,t,n){for(const r in t)!Sn(t[r])&&!Yw(r,n)&&(e[r]=t[r])}function mR({transformTemplate:e},t){return m.useMemo(()=>{const n=cg();return ag(n,t,e),Object.assign({},n.vars,n.style)},[t])}function hR(e,t){const n=e.style||{},r={};return Jw(r,n,e),Object.assign(r,mR(e,t)),r}function gR(e,t){const n={},r=hR(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function xR(e,t,n,r){const s=m.useMemo(()=>{const i=Ww();return lg(i,t,ug(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Jw(i,e.style,e),s.style={...i,...s.style}}return s}function vR(e=!1){return(n,r,s,{latestValues:i},o)=>{const c=(rg(n)?xR:gR)(r,i,o,n),u=AP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:f}=r,p=m.useMemo(()=>Sn(f)?f.get():f,[f]);return m.createElement(n,{...d,children:p})}}function yR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const o={...rg(r)?fR:pR,preloadedFeatures:e,useRender:vR(s),createVisualElement:t,Component:r};return zP(o)}}function Zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class bR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(_R()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class wR extends bR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function fg(e,t){return e?e[t]||e.default||e:void 0}const sm=2e4;function ek(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=sm?1/0:t}function pg(e){return typeof e=="function"}function G0(e,t){e.timeline=t,e.onfinish=null}const mg=e=>Array.isArray(e)&&typeof e[0]=="number",kR={linearEasing:void 0};function SR(e,t){const n=Jh(e);return()=>{var r;return(r=kR[t])!==null&&r!==void 0?r:n()}}const Cu=SR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,im={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ha([0,.65,.55,1]),circOut:ha([.55,0,1,.45]),backIn:ha([.31,.01,.66,-.59]),backOut:ha([.33,1.53,.69,.99])};function rk(e,t){if(e)return typeof e=="function"&&Cu()?tk(e,t):mg(e)?ha(e):Array.isArray(e)?e.map(n=>rk(n,t)||im.easeOut):im[e]}const jr={x:!1,y:!1};function sk(){return jr.x||jr.y}function CR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ik(e,t){const n=CR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function K0(e){return t=>{t.pointerType==="touch"||sk()||e(t)}}function ER(e,t,n={}){const[r,s,i]=ik(e,n),o=K0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=K0(f=>{u(f),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",o,s)}),i}const ok=(e,t)=>t?e===t?!0:ok(e,t.parentElement):!1,hg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,jR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function NR(e){return jR.has(e.tagName)||e.tabIndex!==-1}const ga=new WeakSet;function Q0(e){return t=>{t.key==="Enter"&&e(t)}}function df(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const PR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Q0(()=>{if(ga.has(n))return;df(n,"down");const s=Q0(()=>{df(n,"up")}),i=()=>df(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Y0(e){return hg(e)&&!sk()}function RR(e,t,n={}){const[r,s,i]=ik(e,n),o=l=>{const c=l.currentTarget;if(!Y0(l)||ga.has(c))return;ga.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",p),!(!Y0(h)||!ga.has(c))&&(ga.delete(c),typeof u=="function"&&u(h,{success:g}))},f=h=>{d(h,n.useGlobalTarget||ok(c,h.target))},p=h=>{d(h,!1)};window.addEventListener("pointerup",f,s),window.addEventListener("pointercancel",p,s)};return r.forEach(l=>{!NR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,s),l.addEventListener("focus",u=>PR(u,s),s)}),i}function TR(e){return e==="x"||e==="y"?jr[e]?null:(jr[e]=!0,()=>{jr[e]=!1}):jr.x||jr.y?null:(jr.x=jr.y=!0,()=>{jr.x=jr.y=!1})}const ak=new Set(["width","height","top","left","right","bottom",...Uo]);let Uc;function LR(){Uc=void 0}const Zr={now:()=>(Uc===void 0&&Zr.set(mn.isProcessing||jP.useManualTiming?mn.timestamp:performance.now()),Uc),set:e=>{Uc=e,queueMicrotask(LR)}};function gg(e,t){e.indexOf(t)===-1&&e.push(t)}function xg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class vg{constructor(){this.subscriptions=[]}add(t){return gg(this.subscriptions,t),()=>xg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class DR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=Zr.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Zr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=AR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new vg);const r=this.events[t].add(n);return t==="change"?()=>{r(),kt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Zr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>X0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,X0);return lk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function sl(e,t){return new DR(e,t)}function MR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,sl(n))}function OR(e,t){const n=gd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const o in i){const l=KP(i[o]);MR(e,o,l)}}function IR(e){return!!(Sn(e)&&e.add)}function om(e,t){const n=e.getValue("willChange");if(IR(n))return n.add(t)}function ck(e){return e.props[Bw]}const uk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,FR=1e-7,BR=12;function UR(e,t,n,r,s){let i,o,l=0;do o=t+(n-t)/2,i=uk(o,r,s)-e,i>0?n=o:t=o;while(Math.abs(i)>FR&&++lUR(i,0,1,e,n);return i=>i===0||i===1?i:uk(s(i),t,r)}const dk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,fk=e=>t=>1-e(1-t),pk=wl(.33,1.53,.69,.99),yg=fk(pk),mk=dk(yg),hk=e=>(e*=2)<1?.5*yg(e):.5*(2-Math.pow(2,-10*(e-1))),_g=e=>1-Math.sin(Math.acos(e)),gk=fk(_g),xk=dk(_g),vk=e=>/^0[^.\s]+$/u.test(e);function VR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||vk(e):!0}const ja=e=>Math.round(e*1e5)/1e5,bg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function zR(e){return e==null}const $R=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wg=(e,t)=>n=>!!(typeof n=="string"&&$R.test(n)&&n.startsWith(e)||t&&!zR(n)&&Object.prototype.hasOwnProperty.call(n,t)),yk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,o,l]=r.match(bg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},HR=e=>Es(0,255,e),ff={...Vo,transform:e=>Math.round(HR(e))},ji={test:wg("rgb","red"),parse:yk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+ff.transform(e)+", "+ff.transform(t)+", "+ff.transform(n)+", "+ja(rl.transform(r))+")"};function qR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const am={test:wg("#"),parse:qR,transform:ji.transform},lo={test:wg("hsl","hue"),parse:yk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Jr.transform(ja(t))+", "+Jr.transform(ja(n))+", "+ja(rl.transform(r))+")"},bn={test:e=>ji.test(e)||am.test(e)||lo.test(e),parse:e=>ji.test(e)?ji.parse(e):lo.test(e)?lo.parse(e):am.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ji.transform(e):lo.transform(e)},WR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function GR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(bg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(WR))===null||n===void 0?void 0:n.length)||0)>0}const _k="number",bk="color",KR="var",QR="var(",J0="${}",YR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function il(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(YR,c=>(bn.test(c)?(r.color.push(i),s.push(bk),n.push(bn.parse(c))):c.startsWith(QR)?(r.var.push(i),s.push(KR),n.push(c)):(r.number.push(i),s.push(_k),n.push(parseFloat(c))),++i,J0)).split(J0);return{values:n,split:l,indexes:r,types:s}}function wk(e){return il(e).values}function kk(e){const{split:t,types:n}=il(e),r=t.length;return s=>{let i="";for(let o=0;otypeof e=="number"?0:e;function JR(e){const t=wk(e);return kk(e)(t.map(XR))}const si={test:GR,parse:wk,createTransformer:kk,getAnimatableNone:JR},ZR=new Set(["brightness","contrast","saturate","opacity"]);function eT(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(bg)||[];if(!r)return e;const s=n.replace(r,"");let i=ZR.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const tT=/\b([a-z-]*)\(.*?\)/gu,lm={...si,getAnimatableNone:e=>{const t=e.match(tT);return t?t.map(eT).join(" "):e}},nT={...og,color:bn,backgroundColor:bn,outlineColor:bn,fill:bn,stroke:bn,borderColor:bn,borderTopColor:bn,borderRightColor:bn,borderBottomColor:bn,borderLeftColor:bn,filter:lm,WebkitFilter:lm},kg=e=>nT[e];function Sk(e,t){let n=kg(e);return n!==lm&&(n=si),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const rT=new Set(["auto","none","0"]);function sT(e,t,n){let r=0,s;for(;re===Vo||e===Re,ev=(e,t)=>parseFloat(e.split(", ")[t]),tv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return ev(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?ev(i[1],e):0}},iT=new Set(["x","y","z"]),oT=Uo.filter(e=>!iT.has(e));function aT(e){const t=[];return oT.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Ro={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:tv(4,13),y:tv(5,14)};Ro.translateX=Ro.x;Ro.translateY=Ro.y;const Ti=new Set;let cm=!1,um=!1;function Ck(){if(um){const e=Array.from(Ti).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=aT(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,o])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}um=!1,cm=!1,Ti.forEach(e=>e.complete()),Ti.clear()}function Ek(){Ti.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(um=!0)})}function lT(){Ek(),Ck()}class Sg{constructor(t,n,r,s,i,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ti.add(this),cm||(cm=!0,kt.read(Ek),kt.resolveKeyframes(Ck))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),cT=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function uT(e){const t=cT.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Nk(e,t,n=1){const[r,s]=uT(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const o=i.trim();return jk(o)?parseFloat(o):o}return ig(s)?Nk(s,t,n+1):s}const Pk=e=>t=>t.test(e),dT={test:e=>e==="auto",parse:e=>e},Rk=[Vo,Re,Jr,Ms,eR,ZP,dT],nv=e=>Rk.find(Pk(e));class Tk extends Sg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const rv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(si.test(e)||e==="0")&&!e.startsWith("url("));function fT(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function xd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(mT),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const hT=40;class Lk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:o="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Zr.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:o,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>hT?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&lT(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Zr.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:o,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!pT(t,r,s,i))if(o)this.options.duration=0;else{c&&c(xd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Lt=(e,t,n)=>e+(t-e)*n;function pf(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function gT({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,o=0;if(!t)s=i=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=pf(c,l,e+1/3),i=pf(c,l,e),o=pf(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(o*255),alpha:r}}function Eu(e,t){return n=>n>0?t:e}const mf=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},xT=[am,ji,lo],vT=e=>xT.find(t=>t.test(e));function sv(e){const t=vT(e);if(!t)return!1;let n=t.parse(e);return t===lo&&(n=gT(n)),n}const iv=(e,t)=>{const n=sv(e),r=sv(t);if(!n||!r)return Eu(e,t);const s={...n};return i=>(s.red=mf(n.red,r.red,i),s.green=mf(n.green,r.green,i),s.blue=mf(n.blue,r.blue,i),s.alpha=Lt(n.alpha,r.alpha,i),ji.transform(s))},yT=(e,t)=>n=>t(e(n)),kl=(...e)=>e.reduce(yT),dm=new Set(["none","hidden"]);function _T(e,t){return dm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function bT(e,t){return n=>Lt(e,t,n)}function Cg(e){return typeof e=="number"?bT:typeof e=="string"?ig(e)?Eu:bn.test(e)?iv:ST:Array.isArray(e)?Ak:typeof e=="object"?bn.test(e)?iv:wT:Eu}function Ak(e,t){const n=[...e],r=n.length,s=e.map((i,o)=>Cg(i)(i,t[o]));return i=>{for(let o=0;o{for(const i in r)n[i]=r[i](s);return n}}function kT(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=si.createTransformer(t),r=il(e),s=il(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?dm.has(e)&&!s.values.length||dm.has(t)&&!r.values.length?_T(e,t):kl(Ak(kT(r,s),s.values),n):Eu(e,t)};function Dk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Lt(e,t,n):Cg(e)(e,t)}const CT=5;function Mk(e,t,n){const r=Math.max(t-CT,0);return lk(n-e(r),t-r)}const It={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},hf=.001;function ET({duration:e=It.duration,bounce:t=It.bounce,velocity:n=It.velocity,mass:r=It.mass}){let s,i,o=1-t;o=Es(It.minDamping,It.maxDamping,o),e=Es(It.minDuration,It.maxDuration,ys(e)),o<1?(s=u=>{const d=u*o,f=d*e,p=d-n,h=fm(u,o),g=Math.exp(-f);return hf-p/h*g},i=u=>{const f=u*o*e,p=f*n+n,h=Math.pow(o,2)*Math.pow(u,2)*e,g=Math.exp(-f),v=fm(Math.pow(u,2),o);return(-s(u)+hf>0?-1:1)*((p-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),f=(u-n)*e+1;return-hf+d*f},i=u=>{const d=Math.exp(-u*e),f=(n-u)*(e*e);return d*f});const l=5/e,c=NT(s,i,l);if(e=vs(e),isNaN(c))return{stiffness:It.stiffness,damping:It.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:o*2*Math.sqrt(r*u),duration:e}}}const jT=12;function NT(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function TT(e){let t={velocity:It.velocity,stiffness:It.stiffness,damping:It.damping,mass:It.mass,isResolvedFromDuration:!1,...e};if(!ov(e,RT)&&ov(e,PT))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*Es(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:It.mass,stiffness:s,damping:i}}else{const n=ET(e);t={...t,...n,mass:It.mass},t.isResolvedFromDuration=!0}return t}function Ok(e=It.visualDuration,t=It.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:f,velocity:p,isResolvedFromDuration:h}=TT({...n,velocity:-ys(n.velocity||0)}),g=p||0,v=u/(2*Math.sqrt(c*d)),b=o-i,x=ys(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?It.restSpeed.granular:It.restSpeed.default),s||(s=y?It.restDelta.granular:It.restDelta.default);let _;if(v<1){const R=fm(x,v);_=k=>{const T=Math.exp(-v*x*k);return o-T*((g+v*x*b)/R*Math.sin(R*k)+b*Math.cos(R*k))}}else if(v===1)_=R=>o-Math.exp(-x*R)*(b+(g+x*b)*R);else{const R=x*Math.sqrt(v*v-1);_=k=>{const T=Math.exp(-v*x*k),D=Math.min(R*k,300);return o-T*((g+v*x*b)*Math.sinh(D)+R*b*Math.cosh(D))/R}}const S={calculatedDuration:h&&f||null,next:R=>{const k=_(R);if(h)l.done=R>=f;else{let T=0;v<1&&(T=R===0?vs(g):Mk(_,R,k));const D=Math.abs(T)<=r,z=Math.abs(o-k)<=s;l.done=D&&z}return l.value=l.done?o:k,l},toString:()=>{const R=Math.min(ek(S),sm),k=tk(T=>S.next(R*T).value,R,30);return R+"ms "+k}};return S}function av({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:o,min:l,max:c,restDelta:u=.5,restSpeed:d}){const f=e[0],p={done:!1,value:f},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),S=D=>{const z=y(D),j=_(D);p.done=Math.abs(z)<=u,p.value=p.done?x:j};let R,k;const T=D=>{h(p.value)&&(R=D,k=Ok({keyframes:[p.value,g(p.value)],velocity:Mk(_,D,p.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return T(0),{calculatedDuration:null,next:D=>{let z=!1;return!k&&R===void 0&&(z=!0,S(D),T(D)),R!==void 0&&D>=R?k.next(D-R):(!z&&S(D),p)}}}const LT=wl(.42,0,1,1),AT=wl(0,0,.58,1),Ik=wl(.42,0,.58,1),DT=e=>Array.isArray(e)&&typeof e[0]!="number",MT={linear:sr,easeIn:LT,easeInOut:Ik,easeOut:AT,circIn:_g,circInOut:xk,circOut:gk,backIn:yg,backInOut:mk,backOut:pk,anticipate:hk},lv=e=>{if(mg(e)){Dw(e.length===4);const[t,n,r,s]=e;return wl(t,n,r,s)}else if(typeof e=="string")return MT[e];return e};function OT(e,t,n){const r=[],s=n||Dk,i=e.length-1;for(let o=0;ot[0];if(i===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=OT(t,r,s),c=l.length,u=d=>{if(o&&d1)for(;fu(Es(e[0],e[i-1],d)):u}function FT(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=No(0,t,r);e.push(Lt(n,1,s))}}function BT(e){const t=[0];return FT(t,e.length-1),t}function UT(e,t){return e.map(n=>n*t)}function VT(e,t){return e.map(()=>t||Ik).splice(0,e.length-1)}function ju({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=DT(r)?r.map(lv):lv(r),i={done:!1,value:t[0]},o=UT(n&&n.length===t.length?n:BT(t),e),l=IT(o,t,{ease:Array.isArray(s)?s:VT(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const zT=e=>{const t=({timestamp:n})=>e(n);return{start:()=>kt.update(t,!0),stop:()=>ri(t),now:()=>mn.isProcessing?mn.timestamp:Zr.now()}},$T={decay:av,inertia:av,tween:ju,keyframes:ju,spring:Ok},HT=e=>e/100;class Eg extends Lk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,o=(s==null?void 0:s.KeyframeResolver)||Sg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new o(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:o=0}=this.options,l=pg(n)?n:$T[n]||ju;let c,u;l!==ju&&typeof t[0]!="number"&&(c=kl(HT,Dk(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=ek(d));const{calculatedDuration:f}=d,p=f+s,h=p*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:f,resolvedDuration:p,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:o,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:f}=r;if(this.startTime===null)return i.next(0);const{delay:p,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-p*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,S=i;if(h){const D=Math.min(this.currentTime,d)/f;let z=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&z--,z=Math.min(z,h+1),!!(z%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/f)):g==="mirror"&&(S=o)),_=Es(0,1,j)*f}const R=y?{done:!1,value:c[0]}:S.next(_);l&&(R.value=l(R.value));let{done:k}=R;!y&&u!==null&&(k=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return T&&s!==void 0&&(R.value=xd(c,this.options,s)),b&&b(R.value),T&&this.finish(),R}get duration(){const{resolved:t}=this;return t?ys(t.calculatedDuration):0}get time(){return ys(this.currentTime)}set time(t){t=vs(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=ys(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=zT,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const qT=new Set(["opacity","clipPath","filter","transform"]);function WT(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:o="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=rk(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:o==="reverse"?"alternate":"normal"})}const GT=Jh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Nu=10,KT=2e4;function QT(e){return pg(e.type)||e.type==="spring"||!nk(e.ease)}function YT(e,t){const n=new Eg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(o,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:o,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Cu()&&XT(i)&&(i=Fk[i]),QT(this.options)){const{onComplete:f,onUpdate:p,motionValue:h,element:g,...v}=this.options,b=YT(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,o="keyframes"}const d=WT(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(G0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:f}=this.options;l.set(xd(t,this.options,n)),f&&f(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:o,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return ys(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return ys(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=vs(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return sr;const{animation:r}=n;G0(r,t)}return sr}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:o,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:f,element:p,...h}=this.options,g=new Eg({...h,keyframes:r,duration:s,type:i,ease:o,times:l,isGenerator:!0}),v=vs(this.time);u.setWithVelocity(g.sample(v-Nu).value,g.sample(v).value,Nu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:o,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return GT()&&r&&qT.has(r)&&!c&&!u&&!s&&i!=="mirror"&&o!==0&&l!=="inertia"}}const JT={type:"spring",stiffness:500,damping:25,restSpeed:10},ZT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),eL={type:"keyframes",duration:.8},tL={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},nL=(e,{keyframes:t})=>t.length>2?eL:$i.has(e)?e.startsWith("scale")?ZT(t[1]):JT:tL;function rL({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:o,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const jg=(e,t,n,r={},s,i)=>o=>{const l=fg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-vs(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:p=>{t.set(p),l.onUpdate&&l.onUpdate(p)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};rL(l)||(d={...d,...nL(e,d)}),d.duration&&(d.duration=vs(d.duration)),d.repeatDelay&&(d.repeatDelay=vs(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let f=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(f=!0)),f&&!i&&t.get()!==void 0){const p=xd(d.keyframes,l);if(p!==void 0)return kt.update(()=>{d.onUpdate(p),d.onComplete()}),new wR([])}return!i&&cv.supports(d)?new cv(d):new Eg(d)};function sL({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Bk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:o=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(o=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const f in c){const p=e.getValue(f,(i=e.latestValues[f])!==null&&i!==void 0?i:null),h=c[f];if(h===void 0||d&&sL(d,f))continue;const g={delay:n,...fg(o||{},f)};let v=!1;if(window.MotionHandoffAnimation){const x=ck(e);if(x){const y=window.MotionHandoffAnimation(x,f,kt);y!==null&&(g.startTime=y,v=!0)}}om(e,f),p.start(jg(f,p,h,e.shouldReduceMotion&&ak.has(f)?{type:!1}:g,e,v));const b=p.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{kt.update(()=>{l&&OR(e,l)})}),u}function pm(e,t,n={}){var r;const s=gd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const o=s?()=>Promise.all(Bk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:f,staggerDirection:p}=i;return iL(e,t,d+u,f,p,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[o,l]:[l,o];return u().then(()=>d())}else return Promise.all([o(),l(n.delay)])}function iL(e,t,n=0,r=0,s=1,i){const o=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(oL).forEach((u,d)=>{u.notify("AnimationStart",t),o.push(pm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(o)}function oL(e,t){return e.sortNodePosition(t)}function aL(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>pm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=pm(e,t,n);else{const s=typeof t=="function"?gd(e,t,n.custom):t;r=Promise.all(Bk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const lL=eg.length;function Uk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Uk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>aL(e,n,r)))}function fL(e){let t=dL(e),n=uv(),r=!0;const s=c=>(u,d)=>{var f;const p=gd(e,d,c==="exit"?(f=e.presenceContext)===null||f===void 0?void 0:f.custom:void 0);if(p){const{transition:h,transitionEnd:g,...v}=p;u={...u,...v,...g}}return u};function i(c){t=c(e)}function o(c){const{props:u}=e,d=Uk(e.parent)||{},f=[],p=new Set;let h={},g=1/0;for(let b=0;bg&&S,z=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});R===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},ae=oe=>{D=!0,p.has(oe)&&(z=!0,p.delete(oe)),y.needsAnimating[oe]=!0;const B=e.getValue(oe);B&&(B.liveStyle=!1)};for(const oe in re){const B=H[oe],q=X[oe];if(h.hasOwnProperty(oe))continue;let E=!1;rm(B)&&rm(q)?E=!Zw(B,q):E=B!==q,E?B!=null?ae(oe):p.add(oe):B!==void 0&&p.has(oe)?ae(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(k&&T)||z)&&f.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(p.size){const b={};p.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),f.push({animation:b})}let v=!!f.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(f):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(p=>{var h;return(h=p.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const f=o(c);for(const p in n)n[p].protectedKeys={};return f}return{animateChanges:o,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=uv(),r=!0}}}function pL(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Zw(t,e):!1}function gi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function uv(){return{animate:gi(!0),whileInView:gi(),whileHover:gi(),whileTap:gi(),whileDrag:gi(),whileFocus:gi(),exit:gi()}}class ci{constructor(t){this.isMounted=!1,this.node=t}update(){}}class mL extends ci{constructor(t){super(t),t.animationState||(t.animationState=fL(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();md(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let hL=0;class gL extends ci{constructor(){super(...arguments),this.id=hL++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const xL={animation:{Feature:mL},exit:{Feature:gL}};function ol(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Sl(e){return{point:{x:e.pageX,y:e.pageY}}}const vL=e=>t=>hg(t)&&e(t,Sl(t));function Na(e,t,n,r){return ol(e,t,vL(n),r)}const dv=(e,t)=>Math.abs(e-t);function yL(e,t){const n=dv(e.x,t.x),r=dv(e.y,t.y);return Math.sqrt(n**2+r**2)}class Vk{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=xf(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,h=yL(f.offset,{x:0,y:0})>=3;if(!p&&!h)return;const{point:g}=f,{timestamp:v}=mn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;p||(b&&b(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,f)},this.handlePointerMove=(f,p)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=gf(p,this.transformPagePoint),kt.update(this.updatePoint,!0)},this.handlePointerUp=(f,p)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=xf(f.type==="pointercancel"?this.lastMoveEventInfo:gf(p,this.transformPagePoint),this.history);this.startEvent&&h&&h(f,b),g&&g(f,b)},!hg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const o=Sl(t),l=gf(o,this.transformPagePoint),{point:c}=l,{timestamp:u}=mn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,xf(l,this.history)),this.removeListeners=kl(Na(this.contextWindow,"pointermove",this.handlePointerMove),Na(this.contextWindow,"pointerup",this.handlePointerUp),Na(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ri(this.updatePoint)}}function gf(e,t){return t?{point:t(e.point)}:e}function fv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function xf({point:e},t){return{point:e,delta:fv(e,zk(t)),offset:fv(e,_L(t)),velocity:bL(t,.1)}}function _L(e){return e[0]}function zk(e){return e[e.length-1]}function bL(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=zk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>vs(t)));)n--;if(!r)return{x:0,y:0};const i=ys(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const o={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const $k=1e-4,wL=1-$k,kL=1+$k,Hk=.01,SL=0-Hk,CL=0+Hk;function ar(e){return e.max-e.min}function EL(e,t,n){return Math.abs(e-t)<=n}function pv(e,t,n,r=.5){e.origin=r,e.originPoint=Lt(t.min,t.max,e.origin),e.scale=ar(n)/ar(t),e.translate=Lt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=wL&&e.scale<=kL||isNaN(e.scale))&&(e.scale=1),(e.translate>=SL&&e.translate<=CL||isNaN(e.translate))&&(e.translate=0)}function Pa(e,t,n,r){pv(e.x,t.x,n.x,r?r.originX:void 0),pv(e.y,t.y,n.y,r?r.originY:void 0)}function mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ar(t)}function jL(e,t,n){mv(e.x,t.x,n.x),mv(e.y,t.y,n.y)}function hv(e,t,n){e.min=t.min-n.min,e.max=e.min+ar(t)}function Ra(e,t,n){hv(e.x,t.x,n.x),hv(e.y,t.y,n.y)}function NL(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Lt(n,e,r.max):Math.min(e,n)),e}function gv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function PL(e,{top:t,left:n,bottom:r,right:s}){return{x:gv(e.x,n,s),y:gv(e.y,t,r)}}function xv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=No(t.min,t.max-r,e.min):r>s&&(n=No(e.min,e.max-s,t.min)),Es(0,1,n)}function LL(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const mm=.35;function AL(e=mm){return e===!1?e=0:e===!0&&(e=mm),{x:vv(e,"left","right"),y:vv(e,"top","bottom")}}function vv(e,t,n){return{min:yv(e,t),max:yv(e,n)}}function yv(e,t){return typeof e=="number"?e:e[t]||0}const _v=()=>({translate:0,scale:1,origin:0,originPoint:0}),co=()=>({x:_v(),y:_v()}),bv=()=>({min:0,max:0}),zt=()=>({x:bv(),y:bv()});function pr(e){return[e("x"),e("y")]}function qk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function DL({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function ML(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function vf(e){return e===void 0||e===1}function hm({scale:e,scaleX:t,scaleY:n}){return!vf(e)||!vf(t)||!vf(n)}function bi(e){return hm(e)||Wk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Wk(e){return wv(e.x)||wv(e.y)}function wv(e){return e&&e!=="0%"}function Pu(e,t,n){const r=e-n,s=t*r;return n+s}function kv(e,t,n,r,s){return s!==void 0&&(e=Pu(e,s,r)),Pu(e,n,r)+t}function gm(e,t=0,n=1,r,s){e.min=kv(e.min,t,n,r,s),e.max=kv(e.max,t,n,r,s)}function Gk(e,{x:t,y:n}){gm(e.x,t.translate,t.scale,t.originPoint),gm(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Cv=1.0000000000001;function OL(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,o;for(let l=0;lSv&&(t.x=1),t.ySv&&(t.y=1)}function uo(e,t){e.min=e.min+t,e.max=e.max+t}function Ev(e,t,n,r,s=.5){const i=Lt(e.min,e.max,s);gm(e,t,n,i,r)}function fo(e,t){Ev(e.x,t.x,t.scaleX,t.scale,t.originX),Ev(e.y,t.y,t.scaleY,t.scale,t.originY)}function Kk(e,t){return qk(ML(e.getBoundingClientRect(),t))}function IL(e,t,n){const r=Kk(e,n),{scroll:s}=t;return s&&(uo(r.x,s.offset.x),uo(r.y,s.offset.y)),r}const Qk=({current:e})=>e?e.ownerDocument.defaultView:null,FL=new WeakMap;class BL{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=zt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Sl(d).point)},i=(d,f)=>{const{drag:p,dragPropagation:h,onDragStart:g}=this.getProps();if(p&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=TR(p),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),pr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Jr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=ar(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&kt.postRender(()=>g(d,f)),om(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},o=(d,f)=>{const{dragPropagation:p,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:b}=f;if(h&&this.currentDirection===null){this.currentDirection=UL(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",f.point,b),this.updateAxis("y",f.point,b),this.visualElement.render(),v&&v(d,f)},l=(d,f)=>this.stop(d,f),c=()=>pr(d=>{var f;return this.getAnimationState(d)==="paused"&&((f=this.getAxisMotionValue(d).animation)===null||f===void 0?void 0:f.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Vk(t,{onSessionStart:s,onStart:i,onMove:o,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Qk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&kt.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!pc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=NL(o,this.constraints[t],this.elastic[t])),i.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ao(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=PL(s.layoutBox,n):this.constraints=!1,this.elastic=AL(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&pr(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=LL(s.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ao(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=IL(r,s.root,this.visualElement.getTransformPagePoint());let o=RL(s.layout.layoutBox,i);if(n){const l=n(DL(o));this.hasMutatedConstraints=!!l,l&&(o=qk(l))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=pr(d=>{if(!pc(d,n,this.currentDirection))return;let f=c&&c[d]||{};o&&(f={min:0,max:0});const p=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:p,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return om(this.visualElement,t),r.start(jg(t,r,0,n,this.visualElement,!1))}stopAnimation(){pr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){pr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){pr(n=>{const{drag:r}=this.getProps();if(!pc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:o,max:l}=s.layout.layoutBox[n];i.set(t[n]-Lt(o,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ao(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};pr(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const c=l.get();s[o]=TL({min:c,max:c},this.constraints[o])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),pr(o=>{if(!pc(o,t,null))return;const l=this.getAxisMotionValue(o),{min:c,max:u}=this.constraints[o];l.set(Lt(c,u,s[o]))})}addListeners(){if(!this.visualElement.current)return;FL.set(this.visualElement,this);const t=this.visualElement.current,n=Na(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ao(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),kt.read(r);const o=ol(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(pr(d=>{const f=this.getAxisMotionValue(d);f&&(this.originPoint[d]+=c[d].translate,f.set(f.get()+c[d].translate))}),this.visualElement.render())});return()=>{o(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:o=mm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:o,dragMomentum:l}}}function pc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function UL(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class VL extends ci{constructor(t){super(t),this.removeGroupControls=sr,this.removeListeners=sr,this.controls=new BL(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||sr}unmount(){this.removeGroupControls(),this.removeListeners()}}const jv=e=>(t,n)=>{e&&kt.postRender(()=>e(t,n))};class zL extends ci{constructor(){super(...arguments),this.removePointerDownListener=sr}onPointerDown(t){this.session=new Vk(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:jv(t),onStart:jv(n),onMove:r,onEnd:(i,o)=>{delete this.session,s&&kt.postRender(()=>s(i,o))}}}mount(){this.removePointerDownListener=Na(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Nv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oa={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Re.test(e))e=parseFloat(e);else return e;const n=Nv(e,t.target.x),r=Nv(e,t.target.y);return`${n}% ${r}%`}},$L={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=si.parse(e);if(s.length>5)return r;const i=si.createTransformer(e),o=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+o]/=l,s[1+o]/=c;const u=Lt(l,c,.5);return typeof s[2+o]=="number"&&(s[2+o]/=u),typeof s[3+o]=="number"&&(s[3+o]/=u),i(s)}};class HL extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;uR(qL),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Vc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,o=r.projection;return o&&(o.isPresent=i,s||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?o.promote():o.relegate()||kt.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ng.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Yk(e){const[t,n]=Lw(),r=m.useContext(Kh);return a.jsx(HL,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(Uw),isPresent:t,safeToRemove:n})}const qL={borderRadius:{...oa,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oa,borderTopRightRadius:oa,borderBottomLeftRadius:oa,borderBottomRightRadius:oa,boxShadow:$L};function WL(e,t,n){const r=Sn(e)?e:sl(e);return r.start(jg("",r,t,n)),r.animation}function GL(e){return e instanceof SVGElement&&e.tagName!=="svg"}const KL=(e,t)=>e.depth-t.depth;class QL{constructor(){this.children=[],this.isDirty=!1}add(t){gg(this.children,t),this.isDirty=!0}remove(t){xg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(KL),this.isDirty=!1,this.children.forEach(t)}}function YL(e,t){const n=Zr.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(ri(r),e(i-t))};return kt.read(r,!0),()=>ri(r)}const Xk=["TopLeft","TopRight","BottomLeft","BottomRight"],XL=Xk.length,Pv=e=>typeof e=="string"?parseFloat(e):e,Rv=e=>typeof e=="number"||Re.test(e);function JL(e,t,n,r,s,i){s?(e.opacity=Lt(0,n.opacity!==void 0?n.opacity:1,ZL(r)),e.opacityExit=Lt(t.opacity!==void 0?t.opacity:1,0,eA(r))):i&&(e.opacity=Lt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(No(e,t,r))}function Lv(e,t){e.min=t.min,e.max=t.max}function fr(e,t){Lv(e.x,t.x),Lv(e.y,t.y)}function Av(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Dv(e,t,n,r,s){return e-=t,e=Pu(e,1/n,r),s!==void 0&&(e=Pu(e,1/s,r)),e}function tA(e,t=0,n=1,r=.5,s,i=e,o=e){if(Jr.test(t)&&(t=parseFloat(t),t=Lt(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=Lt(i.min,i.max,r);e===i&&(l-=t),e.min=Dv(e.min,t,n,l,s),e.max=Dv(e.max,t,n,l,s)}function Mv(e,t,[n,r,s],i,o){tA(e,t[n],t[r],t[s],t.scale,i,o)}const nA=["x","scaleX","originX"],rA=["y","scaleY","originY"];function Ov(e,t,n,r){Mv(e.x,t,nA,n?n.x:void 0,r?r.x:void 0),Mv(e.y,t,rA,n?n.y:void 0,r?r.y:void 0)}function Iv(e){return e.translate===0&&e.scale===1}function Zk(e){return Iv(e.x)&&Iv(e.y)}function Fv(e,t){return e.min===t.min&&e.max===t.max}function sA(e,t){return Fv(e.x,t.x)&&Fv(e.y,t.y)}function Bv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function eS(e,t){return Bv(e.x,t.x)&&Bv(e.y,t.y)}function Uv(e){return ar(e.x)/ar(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class iA{constructor(){this.members=[]}add(t){gg(this.members,t),t.scheduleRender()}remove(t){if(xg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function oA(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((s||i||o)&&(r=`translate3d(${s}px, ${i}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:f,rotateY:p,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),f&&(r+=`rotateX(${f}deg) `),p&&(r+=`rotateY(${p}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const wi={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},xa=typeof window<"u"&&window.MotionDebug!==void 0,yf=["","X","Y","Z"],aA={visibility:"hidden"},zv=1e3;let lA=0;function _f(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function tS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ck(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",kt,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&tS(r)}function nS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(o={},l=t==null?void 0:t()){this.id=lA++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,xa&&(wi.totalNodes=wi.resolvedTargetDeltas=wi.recalculatedProjection=0),this.nodes.forEach(dA),this.nodes.forEach(gA),this.nodes.forEach(xA),this.nodes.forEach(fA),xa&&window.MotionDebug.record(wi)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=YL(p,250),Vc.hasAnimatedSinceResize&&(Vc.hasAnimatedSinceResize=!1,this.nodes.forEach(Hv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:p,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||wA,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!eS(this.targetLayout,g)||h,_=!p&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||p&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,_);const S={...fg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else p||Hv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ri(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(vA),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const R=S/1e3;qv(f.x,o.x,R),qv(f.y,o.y,R),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ra(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),_A(this.relativeTarget,this.relativeTargetOrigin,p,R),_&&sA(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=zt()),fr(_,this.relativeTarget)),v&&(this.animationValues=d,JL(d,u,this.latestValues,R,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=R},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ri(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=kt.update(()=>{Vc.hasAnimatedSinceResize=!0,this.currentAnimation=WL(0,zv,{...o,onUpdate:l=>{this.mixTargetDelta(l),o.onUpdate&&o.onUpdate(l)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=o;if(!(!l||!c||!u)){if(this!==o&&this.layout&&u&&rS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||zt();const f=ar(this.layout.layoutBox.x);c.x.min=o.target.x.min,c.x.max=c.x.min+f;const p=ar(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+p}fr(l,c),fo(l,d),Pa(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new iA),this.sharedNodes.get(o).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:l}=this.options;return l?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:l}=this.options;return l?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:c}=o;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&_f("z",o,u,this.animationValues);for(let d=0;d{var l;return(l=o.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach($v),this.root.sharedNodes.clear()}}}function cA(e){e.updateLayout()}function uA(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,o=n.source!==e.layout.source;i==="size"?pr(f=>{const p=o?n.measuredBox[f]:n.layoutBox[f],h=ar(p);p.min=r[f].min,p.max=p.min+h}):rS(i,n.layoutBox,r)&&pr(f=>{const p=o?n.measuredBox[f]:n.layoutBox[f],h=ar(r[f]);p.max=p.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+h)});const l=co();Pa(l,r,n.layoutBox);const c=co();o?Pa(c,e.applyTransform(s,!0),n.measuredBox):Pa(c,r,n.layoutBox);const u=!Zk(l);let d=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:p,layout:h}=f;if(p&&h){const g=zt();Ra(g,n.layoutBox,p.layoutBox);const v=zt();Ra(v,r,h.layoutBox),eS(g,v)||(d=!0),f.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function dA(e){xa&&wi.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function fA(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function pA(e){e.clearSnapshot()}function $v(e){e.clearMeasurements()}function mA(e){e.isLayoutDirty=!1}function hA(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Hv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function gA(e){e.resolveTargetDelta()}function xA(e){e.calcProjection()}function vA(e){e.resetSkewAndRotation()}function yA(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Lt(t.translate,0,n),e.scale=Lt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Wv(e,t,n,r){e.min=Lt(t.min,n.min,r),e.max=Lt(t.max,n.max,r)}function _A(e,t,n,r){Wv(e.x,t.x,n.x,r),Wv(e.y,t.y,n.y,r)}function bA(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const wA={duration:.45,ease:[.4,0,.1,1]},Gv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Kv=Gv("applewebkit/")&&!Gv("chrome/")?Math.round:sr;function Qv(e){e.min=Kv(e.min),e.max=Kv(e.max)}function kA(e){Qv(e.x),Qv(e.y)}function rS(e,t,n){return e==="position"||e==="preserve-aspect"&&!EL(Uv(t),Uv(n),.2)}function SA(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const CA=nS({attachResizeListener:(e,t)=>ol(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bf={current:void 0},sS=nS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bf.current){const e=new CA({});e.mount(window),e.setOptions({layoutScroll:!0}),bf.current=e}return bf.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),EA={pan:{Feature:zL},drag:{Feature:VL,ProjectionNode:sS,MeasureLayout:Yk}};function Yv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&kt.postRender(()=>i(t,Sl(t)))}class jA extends ci{mount(){const{current:t}=this.node;t&&(this.unmount=ER(t,n=>(Yv(this.node,n,"Start"),r=>Yv(this.node,r,"End"))))}unmount(){}}class NA extends ci{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=kl(ol(this.node.current,"focus",()=>this.onFocus()),ol(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&kt.postRender(()=>i(t,Sl(t)))}class PA extends ci{mount(){const{current:t}=this.node;t&&(this.unmount=RR(t,n=>(Xv(this.node,n,"Start"),(r,{success:s})=>Xv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const xm=new WeakMap,wf=new WeakMap,RA=e=>{const t=xm.get(e.target);t&&t(e)},TA=e=>{e.forEach(RA)};function LA({root:e,...t}){const n=e||document;wf.has(n)||wf.set(n,{});const r=wf.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(TA,{root:e,...t})),r[s]}function AA(e,t,n){const r=LA(t);return xm.set(e,n),r.observe(e),()=>{xm.delete(e),r.unobserve(e)}}const DA={some:0,all:1};class MA extends ci{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:DA[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:f}=this.node.getProps(),p=u?d:f;p&&p(c)};return AA(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(OA(t,n))&&this.startObserver()}unmount(){}}function OA({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const IA={inView:{Feature:MA},tap:{Feature:PA},focus:{Feature:NA},hover:{Feature:jA}},FA={layout:{ProjectionNode:sS,MeasureLayout:Yk}},vm={current:null},iS={current:!1};function BA(){if(iS.current=!0,!!Xh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>vm.current=e.matches;e.addListener(t),t()}else vm.current=!1}const UA=[...Rk,bn,si],VA=e=>UA.find(Pk(e)),Jv=new WeakMap;function zA(e,t,n){for(const r in t){const s=t[r],i=n[r];if(Sn(s))e.addValue(r,s);else if(Sn(i))e.addValue(r,sl(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(s):o.hasAnimated||o.set(s)}else{const o=e.getStaticValue(r);e.addValue(r,sl(o!==void 0?o:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Zv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class $A{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Sg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Zr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),iS.current||BA(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:vm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Jv.delete(this.current),this.projection&&this.projection.unmount(),ri(this.notifyUpdate),ri(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=$i.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&kt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Po){const n=Po[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):zt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=sl(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(jk(s)||vk(s))?s=parseFloat(s):!VA(s)&&si.test(n)&&(s=Sk(t,n)),this.setBaseTarget(t,Sn(s)?s.get():s)),Sn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const o=sg(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(s=o[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!Sn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new vg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class oS extends $A{constructor(){super(...arguments),this.KeyframeResolver=Tk}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Sn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function HA(e){return window.getComputedStyle(e)}class qA extends oS{constructor(){super(...arguments),this.type="html",this.renderInstance=Gw}readValueFromInstance(t,n){if($i.has(n)){const r=kg(n);return r&&r.default||0}else{const r=HA(t),s=(Hw(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Kk(t,n)}build(t,n,r){ag(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return dg(t,n,r)}}class WA extends oS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=zt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if($i.has(n)){const r=kg(n);return r&&r.default||0}return n=Kw.has(n)?n:tg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Xw(t,n,r)}build(t,n,r){lg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Qw(t,n,r,s)}mount(t){this.isSVGTag=ug(t.tagName),super.mount(t)}}const GA=(e,t)=>rg(e)?new WA(t):new qA(t,{allowProjection:e!==m.Fragment}),KA=yR({...xL,...IA,...EA,...FA},GA),Bt=DP(KA);function QA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const YA=m.forwardRef(QA);function XA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const zc=m.forwardRef(XA);function JA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ey=m.forwardRef(JA);function ZA({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Qr=m.forwardRef(ZA);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const tD=m.forwardRef(eD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const aS=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const kf=m.forwardRef(rD);function sD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const Sf=m.forwardRef(sD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const oD=m.forwardRef(iD);function aD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Ru=m.forwardRef(aD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const cD=m.forwardRef(lD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const mc=m.forwardRef(uD);function dD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Tu=m.forwardRef(dD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const qs=m.forwardRef(fD);function pD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const tr=m.forwardRef(pD);function mD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const lS=m.forwardRef(mD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const ds=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const xD=m.forwardRef(gD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const yD=m.forwardRef(vD);function _D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const bD=m.forwardRef(_D);function wD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const ym=m.forwardRef(wD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const SD=m.forwardRef(kD);function CD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const ED=m.forwardRef(CD);function jD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Lu=m.forwardRef(jD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const _m=m.forwardRef(ND);function PD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const RD=m.forwardRef(PD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const bm=m.forwardRef(TD);function LD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const AD=m.forwardRef(LD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const MD=m.forwardRef(DD);function OD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ty=m.forwardRef(OD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const fs=m.forwardRef(ID);function FD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const ny=m.forwardRef(FD);function BD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const cS=m.forwardRef(BD);function UD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const ry=m.forwardRef(UD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const zD=m.forwardRef(VD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const uS=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const qD=m.forwardRef(HD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const GD=m.forwardRef(WD);function KD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const QD=m.forwardRef(KD);function YD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const XD=m.forwardRef(YD);function JD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const ZD=m.forwardRef(JD);function e3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const t3=m.forwardRef(e3);function n3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Cf=m.forwardRef(n3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Au=m.forwardRef(i3);function o3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const a3=m.forwardRef(o3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const c3=m.forwardRef(l3);function u3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const d3=m.forwardRef(u3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const $c=m.forwardRef(f3);function p3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Ng=m.forwardRef(p3);function m3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const dS=m.forwardRef(m3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const g3=m.forwardRef(h3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const v3=m.forwardRef(x3);function y3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const en=m.forwardRef(y3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const k3=m.forwardRef(w3);function S3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const To=m.forwardRef(S3);function fS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{sy(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>sy("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=pS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const N3={},iy=e=>{let t;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const h=t;t=f??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(N3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},P3=e=>e?iy(e):iy;var mS={exports:{}},hS={},gS={exports:{}},xS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Lo=m;function R3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var T3=typeof Object.is=="function"?Object.is:R3,L3=Lo.useState,A3=Lo.useEffect,D3=Lo.useLayoutEffect,M3=Lo.useDebugValue;function O3(e,t){var n=t(),r=L3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return D3(function(){s.value=n,s.getSnapshot=t,Ef(s)&&i({inst:s})},[e,n,t]),A3(function(){return Ef(s)&&i({inst:s}),e(function(){Ef(s)&&i({inst:s})})},[e]),M3(n),n}function Ef(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!T3(e,n)}catch{return!0}}function I3(e,t){return t()}var F3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?I3:O3;xS.useSyncExternalStore=Lo.useSyncExternalStore!==void 0?Lo.useSyncExternalStore:F3;gS.exports=xS;var B3=gS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vd=m,U3=B3;function V3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var z3=typeof Object.is=="function"?Object.is:V3,$3=U3.useSyncExternalStore,H3=vd.useRef,q3=vd.useEffect,W3=vd.useMemo,G3=vd.useDebugValue;hS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=H3(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=W3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&o.hasValue){var g=o.value;if(s(g,h))return f=g}return f=h}if(g=f,z3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,f=v)}var u=!1,d,f,p=n===void 0?null:n;return[function(){return c(t())},p===null?void 0:function(){return c(p())}]},[t,n,r,s]);var l=$3(e,i[0],i[1]);return q3(function(){o.hasValue=!0,o.value=l},[l]),G3(l),l};mS.exports=hS;var K3=mS.exports;const Q3=qu(K3),vS={},{useDebugValue:Y3}=un,{useSyncExternalStoreWithSelector:X3}=Q3;let oy=!1;const J3=e=>e;function Z3(e,t=J3,n){(vS?"production":void 0)!=="production"&&n&&!oy&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),oy=!0);const r=X3(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Y3(r),r}const ay=e=>{(vS?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?P3(e):e,n=(r,s)=>Z3(t,r,s);return Object.assign(n,t),n},eM=e=>e?ay(e):ay;function yS(e,t){return function(){return e.apply(t,arguments)}}const{toString:tM}=Object.prototype,{getPrototypeOf:Pg}=Object,{iterator:yd,toStringTag:_S}=Symbol,_d=(e=>t=>{const n=tM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ir=e=>(e=e.toLowerCase(),t=>_d(t)===e),bd=e=>t=>typeof t===e,{isArray:zo}=Array,Ao=bd("undefined");function Cl(e){return e!==null&&!Ao(e)&&e.constructor!==null&&!Ao(e.constructor)&&Wn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const bS=Ir("ArrayBuffer");function nM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bS(e.buffer),t}const rM=bd("string"),Wn=bd("function"),wS=bd("number"),El=e=>e!==null&&typeof e=="object",sM=e=>e===!0||e===!1,Hc=e=>{if(_d(e)!=="object")return!1;const t=Pg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(_S in e)&&!(yd in e)},iM=e=>{if(!El(e)||Cl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},oM=Ir("Date"),aM=Ir("File"),lM=Ir("Blob"),cM=Ir("FileList"),uM=e=>El(e)&&Wn(e.pipe),dM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Wn(e.append)&&((t=_d(e))==="formdata"||t==="object"&&Wn(e.toString)&&e.toString()==="[object FormData]"))},fM=Ir("URLSearchParams"),[pM,mM,hM,gM]=["ReadableStream","Request","Response","Headers"].map(Ir),xM=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),zo(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SS=e=>!Ao(e)&&e!==Ni;function wm(){const{caseless:e,skipUndefined:t}=SS(this)&&this||{},n={},r=(s,i)=>{const o=e&&kS(n,i)||i;Hc(n[o])&&Hc(s)?n[o]=wm(n[o],s):Hc(s)?n[o]=wm({},s):zo(s)?n[o]=s.slice():(!t||!Ao(s))&&(n[o]=s)};for(let s=0,i=arguments.length;s(jl(t,(s,i)=>{n&&Wn(s)?e[i]=yS(s,n):e[i]=s},{allOwnKeys:r}),e),yM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),_M=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},bM=(e,t,n,r)=>{let s,i,o;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)o=s[i],(!r||r(o,e,t))&&!l[o]&&(t[o]=e[o],l[o]=!0);e=n!==!1&&Pg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},wM=(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},kM=e=>{if(!e)return null;if(zo(e))return e;let t=e.length;if(!wS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},SM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Pg(Uint8Array)),CM=(e,t)=>{const r=(e&&e[yd]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},EM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},jM=Ir("HTMLFormElement"),NM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ly=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),PM=Ir("RegExp"),CS=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};jl(n,(s,i)=>{let o;(o=t(s,i,e))!==!1&&(r[i]=o||s)}),Object.defineProperties(e,r)},RM=e=>{CS(e,(t,n)=>{if(Wn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Wn(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+"'")})}})},TM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return zo(e)?r(e):r(String(e).split(t)),n},LM=()=>{},AM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function DM(e){return!!(e&&Wn(e.append)&&e[_S]==="FormData"&&e[yd])}const MM=e=>{const t=new Array(10),n=(r,s)=>{if(El(r)){if(t.indexOf(r)>=0)return;if(Cl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=zo(r)?[]:{};return jl(r,(o,l)=>{const c=n(o,s+1);!Ao(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},OM=Ir("AsyncFunction"),IM=e=>e&&(El(e)||Wn(e))&&Wn(e.then)&&Wn(e.catch),ES=((e,t)=>e?setImmediate:t?((n,r)=>(Ni.addEventListener("message",({source:s,data:i})=>{s===Ni&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ni.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Wn(Ni.postMessage)),FM=typeof queueMicrotask<"u"?queueMicrotask.bind(Ni):typeof process<"u"&&process.nextTick||ES,BM=e=>e!=null&&Wn(e[yd]),V={isArray:zo,isArrayBuffer:bS,isBuffer:Cl,isFormData:dM,isArrayBufferView:nM,isString:rM,isNumber:wS,isBoolean:sM,isObject:El,isPlainObject:Hc,isEmptyObject:iM,isReadableStream:pM,isRequest:mM,isResponse:hM,isHeaders:gM,isUndefined:Ao,isDate:oM,isFile:aM,isBlob:lM,isRegExp:PM,isFunction:Wn,isStream:uM,isURLSearchParams:fM,isTypedArray:SM,isFileList:cM,forEach:jl,merge:wm,extend:vM,trim:xM,stripBOM:yM,inherits:_M,toFlatObject:bM,kindOf:_d,kindOfTest:Ir,endsWith:wM,toArray:kM,forEachEntry:CM,matchAll:EM,isHTMLForm:jM,hasOwnProperty:ly,hasOwnProp:ly,reduceDescriptors:CS,freezeMethods:RM,toObjectSet:TM,toCamelCase:NM,noop:LM,toFiniteNumber:AM,findKey:kS,global:Ni,isContextDefined:SS,isSpecCompliantForm:DM,toJSONObject:MM,isAsyncFn:OM,isThenable:IM,setImmediate:ES,asap:FM,isIterable:BM};function Me(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}V.inherits(Me,Error,{toJSON:function(){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:V.toJSONObject(this.config),code:this.code,status:this.status}}});const jS=Me.prototype,NS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{NS[e]={value:e}});Object.defineProperties(Me,NS);Object.defineProperty(jS,"isAxiosError",{value:!0});Me.from=(e,t,n,r,s,i)=>{const o=Object.create(jS);V.toFlatObject(e,o,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Me.call(o,l,c,n,r,s),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",i&&Object.assign(o,i),o};const UM=null;function km(e){return V.isPlainObject(e)||V.isArray(e)}function PS(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function cy(e,t,n){return e?e.concat(t).map(function(s,i){return s=PS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function VM(e){return V.isArray(e)&&!e.some(km)}const zM=V.toFlatObject(V,{},null,function(t){return/^is[A-Z]/.test(t)});function wd(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!V.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,o=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&V.isSpecCompliantForm(t);if(!V.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(V.isDate(g))return g.toISOString();if(V.isBoolean(g))return g.toString();if(!c&&V.isBlob(g))throw new Me("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(g)||V.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(V.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(V.isArray(g)&&VM(g)||(V.isFileList(g)||V.endsWith(v,"[]"))&&(x=V.toArray(g)))return v=PS(v),x.forEach(function(_,S){!(V.isUndefined(_)||_===null)&&t.append(o===!0?cy([v],S,i):o===null?v:v+"[]",u(_))}),!1}return km(g)?!0:(t.append(cy(b,v,i),u(g)),!1)}const f=[],p=Object.assign(zM,{defaultVisitor:d,convertValue:u,isVisitable:km});function h(g,v){if(!V.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));f.push(g),V.forEach(g,function(x,y){(!(V.isUndefined(x)||x===null)&&s.call(t,x,V.isString(y)?y.trim():y,v,p))===!0&&h(x,v?v.concat(y):[y])}),f.pop()}}if(!V.isObject(e))throw new TypeError("data must be an object");return h(e),t}function uy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Rg(e,t){this._pairs=[],e&&wd(e,this,t)}const RS=Rg.prototype;RS.append=function(t,n){this._pairs.push([t,n])};RS.toString=function(t){const n=t?function(r){return t.call(this,r,uy)}:uy;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function $M(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function TS(e,t,n){if(!t)return e;const r=n&&n.encode||$M;V.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=V.isURLSearchParams(t)?t.toString():new Rg(t,n).toString(r),i){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class dy{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){V.forEach(this.handlers,function(r){r!==null&&t(r)})}}const LS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},HM=typeof URLSearchParams<"u"?URLSearchParams:Rg,qM=typeof FormData<"u"?FormData:null,WM=typeof Blob<"u"?Blob:null,GM={isBrowser:!0,classes:{URLSearchParams:HM,FormData:qM,Blob:WM},protocols:["http","https","file","blob","url","data"]},Tg=typeof window<"u"&&typeof document<"u",Sm=typeof navigator=="object"&&navigator||void 0,KM=Tg&&(!Sm||["ReactNative","NativeScript","NS"].indexOf(Sm.product)<0),QM=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",YM=Tg&&window.location.href||"http://localhost",XM=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Tg,hasStandardBrowserEnv:KM,hasStandardBrowserWebWorkerEnv:QM,navigator:Sm,origin:YM},Symbol.toStringTag,{value:"Module"})),kn={...XM,...GM};function JM(e,t){return wd(e,new kn.classes.URLSearchParams,{visitor:function(n,r,s,i){return kn.isNode&&V.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function ZM(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function e4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return o=!o&&V.isArray(s)?s.length:o,c?(V.hasOwnProp(s,o)?s[o]=[s[o],r]:s[o]=r,!l):((!s[o]||!V.isObject(s[o]))&&(s[o]=[]),t(n,r,s[o],i)&&V.isArray(s[o])&&(s[o]=e4(s[o])),!l)}if(V.isFormData(e)&&V.isFunction(e.entries)){const n={};return V.forEachEntry(e,(r,s)=>{t(ZM(r),s,n,0)}),n}return null}function t4(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Nl={transitional:LS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=V.isObject(t);if(i&&V.isHTMLForm(t)&&(t=new FormData(t)),V.isFormData(t))return s?JSON.stringify(AS(t)):t;if(V.isArrayBuffer(t)||V.isBuffer(t)||V.isStream(t)||V.isFile(t)||V.isBlob(t)||V.isReadableStream(t))return t;if(V.isArrayBufferView(t))return t.buffer;if(V.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return JM(t,this.formSerializer).toString();if((l=V.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),t4(t)):t}],transformResponse:[function(t){const n=this.transitional||Nl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(V.isResponse(t)||V.isReadableStream(t))return t;if(t&&V.isString(t)&&(r&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(o)throw l.name==="SyntaxError"?Me.from(l,Me.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:kn.classes.FormData,Blob:kn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{Nl.headers[e]={}});const n4=V.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"]),r4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(o){s=o.indexOf(":"),n=o.substring(0,s).trim().toLowerCase(),r=o.substring(s+1).trim(),!(!n||t[n]&&n4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},fy=Symbol("internals");function aa(e){return e&&String(e).trim().toLowerCase()}function qc(e){return e===!1||e==null?e:V.isArray(e)?e.map(qc):String(e)}function s4(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 i4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function jf(e,t,n,r,s){if(V.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!V.isString(t)){if(V.isString(r))return t.indexOf(r)!==-1;if(V.isRegExp(r))return r.test(t)}}function o4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function a4(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,o){return this[r].call(this,t,s,i,o)},configurable:!0})})}let Gn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=aa(c);if(!d)throw new Error("header name must be a non-empty string");const f=V.findKey(s,d);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=qc(l))}const o=(l,c)=>V.forEach(l,(u,d)=>i(u,d,c));if(V.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(V.isString(t)&&(t=t.trim())&&!i4(t))o(r4(t),n);else if(V.isObject(t)&&V.isIterable(t)){let l={},c,u;for(const d of t){if(!V.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?V.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}o(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=aa(t),t){const r=V.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return s4(s);if(V.isFunction(n))return n.call(this,s,r);if(V.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=aa(t),t){const r=V.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||jf(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(o){if(o=aa(o),o){const l=V.findKey(r,o);l&&(!n||jf(r,r[l],l,n))&&(delete r[l],s=!0)}}return V.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||jf(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return V.forEach(this,(s,i)=>{const o=V.findKey(r,i);if(o){n[o]=qc(s),delete n[i];return}const l=t?o4(i):String(i).trim();l!==i&&delete n[i],n[l]=qc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return V.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&V.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(s=>r.set(s)),r}static accessor(t){const r=(this[fy]=this[fy]={accessors:{}}).accessors,s=this.prototype;function i(o){const l=aa(o);r[l]||(a4(s,o),r[l]=!0)}return V.isArray(t)?t.forEach(i):i(t),this}};Gn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(Gn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});V.freezeMethods(Gn);function Nf(e,t){const n=this||Nl,r=t||n,s=Gn.from(r.headers);let i=r.data;return V.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function DS(e){return!!(e&&e.__CANCEL__)}function $o(e,t,n){Me.call(this,e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError"}V.inherits($o,Me,{__CANCEL__:!0});function MS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Me("Request failed with status code "+n.status,[Me.ERR_BAD_REQUEST,Me.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function l4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function c4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,o;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];o||(o=u),n[s]=c,r[s]=u;let f=i,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-o{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),f=d-n;f>=r?o(u,d):(s=u,i||(i=setTimeout(()=>{i=null,o(s)},r-f)))},()=>s&&o(s)]}const Du=(e,t,n=3)=>{let r=0;const s=c4(50,250);return u4(i=>{const o=i.loaded,l=i.lengthComputable?i.total:void 0,c=o-r,u=s(c),d=o<=l;r=o;const f={loaded:o,total:l,progress:l?o/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-o)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},py=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},my=e=>(...t)=>V.asap(()=>e(...t)),d4=kn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,kn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(kn.origin),kn.navigator&&/(msie|trident)/i.test(kn.navigator.userAgent)):()=>!0,f4=kn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,o){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&l.push(`path=${r}`),V.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),V.isString(o)&&l.push(`SameSite=${o}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function p4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function m4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OS(e,t,n){let r=!p4(t);return e&&(r||n==!1)?m4(e,t):t}const hy=e=>e instanceof Gn?{...e}:e;function Fi(e,t){t=t||{};const n={};function r(u,d,f,p){return V.isPlainObject(u)&&V.isPlainObject(d)?V.merge.call({caseless:p},u,d):V.isPlainObject(d)?V.merge({},d):V.isArray(d)?d.slice():d}function s(u,d,f,p){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u,f,p)}else return r(u,d,f,p)}function i(u,d){if(!V.isUndefined(d))return r(void 0,d)}function o(u,d){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,f){if(f in t)return r(u,d);if(f in e)return r(void 0,u)}const c={url:i,method:i,data:i,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,responseEncoding:o,validateStatus:l,headers:(u,d,f)=>s(hy(u),hy(d),f,!0)};return V.forEach(Object.keys({...e,...t}),function(d){const f=c[d]||s,p=f(e[d],t[d],d);V.isUndefined(p)&&f!==l||(n[d]=p)}),n}const IS=e=>{const t=Fi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:o,auth:l}=t;if(t.headers=o=Gn.from(o),t.url=TS(OS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&o.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),V.isFormData(n)){if(kn.hasStandardBrowserEnv||kn.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,f])=>{u.includes(d.toLowerCase())&&o.set(d,f)})}}if(kn.hasStandardBrowserEnv&&(r&&V.isFunction(r)&&(r=r(t)),r||r!==!1&&d4(t.url))){const c=s&&i&&f4.read(i);c&&o.set(s,c)}return t},h4=typeof XMLHttpRequest<"u",g4=h4&&function(e){return new Promise(function(n,r){const s=IS(e);let i=s.data;const o=Gn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,f,p,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Gn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),R={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};MS(function(T){n(T),v()},function(T){r(T),v()},R),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Me("Request aborted",Me.ECONNABORTED,e,b)),b=null)},b.onerror=function(S){const R=S&&S.message?S.message:"Network Error",k=new Me(R,Me.ERR_NETWORK,e,b);k.event=S||null,r(k),b=null},b.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const R=s.transitional||LS;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new Me(S,R.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,b)),b=null},i===void 0&&o.setContentType(null),"setRequestHeader"in b&&V.forEach(o.toJSON(),function(S,R){b.setRequestHeader(R,S)}),V.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([p,g]=Du(u,!0),b.addEventListener("progress",p)),c&&b.upload&&([f,h]=Du(c),b.upload.addEventListener("progress",f),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new $o(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=l4(s.url);if(y&&kn.protocols.indexOf(y)===-1){r(new Me("Unsupported protocol "+y+":",Me.ERR_BAD_REQUEST,e));return}b.send(i||null)})},x4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Me?d:new $o(d instanceof Error?d.message:d))}};let o=t&&setTimeout(()=>{o=null,i(new Me(`timeout ${t} of ms exceeded`,Me.ETIMEDOUT))},t);const l=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>V.asap(l),c}},v4=function*(e,t){let n=e.byteLength;if(n{const s=y4(e,t);let i=0,o,l=c=>{o||(o=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let f=d.byteLength;if(n){let p=i+=f;n(p)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},xy=64*1024,{isFunction:hc}=V,b4=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:vy,TextEncoder:yy}=V.global,_y=(e,...t)=>{try{return!!e(...t)}catch{return!1}},w4=e=>{e=V.merge.call({skipUndefined:!0},b4,e);const{fetch:t,Request:n,Response:r}=e,s=t?hc(t):typeof fetch=="function",i=hc(n),o=hc(r);if(!s)return!1;const l=s&&hc(vy),c=s&&(typeof yy=="function"?(g=>v=>g.encode(v))(new yy):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&_y(()=>{let g=!1;const v=new n(kn.origin,{body:new vy,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=o&&l&&_y(()=>V.isReadableStream(new r("").body)),f={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Me(`Response type '${g}' is not supported`,Me.ERR_NOT_SUPPORT,b)})});const p=async g=>{if(g==null)return 0;if(V.isBlob(g))return g.size;if(V.isSpecCompliantForm(g))return(await new n(kn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(V.isArrayBufferView(g)||V.isArrayBuffer(g))return g.byteLength;if(V.isURLSearchParams(g)&&(g=g+""),V.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=V.toFiniteNumber(g.getContentLength());return b??p(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:S,onDownloadProgress:R,onUploadProgress:k,responseType:T,headers:D,withCredentials:z="same-origin",fetchOptions:j}=IS(g),H=t||fetch;T=T?(T+"").toLowerCase():"text";let X=x4([y,_&&_.toAbortSignal()],S),re=null;const ae=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let me;try{if(k&&u&&b!=="get"&&b!=="head"&&(me=await h(D,x))!==0){let de=new n(v,{method:"POST",body:x,duplex:"half"}),pe;if(V.isFormData(x)&&(pe=de.headers.get("content-type"))&&D.setContentType(pe),de.body){const[A,be]=py(me,Du(my(k)));x=gy(de.body,xy,A,be)}}V.isString(z)||(z=z?"include":"omit");const ve=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:ve?z:void 0};re=i&&new n(v,oe);let B=await(i?H(re,j):H(v,oe));const q=d&&(T==="stream"||T==="response");if(d&&(R||q&&ae)){const de={};["status","statusText","headers"].forEach(Ae=>{de[Ae]=B[Ae]});const pe=V.toFiniteNumber(B.headers.get("content-length")),[A,be]=R&&py(pe,Du(my(R),!0))||[];B=new r(gy(B.body,xy,A,()=>{be&&be(),ae&&ae()}),de)}T=T||"text";let E=await f[V.findKey(f,T)||"text"](B,g);return!q&&ae&&ae(),await new Promise((de,pe)=>{MS(de,pe,{data:E,headers:Gn.from(B.headers),status:B.status,statusText:B.statusText,config:g,request:re})})}catch(ve){throw ae&&ae(),ve&&ve.name==="TypeError"&&/Load failed|fetch/i.test(ve.message)?Object.assign(new Me("Network Error",Me.ERR_NETWORK,g,re),{cause:ve.cause||ve}):Me.from(ve,ve&&ve.code,g,re)}}},k4=new Map,FS=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let o=i.length,l=o,c,u,d=k4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:w4(t)),d=u;return u};FS();const Lg={http:UM,xhr:g4,fetch:{get:FS}};V.forEach(Lg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const by=e=>`- ${e}`,S4=e=>V.isFunction(e)||e===null||e===!1;function C4(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let o=0;o`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?o.length>1?`since : +`+o.map(by).join(` +`):" "+by(o[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const BS={getAdapter:C4,adapters:Lg};function Pf(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $o(null,e)}function wy(e){return Pf(e),e.headers=Gn.from(e.headers),e.data=Nf.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),BS.getAdapter(e.adapter||Nl.adapter,e)(e).then(function(r){return Pf(e),r.data=Nf.call(e,e.transformResponse,r),r.headers=Gn.from(r.headers),r},function(r){return DS(r)||(Pf(e),r&&r.response&&(r.response.data=Nf.call(e,e.transformResponse,r.response),r.response.headers=Gn.from(r.response.headers))),Promise.reject(r)})}const US="1.13.2",kd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{kd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ky={};kd.transitional=function(t,n,r){function s(i,o){return"[Axios v"+US+"] Transitional option '"+i+"'"+o+(r?". "+r:"")}return(i,o,l)=>{if(t===!1)throw new Me(s(o," has been removed"+(n?" in "+n:"")),Me.ERR_DEPRECATED);return n&&!ky[o]&&(ky[o]=!0,console.warn(s(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,o,l):!0}};kd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function E4(e,t,n){if(typeof e!="object")throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],o=t[i];if(o){const l=e[i],c=l===void 0||o(l,i,e);if(c!==!0)throw new Me("option "+i+" must be "+c,Me.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Me("Unknown option "+i,Me.ERR_BAD_OPTION)}}const Wc={assertOptions:E4,validators:kd},Hr=Wc.validators;let Li=class{constructor(t){this.defaults=t||{},this.interceptors={request:new dy,response:new dy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fi(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Wc.assertOptions(r,{silentJSONParsing:Hr.transitional(Hr.boolean),forcedJSONParsing:Hr.transitional(Hr.boolean),clarifyTimeoutError:Hr.transitional(Hr.boolean)},!1),s!=null&&(V.isFunction(s)?n.paramsSerializer={serialize:s}:Wc.assertOptions(s,{encode:Hr.function,serialize:Hr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Wc.assertOptions(n,{baseUrl:Hr.spelling("baseURL"),withXsrfToken:Hr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=i&&V.merge(i.common,i[n.method]);i&&V.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Gn.concat(o,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,f=0,p;if(!c){const g=[wy.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,d=Promise.resolve(n);f{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const o=new Promise(l=>{r.subscribe(l),i=l}).then(s);return o.cancel=function(){r.unsubscribe(i)},o},t(function(i,o,l){r.reason||(r.reason=new $o(i,o,l),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 VS(function(s){t=s}),cancel:t}}};function N4(e){return function(n){return e.apply(null,n)}}function P4(e){return V.isObject(e)&&e.isAxiosError===!0}const Cm={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(Cm).forEach(([e,t])=>{Cm[t]=e});function zS(e){const t=new Li(e),n=yS(Li.prototype.request,t);return V.extend(n,Li.prototype,t,{allOwnKeys:!0}),V.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return zS(Fi(e,s))},n}const Ht=zS(Nl);Ht.Axios=Li;Ht.CanceledError=$o;Ht.CancelToken=j4;Ht.isCancel=DS;Ht.VERSION=US;Ht.toFormData=wd;Ht.AxiosError=Me;Ht.Cancel=Ht.CanceledError;Ht.all=function(t){return Promise.all(t)};Ht.spread=N4;Ht.isAxiosError=P4;Ht.mergeConfig=Fi;Ht.AxiosHeaders=Gn;Ht.formToJSON=e=>AS(V.isHTMLForm(e)?new FormData(e):e);Ht.getAdapter=BS.getAdapter;Ht.HttpStatusCode=Cm;Ht.default=Ht;const{Axios:A8,AxiosError:D8,CanceledError:M8,isCancel:O8,CancelToken:I8,VERSION:F8,all:B8,Cancel:U8,isAxiosError:V8,spread:z8,toFormData:$8,AxiosHeaders:H8,HttpStatusCode:q8,formToJSON:W8,getAdapter:G8,mergeConfig:K8}=Ht,we=Ht.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),Em="lakemeter:session-expired";function Fr(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let jm=!1;const R4=()=>{jm=!1};we.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),jm||(jm=!0,window.dispatchEvent(new CustomEvent(Em,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const T4=async()=>{const{data:e}=await we.get("/estimates/me/info");return e},Sy=async e=>{const{data:t}=await we.get("/estimates/",{params:e});return t},L4=async e=>{const{data:t}=await we.get(`/estimates/${e}`);return t},A4=async e=>{const{data:t}=await we.get(`/estimates/${e}/full`);return t},D4=async e=>{const{data:t}=await we.post("/estimates/",e);return t},M4=async(e,t)=>{const{data:n}=await we.put(`/estimates/${e}`,t);return n},O4=async e=>{await we.delete(`/estimates/${e}`)},I4=async e=>{const{data:t}=await we.post(`/estimates/${e}/duplicate`);return t},F4=async(e,t)=>{const{data:n}=await we.post(`/estimates/${e}/clone`,{new_name:t});return n},B4=async(e,t)=>{const{data:n}=await we.post(`/line-items/${e}/clone`,{new_name:t});return n},U4=async e=>{const{data:t}=await we.get(`/line-items/estimate/${e}`);return t},V4=async e=>{const{data:t}=await we.post("/line-items/",e);return t},z4=async(e,t)=>{const{data:n}=await we.put(`/line-items/${e}`,t);return n},$4=async e=>{await we.delete(`/line-items/${e}`)},H4=async(e,t)=>{await we.post("/line-items/reorder",t,{params:{estimate_id:e}})},q4=async e=>{await we.post("/estimates/reorder",e)},W4=async()=>{const{data:e}=await we.get("/workload-types");return e},gc=async e=>{var n;const{data:t}=await we.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},G4=async e=>{const{data:t}=await we.get("/tiers",{params:e?{cloud:e}:{}}),n=Fr(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},K4=async()=>{const{data:e}=await we.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},Q4=async()=>{const{data:e}=await we.get("/dbsql/warehouse-sizes"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},Y4=async()=>{const{data:e}=await we.get("/dlt/editions"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},X4=async()=>{const{data:e}=await we.get("/reference/fmapi-models");return e},Cy=async()=>{const{data:e}=await we.get("/instances/families"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},J4=async(e,t,n)=>{const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await we.get("/instances/types",{params:r});return(Array.isArray(s)?s:(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(o=>{const l=o.instance_type||o.id||o.name||"";return{id:l,name:l,vcpus:o.vcpus,memory_gb:o.memory_gb,dbu_rate:o.dbu_rate,instance_family:o.instance_family,vm_pricing:o.vm_pricing}})},Z4=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await we.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:o,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(f=>({cloud:o,region:l,instance_type:c,pricing_tier:f.pricing_tier,payment_option:f.payment_option,cost_per_hour:f.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Ey=async()=>{const{data:e}=await we.get("/dbsql/warehouse-types"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},jy=async(e,t)=>{const{data:n}=await we.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Fr(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ny=async(e,t)=>{const{data:n}=await we.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Fr(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Py=async()=>{const{data:e}=await we.get("/serverless/modes"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},eO=async e=>{var n;const{data:t}=await we.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ry=async e=>{const{data:t}=await we.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Fr(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Nm=async()=>{const{data:e}=await we.get("/fmapi/databricks-models/list"),t=Fr(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},$S=async(e,t,n)=>{const{data:r}=await we.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Fr(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},tO=async e=>{const t=[];try{const n=await Nm(),r=5;for(let s=0;s$S(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},nO=async()=>{const{data:e}=await we.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},HS=async e=>{const{data:t}=await we.get("/fmapi/proprietary-models",{params:e});return t},rO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>HS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},sO=async()=>{const{data:e}=await we.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},iO=async e=>{const{data:t}=await we.get("/vm-pricing",{params:e});return t},oO=async()=>{const{data:e}=await we.get("/vm-pricing/tiers");return e},aO=async()=>{const{data:e}=await we.get("/vm-pricing/payment-options");return e},qS=async e=>{const{data:t}=await we.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},lO=async()=>{const{data:e}=await we.get("/export/estimates/excel",{responseType:"blob"});return e},cO=async e=>{const{data:t}=await we.post("/calculate/jobs-classic",e);return t},uO=async e=>{const{data:t}=await we.post("/calculate/all-purpose-classic",e);return t},dO=async e=>{const{data:t}=await we.post("/calculate/jobs-serverless",e);return t},fO=async e=>{const{data:t}=await we.post("/calculate/all-purpose-serverless",e);return t},WS=async e=>{const{data:t}=await we.post("/calculate/dbsql-classic-pro",e);return t},GS=async e=>{const{data:t}=await we.post("/calculate/dbsql-serverless",e);return t},KS=async e=>{const{data:t}=await we.post("/calculate/dlt-classic",e);return t},QS=async e=>{const{data:t}=await we.post("/calculate/dlt-serverless",e);return t},YS=async e=>{const{data:t}=await we.post("/calculate/vector-search",e);return t},XS=async e=>{const{data:t}=await we.post("/calculate/model-serving",e);return t},JS=async e=>{const{data:t}=await we.post("/calculate/fmapi-databricks",e);return t},ZS=async e=>{const{data:t}=await we.post("/calculate/fmapi-proprietary",e);return t},eC=async e=>{const{data:t}=await we.post("/calculate/lakebase",e);return t},Ty=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?dO(n):cO(n);case"ALL_PURPOSE":return t?fO(n):uO(n);case"DLT":return t?QS(n):KS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?GS(n):WS(n);case"VECTOR_SEARCH":return YS(n);case"MODEL_SERVING":return XS(n);case"FMAPI_DATABRICKS":return JS(n);case"FMAPI_PROPRIETARY":return ZS(n);case"LAKEBASE":return eC(n);default:throw new Error(`Unknown workload type: ${e}`)}},pO="/static/pricing";async function as(e){const t=await fetch(`${pO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function mO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,o,l,c,u]=await Promise.all([as("instance-dbu-rates.json"),as("dbu-multipliers.json"),as("dbu-rates.json"),as("dbsql-rates.json"),as("dbsql-warehouse-config.json"),as("vector-search-rates.json"),as("model-serving-rates.json"),as("fmapi-databricks-rates.json"),as("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:o,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),tC()}}function tC(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Pm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function nC(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,o=e.dbuMultipliers[i];return o!=null&&o.multiplier?o.multiplier:2}function Ag(e,t,n,r,s){const i=r.toUpperCase(),o=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[o];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const f of Object.keys(e.dbuRates))if(f.startsWith(`${t.toLowerCase()}:`)&&f.endsWith(`:${i}`)){const p=e.dbuRates[f];if(p&&p[s]!==void 0)return p[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function hO(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function al(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function gO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function xO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function vO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function yO(e,t,n,r,s,i,o){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${o}`;return e.fmapiProprietaryRates[l]??null}const _O={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Ly=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function rC(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Ly;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,o=e.dbuRates[i];if(!o||Object.keys(o).length===0)return Ly;const l=new Set;for(const c of Object.keys(o)){const u=_O[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),Array.from(l).sort()}function bO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const xc={},wO="v6",cs=`lakemeter_reference_data_${wO}`,kO=4*60*60*1e3;function SO(){try{const e=localStorage.getItem(cs);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>kO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(cs),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(cs),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(cs),null;return t}catch{return localStorage.removeItem(cs),null}}function CO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(cs,JSON.stringify(t))}catch{}}function EO(){try{localStorage.removeItem(cs)}catch{}}const Rf=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Tf=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Lf=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Af=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Df=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Mf=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Of=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],_s=eM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0}],cloudProviders:Rf,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Tf,dbsqlWarehouseTypes:[],dltEditions:Lf,fmapiProviders:Of,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Af,vmPaymentOptions:Df,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Mf,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:tC(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await T4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Sy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const o=await Sy();e({estimates:o,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await L4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await A4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await D4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await M4(n,r);return e(i=>{var o;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((o=i.currentEstimate)==null?void 0:o.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await O4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(o=>o.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await U4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await V4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await z4(n,r);return e(i=>({lineItems:i.lineItems.map(o=>o.line_item_id===n?{...o,...s}:o),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await $4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,o,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=SO();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Rf,dbsqlSizes:u.dbsqlSizes||Tf,dltEditions:u.dltEditions||Lf,fmapiProviders:u.fmapiProviders||Of,vmPricingTiers:u.vmPricingTiers||Af,vmPaymentOptions:u.vmPaymentOptions||Df,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((o=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&o.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Mf,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,f,p,h,g,v,b,x,y,_,S,R,k,T,D,z,j,H,X,re,ae]=await Promise.all([W4().catch(()=>r.workloadTypes),K4().catch(()=>Rf),Q4().catch(()=>Tf),Y4().catch(()=>Lf),X4().catch(()=>Of),oO().catch(()=>Af),aO().catch(()=>Df),nO().catch(()=>null),sO().catch(()=>null),Py().catch(()=>Mf),Promise.resolve([]),Ry(s).catch(()=>[]),gc("aws").catch(()=>[]),gc("azure").catch(()=>[]),gc("gcp").catch(()=>[]),Ny(s).catch(()=>[]),jy(s).catch(()=>[]),tO(s).catch(()=>[]),rO(s).catch(()=>[]),Cy().catch(()=>[]),Ey().catch(()=>[]),Nm().catch(()=>[])]),me={aws:R,azure:k,gcp:T},ve=R,oe={};j.forEach(q=>{const E=`${q.model}:${q.rate_type}`;oe[E]=q});const B={};H.forEach(q=>{const E=`${q.provider}:${q.model}:${q.rate_type}`;B[E]=q}),e({workloadTypes:u,cloudProviders:d,dbsqlSizes:f,dltEditions:p,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:ve,regionsMap:me,photonMultipliers:D,vectorSearchModes:z,fmapiDatabricksRates:oe,fmapiProprietaryRates:B,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:ae,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),CO({workloadTypes:u,cloudProviders:d,dbsqlSizes:f,dltEditions:p,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:ve,regionsMap:me,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:ae})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{EO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await mO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var o;const r=n.toLowerCase(),s=(o=t()._regionsCache)==null?void 0:o[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await G4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],o=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await Cy();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ry(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Ey();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Nm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await iO({cloud:n,region:r}),i={};s.forEach(o=>{const l=`${o.cloud.toLowerCase()}:${o.region}:${o.instance_type}:${o.pricing_tier}:${o.payment_option}`;i[l]=o.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",o="NA")=>{var p;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":o||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in xc){await xc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const f=Z4({cloud:n.toUpperCase(),region:r,instance_type:s});xc[d]=f;try{const h=await f;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((p=h[0])==null?void 0:p.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete xc[d]}},getVMPrice:(n,r,s,i="on_demand",o="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":o||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const f=`${u}:${r}:${s}:${i}:NA`;if(c[f]!==void 0)return c[f];for(const p of Object.keys(c)){const h=p.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[p]}for(const p of Object.keys(c)){const h=p.split(":");if(h[0]===u&&h[2]===s)return c[p]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),o=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(o&&Date.now()-o.timestamp{d[f.product_type]=f.dbu_price}),e(f=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...f._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:o,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Ag(l,r,s,i,n);if(u>0)return u}return o[n]||0},fetchServerlessModes:async()=>{try{const n=await Py();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ny(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await jy(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await $S(n,r,s);if(i.length>0){const o=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:o}})),o}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const o=await HS({provider:n,model:r,cloud:s,rate_type:i});if(o.length>0){const l=o[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(o){return console.error("Failed to fetch FMAPI Proprietary rate:",o),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),o=`${n}:${r}:${s}`;return i[o]||null},calculateWorkloadCost:async(n,r,s,i)=>{var o;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ty(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const p=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=p==="on_demand"||p==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ty(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:p,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await QS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const p=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=p==="on_demand"||p==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await KS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:p,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const f=((o=n.dbsql_warehouse_type)==null?void 0:o.toUpperCase())||"SERVERLESS";if(f==="SERVERLESS")c=await GS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const p=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=p==="on_demand"||p==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await WS({...l,warehouse_type:f,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:p,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await YS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await XS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await JS({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await ZS({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await eC({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break}return c&&e(f=>{const p=new Set(f.calculatingCostIds);return p.delete(n.line_item_id),{workloadCosts:{...f.workloadCosts,[n.line_item_id]:c},calculatingCostIds:p,isCalculatingCost:p.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:o}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=o[g.line_item_id];return!v||!v.success}),d.length===0))return;const f=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:f});const p=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const o=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,o,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await F4(n,r),i=t().estimates.find(l=>l.estimate_id===n),o={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[o,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await B4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function jO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const NO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,PO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,RO={};function Ay(e,t){return(RO.jsx?PO:NO).test(e)}const TO=/[ \t\n\f\r]/g;function LO(e){return typeof e=="object"?e.type==="text"?Dy(e.value):!1:Dy(e)}function Dy(e){return e.replace(TO,"")===""}class Pl{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Pl.prototype.normal={};Pl.prototype.property={};Pl.prototype.space=void 0;function sC(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Pl(n,r,t)}function Rm(e){return e.toLowerCase()}class Kn{constructor(t,n){this.attribute=n,this.property=t}}Kn.prototype.attribute="";Kn.prototype.booleanish=!1;Kn.prototype.boolean=!1;Kn.prototype.commaOrSpaceSeparated=!1;Kn.prototype.commaSeparated=!1;Kn.prototype.defined=!1;Kn.prototype.mustUseProperty=!1;Kn.prototype.number=!1;Kn.prototype.overloadedBoolean=!1;Kn.prototype.property="";Kn.prototype.spaceSeparated=!1;Kn.prototype.space=void 0;let AO=0;const Fe=Hi(),Gt=Hi(),Tm=Hi(),ne=Hi(),yt=Hi(),yo=Hi(),Zn=Hi();function Hi(){return 2**++AO}const Lm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Fe,booleanish:Gt,commaOrSpaceSeparated:Zn,commaSeparated:yo,number:ne,overloadedBoolean:Tm,spaceSeparated:yt},Symbol.toStringTag,{value:"Module"})),If=Object.keys(Lm);class Dg extends Kn{constructor(t,n,r,s){let i=-1;if(super(t,n),My(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&FO.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Oy,VO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Oy.test(i)){let o=i.replace(IO,UO);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}s=Dg}return new s(r,t)}function UO(e){return"-"+e.toLowerCase()}function VO(e){return e.charAt(1).toUpperCase()}const zO=sC([iC,DO,lC,cC,uC],"html"),Mg=sC([iC,MO,lC,cC,uC],"svg");function $O(e){return e.join(" ").trim()}var Og={},Iy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,HO=/\n/g,qO=/^\s*/,WO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,GO=/^:\s*/,KO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,QO=/^[;\s]*/,YO=/^\s+|\s+$/g,XO=` +`,Fy="/",By="*",ki="",JO="comment",ZO="declaration";function eI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(HO);v&&(n+=v.length);var b=g.lastIndexOf(XO);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new o(g),u(),v}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(qO)}function d(g){var v;for(g=g||[];v=f();)v!==!1&&g.push(v);return g}function f(){var g=i();if(!(Fy!=e.charAt(0)||By!=e.charAt(1))){for(var v=2;ki!=e.charAt(v)&&(By!=e.charAt(v)||Fy!=e.charAt(v+1));)++v;if(v+=2,ki===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:JO,comment:b})}}function p(){var g=i(),v=c(WO);if(v){if(f(),!c(GO))return l("property missing ':'");var b=c(KO),x=g({type:ZO,property:Uy(v[0].replace(Iy,ki)),value:b?Uy(b[0].replace(Iy,ki)):ki});return c(QO),x}}function h(){var g=[];d(g);for(var v;v=p();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function Uy(e){return e?e.replace(YO,ki):ki}var tI=eI,nI=ps&&ps.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Og,"__esModule",{value:!0});Og.default=sI;const rI=nI(tI);function sI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,rI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:o,value:l}=i;s?t(o,l,i):l&&(n=n||{},n[o]=l)}),n}var Sd={};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.camelCase=void 0;var iI=/^--[a-zA-Z0-9_-]+$/,oI=/-([a-z])/g,aI=/^[^-]+$/,lI=/^-(webkit|moz|ms|o|khtml)-/,cI=/^-(ms)-/,uI=function(e){return!e||aI.test(e)||iI.test(e)},dI=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},fI=function(e,t){return t===void 0&&(t={}),uI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(cI,Vy):e=e.replace(lI,Vy),e.replace(oI,dI))};Sd.camelCase=fI;var pI=ps&&ps.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},mI=pI(Og),hI=Sd;function Am(e,t){var n={};return!e||typeof e!="string"||(0,mI.default)(e,function(r,s){r&&s&&(n[(0,hI.camelCase)(r,t)]=s)}),n}Am.default=Am;var gI=Am;const xI=qu(gI),dC=fC("end"),Ig=fC("start");function fC(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function vI(e){const t=Ig(e),n=dC(e);if(t&&n)return{start:t,end:n}}function Ta(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?zy(e.position):"start"in e||"end"in e?zy(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return $y(e&&e.line)+":"+$y(e&&e.column)}function zy(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function $y(e){return e&&typeof e=="number"?e:1}class jn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},o=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(o=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Ta(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}jn.prototype.file="";jn.prototype.name="";jn.prototype.reason="";jn.prototype.message="";jn.prototype.stack="";jn.prototype.column=void 0;jn.prototype.line=void 0;jn.prototype.ancestors=void 0;jn.prototype.cause=void 0;jn.prototype.fatal=void 0;jn.prototype.place=void 0;jn.prototype.ruleId=void 0;jn.prototype.source=void 0;const Fg={}.hasOwnProperty,yI=new Map,_I=/[A-Z]/g,bI=new Set(["table","tbody","thead","tfoot","tr"]),wI=new Set(["td","th"]),pC="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function kI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=TI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=RI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Mg:zO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=mC(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function mC(e,t,n){if(t.type==="element")return SI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return CI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return jI(e,t,n);if(t.type==="mdxjsEsm")return EI(e,t);if(t.type==="root")return NI(e,t,n);if(t.type==="text")return PI(e,t)}function SI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=gC(e,t.tagName,!1),o=LI(e,t);let l=Ug(e,t);return bI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!LO(c):!0})),hC(e,o,i,t),Bg(o,l),e.ancestors.pop(),e.schema=r,e.create(t,i,o,n)}function CI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ll(e,t.position)}function EI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ll(e,t.position)}function jI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Mg,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:gC(e,t.name,!0),o=AI(e,t),l=Ug(e,t);return hC(e,o,i,t),Bg(o,l),e.ancestors.pop(),e.schema=r,e.create(t,i,o,n)}function NI(e,t,n){const r={};return Bg(r,Ug(e,t)),e.create(t,e.Fragment,r,n)}function PI(e,t){return t.value}function hC(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Bg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function RI(e,t,n){return r;function r(s,i,o,l){const u=Array.isArray(o.children)?n:t;return l?u(i,o,l):u(i,o)}}function TI(e,t){return n;function n(r,s,i,o){const l=Array.isArray(i.children),c=Ig(r);return t(s,i,o,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function LI(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Fg.call(t.properties,s)){const i=DI(e,s,t.properties[s]);if(i){const[o,l]=i;e.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&wI.has(t.tagName)?r=l:n[o]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function AI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const o=i.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ll(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ll(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Ug(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:yI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);i0?(ir(e,e.length,0,t),e):t}const Wy={}.hasOwnProperty;function vC(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Dr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const On=ui(/[A-Za-z]/),Cn=ui(/[\dA-Za-z]/),$I=ui(/[#-'*+\--9=?A-Z^-~]/);function Mu(e){return e!==null&&(e<32||e===127)}const Mm=ui(/\d/),HI=ui(/[\dA-Fa-f]/),qI=ui(/[!-/:-@[-`{-~]/);function je(e){return e!==null&&e<-2}function ht(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const Cd=ui(new RegExp("\\p{P}|\\p{S}","u")),Bi=ui(/\s/);function ui(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function qo(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(o=String.fromCharCode(i,l),s=1):o="�"}else o=String.fromCharCode(i);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+s+1,o=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Ye(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return o;function o(c){return He(c)?(e.enter(n),l(c)):t(c)}function l(c){return He(c)&&i++o))return;const T=t.events.length;let D=T,z,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if(z){j=t.events[D][1].end;break}z=!0}for(x(r),k=T;k_;){const R=n[S];t.containerState=R[1],R[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function YI(e,t,n){return Ye(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Do(e){if(e===null||ht(e)||Bi(e))return 1;if(Cd(e))return 2}function Ed(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const f={...e[r][1].end},p={...e[n][1].start};Ky(f,-c),Ky(p,c),o={type:c>1?"strongSequence":"emphasisSequence",start:f,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:p},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},e[r][1].end={...o.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=xr(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=xr(u,[["enter",s,t],["enter",o,t],["exit",o,t],["enter",i,t]]),u=xr(u,Ed(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=xr(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=xr(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,ir(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&He(k)?Ye(e,y,"linePrefix",i+1)(k):y(k)}function y(k){return k===null||je(k)?e.check(Qy,v,S)(k):(e.enter("codeFlowValue"),_(k))}function _(k){return k===null||je(k)?(e.exit("codeFlowValue"),y(k)):(e.consume(k),_)}function S(k){return e.exit("codeFenced"),t(k)}function R(k,T,D){let z=0;return j;function j(me){return k.enter("lineEnding"),k.consume(me),k.exit("lineEnding"),H}function H(me){return k.enter("codeFencedFence"),He(me)?Ye(k,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(me):X(me)}function X(me){return me===l?(k.enter("codeFencedFenceSequence"),re(me)):D(me)}function re(me){return me===l?(z++,k.consume(me),re):z>=o?(k.exit("codeFencedFenceSequence"),He(me)?Ye(k,ae,"whitespace")(me):ae(me)):D(me)}function ae(me){return me===null||je(me)?(k.exit("codeFencedFence"),T(me)):D(me)}}}function lF(e,t,n){const r=this;return s;function s(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i)}function i(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Bf={name:"codeIndented",tokenize:uF},cF={partial:!0,tokenize:dF};function uF(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Ye(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?c(u):je(u)?e.attempt(cF,o,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||je(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function dF(e,t,n){const r=this;return s;function s(o){return r.parser.lazy[r.now().line]?n(o):je(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):Ye(e,i,"linePrefix",5)(o)}function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):je(o)?s(o):n(o)}}const fF={name:"codeText",previous:mF,resolve:pF,tokenize:hF};function pF(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&la(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),la(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),la(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function SC(e,t,n,r,s,i,o,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return f;function f(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),p):x===null||x===32||x===41||Mu(x)?n(x):(e.enter(r),e.enter(o),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function p(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),p(x)):x===null||x===60||je(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||ht(x))?(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):je(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||je(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!He(h)),h===92?p:f)}function p(h){return h===91||h===92||h===93?(e.consume(h),l++,f):f(h)}}function EC(e,t,n,r,s,i){let o;return l;function l(p){return p===34||p===39||p===40?(e.enter(r),e.enter(s),e.consume(p),e.exit(s),o=p===40?41:p,c):n(p)}function c(p){return p===o?(e.enter(s),e.consume(p),e.exit(s),e.exit(r),t):(e.enter(i),u(p))}function u(p){return p===o?(e.exit(i),c(o)):p===null?n(p):je(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),Ye(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===o||p===null||je(p)?(e.exit("chunkString"),u(p)):(e.consume(p),p===92?f:d)}function f(p){return p===o||p===92?(e.consume(p),d):d(p)}}function La(e,t){let n;return r;function r(s){return je(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):He(s)?Ye(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const kF={name:"definition",tokenize:CF},SF={partial:!0,tokenize:EF};function CF(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),o(h)}function o(h){return CC.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Dr(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return ht(h)?La(e,u)(h):u(h)}function u(h){return SC(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(SF,f,f)(h)}function f(h){return He(h)?Ye(e,p,"whitespace")(h):p(h)}function p(h){return h===null||je(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function EF(e,t,n){return r;function r(l){return ht(l)?La(e,s)(l):n(l)}function s(l){return EC(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return He(l)?Ye(e,o,"whitespace")(l):o(l)}function o(l){return l===null||je(l)?t(l):n(l)}}const jF={name:"hardBreakEscape",tokenize:NF};function NF(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return je(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const PF={name:"headingAtx",resolve:RF,tokenize:TF};function RF(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ir(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function TF(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||ht(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||je(d)?(e.exit("atxHeading"),t(d)):He(d)?Ye(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||ht(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const LF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Xy=["pre","script","style","textarea"],AF={concrete:!0,name:"htmlFlow",resolveTo:OF,tokenize:IF},DF={partial:!0,tokenize:BF},MF={partial:!0,tokenize:FF};function OF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function IF(e,t,n){const r=this;let s,i,o,l,c;return u;function u(A){return d(A)}function d(A){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(A),f}function f(A){return A===33?(e.consume(A),p):A===47?(e.consume(A),i=!0,v):A===63?(e.consume(A),s=3,r.interrupt?t:E):On(A)?(e.consume(A),o=String.fromCharCode(A),b):n(A)}function p(A){return A===45?(e.consume(A),s=2,h):A===91?(e.consume(A),s=5,l=0,g):On(A)?(e.consume(A),s=4,r.interrupt?t:E):n(A)}function h(A){return A===45?(e.consume(A),r.interrupt?t:E):n(A)}function g(A){const be="CDATA[";return A===be.charCodeAt(l++)?(e.consume(A),l===be.length?r.interrupt?t:X:g):n(A)}function v(A){return On(A)?(e.consume(A),o=String.fromCharCode(A),b):n(A)}function b(A){if(A===null||A===47||A===62||ht(A)){const be=A===47,Ae=o.toLowerCase();return!be&&!i&&Xy.includes(Ae)?(s=1,r.interrupt?t(A):X(A)):LF.includes(o.toLowerCase())?(s=6,be?(e.consume(A),x):r.interrupt?t(A):X(A)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(A):i?y(A):_(A))}return A===45||Cn(A)?(e.consume(A),o+=String.fromCharCode(A),b):n(A)}function x(A){return A===62?(e.consume(A),r.interrupt?t:X):n(A)}function y(A){return He(A)?(e.consume(A),y):j(A)}function _(A){return A===47?(e.consume(A),j):A===58||A===95||On(A)?(e.consume(A),S):He(A)?(e.consume(A),_):j(A)}function S(A){return A===45||A===46||A===58||A===95||Cn(A)?(e.consume(A),S):R(A)}function R(A){return A===61?(e.consume(A),k):He(A)?(e.consume(A),R):_(A)}function k(A){return A===null||A===60||A===61||A===62||A===96?n(A):A===34||A===39?(e.consume(A),c=A,T):He(A)?(e.consume(A),k):D(A)}function T(A){return A===c?(e.consume(A),c=null,z):A===null||je(A)?n(A):(e.consume(A),T)}function D(A){return A===null||A===34||A===39||A===47||A===60||A===61||A===62||A===96||ht(A)?R(A):(e.consume(A),D)}function z(A){return A===47||A===62||He(A)?_(A):n(A)}function j(A){return A===62?(e.consume(A),H):n(A)}function H(A){return A===null||je(A)?X(A):He(A)?(e.consume(A),H):n(A)}function X(A){return A===45&&s===2?(e.consume(A),ve):A===60&&s===1?(e.consume(A),oe):A===62&&s===4?(e.consume(A),de):A===63&&s===3?(e.consume(A),E):A===93&&s===5?(e.consume(A),q):je(A)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(DF,pe,re)(A)):A===null||je(A)?(e.exit("htmlFlowData"),re(A)):(e.consume(A),X)}function re(A){return e.check(MF,ae,pe)(A)}function ae(A){return e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),me}function me(A){return A===null||je(A)?re(A):(e.enter("htmlFlowData"),X(A))}function ve(A){return A===45?(e.consume(A),E):X(A)}function oe(A){return A===47?(e.consume(A),o="",B):X(A)}function B(A){if(A===62){const be=o.toLowerCase();return Xy.includes(be)?(e.consume(A),de):X(A)}return On(A)&&o.length<8?(e.consume(A),o+=String.fromCharCode(A),B):X(A)}function q(A){return A===93?(e.consume(A),E):X(A)}function E(A){return A===62?(e.consume(A),de):A===45&&s===2?(e.consume(A),E):X(A)}function de(A){return A===null||je(A)?(e.exit("htmlFlowData"),pe(A)):(e.consume(A),de)}function pe(A){return e.exit("htmlFlow"),t(A)}}function FF(e,t,n){const r=this;return s;function s(o){return je(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):n(o)}function i(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function BF(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Rl,t,n)}}const UF={name:"htmlText",tokenize:VF};function VF(e,t,n){const r=this;let s,i,o;return l;function l(E){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(E),c}function c(E){return E===33?(e.consume(E),u):E===47?(e.consume(E),R):E===63?(e.consume(E),_):On(E)?(e.consume(E),D):n(E)}function u(E){return E===45?(e.consume(E),d):E===91?(e.consume(E),i=0,g):On(E)?(e.consume(E),y):n(E)}function d(E){return E===45?(e.consume(E),h):n(E)}function f(E){return E===null?n(E):E===45?(e.consume(E),p):je(E)?(o=f,oe(E)):(e.consume(E),f)}function p(E){return E===45?(e.consume(E),h):f(E)}function h(E){return E===62?ve(E):E===45?p(E):f(E)}function g(E){const de="CDATA[";return E===de.charCodeAt(i++)?(e.consume(E),i===de.length?v:g):n(E)}function v(E){return E===null?n(E):E===93?(e.consume(E),b):je(E)?(o=v,oe(E)):(e.consume(E),v)}function b(E){return E===93?(e.consume(E),x):v(E)}function x(E){return E===62?ve(E):E===93?(e.consume(E),x):v(E)}function y(E){return E===null||E===62?ve(E):je(E)?(o=y,oe(E)):(e.consume(E),y)}function _(E){return E===null?n(E):E===63?(e.consume(E),S):je(E)?(o=_,oe(E)):(e.consume(E),_)}function S(E){return E===62?ve(E):_(E)}function R(E){return On(E)?(e.consume(E),k):n(E)}function k(E){return E===45||Cn(E)?(e.consume(E),k):T(E)}function T(E){return je(E)?(o=T,oe(E)):He(E)?(e.consume(E),T):ve(E)}function D(E){return E===45||Cn(E)?(e.consume(E),D):E===47||E===62||ht(E)?z(E):n(E)}function z(E){return E===47?(e.consume(E),ve):E===58||E===95||On(E)?(e.consume(E),j):je(E)?(o=z,oe(E)):He(E)?(e.consume(E),z):ve(E)}function j(E){return E===45||E===46||E===58||E===95||Cn(E)?(e.consume(E),j):H(E)}function H(E){return E===61?(e.consume(E),X):je(E)?(o=H,oe(E)):He(E)?(e.consume(E),H):z(E)}function X(E){return E===null||E===60||E===61||E===62||E===96?n(E):E===34||E===39?(e.consume(E),s=E,re):je(E)?(o=X,oe(E)):He(E)?(e.consume(E),X):(e.consume(E),ae)}function re(E){return E===s?(e.consume(E),s=void 0,me):E===null?n(E):je(E)?(o=re,oe(E)):(e.consume(E),re)}function ae(E){return E===null||E===34||E===39||E===60||E===61||E===96?n(E):E===47||E===62||ht(E)?z(E):(e.consume(E),ae)}function me(E){return E===47||E===62||ht(E)?z(E):n(E)}function ve(E){return E===62?(e.consume(E),e.exit("htmlTextData"),e.exit("htmlText"),t):n(E)}function oe(E){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),B}function B(E){return He(E)?Ye(e,q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E):q(E)}function q(E){return e.enter("htmlTextData"),o(E)}}const $g={name:"labelEnd",resolveAll:qF,resolveTo:WF,tokenize:GF},zF={tokenize:KF},$F={tokenize:QF},HF={tokenize:YF};function qF(e){let t=-1;const n=[];for(;++t=3&&(u===null||je(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),He(u)?Ye(e,l,"whitespace")(u):l(u))}}const Un={continuation:{tokenize:oB},exit:lB,name:"list",tokenize:iB},rB={partial:!0,tokenize:cB},sB={partial:!0,tokenize:aB};function iB(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,o=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Mm(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Gc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Mm(h)&&++o<10?(e.consume(h),c):(!r.interrupt||o<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Rl,r.interrupt?n:d,e.attempt(rB,p,f))}function d(h){return r.containerState.initialBlankLine=!0,i++,p(h)}function f(h){return He(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),p):n(h)}function p(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function oB(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Rl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ye(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!He(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(sB,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ye(e,e.attempt(Un,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function aB(e,t,n){const r=this;return Ye(e,s,"listItemIndent",r.containerState.size+1);function s(i){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(i):n(i)}}function lB(e){e.exit(this.containerState.type)}function cB(e,t,n){const r=this;return Ye(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const o=r.events[r.events.length-1];return!He(i)&&o&&o[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Jy={name:"setextUnderline",resolveTo:uB,tokenize:dB};function uB(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",o,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function dB(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,f;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){f=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),s=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),He(u)?Ye(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||je(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const fB={tokenize:pB};function pB(e){const t=this,n=e.attempt(Rl,r,e.attempt(this.parser.constructs.flowInitial,s,Ye(e,e.attempt(this.parser.constructs.flow,s,e.attempt(vF,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const mB={resolveAll:NC()},hB=jC("string"),gB=jC("text");function jC(e){return{resolveAll:NC(e==="text"?xB:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,o,l);return o;function o(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const f=s[d];let p=-1;if(f)for(;++p-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}i>0&&o.push(e[s].slice(0,i))}return o}function RB(e,t){let n=-1;const r=[];let s;for(;++n0){const Be=K.tokenStack[K.tokenStack.length-1];(Be[1]||e_).call(K,void 0,Be[0])}for(F.position={start:Ds(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Ds(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},Ce=-1;++Ce0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function HB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function qB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function WB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=qo(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let o,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function GB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function KB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function TC(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const o=s[s.length-1];return o&&o.type==="text"?o.value+=r:s.push({type:"text",value:r}),s}function QB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return TC(e,t);const s={src:qo(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function YB(e,t){const n={src:qo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function XB(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function JB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return TC(e,t);const s={href:qo(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function ZB(e,t){const n={href:qo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function e6(e,t,n){const r=e.all(t),s=n?t6(n):LC(t),i={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let f;d&&d.type==="element"&&d.tagName==="p"?f=d:(f={type:"element",tagName:"p",properties:{},children:[]},r.unshift(f)),f.children.length>0&&f.children.unshift({type:"text",value:" "}),f.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function n6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Ig(t.children[1]),c=dC(t.children[t.children.length-1]);l&&c&&(o.position={start:l,end:c}),s.push(o)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function a6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(r_(t.slice(s),s>0,!1)),i.join("")}function r_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===t_||i===n_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===t_||i===n_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function u6(e,t){const n={type:"text",value:c6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function d6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const f6={blockquote:VB,break:zB,code:$B,delete:HB,emphasis:qB,footnoteReference:WB,heading:GB,html:KB,imageReference:QB,image:YB,inlineCode:XB,linkReference:JB,link:ZB,listItem:e6,list:n6,paragraph:r6,root:s6,strong:i6,table:o6,tableCell:l6,tableRow:a6,text:u6,thematicBreak:d6,toml:vc,yaml:vc,definition:vc,footnoteDefinition:vc};function vc(){}const AC=-1,jd=0,Aa=1,Ou=2,Hg=3,qg=4,Wg=5,Gg=6,DC=7,MC=8,s_=typeof self=="object"?self:globalThis,p6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,o]=t[s];switch(i){case jd:case AC:return n(o,s);case Aa:{const l=n([],s);for(const c of o)l.push(r(c));return l}case Ou:{const l=n({},s);for(const[c,u]of o)l[r(c)]=r(u);return l}case Hg:return n(new Date(o),s);case qg:{const{source:l,flags:c}=o;return n(new RegExp(l,c),s)}case Wg:{const l=n(new Map,s);for(const[c,u]of o)l.set(r(c),r(u));return l}case Gg:{const l=n(new Set,s);for(const c of o)l.add(r(c));return l}case DC:{const{name:l,message:c}=o;return n(new s_[l](c),s)}case MC:return n(BigInt(o),s);case"BigInt":return n(Object(BigInt(o)),s);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:l}=new Uint8Array(o);return n(new DataView(l),o)}}return n(new s_[i](o),s)};return r},i_=e=>p6(new Map,e)(0),Wi="",{toString:m6}={},{keys:h6}=Object,ca=e=>{const t=typeof e;if(t!=="object"||!e)return[jd,t];const n=m6.call(e).slice(8,-1);switch(n){case"Array":return[Aa,Wi];case"Object":return[Ou,Wi];case"Date":return[Hg,Wi];case"RegExp":return[qg,Wi];case"Map":return[Wg,Wi];case"Set":return[Gg,Wi];case"DataView":return[Aa,n]}return n.includes("Array")?[Aa,n]:n.includes("Error")?[DC,n]:[Ou,n]},yc=([e,t])=>e===jd&&(t==="function"||t==="symbol"),g6=(e,t,n,r)=>{const s=(o,l)=>{const c=r.push(o)-1;return n.set(l,c),c},i=o=>{if(n.has(o))return n.get(o);let[l,c]=ca(o);switch(l){case jd:{let d=o;switch(c){case"bigint":l=MC,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([AC],o)}return s([l,d],o)}case Aa:{if(c){let p=o;return c==="DataView"?p=new Uint8Array(o.buffer):c==="ArrayBuffer"&&(p=new Uint8Array(o)),s([c,[...p]],o)}const d=[],f=s([l,d],o);for(const p of o)d.push(i(p));return f}case Ou:{if(c)switch(c){case"BigInt":return s([c,o.toString()],o);case"Boolean":case"Number":case"String":return s([c,o.valueOf()],o)}if(t&&"toJSON"in o)return i(o.toJSON());const d=[],f=s([l,d],o);for(const p of h6(o))(e||!yc(ca(o[p])))&&d.push([i(p),i(o[p])]);return f}case Hg:return s([l,o.toISOString()],o);case qg:{const{source:d,flags:f}=o;return s([l,{source:d,flags:f}],o)}case Wg:{const d=[],f=s([l,d],o);for(const[p,h]of o)(e||!(yc(ca(p))||yc(ca(h))))&&d.push([i(p),i(h)]);return f}case Gg:{const d=[],f=s([l,d],o);for(const p of o)(e||!yc(ca(p)))&&d.push(i(p));return f}}const{message:u}=o;return s([l,{name:c,message:u}],o)};return i},o_=(e,{json:t,lossy:n}={})=>{const r=[];return g6(!(t||n),!!t,new Map,r)(e),r},Iu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?i_(o_(e,t)):structuredClone(e):(e,t)=>i_(o_(e,t));function x6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function v6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function y6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||x6,r=e.options.footnoteBackLabel||v6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+p+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+p},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Iu(o),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Nd=function(e){if(e==null)return k6;if(typeof e=="function")return Pd(e);if(typeof e=="object")return Array.isArray(e)?_6(e):b6(e);if(typeof e=="string")return w6(e);throw new Error("Expected function, string, or object as test")};function _6(e){const t=[];let n=-1;for(;++n":""))+")"})}return p;function p(){let h=OC,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=j6(n(c,d)),h[0]===Im))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==E6)for(v=(r?x.children.length:-1)+o,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function a_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function l_(e,t){const n=P6(e,t),r=n.one(e,void 0),s=y6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function D6(e,t){return e&&"run"in e?async function(n,r){const s=l_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return l_(n,{file:r,...e||t})}}function c_(e){if(e)throw e}var Kc=Object.prototype.hasOwnProperty,FC=Object.prototype.toString,u_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,f_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):FC.call(t)==="[object Array]"},p_=function(t){if(!t||FC.call(t)!=="[object Object]")return!1;var n=Kc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Kc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Kc.call(t,s)},m_=function(t,n){u_&&n.name==="__proto__"?u_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},h_=function(t,n){if(n==="__proto__")if(Kc.call(t,n)){if(d_)return d_(t,n).value}else return;return t[n]},M6=function e(){var t,n,r,s,i,o,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});co.length;let c;l&&o.push(s);try{c=e.apply(this,o)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(o,...l){n||(n=!0,t(o,...l))}function i(o){s(null,o)}}const Wr={basename:F6,dirname:B6,extname:U6,join:V6,sep:"/"};function F6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Tl(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else o<0&&(i=!0,o=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function B6(e){if(Tl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function U6(e){Tl(e);let t=e.length,n=-1,r=0,s=-1,i=0,o;for(;t--;){const l=e.codePointAt(t);if(l===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function V6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function $6(e,t){let n="",r=0,s=-1,i=0,o=-1,l,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=o,i=0;continue}}else if(n.length>0){n="",r=0,s=o,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,o):n=e.slice(s+1,o),r=o-s-1;s=o,i=0}else l===46&&i>-1?i++:i=-1}return n}function Tl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const H6={cwd:q6};function q6(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function W6(e){if(typeof e=="string")e=new URL(e);else if(!Um(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return G6(e)}function G6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[p][1];Bm(v)&&Bm(h)&&(h=Vf(!0,v,h)),r[p]=[u,h,...g]}}}}const X6=new Qg().freeze();function qf(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Wf(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Gf(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function x_(e){if(!Bm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function v_(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function _c(e){return J6(e)?e:new BC(e)}function J6(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Z6(e){return typeof e=="string"||eU(e)}function eU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const tU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",y_=[],__={allowDangerousHtml:!0},nU=/^(https?|ircs?|mailto|xmpp)$/i,rU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function sU(e){const t=iU(e),n=oU(e);return aU(t.runSync(t.parse(n),n),e)}function iU(e){const t=e.rehypePlugins||y_,n=e.remarkPlugins||y_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...__}:__;return X6().use(UB).use(n).use(D6,r).use(t)}function oU(e){const t=e.children||"",n=new BC;return typeof t=="string"&&(n.value=t),n}function aU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,o=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||lU;for(const d of rU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+tU+d.id,void 0);return Kg(e,u),kI(e,{Fragment:a.Fragment,components:s,ignoreInvalidStyle:!0,jsx:a.jsx,jsxs:a.jsxs,passKeys:!0,passNode:!0});function u(d,f,p){if(d.type==="raw"&&p&&typeof f=="number")return o?p.children.splice(f,1):p.children[f]={type:"text",value:d.value},f;if(d.type==="element"){let h;for(h in Ff)if(Object.hasOwn(Ff,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Ff[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof f=="number"&&(h=!r(d,f,p)),h&&p&&typeof f=="number")return l&&d.children?p.children.splice(f,1,...d.children):p.children.splice(f,1),f}}}function lU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||nU.test(e.slice(0,t))?e:""}function b_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function cU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function uU(e,t,n){const s=Nd((n||{}).ignore||[]),i=dU(t);let o=-1;for(;++o0?{type:"text",value:k}:void 0),k===!1?p.lastIndex=S+1:(g!==S&&y.push({type:"text",value:u.value.slice(g,S)}),Array.isArray(k)?y.push(...k):k&&y.push(k),g=S+_[0].length,x=!0),!p.global)break;_=p.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=b_(e,"(");let i=b_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function UC(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Bi(n)||Cd(n))&&(!t||n!==47)}VC.peek=DU;function EU(){this.buffer()}function jU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function NU(){this.buffer()}function PU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function RU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Dr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function TU(e){this.exit(e)}function LU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Dr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function AU(e){this.exit(e)}function DU(){return"["}function VC(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const o=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),o(),i+=s.move("]"),i}function MU(){return{enter:{gfmFootnoteCallString:EU,gfmFootnoteCall:jU,gfmFootnoteDefinitionLabelString:NU,gfmFootnoteDefinition:PU},exit:{gfmFootnoteCallString:RU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:AU}}}function OU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:VC},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,o){const l=i.createTracker(o);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?zC:IU))),u(),c}}function IU(e,t,n){return t===0?e:zC(e,t,n)}function zC(e,t,n){return(n?"":" ")+e}const FU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];$C.peek=$U;function BU(){return{canContainEols:["delete"],enter:{strikethrough:VU},exit:{strikethrough:zU}}}function UU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:FU}],handlers:{delete:$C}}}function VU(e){this.enter({type:"delete",children:[]},e)}function zU(e){this.exit(e)}function $C(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let o=s.move("~~");return o+=n.containerPhrasing(e,{...s.current(),before:o,after:"~"}),o+=s.move("~~"),i(),o}function $U(){return"~"}function HU(e){return e.length}function qU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||HU,i=[],o=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}o[d]=v,l[d]=b}let f=-1;if(typeof r=="object"&&"length"in r)for(;++fc[f]&&(c[f]=y),h[f]=y),p[f]=_}o.splice(1,0,p),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const o=n.indentLines(n.containerFlow(e,i.current()),KU);return s(),o}function KU(e,t,n){return">"+(n?"":" ")+e}function QU(e,t){return k_(e,t.inConstruct,!0)&&!k_(e,t.notInConstruct,!1)}function k_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=i):i=1,s=r+t.length,r=n.indexOf(t,s);return o}function XU(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function JU(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function ZU(e,t,n,r){const s=JU(n),i=e.value||"",o=s==="`"?"GraveAccent":"Tilde";if(XU(e,n)){const f=n.enter("codeIndented"),p=n.indentLines(i,e7);return f(),p}const l=n.createTracker(r),c=s.repeat(Math.max(YU(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const f=n.enter(`codeFencedLang${o}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),f()}if(e.lang&&e.meta){const f=n.enter(`codeFencedMeta${o}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),f()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function e7(e,t,n){return(n?"":" ")+e}function Yg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function t7(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),o(),u}function n7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function cl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Fu(e,t,n){const r=Do(e),s=Do(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}HC.peek=r7;function HC(e,t,n,r){const s=n7(n),i=n.enter("emphasis"),o=n.createTracker(r),l=o.move(s);let c=o.move(n.containerPhrasing(e,{after:s,before:l,...o.current()}));const u=c.charCodeAt(0),d=Fu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=cl(u)+c.slice(1));const f=c.charCodeAt(c.length-1),p=Fu(r.after.charCodeAt(0),f,s);p.inside&&(c=c.slice(0,-1)+cl(f));const h=o.move(s);return i(),n.attentionEncodeSurroundingInfo={after:p.outside,before:d.outside},l+c+h}function r7(e,t,n){return n.options.emphasis||"*"}function s7(e,t){let n=!1;return Kg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Im}),!!((!e.depth||e.depth<3)&&Vg(e)&&(t.options.setext||n))}function i7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(s7(e,n)){const d=n.enter("headingSetext"),f=n.enter("phrasing"),p=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return f(),d(),p+` +`+(s===1?"=":"-").repeat(p.length-(Math.max(p.lastIndexOf("\r"),p.lastIndexOf(` +`))+1))}const o="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(o+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=cl(u.charCodeAt(0))+u.slice(1)),u=u?o+" "+u:o,n.options.closeAtx&&(u+=" "+o),c(),l(),u}qC.peek=o7;function qC(e){return e.value||""}function o7(){return"<"}WC.peek=a7;function WC(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),o(),u}function a7(){return"!"}GC.peek=l7;function GC(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let o=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const f=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return o(),n.stack=d,i(),s==="full"||!u||u!==f?c+=l.move(f+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function l7(){return"!"}KC.peek=c7;function KC(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}YC.peek=u7;function YC(e,t,n,r){const s=Yg(n),i=s==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let l,c;if(QC(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let f=o.move("<");return f+=o.move(n.containerPhrasing(e,{before:f,after:">",...o.current()})),f+=o.move(">"),l(),n.stack=d,f}l=n.enter("link"),c=n.enter("label");let u=o.move("[");return u+=o.move(n.containerPhrasing(e,{before:u,after:"](",...o.current()})),u+=o.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=o.move("<"),u+=o.move(n.safe(e.url,{before:u,after:">",...o.current()})),u+=o.move(">")):(c=n.enter("destinationRaw"),u+=o.move(n.safe(e.url,{before:u,after:e.title?" ":")",...o.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=o.move(" "+s),u+=o.move(n.safe(e.title,{before:u,after:s,...o.current()})),u+=o.move(s),c()),u+=o.move(")"),l(),u}function u7(e,t,n){return QC(e,n)?"<":"["}XC.peek=d7;function XC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let o=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const f=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return o(),n.stack=d,i(),s==="full"||!u||u!==f?c+=l.move(f+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function d7(){return"["}function Xg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function f7(e){const t=Xg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function p7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function JC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function m7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let o=e.ordered?p7(n):Xg(n);const l=e.ordered?o==="."?")":".":f7(n);let c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),JC(n)===o&&d){let f=-1;for(;++f-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let o=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(o-i.length)),l.shift(o);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(f,p,h){return p?(h?"":" ".repeat(o))+f:(h?i:i+" ".repeat(o-i.length))+f}}function x7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),o=n.containerPhrasing(e,r);return i(),s(),o}const v7=Nd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function y7(e,t,n,r){return(e.children.some(function(o){return v7(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function _7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}ZC.peek=b7;function ZC(e,t,n,r){const s=_7(n),i=n.enter("strong"),o=n.createTracker(r),l=o.move(s+s);let c=o.move(n.containerPhrasing(e,{after:s,before:l,...o.current()}));const u=c.charCodeAt(0),d=Fu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=cl(u)+c.slice(1));const f=c.charCodeAt(c.length-1),p=Fu(r.after.charCodeAt(0),f,s);p.inside&&(c=c.slice(0,-1)+cl(f));const h=o.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:p.outside,before:d.outside},l+c+h}function b7(e,t,n){return n.options.strong||"*"}function w7(e,t,n,r){return n.safe(e.value,r)}function k7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function S7(e,t,n){const r=(JC(n)+(n.options.ruleSpaces?" ":"")).repeat(k7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const eE={blockquote:GU,break:S_,code:ZU,definition:t7,emphasis:HC,hardBreak:S_,heading:i7,html:qC,image:WC,imageReference:GC,inlineCode:KC,link:YC,linkReference:XC,list:m7,listItem:g7,paragraph:x7,root:y7,strong:ZC,text:w7,thematicBreak:S7};function C7(){return{enter:{table:E7,tableData:C_,tableHeader:C_,tableRow:N7},exit:{codeText:P7,table:j7,tableData:Xf,tableHeader:Xf,tableRow:Xf}}}function E7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function j7(e){this.exit(e),this.data.inTable=void 0}function N7(e){this.enter({type:"tableRow",children:[]},e)}function Xf(e){this.exit(e)}function C_(e){this.enter({type:"tableCell",children:[]},e)}function P7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,R7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function R7(e,t){return t==="|"?t:e}function T7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:p,table:o,tableCell:c,tableRow:l}};function o(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=f(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return qU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const Q7={tokenize:rV,partial:!0};function Y7(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:eV,continuation:{tokenize:tV},exit:nV}},text:{91:{name:"gfmFootnoteCall",tokenize:Z7},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:X7,resolveTo:J7}}}}function X7(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){o=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!o||!o._balanced)return n(c);const u=Dr(r.sliceSerialize({start:o.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function J7(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function Z7(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,o;return l;function l(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),c}function c(f){return f!==94?n(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(f){if(i>999||f===93&&!o||f===null||f===91||ht(f))return n(f);if(f===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return s.includes(Dr(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(f)}return ht(f)||(o=!0),i++,e.consume(f),f===92?d:u}function d(f){return f===91||f===92||f===93?(e.consume(f),i++,u):u(f)}}function eV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,o=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!l||g===null||g===91||ht(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Dr(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return ht(g)||(l=!0),o++,e.consume(g),g===92?f:d}function f(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function p(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Ye(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function tV(e,t,n){return e.check(Rl,t,e.attempt(Q7,t,n))}function nV(e){e.exit("gfmFootnoteDefinition")}function rV(e,t,n){const r=this;return Ye(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(i):n(i)}}function sV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(o,l){let c=-1;for(;++c1?c(g):(o.consume(g),f++,h);if(f<2&&!n)return c(g);const b=o.exit("strikethroughSequenceTemporary"),x=Do(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class iV{constructor(){this.map=[]}add(t,n,r){oV(this,t,n,r)}consume(t){if(this.map.sort(function(i,o){return i[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function oV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const ae=r.events[H][1].type;if(ae==="lineEnding"||ae==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?k:c;return re===k&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(o=!0,i+=1),d(j)}function d(j){return j===null?n(j):je(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):He(j)?Ye(e,d,"whitespace")(j):(i+=1,o&&(o=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),f(j)))}function f(j){return j===null||j===124||ht(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?p:f)}function p(j){return j===92||j===124?(e.consume(j),f):f(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),o=!1,He(j)?Ye(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(o=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):R(j)}function v(j){return He(j)?Ye(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||je(j)?S(j):R(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):R(j)}function y(j){return j===45?(e.consume(j),y):j===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return He(j)?Ye(e,S,"whitespace")(j):S(j)}function S(j){return j===124?g(j):j===null||je(j)?!o||s!==i?R(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):R(j)}function R(j){return n(j)}function k(j){return e.enter("tableRow"),T(j)}function T(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),T):j===null||je(j)?(e.exit("tableRow"),t(j)):He(j)?Ye(e,T,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||ht(j)?(e.exit("data"),T(j)):(e.consume(j),j===92?z:D)}function z(j){return j===92||j===124?(e.consume(j),D):D(j)}}function uV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],o=[0,0,0,0],l=!1,c=0,u,d,f;const p=new iV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",f,t]])}return s!==void 0&&(i.end=Object.assign({},Gi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function j_(e,t,n,r,s){const i=[],o=Gi(t.events,n);s&&(s.end=Object.assign({},o),i.push(["exit",s,t])),r.end=Object.assign({},o),i.push(["exit",r,t]),e.add(n+1,0,i)}function Gi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const dV={name:"tasklistCheck",tokenize:pV};function fV(){return{text:{91:dV}}}function pV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return ht(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),o):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),o):n(c)}function o(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return je(c)?t(c):He(c)?e.check({tokenize:mV},t,n)(c):n(c)}}function mV(e,t,n){return Ye(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function hV(e){return vC([U7(),Y7(),sV(e),lV(),fV()])}const gV={};function xV(e){const t=this,n=e||gV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(hV(n)),i.push(O7()),o.push(I7(n))}function vV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:o,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,f]=m.useState([]),[p,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[S,R]=m.useState([]),[k,T]=m.useState([]),[D,z]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[ae,me]=m.useState(!1),[ve,oe]=m.useState(380),[B,q]=m.useState(!1),[E,de]=m.useState(!0),[pe,A]=m.useState(null),[be,Ae]=m.useState(""),[w,Y]=m.useState(null),ce=l??ve,_e=c??oe,ye=m.useRef(null),ot=m.useRef(null),Xe=m.useRef(null),I=m.useRef(null),tt=m.useRef(null),gt=m.useRef(!1),at=m.useMemo(()=>{if(!o||!i)return 0;let U=0;return i.forEach(J=>{const Le=J.item_id||J.line_item_id,Ve=o[Le];Ve!=null&&Ve.total&&(U+=Ve.total)}),U},[o,i]),pt=m.useCallback(U=>{U.preventDefault(),q(!0)},[]);m.useEffect(()=>{const U=Le=>{if(!B)return;const Ve=window.innerWidth-Le.clientX,Q=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,Ve),Q))},J=()=>{q(!1)};return B&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",J),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",J),document.body.style.cursor="",document.body.style.userSelect=""}},[B]);const G=m.useCallback(U=>{h(U.target.value);const J=U.target;J.style.height="auto",J.style.height=Math.min(J.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;gt.current||(U=ye.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(gt.current=!1)},[g]);const N=m.useCallback(()=>{const U=ot.current;if(!U)return;const J=U.scrollHeight-U.scrollTop-U.clientHeight<100;gt.current=!J},[]);m.useEffect(()=>{var U;e&&((U=Xe.current)==null||U.focus())},[e]);const se=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),f(U=>{const J=[...U],Le=J.length-1;return Le>=0&&J[Le].isStreaming&&(J[Le]={...J[Le],isStreaming:!1,isThinking:!1,content:J[Le].content+` + +*[Generation stopped]*`}),J}))},[]),W=m.useCallback((U,J)=>{A(U),Ae(J)},[]),Se=m.useCallback(()=>{A(null),Ae("")},[]),Ne=m.useCallback(async(U,J)=>{try{await navigator.clipboard.writeText(J),Y(U),setTimeout(()=>Y(null),2e3)}catch(Le){console.error("Failed to copy:",Le)}},[]),[O,F]=m.useState(null),[K,ie]=m.useState(!1),Ce=m.useCallback(async U=>{if(!be.trim()||d.findIndex(Q=>Q.id===U)===-1)return;const Le=be.trim();if(T([]),A(null),Ae(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const Ve={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([Ve]),F(Le),ie(!0)},[be,d,b,se]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([U])}},[e,se]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&f([{id:"welcome",role:"assistant",content:se(),timestamp:new Date}])},[e,s,i,at,se]);const Be=m.useCallback(async(U,J)=>{var ct;const Le=U||p.trim();if(!Le||g)return;const Ve={id:`user-${Date.now()}`,role:"user",content:Le,timestamp:new Date,isEdited:J||!1};f(Ze=>[...Ze,Ve]),h(""),v(!0),re(null);const Q=`assistant-${Date.now()}`;f(Ze=>[...Ze,{id:Q,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const Ze=(i||S||[]).map(Oe=>{const De=Oe.line_item_id||Oe.item_id||Oe.draft_id,Pe=o==null?void 0:o[De];return{...Oe,total_cost:(Pe==null?void 0:Pe.total)||Oe.total_cost||0,dbu_cost:(Pe==null?void 0:Pe.dbu)||Oe.dbu_cost||0,vm_cost:(Pe==null?void 0:Pe.vm)||Oe.vm_cost||0}}),Ot=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:Ve.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:Ze,mode:u,stream:!0}),signal:I.current.signal});if(!Ot.ok)throw new Error(`HTTP ${Ot.status}: ${Ot.statusText}`);const ft=(ct=Ot.body)==null?void 0:ct.getReader();if(!ft)throw new Error("No response body");const xt=new TextDecoder;let St="",mt="",Ue=[];for(;;){const{done:Oe,value:De}=await ft.read();if(Oe)break;St+=xt.decode(De,{stream:!0});const Pe=St.split(` +`);St=Pe.pop()||"";for(const qt of Pe)if(qt.startsWith("data: ")){const Ct=qt.slice(6);if(Ct==="[DONE]")continue;try{const le=JSON.parse(Ct);if(le.type==="start")x(le.conversation_id);else if(le.type==="content")mt+=le.content,f(rt=>rt.map(Nt=>Nt.id===Q?{...Nt,content:mt,isThinking:!1}:Nt));else if(le.type==="tool_result")Ue.push({tool:le.tool,result:le.result});else if(le.type==="proposal")le.workload&&le.workload.proposal_id&&T(rt=>rt.some(wr=>wr.proposal_id===le.workload.proposal_id)?rt:[...rt,le.workload]);else if(le.type==="done")mt.includes("Error getting response")||mt.includes("AI service error")||(le.estimate&&_(le.estimate),le.workloads&&R(le.workloads),le.proposed_workloads&&le.proposed_workloads.length>0&&T(le.proposed_workloads));else if(le.type==="error")throw new Error(le.content)}catch{}}}f(Oe=>Oe.map(De=>De.id===Q?{...De,content:mt,isStreaming:!1,toolResults:Ue}:De))}catch(Ze){if(Ze.name==="AbortError")return;console.error("Chat error:",Ze),re(Ze.message||"Failed to get response"),f(Ot=>Ot.filter(ft=>ft.id!==Q))}finally{v(!1),I.current=null}},[p,g,b,s,i,y,S,o]);m.useEffect(()=>{O&&!g&&(Be(O,K),F(null),ie(!1))},[O,K,g,Be]);const dt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Be())},nt=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),R([]),T([]),re(null);const U={id:"welcome",role:"assistant",content:se(),timestamp:new Date};f([U])},Ge=async U=>{if(b){z(J=>new Set(J).add(U));try{const J=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!J.ok)throw new Error("Failed to confirm workload");const Le=await J.json();if(T(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),r&&Le.workload_config)try{await r(Le.workload_config),f(Ve=>{var Q;return[...Ve,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(Q=Le.workload_config)==null?void 0:Q.workload_name}" added to estimate.`,timestamp:new Date}]})}catch(Ve){f(Q=>[...Q,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${Ve.message||"Database error"}. Please try again.`,timestamp:new Date}]),re(Ve.message||"Failed to add workload to database")}}catch(J){re(J.message||"Failed to confirm workload")}finally{z(J=>{const Le=new Set(J);return Le.delete(U),Le})}}},lt=async U=>{if(b){z(J=>new Set(J).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Le=k.find(Ve=>Ve.proposal_id===U);T(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),f(Ve=>[...Ve,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Le==null?void 0:Le.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(J){re(J.message||"Failed to reject workload")}finally{z(J=>{const Le=new Set(J);return Le.delete(U),Le})}}},Ke=async()=>{for(const U of k)await Ge(U.proposal_id)},Mt=async()=>{for(const U of k)await lt(U.proposal_id)};return e?a.jsx(a.Fragment,{children:ae?a.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:a.jsxs("button",{onClick:()=>me(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[a.jsx($c,{className:"w-5 h-5"}),a.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),a.jsx(ds,{className:"w-4 h-4"})]})}):a.jsxs("div",{ref:tt,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ce}px)`},children:[a.jsx("div",{onMouseDown:pt,className:ue("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",B&&"bg-lava-600/50"),children:a.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),a.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),a.jsxs("div",{className:"relative group",children:[a.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:a.jsx(cS,{className:"w-4 h-4"})}),a.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:a.jsxs("div",{className:"flex items-start gap-2",children:[a.jsx(fs,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),a.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:nt,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:a.jsx(en,{className:"w-4 h-4"})}),a.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:a.jsx(qD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&a.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[a.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:a.jsx(AD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[a.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),a.jsx("span",{className:"truncate",children:s.region||"N/A"}),a.jsx("span",{children:"•"}),a.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),a.jsxs("div",{className:"text-right flex-shrink-0",children:[a.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),a.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[at>0?a.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",at.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):a.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),a.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),k.length>0&&a.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[a.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(ty,{className:"w-4 h-4 text-amber-600"}),a.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[k.length," Proposed Workload",k.length!==1?"s":""," - Confirm to Add"]})]}),j?a.jsx(tr,{className:"w-4 h-4 text-amber-600"}):a.jsx(ds,{className:"w-4 h-4 text-amber-600"})]}),!j&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[a.jsxs("button",{onClick:Ke,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",k.length,")"]}),a.jsx("button",{onClick:Mt,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),a.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:k.map(U=>{const J=D.has(U.proposal_id);return a.jsx("div",{className:ue("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",J&&"opacity-50"),children:a.jsxs("div",{className:"flex items-start justify-between gap-2",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[a.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),a.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&a.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),a.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&a.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&a.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&a.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&a.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&a.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&a.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&a.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&a.jsx("span",{children:U.dlt_edition})]})]}),a.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:J?a.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:a.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:()=>Ge(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:a.jsx(Tu,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>lt(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:a.jsx(To,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),a.jsxs("div",{ref:ot,onScroll:N,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>a.jsx("div",{className:ue("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:a.jsx("div",{className:ue("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&pe===U.id?a.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[a.jsx("textarea",{value:be,onChange:J=>Ae(J.target.value),onKeyDown:J=>{J.key==="Enter"&&!J.shiftKey&&(J.preventDefault(),Ce(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),a.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),a.jsx("button",{onClick:Se,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),a.jsxs("button",{onClick:()=>Ce(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[a.jsx(qs,{className:"w-3 h-3"}),"Save"]})]})]}):a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ue("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?a.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:a.jsxs("div",{className:"flex gap-1",children:[a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),a.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?a.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):a.jsx("div",{className:"ai-message-content",children:a.jsx(sU,{remarkPlugins:[xV],components:{h1:({children:J})=>a.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:J}),h2:({children:J})=>a.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:J}),h3:({children:J})=>a.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:J}),p:({children:J})=>a.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:J}),ul:({children:J})=>a.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:J}),ol:({children:J})=>a.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:J}),li:({children:J})=>a.jsx("li",{className:"text-[var(--text-primary)]",children:J}),strong:({children:J})=>a.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:J}),em:({children:J})=>a.jsx("em",{className:"text-[var(--text-secondary)] italic",children:J}),code:({className:J,children:Le})=>(J==null?void 0:J.includes("language-"))?a.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Le}):a.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Le}),pre:({children:J})=>a.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:J}),blockquote:({children:J})=>a.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:J}),hr:()=>a.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:J,children:Le})=>a.jsx("a",{href:J,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Le})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&a.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((J,Le)=>{var Ve;return a.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[(Ve=J.result)!=null&&Ve.success?a.jsx(Tu,{className:"w-3.5 h-3.5 text-green-500"}):a.jsx(Qr,{className:"w-3.5 h-3.5 text-lava-600"}),a.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:J.tool.replace(/_/g," ")})]},Le)})}),a.jsxs("div",{className:ue("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&a.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&a.jsx("button",{onClick:()=>Ne(U.id,U.content),className:ue("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?a.jsx(yD,{className:"w-3.5 h-3.5"}):a.jsx(bD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&a.jsx("button",{onClick:()=>W(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:a.jsx(ZD,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&a.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:a.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[a.jsx(ty,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),a.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&a.jsx("button",{onClick:nt,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),a.jsx("div",{ref:ye})]}),a.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&a.jsxs("div",{className:"mb-2",children:[a.jsxs("button",{onClick:()=>de(!E),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[E?a.jsx(tr,{className:"w-3 h-3"}):a.jsx(ds,{className:"w-3 h-3"}),E?"Hide Quick Actions":"Show Quick Actions"]}),E&&a.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,J)=>a.jsx("button",{onClick:()=>Be(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},J))})]}),a.jsxs("div",{className:"relative flex items-end",children:[a.jsx("textarea",{ref:Xe,value:p,onChange:G,onKeyDown:dt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:p.length>100?"auto":"hidden"}}),a.jsx("button",{onClick:g?M:()=>Be(),disabled:!g&&!p.trim(),className:ue("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":p.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?a.jsx(dS,{className:"w-4 h-4"}):a.jsx(QD,{className:"w-4 h-4"})}),p.length>100&&a.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:p.length})]}),a.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[a.jsx("span",{children:"Shift+Enter for new line"}),a.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function yV({className:e}){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const _V=[{name:"Estimates",href:"/",icon:Ng},{name:"New Estimate",href:"/calculator",icon:s3}],N_=()=>a.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[a.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),a.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),a.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),a.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),a.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),a.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Jf=[{value:"light",label:"Light",icon:g3},{value:"dark",label:"Dark",icon:GD},{value:"system",label:"System",icon:ED}],wc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function bV(){const e=yl(),{theme:t,setTheme:n}=j3(),[r,s]=m.useState(!1),[i,o]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[f,p]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(wc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(wc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),S=m.useRef(null),{currentUser:R,isAuthenticated:k,authError:T,fetchCurrentUser:D,currentEstimate:z,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:ae,fetchReferenceData:me,loadPricingBundle:ve,isReferenceDataLoaded:oe,isPricingBundleLoaded:B}=_s(),q=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",E=e.pathname==="/",de=q||E,pe=m.useCallback(()=>{R4(),ae(!1),p(!1),window.location.reload()},[ae]);m.useEffect(()=>{const Y=ce=>{var _e;console.log("Session expired event received:",ce.detail),g(((_e=ce.detail)==null?void 0:_e.message)||"Your session has expired"),p(!0),ae(!0)};return window.addEventListener(Em,Y),()=>{window.removeEventListener(Em,Y)}},[ae]),m.useEffect(()=>{de&&!v&&c(!0)},[de,v]);const A=m.useCallback(()=>{c(!l),v||(localStorage.setItem(wc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),be=m.useCallback(()=>{o(!i),x||(localStorage.setItem(wc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!de&&l&&c(!1)},[de,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||me(),B||ve()},[me,ve,oe,B]),m.useEffect(()=>{const Y=ce=>{_.current&&!_.current.contains(ce.target)&&s(!1),S.current&&!S.current.contains(ce.target)&&o(!1)};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[]);const Ae=Jf.find(Y=>Y.value===t)||Jf[2],w=Ae.icon;return T?a.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:a.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[a.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:a.jsx(N_,{})}),a.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),a.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:T}),a.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[a.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),a.jsxs("p",{className:"mb-2",children:["Set the ",a.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),a.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):a.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[a.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-14",children:[a.jsxs(bu,{to:"/",className:"flex items-center gap-3 group",children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:a.jsx(N_,{})}),a.jsxs("div",{children:[a.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),a.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("nav",{className:"flex items-center gap-1",children:_V.map(Y=>{const ce=e.pathname===Y.href||Y.href!=="/"&&e.pathname.startsWith(Y.href);return a.jsxs(bu,{to:Y.href,className:ue("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ce&&"border"),style:ce?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[a.jsx(Y.icon,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:Y.name})]},Y.name)})}),k&&R&&a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[a.jsx(b3,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:R.full_name||R.email,children:R.full_name||R.email.split("@")[0]})]}),a.jsxs("div",{className:"relative",ref:_,children:[a.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[a.jsx(w,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm hidden sm:inline",children:Ae.label}),a.jsx(tr,{className:ue("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&a.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Jf.map(Y=>{const ce=Y.icon,_e=t===Y.value;return a.jsxs("button",{onClick:()=>{n(Y.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[a.jsx(ce,{className:"w-4 h-4"}),a.jsx("span",{children:Y.label})]},Y.value)})})]}),a.jsxs("div",{className:"relative",ref:S,children:[a.jsxs("button",{onClick:be,className:ue("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[a.jsx(a3,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&a.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[a.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),a.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),a.jsx(nm,{children:i&&a.jsxs(Bt.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[a.jsx("div",{className:"px-3 py-1.5 mb-1",children:a.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),a.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>o(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[a.jsx(MD,{className:"w-4 h-4 text-blue-500"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:"Documentation"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),a.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>o(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[a.jsx(_m,{className:"w-4 h-4 text-purple-500"}),a.jsxs("div",{children:[a.jsx("p",{className:"font-medium",children:"Official Pricing"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),a.jsx("main",{className:"flex-1",style:l&&de?{marginRight:`${u}px`}:void 0,children:a.jsx(Bt.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:a.jsx(wN,{})},e.pathname)}),a.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&de?{marginRight:`${u}px`}:{}},children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[a.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[a.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),a.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),a.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[a.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),a.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),de&&a.jsx(vV,{isOpen:l,onClose:()=>c(!1),currentEstimate:q?z:void 0,currentWorkloads:q?j:void 0,itemCosts:q?H:void 0,mode:E?"home":"estimate",onWorkloadConfirmed:q?async Y=>{if(z!=null&&z.estimate_id)try{await X({estimate_id:z.estimate_id,...Y}),re(z.estimate_id),$e.success(`Workload "${Y.workload_name}" added!`)}catch(ce){throw $e.error(ce.message||"Failed to add workload"),ce}}:void 0,onWidthChange:d,panelWidth:u}),de&&!l&&a.jsxs("button",{onClick:A,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[a.jsx(yV,{className:"w-5 h-5"}),a.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&a.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),a.jsx(nm,{children:f&&a.jsx(Bt.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:a.jsxs(Bt.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[a.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[a.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:a.jsx(fs,{className:"w-10 h-10 text-white"})}),a.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),a.jsxs("div",{className:"px-6 py-6",children:[a.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),a.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[a.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),a.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[a.jsx("li",{children:"Your authentication token has expired"}),a.jsx("li",{children:"This can happen after extended inactivity"}),a.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),a.jsxs("button",{onClick:pe,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[a.jsx(Qr,{className:"w-5 h-5"}),"Refresh Page"]}),a.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function wV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Rd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Wo(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Zg(e){return"nodeType"in e}function Qn(e){var t,n;return e?Wo(e)?e:Zg(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ex(e){const{Document:t}=Qn(e);return e instanceof t}function Ll(e){return Wo(e)?!1:e instanceof Qn(e).HTMLElement}function cE(e){return e instanceof Qn(e).SVGElement}function Go(e){return e?Wo(e)?e.document:Zg(e)?ex(e)?e:Ll(e)||cE(e)?e.ownerDocument:document:document:document}const es=Rd?m.useLayoutEffect:m.useEffect;function tx(e){const t=m.useRef(e);return es(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function ul(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return es(()=>{n.current!==e&&(n.current=e)},t),n}function Al(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Bu(e){const t=tx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function zm(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Zf={};function Dl(e,t){return m.useMemo(()=>{if(t)return t;const n=Zf[e]==null?0:Zf[e]+1;return Zf[e]=n,e+"-"+n},[e,t])}function uE(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(o);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const _o=uE(1),Uu=uE(-1);function SV(e){return"clientX"in e&&"clientY"in e}function nx(e){if(!e)return!1;const{KeyboardEvent:t}=Qn(e.target);return t&&e instanceof t}function CV(e){if(!e)return!1;const{TouchEvent:t}=Qn(e.target);return t&&e instanceof t}function $m(e){if(CV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return SV(e)?{x:e.clientX,y:e.clientY}:null}const Mo=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Mo.Translate.toString(e),Mo.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),P_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function EV(e){return e.matches(P_)?e:e.querySelector(P_)}const jV={display:"none"};function NV(e){let{id:t,value:n}=e;return un.createElement("div",{id:t,style:jV},n)}function PV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return un.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function RV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const dE=m.createContext(null);function TV(e){const t=m.useContext(dE);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function LV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(o=>{var l;return(l=o[s])==null?void 0:l.call(o,i)})},[e]),t]}const AV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},DV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function MV(e){let{announcements:t=DV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=AV}=e;const{announce:i,announcement:o}=RV(),l=Dl("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),TV(m.useMemo(()=>({onDragStart(f){let{active:p}=f;i(t.onDragStart({active:p}))},onDragMove(f){let{active:p,over:h}=f;t.onDragMove&&i(t.onDragMove({active:p,over:h}))},onDragOver(f){let{active:p,over:h}=f;i(t.onDragOver({active:p,over:h}))},onDragEnd(f){let{active:p,over:h}=f;i(t.onDragEnd({active:p,over:h}))},onDragCancel(f){let{active:p,over:h}=f;i(t.onDragCancel({active:p,over:h}))}}),[i,t])),!c)return null;const d=un.createElement(un.Fragment,null,un.createElement(NV,{id:r,value:s.draggable}),un.createElement(PV,{id:l,announcement:o}));return n?oo.createPortal(d,n):d}var nn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(nn||(nn={}));function Vu(){}function zu(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function fE(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Or=Object.freeze({x:0,y:0});function OV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function IV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function FV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function BV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function R_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const pE=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=R_(t,t.left,t.top),i=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=OV(R_(c),s);i.push({id:l,data:{droppableContainer:o,value:u}})}}return i.sort(IV)};function UV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),o=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:o}=i,l=n.get(o);if(l){const c=UV(l,t);c>0&&s.push({id:o,data:{droppableContainer:i,value:c}})}}return s.sort(FV)};function zV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function mE(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Or}function $V(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...o,top:o.top+e*l.y,bottom:o.bottom+e*l.y,left:o.left+e*l.x,right:o.right+e*l.x}),{...n})}}const HV=$V(1);function qV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function WV(e,t,n){const r=qV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:o,y:l}=r,c=e.left-o-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,f=i?e.height/i:e.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const GV={ignoreTransform:!1};function Ko(e,t){t===void 0&&(t=GV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Qn(e).getComputedStyle(e);u&&(n=WV(n,u,d))}const{top:r,left:s,width:i,height:o,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:o,bottom:l,right:c}}function T_(e){return Ko(e,{ignoreTransform:!0})}function KV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function QV(e,t){return t===void 0&&(t=Qn(e).getComputedStyle(e)),t.position==="fixed"}function YV(e,t){t===void 0&&(t=Qn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function rx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(ex(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Ll(s)||cE(s)||n.includes(s))return n;const i=Qn(e).getComputedStyle(s);return s!==e&&YV(s,i)&&n.push(s),QV(s,i)?n:r(s.parentNode)}return e?r(e):n}function hE(e){const[t]=rx(e,1);return t??null}function ep(e){return!Rd||!e?null:Wo(e)?e:Zg(e)?ex(e)||e===Go(e).scrollingElement?window:Ll(e)?e:null:null}function gE(e){return Wo(e)?e.scrollX:e.scrollLeft}function xE(e){return Wo(e)?e.scrollY:e.scrollTop}function Hm(e){return{x:gE(e),y:xE(e)}}var cn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(cn||(cn={}));function vE(e){return!Rd||!e?!1:e===document.scrollingElement}function yE(e){const t={x:0,y:0},n=vE(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,o=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:o,isRight:l,maxScroll:r,minScroll:t}}const XV={x:.2,y:.2};function JV(e,t,n,r,s){let{top:i,left:o,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=XV);const{isTop:u,isBottom:d,isLeft:f,isRight:p}=yE(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=cn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=cn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!p&&l>=t.right-v.width?(h.x=cn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!f&&o<=t.left+v.width&&(h.x=cn.Backward,g.x=r*Math.abs((t.left+v.width-o)/v.width)),{direction:h,speed:g}}function ZV(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:o}=window;return{top:0,left:0,right:i,bottom:o,width:i,height:o}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function _E(e){return e.reduce((t,n)=>_o(t,Hm(n)),Or)}function ez(e){return e.reduce((t,n)=>t+gE(n),0)}function tz(e){return e.reduce((t,n)=>t+xE(n),0)}function nz(e,t){if(t===void 0&&(t=Ko),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);hE(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const rz=[["x",["left","right"],ez],["y",["top","bottom"],tz]];class sx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=rx(n),s=_E(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,o,l]of rz)for(const c of o)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Da{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function sz(e){const{EventTarget:t}=Qn(e);return e instanceof t?e:Go(e)}function tp(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var mr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(mr||(mr={}));function L_(e){e.preventDefault()}function iz(e){e.stopPropagation()}var et;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(et||(et={}));const bE={start:[et.Space,et.Enter],cancel:[et.Esc],end:[et.Space,et.Enter,et.Tab]},oz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case et.Right:return{...n,x:n.x+25};case et.Left:return{...n,x:n.x-25};case et.Down:return{...n,y:n.y+25};case et.Up:return{...n,y:n.y-25}}};class Td{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Da(Go(n)),this.windowListeners=new Da(Qn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(mr.Resize,this.handleCancel),this.windowListeners.add(mr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(mr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&nz(r),n(Or)}handleKeyDown(t){if(nx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=bE,coordinateGetter:o=oz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Or;this.referenceCoordinates||(this.referenceCoordinates=d);const f=o(t,{active:n,context:r.current,currentCoordinates:d});if(f){const p=Uu(f,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:S,maxScroll:R,minScroll:k}=yE(v),T=ZV(v),D={x:Math.min(b===et.Right?T.right-T.width/2:T.right,Math.max(b===et.Right?T.left:T.left+T.width/2,f.x)),y:Math.min(b===et.Down?T.bottom-T.height/2:T.bottom,Math.max(b===et.Down?T.top:T.top+T.height/2,f.y))},z=b===et.Right&&!y||b===et.Left&&!_,j=b===et.Down&&!S||b===et.Up&&!x;if(z&&D.x!==f.x){const H=v.scrollLeft+p.x,X=b===et.Right&&H<=R.x||b===et.Left&&H>=k.x;if(X&&!p.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===et.Right?v.scrollLeft-R.x:v.scrollLeft-k.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==f.y){const H=v.scrollTop+p.y,X=b===et.Down&&H<=R.y||b===et.Up&&H>=k.y;if(X&&!p.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===et.Down?v.scrollTop-R.y:v.scrollTop-k.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,_o(Uu(f,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Td.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=bE,onActivation:s}=t,{active:i}=n;const{code:o}=e.nativeEvent;if(r.start.includes(o)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function A_(e){return!!(e&&"distance"in e)}function D_(e){return!!(e&&"delay"in e)}class ix{constructor(t,n,r){var s;r===void 0&&(r=sz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:o}=i;this.props=t,this.events=n,this.document=Go(o),this.documentListeners=new Da(this.document),this.listeners=new Da(r),this.windowListeners=new Da(Qn(o)),this.initialCoordinates=(s=$m(i))!=null?s:Or,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(mr.Resize,this.handleCancel),this.windowListeners.add(mr.DragStart,L_),this.windowListeners.add(mr.VisibilityChange,this.handleCancel),this.windowListeners.add(mr.ContextMenu,L_),this.documentListeners.add(mr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(D_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(A_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(mr.Click,iz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(mr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:o,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=$m(t))!=null?n:Or,u=Uu(s,c);if(!r&&l){if(A_(l)){if(l.tolerance!=null&&tp(u,l.tolerance))return this.handleCancel();if(tp(u,l.distance))return this.handleStart()}if(D_(l)&&tp(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),o(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===et.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const az={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ld extends ix{constructor(t){const{event:n}=t,r=Go(n.target);super(t,az,r)}}Ld.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const lz={move:{name:"mousemove"},end:{name:"mouseup"}};var qm;(function(e){e[e.RightClick=2]="RightClick"})(qm||(qm={}));class cz extends ix{constructor(t){super(t,lz,Go(t.event.target))}}cz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===qm.RightClick?!1:(r==null||r({event:n}),!0)}}];const np={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class uz extends ix{constructor(t){super(t,np)}static setup(){return window.addEventListener(np.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(np.move.name,t)};function t(){}}}uz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Ma;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Ma||(Ma={}));var $u;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})($u||($u={}));function dz(e){let{acceleration:t,activator:n=Ma.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:o=5,order:l=$u.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:p}=e;const h=pz({delta:f,disabled:!i}),[g,v]=kV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Ma.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Ma.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),S=m.useCallback(()=>{const k=_.current;if(!k)return;const T=b.current.x*x.current.x,D=b.current.y*x.current.y;k.scrollBy(T,D)},[]),R=m.useMemo(()=>l===$u.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const k of R){if((r==null?void 0:r(k))===!1)continue;const T=u.indexOf(k),D=d[T];if(!D)continue;const{direction:z,speed:j}=JV(k,D,y,t,p);for(const H of["x","y"])h[H][z[H]]||(j[H]=0,z[H]=0);if(j.x>0||j.y>0){v(),_.current=k,g(S,o),b.current=j,x.current=z;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,S,r,v,i,o,JSON.stringify(y),JSON.stringify(h),g,u,R,d,JSON.stringify(p)])}const fz={x:{[cn.Backward]:!1,[cn.Forward]:!1},y:{[cn.Backward]:!1,[cn.Forward]:!1}};function pz(e){let{delta:t,disabled:n}=e;const r=zm(t);return Al(s=>{if(n||!r||!s)return fz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[cn.Backward]:s.x[cn.Backward]||i.x===-1,[cn.Forward]:s.x[cn.Forward]||i.x===1},y:{[cn.Backward]:s.y[cn.Backward]||i.y===-1,[cn.Forward]:s.y[cn.Forward]||i.y===1}}},[n,t,r])}function mz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Al(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function hz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,r)}));return[...n,...i]},[]),[e,t])}var dl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(dl||(dl={}));var Wm;(function(e){e.Optimized="optimized"})(Wm||(Wm={}));const M_=new Map;function gz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,o]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),f=b(),p=ul(f),h=m.useCallback(function(x){x===void 0&&(x=[]),!p.current&&o(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[p]),g=m.useRef(null),v=Al(x=>{if(f&&!n)return M_;if(!x||x===M_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const S=_.node.current,R=S?new sx(c(S),S):null;_.rect.current=R,R&&y.set(_.id,R)}return y}return x},[e,i,n,f,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{f||h()},[n,f]),m.useEffect(()=>{i&&i.length>0&&o(null)},[JSON.stringify(i)]),m.useEffect(()=>{f||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,f,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case dl.Always:return!1;case dl.BeforeDragging:return n;default:return!n}}}function wE(e,t){return Al(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function xz(e,t){return wE(e,t)}function vz(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Ad(e){let{callback:t,disabled:n}=e;const r=tx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function yz(e){return new sx(Ko(e),e)}function O_(e,t,n){t===void 0&&(t=yz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const o=vz({callback(c){if(e)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(e)){i();break}}}}),l=Ad({callback:i});return es(()=>{i(),e?(l==null||l.observe(e),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[e]),r}function _z(e){const t=wE(e);return mE(e,t)}const I_=[];function bz(e){const t=m.useRef(e),n=Al(r=>e?r&&r!==I_&&e&&t.current&&e.parentNode===t.current.parentNode?r:rx(e):I_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function wz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const o=ep(i.target);o&&n(l=>l?(l.set(o,Hm(o)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){o(i);const l=e.map(c=>{const u=ep(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,Hm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{o(e),o(i)};function o(l){l.forEach(c=>{const u=ep(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,o)=>_o(i,o),Or):_E(e):Or,[e,t])}function F_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Or;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Uu(e,n.current):Or}function kz(e){m.useEffect(()=>{if(!Rd)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Sz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=o=>{i(o,t)},n},{}),[e,t])}function kE(e){return m.useMemo(()=>e?KV(e):null,[e])}const B_=[];function Cz(e,t){t===void 0&&(t=Ko);const[n]=e,r=kE(n?Qn(n):null),[s,i]=m.useState(B_);function o(){i(()=>e.length?e.map(c=>vE(c)?r:new sx(t(c),c)):B_)}const l=Ad({callback:o});return es(()=>{l==null||l.disconnect(),o(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Ez(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Ll(t)?t:e}function jz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Ll(d)){r(f=>{const p=t(d);return f?{...f,width:p.width,height:p.height}:p});break}},[t]),i=Ad({callback:s}),o=m.useCallback(u=>{const d=Ez(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Bu(o);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Nz=[{sensor:Ld,options:{}},{sensor:Td,options:{}}],Pz={current:{}},Qc={draggable:{measure:T_},droppable:{measure:T_,strategy:dl.WhileDragging,frequency:Wm.Optimized},dragOverlay:{measure:Ko}};class Oa extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Rz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Oa,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Vu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Qc,measureDroppableContainers:Vu,windowRect:null,measuringScheduled:!1},Tz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Vu,draggableNodes:new Map,over:null,measureDroppableContainers:Vu},Dd=m.createContext(Tz),SE=m.createContext(Rz);function Lz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Oa}}}function Az(e,t){switch(t.type){case nn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case nn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case nn.DragEnd:case nn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case nn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Oa(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case nn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const o=new Oa(e.droppable.containers);return o.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:o}}}case nn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Oa(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Dz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Dd),i=zm(r),o=zm(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&o!=null){if(!nx(i)||document.activeElement===i.target)return;const l=s.get(o);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=EV(d);if(f){f.focus();break}}})}},[r,t,s,o,i]),null}function Mz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Oz(e){return m.useMemo(()=>({draggable:{...Qc.draggable,...e==null?void 0:e.draggable},droppable:{...Qc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Qc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function Iz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:o,y:l}=typeof s=="boolean"?{x:s,y:s}:s;es(()=>{if(!o&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=mE(d,r);if(o||(f.x=0),l||(f.y=0),i.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const p=hE(u);p&&p.scrollBy({top:f.y,left:f.x})}},[t,o,l,r,n])}const CE=m.createContext({...Or,scaleX:1,scaleY:1});var Fs;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Fs||(Fs={}));const EE=m.memo(function(t){var n,r,s,i;let{id:o,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Nz,collisionDetection:f=VV,measuring:p,modifiers:h,...g}=t;const v=m.useReducer(Az,void 0,Lz),[b,x]=v,[y,_]=LV(),[S,R]=m.useState(Fs.Uninitialized),k=S===Fs.Initialized,{draggable:{active:T,nodes:D,translate:z},droppable:{containers:j}}=b,H=T!=null?D.get(T):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var Q;return T!=null?{id:T,data:(Q=H==null?void 0:H.data)!=null?Q:Pz,rect:X}:null},[T,H]),ae=m.useRef(null),[me,ve]=m.useState(null),[oe,B]=m.useState(null),q=ul(g,Object.values(g)),E=Dl("DndDescribedBy",o),de=m.useMemo(()=>j.getEnabled(),[j]),pe=Oz(p),{droppableRects:A,measureDroppableContainers:be,measuringScheduled:Ae}=gz(de,{dragging:k,dependencies:[z.x,z.y],config:pe.droppable}),w=mz(D,T),Y=m.useMemo(()=>oe?$m(oe):null,[oe]),ce=Ve(),_e=xz(w,pe.draggable.measure);Iz({activeNode:T!=null?D.get(T):null,config:ce.layoutShiftCompensation,initialRect:_e,measure:pe.draggable.measure});const ye=O_(w,pe.draggable.measure,_e),ot=O_(w?w.parentElement:null),Xe=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:A,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Xe.current.over)==null?void 0:n.id),tt=jz({measure:pe.dragOverlay.measure}),gt=(r=tt.nodeRef.current)!=null?r:w,at=k?(s=tt.rect)!=null?s:ye:null,pt=!!(tt.nodeRef.current&&tt.rect),G=_z(pt?null:ye),P=kE(gt?Qn(gt):null),N=bz(k?I??w:null),se=Cz(N),M=Mz(h,{transform:{x:z.x-G.x,y:z.y-G.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ye,containerNodeRect:ot,draggingNodeRect:at,over:Xe.current.over,overlayNodeRect:tt.rect,scrollableAncestors:N,scrollableAncestorRects:se,windowRect:P}),W=Y?_o(Y,z):null,Se=wz(N),Ne=F_(Se),O=F_(Se,[ye]),F=_o(M,Ne),K=at?HV(at,M):null,ie=re&&K?f({active:re,collisionRect:K,droppableRects:A,droppableContainers:de,pointerCoordinates:W}):null,Ce=BV(ie,"id"),[Be,dt]=m.useState(null),nt=pt?M:_o(M,O),Ge=zV(nt,(i=Be==null?void 0:Be.rect)!=null?i:null,ye),lt=m.useRef(null),Ke=m.useCallback((Q,ct)=>{let{sensor:Ze,options:Ot}=ct;if(ae.current==null)return;const ft=D.get(ae.current);if(!ft)return;const xt=Q.nativeEvent,St=new Ze({active:ae.current,activeNode:ft,event:xt,options:Ot,context:Xe,onAbort(Ue){if(!D.get(Ue))return;const{onDragAbort:De}=q.current,Pe={id:Ue};De==null||De(Pe),y({type:"onDragAbort",event:Pe})},onPending(Ue,Oe,De,Pe){if(!D.get(Ue))return;const{onDragPending:Ct}=q.current,le={id:Ue,constraint:Oe,initialCoordinates:De,offset:Pe};Ct==null||Ct(le),y({type:"onDragPending",event:le})},onStart(Ue){const Oe=ae.current;if(Oe==null)return;const De=D.get(Oe);if(!De)return;const{onDragStart:Pe}=q.current,qt={activatorEvent:xt,active:{id:Oe,data:De.data,rect:X}};oo.unstable_batchedUpdates(()=>{Pe==null||Pe(qt),R(Fs.Initializing),x({type:nn.DragStart,initialCoordinates:Ue,active:Oe}),y({type:"onDragStart",event:qt}),ve(lt.current),B(xt)})},onMove(Ue){x({type:nn.DragMove,coordinates:Ue})},onEnd:mt(nn.DragEnd),onCancel:mt(nn.DragCancel)});lt.current=St;function mt(Ue){return async function(){const{active:De,collisions:Pe,over:qt,scrollAdjustedTranslate:Ct}=Xe.current;let le=null;if(De&&Ct){const{cancelDrop:rt}=q.current;le={activatorEvent:xt,active:De,collisions:Pe,delta:Ct,over:qt},Ue===nn.DragEnd&&typeof rt=="function"&&await Promise.resolve(rt(le))&&(Ue=nn.DragCancel)}ae.current=null,oo.unstable_batchedUpdates(()=>{x({type:Ue}),R(Fs.Uninitialized),dt(null),ve(null),B(null),lt.current=null;const rt=Ue===nn.DragEnd?"onDragEnd":"onDragCancel";if(le){const Nt=q.current[rt];Nt==null||Nt(le),y({type:rt,event:le})}})}}},[D]),Mt=m.useCallback((Q,ct)=>(Ze,Ot)=>{const ft=Ze.nativeEvent,xt=D.get(Ot);if(ae.current!==null||!xt||ft.dndKit||ft.defaultPrevented)return;const St={active:xt};Q(Ze,ct.options,St)===!0&&(ft.dndKit={capturedBy:ct.sensor},ae.current=Ot,Ke(Ze,ct))},[D,Ke]),U=hz(d,Mt);kz(d),es(()=>{ye&&S===Fs.Initializing&&R(Fs.Initialized)},[ye,S]),m.useEffect(()=>{const{onDragMove:Q}=q.current,{active:ct,activatorEvent:Ze,collisions:Ot,over:ft}=Xe.current;if(!ct||!Ze)return;const xt={active:ct,activatorEvent:Ze,collisions:Ot,delta:{x:F.x,y:F.y},over:ft};oo.unstable_batchedUpdates(()=>{Q==null||Q(xt),y({type:"onDragMove",event:xt})})},[F.x,F.y]),m.useEffect(()=>{const{active:Q,activatorEvent:ct,collisions:Ze,droppableContainers:Ot,scrollAdjustedTranslate:ft}=Xe.current;if(!Q||ae.current==null||!ct||!ft)return;const{onDragOver:xt}=q.current,St=Ot.get(Ce),mt=St&&St.rect.current?{id:St.id,rect:St.rect.current,data:St.data,disabled:St.disabled}:null,Ue={active:Q,activatorEvent:ct,collisions:Ze,delta:{x:ft.x,y:ft.y},over:mt};oo.unstable_batchedUpdates(()=>{dt(mt),xt==null||xt(Ue),y({type:"onDragOver",event:Ue})})},[Ce]),es(()=>{Xe.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:K,collisions:ie,droppableRects:A,draggableNodes:D,draggingNode:gt,draggingNodeRect:at,droppableContainers:j,over:Be,scrollableAncestors:N,scrollAdjustedTranslate:F},X.current={initial:at,translated:K}},[re,w,ie,K,D,gt,at,A,j,Be,N,F]),dz({...ce,delta:z,draggingRect:K,pointerCoordinates:W,scrollableAncestors:N,scrollableAncestorRects:se});const J=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ye,activatorEvent:oe,collisions:ie,containerNodeRect:ot,dragOverlay:tt,draggableNodes:D,droppableContainers:j,droppableRects:A,over:Be,measureDroppableContainers:be,scrollableAncestors:N,scrollableAncestorRects:se,measuringConfiguration:pe,measuringScheduled:Ae,windowRect:P}),[re,w,ye,oe,ie,ot,tt,D,j,A,Be,be,N,se,pe,Ae,P]),Le=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ye,ariaDescribedById:{draggable:E},dispatch:x,draggableNodes:D,over:Be,measureDroppableContainers:be}),[oe,U,re,ye,x,E,D,Be,be]);return un.createElement(dE.Provider,{value:_},un.createElement(Dd.Provider,{value:Le},un.createElement(SE.Provider,{value:J},un.createElement(CE.Provider,{value:Ge},u)),un.createElement(Dz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),un.createElement(MV,{...l,hiddenTextDescribedById:E}));function Ve(){const Q=(me==null?void 0:me.autoScrollEnabled)===!1,ct=typeof c=="object"?c.enabled===!1:c===!1,Ze=k&&!Q&&!ct;return typeof c=="object"?{...c,enabled:Ze}:{enabled:Ze}}}),Fz=m.createContext(null),U_="button",Bz="Draggable";function Uz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Dl(Bz),{activators:o,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:p}=m.useContext(Dd),{role:h=U_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?CE:Fz),[y,_]=Bu(),[S,R]=Bu(),k=Sz(o,t),T=ul(n);es(()=>(f.set(t,{id:t,key:i,node:y,activatorNode:S,data:T}),()=>{const z=f.get(t);z&&z.key===i&&f.delete(t)}),[f,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===U_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:k,node:y,over:p,setNodeRef:_,setActivatorNodeRef:R,transform:x}}function Vz(){return m.useContext(SE)}const zz="Droppable",$z={timeout:25};function Hz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Dl(zz),{active:o,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Dd),d=m.useRef({disabled:n}),f=m.useRef(!1),p=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...$z,...s},x=ul(v??r),y=m.useCallback(()=>{if(!f.current){f.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Ad({callback:y,disabled:g||!o}),S=m.useCallback((D,z)=>{_&&(z&&(_.unobserve(z),f.current=!1),D&&_.observe(D))},[_]),[R,k]=Bu(S),T=ul(t);return m.useEffect(()=>{!_||!R.current||(_.disconnect(),f.current=!1,_.observe(R.current))},[R,_]),m.useEffect(()=>(l({type:nn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:R,rect:p,data:T}}),()=>l({type:nn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:nn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:o,rect:p,isOver:(c==null?void 0:c.id)===r,node:R,over:c,setNodeRef:k}}function ox(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function qz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function kc(e){return e!==null&&e>=0}function Wz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ox(t,r,n),o=t[s],l=i[s];return!l||!o?null:{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}},Sc={scaleX:1,scaleY:1},NE=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:o}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[o];return u?{x:0,y:nn&&s<=o?{x:0,y:-l.height-c,...Sc}:s=o?{x:0,y:l.height+c,...Sc}:{x:0,y:0,...Sc}};function Kz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(k=>typeof k=="object"&&"id"in k?k.id:k),[r]),g=o!=null,v=o?h.indexOf(o.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Wz(h,x.current),_=b!==-1&&v===-1||y,S=Gz(i);es(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const R=m.useMemo(()=>({activeIndex:v,containerId:f,disabled:S,disableTransforms:_,items:h,overIndex:b,useDragOverlay:p,sortedRects:qz(h,c),strategy:s}),[v,f,S.draggable,S.droppable,_,h,b,c,p,s]);return un.createElement(RE.Provider,{value:R},t)}const Qz=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ox(n,r,s).indexOf(t)},Yz=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:o,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===o?!1:n?!0:o!==s&&t===c},Xz={duration:200,easing:"ease"},LE="transform",Jz=Mo.Transition.toString({property:LE,duration:0,easing:"linear"}),Zz={roleDescription:"sortable"};function e8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,o]=m.useState(null),l=m.useRef(n);return es(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Ko(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&o(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&o(null)},[i]),i}function AE(e){let{animateLayoutChanges:t=Yz,attributes:n,disabled:r,data:s,getNewIndex:i=Qz,id:o,strategy:l,resizeObserverConfig:c,transition:u=Xz}=e;const{items:d,containerId:f,activeIndex:p,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(RE),_=t8(r,h),S=d.indexOf(o),R=m.useMemo(()=>({sortable:{containerId:f,index:S,items:d},...s}),[f,s,S,d]),k=m.useMemo(()=>d.slice(d.indexOf(o)),[d,o]),{rect:T,node:D,isOver:z,setNodeRef:j}=Hz({id:o,data:R,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:k,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:ae,setNodeRef:me,listeners:ve,isDragging:oe,over:B,setActivatorNodeRef:q,transform:E}=Uz({id:o,data:R,attributes:{...Zz,...n},disabled:_.draggable}),de=wV(j,me),pe=!!H,A=pe&&!g&&kc(p)&&kc(b),be=!x&&oe,Ae=be&&A?E:null,Y=A?Ae??(l??y)({rects:v,activeNodeRect:re,activeIndex:p,overIndex:b,index:S}):null,ce=kc(p)&&kc(b)?i({id:o,items:d,activeIndex:p,overIndex:b}):S,_e=H==null?void 0:H.id,ye=m.useRef({activeId:_e,items:d,newIndex:ce,containerId:f}),ot=d!==ye.current.items,Xe=t({active:H,containerId:f,isDragging:oe,isSorting:pe,id:o,index:S,items:d,newIndex:ye.current.newIndex,previousItems:ye.current.items,previousContainerId:ye.current.containerId,transition:u,wasDragging:ye.current.activeId!=null}),I=e8({disabled:!Xe,index:S,node:D,rect:T});return m.useEffect(()=>{pe&&ye.current.newIndex!==ce&&(ye.current.newIndex=ce),f!==ye.current.containerId&&(ye.current.containerId=f),d!==ye.current.items&&(ye.current.items=d)},[pe,ce,f,d]),m.useEffect(()=>{if(_e===ye.current.activeId)return;if(_e!=null&&ye.current.activeId==null){ye.current.activeId=_e;return}const gt=setTimeout(()=>{ye.current.activeId=_e},50);return()=>clearTimeout(gt)},[_e]),{active:H,activeIndex:p,attributes:ae,data:R,rect:T,index:S,newIndex:ce,items:d,isOver:z,isSorting:pe,isDragging:oe,listeners:ve,node:D,overIndex:b,over:B,setNodeRef:de,setActivatorNodeRef:q,setDroppableNodeRef:j,setDraggableNodeRef:me,transform:I??Y,transition:tt()};function tt(){if(I||ot&&ye.current.newIndex===S)return Jz;if(!(be&&!nx(X)||!u)&&(pe||Xe))return Mo.Transition.toString({...u,property:LE})}}function t8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}et.Down,et.Right,et.Up,et.Left;const DE=e=>{let{transform:t}=e;return{...t,x:0}};function n8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:o,transition:l,isDragging:c}=AE({id:e,disabled:n}),u={transform:Mo.Transform.toString(o),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return a.jsx("div",{ref:i,style:u,...r,children:a.jsxs("div",{className:"flex items-center",children:[!n&&a.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:a.jsx(aS,{className:"w-4 h-4"})}),a.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var ME={exports:{}};(function(e,t){(function(n,r){r()})(ps,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,f){var p=new XMLHttpRequest;p.open("GET",u),p.responseType="blob",p.onload=function(){c(p.response,d,f)},p.onerror=function(){console.error("could not download file")},p.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ps=="object"&&ps.global===ps?ps:void 0,l=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,f){var p=o.URL||o.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,f):i(h,h.target="_blank")):(h.href=p.createObjectURL(u),setTimeout(function(){p.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,f){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,f),d);else if(s(u))r(u,d,f);else{var p=document.createElement("a");p.href=u,p.target="_blank",setTimeout(function(){i(p)})}}:function(u,d,f,p){if(p=p||open("","_blank"),p&&(p.document.title=p.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,f);var h=u.type==="application/octet-stream",g=/constructor/i.test(o.HTMLElement)||o.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),p?p.location.href=_:location=_,p=null},b.readAsDataURL(u)}else{var x=o.URL||o.webkitURL,y=x.createObjectURL(u);p?p.location=y:location.href=y,p=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});o.saveAs=c.saveAs=c,e.exports=c})})(ME);var Gm=ME.exports;const Pr={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Cc={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function r8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),o=Math.floor(i/60),l=Math.floor(o/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:o<24?`${o}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function s8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return a.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[a.jsxs("button",{onClick:()=>t("all"),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",a.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>a.jsxs("button",{onClick:()=>t(r),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Pr[r].text:"var(--text-muted)",backgroundColor:e===r?Pr[r].bg:"transparent"},children:[Pr[r].label,a.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function i8(){const e=cd(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=_s(),[o,l]=m.useState(!1),[c,u]=m.useState(""),[d,f]=m.useState(!1),[p,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[S,R]=m.useState(new Set),[k,T]=m.useState(!1),[D,z]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[ae,me]=m.useState(null),[ve,oe]=m.useState(!1),[B,q]=m.useState(!1),E=fE(zu(Ld,{activationConstraint:{distance:5}}),zu(Td));m.useEffect(()=>{r()},[r]);const de=m.useCallback(async()=>{f(!0),await r(!0),f(!1),$e.success("Refreshed")},[r]),pe=m.useMemo(()=>{const G=t.length,P=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="aws"}).length,N=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="azure"}).length,se=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="gcp"}).length;return{all:G,aws:P,azure:N,gcp:se}},[t]),A=m.useMemo(()=>{const G=t.reduce((P,N)=>P+(N.line_item_count||0),0);return{estimates:t.length,workloads:G}},[t]),be=m.useMemo(()=>{const G=new Set;return t.forEach(P=>{P.customer_name&&G.add(P.customer_name)}),Array.from(G).sort()},[t]),Ae=m.useMemo(()=>{const G={all:t.length};return t.forEach(P=>{P.customer_name&&(G[P.customer_name]=(G[P.customer_name]||0)+1)}),G},[t]),w=m.useMemo(()=>{let G=[...t];if(c){const P=c.toLowerCase();G=G.filter(N=>{var se;return N.estimate_name.toLowerCase().includes(P)||((se=N.customer_name)==null?void 0:se.toLowerCase().includes(P))})}switch(p!=="all"&&(G=G.filter(P=>{var N;return((N=P.cloud)==null?void 0:N.toLowerCase())===p})),b!=="all"&&(G=G.filter(P=>P.customer_name===b)),g){case"updated":G.sort((P,N)=>new Date(N.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":G.sort((P,N)=>P.estimate_name.localeCompare(N.estimate_name));break;case"workloads":G.sort((P,N)=>(N.line_item_count||0)-(P.line_item_count||0));break;case"display_order":G.sort((P,N)=>(P.display_order??0)-(N.display_order??0));break}return G},[t,c,p,g,b]),Y=m.useCallback(async G=>{const{active:P,over:N}=G;if(!N||P.id===N.id)return;const se=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===N.id);if(se===-1||M===-1)return;g!=="display_order"&&v("display_order");const W=ox(w,se,M),{estimates:Se}=_s.getState(),Ne=Se.map(O=>{const F=W.findIndex(K=>K.estimate_id===O.estimate_id);return F>=0?{...O,display_order:F}:O});_s.setState({estimates:Ne});try{await q4(W.map(O=>O.estimate_id))}catch{$e.error("Failed to save reorder")}},[w,g]),ce=(G,P,N)=>{G.stopPropagation(),me({id:P,name:N}),re(!0)},_e=async()=>{if(ae){oe(!0);try{await s(ae.id),$e.success("Estimate deleted")}catch{$e.error("Failed to delete")}finally{oe(!1),re(!1),me(null)}}},ye=async(G,P)=>{G.stopPropagation();try{const N=await i(P);$e.success("Estimate duplicated"),e(`/calculator/${N.estimate_id}`)}catch{$e.error("Failed to duplicate")}},ot=async()=>{l(!0);try{const G=await lO();Gm.saveAs(G,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),$e.success("Exported successfully")}catch{$e.error("Export failed")}finally{l(!1)}},Xe=()=>{S.size===w.length?R(new Set):R(new Set(w.map(G=>G.estimate_id)))},I=(G,P)=>{P.stopPropagation();const N=new Set(S);N.has(G)?N.delete(G):N.add(G),R(N)},tt=()=>{S.size!==0&&q(!0)},gt=async()=>{z(!0);let G=0,P=0;for(const N of S)try{await s(N),G++}catch{P++}z(!1),R(new Set),q(!1),P===0?$e.success(`Deleted ${G} estimate(s)`):$e.error(`Deleted ${G}, failed ${P}`)},at=async()=>{if(S.size===0)return;H(!0);let G=0;for(const P of S)try{const N=t.find(se=>se.estimate_id===P);if(N){const se=await qS(P);Gm.saveAs(se,`${N.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),G++}}catch{}H(!1),$e.success(`Exported ${G} estimate(s)`)},pt=()=>{T(!1),R(new Set)};return a.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[a.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[a.jsxs("div",{children:[a.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),a.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[a.jsxs("span",{className:"flex items-center gap-1",children:[a.jsx(ny,{className:"w-4 h-4"}),A.estimates," estimate",A.estimates!==1?"s":""]}),a.jsxs("span",{className:"flex items-center gap-1",children:[a.jsx(Ng,{className:"w-4 h-4"}),A.workloads," total workloads"]})]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{onClick:de,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:a.jsx(Qr,{className:ue("w-5 h-5",d&&"animate-spin")})}),k?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[S.size," selected"]}),a.jsxs("button",{onClick:at,disabled:S.size===0||j,className:"btn btn-secondary text-sm",children:[a.jsx(zc,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),a.jsxs("button",{onClick:tt,disabled:S.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[a.jsx(en,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),a.jsx("button",{onClick:pt,className:"btn btn-ghost p-2",title:"Cancel selection",children:a.jsx(To,{className:"w-5 h-5"})})]}):a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:()=>T(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),a.jsxs("button",{onClick:ot,disabled:o||t.length===0,className:"btn btn-secondary",children:[a.jsx(zc,{className:"w-4 h-4"}),"Export All"]}),a.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[a.jsx(Au,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),a.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[a.jsx(s8,{cloudFilter:p,setCloudFilter:h,cloudCounts:pe}),be.length>0&&a.jsxs("div",{className:"relative",children:[a.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[a.jsx(cD,{className:"w-4 h-4"}),a.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),a.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?be.length:Ae[b]||0}),a.jsx(tr,{className:ue("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),a.jsx(nm,{children:y&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),a.jsxs(Bt.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[a.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[a.jsx("span",{children:"All Accounts"}),a.jsx("span",{className:"text-xs opacity-60",children:be.length})]}),a.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),be.map(G=>a.jsxs("button",{onClick:()=>{x(G),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===G?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===G?"#FF3621":"var(--text-primary)"},children:[a.jsx("span",{className:"truncate",title:G,children:G}),a.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[a.jsx("span",{className:"text-xs opacity-60",children:Ae[G]||0}),b===G&&a.jsx(qs,{className:"w-4 h-4"})]})]},G))]})]})})]})]}),a.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:a.jsxs("div",{className:"relative flex-1",children:[a.jsx(uS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),a.jsx("input",{type:"text",value:c,onChange:G=>u(G.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?a.jsx("div",{className:"card overflow-hidden",children:a.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(G=>a.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[a.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),a.jsxs("div",{className:"flex-1",children:[a.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),a.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},G))})}):w.length===0?a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[a.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:a.jsx(ny,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),a.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||p!=="all"||b!=="all"?"No matches found":"No estimates yet"}),a.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||p!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&p==="all"&&b==="all"&&a.jsxs(bu,{to:"/calculator",className:"btn btn-primary",children:[a.jsx(Au,{className:"w-4 h-4"}),"Create Estimate"]})]}):a.jsxs("div",{className:"card overflow-hidden",children:[a.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[k&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("button",{onClick:Xe,className:"flex items-center justify-center",children:a.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",S.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:S.size===w.length&&w.length>0&&a.jsx(qs,{className:"w-3 h-3 text-white"})})})}),a.jsx("div",{className:ue(k?"col-span-3":"col-span-4"),children:"Estimate"}),a.jsx("div",{className:"col-span-2",children:"Account"}),a.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),a.jsx("div",{className:"col-span-2",children:"Region / Tier"}),a.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),a.jsx("div",{className:"col-span-1",children:"Modified"}),a.jsx("div",{className:"col-span-1"})]}),a.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:a.jsx(EE,{sensors:E,collisionDetection:pE,onDragEnd:Y,modifiers:[DE],children:a.jsx(TE,{items:w.map(G=>G.estimate_id),strategy:NE,children:w.map((G,P)=>{const N=S.has(G.estimate_id);return a.jsx(n8,{id:G.estimate_id,children:a.jsxs(Bt.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!k&&e(`/calculator/${G.estimate_id}`),className:ue("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!k&&"cursor-pointer hover:bg-[var(--bg-hover)]",N&&"bg-blue-500/5"),children:[k&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("button",{onClick:se=>I(G.estimate_id,se),className:"flex items-center justify-center",children:a.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",N?"bg-blue-500 border-blue-500":"border-gray-400"),children:N&&a.jsx(qs,{className:"w-3 h-3 text-white"})})})}),a.jsxs("div",{className:ue("flex items-center gap-3",k?"col-span-3":"col-span-4"),children:[a.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:G.cloud&&Pr[G.cloud.toLowerCase()]?Pr[G.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:a.jsx(ym,{className:"w-4 h-4",style:{color:G.cloud&&Pr[G.cloud.toLowerCase()]?Pr[G.cloud.toLowerCase()].text:"var(--text-muted)"}})}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:G.estimate_name,children:G.estimate_name}),a.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:G.customer_name||"",children:G.customer_name||"—"})]})]}),a.jsx("div",{className:"hidden sm:block col-span-2",children:a.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:G.customer_name||"",children:G.customer_name||"—"})}),a.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:G.cloud&&Pr[G.cloud.toLowerCase()]?a.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Pr[G.cloud.toLowerCase()].bg,color:Pr[G.cloud.toLowerCase()].text},children:Pr[G.cloud.toLowerCase()].label}):a.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),a.jsx("div",{className:"hidden sm:block col-span-2",children:G.region||G.tier?a.jsxs("div",{className:"flex flex-col gap-0.5",children:[G.region&&a.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:G.region,children:G.region}),G.tier&&Cc[G.tier.toLowerCase()]&&a.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Cc[G.tier.toLowerCase()].bg,color:Cc[G.tier.toLowerCase()].text},children:Cc[G.tier.toLowerCase()].label})]}):a.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),a.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:a.jsx("span",{className:ue("px-2 py-0.5 rounded text-xs font-medium",G.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:G.line_item_count===0?{color:"var(--text-muted)"}:{},children:G.line_item_count})}),a.jsx("div",{className:"hidden sm:block col-span-1",children:a.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:r8(G.updated_at)})}),a.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!k&&a.jsxs(a.Fragment,{children:[a.jsx("button",{onClick:se=>ye(se,G.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:se=>ce(se,G.estimate_id,G.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:a.jsx(en,{className:"w-4 h-4"})})]})})]})},G.estimate_id)})})})}),a.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&ae&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',ae.name,'"']}),"? All workloads in this estimate will also be deleted."]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>{re(!1),me(null)},disabled:ve,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:_e,disabled:ve,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ve?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]})})]})]})}),B&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",S.size," Estimate",S.size!==1?"s":""]}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[a.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),a.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(G=>S.has(G.estimate_id)).map(G=>a.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",G.estimate_name]},G.estimate_id))})]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>q(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:gt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),S.size>0&&a.jsxs(Bt.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[a.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[S.size," estimate",S.size!==1?"s":""," selected"]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),a.jsxs("button",{onClick:at,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[a.jsx(zc,{className:"w-4 h-4"}),"Export"]}),a.jsxs("button",{onClick:tt,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsxs("button",{onClick:()=>{R(new Set),T(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[a.jsx(To,{className:"w-4 h-4"}),"Cancel"]})]})]})}function V_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:o="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:f=!1}){const[p,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(T=>T.value===t),_=g?e.filter(T=>{var D;return T.label.toLowerCase().includes(g.toLowerCase())||((D=T.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,S=m.useMemo(()=>{if(!f)return null;const T={};return _.forEach(z=>{const j=z.group||"Other";T[j]||(T[j]=[]),T[j].push(z)}),Object.keys(T).sort((z,j)=>z==="General Purpose"?-1:j==="General Purpose"?1:z.localeCompare(j)).map(z=>({name:z,options:T[z]}))},[_,f]);m.useEffect(()=>{const T=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[]),m.useEffect(()=>{const T=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(T)},[g,r]);const R=T=>{n(T),h(!1),v("")},k=T=>{T.stopPropagation(),n(""),v("")};return a.jsxs("div",{ref:b,className:ue("relative",d),children:[a.jsxs("div",{onClick:()=>{if(!c){const T=p;h(!p),T||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:ue("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",p&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!p&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[a.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),p?a.jsx("input",{ref:x,type:"text",value:g,onChange:T=>v(T.target.value),placeholder:o,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:T=>T.stopPropagation()}):l?a.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[a.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):a.jsx("span",{className:ue("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!p&&a.jsx("button",{onClick:k,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:a.jsx(To,{className:"w-4 h-4 text-[var(--text-muted)]"})}),a.jsx(tr,{className:ue("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",p&&"rotate-180")})]}),p&&a.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?a.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?a.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):f&&S?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),S.map(T=>a.jsxs("div",{children:[a.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:T.name}),T.options.map(D=>a.jsx("div",{onClick:()=>R(D.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},T.name))]}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(T=>a.jsx("div",{onClick:()=>R(T.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",T.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:T.label},T.value))]})})]})}function z_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const o=Array.from(s);return o.length>0?o.sort():["all","short","long"]}function o8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const o=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&o.add(d[5])}});const c=Array.from(o);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const OE=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"]);function ua(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:OE.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const a8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function $_({tier:e}){const[t,n]=m.useState(!1),r=a8[e];return r?a.jsxs("div",{className:"relative inline-block ml-1",children:[a.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:a.jsx(cS,{className:"w-3.5 h-3.5"})}),t&&a.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[a.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),a.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),a.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function l8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return a.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[a.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[a.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?a.jsx(tr,{className:"w-3 h-3"}):a.jsx(lS,{className:"w-3 h-3"}),"Notes",e&&!n&&a.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),a.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&a.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:a.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function H_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function rp({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var G;const{workloadTypes:o,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:f,fmapiDatabricksConfig:p,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:S,fetchLineItems:R,clearSingleWorkloadCost:k,markItemCalculating:T,fetchVMCostForInstance:D}=_s(),z=m.useRef(!0);m.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],ae=u.length>0?u:re,me=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],ve=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:ve,B={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},q=p&&p.models&&p.models.llm?p:B,E={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},de=h&&Array.isArray(h.providers)?h:E,[pe,A]=m.useState(!1),[be,Ae]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,Y]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ce={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){Y({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);Ae(P)}else Y(ce),Ae(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&Y(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&Y(P=>({...P,dbsql_warehouse_type:"PRO"})),OE.has(w.workload_type)&&Y(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?rC(x,g,v,b):null,ye=o.filter(P=>ua(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),ot=_e&&_e.length>0&&o.some(P=>ua(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ye[0];P&&Y(N=>({...N,workload_type:P.workload_type}))}},[_e,w.workload_type,ye,t]);const Xe=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!z.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=o.find(P=>P.workload_type===w.workload_type),tt=o.length===0,gt=!tt&&!I&&w.workload_type,at=async P=>{if(P.preventDefault(),!w.workload_name.trim()){$e.error("Enter a workload name");return}A(!0);try{const N={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(N.serverless_enabled=w.serverless_enabled,N.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(N.serverless_enabled=!1,N.serverless_mode=null),I!=null&&I.show_compute_config?(N.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,N.driver_node_type=w.driver_node_type||null,N.worker_node_type=w.worker_node_type||null,N.num_workers=w.num_workers,N.driver_pricing_tier=w.driver_pricing_tier||"on_demand",N.worker_pricing_tier=w.worker_pricing_tier||"spot",N.driver_payment_option=w.driver_payment_option||"NA",N.worker_payment_option=w.worker_payment_option||"NA"):(N.photon_enabled=!1,N.driver_node_type=null,N.worker_node_type=null,N.num_workers=null,N.driver_pricing_tier=null,N.worker_pricing_tier=null,N.driver_payment_option=null,N.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?N.dlt_edition=w.dlt_edition:N.dlt_edition=null,I!=null&&I.show_dbsql_config?(N.dbsql_warehouse_type=w.dbsql_warehouse_type,N.dbsql_warehouse_size=w.dbsql_warehouse_size,N.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(N.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,N.dbsql_driver_payment_option=w.dbsql_driver_payment_option,N.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,N.dbsql_worker_payment_option=w.dbsql_worker_payment_option,N.driver_pricing_tier=w.dbsql_driver_pricing_tier,N.driver_payment_option=w.dbsql_driver_payment_option,N.worker_pricing_tier=w.dbsql_worker_pricing_tier,N.worker_payment_option=w.dbsql_worker_payment_option)):(N.dbsql_warehouse_type=null,N.dbsql_warehouse_size=null,N.dbsql_num_clusters=null,N.dbsql_driver_pricing_tier=null,N.dbsql_driver_payment_option=null,N.dbsql_worker_pricing_tier=null,N.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(N.vector_search_mode=w.vector_search_mode,N.vector_capacity_millions=w.vector_capacity_millions,N.vector_search_storage_gb=w.vector_search_storage_gb||0):(N.vector_search_mode=null,N.vector_capacity_millions=null,N.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(N.model_serving_gpu_type=w.model_serving_gpu_type,N.model_serving_scale_out=w.model_serving_scale_out,N.model_serving_concurrency=w.model_serving_concurrency):(N.model_serving_gpu_type=null,N.model_serving_scale_out=null,N.model_serving_concurrency=null),I!=null&&I.show_lakebase_config?(N.lakebase_cu=w.lakebase_cu,N.lakebase_storage_gb=w.lakebase_storage_gb||0,N.lakebase_ha_nodes=w.lakebase_ha_nodes,N.lakebase_backup_retention_days=w.lakebase_backup_retention_days,N.lakebase_pitr_gb=w.lakebase_pitr_gb||0,N.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(N.lakebase_cu=null,N.lakebase_storage_gb=null,N.lakebase_ha_nodes=null,N.lakebase_backup_retention_days=null,N.lakebase_pitr_gb=null,N.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(N.fmapi_provider=w.fmapi_provider,N.fmapi_model=w.fmapi_model||null,N.fmapi_endpoint_type=w.fmapi_endpoint_type,N.fmapi_context_length=w.fmapi_context_length,N.fmapi_rate_type=w.fmapi_rate_type,N.fmapi_quantity=w.fmapi_quantity):(N.fmapi_provider=null,N.fmapi_model=null,N.fmapi_endpoint_type=null,N.fmapi_context_length=null,N.fmapi_rate_type=null,N.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?be?(N.hours_per_month=w.hours_per_month||730,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):(N.hours_per_month=null,N.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,N.avg_runtime_minutes=w.avg_runtime_minutes,N.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config?(N.hours_per_month=w.hours_per_month||730,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):I!=null&&I.show_fmapi_config?(N.hours_per_month=w.hours_per_month||null,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null):(N.hours_per_month=null,N.runs_per_day=null,N.avg_runtime_minutes=null,N.days_per_month=null),t)k(t.line_item_id),T(t.line_item_id),await S(t.line_item_id,N),$e.success("Workload updated");else{N.estimate_id=e;const M=await _(N);M!=null&&M.line_item_id&&T(M.line_item_id),$e.success("Workload added")}R(e),r==null||r(),n()}catch(N){console.error("Failed to save workload:",N),$e.error("Failed to save")}finally{A(!1)}},pt=I==null?void 0:I.show_compute_config;return tt?a.jsxs("div",{className:"p-8 text-center",children:[a.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):a.jsxs("form",{onSubmit:at,className:"space-y-3",children:[a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),a.jsx("input",{type:"text",value:w.workload_name,onChange:P=>Y(N=>({...N,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&a.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),a.jsxs("select",{value:w.workload_type,onChange:P=>Y(N=>({...N,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:ue("w-full text-sm",gt&&"border-red-500",Xe&&"border-yellow-500"),children:[Xe&&(()=>{const P=o.find(N=>N.workload_type===w.workload_type);return P?a.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ye.map(P=>a.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),gt&&a.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Xe&&a.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),ot&&!Xe&&a.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&a.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const N=!ua(w.workload_type,b,!0).available;return a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",N&&"opacity-50 cursor-not-allowed"),children:[a.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!N,onChange:()=>!N&&Y(se=>{const M=!se.serverless_enabled,W=se.workload_type==="ALL_PURPOSE"&&M?"performance":se.serverless_mode;return{...se,serverless_enabled:M,serverless_mode:W}}),disabled:N,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),a.jsx(ym,{className:"w-4 h-4 text-teal-600"}),a.jsx("span",{className:ue("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),N&&a.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(ua(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?a.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),a.jsx("select",{value:w.serverless_mode,onChange:se=>Y(M=>({...M,serverless_mode:se.target.value})),className:"text-sm py-1 px-2",children:me.map(se=>a.jsx("option",{value:se.id,children:se.name},se.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[a.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&Y(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),a.jsx(Ru,{className:"w-4 h-4 text-lava-600"}),a.jsx("span",{className:ue("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&a.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),pt&&a.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&a.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:a.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[a.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[a.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[a.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),a.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),a.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),a.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>Y(N=>({...N,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&a.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",a.jsx($_,{tier:w.driver_pricing_tier})]}),a.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>Y(N=>({...N,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),a.jsx("select",{value:w.driver_payment_option,onChange:P=>Y(N=>({...N,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),a.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[a.jsxs("div",{className:"flex items-center justify-between mb-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),a.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),a.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),a.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[a.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&Y(N=>({...N,worker_node_type:N.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),a.jsx("span",{className:ue("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex gap-2",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),a.jsx(V_,{options:l.map(P=>({value:P.id,label:H_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>Y(N=>({...N,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),a.jsxs("div",{className:"w-14 flex-shrink-0",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),a.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>Y(N=>({...N,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&a.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",a.jsx($_,{tier:w.worker_pricing_tier})]}),a.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>Y(N=>({...N,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"spot",children:"Spot Instances"}),a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),a.jsx("select",{value:w.worker_payment_option,onChange:P=>Y(N=>({...N,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[pt&&a.jsx(a.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),a.jsx("select",{value:w.dlt_edition,onChange:P=>Y(N=>({...N,dlt_edition:P.target.value})),className:"w-full text-sm",children:ae.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&a.jsxs(a.Fragment,{children:[(()=>{const N=!ua("DBSQL",b,!1,"SERVERLESS").available,se=w.dbsql_warehouse_type==="SERVERLESS"&&!N;return a.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[a.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",N&&"opacity-50 cursor-not-allowed"),children:[a.jsx("input",{type:"checkbox",checked:se,onChange:()=>!N&&Y(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:N,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),a.jsx(ym,{className:"w-4 h-4 text-teal-600"}),a.jsx("span",{className:ue("text-sm",se?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),N&&a.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!se&&a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),a.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>Y(W=>({...W,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[a.jsx("option",{value:"PRO",children:"Pro"}),a.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),a.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>Y(N=>({...N,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>a.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),a.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>Y(N=>({...N,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Ne,O;const P=y?al(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,N=P!=null&&P.driver_instance_type?l.find(F=>F.id===P.driver_instance_type):null,se=P!=null&&P.worker_instance_type?l.find(F=>F.id===P.worker_instance_type):null,M=(F,K,ie)=>{var Be,dt,nt,Ge,lt,Ke,Mt;if(!(F!=null&&F.vm_pricing))return null;const Ce=K.toLowerCase();if(Ce==="on_demand")return(Be=F.vm_pricing.on_demand)==null?void 0:Be.cost_per_hour;if(Ce==="spot")return(dt=F.vm_pricing.spot)==null?void 0:dt.cost_per_hour;if(Ce==="reserved_1y"){const U=((nt=F.vm_pricing.reserved_1y)==null?void 0:nt.find(J=>J.payment_option===ie))||((Ge=F.vm_pricing.reserved_1y)==null?void 0:Ge[0]);return U==null?void 0:U.cost_per_hour}if(Ce==="reserved_3y"){const U=((lt=F.vm_pricing.reserved_3y)==null?void 0:lt.find(J=>J.payment_option===ie))||((Ke=F.vm_pricing.reserved_3y)==null?void 0:Ke[0]);return U==null?void 0:U.cost_per_hour}return(Mt=F.vm_pricing.on_demand)==null?void 0:Mt.cost_per_hour},W=M(N,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),Se=M(se,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return a.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[a.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[a.jsxs("div",{className:"flex items-center justify-between mb-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),a.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),a.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),N&&a.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[a.jsxs("span",{children:[(Ne=N.dbu_rate)==null?void 0:Ne.toFixed(2)," DBU/hr"]}),W!=null&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"·"}),a.jsxs("span",{children:["$",W.toFixed(4),"/hr"]})]})]}),a.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:F=>Y(K=>({...K,dbsql_driver_pricing_tier:F.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&a.jsx("select",{value:w.dbsql_driver_payment_option,onChange:F=>Y(K=>({...K,dbsql_driver_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>a.jsx("option",{value:F.id,children:F.name},F.id))})]}),a.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[a.jsxs("div",{className:"flex items-center justify-between mb-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),a.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),a.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),se&&a.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[a.jsxs("span",{children:[(O=se.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),Se!=null&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"·"}),a.jsxs("span",{children:["$",Se.toFixed(4),"/hr"]})]})]}),a.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:F=>Y(K=>({...K,dbsql_worker_pricing_tier:F.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"spot",children:"Spot Instances"}),a.jsx("option",{value:"on_demand",children:"On-Demand"}),a.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),a.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&a.jsx("select",{value:w.dbsql_worker_payment_option,onChange:F=>Y(K=>({...K,dbsql_worker_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>a.jsx("option",{value:F.id,children:F.name},F.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),a.jsxs("select",{value:w.vector_search_mode,onChange:P=>Y(N=>({...N,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[a.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),a.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),a.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>Y(N=>({...N,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>Y(N=>({...N,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),a.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),a.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>Y(N=>({...N,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:f.map(P=>a.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),a.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const N={small:4,medium:12,large:40},se=P.target.value;Y(M=>({...M,model_serving_scale_out:se,model_serving_concurrency:se==="custom"?M.model_serving_concurrency||4:N[se]||4}))},className:"w-full text-sm",children:[a.jsx("option",{value:"small",children:"Small (4 concurrency)"}),a.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),a.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),a.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),a.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const N=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);Y(se=>({...se,model_serving_concurrency:N}))},className:"w-full text-sm"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),a.jsxs("select",{value:w.fmapi_model,onChange:P=>Y(N=>({...N,fmapi_model:P.target.value})),className:"w-full text-sm",children:[a.jsx("optgroup",{label:"LLMs",children:q.models.llm.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))}),a.jsx("optgroup",{label:"Embedding Models",children:q.models.embedding.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),a.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>Y(N=>({...N,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[a.jsxs("optgroup",{label:"Token-based",children:[a.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&a.jsx("option",{value:"output_token",children:"Output Token"})]}),a.jsxs("optgroup",{label:"Provisioned",children:[a.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),a.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),a.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>Y(N=>({...N,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),a.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:a.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?a.jsxs(a.Fragment,{children:[a.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):a.jsxs(a.Fragment,{children:[a.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),a.jsx("select",{value:w.fmapi_provider,onChange:P=>Y(N=>({...N,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:de.providers.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),a.jsxs("select",{value:w.fmapi_model,onChange:P=>{const N=P.target.value,se=z_(x,g||"aws",w.fmapi_provider,N),M=se.includes(w.fmapi_context_length)?w.fmapi_context_length:se[0]||"all";Y(W=>({...W,fmapi_model:N,fmapi_context_length:M}))},className:"w-full text-sm",children:[a.jsx("option",{value:"",children:"Select model"}),(G=de.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:G.models.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),a.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>Y(N=>({...N,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:de.endpoint_types.map(P=>a.jsx("option",{value:P.id,children:P.name},P.id))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),a.jsx("select",{value:w.fmapi_context_length,onChange:P=>Y(N=>({...N,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?z_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],N={all:"All",short:"Short",long:"Long"};return P.map(se=>a.jsx("option",{value:se,children:N[se]||se},se))})()})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),a.jsx("select",{value:w.fmapi_rate_type,onChange:P=>Y(N=>({...N,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?o8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],N={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(se=>a.jsx("option",{value:se,children:N[se]||se},se))})()})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),a.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>Y(N=>({...N,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),a.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:a.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[a.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),a.jsxs("select",{value:w.lakebase_cu,onChange:P=>Y(N=>({...N,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[a.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[a.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),a.jsx("option",{value:1,children:"1 CU (2 GB)"}),a.jsx("option",{value:2,children:"2 CU (4 GB)"}),a.jsx("option",{value:4,children:"4 CU (8 GB)"}),a.jsx("option",{value:8,children:"8 CU (16 GB)"}),a.jsx("option",{value:16,children:"16 CU (32 GB)"}),a.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),a.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[a.jsx("option",{value:48,children:"48 CU (96 GB)"}),a.jsx("option",{value:64,children:"64 CU (128 GB)"}),a.jsx("option",{value:80,children:"80 CU (160 GB)"}),a.jsx("option",{value:96,children:"96 CU (192 GB)"}),a.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),a.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>Y(N=>({...N,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[a.jsx("option",{value:1,children:"1 Node"}),a.jsx("option",{value:2,children:"2 Nodes (HA)"}),a.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),a.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>Y(N=>({...N,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>Y(N=>({...N,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),a.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>Y(N=>({...N,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),a.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsx("div",{className:"col-span-full",children:a.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[a.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{type:"button",onClick:()=>Ae(!1),className:ue("px-3 py-1 text-xs rounded-l-md border transition-colors",be?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),a.jsx("button",{type:"button",onClick:()=>Ae(!0),className:ue("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",be?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!be&&a.jsxs(a.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),a.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>Y(N=>({...N,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),a.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>Y(N=>({...N,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),a.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>Y(N=>({...N,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),be&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&a.jsxs("div",{className:"col-span-full md:col-span-1",children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),a.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(N=>({...N,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config))&&a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),a.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>Y(N=>({...N,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),a.jsx(l8,{notes:w.notes,onChange:P=>Y(N=>({...N,notes:P}))}),a.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[a.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{type:"submit",disabled:pe||!w.workload_name.trim(),className:"btn btn-primary",children:pe?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class q_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?a.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[a.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),a.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const c8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],u8={JOBS:{icon:t3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Lu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:tD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:xD,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:zD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:$c,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:$c,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:$c,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:d3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},W_=e=>e?u8[e]||{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},xe=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),G_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:xe(e),an=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),K_=un.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return a.jsxs("div",{className:ue("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[a.jsxs("span",{className:ue("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[xe(e.totalCost),r&&a.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&a.jsxs("span",{className:ue("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[an(e.monthlyDBUs)," DBUs/mo"]})]})}),Q_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},Y_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function d8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:o,transition:l,isDragging:c}=AE({id:e,disabled:t});return a.jsx("div",{ref:i,style:{transform:Mo.Transform.toString(o),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:a.jsxs("div",{className:"flex items-stretch",children:[!t&&a.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:a.jsx(aS,{className:"w-3.5 h-3.5"})}),a.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function X_(){const{id:e}=_w(),t=cd(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:o,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:f,createEstimate:p,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:S,getInstanceDbuRate:R,vmPricingMap:k,instanceDbuRateMap:T,dbuRatesMap:D,fetchDBURates:z,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:ae,getVectorSearchRate:me,getFMAPIDatabricksRate:ve,getFMAPIProprietaryRate:oe,pricingBundle:B,isPricingBundleLoaded:q,clearEstimateState:E,setLocalCalculatedCosts:de}=_s(),[pe,A]=m.useState(!1),[be,Ae]=m.useState(!1),[w,Y]=m.useState(!1),[ce,_e]=m.useState(!1),[ye,ot]=m.useState(!1),[Xe,I]=m.useState(null),[tt,gt]=m.useState(!1),[at,pt]=m.useState(!1),[G,P]=m.useState(!1),[N,se]=m.useState(!1),[M,W]=m.useState(new Set),[Se,Ne]=m.useState(new Set),[O,F]=m.useState(!1),[K,ie]=m.useState({}),[Ce,Be]=m.useState(!1),[dt,nt]=m.useState(!1),[Ge,lt]=m.useState(!1),[Ke,Mt]=m.useState(!1),[U,J]=m.useState([]),[Le,Ve]=m.useState(!1),[Q,ct]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[Ze,Ot]=m.useState(!!e),[ft,xt]=m.useState(!1),[St,mt]=m.useState(!1),[Ue,Oe]=m.useState("table"),[De,Pe]=m.useState("order"),[qt,Ct]=m.useState("asc"),[le,rt]=m.useState(new Set),[Nt,wr]=m.useState(!1),Nn=m.useRef({}),Br=m.useCallback(L=>{const Z=Nn.current[L];Z&&(Z.scrollIntoView({behavior:"smooth",block:"center"}),Z.style.backgroundColor="rgba(255, 54, 33, 0.1)",Z.style.transition="background-color 0.3s ease",setTimeout(()=>{Nn.current[L]&&(Nn.current[L].style.backgroundColor="")},1500))},[]),Ur=m.useCallback(()=>{F(!0)},[]);m.useEffect(()=>{const L=Z=>{O&&(Z.preventDefault(),Z.returnValue="")};return window.addEventListener("beforeunload",L),()=>window.removeEventListener("beforeunload",L)},[O]),m.useEffect(()=>{if(!Q.cloud||!Q.region||r.length===0||!Ge)return;const L=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const $=al(B,Q.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if($){const fe=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",ze=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";L.add(`${$.driver_instance_type}:${fe}:${ze}`);const Et=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Pt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";L.add(`${$.worker_instance_type}:${Et}:${Pt}`)}return}if(C.driver_node_type){const $=C.driver_pricing_tier||"on_demand",fe=C.driver_payment_option||"NA";L.add(`${C.driver_node_type}:${$}:${fe}`)}if(C.worker_node_type){const $=C.worker_pricing_tier||"spot",fe=C.worker_payment_option||"NA";L.add(`${C.worker_node_type}:${$}:${fe}`)}}});const Z=Array.from(L).map(C=>{const[$,fe,ze]=C.split(":");return _(Q.cloud,Q.region,$,fe,ze)});if(Z.length>0){Mt(!0);const C=new Promise($=>setTimeout($,1e4));Promise.race([Promise.all(Z),C]).catch(()=>{}).finally(()=>Mt(!1))}},[Q.cloud,Q.region,r,Ge,_,B]),m.useEffect(()=>{if(!Q.cloud)return;const L=f(Q.cloud);if(L.length>0){const Z=q?bO(B,Q.cloud):[];if(Z.length>0){const C=L.filter($=>Z.includes($.region_code));J(C)}else J(L);Ve(!1)}else u?(J([]),Ve(!1)):Ve(!0)},[Q.cloud,d,u,f,B,q]),m.useEffect(()=>{(async()=>{if(e){Be(!0),nt(!0),lt(!1);try{await i(e)}catch(Z){console.error("Error loading estimate data:",Z)}finally{Be(!1),nt(!1),lt(!0)}}else E(),lt(!1)})()},[e,i,E]);const Ml={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ct({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ct(Ml),x("aws"),F(!1))},[n,e,x,y]),m.useEffect(()=>{Q.cloud&&Q.region&&Q.tier&&z(Q.cloud.toUpperCase(),Q.region,Q.tier.toUpperCase())},[Q.cloud,Q.region,Q.tier,z]);const Ol=!!(Q.region&&Q.tier),ns=(L,Z)=>{const C=Z?{...L,...Z}:L,$=Q.cloud||"aws",fe=Q.region,ze=Object.keys(D).length>0?D:Q_[$]||Q_.aws,Et=C.num_workers||0;if(!fe)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Pt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Pt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Pt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let Ee="";const Yt=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?Ee="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?Ee="JOBS_COMPUTE_(PHOTON)":Ee="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?Ee="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?Ee="ALL_PURPOSE_COMPUTE_(PHOTON)":Ee="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?Ee="JOBS_SERVERLESS_COMPUTE":(Ee=`DLT_${Yt}_COMPUTE`,C.photon_enabled&&(Ee+="_(PHOTON)"));break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Ie==="SERVERLESS"?Ee="SERVERLESS_SQL_COMPUTE":Ie==="PRO"?Ee="SQL_PRO_COMPUTE":Ee="SQL_COMPUTE";break;case"VECTOR_SEARCH":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":Ee="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const vt=(C.fmapi_provider||"openai").toLowerCase();Ee=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[vt]||vt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":Ee="DATABASE_SERVERLESS_COMPUTE";break;default:Ee="JOBS_COMPUTE"}let Pn=.2;if(q&&Q.tier){const Ie=Ag(B,$,fe,Q.tier,Ee);Ie>0?Pn=Ie:Pn=ze[Ee]||.2}else Pn=ze[Ee]||.2;let ke=0,Qe=0,We=0,Rs,kr,rs,te=.5,he=.5;if(q&&C.driver_node_type){const Ie=Pm(B,$,C.driver_node_type);Ie>0&&(te=Ie)}if(!te||te===.5){const Ie=j.find(vt=>vt.id===C.driver_node_type||vt.name===C.driver_node_type);Ie!=null&&Ie.dbu_rate&&(te=Ie.dbu_rate)}if(q&&C.worker_node_type){const Ie=Pm(B,$,C.worker_node_type);Ie>0&&(he=Ie)}if(!he||he===.5){const Ie=j.find(vt=>vt.id===C.worker_node_type||vt.name===C.worker_node_type);Ie!=null&&Ie.dbu_rate&&(he=Ie.dbu_rate)}const on=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Ie;if(C.serverless_enabled?C.workload_type==="JOBS"?Ie="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Ie="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Ie="DLT_CORE_COMPUTE":Ie=Ee.replace("_(PHOTON)",""):Ie=Ee.replace("_(PHOTON)",""),q){const Xt=nC(B,$,Ie);if(Xt!==2)return Xt}const vt=H.find(Xt=>{var vn,dr;return Xt.sku_type===Ie||((vn=Xt.sku_type)==null?void 0:vn.toLowerCase())===Ie.toLowerCase()||((dr=Xt.sku_type)==null?void 0:dr.toLowerCase().includes((L.workload_type||"").toLowerCase()))});return(vt==null?void 0:vt.multiplier)||2})(),fi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Sr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)ke=(te+he*Et)*on*fi;else{ke=(te+he*Et)*on;const Te=C.driver_pricing_tier||"on_demand",Dn=C.driver_payment_option||"NA",zr=C.worker_pricing_tier||"spot",pi=C.worker_payment_option||"NA",mi=S($,fe,C.driver_node_type||"",Te,Dn),hi=S($,fe,C.worker_node_type||"",zr,pi);We=(mi+hi*Et)*Pt}Qe=ke*Pt;break;case"DLT":if(C.serverless_enabled)ke=(te+he*Et)*on*Sr*fi;else{ke=(te+he*Et)*on*Sr;const Te=C.driver_pricing_tier||"on_demand",Dn=C.driver_payment_option||"NA",zr=C.worker_pricing_tier||"spot",pi=C.worker_payment_option||"NA",mi=S($,fe,C.driver_node_type||"",Te,Dn),hi=S($,fe,C.worker_node_type||"",zr,pi);We=(mi+hi*Et)*Pt}Qe=ke*Pt;break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),vt=C.dbsql_warehouse_size||"Small",Xt=C.dbsql_num_clusters||1;let vn=Y_[vt]||12;if(q){const Te=hO(B,$,Ie,vt);Te&&Te.dbu_per_hour>0&&(vn=Te.dbu_per_hour)}if(!vn||vn===(Y_[vt]||12)){const Te=X.find(Dn=>Dn.id===vt||Dn.name===vt);Te!=null&&Te.dbu_per_hour&&(vn=Te.dbu_per_hour)}if(ke=vn*Xt,Qe=ke*Pt,Ie!=="SERVERLESS"){const Te=q?al(B,$,Ie,vt):null;if(Te){const Dn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",zr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",pi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,fe,Te.driver_instance_type,Dn,zr),Xo=S($,fe,Te.worker_instance_type,pi,mi);We=(Te.driver_count*hi+Te.worker_count*Xo)*Xt*Pt}else if(C.driver_node_type){const Dn=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",zr=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",pi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,fe,C.driver_node_type,Dn,zr),Xo=C.worker_node_type?S($,fe,C.worker_node_type,pi,mi):0,yx=C.num_workers||0;We=(hi+Xo*yx)*Xt*Pt}}break;case"VECTOR_SEARCH":const dr=C.vector_search_mode||"standard",Vt=C.vector_capacity_millions||1;let Tn=dr==="storage_optimized"?64e6:2e6,Jt=dr==="storage_optimized"?18.29:4;if(q){const Te=gO(B,$,dr);Te&&(Tn=Te.input_divisor,Jt=Te.dbu_rate)}else{const Te=me(dr);Te&&(Tn=Te.input_divisor,Jt=Te.dbu_per_hour)}const Ln=Vt*1e6,st=Math.ceil(Ln/Tn);Rs=st,ke=st*Jt,Qe=ke*Pt;const it=C.vector_search_storage_gb||0,Zt=st*20,Rt=Math.max(0,it-Zt),Wt=.023,fn=Rt*Wt;it>0&&(kr=fn,rs={totalStorageGB:it,freeStorageGB:Zt,billableStorageGB:Rt,pricePerGB:Wt});break;case"MODEL_SERVING":const Xn=C.model_serving_gpu_type||"cpu";let An=2;if(q){const Te=xO(B,$,Xn);Te&&Te.dbu_rate>0&&(An=Te.dbu_rate)}if(An===2){const Te=re.find(Dn=>Dn.id===Xn||Dn.name===Xn);Te!=null&&Te.dbu_per_hour&&(An=Te.dbu_per_hour)}const Jn=C.model_serving_scale_out||"small",Bl=Jn==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[Jn]||4;ke=An*Bl,Qe=ke*Pt;break;case"LAKEBASE":const Ul=C.lakebase_cu||1,Vl=C.lakebase_ha_nodes||1,zl={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},QE=(zl[$]||zl.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;ke=Ul*QE*Vl,Qe=ke*Pt;const $l=Math.min(C.lakebase_storage_gb||0,8192),YE=C.lakebase_pitr_gb||0,XE=C.lakebase_snapshot_gb||0,Hl=.023,JE=$l*15*Hl,ZE=YE*8.7*Hl,e2=XE*3.91*Hl,gx=JE+ZE+e2;gx>0&&(kr=gx,rs={totalStorageGB:$l,billableStorageGB:$l,dsuPerGB:15,totalDSU:$l*15,pricePerDSU:Hl});break;case"FMAPI_DATABRICKS":const t2=C.fmapi_quantity||0,Yo=C.fmapi_rate_type||"input_token",xx=["provisioned_scaling","provisioned_entry"].includes(Yo);let Ls=null;if(q&&C.fmapi_model){const Te=vO(B,$,C.fmapi_model,Yo);Te&&(Ls=Te.dbu_rate)}if(Ls===null&&C.fmapi_model){const Te=ve(C.fmapi_model,Yo);Te&&(xx?Ls=Te.dbu_per_hour||null:Ls=Te.dbu_per_1M_tokens||null)}Ls===null&&(xx?Ls=Yo==="provisioned_scaling"?200:50:Ls=Yo==="output_token"?3:1),Qe=t2*Ls;break;case"FMAPI_PROPRIETARY":const n2=C.fmapi_quantity||0,ql=C.fmapi_rate_type||"input_token",vx=ql==="provisioned_scaling";let Cr=null;if(q&&C.fmapi_provider&&C.fmapi_model){const Te=C.fmapi_endpoint_type||"global",Dn=C.fmapi_context_length||"long",zr=yO(B,$,C.fmapi_provider,C.fmapi_model,Te,Dn,ql);zr&&(Cr=zr.dbu_rate)}if(Cr===null&&C.fmapi_provider&&C.fmapi_model){const Te=oe(C.fmapi_provider,C.fmapi_model,ql);Te&&(vx?Cr=Te.dbu_per_hour||null:Cr=Te.dbu_per_1M_tokens||null)}if(Cr===null)if(vx)Cr=150;else switch(ql){case"output_token":Cr=6;break;case"cache_read":Cr=.5;break;case"cache_write":Cr=1;break;default:Cr=2}Qe=n2*Cr;break;default:Qe=0}const ur=isNaN(Pn)||Pn===void 0?0:Pn,Ts=isNaN(Qe)||Qe===void 0?0:Qe,Rn=isNaN(We)||We===void 0?0:We,xn=kr!==void 0&&!isNaN(kr)?kr:0,Vr=Ts*ur,is=Vr+Rn+xn;return{monthlyDBUs:Ts,dbuCost:isNaN(Vr)?0:Vr,vmCost:Rn,totalCost:isNaN(is)?0:is,unitsUsed:Rs,dbuPerHour:ke,dbuPrice:ur,storageCost:xn>0?xn:void 0,storageDetails:rs}},Yn=m.useMemo(()=>{let L=0,Z=0,C=0,$=0;return r.forEach(fe=>{const ze=ns(fe);L+=isNaN(ze.monthlyDBUs)?0:ze.monthlyDBUs,Z+=isNaN(ze.dbuCost)?0:ze.dbuCost,C+=isNaN(ze.vmCost)?0:ze.vmCost,$+=isNaN(ze.totalCost)?0:ze.totalCost}),{totalDBUs:L,totalDBUCost:Z,totalVMCost:C,totalCost:$}},[r,Q.cloud,Q.region,Q.tier,s,S,k,R,T,j,H,D,X,re,ae,me,ve,oe,B,q]);m.useEffect(()=>{const L={};r.forEach(Z=>{const C=ns(Z,K[Z.line_item_id]);L[Z.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),de(L)},[r,K,Q.cloud,Q.region,Q.tier,de,S,k,R,T,j,H,D,X,re,ae,me,ve,oe,B,q]);const di=m.useMemo(()=>{const L=[...r];return De==="order"?L.sort((Z,C)=>(Z.display_order??0)-(C.display_order??0)):De==="name"?L.sort((Z,C)=>(Z.workload_name||"").localeCompare(C.workload_name||"")):De==="type"?L.sort((Z,C)=>(Z.workload_type||"").localeCompare(C.workload_type||"")):De==="cost"&&L.sort((Z,C)=>{const $=ns(Z).totalCost,fe=ns(C).totalCost;return $-fe}),qt==="desc"&&L.reverse(),L},[r,De,qt,ns]),Md=L=>{De===L?Ct(Z=>Z==="asc"?"desc":"asc"):(Pe(L),Ct(L==="cost"?"desc":"asc"))},IE=fE(zu(Ld,{activationConstraint:{distance:5}}),zu(Td)),FE=De==="order",BE=m.useCallback(async L=>{const{active:Z,over:C}=L;if(!C||Z.id===C.id||!e)return;const $=di.findIndex(Yt=>Yt.line_item_id===Z.id),fe=di.findIndex(Yt=>Yt.line_item_id===C.id);if($===-1||fe===-1)return;const ze=[...di],[Et]=ze.splice($,1);ze.splice(fe,0,Et);const{lineItems:Pt}=_s.getState(),Ee=Pt.map(Yt=>{const Pn=ze.findIndex(ke=>ke.line_item_id===Yt.line_item_id);return Pn>=0?{...Yt,display_order:Pn}:Yt});_s.setState({lineItems:Ee});try{await H4(e,ze.map(Yt=>Yt.line_item_id))}catch{$e.error("Failed to save reorder")}},[di,e]),ax=async()=>{if(!Q.estimate_name.trim()){$e.error("Enter an estimate name");return}if(!Q.region){$e.error("Select a region");return}if(!Q.tier){$e.error("Select a Databricks tier");return}A(!0);try{const L={...Q,cloud:Q.cloud.toUpperCase(),tier:Q.tier.toUpperCase()};if(e&&n)await h(e,L),F(!1),$e.success("All changes saved");else{const Z=await p(L);F(!1),t(`/calculator/${Z.estimate_id}`,{replace:!0}),$e.success("Estimate created")}}catch{$e.error("Failed to save")}finally{A(!1)}},UE=async()=>{if(e){Ae(!0);try{const L=await qS(e),Z=`${Q.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Gm.saveAs(L,Z),$e.success("Exported to Excel")}catch{$e.error("Export failed")}finally{Ae(!1)}}},VE=async()=>{if(e){Y(!0),_e(!1);try{await g(e),$e.success("Estimate deleted"),t("/",{replace:!0})}catch{$e.error("Failed to delete estimate"),Y(!1)}}},zE=async()=>{l(),$e.loading("Refreshing pricing data...",{id:"refresh-data"});try{await o(!0),$e.success("Pricing data refreshed",{id:"refresh-data"})}catch{$e.error("Failed to refresh data",{id:"refresh-data"})}},lx=L=>{I(L),ot(!0)},$E=async()=>{if(Xe){pt(!0);try{await v(Xe.line_item_id),$e.success("Workload removed")}catch{$e.error("Failed to delete")}finally{pt(!1),ot(!1),I(null)}}},cx=()=>{le.size!==0&>(!0)},HE=async()=>{pt(!0);try{let L=0;for(const Z of le)await v(Z),L++;$e.success(`${L} workload(s) deleted`),rt(new Set)}catch{$e.error("Failed to delete some workloads")}finally{pt(!1),gt(!1)}},qE=L=>{rt(Z=>{const C=new Set(Z);return C.has(L)?C.delete(L):C.add(L),C})},WE=()=>{le.size===r.length?rt(new Set):rt(new Set(r.map(L=>L.line_item_id)))},ux=()=>{wr(!1),rt(new Set)},dx=async(L,Z)=>{L.stopPropagation();try{await b(Z.line_item_id)&&$e.success(`Workload "${Z.workload_name}" cloned`)}catch{$e.error("Failed to clone workload")}},GE=()=>{O?P(!0):t("/")},KE=()=>{P(!1),t("/")},fx=L=>{const Z=new Set(M);Z.has(L)?Z.delete(L):Z.add(L),W(Z)},Il=(L,Z=!1)=>{const C=new Set(Se);if(C.has(L))C.delete(L);else if(C.add(L),Z&&!M.has(L)){const $=new Set(M);$.add(L),W($)}Ne(C)},px=L=>L.hours_per_month?`${L.hours_per_month}h/month`:L.runs_per_day?`${L.runs_per_day} runs/day × ${L.avg_runtime_minutes||30}min`:null,mx=L=>{const Z=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(L.workload_type||"")&&L.serverless_enabled&&Z.push({label:"Mode",value:L.serverless_mode==="performance"?"Performance":"Standard"}),L.workload_type){case"VECTOR_SEARCH":L.vector_search_mode&&Z.push({label:"Mode",value:L.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),L.vector_capacity_millions&&Z.push({label:"Capacity",value:`${L.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(L.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};Z.push({label:"Endpoint",value:C[L.model_serving_gpu_type]||L.model_serving_gpu_type})}break;case"LAKEBASE":L.lakebase_cu&&Z.push({label:"CU",value:`${L.lakebase_cu}`}),L.lakebase_ha_nodes&&Z.push({label:"Nodes",value:`${L.lakebase_ha_nodes}${L.lakebase_ha_nodes>1?" (HA)":""}`}),L.lakebase_storage_gb&&L.lakebase_storage_gb>0&&Z.push({label:"Storage",value:`${L.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(L.fmapi_model&&Z.push({label:"Model",value:L.fmapi_model}),L.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};Z.push({label:"Rate",value:C[L.fmapi_rate_type]||L.fmapi_rate_type})}if(L.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(L.fmapi_rate_type||"");Z.push({label:C?"Hours":"Quantity",value:C?`${L.fmapi_quantity}h/mo`:`${L.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(L.fmapi_provider&&L.fmapi_model&&Z.push({label:"Model",value:`${L.fmapi_provider}/${L.fmapi_model}`}),L.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};Z.push({label:"Rate",value:C[L.fmapi_rate_type]||L.fmapi_rate_type})}L.fmapi_quantity&&Z.push({label:"Quantity",value:`${L.fmapi_quantity}M tokens`});break;case"DLT":L.dlt_edition&&Z.push({label:"Edition",value:L.dlt_edition});break;case"DBSQL":L.dbsql_warehouse_type&&Z.push({label:"Type",value:L.dbsql_warehouse_type}),L.dbsql_warehouse_size&&Z.push({label:"Size",value:L.dbsql_warehouse_size}),L.dbsql_num_clusters&&L.dbsql_num_clusters>1&&Z.push({label:"Clusters",value:`${L.dbsql_num_clusters}`});break}return Z},Fl=Q.estimate_name.trim()&&Q.region&&Q.tier,hx=()=>{const L=[];return Q.estimate_name.trim()||L.push("Estimate Name"),Q.region||L.push("Region"),Q.tier||L.push("Databricks Tier"),L};return w?a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:a.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&Ce&&!n?a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[a.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:a.jsx(ey,{className:"w-5 h-5"})}),a.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[a.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[a.jsxs("div",{className:"card p-5",children:[a.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),a.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(L=>a.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},L))}),a.jsx("div",{className:"space-y-4",children:[1,2,3].map(L=>a.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},L))})]}),a.jsxs("div",{className:"space-y-4",children:[a.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"card p-8",children:a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsx("div",{className:"relative",children:a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),a.jsxs("div",{className:"text-center",children:[a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),a.jsx("div",{className:"lg:col-span-1",children:a.jsxs("div",{className:"card p-5 space-y-4",children:[a.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):a.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("button",{onClick:GE,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:a.jsx(ey,{className:"w-5 h-5"})}),a.jsx("div",{children:Ce&&e?a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):a.jsxs(a.Fragment,{children:[a.jsx("input",{type:"text",value:Q.estimate_name,onChange:L=>{ct(Z=>({...Z,estimate_name:L.target.value})),Ur()},placeholder:"Untitled Estimate",title:Q.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&a.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&a.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{onClick:zE,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:a.jsx(Qr,{className:ue("w-4 h-4",c&&"animate-spin")})}),a.jsxs("button",{onClick:UE,disabled:be||!e,className:"btn btn-secondary",children:[a.jsx(zc,{className:"w-4 h-4"}),a.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&a.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:a.jsx(en,{className:"w-4 h-4"})})]})]}),a.jsxs("div",{className:ue("grid grid-cols-1 gap-6",ft?"lg:grid-cols-1":"lg:grid-cols-4"),children:[a.jsxs("div",{className:ue("space-y-6",ft?"lg:col-span-1":"lg:col-span-3"),children:[a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[a.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>Ot(!Ze),children:[a.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[a.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:a.jsx(Lu,{className:"w-4 h-4 text-lava-600"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),a.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${Q.cloud.toUpperCase()} • ${Q.region||"No region"} • ${Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier"}${Q.customer_name?` • ${Q.customer_name}`:""}`,children:[Q.cloud.toUpperCase()," • ",Q.region||"No region"," • ",Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier",Q.customer_name&&` • ${Q.customer_name}`]})]})]}),a.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:Ze?a.jsx(tr,{className:"w-4 h-4 text-[var(--text-muted)]"}):a.jsx(ds,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!Ze&&a.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[a.jsxs("div",{className:"pt-3 space-y-3",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),Ce&&e?a.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(L=>a.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:a.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},L))}):a.jsxs(a.Fragment,{children:[r.length>0&&a.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),a.jsx("div",{className:"grid grid-cols-3 gap-3",children:c8.map(L=>{const Z=r.length>0&&Q.cloud!==L.id;return a.jsxs("button",{disabled:Z,onClick:C=>{C.stopPropagation(),!Z&&(ct($=>({...$,cloud:L.id,region:"",tier:L.id==="azure"&&$.tier==="enterprise"?"":$.tier})),x(L.id),Ur())},className:ue("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",Q.cloud===L.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",Z?"opacity-40 cursor-not-allowed":Q.cloud!==L.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:Z?"Remove all workloads to change cloud provider":void 0,children:[a.jsx("div",{className:ue("text-sm font-semibold",Q.cloud===L.id?"text-lava-600":"text-[var(--text-primary)]"),children:L.name}),Q.cloud===L.id&&a.jsx("div",{className:"absolute top-1.5 right-1.5",children:a.jsx(qs,{className:"w-3.5 h-3.5 text-lava-600"})})]},L.id)})})]})]}),Ce&&e?a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),a.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),a.jsxs("div",{children:[a.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),a.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:L=>L.stopPropagation(),children:[a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsxs("select",{value:Q.region,onChange:L=>{ct(Z=>({...Z,region:L.target.value})),y(L.target.value),Ur()},className:ue("w-full text-sm",!Q.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[a.jsx("option",{value:"",children:Le?"Loading regions...":"Select region"}),U.map(L=>a.jsxs("option",{value:L.region_code,children:[L.region_code," (",L.sku_region,")"]},L.region_code))]})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsxs("select",{value:Q.tier,onChange:L=>{ct(Z=>({...Z,tier:L.target.value})),Ur()},className:ue("w-full text-sm",!Q.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[a.jsx("option",{value:"",children:"Select tier"}),a.jsx("option",{value:"premium",children:"Premium"}),Q.cloud!=="azure"&&a.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),a.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[a.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?a.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[a.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?a.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[a.jsx(qs,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),a.jsxs("button",{onClick:ax,disabled:pe||!Fl,title:Fl?void 0:`Missing: ${hx().join(", ")}`,className:ue("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[a.jsx(qs,{className:"w-4 h-4"}),pe?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[a.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[a.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[a.jsx(c3,{className:"w-5 h-5 text-lava-600"}),"Workloads",a.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&a.jsx(a.Fragment,{children:Nt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[le.size," selected"]}),a.jsxs("button",{onClick:cx,disabled:le.size===0,className:ue("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",le.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsx("button",{onClick:ux,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:a.jsx(To,{className:"w-4 h-4"})})]}):a.jsx("button",{onClick:()=>wr(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&a.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[a.jsx("button",{onClick:()=>Oe("table"),className:ue("p-1.5 rounded-md transition-colors",Ue==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:a.jsx(v3,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>Oe("cards"),className:ue("p-1.5 rounded-md transition-colors",Ue==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:a.jsx(Ng,{className:"w-4 h-4"})}),a.jsx("button",{onClick:()=>Oe("expanded"),className:ue("p-1.5 rounded-md transition-colors",Ue==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:a.jsx(ry,{className:"w-4 h-4"})})]}),Ol&&e&&a.jsxs("button",{onClick:()=>se(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[a.jsx(Au,{className:"w-4 h-4"}),"Add"]})]})]}),e?dt&&!Ge?a.jsx("div",{className:"card p-8 text-center",children:a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsx("div",{className:"relative",children:a.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),a.jsxs("div",{children:[a.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):a.jsxs(a.Fragment,{children:[Ue==="table"&&r.length>0&&a.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[a.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[Nt&&a.jsx("div",{className:"col-span-1 flex items-center",children:a.jsx("input",{type:"checkbox",checked:le.size===r.length&&r.length>0,onChange:WE,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),a.jsxs("button",{onClick:()=>Md("name"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",Nt?"col-span-3":"col-span-4"),children:["Workload",De==="name"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]}),a.jsxs("button",{onClick:()=>Md("type"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",De==="type"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]}),a.jsxs("button",{onClick:()=>Md("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",De==="cost"&&(qt==="asc"?a.jsx(Sf,{className:"w-3 h-3"}):a.jsx(kf,{className:"w-3 h-3"}))]})]}),a.jsx(EE,{sensors:IE,collisionDetection:pE,onDragEnd:BE,modifiers:[DE],children:a.jsx(TE,{items:di.map(L=>L.line_item_id),strategy:NE,children:di.map(L=>{var Rs,kr,rs;const Z=K[L.line_item_id],C=Z?{...L,...Z}:L,$=ns(L,Z),fe=W_(C.workload_type),ze=fe.icon,Et=M.has(L.line_item_id),Pt=le.has(L.line_item_id),Ee=C.workload_type||"",Yt=C.serverless_enabled||Ee==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Pn=((Rs=s.find(te=>te.workload_type===Ee))==null?void 0:Rs.display_name)||Ee,ke=px(C),We=(()=>{const te={badges:[],details:[]};if(Yt&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(Ee))Yt||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),Ee==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(Ee==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(Ee==="VECTOR_SEARCH"){if(C.vector_search_mode){const he=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:he})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(Ee==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(Ee==="FMAPI_DATABRICKS"||Ee==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const he=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:he?"Provisioned":"Token"})}C.fmapi_provider&&Ee==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else Ee==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return a.jsx(d8,{id:L.line_item_id,disabled:!FE,children:a.jsxs("div",{ref:te=>{Nn.current[L.line_item_id]=te},children:[a.jsxs("div",{className:ue("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Pt&&Nt&&"bg-lava-600/5",Et&&"bg-[var(--bg-tertiary)]"),onClick:()=>fx(L.line_item_id),children:[Nt&&a.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:a.jsx("input",{type:"checkbox",checked:Pt,onChange:()=>qE(L.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),a.jsxs("div",{className:ue("flex items-center gap-3",Nt?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[a.jsx("div",{className:ue("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",fe.bgColor),children:a.jsx(ze,{className:ue("w-4 h-4",fe.color)})}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:L.workload_name,children:L.workload_name}),a.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:Pn,children:Pn})]})]}),a.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[We.badges.length>0&&a.jsx("div",{className:"flex items-center gap-1 shrink-0",children:We.badges.map((te,he)=>a.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},he))}),(We.driver||We.workers)&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${We.driver||"N/A"}, Workers: ${((kr=We.workers)==null?void 0:kr.count)||0}× ${((rs=We.workers)==null?void 0:rs.type)||"N/A"}`,children:(()=>{const te=We.driver,he=We.workers;return te&&he?te===he.type?`${he.count+1}× ${he.type}`:`${te} + ${he.count}× ${he.type}`:he?`${he.count}× ${he.type}`:te||""})()}),We.details.length>0&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:We.details.join(" · "),children:We.details.join(" · ")})]}),a.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[a.jsx(K_,{costs:$,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(Ee)||Ee==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&te&&$.vmCost===0})()}),a.jsxs("div",{className:"flex items-center gap-0.5",children:[a.jsx("button",{onClick:te=>{te.stopPropagation(),Il(L.line_item_id,!0)},className:ue("p-1.5 rounded transition-colors",Se.has(L.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(L.line_item_id)?"Hide calculation":"Show calculation",children:a.jsx(mc,{className:"w-4 h-4"})}),a.jsx("button",{onClick:te=>dx(te,L),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:te=>{te.stopPropagation(),lx(L)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:a.jsx(en,{className:"w-4 h-4"})}),a.jsx("div",{className:ue("p-1 rounded transition-colors",Et?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:Et?a.jsx(ds,{className:"w-5 h-5 text-lava-600"}):a.jsx(tr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!Et&&(We.badges.length>0||We.driver||We.workers||We.details.length>0)&&a.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[We.badges.map((te,he)=>a.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},he)),(We.driver||We.workers)&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=We.driver,he=We.workers;return te&&he?te===he.type?`${he.count+1}× ${he.type}`:`${te} + ${he.count}× ${he.type}`:he?`${he.count}× ${he.type}`:te||""})()}),We.details.length>0&&a.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:We.details.join(" · ")})]}),Et&&a.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[a.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe($.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(Ee)&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe($.vmCost)})]}),Ee==="LAKEBASE"&&$.storageCost!==void 0&&$.storageCost>0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),a.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:xe($.storageCost)})]}),Ee==="VECTOR_SEARCH"&&$.unitsUsed!==void 0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),a.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[$.unitsUsed," unit",$.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(Ee)&&!Yt&&a.jsxs(a.Fragment,{children:[C.driver_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),a.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),a.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",a.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),mx(C).map((te,he)=>a.jsxs("div",{className:"min-w-0",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),a.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},he)),ke&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),a.jsx("p",{className:"text-[var(--text-primary)]",children:ke})]})]}),a.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[a.jsxs("button",{onClick:te=>{te.stopPropagation(),Il(L.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[a.jsx(mc,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(L.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(L.line_item_id)?a.jsx(ds,{className:"w-3 h-3"}):a.jsx(tr,{className:"w-3 h-3"})]}),Se.has(L.line_item_id)&&a.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,he=C.runs_per_day||0,ss=C.avg_runtime_minutes||30,on=C.days_per_month||30,fi=C.hours_per_month||730,Ut=te?he*(ss/60)*on:fi,ur=($.dbuPrice||0).toFixed(2);if(Ee==="VECTOR_SEARCH"){const st=C.vector_capacity_millions||1,it=C.vector_search_mode||"standard",Zt=it==="storage_optimized"?64:2,Rt=Math.ceil(st/Zt),Wt=it==="storage_optimized"?18.29:4,fn=C.vector_search_storage_gb||0,Xn=Rt*20,An=Math.max(0,fn-Xn),Jn=An*.023;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:["⌈",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M"]})," vectors ÷ ",Zt,"M⌉"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Rt," unit",Rt!==1?"s":""]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Wt.toFixed(2)," DBU/hr/unit"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe($.dbuCost)})]}),fn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[fn," GB"]}),a.jsx("span",{children:"−"}),a.jsxs("span",{children:[Xn," GB free"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Rt," units × 20GB)"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[An," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"$0.023/GB"}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Jn)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),fn>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Jn)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})}if(Ee==="FMAPI_DATABRICKS"||Ee==="FMAPI_PROPRIETARY"){const st=C.fmapi_quantity||1,it=C.fmapi_rate_type||"input_token",Zt=["provisioned_scaling","provisioned_entry"].includes(it),Rt=st>0?$.monthlyDBUs/st:0,Wt=C.fmapi_model||"model",fn=C.fmapi_provider||"";return a.jsx("div",{className:"space-y-1",children:a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Zt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," hours/mo"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Rt.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Wt,")"]})]}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M tokens"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Rt.toFixed(2)," DBU/M"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",fn?`${fn}/`:"",Wt,")"]})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})})}if(Ee==="LAKEBASE"){const st=C.lakebase_cu||1,it=C.lakebase_ha_nodes||1,Zt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Wt=(Zt[Q.cloud||"aws"]||Zt.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213,fn=C.lakebase_storage_gb||0,Xn=C.lakebase_pitr_gb||0,An=C.lakebase_snapshot_gb||0,Jn=.023,Qo=fn*15*Jn,Bl=Xn*8.7*Jn,Ul=An*3.91*Jn,Vl=Qo+Bl+Ul,zl=Vl>0;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," CU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Wt," DBU/CU-hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," nodes"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe($.dbuCost)})]}),fn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[fn," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"15 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(fn*15)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Qo)})]}),Xn>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Xn," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"8.7 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Xn*8.7)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Bl)})]}),An>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[An," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"3.91 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(An*3.91)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",Jn,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Ul)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),zl&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Vl)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})}if(Ee==="MODEL_SERVING"){const st=C.model_serving_gpu_type||"cpu",it=C.model_serving_scale_out||"small",Rt=it==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[it]||4,Wt=Rt>0&&$.dbuPerHour?$.dbuPerHour/Rt:2;return a.jsxs("div",{className:"space-y-1",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:[Wt.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",st,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rt," concurrency"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",it,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})]})}if(Ee==="DBSQL"){const st=C.dbsql_warehouse_size||"Small",it=C.dbsql_num_clusters||1,Zt=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),Rt=$.dbuPerHour?$.dbuPerHour/it:12,Wt=$.vmCost>0;return a.jsxs("div",{className:"space-y-1.5",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:st}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Rt.toFixed(1)," DBU/hr)"]}),it>1&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," clusters"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${he} runs × ${ss}min ÷ 60 × ${on} days`:void 0,children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe($.dbuCost)})]}),Wt&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsxs("span",{children:[Zt," warehouse VM costs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe($.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-600",children:xe($.dbuCost)}),Wt&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-600",children:xe($.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"font-semibold",children:xe($.totalCost)})]})]})}const Ts=C.num_workers||0,Rn=C.driver_node_type||"",xn=C.worker_node_type||"",Vr=C.photon_enabled,is=$.vmCost>0&&!Yt,Ie=Q.cloud||"aws",vt=Q.region||"",Xt=j.find(st=>st.id===Rn||st.name===Rn),vn=j.find(st=>st.id===xn||st.name===xn),dr=R(Ie,Rn)||(Xt==null?void 0:Xt.dbu_rate)||0,Vt=R(Ie,xn)||(vn==null?void 0:vn.dbu_rate)||0,Tn=vt&&Rn?S(Ie,vt,Rn,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,Jt=vt&&xn?S(Ie,vt,xn,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,Ln=$.dbuPerHour||0;return a.jsxs("div",{className:"space-y-1.5",children:[te&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[on," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Ut.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Yt?a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",Vr?" + Photon":"",")"]})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"("}),a.jsx("span",{title:Rn,children:dr.toFixed(2)}),a.jsx("span",{children:"+"}),a.jsx("span",{title:xn,children:Vt.toFixed(2)}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),a.jsx("span",{children:")"}),Vr&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an($.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",ur,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe($.dbuCost)})]}),is&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsx("span",{children:"("}),a.jsxs("span",{title:Rn,children:["$",(Tn==null?void 0:Tn.toFixed(4))||"0"]}),a.jsx("span",{children:"+"}),a.jsxs("span",{title:xn,children:["$",(Jt==null?void 0:Jt.toFixed(4))||"0"]}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),a.jsx("span",{children:")"}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ut.toFixed(te?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe($.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe($.dbuCost)}),is&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-500",children:xe($.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe($.totalCost)})]})]})})()})]})]}),Et&&a.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:a.jsx(q_,{onReset:()=>{W(te=>{const he=new Set(te);return he.delete(L.line_item_id),he})},children:a.jsx(rp,{estimateId:e,lineItem:L,onClose:()=>{W(te=>{const he=new Set(te);return he.delete(L.line_item_id),he}),ie(te=>{const he={...te};return delete he[L.line_item_id],he})},onSave:()=>{ie(te=>{const he={...te};return delete he[L.line_item_id],he})},onFormChange:te=>{ie(he=>({...he,[L.line_item_id]:te}))},inline:!0})})})]})},L.line_item_id)})})})]}),Ue!=="table"&&di.map((L,Z)=>{var Pn;const C=K[L.line_item_id],$=C?{...L,...C}:L,fe=ns(L,C),ze=M.has(L.line_item_id),Et=px($),Pt=W_($.workload_type),Ee=Pt.icon,Yt=Ue==="expanded"||ze;return a.jsx("div",{ref:ke=>{Nn.current[L.line_item_id]=ke},children:a.jsxs(Bt.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:Z*.02},className:"card overflow-hidden",children:[a.jsxs("div",{className:ue("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",Ue==="cards"&&!ze&&"py-3"),onClick:()=>fx(L.line_item_id),children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx("div",{className:ue("rounded-lg flex items-center justify-center flex-shrink-0",Ue==="cards"&&!ze?"w-8 h-8":"w-10 h-10",Pt.bgColor),children:a.jsx(Ee,{className:ue(Pt.color,Ue==="cards"&&!ze?"w-4 h-4":"w-5 h-5")})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("h4",{className:ue("font-semibold truncate text-[var(--text-primary)]",Ue==="cards"&&!ze&&"text-sm"),title:L.workload_name,children:L.workload_name}),(L.serverless_enabled||L.workload_type==="DBSQL"&&(L.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&a.jsx("span",{className:"badge badge-teal",children:"Serverless"}),L.photon_enabled&&a.jsxs("span",{className:"badge badge-lava",children:[a.jsx(Ru,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),a.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:a.jsx("span",{children:((Pn=s.find(ke=>ke.workload_type===L.workload_type))==null?void 0:Pn.display_name)||L.workload_type})})]}),a.jsx(K_,{costs:fe,size:Ue==="cards"&&!ze?"md":"lg",isLoading:(()=>{const ke=L.workload_type||"",Qe=!L.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(ke)||ke==="DBSQL"&&(L.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&Qe&&fe.vmCost===0})(),className:"min-w-[100px]"}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:ke=>{ke.stopPropagation(),Il(L.line_item_id,!0)},className:ue("p-1.5 rounded-md transition-colors",Se.has(L.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:Se.has(L.line_item_id)?"Hide calculation":"Show calculation",children:a.jsx(mc,{className:"w-4 h-4"})}),a.jsx("button",{onClick:ke=>dx(ke,L),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:a.jsx(bm,{className:"w-4 h-4"})}),a.jsx("button",{onClick:ke=>{ke.stopPropagation(),lx(L)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:a.jsx(en,{className:"w-4 h-4"})}),ze?a.jsx(ds,{className:"w-5 h-5 text-[var(--text-muted)]"}):a.jsx(tr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),Yt&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(fe.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(L.workload_type||"")&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),a.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:xe(fe.vmCost)})]}),L.workload_type==="LAKEBASE"&&fe.storageCost!==void 0&&fe.storageCost>0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),a.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:xe(fe.storageCost)})]}),L.workload_type==="VECTOR_SEARCH"&&fe.unitsUsed!==void 0&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),a.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[fe.unitsUsed," unit",fe.unitsUsed!==1?"s":""]})]}),(L.workload_type==="JOBS"||L.workload_type==="ALL_PURPOSE"||L.workload_type==="DLT")&&a.jsxs(a.Fragment,{children:[L.driver_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),a.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:L.driver_node_type})]}),L.worker_node_type&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),a.jsxs("p",{className:"text-[var(--text-primary)]",children:[L.num_workers,"× ",a.jsx("span",{className:"font-mono text-[10px]",children:L.worker_node_type})]})]})]}),mx(L).map((ke,Qe)=>a.jsxs("div",{className:"min-w-0",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:ke.label}),a.jsx("p",{className:"text-[var(--text-primary)] break-words",children:ke.value})]},Qe)),Et&&a.jsxs("div",{children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),a.jsx("p",{className:"text-[var(--text-primary)]",children:Et})]})]}),a.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[a.jsxs("button",{onClick:ke=>{ke.stopPropagation(),Il(L.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[a.jsx(mc,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"font-medium group-hover:underline",children:Se.has(L.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),Se.has(L.line_item_id)?a.jsx(ds,{className:"w-3 h-3"}):a.jsx(tr,{className:"w-3 h-3"})]}),Se.has(L.line_item_id)&&a.jsx("div",{className:"mt-2",children:(()=>{const ke=$.workload_type||"",Qe=$.serverless_enabled||ke==="DBSQL"&&($.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",We=$.runs_per_day&&$.avg_runtime_minutes&&!$.hours_per_month,Rs=$.runs_per_day||0,kr=$.avg_runtime_minutes||30,rs=$.days_per_month||30,te=$.hours_per_month||730,he=We?Rs*(kr/60)*rs:te,on=(fe.dbuPrice||0).toFixed(2);if(ke==="VECTOR_SEARCH"){const Vt=$.vector_capacity_millions||1,Tn=$.vector_search_mode||"standard",Jt=Tn==="storage_optimized"?64:2,Ln=Math.ceil(Vt/Jt),st=Tn==="storage_optimized"?18.29:4,it=$.vector_search_storage_gb||0,Zt=Ln*20,Rt=Math.max(0,it-Zt),Wt=Rt*.023;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:["⌈",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt,"M vectors"]})," ÷ ",Jt,"⌉"]}),a.jsxs("span",{children:["= ",Ln," units ×"]}),a.jsxs("span",{children:[st," DBU/unit/hr ×"]}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs × $",on]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(fe.dbuCost)})]}),it>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," GB"]}),a.jsx("span",{children:"−"}),a.jsxs("span",{children:[Zt," GB free"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Ln," units × 20GB)"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[Rt," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"$0.023/GB"}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Wt)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),it>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(Wt)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="FMAPI_DATABRICKS"||ke==="FMAPI_PROPRIETARY"){const Vt=$.fmapi_quantity||0,Tn=fe.monthlyDBUs/(Vt||1);return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt,"M tokens"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:[Tn.toFixed(2)," DBU/M"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="LAKEBASE"){const Vt=$.lakebase_cu||1,Tn=$.lakebase_ha_nodes||1,Jt=$.lakebase_storage_gb||0,Ln=$.lakebase_pitr_gb||0,st=$.lakebase_snapshot_gb||0,it=.023,Zt=Jt*15*it,Rt=Ln*8.7*it,Wt=st*3.91*it,fn=Zt+Rt+Wt,Xn=fn>0,An={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Qo=(An[Q.cloud||"aws"]||An.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt," CU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Qo," DBU/CU-hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Tn," nodes"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-500 font-semibold",children:xe(fe.dbuCost)})]}),Jt>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Jt," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"15 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Jt*15)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Zt)})]}),Ln>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ln," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"8.7 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(Ln*8.7)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Rt)})]}),st>0&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," GB"]}),a.jsx("span",{children:"×"}),a.jsx("span",{children:"3.91 DSU/GB"}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[an(st*3.91)," DSU"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",it,"/DSU/mo"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-purple-500 font-semibold",children:xe(Wt)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),Xn&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-purple-500",children:xe(fn)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}if(ke==="MODEL_SERVING"){const Vt=$.model_serving_scale_out||"small",Jt=Vt==="custom"?$.model_serving_concurrency||4:{small:4,medium:12,large:40}[Vt]||4,Ln=Jt>0&&fe.dbuPerHour?fe.dbuPerHour/Jt:2;return a.jsxs("div",{className:"space-y-1",children:[a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),a.jsxs("span",{children:[Ln.toFixed(2)," DBU/hr"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Jt," concurrency"]}),a.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Vt,")"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})}const fi=$.num_workers||0,Ut=$.driver_node_type||"",Sr=$.worker_node_type||"",ur=$.photon_enabled,Ts=fe.vmCost>0&&!Qe,Rn=Q.cloud||"aws",xn=Q.region||"",Vr=j.find(Vt=>Vt.id===Ut||Vt.name===Ut),is=j.find(Vt=>Vt.id===Sr||Vt.name===Sr),Ie=R(Rn,Ut)||(Vr==null?void 0:Vr.dbu_rate)||0,vt=R(Rn,Sr)||(is==null?void 0:is.dbu_rate)||0,Xt=xn&&Ut?S(Rn,xn,Ut,$.driver_pricing_tier||"on_demand",$.driver_payment_option||"no_upfront"):null,vn=xn&&Sr?S(Rn,xn,Sr,$.worker_pricing_tier||"spot",$.worker_payment_option||"NA"):null,dr=fe.dbuPerHour||0;return a.jsxs("div",{className:"space-y-1.5",children:[We&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"font-semibold",children:"Hours:"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Rs," runs/day"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["(",a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[kr,"min"]})," ÷ 60)"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[rs," days/mo"]}),a.jsx("span",{children:"="}),a.jsxs("span",{className:"font-semibold",children:[he.toFixed(1),"h/mo"]})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Qe?a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[dr.toFixed(2)," DBU/hr"]}),a.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",ur?" + Photon":"",")"]})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"("}),a.jsx("span",{title:Ut,children:Ie.toFixed(2)}),a.jsx("span",{children:"+"}),a.jsx("span",{title:Sr,children:vt.toFixed(2)}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:fi}),a.jsx("span",{children:")"}),ur&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"×"}),a.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[dr.toFixed(2)," DBU/hr"]})]}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(We?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsxs("span",{children:[an(fe.monthlyDBUs)," DBUs"]}),a.jsx("span",{children:"×"}),a.jsxs("span",{children:["$",on,"/DBU"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-blue-600 font-semibold",children:xe(fe.dbuCost)})]}),Ts&&a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[a.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),a.jsx("span",{children:"("}),a.jsxs("span",{title:Ut,children:["$",(Xt==null?void 0:Xt.toFixed(4))||"0"]}),a.jsx("span",{children:"+"}),a.jsxs("span",{title:Sr,children:["$",(vn==null?void 0:vn.toFixed(4))||"0"]}),a.jsx("span",{children:"×"}),a.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:fi}),a.jsx("span",{children:")"}),a.jsx("span",{children:"×"}),a.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[he.toFixed(We?1:0),"h"]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-teal-600 font-semibold",children:xe(fe.vmCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-blue-500",children:xe(fe.dbuCost)}),Ts&&a.jsxs(a.Fragment,{children:[a.jsx("span",{children:"+"}),a.jsx("span",{className:"text-teal-500",children:xe(fe.vmCost)})]}),a.jsx("span",{children:"="}),a.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:xe(fe.totalCost)})]})]})})()})]})]})]}),ze&&a.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:a.jsx(q_,{onReset:()=>{W(ke=>{const Qe=new Set(ke);return Qe.delete(L.line_item_id),Qe})},children:a.jsx(rp,{estimateId:e,lineItem:L,onClose:()=>{W(ke=>{const Qe=new Set(ke);return Qe.delete(L.line_item_id),Qe}),ie(ke=>{const Qe={...ke};return delete Qe[L.line_item_id],Qe})},onSave:()=>{ie(ke=>{const Qe={...ke};return delete Qe[L.line_item_id],Qe})},onFormChange:ke=>{ie(Qe=>({...Qe,[L.line_item_id]:ke}))},inline:!0})})})]})},L.line_item_id)}),Ol?N?a.jsxs(Bt.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),a.jsx("button",{onClick:()=>se(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),a.jsx(rp,{estimateId:e,lineItem:null,onClose:()=>se(!1),onSave:()=>{},inline:!0})]}):a.jsxs("button",{onClick:()=>se(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[a.jsx(Au,{className:"w-5 h-5"}),"Add Workload"]}):a.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[a.jsx(fs,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),a.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",a.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",a.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):a.jsxs("div",{className:"card p-8 text-center",children:[Fl?a.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),a.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",hx().join(", ")]})]}),a.jsxs("button",{onClick:ax,disabled:pe||!Fl,className:"btn btn-primary",children:[a.jsx(qs,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!ft&&a.jsx("div",{className:"lg:col-span-1",children:a.jsxs("div",{className:"card p-5 sticky top-24",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("h3",{className:"flex items-center gap-2",children:[a.jsx(_m,{className:"w-5 h-5 text-lava-600"}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),dt&&!Ge&&a.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),a.jsxs("button",{onClick:()=>xt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[a.jsx(tr,{className:"w-3.5 h-3.5"}),a.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),Ol?dt&&!Ge?a.jsxs("div",{className:"space-y-3 py-4",children:[a.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),a.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?a.jsxs("div",{className:"space-y-4",children:[a.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[a.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),a.jsx("p",{className:ue("text-3xl font-bold text-lava-600",Ke&&"opacity-60"),children:xe(Yn.totalCost)}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[xe(Yn.totalCost*12),"/year"]})]}),a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[a.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[a.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),a.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:xe(Yn.totalDBUCost),children:G_(Yn.totalDBUCost)})]}),a.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[a.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),a.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Ke?"Loading...":xe(Yn.totalVMCost),children:Ke?"...":G_(Yn.totalVMCost)})]})]}),a.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[a.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[a.jsxs("span",{children:["Workloads (",r.length,")"]}),a.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),a.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const L=[...r].map(C=>({item:C,costs:ns(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return L.map(({item:C,costs:$},fe)=>{const ze=Yn.totalCost>0?$.totalCost/Yn.totalCost*100:0,Et=Z[fe%Z.length];return a.jsxs("button",{onClick:()=>Br(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[a.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[a.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),a.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[a.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[ze.toFixed(0),"%"]}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:xe($.totalCost),children:xe($.totalCost)})]})]}),a.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx("div",{className:ue("h-full rounded-full transition-all",Et,"group-hover:brightness-110"),style:{width:`${Math.max(ze,2)}%`}})})]},C.line_item_id)})})()})]})]}):a.jsxs("div",{className:"text-center py-8",children:[a.jsx(_m,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):a.jsxs("div",{className:"text-center py-8",children:[a.jsx(fs,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),a.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),ft&&a.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[St&&r.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>mt(!1)}),a.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:a.jsxs("div",{className:"p-4",children:[a.jsxs("div",{className:"flex items-center justify-between mb-3",children:[a.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),a.jsx("button",{onClick:()=>mt(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),a.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const L=[...r].map(C=>({item:C,costs:ns(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return L.map(({item:C,costs:$},fe)=>{const ze=Yn.totalCost>0?$.totalCost/Yn.totalCost*100:0,Et=Z[fe%Z.length];return a.jsxs("button",{onClick:()=>{mt(!1),Br(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[a.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[a.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),a.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[a.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[ze.toFixed(0),"%"]}),a.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:xe($.totalCost)})]})]}),a.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx("div",{className:ue("h-full rounded-full",Et),style:{width:`${Math.max(ze,1)}%`}})})]},C.line_item_id)})})()}),a.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),a.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-14",children:[a.jsxs("button",{onClick:()=>xt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[a.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),a.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),a.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[a.jsxs("button",{onClick:()=>mt(!St),className:ue("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",St?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[a.jsx(ry,{className:"w-4 h-4"}),a.jsx("span",{className:"font-semibold",children:r.length}),a.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),a.jsx(ds,{className:ue("w-3 h-3 transition-transform",St?"rotate-180":"")})]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),a.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[a.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),a.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:xe(Yn.totalDBUCost)})]}),a.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[a.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),a.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:xe(Yn.totalVMCost)})]})]}),a.jsx("div",{className:"flex items-center",children:a.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:a.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[xe(Yn.totalCost),a.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),le.size>0&&a.jsxs(Bt.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[a.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[le.size," workload",le.size!==1?"s":""," selected"]}),a.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),a.jsxs("button",{onClick:cx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]}),a.jsxs("button",{onClick:ux,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[a.jsx(To,{className:"w-4 h-4"}),"Cancel"]})]}),ce&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',Q.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:VE,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ye&&Xe&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",a.jsxs("span",{className:"font-semibold",children:['"',Xe.workload_name,'"']}),"?"]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>{ot(!1),I(null)},disabled:at,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:$E,disabled:at,className:"btn bg-red-600 hover:bg-red-700 text-white",children:at?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete"]})})]})]})}),tt&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:a.jsx(en,{className:"w-5 h-5 text-red-600"})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",le.size," Workload",le.size!==1?"s":""]}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),a.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[a.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),a.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(L=>le.has(L.line_item_id)).map(L=>a.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",L.workload_name]},L.line_item_id))})]}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>gt(!1),disabled:at,className:"btn btn-secondary",children:"Cancel"}),a.jsx("button",{onClick:HE,disabled:at,className:"btn bg-red-600 hover:bg-red-700 text-white",children:at?a.jsxs(a.Fragment,{children:[a.jsx(Qr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):a.jsxs(a.Fragment,{children:[a.jsx(en,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),G&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsxs(Bt.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:a.jsx(fs,{className:"w-5 h-5 text-amber-600"})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),a.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),a.jsxs("div",{className:"flex gap-3 justify-end",children:[a.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),a.jsx("button",{onClick:KE,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function f8(){const{id:e}=_w(),t=cd();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),a.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),a.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const J_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},p8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function m8(e,t){var Y;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:o,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:f,getFMAPIProprietaryRate:p,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:J_[n]||J_.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let S="";const R=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?S="JOBS_COMPUTE_(PHOTON)":S="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?S="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?S="ALL_PURPOSE_COMPUTE_(PHOTON)":S="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":(S=`DLT_${R}_COMPUTE`,e.photon_enabled&&(S+="_(PHOTON)"));break;case"DBSQL":const ce=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ce==="SERVERLESS"?S="SERVERLESS_SQL_COMPUTE":ce==="PRO"?S="SQL_PRO_COMPUTE":S="SQL_COMPUTE";break;case"VECTOR_SEARCH":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();S=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":S="DATABASE_SERVERLESS_COMPUTE";break;default:S="JOBS_COMPUTE"}let k=null;if(b){const ce=b(S);ce!==null&&ce>0&&(k=ce)}k===null&&(k=x[S]||.2),console.log(`[LiveEstimate] productType=${S}, dbuPrice=${k}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let T=0,D=0,z=0,j,H,X,re=.5,ae=.5;if(g&&e.driver_node_type){const ce=g(e.driver_node_type);ce!==null&&ce>0&&(re=ce)}if(re===.5){const ce=o.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ce!=null&&ce.dbu_rate&&(re=ce.dbu_rate)}if(g&&e.worker_node_type){const ce=g(e.worker_node_type);ce!==null&&ce>0&&(ae=ce)}if(ae===.5){const ce=o.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ce!=null&&ce.dbu_rate&&(ae=ce.dbu_rate)}const ve=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ce=S.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ce="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ce="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ce=`DLT_${R}_COMPUTE`)),v){const ye=v(ce);if(ye!==null&&ye>1)return ye}const _e=c.find(ye=>{var ot;return ye.sku_type===ce||ye.sku_type===S||((ot=ye.sku_type)==null?void 0:ot.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)T=(re+ae*y)*ve*oe;else{T=(re+ae*y)*ve;const le=e.driver_pricing_tier||"on_demand",rt=e.driver_payment_option||"NA",Nt=e.worker_pricing_tier||"spot",wr=e.worker_payment_option||"NA",Nn=d(n,r,e.driver_node_type||"",le,rt),Br=d(n,r,e.worker_node_type||"",Nt,wr);z=(Nn+Br*y)*_}D=T*_;break;case"DLT":if(e.serverless_enabled)T=(re+ae*y)*ve*oe;else{T=(re+ae*y)*ve;const le=e.driver_pricing_tier||"on_demand",rt=e.driver_payment_option||"NA",Nt=e.worker_pricing_tier||"spot",wr=e.worker_payment_option||"NA",Nn=d(n,r,e.driver_node_type||"",le,rt),Br=d(n,r,e.worker_node_type||"",Nt,wr);z=(Nn+Br*y)*_}D=T*_;break;case"DBSQL":const ce=l.find(le=>le.id===e.dbsql_warehouse_size||le.name===e.dbsql_warehouse_size),_e=(ce==null?void 0:ce.dbu_per_hour)||p8[e.dbsql_warehouse_size||"Small"]||12,ye=e.dbsql_num_clusters||1;T=_e*ye,D=T*_;const ot=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(ot!=="SERVERLESS"){const le=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",rt=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Nt=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",wr=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Nn=(Y=t.getDBSQLWarehouseConfig)==null?void 0:Y.call(t,ot,e.dbsql_warehouse_size||"Small");if(Nn){const Br=d(n,r,Nn.driver_instance_type,le,rt),Ur=d(n,r,Nn.worker_instance_type,Nt,wr);z=(Nn.driver_count*Br+Nn.worker_count*Ur)*ye*_}else if(e.driver_node_type){const Br=d(n,r,e.driver_node_type,le,rt),Ur=e.worker_node_type?d(n,r,e.worker_node_type,Nt,wr):0,Ml=e.num_workers||0;z=(Br+Ur*Ml)*ye*_}}break;case"VECTOR_SEARCH":const Xe=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,tt=h(Xe),gt=(tt==null?void 0:tt.input_divisor)||(Xe==="storage_optimized"?64e6:2e6),at=(tt==null?void 0:tt.dbu_per_hour)||(Xe==="storage_optimized"?18.29:4),pt=I*1e6,G=Math.ceil(pt/gt);j=G,T=G*at,D=T*_;const P=e.vector_search_storage_gb||0,N=G*20,se=Math.max(0,P-N),M=.023,W=se*M;P>0&&(H=W,X={totalStorageGB:P,freeStorageGB:N,billableStorageGB:se,pricePerGB:M});break;case"MODEL_SERVING":const Se=e.model_serving_gpu_type||"cpu",Ne=u.find(le=>le.id===Se||le.name===Se),O=(Ne==null?void 0:Ne.dbu_per_hour)||2,F=e.model_serving_scale_out||"small",ie=F==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[F]||4;T=O*ie,D=T*_;break;case"LAKEBASE":const Ce=e.lakebase_cu||1,Be=e.lakebase_ha_nodes||1,dt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ge=(dt[n]||dt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;T=Ce*Ge*Be,D=T*_;const lt=Math.min(e.lakebase_storage_gb||0,8192),Ke=15,Mt=lt*Ke,U=.023,J=Mt*U,Le=e.lakebase_pitr_gb||0,Q=Le*8.7*U,ct=e.lakebase_snapshot_gb||0,Ot=ct*3.91*U;(lt>0||Le>0||ct>0)&&(H=J+Q+Ot,X={totalStorageGB:lt,billableStorageGB:lt,dsuPerGB:Ke,totalDSU:Mt,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const ft=e.fmapi_quantity||0,xt=e.fmapi_rate_type||"input_token",St=["provisioned_scaling","provisioned_entry"].includes(xt),mt=e.fmapi_model?f(e.fmapi_model,xt):null;if(St){const le=(mt==null?void 0:mt.dbu_per_hour)||(xt==="provisioned_scaling"?200:50);D=ft*le}else{const le=(mt==null?void 0:mt.dbu_per_1M_tokens)||(xt==="output_token"?3:1);D=ft*le}break;case"FMAPI_PROPRIETARY":const Ue=e.fmapi_quantity||0,Oe=e.fmapi_rate_type||"input_token",De=Oe==="provisioned_scaling",Pe=e.fmapi_endpoint_type||"global",qt=e.fmapi_context_length||"long",Ct=e.fmapi_provider&&e.fmapi_model?p(e.fmapi_provider,e.fmapi_model,Oe,Pe,qt):null;if(De){const le=(Ct==null?void 0:Ct.dbu_per_hour)||150;D=Ue*le}else{let le=Ct==null?void 0:Ct.dbu_per_1M_tokens;if(!le)switch(Oe){case"output_token":le=321.43;break;case"cache_read":le=8.57;break;case"cache_write":le=85.71;break;default:le=21.43}D=Ue*le}break;default:D=0}const B=D*k,q=H!==void 0&&!isNaN(H)?H:0,E=B+z+q,de=isNaN(B)?0:B,pe=isNaN(z)?0:z,A=isNaN(E)?de:E,be=isNaN(D)?0:D,Ae=isNaN(T)?0:T,w=isNaN(k)?.15:k;return{monthlyDBUs:be,dbuCost:de,vmCost:pe,totalCost:A,unitsUsed:j,dbuPerHour:Ae,dbuPrice:w,storageCost:q>0?q:void 0,storageDetails:X}}const fl={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function Hu(e,t,n){var i,o;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=fl[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((o=fl[t.toLowerCase()])==null?void 0:o.vmTypes)||[]:Object.keys(s).sort()}function Km(e,t){var n;return((n=fl[t.toLowerCase()])==null?void 0:n.regions)||[]}function Qm(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const h8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],g8=["bge-large","gte"],x8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],Z_=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],v8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},y8=["cpu","gpu_small_t4"],_8=["standard","storage_optimized"];function ms(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function eb(e,t,n,r,s,i){const o=[];let l=r;const c=i!=null&&i.isLoaded?rC(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))o.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),o.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])o.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))o.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});o.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])o.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});o.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of ms(Z_,3))o.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of ms(Z_,2))o.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});o.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of _8)o.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=v8[s.toLowerCase()]||y8;for(const f of d)o.push({id:`${++l}`,name:`Model Serving ${f}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:f,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of ms(h8,3))for(const f of["input_token","output_token"])o.push({id:`${++l}`,name:`FMAPI DB ${d} ${f}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:f,fmapi_quantity:10}});for(const d of ms(g8,1))o.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of ms(x8,4))for(const f of d.contexts.slice(0,2))for(const p of["input_token","output_token"])o.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${f} ${p}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:f,fmapi_rate_type:p,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])o.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return o}function b8(e,t){var s,i,o;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=Hu(t,l),f=d.length>0?ms(d,e.vmSamplesPerCloud):["c5.xlarge"];return eb({cloud:l,region:c,tier:u},f,e,r,l,t)}for(const l of e.clouds){const c=Km(t,l),u=ms(c.length>0?c:((s=fl[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=ms(Qm(l),e.tiersPerCloud);for(const f of u){const p=Hu(t,l),h=p.length>0?ms(p,e.vmSamplesPerCloud):((o=(i=fl[l])==null?void 0:i.vmTypes)==null?void 0:o.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=eb({cloud:l,region:f,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function w8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function k8(e){var o,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((o=n.fmapi_rate_type)==null?void 0:o.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function S8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,o=t.totalCost||0,l=Math.abs(i-o),c=o!==0?l/o*100:i!==0?100:0;for(const u of s){const d=e[u]||0,f=t[u]||0,p=Math.abs(d-f),h=f!==0?p/f*100:d!==0?100:0;h>n&&p>.01&&r.push({field:u,local:d,api:f,diff:p,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function C8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[o,l]=m.useState(!1),[c,u]=m.useState(null),[d,f]=m.useState(new Set),[p,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[S,R]=m.useState({current:0,total:0}),[k,T]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),z=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:ae,photonMultipliers:me,modelServingGPUTypes:ve,vectorSearchModes:oe,pricingBundle:B,isPricingBundleLoaded:q,loadPricingBundle:E,getVMPrice:de,fetchVMCostForInstance:pe,getFMAPIDatabricksRate:A,getFMAPIProprietaryRate:be,getVectorSearchRate:Ae}=_s();m.useEffect(()=>{E()},[E]);const w=m.useMemo(()=>b8(j,B),[j,B]),Y=m.useMemo(()=>p==="all"?w:w.filter(M=>M.category===p),[w,p]),ce=m.useMemo(()=>{const M=new Set(w.map(W=>W.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,W,Se)=>{const Ne=q&&B.modelServingRates?Object.entries(B.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,F])=>{const K=O.split(":")[1];return{id:K,name:K,dbu_per_hour:F.dbu_rate}}):ve;return{cloud:M,region:W,tier:Se,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:ae,photonMultipliers:me,modelServingGPUTypes:Ne,vectorSearchModes:oe,getVMPrice:de,getFMAPIDatabricksRate:(O,F)=>{if(q&&B.fmapiDatabricksRates){const K=`${M.toLowerCase()}:${O}:${F}`,ie=B.fmapiDatabricksRates[K];if(ie)return{dbu_per_1M_tokens:ie.is_hourly?void 0:ie.dbu_rate,dbu_per_hour:ie.is_hourly?ie.dbu_rate:void 0}}return A(O,F)},getFMAPIProprietaryRate:(O,F,K,ie,Ce)=>{if(q&&B.fmapiProprietaryRates){const Be=ie||"global",dt=Ce||"all",nt=`${M.toLowerCase()}:${O.toLowerCase()}:${F.toLowerCase()}:${Be}:${dt}:${K}`,Ge=B.fmapiProprietaryRates[nt];if(Ge)return{dbu_per_1M_tokens:Ge.is_hourly?void 0:Ge.dbu_rate,dbu_per_hour:Ge.is_hourly?Ge.dbu_rate:void 0}}return be(O,F,K)},getVectorSearchRate:O=>{if(q&&B.vectorSearchRates){const F=`${M.toLowerCase()}:${O}`,K=B.vectorSearchRates[F];if(K)return{dbu_per_hour:K.dbu_rate,input_divisor:K.input_divisor}}return Ae(O)},getInstanceDBURate:O=>q?Pm(B,M,O):null,getPhotonMultiplier:O=>q?nC(B,M,O):null,getDBUPrice:O=>q?Ag(B,M,W,Se,O):null,getDBSQLWarehouseConfig:(O,F)=>q?al(B,M,O,F):null}},[X,re,ae,me,ve,oe,q,B,de,A,be,Ae]),ye=async M=>{var Q,ct,Ze,Ot,ft,xt,St,mt,Ue;const{environment:W,workloadType:Se,config:Ne}=M,O=_e(W.cloud,W.region,W.tier),F={...Ne,workload_type:Se},K=[];if(Se==="DBSQL"&&Ne.dbsql_warehouse_type!=="SERVERLESS"){const Oe=al(B,W.cloud,Ne.dbsql_warehouse_type||"PRO",Ne.dbsql_warehouse_size||"Small");if(Oe){const De=Ne.dbsql_driver_pricing_tier||"on_demand",Pe=Ne.dbsql_driver_payment_option||"NA";K.push(pe(W.cloud,W.region,Oe.driver_instance_type,De,Pe));const qt=Ne.dbsql_worker_pricing_tier||"on_demand",Ct=Ne.dbsql_worker_payment_option||"NA";K.push(pe(W.cloud,W.region,Oe.worker_instance_type,qt,Ct))}}else!Ne.serverless_enabled&&Ne.driver_node_type&&(K.push(pe(W.cloud,W.region,Ne.driver_node_type,Ne.driver_pricing_tier||"on_demand",Ne.driver_payment_option||"NA")),Ne.worker_node_type&&K.push(pe(W.cloud,W.region,Ne.worker_node_type,Ne.worker_pricing_tier||"spot",Ne.worker_payment_option||"NA")));K.length>0&&await Promise.all(K);const ie=performance.now(),Ce=m8(F,O),Be=performance.now()-ie,dt=performance.now();let nt=null,Ge,lt;const Ke=w8(Se,Ne),Mt=k8(M);try{const Oe=await fetch(Ke,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Mt)});if(Oe.ok){const De=await Oe.json();lt=De;const Pe=De.data||De,qt=((Q=Pe.dbu_calculation)==null?void 0:Q.dbu_per_month)??Pe.dbu_per_month??(((ct=Pe.dbu_calculation)==null?void 0:ct.dbu_per_hour)??Pe.dbu_per_hour??0)*(Ne.hours_per_month||730),Ct=((Ze=Pe.dbu_calculation)==null?void 0:Ze.dbu_cost_per_month)??((ft=(Ot=Pe.total_cost)==null?void 0:Ot.breakdown)==null?void 0:ft.dbu_cost)??Pe.dbu_cost_per_month??Pe.dbu_cost??0,le=((xt=Pe.vm_costs)==null?void 0:xt.vm_cost_per_month)??((mt=(St=Pe.total_cost)==null?void 0:St.breakdown)==null?void 0:mt.vm_cost)??Pe.vm_cost_per_month??Pe.vm_cost??0;let rt=0;typeof Pe.total_cost=="object"&&Pe.total_cost!==null?rt=Pe.total_cost.cost_per_month??Ct+le:typeof Pe.total_cost=="number"?rt=Pe.total_cost:rt=Pe.total_cost_per_month??Ct+le,nt={monthlyDBUs:qt,dbuCost:Ct,vmCost:le,totalCost:rt},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:De,parsed:nt})}else{const De=await Oe.text();try{const Pe=JSON.parse(De);Ge=`HTTP ${Oe.status}: ${((Ue=Pe.detail)==null?void 0:Ue.message)||Pe.detail||Pe.message||De}`}catch{Ge=`HTTP ${Oe.status}: ${De}`}}}catch(Oe){Ge=Oe instanceof Error?Oe.message:"Unknown error"}const U=performance.now()-dt,{discrepancies:J,totalCostDiffPercent:Le}=S8(Ce,nt,g),Ve=Le<=g&&!Ge;return{testCase:M,localResult:Ce,apiResult:nt,apiError:Ge,apiRequestBody:Mt,apiRawResponse:lt,localTimeMs:Be,apiTimeMs:U,matches:Ve,totalCostDiffPercent:Le,discrepancies:J}},ot=()=>{D.current=!0,i(!0)},Xe=()=>{D.current=!1,i(!1)},I=()=>{z.current=!0,l(!0),D.current=!1,i(!1)},tt=async()=>{for(;D.current&&!z.current;)await new Promise(M=>setTimeout(M,100))},gt=async()=>{r(!0),i(!1),l(!1),D.current=!1,z.current=!1,t([]),R({current:0,total:Y.length});for(let M=0;M[...Ne,Se])}u(null),r(!1),i(!1),l(!1)},at=async()=>{const{cloud:M,region:W,tier:Se,workloadType:Ne,serverless:O,photon:F,driverNode:K,workerNode:ie,numWorkers:Ce,runsPerDay:Be,avgRuntime:dt,daysPerMonth:nt,hoursPerMonth:Ge}=k,lt={id:"custom-single",name:`Custom ${Ne} Test`,category:Ne,workloadType:Ne,environment:{cloud:M,region:W,tier:Se},config:{serverless_enabled:O,photon_enabled:F,driver_node_type:K,worker_node_type:ie,num_workers:Ce,runs_per_day:Be,avg_runtime_minutes:dt,days_per_month:nt,hours_per_month:Ge,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Ke=await ye(lt);t([Ke]),u(null),r(!1)},pt=m.useMemo(()=>{const M=e.filter(K=>K.matches).length,W=e.filter(K=>!K.matches).length,Se=e.filter(K=>K.apiError).length,Ne=e.length>0?e.reduce((K,ie)=>K+ie.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((K,ie)=>K+ie.apiTimeMs,0)/e.length:0,F={};return e.forEach(K=>{const ie=K.testCase.category;F[ie]||(F[ie]={passed:0,failed:0}),K.matches?F[ie].passed++:F[ie].failed++}),{passed:M,failed:W,apiErrors:Se,avgLocalTime:Ne,avgApiTime:O,byCategory:F}},[e]),G=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],W=e.map(K=>{var ie;return[K.testCase.id,K.testCase.name,K.testCase.category,K.testCase.environment.cloud,K.testCase.environment.region,K.testCase.environment.tier,K.matches?"PASS":"FAIL",K.localResult.totalCost.toFixed(2),((ie=K.apiResult)==null?void 0:ie.totalCost.toFixed(2))||"N/A",K.totalCostDiffPercent.toFixed(2),K.localTimeMs.toFixed(1),K.apiTimeMs.toFixed(1),K.apiError||""]}),Se=[M.join(","),...W.map(K=>K.map(ie=>`"${ie}"`).join(","))].join(` +`),Ne=new Blob([Se],{type:"text/csv"}),O=URL.createObjectURL(Ne),F=document.createElement("a");F.href=O,F.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,F.click()},P=M=>{const W=new Set(d);W.has(M)?W.delete(M):W.add(M),f(W)},N=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),se=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return a.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:a.jsx(oD,{className:"w-6 h-6 text-purple-500"})}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),a.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[a.jsx(Ru,{className:"w-4 h-4"}),"Single Test"]}),a.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[a.jsx(YA,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&a.jsxs("button",{onClick:G,className:"btn btn-secondary flex items-center gap-2",children:[a.jsx(RD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&a.jsxs("button",{onClick:ot,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[a.jsx(XD,{className:"w-4 h-4"}),"Pause"]}),n&&s&&a.jsxs("button",{onClick:Xe,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Resume"]}),n&&a.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[a.jsx(dS,{className:"w-4 h-4"}),"Stop"]}),!n&&a.jsxs("button",{onClick:gt,className:"btn btn-primary flex items-center gap-2",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Run ",Y.length," Tests"]})]})]}),y&&a.jsxs(Bt.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Ru,{className:"w-5 h-5 text-lava-600"}),a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),a.jsxs("button",{onClick:at,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[a.jsx(Cf,{className:"w-4 h-4"}),"Run Single Test"]})]}),a.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),a.jsxs("select",{value:k.cloud,onChange:M=>T({...k,cloud:M.target.value}),className:"w-full text-sm",children:[a.jsx("option",{value:"aws",children:"AWS"}),a.jsx("option",{value:"azure",children:"Azure"}),a.jsx("option",{value:"gcp",children:"GCP"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),a.jsx("input",{type:"text",value:k.region,onChange:M=>T({...k,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),a.jsx("datalist",{id:"single-test-regions",children:Km(B,k.cloud).slice(0,20).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),a.jsx("select",{value:k.tier,onChange:M=>T({...k,tier:M.target.value}),className:"w-full text-sm",children:Qm(k.cloud).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),a.jsxs("select",{value:k.workloadType,onChange:M=>T({...k,workloadType:M.target.value}),className:"w-full text-sm",children:[a.jsx("option",{value:"JOBS",children:"Jobs"}),a.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),a.jsx("option",{value:"DLT",children:"DLT"}),a.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),a.jsxs("div",{className:"flex items-end gap-4",children:[a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:k.serverless,onChange:M=>T({...k,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:k.photon,onChange:M=>T({...k,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),a.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),a.jsx("input",{type:"text",value:k.driverNode,onChange:M=>T({...k,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),a.jsx("datalist",{id:"single-test-driver-vms",children:Hu(B,k.cloud,k.region).slice(0,50).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),a.jsx("input",{type:"text",value:k.workerNode,onChange:M=>T({...k,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),a.jsx("datalist",{id:"single-test-worker-vms",children:Hu(B,k.cloud,k.region).slice(0,50).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),a.jsx("input",{type:"number",value:k.numWorkers,onChange:M=>T({...k,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),a.jsx("input",{type:"number",value:k.runsPerDay,onChange:M=>T({...k,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),a.jsx("input",{type:"number",value:k.avgRuntime,onChange:M=>T({...k,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),a.jsx("input",{type:"number",value:k.daysPerMonth,onChange:M=>T({...k,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&a.jsxs(Bt.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(SD,{className:"w-5 h-5 text-[var(--text-muted)]"}),a.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),a.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[a.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[a.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),a.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&a.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),a.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[a.jsx("option",{value:"aws",children:"AWS"}),a.jsx("option",{value:"azure",children:"Azure"}),a.jsx("option",{value:"gcp",children:"GCP"})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),a.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),a.jsx("datalist",{id:"available-regions",children:Km(B,j.manualEnvironment.cloud).slice(0,20).map(M=>a.jsx("option",{value:M,children:M},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),a.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Qm(j.manualEnvironment.cloud).map(M=>a.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&a.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),a.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[a.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),a.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:W=>{W.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(Se=>Se!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),a.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),a.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),a.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),a.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:W})=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),W]},M))})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),a.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:W})=>a.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:j[M],onChange:Se=>H({...j,[M]:Se.target.checked}),className:"rounded"}),W]},M))})]})]}),a.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[a.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[a.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),a.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),a.jsx("select",{value:p,onChange:M=>h(M.target.value),className:"text-sm",children:ce.map(M=>a.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),a.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[a.jsx("div",{className:"flex items-center gap-4",children:a.jsxs("div",{className:`flex items-center gap-2 ${q?"text-green-500":"text-yellow-500"}`,children:[q?a.jsx(Tu,{className:"w-5 h-5"}):a.jsx(fs,{className:"w-5 h-5"}),a.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",q?"Loaded":"Not Loaded (using fallbacks)"]})]})}),a.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&a.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-green-500",children:pt.passed}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-red-500",children:pt.failed}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:pt.apiErrors}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[pt.avgLocalTime.toFixed(1),"ms"]}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),a.jsxs("div",{className:"card p-4 text-center",children:[a.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[pt.avgApiTime.toFixed(0),"ms"]}),a.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(pt.byCategory).length>0&&a.jsxs("div",{className:"card p-4 mb-6",children:[a.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),a.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(pt.byCategory).map(([M,{passed:W,failed:Se}])=>a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[a.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),a.jsxs("span",{className:"text-xs text-green-500",children:[W," ✓"]}),Se>0&&a.jsxs("span",{className:"text-xs text-red-500",children:[Se," ✗"]})]},M))})]}),n&&a.jsxs("div",{className:"mb-6",children:[a.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:a.jsx(Bt.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${S.current/S.total*100}%`}})}),a.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[S.current," / ",S.total," tests completed",s&&a.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),o&&a.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),a.jsx("div",{className:"card overflow-hidden",children:a.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:a.jsxs("tr",{children:[a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),a.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),a.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),a.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),a.jsx("tbody",{children:Y.map(M=>{const W=e.find(O=>O.testCase.id===M.id),Se=d.has(M.id),Ne=c===M.id;return a.jsxs(a.Fragment,{children:[a.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${W&&!W.matches?"bg-red-500/5":""} + ${Ne?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>W&&P(M.id),children:[a.jsx("td",{className:"p-3",children:a.jsxs("div",{className:"flex items-center gap-2",children:[W&&(Se?a.jsx(tr,{className:"w-4 h-4 text-[var(--text-muted)]"}):a.jsx(lS,{className:"w-4 h-4 text-[var(--text-muted)]"})),a.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),a.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),a.jsx("td",{className:"p-3",children:a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),a.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),a.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),a.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W?N(W.localResult.totalCost):"-"}),a.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W!=null&&W.apiResult?N(W.apiResult.totalCost):W!=null&&W.apiError?"Error":"-"}),a.jsx("td",{className:"p-3 text-right font-mono",children:W?a.jsxs("span",{className:W.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[W.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),a.jsx("td",{className:"p-3 text-center",children:Ne?a.jsx(Qr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):W?W.matches?a.jsx(Tu,{className:"w-5 h-5 text-green-500 mx-auto"}):a.jsx(k3,{className:"w-5 h-5 text-red-500 mx-auto"}):a.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),W&&Se&&a.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:a.jsxs("td",{colSpan:7,className:"p-4",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),a.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:se(W.localResult.monthlyDBUs)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:N(W.localResult.dbuCost)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),a.jsx("span",{className:"text-[var(--text-primary)]",children:N(W.localResult.vmCost)})]}),a.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:"text-lava-600 font-semibold",children:N(W.localResult.totalCost)})]}),W.localResult.dbuPrice&&a.jsxs("div",{className:"flex justify-between text-[10px]",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),a.jsxs("span",{className:"text-pink-500",children:["$",W.localResult.dbuPrice.toFixed(2)]})]})]})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),W.apiError?a.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:a.jsx("p",{className:"text-red-500 text-xs break-all",children:W.apiError})}):W.apiResult?a.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:se(W.apiResult.monthlyDBUs)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:N(W.apiResult.dbuCost)})]}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:N(W.apiResult.vmCost)})]}),a.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[a.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),a.jsx("span",{className:W.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:N(W.apiResult.totalCost)})]})]}):null]})]}),W.discrepancies.length>0&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),a.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:a.jsxs("table",{className:"w-full text-xs",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"text-red-400",children:[a.jsx("th",{className:"text-left pb-1",children:"Field"}),a.jsx("th",{className:"text-right pb-1",children:"Local"}),a.jsx("th",{className:"text-right pb-1",children:"API"}),a.jsx("th",{className:"text-right pb-1",children:"Diff"}),a.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),a.jsx("tbody",{className:"font-mono",children:W.discrepancies.map((O,F)=>a.jsxs("tr",{className:"text-red-300",children:[a.jsx("td",{className:"py-0.5",children:O.field}),a.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),a.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),a.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),a.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},F))})]})})]}),W.apiRawResponse&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),a.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:a.jsx("code",{className:"text-green-300",children:JSON.stringify(W.apiRawResponse,null,2)})})]}),W.apiRequestBody&&a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),a.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:a.jsx("code",{className:"text-blue-300",children:JSON.stringify(W.apiRequestBody,null,2)})})]}),a.jsxs("div",{className:"mt-4",children:[a.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),a.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:W.testCase.environment,config:W.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function E8(){return a.jsx(SN,{children:a.jsxs(_i,{path:"/",element:a.jsx(bV,{}),children:[a.jsx(_i,{index:!0,element:a.jsx(i8,{})}),a.jsx(_i,{path:"calculator",element:a.jsx(X_,{})}),a.jsx(_i,{path:"calculator/:id",element:a.jsx(X_,{})}),a.jsx(_i,{path:"estimate/:id",element:a.jsx(f8,{})}),a.jsx(_i,{path:"test-calculations",element:a.jsx(C8,{})})]})})}function j8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}j8();sp.createRoot(document.getElementById("root")).render(a.jsx(un.StrictMode,{children:a.jsxs(TN,{children:[a.jsx(E8,{}),a.jsx(wP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/assets/index-vvdllbo5.js b/lakemeter/backend/static/assets/index-vvdllbo5.js new file mode 100644 index 00000000..3c05f001 --- /dev/null +++ b/lakemeter/backend/static/assets/index-vvdllbo5.js @@ -0,0 +1,354 @@ +function l2(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var ms=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var rb={exports:{}},Gu={},sb={exports:{}},qe={};/** + * @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 hl=Symbol.for("react.element"),c2=Symbol.for("react.portal"),u2=Symbol.for("react.fragment"),d2=Symbol.for("react.strict_mode"),p2=Symbol.for("react.profiler"),f2=Symbol.for("react.provider"),m2=Symbol.for("react.context"),h2=Symbol.for("react.forward_ref"),g2=Symbol.for("react.suspense"),x2=Symbol.for("react.memo"),v2=Symbol.for("react.lazy"),wx=Symbol.iterator;function y2(e){return e===null||typeof e!="object"?null:(e=wx&&e[wx]||e["@@iterator"],typeof e=="function"?e:null)}var ib={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ab=Object.assign,ob={};function Ia(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||ib}Ia.prototype.isReactComponent={};Ia.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")};Ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function lb(){}lb.prototype=Ia.prototype;function Xm(e,t,n){this.props=e,this.context=t,this.refs=ob,this.updater=n||ib}var Jm=Xm.prototype=new lb;Jm.constructor=Xm;ab(Jm,Ia.prototype);Jm.isPureReactComponent=!0;var kx=Array.isArray,cb=Object.prototype.hasOwnProperty,Zm={current:null},ub={key:!0,ref:!0,__self:!0,__source:!0};function db(e,t,n){var r,s={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)cb.call(t,r)&&!ub.hasOwnProperty(r)&&(s[r]=t[r]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,de=B[se];if(0>>1;ses(Le,N))ws(q,Le)?(B[se]=q,B[w]=N,se=w):(B[se]=Le,B[be]=N,se=be);else if(ws(q,N))B[se]=q,B[w]=N,se=w;else break e}}return Y}function s(B,Y){var N=B.sortIndex-Y.sortIndex;return N!==0?N:B.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,p=null,f=3,h=!1,g=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,y=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){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=B)r(u),Y.sortIndex=Y.expirationTime,t(c,Y);else break;Y=n(u)}}function S(B){if(v=!1,_(B),!g)if(n(c)!==null)g=!0,xe(R);else{var Y=n(u);Y!==null&&oe(S,Y.startTime-B)}}function R(B,Y){g=!1,v&&(v=!1,x(D),D=-1),h=!0;var N=f;try{for(_(Y),p=n(c);p!==null&&(!(p.expirationTime>Y)||B&&!H());){var se=p.callback;if(typeof se=="function"){p.callback=null,f=p.priorityLevel;var de=se(p.expirationTime<=Y);Y=e.unstable_now(),typeof de=="function"?p.callback=de:p===n(c)&&r(c),_(Y)}else r(c);p=n(c)}if(p!==null)var L=!0;else{var be=n(u);be!==null&&oe(S,be.startTime-Y),L=!1}return L}finally{p=null,f=N,h=!1}}var E=!1,A=null,D=-1,z=5,j=-1;function H(){return!(e.unstable_now()-jB||125se?(B.sortIndex=N,t(u,B),n(c)===null&&B===n(u)&&(v?(x(D),D=-1):v=!0,oe(S,N-se))):(B.sortIndex=de,t(c,B),g||h||(g=!0,xe(R))),B},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(B){var Y=f;return function(){var N=f;f=Y;try{return B.apply(this,arguments)}finally{f=N}}}})(gb);hb.exports=gb;var A2=hb.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 T2=m,lr=A2;function ee(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"),af=Object.prototype.hasOwnProperty,L2=/^[: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]*$/,Ex={},Cx={};function D2(e){return af.call(Cx,e)?!0:af.call(Ex,e)?!1:L2.test(e)?Cx[e]=!0:(Ex[e]=!0,!1)}function M2(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 O2(e,t,n,r){if(t===null||typeof t>"u"||M2(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 zn(e,t,n,r,s,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var vn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){vn[e]=new zn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];vn[t]=new zn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){vn[e]=new zn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){vn[e]=new zn(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){vn[e]=new zn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){vn[e]=new zn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){vn[e]=new zn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){vn[e]=new zn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){vn[e]=new zn(e,5,!1,e.toLowerCase(),null,!1,!1)});var th=/[\-:]([a-z])/g;function nh(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(th,nh);vn[t]=new zn(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(th,nh);vn[t]=new zn(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(th,nh);vn[t]=new zn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){vn[e]=new zn(e,1,!1,e.toLowerCase(),null,!1,!1)});vn.xlinkHref=new zn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){vn[e]=new zn(e,1,!1,e.toLowerCase(),null,!0,!0)});function rh(e,t,n,r){var s=vn.hasOwnProperty(t)?vn[t]:null;(s!==null?s.type!==0:r||!(2l||s[a]!==i[l]){var c=` +`+s[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=l);break}}}finally{Bd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fo(e):""}function I2(e){switch(e.tag){case 5:return fo(e.type);case 16:return fo("Lazy");case 13:return fo("Suspense");case 19:return fo("SuspenseList");case 0:case 2:case 15:return e=Ud(e.type,!1),e;case 11:return e=Ud(e.type.render,!1),e;case 1:return e=Ud(e.type,!0),e;default:return""}}function uf(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 Xi:return"Fragment";case Yi:return"Portal";case of:return"Profiler";case sh:return"StrictMode";case lf:return"Suspense";case cf:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case yb:return(e.displayName||"Context")+".Consumer";case vb:return(e._context.displayName||"Context")+".Provider";case ih:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ah:return t=e.displayName||null,t!==null?t:uf(e.type)||"Memo";case Is:t=e._payload,e=e._init;try{return uf(e(t))}catch{}}return null}function F2(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 uf(t);case 8:return t===sh?"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 bb(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function B2(e){var t=bb(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 s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ql(e){e._valueTracker||(e._valueTracker=B2(e))}function wb(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=bb(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Xc(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 df(e,t){var n=t.checked;return Mt({},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 kb(e,t){t=t.checked,t!=null&&rh(e,"checked",t,!1)}function pf(e,t){kb(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")?ff(e,t.type,n):t.hasOwnProperty("defaultValue")&&ff(e,t.type,ni(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Px(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 ff(e,t,n){(t!=="number"||Xc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var mo=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Yl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _o={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},U2=["Webkit","ms","Moz","O"];Object.keys(_o).forEach(function(e){U2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_o[t]=_o[e]})});function jb(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||_o.hasOwnProperty(e)&&_o[e]?(""+t).trim():t+"px"}function Nb(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=jb(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var V2=Mt({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 gf(e,t){if(t){if(V2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function xf(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 vf=null;function oh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var yf=null,ha=null,ga=null;function Tx(e){if(e=vl(e)){if(typeof yf!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Ju(t),yf(e.stateNode,e.type,t))}}function Pb(e){ha?ga?ga.push(e):ga=[e]:ha=e}function Rb(){if(ha){var e=ha,t=ga;if(ga=ha=null,Tx(e),t)for(e=0;e>>=0,e===0?32:31-(J2(e)/Z2|0)|0}var Xl=64,Jl=4194304;function ho(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 tu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var l=a&~s;l!==0?r=ho(l):(i&=a,i!==0&&(r=ho(i)))}else a=n&~s,a!==0?r=ho(a):i!==0&&(r=ho(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,i=t&-t,s>=i||s===16&&(i&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 gl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Dr(t),e[t]=n}function rj(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=wo),Vx=" ",zx=!1;function Yb(e,t){switch(e){case"keyup":return Aj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function Lj(e,t){switch(e){case"compositionend":return Xb(t);case"keypress":return t.which!==32?null:(zx=!0,Vx);case"textInput":return e=t.data,e===Vx&&zx?null:e;default:return null}}function Dj(e,t){if(Ji)return e==="compositionend"||!hh&&Yb(e,t)?(e=Kb(),Rc=ph=$s=null,Ji=!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=Wx(n)}}function t1(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?t1(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function n1(){for(var e=window,t=Xc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Xc(e.document)}return t}function gh(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 $j(e){var t=n1(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&t1(n.ownerDocument.documentElement,n)){if(r!==null&&gh(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 s=n.textContent.length,i=Math.min(r.start,s);r=r.end===void 0?i:Math.min(r.end,s),!e.extend&&i>r&&(s=r,r=i,i=s),s=Gx(n,i);var a=Gx(n,r);s&&a&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.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,Zi=null,Ef=null,So=null,Cf=!1;function Kx(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cf||Zi==null||Zi!==Xc(r)||(r=Zi,"selectionStart"in r&&gh(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}),So&&Wo(So,r)||(So=r,r=su(Ef,"onSelect"),0na||(e.current=Tf[na],Tf[na]=null,na--)}function _t(e,t){na++,Tf[na]=e.current,e.current=t}var ri={},Pn=oi(ri),Wn=oi(!1),Li=ri;function ka(e,t){var n=e.type.contextTypes;if(!n)return ri;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Gn(e){return e=e.childContextTypes,e!=null}function au(){wt(Wn),wt(Pn)}function t0(e,t,n){if(Pn.current!==ri)throw Error(ee(168));_t(Pn,t),_t(Wn,n)}function d1(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ee(108,F2(e)||"Unknown",s));return Mt({},n,r)}function ou(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ri,Li=Pn.current,_t(Pn,e),_t(Wn,Wn.current),!0}function n0(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=d1(e,t,Li),r.__reactInternalMemoizedMergedChildContext=e,wt(Wn),wt(Pn),_t(Pn,e)):wt(Wn),_t(Wn,n)}var ds=null,Zu=!1,ep=!1;function p1(e){ds===null?ds=[e]:ds.push(e)}function t5(e){Zu=!0,p1(e)}function li(){if(!ep&&ds!==null){ep=!0;var e=0,t=ut;try{var n=ds;for(ut=1;e>=a,s-=a,gs=1<<32-Dr(t)+s|n<D?(z=A,A=null):z=A.sibling;var j=f(x,A,_[D],S);if(j===null){A===null&&(A=z);break}e&&A&&j.alternate===null&&t(x,A),y=i(j,y,D),E===null?R=j:E.sibling=j,E=j,A=z}if(D===_.length)return n(x,A),Nt&&vi(x,D),R;if(A===null){for(;D<_.length;D++)A=p(x,_[D],S),A!==null&&(y=i(A,y,D),E===null?R=A:E.sibling=A,E=A);return Nt&&vi(x,D),R}for(A=r(x,A);D<_.length;D++)z=h(A,x,D,_[D],S),z!==null&&(e&&z.alternate!==null&&A.delete(z.key===null?D:z.key),y=i(z,y,D),E===null?R=z:E.sibling=z,E=z);return e&&A.forEach(function(H){return t(x,H)}),Nt&&vi(x,D),R}function v(x,y,_,S){var R=Za(_);if(typeof R!="function")throw Error(ee(150));if(_=R.call(_),_==null)throw Error(ee(151));for(var E=R=null,A=y,D=y=0,z=null,j=_.next();A!==null&&!j.done;D++,j=_.next()){A.index>D?(z=A,A=null):z=A.sibling;var H=f(x,A,j.value,S);if(H===null){A===null&&(A=z);break}e&&A&&H.alternate===null&&t(x,A),y=i(H,y,D),E===null?R=H:E.sibling=H,E=H,A=z}if(j.done)return n(x,A),Nt&&vi(x,D),R;if(A===null){for(;!j.done;D++,j=_.next())j=p(x,j.value,S),j!==null&&(y=i(j,y,D),E===null?R=j:E.sibling=j,E=j);return Nt&&vi(x,D),R}for(A=r(x,A);!j.done;D++,j=_.next())j=h(A,x,D,j.value,S),j!==null&&(e&&j.alternate!==null&&A.delete(j.key===null?D:j.key),y=i(j,y,D),E===null?R=j:E.sibling=j,E=j);return e&&A.forEach(function(X){return t(x,X)}),Nt&&vi(x,D),R}function b(x,y,_,S){if(typeof _=="object"&&_!==null&&_.type===Xi&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case Kl:e:{for(var R=_.key,E=y;E!==null;){if(E.key===R){if(R=_.type,R===Xi){if(E.tag===7){n(x,E.sibling),y=s(E,_.props.children),y.return=x,x=y;break e}}else if(E.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Is&&i0(R)===E.type){n(x,E.sibling),y=s(E,_.props),y.ref=so(x,E,_),y.return=x,x=y;break e}n(x,E);break}else t(x,E);E=E.sibling}_.type===Xi?(y=Ri(_.props.children,x.mode,S,_.key),y.return=x,x=y):(S=Fc(_.type,_.key,_.props,null,x.mode,S),S.ref=so(x,y,_),S.return=x,x=S)}return a(x);case Yi:e:{for(E=_.key;y!==null;){if(y.key===E)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){n(x,y.sibling),y=s(y,_.children||[]),y.return=x,x=y;break e}else{n(x,y);break}else t(x,y);y=y.sibling}y=lp(_,x.mode,S),y.return=x,x=y}return a(x);case Is:return E=_._init,b(x,y,E(_._payload),S)}if(mo(_))return g(x,y,_,S);if(Za(_))return v(x,y,_,S);ic(x,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(n(x,y.sibling),y=s(y,_),y.return=x,x=y):(n(x,y),y=op(_,x.mode,S),y.return=x,x=y),a(x)):n(x,y)}return b}var Ea=g1(!0),x1=g1(!1),uu=oi(null),du=null,ia=null,_h=null;function bh(){_h=ia=du=null}function wh(e){var t=uu.current;wt(uu),e._currentValue=t}function Mf(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 va(e,t){du=e,_h=ia=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(qn=!0),e.firstContext=null)}function wr(e){var t=e._currentValue;if(_h!==e)if(e={context:e,memoizedValue:t,next:null},ia===null){if(du===null)throw Error(ee(308));ia=e,du.dependencies={lanes:0,firstContext:e}}else ia=ia.next=e;return t}var Ei=null;function kh(e){Ei===null?Ei=[e]:Ei.push(e)}function v1(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,kh(t)):(n.next=s.next,s.next=n),t.interleaved=n,Ss(e,r)}function Ss(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 Fs=!1;function Sh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function y1(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 vs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Xs(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Je&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Ss(e,n)}return s=r.interleaved,s===null?(t.next=t,kh(r)):(t.next=s.next,s.next=t),r.interleaved=t,Ss(e,n)}function Tc(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,ch(e,n)}}function a0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:i,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 pu(e,t,n,r){var s=e.updateQueue;Fs=!1;var i=s.firstBaseUpdate,a=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,a===null?i=u:a.next=u,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==a&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var p=s.baseState;a=0,d=u=c=null,l=i;do{var f=l.lane,h=l.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(f=t,h=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){p=g.call(h,p,f);break e}p=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,f=typeof g=="function"?g.call(h,p,f):g,f==null)break e;p=Mt({},p,f);break e;case 2:Fs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=h,c=p):d=d.next=h,a|=f;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;f=l,l=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(c=p),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do a|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Oi|=a,e.lanes=a,e.memoizedState=p}}function o0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=np.transition;np.transition={};try{e(!1),t()}finally{ut=n,np.transition=r}}function O1(){return kr().memoizedState}function i5(e,t,n){var r=Zs(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},I1(e))F1(t,n);else if(n=v1(e,t,n,r),n!==null){var s=Un();Mr(n,e,r,s),B1(n,t,r)}}function a5(e,t,n){var r=Zs(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(I1(e))F1(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,n);if(s.hasEagerState=!0,s.eagerState=l,Ir(l,a)){var c=t.interleaved;c===null?(s.next=s,kh(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=v1(e,t,s,r),n!==null&&(s=Un(),Mr(n,e,r,s),B1(n,t,r))}}function I1(e){var t=e.alternate;return e===Dt||t!==null&&t===Dt}function F1(e,t){Eo=mu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function B1(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ch(e,n)}}var hu={readContext:wr,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useInsertionEffect:wn,useLayoutEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useMutableSource:wn,useSyncExternalStore:wn,useId:wn,unstable_isNewReconciler:!1},o5={readContext:wr,useCallback:function(e,t){return Wr().memoizedState=[e,t===void 0?null:t],e},useContext:wr,useEffect:c0,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Dc(4194308,4,A1.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Dc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Dc(4,2,e,t)},useMemo:function(e,t){var n=Wr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Wr();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=i5.bind(null,Dt,e),[r.memoizedState,e]},useRef:function(e){var t=Wr();return e={current:e},t.memoizedState=e},useState:l0,useDebugValue:Th,useDeferredValue:function(e){return Wr().memoizedState=e},useTransition:function(){var e=l0(!1),t=e[0];return e=s5.bind(null,e[1]),Wr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Dt,s=Wr();if(Nt){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),fn===null)throw Error(ee(349));Mi&30||k1(r,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,c0(E1.bind(null,r,i,e),[e]),r.flags|=2048,el(9,S1.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Wr(),t=fn.identifierPrefix;if(Nt){var n=xs,r=gs;n=(r&~(1<<32-Dr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Jo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Kr]=t,e[Qo]=r,Q1(e,t,!1,!1),t.stateNode=e;e:{switch(a=xf(n,r),n){case"dialog":bt("cancel",e),bt("close",e),s=r;break;case"iframe":case"object":case"embed":bt("load",e),s=r;break;case"video":case"audio":for(s=0;sNa&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304)}else{if(!r)if(e=fu(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),io(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Nt)return kn(t),null}else 2*Ht()-i.renderingStartTime>Na&&n!==1073741824&&(t.flags|=128,r=!0,io(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ht(),t.sibling=null,n=Tt.current,_t(Tt,r?n&1|2:n&1),t):(kn(t),null);case 22:case 23:return Fh(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?nr&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function h5(e,t){switch(vh(t),t.tag){case 1:return Gn(t.type)&&au(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ca(),wt(Wn),wt(Pn),jh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ch(t),null;case 13:if(wt(Tt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return wt(Tt),null;case 4:return Ca(),null;case 10:return wh(t.type._context),null;case 22:case 23:return Fh(),null;case 24:return null;default:return null}}var oc=!1,En=!1,g5=typeof WeakSet=="function"?WeakSet:Set,he=null;function aa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Bt(e,t,r)}else n.current=null}function Hf(e,t,n){try{n()}catch(r){Bt(e,t,r)}}var _0=!1;function x5(e,t){if(jf=nu,e=n1(),gh(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 s=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||s!==0&&p.nodeType!==3||(l=a+s),p!==i||r!==0&&p.nodeType!==3||(c=a+r),p.nodeType===3&&(a+=p.nodeValue.length),(h=p.firstChild)!==null;)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++u===s&&(l=a),f===i&&++d===r&&(c=a),(h=p.nextSibling)!==null)break;p=f,f=p.parentNode}p=h}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Nf={focusedElem:e,selectionRange:n},nu=!1,he=t;he!==null;)if(t=he,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,he=e;else for(;he!==null;){t=he;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 v=g.memoizedProps,b=g.memoizedState,x=t.stateNode,y=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Rr(t.type,v),b);x.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(S){Bt(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,he=e;break}he=t.return}return g=_0,_0=!1,g}function Co(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&Hf(t,n,i)}s=s.next}while(s!==r)}}function nd(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 qf(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 J1(e){var t=e.alternate;t!==null&&(e.alternate=null,J1(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Kr],delete t[Qo],delete t[Af],delete t[Zj],delete t[e5])),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 Z1(e){return e.tag===5||e.tag===3||e.tag===4}function b0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Z1(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 Wf(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=iu));else if(r!==4&&(e=e.child,e!==null))for(Wf(e,t,n),e=e.sibling;e!==null;)Wf(e,t,n),e=e.sibling}function Gf(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(Gf(e,t,n),e=e.sibling;e!==null;)Gf(e,t,n),e=e.sibling}var hn=null,Tr=!1;function Ds(e,t,n){for(n=n.child;n!==null;)ew(e,t,n),n=n.sibling}function ew(e,t,n){if(Xr&&typeof Xr.onCommitFiberUnmount=="function")try{Xr.onCommitFiberUnmount(Ku,n)}catch{}switch(n.tag){case 5:En||aa(n,t);case 6:var r=hn,s=Tr;hn=null,Ds(e,t,n),hn=r,Tr=s,hn!==null&&(Tr?(e=hn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):hn.removeChild(n.stateNode));break;case 18:hn!==null&&(Tr?(e=hn,n=n.stateNode,e.nodeType===8?Zd(e.parentNode,n):e.nodeType===1&&Zd(e,n),Ho(e)):Zd(hn,n.stateNode));break;case 4:r=hn,s=Tr,hn=n.stateNode.containerInfo,Tr=!0,Ds(e,t,n),hn=r,Tr=s;break;case 0:case 11:case 14:case 15:if(!En&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var i=s,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&Hf(n,t,a),s=s.next}while(s!==r)}Ds(e,t,n);break;case 1:if(!En&&(aa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Bt(n,t,l)}Ds(e,t,n);break;case 21:Ds(e,t,n);break;case 22:n.mode&1?(En=(r=En)||n.memoizedState!==null,Ds(e,t,n),En=r):Ds(e,t,n);break;default:Ds(e,t,n)}}function w0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new g5),t.forEach(function(r){var s=C5.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Nr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=a),r&=~i}if(r=s,r=Ht()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*y5(r/1960))-r,10e?16:e,Hs===null)var r=!1;else{if(e=Hs,Hs=null,vu=0,Je&6)throw Error(ee(331));var s=Je;for(Je|=4,he=e.current;he!==null;){var i=he,a=i.child;if(he.flags&16){var l=i.deletions;if(l!==null){for(var c=0;cHt()-Oh?Pi(e,0):Mh|=n),Kn(e,t)}function lw(e,t){t===0&&(e.mode&1?(t=Jl,Jl<<=1,!(Jl&130023424)&&(Jl=4194304)):t=1);var n=Un();e=Ss(e,t),e!==null&&(gl(e,t,n),Kn(e,n))}function E5(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),lw(e,n)}function C5(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),lw(e,n)}var cw;cw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Wn.current)qn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return qn=!1,f5(e,t,n);qn=!!(e.flags&131072)}else qn=!1,Nt&&t.flags&1048576&&f1(t,cu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mc(e,t),e=t.pendingProps;var s=ka(t,Pn.current);va(t,n),s=Ph(null,t,r,e,s,n);var i=Rh();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Gn(r)?(i=!0,ou(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Sh(t),s.updater=td,t.stateNode=s,s._reactInternals=t,If(t,r,e,n),t=Uf(null,t,r,!0,i,n)):(t.tag=0,Nt&&i&&xh(t),Fn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mc(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=N5(r),e=Rr(r,e),s){case 0:t=Bf(null,t,r,e,n);break e;case 1:t=x0(null,t,r,e,n);break e;case 11:t=h0(null,t,r,e,n);break e;case 14:t=g0(null,t,r,Rr(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),Bf(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),x0(e,t,r,s,n);case 3:e:{if(W1(t),e===null)throw Error(ee(387));r=t.pendingProps,i=t.memoizedState,s=i.element,y1(e,t),pu(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=ja(Error(ee(423)),t),t=v0(e,t,r,n,s);break e}else if(r!==s){s=ja(Error(ee(424)),t),t=v0(e,t,r,n,s);break e}else for(sr=Ys(t.stateNode.containerInfo.firstChild),ir=t,Nt=!0,Lr=null,n=x1(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sa(),r===s){t=Es(e,t,n);break e}Fn(e,t,r,n)}t=t.child}return t;case 5:return _1(t),e===null&&Df(t),r=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,a=s.children,Pf(r,s)?a=null:i!==null&&Pf(r,i)&&(t.flags|=32),q1(e,t),Fn(e,t,a,n),t.child;case 6:return e===null&&Df(t),null;case 13:return G1(e,t,n);case 4:return Eh(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ea(t,null,r,n):Fn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),h0(e,t,r,s,n);case 7:return Fn(e,t,t.pendingProps,n),t.child;case 8:return Fn(e,t,t.pendingProps.children,n),t.child;case 12:return Fn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,i=t.memoizedProps,a=s.value,_t(uu,r._currentValue),r._currentValue=a,i!==null)if(Ir(i.value,a)){if(i.children===s.children&&!Wn.current){t=Es(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=vs(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Mf(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ee(341));a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),Mf(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Fn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=wr(s),r=r(s),t.flags|=1,Fn(e,t,r,n),t.child;case 14:return r=t.type,s=Rr(r,t.pendingProps),s=Rr(r.type,s),g0(e,t,r,s,n);case 15:return $1(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Rr(r,s),Mc(e,t),t.tag=1,Gn(r)?(e=!0,ou(t)):e=!1,va(t,n),U1(t,r,s),If(t,r,s,n),Uf(null,t,r,!0,e,n);case 19:return K1(e,t,n);case 22:return H1(e,t,n)}throw Error(ee(156,t.tag))};function uw(e,t){return Ib(e,t)}function j5(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 _r(e,t,n,r){return new j5(e,t,n,r)}function Uh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function N5(e){if(typeof e=="function")return Uh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ih)return 11;if(e===ah)return 14}return 2}function ei(e,t){var n=e.alternate;return n===null?(n=_r(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 Fc(e,t,n,r,s,i){var a=2;if(r=e,typeof e=="function")Uh(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Xi:return Ri(n.children,s,i,t);case sh:a=8,s|=8;break;case of:return e=_r(12,n,t,s|2),e.elementType=of,e.lanes=i,e;case lf:return e=_r(13,n,t,s),e.elementType=lf,e.lanes=i,e;case cf:return e=_r(19,n,t,s),e.elementType=cf,e.lanes=i,e;case _b:return sd(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vb:a=10;break e;case yb:a=9;break e;case ih:a=11;break e;case ah:a=14;break e;case Is:a=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=_r(a,n,t,s),t.elementType=e,t.type=r,t.lanes=i,t}function Ri(e,t,n,r){return e=_r(7,e,r,t),e.lanes=n,e}function sd(e,t,n,r){return e=_r(22,e,r,t),e.elementType=_b,e.lanes=n,e.stateNode={isHidden:!1},e}function op(e,t,n){return e=_r(6,e,null,t),e.lanes=n,e}function lp(e,t,n){return t=_r(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function P5(e,t,n,r,s){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=zd(0),this.expirationTimes=zd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zd(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Vh(e,t,n,r,s,i,a,l,c){return e=new P5(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=_r(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Sh(i),e}function R5(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(mw)}catch(e){console.error(e)}}mw(),mb.exports=ur;var la=mb.exports,R0=la;sf.createRoot=R0.createRoot,sf.hydrateRoot=R0.hydrateRoot;/** + * @remix-run/router v1.23.1 + * + * 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 nl(){return nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function qh(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function O5(){return Math.random().toString(36).substr(2,8)}function T0(e,t){return{usr:e.state,key:e.key,idx:t}}function Jf(e,t,n,r){return n===void 0&&(n=null),nl({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||O5()})}function bu(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 Ua(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 I5(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:i=!1}=r,a=s.history,l=qs.Pop,c=null,u=d();u==null&&(u=0,a.replaceState(nl({},a.state,{idx:u}),""));function d(){return(a.state||{idx:null}).idx}function p(){l=qs.Pop;let b=d(),x=b==null?null:b-u;u=b,c&&c({action:l,location:v.location,delta:x})}function f(b,x){l=qs.Push;let y=Jf(v.location,b,x);u=d()+1;let _=T0(y,u),S=v.createHref(y);try{a.pushState(_,"",S)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;s.location.assign(S)}i&&c&&c({action:l,location:v.location,delta:1})}function h(b,x){l=qs.Replace;let y=Jf(v.location,b,x);u=d();let _=T0(y,u),S=v.createHref(y);a.replaceState(_,"",S),i&&c&&c({action:l,location:v.location,delta:0})}function g(b){let x=s.location.origin!=="null"?s.location.origin:s.location.href,y=typeof b=="string"?b:bu(b);return y=y.replace(/ $/,"%20"),Yt(x,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,x)}let v={get action(){return l},get location(){return e(s,a)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(A0,p),c=b,()=>{s.removeEventListener(A0,p),c=null}},createHref(b){return t(s,b)},createURL:g,encodeLocation(b){let x=g(b);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:h,go(b){return a.go(b)}};return v}var L0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(L0||(L0={}));function F5(e,t,n){return n===void 0&&(n="/"),B5(e,t,n)}function B5(e,t,n,r){let s=typeof t=="string"?Ua(t):t,i=Wh(s.pathname||"/",n);if(i==null)return null;let a=hw(e);U5(a);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};c.relativePath.startsWith("/")&&(Yt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ti([r,c.relativePath]),d=n.concat(c);i.children&&i.children.length>0&&(Yt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),hw(i.children,t,d,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:G5(u,i.index),routesMeta:d})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))s(i,a);else for(let c of gw(i.path))s(i,a,c)}),t}function gw(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return s?[i,""]:[i];let a=gw(r.join("/")),l=[];return l.push(...a.map(c=>c===""?i:[i,c].join("/"))),s&&l.push(...a),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function U5(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:K5(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const V5=/^:[\w-]+$/,z5=3,$5=2,H5=1,q5=10,W5=-2,D0=e=>e==="*";function G5(e,t){let n=e.split("/"),r=n.length;return n.some(D0)&&(r+=W5),t&&(r+=$5),n.filter(s=>!D0(s)).reduce((s,i)=>s+(V5.test(i)?z5:i===""?H5:q5),r)}function K5(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function Q5(e,t,n){let{routesMeta:r}=e,s={},i="/",a=[];for(let l=0;l{let{paramName:f,isOptional:h}=d;if(f==="*"){let v=l[p]||"";a=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:a,pattern:e}}function X5(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),qh(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function J5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qh(!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 Wh(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 Z5=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,eN=e=>Z5.test(e);function tN(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ua(e):e,i;if(n)if(eN(n))i=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),qh(!1,"Pathnames cannot have embedded double slashes - normalizing "+(a+" -> "+n))}n.startsWith("/")?i=M0(n.substring(1),"/"):i=M0(n,t)}else i=t;return{pathname:i,search:sN(r),hash:iN(s)}}function M0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function cp(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 nN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function xw(e,t){let n=nN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function vw(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ua(e):(s=nl({},e),Yt(!s.pathname||!s.pathname.includes("?"),cp("?","pathname","search",s)),Yt(!s.pathname||!s.pathname.includes("#"),cp("#","pathname","hash",s)),Yt(!s.search||!s.search.includes("#"),cp("#","search","hash",s)));let i=e===""||s.pathname==="",a=i?"/":s.pathname,l;if(a==null)l=n;else{let p=t.length-1;if(!r&&a.startsWith("..")){let f=a.split("/");for(;f[0]==="..";)f.shift(),p-=1;s.pathname=f.join("/")}l=p>=0?t[p]:"/"}let c=tN(s,l),u=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ti=e=>e.join("/").replace(/\/\/+/g,"/"),rN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),sN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,iN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function aN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const yw=["post","put","patch","delete"];new Set(yw);const oN=["get",...yw];new Set(oN);/** + * React Router v6.30.2 + * + * 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 rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),m.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=vw(u,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ti([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,a,i,e])}const dN=m.createContext(null);function pN(e){let t=m.useContext(Ps).outlet;return t&&m.createElement(dN.Provider,{value:e},t)}function ww(){let{matches:e}=m.useContext(Ps),t=e[e.length-1];return t?t.params:{}}function kw(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=m.useContext(zi),{matches:s}=m.useContext(Ps),{pathname:i}=bl(),a=JSON.stringify(xw(s,r.v7_relativeSplatPath));return m.useMemo(()=>vw(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function fN(e,t){return mN(e,t)}function mN(e,t,n,r){_l()||Yt(!1);let{navigator:s}=m.useContext(zi),{matches:i}=m.useContext(Ps),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let c=a?a.pathnameBase:"/";a&&a.route;let u=bl(),d;if(t){var p;let b=typeof t=="string"?Ua(t):t;c==="/"||(p=b.pathname)!=null&&p.startsWith(c)||Yt(!1),d=b}else d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(b.length).join("/")}let g=F5(e,{pathname:h}),v=yN(g&&g.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:ti([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:ti([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&v?m.createElement(cd.Provider,{value:{location:rl({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:qs.Pop}},v):v}function hN(){let e=kN(),t=aN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:s},n):null,null)}const gN=m.createElement(hN,null);class xN extends m.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?m.createElement(Ps.Provider,{value:this.props.routeContext},m.createElement(_w.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function vN(e){let{routeContext:t,match:n,children:r}=e,s=m.useContext(Gh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),m.createElement(Ps.Provider,{value:t},r)}function yN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let d=a.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Yt(!1),a=a.slice(0,Math.min(a.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((d,p,f)=>{let h,g=!1,v=null,b=null;n&&(h=l&&p.route.id?l[p.route.id]:void 0,v=p.route.errorElement||gN,c&&(u<0&&f===0?(EN("route-fallback"),g=!0,b=null):u===f&&(g=!0,b=p.route.hydrateFallbackElement||null)));let x=t.concat(a.slice(0,f+1)),y=()=>{let _;return h?_=v:g?_=b:p.route.Component?_=m.createElement(p.route.Component,null):p.route.element?_=p.route.element:_=d,m.createElement(vN,{match:p,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:_})};return n&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?m.createElement(xN,{location:n.location,revalidation:n.revalidation,component:v,error:h,children:y(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):y()},null)}var Sw=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Sw||{}),Ew=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}(Ew||{});function _N(e){let t=m.useContext(Gh);return t||Yt(!1),t}function bN(e){let t=m.useContext(lN);return t||Yt(!1),t}function wN(e){let t=m.useContext(Ps);return t||Yt(!1),t}function Cw(e){let t=wN(),n=t.matches[t.matches.length-1];return n.route.id||Yt(!1),n.route.id}function kN(){var e;let t=m.useContext(_w),n=bN(),r=Cw();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function SN(){let{router:e}=_N(Sw.UseNavigateStable),t=Cw(Ew.UseNavigateStable),n=m.useRef(!1);return bw(()=>{n.current=!0}),m.useCallback(function(s,i){i===void 0&&(i={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,rl({fromRouteId:t},i)))},[e,t])}const O0={};function EN(e,t,n){O0[e]||(O0[e]=!0)}function CN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function jN(e){return pN(e.context)}function _i(e){Yt(!1)}function NN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=qs.Pop,navigator:i,static:a=!1,future:l}=e;_l()&&Yt(!1);let c=t.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:c,navigator:i,static:a,future:rl({v7_relativeSplatPath:!1},l)}),[c,l,i,a]);typeof r=="string"&&(r=Ua(r));let{pathname:d="/",search:p="",hash:f="",state:h=null,key:g="default"}=r,v=m.useMemo(()=>{let b=Wh(d,c);return b==null?null:{location:{pathname:b,search:p,hash:f,state:h,key:g},navigationType:s}},[c,d,p,f,h,g,s]);return v==null?null:m.createElement(zi.Provider,{value:u},m.createElement(cd.Provider,{children:n,value:v}))}function PN(e){let{children:t,location:n}=e;return fN(Zf(t),n)}new Promise(()=>{});function Zf(e,t){t===void 0&&(t=[]);let n=[];return m.Children.forEach(e,(r,s)=>{if(!m.isValidElement(r))return;let i=[...t,s];if(r.type===m.Fragment){n.push.apply(n,Zf(r.props.children,i));return}r.type!==_i&&Yt(!1),!r.props.index||!r.props.children||Yt(!1);let a={id:r.props.id||i.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&&(a.children=Zf(r.props.children,i)),n.push(a)}),n}/** + * React Router DOM v6.30.2 + * + * 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 em(){return em=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function AN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function TN(e,t){return e.button===0&&(!t||t==="_self")&&!AN(e)}const LN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],DN="6";try{window.__reactRouterVersion=DN}catch{}const MN="startTransition",I0=S2[MN];function ON(e){let{basename:t,children:n,future:r,window:s}=e,i=m.useRef();i.current==null&&(i.current=M5({window:s,v5Compat:!0}));let a=i.current,[l,c]=m.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},d=m.useCallback(p=>{u&&I0?I0(()=>c(p)):c(p)},[c,u]);return m.useLayoutEffect(()=>a.listen(d),[a,d]),m.useEffect(()=>CN(r),[r]),m.createElement(NN,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:a,future:r})}const IN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",FN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wu=m.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:i,replace:a,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,f=RN(t,LN),{basename:h}=m.useContext(zi),g,v=!1;if(typeof u=="string"&&FN.test(u)&&(g=u,IN))try{let _=new URL(window.location.href),S=u.startsWith("//")?new URL(_.protocol+u):new URL(u),R=Wh(S.pathname,h);S.origin===_.origin&&R!=null?u=R+S.search+S.hash:v=!0}catch{}let b=cN(u,{relative:s}),x=BN(u,{replace:a,state:l,target:c,preventScrollReset:d,relative:s,viewTransition:p});function y(_){r&&r(_),_.defaultPrevented||x(_)}return m.createElement("a",em({},f,{href:g||b,onClick:v||i?r:y,ref:n,target:c}))});var F0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(F0||(F0={}));var B0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(B0||(B0={}));function BN(e,t){let{target:n,replace:r,state:s,preventScrollReset:i,relative:a,viewTransition:l}=t===void 0?{}:t,c=ud(),u=bl(),d=kw(e,{relative:a});return m.useCallback(p=>{if(TN(p,n)){p.preventDefault();let f=r!==void 0?r:bu(u)===bu(d);c(e,{replace:f,state:s,preventScrollReset:i,relative:a,viewTransition:l})}},[u,c,d,r,s,n,e,i,a,l])}let UN={data:""},VN=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||UN},zN=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,$N=/\/\*[^]*?\*\/| +/g,U0=/\n+/g,zs=(e,t)=>{let n="",r="",s="";for(let i in e){let a=e[i];i[0]=="@"?i[1]=="i"?n=i+" "+a+";":r+=i[1]=="f"?zs(a,i):i+"{"+zs(a,i[1]=="k"?"":t)+"}":typeof a=="object"?r+=zs(a,t?t.replace(/([^,])+/g,l=>i.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,c=>/&/.test(c)?c.replace(/&/g,l):l?l+" "+c:c)):i):a!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=zs.p?zs.p(i,a):i+":"+a+";")}return n+(t&&s?t+"{"+s+"}":s)+r},os={},jw=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+jw(e[n]);return t}return e},HN=(e,t,n,r,s)=>{let i=jw(e),a=os[i]||(os[i]=(c=>{let u=0,d=11;for(;u>>0;return"go"+d})(i));if(!os[a]){let c=i!==e?e:(u=>{let d,p,f=[{}];for(;d=zN.exec(u.replace($N,""));)d[4]?f.shift():d[3]?(p=d[3].replace(U0," ").trim(),f.unshift(f[0][p]=f[0][p]||{})):f[0][d[1]]=d[2].replace(U0," ").trim();return f[0]})(e);os[a]=zs(s?{["@keyframes "+a]:c}:c,n?"":"."+a)}let l=n&&os.g?os.g:null;return n&&(os.g=os[a]),((c,u,d,p)=>{p?u.data=u.data.replace(p,c):u.data.indexOf(c)===-1&&(u.data=d?c+u.data:u.data+c)})(os[a],t,r,l),a},qN=(e,t,n)=>e.reduce((r,s,i)=>{let a=t[i];if(a&&a.call){let l=a(n),c=l&&l.props&&l.props.className||/^go/.test(l)&&l;a=c?"."+c:l&&typeof l=="object"?l.props?"":zs(l,""):l===!1?"":l}return r+s+(a??"")},"");function dd(e){let t=this||{},n=e.call?e(t.p):e;return HN(n.unshift?n.raw?qN(n,[].slice.call(arguments,1),t.p):n.reduce((r,s)=>Object.assign(r,s&&s.call?s(t.p):s),{}):n,VN(t.target),t.g,t.o,t.k)}let Nw,tm,nm;dd.bind({g:1});let Cs=dd.bind({k:1});function WN(e,t,n,r){zs.p=t,Nw=e,tm=n,nm=r}function ci(e,t){let n=this||{};return function(){let r=arguments;function s(i,a){let l=Object.assign({},i),c=l.className||s.className;n.p=Object.assign({theme:tm&&tm()},l),n.o=/ *go\d+/.test(c),l.className=dd.apply(n,r)+(c?" "+c:"");let u=e;return e[0]&&(u=l.as||e,delete l.as),nm&&u[0]&&nm(l),Nw(u,l)}return s}}var GN=e=>typeof e=="function",ku=(e,t)=>GN(e)?e(t):e,KN=(()=>{let e=0;return()=>(++e).toString()})(),Pw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),QN=20,Kh="default",Rw=(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(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return Rw(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(a=>a.id===s||s===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+i}))}}},Bc=[],Aw={toasts:[],pausedAt:void 0,settings:{toastLimit:QN}},Qr={},Tw=(e,t=Kh)=>{Qr[t]=Rw(Qr[t]||Aw,e),Bc.forEach(([n,r])=>{n===t&&r(Qr[t])})},Lw=e=>Object.keys(Qr).forEach(t=>Tw(e,t)),YN=e=>Object.keys(Qr).find(t=>Qr[t].toasts.some(n=>n.id===e)),pd=(e=Kh)=>t=>{Tw(t,e)},XN={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},JN=(e={},t=Kh)=>{let[n,r]=m.useState(Qr[t]||Aw),s=m.useRef(Qr[t]);m.useEffect(()=>(s.current!==Qr[t]&&r(Qr[t]),Bc.push([t,r]),()=>{let a=Bc.findIndex(([l])=>l===t);a>-1&&Bc.splice(a,1)}),[t]);let i=n.toasts.map(a=>{var l,c,u;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((l=e[a.type])==null?void 0:l.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((c=e[a.type])==null?void 0:c.duration)||(e==null?void 0:e.duration)||XN[a.type],style:{...e.style,...(u=e[a.type])==null?void 0:u.style,...a.style}}});return{...n,toasts:i}},ZN=(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)||KN()}),wl=e=>(t,n)=>{let r=ZN(t,e,n);return pd(r.toasterId||YN(r.id))({type:2,toast:r}),r.id},sn=(e,t)=>wl("blank")(e,t);sn.error=wl("error");sn.success=wl("success");sn.loading=wl("loading");sn.custom=wl("custom");sn.dismiss=(e,t)=>{let n={type:3,toastId:e};t?pd(t)(n):Lw(n)};sn.dismissAll=e=>sn.dismiss(void 0,e);sn.remove=(e,t)=>{let n={type:4,toastId:e};t?pd(t)(n):Lw(n)};sn.removeAll=e=>sn.remove(void 0,e);sn.promise=(e,t,n)=>{let r=sn.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(s=>{let i=t.success?ku(t.success,s):void 0;return i?sn.success(i,{id:r,...n,...n==null?void 0:n.success}):sn.dismiss(r),s}).catch(s=>{let i=t.error?ku(t.error,s):void 0;i?sn.error(i,{id:r,...n,...n==null?void 0:n.error}):sn.dismiss(r)}),e};var eP=1e3,tP=(e,t="default")=>{let{toasts:n,pausedAt:r}=JN(e,t),s=m.useRef(new Map).current,i=m.useCallback((p,f=eP)=>{if(s.has(p))return;let h=setTimeout(()=>{s.delete(p),a({type:4,toastId:p})},f);s.set(p,h)},[]);m.useEffect(()=>{if(r)return;let p=Date.now(),f=n.map(h=>{if(h.duration===1/0)return;let g=(h.duration||0)+h.pauseDuration-(p-h.createdAt);if(g<0){h.visible&&sn.dismiss(h.id);return}return setTimeout(()=>sn.dismiss(h.id,t),g)});return()=>{f.forEach(h=>h&&clearTimeout(h))}},[n,r,t]);let a=m.useCallback(pd(t),[t]),l=m.useCallback(()=>{a({type:5,time:Date.now()})},[a]),c=m.useCallback((p,f)=>{a({type:1,toast:{id:p,height:f}})},[a]),u=m.useCallback(()=>{r&&a({type:6,time:Date.now()})},[r,a]),d=m.useCallback((p,f)=>{let{reverseOrder:h=!1,gutter:g=8,defaultPosition:v}=f||{},b=n.filter(_=>(_.position||v)===(p.position||v)&&_.height),x=b.findIndex(_=>_.id===p.id),y=b.filter((_,S)=>S_.visible).slice(...h?[y+1]:[0,y]).reduce((_,S)=>_+(S.height||0)+g,0)},[n]);return m.useEffect(()=>{n.forEach(p=>{if(p.dismissed)i(p.id,p.removeDelay);else{let f=s.get(p.id);f&&(clearTimeout(f),s.delete(p.id))}})},[n,i]),{toasts:n,handlers:{updateHeight:c,startPause:l,endPause:u,calculateOffset:d}}},nP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,rP=Cs` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,sP=Cs` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,iP=ci("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${nP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${rP} 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: ${sP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,aP=Cs` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,oP=ci("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: ${aP} 1s linear infinite; +`,lP=Cs` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,cP=Cs` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,uP=ci("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${e=>e.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${lP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${cP} 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; + } +`,dP=ci("div")` + position: absolute; +`,pP=ci("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,fP=Cs` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,mP=ci("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${fP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,hP=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?m.createElement(mP,null,t):t:n==="blank"?null:m.createElement(pP,null,m.createElement(oP,{...r}),n!=="loading"&&m.createElement(dP,null,n==="error"?m.createElement(iP,{...r}):m.createElement(uP,{...r})))},gP=e=>` +0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,xP=e=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} +`,vP="0%{opacity:0;} 100%{opacity:1;}",yP="0%{opacity:1;} 100%{opacity:0;}",_P=ci("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; +`,bP=ci("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,wP=(e,t)=>{let n=e.includes("top")?1:-1,[r,s]=Pw()?[vP,yP]:[gP(n),xP(n)];return{animation:t?`${Cs(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Cs(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},kP=m.memo(({toast:e,position:t,style:n,children:r})=>{let s=e.height?wP(e.position||t||"top-center",e.visible):{opacity:0},i=m.createElement(hP,{toast:e}),a=m.createElement(bP,{...e.ariaProps},ku(e.message,e));return m.createElement(_P,{className:e.className,style:{...s,...n,...e.style}},typeof r=="function"?r({icon:i,message:a}):m.createElement(m.Fragment,null,i,a))});WN(m.createElement);var SP=({id:e,className:t,style:n,onHeightUpdate:r,children:s})=>{let i=m.useCallback(a=>{if(a){let l=()=>{let c=a.getBoundingClientRect().height;r(e,c)};l(),new MutationObserver(l).observe(a,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return m.createElement("div",{ref:i,className:t,style:n},s)},EP=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:Pw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...s}},CP=dd` + z-index: 9999; + > * { + pointer-events: auto; + } +`,uc=16,jP=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:s,toasterId:i,containerStyle:a,containerClassName:l})=>{let{toasts:c,handlers:u}=tP(n,i);return m.createElement("div",{"data-rht-toaster":i||"",style:{position:"fixed",zIndex:9999,top:uc,left:uc,right:uc,bottom:uc,pointerEvents:"none",...a},className:l,onMouseEnter:u.startPause,onMouseLeave:u.endPause},c.map(d=>{let p=d.position||t,f=u.calculateOffset(d,{reverseOrder:e,gutter:r,defaultPosition:t}),h=EP(p,f);return m.createElement(SP,{id:d.id,key:d.id,onHeightUpdate:u.updateHeight,className:d.visible?CP:"",style:h},d.type==="custom"?ku(d.message,d):s?s(d):m.createElement(kP,{toast:d,position:p}))}))},$e=sn;const Qh=m.createContext({});function Yh(e){const t=m.useRef(null);return t.current===null&&(t.current=e()),t.current}const fd=m.createContext(null),Xh=m.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class NP extends m.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function PP({children:e,isPresent:t}){const n=m.useId(),r=m.useRef(null),s=m.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=m.useContext(Xh);return m.useInsertionEffect(()=>{const{width:a,height:l,top:c,left:u}=s.current;if(t||!r.current||!a||!l)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${a}px !important; + height: ${l}px !important; + top: ${c}px !important; + left: ${u}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),o.jsx(NP,{isPresent:t,childRef:r,sizeRef:s,children:m.cloneElement(e,{ref:r})})}const RP=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a})=>{const l=Yh(AP),c=m.useId(),u=m.useCallback(p=>{l.set(p,!0);for(const f of l.values())if(!f)return;r&&r()},[l,r]),d=m.useMemo(()=>({id:c,initial:t,isPresent:n,custom:s,onExitComplete:u,register:p=>(l.set(p,!1),()=>l.delete(p))}),i?[Math.random(),u]:[n,u]);return m.useMemo(()=>{l.forEach((p,f)=>l.set(f,!1))},[n]),m.useEffect(()=>{!n&&!l.size&&r&&r()},[n]),a==="popLayout"&&(e=o.jsx(PP,{isPresent:n,children:e})),o.jsx(fd.Provider,{value:d,children:e})};function AP(){return new Map}function Dw(e=!0){const t=m.useContext(fd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=m.useId();m.useEffect(()=>{e&&s(i)},[e]);const a=m.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const dc=e=>e.key||"";function V0(e){const t=[];return m.Children.forEach(e,n=>{m.isValidElement(n)&&t.push(n)}),t}const Jh=typeof window<"u",Mw=Jh?m.useLayoutEffect:m.useEffect,rm=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1})=>{const[l,c]=Dw(a),u=m.useMemo(()=>V0(e),[e]),d=a&&!l?[]:u.map(dc),p=m.useRef(!0),f=m.useRef(u),h=Yh(()=>new Map),[g,v]=m.useState(u),[b,x]=m.useState(u);Mw(()=>{p.current=!1,f.current=u;for(let S=0;S{const R=dc(S),E=a&&!l?!1:u===b||d.includes(R),A=()=>{if(h.has(R))h.set(R,!0);else return;let D=!0;h.forEach(z=>{z||(D=!1)}),D&&(_==null||_(),x(f.current),a&&(c==null||c()),r&&r())};return o.jsx(RP,{isPresent:E,initial:!p.current||n?void 0:!1,custom:E?void 0:t,presenceAffectsLayout:s,mode:i,onExitComplete:E?void 0:A,children:S},R)})})},ar=e=>e;let Ow=ar;function Zh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Pa=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},ys=e=>e*1e3,_s=e=>e/1e3,TP={useManualTiming:!1};function LP(e){let t=new Set,n=new Set,r=!1,s=!1;const i=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,d=!1,p=!1)=>{const h=p&&r?t:n;return d&&i.add(u),h.has(u)||h.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(a=u,r){s=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,s&&(s=!1,c.process(u))}};return c}const pc=["read","resolveKeyframes","update","preRender","render","postRender"],DP=40;function Iw(e,t){let n=!1,r=!0;const s={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,a=pc.reduce((x,y)=>(x[y]=LP(i),x),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:p,postRender:f}=a,h=()=>{const x=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(x-s.timestamp,DP),1),s.timestamp=x,s.isProcessing=!0,l.process(s),c.process(s),u.process(s),d.process(s),p.process(s),f.process(s),s.isProcessing=!1,n&&t&&(r=!1,e(h))},g=()=>{n=!0,r=!0,s.isProcessing||e(h)};return{schedule:pc.reduce((x,y)=>{const _=a[y];return x[y]=(S,R=!1,E=!1)=>(n||g(),_.schedule(S,R,E)),x},{}),cancel:x=>{for(let y=0;yz0[e].some(n=>!!t[n])};function MP(e){for(const t in e)Ra[t]={...Ra[t],...e[t]}}const OP=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Su(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||OP.has(e)}let Bw=e=>!Su(e);function IP(e){e&&(Bw=t=>t.startsWith("on")?!Su(t):e(t))}try{IP(require("@emotion/is-prop-valid").default)}catch{}function FP(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(Bw(s)||n===!0&&Su(s)||!t&&!Su(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function BP(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,s)=>s==="create"?e:(t.has(s)||t.set(s,e(s)),t.get(s))})}const md=m.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function hd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const eg=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],tg=["initial",...eg];function gd(e){return hd(e.animate)||tg.some(t=>sl(e[t]))}function Uw(e){return!!(gd(e)||e.variants)}function UP(e,t){if(gd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function VP(e){const{initial:t,animate:n}=UP(e,m.useContext(md));return m.useMemo(()=>({initial:t,animate:n}),[$0(t),$0(n)])}function $0(e){return Array.isArray(e)?e.join(" "):e}const zP=Symbol.for("motionComponentSymbol");function ca(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function $P(e,t,n){return m.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ca(n)&&(n.current=r))},[t])}const ng=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),HP="framerAppearId",Vw="data-"+ng(HP),{schedule:rg}=Iw(queueMicrotask,!1),zw=m.createContext({});function qP(e,t,n,r,s){var i,a;const{visualElement:l}=m.useContext(md),c=m.useContext(Fw),u=m.useContext(fd),d=m.useContext(Xh).reducedMotion,p=m.useRef(null);r=r||c.renderer,!p.current&&r&&(p.current=r(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const f=p.current,h=m.useContext(zw);f&&!f.projection&&s&&(f.type==="html"||f.type==="svg")&&WP(p.current,n,s,h);const g=m.useRef(!1);m.useInsertionEffect(()=>{f&&g.current&&f.update(n,u)});const v=n[Vw],b=m.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((a=window.MotionHasOptimisedAnimation)===null||a===void 0?void 0:a.call(window,v)));return Mw(()=>{f&&(g.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),rg.render(f.render),b.current&&f.animationState&&f.animationState.animateChanges())}),m.useEffect(()=>{f&&(!b.current&&f.animationState&&f.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{var x;(x=window.MotionHandoffMarkAsComplete)===null||x===void 0||x.call(window,v)}),b.current=!1))}),f}function WP(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:$w(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||l&&ca(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,layoutScroll:c,layoutRoot:u})}function $w(e){if(e)return e.options.allowProjection!==!1?e.projection:$w(e.parent)}function GP({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){var i,a;e&&MP(e);function l(u,d){let p;const f={...m.useContext(Xh),...u,layoutId:KP(u)},{isStatic:h}=f,g=VP(u),v=r(u,h);if(!h&&Jh){QP();const b=YP(f);p=b.MeasureLayout,g.visualElement=qP(s,v,f,t,b.ProjectionNode)}return o.jsxs(md.Provider,{value:g,children:[p&&g.visualElement?o.jsx(p,{visualElement:g.visualElement,...f}):null,n(s,u,$P(v,g.visualElement,d),v,h,g.visualElement)]})}l.displayName=`motion.${typeof s=="string"?s:`create(${(a=(i=s.displayName)!==null&&i!==void 0?i:s.name)!==null&&a!==void 0?a:""})`}`;const c=m.forwardRef(l);return c[zP]=s,c}function KP({layoutId:e}){const t=m.useContext(Qh).id;return t&&e!==void 0?t+"-"+e:e}function QP(e,t){m.useContext(Fw).strict}function YP(e){const{drag:t,layout:n}=Ra;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const XP=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function sg(e){return typeof e!="string"||e.includes("-")?!1:!!(XP.indexOf(e)>-1||/[A-Z]/u.test(e))}function H0(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function ig(e,t,n,r){if(typeof t=="function"){const[s,i]=H0(r);t=t(n!==void 0?n:e.custom,s,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[s,i]=H0(r);t=t(n!==void 0?n:e.custom,s,i)}return t}const sm=e=>Array.isArray(e),JP=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),ZP=e=>sm(e)?e[e.length-1]||0:e,jn=e=>!!(e&&e.getVelocity);function Uc(e){const t=jn(e)?e.get():e;return JP(t)?t.toValue():t}function eR({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,s,i){const a={latestValues:tR(r,s,i,e),renderState:t()};return n&&(a.onMount=l=>n({props:r,current:l,...a}),a.onUpdate=l=>n(l)),a}const Hw=e=>(t,n)=>{const r=m.useContext(md),s=m.useContext(fd),i=()=>eR(e,t,r,s);return n?i():Yh(i)};function tR(e,t,n,r){const s={},i=r(e,{});for(const f in i)s[f]=Uc(i[f]);let{initial:a,animate:l}=e;const c=gd(e),u=Uw(e);t&&u&&!c&&e.inherit!==!1&&(a===void 0&&(a=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||a===!1;const p=d?l:a;if(p&&typeof p!="boolean"&&!hd(p)){const f=Array.isArray(p)?p:[p];for(let h=0;ht=>typeof t=="string"&&t.startsWith(e),Ww=qw("--"),nR=qw("var(--"),ag=e=>nR(e)?rR.test(e.split("/*")[0].trim()):!1,rR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Gw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,js=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},il={...za,transform:e=>js(0,1,e)},fc={...za,default:1},kl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Os=kl("deg"),Zr=kl("%"),Re=kl("px"),sR=kl("vh"),iR=kl("vw"),q0={...Zr,parse:e=>Zr.parse(e)/100,transform:e=>Zr.transform(e*100)},aR={borderWidth:Re,borderTopWidth:Re,borderRightWidth:Re,borderBottomWidth:Re,borderLeftWidth:Re,borderRadius:Re,radius:Re,borderTopLeftRadius:Re,borderTopRightRadius:Re,borderBottomRightRadius:Re,borderBottomLeftRadius:Re,width:Re,maxWidth:Re,height:Re,maxHeight:Re,top:Re,right:Re,bottom:Re,left:Re,padding:Re,paddingTop:Re,paddingRight:Re,paddingBottom:Re,paddingLeft:Re,margin:Re,marginTop:Re,marginRight:Re,marginBottom:Re,marginLeft:Re,backgroundPositionX:Re,backgroundPositionY:Re},oR={rotate:Os,rotateX:Os,rotateY:Os,rotateZ:Os,scale:fc,scaleX:fc,scaleY:fc,scaleZ:fc,skew:Os,skewX:Os,skewY:Os,distance:Re,translateX:Re,translateY:Re,translateZ:Re,x:Re,y:Re,z:Re,perspective:Re,transformPerspective:Re,opacity:il,originX:q0,originY:q0,originZ:Re},W0={...za,transform:Math.round},og={...aR,...oR,zIndex:W0,size:Re,fillOpacity:il,strokeOpacity:il,numOctaves:W0},lR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},cR=Va.length;function uR(e,t,n){let r="",s=!0;for(let i=0;i({style:{},transform:{},transformOrigin:{},vars:{}}),Kw=()=>({...ug(),attrs:{}}),dg=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Qw(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const i in n)e.style.setProperty(i,n[i])}const Yw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Xw(e,t,n,r){Qw(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(Yw.has(s)?s:ng(s),t.attrs[s])}const Eu={};function hR(e){Object.assign(Eu,e)}function Jw(e,{layout:t,layoutId:n}){return $i.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Eu[e]||e==="opacity")}function pg(e,t,n){var r;const{style:s}=e,i={};for(const a in s)(jn(s[a])||t.style&&jn(t.style[a])||Jw(a,e)||((r=n==null?void 0:n.getValue(a))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(i[a]=s[a]);return i}function Zw(e,t,n){const r=pg(e,t,n);for(const s in e)if(jn(e[s])||jn(t[s])){const i=Va.indexOf(s)!==-1?"attr"+s.charAt(0).toUpperCase()+s.substring(1):s;r[i]=e[s]}return r}function gR(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const K0=["x","y","width","height","cx","cy","r"],xR={useVisualState:Hw({scrapeMotionValuesFromProps:Zw,createRenderState:Kw,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:s})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in s)if($i.has(l)){i=!0;break}}if(!i)return;let a=!t;if(t)for(let l=0;l{gR(n,r),kt.render(()=>{cg(r,s,dg(n.tagName),e.transformTemplate),Xw(n,r)})})}})},vR={useVisualState:Hw({scrapeMotionValuesFromProps:pg,createRenderState:ug})};function ek(e,t,n){for(const r in t)!jn(t[r])&&!Jw(r,n)&&(e[r]=t[r])}function yR({transformTemplate:e},t){return m.useMemo(()=>{const n=ug();return lg(n,t,e),Object.assign({},n.vars,n.style)},[t])}function _R(e,t){const n=e.style||{},r={};return ek(r,n,e),Object.assign(r,yR(e,t)),r}function bR(e,t){const n={},r=_R(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function wR(e,t,n,r){const s=m.useMemo(()=>{const i=Kw();return cg(i,t,dg(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};ek(i,e.style,e),s.style={...i,...s.style}}return s}function kR(e=!1){return(n,r,s,{latestValues:i},a)=>{const c=(sg(n)?wR:bR)(r,i,a,n),u=FP(r,typeof n=="string",e),d=n!==m.Fragment?{...u,...c,ref:s}:{},{children:p}=r,f=m.useMemo(()=>jn(p)?p.get():p,[p]);return m.createElement(n,{...d,children:f})}}function SR(e,t){return function(r,{forwardMotionProps:s}={forwardMotionProps:!1}){const a={...sg(r)?xR:vR,preloadedFeatures:e,useRender:kR(s),createVisualElement:t,Component:r};return GP(a)}}function tk(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class CR{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(ER()&&s.attachTimeline)return s.attachTimeline(t);if(typeof n=="function")return n(s)});return()=>{r.forEach((s,i)=>{s&&s(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class jR extends CR{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function fg(e,t){return e?e[t]||e.default||e:void 0}const im=2e4;function nk(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=im?1/0:t}function mg(e){return typeof e=="function"}function Q0(e,t){e.timeline=t,e.onfinish=null}const hg=e=>Array.isArray(e)&&typeof e[0]=="number",NR={linearEasing:void 0};function PR(e,t){const n=Zh(e);return()=>{var r;return(r=NR[t])!==null&&r!==void 0?r:n()}}const Cu=PR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),rk=(e,t,n=10)=>{let r="";const s=Math.max(Math.round(t/n),2);for(let i=0;i`cubic-bezier(${e}, ${t}, ${n}, ${r})`,am={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:xo([0,.65,.55,1]),circOut:xo([.55,0,1,.45]),backIn:xo([.31,.01,.66,-.59]),backOut:xo([.33,1.53,.69,.99])};function ik(e,t){if(e)return typeof e=="function"&&Cu()?rk(e,t):hg(e)?xo(e):Array.isArray(e)?e.map(n=>ik(n,t)||am.easeOut):am[e]}const Pr={x:!1,y:!1};function ak(){return Pr.x||Pr.y}function RR(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let s=document;const i=(r=void 0)!==null&&r!==void 0?r:s.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function ok(e,t){const n=RR(e),r=new AbortController,s={passive:!0,...t,signal:r.signal};return[n,s,()=>r.abort()]}function Y0(e){return t=>{t.pointerType==="touch"||ak()||e(t)}}function AR(e,t,n={}){const[r,s,i]=ok(e,n),a=Y0(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=Y0(p=>{u(p),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,s)});return r.forEach(l=>{l.addEventListener("pointerenter",a,s)}),i}const lk=(e,t)=>t?e===t?!0:lk(e,t.parentElement):!1,gg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,TR=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function LR(e){return TR.has(e.tagName)||e.tabIndex!==-1}const vo=new WeakSet;function X0(e){return t=>{t.key==="Enter"&&e(t)}}function dp(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const DR=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=X0(()=>{if(vo.has(n))return;dp(n,"down");const s=X0(()=>{dp(n,"up")}),i=()=>dp(n,"cancel");n.addEventListener("keyup",s,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function J0(e){return gg(e)&&!ak()}function MR(e,t,n={}){const[r,s,i]=ok(e,n),a=l=>{const c=l.currentTarget;if(!J0(l)||vo.has(c))return;vo.add(c);const u=t(l),d=(h,g)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),!(!J0(h)||!vo.has(c))&&(vo.delete(c),typeof u=="function"&&u(h,{success:g}))},p=h=>{d(h,n.useGlobalTarget||lk(c,h.target))},f=h=>{d(h,!1)};window.addEventListener("pointerup",p,s),window.addEventListener("pointercancel",f,s)};return r.forEach(l=>{!LR(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",a,s),l.addEventListener("focus",u=>DR(u,s),s)}),i}function OR(e){return e==="x"||e==="y"?Pr[e]?null:(Pr[e]=!0,()=>{Pr[e]=!1}):Pr.x||Pr.y?null:(Pr.x=Pr.y=!0,()=>{Pr.x=Pr.y=!1})}const ck=new Set(["width","height","top","left","right","bottom",...Va]);let Vc;function IR(){Vc=void 0}const es={now:()=>(Vc===void 0&&es.set(gn.isProcessing||TP.useManualTiming?gn.timestamp:performance.now()),Vc),set:e=>{Vc=e,queueMicrotask(IR)}};function xg(e,t){e.indexOf(t)===-1&&e.push(t)}function vg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class yg{constructor(){this.subscriptions=[]}add(t){return xg(this.subscriptions,t),()=>vg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let i=0;i!isNaN(parseFloat(e));class BR{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,s=!0)=>{const i=es.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=es.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=FR(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new yg);const r=this.events[t].add(n);return t==="change"?()=>{r(),kt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=es.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Z0)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Z0);return uk(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new BR(e,t)}function UR(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function VR(e,t){const n=xd(e,t);let{transitionEnd:r={},transition:s={},...i}=n||{};i={...i,...r};for(const a in i){const l=ZP(i[a]);UR(e,a,l)}}function zR(e){return!!(jn(e)&&e.add)}function om(e,t){const n=e.getValue("willChange");if(zR(n))return n.add(t)}function dk(e){return e.props[Vw]}const pk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,$R=1e-7,HR=12;function qR(e,t,n,r,s){let i,a,l=0;do a=t+(n-t)/2,i=pk(a,r,s)-e,i>0?n=a:t=a;while(Math.abs(i)>$R&&++lqR(i,0,1,e,n);return i=>i===0||i===1?i:pk(s(i),t,r)}const fk=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,mk=e=>t=>1-e(1-t),hk=Sl(.33,1.53,.69,.99),_g=mk(hk),gk=fk(_g),xk=e=>(e*=2)<1?.5*_g(e):.5*(2-Math.pow(2,-10*(e-1))),bg=e=>1-Math.sin(Math.acos(e)),vk=mk(bg),yk=fk(bg),_k=e=>/^0[^.\s]+$/u.test(e);function WR(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||_k(e):!0}const Po=e=>Math.round(e*1e5)/1e5,wg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function GR(e){return e==null}const KR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,kg=(e,t)=>n=>!!(typeof n=="string"&&KR.test(n)&&n.startsWith(e)||t&&!GR(n)&&Object.prototype.hasOwnProperty.call(n,t)),bk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[s,i,a,l]=r.match(wg);return{[e]:parseFloat(s),[t]:parseFloat(i),[n]:parseFloat(a),alpha:l!==void 0?parseFloat(l):1}},QR=e=>js(0,255,e),pp={...za,transform:e=>Math.round(QR(e))},ji={test:kg("rgb","red"),parse:bk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+pp.transform(e)+", "+pp.transform(t)+", "+pp.transform(n)+", "+Po(il.transform(r))+")"};function YR(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const lm={test:kg("#"),parse:YR,transform:ji.transform},ua={test:kg("hsl","hue"),parse:bk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Zr.transform(Po(t))+", "+Zr.transform(Po(n))+", "+Po(il.transform(r))+")"},Sn={test:e=>ji.test(e)||lm.test(e)||ua.test(e),parse:e=>ji.test(e)?ji.parse(e):ua.test(e)?ua.parse(e):lm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ji.transform(e):ua.transform(e)},XR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function JR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(wg))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(XR))===null||n===void 0?void 0:n.length)||0)>0}const wk="number",kk="color",ZR="var",eA="var(",ev="${}",tA=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ol(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},s=[];let i=0;const l=t.replace(tA,c=>(Sn.test(c)?(r.color.push(i),s.push(kk),n.push(Sn.parse(c))):c.startsWith(eA)?(r.var.push(i),s.push(ZR),n.push(c)):(r.number.push(i),s.push(wk),n.push(parseFloat(c))),++i,ev)).split(ev);return{values:n,split:l,indexes:r,types:s}}function Sk(e){return ol(e).values}function Ek(e){const{split:t,types:n}=ol(e),r=t.length;return s=>{let i="";for(let a=0;atypeof e=="number"?0:e;function rA(e){const t=Sk(e);return Ek(e)(t.map(nA))}const ii={test:JR,parse:Sk,createTransformer:Ek,getAnimatableNone:rA},sA=new Set(["brightness","contrast","saturate","opacity"]);function iA(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(wg)||[];if(!r)return e;const s=n.replace(r,"");let i=sA.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+s+")"}const aA=/\b([a-z-]*)\(.*?\)/gu,cm={...ii,getAnimatableNone:e=>{const t=e.match(aA);return t?t.map(iA).join(" "):e}},oA={...og,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:cm,WebkitFilter:cm},Sg=e=>oA[e];function Ck(e,t){let n=Sg(e);return n!==cm&&(n=ii),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const lA=new Set(["auto","none","0"]);function cA(e,t,n){let r=0,s;for(;re===za||e===Re,nv=(e,t)=>parseFloat(e.split(", ")[t]),rv=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/u);if(s)return nv(s[1],t);{const i=r.match(/^matrix\((.+)\)$/u);return i?nv(i[1],e):0}},uA=new Set(["x","y","z"]),dA=Va.filter(e=>!uA.has(e));function pA(e){const t=[];return dA.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Aa={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:rv(4,13),y:rv(5,14)};Aa.translateX=Aa.x;Aa.translateY=Aa.y;const Ai=new Set;let um=!1,dm=!1;function jk(){if(dm){const e=Array.from(Ai).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const s=pA(r);s.length&&(n.set(r,s),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const s=n.get(r);s&&s.forEach(([i,a])=>{var l;(l=r.getValue(i))===null||l===void 0||l.set(a)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}dm=!1,um=!1,Ai.forEach(e=>e.complete()),Ai.clear()}function Nk(){Ai.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(dm=!0)})}function fA(){Nk(),jk()}class Eg{constructor(t,n,r,s,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=s,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ai.add(this),um||(um=!0,kt.read(Nk),kt.resolveKeyframes(jk))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:s}=this;for(let i=0;i/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),mA=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function hA(e){const t=mA.exec(e);if(!t)return[,];const[,n,r,s]=t;return[`--${n??r}`,s]}function Rk(e,t,n=1){const[r,s]=hA(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const a=i.trim();return Pk(a)?parseFloat(a):a}return ag(s)?Rk(s,t,n+1):s}const Ak=e=>t=>t.test(e),gA={test:e=>e==="auto",parse:e=>e},Tk=[za,Re,Zr,Os,iR,sR,gA],sv=e=>Tk.find(Ak(e));class Lk extends Eg{constructor(t,n,r,s,i){super(t,n,r,s,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const iv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ii.test(e)||e==="0")&&!e.startsWith("url("));function xA(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function vd(e,{repeat:t,repeatType:n="loop"},r){const s=e.filter(yA),i=t&&n!=="loop"&&t%2===1?0:s.length-1;return!i||r===void 0?s[i]:r}const _A=40;class Dk{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:s=0,repeatDelay:i=0,repeatType:a="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=es.now(),this.options={autoplay:t,delay:n,type:r,repeat:s,repeatDelay:i,repeatType:a,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>_A?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&fA(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=es.now(),this.hasAttemptedResolve=!0;const{name:r,type:s,velocity:i,delay:a,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!vA(t,r,s,i))if(a)this.options.duration=0;else{c&&c(vd(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Lt=(e,t,n)=>e+(t-e)*n;function fp(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function bA({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,i=0,a=0;if(!t)s=i=a=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;s=fp(c,l,e+1/3),i=fp(c,l,e),a=fp(c,l,e-1/3)}return{red:Math.round(s*255),green:Math.round(i*255),blue:Math.round(a*255),alpha:r}}function ju(e,t){return n=>n>0?t:e}const mp=(e,t,n)=>{const r=e*e,s=n*(t*t-r)+r;return s<0?0:Math.sqrt(s)},wA=[lm,ji,ua],kA=e=>wA.find(t=>t.test(e));function av(e){const t=kA(e);if(!t)return!1;let n=t.parse(e);return t===ua&&(n=bA(n)),n}const ov=(e,t)=>{const n=av(e),r=av(t);if(!n||!r)return ju(e,t);const s={...n};return i=>(s.red=mp(n.red,r.red,i),s.green=mp(n.green,r.green,i),s.blue=mp(n.blue,r.blue,i),s.alpha=Lt(n.alpha,r.alpha,i),ji.transform(s))},SA=(e,t)=>n=>t(e(n)),El=(...e)=>e.reduce(SA),pm=new Set(["none","hidden"]);function EA(e,t){return pm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function CA(e,t){return n=>Lt(e,t,n)}function Cg(e){return typeof e=="number"?CA:typeof e=="string"?ag(e)?ju:Sn.test(e)?ov:PA:Array.isArray(e)?Mk:typeof e=="object"?Sn.test(e)?ov:jA:ju}function Mk(e,t){const n=[...e],r=n.length,s=e.map((i,a)=>Cg(i)(i,t[a]));return i=>{for(let a=0;a{for(const i in r)n[i]=r[i](s);return n}}function NA(e,t){var n;const r=[],s={color:0,var:0,number:0};for(let i=0;i{const n=ii.createTransformer(t),r=ol(e),s=ol(t);return r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length?pm.has(e)&&!s.values.length||pm.has(t)&&!r.values.length?EA(e,t):El(Mk(NA(r,s),s.values),n):ju(e,t)};function Ok(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Lt(e,t,n):Cg(e)(e,t)}const RA=5;function Ik(e,t,n){const r=Math.max(t-RA,0);return uk(n-e(r),t-r)}const Ft={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},hp=.001;function AA({duration:e=Ft.duration,bounce:t=Ft.bounce,velocity:n=Ft.velocity,mass:r=Ft.mass}){let s,i,a=1-t;a=js(Ft.minDamping,Ft.maxDamping,a),e=js(Ft.minDuration,Ft.maxDuration,_s(e)),a<1?(s=u=>{const d=u*a,p=d*e,f=d-n,h=fm(u,a),g=Math.exp(-p);return hp-f/h*g},i=u=>{const p=u*a*e,f=p*n+n,h=Math.pow(a,2)*Math.pow(u,2)*e,g=Math.exp(-p),v=fm(Math.pow(u,2),a);return(-s(u)+hp>0?-1:1)*((f-h)*g)/v}):(s=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-hp+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=LA(s,i,l);if(e=ys(e),isNaN(c))return{stiffness:Ft.stiffness,damping:Ft.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:a*2*Math.sqrt(r*u),duration:e}}}const TA=12;function LA(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function OA(e){let t={velocity:Ft.velocity,stiffness:Ft.stiffness,damping:Ft.damping,mass:Ft.mass,isResolvedFromDuration:!1,...e};if(!lv(e,MA)&&lv(e,DA))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),s=r*r,i=2*js(.05,1,1-(e.bounce||0))*Math.sqrt(s);t={...t,mass:Ft.mass,stiffness:s,damping:i}}else{const n=AA(e);t={...t,...n,mass:Ft.mass},t.isResolvedFromDuration=!0}return t}function Fk(e=Ft.visualDuration,t=Ft.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:s}=n;const i=n.keyframes[0],a=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:h}=OA({...n,velocity:-_s(n.velocity||0)}),g=f||0,v=u/(2*Math.sqrt(c*d)),b=a-i,x=_s(Math.sqrt(c/d)),y=Math.abs(b)<5;r||(r=y?Ft.restSpeed.granular:Ft.restSpeed.default),s||(s=y?Ft.restDelta.granular:Ft.restDelta.default);let _;if(v<1){const R=fm(x,v);_=E=>{const A=Math.exp(-v*x*E);return a-A*((g+v*x*b)/R*Math.sin(R*E)+b*Math.cos(R*E))}}else if(v===1)_=R=>a-Math.exp(-x*R)*(b+(g+x*b)*R);else{const R=x*Math.sqrt(v*v-1);_=E=>{const A=Math.exp(-v*x*E),D=Math.min(R*E,300);return a-A*((g+v*x*b)*Math.sinh(D)+R*b*Math.cosh(D))/R}}const S={calculatedDuration:h&&p||null,next:R=>{const E=_(R);if(h)l.done=R>=p;else{let A=0;v<1&&(A=R===0?ys(g):Ik(_,R,E));const D=Math.abs(A)<=r,z=Math.abs(a-E)<=s;l.done=D&&z}return l.value=l.done?a:E,l},toString:()=>{const R=Math.min(nk(S),im),E=rk(A=>S.next(R*A).value,R,30);return R+"ms "+E}};return S}function cv({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:i=500,modifyTarget:a,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},h=D=>l!==void 0&&Dc,g=D=>l===void 0?c:c===void 0||Math.abs(l-D)-v*Math.exp(-D/r),_=D=>x+y(D),S=D=>{const z=y(D),j=_(D);f.done=Math.abs(z)<=u,f.value=f.done?x:j};let R,E;const A=D=>{h(f.value)&&(R=D,E=Fk({keyframes:[f.value,g(f.value)],velocity:Ik(_,D,f.value),damping:s,stiffness:i,restDelta:u,restSpeed:d}))};return A(0),{calculatedDuration:null,next:D=>{let z=!1;return!E&&R===void 0&&(z=!0,S(D),A(D)),R!==void 0&&D>=R?E.next(D-R):(!z&&S(D),f)}}}const IA=Sl(.42,0,1,1),FA=Sl(0,0,.58,1),Bk=Sl(.42,0,.58,1),BA=e=>Array.isArray(e)&&typeof e[0]!="number",UA={linear:ar,easeIn:IA,easeInOut:Bk,easeOut:FA,circIn:bg,circInOut:yk,circOut:vk,backIn:_g,backInOut:gk,backOut:hk,anticipate:xk},uv=e=>{if(hg(e)){Ow(e.length===4);const[t,n,r,s]=e;return Sl(t,n,r,s)}else if(typeof e=="string")return UA[e];return e};function VA(e,t,n){const r=[],s=n||Ok,i=e.length-1;for(let a=0;at[0];if(i===2&&t[0]===t[1])return()=>t[1];const a=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=VA(t,r,s),c=l.length,u=d=>{if(a&&d1)for(;pu(js(e[0],e[i-1],d)):u}function $A(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=Pa(0,t,r);e.push(Lt(n,1,s))}}function HA(e){const t=[0];return $A(t,e.length-1),t}function qA(e,t){return e.map(n=>n*t)}function WA(e,t){return e.map(()=>t||Bk).splice(0,e.length-1)}function Nu({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=BA(r)?r.map(uv):uv(r),i={done:!1,value:t[0]},a=qA(n&&n.length===t.length?n:HA(t),e),l=zA(a,t,{ease:Array.isArray(s)?s:WA(t,s)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const GA=e=>{const t=({timestamp:n})=>e(n);return{start:()=>kt.update(t,!0),stop:()=>si(t),now:()=>gn.isProcessing?gn.timestamp:es.now()}},KA={decay:cv,inertia:cv,tween:Nu,keyframes:Nu,spring:Fk},QA=e=>e/100;class jg extends Dk{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:r,element:s,keyframes:i}=this.options,a=(s==null?void 0:s.KeyframeResolver)||Eg,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new a(i,l,n,r,s),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:i,velocity:a=0}=this.options,l=mg(n)?n:KA[n]||Nu;let c,u;l!==Nu&&typeof t[0]!="number"&&(c=El(QA,Ok(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-a})),d.calculatedDuration===null&&(d.calculatedDuration=nk(d));const{calculatedDuration:p}=d,f=p+s,h=f*(r+1)-s;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:f,totalDuration:h}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:s,generator:i,mirroredGenerator:a,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:p}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:h,repeatType:g,repeatDelay:v,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const x=this.currentTime-f*(this.speed>=0?1:-1),y=this.speed>=0?x<0:x>d;this.currentTime=Math.max(x,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let _=this.currentTime,S=i;if(h){const D=Math.min(this.currentTime,d)/p;let z=Math.floor(D),j=D%1;!j&&D>=1&&(j=1),j===1&&z--,z=Math.min(z,h+1),!!(z%2)&&(g==="reverse"?(j=1-j,v&&(j-=v/p)):g==="mirror"&&(S=a)),_=js(0,1,j)*p}const R=y?{done:!1,value:c[0]}:S.next(_);l&&(R.value=l(R.value));let{done:E}=R;!y&&u!==null&&(E=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const A=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&E);return A&&s!==void 0&&(R.value=vd(c,this.options,s)),b&&b(R.value),A&&this.finish(),R}get duration(){const{resolved:t}=this;return t?_s(t.calculatedDuration):0}get time(){return _s(this.currentTime)}set time(t){t=ys(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=_s(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=GA,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const s=this.driver.now();this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=s):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const YA=new Set(["opacity","clipPath","filter","transform"]);function XA(e,t,n,{delay:r=0,duration:s=300,repeat:i=0,repeatType:a="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=ik(l,s);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:a==="reverse"?"alternate":"normal"})}const JA=Zh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Pu=10,ZA=2e4;function eT(e){return mg(e.type)||e.type==="spring"||!sk(e.ease)}function tT(e,t){const n=new jg({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const s=[];let i=0;for(;!r.done&&ithis.onKeyframesResolved(a,l),n,r,s),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:s,ease:i,type:a,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Cu()&&nT(i)&&(i=Uk[i]),eT(this.options)){const{onComplete:p,onUpdate:f,motionValue:h,element:g,...v}=this.options,b=tT(t,v);t=b.keyframes,t.length===1&&(t[1]=t[0]),r=b.duration,s=b.times,i=b.ease,a="keyframes"}const d=XA(l.owner.current,c,t,{...this.options,duration:r,times:s,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(Q0(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:p}=this.options;l.set(vd(t,this.options,n)),p&&p(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:s,type:a,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return _s(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return _s(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=ys(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return ar;const{animation:r}=n;Q0(r,t)}return ar}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:s,type:i,ease:a,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:p,element:f,...h}=this.options,g=new jg({...h,keyframes:r,duration:s,type:i,ease:a,times:l,isGenerator:!0}),v=ys(this.time);u.setWithVelocity(g.sample(v-Pu).value,g.sample(v).value,Pu)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:s,repeatType:i,damping:a,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return JA()&&r&&YA.has(r)&&!c&&!u&&!s&&i!=="mirror"&&a!==0&&l!=="inertia"}}const rT={type:"spring",stiffness:500,damping:25,restSpeed:10},sT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),iT={type:"keyframes",duration:.8},aT={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},oT=(e,{keyframes:t})=>t.length>2?iT:$i.has(e)?e.startsWith("scale")?sT(t[1]):rT:aT;function lT({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:s,repeat:i,repeatType:a,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const Ng=(e,t,n,r={},s,i)=>a=>{const l=fg(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-ys(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:f=>{t.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{a(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:s};lT(l)||(d={...d,...oT(e,d)}),d.duration&&(d.duration=ys(d.duration)),d.repeatDelay&&(d.repeatDelay=ys(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(p=!0)),p&&!i&&t.get()!==void 0){const f=vd(d.keyframes,l);if(f!==void 0)return kt.update(()=>{d.onUpdate(f),d.onComplete()}),new jR([])}return!i&&dv.supports(d)?new dv(d):new jg(d)};function cT({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Vk(e,t,{delay:n=0,transitionOverride:r,type:s}={}){var i;let{transition:a=e.getDefaultTransition(),transitionEnd:l,...c}=t;r&&(a=r);const u=[],d=s&&e.animationState&&e.animationState.getState()[s];for(const p in c){const f=e.getValue(p,(i=e.latestValues[p])!==null&&i!==void 0?i:null),h=c[p];if(h===void 0||d&&cT(d,p))continue;const g={delay:n,...fg(a||{},p)};let v=!1;if(window.MotionHandoffAnimation){const x=dk(e);if(x){const y=window.MotionHandoffAnimation(x,p,kt);y!==null&&(g.startTime=y,v=!0)}}om(e,p),f.start(Ng(p,f,h,e.shouldReduceMotion&&ck.has(p)?{type:!1}:g,e,v));const b=f.animation;b&&u.push(b)}return l&&Promise.all(u).then(()=>{kt.update(()=>{l&&VR(e,l)})}),u}function mm(e,t,n={}){var r;const s=xd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=s||{};n.transitionOverride&&(i=n.transitionOverride);const a=s?()=>Promise.all(Vk(e,s,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:f}=i;return uT(e,t,d+u,p,f,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[a,l]:[l,a];return u().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function uT(e,t,n=0,r=0,s=1,i){const a=[],l=(e.variantChildren.size-1)*r,c=s===1?(u=0)=>u*r:(u=0)=>l-u*r;return Array.from(e.variantChildren).sort(dT).forEach((u,d)=>{u.notify("AnimationStart",t),a.push(mm(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(a)}function dT(e,t){return e.sortNodePosition(t)}function pT(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(i=>mm(e,i,n));r=Promise.all(s)}else if(typeof t=="string")r=mm(e,t,n);else{const s=typeof t=="function"?xd(e,t,n.custom):t;r=Promise.all(Vk(e,s,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const fT=tg.length;function zk(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?zk(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>pT(e,n,r)))}function xT(e){let t=gT(e),n=pv(),r=!0;const s=c=>(u,d)=>{var p;const f=xd(e,d,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(f){const{transition:h,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function i(c){t=c(e)}function a(c){const{props:u}=e,d=zk(e.parent)||{},p=[],f=new Set;let h={},g=1/0;for(let b=0;bg&&S,z=!1;const j=Array.isArray(_)?_:[_];let H=j.reduce(s(x),{});R===!1&&(H={});const{prevResolvedValues:X={}}=y,re={...X,...H},le=oe=>{D=!0,f.has(oe)&&(z=!0,f.delete(oe)),y.needsAnimating[oe]=!0;const B=e.getValue(oe);B&&(B.liveStyle=!1)};for(const oe in re){const B=H[oe],Y=X[oe];if(h.hasOwnProperty(oe))continue;let N=!1;sm(B)&&sm(Y)?N=!tk(B,Y):N=B!==Y,N?B!=null?le(oe):f.add(oe):B!==void 0&&f.has(oe)?le(oe):y.protectedKeys[oe]=!0}y.prevProp=_,y.prevResolvedValues=H,y.isActive&&(h={...h,...H}),r&&e.blockInitialAnimation&&(D=!1),D&&(!(E&&A)||z)&&p.push(...j.map(oe=>({animation:oe,options:{type:x}})))}if(f.size){const b={};f.forEach(x=>{const y=e.getBaseTarget(x),_=e.getValue(x);_&&(_.liveStyle=!0),b[x]=y??null}),p.push({animation:b})}let v=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(p):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(f=>{var h;return(h=f.animationState)===null||h===void 0?void 0:h.setActive(c,u)}),n[c].isActive=u;const p=a(c);for(const f in n)n[f].protectedKeys={};return p}return{animateChanges:a,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=pv(),r=!0}}}function vT(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!tk(t,e):!1}function gi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function pv(){return{animate:gi(!0),whileInView:gi(),whileHover:gi(),whileTap:gi(),whileDrag:gi(),whileFocus:gi(),exit:gi()}}class ui{constructor(t){this.isMounted=!1,this.node=t}update(){}}class yT extends ui{constructor(t){super(t),t.animationState||(t.animationState=xT(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();hd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let _T=0;class bT extends ui{constructor(){super(...arguments),this.id=_T++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const wT={animation:{Feature:yT},exit:{Feature:bT}};function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Cl(e){return{point:{x:e.pageX,y:e.pageY}}}const kT=e=>t=>gg(t)&&e(t,Cl(t));function Ro(e,t,n,r){return ll(e,t,kT(n),r)}const fv=(e,t)=>Math.abs(e-t);function ST(e,t){const n=fv(e.x,t.x),r=fv(e.y,t.y);return Math.sqrt(n**2+r**2)}class $k{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=xp(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,h=ST(p.offset,{x:0,y:0})>=3;if(!f&&!h)return;const{point:g}=p,{timestamp:v}=gn;this.history.push({...g,timestamp:v});const{onStart:b,onMove:x}=this.handlers;f||(b&&b(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,p)},this.handlePointerMove=(p,f)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=gp(f,this.transformPagePoint),kt.update(this.updatePoint,!0)},this.handlePointerUp=(p,f)=>{this.end();const{onEnd:h,onSessionEnd:g,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=xp(p.type==="pointercancel"?this.lastMoveEventInfo:gp(f,this.transformPagePoint),this.history);this.startEvent&&h&&h(p,b),g&&g(p,b)},!gg(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const a=Cl(t),l=gp(a,this.transformPagePoint),{point:c}=l,{timestamp:u}=gn;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,xp(l,this.history)),this.removeListeners=El(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),si(this.updatePoint)}}function gp(e,t){return t?{point:t(e.point)}:e}function mv(e,t){return{x:e.x-t.x,y:e.y-t.y}}function xp({point:e},t){return{point:e,delta:mv(e,Hk(t)),offset:mv(e,ET(t)),velocity:CT(t,.1)}}function ET(e){return e[0]}function Hk(e){return e[e.length-1]}function CT(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=Hk(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>ys(t)));)n--;if(!r)return{x:0,y:0};const i=_s(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}const qk=1e-4,jT=1-qk,NT=1+qk,Wk=.01,PT=0-Wk,RT=0+Wk;function cr(e){return e.max-e.min}function AT(e,t,n){return Math.abs(e-t)<=n}function hv(e,t,n,r=.5){e.origin=r,e.originPoint=Lt(t.min,t.max,e.origin),e.scale=cr(n)/cr(t),e.translate=Lt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=jT&&e.scale<=NT||isNaN(e.scale))&&(e.scale=1),(e.translate>=PT&&e.translate<=RT||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){hv(e.x,t.x,n.x,r?r.originX:void 0),hv(e.y,t.y,n.y,r?r.originY:void 0)}function gv(e,t,n){e.min=n.min+t.min,e.max=e.min+cr(t)}function TT(e,t,n){gv(e.x,t.x,n.x),gv(e.y,t.y,n.y)}function xv(e,t,n){e.min=t.min-n.min,e.max=e.min+cr(t)}function To(e,t,n){xv(e.x,t.x,n.x),xv(e.y,t.y,n.y)}function LT(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Lt(n,e,r.max):Math.min(e,n)),e}function vv(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function DT(e,{top:t,left:n,bottom:r,right:s}){return{x:vv(e.x,n,s),y:vv(e.y,t,r)}}function yv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Pa(t.min,t.max-r,e.min):r>s&&(n=Pa(e.min,e.max-s,t.min)),js(0,1,n)}function IT(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const hm=.35;function FT(e=hm){return e===!1?e=0:e===!0&&(e=hm),{x:_v(e,"left","right"),y:_v(e,"top","bottom")}}function _v(e,t,n){return{min:bv(e,t),max:bv(e,n)}}function bv(e,t){return typeof e=="number"?e:e[t]||0}const wv=()=>({translate:0,scale:1,origin:0,originPoint:0}),da=()=>({x:wv(),y:wv()}),kv=()=>({min:0,max:0}),$t=()=>({x:kv(),y:kv()});function hr(e){return[e("x"),e("y")]}function Gk({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function BT({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function UT(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function vp(e){return e===void 0||e===1}function gm({scale:e,scaleX:t,scaleY:n}){return!vp(e)||!vp(t)||!vp(n)}function bi(e){return gm(e)||Kk(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Kk(e){return Sv(e.x)||Sv(e.y)}function Sv(e){return e&&e!=="0%"}function Ru(e,t,n){const r=e-n,s=t*r;return n+s}function Ev(e,t,n,r,s){return s!==void 0&&(e=Ru(e,s,r)),Ru(e,n,r)+t}function xm(e,t=0,n=1,r,s){e.min=Ev(e.min,t,n,r,s),e.max=Ev(e.max,t,n,r,s)}function Qk(e,{x:t,y:n}){xm(e.x,t.translate,t.scale,t.originPoint),xm(e.y,n.translate,n.scale,n.originPoint)}const Cv=.999999999999,jv=1.0000000000001;function VT(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let i,a;for(let l=0;lCv&&(t.x=1),t.yCv&&(t.y=1)}function pa(e,t){e.min=e.min+t,e.max=e.max+t}function Nv(e,t,n,r,s=.5){const i=Lt(e.min,e.max,s);xm(e,t,n,i,r)}function fa(e,t){Nv(e.x,t.x,t.scaleX,t.scale,t.originX),Nv(e.y,t.y,t.scaleY,t.scale,t.originY)}function Yk(e,t){return Gk(UT(e.getBoundingClientRect(),t))}function zT(e,t,n){const r=Yk(e,n),{scroll:s}=t;return s&&(pa(r.x,s.offset.x),pa(r.y,s.offset.y)),r}const Xk=({current:e})=>e?e.ownerDocument.defaultView:null,$T=new WeakMap;class HT{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=$t(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Cl(d).point)},i=(d,p)=>{const{drag:f,dragPropagation:h,onDragStart:g}=this.getProps();if(f&&!h&&(this.openDragLock&&this.openDragLock(),this.openDragLock=OR(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),hr(b=>{let x=this.getAxisMotionValue(b).get()||0;if(Zr.test(x)){const{projection:y}=this.visualElement;if(y&&y.layout){const _=y.layout.layoutBox[b];_&&(x=cr(_)*(parseFloat(x)/100))}}this.originPoint[b]=x}),g&&kt.postRender(()=>g(d,p)),om(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},a=(d,p)=>{const{dragPropagation:f,dragDirectionLock:h,onDirectionLock:g,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:b}=p;if(h&&this.currentDirection===null){this.currentDirection=qT(b),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",p.point,b),this.updateAxis("y",p.point,b),this.visualElement.render(),v&&v(d,p)},l=(d,p)=>this.stop(d,p),c=()=>hr(d=>{var p;return this.getAnimationState(d)==="paused"&&((p=this.getAxisMotionValue(d).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new $k(t,{onSessionStart:s,onStart:i,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Xk(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:i}=this.getProps();i&&kt.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!mc(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=LT(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&ca(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=DT(s.layoutBox,n):this.constraints=!1,this.elastic=FT(r),i!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&hr(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=IT(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ca(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const i=zT(r,s.root,this.visualElement.getTransformPagePoint());let a=MT(s.layout.layoutBox,i);if(n){const l=n(BT(a));this.hasMutatedConstraints=!!l,l&&(a=Gk(l))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=hr(d=>{if(!mc(d,n,this.currentDirection))return;let p=c&&c[d]||{};a&&(p={min:0,max:0});const f=s?200:1e6,h=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return om(this.visualElement,t),r.start(Ng(t,r,0,n,this.visualElement,!1))}stopAnimation(){hr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){hr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){hr(n=>{const{drag:r}=this.getProps();if(!mc(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:l}=s.layout.layoutBox[n];i.set(t[n]-Lt(a,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ca(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};hr(a=>{const l=this.getAxisMotionValue(a);if(l&&this.constraints!==!1){const c=l.get();s[a]=OT({min:c,max:c},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),hr(a=>{if(!mc(a,t,null))return;const l=this.getAxisMotionValue(a),{min:c,max:u}=this.constraints[a];l.set(Lt(c,u,s[a]))})}addListeners(){if(!this.visualElement.current)return;$T.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();ca(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,i=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),kt.read(r);const a=ll(window,"resize",()=>this.scalePositionWithinConstraints()),l=s.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(hr(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{a(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=hm,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:l}}}function mc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function qT(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class WT extends ui{constructor(t){super(t),this.removeGroupControls=ar,this.removeListeners=ar,this.controls=new HT(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ar}unmount(){this.removeGroupControls(),this.removeListeners()}}const Pv=e=>(t,n)=>{e&&kt.postRender(()=>e(t,n))};class GT extends ui{constructor(){super(...arguments),this.removePointerDownListener=ar}onPointerDown(t){this.session=new $k(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Xk(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:Pv(t),onStart:Pv(n),onMove:r,onEnd:(i,a)=>{delete this.session,s&&kt.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const zc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Rv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const oo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Re.test(e))e=parseFloat(e);else return e;const n=Rv(e,t.target.x),r=Rv(e,t.target.y);return`${n}% ${r}%`}},KT={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=ii.parse(e);if(s.length>5)return r;const i=ii.createTransformer(e),a=typeof s[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;s[0+a]/=l,s[1+a]/=c;const u=Lt(l,c,.5);return typeof s[2+a]=="number"&&(s[2+a]/=u),typeof s[3+a]=="number"&&(s[3+a]/=u),i(s)}};class QT extends m.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;hR(YT),i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),zc.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,a=r.projection;return a&&(a.isPresent=i,s||t.layoutDependency!==n||n===void 0?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||kt.postRender(()=>{const l=a.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),rg.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Jk(e){const[t,n]=Dw(),r=m.useContext(Qh);return o.jsx(QT,{...e,layoutGroup:r,switchLayoutGroup:m.useContext(zw),isPresent:t,safeToRemove:n})}const YT={borderRadius:{...oo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:oo,borderTopRightRadius:oo,borderBottomLeftRadius:oo,borderBottomRightRadius:oo,boxShadow:KT};function XT(e,t,n){const r=jn(e)?e:al(e);return r.start(Ng("",r,t,n)),r.animation}function JT(e){return e instanceof SVGElement&&e.tagName!=="svg"}const ZT=(e,t)=>e.depth-t.depth;class eL{constructor(){this.children=[],this.isDirty=!1}add(t){xg(this.children,t),this.isDirty=!0}remove(t){vg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(ZT),this.isDirty=!1,this.children.forEach(t)}}function tL(e,t){const n=es.now(),r=({timestamp:s})=>{const i=s-n;i>=t&&(si(r),e(i-t))};return kt.read(r,!0),()=>si(r)}const Zk=["TopLeft","TopRight","BottomLeft","BottomRight"],nL=Zk.length,Av=e=>typeof e=="string"?parseFloat(e):e,Tv=e=>typeof e=="number"||Re.test(e);function rL(e,t,n,r,s,i){s?(e.opacity=Lt(0,n.opacity!==void 0?n.opacity:1,sL(r)),e.opacityExit=Lt(t.opacity!==void 0?t.opacity:1,0,iL(r))):i&&(e.opacity=Lt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let a=0;art?1:n(Pa(e,t,r))}function Dv(e,t){e.min=t.min,e.max=t.max}function mr(e,t){Dv(e.x,t.x),Dv(e.y,t.y)}function Mv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Ov(e,t,n,r,s){return e-=t,e=Ru(e,1/n,r),s!==void 0&&(e=Ru(e,1/s,r)),e}function aL(e,t=0,n=1,r=.5,s,i=e,a=e){if(Zr.test(t)&&(t=parseFloat(t),t=Lt(a.min,a.max,t/100)-a.min),typeof t!="number")return;let l=Lt(i.min,i.max,r);e===i&&(l-=t),e.min=Ov(e.min,t,n,l,s),e.max=Ov(e.max,t,n,l,s)}function Iv(e,t,[n,r,s],i,a){aL(e,t[n],t[r],t[s],t.scale,i,a)}const oL=["x","scaleX","originX"],lL=["y","scaleY","originY"];function Fv(e,t,n,r){Iv(e.x,t,oL,n?n.x:void 0,r?r.x:void 0),Iv(e.y,t,lL,n?n.y:void 0,r?r.y:void 0)}function Bv(e){return e.translate===0&&e.scale===1}function tS(e){return Bv(e.x)&&Bv(e.y)}function Uv(e,t){return e.min===t.min&&e.max===t.max}function cL(e,t){return Uv(e.x,t.x)&&Uv(e.y,t.y)}function Vv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function nS(e,t){return Vv(e.x,t.x)&&Vv(e.y,t.y)}function zv(e){return cr(e.x)/cr(e.y)}function $v(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class uL{constructor(){this.members=[]}add(t){xg(this.members,t),t.scheduleRender()}remove(t){if(vg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const i=this.members[s];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function dL(e,t,n){let r="";const s=e.x.translate/t.x,i=e.y.translate/t.y,a=(n==null?void 0:n.z)||0;if((s||i||a)&&(r=`translate3d(${s}px, ${i}px, ${a}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:h,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),f&&(r+=`rotateY(${f}deg) `),h&&(r+=`skewX(${h}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const wi={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},yo=typeof window<"u"&&window.MotionDebug!==void 0,yp=["","X","Y","Z"],pL={visibility:"hidden"},Hv=1e3;let fL=0;function _p(e,t,n,r){const{latestValues:s}=t;s[e]&&(n[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function rS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=dk(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:s,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",kt,!(s||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&rS(r)}function sS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(a={},l=t==null?void 0:t()){this.id=fL++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,yo&&(wi.totalNodes=wi.resolvedTargetDeltas=wi.recalculatedProjection=0),this.nodes.forEach(gL),this.nodes.forEach(bL),this.nodes.forEach(wL),this.nodes.forEach(xL),yo&&window.MotionDebug.record(wi)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;e(a,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=tL(f,250),zc.hasAnimatedSinceResize&&(zc.hasAnimatedSinceResize=!1,this.nodes.forEach(Wv))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||d.getDefaultTransition()||jL,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=d.getProps(),y=!this.targetLayout||!nS(this.targetLayout,g)||h,_=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||_||f&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,_);const S={...fg(v,"layout"),onPlay:b,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else f||Wv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,si(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(kL),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&rS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c{const R=S/1e3;Gv(p.x,a.x,R),Gv(p.y,a.y,R),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(To(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),EL(this.relativeTarget,this.relativeTargetOrigin,f,R),_&&cL(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=$t()),mr(_,this.relativeTarget)),v&&(this.animationValues=d,rL(d,u,this.latestValues,R,y,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=R},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(si(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=kt.update(()=>{zc.hasAnimatedSinceResize=!0,this.currentAnimation=XT(0,Hv,{...a,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Hv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=a;if(!(!l||!c||!u)){if(this!==a&&this.layout&&u&&iS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||$t();const p=cr(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+p;const f=cr(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+f}mr(l,c),fa(l,d),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new uL),this.sharedNodes.get(a).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const a=this.getStack();return a?a.lead===this:!0}getLead(){var a;const{layoutId:l}=this.options;return l?((a=this.getStack())===null||a===void 0?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:l}=this.options;return l?(a=this.getStack())===null||a===void 0?void 0:a.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&_p("z",a,u,this.animationValues);for(let d=0;d{var l;return(l=a.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(qv),this.root.sharedNodes.clear()}}}function mL(e){e.updateLayout()}function hL(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:i}=e.options,a=n.source!==e.layout.source;i==="size"?hr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=cr(f);f.min=r[p].min,f.max=f.min+h}):iS(i,n.layoutBox,r)&&hr(p=>{const f=a?n.measuredBox[p]:n.layoutBox[p],h=cr(r[p]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+h)});const l=da();Ao(l,r,n.layoutBox);const c=da();a?Ao(c,e.applyTransform(s,!0),n.measuredBox):Ao(c,r,n.layoutBox);const u=!tS(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:f,layout:h}=p;if(f&&h){const g=$t();To(g,n.layoutBox,f.layoutBox);const v=$t();To(v,r,h.layoutBox),nS(g,v)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function gL(e){yo&&wi.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function xL(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function vL(e){e.clearSnapshot()}function qv(e){e.clearMeasurements()}function yL(e){e.isLayoutDirty=!1}function _L(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Wv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function bL(e){e.resolveTargetDelta()}function wL(e){e.calcProjection()}function kL(e){e.resetSkewAndRotation()}function SL(e){e.removeLeadSnapshot()}function Gv(e,t,n){e.translate=Lt(t.translate,0,n),e.scale=Lt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Kv(e,t,n,r){e.min=Lt(t.min,n.min,r),e.max=Lt(t.max,n.max,r)}function EL(e,t,n,r){Kv(e.x,t.x,n.x,r),Kv(e.y,t.y,n.y,r)}function CL(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const jL={duration:.45,ease:[.4,0,.1,1]},Qv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Yv=Qv("applewebkit/")&&!Qv("chrome/")?Math.round:ar;function Xv(e){e.min=Yv(e.min),e.max=Yv(e.max)}function NL(e){Xv(e.x),Xv(e.y)}function iS(e,t,n){return e==="position"||e==="preserve-aspect"&&!AT(zv(t),zv(n),.2)}function PL(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const RL=sS({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),bp={current:void 0},aS=sS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!bp.current){const e=new RL({});e.mount(window),e.setOptions({layoutScroll:!0}),bp.current=e}return bp.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),AL={pan:{Feature:GT},drag:{Feature:WT,ProjectionNode:aS,MeasureLayout:Jk}};function Jv(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&kt.postRender(()=>i(t,Cl(t)))}class TL extends ui{mount(){const{current:t}=this.node;t&&(this.unmount=AR(t,n=>(Jv(this.node,n,"Start"),r=>Jv(this.node,r,"End"))))}unmount(){}}class LL extends ui{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=El(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Zv(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&kt.postRender(()=>i(t,Cl(t)))}class DL extends ui{mount(){const{current:t}=this.node;t&&(this.unmount=MR(t,n=>(Zv(this.node,n,"Start"),(r,{success:s})=>Zv(this.node,r,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const vm=new WeakMap,wp=new WeakMap,ML=e=>{const t=vm.get(e.target);t&&t(e)},OL=e=>{e.forEach(ML)};function IL({root:e,...t}){const n=e||document;wp.has(n)||wp.set(n,{});const r=wp.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(OL,{root:e,...t})),r[s]}function FL(e,t,n){const r=IL(t);return vm.set(e,n),r.observe(e),()=>{vm.delete(e),r.unobserve(e)}}const BL={some:0,all:1};class UL extends ui{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:BL[s]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return FL(this.node.current,a,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(VL(t,n))&&this.startObserver()}unmount(){}}function VL({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const zL={inView:{Feature:UL},tap:{Feature:DL},focus:{Feature:LL},hover:{Feature:TL}},$L={layout:{ProjectionNode:aS,MeasureLayout:Jk}},ym={current:null},oS={current:!1};function HL(){if(oS.current=!0,!!Jh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>ym.current=e.matches;e.addListener(t),t()}else ym.current=!1}const qL=[...Tk,Sn,ii],WL=e=>qL.find(Ak(e)),ey=new WeakMap;function GL(e,t,n){for(const r in t){const s=t[r],i=n[r];if(jn(s))e.addValue(r,s);else if(jn(i))e.addValue(r,al(s,{owner:e}));else if(i!==s)if(e.hasValue(r)){const a=e.getValue(r);a.liveStyle===!0?a.jump(s):a.hasAnimated||a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,al(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const ty=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class KL{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,blockInitialAnimation:i,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Eg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=es.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),oS.current||HL(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:ym.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){ey.delete(this.current),this.projection&&this.projection.unmount(),si(this.notifyUpdate),si(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=$i.has(t),s=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&kt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{s(),i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Ra){const n=Ra[t];if(!n)continue;const{isEnabled:r,Feature:s}=n;if(!this.features[t]&&s&&r(this.props)&&(this.features[t]=new s(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):$t()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let s=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return s!=null&&(typeof s=="string"&&(Pk(s)||_k(s))?s=parseFloat(s):!WL(s)&&ii.test(n)&&(s=Ck(t,n)),this.setBaseTarget(t,jn(s)?s.get():s)),jn(s)?s.get():s}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const a=ig(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);a&&(s=a[t])}if(r&&s!==void 0)return s;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!jn(i)?i:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new yg),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class lS extends KL{constructor(){super(...arguments),this.KeyframeResolver=Lk}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;jn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function QL(e){return window.getComputedStyle(e)}class YL extends lS{constructor(){super(...arguments),this.type="html",this.renderInstance=Qw}readValueFromInstance(t,n){if($i.has(n)){const r=Sg(n);return r&&r.default||0}else{const r=QL(t),s=(Ww(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Yk(t,n)}build(t,n,r){lg(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return pg(t,n,r)}}class XL extends lS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=$t}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if($i.has(n)){const r=Sg(n);return r&&r.default||0}return n=Yw.has(n)?n:ng(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Zw(t,n,r)}build(t,n,r){cg(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,s){Xw(t,n,r,s)}mount(t){this.isSVGTag=dg(t.tagName),super.mount(t)}}const JL=(e,t)=>sg(e)?new XL(t):new YL(t,{allowProjection:e!==m.Fragment}),ZL=SR({...wT,...zL,...AL,...$L},JL),Ut=BP(ZL);function eD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"}))}const tD=m.forwardRef(eD);function nD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const $c=m.forwardRef(nD);function rD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const ny=m.forwardRef(rD);function sD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))}const Yr=m.forwardRef(sD);function iD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"}))}const aD=m.forwardRef(iD);function oD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"}))}const cS=m.forwardRef(oD);function lD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const kp=m.forwardRef(lD);function cD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.25-.75L17.25 9m0 0L21 12.75M17.25 9v12"}))}const Sp=m.forwardRef(cD);function uD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const dD=m.forwardRef(uD);function pD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"}))}const Au=m.forwardRef(pD);function fD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21"}))}const mD=m.forwardRef(fD);function hD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"}))}const hc=m.forwardRef(hD);function gD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const Tu=m.forwardRef(gD);function xD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Ws=m.forwardRef(xD);function vD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const rr=m.forwardRef(vD);function yD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const uS=m.forwardRef(yD);function _D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const ps=m.forwardRef(_D);function bD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"}))}const wD=m.forwardRef(bD);function kD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"}))}const SD=m.forwardRef(kD);function ED({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const CD=m.forwardRef(ED);function jD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z"}))}const _m=m.forwardRef(jD);function ND({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const PD=m.forwardRef(ND);function RD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const AD=m.forwardRef(RD);function TD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"}))}const Lu=m.forwardRef(TD);function LD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const bm=m.forwardRef(LD);function DD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const MD=m.forwardRef(DD);function OD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"}))}const wm=m.forwardRef(OD);function ID({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const FD=m.forwardRef(ID);function BD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))}const UD=m.forwardRef(BD);function VD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const ry=m.forwardRef(VD);function zD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const fs=m.forwardRef(zD);function $D({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const sy=m.forwardRef($D);function HD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const dS=m.forwardRef(HD);function qD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const iy=m.forwardRef(qD);function WD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m15.75 15.75-2.489-2.489m0 0a3.375 3.375 0 1 0-4.773-4.773 3.375 3.375 0 0 0 4.774 4.774ZM21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const GD=m.forwardRef(WD);function KD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const pS=m.forwardRef(KD);function QD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))}const YD=m.forwardRef(QD);function XD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"}))}const JD=m.forwardRef(XD);function ZD({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const e3=m.forwardRef(ZD);function t3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"}))}const n3=m.forwardRef(t3);function r3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125"}))}const s3=m.forwardRef(r3);function i3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))}const a3=m.forwardRef(i3);function o3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const Ep=m.forwardRef(o3);function l3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const c3=m.forwardRef(l3);function u3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Du=m.forwardRef(u3);function d3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const p3=m.forwardRef(d3);function f3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z"}))}const m3=m.forwardRef(f3);function h3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"}))}const g3=m.forwardRef(h3);function x3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const Hc=m.forwardRef(x3);function v3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z"}))}const Pg=m.forwardRef(v3);function y3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const fS=m.forwardRef(y3);function _3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"}))}const b3=m.forwardRef(_3);function w3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5"}))}const k3=m.forwardRef(w3);function S3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const tn=m.forwardRef(S3);function E3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const C3=m.forwardRef(E3);function j3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const N3=m.forwardRef(j3);function P3({title:e,titleId:t,...n},r){return m.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?m.createElement("title",{id:t},e):null,m.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Ta=m.forwardRef(P3);function mS(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{ay(e),localStorage.setItem("theme",e)},[e]),m.useEffect(()=>{if(e!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>ay("system");return s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[e]);const n=s=>{t(s)},r=hS(e);return{theme:e,effectiveTheme:r,setTheme:n}}const L3={},oy=e=>{let t;const n=new Set,r=(d,p)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=p??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(L3?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},D3=e=>e?oy(e):oy;var gS={exports:{}},xS={},vS={exports:{}},yS={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=m;function M3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var O3=typeof Object.is=="function"?Object.is:M3,I3=La.useState,F3=La.useEffect,B3=La.useLayoutEffect,U3=La.useDebugValue;function V3(e,t){var n=t(),r=I3({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return B3(function(){s.value=n,s.getSnapshot=t,Cp(s)&&i({inst:s})},[e,n,t]),F3(function(){return Cp(s)&&i({inst:s}),e(function(){Cp(s)&&i({inst:s})})},[e]),U3(n),n}function Cp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!O3(e,n)}catch{return!0}}function z3(e,t){return t()}var $3=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?z3:V3;yS.useSyncExternalStore=La.useSyncExternalStore!==void 0?La.useSyncExternalStore:$3;vS.exports=yS;var H3=vS.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yd=m,q3=H3;function W3(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var G3=typeof Object.is=="function"?Object.is:W3,K3=q3.useSyncExternalStore,Q3=yd.useRef,Y3=yd.useEffect,X3=yd.useMemo,J3=yd.useDebugValue;xS.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=Q3(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=X3(function(){function c(h){if(!u){if(u=!0,d=h,h=r(h),s!==void 0&&a.hasValue){var g=a.value;if(s(g,h))return p=g}return p=h}if(g=p,G3(d,h))return g;var v=r(h);return s!==void 0&&s(g,v)?(d=h,g):(d=h,p=v)}var u=!1,d,p,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,s]);var l=K3(e,i[0],i[1]);return Y3(function(){a.hasValue=!0,a.value=l},[l]),J3(l),l};gS.exports=xS;var Z3=gS.exports;const eM=Wu(Z3),_S={},{useDebugValue:tM}=pn,{useSyncExternalStoreWithSelector:nM}=eM;let ly=!1;const rM=e=>e;function sM(e,t=rM,n){(_S?"production":void 0)!=="production"&&n&&!ly&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ly=!0);const r=nM(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tM(r),r}const cy=e=>{(_S?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?D3(e):e,n=(r,s)=>sM(t,r,s);return Object.assign(n,t),n},iM=e=>e?cy(e):cy;function bS(e,t){return function(){return e.apply(t,arguments)}}const{toString:aM}=Object.prototype,{getPrototypeOf:Rg}=Object,{iterator:_d,toStringTag:wS}=Symbol,bd=(e=>t=>{const n=aM.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Br=e=>(e=e.toLowerCase(),t=>bd(t)===e),wd=e=>t=>typeof t===e,{isArray:$a}=Array,Da=wd("undefined");function jl(e){return e!==null&&!Da(e)&&e.constructor!==null&&!Da(e.constructor)&&Qn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const kS=Br("ArrayBuffer");function oM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&kS(e.buffer),t}const lM=wd("string"),Qn=wd("function"),SS=wd("number"),Nl=e=>e!==null&&typeof e=="object",cM=e=>e===!0||e===!1,qc=e=>{if(bd(e)!=="object")return!1;const t=Rg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(wS in e)&&!(_d in e)},uM=e=>{if(!Nl(e)||jl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},dM=Br("Date"),pM=Br("File"),fM=Br("Blob"),mM=Br("FileList"),hM=e=>Nl(e)&&Qn(e.pipe),gM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Qn(e.append)&&((t=bd(e))==="formdata"||t==="object"&&Qn(e.toString)&&e.toString()==="[object FormData]"))},xM=Br("URLSearchParams"),[vM,yM,_M,bM]=["ReadableStream","Request","Response","Headers"].map(Br),wM=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Pl(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),$a(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,CS=e=>!Da(e)&&e!==Ni;function km(){const{caseless:e,skipUndefined:t}=CS(this)&&this||{},n={},r=(s,i)=>{const a=e&&ES(n,i)||i;qc(n[a])&&qc(s)?n[a]=km(n[a],s):qc(s)?n[a]=km({},s):$a(s)?n[a]=s.slice():(!t||!Da(s))&&(n[a]=s)};for(let s=0,i=arguments.length;s(Pl(t,(s,i)=>{n&&Qn(s)?e[i]=bS(s,n):e[i]=s},{allOwnKeys:r}),e),SM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),EM=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},CM=(e,t,n,r)=>{let s,i,a;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!r||r(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=n!==!1&&Rg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},jM=(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},NM=e=>{if(!e)return null;if($a(e))return e;let t=e.length;if(!SS(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},PM=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Rg(Uint8Array)),RM=(e,t)=>{const r=(e&&e[_d]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},AM=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},TM=Br("HTMLFormElement"),LM=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),uy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),DM=Br("RegExp"),jS=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Pl(n,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(r[i]=a||s)}),Object.defineProperties(e,r)},MM=e=>{jS(e,(t,n)=>{if(Qn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Qn(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+"'")})}})},OM=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return $a(e)?r(e):r(String(e).split(t)),n},IM=()=>{},FM=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function BM(e){return!!(e&&Qn(e.append)&&e[wS]==="FormData"&&e[_d])}const UM=e=>{const t=new Array(10),n=(r,s)=>{if(Nl(r)){if(t.indexOf(r)>=0)return;if(jl(r))return r;if(!("toJSON"in r)){t[s]=r;const i=$a(r)?[]:{};return Pl(r,(a,l)=>{const c=n(a,s+1);!Da(c)&&(i[l]=c)}),t[s]=void 0,i}}return r};return n(e,0)},VM=Br("AsyncFunction"),zM=e=>e&&(Nl(e)||Qn(e))&&Qn(e.then)&&Qn(e.catch),NS=((e,t)=>e?setImmediate:t?((n,r)=>(Ni.addEventListener("message",({source:s,data:i})=>{s===Ni&&i===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ni.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Qn(Ni.postMessage)),$M=typeof queueMicrotask<"u"?queueMicrotask.bind(Ni):typeof process<"u"&&process.nextTick||NS,HM=e=>e!=null&&Qn(e[_d]),V={isArray:$a,isArrayBuffer:kS,isBuffer:jl,isFormData:gM,isArrayBufferView:oM,isString:lM,isNumber:SS,isBoolean:cM,isObject:Nl,isPlainObject:qc,isEmptyObject:uM,isReadableStream:vM,isRequest:yM,isResponse:_M,isHeaders:bM,isUndefined:Da,isDate:dM,isFile:pM,isBlob:fM,isRegExp:DM,isFunction:Qn,isStream:hM,isURLSearchParams:xM,isTypedArray:PM,isFileList:mM,forEach:Pl,merge:km,extend:kM,trim:wM,stripBOM:SM,inherits:EM,toFlatObject:CM,kindOf:bd,kindOfTest:Br,endsWith:jM,toArray:NM,forEachEntry:RM,matchAll:AM,isHTMLForm:TM,hasOwnProperty:uy,hasOwnProp:uy,reduceDescriptors:jS,freezeMethods:MM,toObjectSet:OM,toCamelCase:LM,noop:IM,toFiniteNumber:FM,findKey:ES,global:Ni,isContextDefined:CS,isSpecCompliantForm:BM,toJSONObject:UM,isAsyncFn:VM,isThenable:zM,setImmediate:NS,asap:$M,isIterable:HM};function Me(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}V.inherits(Me,Error,{toJSON:function(){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:V.toJSONObject(this.config),code:this.code,status:this.status}}});const PS=Me.prototype,RS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{RS[e]={value:e}});Object.defineProperties(Me,RS);Object.defineProperty(PS,"isAxiosError",{value:!0});Me.from=(e,t,n,r,s,i)=>{const a=Object.create(PS);V.toFlatObject(e,a,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Me.call(a,l,c,n,r,s),e&&a.cause==null&&Object.defineProperty(a,"cause",{value:e,configurable:!0}),a.name=e&&e.name||"Error",i&&Object.assign(a,i),a};const qM=null;function Sm(e){return V.isPlainObject(e)||V.isArray(e)}function AS(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function dy(e,t,n){return e?e.concat(t).map(function(s,i){return s=AS(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function WM(e){return V.isArray(e)&&!e.some(Sm)}const GM=V.toFlatObject(V,{},null,function(t){return/^is[A-Z]/.test(t)});function kd(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!V.isUndefined(b[v])});const r=n.metaTokens,s=n.visitor||d,i=n.dots,a=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&V.isSpecCompliantForm(t);if(!V.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(V.isDate(g))return g.toISOString();if(V.isBoolean(g))return g.toString();if(!c&&V.isBlob(g))throw new Me("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(g)||V.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,v,b){let x=g;if(g&&!b&&typeof g=="object"){if(V.endsWith(v,"{}"))v=r?v:v.slice(0,-2),g=JSON.stringify(g);else if(V.isArray(g)&&WM(g)||(V.isFileList(g)||V.endsWith(v,"[]"))&&(x=V.toArray(g)))return v=AS(v),x.forEach(function(_,S){!(V.isUndefined(_)||_===null)&&t.append(a===!0?dy([v],S,i):a===null?v:v+"[]",u(_))}),!1}return Sm(g)?!0:(t.append(dy(b,v,i),u(g)),!1)}const p=[],f=Object.assign(GM,{defaultVisitor:d,convertValue:u,isVisitable:Sm});function h(g,v){if(!V.isUndefined(g)){if(p.indexOf(g)!==-1)throw Error("Circular reference detected in "+v.join("."));p.push(g),V.forEach(g,function(x,y){(!(V.isUndefined(x)||x===null)&&s.call(t,x,V.isString(y)?y.trim():y,v,f))===!0&&h(x,v?v.concat(y):[y])}),p.pop()}}if(!V.isObject(e))throw new TypeError("data must be an object");return h(e),t}function py(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ag(e,t){this._pairs=[],e&&kd(e,this,t)}const TS=Ag.prototype;TS.append=function(t,n){this._pairs.push([t,n])};TS.toString=function(t){const n=t?function(r){return t.call(this,r,py)}:py;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function KM(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function LS(e,t,n){if(!t)return e;const r=n&&n.encode||KM;V.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let i;if(s?i=s(t,n):i=V.isURLSearchParams(t)?t.toString():new Ag(t,n).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class fy{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){V.forEach(this.handlers,function(r){r!==null&&t(r)})}}const DS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},QM=typeof URLSearchParams<"u"?URLSearchParams:Ag,YM=typeof FormData<"u"?FormData:null,XM=typeof Blob<"u"?Blob:null,JM={isBrowser:!0,classes:{URLSearchParams:QM,FormData:YM,Blob:XM},protocols:["http","https","file","blob","url","data"]},Tg=typeof window<"u"&&typeof document<"u",Em=typeof navigator=="object"&&navigator||void 0,ZM=Tg&&(!Em||["ReactNative","NativeScript","NS"].indexOf(Em.product)<0),e4=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",t4=Tg&&window.location.href||"http://localhost",n4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Tg,hasStandardBrowserEnv:ZM,hasStandardBrowserWebWorkerEnv:e4,navigator:Em,origin:t4},Symbol.toStringTag,{value:"Module"})),Cn={...n4,...JM};function r4(e,t){return kd(e,new Cn.classes.URLSearchParams,{visitor:function(n,r,s,i){return Cn.isNode&&V.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function s4(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function i4(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r=n.length;return a=!a&&V.isArray(s)?s.length:a,c?(V.hasOwnProp(s,a)?s[a]=[s[a],r]:s[a]=r,!l):((!s[a]||!V.isObject(s[a]))&&(s[a]=[]),t(n,r,s[a],i)&&V.isArray(s[a])&&(s[a]=i4(s[a])),!l)}if(V.isFormData(e)&&V.isFunction(e.entries)){const n={};return V.forEachEntry(e,(r,s)=>{t(s4(r),s,n,0)}),n}return null}function a4(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Rl={transitional:DS,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=V.isObject(t);if(i&&V.isHTMLForm(t)&&(t=new FormData(t)),V.isFormData(t))return s?JSON.stringify(MS(t)):t;if(V.isArrayBuffer(t)||V.isBuffer(t)||V.isStream(t)||V.isFile(t)||V.isBlob(t)||V.isReadableStream(t))return t;if(V.isArrayBufferView(t))return t.buffer;if(V.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return r4(t,this.formSerializer).toString();if((l=V.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return kd(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),a4(t)):t}],transformResponse:[function(t){const n=this.transitional||Rl.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(V.isResponse(t)||V.isReadableStream(t))return t;if(t&&V.isString(t)&&(r&&!this.responseType||s)){const a=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(a)throw l.name==="SyntaxError"?Me.from(l,Me.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Cn.classes.FormData,Blob:Cn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};V.forEach(["delete","get","head","post","put","patch"],e=>{Rl.headers[e]={}});const o4=V.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"]),l4=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(a){s=a.indexOf(":"),n=a.substring(0,s).trim().toLowerCase(),r=a.substring(s+1).trim(),!(!n||t[n]&&o4[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},my=Symbol("internals");function lo(e){return e&&String(e).trim().toLowerCase()}function Wc(e){return e===!1||e==null?e:V.isArray(e)?e.map(Wc):String(e)}function c4(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 u4=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function jp(e,t,n,r,s){if(V.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!V.isString(t)){if(V.isString(r))return t.indexOf(r)!==-1;if(V.isRegExp(r))return r.test(t)}}function d4(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function p4(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,a){return this[r].call(this,t,s,i,a)},configurable:!0})})}let Yn=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(l,c,u){const d=lo(c);if(!d)throw new Error("header name must be a non-empty string");const p=V.findKey(s,d);(!p||s[p]===void 0||u===!0||u===void 0&&s[p]!==!1)&&(s[p||c]=Wc(l))}const a=(l,c)=>V.forEach(l,(u,d)=>i(u,d,c));if(V.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(V.isString(t)&&(t=t.trim())&&!u4(t))a(l4(t),n);else if(V.isObject(t)&&V.isIterable(t)){let l={},c,u;for(const d of t){if(!V.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?V.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}a(l,n)}else t!=null&&i(n,t,r);return this}get(t,n){if(t=lo(t),t){const r=V.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return c4(s);if(V.isFunction(n))return n.call(this,s,r);if(V.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lo(t),t){const r=V.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||jp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(a){if(a=lo(a),a){const l=V.findKey(r,a);l&&(!n||jp(r,r[l],l,n))&&(delete r[l],s=!0)}}return V.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||jp(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return V.forEach(this,(s,i)=>{const a=V.findKey(r,i);if(a){n[a]=Wc(s),delete n[i];return}const l=t?d4(i):String(i).trim();l!==i&&delete n[i],n[l]=Wc(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return V.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&V.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(s=>r.set(s)),r}static accessor(t){const r=(this[my]=this[my]={accessors:{}}).accessors,s=this.prototype;function i(a){const l=lo(a);r[l]||(p4(s,a),r[l]=!0)}return V.isArray(t)?t.forEach(i):i(t),this}};Yn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);V.reduceDescriptors(Yn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});V.freezeMethods(Yn);function Np(e,t){const n=this||Rl,r=t||n,s=Yn.from(r.headers);let i=r.data;return V.forEach(e,function(l){i=l.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function OS(e){return!!(e&&e.__CANCEL__)}function Ha(e,t,n){Me.call(this,e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError"}V.inherits(Ha,Me,{__CANCEL__:!0});function IS(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Me("Request failed with status code "+n.status,[Me.ERR_BAD_REQUEST,Me.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function f4(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function m4(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[i];a||(a=u),n[s]=c,r[s]=u;let p=i,f=0;for(;p!==s;)f+=n[p++],p=p%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a{n=d,s=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const d=Date.now(),p=d-n;p>=r?a(u,d):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},r-p)))},()=>s&&a(s)]}const Mu=(e,t,n=3)=>{let r=0;const s=m4(50,250);return h4(i=>{const a=i.loaded,l=i.lengthComputable?i.total:void 0,c=a-r,u=s(c),d=a<=l;r=a;const p={loaded:a,total:l,progress:l?a/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-a)/u:void 0,event:i,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(p)},n)},hy=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},gy=e=>(...t)=>V.asap(()=>e(...t)),g4=Cn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Cn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Cn.origin),Cn.navigator&&/(msie|trident)/i.test(Cn.navigator.userAgent)):()=>!0,x4=Cn.hasStandardBrowserEnv?{write(e,t,n,r,s,i,a){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&l.push(`path=${r}`),V.isString(s)&&l.push(`domain=${s}`),i===!0&&l.push("secure"),V.isString(a)&&l.push(`SameSite=${a}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function v4(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function y4(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function FS(e,t,n){let r=!v4(t);return e&&(r||n==!1)?y4(e,t):t}const xy=e=>e instanceof Yn?{...e}:e;function Fi(e,t){t=t||{};const n={};function r(u,d,p,f){return V.isPlainObject(u)&&V.isPlainObject(d)?V.merge.call({caseless:f},u,d):V.isPlainObject(d)?V.merge({},d):V.isArray(d)?d.slice():d}function s(u,d,p,f){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u,p,f)}else return r(u,d,p,f)}function i(u,d){if(!V.isUndefined(d))return r(void 0,d)}function a(u,d){if(V.isUndefined(d)){if(!V.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,p){if(p in t)return r(u,d);if(p in e)return r(void 0,u)}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(u,d,p)=>s(xy(u),xy(d),p,!0)};return V.forEach(Object.keys({...e,...t}),function(d){const p=c[d]||s,f=p(e[d],t[d],d);V.isUndefined(f)&&p!==l||(n[d]=f)}),n}const BS=e=>{const t=Fi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:l}=t;if(t.headers=a=Yn.from(a),t.url=LS(FS(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),V.isFormData(n)){if(Cn.hasStandardBrowserEnv||Cn.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(V.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,p])=>{u.includes(d.toLowerCase())&&a.set(d,p)})}}if(Cn.hasStandardBrowserEnv&&(r&&V.isFunction(r)&&(r=r(t)),r||r!==!1&&g4(t.url))){const c=s&&i&&x4.read(i);c&&a.set(s,c)}return t},_4=typeof XMLHttpRequest<"u",b4=_4&&function(e){return new Promise(function(n,r){const s=BS(e);let i=s.data;const a=Yn.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,d,p,f,h,g;function v(){h&&h(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(s.method.toUpperCase(),s.url,!0),b.timeout=s.timeout;function x(){if(!b)return;const _=Yn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),R={data:!l||l==="text"||l==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:e,request:b};IS(function(A){n(A),v()},function(A){r(A),v()},R),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(r(new Me("Request aborted",Me.ECONNABORTED,e,b)),b=null)},b.onerror=function(S){const R=S&&S.message?S.message:"Network Error",E=new Me(R,Me.ERR_NETWORK,e,b);E.event=S||null,r(E),b=null},b.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const R=s.transitional||DS;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new Me(S,R.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,b)),b=null},i===void 0&&a.setContentType(null),"setRequestHeader"in b&&V.forEach(a.toJSON(),function(S,R){b.setRequestHeader(R,S)}),V.isUndefined(s.withCredentials)||(b.withCredentials=!!s.withCredentials),l&&l!=="json"&&(b.responseType=s.responseType),u&&([f,g]=Mu(u,!0),b.addEventListener("progress",f)),c&&b.upload&&([p,h]=Mu(c),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",h)),(s.cancelToken||s.signal)&&(d=_=>{b&&(r(!_||_.type?new Ha(null,e,b):_),b.abort(),b=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const y=f4(s.url);if(y&&Cn.protocols.indexOf(y)===-1){r(new Me("Unsupported protocol "+y+":",Me.ERR_BAD_REQUEST,e));return}b.send(i||null)})},w4=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const i=function(u){if(!s){s=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Me?d:new Ha(d instanceof Error?d.message:d))}};let a=t&&setTimeout(()=>{a=null,i(new Me(`timeout ${t} of ms exceeded`,Me.ETIMEDOUT))},t);const l=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>V.asap(l),c}},k4=function*(e,t){let n=e.byteLength;if(n{const s=S4(e,t);let i=0,a,l=c=>{a||(a=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await s.next();if(u){l(),c.close();return}let p=d.byteLength;if(n){let f=i+=p;n(f)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},yy=64*1024,{isFunction:gc}=V,C4=(({Request:e,Response:t})=>({Request:e,Response:t}))(V.global),{ReadableStream:_y,TextEncoder:by}=V.global,wy=(e,...t)=>{try{return!!e(...t)}catch{return!1}},j4=e=>{e=V.merge.call({skipUndefined:!0},C4,e);const{fetch:t,Request:n,Response:r}=e,s=t?gc(t):typeof fetch=="function",i=gc(n),a=gc(r);if(!s)return!1;const l=s&&gc(_y),c=s&&(typeof by=="function"?(g=>v=>g.encode(v))(new by):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=i&&l&&wy(()=>{let g=!1;const v=new n(Cn.origin,{body:new _y,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!v}),d=a&&l&&wy(()=>V.isReadableStream(new r("").body)),p={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!p[g]&&(p[g]=(v,b)=>{let x=v&&v[g];if(x)return x.call(v);throw new Me(`Response type '${g}' is not supported`,Me.ERR_NOT_SUPPORT,b)})});const f=async g=>{if(g==null)return 0;if(V.isBlob(g))return g.size;if(V.isSpecCompliantForm(g))return(await new n(Cn.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(V.isArrayBufferView(g)||V.isArrayBuffer(g))return g.byteLength;if(V.isURLSearchParams(g)&&(g=g+""),V.isString(g))return(await c(g)).byteLength},h=async(g,v)=>{const b=V.toFiniteNumber(g.getContentLength());return b??f(v)};return async g=>{let{url:v,method:b,data:x,signal:y,cancelToken:_,timeout:S,onDownloadProgress:R,onUploadProgress:E,responseType:A,headers:D,withCredentials:z="same-origin",fetchOptions:j}=BS(g),H=t||fetch;A=A?(A+"").toLowerCase():"text";let X=w4([y,_&&_.toAbortSignal()],S),re=null;const le=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let fe;try{if(E&&u&&b!=="get"&&b!=="head"&&(fe=await h(D,x))!==0){let se=new n(v,{method:"POST",body:x,duplex:"half"}),de;if(V.isFormData(x)&&(de=se.headers.get("content-type"))&&D.setContentType(de),se.body){const[L,be]=hy(fe,Mu(gy(E)));x=vy(se.body,yy,L,be)}}V.isString(z)||(z=z?"include":"omit");const xe=i&&"credentials"in n.prototype,oe={...j,signal:X,method:b.toUpperCase(),headers:D.normalize().toJSON(),body:x,duplex:"half",credentials:xe?z:void 0};re=i&&new n(v,oe);let B=await(i?H(re,j):H(v,oe));const Y=d&&(A==="stream"||A==="response");if(d&&(R||Y&&le)){const se={};["status","statusText","headers"].forEach(Le=>{se[Le]=B[Le]});const de=V.toFiniteNumber(B.headers.get("content-length")),[L,be]=R&&hy(de,Mu(gy(R),!0))||[];B=new r(vy(B.body,yy,L,()=>{be&&be(),le&&le()}),se)}A=A||"text";let N=await p[V.findKey(p,A)||"text"](B,g);return!Y&&le&&le(),await new Promise((se,de)=>{IS(se,de,{data:N,headers:Yn.from(B.headers),status:B.status,statusText:B.statusText,config:g,request:re})})}catch(xe){throw le&&le(),xe&&xe.name==="TypeError"&&/Load failed|fetch/i.test(xe.message)?Object.assign(new Me("Network Error",Me.ERR_NETWORK,g,re),{cause:xe.cause||xe}):Me.from(xe,xe&&xe.code,g,re)}}},N4=new Map,US=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,i=[r,s,n];let a=i.length,l=a,c,u,d=N4;for(;l--;)c=i[l],u=d.get(c),u===void 0&&d.set(c,u=l?new Map:j4(t)),d=u;return u};US();const Lg={http:qM,xhr:b4,fetch:{get:US}};V.forEach(Lg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const ky=e=>`- ${e}`,P4=e=>V.isFunction(e)||e===null||e===!1;function R4(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,s;const i={};for(let a=0;a`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?a.length>1?`since : +`+a.map(ky).join(` +`):" "+ky(a[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const VS={getAdapter:R4,adapters:Lg};function Pp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ha(null,e)}function Sy(e){return Pp(e),e.headers=Yn.from(e.headers),e.data=Np.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),VS.getAdapter(e.adapter||Rl.adapter,e)(e).then(function(r){return Pp(e),r.data=Np.call(e,e.transformResponse,r),r.headers=Yn.from(r.headers),r},function(r){return OS(r)||(Pp(e),r&&r.response&&(r.response.data=Np.call(e,e.transformResponse,r.response),r.response.headers=Yn.from(r.response.headers))),Promise.reject(r)})}const zS="1.13.2",Sd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Sd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ey={};Sd.transitional=function(t,n,r){function s(i,a){return"[Axios v"+zS+"] Transitional option '"+i+"'"+a+(r?". "+r:"")}return(i,a,l)=>{if(t===!1)throw new Me(s(a," has been removed"+(n?" in "+n:"")),Me.ERR_DEPRECATED);return n&&!Ey[a]&&(Ey[a]=!0,console.warn(s(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,a,l):!0}};Sd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function A4(e,t,n){if(typeof e!="object")throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const i=r[s],a=t[i];if(a){const l=e[i],c=l===void 0||a(l,i,e);if(c!==!0)throw new Me("option "+i+" must be "+c,Me.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Me("Unknown option "+i,Me.ERR_BAD_OPTION)}}const Gc={assertOptions:A4,validators:Sd},qr=Gc.validators;let Ti=class{constructor(t){this.defaults=t||{},this.interceptors={request:new fy,response:new fy}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fi(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:i}=n;r!==void 0&&Gc.assertOptions(r,{silentJSONParsing:qr.transitional(qr.boolean),forcedJSONParsing:qr.transitional(qr.boolean),clarifyTimeoutError:qr.transitional(qr.boolean)},!1),s!=null&&(V.isFunction(s)?n.paramsSerializer={serialize:s}:Gc.assertOptions(s,{encode:qr.function,serialize:qr.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gc.assertOptions(n,{baseUrl:qr.spelling("baseURL"),withXsrfToken:qr.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=i&&V.merge(i.common,i[n.method]);i&&V.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=Yn.concat(a,i);const l=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,p=0,f;if(!c){const g=[Sy.bind(this),void 0];for(g.unshift(...l),g.push(...u),f=g.length,d=Promise.resolve(n);p{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](s);r._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(l=>{r.subscribe(l),i=l}).then(s);return a.cancel=function(){r.unsubscribe(i)},a},t(function(i,a,l){r.reason||(r.reason=new Ha(i,a,l),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 $S(function(s){t=s}),cancel:t}}};function L4(e){return function(n){return e.apply(null,n)}}function D4(e){return V.isObject(e)&&e.isAxiosError===!0}const Cm={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(Cm).forEach(([e,t])=>{Cm[t]=e});function HS(e){const t=new Ti(e),n=bS(Ti.prototype.request,t);return V.extend(n,Ti.prototype,t,{allOwnKeys:!0}),V.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return HS(Fi(e,s))},n}const qt=HS(Rl);qt.Axios=Ti;qt.CanceledError=Ha;qt.CancelToken=T4;qt.isCancel=OS;qt.VERSION=zS;qt.toFormData=kd;qt.AxiosError=Me;qt.Cancel=qt.CanceledError;qt.all=function(t){return Promise.all(t)};qt.spread=L4;qt.isAxiosError=D4;qt.mergeConfig=Fi;qt.AxiosHeaders=Yn;qt.formToJSON=e=>MS(V.isHTMLForm(e)?new FormData(e):e);qt.getAdapter=VS.getAdapter;qt.HttpStatusCode=Cm;qt.default=qt;const{Axios:F8,AxiosError:B8,CanceledError:U8,isCancel:V8,CancelToken:z8,VERSION:$8,all:H8,Cancel:q8,isAxiosError:W8,spread:G8,toFormData:K8,AxiosHeaders:Q8,HttpStatusCode:Y8,formToJSON:X8,getAdapter:J8,mergeConfig:Z8}=qt,ye=qt.create({baseURL:"/api/v1",headers:{"Content-Type":"application/json"}}),jm="lakemeter:session-expired";function Ur(e){return e&&typeof e=="object"&&"success"in e&&"data"in e?e.data:e}let Nm=!1;const M4=()=>{Nm=!1};ye.interceptors.response.use(e=>e,e=>{var t,n,r,s,i;return(((t=e.response)==null?void 0:t.status)===401||((n=e.response)==null?void 0:n.status)===403)&&(console.error("Session expired or authentication required"),Nm||(Nm=!0,window.dispatchEvent(new CustomEvent(jm,{detail:{status:(r=e.response)==null?void 0:r.status,message:((i=(s=e.response)==null?void 0:s.data)==null?void 0:i.detail)||"Your session has expired"}})))),Promise.reject(e)});const O4=async()=>{const{data:e}=await ye.get("/estimates/me/info");return e},Cy=async e=>{const{data:t}=await ye.get("/estimates/",{params:e});return t},I4=async e=>{const{data:t}=await ye.get(`/estimates/${e}`);return t},F4=async e=>{const{data:t}=await ye.get(`/estimates/${e}/full`);return t},B4=async e=>{const{data:t}=await ye.post("/estimates/",e);return t},U4=async(e,t)=>{const{data:n}=await ye.put(`/estimates/${e}`,t);return n},V4=async e=>{await ye.delete(`/estimates/${e}`)},z4=async e=>{const{data:t}=await ye.post(`/estimates/${e}/duplicate`);return t},$4=async(e,t)=>{const{data:n}=await ye.post(`/estimates/${e}/clone`,{new_name:t});return n},H4=async(e,t)=>{const{data:n}=await ye.post(`/line-items/${e}/clone`,{new_name:t});return n},q4=async e=>{const{data:t}=await ye.get(`/line-items/estimate/${e}`);return t},W4=async e=>{const{data:t}=await ye.post("/line-items/",e);return t},G4=async(e,t)=>{const{data:n}=await ye.put(`/line-items/${e}`,t);return n},K4=async e=>{await ye.delete(`/line-items/${e}`)},Q4=async(e,t)=>{await ye.post("/line-items/reorder",t,{params:{estimate_id:e}})},Y4=async e=>{await ye.post("/estimates/reorder",e)},X4=async()=>{const{data:e}=await ye.get("/workload-types");return e},xc=async e=>{var n;const{data:t}=await ye.get("/regions",{params:{cloud:e.toUpperCase()}});return t.success&&((n=t.data)!=null&&n.regions)?t.data.regions:[]},J4=async e=>{const{data:t}=await ye.get("/tiers",{params:e?{cloud:e}:{}}),n=Ur(t);return Array.isArray(n)?n:(n==null?void 0:n.tiers)||[]},Z4=async()=>{const{data:e}=await ye.get("/clouds");if(Array.isArray(e)&&e.length>0&&e[0].id)return e;throw new Error("Invalid cloud providers response")},eO=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-sizes"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.sizes)||[]},tO=async()=>{const{data:e}=await ye.get("/dlt/editions"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.editions)||[]},nO=async()=>{const{data:e}=await ye.get("/reference/fmapi-models");return e},jy=async()=>{const{data:e}=await ye.get("/instances/families"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.families)||[]},rO=async(e,t,n)=>{var a;const r={cloud:e,limit:1e3};t&&(r.region=t);const{data:s}=await ye.get("/instances/types",{params:r});return(Array.isArray(s)?s:((a=s==null?void 0:s.data)==null?void 0:a.instance_types)||(s==null?void 0:s.items)||(s==null?void 0:s.data)||[]).map(l=>{const c=l.instance_type||l.id||l.name||"";return{id:c,name:c,vcpus:l.vcpus,memory_gb:l.memory_gb,dbu_rate:l.dbu_rate,instance_family:l.instance_family,vm_pricing:l.vm_pricing}})},sO=async e=>{var s,i;const t={cloud:e.cloud,region:e.region,instance_type:e.instance_type};e.pricing_tier&&(t.pricing_tier=e.pricing_tier);const n=(s=e.pricing_tier)==null?void 0:s.toLowerCase();(n==="reserved_1y"||n==="reserved_3y")&&e.payment_option&&e.payment_option!=="NA"&&(t.payment_option=e.payment_option);const{data:r}=await ye.get("/instances/vm-costs",{params:t});if(r!=null&&r.success&&((i=r==null?void 0:r.data)!=null&&i.pricing_options)){const{cloud:a,region:l,instance_type:c,instance_specs:u}=r.data,d=u==null?void 0:u.dbu_rate;return r.data.pricing_options.map(p=>({cloud:a,region:l,instance_type:c,pricing_tier:p.pricing_tier,payment_option:p.payment_option,cost_per_hour:p.cost_per_hour,currency:"USD",dbu_rate:d}))}return Array.isArray(r)?r:[]},Ny=async()=>{const{data:e}=await ye.get("/dbsql/warehouse-types"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.warehouse_types)||[]},Py=async(e,t)=>{const{data:n}=await ye.get("/vector-search/modes",{params:{cloud:e,mode:t}}),r=Ur(n);return Array.isArray(r)?r:(r==null?void 0:r.modes)||[]},Ry=async(e,t)=>{const{data:n}=await ye.get("/photon/multipliers",{params:{cloud:e,sku_type:t}}),r=Ur(n);return Array.isArray(r)?r:(r==null?void 0:r.multipliers)||[]},Ay=async()=>{const{data:e}=await ye.get("/serverless/modes"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.modes)||[]},iO=async e=>{var n;const{data:t}=await ye.get("/pricing/dbu-rates",{params:e});return((n=t==null?void 0:t.data)==null?void 0:n.dbu_rates)||(t==null?void 0:t.dbu_rates)||(Array.isArray(t)?t:[])},Ty=async e=>{const{data:t}=await ye.get("/model-serving/gpu-types",{params:{cloud:e}}),n=Ur(t);return Array.isArray(n)?n:(n==null?void 0:n.gpu_types)||[]},Pm=async()=>{const{data:e}=await ye.get("/fmapi/databricks-models/list"),t=Ur(e);return Array.isArray(t)?t:(t==null?void 0:t.models)||[]},qS=async(e,t,n)=>{const{data:r}=await ye.get("/fmapi/databricks-models",{params:{model:e,cloud:t,rate_type:n}}),s=Ur(r);return Array.isArray(s)?s:(s==null?void 0:s.models)||[]},aO=async e=>{const t=[];try{const n=await Pm(),r=5;for(let s=0;sqS(l,e).catch(()=>[])))).forEach(l=>t.push(...l))}}catch(n){console.warn("Failed to fetch all FMAPI Databricks rates:",n)}return t},oO=async()=>{const{data:e}=await ye.get("/fmapi-databricks");if(e&&e.model_types&&Array.isArray(e.model_types))return e;throw new Error("Invalid FMAPI Databricks config response")},WS=async e=>{const{data:t}=await ye.get("/fmapi/proprietary-models",{params:e});return t},lO=async e=>{const t=["openai","anthropic","google"],n=[];try{(await Promise.all(t.map(s=>WS({provider:s,cloud:e}).catch(()=>[])))).forEach(s=>n.push(...s))}catch(r){console.warn("Failed to fetch all FMAPI Proprietary rates:",r)}return n},cO=async()=>{const{data:e}=await ye.get("/fmapi-proprietary"),t=new Set(["anthropic","openai","google","meta","cohere","ai21"]);if(e&&e.providers&&Array.isArray(e.providers)&&e.providers.length>0&&t.has(e.providers[0].id))return e;throw new Error("Invalid FMAPI Proprietary config response")},uO=async e=>{const{data:t}=await ye.get("/vm-pricing",{params:e});return t},dO=async()=>{const{data:e}=await ye.get("/vm-pricing/tiers");return e},pO=async()=>{const{data:e}=await ye.get("/vm-pricing/payment-options");return e},GS=async e=>{const{data:t}=await ye.get(`/export/estimate/${e}/excel`,{responseType:"blob"});return t},fO=async()=>{const{data:e}=await ye.get("/export/estimates/excel",{responseType:"blob"});return e},mO=async e=>{const{data:t}=await ye.post("/calculate/jobs-classic",e);return t},hO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-classic",e);return t},gO=async e=>{const{data:t}=await ye.post("/calculate/jobs-serverless",e);return t},xO=async e=>{const{data:t}=await ye.post("/calculate/all-purpose-serverless",e);return t},KS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-classic-pro",e);return t},QS=async e=>{const{data:t}=await ye.post("/calculate/dbsql-serverless",e);return t},YS=async e=>{const{data:t}=await ye.post("/calculate/dlt-classic",e);return t},XS=async e=>{const{data:t}=await ye.post("/calculate/dlt-serverless",e);return t},JS=async e=>{const{data:t}=await ye.post("/calculate/vector-search",e);return t},ZS=async e=>{const{data:t}=await ye.post("/calculate/model-serving",e);return t},eE=async e=>{const{data:t}=await ye.post("/calculate/fmapi-databricks",e);return t},tE=async e=>{const{data:t}=await ye.post("/calculate/fmapi-proprietary",e);return t},nE=async e=>{const{data:t}=await ye.post("/calculate/databricks-apps",e);return t},rE=async e=>{const{data:t}=await ye.post("/calculate/clean-room",e);return t},sE=async e=>{const{data:t}=await ye.post("/calculate/ai-parse",e);return t},iE=async e=>{const{data:t}=await ye.post("/calculate/shutterstock-imageai",e);return t},aE=async e=>{const{data:t}=await ye.post("/calculate/lakeflow-connect",e);return t},oE=async e=>{const{data:t}=await ye.post("/calculate/lakebase",e);return t},Ly=async(e,t,n)=>{var r;switch(e){case"JOBS":return t?gO(n):mO(n);case"ALL_PURPOSE":return t?xO(n):hO(n);case"DLT":return t?XS(n):YS(n);case"DBSQL":return((r=n.warehouse_type)==null?void 0:r.toUpperCase())==="SERVERLESS"?QS(n):KS(n);case"VECTOR_SEARCH":return JS(n);case"MODEL_SERVING":return ZS(n);case"FMAPI_DATABRICKS":return eE(n);case"FMAPI_PROPRIETARY":return tE(n);case"LAKEBASE":return oE(n);case"DATABRICKS_APPS":return nE(n);case"CLEAN_ROOM":return rE(n);case"AI_PARSE":return sE(n);case"SHUTTERSTOCK_IMAGEAI":return iE(n);case"LAKEFLOW_CONNECT":return aE(n);default:throw new Error(`Unknown workload type: ${e}`)}},vO="/static/pricing";async function ls(e){const t=await fetch(`${vO}/${e}`);if(!t.ok)throw new Error(`Failed to load ${e}: ${t.status}`);return t.json()}async function yO(){console.log("📦 Loading pricing bundle...");const e=Date.now();try{const[t,n,r,s,i,a,l,c,u]=await Promise.all([ls("instance-dbu-rates.json"),ls("dbu-multipliers.json"),ls("dbu-rates.json"),ls("dbsql-rates.json"),ls("dbsql-warehouse-config.json"),ls("vector-search-rates.json"),ls("model-serving-rates.json"),ls("fmapi-databricks-rates.json"),ls("fmapi-proprietary-rates.json")]),d=Date.now()-e;return console.log(`✅ Pricing bundle loaded in ${d}ms`),{instanceDBURates:t,dbuMultipliers:n,dbuRates:r,dbsqlRates:s,dbsqlWarehouseConfig:i,vectorSearchRates:a,modelServingRates:l,fmapiDatabricksRates:c,fmapiProprietaryRates:u,loadedAt:new Date,isLoaded:!0}}catch(t){return console.error("❌ Failed to load pricing bundle:",t),lE()}}function lE(){return{instanceDBURates:{},dbuMultipliers:{},dbuRates:{},dbsqlRates:{},dbsqlWarehouseConfig:{},vectorSearchRates:{},modelServingRates:{},fmapiDatabricksRates:{},fmapiProprietaryRates:{},loadedAt:null,isLoaded:!1}}function Rm(e,t,n){const r=e.instanceDBURates[t.toLowerCase()];if(!r)return .5;const s=r[n];return(s==null?void 0:s.dbu_rate)??.5}function cE(e,t,n){const r=`${t.toLowerCase()}:${n}:photon`,s=e.dbuMultipliers[r];if(s!=null&&s.multiplier)return s.multiplier;const i=`${t.toLowerCase()}:${n}`,a=e.dbuMultipliers[i];return a!=null&&a.multiplier?a.multiplier:2}function Dg(e,t,n,r,s){const i=r.toUpperCase(),a=`${t.toLowerCase()}:${n}:${i}`,l=e.dbuRates[a];if(l&&l[s]!==void 0)return l[s];const c=`${t.toLowerCase()}:global:${i}`,u=e.dbuRates[c];if(u&&u[s]!==void 0)return u[s];for(const p of Object.keys(e.dbuRates))if(p.startsWith(`${t.toLowerCase()}:`)&&p.endsWith(`:${i}`)){const f=e.dbuRates[p];if(f&&f[s]!==void 0)return f[s]}return{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.2,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07}[s]??.15}function _O(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlRates[s]??null}function cl(e,t,n,r){const s=`${t.toLowerCase()}:${n.toLowerCase()}:${r}`;return e.dbsqlWarehouseConfig[s]??null}function bO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.vectorSearchRates[r]??null}function wO(e,t,n){const r=`${t.toLowerCase()}:${n}`;return e.modelServingRates[r]??null}function kO(e,t,n,r){const s=`${t.toLowerCase()}:${n}:${r}`;return e.fmapiDatabricksRates[s]??null}function SO(e,t,n,r,s,i,a){const l=`${t.toLowerCase()}:${n}:${r}:${s}:${i}:${a}`;return e.fmapiProprietaryRates[l]??null}const EO={JOBS_COMPUTE:"JOBS",JOBS_LIGHT_COMPUTE:"JOBS",AUTOMATED_JOBS_COMPUTE:"JOBS",AUTOMATED_JOBS_LIGHT_COMPUTE:"JOBS","JOBS_COMPUTE_(PHOTON)":"JOBS",JOBS_SERVERLESS_COMPUTE:"JOBS",ALL_PURPOSE_COMPUTE:"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(PHOTON)":"ALL_PURPOSE","ALL_PURPOSE_COMPUTE_(DLT)":"ALL_PURPOSE",ALL_PURPOSE_SERVERLESS_COMPUTE:"ALL_PURPOSE",INTERACTIVE_SERVERLESS_COMPUTE:"ALL_PURPOSE",DLT_CORE_COMPUTE:"DLT",DLT_PRO_COMPUTE:"DLT",DLT_ADVANCED_COMPUTE:"DLT","DLT_CORE_COMPUTE_(PHOTON)":"DLT","DLT_PRO_COMPUTE_(PHOTON)":"DLT","DLT_ADVANCED_COMPUTE_(PHOTON)":"DLT",DELTA_LIVE_TABLES_SERVERLESS:"DLT",SQL_COMPUTE:"DBSQL",SQL_PRO_COMPUTE:"DBSQL",SERVERLESS_SQL_COMPUTE:"DBSQL",VECTOR_SEARCH_ENDPOINT:"VECTOR_SEARCH",MOSAIC_AI_VECTOR_SEARCH:"VECTOR_SEARCH",SERVERLESS_REAL_TIME_INFERENCE:"MODEL_SERVING",SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:"MODEL_SERVING",MODEL_SERVING_SERVERLESS:"MODEL_SERVING",MOSAIC_AI_MODEL_SERVING:"MODEL_SERVING",FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",MODEL_TRAINING:"FMAPI_DATABRICKS",MOSAIC_AI_FOUNDATION_MODEL_SERVING:"FMAPI_DATABRICKS",DATABRICKS_FOUNDATION_MODEL_TRAINING:"FMAPI_DATABRICKS",OPENAI_MODEL_SERVING:"FMAPI_PROPRIETARY",ANTHROPIC_MODEL_SERVING:"FMAPI_PROPRIETARY",GOOGLE_MODEL_SERVING:"FMAPI_PROPRIETARY",GEMINI_MODEL_SERVING:"FMAPI_PROPRIETARY",EXTERNAL_MODEL_SERVING:"FMAPI_PROPRIETARY",DATABASE_SERVERLESS_COMPUTE:"LAKEBASE",LAKEBASE_COMPUTE:"LAKEBASE"},Dy=["JOBS","ALL_PURPOSE","DLT","DBSQL","VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS"];function uE(e,t,n,r){if(!e.isLoaded||!e.dbuRates)return Dy;const s=t.toLowerCase(),i=`${s}:${n}:${r.toUpperCase()}`,a=e.dbuRates[i];if(!a||Object.keys(a).length===0)return Dy;const l=new Set;for(const c of Object.keys(a)){const u=EO[c];u&&l.add(u)}if(e.vectorSearchRates){const c=`${s}:standard`,u=`${s}:storage_optimized`;(e.vectorSearchRates[c]||e.vectorSearchRates[u])&&l.add("VECTOR_SEARCH")}return e.modelServingRates&&Object.keys(e.modelServingRates).some(u=>u.startsWith(`${s}:`))&&l.add("MODEL_SERVING"),e.fmapiDatabricksRates&&Object.keys(e.fmapiDatabricksRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_DATABRICKS"),e.fmapiProprietaryRates&&Object.keys(e.fmapiProprietaryRates).some(u=>u.startsWith(`${s}:`))&&l.add("FMAPI_PROPRIETARY"),l.has("ALL_PURPOSE")&&l.add("DATABRICKS_APPS"),Array.from(l).sort()}function CO(e,t){if(!e.isLoaded||!e.dbuRates)return[];const n=`${t.toLowerCase()}:`,r=new Set;for(const s of Object.keys(e.dbuRates))if(s.startsWith(n)){const i=s.split(":");i.length>=2&&r.add(i[1])}return Array.from(r).sort()}const vc={},jO="v6",us=`lakemeter_reference_data_${jO}`,NO=4*60*60*1e3;function PO(){try{const e=localStorage.getItem(us);if(!e)return null;const t=JSON.parse(e);if(Date.now()-t.timestamp>NO||!t.workloadTypes||!t.cloudProviders||!t.regionsMap&&!t.regions)return localStorage.removeItem(us),null;if(t.regionsMap){if(!Object.values(t.regionsMap).some(r=>Array.isArray(r)&&r.length>0))return localStorage.removeItem(us),null}else if(t.regions&&t.regions.length===0)return localStorage.removeItem(us),null;return t}catch{return localStorage.removeItem(us),null}}function RO(e){try{const t={...e,timestamp:Date.now()};localStorage.setItem(us,JSON.stringify(t))}catch{}}function AO(){try{localStorage.removeItem(us)}catch{}}const Rp=[{cloud:"aws",display_name:"AWS",code:"AWS"},{cloud:"azure",display_name:"Azure",code:"AZURE"},{cloud:"gcp",display_name:"GCP",code:"GCP"}],Ap=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],Tp=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],Lp=[{id:"on_demand",name:"On Demand"},{id:"1yr_reserved",name:"1-Year Reserved"},{id:"3yr_reserved",name:"3-Year Reserved"}],Dp=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],Mp=[{mode:"standard",display_name:"Standard"},{mode:"performance",display_name:"Performance"}],Op=[{provider:"databricks",display_name:"Databricks"},{provider:"openai",display_name:"OpenAI"},{provider:"anthropic",display_name:"Anthropic"},{provider:"google",display_name:"Google"}],bs=iM((e,t)=>({currentUser:null,isAuthenticated:!1,authError:null,sessionExpired:!1,setSessionExpired:n=>e({sessionExpired:n}),estimates:[],currentEstimate:null,lineItems:[],isLoading:!1,error:null,workloadTypes:[{workload_type:"JOBS",display_name:"Lakeflow Jobs",description:"Batch job workloads",sku_product_type_standard:"JOBS_COMPUTE",sku_product_type_photon:"JOBS_COMPUTE_(PHOTON)",sku_product_type_serverless:"JOBS_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"ALL_PURPOSE",display_name:"All Purpose Compute",description:"Interactive compute",sku_product_type_standard:"ALL_PURPOSE_COMPUTE",sku_product_type_photon:"ALL_PURPOSE_COMPUTE_(PHOTON)",sku_product_type_serverless:"INTERACTIVE_SERVERLESS_COMPUTE",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_usage_runs:!0},{workload_type:"DLT",display_name:"Lakeflow Spark Declarative Pipelines",description:"Spark Declarative Pipelines",sku_product_type_standard:"DLT_CORE_COMPUTE",sku_product_type_photon:"DLT_CORE_COMPUTE_(PHOTON)",sku_product_type_serverless:"DELTA_LIVE_TABLES_SERVERLESS",show_compute_config:!0,show_serverless_toggle:!0,show_photon_toggle:!0,show_dlt_config:!0,show_usage_runs:!0},{workload_type:"DBSQL",display_name:"Databricks SQL",description:"SQL warehouse workloads",sku_product_type_standard:"SQL_COMPUTE",sku_product_type_photon:"SQL_PRO_COMPUTE",sku_product_type_serverless:"SERVERLESS_SQL_COMPUTE",show_dbsql_config:!0,show_usage_runs:!0},{workload_type:"VECTOR_SEARCH",display_name:"Vector Search",description:"Vector search endpoints",sku_product_type_standard:"VECTOR_SEARCH_ENDPOINT",show_vector_search_mode:!0},{workload_type:"MODEL_SERVING",display_name:"Model Serving",description:"Real-time ML inference",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE",show_model_serving_config:!0},{workload_type:"FMAPI_DATABRICKS",display_name:"Foundation Models (Databricks)",description:"Databricks foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"FMAPI_PROPRIETARY",display_name:"Foundation Models (Proprietary)",description:"External foundation model APIs",sku_product_type_standard:"FOUNDATION_MODEL_TRAINING",show_fmapi_config:!0},{workload_type:"LAKEBASE",display_name:"Lakebase",description:"Database workloads",sku_product_type_standard:"DATABASE_SERVERLESS_COMPUTE",show_lakebase_config:!0},{workload_type:"DATABRICKS_APPS",display_name:"Databricks Apps",description:"Managed app hosting",sku_product_type_standard:"ALL_PURPOSE_SERVERLESS_COMPUTE",show_usage_hours:!0},{workload_type:"CLEAN_ROOM",display_name:"Clean Room",description:"Secure data collaboration",sku_product_type_standard:"CLEAN_ROOMS_COLLABORATOR",show_usage_runs:!0},{workload_type:"AI_PARSE",display_name:"AI Parse (Document AI)",description:"Document parsing and extraction",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"SHUTTERSTOCK_IMAGEAI",display_name:"Shutterstock ImageAI",description:"AI image generation",sku_product_type_standard:"SERVERLESS_REAL_TIME_INFERENCE"},{workload_type:"LAKEFLOW_CONNECT",display_name:"Lakeflow Connect",description:"Data ingestion pipelines",sku_product_type_standard:"DELTA_LIVE_TABLES_SERVERLESS",show_usage_runs:!0}],cloudProviders:Rp,regions:[],regionsMap:{},tiers:[],instanceTypes:[],instanceFamilies:[],dbsqlSizes:Ap,dbsqlWarehouseTypes:[],dltEditions:Tp,fmapiProviders:Op,fmapiDatabricksModels:[],selectedCloud:"aws",selectedRegion:"",selectedTier:"PREMIUM",modelServingGPUTypes:[],fmapiDatabricksConfig:null,fmapiProprietaryConfig:null,vmPricing:[],vmPricingTiers:Lp,vmPaymentOptions:Dp,vmPricingMap:{},instanceDbuRateMap:{},dbuRates:[],dbuRatesMap:{},serverlessModes:Mp,photonMultipliers:[],vectorSearchModes:[],fmapiDatabricksRates:{},fmapiProprietaryRates:{},pricingBundle:lE(),isPricingBundleLoaded:!1,workloadCosts:{},localCalculatedCosts:{},isCalculatingCost:!1,calculatingCostIds:new Set,isReferenceDataLoaded:!1,isLoadingReferenceData:!1,_regionsCache:{},_dbuRatesCache:{},_instanceTypesCache:{},_estimatesLastFetch:0,fetchCurrentUser:async()=>{var n;try{const r=await O4();e({currentUser:r,isAuthenticated:!0,authError:null})}catch(r){const s=r instanceof Error&&"response"in r&&((n=r.response)==null?void 0:n.status)===401?"Please access through Databricks Apps or set LOCAL_DEV_EMAIL environment variable.":"Failed to authenticate";e({currentUser:null,isAuthenticated:!1,authError:s})}},clearAuthError:()=>e({authError:null}),fetchEstimates:async(n=!1)=>{const r=t().estimates,s=t()._estimatesLastFetch||0,i=5*1e3;if(r.length>0&&!n){if(Date.now()-s>i)try{const l=await Cy();e({estimates:l,_estimatesLastFetch:Date.now()})}catch(l){console.error("Background refresh failed:",l)}return}e({isLoading:!0,error:null});try{const a=await Cy();e({estimates:a,isLoading:!1,_estimatesLastFetch:Date.now()})}catch{e({error:"Failed to fetch estimates",isLoading:!1})}},fetchEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await I4(n);e({currentEstimate:r,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},fetchEstimateWithLineItems:async n=>{e({isLoading:!0,error:null});try{const{estimate:r,line_items:s}=await F4(n);e({currentEstimate:r,lineItems:s,isLoading:!1})}catch{e({error:"Failed to fetch estimate",isLoading:!1})}},createEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await B4(n);return e(s=>({estimates:[{...r,line_item_count:0},...s.estimates],currentEstimate:r,isLoading:!1})),r}catch(r){throw e({error:"Failed to create estimate",isLoading:!1}),r}},updateEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await U4(n,r);return e(i=>{var a;return{estimates:i.estimates.map(l=>l.estimate_id===n?{...l,...s}:l),currentEstimate:((a=i.currentEstimate)==null?void 0:a.estimate_id)===n?{...i.currentEstimate,...s}:i.currentEstimate,isLoading:!1}}),s}catch(s){throw e({error:"Failed to update estimate",isLoading:!1}),s}},deleteEstimate:async n=>{e({isLoading:!0,error:null});try{await V4(n),e(r=>{var s;return{estimates:r.estimates.filter(i=>i.estimate_id!==n),currentEstimate:((s=r.currentEstimate)==null?void 0:s.estimate_id)===n?null:r.currentEstimate,isLoading:!1}})}catch(r){throw e({error:"Failed to delete estimate",isLoading:!1}),r}},duplicateEstimate:async n=>{e({isLoading:!0,error:null});try{const r=await z4(n);return e(s=>{var i;return{estimates:[{...r,line_item_count:((i=s.estimates.find(a=>a.estimate_id===n))==null?void 0:i.line_item_count)||0},...s.estimates],isLoading:!1}}),r}catch(r){throw e({error:"Failed to duplicate estimate",isLoading:!1}),r}},setCurrentEstimate:n=>e({currentEstimate:n}),clearEstimateState:()=>e({currentEstimate:null,lineItems:[],workloadCosts:{}}),fetchLineItems:async n=>{e({isLoading:!0,error:null});try{const r=await q4(n);e({lineItems:r,isLoading:!1})}catch{e({error:"Failed to fetch line items",isLoading:!1})}},createLineItem:async n=>{e({isLoading:!0,error:null});try{const r=await W4(n);return e(s=>({lineItems:[...s.lineItems,r],isLoading:!1})),r}catch(r){throw e({error:"Failed to create line item",isLoading:!1}),r}},updateLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await G4(n,r);return e(i=>({lineItems:i.lineItems.map(a=>a.line_item_id===n?{...a,...s}:a),isLoading:!1})),s}catch(s){throw e({error:"Failed to update line item",isLoading:!1}),s}},updateLineItemLocal:(n,r)=>{e(s=>({lineItems:s.lineItems.map(i=>i.line_item_id===n?{...i,...r}:i)}))},deleteLineItem:async n=>{e({isLoading:!0,error:null});try{await K4(n),e(r=>({lineItems:r.lineItems.filter(s=>s.line_item_id!==n),workloadCosts:Object.fromEntries(Object.entries(r.workloadCosts).filter(([s])=>s!==n)),isLoading:!1}))}catch(r){throw e({error:"Failed to delete line item",isLoading:!1}),r}},fetchReferenceData:async(n=!1)=>{var i,a,l,c;const r=t();if(r.isLoadingReferenceData||!n&&r.isReferenceDataLoaded)return;if(!n){const u=PO();if(u){const d=u.regionsMap||{aws:u.regions||[]};e({workloadTypes:u.workloadTypes||r.workloadTypes,cloudProviders:u.cloudProviders||Rp,dbsqlSizes:u.dbsqlSizes||Ap,dltEditions:u.dltEditions||Tp,fmapiProviders:u.fmapiProviders||Op,vmPricingTiers:u.vmPricingTiers||Lp,vmPaymentOptions:u.vmPaymentOptions||Dp,fmapiDatabricksConfig:!Array.isArray(u.fmapiDatabricksConfig)&&((a=(i=u.fmapiDatabricksConfig)==null?void 0:i.models)!=null&&a.llm)?u.fmapiDatabricksConfig:null,fmapiProprietaryConfig:!Array.isArray(u.fmapiProprietaryConfig)&&((l=u.fmapiProprietaryConfig)!=null&&l.providers)&&u.fmapiProprietaryConfig.providers.length>0&&!["aws","azure","gcp"].includes((c=u.fmapiProprietaryConfig.providers[0])==null?void 0:c.id)?u.fmapiProprietaryConfig:null,serverlessModes:u.serverlessModes||Mp,instanceTypes:u.instanceTypes||[],modelServingGPUTypes:u.modelServingGPUTypes||[],regions:u.regions||d.aws||[],regionsMap:d,photonMultipliers:u.photonMultipliers||[],instanceFamilies:u.instanceFamilies||[],dbsqlWarehouseTypes:u.dbsqlWarehouseTypes||[],fmapiDatabricksModels:u.fmapiDatabricksModels||[],isReferenceDataLoaded:!0,isLoadingReferenceData:!1});return}}e({isLoadingReferenceData:!0});const s="aws";try{const[u,d,p,f,h,g,v,b,x,y,_,S,R,E,A,D,z,j,H,X,re,le]=await Promise.all([X4().catch(()=>r.workloadTypes),Z4().catch(()=>Rp),eO().catch(()=>Ap),tO().catch(()=>Tp),nO().catch(()=>Op),dO().catch(()=>Lp),pO().catch(()=>Dp),oO().catch(()=>null),cO().catch(()=>null),Ay().catch(()=>Mp),Promise.resolve([]),Ty(s).catch(()=>[]),xc("aws").catch(()=>[]),xc("azure").catch(()=>[]),xc("gcp").catch(()=>[]),Ry(s).catch(()=>[]),Py(s).catch(()=>[]),aO(s).catch(()=>[]),lO(s).catch(()=>[]),jy().catch(()=>[]),Ny().catch(()=>[]),Pm().catch(()=>[])]),fe={aws:R,azure:E,gcp:A},xe=R,oe={};j.forEach(se=>{const de=`${se.model}:${se.rate_type}`;oe[de]=se});const B={};H.forEach(se=>{const de=`${se.provider}:${se.model}:${se.rate_type}`;B[de]=se});const Y=new Set(u.map(se=>se.workload_type)),N=[...u,...r.workloadTypes.filter(se=>!Y.has(se.workload_type))];e({workloadTypes:N,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:xe,regionsMap:fe,photonMultipliers:D,vectorSearchModes:z,fmapiDatabricksRates:oe,fmapiProprietaryRates:B,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le,isReferenceDataLoaded:!0,isLoadingReferenceData:!1}),RO({workloadTypes:u,cloudProviders:d,dbsqlSizes:p,dltEditions:f,fmapiProviders:h,vmPricingTiers:g,vmPaymentOptions:v,fmapiDatabricksConfig:b,fmapiProprietaryConfig:x,serverlessModes:y,instanceTypes:_,modelServingGPUTypes:S,regions:xe,regionsMap:fe,photonMultipliers:D,instanceFamilies:X,dbsqlWarehouseTypes:re,fmapiDatabricksModels:le})}catch(u){console.error("Failed to fetch reference data:",u),e({isReferenceDataLoaded:!0,isLoadingReferenceData:!1})}},clearReferenceCache:()=>{AO(),e({isReferenceDataLoaded:!1})},loadPricingBundle:async()=>{if(!t().isPricingBundleLoaded)try{const r=await yO();e({pricingBundle:r,isPricingBundleLoaded:r.isLoaded})}catch{console.warn("[PricingBundle] Failed to load, using API fallback")}},getRegionsForCloud:n=>{const r=t(),s=n.toLowerCase();return r.regionsMap[s]||[]},fetchRegions:async n=>{var a;const r=n.toLowerCase(),s=(a=t()._regionsCache)==null?void 0:a[r],i=5*60*1e3;if(s&&Date.now()-s.timestamp({regions:l,_regionsCache:{...c._regionsCache,[r]:{data:l,timestamp:Date.now()}}}))}catch(l){console.error("Failed to fetch regions:",l)}},fetchTiers:async n=>{try{const r=await J4(n);e({tiers:r})}catch(r){console.error("Failed to fetch tiers:",r)}},fetchInstanceTypes:async(n,r)=>{var l;const s=`${n.toLowerCase()}-${r||"all"}`,i=(l=t()._instanceTypesCache)==null?void 0:l[s],a=10*60*1e3;if(i&&Date.now()-i.timestamp({instanceTypes:c,selectedCloud:n,_instanceTypesCache:{...u._instanceTypesCache,[s]:{data:c,timestamp:Date.now()}}}))}catch(c){console.error("Failed to fetch instance types:",c)}},fetchInstanceFamilies:async()=>{try{const n=await jy();e({instanceFamilies:n})}catch(n){console.error("Failed to fetch instance families:",n)}},fetchModelServingGPUTypes:async n=>{try{const r=await Ty(n),s=Array.isArray(r)?r.map(i=>({id:i.id||i.gpu_type||i,name:i.name||i.gpu_type||i,dbu_per_hour:i.dbu_per_hour??i.dbu_rate??0})):[];e({modelServingGPUTypes:s})}catch(r){console.error("Failed to fetch model serving GPU types:",r)}},fetchDBSQLWarehouseTypes:async()=>{try{const n=await Ny();e({dbsqlWarehouseTypes:n})}catch(n){console.error("Failed to fetch DBSQL warehouse types:",n)}},fetchFMAPIDatabricksModels:async()=>{try{const n=await Pm();e({fmapiDatabricksModels:n})}catch(n){console.error("Failed to fetch FMAPI Databricks models:",n)}},setSelectedCloud:n=>{e({selectedCloud:n});const r=t().selectedRegion;t().fetchRegions(n),r&&t().fetchInstanceTypes(n,r),t().fetchModelServingGPUTypes(n),t().fetchPhotonMultipliers(n),t().fetchVectorSearchModes(n)},setSelectedRegion:n=>{e({selectedRegion:n});const r=t().selectedCloud,s=t().selectedTier;n&&t().fetchInstanceTypes(r,n),n&&t().fetchDBURates(r,n,s)},setSelectedTier:n=>{e({selectedTier:n});const r=t().selectedCloud,s=t().selectedRegion;s&&t().fetchDBURates(r,s,n)},fetchVMPricing:async(n,r)=>{try{const s=await uO({cloud:n,region:r}),i={};s.forEach(a=>{const l=`${a.cloud.toLowerCase()}:${a.region}:${a.instance_type}:${a.pricing_tier}:${a.payment_option}`;i[l]=a.cost_per_hour}),e({vmPricing:s,vmPricingMap:i})}catch(s){console.error("Failed to fetch VM pricing:",s)}},fetchVMCostForInstance:async(n,r,s,i="on_demand",a="NA")=>{var f;if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",c=`${n.toLowerCase()}:${r}:${s}:${i}:${l}`,u=t().vmPricingMap;if(u[c]!==void 0)return u[c];const d=`${n.toLowerCase()}:${r}:${s}`;if(d in vc){await vc[d];const h=t().vmPricingMap[c];return h!==void 0?h:0}const p=sO({cloud:n.toUpperCase(),region:r,instance_type:s});vc[d]=p;try{const h=await p;if(h&&h.length>0){const g={};let v;h.forEach(x=>{const y=`${n.toLowerCase()}:${r}:${s}:${x.pricing_tier}:${x.payment_option}`;g[y]=x.cost_per_hour,x.dbu_rate!==void 0&&v===void 0&&(v=x.dbu_rate)}),e(x=>({vmPricingMap:{...x.vmPricingMap,...g},instanceDbuRateMap:v!==void 0?{...x.instanceDbuRateMap,[`${n.toLowerCase()}:${s}`]:v}:x.instanceDbuRateMap}));const b=h.find(x=>x.pricing_tier===i&&(x.payment_option===l||l==="NA"));return(b==null?void 0:b.cost_per_hour)||((f=h[0])==null?void 0:f.cost_per_hour)||0}return 0}catch(h){return h instanceof Error&&!h.message.includes("404")&&console.error(`[VM Cost] Fetch failed for ${s}:`,h.message),0}finally{delete vc[d]}},getVMPrice:(n,r,s,i="on_demand",a="NA")=>{if(!s||s.trim()==="")return 0;const l=i==="on_demand"||i==="spot"?"NA":a||"NA",{vmPricingMap:c}=t(),u=n.toLowerCase(),d=`${u}:${r}:${s}:${i}:${l}`;if(c[d]!==void 0)return c[d];const p=`${u}:${r}:${s}:${i}:NA`;if(c[p]!==void 0)return c[p];for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s&&h[3]===i)return c[f]}for(const f of Object.keys(c)){const h=f.split(":");if(h[0]===u&&h[2]===s)return c[f]}return 0},getInstanceDbuRate:(n,r)=>{if(!r||r.trim()==="")return 0;const{instanceDbuRateMap:s}=t(),i=`${n.toLowerCase()}:${r}`;return s[i]||0},fetchDBURates:async(n,r,s)=>{var c;const i=`${n}-${r}-${s}`.toLowerCase(),a=(c=t()._dbuRatesCache)==null?void 0:c[i],l=10*60*1e3;if(a&&Date.now()-a.timestamp{d[p.product_type]=p.dbu_price}),e(p=>({dbuRates:u,dbuRatesMap:d,_dbuRatesCache:{...p._dbuRatesCache,[i]:{data:{dbuRates:u,dbuRatesMap:d},timestamp:Date.now()}}}))}catch(u){console.error("Failed to fetch DBU rates:",u)}},getDBURate:(n,r,s,i)=>{const{dbuRatesMap:a,pricingBundle:l,isPricingBundleLoaded:c}=t();if(c&&r&&s&&i){const u=Dg(l,r,s,i,n);if(u>0)return u}return a[n]||0},fetchServerlessModes:async()=>{try{const n=await Ay();e({serverlessModes:n})}catch(n){console.error("Failed to fetch serverless modes:",n)}},fetchPhotonMultipliers:async n=>{try{const r=await Ry(n);e({photonMultipliers:r})}catch(r){console.error("Failed to fetch photon multipliers:",r)}},fetchVectorSearchModes:async n=>{try{const r=await Py(n);e({vectorSearchModes:r})}catch(r){console.error("Failed to fetch vector search modes:",r)}},getVectorSearchRate:n=>{const{vectorSearchModes:r}=t(),s=r.find(i=>i.mode===n);return s?{dbu_per_hour:s.dbu_per_hour,input_divisor:s.input_divisor}:null},fetchFMAPIDatabricksRate:async(n,r,s)=>{try{const i=await qS(n,r,s);if(i.length>0){const a=i[0],l=`${n}:${s}`;return e(c=>({fmapiDatabricksRates:{...c.fmapiDatabricksRates,[l]:a}})),a}return null}catch(i){return console.error("Failed to fetch FMAPI Databricks rate:",i),null}},fetchFMAPIProprietaryRate:async(n,r,s,i)=>{try{const a=await WS({provider:n,model:r,cloud:s,rate_type:i});if(a.length>0){const l=a[0],c=`${n}:${r}:${i}`;return e(u=>({fmapiProprietaryRates:{...u.fmapiProprietaryRates,[c]:l}})),l}return null}catch(a){return console.error("Failed to fetch FMAPI Proprietary rate:",a),null}},getFMAPIDatabricksRate:(n,r)=>{const{fmapiDatabricksRates:s}=t(),i=`${n}:${r}`;return s[i]||null},getFMAPIProprietaryRate:(n,r,s)=>{const{fmapiProprietaryRates:i}=t(),a=`${n}:${r}:${s}`;return i[a]||null},calculateWorkloadCost:async(n,r,s,i)=>{var a;if(!n.workload_type||!r||!s||!i)return null;e(l=>({calculatingCostIds:new Set([...l.calculatingCostIds,n.line_item_id])}));try{const l={cloud:r.toUpperCase(),region:s,tier:i.toUpperCase()};let c=null;const d=n.hours_per_month&&n.hours_per_month>0&&!n.runs_per_day?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(n.workload_type){case"JOBS":case"ALL_PURPOSE":if(n.serverless_enabled)c=await Ly(n.workload_type,!0,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await Ly(n.workload_type,!1,{...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DLT":if(n.serverless_enabled)c=await XS({...l,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,serverless_mode:n.serverless_mode||"standard",...d});else{const f=n.driver_pricing_tier||"on_demand",h=n.worker_pricing_tier||"spot",g=f==="on_demand"||f==="spot"?"NA":n.driver_payment_option||"NA",v=h==="on_demand"||h==="spot"?"NA":n.worker_payment_option||"NA";c=await YS({...l,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type||"m5.xlarge",worker_node_type:n.worker_node_type||"m5.xlarge",num_workers:n.num_workers||1,driver_pricing_tier:f,worker_pricing_tier:h,driver_payment_option:g,worker_payment_option:v,...d})}break;case"DBSQL":const p=((a=n.dbsql_warehouse_type)==null?void 0:a.toUpperCase())||"SERVERLESS";if(p==="SERVERLESS")c=await QS({...l,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,...d});else{const f=n.dbsql_driver_pricing_tier||n.driver_pricing_tier||"on_demand",h=f==="on_demand"||f==="spot"?"NA":n.dbsql_driver_payment_option||n.driver_payment_option||"NA";c=await KS({...l,warehouse_type:p,warehouse_size:n.dbsql_warehouse_size||"Medium",num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:f,vm_payment_option:h,...d})}break;case"VECTOR_SEARCH":c=await JS({...l,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730});break;case"MODEL_SERVING":c=await ZS({...l,gpu_type:n.model_serving_gpu_type||"cpu",scale_out:n.model_serving_scale_out||"small",...n.model_serving_scale_out==="custom"?{custom_concurrency:n.model_serving_concurrency||4}:{},hours_per_month:n.hours_per_month||730});break;case"FMAPI_DATABRICKS":c=await eE({...l,model:n.fmapi_model||"llama-3-3-70b",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"FMAPI_PROPRIETARY":c=await tE({...l,provider:n.fmapi_provider||"anthropic",model:n.fmapi_model||"claude-opus-4-6",endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:n.fmapi_quantity||1e6});break;case"LAKEBASE":c=await oE({...l,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730,storage_gb:n.lakebase_storage_gb||0,pitr_gb:n.lakebase_pitr_gb||0,snapshot_gb:n.lakebase_snapshot_gb||0});break;case"DATABRICKS_APPS":c=await nE({...l,size:n.databricks_apps_size||"medium",hours_per_month:n.hours_per_month||730});break;case"CLEAN_ROOM":c=await rE({...l,collaborators:n.clean_room_collaborators||1,days_per_month:n.days_per_month||30});break;case"AI_PARSE":c=await sE({...l,mode:n.ai_parse_mode||"pages",complexity:n.ai_parse_complexity||"medium",pages_thousands:n.ai_parse_pages_thousands||1,hours_per_month:n.hours_per_month||0});break;case"SHUTTERSTOCK_IMAGEAI":c=await iE({...l,images_per_month:n.shutterstock_images||100});break;case"LAKEFLOW_CONNECT":c=await aE({...l,dlt_edition:"ADVANCED",runs_per_day:n.runs_per_day||void 0,avg_runtime_minutes:n.avg_runtime_minutes||void 0,days_per_month:n.days_per_month||void 0,hours_per_month:n.hours_per_month||void 0,gateway_enabled:n.lakeflow_connect_gateway_enabled||!1,gateway_instance_type:n.lakeflow_connect_gateway_instance||void 0});break}return c&&e(p=>{const f=new Set(p.calculatingCostIds);return f.delete(n.line_item_id),{workloadCosts:{...p.workloadCosts,[n.line_item_id]:c},calculatingCostIds:f,isCalculatingCost:f.size>0}}),c}catch(l){return console.error("Failed to calculate workload cost:",l),e(c=>{const u=new Set(c.calculatingCostIds);return u.delete(n.line_item_id),{calculatingCostIds:u,isCalculatingCost:u.size>0}}),null}},calculateAllWorkloadCosts:async(n,r)=>{const{lineItems:s,currentEstimate:i,workloadCosts:a}=t();if(!i)return;const l=i.cloud||"AWS",c=i.region||"us-east-1",u=i.tier||"PREMIUM";let d=s.filter(g=>g.estimate_id===n);if(d.length===0)return;if(r!=null&&r.onlyLineItemIds&&r.onlyLineItemIds.length>0)d=d.filter(g=>r.onlyLineItemIds.includes(g.line_item_id));else if(!(r!=null&&r.forceRecalculate)&&(d=d.filter(g=>{const v=a[g.line_item_id];return!v||!v.success}),d.length===0))return;const p=new Set(d.map(g=>g.line_item_id));e({isCalculatingCost:!0,calculatingCostIds:p});const f=6,h=[];for(let g=0;g{try{await t().calculateWorkloadCost(v,l,c,u)}finally{e(b=>{const x=new Set(b.calculatingCostIds);return x.delete(v.line_item_id),{calculatingCostIds:x,isCalculatingCost:x.size>0}})}}));e({isCalculatingCost:!1,calculatingCostIds:new Set})},recalculateSingleWorkload:async n=>{const{lineItems:r,currentEstimate:s}=t();if(!s)return;const i=r.find(u=>u.line_item_id===n);if(!i)return;const a=s.cloud||"AWS",l=s.region||"us-east-1",c=s.tier||"PREMIUM";e(u=>({calculatingCostIds:new Set([...u.calculatingCostIds,n]),isCalculatingCost:!0}));try{await t().calculateWorkloadCost(i,a,l,c)}finally{e(u=>{const d=new Set(u.calculatingCostIds);return d.delete(n),{calculatingCostIds:d,isCalculatingCost:d.size>0}})}},clearWorkloadCosts:()=>e({workloadCosts:{},localCalculatedCosts:{},calculatingCostIds:new Set}),setLocalCalculatedCosts:n=>e({localCalculatedCosts:n}),clearSingleWorkloadCost:n=>e(r=>{const s={...r.workloadCosts};return delete s[n],{workloadCosts:s}}),markItemCalculating:n=>e(r=>({calculatingCostIds:new Set([...r.calculatingCostIds,n]),isCalculatingCost:!0})),isItemCalculating:n=>t().calculatingCostIds.has(n),cloneEstimate:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await $4(n,r),i=t().estimates.find(l=>l.estimate_id===n),a={...s,line_item_count:(i==null?void 0:i.line_item_count)||0};return e(l=>({estimates:[a,...l.estimates],isLoading:!1})),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone estimate";return e({error:i,isLoading:!1}),null}},cloneLineItem:async(n,r)=>{e({isLoading:!0,error:null});try{const s=await H4(n,r);return e(i=>({lineItems:[...i.lineItems,s],isLoading:!1})),t().recalculateSingleWorkload(s.line_item_id),s}catch(s){const i=s instanceof Error?s.message:"Failed to clone workload";return e({error:i,isLoading:!1}),null}},clearError:()=>e({error:null})}));function TO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MO={};function My(e,t){return(MO.jsx?DO:LO).test(e)}const OO=/[ \t\n\f\r]/g;function IO(e){return typeof e=="object"?e.type==="text"?Oy(e.value):!1:Oy(e)}function Oy(e){return e.replace(OO,"")===""}class Al{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Al.prototype.normal={};Al.prototype.property={};Al.prototype.space=void 0;function dE(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new Al(n,r,t)}function Am(e){return e.toLowerCase()}class Xn{constructor(t,n){this.attribute=n,this.property=t}}Xn.prototype.attribute="";Xn.prototype.booleanish=!1;Xn.prototype.boolean=!1;Xn.prototype.commaOrSpaceSeparated=!1;Xn.prototype.commaSeparated=!1;Xn.prototype.defined=!1;Xn.prototype.mustUseProperty=!1;Xn.prototype.number=!1;Xn.prototype.overloadedBoolean=!1;Xn.prototype.property="";Xn.prototype.spaceSeparated=!1;Xn.prototype.space=void 0;let FO=0;const Fe=Hi(),Kt=Hi(),Tm=Hi(),ne=Hi(),yt=Hi(),_a=Hi(),tr=Hi();function Hi(){return 2**++FO}const Lm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Fe,booleanish:Kt,commaOrSpaceSeparated:tr,commaSeparated:_a,number:ne,overloadedBoolean:Tm,spaceSeparated:yt},Symbol.toStringTag,{value:"Module"})),Ip=Object.keys(Lm);class Mg extends Xn{constructor(t,n,r,s){let i=-1;if(super(t,n),Iy(this,"space",s),typeof r=="number")for(;++i4&&n.slice(0,4)==="data"&&$O.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Fy,WO);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Fy.test(i)){let a=i.replace(zO,qO);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Mg}return new s(r,t)}function qO(e){return"-"+e.toLowerCase()}function WO(e){return e.charAt(1).toUpperCase()}const GO=dE([pE,BO,hE,gE,xE],"html"),Og=dE([pE,UO,hE,gE,xE],"svg");function KO(e){return e.join(" ").trim()}var Ig={},By=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,QO=/\n/g,YO=/^\s*/,XO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,JO=/^:\s*/,ZO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,eI=/^[;\s]*/,tI=/^\s+|\s+$/g,nI=` +`,Uy="/",Vy="*",ki="",rI="comment",sI="declaration";function iI(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function s(g){var v=g.match(QO);v&&(n+=v.length);var b=g.lastIndexOf(nI);r=~b?g.length-b:r+g.length}function i(){var g={line:n,column:r};return function(v){return v.position=new a(g),u(),v}}function a(g){this.start=g,this.end={line:n,column:r},this.source=t.source}a.prototype.content=e;function l(g){var v=new Error(t.source+":"+n+":"+r+": "+g);if(v.reason=g,v.filename=t.source,v.line=n,v.column=r,v.source=e,!t.silent)throw v}function c(g){var v=g.exec(e);if(v){var b=v[0];return s(b),e=e.slice(b.length),v}}function u(){c(YO)}function d(g){var v;for(g=g||[];v=p();)v!==!1&&g.push(v);return g}function p(){var g=i();if(!(Uy!=e.charAt(0)||Vy!=e.charAt(1))){for(var v=2;ki!=e.charAt(v)&&(Vy!=e.charAt(v)||Uy!=e.charAt(v+1));)++v;if(v+=2,ki===e.charAt(v-1))return l("End of comment missing");var b=e.slice(2,v-2);return r+=2,s(b),e=e.slice(v),r+=2,g({type:rI,comment:b})}}function f(){var g=i(),v=c(XO);if(v){if(p(),!c(JO))return l("property missing ':'");var b=c(ZO),x=g({type:sI,property:zy(v[0].replace(By,ki)),value:b?zy(b[0].replace(By,ki)):ki});return c(eI),x}}function h(){var g=[];d(g);for(var v;v=f();)v!==!1&&(g.push(v),d(g));return g}return u(),h()}function zy(e){return e?e.replace(tI,ki):ki}var aI=iI,oI=ms&&ms.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ig,"__esModule",{value:!0});Ig.default=cI;const lI=oI(aI);function cI(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,lI.default)(e),s=typeof t=="function";return r.forEach(i=>{if(i.type!=="declaration")return;const{property:a,value:l}=i;s?t(a,l,i):l&&(n=n||{},n[a]=l)}),n}var Ed={};Object.defineProperty(Ed,"__esModule",{value:!0});Ed.camelCase=void 0;var uI=/^--[a-zA-Z0-9_-]+$/,dI=/-([a-z])/g,pI=/^[^-]+$/,fI=/^-(webkit|moz|ms|o|khtml)-/,mI=/^-(ms)-/,hI=function(e){return!e||pI.test(e)||uI.test(e)},gI=function(e,t){return t.toUpperCase()},$y=function(e,t){return"".concat(t,"-")},xI=function(e,t){return t===void 0&&(t={}),hI(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(mI,$y):e=e.replace(fI,$y),e.replace(dI,gI))};Ed.camelCase=xI;var vI=ms&&ms.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},yI=vI(Ig),_I=Ed;function Dm(e,t){var n={};return!e||typeof e!="string"||(0,yI.default)(e,function(r,s){r&&s&&(n[(0,_I.camelCase)(r,t)]=s)}),n}Dm.default=Dm;var bI=Dm;const wI=Wu(bI),vE=yE("end"),Fg=yE("start");function yE(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function kI(e){const t=Fg(e),n=vE(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Hy(e.position):"start"in e||"end"in e?Hy(e):"line"in e||"column"in e?Mm(e):""}function Mm(e){return qy(e&&e.line)+":"+qy(e&&e.column)}function Hy(e){return Mm(e&&e.start)+"-"+Mm(e&&e.end)}function qy(e){return e&&typeof e=="number"?e:1}class Rn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Lo(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rn.prototype.file="";Rn.prototype.name="";Rn.prototype.reason="";Rn.prototype.message="";Rn.prototype.stack="";Rn.prototype.column=void 0;Rn.prototype.line=void 0;Rn.prototype.ancestors=void 0;Rn.prototype.cause=void 0;Rn.prototype.fatal=void 0;Rn.prototype.place=void 0;Rn.prototype.ruleId=void 0;Rn.prototype.source=void 0;const Bg={}.hasOwnProperty,SI=new Map,EI=/[A-Z]/g,CI=new Set(["table","tbody","thead","tfoot","tr"]),jI=new Set(["td","th"]),_E="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function NI(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=OI(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=MI(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Og:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=bE(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function bE(e,t,n){if(t.type==="element")return PI(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RI(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return TI(e,t,n);if(t.type==="mdxjsEsm")return AI(e,t);if(t.type==="root")return LI(e,t,n);if(t.type==="text")return DI(e,t)}function PI(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Og,e.schema=s),e.ancestors.push(t);const i=kE(e,t.tagName,!1),a=II(e,t);let l=Vg(e,t);return CI.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!IO(c):!0})),wE(e,a,i,t),Ug(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RI(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ul(e,t.position)}function AI(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ul(e,t.position)}function TI(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Og,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:kE(e,t.name,!0),a=FI(e,t),l=Vg(e,t);return wE(e,a,i,t),Ug(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function LI(e,t,n){const r={};return Ug(r,Vg(e,t)),e.create(t,e.Fragment,r,n)}function DI(e,t){return t.value}function wE(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Ug(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function MI(e,t,n){return r;function r(s,i,a,l){const u=Array.isArray(a.children)?n:t;return l?u(i,a,l):u(i,a)}}function OI(e,t){return n;function n(r,s,i,a){const l=Array.isArray(i.children),c=Fg(r);return t(s,i,a,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function II(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Bg.call(t.properties,s)){const i=BI(e,s,t.properties[s]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&jI.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function FI(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ul(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else ul(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Vg(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:SI;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i0?(or(e,e.length,0,t),e):t}const Ky={}.hasOwnProperty;function EE(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Or(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Bn=di(/[A-Za-z]/),Nn=di(/[\dA-Za-z]/),KI=di(/[#-'*+\--9=?A-Z^-~]/);function Ou(e){return e!==null&&(e<32||e===127)}const Om=di(/\d/),QI=di(/[\dA-Fa-f]/),YI=di(/[!-/:-@[-`{-~]/);function je(e){return e!==null&&e<-2}function ht(e){return e!==null&&(e<0||e===32)}function He(e){return e===-2||e===-1||e===32}const Cd=di(new RegExp("\\p{P}|\\p{S}","u")),Bi=di(/\s/);function di(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Wa(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Ye(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(c){return He(c)?(e.enter(n),l(c)):t(c)}function l(c){return He(c)&&i++a))return;const A=t.events.length;let D=A,z,j;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){if(z){j=t.events[D][1].end;break}z=!0}for(x(r),E=A;E_;){const R=n[S];t.containerState=R[1],R[0].exit.call(t,e)}n.length=_}function y(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function tF(e,t,n){return Ye(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ma(e){if(e===null||ht(e)||Bi(e))return 1;if(Cd(e))return 2}function jd(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},f={...e[n][1].start};Yy(p,-c),Yy(f,c),a={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=yr(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=yr(u,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),u=yr(u,jd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=yr(u,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=yr(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,or(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&He(E)?Ye(e,y,"linePrefix",i+1)(E):y(E)}function y(E){return E===null||je(E)?e.check(Xy,v,S)(E):(e.enter("codeFlowValue"),_(E))}function _(E){return E===null||je(E)?(e.exit("codeFlowValue"),y(E)):(e.consume(E),_)}function S(E){return e.exit("codeFenced"),t(E)}function R(E,A,D){let z=0;return j;function j(fe){return E.enter("lineEnding"),E.consume(fe),E.exit("lineEnding"),H}function H(fe){return E.enter("codeFencedFence"),He(fe)?Ye(E,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(fe):X(fe)}function X(fe){return fe===l?(E.enter("codeFencedFenceSequence"),re(fe)):D(fe)}function re(fe){return fe===l?(z++,E.consume(fe),re):z>=a?(E.exit("codeFencedFenceSequence"),He(fe)?Ye(E,le,"whitespace")(fe):le(fe)):D(fe)}function le(fe){return fe===null||je(fe)?(E.exit("codeFencedFence"),A(fe)):D(fe)}}}function fF(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Bp={name:"codeIndented",tokenize:hF},mF={partial:!0,tokenize:gF};function hF(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),Ye(e,i,"linePrefix",5)(u)}function i(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?c(u):je(u)?e.attempt(mF,a,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||je(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function gF(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):je(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):Ye(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):je(a)?s(a):n(a)}}const xF={name:"codeText",previous:yF,resolve:vF,tokenize:_F};function vF(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&co(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),co(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),co(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function AE(e,t,n,r,s,i,a,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(x){return x===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(x),e.exit(i),f):x===null||x===32||x===41||Ou(x)?n(x):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(x))}function f(x){return x===62?(e.enter(i),e.consume(x),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(e.exit("chunkString"),e.exit(l),f(x)):x===null||x===60||je(x)?n(x):(e.consume(x),x===92?g:h)}function g(x){return x===60||x===62||x===92?(e.consume(x),h):h(x)}function v(x){return!d&&(x===null||x===41||ht(x))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(x)):d999||h===null||h===91||h===93&&!c||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(e.exit(i),e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):je(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(h))}function p(h){return h===null||h===91||h===93||je(h)||l++>999?(e.exit("chunkString"),d(h)):(e.consume(h),c||(c=!He(h)),h===92?f:p)}function f(h){return h===91||h===92||h===93?(e.consume(h),l++,p):p(h)}}function LE(e,t,n,r,s,i){let a;return l;function l(f){return f===34||f===39||f===40?(e.enter(r),e.enter(s),e.consume(f),e.exit(s),a=f===40?41:f,c):n(f)}function c(f){return f===a?(e.enter(s),e.consume(f),e.exit(s),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===a?(e.exit(i),c(a)):f===null?n(f):je(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Ye(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===a||f===null||je(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===a||f===92?(e.consume(f),d):d(f)}}function Do(e,t){let n;return r;function r(s){return je(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):He(s)?Ye(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const NF={name:"definition",tokenize:RF},PF={partial:!0,tokenize:AF};function RF(e,t,n){const r=this;let s;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return TE.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return s=Or(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),c):n(h)}function c(h){return ht(h)?Do(e,u)(h):u(h)}function u(h){return AE(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(PF,p,p)(h)}function p(h){return He(h)?Ye(e,f,"whitespace")(h):f(h)}function f(h){return h===null||je(h)?(e.exit("definition"),r.parser.defined.push(s),t(h)):n(h)}}function AF(e,t,n){return r;function r(l){return ht(l)?Do(e,s)(l):n(l)}function s(l){return LE(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return He(l)?Ye(e,a,"whitespace")(l):a(l)}function a(l){return l===null||je(l)?t(l):n(l)}}const TF={name:"hardBreakEscape",tokenize:LF};function LF(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return je(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const DF={name:"headingAtx",resolve:MF,tokenize:OF};function MF(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},or(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function OF(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||ht(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||je(d)?(e.exit("atxHeading"),t(d)):He(d)?Ye(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||ht(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const IF=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Zy=["pre","script","style","textarea"],FF={concrete:!0,name:"htmlFlow",resolveTo:VF,tokenize:zF},BF={partial:!0,tokenize:HF},UF={partial:!0,tokenize:$F};function VF(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zF(e,t,n){const r=this;let s,i,a,l,c;return u;function u(L){return d(L)}function d(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),p}function p(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),i=!0,v):L===63?(e.consume(L),s=3,r.interrupt?t:N):Bn(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function f(L){return L===45?(e.consume(L),s=2,h):L===91?(e.consume(L),s=5,l=0,g):Bn(L)?(e.consume(L),s=4,r.interrupt?t:N):n(L)}function h(L){return L===45?(e.consume(L),r.interrupt?t:N):n(L)}function g(L){const be="CDATA[";return L===be.charCodeAt(l++)?(e.consume(L),l===be.length?r.interrupt?t:X:g):n(L)}function v(L){return Bn(L)?(e.consume(L),a=String.fromCharCode(L),b):n(L)}function b(L){if(L===null||L===47||L===62||ht(L)){const be=L===47,Le=a.toLowerCase();return!be&&!i&&Zy.includes(Le)?(s=1,r.interrupt?t(L):X(L)):IF.includes(a.toLowerCase())?(s=6,be?(e.consume(L),x):r.interrupt?t(L):X(L)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):i?y(L):_(L))}return L===45||Nn(L)?(e.consume(L),a+=String.fromCharCode(L),b):n(L)}function x(L){return L===62?(e.consume(L),r.interrupt?t:X):n(L)}function y(L){return He(L)?(e.consume(L),y):j(L)}function _(L){return L===47?(e.consume(L),j):L===58||L===95||Bn(L)?(e.consume(L),S):He(L)?(e.consume(L),_):j(L)}function S(L){return L===45||L===46||L===58||L===95||Nn(L)?(e.consume(L),S):R(L)}function R(L){return L===61?(e.consume(L),E):He(L)?(e.consume(L),R):_(L)}function E(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),c=L,A):He(L)?(e.consume(L),E):D(L)}function A(L){return L===c?(e.consume(L),c=null,z):L===null||je(L)?n(L):(e.consume(L),A)}function D(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||ht(L)?R(L):(e.consume(L),D)}function z(L){return L===47||L===62||He(L)?_(L):n(L)}function j(L){return L===62?(e.consume(L),H):n(L)}function H(L){return L===null||je(L)?X(L):He(L)?(e.consume(L),H):n(L)}function X(L){return L===45&&s===2?(e.consume(L),xe):L===60&&s===1?(e.consume(L),oe):L===62&&s===4?(e.consume(L),se):L===63&&s===3?(e.consume(L),N):L===93&&s===5?(e.consume(L),Y):je(L)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(BF,de,re)(L)):L===null||je(L)?(e.exit("htmlFlowData"),re(L)):(e.consume(L),X)}function re(L){return e.check(UF,le,de)(L)}function le(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),fe}function fe(L){return L===null||je(L)?re(L):(e.enter("htmlFlowData"),X(L))}function xe(L){return L===45?(e.consume(L),N):X(L)}function oe(L){return L===47?(e.consume(L),a="",B):X(L)}function B(L){if(L===62){const be=a.toLowerCase();return Zy.includes(be)?(e.consume(L),se):X(L)}return Bn(L)&&a.length<8?(e.consume(L),a+=String.fromCharCode(L),B):X(L)}function Y(L){return L===93?(e.consume(L),N):X(L)}function N(L){return L===62?(e.consume(L),se):L===45&&s===2?(e.consume(L),N):X(L)}function se(L){return L===null||je(L)?(e.exit("htmlFlowData"),de(L)):(e.consume(L),se)}function de(L){return e.exit("htmlFlow"),t(L)}}function $F(e,t,n){const r=this;return s;function s(a){return je(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function HF(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Tl,t,n)}}const qF={name:"htmlText",tokenize:WF};function WF(e,t,n){const r=this;let s,i,a;return l;function l(N){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),u):N===47?(e.consume(N),R):N===63?(e.consume(N),_):Bn(N)?(e.consume(N),D):n(N)}function u(N){return N===45?(e.consume(N),d):N===91?(e.consume(N),i=0,g):Bn(N)?(e.consume(N),y):n(N)}function d(N){return N===45?(e.consume(N),h):n(N)}function p(N){return N===null?n(N):N===45?(e.consume(N),f):je(N)?(a=p,oe(N)):(e.consume(N),p)}function f(N){return N===45?(e.consume(N),h):p(N)}function h(N){return N===62?xe(N):N===45?f(N):p(N)}function g(N){const se="CDATA[";return N===se.charCodeAt(i++)?(e.consume(N),i===se.length?v:g):n(N)}function v(N){return N===null?n(N):N===93?(e.consume(N),b):je(N)?(a=v,oe(N)):(e.consume(N),v)}function b(N){return N===93?(e.consume(N),x):v(N)}function x(N){return N===62?xe(N):N===93?(e.consume(N),x):v(N)}function y(N){return N===null||N===62?xe(N):je(N)?(a=y,oe(N)):(e.consume(N),y)}function _(N){return N===null?n(N):N===63?(e.consume(N),S):je(N)?(a=_,oe(N)):(e.consume(N),_)}function S(N){return N===62?xe(N):_(N)}function R(N){return Bn(N)?(e.consume(N),E):n(N)}function E(N){return N===45||Nn(N)?(e.consume(N),E):A(N)}function A(N){return je(N)?(a=A,oe(N)):He(N)?(e.consume(N),A):xe(N)}function D(N){return N===45||Nn(N)?(e.consume(N),D):N===47||N===62||ht(N)?z(N):n(N)}function z(N){return N===47?(e.consume(N),xe):N===58||N===95||Bn(N)?(e.consume(N),j):je(N)?(a=z,oe(N)):He(N)?(e.consume(N),z):xe(N)}function j(N){return N===45||N===46||N===58||N===95||Nn(N)?(e.consume(N),j):H(N)}function H(N){return N===61?(e.consume(N),X):je(N)?(a=H,oe(N)):He(N)?(e.consume(N),H):z(N)}function X(N){return N===null||N===60||N===61||N===62||N===96?n(N):N===34||N===39?(e.consume(N),s=N,re):je(N)?(a=X,oe(N)):He(N)?(e.consume(N),X):(e.consume(N),le)}function re(N){return N===s?(e.consume(N),s=void 0,fe):N===null?n(N):je(N)?(a=re,oe(N)):(e.consume(N),re)}function le(N){return N===null||N===34||N===39||N===60||N===61||N===96?n(N):N===47||N===62||ht(N)?z(N):(e.consume(N),le)}function fe(N){return N===47||N===62||ht(N)?z(N):n(N)}function xe(N){return N===62?(e.consume(N),e.exit("htmlTextData"),e.exit("htmlText"),t):n(N)}function oe(N){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(N),e.exit("lineEnding"),B}function B(N){return He(N)?Ye(e,Y,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(N):Y(N)}function Y(N){return e.enter("htmlTextData"),a(N)}}const Hg={name:"labelEnd",resolveAll:YF,resolveTo:XF,tokenize:JF},GF={tokenize:ZF},KF={tokenize:eB},QF={tokenize:tB};function YF(e){let t=-1;const n=[];for(;++t=3&&(u===null||je(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),He(u)?Ye(e,l,"whitespace")(u):l(u))}}const $n={continuation:{tokenize:dB},exit:fB,name:"list",tokenize:uB},lB={partial:!0,tokenize:mB},cB={partial:!0,tokenize:pB};function uB(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return l;function l(h){const g=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Om(h)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(Kc,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(h)}return n(h)}function c(h){return Om(h)&&++a<10?(e.consume(h),c):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Tl,r.interrupt?n:d,e.attempt(lB,f,p))}function d(h){return r.containerState.initialBlankLine=!0,i++,f(h)}function p(h){return He(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function dB(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Tl,s,i);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ye(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!He(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(cB,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ye(e,e.attempt($n,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function pB(e,t,n){const r=this;return Ye(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function fB(e){e.exit(this.containerState.type)}function mB(e,t,n){const r=this;return Ye(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!He(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const e_={name:"setextUnderline",resolveTo:hB,tokenize:gB};function hB(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gB(e,t,n){const r=this;let s;return i;function i(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),s=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),He(u)?Ye(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||je(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xB={tokenize:vB};function vB(e){const t=this,n=e.attempt(Tl,r,e.attempt(this.parser.constructs.flowInitial,s,Ye(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kF,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const yB={resolveAll:ME()},_B=DE("string"),bB=DE("text");function DE(e){return{resolveAll:ME(e==="text"?wB:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,l);return a;function a(d){return u(d)?i(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=s[d];let f=-1;if(p)for(;++f-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function MB(e,t){let n=-1;const r=[];let s;for(;++n0){const Be=K.tokenStack[K.tokenStack.length-1];(Be[1]||n_).call(K,void 0,Be[0])}for(F.position={start:Ms(O.length>0?O[0][1].start:{line:1,column:1,offset:0}),end:Ms(O.length>0?O[O.length-2][1].end:{line:1,column:1,offset:0})},Ee=-1;++Ee0&&(r.className=["language-"+s[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function QB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function YB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function XB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Wa(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function JB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ZB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function FE(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),i=s[0];i&&i.type==="text"?i.value="["+i.value:s.unshift({type:"text",value:"["});const a=s[s.length-1];return a&&a.type==="text"?a.value+=r:s.push({type:"text",value:r}),s}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return FE(e,t);const s={src:Wa(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,i),e.applyData(t,i)}function t6(e,t){const n={src:Wa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function n6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function r6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return FE(e,t);const s={href:Wa(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const i={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function s6(e,t){const n={href:Wa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i6(e,t,n){const r=e.all(t),s=n?a6(n):BE(t),i={},a=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function o6(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Fg(t.children[1]),c=vE(t.children[t.children.length-1]);l&&c&&(a.position={start:l,end:c}),s.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,i),e.applyData(t,i)}function p6(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return i.push(i_(t.slice(s),s>0,!1)),i.join("")}function i_(e,t,n){let r=0,s=e.length;if(t){let i=e.codePointAt(r);for(;i===r_||i===s_;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(s-1);for(;i===r_||i===s_;)s--,i=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function h6(e,t){const n={type:"text",value:m6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function g6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const x6={blockquote:WB,break:GB,code:KB,delete:QB,emphasis:YB,footnoteReference:XB,heading:JB,html:ZB,imageReference:e6,image:t6,inlineCode:n6,linkReference:r6,link:s6,listItem:i6,list:o6,paragraph:l6,root:c6,strong:u6,table:d6,tableCell:f6,tableRow:p6,text:h6,thematicBreak:g6,toml:yc,yaml:yc,definition:yc,footnoteDefinition:yc};function yc(){}const UE=-1,Nd=0,Mo=1,Iu=2,qg=3,Wg=4,Gg=5,Kg=6,VE=7,zE=8,a_=typeof self=="object"?self:globalThis,v6=(e,t)=>{const n=(s,i)=>(e.set(i,s),s),r=s=>{if(e.has(s))return e.get(s);const[i,a]=t[s];switch(i){case Nd:case UE:return n(a,s);case Mo:{const l=n([],s);for(const c of a)l.push(r(c));return l}case Iu:{const l=n({},s);for(const[c,u]of a)l[r(c)]=r(u);return l}case qg:return n(new Date(a),s);case Wg:{const{source:l,flags:c}=a;return n(new RegExp(l,c),s)}case Gg:{const l=n(new Map,s);for(const[c,u]of a)l.set(r(c),r(u));return l}case Kg:{const l=n(new Set,s);for(const c of a)l.add(r(c));return l}case VE:{const{name:l,message:c}=a;return n(new a_[l](c),s)}case zE:return n(BigInt(a),s);case"BigInt":return n(Object(BigInt(a)),s);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new a_[i](a),s)};return r},o_=e=>v6(new Map,e)(0),Ki="",{toString:y6}={},{keys:_6}=Object,uo=e=>{const t=typeof e;if(t!=="object"||!e)return[Nd,t];const n=y6.call(e).slice(8,-1);switch(n){case"Array":return[Mo,Ki];case"Object":return[Iu,Ki];case"Date":return[qg,Ki];case"RegExp":return[Wg,Ki];case"Map":return[Gg,Ki];case"Set":return[Kg,Ki];case"DataView":return[Mo,n]}return n.includes("Array")?[Mo,n]:n.includes("Error")?[VE,n]:[Iu,n]},_c=([e,t])=>e===Nd&&(t==="function"||t==="symbol"),b6=(e,t,n,r)=>{const s=(a,l)=>{const c=r.push(a)-1;return n.set(l,c),c},i=a=>{if(n.has(a))return n.get(a);let[l,c]=uo(a);switch(l){case Nd:{let d=a;switch(c){case"bigint":l=zE,d=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([UE],a)}return s([l,d],a)}case Mo:{if(c){let f=a;return c==="DataView"?f=new Uint8Array(a.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(a)),s([c,[...f]],a)}const d=[],p=s([l,d],a);for(const f of a)d.push(i(f));return p}case Iu:{if(c)switch(c){case"BigInt":return s([c,a.toString()],a);case"Boolean":case"Number":case"String":return s([c,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const d=[],p=s([l,d],a);for(const f of _6(a))(e||!_c(uo(a[f])))&&d.push([i(f),i(a[f])]);return p}case qg:return s([l,a.toISOString()],a);case Wg:{const{source:d,flags:p}=a;return s([l,{source:d,flags:p}],a)}case Gg:{const d=[],p=s([l,d],a);for(const[f,h]of a)(e||!(_c(uo(f))||_c(uo(h))))&&d.push([i(f),i(h)]);return p}case Kg:{const d=[],p=s([l,d],a);for(const f of a)(e||!_c(uo(f)))&&d.push(i(f));return p}}const{message:u}=a;return s([l,{name:c,message:u}],a)};return i},l_=(e,{json:t,lossy:n}={})=>{const r=[];return b6(!(t||n),!!t,new Map,r)(e),r},Fu=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?o_(l_(e,t)):structuredClone(e):(e,t)=>o_(l_(e,t));function w6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function S6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w6,r=e.options.footnoteBackLabel||k6,s=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,h);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,h),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const b=d[d.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const y=b.children[b.children.length-1];y&&y.type==="text"?y.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...g)}else d.push(...g);const x={type:"element",tagName:"li",properties:{id:t+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,x),l.push(x)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Fu(a),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Pd=function(e){if(e==null)return N6;if(typeof e=="function")return Rd(e);if(typeof e=="object")return Array.isArray(e)?E6(e):C6(e);if(typeof e=="string")return j6(e);throw new Error("Expected function, string, or object as test")};function E6(e){const t=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let h=$E,g,v,b;if((!t||i(c,u,d[d.length-1]||void 0))&&(h=T6(n(c,d)),h[0]===Fm))return h;if("children"in c&&c.children){const x=c;if(x.children&&h[0]!==A6)for(v=(r?x.children.length:-1)+a,b=d.concat(x);v>-1&&v0&&n.push({type:"text",value:` +`}),n}function c_(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function u_(e,t){const n=D6(e,t),r=n.one(e,void 0),s=S6(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&i.children.push({type:"text",value:` +`},s),i}function B6(e,t){return e&&"run"in e?async function(n,r){const s=u_(n,{file:r,...t});await e.run(s,r)}:function(n,r){return u_(n,{file:r,...e||t})}}function d_(e){if(e)throw e}var Qc=Object.prototype.hasOwnProperty,qE=Object.prototype.toString,p_=Object.defineProperty,f_=Object.getOwnPropertyDescriptor,m_=function(t){return typeof Array.isArray=="function"?Array.isArray(t):qE.call(t)==="[object Array]"},h_=function(t){if(!t||qE.call(t)!=="[object Object]")return!1;var n=Qc.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Qc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var s;for(s in t);return typeof s>"u"||Qc.call(t,s)},g_=function(t,n){p_&&n.name==="__proto__"?p_(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},x_=function(t,n){if(n==="__proto__")if(Qc.call(t,n)){if(f_)return f_(t,n).value}else return;return t[n]},U6=function e(){var t,n,r,s,i,a,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});ca.length;let c;l&&a.push(s);try{c=e.apply(this,a)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,s):c instanceof Error?s(c):i(c))}function s(a,...l){n||(n=!0,t(a,...l))}function i(a){s(null,a)}}const Gr={basename:$6,dirname:H6,extname:q6,join:W6,sep:"/"};function $6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Ll(e);let n=0,r=-1,s=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else r<0&&(i=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(i){n=s+1;break}}else a<0&&(i=!0,a=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function H6(e){if(Ll(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function q6(e){Ll(e);let t=e.length,n=-1,r=0,s=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?s<0?s=t:i!==1&&(i=1):s>-1&&(i=-1)}return s<0||n<0||i===0||i===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function W6(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K6(e,t){let n="",r=0,s=-1,i=0,a=-1,l,c;for(;++a<=e.length;){if(a2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=a,i=0;continue}}else if(n.length>0){n="",r=0,s=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),r=a-s-1;s=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Ll(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Q6={cwd:Y6};function Y6(){return"/"}function Vm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X6(e){if(typeof e=="string")e=new URL(e);else if(!Vm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return J6(e)}function J6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...g]=d;const v=r[f][1];Um(v)&&Um(h)&&(h=Vp(!0,v,h)),r[f]=[u,h,...g]}}}}const nU=new Yg().freeze();function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Wp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Gp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function y_(e){if(!Um(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function __(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function bc(e){return rU(e)?e:new WE(e)}function rU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function sU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const aU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",b_=[],w_={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,lU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function cU(e){const t=uU(e),n=dU(e);return pU(t.runSync(t.parse(n),n),e)}function uU(e){const t=e.rehypePlugins||b_,n=e.remarkPlugins||b_,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...w_}:w_;return nU().use(qB).use(n).use(B6,r).use(t)}function dU(e){const t=e.children||"",n=new WE;return typeof t=="string"&&(n.value=t),n}function pU(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||fU;for(const d of lU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+aU+d.id,void 0);return Qg(e,u),NI(e,{Fragment:o.Fragment,components:s,ignoreInvalidStyle:!0,jsx:o.jsx,jsxs:o.jsxs,passKeys:!0,passNode:!0});function u(d,p,f){if(d.type==="raw"&&f&&typeof p=="number")return a?f.children.splice(p,1):f.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let h;for(h in Fp)if(Object.hasOwn(Fp,h)&&Object.hasOwn(d.properties,h)){const g=d.properties[h],v=Fp[h];(v===null||v.includes(d.tagName))&&(d.properties[h]=c(String(g||""),h,d))}}if(d.type==="element"){let h=n?!n.includes(d.tagName):i?i.includes(d.tagName):!1;if(!h&&r&&typeof p=="number"&&(h=!r(d,p,f)),h&&f&&typeof p=="number")return l&&d.children?f.children.splice(p,1,...d.children):f.children.splice(p,1),p}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function k_(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(t);for(;s!==-1;)r++,s=n.indexOf(t,s+t.length);return r}function mU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function hU(e,t,n){const s=Pd((n||{}).ignore||[]),i=gU(t);let a=-1;for(;++a0?{type:"text",value:E}:void 0),E===!1?f.lastIndex=S+1:(g!==S&&y.push({type:"text",value:u.value.slice(g,S)}),Array.isArray(E)?y.push(...E):E&&y.push(E),g=S+_[0].length,x=!0),!f.global)break;_=f.exec(u.value)}return x?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const s=k_(e,"(");let i=k_(e,")");for(;r!==-1&&s>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function GE(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Bi(n)||Cd(n))&&(!t||n!==47)}KE.peek=BU;function AU(){this.buffer()}function TU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function LU(){this.buffer()}function DU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function MU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Or(this.sliceSerialize(e)).toLowerCase(),n.label=t}function OU(e){this.exit(e)}function IU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Or(this.sliceSerialize(e)).toLowerCase(),n.label=t}function FU(e){this.exit(e)}function BU(){return"["}function KE(e,t,n,r){const s=n.createTracker(r);let i=s.move("[^");const a=n.enter("footnoteReference"),l=n.enter("reference");return i+=s.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),a(),i+=s.move("]"),i}function UU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:TU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:DU},exit:{gfmFootnoteCallString:MU,gfmFootnoteCall:OU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:FU}}}function VU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:KE},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,s,i,a){const l=i.createTracker(a);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(r),{before:c,after:"]"})),d(),c+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),c+=l.move((t?` +`:" ")+i.indentLines(i.containerFlow(r,l.current()),t?QE:zU))),u(),c}}function zU(e,t,n){return t===0?e:QE(e,t,n)}function QE(e,t,n){return(n?"":" ")+e}const $U=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];YE.peek=KU;function HU(){return{canContainEols:["delete"],enter:{strikethrough:WU},exit:{strikethrough:GU}}}function qU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$U}],handlers:{delete:YE}}}function WU(e){this.enter({type:"delete",children:[]},e)}function GU(e){this.exit(e)}function YE(e,t,n,r){const s=n.createTracker(r),i=n.enter("strikethrough");let a=s.move("~~");return a+=n.containerPhrasing(e,{...s.current(),before:a,after:"~"}),a+=s.move("~~"),i(),a}function KU(){return"~"}function QU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),s=n.stringLength||QU,i=[],a=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++xc[x])&&(c[x]=_)}v.push(y)}a[d]=v,l[d]=b}let p=-1;if(typeof r=="object"&&"length"in r)for(;++pc[p]&&(c[p]=y),h[p]=y),f[p]=_}a.splice(1,0,f),l.splice(1,0,h),d=-1;const g=[];for(;++d "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),ZU);return s(),a}function ZU(e,t,n){return">"+(n?"":" ")+e}function e7(e,t){return E_(e,t.inConstruct,!0)&&!E_(e,t.notInConstruct,!1)}function E_(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=i):i=1,s=r+t.length,r=n.indexOf(t,s);return a}function n7(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function r7(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function s7(e,t,n,r){const s=r7(n),i=e.value||"",a=s==="`"?"GraveAccent":"Tilde";if(n7(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,i7);return p(),f}const l=n.createTracker(r),c=s.repeat(Math.max(t7(i,s)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const p=n.enter(`codeFencedLang${a}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...l.current()})),p()}return d+=l.move(` +`),i&&(d+=l.move(i+` +`)),d+=l.move(c),u(),d}function i7(e,t,n){return(n?"":" ")+e}function Xg(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function a7(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("definition");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),a(),u}function o7(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function dl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Bu(e,t,n){const r=Ma(e),s=Ma(t);return r===void 0?s===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}XE.peek=l7;function XE(e,t,n,r){const s=o7(n),i=n.enter("emphasis"),a=n.createTracker(r),l=a.move(s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function l7(e,t,n){return n.options.emphasis||"*"}function c7(e,t){let n=!1;return Qg(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Fm}),!!((!e.depth||e.depth<3)&&zg(e)&&(t.options.setext||n))}function u7(e,t,n,r){const s=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(c7(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return p(),d(),f+` +`+(s===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(` +`))+1))}const a="#".repeat(s),l=n.enter("headingAtx"),c=n.enter("phrasing");i.move(a+" ");let u=n.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(u)&&(u=dl(u.charCodeAt(0))+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),c(),l(),u}JE.peek=d7;function JE(e){return e.value||""}function d7(){return"<"}ZE.peek=p7;function ZE(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let l=n.enter("label");const c=n.createTracker(r);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=n.enter(`title${i}`),u+=c.move(" "+s),u+=c.move(n.safe(e.title,{before:u,after:s,...c.current()})),u+=c.move(s),l()),u+=c.move(")"),a(),u}function p7(){return"!"}eC.peek=f7;function eC(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function f7(){return"!"}tC.peek=m7;function tC(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}rC.peek=h7;function rC(e,t,n,r){const s=Xg(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let l,c;if(nC(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),l(),n.stack=d,p}l=n.enter("link"),c=n.enter("label");let u=a.move("[");return u+=a.move(n.containerPhrasing(e,{before:u,after:"](",...a.current()})),u+=a.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(n.safe(e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(c=n.enter("destinationRaw"),u+=a.move(n.safe(e.url,{before:u,after:e.title?" ":")",...a.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=a.move(" "+s),u+=a.move(n.safe(e.title,{before:u,after:s,...a.current()})),u+=a.move(s),c()),u+=a.move(")"),l(),u}function h7(e,t,n){return nC(e,n)?"<":"["}sC.peek=g7;function sC(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),a();const d=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return a(),n.stack=d,i(),s==="full"||!u||u!==p?c+=l.move(p+"]"):s==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function g7(){return"["}function Jg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function x7(e){const t=Jg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function v7(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function iC(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function y7(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?v7(n):Jg(n);const l=e.ordered?a==="."?")":".":x7(n);let c=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),iC(n)===a&&d){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=n.createTracker(r);l.move(i+" ".repeat(a-i.length)),l.shift(a);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(p,f,h){return f?(h?"":" ".repeat(a))+p:(h?i:i+" ".repeat(a-i.length))+p}}function w7(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const k7=Pd(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function S7(e,t,n,r){return(e.children.some(function(a){return k7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function E7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}aC.peek=C7;function aC(e,t,n,r){const s=E7(n),i=n.enter("strong"),a=n.createTracker(r),l=a.move(s+s);let c=a.move(n.containerPhrasing(e,{after:s,before:l,...a.current()}));const u=c.charCodeAt(0),d=Bu(r.before.charCodeAt(r.before.length-1),u,s);d.inside&&(c=dl(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=Bu(r.after.charCodeAt(0),p,s);f.inside&&(c=c.slice(0,-1)+dl(p));const h=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+h}function C7(e,t,n){return n.options.strong||"*"}function j7(e,t,n,r){return n.safe(e.value,r)}function N7(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function P7(e,t,n){const r=(iC(n)+(n.options.ruleSpaces?" ":"")).repeat(N7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const oC={blockquote:JU,break:C_,code:s7,definition:a7,emphasis:XE,hardBreak:C_,heading:u7,html:JE,image:ZE,imageReference:eC,inlineCode:tC,link:rC,linkReference:sC,list:y7,listItem:b7,paragraph:w7,root:S7,strong:aC,text:j7,thematicBreak:P7};function R7(){return{enter:{table:A7,tableData:j_,tableHeader:j_,tableRow:L7},exit:{codeText:D7,table:T7,tableData:Xp,tableHeader:Xp,tableRow:Xp}}}function A7(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function T7(e){this.exit(e),this.data.inTable=void 0}function L7(e){this.enter({type:"tableRow",children:[]},e)}function Xp(e){this.exit(e)}function j_(e){this.enter({type:"tableCell",children:[]},e)}function D7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,M7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function M7(e,t){return t==="|"?t:e}function O7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:a,tableCell:c,tableRow:l}};function a(h,g,v,b){return u(d(h,v,b),h.align)}function l(h,g,v,b){const x=p(h,v,b),y=u([x]);return y.slice(0,y.indexOf(` +`))}function c(h,g,v,b){const x=v.enter("tableCell"),y=v.enter("phrasing"),_=v.containerPhrasing(h,{...b,before:i,after:i});return y(),x(),_}function u(h,g){return YU(h,{align:g,alignDelimiters:r,padding:n,stringLength:s})}function d(h,g,v){const b=h.children;let x=-1;const y=[],_=g.enter("table");for(;++x0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const eV={tokenize:lV,partial:!0};function tV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:aV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:sV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nV,resolveTo:rV}}}}function nV(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const c=r.events[s][1];if(c.type==="labelImage"){a=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!a||!a._balanced)return n(c);const u=Or(r.sliceSerialize({start:a.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),t(c))}}function rV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function sV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return l;function l(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!a||p===null||p===91||ht(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return s.includes(Or(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return ht(p)||(a=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function iV(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,l;return c;function c(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(a>999||g===93&&!l||g===null||g===91||ht(g))return n(g);if(g===93){e.exit("chunkString");const v=e.exit("gfmFootnoteDefinitionLabelString");return i=Or(r.sliceSerialize(v)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return ht(g)||(l=!0),a++,e.consume(g),g===92?p:d}function p(g){return g===91||g===92||g===93?(e.consume(g),a++,d):d(g)}function f(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),s.includes(i)||s.push(i),Ye(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return t(g)}}function aV(e,t,n){return e.check(Tl,t,e.attempt(eV,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function lV(e,t,n){const r=this;return Ye(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function cV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,l){let c=-1;for(;++c1?c(g):(a.consume(g),p++,h);if(p<2&&!n)return c(g);const b=a.exit("strikethroughSequenceTemporary"),x=Ma(g);return b._open=!x||x===2&&!!v,b._close=!v||v===2&&!!x,l(g)}}}class uV{constructor(){this.map=[]}add(t,n,r){dV(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function dV(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s-1;){const le=r.events[H][1].type;if(le==="lineEnding"||le==="linePrefix")H--;else break}const X=H>-1?r.events[H][1].type:null,re=X==="tableHead"||X==="tableRow"?E:c;return re===E&&r.parser.lazy[r.now().line]?n(j):re(j)}function c(j){return e.enter("tableHead"),e.enter("tableRow"),u(j)}function u(j){return j===124||(a=!0,i+=1),d(j)}function d(j){return j===null?n(j):je(j)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),h):n(j):He(j)?Ye(e,d,"whitespace")(j):(i+=1,a&&(a=!1,s+=1),j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),a=!0,d):(e.enter("data"),p(j)))}function p(j){return j===null||j===124||ht(j)?(e.exit("data"),d(j)):(e.consume(j),j===92?f:p)}function f(j){return j===92||j===124?(e.consume(j),p):p(j)}function h(j){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(j):(e.enter("tableDelimiterRow"),a=!1,He(j)?Ye(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):g(j))}function g(j){return j===45||j===58?b(j):j===124?(a=!0,e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),v):R(j)}function v(j){return He(j)?Ye(e,b,"whitespace")(j):b(j)}function b(j){return j===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),x):j===45?(i+=1,x(j)):j===null||je(j)?S(j):R(j)}function x(j){return j===45?(e.enter("tableDelimiterFiller"),y(j)):R(j)}function y(j){return j===45?(e.consume(j),y):j===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(j),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(j))}function _(j){return He(j)?Ye(e,S,"whitespace")(j):S(j)}function S(j){return j===124?g(j):j===null||je(j)?!a||s!==i?R(j):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(j)):R(j)}function R(j){return n(j)}function E(j){return e.enter("tableRow"),A(j)}function A(j){return j===124?(e.enter("tableCellDivider"),e.consume(j),e.exit("tableCellDivider"),A):j===null||je(j)?(e.exit("tableRow"),t(j)):He(j)?Ye(e,A,"whitespace")(j):(e.enter("data"),D(j))}function D(j){return j===null||j===124||ht(j)?(e.exit("data"),A(j)):(e.consume(j),j===92?z:D)}function z(j){return j===92||j===124?(e.consume(j),D):D(j)}}function hV(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,c=0,u,d,p;const f=new uV;for(;++nn[2]+1){const g=n[2]+1,v=n[3]-n[2]-1;e.add(g,v,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return s!==void 0&&(i.end=Object.assign({},Qi(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function P_(e,t,n,r,s){const i=[],a=Qi(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Qi(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const gV={name:"tasklistCheck",tokenize:vV};function xV(){return{text:{91:gV}}}function vV(e,t,n){const r=this;return s;function s(c){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return ht(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),a):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),a):n(c)}function a(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return je(c)?t(c):He(c)?e.check({tokenize:yV},t,n)(c):n(c)}}function yV(e,t,n){return Ye(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function _V(e){return EE([q7(),tV(),cV(e),fV(),xV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(_V(n)),i.push(V7()),a.push(z7(n))}function kV({isOpen:e,onClose:t,onEstimateCreated:n,onWorkloadConfirmed:r,currentEstimate:s,currentWorkloads:i,itemCosts:a,panelWidth:l,onWidthChange:c,mode:u="estimate"}){const[d,p]=m.useState([]),[f,h]=m.useState(""),[g,v]=m.useState(!1),[b,x]=m.useState(null),[y,_]=m.useState(null),[S,R]=m.useState([]),[E,A]=m.useState([]),[D,z]=m.useState(new Set),[j,H]=m.useState(!1),[X,re]=m.useState(null),[le,fe]=m.useState(!1),[xe,oe]=m.useState(380),[B,Y]=m.useState(!1),[N,se]=m.useState(!0),[de,L]=m.useState(null),[be,Le]=m.useState(""),[w,q]=m.useState(null),ce=l??xe,_e=c??oe,ve=m.useRef(null),at=m.useRef(null),Xe=m.useRef(null),I=m.useRef(null),nt=m.useRef(null),gt=m.useRef(!1),ot=m.useMemo(()=>{if(!a||!i)return 0;let U=0;return i.forEach(J=>{const Te=J.item_id||J.line_item_id,Ve=a[Te];Ve!=null&&Ve.total&&(U+=Ve.total)}),U},[a,i]),ft=m.useCallback(U=>{U.preventDefault(),Y(!0)},[]);m.useEffect(()=>{const U=Te=>{if(!B)return;const Ve=window.innerWidth-Te.clientX,Q=Math.floor(window.innerWidth*.9);_e(Math.min(Math.max(320,Ve),Q))},J=()=>{Y(!1)};return B&&(document.addEventListener("mousemove",U),document.addEventListener("mouseup",J),document.body.style.cursor="ew-resize",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",J),document.body.style.cursor="",document.body.style.userSelect=""}},[B]);const G=m.useCallback(U=>{h(U.target.value);const J=U.target;J.style.height="auto",J.style.height=Math.min(J.scrollHeight,150)+"px"},[]),P=m.useMemo(()=>u==="home"?[{label:"📚 Workload types",action:"Explain the different Databricks workload types and when to use each one."},{label:"💰 Pricing guide",action:"How does Databricks pricing work? Explain DBUs, compute costs, and key pricing factors."},{label:"🏗️ Architecture help",action:"I need help planning a data architecture. What questions should I consider?"},{label:"💡 Best practices",action:"What are the best practices for optimizing Databricks costs?"}]:((i==null?void 0:i.length)||0)>0?[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}]:[{label:"💡 Optimize",action:"Analyze my workloads and suggest specific optimizations to reduce costs."},{label:"📊 Summary",action:"Give me a summary of my current estimate with cost breakdown by workload type."},{label:"➕ Add workload",action:"Propose a new workload for my existing estimate. Ask me what type I need."},{label:"❓ Pricing",action:"Explain how Databricks pricing works for the workload types I have."}],[i,u]);m.useEffect(()=>{var U;gt.current||(U=ve.current)==null||U.scrollIntoView({behavior:"smooth"})},[d]),m.useEffect(()=>{g&&(gt.current=!1)},[g]);const k=m.useCallback(()=>{const U=at.current;if(!U)return;const J=U.scrollHeight-U.scrollTop-U.clientHeight<100;gt.current=!J},[]);m.useEffect(()=>{var U;e&&((U=Xe.current)==null||U.focus())},[e]);const ie=m.useCallback(()=>u==="home"?`**👋 Welcome! I'm your Databricks pricing advisor.** + +I'm here to help you **learn and plan** before you dive in: + +- 📚 **Explore** workload types (Jobs, SQL, ML, GenAI, etc.) +- 💰 **Understand** pricing factors and DBU costs +- 🏗️ **Get guidance** on architecture decisions +- 💡 **Learn** cost optimization best practices + +--- + +**Ready to build an estimate?** +Click **"+ New Estimate"** above to create one, then I can help you add workloads and calculate costs! + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Ask me anything using the quick actions below* 👇`:s?`**How can I help you today?** + +I can assist you with: + +- 📊 **Analyze** your workloads and costs +- 💡 **Optimize** spending with smart recommendations +- ➕ **Add workloads** based on your requirements +- ❓ **Answer questions** about Databricks pricing + +--- + +📖 **Help & Resources** +- [Documentation](/docs/) - User guides & reference +- [Official Pricing](https://www.databricks.com/product/pricing) - Databricks pricing page + +*Try the quick actions below or ask me anything!*`:`**Hi! I'm your Databricks pricing assistant.** + +*Loading estimate details...*`,[s,u]),M=m.useCallback(()=>{I.current&&(I.current.abort(),I.current=null,v(!1),p(U=>{const J=[...U],Te=J.length-1;return Te>=0&&J[Te].isStreaming&&(J[Te]={...J[Te],isStreaming:!1,isThinking:!1,content:J[Te].content+` + +*[Generation stopped]*`}),J}))},[]),W=m.useCallback((U,J)=>{L(U),Le(J)},[]),ke=m.useCallback(()=>{L(null),Le("")},[]),Ne=m.useCallback(async(U,J)=>{try{await navigator.clipboard.writeText(J),q(U),setTimeout(()=>q(null),2e3)}catch(Te){console.error("Failed to copy:",Te)}},[]),[O,F]=m.useState(null),[K,ae]=m.useState(!1),Ee=m.useCallback(async U=>{if(!be.trim()||d.findIndex(Q=>Q.id===U)===-1)return;const Te=be.trim();if(A([]),L(null),Le(""),b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null);const Ve={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([Ve]),F(Te),ae(!0)},[be,d,b,ie]);m.useEffect(()=>{if(e&&d.length===0){const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])}},[e,ie]),m.useEffect(()=>{e&&d.length===1&&d[0].id==="welcome"&&s&&p([{id:"welcome",role:"assistant",content:ie(),timestamp:new Date}])},[e,s,i,ot,ie]);const Be=m.useCallback(async(U,J)=>{var ct;const Te=U||f.trim();if(!Te||g)return;const Ve={id:`user-${Date.now()}`,role:"user",content:Te,timestamp:new Date,isEdited:J||!1};p(et=>[...et,Ve]),h(""),v(!0),re(null);const Q=`assistant-${Date.now()}`;p(et=>[...et,{id:Q,role:"assistant",content:"",timestamp:new Date,isStreaming:!0,isThinking:!0}]);try{I.current=new AbortController;const et=(i||S||[]).map(Oe=>{const De=Oe.line_item_id||Oe.item_id||Oe.draft_id,Pe=a==null?void 0:a[De];return{...Oe,total_cost:(Pe==null?void 0:Pe.total)||Oe.total_cost||0,dbu_cost:(Pe==null?void 0:Pe.dbu)||Oe.dbu_cost||0,vm_cost:(Pe==null?void 0:Pe.vm)||Oe.vm_cost||0}}),It=await fetch("/api/v1/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:Ve.content,conversation_id:b,estimate_context:u==="home"?null:s||y,workloads_context:u==="home"?[]:et,mode:u,stream:!0}),signal:I.current.signal});if(!It.ok)throw new Error(`HTTP ${It.status}: ${It.statusText}`);const pt=(ct=It.body)==null?void 0:ct.getReader();if(!pt)throw new Error("No response body");const xt=new TextDecoder;let St="",mt="",Ue=[];for(;;){const{done:Oe,value:De}=await pt.read();if(Oe)break;St+=xt.decode(De,{stream:!0});const Pe=St.split(` +`);St=Pe.pop()||"";for(const Wt of Pe)if(Wt.startsWith("data: ")){const Et=Wt.slice(6);if(Et==="[DONE]")continue;try{const Se=JSON.parse(Et);if(Se.type==="start")x(Se.conversation_id);else if(Se.type==="content")mt+=Se.content,p(Ct=>Ct.map(on=>on.id===Q?{...on,content:mt,isThinking:!1}:on));else if(Se.type==="tool_result")Ue.push({tool:Se.tool,result:Se.result});else if(Se.type==="proposal")Se.workload&&Se.workload.proposal_id&&A(Ct=>Ct.some(qi=>qi.proposal_id===Se.workload.proposal_id)?Ct:[...Ct,Se.workload]);else if(Se.type==="done")mt.includes("Error getting response")||mt.includes("AI service error")||(Se.estimate&&_(Se.estimate),Se.workloads&&R(Se.workloads),Se.proposed_workloads&&Se.proposed_workloads.length>0&&A(Se.proposed_workloads));else if(Se.type==="error")throw new Error(Se.content)}catch{}}}p(Oe=>Oe.map(De=>De.id===Q?{...De,content:mt,isStreaming:!1,toolResults:Ue}:De))}catch(et){if(et.name==="AbortError")return;console.error("Chat error:",et),re(et.message||"Failed to get response"),p(It=>It.filter(pt=>pt.id!==Q))}finally{v(!1),I.current=null}},[f,g,b,s,i,y,S,a]);m.useEffect(()=>{O&&!g&&(Be(O,K),F(null),ae(!1))},[O,K,g,Be]);const dt=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Be())},rt=async()=>{if(b)try{await fetch(`/api/v1/chat/${b}`,{method:"DELETE"})}catch{}x(null),_(null),R([]),A([]),re(null);const U={id:"welcome",role:"assistant",content:ie(),timestamp:new Date};p([U])},Ge=async U=>{if(b){z(J=>new Set(J).add(U));try{const J=await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!0})});if(!J.ok)throw new Error("Failed to confirm workload");const Te=await J.json();if(A(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),r&&Te.workload_config)try{await r(Te.workload_config),p(Ve=>{var Q;return[...Ve,{id:`system-${Date.now()}`,role:"system",content:`✅ Workload "${(Q=Te.workload_config)==null?void 0:Q.workload_name}" added to estimate.`,timestamp:new Date}]})}catch(Ve){p(Q=>[...Q,{id:`system-${Date.now()}`,role:"system",content:`❌ Failed to add workload: ${Ve.message||"Database error"}. Please try again.`,timestamp:new Date}]),re(Ve.message||"Failed to add workload to database")}}catch(J){re(J.message||"Failed to confirm workload")}finally{z(J=>{const Te=new Set(J);return Te.delete(U),Te})}}},lt=async U=>{if(b){z(J=>new Set(J).add(U));try{if(!(await fetch(`/api/v1/chat/${b}/confirm-workload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposal_id:U,confirmed:!1})})).ok)throw new Error("Failed to reject workload");const Te=E.find(Ve=>Ve.proposal_id===U);A(Ve=>Ve.filter(Q=>Q.proposal_id!==U)),p(Ve=>[...Ve,{id:`system-${Date.now()}`,role:"system",content:`❌ Workload "${Te==null?void 0:Te.workload_name}" proposal rejected.`,timestamp:new Date}])}catch(J){re(J.message||"Failed to reject workload")}finally{z(J=>{const Te=new Set(J);return Te.delete(U),Te})}}},Ke=async()=>{for(const U of E)await Ge(U.proposal_id)},Ot=async()=>{for(const U of E)await lt(U.proposal_id)};return e?o.jsx(o.Fragment,{children:le?o.jsx("div",{className:"fixed bottom-4 right-4 z-50",children:o.jsxs("button",{onClick:()=>fe(!1),className:"flex items-center gap-2 px-4 py-2.5 bg-gradient-to-r from-lava-600 to-amber-500 text-white rounded-full shadow-lg hover:shadow-xl",children:[o.jsx(Hc,{className:"w-5 h-5"}),o.jsx("span",{className:"font-medium text-sm",children:"AI Assistant"}),o.jsx(ps,{className:"w-4 h-4"})]})}):o.jsxs("div",{ref:nt,className:"fixed top-14 bottom-0 right-0 bg-[var(--bg-primary)] border-l border-[var(--border-primary)] shadow-2xl z-40 flex flex-col",style:{width:`min(100vw, ${ce}px)`},children:[o.jsx("div",{onMouseDown:ft,className:ue("absolute left-0 top-0 bottom-0 w-1.5 cursor-ew-resize hover:bg-lava-600/30 transition-colors z-10",B&&"bg-lava-600/50"),children:o.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-12 rounded-full bg-[var(--border-secondary)] opacity-0 hover:opacity-100 transition-opacity"})}),o.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-[var(--border-primary)] bg-[var(--bg-secondary)]",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h2",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"AI Assistant"}),b&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse",title:"Active session"}),o.jsxs("div",{className:"relative group",children:[o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",title:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment.",children:o.jsx(dS,{className:"w-4 h-4"})}),o.jsx("div",{className:"absolute left-0 top-full mt-1 w-64 p-2.5 text-[11px] leading-relaxed bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(fs,{className:"w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:"text-[var(--text-secondary)]",children:"AI-generated estimates are for planning purposes only. Always review and validate configurations before deployment."})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:rt,className:"p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-900/30 text-[var(--text-secondary)] hover:text-red-600 dark:hover:text-red-400 transition-colors",title:"Clear conversation",children:o.jsx(tn,{className:"w-4 h-4"})}),o.jsx("button",{onClick:t,className:"p-2 rounded-lg hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] transition-colors",title:"Minimize",children:o.jsx(YD,{className:"w-4 h-4"})})]})]}),u==="estimate"&&s&&o.jsx("div",{className:"px-4 py-2.5 bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-800/50 dark:to-slate-900/50 border-b border-[var(--border-primary)]",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx("div",{className:"w-7 h-7 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:o.jsx(FD,{className:"w-3.5 h-3.5 text-blue-600 dark:text-blue-400"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"font-medium text-sm text-[var(--text-primary)] truncate",title:s.estimate_name||s.name||"Estimate",children:s.estimate_name||s.name||"Estimate"}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] flex-wrap",children:[o.jsx("span",{className:"px-1 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium",children:(s.cloud||"AWS").toUpperCase()}),o.jsx("span",{className:"truncate",children:s.region||"N/A"}),o.jsx("span",{children:"•"}),o.jsx("span",{children:s.tier||"PREMIUM"})]})]})]}),o.jsxs("div",{className:"text-right flex-shrink-0",children:[o.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[(i==null?void 0:i.length)||0," workloads"]}),o.jsxs("div",{className:"font-bold text-sm text-[var(--text-primary)]",children:[ot>0?o.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["$",ot.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})]}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"—"}),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)]",children:"/mo"})]})]})]})}),E.length>0&&o.jsxs("div",{className:"px-4 py-2 bg-amber-50 dark:bg-amber-900/20 border-b border-amber-200 dark:border-amber-800",children:[o.jsxs("button",{onClick:()=>H(!j),className:"w-full flex items-center justify-between py-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ry,{className:"w-4 h-4 text-amber-600"}),o.jsxs("span",{className:"text-sm font-medium text-amber-700 dark:text-amber-300",children:[E.length," Proposed Workload",E.length!==1?"s":""," - Confirm to Add"]})]}),j?o.jsx(rr,{className:"w-4 h-4 text-amber-600"}):o.jsx(ps,{className:"w-4 h-4 text-amber-600"})]}),!j&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-center gap-2 mt-2 mb-3",children:[o.jsxs("button",{onClick:Ke,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-green-600 hover:bg-green-700 disabled:bg-green-400 text-white rounded transition-colors",children:["Accept All (",E.length,")"]}),o.jsx("button",{onClick:Ot,disabled:D.size>0,className:"text-xs px-2.5 py-1 bg-gray-200 hover:bg-gray-300 disabled:bg-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded transition-colors",children:"Reject All"})]}),o.jsx("div",{className:"space-y-2 max-h-[280px] overflow-y-auto pr-1",children:E.map(U=>{const J=D.has(U.proposal_id);return o.jsx("div",{className:ue("bg-white dark:bg-gray-800 rounded-lg p-3 border border-amber-200 dark:border-amber-700 transition-opacity",J&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[o.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:U.workload_name}),o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded",children:U.workload_type})]}),U.reason&&o.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400 line-clamp-2 mb-1.5",children:U.reason}),o.jsxs("div",{className:"flex flex-wrap gap-x-2 gap-y-1 text-[11px] text-gray-500 dark:text-gray-400",children:[U.serverless_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded",children:"Serverless"}),U.photon_enabled&&o.jsx("span",{className:"px-1.5 py-0.5 bg-orange-100 dark:bg-orange-900/30 text-orange-700 dark:text-orange-300 rounded",children:"Photon"}),U.num_workers&&o.jsxs("span",{children:[U.num_workers," workers"]}),U.worker_node_type&&o.jsx("span",{className:"font-mono text-[10px]",children:U.worker_node_type}),U.dbsql_warehouse_size&&o.jsx("span",{children:U.dbsql_warehouse_size}),U.hours_per_month&&o.jsxs("span",{children:[U.hours_per_month,"h/mo"]}),U.runs_per_day&&U.avg_runtime_minutes&&o.jsxs("span",{children:[U.runs_per_day,"×",U.avg_runtime_minutes,"min"]}),U.dlt_edition&&o.jsx("span",{children:U.dlt_edition})]})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:J?o.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:o.jsxs("svg",{className:"animate-spin h-4 w-4 text-amber-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>Ge(U.proposal_id),className:"p-1.5 rounded-full bg-green-100 hover:bg-green-200 dark:bg-green-900/30 dark:hover:bg-green-800/50 text-green-700 dark:text-green-400 transition-colors",title:"Confirm & Add",children:o.jsx(Tu,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>lt(U.proposal_id),className:"p-1.5 rounded-full bg-red-100 hover:bg-red-200 dark:bg-red-900/30 dark:hover:bg-red-800/50 text-red-700 dark:text-red-400 transition-colors",title:"Reject",children:o.jsx(Ta,{className:"w-4 h-4"})})]})})]})},U.proposal_id)})})]})]}),o.jsxs("div",{ref:at,onScroll:k,className:"flex-1 overflow-y-auto p-4 space-y-5",children:[d.map(U=>o.jsx("div",{className:ue("flex gap-3 group",U.role==="user"?"flex-row-reverse":"flex-row"),children:o.jsx("div",{className:ue("flex-1 min-w-0",U.role==="user"?"text-right":"text-left"),children:U.role==="user"&&de===U.id?o.jsxs("div",{className:"inline-block max-w-[85%] text-left",children:[o.jsx("textarea",{value:be,onChange:J=>Le(J.target.value),onKeyDown:J=>{J.key==="Enter"&&!J.shiftKey&&(J.preventDefault(),Ee(U.id))},className:"w-full min-w-[200px] p-3 text-[13px] rounded-xl border border-blue-300 bg-[#d7edfe] dark:bg-blue-900/20 focus:outline-none focus:ring-2 focus:ring-blue-400 text-[var(--text-primary)]",rows:3,placeholder:"Press Enter to save, Shift+Enter for new line"}),o.jsxs("div",{className:"flex gap-2 mt-2 justify-end items-center",children:[o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter to save · Shift+Enter for new line"}),o.jsx("button",{onClick:ke,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border-primary)] text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)]",children:"Cancel"}),o.jsxs("button",{onClick:()=>Ee(U.id),className:"px-3 py-1.5 text-xs rounded-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center gap-1",children:[o.jsx(Ws,{className:"w-3 h-3"}),"Save"]})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:ue("inline-block text-[13px] leading-[1.7]",U.role==="user"?"bg-[#d7edfe] text-[var(--text-primary)] px-4 py-2.5 rounded-2xl rounded-tr-md max-w-[85%] whitespace-pre-wrap text-left shadow-sm":U.role==="system"?"bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 px-4 py-2.5 rounded-xl border border-green-200 dark:border-green-800":"text-[var(--text-primary)] max-w-full"),children:(U.isStreaming||U.isThinking)&&!U.content?o.jsx("div",{className:"flex items-center gap-2 px-2 py-2",children:o.jsxs("div",{className:"flex gap-1",children:[o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),o.jsx("span",{className:"w-2 h-2 bg-lava-600 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})}):U.role==="user"?o.jsx("span",{className:"whitespace-pre-wrap",children:U.content}):o.jsx("div",{className:"ai-message-content",children:o.jsx(cU,{remarkPlugins:[wV],components:{h1:({children:J})=>o.jsx("h1",{className:"text-base font-bold text-[var(--text-primary)] mt-3 mb-2 pb-1 border-b border-[var(--border-primary)]",children:J}),h2:({children:J})=>o.jsx("h2",{className:"text-[14px] font-bold text-[var(--text-primary)] mt-3 mb-1.5",children:J}),h3:({children:J})=>o.jsx("h3",{className:"text-[13px] font-semibold text-[var(--text-primary)] mt-2 mb-1",children:J}),p:({children:J})=>o.jsx("p",{className:"my-2 text-[var(--text-primary)] leading-relaxed",children:J}),ul:({children:J})=>o.jsx("ul",{className:"my-2 ml-4 space-y-1 list-disc",children:J}),ol:({children:J})=>o.jsx("ol",{className:"my-2 ml-4 space-y-1 list-decimal",children:J}),li:({children:J})=>o.jsx("li",{className:"text-[var(--text-primary)]",children:J}),strong:({children:J})=>o.jsx("strong",{className:"font-semibold text-[var(--text-primary)]",children:J}),em:({children:J})=>o.jsx("em",{className:"text-[var(--text-secondary)] italic",children:J}),code:({className:J,children:Te})=>(J==null?void 0:J.includes("language-"))?o.jsx("code",{className:"block bg-slate-900 dark:bg-slate-950 text-slate-100 p-3 rounded-lg text-xs font-mono overflow-x-auto my-3 border border-slate-700",children:Te}):o.jsx("code",{className:"px-1.5 py-0.5 bg-lava-600/10 dark:bg-lava-600/30 text-lava-700 dark:text-lava-400 rounded text-[12px] font-mono",children:Te}),pre:({children:J})=>o.jsx("pre",{className:"my-3 overflow-hidden rounded-lg",children:J}),blockquote:({children:J})=>o.jsx("blockquote",{className:"my-3 pl-3 border-l-3 border-lava-500 bg-lava-600/5 dark:bg-lava-600/10 py-2 pr-3 rounded-r-lg text-[var(--text-secondary)] italic",children:J}),hr:()=>o.jsx("hr",{className:"my-4 border-[var(--border-primary)]"}),a:({href:J,children:Te})=>o.jsx("a",{href:J,className:"text-lava-700 dark:text-lava-500 hover:underline font-medium",target:"_blank",rel:"noopener noreferrer",children:Te})},children:U.content})})}),U.toolResults&&U.toolResults.length>0&&o.jsx("div",{className:"mt-2.5 flex flex-wrap gap-2",children:U.toolResults.map((J,Te)=>{var Ve;return o.jsxs("div",{className:"text-[11px] px-2.5 py-1.5 bg-slate-100 dark:bg-slate-800 rounded-lg flex items-center gap-1.5",children:[(Ve=J.result)!=null&&Ve.success?o.jsx(Tu,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(Yr,{className:"w-3.5 h-3.5 text-lava-600"}),o.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:J.tool.replace(/_/g," ")})]},Te)})}),o.jsxs("div",{className:ue("flex items-center gap-2 mt-1.5",U.role==="user"?"justify-end":"justify-start"),children:[U.isEdited&&o.jsx("span",{className:"text-[9px] text-[var(--text-muted)] italic",children:"(edited)"}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:U.timestamp.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(U.role==="user"||U.role==="assistant")&&U.id!=="welcome"&&U.content&&o.jsx("button",{onClick:()=>Ne(U.id,U.content),className:ue("p-1 rounded transition-colors",w===U.id?"text-green-500":"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-secondary)]"),title:w===U.id?"Copied!":"Copy message",children:w===U.id?o.jsx(SD,{className:"w-3.5 h-3.5"}):o.jsx(CD,{className:"w-3.5 h-3.5"})}),U.role==="user"&&U.id!=="welcome"&&!g&&o.jsx("button",{onClick:()=>W(U.id,U.content),className:"p-1 rounded hover:bg-blue-100 dark:hover:bg-blue-900/30 text-blue-400 hover:text-blue-600 transition-colors",title:"Edit message",children:o.jsx(s3,{className:"w-3.5 h-3.5"})})]})]})})},U.id)),X&&o.jsx("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl",children:o.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-300",children:[o.jsx(ry,{className:"w-5 h-5 flex-shrink-0 mt-0.5"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:X.includes("400")?"Request failed":"Error"}),o.jsx("p",{className:"text-xs mt-1 opacity-80",children:X.includes("400")?"The conversation may be too long. Try clearing the chat and starting fresh.":X.includes("429")?"Rate limited. Please wait a moment and try again.":X}),X.includes("400")&&o.jsx("button",{onClick:rt,className:"mt-2 text-xs px-3 py-1.5 bg-red-100 dark:bg-red-800/50 rounded-lg hover:bg-red-200 dark:hover:bg-red-700/50 transition-colors font-medium",children:"Clear & restart"})]})]})}),o.jsx("div",{ref:ve})]}),o.jsxs("div",{className:"p-4 border-t border-[var(--border-primary)] bg-gradient-to-t from-[var(--bg-secondary)] to-[var(--bg-primary)]",children:[!g&&o.jsxs("div",{className:"mb-2",children:[o.jsxs("button",{onClick:()=>se(!N),className:"text-[10px] text-[var(--text-muted)] hover:text-lava-700 dark:hover:text-lava-500 flex items-center gap-1 transition-colors",children:[N?o.jsx(rr,{className:"w-3 h-3"}):o.jsx(ps,{className:"w-3 h-3"}),N?"Hide Quick Actions":"Show Quick Actions"]}),N&&o.jsx("div",{className:"mt-2 grid grid-cols-2 sm:flex sm:justify-center gap-1.5",children:P.map((U,J)=>o.jsx("button",{onClick:()=>Be(U.action),className:"text-[10px] px-2.5 py-1.5 rounded-full border border-[var(--border-primary)] bg-[var(--bg-primary)] hover:bg-lava-50 dark:hover:bg-lava-900/20 hover:border-lava-400 hover:text-lava-700 dark:hover:text-lava-400 text-[var(--text-secondary)] transition-all text-center",children:U.label},J))})]}),o.jsxs("div",{className:"relative flex items-end",children:[o.jsx("textarea",{ref:Xe,value:f,onChange:G,onKeyDown:dt,placeholder:"Ask about pricing, workloads, or optimization...",rows:1,className:"w-full resize-none rounded-xl border border-[var(--border-primary)] bg-[var(--bg-primary)] pl-4 pr-12 py-3 text-[13px] leading-relaxed focus:outline-none focus:ring-0 focus:border-lava-500 dark:focus:border-lava-600 placeholder:text-[var(--text-muted)] shadow-sm transition-colors",style:{minHeight:"44px",maxHeight:"150px",height:"auto",overflow:f.length>100?"auto":"hidden"}}),o.jsx("button",{onClick:g?M:()=>Be(),disabled:!g&&!f.trim(),className:ue("absolute right-2 w-8 h-8 rounded-lg flex items-center justify-center transition-all duration-150","bottom-[6px]",g?"bg-red-500 hover:bg-red-600 text-white":f.trim()?"bg-lava-600 hover:bg-lava-700 text-white":"bg-[var(--bg-tertiary)] text-[var(--text-muted)] cursor-not-allowed"),title:g?"Stop generation":"Send message",children:g?o.jsx(fS,{className:"w-4 h-4"}):o.jsx(e3,{className:"w-4 h-4"})}),f.length>100&&o.jsx("span",{className:"absolute right-12 bottom-[10px] text-[9px] text-[var(--text-muted)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded",children:f.length})]}),o.jsxs("div",{className:"flex items-center justify-between mt-2 text-[9px] text-[var(--text-muted)]",children:[o.jsx("span",{children:"Shift+Enter for new line"}),o.jsx("span",{children:"Powered by Claude Opus 4.5"})]})]})]})}):null}function SV({className:e}){return o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})})}const EV=[{name:"Estimates",href:"/",icon:Pg},{name:"New Estimate",href:"/calculator",icon:c3}],R_=()=>o.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-7 h-7",children:[o.jsx("rect",{x:"0",y:"0",width:"24",height:"24",rx:"5",fill:"#FF3621"}),o.jsx("path",{d:"M5 9l7-4 7 4",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M7 15a5 5 0 0 1 10 0",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("path",{d:"M12 15l2-3",stroke:"white",strokeWidth:"2",strokeLinecap:"round"}),o.jsx("circle",{cx:"12",cy:"15",r:"1.3",fill:"white"}),o.jsx("path",{d:"M5 20q3.5-1.5 7 0t7 0",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",opacity:"0.9"})]}),Jp=[{value:"light",label:"Light",icon:b3},{value:"dark",label:"Dark",icon:JD},{value:"system",label:"System",icon:AD}],kc={AI_ASSISTANT_OPENED:"lakemeter_ai_assistant_opened",HELP_ICON_CLICKED:"lakemeter_help_icon_clicked"};function CV(){const e=bl(),{theme:t,setTheme:n}=T3(),[r,s]=m.useState(!1),[i,a]=m.useState(!1),[l,c]=m.useState(!1),[u,d]=m.useState(380),[p,f]=m.useState(!1),[h,g]=m.useState(""),[v,b]=m.useState(()=>localStorage.getItem(kc.AI_ASSISTANT_OPENED)==="true"),[x,y]=m.useState(()=>localStorage.getItem(kc.HELP_ICON_CLICKED)==="true"),_=m.useRef(null),S=m.useRef(null),{currentUser:R,isAuthenticated:E,authError:A,fetchCurrentUser:D,currentEstimate:z,lineItems:j,localCalculatedCosts:H,createLineItem:X,calculateAllWorkloadCosts:re,setSessionExpired:le,fetchReferenceData:fe,loadPricingBundle:xe,isReferenceDataLoaded:oe,isPricingBundleLoaded:B}=bs(),Y=e.pathname.startsWith("/calculator/")&&e.pathname!=="/calculator",N=e.pathname==="/",se=Y||N,de=m.useCallback(()=>{M4(),le(!1),f(!1),window.location.reload()},[le]);m.useEffect(()=>{const q=ce=>{var _e;console.log("Session expired event received:",ce.detail),g(((_e=ce.detail)==null?void 0:_e.message)||"Your session has expired"),f(!0),le(!0)};return window.addEventListener(jm,q),()=>{window.removeEventListener(jm,q)}},[le]),m.useEffect(()=>{se&&!v&&c(!0)},[se,v]);const L=m.useCallback(()=>{c(!l),v||(localStorage.setItem(kc.AI_ASSISTANT_OPENED,"true"),b(!0))},[l,v]),be=m.useCallback(()=>{a(!i),x||(localStorage.setItem(kc.HELP_ICON_CLICKED,"true"),y(!0))},[i,x]);m.useEffect(()=>{!se&&l&&c(!1)},[se,l]),m.useEffect(()=>{D()},[D]),m.useEffect(()=>{oe||fe(),B||xe()},[fe,xe,oe,B]),m.useEffect(()=>{const q=ce=>{_.current&&!_.current.contains(ce.target)&&s(!1),S.current&&!S.current.contains(ce.target)&&a(!1)};return document.addEventListener("mousedown",q),()=>document.removeEventListener("mousedown",q)},[]);const Le=Jp.find(q=>q.value===t)||Jp[2],w=Le.icon;return A?o.jsx("div",{className:"min-h-screen flex flex-col items-center justify-center p-8",style:{backgroundColor:"var(--bg-primary)"},children:o.jsxs("div",{className:"max-w-md w-full p-8 rounded-xl border text-center",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-6 rounded-full flex items-center justify-center bg-lava-600/10",children:o.jsx(R_,{})}),o.jsx("h1",{className:"text-2xl font-bold mb-2",style:{color:"var(--text-primary)"},children:"Authentication Required"}),o.jsx("p",{className:"mb-6",style:{color:"var(--text-secondary)"},children:A}),o.jsxs("div",{className:"p-4 rounded-lg text-sm text-left",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"For local development:"}),o.jsxs("p",{className:"mb-2",children:["Set the ",o.jsx("code",{className:"px-1.5 py-0.5 rounded bg-black/20",children:"LOCAL_DEV_EMAIL"})," environment variable:"]}),o.jsx("code",{className:"block p-2 rounded bg-black/30 text-lava-500 text-xs",children:"LOCAL_DEV_EMAIL=your.email@databricks.com"})]})]})}):o.jsxs("div",{className:"min-h-screen flex flex-col transition-colors duration-200",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsx("header",{className:"sticky top-0 z-50 backdrop-blur-xl border-b transition-colors",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs(wu,{to:"/",className:"flex items-center gap-3 group",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center border group-hover:border-lava-600/50 transition-colors",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)"},children:o.jsx(R_,{})}),o.jsxs("div",{children:[o.jsx("span",{className:"text-xl font-semibold",style:{color:"var(--text-primary)"},children:"Lakemeter"}),o.jsx("span",{className:"hidden sm:inline text-xs ml-2 uppercase tracking-wider",style:{color:"var(--text-muted)"},children:"Pricing Calculator"})]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("nav",{className:"flex items-center gap-1",children:EV.map(q=>{const ce=e.pathname===q.href||q.href!=="/"&&e.pathname.startsWith(q.href);return o.jsxs(wu,{to:q.href,className:ue("flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm font-medium transition-all duration-200",ce&&"border"),style:ce?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)",borderColor:"rgba(255, 54, 33, 0.2)"}:{color:"var(--text-secondary)"},children:[o.jsx(q.icon,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:q.name})]},q.name)})}),E&&R&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg border",style:{backgroundColor:"var(--bg-tertiary)",borderColor:"var(--border-primary)",color:"var(--text-secondary)"},children:[o.jsx(C3,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden md:inline max-w-[150px] truncate",title:R.full_name||R.email,children:R.full_name||R.email.split("@")[0]})]}),o.jsxs("div",{className:"relative",ref:_,children:[o.jsxs("button",{onClick:()=>s(!r),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors border border-transparent hover:border-current",style:{color:"var(--text-secondary)"},children:[o.jsx(w,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm hidden sm:inline",children:Le.label}),o.jsx(rr,{className:ue("w-3 h-3 transition-transform",r&&"rotate-180")})]}),r&&o.jsx("div",{className:"absolute right-0 mt-1 w-36 rounded-lg shadow-lg py-1 z-50 border",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:Jp.map(q=>{const ce=q.icon,_e=t===q.value;return o.jsxs("button",{onClick:()=>{n(q.value),s(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",style:_e?{backgroundColor:"rgba(255, 54, 33, 0.1)",color:"var(--databricks-red)"}:{color:"var(--text-secondary)"},children:[o.jsx(ce,{className:"w-4 h-4"}),o.jsx("span",{children:q.label})]},q.value)})})]}),o.jsxs("div",{className:"relative",ref:S,children:[o.jsxs("button",{onClick:be,className:ue("relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-colors text-sm border border-transparent hover:border-current",i?"text-lava-600 border-lava-600":"text-[var(--text-secondary)] hover:text-lava-600"),title:"Help & Feedback",children:[o.jsx(p3,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Help"}),!x&&o.jsxs("span",{className:"absolute -top-0.5 -right-0.5 flex h-3 w-3",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-lava-400 opacity-75"}),o.jsx("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-lava-500"})]})]}),o.jsx(rm,{children:i&&o.jsxs(Ut.div,{initial:{opacity:0,y:-8,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.95},transition:{duration:.15},className:"absolute right-0 mt-2 w-56 rounded-xl shadow-lg py-2 z-50 border overflow-hidden",style:{backgroundColor:"var(--bg-secondary)",borderColor:"var(--border-primary)"},children:[o.jsx("div",{className:"px-3 py-1.5 mb-1",children:o.jsx("p",{className:"text-xs font-semibold text-[var(--text-muted)] uppercase tracking-wider",children:"Help & Resources"})}),o.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(UD,{className:"w-4 h-4 text-blue-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Documentation"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"User guides & reference"})]})]}),o.jsxs("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"flex items-center gap-3 px-3 py-2.5 text-sm transition-colors hover:bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[o.jsx(bm,{className:"w-4 h-4 text-purple-500"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Official Pricing"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Databricks pricing page"})]})]})]})})]})]})]})})}),o.jsx("main",{className:"flex-1",style:l&&se?{marginRight:`${u}px`}:void 0,children:o.jsx(Ut.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:o.jsx(jN,{})},e.pathname)}),o.jsx("footer",{className:"border-t py-4 mt-auto",style:{borderColor:"var(--border-primary)",...l&&se?{marginRight:`${u}px`}:{}},children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-2 sm:gap-4",children:[o.jsxs("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:[o.jsx("span",{className:"text-lava-600",children:"Databricks"})," Pricing Calculator • Powered by Apps & Lakebase"]}),o.jsx("span",{className:"hidden sm:inline text-[var(--text-muted)]",children:"•"}),o.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[o.jsx("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Docs"}),o.jsx("a",{href:"https://www.databricks.com/product/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-lava-600 hover:text-lava-700 transition-colors hover:underline",children:"Pricing"})]})]})})}),se&&o.jsx(kV,{isOpen:l,onClose:()=>c(!1),currentEstimate:Y?z:void 0,currentWorkloads:Y?j:void 0,itemCosts:Y?H:void 0,mode:N?"home":"estimate",onWorkloadConfirmed:Y?async q=>{if(z!=null&&z.estimate_id)try{await X({estimate_id:z.estimate_id,...q}),re(z.estimate_id),$e.success(`Workload "${q.workload_name}" added!`)}catch(ce){throw $e.error(ce.message||"Failed to add workload"),ce}}:void 0,onWidthChange:d,panelWidth:u}),se&&!l&&o.jsxs("button",{onClick:L,className:"fixed bottom-6 right-6 z-40 flex items-center gap-2.5 pl-4 pr-5 py-3 rounded-full text-white shadow-lg transition-all duration-200 hover:shadow-xl bg-gradient-to-r from-lava-600 via-amber-500 to-yellow-500 shadow-lava-600/25 hover:shadow-lava-600/35",title:"Open AI Assistant",children:[o.jsx(SV,{className:"w-5 h-5"}),o.jsx("span",{className:"text-sm font-semibold whitespace-nowrap",children:"AI Assistant"}),!v&&o.jsx("span",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-lava-500 to-amber-400 animate-ping opacity-20"})]}),o.jsx(rm,{children:p&&o.jsx(Ut.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},children:o.jsxs(Ut.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"max-w-md w-full rounded-2xl shadow-2xl overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[o.jsxs("div",{className:"bg-gradient-to-r from-amber-500 to-lava-600 px-6 py-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(fs,{className:"w-10 h-10 text-white"})}),o.jsx("h2",{className:"text-2xl font-bold text-white",children:"Session Expired"})]}),o.jsxs("div",{className:"px-6 py-6",children:[o.jsx("p",{className:"text-center mb-6",style:{color:"var(--text-secondary)"},children:h||"Your session has expired due to inactivity or token expiration."}),o.jsxs("div",{className:"p-4 rounded-lg mb-6 text-sm",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)"},children:[o.jsx("p",{className:"font-medium mb-2",style:{color:"var(--text-primary)"},children:"What happened?"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"Your authentication token has expired"}),o.jsx("li",{children:"This can happen after extended inactivity"}),o.jsx("li",{children:"Your data is safe - just refresh to continue"})]})]}),o.jsxs("button",{onClick:de,className:"w-full flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-semibold text-white bg-gradient-to-r from-lava-600 to-amber-500 hover:from-lava-700 hover:to-amber-600 transition-all duration-200 shadow-lg hover:shadow-xl",children:[o.jsx(Yr,{className:"w-5 h-5"}),"Refresh Page"]}),o.jsx("p",{className:"text-center text-xs mt-4",style:{color:"var(--text-muted)"},children:"You'll be redirected to log in again"})]})]})})})]})}function jV(){for(var e=arguments.length,t=new Array(e),n=0;nr=>{t.forEach(s=>s(r))},t)}const Ad=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function ex(e){return"nodeType"in e}function Jn(e){var t,n;return e?Ga(e)?e:ex(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function tx(e){const{Document:t}=Jn(e);return e instanceof t}function Dl(e){return Ga(e)?!1:e instanceof Jn(e).HTMLElement}function gC(e){return e instanceof Jn(e).SVGElement}function Ka(e){return e?Ga(e)?e.document:ex(e)?tx(e)?e:Dl(e)||gC(e)?e.ownerDocument:document:document:document}const ts=Ad?m.useLayoutEffect:m.useEffect;function nx(e){const t=m.useRef(e);return ts(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s{e.current=setInterval(r,s)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function pl(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return ts(()=>{n.current!==e&&(n.current=e)},t),n}function Ml(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Uu(e){const t=nx(e),n=m.useRef(null),r=m.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function $m(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let Zp={};function Ol(e,t){return m.useMemo(()=>{if(t)return t;const n=Zp[e]==null?0:Zp[e]+1;return Zp[e]=n,e+"-"+n},[e,t])}function xC(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s{const l=Object.entries(a);for(const[c,u]of l){const d=i[c];d!=null&&(i[c]=d+e*u)}return i},{...t})}}const ba=xC(1),Vu=xC(-1);function PV(e){return"clientX"in e&&"clientY"in e}function rx(e){if(!e)return!1;const{KeyboardEvent:t}=Jn(e.target);return t&&e instanceof t}function RV(e){if(!e)return!1;const{TouchEvent:t}=Jn(e.target);return t&&e instanceof t}function Hm(e){if(RV(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return PV(e)?{x:e.clientX,y:e.clientY}:null}const Oa=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Oa.Translate.toString(e),Oa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),A_="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function AV(e){return e.matches(A_)?e:e.querySelector(A_)}const TV={display:"none"};function LV(e){let{id:t,value:n}=e;return pn.createElement("div",{id:t,style:TV},n)}function DV(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return pn.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function MV(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const vC=m.createContext(null);function OV(e){const t=m.useContext(vC);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}function IV(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:s,event:i}=r;e.forEach(a=>{var l;return(l=a[s])==null?void 0:l.call(a,i)})},[e]),t]}const FV={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},BV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function UV(e){let{announcements:t=BV,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=FV}=e;const{announce:i,announcement:a}=MV(),l=Ol("DndLiveRegion"),[c,u]=m.useState(!1);if(m.useEffect(()=>{u(!0)},[]),OV(m.useMemo(()=>({onDragStart(p){let{active:f}=p;i(t.onDragStart({active:f}))},onDragMove(p){let{active:f,over:h}=p;t.onDragMove&&i(t.onDragMove({active:f,over:h}))},onDragOver(p){let{active:f,over:h}=p;i(t.onDragOver({active:f,over:h}))},onDragEnd(p){let{active:f,over:h}=p;i(t.onDragEnd({active:f,over:h}))},onDragCancel(p){let{active:f,over:h}=p;i(t.onDragCancel({active:f,over:h}))}}),[i,t])),!c)return null;const d=pn.createElement(pn.Fragment,null,pn.createElement(LV,{id:r,value:s.draggable}),pn.createElement(DV,{id:l,announcement:a}));return n?la.createPortal(d,n):d}var rn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(rn||(rn={}));function zu(){}function $u(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function yC(){for(var e=arguments.length,t=new Array(e),n=0;n[...t].filter(r=>r!=null),[...t])}const Fr=Object.freeze({x:0,y:0});function VV(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function zV(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function HV(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function T_(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const _C=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=T_(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,c=n.get(l);if(c){const u=VV(T_(c),s);i.push({id:l,data:{droppableContainer:a,value:u}})}}return i.sort(zV)};function qV(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=s-r,l=i-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const c=qV(l,t);c>0&&s.push({id:a,data:{droppableContainer:i,value:c}})}}return s.sort($V)};function GV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function bC(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Fr}function KV(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const QV=KV(1);function YV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function XV(e,t,n){const r=YV(t);if(!r)return e;const{scaleX:s,scaleY:i,x:a,y:l}=r,c=e.left-a-(1-s)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=s?e.width/s:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}const JV={ignoreTransform:!1};function Qa(e,t){t===void 0&&(t=JV);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=Jn(e).getComputedStyle(e);u&&(n=XV(n,u,d))}const{top:r,left:s,width:i,height:a,bottom:l,right:c}=n;return{top:r,left:s,width:i,height:a,bottom:l,right:c}}function L_(e){return Qa(e,{ignoreTransform:!0})}function ZV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function ez(e,t){return t===void 0&&(t=Jn(e).getComputedStyle(e)),t.position==="fixed"}function tz(e,t){t===void 0&&(t=Jn(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const i=t[s];return typeof i=="string"?n.test(i):!1})}function sx(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(tx(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!Dl(s)||gC(s)||n.includes(s))return n;const i=Jn(e).getComputedStyle(s);return s!==e&&tz(s,i)&&n.push(s),ez(s,i)?n:r(s.parentNode)}return e?r(e):n}function wC(e){const[t]=sx(e,1);return t??null}function ef(e){return!Ad||!e?null:Ga(e)?e:ex(e)?tx(e)||e===Ka(e).scrollingElement?window:Dl(e)?e:null:null}function kC(e){return Ga(e)?e.scrollX:e.scrollLeft}function SC(e){return Ga(e)?e.scrollY:e.scrollTop}function qm(e){return{x:kC(e),y:SC(e)}}var dn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(dn||(dn={}));function EC(e){return!Ad||!e?!1:e===document.scrollingElement}function CC(e){const t={x:0,y:0},n=EC(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:s,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const nz={x:.2,y:.2};function rz(e,t,n,r,s){let{top:i,left:a,right:l,bottom:c}=n;r===void 0&&(r=10),s===void 0&&(s=nz);const{isTop:u,isBottom:d,isLeft:p,isRight:f}=CC(e),h={x:0,y:0},g={x:0,y:0},v={height:t.height*s.y,width:t.width*s.x};return!u&&i<=t.top+v.height?(h.y=dn.Backward,g.y=r*Math.abs((t.top+v.height-i)/v.height)):!d&&c>=t.bottom-v.height&&(h.y=dn.Forward,g.y=r*Math.abs((t.bottom-v.height-c)/v.height)),!f&&l>=t.right-v.width?(h.x=dn.Forward,g.x=r*Math.abs((t.right-v.width-l)/v.width)):!p&&a<=t.left+v.width&&(h.x=dn.Backward,g.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:h,speed:g}}function sz(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function jC(e){return e.reduce((t,n)=>ba(t,qm(n)),Fr)}function iz(e){return e.reduce((t,n)=>t+kC(n),0)}function az(e){return e.reduce((t,n)=>t+SC(n),0)}function oz(e,t){if(t===void 0&&(t=Qa),!e)return;const{top:n,left:r,bottom:s,right:i}=t(e);wC(e)&&(s<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const lz=[["x",["left","right"],iz],["y",["top","bottom"],az]];class ix{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=sx(n),s=jC(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of lz)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=s[i]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Oo{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function cz(e){const{EventTarget:t}=Jn(e);return e instanceof t?e:Ka(e)}function tf(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var gr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(gr||(gr={}));function D_(e){e.preventDefault()}function uz(e){e.stopPropagation()}var tt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(tt||(tt={}));const NC={start:[tt.Space,tt.Enter],cancel:[tt.Esc],end:[tt.Space,tt.Enter,tt.Tab]},dz=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case tt.Right:return{...n,x:n.x+25};case tt.Left:return{...n,x:n.x-25};case tt.Down:return{...n,y:n.y+25};case tt.Up:return{...n,y:n.y-25}}};class Td{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Oo(Ka(n)),this.windowListeners=new Oo(Jn(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(gr.Resize,this.handleCancel),this.windowListeners.add(gr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(gr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&oz(r),n(Fr)}handleKeyDown(t){if(rx(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:i=NC,coordinateGetter:a=dz,scrollBehavior:l="smooth"}=s,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Fr;this.referenceCoordinates||(this.referenceCoordinates=d);const p=a(t,{active:n,context:r.current,currentCoordinates:d});if(p){const f=Vu(p,d),h={x:0,y:0},{scrollableAncestors:g}=r.current;for(const v of g){const b=t.code,{isTop:x,isRight:y,isLeft:_,isBottom:S,maxScroll:R,minScroll:E}=CC(v),A=sz(v),D={x:Math.min(b===tt.Right?A.right-A.width/2:A.right,Math.max(b===tt.Right?A.left:A.left+A.width/2,p.x)),y:Math.min(b===tt.Down?A.bottom-A.height/2:A.bottom,Math.max(b===tt.Down?A.top:A.top+A.height/2,p.y))},z=b===tt.Right&&!y||b===tt.Left&&!_,j=b===tt.Down&&!S||b===tt.Up&&!x;if(z&&D.x!==p.x){const H=v.scrollLeft+f.x,X=b===tt.Right&&H<=R.x||b===tt.Left&&H>=E.x;if(X&&!f.y){v.scrollTo({left:H,behavior:l});return}X?h.x=v.scrollLeft-H:h.x=b===tt.Right?v.scrollLeft-R.x:v.scrollLeft-E.x,h.x&&v.scrollBy({left:-h.x,behavior:l});break}else if(j&&D.y!==p.y){const H=v.scrollTop+f.y,X=b===tt.Down&&H<=R.y||b===tt.Up&&H>=E.y;if(X&&!f.x){v.scrollTo({top:H,behavior:l});return}X?h.y=v.scrollTop-H:h.y=b===tt.Down?v.scrollTop-R.y:v.scrollTop-E.y,h.y&&v.scrollBy({top:-h.y,behavior:l});break}}this.handleMove(t,ba(Vu(p,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Td.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=NC,onActivation:s}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),s==null||s({event:e.nativeEvent}),!0)}return!1}}];function M_(e){return!!(e&&"distance"in e)}function O_(e){return!!(e&&"delay"in e)}class ax{constructor(t,n,r){var s;r===void 0&&(r=cz(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Ka(a),this.documentListeners=new Oo(this.document),this.listeners=new Oo(r),this.windowListeners=new Oo(Jn(a)),this.initialCoordinates=(s=Hm(i))!=null?s:Fr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(gr.Resize,this.handleCancel),this.windowListeners.add(gr.DragStart,D_),this.windowListeners.add(gr.VisibilityChange,this.handleCancel),this.windowListeners.add(gr.ContextMenu,D_),this.documentListeners.add(gr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(O_(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(M_(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(gr.Click,uz,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(gr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!s)return;const c=(n=Hm(t))!=null?n:Fr,u=Vu(s,c);if(!r&&l){if(M_(l)){if(l.tolerance!=null&&tf(u,l.tolerance))return this.handleCancel();if(tf(u,l.distance))return this.handleStart()}if(O_(l)&&tf(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===tt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const pz={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ld extends ax{constructor(t){const{event:n}=t,r=Ka(n.target);super(t,pz,r)}}Ld.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const fz={move:{name:"mousemove"},end:{name:"mouseup"}};var Wm;(function(e){e[e.RightClick=2]="RightClick"})(Wm||(Wm={}));class mz extends ax{constructor(t){super(t,fz,Ka(t.event.target))}}mz.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Wm.RightClick?!1:(r==null||r({event:n}),!0)}}];const nf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class hz extends ax{constructor(t){super(t,nf)}static setup(){return window.addEventListener(nf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(nf.move.name,t)};function t(){}}}hz.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r==null||r({event:n}),!0)}}];var Io;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Io||(Io={}));var Hu;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Hu||(Hu={}));function gz(e){let{acceleration:t,activator:n=Io.Pointer,canScroll:r,draggingRect:s,enabled:i,interval:a=5,order:l=Hu.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:p,threshold:f}=e;const h=vz({delta:p,disabled:!i}),[g,v]=NV(),b=m.useRef({x:0,y:0}),x=m.useRef({x:0,y:0}),y=m.useMemo(()=>{switch(n){case Io.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Io.DraggableRect:return s}},[n,s,c]),_=m.useRef(null),S=m.useCallback(()=>{const E=_.current;if(!E)return;const A=b.current.x*x.current.x,D=b.current.y*x.current.y;E.scrollBy(A,D)},[]),R=m.useMemo(()=>l===Hu.TreeOrder?[...u].reverse():u,[l,u]);m.useEffect(()=>{if(!i||!u.length||!y){v();return}for(const E of R){if((r==null?void 0:r(E))===!1)continue;const A=u.indexOf(E),D=d[A];if(!D)continue;const{direction:z,speed:j}=rz(E,D,y,t,f);for(const H of["x","y"])h[H][z[H]]||(j[H]=0,z[H]=0);if(j.x>0||j.y>0){v(),_.current=E,g(S,a),b.current=j,x.current=z;return}}b.current={x:0,y:0},x.current={x:0,y:0},v()},[t,S,r,v,i,a,JSON.stringify(y),JSON.stringify(h),g,u,R,d,JSON.stringify(f)])}const xz={x:{[dn.Backward]:!1,[dn.Forward]:!1},y:{[dn.Backward]:!1,[dn.Forward]:!1}};function vz(e){let{delta:t,disabled:n}=e;const r=$m(t);return Ml(s=>{if(n||!r||!s)return xz;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[dn.Backward]:s.x[dn.Backward]||i.x===-1,[dn.Forward]:s.x[dn.Forward]||i.x===1},y:{[dn.Backward]:s.y[dn.Backward]||i.y===-1,[dn.Forward]:s.y[dn.Forward]||i.y===1}}},[n,t,r])}function yz(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ml(s=>{var i;return t==null?null:(i=r??s)!=null?i:null},[r,t])}function _z(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,i=s.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fl||(fl={}));var Gm;(function(e){e.Optimized="optimized"})(Gm||(Gm={}));const I_=new Map;function bz(e,t){let{dragging:n,dependencies:r,config:s}=t;const[i,a]=m.useState(null),{frequency:l,measure:c,strategy:u}=s,d=m.useRef(e),p=b(),f=pl(p),h=m.useCallback(function(x){x===void 0&&(x=[]),!f.current&&a(y=>y===null?x:y.concat(x.filter(_=>!y.includes(_))))},[f]),g=m.useRef(null),v=Ml(x=>{if(p&&!n)return I_;if(!x||x===I_||d.current!==e||i!=null){const y=new Map;for(let _ of e){if(!_)continue;if(i&&i.length>0&&!i.includes(_.id)&&_.rect.current){y.set(_.id,_.rect.current);continue}const S=_.node.current,R=S?new ix(c(S),S):null;_.rect.current=R,R&&y.set(_.id,R)}return y}return x},[e,i,n,p,c]);return m.useEffect(()=>{d.current=e},[e]),m.useEffect(()=>{p||h()},[n,p]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{p||typeof l!="number"||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},l))},[l,p,h,...r]),{droppableRects:v,measureDroppableContainers:h,measuringScheduled:i!=null};function b(){switch(u){case fl.Always:return!1;case fl.BeforeDragging:return n;default:return!n}}}function PC(e,t){return Ml(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function wz(e,t){return PC(e,t)}function kz(e){let{callback:t,disabled:n}=e;const r=nx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Dd(e){let{callback:t,disabled:n}=e;const r=nx(t),s=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>s==null?void 0:s.disconnect(),[s]),s}function Sz(e){return new ix(Qa(e),e)}function F_(e,t,n){t===void 0&&(t=Sz);const[r,s]=m.useState(null);function i(){s(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=kz({callback(c){if(e)for(const u of c){const{type:d,target:p}=u;if(d==="childList"&&p instanceof HTMLElement&&p.contains(e)){i();break}}}}),l=Dd({callback:i});return ts(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function Ez(e){const t=PC(e);return bC(e,t)}const B_=[];function Cz(e){const t=m.useRef(e),n=Ml(r=>e?r&&r!==B_&&e&&t.current&&e.parentNode===t.current.parentNode?r:sx(e):B_,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function jz(e){const[t,n]=m.useState(null),r=m.useRef(e),s=m.useCallback(i=>{const a=ef(i.target);a&&n(l=>l?(l.set(a,qm(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(c=>{const u=ef(c);return u?(u.addEventListener("scroll",s,{passive:!0}),[u,qm(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(c=>{const u=ef(c);u==null||u.removeEventListener("scroll",s)})}},[s,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>ba(i,a),Fr):jC(e):Fr,[e,t])}function U_(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==Fr;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Vu(e,n.current):Fr}function Nz(e){m.useEffect(()=>{if(!Ad)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function Pz(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:i}=r;return n[s]=a=>{i(a,t)},n},{}),[e,t])}function RC(e){return m.useMemo(()=>e?ZV(e):null,[e])}const V_=[];function Rz(e,t){t===void 0&&(t=Qa);const[n]=e,r=RC(n?Jn(n):null),[s,i]=m.useState(V_);function a(){i(()=>e.length?e.map(c=>EC(c)?r:new ix(t(c),c)):V_)}const l=Dd({callback:a});return ts(()=>{l==null||l.disconnect(),a(),e.forEach(c=>l==null?void 0:l.observe(c))},[e]),s}function Az(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Dl(t)?t:e}function Tz(e){let{measure:t}=e;const[n,r]=m.useState(null),s=m.useCallback(u=>{for(const{target:d}of u)if(Dl(d)){r(p=>{const f=t(d);return p?{...p,width:f.width,height:f.height}:f});break}},[t]),i=Dd({callback:s}),a=m.useCallback(u=>{const d=Az(u);i==null||i.disconnect(),d&&(i==null||i.observe(d)),r(d?t(d):null)},[t,i]),[l,c]=Uu(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const Lz=[{sensor:Ld,options:{}},{sensor:Td,options:{}}],Dz={current:{}},Yc={draggable:{measure:L_},droppable:{measure:L_,strategy:fl.WhileDragging,frequency:Gm.Optimized},dragOverlay:{measure:Qa}};class Fo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Mz={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Fo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:zu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Yc,measureDroppableContainers:zu,windowRect:null,measuringScheduled:!1},Oz={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:zu,draggableNodes:new Map,over:null,measureDroppableContainers:zu},Md=m.createContext(Oz),AC=m.createContext(Mz);function Iz(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Fo}}}function Fz(e,t){switch(t.type){case rn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case rn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case rn.DragEnd:case rn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case rn.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new Fo(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case rn.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Fo(e.droppable.containers);return a.set(n,{...i,disabled:s}),{...e,droppable:{...e.droppable,containers:a}}}case rn.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new Fo(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Bz(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=m.useContext(Md),i=$m(r),a=$m(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!rx(i)||document.activeElement===i.target)return;const l=s.get(a);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const p=AV(d);if(p){p.focus();break}}})}},[r,t,s,a,i]),null}function Uz(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,i)=>i({transform:s,...r}),n):n}function Vz(e){return m.useMemo(()=>({draggable:{...Yc.draggable,...e==null?void 0:e.draggable},droppable:{...Yc.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Yc.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function zz(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof s=="boolean"?{x:s,y:s}:s;ts(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),p=bC(d,r);if(a||(p.x=0),l||(p.y=0),i.current=!0,Math.abs(p.x)>0||Math.abs(p.y)>0){const f=wC(u);f&&f.scrollBy({top:p.y,left:p.x})}},[t,a,l,r,n])}const TC=m.createContext({...Fr,scaleX:1,scaleY:1});var Bs;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Bs||(Bs={}));const LC=m.memo(function(t){var n,r,s,i;let{id:a,accessibility:l,autoScroll:c=!0,children:u,sensors:d=Lz,collisionDetection:p=WV,measuring:f,modifiers:h,...g}=t;const v=m.useReducer(Fz,void 0,Iz),[b,x]=v,[y,_]=IV(),[S,R]=m.useState(Bs.Uninitialized),E=S===Bs.Initialized,{draggable:{active:A,nodes:D,translate:z},droppable:{containers:j}}=b,H=A!=null?D.get(A):null,X=m.useRef({initial:null,translated:null}),re=m.useMemo(()=>{var Q;return A!=null?{id:A,data:(Q=H==null?void 0:H.data)!=null?Q:Dz,rect:X}:null},[A,H]),le=m.useRef(null),[fe,xe]=m.useState(null),[oe,B]=m.useState(null),Y=pl(g,Object.values(g)),N=Ol("DndDescribedBy",a),se=m.useMemo(()=>j.getEnabled(),[j]),de=Vz(f),{droppableRects:L,measureDroppableContainers:be,measuringScheduled:Le}=bz(se,{dragging:E,dependencies:[z.x,z.y],config:de.droppable}),w=yz(D,A),q=m.useMemo(()=>oe?Hm(oe):null,[oe]),ce=Ve(),_e=wz(w,de.draggable.measure);zz({activeNode:A!=null?D.get(A):null,config:ce.layoutShiftCompensation,initialRect:_e,measure:de.draggable.measure});const ve=F_(w,de.draggable.measure,_e),at=F_(w?w.parentElement:null),Xe=m.useRef({activatorEvent:null,active:null,activeNode:w,collisionRect:null,collisions:null,droppableRects:L,draggableNodes:D,draggingNode:null,draggingNodeRect:null,droppableContainers:j,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),I=j.getNodeFor((n=Xe.current.over)==null?void 0:n.id),nt=Tz({measure:de.dragOverlay.measure}),gt=(r=nt.nodeRef.current)!=null?r:w,ot=E?(s=nt.rect)!=null?s:ve:null,ft=!!(nt.nodeRef.current&&nt.rect),G=Ez(ft?null:ve),P=RC(gt?Jn(gt):null),k=Cz(E?I??w:null),ie=Rz(k),M=Uz(h,{transform:{x:z.x-G.x,y:z.y-G.y,scaleX:1,scaleY:1},activatorEvent:oe,active:re,activeNodeRect:ve,containerNodeRect:at,draggingNodeRect:ot,over:Xe.current.over,overlayNodeRect:nt.rect,scrollableAncestors:k,scrollableAncestorRects:ie,windowRect:P}),W=q?ba(q,z):null,ke=jz(k),Ne=U_(ke),O=U_(ke,[ve]),F=ba(M,Ne),K=ot?QV(ot,M):null,ae=re&&K?p({active:re,collisionRect:K,droppableRects:L,droppableContainers:se,pointerCoordinates:W}):null,Ee=HV(ae,"id"),[Be,dt]=m.useState(null),rt=ft?M:ba(M,O),Ge=GV(rt,(i=Be==null?void 0:Be.rect)!=null?i:null,ve),lt=m.useRef(null),Ke=m.useCallback((Q,ct)=>{let{sensor:et,options:It}=ct;if(le.current==null)return;const pt=D.get(le.current);if(!pt)return;const xt=Q.nativeEvent,St=new et({active:le.current,activeNode:pt,event:xt,options:It,context:Xe,onAbort(Ue){if(!D.get(Ue))return;const{onDragAbort:De}=Y.current,Pe={id:Ue};De==null||De(Pe),y({type:"onDragAbort",event:Pe})},onPending(Ue,Oe,De,Pe){if(!D.get(Ue))return;const{onDragPending:Et}=Y.current,Se={id:Ue,constraint:Oe,initialCoordinates:De,offset:Pe};Et==null||Et(Se),y({type:"onDragPending",event:Se})},onStart(Ue){const Oe=le.current;if(Oe==null)return;const De=D.get(Oe);if(!De)return;const{onDragStart:Pe}=Y.current,Wt={activatorEvent:xt,active:{id:Oe,data:De.data,rect:X}};la.unstable_batchedUpdates(()=>{Pe==null||Pe(Wt),R(Bs.Initializing),x({type:rn.DragStart,initialCoordinates:Ue,active:Oe}),y({type:"onDragStart",event:Wt}),xe(lt.current),B(xt)})},onMove(Ue){x({type:rn.DragMove,coordinates:Ue})},onEnd:mt(rn.DragEnd),onCancel:mt(rn.DragCancel)});lt.current=St;function mt(Ue){return async function(){const{active:De,collisions:Pe,over:Wt,scrollAdjustedTranslate:Et}=Xe.current;let Se=null;if(De&&Et){const{cancelDrop:Ct}=Y.current;Se={activatorEvent:xt,active:De,collisions:Pe,delta:Et,over:Wt},Ue===rn.DragEnd&&typeof Ct=="function"&&await Promise.resolve(Ct(Se))&&(Ue=rn.DragCancel)}le.current=null,la.unstable_batchedUpdates(()=>{x({type:Ue}),R(Bs.Uninitialized),dt(null),xe(null),B(null),lt.current=null;const Ct=Ue===rn.DragEnd?"onDragEnd":"onDragCancel";if(Se){const on=Y.current[Ct];on==null||on(Se),y({type:Ct,event:Se})}})}}},[D]),Ot=m.useCallback((Q,ct)=>(et,It)=>{const pt=et.nativeEvent,xt=D.get(It);if(le.current!==null||!xt||pt.dndKit||pt.defaultPrevented)return;const St={active:xt};Q(et,ct.options,St)===!0&&(pt.dndKit={capturedBy:ct.sensor},le.current=It,Ke(et,ct))},[D,Ke]),U=_z(d,Ot);Nz(d),ts(()=>{ve&&S===Bs.Initializing&&R(Bs.Initialized)},[ve,S]),m.useEffect(()=>{const{onDragMove:Q}=Y.current,{active:ct,activatorEvent:et,collisions:It,over:pt}=Xe.current;if(!ct||!et)return;const xt={active:ct,activatorEvent:et,collisions:It,delta:{x:F.x,y:F.y},over:pt};la.unstable_batchedUpdates(()=>{Q==null||Q(xt),y({type:"onDragMove",event:xt})})},[F.x,F.y]),m.useEffect(()=>{const{active:Q,activatorEvent:ct,collisions:et,droppableContainers:It,scrollAdjustedTranslate:pt}=Xe.current;if(!Q||le.current==null||!ct||!pt)return;const{onDragOver:xt}=Y.current,St=It.get(Ee),mt=St&&St.rect.current?{id:St.id,rect:St.rect.current,data:St.data,disabled:St.disabled}:null,Ue={active:Q,activatorEvent:ct,collisions:et,delta:{x:pt.x,y:pt.y},over:mt};la.unstable_batchedUpdates(()=>{dt(mt),xt==null||xt(Ue),y({type:"onDragOver",event:Ue})})},[Ee]),ts(()=>{Xe.current={activatorEvent:oe,active:re,activeNode:w,collisionRect:K,collisions:ae,droppableRects:L,draggableNodes:D,draggingNode:gt,draggingNodeRect:ot,droppableContainers:j,over:Be,scrollableAncestors:k,scrollAdjustedTranslate:F},X.current={initial:ot,translated:K}},[re,w,ae,K,D,gt,ot,L,j,Be,k,F]),gz({...ce,delta:z,draggingRect:K,pointerCoordinates:W,scrollableAncestors:k,scrollableAncestorRects:ie});const J=m.useMemo(()=>({active:re,activeNode:w,activeNodeRect:ve,activatorEvent:oe,collisions:ae,containerNodeRect:at,dragOverlay:nt,draggableNodes:D,droppableContainers:j,droppableRects:L,over:Be,measureDroppableContainers:be,scrollableAncestors:k,scrollableAncestorRects:ie,measuringConfiguration:de,measuringScheduled:Le,windowRect:P}),[re,w,ve,oe,ae,at,nt,D,j,L,Be,be,k,ie,de,Le,P]),Te=m.useMemo(()=>({activatorEvent:oe,activators:U,active:re,activeNodeRect:ve,ariaDescribedById:{draggable:N},dispatch:x,draggableNodes:D,over:Be,measureDroppableContainers:be}),[oe,U,re,ve,x,N,D,Be,be]);return pn.createElement(vC.Provider,{value:_},pn.createElement(Md.Provider,{value:Te},pn.createElement(AC.Provider,{value:J},pn.createElement(TC.Provider,{value:Ge},u)),pn.createElement(Bz,{disabled:(l==null?void 0:l.restoreFocus)===!1})),pn.createElement(UV,{...l,hiddenTextDescribedById:N}));function Ve(){const Q=(fe==null?void 0:fe.autoScrollEnabled)===!1,ct=typeof c=="object"?c.enabled===!1:c===!1,et=E&&!Q&&!ct;return typeof c=="object"?{...c,enabled:et}:{enabled:et}}}),$z=m.createContext(null),z_="button",Hz="Draggable";function qz(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const i=Ol(Hz),{activators:a,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:p,over:f}=m.useContext(Md),{role:h=z_,roleDescription:g="draggable",tabIndex:v=0}=s??{},b=(c==null?void 0:c.id)===t,x=m.useContext(b?TC:$z),[y,_]=Uu(),[S,R]=Uu(),E=Pz(a,t),A=pl(n);ts(()=>(p.set(t,{id:t,key:i,node:y,activatorNode:S,data:A}),()=>{const z=p.get(t);z&&z.key===i&&p.delete(t)}),[p,t]);const D=m.useMemo(()=>({role:h,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&h===z_?!0:void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,v,b,g,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:D,isDragging:b,listeners:r?void 0:E,node:y,over:f,setNodeRef:_,setActivatorNodeRef:R,transform:x}}function Wz(){return m.useContext(AC)}const Gz="Droppable",Kz={timeout:25};function Qz(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const i=Ol(Gz),{active:a,dispatch:l,over:c,measureDroppableContainers:u}=m.useContext(Md),d=m.useRef({disabled:n}),p=m.useRef(!1),f=m.useRef(null),h=m.useRef(null),{disabled:g,updateMeasurementsFor:v,timeout:b}={...Kz,...s},x=pl(v??r),y=m.useCallback(()=>{if(!p.current){p.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(x.current)?x.current:[x.current]),h.current=null},b)},[b]),_=Dd({callback:y,disabled:g||!a}),S=m.useCallback((D,z)=>{_&&(z&&(_.unobserve(z),p.current=!1),D&&_.observe(D))},[_]),[R,E]=Uu(S),A=pl(t);return m.useEffect(()=>{!_||!R.current||(_.disconnect(),p.current=!1,_.observe(R.current))},[R,_]),m.useEffect(()=>(l({type:rn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:R,rect:f,data:A}}),()=>l({type:rn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==d.current.disabled&&(l({type:rn.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,l]),{active:a,rect:f,isOver:(c==null?void 0:c.id)===r,node:R,over:c,setNodeRef:E}}function ox(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yz(e,t){return e.reduce((n,r,s)=>{const i=t.get(r);return i&&(n[s]=i),n},Array(e.length))}function Sc(e){return e!==null&&e>=0}function Xz(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const i=ox(t,r,n),a=t[s],l=i[s];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},Ec={scaleX:1,scaleY:1},MC=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:s,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(s===n){const u=i[a];return u?{x:0,y:nn&&s<=a?{x:0,y:-l.height-c,...Ec}:s=a?{x:0,y:l.height+c,...Ec}:{x:0,y:0,...Ec}};function Zz(e,t,n){const r=e[t],s=e[t-1],i=e[t+1];return r?nr.map(E=>typeof E=="object"&&"id"in E?E.id:E),[r]),g=a!=null,v=a?h.indexOf(a.id):-1,b=u?h.indexOf(u.id):-1,x=m.useRef(h),y=!Xz(h,x.current),_=b!==-1&&v===-1||y,S=Jz(i);ts(()=>{y&&g&&d(h)},[y,h,g,d]),m.useEffect(()=>{x.current=h},[h]);const R=m.useMemo(()=>({activeIndex:v,containerId:p,disabled:S,disableTransforms:_,items:h,overIndex:b,useDragOverlay:f,sortedRects:Yz(h,c),strategy:s}),[v,p,S.draggable,S.droppable,_,h,b,c,f,s]);return pn.createElement(IC.Provider,{value:R},t)}const e8=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return ox(n,r,s).indexOf(t)},t8=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:i,newIndex:a,previousItems:l,previousContainerId:c,transition:u}=e;return!u||!r||l!==i&&s===a?!1:n?!0:a!==s&&t===c},n8={duration:200,easing:"ease"},BC="transform",r8=Oa.Transition.toString({property:BC,duration:0,easing:"linear"}),s8={roleDescription:"sortable"};function i8(e){let{disabled:t,index:n,node:r,rect:s}=e;const[i,a]=m.useState(null),l=m.useRef(n);return ts(()=>{if(!t&&n!==l.current&&r.current){const c=s.current;if(c){const u=Qa(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&a(d)}}n!==l.current&&(l.current=n)},[t,n,r,s]),m.useEffect(()=>{i&&a(null)},[i]),i}function UC(e){let{animateLayoutChanges:t=t8,attributes:n,disabled:r,data:s,getNewIndex:i=e8,id:a,strategy:l,resizeObserverConfig:c,transition:u=n8}=e;const{items:d,containerId:p,activeIndex:f,disabled:h,disableTransforms:g,sortedRects:v,overIndex:b,useDragOverlay:x,strategy:y}=m.useContext(IC),_=a8(r,h),S=d.indexOf(a),R=m.useMemo(()=>({sortable:{containerId:p,index:S,items:d},...s}),[p,s,S,d]),E=m.useMemo(()=>d.slice(d.indexOf(a)),[d,a]),{rect:A,node:D,isOver:z,setNodeRef:j}=Qz({id:a,data:R,disabled:_.droppable,resizeObserverConfig:{updateMeasurementsFor:E,...c}}),{active:H,activatorEvent:X,activeNodeRect:re,attributes:le,setNodeRef:fe,listeners:xe,isDragging:oe,over:B,setActivatorNodeRef:Y,transform:N}=qz({id:a,data:R,attributes:{...s8,...n},disabled:_.draggable}),se=jV(j,fe),de=!!H,L=de&&!g&&Sc(f)&&Sc(b),be=!x&&oe,Le=be&&L?N:null,q=L?Le??(l??y)({rects:v,activeNodeRect:re,activeIndex:f,overIndex:b,index:S}):null,ce=Sc(f)&&Sc(b)?i({id:a,items:d,activeIndex:f,overIndex:b}):S,_e=H==null?void 0:H.id,ve=m.useRef({activeId:_e,items:d,newIndex:ce,containerId:p}),at=d!==ve.current.items,Xe=t({active:H,containerId:p,isDragging:oe,isSorting:de,id:a,index:S,items:d,newIndex:ve.current.newIndex,previousItems:ve.current.items,previousContainerId:ve.current.containerId,transition:u,wasDragging:ve.current.activeId!=null}),I=i8({disabled:!Xe,index:S,node:D,rect:A});return m.useEffect(()=>{de&&ve.current.newIndex!==ce&&(ve.current.newIndex=ce),p!==ve.current.containerId&&(ve.current.containerId=p),d!==ve.current.items&&(ve.current.items=d)},[de,ce,p,d]),m.useEffect(()=>{if(_e===ve.current.activeId)return;if(_e!=null&&ve.current.activeId==null){ve.current.activeId=_e;return}const gt=setTimeout(()=>{ve.current.activeId=_e},50);return()=>clearTimeout(gt)},[_e]),{active:H,activeIndex:f,attributes:le,data:R,rect:A,index:S,newIndex:ce,items:d,isOver:z,isSorting:de,isDragging:oe,listeners:xe,node:D,overIndex:b,over:B,setNodeRef:se,setActivatorNodeRef:Y,setDroppableNodeRef:j,setDraggableNodeRef:fe,transform:I??q,transition:nt()};function nt(){if(I||at&&ve.current.newIndex===S)return r8;if(!(be&&!rx(X)||!u)&&(de||Xe))return Oa.Transition.toString({...u,property:BC})}}function a8(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}tt.Down,tt.Right,tt.Up,tt.Left;const VC=e=>{let{transform:t}=e;return{...t,x:0}};function o8({id:e,children:t,disabled:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=UC({id:e,disabled:n}),u={transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,position:"relative",zIndex:c?50:void 0};return o.jsx("div",{ref:i,style:u,...r,children:o.jsxs("div",{className:"flex items-center",children:[!n&&o.jsx("div",{...s,className:"flex-shrink-0 cursor-grab active:cursor-grabbing p-1 -ml-1 mr-1 text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(cS,{className:"w-4 h-4"})}),o.jsx("div",{className:"flex-1 min-w-0",children:t})]})})}var zC={exports:{}};(function(e,t){(function(n,r){r()})(ms,function(){function n(u,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,d,p){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){c(f.response,d,p)},f.onerror=function(){console.error("could not download file")},f.send()}function s(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ms=="object"&&ms.global===ms?ms:void 0,l=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!l?function(u,d,p){var f=a.URL||a.webkitURL,h=document.createElement("a");d=d||u.name||"download",h.download=d,h.rel="noopener",typeof u=="string"?(h.href=u,h.origin===location.origin?i(h):s(h.href)?r(u,d,p):i(h,h.target="_blank")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,p){if(d=d||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,p),d);else if(s(u))r(u,d,p);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){i(f)})}}:function(u,d,p,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof u=="string")return r(u,d,p);var h=u.type==="application/octet-stream",g=/constructor/i.test(a.HTMLElement)||a.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||h&&g||l)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var _=b.result;_=v?_:_.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=_:location=_,f=null},b.readAsDataURL(u)}else{var x=a.URL||a.webkitURL,y=x.createObjectURL(u);f?f.location=y:location.href=y,f=null,setTimeout(function(){x.revokeObjectURL(y)},4e4)}});a.saveAs=c.saveAs=c,e.exports=c})})(zC);var Km=zC.exports;const Ar={aws:{label:"AWS",bg:"rgba(245, 158, 11, 0.15)",text:"#f59e0b",border:"rgba(245, 158, 11, 0.25)"},azure:{label:"Azure",bg:"rgba(14, 165, 233, 0.15)",text:"#0ea5e9",border:"rgba(14, 165, 233, 0.25)"},gcp:{label:"GCP",bg:"rgba(244, 63, 94, 0.15)",text:"#f43f5e",border:"rgba(244, 63, 94, 0.25)"}},Cc={premium:{label:"Premium",bg:"rgba(139, 92, 246, 0.15)",text:"#8b5cf6"},enterprise:{label:"Enterprise",bg:"rgba(59, 130, 246, 0.15)",text:"#3b82f6"},standard:{label:"Standard",bg:"rgba(107, 114, 128, 0.15)",text:"#6b7280"}};function l8(e){const t=new Date(e),r=new Date().getTime()-t.getTime(),s=Math.floor(r/1e3),i=Math.floor(s/60),a=Math.floor(i/60),l=Math.floor(a/24),c=Math.floor(l/7),u=Math.floor(l/30);return s<60?"Just now":i<60?`${i}m ago`:a<24?`${a}h ago`:l===1?"Yesterday":l<7?`${l} days ago`:c===1?"1 week ago":c<4?`${c} weeks ago`:u===1?"1 month ago":u<12?`${u} months ago`:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function c8({cloudFilter:e,setCloudFilter:t,cloudCounts:n}){return o.jsxs("div",{className:"flex items-center gap-1 p-1 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"},children:[o.jsxs("button",{onClick:()=>t("all"),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e==="all"?"bg-white shadow-sm":"hover:bg-white/50"),style:{color:e==="all"?"var(--text-primary)":"var(--text-muted)",backgroundColor:e==="all"?"var(--bg-primary)":"transparent"},children:["All Clouds",o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n.all})]}),["aws","azure","gcp"].map(r=>o.jsxs("button",{onClick:()=>t(r),className:ue("px-3 py-1.5 text-sm font-medium rounded-md transition-all",e===r?"shadow-sm":"hover:bg-white/50"),style:{color:e===r?Ar[r].text:"var(--text-muted)",backgroundColor:e===r?Ar[r].bg:"transparent"},children:[Ar[r].label,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:n[r]})]},r))]})}function u8(){const e=ud(),{estimates:t,isLoading:n,fetchEstimates:r,deleteEstimate:s,duplicateEstimate:i}=bs(),[a,l]=m.useState(!1),[c,u]=m.useState(""),[d,p]=m.useState(!1),[f,h]=m.useState("all"),[g,v]=m.useState("display_order"),[b,x]=m.useState("all"),[y,_]=m.useState(!1),[S,R]=m.useState(new Set),[E,A]=m.useState(!1),[D,z]=m.useState(!1),[j,H]=m.useState(!1),[X,re]=m.useState(!1),[le,fe]=m.useState(null),[xe,oe]=m.useState(!1),[B,Y]=m.useState(!1),N=yC($u(Ld,{activationConstraint:{distance:5}}),$u(Td));m.useEffect(()=>{r()},[r]);const se=m.useCallback(async()=>{p(!0),await r(!0),p(!1),$e.success("Refreshed")},[r]),de=m.useMemo(()=>{const G=t.length,P=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="aws"}).length,k=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="azure"}).length,ie=t.filter(M=>{var W;return((W=M.cloud)==null?void 0:W.toLowerCase())==="gcp"}).length;return{all:G,aws:P,azure:k,gcp:ie}},[t]),L=m.useMemo(()=>{const G=t.reduce((P,k)=>P+(k.line_item_count||0),0);return{estimates:t.length,workloads:G}},[t]),be=m.useMemo(()=>{const G=new Set;return t.forEach(P=>{P.customer_name&&G.add(P.customer_name)}),Array.from(G).sort()},[t]),Le=m.useMemo(()=>{const G={all:t.length};return t.forEach(P=>{P.customer_name&&(G[P.customer_name]=(G[P.customer_name]||0)+1)}),G},[t]),w=m.useMemo(()=>{let G=[...t];if(c){const P=c.toLowerCase();G=G.filter(k=>{var ie;return k.estimate_name.toLowerCase().includes(P)||((ie=k.customer_name)==null?void 0:ie.toLowerCase().includes(P))})}switch(f!=="all"&&(G=G.filter(P=>{var k;return((k=P.cloud)==null?void 0:k.toLowerCase())===f})),b!=="all"&&(G=G.filter(P=>P.customer_name===b)),g){case"updated":G.sort((P,k)=>new Date(k.updated_at).getTime()-new Date(P.updated_at).getTime());break;case"name":G.sort((P,k)=>P.estimate_name.localeCompare(k.estimate_name));break;case"workloads":G.sort((P,k)=>(k.line_item_count||0)-(P.line_item_count||0));break;case"display_order":G.sort((P,k)=>(P.display_order??0)-(k.display_order??0));break}return G},[t,c,f,g,b]),q=m.useCallback(async G=>{const{active:P,over:k}=G;if(!k||P.id===k.id)return;const ie=w.findIndex(O=>O.estimate_id===P.id),M=w.findIndex(O=>O.estimate_id===k.id);if(ie===-1||M===-1)return;g!=="display_order"&&v("display_order");const W=ox(w,ie,M),{estimates:ke}=bs.getState(),Ne=ke.map(O=>{const F=W.findIndex(K=>K.estimate_id===O.estimate_id);return F>=0?{...O,display_order:F}:O});bs.setState({estimates:Ne});try{await Y4(W.map(O=>O.estimate_id))}catch{$e.error("Failed to save reorder")}},[w,g]),ce=(G,P,k)=>{G.stopPropagation(),fe({id:P,name:k}),re(!0)},_e=async()=>{if(le){oe(!0);try{await s(le.id),$e.success("Estimate deleted")}catch{$e.error("Failed to delete")}finally{oe(!1),re(!1),fe(null)}}},ve=async(G,P)=>{G.stopPropagation();try{const k=await i(P);$e.success("Estimate duplicated"),e(`/calculator/${k.estimate_id}`)}catch{$e.error("Failed to duplicate")}},at=async()=>{l(!0);try{const G=await fO();Km.saveAs(G,`databricks_estimates_${new Date().toISOString().split("T")[0]}.xlsx`),$e.success("Exported successfully")}catch{$e.error("Export failed")}finally{l(!1)}},Xe=()=>{S.size===w.length?R(new Set):R(new Set(w.map(G=>G.estimate_id)))},I=(G,P)=>{P.stopPropagation();const k=new Set(S);k.has(G)?k.delete(G):k.add(G),R(k)},nt=()=>{S.size!==0&&Y(!0)},gt=async()=>{z(!0);let G=0,P=0;for(const k of S)try{await s(k),G++}catch{P++}z(!1),R(new Set),Y(!1),P===0?$e.success(`Deleted ${G} estimate(s)`):$e.error(`Deleted ${G}, failed ${P}`)},ot=async()=>{if(S.size===0)return;H(!0);let G=0;for(const P of S)try{const k=t.find(ie=>ie.estimate_id===P);if(k){const ie=await GS(P);Km.saveAs(ie,`${k.estimate_name.replace(/[^a-z0-9]/gi,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`),G++}}catch{}H(!1),$e.success(`Exported ${G} estimate(s)`)},ft=()=>{A(!1),R(new Set)};return o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",style:{color:"var(--text-primary)"},children:"Pricing Estimates"}),o.jsxs("p",{className:"text-sm mt-1 flex items-center gap-3",style:{color:"var(--text-muted)"},children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(sy,{className:"w-4 h-4"}),L.estimates," estimate",L.estimates!==1?"s":""]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Pg,{className:"w-4 h-4"}),L.workloads," total workloads"]})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:se,disabled:d,className:"btn btn-ghost p-2",title:"Refresh estimates",children:o.jsx(Yr,{className:ue("w-5 h-5",d&&"animate-spin")})}),E?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-sm",style:{color:"var(--text-muted)"},children:[S.size," selected"]}),o.jsxs("button",{onClick:ot,disabled:S.size===0||j,className:"btn btn-secondary text-sm",children:[o.jsx($c,{className:"w-4 h-4"}),j?"Exporting...":"Export"]}),o.jsxs("button",{onClick:nt,disabled:S.size===0||D,className:"btn text-sm",style:{backgroundColor:"rgba(239, 68, 68, 0.1)",color:"#ef4444",borderColor:"rgba(239, 68, 68, 0.2)"},children:[o.jsx(tn,{className:"w-4 h-4"}),D?"Deleting...":"Delete"]}),o.jsx("button",{onClick:ft,className:"btn btn-ghost p-2",title:"Cancel selection",children:o.jsx(Ta,{className:"w-5 h-5"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>A(!0),disabled:t.length===0,className:"btn btn-ghost text-sm",title:"Select multiple",children:"Select"}),o.jsxs("button",{onClick:at,disabled:a||t.length===0,className:"btn btn-secondary",children:[o.jsx($c,{className:"w-4 h-4"}),"Export All"]}),o.jsxs(wu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Du,{className:"w-4 h-4"}),"New Estimate"]})]})]})]}),o.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center gap-4 mb-6",children:[o.jsx(c8,{cloudFilter:f,setCloudFilter:h,cloudCounts:de}),be.length>0&&o.jsxs("div",{className:"relative",children:[o.jsxs("button",{onClick:()=>_(!y),className:"flex items-center gap-2 px-3 py-2 text-sm rounded-lg border transition-colors min-w-[200px]",style:{borderColor:b!=="all"?"#FF3621":"var(--border-primary)",color:b!=="all"?"#FF3621":"var(--text-secondary)",backgroundColor:b!=="all"?"rgba(249, 115, 22, 0.1)":"var(--bg-primary)"},children:[o.jsx(mD,{className:"w-4 h-4"}),o.jsx("span",{className:"truncate flex-1 text-left",title:b==="all"?"All Accounts":b,children:b==="all"?"All Accounts":b}),o.jsx("span",{className:"text-xs opacity-60 ml-1",children:b==="all"?be.length:Le[b]||0}),o.jsx(rr,{className:ue("w-4 h-4 transition-transform flex-shrink-0",y&&"rotate-180")})]}),o.jsx(rm,{children:y&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>_(!1)}),o.jsxs(Ut.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.15},className:"absolute left-0 top-full mt-1 z-20 min-w-[250px] max-h-64 overflow-y-auto rounded-lg border shadow-lg",style:{borderColor:"var(--border-primary)",backgroundColor:"var(--bg-primary)"},children:[o.jsxs("button",{onClick:()=>{x("all"),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b==="all"?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b==="all"?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{children:"All Accounts"}),o.jsx("span",{className:"text-xs opacity-60",children:be.length})]}),o.jsx("div",{className:"border-t",style:{borderColor:"var(--border-primary)"}}),be.map(G=>o.jsxs("button",{onClick:()=>{x(G),_(!1)},className:ue("w-full px-3 py-2 text-sm text-left flex items-center justify-between transition-colors",b===G?"bg-lava-600/10":"hover:bg-[var(--bg-hover)]"),style:{color:b===G?"#FF3621":"var(--text-primary)"},children:[o.jsx("span",{className:"truncate",title:G,children:G}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsx("span",{className:"text-xs opacity-60",children:Le[G]||0}),b===G&&o.jsx(Ws,{className:"w-4 h-4"})]})]},G))]})]})})]})]}),o.jsx("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:o.jsxs("div",{className:"relative flex-1",children:[o.jsx(pS,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5",style:{color:"var(--text-muted)"}}),o.jsx("input",{type:"text",value:c,onChange:G=>u(G.target.value),placeholder:"Search by name or customer...",className:"w-full pl-10 pr-4"})]})}),n?o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"p-4 space-y-3",children:[1,2,3].map(G=>o.jsxs("div",{className:"flex items-center gap-4 animate-pulse",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsxs("div",{className:"flex-1",children:[o.jsx("div",{className:"h-4 w-48 rounded mb-2",style:{backgroundColor:"var(--bg-tertiary)"}}),o.jsx("div",{className:"h-3 w-32 rounded",style:{backgroundColor:"var(--bg-tertiary)"}})]})]},G))})}):w.length===0?o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"card p-12 text-center",children:[o.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{backgroundColor:"var(--bg-tertiary)"},children:o.jsx(sy,{className:"w-8 h-8",style:{color:"var(--text-muted)"}})}),o.jsx("h3",{className:"text-lg font-semibold mb-2",style:{color:"var(--text-primary)"},children:c||f!=="all"||b!=="all"?"No matches found":"No estimates yet"}),o.jsx("p",{className:"text-sm mb-6 max-w-sm mx-auto",style:{color:"var(--text-muted)"},children:c||f!=="all"||b!=="all"?"Try adjusting your filters":"Create your first pricing estimate to get started"}),!c&&f==="all"&&b==="all"&&o.jsxs(wu,{to:"/calculator",className:"btn btn-primary",children:[o.jsx(Du,{className:"w-4 h-4"}),"Create Estimate"]})]}):o.jsxs("div",{className:"card overflow-hidden",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-4 px-4 py-3 text-xs font-medium uppercase tracking-wider border-b",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:[E&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:Xe,className:"flex items-center justify-center",children:o.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",S.size===w.length&&w.length>0?"bg-blue-500 border-blue-500":"border-gray-400"),children:S.size===w.length&&w.length>0&&o.jsx(Ws,{className:"w-3 h-3 text-white"})})})}),o.jsx("div",{className:ue(E?"col-span-3":"col-span-4"),children:"Estimate"}),o.jsx("div",{className:"col-span-2",children:"Account"}),o.jsx("div",{className:"col-span-1 text-center",children:"Cloud"}),o.jsx("div",{className:"col-span-2",children:"Region / Tier"}),o.jsx("div",{className:"col-span-1 text-center",children:"Workloads"}),o.jsx("div",{className:"col-span-1",children:"Modified"}),o.jsx("div",{className:"col-span-1"})]}),o.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-primary)"},children:o.jsx(LC,{sensors:N,collisionDetection:_C,onDragEnd:q,modifiers:[VC],children:o.jsx(FC,{items:w.map(G=>G.estimate_id),strategy:MC,children:w.map((G,P)=>{const k=S.has(G.estimate_id);return o.jsx(o8,{id:G.estimate_id,children:o.jsxs(Ut.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:P*.015},onClick:()=>!E&&e(`/calculator/${G.estimate_id}`),className:ue("grid grid-cols-12 gap-4 px-4 py-3 items-center transition-colors",!E&&"cursor-pointer hover:bg-[var(--bg-hover)]",k&&"bg-blue-500/5"),children:[E&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("button",{onClick:ie=>I(G.estimate_id,ie),className:"flex items-center justify-center",children:o.jsx("div",{className:ue("w-4 h-4 rounded border-2 flex items-center justify-center transition-colors",k?"bg-blue-500 border-blue-500":"border-gray-400"),children:k&&o.jsx(Ws,{className:"w-3 h-3 text-white"})})})}),o.jsxs("div",{className:ue("flex items-center gap-3",E?"col-span-3":"col-span-4"),children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{backgroundColor:G.cloud&&Ar[G.cloud.toLowerCase()]?Ar[G.cloud.toLowerCase()].bg:"var(--bg-tertiary)"},children:o.jsx(_m,{className:"w-4 h-4",style:{color:G.cloud&&Ar[G.cloud.toLowerCase()]?Ar[G.cloud.toLowerCase()].text:"var(--text-muted)"}})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium truncate",style:{color:"var(--text-primary)"},title:G.estimate_name,children:G.estimate_name}),o.jsx("p",{className:"sm:hidden text-xs truncate",style:{color:"var(--text-muted)"},title:G.customer_name||"",children:G.customer_name||"—"})]})]}),o.jsx("div",{className:"hidden sm:block col-span-2",children:o.jsx("p",{className:"text-sm truncate",style:{color:"var(--text-secondary)"},title:G.customer_name||"",children:G.customer_name||"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:G.cloud&&Ar[G.cloud.toLowerCase()]?o.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:Ar[G.cloud.toLowerCase()].bg,color:Ar[G.cloud.toLowerCase()].text},children:Ar[G.cloud.toLowerCase()].label}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:block col-span-2",children:G.region||G.tier?o.jsxs("div",{className:"flex flex-col gap-0.5",children:[G.region&&o.jsx("p",{className:"text-xs truncate",style:{color:"var(--text-secondary)"},title:G.region,children:G.region}),G.tier&&Cc[G.tier.toLowerCase()]&&o.jsx("span",{className:"inline-flex px-1.5 py-0.5 rounded text-[10px] font-medium w-fit",style:{backgroundColor:Cc[G.tier.toLowerCase()].bg,color:Cc[G.tier.toLowerCase()].text},children:Cc[G.tier.toLowerCase()].label})]}):o.jsx("span",{className:"text-xs",style:{color:"var(--text-muted)"},children:"—"})}),o.jsx("div",{className:"hidden sm:flex col-span-1 justify-center",children:o.jsx("span",{className:ue("px-2 py-0.5 rounded text-xs font-medium",G.line_item_count>0?"bg-emerald-500/10 text-emerald-600":""),style:G.line_item_count===0?{color:"var(--text-muted)"}:{},children:G.line_item_count})}),o.jsx("div",{className:"hidden sm:block col-span-1",children:o.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:l8(G.updated_at)})}),o.jsx("div",{className:"col-span-1 flex items-center justify-end gap-0.5",children:!E&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:ie=>ve(ie,G.estimate_id),className:"p-1.5 rounded hover:bg-[var(--bg-hover)]",style:{color:"var(--text-muted)"},title:"Duplicate",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:ie=>ce(ie,G.estimate_id,G.estimate_name),className:"p-1.5 rounded hover:text-red-500 hover:bg-red-500/10",style:{color:"var(--text-muted)"},title:"Delete",children:o.jsx(tn,{className:"w-4 h-4"})})]})})]})},G.estimate_id)})})})}),o.jsxs("div",{className:"px-4 py-2 text-xs border-t",style:{backgroundColor:"var(--bg-tertiary)",color:"var(--text-muted)",borderColor:"var(--border-primary)"},children:["Showing ",w.length," of ",t.length," estimates"]})]}),X&&le&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',le.name,'"']}),"? All workloads in this estimate will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{re(!1),fe(null)},disabled:xe,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:_e,disabled:xe,className:"btn bg-red-600 hover:bg-red-700 text-white",children:xe?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),B&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",S.size," Estimate",S.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following estimates will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:t.filter(G=>S.has(G.estimate_id)).map(G=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",G.estimate_name]},G.estimate_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>Y(!1),disabled:D,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:gt,disabled:D,className:"btn bg-red-600 hover:bg-red-700 text-white",children:D?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),S.size>0&&o.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[S.size," estimate",S.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:ot,disabled:j,className:"flex items-center gap-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors disabled:opacity-50",children:[o.jsx($c,{className:"w-4 h-4"}),"Export"]}),o.jsxs("button",{onClick:nt,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:()=>{R(new Set),A(!1)},className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]})]})}function $_({options:e,value:t,onChange:n,onSearchChange:r,onOpen:s,placeholder:i="Select...",searchPlaceholder:a="Search...",isLoading:l=!1,disabled:c=!1,required:u=!1,className:d,grouped:p=!1}){const[f,h]=m.useState(!1),[g,v]=m.useState(""),b=m.useRef(null),x=m.useRef(null),y=e.find(A=>A.value===t),_=g?e.filter(A=>{var D;return A.label.toLowerCase().includes(g.toLowerCase())||((D=A.group)==null?void 0:D.toLowerCase().includes(g.toLowerCase()))}):e,S=m.useMemo(()=>{if(!p)return null;const A={};return _.forEach(z=>{const j=z.group||"Other";A[j]||(A[j]=[]),A[j].push(z)}),Object.keys(A).sort((z,j)=>z==="General Purpose"?-1:j==="General Purpose"?1:z.localeCompare(j)).map(z=>({name:z,options:A[z]}))},[_,p]);m.useEffect(()=>{const A=D=>{b.current&&!b.current.contains(D.target)&&(h(!1),v(""))};return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},[]),m.useEffect(()=>{const A=setTimeout(()=>{r==null||r(g)},300);return()=>clearTimeout(A)},[g,r]);const R=A=>{n(A),h(!1),v("")},E=A=>{A.stopPropagation(),n(""),v("")};return o.jsxs("div",{ref:b,className:ue("relative",d),children:[o.jsxs("div",{onClick:()=>{if(!c){const A=f;h(!f),A||(s==null||s(),setTimeout(()=>{var D;return(D=x.current)==null?void 0:D.focus()},0))}},className:ue("w-full flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-sm cursor-pointer transition-colors","bg-[var(--bg-secondary)] border-[var(--border-primary)]","hover:border-[var(--border-secondary)]",f&&"border-lava-600 ring-1 ring-lava-600/30",!t&&u&&!f&&"border-lava-600/50 ring-1 ring-lava-600/30",c&&"opacity-50 cursor-not-allowed"),children:[o.jsx(pS,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),f?o.jsx("input",{ref:x,type:"text",value:g,onChange:A=>v(A.target.value),placeholder:a,className:"flex-1 bg-transparent border-none p-0 focus:ring-0 focus:outline-none text-[var(--text-primary)] placeholder-[var(--text-muted)]",onClick:A=>A.stopPropagation()}):l?o.jsxs("span",{className:"flex-1 truncate text-[var(--text-muted)] flex items-center gap-2",children:[o.jsxs("svg",{className:"animate-spin h-3 w-3",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):o.jsx("span",{className:ue("flex-1 truncate",t?"text-[var(--text-primary)]":"text-[var(--text-muted)]"),title:(y==null?void 0:y.label)||i,children:(y==null?void 0:y.label)||i}),t&&!f&&o.jsx("button",{onClick:E,className:"p-0.5 hover:bg-[var(--bg-tertiary)] rounded",children:o.jsx(Ta,{className:"w-4 h-4 text-[var(--text-muted)]"})}),o.jsx(rr,{className:ue("w-4 h-4 text-[var(--text-muted)] transition-transform flex-shrink-0",f&&"rotate-180")})]}),f&&o.jsx("div",{className:"absolute z-50 w-full mt-1 bg-[var(--bg-secondary)] border border-[var(--border-primary)] rounded-md shadow-lg max-h-64 overflow-auto",children:l?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:"Loading..."}):_.length===0?o.jsx("div",{className:"px-2.5 py-1.5 text-sm text-[var(--text-muted)]",children:g?"No results found":"No options available"}):p&&S?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),S.map(A=>o.jsxs("div",{children:[o.jsx("div",{className:"px-2.5 py-1 text-xs font-semibold text-[var(--text-secondary)] bg-[var(--bg-tertiary)] sticky top-0 border-b border-[var(--border-primary)]",children:A.name}),A.options.map(D=>o.jsx("div",{onClick:()=>R(D.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",D.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:D.label},D.value))]},A.name))]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"px-2.5 py-1 text-xs text-[var(--text-muted)] border-b border-[var(--border-primary)]",children:[_.length," result",_.length!==1?"s":""]}),_.map(A=>o.jsx("div",{onClick:()=>R(A.value),className:ue("px-2.5 py-1.5 text-sm cursor-pointer transition-colors",A.value===t?"bg-lava-600/10 text-lava-600":"text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)]"),children:A.label},A.value))]})})]})}function H_(e,t,n,r){if(!e.isLoaded||!e.fmapiProprietaryRates)return["all","short","long"];const s=new Set,i=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:`;Object.keys(e.fmapiProprietaryRates).forEach(l=>{if(l.startsWith(i)){const c=l.split(":");c.length>=5&&s.add(c[4])}});const a=Array.from(s);return a.length>0?a.sort():["all","short","long"]}function d8(e,t,n,r,s,i){if(!e.isLoaded||!e.fmapiProprietaryRates)return["input_token","output_token","cache_read","cache_write"];const a=new Set,l=`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${s}:${i}:`;Object.keys(e.fmapiProprietaryRates).forEach(u=>{if(u.startsWith(l)){const d=u.split(":");d.length>=6&&a.add(d[5])}});const c=Array.from(a);return c.length>0?c:["input_token","output_token","cache_read","cache_write"]}const $C=new Set(["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE","DATABRICKS_APPS","CLEAN_ROOM","AI_PARSE","SHUTTERSTOCK_IMAGEAI","LAKEFLOW_CONNECT"]);function po(e,t,n=!1,r){return((t==null?void 0:t.toUpperCase())||"PREMIUM")!=="STANDARD"?{available:!0}:n?{available:!1,reason:"Serverless workloads require Premium or Enterprise tier"}:e==="DBSQL"&&r==="SERVERLESS"?{available:!1,reason:"DBSQL Serverless requires Premium or Enterprise tier"}:$C.has(e)?{available:!1,reason:`${e.replace(/_/g," ")} requires Premium or Enterprise tier`}:{available:!0}}const p8={spot:{title:"Spot Instances",description:"Up to 90% cheaper than On-Demand, but can be interrupted with 2-minute notice. Best for fault-tolerant workloads."},on_demand:{title:"On-Demand",description:"Standard pricing with guaranteed availability. No interruptions, pay by the hour."},reserved_1y:{title:"1-Year Reserved",description:"Commit to 1 year for 30-40% savings. Best for predictable, steady-state workloads."},reserved_3y:{title:"3-Year Reserved",description:"Commit to 3 years for 50-60% savings. Maximum savings for long-term workloads."}};function q_({tier:e}){const[t,n]=m.useState(!1),r=p8[e];return r?o.jsxs("div",{className:"relative inline-block ml-1",children:[o.jsx("button",{type:"button",className:"text-[var(--text-muted)] hover:text-[var(--text-secondary)] transition-colors",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:s=>{s.preventDefault(),n(!t)},children:o.jsx(dS,{className:"w-3.5 h-3.5"})}),t&&o.jsxs("div",{className:"absolute left-0 bottom-full mb-2 w-56 p-2.5 bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-lg shadow-lg z-50",children:[o.jsx("p",{className:"text-xs font-semibold text-[var(--text-primary)] mb-1",children:r.title}),o.jsx("p",{className:"text-[11px] text-[var(--text-muted)] leading-relaxed",children:r.description}),o.jsx("div",{className:"absolute left-3 bottom-0 translate-y-1/2 rotate-45 w-2 h-2 bg-[var(--bg-primary)] border-r border-b border-[var(--border-primary)]"})]})]}):null}function f8({notes:e,onChange:t}){const[n,r]=m.useState(!!e);return o.jsxs("div",{className:"border border-[var(--border-primary)] rounded-md overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>r(!n),className:"w-full px-2.5 py-1.5 flex items-center justify-between bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] transition-colors",children:[o.jsxs("span",{className:"text-xs font-medium text-[var(--text-secondary)] flex items-center gap-1.5",children:[n?o.jsx(rr,{className:"w-3 h-3"}):o.jsx(uS,{className:"w-3 h-3"}),"Notes",e&&!n&&o.jsxs("span",{className:"ml-1 text-[var(--text-muted)] font-normal truncate max-w-[200px]",children:["— ",e.split(` +`)[0].substring(0,40),e.length>40?"...":""]})]}),o.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:n?"Click to collapse":"Click to expand"})]}),n&&o.jsx("div",{className:"p-2.5 bg-[var(--bg-primary)]",children:o.jsx("textarea",{value:e,onChange:s=>t(s.target.value),placeholder:`Configuration rationale and assumptions... +• Why this configuration was chosen +• Sizing assumptions (data volume, users, etc.) +• Cost optimization choices`,className:"w-full text-sm min-h-[80px] resize-y border-0 bg-transparent p-0 focus:ring-0 whitespace-pre-wrap",rows:4})})]})}function W_(e){const t=e.name||e.id||"Unknown";return e.vcpus&&e.memory_gb?`${t} (${e.vcpus}vCPU, ${e.memory_gb}GB)`:t}function rf({estimateId:e,lineItem:t,onClose:n,onSave:r,inline:s=!1,onFormChange:i}){var G;const{workloadTypes:a,instanceTypes:l,dbsqlSizes:c,dltEditions:u,vmPaymentOptions:d,modelServingGPUTypes:p,fmapiDatabricksConfig:f,fmapiProprietaryConfig:h,selectedCloud:g,selectedRegion:v,selectedTier:b,pricingBundle:x,isPricingBundleLoaded:y,createLineItem:_,updateLineItem:S,fetchLineItems:R,clearSingleWorkloadCost:E,markItemCalculating:A,fetchVMCostForInstance:D}=bs(),z=m.useRef(!0);m.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]);const j=m.useRef(i);m.useEffect(()=>{j.current=i},[i]);const H=[{id:"2X-Small",name:"2X-Small",dbu_per_hour:4},{id:"X-Small",name:"X-Small",dbu_per_hour:6},{id:"Small",name:"Small",dbu_per_hour:12},{id:"Medium",name:"Medium",dbu_per_hour:24},{id:"Large",name:"Large",dbu_per_hour:40},{id:"X-Large",name:"X-Large",dbu_per_hour:80},{id:"2X-Large",name:"2X-Large",dbu_per_hour:144},{id:"3X-Large",name:"3X-Large",dbu_per_hour:272},{id:"4X-Large",name:"4X-Large",dbu_per_hour:528}],X=c.length>0?c:H,re=[{id:"CORE",name:"Core"},{id:"PRO",name:"Pro"},{id:"ADVANCED",name:"Advanced"}],le=u.length>0?u:re,fe=[{id:"standard",name:"Standard",description:"Cost-optimized for general workloads"},{id:"performance",name:"Performance",description:"Optimized for faster execution"}],xe=[{id:"no_upfront",name:"No Upfront"},{id:"partial_upfront",name:"Partial Upfront"},{id:"all_upfront",name:"All Upfront"}],oe=d.length>0?d:xe,B={models:{llm:[{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-3-3-70b",name:"Llama 3.3 70B"},{id:"llama-3-1-8b",name:"Llama 3.1 8B"},{id:"llama-3-2-3b",name:"Llama 3.2 3B"},{id:"llama-3-2-1b",name:"Llama 3.2 1B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gpt-oss-20b",name:"GPT-OSS 20B"},{id:"gemma-3-12b",name:"Gemma 3 12B"}],embedding:[{id:"bge-large",name:"BGE Large"},{id:"gte",name:"GTE"}]}},Y=f&&f.models&&f.models.llm?f:B,N={providers:[{id:"anthropic",name:"Anthropic",models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-1",name:"Claude Opus 4.1"},{id:"claude-sonnet-4-1",name:"Claude Sonnet 4.1"},{id:"claude-opus-4",name:"Claude Opus 4"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-3-7",name:"Claude Sonnet 3.7"}]},{id:"openai",name:"OpenAI",models:[{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-1",name:"GPT-5.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"}]},{id:"google",name:"Google",models:[{id:"gemini-2-5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2-5-pro",name:"Gemini 2.5 Pro"}]}],endpoint_types:[{id:"global",name:"Global"},{id:"in_geo",name:"In-Geo (Regional)"}]},se=h&&Array.isArray(h.providers)?h:N,[de,L]=m.useState(!1),[be,Le]=m.useState(()=>t?!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day):!1),[w,q]=m.useState(()=>t?{workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""}:{workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""}),ce={workload_name:"",workload_type:"JOBS",serverless_enabled:!1,serverless_mode:"standard",driver_node_type:"",worker_node_type:"",num_workers:2,photon_enabled:!1,dlt_edition:"PRO",dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:"Small",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_driver_payment_option:"no_upfront",dbsql_worker_pricing_tier:"spot",dbsql_worker_payment_option:"NA",vector_search_mode:"standard",vector_capacity_millions:1,vector_search_storage_gb:0,model_serving_gpu_type:"cpu",model_serving_scale_out:"small",model_serving_concurrency:4,databricks_apps_size:"medium",clean_room_collaborators:1,ai_parse_mode:"pages",ai_parse_complexity:"medium",ai_parse_pages_thousands:0,shutterstock_images:0,lakeflow_connect_pipeline_mode:"serverless",lakeflow_connect_gateway_enabled:!1,lakeflow_connect_gateway_instance:"",lakebase_cu:1,lakebase_storage_gb:0,lakebase_ha_nodes:1,lakebase_backup_retention_days:7,lakebase_pitr_gb:0,lakebase_snapshot_gb:0,fmapi_provider:"anthropic",fmapi_model:"llama-3-3-70b",fmapi_endpoint_type:"global",fmapi_context_length:"long",fmapi_rate_type:"input_token",fmapi_quantity:0,runs_per_day:1,avg_runtime_minutes:30,days_per_month:22,hours_per_month:0,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",driver_payment_option:"no_upfront",worker_payment_option:"no_upfront",notes:""};m.useEffect(()=>{if(t){q({workload_name:t.workload_name||"",workload_type:t.workload_type||"JOBS",serverless_enabled:t.serverless_enabled||!1,serverless_mode:t.serverless_mode||"standard",driver_node_type:t.driver_node_type||"",worker_node_type:t.worker_node_type||"",num_workers:t.num_workers||2,photon_enabled:t.photon_enabled||!1,dlt_edition:t.dlt_edition||"PRO",dbsql_warehouse_type:(t.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),dbsql_warehouse_size:t.dbsql_warehouse_size||"Small",dbsql_num_clusters:t.dbsql_num_clusters||1,dbsql_driver_pricing_tier:t.dbsql_driver_pricing_tier||t.driver_pricing_tier||"on_demand",dbsql_driver_payment_option:t.dbsql_driver_payment_option||t.driver_payment_option||"no_upfront",dbsql_worker_pricing_tier:t.dbsql_worker_pricing_tier||t.worker_pricing_tier||"spot",dbsql_worker_payment_option:t.dbsql_worker_payment_option||t.worker_payment_option||"NA",vector_search_mode:t.vector_search_mode||"standard",vector_capacity_millions:t.vector_capacity_millions||1,vector_search_storage_gb:t.vector_search_storage_gb||0,model_serving_gpu_type:t.model_serving_gpu_type||"cpu",model_serving_scale_out:t.model_serving_scale_out||"small",model_serving_concurrency:t.model_serving_concurrency||4,databricks_apps_size:t.databricks_apps_size||"medium",clean_room_collaborators:t.clean_room_collaborators||1,ai_parse_mode:t.ai_parse_mode||"pages",ai_parse_complexity:t.ai_parse_complexity||"medium",ai_parse_pages_thousands:t.ai_parse_pages_thousands||0,shutterstock_images:t.shutterstock_images||0,lakeflow_connect_pipeline_mode:t.lakeflow_connect_pipeline_mode||"serverless",lakeflow_connect_gateway_enabled:t.lakeflow_connect_gateway_enabled||!1,lakeflow_connect_gateway_instance:t.lakeflow_connect_gateway_instance||"",lakebase_cu:t.lakebase_cu||1,lakebase_storage_gb:t.lakebase_storage_gb||0,lakebase_ha_nodes:t.lakebase_ha_nodes||1,lakebase_backup_retention_days:t.lakebase_backup_retention_days||7,lakebase_pitr_gb:t.lakebase_pitr_gb||0,lakebase_snapshot_gb:t.lakebase_snapshot_gb||0,fmapi_provider:t.fmapi_provider||"anthropic",fmapi_model:t.fmapi_model||"llama-3-3-70b",fmapi_endpoint_type:t.fmapi_endpoint_type||"global",fmapi_context_length:t.fmapi_context_length||"long",fmapi_rate_type:t.fmapi_rate_type||"input_token",fmapi_quantity:t.fmapi_quantity||0,runs_per_day:t.runs_per_day||1,avg_runtime_minutes:t.avg_runtime_minutes||30,days_per_month:t.days_per_month||22,hours_per_month:t.hours_per_month||0,driver_pricing_tier:t.driver_pricing_tier||"on_demand",worker_pricing_tier:t.worker_pricing_tier||"spot",driver_payment_option:t.driver_payment_option||"NA",worker_payment_option:t.worker_payment_option||"NA",notes:t.notes||""});const P=!!(t.hours_per_month&&t.hours_per_month>0&&!t.runs_per_day);Le(P)}else q(ce),Le(!1)},[t==null?void 0:t.line_item_id]),m.useEffect(()=>{(b==null?void 0:b.toUpperCase())==="STANDARD"&&(w.serverless_enabled&&q(P=>({...P,serverless_enabled:!1})),w.dbsql_warehouse_type==="SERVERLESS"&&q(P=>({...P,dbsql_warehouse_type:"PRO"})),$C.has(w.workload_type)&&q(P=>({...P,workload_type:"JOBS"})))},[b,w.serverless_enabled,w.dbsql_warehouse_type,w.workload_type]),m.useEffect(()=>{!g||!v||w.serverless_enabled||(w.driver_node_type&&D(g,v,w.driver_node_type,w.driver_pricing_tier||"on_demand",w.driver_payment_option||"NA"),w.worker_node_type&&D(g,v,w.worker_node_type,w.worker_pricing_tier||"spot",w.worker_payment_option||"NA"))},[g,v,w.driver_node_type,w.worker_node_type,w.driver_pricing_tier,w.worker_pricing_tier,w.driver_payment_option,w.worker_payment_option,w.serverless_enabled,D]);const _e=y?uE(x,g,v,b):null,ve=a.filter(P=>po(P.workload_type,b,!1).available?_e&&_e.length>0?_e.includes(P.workload_type):!0:!1),at=_e&&_e.length>0&&a.some(P=>po(P.workload_type,b,!1).available&&!_e.includes(P.workload_type));m.useEffect(()=>{if(!t&&_e&&_e.length>0&&!_e.includes(w.workload_type)){const P=ve[0];P&&q(k=>({...k,workload_type:P.workload_type}))}},[_e,w.workload_type,ve,t]);const Xe=t&&_e&&_e.length>0&&!_e.includes(w.workload_type);m.useEffect(()=>{if(!z.current||!j.current)return;const P={workload_type:w.workload_type,workload_name:w.workload_name,serverless_enabled:w.serverless_enabled,serverless_mode:w.serverless_mode,driver_node_type:w.driver_node_type||void 0,worker_node_type:w.worker_node_type||void 0,num_workers:w.num_workers,photon_enabled:w.photon_enabled,dlt_edition:w.dlt_edition,dbsql_warehouse_type:w.dbsql_warehouse_type,dbsql_warehouse_size:w.dbsql_warehouse_size,dbsql_num_clusters:w.dbsql_num_clusters,dbsql_driver_pricing_tier:w.dbsql_driver_pricing_tier,dbsql_driver_payment_option:w.dbsql_driver_payment_option,dbsql_worker_pricing_tier:w.dbsql_worker_pricing_tier,dbsql_worker_payment_option:w.dbsql_worker_payment_option,vector_search_mode:w.vector_search_mode,vector_capacity_millions:w.vector_capacity_millions,vector_search_storage_gb:w.vector_search_storage_gb,model_serving_gpu_type:w.model_serving_gpu_type,model_serving_concurrency:w.model_serving_concurrency,model_serving_scale_out:w.model_serving_scale_out,databricks_apps_size:w.databricks_apps_size,clean_room_collaborators:w.clean_room_collaborators,ai_parse_mode:w.ai_parse_mode,ai_parse_complexity:w.ai_parse_complexity,ai_parse_pages_thousands:w.ai_parse_pages_thousands,shutterstock_images:w.shutterstock_images,lakeflow_connect_pipeline_mode:w.lakeflow_connect_pipeline_mode,lakeflow_connect_gateway_enabled:w.lakeflow_connect_gateway_enabled,lakeflow_connect_gateway_instance:w.lakeflow_connect_gateway_instance||void 0,lakebase_cu:w.lakebase_cu,lakebase_storage_gb:w.lakebase_storage_gb,lakebase_ha_nodes:w.lakebase_ha_nodes,lakebase_pitr_gb:w.lakebase_pitr_gb,lakebase_snapshot_gb:w.lakebase_snapshot_gb,fmapi_provider:w.fmapi_provider,fmapi_model:w.fmapi_model,fmapi_endpoint_type:w.fmapi_endpoint_type,fmapi_context_length:w.fmapi_context_length,fmapi_rate_type:w.fmapi_rate_type,fmapi_quantity:w.fmapi_quantity,runs_per_day:w.runs_per_day,avg_runtime_minutes:w.avg_runtime_minutes,days_per_month:w.days_per_month,hours_per_month:w.hours_per_month||void 0,driver_pricing_tier:w.driver_pricing_tier,worker_pricing_tier:w.worker_pricing_tier,driver_payment_option:w.driver_payment_option,worker_payment_option:w.worker_payment_option};j.current(P)},[w]);const I=a.find(P=>P.workload_type===w.workload_type),nt=a.length===0,gt=!nt&&!I&&w.workload_type,ot=async P=>{if(P.preventDefault(),!w.workload_name.trim()){$e.error("Enter a workload name");return}L(!0);try{const k={workload_name:w.workload_name,workload_type:w.workload_type,notes:w.notes||null,cloud:(g==null?void 0:g.toUpperCase())||null,days_per_month:w.days_per_month};if(I!=null&&I.show_serverless_toggle?(k.serverless_enabled=w.serverless_enabled,k.serverless_mode=w.serverless_enabled?w.serverless_mode:null):(k.serverless_enabled=!1,k.serverless_mode=null),I!=null&&I.show_compute_config?(k.photon_enabled=w.serverless_enabled?!0:w.photon_enabled,k.driver_node_type=w.driver_node_type||null,k.worker_node_type=w.worker_node_type||null,k.num_workers=w.num_workers,k.driver_pricing_tier=w.driver_pricing_tier||"on_demand",k.worker_pricing_tier=w.worker_pricing_tier||"spot",k.driver_payment_option=w.driver_payment_option||"NA",k.worker_payment_option=w.worker_payment_option||"NA"):(k.photon_enabled=!1,k.driver_node_type=null,k.worker_node_type=null,k.num_workers=null,k.driver_pricing_tier=null,k.worker_pricing_tier=null,k.driver_payment_option=null,k.worker_payment_option=null),I!=null&&I.show_dlt_config&&!w.serverless_enabled?k.dlt_edition=w.dlt_edition:k.dlt_edition=null,I!=null&&I.show_dbsql_config?(k.dbsql_warehouse_type=w.dbsql_warehouse_type,k.dbsql_warehouse_size=w.dbsql_warehouse_size,k.dbsql_num_clusters=w.dbsql_num_clusters,(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(k.dbsql_driver_pricing_tier=w.dbsql_driver_pricing_tier,k.dbsql_driver_payment_option=w.dbsql_driver_payment_option,k.dbsql_worker_pricing_tier=w.dbsql_worker_pricing_tier,k.dbsql_worker_payment_option=w.dbsql_worker_payment_option,k.driver_pricing_tier=w.dbsql_driver_pricing_tier,k.driver_payment_option=w.dbsql_driver_payment_option,k.worker_pricing_tier=w.dbsql_worker_pricing_tier,k.worker_payment_option=w.dbsql_worker_payment_option)):(k.dbsql_warehouse_type=null,k.dbsql_warehouse_size=null,k.dbsql_num_clusters=null,k.dbsql_driver_pricing_tier=null,k.dbsql_driver_payment_option=null,k.dbsql_worker_pricing_tier=null,k.dbsql_worker_payment_option=null),I!=null&&I.show_vector_search_mode?(k.vector_search_mode=w.vector_search_mode,k.vector_capacity_millions=w.vector_capacity_millions,k.vector_search_storage_gb=w.vector_search_storage_gb||0):(k.vector_search_mode=null,k.vector_capacity_millions=null,k.vector_search_storage_gb=null),w.workload_type==="MODEL_SERVING"?(k.model_serving_gpu_type=w.model_serving_gpu_type,k.model_serving_scale_out=w.model_serving_scale_out,k.model_serving_concurrency=w.model_serving_concurrency):(k.model_serving_gpu_type=null,k.model_serving_scale_out=null,k.model_serving_concurrency=null),w.workload_type==="DATABRICKS_APPS"?k.databricks_apps_size=w.databricks_apps_size:k.databricks_apps_size=null,w.workload_type==="CLEAN_ROOM"?k.clean_room_collaborators=w.clean_room_collaborators:k.clean_room_collaborators=null,w.workload_type==="AI_PARSE"?(k.ai_parse_mode=w.ai_parse_mode,k.ai_parse_complexity=w.ai_parse_complexity,k.ai_parse_pages_thousands=w.ai_parse_pages_thousands):(k.ai_parse_mode=null,k.ai_parse_complexity=null,k.ai_parse_pages_thousands=null),w.workload_type==="SHUTTERSTOCK_IMAGEAI"?k.shutterstock_images=w.shutterstock_images:k.shutterstock_images=null,w.workload_type==="LAKEFLOW_CONNECT"?(k.lakeflow_connect_pipeline_mode=w.lakeflow_connect_pipeline_mode,k.lakeflow_connect_gateway_enabled=w.lakeflow_connect_gateway_enabled,k.lakeflow_connect_gateway_instance=w.lakeflow_connect_gateway_instance||null):(k.lakeflow_connect_pipeline_mode=null,k.lakeflow_connect_gateway_enabled=null,k.lakeflow_connect_gateway_instance=null),I!=null&&I.show_lakebase_config?(k.lakebase_cu=w.lakebase_cu,k.lakebase_storage_gb=w.lakebase_storage_gb||0,k.lakebase_ha_nodes=w.lakebase_ha_nodes,k.lakebase_backup_retention_days=w.lakebase_backup_retention_days,k.lakebase_pitr_gb=w.lakebase_pitr_gb||0,k.lakebase_snapshot_gb=w.lakebase_snapshot_gb||0):(k.lakebase_cu=null,k.lakebase_storage_gb=null,k.lakebase_ha_nodes=null,k.lakebase_backup_retention_days=null,k.lakebase_pitr_gb=null,k.lakebase_snapshot_gb=null),I!=null&&I.show_fmapi_config?(k.fmapi_provider=w.fmapi_provider,k.fmapi_model=w.fmapi_model||null,k.fmapi_endpoint_type=w.fmapi_endpoint_type,k.fmapi_context_length=w.fmapi_context_length,k.fmapi_rate_type=w.fmapi_rate_type,k.fmapi_quantity=w.fmapi_quantity):(k.fmapi_provider=null,k.fmapi_model=null,k.fmapi_endpoint_type=null,k.fmapi_context_length=null,k.fmapi_rate_type=null,k.fmapi_quantity=null),(I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config)?be?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=I!=null&&I.show_usage_runs?w.runs_per_day:null,k.avg_runtime_minutes=w.avg_runtime_minutes,k.days_per_month=w.days_per_month):I!=null&&I.show_vector_search_mode||w.workload_type==="MODEL_SERVING"||I!=null&&I.show_lakebase_config||w.workload_type==="DATABRICKS_APPS"?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):w.workload_type==="CLEAN_ROOM"?(k.hours_per_month=null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=w.days_per_month||30):w.workload_type==="AI_PARSE"||w.workload_type==="SHUTTERSTOCK_IMAGEAI"?(k.hours_per_month=w.ai_parse_mode==="dbu"?w.hours_per_month||0:null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):w.workload_type==="LAKEFLOW_CONNECT"?be?(k.hours_per_month=w.hours_per_month||730,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=w.runs_per_day,k.avg_runtime_minutes=w.avg_runtime_minutes,k.days_per_month=w.days_per_month):I!=null&&I.show_fmapi_config?(k.hours_per_month=w.hours_per_month||null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null):(k.hours_per_month=null,k.runs_per_day=null,k.avg_runtime_minutes=null,k.days_per_month=null),t)E(t.line_item_id),A(t.line_item_id),await S(t.line_item_id,k),$e.success("Workload updated");else{k.estimate_id=e;const M=await _(k);M!=null&&M.line_item_id&&A(M.line_item_id),$e.success("Workload added")}R(e),r==null||r(),n()}catch(k){console.error("Failed to save workload:",k),$e.error("Failed to save")}finally{L(!1)}},ft=I==null?void 0:I.show_compute_config;return nt?o.jsxs("div",{className:"p-8 text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-lava-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Loading workload configuration..."})]}):o.jsxs("form",{onSubmit:ot,className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Workload Name *"}),o.jsx("input",{type:"text",value:w.workload_name,onChange:P=>q(k=>({...k,workload_name:P.target.value})),placeholder:"e.g., Daily ETL Pipeline",className:"w-full text-sm",autoFocus:!t})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1",style:{color:"var(--text-secondary)"},children:["Workload Type",!y&&o.jsx("span",{className:"ml-2 text-[var(--text-muted)] text-xs animate-pulse",children:"Loading..."})]}),o.jsxs("select",{value:w.workload_type,onChange:P=>q(k=>({...k,workload_type:P.target.value,serverless_enabled:!1,photon_enabled:!1})),className:ue("w-full text-sm",gt&&"border-red-500",Xe&&"border-yellow-500"),children:[Xe&&(()=>{const P=a.find(k=>k.workload_type===w.workload_type);return P?o.jsxs("option",{value:P.workload_type,children:[P.display_name," (unavailable in region)"]},P.workload_type):null})(),ve.map(P=>o.jsx("option",{value:P.workload_type,children:P.display_name},P.workload_type))]}),gt&&o.jsxs("p",{className:"text-xs text-red-500 mt-1",children:["Unknown workload type: ",w.workload_type]}),Xe&&o.jsxs("p",{className:"text-xs text-yellow-600 dark:text-yellow-400 mt-1",children:["⚠️ ",w.workload_type.replace(/_/g," ")," is not available in ",v]}),at&&!Xe&&o.jsxs("p",{className:"text-xs mt-1",style:{color:"var(--text-muted)"},children:["Some workload types are not available in ",v]})]})]}),((I==null?void 0:I.show_serverless_toggle)||(I==null?void 0:I.show_photon_toggle))&&o.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[(I==null?void 0:I.show_serverless_toggle)&&(()=>{const k=!po(w.workload_type,b,!0).available;return o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",k&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:w.serverless_enabled&&!k,onChange:()=>!k&&q(ie=>{const M=!ie.serverless_enabled,W=ie.workload_type==="ALL_PURPOSE"&&M?"performance":ie.serverless_mode;return{...ie,serverless_enabled:M,serverless_mode:W}}),disabled:k,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(_m,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:ue("text-sm",w.serverless_enabled?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),k&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]})})(),(I==null?void 0:I.show_serverless_toggle)&&w.serverless_enabled&&(po(w.workload_type,b,!0).available?w.workload_type==="ALL_PURPOSE"?o.jsx("span",{className:"text-xs text-teal-600 bg-teal-100 dark:bg-teal-900/30 px-2 py-1 rounded",children:"Performance Mode"}):o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Mode:"}),o.jsx("select",{value:w.serverless_mode,onChange:ie=>q(M=>({...M,serverless_mode:ie.target.value})),className:"text-sm py-1 px-2",children:fe.map(ie=>o.jsx("option",{value:ie.id,children:ie.name},ie.id))})]}):null),(I==null?void 0:I.show_photon_toggle)&&o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",w.serverless_enabled&&"opacity-60"),children:[o.jsx("input",{type:"checkbox",checked:w.photon_enabled||w.serverless_enabled,onChange:()=>!w.serverless_enabled&&q(P=>({...P,photon_enabled:!P.photon_enabled})),disabled:w.serverless_enabled,className:"w-4 h-4 rounded border-lava-400 text-lava-600 focus:ring-lava-500"}),o.jsx(Au,{className:"w-4 h-4 text-lava-600"}),o.jsx("span",{className:ue("text-sm",w.photon_enabled||w.serverless_enabled?"text-lava-700 dark:text-lava-400 font-medium":"text-[var(--text-secondary)]"),children:"Photon"}),w.serverless_enabled&&o.jsx("span",{className:"text-[10px] text-green-600 bg-green-100 dark:bg-green-900/30 px-1.5 py-0.5 rounded",children:"Auto"})]})]}),ft&&o.jsxs("div",{className:"space-y-2",children:[w.serverless_enabled&&o.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-2.5",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("span",{className:"font-semibold",children:"ℹ️ Serverless Mode:"})," VM node types are used to estimate DBU consumption only. Actual VM costs are not included as serverless workloads are managed by Databricks."]})}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Driver Node"}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"(1 node)"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx($_,{options:l.map(P=>({value:P.id,label:W_(P),group:P.instance_family||"General Purpose"})),value:w.driver_node_type,onChange:P=>q(k=>({...k,driver_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),!w.serverless_enabled&&o.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.driver_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx(q_,{tier:w.driver_pricing_tier})]}),o.jsxs("select",{value:w.driver_pricing_tier,onChange:P=>q(k=>({...k,driver_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.driver_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.driver_payment_option,onChange:P=>q(k=>({...k,driver_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]}),o.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-lg p-3 border border-[var(--border-primary)]",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),o.jsx("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:"Worker Nodes"}),o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",w.num_workers," node",w.num_workers!==1?"s":"",")"]})]}),o.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer group",children:[o.jsx("input",{type:"checkbox",checked:w.driver_node_type===w.worker_node_type&&w.driver_node_type!=="",onChange:P=>{P.target.checked&&w.driver_node_type&&q(k=>({...k,worker_node_type:k.driver_node_type}))},disabled:!w.driver_node_type,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-blue-500 focus:ring-blue-500 focus:ring-offset-0"}),o.jsx("span",{className:ue("text-xs font-medium transition-colors",w.driver_node_type===w.worker_node_type&&w.driver_node_type!==""?"text-blue-500":"text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]"),children:"Same as Driver"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Instance Type"}),o.jsx($_,{options:l.map(P=>({value:P.id,label:W_(P),group:P.instance_family||"General Purpose"})),value:w.worker_node_type,onChange:P=>q(k=>({...k,worker_node_type:P})),placeholder:"Select type...",searchPlaceholder:"Search instance types...",grouped:!0})]}),o.jsxs("div",{className:"w-14 flex-shrink-0",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Count"}),o.jsx("input",{type:"number",min:1,max:100,value:w.num_workers,onChange:P=>q(k=>({...k,num_workers:parseInt(P.target.value)||1})),className:"w-full text-sm text-center"})]})]}),!w.serverless_enabled&&o.jsxs("div",{className:ue("grid gap-2",g==="aws"&&w.worker_pricing_tier.startsWith("reserved")?"grid-cols-2":"grid-cols-1"),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"flex items-center text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["Pricing Tier",o.jsx(q_,{tier:w.worker_pricing_tier})]}),o.jsxs("select",{value:w.worker_pricing_tier,onChange:P=>q(k=>({...k,worker_pricing_tier:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]})]}),g==="aws"&&w.worker_pricing_tier.startsWith("reserved")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Payment Option"}),o.jsx("select",{value:w.worker_payment_option,onChange:P=>q(k=>({...k,worker_payment_option:P.target.value})),className:"w-full text-sm",children:oe.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[ft&&o.jsx(o.Fragment,{}),(I==null?void 0:I.show_dlt_config)&&!w.serverless_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"SDP Edition"}),o.jsx("select",{value:w.dlt_edition,onChange:P=>q(k=>({...k,dlt_edition:P.target.value})),className:"w-full text-sm",children:le.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),(I==null?void 0:I.show_dbsql_config)&&o.jsxs(o.Fragment,{children:[(()=>{const k=!po("DBSQL",b,!1,"SERVERLESS").available,ie=w.dbsql_warehouse_type==="SERVERLESS"&&!k;return o.jsxs("div",{className:"col-span-full flex flex-wrap items-center gap-4",children:[o.jsxs("label",{className:ue("flex items-center gap-2 cursor-pointer select-none",k&&"opacity-50 cursor-not-allowed"),children:[o.jsx("input",{type:"checkbox",checked:ie,onChange:()=>!k&&q(M=>({...M,dbsql_warehouse_type:M.dbsql_warehouse_type==="SERVERLESS"?"PRO":"SERVERLESS"})),disabled:k,className:"w-4 h-4 rounded border-teal-400 text-teal-600 focus:ring-teal-500"}),o.jsx(_m,{className:"w-4 h-4 text-teal-600"}),o.jsx("span",{className:ue("text-sm",ie?"text-teal-700 dark:text-teal-400 font-medium":"text-[var(--text-secondary)]"),children:"Serverless"}),k&&o.jsx("span",{className:"text-[10px] text-amber-600",children:"(Premium+)"})]}),!ie&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-secondary)]",children:"Type:"}),o.jsxs("select",{value:w.dbsql_warehouse_type==="SERVERLESS"?"PRO":w.dbsql_warehouse_type,onChange:M=>q(W=>({...W,dbsql_warehouse_type:M.target.value})),className:"text-sm py-1 px-2",children:[o.jsx("option",{value:"PRO",children:"Pro"}),o.jsx("option",{value:"CLASSIC",children:"Classic"})]})]})]})})(),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Size"}),o.jsx("select",{value:w.dbsql_warehouse_size,onChange:P=>q(k=>({...k,dbsql_warehouse_size:P.target.value})),className:"w-full text-sm",children:X.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Clusters"}),o.jsx("input",{type:"number",min:1,max:100,value:w.dbsql_num_clusters,onChange:P=>q(k=>({...k,dbsql_num_clusters:parseInt(P.target.value)||1})),className:"w-full text-sm"})]}),(w.dbsql_warehouse_type==="PRO"||w.dbsql_warehouse_type==="CLASSIC")&&(()=>{var Ne,O;const P=y?cl(x,g||"aws",w.dbsql_warehouse_type,w.dbsql_warehouse_size):null,k=P!=null&&P.driver_instance_type?l.find(F=>F.id===P.driver_instance_type):null,ie=P!=null&&P.worker_instance_type?l.find(F=>F.id===P.worker_instance_type):null,M=(F,K,ae)=>{var Be,dt,rt,Ge,lt,Ke,Ot;if(!(F!=null&&F.vm_pricing))return null;const Ee=K.toLowerCase();if(Ee==="on_demand")return(Be=F.vm_pricing.on_demand)==null?void 0:Be.cost_per_hour;if(Ee==="spot")return(dt=F.vm_pricing.spot)==null?void 0:dt.cost_per_hour;if(Ee==="reserved_1y"){const U=((rt=F.vm_pricing.reserved_1y)==null?void 0:rt.find(J=>J.payment_option===ae))||((Ge=F.vm_pricing.reserved_1y)==null?void 0:Ge[0]);return U==null?void 0:U.cost_per_hour}if(Ee==="reserved_3y"){const U=((lt=F.vm_pricing.reserved_3y)==null?void 0:lt.find(J=>J.payment_option===ae))||((Ke=F.vm_pricing.reserved_3y)==null?void 0:Ke[0]);return U==null?void 0:U.cost_per_hour}return(Ot=F.vm_pricing.on_demand)==null?void 0:Ot.cost_per_hour},W=M(k,w.dbsql_driver_pricing_tier,w.dbsql_driver_payment_option),ke=M(ie,w.dbsql_worker_pricing_tier,w.dbsql_worker_payment_option);return o.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"p-2.5 rounded-lg border bg-blue-50/50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full"}),o.jsx("span",{className:"text-xs font-semibold text-blue-700 dark:text-blue-300",children:"Driver"})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.driver_instance_type)||"—"})]}),k&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(Ne=k.dbu_rate)==null?void 0:Ne.toFixed(2)," DBU/hr"]}),W!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",W.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_driver_pricing_tier,onChange:F=>q(K=>({...K,dbsql_driver_pricing_tier:F.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_driver_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_driver_payment_option,onChange:F=>q(K=>({...K,dbsql_driver_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>o.jsx("option",{value:F.id,children:F.name},F.id))})]}),o.jsxs("div",{className:"p-2.5 rounded-lg border bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-800",children:[o.jsxs("div",{className:"flex items-center justify-between mb-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),o.jsxs("span",{className:"text-xs font-semibold text-green-700 dark:text-green-300",children:["Workers ×",(P==null?void 0:P.worker_count)||4]})]}),o.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono",children:(P==null?void 0:P.worker_instance_type)||"—"})]}),ie&&o.jsxs("div",{className:"flex items-center gap-2 mb-2 text-[10px] text-gray-500 dark:text-gray-400",children:[o.jsxs("span",{children:[(O=ie.dbu_rate)==null?void 0:O.toFixed(2)," DBU/hr"]}),ke!=null&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:["$",ke.toFixed(4),"/hr"]})]})]}),o.jsxs("select",{value:w.dbsql_worker_pricing_tier,onChange:F=>q(K=>({...K,dbsql_worker_pricing_tier:F.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"spot",children:"Spot Instances"}),o.jsx("option",{value:"on_demand",children:"On-Demand"}),o.jsx("option",{value:"reserved_1y",children:"1-Year Reserved"}),o.jsx("option",{value:"reserved_3y",children:"3-Year Reserved"})]}),g==="aws"&&w.dbsql_worker_pricing_tier.startsWith("reserved")&&o.jsx("select",{value:w.dbsql_worker_payment_option,onChange:F=>q(K=>({...K,dbsql_worker_payment_option:F.target.value})),className:"w-full text-sm mt-2",children:oe.map(F=>o.jsx("option",{value:F.id,children:F.name},F.id))})]})]})})()]}),(I==null?void 0:I.show_vector_search_mode)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Vector Search Type"}),o.jsxs("select",{value:w.vector_search_mode,onChange:P=>q(k=>({...k,vector_search_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"standard",children:"Standard (4 DBU/hr per 2M vectors)"}),o.jsx("option",{value:"storage_optimized",children:"Storage Optimized (18.29 DBU/hr per 64M vectors)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity (M vectors)"}),o.jsx("input",{type:"number",min:.1,max:1e3,step:.1,value:w.vector_capacity_millions,onChange:P=>q(k=>({...k,vector_capacity_millions:parseFloat(P.target.value)||1})),className:"w-full text-sm",placeholder:"e.g., 1.5"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.vector_search_storage_gb,onChange:P=>q(k=>({...k,vector_search_storage_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100"}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:["Free: ",Math.ceil((w.vector_capacity_millions||1)*1e6/(w.vector_search_mode==="storage_optimized"?64e6:2e6))*20," GB (20 GB/unit). Charged at $0.023/GB/mo above free tier."]})]})]}),w.workload_type==="MODEL_SERVING"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.model_serving_gpu_type,onChange:P=>q(k=>({...k,model_serving_gpu_type:P.target.value})),className:"w-full text-sm",children:p.map(P=>o.jsxs("option",{value:P.id,children:[P.name," (",P.dbu_per_hour," DBU/hr)"]},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Compute Scale-Out"}),o.jsxs("select",{value:w.model_serving_scale_out,onChange:P=>{const k={small:4,medium:12,large:40},ie=P.target.value;q(M=>({...M,model_serving_scale_out:ie,model_serving_concurrency:ie==="custom"?M.model_serving_concurrency||4:k[ie]||4}))},className:"w-full text-sm",children:[o.jsx("option",{value:"small",children:"Small (4 concurrency)"}),o.jsx("option",{value:"medium",children:"Medium (8-16 concurrency, default 12)"}),o.jsx("option",{value:"large",children:"Large (16-64 concurrency, default 40)"}),o.jsx("option",{value:"custom",children:"Custom"})]})]}),w.model_serving_scale_out==="custom"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Custom Concurrency"}),o.jsx("input",{type:"number",min:4,max:256,step:4,value:w.model_serving_concurrency,onChange:P=>{const k=Math.max(4,Math.round((parseInt(P.target.value)||4)/4)*4);q(ie=>({...ie,model_serving_concurrency:k}))},className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"Must be a multiple of 4"})]})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_DATABRICKS"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>q(k=>({...k,fmapi_model:P.target.value})),className:"w-full text-sm",children:[o.jsx("optgroup",{label:"LLMs",children:Y.models.llm.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))}),o.jsx("optgroup",{label:"Embedding Models",children:Y.models.embedding.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsxs("select",{value:w.fmapi_rate_type,onChange:P=>q(k=>({...k,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Token-based",children:[o.jsx("option",{value:"input_token",children:"Input Token"}),!["gte","bge-large"].includes(w.fmapi_model)&&o.jsx("option",{value:"output_token",children:"Output Token"})]}),o.jsxs("optgroup",{label:"Provisioned",children:[o.jsx("option",{value:"provisioned_scaling",children:"Provisioned Scaling"}),o.jsx("option",{value:"provisioned_entry",children:"Provisioned Entry"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"Hours/Month":"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?1:.1,value:w.fmapi_quantity,onChange:P=>q(k=>({...k,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?"e.g., 730 = 24/7":"e.g., 10"}),!["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)&&o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["provisioned_scaling","provisioned_entry"].includes(w.fmapi_rate_type)?o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Provisioned Throughput:"})," Cost = hours × DBU/hour × DBU price"]}):o.jsxs(o.Fragment,{children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for Input Token and Output Token to calculate total cost."]})})})]}),(I==null?void 0:I.show_fmapi_config)&&w.workload_type==="FMAPI_PROPRIETARY"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Provider"}),o.jsx("select",{value:w.fmapi_provider,onChange:P=>q(k=>({...k,fmapi_provider:P.target.value,fmapi_model:"",fmapi_context_length:"long",fmapi_rate_type:"input_token"})),className:"w-full text-sm",children:se.providers.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Model"}),o.jsxs("select",{value:w.fmapi_model,onChange:P=>{const k=P.target.value,ie=H_(x,g||"aws",w.fmapi_provider,k),M=ie.includes(w.fmapi_context_length)?w.fmapi_context_length:ie[0]||"all";q(W=>({...W,fmapi_model:k,fmapi_context_length:M}))},className:"w-full text-sm",children:[o.jsx("option",{value:"",children:"Select model"}),(G=se.providers.find(P=>P.id===w.fmapi_provider))==null?void 0:G.models.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Endpoint Type"}),o.jsx("select",{value:w.fmapi_endpoint_type,onChange:P=>q(k=>({...k,fmapi_endpoint_type:P.target.value})),className:"w-full text-sm",children:se.endpoint_types.map(P=>o.jsx("option",{value:P.id,children:P.name},P.id))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Context Length"}),o.jsx("select",{value:w.fmapi_context_length,onChange:P=>q(k=>({...k,fmapi_context_length:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?H_(x,g||"aws",w.fmapi_provider,w.fmapi_model):["all","short","long"],k={all:"All",short:"Short",long:"Long"};return P.map(ie=>o.jsx("option",{value:ie,children:k[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Rate Type"}),o.jsx("select",{value:w.fmapi_rate_type,onChange:P=>q(k=>({...k,fmapi_rate_type:P.target.value})),className:"w-full text-sm",children:(()=>{const P=w.fmapi_model?d8(x,g||"aws",w.fmapi_provider,w.fmapi_model,w.fmapi_endpoint_type,w.fmapi_context_length):["input_token","output_token","cache_read","cache_write"],k={input_token:"Input Token",output_token:"Output Token",cache_read:"Cache Read",cache_write:"Cache Write",batch_inference:"Batch Inference",provisioned_scaling:"Provisioned Scaling"};return P.map(ie=>o.jsx("option",{value:ie,children:k[ie]||ie},ie))})()})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Quantity (M tokens/month)"}),o.jsx("input",{type:"number",min:0,step:.1,value:w.fmapi_quantity,onChange:P=>q(k=>({...k,fmapi_quantity:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 10"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Enter in millions: 1 = 1M, 5 = 5M, 10 = 10M tokens"})]}),o.jsx("div",{className:"col-span-full p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:o.jsxs("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:[o.jsx("strong",{children:"Tip:"})," Add separate workloads for each rate type (Input Token, Output Token, Cache Read, Cache Write) to calculate the total cost of your Foundation Model endpoint."]})})]}),(I==null?void 0:I.show_lakebase_config)&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Capacity Units (CU)"}),o.jsxs("select",{value:w.lakebase_cu,onChange:P=>q(k=>({...k,lakebase_cu:parseFloat(P.target.value)||1})),className:"w-full text-sm",children:[o.jsxs("optgroup",{label:"Autoscale (0.5–32 CU)",children:[o.jsx("option",{value:.5,children:"0.5 CU (1 GB)"}),o.jsx("option",{value:1,children:"1 CU (2 GB)"}),o.jsx("option",{value:2,children:"2 CU (4 GB)"}),o.jsx("option",{value:4,children:"4 CU (8 GB)"}),o.jsx("option",{value:8,children:"8 CU (16 GB)"}),o.jsx("option",{value:16,children:"16 CU (32 GB)"}),o.jsx("option",{value:32,children:"32 CU (64 GB)"})]}),o.jsxs("optgroup",{label:"Fixed Size (48–112 CU)",children:[o.jsx("option",{value:48,children:"48 CU (96 GB)"}),o.jsx("option",{value:64,children:"64 CU (128 GB)"}),o.jsx("option",{value:80,children:"80 CU (160 GB)"}),o.jsx("option",{value:96,children:"96 CU (192 GB)"}),o.jsx("option",{value:112,children:"112 CU (224 GB)"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Number of Nodes"}),o.jsxs("select",{value:w.lakebase_ha_nodes,onChange:P=>q(k=>({...k,lakebase_ha_nodes:parseInt(P.target.value)||1})),className:"w-full text-sm",children:[o.jsx("option",{value:1,children:"1 Node"}),o.jsx("option",{value:2,children:"2 Nodes (HA)"}),o.jsx("option",{value:3,children:"3 Nodes (HA)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Storage (GB)"}),o.jsx("input",{type:"number",min:0,max:8192,step:1,value:w.lakebase_storage_gb,onChange:P=>q(k=>({...k,lakebase_storage_gb:Math.min(parseInt(P.target.value)||0,8192)})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"15x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Point-in-Time Restore (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_pitr_gb,onChange:P=>q(k=>({...k,lakebase_pitr_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"8.7x DSU multiplier"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Snapshot Storage (GB)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.lakebase_snapshot_gb,onChange:P=>q(k=>({...k,lakebase_snapshot_gb:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 500"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"3.91x DSU multiplier"})]})]}),w.workload_type==="DATABRICKS_APPS"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"App Size"}),o.jsxs("select",{value:w.databricks_apps_size||"medium",onChange:P=>q(k=>({...k,databricks_apps_size:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"medium",children:"Medium (0.5 DBU/hr)"}),o.jsx("option",{value:"large",children:"Large (1.0 DBU/hr)"})]})]}),w.workload_type==="CLEAN_ROOM"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Collaborators"}),o.jsx("input",{type:"number",min:1,max:10,step:1,value:w.clean_room_collaborators||1,onChange:P=>q(k=>({...k,clean_room_collaborators:Math.min(10,Math.max(1,parseInt(P.target.value)||1))})),className:"w-full text-sm"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"1 DBU per collaborator per day (max 10)"})]}),w.workload_type==="AI_PARSE"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Mode"}),o.jsxs("select",{value:w.ai_parse_mode||"pages",onChange:P=>q(k=>({...k,ai_parse_mode:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"pages",children:"Pages-based"}),o.jsx("option",{value:"dbu",children:"Direct DBU"})]})]}),(w.ai_parse_mode||"pages")==="pages"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Complexity"}),o.jsxs("select",{value:w.ai_parse_complexity||"medium",onChange:P=>q(k=>({...k,ai_parse_complexity:P.target.value})),className:"w-full text-sm",children:[o.jsx("option",{value:"low_text",children:"Low - Text Only (12.5 DBU/1K pages)"}),o.jsx("option",{value:"low_images",children:"Low - With Images (22.5 DBU/1K pages)"}),o.jsx("option",{value:"medium",children:"Medium (62.5 DBU/1K pages)"}),o.jsx("option",{value:"high",children:"High (87.5 DBU/1K pages)"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Pages (thousands)"}),o.jsx("input",{type:"number",min:0,step:1,value:w.ai_parse_pages_thousands||0,onChange:P=>q(k=>({...k,ai_parse_pages_thousands:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 100 (= 100K pages)"})]})]})]}),w.workload_type==="SHUTTERSTOCK_IMAGEAI"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Images/Month"}),o.jsx("input",{type:"number",min:0,step:1,value:w.shutterstock_images||0,onChange:P=>q(k=>({...k,shutterstock_images:parseInt(P.target.value)||0})),className:"w-full text-sm",placeholder:"e.g., 1000"}),o.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:"0.857 DBU per image"})]}),w.workload_type==="LAKEFLOW_CONNECT"&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"col-span-full",children:o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Pipeline uses DLT Serverless (Advanced edition). Configure usage below."})}),o.jsx("div",{children:o.jsxs("label",{className:"flex items-center gap-2 text-xs font-medium text-[var(--text-secondary)]",children:[o.jsx("input",{type:"checkbox",checked:w.lakeflow_connect_gateway_enabled||!1,onChange:P=>q(k=>({...k,lakeflow_connect_gateway_enabled:P.target.checked})),className:"rounded"}),"Enable Gateway (Database Connectors)"]})}),w.lakeflow_connect_gateway_enabled&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Gateway Instance"}),o.jsx("input",{type:"text",value:w.lakeflow_connect_gateway_instance||"",onChange:P=>q(k=>({...k,lakeflow_connect_gateway_instance:P.target.value})),className:"w-full text-sm",placeholder:"e.g., i3.xlarge (auto-selected per cloud)"})]})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsx("div",{className:"col-span-full",children:o.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[o.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:"Usage Input Method:"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>Le(!1),className:ue("px-3 py-1 text-xs rounded-l-md border transition-colors",be?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]":"bg-lava-600 text-white border-lava-600"),children:"Run-Based"}),o.jsx("button",{type:"button",onClick:()=>Le(!0),className:ue("px-3 py-1 text-xs rounded-r-md border-y border-r transition-colors",be?"bg-lava-600 text-white border-lava-600":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-primary)] hover:bg-[var(--bg-tertiary)]"),children:"Direct Hours"})]})]})}),!be&&o.jsxs(o.Fragment,{children:[(I==null?void 0:I.show_usage_runs)&&!(I!=null&&I.show_lakebase_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_fmapi_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Runs/Day"}),o.jsx("input",{type:"number",min:0,value:w.runs_per_day,onChange:P=>q(k=>({...k,runs_per_day:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",min:0,value:w.avg_runtime_minutes,onChange:P=>q(k=>({...k,avg_runtime_minutes:parseInt(P.target.value)||0})),className:"w-full text-sm"})]}),!(I!=null&&I.show_fmapi_config)&&!(I!=null&&I.show_vector_search_mode)&&!(I!=null&&I.show_lakebase_config)&&w.workload_type!=="MODEL_SERVING"&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Days/Month"}),o.jsx("input",{type:"number",min:1,max:31,value:w.days_per_month,onChange:P=>q(k=>({...k,days_per_month:parseInt(P.target.value)||22})),className:"w-full text-sm"})]})]}),be&&((I==null?void 0:I.show_compute_config)||(I==null?void 0:I.show_dlt_config)||(I==null?void 0:I.show_dbsql_config))&&o.jsxs("div",{className:"col-span-full md:col-span-1",children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>q(k=>({...k,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"730 = 24/7 monthly operation"})]}),((I==null?void 0:I.show_vector_search_mode)||w.workload_type==="MODEL_SERVING"||(I==null?void 0:I.show_lakebase_config)||w.workload_type==="DATABRICKS_APPS")&&o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-1 text-[var(--text-secondary)]",children:"Hours/Month"}),o.jsx("input",{type:"number",min:0,max:744,value:w.hours_per_month||730,onChange:P=>q(k=>({...k,hours_per_month:parseFloat(P.target.value)||0})),className:"w-full text-sm",placeholder:"730 = 24/7"})]})]}),o.jsx(f8,{notes:w.notes,onChange:P=>q(k=>({...k,notes:P}))}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:n,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:de||!w.workload_name.trim(),className:"btn btn-primary",children:de?"Saving...":t?"Update Workload":"Add Workload"})]})]})}class G_ extends m.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("Workload render error:",t,n)}render(){return this.state.hasError?o.jsxs("div",{className:"p-4 rounded-lg border border-red-500/30 bg-red-500/10",children:[o.jsx("p",{className:"text-sm text-red-600 dark:text-red-400 mb-2",children:"Something went wrong rendering this workload."}),o.jsx("button",{onClick:()=>{var t,n;this.setState({hasError:!1,error:null}),(n=(t=this.props).onReset)==null||n.call(t)},className:"text-xs text-red-500 underline hover:no-underline",children:"Try again"})]}):this.props.children}}const m8=[{id:"aws",name:"AWS",logo:"/aws.svg",bgClass:"from-amber-600/20 to-amber-900/10"},{id:"azure",name:"Azure",logo:"/azure.svg",bgClass:"from-sky-600/20 to-sky-900/10"},{id:"gcp",name:"GCP",logo:"/gcp.svg",bgClass:"from-red-600/20 to-red-900/10"}],h8={JOBS:{icon:a3,color:"text-emerald-500",bgColor:"bg-emerald-500/10",label:"Jobs"},ALL_PURPOSE:{icon:Lu,color:"text-blue-500",bgColor:"bg-blue-500/10",label:"AP"},DLT:{icon:aD,color:"text-purple-500",bgColor:"bg-purple-500/10",label:"SDP"},DBSQL:{icon:wD,color:"text-cyan-500",bgColor:"bg-cyan-500/10",label:"DB SQL"},VECTOR_SEARCH:{icon:GD,color:"text-rose-500",bgColor:"bg-rose-500/10",label:"VS"},MODEL_SERVING:{icon:Hc,color:"text-amber-500",bgColor:"bg-amber-500/10",label:"MS"},FMAPI_DATABRICKS:{icon:Hc,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"FMAPI DBX"},FMAPI_PROPRIETARY:{icon:Hc,color:"text-pink-500",bgColor:"bg-pink-500/10",label:"FMAPI Prop"},LAKEBASE:{icon:g3,color:"text-indigo-500",bgColor:"bg-indigo-500/10",label:"Lakebase"}},K_=e=>e?h8[e]||{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:e}:{icon:Lu,color:"text-lava-600",bgColor:"bg-lava-600/10",label:"Workload"},ge=e=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e),Q_=e=>Math.abs(e)>=1e6?`$${(e/1e6).toFixed(2)}M`:Math.abs(e)>=1e3?`$${(e/1e3).toFixed(1)}K`:ge(e),cn=(e,t=2)=>new Intl.NumberFormat("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e),Y_=pn.memo(({costs:e,size:t="md",showDBUs:n=!0,isLoading:r=!1,className:s})=>{const i={sm:{cost:"text-sm",dbu:"text-[10px]"},md:{cost:"text-base",dbu:"text-xs"},lg:{cost:"text-lg",dbu:"text-xs"}};return o.jsxs("div",{className:ue("flex flex-col items-end justify-center min-w-[80px]",r&&"opacity-60",s),children:[o.jsxs("span",{className:ue("font-medium text-[var(--text-primary)] tabular-nums",i[t].cost),children:[ge(e.totalCost),r&&o.jsx("span",{className:"text-xs font-normal text-[var(--text-muted)] ml-1",children:"..."})]}),n&&o.jsxs("span",{className:ue("text-[var(--text-muted)] tabular-nums",i[t].dbu),children:[cn(e.monthlyDBUs)," DBUs/mo"]})]})}),X_={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},azure:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48},gcp:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.4,"ALL_PURPOSE_COMPUTE_(PHOTON)":.4,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,DLT_PRO_COMPUTE:.25,DLT_ADVANCED_COMPUTE:.3,"DLT_CORE_COMPUTE_(PHOTON)":.25,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,DATABASE_SERVERLESS_COMPUTE:.48}},J_={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function g8({id:e,disabled:t,children:n}){const{attributes:r,listeners:s,setNodeRef:i,transform:a,transition:l,isDragging:c}=UC({id:e,disabled:t});return o.jsx("div",{ref:i,style:{transform:Oa.Transform.toString(a),transition:l,opacity:c?.5:1,zIndex:c?50:void 0,position:"relative"},...r,children:o.jsxs("div",{className:"flex items-stretch",children:[!t&&o.jsx("div",{...s,className:"flex items-center px-1 cursor-grab active:cursor-grabbing text-[var(--text-muted)] hover:text-[var(--text-secondary)] touch-none",title:"Drag to reorder",children:o.jsx(cS,{className:"w-3.5 h-3.5"})}),o.jsx("div",{className:"flex-1 min-w-0",children:n})]})})}function Z_(){const{id:e}=ww(),t=ud(),{currentEstimate:n,lineItems:r,workloadTypes:s,fetchEstimateWithLineItems:i,fetchReferenceData:a,clearReferenceCache:l,isLoadingReferenceData:c,isReferenceDataLoaded:u,regionsMap:d,getRegionsForCloud:p,createEstimate:f,updateEstimate:h,deleteEstimate:g,deleteLineItem:v,cloneLineItem:b,setSelectedCloud:x,setSelectedRegion:y,fetchVMCostForInstance:_,getVMPrice:S,getInstanceDbuRate:R,vmPricingMap:E,instanceDbuRateMap:A,dbuRatesMap:D,fetchDBURates:z,instanceTypes:j,photonMultipliers:H,dbsqlSizes:X,modelServingGPUTypes:re,vectorSearchModes:le,getVectorSearchRate:fe,getFMAPIDatabricksRate:xe,getFMAPIProprietaryRate:oe,pricingBundle:B,isPricingBundleLoaded:Y,clearEstimateState:N,setLocalCalculatedCosts:se}=bs(),[de,L]=m.useState(!1),[be,Le]=m.useState(!1),[w,q]=m.useState(!1),[ce,_e]=m.useState(!1),[ve,at]=m.useState(!1),[Xe,I]=m.useState(null),[nt,gt]=m.useState(!1),[ot,ft]=m.useState(!1),[G,P]=m.useState(!1),[k,ie]=m.useState(!1),[M,W]=m.useState(new Set),[ke,Ne]=m.useState(new Set),[O,F]=m.useState(!1),[K,ae]=m.useState({}),[Ee,Be]=m.useState(!1),[dt,rt]=m.useState(!1),[Ge,lt]=m.useState(!1),[Ke,Ot]=m.useState(!1),[U,J]=m.useState([]),[Te,Ve]=m.useState(!1),[Q,ct]=m.useState({estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""}),[et,It]=m.useState(!!e),[pt,xt]=m.useState(!1),[St,mt]=m.useState(!1),[Ue,Oe]=m.useState("table"),[De,Pe]=m.useState("order"),[Wt,Et]=m.useState("asc"),[Se,Ct]=m.useState(new Set),[on,qi]=m.useState(!1),Wi=m.useRef({}),Od=m.useCallback(T=>{const Z=Wi.current[T];Z&&(Z.scrollIntoView({behavior:"smooth",block:"center"}),Z.style.backgroundColor="rgba(255, 54, 33, 0.1)",Z.style.transition="background-color 0.3s ease",setTimeout(()=>{Wi.current[T]&&(Wi.current[T].style.backgroundColor="")},1500))},[]),Ze=m.useCallback(()=>{F(!0)},[]);m.useEffect(()=>{const T=Z=>{O&&(Z.preventDefault(),Z.returnValue="")};return window.addEventListener("beforeunload",T),()=>window.removeEventListener("beforeunload",T)},[O]),m.useEffect(()=>{if(!Q.cloud||!Q.region||r.length===0||!Ge)return;const T=new Set;r.forEach(C=>{if(!C.serverless_enabled){if(C.workload_type==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"){const $=cl(B,Q.cloud,(C.dbsql_warehouse_type||"PRO").toUpperCase(),C.dbsql_warehouse_size||"Small");if($){const pe=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",ze=C.dbsql_driver_payment_option||C.driver_payment_option||"NA";T.add(`${$.driver_instance_type}:${pe}:${ze}`);const jt=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"on_demand",Rt=C.dbsql_worker_payment_option||C.worker_payment_option||"NA";T.add(`${$.worker_instance_type}:${jt}:${Rt}`)}return}if(C.driver_node_type){const $=C.driver_pricing_tier||"on_demand",pe=C.driver_payment_option||"NA";T.add(`${C.driver_node_type}:${$}:${pe}`)}if(C.worker_node_type){const $=C.worker_pricing_tier||"spot",pe=C.worker_payment_option||"NA";T.add(`${C.worker_node_type}:${$}:${pe}`)}}});const Z=Array.from(T).map(C=>{const[$,pe,ze]=C.split(":");return _(Q.cloud,Q.region,$,pe,ze)});if(Z.length>0){Ot(!0);const C=new Promise($=>setTimeout($,1e4));Promise.race([Promise.all(Z),C]).catch(()=>{}).finally(()=>Ot(!1))}},[Q.cloud,Q.region,r,Ge,_,B]),m.useEffect(()=>{if(!Q.cloud)return;const T=p(Q.cloud);if(T.length>0){const Z=Y?CO(B,Q.cloud):[];if(Z.length>0){const C=T.filter($=>Z.includes($.region_code));J(C)}else J(T);Ve(!1)}else u?(J([]),Ve(!1)):Ve(!0)},[Q.cloud,d,u,p,B,Y]),m.useEffect(()=>{(async()=>{if(e){Be(!0),rt(!0),lt(!1);try{await i(e)}catch(Z){console.error("Error loading estimate data:",Z)}finally{Be(!1),rt(!1),lt(!0)}}else N(),lt(!1)})()},[e,i,N]);const Vr={estimate_name:"",customer_name:"",cloud:"aws",region:"",tier:""};m.useEffect(()=>{n&&e?(ct({estimate_name:n.estimate_name,customer_name:n.customer_name||"",cloud:(n.cloud||"aws").toLowerCase(),region:n.region||"",tier:(n.tier||"").toLowerCase()}),n.cloud&&x(n.cloud.toLowerCase()),n.region&&y(n.region)):e||(ct(Vr),x("aws"),F(!1))},[n,e,x,y]),m.useEffect(()=>{Q.cloud&&Q.region&&Q.tier&&z(Q.cloud.toUpperCase(),Q.region,Q.tier.toUpperCase())},[Q.cloud,Q.region,Q.tier,z]);const Sr=!!(Q.region&&Q.tier),yn=(T,Z)=>{const C=Z?{...T,...Z}:T,$=Q.cloud||"aws",pe=Q.region,ze=Object.keys(D).length>0?D:X_[$]||X_.aws,jt=C.num_workers||0;if(!pe)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};let Rt=0;C.workload_type!=="FMAPI_DATABRICKS"&&C.workload_type!=="FMAPI_PROPRIETARY"&&(C.hours_per_month?Rt=C.hours_per_month:C.runs_per_day&&C.avg_runtime_minutes&&(Rt=C.runs_per_day*(C.avg_runtime_minutes/60)*(C.days_per_month||30)));let Ce="";const Xt=(C.dlt_edition||"CORE").toUpperCase();switch(C.workload_type){case"JOBS":C.serverless_enabled?Ce="JOBS_SERVERLESS_COMPUTE":C.photon_enabled?Ce="JOBS_COMPUTE_(PHOTON)":Ce="JOBS_COMPUTE";break;case"ALL_PURPOSE":C.serverless_enabled?Ce="ALL_PURPOSE_SERVERLESS_COMPUTE":C.photon_enabled?Ce="ALL_PURPOSE_COMPUTE_(PHOTON)":Ce="ALL_PURPOSE_COMPUTE";break;case"DLT":C.serverless_enabled?Ce="JOBS_SERVERLESS_COMPUTE":(Ce=`DLT_${Xt}_COMPUTE`,C.photon_enabled&&(Ce+="_(PHOTON)"));break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase();Ie==="SERVERLESS"?Ce="SERVERLESS_SQL_COMPUTE":Ie==="PRO"?Ce="SQL_PRO_COMPUTE":Ce="SQL_COMPUTE";break;case"VECTOR_SEARCH":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":Ce="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const vt=(C.fmapi_provider||"openai").toLowerCase();Ce=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[vt]||vt.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":Ce="DATABASE_SERVERLESS_COMPUTE";break;default:Ce="JOBS_COMPUTE"}let Tn=.2;if(Y&&Q.tier){const Ie=Dg(B,$,pe,Q.tier,Ce);Ie>0?Tn=Ie:Tn=ze[Ce]||.2}else Tn=ze[Ce]||.2;let we=0,Qe=0,We=0,As,Er,ss,te=.5,me=.5;if(Y&&C.driver_node_type){const Ie=Rm(B,$,C.driver_node_type);Ie>0&&(te=Ie)}if(!te||te===.5){const Ie=j.find(vt=>vt.id===C.driver_node_type||vt.name===C.driver_node_type);Ie!=null&&Ie.dbu_rate&&(te=Ie.dbu_rate)}if(Y&&C.worker_node_type){const Ie=Rm(B,$,C.worker_node_type);Ie>0&&(me=Ie)}if(!me||me===.5){const Ie=j.find(vt=>vt.id===C.worker_node_type||vt.name===C.worker_node_type);Ie!=null&&Ie.dbu_rate&&(me=Ie.dbu_rate)}const ln=(()=>{if(!C.serverless_enabled&&!C.photon_enabled)return 1;let Ie;if(C.serverless_enabled?C.workload_type==="JOBS"?Ie="JOBS_COMPUTE":C.workload_type==="ALL_PURPOSE"?Ie="ALL_PURPOSE_COMPUTE":C.workload_type==="DLT"?Ie="DLT_CORE_COMPUTE":Ie=Ce.replace("_(PHOTON)",""):Ie=Ce.replace("_(PHOTON)",""),Y){const Jt=cE(B,$,Ie);if(Jt!==2)return Jt}const vt=H.find(Jt=>{var bn,fr;return Jt.sku_type===Ie||((bn=Jt.sku_type)==null?void 0:bn.toLowerCase())===Ie.toLowerCase()||((fr=Jt.sku_type)==null?void 0:fr.toLowerCase().includes((T.workload_type||"").toLowerCase()))});return(vt==null?void 0:vt.multiplier)||2})(),pi=C.serverless_enabled&&(C.workload_type==="ALL_PURPOSE"||C.serverless_mode==="performance")?2:1,Cr=(C.workload_type!=="DLT",1);switch(C.workload_type){case"ALL_PURPOSE":case"JOBS":if(C.serverless_enabled)we=(te+me*jt)*ln*pi;else{we=(te+me*jt)*ln;const Ae=C.driver_pricing_tier||"on_demand",In=C.driver_payment_option||"NA",$r=C.worker_pricing_tier||"spot",fi=C.worker_payment_option||"NA",mi=S($,pe,C.driver_node_type||"",Ae,In),hi=S($,pe,C.worker_node_type||"",$r,fi);We=(mi+hi*jt)*Rt}Qe=we*Rt;break;case"DLT":if(C.serverless_enabled)we=(te+me*jt)*ln*Cr*pi;else{we=(te+me*jt)*ln*Cr;const Ae=C.driver_pricing_tier||"on_demand",In=C.driver_payment_option||"NA",$r=C.worker_pricing_tier||"spot",fi=C.worker_payment_option||"NA",mi=S($,pe,C.driver_node_type||"",Ae,In),hi=S($,pe,C.worker_node_type||"",$r,fi);We=(mi+hi*jt)*Rt}Qe=we*Rt;break;case"DBSQL":const Ie=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),vt=C.dbsql_warehouse_size||"Small",Jt=C.dbsql_num_clusters||1;let bn=J_[vt]||12;if(Y){const Ae=_O(B,$,Ie,vt);Ae&&Ae.dbu_per_hour>0&&(bn=Ae.dbu_per_hour)}if(!bn||bn===(J_[vt]||12)){const Ae=X.find(In=>In.id===vt||In.name===vt);Ae!=null&&Ae.dbu_per_hour&&(bn=Ae.dbu_per_hour)}if(we=bn*Jt,Qe=we*Rt,Ie!=="SERVERLESS"){const Ae=Y?cl(B,$,Ie,vt):null;if(Ae){const In=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",$r=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",fi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,pe,Ae.driver_instance_type,In,$r),Ja=S($,pe,Ae.worker_instance_type,fi,mi);We=(Ae.driver_count*hi+Ae.worker_count*Ja)*Jt*Rt}else if(C.driver_node_type){const In=C.dbsql_driver_pricing_tier||C.driver_pricing_tier||"on_demand",$r=C.dbsql_driver_payment_option||C.driver_payment_option||"NA",fi=C.dbsql_worker_pricing_tier||C.worker_pricing_tier||"spot",mi=C.dbsql_worker_payment_option||C.worker_payment_option||"NA",hi=S($,pe,C.driver_node_type,In,$r),Ja=C.worker_node_type?S($,pe,C.worker_node_type,fi,mi):0,bx=C.num_workers||0;We=(hi+Ja*bx)*Jt*Rt}}break;case"VECTOR_SEARCH":const fr=C.vector_search_mode||"standard",zt=C.vector_capacity_millions||1;let Dn=fr==="storage_optimized"?64e6:2e6,Zt=fr==="storage_optimized"?18.29:4;if(Y){const Ae=bO(B,$,fr);Ae&&(Dn=Ae.input_divisor,Zt=Ae.dbu_rate)}else{const Ae=fe(fr);Ae&&(Dn=Ae.input_divisor,Zt=Ae.dbu_per_hour)}const Mn=zt*1e6,st=Math.ceil(Mn/Dn);As=st,we=st*Zt,Qe=we*Rt;const it=C.vector_search_storage_gb||0,en=st*20,At=Math.max(0,it-en),Gt=.023,mn=At*Gt;it>0&&(Er=mn,ss={totalStorageGB:it,freeStorageGB:en,billableStorageGB:At,pricePerGB:Gt});break;case"MODEL_SERVING":const Zn=C.model_serving_gpu_type||"cpu";let On=2;if(Y){const Ae=wO(B,$,Zn);Ae&&Ae.dbu_rate>0&&(On=Ae.dbu_rate)}if(On===2){const Ae=re.find(In=>In.id===Zn||In.name===Zn);Ae!=null&&Ae.dbu_per_hour&&(On=Ae.dbu_per_hour)}const er=C.model_serving_scale_out||"small",Ul=er==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[er]||4;we=On*Ul,Qe=we*Rt;break;case"LAKEBASE":const Vl=C.lakebase_cu||1,zl=C.lakebase_ha_nodes||1,$l={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},e2=($l[$]||$l.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;we=Vl*e2*zl,Qe=we*Rt;const Hl=Math.min(C.lakebase_storage_gb||0,8192),t2=C.lakebase_pitr_gb||0,n2=C.lakebase_snapshot_gb||0,ql=.023,r2=Hl*15*ql,s2=t2*8.7*ql,i2=n2*3.91*ql,vx=r2+s2+i2;vx>0&&(Er=vx,ss={totalStorageGB:Hl,billableStorageGB:Hl,dsuPerGB:15,totalDSU:Hl*15,pricePerDSU:ql});break;case"FMAPI_DATABRICKS":const a2=C.fmapi_quantity||0,Xa=C.fmapi_rate_type||"input_token",yx=["provisioned_scaling","provisioned_entry"].includes(Xa);let Ls=null;if(Y&&C.fmapi_model){const Ae=kO(B,$,C.fmapi_model,Xa);Ae&&(Ls=Ae.dbu_rate)}if(Ls===null&&C.fmapi_model){const Ae=xe(C.fmapi_model,Xa);Ae&&(yx?Ls=Ae.dbu_per_hour||null:Ls=Ae.dbu_per_1M_tokens||null)}Ls===null&&(yx?Ls=Xa==="provisioned_scaling"?200:50:Ls=Xa==="output_token"?3:1),Qe=a2*Ls;break;case"FMAPI_PROPRIETARY":const o2=C.fmapi_quantity||0,Wl=C.fmapi_rate_type||"input_token",_x=Wl==="provisioned_scaling";let jr=null;if(Y&&C.fmapi_provider&&C.fmapi_model){const Ae=C.fmapi_endpoint_type||"global",In=C.fmapi_context_length||"long",$r=SO(B,$,C.fmapi_provider,C.fmapi_model,Ae,In,Wl);$r&&(jr=$r.dbu_rate)}if(jr===null&&C.fmapi_provider&&C.fmapi_model){const Ae=oe(C.fmapi_provider,C.fmapi_model,Wl);Ae&&(_x?jr=Ae.dbu_per_hour||null:jr=Ae.dbu_per_1M_tokens||null)}if(jr===null)if(_x)jr=150;else switch(Wl){case"output_token":jr=6;break;case"cache_read":jr=.5;break;case"cache_write":jr=1;break;default:jr=2}Qe=o2*jr;break;default:Qe=0}const pr=isNaN(Tn)||Tn===void 0?0:Tn,Ts=isNaN(Qe)||Qe===void 0?0:Qe,Ln=isNaN(We)||We===void 0?0:We,_n=Er!==void 0&&!isNaN(Er)?Er:0,zr=Ts*pr,as=zr+Ln+_n;return{monthlyDBUs:Ts,dbuCost:isNaN(zr)?0:zr,vmCost:Ln,totalCost:isNaN(as)?0:as,unitsUsed:As,dbuPerHour:we,dbuPrice:pr,storageCost:_n>0?_n:void 0,storageDetails:ss}},Pt=m.useMemo(()=>{let T=0,Z=0,C=0,$=0;return r.forEach(pe=>{const ze=yn(pe);T+=isNaN(ze.monthlyDBUs)?0:ze.monthlyDBUs,Z+=isNaN(ze.dbuCost)?0:ze.dbuCost,C+=isNaN(ze.vmCost)?0:ze.vmCost,$+=isNaN(ze.totalCost)?0:ze.totalCost}),{totalDBUs:T,totalDBUCost:Z,totalVMCost:C,totalCost:$}},[r,Q.cloud,Q.region,Q.tier,s,S,E,R,A,j,H,D,X,re,le,fe,xe,oe,B,Y]);m.useEffect(()=>{const T={};r.forEach(Z=>{const C=yn(Z,K[Z.line_item_id]);T[Z.line_item_id]={total:isNaN(C.totalCost)?0:C.totalCost,dbu:isNaN(C.dbuCost)?0:C.dbuCost,vm:isNaN(C.vmCost)?0:C.vmCost,dbus:isNaN(C.monthlyDBUs)?0:C.monthlyDBUs}}),se(T)},[r,K,Q.cloud,Q.region,Q.tier,se,S,E,R,A,j,H,D,X,re,le,fe,xe,oe,B,Y]);const An=m.useMemo(()=>{const T=[...r];return De==="order"?T.sort((Z,C)=>(Z.display_order??0)-(C.display_order??0)):De==="name"?T.sort((Z,C)=>(Z.workload_name||"").localeCompare(C.workload_name||"")):De==="type"?T.sort((Z,C)=>(Z.workload_type||"").localeCompare(C.workload_type||"")):De==="cost"&&T.sort((Z,C)=>{const $=yn(Z).totalCost,pe=yn(C).totalCost;return $-pe}),Wt==="desc"&&T.reverse(),T},[r,De,Wt,yn]),rs=T=>{De===T?Et(Z=>Z==="asc"?"desc":"asc"):(Pe(T),Et(T==="cost"?"desc":"asc"))},Il=yC($u(Ld,{activationConstraint:{distance:5}}),$u(Td)),lx=De==="order",HC=m.useCallback(async T=>{const{active:Z,over:C}=T;if(!C||Z.id===C.id||!e)return;const $=An.findIndex(Xt=>Xt.line_item_id===Z.id),pe=An.findIndex(Xt=>Xt.line_item_id===C.id);if($===-1||pe===-1)return;const ze=[...An],[jt]=ze.splice($,1);ze.splice(pe,0,jt);const{lineItems:Rt}=bs.getState(),Ce=Rt.map(Xt=>{const Tn=ze.findIndex(we=>we.line_item_id===Xt.line_item_id);return Tn>=0?{...Xt,display_order:Tn}:Xt});bs.setState({lineItems:Ce});try{await Q4(e,ze.map(Xt=>Xt.line_item_id))}catch{$e.error("Failed to save reorder")}},[An,e]),cx=async()=>{if(!Q.estimate_name.trim()){$e.error("Enter an estimate name");return}if(!Q.region){$e.error("Select a region");return}if(!Q.tier){$e.error("Select a Databricks tier");return}L(!0);try{const T={...Q,cloud:Q.cloud.toUpperCase(),tier:Q.tier.toUpperCase()};if(e&&n)await h(e,T),F(!1),$e.success("All changes saved");else{const Z=await f(T);F(!1),t(`/calculator/${Z.estimate_id}`,{replace:!0}),$e.success("Estimate created")}}catch{$e.error("Failed to save")}finally{L(!1)}},qC=async()=>{if(e){Le(!0);try{const T=await GS(e),Z=`${Q.estimate_name.replace(/\s+/g,"_")}_${new Date().toISOString().split("T")[0]}.xlsx`;Km.saveAs(T,Z),$e.success("Exported to Excel")}catch{$e.error("Export failed")}finally{Le(!1)}}},WC=async()=>{if(e){q(!0),_e(!1);try{await g(e),$e.success("Estimate deleted"),t("/",{replace:!0})}catch{$e.error("Failed to delete estimate"),q(!1)}}},GC=async()=>{l(),$e.loading("Refreshing pricing data...",{id:"refresh-data"});try{await a(!0),$e.success("Pricing data refreshed",{id:"refresh-data"})}catch{$e.error("Failed to refresh data",{id:"refresh-data"})}},ux=T=>{I(T),at(!0)},KC=async()=>{if(Xe){ft(!0);try{await v(Xe.line_item_id),$e.success("Workload removed")}catch{$e.error("Failed to delete")}finally{ft(!1),at(!1),I(null)}}},dx=()=>{Se.size!==0&>(!0)},QC=async()=>{ft(!0);try{let T=0;for(const Z of Se)await v(Z),T++;$e.success(`${T} workload(s) deleted`),Ct(new Set)}catch{$e.error("Failed to delete some workloads")}finally{ft(!1),gt(!1)}},YC=T=>{Ct(Z=>{const C=new Set(Z);return C.has(T)?C.delete(T):C.add(T),C})},XC=()=>{Se.size===r.length?Ct(new Set):Ct(new Set(r.map(T=>T.line_item_id)))},px=()=>{qi(!1),Ct(new Set)},fx=async(T,Z)=>{T.stopPropagation();try{await b(Z.line_item_id)&&$e.success(`Workload "${Z.workload_name}" cloned`)}catch{$e.error("Failed to clone workload")}},JC=()=>{O?P(!0):t("/")},ZC=()=>{P(!1),t("/")},mx=T=>{const Z=new Set(M);Z.has(T)?Z.delete(T):Z.add(T),W(Z)},Fl=(T,Z=!1)=>{const C=new Set(ke);if(C.has(T))C.delete(T);else if(C.add(T),Z&&!M.has(T)){const $=new Set(M);$.add(T),W($)}Ne(C)},hx=T=>T.hours_per_month?`${T.hours_per_month}h/month`:T.runs_per_day?`${T.runs_per_day} runs/day × ${T.avg_runtime_minutes||30}min`:null,gx=T=>{const Z=[];switch(["JOBS","ALL_PURPOSE","DLT"].includes(T.workload_type||"")&&T.serverless_enabled&&Z.push({label:"Mode",value:T.serverless_mode==="performance"?"Performance":"Standard"}),T.workload_type){case"VECTOR_SEARCH":T.vector_search_mode&&Z.push({label:"Mode",value:T.vector_search_mode==="storage_optimized"?"Storage Optimized":"Standard"}),T.vector_capacity_millions&&Z.push({label:"Capacity",value:`${T.vector_capacity_millions}M vectors`});break;case"MODEL_SERVING":if(T.model_serving_gpu_type){const C={cpu:"CPU",gpu_small_t4:"GPU Small (T4)",gpu_medium_a10g_1x:"GPU Medium (A10G)",gpu_large_a10g_4x:"GPU Large (4x A10G)",gpu_medium_a100_1x:"GPU A100",gpu_large_a100_2x:"GPU A100 (2x)",gpu_small:"GPU Small",gpu_medium:"GPU Medium",gpu_large:"GPU Large"};Z.push({label:"Endpoint",value:C[T.model_serving_gpu_type]||T.model_serving_gpu_type})}break;case"LAKEBASE":T.lakebase_cu&&Z.push({label:"CU",value:`${T.lakebase_cu}`}),T.lakebase_ha_nodes&&Z.push({label:"Nodes",value:`${T.lakebase_ha_nodes}${T.lakebase_ha_nodes>1?" (HA)":""}`}),T.lakebase_storage_gb&&T.lakebase_storage_gb>0&&Z.push({label:"Storage",value:`${T.lakebase_storage_gb.toLocaleString()} GB`});break;case"FMAPI_DATABRICKS":if(T.fmapi_model&&Z.push({label:"Model",value:T.fmapi_model}),T.fmapi_rate_type){const C={input_token:"Input Tokens",output_token:"Output Tokens",provisioned_scaling:"Provisioned Scaling",provisioned_entry:"Provisioned Entry"};Z.push({label:"Rate",value:C[T.fmapi_rate_type]||T.fmapi_rate_type})}if(T.fmapi_quantity){const C=["provisioned_scaling","provisioned_entry"].includes(T.fmapi_rate_type||"");Z.push({label:C?"Hours":"Quantity",value:C?`${T.fmapi_quantity}h/mo`:`${T.fmapi_quantity}M`})}break;case"FMAPI_PROPRIETARY":if(T.fmapi_provider&&T.fmapi_model&&Z.push({label:"Model",value:`${T.fmapi_provider}/${T.fmapi_model}`}),T.fmapi_rate_type){const C={input_token:"Input",output_token:"Output",cache_read:"Cache Read",cache_write:"Cache Write"};Z.push({label:"Rate",value:C[T.fmapi_rate_type]||T.fmapi_rate_type})}T.fmapi_quantity&&Z.push({label:"Quantity",value:`${T.fmapi_quantity}M tokens`});break;case"DLT":T.dlt_edition&&Z.push({label:"Edition",value:T.dlt_edition});break;case"DBSQL":T.dbsql_warehouse_type&&Z.push({label:"Type",value:T.dbsql_warehouse_type}),T.dbsql_warehouse_size&&Z.push({label:"Size",value:T.dbsql_warehouse_size}),T.dbsql_num_clusters&&T.dbsql_num_clusters>1&&Z.push({label:"Clusters",value:`${T.dbsql_num_clusters}`});break}return Z},Bl=Q.estimate_name.trim()&&Q.region&&Q.tier,xx=()=>{const T=[];return Q.estimate_name.trim()||T.push("Estimate Name"),Q.region||T.push("Region"),Q.tier||T.push("Databricks Tier"),T};return w?o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:o.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4",children:[o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-red-500 animate-spin"}),o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Deleting estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"You will be redirected shortly"})]})}):e&&Ee&&!n?o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[o.jsx("button",{onClick:()=>t("/"),className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ny,{className:"w-5 h-5"})}),o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[o.jsxs("div",{className:"card p-5",children:[o.jsx("div",{className:"h-5 w-32 bg-[var(--bg-tertiary)] rounded animate-pulse mb-4"}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-6",children:[1,2,3].map(T=>o.jsx("div",{className:"h-16 bg-[var(--bg-tertiary)] rounded-xl animate-pulse"},T))}),o.jsx("div",{className:"space-y-4",children:[1,2,3].map(T=>o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"},T))})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"h-6 w-28 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"card p-8",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading estimate..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Please wait while we fetch your data"})]})]})})]})]}),o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 space-y-4",children:[o.jsx("div",{className:"h-5 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-24 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-12 bg-[var(--bg-tertiary)] rounded animate-pulse"})]})})]})]}):o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{onClick:JC,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] transition-colors",children:o.jsx(ny,{className:"w-5 h-5"})}),o.jsx("div",{children:Ee&&e?o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"h-7 w-48 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-4 w-20 bg-[var(--bg-tertiary)] rounded animate-pulse"})]}):o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",value:Q.estimate_name,onChange:T=>{ct(Z=>({...Z,estimate_name:T.target.value})),Ze()},placeholder:"Untitled Estimate",title:Q.estimate_name,className:"text-xl font-semibold bg-transparent border-none p-0 focus:ring-0 w-full min-w-[200px] text-[var(--text-primary)] placeholder-[var(--text-muted)]"}),n&&o.jsxs("p",{className:"text-xs mt-0.5 text-[var(--text-muted)]",children:["Version ",n.version]})]})}),O&&o.jsxs("span",{className:"flex items-center gap-1 text-xs text-lava-600 font-medium",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{onClick:GC,disabled:c,title:"Refresh pricing data from server",className:"btn btn-ghost text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:o.jsx(Yr,{className:ue("w-4 h-4",c&&"animate-spin")})}),o.jsxs("button",{onClick:qC,disabled:be||!e,className:"btn btn-secondary",children:[o.jsx($c,{className:"w-4 h-4"}),o.jsx("span",{className:"hidden sm:inline",children:"Excel"})]}),e&&o.jsx("button",{onClick:()=>_e(!0),disabled:w,title:"Delete this estimate",className:"btn btn-ghost text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20",children:o.jsx(tn,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:ue("grid grid-cols-1 gap-6",pt?"lg:grid-cols-1":"lg:grid-cols-4"),children:[o.jsxs("div",{className:ue("space-y-6",pt?"lg:col-span-1":"lg:col-span-3"),children:[o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card",children:[o.jsxs("div",{className:"px-4 py-3 cursor-pointer hover:bg-[var(--bg-tertiary)]/50 transition-colors flex items-center justify-between",onClick:()=>It(!et),children:[o.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 bg-lava-600/10",children:o.jsx(Lu,{className:"w-4 h-4 text-lava-600"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:"Configuration"}),o.jsxs("p",{className:"text-[11px] text-[var(--text-muted)] truncate",title:`${Q.cloud.toUpperCase()} • ${Q.region||"No region"} • ${Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier"}${Q.customer_name?` • ${Q.customer_name}`:""}`,children:[Q.cloud.toUpperCase()," • ",Q.region||"No region"," • ",Q.tier?Q.tier.charAt(0).toUpperCase()+Q.tier.slice(1):"No tier",Q.customer_name&&` • ${Q.customer_name}`]})]})]}),o.jsx("button",{className:"p-1 rounded hover:bg-[var(--bg-tertiary)] transition-colors flex-shrink-0 ml-2",children:et?o.jsx(rr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(ps,{className:"w-4 h-4 text-[var(--text-muted)]"})})]}),!et&&o.jsxs("div",{className:"px-4 pb-3 space-y-3 border-t border-[var(--border-primary)]",children:[o.jsxs("div",{className:"pt-3 space-y-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium mb-2 text-[var(--text-secondary)]",children:"Cloud Provider"}),Ee&&e?o.jsx("div",{className:"grid grid-cols-3 gap-3",children:[1,2,3].map(T=>o.jsx("div",{className:"py-2.5 px-3 rounded-lg border-2 border-dashed border-[var(--border-secondary)]",children:o.jsx("div",{className:"h-5 w-14 mx-auto bg-[var(--bg-tertiary)] rounded animate-pulse"})},T))}):o.jsxs(o.Fragment,{children:[r.length>0&&o.jsxs("div",{className:"mb-2 text-xs text-amber-500 flex items-center gap-1",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Cloud provider locked. Remove all workloads to change."]}),o.jsx("div",{className:"grid grid-cols-3 gap-3",children:m8.map(T=>{const Z=r.length>0&&Q.cloud!==T.id;return o.jsxs("button",{disabled:Z,onClick:C=>{C.stopPropagation(),!Z&&(ct($=>({...$,cloud:T.id,region:"",tier:T.id==="azure"&&$.tier==="enterprise"?"":$.tier})),x(T.id),Ze())},className:ue("relative py-2.5 px-3 rounded-lg border-2 transition-all text-center",Q.cloud===T.id?"border-lava-600 bg-lava-600/10":"border-dashed border-[var(--border-secondary)]",Z?"opacity-40 cursor-not-allowed":Q.cloud!==T.id&&"hover:border-lava-600/50 hover:bg-lava-600/5"),title:Z?"Remove all workloads to change cloud provider":void 0,children:[o.jsx("div",{className:ue("text-sm font-semibold",Q.cloud===T.id?"text-lava-600":"text-[var(--text-primary)]"),children:T.name}),Q.cloud===T.id&&o.jsx("div",{className:"absolute top-1.5 right-1.5",children:o.jsx(Ws,{className:"w-3.5 h-3.5 text-lava-600"})})]},T.id)})})]})]}),Ee&&e?o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-16 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]}),o.jsxs("div",{children:[o.jsx("div",{className:"h-4 w-24 bg-[var(--bg-tertiary)] rounded animate-pulse mb-1.5"}),o.jsx("div",{className:"h-10 w-full bg-[var(--bg-tertiary)] rounded animate-pulse"})]})]}):o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",onClick:T=>T.stopPropagation(),children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Region ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:Q.region,onChange:T=>{ct(Z=>({...Z,region:T.target.value})),y(T.target.value),Ze()},className:ue("w-full text-sm",!Q.region&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:Te?"Loading regions...":"Select region"}),U.map(T=>o.jsxs("option",{value:T.region_code,children:[T.region_code," (",T.sku_region,")"]},T.region_code))]})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-xs font-medium mb-1.5 text-[var(--text-secondary)]",children:["Databricks Tier ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsxs("select",{value:Q.tier,onChange:T=>{ct(Z=>({...Z,tier:T.target.value})),Ze()},className:ue("w-full text-sm",!Q.tier&&"border-lava-600/50 ring-1 ring-lava-600/30"),children:[o.jsx("option",{value:"",children:"Select tier"}),o.jsx("option",{value:"premium",children:"Premium"}),Q.cloud!=="azure"&&o.jsx("option",{value:"enterprise",children:"Enterprise"})]})]})]})]}),o.jsxs("div",{className:"border-t border-[var(--border-primary)] pt-4 flex items-center justify-between",children:[o.jsx("div",{className:"text-xs text-[var(--text-muted)]",children:O?o.jsxs("span",{className:"text-amber-500 flex items-center gap-1",children:[o.jsx(fs,{className:"w-3.5 h-3.5"}),"Unsaved changes"]}):e?o.jsxs("span",{className:"text-green-500 flex items-center gap-1",children:[o.jsx(Ws,{className:"w-3.5 h-3.5"}),"All changes saved"]}):null}),o.jsxs("button",{onClick:cx,disabled:de||!Bl,title:Bl?void 0:`Missing: ${xx().join(", ")}`,className:ue("btn btn-primary",O&&"ring-2 ring-lava-600/50 ring-offset-2 ring-offset-[var(--bg-primary)]"),children:[o.jsx(Ws,{className:"w-4 h-4"}),de?"Saving...":e?"Save Configuration":"Create Estimate"]})]})]})]}),o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2 text-[var(--text-primary)]",children:[o.jsx(m3,{className:"w-5 h-5 text-lava-600"}),"Workloads",o.jsxs("span",{className:"ml-1 text-sm font-normal text-[var(--text-muted)]",children:["(",r.length,")"]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[r.length>0&&o.jsx(o.Fragment,{children:on?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[Se.size," selected"]}),o.jsxs("button",{onClick:dx,disabled:Se.size===0,className:ue("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors",Se.size>0?"text-red-600 dark:text-red-400 bg-red-500/10 hover:bg-red-500/20":"text-[var(--text-muted)] bg-[var(--bg-tertiary)] cursor-not-allowed"),children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsx("button",{onClick:px,className:"p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)]",title:"Cancel selection",children:o.jsx(Ta,{className:"w-4 h-4"})})]}):o.jsx("button",{onClick:()=>qi(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-lg transition-colors",children:"Select"})}),r.length>0&&o.jsxs("div",{className:"flex items-center gap-1 bg-[var(--bg-tertiary)] rounded-lg p-0.5",children:[o.jsx("button",{onClick:()=>Oe("table"),className:ue("p-1.5 rounded-md transition-colors",Ue==="table"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Table view (default)",children:o.jsx(k3,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Oe("cards"),className:ue("p-1.5 rounded-md transition-colors",Ue==="cards"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Compact cards",children:o.jsx(Pg,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>Oe("expanded"),className:ue("p-1.5 rounded-md transition-colors",Ue==="expanded"?"bg-[var(--bg-primary)] text-lava-600 shadow-sm":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),title:"Expanded cards with details",children:o.jsx(iy,{className:"w-4 h-4"})})]}),Sr&&e&&o.jsxs("button",{onClick:()=>ie(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-lava-600 hover:bg-lava-700 rounded-lg transition-colors shadow-sm",children:[o.jsx(Du,{className:"w-4 h-4"}),"Add"]})]})]}),e?dt&&!Ge?o.jsx("div",{className:"card p-8 text-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx("div",{className:"relative",children:o.jsx("div",{className:"w-12 h-12 rounded-full border-4 border-[var(--border-primary)] border-t-lava-600 animate-spin"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:"Loading workloads..."}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] mt-1",children:"Fetching line items for this estimate"})]})]})}):o.jsxs(o.Fragment,{children:[Ue==="table"&&r.length>0&&o.jsxs("div",{className:"card overflow-hidden divide-y divide-[var(--border-primary)]",children:[o.jsxs("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 py-2 px-3 bg-[var(--bg-tertiary)] text-xs font-medium text-[var(--text-muted)]",children:[on&&o.jsx("div",{className:"col-span-1 flex items-center",children:o.jsx("input",{type:"checkbox",checked:Se.size===r.length&&r.length>0,onChange:XC,className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("button",{onClick:()=>rs("name"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors",on?"col-span-3":"col-span-4"),children:["Workload",De==="name"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>rs("type"),className:ue("flex items-center gap-1 cursor-pointer hover:text-[var(--text-primary)] transition-colors","col-span-4"),children:["Configuration",De==="type"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]}),o.jsxs("button",{onClick:()=>rs("cost"),className:"col-span-4 flex items-center gap-1 justify-end cursor-pointer hover:text-[var(--text-primary)] transition-colors",children:["Cost",De==="cost"&&(Wt==="asc"?o.jsx(Sp,{className:"w-3 h-3"}):o.jsx(kp,{className:"w-3 h-3"}))]})]}),o.jsx(LC,{sensors:Il,collisionDetection:_C,onDragEnd:HC,modifiers:[VC],children:o.jsx(FC,{items:An.map(T=>T.line_item_id),strategy:MC,children:An.map(T=>{var As,Er,ss;const Z=K[T.line_item_id],C=Z?{...T,...Z}:T,$=yn(T,Z),pe=K_(C.workload_type),ze=pe.icon,jt=M.has(T.line_item_id),Rt=Se.has(T.line_item_id),Ce=C.workload_type||"",Xt=C.serverless_enabled||Ce==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",Tn=((As=s.find(te=>te.workload_type===Ce))==null?void 0:As.display_name)||Ce,we=hx(C),We=(()=>{const te={badges:[],details:[]};if(Xt&&te.badges.push({text:"Serverless",accent:!0}),C.photon_enabled&&te.badges.push({text:"⚡ Photon",accent:!0}),["JOBS","ALL_PURPOSE","DLT"].includes(Ce))Xt||(C.driver_node_type&&(te.driver=C.driver_node_type),C.num_workers&&C.worker_node_type&&(te.workers={count:C.num_workers,type:C.worker_node_type})),Ce==="DLT"&&C.dlt_edition&&te.badges.push({text:C.dlt_edition});else if(Ce==="DBSQL")C.dbsql_warehouse_type&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS"&&te.badges.push({text:(C.dbsql_warehouse_type||"").toUpperCase()}),C.dbsql_warehouse_size&&te.details.push(C.dbsql_warehouse_size),C.dbsql_num_clusters&&C.dbsql_num_clusters>1&&te.details.push(`${C.dbsql_num_clusters} clusters`);else if(Ce==="VECTOR_SEARCH"){if(C.vector_search_mode){const me=C.vector_search_mode==="storage_optimized"?"Storage Opt.":"Standard";te.badges.push({text:me})}C.vector_capacity_millions&&te.details.push(`${C.vector_capacity_millions}M vectors`)}else if(Ce==="MODEL_SERVING")C.model_serving_gpu_type&&te.details.push(C.model_serving_gpu_type);else if(Ce==="FMAPI_DATABRICKS"||Ce==="FMAPI_PROPRIETARY"){if(C.fmapi_rate_type){const me=["provisioned_scaling","provisioned_entry"].includes(C.fmapi_rate_type);te.badges.push({text:me?"Provisioned":"Token"})}C.fmapi_provider&&Ce==="FMAPI_PROPRIETARY"&&te.details.push(C.fmapi_provider),C.fmapi_model&&te.details.push(C.fmapi_model)}else Ce==="LAKEBASE"&&(C.lakebase_cu&&te.details.push(`CU ${C.lakebase_cu}`),C.lakebase_ha_nodes&&C.lakebase_ha_nodes>0&&te.badges.push({text:`HA ×${C.lakebase_ha_nodes}`}),C.lakebase_storage_gb&&C.lakebase_storage_gb>0&&te.details.push(`${C.lakebase_storage_gb.toLocaleString()} GB`));return te})();return o.jsx(g8,{id:T.line_item_id,disabled:!lx,children:o.jsxs("div",{ref:te=>{Wi.current[T.line_item_id]=te},children:[o.jsxs("div",{className:ue("grid grid-cols-12 gap-2 py-3 px-3 cursor-pointer hover:bg-[var(--bg-hover)] transition-all",Rt&&on&&"bg-lava-600/5",jt&&"bg-[var(--bg-tertiary)]"),onClick:()=>mx(T.line_item_id),children:[on&&o.jsx("div",{className:"col-span-1 flex items-center",onClick:te=>te.stopPropagation(),children:o.jsx("input",{type:"checkbox",checked:Rt,onChange:()=>YC(T.line_item_id),className:"w-3.5 h-3.5 rounded border-[var(--border-primary)] text-lava-600 focus:ring-lava-600"})}),o.jsxs("div",{className:ue("flex items-center gap-3",on?"col-span-4 sm:col-span-3":"col-span-5 sm:col-span-4"),children:[o.jsx("div",{className:ue("w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",pe.bgColor),children:o.jsx(ze,{className:ue("w-4 h-4",pe.color)})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-[var(--text-primary)] text-sm truncate",title:T.workload_name,children:T.workload_name}),o.jsx("p",{className:"text-xs text-[var(--text-muted)] truncate",title:Tn,children:Tn})]})]}),o.jsxs("div",{className:"hidden sm:flex col-span-4 items-center gap-2 min-w-0",children:[We.badges.length>0&&o.jsx("div",{className:"flex items-center gap-1 shrink-0",children:We.badges.map((te,me)=>o.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me))}),(We.driver||We.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono truncate",title:`Driver: ${We.driver||"N/A"}, Workers: ${((Er=We.workers)==null?void 0:Er.count)||0}× ${((ss=We.workers)==null?void 0:ss.type)||"N/A"}`,children:(()=>{const te=We.driver,me=We.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),We.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] truncate",title:We.details.join(" · "),children:We.details.join(" · ")})]}),o.jsxs("div",{className:"col-span-7 sm:col-span-4 flex items-center justify-end gap-3",children:[o.jsx(Y_,{costs:$,size:"sm",isLoading:(()=>{const te=!C.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(Ce)||Ce==="DBSQL"&&(C.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&te&&$.vmCost===0})()}),o.jsxs("div",{className:"flex items-center gap-0.5",children:[o.jsx("button",{onClick:te=>{te.stopPropagation(),Fl(T.line_item_id,!0)},className:ue("p-1.5 rounded transition-colors",ke.has(T.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:ke.has(T.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(hc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>fx(te,T),className:"p-1.5 rounded text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:te=>{te.stopPropagation(),ux(T)},className:"p-1.5 rounded text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete",children:o.jsx(tn,{className:"w-4 h-4"})}),o.jsx("div",{className:ue("p-1 rounded transition-colors",jt?"bg-lava-600/10":"hover:bg-[var(--bg-tertiary)]"),children:jt?o.jsx(ps,{className:"w-5 h-5 text-lava-600"}):o.jsx(rr,{className:"w-5 h-5 text-[var(--text-muted)]"})})]})]})]}),!jt&&(We.badges.length>0||We.driver||We.workers||We.details.length>0)&&o.jsxs("div",{className:"sm:hidden px-3 pb-2 flex items-center gap-2 pl-12 flex-wrap",children:[We.badges.map((te,me)=>o.jsx("span",{className:ue("px-1.5 py-0.5 rounded text-[10px] font-medium",te.accent?"bg-lava-600/10 text-lava-700 dark:text-lava-500":"bg-[var(--bg-tertiary)] text-[var(--text-muted)]"),children:te.text},me)),(We.driver||We.workers)&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)] font-mono",children:(()=>{const te=We.driver,me=We.workers;return te&&me?te===me.type?`${me.count+1}× ${me.type}`:`${te} + ${me.count}× ${me.type}`:me?`${me.count}× ${me.type}`:te||""})()}),We.details.length>0&&o.jsx("span",{className:"text-[11px] text-[var(--text-secondary)]",children:We.details.join(" · ")})]}),jt&&o.jsxs("div",{className:"bg-[var(--bg-secondary)] px-4 pt-3 pb-2 border-b border-[var(--border-primary)]",children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge($.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(Ce)&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge($.vmCost)})]}),Ce==="LAKEBASE"&&$.storageCost!==void 0&&$.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:ge($.storageCost)})]}),Ce==="VECTOR_SEARCH"&&$.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[$.unitsUsed," unit",$.unitsUsed!==1?"s":""]})]}),["JOBS","ALL_PURPOSE","DLT"].includes(Ce)&&!Xt&&o.jsxs(o.Fragment,{children:[C.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:C.driver_node_type})]}),C.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[C.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:C.worker_node_type})]})]})]}),gx(C).map((te,me)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:te.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:te.value})]},me)),we&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:we})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:te=>{te.stopPropagation(),Fl(T.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(hc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:ke.has(T.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),ke.has(T.line_item_id)?o.jsx(ps,{className:"w-3 h-3"}):o.jsx(rr,{className:"w-3 h-3"})]}),ke.has(T.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const te=C.runs_per_day&&C.avg_runtime_minutes&&!C.hours_per_month,me=C.runs_per_day||0,is=C.avg_runtime_minutes||30,ln=C.days_per_month||30,pi=C.hours_per_month||730,Vt=te?me*(is/60)*ln:pi,pr=($.dbuPrice||0).toFixed(2);if(Ce==="VECTOR_SEARCH"){const st=C.vector_capacity_millions||1,it=C.vector_search_mode||"standard",en=it==="storage_optimized"?64:2,At=Math.ceil(st/en),Gt=it==="storage_optimized"?18.29:4,mn=C.vector_search_storage_gb||0,Zn=At*20,On=Math.max(0,mn-Zn),er=On*.023;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M"]})," vectors ÷ ",en,"M⌉"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At," unit",At!==1?"s":""]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Gt.toFixed(2)," DBU/hr/unit"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge($.dbuCost)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[Zn," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",At," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[On," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(er)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),mn>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(er)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})}if(Ce==="FMAPI_DATABRICKS"||Ce==="FMAPI_PROPRIETARY"){const st=C.fmapi_quantity||1,it=C.fmapi_rate_type||"input_token",en=["provisioned_scaling","provisioned_entry"].includes(it),At=st>0?$.monthlyDBUs/st:0,Gt=C.fmapi_model||"model",mn=C.fmapi_provider||"";return o.jsx("div",{className:"space-y-1",children:o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),en?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," hours/mo"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[At.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Gt,")"]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[At.toFixed(2)," DBU/M"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",mn?`${mn}/`:"",Gt,")"]})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})})}if(Ce==="LAKEBASE"){const st=C.lakebase_cu||1,it=C.lakebase_ha_nodes||1,en={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Gt=(en[Q.cloud||"aws"]||en.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213,mn=C.lakebase_storage_gb||0,Zn=C.lakebase_pitr_gb||0,On=C.lakebase_snapshot_gb||0,er=.023,Ya=mn*15*er,Ul=Zn*8.7*er,Vl=On*3.91*er,zl=Ya+Ul+Vl,$l=zl>0;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Gt," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge($.dbuCost)})]}),mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(mn*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Ya)})]}),Zn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Zn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Ul)})]}),On>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[On," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(On*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",er,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Vl)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),$l&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(zl)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})}if(Ce==="MODEL_SERVING"){const st=C.model_serving_gpu_type||"cpu",it=C.model_serving_scale_out||"small",At=it==="custom"?C.model_serving_concurrency||4:{small:4,medium:12,large:40}[it]||4,Gt=At>0&&$.dbuPerHour?$.dbuPerHour/At:2;return o.jsxs("div",{className:"space-y-1",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Gt.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",st,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[At," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",it,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})]})}if(Ce==="DBSQL"){const st=C.dbsql_warehouse_size||"Small",it=C.dbsql_num_clusters||1,en=(C.dbsql_warehouse_type||"SERVERLESS").toUpperCase(),At=$.dbuPerHour?$.dbuPerHour/it:12,Gt=$.vmCost>0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:st}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",At.toFixed(1)," DBU/hr)"]}),it>1&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," clusters"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",title:te?`${me} runs × ${is}min ÷ 60 × ${ln} days`:void 0,children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge($.dbuCost)})]}),Gt&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsxs("span",{children:[en," warehouse VM costs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge($.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-600",children:ge($.dbuCost)}),Gt&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-600",children:ge($.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"font-semibold",children:ge($.totalCost)})]})]})}const Ts=C.num_workers||0,Ln=C.driver_node_type||"",_n=C.worker_node_type||"",zr=C.photon_enabled,as=$.vmCost>0&&!Xt,Ie=Q.cloud||"aws",vt=Q.region||"",Jt=j.find(st=>st.id===Ln||st.name===Ln),bn=j.find(st=>st.id===_n||st.name===_n),fr=R(Ie,Ln)||(Jt==null?void 0:Jt.dbu_rate)||0,zt=R(Ie,_n)||(bn==null?void 0:bn.dbu_rate)||0,Dn=vt&&Ln?S(Ie,vt,Ln,C.driver_pricing_tier||"on_demand",C.driver_payment_option||"no_upfront"):null,Zt=vt&&_n?S(Ie,vt,_n,C.worker_pricing_tier||"spot",C.worker_payment_option||"NA"):null,Mn=$.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[te&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[is,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ln," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[Vt.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Xt?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",zr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Ln,children:fr.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:_n,children:zt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),o.jsx("span",{children:")"}),zr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn($.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",pr,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge($.dbuCost)})]}),as&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Ln,children:["$",(Dn==null?void 0:Dn.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:_n,children:["$",(Zt==null?void 0:Zt.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:Ts}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Vt.toFixed(te?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge($.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge($.dbuCost)}),as&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:ge($.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge($.totalCost)})]})]})})()})]})]}),jt&&o.jsx("div",{className:"bg-[var(--bg-secondary)] border-b-2 border-lava-600/20 p-4",children:o.jsx(G_,{onReset:()=>{W(te=>{const me=new Set(te);return me.delete(T.line_item_id),me})},children:o.jsx(rf,{estimateId:e,lineItem:T,onClose:()=>{W(te=>{const me=new Set(te);return me.delete(T.line_item_id),me}),ae(te=>{const me={...te};return delete me[T.line_item_id],me})},onSave:()=>{ae(te=>{const me={...te};return delete me[T.line_item_id],me})},onFormChange:te=>{ae(me=>({...me,[T.line_item_id]:te}))},inline:!0})})})]})},T.line_item_id)})})})]}),Ue!=="table"&&An.map((T,Z)=>{var Tn;const C=K[T.line_item_id],$=C?{...T,...C}:T,pe=yn(T,C),ze=M.has(T.line_item_id),jt=hx($),Rt=K_($.workload_type),Ce=Rt.icon,Xt=Ue==="expanded"||ze;return o.jsx("div",{ref:we=>{Wi.current[T.line_item_id]=we},children:o.jsxs(Ut.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:Z*.02},className:"card overflow-hidden",children:[o.jsxs("div",{className:ue("p-4 cursor-pointer hover:bg-[var(--bg-hover)] transition-colors",Ue==="cards"&&!ze&&"py-3"),onClick:()=>mx(T.line_item_id),children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("div",{className:ue("rounded-lg flex items-center justify-center flex-shrink-0",Ue==="cards"&&!ze?"w-8 h-8":"w-10 h-10",Rt.bgColor),children:o.jsx(Ce,{className:ue(Rt.color,Ue==="cards"&&!ze?"w-4 h-4":"w-5 h-5")})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("h4",{className:ue("font-semibold truncate text-[var(--text-primary)]",Ue==="cards"&&!ze&&"text-sm"),title:T.workload_name,children:T.workload_name}),(T.serverless_enabled||T.workload_type==="DBSQL"&&(T.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS")&&o.jsx("span",{className:"badge badge-teal",children:"Serverless"}),T.photon_enabled&&o.jsxs("span",{className:"badge badge-lava",children:[o.jsx(Au,{className:"w-3 h-3 mr-0.5"}),"Photon"]})]}),o.jsx("div",{className:"flex items-center gap-2 text-xs text-[var(--text-muted)] mt-0.5",children:o.jsx("span",{children:((Tn=s.find(we=>we.workload_type===T.workload_type))==null?void 0:Tn.display_name)||T.workload_type})})]}),o.jsx(Y_,{costs:pe,size:Ue==="cards"&&!ze?"md":"lg",isLoading:(()=>{const we=T.workload_type||"",Qe=!T.serverless_enabled&&["JOBS","ALL_PURPOSE","DLT"].includes(we)||we==="DBSQL"&&(T.dbsql_warehouse_type||"").toUpperCase()!=="SERVERLESS";return Ke&&Qe&&pe.vmCost===0})(),className:"min-w-[100px]"}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("button",{onClick:we=>{we.stopPropagation(),Fl(T.line_item_id,!0)},className:ue("p-1.5 rounded-md transition-colors",ke.has(T.line_item_id)?"text-lava-600 bg-lava-500/10":"text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-500/10"),title:ke.has(T.line_item_id)?"Hide calculation":"Show calculation",children:o.jsx(hc,{className:"w-4 h-4"})}),o.jsx("button",{onClick:we=>fx(we,T),className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-blue-500 hover:bg-blue-500/10",title:"Clone workload",children:o.jsx(wm,{className:"w-4 h-4"})}),o.jsx("button",{onClick:we=>{we.stopPropagation(),ux(T)},className:"p-1.5 rounded-md text-[var(--text-muted)] hover:text-red-500 hover:bg-red-500/10",title:"Delete workload",children:o.jsx(tn,{className:"w-4 h-4"})}),ze?o.jsx(ps,{className:"w-5 h-5 text-[var(--text-muted)]"}):o.jsx(rr,{className:"w-5 h-5 text-[var(--text-muted)]"})]})]}),Xt&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-primary)] grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-3 text-xs",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge(pe.dbuCost)})]}),!["VECTOR_SEARCH","MODEL_SERVING","FMAPI_DATABRICKS","FMAPI_PROPRIETARY","LAKEBASE"].includes(T.workload_type||"")&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost"}),o.jsx("p",{className:"font-semibold text-[var(--text-primary)]",children:ge(pe.vmCost)})]}),T.workload_type==="LAKEBASE"&&pe.storageCost!==void 0&&pe.storageCost>0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Storage Cost"}),o.jsx("p",{className:"font-semibold text-purple-600 dark:text-purple-400",children:ge(pe.storageCost)})]}),T.workload_type==="VECTOR_SEARCH"&&pe.unitsUsed!==void 0&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Units Used"}),o.jsxs("p",{className:"font-semibold text-blue-600 dark:text-blue-400",children:[pe.unitsUsed," unit",pe.unitsUsed!==1?"s":""]})]}),(T.workload_type==="JOBS"||T.workload_type==="ALL_PURPOSE"||T.workload_type==="DLT")&&o.jsxs(o.Fragment,{children:[T.driver_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Driver"}),o.jsx("p",{className:"font-mono text-[var(--text-primary)] text-[10px]",children:T.driver_node_type})]}),T.worker_node_type&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Workers"}),o.jsxs("p",{className:"text-[var(--text-primary)]",children:[T.num_workers,"× ",o.jsx("span",{className:"font-mono text-[10px]",children:T.worker_node_type})]})]})]}),gx(T).map((we,Qe)=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:we.label}),o.jsx("p",{className:"text-[var(--text-primary)] break-words",children:we.value})]},Qe)),jt&&o.jsxs("div",{children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Usage"}),o.jsx("p",{className:"text-[var(--text-primary)]",children:jt})]})]}),o.jsxs("div",{className:"mt-2 pt-2 border-t border-dashed border-[var(--border-primary)]",children:[o.jsxs("button",{onClick:we=>{we.stopPropagation(),Fl(T.line_item_id)},className:"flex items-center gap-1.5 text-[11px] text-lava-600 hover:text-lava-700 transition-colors group",children:[o.jsx(hc,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"font-medium group-hover:underline",children:ke.has(T.line_item_id)?"Hide Cost Calculation":"Show Cost Calculation"}),ke.has(T.line_item_id)?o.jsx(ps,{className:"w-3 h-3"}):o.jsx(rr,{className:"w-3 h-3"})]}),ke.has(T.line_item_id)&&o.jsx("div",{className:"mt-2",children:(()=>{const we=$.workload_type||"",Qe=$.serverless_enabled||we==="DBSQL"&&($.dbsql_warehouse_type||"").toUpperCase()==="SERVERLESS",We=$.runs_per_day&&$.avg_runtime_minutes&&!$.hours_per_month,As=$.runs_per_day||0,Er=$.avg_runtime_minutes||30,ss=$.days_per_month||30,te=$.hours_per_month||730,me=We?As*(Er/60)*ss:te,ln=(pe.dbuPrice||0).toFixed(2);if(we==="VECTOR_SEARCH"){const zt=$.vector_capacity_millions||1,Dn=$.vector_search_mode||"standard",Zt=Dn==="storage_optimized"?64:2,Mn=Math.ceil(zt/Zt),st=Dn==="storage_optimized"?18.29:4,it=$.vector_search_storage_gb||0,en=Mn*20,At=Math.max(0,it-en),Gt=At*.023;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:["⌈",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M vectors"]})," ÷ ",Zt,"⌉"]}),o.jsxs("span",{children:["= ",Mn," units ×"]}),o.jsxs("span",{children:[st," DBU/unit/hr ×"]}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs × $",ln]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge(pe.dbuCost)})]}),it>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[it," GB"]}),o.jsx("span",{children:"−"}),o.jsxs("span",{children:[en," GB free"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",Mn," units × 20GB)"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[At," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"$0.023/GB"}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Gt)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),it>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(Gt)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(we==="FMAPI_DATABRICKS"||we==="FMAPI_PROPRIETARY"){const zt=$.fmapi_quantity||0,Dn=pe.monthlyDBUs/(zt||1);return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt,"M tokens"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:[Dn.toFixed(2)," DBU/M"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(we==="LAKEBASE"){const zt=$.lakebase_cu||1,Dn=$.lakebase_ha_nodes||1,Zt=$.lakebase_storage_gb||0,Mn=$.lakebase_pitr_gb||0,st=$.lakebase_snapshot_gb||0,it=.023,en=Zt*15*it,At=Mn*8.7*it,Gt=st*3.91*it,mn=en+At+Gt,Zn=mn>0,On={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ya=(On[Q.cloud||"aws"]||On.aws)[(Q.tier||"PREMIUM").toUpperCase()]||.213;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[zt," CU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Ya," DBU/CU-hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Dn," nodes"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-500 font-semibold",children:ge(pe.dbuCost)})]}),Zt>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Storage:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zt," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"15 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Zt*15)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(en)})]}),Mn>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Point-in-Time Restore:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Mn," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"8.7 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(Mn*8.7)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(At)})]}),st>0&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-purple-600 font-semibold",children:"Snapshots:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[st," GB"]}),o.jsx("span",{children:"×"}),o.jsx("span",{children:"3.91 DSU/GB"}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[cn(st*3.91)," DSU"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",it,"/DSU/mo"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-purple-500 font-semibold",children:ge(Gt)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),Zn&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-purple-500",children:ge(mn)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}if(we==="MODEL_SERVING"){const zt=$.model_serving_scale_out||"small",Zt=zt==="custom"?$.model_serving_concurrency||4:{small:4,medium:12,large:40}[zt]||4,Mn=Zt>0&&pe.dbuPerHour?pe.dbuPerHour/Zt:2;return o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),o.jsxs("span",{children:[Mn.toFixed(2)," DBU/hr"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Zt," concurrency"]}),o.jsxs("span",{className:"text-[var(--text-muted)]",children:["(",zt,")"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})}const pi=$.num_workers||0,Vt=$.driver_node_type||"",Cr=$.worker_node_type||"",pr=$.photon_enabled,Ts=pe.vmCost>0&&!Qe,Ln=Q.cloud||"aws",_n=Q.region||"",zr=j.find(zt=>zt.id===Vt||zt.name===Vt),as=j.find(zt=>zt.id===Cr||zt.name===Cr),Ie=R(Ln,Vt)||(zr==null?void 0:zr.dbu_rate)||0,vt=R(Ln,Cr)||(as==null?void 0:as.dbu_rate)||0,Jt=_n&&Vt?S(Ln,_n,Vt,$.driver_pricing_tier||"on_demand",$.driver_payment_option||"no_upfront"):null,bn=_n&&Cr?S(Ln,_n,Cr,$.worker_pricing_tier||"spot",$.worker_payment_option||"NA"):null,fr=pe.dbuPerHour||0;return o.jsxs("div",{className:"space-y-1.5",children:[We&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"font-semibold",children:"Hours:"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[As," runs/day"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["(",o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[Er,"min"]})," ÷ 60)"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[ss," days/mo"]}),o.jsx("span",{children:"="}),o.jsxs("span",{className:"font-semibold",children:[me.toFixed(1),"h/mo"]})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-blue-600 font-semibold",children:"DBU:"}),Qe?o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[fr.toFixed(2)," DBU/hr"]}),o.jsxs("span",{className:"text-[var(--text-muted)] text-[9px]",children:["(Serverless",pr?" + Photon":"",")"]})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"("}),o.jsx("span",{title:Vt,children:Ie.toFixed(2)}),o.jsx("span",{children:"+"}),o.jsx("span",{title:Cr,children:vt.toFixed(2)}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:pi}),o.jsx("span",{children:")"}),pr&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"×"}),o.jsx("span",{className:"text-[var(--text-muted)]",children:"Photon"})]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[fr.toFixed(2)," DBU/hr"]})]}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(We?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsxs("span",{children:[cn(pe.monthlyDBUs)," DBUs"]}),o.jsx("span",{children:"×"}),o.jsxs("span",{children:["$",ln,"/DBU"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-blue-600 font-semibold",children:ge(pe.dbuCost)})]}),Ts&&o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] flex-wrap",children:[o.jsx("span",{className:"text-teal-600 font-semibold",children:"VM:"}),o.jsx("span",{children:"("}),o.jsxs("span",{title:Vt,children:["$",(Jt==null?void 0:Jt.toFixed(4))||"0"]}),o.jsx("span",{children:"+"}),o.jsxs("span",{title:Cr,children:["$",(bn==null?void 0:bn.toFixed(4))||"0"]}),o.jsx("span",{children:"×"}),o.jsx("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:pi}),o.jsx("span",{children:")"}),o.jsx("span",{children:"×"}),o.jsxs("span",{className:"font-medium bg-amber-50 dark:bg-amber-900/20 px-0.5 rounded",children:[me.toFixed(We?1:0),"h"]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-teal-600 font-semibold",children:ge(pe.vmCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-mono flex-wrap pt-1 border-t border-dashed border-[var(--border-primary)]",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-blue-500",children:ge(pe.dbuCost)}),Ts&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"+"}),o.jsx("span",{className:"text-teal-500",children:ge(pe.vmCost)})]}),o.jsx("span",{children:"="}),o.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:ge(pe.totalCost)})]})]})})()})]})]})]}),ze&&o.jsx("div",{className:"border-t border-[var(--border-primary)] p-4 bg-[var(--bg-tertiary)]",children:o.jsx(G_,{onReset:()=>{W(we=>{const Qe=new Set(we);return Qe.delete(T.line_item_id),Qe})},children:o.jsx(rf,{estimateId:e,lineItem:T,onClose:()=>{W(we=>{const Qe=new Set(we);return Qe.delete(T.line_item_id),Qe}),ae(we=>{const Qe={...we};return delete Qe[T.line_item_id],Qe})},onSave:()=>{ae(we=>{const Qe={...we};return delete Qe[T.line_item_id],Qe})},onFormChange:we=>{ae(Qe=>({...Qe,[T.line_item_id]:we}))},inline:!0})})})]})},T.line_item_id)}),Sr?k?o.jsxs(Ut.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"card p-5",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Add New Workload"}),o.jsx("button",{onClick:()=>ie(!1),className:"text-sm text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:"Cancel"})]}),o.jsx(rf,{estimateId:e,lineItem:null,onClose:()=>ie(!1),onSave:()=>{},inline:!0})]}):o.jsxs("button",{onClick:()=>ie(!0),className:"w-full p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] hover:border-lava-600/50 hover:bg-lava-600/5 transition-all flex items-center justify-center gap-2 text-[var(--text-muted)] hover:text-lava-600",children:[o.jsx(Du,{className:"w-5 h-5"}),"Add Workload"]}):o.jsxs("div",{className:"p-4 rounded-xl border-2 border-dashed border-[var(--border-secondary)] bg-[var(--bg-tertiary)] text-center",children:[o.jsx(fs,{className:"w-6 h-6 mx-auto mb-2 text-lava-600"}),o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:["Please select a ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Region"})," and ",o.jsx("span",{className:"font-semibold text-[var(--text-secondary)]",children:"Databricks Tier"})," before adding workloads"]})]})]}):o.jsxs("div",{className:"card p-8 text-center",children:[Bl?o.jsx("p",{className:"text-sm mb-3 text-[var(--text-muted)]",children:"Save the estimate first to add workloads"}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mb-2 text-[var(--text-muted)]",children:"Complete required fields to create estimate"}),o.jsxs("p",{className:"text-xs text-lava-600 mb-3",children:["Missing: ",xx().join(", ")]})]}),o.jsxs("button",{onClick:cx,disabled:de||!Bl,className:"btn btn-primary",children:[o.jsx(Ws,{className:"w-4 h-4"}),"Create Estimate"]})]})]})]}),!pt&&o.jsx("div",{className:"lg:col-span-1",children:o.jsxs("div",{className:"card p-5 sticky top-24",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("h3",{className:"flex items-center gap-2",children:[o.jsx(bm,{className:"w-5 h-5 text-lava-600"}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:"Cost Summary"}),dt&&!Ge&&o.jsx("div",{className:"w-3 h-3 border-2 border-lava-600/30 border-t-lava-600 rounded-full animate-spin"})]}),o.jsxs("button",{onClick:()=>xt(!0),className:"flex items-center gap-1 px-2 py-1 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 border border-transparent hover:border-lava-600/20",title:"Dock to bottom bar",children:[o.jsx(rr,{className:"w-3.5 h-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:"Dock"})]})]}),Sr?dt&&!Ge?o.jsxs("div",{className:"space-y-3 py-4",children:[o.jsx("div",{className:"h-10 bg-[var(--bg-tertiary)] rounded animate-pulse"}),o.jsx("div",{className:"h-5 bg-[var(--bg-tertiary)] rounded animate-pulse w-2/3 mx-auto"})]}):r.length>0?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"text-center py-4 px-3 bg-gradient-to-br from-lava-600/5 to-amber-500/5 rounded-xl border border-lava-600/10",children:[o.jsx("p",{className:"text-xs text-[var(--text-muted)] mb-1",children:"Monthly Estimate"}),o.jsx("p",{className:ue("text-3xl font-bold text-lava-600",Ke&&"opacity-60"),children:ge(Pt.totalCost)}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:[ge(Pt.totalCost*12),"/year"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-blue-500/5 to-blue-500/10 border border-blue-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-blue-600 dark:text-blue-400 uppercase tracking-wider font-medium mb-1",children:"DBU Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:ge(Pt.totalDBUCost),children:Q_(Pt.totalDBUCost)})]}),o.jsxs("div",{className:"text-center p-2 sm:p-3 rounded-xl bg-gradient-to-br from-purple-500/5 to-purple-500/10 border border-purple-500/20 min-w-0",children:[o.jsx("p",{className:"text-[10px] text-purple-600 dark:text-purple-400 uppercase tracking-wider font-medium mb-1",children:"VM Cost"}),o.jsx("p",{className:"text-xs font-bold text-[var(--text-primary)] tabular-nums truncate",title:Ke?"Loading...":ge(Pt.totalVMCost),children:Ke?"...":Q_(Pt.totalVMCost)})]})]}),o.jsxs("div",{className:"pt-3 border-t border-[var(--border-primary)]",children:[o.jsxs("p",{className:"text-xs font-medium text-[var(--text-muted)] mb-3 flex items-center justify-between",children:[o.jsxs("span",{children:["Workloads (",r.length,")"]}),o.jsx("span",{className:"text-[10px] italic",children:"Click to view"})]}),o.jsx("div",{className:"space-y-2 max-h-80 overflow-y-auto pr-1",children:(()=>{const T=[...r].map(C=>({item:C,costs:yn(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return T.map(({item:C,costs:$},pe)=>{const ze=Pt.totalCost>0?$.totalCost/Pt.totalCost*100:0,jt=Z[pe%Z.length];return o.jsxs("button",{onClick:()=>Od(C.line_item_id),className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group cursor-pointer",title:`Click to view "${C.workload_name}"`,children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1 gap-2",children:[o.jsx("span",{className:"text-[var(--text-secondary)] truncate flex-1 min-w-0 group-hover:text-lava-600 transition-colors font-medium",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] text-[10px] tabular-nums",children:[ze.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums text-[11px]",title:ge($.totalCost),children:ge($.totalCost)})]})]}),o.jsx("div",{className:"h-1.5 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:ue("h-full rounded-full transition-all",jt,"group-hover:brightness-110"),style:{width:`${Math.max(ze,2)}%`}})})]},C.line_item_id)})})()})]})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(bm,{className:"w-10 h-10 mx-auto mb-3 text-[var(--text-muted)]"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Add workloads to see estimates"})]}):o.jsxs("div",{className:"text-center py-8",children:[o.jsx(fs,{className:"w-10 h-10 mx-auto mb-3 text-lava-600"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Select region & tier to see estimates"})]}),o.jsx("p",{className:"mt-4 pt-3 border-t border-[var(--border-primary)] text-[10px] text-[var(--text-muted)] text-center",children:"Estimates based on published Databricks pricing"})]})})]}),pt&&o.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-40",children:[St&&r.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 bg-black/20 z-[-1]",onClick:()=>mt(!1)}),o.jsx("div",{className:"bg-[var(--bg-primary)] border border-[var(--border-primary)] rounded-t-xl shadow-[0_-8px_30px_rgba(0,0,0,0.2)] mx-4 sm:mx-8",children:o.jsxs("div",{className:"p-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsxs("h4",{className:"text-sm font-semibold text-[var(--text-primary)]",children:["All Workloads (",r.length,")"]}),o.jsx("button",{onClick:()=>mt(!1),className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] px-2 py-1 rounded hover:bg-[var(--bg-tertiary)]",children:"Close ✕"})]}),o.jsx("div",{className:"max-h-64 overflow-y-auto space-y-1 pr-1",children:(()=>{const T=[...r].map(C=>({item:C,costs:yn(C)})).sort((C,$)=>$.costs.totalCost-C.costs.totalCost),Z=["bg-lava-600","bg-amber-500","bg-blue-500","bg-emerald-500","bg-purple-500","bg-pink-500","bg-cyan-500","bg-indigo-500"];return T.map(({item:C,costs:$},pe)=>{const ze=Pt.totalCost>0?$.totalCost/Pt.totalCost*100:0,jt=Z[pe%Z.length];return o.jsxs("button",{onClick:()=>{mt(!1),Od(C.line_item_id)},className:"w-full text-left p-2 rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px] group-hover:text-lava-600",title:C.workload_name,children:C.workload_name}),o.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o.jsxs("span",{className:"text-[var(--text-muted)] tabular-nums",children:[ze.toFixed(0),"%"]}),o.jsx("span",{className:"font-semibold text-[var(--text-primary)] tabular-nums w-20 text-right",children:ge($.totalCost)})]})]}),o.jsx("div",{className:"h-1 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx("div",{className:ue("h-full rounded-full",jt),style:{width:`${Math.max(ze,1)}%`}})})]},C.line_item_id)})})()}),o.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-2 text-center",children:"Click any workload to scroll to it"})]})})]}),o.jsx("div",{className:"bg-[var(--bg-primary)] border-t border-[var(--border-primary)] shadow-[0_-4px_20px_rgba(0,0,0,0.1)]",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-14",children:[o.jsxs("button",{onClick:()=>xt(!1),className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[var(--text-muted)] hover:text-lava-600 hover:bg-lava-600/10 text-sm transition-colors",title:"Expand Cost Summary panel",children:[o.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}),o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 5h4v14H4z"})]}),o.jsx("span",{className:"hidden sm:inline",children:"Expand"})]}),o.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-sm flex-shrink min-w-0",children:[o.jsxs("button",{onClick:()=>mt(!St),className:ue("flex items-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-lg border transition-all flex-shrink-0",St?"bg-lava-600/10 border-lava-600/30 text-lava-600":"border-[var(--border-primary)] hover:border-lava-600/30 hover:bg-lava-600/5"),children:[o.jsx(iy,{className:"w-4 h-4"}),o.jsx("span",{className:"font-semibold",children:r.length}),o.jsx("span",{className:"text-[var(--text-muted)] hidden sm:inline",children:"workloads"}),o.jsx(ps,{className:ue("w-3 h-3 transition-transform",St?"rotate-180":"")})]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)] hidden md:block"}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"DBU:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:ge(Pt.totalDBUCost)})]}),o.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[o.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-semibold text-xs sm:text-sm flex-shrink-0",children:"VM:"}),o.jsx("span",{className:"font-bold text-[var(--text-primary)] text-xs sm:text-sm md:text-base truncate",children:ge(Pt.totalVMCost)})]})]}),o.jsx("div",{className:"flex items-center",children:o.jsx("div",{className:"text-right px-3 py-1.5 bg-gradient-to-r from-lava-600/10 to-amber-500/10 rounded-lg border border-lava-600/20",children:o.jsxs("p",{className:"text-lg sm:text-xl font-bold text-lava-600",children:[ge(Pt.totalCost),o.jsx("span",{className:"text-[10px] font-normal text-[var(--text-muted)] ml-1",children:"/mo"})]})})})]})})})]}),Se.size>0&&o.jsxs(Ut.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},className:"fixed bottom-6 inset-x-0 mx-auto w-fit z-40 bg-[var(--bg-primary)] border border-[var(--border-primary)] shadow-2xl rounded-full px-5 py-2.5 flex items-center gap-3",children:[o.jsxs("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:[Se.size," workload",Se.size!==1?"s":""," selected"]}),o.jsx("div",{className:"h-4 w-px bg-[var(--border-primary)]"}),o.jsxs("button",{onClick:dx,className:"flex items-center gap-1.5 bg-red-600 hover:bg-red-700 text-white text-sm font-medium px-3 py-1.5 rounded-full transition-colors",children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]}),o.jsxs("button",{onClick:px,className:"flex items-center gap-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm px-2 py-1.5 rounded-full transition-colors",children:[o.jsx(Ta,{className:"w-4 h-4"}),"Cancel"]})]}),ce&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Estimate"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Q.estimate_name||"this estimate",'"']}),"? All ",r.length," workload",r.length!==1?"s":""," will also be deleted."]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>_e(!1),disabled:w,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:WC,disabled:w,className:"btn bg-red-600 hover:bg-red-700 text-white",children:w?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete Estimate"]})})]})]})}),ve&&Xe&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Delete Workload"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:["Are you sure you want to delete ",o.jsxs("span",{className:"font-semibold",children:['"',Xe.workload_name,'"']}),"?"]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>{at(!1),I(null)},disabled:ot,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:KC,disabled:ot,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ot?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete"]})})]})]})}),nt&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:o.jsx(tn,{className:"w-5 h-5 text-red-600"})}),o.jsxs("div",{children:[o.jsxs("h3",{className:"font-semibold text-[var(--text-primary)]",children:["Delete ",Se.size," Workload",Se.size!==1?"s":""]}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"This action cannot be undone"})]})]}),o.jsxs("div",{className:"text-sm text-[var(--text-secondary)] mb-6",children:[o.jsx("p",{className:"mb-2",children:"The following workloads will be deleted:"}),o.jsx("div",{className:"max-h-32 overflow-y-auto bg-[var(--bg-tertiary)] rounded-lg p-2",children:r.filter(T=>Se.has(T.line_item_id)).map(T=>o.jsxs("div",{className:"text-xs py-0.5 text-[var(--text-muted)]",children:["• ",T.workload_name]},T.line_item_id))})]}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>gt(!1),disabled:ot,className:"btn btn-secondary",children:"Cancel"}),o.jsx("button",{onClick:QC,disabled:ot,className:"btn bg-red-600 hover:bg-red-700 text-white",children:ot?o.jsxs(o.Fragment,{children:[o.jsx(Yr,{className:"w-4 h-4 animate-spin"}),"Deleting..."]}):o.jsxs(o.Fragment,{children:[o.jsx(tn,{className:"w-4 h-4"}),"Delete All"]})})]})]})}),G&&o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:o.jsxs(Ut.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-[var(--bg-primary)] rounded-xl shadow-xl border border-[var(--border-primary)] p-6 max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:o.jsx(fs,{className:"w-5 h-5 text-amber-600"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Unsaved Changes"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"You have unsaved configuration changes"})]})]}),o.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-6",children:"Are you sure you want to leave? Your unsaved changes will be lost."}),o.jsxs("div",{className:"flex gap-3 justify-end",children:[o.jsx("button",{onClick:()=>P(!1),className:"btn btn-secondary",children:"Stay"}),o.jsx("button",{onClick:ZC,className:"btn bg-amber-600 hover:bg-amber-700 text-white",children:"Leave Anyway"})]})]})})]})}function x8(){const{id:e}=ww(),t=ud();return m.useEffect(()=>{e&&t(`/calculator/${e}`,{replace:!0})},[e,t]),o.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-lava-600 border-t-transparent animate-spin mx-auto mb-3"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading..."})]})})}const eb={aws:{JOBS_COMPUTE:.15,"JOBS_COMPUTE_(PHOTON)":.15,JOBS_SERVERLESS_COMPUTE:.39,ALL_PURPOSE_COMPUTE:.55,"ALL_PURPOSE_COMPUTE_(PHOTON)":.55,ALL_PURPOSE_SERVERLESS_COMPUTE:.83,DLT_CORE_COMPUTE:.2,"DLT_CORE_COMPUTE_(PHOTON)":.2,DLT_PRO_COMPUTE:.25,"DLT_PRO_COMPUTE_(PHOTON)":.25,DLT_ADVANCED_COMPUTE:.36,"DLT_ADVANCED_COMPUTE_(PHOTON)":.36,DELTA_LIVE_TABLES_SERVERLESS:.3,SQL_COMPUTE:.22,SQL_PRO_COMPUTE:.55,SERVERLESS_SQL_COMPUTE:.7,SERVERLESS_REAL_TIME_INFERENCE:.07,SERVERLESS_REAL_TIME_INFERENCE_LAUNCH:.07,OPENAI_MODEL_SERVING:.07,ANTHROPIC_MODEL_SERVING:.07,GOOGLE_MODEL_SERVING:.07,DATABASE_SERVERLESS_COMPUTE:.48}},v8={"2X-Small":4,"X-Small":6,Small:12,Medium:24,Large:40,"X-Large":80,"2X-Large":144,"3X-Large":272,"4X-Large":528};function y8(e,t){var q;const{cloud:n,region:r,tier:s,dbuRatesMap:i,instanceTypes:a,dbsqlSizes:l,photonMultipliers:c,modelServingGPUTypes:u,getVMPrice:d,getFMAPIDatabricksRate:p,getFMAPIProprietaryRate:f,getVectorSearchRate:h,getInstanceDBURate:g,getPhotonMultiplier:v,getDBUPrice:b}=t;if(!r)return{monthlyDBUs:0,dbuCost:0,vmCost:0,totalCost:0};const x=Object.keys(i).length>0?i:eb[n]||eb.aws,y=e.num_workers||0;let _=0;e.workload_type!=="FMAPI_DATABRICKS"&&e.workload_type!=="FMAPI_PROPRIETARY"&&(e.runs_per_day&&e.avg_runtime_minutes?_=e.runs_per_day*(e.avg_runtime_minutes/60)*(e.days_per_month||22):e.hours_per_month&&(_=e.hours_per_month));let S="";const R=(e.dlt_edition||"CORE").toUpperCase();switch(e.workload_type){case"JOBS":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":e.photon_enabled?S="JOBS_COMPUTE_(PHOTON)":S="JOBS_COMPUTE";break;case"ALL_PURPOSE":e.serverless_enabled?S="ALL_PURPOSE_SERVERLESS_COMPUTE":e.photon_enabled?S="ALL_PURPOSE_COMPUTE_(PHOTON)":S="ALL_PURPOSE_COMPUTE";break;case"DLT":e.serverless_enabled?S="JOBS_SERVERLESS_COMPUTE":(S=`DLT_${R}_COMPUTE`,e.photon_enabled&&(S+="_(PHOTON)"));break;case"DBSQL":const ce=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();ce==="SERVERLESS"?S="SERVERLESS_SQL_COMPUTE":ce==="PRO"?S="SQL_PRO_COMPUTE":S="SQL_COMPUTE";break;case"VECTOR_SEARCH":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"MODEL_SERVING":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_DATABRICKS":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"FMAPI_PROPRIETARY":const _e=(e.fmapi_provider||"openai").toLowerCase();S=`${{google:"GEMINI",anthropic:"ANTHROPIC",openai:"OPENAI"}[_e]||_e.toUpperCase()}_MODEL_SERVING`;break;case"LAKEBASE":S="DATABASE_SERVERLESS_COMPUTE";break;case"DATABRICKS_APPS":S="ALL_PURPOSE_SERVERLESS_COMPUTE";break;case"CLEAN_ROOM":S="CLEAN_ROOMS_COLLABORATOR";break;case"AI_PARSE":case"SHUTTERSTOCK_IMAGEAI":S="SERVERLESS_REAL_TIME_INFERENCE";break;case"LAKEFLOW_CONNECT":S="DELTA_LIVE_TABLES_SERVERLESS";break;default:S="JOBS_COMPUTE"}let E=null;if(b){const ce=b(S);ce!==null&&ce>0&&(E=ce)}E===null&&(E=x[S]||.2),console.log(`[LiveEstimate] productType=${S}, dbuPrice=${E}, serverless=${e.serverless_enabled}, photon=${e.photon_enabled}`);let A=0,D=0,z=0,j,H,X,re=.5,le=.5;if(g&&e.driver_node_type){const ce=g(e.driver_node_type);ce!==null&&ce>0&&(re=ce)}if(re===.5){const ce=a.find(_e=>_e.id===e.driver_node_type||_e.name===e.driver_node_type);ce!=null&&ce.dbu_rate&&(re=ce.dbu_rate)}if(g&&e.worker_node_type){const ce=g(e.worker_node_type);ce!==null&&ce>0&&(le=ce)}if(le===.5){const ce=a.find(_e=>_e.id===e.worker_node_type||_e.name===e.worker_node_type);ce!=null&&ce.dbu_rate&&(le=ce.dbu_rate)}const xe=(()=>{if(!e.serverless_enabled&&!e.photon_enabled)return 1;let ce=S.replace("_(PHOTON)","");if(e.serverless_enabled&&(e.workload_type==="JOBS"?ce="JOBS_COMPUTE":e.workload_type==="ALL_PURPOSE"?ce="ALL_PURPOSE_COMPUTE":e.workload_type==="DLT"&&(ce=`DLT_${R}_COMPUTE`)),v){const ve=v(ce);if(ve!==null&&ve>1)return ve}const _e=c.find(ve=>{var at;return ve.sku_type===ce||ve.sku_type===S||((at=ve.sku_type)==null?void 0:at.includes(e.workload_type||""))});return(_e==null?void 0:_e.multiplier)||2})(),oe=e.serverless_enabled&&(e.workload_type==="ALL_PURPOSE"||e.serverless_mode==="performance")?2:1;switch(e.workload_type){case"ALL_PURPOSE":case"JOBS":if(e.serverless_enabled)A=(re+le*y)*xe*oe;else{A=(re+le*y)*xe;const Ze=e.driver_pricing_tier||"on_demand",Vr=e.driver_payment_option||"NA",Sr=e.worker_pricing_tier||"spot",yn=e.worker_payment_option||"NA",Pt=d(n,r,e.driver_node_type||"",Ze,Vr),An=d(n,r,e.worker_node_type||"",Sr,yn);z=(Pt+An*y)*_}D=A*_;break;case"DLT":if(e.serverless_enabled)A=(re+le*y)*xe*oe;else{A=(re+le*y)*xe;const Ze=e.driver_pricing_tier||"on_demand",Vr=e.driver_payment_option||"NA",Sr=e.worker_pricing_tier||"spot",yn=e.worker_payment_option||"NA",Pt=d(n,r,e.driver_node_type||"",Ze,Vr),An=d(n,r,e.worker_node_type||"",Sr,yn);z=(Pt+An*y)*_}D=A*_;break;case"DBSQL":const ce=l.find(Ze=>Ze.id===e.dbsql_warehouse_size||Ze.name===e.dbsql_warehouse_size),_e=(ce==null?void 0:ce.dbu_per_hour)||v8[e.dbsql_warehouse_size||"Small"]||12,ve=e.dbsql_num_clusters||1;A=_e*ve,D=A*_;const at=(e.dbsql_warehouse_type||"SERVERLESS").toUpperCase();if(at!=="SERVERLESS"){const Ze=e.dbsql_driver_pricing_tier||e.driver_pricing_tier||"on_demand",Vr=e.dbsql_driver_payment_option||e.driver_payment_option||"NA",Sr=e.dbsql_worker_pricing_tier||e.worker_pricing_tier||"spot",yn=e.dbsql_worker_payment_option||e.worker_payment_option||"NA",Pt=(q=t.getDBSQLWarehouseConfig)==null?void 0:q.call(t,at,e.dbsql_warehouse_size||"Small");if(Pt){const An=d(n,r,Pt.driver_instance_type,Ze,Vr),rs=d(n,r,Pt.worker_instance_type,Sr,yn);z=(Pt.driver_count*An+Pt.worker_count*rs)*ve*_}else if(e.driver_node_type){const An=d(n,r,e.driver_node_type,Ze,Vr),rs=e.worker_node_type?d(n,r,e.worker_node_type,Sr,yn):0,Il=e.num_workers||0;z=(An+rs*Il)*ve*_}}break;case"VECTOR_SEARCH":const Xe=e.vector_search_mode||"standard",I=e.vector_capacity_millions||1,nt=h(Xe),gt=(nt==null?void 0:nt.input_divisor)||(Xe==="storage_optimized"?64e6:2e6),ot=(nt==null?void 0:nt.dbu_per_hour)||(Xe==="storage_optimized"?18.29:4),ft=I*1e6,G=Math.ceil(ft/gt);j=G,A=G*ot,D=A*_;const P=e.vector_search_storage_gb||0,k=G*20,ie=Math.max(0,P-k),M=.023,W=ie*M;P>0&&(H=W,X={totalStorageGB:P,freeStorageGB:k,billableStorageGB:ie,pricePerGB:M});break;case"MODEL_SERVING":const ke=e.model_serving_gpu_type||"cpu",Ne=u.find(Ze=>Ze.id===ke||Ze.name===ke),O=(Ne==null?void 0:Ne.dbu_per_hour)||2,F=e.model_serving_scale_out||"small",ae=F==="custom"?e.model_serving_concurrency||4:{small:4,medium:12,large:40}[F]||4;A=O*ae,D=A*_;break;case"LAKEBASE":const Ee=e.lakebase_cu||1,Be=e.lakebase_ha_nodes||1,dt={aws:{PREMIUM:.23,ENTERPRISE:.213},azure:{PREMIUM:.213,ENTERPRISE:.213}},Ge=(dt[n]||dt.aws)[(s==null?void 0:s.toUpperCase())||"PREMIUM"]||.213;A=Ee*Ge*Be,D=A*_;const lt=Math.min(e.lakebase_storage_gb||0,8192),Ke=15,Ot=lt*Ke,U=.023,J=Ot*U,Te=e.lakebase_pitr_gb||0,Q=Te*8.7*U,ct=e.lakebase_snapshot_gb||0,It=ct*3.91*U;(lt>0||Te>0||ct>0)&&(H=J+Q+It,X={totalStorageGB:lt,billableStorageGB:lt,dsuPerGB:Ke,totalDSU:Ot,pricePerDSU:U});break;case"FMAPI_DATABRICKS":const pt=e.fmapi_quantity||0,xt=e.fmapi_rate_type||"input_token",St=["provisioned_scaling","provisioned_entry"].includes(xt),mt=e.fmapi_model?p(e.fmapi_model,xt):null;if(St){const Ze=(mt==null?void 0:mt.dbu_per_hour)||(xt==="provisioned_scaling"?200:50);D=pt*Ze}else{const Ze=(mt==null?void 0:mt.dbu_per_1M_tokens)||(xt==="output_token"?3:1);D=pt*Ze}break;case"FMAPI_PROPRIETARY":const Ue=e.fmapi_quantity||0,Oe=e.fmapi_rate_type||"input_token",De=Oe==="provisioned_scaling",Pe=e.fmapi_endpoint_type||"global",Wt=e.fmapi_context_length||"long",Et=e.fmapi_provider&&e.fmapi_model?f(e.fmapi_provider,e.fmapi_model,Oe,Pe,Wt):null;if(De){const Ze=(Et==null?void 0:Et.dbu_per_hour)||150;D=Ue*Ze}else{let Ze=Et==null?void 0:Et.dbu_per_1M_tokens;if(!Ze)switch(Oe){case"output_token":Ze=321.43;break;case"cache_read":Ze=8.57;break;case"cache_write":Ze=85.71;break;default:Ze=21.43}D=Ue*Ze}break;case"DATABRICKS_APPS":const Se=(e.databricks_apps_size||"medium").toLowerCase();A={medium:.5,large:1}[Se]||.5,D=A*_;break;case"CLEAN_ROOM":const on=e.clean_room_collaborators||1,qi=e.days_per_month||30;D=on*qi;break;case"AI_PARSE":if((e.ai_parse_mode||"pages").toLowerCase()==="dbu")D=e.hours_per_month||0;else{const Ze={low_text:12.5,low_images:22.5,medium:62.5,high:87.5},Vr=(e.ai_parse_complexity||"medium").toLowerCase();D=(e.ai_parse_pages_thousands||0)*(Ze[Vr]||62.5)}break;case"SHUTTERSTOCK_IMAGEAI":D=(e.shutterstock_images||0)*.857;break;case"LAKEFLOW_CONNECT":D=0;break;default:D=0}const B=D*E,Y=H!==void 0&&!isNaN(H)?H:0,N=B+z+Y,se=isNaN(B)?0:B,de=isNaN(z)?0:z,L=isNaN(N)?se:N,be=isNaN(D)?0:D,Le=isNaN(A)?0:A,w=isNaN(E)?.15:E;return{monthlyDBUs:be,dbuCost:se,vmCost:de,totalCost:L,unitsUsed:j,dbuPerHour:Le,dbuPrice:w,storageCost:Y>0?Y:void 0,storageDetails:X}}const ml={aws:{regions:["us-east-1","us-west-2","eu-west-1","ap-southeast-1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["c5.xlarge","c5.2xlarge","m5.xlarge","m5.2xlarge","r5.xlarge","i3.xlarge"]},azure:{regions:["eastus","westus2","westeurope","southeastasia"],tiers:["PREMIUM"],vmTypes:["Standard_D4s_v3","Standard_D8s_v3","Standard_E4s_v3","Standard_F4s_v2"]},gcp:{regions:["us-central1","us-east1","europe-west1","asia-southeast1"],tiers:["PREMIUM","ENTERPRISE"],vmTypes:["n2-standard-4","n2-standard-8","n2-highmem-4","c2-standard-4"]}};function qu(e,t,n){var i,a;if(!(e!=null&&e.isLoaded)||!e.instanceDBURates)return((i=ml[t.toLowerCase()])==null?void 0:i.vmTypes)||[];const r=t.toLowerCase(),s=e.instanceDBURates[r];return!s||Object.keys(s).length===0?((a=ml[t.toLowerCase()])==null?void 0:a.vmTypes)||[]:Object.keys(s).sort()}function Qm(e,t){var n;return((n=ml[t.toLowerCase()])==null?void 0:n.regions)||[]}function Ym(e){return e.toLowerCase()==="azure"?["PREMIUM"]:["PREMIUM","ENTERPRISE"]}const _8=["llama-3-3-70b","llama-3-1-8b","llama-4-maverick","gpt-oss-120b","gpt-oss-20b","gemma-3-12b"],b8=["bge-large","gte"],w8=[{provider:"openai",model:"gpt-5",contexts:["all"]},{provider:"openai",model:"gpt-5-mini",contexts:["all"]},{provider:"anthropic",model:"claude-sonnet-4",contexts:["short","long"]},{provider:"anthropic",model:"claude-sonnet-4-5",contexts:["short","long"]},{provider:"anthropic",model:"claude-haiku-4-5",contexts:["all"]},{provider:"anthropic",model:"claude-opus-4",contexts:["all"]},{provider:"google",model:"gemini-2-5-flash",contexts:["short","long"]},{provider:"google",model:"gemini-2-5-pro",contexts:["short","long"]}],tb=["2X-Small","X-Small","Small","Medium","Large","X-Large","2X-Large","3X-Large","4X-Large"],k8={aws:["cpu","gpu_small_t4","gpu_medium_a10g_1x","gpu_medium_a10g_4x"],azure:["cpu","gpu_small_t4","gpu_xlarge_a100_80gb_1x"],gcp:["cpu","gpu_medium_g2_standard_8"]},S8=["cpu","gpu_small_t4"],E8=["standard","storage_optimized"];function hs(e,t){return[...e].sort(()=>Math.random()-.5).slice(0,Math.min(t,e.length))}function nb(e,t,n,r,s,i){const a=[];let l=r;const c=i!=null&&i.isLoaded?uE(i,e.cloud,e.region,e.tier):null,u=d=>c?c.includes(d):!0;if(n.includeJobs&&u("JOBS")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`Jobs Classic - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:1,avg_runtime_minutes:30,days_per_month:22}}),a.push({id:`${++l}`,name:`Jobs Classic Photon - ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!1,photon_enabled:!0,driver_node_type:d,worker_node_type:d,num_workers:4,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:2,avg_runtime_minutes:45,days_per_month:22}});for(const d of["standard","performance"])a.push({id:`${++l}`,name:`Jobs Serverless ${d}`,category:"Jobs",workloadType:"JOBS",environment:e,config:{serverless_enabled:!0,serverless_mode:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:3,avg_runtime_minutes:20,days_per_month:22}})}if(n.includeAllPurpose&&u("ALL_PURPOSE")){for(const d of t.slice(0,2))a.push({id:`${++l}`,name:`All Purpose Classic - ${d}`,category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!1,photon_enabled:!1,driver_node_type:d,worker_node_type:d,num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"on_demand",hours_per_month:160}});a.push({id:`${++l}`,name:"All Purpose Serverless",category:"All Purpose",workloadType:"ALL_PURPOSE",environment:e,config:{serverless_enabled:!0,serverless_mode:"performance",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,hours_per_month:100}})}if(n.includeDLT&&u("DLT")){for(const d of["CORE","PRO","ADVANCED"])a.push({id:`${++l}`,name:`DLT Classic ${d}`,category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!1,photon_enabled:d!=="CORE",dlt_edition:d,driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot",runs_per_day:4,avg_runtime_minutes:30,days_per_month:30}});a.push({id:`${++l}`,name:"DLT Serverless",category:"DLT",workloadType:"DLT",environment:e,config:{serverless_enabled:!0,serverless_mode:"standard",driver_node_type:t[0]||"c5.xlarge",worker_node_type:t[0]||"c5.xlarge",num_workers:2,runs_per_day:6,avg_runtime_minutes:20,days_per_month:30}})}if(n.includeDBSQL&&u("DBSQL")){for(const d of hs(tb,3))a.push({id:`${++l}`,name:`DBSQL Serverless ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"SERVERLESS",dbsql_warehouse_size:d,dbsql_num_clusters:1,hours_per_month:160}});for(const d of hs(tb,2))a.push({id:`${++l}`,name:`DBSQL Pro ${d}`,category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"PRO",dbsql_warehouse_size:d,dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:100}});a.push({id:`${++l}`,name:"DBSQL Classic Medium",category:"DBSQL",workloadType:"DBSQL",environment:e,config:{dbsql_warehouse_type:"CLASSIC",dbsql_warehouse_size:"Medium",dbsql_num_clusters:1,dbsql_driver_pricing_tier:"on_demand",dbsql_worker_pricing_tier:"on_demand",hours_per_month:80}})}if(n.includeVectorSearch&&u("VECTOR_SEARCH"))for(const d of E8)a.push({id:`${++l}`,name:`Vector Search ${d}`,category:"Vector Search",workloadType:"VECTOR_SEARCH",environment:e,config:{vector_search_mode:d,vector_capacity_millions:5,hours_per_month:730}});if(n.includeModelServing&&u("MODEL_SERVING")){const d=k8[s.toLowerCase()]||S8;for(const p of d)a.push({id:`${++l}`,name:`Model Serving ${p}`,category:"Model Serving",workloadType:"MODEL_SERVING",environment:e,config:{model_serving_gpu_type:p,hours_per_month:200}})}if(n.includeFMAPIDB&&u("FMAPI_DATABRICKS")){for(const d of hs(_8,3))for(const p of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI DB ${d} ${p}`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:p,fmapi_quantity:10}});for(const d of hs(b8,1))a.push({id:`${++l}`,name:`FMAPI DB ${d} input_token`,category:"FMAPI Databricks",workloadType:"FMAPI_DATABRICKS",environment:e,config:{fmapi_model:d,fmapi_rate_type:"input_token",fmapi_quantity:10}})}if(n.includeFMAPIProp&&u("FMAPI_PROPRIETARY"))for(const d of hs(w8,4))for(const p of d.contexts.slice(0,2))for(const f of["input_token","output_token"])a.push({id:`${++l}`,name:`FMAPI ${d.provider} ${d.model} ${p} ${f}`,category:"FMAPI Proprietary",workloadType:"FMAPI_PROPRIETARY",environment:e,config:{fmapi_provider:d.provider,fmapi_model:d.model,fmapi_endpoint_type:"global",fmapi_context_length:p,fmapi_rate_type:f,fmapi_quantity:10}});if(n.includeLakebase&&u("LAKEBASE"))for(const d of[1,2,4])a.push({id:`${++l}`,name:`Lakebase CU${d}`,category:"Lakebase",workloadType:"LAKEBASE",environment:e,config:{lakebase_cu:d,lakebase_ha_nodes:1,hours_per_month:730}});return a}function C8(e,t){var s,i,a;const n=[];let r=0;if(e.manualEnvironment.enabled){const{cloud:l,region:c,tier:u}=e.manualEnvironment,d=qu(t,l),p=d.length>0?hs(d,e.vmSamplesPerCloud):["c5.xlarge"];return nb({cloud:l,region:c,tier:u},p,e,r,l,t)}for(const l of e.clouds){const c=Qm(t,l),u=hs(c.length>0?c:((s=ml[l])==null?void 0:s.regions)||[],e.regionsPerCloud),d=hs(Ym(l),e.tiersPerCloud);for(const p of u){const f=qu(t,l),h=f.length>0?hs(f,e.vmSamplesPerCloud):((a=(i=ml[l])==null?void 0:i.vmTypes)==null?void 0:a.slice(0,e.vmSamplesPerCloud))||["c5.xlarge"];for(const g of d){const v=nb({cloud:l,region:p,tier:g},h,e,r,l,t);n.push(...v),r+=v.length}}}return n}function j8(e,t){switch(e){case"JOBS":return t.serverless_enabled?"/api/v1/calculate/jobs-serverless":"/api/v1/calculate/jobs-classic";case"ALL_PURPOSE":return t.serverless_enabled?"/api/v1/calculate/all-purpose-serverless":"/api/v1/calculate/all-purpose-classic";case"DLT":return t.serverless_enabled?"/api/v1/calculate/dlt-serverless":"/api/v1/calculate/dlt-classic";case"DBSQL":return t.dbsql_warehouse_type==="SERVERLESS"?"/api/v1/calculate/dbsql-serverless":"/api/v1/calculate/dbsql-classic-pro";case"VECTOR_SEARCH":return"/api/v1/calculate/vector-search";case"MODEL_SERVING":return"/api/v1/calculate/model-serving";case"LAKEBASE":return"/api/v1/calculate/lakebase";case"FMAPI_DATABRICKS":return"/api/v1/calculate/fmapi-databricks";case"FMAPI_PROPRIETARY":return"/api/v1/calculate/fmapi-proprietary";default:return"/api/v1/calculate/jobs-classic"}}function N8(e){var a,l;const{workloadType:t,config:n,environment:r}=e,s={cloud:r.cloud.toUpperCase(),region:r.region,tier:r.tier},i=()=>n.hours_per_month?{hours_per_month:n.hours_per_month}:{runs_per_day:n.runs_per_day||1,avg_runtime_minutes:n.avg_runtime_minutes||30,days_per_month:n.days_per_month||22};switch(t){case"JOBS":case"ALL_PURPOSE":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,photon_enabled:n.photon_enabled||!1,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DLT":return n.serverless_enabled?{...s,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,serverless_mode:n.serverless_mode||"standard",...i()}:{...s,dlt_edition:n.dlt_edition||"CORE",photon_enabled:n.photon_enabled||!1,driver_node_type:n.driver_node_type,worker_node_type:n.worker_node_type,num_workers:n.num_workers||2,driver_pricing_tier:n.driver_pricing_tier||"on_demand",worker_pricing_tier:n.worker_pricing_tier||"spot",driver_payment_option:n.driver_payment_option||"NA",worker_payment_option:n.worker_payment_option||"NA",...i()};case"DBSQL":return n.dbsql_warehouse_type==="SERVERLESS"?{...s,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,...i()}:{...s,warehouse_type:n.dbsql_warehouse_type,warehouse_size:n.dbsql_warehouse_size,num_clusters:n.dbsql_num_clusters||1,vm_pricing_tier:n.dbsql_driver_pricing_tier||"on_demand",vm_payment_option:n.dbsql_driver_payment_option||"NA",...i()};case"VECTOR_SEARCH":return{...s,mode:n.vector_search_mode||"standard",vector_capacity_millions:n.vector_capacity_millions||1,hours_per_month:n.hours_per_month||730};case"MODEL_SERVING":return{...s,gpu_type:n.model_serving_gpu_type||"cpu",hours_per_month:n.hours_per_month||730};case"LAKEBASE":return{...s,cu_size:n.lakebase_cu||2,num_nodes:n.lakebase_ha_nodes||1,hours_per_month:n.hours_per_month||730};case"FMAPI_DATABRICKS":{const u=((a=n.fmapi_rate_type)==null?void 0:a.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,model:n.fmapi_model,rate_type:n.fmapi_rate_type||"input_token",quantity:u}}case"FMAPI_PROPRIETARY":{const u=((l=n.fmapi_rate_type)==null?void 0:l.includes("provisioned"))?n.fmapi_quantity||730:(n.fmapi_quantity||1)*1e6;return{...s,provider:n.fmapi_provider||"openai",model:n.fmapi_model,endpoint_type:n.fmapi_endpoint_type||"global",context_length:n.fmapi_context_length||"all",rate_type:n.fmapi_rate_type||"input_token",quantity:u}}default:return s}}function P8(e,t,n=1){if(!t)return{discrepancies:[],totalCostDiffPercent:e.totalCost>0?100:0};const r=[],s=["monthlyDBUs","dbuCost","vmCost","totalCost"],i=e.totalCost||0,a=t.totalCost||0,l=Math.abs(i-a),c=a!==0?l/a*100:i!==0?100:0;for(const u of s){const d=e[u]||0,p=t[u]||0,f=Math.abs(d-p),h=p!==0?f/p*100:d!==0?100:0;h>n&&f>.01&&r.push({field:u,local:d,api:p,diff:f,diffPercent:h})}return{discrepancies:r,totalCostDiffPercent:c}}function R8(){const[e,t]=m.useState([]),[n,r]=m.useState(!1),[s,i]=m.useState(!1),[a,l]=m.useState(!1),[c,u]=m.useState(null),[d,p]=m.useState(new Set),[f,h]=m.useState("all"),[g,v]=m.useState(1),[b,x]=m.useState(!1),[y,_]=m.useState(!1),[S,R]=m.useState({current:0,total:0}),[E,A]=m.useState({cloud:"aws",region:"us-east-1",tier:"PREMIUM",workloadType:"JOBS",serverless:!1,photon:!1,driverNode:"c5.xlarge",workerNode:"c5.xlarge",numWorkers:2,runsPerDay:1,avgRuntime:30,daysPerMonth:22,hoursPerMonth:160}),D=m.useRef(!1),z=m.useRef(!1),[j,H]=m.useState({clouds:["aws"],regionsPerCloud:2,tiersPerCloud:2,vmSamplesPerCloud:3,includeJobs:!0,includeAllPurpose:!0,includeDLT:!0,includeDBSQL:!0,includeVectorSearch:!0,includeModelServing:!0,includeFMAPIDB:!0,includeFMAPIProp:!0,includeLakebase:!0,manualEnvironment:{enabled:!1,cloud:"aws",region:"us-east-1",tier:"PREMIUM"}}),{dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:fe,modelServingGPUTypes:xe,vectorSearchModes:oe,pricingBundle:B,isPricingBundleLoaded:Y,loadPricingBundle:N,getVMPrice:se,fetchVMCostForInstance:de,getFMAPIDatabricksRate:L,getFMAPIProprietaryRate:be,getVectorSearchRate:Le}=bs();m.useEffect(()=>{N()},[N]);const w=m.useMemo(()=>C8(j,B),[j,B]),q=m.useMemo(()=>f==="all"?w:w.filter(M=>M.category===f),[w,f]),ce=m.useMemo(()=>{const M=new Set(w.map(W=>W.category));return["all",...Array.from(M)]},[w]),_e=m.useCallback((M,W,ke)=>{const Ne=Y&&B.modelServingRates?Object.entries(B.modelServingRates).filter(([O])=>O.startsWith(`${M.toLowerCase()}:`)).map(([O,F])=>{const K=O.split(":")[1];return{id:K,name:K,dbu_per_hour:F.dbu_rate}}):xe;return{cloud:M,region:W,tier:ke,dbuRatesMap:X,instanceTypes:re,dbsqlSizes:le,photonMultipliers:fe,modelServingGPUTypes:Ne,vectorSearchModes:oe,getVMPrice:se,getFMAPIDatabricksRate:(O,F)=>{if(Y&&B.fmapiDatabricksRates){const K=`${M.toLowerCase()}:${O}:${F}`,ae=B.fmapiDatabricksRates[K];if(ae)return{dbu_per_1M_tokens:ae.is_hourly?void 0:ae.dbu_rate,dbu_per_hour:ae.is_hourly?ae.dbu_rate:void 0}}return L(O,F)},getFMAPIProprietaryRate:(O,F,K,ae,Ee)=>{if(Y&&B.fmapiProprietaryRates){const Be=ae||"global",dt=Ee||"all",rt=`${M.toLowerCase()}:${O.toLowerCase()}:${F.toLowerCase()}:${Be}:${dt}:${K}`,Ge=B.fmapiProprietaryRates[rt];if(Ge)return{dbu_per_1M_tokens:Ge.is_hourly?void 0:Ge.dbu_rate,dbu_per_hour:Ge.is_hourly?Ge.dbu_rate:void 0}}return be(O,F,K)},getVectorSearchRate:O=>{if(Y&&B.vectorSearchRates){const F=`${M.toLowerCase()}:${O}`,K=B.vectorSearchRates[F];if(K)return{dbu_per_hour:K.dbu_rate,input_divisor:K.input_divisor}}return Le(O)},getInstanceDBURate:O=>Y?Rm(B,M,O):null,getPhotonMultiplier:O=>Y?cE(B,M,O):null,getDBUPrice:O=>Y?Dg(B,M,W,ke,O):null,getDBSQLWarehouseConfig:(O,F)=>Y?cl(B,M,O,F):null}},[X,re,le,fe,xe,oe,Y,B,se,L,be,Le]),ve=async M=>{var Q,ct,et,It,pt,xt,St,mt,Ue;const{environment:W,workloadType:ke,config:Ne}=M,O=_e(W.cloud,W.region,W.tier),F={...Ne,workload_type:ke},K=[];if(ke==="DBSQL"&&Ne.dbsql_warehouse_type!=="SERVERLESS"){const Oe=cl(B,W.cloud,Ne.dbsql_warehouse_type||"PRO",Ne.dbsql_warehouse_size||"Small");if(Oe){const De=Ne.dbsql_driver_pricing_tier||"on_demand",Pe=Ne.dbsql_driver_payment_option||"NA";K.push(de(W.cloud,W.region,Oe.driver_instance_type,De,Pe));const Wt=Ne.dbsql_worker_pricing_tier||"on_demand",Et=Ne.dbsql_worker_payment_option||"NA";K.push(de(W.cloud,W.region,Oe.worker_instance_type,Wt,Et))}}else!Ne.serverless_enabled&&Ne.driver_node_type&&(K.push(de(W.cloud,W.region,Ne.driver_node_type,Ne.driver_pricing_tier||"on_demand",Ne.driver_payment_option||"NA")),Ne.worker_node_type&&K.push(de(W.cloud,W.region,Ne.worker_node_type,Ne.worker_pricing_tier||"spot",Ne.worker_payment_option||"NA")));K.length>0&&await Promise.all(K);const ae=performance.now(),Ee=y8(F,O),Be=performance.now()-ae,dt=performance.now();let rt=null,Ge,lt;const Ke=j8(ke,Ne),Ot=N8(M);try{const Oe=await fetch(Ke,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ot)});if(Oe.ok){const De=await Oe.json();lt=De;const Pe=De.data||De,Wt=((Q=Pe.dbu_calculation)==null?void 0:Q.dbu_per_month)??Pe.dbu_per_month??(((ct=Pe.dbu_calculation)==null?void 0:ct.dbu_per_hour)??Pe.dbu_per_hour??0)*(Ne.hours_per_month||730),Et=((et=Pe.dbu_calculation)==null?void 0:et.dbu_cost_per_month)??((pt=(It=Pe.total_cost)==null?void 0:It.breakdown)==null?void 0:pt.dbu_cost)??Pe.dbu_cost_per_month??Pe.dbu_cost??0,Se=((xt=Pe.vm_costs)==null?void 0:xt.vm_cost_per_month)??((mt=(St=Pe.total_cost)==null?void 0:St.breakdown)==null?void 0:mt.vm_cost)??Pe.vm_cost_per_month??Pe.vm_cost??0;let Ct=0;typeof Pe.total_cost=="object"&&Pe.total_cost!==null?Ct=Pe.total_cost.cost_per_month??Et+Se:typeof Pe.total_cost=="number"?Ct=Pe.total_cost:Ct=Pe.total_cost_per_month??Et+Se,rt={monthlyDBUs:Wt,dbuCost:Et,vmCost:Se,totalCost:Ct},M.name.includes("Serverless")&&console.log(`[DEBUG] ${M.name}:`,{rawResponse:De,parsed:rt})}else{const De=await Oe.text();try{const Pe=JSON.parse(De);Ge=`HTTP ${Oe.status}: ${((Ue=Pe.detail)==null?void 0:Ue.message)||Pe.detail||Pe.message||De}`}catch{Ge=`HTTP ${Oe.status}: ${De}`}}}catch(Oe){Ge=Oe instanceof Error?Oe.message:"Unknown error"}const U=performance.now()-dt,{discrepancies:J,totalCostDiffPercent:Te}=P8(Ee,rt,g),Ve=Te<=g&&!Ge;return{testCase:M,localResult:Ee,apiResult:rt,apiError:Ge,apiRequestBody:Ot,apiRawResponse:lt,localTimeMs:Be,apiTimeMs:U,matches:Ve,totalCostDiffPercent:Te,discrepancies:J}},at=()=>{D.current=!0,i(!0)},Xe=()=>{D.current=!1,i(!1)},I=()=>{z.current=!0,l(!0),D.current=!1,i(!1)},nt=async()=>{for(;D.current&&!z.current;)await new Promise(M=>setTimeout(M,100))},gt=async()=>{r(!0),i(!1),l(!1),D.current=!1,z.current=!1,t([]),R({current:0,total:q.length});for(let M=0;M[...Ne,ke])}u(null),r(!1),i(!1),l(!1)},ot=async()=>{const{cloud:M,region:W,tier:ke,workloadType:Ne,serverless:O,photon:F,driverNode:K,workerNode:ae,numWorkers:Ee,runsPerDay:Be,avgRuntime:dt,daysPerMonth:rt,hoursPerMonth:Ge}=E,lt={id:"custom-single",name:`Custom ${Ne} Test`,category:Ne,workloadType:Ne,environment:{cloud:M,region:W,tier:ke},config:{serverless_enabled:O,photon_enabled:F,driver_node_type:K,worker_node_type:ae,num_workers:Ee,runs_per_day:Be,avg_runtime_minutes:dt,days_per_month:rt,hours_per_month:Ge,driver_pricing_tier:"on_demand",worker_pricing_tier:"spot"}};r(!0),u("custom-single");const Ke=await ve(lt);t([Ke]),u(null),r(!1)},ft=m.useMemo(()=>{const M=e.filter(K=>K.matches).length,W=e.filter(K=>!K.matches).length,ke=e.filter(K=>K.apiError).length,Ne=e.length>0?e.reduce((K,ae)=>K+ae.localTimeMs,0)/e.length:0,O=e.length>0?e.reduce((K,ae)=>K+ae.apiTimeMs,0)/e.length:0,F={};return e.forEach(K=>{const ae=K.testCase.category;F[ae]||(F[ae]={passed:0,failed:0}),K.matches?F[ae].passed++:F[ae].failed++}),{passed:M,failed:W,apiErrors:ke,avgLocalTime:Ne,avgApiTime:O,byCategory:F}},[e]),G=()=>{const M=["Test ID","Test Name","Category","Cloud","Region","Tier","Status","Local Total","API Total","Diff %","Local Time (ms)","API Time (ms)","Error"],W=e.map(K=>{var ae;return[K.testCase.id,K.testCase.name,K.testCase.category,K.testCase.environment.cloud,K.testCase.environment.region,K.testCase.environment.tier,K.matches?"PASS":"FAIL",K.localResult.totalCost.toFixed(2),((ae=K.apiResult)==null?void 0:ae.totalCost.toFixed(2))||"N/A",K.totalCostDiffPercent.toFixed(2),K.localTimeMs.toFixed(1),K.apiTimeMs.toFixed(1),K.apiError||""]}),ke=[M.join(","),...W.map(K=>K.map(ae=>`"${ae}"`).join(","))].join(` +`),Ne=new Blob([ke],{type:"text/csv"}),O=URL.createObjectURL(Ne),F=document.createElement("a");F.href=O,F.download=`calculation-tests-${new Date().toISOString().split("T")[0]}.csv`,F.click()},P=M=>{const W=new Set(d);W.has(M)?W.delete(M):W.add(M),p(W)},k=M=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(M),ie=M=>M>=1e3?`${(M/1e3).toFixed(2)}K`:M.toFixed(2);return o.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center",children:o.jsx(dD,{className:"w-6 h-6 text-purple-500"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:"Calculation Test Suite"}),o.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:"Bulk testing across clouds, regions, tiers, and workload types"})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("button",{onClick:()=>_(!y),className:`btn ${y?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(Au,{className:"w-4 h-4"}),"Single Test"]}),o.jsxs("button",{onClick:()=>x(!b),className:`btn ${b?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[o.jsx(tD,{className:"w-4 h-4"}),"Configure"]}),e.length>0&&o.jsxs("button",{onClick:G,className:"btn btn-secondary flex items-center gap-2",children:[o.jsx(MD,{className:"w-4 h-4"}),"Export"]}),n&&!s&&o.jsxs("button",{onClick:at,className:"btn btn-secondary flex items-center gap-2 bg-yellow-500/10 hover:bg-yellow-500/20 text-yellow-600",children:[o.jsx(n3,{className:"w-4 h-4"}),"Pause"]}),n&&s&&o.jsxs("button",{onClick:Xe,className:"btn btn-secondary flex items-center gap-2 bg-green-500/10 hover:bg-green-500/20 text-green-600",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Resume"]}),n&&o.jsxs("button",{onClick:I,className:"btn btn-secondary flex items-center gap-2 bg-red-500/10 hover:bg-red-500/20 text-red-600",children:[o.jsx(fS,{className:"w-4 h-4"}),"Stop"]}),!n&&o.jsxs("button",{onClick:gt,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Run ",q.length," Tests"]})]})]}),y&&o.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6 border-2 border-lava-600/30",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Au,{className:"w-5 h-5 text-lava-600"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Single Test Configuration"})]}),o.jsxs("button",{onClick:ot,disabled:n,className:"btn btn-primary flex items-center gap-2",children:[o.jsx(Ep,{className:"w-4 h-4"}),"Run Single Test"]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:E.cloud,onChange:M=>A({...E,cloud:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:E.region,onChange:M=>A({...E,region:M.target.value}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"single-test-regions"}),o.jsx("datalist",{id:"single-test-regions",children:Qm(B,E.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:E.tier,onChange:M=>A({...E,tier:M.target.value}),className:"w-full text-sm",children:Ym(E.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workload"}),o.jsxs("select",{value:E.workloadType,onChange:M=>A({...E,workloadType:M.target.value}),className:"w-full text-sm",children:[o.jsx("option",{value:"JOBS",children:"Jobs"}),o.jsx("option",{value:"ALL_PURPOSE",children:"All Purpose"}),o.jsx("option",{value:"DLT",children:"DLT"}),o.jsx("option",{value:"DBSQL",children:"DBSQL"})]})]}),o.jsxs("div",{className:"flex items-end gap-4",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:E.serverless,onChange:M=>A({...E,serverless:M.target.checked}),className:"rounded"}),"Serverless"]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:E.photon,onChange:M=>A({...E,photon:M.target.checked}),className:"rounded"}),"Photon"]})]})]}),o.jsxs("div",{className:"grid grid-cols-6 gap-4 mt-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Driver Node (type or select)"}),o.jsx("input",{type:"text",value:E.driverNode,onChange:M=>A({...E,driverNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-driver-vms"}),o.jsx("datalist",{id:"single-test-driver-vms",children:qu(B,E.cloud,E.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Worker Node (type or select)"}),o.jsx("input",{type:"text",value:E.workerNode,onChange:M=>A({...E,workerNode:M.target.value}),className:"w-full text-sm",placeholder:"e.g., c5.xlarge",list:"single-test-worker-vms"}),o.jsx("datalist",{id:"single-test-worker-vms",children:qu(B,E.cloud,E.region).slice(0,50).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Workers"}),o.jsx("input",{type:"number",value:E.numWorkers,onChange:M=>A({...E,numWorkers:parseInt(M.target.value)||1}),min:0,max:100,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Runs/Day"}),o.jsx("input",{type:"number",value:E.runsPerDay,onChange:M=>A({...E,runsPerDay:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Avg Runtime (min)"}),o.jsx("input",{type:"number",value:E.avgRuntime,onChange:M=>A({...E,avgRuntime:parseInt(M.target.value)||1}),min:1,className:"w-full text-sm"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Days/Month"}),o.jsx("input",{type:"number",value:E.daysPerMonth,onChange:M=>A({...E,daysPerMonth:parseInt(M.target.value)||1}),min:1,max:31,className:"w-full text-sm"})]})]})]}),b&&o.jsxs(Ut.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"card p-4 mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(PD,{className:"w-5 h-5 text-[var(--text-muted)]"}),o.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:"Test Configuration"})]}),o.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[o.jsxs("label",{className:"flex items-center gap-2 mb-3",children:[o.jsx("input",{type:"checkbox",checked:j.manualEnvironment.enabled,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,enabled:M.target.checked}}),className:"rounded"}),o.jsx("span",{className:"text-sm font-medium text-blue-700 dark:text-blue-300",children:"Override: Test specific environment only"})]}),j.manualEnvironment.enabled&&o.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Cloud"}),o.jsxs("select",{value:j.manualEnvironment.cloud,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,cloud:M.target.value}}),className:"w-full text-sm",children:[o.jsx("option",{value:"aws",children:"AWS"}),o.jsx("option",{value:"azure",children:"Azure"}),o.jsx("option",{value:"gcp",children:"GCP"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Region (type or select)"}),o.jsx("input",{type:"text",value:j.manualEnvironment.region,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,region:M.target.value}}),className:"w-full text-sm",placeholder:"e.g., us-east-1",list:"available-regions"}),o.jsx("datalist",{id:"available-regions",children:Qm(B,j.manualEnvironment.cloud).slice(0,20).map(M=>o.jsx("option",{value:M,children:M},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-1",children:"Tier"}),o.jsx("select",{value:j.manualEnvironment.tier,onChange:M=>H({...j,manualEnvironment:{...j.manualEnvironment,tier:M.target.value}}),className:"w-full text-sm",children:Ym(j.manualEnvironment.cloud).map(M=>o.jsx("option",{value:M,children:M},M))})]})]}),j.manualEnvironment.enabled&&o.jsxs("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-2",children:["VM types will be auto-detected from pricing bundle for ",j.manualEnvironment.cloud.toUpperCase()," / ",j.manualEnvironment.region]})]}),o.jsxs("div",{className:"grid grid-cols-4 gap-6",children:[o.jsxs("div",{className:j.manualEnvironment.enabled?"opacity-50 pointer-events-none":"",children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Clouds"}),o.jsx("div",{className:"space-y-1",children:["aws","azure","gcp"].map(M=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j.clouds.includes(M),onChange:W=>{W.target.checked?H({...j,clouds:[...j.clouds,M]}):H({...j,clouds:j.clouds.filter(ke=>ke!==M)})},className:"rounded",disabled:j.manualEnvironment.enabled}),M.toUpperCase()]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Sampling"}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Regions/Cloud:"}),o.jsx("input",{type:"number",min:1,max:4,value:j.regionsPerCloud,onChange:M=>H({...j,regionsPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"Tiers/Cloud:"}),o.jsx("input",{type:"number",min:1,max:3,value:j.tiersPerCloud,onChange:M=>H({...j,tiersPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)] w-24",children:"VM Samples:"}),o.jsx("input",{type:"number",min:1,max:10,value:j.vmSamplesPerCloud,onChange:M=>H({...j,vmSamplesPerCloud:parseInt(M.target.value)||1}),className:"w-16 text-sm"})]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (1)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeJobs",label:"Jobs"},{key:"includeAllPurpose",label:"All Purpose"},{key:"includeDLT",label:"DLT"},{key:"includeDBSQL",label:"DBSQL"},{key:"includeVectorSearch",label:"Vector Search"}].map(({key:M,label:W})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:ke=>H({...j,[M]:ke.target.checked}),className:"rounded"}),W]},M))})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-xs font-medium text-[var(--text-muted)] mb-2",children:"Workloads (2)"}),o.jsx("div",{className:"space-y-1",children:[{key:"includeModelServing",label:"Model Serving"},{key:"includeFMAPIDB",label:"FMAPI Databricks"},{key:"includeFMAPIProp",label:"FMAPI Proprietary"},{key:"includeLakebase",label:"Lakebase"}].map(({key:M,label:W})=>o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx("input",{type:"checkbox",checked:j[M],onChange:ke=>H({...j,[M]:ke.target.checked}),className:"rounded"}),W]},M))})]})]}),o.jsxs("div",{className:"mt-4 pt-4 border-t border-[var(--border-primary)] flex items-center justify-between",children:[o.jsxs("p",{className:"text-sm text-[var(--text-muted)]",children:[o.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:w.length})," test cases will be generated"]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Tolerance %:"}),o.jsx("input",{type:"number",value:g,onChange:M=>v(parseFloat(M.target.value)||1),min:0,max:100,step:.5,className:"w-16 text-sm"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Category:"}),o.jsx("select",{value:f,onChange:M=>h(M.target.value),className:"text-sm",children:ce.map(M=>o.jsx("option",{value:M,children:M==="all"?`All (${w.length})`:M},M))})]})]})]})]}),o.jsxs("div",{className:"card p-3 mb-6 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center gap-4",children:o.jsxs("div",{className:`flex items-center gap-2 ${Y?"text-green-500":"text-yellow-500"}`,children:[Y?o.jsx(Tu,{className:"w-5 h-5"}):o.jsx(fs,{className:"w-5 h-5"}),o.jsxs("span",{className:"text-sm font-medium",children:["Pricing Bundle: ",Y?"Loaded":"Not Loaded (using fallbacks)"]})]})}),o.jsxs("div",{className:"text-sm text-[var(--text-muted)]",children:["Testing: ",j.clouds.map(M=>M.toUpperCase()).join(", ")," •",j.regionsPerCloud," regions × ",j.tiersPerCloud," tiers × ",j.vmSamplesPerCloud," VMs"]})]}),e.length>0&&o.jsxs("div",{className:"grid grid-cols-5 gap-4 mb-6",children:[o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-green-500",children:ft.passed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Passed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-red-500",children:ft.failed}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Failed"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsx("p",{className:"text-2xl font-bold text-yellow-500",children:ft.apiErrors}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"API Errors"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-blue-500",children:[ft.avgLocalTime.toFixed(1),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg Local"})]}),o.jsxs("div",{className:"card p-4 text-center",children:[o.jsxs("p",{className:"text-2xl font-bold text-purple-500",children:[ft.avgApiTime.toFixed(0),"ms"]}),o.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Avg API"})]})]}),e.length>0&&Object.keys(ft.byCategory).length>0&&o.jsxs("div",{className:"card p-4 mb-6",children:[o.jsx("h3",{className:"text-sm font-semibold text-[var(--text-secondary)] mb-3",children:"Results by Category"}),o.jsx("div",{className:"flex flex-wrap gap-3",children:Object.entries(ft.byCategory).map(([M,{passed:W,failed:ke}])=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--bg-tertiary)]",children:[o.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:M}),o.jsxs("span",{className:"text-xs text-green-500",children:[W," ✓"]}),ke>0&&o.jsxs("span",{className:"text-xs text-red-500",children:[ke," ✗"]})]},M))})]}),n&&o.jsxs("div",{className:"mb-6",children:[o.jsx("div",{className:"h-2 bg-[var(--bg-tertiary)] rounded-full overflow-hidden",children:o.jsx(Ut.div,{className:`h-full ${s?"bg-yellow-500":"bg-lava-600"}`,initial:{width:0},animate:{width:`${S.current/S.total*100}%`}})}),o.jsxs("p",{className:"text-xs text-[var(--text-muted)] mt-1 text-center",children:[S.current," / ",S.total," tests completed",s&&o.jsx("span",{className:"ml-2 text-yellow-500 font-medium",children:"(PAUSED)"}),a&&o.jsx("span",{className:"ml-2 text-red-500 font-medium",children:"(STOPPED)"})]})]}),o.jsx("div",{className:"card overflow-hidden",children:o.jsx("div",{className:"max-h-[600px] overflow-y-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{className:"bg-[var(--bg-tertiary)] sticky top-0",children:o.jsxs("tr",{children:[o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Test"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Category"}),o.jsx("th",{className:"text-left p-3 font-medium text-[var(--text-secondary)]",children:"Environment"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Local"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"API"}),o.jsx("th",{className:"text-right p-3 font-medium text-[var(--text-secondary)]",children:"Diff %"}),o.jsx("th",{className:"text-center p-3 font-medium text-[var(--text-secondary)]",children:"Status"})]})}),o.jsx("tbody",{children:q.map(M=>{const W=e.find(O=>O.testCase.id===M.id),ke=d.has(M.id),Ne=c===M.id;return o.jsxs(o.Fragment,{children:[o.jsxs("tr",{className:` + border-t border-[var(--border-primary)] + ${W&&!W.matches?"bg-red-500/5":""} + ${Ne?"bg-blue-500/10":""} + hover:bg-[var(--bg-hover)] cursor-pointer + `,onClick:()=>W&&P(M.id),children:[o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[W&&(ke?o.jsx(rr,{className:"w-4 h-4 text-[var(--text-muted)]"}):o.jsx(uS,{className:"w-4 h-4 text-[var(--text-muted)]"})),o.jsx("span",{className:"font-medium text-[var(--text-primary)] truncate max-w-[200px]",title:M.name,children:M.name})]})}),o.jsx("td",{className:"p-3 text-[var(--text-muted)]",children:M.category}),o.jsx("td",{className:"p-3",children:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-blue-500/10 text-blue-500",children:M.environment.cloud}),o.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.environment.region}),o.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded bg-purple-500/10 text-purple-500",children:M.environment.tier})]})}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W?k(W.localResult.totalCost):"-"}),o.jsx("td",{className:"p-3 text-right font-mono text-[var(--text-primary)]",children:W!=null&&W.apiResult?k(W.apiResult.totalCost):W!=null&&W.apiError?"Error":"-"}),o.jsx("td",{className:"p-3 text-right font-mono",children:W?o.jsxs("span",{className:W.totalCostDiffPercent<=1?"text-green-500":"text-red-500",children:[W.totalCostDiffPercent.toFixed(1),"%"]}):"-"}),o.jsx("td",{className:"p-3 text-center",children:Ne?o.jsx(Yr,{className:"w-5 h-5 text-blue-500 animate-spin mx-auto"}):W?W.matches?o.jsx(Tu,{className:"w-5 h-5 text-green-500 mx-auto"}):o.jsx(N3,{className:"w-5 h-5 text-red-500 mx-auto"}):o.jsx("span",{className:"text-[var(--text-muted)]",children:"-"})})]},M.id),W&&ke&&o.jsx("tr",{className:"bg-[var(--bg-tertiary)]",children:o.jsxs("td",{colSpan:7,className:"p-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"Local Calculation"}),o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:ie(W.localResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:k(W.localResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:"text-[var(--text-primary)]",children:k(W.localResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:"text-lava-600 font-semibold",children:k(W.localResult.totalCost)})]}),W.localResult.dbuPrice&&o.jsxs("div",{className:"flex justify-between text-[10px]",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"$/DBU:"}),o.jsxs("span",{className:"text-pink-500",children:["$",W.localResult.dbuPrice.toFixed(2)]})]})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"font-semibold text-[var(--text-primary)] mb-2",children:"API Calculation"}),W.apiError?o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsx("p",{className:"text-red-500 text-xs break-all",children:W.apiError})}):W.apiResult?o.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-lg p-3 space-y-1 font-mono text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"Monthly DBUs:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="monthlyDBUs")?"text-red-500":"text-[var(--text-primary)]",children:ie(W.apiResult.monthlyDBUs)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"DBU Cost:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="dbuCost")?"text-red-500":"text-[var(--text-primary)]",children:k(W.apiResult.dbuCost)})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-[var(--text-muted)]",children:"VM Cost:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="vmCost")?"text-red-500":"text-[var(--text-primary)]",children:k(W.apiResult.vmCost)})]}),o.jsxs("div",{className:"flex justify-between border-t border-[var(--border-primary)] pt-1 mt-1",children:[o.jsx("span",{className:"text-[var(--text-secondary)] font-semibold",children:"Total:"}),o.jsx("span",{className:W.discrepancies.some(O=>O.field==="totalCost")?"text-red-500 font-semibold":"text-lava-600 font-semibold",children:k(W.apiResult.totalCost)})]})]}):null]})]}),W.discrepancies.length>0&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-red-500 mb-2",children:"Discrepancies"}),o.jsx("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:o.jsxs("table",{className:"w-full text-xs",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"text-red-400",children:[o.jsx("th",{className:"text-left pb-1",children:"Field"}),o.jsx("th",{className:"text-right pb-1",children:"Local"}),o.jsx("th",{className:"text-right pb-1",children:"API"}),o.jsx("th",{className:"text-right pb-1",children:"Diff"}),o.jsx("th",{className:"text-right pb-1",children:"Diff %"})]})}),o.jsx("tbody",{className:"font-mono",children:W.discrepancies.map((O,F)=>o.jsxs("tr",{className:"text-red-300",children:[o.jsx("td",{className:"py-0.5",children:O.field}),o.jsx("td",{className:"text-right",children:O.local.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.api.toFixed(2)}),o.jsx("td",{className:"text-right",children:O.diff.toFixed(2)}),o.jsxs("td",{className:"text-right",children:[O.diffPercent.toFixed(2),"%"]})]},F))})]})})]}),W.apiRawResponse&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-green-500 mb-2",children:"API Raw Response (from server)"}),o.jsx("pre",{className:"bg-green-500/10 border border-green-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-green-300",children:JSON.stringify(W.apiRawResponse,null,2)})})]}),W.apiRequestBody&&o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-blue-500 mb-2",children:"API Request Body (sent to server)"}),o.jsx("pre",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-3 text-xs overflow-x-auto",children:o.jsx("code",{className:"text-blue-300",children:JSON.stringify(W.apiRequestBody,null,2)})})]}),o.jsxs("div",{className:"mt-4",children:[o.jsx("h4",{className:"font-semibold text-[var(--text-secondary)] mb-2",children:"Test Configuration (internal)"}),o.jsx("pre",{className:"bg-[var(--bg-primary)] rounded-lg p-3 text-xs overflow-x-auto",children:JSON.stringify({environment:W.testCase.environment,config:W.testCase.config},null,2)})]})]})},`${M.id}-details`)]})})})]})})})]})}function A8(){return o.jsx(PN,{children:o.jsxs(_i,{path:"/",element:o.jsx(CV,{}),children:[o.jsx(_i,{index:!0,element:o.jsx(u8,{})}),o.jsx(_i,{path:"calculator",element:o.jsx(Z_,{})}),o.jsx(_i,{path:"calculator/:id",element:o.jsx(Z_,{})}),o.jsx(_i,{path:"estimate/:id",element:o.jsx(x8,{})}),o.jsx(_i,{path:"test-calculations",element:o.jsx(R8,{})})]})})}function T8(){const e=localStorage.getItem("theme")||"system";let t=!1;e==="dark"?t=!0:e==="system"&&(t=window.matchMedia("(prefers-color-scheme: dark)").matches),t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}T8();sf.createRoot(document.getElementById("root")).render(o.jsx(pn.StrictMode,{children:o.jsxs(ON,{children:[o.jsx(A8,{}),o.jsx(jP,{position:"top-right",toastOptions:{duration:3e3,style:{background:"var(--bg-secondary)",color:"var(--text-primary)",border:"1px solid var(--border-primary)"}}})]})})); diff --git a/lakemeter/backend/static/databricks-icon.svg b/lakemeter/backend/static/databricks-icon.svg new file mode 100644 index 00000000..0feb3e57 --- /dev/null +++ b/lakemeter/backend/static/databricks-icon.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/lakemeter/backend/static/index.html b/lakemeter/backend/static/index.html new file mode 100644 index 00000000..f57689d4 --- /dev/null +++ b/lakemeter/backend/static/index.html @@ -0,0 +1,36 @@ + + + + + + + Lakemeter - Databricks Pricing Calculator + + + + + + + + +
+ + diff --git a/lakemeter/backend/static/pricing/dbsql-rates.csv b/lakemeter/backend/static/pricing/dbsql-rates.csv new file mode 100644 index 00000000..94970941 --- /dev/null +++ b/lakemeter/backend/static/pricing/dbsql-rates.csv @@ -0,0 +1,82 @@ +cloud,warehouse_type,warehouse_size,sku_product_type,dbu_per_hour,includes_compute +AWS,classic,2X-Large,SQL_COMPUTE,144.0,False +AWS,classic,2X-Small,SQL_COMPUTE,4.0,False +AWS,classic,3X-Large,SQL_COMPUTE,272.0,False +AWS,classic,4X-Large,SQL_COMPUTE,528.0,False +AWS,classic,Large,SQL_COMPUTE,40.0,False +AWS,classic,Medium,SQL_COMPUTE,24.0,False +AWS,classic,Small,SQL_COMPUTE,12.0,False +AWS,classic,X-Large,SQL_COMPUTE,80.0,False +AWS,classic,X-Small,SQL_COMPUTE,6.0,False +AWS,pro,2X-Large,SQL_PRO_COMPUTE,144.0,False +AWS,pro,2X-Small,SQL_PRO_COMPUTE,4.0,False +AWS,pro,3X-Large,SQL_PRO_COMPUTE,272.0,False +AWS,pro,4X-Large,SQL_PRO_COMPUTE,528.0,False +AWS,pro,Large,SQL_PRO_COMPUTE,40.0,False +AWS,pro,Medium,SQL_PRO_COMPUTE,24.0,False +AWS,pro,Small,SQL_PRO_COMPUTE,12.0,False +AWS,pro,X-Large,SQL_PRO_COMPUTE,80.0,False +AWS,pro,X-Small,SQL_PRO_COMPUTE,6.0,False +AWS,serverless,2X-Large,SERVERLESS_SQL_COMPUTE,144.0,True +AWS,serverless,2X-Small,SERVERLESS_SQL_COMPUTE,4.0,True +AWS,serverless,3X-Large,SERVERLESS_SQL_COMPUTE,272.0,True +AWS,serverless,4X-Large,SERVERLESS_SQL_COMPUTE,528.0,True +AWS,serverless,Large,SERVERLESS_SQL_COMPUTE,40.0,True +AWS,serverless,Medium,SERVERLESS_SQL_COMPUTE,24.0,True +AWS,serverless,Small,SERVERLESS_SQL_COMPUTE,12.0,True +AWS,serverless,X-Large,SERVERLESS_SQL_COMPUTE,80.0,True +AWS,serverless,X-Small,SERVERLESS_SQL_COMPUTE,6.0,True +AZURE,classic,2X-Large,SQL_COMPUTE,144.0,False +AZURE,classic,2X-Small,SQL_COMPUTE,4.0,False +AZURE,classic,3X-Large,SQL_COMPUTE,272.0,False +AZURE,classic,4X-Large,SQL_COMPUTE,528.0,False +AZURE,classic,Large,SQL_COMPUTE,40.0,False +AZURE,classic,Medium,SQL_COMPUTE,24.0,False +AZURE,classic,Small,SQL_COMPUTE,12.0,False +AZURE,classic,X-Large,SQL_COMPUTE,80.0,False +AZURE,classic,X-Small,SQL_COMPUTE,6.0,False +AZURE,pro,2X-Large,SQL_PRO_COMPUTE,144.0,False +AZURE,pro,2X-Small,SQL_PRO_COMPUTE,4.0,False +AZURE,pro,3X-Large,SQL_PRO_COMPUTE,272.0,False +AZURE,pro,4X-Large,SQL_PRO_COMPUTE,528.0,False +AZURE,pro,Large,SQL_PRO_COMPUTE,40.0,False +AZURE,pro,Medium,SQL_PRO_COMPUTE,24.0,False +AZURE,pro,Small,SQL_PRO_COMPUTE,12.0,False +AZURE,pro,X-Large,SQL_PRO_COMPUTE,80.0,False +AZURE,pro,X-Small,SQL_PRO_COMPUTE,6.0,False +AZURE,serverless,2X-Large,SERVERLESS_SQL_COMPUTE,144.0,True +AZURE,serverless,2X-Small,SERVERLESS_SQL_COMPUTE,4.0,True +AZURE,serverless,3X-Large,SERVERLESS_SQL_COMPUTE,272.0,True +AZURE,serverless,4X-Large,SERVERLESS_SQL_COMPUTE,528.0,True +AZURE,serverless,Large,SERVERLESS_SQL_COMPUTE,40.0,True +AZURE,serverless,Medium,SERVERLESS_SQL_COMPUTE,24.0,True +AZURE,serverless,Small,SERVERLESS_SQL_COMPUTE,12.0,True +AZURE,serverless,X-Large,SERVERLESS_SQL_COMPUTE,80.0,True +AZURE,serverless,X-Small,SERVERLESS_SQL_COMPUTE,6.0,True +GCP,classic,2X-Large,SQL_COMPUTE,144.0,False +GCP,classic,2X-Small,SQL_COMPUTE,4.0,False +GCP,classic,3X-Large,SQL_COMPUTE,272.0,False +GCP,classic,4X-Large,SQL_COMPUTE,528.0,False +GCP,classic,Large,SQL_COMPUTE,40.0,False +GCP,classic,Medium,SQL_COMPUTE,24.0,False +GCP,classic,Small,SQL_COMPUTE,12.0,False +GCP,classic,X-Large,SQL_COMPUTE,80.0,False +GCP,classic,X-Small,SQL_COMPUTE,6.0,False +GCP,pro,2X-Large,SQL_PRO_COMPUTE,144.0,False +GCP,pro,2X-Small,SQL_PRO_COMPUTE,4.0,False +GCP,pro,3X-Large,SQL_PRO_COMPUTE,272.0,False +GCP,pro,4X-Large,SQL_PRO_COMPUTE,528.0,False +GCP,pro,Large,SQL_PRO_COMPUTE,40.0,False +GCP,pro,Medium,SQL_PRO_COMPUTE,24.0,False +GCP,pro,Small,SQL_PRO_COMPUTE,12.0,False +GCP,pro,X-Large,SQL_PRO_COMPUTE,80.0,False +GCP,pro,X-Small,SQL_PRO_COMPUTE,6.0,False +GCP,serverless,2X-Large,SERVERLESS_SQL_COMPUTE,144.0,True +GCP,serverless,2X-Small,SERVERLESS_SQL_COMPUTE,4.0,True +GCP,serverless,3X-Large,SERVERLESS_SQL_COMPUTE,272.0,True +GCP,serverless,4X-Large,SERVERLESS_SQL_COMPUTE,528.0,True +GCP,serverless,Large,SERVERLESS_SQL_COMPUTE,40.0,True +GCP,serverless,Medium,SERVERLESS_SQL_COMPUTE,24.0,True +GCP,serverless,Small,SERVERLESS_SQL_COMPUTE,12.0,True +GCP,serverless,X-Large,SERVERLESS_SQL_COMPUTE,80.0,True +GCP,serverless,X-Small,SERVERLESS_SQL_COMPUTE,6.0,True diff --git a/lakemeter/backend/static/pricing/dbsql-rates.json b/lakemeter/backend/static/pricing/dbsql-rates.json new file mode 100644 index 00000000..9d1e7a26 --- /dev/null +++ b/lakemeter/backend/static/pricing/dbsql-rates.json @@ -0,0 +1,407 @@ +{ + "aws:classic:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:classic:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:classic:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:classic:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:classic:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:classic:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:classic:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:classic:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:classic:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "aws:pro:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:pro:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:pro:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:pro:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:pro:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:pro:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:pro:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:pro:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:pro:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "aws:serverless:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "aws:serverless:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "aws:serverless:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "aws:serverless:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "aws:serverless:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "aws:serverless:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "aws:serverless:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "aws:serverless:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "aws:serverless:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:classic:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:classic:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:classic:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:classic:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:classic:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:classic:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:classic:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:classic:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:classic:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "azure:pro:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:pro:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:pro:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:pro:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:pro:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:pro:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:pro:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:pro:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:pro:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "azure:serverless:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:serverless:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:serverless:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:serverless:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:serverless:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:serverless:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:serverless:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:serverless:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "azure:serverless:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:classic:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:classic:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:classic:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:classic:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:classic:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:classic:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:classic:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:classic:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:classic:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SQL_COMPUTE", + "includes_compute": false + }, + "gcp:pro:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:pro:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:pro:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:pro:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:pro:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:pro:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:pro:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:pro:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:pro:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SQL_PRO_COMPUTE", + "includes_compute": false + }, + "gcp:serverless:2X-Large": { + "dbu_per_hour": 144.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:serverless:2X-Small": { + "dbu_per_hour": 4.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:serverless:3X-Large": { + "dbu_per_hour": 272.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:serverless:4X-Large": { + "dbu_per_hour": 528.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:serverless:Large": { + "dbu_per_hour": 40.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:serverless:Medium": { + "dbu_per_hour": 24.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:serverless:Small": { + "dbu_per_hour": 12.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:serverless:X-Large": { + "dbu_per_hour": 80.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + }, + "gcp:serverless:X-Small": { + "dbu_per_hour": 6.0, + "sku_product_type": "SERVERLESS_SQL_COMPUTE", + "includes_compute": true + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/dbsql-warehouse-config.csv b/lakemeter/backend/static/pricing/dbsql-warehouse-config.csv new file mode 100644 index 00000000..e1b9def0 --- /dev/null +++ b/lakemeter/backend/static/pricing/dbsql-warehouse-config.csv @@ -0,0 +1,55 @@ +cloud,warehouse_size,worker_count,driver_instance_type,worker_instance_type,warehouse_type +AWS,classic,64,i3.16xlarge,i3.2xlarge,2X-Large +AWS,classic,1,i3.2xlarge,i3.2xlarge,2X-Small +AWS,classic,128,i3.16xlarge,i3.2xlarge,3X-Large +AWS,classic,256,i3.16xlarge,i3.2xlarge,4X-Large +AWS,classic,16,i3.8xlarge,i3.2xlarge,Large +AWS,classic,8,i3.8xlarge,i3.2xlarge,Medium +AWS,classic,4,i3.4xlarge,i3.2xlarge,Small +AWS,classic,32,i3.16xlarge,i3.2xlarge,X-Large +AWS,classic,2,i3.2xlarge,i3.2xlarge,X-Small +AWS,pro,64,i3.16xlarge,i3.2xlarge,2X-Large +AWS,pro,1,i3.2xlarge,i3.2xlarge,2X-Small +AWS,pro,128,i3.16xlarge,i3.2xlarge,3X-Large +AWS,pro,256,i3.16xlarge,i3.2xlarge,4X-Large +AWS,pro,16,i3.8xlarge,i3.2xlarge,Large +AWS,pro,8,i3.8xlarge,i3.2xlarge,Medium +AWS,pro,4,i3.4xlarge,i3.2xlarge,Small +AWS,pro,32,i3.16xlarge,i3.2xlarge,X-Large +AWS,pro,2,i3.2xlarge,i3.2xlarge,X-Small +AZURE,classic,64,Standard_E64ds_v4,Standard_E8ds_v4,2X-Large +AZURE,classic,1,Standard_E8ds_v4,Standard_E8ds_v4,2X-Small +AZURE,classic,128,Standard_E64ds_v4,Standard_E8ds_v4,3X-Large +AZURE,classic,256,Standard_E64ds_v4,Standard_E8ds_v4,4X-Large +AZURE,classic,16,Standard_E32ds_v4,Standard_E8ds_v4,Large +AZURE,classic,8,Standard_E32ds_v4,Standard_E8ds_v4,Medium +AZURE,classic,4,Standard_E16ds_v4,Standard_E8ds_v4,Small +AZURE,classic,32,Standard_E64ds_v4,Standard_E8ds_v4,X-Large +AZURE,classic,2,Standard_E8ds_v4,Standard_E8ds_v4,X-Small +AZURE,pro,64,Standard_E64ds_v4,Standard_E8ds_v4,2X-Large +AZURE,pro,1,Standard_E8ds_v4,Standard_E8ds_v4,2X-Small +AZURE,pro,128,Standard_E64ds_v4,Standard_E8ds_v4,3X-Large +AZURE,pro,256,Standard_E64ds_v4,Standard_E8ds_v4,4X-Large +AZURE,pro,16,Standard_E32ds_v4,Standard_E8ds_v4,Large +AZURE,pro,8,Standard_E32ds_v4,Standard_E8ds_v4,Medium +AZURE,pro,4,Standard_E16ds_v4,Standard_E8ds_v4,Small +AZURE,pro,32,Standard_E64ds_v4,Standard_E8ds_v4,X-Large +AZURE,pro,2,Standard_E8ds_v4,Standard_E8ds_v4,X-Small +GCP,classic,64,n2-highmem-64,n2-highmem-8,2X-Large +GCP,classic,1,n2-highmem-8,n2-highmem-8,2X-Small +GCP,classic,128,n2-highmem-64,n2-highmem-8,3X-Large +GCP,classic,256,n2-highmem-64,n2-highmem-8,4X-Large +GCP,classic,16,n2-highmem-32,n2-highmem-8,Large +GCP,classic,8,n2-highmem-32,n2-highmem-8,Medium +GCP,classic,4,n2-highmem-16,n2-highmem-8,Small +GCP,classic,32,n2-highmem-64,n2-highmem-8,X-Large +GCP,classic,2,n2-highmem-8,n2-highmem-8,X-Small +GCP,pro,64,n2-highmem-64,n2-highmem-8,2X-Large +GCP,pro,1,n2-highmem-8,n2-highmem-8,2X-Small +GCP,pro,128,n2-highmem-64,n2-highmem-8,3X-Large +GCP,pro,256,n2-highmem-64,n2-highmem-8,4X-Large +GCP,pro,16,n2-highmem-32,n2-highmem-8,Large +GCP,pro,8,n2-highmem-32,n2-highmem-8,Medium +GCP,pro,4,n2-highmem-16,n2-highmem-8,Small +GCP,pro,32,n2-highmem-64,n2-highmem-8,X-Large +GCP,pro,2,n2-highmem-8,n2-highmem-8,X-Small diff --git a/lakemeter/backend/static/pricing/dbsql-warehouse-config.json b/lakemeter/backend/static/pricing/dbsql-warehouse-config.json new file mode 100644 index 00000000..ee9afe53 --- /dev/null +++ b/lakemeter/backend/static/pricing/dbsql-warehouse-config.json @@ -0,0 +1,326 @@ +{ + "aws:classic:2X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 64, + "worker_instance_type": "i3.2xlarge" + }, + "aws:classic:2X-Small": { + "driver_count": 1, + "driver_instance_type": "i3.2xlarge", + "worker_count": 1, + "worker_instance_type": "i3.2xlarge" + }, + "aws:classic:3X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 128, + "worker_instance_type": "i3.2xlarge" + }, + "aws:classic:4X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 256, + "worker_instance_type": "i3.2xlarge" + }, + "aws:classic:Large": { + "driver_count": 1, + "driver_instance_type": "i3.8xlarge", + "worker_count": 16, + "worker_instance_type": "i3.2xlarge" + }, + "aws:classic:Medium": { + "driver_count": 1, + "driver_instance_type": "i3.8xlarge", + "worker_count": 8, + "worker_instance_type": "i3.2xlarge" + }, + "aws:classic:Small": { + "driver_count": 1, + "driver_instance_type": "i3.4xlarge", + "worker_count": 4, + "worker_instance_type": "i3.2xlarge" + }, + "aws:classic:X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 32, + "worker_instance_type": "i3.2xlarge" + }, + "aws:classic:X-Small": { + "driver_count": 1, + "driver_instance_type": "i3.2xlarge", + "worker_count": 2, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:2X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 64, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:2X-Small": { + "driver_count": 1, + "driver_instance_type": "i3.2xlarge", + "worker_count": 1, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:3X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 128, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:4X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 256, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:Large": { + "driver_count": 1, + "driver_instance_type": "i3.8xlarge", + "worker_count": 16, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:Medium": { + "driver_count": 1, + "driver_instance_type": "i3.8xlarge", + "worker_count": 8, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:Small": { + "driver_count": 1, + "driver_instance_type": "i3.4xlarge", + "worker_count": 4, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:X-Large": { + "driver_count": 1, + "driver_instance_type": "i3.16xlarge", + "worker_count": 32, + "worker_instance_type": "i3.2xlarge" + }, + "aws:pro:X-Small": { + "driver_count": 1, + "driver_instance_type": "i3.2xlarge", + "worker_count": 2, + "worker_instance_type": "i3.2xlarge" + }, + "azure:classic:2X-Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E64ds_v4", + "worker_count": 64, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:classic:2X-Small": { + "driver_count": 1, + "driver_instance_type": "Standard_E8ds_v4", + "worker_count": 1, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:classic:3X-Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E64ds_v4", + "worker_count": 128, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:classic:4X-Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E64ds_v4", + "worker_count": 256, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:classic:Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E32ds_v4", + "worker_count": 16, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:classic:Medium": { + "driver_count": 1, + "driver_instance_type": "Standard_E32ds_v4", + "worker_count": 8, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:classic:Small": { + "driver_count": 1, + "driver_instance_type": "Standard_E16ds_v4", + "worker_count": 4, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:classic:X-Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E64ds_v4", + "worker_count": 32, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:classic:X-Small": { + "driver_count": 1, + "driver_instance_type": "Standard_E8ds_v4", + "worker_count": 2, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:2X-Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E64ds_v4", + "worker_count": 64, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:2X-Small": { + "driver_count": 1, + "driver_instance_type": "Standard_E8ds_v4", + "worker_count": 1, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:3X-Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E64ds_v4", + "worker_count": 128, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:4X-Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E64ds_v4", + "worker_count": 256, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E32ds_v4", + "worker_count": 16, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:Medium": { + "driver_count": 1, + "driver_instance_type": "Standard_E32ds_v4", + "worker_count": 8, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:Small": { + "driver_count": 1, + "driver_instance_type": "Standard_E16ds_v4", + "worker_count": 4, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:X-Large": { + "driver_count": 1, + "driver_instance_type": "Standard_E64ds_v4", + "worker_count": 32, + "worker_instance_type": "Standard_E8ds_v4" + }, + "azure:pro:X-Small": { + "driver_count": 1, + "driver_instance_type": "Standard_E8ds_v4", + "worker_count": 2, + "worker_instance_type": "Standard_E8ds_v4" + }, + "gcp:classic:2X-Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-64", + "worker_count": 64, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:classic:2X-Small": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-8", + "worker_count": 1, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:classic:3X-Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-64", + "worker_count": 128, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:classic:4X-Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-64", + "worker_count": 256, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:classic:Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-32", + "worker_count": 16, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:classic:Medium": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-32", + "worker_count": 8, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:classic:Small": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-16", + "worker_count": 4, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:classic:X-Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-64", + "worker_count": 32, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:classic:X-Small": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-8", + "worker_count": 2, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:2X-Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-64", + "worker_count": 64, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:2X-Small": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-8", + "worker_count": 1, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:3X-Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-64", + "worker_count": 128, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:4X-Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-64", + "worker_count": 256, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-32", + "worker_count": 16, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:Medium": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-32", + "worker_count": 8, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:Small": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-16", + "worker_count": 4, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:X-Large": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-64", + "worker_count": 32, + "worker_instance_type": "n2-highmem-8" + }, + "gcp:pro:X-Small": { + "driver_count": 1, + "driver_instance_type": "n2-highmem-8", + "worker_count": 2, + "worker_instance_type": "n2-highmem-8" + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/dbu-multipliers.csv b/lakemeter/backend/static/pricing/dbu-multipliers.csv new file mode 100644 index 00000000..127c48af --- /dev/null +++ b/lakemeter/backend/static/pricing/dbu-multipliers.csv @@ -0,0 +1,52 @@ +cloud,sku_type,feature,multiplier,category +AWS,ALL_PURPOSE_COMPUTE,photon,2.0,CLASSIC_COMPUTE +AWS,ALL_PURPOSE_SERVERLESS_COMPUTE,databricks_app,0.5,INTERACTIVE_SERVERLESS +AWS,ALL_PURPOSE_SERVERLESS_COMPUTE,serverless_notebook,1.0,INTERACTIVE_SERVERLESS +AWS,DATABASE_SERVERLESS_COMPUTE,lakebase,1.0,DATABASE_SERVERLESS +AWS,DLT_ADVANCED_COMPUTE,photon,2.9,CLASSIC_COMPUTE +AWS,DLT_CORE_COMPUTE,photon,2.9,CLASSIC_COMPUTE +AWS,DLT_PRO_COMPUTE,photon,2.9,CLASSIC_COMPUTE +AWS,JOBS_COMPUTE,photon,2.9,CLASSIC_COMPUTE +AWS,JOBS_SERVERLESS_COMPUTE,data_classification,3.0,AUTOMATED_SERVERLESS +AWS,JOBS_SERVERLESS_COMPUTE,data_quality_monitoring,2.0,AUTOMATED_SERVERLESS +AWS,JOBS_SERVERLESS_COMPUTE,fine_grained_access_control,1.0,AUTOMATED_SERVERLESS +AWS,JOBS_SERVERLESS_COMPUTE,materialized_views_streaming_tables,1.0,AUTOMATED_SERVERLESS +AWS,JOBS_SERVERLESS_COMPUTE,online_tables_capacity,2.0,AUTOMATED_SERVERLESS +AWS,JOBS_SERVERLESS_COMPUTE,online_tables_sync,1.0,AUTOMATED_SERVERLESS +AWS,JOBS_SERVERLESS_COMPUTE,predictive_optimization,1.0,AUTOMATED_SERVERLESS +AWS,JOBS_SERVERLESS_COMPUTE,serverless_dlt,1.0,AUTOMATED_SERVERLESS +AWS,JOBS_SERVERLESS_COMPUTE,serverless_jobs,1.0,AUTOMATED_SERVERLESS +AZURE,ALL_PURPOSE_COMPUTE,photon,2.0,CLASSIC_COMPUTE +AZURE,ALL_PURPOSE_SERVERLESS_COMPUTE,databricks_app,0.5,INTERACTIVE_SERVERLESS +AZURE,ALL_PURPOSE_SERVERLESS_COMPUTE,serverless_notebook,1.0,INTERACTIVE_SERVERLESS +AZURE,DATABASE_SERVERLESS_COMPUTE,lakebase,1.0,DATABASE_SERVERLESS +AZURE,DLT_ADVANCED_COMPUTE,photon,2.5,CLASSIC_COMPUTE +AZURE,DLT_CORE_COMPUTE,photon,2.5,CLASSIC_COMPUTE +AZURE,DLT_PRO_COMPUTE,photon,2.5,CLASSIC_COMPUTE +AZURE,JOBS_COMPUTE,photon,2.5,CLASSIC_COMPUTE +AZURE,JOBS_SERVERLESS_COMPUTE,data_classification,3.0,AUTOMATED_SERVERLESS +AZURE,JOBS_SERVERLESS_COMPUTE,data_quality_monitoring,2.0,AUTOMATED_SERVERLESS +AZURE,JOBS_SERVERLESS_COMPUTE,fine_grained_access_control,1.0,AUTOMATED_SERVERLESS +AZURE,JOBS_SERVERLESS_COMPUTE,materialized_views_streaming_tables,1.0,AUTOMATED_SERVERLESS +AZURE,JOBS_SERVERLESS_COMPUTE,online_tables_capacity,2.0,AUTOMATED_SERVERLESS +AZURE,JOBS_SERVERLESS_COMPUTE,online_tables_sync,1.0,AUTOMATED_SERVERLESS +AZURE,JOBS_SERVERLESS_COMPUTE,predictive_optimization,1.0,AUTOMATED_SERVERLESS +AZURE,JOBS_SERVERLESS_COMPUTE,serverless_dlt,1.0,AUTOMATED_SERVERLESS +AZURE,JOBS_SERVERLESS_COMPUTE,serverless_jobs,1.0,AUTOMATED_SERVERLESS +GCP,ALL_PURPOSE_COMPUTE,photon,2.0,CLASSIC_COMPUTE +GCP,ALL_PURPOSE_SERVERLESS_COMPUTE,databricks_app,0.5,INTERACTIVE_SERVERLESS +GCP,ALL_PURPOSE_SERVERLESS_COMPUTE,serverless_notebook,1.0,INTERACTIVE_SERVERLESS +GCP,DATABASE_SERVERLESS_COMPUTE,lakebase,1.0,DATABASE_SERVERLESS +GCP,DLT_ADVANCED_COMPUTE,photon,2.5,CLASSIC_COMPUTE +GCP,DLT_CORE_COMPUTE,photon,2.5,CLASSIC_COMPUTE +GCP,DLT_PRO_COMPUTE,photon,2.5,CLASSIC_COMPUTE +GCP,JOBS_COMPUTE,photon,2.5,CLASSIC_COMPUTE +GCP,JOBS_SERVERLESS_COMPUTE,data_classification,3.0,AUTOMATED_SERVERLESS +GCP,JOBS_SERVERLESS_COMPUTE,data_quality_monitoring,2.0,AUTOMATED_SERVERLESS +GCP,JOBS_SERVERLESS_COMPUTE,fine_grained_access_control,1.0,AUTOMATED_SERVERLESS +GCP,JOBS_SERVERLESS_COMPUTE,materialized_views_streaming_tables,1.0,AUTOMATED_SERVERLESS +GCP,JOBS_SERVERLESS_COMPUTE,online_tables_capacity,2.0,AUTOMATED_SERVERLESS +GCP,JOBS_SERVERLESS_COMPUTE,online_tables_sync,1.0,AUTOMATED_SERVERLESS +GCP,JOBS_SERVERLESS_COMPUTE,predictive_optimization,1.0,AUTOMATED_SERVERLESS +GCP,JOBS_SERVERLESS_COMPUTE,serverless_dlt,1.0,AUTOMATED_SERVERLESS +GCP,JOBS_SERVERLESS_COMPUTE,serverless_jobs,1.0,AUTOMATED_SERVERLESS diff --git a/lakemeter/backend/static/pricing/dbu-multipliers.json b/lakemeter/backend/static/pricing/dbu-multipliers.json new file mode 100644 index 00000000..30c184b5 --- /dev/null +++ b/lakemeter/backend/static/pricing/dbu-multipliers.json @@ -0,0 +1,257 @@ +{ + "aws:ALL_PURPOSE_COMPUTE:photon": { + "multiplier": 2.0, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "aws:ALL_PURPOSE_SERVERLESS_COMPUTE:databricks_app": { + "multiplier": 0.5, + "category": "INTERACTIVE_SERVERLESS", + "feature": "databricks_app" + }, + "aws:ALL_PURPOSE_SERVERLESS_COMPUTE:serverless_notebook": { + "multiplier": 1.0, + "category": "INTERACTIVE_SERVERLESS", + "feature": "serverless_notebook" + }, + "aws:DATABASE_SERVERLESS_COMPUTE:lakebase": { + "multiplier": 1.0, + "category": "DATABASE_SERVERLESS", + "feature": "lakebase" + }, + "aws:DLT_ADVANCED_COMPUTE:photon": { + "multiplier": 2.9, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "aws:DLT_CORE_COMPUTE:photon": { + "multiplier": 2.9, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "aws:DLT_PRO_COMPUTE:photon": { + "multiplier": 2.9, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "aws:JOBS_COMPUTE:photon": { + "multiplier": 2.9, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "aws:JOBS_SERVERLESS_COMPUTE:data_classification": { + "multiplier": 3.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "data_classification" + }, + "aws:JOBS_SERVERLESS_COMPUTE:data_quality_monitoring": { + "multiplier": 2.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "data_quality_monitoring" + }, + "aws:JOBS_SERVERLESS_COMPUTE:fine_grained_access_control": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "fine_grained_access_control" + }, + "aws:JOBS_SERVERLESS_COMPUTE:materialized_views_streaming_tables": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "materialized_views_streaming_tables" + }, + "aws:JOBS_SERVERLESS_COMPUTE:online_tables_capacity": { + "multiplier": 2.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "online_tables_capacity" + }, + "aws:JOBS_SERVERLESS_COMPUTE:online_tables_sync": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "online_tables_sync" + }, + "aws:JOBS_SERVERLESS_COMPUTE:predictive_optimization": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "predictive_optimization" + }, + "aws:JOBS_SERVERLESS_COMPUTE:serverless_dlt": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "serverless_dlt" + }, + "aws:JOBS_SERVERLESS_COMPUTE:serverless_jobs": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "serverless_jobs" + }, + "azure:ALL_PURPOSE_COMPUTE:photon": { + "multiplier": 2.0, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "azure:ALL_PURPOSE_SERVERLESS_COMPUTE:databricks_app": { + "multiplier": 0.5, + "category": "INTERACTIVE_SERVERLESS", + "feature": "databricks_app" + }, + "azure:ALL_PURPOSE_SERVERLESS_COMPUTE:serverless_notebook": { + "multiplier": 1.0, + "category": "INTERACTIVE_SERVERLESS", + "feature": "serverless_notebook" + }, + "azure:DATABASE_SERVERLESS_COMPUTE:lakebase": { + "multiplier": 1.0, + "category": "DATABASE_SERVERLESS", + "feature": "lakebase" + }, + "azure:DLT_ADVANCED_COMPUTE:photon": { + "multiplier": 2.5, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "azure:DLT_CORE_COMPUTE:photon": { + "multiplier": 2.5, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "azure:DLT_PRO_COMPUTE:photon": { + "multiplier": 2.5, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "azure:JOBS_COMPUTE:photon": { + "multiplier": 2.5, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "azure:JOBS_SERVERLESS_COMPUTE:data_classification": { + "multiplier": 3.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "data_classification" + }, + "azure:JOBS_SERVERLESS_COMPUTE:data_quality_monitoring": { + "multiplier": 2.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "data_quality_monitoring" + }, + "azure:JOBS_SERVERLESS_COMPUTE:fine_grained_access_control": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "fine_grained_access_control" + }, + "azure:JOBS_SERVERLESS_COMPUTE:materialized_views_streaming_tables": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "materialized_views_streaming_tables" + }, + "azure:JOBS_SERVERLESS_COMPUTE:online_tables_capacity": { + "multiplier": 2.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "online_tables_capacity" + }, + "azure:JOBS_SERVERLESS_COMPUTE:online_tables_sync": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "online_tables_sync" + }, + "azure:JOBS_SERVERLESS_COMPUTE:predictive_optimization": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "predictive_optimization" + }, + "azure:JOBS_SERVERLESS_COMPUTE:serverless_dlt": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "serverless_dlt" + }, + "azure:JOBS_SERVERLESS_COMPUTE:serverless_jobs": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "serverless_jobs" + }, + "gcp:ALL_PURPOSE_COMPUTE:photon": { + "multiplier": 2.0, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "gcp:ALL_PURPOSE_SERVERLESS_COMPUTE:databricks_app": { + "multiplier": 0.5, + "category": "INTERACTIVE_SERVERLESS", + "feature": "databricks_app" + }, + "gcp:ALL_PURPOSE_SERVERLESS_COMPUTE:serverless_notebook": { + "multiplier": 1.0, + "category": "INTERACTIVE_SERVERLESS", + "feature": "serverless_notebook" + }, + "gcp:DATABASE_SERVERLESS_COMPUTE:lakebase": { + "multiplier": 1.0, + "category": "DATABASE_SERVERLESS", + "feature": "lakebase" + }, + "gcp:DLT_ADVANCED_COMPUTE:photon": { + "multiplier": 2.5, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "gcp:DLT_CORE_COMPUTE:photon": { + "multiplier": 2.5, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "gcp:DLT_PRO_COMPUTE:photon": { + "multiplier": 2.5, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "gcp:JOBS_COMPUTE:photon": { + "multiplier": 2.5, + "category": "CLASSIC_COMPUTE", + "feature": "photon" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:data_classification": { + "multiplier": 3.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "data_classification" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:data_quality_monitoring": { + "multiplier": 2.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "data_quality_monitoring" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:fine_grained_access_control": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "fine_grained_access_control" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:materialized_views_streaming_tables": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "materialized_views_streaming_tables" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:online_tables_capacity": { + "multiplier": 2.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "online_tables_capacity" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:online_tables_sync": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "online_tables_sync" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:predictive_optimization": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "predictive_optimization" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:serverless_dlt": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "serverless_dlt" + }, + "gcp:JOBS_SERVERLESS_COMPUTE:serverless_jobs": { + "multiplier": 1.0, + "category": "AUTOMATED_SERVERLESS", + "feature": "serverless_jobs" + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/dbu-rates.csv b/lakemeter/backend/static/pricing/dbu-rates.csv new file mode 100644 index 00000000..2eda8739 --- /dev/null +++ b/lakemeter/backend/static/pricing/dbu-rates.csv @@ -0,0 +1,2417 @@ +sku_name,cloud,tier,product_type,sku_region,region,usage_unit,price_per_dbu,currency_code,pricing_type,fetched_at +JOBS_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.09,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.091,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,ap-northeast-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,ap-northeast-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.09,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,ap-northeast-1,DBU,0.091,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,ap-northeast-1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,ap-northeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,ap-northeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,ap-northeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.48,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,ap-northeast-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.086,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.086,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,ap-northeast-2,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,ap-northeast-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-northeast-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.086,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,ap-northeast-2,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,ap-northeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,ap-northeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,ap-northeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.48,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,ap-northeast-2,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-south-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-south-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,ap-south-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-south-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-south-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-south-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.77,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,ap-south-1,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,ap-south-1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-south-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,ap-south-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-south-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.59,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,ap-south-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-south-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-south-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,ap-south-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-south-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-south-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-south-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.37,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.77,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,ap-south-1,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,ap-south-1,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,ap-south-1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,ap-south-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,ap-south-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,ap-south-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-south-1,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,ap-south-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,ap-southeast-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,ap-southeast-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,ap-southeast-1,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,ap-southeast-1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.48,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,ap-southeast-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,ap-southeast-2,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,ap-southeast-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,ap-southeast-2,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,ap-southeast-2,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.48,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,ap-southeast-2,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,ap-southeast-3,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-3,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,ap-southeast-3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,ap-southeast-3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.4,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,ap-southeast-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,ap-southeast-3,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ca-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ca-central-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,ca-central-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ca-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ca-central-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,ca-central-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.62,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,ca-central-1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,ca-central-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,ca-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,ca-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,ca-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.57,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,ca-central-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,ca-central-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ca-central-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,ca-central-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,ca-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,ca-central-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,ca-central-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.37,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.62,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,ca-central-1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,ca-central-1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,ca-central-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,ca-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,ca-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,ca-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,ca-central-1,DBU,0.44,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,ca-central-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-central-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,eu-central-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-central-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-central-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,eu-central-1,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,eu-central-1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,eu-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,eu-central-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-central-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-central-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,eu-central-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-central-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-central-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-central-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,eu-central-1,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,eu-central-1,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,eu-central-1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,eu-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,eu-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,eu-central-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-central-1,DBU,0.48,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,eu-central-1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-north-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-north-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,eu-north-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-north-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-north-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-north-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-north-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,eu-north-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-north-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-north-1,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,eu-north-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-north-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,eu-north-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,eu-north-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-north-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,eu-north-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,eu-north-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-north-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,eu-north-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-north-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,eu-north-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-north-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,eu-north-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,eu-north-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,eu-north-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,eu-north-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,eu-north-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,eu-west-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,eu-west-1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,eu-west-1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.57,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,eu-west-1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,eu-west-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,eu-west-1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,eu-west-1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,eu-west-1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,eu-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,eu-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,eu-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-1,DBU,0.44,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,eu-west-1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,eu-west-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.081,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,eu-west-2,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,eu-west-2,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,eu-west-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,eu-west-2,DBU,0.081,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,eu-west-2,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,eu-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,eu-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,eu-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-2,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,eu-west-2,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,eu-west-3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,eu-west-3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.082,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,eu-west-3,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,eu-west-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.6,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,eu-west-3,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-3,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,eu-west-3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,eu-west-3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,eu-west-3,DBU,0.082,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,eu-west-3,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,eu-west-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,eu-west-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,eu-west-3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,eu-west-3,DBU,0.46,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,eu-west-3,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,sa-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,sa-east-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,sa-east-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,sa-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,sa-east-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,sa-east-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.59,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,1.14,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,1.09,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.112,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,sa-east-1,DBU,1.11,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,sa-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,sa-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,sa-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,sa-east-1,DBU,1.07,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,sa-east-1,DBU,0.041,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,sa-east-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,sa-east-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,sa-east-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,sa-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,sa-east-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,sa-east-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.46,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.9,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,1.09,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,sa-east-1,DBU,0.112,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,sa-east-1,DBU,1.11,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,sa-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,sa-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,sa-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,sa-east-1,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,sa-east-1,DBU,0.041,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,us-east-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,us-east-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-east-1,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,us-east-1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,us-east-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.35,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,us-east-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,us-east-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-east-1,DBU,0.4,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,us-east-1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,us-east-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-east-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,us-east-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-east-2,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,us-east-2,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,us-east-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-east-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.35,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,us-east-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,us-east-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-east-2,DBU,0.4,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,us-east-2,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,us-west-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,us-west-1,DBU,0.082,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,us-west-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,us-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,us-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,us-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-west-1,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,us-west-1,DBU,0.026,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,us-west-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.37,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,us-west-1,DBU,0.082,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,us-west-1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,us-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,us-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,us-west-1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-west-1,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,us-west-1,DBU,0.026,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,ENTERPRISE,,,us-west-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,ENTERPRISE,,,us-west-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,ENTERPRISE,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,ENTERPRISE,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,ENTERPRISE,,,us-west-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,ENTERPRISE,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,ENTERPRISE,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,ENTERPRISE,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,ENTERPRISE,,,us-west-2,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,ENTERPRISE,,,us-west-2,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AWS,PREMIUM,,,us-west-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AWS,PREMIUM,,,us-west-2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.35,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AWS,PREMIUM,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AWS,PREMIUM,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AWS,PREMIUM,,,us-west-2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AWS,PREMIUM,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AWS,PREMIUM,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AWS,PREMIUM,,,us-west-2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AWS,PREMIUM,,,us-west-2,DBU,0.4,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AWS,PREMIUM,,,us-west-2,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,australiacentral2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral2,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral2,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,australiacentral2,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,australiacentral2,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,australiacentral2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,australiacentral2,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,australiacentral2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiacentral2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,australiacentral2,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,australiacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiacentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,australiacentral,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,australiacentral,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,australiacentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,australiacentral,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,australiacentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiacentral,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,australiacentral,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiaeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiaeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,australiaeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiaeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiaeast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiaeast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,australiaeast,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,australiaeast,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,australiaeast,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,australiaeast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,australiaeast,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,australiaeast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiaeast,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,australiaeast,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiasoutheast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiasoutheast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,australiasoutheast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiasoutheast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiasoutheast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,australiasoutheast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.091,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,australiasoutheast,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,australiasoutheast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,australiasoutheast,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,australiasoutheast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.68,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,australiasoutheast,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,brazilsouth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,brazilsouth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,brazilsouth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,brazilsouth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,brazilsouth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,brazilsouth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.59,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,1.09,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,1.09,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,brazilsouth,DBU,0.112,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,brazilsouth,DBU,0.112,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,brazilsouth,DBU,1.11,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,brazilsouth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,brazilsouth,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,brazilsouth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,brazilsouth,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,brazilsouth,DBU,0.041,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,canadacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadacentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadacentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.62,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,canadacentral,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,canadacentral,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,canadacentral,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,canadacentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,canadacentral,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,canadacentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,canadacentral,DBU,0.58,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,canadacentral,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadaeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadaeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,canadaeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadaeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadaeast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,canadaeast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.62,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,canadaeast,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,canadaeast,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,canadaeast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,canadaeast,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,canadaeast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,canadaeast,DBU,0.58,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,canadaeast,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,centralindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralindia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralindia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.77,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,centralindia,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,centralindia,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,centralindia,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,centralindia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,centralindia,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,centralindia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,centralindia,DBU,0.59,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,centralindia,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,centralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,centralus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,centralus,DBU,0.079,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,centralus,DBU,0.079,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,centralus,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,centralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,centralus,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,centralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,centralus,DBU,0.59,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,centralus,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastasia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastasia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,eastasia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastasia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastasia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastasia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,eastasia,DBU,0.096,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,eastasia,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,eastasia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,eastasia,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,eastasia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastasia,DBU,0.71,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,eastasia,DBU,0.03,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,eastus2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus2,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus2,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,eastus2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,eastus2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,eastus2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,eastus2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,eastus2,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,eastus2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastus2,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,eastus2,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,eastus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,eastus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,eastus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,eastus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,eastus,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,eastus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,eastus,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,eastus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,eastus,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,eastus,DBU,0.026,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,francecentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,francecentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,francecentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,francecentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,francecentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,francecentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,francecentral,DBU,0.082,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,francecentral,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,francecentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,francecentral,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,francecentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,francecentral,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,francecentral,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,germanywestcentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,germanywestcentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,germanywestcentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,germanywestcentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,germanywestcentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,germanywestcentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,germanywestcentral,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,germanywestcentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,germanywestcentral,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,germanywestcentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,germanywestcentral,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japaneast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japaneast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,japaneast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japaneast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japaneast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japaneast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,japaneast,DBU,0.09,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,japaneast,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,japaneast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,japaneast,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,japaneast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,japaneast,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,japaneast,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japanwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japanwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,japanwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japanwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japanwest,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,japanwest,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,japanwest,DBU,0.09,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,japanwest,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,japanwest,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,japanwest,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,japanwest,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,japanwest,DBU,0.67,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,japanwest,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,koreacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,koreacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,koreacentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,koreacentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,koreacentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,koreacentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,koreacentral,DBU,0.086,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,koreacentral,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,koreacentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,koreacentral,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,koreacentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,koreacentral,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,koreacentral,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,mexicocentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,mexicocentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,mexicocentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,mexicocentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,mexicocentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,mexicocentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.48,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.98,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.77,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,mexicocentral,DBU,0.077,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,mexicocentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,mexicocentral,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,mexicocentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,mexicocentral,DBU,0.57,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,mexicocentral,DBU,0.029,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,northcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northcentralus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northcentralus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,northcentralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,northcentralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,northcentralus,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,northcentralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,northcentralus,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,northcentralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,northcentralus,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,northcentralus,DBU,0.026,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northeurope,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northeurope,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,northeurope,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northeurope,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northeurope,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,northeurope,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,northeurope,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,northeurope,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,northeurope,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,northeurope,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,northeurope,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,northeurope,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,northeurope,DBU,0.58,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,northeurope,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,norwayeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,norwayeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,norwayeast,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,norwayeast,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,norwayeast,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,norwayeast,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,norwayeast,DBU,0.092,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,norwayeast,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,norwayeast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,norwayeast,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,norwayeast,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,norwayeast,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,norwayeast,DBU,0.027,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,qatarcentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,qatarcentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,qatarcentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,qatarcentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,qatarcentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,qatarcentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,qatarcentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,qatarcentral,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,qatarcentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,qatarcentral,DBU,0.64,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,qatarcentral,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southafricanorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southafricanorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,southafricanorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southafricanorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southafricanorth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southafricanorth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,southafricanorth,DBU,0.093,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,southafricanorth,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,southafricanorth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,southafricanorth,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,southafricanorth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southafricanorth,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,southafricanorth,DBU,0.027,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,southcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southcentralus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southcentralus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,southcentralus,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,southcentralus,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,southcentralus,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,southcentralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,southcentralus,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,southcentralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southcentralus,DBU,0.62,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,southcentralus,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southeastasia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southeastasia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,southeastasia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southeastasia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southeastasia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southeastasia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,southeastasia,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,southeastasia,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,southeastasia,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,southeastasia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,southeastasia,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,southeastasia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southeastasia,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,southeastasia,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,southindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southindia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,southindia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,southindia,DBU,0.099,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,southindia,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,southindia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,southindia,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,southindia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,southindia,DBU,0.73,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,southindia,DBU,0.03,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,swedencentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,swedencentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,swedencentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,swedencentral,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,swedencentral,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,swedencentral,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,swedencentral,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,swedencentral,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,swedencentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,swedencentral,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,swedencentral,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,swedencentral,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,swedencentral,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandnorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandnorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,switzerlandnorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandnorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandnorth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandnorth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.56,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,1.09,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.092,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,switzerlandnorth,DBU,0.027,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,switzerlandwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandwest,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,switzerlandwest,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,1.14,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.96,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.12,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,switzerlandwest,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,switzerlandwest,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,switzerlandwest,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,switzerlandwest,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.9,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,switzerlandwest,DBU,0.035,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uaenorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uaenorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,uaenorth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uaenorth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uaenorth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uaenorth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,uaenorth,DBU,0.086,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,uaenorth,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,uaenorth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,uaenorth,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,uaenorth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,uaenorth,DBU,0.64,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,uaenorth,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uksouth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uksouth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,uksouth,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uksouth,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uksouth,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,uksouth,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,uksouth,DBU,0.081,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,uksouth,DBU,0.081,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,uksouth,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,uksouth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,uksouth,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,uksouth,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,uksouth,DBU,0.6,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,uksouth,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,ukwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,ukwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,ukwest,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,ukwest,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,ukwest,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,ukwest,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,ukwest,DBU,0.085,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,ukwest,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,ukwest,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,ukwest,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,ukwest,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,ukwest,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,ukwest,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,westcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westcentralus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westcentralus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westcentralus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,westcentralus,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,westcentralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,westcentralus,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,westcentralus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westcentralus,DBU,0.62,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,westcentralus,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westeurope,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westeurope,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,westeurope,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westeurope,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westeurope,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westeurope,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,westeurope,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,westeurope,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,westeurope,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,westeurope,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,westeurope,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,westeurope,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westeurope,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,westeurope,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,westindia,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westindia,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westindia,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westindia,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,westindia,DBU,0.09,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,westindia,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,westindia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,westindia,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,westindia,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westindia,DBU,0.66,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,westindia,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,westus2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus2,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus2,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus2,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,westus2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,westus2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,westus2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,westus2,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,westus2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus2,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,westus2,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus3,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,westus3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus3,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus3,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus3,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,westus3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,westus3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,westus3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,westus3,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,westus3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus3,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,westus3,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(DLT),AZURE,PREMIUM,,,westus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus,DBU,0.3,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus,DBU,0.38,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),AZURE,PREMIUM,,,westus,DBU,0.54,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,AZURE,PREMIUM,,,westus,DBU,0.082,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE_LAUNCH,AZURE,PREMIUM,,,westus,DBU,0.082,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,AZURE,PREMIUM,,,westus,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,AZURE,PREMIUM,,,westus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,AZURE,PREMIUM,,,westus,DBU,0.105,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,AZURE,PREMIUM,,,westus,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,AZURE,PREMIUM,,,westus,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,AZURE,PREMIUM,,,westus,DBU,0.026,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-northeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-northeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-northeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.09,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.663,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,asia-northeast1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-northeast1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-northeast1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-northeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-northeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,asia-northeast1,DBU,0.09,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,asia-northeast1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,asia-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,asia-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,asia-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-northeast1,DBU,0.51,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,asia-northeast1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-south1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-south1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-south1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-south1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-south1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.77,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,asia-south1,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,asia-south1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,asia-south1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,asia-south1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,asia-south1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-south1,DBU,0.59,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,asia-south1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-south1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-south1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-south1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-south1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-south1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.37,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.77,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,asia-south1,DBU,0.074,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,asia-south1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,asia-south1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,asia-south1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,asia-south1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-south1,DBU,0.42,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,asia-south1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-southeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-southeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,asia-southeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.637,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,asia-southeast1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-southeast1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-southeast1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-southeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,asia-southeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.69,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.88,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,asia-southeast1,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,asia-southeast1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,asia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,asia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,asia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,asia-southeast1,DBU,0.49,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,asia-southeast1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,australia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,australia-southeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,australia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,australia-southeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,australia-southeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,1.05,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,australia-southeast1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,australia-southeast1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,australia-southeast1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,australia-southeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,australia-southeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,australia-southeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.83,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,australia-southeast1,DBU,0.088,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,australia-southeast1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,australia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,australia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,australia-southeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,australia-southeast1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,australia-southeast1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,europe-west1,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,europe-west1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west1,DBU,0.572,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,europe-west1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,europe-west1,DBU,0.082,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,europe-west1,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,europe-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,europe-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,europe-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west1,DBU,0.44,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,europe-west1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,europe-west2,DBU,0.081,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,europe-west2,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west2,DBU,0.598,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,europe-west2,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.74,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,europe-west2,DBU,0.081,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,europe-west2,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,europe-west2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,europe-west2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,europe-west2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west2,DBU,0.46,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,europe-west2,DBU,0.024,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west3,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,europe-west3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.5,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,europe-west3,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,europe-west3,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,europe-west3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,europe-west3,DBU,0.63,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,europe-west3,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west3,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west3,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west3,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west3,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,europe-west3,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.39,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.72,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,europe-west3,DBU,0.084,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,europe-west3,DBU,0.78,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,europe-west3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,europe-west3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,europe-west3,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,europe-west3,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,europe-west3,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,me-central2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,me-central2,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,me-central2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,me-central2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,me-central2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.59,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,1.14,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,me-central2,DBU,1.16,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,me-central2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,me-central2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,me-central2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,me-central2,DBU,0.03,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,me-central2,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,me-central2,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,me-central2,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,me-central2,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,me-central2,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.46,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.9,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,0.91,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,me-central2,DBU,1.16,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,me-central2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,me-central2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,me-central2,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,me-central2,DBU,0.03,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.47,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,1.0,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.572,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,northamerica-northeast1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,northamerica-northeast1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,northamerica-northeast1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,northamerica-northeast1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,northamerica-northeast1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,northamerica-northeast1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.37,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.61,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.79,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.078,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.44,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,northamerica-northeast1,DBU,0.025,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,southamerica-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,southamerica-east1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,southamerica-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,southamerica-east1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,southamerica-east1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.59,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,1.14,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,southamerica-east1,DBU,1.09,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,southamerica-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,southamerica-east1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,southamerica-east1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,southamerica-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,southamerica-east1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,southamerica-east1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.46,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.9,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,0.85,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,southamerica-east1,DBU,1.09,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,southamerica-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,southamerica-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,southamerica-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-central1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-central1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-central1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-central1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-central1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,us-central1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,us-central1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,us-central1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,us-central1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,us-central1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-central1,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,us-central1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-central1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-central1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-central1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-central1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-central1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.35,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,us-central1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,us-central1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,us-central1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,us-central1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,us-central1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-central1,DBU,0.4,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,us-central1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,us-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,us-east1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,us-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,us-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,us-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-east1,DBU,0.585,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,us-east1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.35,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,us-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,us-east1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,us-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,us-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,us-east1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-east1,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,us-east1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east4,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east4,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-east4,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,us-east4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,us-east4,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,us-east4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,us-east4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,us-east4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-east4,DBU,0.585,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,us-east4,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east4,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east4,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east4,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-east4,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.35,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,us-east4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,us-east4,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,us-east4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,us-east4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,us-east4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-east4,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,us-east4,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,us-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,us-west1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,us-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,us-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,us-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-west1,DBU,0.52,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,us-west1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west1,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west1,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west1,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west1,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.35,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,us-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,us-west1,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,us-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,us-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,us-west1,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-west1,DBU,0.4,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,us-west1,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.13,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west4,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west4,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,ENTERPRISE,,,us-west4,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.95,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,ENTERPRISE,,,us-west4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,ENTERPRISE,,,us-west4,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,ENTERPRISE,,,us-west4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,ENTERPRISE,,,us-west4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,ENTERPRISE,,,us-west4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,ENTERPRISE,,,us-west4,DBU,0.585,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,ENTERPRISE,,,us-west4,DBU,0.023,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west4,DBU,0.15,USD,,2026-04-10T09:19:36.089946 +JOBS_LIGHT_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.1,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west4,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_CORE_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west4,DBU,0.2,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_PRO_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west4,DBU,0.25,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +DLT_ADVANCED_COMPUTE_(PHOTON),GCP,PREMIUM,,,us-west4,DBU,0.36,USD,,2026-04-10T09:19:36.089946 +JOBS_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.35,USD,,2026-04-10T09:19:36.089946 +ALL_PURPOSE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.75,USD,,2026-04-10T09:19:36.089946 +SQL_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.22,USD,,2026-04-10T09:19:36.089946 +SQL_PRO_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.55,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_SQL_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.7,USD,,2026-04-10T09:19:36.089946 +SERVERLESS_REAL_TIME_INFERENCE,GCP,PREMIUM,,,us-west4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +MODEL_TRAINING,GCP,PREMIUM,,,us-west4,DBU,0.65,USD,,2026-04-10T09:19:36.089946 +OPENAI_MODEL_SERVING,GCP,PREMIUM,,,us-west4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +ANTHROPIC_MODEL_SERVING,GCP,PREMIUM,,,us-west4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +GEMINI_MODEL_SERVING,GCP,PREMIUM,,,us-west4,DBU,0.07,USD,,2026-04-10T09:19:36.089946 +DATABASE_SERVERLESS_COMPUTE,GCP,PREMIUM,,,us-west4,DBU,0.45,USD,,2026-04-10T09:19:36.089946 +DATABRICKS_STORAGE,GCP,PREMIUM,,,us-west4,DBU,0.023,USD,,2026-04-10T09:19:36.089946 diff --git a/lakemeter/backend/static/pricing/dbu-rates.json b/lakemeter/backend/static/pricing/dbu-rates.json new file mode 100644 index 00000000..2e0d05bf --- /dev/null +++ b/lakemeter/backend/static/pricing/dbu-rates.json @@ -0,0 +1,2622 @@ +{ + "aws:ap-northeast-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.78, + "SERVERLESS_SQL_COMPUTE": 1.0, + "SERVERLESS_REAL_TIME_INFERENCE": 0.09, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.091, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-northeast-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.83, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.78, + "SERVERLESS_SQL_COMPUTE": 1.0, + "SERVERLESS_REAL_TIME_INFERENCE": 0.09, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.091, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.48, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-northeast-2:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.086, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.086, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-northeast-2:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.086, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.48, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-south-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.61, + "SERVERLESS_SQL_COMPUTE": 0.77, + "SERVERLESS_REAL_TIME_INFERENCE": 0.074, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.074, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.59, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-south-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.37, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.61, + "SERVERLESS_SQL_COMPUTE": 0.77, + "SERVERLESS_REAL_TIME_INFERENCE": 0.074, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.074, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.45, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-southeast-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-southeast-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.83, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.48, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-southeast-2:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-southeast-2:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.83, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.48, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-southeast-3:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.52, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.65, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ap-southeast-3:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.4, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.83, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.5, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ca-central-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.62, + "SERVERLESS_SQL_COMPUTE": 0.79, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.078, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.57, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:ca-central-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.37, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.62, + "SERVERLESS_SQL_COMPUTE": 0.79, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.078, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.44, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:eu-central-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.084, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.084, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:eu-central-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.084, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.084, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.48, + "DATABRICKS_STORAGE": 0.025 + }, + "aws:eu-north-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "SQL_COMPUTE": 0.22, + "SERVERLESS_SQL_COMPUTE": 0.55, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.54 + }, + "aws:eu-north-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "SQL_COMPUTE": 0.22, + "SERVERLESS_SQL_COMPUTE": 0.55, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07 + }, + "aws:eu-west-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.078, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.57, + "DATABRICKS_STORAGE": 0.023 + }, + "aws:eu-west-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.078, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.44, + "DATABRICKS_STORAGE": 0.023 + }, + "aws:eu-west-2:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.081, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.61, + "DATABRICKS_STORAGE": 0.024 + }, + "aws:eu-west-2:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.081, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.47, + "DATABRICKS_STORAGE": 0.024 + }, + "aws:eu-west-3:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.082, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.6, + "DATABRICKS_STORAGE": 0.024 + }, + "aws:eu-west-3:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.082, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.46, + "DATABRICKS_STORAGE": 0.024 + }, + "aws:sa-east-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.59, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.14, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.85, + "SERVERLESS_SQL_COMPUTE": 1.09, + "SERVERLESS_REAL_TIME_INFERENCE": 0.112, + "MODEL_TRAINING": 1.11, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 1.07, + "DATABRICKS_STORAGE": 0.041 + }, + "aws:sa-east-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.46, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.9, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.85, + "SERVERLESS_SQL_COMPUTE": 1.09, + "SERVERLESS_REAL_TIME_INFERENCE": 0.112, + "MODEL_TRAINING": 1.11, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.83, + "DATABRICKS_STORAGE": 0.041 + }, + "aws:us-east-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.023 + }, + "aws:us-east-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.35, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.4, + "DATABRICKS_STORAGE": 0.023 + }, + "aws:us-east-2:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.023 + }, + "aws:us-east-2:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.35, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.4, + "DATABRICKS_STORAGE": 0.023 + }, + "aws:us-west-1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.082, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.61, + "DATABRICKS_STORAGE": 0.026 + }, + "aws:us-west-1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.37, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.082, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.47, + "DATABRICKS_STORAGE": 0.026 + }, + "aws:us-west-2:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.023 + }, + "aws:us-west-2:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.35, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.4, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:australiacentral2:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.65, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:australiacentral:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.65, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:australiaeast:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:australiasoutheast:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.52, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.091, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.68, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:brazilsouth:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.59, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.09, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.85, + "SERVERLESS_SQL_COMPUTE": 1.09, + "SERVERLESS_REAL_TIME_INFERENCE": 0.112, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.112, + "MODEL_TRAINING": 1.11, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.83, + "DATABRICKS_STORAGE": 0.041 + }, + "azure:canadacentral:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.62, + "SERVERLESS_SQL_COMPUTE": 0.79, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.078, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.58, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:canadaeast:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.62, + "SERVERLESS_SQL_COMPUTE": 0.79, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.58, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:centralindia:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.61, + "SERVERLESS_SQL_COMPUTE": 0.77, + "SERVERLESS_REAL_TIME_INFERENCE": 0.074, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.074, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.59, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:centralus:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.079, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.079, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.59, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:eastasia:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.52, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.096, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.71, + "DATABRICKS_STORAGE": 0.03 + }, + "azure:eastus2:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:eastus:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.026 + }, + "azure:francecentral:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.082, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.61, + "DATABRICKS_STORAGE": 0.024 + }, + "azure:germanywestcentral:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.084, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:japaneast:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.78, + "SERVERLESS_SQL_COMPUTE": 1.0, + "SERVERLESS_REAL_TIME_INFERENCE": 0.09, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:japanwest:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.78, + "SERVERLESS_SQL_COMPUTE": 1.0, + "SERVERLESS_REAL_TIME_INFERENCE": 0.09, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.67, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:koreacentral:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.086, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:mexicocentral:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.48, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.98, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.61, + "SERVERLESS_SQL_COMPUTE": 0.77, + "SERVERLESS_REAL_TIME_INFERENCE": 0.077, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.57, + "DATABRICKS_STORAGE": 0.029 + }, + "azure:northcentralus:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.026 + }, + "azure:northeurope:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.078, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.58, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:norwayeast:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.52, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.092, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.69, + "DATABRICKS_STORAGE": 0.027 + }, + "azure:qatarcentral:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.55, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.64, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:southafricanorth:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.52, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.093, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.69, + "DATABRICKS_STORAGE": 0.027 + }, + "azure:southcentralus:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.084, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.084, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.62, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:southeastasia:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:southindia:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.54, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "SERVERLESS_REAL_TIME_INFERENCE": 0.099, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.73, + "DATABRICKS_STORAGE": 0.03 + }, + "azure:swedencentral:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.074, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.55, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:switzerlandnorth:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.56, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.85, + "SERVERLESS_SQL_COMPUTE": 1.09, + "SERVERLESS_REAL_TIME_INFERENCE": 0.092, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.69, + "DATABRICKS_STORAGE": 0.027 + }, + "azure:switzerlandwest:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.65, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.14, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.96, + "SERVERLESS_SQL_COMPUTE": 0.55, + "SERVERLESS_REAL_TIME_INFERENCE": 0.12, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.9, + "DATABRICKS_STORAGE": 0.035 + }, + "azure:uaenorth:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.086, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.64, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:uksouth:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.081, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.081, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.6, + "DATABRICKS_STORAGE": 0.024 + }, + "azure:ukwest:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.085, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.024 + }, + "azure:westcentralus:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.62, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:westeurope:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.084, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.084, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:westindia:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.52, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "SERVERLESS_REAL_TIME_INFERENCE": 0.09, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.66, + "DATABRICKS_STORAGE": 0.025 + }, + "azure:westus2:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:westus3:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.023 + }, + "azure:westus:PREMIUM": { + "JOBS_COMPUTE": 0.3, + "JOBS_COMPUTE_(PHOTON)": 0.3, + "JOBS_LIGHT_COMPUTE": 0.22, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "ALL_PURPOSE_COMPUTE_(DLT)": 0.55, + "DLT_CORE_COMPUTE": 0.3, + "DLT_CORE_COMPUTE_(PHOTON)": 0.3, + "DLT_PRO_COMPUTE": 0.38, + "DLT_PRO_COMPUTE_(PHOTON)": 0.38, + "DLT_ADVANCED_COMPUTE": 0.54, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.54, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.082, + "SERVERLESS_REAL_TIME_INFERENCE_LAUNCH": 0.082, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.105, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.61, + "DATABRICKS_STORAGE": 0.026 + }, + "gcp:asia-northeast1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.78, + "SERVERLESS_SQL_COMPUTE": 1.0, + "SERVERLESS_REAL_TIME_INFERENCE": 0.09, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.663, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:asia-northeast1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.83, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.78, + "SERVERLESS_SQL_COMPUTE": 1.0, + "SERVERLESS_REAL_TIME_INFERENCE": 0.09, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.51, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:asia-south1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.61, + "SERVERLESS_SQL_COMPUTE": 0.77, + "SERVERLESS_REAL_TIME_INFERENCE": 0.074, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.59, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:asia-south1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.37, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.61, + "SERVERLESS_SQL_COMPUTE": 0.77, + "SERVERLESS_REAL_TIME_INFERENCE": 0.074, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.42, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:asia-southeast1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.637, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:asia-southeast1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.83, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.69, + "SERVERLESS_SQL_COMPUTE": 0.88, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.49, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:australia-southeast1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.05, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.65, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:australia-southeast1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.83, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.088, + "MODEL_TRAINING": 0.85, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.5, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:europe-west1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.084, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.572, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:europe-west1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.082, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.44, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:europe-west2:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.081, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.598, + "DATABRICKS_STORAGE": 0.024 + }, + "gcp:europe-west2:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.74, + "SERVERLESS_SQL_COMPUTE": 0.95, + "SERVERLESS_REAL_TIME_INFERENCE": 0.081, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.46, + "DATABRICKS_STORAGE": 0.024 + }, + "gcp:europe-west3:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.5, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.084, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.63, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:europe-west3:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.39, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.72, + "SERVERLESS_SQL_COMPUTE": 0.91, + "SERVERLESS_REAL_TIME_INFERENCE": 0.084, + "MODEL_TRAINING": 0.78, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.47, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:me-central2:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.59, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.14, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.91, + "SERVERLESS_SQL_COMPUTE": 1.16, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABRICKS_STORAGE": 0.03 + }, + "gcp:me-central2:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.46, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.9, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.91, + "SERVERLESS_SQL_COMPUTE": 1.16, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABRICKS_STORAGE": 0.03 + }, + "gcp:northamerica-northeast1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.47, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.0, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.61, + "SERVERLESS_SQL_COMPUTE": 0.79, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.572, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:northamerica-northeast1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.37, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.79, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.61, + "SERVERLESS_SQL_COMPUTE": 0.79, + "SERVERLESS_REAL_TIME_INFERENCE": 0.078, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.44, + "DATABRICKS_STORAGE": 0.025 + }, + "gcp:southamerica-east1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.59, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 1.14, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.85, + "SERVERLESS_SQL_COMPUTE": 1.09, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07 + }, + "gcp:southamerica-east1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.46, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.9, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.85, + "SERVERLESS_SQL_COMPUTE": 1.09, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07 + }, + "gcp:us-central1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-central1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.35, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.4, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-east1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.585, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-east1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.35, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.45, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-east4:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.585, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-east4:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.35, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.45, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-west1:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.52, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-west1:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.35, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.4, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-west4:ENTERPRISE": { + "JOBS_COMPUTE": 0.2, + "JOBS_COMPUTE_(PHOTON)": 0.2, + "JOBS_LIGHT_COMPUTE": 0.13, + "ALL_PURPOSE_COMPUTE": 0.65, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.65, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.45, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.95, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.585, + "DATABRICKS_STORAGE": 0.023 + }, + "gcp:us-west4:PREMIUM": { + "JOBS_COMPUTE": 0.15, + "JOBS_COMPUTE_(PHOTON)": 0.15, + "JOBS_LIGHT_COMPUTE": 0.1, + "ALL_PURPOSE_COMPUTE": 0.55, + "ALL_PURPOSE_COMPUTE_(PHOTON)": 0.55, + "DLT_CORE_COMPUTE": 0.2, + "DLT_CORE_COMPUTE_(PHOTON)": 0.2, + "DLT_PRO_COMPUTE": 0.25, + "DLT_PRO_COMPUTE_(PHOTON)": 0.25, + "DLT_ADVANCED_COMPUTE": 0.36, + "DLT_ADVANCED_COMPUTE_(PHOTON)": 0.36, + "JOBS_SERVERLESS_COMPUTE": 0.35, + "ALL_PURPOSE_SERVERLESS_COMPUTE": 0.75, + "SQL_COMPUTE": 0.22, + "SQL_PRO_COMPUTE": 0.55, + "SERVERLESS_SQL_COMPUTE": 0.7, + "SERVERLESS_REAL_TIME_INFERENCE": 0.07, + "MODEL_TRAINING": 0.65, + "OPENAI_MODEL_SERVING": 0.07, + "ANTHROPIC_MODEL_SERVING": 0.07, + "GEMINI_MODEL_SERVING": 0.07, + "DATABASE_SERVERLESS_COMPUTE": 0.45, + "DATABRICKS_STORAGE": 0.023 + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/fmapi-databricks-rates.csv b/lakemeter/backend/static/pricing/fmapi-databricks-rates.csv new file mode 100644 index 00000000..bfab5785 --- /dev/null +++ b/lakemeter/backend/static/pricing/fmapi-databricks-rates.csv @@ -0,0 +1,103 @@ +cloud,model,rate_type,dbu_rate,input_divisor,is_hourly,sku_product_type +AWS,bge-large,input_token,1.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,bge-large,provisioned_entry,24.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,bge-large,provisioned_scaling,24.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,gemma-3-12b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,gemma-3-12b,output_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,gemma-3-12b,provisioned_entry,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,gemma-3-12b,provisioned_scaling,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,gpt-oss-120b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,gpt-oss-120b,output_token,8.571,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,gpt-oss-120b,provisioned_entry,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,gpt-oss-120b,provisioned_scaling,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,gpt-oss-20b,input_token,1.0,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,gpt-oss-20b,output_token,4.286,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,gpt-oss-20b,provisioned_entry,53.571,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,gpt-oss-20b,provisioned_scaling,53.571,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,gte,input_token,1.857,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,gte,provisioned_entry,20.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,gte,provisioned_scaling,20.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-1-8b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-1-8b,output_token,6.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-1-8b,provisioned_entry,53.571,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-1-8b,provisioned_scaling,106.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-2-1b,provisioned_entry,42.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-2-1b,provisioned_scaling,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-2-3b,provisioned_entry,46.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-2-3b,provisioned_scaling,92.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-3-70b,input_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-3-70b,output_token,21.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-3-70b,provisioned_entry,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-3-3-70b,provisioned_scaling,342.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-4-maverick,input_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-4-maverick,output_token,21.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-4-maverick,provisioned_entry,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +AWS,llama-4-maverick,provisioned_scaling,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,bge-large,input_token,1.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,bge-large,provisioned_entry,24.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,bge-large,provisioned_scaling,24.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gemma-3-12b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gemma-3-12b,output_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gemma-3-12b,provisioned_entry,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gemma-3-12b,provisioned_scaling,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gpt-oss-120b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gpt-oss-120b,output_token,8.571,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gpt-oss-120b,provisioned_entry,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gpt-oss-120b,provisioned_scaling,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gpt-oss-20b,input_token,1.0,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gpt-oss-20b,output_token,4.286,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gpt-oss-20b,provisioned_entry,53.571,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gpt-oss-20b,provisioned_scaling,53.571,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gte,input_token,1.857,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gte,provisioned_entry,20.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,gte,provisioned_scaling,20.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-1-8b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-1-8b,output_token,6.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-1-8b,provisioned_entry,53.571,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-1-8b,provisioned_scaling,106.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-2-1b,provisioned_entry,42.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-2-1b,provisioned_scaling,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-2-3b,provisioned_entry,46.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-2-3b,provisioned_scaling,92.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-3-70b,input_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-3-70b,output_token,21.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-3-70b,provisioned_entry,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-3-3-70b,provisioned_scaling,342.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-4-maverick,input_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-4-maverick,output_token,21.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-4-maverick,provisioned_entry,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +AZURE,llama-4-maverick,provisioned_scaling,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,bge-large,input_token,1.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,bge-large,provisioned_entry,24.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,bge-large,provisioned_scaling,24.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,gemma-3-12b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,gemma-3-12b,output_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,gemma-3-12b,provisioned_entry,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,gemma-3-12b,provisioned_scaling,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,gpt-oss-120b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,gpt-oss-120b,output_token,8.571,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,gpt-oss-120b,provisioned_entry,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,gpt-oss-120b,provisioned_scaling,71.429,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,gpt-oss-20b,input_token,1.0,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,gpt-oss-20b,output_token,4.286,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,gpt-oss-20b,provisioned_entry,53.571,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,gpt-oss-20b,provisioned_scaling,53.571,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,gte,input_token,1.857,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,gte,provisioned_entry,20.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,gte,provisioned_scaling,20.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-1-8b,input_token,2.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-1-8b,output_token,6.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-1-8b,provisioned_entry,106.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-1-8b,provisioned_scaling,106.0,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-2-1b,provisioned_entry,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-2-1b,provisioned_scaling,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-2-3b,provisioned_entry,92.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-2-3b,provisioned_scaling,92.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-3-70b,input_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-3-70b,output_token,21.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-3-70b,provisioned_entry,342.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-3-3-70b,provisioned_scaling,342.857,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-4-maverick,input_token,7.143,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-4-maverick,output_token,21.429,1000000,False,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-4-maverick,provisioned_entry,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE +GCP,llama-4-maverick,provisioned_scaling,85.714,1,True,SERVERLESS_REAL_TIME_INFERENCE diff --git a/lakemeter/backend/static/pricing/fmapi-databricks-rates.json b/lakemeter/backend/static/pricing/fmapi-databricks-rates.json new file mode 100644 index 00000000..376d2d42 --- /dev/null +++ b/lakemeter/backend/static/pricing/fmapi-databricks-rates.json @@ -0,0 +1,614 @@ +{ + "aws:bge-large:input_token": { + "dbu_rate": 1.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:bge-large:provisioned_entry": { + "dbu_rate": 24.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:bge-large:provisioned_scaling": { + "dbu_rate": 24.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gemma-3-12b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gemma-3-12b:output_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gemma-3-12b:provisioned_entry": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gemma-3-12b:provisioned_scaling": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gpt-oss-120b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gpt-oss-120b:output_token": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gpt-oss-120b:provisioned_entry": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gpt-oss-120b:provisioned_scaling": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gpt-oss-20b:input_token": { + "dbu_rate": 1.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gpt-oss-20b:output_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gpt-oss-20b:provisioned_entry": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gpt-oss-20b:provisioned_scaling": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gte:input_token": { + "dbu_rate": 1.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gte:provisioned_entry": { + "dbu_rate": 20.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:gte:provisioned_scaling": { + "dbu_rate": 20.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-1-8b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-1-8b:output_token": { + "dbu_rate": 6.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-1-8b:provisioned_entry": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-1-8b:provisioned_scaling": { + "dbu_rate": 106.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-2-1b:provisioned_entry": { + "dbu_rate": 42.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-2-1b:provisioned_scaling": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-2-3b:provisioned_entry": { + "dbu_rate": 46.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-2-3b:provisioned_scaling": { + "dbu_rate": 92.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-3-70b:input_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-3-70b:output_token": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-3-70b:provisioned_entry": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-3-3-70b:provisioned_scaling": { + "dbu_rate": 342.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-4-maverick:input_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-4-maverick:output_token": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-4-maverick:provisioned_entry": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "aws:llama-4-maverick:provisioned_scaling": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:bge-large:input_token": { + "dbu_rate": 1.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:bge-large:provisioned_entry": { + "dbu_rate": 24.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:bge-large:provisioned_scaling": { + "dbu_rate": 24.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gemma-3-12b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gemma-3-12b:output_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gemma-3-12b:provisioned_entry": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gemma-3-12b:provisioned_scaling": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gpt-oss-120b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gpt-oss-120b:output_token": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gpt-oss-120b:provisioned_entry": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gpt-oss-120b:provisioned_scaling": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gpt-oss-20b:input_token": { + "dbu_rate": 1.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gpt-oss-20b:output_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gpt-oss-20b:provisioned_entry": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gpt-oss-20b:provisioned_scaling": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gte:input_token": { + "dbu_rate": 1.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gte:provisioned_entry": { + "dbu_rate": 20.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:gte:provisioned_scaling": { + "dbu_rate": 20.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-1-8b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-1-8b:output_token": { + "dbu_rate": 6.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-1-8b:provisioned_entry": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-1-8b:provisioned_scaling": { + "dbu_rate": 106.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-2-1b:provisioned_entry": { + "dbu_rate": 42.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-2-1b:provisioned_scaling": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-2-3b:provisioned_entry": { + "dbu_rate": 46.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-2-3b:provisioned_scaling": { + "dbu_rate": 92.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-3-70b:input_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-3-70b:output_token": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-3-70b:provisioned_entry": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-3-3-70b:provisioned_scaling": { + "dbu_rate": 342.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-4-maverick:input_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-4-maverick:output_token": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-4-maverick:provisioned_entry": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "azure:llama-4-maverick:provisioned_scaling": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:bge-large:input_token": { + "dbu_rate": 1.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:bge-large:provisioned_entry": { + "dbu_rate": 24.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:bge-large:provisioned_scaling": { + "dbu_rate": 24.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gemma-3-12b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gemma-3-12b:output_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gemma-3-12b:provisioned_entry": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gemma-3-12b:provisioned_scaling": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gpt-oss-120b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gpt-oss-120b:output_token": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gpt-oss-120b:provisioned_entry": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gpt-oss-120b:provisioned_scaling": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gpt-oss-20b:input_token": { + "dbu_rate": 1.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gpt-oss-20b:output_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gpt-oss-20b:provisioned_entry": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gpt-oss-20b:provisioned_scaling": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gte:input_token": { + "dbu_rate": 1.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gte:provisioned_entry": { + "dbu_rate": 20.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:gte:provisioned_scaling": { + "dbu_rate": 20.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-1-8b:input_token": { + "dbu_rate": 2.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-1-8b:output_token": { + "dbu_rate": 6.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-1-8b:provisioned_entry": { + "dbu_rate": 106.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-1-8b:provisioned_scaling": { + "dbu_rate": 106.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-2-1b:provisioned_entry": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-2-1b:provisioned_scaling": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-2-3b:provisioned_entry": { + "dbu_rate": 92.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-2-3b:provisioned_scaling": { + "dbu_rate": 92.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-3-70b:input_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-3-70b:output_token": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-3-70b:provisioned_entry": { + "dbu_rate": 342.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-3-3-70b:provisioned_scaling": { + "dbu_rate": 342.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-4-maverick:input_token": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-4-maverick:output_token": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-4-maverick:provisioned_entry": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + }, + "gcp:llama-4-maverick:provisioned_scaling": { + "dbu_rate": 85.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE" + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/fmapi-proprietary-rates.csv b/lakemeter/backend/static/pricing/fmapi-proprietary-rates.csv new file mode 100644 index 00000000..8d2e37ee --- /dev/null +++ b/lakemeter/backend/static/pricing/fmapi-proprietary-rates.csv @@ -0,0 +1,517 @@ +provider,model,endpoint_type,context_length,rate_type,dbu_rate,input_divisor,is_hourly,sku_product_type,cloud +aws,anthropic,,,claude-haiku-4-5,1.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-haiku-4-5,17.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-haiku-4-5,14.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-haiku-4-5,71.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-haiku-4-5,1.572,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-haiku-4-5,19.643,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-haiku-4-5,15.715,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-haiku-4-5,78.572,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,514.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,514.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,514.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,514.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-1,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-5,7.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-5,89.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-5,71.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-5,357.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-5,7.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-5,98.214,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-5,78.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-opus-4-5,392.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-3-7,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,214.286,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,235.715,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,9.428,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,117.857,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,94.285,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,353.572,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,235.715,1,True,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,4.715,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,58.928,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,47.143,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,anthropic,,,claude-sonnet-4-5,235.715,1000000,False,ANTHROPIC_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-pro,35.714,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-pro,214.286,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-pro,17.857,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-pro,142.857,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-pro,35.714,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-pro,214.286,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-pro,17.857,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,google,,,gemini-2-5-pro,142.857,1000000,False,GEMINI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,131.429,1,True,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,1.786,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,17.857,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,17.857,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,142.857,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,144.571,1,True,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,1.965,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,19.643,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,19.643,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5,157.143,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,131.429,1,True,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,1.786,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,17.857,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,17.857,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,142.857,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,144.571,1,True,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,1.965,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,19.643,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,19.643,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-1,157.143,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,71.429,1,True,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,0.357,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,3.571,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,3.571,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,28.571,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,78.571,1,True,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,0.393,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,3.929,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,3.929,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-mini,31.429,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,53.571,1,True,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,0.071,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,0.714,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,0.714,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,5.714,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,58.929,1,True,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,0.078,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,0.786,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,0.786,1000000,False,OPENAI_MODEL_SERVING,AWS +aws,openai,,,gpt-5-nano,6.286,1000000,False,OPENAI_MODEL_SERVING,AWS +azure,anthropic,,,claude-haiku-4-5,1.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-haiku-4-5,17.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-haiku-4-5,14.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-haiku-4-5,71.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-haiku-4-5,1.572,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-haiku-4-5,19.643,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-haiku-4-5,15.715,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-haiku-4-5,78.572,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,514.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,514.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,514.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,514.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-1,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-5,7.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-5,89.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-5,71.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-5,357.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-5,7.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-5,98.214,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-5,78.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-opus-4-5,392.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-3-7,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,214.286,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,235.715,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,9.428,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,117.857,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,94.285,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,353.572,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,235.715,1,True,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,4.715,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,58.928,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,47.143,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,anthropic,,,claude-sonnet-4-5,235.715,1000000,False,ANTHROPIC_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-pro,35.714,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-pro,214.286,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-pro,17.857,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-pro,142.857,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-pro,35.714,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-pro,214.286,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-pro,17.857,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,google,,,gemini-2-5-pro,142.857,1000000,False,GEMINI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,131.429,1,True,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,1.786,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,17.857,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,17.857,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,142.857,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,144.571,1,True,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,1.965,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,19.643,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,19.643,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5,157.143,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,131.429,1,True,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,1.786,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,17.857,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,17.857,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,142.857,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,144.571,1,True,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,1.965,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,19.643,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,19.643,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-1,157.143,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,71.429,1,True,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,0.357,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,3.571,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,3.571,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,28.571,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,78.571,1,True,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,0.393,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,3.929,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,3.929,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-mini,31.429,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,53.571,1,True,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,0.071,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,0.714,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,0.714,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,5.714,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,58.929,1,True,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,0.078,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,0.786,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,0.786,1000000,False,OPENAI_MODEL_SERVING,AZURE +azure,openai,,,gpt-5-nano,6.286,1000000,False,OPENAI_MODEL_SERVING,AZURE +gcp,anthropic,,,claude-haiku-4-5,1.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-haiku-4-5,17.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-haiku-4-5,14.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-haiku-4-5,71.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-haiku-4-5,1.572,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-haiku-4-5,19.643,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-haiku-4-5,15.715,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-haiku-4-5,78.572,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,514.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,514.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,514.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,514.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,21.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,267.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-1,1071.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-5,7.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-5,89.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-5,71.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-5,357.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-5,7.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-5,98.214,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-5,78.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-opus-4-5,392.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-3-7,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-1,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,8.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,107.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,85.714,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,321.429,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,214.286,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,4.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,53.571,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,42.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,214.286,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,235.715,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,9.428,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,117.857,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,94.285,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,353.572,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,235.715,1,True,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,4.715,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,58.928,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,47.143,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,anthropic,,,claude-sonnet-4-5,235.715,1000000,False,ANTHROPIC_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-flash,4.286,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-flash,35.714,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-pro,35.714,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-pro,214.286,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-pro,17.857,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-pro,142.857,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-pro,35.714,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-pro,214.286,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-pro,17.857,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,google,,,gemini-2-5-pro,142.857,1000000,False,GEMINI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,131.429,1,True,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,1.786,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,17.857,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,17.857,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,142.857,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,144.571,1,True,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,1.965,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,19.643,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,19.643,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5,157.143,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,131.429,1,True,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,1.786,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,17.857,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,17.857,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,142.857,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,144.571,1,True,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,1.965,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,19.643,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,19.643,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-1,157.143,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,71.429,1,True,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,0.357,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,3.571,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,3.571,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,28.571,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,78.571,1,True,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,0.393,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,3.929,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,3.929,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-mini,31.429,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,53.571,1,True,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,0.071,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,0.714,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,0.714,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,5.714,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,58.929,1,True,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,0.078,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,0.786,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,0.786,1000000,False,OPENAI_MODEL_SERVING,GCP +gcp,openai,,,gpt-5-nano,6.286,1000000,False,OPENAI_MODEL_SERVING,GCP diff --git a/lakemeter/backend/static/pricing/fmapi-proprietary-rates.json b/lakemeter/backend/static/pricing/fmapi-proprietary-rates.json new file mode 100644 index 00000000..79295cac --- /dev/null +++ b/lakemeter/backend/static/pricing/fmapi-proprietary-rates.json @@ -0,0 +1,6446 @@ +{ + "aws:openai:gpt-5-4-pro:global:short:input_token": { + "dbu_rate": 428.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:short:output_token": { + "dbu_rate": 2571.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:short:cache_write": { + "dbu_rate": 428.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:short:cache_read": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:short:batch_inference": { + "dbu_rate": 1142.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:short:input_token": { + "dbu_rate": 471.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:short:output_token": { + "dbu_rate": 2828.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:short:cache_write": { + "dbu_rate": 471.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:short:cache_read": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:short:batch_inference": { + "dbu_rate": 1257.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:long:input_token": { + "dbu_rate": 857.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:long:output_token": { + "dbu_rate": 3857.144, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:long:cache_write": { + "dbu_rate": 857.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:long:cache_read": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:global:long:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:long:input_token": { + "dbu_rate": 942.856, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:long:output_token": { + "dbu_rate": 4242.858, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:long:cache_write": { + "dbu_rate": 942.856, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:long:cache_read": { + "dbu_rate": 94.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4-pro:in_geo:long:batch_inference": { + "dbu_rate": 1142.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:short:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:short:input_token": { + "dbu_rate": 39.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:short:cache_write": { + "dbu_rate": 39.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:short:cache_read": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:short:batch_inference": { + "dbu_rate": 212.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:long:input_token": { + "dbu_rate": 71.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:long:cache_write": { + "dbu_rate": 71.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:global:long:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:long:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:long:cache_write": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:long:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-4:in_geo:long:batch_inference": { + "dbu_rate": 212.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:global:all:input_token": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:global:all:output_token": { + "dbu_rate": 200.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:global:all:cache_write": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:global:all:cache_read": { + "dbu_rate": 2.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:global:all:batch_inference": { + "dbu_rate": 184.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:in_geo:all:input_token": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:in_geo:all:output_token": { + "dbu_rate": 220.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:in_geo:all:cache_write": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:in_geo:all:cache_read": { + "dbu_rate": 2.75, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2:in_geo:all:batch_inference": { + "dbu_rate": 202.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2-5-3-codex:global:all:input_token": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2-5-3-codex:global:all:output_token": { + "dbu_rate": 200.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2-5-3-codex:global:all:cache_write": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2-5-3-codex:global:all:cache_read": { + "dbu_rate": 2.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2-5-3-codex:in_geo:all:input_token": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2-5-3-codex:in_geo:all:output_token": { + "dbu_rate": 220.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2-5-3-codex:in_geo:all:cache_write": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-2-5-3-codex:in_geo:all:cache_read": { + "dbu_rate": 2.75, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:global:all:batch_inference": { + "dbu_rate": 131.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1:in_geo:all:batch_inference": { + "dbu_rate": 144.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-max:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-max:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-max:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-max:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-max:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-max:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-max:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-max:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-mini:global:all:input_token": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-mini:global:all:output_token": { + "dbu_rate": 28.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-mini:global:all:cache_write": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-mini:global:all:cache_read": { + "dbu_rate": 0.357, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-mini:in_geo:all:input_token": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-mini:in_geo:all:output_token": { + "dbu_rate": 31.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-mini:in_geo:all:cache_write": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-1-codex-mini:in_geo:all:cache_read": { + "dbu_rate": 0.393, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:global:all:batch_inference": { + "dbu_rate": 131.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5:in_geo:all:batch_inference": { + "dbu_rate": 144.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:global:all:input_token": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:global:all:output_token": { + "dbu_rate": 28.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:global:all:cache_write": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:global:all:cache_read": { + "dbu_rate": 0.357, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:global:all:batch_inference": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:in_geo:all:input_token": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:in_geo:all:output_token": { + "dbu_rate": 31.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:in_geo:all:cache_write": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:in_geo:all:cache_read": { + "dbu_rate": 0.393, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-mini:in_geo:all:batch_inference": { + "dbu_rate": 78.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:global:all:input_token": { + "dbu_rate": 0.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:global:all:output_token": { + "dbu_rate": 5.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:global:all:cache_write": { + "dbu_rate": 0.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:global:all:cache_read": { + "dbu_rate": 0.071, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:global:all:batch_inference": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:in_geo:all:input_token": { + "dbu_rate": 0.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:in_geo:all:output_token": { + "dbu_rate": 6.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:in_geo:all:cache_write": { + "dbu_rate": 0.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:in_geo:all:cache_read": { + "dbu_rate": 0.078, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:openai:gpt-5-nano:in_geo:all:batch_inference": { + "dbu_rate": 58.929, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:short:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:short:output_token": { + "dbu_rate": 357.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:short:cache_write": { + "dbu_rate": 89.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:short:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:short:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:short:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:short:output_token": { + "dbu_rate": 392.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:short:cache_write": { + "dbu_rate": 98.214, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:short:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:short:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:long:input_token": { + "dbu_rate": 142.858, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:long:output_token": { + "dbu_rate": 535.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:long:cache_write": { + "dbu_rate": 178.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:long:cache_read": { + "dbu_rate": 14.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:global:long:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:long:input_token": { + "dbu_rate": 157.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:long:output_token": { + "dbu_rate": 589.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:long:cache_write": { + "dbu_rate": 196.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:long:cache_read": { + "dbu_rate": 15.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-6:in_geo:long:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:global:short:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:global:short:output_token": { + "dbu_rate": 357.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:global:short:cache_write": { + "dbu_rate": 89.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:global:short:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:global:short:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:in_geo:short:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:in_geo:short:output_token": { + "dbu_rate": 392.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:in_geo:short:cache_write": { + "dbu_rate": 98.214, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:in_geo:short:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-5:in_geo:short:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:global:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:global:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:global:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:global:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:global:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:in_geo:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:in_geo:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:in_geo:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:in_geo:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4:in_geo:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:global:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:global:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:global:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:global:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:global:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:in_geo:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:in_geo:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:in_geo:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:in_geo:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-opus-4-1:in_geo:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:short:input_token": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:short:cache_write": { + "dbu_rate": 58.928, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:short:cache_read": { + "dbu_rate": 4.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:short:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:long:input_token": { + "dbu_rate": 94.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:long:cache_write": { + "dbu_rate": 117.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:long:cache_read": { + "dbu_rate": 9.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-5:in_geo:long:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:short:input_token": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:short:cache_write": { + "dbu_rate": 58.928, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:short:cache_read": { + "dbu_rate": 4.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:short:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:long:input_token": { + "dbu_rate": 94.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:long:cache_write": { + "dbu_rate": 117.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:long:cache_read": { + "dbu_rate": 9.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-6:in_geo:long:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-3-7:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-sonnet-4-1:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:global:all:input_token": { + "dbu_rate": 14.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:global:all:output_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:global:all:cache_read": { + "dbu_rate": 1.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:global:all:batch_inference": { + "dbu_rate": 114.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:in_geo:all:input_token": { + "dbu_rate": 15.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:in_geo:all:output_token": { + "dbu_rate": 78.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:in_geo:all:cache_read": { + "dbu_rate": 1.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:anthropic:claude-haiku-4-5:in_geo:all:batch_inference": { + "dbu_rate": 125.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:global:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-1-pro:in_geo:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:global:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-pro:in_geo:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:short:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:short:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:short:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:short:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:short:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:short:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:short:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:short:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:short:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:short:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:long:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:long:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:long:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:long:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:global:long:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:long:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:long:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:long:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:long:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-3-0-flash:in_geo:long:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:global:short:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:global:short:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:global:short:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:in_geo:short:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:in_geo:short:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:in_geo:short:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:global:long:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:global:long:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:global:long:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:in_geo:long:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:in_geo:long:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-pro:in_geo:long:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:global:short:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:global:short:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:global:short:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:in_geo:short:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:in_geo:short:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:in_geo:short:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:global:long:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:global:long:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:global:long:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:in_geo:long:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:in_geo:long:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "aws:google:gemini-2-5-flash:in_geo:long:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:short:input_token": { + "dbu_rate": 428.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:short:output_token": { + "dbu_rate": 2571.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:short:cache_write": { + "dbu_rate": 428.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:short:cache_read": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:short:batch_inference": { + "dbu_rate": 1142.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:short:input_token": { + "dbu_rate": 471.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:short:output_token": { + "dbu_rate": 2828.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:short:cache_write": { + "dbu_rate": 471.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:short:cache_read": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:short:batch_inference": { + "dbu_rate": 1257.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:long:input_token": { + "dbu_rate": 857.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:long:output_token": { + "dbu_rate": 3857.144, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:long:cache_write": { + "dbu_rate": 857.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:long:cache_read": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:global:long:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:long:input_token": { + "dbu_rate": 942.856, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:long:output_token": { + "dbu_rate": 4242.858, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:long:cache_write": { + "dbu_rate": 942.856, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:long:cache_read": { + "dbu_rate": 94.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4-pro:in_geo:long:batch_inference": { + "dbu_rate": 1142.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:short:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:short:input_token": { + "dbu_rate": 39.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:short:cache_write": { + "dbu_rate": 39.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:short:cache_read": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:short:batch_inference": { + "dbu_rate": 212.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:long:input_token": { + "dbu_rate": 71.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:long:cache_write": { + "dbu_rate": 71.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:global:long:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:long:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:long:cache_write": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:long:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-4:in_geo:long:batch_inference": { + "dbu_rate": 212.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:global:all:input_token": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:global:all:output_token": { + "dbu_rate": 200.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:global:all:cache_write": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:global:all:cache_read": { + "dbu_rate": 2.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:global:all:batch_inference": { + "dbu_rate": 184.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:in_geo:all:input_token": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:in_geo:all:output_token": { + "dbu_rate": 220.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:in_geo:all:cache_write": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:in_geo:all:cache_read": { + "dbu_rate": 2.75, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2:in_geo:all:batch_inference": { + "dbu_rate": 202.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2-5-3-codex:global:all:input_token": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2-5-3-codex:global:all:output_token": { + "dbu_rate": 200.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2-5-3-codex:global:all:cache_write": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2-5-3-codex:global:all:cache_read": { + "dbu_rate": 2.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2-5-3-codex:in_geo:all:input_token": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2-5-3-codex:in_geo:all:output_token": { + "dbu_rate": 220.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2-5-3-codex:in_geo:all:cache_write": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-2-5-3-codex:in_geo:all:cache_read": { + "dbu_rate": 2.75, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:global:all:batch_inference": { + "dbu_rate": 131.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1:in_geo:all:batch_inference": { + "dbu_rate": 144.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-max:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-max:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-max:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-max:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-max:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-max:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-max:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-max:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-mini:global:all:input_token": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-mini:global:all:output_token": { + "dbu_rate": 28.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-mini:global:all:cache_write": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-mini:global:all:cache_read": { + "dbu_rate": 0.357, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-mini:in_geo:all:input_token": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-mini:in_geo:all:output_token": { + "dbu_rate": 31.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-mini:in_geo:all:cache_write": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-1-codex-mini:in_geo:all:cache_read": { + "dbu_rate": 0.393, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:global:all:batch_inference": { + "dbu_rate": 131.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5:in_geo:all:batch_inference": { + "dbu_rate": 144.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:global:all:input_token": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:global:all:output_token": { + "dbu_rate": 28.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:global:all:cache_write": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:global:all:cache_read": { + "dbu_rate": 0.357, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:global:all:batch_inference": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:in_geo:all:input_token": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:in_geo:all:output_token": { + "dbu_rate": 31.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:in_geo:all:cache_write": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:in_geo:all:cache_read": { + "dbu_rate": 0.393, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-mini:in_geo:all:batch_inference": { + "dbu_rate": 78.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:global:all:input_token": { + "dbu_rate": 0.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:global:all:output_token": { + "dbu_rate": 5.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:global:all:cache_write": { + "dbu_rate": 0.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:global:all:cache_read": { + "dbu_rate": 0.071, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:global:all:batch_inference": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:in_geo:all:input_token": { + "dbu_rate": 0.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:in_geo:all:output_token": { + "dbu_rate": 6.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:in_geo:all:cache_write": { + "dbu_rate": 0.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:in_geo:all:cache_read": { + "dbu_rate": 0.078, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:openai:gpt-5-nano:in_geo:all:batch_inference": { + "dbu_rate": 58.929, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:short:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:short:output_token": { + "dbu_rate": 357.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:short:cache_write": { + "dbu_rate": 89.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:short:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:short:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:short:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:short:output_token": { + "dbu_rate": 392.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:short:cache_write": { + "dbu_rate": 98.214, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:short:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:short:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:long:input_token": { + "dbu_rate": 142.858, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:long:output_token": { + "dbu_rate": 535.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:long:cache_write": { + "dbu_rate": 178.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:long:cache_read": { + "dbu_rate": 14.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:global:long:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:long:input_token": { + "dbu_rate": 157.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:long:output_token": { + "dbu_rate": 589.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:long:cache_write": { + "dbu_rate": 196.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:long:cache_read": { + "dbu_rate": 15.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-6:in_geo:long:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:global:short:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:global:short:output_token": { + "dbu_rate": 357.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:global:short:cache_write": { + "dbu_rate": 89.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:global:short:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:global:short:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:in_geo:short:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:in_geo:short:output_token": { + "dbu_rate": 392.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:in_geo:short:cache_write": { + "dbu_rate": 98.214, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:in_geo:short:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-5:in_geo:short:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:global:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:global:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:global:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:global:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:global:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:in_geo:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:in_geo:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:in_geo:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:in_geo:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4:in_geo:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:global:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:global:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:global:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:global:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:global:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:in_geo:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:in_geo:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:in_geo:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:in_geo:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-opus-4-1:in_geo:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:short:input_token": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:short:cache_write": { + "dbu_rate": 58.928, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:short:cache_read": { + "dbu_rate": 4.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:short:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:long:input_token": { + "dbu_rate": 94.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:long:cache_write": { + "dbu_rate": 117.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:long:cache_read": { + "dbu_rate": 9.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-5:in_geo:long:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:short:input_token": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:short:cache_write": { + "dbu_rate": 58.928, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:short:cache_read": { + "dbu_rate": 4.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:short:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:long:input_token": { + "dbu_rate": 94.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:long:cache_write": { + "dbu_rate": 117.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:long:cache_read": { + "dbu_rate": 9.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-6:in_geo:long:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-3-7:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-sonnet-4-1:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:global:all:input_token": { + "dbu_rate": 14.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:global:all:output_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:global:all:cache_read": { + "dbu_rate": 1.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:global:all:batch_inference": { + "dbu_rate": 114.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:in_geo:all:input_token": { + "dbu_rate": 15.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:in_geo:all:output_token": { + "dbu_rate": 78.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:in_geo:all:cache_read": { + "dbu_rate": 1.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:anthropic:claude-haiku-4-5:in_geo:all:batch_inference": { + "dbu_rate": 125.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:global:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-1-pro:in_geo:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:global:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-pro:in_geo:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:short:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:short:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:short:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:short:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:short:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:short:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:short:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:short:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:short:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:short:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:long:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:long:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:long:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:long:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:global:long:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:long:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:long:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:long:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:long:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-3-0-flash:in_geo:long:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:global:short:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:global:short:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:global:short:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:in_geo:short:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:in_geo:short:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:in_geo:short:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:global:long:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:global:long:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:global:long:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:in_geo:long:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:in_geo:long:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-pro:in_geo:long:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:global:short:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:global:short:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:global:short:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:in_geo:short:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:in_geo:short:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:in_geo:short:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:global:long:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:global:long:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:global:long:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:in_geo:long:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:in_geo:long:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "azure:google:gemini-2-5-flash:in_geo:long:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:short:input_token": { + "dbu_rate": 428.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:short:output_token": { + "dbu_rate": 2571.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:short:cache_write": { + "dbu_rate": 428.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:short:cache_read": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:short:batch_inference": { + "dbu_rate": 1142.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:short:input_token": { + "dbu_rate": 471.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:short:output_token": { + "dbu_rate": 2828.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:short:cache_write": { + "dbu_rate": 471.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:short:cache_read": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:short:batch_inference": { + "dbu_rate": 1257.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:long:input_token": { + "dbu_rate": 857.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:long:output_token": { + "dbu_rate": 3857.144, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:long:cache_write": { + "dbu_rate": 857.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:long:cache_read": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:global:long:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:long:input_token": { + "dbu_rate": 942.856, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:long:output_token": { + "dbu_rate": 4242.858, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:long:cache_write": { + "dbu_rate": 942.856, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:long:cache_read": { + "dbu_rate": 94.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4-pro:in_geo:long:batch_inference": { + "dbu_rate": 1142.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:short:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:short:input_token": { + "dbu_rate": 39.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:short:cache_write": { + "dbu_rate": 39.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:short:cache_read": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:short:batch_inference": { + "dbu_rate": 212.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:long:input_token": { + "dbu_rate": 71.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:long:cache_write": { + "dbu_rate": 71.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:global:long:batch_inference": { + "dbu_rate": 192.857, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:long:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:long:cache_write": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:long:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-4:in_geo:long:batch_inference": { + "dbu_rate": 212.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:global:all:input_token": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:global:all:output_token": { + "dbu_rate": 200.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:global:all:cache_write": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:global:all:cache_read": { + "dbu_rate": 2.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:global:all:batch_inference": { + "dbu_rate": 184.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:in_geo:all:input_token": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:in_geo:all:output_token": { + "dbu_rate": 220.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:in_geo:all:cache_write": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:in_geo:all:cache_read": { + "dbu_rate": 2.75, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2:in_geo:all:batch_inference": { + "dbu_rate": 202.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2-5-3-codex:global:all:input_token": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2-5-3-codex:global:all:output_token": { + "dbu_rate": 200.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2-5-3-codex:global:all:cache_write": { + "dbu_rate": 25.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2-5-3-codex:global:all:cache_read": { + "dbu_rate": 2.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2-5-3-codex:in_geo:all:input_token": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2-5-3-codex:in_geo:all:output_token": { + "dbu_rate": 220.0, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2-5-3-codex:in_geo:all:cache_write": { + "dbu_rate": 27.5, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-2-5-3-codex:in_geo:all:cache_read": { + "dbu_rate": 2.75, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:global:all:batch_inference": { + "dbu_rate": 131.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1:in_geo:all:batch_inference": { + "dbu_rate": 144.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-max:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-max:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-max:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-max:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-max:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-max:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-max:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-max:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-mini:global:all:input_token": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-mini:global:all:output_token": { + "dbu_rate": 28.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-mini:global:all:cache_write": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-mini:global:all:cache_read": { + "dbu_rate": 0.357, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-mini:in_geo:all:input_token": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-mini:in_geo:all:output_token": { + "dbu_rate": 31.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-mini:in_geo:all:cache_write": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-1-codex-mini:in_geo:all:cache_read": { + "dbu_rate": 0.393, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:global:all:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:global:all:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:global:all:cache_read": { + "dbu_rate": 1.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:global:all:batch_inference": { + "dbu_rate": 131.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:in_geo:all:input_token": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:in_geo:all:output_token": { + "dbu_rate": 157.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:in_geo:all:cache_read": { + "dbu_rate": 1.965, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5:in_geo:all:batch_inference": { + "dbu_rate": 144.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:global:all:input_token": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:global:all:output_token": { + "dbu_rate": 28.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:global:all:cache_write": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:global:all:cache_read": { + "dbu_rate": 0.357, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:global:all:batch_inference": { + "dbu_rate": 71.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:in_geo:all:input_token": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:in_geo:all:output_token": { + "dbu_rate": 31.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:in_geo:all:cache_write": { + "dbu_rate": 3.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:in_geo:all:cache_read": { + "dbu_rate": 0.393, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-mini:in_geo:all:batch_inference": { + "dbu_rate": 78.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:global:all:input_token": { + "dbu_rate": 0.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:global:all:output_token": { + "dbu_rate": 5.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:global:all:cache_write": { + "dbu_rate": 0.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:global:all:cache_read": { + "dbu_rate": 0.071, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:global:all:batch_inference": { + "dbu_rate": 53.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:in_geo:all:input_token": { + "dbu_rate": 0.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:in_geo:all:output_token": { + "dbu_rate": 6.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:in_geo:all:cache_write": { + "dbu_rate": 0.786, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:in_geo:all:cache_read": { + "dbu_rate": 0.078, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:openai:gpt-5-nano:in_geo:all:batch_inference": { + "dbu_rate": 58.929, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "OPENAI_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:short:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:short:output_token": { + "dbu_rate": 357.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:short:cache_write": { + "dbu_rate": 89.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:short:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:short:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:short:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:short:output_token": { + "dbu_rate": 392.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:short:cache_write": { + "dbu_rate": 98.214, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:short:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:short:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:long:input_token": { + "dbu_rate": 142.858, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:long:output_token": { + "dbu_rate": 535.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:long:cache_write": { + "dbu_rate": 178.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:long:cache_read": { + "dbu_rate": 14.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:global:long:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:long:input_token": { + "dbu_rate": 157.142, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:long:output_token": { + "dbu_rate": 589.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:long:cache_write": { + "dbu_rate": 196.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:long:cache_read": { + "dbu_rate": 15.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-6:in_geo:long:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:global:short:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:global:short:output_token": { + "dbu_rate": 357.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:global:short:cache_write": { + "dbu_rate": 89.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:global:short:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:global:short:batch_inference": { + "dbu_rate": 178.571, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:in_geo:short:input_token": { + "dbu_rate": 78.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:in_geo:short:output_token": { + "dbu_rate": 392.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:in_geo:short:cache_write": { + "dbu_rate": 98.214, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:in_geo:short:cache_read": { + "dbu_rate": 7.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-5:in_geo:short:batch_inference": { + "dbu_rate": 196.429, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:global:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:global:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:global:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:global:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:global:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:in_geo:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:in_geo:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:in_geo:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:in_geo:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4:in_geo:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:global:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:global:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:global:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:global:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:global:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:in_geo:all:input_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:in_geo:all:output_token": { + "dbu_rate": 1071.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:in_geo:all:cache_write": { + "dbu_rate": 267.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:in_geo:all:cache_read": { + "dbu_rate": 21.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-opus-4-1:in_geo:all:batch_inference": { + "dbu_rate": 514.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:short:input_token": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:short:cache_write": { + "dbu_rate": 58.928, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:short:cache_read": { + "dbu_rate": 4.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:short:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:long:input_token": { + "dbu_rate": 94.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:long:cache_write": { + "dbu_rate": 117.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:long:cache_read": { + "dbu_rate": 9.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-5:in_geo:long:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:short:input_token": { + "dbu_rate": 47.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:short:output_token": { + "dbu_rate": 235.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:short:cache_write": { + "dbu_rate": 58.928, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:short:cache_read": { + "dbu_rate": 4.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:short:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:long:input_token": { + "dbu_rate": 94.285, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:long:output_token": { + "dbu_rate": 353.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:long:cache_write": { + "dbu_rate": 117.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:long:cache_read": { + "dbu_rate": 9.428, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-6:in_geo:long:batch_inference": { + "dbu_rate": 235.715, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-3-7:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:short:input_token": { + "dbu_rate": 42.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:short:cache_write": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:short:cache_read": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:short:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:global:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:long:input_token": { + "dbu_rate": 85.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:long:cache_write": { + "dbu_rate": 107.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:long:cache_read": { + "dbu_rate": 8.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-sonnet-4-1:in_geo:long:batch_inference": { + "dbu_rate": 214.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:global:all:input_token": { + "dbu_rate": 14.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:global:all:output_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:global:all:cache_write": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:global:all:cache_read": { + "dbu_rate": 1.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:global:all:batch_inference": { + "dbu_rate": 114.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:in_geo:all:input_token": { + "dbu_rate": 15.715, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:in_geo:all:output_token": { + "dbu_rate": 78.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:in_geo:all:cache_write": { + "dbu_rate": 19.643, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:in_geo:all:cache_read": { + "dbu_rate": 1.572, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:anthropic:claude-haiku-4-5:in_geo:all:batch_inference": { + "dbu_rate": 125.714, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "ANTHROPIC_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:global:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-1-pro:in_geo:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:short:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:short:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:short:cache_write": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:short:cache_read": { + "dbu_rate": 3.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:short:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:global:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:long:input_token": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:long:output_token": { + "dbu_rate": 321.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:long:cache_write": { + "dbu_rate": 71.429, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:long:cache_read": { + "dbu_rate": 7.143, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-pro:in_geo:long:batch_inference": { + "dbu_rate": 230.357, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:short:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:short:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:short:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:short:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:short:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:short:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:short:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:short:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:short:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:short:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:long:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:long:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:long:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:long:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:global:long:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:long:input_token": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:long:output_token": { + "dbu_rate": 53.571, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:long:cache_write": { + "dbu_rate": 8.929, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:long:cache_read": { + "dbu_rate": 0.893, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-3-0-flash:in_geo:long:batch_inference": { + "dbu_rate": 125.0, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:global:short:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:global:short:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:global:short:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:in_geo:short:input_token": { + "dbu_rate": 17.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:in_geo:short:output_token": { + "dbu_rate": 142.857, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:in_geo:short:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:global:long:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:global:long:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:global:long:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:in_geo:long:input_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:in_geo:long:output_token": { + "dbu_rate": 214.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-pro:in_geo:long:batch_inference": { + "dbu_rate": 164.286, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:global:short:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:global:short:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:global:short:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:in_geo:short:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:in_geo:short:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:in_geo:short:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:global:long:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:global:long:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:global:long:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:in_geo:long:input_token": { + "dbu_rate": 4.286, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:in_geo:long:output_token": { + "dbu_rate": 35.714, + "input_divisor": 1000000, + "is_hourly": false, + "sku_product_type": "GEMINI_MODEL_SERVING" + }, + "gcp:google:gemini-2-5-flash:in_geo:long:batch_inference": { + "dbu_rate": 107.143, + "input_divisor": 1, + "is_hourly": true, + "sku_product_type": "GEMINI_MODEL_SERVING" + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/instance-dbu-rates.csv b/lakemeter/backend/static/pricing/instance-dbu-rates.csv new file mode 100644 index 00000000..f2fa2d23 --- /dev/null +++ b/lakemeter/backend/static/pricing/instance-dbu-rates.csv @@ -0,0 +1,1070 @@ +cloud,instance_type,vcpus,memory_gb,dbu_rate,instance_family,is_active,source +AWS,c5.12xlarge,48.0,96.0,7.28,Compute Optimized,True,pricing_bundle +AWS,c5.18xlarge,72.0,144.0,10.92,Compute Optimized,True,pricing_bundle +AWS,c5.24xlarge,96.0,192.0,14.56,Compute Optimized,True,pricing_bundle +AWS,c5.4xlarge,16.0,32.0,2.43,Compute Optimized,True,pricing_bundle +AWS,c5.9xlarge,36.0,72.0,5.46,Compute Optimized,True,pricing_bundle +AWS,c5a.12xlarge,48.0,96.0,7.28,Compute Optimized,True,pricing_bundle +AWS,c5a.16xlarge,64.0,128.0,9.72,Compute Optimized,True,pricing_bundle +AWS,c5a.24xlarge,96.0,192.0,14.56,Compute Optimized,True,pricing_bundle +AWS,c5a.2xlarge,8.0,16.0,1.21,Compute Optimized,True,pricing_bundle +AWS,c5a.4xlarge,16.0,32.0,2.43,Compute Optimized,True,pricing_bundle +AWS,c5a.8xlarge,32.0,64.0,4.86,Compute Optimized,True,pricing_bundle +AWS,c5a.xlarge,4.0,8.0,0.61,Compute Optimized,True,pricing_bundle +AWS,c5ad.12xlarge,48.0,96.0,8.22,Compute Optimized,True,pricing_bundle +AWS,c5ad.16xlarge,64.0,128.0,10.96,Compute Optimized,True,pricing_bundle +AWS,c5ad.24xlarge,96.0,192.0,16.44,Compute Optimized,True,pricing_bundle +AWS,c5ad.2xlarge,8.0,16.0,1.37,Compute Optimized,True,pricing_bundle +AWS,c5ad.4xlarge,16.0,32.0,2.74,Compute Optimized,True,pricing_bundle +AWS,c5ad.8xlarge,32.0,64.0,5.48,Compute Optimized,True,pricing_bundle +AWS,c5ad.xlarge,4.0,8.0,0.69,Compute Optimized,True,pricing_bundle +AWS,c5d.12xlarge,48.0,96.0,7.28,Compute Optimized,True,pricing_bundle +AWS,c5d.18xlarge,72.0,144.0,10.92,Compute Optimized,True,pricing_bundle +AWS,c5d.24xlarge,96.0,192.0,14.56,Compute Optimized,True,pricing_bundle +AWS,c5d.2xlarge,8.0,16.0,1.21,Compute Optimized,True,pricing_bundle +AWS,c5d.4xlarge,16.0,32.0,2.43,Compute Optimized,True,pricing_bundle +AWS,c5d.9xlarge,36.0,72.0,5.46,Compute Optimized,True,pricing_bundle +AWS,c5d.xlarge,4.0,8.0,0.61,Compute Optimized,True,pricing_bundle +AWS,c5n.18xlarge,72.0,192.0,13.97,Compute Optimized,True,pricing_bundle +AWS,c5n.2xlarge,8.0,21.0,1.55,Compute Optimized,True,pricing_bundle +AWS,c5n.4xlarge,16.0,42.0,3.11,Compute Optimized,True,pricing_bundle +AWS,c5n.9xlarge,36.0,96.0,6.99,Compute Optimized,True,pricing_bundle +AWS,c5n.metal,72.0,192.0,13.97,Compute Optimized,True,pricing_bundle +AWS,c5n.xlarge,4.0,10.5,0.78,Compute Optimized,True,pricing_bundle +AWS,c6g.12xlarge,48.0,96.0,9.24,Compute Optimized,True,pricing_bundle +AWS,c6g.16xlarge,64.0,128.0,12.32,Compute Optimized,True,pricing_bundle +AWS,c6g.2xlarge,8.0,16.0,1.54,Compute Optimized,True,pricing_bundle +AWS,c6g.4xlarge,16.0,32.0,3.08,Compute Optimized,True,pricing_bundle +AWS,c6g.8xlarge,32.0,64.0,6.16,Compute Optimized,True,pricing_bundle +AWS,c6g.xlarge,4.0,8.0,0.77,Compute Optimized,True,pricing_bundle +AWS,c6gd.12xlarge,48.0,96.0,9.24,Compute Optimized,True,pricing_bundle +AWS,c6gd.16xlarge,64.0,128.0,12.32,Compute Optimized,True,pricing_bundle +AWS,c6gd.2xlarge,8.0,16.0,1.54,Compute Optimized,True,pricing_bundle +AWS,c6gd.4xlarge,16.0,32.0,3.08,Compute Optimized,True,pricing_bundle +AWS,c6gd.8xlarge,32.0,64.0,6.16,Compute Optimized,True,pricing_bundle +AWS,c6gd.xlarge,4.0,8.0,0.77,Compute Optimized,True,pricing_bundle +AWS,c6i.12xlarge,48.0,96.0,8.34,Compute Optimized,True,pricing_bundle +AWS,c6i.16xlarge,64.0,128.0,11.13,Compute Optimized,True,pricing_bundle +AWS,c6i.24xlarge,96.0,192.0,16.69,Compute Optimized,True,pricing_bundle +AWS,c6i.2xlarge,8.0,16.0,1.39,Compute Optimized,True,pricing_bundle +AWS,c6i.32xlarge,128.0,256.0,22.25,Compute Optimized,True,pricing_bundle +AWS,c6i.4xlarge,16.0,32.0,2.78,Compute Optimized,True,pricing_bundle +AWS,c6i.8xlarge,32.0,64.0,5.56,Compute Optimized,True,pricing_bundle +AWS,c6i.xlarge,4.0,8.0,0.7,Compute Optimized,True,pricing_bundle +AWS,c6id.12xlarge,48.0,96.0,8.34,Compute Optimized,True,pricing_bundle +AWS,c6id.16xlarge,64.0,128.0,11.13,Compute Optimized,True,pricing_bundle +AWS,c6id.24xlarge,96.0,192.0,16.69,Compute Optimized,True,pricing_bundle +AWS,c6id.2xlarge,8.0,16.0,1.39,Compute Optimized,True,pricing_bundle +AWS,c6id.32xlarge,128.0,256.0,22.25,Compute Optimized,True,pricing_bundle +AWS,c6id.4xlarge,16.0,32.0,2.78,Compute Optimized,True,pricing_bundle +AWS,c6id.8xlarge,32.0,64.0,5.56,Compute Optimized,True,pricing_bundle +AWS,c6id.xlarge,4.0,8.0,0.7,Compute Optimized,True,pricing_bundle +AWS,c6in.12xlarge,48.0,96.0,8.34,Compute Optimized,True,pricing_bundle +AWS,c6in.16xlarge,64.0,128.0,11.13,Compute Optimized,True,pricing_bundle +AWS,c6in.24xlarge,96.0,192.0,16.69,Compute Optimized,True,pricing_bundle +AWS,c6in.2xlarge,8.0,16.0,1.39,Compute Optimized,True,pricing_bundle +AWS,c6in.32xlarge,128.0,256.0,22.25,Compute Optimized,True,pricing_bundle +AWS,c6in.4xlarge,16.0,32.0,2.78,Compute Optimized,True,pricing_bundle +AWS,c6in.8xlarge,32.0,64.0,5.56,Compute Optimized,True,pricing_bundle +AWS,c6in.xlarge,4.0,8.0,0.7,Compute Optimized,True,pricing_bundle +AWS,c7a.12xlarge,48.0,96.0,9.9,Compute Optimized,True,pricing_bundle +AWS,c7a.16xlarge,64.0,128.0,13.2,Compute Optimized,True,pricing_bundle +AWS,c7a.24xlarge,96.0,192.0,19.8,Compute Optimized,True,pricing_bundle +AWS,c7a.2xlarge,8.0,16.0,1.65,Compute Optimized,True,pricing_bundle +AWS,c7a.32xlarge,128.0,256.0,26.4,Compute Optimized,True,pricing_bundle +AWS,c7a.48xlarge,192.0,384.0,39.6,Compute Optimized,True,pricing_bundle +AWS,c7a.4xlarge,16.0,32.0,3.3,Compute Optimized,True,pricing_bundle +AWS,c7a.8xlarge,32.0,64.0,6.6,Compute Optimized,True,pricing_bundle +AWS,c7a.xlarge,4.0,8.0,0.83,Compute Optimized,True,pricing_bundle +AWS,c7g.12xlarge,48.0,96.0,10.86,Compute Optimized,True,pricing_bundle +AWS,c7g.16xlarge,64.0,128.0,14.48,Compute Optimized,True,pricing_bundle +AWS,c7g.2xlarge,8.0,16.0,1.81,Compute Optimized,True,pricing_bundle +AWS,c7g.4xlarge,16.0,32.0,3.62,Compute Optimized,True,pricing_bundle +AWS,c7g.8xlarge,32.0,64.0,7.24,Compute Optimized,True,pricing_bundle +AWS,c7g.xlarge,4.0,8.0,0.9,Compute Optimized,True,pricing_bundle +AWS,c7gd.12xlarge,48.0,96.0,10.86,Compute Optimized,True,pricing_bundle +AWS,c7gd.16xlarge,64.0,128.0,14.48,Compute Optimized,True,pricing_bundle +AWS,c7gd.2xlarge,8.0,16.0,1.81,Compute Optimized,True,pricing_bundle +AWS,c7gd.4xlarge,16.0,32.0,3.62,Compute Optimized,True,pricing_bundle +AWS,c7gd.8xlarge,32.0,64.0,7.24,Compute Optimized,True,pricing_bundle +AWS,c7gd.xlarge,4.0,8.0,0.9,Compute Optimized,True,pricing_bundle +AWS,c7i.12xlarge,48.0,96.0,9.18,Compute Optimized,True,pricing_bundle +AWS,c7i.16xlarge,64.0,128.0,12.24,Compute Optimized,True,pricing_bundle +AWS,c7i.24xlarge,96.0,192.0,18.36,Compute Optimized,True,pricing_bundle +AWS,c7i.2xlarge,8.0,16.0,1.53,Compute Optimized,True,pricing_bundle +AWS,c7i.48xlarge,192.0,384.0,36.72,Compute Optimized,True,pricing_bundle +AWS,c7i.4xlarge,16.0,32.0,3.06,Compute Optimized,True,pricing_bundle +AWS,c7i.8xlarge,32.0,64.0,6.12,Compute Optimized,True,pricing_bundle +AWS,c7i.large,2.0,4.0,0.38,Compute Optimized,True,pricing_bundle +AWS,c7i.metal-24xl,96.0,192.0,18.36,Compute Optimized,True,pricing_bundle +AWS,c7i.metal-48xl,192.0,384.0,36.72,Compute Optimized,True,pricing_bundle +AWS,c7i.xlarge,4.0,8.0,0.77,Compute Optimized,True,pricing_bundle +AWS,c8g.12xlarge,48.0,96.0,12.9,General Purpose,True,pricing_bundle +AWS,c8g.16xlarge,64.0,128.0,17.2,General Purpose,True,pricing_bundle +AWS,c8g.24xlarge,96.0,192.0,25.8,General Purpose,True,pricing_bundle +AWS,c8g.2xlarge,8.0,16.0,2.15,General Purpose,True,pricing_bundle +AWS,c8g.48xlarge,192.0,384.0,51.6,General Purpose,True,pricing_bundle +AWS,c8g.4xlarge,16.0,32.0,4.3,General Purpose,True,pricing_bundle +AWS,c8g.8xlarge,32.0,64.0,8.6,General Purpose,True,pricing_bundle +AWS,c8g.large,2.0,4.0,0.54,General Purpose,True,pricing_bundle +AWS,c8g.medium,1.0,2.0,0.27,General Purpose,True,pricing_bundle +AWS,c8g.xlarge,4.0,8.0,1.08,General Purpose,True,pricing_bundle +AWS,c8gd.12xlarge,48.0,96.0,12.9,General Purpose,True,pricing_bundle +AWS,c8gd.16xlarge,64.0,128.0,17.2,General Purpose,True,pricing_bundle +AWS,c8gd.24xlarge,96.0,192.0,25.8,General Purpose,True,pricing_bundle +AWS,c8gd.2xlarge,8.0,16.0,2.15,General Purpose,True,pricing_bundle +AWS,c8gd.48xlarge,192.0,384.0,51.6,General Purpose,True,pricing_bundle +AWS,c8gd.4xlarge,16.0,32.0,4.3,General Purpose,True,pricing_bundle +AWS,c8gd.8xlarge,32.0,64.0,8.6,General Purpose,True,pricing_bundle +AWS,c8gd.large,2.0,4.0,0.54,General Purpose,True,pricing_bundle +AWS,c8gd.xlarge,4.0,8.0,1.08,General Purpose,True,pricing_bundle +AWS,d3.2xlarge,8.0,64.0,3.2,Storage Optimized,True,pricing_bundle +AWS,d3.4xlarge,16.0,128.0,6.4,Storage Optimized,True,pricing_bundle +AWS,d3.8xlarge,32.0,256.0,12.8,Storage Optimized,True,pricing_bundle +AWS,d3.xlarge,4.0,32.0,1.6,Storage Optimized,True,pricing_bundle +AWS,d3en.12xlarge,48.0,192.0,20.16,Storage Optimized,True,pricing_bundle +AWS,d3en.2xlarge,8.0,32.0,3.36,Storage Optimized,True,pricing_bundle +AWS,d3en.4xlarge,16.0,64.0,6.72,Storage Optimized,True,pricing_bundle +AWS,d3en.6xlarge,24.0,96.0,10.08,Storage Optimized,True,pricing_bundle +AWS,d3en.8xlarge,32.0,128.0,13.44,Storage Optimized,True,pricing_bundle +AWS,d3en.xlarge,4.0,16.0,1.68,Storage Optimized,True,pricing_bundle +AWS,g4dn.12xlarge,48.0,192.0,8.56,GPU,True,pricing_bundle +AWS,g4dn.16xlarge,64.0,256.0,11.41,GPU,True,pricing_bundle +AWS,g4dn.2xlarge,8.0,32.0,1.43,GPU,True,pricing_bundle +AWS,g4dn.4xlarge,16.0,64.0,2.85,GPU,True,pricing_bundle +AWS,g4dn.8xlarge,32.0,128.0,5.7,GPU,True,pricing_bundle +AWS,g4dn.xlarge,4.0,16.0,0.71,GPU,True,pricing_bundle +AWS,g5.12xlarge,48.0,192.0,7.688711111111111,GPU,True,pricing_bundle +AWS,g5.16xlarge,64.0,256.0,5.552355555555556,GPU,True,pricing_bundle +AWS,g5.24xlarge,96.0,384.0,11.039644444444445,GPU,True,pricing_bundle +AWS,g5.2xlarge,8.0,32.0,1.6429333333333331,GPU,True,pricing_bundle +AWS,g5.48xlarge,192.0,768.0,22.07928888888889,GPU,True,pricing_bundle +AWS,g5.4xlarge,16.0,64.0,2.201422222222222,GPU,True,pricing_bundle +AWS,g5.8xlarge,32.0,128.0,3.3183999999999996,GPU,True,pricing_bundle +AWS,g5.xlarge,4.0,16.0,1.363688888888889,GPU,True,pricing_bundle +AWS,g6.12xlarge,96.0,192.0,6.088360248,GPU,True,pricing_bundle +AWS,g6.16xlarge,64.0,256.0,4.494167702,GPU,True,pricing_bundle +AWS,g6.24xlarge,96.0,384.0,8.830900621,GPU,True,pricing_bundle +AWS,g6.2xlarge,8.0,32.0,1.293875776,GPU,True,pricing_bundle +AWS,g6.48xlarge,192.0,768.0,17.66180124,GPU,True,pricing_bundle +AWS,g6.4xlarge,16.0,64.0,1.750304348,GPU,True,pricing_bundle +AWS,g6.8xlarge,32.0,128.0,2.664484472,GPU,True,pricing_bundle +AWS,g6.xlarge,4.0,16.0,1.065,GPU,True,pricing_bundle +AWS,g6e.12xlarge,96.0,384.0,14.00322857,GPU,True,pricing_bundle +AWS,g6e.16xlarge,64.0,512.0,10.33658571,GPU,True,pricing_bundle +AWS,g6e.24xlarge,96.0,768.0,20.31107143,GPU,True,pricing_bundle +AWS,g6e.2xlarge,8.0,64.0,2.975914285,GPU,True,pricing_bundle +AWS,g6e.48xlarge,192.0,1536.0,40.62214285,GPU,True,pricing_bundle +AWS,g6e.4xlarge,16.0,128.0,4.0257,GPU,True,pricing_bundle +AWS,g6e.8xlarge,32.0,256.0,6.128314286,GPU,True,pricing_bundle +AWS,g6e.xlarge,4.0,32.0,2.4495,GPU,True,pricing_bundle +AWS,gr6.4xlarge,16.0,128.0,2.036068323,General Purpose,True,pricing_bundle +AWS,gr6.8xlarge,32.0,256.0,3.236012422,General Purpose,True,pricing_bundle +AWS,i2.2xlarge,8.0,61.0,3.0,General Purpose,True,pricing_bundle +AWS,i2.4xlarge,16.0,122.0,6.0,General Purpose,True,pricing_bundle +AWS,i2.8xlarge,32.0,244.0,12.0,General Purpose,True,pricing_bundle +AWS,i2.xlarge,4.0,30.5,1.5,General Purpose,True,pricing_bundle +AWS,i3.16xlarge,64.0,488.0,16.0,Storage Optimized,True,pricing_bundle +AWS,i3.2xlarge,8.0,61.0,2.0,Storage Optimized,True,pricing_bundle +AWS,i3.4xlarge,16.0,122.0,4.0,Storage Optimized,True,pricing_bundle +AWS,i3.8xlarge,32.0,244.0,8.0,Storage Optimized,True,pricing_bundle +AWS,i3.large,2.0,15.3,0.75,Storage Optimized,True,pricing_bundle +AWS,i3.xlarge,4.0,30.5,1.0,Storage Optimized,True,pricing_bundle +AWS,i3en.12xlarge,48.0,384.0,17.4,Storage Optimized,True,pricing_bundle +AWS,i3en.24xlarge,96.0,768.0,34.8,Storage Optimized,True,pricing_bundle +AWS,i3en.2xlarge,8.0,64.0,2.9,Storage Optimized,True,pricing_bundle +AWS,i3en.3xlarge,12.0,96.0,4.35,Storage Optimized,True,pricing_bundle +AWS,i3en.6xlarge,24.0,192.0,8.7,Storage Optimized,True,pricing_bundle +AWS,i3en.large,2.0,16.0,0.75,Storage Optimized,True,pricing_bundle +AWS,i3en.xlarge,4.0,32.0,1.45,Storage Optimized,True,pricing_bundle +AWS,i4g.16xlarge,64.0,512.0,19.8,Storage Optimized,True,pricing_bundle +AWS,i4g.2xlarge,8.0,64.0,2.48,Storage Optimized,True,pricing_bundle +AWS,i4g.4xlarge,16.0,128.0,4.95,Storage Optimized,True,pricing_bundle +AWS,i4g.8xlarge,32.0,256.0,9.9,Storage Optimized,True,pricing_bundle +AWS,i4g.large,2.0,16.0,0.62,Storage Optimized,True,pricing_bundle +AWS,i4g.xlarge,4.0,32.0,1.24,Storage Optimized,True,pricing_bundle +AWS,i4i.16xlarge,64.0,512.0,22.0,Storage Optimized,True,pricing_bundle +AWS,i4i.2xlarge,8.0,64.0,2.75,Storage Optimized,True,pricing_bundle +AWS,i4i.32xlarge,128.0,1024.0,44.0,Storage Optimized,True,pricing_bundle +AWS,i4i.4xlarge,16.0,128.0,5.5,Storage Optimized,True,pricing_bundle +AWS,i4i.8xlarge,32.0,256.0,11.0,Storage Optimized,True,pricing_bundle +AWS,i4i.large,2.0,16.0,0.69,Storage Optimized,True,pricing_bundle +AWS,i4i.xlarge,4.0,32.0,1.38,Storage Optimized,True,pricing_bundle +AWS,i7i.12xlarge,48.0,384.0,23.4,General Purpose,True,pricing_bundle +AWS,i7i.16xlarge,64.0,512.0,31.2,General Purpose,True,pricing_bundle +AWS,i7i.24xlarge,96.0,768.0,46.8,General Purpose,True,pricing_bundle +AWS,i7i.2xlarge,8.0,64.0,3.9,General Purpose,True,pricing_bundle +AWS,i7i.48xlarge,192.0,1536.0,93.6,General Purpose,True,pricing_bundle +AWS,i7i.4xlarge,16.0,128.0,7.8,General Purpose,True,pricing_bundle +AWS,i7i.8xlarge,32.0,256.0,15.6,General Purpose,True,pricing_bundle +AWS,i7i.large,2.0,16.0,0.98,General Purpose,True,pricing_bundle +AWS,i7i.xlarge,4.0,32.0,1.95,General Purpose,True,pricing_bundle +AWS,i8g.12xlarge,48.0,384.0,24.78,General Purpose,True,pricing_bundle +AWS,i8g.16xlarge,64.0,512.0,33.04,General Purpose,True,pricing_bundle +AWS,i8g.24xlarge,96.0,768.0,49.56,General Purpose,True,pricing_bundle +AWS,i8g.2xlarge,8.0,64.0,4.13,General Purpose,True,pricing_bundle +AWS,i8g.48xlarge,192.0,1536.0,99.12,General Purpose,True,pricing_bundle +AWS,i8g.4xlarge,16.0,128.0,8.26,General Purpose,True,pricing_bundle +AWS,i8g.8xlarge,32.0,256.0,16.52,General Purpose,True,pricing_bundle +AWS,i8g.large,2.0,16.0,1.03,General Purpose,True,pricing_bundle +AWS,i8g.xlarge,4.0,32.0,2.07,General Purpose,True,pricing_bundle +AWS,im4gn.16xlarge,64.0,256.0,19.31628318584071,General Purpose,True,pricing_bundle +AWS,im4gn.2xlarge,8.0,32.0,2.414535398230089,General Purpose,True,pricing_bundle +AWS,im4gn.4xlarge,16.0,64.0,4.829070796460178,General Purpose,True,pricing_bundle +AWS,im4gn.8xlarge,32.0,128.0,9.658141592920355,General Purpose,True,pricing_bundle +AWS,im4gn.large,2.0,8.0,0.6036338495575222,General Purpose,True,pricing_bundle +AWS,im4gn.xlarge,4.0,16.0,1.2072676991150444,General Purpose,True,pricing_bundle +AWS,is4gen.2xlarge,8.0,48.0,3.825,General Purpose,True,pricing_bundle +AWS,is4gen.4xlarge,16.0,96.0,7.65,General Purpose,True,pricing_bundle +AWS,is4gen.8xlarge,32.0,192.0,15.3,General Purpose,True,pricing_bundle +AWS,is4gen.large,2.0,12.0,0.95625,General Purpose,True,pricing_bundle +AWS,is4gen.xlarge,4.0,24.0,1.9125,General Purpose,True,pricing_bundle +AWS,m4.10xlarge,40.0,160.0,8.0,General Purpose,True,pricing_bundle +AWS,m4.16xlarge,64.0,256.0,12.0,General Purpose,True,pricing_bundle +AWS,m4.2xlarge,8.0,32.0,1.5,General Purpose,True,pricing_bundle +AWS,m4.4xlarge,16.0,64.0,3.0,General Purpose,True,pricing_bundle +AWS,m4.large,2.0,8.0,0.4,General Purpose,True,pricing_bundle +AWS,m4.xlarge,4.0,16.0,0.75,General Purpose,True,pricing_bundle +AWS,m5.12xlarge,48.0,192.0,8.23,General Purpose,True,pricing_bundle +AWS,m5.16xlarge,64.0,256.0,10.96,General Purpose,True,pricing_bundle +AWS,m5.24xlarge,96.0,384.0,16.46,General Purpose,True,pricing_bundle +AWS,m5.2xlarge,8.0,32.0,1.37,General Purpose,True,pricing_bundle +AWS,m5.4xlarge,16.0,64.0,2.74,General Purpose,True,pricing_bundle +AWS,m5.8xlarge,32.0,128.0,5.48,General Purpose,True,pricing_bundle +AWS,m5.large,2.0,8.0,0.34,General Purpose,True,pricing_bundle +AWS,m5.xlarge,4.0,16.0,0.69,General Purpose,True,pricing_bundle +AWS,m5a.12xlarge,48.0,192.0,7.371428571,General Purpose,True,pricing_bundle +AWS,m5a.16xlarge,64.0,256.0,9.828571429,General Purpose,True,pricing_bundle +AWS,m5a.24xlarge,96.0,384.0,14.74285714,General Purpose,True,pricing_bundle +AWS,m5a.2xlarge,8.0,32.0,1.228571429,General Purpose,True,pricing_bundle +AWS,m5a.4xlarge,16.0,64.0,2.457142857,General Purpose,True,pricing_bundle +AWS,m5a.8xlarge,32.0,128.0,4.914285714,General Purpose,True,pricing_bundle +AWS,m5a.large,2.0,8.0,0.3071428571,General Purpose,True,pricing_bundle +AWS,m5a.xlarge,4.0,16.0,0.6142857143,General Purpose,True,pricing_bundle +AWS,m5d.12xlarge,48.0,192.0,8.23,General Purpose,True,pricing_bundle +AWS,m5d.16xlarge,64.0,256.0,10.96,General Purpose,True,pricing_bundle +AWS,m5d.24xlarge,96.0,384.0,16.46,General Purpose,True,pricing_bundle +AWS,m5d.2xlarge,8.0,32.0,1.37,General Purpose,True,pricing_bundle +AWS,m5d.4xlarge,16.0,64.0,2.74,General Purpose,True,pricing_bundle +AWS,m5d.8xlarge,32.0,128.0,5.48,General Purpose,True,pricing_bundle +AWS,m5d.large,2.0,8.0,0.34,General Purpose,True,pricing_bundle +AWS,m5d.xlarge,4.0,16.0,0.69,General Purpose,True,pricing_bundle +AWS,m5dn.12xlarge,48.0,192.0,9.792,General Purpose,True,pricing_bundle +AWS,m5dn.16xlarge,64.0,256.0,13.056,General Purpose,True,pricing_bundle +AWS,m5dn.24xlarge,96.0,384.0,19.584,General Purpose,True,pricing_bundle +AWS,m5dn.2xlarge,8.0,32.0,1.632,General Purpose,True,pricing_bundle +AWS,m5dn.4xlarge,16.0,64.0,3.264,General Purpose,True,pricing_bundle +AWS,m5dn.8xlarge,32.0,128.0,6.528,General Purpose,True,pricing_bundle +AWS,m5dn.large,2.0,8.0,0.408,General Purpose,True,pricing_bundle +AWS,m5dn.metal,96.0,384.0,19.584,General Purpose,True,pricing_bundle +AWS,m5dn.xlarge,4.0,16.0,0.816,General Purpose,True,pricing_bundle +AWS,m5n.12xlarge,48.0,192.0,8.568,General Purpose,True,pricing_bundle +AWS,m5n.16xlarge,64.0,256.0,11.424,General Purpose,True,pricing_bundle +AWS,m5n.24xlarge,96.0,384.0,17.136,General Purpose,True,pricing_bundle +AWS,m5n.2xlarge,8.0,32.0,1.428,General Purpose,True,pricing_bundle +AWS,m5n.4xlarge,16.0,64.0,2.856,General Purpose,True,pricing_bundle +AWS,m5n.8xlarge,32.0,128.0,5.712,General Purpose,True,pricing_bundle +AWS,m5n.large,2.0,8.0,0.357,General Purpose,True,pricing_bundle +AWS,m5n.metal,96.0,384.0,17.136,General Purpose,True,pricing_bundle +AWS,m5n.xlarge,4.0,16.0,0.714,General Purpose,True,pricing_bundle +AWS,m5zn.12xlarge,48.0,192.0,12.0,General Purpose,True,pricing_bundle +AWS,m5zn.2xlarge,8.0,32.0,2.0,General Purpose,True,pricing_bundle +AWS,m5zn.3xlarge,12.0,48.0,3.0,General Purpose,True,pricing_bundle +AWS,m5zn.6xlarge,24.0,96.0,6.0,General Purpose,True,pricing_bundle +AWS,m5zn.large,2.0,8.0,0.4964,General Purpose,True,pricing_bundle +AWS,m5zn.metal,48.0,192.0,12.0,General Purpose,True,pricing_bundle +AWS,m5zn.xlarge,4.0,16.0,1.0,General Purpose,True,pricing_bundle +AWS,m6g.12xlarge,48.0,192.0,9.21,General Purpose,True,pricing_bundle +AWS,m6g.16xlarge,64.0,256.0,12.28,General Purpose,True,pricing_bundle +AWS,m6g.2xlarge,8.0,32.0,1.54,General Purpose,True,pricing_bundle +AWS,m6g.4xlarge,16.0,64.0,3.07,General Purpose,True,pricing_bundle +AWS,m6g.8xlarge,32.0,128.0,6.13,General Purpose,True,pricing_bundle +AWS,m6g.large,2.0,8.0,0.39,General Purpose,True,pricing_bundle +AWS,m6g.xlarge,4.0,16.0,0.77,General Purpose,True,pricing_bundle +AWS,m6gd.12xlarge,48.0,192.0,9.21,General Purpose,True,pricing_bundle +AWS,m6gd.16xlarge,64.0,256.0,12.28,General Purpose,True,pricing_bundle +AWS,m6gd.2xlarge,8.0,32.0,1.54,General Purpose,True,pricing_bundle +AWS,m6gd.4xlarge,16.0,64.0,3.07,General Purpose,True,pricing_bundle +AWS,m6gd.8xlarge,32.0,128.0,6.13,General Purpose,True,pricing_bundle +AWS,m6gd.large,2.0,8.0,0.39,General Purpose,True,pricing_bundle +AWS,m6gd.xlarge,4.0,16.0,0.77,General Purpose,True,pricing_bundle +AWS,m6i.12xlarge,48.0,192.0,9.120000000000001,General Purpose,True,pricing_bundle +AWS,m6i.16xlarge,64.0,256.0,12.16,General Purpose,True,pricing_bundle +AWS,m6i.24xlarge,96.0,384.0,18.240000000000002,General Purpose,True,pricing_bundle +AWS,m6i.2xlarge,8.0,32.0,1.52,General Purpose,True,pricing_bundle +AWS,m6i.32xlarge,128.0,512.0,24.32,General Purpose,True,pricing_bundle +AWS,m6i.4xlarge,16.0,64.0,3.04,General Purpose,True,pricing_bundle +AWS,m6i.8xlarge,32.0,128.0,6.08,General Purpose,True,pricing_bundle +AWS,m6i.large,2.0,8.0,0.38,General Purpose,True,pricing_bundle +AWS,m6i.xlarge,4.0,16.0,0.76,General Purpose,True,pricing_bundle +AWS,m6id.12xlarge,48.0,192.0,9.120000000000001,General Purpose,True,pricing_bundle +AWS,m6id.16xlarge,64.0,256.0,12.16,General Purpose,True,pricing_bundle +AWS,m6id.24xlarge,96.0,384.0,18.240000000000002,General Purpose,True,pricing_bundle +AWS,m6id.2xlarge,8.0,32.0,1.52,General Purpose,True,pricing_bundle +AWS,m6id.32xlarge,128.0,512.0,24.32,General Purpose,True,pricing_bundle +AWS,m6id.4xlarge,16.0,64.0,3.04,General Purpose,True,pricing_bundle +AWS,m6id.8xlarge,32.0,128.0,6.08,General Purpose,True,pricing_bundle +AWS,m6id.large,2.0,8.0,0.38,General Purpose,True,pricing_bundle +AWS,m6id.xlarge,4.0,16.0,0.76,General Purpose,True,pricing_bundle +AWS,m6idn.12xlarge,48.0,192.0,9.120000000000001,General Purpose,True,pricing_bundle +AWS,m6idn.16xlarge,64.0,256.0,12.16,General Purpose,True,pricing_bundle +AWS,m6idn.24xlarge,96.0,384.0,18.240000000000002,General Purpose,True,pricing_bundle +AWS,m6idn.2xlarge,8.0,32.0,1.52,General Purpose,True,pricing_bundle +AWS,m6idn.32xlarge,128.0,512.0,24.32,General Purpose,True,pricing_bundle +AWS,m6idn.4xlarge,16.0,64.0,3.04,General Purpose,True,pricing_bundle +AWS,m6idn.8xlarge,32.0,128.0,6.08,General Purpose,True,pricing_bundle +AWS,m6idn.large,2.0,8.0,0.38,General Purpose,True,pricing_bundle +AWS,m6idn.xlarge,4.0,16.0,0.76,General Purpose,True,pricing_bundle +AWS,m6in.12xlarge,48.0,192.0,9.120000000000001,General Purpose,True,pricing_bundle +AWS,m6in.16xlarge,64.0,256.0,12.16,General Purpose,True,pricing_bundle +AWS,m6in.24xlarge,96.0,384.0,18.240000000000002,General Purpose,True,pricing_bundle +AWS,m6in.2xlarge,8.0,32.0,1.52,General Purpose,True,pricing_bundle +AWS,m6in.32xlarge,128.0,512.0,24.32,General Purpose,True,pricing_bundle +AWS,m6in.4xlarge,16.0,64.0,3.04,General Purpose,True,pricing_bundle +AWS,m6in.8xlarge,32.0,128.0,6.08,General Purpose,True,pricing_bundle +AWS,m6in.large,2.0,8.0,0.38,General Purpose,True,pricing_bundle +AWS,m6in.xlarge,4.0,16.0,0.76,General Purpose,True,pricing_bundle +AWS,m7a.12xlarge,48.0,192.0,10.8,General Purpose,True,pricing_bundle +AWS,m7a.16xlarge,64.0,256.0,14.4,General Purpose,True,pricing_bundle +AWS,m7a.24xlarge,96.0,384.0,21.6,General Purpose,True,pricing_bundle +AWS,m7a.2xlarge,8.0,32.0,1.8,General Purpose,True,pricing_bundle +AWS,m7a.32xlarge,128.0,512.0,28.8,General Purpose,True,pricing_bundle +AWS,m7a.48xlarge,192.0,768.0,43.2,General Purpose,True,pricing_bundle +AWS,m7a.4xlarge,16.0,64.0,3.6,General Purpose,True,pricing_bundle +AWS,m7a.8xlarge,32.0,128.0,7.2,General Purpose,True,pricing_bundle +AWS,m7a.xlarge,4.0,16.0,0.9,General Purpose,True,pricing_bundle +AWS,m7g.12xlarge,48.0,192.0,11.52,General Purpose,True,pricing_bundle +AWS,m7g.16xlarge,64.0,256.0,15.36,General Purpose,True,pricing_bundle +AWS,m7g.2xlarge,8.0,32.0,1.92,General Purpose,True,pricing_bundle +AWS,m7g.4xlarge,16.0,64.0,3.84,General Purpose,True,pricing_bundle +AWS,m7g.8xlarge,32.0,128.0,7.68,General Purpose,True,pricing_bundle +AWS,m7g.large,2.0,8.0,0.48,General Purpose,True,pricing_bundle +AWS,m7g.xlarge,4.0,16.0,0.96,General Purpose,True,pricing_bundle +AWS,m7gd.12xlarge,48.0,192.0,11.52,General Purpose,True,pricing_bundle +AWS,m7gd.16xlarge,64.0,256.0,15.36,General Purpose,True,pricing_bundle +AWS,m7gd.2xlarge,8.0,32.0,1.92,General Purpose,True,pricing_bundle +AWS,m7gd.4xlarge,16.0,64.0,3.84,General Purpose,True,pricing_bundle +AWS,m7gd.8xlarge,32.0,128.0,7.68,General Purpose,True,pricing_bundle +AWS,m7gd.large,2.0,8.0,0.48,General Purpose,True,pricing_bundle +AWS,m7gd.xlarge,4.0,16.0,0.96,General Purpose,True,pricing_bundle +AWS,m7i.12xlarge,48.0,192.0,10.02,General Purpose,True,pricing_bundle +AWS,m7i.16xlarge,64.0,256.0,13.36,General Purpose,True,pricing_bundle +AWS,m7i.24xlarge,96.0,384.0,20.04,General Purpose,True,pricing_bundle +AWS,m7i.2xlarge,8.0,32.0,1.67,General Purpose,True,pricing_bundle +AWS,m7i.48xlarge,192.0,768.0,40.08,General Purpose,True,pricing_bundle +AWS,m7i.4xlarge,16.0,64.0,3.34,General Purpose,True,pricing_bundle +AWS,m7i.8xlarge,32.0,128.0,6.68,General Purpose,True,pricing_bundle +AWS,m7i.large,2.0,8.0,0.42,General Purpose,True,pricing_bundle +AWS,m7i.metal-24xl,96.0,384.0,20.04,General Purpose,True,pricing_bundle +AWS,m7i.metal-48xl,192.0,768.0,40.08,General Purpose,True,pricing_bundle +AWS,m7i.xlarge,4.0,16.0,0.84,General Purpose,True,pricing_bundle +AWS,m8g.12xlarge,48.0,192.0,13.71,General Purpose,True,pricing_bundle +AWS,m8g.16xlarge,64.0,256.0,18.28,General Purpose,True,pricing_bundle +AWS,m8g.24xlarge,96.0,384.0,27.42,General Purpose,True,pricing_bundle +AWS,m8g.2xlarge,8.0,32.0,2.28,General Purpose,True,pricing_bundle +AWS,m8g.48xlarge,192.0,768.0,54.84,General Purpose,True,pricing_bundle +AWS,m8g.4xlarge,16.0,64.0,4.57,General Purpose,True,pricing_bundle +AWS,m8g.8xlarge,32.0,128.0,9.14,General Purpose,True,pricing_bundle +AWS,m8g.large,2.0,8.0,0.57,General Purpose,True,pricing_bundle +AWS,m8g.medium,1.0,4.0,0.29,General Purpose,True,pricing_bundle +AWS,m8g.xlarge,4.0,16.0,1.14,General Purpose,True,pricing_bundle +AWS,m8gd.12xlarge,48.0,192.0,13.71,General Purpose,True,pricing_bundle +AWS,m8gd.16xlarge,64.0,256.0,18.28,General Purpose,True,pricing_bundle +AWS,m8gd.24xlarge,96.0,384.0,27.42,General Purpose,True,pricing_bundle +AWS,m8gd.2xlarge,8.0,32.0,2.28,General Purpose,True,pricing_bundle +AWS,m8gd.48xlarge,192.0,768.0,54.84,General Purpose,True,pricing_bundle +AWS,m8gd.4xlarge,16.0,64.0,4.57,General Purpose,True,pricing_bundle +AWS,m8gd.8xlarge,32.0,128.0,9.14,General Purpose,True,pricing_bundle +AWS,m8gd.large,2.0,8.0,0.57,General Purpose,True,pricing_bundle +AWS,m8gd.xlarge,4.0,16.0,1.14,General Purpose,True,pricing_bundle +AWS,m8i.12xlarge,48.0,192.0,11.22,General Purpose,True,pricing_bundle +AWS,m8i.16xlarge,64.0,256.0,14.96,General Purpose,True,pricing_bundle +AWS,m8i.24xlarge,96.0,384.0,22.44,General Purpose,True,pricing_bundle +AWS,m8i.2xlarge,8.0,32.0,1.87,General Purpose,True,pricing_bundle +AWS,m8i.48xlarge,192.0,768.0,44.88,General Purpose,True,pricing_bundle +AWS,m8i.4xlarge,16.0,64.0,3.74,General Purpose,True,pricing_bundle +AWS,m8i.8xlarge,32.0,128.0,7.48,General Purpose,True,pricing_bundle +AWS,m8i.large,2.0,8.0,0.4675,General Purpose,True,pricing_bundle +AWS,m8i.xlarge,4.0,16.0,0.935,General Purpose,True,pricing_bundle +AWS,p2.16xlarge,64.0,732.0,19.52,GPU,True,pricing_bundle +AWS,p2.8xlarge,32.0,488.0,9.76,GPU,True,pricing_bundle +AWS,p2.xlarge,4.0,61.0,1.22,GPU,True,pricing_bundle +AWS,p3.16xlarge,64.0,488.0,33.2,GPU,True,pricing_bundle +AWS,p3.2xlarge,8.0,61.0,4.15,GPU,True,pricing_bundle +AWS,p3.8xlarge,32.0,244.0,16.6,GPU,True,pricing_bundle +AWS,p3dn.24xlarge,96.0,768.0,42.33,GPU,True,pricing_bundle +AWS,p4d.24xlarge,96.0,1152.0,44.4548,GPU,True,pricing_bundle +AWS,p4de.24xlarge,96.0,1152.0,55.5685,GPU,True,pricing_bundle +AWS,p5.48xlarge,192.0,2048.0,88.9096,GPU,True,pricing_bundle +AWS,r4.16xlarge,64.0,488.0,16.0,Memory Optimized,True,pricing_bundle +AWS,r5.12xlarge,48.0,384.0,10.8,Memory Optimized,True,pricing_bundle +AWS,r5.16xlarge,64.0,512.0,14.4,Memory Optimized,True,pricing_bundle +AWS,r5.24xlarge,96.0,768.0,21.6,Memory Optimized,True,pricing_bundle +AWS,r5.2xlarge,8.0,64.0,1.8,Memory Optimized,True,pricing_bundle +AWS,r5.4xlarge,16.0,128.0,3.6,Memory Optimized,True,pricing_bundle +AWS,r5.8xlarge,32.0,256.0,7.2,Memory Optimized,True,pricing_bundle +AWS,r5.large,2.0,16.0,0.45,Memory Optimized,True,pricing_bundle +AWS,r5.xlarge,4.0,32.0,0.9,Memory Optimized,True,pricing_bundle +AWS,r5a.12xlarge,48.0,384.0,9.685714286,Memory Optimized,True,pricing_bundle +AWS,r5a.16xlarge,64.0,512.0,12.91428571,Memory Optimized,True,pricing_bundle +AWS,r5a.24xlarge,96.0,768.0,19.37142857,Memory Optimized,True,pricing_bundle +AWS,r5a.2xlarge,8.0,64.0,1.614285714,Memory Optimized,True,pricing_bundle +AWS,r5a.4xlarge,16.0,128.0,3.228571429,Memory Optimized,True,pricing_bundle +AWS,r5a.8xlarge,32.0,256.0,6.457142857,Memory Optimized,True,pricing_bundle +AWS,r5a.large,2.0,16.0,0.41,Memory Optimized,True,pricing_bundle +AWS,r5a.xlarge,4.0,32.0,0.8142857143,Memory Optimized,True,pricing_bundle +AWS,r5d.12xlarge,48.0,384.0,10.8,Memory Optimized,True,pricing_bundle +AWS,r5d.16xlarge,64.0,512.0,14.4,Memory Optimized,True,pricing_bundle +AWS,r5d.24xlarge,96.0,768.0,21.6,Memory Optimized,True,pricing_bundle +AWS,r5d.2xlarge,8.0,64.0,1.8,Memory Optimized,True,pricing_bundle +AWS,r5d.4xlarge,16.0,128.0,3.6,Memory Optimized,True,pricing_bundle +AWS,r5d.8xlarge,32.0,256.0,7.2,Memory Optimized,True,pricing_bundle +AWS,r5d.large,2.0,16.0,0.45,Memory Optimized,True,pricing_bundle +AWS,r5d.xlarge,4.0,32.0,0.9,Memory Optimized,True,pricing_bundle +AWS,r5dn.12xlarge,48.0,384.0,12.528,Memory Optimized,True,pricing_bundle +AWS,r5dn.16xlarge,64.0,512.0,16.704,Memory Optimized,True,pricing_bundle +AWS,r5dn.24xlarge,96.0,768.0,25.056,Memory Optimized,True,pricing_bundle +AWS,r5dn.2xlarge,8.0,64.0,2.088,Memory Optimized,True,pricing_bundle +AWS,r5dn.4xlarge,16.0,128.0,4.176,Memory Optimized,True,pricing_bundle +AWS,r5dn.8xlarge,32.0,256.0,8.352,Memory Optimized,True,pricing_bundle +AWS,r5dn.large,2.0,16.0,0.522,Memory Optimized,True,pricing_bundle +AWS,r5dn.metal,96.0,768.0,25.056,Memory Optimized,True,pricing_bundle +AWS,r5dn.xlarge,4.0,32.0,1.044,Memory Optimized,True,pricing_bundle +AWS,r5n.12xlarge,48.0,384.0,10.8,Memory Optimized,True,pricing_bundle +AWS,r5n.16xlarge,64.0,512.0,14.4,Memory Optimized,True,pricing_bundle +AWS,r5n.24xlarge,96.0,768.0,21.6,Memory Optimized,True,pricing_bundle +AWS,r5n.2xlarge,8.0,64.0,1.8,Memory Optimized,True,pricing_bundle +AWS,r5n.4xlarge,16.0,128.0,3.6,Memory Optimized,True,pricing_bundle +AWS,r5n.8xlarge,32.0,256.0,7.2,Memory Optimized,True,pricing_bundle +AWS,r5n.large,2.0,16.0,0.45,Memory Optimized,True,pricing_bundle +AWS,r5n.metal,96.0,768.0,21.6,Memory Optimized,True,pricing_bundle +AWS,r5n.xlarge,4.0,32.0,0.9,Memory Optimized,True,pricing_bundle +AWS,r6g.12xlarge,48.0,384.0,12.0,Memory Optimized,True,pricing_bundle +AWS,r6g.16xlarge,64.0,512.0,16.0,Memory Optimized,True,pricing_bundle +AWS,r6g.2xlarge,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AWS,r6g.4xlarge,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AWS,r6g.8xlarge,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AWS,r6g.large,2.0,16.0,0.5,Memory Optimized,True,pricing_bundle +AWS,r6g.xlarge,4.0,32.0,1.0,Memory Optimized,True,pricing_bundle +AWS,r6gd.12xlarge,48.0,384.0,12.0,Memory Optimized,True,pricing_bundle +AWS,r6gd.16xlarge,64.0,512.0,16.0,Memory Optimized,True,pricing_bundle +AWS,r6gd.2xlarge,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AWS,r6gd.4xlarge,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AWS,r6gd.8xlarge,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AWS,r6gd.large,2.0,16.0,0.5,Memory Optimized,True,pricing_bundle +AWS,r6gd.xlarge,4.0,32.0,1.0,Memory Optimized,True,pricing_bundle +AWS,r6i.12xlarge,48.0,384.0,12.24,Memory Optimized,True,pricing_bundle +AWS,r6i.16xlarge,64.0,512.0,16.32,Memory Optimized,True,pricing_bundle +AWS,r6i.24xlarge,96.0,768.0,24.48,Memory Optimized,True,pricing_bundle +AWS,r6i.2xlarge,8.0,64.0,2.04,Memory Optimized,True,pricing_bundle +AWS,r6i.32xlarge,128.0,1024.0,32.64,Memory Optimized,True,pricing_bundle +AWS,r6i.4xlarge,16.0,128.0,4.08,Memory Optimized,True,pricing_bundle +AWS,r6i.8xlarge,32.0,256.0,8.16,Memory Optimized,True,pricing_bundle +AWS,r6i.large,2.0,16.0,0.51,Memory Optimized,True,pricing_bundle +AWS,r6i.xlarge,4.0,32.0,1.02,Memory Optimized,True,pricing_bundle +AWS,r6id.12xlarge,48.0,384.0,12.24,Memory Optimized,True,pricing_bundle +AWS,r6id.16xlarge,64.0,512.0,16.32,Memory Optimized,True,pricing_bundle +AWS,r6id.24xlarge,96.0,768.0,24.48,Memory Optimized,True,pricing_bundle +AWS,r6id.2xlarge,8.0,64.0,2.04,Memory Optimized,True,pricing_bundle +AWS,r6id.32xlarge,128.0,1024.0,32.64,Memory Optimized,True,pricing_bundle +AWS,r6id.4xlarge,16.0,128.0,4.08,Memory Optimized,True,pricing_bundle +AWS,r6id.8xlarge,32.0,256.0,8.16,Memory Optimized,True,pricing_bundle +AWS,r6id.large,2.0,16.0,0.51,Memory Optimized,True,pricing_bundle +AWS,r6id.xlarge,4.0,32.0,1.02,Memory Optimized,True,pricing_bundle +AWS,r6idn.12xlarge,48.0,384.0,12.24,Memory Optimized,True,pricing_bundle +AWS,r6idn.16xlarge,64.0,512.0,16.32,Memory Optimized,True,pricing_bundle +AWS,r6idn.24xlarge,96.0,768.0,24.48,Memory Optimized,True,pricing_bundle +AWS,r6idn.2xlarge,8.0,64.0,2.04,Memory Optimized,True,pricing_bundle +AWS,r6idn.32xlarge,128.0,1024.0,32.64,Memory Optimized,True,pricing_bundle +AWS,r6idn.4xlarge,16.0,128.0,4.08,Memory Optimized,True,pricing_bundle +AWS,r6idn.8xlarge,32.0,256.0,8.16,Memory Optimized,True,pricing_bundle +AWS,r6idn.large,2.0,16.0,0.51,Memory Optimized,True,pricing_bundle +AWS,r6idn.xlarge,4.0,32.0,1.02,Memory Optimized,True,pricing_bundle +AWS,r6in.12xlarge,48.0,384.0,12.24,Memory Optimized,True,pricing_bundle +AWS,r6in.16xlarge,64.0,512.0,16.32,Memory Optimized,True,pricing_bundle +AWS,r6in.24xlarge,96.0,768.0,24.48,Memory Optimized,True,pricing_bundle +AWS,r6in.2xlarge,8.0,64.0,2.04,Memory Optimized,True,pricing_bundle +AWS,r6in.32xlarge,128.0,1024.0,32.64,Memory Optimized,True,pricing_bundle +AWS,r6in.4xlarge,16.0,128.0,4.08,Memory Optimized,True,pricing_bundle +AWS,r6in.8xlarge,32.0,256.0,8.16,Memory Optimized,True,pricing_bundle +AWS,r6in.large,2.0,16.0,0.51,Memory Optimized,True,pricing_bundle +AWS,r6in.xlarge,4.0,32.0,1.02,Memory Optimized,True,pricing_bundle +AWS,r7a.48xlarge,192.0,1536.0,58.08,Memory Optimized,True,pricing_bundle +AWS,r7g.12xlarge,48.0,384.0,15.120000000000001,Memory Optimized,True,pricing_bundle +AWS,r7g.16xlarge,64.0,512.0,20.16,Memory Optimized,True,pricing_bundle +AWS,r7g.2xlarge,8.0,64.0,2.52,Memory Optimized,True,pricing_bundle +AWS,r7g.4xlarge,16.0,128.0,5.04,Memory Optimized,True,pricing_bundle +AWS,r7g.8xlarge,32.0,256.0,10.08,Memory Optimized,True,pricing_bundle +AWS,r7g.large,2.0,16.0,0.63,Memory Optimized,True,pricing_bundle +AWS,r7g.xlarge,4.0,32.0,1.26,Memory Optimized,True,pricing_bundle +AWS,r7gd.12xlarge,48.0,384.0,15.12,Memory Optimized,True,pricing_bundle +AWS,r7gd.16xlarge,64.0,512.0,20.16,Memory Optimized,True,pricing_bundle +AWS,r7gd.2xlarge,8.0,64.0,2.52,Memory Optimized,True,pricing_bundle +AWS,r7gd.4xlarge,16.0,128.0,5.04,Memory Optimized,True,pricing_bundle +AWS,r7gd.8xlarge,32.0,256.0,10.08,Memory Optimized,True,pricing_bundle +AWS,r7gd.large,2.0,16.0,0.63,Memory Optimized,True,pricing_bundle +AWS,r7gd.xlarge,4.0,32.0,1.26,Memory Optimized,True,pricing_bundle +AWS,r7i.12xlarge,48.0,384.0,13.44,Memory Optimized,True,pricing_bundle +AWS,r7i.16xlarge,64.0,512.0,17.92,Memory Optimized,True,pricing_bundle +AWS,r7i.24xlarge,96.0,768.0,26.88,Memory Optimized,True,pricing_bundle +AWS,r7i.2xlarge,8.0,64.0,2.24,Memory Optimized,True,pricing_bundle +AWS,r7i.48xlarge,192.0,1536.0,53.76,Memory Optimized,True,pricing_bundle +AWS,r7i.4xlarge,16.0,128.0,4.48,Memory Optimized,True,pricing_bundle +AWS,r7i.8xlarge,32.0,256.0,8.96,Memory Optimized,True,pricing_bundle +AWS,r7i.large,2.0,16.0,0.56,Memory Optimized,True,pricing_bundle +AWS,r7i.metal-24xl,96.0,768.0,26.88,Memory Optimized,True,pricing_bundle +AWS,r7i.metal-48xl,192.0,1536.0,53.76,Memory Optimized,True,pricing_bundle +AWS,r7i.xlarge,4.0,32.0,1.12,Memory Optimized,True,pricing_bundle +AWS,r7iz.12xlarge,48.0,384.0,14.52,Memory Optimized,True,pricing_bundle +AWS,r7iz.16xlarge,64.0,512.0,19.36,Memory Optimized,True,pricing_bundle +AWS,r7iz.2xlarge,8.0,64.0,2.42,Memory Optimized,True,pricing_bundle +AWS,r7iz.32xlarge,128.0,1024.0,38.72,Memory Optimized,True,pricing_bundle +AWS,r7iz.4xlarge,16.0,128.0,4.84,Memory Optimized,True,pricing_bundle +AWS,r7iz.8xlarge,32.0,256.0,9.68,Memory Optimized,True,pricing_bundle +AWS,r7iz.xlarge,4.0,32.0,1.21,Memory Optimized,True,pricing_bundle +AWS,r8g.12xlarge,48.0,384.0,18.0,General Purpose,True,pricing_bundle +AWS,r8g.16xlarge,64.0,512.0,24.0,General Purpose,True,pricing_bundle +AWS,r8g.24xlarge,96.0,768.0,36.0,General Purpose,True,pricing_bundle +AWS,r8g.2xlarge,8.0,64.0,3.0,General Purpose,True,pricing_bundle +AWS,r8g.48xlarge,192.0,1536.0,72.0,General Purpose,True,pricing_bundle +AWS,r8g.4xlarge,16.0,128.0,6.0,General Purpose,True,pricing_bundle +AWS,r8g.8xlarge,32.0,256.0,12.0,General Purpose,True,pricing_bundle +AWS,r8g.large,2.0,16.0,0.75,General Purpose,True,pricing_bundle +AWS,r8g.xlarge,4.0,32.0,1.5,General Purpose,True,pricing_bundle +AWS,r8gd.12xlarge,48.0,384.0,18.0,General Purpose,True,pricing_bundle +AWS,r8gd.16xlarge,64.0,512.0,24.0,General Purpose,True,pricing_bundle +AWS,r8gd.24xlarge,96.0,768.0,36.0,General Purpose,True,pricing_bundle +AWS,r8gd.2xlarge,8.0,64.0,3.0,General Purpose,True,pricing_bundle +AWS,r8gd.48xlarge,192.0,1536.0,72.0,General Purpose,True,pricing_bundle +AWS,r8gd.4xlarge,16.0,128.0,6.0,General Purpose,True,pricing_bundle +AWS,r8gd.8xlarge,32.0,256.0,12.0,General Purpose,True,pricing_bundle +AWS,r8gd.large,2.0,16.0,0.75,General Purpose,True,pricing_bundle +AWS,r8gd.xlarge,4.0,32.0,1.5,General Purpose,True,pricing_bundle +AWS,r8i.12xlarge,48.0,384.0,15.0,General Purpose,True,pricing_bundle +AWS,r8i.16xlarge,64.0,512.0,20.0,General Purpose,True,pricing_bundle +AWS,r8i.24xlarge,96.0,768.0,30.0,General Purpose,True,pricing_bundle +AWS,r8i.2xlarge,8.0,64.0,2.5,General Purpose,True,pricing_bundle +AWS,r8i.48xlarge,192.0,1536.0,60.0,General Purpose,True,pricing_bundle +AWS,r8i.4xlarge,16.0,128.0,5.0,General Purpose,True,pricing_bundle +AWS,r8i.8xlarge,32.0,256.0,10.0,General Purpose,True,pricing_bundle +AWS,r8i.large,2.0,16.0,0.63,General Purpose,True,pricing_bundle +AWS,r8i.xlarge,4.0,32.0,1.25,General Purpose,True,pricing_bundle +AWS,x2gd.12xlarge,48.0,768.0,17.52,Memory Optimized,True,pricing_bundle +AWS,x2gd.16xlarge,64.0,1024.0,23.36,Memory Optimized,True,pricing_bundle +AWS,x2gd.2xlarge,8.0,128.0,2.92,Memory Optimized,True,pricing_bundle +AWS,x2gd.4xlarge,16.0,256.0,5.84,Memory Optimized,True,pricing_bundle +AWS,x2gd.8xlarge,32.0,512.0,11.68,Memory Optimized,True,pricing_bundle +AWS,x2gd.large,2.0,32.0,0.73,Memory Optimized,True,pricing_bundle +AWS,x2gd.xlarge,4.0,64.0,1.46,Memory Optimized,True,pricing_bundle +AWS,z1d.12xlarge,48.0,384.0,15.94,Memory Optimized,True,pricing_bundle +AWS,z1d.2xlarge,8.0,64.0,2.66,Memory Optimized,True,pricing_bundle +AWS,z1d.3xlarge,12.0,96.0,3.99,Memory Optimized,True,pricing_bundle +AWS,z1d.6xlarge,24.0,192.0,7.97,Memory Optimized,True,pricing_bundle +AWS,z1d.large,2.0,16.0,0.66,Memory Optimized,True,pricing_bundle +AWS,z1d.xlarge,4.0,32.0,1.33,Memory Optimized,True,pricing_bundle +AZURE,Standard_2X-Large,576.0,4608.0,144.0,General Purpose,True,pricing_bundle +AZURE,Standard_2X-Small,16.0,128.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_3X-Large,1088.0,8704.0,272.0,General Purpose,True,pricing_bundle +AZURE,Standard_4X-Large,2112.0,16896.0,528.0,General Purpose,True,pricing_bundle +AZURE,Standard_D128ds_v6,128.0,512.0,35.84,General Purpose,True,pricing_bundle +AZURE,Standard_D12_v2,4.0,28.0,1.0,General Purpose,True,pricing_bundle +AZURE,Standard_D13_v2,8.0,56.0,2.0,General Purpose,True,pricing_bundle +AZURE,Standard_D14_v2,16.0,112.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_D15_v2,20.0,140.0,5.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16_v3,16.0,64.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16a_v4,16.0,64.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16ads_v5,16.0,64.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16ads_v6,16.0,64.0,5.1,General Purpose,True,pricing_bundle +AZURE,Standard_D16as_v4,16.0,64.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16as_v5,16.0,64.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16d_v4,16.0,64.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16ds_v4,16.0,64.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16ds_v5,16.0,64.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16ds_v6,16.0,64.0,4.48,General Purpose,True,pricing_bundle +AZURE,Standard_D16pds_v6,16.0,64.0,4.68,General Purpose,True,pricing_bundle +AZURE,Standard_D16ps_v6,16.0,64.0,4.68,General Purpose,True,pricing_bundle +AZURE,Standard_D16s_v3,16.0,64.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16s_v4,16.0,64.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_D16s_v5,16.0,64.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_D2ads_v6,2.0,8.0,0.64,General Purpose,True,pricing_bundle +AZURE,Standard_D2ds_v6,2.0,8.0,0.56,General Purpose,True,pricing_bundle +AZURE,Standard_D32_v3,32.0,128.0,6.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32a_v4,32.0,128.0,6.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32ads_v5,32.0,128.0,8.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32ads_v6,32.0,128.0,10.2,General Purpose,True,pricing_bundle +AZURE,Standard_D32as_v4,32.0,128.0,6.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32as_v5,32.0,128.0,8.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32d_v4,32.0,128.0,6.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32ds_v4,32.0,128.0,6.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32ds_v5,32.0,128.0,8.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32ds_v6,32.0,128.0,8.96,General Purpose,True,pricing_bundle +AZURE,Standard_D32pds_v6,32.0,128.0,9.36,General Purpose,True,pricing_bundle +AZURE,Standard_D32ps_v6,32.0,128.0,9.36,General Purpose,True,pricing_bundle +AZURE,Standard_D32s_v3,32.0,128.0,6.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32s_v4,32.0,128.0,6.0,General Purpose,True,pricing_bundle +AZURE,Standard_D32s_v5,32.0,128.0,8.0,General Purpose,True,pricing_bundle +AZURE,Standard_D3_v2,4.0,14.0,0.75,General Purpose,True,pricing_bundle +AZURE,Standard_D48a_v4,48.0,192.0,9.0,General Purpose,True,pricing_bundle +AZURE,Standard_D48ads_v5,48.0,192.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D48ads_v6,48.0,192.0,15.3,General Purpose,True,pricing_bundle +AZURE,Standard_D48as_v4,48.0,192.0,9.0,General Purpose,True,pricing_bundle +AZURE,Standard_D48as_v5,48.0,192.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D48d_v4,48.0,192.0,9.0,General Purpose,True,pricing_bundle +AZURE,Standard_D48ds_v4,48.0,192.0,9.0,General Purpose,True,pricing_bundle +AZURE,Standard_D48ds_v5,48.0,192.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D48ds_v6,48.0,192.0,13.44,General Purpose,True,pricing_bundle +AZURE,Standard_D48pds_v6,48.0,192.0,14.04,General Purpose,True,pricing_bundle +AZURE,Standard_D48ps_v6,48.0,192.0,14.04,General Purpose,True,pricing_bundle +AZURE,Standard_D48s_v4,48.0,192.0,9.0,General Purpose,True,pricing_bundle +AZURE,Standard_D48s_v5,48.0,192.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D4_v2,8.0,28.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_D4a_v4,4.0,16.0,0.75,General Purpose,True,pricing_bundle +AZURE,Standard_D4ads_v5,4.0,16.0,1.0,General Purpose,True,pricing_bundle +AZURE,Standard_D4ads_v6,4.0,16.0,1.28,General Purpose,True,pricing_bundle +AZURE,Standard_D4as_v5,4.0,16.0,1.0,General Purpose,True,pricing_bundle +AZURE,Standard_D4d_v4,4.0,16.0,0.75,General Purpose,True,pricing_bundle +AZURE,Standard_D4ds_v4,4.0,16.0,0.75,General Purpose,True,pricing_bundle +AZURE,Standard_D4ds_v5,4.0,16.0,1.0,General Purpose,True,pricing_bundle +AZURE,Standard_D4ds_v6,4.0,16.0,1.12,General Purpose,True,pricing_bundle +AZURE,Standard_D4pds_v6,4.0,16.0,1.17,General Purpose,True,pricing_bundle +AZURE,Standard_D4ps_v6,4.0,16.0,1.17,General Purpose,True,pricing_bundle +AZURE,Standard_D4s_v3,4.0,16.0,0.75,General Purpose,True,pricing_bundle +AZURE,Standard_D4s_v4,4.0,16.0,0.75,General Purpose,True,pricing_bundle +AZURE,Standard_D4s_v5,4.0,16.0,1.0,General Purpose,True,pricing_bundle +AZURE,Standard_D5_v2,16.0,56.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64_v3,64.0,256.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64a_v4,64.0,256.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64ads_v5,64.0,256.0,16.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64ads_v6,64.0,256.0,20.4,General Purpose,True,pricing_bundle +AZURE,Standard_D64as_v4,64.0,256.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64as_v5,64.0,256.0,16.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64d_v4,64.0,256.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64ds_v4,64.0,256.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64ds_v5,64.0,256.0,16.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64ds_v6,64.0,256.0,17.92,General Purpose,True,pricing_bundle +AZURE,Standard_D64pds_v6,64.0,256.0,18.72,General Purpose,True,pricing_bundle +AZURE,Standard_D64ps_v6,64.0,256.0,18.72,General Purpose,True,pricing_bundle +AZURE,Standard_D64s_v3,64.0,256.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64s_v4,64.0,256.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_D64s_v5,64.0,256.0,16.0,General Purpose,True,pricing_bundle +AZURE,Standard_D8_v3,8.0,32.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_D8a_v4,8.0,32.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_D8ads_v5,8.0,32.0,2.0,General Purpose,True,pricing_bundle +AZURE,Standard_D8ads_v6,8.0,32.0,2.55,General Purpose,True,pricing_bundle +AZURE,Standard_D8as_v4,8.0,32.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_D8as_v5,8.0,32.0,2.0,General Purpose,True,pricing_bundle +AZURE,Standard_D8d_v4,8.0,32.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_D8ds_v4,8.0,32.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_D8ds_v5,8.0,32.0,2.0,General Purpose,True,pricing_bundle +AZURE,Standard_D8ds_v6,8.0,32.0,2.24,General Purpose,True,pricing_bundle +AZURE,Standard_D8pds_v6,8.0,32.0,2.34,General Purpose,True,pricing_bundle +AZURE,Standard_D8ps_v6,8.0,32.0,2.34,General Purpose,True,pricing_bundle +AZURE,Standard_D8s_v3,8.0,32.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_D8s_v4,8.0,32.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_D8s_v5,8.0,32.0,2.0,General Purpose,True,pricing_bundle +AZURE,Standard_D96a_v4,96.0,384.0,18.0,General Purpose,True,pricing_bundle +AZURE,Standard_D96ads_v5,96.0,384.0,24.0,General Purpose,True,pricing_bundle +AZURE,Standard_D96ads_v6,96.0,384.0,30.6,General Purpose,True,pricing_bundle +AZURE,Standard_D96as_v4,96.0,384.0,18.0,General Purpose,True,pricing_bundle +AZURE,Standard_D96as_v5,96.0,384.0,24.0,General Purpose,True,pricing_bundle +AZURE,Standard_D96ds_v5,96.0,384.0,24.0,General Purpose,True,pricing_bundle +AZURE,Standard_D96ds_v6,96.0,384.0,26.88,General Purpose,True,pricing_bundle +AZURE,Standard_D96pds_v6,96.0,384.0,28.08,General Purpose,True,pricing_bundle +AZURE,Standard_D96ps_v6,96.0,384.0,28.08,General Purpose,True,pricing_bundle +AZURE,Standard_D96s_v5,96.0,384.0,24.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC16ads_v5,16.0,64.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC16ads_v6,16.0,64.0,5.1,General Purpose,True,pricing_bundle +AZURE,Standard_DC16as_v5,16.0,64.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC2ads_v6,2.0,8.0,0.64,General Purpose,True,pricing_bundle +AZURE,Standard_DC32ads_v5,32.0,128.0,8.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC32ads_v6,32.0,128.0,10.2,General Purpose,True,pricing_bundle +AZURE,Standard_DC32as_v5,32.0,128.0,8.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC48ads_v5,48.0,192.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC48ads_v6,48.0,192.0,15.3,General Purpose,True,pricing_bundle +AZURE,Standard_DC48as_v5,48.0,192.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC4ads_v5,4.0,16.0,1.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC4ads_v6,4.0,16.0,1.28,General Purpose,True,pricing_bundle +AZURE,Standard_DC4as_v5,4.0,16.0,1.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC64ads_v5,64.0,256.0,16.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC64ads_v6,64.0,256.0,20.4,General Purpose,True,pricing_bundle +AZURE,Standard_DC64as_v5,64.0,256.0,16.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC8ads_v5,8.0,32.0,2.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC8ads_v6,8.0,32.0,2.55,General Purpose,True,pricing_bundle +AZURE,Standard_DC8as_v5,8.0,32.0,2.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC96ads_v5,96.0,384.0,24.0,General Purpose,True,pricing_bundle +AZURE,Standard_DC96ads_v6,96.0,384.0,30.6,General Purpose,True,pricing_bundle +AZURE,Standard_DC96as_v5,96.0,384.0,24.0,General Purpose,True,pricing_bundle +AZURE,Standard_DS12_v2,4.0,28.0,1.0,General Purpose,True,pricing_bundle +AZURE,Standard_DS13_v2,8.0,56.0,2.0,General Purpose,True,pricing_bundle +AZURE,Standard_DS14_v2,16.0,112.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_DS15_v2,20.0,140.0,5.0,General Purpose,True,pricing_bundle +AZURE,Standard_DS1_v2,1.0,3.5,0.2,General Purpose,True,pricing_bundle +AZURE,Standard_DS2_v2,2.0,7.0,0.4,General Purpose,True,pricing_bundle +AZURE,Standard_DS3_v2,4.0,14.0,0.75,General Purpose,True,pricing_bundle +AZURE,Standard_DS4_v2,8.0,28.0,1.5,General Purpose,True,pricing_bundle +AZURE,Standard_DS5_v2,16.0,56.0,3.0,General Purpose,True,pricing_bundle +AZURE,Standard_E128ds_v6,128.0,1024.0,49.28,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16_v3,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16a_v4,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16ads_v5,16.0,128.0,5.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16ads_v6,16.0,128.0,7.02,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16as_v4,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16as_v5,16.0,128.0,5.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16d_v4,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16ds_v4,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16ds_v5,16.0,128.0,5.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16ds_v6,16.0,128.0,6.16,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16pds_v6,16.0,128.0,6.44,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16ps_v6,16.0,128.0,6.44,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16s_v3,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16s_v4,16.0,128.0,4.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E16s_v5,16.0,128.0,5.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20a_v4,20.0,160.0,5.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20ads_v5,20.0,160.0,7.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20ads_v6,20.0,160.0,8.78,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20as_v4,20.0,160.0,5.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20as_v5,20.0,160.0,7.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20d_v4,20.0,160.0,5.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20ds_v4,20.0,160.0,5.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20ds_v5,20.0,160.0,7.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20ds_v6,20.0,160.0,7.7,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20s_v4,20.0,160.0,5.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E20s_v5,20.0,160.0,7.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E2_v3,2.0,16.0,0.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E2ads_v6,2.0,16.0,0.88,Memory Optimized,True,pricing_bundle +AZURE,Standard_E2ds_v5,2.0,16.0,0.75,Memory Optimized,True,pricing_bundle +AZURE,Standard_E2ds_v6,2.0,16.0,0.77,Memory Optimized,True,pricing_bundle +AZURE,Standard_E2pds_v6,2.0,16.0,0.81,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32_v3,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32a_v4,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32ads_v5,32.0,256.0,11.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32ads_v6,32.0,256.0,14.04,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32as_v4,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32as_v5,32.0,256.0,11.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32d_v4,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32ds_v4,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32ds_v5,32.0,256.0,11.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32ds_v6,32.0,256.0,12.32,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32pds_v6,32.0,256.0,12.88,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32ps_v6,32.0,256.0,12.88,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32s_v3,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32s_v4,32.0,256.0,8.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E32s_v5,32.0,256.0,11.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48a_v4,48.0,384.0,12.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48ads_v5,48.0,384.0,16.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48ads_v6,48.0,384.0,21.06,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48as_v4,48.0,384.0,12.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48as_v5,48.0,384.0,16.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48d_v4,48.0,384.0,12.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48ds_v4,48.0,384.0,12.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48ds_v5,48.0,384.0,16.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48ds_v6,48.0,384.0,18.48,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48pds_v6,48.0,384.0,19.32,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48ps_v6,48.0,384.0,19.32,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48s_v4,48.0,384.0,12.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E48s_v5,48.0,384.0,16.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4_v3,4.0,32.0,1.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4a_v4,4.0,32.0,1.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4ads_v5,4.0,32.0,1.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4ads_v6,4.0,32.0,1.76,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4as_v4,4.0,32.0,1.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4as_v5,4.0,32.0,1.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4d_v4,4.0,32.0,1.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4ds_v4,4.0,32.0,1.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4ds_v5,4.0,32.0,1.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4ds_v6,4.0,32.0,1.54,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4pds_v6,4.0,32.0,1.61,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4ps_v6,4.0,32.0,1.61,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4s_v4,4.0,32.0,1.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E4s_v5,4.0,32.0,1.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64_v3,64.0,432.0,16.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64a_v4,64.0,512.0,16.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64ads_v5,64.0,512.0,22.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64ads_v6,64.0,512.0,28.08,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64as_v4,64.0,432.0,16.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64as_v5,64.0,512.0,22.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64d_v4,64.0,504.0,16.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64ds_v4,64.0,504.0,16.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64ds_v5,64.0,512.0,22.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64ds_v6,64.0,512.0,24.64,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64pds_v6,64.0,512.0,25.76,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64ps_v6,64.0,512.0,25.76,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64s_v3,64.0,432.0,16.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64s_v4,64.0,504.0,16.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E64s_v5,64.0,512.0,22.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E80ids_v4,80.0,504.0,20.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E80is_v4,80.0,504.0,20.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8_v3,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8a_v4,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8ads_v5,8.0,64.0,2.75,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8ads_v6,8.0,64.0,3.51,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8as_v4,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8as_v5,8.0,64.0,2.75,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8d_v4,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8ds_v4,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8ds_v5,8.0,64.0,2.75,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8ds_v6,8.0,64.0,3.08,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8pds_v6,8.0,64.0,3.22,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8ps_v6,8.0,64.0,3.22,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8s_v3,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8s_v4,8.0,64.0,2.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E8s_v5,8.0,64.0,2.75,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96a_v4,96.0,672.0,24.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96ads_v5,96.0,672.0,33.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96ads_v6,96.0,672.0,42.12,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96as_v4,96.0,672.0,24.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96as_v5,96.0,672.0,33.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96ds_v5,96.0,672.0,33.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96ds_v6,96.0,768.0,36.96,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96pds_v6,96.0,672.0,38.64,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96ps_v6,96.0,672.0,38.64,Memory Optimized,True,pricing_bundle +AZURE,Standard_E96s_v5,96.0,672.0,33.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC16ads_v5,16.0,128.0,5.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC16ads_v6,16.0,128.0,7.02,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC16as_v5,16.0,128.0,5.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC16as_v6,16.0,128.0,7.02,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC20ads_v5,20.0,160.0,7.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC20ads_v6,20.0,160.0,8.78,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC20as_v5,20.0,160.0,7.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC20as_v6,20.0,160.0,8.78,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC2ads_v6,2.0,16.0,0.88,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC2as_v6,2.0,16.0,0.88,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC32ads_v5,32.0,256.0,11.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC32ads_v6,32.0,256.0,14.04,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC32as_v5,32.0,256.0,11.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC32as_v6,32.0,256.0,14.04,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC48ads_v5,48.0,384.0,16.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC48ads_v6,48.0,384.0,21.06,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC48as_v5,48.0,384.0,16.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC48as_v6,48.0,384.0,21.06,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC4ads_v5,4.0,32.0,1.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC4ads_v6,4.0,32.0,1.76,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC4as_v5,4.0,32.0,1.5,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC4as_v6,4.0,32.0,1.76,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC64ads_v5,64.0,512.0,22.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC64ads_v6,64.0,512.0,28.08,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC64as_v5,64.0,512.0,22.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC64as_v6,64.0,512.0,28.08,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC8ads_v5,8.0,64.0,2.75,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC8ads_v6,8.0,64.0,3.51,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC8as_v5,8.0,64.0,2.75,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC8as_v6,8.0,64.0,3.51,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC96ads_v5,96.0,672.0,33.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC96ads_v6,96.0,672.0,42.12,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC96as_v5,96.0,672.0,33.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_EC96as_v6,96.0,672.0,42.12,Memory Optimized,True,pricing_bundle +AZURE,Standard_F16,16.0,32.0,2.0,Compute Optimized,True,pricing_bundle +AZURE,Standard_F16s,16.0,32.0,2.0,Compute Optimized,True,pricing_bundle +AZURE,Standard_F16s_v2,16.0,32.0,3.0,Compute Optimized,True,pricing_bundle +AZURE,Standard_F32s_v2,32.0,64.0,6.0,Compute Optimized,True,pricing_bundle +AZURE,Standard_F4,4.0,8.0,0.5,Compute Optimized,True,pricing_bundle +AZURE,Standard_F4s,4.0,8.0,0.5,Compute Optimized,True,pricing_bundle +AZURE,Standard_F4s_v2,4.0,8.0,0.75,Compute Optimized,True,pricing_bundle +AZURE,Standard_F64s_v2,64.0,128.0,12.0,Compute Optimized,True,pricing_bundle +AZURE,Standard_F72s_v2,72.0,144.0,13.5,Compute Optimized,True,pricing_bundle +AZURE,Standard_F8,8.0,16.0,1.0,Compute Optimized,True,pricing_bundle +AZURE,Standard_F8s,8.0,16.0,1.0,Compute Optimized,True,pricing_bundle +AZURE,Standard_F8s_v2,8.0,16.0,1.5,Compute Optimized,True,pricing_bundle +AZURE,Standard_H16,16.0,112.0,4.0,General Purpose,True,pricing_bundle +AZURE,Standard_H8,8.0,56.0,2.5,General Purpose,True,pricing_bundle +AZURE,Standard_L16as_v3,16.0,128.0,5.5,Storage Optimized,True,pricing_bundle +AZURE,Standard_L16s,16.0,128.0,4.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L16s_v2,16.0,128.0,4.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L16s_v3,16.0,128.0,5.5,Storage Optimized,True,pricing_bundle +AZURE,Standard_L32as_v3,32.0,256.0,11.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L32s,32.0,256.0,8.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L32s_v2,32.0,256.0,8.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L32s_v3,32.0,256.0,11.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L48as_v3,48.0,384.0,16.5,Storage Optimized,True,pricing_bundle +AZURE,Standard_L48s_v3,48.0,384.0,16.5,Storage Optimized,True,pricing_bundle +AZURE,Standard_L4s,4.0,32.0,1.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L64as_v3,64.0,512.0,22.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L64s_v2,64.0,512.0,16.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L64s_v3,64.0,512.0,22.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L80as_v3,80.0,640.0,27.5,Storage Optimized,True,pricing_bundle +AZURE,Standard_L80s_v2,80.0,640.0,20.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L80s_v3,80.0,640.0,27.5,Storage Optimized,True,pricing_bundle +AZURE,Standard_L8as_v3,8.0,64.0,2.75,Storage Optimized,True,pricing_bundle +AZURE,Standard_L8s,8.0,64.0,2.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L8s_v2,8.0,64.0,2.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_L8s_v3,8.0,64.0,2.75,Storage Optimized,True,pricing_bundle +AZURE,Standard_Large,160.0,1280.0,40.0,Storage Optimized,True,pricing_bundle +AZURE,Standard_Medium,96.0,768.0,24.0,Memory Optimized,True,pricing_bundle +AZURE,Standard_NC12,12.0,112.0,3.0,GPU,True,pricing_bundle +AZURE,Standard_NC12s_v3,12.0,224.0,10.0,GPU,True,pricing_bundle +AZURE,Standard_NC16as_T4_v3,16.0,110.0,2.5,GPU,True,pricing_bundle +AZURE,Standard_NC24,24.0,224.0,6.0,GPU,True,pricing_bundle +AZURE,Standard_NC24ads_A100_v4,24.0,220.0,10.0,GPU,True,pricing_bundle +AZURE,Standard_NC24s_v3,24.0,448.0,20.0,GPU,True,pricing_bundle +AZURE,Standard_NC40ads_H100_V5,40.0,320.0,13.0585975,GPU,True,pricing_bundle +AZURE,Standard_NC48ads_A100_v4,48.0,440.0,20.0,GPU,True,pricing_bundle +AZURE,Standard_NC4as_T4_v3,4.0,28.0,1.0,GPU,True,pricing_bundle +AZURE,Standard_NC64as_T4_v3,64.0,440.0,10.0,GPU,True,pricing_bundle +AZURE,Standard_NC6s_v3,6.0,112.0,5.0,GPU,True,pricing_bundle +AZURE,Standard_NC80ads_H100_V5,80.0,640.0,26.117195,GPU,True,pricing_bundle +AZURE,Standard_NC8as_T4_v3,8.0,56.0,1.5,GPU,True,pricing_bundle +AZURE,Standard_NC96ads_A100_v4,96.0,880.0,44.0,GPU,True,pricing_bundle +AZURE,Standard_NCCads_H100_v5,40.0,320.0,13.0585975,GPU,True,pricing_bundle +AZURE,Standard_ND96asr_v4,96.0,900.0,44.0,GPU,True,pricing_bundle +AZURE,Standard_ND96isr_H100_V5,96.0,1900.0,88.9096,GPU,True,pricing_bundle +AZURE,Standard_NV36adms_A10_v5,36.0,880.0,6.0,GPU,True,pricing_bundle +AZURE,Standard_NV36ads_A10_v5,36.0,440.0,4.0,GPU,True,pricing_bundle +AZURE,Standard_NV72ads_A10_v5,72.0,880.0,8.0,GPU,True,pricing_bundle +AZURE,Standard_Small,48.0,384.0,12.0,General Purpose,True,pricing_bundle +AZURE,Standard_X-Large,320.0,2560.0,80.0,General Purpose,True,pricing_bundle +AZURE,Standard_X-Small,24.0,192.0,6.0,General Purpose,True,pricing_bundle +GCP,a2-highgpu-1g,12.0,85.0,5.43,GPU,True,pricing_bundle +GCP,a2-highgpu-2g,24.0,170.0,10.86,GPU,True,pricing_bundle +GCP,a2-highgpu-4g,48.0,340.0,21.72,GPU,True,pricing_bundle +GCP,a2-highgpu-8g,96.0,680.0,43.44,GPU,True,pricing_bundle +GCP,a2-megagpu-16g,96.0,1360.0,63.839999999999996,GPU,True,pricing_bundle +GCP,a2-ultragpu-1g,12.0,170.0,7.9799999999999995,GPU,True,pricing_bundle +GCP,a2-ultragpu-2g,24.0,340.0,15.959999999999999,GPU,True,pricing_bundle +GCP,a2-ultragpu-4g,48.0,680.0,31.919999999999998,GPU,True,pricing_bundle +GCP,a2-ultragpu-8g,96.0,1360.0,63.839999999999996,GPU,True,pricing_bundle +GCP,a3-highgpu-1g,26.0,234.0,14.127,General Purpose,True,pricing_bundle +GCP,a3-highgpu-2g,26.0,234.0,28.254,General Purpose,True,pricing_bundle +GCP,a3-highgpu-4g,26.0,234.0,56.509,General Purpose,True,pricing_bundle +GCP,a3-highgpu-8g,26.0,234.0,113.018,General Purpose,True,pricing_bundle +GCP,c2-standard-16,16.0,64.0,2.88,Compute Optimized,True,pricing_bundle +GCP,c2-standard-30,30.0,120.0,5.3999999999999995,Compute Optimized,True,pricing_bundle +GCP,c2-standard-4,4.0,16.0,0.72,Compute Optimized,True,pricing_bundle +GCP,c2-standard-60,60.0,240.0,10.799999999999999,Compute Optimized,True,pricing_bundle +GCP,c2-standard-8,8.0,32.0,1.44,Compute Optimized,True,pricing_bundle +GCP,c3-highmem-22,22.0,176.0,6.6,Compute Optimized,True,pricing_bundle +GCP,c3-highmem-4,4.0,32.0,1.2,Compute Optimized,True,pricing_bundle +GCP,c3-highmem-44,44.0,352.0,13.2,Compute Optimized,True,pricing_bundle +GCP,c3-highmem-8,8.0,64.0,2.4,Compute Optimized,True,pricing_bundle +GCP,c3-highmem-88,88.0,704.0,26.4,Compute Optimized,True,pricing_bundle +GCP,c3-standard-22 (-lssd),22.0,88.0,4.68,Compute Optimized,True,pricing_bundle +GCP,c3-standard-4 (-lssd),4.0,16.0,0.85,Compute Optimized,True,pricing_bundle +GCP,c3-standard-44 (-lssd),44.0,176.0,9.35,Compute Optimized,True,pricing_bundle +GCP,c3-standard-8 (-lssd),8.0,32.0,1.7,Compute Optimized,True,pricing_bundle +GCP,c3-standard-88 (-lssd),88.0,352.0,18.7,Compute Optimized,True,pricing_bundle +GCP,c3d-highmem-16 (-lssd),16.0,128.0,4.8,General Purpose,True,pricing_bundle +GCP,c3d-highmem-180 (-lssd),180.0,1440.0,54.0,General Purpose,True,pricing_bundle +GCP,c3d-highmem-30 (-lssd),30.0,240.0,9.0,General Purpose,True,pricing_bundle +GCP,c3d-highmem-360 (-lssd),360.0,2880.0,108.0,General Purpose,True,pricing_bundle +GCP,c3d-highmem-4 (-lssd),4.0,32.0,1.2,General Purpose,True,pricing_bundle +GCP,c3d-highmem-60 (-lssd),60.0,480.0,18.0,General Purpose,True,pricing_bundle +GCP,c3d-highmem-8 (-lssd),8.0,64.0,2.4,General Purpose,True,pricing_bundle +GCP,c3d-highmem-90 (-lssd),90.0,720.0,27.0,General Purpose,True,pricing_bundle +GCP,c3d-standard-16 (-lssd),16.0,64.0,3.4,General Purpose,True,pricing_bundle +GCP,c3d-standard-180 (-lssd),180.0,720.0,38.25,General Purpose,True,pricing_bundle +GCP,c3d-standard-30 (-lssd),30.0,120.0,6.38,General Purpose,True,pricing_bundle +GCP,c3d-standard-360 (-lssd),360.0,1440.0,76.5,General Purpose,True,pricing_bundle +GCP,c3d-standard-4 (-lssd),4.0,16.0,0.85,General Purpose,True,pricing_bundle +GCP,c3d-standard-60 (-lssd),60.0,240.0,12.75,General Purpose,True,pricing_bundle +GCP,c3d-standard-8 (-lssd),8.0,32.0,1.7,General Purpose,True,pricing_bundle +GCP,c3d-standard-90 (-lssd),90.0,360.0,19.13,General Purpose,True,pricing_bundle +GCP,c4-standard-16,16.0,60.0,4.24,General Purpose,True,pricing_bundle +GCP,c4-standard-2,2.0,7.0,0.53,General Purpose,True,pricing_bundle +GCP,c4-standard-24,24.0,90.0,6.36,General Purpose,True,pricing_bundle +GCP,c4-standard-32,32.0,120.0,8.48,General Purpose,True,pricing_bundle +GCP,c4-standard-4,4.0,15.0,1.06,General Purpose,True,pricing_bundle +GCP,c4-standard-8,8.0,30.0,2.12,General Purpose,True,pricing_bundle +GCP,c4a-highmem-16 (-lssd),16.0,128.0,7.92,General Purpose,True,pricing_bundle +GCP,c4a-highmem-32 (-lssd),32.0,256.0,15.84,General Purpose,True,pricing_bundle +GCP,c4a-highmem-4 (-lssd),4.0,32.0,1.98,General Purpose,True,pricing_bundle +GCP,c4a-highmem-48 (-lssd),48.0,384.0,23.76,General Purpose,True,pricing_bundle +GCP,c4a-highmem-64 (-lssd),64.0,512.0,31.68,General Purpose,True,pricing_bundle +GCP,c4a-highmem-72 (-lssd),72.0,576.0,35.64,General Purpose,True,pricing_bundle +GCP,c4a-highmem-8 (-lssd),8.0,64.0,3.96,General Purpose,True,pricing_bundle +GCP,c4a-standard-16 (-lssd),16.0,64.0,5.6,General Purpose,True,pricing_bundle +GCP,c4a-standard-32 (-lssd),32.0,128.0,11.2,General Purpose,True,pricing_bundle +GCP,c4a-standard-4 (-lssd),4.0,16.0,1.4,General Purpose,True,pricing_bundle +GCP,c4a-standard-48 (-lssd),48.0,192.0,16.8,General Purpose,True,pricing_bundle +GCP,c4a-standard-64 (-lssd),64.0,256.0,22.4,General Purpose,True,pricing_bundle +GCP,c4a-standard-72 (-lssd),72.0,288.0,25.2,General Purpose,True,pricing_bundle +GCP,c4a-standard-8 (-lssd),8.0,32.0,2.8,General Purpose,True,pricing_bundle +GCP,c4d-standard-16,16.0,62.0,5.94,General Purpose,True,pricing_bundle +GCP,c4d-standard-2,2.0,7.0,0.7425,General Purpose,True,pricing_bundle +GCP,c4d-standard-32,32.0,124.0,11.88,General Purpose,True,pricing_bundle +GCP,c4d-standard-4,4.0,15.0,1.485,General Purpose,True,pricing_bundle +GCP,c4d-standard-8,8.0,31.0,2.97,General Purpose,True,pricing_bundle +GCP,e2_highcpu_16,16.0,16.0,2.16,General Purpose,True,pricing_bundle +GCP,e2_highcpu_32,32.0,32.0,4.32,General Purpose,True,pricing_bundle +GCP,e2_highmem_16,16.0,128.0,3.84,General Purpose,True,pricing_bundle +GCP,e2_highmem_2,2.0,16.0,0.48,General Purpose,True,pricing_bundle +GCP,e2_highmem_4,4.0,32.0,0.96,General Purpose,True,pricing_bundle +GCP,e2_highmem_8,8.0,64.0,1.92,General Purpose,True,pricing_bundle +GCP,e2_standard_16,16.0,64.0,2.88,General Purpose,True,pricing_bundle +GCP,e2_standard_32,32.0,128.0,5.76,General Purpose,True,pricing_bundle +GCP,e2_standard_4,4.0,16.0,0.72,General Purpose,True,pricing_bundle +GCP,e2_standard_8,8.0,32.0,1.44,General Purpose,True,pricing_bundle +GCP,g2-standard-12,12.0,48.0,4.32,GPU,True,pricing_bundle +GCP,g2-standard-16,16.0,64.0,5.76,GPU,True,pricing_bundle +GCP,g2-standard-24,24.0,96.0,8.64,GPU,True,pricing_bundle +GCP,g2-standard-32,32.0,128.0,11.52,GPU,True,pricing_bundle +GCP,g2-standard-4,4.0,16.0,1.44,GPU,True,pricing_bundle +GCP,g2-standard-48,48.0,192.0,17.28,GPU,True,pricing_bundle +GCP,g2-standard-8,8.0,32.0,2.88,GPU,True,pricing_bundle +GCP,g2-standard-96,96.0,384.0,34.56,GPU,True,pricing_bundle +GCP,n1-highcpu-16,16.0,14.4,2.136,General Purpose,True,pricing_bundle +GCP,n1-highcpu-32,32.0,28.8,4.272,General Purpose,True,pricing_bundle +GCP,n1-highcpu-64,64.0,57.6,8.544,General Purpose,True,pricing_bundle +GCP,n1-highcpu-96,96.0,86.4,12.815999999999999,General Purpose,True,pricing_bundle +GCP,n1-highmem-16,16.0,104.0,3.48,General Purpose,True,pricing_bundle +GCP,n1-highmem-32,32.0,208.0,6.96,General Purpose,True,pricing_bundle +GCP,n1-highmem-4,4.0,26.0,0.87,General Purpose,True,pricing_bundle +GCP,n1-highmem-64,64.0,416.0,13.92,General Purpose,True,pricing_bundle +GCP,n1-highmem-8,8.0,52.0,1.74,General Purpose,True,pricing_bundle +GCP,n1-highmem-96,96.0,624.0,20.88,General Purpose,True,pricing_bundle +GCP,n1-standard-16,16.0,60.0,2.82,General Purpose,True,pricing_bundle +GCP,n1-standard-32,32.0,120.0,5.64,General Purpose,True,pricing_bundle +GCP,n1-standard-4,4.0,15.0,0.71,General Purpose,True,pricing_bundle +GCP,n1-standard-64,64.0,240.0,11.28,General Purpose,True,pricing_bundle +GCP,n1-standard-8,8.0,30.0,1.41,General Purpose,True,pricing_bundle +GCP,n1-standard-96,96.0,360.0,16.92,General Purpose,True,pricing_bundle +GCP,n2-highcpu-16,16.0,16.0,2.16,General Purpose,True,pricing_bundle +GCP,n2-highcpu-32,32.0,32.0,4.32,General Purpose,True,pricing_bundle +GCP,n2-highcpu-48,48.0,48.0,6.4799999999999995,General Purpose,True,pricing_bundle +GCP,n2-highcpu-64,64.0,64.0,8.64,General Purpose,True,pricing_bundle +GCP,n2-highcpu-80,80.0,80.0,10.799999999999999,General Purpose,True,pricing_bundle +GCP,n2-highmem-16,16.0,128.0,3.84,General Purpose,True,pricing_bundle +GCP,n2-highmem-2,2.0,16.0,0.48,General Purpose,True,pricing_bundle +GCP,n2-highmem-32,32.0,256.0,7.68,General Purpose,True,pricing_bundle +GCP,n2-highmem-4,4.0,32.0,0.96,General Purpose,True,pricing_bundle +GCP,n2-highmem-48,48.0,384.0,11.52,General Purpose,True,pricing_bundle +GCP,n2-highmem-64,64.0,512.0,15.36,General Purpose,True,pricing_bundle +GCP,n2-highmem-8,8.0,64.0,1.92,General Purpose,True,pricing_bundle +GCP,n2-highmem-80,80.0,640.0,19.2,General Purpose,True,pricing_bundle +GCP,n2-standard-16,16.0,64.0,2.88,General Purpose,True,pricing_bundle +GCP,n2-standard-32,32.0,128.0,5.76,General Purpose,True,pricing_bundle +GCP,n2-standard-4,4.0,16.0,0.72,General Purpose,True,pricing_bundle +GCP,n2-standard-48,48.0,192.0,8.64,General Purpose,True,pricing_bundle +GCP,n2-standard-64,64.0,256.0,11.52,General Purpose,True,pricing_bundle +GCP,n2-standard-8,8.0,32.0,1.44,General Purpose,True,pricing_bundle +GCP,n2-standard-80,80.0,320.0,14.399999999999999,General Purpose,True,pricing_bundle +GCP,n2d-highcpu-128,128.0,128.0,17.28,General Purpose,True,pricing_bundle +GCP,n2d-highcpu-16,16.0,16.0,2.16,General Purpose,True,pricing_bundle +GCP,n2d-highcpu-224,224.0,224.0,30.24,General Purpose,True,pricing_bundle +GCP,n2d-highcpu-32,32.0,32.0,4.32,General Purpose,True,pricing_bundle +GCP,n2d-highcpu-48,48.0,48.0,6.4799999999999995,General Purpose,True,pricing_bundle +GCP,n2d-highcpu-64,64.0,64.0,8.64,General Purpose,True,pricing_bundle +GCP,n2d-highcpu-80,80.0,80.0,10.799999999999999,General Purpose,True,pricing_bundle +GCP,n2d-highcpu-96,96.0,96.0,12.959999999999999,General Purpose,True,pricing_bundle +GCP,n2d-highmem-16,16.0,128.0,3.84,General Purpose,True,pricing_bundle +GCP,n2d-highmem-2,2.0,16.0,0.48,General Purpose,True,pricing_bundle +GCP,n2d-highmem-32,32.0,256.0,7.68,General Purpose,True,pricing_bundle +GCP,n2d-highmem-4,4.0,32.0,0.96,General Purpose,True,pricing_bundle +GCP,n2d-highmem-48,48.0,384.0,11.52,General Purpose,True,pricing_bundle +GCP,n2d-highmem-64,64.0,512.0,15.36,General Purpose,True,pricing_bundle +GCP,n2d-highmem-8,8.0,64.0,1.92,General Purpose,True,pricing_bundle +GCP,n2d-highmem-80,80.0,640.0,19.2,General Purpose,True,pricing_bundle +GCP,n2d-highmem-96,96.0,768.0,23.04,General Purpose,True,pricing_bundle +GCP,n2d-standard-128,128.0,512.0,23.04,General Purpose,True,pricing_bundle +GCP,n2d-standard-16,16.0,64.0,2.88,General Purpose,True,pricing_bundle +GCP,n2d-standard-224,224.0,896.0,40.32,General Purpose,True,pricing_bundle +GCP,n2d-standard-32,32.0,128.0,5.76,General Purpose,True,pricing_bundle +GCP,n2d-standard-4,4.0,16.0,0.72,General Purpose,True,pricing_bundle +GCP,n2d-standard-48,48.0,192.0,8.64,General Purpose,True,pricing_bundle +GCP,n2d-standard-64,64.0,256.0,11.52,General Purpose,True,pricing_bundle +GCP,n2d-standard-8,8.0,32.0,1.44,General Purpose,True,pricing_bundle +GCP,n2d-standard-80,80.0,320.0,14.399999999999999,General Purpose,True,pricing_bundle +GCP,n2d-standard-96,96.0,384.0,17.28,General Purpose,True,pricing_bundle +GCP,n4-standard-16,16.0,64.0,3.36,General Purpose,True,pricing_bundle +GCP,n4-standard-2,2.0,8.0,0.42,General Purpose,True,pricing_bundle +GCP,n4-standard-32,32.0,128.0,6.72,General Purpose,True,pricing_bundle +GCP,n4-standard-4,4.0,16.0,0.84,General Purpose,True,pricing_bundle +GCP,n4-standard-8,8.0,32.0,1.68,General Purpose,True,pricing_bundle diff --git a/lakemeter/backend/static/pricing/instance-dbu-rates.json b/lakemeter/backend/static/pricing/instance-dbu-rates.json new file mode 100644 index 00000000..2bc69076 --- /dev/null +++ b/lakemeter/backend/static/pricing/instance-dbu-rates.json @@ -0,0 +1,6422 @@ +{ + "aws": { + "c5.12xlarge": { + "dbu_rate": 7.28, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c5.18xlarge": { + "dbu_rate": 10.92, + "vcpus": 72.0, + "memory_gb": 144.0, + "family": "Compute Optimized" + }, + "c5.24xlarge": { + "dbu_rate": 14.56, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c5.4xlarge": { + "dbu_rate": 2.43, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c5.9xlarge": { + "dbu_rate": 5.46, + "vcpus": 36.0, + "memory_gb": 72.0, + "family": "Compute Optimized" + }, + "c5a.12xlarge": { + "dbu_rate": 7.28, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c5a.16xlarge": { + "dbu_rate": 9.72, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c5a.24xlarge": { + "dbu_rate": 14.56, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c5a.2xlarge": { + "dbu_rate": 1.21, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c5a.4xlarge": { + "dbu_rate": 2.43, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c5a.8xlarge": { + "dbu_rate": 4.86, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c5a.xlarge": { + "dbu_rate": 0.61, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c5ad.12xlarge": { + "dbu_rate": 8.22, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c5ad.16xlarge": { + "dbu_rate": 10.96, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c5ad.24xlarge": { + "dbu_rate": 16.44, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c5ad.2xlarge": { + "dbu_rate": 1.37, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c5ad.4xlarge": { + "dbu_rate": 2.74, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c5ad.8xlarge": { + "dbu_rate": 5.48, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c5ad.xlarge": { + "dbu_rate": 0.69, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c5d.12xlarge": { + "dbu_rate": 7.28, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c5d.18xlarge": { + "dbu_rate": 10.92, + "vcpus": 72.0, + "memory_gb": 144.0, + "family": "Compute Optimized" + }, + "c5d.24xlarge": { + "dbu_rate": 14.56, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c5d.2xlarge": { + "dbu_rate": 1.21, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c5d.4xlarge": { + "dbu_rate": 2.43, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c5d.9xlarge": { + "dbu_rate": 5.46, + "vcpus": 36.0, + "memory_gb": 72.0, + "family": "Compute Optimized" + }, + "c5d.xlarge": { + "dbu_rate": 0.61, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c5n.18xlarge": { + "dbu_rate": 13.97, + "vcpus": 72.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c5n.2xlarge": { + "dbu_rate": 1.55, + "vcpus": 8.0, + "memory_gb": 21.0, + "family": "Compute Optimized" + }, + "c5n.4xlarge": { + "dbu_rate": 3.11, + "vcpus": 16.0, + "memory_gb": 42.0, + "family": "Compute Optimized" + }, + "c5n.9xlarge": { + "dbu_rate": 6.99, + "vcpus": 36.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c5n.metal": { + "dbu_rate": 13.97, + "vcpus": 72.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c5n.xlarge": { + "dbu_rate": 0.78, + "vcpus": 4.0, + "memory_gb": 10.5, + "family": "Compute Optimized" + }, + "c6g.12xlarge": { + "dbu_rate": 9.24, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c6g.16xlarge": { + "dbu_rate": 12.32, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c6g.2xlarge": { + "dbu_rate": 1.54, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c6g.4xlarge": { + "dbu_rate": 3.08, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c6g.8xlarge": { + "dbu_rate": 6.16, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c6g.xlarge": { + "dbu_rate": 0.77, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c6gd.12xlarge": { + "dbu_rate": 9.24, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c6gd.16xlarge": { + "dbu_rate": 12.32, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c6gd.2xlarge": { + "dbu_rate": 1.54, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c6gd.4xlarge": { + "dbu_rate": 3.08, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c6gd.8xlarge": { + "dbu_rate": 6.16, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c6gd.xlarge": { + "dbu_rate": 0.77, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c6i.12xlarge": { + "dbu_rate": 8.34, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c6i.16xlarge": { + "dbu_rate": 11.13, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c6i.24xlarge": { + "dbu_rate": 16.69, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c6i.2xlarge": { + "dbu_rate": 1.39, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c6i.32xlarge": { + "dbu_rate": 22.25, + "vcpus": 128.0, + "memory_gb": 256.0, + "family": "Compute Optimized" + }, + "c6i.4xlarge": { + "dbu_rate": 2.78, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c6i.8xlarge": { + "dbu_rate": 5.56, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c6i.xlarge": { + "dbu_rate": 0.7, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c6id.12xlarge": { + "dbu_rate": 8.34, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c6id.16xlarge": { + "dbu_rate": 11.13, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c6id.24xlarge": { + "dbu_rate": 16.69, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c6id.2xlarge": { + "dbu_rate": 1.39, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c6id.32xlarge": { + "dbu_rate": 22.25, + "vcpus": 128.0, + "memory_gb": 256.0, + "family": "Compute Optimized" + }, + "c6id.4xlarge": { + "dbu_rate": 2.78, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c6id.8xlarge": { + "dbu_rate": 5.56, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c6id.xlarge": { + "dbu_rate": 0.7, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c6in.12xlarge": { + "dbu_rate": 8.34, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c6in.16xlarge": { + "dbu_rate": 11.13, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c6in.24xlarge": { + "dbu_rate": 16.69, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c6in.2xlarge": { + "dbu_rate": 1.39, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c6in.32xlarge": { + "dbu_rate": 22.25, + "vcpus": 128.0, + "memory_gb": 256.0, + "family": "Compute Optimized" + }, + "c6in.4xlarge": { + "dbu_rate": 2.78, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c6in.8xlarge": { + "dbu_rate": 5.56, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c6in.xlarge": { + "dbu_rate": 0.7, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c7a.12xlarge": { + "dbu_rate": 9.9, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c7a.16xlarge": { + "dbu_rate": 13.2, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c7a.24xlarge": { + "dbu_rate": 19.8, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c7a.2xlarge": { + "dbu_rate": 1.65, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c7a.32xlarge": { + "dbu_rate": 26.4, + "vcpus": 128.0, + "memory_gb": 256.0, + "family": "Compute Optimized" + }, + "c7a.48xlarge": { + "dbu_rate": 39.6, + "vcpus": 192.0, + "memory_gb": 384.0, + "family": "Compute Optimized" + }, + "c7a.4xlarge": { + "dbu_rate": 3.3, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c7a.8xlarge": { + "dbu_rate": 6.6, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c7a.xlarge": { + "dbu_rate": 0.83, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c7g.12xlarge": { + "dbu_rate": 10.86, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c7g.16xlarge": { + "dbu_rate": 14.48, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c7g.2xlarge": { + "dbu_rate": 1.81, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c7g.4xlarge": { + "dbu_rate": 3.62, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c7g.8xlarge": { + "dbu_rate": 7.24, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c7g.xlarge": { + "dbu_rate": 0.9, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c7gd.12xlarge": { + "dbu_rate": 10.86, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c7gd.16xlarge": { + "dbu_rate": 14.48, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c7gd.2xlarge": { + "dbu_rate": 1.81, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c7gd.4xlarge": { + "dbu_rate": 3.62, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c7gd.8xlarge": { + "dbu_rate": 7.24, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c7gd.xlarge": { + "dbu_rate": 0.9, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c7i.12xlarge": { + "dbu_rate": 9.18, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "Compute Optimized" + }, + "c7i.16xlarge": { + "dbu_rate": 12.24, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "c7i.24xlarge": { + "dbu_rate": 18.36, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c7i.2xlarge": { + "dbu_rate": 1.53, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c7i.48xlarge": { + "dbu_rate": 36.72, + "vcpus": 192.0, + "memory_gb": 384.0, + "family": "Compute Optimized" + }, + "c7i.4xlarge": { + "dbu_rate": 3.06, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c7i.8xlarge": { + "dbu_rate": 6.12, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c7i.large": { + "dbu_rate": 0.38, + "vcpus": 2.0, + "memory_gb": 4.0, + "family": "Compute Optimized" + }, + "c7i.metal-24xl": { + "dbu_rate": 18.36, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "Compute Optimized" + }, + "c7i.metal-48xl": { + "dbu_rate": 36.72, + "vcpus": 192.0, + "memory_gb": 384.0, + "family": "Compute Optimized" + }, + "c7i.xlarge": { + "dbu_rate": 0.77, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "c8g.12xlarge": { + "dbu_rate": 12.9, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "General Purpose" + }, + "c8g.16xlarge": { + "dbu_rate": 17.2, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "c8g.24xlarge": { + "dbu_rate": 25.8, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "c8g.2xlarge": { + "dbu_rate": 2.15, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "c8g.48xlarge": { + "dbu_rate": 51.6, + "vcpus": 192.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "c8g.4xlarge": { + "dbu_rate": 4.3, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "c8g.8xlarge": { + "dbu_rate": 8.6, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "c8g.large": { + "dbu_rate": 0.54, + "vcpus": 2.0, + "memory_gb": 4.0, + "family": "General Purpose" + }, + "c8g.medium": { + "dbu_rate": 0.27, + "vcpus": 1.0, + "memory_gb": 2.0, + "family": "General Purpose" + }, + "c8g.xlarge": { + "dbu_rate": 1.08, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "c8gd.12xlarge": { + "dbu_rate": 12.9, + "vcpus": 48.0, + "memory_gb": 96.0, + "family": "General Purpose" + }, + "c8gd.16xlarge": { + "dbu_rate": 17.2, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "c8gd.24xlarge": { + "dbu_rate": 25.8, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "c8gd.2xlarge": { + "dbu_rate": 2.15, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "c8gd.48xlarge": { + "dbu_rate": 51.6, + "vcpus": 192.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "c8gd.4xlarge": { + "dbu_rate": 4.3, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "c8gd.8xlarge": { + "dbu_rate": 8.6, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "c8gd.large": { + "dbu_rate": 0.54, + "vcpus": 2.0, + "memory_gb": 4.0, + "family": "General Purpose" + }, + "c8gd.xlarge": { + "dbu_rate": 1.08, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "d3.2xlarge": { + "dbu_rate": 3.2, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "d3.4xlarge": { + "dbu_rate": 6.4, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Storage Optimized" + }, + "d3.8xlarge": { + "dbu_rate": 12.8, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Storage Optimized" + }, + "d3.xlarge": { + "dbu_rate": 1.6, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Storage Optimized" + }, + "d3en.12xlarge": { + "dbu_rate": 20.16, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "Storage Optimized" + }, + "d3en.2xlarge": { + "dbu_rate": 3.36, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "Storage Optimized" + }, + "d3en.4xlarge": { + "dbu_rate": 6.72, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "d3en.6xlarge": { + "dbu_rate": 10.08, + "vcpus": 24.0, + "memory_gb": 96.0, + "family": "Storage Optimized" + }, + "d3en.8xlarge": { + "dbu_rate": 13.44, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "Storage Optimized" + }, + "d3en.xlarge": { + "dbu_rate": 1.68, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "Storage Optimized" + }, + "g4dn.12xlarge": { + "dbu_rate": 8.56, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "GPU" + }, + "g4dn.16xlarge": { + "dbu_rate": 11.41, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "GPU" + }, + "g4dn.2xlarge": { + "dbu_rate": 1.43, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "GPU" + }, + "g4dn.4xlarge": { + "dbu_rate": 2.85, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "GPU" + }, + "g4dn.8xlarge": { + "dbu_rate": 5.7, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "GPU" + }, + "g4dn.xlarge": { + "dbu_rate": 0.71, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "GPU" + }, + "g5.12xlarge": { + "dbu_rate": 7.688711111111111, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "GPU" + }, + "g5.16xlarge": { + "dbu_rate": 5.552355555555556, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "GPU" + }, + "g5.24xlarge": { + "dbu_rate": 11.039644444444445, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "GPU" + }, + "g5.2xlarge": { + "dbu_rate": 1.6429333333333331, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "GPU" + }, + "g5.48xlarge": { + "dbu_rate": 22.07928888888889, + "vcpus": 192.0, + "memory_gb": 768.0, + "family": "GPU" + }, + "g5.4xlarge": { + "dbu_rate": 2.201422222222222, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "GPU" + }, + "g5.8xlarge": { + "dbu_rate": 3.3183999999999996, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "GPU" + }, + "g5.xlarge": { + "dbu_rate": 1.363688888888889, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "GPU" + }, + "g6.12xlarge": { + "dbu_rate": 6.088360248, + "vcpus": 96.0, + "memory_gb": 192.0, + "family": "GPU" + }, + "g6.16xlarge": { + "dbu_rate": 4.494167702, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "GPU" + }, + "g6.24xlarge": { + "dbu_rate": 8.830900621, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "GPU" + }, + "g6.2xlarge": { + "dbu_rate": 1.293875776, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "GPU" + }, + "g6.48xlarge": { + "dbu_rate": 17.66180124, + "vcpus": 192.0, + "memory_gb": 768.0, + "family": "GPU" + }, + "g6.4xlarge": { + "dbu_rate": 1.750304348, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "GPU" + }, + "g6.8xlarge": { + "dbu_rate": 2.664484472, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "GPU" + }, + "g6.xlarge": { + "dbu_rate": 1.065, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "GPU" + }, + "g6e.12xlarge": { + "dbu_rate": 14.00322857, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "GPU" + }, + "g6e.16xlarge": { + "dbu_rate": 10.33658571, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "GPU" + }, + "g6e.24xlarge": { + "dbu_rate": 20.31107143, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "GPU" + }, + "g6e.2xlarge": { + "dbu_rate": 2.975914285, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "GPU" + }, + "g6e.48xlarge": { + "dbu_rate": 40.62214285, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "GPU" + }, + "g6e.4xlarge": { + "dbu_rate": 4.0257, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "GPU" + }, + "g6e.8xlarge": { + "dbu_rate": 6.128314286, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "GPU" + }, + "g6e.xlarge": { + "dbu_rate": 2.4495, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "GPU" + }, + "gr6.4xlarge": { + "dbu_rate": 2.036068323, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "gr6.8xlarge": { + "dbu_rate": 3.236012422, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "i2.2xlarge": { + "dbu_rate": 3.0, + "vcpus": 8.0, + "memory_gb": 61.0, + "family": "General Purpose" + }, + "i2.4xlarge": { + "dbu_rate": 6.0, + "vcpus": 16.0, + "memory_gb": 122.0, + "family": "General Purpose" + }, + "i2.8xlarge": { + "dbu_rate": 12.0, + "vcpus": 32.0, + "memory_gb": 244.0, + "family": "General Purpose" + }, + "i2.xlarge": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 30.5, + "family": "General Purpose" + }, + "i3.16xlarge": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 488.0, + "family": "Storage Optimized" + }, + "i3.2xlarge": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 61.0, + "family": "Storage Optimized" + }, + "i3.4xlarge": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 122.0, + "family": "Storage Optimized" + }, + "i3.8xlarge": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 244.0, + "family": "Storage Optimized" + }, + "i3.large": { + "dbu_rate": 0.75, + "vcpus": 2.0, + "memory_gb": 15.3, + "family": "Storage Optimized" + }, + "i3.xlarge": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 30.5, + "family": "Storage Optimized" + }, + "i3en.12xlarge": { + "dbu_rate": 17.4, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Storage Optimized" + }, + "i3en.24xlarge": { + "dbu_rate": 34.8, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Storage Optimized" + }, + "i3en.2xlarge": { + "dbu_rate": 2.9, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "i3en.3xlarge": { + "dbu_rate": 4.35, + "vcpus": 12.0, + "memory_gb": 96.0, + "family": "Storage Optimized" + }, + "i3en.6xlarge": { + "dbu_rate": 8.7, + "vcpus": 24.0, + "memory_gb": 192.0, + "family": "Storage Optimized" + }, + "i3en.large": { + "dbu_rate": 0.75, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Storage Optimized" + }, + "i3en.xlarge": { + "dbu_rate": 1.45, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Storage Optimized" + }, + "i4g.16xlarge": { + "dbu_rate": 19.8, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Storage Optimized" + }, + "i4g.2xlarge": { + "dbu_rate": 2.48, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "i4g.4xlarge": { + "dbu_rate": 4.95, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Storage Optimized" + }, + "i4g.8xlarge": { + "dbu_rate": 9.9, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Storage Optimized" + }, + "i4g.large": { + "dbu_rate": 0.62, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Storage Optimized" + }, + "i4g.xlarge": { + "dbu_rate": 1.24, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Storage Optimized" + }, + "i4i.16xlarge": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Storage Optimized" + }, + "i4i.2xlarge": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "i4i.32xlarge": { + "dbu_rate": 44.0, + "vcpus": 128.0, + "memory_gb": 1024.0, + "family": "Storage Optimized" + }, + "i4i.4xlarge": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Storage Optimized" + }, + "i4i.8xlarge": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Storage Optimized" + }, + "i4i.large": { + "dbu_rate": 0.69, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Storage Optimized" + }, + "i4i.xlarge": { + "dbu_rate": 1.38, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Storage Optimized" + }, + "i7i.12xlarge": { + "dbu_rate": 23.4, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "i7i.16xlarge": { + "dbu_rate": 31.2, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "i7i.24xlarge": { + "dbu_rate": 46.8, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "i7i.2xlarge": { + "dbu_rate": 3.9, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "i7i.48xlarge": { + "dbu_rate": 93.6, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "General Purpose" + }, + "i7i.4xlarge": { + "dbu_rate": 7.8, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "i7i.8xlarge": { + "dbu_rate": 15.6, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "i7i.large": { + "dbu_rate": 0.98, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "i7i.xlarge": { + "dbu_rate": 1.95, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "i8g.12xlarge": { + "dbu_rate": 24.78, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "i8g.16xlarge": { + "dbu_rate": 33.04, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "i8g.24xlarge": { + "dbu_rate": 49.56, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "i8g.2xlarge": { + "dbu_rate": 4.13, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "i8g.48xlarge": { + "dbu_rate": 99.12, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "General Purpose" + }, + "i8g.4xlarge": { + "dbu_rate": 8.26, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "i8g.8xlarge": { + "dbu_rate": 16.52, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "i8g.large": { + "dbu_rate": 1.03, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "i8g.xlarge": { + "dbu_rate": 2.07, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "im4gn.16xlarge": { + "dbu_rate": 19.31628318584071, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "im4gn.2xlarge": { + "dbu_rate": 2.414535398230089, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "im4gn.4xlarge": { + "dbu_rate": 4.829070796460178, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "im4gn.8xlarge": { + "dbu_rate": 9.658141592920355, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "im4gn.large": { + "dbu_rate": 0.6036338495575222, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "im4gn.xlarge": { + "dbu_rate": 1.2072676991150444, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "is4gen.2xlarge": { + "dbu_rate": 3.825, + "vcpus": 8.0, + "memory_gb": 48.0, + "family": "General Purpose" + }, + "is4gen.4xlarge": { + "dbu_rate": 7.65, + "vcpus": 16.0, + "memory_gb": 96.0, + "family": "General Purpose" + }, + "is4gen.8xlarge": { + "dbu_rate": 15.3, + "vcpus": 32.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "is4gen.large": { + "dbu_rate": 0.95625, + "vcpus": 2.0, + "memory_gb": 12.0, + "family": "General Purpose" + }, + "is4gen.xlarge": { + "dbu_rate": 1.9125, + "vcpus": 4.0, + "memory_gb": 24.0, + "family": "General Purpose" + }, + "m4.10xlarge": { + "dbu_rate": 8.0, + "vcpus": 40.0, + "memory_gb": 160.0, + "family": "General Purpose" + }, + "m4.16xlarge": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m4.2xlarge": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m4.4xlarge": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m4.large": { + "dbu_rate": 0.4, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m4.xlarge": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m5.12xlarge": { + "dbu_rate": 8.23, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m5.16xlarge": { + "dbu_rate": 10.96, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m5.24xlarge": { + "dbu_rate": 16.46, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m5.2xlarge": { + "dbu_rate": 1.37, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m5.4xlarge": { + "dbu_rate": 2.74, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m5.8xlarge": { + "dbu_rate": 5.48, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m5.large": { + "dbu_rate": 0.34, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m5.xlarge": { + "dbu_rate": 0.69, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m5a.12xlarge": { + "dbu_rate": 7.371428571, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m5a.16xlarge": { + "dbu_rate": 9.828571429, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m5a.24xlarge": { + "dbu_rate": 14.74285714, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m5a.2xlarge": { + "dbu_rate": 1.228571429, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m5a.4xlarge": { + "dbu_rate": 2.457142857, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m5a.8xlarge": { + "dbu_rate": 4.914285714, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m5a.large": { + "dbu_rate": 0.3071428571, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m5a.xlarge": { + "dbu_rate": 0.6142857143, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m5d.12xlarge": { + "dbu_rate": 8.23, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m5d.16xlarge": { + "dbu_rate": 10.96, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m5d.24xlarge": { + "dbu_rate": 16.46, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m5d.2xlarge": { + "dbu_rate": 1.37, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m5d.4xlarge": { + "dbu_rate": 2.74, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m5d.8xlarge": { + "dbu_rate": 5.48, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m5d.large": { + "dbu_rate": 0.34, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m5d.xlarge": { + "dbu_rate": 0.69, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m5dn.12xlarge": { + "dbu_rate": 9.792, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m5dn.16xlarge": { + "dbu_rate": 13.056, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m5dn.24xlarge": { + "dbu_rate": 19.584, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m5dn.2xlarge": { + "dbu_rate": 1.632, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m5dn.4xlarge": { + "dbu_rate": 3.264, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m5dn.8xlarge": { + "dbu_rate": 6.528, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m5dn.large": { + "dbu_rate": 0.408, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m5dn.metal": { + "dbu_rate": 19.584, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m5dn.xlarge": { + "dbu_rate": 0.816, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m5n.12xlarge": { + "dbu_rate": 8.568, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m5n.16xlarge": { + "dbu_rate": 11.424, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m5n.24xlarge": { + "dbu_rate": 17.136, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m5n.2xlarge": { + "dbu_rate": 1.428, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m5n.4xlarge": { + "dbu_rate": 2.856, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m5n.8xlarge": { + "dbu_rate": 5.712, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m5n.large": { + "dbu_rate": 0.357, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m5n.metal": { + "dbu_rate": 17.136, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m5n.xlarge": { + "dbu_rate": 0.714, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m5zn.12xlarge": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m5zn.2xlarge": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m5zn.3xlarge": { + "dbu_rate": 3.0, + "vcpus": 12.0, + "memory_gb": 48.0, + "family": "General Purpose" + }, + "m5zn.6xlarge": { + "dbu_rate": 6.0, + "vcpus": 24.0, + "memory_gb": 96.0, + "family": "General Purpose" + }, + "m5zn.large": { + "dbu_rate": 0.4964, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m5zn.metal": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m5zn.xlarge": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m6g.12xlarge": { + "dbu_rate": 9.21, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m6g.16xlarge": { + "dbu_rate": 12.28, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m6g.2xlarge": { + "dbu_rate": 1.54, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m6g.4xlarge": { + "dbu_rate": 3.07, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m6g.8xlarge": { + "dbu_rate": 6.13, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m6g.large": { + "dbu_rate": 0.39, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m6g.xlarge": { + "dbu_rate": 0.77, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m6gd.12xlarge": { + "dbu_rate": 9.21, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m6gd.16xlarge": { + "dbu_rate": 12.28, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m6gd.2xlarge": { + "dbu_rate": 1.54, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m6gd.4xlarge": { + "dbu_rate": 3.07, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m6gd.8xlarge": { + "dbu_rate": 6.13, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m6gd.large": { + "dbu_rate": 0.39, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m6gd.xlarge": { + "dbu_rate": 0.77, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m6i.12xlarge": { + "dbu_rate": 9.120000000000001, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m6i.16xlarge": { + "dbu_rate": 12.16, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m6i.24xlarge": { + "dbu_rate": 18.240000000000002, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m6i.2xlarge": { + "dbu_rate": 1.52, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m6i.32xlarge": { + "dbu_rate": 24.32, + "vcpus": 128.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "m6i.4xlarge": { + "dbu_rate": 3.04, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m6i.8xlarge": { + "dbu_rate": 6.08, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m6i.large": { + "dbu_rate": 0.38, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m6i.xlarge": { + "dbu_rate": 0.76, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m6id.12xlarge": { + "dbu_rate": 9.120000000000001, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m6id.16xlarge": { + "dbu_rate": 12.16, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m6id.24xlarge": { + "dbu_rate": 18.240000000000002, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m6id.2xlarge": { + "dbu_rate": 1.52, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m6id.32xlarge": { + "dbu_rate": 24.32, + "vcpus": 128.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "m6id.4xlarge": { + "dbu_rate": 3.04, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m6id.8xlarge": { + "dbu_rate": 6.08, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m6id.large": { + "dbu_rate": 0.38, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m6id.xlarge": { + "dbu_rate": 0.76, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m6idn.12xlarge": { + "dbu_rate": 9.120000000000001, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m6idn.16xlarge": { + "dbu_rate": 12.16, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m6idn.24xlarge": { + "dbu_rate": 18.240000000000002, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m6idn.2xlarge": { + "dbu_rate": 1.52, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m6idn.32xlarge": { + "dbu_rate": 24.32, + "vcpus": 128.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "m6idn.4xlarge": { + "dbu_rate": 3.04, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m6idn.8xlarge": { + "dbu_rate": 6.08, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m6idn.large": { + "dbu_rate": 0.38, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m6idn.xlarge": { + "dbu_rate": 0.76, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m6in.12xlarge": { + "dbu_rate": 9.120000000000001, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m6in.16xlarge": { + "dbu_rate": 12.16, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m6in.24xlarge": { + "dbu_rate": 18.240000000000002, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m6in.2xlarge": { + "dbu_rate": 1.52, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m6in.32xlarge": { + "dbu_rate": 24.32, + "vcpus": 128.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "m6in.4xlarge": { + "dbu_rate": 3.04, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m6in.8xlarge": { + "dbu_rate": 6.08, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m6in.large": { + "dbu_rate": 0.38, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m6in.xlarge": { + "dbu_rate": 0.76, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m7a.12xlarge": { + "dbu_rate": 10.8, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m7a.16xlarge": { + "dbu_rate": 14.4, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m7a.24xlarge": { + "dbu_rate": 21.6, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m7a.2xlarge": { + "dbu_rate": 1.8, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m7a.32xlarge": { + "dbu_rate": 28.8, + "vcpus": 128.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "m7a.48xlarge": { + "dbu_rate": 43.2, + "vcpus": 192.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "m7a.4xlarge": { + "dbu_rate": 3.6, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m7a.8xlarge": { + "dbu_rate": 7.2, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m7a.xlarge": { + "dbu_rate": 0.9, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m7g.12xlarge": { + "dbu_rate": 11.52, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m7g.16xlarge": { + "dbu_rate": 15.36, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m7g.2xlarge": { + "dbu_rate": 1.92, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m7g.4xlarge": { + "dbu_rate": 3.84, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m7g.8xlarge": { + "dbu_rate": 7.68, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m7g.large": { + "dbu_rate": 0.48, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m7g.xlarge": { + "dbu_rate": 0.96, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m7gd.12xlarge": { + "dbu_rate": 11.52, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m7gd.16xlarge": { + "dbu_rate": 15.36, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m7gd.2xlarge": { + "dbu_rate": 1.92, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m7gd.4xlarge": { + "dbu_rate": 3.84, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m7gd.8xlarge": { + "dbu_rate": 7.68, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m7gd.large": { + "dbu_rate": 0.48, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m7gd.xlarge": { + "dbu_rate": 0.96, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m7i.12xlarge": { + "dbu_rate": 10.02, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m7i.16xlarge": { + "dbu_rate": 13.36, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m7i.24xlarge": { + "dbu_rate": 20.04, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m7i.2xlarge": { + "dbu_rate": 1.67, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m7i.48xlarge": { + "dbu_rate": 40.08, + "vcpus": 192.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "m7i.4xlarge": { + "dbu_rate": 3.34, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m7i.8xlarge": { + "dbu_rate": 6.68, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m7i.large": { + "dbu_rate": 0.42, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m7i.metal-24xl": { + "dbu_rate": 20.04, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m7i.metal-48xl": { + "dbu_rate": 40.08, + "vcpus": 192.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "m7i.xlarge": { + "dbu_rate": 0.84, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m8g.12xlarge": { + "dbu_rate": 13.71, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m8g.16xlarge": { + "dbu_rate": 18.28, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m8g.24xlarge": { + "dbu_rate": 27.42, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m8g.2xlarge": { + "dbu_rate": 2.28, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m8g.48xlarge": { + "dbu_rate": 54.84, + "vcpus": 192.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "m8g.4xlarge": { + "dbu_rate": 4.57, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m8g.8xlarge": { + "dbu_rate": 9.14, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m8g.large": { + "dbu_rate": 0.57, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m8g.medium": { + "dbu_rate": 0.29, + "vcpus": 1.0, + "memory_gb": 4.0, + "family": "General Purpose" + }, + "m8g.xlarge": { + "dbu_rate": 1.14, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m8gd.12xlarge": { + "dbu_rate": 13.71, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m8gd.16xlarge": { + "dbu_rate": 18.28, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m8gd.24xlarge": { + "dbu_rate": 27.42, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m8gd.2xlarge": { + "dbu_rate": 2.28, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m8gd.48xlarge": { + "dbu_rate": 54.84, + "vcpus": 192.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "m8gd.4xlarge": { + "dbu_rate": 4.57, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m8gd.8xlarge": { + "dbu_rate": 9.14, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m8gd.large": { + "dbu_rate": 0.57, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m8gd.xlarge": { + "dbu_rate": 1.14, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "m8i.12xlarge": { + "dbu_rate": 11.22, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "m8i.16xlarge": { + "dbu_rate": 14.96, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "m8i.24xlarge": { + "dbu_rate": 22.44, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "m8i.2xlarge": { + "dbu_rate": 1.87, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "m8i.48xlarge": { + "dbu_rate": 44.88, + "vcpus": 192.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "m8i.4xlarge": { + "dbu_rate": 3.74, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "m8i.8xlarge": { + "dbu_rate": 7.48, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "m8i.large": { + "dbu_rate": 0.4675, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "m8i.xlarge": { + "dbu_rate": 0.935, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "p2.16xlarge": { + "dbu_rate": 19.52, + "vcpus": 64.0, + "memory_gb": 732.0, + "family": "GPU" + }, + "p2.8xlarge": { + "dbu_rate": 9.76, + "vcpus": 32.0, + "memory_gb": 488.0, + "family": "GPU" + }, + "p2.xlarge": { + "dbu_rate": 1.22, + "vcpus": 4.0, + "memory_gb": 61.0, + "family": "GPU" + }, + "p3.16xlarge": { + "dbu_rate": 33.2, + "vcpus": 64.0, + "memory_gb": 488.0, + "family": "GPU" + }, + "p3.2xlarge": { + "dbu_rate": 4.15, + "vcpus": 8.0, + "memory_gb": 61.0, + "family": "GPU" + }, + "p3.8xlarge": { + "dbu_rate": 16.6, + "vcpus": 32.0, + "memory_gb": 244.0, + "family": "GPU" + }, + "p3dn.24xlarge": { + "dbu_rate": 42.33, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "GPU" + }, + "p4d.24xlarge": { + "dbu_rate": 44.4548, + "vcpus": 96.0, + "memory_gb": 1152.0, + "family": "GPU" + }, + "p4de.24xlarge": { + "dbu_rate": 55.5685, + "vcpus": 96.0, + "memory_gb": 1152.0, + "family": "GPU" + }, + "p5.48xlarge": { + "dbu_rate": 88.9096, + "vcpus": 192.0, + "memory_gb": 2048.0, + "family": "GPU" + }, + "r4.16xlarge": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 488.0, + "family": "Memory Optimized" + }, + "r5.12xlarge": { + "dbu_rate": 10.8, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r5.16xlarge": { + "dbu_rate": 14.4, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r5.24xlarge": { + "dbu_rate": 21.6, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r5.2xlarge": { + "dbu_rate": 1.8, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r5.4xlarge": { + "dbu_rate": 3.6, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r5.8xlarge": { + "dbu_rate": 7.2, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r5.large": { + "dbu_rate": 0.45, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r5.xlarge": { + "dbu_rate": 0.9, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r5a.12xlarge": { + "dbu_rate": 9.685714286, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r5a.16xlarge": { + "dbu_rate": 12.91428571, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r5a.24xlarge": { + "dbu_rate": 19.37142857, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r5a.2xlarge": { + "dbu_rate": 1.614285714, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r5a.4xlarge": { + "dbu_rate": 3.228571429, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r5a.8xlarge": { + "dbu_rate": 6.457142857, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r5a.large": { + "dbu_rate": 0.41, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r5a.xlarge": { + "dbu_rate": 0.8142857143, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r5d.12xlarge": { + "dbu_rate": 10.8, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r5d.16xlarge": { + "dbu_rate": 14.4, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r5d.24xlarge": { + "dbu_rate": 21.6, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r5d.2xlarge": { + "dbu_rate": 1.8, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r5d.4xlarge": { + "dbu_rate": 3.6, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r5d.8xlarge": { + "dbu_rate": 7.2, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r5d.large": { + "dbu_rate": 0.45, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r5d.xlarge": { + "dbu_rate": 0.9, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r5dn.12xlarge": { + "dbu_rate": 12.528, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r5dn.16xlarge": { + "dbu_rate": 16.704, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r5dn.24xlarge": { + "dbu_rate": 25.056, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r5dn.2xlarge": { + "dbu_rate": 2.088, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r5dn.4xlarge": { + "dbu_rate": 4.176, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r5dn.8xlarge": { + "dbu_rate": 8.352, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r5dn.large": { + "dbu_rate": 0.522, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r5dn.metal": { + "dbu_rate": 25.056, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r5dn.xlarge": { + "dbu_rate": 1.044, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r5n.12xlarge": { + "dbu_rate": 10.8, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r5n.16xlarge": { + "dbu_rate": 14.4, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r5n.24xlarge": { + "dbu_rate": 21.6, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r5n.2xlarge": { + "dbu_rate": 1.8, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r5n.4xlarge": { + "dbu_rate": 3.6, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r5n.8xlarge": { + "dbu_rate": 7.2, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r5n.large": { + "dbu_rate": 0.45, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r5n.metal": { + "dbu_rate": 21.6, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r5n.xlarge": { + "dbu_rate": 0.9, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r6g.12xlarge": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r6g.16xlarge": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r6g.2xlarge": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r6g.4xlarge": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r6g.8xlarge": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r6g.large": { + "dbu_rate": 0.5, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r6g.xlarge": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r6gd.12xlarge": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r6gd.16xlarge": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r6gd.2xlarge": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r6gd.4xlarge": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r6gd.8xlarge": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r6gd.large": { + "dbu_rate": 0.5, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r6gd.xlarge": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r6i.12xlarge": { + "dbu_rate": 12.24, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r6i.16xlarge": { + "dbu_rate": 16.32, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r6i.24xlarge": { + "dbu_rate": 24.48, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r6i.2xlarge": { + "dbu_rate": 2.04, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r6i.32xlarge": { + "dbu_rate": 32.64, + "vcpus": 128.0, + "memory_gb": 1024.0, + "family": "Memory Optimized" + }, + "r6i.4xlarge": { + "dbu_rate": 4.08, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r6i.8xlarge": { + "dbu_rate": 8.16, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r6i.large": { + "dbu_rate": 0.51, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r6i.xlarge": { + "dbu_rate": 1.02, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r6id.12xlarge": { + "dbu_rate": 12.24, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r6id.16xlarge": { + "dbu_rate": 16.32, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r6id.24xlarge": { + "dbu_rate": 24.48, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r6id.2xlarge": { + "dbu_rate": 2.04, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r6id.32xlarge": { + "dbu_rate": 32.64, + "vcpus": 128.0, + "memory_gb": 1024.0, + "family": "Memory Optimized" + }, + "r6id.4xlarge": { + "dbu_rate": 4.08, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r6id.8xlarge": { + "dbu_rate": 8.16, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r6id.large": { + "dbu_rate": 0.51, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r6id.xlarge": { + "dbu_rate": 1.02, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r6idn.12xlarge": { + "dbu_rate": 12.24, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r6idn.16xlarge": { + "dbu_rate": 16.32, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r6idn.24xlarge": { + "dbu_rate": 24.48, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r6idn.2xlarge": { + "dbu_rate": 2.04, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r6idn.32xlarge": { + "dbu_rate": 32.64, + "vcpus": 128.0, + "memory_gb": 1024.0, + "family": "Memory Optimized" + }, + "r6idn.4xlarge": { + "dbu_rate": 4.08, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r6idn.8xlarge": { + "dbu_rate": 8.16, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r6idn.large": { + "dbu_rate": 0.51, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r6idn.xlarge": { + "dbu_rate": 1.02, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r6in.12xlarge": { + "dbu_rate": 12.24, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r6in.16xlarge": { + "dbu_rate": 16.32, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r6in.24xlarge": { + "dbu_rate": 24.48, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r6in.2xlarge": { + "dbu_rate": 2.04, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r6in.32xlarge": { + "dbu_rate": 32.64, + "vcpus": 128.0, + "memory_gb": 1024.0, + "family": "Memory Optimized" + }, + "r6in.4xlarge": { + "dbu_rate": 4.08, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r6in.8xlarge": { + "dbu_rate": 8.16, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r6in.large": { + "dbu_rate": 0.51, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r6in.xlarge": { + "dbu_rate": 1.02, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r7a.48xlarge": { + "dbu_rate": 58.08, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "Memory Optimized" + }, + "r7g.12xlarge": { + "dbu_rate": 15.120000000000001, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r7g.16xlarge": { + "dbu_rate": 20.16, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r7g.2xlarge": { + "dbu_rate": 2.52, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r7g.4xlarge": { + "dbu_rate": 5.04, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r7g.8xlarge": { + "dbu_rate": 10.08, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r7g.large": { + "dbu_rate": 0.63, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r7g.xlarge": { + "dbu_rate": 1.26, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r7gd.12xlarge": { + "dbu_rate": 15.12, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r7gd.16xlarge": { + "dbu_rate": 20.16, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r7gd.2xlarge": { + "dbu_rate": 2.52, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r7gd.4xlarge": { + "dbu_rate": 5.04, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r7gd.8xlarge": { + "dbu_rate": 10.08, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r7gd.large": { + "dbu_rate": 0.63, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r7gd.xlarge": { + "dbu_rate": 1.26, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r7i.12xlarge": { + "dbu_rate": 13.44, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r7i.16xlarge": { + "dbu_rate": 17.92, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r7i.24xlarge": { + "dbu_rate": 26.88, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r7i.2xlarge": { + "dbu_rate": 2.24, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r7i.48xlarge": { + "dbu_rate": 53.76, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "Memory Optimized" + }, + "r7i.4xlarge": { + "dbu_rate": 4.48, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r7i.8xlarge": { + "dbu_rate": 8.96, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r7i.large": { + "dbu_rate": 0.56, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "r7i.metal-24xl": { + "dbu_rate": 26.88, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "r7i.metal-48xl": { + "dbu_rate": 53.76, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "Memory Optimized" + }, + "r7i.xlarge": { + "dbu_rate": 1.12, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r7iz.12xlarge": { + "dbu_rate": 14.52, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "r7iz.16xlarge": { + "dbu_rate": 19.36, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "r7iz.2xlarge": { + "dbu_rate": 2.42, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "r7iz.32xlarge": { + "dbu_rate": 38.72, + "vcpus": 128.0, + "memory_gb": 1024.0, + "family": "Memory Optimized" + }, + "r7iz.4xlarge": { + "dbu_rate": 4.84, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "r7iz.8xlarge": { + "dbu_rate": 9.68, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "r7iz.xlarge": { + "dbu_rate": 1.21, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "r8g.12xlarge": { + "dbu_rate": 18.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "r8g.16xlarge": { + "dbu_rate": 24.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "r8g.24xlarge": { + "dbu_rate": 36.0, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "r8g.2xlarge": { + "dbu_rate": 3.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "r8g.48xlarge": { + "dbu_rate": 72.0, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "General Purpose" + }, + "r8g.4xlarge": { + "dbu_rate": 6.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "r8g.8xlarge": { + "dbu_rate": 12.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "r8g.large": { + "dbu_rate": 0.75, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "r8g.xlarge": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "r8gd.12xlarge": { + "dbu_rate": 18.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "r8gd.16xlarge": { + "dbu_rate": 24.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "r8gd.24xlarge": { + "dbu_rate": 36.0, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "r8gd.2xlarge": { + "dbu_rate": 3.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "r8gd.48xlarge": { + "dbu_rate": 72.0, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "General Purpose" + }, + "r8gd.4xlarge": { + "dbu_rate": 6.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "r8gd.8xlarge": { + "dbu_rate": 12.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "r8gd.large": { + "dbu_rate": 0.75, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "r8gd.xlarge": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "r8i.12xlarge": { + "dbu_rate": 15.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "r8i.16xlarge": { + "dbu_rate": 20.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "r8i.24xlarge": { + "dbu_rate": 30.0, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "r8i.2xlarge": { + "dbu_rate": 2.5, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "r8i.48xlarge": { + "dbu_rate": 60.0, + "vcpus": 192.0, + "memory_gb": 1536.0, + "family": "General Purpose" + }, + "r8i.4xlarge": { + "dbu_rate": 5.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "r8i.8xlarge": { + "dbu_rate": 10.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "r8i.large": { + "dbu_rate": 0.63, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "r8i.xlarge": { + "dbu_rate": 1.25, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "x2gd.12xlarge": { + "dbu_rate": 17.52, + "vcpus": 48.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "x2gd.16xlarge": { + "dbu_rate": 23.36, + "vcpus": 64.0, + "memory_gb": 1024.0, + "family": "Memory Optimized" + }, + "x2gd.2xlarge": { + "dbu_rate": 2.92, + "vcpus": 8.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "x2gd.4xlarge": { + "dbu_rate": 5.84, + "vcpus": 16.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "x2gd.8xlarge": { + "dbu_rate": 11.68, + "vcpus": 32.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "x2gd.large": { + "dbu_rate": 0.73, + "vcpus": 2.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "x2gd.xlarge": { + "dbu_rate": 1.46, + "vcpus": 4.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "z1d.12xlarge": { + "dbu_rate": 15.94, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "z1d.2xlarge": { + "dbu_rate": 2.66, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "z1d.3xlarge": { + "dbu_rate": 3.99, + "vcpus": 12.0, + "memory_gb": 96.0, + "family": "Memory Optimized" + }, + "z1d.6xlarge": { + "dbu_rate": 7.97, + "vcpus": 24.0, + "memory_gb": 192.0, + "family": "Memory Optimized" + }, + "z1d.large": { + "dbu_rate": 0.66, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "z1d.xlarge": { + "dbu_rate": 1.33, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + } + }, + "azure": { + "Standard_2X-Large": { + "dbu_rate": 144.0, + "vcpus": 576.0, + "memory_gb": 4608.0, + "family": "General Purpose" + }, + "Standard_2X-Small": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_3X-Large": { + "dbu_rate": 272.0, + "vcpus": 1088.0, + "memory_gb": 8704.0, + "family": "General Purpose" + }, + "Standard_4X-Large": { + "dbu_rate": 528.0, + "vcpus": 2112.0, + "memory_gb": 16896.0, + "family": "General Purpose" + }, + "Standard_D128ds_v6": { + "dbu_rate": 35.84, + "vcpus": 128.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "Standard_D12_v2": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 28.0, + "family": "General Purpose" + }, + "Standard_D13_v2": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 56.0, + "family": "General Purpose" + }, + "Standard_D14_v2": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 112.0, + "family": "General Purpose" + }, + "Standard_D15_v2": { + "dbu_rate": 5.0, + "vcpus": 20.0, + "memory_gb": 140.0, + "family": "General Purpose" + }, + "Standard_D16_v3": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16a_v4": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16ads_v5": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16ads_v6": { + "dbu_rate": 5.1, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16as_v4": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16as_v5": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16d_v4": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16ds_v4": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16ds_v5": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16ds_v6": { + "dbu_rate": 4.48, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16pds_v6": { + "dbu_rate": 4.68, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16ps_v6": { + "dbu_rate": 4.68, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16s_v3": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16s_v4": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D16s_v5": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_D2ads_v6": { + "dbu_rate": 0.64, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "Standard_D2ds_v6": { + "dbu_rate": 0.56, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "Standard_D32_v3": { + "dbu_rate": 6.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32a_v4": { + "dbu_rate": 6.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32ads_v5": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32ads_v6": { + "dbu_rate": 10.2, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32as_v4": { + "dbu_rate": 6.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32as_v5": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32d_v4": { + "dbu_rate": 6.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32ds_v4": { + "dbu_rate": 6.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32ds_v5": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32ds_v6": { + "dbu_rate": 8.96, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32pds_v6": { + "dbu_rate": 9.36, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32ps_v6": { + "dbu_rate": 9.36, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32s_v3": { + "dbu_rate": 6.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32s_v4": { + "dbu_rate": 6.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D32s_v5": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_D3_v2": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 14.0, + "family": "General Purpose" + }, + "Standard_D48a_v4": { + "dbu_rate": 9.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48ads_v5": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48ads_v6": { + "dbu_rate": 15.3, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48as_v4": { + "dbu_rate": 9.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48as_v5": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48d_v4": { + "dbu_rate": 9.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48ds_v4": { + "dbu_rate": 9.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48ds_v5": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48ds_v6": { + "dbu_rate": 13.44, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48pds_v6": { + "dbu_rate": 14.04, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48ps_v6": { + "dbu_rate": 14.04, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48s_v4": { + "dbu_rate": 9.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D48s_v5": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_D4_v2": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 28.0, + "family": "General Purpose" + }, + "Standard_D4a_v4": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4ads_v5": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4ads_v6": { + "dbu_rate": 1.28, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4as_v5": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4d_v4": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4ds_v4": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4ds_v5": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4ds_v6": { + "dbu_rate": 1.12, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4pds_v6": { + "dbu_rate": 1.17, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4ps_v6": { + "dbu_rate": 1.17, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4s_v3": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4s_v4": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D4s_v5": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_D5_v2": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 56.0, + "family": "General Purpose" + }, + "Standard_D64_v3": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64a_v4": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64ads_v5": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64ads_v6": { + "dbu_rate": 20.4, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64as_v4": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64as_v5": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64d_v4": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64ds_v4": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64ds_v5": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64ds_v6": { + "dbu_rate": 17.92, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64pds_v6": { + "dbu_rate": 18.72, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64ps_v6": { + "dbu_rate": 18.72, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64s_v3": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64s_v4": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D64s_v5": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_D8_v3": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8a_v4": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8ads_v5": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8ads_v6": { + "dbu_rate": 2.55, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8as_v4": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8as_v5": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8d_v4": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8ds_v4": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8ds_v5": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8ds_v6": { + "dbu_rate": 2.24, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8pds_v6": { + "dbu_rate": 2.34, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8ps_v6": { + "dbu_rate": 2.34, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8s_v3": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8s_v4": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D8s_v5": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_D96a_v4": { + "dbu_rate": 18.0, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96ads_v5": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96ads_v6": { + "dbu_rate": 30.6, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96as_v4": { + "dbu_rate": 18.0, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96as_v5": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96ds_v5": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96ds_v6": { + "dbu_rate": 26.88, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96pds_v6": { + "dbu_rate": 28.08, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96ps_v6": { + "dbu_rate": 28.08, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_D96s_v5": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_DC16ads_v5": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_DC16ads_v6": { + "dbu_rate": 5.1, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_DC16as_v5": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "Standard_DC2ads_v6": { + "dbu_rate": 0.64, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "Standard_DC32ads_v5": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_DC32ads_v6": { + "dbu_rate": 10.2, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_DC32as_v5": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "Standard_DC48ads_v5": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_DC48ads_v6": { + "dbu_rate": 15.3, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_DC48as_v5": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "Standard_DC4ads_v5": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_DC4ads_v6": { + "dbu_rate": 1.28, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_DC4as_v5": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "Standard_DC64ads_v5": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_DC64ads_v6": { + "dbu_rate": 20.4, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_DC64as_v5": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "Standard_DC8ads_v5": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_DC8ads_v6": { + "dbu_rate": 2.55, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_DC8as_v5": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "Standard_DC96ads_v5": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_DC96ads_v6": { + "dbu_rate": 30.6, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_DC96as_v5": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_DS12_v2": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 28.0, + "family": "General Purpose" + }, + "Standard_DS13_v2": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 56.0, + "family": "General Purpose" + }, + "Standard_DS14_v2": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 112.0, + "family": "General Purpose" + }, + "Standard_DS15_v2": { + "dbu_rate": 5.0, + "vcpus": 20.0, + "memory_gb": 140.0, + "family": "General Purpose" + }, + "Standard_DS1_v2": { + "dbu_rate": 0.2, + "vcpus": 1.0, + "memory_gb": 3.5, + "family": "General Purpose" + }, + "Standard_DS2_v2": { + "dbu_rate": 0.4, + "vcpus": 2.0, + "memory_gb": 7.0, + "family": "General Purpose" + }, + "Standard_DS3_v2": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 14.0, + "family": "General Purpose" + }, + "Standard_DS4_v2": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 28.0, + "family": "General Purpose" + }, + "Standard_DS5_v2": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 56.0, + "family": "General Purpose" + }, + "Standard_E128ds_v6": { + "dbu_rate": 49.28, + "vcpus": 128.0, + "memory_gb": 1024.0, + "family": "Memory Optimized" + }, + "Standard_E16_v3": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16a_v4": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16ads_v5": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16ads_v6": { + "dbu_rate": 7.02, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16as_v4": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16as_v5": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16d_v4": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16ds_v4": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16ds_v5": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16ds_v6": { + "dbu_rate": 6.16, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16pds_v6": { + "dbu_rate": 6.44, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16ps_v6": { + "dbu_rate": 6.44, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16s_v3": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16s_v4": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E16s_v5": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_E20a_v4": { + "dbu_rate": 5.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20ads_v5": { + "dbu_rate": 7.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20ads_v6": { + "dbu_rate": 8.78, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20as_v4": { + "dbu_rate": 5.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20as_v5": { + "dbu_rate": 7.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20d_v4": { + "dbu_rate": 5.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20ds_v4": { + "dbu_rate": 5.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20ds_v5": { + "dbu_rate": 7.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20ds_v6": { + "dbu_rate": 7.7, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20s_v4": { + "dbu_rate": 5.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E20s_v5": { + "dbu_rate": 7.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_E2_v3": { + "dbu_rate": 0.5, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "Standard_E2ads_v6": { + "dbu_rate": 0.88, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "Standard_E2ds_v5": { + "dbu_rate": 0.75, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "Standard_E2ds_v6": { + "dbu_rate": 0.77, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "Standard_E2pds_v6": { + "dbu_rate": 0.81, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "Standard_E32_v3": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32a_v4": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32ads_v5": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32ads_v6": { + "dbu_rate": 14.04, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32as_v4": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32as_v5": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32d_v4": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32ds_v4": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32ds_v5": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32ds_v6": { + "dbu_rate": 12.32, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32pds_v6": { + "dbu_rate": 12.88, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32ps_v6": { + "dbu_rate": 12.88, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32s_v3": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32s_v4": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E32s_v5": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_E48a_v4": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48ads_v5": { + "dbu_rate": 16.5, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48ads_v6": { + "dbu_rate": 21.06, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48as_v4": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48as_v5": { + "dbu_rate": 16.5, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48d_v4": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48ds_v4": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48ds_v5": { + "dbu_rate": 16.5, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48ds_v6": { + "dbu_rate": 18.48, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48pds_v6": { + "dbu_rate": 19.32, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48ps_v6": { + "dbu_rate": 19.32, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48s_v4": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E48s_v5": { + "dbu_rate": 16.5, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_E4_v3": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4a_v4": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4ads_v5": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4ads_v6": { + "dbu_rate": 1.76, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4as_v4": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4as_v5": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4d_v4": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4ds_v4": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4ds_v5": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4ds_v6": { + "dbu_rate": 1.54, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4pds_v6": { + "dbu_rate": 1.61, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4ps_v6": { + "dbu_rate": 1.61, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4s_v4": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E4s_v5": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_E64_v3": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 432.0, + "family": "Memory Optimized" + }, + "Standard_E64a_v4": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E64ads_v5": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E64ads_v6": { + "dbu_rate": 28.08, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E64as_v4": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 432.0, + "family": "Memory Optimized" + }, + "Standard_E64as_v5": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E64d_v4": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 504.0, + "family": "Memory Optimized" + }, + "Standard_E64ds_v4": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 504.0, + "family": "Memory Optimized" + }, + "Standard_E64ds_v5": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E64ds_v6": { + "dbu_rate": 24.64, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E64pds_v6": { + "dbu_rate": 25.76, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E64ps_v6": { + "dbu_rate": 25.76, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E64s_v3": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 432.0, + "family": "Memory Optimized" + }, + "Standard_E64s_v4": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 504.0, + "family": "Memory Optimized" + }, + "Standard_E64s_v5": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_E80ids_v4": { + "dbu_rate": 20.0, + "vcpus": 80.0, + "memory_gb": 504.0, + "family": "Memory Optimized" + }, + "Standard_E80is_v4": { + "dbu_rate": 20.0, + "vcpus": 80.0, + "memory_gb": 504.0, + "family": "Memory Optimized" + }, + "Standard_E8_v3": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8a_v4": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8ads_v5": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8ads_v6": { + "dbu_rate": 3.51, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8as_v4": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8as_v5": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8d_v4": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8ds_v4": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8ds_v5": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8ds_v6": { + "dbu_rate": 3.08, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8pds_v6": { + "dbu_rate": 3.22, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8ps_v6": { + "dbu_rate": 3.22, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8s_v3": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8s_v4": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E8s_v5": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_E96a_v4": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_E96ads_v5": { + "dbu_rate": 33.0, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_E96ads_v6": { + "dbu_rate": 42.12, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_E96as_v4": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_E96as_v5": { + "dbu_rate": 33.0, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_E96ds_v5": { + "dbu_rate": 33.0, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_E96ds_v6": { + "dbu_rate": 36.96, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "Standard_E96pds_v6": { + "dbu_rate": 38.64, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_E96ps_v6": { + "dbu_rate": 38.64, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_E96s_v5": { + "dbu_rate": 33.0, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_EC16ads_v5": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_EC16ads_v6": { + "dbu_rate": 7.02, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_EC16as_v5": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_EC16as_v6": { + "dbu_rate": 7.02, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Memory Optimized" + }, + "Standard_EC20ads_v5": { + "dbu_rate": 7.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_EC20ads_v6": { + "dbu_rate": 8.78, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_EC20as_v5": { + "dbu_rate": 7.0, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_EC20as_v6": { + "dbu_rate": 8.78, + "vcpus": 20.0, + "memory_gb": 160.0, + "family": "Memory Optimized" + }, + "Standard_EC2ads_v6": { + "dbu_rate": 0.88, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "Standard_EC2as_v6": { + "dbu_rate": 0.88, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "Memory Optimized" + }, + "Standard_EC32ads_v5": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_EC32ads_v6": { + "dbu_rate": 14.04, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_EC32as_v5": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_EC32as_v6": { + "dbu_rate": 14.04, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Memory Optimized" + }, + "Standard_EC48ads_v5": { + "dbu_rate": 16.5, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_EC48ads_v6": { + "dbu_rate": 21.06, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_EC48as_v5": { + "dbu_rate": 16.5, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_EC48as_v6": { + "dbu_rate": 21.06, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Memory Optimized" + }, + "Standard_EC4ads_v5": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_EC4ads_v6": { + "dbu_rate": 1.76, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_EC4as_v5": { + "dbu_rate": 1.5, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_EC4as_v6": { + "dbu_rate": 1.76, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Memory Optimized" + }, + "Standard_EC64ads_v5": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_EC64ads_v6": { + "dbu_rate": 28.08, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_EC64as_v5": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_EC64as_v6": { + "dbu_rate": 28.08, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Memory Optimized" + }, + "Standard_EC8ads_v5": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_EC8ads_v6": { + "dbu_rate": 3.51, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_EC8as_v5": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_EC8as_v6": { + "dbu_rate": 3.51, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Memory Optimized" + }, + "Standard_EC96ads_v5": { + "dbu_rate": 33.0, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_EC96ads_v6": { + "dbu_rate": 42.12, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_EC96as_v5": { + "dbu_rate": 33.0, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_EC96as_v6": { + "dbu_rate": 42.12, + "vcpus": 96.0, + "memory_gb": 672.0, + "family": "Memory Optimized" + }, + "Standard_F16": { + "dbu_rate": 2.0, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "Standard_F16s": { + "dbu_rate": 2.0, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "Standard_F16s_v2": { + "dbu_rate": 3.0, + "vcpus": 16.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "Standard_F32s_v2": { + "dbu_rate": 6.0, + "vcpus": 32.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "Standard_F4": { + "dbu_rate": 0.5, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "Standard_F4s": { + "dbu_rate": 0.5, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "Standard_F4s_v2": { + "dbu_rate": 0.75, + "vcpus": 4.0, + "memory_gb": 8.0, + "family": "Compute Optimized" + }, + "Standard_F64s_v2": { + "dbu_rate": 12.0, + "vcpus": 64.0, + "memory_gb": 128.0, + "family": "Compute Optimized" + }, + "Standard_F72s_v2": { + "dbu_rate": 13.5, + "vcpus": 72.0, + "memory_gb": 144.0, + "family": "Compute Optimized" + }, + "Standard_F8": { + "dbu_rate": 1.0, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "Standard_F8s": { + "dbu_rate": 1.0, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "Standard_F8s_v2": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "Standard_H16": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 112.0, + "family": "General Purpose" + }, + "Standard_H8": { + "dbu_rate": 2.5, + "vcpus": 8.0, + "memory_gb": 56.0, + "family": "General Purpose" + }, + "Standard_L16as_v3": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Storage Optimized" + }, + "Standard_L16s": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Storage Optimized" + }, + "Standard_L16s_v2": { + "dbu_rate": 4.0, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Storage Optimized" + }, + "Standard_L16s_v3": { + "dbu_rate": 5.5, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "Storage Optimized" + }, + "Standard_L32as_v3": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Storage Optimized" + }, + "Standard_L32s": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Storage Optimized" + }, + "Standard_L32s_v2": { + "dbu_rate": 8.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Storage Optimized" + }, + "Standard_L32s_v3": { + "dbu_rate": 11.0, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "Storage Optimized" + }, + "Standard_L48as_v3": { + "dbu_rate": 16.5, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Storage Optimized" + }, + "Standard_L48s_v3": { + "dbu_rate": 16.5, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "Storage Optimized" + }, + "Standard_L4s": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Storage Optimized" + }, + "Standard_L64as_v3": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Storage Optimized" + }, + "Standard_L64s_v2": { + "dbu_rate": 16.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Storage Optimized" + }, + "Standard_L64s_v3": { + "dbu_rate": 22.0, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "Storage Optimized" + }, + "Standard_L80as_v3": { + "dbu_rate": 27.5, + "vcpus": 80.0, + "memory_gb": 640.0, + "family": "Storage Optimized" + }, + "Standard_L80s_v2": { + "dbu_rate": 20.0, + "vcpus": 80.0, + "memory_gb": 640.0, + "family": "Storage Optimized" + }, + "Standard_L80s_v3": { + "dbu_rate": 27.5, + "vcpus": 80.0, + "memory_gb": 640.0, + "family": "Storage Optimized" + }, + "Standard_L8as_v3": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "Standard_L8s": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "Standard_L8s_v2": { + "dbu_rate": 2.0, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "Standard_L8s_v3": { + "dbu_rate": 2.75, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Storage Optimized" + }, + "Standard_Large": { + "dbu_rate": 40.0, + "vcpus": 160.0, + "memory_gb": 1280.0, + "family": "Storage Optimized" + }, + "Standard_Medium": { + "dbu_rate": 24.0, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "Memory Optimized" + }, + "Standard_NC12": { + "dbu_rate": 3.0, + "vcpus": 12.0, + "memory_gb": 112.0, + "family": "GPU" + }, + "Standard_NC12s_v3": { + "dbu_rate": 10.0, + "vcpus": 12.0, + "memory_gb": 224.0, + "family": "GPU" + }, + "Standard_NC16as_T4_v3": { + "dbu_rate": 2.5, + "vcpus": 16.0, + "memory_gb": 110.0, + "family": "GPU" + }, + "Standard_NC24": { + "dbu_rate": 6.0, + "vcpus": 24.0, + "memory_gb": 224.0, + "family": "GPU" + }, + "Standard_NC24ads_A100_v4": { + "dbu_rate": 10.0, + "vcpus": 24.0, + "memory_gb": 220.0, + "family": "GPU" + }, + "Standard_NC24s_v3": { + "dbu_rate": 20.0, + "vcpus": 24.0, + "memory_gb": 448.0, + "family": "GPU" + }, + "Standard_NC40ads_H100_V5": { + "dbu_rate": 13.0585975, + "vcpus": 40.0, + "memory_gb": 320.0, + "family": "GPU" + }, + "Standard_NC48ads_A100_v4": { + "dbu_rate": 20.0, + "vcpus": 48.0, + "memory_gb": 440.0, + "family": "GPU" + }, + "Standard_NC4as_T4_v3": { + "dbu_rate": 1.0, + "vcpus": 4.0, + "memory_gb": 28.0, + "family": "GPU" + }, + "Standard_NC64as_T4_v3": { + "dbu_rate": 10.0, + "vcpus": 64.0, + "memory_gb": 440.0, + "family": "GPU" + }, + "Standard_NC6s_v3": { + "dbu_rate": 5.0, + "vcpus": 6.0, + "memory_gb": 112.0, + "family": "GPU" + }, + "Standard_NC80ads_H100_V5": { + "dbu_rate": 26.117195, + "vcpus": 80.0, + "memory_gb": 640.0, + "family": "GPU" + }, + "Standard_NC8as_T4_v3": { + "dbu_rate": 1.5, + "vcpus": 8.0, + "memory_gb": 56.0, + "family": "GPU" + }, + "Standard_NC96ads_A100_v4": { + "dbu_rate": 44.0, + "vcpus": 96.0, + "memory_gb": 880.0, + "family": "GPU" + }, + "Standard_NCCads_H100_v5": { + "dbu_rate": 13.0585975, + "vcpus": 40.0, + "memory_gb": 320.0, + "family": "GPU" + }, + "Standard_ND96asr_v4": { + "dbu_rate": 44.0, + "vcpus": 96.0, + "memory_gb": 900.0, + "family": "GPU" + }, + "Standard_ND96isr_H100_V5": { + "dbu_rate": 88.9096, + "vcpus": 96.0, + "memory_gb": 1900.0, + "family": "GPU" + }, + "Standard_NV36adms_A10_v5": { + "dbu_rate": 6.0, + "vcpus": 36.0, + "memory_gb": 880.0, + "family": "GPU" + }, + "Standard_NV36ads_A10_v5": { + "dbu_rate": 4.0, + "vcpus": 36.0, + "memory_gb": 440.0, + "family": "GPU" + }, + "Standard_NV72ads_A10_v5": { + "dbu_rate": 8.0, + "vcpus": 72.0, + "memory_gb": 880.0, + "family": "GPU" + }, + "Standard_Small": { + "dbu_rate": 12.0, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "Standard_X-Large": { + "dbu_rate": 80.0, + "vcpus": 320.0, + "memory_gb": 2560.0, + "family": "General Purpose" + }, + "Standard_X-Small": { + "dbu_rate": 6.0, + "vcpus": 24.0, + "memory_gb": 192.0, + "family": "General Purpose" + } + }, + "gcp": { + "a2-highgpu-1g": { + "dbu_rate": 5.43, + "vcpus": 12.0, + "memory_gb": 85.0, + "family": "GPU" + }, + "a2-highgpu-2g": { + "dbu_rate": 10.86, + "vcpus": 24.0, + "memory_gb": 170.0, + "family": "GPU" + }, + "a2-highgpu-4g": { + "dbu_rate": 21.72, + "vcpus": 48.0, + "memory_gb": 340.0, + "family": "GPU" + }, + "a2-highgpu-8g": { + "dbu_rate": 43.44, + "vcpus": 96.0, + "memory_gb": 680.0, + "family": "GPU" + }, + "a2-megagpu-16g": { + "dbu_rate": 63.839999999999996, + "vcpus": 96.0, + "memory_gb": 1360.0, + "family": "GPU" + }, + "a2-ultragpu-1g": { + "dbu_rate": 7.9799999999999995, + "vcpus": 12.0, + "memory_gb": 170.0, + "family": "GPU" + }, + "a2-ultragpu-2g": { + "dbu_rate": 15.959999999999999, + "vcpus": 24.0, + "memory_gb": 340.0, + "family": "GPU" + }, + "a2-ultragpu-4g": { + "dbu_rate": 31.919999999999998, + "vcpus": 48.0, + "memory_gb": 680.0, + "family": "GPU" + }, + "a2-ultragpu-8g": { + "dbu_rate": 63.839999999999996, + "vcpus": 96.0, + "memory_gb": 1360.0, + "family": "GPU" + }, + "a3-highgpu-1g": { + "dbu_rate": 14.127, + "vcpus": 26.0, + "memory_gb": 234.0, + "family": "General Purpose" + }, + "a3-highgpu-2g": { + "dbu_rate": 28.254, + "vcpus": 26.0, + "memory_gb": 234.0, + "family": "General Purpose" + }, + "a3-highgpu-4g": { + "dbu_rate": 56.509, + "vcpus": 26.0, + "memory_gb": 234.0, + "family": "General Purpose" + }, + "a3-highgpu-8g": { + "dbu_rate": 113.018, + "vcpus": 26.0, + "memory_gb": 234.0, + "family": "General Purpose" + }, + "c2-standard-16": { + "dbu_rate": 2.88, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c2-standard-30": { + "dbu_rate": 5.3999999999999995, + "vcpus": 30.0, + "memory_gb": 120.0, + "family": "Compute Optimized" + }, + "c2-standard-4": { + "dbu_rate": 0.72, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c2-standard-60": { + "dbu_rate": 10.799999999999999, + "vcpus": 60.0, + "memory_gb": 240.0, + "family": "Compute Optimized" + }, + "c2-standard-8": { + "dbu_rate": 1.44, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c3-highmem-22": { + "dbu_rate": 6.6, + "vcpus": 22.0, + "memory_gb": 176.0, + "family": "Compute Optimized" + }, + "c3-highmem-4": { + "dbu_rate": 1.2, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c3-highmem-44": { + "dbu_rate": 13.2, + "vcpus": 44.0, + "memory_gb": 352.0, + "family": "Compute Optimized" + }, + "c3-highmem-8": { + "dbu_rate": 2.4, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "Compute Optimized" + }, + "c3-highmem-88": { + "dbu_rate": 26.4, + "vcpus": 88.0, + "memory_gb": 704.0, + "family": "Compute Optimized" + }, + "c3-standard-22 (-lssd)": { + "dbu_rate": 4.68, + "vcpus": 22.0, + "memory_gb": 88.0, + "family": "Compute Optimized" + }, + "c3-standard-4 (-lssd)": { + "dbu_rate": 0.85, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "Compute Optimized" + }, + "c3-standard-44 (-lssd)": { + "dbu_rate": 9.35, + "vcpus": 44.0, + "memory_gb": 176.0, + "family": "Compute Optimized" + }, + "c3-standard-8 (-lssd)": { + "dbu_rate": 1.7, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "Compute Optimized" + }, + "c3-standard-88 (-lssd)": { + "dbu_rate": 18.7, + "vcpus": 88.0, + "memory_gb": 352.0, + "family": "Compute Optimized" + }, + "c3d-highmem-16 (-lssd)": { + "dbu_rate": 4.8, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "c3d-highmem-180 (-lssd)": { + "dbu_rate": 54.0, + "vcpus": 180.0, + "memory_gb": 1440.0, + "family": "General Purpose" + }, + "c3d-highmem-30 (-lssd)": { + "dbu_rate": 9.0, + "vcpus": 30.0, + "memory_gb": 240.0, + "family": "General Purpose" + }, + "c3d-highmem-360 (-lssd)": { + "dbu_rate": 108.0, + "vcpus": 360.0, + "memory_gb": 2880.0, + "family": "General Purpose" + }, + "c3d-highmem-4 (-lssd)": { + "dbu_rate": 1.2, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "c3d-highmem-60 (-lssd)": { + "dbu_rate": 18.0, + "vcpus": 60.0, + "memory_gb": 480.0, + "family": "General Purpose" + }, + "c3d-highmem-8 (-lssd)": { + "dbu_rate": 2.4, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "c3d-highmem-90 (-lssd)": { + "dbu_rate": 27.0, + "vcpus": 90.0, + "memory_gb": 720.0, + "family": "General Purpose" + }, + "c3d-standard-16 (-lssd)": { + "dbu_rate": 3.4, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "c3d-standard-180 (-lssd)": { + "dbu_rate": 38.25, + "vcpus": 180.0, + "memory_gb": 720.0, + "family": "General Purpose" + }, + "c3d-standard-30 (-lssd)": { + "dbu_rate": 6.38, + "vcpus": 30.0, + "memory_gb": 120.0, + "family": "General Purpose" + }, + "c3d-standard-360 (-lssd)": { + "dbu_rate": 76.5, + "vcpus": 360.0, + "memory_gb": 1440.0, + "family": "General Purpose" + }, + "c3d-standard-4 (-lssd)": { + "dbu_rate": 0.85, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "c3d-standard-60 (-lssd)": { + "dbu_rate": 12.75, + "vcpus": 60.0, + "memory_gb": 240.0, + "family": "General Purpose" + }, + "c3d-standard-8 (-lssd)": { + "dbu_rate": 1.7, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "c3d-standard-90 (-lssd)": { + "dbu_rate": 19.13, + "vcpus": 90.0, + "memory_gb": 360.0, + "family": "General Purpose" + }, + "c4-standard-16": { + "dbu_rate": 4.24, + "vcpus": 16.0, + "memory_gb": 60.0, + "family": "General Purpose" + }, + "c4-standard-2": { + "dbu_rate": 0.53, + "vcpus": 2.0, + "memory_gb": 7.0, + "family": "General Purpose" + }, + "c4-standard-24": { + "dbu_rate": 6.36, + "vcpus": 24.0, + "memory_gb": 90.0, + "family": "General Purpose" + }, + "c4-standard-32": { + "dbu_rate": 8.48, + "vcpus": 32.0, + "memory_gb": 120.0, + "family": "General Purpose" + }, + "c4-standard-4": { + "dbu_rate": 1.06, + "vcpus": 4.0, + "memory_gb": 15.0, + "family": "General Purpose" + }, + "c4-standard-8": { + "dbu_rate": 2.12, + "vcpus": 8.0, + "memory_gb": 30.0, + "family": "General Purpose" + }, + "c4a-highmem-16 (-lssd)": { + "dbu_rate": 7.92, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "c4a-highmem-32 (-lssd)": { + "dbu_rate": 15.84, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "c4a-highmem-4 (-lssd)": { + "dbu_rate": 1.98, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "c4a-highmem-48 (-lssd)": { + "dbu_rate": 23.76, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "c4a-highmem-64 (-lssd)": { + "dbu_rate": 31.68, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "c4a-highmem-72 (-lssd)": { + "dbu_rate": 35.64, + "vcpus": 72.0, + "memory_gb": 576.0, + "family": "General Purpose" + }, + "c4a-highmem-8 (-lssd)": { + "dbu_rate": 3.96, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "c4a-standard-16 (-lssd)": { + "dbu_rate": 5.6, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "c4a-standard-32 (-lssd)": { + "dbu_rate": 11.2, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "c4a-standard-4 (-lssd)": { + "dbu_rate": 1.4, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "c4a-standard-48 (-lssd)": { + "dbu_rate": 16.8, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "c4a-standard-64 (-lssd)": { + "dbu_rate": 22.4, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "c4a-standard-72 (-lssd)": { + "dbu_rate": 25.2, + "vcpus": 72.0, + "memory_gb": 288.0, + "family": "General Purpose" + }, + "c4a-standard-8 (-lssd)": { + "dbu_rate": 2.8, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "c4d-standard-16": { + "dbu_rate": 5.94, + "vcpus": 16.0, + "memory_gb": 62.0, + "family": "General Purpose" + }, + "c4d-standard-2": { + "dbu_rate": 0.7425, + "vcpus": 2.0, + "memory_gb": 7.0, + "family": "General Purpose" + }, + "c4d-standard-32": { + "dbu_rate": 11.88, + "vcpus": 32.0, + "memory_gb": 124.0, + "family": "General Purpose" + }, + "c4d-standard-4": { + "dbu_rate": 1.485, + "vcpus": 4.0, + "memory_gb": 15.0, + "family": "General Purpose" + }, + "c4d-standard-8": { + "dbu_rate": 2.97, + "vcpus": 8.0, + "memory_gb": 31.0, + "family": "General Purpose" + }, + "e2_highcpu_16": { + "dbu_rate": 2.16, + "vcpus": 16.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "e2_highcpu_32": { + "dbu_rate": 4.32, + "vcpus": 32.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "e2_highmem_16": { + "dbu_rate": 3.84, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "e2_highmem_2": { + "dbu_rate": 0.48, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "e2_highmem_4": { + "dbu_rate": 0.96, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "e2_highmem_8": { + "dbu_rate": 1.92, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "e2_standard_16": { + "dbu_rate": 2.88, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "e2_standard_32": { + "dbu_rate": 5.76, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "e2_standard_4": { + "dbu_rate": 0.72, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "e2_standard_8": { + "dbu_rate": 1.44, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "g2-standard-12": { + "dbu_rate": 4.32, + "vcpus": 12.0, + "memory_gb": 48.0, + "family": "GPU" + }, + "g2-standard-16": { + "dbu_rate": 5.76, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "GPU" + }, + "g2-standard-24": { + "dbu_rate": 8.64, + "vcpus": 24.0, + "memory_gb": 96.0, + "family": "GPU" + }, + "g2-standard-32": { + "dbu_rate": 11.52, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "GPU" + }, + "g2-standard-4": { + "dbu_rate": 1.44, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "GPU" + }, + "g2-standard-48": { + "dbu_rate": 17.28, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "GPU" + }, + "g2-standard-8": { + "dbu_rate": 2.88, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "GPU" + }, + "g2-standard-96": { + "dbu_rate": 34.56, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "GPU" + }, + "n1-highcpu-16": { + "dbu_rate": 2.136, + "vcpus": 16.0, + "memory_gb": 14.4, + "family": "General Purpose" + }, + "n1-highcpu-32": { + "dbu_rate": 4.272, + "vcpus": 32.0, + "memory_gb": 28.8, + "family": "General Purpose" + }, + "n1-highcpu-64": { + "dbu_rate": 8.544, + "vcpus": 64.0, + "memory_gb": 57.6, + "family": "General Purpose" + }, + "n1-highcpu-96": { + "dbu_rate": 12.815999999999999, + "vcpus": 96.0, + "memory_gb": 86.4, + "family": "General Purpose" + }, + "n1-highmem-16": { + "dbu_rate": 3.48, + "vcpus": 16.0, + "memory_gb": 104.0, + "family": "General Purpose" + }, + "n1-highmem-32": { + "dbu_rate": 6.96, + "vcpus": 32.0, + "memory_gb": 208.0, + "family": "General Purpose" + }, + "n1-highmem-4": { + "dbu_rate": 0.87, + "vcpus": 4.0, + "memory_gb": 26.0, + "family": "General Purpose" + }, + "n1-highmem-64": { + "dbu_rate": 13.92, + "vcpus": 64.0, + "memory_gb": 416.0, + "family": "General Purpose" + }, + "n1-highmem-8": { + "dbu_rate": 1.74, + "vcpus": 8.0, + "memory_gb": 52.0, + "family": "General Purpose" + }, + "n1-highmem-96": { + "dbu_rate": 20.88, + "vcpus": 96.0, + "memory_gb": 624.0, + "family": "General Purpose" + }, + "n1-standard-16": { + "dbu_rate": 2.82, + "vcpus": 16.0, + "memory_gb": 60.0, + "family": "General Purpose" + }, + "n1-standard-32": { + "dbu_rate": 5.64, + "vcpus": 32.0, + "memory_gb": 120.0, + "family": "General Purpose" + }, + "n1-standard-4": { + "dbu_rate": 0.71, + "vcpus": 4.0, + "memory_gb": 15.0, + "family": "General Purpose" + }, + "n1-standard-64": { + "dbu_rate": 11.28, + "vcpus": 64.0, + "memory_gb": 240.0, + "family": "General Purpose" + }, + "n1-standard-8": { + "dbu_rate": 1.41, + "vcpus": 8.0, + "memory_gb": 30.0, + "family": "General Purpose" + }, + "n1-standard-96": { + "dbu_rate": 16.92, + "vcpus": 96.0, + "memory_gb": 360.0, + "family": "General Purpose" + }, + "n2-highcpu-16": { + "dbu_rate": 2.16, + "vcpus": 16.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "n2-highcpu-32": { + "dbu_rate": 4.32, + "vcpus": 32.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "n2-highcpu-48": { + "dbu_rate": 6.4799999999999995, + "vcpus": 48.0, + "memory_gb": 48.0, + "family": "General Purpose" + }, + "n2-highcpu-64": { + "dbu_rate": 8.64, + "vcpus": 64.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "n2-highcpu-80": { + "dbu_rate": 10.799999999999999, + "vcpus": 80.0, + "memory_gb": 80.0, + "family": "General Purpose" + }, + "n2-highmem-16": { + "dbu_rate": 3.84, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "n2-highmem-2": { + "dbu_rate": 0.48, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "n2-highmem-32": { + "dbu_rate": 7.68, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "n2-highmem-4": { + "dbu_rate": 0.96, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "n2-highmem-48": { + "dbu_rate": 11.52, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "n2-highmem-64": { + "dbu_rate": 15.36, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "n2-highmem-8": { + "dbu_rate": 1.92, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "n2-highmem-80": { + "dbu_rate": 19.2, + "vcpus": 80.0, + "memory_gb": 640.0, + "family": "General Purpose" + }, + "n2-standard-16": { + "dbu_rate": 2.88, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "n2-standard-32": { + "dbu_rate": 5.76, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "n2-standard-4": { + "dbu_rate": 0.72, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "n2-standard-48": { + "dbu_rate": 8.64, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "n2-standard-64": { + "dbu_rate": 11.52, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "n2-standard-8": { + "dbu_rate": 1.44, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "n2-standard-80": { + "dbu_rate": 14.399999999999999, + "vcpus": 80.0, + "memory_gb": 320.0, + "family": "General Purpose" + }, + "n2d-highcpu-128": { + "dbu_rate": 17.28, + "vcpus": 128.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "n2d-highcpu-16": { + "dbu_rate": 2.16, + "vcpus": 16.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "n2d-highcpu-224": { + "dbu_rate": 30.24, + "vcpus": 224.0, + "memory_gb": 224.0, + "family": "General Purpose" + }, + "n2d-highcpu-32": { + "dbu_rate": 4.32, + "vcpus": 32.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "n2d-highcpu-48": { + "dbu_rate": 6.4799999999999995, + "vcpus": 48.0, + "memory_gb": 48.0, + "family": "General Purpose" + }, + "n2d-highcpu-64": { + "dbu_rate": 8.64, + "vcpus": 64.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "n2d-highcpu-80": { + "dbu_rate": 10.799999999999999, + "vcpus": 80.0, + "memory_gb": 80.0, + "family": "General Purpose" + }, + "n2d-highcpu-96": { + "dbu_rate": 12.959999999999999, + "vcpus": 96.0, + "memory_gb": 96.0, + "family": "General Purpose" + }, + "n2d-highmem-16": { + "dbu_rate": 3.84, + "vcpus": 16.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "n2d-highmem-2": { + "dbu_rate": 0.48, + "vcpus": 2.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "n2d-highmem-32": { + "dbu_rate": 7.68, + "vcpus": 32.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "n2d-highmem-4": { + "dbu_rate": 0.96, + "vcpus": 4.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "n2d-highmem-48": { + "dbu_rate": 11.52, + "vcpus": 48.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "n2d-highmem-64": { + "dbu_rate": 15.36, + "vcpus": 64.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "n2d-highmem-8": { + "dbu_rate": 1.92, + "vcpus": 8.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "n2d-highmem-80": { + "dbu_rate": 19.2, + "vcpus": 80.0, + "memory_gb": 640.0, + "family": "General Purpose" + }, + "n2d-highmem-96": { + "dbu_rate": 23.04, + "vcpus": 96.0, + "memory_gb": 768.0, + "family": "General Purpose" + }, + "n2d-standard-128": { + "dbu_rate": 23.04, + "vcpus": 128.0, + "memory_gb": 512.0, + "family": "General Purpose" + }, + "n2d-standard-16": { + "dbu_rate": 2.88, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "n2d-standard-224": { + "dbu_rate": 40.32, + "vcpus": 224.0, + "memory_gb": 896.0, + "family": "General Purpose" + }, + "n2d-standard-32": { + "dbu_rate": 5.76, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "n2d-standard-4": { + "dbu_rate": 0.72, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "n2d-standard-48": { + "dbu_rate": 8.64, + "vcpus": 48.0, + "memory_gb": 192.0, + "family": "General Purpose" + }, + "n2d-standard-64": { + "dbu_rate": 11.52, + "vcpus": 64.0, + "memory_gb": 256.0, + "family": "General Purpose" + }, + "n2d-standard-8": { + "dbu_rate": 1.44, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + }, + "n2d-standard-80": { + "dbu_rate": 14.399999999999999, + "vcpus": 80.0, + "memory_gb": 320.0, + "family": "General Purpose" + }, + "n2d-standard-96": { + "dbu_rate": 17.28, + "vcpus": 96.0, + "memory_gb": 384.0, + "family": "General Purpose" + }, + "n4-standard-16": { + "dbu_rate": 3.36, + "vcpus": 16.0, + "memory_gb": 64.0, + "family": "General Purpose" + }, + "n4-standard-2": { + "dbu_rate": 0.42, + "vcpus": 2.0, + "memory_gb": 8.0, + "family": "General Purpose" + }, + "n4-standard-32": { + "dbu_rate": 6.72, + "vcpus": 32.0, + "memory_gb": 128.0, + "family": "General Purpose" + }, + "n4-standard-4": { + "dbu_rate": 0.84, + "vcpus": 4.0, + "memory_gb": 16.0, + "family": "General Purpose" + }, + "n4-standard-8": { + "dbu_rate": 1.68, + "vcpus": 8.0, + "memory_gb": 32.0, + "family": "General Purpose" + } + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/manifest.json b/lakemeter/backend/static/pricing/manifest.json new file mode 100644 index 00000000..6357fa45 --- /dev/null +++ b/lakemeter/backend/static/pricing/manifest.json @@ -0,0 +1,17 @@ +{ + "generated_at": "2026-04-10T09:20:30.571090", + "format": "csv", + "total_files": 10, + "files": [ + "dbsql-rates.csv", + "dbsql-warehouse-config.csv", + "dbu-multipliers.csv", + "dbu-rates.csv", + "fmapi-databricks-rates.csv", + "fmapi-proprietary-rates.csv", + "instance-dbu-rates.csv", + "serverless-rates.csv", + "sku-region-map.csv", + "vm-costs.csv" + ] +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/model-serving-rates.json b/lakemeter/backend/static/pricing/model-serving-rates.json new file mode 100644 index 00000000..2546565e --- /dev/null +++ b/lakemeter/backend/static/pricing/model-serving-rates.json @@ -0,0 +1,72 @@ +{ + "aws:cpu": { + "dbu_rate": 1.0, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "1 concurrent request/hr = 1 DBU/hr" + }, + "aws:gpu_medium_a10g_1x": { + "dbu_rate": 20.0, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Medium - A10G x 1GPU" + }, + "aws:gpu_medium_a10g_4x": { + "dbu_rate": 112.0, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Medium 4X - A10G x 4GPU" + }, + "aws:gpu_medium_a10g_8x": { + "dbu_rate": 290.8, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Medium 8X - A10G x 8GPU" + }, + "aws:gpu_small_t4": { + "dbu_rate": 10.48, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Small - T4 or equivalent" + }, + "aws:gpu_xlarge_a100_40gb_8x": { + "dbu_rate": 538.4, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "XLarge - A100 40GB x 8GPU" + }, + "aws:gpu_xlarge_a100_80gb_8x": { + "dbu_rate": 628.0, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "XLarge - A100 80GB x 8GPU" + }, + "azure:cpu": { + "dbu_rate": 1.0, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "1 concurrent request/hr = 1 DBU/hr" + }, + "azure:gpu_2xlarge_a100_80gb_2x": { + "dbu_rate": 157.2, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "2XLarge - A100 80GB x 2GPU" + }, + "azure:gpu_4xlarge_a100_80gb_4x": { + "dbu_rate": 314.4, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "4XLarge - A100 80GB x 4GPU" + }, + "azure:gpu_small_t4": { + "dbu_rate": 10.48, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Small - T4 or equivalent" + }, + "azure:gpu_xlarge_a100_80gb_1x": { + "dbu_rate": 78.6, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "XLarge - A100 80GB x 1GPU" + }, + "gcp:cpu": { + "dbu_rate": 1.0, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "1 concurrent request/hr = 1 DBU/hr" + }, + "gcp:gpu_medium_g2_standard_8": { + "dbu_rate": 5.0, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Medium - G2 Standard 8 x 1GPU" + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/serverless-rates.csv b/lakemeter/backend/static/pricing/serverless-rates.csv new file mode 100644 index 00000000..0c37671f --- /dev/null +++ b/lakemeter/backend/static/pricing/serverless-rates.csv @@ -0,0 +1,21 @@ +cloud,product,size_or_model,rate_type,dbu_rate,input_divisor,is_hourly,sku_product_type,description +AWS,model_serving,cpu,,1.0,,False,SERVERLESS_REAL_TIME_INFERENCE,1 concurrent request/hr = 1 DBU/hr +AWS,model_serving,gpu_medium_a10g_1x,,20.0,,False,SERVERLESS_REAL_TIME_INFERENCE,Medium - A10G x 1GPU +AWS,model_serving,gpu_medium_a10g_4x,,112.0,,False,SERVERLESS_REAL_TIME_INFERENCE,Medium 4X - A10G x 4GPU +AWS,model_serving,gpu_medium_a10g_8x,,290.8,,False,SERVERLESS_REAL_TIME_INFERENCE,Medium 8X - A10G x 8GPU +AWS,model_serving,gpu_small_t4,,10.48,,False,SERVERLESS_REAL_TIME_INFERENCE,Small - T4 or equivalent +AWS,model_serving,gpu_xlarge_a100_40gb_8x,,538.4,,False,SERVERLESS_REAL_TIME_INFERENCE,XLarge - A100 40GB x 8GPU +AWS,model_serving,gpu_xlarge_a100_80gb_8x,,628.0,,False,SERVERLESS_REAL_TIME_INFERENCE,XLarge - A100 80GB x 8GPU +AZURE,model_serving,cpu,,1.0,,False,SERVERLESS_REAL_TIME_INFERENCE,1 concurrent request/hr = 1 DBU/hr +AZURE,model_serving,gpu_2xlarge_a100_80gb_2x,,157.2,,False,SERVERLESS_REAL_TIME_INFERENCE,2XLarge - A100 80GB x 2GPU +AZURE,model_serving,gpu_4xlarge_a100_80gb_4x,,314.4,,False,SERVERLESS_REAL_TIME_INFERENCE,4XLarge - A100 80GB x 4GPU +AZURE,model_serving,gpu_small_t4,,10.48,,False,SERVERLESS_REAL_TIME_INFERENCE,Small - T4 or equivalent +AZURE,model_serving,gpu_xlarge_a100_80gb_1x,,78.6,,False,SERVERLESS_REAL_TIME_INFERENCE,XLarge - A100 80GB x 1GPU +GCP,model_serving,cpu,,1.0,,False,SERVERLESS_REAL_TIME_INFERENCE,1 concurrent request/hr = 1 DBU/hr +GCP,model_serving,gpu_medium_g2_standard_8,,5.0,,False,SERVERLESS_REAL_TIME_INFERENCE,Medium - G2 Standard 8 x 1GPU +AWS,vector_search,standard,,4.0,2000000,True,SERVERLESS_REAL_TIME_INFERENCE,Standard endpoint - 2M vectors per unit +AWS,vector_search,storage_optimized,,18.29,64000000,True,SERVERLESS_REAL_TIME_INFERENCE,Storage optimized - 64M vectors per unit +AZURE,vector_search,standard,,4.0,2000000,True,SERVERLESS_REAL_TIME_INFERENCE,Standard endpoint - 2M vectors per unit +AZURE,vector_search,storage_optimized,,18.29,64000000,True,SERVERLESS_REAL_TIME_INFERENCE,Storage optimized - 64M vectors per unit +GCP,vector_search,standard,,4.0,2000000,True,SERVERLESS_REAL_TIME_INFERENCE,Standard endpoint - 2M vectors per unit +GCP,vector_search,storage_optimized,,18.29,64000000,True,SERVERLESS_REAL_TIME_INFERENCE,Storage optimized - 64M vectors per unit diff --git a/lakemeter/backend/static/pricing/sku-region-map.csv b/lakemeter/backend/static/pricing/sku-region-map.csv new file mode 100644 index 00000000..8b84a984 --- /dev/null +++ b/lakemeter/backend/static/pricing/sku-region-map.csv @@ -0,0 +1,74 @@ +cloud,sku_region,region_code +AWS,US_EAST_N_VIRGINIA,us-east-1 +AWS,US_EAST_OHIO,us-east-2 +AWS,US_WEST_OREGON,us-west-2 +AWS,US_WEST_CALIFORNIA,us-west-1 +AWS,AP_MUMBAI,ap-south-1 +AWS,AP_SINGAPORE,ap-southeast-1 +AWS,AP_SYDNEY,ap-southeast-2 +AWS,AP_TOKYO,ap-northeast-1 +AWS,AP_SEOUL,ap-northeast-2 +AWS,AP_JAKARTA,ap-southeast-3 +AWS,EUROPE_IRELAND,eu-west-1 +AWS,EUROPE_FRANKFURT,eu-central-1 +AWS,EUROPE_LONDON,eu-west-2 +AWS,EUROPE_FRANCE,eu-west-3 +AWS,EUROPE_STOCKHOLM,eu-north-1 +AWS,CANADA,ca-central-1 +AWS,SA_BRAZIL,sa-east-1 +AZURE,US_EAST,eastus +AZURE,US_EAST_2,eastus2 +AZURE,US_WEST,westus +AZURE,US_WEST_2,westus2 +AZURE,US_WEST_3,westus3 +AZURE,US_CENTRAL,centralus +AZURE,US_NORTH_CENTRAL,northcentralus +AZURE,US_SOUTH_CENTRAL,southcentralus +AZURE,US_WEST_CENTRAL,westcentralus +AZURE,EU_WEST,westeurope +AZURE,EU_NORTH,northeurope +AZURE,UK_SOUTH,uksouth +AZURE,UK_WEST,ukwest +AZURE,FRANCE_CENTRAL,francecentral +AZURE,GERMANY_WEST_CENTRAL,germanywestcentral +AZURE,SWITZERLAND_NORTH,switzerlandnorth +AZURE,SWITZERLAND_WEST,switzerlandwest +AZURE,SWEDEN_CENTRAL,swedencentral +AZURE,NORWAY_EAST,norwayeast +AZURE,QATAR_CENTRAL,qatarcentral +AZURE,UAE_NORTH,uaenorth +AZURE,ASIA_EAST,eastasia +AZURE,ASIA_SOUTHEAST,southeastasia +AZURE,AUSTRALIA_EAST,australiaeast +AZURE,AUSTRALIA_SOUTHEAST,australiasoutheast +AZURE,AUSTRALIA_CENTRAL,australiacentral +AZURE,AUSTRALIA_CENTRAL_2,australiacentral2 +AZURE,JAPAN_EAST,japaneast +AZURE,JAPAN_WEST,japanwest +AZURE,KOREA_CENTRAL,koreacentral +AZURE,INDIA_CENTRAL,centralindia +AZURE,INDIA_SOUTH,southindia +AZURE,INDIA_WEST,westindia +AZURE,BRAZIL_SOUTH,brazilsouth +AZURE,SOUTH_AFRICA_NORTH,southafricanorth +AZURE,MEXICO_CENTRAL,mexicocentral +AZURE,CANADA_CENTRAL,canadacentral +AZURE,CANADA_EAST,canadaeast +GCP,US_IOWA,us-central1 +GCP,US_NEVADA,us-west4 +GCP,US_SOUTH_CAROLINA,us-east1 +GCP,US_OREGON,us-west1 +GCP,US_VIRGINIA,us-east4 +GCP,US_WEST_CALIFORNIA,us-west2 +GCP,EUROPE_BELGIUM,europe-west1 +GCP,EUROPE_ENGLAND,europe-west2 +GCP,EUROPE_FRANKFURT,europe-west3 +GCP,EUROPE_FRANCE,europe-west9 +GCP,CANADA_QUEBEC,northamerica-northeast1 +GCP,ASIA_SINGAPORE,asia-southeast1 +GCP,ASIA_TOKYO,asia-northeast1 +GCP,ASIA_SEOUL,asia-northeast3 +GCP,AUSTRALIA_SYDNEY,australia-southeast1 +GCP,INDIA_MUMBAI,asia-south1 +GCP,SA_BRAZIL,southamerica-east1 +GCP,ME_DAMMAM,me-central2 diff --git a/lakemeter/backend/static/pricing/vector-search-rates.json b/lakemeter/backend/static/pricing/vector-search-rates.json new file mode 100644 index 00000000..5854abc7 --- /dev/null +++ b/lakemeter/backend/static/pricing/vector-search-rates.json @@ -0,0 +1,38 @@ +{ + "aws:standard": { + "dbu_rate": 4.0, + "input_divisor": 2000000, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Standard endpoint - 2M vectors per unit" + }, + "aws:storage_optimized": { + "dbu_rate": 18.29, + "input_divisor": 64000000, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Storage optimized - 64M vectors per unit" + }, + "azure:standard": { + "dbu_rate": 4.0, + "input_divisor": 2000000, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Standard endpoint - 2M vectors per unit" + }, + "azure:storage_optimized": { + "dbu_rate": 18.29, + "input_divisor": 64000000, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Storage optimized - 64M vectors per unit" + }, + "gcp:standard": { + "dbu_rate": 4.0, + "input_divisor": 2000000, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Standard endpoint - 2M vectors per unit" + }, + "gcp:storage_optimized": { + "dbu_rate": 18.29, + "input_divisor": 64000000, + "sku_product_type": "SERVERLESS_REAL_TIME_INFERENCE", + "description": "Storage optimized - 64M vectors per unit" + } +} \ No newline at end of file diff --git a/lakemeter/backend/static/pricing/vm-costs.csv b/lakemeter/backend/static/pricing/vm-costs.csv new file mode 100644 index 00000000..e03f3210 --- /dev/null +++ b/lakemeter/backend/static/pricing/vm-costs.csv @@ -0,0 +1,111127 @@ +cloud,region,instance_type,pricing_tier,payment_option,cost_per_hour,currency,source,fetched_at +AWS,ap-northeast-1,c5.12xlarge,on_demand,NA,2.568,USD,AWS Pricing API,2025-11-30T09:02:20.454637 +AWS,ap-northeast-1,c5.12xlarge,reserved_1y,all_upfront,2.054753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:49.787997 +AWS,ap-northeast-1,c5.12xlarge,reserved_1y,no_upfront,2.054753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:33.117472 +AWS,ap-northeast-1,c5.12xlarge,reserved_1y,partial_upfront,2.054753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:15.405823 +AWS,ap-northeast-1,c5.12xlarge,reserved_3y,all_upfront,1.027584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:49.247483 +AWS,ap-northeast-1,c5.12xlarge,reserved_3y,no_upfront,1.027584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:37.307146 +AWS,ap-northeast-1,c5.12xlarge,reserved_3y,partial_upfront,1.027584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:26.304085 +AWS,ap-northeast-1,c5.12xlarge,spot,NA,0.945019,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270766 +AWS,ap-northeast-1,c5.18xlarge,on_demand,NA,3.852,USD,AWS Pricing API,2025-11-30T09:02:28.960196 +AWS,ap-northeast-1,c5.18xlarge,reserved_1y,all_upfront,1.664,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:58.203120 +AWS,ap-northeast-1,c5.18xlarge,reserved_1y,no_upfront,1.664,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:41.570936 +AWS,ap-northeast-1,c5.18xlarge,reserved_1y,partial_upfront,1.664,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:23.966465 +AWS,ap-northeast-1,c5.18xlarge,reserved_3y,all_upfront,1.664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:57.560425 +AWS,ap-northeast-1,c5.18xlarge,reserved_3y,no_upfront,1.664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:45.867092 +AWS,ap-northeast-1,c5.18xlarge,reserved_3y,partial_upfront,1.664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:34.656070 +AWS,ap-northeast-1,c5.18xlarge,spot,NA,1.275812,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271096 +AWS,ap-northeast-1,c5.24xlarge,on_demand,NA,5.136,USD,AWS Pricing API,2025-11-30T09:01:33.194128 +AWS,ap-northeast-1,c5.24xlarge,reserved_1y,all_upfront,3.019977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:03.053798 +AWS,ap-northeast-1,c5.24xlarge,reserved_1y,no_upfront,3.019977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:45.886828 +AWS,ap-northeast-1,c5.24xlarge,reserved_1y,partial_upfront,3.019977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:28.745049 +AWS,ap-northeast-1,c5.24xlarge,reserved_3y,all_upfront,1.006659,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:03.415343 +AWS,ap-northeast-1,c5.24xlarge,reserved_3y,no_upfront,1.006659,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:49.689786 +AWS,ap-northeast-1,c5.24xlarge,reserved_3y,partial_upfront,1.006659,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:39.895646 +AWS,ap-northeast-1,c5.24xlarge,spot,NA,1.673287,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268870 +AWS,ap-northeast-1,c5.4xlarge,on_demand,NA,0.856,USD,AWS Pricing API,2025-11-30T09:02:13.225392 +AWS,ap-northeast-1,c5.4xlarge,reserved_1y,all_upfront,0.708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:42.603999 +AWS,ap-northeast-1,c5.4xlarge,reserved_1y,no_upfront,0.708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:25.896964 +AWS,ap-northeast-1,c5.4xlarge,reserved_1y,partial_upfront,0.708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:08.221221 +AWS,ap-northeast-1,c5.4xlarge,reserved_3y,all_upfront,0.708,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:42.179286 +AWS,ap-northeast-1,c5.4xlarge,reserved_3y,no_upfront,0.708,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:29.987742 +AWS,ap-northeast-1,c5.4xlarge,reserved_3y,partial_upfront,0.708,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:19.195949 +AWS,ap-northeast-1,c5.4xlarge,spot,NA,0.294499,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270443 +AWS,ap-northeast-1,c5.9xlarge,on_demand,NA,1.926,USD,AWS Pricing API,2025-11-30T09:01:32.502450 +AWS,ap-northeast-1,c5.9xlarge,reserved_1y,all_upfront,1.155854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:02.374780 +AWS,ap-northeast-1,c5.9xlarge,reserved_1y,no_upfront,1.155854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:45.205821 +AWS,ap-northeast-1,c5.9xlarge,reserved_1y,partial_upfront,1.155854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:28.069428 +AWS,ap-northeast-1,c5.9xlarge,reserved_3y,all_upfront,0.770618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:02.753460 +AWS,ap-northeast-1,c5.9xlarge,reserved_3y,no_upfront,0.770618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:49.004370 +AWS,ap-northeast-1,c5.9xlarge,reserved_3y,partial_upfront,0.770618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:39.226541 +AWS,ap-northeast-1,c5.9xlarge,spot,NA,0.705816,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268876 +AWS,ap-northeast-1,c5a.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:02:29.505582 +AWS,ap-northeast-1,c5a.12xlarge,reserved_1y,all_upfront,1.354795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:58.744103 +AWS,ap-northeast-1,c5a.12xlarge,reserved_1y,no_upfront,1.354795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:42.110877 +AWS,ap-northeast-1,c5a.12xlarge,reserved_1y,partial_upfront,1.354795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:24.501039 +AWS,ap-northeast-1,c5a.12xlarge,reserved_3y,all_upfront,0.451598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:58.095325 +AWS,ap-northeast-1,c5a.12xlarge,reserved_3y,no_upfront,0.451598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:46.418287 +AWS,ap-northeast-1,c5a.12xlarge,reserved_3y,partial_upfront,0.451598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:35.188041 +AWS,ap-northeast-1,c5a.12xlarge,spot,NA,0.863257,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271102 +AWS,ap-northeast-1,c5a.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T09:01:48.599254 +AWS,ap-northeast-1,c5a.16xlarge,reserved_1y,all_upfront,1.806393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:18.434437 +AWS,ap-northeast-1,c5a.16xlarge,reserved_1y,no_upfront,1.806393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:01.340725 +AWS,ap-northeast-1,c5a.16xlarge,reserved_1y,partial_upfront,1.806393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:44.029864 +AWS,ap-northeast-1,c5a.16xlarge,reserved_3y,all_upfront,0.602131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:18.399496 +AWS,ap-northeast-1,c5a.16xlarge,reserved_3y,no_upfront,0.602131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:05.304344 +AWS,ap-northeast-1,c5a.16xlarge,reserved_3y,partial_upfront,0.602131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:55.088548 +AWS,ap-northeast-1,c5a.16xlarge,spot,NA,1.127724,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269431 +AWS,ap-northeast-1,c5a.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:02:35.763286 +AWS,ap-northeast-1,c5a.24xlarge,reserved_1y,all_upfront,7.451142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:05.025294 +AWS,ap-northeast-1,c5a.24xlarge,reserved_1y,no_upfront,7.451142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:48.342797 +AWS,ap-northeast-1,c5a.24xlarge,reserved_1y,partial_upfront,7.451142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:30.668615 +AWS,ap-northeast-1,c5a.24xlarge,reserved_3y,all_upfront,2.483714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:04.266434 +AWS,ap-northeast-1,c5a.24xlarge,reserved_3y,no_upfront,2.483714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:52.785906 +AWS,ap-northeast-1,c5a.24xlarge,reserved_3y,partial_upfront,2.483714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:41.370172 +AWS,ap-northeast-1,c5a.24xlarge,spot,NA,1.628422,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271417 +AWS,ap-northeast-1,c5a.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T09:02:18.680299 +AWS,ap-northeast-1,c5a.2xlarge,reserved_1y,all_upfront,0.307365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:48.019632 +AWS,ap-northeast-1,c5a.2xlarge,reserved_1y,no_upfront,0.307365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:31.353652 +AWS,ap-northeast-1,c5a.2xlarge,reserved_1y,partial_upfront,0.307365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:13.618762 +AWS,ap-northeast-1,c5a.2xlarge,reserved_3y,all_upfront,0.153788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:47.515606 +AWS,ap-northeast-1,c5a.2xlarge,reserved_3y,no_upfront,0.153788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:35.521676 +AWS,ap-northeast-1,c5a.2xlarge,reserved_3y,partial_upfront,0.153788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:24.560730 +AWS,ap-northeast-1,c5a.2xlarge,spot,NA,0.174041,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270681 +AWS,ap-northeast-1,c5a.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T09:01:51.176112 +AWS,ap-northeast-1,c5a.4xlarge,reserved_1y,all_upfront,0.591553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:20.992470 +AWS,ap-northeast-1,c5a.4xlarge,reserved_1y,no_upfront,0.591553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:03.988061 +AWS,ap-northeast-1,c5a.4xlarge,reserved_1y,partial_upfront,0.591553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:46.589568 +AWS,ap-northeast-1,c5a.4xlarge,reserved_3y,all_upfront,0.197184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:20.911502 +AWS,ap-northeast-1,c5a.4xlarge,reserved_3y,no_upfront,0.197184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:07.926846 +AWS,ap-northeast-1,c5a.4xlarge,reserved_3y,partial_upfront,0.197184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:57.621369 +AWS,ap-northeast-1,c5a.4xlarge,spot,NA,0.316211,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269516 +AWS,ap-northeast-1,c5a.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T09:01:43.817680 +AWS,ap-northeast-1,c5a.8xlarge,reserved_1y,all_upfront,1.183105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:13.695353 +AWS,ap-northeast-1,c5a.8xlarge,reserved_1y,no_upfront,1.183105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:56.544733 +AWS,ap-northeast-1,c5a.8xlarge,reserved_1y,partial_upfront,1.183105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:39.306844 +AWS,ap-northeast-1,c5a.8xlarge,reserved_3y,all_upfront,0.394368,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:13.780506 +AWS,ap-northeast-1,c5a.8xlarge,reserved_3y,no_upfront,0.394368,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:00.451188 +AWS,ap-northeast-1,c5a.8xlarge,reserved_3y,partial_upfront,0.394368,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:50.381067 +AWS,ap-northeast-1,c5a.8xlarge,spot,NA,0.560776,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269302 +AWS,ap-northeast-1,c5a.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T09:01:34.695985 +AWS,ap-northeast-1,c5a.xlarge,reserved_1y,all_upfront,0.158,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:04.542752 +AWS,ap-northeast-1,c5a.xlarge,reserved_1y,no_upfront,0.158,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:47.391825 +AWS,ap-northeast-1,c5a.xlarge,reserved_1y,partial_upfront,0.158,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:30.220639 +AWS,ap-northeast-1,c5a.xlarge,reserved_3y,all_upfront,0.158,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:04.872764 +AWS,ap-northeast-1,c5a.xlarge,reserved_3y,no_upfront,0.158,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:51.199380 +AWS,ap-northeast-1,c5a.xlarge,reserved_3y,partial_upfront,0.158,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:41.373829 +AWS,ap-northeast-1,c5a.xlarge,spot,NA,0.086197,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268895 +AWS,ap-northeast-1,c5d.12xlarge,on_demand,NA,2.928,USD,AWS Pricing API,2025-11-30T09:02:41.746152 +AWS,ap-northeast-1,c5d.12xlarge,reserved_1y,all_upfront,2.395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:10.974981 +AWS,ap-northeast-1,c5d.12xlarge,reserved_1y,no_upfront,2.395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:54.349028 +AWS,ap-northeast-1,c5d.12xlarge,reserved_1y,partial_upfront,2.395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:36.581965 +AWS,ap-northeast-1,c5d.12xlarge,reserved_3y,all_upfront,2.395,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:10.089356 +AWS,ap-northeast-1,c5d.12xlarge,reserved_3y,no_upfront,2.395,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:58.823676 +AWS,ap-northeast-1,c5d.12xlarge,reserved_3y,partial_upfront,2.395,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:47.273973 +AWS,ap-northeast-1,c5d.12xlarge,spot,NA,1.030306,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272482 +AWS,ap-northeast-1,c5d.18xlarge,on_demand,NA,4.392,USD,AWS Pricing API,2025-11-30T09:02:04.939526 +AWS,ap-northeast-1,c5d.18xlarge,reserved_1y,all_upfront,3.352854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:34.496930 +AWS,ap-northeast-1,c5d.18xlarge,reserved_1y,no_upfront,3.352854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:17.684490 +AWS,ap-northeast-1,c5d.18xlarge,reserved_1y,partial_upfront,3.352854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:00.082424 +AWS,ap-northeast-1,c5d.18xlarge,reserved_3y,all_upfront,1.117618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:34.212418 +AWS,ap-northeast-1,c5d.18xlarge,reserved_3y,no_upfront,1.117618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:21.698293 +AWS,ap-northeast-1,c5d.18xlarge,reserved_3y,partial_upfront,1.117618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:11.079318 +AWS,ap-northeast-1,c5d.18xlarge,spot,NA,1.456477,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270092 +AWS,ap-northeast-1,c5d.24xlarge,on_demand,NA,5.856,USD,AWS Pricing API,2025-11-30T09:01:37.445089 +AWS,ap-northeast-1,c5d.24xlarge,reserved_1y,all_upfront,3.513849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:07.334035 +AWS,ap-northeast-1,c5d.24xlarge,reserved_1y,no_upfront,3.513849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:50.118306 +AWS,ap-northeast-1,c5d.24xlarge,reserved_1y,partial_upfront,3.513849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:32.917094 +AWS,ap-northeast-1,c5d.24xlarge,reserved_3y,all_upfront,2.342616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:07.530666 +AWS,ap-northeast-1,c5d.24xlarge,reserved_3y,no_upfront,2.342616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:53.959452 +AWS,ap-northeast-1,c5d.24xlarge,reserved_3y,partial_upfront,2.342616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:44.049204 +AWS,ap-northeast-1,c5d.24xlarge,spot,NA,1.928041,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269070 +AWS,ap-northeast-1,c5d.2xlarge,on_demand,NA,0.488,USD,AWS Pricing API,2025-11-30T09:02:25.411079 +AWS,ap-northeast-1,c5d.2xlarge,reserved_1y,all_upfront,0.292347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:54.641162 +AWS,ap-northeast-1,c5d.2xlarge,reserved_1y,no_upfront,0.292347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:38.034674 +AWS,ap-northeast-1,c5d.2xlarge,reserved_1y,partial_upfront,0.292347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:20.357533 +AWS,ap-northeast-1,c5d.2xlarge,reserved_3y,all_upfront,0.194782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:54.124289 +AWS,ap-northeast-1,c5d.2xlarge,reserved_3y,no_upfront,0.194782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:42.280799 +AWS,ap-northeast-1,c5d.2xlarge,reserved_3y,partial_upfront,0.194782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:31.149692 +AWS,ap-northeast-1,c5d.2xlarge,spot,NA,0.234078,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270976 +AWS,ap-northeast-1,c5d.4xlarge,on_demand,NA,0.976,USD,AWS Pricing API,2025-11-30T09:01:45.046694 +AWS,ap-northeast-1,c5d.4xlarge,reserved_1y,all_upfront,0.573858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:14.911963 +AWS,ap-northeast-1,c5d.4xlarge,reserved_1y,no_upfront,0.573858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:57.775476 +AWS,ap-northeast-1,c5d.4xlarge,reserved_1y,partial_upfront,0.573858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:40.525475 +AWS,ap-northeast-1,c5d.4xlarge,reserved_3y,all_upfront,0.191286,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:14.973886 +AWS,ap-northeast-1,c5d.4xlarge,reserved_3y,no_upfront,0.191286,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:01.702290 +AWS,ap-northeast-1,c5d.4xlarge,reserved_3y,partial_upfront,0.191286,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:51.589198 +AWS,ap-northeast-1,c5d.4xlarge,spot,NA,0.369884,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269327 +AWS,ap-northeast-1,c5d.9xlarge,on_demand,NA,2.196,USD,AWS Pricing API,2025-11-30T09:02:14.854300 +AWS,ap-northeast-1,c5d.9xlarge,reserved_1y,all_upfront,1.796,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:44.229980 +AWS,ap-northeast-1,c5d.9xlarge,reserved_1y,no_upfront,1.796,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:27.541488 +AWS,ap-northeast-1,c5d.9xlarge,reserved_1y,partial_upfront,1.796,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:09.843876 +AWS,ap-northeast-1,c5d.9xlarge,reserved_3y,all_upfront,1.796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:43.769504 +AWS,ap-northeast-1,c5d.9xlarge,reserved_3y,no_upfront,1.796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:31.649854 +AWS,ap-northeast-1,c5d.9xlarge,reserved_3y,partial_upfront,1.796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:20.794814 +AWS,ap-northeast-1,c5d.9xlarge,spot,NA,0.838203,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270492 +AWS,ap-northeast-1,c5d.xlarge,on_demand,NA,0.244,USD,AWS Pricing API,2025-11-30T09:02:10.469468 +AWS,ap-northeast-1,c5d.xlarge,reserved_1y,all_upfront,0.190091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:39.893978 +AWS,ap-northeast-1,c5d.xlarge,reserved_1y,no_upfront,0.190091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:23.174945 +AWS,ap-northeast-1,c5d.xlarge,reserved_1y,partial_upfront,0.190091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:05.527818 +AWS,ap-northeast-1,c5d.xlarge,reserved_3y,all_upfront,0.126697,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:39.522103 +AWS,ap-northeast-1,c5d.xlarge,reserved_3y,no_upfront,0.126697,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:27.195576 +AWS,ap-northeast-1,c5d.xlarge,reserved_3y,partial_upfront,0.126697,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:16.476579 +AWS,ap-northeast-1,c5d.xlarge,spot,NA,0.109934,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270358 +AWS,ap-northeast-1,c5n.18xlarge,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T09:02:31.013509 +AWS,ap-northeast-1,c5n.18xlarge,reserved_1y,all_upfront,3.777055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:00.245321 +AWS,ap-northeast-1,c5n.18xlarge,reserved_1y,no_upfront,3.777055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:43.596073 +AWS,ap-northeast-1,c5n.18xlarge,reserved_1y,partial_upfront,3.777055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:25.978503 +AWS,ap-northeast-1,c5n.18xlarge,reserved_3y,all_upfront,1.259018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:59.542039 +AWS,ap-northeast-1,c5n.18xlarge,reserved_3y,no_upfront,1.259018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:47.942731 +AWS,ap-northeast-1,c5n.18xlarge,reserved_3y,partial_upfront,1.259018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:36.652431 +AWS,ap-northeast-1,c5n.18xlarge,spot,NA,1.64963,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271176 +AWS,ap-northeast-1,c5n.2xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T09:02:41.201024 +AWS,ap-northeast-1,c5n.2xlarge,reserved_1y,all_upfront,0.45,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:10.428655 +AWS,ap-northeast-1,c5n.2xlarge,reserved_1y,no_upfront,0.45,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:53.804695 +AWS,ap-northeast-1,c5n.2xlarge,reserved_1y,partial_upfront,0.45,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:36.039399 +AWS,ap-northeast-1,c5n.2xlarge,reserved_3y,all_upfront,0.45,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:09.564868 +AWS,ap-northeast-1,c5n.2xlarge,reserved_3y,no_upfront,0.45,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:58.282993 +AWS,ap-northeast-1,c5n.2xlarge,reserved_3y,partial_upfront,0.45,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:46.737494 +AWS,ap-northeast-1,c5n.2xlarge,spot,NA,0.20875,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272470 +AWS,ap-northeast-1,c5n.4xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T09:02:17.313195 +AWS,ap-northeast-1,c5n.4xlarge,reserved_1y,all_upfront,0.685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:46.668832 +AWS,ap-northeast-1,c5n.4xlarge,reserved_1y,no_upfront,0.685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:29.983705 +AWS,ap-northeast-1,c5n.4xlarge,reserved_1y,partial_upfront,0.685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:12.263369 +AWS,ap-northeast-1,c5n.4xlarge,reserved_3y,all_upfront,0.685,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:46.168246 +AWS,ap-northeast-1,c5n.4xlarge,reserved_3y,no_upfront,0.685,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:34.120992 +AWS,ap-northeast-1,c5n.4xlarge,reserved_3y,partial_upfront,0.685,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:23.210179 +AWS,ap-northeast-1,c5n.4xlarge,spot,NA,0.392884,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270621 +AWS,ap-northeast-1,c5n.9xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T09:02:30.875896 +AWS,ap-northeast-1,c5n.9xlarge,reserved_1y,all_upfront,1.927584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:00.096116 +AWS,ap-northeast-1,c5n.9xlarge,reserved_1y,no_upfront,1.927584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:43.460798 +AWS,ap-northeast-1,c5n.9xlarge,reserved_1y,partial_upfront,1.927584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:25.844841 +AWS,ap-northeast-1,c5n.9xlarge,reserved_3y,all_upfront,1.285195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:59.409994 +AWS,ap-northeast-1,c5n.9xlarge,reserved_3y,no_upfront,1.285195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:47.802207 +AWS,ap-northeast-1,c5n.9xlarge,reserved_3y,partial_upfront,1.285195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:36.519156 +AWS,ap-northeast-1,c5n.9xlarge,spot,NA,0.857287,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271182 +AWS,ap-northeast-1,c5n.metal,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T09:01:39.069982 +AWS,ap-northeast-1,c5n.metal,reserved_1y,all_upfront,3.854055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:08.962208 +AWS,ap-northeast-1,c5n.metal,reserved_1y,no_upfront,3.854055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:51.744775 +AWS,ap-northeast-1,c5n.metal,reserved_1y,partial_upfront,3.854055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:34.552703 +AWS,ap-northeast-1,c5n.metal,reserved_3y,all_upfront,2.569352,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:09.125590 +AWS,ap-northeast-1,c5n.metal,reserved_3y,no_upfront,2.569352,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:55.629872 +AWS,ap-northeast-1,c5n.metal,reserved_3y,partial_upfront,2.569352,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:45.680397 +AWS,ap-northeast-1,c5n.metal,spot,NA,1.688969,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269119 +AWS,ap-northeast-1,c5n.xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T09:02:32.894555 +AWS,ap-northeast-1,c5n.xlarge,reserved_1y,all_upfront,0.37968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:02.174647 +AWS,ap-northeast-1,c5n.xlarge,reserved_1y,no_upfront,0.37968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:45.486910 +AWS,ap-northeast-1,c5n.xlarge,reserved_1y,partial_upfront,0.37968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:27.840558 +AWS,ap-northeast-1,c5n.xlarge,reserved_3y,all_upfront,0.12656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:01.430564 +AWS,ap-northeast-1,c5n.xlarge,reserved_3y,no_upfront,0.12656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:49.873998 +AWS,ap-northeast-1,c5n.xlarge,reserved_3y,partial_upfront,0.12656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:38.546692 +AWS,ap-northeast-1,c5n.xlarge,spot,NA,0.115247,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271299 +AWS,ap-northeast-1,c6g.12xlarge,on_demand,NA,2.0544,USD,AWS Pricing API,2025-11-30T09:01:44.361606 +AWS,ap-northeast-1,c6g.12xlarge,reserved_1y,all_upfront,1.6959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:14.237777 +AWS,ap-northeast-1,c6g.12xlarge,reserved_1y,no_upfront,1.6959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:57.094484 +AWS,ap-northeast-1,c6g.12xlarge,reserved_1y,partial_upfront,1.6959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:39.847793 +AWS,ap-northeast-1,c6g.12xlarge,reserved_3y,all_upfront,1.6959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:14.310007 +AWS,ap-northeast-1,c6g.12xlarge,reserved_3y,no_upfront,1.6959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:01.007419 +AWS,ap-northeast-1,c6g.12xlarge,reserved_3y,partial_upfront,1.6959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:50.912644 +AWS,ap-northeast-1,c6g.12xlarge,spot,NA,0.73845,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269277 +AWS,ap-northeast-1,c6g.16xlarge,on_demand,NA,2.7392,USD,AWS Pricing API,2025-11-30T09:02:02.469548 +AWS,ap-northeast-1,c6g.16xlarge,reserved_1y,all_upfront,3.08984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:32.050184 +AWS,ap-northeast-1,c6g.16xlarge,reserved_1y,no_upfront,3.08984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:15.194316 +AWS,ap-northeast-1,c6g.16xlarge,reserved_1y,partial_upfront,3.08984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:57.640372 +AWS,ap-northeast-1,c6g.16xlarge,reserved_3y,all_upfront,1.029947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:31.825221 +AWS,ap-northeast-1,c6g.16xlarge,reserved_3y,no_upfront,1.029947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:19.199534 +AWS,ap-northeast-1,c6g.16xlarge,reserved_3y,partial_upfront,1.029947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:08.663038 +AWS,ap-northeast-1,c6g.16xlarge,spot,NA,0.967125,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269974 +AWS,ap-northeast-1,c6g.2xlarge,on_demand,NA,0.3424,USD,AWS Pricing API,2025-11-30T09:02:14.719120 +AWS,ap-northeast-1,c6g.2xlarge,reserved_1y,all_upfront,0.548858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:44.094575 +AWS,ap-northeast-1,c6g.2xlarge,reserved_1y,no_upfront,0.548858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:27.406475 +AWS,ap-northeast-1,c6g.2xlarge,reserved_1y,partial_upfront,0.548858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:09.710109 +AWS,ap-northeast-1,c6g.2xlarge,reserved_3y,all_upfront,0.182953,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:43.637577 +AWS,ap-northeast-1,c6g.2xlarge,reserved_3y,no_upfront,0.182953,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:31.512582 +AWS,ap-northeast-1,c6g.2xlarge,reserved_3y,partial_upfront,0.182953,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:20.660569 +AWS,ap-northeast-1,c6g.2xlarge,spot,NA,0.14161,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270479 +AWS,ap-northeast-1,c6g.4xlarge,on_demand,NA,0.6848,USD,AWS Pricing API,2025-11-30T09:02:33.704504 +AWS,ap-northeast-1,c6g.4xlarge,reserved_1y,all_upfront,0.5653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:02.994993 +AWS,ap-northeast-1,c6g.4xlarge,reserved_1y,no_upfront,0.5653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:46.305191 +AWS,ap-northeast-1,c6g.4xlarge,reserved_1y,partial_upfront,0.5653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:28.644058 +AWS,ap-northeast-1,c6g.4xlarge,reserved_3y,all_upfront,0.5653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:02.251590 +AWS,ap-northeast-1,c6g.4xlarge,reserved_3y,no_upfront,0.5653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:50.708067 +AWS,ap-northeast-1,c6g.4xlarge,reserved_3y,partial_upfront,0.5653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:39.351124 +AWS,ap-northeast-1,c6g.4xlarge,spot,NA,0.257691,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271286 +AWS,ap-northeast-1,c6g.8xlarge,on_demand,NA,1.3696,USD,AWS Pricing API,2025-11-30T09:02:00.770310 +AWS,ap-northeast-1,c6g.8xlarge,reserved_1y,all_upfront,0.805365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:30.445125 +AWS,ap-northeast-1,c6g.8xlarge,reserved_1y,no_upfront,0.805365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:13.534346 +AWS,ap-northeast-1,c6g.8xlarge,reserved_1y,partial_upfront,0.805365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:56.006906 +AWS,ap-northeast-1,c6g.8xlarge,reserved_3y,all_upfront,0.268455,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:30.249436 +AWS,ap-northeast-1,c6g.8xlarge,reserved_3y,no_upfront,0.268455,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:17.549370 +AWS,ap-northeast-1,c6g.8xlarge,reserved_3y,partial_upfront,0.268455,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:07.045446 +AWS,ap-northeast-1,c6g.8xlarge,spot,NA,0.503232,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269928 +AWS,ap-northeast-1,c6g.xlarge,on_demand,NA,0.1712,USD,AWS Pricing API,2025-11-30T09:02:39.162093 +AWS,ap-northeast-1,c6g.xlarge,reserved_1y,all_upfront,0.1079,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:08.404260 +AWS,ap-northeast-1,c6g.xlarge,reserved_1y,no_upfront,0.1079,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:51.759141 +AWS,ap-northeast-1,c6g.xlarge,reserved_1y,partial_upfront,0.1079,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:34.018201 +AWS,ap-northeast-1,c6g.xlarge,reserved_3y,all_upfront,0.1079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:07.587551 +AWS,ap-northeast-1,c6g.xlarge,reserved_3y,no_upfront,0.1079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:56.222100 +AWS,ap-northeast-1,c6g.xlarge,reserved_3y,partial_upfront,0.1079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:44.720948 +AWS,ap-northeast-1,c6g.xlarge,spot,NA,0.074118,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272305 +AWS,ap-northeast-1,c6gd.12xlarge,on_demand,NA,2.352,USD,AWS Pricing API,2025-11-30T09:01:39.204622 +AWS,ap-northeast-1,c6gd.12xlarge,reserved_1y,all_upfront,3.810046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:09.094648 +AWS,ap-northeast-1,c6gd.12xlarge,reserved_1y,no_upfront,3.810046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:51.881017 +AWS,ap-northeast-1,c6gd.12xlarge,reserved_1y,partial_upfront,3.810046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:34.697615 +AWS,ap-northeast-1,c6gd.12xlarge,reserved_3y,all_upfront,1.270015,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:09.257328 +AWS,ap-northeast-1,c6gd.12xlarge,reserved_3y,no_upfront,1.270015,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:55.767017 +AWS,ap-northeast-1,c6gd.12xlarge,reserved_3y,partial_upfront,1.270015,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:45.816460 +AWS,ap-northeast-1,c6gd.12xlarge,spot,NA,0.782636,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269082 +AWS,ap-northeast-1,c6gd.16xlarge,on_demand,NA,3.136,USD,AWS Pricing API,2025-11-30T09:02:17.859696 +AWS,ap-northeast-1,c6gd.16xlarge,reserved_1y,all_upfront,2.496246,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:47.203534 +AWS,ap-northeast-1,c6gd.16xlarge,reserved_1y,no_upfront,2.496246,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:30.528923 +AWS,ap-northeast-1,c6gd.16xlarge,reserved_1y,partial_upfront,2.496246,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:12.802759 +AWS,ap-northeast-1,c6gd.16xlarge,reserved_3y,all_upfront,1.248149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:46.715652 +AWS,ap-northeast-1,c6gd.16xlarge,reserved_3y,no_upfront,1.248149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:34.688383 +AWS,ap-northeast-1,c6gd.16xlarge,reserved_3y,partial_upfront,1.248149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:23.753914 +AWS,ap-northeast-1,c6gd.16xlarge,spot,NA,1.003388,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270663 +AWS,ap-northeast-1,c6gd.2xlarge,on_demand,NA,0.392,USD,AWS Pricing API,2025-11-30T09:02:28.268406 +AWS,ap-northeast-1,c6gd.2xlarge,reserved_1y,all_upfront,0.3192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:57.516989 +AWS,ap-northeast-1,c6gd.2xlarge,reserved_1y,no_upfront,0.3192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:40.883641 +AWS,ap-northeast-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.3192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:23.293414 +AWS,ap-northeast-1,c6gd.2xlarge,reserved_3y,all_upfront,0.3192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:56.898710 +AWS,ap-northeast-1,c6gd.2xlarge,reserved_3y,no_upfront,0.3192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:45.173801 +AWS,ap-northeast-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.3192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:33.961621 +AWS,ap-northeast-1,c6gd.2xlarge,spot,NA,0.12416,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271084 +AWS,ap-northeast-1,c6gd.4xlarge,on_demand,NA,0.784,USD,AWS Pricing API,2025-11-30T09:02:07.563578 +AWS,ap-northeast-1,c6gd.4xlarge,reserved_1y,all_upfront,0.462557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:37.059872 +AWS,ap-northeast-1,c6gd.4xlarge,reserved_1y,no_upfront,0.462557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:20.309871 +AWS,ap-northeast-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.462557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:02.685309 +AWS,ap-northeast-1,c6gd.4xlarge,reserved_3y,all_upfront,0.154186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:36.747439 +AWS,ap-northeast-1,c6gd.4xlarge,reserved_3y,no_upfront,0.154186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:24.316568 +AWS,ap-northeast-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.154186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:13.638556 +AWS,ap-northeast-1,c6gd.4xlarge,spot,NA,0.287858,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270220 +AWS,ap-northeast-1,c6gd.8xlarge,on_demand,NA,1.568,USD,AWS Pricing API,2025-11-30T09:02:36.578760 +AWS,ap-northeast-1,c6gd.8xlarge,reserved_1y,all_upfront,1.2768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:05.833279 +AWS,ap-northeast-1,c6gd.8xlarge,reserved_1y,no_upfront,1.2768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:49.163184 +AWS,ap-northeast-1,c6gd.8xlarge,reserved_1y,partial_upfront,1.2768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:31.472549 +AWS,ap-northeast-1,c6gd.8xlarge,reserved_3y,all_upfront,1.2768,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:05.065889 +AWS,ap-northeast-1,c6gd.8xlarge,reserved_3y,no_upfront,1.2768,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:53.610889 +AWS,ap-northeast-1,c6gd.8xlarge,reserved_3y,partial_upfront,1.2768,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:42.171648 +AWS,ap-northeast-1,c6gd.8xlarge,spot,NA,0.511513,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271367 +AWS,ap-northeast-1,c6gd.xlarge,on_demand,NA,0.196,USD,AWS Pricing API,2025-11-30T09:02:27.572440 +AWS,ap-northeast-1,c6gd.xlarge,reserved_1y,all_upfront,0.115639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:56.838434 +AWS,ap-northeast-1,c6gd.xlarge,reserved_1y,no_upfront,0.115639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:40.207608 +AWS,ap-northeast-1,c6gd.xlarge,reserved_1y,partial_upfront,0.115639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:22.601695 +AWS,ap-northeast-1,c6gd.xlarge,reserved_3y,all_upfront,0.038546,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:56.239518 +AWS,ap-northeast-1,c6gd.xlarge,reserved_3y,no_upfront,0.038546,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:44.483707 +AWS,ap-northeast-1,c6gd.xlarge,reserved_3y,partial_upfront,0.038546,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:33.299523 +AWS,ap-northeast-1,c6gd.xlarge,spot,NA,0.074406,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271078 +AWS,ap-northeast-1,c6i.12xlarge,on_demand,NA,2.568,USD,AWS Pricing API,2025-11-30T09:02:27.436919 +AWS,ap-northeast-1,c6i.12xlarge,reserved_1y,all_upfront,1.69344,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:56.704411 +AWS,ap-northeast-1,c6i.12xlarge,reserved_1y,no_upfront,1.69344,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:40.068298 +AWS,ap-northeast-1,c6i.12xlarge,reserved_1y,partial_upfront,1.69344,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:22.466668 +AWS,ap-northeast-1,c6i.12xlarge,reserved_3y,all_upfront,1.69344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:56.107210 +AWS,ap-northeast-1,c6i.12xlarge,reserved_3y,no_upfront,1.69344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:44.345308 +AWS,ap-northeast-1,c6i.12xlarge,reserved_3y,partial_upfront,1.69344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:33.166682 +AWS,ap-northeast-1,c6i.12xlarge,spot,NA,0.930428,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271059 +AWS,ap-northeast-1,c6i.16xlarge,on_demand,NA,3.424,USD,AWS Pricing API,2025-11-30T09:02:02.025159 +AWS,ap-northeast-1,c6i.16xlarge,reserved_1y,all_upfront,4.852397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:31.648765 +AWS,ap-northeast-1,c6i.16xlarge,reserved_1y,no_upfront,4.852397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:14.785785 +AWS,ap-northeast-1,c6i.16xlarge,reserved_1y,partial_upfront,4.852397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:57.226575 +AWS,ap-northeast-1,c6i.16xlarge,reserved_3y,all_upfront,1.617466,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:31.426421 +AWS,ap-northeast-1,c6i.16xlarge,reserved_3y,no_upfront,1.617466,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:18.789677 +AWS,ap-northeast-1,c6i.16xlarge,reserved_3y,partial_upfront,1.617466,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:08.261908 +AWS,ap-northeast-1,c6i.16xlarge,spot,NA,1.219013,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269956 +AWS,ap-northeast-1,c6i.24xlarge,on_demand,NA,5.136,USD,AWS Pricing API,2025-11-30T09:01:56.630278 +AWS,ap-northeast-1,c6i.24xlarge,reserved_1y,all_upfront,3.161073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:26.413290 +AWS,ap-northeast-1,c6i.24xlarge,reserved_1y,no_upfront,3.161073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:09.427608 +AWS,ap-northeast-1,c6i.24xlarge,reserved_1y,partial_upfront,3.161073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:51.985954 +AWS,ap-northeast-1,c6i.24xlarge,reserved_3y,all_upfront,1.053691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:26.286671 +AWS,ap-northeast-1,c6i.24xlarge,reserved_3y,no_upfront,1.053691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:13.426152 +AWS,ap-northeast-1,c6i.24xlarge,reserved_3y,partial_upfront,1.053691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:03.016475 +AWS,ap-northeast-1,c6i.24xlarge,spot,NA,1.759764,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269741 +AWS,ap-northeast-1,c6i.2xlarge,on_demand,NA,0.428,USD,AWS Pricing API,2025-11-30T09:01:40.440841 +AWS,ap-northeast-1,c6i.2xlarge,reserved_1y,all_upfront,0.303311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:10.336917 +AWS,ap-northeast-1,c6i.2xlarge,reserved_1y,no_upfront,0.303311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:53.103032 +AWS,ap-northeast-1,c6i.2xlarge,reserved_1y,partial_upfront,0.303311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:35.955152 +AWS,ap-northeast-1,c6i.2xlarge,reserved_3y,all_upfront,0.101104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:10.459740 +AWS,ap-northeast-1,c6i.2xlarge,reserved_3y,no_upfront,0.101104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:57.006146 +AWS,ap-northeast-1,c6i.2xlarge,reserved_3y,partial_upfront,0.101104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:47.021003 +AWS,ap-northeast-1,c6i.2xlarge,spot,NA,0.175078,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269162 +AWS,ap-northeast-1,c6i.32xlarge,on_demand,NA,6.848,USD,AWS Pricing API,2025-11-30T09:02:32.216720 +AWS,ap-northeast-1,c6i.32xlarge,reserved_1y,all_upfront,5.779161,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:01.467303 +AWS,ap-northeast-1,c6i.32xlarge,reserved_1y,no_upfront,5.779161,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:44.805751 +AWS,ap-northeast-1,c6i.32xlarge,reserved_1y,partial_upfront,5.779161,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:27.173875 +AWS,ap-northeast-1,c6i.32xlarge,reserved_3y,all_upfront,2.889587,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:00.740171 +AWS,ap-northeast-1,c6i.32xlarge,reserved_3y,no_upfront,2.889587,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:49.181907 +AWS,ap-northeast-1,c6i.32xlarge,reserved_3y,partial_upfront,2.889587,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:37.871342 +AWS,ap-northeast-1,c6i.32xlarge,spot,NA,2.220816,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271213 +AWS,ap-northeast-1,c6i.4xlarge,on_demand,NA,0.856,USD,AWS Pricing API,2025-11-30T09:01:36.486451 +AWS,ap-northeast-1,c6i.4xlarge,reserved_1y,all_upfront,1.213128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:06.320975 +AWS,ap-northeast-1,c6i.4xlarge,reserved_1y,no_upfront,1.213128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:49.167635 +AWS,ap-northeast-1,c6i.4xlarge,reserved_1y,partial_upfront,1.213128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:31.983683 +AWS,ap-northeast-1,c6i.4xlarge,reserved_3y,all_upfront,0.404376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:06.616411 +AWS,ap-northeast-1,c6i.4xlarge,reserved_3y,no_upfront,0.404376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:52.994295 +AWS,ap-northeast-1,c6i.4xlarge,reserved_3y,partial_upfront,0.404376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:43.112851 +AWS,ap-northeast-1,c6i.4xlarge,spot,NA,0.337167,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268996 +AWS,ap-northeast-1,c6i.8xlarge,on_demand,NA,1.712,USD,AWS Pricing API,2025-11-30T09:01:50.230121 +AWS,ap-northeast-1,c6i.8xlarge,reserved_1y,all_upfront,1.053653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:20.057736 +AWS,ap-northeast-1,c6i.8xlarge,reserved_1y,no_upfront,1.053653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:03.015031 +AWS,ap-northeast-1,c6i.8xlarge,reserved_1y,partial_upfront,1.053653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:45.650898 +AWS,ap-northeast-1,c6i.8xlarge,reserved_3y,all_upfront,0.351218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:19.977444 +AWS,ap-northeast-1,c6i.8xlarge,reserved_3y,no_upfront,0.351218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:06.960984 +AWS,ap-northeast-1,c6i.8xlarge,reserved_3y,partial_upfront,0.351218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:56.691613 +AWS,ap-northeast-1,c6i.8xlarge,spot,NA,0.617908,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269491 +AWS,ap-northeast-1,c6i.xlarge,on_demand,NA,0.214,USD,AWS Pricing API,2025-11-30T09:01:54.443750 +AWS,ap-northeast-1,c6i.xlarge,reserved_1y,all_upfront,0.16246,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:24.228856 +AWS,ap-northeast-1,c6i.xlarge,reserved_1y,no_upfront,0.16246,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:07.245725 +AWS,ap-northeast-1,c6i.xlarge,reserved_1y,partial_upfront,0.16246,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:49.839259 +AWS,ap-northeast-1,c6i.xlarge,reserved_3y,all_upfront,0.16246,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:24.132514 +AWS,ap-northeast-1,c6i.xlarge,reserved_3y,no_upfront,0.16246,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:11.233134 +AWS,ap-northeast-1,c6i.xlarge,reserved_3y,partial_upfront,0.16246,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:00.846700 +AWS,ap-northeast-1,c6i.xlarge,spot,NA,0.084619,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269670 +AWS,ap-northeast-1,c6id.12xlarge,on_demand,NA,3.0744,USD,AWS Pricing API,2025-11-30T09:02:23.216272 +AWS,ap-northeast-1,c6id.12xlarge,reserved_1y,all_upfront,2.346119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:52.488194 +AWS,ap-northeast-1,c6id.12xlarge,reserved_1y,no_upfront,2.346119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:35.847768 +AWS,ap-northeast-1,c6id.12xlarge,reserved_1y,partial_upfront,2.346119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:18.200670 +AWS,ap-northeast-1,c6id.12xlarge,reserved_3y,all_upfront,0.78204,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:51.911324 +AWS,ap-northeast-1,c6id.12xlarge,reserved_3y,no_upfront,0.78204,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:40.073337 +AWS,ap-northeast-1,c6id.12xlarge,reserved_3y,partial_upfront,0.78204,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:28.997823 +AWS,ap-northeast-1,c6id.12xlarge,spot,NA,1.043511,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270896 +AWS,ap-northeast-1,c6id.16xlarge,on_demand,NA,4.0992,USD,AWS Pricing API,2025-11-30T09:02:32.760083 +AWS,ap-northeast-1,c6id.16xlarge,reserved_1y,all_upfront,2.57036,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:02.036789 +AWS,ap-northeast-1,c6id.16xlarge,reserved_1y,no_upfront,2.57036,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:45.352251 +AWS,ap-northeast-1,c6id.16xlarge,reserved_1y,partial_upfront,2.57036,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:27.706914 +AWS,ap-northeast-1,c6id.16xlarge,reserved_3y,all_upfront,1.713587,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:01.287108 +AWS,ap-northeast-1,c6id.16xlarge,reserved_3y,no_upfront,1.713587,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:49.739153 +AWS,ap-northeast-1,c6id.16xlarge,reserved_3y,partial_upfront,1.713587,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:38.411000 +AWS,ap-northeast-1,c6id.16xlarge,spot,NA,1.415158,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271274 +AWS,ap-northeast-1,c6id.24xlarge,on_demand,NA,6.1488,USD,AWS Pricing API,2025-11-30T09:01:50.639391 +AWS,ap-northeast-1,c6id.24xlarge,reserved_1y,all_upfront,4.78795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:20.461312 +AWS,ap-northeast-1,c6id.24xlarge,reserved_1y,no_upfront,4.78795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:03.440522 +AWS,ap-northeast-1,c6id.24xlarge,reserved_1y,partial_upfront,4.78795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:46.053828 +AWS,ap-northeast-1,c6id.24xlarge,reserved_3y,all_upfront,3.191983,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:20.377628 +AWS,ap-northeast-1,c6id.24xlarge,reserved_3y,no_upfront,3.191983,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:07.379609 +AWS,ap-northeast-1,c6id.24xlarge,reserved_3y,partial_upfront,3.191983,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:57.091054 +AWS,ap-northeast-1,c6id.24xlarge,spot,NA,1.938742,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269510 +AWS,ap-northeast-1,c6id.2xlarge,on_demand,NA,0.5124,USD,AWS Pricing API,2025-11-30T09:02:43.106639 +AWS,ap-northeast-1,c6id.2xlarge,reserved_1y,all_upfront,0.390982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:12.335879 +AWS,ap-northeast-1,c6id.2xlarge,reserved_1y,no_upfront,0.390982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:55.713627 +AWS,ap-northeast-1,c6id.2xlarge,reserved_1y,partial_upfront,0.390982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:37.982210 +AWS,ap-northeast-1,c6id.2xlarge,reserved_3y,all_upfront,0.130327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:11.411705 +AWS,ap-northeast-1,c6id.2xlarge,reserved_3y,no_upfront,0.130327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:00.205951 +AWS,ap-northeast-1,c6id.2xlarge,reserved_3y,partial_upfront,0.130327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:48.611964 +AWS,ap-northeast-1,c6id.2xlarge,spot,NA,0.241924,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272500 +AWS,ap-northeast-1,c6id.32xlarge,on_demand,NA,8.1984,USD,AWS Pricing API,2025-11-30T09:01:38.528396 +AWS,ap-northeast-1,c6id.32xlarge,reserved_1y,all_upfront,5.140834,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:08.421372 +AWS,ap-northeast-1,c6id.32xlarge,reserved_1y,no_upfront,5.140834,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:51.199900 +AWS,ap-northeast-1,c6id.32xlarge,reserved_1y,partial_upfront,5.140834,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:34.014627 +AWS,ap-northeast-1,c6id.32xlarge,reserved_3y,all_upfront,3.427211,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:08.596032 +AWS,ap-northeast-1,c6id.32xlarge,reserved_3y,no_upfront,3.427211,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:55.064039 +AWS,ap-northeast-1,c6id.32xlarge,reserved_3y,partial_upfront,3.427211,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:45.130876 +AWS,ap-northeast-1,c6id.32xlarge,spot,NA,2.632816,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269088 +AWS,ap-northeast-1,c6id.4xlarge,on_demand,NA,1.0248,USD,AWS Pricing API,2025-11-30T09:01:45.600922 +AWS,ap-northeast-1,c6id.4xlarge,reserved_1y,all_upfront,0.642647,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:15.460230 +AWS,ap-northeast-1,c6id.4xlarge,reserved_1y,no_upfront,0.642647,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:58.326870 +AWS,ap-northeast-1,c6id.4xlarge,reserved_1y,partial_upfront,0.642647,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:41.070084 +AWS,ap-northeast-1,c6id.4xlarge,reserved_3y,all_upfront,0.428416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:15.500192 +AWS,ap-northeast-1,c6id.4xlarge,reserved_3y,no_upfront,0.428416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:02.265480 +AWS,ap-northeast-1,c6id.4xlarge,reserved_3y,partial_upfront,0.428416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:52.122963 +AWS,ap-northeast-1,c6id.4xlarge,spot,NA,0.397217,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269319 +AWS,ap-northeast-1,c6id.8xlarge,on_demand,NA,2.0496,USD,AWS Pricing API,2025-11-30T09:02:19.089444 +AWS,ap-northeast-1,c6id.8xlarge,reserved_1y,all_upfront,2.32363,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:48.426965 +AWS,ap-northeast-1,c6id.8xlarge,reserved_1y,no_upfront,2.32363,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:31.756959 +AWS,ap-northeast-1,c6id.8xlarge,reserved_1y,partial_upfront,2.32363,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:14.028951 +AWS,ap-northeast-1,c6id.8xlarge,reserved_3y,all_upfront,0.774543,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:47.923166 +AWS,ap-northeast-1,c6id.8xlarge,reserved_3y,no_upfront,0.774543,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:35.934043 +AWS,ap-northeast-1,c6id.8xlarge,reserved_3y,partial_upfront,0.774543,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:24.971910 +AWS,ap-northeast-1,c6id.8xlarge,spot,NA,0.790409,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270699 +AWS,ap-northeast-1,c6id.xlarge,on_demand,NA,0.2562,USD,AWS Pricing API,2025-11-30T09:02:37.931055 +AWS,ap-northeast-1,c6id.xlarge,reserved_1y,all_upfront,0.199522,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:07.170036 +AWS,ap-northeast-1,c6id.xlarge,reserved_1y,no_upfront,0.199522,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:50.526533 +AWS,ap-northeast-1,c6id.xlarge,reserved_1y,partial_upfront,0.199522,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:32.806963 +AWS,ap-northeast-1,c6id.xlarge,reserved_3y,all_upfront,0.133007,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:06.390560 +AWS,ap-northeast-1,c6id.xlarge,reserved_3y,no_upfront,0.133007,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:54.974909 +AWS,ap-northeast-1,c6id.xlarge,reserved_3y,partial_upfront,0.133007,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:43.505537 +AWS,ap-northeast-1,c6id.xlarge,spot,NA,0.092112,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271423 +AWS,ap-northeast-1,c6in.12xlarge,on_demand,NA,3.4272,USD,AWS Pricing API,2025-11-30T09:01:43.955373 +AWS,ap-northeast-1,c6in.12xlarge,reserved_1y,all_upfront,4.783105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:13.828383 +AWS,ap-northeast-1,c6in.12xlarge,reserved_1y,no_upfront,4.783105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:56.680883 +AWS,ap-northeast-1,c6in.12xlarge,reserved_1y,partial_upfront,4.783105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:39.440164 +AWS,ap-northeast-1,c6in.12xlarge,reserved_3y,all_upfront,1.594368,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:13.911873 +AWS,ap-northeast-1,c6in.12xlarge,reserved_3y,no_upfront,1.594368,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:00.590877 +AWS,ap-northeast-1,c6in.12xlarge,reserved_3y,partial_upfront,1.594368,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:50.514889 +AWS,ap-northeast-1,c6in.12xlarge,spot,NA,1.269585,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269308 +AWS,ap-northeast-1,c6in.16xlarge,on_demand,NA,4.5696,USD,AWS Pricing API,2025-11-30T09:01:55.397659 +AWS,ap-northeast-1,c6in.16xlarge,reserved_1y,all_upfront,6.377397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:25.193768 +AWS,ap-northeast-1,c6in.16xlarge,reserved_1y,no_upfront,6.377397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:08.196188 +AWS,ap-northeast-1,c6in.16xlarge,reserved_1y,partial_upfront,6.377397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:50.785879 +AWS,ap-northeast-1,c6in.16xlarge,reserved_3y,all_upfront,2.125799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:25.067422 +AWS,ap-northeast-1,c6in.16xlarge,reserved_3y,no_upfront,2.125799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:12.189092 +AWS,ap-northeast-1,c6in.16xlarge,reserved_3y,partial_upfront,2.125799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:01.788352 +AWS,ap-northeast-1,c6in.16xlarge,spot,NA,1.688423,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269651 +AWS,ap-northeast-1,c6in.24xlarge,on_demand,NA,6.8544,USD,AWS Pricing API,2025-11-30T09:02:05.076561 +AWS,ap-northeast-1,c6in.24xlarge,reserved_1y,all_upfront,5.66557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:34.629935 +AWS,ap-northeast-1,c6in.24xlarge,reserved_1y,no_upfront,5.66557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:17.824608 +AWS,ap-northeast-1,c6in.24xlarge,reserved_1y,partial_upfront,5.66557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:00.225717 +AWS,ap-northeast-1,c6in.24xlarge,reserved_3y,all_upfront,5.66557,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:34.355097 +AWS,ap-northeast-1,c6in.24xlarge,reserved_3y,no_upfront,5.66557,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:21.838119 +AWS,ap-northeast-1,c6in.24xlarge,reserved_3y,partial_upfront,5.66557,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:11.216226 +AWS,ap-northeast-1,c6in.24xlarge,spot,NA,2.241094,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270068 +AWS,ap-northeast-1,c6in.2xlarge,on_demand,NA,0.5712,USD,AWS Pricing API,2025-11-30T09:02:08.797388 +AWS,ap-northeast-1,c6in.2xlarge,reserved_1y,all_upfront,0.335845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:38.276314 +AWS,ap-northeast-1,c6in.2xlarge,reserved_1y,no_upfront,0.335845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:21.531134 +AWS,ap-northeast-1,c6in.2xlarge,reserved_1y,partial_upfront,0.335845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:03.905877 +AWS,ap-northeast-1,c6in.2xlarge,reserved_3y,all_upfront,0.111948,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:37.933029 +AWS,ap-northeast-1,c6in.2xlarge,reserved_3y,no_upfront,0.111948,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:25.543070 +AWS,ap-northeast-1,c6in.2xlarge,reserved_3y,partial_upfront,0.111948,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:14.843596 +AWS,ap-northeast-1,c6in.2xlarge,spot,NA,0.237362,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270287 +AWS,ap-northeast-1,c6in.32xlarge,on_demand,NA,9.1392,USD,AWS Pricing API,2025-11-30T09:02:43.242179 +AWS,ap-northeast-1,c6in.32xlarge,reserved_1y,all_upfront,8.676724,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:12.469882 +AWS,ap-northeast-1,c6in.32xlarge,reserved_1y,no_upfront,8.676724,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:55.851457 +AWS,ap-northeast-1,c6in.32xlarge,reserved_1y,partial_upfront,8.676724,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:38.115643 +AWS,ap-northeast-1,c6in.32xlarge,reserved_3y,all_upfront,4.338368,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:11.543469 +AWS,ap-northeast-1,c6in.32xlarge,reserved_3y,no_upfront,4.338368,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:00.345398 +AWS,ap-northeast-1,c6in.32xlarge,reserved_3y,partial_upfront,4.338368,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:48.744851 +AWS,ap-northeast-1,c6in.32xlarge,spot,NA,2.869872,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272506 +AWS,ap-northeast-1,c6in.4xlarge,on_demand,NA,1.1424,USD,AWS Pricing API,2025-11-30T09:01:43.001799 +AWS,ap-northeast-1,c6in.4xlarge,reserved_1y,all_upfront,0.899308,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:12.884879 +AWS,ap-northeast-1,c6in.4xlarge,reserved_1y,no_upfront,0.899308,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:55.676133 +AWS,ap-northeast-1,c6in.4xlarge,reserved_1y,partial_upfront,0.899308,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:38.501724 +AWS,ap-northeast-1,c6in.4xlarge,reserved_3y,all_upfront,0.599536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:12.982704 +AWS,ap-northeast-1,c6in.4xlarge,reserved_3y,no_upfront,0.599536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:59.615474 +AWS,ap-northeast-1,c6in.4xlarge,reserved_3y,partial_upfront,0.599536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:49.569357 +AWS,ap-northeast-1,c6in.4xlarge,spot,NA,0.474629,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269238 +AWS,ap-northeast-1,c6in.8xlarge,on_demand,NA,2.2848,USD,AWS Pricing API,2025-11-30T09:02:13.361090 +AWS,ap-northeast-1,c6in.8xlarge,reserved_1y,all_upfront,1.343493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:42.738574 +AWS,ap-northeast-1,c6in.8xlarge,reserved_1y,no_upfront,1.343493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:26.042246 +AWS,ap-northeast-1,c6in.8xlarge,reserved_1y,partial_upfront,1.343493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:08.358746 +AWS,ap-northeast-1,c6in.8xlarge,reserved_3y,all_upfront,0.447831,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:42.311912 +AWS,ap-northeast-1,c6in.8xlarge,reserved_3y,no_upfront,0.447831,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:30.125581 +AWS,ap-northeast-1,c6in.8xlarge,reserved_3y,partial_upfront,0.447831,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:19.330913 +AWS,ap-northeast-1,c6in.8xlarge,spot,NA,0.808828,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270473 +AWS,ap-northeast-1,c6in.xlarge,on_demand,NA,0.2856,USD,AWS Pricing API,2025-11-30T09:02:00.913049 +AWS,ap-northeast-1,c6in.xlarge,reserved_1y,all_upfront,0.23607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:30.579294 +AWS,ap-northeast-1,c6in.xlarge,reserved_1y,no_upfront,0.23607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:13.670341 +AWS,ap-northeast-1,c6in.xlarge,reserved_1y,partial_upfront,0.23607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:56.139851 +AWS,ap-northeast-1,c6in.xlarge,reserved_3y,all_upfront,0.23607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:30.379666 +AWS,ap-northeast-1,c6in.xlarge,reserved_3y,no_upfront,0.23607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:17.698252 +AWS,ap-northeast-1,c6in.xlarge,reserved_3y,partial_upfront,0.23607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:07.179187 +AWS,ap-northeast-1,c6in.xlarge,spot,NA,0.115415,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269894 +AWS,ap-northeast-1,c7a.12xlarge,on_demand,NA,3.1008,USD,AWS Pricing API,2025-11-30T09:02:28.406866 +AWS,ap-northeast-1,c7a.12xlarge,reserved_1y,all_upfront,2.354,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:57.650303 +AWS,ap-northeast-1,c7a.12xlarge,reserved_1y,no_upfront,2.354,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:41.023517 +AWS,ap-northeast-1,c7a.12xlarge,reserved_1y,partial_upfront,2.354,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:23.427179 +AWS,ap-northeast-1,c7a.12xlarge,reserved_3y,all_upfront,2.354,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:57.029257 +AWS,ap-northeast-1,c7a.12xlarge,reserved_3y,no_upfront,2.354,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:45.309721 +AWS,ap-northeast-1,c7a.12xlarge,reserved_3y,partial_upfront,2.354,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:34.098022 +AWS,ap-northeast-1,c7a.12xlarge,spot,NA,1.326224,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271040 +AWS,ap-northeast-1,c7a.16xlarge,on_demand,NA,4.1344,USD,AWS Pricing API,2025-11-30T09:01:58.684047 +AWS,ap-northeast-1,c7a.16xlarge,reserved_1y,all_upfront,2.989245,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:28.428331 +AWS,ap-northeast-1,c7a.16xlarge,reserved_1y,no_upfront,2.989245,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:11.485531 +AWS,ap-northeast-1,c7a.16xlarge,reserved_1y,partial_upfront,2.989245,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:53.986386 +AWS,ap-northeast-1,c7a.16xlarge,reserved_3y,all_upfront,1.992822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:28.276075 +AWS,ap-northeast-1,c7a.16xlarge,reserved_3y,no_upfront,1.992822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:15.481501 +AWS,ap-northeast-1,c7a.16xlarge,reserved_3y,partial_upfront,1.992822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:05.032561 +AWS,ap-northeast-1,c7a.16xlarge,spot,NA,1.580177,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269858 +AWS,ap-northeast-1,c7a.24xlarge,on_demand,NA,6.2016,USD,AWS Pricing API,2025-11-30T09:02:38.479687 +AWS,ap-northeast-1,c7a.24xlarge,reserved_1y,all_upfront,4.70801,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:07.722282 +AWS,ap-northeast-1,c7a.24xlarge,reserved_1y,no_upfront,4.70801,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:51.077164 +AWS,ap-northeast-1,c7a.24xlarge,reserved_1y,partial_upfront,4.70801,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:33.343155 +AWS,ap-northeast-1,c7a.24xlarge,reserved_3y,all_upfront,4.70801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:06.923759 +AWS,ap-northeast-1,c7a.24xlarge,reserved_3y,no_upfront,4.70801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:55.522416 +AWS,ap-northeast-1,c7a.24xlarge,reserved_3y,partial_upfront,4.70801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:44.051692 +AWS,ap-northeast-1,c7a.24xlarge,spot,NA,2.189934,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272280 +AWS,ap-northeast-1,c7a.2xlarge,on_demand,NA,0.5168,USD,AWS Pricing API,2025-11-30T09:01:39.892637 +AWS,ap-northeast-1,c7a.2xlarge,reserved_1y,all_upfront,0.373702,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:09.776507 +AWS,ap-northeast-1,c7a.2xlarge,reserved_1y,no_upfront,0.373702,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:52.561060 +AWS,ap-northeast-1,c7a.2xlarge,reserved_1y,partial_upfront,0.373702,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:35.421827 +AWS,ap-northeast-1,c7a.2xlarge,reserved_3y,all_upfront,0.249121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:09.922265 +AWS,ap-northeast-1,c7a.2xlarge,reserved_3y,no_upfront,0.249121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:56.456523 +AWS,ap-northeast-1,c7a.2xlarge,reserved_3y,partial_upfront,0.249121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:46.490443 +AWS,ap-northeast-1,c7a.2xlarge,spot,NA,0.252819,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269130 +AWS,ap-northeast-1,c7a.32xlarge,on_demand,NA,8.2688,USD,AWS Pricing API,2025-11-30T09:02:14.989623 +AWS,ap-northeast-1,c7a.32xlarge,reserved_1y,all_upfront,4.30467,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:44.364994 +AWS,ap-northeast-1,c7a.32xlarge,reserved_1y,no_upfront,4.30467,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:27.678199 +AWS,ap-northeast-1,c7a.32xlarge,reserved_1y,partial_upfront,4.30467,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:09.982024 +AWS,ap-northeast-1,c7a.32xlarge,reserved_3y,all_upfront,4.30467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:43.906188 +AWS,ap-northeast-1,c7a.32xlarge,reserved_3y,no_upfront,4.30467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:31.786628 +AWS,ap-northeast-1,c7a.32xlarge,reserved_3y,partial_upfront,4.30467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:20.931503 +AWS,ap-northeast-1,c7a.32xlarge,spot,NA,2.747684,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270559 +AWS,ap-northeast-1,c7a.48xlarge,on_demand,NA,12.4032,USD,AWS Pricing API,2025-11-30T09:01:34.424799 +AWS,ap-northeast-1,c7a.48xlarge,reserved_1y,all_upfront,7.633904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:04.273491 +AWS,ap-northeast-1,c7a.48xlarge,reserved_1y,no_upfront,7.633904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:47.115613 +AWS,ap-northeast-1,c7a.48xlarge,reserved_1y,partial_upfront,7.633904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:29.955370 +AWS,ap-northeast-1,c7a.48xlarge,reserved_3y,all_upfront,2.544635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:04.609471 +AWS,ap-northeast-1,c7a.48xlarge,reserved_3y,no_upfront,2.544635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:50.926395 +AWS,ap-northeast-1,c7a.48xlarge,reserved_3y,partial_upfront,2.544635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:41.108029 +AWS,ap-northeast-1,c7a.48xlarge,spot,NA,3.951473,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268930 +AWS,ap-northeast-1,c7a.4xlarge,on_demand,NA,1.0336,USD,AWS Pricing API,2025-11-30T09:02:16.075237 +AWS,ap-northeast-1,c7a.4xlarge,reserved_1y,all_upfront,0.74728,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:45.447071 +AWS,ap-northeast-1,c7a.4xlarge,reserved_1y,no_upfront,0.74728,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:28.764533 +AWS,ap-northeast-1,c7a.4xlarge,reserved_1y,partial_upfront,0.74728,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:11.050835 +AWS,ap-northeast-1,c7a.4xlarge,reserved_3y,all_upfront,0.498193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:44.975470 +AWS,ap-northeast-1,c7a.4xlarge,reserved_3y,no_upfront,0.498193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:32.880762 +AWS,ap-northeast-1,c7a.4xlarge,reserved_3y,partial_upfront,0.498193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:22.005262 +AWS,ap-northeast-1,c7a.4xlarge,spot,NA,0.462505,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270529 +AWS,ap-northeast-1,c7a.8xlarge,on_demand,NA,2.0672,USD,AWS Pricing API,2025-11-30T09:01:31.832809 +AWS,ap-northeast-1,c7a.8xlarge,reserved_1y,all_upfront,1.298227,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:01.694508 +AWS,ap-northeast-1,c7a.8xlarge,reserved_1y,no_upfront,1.298227,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:44.531340 +AWS,ap-northeast-1,c7a.8xlarge,reserved_1y,partial_upfront,1.298227,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:27.393108 +AWS,ap-northeast-1,c7a.8xlarge,reserved_3y,all_upfront,0.865502,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:02.085203 +AWS,ap-northeast-1,c7a.8xlarge,reserved_3y,no_upfront,0.865502,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:48.324379 +AWS,ap-northeast-1,c7a.8xlarge,reserved_3y,partial_upfront,0.865502,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:38.542415 +AWS,ap-northeast-1,c7a.8xlarge,spot,NA,0.863071,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268785 +AWS,ap-northeast-1,c7a.xlarge,on_demand,NA,0.2584,USD,AWS Pricing API,2025-11-30T09:02:07.019243 +AWS,ap-northeast-1,c7a.xlarge,reserved_1y,all_upfront,0.162304,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:36.525591 +AWS,ap-northeast-1,c7a.xlarge,reserved_1y,no_upfront,0.162304,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:19.766956 +AWS,ap-northeast-1,c7a.xlarge,reserved_1y,partial_upfront,0.162304,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:02.141179 +AWS,ap-northeast-1,c7a.xlarge,reserved_3y,all_upfront,0.108195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:36.216330 +AWS,ap-northeast-1,c7a.xlarge,reserved_3y,no_upfront,0.108195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:23.770335 +AWS,ap-northeast-1,c7a.xlarge,reserved_3y,partial_upfront,0.108195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:13.098002 +AWS,ap-northeast-1,c7a.xlarge,spot,NA,0.103727,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270226 +AWS,ap-northeast-1,c7g.12xlarge,on_demand,NA,2.183,USD,AWS Pricing API,2025-11-30T09:02:11.143876 +AWS,ap-northeast-1,c7g.12xlarge,reserved_1y,all_upfront,1.6573,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:40.563982 +AWS,ap-northeast-1,c7g.12xlarge,reserved_1y,no_upfront,1.6573,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:23.850826 +AWS,ap-northeast-1,c7g.12xlarge,reserved_1y,partial_upfront,1.6573,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:06.200326 +AWS,ap-northeast-1,c7g.12xlarge,reserved_3y,all_upfront,1.6573,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:40.179434 +AWS,ap-northeast-1,c7g.12xlarge,reserved_3y,no_upfront,1.6573,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:27.890229 +AWS,ap-northeast-1,c7g.12xlarge,reserved_3y,partial_upfront,1.6573,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:17.157130 +AWS,ap-northeast-1,c7g.12xlarge,spot,NA,0.911113,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270376 +AWS,ap-northeast-1,c7g.16xlarge,on_demand,NA,2.9107,USD,AWS Pricing API,2025-11-30T09:02:20.864778 +AWS,ap-northeast-1,c7g.16xlarge,reserved_1y,all_upfront,1.791324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:50.193642 +AWS,ap-northeast-1,c7g.16xlarge,reserved_1y,no_upfront,1.791324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:33.524637 +AWS,ap-northeast-1,c7g.16xlarge,reserved_1y,partial_upfront,1.791324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:15.819912 +AWS,ap-northeast-1,c7g.16xlarge,reserved_3y,all_upfront,0.597108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:49.641290 +AWS,ap-northeast-1,c7g.16xlarge,reserved_3y,no_upfront,0.597108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:37.718456 +AWS,ap-northeast-1,c7g.16xlarge,reserved_3y,partial_upfront,0.597108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:26.701985 +AWS,ap-northeast-1,c7g.16xlarge,spot,NA,1.078,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270796 +AWS,ap-northeast-1,c7g.2xlarge,on_demand,NA,0.3638,USD,AWS Pricing API,2025-11-30T09:02:39.711710 +AWS,ap-northeast-1,c7g.2xlarge,reserved_1y,all_upfront,0.223973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:08.944372 +AWS,ap-northeast-1,c7g.2xlarge,reserved_1y,no_upfront,0.223973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:52.302534 +AWS,ap-northeast-1,c7g.2xlarge,reserved_1y,partial_upfront,0.223973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:34.554296 +AWS,ap-northeast-1,c7g.2xlarge,reserved_3y,all_upfront,0.074658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:08.115995 +AWS,ap-northeast-1,c7g.2xlarge,reserved_3y,no_upfront,0.074658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:56.774616 +AWS,ap-northeast-1,c7g.2xlarge,reserved_3y,partial_upfront,0.074658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:45.257472 +AWS,ap-northeast-1,c7g.2xlarge,spot,NA,0.163104,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272354 +AWS,ap-northeast-1,c7g.4xlarge,on_demand,NA,0.7277,USD,AWS Pricing API,2025-11-30T09:01:56.083795 +AWS,ap-northeast-1,c7g.4xlarge,reserved_1y,all_upfront,1.031393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:25.870520 +AWS,ap-northeast-1,c7g.4xlarge,reserved_1y,no_upfront,1.031393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:08.884686 +AWS,ap-northeast-1,c7g.4xlarge,reserved_1y,partial_upfront,1.031393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:51.457578 +AWS,ap-northeast-1,c7g.4xlarge,reserved_3y,all_upfront,0.343798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:25.746005 +AWS,ap-northeast-1,c7g.4xlarge,reserved_3y,no_upfront,0.343798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:12.876761 +AWS,ap-northeast-1,c7g.4xlarge,reserved_3y,partial_upfront,0.343798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:02.478807 +AWS,ap-northeast-1,c7g.4xlarge,spot,NA,0.301665,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269747 +AWS,ap-northeast-1,c7g.8xlarge,on_demand,NA,1.4554,USD,AWS Pricing API,2025-11-30T09:02:07.292128 +AWS,ap-northeast-1,c7g.8xlarge,reserved_1y,all_upfront,0.895662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:36.791190 +AWS,ap-northeast-1,c7g.8xlarge,reserved_1y,no_upfront,0.895662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:20.037704 +AWS,ap-northeast-1,c7g.8xlarge,reserved_1y,partial_upfront,0.895662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:02.412722 +AWS,ap-northeast-1,c7g.8xlarge,reserved_3y,all_upfront,0.298554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:36.484813 +AWS,ap-northeast-1,c7g.8xlarge,reserved_3y,no_upfront,0.298554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:24.043058 +AWS,ap-northeast-1,c7g.8xlarge,reserved_3y,partial_upfront,0.298554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:13.367492 +AWS,ap-northeast-1,c7g.8xlarge,spot,NA,0.552266,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270244 +AWS,ap-northeast-1,c7g.xlarge,on_demand,NA,0.1819,USD,AWS Pricing API,2025-11-30T09:01:54.169830 +AWS,ap-northeast-1,c7g.xlarge,reserved_1y,all_upfront,0.0829,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:23.959927 +AWS,ap-northeast-1,c7g.xlarge,reserved_1y,no_upfront,0.0829,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:06.974304 +AWS,ap-northeast-1,c7g.xlarge,reserved_1y,partial_upfront,0.0829,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:49.569029 +AWS,ap-northeast-1,c7g.xlarge,reserved_3y,all_upfront,0.0829,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:23.869473 +AWS,ap-northeast-1,c7g.xlarge,reserved_3y,no_upfront,0.0829,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:10.955249 +AWS,ap-northeast-1,c7g.xlarge,reserved_3y,partial_upfront,0.0829,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:00.573782 +AWS,ap-northeast-1,c7g.xlarge,spot,NA,0.089679,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269633 +AWS,ap-northeast-1,c7gd.12xlarge,on_demand,NA,2.7672,USD,AWS Pricing API,2025-11-30T09:02:05.226688 +AWS,ap-northeast-1,c7gd.12xlarge,reserved_1y,all_upfront,1.700342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:34.762354 +AWS,ap-northeast-1,c7gd.12xlarge,reserved_1y,no_upfront,1.700342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:17.960198 +AWS,ap-northeast-1,c7gd.12xlarge,reserved_1y,partial_upfront,1.700342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:00.360863 +AWS,ap-northeast-1,c7gd.12xlarge,reserved_3y,all_upfront,0.566781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:34.485565 +AWS,ap-northeast-1,c7gd.12xlarge,reserved_3y,no_upfront,0.566781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:21.976003 +AWS,ap-northeast-1,c7gd.12xlarge,reserved_3y,partial_upfront,0.566781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:11.349294 +AWS,ap-northeast-1,c7gd.12xlarge,spot,NA,1.050905,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270116 +AWS,ap-northeast-1,c7gd.16xlarge,on_demand,NA,3.6896,USD,AWS Pricing API,2025-11-30T09:01:51.040120 +AWS,ap-northeast-1,c7gd.16xlarge,reserved_1y,all_upfront,2.4291,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:20.858022 +AWS,ap-northeast-1,c7gd.16xlarge,reserved_1y,no_upfront,2.4291,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:03.850803 +AWS,ap-northeast-1,c7gd.16xlarge,reserved_1y,partial_upfront,2.4291,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:46.454811 +AWS,ap-northeast-1,c7gd.16xlarge,reserved_3y,all_upfront,2.4291,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:20.771388 +AWS,ap-northeast-1,c7gd.16xlarge,reserved_3y,no_upfront,2.4291,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:07.789555 +AWS,ap-northeast-1,c7gd.16xlarge,reserved_3y,partial_upfront,2.4291,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:57.486743 +AWS,ap-northeast-1,c7gd.16xlarge,spot,NA,1.219904,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269523 +AWS,ap-northeast-1,c7gd.2xlarge,on_demand,NA,0.4612,USD,AWS Pricing API,2025-11-30T09:02:20.727100 +AWS,ap-northeast-1,c7gd.2xlarge,reserved_1y,all_upfront,0.351941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:50.061163 +AWS,ap-northeast-1,c7gd.2xlarge,reserved_1y,no_upfront,0.351941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:33.388571 +AWS,ap-northeast-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.351941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:15.686286 +AWS,ap-northeast-1,c7gd.2xlarge,reserved_3y,all_upfront,0.117314,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:49.510695 +AWS,ap-northeast-1,c7gd.2xlarge,reserved_3y,no_upfront,0.117314,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:37.578510 +AWS,ap-northeast-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.117314,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:26.569542 +AWS,ap-northeast-1,c7gd.2xlarge,spot,NA,0.170784,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270783 +AWS,ap-northeast-1,c7gd.4xlarge,on_demand,NA,0.9224,USD,AWS Pricing API,2025-11-30T09:02:07.977931 +AWS,ap-northeast-1,c7gd.4xlarge,reserved_1y,all_upfront,0.703881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:37.465427 +AWS,ap-northeast-1,c7gd.4xlarge,reserved_1y,no_upfront,0.703881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:20.716450 +AWS,ap-northeast-1,c7gd.4xlarge,reserved_1y,partial_upfront,0.703881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:03.089046 +AWS,ap-northeast-1,c7gd.4xlarge,reserved_3y,all_upfront,0.234627,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:37.142439 +AWS,ap-northeast-1,c7gd.4xlarge,reserved_3y,no_upfront,0.234627,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:24.728324 +AWS,ap-northeast-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.234627,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:14.040584 +AWS,ap-northeast-1,c7gd.4xlarge,spot,NA,0.357079,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270202 +AWS,ap-northeast-1,c7gd.8xlarge,on_demand,NA,1.8448,USD,AWS Pricing API,2025-11-30T09:01:59.359585 +AWS,ap-northeast-1,c7gd.8xlarge,reserved_1y,all_upfront,1.483243,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:29.098483 +AWS,ap-northeast-1,c7gd.8xlarge,reserved_1y,no_upfront,1.483243,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:12.169083 +AWS,ap-northeast-1,c7gd.8xlarge,reserved_1y,partial_upfront,1.483243,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:54.662624 +AWS,ap-northeast-1,c7gd.8xlarge,reserved_3y,all_upfront,0.741614,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:28.931810 +AWS,ap-northeast-1,c7gd.8xlarge,reserved_3y,no_upfront,0.741614,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:16.177382 +AWS,ap-northeast-1,c7gd.8xlarge,reserved_3y,partial_upfront,0.741614,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:05.705962 +AWS,ap-northeast-1,c7gd.8xlarge,spot,NA,0.671965,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269828 +AWS,ap-northeast-1,c7gd.xlarge,on_demand,NA,0.2306,USD,AWS Pricing API,2025-11-30T09:02:39.020255 +AWS,ap-northeast-1,c7gd.xlarge,reserved_1y,all_upfront,0.141667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:08.269102 +AWS,ap-northeast-1,c7gd.xlarge,reserved_1y,no_upfront,0.141667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:51.623735 +AWS,ap-northeast-1,c7gd.xlarge,reserved_1y,partial_upfront,0.141667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:33.883965 +AWS,ap-northeast-1,c7gd.xlarge,reserved_3y,all_upfront,0.047222,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:07.455565 +AWS,ap-northeast-1,c7gd.xlarge,reserved_3y,no_upfront,0.047222,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:56.085128 +AWS,ap-northeast-1,c7gd.xlarge,reserved_3y,partial_upfront,0.047222,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:44.584539 +AWS,ap-northeast-1,c7gd.xlarge,spot,NA,0.089176,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272323 +AWS,ap-northeast-1,c7i.12xlarge,on_demand,NA,2.6964,USD,AWS Pricing API,2025-11-30T09:01:59.632212 +AWS,ap-northeast-1,c7i.12xlarge,reserved_1y,all_upfront,1.77812,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:29.367097 +AWS,ap-northeast-1,c7i.12xlarge,reserved_1y,no_upfront,1.77812,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:12.437617 +AWS,ap-northeast-1,c7i.12xlarge,reserved_1y,partial_upfront,1.77812,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:54.932607 +AWS,ap-northeast-1,c7i.12xlarge,reserved_3y,all_upfront,1.77812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:29.195619 +AWS,ap-northeast-1,c7i.12xlarge,reserved_3y,no_upfront,1.77812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:16.451342 +AWS,ap-northeast-1,c7i.12xlarge,reserved_3y,partial_upfront,1.77812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:05.973568 +AWS,ap-northeast-1,c7i.12xlarge,spot,NA,0.996592,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269870 +AWS,ap-northeast-1,c7i.16xlarge,on_demand,NA,3.5952,USD,AWS Pricing API,2025-11-30T09:02:37.250396 +AWS,ap-northeast-1,c7i.16xlarge,reserved_1y,all_upfront,2.212785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:06.502551 +AWS,ap-northeast-1,c7i.16xlarge,reserved_1y,no_upfront,2.212785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:49.845196 +AWS,ap-northeast-1,c7i.16xlarge,reserved_1y,partial_upfront,2.212785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:32.140357 +AWS,ap-northeast-1,c7i.16xlarge,reserved_3y,all_upfront,0.737595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:05.724212 +AWS,ap-northeast-1,c7i.16xlarge,reserved_3y,no_upfront,0.737595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:54.289963 +AWS,ap-northeast-1,c7i.16xlarge,reserved_3y,partial_upfront,0.737595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:42.843268 +AWS,ap-northeast-1,c7i.16xlarge,spot,NA,1.400134,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272255 +AWS,ap-northeast-1,c7i.24xlarge,on_demand,NA,5.3928,USD,AWS Pricing API,2025-11-30T09:02:10.737701 +AWS,ap-northeast-1,c7i.24xlarge,reserved_1y,all_upfront,4.551126,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:40.160228 +AWS,ap-northeast-1,c7i.24xlarge,reserved_1y,no_upfront,4.551126,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:23.447385 +AWS,ap-northeast-1,c7i.24xlarge,reserved_1y,partial_upfront,4.551126,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:05.796802 +AWS,ap-northeast-1,c7i.24xlarge,reserved_3y,all_upfront,2.275555,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:39.782190 +AWS,ap-northeast-1,c7i.24xlarge,reserved_3y,no_upfront,2.275555,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:27.474203 +AWS,ap-northeast-1,c7i.24xlarge,reserved_3y,partial_upfront,2.275555,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:16.746790 +AWS,ap-northeast-1,c7i.24xlarge,spot,NA,1.931963,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270351 +AWS,ap-northeast-1,c7i.2xlarge,on_demand,NA,0.4494,USD,AWS Pricing API,2025-11-30T09:02:25.549064 +AWS,ap-northeast-1,c7i.2xlarge,reserved_1y,all_upfront,0.636872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:54.774042 +AWS,ap-northeast-1,c7i.2xlarge,reserved_1y,no_upfront,0.636872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:38.170892 +AWS,ap-northeast-1,c7i.2xlarge,reserved_1y,partial_upfront,0.636872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:20.490190 +AWS,ap-northeast-1,c7i.2xlarge,reserved_3y,all_upfront,0.212291,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:54.256600 +AWS,ap-northeast-1,c7i.2xlarge,reserved_3y,no_upfront,0.212291,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:42.418753 +AWS,ap-northeast-1,c7i.2xlarge,reserved_3y,partial_upfront,0.212291,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:31.285578 +AWS,ap-northeast-1,c7i.2xlarge,spot,NA,0.199646,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270956 +AWS,ap-northeast-1,c7i.48xlarge,on_demand,NA,10.7856,USD,AWS Pricing API,2025-11-30T09:01:53.079546 +AWS,ap-northeast-1,c7i.48xlarge,reserved_1y,all_upfront,7.798137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:22.877589 +AWS,ap-northeast-1,c7i.48xlarge,reserved_1y,no_upfront,7.798137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:05.882651 +AWS,ap-northeast-1,c7i.48xlarge,reserved_1y,partial_upfront,7.798137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:48.477431 +AWS,ap-northeast-1,c7i.48xlarge,reserved_3y,all_upfront,5.198746,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:22.807932 +AWS,ap-northeast-1,c7i.48xlarge,reserved_3y,no_upfront,5.198746,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:09.850157 +AWS,ap-northeast-1,c7i.48xlarge,reserved_3y,partial_upfront,5.198746,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:59.498717 +AWS,ap-northeast-1,c7i.48xlarge,spot,NA,3.780676,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269621 +AWS,ap-northeast-1,c7i.4xlarge,on_demand,NA,0.8988,USD,AWS Pricing API,2025-11-30T09:02:06.339942 +AWS,ap-northeast-1,c7i.4xlarge,reserved_1y,all_upfront,0.758466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:35.850916 +AWS,ap-northeast-1,c7i.4xlarge,reserved_1y,no_upfront,0.758466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:19.078690 +AWS,ap-northeast-1,c7i.4xlarge,reserved_1y,partial_upfront,0.758466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:01.433337 +AWS,ap-northeast-1,c7i.4xlarge,reserved_3y,all_upfront,0.379242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:35.556732 +AWS,ap-northeast-1,c7i.4xlarge,reserved_3y,no_upfront,0.379242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:23.088264 +AWS,ap-northeast-1,c7i.4xlarge,reserved_3y,partial_upfront,0.379242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:12.431528 +AWS,ap-northeast-1,c7i.4xlarge,spot,NA,0.374395,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270141 +AWS,ap-northeast-1,c7i.8xlarge,on_demand,NA,1.7976,USD,AWS Pricing API,2025-11-30T09:01:37.985492 +AWS,ap-northeast-1,c7i.8xlarge,reserved_1y,all_upfront,1.36467,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:07.879270 +AWS,ap-northeast-1,c7i.8xlarge,reserved_1y,no_upfront,1.36467,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:50.658483 +AWS,ap-northeast-1,c7i.8xlarge,reserved_1y,partial_upfront,1.36467,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:33.476587 +AWS,ap-northeast-1,c7i.8xlarge,reserved_3y,all_upfront,1.36467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:08.069655 +AWS,ap-northeast-1,c7i.8xlarge,reserved_3y,no_upfront,1.36467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:54.514326 +AWS,ap-northeast-1,c7i.8xlarge,reserved_3y,partial_upfront,1.36467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:44.592358 +AWS,ap-northeast-1,c7i.8xlarge,spot,NA,0.684641,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269101 +AWS,ap-northeast-1,c7i.large,on_demand,NA,0.11235,USD,AWS Pricing API,2025-11-30T09:02:24.999221 +AWS,ap-northeast-1,c7i.large,reserved_1y,all_upfront,0.159247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:54.237378 +AWS,ap-northeast-1,c7i.large,reserved_1y,no_upfront,0.159247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:37.626205 +AWS,ap-northeast-1,c7i.large,reserved_1y,partial_upfront,0.159247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:19.951761 +AWS,ap-northeast-1,c7i.large,reserved_3y,all_upfront,0.053082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:53.717743 +AWS,ap-northeast-1,c7i.large,reserved_3y,no_upfront,0.053082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:41.859247 +AWS,ap-northeast-1,c7i.large,reserved_3y,partial_upfront,0.053082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:30.739184 +AWS,ap-northeast-1,c7i.large,spot,NA,0.041327,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270991 +AWS,ap-northeast-1,c7i.metal-24xl,on_demand,NA,5.3928,USD,AWS Pricing API,2025-11-30T09:01:53.894431 +AWS,ap-northeast-1,c7i.metal-24xl,reserved_1y,all_upfront,3.821119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:23.684823 +AWS,ap-northeast-1,c7i.metal-24xl,reserved_1y,no_upfront,3.821119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:06.699716 +AWS,ap-northeast-1,c7i.metal-24xl,reserved_1y,partial_upfront,3.821119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:49.290746 +AWS,ap-northeast-1,c7i.metal-24xl,reserved_3y,all_upfront,1.273706,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:23.606200 +AWS,ap-northeast-1,c7i.metal-24xl,reserved_3y,no_upfront,1.273706,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:10.681368 +AWS,ap-northeast-1,c7i.metal-24xl,reserved_3y,partial_upfront,1.273706,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:00.296184 +AWS,ap-northeast-1,c7i.metal-24xl,spot,NA,1.868671,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269627 +AWS,ap-northeast-1,c7i.metal-48xl,on_demand,NA,10.7856,USD,AWS Pricing API,2025-11-30T09:01:42.063764 +AWS,ap-northeast-1,c7i.metal-48xl,reserved_1y,all_upfront,9.102148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:11.944731 +AWS,ap-northeast-1,c7i.metal-48xl,reserved_1y,no_upfront,9.102148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:54.724274 +AWS,ap-northeast-1,c7i.metal-48xl,reserved_1y,partial_upfront,9.102148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:37.566207 +AWS,ap-northeast-1,c7i.metal-48xl,reserved_3y,all_upfront,4.551083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:12.052880 +AWS,ap-northeast-1,c7i.metal-48xl,reserved_3y,no_upfront,4.551083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:58.658739 +AWS,ap-northeast-1,c7i.metal-48xl,reserved_3y,partial_upfront,4.551083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:48.638720 +AWS,ap-northeast-1,c7i.metal-48xl,spot,NA,3.403573,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269255 +AWS,ap-northeast-1,c7i.xlarge,on_demand,NA,0.2247,USD,AWS Pricing API,2025-11-30T09:02:36.307791 +AWS,ap-northeast-1,c7i.xlarge,reserved_1y,all_upfront,0.1024,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:05.563999 +AWS,ap-northeast-1,c7i.xlarge,reserved_1y,no_upfront,0.1024,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:48.887851 +AWS,ap-northeast-1,c7i.xlarge,reserved_1y,partial_upfront,0.1024,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:31.206408 +AWS,ap-northeast-1,c7i.xlarge,reserved_3y,all_upfront,0.1024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:04.802179 +AWS,ap-northeast-1,c7i.xlarge,reserved_3y,no_upfront,0.1024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:53.336211 +AWS,ap-northeast-1,c7i.xlarge,reserved_3y,partial_upfront,0.1024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:41.904769 +AWS,ap-northeast-1,c7i.xlarge,spot,NA,0.082726,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271379 +AWS,ap-northeast-1,c8g.12xlarge,on_demand,NA,2.40144,USD,AWS Pricing API,2025-11-30T09:02:33.840647 +AWS,ap-northeast-1,c8g.12xlarge,reserved_1y,all_upfront,2.857763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:03.129836 +AWS,ap-northeast-1,c8g.12xlarge,reserved_1y,no_upfront,2.857763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:46.443368 +AWS,ap-northeast-1,c8g.12xlarge,reserved_1y,partial_upfront,2.857763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:28.776835 +AWS,ap-northeast-1,c8g.12xlarge,reserved_3y,all_upfront,0.952588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:02.389370 +AWS,ap-northeast-1,c8g.12xlarge,reserved_3y,no_upfront,0.952588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:50.844661 +AWS,ap-northeast-1,c8g.12xlarge,reserved_3y,partial_upfront,0.952588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:39.492897 +AWS,ap-northeast-1,c8g.12xlarge,spot,NA,1.065142,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271261 +AWS,ap-northeast-1,c8g.16xlarge,on_demand,NA,3.20192,USD,AWS Pricing API,2025-11-30T09:01:36.898200 +AWS,ap-northeast-1,c8g.16xlarge,reserved_1y,all_upfront,1.970548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:06.791200 +AWS,ap-northeast-1,c8g.16xlarge,reserved_1y,no_upfront,1.970548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:49.575904 +AWS,ap-northeast-1,c8g.16xlarge,reserved_1y,partial_upfront,1.970548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:32.384586 +AWS,ap-northeast-1,c8g.16xlarge,reserved_3y,all_upfront,0.656849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:07.007726 +AWS,ap-northeast-1,c8g.16xlarge,reserved_3y,no_upfront,0.656849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:53.410230 +AWS,ap-northeast-1,c8g.16xlarge,reserved_3y,partial_upfront,0.656849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:43.508289 +AWS,ap-northeast-1,c8g.16xlarge,spot,NA,1.20424,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269015 +AWS,ap-northeast-1,c8g.24xlarge,on_demand,NA,4.80288,USD,AWS Pricing API,2025-11-30T09:02:23.771094 +AWS,ap-northeast-1,c8g.24xlarge,reserved_1y,all_upfront,6.807534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:53.025825 +AWS,ap-northeast-1,c8g.24xlarge,reserved_1y,no_upfront,6.807534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:36.391813 +AWS,ap-northeast-1,c8g.24xlarge,reserved_1y,partial_upfront,6.807534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:18.744298 +AWS,ap-northeast-1,c8g.24xlarge,reserved_3y,all_upfront,2.269178,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:52.438798 +AWS,ap-northeast-1,c8g.24xlarge,reserved_3y,no_upfront,2.269178,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:40.624970 +AWS,ap-northeast-1,c8g.24xlarge,reserved_3y,partial_upfront,2.269178,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:29.532244 +AWS,ap-northeast-1,c8g.24xlarge,spot,NA,1.587312,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270876 +AWS,ap-northeast-1,c8g.2xlarge,on_demand,NA,0.40024,USD,AWS Pricing API,2025-11-30T09:01:49.007093 +AWS,ap-northeast-1,c8g.2xlarge,reserved_1y,all_upfront,0.26392,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:18.839575 +AWS,ap-northeast-1,c8g.2xlarge,reserved_1y,no_upfront,0.26392,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:01.766625 +AWS,ap-northeast-1,c8g.2xlarge,reserved_1y,partial_upfront,0.26392,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:44.435584 +AWS,ap-northeast-1,c8g.2xlarge,reserved_3y,all_upfront,0.26392,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:18.796981 +AWS,ap-northeast-1,c8g.2xlarge,reserved_3y,no_upfront,0.26392,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:05.719254 +AWS,ap-northeast-1,c8g.2xlarge,reserved_3y,partial_upfront,0.26392,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:55.493008 +AWS,ap-northeast-1,c8g.2xlarge,spot,NA,0.160677,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269447 +AWS,ap-northeast-1,c8g.48xlarge,on_demand,NA,9.60576,USD,AWS Pricing API,2025-11-30T09:02:42.693648 +AWS,ap-northeast-1,c8g.48xlarge,reserved_1y,all_upfront,13.614954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:11.926900 +AWS,ap-northeast-1,c8g.48xlarge,reserved_1y,no_upfront,13.614954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:55.303036 +AWS,ap-northeast-1,c8g.48xlarge,reserved_1y,partial_upfront,13.614954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:37.523072 +AWS,ap-northeast-1,c8g.48xlarge,reserved_3y,all_upfront,4.538318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:11.020125 +AWS,ap-northeast-1,c8g.48xlarge,reserved_3y,no_upfront,4.538318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:59.785333 +AWS,ap-northeast-1,c8g.48xlarge,reserved_3y,partial_upfront,4.538318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:48.208161 +AWS,ap-northeast-1,c8g.48xlarge,spot,NA,3.57902,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272518 +AWS,ap-northeast-1,c8g.4xlarge,on_demand,NA,0.80048,USD,AWS Pricing API,2025-11-30T09:01:51.443196 +AWS,ap-northeast-1,c8g.4xlarge,reserved_1y,all_upfront,0.52784,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:21.260916 +AWS,ap-northeast-1,c8g.4xlarge,reserved_1y,no_upfront,0.52784,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:04.257476 +AWS,ap-northeast-1,c8g.4xlarge,reserved_1y,partial_upfront,0.52784,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:46.860176 +AWS,ap-northeast-1,c8g.4xlarge,reserved_3y,all_upfront,0.52784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:21.175938 +AWS,ap-northeast-1,c8g.4xlarge,reserved_3y,no_upfront,0.52784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:08.204558 +AWS,ap-northeast-1,c8g.4xlarge,reserved_3y,partial_upfront,0.52784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:57.885986 +AWS,ap-northeast-1,c8g.4xlarge,spot,NA,0.296191,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269528 +AWS,ap-northeast-1,c8g.8xlarge,on_demand,NA,1.60096,USD,AWS Pricing API,2025-11-30T09:01:54.991366 +AWS,ap-northeast-1,c8g.8xlarge,reserved_1y,all_upfront,1.21537,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:24.780657 +AWS,ap-northeast-1,c8g.8xlarge,reserved_1y,no_upfront,1.21537,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:07.788008 +AWS,ap-northeast-1,c8g.8xlarge,reserved_1y,partial_upfront,1.21537,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:50.384690 +AWS,ap-northeast-1,c8g.8xlarge,reserved_3y,all_upfront,1.21537,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:24.672424 +AWS,ap-northeast-1,c8g.8xlarge,reserved_3y,no_upfront,1.21537,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:11.777229 +AWS,ap-northeast-1,c8g.8xlarge,reserved_3y,partial_upfront,1.21537,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:01.381072 +AWS,ap-northeast-1,c8g.8xlarge,spot,NA,0.634376,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269682 +AWS,ap-northeast-1,c8g.large,on_demand,NA,0.10006,USD,AWS Pricing API,2025-11-30T09:02:36.978819 +AWS,ap-northeast-1,c8g.large,reserved_1y,all_upfront,0.062813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:06.233001 +AWS,ap-northeast-1,c8g.large,reserved_1y,no_upfront,0.062813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:49.573438 +AWS,ap-northeast-1,c8g.large,reserved_1y,partial_upfront,0.062813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:31.871767 +AWS,ap-northeast-1,c8g.large,reserved_3y,all_upfront,0.041884,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:05.458300 +AWS,ap-northeast-1,c8g.large,reserved_3y,no_upfront,0.041884,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:54.015656 +AWS,ap-northeast-1,c8g.large,reserved_3y,partial_upfront,0.041884,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:42.573981 +AWS,ap-northeast-1,c8g.large,spot,NA,0.041476,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271429 +AWS,ap-northeast-1,c8g.medium,on_demand,NA,0.05003,USD,AWS Pricing API,2025-11-30T09:02:21.547741 +AWS,ap-northeast-1,c8g.medium,reserved_1y,all_upfront,0.042181,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:50.872224 +AWS,ap-northeast-1,c8g.medium,reserved_1y,no_upfront,0.042181,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:34.204273 +AWS,ap-northeast-1,c8g.medium,reserved_1y,partial_upfront,0.042181,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:16.580738 +AWS,ap-northeast-1,c8g.medium,reserved_3y,all_upfront,0.0211,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:50.306722 +AWS,ap-northeast-1,c8g.medium,reserved_3y,no_upfront,0.0211,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:38.411789 +AWS,ap-northeast-1,c8g.medium,reserved_3y,partial_upfront,0.0211,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:27.385395 +AWS,ap-northeast-1,c8g.medium,spot,NA,0.016545,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270802 +AWS,ap-northeast-1,c8g.xlarge,on_demand,NA,0.20012,USD,AWS Pricing API,2025-11-30T09:01:45.190574 +AWS,ap-northeast-1,c8g.xlarge,reserved_1y,all_upfront,0.15192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:15.047092 +AWS,ap-northeast-1,c8g.xlarge,reserved_1y,no_upfront,0.15192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:57.915791 +AWS,ap-northeast-1,c8g.xlarge,reserved_1y,partial_upfront,0.15192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:40.666387 +AWS,ap-northeast-1,c8g.xlarge,reserved_3y,all_upfront,0.15192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:15.106764 +AWS,ap-northeast-1,c8g.xlarge,reserved_3y,no_upfront,0.15192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:01.841501 +AWS,ap-northeast-1,c8g.xlarge,reserved_3y,partial_upfront,0.15192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:51.722879 +AWS,ap-northeast-1,c8g.xlarge,spot,NA,0.084005,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269331 +AWS,ap-northeast-1,c8gd.12xlarge,on_demand,NA,2.98848,USD,AWS Pricing API,2025-11-30T09:02:19.233800 +AWS,ap-northeast-1,c8gd.12xlarge,spot,NA,1.148049,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270729 +AWS,ap-northeast-1,c8gd.16xlarge,on_demand,NA,3.98464,USD,AWS Pricing API,2025-11-30T09:02:43.516055 +AWS,ap-northeast-1,c8gd.16xlarge,spot,NA,1.382271,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272524 +AWS,ap-northeast-1,c8gd.24xlarge,on_demand,NA,5.97696,USD,AWS Pricing API,2025-11-30T09:02:29.916476 +AWS,ap-northeast-1,c8gd.24xlarge,spot,NA,2.024301,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271115 +AWS,ap-northeast-1,c8gd.2xlarge,on_demand,NA,0.49808,USD,AWS Pricing API,2025-11-30T09:02:13.901360 +AWS,ap-northeast-1,c8gd.2xlarge,spot,NA,0.205361,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270486 +AWS,ap-northeast-1,c8gd.48xlarge,on_demand,NA,11.95392,USD,AWS Pricing API,2025-11-30T09:02:01.462121 +AWS,ap-northeast-1,c8gd.48xlarge,spot,NA,3.723917,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269980 +AWS,ap-northeast-1,c8gd.4xlarge,on_demand,NA,0.99616,USD,AWS Pricing API,2025-11-30T09:01:46.699691 +AWS,ap-northeast-1,c8gd.4xlarge,spot,NA,0.442749,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269377 +AWS,ap-northeast-1,c8gd.8xlarge,on_demand,NA,1.99232,USD,AWS Pricing API,2025-11-30T09:02:09.489457 +AWS,ap-northeast-1,c8gd.8xlarge,spot,NA,0.769409,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270313 +AWS,ap-northeast-1,c8gd.large,on_demand,NA,0.12452,USD,AWS Pricing API,2025-11-30T09:02:35.355512 +AWS,ap-northeast-1,c8gd.large,spot,NA,0.046619,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271354 +AWS,ap-northeast-1,c8gd.xlarge,on_demand,NA,0.24904,USD,AWS Pricing API,2025-11-30T09:01:57.596089 +AWS,ap-northeast-1,c8gd.xlarge,spot,NA,0.101799,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269815 +AWS,ap-northeast-1,d3.2xlarge,on_demand,NA,1.448,USD,AWS Pricing API,2025-11-30T09:02:11.405126 +AWS,ap-northeast-1,d3.2xlarge,reserved_1y,all_upfront,1.159064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:40.831587 +AWS,ap-northeast-1,d3.2xlarge,reserved_1y,no_upfront,1.159064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:24.121170 +AWS,ap-northeast-1,d3.2xlarge,reserved_1y,partial_upfront,1.159064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:06.463264 +AWS,ap-northeast-1,d3.2xlarge,reserved_3y,all_upfront,0.579688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:40.444691 +AWS,ap-northeast-1,d3.2xlarge,reserved_3y,no_upfront,0.579688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:28.168470 +AWS,ap-northeast-1,d3.2xlarge,reserved_3y,partial_upfront,0.579688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:17.429664 +AWS,ap-northeast-1,d3.2xlarge,spot,NA,0.626967,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270388 +AWS,ap-northeast-1,d3.4xlarge,on_demand,NA,2.897,USD,AWS Pricing API,2025-11-30T09:02:38.620002 +AWS,ap-northeast-1,d3.4xlarge,reserved_1y,all_upfront,4.0879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:07.865895 +AWS,ap-northeast-1,d3.4xlarge,reserved_1y,no_upfront,4.0879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:51.212890 +AWS,ap-northeast-1,d3.4xlarge,reserved_1y,partial_upfront,4.0879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:33.479441 +AWS,ap-northeast-1,d3.4xlarge,reserved_3y,all_upfront,1.362633,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:07.057826 +AWS,ap-northeast-1,d3.4xlarge,reserved_3y,no_upfront,1.362633,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:55.671969 +AWS,ap-northeast-1,d3.4xlarge,reserved_3y,partial_upfront,1.362633,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:44.184631 +AWS,ap-northeast-1,d3.4xlarge,spot,NA,1.165874,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272317 +AWS,ap-northeast-1,d3.8xlarge,on_demand,NA,5.79344,USD,AWS Pricing API,2025-11-30T09:01:41.521685 +AWS,ap-northeast-1,d3.8xlarge,reserved_1y,all_upfront,3.406507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:11.409327 +AWS,ap-northeast-1,d3.8xlarge,reserved_1y,no_upfront,3.406507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:54.184180 +AWS,ap-northeast-1,d3.8xlarge,reserved_1y,partial_upfront,3.406507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:37.026647 +AWS,ap-northeast-1,d3.8xlarge,reserved_3y,all_upfront,1.135502,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:11.526963 +AWS,ap-northeast-1,d3.8xlarge,reserved_3y,no_upfront,1.135502,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:58.105840 +AWS,ap-northeast-1,d3.8xlarge,reserved_3y,partial_upfront,1.135502,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:48.104298 +AWS,ap-northeast-1,d3.8xlarge,spot,NA,2.272745,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269192 +AWS,ap-northeast-1,d3.xlarge,on_demand,NA,0.724,USD,AWS Pricing API,2025-11-30T09:01:38.935065 +AWS,ap-northeast-1,d3.xlarge,reserved_1y,all_upfront,0.579475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:08.827774 +AWS,ap-northeast-1,d3.xlarge,reserved_1y,no_upfront,0.579475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:51.607994 +AWS,ap-northeast-1,d3.xlarge,reserved_1y,partial_upfront,0.579475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:34.418420 +AWS,ap-northeast-1,d3.xlarge,reserved_3y,all_upfront,0.289825,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:08.994006 +AWS,ap-northeast-1,d3.xlarge,reserved_3y,no_upfront,0.289825,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:55.488686 +AWS,ap-northeast-1,d3.xlarge,reserved_3y,partial_upfront,0.289825,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:45.548243 +AWS,ap-northeast-1,d3.xlarge,spot,NA,0.261611,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269107 +AWS,ap-northeast-1,d3en.12xlarge,on_demand,NA,9.1476,USD,AWS Pricing API,2025-11-30T09:02:31.280963 +AWS,ap-northeast-1,d3en.12xlarge,reserved_1y,all_upfront,6.586291,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:00.522860 +AWS,ap-northeast-1,d3en.12xlarge,reserved_1y,no_upfront,6.586291,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:43.866003 +AWS,ap-northeast-1,d3en.12xlarge,reserved_1y,partial_upfront,6.586291,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:26.244319 +AWS,ap-northeast-1,d3en.12xlarge,reserved_3y,all_upfront,4.390857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:59.807695 +AWS,ap-northeast-1,d3en.12xlarge,reserved_3y,no_upfront,4.390857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:48.215048 +AWS,ap-northeast-1,d3en.12xlarge,reserved_3y,partial_upfront,4.390857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:36.926021 +AWS,ap-northeast-1,d3en.12xlarge,spot,NA,5.473226,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271188 +AWS,ap-northeast-1,d3en.2xlarge,on_demand,NA,1.525,USD,AWS Pricing API,2025-11-30T09:02:10.197273 +AWS,ap-northeast-1,d3en.2xlarge,reserved_1y,all_upfront,1.219726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:39.625402 +AWS,ap-northeast-1,d3en.2xlarge,reserved_1y,no_upfront,1.219726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:22.880511 +AWS,ap-northeast-1,d3en.2xlarge,reserved_1y,partial_upfront,1.219726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:05.257714 +AWS,ap-northeast-1,d3en.2xlarge,reserved_3y,all_upfront,0.609909,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:39.250915 +AWS,ap-northeast-1,d3en.2xlarge,reserved_3y,no_upfront,0.609909,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:26.919589 +AWS,ap-northeast-1,d3en.2xlarge,reserved_3y,partial_upfront,0.609909,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:16.205339 +AWS,ap-northeast-1,d3en.2xlarge,spot,NA,0.538135,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270320 +AWS,ap-northeast-1,d3en.4xlarge,on_demand,NA,3.049,USD,AWS Pricing API,2025-11-30T09:02:17.723259 +AWS,ap-northeast-1,d3en.4xlarge,reserved_1y,all_upfront,1.792922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:47.069417 +AWS,ap-northeast-1,d3en.4xlarge,reserved_1y,no_upfront,1.792922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:30.389420 +AWS,ap-northeast-1,d3en.4xlarge,reserved_1y,partial_upfront,1.792922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:12.664768 +AWS,ap-northeast-1,d3en.4xlarge,reserved_3y,all_upfront,0.597641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:46.566977 +AWS,ap-northeast-1,d3en.4xlarge,reserved_3y,no_upfront,0.597641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:34.550853 +AWS,ap-northeast-1,d3en.4xlarge,reserved_3y,partial_upfront,0.597641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:23.617823 +AWS,ap-northeast-1,d3en.4xlarge,spot,NA,1.22044,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270693 +AWS,ap-northeast-1,d3en.6xlarge,on_demand,NA,4.574,USD,AWS Pricing API,2025-11-30T09:02:43.930857 +AWS,ap-northeast-1,d3en.6xlarge,reserved_1y,all_upfront,2.744146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:13.139271 +AWS,ap-northeast-1,d3en.6xlarge,reserved_1y,no_upfront,2.744146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:56.525767 +AWS,ap-northeast-1,d3en.6xlarge,reserved_1y,partial_upfront,2.744146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:38.779822 +AWS,ap-northeast-1,d3en.6xlarge,reserved_3y,all_upfront,1.829382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:12.202659 +AWS,ap-northeast-1,d3en.6xlarge,reserved_3y,no_upfront,1.829382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:01.080327 +AWS,ap-northeast-1,d3en.6xlarge,reserved_3y,partial_upfront,1.829382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:49.413379 +AWS,ap-northeast-1,d3en.6xlarge,spot,NA,1.788772,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272561 +AWS,ap-northeast-1,d3en.8xlarge,on_demand,NA,6.0984,USD,AWS Pricing API,2025-11-30T09:02:39.301786 +AWS,ap-northeast-1,d3en.8xlarge,reserved_1y,all_upfront,3.585845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:08.541465 +AWS,ap-northeast-1,d3en.8xlarge,reserved_1y,no_upfront,3.585845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:51.895294 +AWS,ap-northeast-1,d3en.8xlarge,reserved_1y,partial_upfront,3.585845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:34.153249 +AWS,ap-northeast-1,d3en.8xlarge,reserved_3y,all_upfront,1.195282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:07.720876 +AWS,ap-northeast-1,d3en.8xlarge,reserved_3y,no_upfront,1.195282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:56.359888 +AWS,ap-northeast-1,d3en.8xlarge,reserved_3y,partial_upfront,1.195282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:44.853934 +AWS,ap-northeast-1,d3en.8xlarge,spot,NA,3.284297,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272329 +AWS,ap-northeast-1,d3en.xlarge,on_demand,NA,0.762,USD,AWS Pricing API,2025-11-30T09:01:54.307362 +AWS,ap-northeast-1,d3en.xlarge,reserved_1y,all_upfront,0.5379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:24.092135 +AWS,ap-northeast-1,d3en.xlarge,reserved_1y,no_upfront,0.5379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:07.109539 +AWS,ap-northeast-1,d3en.xlarge,reserved_1y,partial_upfront,0.5379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:49.703623 +AWS,ap-northeast-1,d3en.xlarge,reserved_3y,all_upfront,0.1793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:24.000542 +AWS,ap-northeast-1,d3en.xlarge,reserved_3y,no_upfront,0.1793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:11.091171 +AWS,ap-northeast-1,d3en.xlarge,reserved_3y,partial_upfront,0.1793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:00.706161 +AWS,ap-northeast-1,d3en.xlarge,spot,NA,0.242974,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269638 +AWS,ap-northeast-1,g4dn.12xlarge,on_demand,NA,5.281,USD,AWS Pricing API,2025-11-30T09:01:41.925357 +AWS,ap-northeast-1,g4dn.12xlarge,reserved_1y,all_upfront,3.364155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:11.810712 +AWS,ap-northeast-1,g4dn.12xlarge,reserved_1y,no_upfront,3.364155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:54.587671 +AWS,ap-northeast-1,g4dn.12xlarge,reserved_1y,partial_upfront,3.364155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:37.430519 +AWS,ap-northeast-1,g4dn.12xlarge,reserved_3y,all_upfront,1.121385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:11.919104 +AWS,ap-northeast-1,g4dn.12xlarge,reserved_3y,no_upfront,1.121385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:58.519685 +AWS,ap-northeast-1,g4dn.12xlarge,reserved_3y,partial_upfront,1.121385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:48.502601 +AWS,ap-northeast-1,g4dn.12xlarge,spot,NA,2.175065,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269211 +AWS,ap-northeast-1,g4dn.16xlarge,on_demand,NA,5.875,USD,AWS Pricing API,2025-11-30T09:01:48.191502 +AWS,ap-northeast-1,g4dn.16xlarge,reserved_1y,all_upfront,4.611,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:18.028666 +AWS,ap-northeast-1,g4dn.16xlarge,reserved_1y,no_upfront,4.611,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:00.923307 +AWS,ap-northeast-1,g4dn.16xlarge,reserved_1y,partial_upfront,4.611,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:43.623240 +AWS,ap-northeast-1,g4dn.16xlarge,reserved_3y,all_upfront,4.611,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:18.006770 +AWS,ap-northeast-1,g4dn.16xlarge,reserved_3y,no_upfront,4.611,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:04.883867 +AWS,ap-northeast-1,g4dn.16xlarge,reserved_3y,partial_upfront,4.611,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:54.689836 +AWS,ap-northeast-1,g4dn.16xlarge,spot,NA,1.832867,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269406 +AWS,ap-northeast-1,g4dn.2xlarge,on_demand,NA,1.015,USD,AWS Pricing API,2025-11-30T09:02:22.524951 +AWS,ap-northeast-1,g4dn.2xlarge,reserved_1y,all_upfront,0.618,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:51.812138 +AWS,ap-northeast-1,g4dn.2xlarge,reserved_1y,no_upfront,0.618,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:35.152607 +AWS,ap-northeast-1,g4dn.2xlarge,reserved_1y,partial_upfront,0.618,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:17.519981 +AWS,ap-northeast-1,g4dn.2xlarge,reserved_3y,all_upfront,0.618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:51.237435 +AWS,ap-northeast-1,g4dn.2xlarge,reserved_3y,no_upfront,0.618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:39.372377 +AWS,ap-northeast-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:28.327830 +AWS,ap-northeast-1,g4dn.2xlarge,spot,NA,0.431275,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270828 +AWS,ap-northeast-1,g4dn.4xlarge,on_demand,NA,1.625,USD,AWS Pricing API,2025-11-30T09:02:02.888922 +AWS,ap-northeast-1,g4dn.4xlarge,reserved_1y,all_upfront,1.276,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:32.456312 +AWS,ap-northeast-1,g4dn.4xlarge,reserved_1y,no_upfront,1.276,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:15.600332 +AWS,ap-northeast-1,g4dn.4xlarge,reserved_1y,partial_upfront,1.276,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:58.056525 +AWS,ap-northeast-1,g4dn.4xlarge,reserved_3y,all_upfront,1.276,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:32.224349 +AWS,ap-northeast-1,g4dn.4xlarge,reserved_3y,no_upfront,1.276,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:19.616925 +AWS,ap-northeast-1,g4dn.4xlarge,reserved_3y,partial_upfront,1.276,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:09.067964 +AWS,ap-northeast-1,g4dn.4xlarge,spot,NA,0.549938,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269991 +AWS,ap-northeast-1,g4dn.8xlarge,on_demand,NA,2.938,USD,AWS Pricing API,2025-11-30T09:02:05.648405 +AWS,ap-northeast-1,g4dn.8xlarge,reserved_1y,all_upfront,1.90968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:35.167376 +AWS,ap-northeast-1,g4dn.8xlarge,reserved_1y,no_upfront,1.90968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:18.377964 +AWS,ap-northeast-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.90968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:00.760053 +AWS,ap-northeast-1,g4dn.8xlarge,reserved_3y,all_upfront,1.273227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:34.877317 +AWS,ap-northeast-1,g4dn.8xlarge,reserved_3y,no_upfront,1.273227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:22.392769 +AWS,ap-northeast-1,g4dn.8xlarge,reserved_3y,partial_upfront,1.273227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:11.757674 +AWS,ap-northeast-1,g4dn.8xlarge,spot,NA,1.103709,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270159 +AWS,ap-northeast-1,g4dn.xlarge,on_demand,NA,0.71,USD,AWS Pricing API,2025-11-30T09:02:29.227382 +AWS,ap-northeast-1,g4dn.xlarge,reserved_1y,all_upfront,0.452283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:58.474682 +AWS,ap-northeast-1,g4dn.xlarge,reserved_1y,no_upfront,0.452283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:41.839127 +AWS,ap-northeast-1,g4dn.xlarge,reserved_1y,partial_upfront,0.452283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:24.231668 +AWS,ap-northeast-1,g4dn.xlarge,reserved_3y,all_upfront,0.150761,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:57.820898 +AWS,ap-northeast-1,g4dn.xlarge,reserved_3y,no_upfront,0.150761,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:46.144882 +AWS,ap-northeast-1,g4dn.xlarge,reserved_3y,partial_upfront,0.150761,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:34.920016 +AWS,ap-northeast-1,g4dn.xlarge,spot,NA,0.2721,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271133 +AWS,ap-northeast-1,g5.12xlarge,on_demand,NA,8.22609,USD,AWS Pricing API,2025-11-30T09:01:27.161710 +AWS,ap-northeast-1,g5.12xlarge,reserved_1y,all_upfront,6.47805,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:57.085595 +AWS,ap-northeast-1,g5.12xlarge,reserved_1y,no_upfront,6.47805,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:39.796502 +AWS,ap-northeast-1,g5.12xlarge,reserved_1y,partial_upfront,6.47805,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:22.791572 +AWS,ap-northeast-1,g5.12xlarge,reserved_3y,all_upfront,6.47805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:57.553445 +AWS,ap-northeast-1,g5.12xlarge,reserved_3y,no_upfront,6.47805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:43.598209 +AWS,ap-northeast-1,g5.12xlarge,reserved_3y,partial_upfront,6.47805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:33.961531 +AWS,ap-northeast-1,g5.12xlarge,spot,NA,4.439936,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268621 +AWS,ap-northeast-1,g5.16xlarge,on_demand,NA,5.94042,USD,AWS Pricing API,2025-11-30T09:01:29.232925 +AWS,ap-northeast-1,g5.16xlarge,reserved_1y,all_upfront,4.67808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:59.119954 +AWS,ap-northeast-1,g5.16xlarge,reserved_1y,no_upfront,4.67808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:41.868832 +AWS,ap-northeast-1,g5.16xlarge,reserved_1y,partial_upfront,4.67808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:24.843131 +AWS,ap-northeast-1,g5.16xlarge,reserved_3y,all_upfront,4.67808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:59.561293 +AWS,ap-northeast-1,g5.16xlarge,reserved_3y,no_upfront,4.67808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:45.690035 +AWS,ap-northeast-1,g5.16xlarge,reserved_3y,partial_upfront,4.67808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:35.983073 +AWS,ap-northeast-1,g5.16xlarge,spot,NA,2.870012,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268700 +AWS,ap-northeast-1,g5.24xlarge,on_demand,NA,11.81123,USD,AWS Pricing API,2025-11-30T09:01:28.143115 +AWS,ap-northeast-1,g5.24xlarge,reserved_1y,all_upfront,7.44107,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:58.033803 +AWS,ap-northeast-1,g5.24xlarge,reserved_1y,no_upfront,7.44107,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:40.766539 +AWS,ap-northeast-1,g5.24xlarge,reserved_1y,partial_upfront,7.44107,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:23.756695 +AWS,ap-northeast-1,g5.24xlarge,reserved_3y,all_upfront,7.44107,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:58.496509 +AWS,ap-northeast-1,g5.24xlarge,reserved_3y,no_upfront,7.44107,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:44.580028 +AWS,ap-northeast-1,g5.24xlarge,reserved_3y,partial_upfront,7.44107,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:34.900656 +AWS,ap-northeast-1,g5.24xlarge,spot,NA,6.926629,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268627 +AWS,ap-northeast-1,g5.2xlarge,on_demand,NA,1.75776,USD,AWS Pricing API,2025-11-30T09:01:45.326181 +AWS,ap-northeast-1,g5.2xlarge,reserved_1y,all_upfront,1.033562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:15.181482 +AWS,ap-northeast-1,g5.2xlarge,reserved_1y,no_upfront,1.033562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:58.054570 +AWS,ap-northeast-1,g5.2xlarge,reserved_1y,partial_upfront,1.033562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:40.799652 +AWS,ap-northeast-1,g5.2xlarge,reserved_3y,all_upfront,0.344521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:15.238680 +AWS,ap-northeast-1,g5.2xlarge,reserved_3y,no_upfront,0.344521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:01.983330 +AWS,ap-northeast-1,g5.2xlarge,reserved_3y,partial_upfront,0.344521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:51.855505 +AWS,ap-northeast-1,g5.2xlarge,spot,NA,0.685185,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269339 +AWS,ap-northeast-1,g5.48xlarge,on_demand,NA,23.62246,USD,AWS Pricing API,2025-11-30T09:01:29.918965 +AWS,ap-northeast-1,g5.48xlarge,reserved_1y,all_upfront,14.88215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:59.791129 +AWS,ap-northeast-1,g5.48xlarge,reserved_1y,no_upfront,14.88215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:42.561808 +AWS,ap-northeast-1,g5.48xlarge,reserved_1y,partial_upfront,14.88215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:25.513834 +AWS,ap-northeast-1,g5.48xlarge,reserved_3y,all_upfront,14.88215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:00.217028 +AWS,ap-northeast-1,g5.48xlarge,reserved_3y,no_upfront,14.88215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:46.383056 +AWS,ap-northeast-1,g5.48xlarge,reserved_3y,partial_upfront,14.88215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:36.662548 +AWS,ap-northeast-1,g5.48xlarge,spot,NA,14.726284,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268773 +AWS,ap-northeast-1,g5.4xlarge,on_demand,NA,2.35528,USD,AWS Pricing API,2025-11-30T09:01:39.478964 +AWS,ap-northeast-1,g5.4xlarge,reserved_1y,all_upfront,3.462215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:09.373304 +AWS,ap-northeast-1,g5.4xlarge,reserved_1y,no_upfront,3.462215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:52.153130 +AWS,ap-northeast-1,g5.4xlarge,reserved_1y,partial_upfront,3.462215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:34.971564 +AWS,ap-northeast-1,g5.4xlarge,reserved_3y,all_upfront,1.154072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:09.526627 +AWS,ap-northeast-1,g5.4xlarge,reserved_3y,no_upfront,1.154072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:56.042466 +AWS,ap-northeast-1,g5.4xlarge,reserved_3y,partial_upfront,1.154072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:46.084216 +AWS,ap-northeast-1,g5.4xlarge,spot,NA,0.872687,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269168 +AWS,ap-northeast-1,g5.8xlarge,on_demand,NA,3.55033,USD,AWS Pricing API,2025-11-30T09:01:47.245218 +AWS,ap-northeast-1,g5.8xlarge,reserved_1y,all_upfront,5.21895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:17.081033 +AWS,ap-northeast-1,g5.8xlarge,reserved_1y,no_upfront,5.21895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:59.963191 +AWS,ap-northeast-1,g5.8xlarge,reserved_1y,partial_upfront,5.21895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:42.680871 +AWS,ap-northeast-1,g5.8xlarge,reserved_3y,all_upfront,1.73965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:17.081509 +AWS,ap-northeast-1,g5.8xlarge,reserved_3y,no_upfront,1.73965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:03.924964 +AWS,ap-northeast-1,g5.8xlarge,reserved_3y,partial_upfront,1.73965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:53.737846 +AWS,ap-northeast-1,g5.8xlarge,spot,NA,1.38143,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269394 +AWS,ap-northeast-1,g5.xlarge,on_demand,NA,1.459,USD,AWS Pricing API,2025-11-30T09:02:34.806927 +AWS,ap-northeast-1,g5.xlarge,reserved_1y,all_upfront,0.857877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:04.081295 +AWS,ap-northeast-1,g5.xlarge,reserved_1y,no_upfront,0.857877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:47.396161 +AWS,ap-northeast-1,g5.xlarge,reserved_1y,partial_upfront,0.857877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:29.727885 +AWS,ap-northeast-1,g5.xlarge,reserved_3y,all_upfront,0.285959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:03.330377 +AWS,ap-northeast-1,g5.xlarge,reserved_3y,no_upfront,0.285959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:51.823573 +AWS,ap-northeast-1,g5.xlarge,reserved_3y,partial_upfront,0.285959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:40.429689 +AWS,ap-northeast-1,g5.xlarge,spot,NA,0.564904,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271361 +AWS,ap-northeast-1,g6.12xlarge,on_demand,NA,6.67369,USD,AWS Pricing API,2025-11-30T09:01:30.599969 +AWS,ap-northeast-1,g6.12xlarge,reserved_1y,all_upfront,5.172133,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:00.469264 +AWS,ap-northeast-1,g6.12xlarge,reserved_1y,no_upfront,5.172133,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:43.252004 +AWS,ap-northeast-1,g6.12xlarge,reserved_1y,partial_upfront,5.172133,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:26.187536 +AWS,ap-northeast-1,g6.12xlarge,reserved_3y,all_upfront,3.448084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:00.879596 +AWS,ap-northeast-1,g6.12xlarge,reserved_3y,no_upfront,3.448084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:47.082637 +AWS,ap-northeast-1,g6.12xlarge,reserved_3y,partial_upfront,3.448084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:37.337068 +AWS,ap-northeast-1,g6.12xlarge,spot,NA,2.759058,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268761 +AWS,ap-northeast-1,g6.16xlarge,on_demand,NA,4.92637,USD,AWS Pricing API,2025-11-30T09:01:27.840112 +AWS,ap-northeast-1,g6.16xlarge,reserved_1y,all_upfront,3.20707,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:57.766253 +AWS,ap-northeast-1,g6.16xlarge,reserved_1y,no_upfront,3.20707,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:40.490816 +AWS,ap-northeast-1,g6.16xlarge,reserved_1y,partial_upfront,3.20707,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:23.465028 +AWS,ap-northeast-1,g6.16xlarge,reserved_3y,all_upfront,3.20707,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:58.224861 +AWS,ap-northeast-1,g6.16xlarge,reserved_3y,no_upfront,3.20707,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:44.307604 +AWS,ap-northeast-1,g6.16xlarge,reserved_3y,partial_upfront,3.20707,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:34.633394 +AWS,ap-northeast-1,g6.16xlarge,spot,NA,2.122884,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268614 +AWS,ap-northeast-1,g6.24xlarge,on_demand,NA,9.68103,USD,AWS Pricing API,2025-11-30T09:01:28.007849 +AWS,ap-northeast-1,g6.24xlarge,reserved_1y,all_upfront,7.50277,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:57.900211 +AWS,ap-northeast-1,g6.24xlarge,reserved_1y,no_upfront,7.50277,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:40.629831 +AWS,ap-northeast-1,g6.24xlarge,reserved_1y,partial_upfront,7.50277,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:23.598978 +AWS,ap-northeast-1,g6.24xlarge,reserved_3y,all_upfront,5.001857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:58.362499 +AWS,ap-northeast-1,g6.24xlarge,reserved_3y,no_upfront,5.001857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:44.443644 +AWS,ap-northeast-1,g6.24xlarge,reserved_3y,partial_upfront,5.001857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:34.767274 +AWS,ap-northeast-1,g6.24xlarge,spot,NA,3.755751,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268639 +AWS,ap-northeast-1,g6.2xlarge,on_demand,NA,1.41781,USD,AWS Pricing API,2025-11-30T09:01:29.638945 +AWS,ap-northeast-1,g6.2xlarge,reserved_1y,all_upfront,0.861416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:59.522606 +AWS,ap-northeast-1,g6.2xlarge,reserved_1y,no_upfront,0.861416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:42.289965 +AWS,ap-northeast-1,g6.2xlarge,reserved_1y,partial_upfront,0.861416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:25.245411 +AWS,ap-northeast-1,g6.2xlarge,reserved_3y,all_upfront,0.287139,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:59.953604 +AWS,ap-northeast-1,g6.2xlarge,reserved_3y,no_upfront,0.287139,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:46.110428 +AWS,ap-northeast-1,g6.2xlarge,reserved_3y,partial_upfront,0.287139,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:36.395500 +AWS,ap-northeast-1,g6.2xlarge,spot,NA,0.57672,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268682 +AWS,ap-northeast-1,g6.48xlarge,on_demand,NA,19.36206,USD,AWS Pricing API,2025-11-30T09:01:27.431421 +AWS,ap-northeast-1,g6.48xlarge,reserved_1y,all_upfront,11.764384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:57.356798 +AWS,ap-northeast-1,g6.48xlarge,reserved_1y,no_upfront,11.764384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:40.078284 +AWS,ap-northeast-1,g6.48xlarge,reserved_1y,partial_upfront,11.764384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:23.061063 +AWS,ap-northeast-1,g6.48xlarge,reserved_3y,all_upfront,3.921461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:57.814171 +AWS,ap-northeast-1,g6.48xlarge,reserved_3y,no_upfront,3.921461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:43.874495 +AWS,ap-northeast-1,g6.48xlarge,reserved_3y,partial_upfront,3.921461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:34.233612 +AWS,ap-northeast-1,g6.48xlarge,spot,NA,7.656387,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268633 +AWS,ap-northeast-1,g6.4xlarge,on_demand,NA,1.91903,USD,AWS Pricing API,2025-11-30T09:01:28.278855 +AWS,ap-northeast-1,g6.4xlarge,reserved_1y,all_upfront,1.189763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:58.167367 +AWS,ap-northeast-1,g6.4xlarge,reserved_1y,no_upfront,1.189763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:40.912395 +AWS,ap-northeast-1,g6.4xlarge,reserved_1y,partial_upfront,1.189763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:23.889241 +AWS,ap-northeast-1,g6.4xlarge,reserved_3y,all_upfront,0.793188,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:58.628118 +AWS,ap-northeast-1,g6.4xlarge,reserved_3y,no_upfront,0.793188,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:44.716552 +AWS,ap-northeast-1,g6.4xlarge,reserved_3y,partial_upfront,0.793188,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:35.033922 +AWS,ap-northeast-1,g6.4xlarge,spot,NA,0.703601,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268652 +AWS,ap-northeast-1,g6.8xlarge,on_demand,NA,2.92148,USD,AWS Pricing API,2025-11-30T09:01:29.097183 +AWS,ap-northeast-1,g6.8xlarge,reserved_1y,all_upfront,2.37735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:58.978363 +AWS,ap-northeast-1,g6.8xlarge,reserved_1y,no_upfront,2.37735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:41.727670 +AWS,ap-northeast-1,g6.8xlarge,reserved_1y,partial_upfront,2.37735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:24.691837 +AWS,ap-northeast-1,g6.8xlarge,reserved_3y,all_upfront,2.37735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:59.426223 +AWS,ap-northeast-1,g6.8xlarge,reserved_3y,no_upfront,2.37735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:45.551512 +AWS,ap-northeast-1,g6.8xlarge,reserved_3y,partial_upfront,2.37735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:35.849817 +AWS,ap-northeast-1,g6.8xlarge,spot,NA,1.137083,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268670 +AWS,ap-northeast-1,g6.xlarge,on_demand,NA,1.1672,USD,AWS Pricing API,2025-11-30T09:01:27.568248 +AWS,ap-northeast-1,g6.xlarge,reserved_1y,all_upfront,1.823059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:57.492865 +AWS,ap-northeast-1,g6.xlarge,reserved_1y,no_upfront,1.823059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:40.218319 +AWS,ap-northeast-1,g6.xlarge,reserved_1y,partial_upfront,1.823059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:23.194945 +AWS,ap-northeast-1,g6.xlarge,reserved_3y,all_upfront,0.607686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:57.947162 +AWS,ap-northeast-1,g6.xlarge,reserved_3y,no_upfront,0.607686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:44.019518 +AWS,ap-northeast-1,g6.xlarge,reserved_3y,partial_upfront,0.607686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:34.366789 +AWS,ap-northeast-1,g6.xlarge,spot,NA,0.490818,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268645 +AWS,ap-northeast-1,g6e.12xlarge,on_demand,NA,15.21742,USD,AWS Pricing API,2025-11-30T09:01:30.188924 +AWS,ap-northeast-1,g6e.12xlarge,reserved_1y,all_upfront,9.130413,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:00.063012 +AWS,ap-northeast-1,g6e.12xlarge,reserved_1y,no_upfront,9.130413,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:42.842178 +AWS,ap-northeast-1,g6e.12xlarge,reserved_1y,partial_upfront,9.130413,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:25.781611 +AWS,ap-northeast-1,g6e.12xlarge,reserved_3y,all_upfront,6.086958,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:00.480201 +AWS,ap-northeast-1,g6e.12xlarge,reserved_3y,no_upfront,6.086958,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:46.667602 +AWS,ap-northeast-1,g6e.12xlarge,reserved_3y,partial_upfront,6.086958,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:36.929883 +AWS,ap-northeast-1,g6e.12xlarge,spot,NA,6.247139,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268736 +AWS,ap-northeast-1,g6e.16xlarge,on_demand,NA,10.98917,USD,AWS Pricing API,2025-11-30T09:01:28.824131 +AWS,ap-northeast-1,g6e.16xlarge,reserved_1y,all_upfront,8.30781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:58.707645 +AWS,ap-northeast-1,g6e.16xlarge,reserved_1y,no_upfront,8.30781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:41.457041 +AWS,ap-northeast-1,g6e.16xlarge,reserved_1y,partial_upfront,8.30781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:24.423385 +AWS,ap-northeast-1,g6e.16xlarge,reserved_3y,all_upfront,8.30781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:59.161939 +AWS,ap-northeast-1,g6e.16xlarge,reserved_3y,no_upfront,8.30781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:45.276606 +AWS,ap-northeast-1,g6e.16xlarge,reserved_3y,partial_upfront,8.30781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:35.584985 +AWS,ap-northeast-1,g6e.16xlarge,spot,NA,4.543536,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268706 +AWS,ap-northeast-1,g6e.24xlarge,on_demand,NA,21.84956,USD,AWS Pricing API,2025-11-30T09:01:28.686762 +AWS,ap-northeast-1,g6e.24xlarge,reserved_1y,all_upfront,15.417009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:58.570417 +AWS,ap-northeast-1,g6e.24xlarge,reserved_1y,no_upfront,15.417009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:41.321086 +AWS,ap-northeast-1,g6e.24xlarge,reserved_1y,partial_upfront,15.417009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:24.290892 +AWS,ap-northeast-1,g6e.24xlarge,reserved_3y,all_upfront,5.139003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:59.029012 +AWS,ap-northeast-1,g6e.24xlarge,reserved_3y,no_upfront,5.139003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:45.128690 +AWS,ap-northeast-1,g6e.24xlarge,reserved_3y,partial_upfront,5.139003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:35.438040 +AWS,ap-northeast-1,g6e.24xlarge,spot,NA,8.660332,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268694 +AWS,ap-northeast-1,g6e.2xlarge,on_demand,NA,3.25168,USD,AWS Pricing API,2025-11-30T09:01:28.413962 +AWS,ap-northeast-1,g6e.2xlarge,reserved_1y,all_upfront,2.45827,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:58.301927 +AWS,ap-northeast-1,g6e.2xlarge,reserved_1y,no_upfront,2.45827,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:41.048984 +AWS,ap-northeast-1,g6e.2xlarge,reserved_1y,partial_upfront,2.45827,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:24.024416 +AWS,ap-northeast-1,g6e.2xlarge,reserved_3y,all_upfront,2.45827,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:58.762392 +AWS,ap-northeast-1,g6e.2xlarge,reserved_3y,no_upfront,2.45827,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:44.853314 +AWS,ap-northeast-1,g6e.2xlarge,reserved_3y,partial_upfront,2.45827,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:35.169318 +AWS,ap-northeast-1,g6e.2xlarge,spot,NA,1.367424,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268712 +AWS,ap-northeast-1,g6e.48xlarge,on_demand,NA,43.69912,USD,AWS Pricing API,2025-11-30T09:01:27.704350 +AWS,ap-northeast-1,g6e.48xlarge,reserved_1y,all_upfront,61.668151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:57.628833 +AWS,ap-northeast-1,g6e.48xlarge,reserved_1y,no_upfront,61.668151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:40.352296 +AWS,ap-northeast-1,g6e.48xlarge,reserved_1y,partial_upfront,61.668151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:23.328238 +AWS,ap-northeast-1,g6e.48xlarge,reserved_3y,all_upfront,20.55605,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:58.080860 +AWS,ap-northeast-1,g6e.48xlarge,reserved_3y,no_upfront,20.55605,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:44.169136 +AWS,ap-northeast-1,g6e.48xlarge,reserved_3y,partial_upfront,20.55605,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:34.500071 +AWS,ap-northeast-1,g6e.48xlarge,spot,NA,17.154213,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268608 +AWS,ap-northeast-1,g6e.4xlarge,on_demand,NA,4.35703,USD,AWS Pricing API,2025-11-30T09:01:28.550001 +AWS,ap-northeast-1,g6e.4xlarge,reserved_1y,all_upfront,3.29392,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:58.436178 +AWS,ap-northeast-1,g6e.4xlarge,reserved_1y,no_upfront,3.29392,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:41.185337 +AWS,ap-northeast-1,g6e.4xlarge,reserved_1y,partial_upfront,3.29392,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:24.158644 +AWS,ap-northeast-1,g6e.4xlarge,reserved_3y,all_upfront,3.29392,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:58.895074 +AWS,ap-northeast-1,g6e.4xlarge,reserved_3y,no_upfront,3.29392,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:44.989142 +AWS,ap-northeast-1,g6e.4xlarge,reserved_3y,partial_upfront,3.29392,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:35.304137 +AWS,ap-northeast-1,g6e.4xlarge,spot,NA,1.703115,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268664 +AWS,ap-northeast-1,g6e.8xlarge,on_demand,NA,6.56775,USD,AWS Pricing API,2025-11-30T09:01:27.295542 +AWS,ap-northeast-1,g6e.8xlarge,reserved_1y,all_upfront,3.861872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:57.218485 +AWS,ap-northeast-1,g6e.8xlarge,reserved_1y,no_upfront,3.861872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:39.938781 +AWS,ap-northeast-1,g6e.8xlarge,reserved_1y,partial_upfront,3.861872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:22.926990 +AWS,ap-northeast-1,g6e.8xlarge,reserved_3y,all_upfront,1.287291,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:57.684404 +AWS,ap-northeast-1,g6e.8xlarge,reserved_3y,no_upfront,1.287291,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:43.735285 +AWS,ap-northeast-1,g6e.8xlarge,reserved_3y,partial_upfront,1.287291,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:34.098463 +AWS,ap-northeast-1,g6e.8xlarge,spot,NA,2.247986,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268581 +AWS,ap-northeast-1,g6e.xlarge,on_demand,NA,2.699,USD,AWS Pricing API,2025-11-30T09:01:30.053395 +AWS,ap-northeast-1,g6e.xlarge,reserved_1y,all_upfront,1.943329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:59.928496 +AWS,ap-northeast-1,g6e.xlarge,reserved_1y,no_upfront,1.943329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:42.700200 +AWS,ap-northeast-1,g6e.xlarge,reserved_1y,partial_upfront,1.943329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:25.647468 +AWS,ap-northeast-1,g6e.xlarge,reserved_3y,all_upfront,1.295536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:00.350350 +AWS,ap-northeast-1,g6e.xlarge,reserved_3y,no_upfront,1.295536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:46.528839 +AWS,ap-northeast-1,g6e.xlarge,reserved_3y,partial_upfront,1.295536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:36.794611 +AWS,ap-northeast-1,g6e.xlarge,spot,NA,1.151248,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268718 +AWS,ap-northeast-1,gr6.4xlarge,on_demand,NA,2.2323,USD,AWS Pricing API,2025-11-30T09:01:28.962192 +AWS,ap-northeast-1,gr6.4xlarge,reserved_1y,all_upfront,1.695434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:58.842439 +AWS,ap-northeast-1,gr6.4xlarge,reserved_1y,no_upfront,1.695434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:41.591654 +AWS,ap-northeast-1,gr6.4xlarge,reserved_1y,partial_upfront,1.695434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:24.558539 +AWS,ap-northeast-1,gr6.4xlarge,reserved_3y,all_upfront,0.565145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:59.293844 +AWS,ap-northeast-1,gr6.4xlarge,reserved_3y,no_upfront,0.565145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:45.413789 +AWS,ap-northeast-1,gr6.4xlarge,reserved_3y,partial_upfront,0.565145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:35.716863 +AWS,ap-northeast-1,gr6.4xlarge,spot,NA,0.769664,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268676 +AWS,ap-northeast-1,gr6.8xlarge,on_demand,NA,3.54801,USD,AWS Pricing API,2025-11-30T09:01:30.325972 +AWS,ap-northeast-1,gr6.8xlarge,reserved_1y,all_upfront,2.30976,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:00.197762 +AWS,ap-northeast-1,gr6.8xlarge,reserved_1y,no_upfront,2.30976,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:42.979286 +AWS,ap-northeast-1,gr6.8xlarge,reserved_1y,partial_upfront,2.30976,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:25.916394 +AWS,ap-northeast-1,gr6.8xlarge,reserved_3y,all_upfront,2.30976,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:00.613491 +AWS,ap-northeast-1,gr6.8xlarge,reserved_3y,no_upfront,2.30976,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:46.805042 +AWS,ap-northeast-1,gr6.8xlarge,reserved_3y,partial_upfront,2.30976,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:37.063612 +AWS,ap-northeast-1,gr6.8xlarge,spot,NA,1.142801,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268742 +AWS,ap-northeast-1,i2.2xlarge,on_demand,NA,2.001,USD,AWS Pricing API,2025-11-30T09:02:16.758751 +AWS,ap-northeast-1,i2.2xlarge,reserved_1y,all_upfront,1.200913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:46.134513 +AWS,ap-northeast-1,i2.2xlarge,reserved_1y,no_upfront,1.200913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:29.443460 +AWS,ap-northeast-1,i2.2xlarge,reserved_1y,partial_upfront,1.200913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:11.726717 +AWS,ap-northeast-1,i2.2xlarge,reserved_3y,all_upfront,0.400304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:45.643091 +AWS,ap-northeast-1,i2.2xlarge,reserved_3y,no_upfront,0.400304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:33.566541 +AWS,ap-northeast-1,i2.2xlarge,reserved_3y,partial_upfront,0.400304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:22.679116 +AWS,ap-northeast-1,i2.2xlarge,spot,NA,0.625352,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270609 +AWS,ap-northeast-1,i2.4xlarge,on_demand,NA,4.002,USD,AWS Pricing API,2025-11-30T09:02:12.664403 +AWS,ap-northeast-1,i2.4xlarge,reserved_1y,all_upfront,2.541932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:42.060340 +AWS,ap-northeast-1,i2.4xlarge,reserved_1y,no_upfront,2.541932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:25.355858 +AWS,ap-northeast-1,i2.4xlarge,reserved_1y,partial_upfront,2.541932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:07.684025 +AWS,ap-northeast-1,i2.4xlarge,reserved_3y,all_upfront,1.318644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:41.641631 +AWS,ap-northeast-1,i2.4xlarge,reserved_3y,no_upfront,1.318644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:29.429215 +AWS,ap-northeast-1,i2.4xlarge,reserved_3y,partial_upfront,1.318644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:18.652097 +AWS,ap-northeast-1,i2.4xlarge,spot,NA,1.278067,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270419 +AWS,ap-northeast-1,i2.8xlarge,on_demand,NA,8.004,USD,AWS Pricing API,2025-11-30T09:02:19.367735 +AWS,ap-northeast-1,i2.8xlarge,reserved_1y,all_upfront,5.147,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:48.692014 +AWS,ap-northeast-1,i2.8xlarge,reserved_1y,no_upfront,5.147,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:32.026745 +AWS,ap-northeast-1,i2.8xlarge,reserved_1y,partial_upfront,5.147,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:14.303950 +AWS,ap-northeast-1,i2.8xlarge,reserved_3y,all_upfront,5.147,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:48.183416 +AWS,ap-northeast-1,i2.8xlarge,reserved_3y,no_upfront,5.147,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:36.207870 +AWS,ap-northeast-1,i2.8xlarge,reserved_3y,partial_upfront,5.147,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:25.238584 +AWS,ap-northeast-1,i2.8xlarge,spot,NA,2.556798,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270711 +AWS,ap-northeast-1,i2.xlarge,on_demand,NA,1.001,USD,AWS Pricing API,2025-11-30T09:02:19.902903 +AWS,ap-northeast-1,i2.xlarge,reserved_1y,all_upfront,1.409475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:49.245199 +AWS,ap-northeast-1,i2.xlarge,reserved_1y,no_upfront,1.409475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:32.566380 +AWS,ap-northeast-1,i2.xlarge,reserved_1y,partial_upfront,1.409475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:14.868250 +AWS,ap-northeast-1,i2.xlarge,reserved_3y,all_upfront,0.469825,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:48.711400 +AWS,ap-northeast-1,i2.xlarge,reserved_3y,no_upfront,0.469825,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:36.751085 +AWS,ap-northeast-1,i2.xlarge,reserved_3y,partial_upfront,0.469825,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:25.769538 +AWS,ap-northeast-1,i2.xlarge,spot,NA,0.319737,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270748 +AWS,ap-northeast-1,i3.16xlarge,on_demand,NA,5.856,USD,AWS Pricing API,2025-11-30T09:02:26.228127 +AWS,ap-northeast-1,i3.16xlarge,reserved_1y,all_upfront,4.56,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:55.443535 +AWS,ap-northeast-1,i3.16xlarge,reserved_1y,no_upfront,4.56,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:38.844146 +AWS,ap-northeast-1,i3.16xlarge,reserved_1y,partial_upfront,4.56,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:21.259555 +AWS,ap-northeast-1,i3.16xlarge,reserved_3y,all_upfront,4.56,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:54.914226 +AWS,ap-northeast-1,i3.16xlarge,reserved_3y,no_upfront,4.56,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:43.118986 +AWS,ap-northeast-1,i3.16xlarge,reserved_3y,partial_upfront,4.56,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:31.958374 +AWS,ap-northeast-1,i3.16xlarge,spot,NA,1.909652,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270999 +AWS,ap-northeast-1,i3.2xlarge,on_demand,NA,0.732,USD,AWS Pricing API,2025-11-30T09:01:45.462958 +AWS,ap-northeast-1,i3.2xlarge,reserved_1y,all_upfront,0.496,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:15.325703 +AWS,ap-northeast-1,i3.2xlarge,reserved_1y,no_upfront,0.496,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:58.189979 +AWS,ap-northeast-1,i3.2xlarge,reserved_1y,partial_upfront,0.496,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:40.934870 +AWS,ap-northeast-1,i3.2xlarge,reserved_3y,all_upfront,0.496,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:15.368942 +AWS,ap-northeast-1,i3.2xlarge,reserved_3y,no_upfront,0.496,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:02.120398 +AWS,ap-northeast-1,i3.2xlarge,reserved_3y,partial_upfront,0.496,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:51.988303 +AWS,ap-northeast-1,i3.2xlarge,spot,NA,0.26668,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269347 +AWS,ap-northeast-1,i3.4xlarge,on_demand,NA,1.464,USD,AWS Pricing API,2025-11-30T09:01:46.974934 +AWS,ap-northeast-1,i3.4xlarge,reserved_1y,all_upfront,2.217922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:16.802200 +AWS,ap-northeast-1,i3.4xlarge,reserved_1y,no_upfront,2.217922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:59.689988 +AWS,ap-northeast-1,i3.4xlarge,reserved_1y,partial_upfront,2.217922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:42.411771 +AWS,ap-northeast-1,i3.4xlarge,reserved_3y,all_upfront,0.739307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:16.818867 +AWS,ap-northeast-1,i3.4xlarge,reserved_3y,no_upfront,0.739307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:03.651491 +AWS,ap-northeast-1,i3.4xlarge,reserved_3y,partial_upfront,0.739307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:53.474305 +AWS,ap-northeast-1,i3.4xlarge,spot,NA,0.556791,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269364 +AWS,ap-northeast-1,i3.8xlarge,on_demand,NA,2.928,USD,AWS Pricing API,2025-11-30T09:01:41.108269 +AWS,ap-northeast-1,i3.8xlarge,reserved_1y,all_upfront,1.903598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:11.004292 +AWS,ap-northeast-1,i3.8xlarge,reserved_1y,no_upfront,1.903598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:53.777718 +AWS,ap-northeast-1,i3.8xlarge,reserved_1y,partial_upfront,1.903598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:36.624133 +AWS,ap-northeast-1,i3.8xlarge,reserved_3y,all_upfront,1.269199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:11.122538 +AWS,ap-northeast-1,i3.8xlarge,reserved_3y,no_upfront,1.269199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:57.688179 +AWS,ap-northeast-1,i3.8xlarge,reserved_3y,partial_upfront,1.269199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:47.698990 +AWS,ap-northeast-1,i3.8xlarge,spot,NA,0.971455,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269205 +AWS,ap-northeast-1,i3.large,on_demand,NA,0.183,USD,AWS Pricing API,2025-11-30T09:01:46.151231 +AWS,ap-northeast-1,i3.large,reserved_1y,all_upfront,0.142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:15.997197 +AWS,ap-northeast-1,i3.large,reserved_1y,no_upfront,0.142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:58.869660 +AWS,ap-northeast-1,i3.large,reserved_1y,partial_upfront,0.142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:41.609440 +AWS,ap-northeast-1,i3.large,reserved_3y,all_upfront,0.142,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:16.029091 +AWS,ap-northeast-1,i3.large,reserved_3y,no_upfront,0.142,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:02.823565 +AWS,ap-northeast-1,i3.large,reserved_3y,partial_upfront,0.142,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:52.671956 +AWS,ap-northeast-1,i3.large,spot,NA,0.059834,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269360 +AWS,ap-northeast-1,i3.xlarge,on_demand,NA,0.366,USD,AWS Pricing API,2025-11-30T09:02:11.824060 +AWS,ap-northeast-1,i3.xlarge,reserved_1y,all_upfront,0.285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:41.251107 +AWS,ap-northeast-1,i3.xlarge,reserved_1y,no_upfront,0.285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:24.543373 +AWS,ap-northeast-1,i3.xlarge,reserved_1y,partial_upfront,0.285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:06.867936 +AWS,ap-northeast-1,i3.xlarge,reserved_3y,all_upfront,0.285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:40.846524 +AWS,ap-northeast-1,i3.xlarge,reserved_3y,no_upfront,0.285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:28.592082 +AWS,ap-northeast-1,i3.xlarge,reserved_3y,partial_upfront,0.285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:17.825289 +AWS,ap-northeast-1,i3.xlarge,spot,NA,0.131979,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270394 +AWS,ap-northeast-1,i3en.12xlarge,on_demand,NA,6.384,USD,AWS Pricing API,2025-11-30T09:01:43.134809 +AWS,ap-northeast-1,i3en.12xlarge,reserved_1y,all_upfront,4.977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:13.017654 +AWS,ap-northeast-1,i3en.12xlarge,reserved_1y,no_upfront,4.977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:55.865683 +AWS,ap-northeast-1,i3en.12xlarge,reserved_1y,partial_upfront,4.977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:38.635658 +AWS,ap-northeast-1,i3en.12xlarge,reserved_3y,all_upfront,4.977,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:13.114638 +AWS,ap-northeast-1,i3en.12xlarge,reserved_3y,no_upfront,4.977,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:59.753923 +AWS,ap-northeast-1,i3en.12xlarge,reserved_3y,partial_upfront,4.977,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:49.703999 +AWS,ap-northeast-1,i3en.12xlarge,spot,NA,2.248071,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269250 +AWS,ap-northeast-1,i3en.24xlarge,on_demand,NA,12.768,USD,AWS Pricing API,2025-11-30T09:01:48.461732 +AWS,ap-northeast-1,i3en.24xlarge,reserved_1y,all_upfront,17.314041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:18.300124 +AWS,ap-northeast-1,i3en.24xlarge,reserved_1y,no_upfront,17.314041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:01.199904 +AWS,ap-northeast-1,i3en.24xlarge,reserved_1y,partial_upfront,17.314041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:43.896558 +AWS,ap-northeast-1,i3en.24xlarge,reserved_3y,all_upfront,5.771347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:18.269184 +AWS,ap-northeast-1,i3en.24xlarge,reserved_3y,no_upfront,5.771347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:05.167607 +AWS,ap-northeast-1,i3en.24xlarge,reserved_3y,partial_upfront,5.771347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:54.955442 +AWS,ap-northeast-1,i3en.24xlarge,spot,NA,4.632016,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269414 +AWS,ap-northeast-1,i3en.2xlarge,on_demand,NA,1.064,USD,AWS Pricing API,2025-11-30T09:01:38.256006 +AWS,ap-northeast-1,i3en.2xlarge,reserved_1y,all_upfront,0.677968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:08.147010 +AWS,ap-northeast-1,i3en.2xlarge,reserved_1y,no_upfront,0.677968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:50.927367 +AWS,ap-northeast-1,i3en.2xlarge,reserved_1y,partial_upfront,0.677968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:33.747063 +AWS,ap-northeast-1,i3en.2xlarge,reserved_3y,all_upfront,0.225989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:08.331074 +AWS,ap-northeast-1,i3en.2xlarge,reserved_3y,no_upfront,0.225989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:54.790547 +AWS,ap-northeast-1,i3en.2xlarge,reserved_3y,partial_upfront,0.225989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:44.864708 +AWS,ap-northeast-1,i3en.2xlarge,spot,NA,0.391786,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269113 +AWS,ap-northeast-1,i3en.3xlarge,on_demand,NA,1.596,USD,AWS Pricing API,2025-11-30T09:02:33.435898 +AWS,ap-northeast-1,i3en.3xlarge,reserved_1y,all_upfront,1.284813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:02.726811 +AWS,ap-northeast-1,i3en.3xlarge,reserved_1y,no_upfront,1.284813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:46.031666 +AWS,ap-northeast-1,i3en.3xlarge,reserved_1y,partial_upfront,1.284813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:28.374612 +AWS,ap-northeast-1,i3en.3xlarge,reserved_3y,all_upfront,0.642271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:01.976470 +AWS,ap-northeast-1,i3en.3xlarge,reserved_3y,no_upfront,0.642271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:50.429696 +AWS,ap-northeast-1,i3en.3xlarge,reserved_3y,partial_upfront,0.642271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:39.084312 +AWS,ap-northeast-1,i3en.3xlarge,spot,NA,0.514227,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271268 +AWS,ap-northeast-1,i3en.6xlarge,on_demand,NA,3.192,USD,AWS Pricing API,2025-11-30T09:02:24.725787 +AWS,ap-northeast-1,i3en.6xlarge,reserved_1y,all_upfront,2.03379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:53.965923 +AWS,ap-northeast-1,i3en.6xlarge,reserved_1y,no_upfront,2.03379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:37.358589 +AWS,ap-northeast-1,i3en.6xlarge,reserved_1y,partial_upfront,2.03379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:19.683629 +AWS,ap-northeast-1,i3en.6xlarge,reserved_3y,all_upfront,0.67793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:53.453955 +AWS,ap-northeast-1,i3en.6xlarge,reserved_3y,no_upfront,0.67793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:41.585515 +AWS,ap-northeast-1,i3en.6xlarge,reserved_3y,partial_upfront,0.67793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:30.460601 +AWS,ap-northeast-1,i3en.6xlarge,spot,NA,1.149967,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270950 +AWS,ap-northeast-1,i3en.large,on_demand,NA,0.266,USD,AWS Pricing API,2025-11-30T09:01:57.035773 +AWS,ap-northeast-1,i3en.large,reserved_1y,all_upfront,0.245018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:26.814302 +AWS,ap-northeast-1,i3en.large,reserved_1y,no_upfront,0.245018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:09.837693 +AWS,ap-northeast-1,i3en.large,reserved_1y,partial_upfront,0.245018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:52.387973 +AWS,ap-northeast-1,i3en.large,reserved_3y,all_upfront,0.122339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:26.681451 +AWS,ap-northeast-1,i3en.large,reserved_3y,no_upfront,0.122339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:13.837341 +AWS,ap-northeast-1,i3en.large,reserved_3y,partial_upfront,0.122339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:03.419296 +AWS,ap-northeast-1,i3en.large,spot,NA,0.084667,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269790 +AWS,ap-northeast-1,i3en.xlarge,on_demand,NA,0.532,USD,AWS Pricing API,2025-11-30T09:01:56.362903 +AWS,ap-northeast-1,i3en.xlarge,reserved_1y,all_upfront,0.3871,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:26.143146 +AWS,ap-northeast-1,i3en.xlarge,reserved_1y,no_upfront,0.3871,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:09.157125 +AWS,ap-northeast-1,i3en.xlarge,reserved_1y,partial_upfront,0.3871,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:51.720905 +AWS,ap-northeast-1,i3en.xlarge,reserved_3y,all_upfront,0.129033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:26.012166 +AWS,ap-northeast-1,i3en.xlarge,reserved_3y,no_upfront,0.129033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:13.153868 +AWS,ap-northeast-1,i3en.xlarge,reserved_3y,partial_upfront,0.129033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:02.749077 +AWS,ap-northeast-1,i3en.xlarge,spot,NA,0.188464,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269752 +AWS,ap-northeast-1,i4i.16xlarge,on_demand,NA,6.442,USD,AWS Pricing API,2025-11-30T09:02:01.324493 +AWS,ap-northeast-1,i4i.16xlarge,reserved_1y,all_upfront,4.633904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:30.979222 +AWS,ap-northeast-1,i4i.16xlarge,reserved_1y,no_upfront,4.633904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:14.088661 +AWS,ap-northeast-1,i4i.16xlarge,reserved_1y,partial_upfront,4.633904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:56.543176 +AWS,ap-northeast-1,i4i.16xlarge,reserved_3y,all_upfront,1.544635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:30.773292 +AWS,ap-northeast-1,i4i.16xlarge,reserved_3y,no_upfront,1.544635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:18.105595 +AWS,ap-northeast-1,i4i.16xlarge,reserved_3y,partial_upfront,1.544635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:07.581316 +AWS,ap-northeast-1,i4i.16xlarge,spot,NA,2.087138,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269968 +AWS,ap-northeast-1,i4i.2xlarge,on_demand,NA,0.805,USD,AWS Pricing API,2025-11-30T09:02:17.587849 +AWS,ap-northeast-1,i4i.2xlarge,reserved_1y,all_upfront,0.591548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:46.935890 +AWS,ap-northeast-1,i4i.2xlarge,reserved_1y,no_upfront,0.591548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:30.252808 +AWS,ap-northeast-1,i4i.2xlarge,reserved_1y,partial_upfront,0.591548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:12.530579 +AWS,ap-northeast-1,i4i.2xlarge,reserved_3y,all_upfront,0.394516,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:46.431062 +AWS,ap-northeast-1,i4i.2xlarge,reserved_3y,no_upfront,0.394516,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:34.415222 +AWS,ap-northeast-1,i4i.2xlarge,reserved_3y,partial_upfront,0.394516,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:23.478359 +AWS,ap-northeast-1,i4i.2xlarge,spot,NA,0.287693,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270633 +AWS,ap-northeast-1,i4i.32xlarge,on_demand,NA,12.8832,USD,AWS Pricing API,2025-11-30T09:02:30.053363 +AWS,ap-northeast-1,i4i.32xlarge,reserved_1y,all_upfront,11.020839,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:59.284664 +AWS,ap-northeast-1,i4i.32xlarge,reserved_1y,no_upfront,11.020839,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:42.648468 +AWS,ap-northeast-1,i4i.32xlarge,reserved_1y,partial_upfront,11.020839,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:25.032438 +AWS,ap-northeast-1,i4i.32xlarge,reserved_3y,all_upfront,5.510413,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:58.623216 +AWS,ap-northeast-1,i4i.32xlarge,reserved_3y,no_upfront,5.510413,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:46.961318 +AWS,ap-northeast-1,i4i.32xlarge,reserved_3y,partial_upfront,5.510413,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:35.723187 +AWS,ap-northeast-1,i4i.32xlarge,spot,NA,4.043946,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271146 +AWS,ap-northeast-1,i4i.4xlarge,on_demand,NA,1.61,USD,AWS Pricing API,2025-11-30T09:02:05.929332 +AWS,ap-northeast-1,i4i.4xlarge,reserved_1y,all_upfront,1.241,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:35.447772 +AWS,ap-northeast-1,i4i.4xlarge,reserved_1y,no_upfront,1.241,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:18.658973 +AWS,ap-northeast-1,i4i.4xlarge,reserved_1y,partial_upfront,1.241,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:01.025593 +AWS,ap-northeast-1,i4i.4xlarge,reserved_3y,all_upfront,1.241,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:35.144081 +AWS,ap-northeast-1,i4i.4xlarge,reserved_3y,no_upfront,1.241,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:22.665532 +AWS,ap-northeast-1,i4i.4xlarge,reserved_3y,partial_upfront,1.241,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:12.032512 +AWS,ap-northeast-1,i4i.4xlarge,spot,NA,0.54936,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270136 +AWS,ap-northeast-1,i4i.8xlarge,on_demand,NA,3.221,USD,AWS Pricing API,2025-11-30T09:02:08.942658 +AWS,ap-northeast-1,i4i.8xlarge,reserved_1y,all_upfront,4.82968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:38.410882 +AWS,ap-northeast-1,i4i.8xlarge,reserved_1y,no_upfront,4.82968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:21.666748 +AWS,ap-northeast-1,i4i.8xlarge,reserved_1y,partial_upfront,4.82968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:04.053384 +AWS,ap-northeast-1,i4i.8xlarge,reserved_3y,all_upfront,1.609893,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:38.063757 +AWS,ap-northeast-1,i4i.8xlarge,reserved_3y,no_upfront,1.609893,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:25.682131 +AWS,ap-northeast-1,i4i.8xlarge,reserved_3y,partial_upfront,1.609893,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:14.978577 +AWS,ap-northeast-1,i4i.8xlarge,spot,NA,1.005483,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270306 +AWS,ap-northeast-1,i4i.large,on_demand,NA,0.201,USD,AWS Pricing API,2025-11-30T09:02:34.672815 +AWS,ap-northeast-1,i4i.large,reserved_1y,all_upfront,0.111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:03.946008 +AWS,ap-northeast-1,i4i.large,reserved_1y,no_upfront,0.111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:47.262156 +AWS,ap-northeast-1,i4i.large,reserved_1y,partial_upfront,0.111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:29.595413 +AWS,ap-northeast-1,i4i.large,reserved_3y,all_upfront,0.111,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:03.198979 +AWS,ap-northeast-1,i4i.large,reserved_3y,no_upfront,0.111,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:51.686231 +AWS,ap-northeast-1,i4i.large,reserved_3y,partial_upfront,0.111,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:40.296179 +AWS,ap-northeast-1,i4i.large,spot,NA,0.065288,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271330 +AWS,ap-northeast-1,i4i.xlarge,on_demand,NA,0.403,USD,AWS Pricing API,2025-11-30T09:02:15.940072 +AWS,ap-northeast-1,i4i.xlarge,reserved_1y,all_upfront,0.31,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:45.305488 +AWS,ap-northeast-1,i4i.xlarge,reserved_1y,no_upfront,0.31,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:28.624760 +AWS,ap-northeast-1,i4i.xlarge,reserved_1y,partial_upfront,0.31,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:10.919183 +AWS,ap-northeast-1,i4i.xlarge,reserved_3y,all_upfront,0.31,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:44.842888 +AWS,ap-northeast-1,i4i.xlarge,reserved_3y,no_upfront,0.31,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:32.744758 +AWS,ap-northeast-1,i4i.xlarge,reserved_3y,partial_upfront,0.31,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:21.870565 +AWS,ap-northeast-1,i4i.xlarge,spot,NA,0.142362,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270573 +AWS,ap-northeast-1,i7i.12xlarge,on_demand,NA,5.3143,USD,AWS Pricing API,2025-11-30T09:01:53.760124 +AWS,ap-northeast-1,i7i.12xlarge,spot,NA,1.488307,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269610 +AWS,ap-northeast-1,i7i.16xlarge,on_demand,NA,7.0858,USD,AWS Pricing API,2025-11-30T09:02:39.982655 +AWS,ap-northeast-1,i7i.16xlarge,spot,NA,1.941798,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272335 +AWS,ap-northeast-1,i7i.24xlarge,on_demand,NA,10.6286,USD,AWS Pricing API,2025-11-30T09:01:34.559181 +AWS,ap-northeast-1,i7i.24xlarge,spot,NA,2.907659,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268954 +AWS,ap-northeast-1,i7i.2xlarge,on_demand,NA,0.8857,USD,AWS Pricing API,2025-11-30T09:01:31.699210 +AWS,ap-northeast-1,i7i.2xlarge,spot,NA,0.333659,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268797 +AWS,ap-northeast-1,i7i.48xlarge,on_demand,NA,21.2573,USD,AWS Pricing API,2025-11-30T09:01:33.467856 +AWS,ap-northeast-1,i7i.48xlarge,spot,NA,5.829017,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268845 +AWS,ap-northeast-1,i7i.4xlarge,on_demand,NA,1.7714,USD,AWS Pricing API,2025-11-30T09:02:36.843317 +AWS,ap-northeast-1,i7i.4xlarge,spot,NA,0.622835,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272249 +AWS,ap-northeast-1,i7i.8xlarge,on_demand,NA,3.5429,USD,AWS Pricing API,2025-11-30T09:02:06.611833 +AWS,ap-northeast-1,i7i.8xlarge,spot,NA,1.058569,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270171 +AWS,ap-northeast-1,i7i.large,on_demand,NA,0.2214,USD,AWS Pricing API,2025-11-30T09:01:49.958857 +AWS,ap-northeast-1,i7i.large,spot,NA,0.074274,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269456 +AWS,ap-northeast-1,i7i.xlarge,on_demand,NA,0.4429,USD,AWS Pricing API,2025-11-30T09:01:58.413430 +AWS,ap-northeast-1,i7i.xlarge,spot,NA,0.144836,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269852 +AWS,ap-northeast-1,i8g.12xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T09:02:30.321818 +AWS,ap-northeast-1,i8g.12xlarge,spot,NA,2.570671,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271164 +AWS,ap-northeast-1,i8g.16xlarge,on_demand,NA,6.4512,USD,AWS Pricing API,2025-11-30T09:02:27.299821 +AWS,ap-northeast-1,i8g.16xlarge,spot,NA,3.099067,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271053 +AWS,ap-northeast-1,i8g.24xlarge,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T09:02:29.779368 +AWS,ap-northeast-1,i8g.24xlarge,spot,NA,5.087764,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271109 +AWS,ap-northeast-1,i8g.2xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T09:01:56.495185 +AWS,ap-northeast-1,i8g.2xlarge,spot,NA,0.385035,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269706 +AWS,ap-northeast-1,i8g.48xlarge,on_demand,NA,19.3536,USD,AWS Pricing API,2025-11-30T09:01:37.034914 +AWS,ap-northeast-1,i8g.48xlarge,spot,NA,9.263744,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269039 +AWS,ap-northeast-1,i8g.4xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T09:02:24.449486 +AWS,ap-northeast-1,i8g.4xlarge,spot,NA,0.784937,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270932 +AWS,ap-northeast-1,i8g.8xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T09:02:43.651556 +AWS,ap-northeast-1,i8g.8xlarge,spot,NA,1.575825,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272548 +AWS,ap-northeast-1,i8g.large,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T09:02:01.049783 +AWS,ap-northeast-1,i8g.large,spot,NA,0.096718,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269917 +AWS,ap-northeast-1,i8g.xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T09:01:52.942011 +AWS,ap-northeast-1,i8g.xlarge,spot,NA,0.194665,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269587 +AWS,ap-northeast-1,im4gn.16xlarge,on_demand,NA,6.8281,USD,AWS Pricing API,2025-11-30T09:02:00.051392 +AWS,ap-northeast-1,im4gn.16xlarge,reserved_1y,all_upfront,5.772766,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:29.776033 +AWS,ap-northeast-1,im4gn.16xlarge,reserved_1y,no_upfront,5.772766,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:12.849813 +AWS,ap-northeast-1,im4gn.16xlarge,reserved_1y,partial_upfront,5.772766,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:55.335503 +AWS,ap-northeast-1,im4gn.16xlarge,reserved_3y,all_upfront,2.886389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:29.593127 +AWS,ap-northeast-1,im4gn.16xlarge,reserved_3y,no_upfront,2.886389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:16.864569 +AWS,ap-northeast-1,im4gn.16xlarge,reserved_3y,partial_upfront,2.886389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:06.376100 +AWS,ap-northeast-1,im4gn.16xlarge,spot,NA,2.631994,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269888 +AWS,ap-northeast-1,im4gn.2xlarge,on_demand,NA,0.85351,USD,AWS Pricing API,2025-11-30T09:01:57.731907 +AWS,ap-northeast-1,im4gn.2xlarge,reserved_1y,all_upfront,0.523334,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:27.482745 +AWS,ap-northeast-1,im4gn.2xlarge,reserved_1y,no_upfront,0.523334,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:10.515758 +AWS,ap-northeast-1,im4gn.2xlarge,reserved_1y,partial_upfront,0.523334,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:53.054575 +AWS,ap-northeast-1,im4gn.2xlarge,reserved_3y,all_upfront,0.348905,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:27.348087 +AWS,ap-northeast-1,im4gn.2xlarge,reserved_3y,no_upfront,0.348905,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:14.520395 +AWS,ap-northeast-1,im4gn.2xlarge,reserved_3y,partial_upfront,0.348905,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:04.086101 +AWS,ap-northeast-1,im4gn.2xlarge,spot,NA,0.278374,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269770 +AWS,ap-northeast-1,im4gn.4xlarge,on_demand,NA,1.70702,USD,AWS Pricing API,2025-11-30T09:01:52.400852 +AWS,ap-northeast-1,im4gn.4xlarge,reserved_1y,all_upfront,1.238378,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:22.205745 +AWS,ap-northeast-1,im4gn.4xlarge,reserved_1y,no_upfront,1.238378,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:05.206127 +AWS,ap-northeast-1,im4gn.4xlarge,reserved_1y,partial_upfront,1.238378,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:47.804185 +AWS,ap-northeast-1,im4gn.4xlarge,reserved_3y,all_upfront,0.825593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:22.097141 +AWS,ap-northeast-1,im4gn.4xlarge,reserved_3y,no_upfront,0.825593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:09.161886 +AWS,ap-northeast-1,im4gn.4xlarge,reserved_3y,partial_upfront,0.825593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:58.822366 +AWS,ap-northeast-1,im4gn.4xlarge,spot,NA,0.559187,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269564 +AWS,ap-northeast-1,im4gn.8xlarge,on_demand,NA,3.41405,USD,AWS Pricing API,2025-11-30T09:01:52.808595 +AWS,ap-northeast-1,im4gn.8xlarge,reserved_1y,all_upfront,2.051598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:22.611304 +AWS,ap-northeast-1,im4gn.8xlarge,reserved_1y,no_upfront,2.051598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:05.615455 +AWS,ap-northeast-1,im4gn.8xlarge,reserved_1y,partial_upfront,2.051598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:48.208798 +AWS,ap-northeast-1,im4gn.8xlarge,reserved_3y,all_upfront,0.683866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:22.545756 +AWS,ap-northeast-1,im4gn.8xlarge,reserved_3y,no_upfront,0.683866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:09.575884 +AWS,ap-northeast-1,im4gn.8xlarge,reserved_3y,partial_upfront,0.683866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:59.232933 +AWS,ap-northeast-1,im4gn.8xlarge,spot,NA,1.104429,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269570 +AWS,ap-northeast-1,im4gn.large,on_demand,NA,0.21338,USD,AWS Pricing API,2025-11-30T09:01:53.481565 +AWS,ap-northeast-1,im4gn.large,reserved_1y,all_upfront,0.16254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:23.281435 +AWS,ap-northeast-1,im4gn.large,reserved_1y,no_upfront,0.16254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:06.289181 +AWS,ap-northeast-1,im4gn.large,reserved_1y,partial_upfront,0.16254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:48.878762 +AWS,ap-northeast-1,im4gn.large,reserved_3y,all_upfront,0.16254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:23.213263 +AWS,ap-northeast-1,im4gn.large,reserved_3y,no_upfront,0.16254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:10.261007 +AWS,ap-northeast-1,im4gn.large,reserved_3y,partial_upfront,0.16254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:59.896047 +AWS,ap-northeast-1,im4gn.large,spot,NA,0.068528,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269615 +AWS,ap-northeast-1,im4gn.xlarge,on_demand,NA,0.42676,USD,AWS Pricing API,2025-11-30T09:02:42.017432 +AWS,ap-northeast-1,im4gn.xlarge,reserved_1y,all_upfront,0.360748,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:11.247433 +AWS,ap-northeast-1,im4gn.xlarge,reserved_1y,no_upfront,0.360748,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:54.623268 +AWS,ap-northeast-1,im4gn.xlarge,reserved_1y,partial_upfront,0.360748,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:36.850677 +AWS,ap-northeast-1,im4gn.xlarge,reserved_3y,all_upfront,0.180383,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:10.354259 +AWS,ap-northeast-1,im4gn.xlarge,reserved_3y,no_upfront,0.180383,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:59.105416 +AWS,ap-northeast-1,im4gn.xlarge,reserved_3y,partial_upfront,0.180383,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:47.541072 +AWS,ap-northeast-1,im4gn.xlarge,spot,NA,0.138746,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272452 +AWS,ap-northeast-1,is4gen.2xlarge,on_demand,NA,1.3566,USD,AWS Pricing API,2025-11-30T09:01:50.775179 +AWS,ap-northeast-1,is4gen.2xlarge,reserved_1y,all_upfront,0.864384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:20.593867 +AWS,ap-northeast-1,is4gen.2xlarge,reserved_1y,no_upfront,0.864384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:03.577026 +AWS,ap-northeast-1,is4gen.2xlarge,reserved_1y,partial_upfront,0.864384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:46.188051 +AWS,ap-northeast-1,is4gen.2xlarge,reserved_3y,all_upfront,0.288128,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:20.510994 +AWS,ap-northeast-1,is4gen.2xlarge,reserved_3y,no_upfront,0.288128,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:07.516215 +AWS,ap-northeast-1,is4gen.2xlarge,reserved_3y,partial_upfront,0.288128,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:57.224474 +AWS,ap-northeast-1,is4gen.2xlarge,spot,NA,0.457918,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269504 +AWS,ap-northeast-1,is4gen.4xlarge,on_demand,NA,2.7132,USD,AWS Pricing API,2025-11-30T09:02:34.400163 +AWS,ap-northeast-1,is4gen.4xlarge,reserved_1y,all_upfront,1.728767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:03.674658 +AWS,ap-northeast-1,is4gen.4xlarge,reserved_1y,no_upfront,1.728767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:46.989418 +AWS,ap-northeast-1,is4gen.4xlarge,reserved_1y,partial_upfront,1.728767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:29.320685 +AWS,ap-northeast-1,is4gen.4xlarge,reserved_3y,all_upfront,0.576256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:02.930376 +AWS,ap-northeast-1,is4gen.4xlarge,reserved_3y,no_upfront,0.576256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:51.410967 +AWS,ap-northeast-1,is4gen.4xlarge,reserved_3y,partial_upfront,0.576256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:40.031417 +AWS,ap-northeast-1,is4gen.4xlarge,spot,NA,0.868655,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271317 +AWS,ap-northeast-1,is4gen.8xlarge,on_demand,NA,5.4264,USD,AWS Pricing API,2025-11-30T09:01:32.645466 +AWS,ap-northeast-1,is4gen.8xlarge,reserved_1y,all_upfront,4.3765,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:02.510802 +AWS,ap-northeast-1,is4gen.8xlarge,reserved_1y,no_upfront,4.3765,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:45.344644 +AWS,ap-northeast-1,is4gen.8xlarge,reserved_1y,partial_upfront,4.3765,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:28.204000 +AWS,ap-northeast-1,is4gen.8xlarge,reserved_3y,all_upfront,4.3765,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:02.884884 +AWS,ap-northeast-1,is4gen.8xlarge,reserved_3y,no_upfront,4.3765,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:49.141365 +AWS,ap-northeast-1,is4gen.8xlarge,reserved_3y,partial_upfront,4.3765,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:39.358681 +AWS,ap-northeast-1,is4gen.8xlarge,spot,NA,1.756086,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268858 +AWS,ap-northeast-1,is4gen.large,on_demand,NA,0.33915,USD,AWS Pricing API,2025-11-30T09:02:14.440023 +AWS,ap-northeast-1,is4gen.large,reserved_1y,all_upfront,0.23154,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:43.818440 +AWS,ap-northeast-1,is4gen.large,reserved_1y,no_upfront,0.23154,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:27.134327 +AWS,ap-northeast-1,is4gen.large,reserved_1y,partial_upfront,0.23154,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:09.435484 +AWS,ap-northeast-1,is4gen.large,reserved_3y,all_upfront,0.23154,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:43.368874 +AWS,ap-northeast-1,is4gen.large,reserved_3y,no_upfront,0.23154,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:31.236274 +AWS,ap-northeast-1,is4gen.large,reserved_3y,partial_upfront,0.23154,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:20.392611 +AWS,ap-northeast-1,is4gen.large,spot,NA,0.112836,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270510 +AWS,ap-northeast-1,is4gen.xlarge,on_demand,NA,0.6783,USD,AWS Pricing API,2025-11-30T09:01:58.548963 +AWS,ap-northeast-1,is4gen.xlarge,reserved_1y,all_upfront,0.441058,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:28.293951 +AWS,ap-northeast-1,is4gen.xlarge,reserved_1y,no_upfront,0.441058,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:11.349052 +AWS,ap-northeast-1,is4gen.xlarge,reserved_1y,partial_upfront,0.441058,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:53.853858 +AWS,ap-northeast-1,is4gen.xlarge,reserved_3y,all_upfront,0.294026,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:28.145839 +AWS,ap-northeast-1,is4gen.xlarge,reserved_3y,no_upfront,0.294026,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:15.344696 +AWS,ap-northeast-1,is4gen.xlarge,reserved_3y,partial_upfront,0.294026,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:04.888730 +AWS,ap-northeast-1,is4gen.xlarge,spot,NA,0.213982,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269865 +AWS,ap-northeast-1,m4.10xlarge,on_demand,NA,2.58,USD,AWS Pricing API,2025-11-30T09:02:03.847698 +AWS,ap-northeast-1,m4.10xlarge,reserved_1y,all_upfront,1.626826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:33.407915 +AWS,ap-northeast-1,m4.10xlarge,reserved_1y,no_upfront,1.626826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:16.579328 +AWS,ap-northeast-1,m4.10xlarge,reserved_1y,partial_upfront,1.626826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:59.008332 +AWS,ap-northeast-1,m4.10xlarge,reserved_3y,all_upfront,0.542275,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:33.157889 +AWS,ap-northeast-1,m4.10xlarge,reserved_3y,no_upfront,0.542275,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:20.579844 +AWS,ap-northeast-1,m4.10xlarge,reserved_3y,partial_upfront,0.542275,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:10.007643 +AWS,ap-northeast-1,m4.10xlarge,spot,NA,0.868556,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269997 +AWS,ap-northeast-1,m4.16xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T09:02:09.079655 +AWS,ap-northeast-1,m4.16xlarge,reserved_1y,all_upfront,2.602854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:38.545452 +AWS,ap-northeast-1,m4.16xlarge,reserved_1y,no_upfront,2.602854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:21.800886 +AWS,ap-northeast-1,m4.16xlarge,reserved_1y,partial_upfront,2.602854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:04.187097 +AWS,ap-northeast-1,m4.16xlarge,reserved_3y,all_upfront,0.867618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:38.196910 +AWS,ap-northeast-1,m4.16xlarge,reserved_3y,no_upfront,0.867618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:25.820451 +AWS,ap-northeast-1,m4.16xlarge,reserved_3y,partial_upfront,0.867618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:15.112175 +AWS,ap-northeast-1,m4.16xlarge,spot,NA,1.36247,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270294 +AWS,ap-northeast-1,m4.2xlarge,on_demand,NA,0.516,USD,AWS Pricing API,2025-11-30T09:01:50.367258 +AWS,ap-northeast-1,m4.2xlarge,reserved_1y,all_upfront,0.381768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:20.191189 +AWS,ap-northeast-1,m4.2xlarge,reserved_1y,no_upfront,0.381768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:03.156014 +AWS,ap-northeast-1,m4.2xlarge,reserved_1y,partial_upfront,0.381768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:45.787613 +AWS,ap-northeast-1,m4.2xlarge,reserved_3y,all_upfront,0.254523,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:20.112003 +AWS,ap-northeast-1,m4.2xlarge,reserved_3y,no_upfront,0.254523,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:07.098813 +AWS,ap-northeast-1,m4.2xlarge,reserved_3y,partial_upfront,0.254523,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:56.823400 +AWS,ap-northeast-1,m4.2xlarge,spot,NA,0.211025,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269498 +AWS,ap-northeast-1,m4.4xlarge,on_demand,NA,1.032,USD,AWS Pricing API,2025-11-30T09:02:25.134815 +AWS,ap-northeast-1,m4.4xlarge,reserved_1y,all_upfront,0.8018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:54.371610 +AWS,ap-northeast-1,m4.4xlarge,reserved_1y,no_upfront,0.8018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:37.763502 +AWS,ap-northeast-1,m4.4xlarge,reserved_1y,partial_upfront,0.8018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:20.087691 +AWS,ap-northeast-1,m4.4xlarge,reserved_3y,all_upfront,0.8018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:53.862676 +AWS,ap-northeast-1,m4.4xlarge,reserved_3y,no_upfront,0.8018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:41.996100 +AWS,ap-northeast-1,m4.4xlarge,reserved_3y,partial_upfront,0.8018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:30.872415 +AWS,ap-northeast-1,m4.4xlarge,spot,NA,0.452416,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270938 +AWS,ap-northeast-1,m4.large,on_demand,NA,0.129,USD,AWS Pricing API,2025-11-30T09:01:32.239708 +AWS,ap-northeast-1,m4.large,reserved_1y,all_upfront,0.0871,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:02.100001 +AWS,ap-northeast-1,m4.large,reserved_1y,no_upfront,0.0871,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:44.937106 +AWS,ap-northeast-1,m4.large,reserved_1y,partial_upfront,0.0871,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:27.795199 +AWS,ap-northeast-1,m4.large,reserved_3y,all_upfront,0.0871,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:02.487169 +AWS,ap-northeast-1,m4.large,reserved_3y,no_upfront,0.0871,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:48.732706 +AWS,ap-northeast-1,m4.large,reserved_3y,partial_upfront,0.0871,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:38.947512 +AWS,ap-northeast-1,m4.large,spot,NA,0.052151,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268815 +AWS,ap-northeast-1,m4.xlarge,on_demand,NA,0.258,USD,AWS Pricing API,2025-11-30T09:02:13.496790 +AWS,ap-northeast-1,m4.xlarge,reserved_1y,all_upfront,0.190834,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:42.874914 +AWS,ap-northeast-1,m4.xlarge,reserved_1y,no_upfront,0.190834,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:26.177926 +AWS,ap-northeast-1,m4.xlarge,reserved_1y,partial_upfront,0.190834,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:08.498199 +AWS,ap-northeast-1,m4.xlarge,reserved_3y,all_upfront,0.127211,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:42.444725 +AWS,ap-northeast-1,m4.xlarge,reserved_3y,no_upfront,0.127211,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:30.264915 +AWS,ap-northeast-1,m4.xlarge,reserved_3y,partial_upfront,0.127211,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:19.463119 +AWS,ap-northeast-1,m4.xlarge,spot,NA,0.10303,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270431 +AWS,ap-northeast-1,m5.12xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T09:01:50.503693 +AWS,ap-northeast-1,m5.12xlarge,reserved_1y,all_upfront,1.875,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:20.325018 +AWS,ap-northeast-1,m5.12xlarge,reserved_1y,no_upfront,1.875,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:03.300613 +AWS,ap-northeast-1,m5.12xlarge,reserved_1y,partial_upfront,1.875,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:45.920094 +AWS,ap-northeast-1,m5.12xlarge,reserved_3y,all_upfront,1.875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:20.245396 +AWS,ap-northeast-1,m5.12xlarge,reserved_3y,no_upfront,1.875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:07.236842 +AWS,ap-northeast-1,m5.12xlarge,reserved_3y,partial_upfront,1.875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:56.957587 +AWS,ap-northeast-1,m5.12xlarge,spot,NA,0.996631,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269484 +AWS,ap-northeast-1,m5.16xlarge,on_demand,NA,3.968,USD,AWS Pricing API,2025-11-30T09:02:23.499075 +AWS,ap-northeast-1,m5.16xlarge,reserved_1y,all_upfront,3.027584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:52.757407 +AWS,ap-northeast-1,m5.16xlarge,reserved_1y,no_upfront,3.027584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:36.120053 +AWS,ap-northeast-1,m5.16xlarge,reserved_1y,partial_upfront,3.027584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:18.470935 +AWS,ap-northeast-1,m5.16xlarge,reserved_3y,all_upfront,2.018528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:52.177102 +AWS,ap-northeast-1,m5.16xlarge,reserved_3y,no_upfront,2.018528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:40.350014 +AWS,ap-northeast-1,m5.16xlarge,reserved_3y,partial_upfront,2.018528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:29.265222 +AWS,ap-northeast-1,m5.16xlarge,spot,NA,1.317481,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270915 +AWS,ap-northeast-1,m5.24xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T09:02:34.945372 +AWS,ap-northeast-1,m5.24xlarge,reserved_1y,all_upfront,3.571616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:04.217611 +AWS,ap-northeast-1,m5.24xlarge,reserved_1y,no_upfront,3.571616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:47.530945 +AWS,ap-northeast-1,m5.24xlarge,reserved_1y,partial_upfront,3.571616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:29.861792 +AWS,ap-northeast-1,m5.24xlarge,reserved_3y,all_upfront,2.381205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:03.461530 +AWS,ap-northeast-1,m5.24xlarge,reserved_3y,no_upfront,2.381205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:51.962329 +AWS,ap-northeast-1,m5.24xlarge,reserved_3y,partial_upfront,2.381205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:40.570988 +AWS,ap-northeast-1,m5.24xlarge,spot,NA,2.010598,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271348 +AWS,ap-northeast-1,m5.2xlarge,on_demand,NA,0.496,USD,AWS Pricing API,2025-11-30T09:02:06.748365 +AWS,ap-northeast-1,m5.2xlarge,reserved_1y,all_upfront,0.378155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:36.250834 +AWS,ap-northeast-1,m5.2xlarge,reserved_1y,no_upfront,0.378155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:19.487909 +AWS,ap-northeast-1,m5.2xlarge,reserved_1y,partial_upfront,0.378155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:01.842532 +AWS,ap-northeast-1,m5.2xlarge,reserved_3y,all_upfront,0.252052,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:35.949000 +AWS,ap-northeast-1,m5.2xlarge,reserved_3y,no_upfront,0.252052,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:23.495347 +AWS,ap-northeast-1,m5.2xlarge,reserved_3y,partial_upfront,0.252052,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:12.831511 +AWS,ap-northeast-1,m5.2xlarge,spot,NA,0.198116,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270232 +AWS,ap-northeast-1,m5.4xlarge,on_demand,NA,0.992,USD,AWS Pricing API,2025-11-30T09:02:16.211677 +AWS,ap-northeast-1,m5.4xlarge,reserved_1y,all_upfront,0.583333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:45.580885 +AWS,ap-northeast-1,m5.4xlarge,reserved_1y,no_upfront,0.583333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:28.897972 +AWS,ap-northeast-1,m5.4xlarge,reserved_1y,partial_upfront,0.583333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:11.186599 +AWS,ap-northeast-1,m5.4xlarge,reserved_3y,all_upfront,0.194444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:45.107146 +AWS,ap-northeast-1,m5.4xlarge,reserved_3y,no_upfront,0.194444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:33.018982 +AWS,ap-northeast-1,m5.4xlarge,reserved_3y,partial_upfront,0.194444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:22.142111 +AWS,ap-northeast-1,m5.4xlarge,spot,NA,0.426033,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270541 +AWS,ap-northeast-1,m5.8xlarge,on_demand,NA,1.984,USD,AWS Pricing API,2025-11-30T09:02:42.971031 +AWS,ap-northeast-1,m5.8xlarge,reserved_1y,all_upfront,1.483333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:12.199272 +AWS,ap-northeast-1,m5.8xlarge,reserved_1y,no_upfront,1.483333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:55.573404 +AWS,ap-northeast-1,m5.8xlarge,reserved_1y,partial_upfront,1.483333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:37.817452 +AWS,ap-northeast-1,m5.8xlarge,reserved_3y,all_upfront,0.494444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:11.282151 +AWS,ap-northeast-1,m5.8xlarge,reserved_3y,no_upfront,0.494444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:00.066813 +AWS,ap-northeast-1,m5.8xlarge,reserved_3y,partial_upfront,0.494444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:48.479975 +AWS,ap-northeast-1,m5.8xlarge,spot,NA,0.645463,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272512 +AWS,ap-northeast-1,m5.large,on_demand,NA,0.124,USD,AWS Pricing API,2025-11-30T09:02:07.155450 +AWS,ap-northeast-1,m5.large,reserved_1y,all_upfront,0.078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:36.658981 +AWS,ap-northeast-1,m5.large,reserved_1y,no_upfront,0.078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:19.903065 +AWS,ap-northeast-1,m5.large,reserved_1y,partial_upfront,0.078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:02.276640 +AWS,ap-northeast-1,m5.large,reserved_3y,all_upfront,0.078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:36.351662 +AWS,ap-northeast-1,m5.large,reserved_3y,no_upfront,0.078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:23.906901 +AWS,ap-northeast-1,m5.large,reserved_3y,partial_upfront,0.078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:13.231953 +AWS,ap-northeast-1,m5.large,spot,NA,0.048429,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270190 +AWS,ap-northeast-1,m5.xlarge,on_demand,NA,0.248,USD,AWS Pricing API,2025-11-30T09:02:40.791906 +AWS,ap-northeast-1,m5.xlarge,reserved_1y,all_upfront,0.199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:10.018998 +AWS,ap-northeast-1,m5.xlarge,reserved_1y,no_upfront,0.199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:53.385347 +AWS,ap-northeast-1,m5.xlarge,reserved_1y,partial_upfront,0.199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:35.627164 +AWS,ap-northeast-1,m5.xlarge,reserved_3y,all_upfront,0.199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:09.172591 +AWS,ap-northeast-1,m5.xlarge,reserved_3y,no_upfront,0.199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:57.868921 +AWS,ap-northeast-1,m5.xlarge,reserved_3y,partial_upfront,0.199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:46.325447 +AWS,ap-northeast-1,m5.xlarge,spot,NA,0.092163,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272367 +AWS,ap-northeast-1,m5a.12xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T09:02:07.705976 +AWS,ap-northeast-1,m5a.12xlarge,reserved_1y,all_upfront,2.048087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:37.196591 +AWS,ap-northeast-1,m5a.12xlarge,reserved_1y,no_upfront,2.048087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:20.444323 +AWS,ap-northeast-1,m5a.12xlarge,reserved_1y,partial_upfront,2.048087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:02.817961 +AWS,ap-northeast-1,m5a.12xlarge,reserved_3y,all_upfront,1.365362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:36.879521 +AWS,ap-northeast-1,m5a.12xlarge,reserved_3y,no_upfront,1.365362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:24.452850 +AWS,ap-northeast-1,m5a.12xlarge,reserved_3y,partial_upfront,1.365362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:13.771743 +AWS,ap-northeast-1,m5a.12xlarge,spot,NA,1.04843,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270208 +AWS,ap-northeast-1,m5a.16xlarge,on_demand,NA,3.584,USD,AWS Pricing API,2025-11-30T09:02:25.269735 +AWS,ap-northeast-1,m5a.16xlarge,reserved_1y,all_upfront,2.731525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:54.505502 +AWS,ap-northeast-1,m5a.16xlarge,reserved_1y,no_upfront,2.731525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:37.898302 +AWS,ap-northeast-1,m5a.16xlarge,reserved_1y,partial_upfront,2.731525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:20.222149 +AWS,ap-northeast-1,m5a.16xlarge,reserved_3y,all_upfront,1.821175,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:53.993733 +AWS,ap-northeast-1,m5a.16xlarge,reserved_3y,no_upfront,1.821175,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:42.134982 +AWS,ap-northeast-1,m5a.16xlarge,reserved_3y,partial_upfront,1.821175,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:31.008709 +AWS,ap-northeast-1,m5a.16xlarge,spot,NA,1.285462,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270944 +AWS,ap-northeast-1,m5a.24xlarge,on_demand,NA,5.376,USD,AWS Pricing API,2025-11-30T09:02:00.207185 +AWS,ap-northeast-1,m5a.24xlarge,reserved_1y,all_upfront,4.300571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:29.908817 +AWS,ap-northeast-1,m5a.24xlarge,reserved_1y,no_upfront,4.300571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:12.984401 +AWS,ap-northeast-1,m5a.24xlarge,reserved_1y,partial_upfront,4.300571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:55.469942 +AWS,ap-northeast-1,m5a.24xlarge,reserved_3y,all_upfront,2.15019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:29.724532 +AWS,ap-northeast-1,m5a.24xlarge,reserved_3y,no_upfront,2.15019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:17.001064 +AWS,ap-northeast-1,m5a.24xlarge,reserved_3y,partial_upfront,2.15019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:06.510262 +AWS,ap-northeast-1,m5a.24xlarge,spot,NA,1.731485,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269882 +AWS,ap-northeast-1,m5a.2xlarge,on_demand,NA,0.448,USD,AWS Pricing API,2025-11-30T09:01:52.672493 +AWS,ap-northeast-1,m5a.2xlarge,reserved_1y,all_upfront,0.26347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:22.475889 +AWS,ap-northeast-1,m5a.2xlarge,reserved_1y,no_upfront,0.26347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:05.479479 +AWS,ap-northeast-1,m5a.2xlarge,reserved_1y,partial_upfront,0.26347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:48.075375 +AWS,ap-northeast-1,m5a.2xlarge,reserved_3y,all_upfront,0.087823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:22.414378 +AWS,ap-northeast-1,m5a.2xlarge,reserved_3y,no_upfront,0.087823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:09.437835 +AWS,ap-northeast-1,m5a.2xlarge,reserved_3y,partial_upfront,0.087823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:59.098899 +AWS,ap-northeast-1,m5a.2xlarge,spot,NA,0.20646,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269546 +AWS,ap-northeast-1,m5a.4xlarge,on_demand,NA,0.896,USD,AWS Pricing API,2025-11-30T09:02:33.569582 +AWS,ap-northeast-1,m5a.4xlarge,reserved_1y,all_upfront,1.419863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:02.861774 +AWS,ap-northeast-1,m5a.4xlarge,reserved_1y,no_upfront,1.419863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:46.167571 +AWS,ap-northeast-1,m5a.4xlarge,reserved_1y,partial_upfront,1.419863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:28.506723 +AWS,ap-northeast-1,m5a.4xlarge,reserved_3y,all_upfront,0.473288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:02.116347 +AWS,ap-northeast-1,m5a.4xlarge,reserved_3y,no_upfront,0.473288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:50.568149 +AWS,ap-northeast-1,m5a.4xlarge,reserved_3y,partial_upfront,0.473288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:39.216452 +AWS,ap-northeast-1,m5a.4xlarge,spot,NA,0.370373,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271243 +AWS,ap-northeast-1,m5a.8xlarge,on_demand,NA,1.792,USD,AWS Pricing API,2025-11-30T09:01:43.678993 +AWS,ap-northeast-1,m5a.8xlarge,reserved_1y,all_upfront,1.365763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:13.562306 +AWS,ap-northeast-1,m5a.8xlarge,reserved_1y,no_upfront,1.365763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:56.411543 +AWS,ap-northeast-1,m5a.8xlarge,reserved_1y,partial_upfront,1.365763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:39.171928 +AWS,ap-northeast-1,m5a.8xlarge,reserved_3y,all_upfront,0.910588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:13.648318 +AWS,ap-northeast-1,m5a.8xlarge,reserved_3y,no_upfront,0.910588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:00.307286 +AWS,ap-northeast-1,m5a.8xlarge,reserved_3y,partial_upfront,0.910588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:50.240512 +AWS,ap-northeast-1,m5a.8xlarge,spot,NA,0.752416,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269297 +AWS,ap-northeast-1,m5a.large,on_demand,NA,0.112,USD,AWS Pricing API,2025-11-30T09:02:02.753554 +AWS,ap-northeast-1,m5a.large,reserved_1y,all_upfront,0.083676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:32.319608 +AWS,ap-northeast-1,m5a.large,reserved_1y,no_upfront,0.083676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:15.465610 +AWS,ap-northeast-1,m5a.large,reserved_1y,partial_upfront,0.083676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:57.911533 +AWS,ap-northeast-1,m5a.large,reserved_3y,all_upfront,0.027892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:32.089891 +AWS,ap-northeast-1,m5a.large,reserved_3y,no_upfront,0.027892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:19.474849 +AWS,ap-northeast-1,m5a.large,reserved_3y,partial_upfront,0.027892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:08.931203 +AWS,ap-northeast-1,m5a.large,spot,NA,0.046814,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270026 +AWS,ap-northeast-1,m5a.xlarge,on_demand,NA,0.224,USD,AWS Pricing API,2025-11-30T09:02:04.797430 +AWS,ap-northeast-1,m5a.xlarge,reserved_1y,all_upfront,0.252626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:34.361200 +AWS,ap-northeast-1,m5a.xlarge,reserved_1y,no_upfront,0.252626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:17.534548 +AWS,ap-northeast-1,m5a.xlarge,reserved_1y,partial_upfront,0.252626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:59.948737 +AWS,ap-northeast-1,m5a.xlarge,reserved_3y,all_upfront,0.084209,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:34.079673 +AWS,ap-northeast-1,m5a.xlarge,reserved_3y,no_upfront,0.084209,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:21.557679 +AWS,ap-northeast-1,m5a.xlarge,reserved_3y,partial_upfront,0.084209,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:10.945161 +AWS,ap-northeast-1,m5a.xlarge,spot,NA,0.100091,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270123 +AWS,ap-northeast-1,m5d.12xlarge,on_demand,NA,3.504,USD,AWS Pricing API,2025-11-30T09:01:34.967812 +AWS,ap-northeast-1,m5d.12xlarge,reserved_1y,all_upfront,2.807,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:04.810883 +AWS,ap-northeast-1,m5d.12xlarge,reserved_1y,no_upfront,2.807,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:47.663360 +AWS,ap-northeast-1,m5d.12xlarge,reserved_1y,partial_upfront,2.807,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:30.488458 +AWS,ap-northeast-1,m5d.12xlarge,reserved_3y,all_upfront,2.807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:05.144627 +AWS,ap-northeast-1,m5d.12xlarge,reserved_3y,no_upfront,2.807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:51.474507 +AWS,ap-northeast-1,m5d.12xlarge,reserved_3y,partial_upfront,2.807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:41.641253 +AWS,ap-northeast-1,m5d.12xlarge,spot,NA,1.302294,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268908 +AWS,ap-northeast-1,m5d.16xlarge,on_demand,NA,4.672,USD,AWS Pricing API,2025-11-30T09:02:20.319762 +AWS,ap-northeast-1,m5d.16xlarge,reserved_1y,all_upfront,2.943,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:49.652618 +AWS,ap-northeast-1,m5d.16xlarge,reserved_1y,no_upfront,2.943,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:32.979653 +AWS,ap-northeast-1,m5d.16xlarge,reserved_1y,partial_upfront,2.943,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:15.273505 +AWS,ap-northeast-1,m5d.16xlarge,reserved_3y,all_upfront,2.943,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:49.115233 +AWS,ap-northeast-1,m5d.16xlarge,reserved_3y,no_upfront,2.943,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:37.170602 +AWS,ap-northeast-1,m5d.16xlarge,reserved_3y,partial_upfront,2.943,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:26.171504 +AWS,ap-northeast-1,m5d.16xlarge,spot,NA,1.664054,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270705 +AWS,ap-northeast-1,m5d.24xlarge,on_demand,NA,7.008,USD,AWS Pricing API,2025-11-30T09:02:03.711751 +AWS,ap-northeast-1,m5d.24xlarge,reserved_1y,all_upfront,5.614,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:33.274982 +AWS,ap-northeast-1,m5d.24xlarge,reserved_1y,no_upfront,5.614,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:16.443499 +AWS,ap-northeast-1,m5d.24xlarge,reserved_1y,partial_upfront,5.614,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:58.873921 +AWS,ap-northeast-1,m5d.24xlarge,reserved_3y,all_upfront,5.614,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:33.023000 +AWS,ap-northeast-1,m5d.24xlarge,reserved_3y,no_upfront,5.614,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:20.440645 +AWS,ap-northeast-1,m5d.24xlarge,reserved_3y,partial_upfront,5.614,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:09.874928 +AWS,ap-northeast-1,m5d.24xlarge,spot,NA,2.438631,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270037 +AWS,ap-northeast-1,m5d.2xlarge,on_demand,NA,0.584,USD,AWS Pricing API,2025-11-30T09:01:47.921462 +AWS,ap-northeast-1,m5d.2xlarge,reserved_1y,all_upfront,0.343379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:17.757276 +AWS,ap-northeast-1,m5d.2xlarge,reserved_1y,no_upfront,0.343379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:00.653815 +AWS,ap-northeast-1,m5d.2xlarge,reserved_1y,partial_upfront,0.343379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:43.346759 +AWS,ap-northeast-1,m5d.2xlarge,reserved_3y,all_upfront,0.11446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:17.741288 +AWS,ap-northeast-1,m5d.2xlarge,reserved_3y,no_upfront,0.11446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:04.605557 +AWS,ap-northeast-1,m5d.2xlarge,reserved_3y,partial_upfront,0.11446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:54.413778 +AWS,ap-northeast-1,m5d.2xlarge,spot,NA,0.258231,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269410 +AWS,ap-northeast-1,m5d.4xlarge,on_demand,NA,1.168,USD,AWS Pricing API,2025-11-30T09:01:59.090353 +AWS,ap-northeast-1,m5d.4xlarge,reserved_1y,all_upfront,0.873288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:28.832735 +AWS,ap-northeast-1,m5d.4xlarge,reserved_1y,no_upfront,0.873288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:11.892059 +AWS,ap-northeast-1,m5d.4xlarge,reserved_1y,partial_upfront,0.873288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:54.396695 +AWS,ap-northeast-1,m5d.4xlarge,reserved_3y,all_upfront,0.291096,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:28.673222 +AWS,ap-northeast-1,m5d.4xlarge,reserved_3y,no_upfront,0.291096,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:15.906138 +AWS,ap-northeast-1,m5d.4xlarge,reserved_3y,partial_upfront,0.291096,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:05.439944 +AWS,ap-northeast-1,m5d.4xlarge,spot,NA,0.46135,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269840 +AWS,ap-northeast-1,m5d.8xlarge,on_demand,NA,2.336,USD,AWS Pricing API,2025-11-30T09:02:42.828788 +AWS,ap-northeast-1,m5d.8xlarge,reserved_1y,all_upfront,1.373516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:12.063820 +AWS,ap-northeast-1,m5d.8xlarge,reserved_1y,no_upfront,1.373516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:55.439535 +AWS,ap-northeast-1,m5d.8xlarge,reserved_1y,partial_upfront,1.373516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:37.660357 +AWS,ap-northeast-1,m5d.8xlarge,reserved_3y,all_upfront,0.457839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:11.152140 +AWS,ap-northeast-1,m5d.8xlarge,reserved_3y,no_upfront,0.457839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:59.922143 +AWS,ap-northeast-1,m5d.8xlarge,reserved_3y,partial_upfront,0.457839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:48.346385 +AWS,ap-northeast-1,m5d.8xlarge,spot,NA,0.870537,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272488 +AWS,ap-northeast-1,m5d.large,on_demand,NA,0.146,USD,AWS Pricing API,2025-11-30T09:01:38.796744 +AWS,ap-northeast-1,m5d.large,reserved_1y,all_upfront,0.092,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:08.691252 +AWS,ap-northeast-1,m5d.large,reserved_1y,no_upfront,0.092,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:51.474524 +AWS,ap-northeast-1,m5d.large,reserved_1y,partial_upfront,0.092,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:34.284313 +AWS,ap-northeast-1,m5d.large,reserved_3y,all_upfront,0.092,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:08.862741 +AWS,ap-northeast-1,m5d.large,reserved_3y,no_upfront,0.092,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:55.351951 +AWS,ap-northeast-1,m5d.large,reserved_3y,partial_upfront,0.092,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:45.403095 +AWS,ap-northeast-1,m5d.large,spot,NA,0.060472,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269094 +AWS,ap-northeast-1,m5d.xlarge,on_demand,NA,0.292,USD,AWS Pricing API,2025-11-30T09:01:54.855273 +AWS,ap-northeast-1,m5d.xlarge,reserved_1y,all_upfront,0.171689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:24.642080 +AWS,ap-northeast-1,m5d.xlarge,reserved_1y,no_upfront,0.171689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:07.654223 +AWS,ap-northeast-1,m5d.xlarge,reserved_1y,partial_upfront,0.171689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:50.250284 +AWS,ap-northeast-1,m5d.xlarge,reserved_3y,all_upfront,0.05723,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:24.538482 +AWS,ap-northeast-1,m5d.xlarge,reserved_3y,no_upfront,0.05723,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:11.641697 +AWS,ap-northeast-1,m5d.xlarge,reserved_3y,partial_upfront,0.05723,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:01.248027 +AWS,ap-northeast-1,m5d.xlarge,spot,NA,0.116341,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269689 +AWS,ap-northeast-1,m5dn.12xlarge,on_demand,NA,4.2,USD,AWS Pricing API,2025-11-30T09:01:37.174267 +AWS,ap-northeast-1,m5dn.12xlarge,reserved_1y,all_upfront,3.359977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:07.067670 +AWS,ap-northeast-1,m5dn.12xlarge,reserved_1y,no_upfront,3.359977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:49.848099 +AWS,ap-northeast-1,m5dn.12xlarge,reserved_1y,partial_upfront,3.359977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:32.649743 +AWS,ap-northeast-1,m5dn.12xlarge,reserved_3y,all_upfront,1.679992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:07.270540 +AWS,ap-northeast-1,m5dn.12xlarge,reserved_3y,no_upfront,1.679992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:53.682549 +AWS,ap-northeast-1,m5dn.12xlarge,reserved_3y,partial_upfront,1.679992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:43.778385 +AWS,ap-northeast-1,m5dn.12xlarge,spot,NA,1.457225,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269027 +AWS,ap-northeast-1,m5dn.16xlarge,on_demand,NA,5.6,USD,AWS Pricing API,2025-11-30T09:02:11.539936 +AWS,ap-northeast-1,m5dn.16xlarge,reserved_1y,all_upfront,2.419,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:40.969590 +AWS,ap-northeast-1,m5dn.16xlarge,reserved_1y,no_upfront,2.419,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:24.260502 +AWS,ap-northeast-1,m5dn.16xlarge,reserved_1y,partial_upfront,2.419,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:06.596953 +AWS,ap-northeast-1,m5dn.16xlarge,reserved_3y,all_upfront,2.419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:40.576233 +AWS,ap-northeast-1,m5dn.16xlarge,reserved_3y,no_upfront,2.419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:28.306572 +AWS,ap-northeast-1,m5dn.16xlarge,reserved_3y,partial_upfront,2.419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:17.562004 +AWS,ap-northeast-1,m5dn.16xlarge,spot,NA,1.789457,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270364 +AWS,ap-northeast-1,m5dn.24xlarge,on_demand,NA,8.4,USD,AWS Pricing API,2025-11-30T09:02:36.032380 +AWS,ap-northeast-1,m5dn.24xlarge,reserved_1y,all_upfront,5.039977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:05.294667 +AWS,ap-northeast-1,m5dn.24xlarge,reserved_1y,no_upfront,5.039977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:48.618034 +AWS,ap-northeast-1,m5dn.24xlarge,reserved_1y,partial_upfront,5.039977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:30.935952 +AWS,ap-northeast-1,m5dn.24xlarge,reserved_3y,all_upfront,3.359992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:04.539553 +AWS,ap-northeast-1,m5dn.24xlarge,reserved_3y,no_upfront,3.359992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:53.060259 +AWS,ap-northeast-1,m5dn.24xlarge,reserved_3y,partial_upfront,3.359992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:41.637335 +AWS,ap-northeast-1,m5dn.24xlarge,spot,NA,2.761335,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271411 +AWS,ap-northeast-1,m5dn.2xlarge,on_demand,NA,0.7,USD,AWS Pricing API,2025-11-30T09:01:34.015945 +AWS,ap-northeast-1,m5dn.2xlarge,reserved_1y,all_upfront,0.441,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:03.864676 +AWS,ap-northeast-1,m5dn.2xlarge,reserved_1y,no_upfront,0.441,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:46.706975 +AWS,ap-northeast-1,m5dn.2xlarge,reserved_1y,partial_upfront,0.441,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:29.553201 +AWS,ap-northeast-1,m5dn.2xlarge,reserved_3y,all_upfront,0.441,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:04.211180 +AWS,ap-northeast-1,m5dn.2xlarge,reserved_3y,no_upfront,0.441,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:50.510399 +AWS,ap-northeast-1,m5dn.2xlarge,reserved_3y,partial_upfront,0.441,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:40.709229 +AWS,ap-northeast-1,m5dn.2xlarge,spot,NA,0.291459,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268902 +AWS,ap-northeast-1,m5dn.4xlarge,on_demand,NA,1.4,USD,AWS Pricing API,2025-11-30T09:02:14.304452 +AWS,ap-northeast-1,m5dn.4xlarge,reserved_1y,all_upfront,1.129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:43.684354 +AWS,ap-northeast-1,m5dn.4xlarge,reserved_1y,no_upfront,1.129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:26.997908 +AWS,ap-northeast-1,m5dn.4xlarge,reserved_1y,partial_upfront,1.129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:09.300094 +AWS,ap-northeast-1,m5dn.4xlarge,reserved_3y,all_upfront,1.129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:43.235586 +AWS,ap-northeast-1,m5dn.4xlarge,reserved_3y,no_upfront,1.129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:31.098542 +AWS,ap-northeast-1,m5dn.4xlarge,reserved_3y,partial_upfront,1.129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:20.258938 +AWS,ap-northeast-1,m5dn.4xlarge,spot,NA,0.533176,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270498 +AWS,ap-northeast-1,m5dn.8xlarge,on_demand,NA,2.8,USD,AWS Pricing API,2025-11-30T09:01:35.101990 +AWS,ap-northeast-1,m5dn.8xlarge,reserved_1y,all_upfront,2.10742,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:04.945330 +AWS,ap-northeast-1,m5dn.8xlarge,reserved_1y,no_upfront,2.10742,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:47.805604 +AWS,ap-northeast-1,m5dn.8xlarge,reserved_1y,partial_upfront,2.10742,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:30.623342 +AWS,ap-northeast-1,m5dn.8xlarge,reserved_3y,all_upfront,0.702473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:05.275482 +AWS,ap-northeast-1,m5dn.8xlarge,reserved_3y,no_upfront,0.702473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:51.611686 +AWS,ap-northeast-1,m5dn.8xlarge,reserved_3y,partial_upfront,0.702473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:41.774413 +AWS,ap-northeast-1,m5dn.8xlarge,spot,NA,1.057334,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268916 +AWS,ap-northeast-1,m5dn.large,on_demand,NA,0.175,USD,AWS Pricing API,2025-11-30T09:02:29.647227 +AWS,ap-northeast-1,m5dn.large,reserved_1y,all_upfront,0.11,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:58.877139 +AWS,ap-northeast-1,m5dn.large,reserved_1y,no_upfront,0.11,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:42.246346 +AWS,ap-northeast-1,m5dn.large,reserved_1y,partial_upfront,0.11,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:24.634733 +AWS,ap-northeast-1,m5dn.large,reserved_3y,all_upfront,0.11,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:58.225647 +AWS,ap-northeast-1,m5dn.large,reserved_3y,no_upfront,0.11,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:46.553846 +AWS,ap-northeast-1,m5dn.large,reserved_3y,partial_upfront,0.11,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:35.322661 +AWS,ap-northeast-1,m5dn.large,spot,NA,0.069569,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271090 +AWS,ap-northeast-1,m5dn.metal,on_demand,NA,8.4,USD,AWS Pricing API,2025-11-30T09:02:40.927216 +AWS,ap-northeast-1,m5dn.metal,reserved_1y,all_upfront,6.322146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:10.154036 +AWS,ap-northeast-1,m5dn.metal,reserved_1y,no_upfront,6.322146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:53.521336 +AWS,ap-northeast-1,m5dn.metal,reserved_1y,partial_upfront,6.322146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:35.760479 +AWS,ap-northeast-1,m5dn.metal,reserved_3y,all_upfront,2.107382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:09.302310 +AWS,ap-northeast-1,m5dn.metal,reserved_3y,no_upfront,2.107382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:58.007907 +AWS,ap-northeast-1,m5dn.metal,reserved_3y,partial_upfront,2.107382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:46.458636 +AWS,ap-northeast-1,m5dn.metal,spot,NA,2.66218,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272404 +AWS,ap-northeast-1,m5dn.xlarge,on_demand,NA,0.35,USD,AWS Pricing API,2025-11-30T09:01:32.780722 +AWS,ap-northeast-1,m5dn.xlarge,reserved_1y,all_upfront,0.26347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:02.647086 +AWS,ap-northeast-1,m5dn.xlarge,reserved_1y,no_upfront,0.26347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:45.479467 +AWS,ap-northeast-1,m5dn.xlarge,reserved_1y,partial_upfront,0.26347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:28.338598 +AWS,ap-northeast-1,m5dn.xlarge,reserved_3y,all_upfront,0.087823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:03.016862 +AWS,ap-northeast-1,m5dn.xlarge,reserved_3y,no_upfront,0.087823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:49.278703 +AWS,ap-northeast-1,m5dn.xlarge,reserved_3y,partial_upfront,0.087823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:39.495949 +AWS,ap-northeast-1,m5dn.xlarge,spot,NA,0.140739,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268852 +AWS,ap-northeast-1,m5n.12xlarge,on_demand,NA,3.672,USD,AWS Pricing API,2025-11-30T09:01:54.582430 +AWS,ap-northeast-1,m5n.12xlarge,reserved_1y,all_upfront,2.812393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:24.368484 +AWS,ap-northeast-1,m5n.12xlarge,reserved_1y,no_upfront,2.812393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:07.380298 +AWS,ap-northeast-1,m5n.12xlarge,reserved_1y,partial_upfront,2.812393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:49.976057 +AWS,ap-northeast-1,m5n.12xlarge,reserved_3y,all_upfront,1.874798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:24.265805 +AWS,ap-northeast-1,m5n.12xlarge,reserved_3y,no_upfront,1.874798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:11.369908 +AWS,ap-northeast-1,m5n.12xlarge,reserved_3y,partial_upfront,1.874798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:00.980200 +AWS,ap-northeast-1,m5n.12xlarge,spot,NA,1.317404,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269695 +AWS,ap-northeast-1,m5n.16xlarge,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T09:01:52.125301 +AWS,ap-northeast-1,m5n.16xlarge,reserved_1y,all_upfront,3.675342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:21.937837 +AWS,ap-northeast-1,m5n.16xlarge,reserved_1y,no_upfront,3.675342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:04.931772 +AWS,ap-northeast-1,m5n.16xlarge,reserved_1y,partial_upfront,3.675342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:47.537797 +AWS,ap-northeast-1,m5n.16xlarge,reserved_3y,all_upfront,1.225114,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:21.829426 +AWS,ap-northeast-1,m5n.16xlarge,reserved_3y,no_upfront,1.225114,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:08.887264 +AWS,ap-northeast-1,m5n.16xlarge,reserved_3y,partial_upfront,1.225114,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:58.551006 +AWS,ap-northeast-1,m5n.16xlarge,spot,NA,1.735306,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269557 +AWS,ap-northeast-1,m5n.24xlarge,on_demand,NA,7.344,USD,AWS Pricing API,2025-11-30T09:01:33.607751 +AWS,ap-northeast-1,m5n.24xlarge,reserved_1y,all_upfront,5.907,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:03.459578 +AWS,ap-northeast-1,m5n.24xlarge,reserved_1y,no_upfront,5.907,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:46.293829 +AWS,ap-northeast-1,m5n.24xlarge,reserved_1y,partial_upfront,5.907,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:29.148690 +AWS,ap-northeast-1,m5n.24xlarge,reserved_3y,all_upfront,5.907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:03.812159 +AWS,ap-northeast-1,m5n.24xlarge,reserved_3y,no_upfront,5.907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:50.101352 +AWS,ap-northeast-1,m5n.24xlarge,reserved_3y,partial_upfront,5.907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:40.310299 +AWS,ap-northeast-1,m5n.24xlarge,spot,NA,2.64425,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268839 +AWS,ap-northeast-1,m5n.2xlarge,on_demand,NA,0.612,USD,AWS Pricing API,2025-11-30T09:02:06.065177 +AWS,ap-northeast-1,m5n.2xlarge,reserved_1y,all_upfront,0.492,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:35.583622 +AWS,ap-northeast-1,m5n.2xlarge,reserved_1y,no_upfront,0.492,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:18.795630 +AWS,ap-northeast-1,m5n.2xlarge,reserved_1y,partial_upfront,0.492,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:01.162954 +AWS,ap-northeast-1,m5n.2xlarge,reserved_3y,all_upfront,0.492,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:35.278405 +AWS,ap-northeast-1,m5n.2xlarge,reserved_3y,no_upfront,0.492,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:22.811123 +AWS,ap-northeast-1,m5n.2xlarge,reserved_3y,partial_upfront,0.492,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:12.164388 +AWS,ap-northeast-1,m5n.2xlarge,spot,NA,0.256049,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270147 +AWS,ap-northeast-1,m5n.4xlarge,on_demand,NA,1.224,USD,AWS Pricing API,2025-11-30T09:02:28.823122 +AWS,ap-northeast-1,m5n.4xlarge,reserved_1y,all_upfront,0.734237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:58.068592 +AWS,ap-northeast-1,m5n.4xlarge,reserved_1y,no_upfront,0.734237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:41.434454 +AWS,ap-northeast-1,m5n.4xlarge,reserved_1y,partial_upfront,0.734237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:23.834148 +AWS,ap-northeast-1,m5n.4xlarge,reserved_3y,all_upfront,0.489412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:57.427653 +AWS,ap-northeast-1,m5n.4xlarge,reserved_3y,no_upfront,0.489412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:45.728534 +AWS,ap-northeast-1,m5n.4xlarge,reserved_3y,partial_upfront,0.489412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:34.498308 +AWS,ap-northeast-1,m5n.4xlarge,spot,NA,0.490189,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271121 +AWS,ap-northeast-1,m5n.8xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T09:01:54.030872 +AWS,ap-northeast-1,m5n.8xlarge,reserved_1y,all_upfront,1.542,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:23.817950 +AWS,ap-northeast-1,m5n.8xlarge,reserved_1y,no_upfront,1.542,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:06.838075 +AWS,ap-northeast-1,m5n.8xlarge,reserved_1y,partial_upfront,1.542,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:49.426215 +AWS,ap-northeast-1,m5n.8xlarge,reserved_3y,all_upfront,1.542,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:23.737010 +AWS,ap-northeast-1,m5n.8xlarge,reserved_3y,no_upfront,1.542,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:10.820210 +AWS,ap-northeast-1,m5n.8xlarge,reserved_3y,partial_upfront,1.542,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:00.439022 +AWS,ap-northeast-1,m5n.8xlarge,spot,NA,0.910295,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269599 +AWS,ap-northeast-1,m5n.large,on_demand,NA,0.153,USD,AWS Pricing API,2025-11-30T09:01:46.423768 +AWS,ap-northeast-1,m5n.large,reserved_1y,all_upfront,0.09189,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:16.266990 +AWS,ap-northeast-1,m5n.large,reserved_1y,no_upfront,0.09189,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:59.142880 +AWS,ap-northeast-1,m5n.large,reserved_1y,partial_upfront,0.09189,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:41.875485 +AWS,ap-northeast-1,m5n.large,reserved_3y,all_upfront,0.061297,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:16.295253 +AWS,ap-northeast-1,m5n.large,reserved_3y,no_upfront,0.061297,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:03.098788 +AWS,ap-northeast-1,m5n.large,reserved_3y,partial_upfront,0.061297,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:52.944745 +AWS,ap-northeast-1,m5n.large,spot,NA,0.061068,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269368 +AWS,ap-northeast-1,m5n.metal,on_demand,NA,7.344,USD,AWS Pricing API,2025-11-30T09:02:10.873272 +AWS,ap-northeast-1,m5n.metal,reserved_1y,all_upfront,4.318265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:40.294928 +AWS,ap-northeast-1,m5n.metal,reserved_1y,no_upfront,4.318265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:23.582817 +AWS,ap-northeast-1,m5n.metal,reserved_1y,partial_upfront,4.318265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:05.931963 +AWS,ap-northeast-1,m5n.metal,reserved_3y,all_upfront,1.439422,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:39.914912 +AWS,ap-northeast-1,m5n.metal,reserved_3y,no_upfront,1.439422,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:27.619868 +AWS,ap-northeast-1,m5n.metal,reserved_3y,partial_upfront,1.439422,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:16.882145 +AWS,ap-northeast-1,m5n.metal,spot,NA,2.437468,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270413 +AWS,ap-northeast-1,m5n.xlarge,on_demand,NA,0.306,USD,AWS Pricing API,2025-11-30T09:02:05.785501 +AWS,ap-northeast-1,m5n.xlarge,reserved_1y,all_upfront,0.234237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:35.313512 +AWS,ap-northeast-1,m5n.xlarge,reserved_1y,no_upfront,0.234237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:18.524320 +AWS,ap-northeast-1,m5n.xlarge,reserved_1y,partial_upfront,0.234237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:00.893593 +AWS,ap-northeast-1,m5n.xlarge,reserved_3y,all_upfront,0.156079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:35.010617 +AWS,ap-northeast-1,m5n.xlarge,reserved_3y,no_upfront,0.156079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:22.529004 +AWS,ap-northeast-1,m5n.xlarge,reserved_3y,partial_upfront,0.156079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:11.890887 +AWS,ap-northeast-1,m5n.xlarge,spot,NA,0.133102,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270177 +AWS,ap-northeast-1,m5zn.12xlarge,on_demand,NA,5.1204,USD,AWS Pricing API,2025-11-30T09:02:11.007034 +AWS,ap-northeast-1,m5zn.12xlarge,reserved_1y,all_upfront,3.2053,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:40.428840 +AWS,ap-northeast-1,m5zn.12xlarge,reserved_1y,no_upfront,3.2053,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:23.717392 +AWS,ap-northeast-1,m5zn.12xlarge,reserved_1y,partial_upfront,3.2053,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:06.065356 +AWS,ap-northeast-1,m5zn.12xlarge,reserved_3y,all_upfront,3.2053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:40.049701 +AWS,ap-northeast-1,m5zn.12xlarge,reserved_3y,no_upfront,3.2053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:27.754906 +AWS,ap-northeast-1,m5zn.12xlarge,reserved_3y,partial_upfront,3.2053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:17.017304 +AWS,ap-northeast-1,m5zn.12xlarge,spot,NA,1.646246,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270407 +AWS,ap-northeast-1,m5zn.2xlarge,on_demand,NA,0.8534,USD,AWS Pricing API,2025-11-30T09:01:40.166857 +AWS,ap-northeast-1,m5zn.2xlarge,reserved_1y,all_upfront,0.6411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:10.066991 +AWS,ap-northeast-1,m5zn.2xlarge,reserved_1y,no_upfront,0.6411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:52.831859 +AWS,ap-northeast-1,m5zn.2xlarge,reserved_1y,partial_upfront,0.6411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:35.688440 +AWS,ap-northeast-1,m5zn.2xlarge,reserved_3y,all_upfront,0.6411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:10.184555 +AWS,ap-northeast-1,m5zn.2xlarge,reserved_3y,no_upfront,0.6411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:56.728525 +AWS,ap-northeast-1,m5zn.2xlarge,reserved_3y,partial_upfront,0.6411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:46.755675 +AWS,ap-northeast-1,m5zn.2xlarge,spot,NA,0.344862,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269143 +AWS,ap-northeast-1,m5zn.3xlarge,on_demand,NA,1.2801,USD,AWS Pricing API,2025-11-30T09:02:14.583775 +AWS,ap-northeast-1,m5zn.3xlarge,reserved_1y,all_upfront,0.763221,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:43.951530 +AWS,ap-northeast-1,m5zn.3xlarge,reserved_1y,no_upfront,0.763221,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:27.270804 +AWS,ap-northeast-1,m5zn.3xlarge,reserved_1y,partial_upfront,0.763221,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:09.573729 +AWS,ap-northeast-1,m5zn.3xlarge,reserved_3y,all_upfront,0.508807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:43.506180 +AWS,ap-northeast-1,m5zn.3xlarge,reserved_3y,no_upfront,0.508807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:31.374979 +AWS,ap-northeast-1,m5zn.3xlarge,reserved_3y,partial_upfront,0.508807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:20.527037 +AWS,ap-northeast-1,m5zn.3xlarge,spot,NA,0.548548,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270522 +AWS,ap-northeast-1,m5zn.6xlarge,on_demand,NA,2.5602,USD,AWS Pricing API,2025-11-30T09:01:34.288732 +AWS,ap-northeast-1,m5zn.6xlarge,reserved_1y,all_upfront,1.831553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:04.136629 +AWS,ap-northeast-1,m5zn.6xlarge,reserved_1y,no_upfront,1.831553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:46.979958 +AWS,ap-northeast-1,m5zn.6xlarge,reserved_1y,partial_upfront,1.831553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:29.821018 +AWS,ap-northeast-1,m5zn.6xlarge,reserved_3y,all_upfront,1.221051,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:04.477364 +AWS,ap-northeast-1,m5zn.6xlarge,reserved_3y,no_upfront,1.221051,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:50.788165 +AWS,ap-northeast-1,m5zn.6xlarge,reserved_3y,partial_upfront,1.221051,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:40.974741 +AWS,ap-northeast-1,m5zn.6xlarge,spot,NA,1.051853,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268948 +AWS,ap-northeast-1,m5zn.large,on_demand,NA,0.2134,USD,AWS Pricing API,2025-11-30T09:02:04.120077 +AWS,ap-northeast-1,m5zn.large,reserved_1y,all_upfront,0.1116,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:33.687437 +AWS,ap-northeast-1,m5zn.large,reserved_1y,no_upfront,0.1116,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:16.851947 +AWS,ap-northeast-1,m5zn.large,reserved_1y,partial_upfront,0.1116,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:59.275065 +AWS,ap-northeast-1,m5zn.large,reserved_3y,all_upfront,0.1116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:33.421079 +AWS,ap-northeast-1,m5zn.large,reserved_3y,no_upfront,0.1116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:20.858012 +AWS,ap-northeast-1,m5zn.large,reserved_3y,partial_upfront,0.1116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:10.275547 +AWS,ap-northeast-1,m5zn.large,spot,NA,0.072631,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270080 +AWS,ap-northeast-1,m5zn.metal,on_demand,NA,5.1204,USD,AWS Pricing API,2025-11-30T09:02:41.473434 +AWS,ap-northeast-1,m5zn.metal,reserved_1y,all_upfront,3.663221,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:10.706124 +AWS,ap-northeast-1,m5zn.metal,reserved_1y,no_upfront,3.663221,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:54.077109 +AWS,ap-northeast-1,m5zn.metal,reserved_1y,partial_upfront,3.663221,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:36.308794 +AWS,ap-northeast-1,m5zn.metal,reserved_3y,all_upfront,2.44214,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:09.827760 +AWS,ap-northeast-1,m5zn.metal,reserved_3y,no_upfront,2.44214,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:58.555219 +AWS,ap-northeast-1,m5zn.metal,reserved_3y,partial_upfront,2.44214,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:47.005449 +AWS,ap-northeast-1,m5zn.metal,spot,NA,1.617044,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272476 +AWS,ap-northeast-1,m5zn.xlarge,on_demand,NA,0.4267,USD,AWS Pricing API,2025-11-30T09:01:39.341851 +AWS,ap-northeast-1,m5zn.xlarge,reserved_1y,all_upfront,0.249315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:09.229882 +AWS,ap-northeast-1,m5zn.xlarge,reserved_1y,no_upfront,0.249315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:52.016110 +AWS,ap-northeast-1,m5zn.xlarge,reserved_1y,partial_upfront,0.249315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:34.835430 +AWS,ap-northeast-1,m5zn.xlarge,reserved_3y,all_upfront,0.083105,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:09.392339 +AWS,ap-northeast-1,m5zn.xlarge,reserved_3y,no_upfront,0.083105,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:55.903727 +AWS,ap-northeast-1,m5zn.xlarge,reserved_3y,partial_upfront,0.083105,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:45.949669 +AWS,ap-northeast-1,m5zn.xlarge,spot,NA,0.160103,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269174 +AWS,ap-northeast-1,m6g.12xlarge,on_demand,NA,2.376,USD,AWS Pricing API,2025-11-30T09:01:49.141633 +AWS,ap-northeast-1,m6g.12xlarge,reserved_1y,all_upfront,1.683105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:18.975420 +AWS,ap-northeast-1,m6g.12xlarge,reserved_1y,no_upfront,1.683105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:01.901291 +AWS,ap-northeast-1,m6g.12xlarge,reserved_1y,partial_upfront,1.683105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:44.572007 +AWS,ap-northeast-1,m6g.12xlarge,reserved_3y,all_upfront,0.561035,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:18.928120 +AWS,ap-northeast-1,m6g.12xlarge,reserved_3y,no_upfront,0.561035,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:05.855764 +AWS,ap-northeast-1,m6g.12xlarge,reserved_3y,partial_upfront,0.561035,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:55.627888 +AWS,ap-northeast-1,m6g.12xlarge,spot,NA,0.834916,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269472 +AWS,ap-northeast-1,m6g.16xlarge,on_demand,NA,3.168,USD,AWS Pricing API,2025-11-30T09:01:44.499854 +AWS,ap-northeast-1,m6g.16xlarge,reserved_1y,all_upfront,1.881393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:14.373246 +AWS,ap-northeast-1,m6g.16xlarge,reserved_1y,no_upfront,1.881393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:57.230988 +AWS,ap-northeast-1,m6g.16xlarge,reserved_1y,partial_upfront,1.881393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:39.985690 +AWS,ap-northeast-1,m6g.16xlarge,reserved_3y,all_upfront,0.627131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:14.446297 +AWS,ap-northeast-1,m6g.16xlarge,reserved_3y,no_upfront,0.627131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:01.145888 +AWS,ap-northeast-1,m6g.16xlarge,reserved_3y,partial_upfront,0.627131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:51.046674 +AWS,ap-northeast-1,m6g.16xlarge,spot,NA,1.108619,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269272 +AWS,ap-northeast-1,m6g.2xlarge,on_demand,NA,0.396,USD,AWS Pricing API,2025-11-30T09:02:05.373438 +AWS,ap-northeast-1,m6g.2xlarge,reserved_1y,all_upfront,0.3006,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:34.896481 +AWS,ap-northeast-1,m6g.2xlarge,reserved_1y,no_upfront,0.3006,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:18.106732 +AWS,ap-northeast-1,m6g.2xlarge,reserved_1y,partial_upfront,0.3006,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:00.494422 +AWS,ap-northeast-1,m6g.2xlarge,reserved_3y,all_upfront,0.3006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:34.615258 +AWS,ap-northeast-1,m6g.2xlarge,reserved_3y,no_upfront,0.3006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:22.116997 +AWS,ap-northeast-1,m6g.2xlarge,reserved_3y,partial_upfront,0.3006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:11.482813 +AWS,ap-northeast-1,m6g.2xlarge,spot,NA,0.157107,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270184 +AWS,ap-northeast-1,m6g.4xlarge,on_demand,NA,0.792,USD,AWS Pricing API,2025-11-30T09:02:32.082614 +AWS,ap-northeast-1,m6g.4xlarge,reserved_1y,all_upfront,0.639909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:01.331625 +AWS,ap-northeast-1,m6g.4xlarge,reserved_1y,no_upfront,0.639909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:44.669819 +AWS,ap-northeast-1,m6g.4xlarge,reserved_1y,partial_upfront,0.639909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:27.039418 +AWS,ap-northeast-1,m6g.4xlarge,reserved_3y,all_upfront,0.31997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:00.608065 +AWS,ap-northeast-1,m6g.4xlarge,reserved_3y,no_upfront,0.31997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:49.044806 +AWS,ap-northeast-1,m6g.4xlarge,reserved_3y,partial_upfront,0.31997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:37.735902 +AWS,ap-northeast-1,m6g.4xlarge,spot,NA,0.280274,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271201 +AWS,ap-northeast-1,m6g.8xlarge,on_demand,NA,1.584,USD,AWS Pricing API,2025-11-30T09:02:12.936980 +AWS,ap-northeast-1,m6g.8xlarge,reserved_1y,all_upfront,1.804566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:42.332665 +AWS,ap-northeast-1,m6g.8xlarge,reserved_1y,no_upfront,1.804566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:25.627955 +AWS,ap-northeast-1,m6g.8xlarge,reserved_1y,partial_upfront,1.804566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:07.953951 +AWS,ap-northeast-1,m6g.8xlarge,reserved_3y,all_upfront,0.601522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:41.906291 +AWS,ap-northeast-1,m6g.8xlarge,reserved_3y,no_upfront,0.601522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:29.713015 +AWS,ap-northeast-1,m6g.8xlarge,reserved_3y,partial_upfront,0.601522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:18.922439 +AWS,ap-northeast-1,m6g.8xlarge,spot,NA,0.564269,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270455 +AWS,ap-northeast-1,m6g.large,on_demand,NA,0.099,USD,AWS Pricing API,2025-11-30T09:01:49.692690 +AWS,ap-northeast-1,m6g.large,reserved_1y,all_upfront,0.070091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:19.520278 +AWS,ap-northeast-1,m6g.large,reserved_1y,no_upfront,0.070091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:02.462989 +AWS,ap-northeast-1,m6g.large,reserved_1y,partial_upfront,0.070091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:45.114043 +AWS,ap-northeast-1,m6g.large,reserved_3y,all_upfront,0.023364,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:19.455175 +AWS,ap-northeast-1,m6g.large,reserved_3y,no_upfront,0.023364,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:06.409026 +AWS,ap-northeast-1,m6g.large,reserved_3y,partial_upfront,0.023364,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:56.162931 +AWS,ap-northeast-1,m6g.large,spot,NA,0.040949,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269466 +AWS,ap-northeast-1,m6g.xlarge,on_demand,NA,0.198,USD,AWS Pricing API,2025-11-30T09:02:03.574507 +AWS,ap-northeast-1,m6g.xlarge,reserved_1y,all_upfront,0.143175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:33.139704 +AWS,ap-northeast-1,m6g.xlarge,reserved_1y,no_upfront,0.143175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:16.296352 +AWS,ap-northeast-1,m6g.xlarge,reserved_1y,partial_upfront,0.143175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:58.727824 +AWS,ap-northeast-1,m6g.xlarge,reserved_3y,all_upfront,0.095458,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:32.890529 +AWS,ap-northeast-1,m6g.xlarge,reserved_3y,no_upfront,0.095458,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:20.302984 +AWS,ap-northeast-1,m6g.xlarge,reserved_3y,partial_upfront,0.095458,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:09.744344 +AWS,ap-northeast-1,m6g.xlarge,spot,NA,0.068975,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270032 +AWS,ap-northeast-1,m6gd.12xlarge,on_demand,NA,2.808,USD,AWS Pricing API,2025-11-30T09:02:21.684127 +AWS,ap-northeast-1,m6gd.12xlarge,reserved_1y,all_upfront,2.093379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:51.005622 +AWS,ap-northeast-1,m6gd.12xlarge,reserved_1y,no_upfront,2.093379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:34.340851 +AWS,ap-northeast-1,m6gd.12xlarge,reserved_1y,partial_upfront,2.093379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:16.714446 +AWS,ap-northeast-1,m6gd.12xlarge,reserved_3y,all_upfront,0.697793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:50.440402 +AWS,ap-northeast-1,m6gd.12xlarge,reserved_3y,no_upfront,0.697793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:38.549708 +AWS,ap-northeast-1,m6gd.12xlarge,reserved_3y,partial_upfront,0.697793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:27.517443 +AWS,ap-northeast-1,m6gd.12xlarge,spot,NA,1.038989,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270760 +AWS,ap-northeast-1,m6gd.16xlarge,on_demand,NA,3.744,USD,AWS Pricing API,2025-11-30T09:02:24.046287 +AWS,ap-northeast-1,m6gd.16xlarge,reserved_1y,all_upfront,2.195205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:53.295384 +AWS,ap-northeast-1,m6gd.16xlarge,reserved_1y,no_upfront,2.195205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:36.662649 +AWS,ap-northeast-1,m6gd.16xlarge,reserved_1y,partial_upfront,2.195205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:19.008939 +AWS,ap-northeast-1,m6gd.16xlarge,reserved_3y,all_upfront,0.731735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:52.701398 +AWS,ap-northeast-1,m6gd.16xlarge,reserved_3y,no_upfront,0.731735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:40.897540 +AWS,ap-northeast-1,m6gd.16xlarge,reserved_3y,partial_upfront,0.731735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:29.797064 +AWS,ap-northeast-1,m6gd.16xlarge,spot,NA,1.452971,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270921 +AWS,ap-northeast-1,m6gd.2xlarge,on_demand,NA,0.468,USD,AWS Pricing API,2025-11-30T09:01:51.852425 +AWS,ap-northeast-1,m6gd.2xlarge,reserved_1y,all_upfront,0.274429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:21.668510 +AWS,ap-northeast-1,m6gd.2xlarge,reserved_1y,no_upfront,0.274429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:04.660322 +AWS,ap-northeast-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.274429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:47.267796 +AWS,ap-northeast-1,m6gd.2xlarge,reserved_3y,all_upfront,0.091476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:21.565655 +AWS,ap-northeast-1,m6gd.2xlarge,reserved_3y,no_upfront,0.091476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:08.610862 +AWS,ap-northeast-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.091476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:58.282813 +AWS,ap-northeast-1,m6gd.2xlarge,spot,NA,0.172521,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269534 +AWS,ap-northeast-1,m6gd.4xlarge,on_demand,NA,0.936,USD,AWS Pricing API,2025-11-30T09:02:18.818540 +AWS,ap-northeast-1,m6gd.4xlarge,reserved_1y,all_upfront,0.7476,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:48.152136 +AWS,ap-northeast-1,m6gd.4xlarge,reserved_1y,no_upfront,0.7476,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:31.488852 +AWS,ap-northeast-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.7476,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:13.761600 +AWS,ap-northeast-1,m6gd.4xlarge,reserved_3y,all_upfront,0.7476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:47.655909 +AWS,ap-northeast-1,m6gd.4xlarge,reserved_3y,no_upfront,0.7476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:35.657065 +AWS,ap-northeast-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.7476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:24.699069 +AWS,ap-northeast-1,m6gd.4xlarge,spot,NA,0.308397,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270687 +AWS,ap-northeast-1,m6gd.8xlarge,on_demand,NA,1.872,USD,AWS Pricing API,2025-11-30T09:01:40.577831 +AWS,ap-northeast-1,m6gd.8xlarge,reserved_1y,all_upfront,1.4952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:10.469504 +AWS,ap-northeast-1,m6gd.8xlarge,reserved_1y,no_upfront,1.4952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:53.239763 +AWS,ap-northeast-1,m6gd.8xlarge,reserved_1y,partial_upfront,1.4952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:36.088818 +AWS,ap-northeast-1,m6gd.8xlarge,reserved_3y,all_upfront,1.4952,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:10.591954 +AWS,ap-northeast-1,m6gd.8xlarge,reserved_3y,no_upfront,1.4952,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:57.143332 +AWS,ap-northeast-1,m6gd.8xlarge,reserved_3y,partial_upfront,1.4952,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:47.155143 +AWS,ap-northeast-1,m6gd.8xlarge,spot,NA,0.674703,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269180 +AWS,ap-northeast-1,m6gd.large,on_demand,NA,0.117,USD,AWS Pricing API,2025-11-30T09:02:02.163842 +AWS,ap-northeast-1,m6gd.large,reserved_1y,all_upfront,0.068607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:31.782253 +AWS,ap-northeast-1,m6gd.large,reserved_1y,no_upfront,0.068607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:14.922000 +AWS,ap-northeast-1,m6gd.large,reserved_1y,partial_upfront,0.068607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:57.360119 +AWS,ap-northeast-1,m6gd.large,reserved_3y,all_upfront,0.022869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:31.557915 +AWS,ap-northeast-1,m6gd.large,reserved_3y,no_upfront,0.022869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:18.924079 +AWS,ap-northeast-1,m6gd.large,reserved_3y,partial_upfront,0.022869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:08.396516 +AWS,ap-northeast-1,m6gd.large,spot,NA,0.040095,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269939 +AWS,ap-northeast-1,m6gd.xlarge,on_demand,NA,0.234,USD,AWS Pricing API,2025-11-30T09:01:55.260819 +AWS,ap-northeast-1,m6gd.xlarge,reserved_1y,all_upfront,0.139977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:25.049292 +AWS,ap-northeast-1,m6gd.xlarge,reserved_1y,no_upfront,0.139977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:08.059271 +AWS,ap-northeast-1,m6gd.xlarge,reserved_1y,partial_upfront,0.139977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:50.649358 +AWS,ap-northeast-1,m6gd.xlarge,reserved_3y,all_upfront,0.093326,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:24.935500 +AWS,ap-northeast-1,m6gd.xlarge,reserved_3y,no_upfront,0.093326,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:12.052352 +AWS,ap-northeast-1,m6gd.xlarge,reserved_3y,partial_upfront,0.093326,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:01.653764 +AWS,ap-northeast-1,m6gd.xlarge,spot,NA,0.095639,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269645 +AWS,ap-northeast-1,m6i.12xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T09:01:41.383607 +AWS,ap-northeast-1,m6i.12xlarge,reserved_1y,all_upfront,1.54613,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:11.274998 +AWS,ap-northeast-1,m6i.12xlarge,reserved_1y,no_upfront,1.54613,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:54.049567 +AWS,ap-northeast-1,m6i.12xlarge,reserved_1y,partial_upfront,1.54613,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:36.895116 +AWS,ap-northeast-1,m6i.12xlarge,reserved_3y,all_upfront,1.54613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:11.394839 +AWS,ap-northeast-1,m6i.12xlarge,reserved_3y,no_upfront,1.54613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:57.960633 +AWS,ap-northeast-1,m6i.12xlarge,reserved_3y,partial_upfront,1.54613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:47.972074 +AWS,ap-northeast-1,m6i.12xlarge,spot,NA,0.977138,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269224 +AWS,ap-northeast-1,m6i.16xlarge,on_demand,NA,3.968,USD,AWS Pricing API,2025-11-30T09:01:55.946495 +AWS,ap-northeast-1,m6i.16xlarge,reserved_1y,all_upfront,2.504055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:25.733268 +AWS,ap-northeast-1,m6i.16xlarge,reserved_1y,no_upfront,2.504055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:08.750277 +AWS,ap-northeast-1,m6i.16xlarge,reserved_1y,partial_upfront,2.504055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:51.324396 +AWS,ap-northeast-1,m6i.16xlarge,reserved_3y,all_upfront,1.669352,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:25.605920 +AWS,ap-northeast-1,m6i.16xlarge,reserved_3y,no_upfront,1.669352,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:12.736606 +AWS,ap-northeast-1,m6i.16xlarge,reserved_3y,partial_upfront,1.669352,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:02.336781 +AWS,ap-northeast-1,m6i.16xlarge,spot,NA,1.327097,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269729 +AWS,ap-northeast-1,m6i.24xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T09:01:57.459605 +AWS,ap-northeast-1,m6i.24xlarge,reserved_1y,all_upfront,3.755968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:27.216076 +AWS,ap-northeast-1,m6i.24xlarge,reserved_1y,no_upfront,3.755968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:10.245130 +AWS,ap-northeast-1,m6i.24xlarge,reserved_1y,partial_upfront,3.755968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:52.791786 +AWS,ap-northeast-1,m6i.24xlarge,reserved_3y,all_upfront,2.503989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:27.077043 +AWS,ap-northeast-1,m6i.24xlarge,reserved_3y,no_upfront,2.503989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:14.248612 +AWS,ap-northeast-1,m6i.24xlarge,reserved_3y,partial_upfront,2.503989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:03.819535 +AWS,ap-northeast-1,m6i.24xlarge,spot,NA,2.038639,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269809 +AWS,ap-northeast-1,m6i.2xlarge,on_demand,NA,0.496,USD,AWS Pricing API,2025-11-30T09:02:16.619987 +AWS,ap-northeast-1,m6i.2xlarge,reserved_1y,all_upfront,0.357781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:45.999199 +AWS,ap-northeast-1,m6i.2xlarge,reserved_1y,no_upfront,0.357781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:29.308639 +AWS,ap-northeast-1,m6i.2xlarge,reserved_1y,partial_upfront,0.357781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:11.591347 +AWS,ap-northeast-1,m6i.2xlarge,reserved_3y,all_upfront,0.238527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:45.510729 +AWS,ap-northeast-1,m6i.2xlarge,reserved_3y,no_upfront,0.238527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:33.429888 +AWS,ap-northeast-1,m6i.2xlarge,reserved_3y,partial_upfront,0.238527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:22.543762 +AWS,ap-northeast-1,m6i.2xlarge,spot,NA,0.211941,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270614 +AWS,ap-northeast-1,m6i.32xlarge,on_demand,NA,7.936,USD,AWS Pricing API,2025-11-30T09:02:33.300705 +AWS,ap-northeast-1,m6i.32xlarge,reserved_1y,all_upfront,4.907877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:02.587785 +AWS,ap-northeast-1,m6i.32xlarge,reserved_1y,no_upfront,4.907877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:45.893369 +AWS,ap-northeast-1,m6i.32xlarge,reserved_1y,partial_upfront,4.907877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:28.240503 +AWS,ap-northeast-1,m6i.32xlarge,reserved_3y,all_upfront,1.635959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:01.837071 +AWS,ap-northeast-1,m6i.32xlarge,reserved_3y,no_upfront,1.635959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:50.284321 +AWS,ap-northeast-1,m6i.32xlarge,reserved_3y,partial_upfront,1.635959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:38.949338 +AWS,ap-northeast-1,m6i.32xlarge,spot,NA,3.013656,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271249 +AWS,ap-northeast-1,m6i.4xlarge,on_demand,NA,0.992,USD,AWS Pricing API,2025-11-30T09:01:43.543193 +AWS,ap-northeast-1,m6i.4xlarge,reserved_1y,all_upfront,0.75138,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:13.424980 +AWS,ap-northeast-1,m6i.4xlarge,reserved_1y,no_upfront,0.75138,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:56.274722 +AWS,ap-northeast-1,m6i.4xlarge,reserved_1y,partial_upfront,0.75138,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:39.037593 +AWS,ap-northeast-1,m6i.4xlarge,reserved_3y,all_upfront,0.75138,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:13.515588 +AWS,ap-northeast-1,m6i.4xlarge,reserved_3y,no_upfront,0.75138,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:00.172348 +AWS,ap-northeast-1,m6i.4xlarge,reserved_3y,partial_upfront,0.75138,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:50.108464 +AWS,ap-northeast-1,m6i.4xlarge,spot,NA,0.42018,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269281 +AWS,ap-northeast-1,m6i.8xlarge,on_demand,NA,1.984,USD,AWS Pricing API,2025-11-30T09:01:48.327990 +AWS,ap-northeast-1,m6i.8xlarge,reserved_1y,all_upfront,2.805936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:18.165527 +AWS,ap-northeast-1,m6i.8xlarge,reserved_1y,no_upfront,2.805936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:01.060942 +AWS,ap-northeast-1,m6i.8xlarge,reserved_1y,partial_upfront,2.805936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:43.760392 +AWS,ap-northeast-1,m6i.8xlarge,reserved_3y,all_upfront,0.935312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:18.137975 +AWS,ap-northeast-1,m6i.8xlarge,reserved_3y,no_upfront,0.935312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:05.020588 +AWS,ap-northeast-1,m6i.8xlarge,reserved_3y,partial_upfront,0.935312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:54.823741 +AWS,ap-northeast-1,m6i.8xlarge,spot,NA,0.701564,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269419 +AWS,ap-northeast-1,m6i.large,on_demand,NA,0.124,USD,AWS Pricing API,2025-11-30T09:01:58.956621 +AWS,ap-northeast-1,m6i.large,reserved_1y,all_upfront,0.08216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:28.699038 +AWS,ap-northeast-1,m6i.large,reserved_1y,no_upfront,0.08216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:11.755419 +AWS,ap-northeast-1,m6i.large,reserved_1y,partial_upfront,0.08216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:54.263020 +AWS,ap-northeast-1,m6i.large,reserved_3y,all_upfront,0.08216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:28.541298 +AWS,ap-northeast-1,m6i.large,reserved_3y,no_upfront,0.08216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:15.754831 +AWS,ap-northeast-1,m6i.large,reserved_3y,partial_upfront,0.08216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:05.304648 +AWS,ap-northeast-1,m6i.large,spot,NA,0.048052,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269846 +AWS,ap-northeast-1,m6i.xlarge,on_demand,NA,0.248,USD,AWS Pricing API,2025-11-30T09:01:34.832562 +AWS,ap-northeast-1,m6i.xlarge,reserved_1y,all_upfront,0.293265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:04.677943 +AWS,ap-northeast-1,m6i.xlarge,reserved_1y,no_upfront,0.293265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:47.527935 +AWS,ap-northeast-1,m6i.xlarge,reserved_1y,partial_upfront,0.293265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:30.355840 +AWS,ap-northeast-1,m6i.xlarge,reserved_3y,all_upfront,0.097755,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:05.004089 +AWS,ap-northeast-1,m6i.xlarge,reserved_3y,no_upfront,0.097755,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:51.335451 +AWS,ap-northeast-1,m6i.xlarge,reserved_3y,partial_upfront,0.097755,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:41.505490 +AWS,ap-northeast-1,m6i.xlarge,spot,NA,0.098331,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268936 +AWS,ap-northeast-1,m6id.12xlarge,on_demand,NA,3.6792,USD,AWS Pricing API,2025-11-30T09:02:13.089037 +AWS,ap-northeast-1,m6id.12xlarge,reserved_1y,all_upfront,1.58941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:42.466946 +AWS,ap-northeast-1,m6id.12xlarge,reserved_1y,no_upfront,1.58941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:25.762706 +AWS,ap-northeast-1,m6id.12xlarge,reserved_1y,partial_upfront,1.58941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:08.087249 +AWS,ap-northeast-1,m6id.12xlarge,reserved_3y,all_upfront,1.58941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:42.039252 +AWS,ap-northeast-1,m6id.12xlarge,reserved_3y,no_upfront,1.58941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:29.849124 +AWS,ap-northeast-1,m6id.12xlarge,reserved_3y,partial_upfront,1.58941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:19.057233 +AWS,ap-northeast-1,m6id.12xlarge,spot,NA,1.206717,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270438 +AWS,ap-northeast-1,m6id.16xlarge,on_demand,NA,4.9056,USD,AWS Pricing API,2025-11-30T09:01:40.029015 +AWS,ap-northeast-1,m6id.16xlarge,reserved_1y,all_upfront,2.884475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:09.924325 +AWS,ap-northeast-1,m6id.16xlarge,reserved_1y,no_upfront,2.884475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:52.697231 +AWS,ap-northeast-1,m6id.16xlarge,reserved_1y,partial_upfront,2.884475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:35.554588 +AWS,ap-northeast-1,m6id.16xlarge,reserved_3y,all_upfront,0.961492,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:10.052701 +AWS,ap-northeast-1,m6id.16xlarge,reserved_3y,no_upfront,0.961492,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:56.591447 +AWS,ap-northeast-1,m6id.16xlarge,reserved_3y,partial_upfront,0.961492,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:46.623321 +AWS,ap-northeast-1,m6id.16xlarge,spot,NA,1.589849,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269155 +AWS,ap-northeast-1,m6id.24xlarge,on_demand,NA,7.3584,USD,AWS Pricing API,2025-11-30T09:01:44.226694 +AWS,ap-northeast-1,m6id.24xlarge,reserved_1y,all_upfront,5.886748,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:14.099720 +AWS,ap-northeast-1,m6id.24xlarge,reserved_1y,no_upfront,5.886748,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:56.957959 +AWS,ap-northeast-1,m6id.24xlarge,reserved_1y,partial_upfront,5.886748,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:39.713404 +AWS,ap-northeast-1,m6id.24xlarge,reserved_3y,all_upfront,2.943369,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:14.176156 +AWS,ap-northeast-1,m6id.24xlarge,reserved_3y,no_upfront,2.943369,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:00.869218 +AWS,ap-northeast-1,m6id.24xlarge,reserved_3y,partial_upfront,2.943369,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:50.779220 +AWS,ap-northeast-1,m6id.24xlarge,spot,NA,2.525907,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269289 +AWS,ap-northeast-1,m6id.2xlarge,on_demand,NA,0.6132,USD,AWS Pricing API,2025-11-30T09:01:36.621886 +AWS,ap-northeast-1,m6id.2xlarge,reserved_1y,all_upfront,0.660111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:06.522624 +AWS,ap-northeast-1,m6id.2xlarge,reserved_1y,no_upfront,0.660111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:49.301597 +AWS,ap-northeast-1,m6id.2xlarge,reserved_1y,partial_upfront,0.660111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:32.117482 +AWS,ap-northeast-1,m6id.2xlarge,reserved_3y,all_upfront,0.33005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:06.747423 +AWS,ap-northeast-1,m6id.2xlarge,reserved_3y,no_upfront,0.33005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:53.135108 +AWS,ap-northeast-1,m6id.2xlarge,reserved_3y,partial_upfront,0.33005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:43.246148 +AWS,ap-northeast-1,m6id.2xlarge,spot,NA,0.243486,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269045 +AWS,ap-northeast-1,m6id.32xlarge,on_demand,NA,9.8112,USD,AWS Pricing API,2025-11-30T09:02:16.895617 +AWS,ap-northeast-1,m6id.32xlarge,reserved_1y,all_upfront,5.76895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:46.268022 +AWS,ap-northeast-1,m6id.32xlarge,reserved_1y,no_upfront,5.76895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:29.578327 +AWS,ap-northeast-1,m6id.32xlarge,reserved_1y,partial_upfront,5.76895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:11.861056 +AWS,ap-northeast-1,m6id.32xlarge,reserved_3y,all_upfront,1.922983,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:45.773298 +AWS,ap-northeast-1,m6id.32xlarge,reserved_3y,no_upfront,1.922983,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:33.705156 +AWS,ap-northeast-1,m6id.32xlarge,reserved_3y,partial_upfront,1.922983,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:22.813352 +AWS,ap-northeast-1,m6id.32xlarge,spot,NA,3.133862,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270591 +AWS,ap-northeast-1,m6id.4xlarge,on_demand,NA,1.2264,USD,AWS Pricing API,2025-11-30T09:02:39.440531 +AWS,ap-northeast-1,m6id.4xlarge,reserved_1y,all_upfront,0.917009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:08.675798 +AWS,ap-northeast-1,m6id.4xlarge,reserved_1y,no_upfront,0.917009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:52.032386 +AWS,ap-northeast-1,m6id.4xlarge,reserved_1y,partial_upfront,0.917009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:34.288552 +AWS,ap-northeast-1,m6id.4xlarge,reserved_3y,all_upfront,0.30567,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:07.852170 +AWS,ap-northeast-1,m6id.4xlarge,reserved_3y,no_upfront,0.30567,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:56.497279 +AWS,ap-northeast-1,m6id.4xlarge,reserved_3y,partial_upfront,0.30567,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:44.989404 +AWS,ap-northeast-1,m6id.4xlarge,spot,NA,0.468133,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272311 +AWS,ap-northeast-1,m6id.8xlarge,on_demand,NA,2.4528,USD,AWS Pricing API,2025-11-30T09:02:11.676980 +AWS,ap-northeast-1,m6id.8xlarge,reserved_1y,all_upfront,1.871411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:41.116732 +AWS,ap-northeast-1,m6id.8xlarge,reserved_1y,no_upfront,1.871411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:24.407718 +AWS,ap-northeast-1,m6id.8xlarge,reserved_1y,partial_upfront,1.871411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:06.732093 +AWS,ap-northeast-1,m6id.8xlarge,reserved_3y,all_upfront,1.24759,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:40.709087 +AWS,ap-northeast-1,m6id.8xlarge,reserved_3y,no_upfront,1.24759,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:28.444448 +AWS,ap-northeast-1,m6id.8xlarge,reserved_3y,partial_upfront,1.24759,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:17.693534 +AWS,ap-northeast-1,m6id.8xlarge,spot,NA,0.826456,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270382 +AWS,ap-northeast-1,m6id.large,on_demand,NA,0.1533,USD,AWS Pricing API,2025-11-30T09:02:40.527426 +AWS,ap-northeast-1,m6id.large,reserved_1y,all_upfront,0.091995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:09.747680 +AWS,ap-northeast-1,m6id.large,reserved_1y,no_upfront,0.091995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:53.115881 +AWS,ap-northeast-1,m6id.large,reserved_1y,partial_upfront,0.091995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:35.360211 +AWS,ap-northeast-1,m6id.large,reserved_3y,all_upfront,0.061325,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:08.909597 +AWS,ap-northeast-1,m6id.large,reserved_3y,no_upfront,0.061325,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:57.596591 +AWS,ap-northeast-1,m6id.large,reserved_3y,partial_upfront,0.061325,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:46.060033 +AWS,ap-northeast-1,m6id.large,spot,NA,0.052633,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272361 +AWS,ap-northeast-1,m6id.xlarge,on_demand,NA,0.3066,USD,AWS Pricing API,2025-11-30T09:01:43.270314 +AWS,ap-northeast-1,m6id.xlarge,reserved_1y,all_upfront,0.24561,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:13.154293 +AWS,ap-northeast-1,m6id.xlarge,reserved_1y,no_upfront,0.24561,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:56.003129 +AWS,ap-northeast-1,m6id.xlarge,reserved_1y,partial_upfront,0.24561,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:38.769380 +AWS,ap-northeast-1,m6id.xlarge,reserved_3y,all_upfront,0.24561,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:13.245752 +AWS,ap-northeast-1,m6id.xlarge,reserved_3y,no_upfront,0.24561,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:59.892110 +AWS,ap-northeast-1,m6id.xlarge,reserved_3y,partial_upfront,0.24561,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:49.837538 +AWS,ap-northeast-1,m6id.xlarge,spot,NA,0.113173,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269244 +AWS,ap-northeast-1,m6idn.12xlarge,on_demand,NA,4.914,USD,AWS Pricing API,2025-11-30T09:02:03.301485 +AWS,ap-northeast-1,m6idn.12xlarge,reserved_1y,all_upfront,3.96265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:32.864591 +AWS,ap-northeast-1,m6idn.12xlarge,reserved_1y,no_upfront,3.96265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:16.014154 +AWS,ap-northeast-1,m6idn.12xlarge,reserved_1y,partial_upfront,3.96265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:58.457475 +AWS,ap-northeast-1,m6idn.12xlarge,reserved_3y,all_upfront,3.96265,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:32.620658 +AWS,ap-northeast-1,m6idn.12xlarge,reserved_3y,no_upfront,3.96265,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:20.026414 +AWS,ap-northeast-1,m6idn.12xlarge,reserved_3y,partial_upfront,3.96265,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:09.478764 +AWS,ap-northeast-1,m6idn.12xlarge,spot,NA,1.678008,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270014 +AWS,ap-northeast-1,m6idn.16xlarge,on_demand,NA,6.552,USD,AWS Pricing API,2025-11-30T09:02:26.627886 +AWS,ap-northeast-1,m6idn.16xlarge,reserved_1y,all_upfront,3.931239,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:55.846446 +AWS,ap-northeast-1,m6idn.16xlarge,reserved_1y,no_upfront,3.931239,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:39.253253 +AWS,ap-northeast-1,m6idn.16xlarge,reserved_1y,partial_upfront,3.931239,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:21.661466 +AWS,ap-northeast-1,m6idn.16xlarge,reserved_3y,all_upfront,2.620813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:55.305081 +AWS,ap-northeast-1,m6idn.16xlarge,reserved_3y,no_upfront,2.620813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:43.526204 +AWS,ap-northeast-1,m6idn.16xlarge,reserved_3y,partial_upfront,2.620813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:32.359117 +AWS,ap-northeast-1,m6idn.16xlarge,spot,NA,2.367102,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271005 +AWS,ap-northeast-1,m6idn.24xlarge,on_demand,NA,9.828,USD,AWS Pricing API,2025-11-30T09:02:09.218168 +AWS,ap-northeast-1,m6idn.24xlarge,reserved_1y,all_upfront,5.896802,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:38.685380 +AWS,ap-northeast-1,m6idn.24xlarge,reserved_1y,no_upfront,5.896802,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:21.935849 +AWS,ap-northeast-1,m6idn.24xlarge,reserved_1y,partial_upfront,5.896802,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:04.321593 +AWS,ap-northeast-1,m6idn.24xlarge,reserved_3y,all_upfront,3.931201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:38.329005 +AWS,ap-northeast-1,m6idn.24xlarge,reserved_3y,no_upfront,3.931201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:25.958900 +AWS,ap-northeast-1,m6idn.24xlarge,reserved_3y,partial_upfront,3.931201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:15.245789 +AWS,ap-northeast-1,m6idn.24xlarge,spot,NA,3.791106,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270275 +AWS,ap-northeast-1,m6idn.2xlarge,on_demand,NA,0.819,USD,AWS Pricing API,2025-11-30T09:01:49.421485 +AWS,ap-northeast-1,m6idn.2xlarge,reserved_1y,all_upfront,0.481621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:19.246228 +AWS,ap-northeast-1,m6idn.2xlarge,reserved_1y,no_upfront,0.481621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:02.185193 +AWS,ap-northeast-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.481621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:44.841111 +AWS,ap-northeast-1,m6idn.2xlarge,reserved_3y,all_upfront,0.16054,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:19.189061 +AWS,ap-northeast-1,m6idn.2xlarge,reserved_3y,no_upfront,0.16054,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:06.132795 +AWS,ap-northeast-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.16054,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:55.893261 +AWS,ap-northeast-1,m6idn.2xlarge,spot,NA,0.313358,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269460 +AWS,ap-northeast-1,m6idn.32xlarge,on_demand,NA,13.104,USD,AWS Pricing API,2025-11-30T09:02:10.062882 +AWS,ap-northeast-1,m6idn.32xlarge,reserved_1y,all_upfront,10.56707,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:39.489139 +AWS,ap-northeast-1,m6idn.32xlarge,reserved_1y,no_upfront,10.56707,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:22.744918 +AWS,ap-northeast-1,m6idn.32xlarge,reserved_1y,partial_upfront,10.56707,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:05.121739 +AWS,ap-northeast-1,m6idn.32xlarge,reserved_3y,all_upfront,10.56707,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:39.121732 +AWS,ap-northeast-1,m6idn.32xlarge,reserved_3y,no_upfront,10.56707,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:26.780365 +AWS,ap-northeast-1,m6idn.32xlarge,reserved_3y,partial_upfront,10.56707,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:16.064148 +AWS,ap-northeast-1,m6idn.32xlarge,spot,NA,4.957177,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270339 +AWS,ap-northeast-1,m6idn.4xlarge,on_demand,NA,1.638,USD,AWS Pricing API,2025-11-30T09:02:06.199055 +AWS,ap-northeast-1,m6idn.4xlarge,reserved_1y,all_upfront,1.32088,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:35.716862 +AWS,ap-northeast-1,m6idn.4xlarge,reserved_1y,no_upfront,1.32088,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:18.931763 +AWS,ap-northeast-1,m6idn.4xlarge,reserved_1y,partial_upfront,1.32088,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:01.297939 +AWS,ap-northeast-1,m6idn.4xlarge,reserved_3y,all_upfront,1.32088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:35.410150 +AWS,ap-northeast-1,m6idn.4xlarge,reserved_3y,no_upfront,1.32088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:22.951152 +AWS,ap-northeast-1,m6idn.4xlarge,reserved_3y,partial_upfront,1.32088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:12.298032 +AWS,ap-northeast-1,m6idn.4xlarge,spot,NA,0.628756,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270154 +AWS,ap-northeast-1,m6idn.8xlarge,on_demand,NA,3.276,USD,AWS Pricing API,2025-11-30T09:01:34.151078 +AWS,ap-northeast-1,m6idn.8xlarge,reserved_1y,all_upfront,2.515971,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:04.001650 +AWS,ap-northeast-1,m6idn.8xlarge,reserved_1y,no_upfront,2.515971,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:46.843547 +AWS,ap-northeast-1,m6idn.8xlarge,reserved_1y,partial_upfront,2.515971,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:29.689826 +AWS,ap-northeast-1,m6idn.8xlarge,reserved_3y,all_upfront,1.67731,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:04.344118 +AWS,ap-northeast-1,m6idn.8xlarge,reserved_3y,no_upfront,1.67731,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:50.648229 +AWS,ap-northeast-1,m6idn.8xlarge,reserved_3y,partial_upfront,1.67731,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:40.841430 +AWS,ap-northeast-1,m6idn.8xlarge,spot,NA,1.191332,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268924 +AWS,ap-northeast-1,m6idn.large,on_demand,NA,0.20475,USD,AWS Pricing API,2025-11-30T09:02:20.590390 +AWS,ap-northeast-1,m6idn.large,reserved_1y,all_upfront,0.120434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:49.924563 +AWS,ap-northeast-1,m6idn.large,reserved_1y,no_upfront,0.120434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:33.253086 +AWS,ap-northeast-1,m6idn.large,reserved_1y,partial_upfront,0.120434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:15.539626 +AWS,ap-northeast-1,m6idn.large,reserved_3y,all_upfront,0.040145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:49.379179 +AWS,ap-northeast-1,m6idn.large,reserved_3y,no_upfront,0.040145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:37.442716 +AWS,ap-northeast-1,m6idn.large,reserved_3y,partial_upfront,0.040145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:26.436472 +AWS,ap-northeast-1,m6idn.large,spot,NA,0.071683,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270772 +AWS,ap-northeast-1,m6idn.xlarge,on_demand,NA,0.4095,USD,AWS Pricing API,2025-11-30T09:02:03.438388 +AWS,ap-northeast-1,m6idn.xlarge,reserved_1y,all_upfront,0.327562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:33.002092 +AWS,ap-northeast-1,m6idn.xlarge,reserved_1y,no_upfront,0.327562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:16.159225 +AWS,ap-northeast-1,m6idn.xlarge,reserved_1y,partial_upfront,0.327562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:58.591347 +AWS,ap-northeast-1,m6idn.xlarge,reserved_3y,all_upfront,0.163787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:32.752595 +AWS,ap-northeast-1,m6idn.xlarge,reserved_3y,no_upfront,0.163787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:20.164495 +AWS,ap-northeast-1,m6idn.xlarge,reserved_3y,partial_upfront,0.163787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:09.610968 +AWS,ap-northeast-1,m6idn.xlarge,spot,NA,0.152484,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270043 +AWS,ap-northeast-1,m6in.12xlarge,on_demand,NA,4.29624,USD,AWS Pricing API,2025-11-30T09:01:31.288846 +AWS,ap-northeast-1,m6in.12xlarge,reserved_1y,all_upfront,3.45547,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:01.145462 +AWS,ap-northeast-1,m6in.12xlarge,reserved_1y,no_upfront,3.45547,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:43.985254 +AWS,ap-northeast-1,m6in.12xlarge,reserved_1y,partial_upfront,3.45547,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:26.857540 +AWS,ap-northeast-1,m6in.12xlarge,reserved_3y,all_upfront,3.45547,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:01.547230 +AWS,ap-northeast-1,m6in.12xlarge,reserved_3y,no_upfront,3.45547,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:47.778877 +AWS,ap-northeast-1,m6in.12xlarge,reserved_3y,partial_upfront,3.45547,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:38.005942 +AWS,ap-northeast-1,m6in.12xlarge,spot,NA,1.541265,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268803 +AWS,ap-northeast-1,m6in.16xlarge,on_demand,NA,5.72832,USD,AWS Pricing API,2025-11-30T09:01:41.244115 +AWS,ap-northeast-1,m6in.16xlarge,reserved_1y,all_upfront,4.582646,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:11.139053 +AWS,ap-northeast-1,m6in.16xlarge,reserved_1y,no_upfront,4.582646,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:53.913057 +AWS,ap-northeast-1,m6in.16xlarge,reserved_1y,partial_upfront,4.582646,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:36.757179 +AWS,ap-northeast-1,m6in.16xlarge,reserved_3y,all_upfront,2.291322,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:11.255353 +AWS,ap-northeast-1,m6in.16xlarge,reserved_3y,no_upfront,2.291322,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:57.823870 +AWS,ap-northeast-1,m6in.16xlarge,reserved_3y,partial_upfront,2.291322,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:47.834145 +AWS,ap-northeast-1,m6in.16xlarge,spot,NA,2.164945,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269199 +AWS,ap-northeast-1,m6in.24xlarge,on_demand,NA,8.59248,USD,AWS Pricing API,2025-11-30T09:02:23.069565 +AWS,ap-northeast-1,m6in.24xlarge,reserved_1y,all_upfront,6.91093,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:52.355177 +AWS,ap-northeast-1,m6in.24xlarge,reserved_1y,no_upfront,6.91093,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:35.710193 +AWS,ap-northeast-1,m6in.24xlarge,reserved_1y,partial_upfront,6.91093,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:18.067767 +AWS,ap-northeast-1,m6in.24xlarge,reserved_3y,all_upfront,6.91093,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:51.780171 +AWS,ap-northeast-1,m6in.24xlarge,reserved_3y,no_upfront,6.91093,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:39.925652 +AWS,ap-northeast-1,m6in.24xlarge,reserved_3y,partial_upfront,6.91093,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:28.863488 +AWS,ap-northeast-1,m6in.24xlarge,spot,NA,3.05623,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270846 +AWS,ap-northeast-1,m6in.2xlarge,on_demand,NA,0.71604,USD,AWS Pricing API,2025-11-30T09:01:48.055050 +AWS,ap-northeast-1,m6in.2xlarge,reserved_1y,all_upfront,0.45111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:17.890682 +AWS,ap-northeast-1,m6in.2xlarge,reserved_1y,no_upfront,0.45111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:00.788678 +AWS,ap-northeast-1,m6in.2xlarge,reserved_1y,partial_upfront,0.45111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:43.482459 +AWS,ap-northeast-1,m6in.2xlarge,reserved_3y,all_upfront,0.45111,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:17.874310 +AWS,ap-northeast-1,m6in.2xlarge,reserved_3y,no_upfront,0.45111,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:04.746415 +AWS,ap-northeast-1,m6in.2xlarge,reserved_3y,partial_upfront,0.45111,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:54.548021 +AWS,ap-northeast-1,m6in.2xlarge,spot,NA,0.2727,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269423 +AWS,ap-northeast-1,m6in.32xlarge,on_demand,NA,11.45664,USD,AWS Pricing API,2025-11-30T09:01:36.757084 +AWS,ap-northeast-1,m6in.32xlarge,reserved_1y,all_upfront,8.600228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:06.658906 +AWS,ap-northeast-1,m6in.32xlarge,reserved_1y,no_upfront,8.600228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:49.438642 +AWS,ap-northeast-1,m6in.32xlarge,reserved_1y,partial_upfront,8.600228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:32.251743 +AWS,ap-northeast-1,m6in.32xlarge,reserved_3y,all_upfront,2.866743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:06.877763 +AWS,ap-northeast-1,m6in.32xlarge,reserved_3y,no_upfront,2.866743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:53.272636 +AWS,ap-northeast-1,m6in.32xlarge,reserved_3y,partial_upfront,2.866743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:43.377793 +AWS,ap-northeast-1,m6in.32xlarge,spot,NA,3.835177,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269064 +AWS,ap-northeast-1,m6in.4xlarge,on_demand,NA,1.43208,USD,AWS Pricing API,2025-11-30T09:01:46.836865 +AWS,ap-northeast-1,m6in.4xlarge,reserved_1y,all_upfront,1.354786,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:16.667249 +AWS,ap-northeast-1,m6in.4xlarge,reserved_1y,no_upfront,1.354786,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:59.550627 +AWS,ap-northeast-1,m6in.4xlarge,reserved_1y,partial_upfront,1.354786,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:42.276255 +AWS,ap-northeast-1,m6in.4xlarge,reserved_3y,all_upfront,0.677389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:16.687175 +AWS,ap-northeast-1,m6in.4xlarge,reserved_3y,no_upfront,0.677389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:03.512441 +AWS,ap-northeast-1,m6in.4xlarge,reserved_3y,partial_upfront,0.677389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:53.341424 +AWS,ap-northeast-1,m6in.4xlarge,spot,NA,0.542543,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269390 +AWS,ap-northeast-1,m6in.8xlarge,on_demand,NA,2.86416,USD,AWS Pricing API,2025-11-30T09:01:44.909820 +AWS,ap-northeast-1,m6in.8xlarge,reserved_1y,all_upfront,2.193888,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:14.779516 +AWS,ap-northeast-1,m6in.8xlarge,reserved_1y,no_upfront,2.193888,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:57.640143 +AWS,ap-northeast-1,m6in.8xlarge,reserved_1y,partial_upfront,2.193888,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:40.391648 +AWS,ap-northeast-1,m6in.8xlarge,reserved_3y,all_upfront,1.462609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:14.841809 +AWS,ap-northeast-1,m6in.8xlarge,reserved_3y,no_upfront,1.462609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:01.564818 +AWS,ap-northeast-1,m6in.8xlarge,reserved_3y,partial_upfront,1.462609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:51.451727 +AWS,ap-northeast-1,m6in.8xlarge,spot,NA,1.038063,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269335 +AWS,ap-northeast-1,m6in.large,on_demand,NA,0.17901,USD,AWS Pricing API,2025-11-30T09:02:04.660589 +AWS,ap-northeast-1,m6in.large,reserved_1y,all_upfront,0.105251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:34.224768 +AWS,ap-northeast-1,m6in.large,reserved_1y,no_upfront,0.105251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:17.400455 +AWS,ap-northeast-1,m6in.large,reserved_1y,partial_upfront,0.105251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:59.813081 +AWS,ap-northeast-1,m6in.large,reserved_3y,all_upfront,0.035084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:33.948125 +AWS,ap-northeast-1,m6in.large,reserved_3y,no_upfront,0.035084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:21.417212 +AWS,ap-northeast-1,m6in.large,reserved_3y,partial_upfront,0.035084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:10.811211 +AWS,ap-northeast-1,m6in.large,spot,NA,0.066128,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270104 +AWS,ap-northeast-1,m6in.xlarge,on_demand,NA,0.35802,USD,AWS Pricing API,2025-11-30T09:02:18.953974 +AWS,ap-northeast-1,m6in.xlarge,reserved_1y,all_upfront,0.28644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:48.287440 +AWS,ap-northeast-1,m6in.xlarge,reserved_1y,no_upfront,0.28644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:31.623334 +AWS,ap-northeast-1,m6in.xlarge,reserved_1y,partial_upfront,0.28644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:13.893982 +AWS,ap-northeast-1,m6in.xlarge,reserved_3y,all_upfront,0.143213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:47.787780 +AWS,ap-northeast-1,m6in.xlarge,reserved_3y,no_upfront,0.143213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:35.793549 +AWS,ap-northeast-1,m6in.xlarge,reserved_3y,partial_upfront,0.143213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:24.836174 +AWS,ap-northeast-1,m6in.xlarge,spot,NA,0.149757,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270657 +AWS,ap-northeast-1,m7a.12xlarge,on_demand,NA,3.59352,USD,AWS Pricing API,2025-11-30T09:02:07.430007 +AWS,ap-northeast-1,m7a.12xlarge,reserved_1y,all_upfront,2.38108,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:36.926025 +AWS,ap-northeast-1,m7a.12xlarge,reserved_1y,no_upfront,2.38108,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:20.174199 +AWS,ap-northeast-1,m7a.12xlarge,reserved_1y,partial_upfront,2.38108,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:02.549618 +AWS,ap-northeast-1,m7a.12xlarge,reserved_3y,all_upfront,2.38108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:36.617045 +AWS,ap-northeast-1,m7a.12xlarge,reserved_3y,no_upfront,2.38108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:24.181981 +AWS,ap-northeast-1,m7a.12xlarge,reserved_3y,partial_upfront,2.38108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:13.501840 +AWS,ap-northeast-1,m7a.12xlarge,spot,NA,1.382237,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270196 +AWS,ap-northeast-1,m7a.16xlarge,on_demand,NA,4.79136,USD,AWS Pricing API,2025-11-30T09:02:23.634496 +AWS,ap-northeast-1,m7a.16xlarge,reserved_1y,all_upfront,4.018557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:52.890491 +AWS,ap-northeast-1,m7a.16xlarge,reserved_1y,no_upfront,4.018557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:36.256121 +AWS,ap-northeast-1,m7a.16xlarge,reserved_1y,partial_upfront,4.018557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:18.610612 +AWS,ap-northeast-1,m7a.16xlarge,reserved_3y,all_upfront,2.009272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:52.307646 +AWS,ap-northeast-1,m7a.16xlarge,reserved_3y,no_upfront,2.009272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:40.487054 +AWS,ap-northeast-1,m7a.16xlarge,reserved_3y,partial_upfront,2.009272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:29.396754 +AWS,ap-northeast-1,m7a.16xlarge,spot,NA,1.712232,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270890 +AWS,ap-northeast-1,m7a.24xlarge,on_demand,NA,7.18704,USD,AWS Pricing API,2025-11-30T09:02:36.444101 +AWS,ap-northeast-1,m7a.24xlarge,reserved_1y,all_upfront,5.080822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:05.699811 +AWS,ap-northeast-1,m7a.24xlarge,reserved_1y,no_upfront,5.080822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:49.023183 +AWS,ap-northeast-1,m7a.24xlarge,reserved_1y,partial_upfront,5.080822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:31.339248 +AWS,ap-northeast-1,m7a.24xlarge,reserved_3y,all_upfront,1.693607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:04.933026 +AWS,ap-northeast-1,m7a.24xlarge,reserved_3y,no_upfront,1.693607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:53.473559 +AWS,ap-northeast-1,m7a.24xlarge,reserved_3y,partial_upfront,1.693607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:42.036992 +AWS,ap-northeast-1,m7a.24xlarge,spot,NA,2.518422,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271373 +AWS,ap-northeast-1,m7a.2xlarge,on_demand,NA,0.59892,USD,AWS Pricing API,2025-11-30T09:01:42.866171 +AWS,ap-northeast-1,m7a.2xlarge,reserved_1y,all_upfront,0.432002,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:12.750723 +AWS,ap-northeast-1,m7a.2xlarge,reserved_1y,no_upfront,0.432002,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:55.537753 +AWS,ap-northeast-1,m7a.2xlarge,reserved_1y,partial_upfront,0.432002,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:38.368813 +AWS,ap-northeast-1,m7a.2xlarge,reserved_3y,all_upfront,0.288014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:12.850633 +AWS,ap-northeast-1,m7a.2xlarge,reserved_3y,no_upfront,0.288014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:59.478791 +AWS,ap-northeast-1,m7a.2xlarge,reserved_3y,partial_upfront,0.288014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:49.435921 +AWS,ap-northeast-1,m7a.2xlarge,spot,NA,0.240912,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269268 +AWS,ap-northeast-1,m7a.32xlarge,on_demand,NA,9.58272,USD,AWS Pricing API,2025-11-30T09:02:25.953867 +AWS,ap-northeast-1,m7a.32xlarge,reserved_1y,all_upfront,5.926256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:55.176685 +AWS,ap-northeast-1,m7a.32xlarge,reserved_1y,no_upfront,5.926256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:38.574302 +AWS,ap-northeast-1,m7a.32xlarge,reserved_1y,partial_upfront,5.926256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:20.888197 +AWS,ap-northeast-1,m7a.32xlarge,reserved_3y,all_upfront,1.975419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:54.649983 +AWS,ap-northeast-1,m7a.32xlarge,reserved_3y,no_upfront,1.975419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:42.830119 +AWS,ap-northeast-1,m7a.32xlarge,reserved_3y,partial_upfront,1.975419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:31.691346 +AWS,ap-northeast-1,m7a.32xlarge,spot,NA,3.065884,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271023 +AWS,ap-northeast-1,m7a.48xlarge,on_demand,NA,14.37408,USD,AWS Pricing API,2025-11-30T09:01:35.948880 +AWS,ap-northeast-1,m7a.48xlarge,reserved_1y,all_upfront,10.88748,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:05.784640 +AWS,ap-northeast-1,m7a.48xlarge,reserved_1y,no_upfront,10.88748,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:48.624189 +AWS,ap-northeast-1,m7a.48xlarge,reserved_1y,partial_upfront,10.88748,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:31.432318 +AWS,ap-northeast-1,m7a.48xlarge,reserved_3y,all_upfront,10.88748,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:06.082722 +AWS,ap-northeast-1,m7a.48xlarge,reserved_3y,no_upfront,10.88748,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:52.450190 +AWS,ap-northeast-1,m7a.48xlarge,reserved_3y,partial_upfront,10.88748,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:42.576056 +AWS,ap-northeast-1,m7a.48xlarge,spot,NA,4.53891,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269003 +AWS,ap-northeast-1,m7a.4xlarge,on_demand,NA,1.19784,USD,AWS Pricing API,2025-11-30T09:02:09.354364 +AWS,ap-northeast-1,m7a.4xlarge,reserved_1y,all_upfront,1.416553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:38.821724 +AWS,ap-northeast-1,m7a.4xlarge,reserved_1y,no_upfront,1.416553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:22.070705 +AWS,ap-northeast-1,m7a.4xlarge,reserved_1y,partial_upfront,1.416553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:04.457855 +AWS,ap-northeast-1,m7a.4xlarge,reserved_3y,all_upfront,0.472184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:38.462934 +AWS,ap-northeast-1,m7a.4xlarge,reserved_3y,no_upfront,0.472184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:26.096885 +AWS,ap-northeast-1,m7a.4xlarge,reserved_3y,partial_upfront,0.472184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:15.379043 +AWS,ap-northeast-1,m7a.4xlarge,spot,NA,0.484764,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270300 +AWS,ap-northeast-1,m7a.8xlarge,on_demand,NA,2.39568,USD,AWS Pricing API,2025-11-30T09:02:13.633566 +AWS,ap-northeast-1,m7a.8xlarge,reserved_1y,all_upfront,1.58738,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:43.019055 +AWS,ap-northeast-1,m7a.8xlarge,reserved_1y,no_upfront,1.58738,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:26.315412 +AWS,ap-northeast-1,m7a.8xlarge,reserved_1y,partial_upfront,1.58738,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:08.632651 +AWS,ap-northeast-1,m7a.8xlarge,reserved_3y,all_upfront,1.58738,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:42.577227 +AWS,ap-northeast-1,m7a.8xlarge,reserved_3y,no_upfront,1.58738,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:30.403715 +AWS,ap-northeast-1,m7a.8xlarge,reserved_3y,partial_upfront,1.58738,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:19.597909 +AWS,ap-northeast-1,m7a.8xlarge,spot,NA,0.997953,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270504 +AWS,ap-northeast-1,m7a.xlarge,on_demand,NA,0.29946,USD,AWS Pricing API,2025-11-30T09:01:35.509608 +AWS,ap-northeast-1,m7a.xlarge,reserved_1y,all_upfront,0.251146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:05.370139 +AWS,ap-northeast-1,m7a.xlarge,reserved_1y,no_upfront,0.251146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:48.220962 +AWS,ap-northeast-1,m7a.xlarge,reserved_1y,partial_upfront,0.251146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:31.025191 +AWS,ap-northeast-1,m7a.xlarge,reserved_3y,all_upfront,0.125575,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:05.680297 +AWS,ap-northeast-1,m7a.xlarge,reserved_3y,no_upfront,0.125575,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:52.039022 +AWS,ap-northeast-1,m7a.xlarge,reserved_3y,partial_upfront,0.125575,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:42.171886 +AWS,ap-northeast-1,m7a.xlarge,spot,NA,0.109685,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268978 +AWS,ap-northeast-1,m7g.12xlarge,on_demand,NA,2.5296,USD,AWS Pricing API,2025-11-30T09:01:52.260451 +AWS,ap-northeast-1,m7g.12xlarge,reserved_1y,all_upfront,3.577169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:22.072271 +AWS,ap-northeast-1,m7g.12xlarge,reserved_1y,no_upfront,3.577169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:05.068474 +AWS,ap-northeast-1,m7g.12xlarge,reserved_1y,partial_upfront,3.577169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:47.670972 +AWS,ap-northeast-1,m7g.12xlarge,reserved_3y,all_upfront,1.19239,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:21.961375 +AWS,ap-northeast-1,m7g.12xlarge,reserved_3y,no_upfront,1.19239,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:09.025206 +AWS,ap-northeast-1,m7g.12xlarge,reserved_3y,partial_upfront,1.19239,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:58.683773 +AWS,ap-northeast-1,m7g.12xlarge,spot,NA,0.958528,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269575 +AWS,ap-northeast-1,m7g.16xlarge,on_demand,NA,3.3728,USD,AWS Pricing API,2025-11-30T09:02:21.411304 +AWS,ap-northeast-1,m7g.16xlarge,reserved_1y,all_upfront,2.085616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:50.734115 +AWS,ap-northeast-1,m7g.16xlarge,reserved_1y,no_upfront,2.085616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:34.068376 +AWS,ap-northeast-1,m7g.16xlarge,reserved_1y,partial_upfront,2.085616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:16.358594 +AWS,ap-northeast-1,m7g.16xlarge,reserved_3y,all_upfront,0.695205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:50.175115 +AWS,ap-northeast-1,m7g.16xlarge,reserved_3y,no_upfront,0.695205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:38.265478 +AWS,ap-northeast-1,m7g.16xlarge,reserved_3y,partial_upfront,0.695205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:27.251003 +AWS,ap-northeast-1,m7g.16xlarge,spot,NA,1.251257,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270754 +AWS,ap-northeast-1,m7g.2xlarge,on_demand,NA,0.4216,USD,AWS Pricing API,2025-11-30T09:01:44.092252 +AWS,ap-northeast-1,m7g.2xlarge,reserved_1y,all_upfront,0.2793,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:13.964788 +AWS,ap-northeast-1,m7g.2xlarge,reserved_1y,no_upfront,0.2793,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:56.821613 +AWS,ap-northeast-1,m7g.2xlarge,reserved_1y,partial_upfront,0.2793,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:39.576673 +AWS,ap-northeast-1,m7g.2xlarge,reserved_3y,all_upfront,0.2793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:14.043959 +AWS,ap-northeast-1,m7g.2xlarge,reserved_3y,no_upfront,0.2793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:00.726406 +AWS,ap-northeast-1,m7g.2xlarge,reserved_3y,partial_upfront,0.2793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:50.647235 +AWS,ap-northeast-1,m7g.2xlarge,spot,NA,0.184081,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269293 +AWS,ap-northeast-1,m7g.4xlarge,on_demand,NA,0.8432,USD,AWS Pricing API,2025-11-30T09:02:41.064067 +AWS,ap-northeast-1,m7g.4xlarge,reserved_1y,all_upfront,0.6387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:10.291113 +AWS,ap-northeast-1,m7g.4xlarge,reserved_1y,no_upfront,0.6387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:53.658567 +AWS,ap-northeast-1,m7g.4xlarge,reserved_1y,partial_upfront,0.6387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:35.904438 +AWS,ap-northeast-1,m7g.4xlarge,reserved_3y,all_upfront,0.6387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:09.434252 +AWS,ap-northeast-1,m7g.4xlarge,reserved_3y,no_upfront,0.6387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:58.145467 +AWS,ap-northeast-1,m7g.4xlarge,reserved_3y,partial_upfront,0.6387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:46.598545 +AWS,ap-northeast-1,m7g.4xlarge,spot,NA,0.331815,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272392 +AWS,ap-northeast-1,m7g.8xlarge,on_demand,NA,1.6864,USD,AWS Pricing API,2025-11-30T09:01:35.239474 +AWS,ap-northeast-1,m7g.8xlarge,reserved_1y,all_upfront,1.064178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:05.087162 +AWS,ap-northeast-1,m7g.8xlarge,reserved_1y,no_upfront,1.064178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:47.940466 +AWS,ap-northeast-1,m7g.8xlarge,reserved_1y,partial_upfront,1.064178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:30.758680 +AWS,ap-northeast-1,m7g.8xlarge,reserved_3y,all_upfront,0.709459,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:05.407283 +AWS,ap-northeast-1,m7g.8xlarge,reserved_3y,no_upfront,0.709459,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:51.765449 +AWS,ap-northeast-1,m7g.8xlarge,reserved_3y,partial_upfront,0.709459,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:41.905605 +AWS,ap-northeast-1,m7g.8xlarge,spot,NA,0.650582,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268990 +AWS,ap-northeast-1,m7g.large,on_demand,NA,0.1054,USD,AWS Pricing API,2025-11-30T09:02:03.027145 +AWS,ap-northeast-1,m7g.large,reserved_1y,all_upfront,0.0798,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:32.593545 +AWS,ap-northeast-1,m7g.large,reserved_1y,no_upfront,0.0798,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:15.734829 +AWS,ap-northeast-1,m7g.large,reserved_1y,partial_upfront,0.0798,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:58.190038 +AWS,ap-northeast-1,m7g.large,reserved_3y,all_upfront,0.0798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:32.356330 +AWS,ap-northeast-1,m7g.large,reserved_3y,no_upfront,0.0798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:19.754530 +AWS,ap-northeast-1,m7g.large,reserved_3y,partial_upfront,0.0798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:09.202990 +AWS,ap-northeast-1,m7g.large,spot,NA,0.045461,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270008 +AWS,ap-northeast-1,m7g.xlarge,on_demand,NA,0.2108,USD,AWS Pricing API,2025-11-30T09:02:09.928349 +AWS,ap-northeast-1,m7g.xlarge,reserved_1y,all_upfront,0.298059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:39.354741 +AWS,ap-northeast-1,m7g.xlarge,reserved_1y,no_upfront,0.298059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:22.608445 +AWS,ap-northeast-1,m7g.xlarge,reserved_1y,partial_upfront,0.298059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:04.988762 +AWS,ap-northeast-1,m7g.xlarge,reserved_3y,all_upfront,0.099353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:38.990451 +AWS,ap-northeast-1,m7g.xlarge,reserved_3y,no_upfront,0.099353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:26.642730 +AWS,ap-northeast-1,m7g.xlarge,reserved_3y,partial_upfront,0.099353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:15.918130 +AWS,ap-northeast-1,m7g.xlarge,spot,NA,0.092363,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270326 +AWS,ap-northeast-1,m7gd.12xlarge,on_demand,NA,3.3113,USD,AWS Pricing API,2025-11-30T09:01:43.407269 +AWS,ap-northeast-1,m7gd.12xlarge,reserved_1y,all_upfront,1.986779,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:13.288129 +AWS,ap-northeast-1,m7gd.12xlarge,reserved_1y,no_upfront,1.986779,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:56.138526 +AWS,ap-northeast-1,m7gd.12xlarge,reserved_1y,partial_upfront,1.986779,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:38.903639 +AWS,ap-northeast-1,m7gd.12xlarge,reserved_3y,all_upfront,1.324526,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:13.378038 +AWS,ap-northeast-1,m7gd.12xlarge,reserved_3y,no_upfront,1.324526,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:00.027584 +AWS,ap-northeast-1,m7gd.12xlarge,reserved_3y,partial_upfront,1.324526,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:49.973447 +AWS,ap-northeast-1,m7gd.12xlarge,spot,NA,1.142965,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269314 +AWS,ap-northeast-1,m7gd.16xlarge,on_demand,NA,4.415,USD,AWS Pricing API,2025-11-30T09:02:00.631940 +AWS,ap-northeast-1,m7gd.16xlarge,reserved_1y,all_upfront,2.5664,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:30.312344 +AWS,ap-northeast-1,m7gd.16xlarge,reserved_1y,no_upfront,2.5664,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:13.399966 +AWS,ap-northeast-1,m7gd.16xlarge,reserved_1y,partial_upfront,2.5664,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:55.872515 +AWS,ap-northeast-1,m7gd.16xlarge,reserved_3y,all_upfront,2.5664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:30.117900 +AWS,ap-northeast-1,m7gd.16xlarge,reserved_3y,no_upfront,2.5664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:17.408545 +AWS,ap-northeast-1,m7gd.16xlarge,reserved_3y,partial_upfront,2.5664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:06.911614 +AWS,ap-northeast-1,m7gd.16xlarge,spot,NA,1.554698,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269912 +AWS,ap-northeast-1,m7gd.2xlarge,on_demand,NA,0.5519,USD,AWS Pricing API,2025-11-30T09:02:16.481708 +AWS,ap-northeast-1,m7gd.2xlarge,reserved_1y,all_upfront,0.4421,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:45.852391 +AWS,ap-northeast-1,m7gd.2xlarge,reserved_1y,no_upfront,0.4421,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:29.170570 +AWS,ap-northeast-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.4421,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:11.456381 +AWS,ap-northeast-1,m7gd.2xlarge,reserved_3y,all_upfront,0.4421,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:45.380122 +AWS,ap-northeast-1,m7gd.2xlarge,reserved_3y,no_upfront,0.4421,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:33.290978 +AWS,ap-northeast-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.4421,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:22.409722 +AWS,ap-northeast-1,m7gd.2xlarge,spot,NA,0.229951,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270627 +AWS,ap-northeast-1,m7gd.4xlarge,on_demand,NA,1.1038,USD,AWS Pricing API,2025-11-30T09:02:34.128636 +AWS,ap-northeast-1,m7gd.4xlarge,reserved_1y,all_upfront,0.6954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:03.403660 +AWS,ap-northeast-1,m7gd.4xlarge,reserved_1y,no_upfront,0.6954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:46.713781 +AWS,ap-northeast-1,m7gd.4xlarge,reserved_1y,partial_upfront,0.6954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:29.050540 +AWS,ap-northeast-1,m7gd.4xlarge,reserved_3y,all_upfront,0.6954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:02.665062 +AWS,ap-northeast-1,m7gd.4xlarge,reserved_3y,no_upfront,0.6954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:51.120227 +AWS,ap-northeast-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.6954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:39.761995 +AWS,ap-northeast-1,m7gd.4xlarge,spot,NA,0.404245,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271323 +AWS,ap-northeast-1,m7gd.8xlarge,on_demand,NA,2.2075,USD,AWS Pricing API,2025-11-30T09:02:14.167829 +AWS,ap-northeast-1,m7gd.8xlarge,reserved_1y,all_upfront,1.7684,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:43.549643 +AWS,ap-northeast-1,m7gd.8xlarge,reserved_1y,no_upfront,1.7684,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:26.852525 +AWS,ap-northeast-1,m7gd.8xlarge,reserved_1y,partial_upfront,1.7684,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:09.166014 +AWS,ap-northeast-1,m7gd.8xlarge,reserved_3y,all_upfront,1.7684,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:43.103082 +AWS,ap-northeast-1,m7gd.8xlarge,reserved_3y,no_upfront,1.7684,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:30.949691 +AWS,ap-northeast-1,m7gd.8xlarge,reserved_3y,partial_upfront,1.7684,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:20.125205 +AWS,ap-northeast-1,m7gd.8xlarge,spot,NA,0.781365,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270516 +AWS,ap-northeast-1,m7gd.large,on_demand,NA,0.138,USD,AWS Pricing API,2025-11-30T09:02:11.959918 +AWS,ap-northeast-1,m7gd.large,reserved_1y,all_upfront,0.1105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:41.386137 +AWS,ap-northeast-1,m7gd.large,reserved_1y,no_upfront,0.1105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:24.678703 +AWS,ap-northeast-1,m7gd.large,reserved_1y,partial_upfront,0.1105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:07.012932 +AWS,ap-northeast-1,m7gd.large,reserved_3y,all_upfront,0.1105,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:40.976192 +AWS,ap-northeast-1,m7gd.large,reserved_3y,no_upfront,0.1105,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:28.728257 +AWS,ap-northeast-1,m7gd.large,reserved_3y,partial_upfront,0.1105,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:17.957946 +AWS,ap-northeast-1,m7gd.large,spot,NA,0.04743,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270401 +AWS,ap-northeast-1,m7gd.xlarge,on_demand,NA,0.2759,USD,AWS Pricing API,2025-11-30T09:02:18.131485 +AWS,ap-northeast-1,m7gd.xlarge,reserved_1y,all_upfront,0.1604,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:47.485288 +AWS,ap-northeast-1,m7gd.xlarge,reserved_1y,no_upfront,0.1604,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:30.810528 +AWS,ap-northeast-1,m7gd.xlarge,reserved_1y,partial_upfront,0.1604,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:13.081525 +AWS,ap-northeast-1,m7gd.xlarge,reserved_3y,all_upfront,0.1604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:46.983371 +AWS,ap-northeast-1,m7gd.xlarge,reserved_3y,no_upfront,0.1604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:34.974305 +AWS,ap-northeast-1,m7gd.xlarge,reserved_3y,partial_upfront,0.1604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:24.026602 +AWS,ap-northeast-1,m7gd.xlarge,spot,NA,0.110425,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270675 +AWS,ap-northeast-1,m7i.12xlarge,on_demand,NA,3.1248,USD,AWS Pricing API,2025-11-30T09:01:49.556506 +AWS,ap-northeast-1,m7i.12xlarge,reserved_1y,all_upfront,2.0705,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:19.385754 +AWS,ap-northeast-1,m7i.12xlarge,reserved_1y,no_upfront,2.0705,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:02.324454 +AWS,ap-northeast-1,m7i.12xlarge,reserved_1y,partial_upfront,2.0705,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:44.974341 +AWS,ap-northeast-1,m7i.12xlarge,reserved_3y,all_upfront,2.0705,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:19.321561 +AWS,ap-northeast-1,m7i.12xlarge,reserved_3y,no_upfront,2.0705,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:06.271076 +AWS,ap-northeast-1,m7i.12xlarge,reserved_3y,partial_upfront,2.0705,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:56.027943 +AWS,ap-northeast-1,m7i.12xlarge,spot,NA,1.051959,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269478 +AWS,ap-northeast-1,m7i.16xlarge,on_demand,NA,4.1664,USD,AWS Pricing API,2025-11-30T09:02:26.891904 +AWS,ap-northeast-1,m7i.16xlarge,reserved_1y,all_upfront,2.945434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:56.113950 +AWS,ap-northeast-1,m7i.16xlarge,reserved_1y,no_upfront,2.945434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:39.526580 +AWS,ap-northeast-1,m7i.16xlarge,reserved_1y,partial_upfront,2.945434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:21.930345 +AWS,ap-northeast-1,m7i.16xlarge,reserved_3y,all_upfront,0.981811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:55.569439 +AWS,ap-northeast-1,m7i.16xlarge,reserved_3y,no_upfront,0.981811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:43.800457 +AWS,ap-northeast-1,m7i.16xlarge,reserved_3y,partial_upfront,0.981811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:32.624969 +AWS,ap-northeast-1,m7i.16xlarge,spot,NA,1.524244,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271017 +AWS,ap-northeast-1,m7i.24xlarge,on_demand,NA,6.2496,USD,AWS Pricing API,2025-11-30T09:02:33.029151 +AWS,ap-northeast-1,m7i.24xlarge,reserved_1y,all_upfront,6.012779,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:02.313619 +AWS,ap-northeast-1,m7i.24xlarge,reserved_1y,no_upfront,6.012779,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:45.621682 +AWS,ap-northeast-1,m7i.24xlarge,reserved_1y,partial_upfront,6.012779,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:27.974582 +AWS,ap-northeast-1,m7i.24xlarge,reserved_3y,all_upfront,3.006386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:01.563901 +AWS,ap-northeast-1,m7i.24xlarge,reserved_3y,no_upfront,3.006386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:50.011490 +AWS,ap-northeast-1,m7i.24xlarge,reserved_3y,partial_upfront,3.006386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:38.679542 +AWS,ap-northeast-1,m7i.24xlarge,spot,NA,2.085017,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271255 +AWS,ap-northeast-1,m7i.2xlarge,on_demand,NA,0.5208,USD,AWS Pricing API,2025-11-30T09:02:08.114936 +AWS,ap-northeast-1,m7i.2xlarge,reserved_1y,all_upfront,0.39447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:37.601340 +AWS,ap-northeast-1,m7i.2xlarge,reserved_1y,no_upfront,0.39447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:20.852835 +AWS,ap-northeast-1,m7i.2xlarge,reserved_1y,partial_upfront,0.39447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:03.228366 +AWS,ap-northeast-1,m7i.2xlarge,reserved_3y,all_upfront,0.39447,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:37.275125 +AWS,ap-northeast-1,m7i.2xlarge,reserved_3y,no_upfront,0.39447,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:24.862868 +AWS,ap-northeast-1,m7i.2xlarge,reserved_3y,partial_upfront,0.39447,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:14.183665 +AWS,ap-northeast-1,m7i.2xlarge,spot,NA,0.20776,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270263 +AWS,ap-northeast-1,m7i.48xlarge,on_demand,NA,12.4992,USD,AWS Pricing API,2025-11-30T09:01:30.871216 +AWS,ap-northeast-1,m7i.48xlarge,reserved_1y,all_upfront,7.729909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:00.739866 +AWS,ap-northeast-1,m7i.48xlarge,reserved_1y,no_upfront,7.729909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:43.526823 +AWS,ap-northeast-1,m7i.48xlarge,reserved_1y,partial_upfront,7.729909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:26.452575 +AWS,ap-northeast-1,m7i.48xlarge,reserved_3y,all_upfront,2.576636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:01.148717 +AWS,ap-northeast-1,m7i.48xlarge,reserved_3y,no_upfront,2.576636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:47.370844 +AWS,ap-northeast-1,m7i.48xlarge,reserved_3y,partial_upfront,2.576636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:37.603813 +AWS,ap-northeast-1,m7i.48xlarge,spot,NA,3.986042,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268724 +AWS,ap-northeast-1,m7i.4xlarge,on_demand,NA,1.0416,USD,AWS Pricing API,2025-11-30T09:01:44.774303 +AWS,ap-northeast-1,m7i.4xlarge,reserved_1y,all_upfront,1.002128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:14.643760 +AWS,ap-northeast-1,m7i.4xlarge,reserved_1y,no_upfront,1.002128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:57.503870 +AWS,ap-northeast-1,m7i.4xlarge,reserved_1y,partial_upfront,1.002128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:40.252674 +AWS,ap-northeast-1,m7i.4xlarge,reserved_3y,all_upfront,0.501063,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:14.709692 +AWS,ap-northeast-1,m7i.4xlarge,reserved_3y,no_upfront,0.501063,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:01.425912 +AWS,ap-northeast-1,m7i.4xlarge,reserved_3y,partial_upfront,0.501063,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:51.317304 +AWS,ap-northeast-1,m7i.4xlarge,spot,NA,0.394596,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269356 +AWS,ap-northeast-1,m7i.8xlarge,on_demand,NA,2.0832,USD,AWS Pricing API,2025-11-30T09:02:22.661384 +AWS,ap-northeast-1,m7i.8xlarge,reserved_1y,all_upfront,2.946233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:51.949367 +AWS,ap-northeast-1,m7i.8xlarge,reserved_1y,no_upfront,2.946233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:35.290590 +AWS,ap-northeast-1,m7i.8xlarge,reserved_1y,partial_upfront,2.946233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:17.664498 +AWS,ap-northeast-1,m7i.8xlarge,reserved_3y,all_upfront,0.982078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:51.373519 +AWS,ap-northeast-1,m7i.8xlarge,reserved_3y,no_upfront,0.982078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:39.508387 +AWS,ap-northeast-1,m7i.8xlarge,reserved_3y,partial_upfront,0.982078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:28.459661 +AWS,ap-northeast-1,m7i.8xlarge,spot,NA,0.779006,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270821 +AWS,ap-northeast-1,m7i.large,on_demand,NA,0.1302,USD,AWS Pricing API,2025-11-30T09:01:47.786456 +AWS,ap-northeast-1,m7i.large,reserved_1y,all_upfront,0.12527,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:17.622300 +AWS,ap-northeast-1,m7i.large,reserved_1y,no_upfront,0.12527,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:00.508911 +AWS,ap-northeast-1,m7i.large,reserved_1y,partial_upfront,0.12527,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:43.212065 +AWS,ap-northeast-1,m7i.large,reserved_3y,all_upfront,0.062637,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:17.609482 +AWS,ap-northeast-1,m7i.large,reserved_3y,no_upfront,0.062637,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:04.469791 +AWS,ap-northeast-1,m7i.large,reserved_3y,partial_upfront,0.062637,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:54.278995 +AWS,ap-northeast-1,m7i.large,spot,NA,0.05501,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269402 +AWS,ap-northeast-1,m7i.metal-24xl,on_demand,NA,6.2496,USD,AWS Pricing API,2025-11-30T09:01:31.006545 +AWS,ap-northeast-1,m7i.metal-24xl,reserved_1y,all_upfront,3.24688,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:00.874166 +AWS,ap-northeast-1,m7i.metal-24xl,reserved_1y,no_upfront,3.24688,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:43.661999 +AWS,ap-northeast-1,m7i.metal-24xl,reserved_1y,partial_upfront,3.24688,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:26.585356 +AWS,ap-northeast-1,m7i.metal-24xl,reserved_3y,all_upfront,3.24688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:01.282595 +AWS,ap-northeast-1,m7i.metal-24xl,reserved_3y,no_upfront,3.24688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:47.506646 +AWS,ap-northeast-1,m7i.metal-24xl,reserved_3y,partial_upfront,3.24688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:37.742340 +AWS,ap-northeast-1,m7i.metal-24xl,spot,NA,2.046695,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268730 +AWS,ap-northeast-1,m7i.metal-48xl,on_demand,NA,12.4992,USD,AWS Pricing API,2025-11-30T09:02:12.390459 +AWS,ap-northeast-1,m7i.metal-48xl,reserved_1y,all_upfront,9.016489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:41.791868 +AWS,ap-northeast-1,m7i.metal-48xl,reserved_1y,no_upfront,9.016489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:25.087326 +AWS,ap-northeast-1,m7i.metal-48xl,reserved_1y,partial_upfront,9.016489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:07.418589 +AWS,ap-northeast-1,m7i.metal-48xl,reserved_3y,all_upfront,6.01101,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:41.374652 +AWS,ap-northeast-1,m7i.metal-48xl,reserved_3y,no_upfront,6.01101,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:29.150878 +AWS,ap-northeast-1,m7i.metal-48xl,reserved_3y,partial_upfront,6.01101,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:18.368354 +AWS,ap-northeast-1,m7i.metal-48xl,spot,NA,4.044882,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270425 +AWS,ap-northeast-1,m7i.xlarge,on_demand,NA,0.2604,USD,AWS Pricing API,2025-11-30T09:02:34.534298 +AWS,ap-northeast-1,m7i.xlarge,reserved_1y,all_upfront,0.17254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:03.809287 +AWS,ap-northeast-1,m7i.xlarge,reserved_1y,no_upfront,0.17254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:47.125609 +AWS,ap-northeast-1,m7i.xlarge,reserved_1y,partial_upfront,0.17254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:29.459604 +AWS,ap-northeast-1,m7i.xlarge,reserved_3y,all_upfront,0.17254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:03.063115 +AWS,ap-northeast-1,m7i.xlarge,reserved_3y,no_upfront,0.17254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:51.549439 +AWS,ap-northeast-1,m7i.xlarge,reserved_3y,partial_upfront,0.17254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:40.163149 +AWS,ap-northeast-1,m7i.xlarge,spot,NA,0.108154,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271342 +AWS,ap-northeast-1,m8g.12xlarge,on_demand,NA,2.78256,USD,AWS Pricing API,2025-11-30T09:02:18.541595 +AWS,ap-northeast-1,m8g.12xlarge,reserved_1y,all_upfront,1.720662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:47.886216 +AWS,ap-northeast-1,m8g.12xlarge,reserved_1y,no_upfront,1.720662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:31.217542 +AWS,ap-northeast-1,m8g.12xlarge,reserved_1y,partial_upfront,1.720662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:13.483524 +AWS,ap-northeast-1,m8g.12xlarge,reserved_3y,all_upfront,0.573554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:47.376028 +AWS,ap-northeast-1,m8g.12xlarge,reserved_3y,no_upfront,0.573554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:35.382802 +AWS,ap-northeast-1,m8g.12xlarge,reserved_3y,partial_upfront,0.573554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:24.426415 +AWS,ap-northeast-1,m8g.12xlarge,spot,NA,0.94843,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270669 +AWS,ap-northeast-1,m8g.16xlarge,on_demand,NA,3.71008,USD,AWS Pricing API,2025-11-30T09:01:31.425101 +AWS,ap-northeast-1,m8g.16xlarge,reserved_1y,all_upfront,1.92731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:01.281412 +AWS,ap-northeast-1,m8g.16xlarge,reserved_1y,no_upfront,1.92731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:44.119554 +AWS,ap-northeast-1,m8g.16xlarge,reserved_1y,partial_upfront,1.92731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:26.991345 +AWS,ap-northeast-1,m8g.16xlarge,reserved_3y,all_upfront,1.92731,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:01.682998 +AWS,ap-northeast-1,m8g.16xlarge,reserved_3y,no_upfront,1.92731,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:47.914005 +AWS,ap-northeast-1,m8g.16xlarge,reserved_3y,partial_upfront,1.92731,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:38.140605 +AWS,ap-northeast-1,m8g.16xlarge,spot,NA,1.35335,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268779 +AWS,ap-northeast-1,m8g.24xlarge,on_demand,NA,5.56512,USD,AWS Pricing API,2025-11-30T09:02:39.847689 +AWS,ap-northeast-1,m8g.24xlarge,reserved_1y,all_upfront,3.441324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:09.077943 +AWS,ap-northeast-1,m8g.24xlarge,reserved_1y,no_upfront,3.441324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:52.437864 +AWS,ap-northeast-1,m8g.24xlarge,reserved_1y,partial_upfront,3.441324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:34.688585 +AWS,ap-northeast-1,m8g.24xlarge,reserved_3y,all_upfront,1.147108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:08.248495 +AWS,ap-northeast-1,m8g.24xlarge,reserved_3y,no_upfront,1.147108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:56.911755 +AWS,ap-northeast-1,m8g.24xlarge,reserved_3y,partial_upfront,1.147108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:45.396755 +AWS,ap-northeast-1,m8g.24xlarge,spot,NA,1.856894,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272374 +AWS,ap-northeast-1,m8g.2xlarge,on_demand,NA,0.46376,USD,AWS Pricing API,2025-11-30T09:02:31.417360 +AWS,ap-northeast-1,m8g.2xlarge,reserved_1y,all_upfront,0.446119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:00.657883 +AWS,ap-northeast-1,m8g.2xlarge,reserved_1y,no_upfront,0.446119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:44.000133 +AWS,ap-northeast-1,m8g.2xlarge,reserved_1y,partial_upfront,0.446119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:26.378930 +AWS,ap-northeast-1,m8g.2xlarge,reserved_3y,all_upfront,0.22306,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:59.944559 +AWS,ap-northeast-1,m8g.2xlarge,reserved_3y,no_upfront,0.22306,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:48.353781 +AWS,ap-northeast-1,m8g.2xlarge,reserved_3y,partial_upfront,0.22306,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:37.070382 +AWS,ap-northeast-1,m8g.2xlarge,spot,NA,0.175218,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271195 +AWS,ap-northeast-1,m8g.48xlarge,on_demand,NA,11.13024,USD,AWS Pricing API,2025-11-30T09:02:04.253470 +AWS,ap-northeast-1,m8g.48xlarge,reserved_1y,all_upfront,7.023234,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:33.822723 +AWS,ap-northeast-1,m8g.48xlarge,reserved_1y,no_upfront,7.023234,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:16.987528 +AWS,ap-northeast-1,m8g.48xlarge,reserved_1y,partial_upfront,7.023234,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:59.413309 +AWS,ap-northeast-1,m8g.48xlarge,reserved_3y,all_upfront,4.682138,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:33.554422 +AWS,ap-northeast-1,m8g.48xlarge,reserved_3y,no_upfront,4.682138,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:20.995364 +AWS,ap-northeast-1,m8g.48xlarge,reserved_3y,partial_upfront,4.682138,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:10.410106 +AWS,ap-northeast-1,m8g.48xlarge,spot,NA,3.780736,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270074 +AWS,ap-northeast-1,m8g.4xlarge,on_demand,NA,0.92752,USD,AWS Pricing API,2025-11-30T09:02:21.275128 +AWS,ap-northeast-1,m8g.4xlarge,reserved_1y,all_upfront,0.777783,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:50.599327 +AWS,ap-northeast-1,m8g.4xlarge,reserved_1y,no_upfront,0.777783,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:33.933439 +AWS,ap-northeast-1,m8g.4xlarge,reserved_1y,partial_upfront,0.777783,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:16.221626 +AWS,ap-northeast-1,m8g.4xlarge,reserved_3y,all_upfront,0.388894,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:50.041787 +AWS,ap-northeast-1,m8g.4xlarge,reserved_3y,no_upfront,0.388894,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:38.128290 +AWS,ap-northeast-1,m8g.4xlarge,reserved_3y,partial_upfront,0.388894,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:27.115816 +AWS,ap-northeast-1,m8g.4xlarge,spot,NA,0.311044,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270790 +AWS,ap-northeast-1,m8g.8xlarge,on_demand,NA,1.85504,USD,AWS Pricing API,2025-11-30T09:01:52.537974 +AWS,ap-northeast-1,m8g.8xlarge,reserved_1y,all_upfront,1.22906,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:22.342667 +AWS,ap-northeast-1,m8g.8xlarge,reserved_1y,no_upfront,1.22906,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:05.341108 +AWS,ap-northeast-1,m8g.8xlarge,reserved_1y,partial_upfront,1.22906,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:47.938456 +AWS,ap-northeast-1,m8g.8xlarge,reserved_3y,all_upfront,1.22906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:22.230503 +AWS,ap-northeast-1,m8g.8xlarge,reserved_3y,no_upfront,1.22906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:09.300181 +AWS,ap-northeast-1,m8g.8xlarge,reserved_3y,partial_upfront,1.22906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:58.956429 +AWS,ap-northeast-1,m8g.8xlarge,spot,NA,0.668503,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269552 +AWS,ap-northeast-1,m8g.large,on_demand,NA,0.11594,USD,AWS Pricing API,2025-11-30T09:02:41.880441 +AWS,ap-northeast-1,m8g.large,reserved_1y,all_upfront,0.08782,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:11.111057 +AWS,ap-northeast-1,m8g.large,reserved_1y,no_upfront,0.08782,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:54.486715 +AWS,ap-northeast-1,m8g.large,reserved_1y,partial_upfront,0.08782,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:36.717599 +AWS,ap-northeast-1,m8g.large,reserved_3y,all_upfront,0.08782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:10.222117 +AWS,ap-northeast-1,m8g.large,reserved_3y,no_upfront,0.08782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:58.965034 +AWS,ap-northeast-1,m8g.large,reserved_3y,partial_upfront,0.08782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:47.407981 +AWS,ap-northeast-1,m8g.large,spot,NA,0.044658,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272386 +AWS,ap-northeast-1,m8g.medium,on_demand,NA,0.05797,USD,AWS Pricing API,2025-11-30T09:02:43.786362 +AWS,ap-northeast-1,m8g.medium,reserved_1y,all_upfront,0.035845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:13.005108 +AWS,ap-northeast-1,m8g.medium,reserved_1y,no_upfront,0.035845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:56.390526 +AWS,ap-northeast-1,m8g.medium,reserved_1y,partial_upfront,0.035845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:38.648286 +AWS,ap-northeast-1,m8g.medium,reserved_3y,all_upfront,0.011948,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:12.072015 +AWS,ap-northeast-1,m8g.medium,reserved_3y,no_upfront,0.011948,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:00.939671 +AWS,ap-northeast-1,m8g.medium,reserved_3y,partial_upfront,0.011948,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:49.280135 +AWS,ap-northeast-1,m8g.medium,spot,NA,0.019596,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272555 +AWS,ap-northeast-1,m8g.xlarge,on_demand,NA,0.23188,USD,AWS Pricing API,2025-11-30T09:02:01.884843 +AWS,ap-northeast-1,m8g.xlarge,reserved_1y,all_upfront,0.167316,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:31.516391 +AWS,ap-northeast-1,m8g.xlarge,reserved_1y,no_upfront,0.167316,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:14.648936 +AWS,ap-northeast-1,m8g.xlarge,reserved_1y,partial_upfront,0.167316,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:57.091412 +AWS,ap-northeast-1,m8g.xlarge,reserved_3y,all_upfront,0.111532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:31.297172 +AWS,ap-northeast-1,m8g.xlarge,reserved_3y,no_upfront,0.111532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:18.654956 +AWS,ap-northeast-1,m8g.xlarge,reserved_3y,partial_upfront,0.111532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:08.127919 +AWS,ap-northeast-1,m8g.xlarge,spot,NA,0.096231,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269934 +AWS,ap-northeast-1,m8gd.12xlarge,on_demand,NA,3.576,USD,AWS Pricing API,2025-11-30T09:02:42.421964 +AWS,ap-northeast-1,m8gd.12xlarge,spot,NA,1.281772,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272494 +AWS,ap-northeast-1,m8gd.16xlarge,on_demand,NA,4.768,USD,AWS Pricing API,2025-11-30T09:02:35.080728 +AWS,ap-northeast-1,m8gd.16xlarge,spot,NA,1.755122,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271305 +AWS,ap-northeast-1,m8gd.24xlarge,on_demand,NA,7.152,USD,AWS Pricing API,2025-11-30T09:02:00.341983 +AWS,ap-northeast-1,m8gd.24xlarge,spot,NA,2.346469,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269876 +AWS,ap-northeast-1,m8gd.2xlarge,on_demand,NA,0.596,USD,AWS Pricing API,2025-11-30T09:02:41.609554 +AWS,ap-northeast-1,m8gd.2xlarge,spot,NA,0.261873,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272398 +AWS,ap-northeast-1,m8gd.48xlarge,on_demand,NA,14.304,USD,AWS Pricing API,2025-11-30T09:02:37.521111 +AWS,ap-northeast-1,m8gd.48xlarge,spot,NA,4.515258,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272219 +AWS,ap-northeast-1,m8gd.4xlarge,on_demand,NA,1.192,USD,AWS Pricing API,2025-11-30T09:02:07.841586 +AWS,ap-northeast-1,m8gd.4xlarge,spot,NA,0.455627,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270238 +AWS,ap-northeast-1,m8gd.8xlarge,on_demand,NA,2.384,USD,AWS Pricing API,2025-11-30T09:01:32.104922 +AWS,ap-northeast-1,m8gd.8xlarge,spot,NA,0.946953,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268827 +AWS,ap-northeast-1,m8gd.large,on_demand,NA,0.149,USD,AWS Pricing API,2025-11-30T09:02:17.175691 +AWS,ap-northeast-1,m8gd.large,spot,NA,0.050997,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270639 +AWS,ap-northeast-1,m8gd.xlarge,on_demand,NA,0.298,USD,AWS Pricing API,2025-11-30T09:02:08.522109 +AWS,ap-northeast-1,m8gd.xlarge,spot,NA,0.124542,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270268 +AWS,ap-northeast-1,p2.16xlarge,on_demand,NA,24.672,USD,AWS Pricing API,2025-11-30T09:01:38.120510 +AWS,ap-northeast-1,p2.8xlarge,on_demand,NA,12.336,USD,AWS Pricing API,2025-11-30T09:02:37.385285 +AWS,ap-northeast-1,p2.xlarge,on_demand,NA,1.542,USD,AWS Pricing API,2025-11-30T09:01:41.654653 +AWS,ap-northeast-1,p3.16xlarge,on_demand,NA,33.552,USD,AWS Pricing API,2025-11-30T09:01:56.900766 +AWS,ap-northeast-1,p3.16xlarge,spot,NA,13.712581,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269723 +AWS,ap-northeast-1,p3.2xlarge,on_demand,NA,4.194,USD,AWS Pricing API,2025-11-30T09:02:28.001930 +AWS,ap-northeast-1,p3.2xlarge,spot,NA,1.521577,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271065 +AWS,ap-northeast-1,p3.8xlarge,on_demand,NA,16.776,USD,AWS Pricing API,2025-11-30T09:01:37.712616 +AWS,ap-northeast-1,p3.8xlarge,spot,NA,5.216856,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269057 +AWS,ap-northeast-1,p3dn.24xlarge,on_demand,NA,42.783,USD,AWS Pricing API,2025-11-30T09:02:28.682838 +AWS,ap-northeast-1,p3dn.24xlarge,reserved_1y,all_upfront,25.738178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:57.919467 +AWS,ap-northeast-1,p3dn.24xlarge,reserved_1y,no_upfront,25.738178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:41.299602 +AWS,ap-northeast-1,p3dn.24xlarge,reserved_1y,partial_upfront,25.738178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:23.700666 +AWS,ap-northeast-1,p3dn.24xlarge,reserved_3y,all_upfront,17.158726,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:57.293666 +AWS,ap-northeast-1,p3dn.24xlarge,reserved_3y,no_upfront,17.158726,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:45.581256 +AWS,ap-northeast-1,p3dn.24xlarge,reserved_3y,partial_upfront,17.158726,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:34.365876 +AWS,ap-northeast-1,p3dn.24xlarge,spot,NA,13.852376,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271139 +AWS,ap-northeast-1,p4d.24xlarge,on_demand,NA,30.09784,USD,AWS Pricing API,2025-11-30T09:01:37.847894 +AWS,ap-northeast-1,p4d.24xlarge,reserved_1y,all_upfront,68.772032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:07.733330 +AWS,ap-northeast-1,p4d.24xlarge,reserved_1y,no_upfront,68.772032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:50.522401 +AWS,ap-northeast-1,p4d.24xlarge,reserved_1y,partial_upfront,68.772032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:33.343171 +AWS,ap-northeast-1,p4d.24xlarge,reserved_3y,all_upfront,22.924011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:07.937958 +AWS,ap-northeast-1,p4d.24xlarge,reserved_3y,no_upfront,22.924011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:54.378601 +AWS,ap-northeast-1,p4d.24xlarge,reserved_3y,partial_upfront,22.924011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:44.458340 +AWS,ap-northeast-1,p4d.24xlarge,spot,NA,14.277843,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269021 +AWS,ap-northeast-1,p4de.24xlarge,on_demand,NA,37.6223,USD,AWS Pricing API,2025-11-30T09:02:01.608796 +AWS,ap-northeast-1,p4de.24xlarge,reserved_1y,all_upfront,29.369509,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:31.246112 +AWS,ap-northeast-1,p4de.24xlarge,reserved_1y,no_upfront,29.369509,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:14.369682 +AWS,ap-northeast-1,p4de.24xlarge,reserved_1y,partial_upfront,29.369509,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:56.813535 +AWS,ap-northeast-1,p4de.24xlarge,reserved_3y,all_upfront,29.369509,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:31.034956 +AWS,ap-northeast-1,p4de.24xlarge,reserved_3y,no_upfront,29.369509,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:18.380827 +AWS,ap-northeast-1,p4de.24xlarge,reserved_3y,partial_upfront,29.369509,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:07.853270 +AWS,ap-northeast-1,p4de.24xlarge,spot,NA,19.788251,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269986 +AWS,ap-northeast-1,p5.48xlarge,on_demand,NA,68.8,USD,AWS Pricing API,2025-11-30T09:02:27.707060 +AWS,ap-northeast-1,p5.48xlarge,reserved_1y,all_upfront,54.18,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:56.974010 +AWS,ap-northeast-1,p5.48xlarge,reserved_1y,no_upfront,54.18,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:40.345375 +AWS,ap-northeast-1,p5.48xlarge,reserved_1y,partial_upfront,54.18,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:22.746547 +AWS,ap-northeast-1,p5.48xlarge,reserved_3y,all_upfront,54.18,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:56.371166 +AWS,ap-northeast-1,p5.48xlarge,reserved_3y,no_upfront,54.18,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:44.620660 +AWS,ap-northeast-1,p5.48xlarge,reserved_3y,partial_upfront,54.18,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:33.432714 +AWS,ap-northeast-1,p5.48xlarge,spot,NA,26.579634,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271047 +AWS,ap-northeast-1,r4.16xlarge,on_demand,NA,5.12,USD,AWS Pricing API,2025-11-30T09:02:30.455255 +AWS,ap-northeast-1,r4.16xlarge,reserved_1y,all_upfront,3.071959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:59.688843 +AWS,ap-northeast-1,r4.16xlarge,reserved_1y,no_upfront,3.071959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:43.052450 +AWS,ap-northeast-1,r4.16xlarge,reserved_1y,partial_upfront,3.071959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:25.431214 +AWS,ap-northeast-1,r4.16xlarge,reserved_3y,all_upfront,2.047986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:59.015886 +AWS,ap-northeast-1,r4.16xlarge,reserved_3y,no_upfront,2.047986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:47.372482 +AWS,ap-northeast-1,r4.16xlarge,reserved_3y,partial_upfront,2.047986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:36.117078 +AWS,ap-northeast-1,r4.16xlarge,spot,NA,1.675097,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271170 +AWS,ap-northeast-1,r5.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T09:01:31.152256 +AWS,ap-northeast-1,r5.12xlarge,reserved_1y,all_upfront,2.144977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:01.010726 +AWS,ap-northeast-1,r5.12xlarge,reserved_1y,no_upfront,2.144977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:43.847337 +AWS,ap-northeast-1,r5.12xlarge,reserved_1y,partial_upfront,2.144977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:26.721318 +AWS,ap-northeast-1,r5.12xlarge,reserved_3y,all_upfront,0.714992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:01.416067 +AWS,ap-northeast-1,r5.12xlarge,reserved_3y,no_upfront,0.714992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:47.642957 +AWS,ap-northeast-1,r5.12xlarge,reserved_3y,partial_upfront,0.714992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:37.873821 +AWS,ap-northeast-1,r5.12xlarge,spot,NA,1.232067,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268791 +AWS,ap-northeast-1,r5.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T09:02:04.390423 +AWS,ap-northeast-1,r5.16xlarge,reserved_1y,all_upfront,3.356082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:33.955744 +AWS,ap-northeast-1,r5.16xlarge,reserved_1y,no_upfront,3.356082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:17.125083 +AWS,ap-northeast-1,r5.16xlarge,reserved_1y,partial_upfront,3.356082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:59.547994 +AWS,ap-northeast-1,r5.16xlarge,reserved_3y,all_upfront,2.237361,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:33.685305 +AWS,ap-northeast-1,r5.16xlarge,reserved_3y,no_upfront,2.237361,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:21.133796 +AWS,ap-northeast-1,r5.16xlarge,reserved_3y,partial_upfront,2.237361,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:10.545634 +AWS,ap-northeast-1,r5.16xlarge,spot,NA,1.570139,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270098 +AWS,ap-northeast-1,r5.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T09:01:46.559982 +AWS,ap-northeast-1,r5.24xlarge,reserved_1y,all_upfront,5.836626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:16.400429 +AWS,ap-northeast-1,r5.24xlarge,reserved_1y,no_upfront,5.836626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:59.279473 +AWS,ap-northeast-1,r5.24xlarge,reserved_1y,partial_upfront,5.836626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:42.010835 +AWS,ap-northeast-1,r5.24xlarge,reserved_3y,all_upfront,2.918209,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:16.426907 +AWS,ap-northeast-1,r5.24xlarge,reserved_3y,no_upfront,2.918209,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:03.236722 +AWS,ap-northeast-1,r5.24xlarge,reserved_3y,partial_upfront,2.918209,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:53.076901 +AWS,ap-northeast-1,r5.24xlarge,spot,NA,2.52289,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269385 +AWS,ap-northeast-1,r5.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T12:52:29.855742 +AWS,ap-northeast-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.855889 +AWS,ap-northeast-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.44,USD,AWS Pricing API,2025-11-30T12:52:29.855863 +AWS,ap-northeast-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.21,USD,AWS Pricing API,2025-11-30T12:52:29.855876 +AWS,ap-northeast-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.855827 +AWS,ap-northeast-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.317,USD,AWS Pricing API,2025-11-30T12:52:29.855803 +AWS,ap-northeast-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.122,USD,AWS Pricing API,2025-11-30T12:52:29.855902 +AWS,ap-northeast-1,r5.2xlarge,spot,NA,0.20348,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:35.794754 +AWS,ap-northeast-1,r5.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T09:02:39.576401 +AWS,ap-northeast-1,r5.4xlarge,reserved_1y,all_upfront,0.72984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:08.810958 +AWS,ap-northeast-1,r5.4xlarge,reserved_1y,no_upfront,0.72984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:52.167389 +AWS,ap-northeast-1,r5.4xlarge,reserved_1y,partial_upfront,0.72984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:34.421155 +AWS,ap-northeast-1,r5.4xlarge,reserved_3y,all_upfront,0.486613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:07.985310 +AWS,ap-northeast-1,r5.4xlarge,reserved_3y,no_upfront,0.486613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:56.635086 +AWS,ap-northeast-1,r5.4xlarge,reserved_3y,partial_upfront,0.486613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:45.124146 +AWS,ap-northeast-1,r5.4xlarge,spot,NA,0.447313,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272380 +AWS,ap-northeast-1,r5.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T09:02:22.365398 +AWS,ap-northeast-1,r5.8xlarge,reserved_1y,all_upfront,1.762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:51.677404 +AWS,ap-northeast-1,r5.8xlarge,reserved_1y,no_upfront,1.762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:35.018901 +AWS,ap-northeast-1,r5.8xlarge,reserved_1y,partial_upfront,1.762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:17.385190 +AWS,ap-northeast-1,r5.8xlarge,reserved_3y,all_upfront,1.762,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:51.106539 +AWS,ap-northeast-1,r5.8xlarge,reserved_3y,no_upfront,1.762,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:39.237729 +AWS,ap-northeast-1,r5.8xlarge,reserved_3y,partial_upfront,1.762,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:28.191066 +AWS,ap-northeast-1,r5.8xlarge,spot,NA,0.87553,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270834 +AWS,ap-northeast-1,r5.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T09:01:58.141705 +AWS,ap-northeast-1,r5.large,reserved_1y,all_upfront,0.091548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:27.888150 +AWS,ap-northeast-1,r5.large,reserved_1y,no_upfront,0.091548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:10.926966 +AWS,ap-northeast-1,r5.large,reserved_1y,partial_upfront,0.091548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:53.454824 +AWS,ap-northeast-1,r5.large,reserved_3y,all_upfront,0.061183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:27.747267 +AWS,ap-northeast-1,r5.large,reserved_3y,no_upfront,0.061183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:14.935424 +AWS,ap-northeast-1,r5.large,reserved_3y,partial_upfront,0.061183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:04.486246 +AWS,ap-northeast-1,r5.large,spot,NA,0.056683,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269777 +AWS,ap-northeast-1,r5.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T09:01:35.373807 +AWS,ap-northeast-1,r5.xlarge,reserved_1y,all_upfront,0.342922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:05.224215 +AWS,ap-northeast-1,r5.xlarge,reserved_1y,no_upfront,0.342922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:48.074918 +AWS,ap-northeast-1,r5.xlarge,reserved_1y,partial_upfront,0.342922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:30.891927 +AWS,ap-northeast-1,r5.xlarge,reserved_3y,all_upfront,0.114307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:05.547015 +AWS,ap-northeast-1,r5.xlarge,reserved_3y,no_upfront,0.114307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:51.902526 +AWS,ap-northeast-1,r5.xlarge,reserved_3y,partial_upfront,0.114307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:42.039245 +AWS,ap-northeast-1,r5.xlarge,spot,NA,0.119951,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268967 +AWS,ap-northeast-1,r5a.12xlarge,on_demand,NA,3.288,USD,AWS Pricing API,2025-11-30T09:02:30.594679 +AWS,ap-northeast-1,r5a.12xlarge,reserved_1y,all_upfront,2.379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:59.825421 +AWS,ap-northeast-1,r5a.12xlarge,reserved_1y,no_upfront,2.379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:43.187107 +AWS,ap-northeast-1,r5a.12xlarge,reserved_1y,partial_upfront,2.379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:25.566581 +AWS,ap-northeast-1,r5a.12xlarge,reserved_3y,all_upfront,2.379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:59.146738 +AWS,ap-northeast-1,r5a.12xlarge,reserved_3y,no_upfront,2.379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:47.510713 +AWS,ap-northeast-1,r5a.12xlarge,reserved_3y,partial_upfront,2.379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:36.252335 +AWS,ap-northeast-1,r5a.12xlarge,spot,NA,1.393531,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271158 +AWS,ap-northeast-1,r5a.16xlarge,on_demand,NA,4.384,USD,AWS Pricing API,2025-11-30T09:02:38.756805 +AWS,ap-northeast-1,r5a.16xlarge,reserved_1y,all_upfront,3.172,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:08.001279 +AWS,ap-northeast-1,r5a.16xlarge,reserved_1y,no_upfront,3.172,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:51.348662 +AWS,ap-northeast-1,r5a.16xlarge,reserved_1y,partial_upfront,3.172,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:33.615596 +AWS,ap-northeast-1,r5a.16xlarge,reserved_3y,all_upfront,3.172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:07.193583 +AWS,ap-northeast-1,r5a.16xlarge,reserved_3y,no_upfront,3.172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:55.809498 +AWS,ap-northeast-1,r5a.16xlarge,reserved_3y,partial_upfront,3.172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:44.317412 +AWS,ap-northeast-1,r5a.16xlarge,spot,NA,1.729537,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272286 +AWS,ap-northeast-1,r5a.24xlarge,on_demand,NA,6.576,USD,AWS Pricing API,2025-11-30T09:02:32.624995 +AWS,ap-northeast-1,r5a.24xlarge,reserved_1y,all_upfront,3.860274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:01.892282 +AWS,ap-northeast-1,r5a.24xlarge,reserved_1y,no_upfront,3.860274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:45.214806 +AWS,ap-northeast-1,r5a.24xlarge,reserved_1y,partial_upfront,3.860274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:27.575056 +AWS,ap-northeast-1,r5a.24xlarge,reserved_3y,all_upfront,1.286758,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:01.154016 +AWS,ap-northeast-1,r5a.24xlarge,reserved_3y,no_upfront,1.286758,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:49.599808 +AWS,ap-northeast-1,r5a.24xlarge,reserved_3y,partial_upfront,1.286758,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:38.277009 +AWS,ap-northeast-1,r5a.24xlarge,spot,NA,2.263794,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271219 +AWS,ap-northeast-1,r5a.2xlarge,on_demand,NA,0.548,USD,AWS Pricing API,2025-11-30T09:02:43.378693 +AWS,ap-northeast-1,r5a.2xlarge,reserved_1y,all_upfront,0.321689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:12.603027 +AWS,ap-northeast-1,r5a.2xlarge,reserved_1y,no_upfront,0.321689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:55.985767 +AWS,ap-northeast-1,r5a.2xlarge,reserved_1y,partial_upfront,0.321689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:38.247440 +AWS,ap-northeast-1,r5a.2xlarge,reserved_3y,all_upfront,0.10723,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:11.678381 +AWS,ap-northeast-1,r5a.2xlarge,reserved_3y,no_upfront,0.10723,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:00.481025 +AWS,ap-northeast-1,r5a.2xlarge,reserved_3y,partial_upfront,0.10723,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:48.880587 +AWS,ap-northeast-1,r5a.2xlarge,spot,NA,0.233717,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272530 +AWS,ap-northeast-1,r5a.4xlarge,on_demand,NA,1.096,USD,AWS Pricing API,2025-11-30T09:02:23.353368 +AWS,ap-northeast-1,r5a.4xlarge,reserved_1y,all_upfront,0.473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:52.620732 +AWS,ap-northeast-1,r5a.4xlarge,reserved_1y,no_upfront,0.473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:35.985346 +AWS,ap-northeast-1,r5a.4xlarge,reserved_1y,partial_upfront,0.473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:18.333533 +AWS,ap-northeast-1,r5a.4xlarge,reserved_3y,all_upfront,0.473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:52.044005 +AWS,ap-northeast-1,r5a.4xlarge,reserved_3y,no_upfront,0.473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:40.209499 +AWS,ap-northeast-1,r5a.4xlarge,reserved_3y,partial_upfront,0.473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:29.130896 +AWS,ap-northeast-1,r5a.4xlarge,spot,NA,0.426372,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270883 +AWS,ap-northeast-1,r5a.8xlarge,on_demand,NA,2.192,USD,AWS Pricing API,2025-11-30T09:02:05.510960 +AWS,ap-northeast-1,r5a.8xlarge,reserved_1y,all_upfront,2.472603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:35.031936 +AWS,ap-northeast-1,r5a.8xlarge,reserved_1y,no_upfront,2.472603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:18.244736 +AWS,ap-northeast-1,r5a.8xlarge,reserved_1y,partial_upfront,2.472603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:00.628064 +AWS,ap-northeast-1,r5a.8xlarge,reserved_3y,all_upfront,0.824201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:34.747288 +AWS,ap-northeast-1,r5a.8xlarge,reserved_3y,no_upfront,0.824201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:22.256737 +AWS,ap-northeast-1,r5a.8xlarge,reserved_3y,partial_upfront,0.824201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:11.623908 +AWS,ap-northeast-1,r5a.8xlarge,spot,NA,0.953271,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270165 +AWS,ap-northeast-1,r5a.large,on_demand,NA,0.137,USD,AWS Pricing API,2025-11-30T09:02:12.099450 +AWS,ap-northeast-1,r5a.large,reserved_1y,all_upfront,0.092466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:41.523295 +AWS,ap-northeast-1,r5a.large,reserved_1y,no_upfront,0.092466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:24.814187 +AWS,ap-northeast-1,r5a.large,reserved_1y,partial_upfront,0.092466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:07.150450 +AWS,ap-northeast-1,r5a.large,reserved_3y,all_upfront,0.030822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:41.108593 +AWS,ap-northeast-1,r5a.large,reserved_3y,no_upfront,0.030822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:28.866908 +AWS,ap-northeast-1,r5a.large,reserved_3y,partial_upfront,0.030822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:18.092032 +AWS,ap-northeast-1,r5a.large,spot,NA,0.055834,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270370 +AWS,ap-northeast-1,r5a.xlarge,on_demand,NA,0.274,USD,AWS Pricing API,2025-11-30T09:02:22.797592 +AWS,ap-northeast-1,r5a.xlarge,reserved_1y,all_upfront,0.219384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:52.084422 +AWS,ap-northeast-1,r5a.xlarge,reserved_1y,no_upfront,0.219384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:35.434314 +AWS,ap-northeast-1,r5a.xlarge,reserved_1y,partial_upfront,0.219384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:17.799911 +AWS,ap-northeast-1,r5a.xlarge,reserved_3y,all_upfront,0.109795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:51.507441 +AWS,ap-northeast-1,r5a.xlarge,reserved_3y,no_upfront,0.109795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:39.650199 +AWS,ap-northeast-1,r5a.xlarge,reserved_3y,partial_upfront,0.109795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:28.593446 +AWS,ap-northeast-1,r5a.xlarge,spot,NA,0.10989,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270870 +AWS,ap-northeast-1,r5d.12xlarge,on_demand,NA,4.176,USD,AWS Pricing API,2025-11-30T09:02:36.169846 +AWS,ap-northeast-1,r5d.12xlarge,reserved_1y,all_upfront,3.340594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:05.428106 +AWS,ap-northeast-1,r5d.12xlarge,reserved_1y,no_upfront,3.340594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:48.753320 +AWS,ap-northeast-1,r5d.12xlarge,reserved_1y,partial_upfront,3.340594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:31.069402 +AWS,ap-northeast-1,r5d.12xlarge,reserved_3y,all_upfront,1.670198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:04.671599 +AWS,ap-northeast-1,r5d.12xlarge,reserved_3y,no_upfront,1.670198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:53.198969 +AWS,ap-northeast-1,r5d.12xlarge,reserved_3y,partial_upfront,1.670198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:41.770812 +AWS,ap-northeast-1,r5d.12xlarge,spot,NA,1.40022,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271392 +AWS,ap-northeast-1,r5d.16xlarge,on_demand,NA,5.568,USD,AWS Pricing API,2025-11-30T09:02:00.485432 +AWS,ap-northeast-1,r5d.16xlarge,reserved_1y,all_upfront,3.895603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:30.177436 +AWS,ap-northeast-1,r5d.16xlarge,reserved_1y,no_upfront,3.895603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:13.262808 +AWS,ap-northeast-1,r5d.16xlarge,reserved_1y,partial_upfront,3.895603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:55.738951 +AWS,ap-northeast-1,r5d.16xlarge,reserved_3y,all_upfront,2.597201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:29.986503 +AWS,ap-northeast-1,r5d.16xlarge,reserved_3y,no_upfront,2.597201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:17.271984 +AWS,ap-northeast-1,r5d.16xlarge,reserved_3y,partial_upfront,2.597201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:06.776991 +AWS,ap-northeast-1,r5d.16xlarge,spot,NA,1.818482,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269906 +AWS,ap-northeast-1,r5d.24xlarge,on_demand,NA,8.352,USD,AWS Pricing API,2025-11-30T09:02:30.738847 +AWS,ap-northeast-1,r5d.24xlarge,reserved_1y,all_upfront,4.910959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:59.958905 +AWS,ap-northeast-1,r5d.24xlarge,reserved_1y,no_upfront,4.910959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:43.325082 +AWS,ap-northeast-1,r5d.24xlarge,reserved_1y,partial_upfront,4.910959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:25.700031 +AWS,ap-northeast-1,r5d.24xlarge,reserved_3y,all_upfront,1.636986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:59.278173 +AWS,ap-northeast-1,r5d.24xlarge,reserved_3y,no_upfront,1.636986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:47.649304 +AWS,ap-northeast-1,r5d.24xlarge,reserved_3y,partial_upfront,1.636986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:36.385880 +AWS,ap-northeast-1,r5d.24xlarge,spot,NA,2.706014,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271152 +AWS,ap-northeast-1,r5d.2xlarge,on_demand,NA,0.696,USD,AWS Pricing API,2025-11-30T09:02:29.367633 +AWS,ap-northeast-1,r5d.2xlarge,reserved_1y,all_upfront,0.486493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:58.610100 +AWS,ap-northeast-1,r5d.2xlarge,reserved_1y,no_upfront,0.486493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:41.974720 +AWS,ap-northeast-1,r5d.2xlarge,reserved_1y,partial_upfront,0.486493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:24.365882 +AWS,ap-northeast-1,r5d.2xlarge,reserved_3y,all_upfront,0.324164,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:57.963837 +AWS,ap-northeast-1,r5d.2xlarge,reserved_3y,no_upfront,0.324164,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:46.281407 +AWS,ap-northeast-1,r5d.2xlarge,reserved_3y,partial_upfront,0.324164,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:35.053605 +AWS,ap-northeast-1,r5d.2xlarge,spot,NA,0.262332,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271127 +AWS,ap-northeast-1,r5d.4xlarge,on_demand,NA,1.392,USD,AWS Pricing API,2025-11-30T09:01:59.906081 +AWS,ap-northeast-1,r5d.4xlarge,reserved_1y,all_upfront,1.99863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:29.641058 +AWS,ap-northeast-1,r5d.4xlarge,reserved_1y,no_upfront,1.99863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:12.713448 +AWS,ap-northeast-1,r5d.4xlarge,reserved_1y,partial_upfront,1.99863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:55.203102 +AWS,ap-northeast-1,r5d.4xlarge,reserved_3y,all_upfront,0.66621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:29.461491 +AWS,ap-northeast-1,r5d.4xlarge,reserved_3y,no_upfront,0.66621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:16.728443 +AWS,ap-northeast-1,r5d.4xlarge,reserved_3y,partial_upfront,0.66621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:06.239944 +AWS,ap-northeast-1,r5d.4xlarge,spot,NA,0.507513,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269923 +AWS,ap-northeast-1,r5d.8xlarge,on_demand,NA,2.784,USD,AWS Pricing API,2025-11-30T09:01:59.495906 +AWS,ap-northeast-1,r5d.8xlarge,reserved_1y,all_upfront,1.636986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:29.233463 +AWS,ap-northeast-1,r5d.8xlarge,reserved_1y,no_upfront,1.636986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:12.303565 +AWS,ap-northeast-1,r5d.8xlarge,reserved_1y,partial_upfront,1.636986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:54.800152 +AWS,ap-northeast-1,r5d.8xlarge,reserved_3y,all_upfront,0.545662,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:29.063185 +AWS,ap-northeast-1,r5d.8xlarge,reserved_3y,no_upfront,0.545662,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:16.314600 +AWS,ap-northeast-1,r5d.8xlarge,reserved_3y,partial_upfront,0.545662,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:05.838468 +AWS,ap-northeast-1,r5d.8xlarge,spot,NA,0.990064,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269822 +AWS,ap-northeast-1,r5d.large,on_demand,NA,0.174,USD,AWS Pricing API,2025-11-30T09:02:24.586794 +AWS,ap-northeast-1,r5d.large,reserved_1y,all_upfront,0.11,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:53.831934 +AWS,ap-northeast-1,r5d.large,reserved_1y,no_upfront,0.11,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:37.208258 +AWS,ap-northeast-1,r5d.large,reserved_1y,partial_upfront,0.11,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:19.547855 +AWS,ap-northeast-1,r5d.large,reserved_3y,all_upfront,0.11,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:53.324290 +AWS,ap-northeast-1,r5d.large,reserved_3y,no_upfront,0.11,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:41.445172 +AWS,ap-northeast-1,r5d.large,reserved_3y,partial_upfront,0.11,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:30.328597 +AWS,ap-northeast-1,r5d.large,spot,NA,0.06636,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270968 +AWS,ap-northeast-1,r5d.xlarge,on_demand,NA,0.348,USD,AWS Pricing API,2025-11-30T09:01:41.788287 +AWS,ap-northeast-1,r5d.xlarge,reserved_1y,all_upfront,0.20468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:11.675137 +AWS,ap-northeast-1,r5d.xlarge,reserved_1y,no_upfront,0.20468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:54.454002 +AWS,ap-northeast-1,r5d.xlarge,reserved_1y,partial_upfront,0.20468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:37.295252 +AWS,ap-northeast-1,r5d.xlarge,reserved_3y,all_upfront,0.068227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:11.788202 +AWS,ap-northeast-1,r5d.xlarge,reserved_3y,no_upfront,0.068227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:58.381785 +AWS,ap-northeast-1,r5d.xlarge,reserved_3y,partial_upfront,0.068227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:48.371113 +AWS,ap-northeast-1,r5d.xlarge,spot,NA,0.153682,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269231 +AWS,ap-northeast-1,r5dn.12xlarge,on_demand,NA,4.872,USD,AWS Pricing API,2025-11-30T09:01:44.637055 +AWS,ap-northeast-1,r5dn.12xlarge,reserved_1y,all_upfront,3.647,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:14.508378 +AWS,ap-northeast-1,r5dn.12xlarge,reserved_1y,no_upfront,3.647,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:57.368561 +AWS,ap-northeast-1,r5dn.12xlarge,reserved_1y,partial_upfront,3.647,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:40.119217 +AWS,ap-northeast-1,r5dn.12xlarge,reserved_3y,all_upfront,3.647,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:14.576551 +AWS,ap-northeast-1,r5dn.12xlarge,reserved_3y,no_upfront,3.647,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:01.283025 +AWS,ap-northeast-1,r5dn.12xlarge,reserved_3y,partial_upfront,3.647,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:51.179592 +AWS,ap-northeast-1,r5dn.12xlarge,spot,NA,1.668149,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269285 +AWS,ap-northeast-1,r5dn.16xlarge,on_demand,NA,6.496,USD,AWS Pricing API,2025-11-30T09:01:55.126377 +AWS,ap-northeast-1,r5dn.16xlarge,reserved_1y,all_upfront,2.729,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:24.914196 +AWS,ap-northeast-1,r5dn.16xlarge,reserved_1y,no_upfront,2.729,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:07.924542 +AWS,ap-northeast-1,r5dn.16xlarge,reserved_1y,partial_upfront,2.729,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:50.517274 +AWS,ap-northeast-1,r5dn.16xlarge,reserved_3y,all_upfront,2.729,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:24.802648 +AWS,ap-northeast-1,r5dn.16xlarge,reserved_3y,no_upfront,2.729,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:11.916322 +AWS,ap-northeast-1,r5dn.16xlarge,reserved_3y,partial_upfront,2.729,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:01.517118 +AWS,ap-northeast-1,r5dn.16xlarge,spot,NA,2.039963,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269676 +AWS,ap-northeast-1,r5dn.24xlarge,on_demand,NA,9.744,USD,AWS Pricing API,2025-11-30T09:02:06.883797 +AWS,ap-northeast-1,r5dn.24xlarge,reserved_1y,all_upfront,7.295,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:36.385313 +AWS,ap-northeast-1,r5dn.24xlarge,reserved_1y,no_upfront,7.295,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:19.632122 +AWS,ap-northeast-1,r5dn.24xlarge,reserved_1y,partial_upfront,7.295,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:01.980726 +AWS,ap-northeast-1,r5dn.24xlarge,reserved_3y,all_upfront,7.295,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:36.083750 +AWS,ap-northeast-1,r5dn.24xlarge,reserved_3y,no_upfront,7.295,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:23.633839 +AWS,ap-northeast-1,r5dn.24xlarge,reserved_3y,partial_upfront,7.295,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:12.965997 +AWS,ap-northeast-1,r5dn.24xlarge,spot,NA,3.137006,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270214 +AWS,ap-northeast-1,r5dn.2xlarge,on_demand,NA,0.812,USD,AWS Pricing API,2025-11-30T09:02:12.251903 +AWS,ap-northeast-1,r5dn.2xlarge,reserved_1y,all_upfront,0.578498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:41.656265 +AWS,ap-northeast-1,r5dn.2xlarge,reserved_1y,no_upfront,0.578498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:24.951545 +AWS,ap-northeast-1,r5dn.2xlarge,reserved_1y,partial_upfront,0.578498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:07.284031 +AWS,ap-northeast-1,r5dn.2xlarge,reserved_3y,all_upfront,0.385499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:41.240929 +AWS,ap-northeast-1,r5dn.2xlarge,reserved_3y,no_upfront,0.385499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:29.010768 +AWS,ap-northeast-1,r5dn.2xlarge,reserved_3y,partial_upfront,0.385499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:18.233038 +AWS,ap-northeast-1,r5dn.2xlarge,spot,NA,0.333265,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270449 +AWS,ap-northeast-1,r5dn.4xlarge,on_demand,NA,1.624,USD,AWS Pricing API,2025-11-30T09:01:36.084423 +AWS,ap-northeast-1,r5dn.4xlarge,reserved_1y,all_upfront,0.974215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:05.919036 +AWS,ap-northeast-1,r5dn.4xlarge,reserved_1y,no_upfront,0.974215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:48.759210 +AWS,ap-northeast-1,r5dn.4xlarge,reserved_1y,partial_upfront,0.974215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:31.565498 +AWS,ap-northeast-1,r5dn.4xlarge,reserved_3y,all_upfront,0.649405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:06.215294 +AWS,ap-northeast-1,r5dn.4xlarge,reserved_3y,no_upfront,0.649405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:52.588786 +AWS,ap-northeast-1,r5dn.4xlarge,reserved_3y,partial_upfront,0.649405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:42.709632 +AWS,ap-northeast-1,r5dn.4xlarge,spot,NA,0.59307,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268984 +AWS,ap-northeast-1,r5dn.8xlarge,on_demand,NA,3.248,USD,AWS Pricing API,2025-11-30T09:02:35.896923 +AWS,ap-northeast-1,r5dn.8xlarge,reserved_1y,all_upfront,1.909817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:05.159824 +AWS,ap-northeast-1,r5dn.8xlarge,reserved_1y,no_upfront,1.909817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:48.482324 +AWS,ap-northeast-1,r5dn.8xlarge,reserved_1y,partial_upfront,1.909817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:30.802603 +AWS,ap-northeast-1,r5dn.8xlarge,reserved_3y,all_upfront,0.636606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:04.398441 +AWS,ap-northeast-1,r5dn.8xlarge,reserved_3y,no_upfront,0.636606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:52.921813 +AWS,ap-northeast-1,r5dn.8xlarge,reserved_3y,partial_upfront,0.636606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:41.502637 +AWS,ap-northeast-1,r5dn.8xlarge,spot,NA,1.19803,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271398 +AWS,ap-northeast-1,r5dn.large,on_demand,NA,0.203,USD,AWS Pricing API,2025-11-30T09:01:45.738348 +AWS,ap-northeast-1,r5dn.large,reserved_1y,all_upfront,0.266781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:15.593704 +AWS,ap-northeast-1,r5dn.large,reserved_1y,no_upfront,0.266781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:58.466888 +AWS,ap-northeast-1,r5dn.large,reserved_1y,partial_upfront,0.266781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:41.204968 +AWS,ap-northeast-1,r5dn.large,reserved_3y,all_upfront,0.088927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:15.631839 +AWS,ap-northeast-1,r5dn.large,reserved_3y,no_upfront,0.088927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:02.407809 +AWS,ap-northeast-1,r5dn.large,reserved_3y,partial_upfront,0.088927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:52.264742 +AWS,ap-northeast-1,r5dn.large,spot,NA,0.069559,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269343 +AWS,ap-northeast-1,r5dn.metal,on_demand,NA,9.744,USD,AWS Pricing API,2025-11-30T09:01:33.744909 +AWS,ap-northeast-1,r5dn.metal,reserved_1y,all_upfront,6.947744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:03.594646 +AWS,ap-northeast-1,r5dn.metal,reserved_1y,no_upfront,6.947744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:46.432139 +AWS,ap-northeast-1,r5dn.metal,reserved_1y,partial_upfront,6.947744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:29.283437 +AWS,ap-northeast-1,r5dn.metal,reserved_3y,all_upfront,4.631915,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:03.944770 +AWS,ap-northeast-1,r5dn.metal,reserved_3y,no_upfront,4.631915,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:50.237819 +AWS,ap-northeast-1,r5dn.metal,reserved_3y,partial_upfront,4.631915,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:40.443018 +AWS,ap-northeast-1,r5dn.metal,spot,NA,3.155911,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268887 +AWS,ap-northeast-1,r5dn.xlarge,on_demand,NA,0.406,USD,AWS Pricing API,2025-11-30T09:01:57.179739 +AWS,ap-northeast-1,r5dn.xlarge,reserved_1y,all_upfront,0.171,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:26.950222 +AWS,ap-northeast-1,r5dn.xlarge,reserved_1y,no_upfront,0.171,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:09.972806 +AWS,ap-northeast-1,r5dn.xlarge,reserved_1y,partial_upfront,0.171,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:52.522720 +AWS,ap-northeast-1,r5dn.xlarge,reserved_3y,all_upfront,0.171,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:26.814250 +AWS,ap-northeast-1,r5dn.xlarge,reserved_3y,no_upfront,0.171,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:13.976484 +AWS,ap-northeast-1,r5dn.xlarge,reserved_3y,partial_upfront,0.171,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:03.553510 +AWS,ap-northeast-1,r5dn.xlarge,spot,NA,0.155218,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269783 +AWS,ap-northeast-1,r5n.12xlarge,on_demand,NA,4.344,USD,AWS Pricing API,2025-11-30T09:02:20.177325 +AWS,ap-northeast-1,r5n.12xlarge,reserved_1y,all_upfront,3.216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:49.516162 +AWS,ap-northeast-1,r5n.12xlarge,reserved_1y,no_upfront,3.216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:32.836910 +AWS,ap-northeast-1,r5n.12xlarge,reserved_1y,partial_upfront,3.216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:15.137944 +AWS,ap-northeast-1,r5n.12xlarge,reserved_3y,all_upfront,3.216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:48.974460 +AWS,ap-northeast-1,r5n.12xlarge,reserved_3y,no_upfront,3.216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:37.028394 +AWS,ap-northeast-1,r5n.12xlarge,reserved_3y,partial_upfront,3.216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:26.037621 +AWS,ap-northeast-1,r5n.12xlarge,spot,NA,1.552865,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270735 +AWS,ap-northeast-1,r5n.16xlarge,on_demand,NA,5.792,USD,AWS Pricing API,2025-11-30T09:02:35.489686 +AWS,ap-northeast-1,r5n.16xlarge,reserved_1y,all_upfront,6.223059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:04.752966 +AWS,ap-northeast-1,r5n.16xlarge,reserved_1y,no_upfront,6.223059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:48.069593 +AWS,ap-northeast-1,r5n.16xlarge,reserved_1y,partial_upfront,6.223059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:30.397828 +AWS,ap-northeast-1,r5n.16xlarge,reserved_3y,all_upfront,2.074353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:03.997460 +AWS,ap-northeast-1,r5n.16xlarge,reserved_3y,no_upfront,2.074353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:52.513170 +AWS,ap-northeast-1,r5n.16xlarge,reserved_3y,partial_upfront,2.074353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:41.103987 +AWS,ap-northeast-1,r5n.16xlarge,spot,NA,1.90793,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271386 +AWS,ap-northeast-1,r5n.24xlarge,on_demand,NA,8.688,USD,AWS Pricing API,2025-11-30T09:01:56.764432 +AWS,ap-northeast-1,r5n.24xlarge,reserved_1y,all_upfront,6.620183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:26.548709 +AWS,ap-northeast-1,r5n.24xlarge,reserved_1y,no_upfront,6.620183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:09.565382 +AWS,ap-northeast-1,r5n.24xlarge,reserved_1y,partial_upfront,6.620183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:52.121975 +AWS,ap-northeast-1,r5n.24xlarge,reserved_3y,all_upfront,3.310061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:26.420375 +AWS,ap-northeast-1,r5n.24xlarge,reserved_3y,no_upfront,3.310061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:13.565278 +AWS,ap-northeast-1,r5n.24xlarge,reserved_3y,partial_upfront,3.310061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:03.150524 +AWS,ap-northeast-1,r5n.24xlarge,spot,NA,2.791043,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269718 +AWS,ap-northeast-1,r5n.2xlarge,on_demand,NA,0.724,USD,AWS Pricing API,2025-11-30T09:01:37.578456 +AWS,ap-northeast-1,r5n.2xlarge,reserved_1y,all_upfront,0.536,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:07.466875 +AWS,ap-northeast-1,r5n.2xlarge,reserved_1y,no_upfront,0.536,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:50.253292 +AWS,ap-northeast-1,r5n.2xlarge,reserved_1y,partial_upfront,0.536,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:33.052400 +AWS,ap-northeast-1,r5n.2xlarge,reserved_3y,all_upfront,0.536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:07.662417 +AWS,ap-northeast-1,r5n.2xlarge,reserved_3y,no_upfront,0.536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:54.104655 +AWS,ap-northeast-1,r5n.2xlarge,reserved_3y,partial_upfront,0.536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:44.182667 +AWS,ap-northeast-1,r5n.2xlarge,spot,NA,0.319266,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269033 +AWS,ap-northeast-1,r5n.4xlarge,on_demand,NA,1.448,USD,AWS Pricing API,2025-11-30T09:02:33.976740 +AWS,ap-northeast-1,r5n.4xlarge,reserved_1y,all_upfront,0.85137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:03.266874 +AWS,ap-northeast-1,r5n.4xlarge,reserved_1y,no_upfront,0.85137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:46.577986 +AWS,ap-northeast-1,r5n.4xlarge,reserved_1y,partial_upfront,0.85137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:28.915258 +AWS,ap-northeast-1,r5n.4xlarge,reserved_3y,all_upfront,0.28379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:02.531926 +AWS,ap-northeast-1,r5n.4xlarge,reserved_3y,no_upfront,0.28379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:50.982425 +AWS,ap-northeast-1,r5n.4xlarge,reserved_3y,partial_upfront,0.28379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:39.628551 +AWS,ap-northeast-1,r5n.4xlarge,spot,NA,0.549938,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271280 +AWS,ap-northeast-1,r5n.8xlarge,on_demand,NA,2.896,USD,AWS Pricing API,2025-11-30T09:02:20.040102 +AWS,ap-northeast-1,r5n.8xlarge,reserved_1y,all_upfront,1.37,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:49.381892 +AWS,ap-northeast-1,r5n.8xlarge,reserved_1y,no_upfront,1.37,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:32.700220 +AWS,ap-northeast-1,r5n.8xlarge,reserved_1y,partial_upfront,1.37,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:15.003350 +AWS,ap-northeast-1,r5n.8xlarge,reserved_3y,all_upfront,1.37,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:48.841695 +AWS,ap-northeast-1,r5n.8xlarge,reserved_3y,no_upfront,1.37,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:36.891570 +AWS,ap-northeast-1,r5n.8xlarge,reserved_3y,partial_upfront,1.37,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:25.903110 +AWS,ap-northeast-1,r5n.8xlarge,spot,NA,1.056949,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270723 +AWS,ap-northeast-1,r5n.large,on_demand,NA,0.181,USD,AWS Pricing API,2025-11-30T09:02:41.336911 +AWS,ap-northeast-1,r5n.large,reserved_1y,all_upfront,0.134,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:10.570763 +AWS,ap-northeast-1,r5n.large,reserved_1y,no_upfront,0.134,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:53.941454 +AWS,ap-northeast-1,r5n.large,reserved_1y,partial_upfront,0.134,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:36.174440 +AWS,ap-northeast-1,r5n.large,reserved_3y,all_upfront,0.134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:09.696394 +AWS,ap-northeast-1,r5n.large,reserved_3y,no_upfront,0.134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:58.417627 +AWS,ap-northeast-1,r5n.large,reserved_3y,partial_upfront,0.134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:46.871889 +AWS,ap-northeast-1,r5n.large,spot,NA,0.066318,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272458 +AWS,ap-northeast-1,r5n.metal,on_demand,NA,8.688,USD,AWS Pricing API,2025-11-30T09:02:21.000847 +AWS,ap-northeast-1,r5n.metal,reserved_1y,all_upfront,5.212393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:50.328209 +AWS,ap-northeast-1,r5n.metal,reserved_1y,no_upfront,5.212393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:33.659867 +AWS,ap-northeast-1,r5n.metal,reserved_1y,partial_upfront,5.212393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:15.954338 +AWS,ap-northeast-1,r5n.metal,reserved_3y,all_upfront,3.474798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:49.775320 +AWS,ap-northeast-1,r5n.metal,reserved_3y,no_upfront,3.474798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:37.855432 +AWS,ap-northeast-1,r5n.metal,reserved_3y,partial_upfront,3.474798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:26.846310 +AWS,ap-northeast-1,r5n.metal,spot,NA,2.748564,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270778 +AWS,ap-northeast-1,r5n.xlarge,on_demand,NA,0.362,USD,AWS Pricing API,2025-11-30T09:01:58.820020 +AWS,ap-northeast-1,r5n.xlarge,reserved_1y,all_upfront,0.268,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:28.562662 +AWS,ap-northeast-1,r5n.xlarge,reserved_1y,no_upfront,0.268,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:11.622261 +AWS,ap-northeast-1,r5n.xlarge,reserved_1y,partial_upfront,0.268,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:54.129716 +AWS,ap-northeast-1,r5n.xlarge,reserved_3y,all_upfront,0.268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:28.408716 +AWS,ap-northeast-1,r5n.xlarge,reserved_3y,no_upfront,0.268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:15.617898 +AWS,ap-northeast-1,r5n.xlarge,reserved_3y,partial_upfront,0.268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:05.168657 +AWS,ap-northeast-1,r5n.xlarge,spot,NA,0.148125,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269834 +AWS,ap-northeast-1,r6g.12xlarge,on_demand,NA,2.9184,USD,AWS Pricing API,2025-11-30T09:01:51.987174 +AWS,ap-northeast-1,r6g.12xlarge,reserved_1y,all_upfront,1.751071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:21.801816 +AWS,ap-northeast-1,r6g.12xlarge,reserved_1y,no_upfront,1.751071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:04.797100 +AWS,ap-northeast-1,r6g.12xlarge,reserved_1y,partial_upfront,1.751071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:47.402855 +AWS,ap-northeast-1,r6g.12xlarge,reserved_3y,all_upfront,1.167357,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:21.697201 +AWS,ap-northeast-1,r6g.12xlarge,reserved_3y,no_upfront,1.167357,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:08.749979 +AWS,ap-northeast-1,r6g.12xlarge,reserved_3y,partial_upfront,1.167357,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:58.416627 +AWS,ap-northeast-1,r6g.12xlarge,spot,NA,0.989537,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269581 +AWS,ap-northeast-1,r6g.16xlarge,on_demand,NA,3.8912,USD,AWS Pricing API,2025-11-30T09:01:48.870743 +AWS,ap-northeast-1,r6g.16xlarge,reserved_1y,all_upfront,1.681,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:18.705935 +AWS,ap-northeast-1,r6g.16xlarge,reserved_1y,no_upfront,1.681,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:01.627229 +AWS,ap-northeast-1,r6g.16xlarge,reserved_1y,partial_upfront,1.681,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:44.298207 +AWS,ap-northeast-1,r6g.16xlarge,reserved_3y,all_upfront,1.681,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:18.663455 +AWS,ap-northeast-1,r6g.16xlarge,reserved_3y,no_upfront,1.681,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:05.579837 +AWS,ap-northeast-1,r6g.16xlarge,reserved_3y,partial_upfront,1.681,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:55.359580 +AWS,ap-northeast-1,r6g.16xlarge,spot,NA,1.32497,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269452 +AWS,ap-northeast-1,r6g.2xlarge,on_demand,NA,0.4864,USD,AWS Pricing API,2025-11-30T09:02:42.287685 +AWS,ap-northeast-1,r6g.2xlarge,reserved_1y,all_upfront,0.327397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:11.518232 +AWS,ap-northeast-1,r6g.2xlarge,reserved_1y,no_upfront,0.327397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:54.892830 +AWS,ap-northeast-1,r6g.2xlarge,reserved_1y,partial_upfront,0.327397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:37.119853 +AWS,ap-northeast-1,r6g.2xlarge,reserved_3y,all_upfront,0.109132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:10.619593 +AWS,ap-northeast-1,r6g.2xlarge,reserved_3y,no_upfront,0.109132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:59.379103 +AWS,ap-northeast-1,r6g.2xlarge,reserved_3y,partial_upfront,0.109132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:47.809446 +AWS,ap-northeast-1,r6g.2xlarge,spot,NA,0.184741,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272542 +AWS,ap-northeast-1,r6g.4xlarge,on_demand,NA,0.9728,USD,AWS Pricing API,2025-11-30T09:01:38.661806 +AWS,ap-northeast-1,r6g.4xlarge,reserved_1y,all_upfront,0.583695,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:08.555918 +AWS,ap-northeast-1,r6g.4xlarge,reserved_1y,no_upfront,0.583695,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:51.336406 +AWS,ap-northeast-1,r6g.4xlarge,reserved_1y,partial_upfront,0.583695,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:34.149945 +AWS,ap-northeast-1,r6g.4xlarge,reserved_3y,all_upfront,0.389098,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:08.727859 +AWS,ap-northeast-1,r6g.4xlarge,reserved_3y,no_upfront,0.389098,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:55.202548 +AWS,ap-northeast-1,r6g.4xlarge,reserved_3y,partial_upfront,0.389098,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:45.266759 +AWS,ap-northeast-1,r6g.4xlarge,spot,NA,0.399542,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269125 +AWS,ap-northeast-1,r6g.8xlarge,on_demand,NA,1.9456,USD,AWS Pricing API,2025-11-30T09:02:17.996919 +AWS,ap-northeast-1,r6g.8xlarge,reserved_1y,all_upfront,1.144064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:47.349380 +AWS,ap-northeast-1,r6g.8xlarge,reserved_1y,no_upfront,1.144064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:30.675963 +AWS,ap-northeast-1,r6g.8xlarge,reserved_1y,partial_upfront,1.144064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:12.946868 +AWS,ap-northeast-1,r6g.8xlarge,reserved_3y,all_upfront,0.381355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:46.850935 +AWS,ap-northeast-1,r6g.8xlarge,reserved_3y,no_upfront,0.381355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:34.826536 +AWS,ap-northeast-1,r6g.8xlarge,reserved_3y,partial_upfront,0.381355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:23.888441 +AWS,ap-northeast-1,r6g.8xlarge,spot,NA,0.704114,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270645 +AWS,ap-northeast-1,r6g.large,on_demand,NA,0.1216,USD,AWS Pricing API,2025-11-30T09:01:56.222618 +AWS,ap-northeast-1,r6g.large,reserved_1y,all_upfront,0.083581,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:26.004868 +AWS,ap-northeast-1,r6g.large,reserved_1y,no_upfront,0.083581,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:09.021548 +AWS,ap-northeast-1,r6g.large,reserved_1y,partial_upfront,0.083581,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:51.588974 +AWS,ap-northeast-1,r6g.large,reserved_3y,all_upfront,0.055727,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:25.880262 +AWS,ap-northeast-1,r6g.large,reserved_3y,no_upfront,0.055727,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:13.017760 +AWS,ap-northeast-1,r6g.large,reserved_3y,partial_upfront,0.055727,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:02.615128 +AWS,ap-northeast-1,r6g.large,spot,NA,0.048534,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269735 +AWS,ap-northeast-1,r6g.xlarge,on_demand,NA,0.2432,USD,AWS Pricing API,2025-11-30T09:01:31.561953 +AWS,ap-northeast-1,r6g.xlarge,reserved_1y,all_upfront,0.167062,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:01.419638 +AWS,ap-northeast-1,r6g.xlarge,reserved_1y,no_upfront,0.167062,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:44.258294 +AWS,ap-northeast-1,r6g.xlarge,reserved_1y,partial_upfront,0.167062,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:27.126342 +AWS,ap-northeast-1,r6g.xlarge,reserved_3y,all_upfront,0.111354,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:01.820088 +AWS,ap-northeast-1,r6g.xlarge,reserved_3y,no_upfront,0.111354,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:48.054042 +AWS,ap-northeast-1,r6g.xlarge,reserved_3y,partial_upfront,0.111354,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:38.274866 +AWS,ap-northeast-1,r6g.xlarge,spot,NA,0.093881,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268809 +AWS,ap-northeast-1,r6gd.12xlarge,on_demand,NA,3.336,USD,AWS Pricing API,2025-11-30T09:02:28.545742 +AWS,ap-northeast-1,r6gd.12xlarge,reserved_1y,all_upfront,2.688096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:57.785553 +AWS,ap-northeast-1,r6gd.12xlarge,reserved_1y,no_upfront,2.688096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:41.160539 +AWS,ap-northeast-1,r6gd.12xlarge,reserved_1y,partial_upfront,2.688096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:23.567571 +AWS,ap-northeast-1,r6gd.12xlarge,reserved_3y,all_upfront,1.344032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:57.162469 +AWS,ap-northeast-1,r6gd.12xlarge,reserved_3y,no_upfront,1.344032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:45.444598 +AWS,ap-northeast-1,r6gd.12xlarge,reserved_3y,partial_upfront,1.344032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:34.231794 +AWS,ap-northeast-1,r6gd.12xlarge,spot,NA,1.118459,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271071 +AWS,ap-northeast-1,r6gd.16xlarge,on_demand,NA,4.448,USD,AWS Pricing API,2025-11-30T09:01:54.717525 +AWS,ap-northeast-1,r6gd.16xlarge,reserved_1y,all_upfront,2.634132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:24.505282 +AWS,ap-northeast-1,r6gd.16xlarge,reserved_1y,no_upfront,2.634132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:07.514788 +AWS,ap-northeast-1,r6gd.16xlarge,reserved_1y,partial_upfront,2.634132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:50.115491 +AWS,ap-northeast-1,r6gd.16xlarge,reserved_3y,all_upfront,0.878044,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:24.402388 +AWS,ap-northeast-1,r6gd.16xlarge,reserved_3y,no_upfront,0.878044,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:11.506083 +AWS,ap-northeast-1,r6gd.16xlarge,reserved_3y,partial_upfront,0.878044,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:01.112783 +AWS,ap-northeast-1,r6gd.16xlarge,spot,NA,1.542319,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269664 +AWS,ap-northeast-1,r6gd.2xlarge,on_demand,NA,0.556,USD,AWS Pricing API,2025-11-30T09:01:33.059074 +AWS,ap-northeast-1,r6gd.2xlarge,reserved_1y,all_upfront,0.2419,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:02.918043 +AWS,ap-northeast-1,r6gd.2xlarge,reserved_1y,no_upfront,0.2419,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:45.750438 +AWS,ap-northeast-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.2419,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:28.603175 +AWS,ap-northeast-1,r6gd.2xlarge,reserved_3y,all_upfront,0.2419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:03.283602 +AWS,ap-northeast-1,r6gd.2xlarge,reserved_3y,no_upfront,0.2419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:49.554748 +AWS,ap-northeast-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.2419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:39.762301 +AWS,ap-northeast-1,r6gd.2xlarge,spot,NA,0.212491,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268864 +AWS,ap-northeast-1,r6gd.4xlarge,on_demand,NA,1.112,USD,AWS Pricing API,2025-11-30T09:01:39.619117 +AWS,ap-northeast-1,r6gd.4xlarge,reserved_1y,all_upfront,0.896032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:09.507610 +AWS,ap-northeast-1,r6gd.4xlarge,reserved_1y,no_upfront,0.896032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:52.290109 +AWS,ap-northeast-1,r6gd.4xlarge,reserved_1y,partial_upfront,0.896032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:35.104438 +AWS,ap-northeast-1,r6gd.4xlarge,reserved_3y,all_upfront,0.448011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:09.661056 +AWS,ap-northeast-1,r6gd.4xlarge,reserved_3y,no_upfront,0.448011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:56.182512 +AWS,ap-northeast-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.448011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:46.221457 +AWS,ap-northeast-1,r6gd.4xlarge,spot,NA,0.381926,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269136 +AWS,ap-northeast-1,r6gd.8xlarge,on_demand,NA,2.224,USD,AWS Pricing API,2025-11-30T09:01:33.880961 +AWS,ap-northeast-1,r6gd.8xlarge,reserved_1y,all_upfront,1.792064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:03.729941 +AWS,ap-northeast-1,r6gd.8xlarge,reserved_1y,no_upfront,1.792064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:46.570569 +AWS,ap-northeast-1,r6gd.8xlarge,reserved_1y,partial_upfront,1.792064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:29.420347 +AWS,ap-northeast-1,r6gd.8xlarge,reserved_3y,all_upfront,0.896021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:04.078352 +AWS,ap-northeast-1,r6gd.8xlarge,reserved_3y,no_upfront,0.896021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:50.372868 +AWS,ap-northeast-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.896021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:40.576541 +AWS,ap-northeast-1,r6gd.8xlarge,spot,NA,0.767957,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268942 +AWS,ap-northeast-1,r6gd.large,on_demand,NA,0.139,USD,AWS Pricing API,2025-11-30T09:02:09.754572 +AWS,ap-northeast-1,r6gd.large,reserved_1y,all_upfront,0.199886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:39.219877 +AWS,ap-northeast-1,r6gd.large,reserved_1y,no_upfront,0.199886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:22.474550 +AWS,ap-northeast-1,r6gd.large,reserved_1y,partial_upfront,0.199886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:04.854353 +AWS,ap-northeast-1,r6gd.large,reserved_3y,all_upfront,0.066629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:38.854195 +AWS,ap-northeast-1,r6gd.large,reserved_3y,no_upfront,0.066629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:26.504354 +AWS,ap-northeast-1,r6gd.large,reserved_3y,partial_upfront,0.066629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:15.785694 +AWS,ap-northeast-1,r6gd.large,spot,NA,0.051849,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270345 +AWS,ap-northeast-1,r6gd.xlarge,on_demand,NA,0.278,USD,AWS Pricing API,2025-11-30T09:01:53.625349 +AWS,ap-northeast-1,r6gd.xlarge,reserved_1y,all_upfront,0.315868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:23.415625 +AWS,ap-northeast-1,r6gd.xlarge,reserved_1y,no_upfront,0.315868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:06.427069 +AWS,ap-northeast-1,r6gd.xlarge,reserved_1y,partial_upfront,0.315868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:49.020729 +AWS,ap-northeast-1,r6gd.xlarge,reserved_3y,all_upfront,0.105289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:23.343996 +AWS,ap-northeast-1,r6gd.xlarge,reserved_3y,no_upfront,0.105289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:10.408118 +AWS,ap-northeast-1,r6gd.xlarge,reserved_3y,partial_upfront,0.105289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:00.030106 +AWS,ap-northeast-1,r6gd.xlarge,spot,NA,0.113816,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269593 +AWS,ap-northeast-1,r6i.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T09:02:34.263924 +AWS,ap-northeast-1,r6i.12xlarge,reserved_1y,all_upfront,2.517122,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:03.538867 +AWS,ap-northeast-1,r6i.12xlarge,reserved_1y,no_upfront,2.517122,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:46.851439 +AWS,ap-northeast-1,r6i.12xlarge,reserved_1y,partial_upfront,2.517122,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:29.185696 +AWS,ap-northeast-1,r6i.12xlarge,reserved_3y,all_upfront,1.678081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:02.796769 +AWS,ap-northeast-1,r6i.12xlarge,reserved_3y,no_upfront,1.678081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:51.256604 +AWS,ap-northeast-1,r6i.12xlarge,reserved_3y,partial_upfront,1.678081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:39.895526 +AWS,ap-northeast-1,r6i.12xlarge,spot,NA,1.271922,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271311 +AWS,ap-northeast-1,r6i.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T09:01:42.327626 +AWS,ap-northeast-1,r6i.16xlarge,reserved_1y,all_upfront,4.085709,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:12.208791 +AWS,ap-northeast-1,r6i.16xlarge,reserved_1y,no_upfront,4.085709,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:54.996450 +AWS,ap-northeast-1,r6i.16xlarge,reserved_1y,partial_upfront,4.085709,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:37.832806 +AWS,ap-northeast-1,r6i.16xlarge,reserved_3y,all_upfront,2.042863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:12.314584 +AWS,ap-northeast-1,r6i.16xlarge,reserved_3y,no_upfront,2.042863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:58.931763 +AWS,ap-northeast-1,r6i.16xlarge,reserved_3y,partial_upfront,2.042863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:48.909353 +AWS,ap-northeast-1,r6i.16xlarge,spot,NA,1.647269,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269263 +AWS,ap-northeast-1,r6i.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T09:01:48.736254 +AWS,ap-northeast-1,r6i.24xlarge,reserved_1y,all_upfront,6.128621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:18.571034 +AWS,ap-northeast-1,r6i.24xlarge,reserved_1y,no_upfront,6.128621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:01.491088 +AWS,ap-northeast-1,r6i.24xlarge,reserved_1y,partial_upfront,6.128621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:44.164621 +AWS,ap-northeast-1,r6i.24xlarge,reserved_3y,all_upfront,3.064314,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:18.531299 +AWS,ap-northeast-1,r6i.24xlarge,reserved_3y,no_upfront,3.064314,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:05.442196 +AWS,ap-northeast-1,r6i.24xlarge,reserved_3y,partial_upfront,3.064314,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:55.223592 +AWS,ap-northeast-1,r6i.24xlarge,spot,NA,2.625861,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269435 +AWS,ap-northeast-1,r6i.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T09:02:37.795862 +AWS,ap-northeast-1,r6i.2xlarge,reserved_1y,all_upfront,0.375342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:07.035072 +AWS,ap-northeast-1,r6i.2xlarge,reserved_1y,no_upfront,0.375342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:50.388344 +AWS,ap-northeast-1,r6i.2xlarge,reserved_1y,partial_upfront,0.375342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:32.674853 +AWS,ap-northeast-1,r6i.2xlarge,reserved_3y,all_upfront,0.125114,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:06.249633 +AWS,ap-northeast-1,r6i.2xlarge,reserved_3y,no_upfront,0.125114,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:54.837002 +AWS,ap-northeast-1,r6i.2xlarge,reserved_3y,partial_upfront,0.125114,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:43.372178 +AWS,ap-northeast-1,r6i.2xlarge,spot,NA,0.240747,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272242 +AWS,ap-northeast-1,r6i.32xlarge,on_demand,NA,9.728,USD,AWS Pricing API,2025-11-30T09:01:42.467857 +AWS,ap-northeast-1,r6i.32xlarge,reserved_1y,all_upfront,6.578082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:12.349039 +AWS,ap-northeast-1,r6i.32xlarge,reserved_1y,no_upfront,6.578082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:55.135404 +AWS,ap-northeast-1,r6i.32xlarge,reserved_1y,partial_upfront,6.578082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:37.969049 +AWS,ap-northeast-1,r6i.32xlarge,reserved_3y,all_upfront,2.192694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:12.448341 +AWS,ap-northeast-1,r6i.32xlarge,reserved_3y,no_upfront,2.192694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:59.070649 +AWS,ap-northeast-1,r6i.32xlarge,reserved_3y,partial_upfront,2.192694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:49.041458 +AWS,ap-northeast-1,r6i.32xlarge,spot,NA,3.024403,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269259 +AWS,ap-northeast-1,r6i.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T09:02:03.984965 +AWS,ap-northeast-1,r6i.4xlarge,reserved_1y,all_upfront,0.766031,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:33.551144 +AWS,ap-northeast-1,r6i.4xlarge,reserved_1y,no_upfront,0.766031,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:16.713034 +AWS,ap-northeast-1,r6i.4xlarge,reserved_1y,partial_upfront,0.766031,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:59.141430 +AWS,ap-northeast-1,r6i.4xlarge,reserved_3y,all_upfront,0.510704,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:33.290966 +AWS,ap-northeast-1,r6i.4xlarge,reserved_3y,no_upfront,0.510704,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:20.718387 +AWS,ap-northeast-1,r6i.4xlarge,reserved_3y,partial_upfront,0.510704,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:10.141545 +AWS,ap-northeast-1,r6i.4xlarge,spot,NA,0.465815,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270086 +AWS,ap-northeast-1,r6i.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T09:02:08.377503 +AWS,ap-northeast-1,r6i.8xlarge,reserved_1y,all_upfront,2.042912,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:37.867843 +AWS,ap-northeast-1,r6i.8xlarge,reserved_1y,no_upfront,2.042912,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:21.122196 +AWS,ap-northeast-1,r6i.8xlarge,reserved_1y,partial_upfront,2.042912,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:03.495106 +AWS,ap-northeast-1,r6i.8xlarge,reserved_3y,all_upfront,1.021451,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:37.536338 +AWS,ap-northeast-1,r6i.8xlarge,reserved_3y,no_upfront,1.021451,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:25.136023 +AWS,ap-northeast-1,r6i.8xlarge,reserved_3y,partial_upfront,1.021451,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:14.445696 +AWS,ap-northeast-1,r6i.8xlarge,spot,NA,0.84017,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270256 +AWS,ap-northeast-1,r6i.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T09:02:24.316724 +AWS,ap-northeast-1,r6i.large,reserved_1y,all_upfront,0.11012,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:53.563312 +AWS,ap-northeast-1,r6i.large,reserved_1y,no_upfront,0.11012,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:36.934290 +AWS,ap-northeast-1,r6i.large,reserved_1y,partial_upfront,0.11012,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:19.282825 +AWS,ap-northeast-1,r6i.large,reserved_3y,all_upfront,0.11012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:53.062691 +AWS,ap-northeast-1,r6i.large,reserved_3y,no_upfront,0.11012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:41.170718 +AWS,ap-northeast-1,r6i.large,reserved_3y,partial_upfront,0.11012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:30.060333 +AWS,ap-northeast-1,r6i.large,spot,NA,0.060391,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270902 +AWS,ap-northeast-1,r6i.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T09:01:45.878410 +AWS,ap-northeast-1,r6i.xlarge,reserved_1y,all_upfront,0.15858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:15.728944 +AWS,ap-northeast-1,r6i.xlarge,reserved_1y,no_upfront,0.15858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:58.601683 +AWS,ap-northeast-1,r6i.xlarge,reserved_1y,partial_upfront,0.15858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:41.339103 +AWS,ap-northeast-1,r6i.xlarge,reserved_3y,all_upfront,0.15858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:15.763752 +AWS,ap-northeast-1,r6i.xlarge,reserved_3y,no_upfront,0.15858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:02.546415 +AWS,ap-northeast-1,r6i.xlarge,reserved_3y,partial_upfront,0.15858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:52.399302 +AWS,ap-northeast-1,r6i.xlarge,spot,NA,0.121263,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269323 +AWS,ap-northeast-1,r6id.12xlarge,on_demand,NA,4.3848,USD,AWS Pricing API,2025-11-30T09:02:38.203375 +AWS,ap-northeast-1,r6id.12xlarge,reserved_1y,all_upfront,3.507896,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:07.448068 +AWS,ap-northeast-1,r6id.12xlarge,reserved_1y,no_upfront,3.507896,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:50.805206 +AWS,ap-northeast-1,r6id.12xlarge,reserved_1y,partial_upfront,3.507896,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:33.075420 +AWS,ap-northeast-1,r6id.12xlarge,reserved_3y,all_upfront,1.753939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:06.659469 +AWS,ap-northeast-1,r6id.12xlarge,reserved_3y,no_upfront,1.753939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:55.247663 +AWS,ap-northeast-1,r6id.12xlarge,reserved_3y,partial_upfront,1.753939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:43.772325 +AWS,ap-northeast-1,r6id.12xlarge,spot,NA,1.456066,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272299 +AWS,ap-northeast-1,r6id.16xlarge,on_demand,NA,5.8464,USD,AWS Pricing API,2025-11-30T09:02:21.139348 +AWS,ap-northeast-1,r6id.16xlarge,reserved_1y,all_upfront,4.090151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:50.465237 +AWS,ap-northeast-1,r6id.16xlarge,reserved_1y,no_upfront,4.090151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:33.794277 +AWS,ap-northeast-1,r6id.16xlarge,reserved_1y,partial_upfront,4.090151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:16.088199 +AWS,ap-northeast-1,r6id.16xlarge,reserved_3y,all_upfront,2.726757,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:49.907965 +AWS,ap-northeast-1,r6id.16xlarge,reserved_3y,no_upfront,2.726757,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:37.992135 +AWS,ap-northeast-1,r6id.16xlarge,reserved_3y,partial_upfront,2.726757,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:26.981929 +AWS,ap-northeast-1,r6id.16xlarge,spot,NA,1.910408,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270809 +AWS,ap-northeast-1,r6id.24xlarge,on_demand,NA,8.7696,USD,AWS Pricing API,2025-11-30T09:01:33.331053 +AWS,ap-northeast-1,r6id.24xlarge,reserved_1y,all_upfront,6.13518,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:03.189516 +AWS,ap-northeast-1,r6id.24xlarge,reserved_1y,no_upfront,6.13518,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:46.021736 +AWS,ap-northeast-1,r6id.24xlarge,reserved_1y,partial_upfront,6.13518,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:28.883549 +AWS,ap-northeast-1,r6id.24xlarge,reserved_3y,all_upfront,4.090127,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:03.548391 +AWS,ap-northeast-1,r6id.24xlarge,reserved_3y,no_upfront,4.090127,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:49.827846 +AWS,ap-northeast-1,r6id.24xlarge,reserved_3y,partial_upfront,4.090127,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:40.028924 +AWS,ap-northeast-1,r6id.24xlarge,spot,NA,2.908561,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268881 +AWS,ap-northeast-1,r6id.2xlarge,on_demand,NA,0.7308,USD,AWS Pricing API,2025-11-30T09:02:23.907980 +AWS,ap-northeast-1,r6id.2xlarge,reserved_1y,all_upfront,0.53683,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:53.160654 +AWS,ap-northeast-1,r6id.2xlarge,reserved_1y,no_upfront,0.53683,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:36.526611 +AWS,ap-northeast-1,r6id.2xlarge,reserved_1y,partial_upfront,0.53683,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:18.876648 +AWS,ap-northeast-1,r6id.2xlarge,reserved_3y,all_upfront,0.53683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:52.567961 +AWS,ap-northeast-1,r6id.2xlarge,reserved_3y,no_upfront,0.53683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:40.760149 +AWS,ap-northeast-1,r6id.2xlarge,reserved_3y,partial_upfront,0.53683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:29.664280 +AWS,ap-northeast-1,r6id.2xlarge,spot,NA,0.279719,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270926 +AWS,ap-northeast-1,r6id.32xlarge,on_demand,NA,11.6928,USD,AWS Pricing API,2025-11-30T09:02:15.658811 +AWS,ap-northeast-1,r6id.32xlarge,reserved_1y,all_upfront,8.58927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:45.032970 +AWS,ap-northeast-1,r6id.32xlarge,reserved_1y,no_upfront,8.58927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:28.353750 +AWS,ap-northeast-1,r6id.32xlarge,reserved_1y,partial_upfront,8.58927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:10.651096 +AWS,ap-northeast-1,r6id.32xlarge,reserved_3y,all_upfront,8.58927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:44.576286 +AWS,ap-northeast-1,r6id.32xlarge,reserved_3y,no_upfront,8.58927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:32.465545 +AWS,ap-northeast-1,r6id.32xlarge,reserved_3y,partial_upfront,8.58927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:21.601597 +AWS,ap-northeast-1,r6id.32xlarge,spot,NA,3.686428,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270535 +AWS,ap-northeast-1,r6id.4xlarge,on_demand,NA,1.4616,USD,AWS Pricing API,2025-11-30T09:02:10.333027 +AWS,ap-northeast-1,r6id.4xlarge,reserved_1y,all_upfront,1.169261,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:39.758592 +AWS,ap-northeast-1,r6id.4xlarge,reserved_1y,no_upfront,1.169261,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:23.018795 +AWS,ap-northeast-1,r6id.4xlarge,reserved_1y,partial_upfront,1.169261,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:05.391758 +AWS,ap-northeast-1,r6id.4xlarge,reserved_3y,all_upfront,0.584634,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:39.389347 +AWS,ap-northeast-1,r6id.4xlarge,reserved_3y,no_upfront,0.584634,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:27.056703 +AWS,ap-northeast-1,r6id.4xlarge,reserved_3y,partial_upfront,0.584634,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:16.340156 +AWS,ap-northeast-1,r6id.4xlarge,spot,NA,0.559224,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270333 +AWS,ap-northeast-1,r6id.8xlarge,on_demand,NA,2.9232,USD,AWS Pricing API,2025-11-30T09:01:32.916026 +AWS,ap-northeast-1,r6id.8xlarge,reserved_1y,all_upfront,2.00411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:02.784332 +AWS,ap-northeast-1,r6id.8xlarge,reserved_1y,no_upfront,2.00411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:45.617119 +AWS,ap-northeast-1,r6id.8xlarge,reserved_1y,partial_upfront,2.00411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:28.471461 +AWS,ap-northeast-1,r6id.8xlarge,reserved_3y,all_upfront,0.668037,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:03.149718 +AWS,ap-northeast-1,r6id.8xlarge,reserved_3y,no_upfront,0.668037,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:49.416068 +AWS,ap-northeast-1,r6id.8xlarge,reserved_3y,partial_upfront,0.668037,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:39.628101 +AWS,ap-northeast-1,r6id.8xlarge,spot,NA,0.967964,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268833 +AWS,ap-northeast-1,r6id.large,on_demand,NA,0.1827,USD,AWS Pricing API,2025-11-30T09:01:58.004201 +AWS,ap-northeast-1,r6id.large,reserved_1y,all_upfront,0.127837,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:27.754134 +AWS,ap-northeast-1,r6id.large,reserved_1y,no_upfront,0.127837,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:10.789602 +AWS,ap-northeast-1,r6id.large,reserved_1y,partial_upfront,0.127837,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:53.320708 +AWS,ap-northeast-1,r6id.large,reserved_3y,all_upfront,0.085219,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:27.614630 +AWS,ap-northeast-1,r6id.large,reserved_3y,no_upfront,0.085219,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:14.797104 +AWS,ap-northeast-1,r6id.large,reserved_3y,partial_upfront,0.085219,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:04.352895 +AWS,ap-northeast-1,r6id.large,spot,NA,0.061988,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269796 +AWS,ap-northeast-1,r6id.xlarge,on_demand,NA,0.3654,USD,AWS Pricing API,2025-11-30T09:02:35.627173 +AWS,ap-northeast-1,r6id.xlarge,reserved_1y,all_upfront,0.524658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:04.888179 +AWS,ap-northeast-1,r6id.xlarge,reserved_1y,no_upfront,0.524658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:48.207612 +AWS,ap-northeast-1,r6id.xlarge,reserved_1y,partial_upfront,0.524658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:30.532725 +AWS,ap-northeast-1,r6id.xlarge,reserved_3y,all_upfront,0.174886,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:04.133506 +AWS,ap-northeast-1,r6id.xlarge,reserved_3y,no_upfront,0.174886,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:52.650142 +AWS,ap-northeast-1,r6id.xlarge,reserved_3y,partial_upfront,0.174886,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:41.237363 +AWS,ap-northeast-1,r6id.xlarge,spot,NA,0.133946,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271404 +AWS,ap-northeast-1,r6idn.12xlarge,on_demand,NA,5.70024,USD,AWS Pricing API,2025-11-30T09:01:55.811211 +AWS,ap-northeast-1,r6idn.12xlarge,reserved_1y,all_upfront,4.434842,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:25.598717 +AWS,ap-northeast-1,r6idn.12xlarge,reserved_1y,no_upfront,4.434842,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:08.614696 +AWS,ap-northeast-1,r6idn.12xlarge,reserved_1y,partial_upfront,4.434842,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:51.190565 +AWS,ap-northeast-1,r6idn.12xlarge,reserved_3y,all_upfront,2.217414,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:25.475273 +AWS,ap-northeast-1,r6idn.12xlarge,reserved_3y,no_upfront,2.217414,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:12.601104 +AWS,ap-northeast-1,r6idn.12xlarge,reserved_3y,partial_upfront,2.217414,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:02.201549 +AWS,ap-northeast-1,r6idn.12xlarge,spot,NA,1.979609,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269712 +AWS,ap-northeast-1,r6idn.16xlarge,on_demand,NA,7.60032,USD,AWS Pricing API,2025-11-30T09:01:35.676844 +AWS,ap-northeast-1,r6idn.16xlarge,reserved_1y,all_upfront,4.560237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:05.504531 +AWS,ap-northeast-1,r6idn.16xlarge,reserved_1y,no_upfront,4.560237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:48.356200 +AWS,ap-northeast-1,r6idn.16xlarge,reserved_1y,partial_upfront,4.560237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:31.161745 +AWS,ap-northeast-1,r6idn.16xlarge,reserved_3y,all_upfront,3.040146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:05.813283 +AWS,ap-northeast-1,r6idn.16xlarge,reserved_3y,no_upfront,3.040146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:52.175680 +AWS,ap-northeast-1,r6idn.16xlarge,reserved_3y,partial_upfront,3.040146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:42.307303 +AWS,ap-northeast-1,r6idn.16xlarge,spot,NA,2.544905,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269009 +AWS,ap-northeast-1,r6idn.24xlarge,on_demand,NA,11.40048,USD,AWS Pricing API,2025-11-30T09:02:03.164118 +AWS,ap-northeast-1,r6idn.24xlarge,reserved_1y,all_upfront,7.965982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:32.728286 +AWS,ap-northeast-1,r6idn.24xlarge,reserved_1y,no_upfront,7.965982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:15.878642 +AWS,ap-northeast-1,r6idn.24xlarge,reserved_1y,partial_upfront,7.965982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:58.323701 +AWS,ap-northeast-1,r6idn.24xlarge,reserved_3y,all_upfront,2.655327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:32.488485 +AWS,ap-northeast-1,r6idn.24xlarge,reserved_3y,no_upfront,2.655327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:19.888924 +AWS,ap-northeast-1,r6idn.24xlarge,reserved_3y,partial_upfront,2.655327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:09.338360 +AWS,ap-northeast-1,r6idn.24xlarge,spot,NA,3.64097,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270020 +AWS,ap-northeast-1,r6idn.2xlarge,on_demand,NA,0.95004,USD,AWS Pricing API,2025-11-30T09:02:02.617204 +AWS,ap-northeast-1,r6idn.2xlarge,reserved_1y,all_upfront,0.849162,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:32.186234 +AWS,ap-northeast-1,r6idn.2xlarge,reserved_1y,no_upfront,0.849162,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:15.329148 +AWS,ap-northeast-1,r6idn.2xlarge,reserved_1y,partial_upfront,0.849162,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:57.776496 +AWS,ap-northeast-1,r6idn.2xlarge,reserved_3y,all_upfront,0.424581,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:31.957708 +AWS,ap-northeast-1,r6idn.2xlarge,reserved_3y,no_upfront,0.424581,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:19.335224 +AWS,ap-northeast-1,r6idn.2xlarge,reserved_3y,partial_upfront,0.424581,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:08.796605 +AWS,ap-northeast-1,r6idn.2xlarge,spot,NA,0.361929,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270003 +AWS,ap-northeast-1,r6idn.32xlarge,on_demand,NA,15.20064,USD,AWS Pricing API,2025-11-30T09:02:33.164202 +AWS,ap-northeast-1,r6idn.32xlarge,reserved_1y,all_upfront,11.37996,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:02.450088 +AWS,ap-northeast-1,r6idn.32xlarge,reserved_1y,no_upfront,11.37996,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:45.756481 +AWS,ap-northeast-1,r6idn.32xlarge,reserved_1y,partial_upfront,11.37996,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:28.107491 +AWS,ap-northeast-1,r6idn.32xlarge,reserved_3y,all_upfront,11.37996,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:01.697855 +AWS,ap-northeast-1,r6idn.32xlarge,reserved_3y,no_upfront,11.37996,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:50.148750 +AWS,ap-northeast-1,r6idn.32xlarge,reserved_3y,partial_upfront,11.37996,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:38.814869 +AWS,ap-northeast-1,r6idn.32xlarge,spot,NA,4.893701,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271292 +AWS,ap-northeast-1,r6idn.4xlarge,on_demand,NA,1.90008,USD,AWS Pricing API,2025-11-30T09:01:36.220621 +AWS,ap-northeast-1,r6idn.4xlarge,reserved_1y,all_upfront,1.19705,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:06.052639 +AWS,ap-northeast-1,r6idn.4xlarge,reserved_1y,no_upfront,1.19705,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:48.898211 +AWS,ap-northeast-1,r6idn.4xlarge,reserved_1y,partial_upfront,1.19705,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:31.699825 +AWS,ap-northeast-1,r6idn.4xlarge,reserved_3y,all_upfront,1.19705,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:06.351177 +AWS,ap-northeast-1,r6idn.4xlarge,reserved_3y,no_upfront,1.19705,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:52.725356 +AWS,ap-northeast-1,r6idn.4xlarge,reserved_3y,partial_upfront,1.19705,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:42.848413 +AWS,ap-northeast-1,r6idn.4xlarge,spot,NA,0.703016,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268961 +AWS,ap-northeast-1,r6idn.8xlarge,on_demand,NA,3.80016,USD,AWS Pricing API,2025-11-30T09:02:24.182815 +AWS,ap-northeast-1,r6idn.8xlarge,reserved_1y,all_upfront,1.59652,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:53.429028 +AWS,ap-northeast-1,r6idn.8xlarge,reserved_1y,no_upfront,1.59652,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:36.797150 +AWS,ap-northeast-1,r6idn.8xlarge,reserved_1y,partial_upfront,1.59652,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:19.145188 +AWS,ap-northeast-1,r6idn.8xlarge,reserved_3y,all_upfront,1.59652,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:52.834512 +AWS,ap-northeast-1,r6idn.8xlarge,reserved_3y,no_upfront,1.59652,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:41.033823 +AWS,ap-northeast-1,r6idn.8xlarge,reserved_3y,partial_upfront,1.59652,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:29.928617 +AWS,ap-northeast-1,r6idn.8xlarge,spot,NA,1.398666,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270909 +AWS,ap-northeast-1,r6idn.large,on_demand,NA,0.23751,USD,AWS Pricing API,2025-11-30T09:01:55.674297 +AWS,ap-northeast-1,r6idn.large,reserved_1y,all_upfront,0.17781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:25.462211 +AWS,ap-northeast-1,r6idn.large,reserved_1y,no_upfront,0.17781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:08.478688 +AWS,ap-northeast-1,r6idn.large,reserved_1y,partial_upfront,0.17781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:51.057370 +AWS,ap-northeast-1,r6idn.large,reserved_3y,all_upfront,0.17781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:25.335143 +AWS,ap-northeast-1,r6idn.large,reserved_3y,no_upfront,0.17781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:12.464517 +AWS,ap-northeast-1,r6idn.large,reserved_3y,partial_upfront,0.17781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:02.063013 +AWS,ap-northeast-1,r6idn.large,spot,NA,0.081474,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269701 +AWS,ap-northeast-1,r6idn.xlarge,on_demand,NA,0.47502,USD,AWS Pricing API,2025-11-30T09:01:47.647557 +AWS,ap-northeast-1,r6idn.xlarge,reserved_1y,all_upfront,0.19957,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:17.487148 +AWS,ap-northeast-1,r6idn.xlarge,reserved_1y,no_upfront,0.19957,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:00.373643 +AWS,ap-northeast-1,r6idn.xlarge,reserved_1y,partial_upfront,0.19957,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:43.078274 +AWS,ap-northeast-1,r6idn.xlarge,reserved_3y,all_upfront,0.19957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:17.478308 +AWS,ap-northeast-1,r6idn.xlarge,reserved_3y,no_upfront,0.19957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:04.333467 +AWS,ap-northeast-1,r6idn.xlarge,reserved_3y,partial_upfront,0.19957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:54.144971 +AWS,ap-northeast-1,r6idn.xlarge,spot,NA,0.190402,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269427 +AWS,ap-northeast-1,r6in.12xlarge,on_demand,NA,5.08248,USD,AWS Pricing API,2025-11-30T09:01:40.303193 +AWS,ap-northeast-1,r6in.12xlarge,reserved_1y,all_upfront,3.871841,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:10.201880 +AWS,ap-northeast-1,r6in.12xlarge,reserved_1y,no_upfront,3.871841,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:52.966547 +AWS,ap-northeast-1,r6in.12xlarge,reserved_1y,partial_upfront,3.871841,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:35.822259 +AWS,ap-northeast-1,r6in.12xlarge,reserved_3y,all_upfront,1.93592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:10.327900 +AWS,ap-northeast-1,r6in.12xlarge,reserved_3y,no_upfront,1.93592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:56.868249 +AWS,ap-northeast-1,r6in.12xlarge,reserved_3y,partial_upfront,1.93592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:46.888651 +AWS,ap-northeast-1,r6in.12xlarge,spot,NA,1.733327,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269149 +AWS,ap-northeast-1,r6in.16xlarge,on_demand,NA,6.77664,USD,AWS Pricing API,2025-11-30T09:01:31.968594 +AWS,ap-northeast-1,r6in.16xlarge,reserved_1y,all_upfront,4.7769,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:01.831890 +AWS,ap-northeast-1,r6in.16xlarge,reserved_1y,no_upfront,4.7769,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:44.668909 +AWS,ap-northeast-1,r6in.16xlarge,reserved_1y,partial_upfront,4.7769,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:27.528328 +AWS,ap-northeast-1,r6in.16xlarge,reserved_3y,all_upfront,3.184587,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:02.218297 +AWS,ap-northeast-1,r6in.16xlarge,reserved_3y,no_upfront,3.184587,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:48.461414 +AWS,ap-northeast-1,r6in.16xlarge,reserved_3y,partial_upfront,3.184587,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:38.673867 +AWS,ap-northeast-1,r6in.16xlarge,spot,NA,2.432298,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268822 +AWS,ap-northeast-1,r6in.24xlarge,on_demand,NA,10.16496,USD,AWS Pricing API,2025-11-30T09:02:32.352787 +AWS,ap-northeast-1,r6in.24xlarge,reserved_1y,all_upfront,7.165288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:01.617381 +AWS,ap-northeast-1,r6in.24xlarge,reserved_1y,no_upfront,7.165288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:44.940528 +AWS,ap-northeast-1,r6in.24xlarge,reserved_1y,partial_upfront,7.165288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:27.306733 +AWS,ap-northeast-1,r6in.24xlarge,reserved_3y,all_upfront,4.776856,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:00.871580 +AWS,ap-northeast-1,r6in.24xlarge,reserved_3y,no_upfront,4.776856,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:49.322819 +AWS,ap-northeast-1,r6in.24xlarge,reserved_3y,partial_upfront,4.776856,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:38.008710 +AWS,ap-northeast-1,r6in.24xlarge,spot,NA,3.389598,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271207 +AWS,ap-northeast-1,r6in.2xlarge,on_demand,NA,0.84708,USD,AWS Pricing API,2025-11-30T09:02:35.217779 +AWS,ap-northeast-1,r6in.2xlarge,reserved_1y,all_upfront,0.53366,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:04.484171 +AWS,ap-northeast-1,r6in.2xlarge,reserved_1y,no_upfront,0.53366,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:47.800369 +AWS,ap-northeast-1,r6in.2xlarge,reserved_1y,partial_upfront,0.53366,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:30.129447 +AWS,ap-northeast-1,r6in.2xlarge,reserved_3y,all_upfront,0.53366,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:03.731098 +AWS,ap-northeast-1,r6in.2xlarge,reserved_3y,no_upfront,0.53366,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:52.236362 +AWS,ap-northeast-1,r6in.2xlarge,reserved_3y,partial_upfront,0.53366,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:40.836471 +AWS,ap-northeast-1,r6in.2xlarge,spot,NA,0.305363,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271336 +AWS,ap-northeast-1,r6in.32xlarge,on_demand,NA,13.55328,USD,AWS Pricing API,2025-11-30T09:02:15.388799 +AWS,ap-northeast-1,r6in.32xlarge,reserved_1y,all_upfront,7.969292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:44.764073 +AWS,ap-northeast-1,r6in.32xlarge,reserved_1y,no_upfront,7.969292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:28.080553 +AWS,ap-northeast-1,r6in.32xlarge,reserved_1y,partial_upfront,7.969292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:10.385056 +AWS,ap-northeast-1,r6in.32xlarge,reserved_3y,all_upfront,2.656431,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:44.312166 +AWS,ap-northeast-1,r6in.32xlarge,reserved_3y,no_upfront,2.656431,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:32.192282 +AWS,ap-northeast-1,r6in.32xlarge,reserved_3y,partial_upfront,2.656431,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:21.330810 +AWS,ap-northeast-1,r6in.32xlarge,spot,NA,4.227087,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270567 +AWS,ap-northeast-1,r6in.4xlarge,on_demand,NA,1.69416,USD,AWS Pricing API,2025-11-30T09:02:37.658641 +AWS,ap-northeast-1,r6in.4xlarge,reserved_1y,all_upfront,2.181621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:06.899220 +AWS,ap-northeast-1,r6in.4xlarge,reserved_1y,no_upfront,2.181621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:50.252124 +AWS,ap-northeast-1,r6in.4xlarge,reserved_1y,partial_upfront,2.181621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:32.538823 +AWS,ap-northeast-1,r6in.4xlarge,reserved_3y,all_upfront,0.727207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:06.117521 +AWS,ap-northeast-1,r6in.4xlarge,reserved_3y,no_upfront,0.727207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:54.698968 +AWS,ap-northeast-1,r6in.4xlarge,reserved_3y,partial_upfront,0.727207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:43.237382 +AWS,ap-northeast-1,r6in.4xlarge,spot,NA,0.622557,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272236 +AWS,ap-northeast-1,r6in.8xlarge,on_demand,NA,3.38832,USD,AWS Pricing API,2025-11-30T09:02:25.684988 +AWS,ap-northeast-1,r6in.8xlarge,reserved_1y,all_upfront,1.992352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:54.908570 +AWS,ap-northeast-1,r6in.8xlarge,reserved_1y,no_upfront,1.992352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:38.305050 +AWS,ap-northeast-1,r6in.8xlarge,reserved_1y,partial_upfront,1.992352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:20.624061 +AWS,ap-northeast-1,r6in.8xlarge,reserved_3y,all_upfront,0.664117,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:54.388442 +AWS,ap-northeast-1,r6in.8xlarge,reserved_3y,no_upfront,0.664117,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:42.556306 +AWS,ap-northeast-1,r6in.8xlarge,reserved_3y,partial_upfront,0.664117,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:31.419758 +AWS,ap-northeast-1,r6in.8xlarge,spot,NA,1.155859,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270961 +AWS,ap-northeast-1,r6in.large,on_demand,NA,0.21177,USD,AWS Pricing API,2025-11-30T09:02:40.392026 +AWS,ap-northeast-1,r6in.large,reserved_1y,all_upfront,0.15674,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:09.613518 +AWS,ap-northeast-1,r6in.large,reserved_1y,no_upfront,0.15674,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:52.980705 +AWS,ap-northeast-1,r6in.large,reserved_1y,partial_upfront,0.15674,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:35.224631 +AWS,ap-northeast-1,r6in.large,reserved_3y,all_upfront,0.15674,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:08.775821 +AWS,ap-northeast-1,r6in.large,reserved_3y,no_upfront,0.15674,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:57.459346 +AWS,ap-northeast-1,r6in.large,reserved_3y,partial_upfront,0.15674,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:45.925544 +AWS,ap-northeast-1,r6in.large,spot,NA,0.068626,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272347 +AWS,ap-northeast-1,r6in.xlarge,on_demand,NA,0.42354,USD,AWS Pricing API,2025-11-30T09:02:38.066759 +AWS,ap-northeast-1,r6in.xlarge,reserved_1y,all_upfront,0.254115,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:07.314568 +AWS,ap-northeast-1,r6in.xlarge,reserved_1y,no_upfront,0.254115,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:50.670311 +AWS,ap-northeast-1,r6in.xlarge,reserved_1y,partial_upfront,0.254115,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:32.940143 +AWS,ap-northeast-1,r6in.xlarge,reserved_3y,all_upfront,0.169412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:06.525698 +AWS,ap-northeast-1,r6in.xlarge,reserved_3y,no_upfront,0.169412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:55.111667 +AWS,ap-northeast-1,r6in.xlarge,reserved_3y,partial_upfront,0.169412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:43.638018 +AWS,ap-northeast-1,r6in.xlarge,spot,NA,0.164887,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271434 +AWS,ap-northeast-1,r7a.48xlarge,on_demand,NA,17.61984,USD,AWS Pricing API,2025-11-30T09:01:38.393660 +AWS,ap-northeast-1,r7a.48xlarge,reserved_1y,all_upfront,25.020548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:08.289373 +AWS,ap-northeast-1,r7a.48xlarge,reserved_1y,no_upfront,25.020548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:51.064156 +AWS,ap-northeast-1,r7a.48xlarge,reserved_1y,partial_upfront,25.020548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:33.879815 +AWS,ap-northeast-1,r7a.48xlarge,reserved_3y,all_upfront,8.340183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:08.463667 +AWS,ap-northeast-1,r7a.48xlarge,reserved_3y,no_upfront,8.340183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:54.927545 +AWS,ap-northeast-1,r7a.48xlarge,reserved_3y,partial_upfront,8.340183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:44.998515 +AWS,ap-northeast-1,r7a.48xlarge,spot,NA,5.664745,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269076 +AWS,ap-northeast-1,r7g.12xlarge,on_demand,NA,3.1008,USD,AWS Pricing API,2025-11-30T09:02:02.330843 +AWS,ap-northeast-1,r7g.12xlarge,reserved_1y,all_upfront,2.2465,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:31.916276 +AWS,ap-northeast-1,r7g.12xlarge,reserved_1y,no_upfront,2.2465,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:15.055793 +AWS,ap-northeast-1,r7g.12xlarge,reserved_1y,partial_upfront,2.2465,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:57.506855 +AWS,ap-northeast-1,r7g.12xlarge,reserved_3y,all_upfront,2.2465,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:31.693438 +AWS,ap-northeast-1,r7g.12xlarge,reserved_3y,no_upfront,2.2465,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:19.062889 +AWS,ap-northeast-1,r7g.12xlarge,reserved_3y,partial_upfront,2.2465,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:08.530105 +AWS,ap-northeast-1,r7g.12xlarge,spot,NA,1.122013,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269950 +AWS,ap-northeast-1,r7g.16xlarge,on_demand,NA,4.1344,USD,AWS Pricing API,2025-11-30T09:01:47.381425 +AWS,ap-northeast-1,r7g.16xlarge,reserved_1y,all_upfront,2.604583,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:17.215794 +AWS,ap-northeast-1,r7g.16xlarge,reserved_1y,no_upfront,2.604583,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:00.102129 +AWS,ap-northeast-1,r7g.16xlarge,reserved_1y,partial_upfront,2.604583,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:42.813273 +AWS,ap-northeast-1,r7g.16xlarge,reserved_3y,all_upfront,1.736394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:17.215460 +AWS,ap-northeast-1,r7g.16xlarge,reserved_3y,no_upfront,1.736394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:04.061005 +AWS,ap-northeast-1,r7g.16xlarge,reserved_3y,partial_upfront,1.736394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:53.870778 +AWS,ap-northeast-1,r7g.16xlarge,spot,NA,1.504333,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269373 +AWS,ap-northeast-1,r7g.2xlarge,on_demand,NA,0.5168,USD,AWS Pricing API,2025-11-30T09:01:55.533324 +AWS,ap-northeast-1,r7g.2xlarge,reserved_1y,all_upfront,0.319064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:25.329332 +AWS,ap-northeast-1,r7g.2xlarge,reserved_1y,no_upfront,0.319064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:08.342809 +AWS,ap-northeast-1,r7g.2xlarge,reserved_1y,partial_upfront,0.319064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:50.922689 +AWS,ap-northeast-1,r7g.2xlarge,reserved_3y,all_upfront,0.106355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:25.203039 +AWS,ap-northeast-1,r7g.2xlarge,reserved_3y,no_upfront,0.106355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:12.327457 +AWS,ap-northeast-1,r7g.2xlarge,reserved_3y,partial_upfront,0.106355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:01.926950 +AWS,ap-northeast-1,r7g.2xlarge,spot,NA,0.205489,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269657 +AWS,ap-northeast-1,r7g.4xlarge,on_demand,NA,1.0336,USD,AWS Pricing API,2025-11-30T09:01:46.016867 +AWS,ap-northeast-1,r7g.4xlarge,reserved_1y,all_upfront,0.638128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:15.862424 +AWS,ap-northeast-1,r7g.4xlarge,reserved_1y,no_upfront,0.638128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:58.735893 +AWS,ap-northeast-1,r7g.4xlarge,reserved_1y,partial_upfront,0.638128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:41.474428 +AWS,ap-northeast-1,r7g.4xlarge,reserved_3y,all_upfront,0.212709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:15.896900 +AWS,ap-northeast-1,r7g.4xlarge,reserved_3y,no_upfront,0.212709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:02.686954 +AWS,ap-northeast-1,r7g.4xlarge,reserved_3y,partial_upfront,0.212709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:52.533319 +AWS,ap-northeast-1,r7g.4xlarge,spot,NA,0.37684,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269352 +AWS,ap-northeast-1,r7g.8xlarge,on_demand,NA,2.0672,USD,AWS Pricing API,2025-11-30T09:02:18.400275 +AWS,ap-northeast-1,r7g.8xlarge,reserved_1y,all_upfront,1.302342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:47.752377 +AWS,ap-northeast-1,r7g.8xlarge,reserved_1y,no_upfront,1.302342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:31.082037 +AWS,ap-northeast-1,r7g.8xlarge,reserved_1y,partial_upfront,1.302342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:13.350356 +AWS,ap-northeast-1,r7g.8xlarge,reserved_3y,all_upfront,0.868247,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:47.244860 +AWS,ap-northeast-1,r7g.8xlarge,reserved_3y,no_upfront,0.868247,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:35.245779 +AWS,ap-northeast-1,r7g.8xlarge,reserved_3y,partial_upfront,0.868247,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:24.291534 +AWS,ap-northeast-1,r7g.8xlarge,spot,NA,0.837994,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270651 +AWS,ap-northeast-1,r7g.large,on_demand,NA,0.1292,USD,AWS Pricing API,2025-11-30T09:02:12.799776 +AWS,ap-northeast-1,r7g.large,reserved_1y,all_upfront,0.183447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:42.193284 +AWS,ap-northeast-1,r7g.large,reserved_1y,no_upfront,0.183447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:25.491114 +AWS,ap-northeast-1,r7g.large,reserved_1y,partial_upfront,0.183447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:07.819502 +AWS,ap-northeast-1,r7g.large,reserved_3y,all_upfront,0.061149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:41.771648 +AWS,ap-northeast-1,r7g.large,reserved_3y,no_upfront,0.061149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:29.565157 +AWS,ap-northeast-1,r7g.large,reserved_3y,partial_upfront,0.061149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:18.786179 +AWS,ap-northeast-1,r7g.large,spot,NA,0.051838,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270461 +AWS,ap-northeast-1,r7g.xlarge,on_demand,NA,0.2584,USD,AWS Pricing API,2025-11-30T09:02:15.252442 +AWS,ap-northeast-1,r7g.xlarge,reserved_1y,all_upfront,0.159589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:44.629343 +AWS,ap-northeast-1,r7g.xlarge,reserved_1y,no_upfront,0.159589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:27.946269 +AWS,ap-northeast-1,r7g.xlarge,reserved_1y,partial_upfront,0.159589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:10.249233 +AWS,ap-northeast-1,r7g.xlarge,reserved_3y,all_upfront,0.053196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:44.171155 +AWS,ap-northeast-1,r7g.xlarge,reserved_3y,no_upfront,0.053196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:32.056147 +AWS,ap-northeast-1,r7g.xlarge,reserved_3y,partial_upfront,0.053196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:21.197610 +AWS,ap-northeast-1,r7g.xlarge,spot,NA,0.102602,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270547 +AWS,ap-northeast-1,r7gd.12xlarge,on_demand,NA,3.9463,USD,AWS Pricing API,2025-11-30T09:02:37.111888 +AWS,ap-northeast-1,r7gd.12xlarge,reserved_1y,all_upfront,5.666553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:06.365938 +AWS,ap-northeast-1,r7gd.12xlarge,reserved_1y,no_upfront,5.666553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:49.709262 +AWS,ap-northeast-1,r7gd.12xlarge,reserved_1y,partial_upfront,5.666553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:32.006923 +AWS,ap-northeast-1,r7gd.12xlarge,reserved_3y,all_upfront,1.888851,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:05.591173 +AWS,ap-northeast-1,r7gd.12xlarge,reserved_3y,no_upfront,1.888851,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:54.152664 +AWS,ap-northeast-1,r7gd.12xlarge,reserved_3y,partial_upfront,1.888851,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:42.706820 +AWS,ap-northeast-1,r7gd.12xlarge,spot,NA,1.305329,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272274 +AWS,ap-northeast-1,r7gd.16xlarge,on_demand,NA,5.2618,USD,AWS Pricing API,2025-11-30T09:02:32.489391 +AWS,ap-northeast-1,r7gd.16xlarge,reserved_1y,all_upfront,3.8653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:01.754588 +AWS,ap-northeast-1,r7gd.16xlarge,reserved_1y,no_upfront,3.8653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:45.075167 +AWS,ap-northeast-1,r7gd.16xlarge,reserved_1y,partial_upfront,3.8653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:27.440881 +AWS,ap-northeast-1,r7gd.16xlarge,reserved_3y,all_upfront,3.8653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:01.020804 +AWS,ap-northeast-1,r7gd.16xlarge,reserved_3y,no_upfront,3.8653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:49.462268 +AWS,ap-northeast-1,r7gd.16xlarge,reserved_3y,partial_upfront,3.8653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:38.141110 +AWS,ap-northeast-1,r7gd.16xlarge,spot,NA,1.744627,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271225 +AWS,ap-northeast-1,r7gd.2xlarge,on_demand,NA,0.6577,USD,AWS Pricing API,2025-11-30T09:02:01.186957 +AWS,ap-northeast-1,r7gd.2xlarge,reserved_1y,all_upfront,0.450913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:30.844581 +AWS,ap-northeast-1,r7gd.2xlarge,reserved_1y,no_upfront,0.450913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:13.950627 +AWS,ap-northeast-1,r7gd.2xlarge,reserved_1y,partial_upfront,0.450913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:56.407331 +AWS,ap-northeast-1,r7gd.2xlarge,reserved_3y,all_upfront,0.150304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:30.642174 +AWS,ap-northeast-1,r7gd.2xlarge,reserved_3y,no_upfront,0.150304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:17.969611 +AWS,ap-northeast-1,r7gd.2xlarge,reserved_3y,partial_upfront,0.150304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:07.448126 +AWS,ap-northeast-1,r7gd.2xlarge,spot,NA,0.255556,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269945 +AWS,ap-northeast-1,r7gd.4xlarge,on_demand,NA,1.3154,USD,AWS Pricing API,2025-11-30T09:02:21.820655 +AWS,ap-northeast-1,r7gd.4xlarge,reserved_1y,all_upfront,0.9663,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:51.140467 +AWS,ap-northeast-1,r7gd.4xlarge,reserved_1y,no_upfront,0.9663,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:34.479332 +AWS,ap-northeast-1,r7gd.4xlarge,reserved_1y,partial_upfront,0.9663,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:16.849679 +AWS,ap-northeast-1,r7gd.4xlarge,reserved_3y,all_upfront,0.9663,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:50.570946 +AWS,ap-northeast-1,r7gd.4xlarge,reserved_3y,no_upfront,0.9663,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:38.687714 +AWS,ap-northeast-1,r7gd.4xlarge,reserved_3y,partial_upfront,0.9663,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:27.653427 +AWS,ap-northeast-1,r7gd.4xlarge,spot,NA,0.506352,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270815 +AWS,ap-northeast-1,r7gd.8xlarge,on_demand,NA,2.6309,USD,AWS Pricing API,2025-11-30T09:02:15.803810 +AWS,ap-northeast-1,r7gd.8xlarge,reserved_1y,all_upfront,1.546918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:45.172988 +AWS,ap-northeast-1,r7gd.8xlarge,reserved_1y,no_upfront,1.546918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:28.487836 +AWS,ap-northeast-1,r7gd.8xlarge,reserved_1y,partial_upfront,1.546918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:10.784194 +AWS,ap-northeast-1,r7gd.8xlarge,reserved_3y,all_upfront,0.515639,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:44.709610 +AWS,ap-northeast-1,r7gd.8xlarge,reserved_3y,no_upfront,0.515639,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:32.603953 +AWS,ap-northeast-1,r7gd.8xlarge,reserved_3y,partial_upfront,0.515639,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:21.737248 +AWS,ap-northeast-1,r7gd.8xlarge,spot,NA,1.230072,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270579 +AWS,ap-northeast-1,r7gd.large,on_demand,NA,0.1644,USD,AWS Pricing API,2025-11-30T09:01:39.755455 +AWS,ap-northeast-1,r7gd.large,reserved_1y,all_upfront,0.098615,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:09.641825 +AWS,ap-northeast-1,r7gd.large,reserved_1y,no_upfront,0.098615,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:52.425133 +AWS,ap-northeast-1,r7gd.large,reserved_1y,partial_upfront,0.098615,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:35.289176 +AWS,ap-northeast-1,r7gd.large,reserved_3y,all_upfront,0.065738,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:09.793621 +AWS,ap-northeast-1,r7gd.large,reserved_3y,no_upfront,0.065738,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:56.319683 +AWS,ap-northeast-1,r7gd.large,reserved_3y,partial_upfront,0.065738,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:46.356306 +AWS,ap-northeast-1,r7gd.large,spot,NA,0.05791,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269186 +AWS,ap-northeast-1,r7gd.xlarge,on_demand,NA,0.3289,USD,AWS Pricing API,2025-11-30T09:01:49.279501 +AWS,ap-northeast-1,r7gd.xlarge,reserved_1y,all_upfront,0.193379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:19.109054 +AWS,ap-northeast-1,r7gd.xlarge,reserved_1y,no_upfront,0.193379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:02.039816 +AWS,ap-northeast-1,r7gd.xlarge,reserved_1y,partial_upfront,0.193379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:44.706827 +AWS,ap-northeast-1,r7gd.xlarge,reserved_3y,all_upfront,0.06446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:19.057795 +AWS,ap-northeast-1,r7gd.xlarge,reserved_3y,no_upfront,0.06446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:05.994610 +AWS,ap-northeast-1,r7gd.xlarge,reserved_3y,partial_upfront,0.06446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:55.761241 +AWS,ap-northeast-1,r7gd.xlarge,spot,NA,0.132517,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269443 +AWS,ap-northeast-1,r7i.12xlarge,on_demand,NA,3.8304,USD,AWS Pricing API,2025-11-30T09:02:24.861880 +AWS,ap-northeast-1,r7i.12xlarge,reserved_1y,all_upfront,5.439269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:54.099950 +AWS,ap-northeast-1,r7i.12xlarge,reserved_1y,no_upfront,5.439269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:37.491751 +AWS,ap-northeast-1,r7i.12xlarge,reserved_1y,partial_upfront,5.439269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:19.817971 +AWS,ap-northeast-1,r7i.12xlarge,reserved_3y,all_upfront,1.81309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:53.586413 +AWS,ap-northeast-1,r7i.12xlarge,reserved_3y,no_upfront,1.81309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:41.723083 +AWS,ap-northeast-1,r7i.12xlarge,reserved_3y,partial_upfront,1.81309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:30.605954 +AWS,ap-northeast-1,r7i.12xlarge,spot,NA,1.446251,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270984 +AWS,ap-northeast-1,r7i.16xlarge,on_demand,NA,5.1072,USD,AWS Pricing API,2025-11-30T09:02:22.933752 +AWS,ap-northeast-1,r7i.16xlarge,reserved_1y,all_upfront,3.37841,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:52.218190 +AWS,ap-northeast-1,r7i.16xlarge,reserved_1y,no_upfront,3.37841,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:35.572871 +AWS,ap-northeast-1,r7i.16xlarge,reserved_1y,partial_upfront,3.37841,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:17.933124 +AWS,ap-northeast-1,r7i.16xlarge,reserved_3y,all_upfront,3.37841,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:51.648088 +AWS,ap-northeast-1,r7i.16xlarge,reserved_3y,no_upfront,3.37841,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:39.787792 +AWS,ap-northeast-1,r7i.16xlarge,reserved_3y,partial_upfront,3.37841,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:28.728868 +AWS,ap-northeast-1,r7i.16xlarge,spot,NA,2.080982,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270859 +AWS,ap-northeast-1,r7i.24xlarge,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T09:02:19.640240 +AWS,ap-northeast-1,r7i.24xlarge,reserved_1y,all_upfront,6.435026,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:48.976226 +AWS,ap-northeast-1,r7i.24xlarge,reserved_1y,no_upfront,6.435026,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:32.297465 +AWS,ap-northeast-1,r7i.24xlarge,reserved_1y,partial_upfront,6.435026,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:14.585321 +AWS,ap-northeast-1,r7i.24xlarge,reserved_3y,all_upfront,3.217522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:48.449250 +AWS,ap-northeast-1,r7i.24xlarge,reserved_3y,no_upfront,3.217522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:36.481153 +AWS,ap-northeast-1,r7i.24xlarge,reserved_3y,partial_upfront,3.217522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:25.506526 +AWS,ap-northeast-1,r7i.24xlarge,spot,NA,2.51464,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270717 +AWS,ap-northeast-1,r7i.2xlarge,on_demand,NA,0.6384,USD,AWS Pricing API,2025-11-30T09:02:21.956495 +AWS,ap-northeast-1,r7i.2xlarge,reserved_1y,all_upfront,0.394178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:51.274924 +AWS,ap-northeast-1,r7i.2xlarge,reserved_1y,no_upfront,0.394178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:34.612365 +AWS,ap-northeast-1,r7i.2xlarge,reserved_1y,partial_upfront,0.394178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:16.984373 +AWS,ap-northeast-1,r7i.2xlarge,reserved_3y,all_upfront,0.131393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:50.701142 +AWS,ap-northeast-1,r7i.2xlarge,reserved_3y,no_upfront,0.131393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:38.825296 +AWS,ap-northeast-1,r7i.2xlarge,reserved_3y,partial_upfront,0.131393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:27.787823 +AWS,ap-northeast-1,r7i.2xlarge,spot,NA,0.273371,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270865 +AWS,ap-northeast-1,r7i.48xlarge,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T09:02:42.556570 +AWS,ap-northeast-1,r7i.48xlarge,reserved_1y,all_upfront,9.459589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:11.790844 +AWS,ap-northeast-1,r7i.48xlarge,reserved_1y,no_upfront,9.459589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:55.168167 +AWS,ap-northeast-1,r7i.48xlarge,reserved_1y,partial_upfront,9.459589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:37.385993 +AWS,ap-northeast-1,r7i.48xlarge,reserved_3y,all_upfront,3.153196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:10.884646 +AWS,ap-northeast-1,r7i.48xlarge,reserved_3y,no_upfront,3.153196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:59.648846 +AWS,ap-northeast-1,r7i.48xlarge,reserved_3y,partial_upfront,3.153196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:48.075183 +AWS,ap-northeast-1,r7i.48xlarge,spot,NA,4.821782,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272536 +AWS,ap-northeast-1,r7i.4xlarge,on_demand,NA,1.2768,USD,AWS Pricing API,2025-11-30T09:02:19.503324 +AWS,ap-northeast-1,r7i.4xlarge,reserved_1y,all_upfront,1.512215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:48.833975 +AWS,ap-northeast-1,r7i.4xlarge,reserved_1y,no_upfront,1.512215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:32.162836 +AWS,ap-northeast-1,r7i.4xlarge,reserved_1y,partial_upfront,1.512215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:14.439734 +AWS,ap-northeast-1,r7i.4xlarge,reserved_3y,all_upfront,0.504072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:48.315055 +AWS,ap-northeast-1,r7i.4xlarge,reserved_3y,no_upfront,0.504072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:36.344784 +AWS,ap-northeast-1,r7i.4xlarge,reserved_3y,partial_upfront,0.504072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:25.373091 +AWS,ap-northeast-1,r7i.4xlarge,spot,NA,0.547076,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270742 +AWS,ap-northeast-1,r7i.8xlarge,on_demand,NA,2.5536,USD,AWS Pricing API,2025-11-30T09:01:35.814896 +AWS,ap-northeast-1,r7i.8xlarge,reserved_1y,all_upfront,3.626142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:05.648512 +AWS,ap-northeast-1,r7i.8xlarge,reserved_1y,no_upfront,3.626142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:48.489963 +AWS,ap-northeast-1,r7i.8xlarge,reserved_1y,partial_upfront,3.626142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:31.297564 +AWS,ap-northeast-1,r7i.8xlarge,reserved_3y,all_upfront,1.208714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:05.944438 +AWS,ap-northeast-1,r7i.8xlarge,reserved_3y,no_upfront,1.208714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:52.313730 +AWS,ap-northeast-1,r7i.8xlarge,reserved_3y,partial_upfront,1.208714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:42.442332 +AWS,ap-northeast-1,r7i.8xlarge,spot,NA,0.983057,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268973 +AWS,ap-northeast-1,r7i.large,on_demand,NA,0.1596,USD,AWS Pricing API,2025-11-30T09:01:50.094179 +AWS,ap-northeast-1,r7i.large,reserved_1y,all_upfront,0.098516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:19.922793 +AWS,ap-northeast-1,r7i.large,reserved_1y,no_upfront,0.098516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:02.874478 +AWS,ap-northeast-1,r7i.large,reserved_1y,partial_upfront,0.098516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:45.509887 +AWS,ap-northeast-1,r7i.large,reserved_3y,all_upfront,0.032839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:19.845621 +AWS,ap-northeast-1,r7i.large,reserved_3y,no_upfront,0.032839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:06.822911 +AWS,ap-northeast-1,r7i.large,reserved_3y,partial_upfront,0.032839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:56.561427 +AWS,ap-northeast-1,r7i.large,spot,NA,0.060665,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269439 +AWS,ap-northeast-1,r7i.metal-24xl,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T09:02:06.476831 +AWS,ap-northeast-1,r7i.metal-24xl,reserved_1y,all_upfront,5.180251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:35.985303 +AWS,ap-northeast-1,r7i.metal-24xl,reserved_1y,no_upfront,5.180251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:19.215052 +AWS,ap-northeast-1,r7i.metal-24xl,reserved_1y,partial_upfront,5.180251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:01.571345 +AWS,ap-northeast-1,r7i.metal-24xl,reserved_3y,all_upfront,1.72675,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:35.688004 +AWS,ap-northeast-1,r7i.metal-24xl,reserved_3y,no_upfront,1.72675,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:23.224526 +AWS,ap-northeast-1,r7i.metal-24xl,reserved_3y,partial_upfront,1.72675,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:12.565452 +AWS,ap-northeast-1,r7i.metal-24xl,spot,NA,2.474915,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270129 +AWS,ap-northeast-1,r7i.metal-48xl,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T09:02:26.363965 +AWS,ap-northeast-1,r7i.metal-48xl,reserved_1y,all_upfront,11.1005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:55.578535 +AWS,ap-northeast-1,r7i.metal-48xl,reserved_1y,no_upfront,11.1005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:38.981165 +AWS,ap-northeast-1,r7i.metal-48xl,reserved_1y,partial_upfront,11.1005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:21.395272 +AWS,ap-northeast-1,r7i.metal-48xl,reserved_3y,all_upfront,11.1005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:55.045618 +AWS,ap-northeast-1,r7i.metal-48xl,reserved_3y,no_upfront,11.1005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:43.254709 +AWS,ap-northeast-1,r7i.metal-48xl,reserved_3y,partial_upfront,11.1005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:32.093436 +AWS,ap-northeast-1,r7i.metal-48xl,spot,NA,5.009177,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271028 +AWS,ap-northeast-1,r7i.xlarge,on_demand,NA,0.3192,USD,AWS Pricing API,2025-11-30T09:02:01.745661 +AWS,ap-northeast-1,r7i.xlarge,reserved_1y,all_upfront,0.215868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:31.380735 +AWS,ap-northeast-1,r7i.xlarge,reserved_1y,no_upfront,0.215868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:14.505453 +AWS,ap-northeast-1,r7i.xlarge,reserved_1y,partial_upfront,0.215868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:56.956871 +AWS,ap-northeast-1,r7i.xlarge,reserved_3y,all_upfront,0.071956,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:31.166529 +AWS,ap-northeast-1,r7i.xlarge,reserved_3y,no_upfront,0.071956,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:18.518743 +AWS,ap-northeast-1,r7i.xlarge,reserved_3y,partial_upfront,0.071956,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:07.988832 +AWS,ap-northeast-1,r7i.xlarge,spot,NA,0.143551,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269962 +AWS,ap-northeast-1,r7iz.12xlarge,on_demand,NA,5.448,USD,AWS Pricing API,2025-11-30T09:02:17.453046 +AWS,ap-northeast-1,r7iz.12xlarge,reserved_1y,all_upfront,4.358436,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:46.801394 +AWS,ap-northeast-1,r7iz.12xlarge,reserved_1y,no_upfront,4.358436,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:30.118800 +AWS,ap-northeast-1,r7iz.12xlarge,reserved_1y,partial_upfront,4.358436,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:12.398669 +AWS,ap-northeast-1,r7iz.12xlarge,reserved_3y,all_upfront,2.179212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:46.299628 +AWS,ap-northeast-1,r7iz.12xlarge,reserved_3y,no_upfront,2.179212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:34.268679 +AWS,ap-northeast-1,r7iz.12xlarge,reserved_3y,partial_upfront,2.179212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:23.345193 +AWS,ap-northeast-1,r7iz.12xlarge,spot,NA,2.126485,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270603 +AWS,ap-northeast-1,r7iz.16xlarge,on_demand,NA,7.264,USD,AWS Pricing API,2025-11-30T09:02:42.152027 +AWS,ap-northeast-1,r7iz.16xlarge,reserved_1y,all_upfront,4.271233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:11.384212 +AWS,ap-northeast-1,r7iz.16xlarge,reserved_1y,no_upfront,4.271233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:54.758145 +AWS,ap-northeast-1,r7iz.16xlarge,reserved_1y,partial_upfront,4.271233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:36.984931 +AWS,ap-northeast-1,r7iz.16xlarge,reserved_3y,all_upfront,1.423744,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:10.486949 +AWS,ap-northeast-1,r7iz.16xlarge,reserved_3y,no_upfront,1.423744,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:59.242953 +AWS,ap-northeast-1,r7iz.16xlarge,reserved_3y,partial_upfront,1.423744,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:47.674788 +AWS,ap-northeast-1,r7iz.16xlarge,spot,NA,2.423756,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272464 +AWS,ap-northeast-1,r7iz.2xlarge,on_demand,NA,0.908,USD,AWS Pricing API,2025-11-30T09:02:22.093459 +AWS,ap-northeast-1,r7iz.2xlarge,reserved_1y,all_upfront,0.66643,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:51.409348 +AWS,ap-northeast-1,r7iz.2xlarge,reserved_1y,no_upfront,0.66643,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:34.748114 +AWS,ap-northeast-1,r7iz.2xlarge,reserved_1y,partial_upfront,0.66643,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:17.118107 +AWS,ap-northeast-1,r7iz.2xlarge,reserved_3y,all_upfront,0.66643,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:50.843762 +AWS,ap-northeast-1,r7iz.2xlarge,reserved_3y,no_upfront,0.66643,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:38.964216 +AWS,ap-northeast-1,r7iz.2xlarge,reserved_3y,partial_upfront,0.66643,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:27.923486 +AWS,ap-northeast-1,r7iz.2xlarge,spot,NA,0.35969,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270840 +AWS,ap-northeast-1,r7iz.32xlarge,on_demand,NA,14.528,USD,AWS Pricing API,2025-11-30T09:02:40.254112 +AWS,ap-northeast-1,r7iz.32xlarge,reserved_1y,all_upfront,20.772717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:09.478901 +AWS,ap-northeast-1,r7iz.32xlarge,reserved_1y,no_upfront,20.772717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:52.844397 +AWS,ap-northeast-1,r7iz.32xlarge,reserved_1y,partial_upfront,20.772717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:35.086574 +AWS,ap-northeast-1,r7iz.32xlarge,reserved_3y,all_upfront,6.924239,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:08.639231 +AWS,ap-northeast-1,r7iz.32xlarge,reserved_3y,no_upfront,6.924239,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:57.314340 +AWS,ap-northeast-1,r7iz.32xlarge,reserved_3y,partial_upfront,6.924239,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:45.792898 +AWS,ap-northeast-1,r7iz.32xlarge,spot,NA,5.378198,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272341 +AWS,ap-northeast-1,r7iz.4xlarge,on_demand,NA,1.816,USD,AWS Pricing API,2025-11-30T09:02:38.342184 +AWS,ap-northeast-1,r7iz.4xlarge,reserved_1y,all_upfront,1.067808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:07.585136 +AWS,ap-northeast-1,r7iz.4xlarge,reserved_1y,no_upfront,1.067808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:50.940565 +AWS,ap-northeast-1,r7iz.4xlarge,reserved_1y,partial_upfront,1.067808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:33.209181 +AWS,ap-northeast-1,r7iz.4xlarge,reserved_3y,all_upfront,0.355936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:06.791701 +AWS,ap-northeast-1,r7iz.4xlarge,reserved_3y,no_upfront,0.355936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:55.386285 +AWS,ap-northeast-1,r7iz.4xlarge,reserved_3y,partial_upfront,0.355936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:43.917415 +AWS,ap-northeast-1,r7iz.4xlarge,spot,NA,0.710155,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.272292 +AWS,ap-northeast-1,r7iz.8xlarge,on_demand,NA,3.632,USD,AWS Pricing API,2025-11-30T09:01:40.840448 +AWS,ap-northeast-1,r7iz.8xlarge,reserved_1y,all_upfront,2.66571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:10.738479 +AWS,ap-northeast-1,r7iz.8xlarge,reserved_1y,no_upfront,2.66571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:53.510310 +AWS,ap-northeast-1,r7iz.8xlarge,reserved_1y,partial_upfront,2.66571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:36.357560 +AWS,ap-northeast-1,r7iz.8xlarge,reserved_3y,all_upfront,2.66571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:10.855757 +AWS,ap-northeast-1,r7iz.8xlarge,reserved_3y,no_upfront,2.66571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:57.413348 +AWS,ap-northeast-1,r7iz.8xlarge,reserved_3y,partial_upfront,2.66571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:47.420796 +AWS,ap-northeast-1,r7iz.8xlarge,spot,NA,1.409265,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269217 +AWS,ap-northeast-1,r7iz.xlarge,on_demand,NA,0.454,USD,AWS Pricing API,2025-11-30T09:02:27.026662 +AWS,ap-northeast-1,r7iz.xlarge,reserved_1y,all_upfront,0.272387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:56.274977 +AWS,ap-northeast-1,r7iz.xlarge,reserved_1y,no_upfront,0.272387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:39.666322 +AWS,ap-northeast-1,r7iz.xlarge,reserved_1y,partial_upfront,0.272387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:22.064950 +AWS,ap-northeast-1,r7iz.xlarge,reserved_3y,all_upfront,0.181596,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:55.711545 +AWS,ap-northeast-1,r7iz.xlarge,reserved_3y,no_upfront,0.181596,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:43.939290 +AWS,ap-northeast-1,r7iz.xlarge,reserved_3y,partial_upfront,0.181596,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:32.760963 +AWS,ap-northeast-1,r7iz.xlarge,spot,NA,0.177294,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271034 +AWS,ap-northeast-1,r8g.12xlarge,on_demand,NA,3.41088,USD,AWS Pricing API,2025-11-30T09:02:08.661125 +AWS,ap-northeast-1,r8g.12xlarge,reserved_1y,all_upfront,2.47118,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:38.135402 +AWS,ap-northeast-1,r8g.12xlarge,reserved_1y,no_upfront,2.47118,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:21.394147 +AWS,ap-northeast-1,r8g.12xlarge,reserved_1y,partial_upfront,2.47118,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:03.769340 +AWS,ap-northeast-1,r8g.12xlarge,reserved_3y,all_upfront,2.47118,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:37.801735 +AWS,ap-northeast-1,r8g.12xlarge,reserved_3y,no_upfront,2.47118,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:25.406372 +AWS,ap-northeast-1,r8g.12xlarge,reserved_3y,partial_upfront,2.47118,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:14.710418 +AWS,ap-northeast-1,r8g.12xlarge,spot,NA,1.109486,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270281 +AWS,ap-northeast-1,r8g.16xlarge,on_demand,NA,4.54784,USD,AWS Pricing API,2025-11-30T09:02:31.946509 +AWS,ap-northeast-1,r8g.16xlarge,reserved_1y,all_upfront,2.807877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:01.193153 +AWS,ap-northeast-1,r8g.16xlarge,reserved_1y,no_upfront,2.807877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:44.535328 +AWS,ap-northeast-1,r8g.16xlarge,reserved_1y,partial_upfront,2.807877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:26.904770 +AWS,ap-northeast-1,r8g.16xlarge,reserved_3y,all_upfront,0.935959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:00.476034 +AWS,ap-northeast-1,r8g.16xlarge,reserved_3y,no_upfront,0.935959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:48.902864 +AWS,ap-northeast-1,r8g.16xlarge,reserved_3y,partial_upfront,0.935959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:37.601639 +AWS,ap-northeast-1,r8g.16xlarge,spot,NA,1.499,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271237 +AWS,ap-northeast-1,r8g.24xlarge,on_demand,NA,6.82176,USD,AWS Pricing API,2025-11-30T09:01:59.769118 +AWS,ap-northeast-1,r8g.24xlarge,reserved_1y,all_upfront,4.211758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:29.503165 +AWS,ap-northeast-1,r8g.24xlarge,reserved_1y,no_upfront,4.211758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:12.575469 +AWS,ap-northeast-1,r8g.24xlarge,reserved_1y,partial_upfront,4.211758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:55.067724 +AWS,ap-northeast-1,r8g.24xlarge,reserved_3y,all_upfront,1.403919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:29.327953 +AWS,ap-northeast-1,r8g.24xlarge,reserved_3y,no_upfront,1.403919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:16.589573 +AWS,ap-northeast-1,r8g.24xlarge,reserved_3y,partial_upfront,1.403919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:06.107322 +AWS,ap-northeast-1,r8g.24xlarge,spot,NA,2.20025,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269900 +AWS,ap-northeast-1,r8g.2xlarge,on_demand,NA,0.56848,USD,AWS Pricing API,2025-11-30T09:02:12.526328 +AWS,ap-northeast-1,r8g.2xlarge,reserved_1y,all_upfront,0.41186,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:41.926442 +AWS,ap-northeast-1,r8g.2xlarge,reserved_1y,no_upfront,0.41186,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:25.221590 +AWS,ap-northeast-1,r8g.2xlarge,reserved_1y,partial_upfront,0.41186,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:07.552740 +AWS,ap-northeast-1,r8g.2xlarge,reserved_3y,all_upfront,0.41186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:41.508096 +AWS,ap-northeast-1,r8g.2xlarge,reserved_3y,no_upfront,0.41186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:29.293496 +AWS,ap-northeast-1,r8g.2xlarge,reserved_3y,partial_upfront,0.41186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:18.503511 +AWS,ap-northeast-1,r8g.2xlarge,spot,NA,0.206824,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270467 +AWS,ap-northeast-1,r8g.48xlarge,on_demand,NA,13.64352,USD,AWS Pricing API,2025-11-30T09:01:58.278667 +AWS,ap-northeast-1,r8g.48xlarge,reserved_1y,all_upfront,8.423516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:28.022879 +AWS,ap-northeast-1,r8g.48xlarge,reserved_1y,no_upfront,8.423516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:11.062795 +AWS,ap-northeast-1,r8g.48xlarge,reserved_1y,partial_upfront,8.423516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:53.588347 +AWS,ap-northeast-1,r8g.48xlarge,reserved_3y,all_upfront,2.807839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:27.881214 +AWS,ap-northeast-1,r8g.48xlarge,reserved_3y,no_upfront,2.807839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:15.072990 +AWS,ap-northeast-1,r8g.48xlarge,reserved_3y,partial_upfront,2.807839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:04.620285 +AWS,ap-northeast-1,r8g.48xlarge,spot,NA,4.418644,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269764 +AWS,ap-northeast-1,r8g.4xlarge,on_demand,NA,1.13696,USD,AWS Pricing API,2025-11-30T09:02:17.031512 +AWS,ap-northeast-1,r8g.4xlarge,reserved_1y,all_upfront,0.716245,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:46.404101 +AWS,ap-northeast-1,r8g.4xlarge,reserved_1y,no_upfront,0.716245,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:29.714643 +AWS,ap-northeast-1,r8g.4xlarge,reserved_1y,partial_upfront,0.716245,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:11.996048 +AWS,ap-northeast-1,r8g.4xlarge,reserved_3y,all_upfront,0.477508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:45.905661 +AWS,ap-northeast-1,r8g.4xlarge,reserved_3y,no_upfront,0.477508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:33.840699 +AWS,ap-northeast-1,r8g.4xlarge,reserved_3y,partial_upfront,0.477508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:22.946841 +AWS,ap-northeast-1,r8g.4xlarge,spot,NA,0.401562,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270585 +AWS,ap-northeast-1,r8g.8xlarge,on_demand,NA,2.27392,USD,AWS Pricing API,2025-11-30T09:01:37.310103 +AWS,ap-northeast-1,r8g.8xlarge,reserved_1y,all_upfront,1.432604,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:07.200505 +AWS,ap-northeast-1,r8g.8xlarge,reserved_1y,no_upfront,1.432604,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:49.982819 +AWS,ap-northeast-1,r8g.8xlarge,reserved_1y,partial_upfront,1.432604,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:32.783384 +AWS,ap-northeast-1,r8g.8xlarge,reserved_3y,all_upfront,0.955055,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:07.399973 +AWS,ap-northeast-1,r8g.8xlarge,reserved_3y,no_upfront,0.955055,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:53.822548 +AWS,ap-northeast-1,r8g.8xlarge,reserved_3y,partial_upfront,0.955055,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:43.913616 +AWS,ap-northeast-1,r8g.8xlarge,spot,NA,0.843236,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269051 +AWS,ap-northeast-1,r8g.large,on_demand,NA,0.14212,USD,AWS Pricing API,2025-11-30T09:02:15.523070 +AWS,ap-northeast-1,r8g.large,reserved_1y,all_upfront,0.09401,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:44.897523 +AWS,ap-northeast-1,r8g.large,reserved_1y,no_upfront,0.09401,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:28.217007 +AWS,ap-northeast-1,r8g.large,reserved_1y,partial_upfront,0.09401,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:10.517481 +AWS,ap-northeast-1,r8g.large,reserved_3y,all_upfront,0.09401,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:44.443312 +AWS,ap-northeast-1,r8g.large,reserved_3y,no_upfront,0.09401,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:32.327802 +AWS,ap-northeast-1,r8g.large,reserved_3y,partial_upfront,0.09401,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:21.466159 +AWS,ap-northeast-1,r8g.large,spot,NA,0.053011,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270553 +AWS,ap-northeast-1,r8g.xlarge,on_demand,NA,0.28424,USD,AWS Pricing API,2025-11-30T09:01:57.868212 +AWS,ap-northeast-1,r8g.xlarge,reserved_1y,all_upfront,0.274576,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:27.617537 +AWS,ap-northeast-1,r8g.xlarge,reserved_1y,no_upfront,0.274576,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:10.653781 +AWS,ap-northeast-1,r8g.xlarge,reserved_1y,partial_upfront,0.274576,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:53.188703 +AWS,ap-northeast-1,r8g.xlarge,reserved_3y,all_upfront,0.137285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:27.481160 +AWS,ap-northeast-1,r8g.xlarge,reserved_3y,no_upfront,0.137285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:21:14.657894 +AWS,ap-northeast-1,r8g.xlarge,reserved_3y,partial_upfront,0.137285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:04.218302 +AWS,ap-northeast-1,r8g.xlarge,spot,NA,0.104503,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269758 +AWS,ap-northeast-1,r8gd.12xlarge,on_demand,NA,4.26192,USD,AWS Pricing API,2025-11-30T09:02:16.347455 +AWS,ap-northeast-1,r8gd.12xlarge,spot,NA,1.545482,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270597 +AWS,ap-northeast-1,r8gd.16xlarge,on_demand,NA,5.68256,USD,AWS Pricing API,2025-11-30T09:02:04.525623 +AWS,ap-northeast-1,r8gd.16xlarge,spot,NA,1.939099,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.270110 +AWS,ap-northeast-1,r8gd.24xlarge,on_demand,NA,8.52384,USD,AWS Pricing API,2025-11-30T09:01:51.716238 +AWS,ap-northeast-1,r8gd.24xlarge,spot,NA,2.902878,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269540 +AWS,ap-northeast-1,r8gd.2xlarge,on_demand,NA,0.71032,USD,AWS Pricing API,2025-11-30T09:01:57.323061 +AWS,ap-northeast-1,r8gd.2xlarge,spot,NA,0.246538,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269803 +AWS,ap-northeast-1,r8gd.48xlarge,on_demand,NA,17.04768,USD,AWS Pricing API,2025-11-30T09:02:31.680892 +AWS,ap-northeast-1,r8gd.48xlarge,spot,NA,5.247647,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271231 +AWS,ap-northeast-1,r8gd.4xlarge,on_demand,NA,1.42064,USD,AWS Pricing API,2025-11-30T09:02:26.089364 +AWS,ap-northeast-1,r8gd.4xlarge,spot,NA,0.536214,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.271011 +AWS,ap-northeast-1,r8gd.8xlarge,on_demand,NA,2.84128,USD,AWS Pricing API,2025-11-30T09:01:53.342259 +AWS,ap-northeast-1,r8gd.8xlarge,spot,NA,1.491316,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269604 +AWS,ap-northeast-1,r8gd.large,on_demand,NA,0.17758,USD,AWS Pricing API,2025-11-30T09:01:46.287385 +AWS,ap-northeast-1,r8gd.large,spot,NA,0.058102,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269398 +AWS,ap-northeast-1,r8gd.xlarge,on_demand,NA,0.35516,USD,AWS Pricing API,2025-11-30T09:01:47.110348 +AWS,ap-northeast-1,r8gd.xlarge,spot,NA,0.124098,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.269381 +AWS,ap-northeast-1,z1d.12xlarge,on_demand,NA,5.448,USD,AWS Pricing API,2025-11-30T09:01:27.025008 +AWS,ap-northeast-1,z1d.12xlarge,reserved_1y,all_upfront,4.358836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:56.944078 +AWS,ap-northeast-1,z1d.12xlarge,reserved_1y,no_upfront,4.358836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:39.650758 +AWS,ap-northeast-1,z1d.12xlarge,reserved_1y,partial_upfront,4.358836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:22.658728 +AWS,ap-northeast-1,z1d.12xlarge,reserved_3y,all_upfront,2.179612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:57.421346 +AWS,ap-northeast-1,z1d.12xlarge,reserved_3y,no_upfront,2.179612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:43.459963 +AWS,ap-northeast-1,z1d.12xlarge,reserved_3y,partial_upfront,2.179612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:33.827133 +AWS,ap-northeast-1,z1d.12xlarge,spot,NA,1.719808,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268600 +AWS,ap-northeast-1,z1d.2xlarge,on_demand,NA,0.908,USD,AWS Pricing API,2025-11-30T09:01:30.461746 +AWS,ap-northeast-1,z1d.2xlarge,reserved_1y,all_upfront,0.634352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:00.334041 +AWS,ap-northeast-1,z1d.2xlarge,reserved_1y,no_upfront,0.634352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:43.115762 +AWS,ap-northeast-1,z1d.2xlarge,reserved_1y,partial_upfront,0.634352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:26.050262 +AWS,ap-northeast-1,z1d.2xlarge,reserved_3y,all_upfront,0.422784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:00.749274 +AWS,ap-northeast-1,z1d.2xlarge,reserved_3y,no_upfront,0.422784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:46.945196 +AWS,ap-northeast-1,z1d.2xlarge,reserved_3y,partial_upfront,0.422784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:37.199018 +AWS,ap-northeast-1,z1d.2xlarge,spot,NA,0.307146,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268755 +AWS,ap-northeast-1,z1d.3xlarge,on_demand,NA,1.362,USD,AWS Pricing API,2025-11-30T09:01:29.367699 +AWS,ap-northeast-1,z1d.3xlarge,reserved_1y,all_upfront,1.089237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:59.254269 +AWS,ap-northeast-1,z1d.3xlarge,reserved_1y,no_upfront,1.089237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:42.005984 +AWS,ap-northeast-1,z1d.3xlarge,reserved_1y,partial_upfront,1.089237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:24.976177 +AWS,ap-northeast-1,z1d.3xlarge,reserved_3y,all_upfront,0.544412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:59.692092 +AWS,ap-northeast-1,z1d.3xlarge,reserved_3y,no_upfront,0.544412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:45.836051 +AWS,ap-northeast-1,z1d.3xlarge,reserved_3y,partial_upfront,0.544412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:36.127624 +AWS,ap-northeast-1,z1d.3xlarge,spot,NA,0.42306,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268688 +AWS,ap-northeast-1,z1d.6xlarge,on_demand,NA,2.724,USD,AWS Pricing API,2025-11-30T09:01:29.503558 +AWS,ap-northeast-1,z1d.6xlarge,reserved_1y,all_upfront,3.894863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:59.389136 +AWS,ap-northeast-1,z1d.6xlarge,reserved_1y,no_upfront,3.894863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:42.152343 +AWS,ap-northeast-1,z1d.6xlarge,reserved_1y,partial_upfront,3.894863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:25.110606 +AWS,ap-northeast-1,z1d.6xlarge,reserved_3y,all_upfront,1.298288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:59.823351 +AWS,ap-northeast-1,z1d.6xlarge,reserved_3y,no_upfront,1.298288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:45.973404 +AWS,ap-northeast-1,z1d.6xlarge,reserved_3y,partial_upfront,1.298288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:36.262012 +AWS,ap-northeast-1,z1d.6xlarge,spot,NA,0.884077,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268658 +AWS,ap-northeast-1,z1d.large,on_demand,NA,0.227,USD,AWS Pricing API,2025-11-30T09:01:29.780660 +AWS,ap-northeast-1,z1d.large,reserved_1y,all_upfront,0.133447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:59.655898 +AWS,ap-northeast-1,z1d.large,reserved_1y,no_upfront,0.133447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:42.427453 +AWS,ap-northeast-1,z1d.large,reserved_1y,partial_upfront,0.133447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:25.380308 +AWS,ap-northeast-1,z1d.large,reserved_3y,all_upfront,0.044482,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:00.084485 +AWS,ap-northeast-1,z1d.large,reserved_3y,no_upfront,0.044482,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:46.246907 +AWS,ap-northeast-1,z1d.large,reserved_3y,partial_upfront,0.044482,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:36.529964 +AWS,ap-northeast-1,z1d.large,spot,NA,0.080996,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268749 +AWS,ap-northeast-1,z1d.xlarge,on_demand,NA,0.454,USD,AWS Pricing API,2025-11-30T09:01:30.734268 +AWS,ap-northeast-1,z1d.xlarge,reserved_1y,all_upfront,0.266895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:59:00.602768 +AWS,ap-northeast-1,z1d.xlarge,reserved_1y,no_upfront,0.266895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:43.390317 +AWS,ap-northeast-1,z1d.xlarge,reserved_1y,partial_upfront,0.266895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:26.320828 +AWS,ap-northeast-1,z1d.xlarge,reserved_3y,all_upfront,0.088965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:04:01.012481 +AWS,ap-northeast-1,z1d.xlarge,reserved_3y,no_upfront,0.088965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:47.234305 +AWS,ap-northeast-1,z1d.xlarge,reserved_3y,partial_upfront,0.088965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:37.469832 +AWS,ap-northeast-1,z1d.xlarge,spot,NA,0.147775,USD,AWS EC2 API (90-day avg),2025-11-30T09:43:17.268766 +AWS,ap-northeast-2,c5.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:58:29.310975 +AWS,ap-northeast-2,c5.12xlarge,reserved_1y,all_upfront,1.801,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:00.767553 +AWS,ap-northeast-2,c5.12xlarge,reserved_1y,no_upfront,1.801,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:41.626830 +AWS,ap-northeast-2,c5.12xlarge,reserved_1y,partial_upfront,1.801,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:27.137994 +AWS,ap-northeast-2,c5.12xlarge,reserved_3y,all_upfront,1.801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:04.665607 +AWS,ap-northeast-2,c5.12xlarge,reserved_3y,no_upfront,1.801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:44.047584 +AWS,ap-northeast-2,c5.12xlarge,reserved_3y,partial_upfront,1.801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:38.822423 +AWS,ap-northeast-2,c5.12xlarge,spot,NA,0.814434,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172527 +AWS,ap-northeast-2,c5.18xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T08:58:37.742662 +AWS,ap-northeast-2,c5.18xlarge,reserved_1y,all_upfront,2.073758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:09.140444 +AWS,ap-northeast-2,c5.18xlarge,reserved_1y,no_upfront,2.073758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:50.158004 +AWS,ap-northeast-2,c5.18xlarge,reserved_1y,partial_upfront,2.073758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:35.520486 +AWS,ap-northeast-2,c5.18xlarge,reserved_3y,all_upfront,1.382586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:12.878968 +AWS,ap-northeast-2,c5.18xlarge,reserved_3y,no_upfront,1.382586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:52.584176 +AWS,ap-northeast-2,c5.18xlarge,reserved_3y,partial_upfront,1.382586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:47.139267 +AWS,ap-northeast-2,c5.18xlarge,spot,NA,1.128672,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172678 +AWS,ap-northeast-2,c5.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:57:42.511892 +AWS,ap-northeast-2,c5.24xlarge,reserved_1y,all_upfront,3.601,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:14.007188 +AWS,ap-northeast-2,c5.24xlarge,reserved_1y,no_upfront,3.601,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:54.543898 +AWS,ap-northeast-2,c5.24xlarge,reserved_1y,partial_upfront,3.601,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:40.567082 +AWS,ap-northeast-2,c5.24xlarge,reserved_3y,all_upfront,3.601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:18.715728 +AWS,ap-northeast-2,c5.24xlarge,reserved_3y,no_upfront,3.601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:56.491758 +AWS,ap-northeast-2,c5.24xlarge,reserved_3y,partial_upfront,3.601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:52.488612 +AWS,ap-northeast-2,c5.24xlarge,spot,NA,1.564862,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171460 +AWS,ap-northeast-2,c5.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:58:22.169018 +AWS,ap-northeast-2,c5.4xlarge,reserved_1y,all_upfront,0.6,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:53.638891 +AWS,ap-northeast-2,c5.4xlarge,reserved_1y,no_upfront,0.6,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:34.363440 +AWS,ap-northeast-2,c5.4xlarge,reserved_1y,partial_upfront,0.6,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:19.962607 +AWS,ap-northeast-2,c5.4xlarge,reserved_3y,all_upfront,0.6,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:57.605167 +AWS,ap-northeast-2,c5.4xlarge,reserved_3y,no_upfront,0.6,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:36.779625 +AWS,ap-northeast-2,c5.4xlarge,reserved_3y,partial_upfront,0.6,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:31.726555 +AWS,ap-northeast-2,c5.4xlarge,spot,NA,0.275403,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172347 +AWS,ap-northeast-2,c5.9xlarge,on_demand,NA,1.728,USD,AWS Pricing API,2025-11-30T08:57:41.844403 +AWS,ap-northeast-2,c5.9xlarge,reserved_1y,all_upfront,1.35,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:13.337953 +AWS,ap-northeast-2,c5.9xlarge,reserved_1y,no_upfront,1.35,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:53.865939 +AWS,ap-northeast-2,c5.9xlarge,reserved_1y,partial_upfront,1.35,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:39.892601 +AWS,ap-northeast-2,c5.9xlarge,reserved_3y,all_upfront,1.35,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:18.056674 +AWS,ap-northeast-2,c5.9xlarge,reserved_3y,no_upfront,1.35,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:55.801561 +AWS,ap-northeast-2,c5.9xlarge,reserved_3y,partial_upfront,1.35,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:51.821293 +AWS,ap-northeast-2,c5.9xlarge,spot,NA,0.583007,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171439 +AWS,ap-northeast-2,c5a.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T08:58:38.279778 +AWS,ap-northeast-2,c5a.12xlarge,reserved_1y,all_upfront,3.155479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:09.697609 +AWS,ap-northeast-2,c5a.12xlarge,reserved_1y,no_upfront,3.155479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:50.709619 +AWS,ap-northeast-2,c5a.12xlarge,reserved_1y,partial_upfront,3.155479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:36.054816 +AWS,ap-northeast-2,c5a.12xlarge,reserved_3y,all_upfront,1.051826,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:13.418386 +AWS,ap-northeast-2,c5a.12xlarge,reserved_3y,no_upfront,1.051826,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:53.126883 +AWS,ap-northeast-2,c5a.12xlarge,reserved_3y,partial_upfront,1.051826,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:47.672863 +AWS,ap-northeast-2,c5a.12xlarge,spot,NA,0.803809,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172686 +AWS,ap-northeast-2,c5a.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T08:57:57.933984 +AWS,ap-northeast-2,c5a.16xlarge,reserved_1y,all_upfront,2.201256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:29.415347 +AWS,ap-northeast-2,c5a.16xlarge,reserved_1y,no_upfront,2.201256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:10.078343 +AWS,ap-northeast-2,c5a.16xlarge,reserved_1y,partial_upfront,2.201256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:55.842713 +AWS,ap-northeast-2,c5a.16xlarge,reserved_3y,all_upfront,1.100419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:33.674514 +AWS,ap-northeast-2,c5a.16xlarge,reserved_3y,no_upfront,1.100419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:12.155648 +AWS,ap-northeast-2,c5a.16xlarge,reserved_3y,partial_upfront,1.100419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:07.715080 +AWS,ap-northeast-2,c5a.16xlarge,spot,NA,1.021682,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171782 +AWS,ap-northeast-2,c5a.24xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T08:58:44.648372 +AWS,ap-northeast-2,c5a.24xlarge,reserved_1y,all_upfront,3.216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:16.019879 +AWS,ap-northeast-2,c5a.24xlarge,reserved_1y,no_upfront,3.216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:57.036992 +AWS,ap-northeast-2,c5a.24xlarge,reserved_1y,partial_upfront,3.216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:42.240887 +AWS,ap-northeast-2,c5a.24xlarge,reserved_3y,all_upfront,3.216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:19.546869 +AWS,ap-northeast-2,c5a.24xlarge,reserved_3y,no_upfront,3.216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:59.441441 +AWS,ap-northeast-2,c5a.24xlarge,reserved_3y,partial_upfront,3.216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:53.951663 +AWS,ap-northeast-2,c5a.24xlarge,spot,NA,1.404482,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172822 +AWS,ap-northeast-2,c5a.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T08:58:27.536768 +AWS,ap-northeast-2,c5a.2xlarge,reserved_1y,all_upfront,0.202283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:59.003588 +AWS,ap-northeast-2,c5a.2xlarge,reserved_1y,no_upfront,0.202283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:39.831552 +AWS,ap-northeast-2,c5a.2xlarge,reserved_1y,partial_upfront,0.202283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:25.373938 +AWS,ap-northeast-2,c5a.2xlarge,reserved_3y,all_upfront,0.067428,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:02.943337 +AWS,ap-northeast-2,c5a.2xlarge,reserved_3y,no_upfront,0.067428,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:42.254456 +AWS,ap-northeast-2,c5a.2xlarge,reserved_3y,partial_upfront,0.067428,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:37.071212 +AWS,ap-northeast-2,c5a.2xlarge,spot,NA,0.145778,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172459 +AWS,ap-northeast-2,c5a.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T08:58:00.503278 +AWS,ap-northeast-2,c5a.4xlarge,reserved_1y,all_upfront,0.510251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:31.996338 +AWS,ap-northeast-2,c5a.4xlarge,reserved_1y,no_upfront,0.510251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:12.664189 +AWS,ap-northeast-2,c5a.4xlarge,reserved_1y,partial_upfront,0.510251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:58.423504 +AWS,ap-northeast-2,c5a.4xlarge,reserved_3y,all_upfront,0.340084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:36.189233 +AWS,ap-northeast-2,c5a.4xlarge,reserved_3y,no_upfront,0.340084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:14.792593 +AWS,ap-northeast-2,c5a.4xlarge,reserved_3y,partial_upfront,0.340084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:10.289903 +AWS,ap-northeast-2,c5a.4xlarge,spot,NA,0.269805,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171871 +AWS,ap-northeast-2,c5a.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T08:57:53.196694 +AWS,ap-northeast-2,c5a.8xlarge,reserved_1y,all_upfront,1.020502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:24.610272 +AWS,ap-northeast-2,c5a.8xlarge,reserved_1y,no_upfront,1.020502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:05.320109 +AWS,ap-northeast-2,c5a.8xlarge,reserved_1y,partial_upfront,1.020502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:51.074102 +AWS,ap-northeast-2,c5a.8xlarge,reserved_3y,all_upfront,0.680167,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:29.034169 +AWS,ap-northeast-2,c5a.8xlarge,reserved_3y,no_upfront,0.680167,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:07.309731 +AWS,ap-northeast-2,c5a.8xlarge,reserved_3y,partial_upfront,0.680167,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:02.997899 +AWS,ap-northeast-2,c5a.8xlarge,spot,NA,0.54045,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171693 +AWS,ap-northeast-2,c5a.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:57:44.094507 +AWS,ap-northeast-2,c5a.xlarge,reserved_1y,all_upfront,0.127813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:15.498300 +AWS,ap-northeast-2,c5a.xlarge,reserved_1y,no_upfront,0.127813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:56.097042 +AWS,ap-northeast-2,c5a.xlarge,reserved_1y,partial_upfront,0.127813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:42.035578 +AWS,ap-northeast-2,c5a.xlarge,reserved_3y,all_upfront,0.085271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:20.173789 +AWS,ap-northeast-2,c5a.xlarge,reserved_3y,no_upfront,0.085271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:58.023436 +AWS,ap-northeast-2,c5a.xlarge,reserved_3y,partial_upfront,0.085271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:53.967920 +AWS,ap-northeast-2,c5a.xlarge,spot,NA,0.070948,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171472 +AWS,ap-northeast-2,c5d.12xlarge,on_demand,NA,2.64,USD,AWS Pricing API,2025-11-30T08:58:50.553356 +AWS,ap-northeast-2,c5d.12xlarge,reserved_1y,all_upfront,1.663,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:21.933299 +AWS,ap-northeast-2,c5d.12xlarge,reserved_1y,no_upfront,1.663,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:03.036324 +AWS,ap-northeast-2,c5d.12xlarge,reserved_1y,partial_upfront,1.663,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:48.165209 +AWS,ap-northeast-2,c5d.12xlarge,reserved_3y,all_upfront,1.663,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:25.540942 +AWS,ap-northeast-2,c5d.12xlarge,reserved_3y,no_upfront,1.663,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:05.479642 +AWS,ap-northeast-2,c5d.12xlarge,reserved_3y,partial_upfront,1.663,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:59.840900 +AWS,ap-northeast-2,c5d.12xlarge,spot,NA,0.959298,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172924 +AWS,ap-northeast-2,c5d.18xlarge,on_demand,NA,3.96,USD,AWS Pricing API,2025-11-30T08:58:14.062140 +AWS,ap-northeast-2,c5d.18xlarge,reserved_1y,all_upfront,3.168027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:45.556427 +AWS,ap-northeast-2,c5d.18xlarge,reserved_1y,no_upfront,3.168027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:26.240929 +AWS,ap-northeast-2,c5d.18xlarge,reserved_1y,partial_upfront,3.168027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:11.879833 +AWS,ap-northeast-2,c5d.18xlarge,reserved_3y,all_upfront,1.584009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:49.606206 +AWS,ap-northeast-2,c5d.18xlarge,reserved_3y,no_upfront,1.584009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:28.547413 +AWS,ap-northeast-2,c5d.18xlarge,reserved_3y,partial_upfront,1.584009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:23.665962 +AWS,ap-northeast-2,c5d.18xlarge,spot,NA,1.323262,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172164 +AWS,ap-northeast-2,c5d.24xlarge,on_demand,NA,5.28,USD,AWS Pricing API,2025-11-30T08:57:46.811056 +AWS,ap-northeast-2,c5d.24xlarge,reserved_1y,all_upfront,4.09,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:18.181813 +AWS,ap-northeast-2,c5d.24xlarge,reserved_1y,no_upfront,4.09,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:58.847555 +AWS,ap-northeast-2,c5d.24xlarge,reserved_1y,partial_upfront,4.09,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:44.715168 +AWS,ap-northeast-2,c5d.24xlarge,reserved_3y,all_upfront,4.09,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:22.817052 +AWS,ap-northeast-2,c5d.24xlarge,reserved_3y,no_upfront,4.09,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:00.767361 +AWS,ap-northeast-2,c5d.24xlarge,reserved_3y,partial_upfront,4.09,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:56.643430 +AWS,ap-northeast-2,c5d.24xlarge,spot,NA,1.884028,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171530 +AWS,ap-northeast-2,c5d.2xlarge,on_demand,NA,0.44,USD,AWS Pricing API,2025-11-30T08:58:34.251187 +AWS,ap-northeast-2,c5d.2xlarge,reserved_1y,all_upfront,0.324329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:05.671180 +AWS,ap-northeast-2,c5d.2xlarge,reserved_1y,no_upfront,0.324329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:46.568357 +AWS,ap-northeast-2,c5d.2xlarge,reserved_1y,partial_upfront,0.324329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:32.048270 +AWS,ap-northeast-2,c5d.2xlarge,reserved_3y,all_upfront,0.21611,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:09.472258 +AWS,ap-northeast-2,c5d.2xlarge,reserved_3y,no_upfront,0.21611,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:49.028005 +AWS,ap-northeast-2,c5d.2xlarge,reserved_3y,partial_upfront,0.21611,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:43.681149 +AWS,ap-northeast-2,c5d.2xlarge,spot,NA,0.172251,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172627 +AWS,ap-northeast-2,c5d.4xlarge,on_demand,NA,0.88,USD,AWS Pricing API,2025-11-30T08:57:54.423330 +AWS,ap-northeast-2,c5d.4xlarge,reserved_1y,all_upfront,0.49,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:25.834034 +AWS,ap-northeast-2,c5d.4xlarge,reserved_1y,no_upfront,0.49,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:06.555767 +AWS,ap-northeast-2,c5d.4xlarge,reserved_1y,partial_upfront,0.49,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:52.298619 +AWS,ap-northeast-2,c5d.4xlarge,reserved_3y,all_upfront,0.49,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:30.229523 +AWS,ap-northeast-2,c5d.4xlarge,reserved_3y,no_upfront,0.49,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:08.560950 +AWS,ap-northeast-2,c5d.4xlarge,reserved_3y,partial_upfront,0.49,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:04.208982 +AWS,ap-northeast-2,c5d.4xlarge,spot,NA,0.322074,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171705 +AWS,ap-northeast-2,c5d.9xlarge,on_demand,NA,1.98,USD,AWS Pricing API,2025-11-30T08:58:23.776378 +AWS,ap-northeast-2,c5d.9xlarge,reserved_1y,all_upfront,2.998744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:55.244601 +AWS,ap-northeast-2,c5d.9xlarge,reserved_1y,no_upfront,2.998744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:35.997080 +AWS,ap-northeast-2,c5d.9xlarge,reserved_1y,partial_upfront,2.998744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:21.596406 +AWS,ap-northeast-2,c5d.9xlarge,reserved_3y,all_upfront,0.999581,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:59.201959 +AWS,ap-northeast-2,c5d.9xlarge,reserved_3y,no_upfront,0.999581,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:38.417670 +AWS,ap-northeast-2,c5d.9xlarge,reserved_3y,partial_upfront,0.999581,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:33.330427 +AWS,ap-northeast-2,c5d.9xlarge,spot,NA,0.721557,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172363 +AWS,ap-northeast-2,c5d.xlarge,on_demand,NA,0.22,USD,AWS Pricing API,2025-11-30T08:58:19.471460 +AWS,ap-northeast-2,c5d.xlarge,reserved_1y,all_upfront,0.162164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:50.935042 +AWS,ap-northeast-2,c5d.xlarge,reserved_1y,no_upfront,0.162164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:31.651437 +AWS,ap-northeast-2,c5d.xlarge,reserved_1y,partial_upfront,0.162164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:17.266965 +AWS,ap-northeast-2,c5d.xlarge,reserved_3y,all_upfront,0.108055,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:54.972495 +AWS,ap-northeast-2,c5d.xlarge,reserved_3y,no_upfront,0.108055,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:34.028505 +AWS,ap-northeast-2,c5d.xlarge,reserved_3y,partial_upfront,0.108055,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:29.055073 +AWS,ap-northeast-2,c5d.xlarge,spot,NA,0.090072,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172277 +AWS,ap-northeast-2,c5n.18xlarge,on_demand,NA,4.392,USD,AWS Pricing API,2025-11-30T08:58:39.788068 +AWS,ap-northeast-2,c5n.18xlarge,reserved_1y,all_upfront,3.434913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:11.185779 +AWS,ap-northeast-2,c5n.18xlarge,reserved_1y,no_upfront,3.434913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:52.211810 +AWS,ap-northeast-2,c5n.18xlarge,reserved_1y,partial_upfront,3.434913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:37.525957 +AWS,ap-northeast-2,c5n.18xlarge,reserved_3y,all_upfront,1.717638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:14.894271 +AWS,ap-northeast-2,c5n.18xlarge,reserved_3y,no_upfront,1.717638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:54.622272 +AWS,ap-northeast-2,c5n.18xlarge,reserved_3y,partial_upfront,1.717638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:49.254289 +AWS,ap-northeast-2,c5n.18xlarge,spot,NA,1.56433,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172705 +AWS,ap-northeast-2,c5n.2xlarge,on_demand,NA,0.488,USD,AWS Pricing API,2025-11-30T08:58:50.009886 +AWS,ap-northeast-2,c5n.2xlarge,reserved_1y,all_upfront,0.307,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:21.390801 +AWS,ap-northeast-2,c5n.2xlarge,reserved_1y,no_upfront,0.307,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:02.490571 +AWS,ap-northeast-2,c5n.2xlarge,reserved_1y,partial_upfront,0.307,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:47.618155 +AWS,ap-northeast-2,c5n.2xlarge,reserved_3y,all_upfront,0.307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:24.999475 +AWS,ap-northeast-2,c5n.2xlarge,reserved_3y,no_upfront,0.307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:04.930144 +AWS,ap-northeast-2,c5n.2xlarge,reserved_3y,partial_upfront,0.307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:59.303998 +AWS,ap-northeast-2,c5n.2xlarge,spot,NA,0.187778,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172920 +AWS,ap-northeast-2,c5n.4xlarge,on_demand,NA,0.976,USD,AWS Pricing API,2025-11-30T08:58:26.188797 +AWS,ap-northeast-2,c5n.4xlarge,reserved_1y,all_upfront,0.763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:57.649498 +AWS,ap-northeast-2,c5n.4xlarge,reserved_1y,no_upfront,0.763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:38.436350 +AWS,ap-northeast-2,c5n.4xlarge,reserved_1y,partial_upfront,0.763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:24.018967 +AWS,ap-northeast-2,c5n.4xlarge,reserved_3y,all_upfront,0.763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:01.590544 +AWS,ap-northeast-2,c5n.4xlarge,reserved_3y,no_upfront,0.763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:40.883877 +AWS,ap-northeast-2,c5n.4xlarge,reserved_3y,partial_upfront,0.763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:35.733060 +AWS,ap-northeast-2,c5n.4xlarge,spot,NA,0.409482,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172418 +AWS,ap-northeast-2,c5n.9xlarge,on_demand,NA,2.196,USD,AWS Pricing API,2025-11-30T08:58:39.647216 +AWS,ap-northeast-2,c5n.9xlarge,reserved_1y,all_upfront,1.7169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:11.038359 +AWS,ap-northeast-2,c5n.9xlarge,reserved_1y,no_upfront,1.7169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:52.066777 +AWS,ap-northeast-2,c5n.9xlarge,reserved_1y,partial_upfront,1.7169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:37.392938 +AWS,ap-northeast-2,c5n.9xlarge,reserved_3y,all_upfront,0.8583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:14.754844 +AWS,ap-northeast-2,c5n.9xlarge,reserved_3y,no_upfront,0.8583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:54.486718 +AWS,ap-northeast-2,c5n.9xlarge,reserved_3y,partial_upfront,0.8583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:49.121090 +AWS,ap-northeast-2,c5n.9xlarge,spot,NA,0.804934,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172701 +AWS,ap-northeast-2,c5n.metal,on_demand,NA,4.392,USD,AWS Pricing API,2025-11-30T08:57:48.444405 +AWS,ap-northeast-2,c5n.metal,reserved_1y,all_upfront,2.767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:19.813321 +AWS,ap-northeast-2,c5n.metal,reserved_1y,no_upfront,2.767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:00.498922 +AWS,ap-northeast-2,c5n.metal,reserved_1y,partial_upfront,2.767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:46.326611 +AWS,ap-northeast-2,c5n.metal,reserved_3y,all_upfront,2.767,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:24.400683 +AWS,ap-northeast-2,c5n.metal,reserved_3y,no_upfront,2.767,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:02.468657 +AWS,ap-northeast-2,c5n.metal,reserved_3y,partial_upfront,2.767,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:58.275099 +AWS,ap-northeast-2,c5n.metal,spot,NA,1.490914,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171551 +AWS,ap-northeast-2,c5n.xlarge,on_demand,NA,0.244,USD,AWS Pricing API,2025-11-30T08:58:41.787104 +AWS,ap-northeast-2,c5n.xlarge,reserved_1y,all_upfront,0.143493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:13.164669 +AWS,ap-northeast-2,c5n.xlarge,reserved_1y,no_upfront,0.143493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:54.130045 +AWS,ap-northeast-2,c5n.xlarge,reserved_1y,partial_upfront,0.143493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:39.403053 +AWS,ap-northeast-2,c5n.xlarge,reserved_3y,all_upfront,0.047831,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:16.759276 +AWS,ap-northeast-2,c5n.xlarge,reserved_3y,no_upfront,0.047831,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:56.533843 +AWS,ap-northeast-2,c5n.xlarge,reserved_3y,partial_upfront,0.047831,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:51.128832 +AWS,ap-northeast-2,c5n.xlarge,spot,NA,0.098506,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172778 +AWS,ap-northeast-2,c6g.12xlarge,on_demand,NA,1.848,USD,AWS Pricing API,2025-11-30T08:57:53.741589 +AWS,ap-northeast-2,c6g.12xlarge,reserved_1y,all_upfront,0.8035,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:25.158290 +AWS,ap-northeast-2,c6g.12xlarge,reserved_1y,no_upfront,0.8035,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:05.871482 +AWS,ap-northeast-2,c6g.12xlarge,reserved_1y,partial_upfront,0.8035,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:51.619728 +AWS,ap-northeast-2,c6g.12xlarge,reserved_3y,all_upfront,0.8035,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:29.564340 +AWS,ap-northeast-2,c6g.12xlarge,reserved_3y,no_upfront,0.8035,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:07.863267 +AWS,ap-northeast-2,c6g.12xlarge,reserved_3y,partial_upfront,0.8035,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:03.538464 +AWS,ap-northeast-2,c6g.12xlarge,spot,NA,0.66479,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171663 +AWS,ap-northeast-2,c6g.16xlarge,on_demand,NA,2.464,USD,AWS Pricing API,2025-11-30T08:58:11.618525 +AWS,ap-northeast-2,c6g.16xlarge,reserved_1y,all_upfront,1.44258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:43.070302 +AWS,ap-northeast-2,c6g.16xlarge,reserved_1y,no_upfront,1.44258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:23.790710 +AWS,ap-northeast-2,c6g.16xlarge,reserved_1y,partial_upfront,1.44258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:09.455249 +AWS,ap-northeast-2,c6g.16xlarge,reserved_3y,all_upfront,0.48086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:47.087764 +AWS,ap-northeast-2,c6g.16xlarge,reserved_3y,no_upfront,0.48086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:26.067076 +AWS,ap-northeast-2,c6g.16xlarge,reserved_3y,partial_upfront,0.48086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:21.243031 +AWS,ap-northeast-2,c6g.16xlarge,spot,NA,0.889991,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172107 +AWS,ap-northeast-2,c6g.2xlarge,on_demand,NA,0.308,USD,AWS Pricing API,2025-11-30T08:58:23.639239 +AWS,ap-northeast-2,c6g.2xlarge,reserved_1y,all_upfront,0.180365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:55.110687 +AWS,ap-northeast-2,c6g.2xlarge,reserved_1y,no_upfront,0.180365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:35.859449 +AWS,ap-northeast-2,c6g.2xlarge,reserved_1y,partial_upfront,0.180365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:21.460847 +AWS,ap-northeast-2,c6g.2xlarge,reserved_3y,all_upfront,0.060122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:59.061184 +AWS,ap-northeast-2,c6g.2xlarge,reserved_3y,no_upfront,0.060122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:38.281031 +AWS,ap-northeast-2,c6g.2xlarge,reserved_3y,partial_upfront,0.060122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:33.196242 +AWS,ap-northeast-2,c6g.2xlarge,spot,NA,0.11246,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172371 +AWS,ap-northeast-2,c6g.4xlarge,on_demand,NA,0.616,USD,AWS Pricing API,2025-11-30T08:58:42.610841 +AWS,ap-northeast-2,c6g.4xlarge,reserved_1y,all_upfront,0.4788,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:13.990534 +AWS,ap-northeast-2,c6g.4xlarge,reserved_1y,no_upfront,0.4788,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:54.974121 +AWS,ap-northeast-2,c6g.4xlarge,reserved_1y,partial_upfront,0.4788,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:40.207529 +AWS,ap-northeast-2,c6g.4xlarge,reserved_3y,all_upfront,0.4788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:17.553058 +AWS,ap-northeast-2,c6g.4xlarge,reserved_3y,no_upfront,0.4788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:57.364922 +AWS,ap-northeast-2,c6g.4xlarge,reserved_3y,partial_upfront,0.4788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:51.928145 +AWS,ap-northeast-2,c6g.4xlarge,spot,NA,0.223705,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172770 +AWS,ap-northeast-2,c6g.8xlarge,on_demand,NA,1.232,USD,AWS Pricing API,2025-11-30T08:58:10.002962 +AWS,ap-northeast-2,c6g.8xlarge,reserved_1y,all_upfront,0.893836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:41.419822 +AWS,ap-northeast-2,c6g.8xlarge,reserved_1y,no_upfront,0.893836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:22.164179 +AWS,ap-northeast-2,c6g.8xlarge,reserved_1y,partial_upfront,0.893836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:07.849939 +AWS,ap-northeast-2,c6g.8xlarge,reserved_3y,all_upfront,0.297945,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:45.489926 +AWS,ap-northeast-2,c6g.8xlarge,reserved_3y,no_upfront,0.297945,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:24.400536 +AWS,ap-northeast-2,c6g.8xlarge,reserved_3y,partial_upfront,0.297945,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:19.637784 +AWS,ap-northeast-2,c6g.8xlarge,spot,NA,0.45067,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172059 +AWS,ap-northeast-2,c6g.xlarge,on_demand,NA,0.154,USD,AWS Pricing API,2025-11-30T08:58:47.997439 +AWS,ap-northeast-2,c6g.xlarge,reserved_1y,all_upfront,0.1197,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:19.379037 +AWS,ap-northeast-2,c6g.xlarge,reserved_1y,no_upfront,0.1197,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:00.426214 +AWS,ap-northeast-2,c6g.xlarge,reserved_1y,partial_upfront,0.1197,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:45.611588 +AWS,ap-northeast-2,c6g.xlarge,reserved_3y,all_upfront,0.1197,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:22.920171 +AWS,ap-northeast-2,c6g.xlarge,reserved_3y,no_upfront,0.1197,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:02.880174 +AWS,ap-northeast-2,c6g.xlarge,reserved_3y,partial_upfront,0.1197,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:57.299898 +AWS,ap-northeast-2,c6g.xlarge,spot,NA,0.057106,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172888 +AWS,ap-northeast-2,c6gd.12xlarge,on_demand,NA,2.112,USD,AWS Pricing API,2025-11-30T08:57:48.587232 +AWS,ap-northeast-2,c6gd.12xlarge,reserved_1y,all_upfront,1.241895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:19.950968 +AWS,ap-northeast-2,c6gd.12xlarge,reserved_1y,no_upfront,1.241895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:00.634276 +AWS,ap-northeast-2,c6gd.12xlarge,reserved_1y,partial_upfront,1.241895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:46.463853 +AWS,ap-northeast-2,c6gd.12xlarge,reserved_3y,all_upfront,0.413965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:24.532788 +AWS,ap-northeast-2,c6gd.12xlarge,reserved_3y,no_upfront,0.413965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:02.608547 +AWS,ap-northeast-2,c6gd.12xlarge,reserved_3y,partial_upfront,0.413965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:58.410093 +AWS,ap-northeast-2,c6gd.12xlarge,spot,NA,0.715159,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171555 +AWS,ap-northeast-2,c6gd.16xlarge,on_demand,NA,2.816,USD,AWS Pricing API,2025-11-30T08:58:26.729821 +AWS,ap-northeast-2,c6gd.16xlarge,reserved_1y,all_upfront,2.035845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:58.185385 +AWS,ap-northeast-2,c6gd.16xlarge,reserved_1y,no_upfront,2.035845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:39.001884 +AWS,ap-northeast-2,c6gd.16xlarge,reserved_1y,partial_upfront,2.035845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:24.559273 +AWS,ap-northeast-2,c6gd.16xlarge,reserved_3y,all_upfront,0.678615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:02.136474 +AWS,ap-northeast-2,c6gd.16xlarge,reserved_3y,no_upfront,0.678615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:41.431704 +AWS,ap-northeast-2,c6gd.16xlarge,reserved_3y,partial_upfront,0.678615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:36.262266 +AWS,ap-northeast-2,c6gd.16xlarge,spot,NA,0.943748,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172439 +AWS,ap-northeast-2,c6gd.2xlarge,on_demand,NA,0.352,USD,AWS Pricing API,2025-11-30T08:58:37.056404 +AWS,ap-northeast-2,c6gd.2xlarge,reserved_1y,all_upfront,0.2727,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:08.469058 +AWS,ap-northeast-2,c6gd.2xlarge,reserved_1y,no_upfront,0.2727,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:49.455895 +AWS,ap-northeast-2,c6gd.2xlarge,reserved_1y,partial_upfront,0.2727,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:34.854902 +AWS,ap-northeast-2,c6gd.2xlarge,reserved_3y,all_upfront,0.2727,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:12.225745 +AWS,ap-northeast-2,c6gd.2xlarge,reserved_3y,no_upfront,0.2727,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:51.903746 +AWS,ap-northeast-2,c6gd.2xlarge,reserved_3y,partial_upfront,0.2727,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:46.473957 +AWS,ap-northeast-2,c6gd.2xlarge,spot,NA,0.117826,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172670 +AWS,ap-northeast-2,c6gd.4xlarge,on_demand,NA,0.704,USD,AWS Pricing API,2025-11-30T08:58:16.666699 +AWS,ap-northeast-2,c6gd.4xlarge,reserved_1y,all_upfront,0.3041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:48.098741 +AWS,ap-northeast-2,c6gd.4xlarge,reserved_1y,no_upfront,0.3041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:28.812131 +AWS,ap-northeast-2,c6gd.4xlarge,reserved_1y,partial_upfront,0.3041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:14.436283 +AWS,ap-northeast-2,c6gd.4xlarge,reserved_3y,all_upfront,0.3041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:52.141701 +AWS,ap-northeast-2,c6gd.4xlarge,reserved_3y,no_upfront,0.3041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:31.148842 +AWS,ap-northeast-2,c6gd.4xlarge,reserved_3y,partial_upfront,0.3041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:26.231739 +AWS,ap-northeast-2,c6gd.4xlarge,spot,NA,0.262919,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172228 +AWS,ap-northeast-2,c6gd.8xlarge,on_demand,NA,1.408,USD,AWS Pricing API,2025-11-30T08:58:45.459993 +AWS,ap-northeast-2,c6gd.8xlarge,reserved_1y,all_upfront,1.126349,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:16.825686 +AWS,ap-northeast-2,c6gd.8xlarge,reserved_1y,no_upfront,1.126349,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:57.857647 +AWS,ap-northeast-2,c6gd.8xlarge,reserved_1y,partial_upfront,1.126349,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:43.064125 +AWS,ap-northeast-2,c6gd.8xlarge,reserved_3y,all_upfront,0.563183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:20.334500 +AWS,ap-northeast-2,c6gd.8xlarge,reserved_3y,no_upfront,0.563183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:00.270792 +AWS,ap-northeast-2,c6gd.8xlarge,reserved_3y,partial_upfront,0.563183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:54.751153 +AWS,ap-northeast-2,c6gd.8xlarge,spot,NA,0.470537,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172830 +AWS,ap-northeast-2,c6gd.xlarge,on_demand,NA,0.176,USD,AWS Pricing API,2025-11-30T08:58:36.394860 +AWS,ap-northeast-2,c6gd.xlarge,reserved_1y,all_upfront,0.129854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:07.804003 +AWS,ap-northeast-2,c6gd.xlarge,reserved_1y,no_upfront,0.129854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:48.777745 +AWS,ap-northeast-2,c6gd.xlarge,reserved_1y,partial_upfront,0.129854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:34.183090 +AWS,ap-northeast-2,c6gd.xlarge,reserved_3y,all_upfront,0.086551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:11.569825 +AWS,ap-northeast-2,c6gd.xlarge,reserved_3y,no_upfront,0.086551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:51.226175 +AWS,ap-northeast-2,c6gd.xlarge,reserved_3y,partial_upfront,0.086551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:45.811612 +AWS,ap-northeast-2,c6gd.xlarge,spot,NA,0.063507,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172666 +AWS,ap-northeast-2,c6i.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:58:36.258539 +AWS,ap-northeast-2,c6i.12xlarge,reserved_1y,all_upfront,1.939252,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:07.670837 +AWS,ap-northeast-2,c6i.12xlarge,reserved_1y,no_upfront,1.939252,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:48.640281 +AWS,ap-northeast-2,c6i.12xlarge,reserved_1y,partial_upfront,1.939252,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:34.050433 +AWS,ap-northeast-2,c6i.12xlarge,reserved_3y,all_upfront,0.969617,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:11.435900 +AWS,ap-northeast-2,c6i.12xlarge,reserved_3y,no_upfront,0.969617,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:51.083728 +AWS,ap-northeast-2,c6i.12xlarge,reserved_3y,partial_upfront,0.969617,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:45.679160 +AWS,ap-northeast-2,c6i.12xlarge,spot,NA,0.807928,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172650 +AWS,ap-northeast-2,c6i.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:58:11.213170 +AWS,ap-northeast-2,c6i.16xlarge,reserved_1y,all_upfront,2.969569,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:42.662914 +AWS,ap-northeast-2,c6i.16xlarge,reserved_1y,no_upfront,2.969569,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:23.380833 +AWS,ap-northeast-2,c6i.16xlarge,reserved_1y,partial_upfront,2.969569,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:09.053539 +AWS,ap-northeast-2,c6i.16xlarge,reserved_3y,all_upfront,1.48479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:46.685117 +AWS,ap-northeast-2,c6i.16xlarge,reserved_3y,no_upfront,1.48479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:25.650735 +AWS,ap-northeast-2,c6i.16xlarge,reserved_3y,partial_upfront,1.48479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:20.839666 +AWS,ap-northeast-2,c6i.16xlarge,spot,NA,1.089112,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172103 +AWS,ap-northeast-2,c6i.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:58:05.925078 +AWS,ap-northeast-2,c6i.24xlarge,reserved_1y,all_upfront,2.40538,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:37.381360 +AWS,ap-northeast-2,c6i.24xlarge,reserved_1y,no_upfront,2.40538,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:18.087453 +AWS,ap-northeast-2,c6i.24xlarge,reserved_1y,partial_upfront,2.40538,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:03.808225 +AWS,ap-northeast-2,c6i.24xlarge,reserved_3y,all_upfront,2.40538,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:41.459393 +AWS,ap-northeast-2,c6i.24xlarge,reserved_3y,no_upfront,2.40538,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:20.291732 +AWS,ap-northeast-2,c6i.24xlarge,reserved_3y,partial_upfront,2.40538,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:15.645662 +AWS,ap-northeast-2,c6i.24xlarge,spot,NA,1.545449,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171968 +AWS,ap-northeast-2,c6i.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:57:49.828098 +AWS,ap-northeast-2,c6i.2xlarge,reserved_1y,all_upfront,0.236758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:21.156332 +AWS,ap-northeast-2,c6i.2xlarge,reserved_1y,no_upfront,0.236758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:01.885367 +AWS,ap-northeast-2,c6i.2xlarge,reserved_1y,partial_upfront,0.236758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:47.680800 +AWS,ap-northeast-2,c6i.2xlarge,reserved_3y,all_upfront,0.078919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:25.728363 +AWS,ap-northeast-2,c6i.2xlarge,reserved_3y,no_upfront,0.078919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:03.865688 +AWS,ap-northeast-2,c6i.2xlarge,reserved_3y,partial_upfront,0.078919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:59.622220 +AWS,ap-northeast-2,c6i.2xlarge,spot,NA,0.160977,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171597 +AWS,ap-northeast-2,c6i.32xlarge,on_demand,NA,6.144,USD,AWS Pricing API,2025-11-30T08:58:41.106623 +AWS,ap-northeast-2,c6i.32xlarge,reserved_1y,all_upfront,4.454369,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:12.396745 +AWS,ap-northeast-2,c6i.32xlarge,reserved_1y,no_upfront,4.454369,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:53.441765 +AWS,ap-northeast-2,c6i.32xlarge,reserved_1y,partial_upfront,4.454369,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:38.731665 +AWS,ap-northeast-2,c6i.32xlarge,reserved_3y,all_upfront,2.96959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:16.076749 +AWS,ap-northeast-2,c6i.32xlarge,reserved_3y,no_upfront,2.96959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:55.854102 +AWS,ap-northeast-2,c6i.32xlarge,reserved_3y,partial_upfront,2.96959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:50.470182 +AWS,ap-northeast-2,c6i.32xlarge,spot,NA,2.010196,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172724 +AWS,ap-northeast-2,c6i.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:57:45.845785 +AWS,ap-northeast-2,c6i.4xlarge,reserved_1y,all_upfront,0.556825,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:17.233827 +AWS,ap-northeast-2,c6i.4xlarge,reserved_1y,no_upfront,0.556825,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:57.882153 +AWS,ap-northeast-2,c6i.4xlarge,reserved_1y,partial_upfront,0.556825,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:43.777374 +AWS,ap-northeast-2,c6i.4xlarge,reserved_3y,all_upfront,0.371208,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:21.892721 +AWS,ap-northeast-2,c6i.4xlarge,reserved_3y,no_upfront,0.371208,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:59.798741 +AWS,ap-northeast-2,c6i.4xlarge,reserved_3y,partial_upfront,0.371208,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:55.703918 +AWS,ap-northeast-2,c6i.4xlarge,spot,NA,0.289795,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171497 +AWS,ap-northeast-2,c6i.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:57:59.561306 +AWS,ap-northeast-2,c6i.8xlarge,reserved_1y,all_upfront,0.947032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:31.046596 +AWS,ap-northeast-2,c6i.8xlarge,reserved_1y,no_upfront,0.947032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:11.712052 +AWS,ap-northeast-2,c6i.8xlarge,reserved_1y,partial_upfront,0.947032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:57.472990 +AWS,ap-northeast-2,c6i.8xlarge,reserved_3y,all_upfront,0.315677,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:35.272688 +AWS,ap-northeast-2,c6i.8xlarge,reserved_3y,no_upfront,0.315677,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:13.825322 +AWS,ap-northeast-2,c6i.8xlarge,reserved_3y,partial_upfront,0.315677,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:09.345742 +AWS,ap-northeast-2,c6i.8xlarge,spot,NA,0.562214,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171883 +AWS,ap-northeast-2,c6i.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:58:03.737257 +AWS,ap-northeast-2,c6i.xlarge,reserved_1y,all_upfront,0.272831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:35.227585 +AWS,ap-northeast-2,c6i.xlarge,reserved_1y,no_upfront,0.272831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:15.912091 +AWS,ap-northeast-2,c6i.xlarge,reserved_1y,partial_upfront,0.272831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:01.638839 +AWS,ap-northeast-2,c6i.xlarge,reserved_3y,all_upfront,0.090944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:39.330028 +AWS,ap-northeast-2,c6i.xlarge,reserved_3y,no_upfront,0.090944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:18.089568 +AWS,ap-northeast-2,c6i.xlarge,reserved_3y,partial_upfront,0.090944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:13.492038 +AWS,ap-northeast-2,c6i.xlarge,spot,NA,0.077741,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171936 +AWS,ap-northeast-2,c6id.12xlarge,on_demand,NA,2.772,USD,AWS Pricing API,2025-11-30T08:58:32.063497 +AWS,ap-northeast-2,c6id.12xlarge,reserved_1y,all_upfront,1.663221,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:03.496875 +AWS,ap-northeast-2,c6id.12xlarge,reserved_1y,no_upfront,1.663221,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:44.363970 +AWS,ap-northeast-2,c6id.12xlarge,reserved_1y,partial_upfront,1.663221,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:29.894735 +AWS,ap-northeast-2,c6id.12xlarge,reserved_3y,all_upfront,1.108807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:07.336251 +AWS,ap-northeast-2,c6id.12xlarge,reserved_3y,no_upfront,1.108807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:46.813106 +AWS,ap-northeast-2,c6id.12xlarge,reserved_3y,partial_upfront,1.108807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:41.516007 +AWS,ap-northeast-2,c6id.12xlarge,spot,NA,0.995135,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172591 +AWS,ap-northeast-2,c6id.16xlarge,on_demand,NA,3.696,USD,AWS Pricing API,2025-11-30T08:58:41.648130 +AWS,ap-northeast-2,c6id.16xlarge,reserved_1y,all_upfront,2.726706,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:13.022468 +AWS,ap-northeast-2,c6id.16xlarge,reserved_1y,no_upfront,2.726706,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:53.991182 +AWS,ap-northeast-2,c6id.16xlarge,reserved_1y,partial_upfront,2.726706,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:39.268918 +AWS,ap-northeast-2,c6id.16xlarge,reserved_3y,all_upfront,1.817802,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:16.626627 +AWS,ap-northeast-2,c6id.16xlarge,reserved_3y,no_upfront,1.817802,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:56.396654 +AWS,ap-northeast-2,c6id.16xlarge,reserved_3y,partial_upfront,1.817802,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:50.996908 +AWS,ap-northeast-2,c6id.16xlarge,spot,NA,1.346873,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172774 +AWS,ap-northeast-2,c6id.24xlarge,on_demand,NA,5.544,USD,AWS Pricing API,2025-11-30T08:57:59.970391 +AWS,ap-northeast-2,c6id.24xlarge,reserved_1y,all_upfront,4.29454,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:31.452380 +AWS,ap-northeast-2,c6id.24xlarge,reserved_1y,no_upfront,4.29454,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:12.120513 +AWS,ap-northeast-2,c6id.24xlarge,reserved_1y,partial_upfront,4.29454,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:57.894995 +AWS,ap-northeast-2,c6id.24xlarge,reserved_3y,all_upfront,4.29454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:35.667841 +AWS,ap-northeast-2,c6id.24xlarge,reserved_3y,no_upfront,4.29454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:14.243873 +AWS,ap-northeast-2,c6id.24xlarge,reserved_3y,partial_upfront,4.29454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:09.757179 +AWS,ap-northeast-2,c6id.24xlarge,spot,NA,1.979425,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171861 +AWS,ap-northeast-2,c6id.2xlarge,on_demand,NA,0.462,USD,AWS Pricing API,2025-11-30T08:58:51.905188 +AWS,ap-northeast-2,c6id.2xlarge,reserved_1y,all_upfront,0.340854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:23.278481 +AWS,ap-northeast-2,c6id.2xlarge,reserved_1y,no_upfront,0.340854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:04.397793 +AWS,ap-northeast-2,c6id.2xlarge,reserved_1y,partial_upfront,0.340854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:49.517775 +AWS,ap-northeast-2,c6id.2xlarge,reserved_3y,all_upfront,0.227231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:26.858478 +AWS,ap-northeast-2,c6id.2xlarge,reserved_3y,no_upfront,0.227231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:06.877781 +AWS,ap-northeast-2,c6id.2xlarge,reserved_3y,partial_upfront,0.227231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:01.214667 +AWS,ap-northeast-2,c6id.2xlarge,spot,NA,0.175077,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172968 +AWS,ap-northeast-2,c6id.32xlarge,on_demand,NA,7.392,USD,AWS Pricing API,2025-11-30T08:57:47.901994 +AWS,ap-northeast-2,c6id.32xlarge,reserved_1y,all_upfront,4.11256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:19.264405 +AWS,ap-northeast-2,c6id.32xlarge,reserved_1y,no_upfront,4.11256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:59.942505 +AWS,ap-northeast-2,c6id.32xlarge,reserved_1y,partial_upfront,4.11256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:45.787998 +AWS,ap-northeast-2,c6id.32xlarge,reserved_3y,all_upfront,4.11256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:23.874982 +AWS,ap-northeast-2,c6id.32xlarge,reserved_3y,no_upfront,4.11256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:01.873498 +AWS,ap-northeast-2,c6id.32xlarge,reserved_3y,partial_upfront,4.11256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:57.727965 +AWS,ap-northeast-2,c6id.32xlarge,spot,NA,2.559376,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171563 +AWS,ap-northeast-2,c6id.4xlarge,on_demand,NA,0.924,USD,AWS Pricing API,2025-11-30T08:57:54.976136 +AWS,ap-northeast-2,c6id.4xlarge,reserved_1y,all_upfront,0.554369,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:26.376316 +AWS,ap-northeast-2,c6id.4xlarge,reserved_1y,no_upfront,0.554369,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:07.104011 +AWS,ap-northeast-2,c6id.4xlarge,reserved_1y,partial_upfront,0.554369,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:52.860579 +AWS,ap-northeast-2,c6id.4xlarge,reserved_3y,all_upfront,0.36959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:30.767323 +AWS,ap-northeast-2,c6id.4xlarge,reserved_3y,no_upfront,0.36959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:09.118138 +AWS,ap-northeast-2,c6id.4xlarge,reserved_3y,partial_upfront,0.36959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:04.763971 +AWS,ap-northeast-2,c6id.4xlarge,spot,NA,0.358833,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171736 +AWS,ap-northeast-2,c6id.8xlarge,on_demand,NA,1.848,USD,AWS Pricing API,2025-11-30T08:58:27.944368 +AWS,ap-northeast-2,c6id.8xlarge,reserved_1y,all_upfront,1.16424,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:59.411833 +AWS,ap-northeast-2,c6id.8xlarge,reserved_1y,no_upfront,1.16424,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:40.254442 +AWS,ap-northeast-2,c6id.8xlarge,reserved_1y,partial_upfront,1.16424,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:25.784899 +AWS,ap-northeast-2,c6id.8xlarge,reserved_3y,all_upfront,1.16424,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:03.341718 +AWS,ap-northeast-2,c6id.8xlarge,reserved_3y,no_upfront,1.16424,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:42.673592 +AWS,ap-northeast-2,c6id.8xlarge,reserved_3y,partial_upfront,1.16424,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:37.477316 +AWS,ap-northeast-2,c6id.8xlarge,spot,NA,0.635849,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172475 +AWS,ap-northeast-2,c6id.xlarge,on_demand,NA,0.231,USD,AWS Pricing API,2025-11-30T08:58:46.801173 +AWS,ap-northeast-2,c6id.xlarge,reserved_1y,all_upfront,0.135845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:18.173003 +AWS,ap-northeast-2,c6id.xlarge,reserved_1y,no_upfront,0.135845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:59.204329 +AWS,ap-northeast-2,c6id.xlarge,reserved_1y,partial_upfront,0.135845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:44.409450 +AWS,ap-northeast-2,c6id.xlarge,reserved_3y,all_upfront,0.045282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:21.725173 +AWS,ap-northeast-2,c6id.xlarge,reserved_3y,no_upfront,0.045282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:01.634947 +AWS,ap-northeast-2,c6id.xlarge,reserved_3y,partial_upfront,0.045282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:56.102110 +AWS,ap-northeast-2,c6id.xlarge,spot,NA,0.087037,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172862 +AWS,ap-northeast-2,c6in.12xlarge,on_demand,NA,3.0744,USD,AWS Pricing API,2025-11-30T08:57:53.332468 +AWS,ap-northeast-2,c6in.12xlarge,reserved_1y,all_upfront,2.40237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:24.745004 +AWS,ap-northeast-2,c6in.12xlarge,reserved_1y,no_upfront,2.40237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:05.465886 +AWS,ap-northeast-2,c6in.12xlarge,reserved_1y,partial_upfront,2.40237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:51.211232 +AWS,ap-northeast-2,c6in.12xlarge,reserved_3y,all_upfront,2.40237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:29.165573 +AWS,ap-northeast-2,c6in.12xlarge,reserved_3y,no_upfront,2.40237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:07.448490 +AWS,ap-northeast-2,c6in.12xlarge,reserved_3y,partial_upfront,2.40237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:03.134873 +AWS,ap-northeast-2,c6in.12xlarge,spot,NA,1.064051,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171671 +AWS,ap-northeast-2,c6in.16xlarge,on_demand,NA,4.0992,USD,AWS Pricing API,2025-11-30T08:58:04.701287 +AWS,ap-northeast-2,c6in.16xlarge,reserved_1y,all_upfront,3.050652,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:36.166896 +AWS,ap-northeast-2,c6in.16xlarge,reserved_1y,no_upfront,3.050652,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:16.860512 +AWS,ap-northeast-2,c6in.16xlarge,reserved_1y,partial_upfront,3.050652,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:02.590740 +AWS,ap-northeast-2,c6in.16xlarge,reserved_3y,all_upfront,2.033757,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:40.263123 +AWS,ap-northeast-2,c6in.16xlarge,reserved_3y,no_upfront,2.033757,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:19.047498 +AWS,ap-northeast-2,c6in.16xlarge,reserved_3y,partial_upfront,2.033757,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:14.438708 +AWS,ap-northeast-2,c6in.16xlarge,spot,NA,1.406866,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171940 +AWS,ap-northeast-2,c6in.24xlarge,on_demand,NA,6.1488,USD,AWS Pricing API,2025-11-30T08:58:14.196680 +AWS,ap-northeast-2,c6in.24xlarge,reserved_1y,all_upfront,3.87374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:45.690319 +AWS,ap-northeast-2,c6in.24xlarge,reserved_1y,no_upfront,3.87374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:26.379450 +AWS,ap-northeast-2,c6in.24xlarge,reserved_1y,partial_upfront,3.87374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:12.014193 +AWS,ap-northeast-2,c6in.24xlarge,reserved_3y,all_upfront,3.87374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:49.740766 +AWS,ap-northeast-2,c6in.24xlarge,reserved_3y,no_upfront,3.87374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:28.685657 +AWS,ap-northeast-2,c6in.24xlarge,reserved_3y,partial_upfront,3.87374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:23.798343 +AWS,ap-northeast-2,c6in.24xlarge,spot,NA,2.215537,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172187 +AWS,ap-northeast-2,c6in.2xlarge,on_demand,NA,0.5124,USD,AWS Pricing API,2025-11-30T08:58:17.868151 +AWS,ap-northeast-2,c6in.2xlarge,reserved_1y,all_upfront,0.32281,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:49.313412 +AWS,ap-northeast-2,c6in.2xlarge,reserved_1y,no_upfront,0.32281,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:30.032012 +AWS,ap-northeast-2,c6in.2xlarge,reserved_1y,partial_upfront,0.32281,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:15.650945 +AWS,ap-northeast-2,c6in.2xlarge,reserved_3y,all_upfront,0.32281,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:53.369034 +AWS,ap-northeast-2,c6in.2xlarge,reserved_3y,no_upfront,0.32281,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:32.382363 +AWS,ap-northeast-2,c6in.2xlarge,reserved_3y,partial_upfront,0.32281,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:27.452196 +AWS,ap-northeast-2,c6in.2xlarge,spot,NA,0.184223,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172264 +AWS,ap-northeast-2,c6in.32xlarge,on_demand,NA,8.1984,USD,AWS Pricing API,2025-11-30T08:58:52.042452 +AWS,ap-northeast-2,c6in.32xlarge,reserved_1y,all_upfront,9.037443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:23.412142 +AWS,ap-northeast-2,c6in.32xlarge,reserved_1y,no_upfront,9.037443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:04.533824 +AWS,ap-northeast-2,c6in.32xlarge,reserved_1y,partial_upfront,9.037443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:49.652817 +AWS,ap-northeast-2,c6in.32xlarge,reserved_3y,all_upfront,3.012481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:26.990017 +AWS,ap-northeast-2,c6in.32xlarge,reserved_3y,no_upfront,3.012481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:07.032735 +AWS,ap-northeast-2,c6in.32xlarge,reserved_3y,partial_upfront,3.012481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:01.351041 +AWS,ap-northeast-2,c6in.32xlarge,spot,NA,2.746545,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172952 +AWS,ap-northeast-2,c6in.4xlarge,on_demand,NA,1.0248,USD,AWS Pricing API,2025-11-30T08:57:52.380996 +AWS,ap-northeast-2,c6in.4xlarge,reserved_1y,all_upfront,0.602626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:23.802285 +AWS,ap-northeast-2,c6in.4xlarge,reserved_1y,no_upfront,0.602626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:04.495901 +AWS,ap-northeast-2,c6in.4xlarge,reserved_1y,partial_upfront,0.602626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:50.258525 +AWS,ap-northeast-2,c6in.4xlarge,reserved_3y,all_upfront,0.200875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:28.237509 +AWS,ap-northeast-2,c6in.4xlarge,reserved_3y,no_upfront,0.200875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:06.486183 +AWS,ap-northeast-2,c6in.4xlarge,reserved_3y,partial_upfront,0.200875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:02.184269 +AWS,ap-northeast-2,c6in.4xlarge,spot,NA,0.391486,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171643 +AWS,ap-northeast-2,c6in.8xlarge,on_demand,NA,2.0496,USD,AWS Pricing API,2025-11-30T08:58:22.302762 +AWS,ap-northeast-2,c6in.8xlarge,reserved_1y,all_upfront,1.602416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:53.777925 +AWS,ap-northeast-2,c6in.8xlarge,reserved_1y,no_upfront,1.602416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:34.500582 +AWS,ap-northeast-2,c6in.8xlarge,reserved_1y,partial_upfront,1.602416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:20.098839 +AWS,ap-northeast-2,c6in.8xlarge,reserved_3y,all_upfront,0.801199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:57.739167 +AWS,ap-northeast-2,c6in.8xlarge,reserved_3y,no_upfront,0.801199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:36.915634 +AWS,ap-northeast-2,c6in.8xlarge,reserved_3y,partial_upfront,0.801199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:31.859434 +AWS,ap-northeast-2,c6in.8xlarge,spot,NA,0.734723,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172344 +AWS,ap-northeast-2,c6in.xlarge,on_demand,NA,0.2562,USD,AWS Pricing API,2025-11-30T08:58:10.140144 +AWS,ap-northeast-2,c6in.xlarge,reserved_1y,all_upfront,0.186872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:41.553244 +AWS,ap-northeast-2,c6in.xlarge,reserved_1y,no_upfront,0.186872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:22.301214 +AWS,ap-northeast-2,c6in.xlarge,reserved_1y,partial_upfront,0.186872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:07.983365 +AWS,ap-northeast-2,c6in.xlarge,reserved_3y,all_upfront,0.062291,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:45.621770 +AWS,ap-northeast-2,c6in.xlarge,reserved_3y,no_upfront,0.062291,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:24.537595 +AWS,ap-northeast-2,c6in.xlarge,reserved_3y,partial_upfront,0.062291,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:19.771253 +AWS,ap-northeast-2,c6in.xlarge,spot,NA,0.091436,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172075 +AWS,ap-northeast-2,c7g.12xlarge,on_demand,NA,1.9584,USD,AWS Pricing API,2025-11-30T08:58:20.140043 +AWS,ap-northeast-2,c7g.12xlarge,reserved_1y,all_upfront,1.207534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:51.612814 +AWS,ap-northeast-2,c7g.12xlarge,reserved_1y,no_upfront,1.207534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:32.326733 +AWS,ap-northeast-2,c7g.12xlarge,reserved_1y,partial_upfront,1.207534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:17.939131 +AWS,ap-northeast-2,c7g.12xlarge,reserved_3y,all_upfront,0.402511,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:55.632016 +AWS,ap-northeast-2,c7g.12xlarge,reserved_3y,no_upfront,0.402511,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:34.713441 +AWS,ap-northeast-2,c7g.12xlarge,reserved_3y,partial_upfront,0.402511,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:29.721829 +AWS,ap-northeast-2,c7g.12xlarge,spot,NA,0.697495,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172308 +AWS,ap-northeast-2,c7g.16xlarge,on_demand,NA,2.6112,USD,AWS Pricing API,2025-11-30T08:58:29.722471 +AWS,ap-northeast-2,c7g.16xlarge,reserved_1y,all_upfront,1.1868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:01.171485 +AWS,ap-northeast-2,c7g.16xlarge,reserved_1y,no_upfront,1.1868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:42.033911 +AWS,ap-northeast-2,c7g.16xlarge,reserved_1y,partial_upfront,1.1868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:27.552923 +AWS,ap-northeast-2,c7g.16xlarge,reserved_3y,all_upfront,1.1868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:05.065786 +AWS,ap-northeast-2,c7g.16xlarge,reserved_3y,no_upfront,1.1868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:44.465475 +AWS,ap-northeast-2,c7g.16xlarge,reserved_3y,partial_upfront,1.1868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:39.233677 +AWS,ap-northeast-2,c7g.16xlarge,spot,NA,0.932283,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172515 +AWS,ap-northeast-2,c7g.2xlarge,on_demand,NA,0.3264,USD,AWS Pricing API,2025-11-30T08:58:48.535299 +AWS,ap-northeast-2,c7g.2xlarge,reserved_1y,all_upfront,0.27475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:19.914942 +AWS,ap-northeast-2,c7g.2xlarge,reserved_1y,no_upfront,0.27475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:00.983697 +AWS,ap-northeast-2,c7g.2xlarge,reserved_1y,partial_upfront,0.27475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:46.153532 +AWS,ap-northeast-2,c7g.2xlarge,reserved_3y,all_upfront,0.137383,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:23.443904 +AWS,ap-northeast-2,c7g.2xlarge,reserved_3y,no_upfront,0.137383,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:03.428836 +AWS,ap-northeast-2,c7g.2xlarge,reserved_3y,partial_upfront,0.137383,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:57.837971 +AWS,ap-northeast-2,c7g.2xlarge,spot,NA,0.124236,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172912 +AWS,ap-northeast-2,c7g.4xlarge,on_demand,NA,0.6528,USD,AWS Pricing API,2025-11-30T08:58:05.375186 +AWS,ap-northeast-2,c7g.4xlarge,reserved_1y,all_upfront,0.473244,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:36.842696 +AWS,ap-northeast-2,c7g.4xlarge,reserved_1y,no_upfront,0.473244,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:17.544108 +AWS,ap-northeast-2,c7g.4xlarge,reserved_1y,partial_upfront,0.473244,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:03.270511 +AWS,ap-northeast-2,c7g.4xlarge,reserved_3y,all_upfront,0.315481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:40.932554 +AWS,ap-northeast-2,c7g.4xlarge,reserved_3y,no_upfront,0.315481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:19.739340 +AWS,ap-northeast-2,c7g.4xlarge,reserved_3y,partial_upfront,0.315481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:15.108450 +AWS,ap-northeast-2,c7g.4xlarge,spot,NA,0.23352,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171976 +AWS,ap-northeast-2,c7g.8xlarge,on_demand,NA,1.3056,USD,AWS Pricing API,2025-11-30T08:58:16.398661 +AWS,ap-northeast-2,c7g.8xlarge,reserved_1y,all_upfront,0.8625,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:47.832322 +AWS,ap-northeast-2,c7g.8xlarge,reserved_1y,no_upfront,0.8625,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:28.544617 +AWS,ap-northeast-2,c7g.8xlarge,reserved_1y,partial_upfront,0.8625,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:14.171699 +AWS,ap-northeast-2,c7g.8xlarge,reserved_3y,all_upfront,0.8625,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:51.873929 +AWS,ap-northeast-2,c7g.8xlarge,reserved_3y,no_upfront,0.8625,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:30.878217 +AWS,ap-northeast-2,c7g.8xlarge,reserved_3y,partial_upfront,0.8625,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:25.967598 +AWS,ap-northeast-2,c7g.8xlarge,spot,NA,0.463513,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172236 +AWS,ap-northeast-2,c7g.xlarge,on_demand,NA,0.1632,USD,AWS Pricing API,2025-11-30T08:58:03.473468 +AWS,ap-northeast-2,c7g.xlarge,reserved_1y,all_upfront,0.137268,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:34.959774 +AWS,ap-northeast-2,c7g.xlarge,reserved_1y,no_upfront,0.137268,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:15.643834 +AWS,ap-northeast-2,c7g.xlarge,reserved_1y,partial_upfront,0.137268,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:01.365397 +AWS,ap-northeast-2,c7g.xlarge,reserved_3y,all_upfront,0.068623,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:39.067222 +AWS,ap-northeast-2,c7g.xlarge,reserved_3y,no_upfront,0.068623,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:17.816855 +AWS,ap-northeast-2,c7g.xlarge,reserved_3y,partial_upfront,0.068623,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:13.227732 +AWS,ap-northeast-2,c7g.xlarge,spot,NA,0.064287,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171911 +AWS,ap-northeast-2,c7gd.12xlarge,on_demand,NA,2.495,USD,AWS Pricing API,2025-11-30T08:58:14.333292 +AWS,ap-northeast-2,c7gd.12xlarge,reserved_1y,all_upfront,1.0779,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:45.824942 +AWS,ap-northeast-2,c7gd.12xlarge,reserved_1y,no_upfront,1.0779,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:26.515735 +AWS,ap-northeast-2,c7gd.12xlarge,reserved_1y,partial_upfront,1.0779,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:12.147540 +AWS,ap-northeast-2,c7gd.12xlarge,reserved_3y,all_upfront,1.0779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:49.872591 +AWS,ap-northeast-2,c7gd.12xlarge,reserved_3y,no_upfront,1.0779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:28.822661 +AWS,ap-northeast-2,c7gd.12xlarge,reserved_3y,partial_upfront,1.0779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:23.933363 +AWS,ap-northeast-2,c7gd.12xlarge,spot,NA,0.879967,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172183 +AWS,ap-northeast-2,c7gd.16xlarge,on_demand,NA,3.3267,USD,AWS Pricing API,2025-11-30T08:58:00.368396 +AWS,ap-northeast-2,c7gd.16xlarge,reserved_1y,all_upfront,2.661305,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:31.860206 +AWS,ap-northeast-2,c7gd.16xlarge,reserved_1y,no_upfront,2.661305,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:12.527352 +AWS,ap-northeast-2,c7gd.16xlarge,reserved_1y,partial_upfront,2.661305,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:58.291276 +AWS,ap-northeast-2,c7gd.16xlarge,reserved_3y,all_upfront,1.330635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:36.057241 +AWS,ap-northeast-2,c7gd.16xlarge,reserved_3y,no_upfront,1.330635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:14.654394 +AWS,ap-northeast-2,c7gd.16xlarge,reserved_3y,partial_upfront,1.330635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:10.155586 +AWS,ap-northeast-2,c7gd.16xlarge,spot,NA,1.155229,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171879 +AWS,ap-northeast-2,c7gd.2xlarge,on_demand,NA,0.4158,USD,AWS Pricing API,2025-11-30T08:58:29.582680 +AWS,ap-northeast-2,c7gd.2xlarge,reserved_1y,all_upfront,0.262,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:01.035704 +AWS,ap-northeast-2,c7gd.2xlarge,reserved_1y,no_upfront,0.262,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:41.898131 +AWS,ap-northeast-2,c7gd.2xlarge,reserved_1y,partial_upfront,0.262,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:27.418568 +AWS,ap-northeast-2,c7gd.2xlarge,reserved_3y,all_upfront,0.262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:04.930227 +AWS,ap-northeast-2,c7gd.2xlarge,reserved_3y,no_upfront,0.262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:44.326602 +AWS,ap-northeast-2,c7gd.2xlarge,reserved_3y,partial_upfront,0.262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:39.100907 +AWS,ap-northeast-2,c7gd.2xlarge,spot,NA,0.150757,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172503 +AWS,ap-northeast-2,c7gd.4xlarge,on_demand,NA,0.8317,USD,AWS Pricing API,2025-11-30T08:58:17.070215 +AWS,ap-northeast-2,c7gd.4xlarge,reserved_1y,all_upfront,0.613535,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:48.510623 +AWS,ap-northeast-2,c7gd.4xlarge,reserved_1y,no_upfront,0.613535,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:29.218709 +AWS,ap-northeast-2,c7gd.4xlarge,reserved_1y,partial_upfront,0.613535,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:14.840070 +AWS,ap-northeast-2,c7gd.4xlarge,reserved_3y,all_upfront,0.409045,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:52.550743 +AWS,ap-northeast-2,c7gd.4xlarge,reserved_3y,no_upfront,0.409045,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:31.556153 +AWS,ap-northeast-2,c7gd.4xlarge,reserved_3y,partial_upfront,0.409045,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:26.630561 +AWS,ap-northeast-2,c7gd.4xlarge,spot,NA,0.3512,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172244 +AWS,ap-northeast-2,c7gd.8xlarge,on_demand,NA,1.6634,USD,AWS Pricing API,2025-11-30T08:58:08.650203 +AWS,ap-northeast-2,c7gd.8xlarge,reserved_1y,all_upfront,0.978082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:40.059225 +AWS,ap-northeast-2,c7gd.8xlarge,reserved_1y,no_upfront,0.978082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:20.799324 +AWS,ap-northeast-2,c7gd.8xlarge,reserved_1y,partial_upfront,0.978082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:06.492099 +AWS,ap-northeast-2,c7gd.8xlarge,reserved_3y,all_upfront,0.326027,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:44.154465 +AWS,ap-northeast-2,c7gd.8xlarge,reserved_3y,no_upfront,0.326027,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:23.039852 +AWS,ap-northeast-2,c7gd.8xlarge,reserved_3y,partial_upfront,0.326027,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:18.310950 +AWS,ap-northeast-2,c7gd.8xlarge,spot,NA,0.59784,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172055 +AWS,ap-northeast-2,c7gd.xlarge,on_demand,NA,0.2079,USD,AWS Pricing API,2025-11-30T08:58:47.862806 +AWS,ap-northeast-2,c7gd.xlarge,reserved_1y,all_upfront,0.1611,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:19.245253 +AWS,ap-northeast-2,c7gd.xlarge,reserved_1y,no_upfront,0.1611,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:00.292106 +AWS,ap-northeast-2,c7gd.xlarge,reserved_1y,partial_upfront,0.1611,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:45.478156 +AWS,ap-northeast-2,c7gd.xlarge,reserved_3y,all_upfront,0.1611,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:22.783801 +AWS,ap-northeast-2,c7gd.xlarge,reserved_3y,no_upfront,0.1611,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:02.740734 +AWS,ap-northeast-2,c7gd.xlarge,reserved_3y,partial_upfront,0.1611,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:57.165242 +AWS,ap-northeast-2,c7gd.xlarge,spot,NA,0.076914,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172892 +AWS,ap-northeast-2,c7i.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:58:08.925079 +AWS,ap-northeast-2,c7i.12xlarge,reserved_1y,all_upfront,1.491667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:40.331121 +AWS,ap-northeast-2,c7i.12xlarge,reserved_1y,no_upfront,1.491667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:21.070478 +AWS,ap-northeast-2,c7i.12xlarge,reserved_1y,partial_upfront,1.491667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:06.764630 +AWS,ap-northeast-2,c7i.12xlarge,reserved_3y,all_upfront,0.497222,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:44.432479 +AWS,ap-northeast-2,c7i.12xlarge,reserved_3y,no_upfront,0.497222,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:23.312011 +AWS,ap-northeast-2,c7i.12xlarge,reserved_3y,partial_upfront,0.497222,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:18.577337 +AWS,ap-northeast-2,c7i.12xlarge,spot,NA,0.804202,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172039 +AWS,ap-northeast-2,c7i.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:58:46.134901 +AWS,ap-northeast-2,c7i.16xlarge,reserved_1y,all_upfront,1.988813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:17.496041 +AWS,ap-northeast-2,c7i.16xlarge,reserved_1y,no_upfront,1.988813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:58.532827 +AWS,ap-northeast-2,c7i.16xlarge,reserved_1y,partial_upfront,1.988813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:43.732560 +AWS,ap-northeast-2,c7i.16xlarge,reserved_3y,all_upfront,0.662938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:21.064116 +AWS,ap-northeast-2,c7i.16xlarge,reserved_3y,no_upfront,0.662938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:00.950526 +AWS,ap-northeast-2,c7i.16xlarge,reserved_3y,partial_upfront,0.662938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:55.439182 +AWS,ap-northeast-2,c7i.16xlarge,spot,NA,1.091312,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172849 +AWS,ap-northeast-2,c7i.24xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:58:19.735725 +AWS,ap-northeast-2,c7i.24xlarge,reserved_1y,all_upfront,3.507801,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:51.200441 +AWS,ap-northeast-2,c7i.24xlarge,reserved_1y,no_upfront,3.507801,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:31.921157 +AWS,ap-northeast-2,c7i.24xlarge,reserved_1y,partial_upfront,3.507801,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:17.533965 +AWS,ap-northeast-2,c7i.24xlarge,reserved_3y,all_upfront,2.338547,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:55.233687 +AWS,ap-northeast-2,c7i.24xlarge,reserved_3y,no_upfront,2.338547,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:34.303800 +AWS,ap-northeast-2,c7i.24xlarge,reserved_3y,partial_upfront,2.338547,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:29.323000 +AWS,ap-northeast-2,c7i.24xlarge,spot,NA,1.581217,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172285 +AWS,ap-northeast-2,c7i.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:58:34.385951 +AWS,ap-northeast-2,c7i.2xlarge,reserved_1y,all_upfront,0.21047,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:05.808365 +AWS,ap-northeast-2,c7i.2xlarge,reserved_1y,no_upfront,0.21047,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:46.702645 +AWS,ap-northeast-2,c7i.2xlarge,reserved_1y,partial_upfront,0.21047,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:32.183054 +AWS,ap-northeast-2,c7i.2xlarge,reserved_3y,all_upfront,0.21047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:09.604554 +AWS,ap-northeast-2,c7i.2xlarge,reserved_3y,no_upfront,0.21047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:49.164528 +AWS,ap-northeast-2,c7i.2xlarge,reserved_3y,partial_upfront,0.21047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:43.814583 +AWS,ap-northeast-2,c7i.2xlarge,spot,NA,0.152379,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172619 +AWS,ap-northeast-2,c7i.48xlarge,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:58:02.394622 +AWS,ap-northeast-2,c7i.48xlarge,reserved_1y,all_upfront,5.966553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:33.874421 +AWS,ap-northeast-2,c7i.48xlarge,reserved_1y,no_upfront,5.966553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:14.561471 +AWS,ap-northeast-2,c7i.48xlarge,reserved_1y,partial_upfront,5.966553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:00.292810 +AWS,ap-northeast-2,c7i.48xlarge,reserved_3y,all_upfront,1.988851,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:38.020020 +AWS,ap-northeast-2,c7i.48xlarge,reserved_3y,no_upfront,1.988851,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:16.717725 +AWS,ap-northeast-2,c7i.48xlarge,reserved_3y,partial_upfront,1.988851,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:12.149087 +AWS,ap-northeast-2,c7i.48xlarge,spot,NA,3.127947,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171923 +AWS,ap-northeast-2,c7i.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:58:15.412703 +AWS,ap-northeast-2,c7i.4xlarge,reserved_1y,all_upfront,1.14589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:46.899570 +AWS,ap-northeast-2,c7i.4xlarge,reserved_1y,no_upfront,1.14589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:27.598966 +AWS,ap-northeast-2,c7i.4xlarge,reserved_1y,partial_upfront,1.14589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:13.229957 +AWS,ap-northeast-2,c7i.4xlarge,reserved_3y,all_upfront,0.381963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:50.954934 +AWS,ap-northeast-2,c7i.4xlarge,reserved_3y,no_upfront,0.381963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:29.923566 +AWS,ap-northeast-2,c7i.4xlarge,reserved_3y,partial_upfront,0.381963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:25.017616 +AWS,ap-northeast-2,c7i.4xlarge,spot,NA,0.29434,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172195 +AWS,ap-northeast-2,c7i.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:57:47.363530 +AWS,ap-northeast-2,c7i.8xlarge,reserved_1y,all_upfront,2.291781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:18.719273 +AWS,ap-northeast-2,c7i.8xlarge,reserved_1y,no_upfront,2.291781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:59.397347 +AWS,ap-northeast-2,c7i.8xlarge,reserved_1y,partial_upfront,2.291781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:45.253717 +AWS,ap-northeast-2,c7i.8xlarge,reserved_3y,all_upfront,0.763927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:23.343286 +AWS,ap-northeast-2,c7i.8xlarge,reserved_3y,no_upfront,0.763927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:01.317591 +AWS,ap-northeast-2,c7i.8xlarge,reserved_3y,partial_upfront,0.763927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:57.179031 +AWS,ap-northeast-2,c7i.8xlarge,spot,NA,0.571202,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171547 +AWS,ap-northeast-2,c7i.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T08:58:33.832815 +AWS,ap-northeast-2,c7i.large,reserved_1y,all_upfront,0.07673,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:05.260637 +AWS,ap-northeast-2,c7i.large,reserved_1y,no_upfront,0.07673,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:46.144870 +AWS,ap-northeast-2,c7i.large,reserved_1y,partial_upfront,0.07673,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:31.647829 +AWS,ap-northeast-2,c7i.large,reserved_3y,all_upfront,0.07673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:09.071058 +AWS,ap-northeast-2,c7i.large,reserved_3y,no_upfront,0.07673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:48.617458 +AWS,ap-northeast-2,c7i.large,reserved_3y,partial_upfront,0.07673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:43.265324 +AWS,ap-northeast-2,c7i.large,spot,NA,0.03719,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172615 +AWS,ap-northeast-2,c7i.metal-24xl,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:58:03.196901 +AWS,ap-northeast-2,c7i.metal-24xl,reserved_1y,all_upfront,6.875342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:34.687939 +AWS,ap-northeast-2,c7i.metal-24xl,reserved_1y,no_upfront,6.875342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:15.374462 +AWS,ap-northeast-2,c7i.metal-24xl,reserved_1y,partial_upfront,6.875342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:01.093673 +AWS,ap-northeast-2,c7i.metal-24xl,reserved_3y,all_upfront,2.291781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:38.806189 +AWS,ap-northeast-2,c7i.metal-24xl,reserved_3y,no_upfront,2.291781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:17.543820 +AWS,ap-northeast-2,c7i.metal-24xl,reserved_3y,partial_upfront,2.291781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:12.949476 +AWS,ap-northeast-2,c7i.metal-24xl,spot,NA,1.780997,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171915 +AWS,ap-northeast-2,c7i.metal-48xl,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:57:51.454898 +AWS,ap-northeast-2,c7i.metal-48xl,reserved_1y,all_upfront,6.088358,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:22.870844 +AWS,ap-northeast-2,c7i.metal-48xl,reserved_1y,no_upfront,6.088358,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:03.529086 +AWS,ap-northeast-2,c7i.metal-48xl,reserved_1y,partial_upfront,6.088358,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:49.315993 +AWS,ap-northeast-2,c7i.metal-48xl,reserved_3y,all_upfront,4.058906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:27.311635 +AWS,ap-northeast-2,c7i.metal-48xl,reserved_3y,no_upfront,4.058906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:05.531862 +AWS,ap-northeast-2,c7i.metal-48xl,reserved_3y,partial_upfront,4.058906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:01.234654 +AWS,ap-northeast-2,c7i.metal-48xl,spot,NA,3.456632,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171635 +AWS,ap-northeast-2,c7i.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:58:45.193973 +AWS,ap-northeast-2,c7i.xlarge,reserved_1y,all_upfront,0.143265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:16.556961 +AWS,ap-northeast-2,c7i.xlarge,reserved_1y,no_upfront,0.143265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:57.588791 +AWS,ap-northeast-2,c7i.xlarge,reserved_1y,partial_upfront,0.143265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:42.795374 +AWS,ap-northeast-2,c7i.xlarge,reserved_3y,all_upfront,0.047755,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:20.072826 +AWS,ap-northeast-2,c7i.xlarge,reserved_3y,no_upfront,0.047755,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:59.995433 +AWS,ap-northeast-2,c7i.xlarge,reserved_3y,partial_upfront,0.047755,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:54.486199 +AWS,ap-northeast-2,c7i.xlarge,spot,NA,0.074283,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172818 +AWS,ap-northeast-2,c8g.12xlarge,on_demand,NA,2.15424,USD,AWS Pricing API,2025-11-30T08:58:42.746472 +AWS,ap-northeast-2,c8g.12xlarge,reserved_1y,all_upfront,2.556507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:14.124200 +AWS,ap-northeast-2,c8g.12xlarge,reserved_1y,no_upfront,2.556507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:55.108662 +AWS,ap-northeast-2,c8g.12xlarge,reserved_1y,partial_upfront,2.556507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:40.340912 +AWS,ap-northeast-2,c8g.12xlarge,reserved_3y,all_upfront,0.852169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:17.683094 +AWS,ap-northeast-2,c8g.12xlarge,reserved_3y,no_upfront,0.852169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:57.500296 +AWS,ap-northeast-2,c8g.12xlarge,reserved_3y,partial_upfront,0.852169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:52.061256 +AWS,ap-northeast-2,c8g.12xlarge,spot,NA,0.682389,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172766 +AWS,ap-northeast-2,c8g.16xlarge,on_demand,NA,2.87232,USD,AWS Pricing API,2025-11-30T08:57:46.261055 +AWS,ap-northeast-2,c8g.16xlarge,reserved_1y,all_upfront,2.77656,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:17.636469 +AWS,ap-northeast-2,c8g.16xlarge,reserved_1y,no_upfront,2.77656,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:58.301502 +AWS,ap-northeast-2,c8g.16xlarge,reserved_1y,partial_upfront,2.77656,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:44.182848 +AWS,ap-northeast-2,c8g.16xlarge,reserved_3y,all_upfront,1.38828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:22.292683 +AWS,ap-northeast-2,c8g.16xlarge,reserved_3y,no_upfront,1.38828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:00.221810 +AWS,ap-northeast-2,c8g.16xlarge,reserved_3y,partial_upfront,1.38828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:56.114208 +AWS,ap-northeast-2,c8g.16xlarge,spot,NA,0.958515,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171518 +AWS,ap-northeast-2,c8g.24xlarge,on_demand,NA,4.30848,USD,AWS Pricing API,2025-11-30T08:58:32.610673 +AWS,ap-northeast-2,c8g.24xlarge,reserved_1y,all_upfront,2.710745,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:04.036771 +AWS,ap-northeast-2,c8g.24xlarge,reserved_1y,no_upfront,2.710745,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:44.907992 +AWS,ap-northeast-2,c8g.24xlarge,reserved_1y,partial_upfront,2.710745,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:30.442753 +AWS,ap-northeast-2,c8g.24xlarge,reserved_3y,all_upfront,1.807168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:07.867491 +AWS,ap-northeast-2,c8g.24xlarge,reserved_3y,no_upfront,1.807168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:47.379910 +AWS,ap-northeast-2,c8g.24xlarge,reserved_3y,partial_upfront,1.807168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:42.052887 +AWS,ap-northeast-2,c8g.24xlarge,spot,NA,1.371595,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172571 +AWS,ap-northeast-2,c8g.2xlarge,on_demand,NA,0.35904,USD,AWS Pricing API,2025-11-30T08:57:58.338090 +AWS,ap-northeast-2,c8g.2xlarge,reserved_1y,all_upfront,0.221347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:29.825489 +AWS,ap-northeast-2,c8g.2xlarge,reserved_1y,no_upfront,0.221347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:10.487613 +AWS,ap-northeast-2,c8g.2xlarge,reserved_1y,partial_upfront,0.221347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:56.254643 +AWS,ap-northeast-2,c8g.2xlarge,reserved_3y,all_upfront,0.073782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:34.068954 +AWS,ap-northeast-2,c8g.2xlarge,reserved_3y,no_upfront,0.073782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:12.571720 +AWS,ap-northeast-2,c8g.2xlarge,reserved_3y,partial_upfront,0.073782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:08.133257 +AWS,ap-northeast-2,c8g.2xlarge,spot,NA,0.144089,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171835 +AWS,ap-northeast-2,c8g.48xlarge,on_demand,NA,8.61696,USD,AWS Pricing API,2025-11-30T08:58:51.490165 +AWS,ap-northeast-2,c8g.48xlarge,reserved_1y,all_upfront,6.55966,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:22.871561 +AWS,ap-northeast-2,c8g.48xlarge,reserved_1y,no_upfront,6.55966,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:03.985312 +AWS,ap-northeast-2,c8g.48xlarge,reserved_1y,partial_upfront,6.55966,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:49.102940 +AWS,ap-northeast-2,c8g.48xlarge,reserved_3y,all_upfront,6.55966,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:26.459586 +AWS,ap-northeast-2,c8g.48xlarge,reserved_3y,no_upfront,6.55966,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:06.464404 +AWS,ap-northeast-2,c8g.48xlarge,reserved_3y,partial_upfront,6.55966,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:00.793016 +AWS,ap-northeast-2,c8g.48xlarge,spot,NA,2.752306,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172956 +AWS,ap-northeast-2,c8g.4xlarge,on_demand,NA,0.71808,USD,AWS Pricing API,2025-11-30T08:58:00.768366 +AWS,ap-northeast-2,c8g.4xlarge,reserved_1y,all_upfront,1.020434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:32.263319 +AWS,ap-northeast-2,c8g.4xlarge,reserved_1y,no_upfront,1.020434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:12.935147 +AWS,ap-northeast-2,c8g.4xlarge,reserved_1y,partial_upfront,1.020434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:58.689704 +AWS,ap-northeast-2,c8g.4xlarge,reserved_3y,all_upfront,0.340145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:36.454316 +AWS,ap-northeast-2,c8g.4xlarge,reserved_3y,no_upfront,0.340145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:15.062894 +AWS,ap-northeast-2,c8g.4xlarge,reserved_3y,partial_upfront,0.340145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:10.553525 +AWS,ap-northeast-2,c8g.4xlarge,spot,NA,0.271189,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171866 +AWS,ap-northeast-2,c8g.8xlarge,on_demand,NA,1.43616,USD,AWS Pricing API,2025-11-30T08:58:04.285730 +AWS,ap-northeast-2,c8g.8xlarge,reserved_1y,all_upfront,1.208811,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:35.762161 +AWS,ap-northeast-2,c8g.8xlarge,reserved_1y,no_upfront,1.208811,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:16.451501 +AWS,ap-northeast-2,c8g.8xlarge,reserved_1y,partial_upfront,1.208811,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:02.178804 +AWS,ap-northeast-2,c8g.8xlarge,reserved_3y,all_upfront,0.604397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:39.867291 +AWS,ap-northeast-2,c8g.8xlarge,reserved_3y,no_upfront,0.604397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:18.636614 +AWS,ap-northeast-2,c8g.8xlarge,reserved_3y,partial_upfront,0.604397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:14.034697 +AWS,ap-northeast-2,c8g.8xlarge,spot,NA,0.48482,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171956 +AWS,ap-northeast-2,c8g.large,on_demand,NA,0.08976,USD,AWS Pricing API,2025-11-30T08:58:45.857727 +AWS,ap-northeast-2,c8g.large,reserved_1y,all_upfront,0.065074,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:17.225501 +AWS,ap-northeast-2,c8g.large,reserved_1y,no_upfront,0.065074,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:58.261313 +AWS,ap-northeast-2,c8g.large,reserved_1y,partial_upfront,0.065074,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:43.463117 +AWS,ap-northeast-2,c8g.large,reserved_3y,all_upfront,0.043385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:20.787008 +AWS,ap-northeast-2,c8g.large,reserved_3y,no_upfront,0.043385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:00.678519 +AWS,ap-northeast-2,c8g.large,reserved_3y,partial_upfront,0.043385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:55.167158 +AWS,ap-northeast-2,c8g.large,spot,NA,0.032946,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172858 +AWS,ap-northeast-2,c8g.medium,on_demand,NA,0.04488,USD,AWS Pricing API,2025-11-30T08:58:30.416327 +AWS,ap-northeast-2,c8g.medium,reserved_1y,all_upfront,0.03416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:01.855912 +AWS,ap-northeast-2,c8g.medium,reserved_1y,no_upfront,0.03416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:42.722547 +AWS,ap-northeast-2,c8g.medium,reserved_1y,partial_upfront,0.03416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:28.243368 +AWS,ap-northeast-2,c8g.medium,reserved_3y,all_upfront,0.03416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:05.734719 +AWS,ap-northeast-2,c8g.medium,reserved_3y,no_upfront,0.03416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:45.159667 +AWS,ap-northeast-2,c8g.medium,reserved_3y,partial_upfront,0.03416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:39.899467 +AWS,ap-northeast-2,c8g.medium,spot,NA,0.013211,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172531 +AWS,ap-northeast-2,c8g.xlarge,on_demand,NA,0.17952,USD,AWS Pricing API,2025-11-30T08:57:54.558603 +AWS,ap-northeast-2,c8g.xlarge,reserved_1y,all_upfront,0.127511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:25.971072 +AWS,ap-northeast-2,c8g.xlarge,reserved_1y,no_upfront,0.127511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:06.690538 +AWS,ap-northeast-2,c8g.xlarge,reserved_1y,partial_upfront,0.127511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:52.434728 +AWS,ap-northeast-2,c8g.xlarge,reserved_3y,all_upfront,0.042504,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:30.359878 +AWS,ap-northeast-2,c8g.xlarge,reserved_3y,no_upfront,0.042504,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:08.697886 +AWS,ap-northeast-2,c8g.xlarge,reserved_3y,partial_upfront,0.042504,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:04.342618 +AWS,ap-northeast-2,c8g.xlarge,spot,NA,0.067408,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171724 +AWS,ap-northeast-2,g4dn.12xlarge,on_demand,NA,4.812,USD,AWS Pricing API,2025-11-30T08:57:51.318562 +AWS,ap-northeast-2,g4dn.12xlarge,reserved_1y,all_upfront,3.249087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:22.636829 +AWS,ap-northeast-2,g4dn.12xlarge,reserved_1y,no_upfront,3.249087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:03.390558 +AWS,ap-northeast-2,g4dn.12xlarge,reserved_1y,partial_upfront,3.249087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:49.180998 +AWS,ap-northeast-2,g4dn.12xlarge,reserved_3y,all_upfront,1.083029,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:27.179481 +AWS,ap-northeast-2,g4dn.12xlarge,reserved_3y,no_upfront,1.083029,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:05.395566 +AWS,ap-northeast-2,g4dn.12xlarge,reserved_3y,partial_upfront,1.083029,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:01.100678 +AWS,ap-northeast-2,g4dn.12xlarge,spot,NA,2.308634,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171609 +AWS,ap-northeast-2,g4dn.16xlarge,on_demand,NA,5.353,USD,AWS Pricing API,2025-11-30T08:57:57.531133 +AWS,ap-northeast-2,g4dn.16xlarge,reserved_1y,all_upfront,7.538584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:28.929825 +AWS,ap-northeast-2,g4dn.16xlarge,reserved_1y,no_upfront,7.538584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:09.664866 +AWS,ap-northeast-2,g4dn.16xlarge,reserved_1y,partial_upfront,7.538584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:55.437188 +AWS,ap-northeast-2,g4dn.16xlarge,reserved_3y,all_upfront,2.512861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:33.272641 +AWS,ap-northeast-2,g4dn.16xlarge,reserved_3y,no_upfront,2.512861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:11.738398 +AWS,ap-northeast-2,g4dn.16xlarge,reserved_3y,partial_upfront,2.512861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:07.300975 +AWS,ap-northeast-2,g4dn.16xlarge,spot,NA,1.74252,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171805 +AWS,ap-northeast-2,g4dn.2xlarge,on_demand,NA,0.925,USD,AWS Pricing API,2025-11-30T08:58:31.359568 +AWS,ap-northeast-2,g4dn.2xlarge,reserved_1y,all_upfront,0.669,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:02.817243 +AWS,ap-northeast-2,g4dn.2xlarge,reserved_1y,no_upfront,0.669,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:43.678909 +AWS,ap-northeast-2,g4dn.2xlarge,reserved_1y,partial_upfront,0.669,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:29.205089 +AWS,ap-northeast-2,g4dn.2xlarge,reserved_3y,all_upfront,0.669,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:06.664919 +AWS,ap-northeast-2,g4dn.2xlarge,reserved_3y,no_upfront,0.669,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:46.121868 +AWS,ap-northeast-2,g4dn.2xlarge,reserved_3y,partial_upfront,0.669,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:40.841757 +AWS,ap-northeast-2,g4dn.2xlarge,spot,NA,0.336444,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172539 +AWS,ap-northeast-2,g4dn.4xlarge,on_demand,NA,1.481,USD,AWS Pricing API,2025-11-30T08:58:12.024003 +AWS,ap-northeast-2,g4dn.4xlarge,reserved_1y,all_upfront,1.071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:43.485163 +AWS,ap-northeast-2,g4dn.4xlarge,reserved_1y,no_upfront,1.071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:24.197534 +AWS,ap-northeast-2,g4dn.4xlarge,reserved_1y,partial_upfront,1.071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:09.856823 +AWS,ap-northeast-2,g4dn.4xlarge,reserved_3y,all_upfront,1.071,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:47.484885 +AWS,ap-northeast-2,g4dn.4xlarge,reserved_3y,no_upfront,1.071,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:26.476612 +AWS,ap-northeast-2,g4dn.4xlarge,reserved_3y,partial_upfront,1.071,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:21.655797 +AWS,ap-northeast-2,g4dn.4xlarge,spot,NA,0.53402,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172151 +AWS,ap-northeast-2,g4dn.8xlarge,on_demand,NA,2.677,USD,AWS Pricing API,2025-11-30T08:58:14.745821 +AWS,ap-northeast-2,g4dn.8xlarge,reserved_1y,all_upfront,1.807306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:46.228118 +AWS,ap-northeast-2,g4dn.8xlarge,reserved_1y,no_upfront,1.807306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:26.921353 +AWS,ap-northeast-2,g4dn.8xlarge,reserved_1y,partial_upfront,1.807306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:12.553768 +AWS,ap-northeast-2,g4dn.8xlarge,reserved_3y,all_upfront,0.602435,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:50.268361 +AWS,ap-northeast-2,g4dn.8xlarge,reserved_3y,no_upfront,0.602435,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:29.234187 +AWS,ap-northeast-2,g4dn.8xlarge,reserved_3y,partial_upfront,0.602435,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:24.339841 +AWS,ap-northeast-2,g4dn.8xlarge,spot,NA,0.876432,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172216 +AWS,ap-northeast-2,g4dn.xlarge,on_demand,NA,0.647,USD,AWS Pricing API,2025-11-30T08:58:38.009648 +AWS,ap-northeast-2,g4dn.xlarge,reserved_1y,all_upfront,0.379795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:09.426615 +AWS,ap-northeast-2,g4dn.xlarge,reserved_1y,no_upfront,0.379795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:50.435979 +AWS,ap-northeast-2,g4dn.xlarge,reserved_1y,partial_upfront,0.379795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:35.787804 +AWS,ap-northeast-2,g4dn.xlarge,reserved_3y,all_upfront,0.126598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:13.139672 +AWS,ap-northeast-2,g4dn.xlarge,reserved_3y,no_upfront,0.126598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:52.854436 +AWS,ap-northeast-2,g4dn.xlarge,reserved_3y,partial_upfront,0.126598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:47.402925 +AWS,ap-northeast-2,g4dn.xlarge,spot,NA,0.255306,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172690 +AWS,ap-northeast-2,g5.12xlarge,on_demand,NA,6.97442,USD,AWS Pricing API,2025-11-30T08:57:36.480108 +AWS,ap-northeast-2,g5.12xlarge,reserved_1y,all_upfront,6.974422,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:08.080956 +AWS,ap-northeast-2,g5.12xlarge,reserved_1y,no_upfront,6.974422,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:48.468663 +AWS,ap-northeast-2,g5.12xlarge,reserved_1y,partial_upfront,6.974422,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:34.592797 +AWS,ap-northeast-2,g5.12xlarge,reserved_3y,all_upfront,3.487207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:12.868925 +AWS,ap-northeast-2,g5.12xlarge,reserved_3y,no_upfront,3.487207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:50.407146 +AWS,ap-northeast-2,g5.12xlarge,reserved_3y,partial_upfront,3.487207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:46.550553 +AWS,ap-northeast-2,g5.12xlarge,spot,NA,2.491021,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171293 +AWS,ap-northeast-2,g5.16xlarge,on_demand,NA,5.03653,USD,AWS Pricing API,2025-11-30T08:57:38.542450 +AWS,ap-northeast-2,g5.16xlarge,reserved_1y,all_upfront,4.029228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:10.101732 +AWS,ap-northeast-2,g5.16xlarge,reserved_1y,no_upfront,4.029228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:50.531978 +AWS,ap-northeast-2,g5.16xlarge,reserved_1y,partial_upfront,4.029228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:36.638146 +AWS,ap-northeast-2,g5.16xlarge,reserved_3y,all_upfront,2.014616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:14.857324 +AWS,ap-northeast-2,g5.16xlarge,reserved_3y,no_upfront,2.014616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:52.501420 +AWS,ap-northeast-2,g5.16xlarge,reserved_3y,partial_upfront,2.014616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:48.562195 +AWS,ap-northeast-2,g5.16xlarge,spot,NA,1.824753,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171334 +AWS,ap-northeast-2,g5.24xlarge,on_demand,NA,10.01404,USD,AWS Pricing API,2025-11-30T08:57:37.438344 +AWS,ap-northeast-2,g5.24xlarge,reserved_1y,all_upfront,5.40758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:09.026786 +AWS,ap-northeast-2,g5.24xlarge,reserved_1y,no_upfront,5.40758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:49.440636 +AWS,ap-northeast-2,g5.24xlarge,reserved_1y,partial_upfront,5.40758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:35.553751 +AWS,ap-northeast-2,g5.24xlarge,reserved_3y,all_upfront,5.40758,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:13.799002 +AWS,ap-northeast-2,g5.24xlarge,reserved_3y,no_upfront,5.40758,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:51.380134 +AWS,ap-northeast-2,g5.24xlarge,reserved_3y,partial_upfront,5.40758,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:47.486334 +AWS,ap-northeast-2,g5.24xlarge,spot,NA,3.700812,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171272 +AWS,ap-northeast-2,g5.2xlarge,on_demand,NA,1.4903,USD,AWS Pricing API,2025-11-30T08:57:54.703758 +AWS,ap-northeast-2,g5.2xlarge,reserved_1y,all_upfront,2.190753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:26.105123 +AWS,ap-northeast-2,g5.2xlarge,reserved_1y,no_upfront,2.190753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:06.827981 +AWS,ap-northeast-2,g5.2xlarge,reserved_1y,partial_upfront,2.190753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:52.569125 +AWS,ap-northeast-2,g5.2xlarge,reserved_3y,all_upfront,0.730251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:30.491912 +AWS,ap-northeast-2,g5.2xlarge,reserved_3y,no_upfront,0.730251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:08.844989 +AWS,ap-northeast-2,g5.2xlarge,reserved_3y,partial_upfront,0.730251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:04.481180 +AWS,ap-northeast-2,g5.2xlarge,spot,NA,0.528997,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171713 +AWS,ap-northeast-2,g5.48xlarge,on_demand,NA,20.02809,USD,AWS Pricing API,2025-11-30T08:57:39.232664 +AWS,ap-northeast-2,g5.48xlarge,reserved_1y,all_upfront,11.776484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:10.777591 +AWS,ap-northeast-2,g5.48xlarge,reserved_1y,no_upfront,11.776484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:51.249651 +AWS,ap-northeast-2,g5.48xlarge,reserved_1y,partial_upfront,11.776484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:37.333636 +AWS,ap-northeast-2,g5.48xlarge,reserved_3y,all_upfront,3.925495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:15.530034 +AWS,ap-northeast-2,g5.48xlarge,reserved_3y,no_upfront,3.925495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:53.186736 +AWS,ap-northeast-2,g5.48xlarge,reserved_3y,partial_upfront,3.925495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:49.263583 +AWS,ap-northeast-2,g5.48xlarge,spot,NA,8.637894,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171397 +AWS,ap-northeast-2,g5.4xlarge,on_demand,NA,1.99691,USD,AWS Pricing API,2025-11-30T08:57:48.859678 +AWS,ap-northeast-2,g5.4xlarge,reserved_1y,all_upfront,1.57256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:20.220869 +AWS,ap-northeast-2,g5.4xlarge,reserved_1y,no_upfront,1.57256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:00.920659 +AWS,ap-northeast-2,g5.4xlarge,reserved_1y,partial_upfront,1.57256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:46.730377 +AWS,ap-northeast-2,g5.4xlarge,reserved_3y,all_upfront,1.57256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:24.802706 +AWS,ap-northeast-2,g5.4xlarge,reserved_3y,no_upfront,1.57256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:02.884443 +AWS,ap-northeast-2,g5.4xlarge,reserved_3y,partial_upfront,1.57256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:58.677894 +AWS,ap-northeast-2,g5.4xlarge,spot,NA,0.67488,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171576 +AWS,ap-northeast-2,g5.8xlarge,on_demand,NA,3.01012,USD,AWS Pricing API,2025-11-30T08:57:56.588136 +AWS,ap-northeast-2,g5.8xlarge,reserved_1y,all_upfront,1.769977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:27.988299 +AWS,ap-northeast-2,g5.8xlarge,reserved_1y,no_upfront,1.769977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:08.719332 +AWS,ap-northeast-2,g5.8xlarge,reserved_1y,partial_upfront,1.769977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:54.492240 +AWS,ap-northeast-2,g5.8xlarge,reserved_3y,all_upfront,0.589992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:32.351909 +AWS,ap-northeast-2,g5.8xlarge,reserved_3y,no_upfront,0.589992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:10.762470 +AWS,ap-northeast-2,g5.8xlarge,reserved_3y,partial_upfront,0.589992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:06.360683 +AWS,ap-northeast-2,g5.8xlarge,spot,NA,1.008576,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171765 +AWS,ap-northeast-2,g5.xlarge,on_demand,NA,1.237,USD,AWS Pricing API,2025-11-30T08:58:43.716254 +AWS,ap-northeast-2,g5.xlarge,reserved_1y,all_upfront,0.909247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:15.065709 +AWS,ap-northeast-2,g5.xlarge,reserved_1y,no_upfront,0.909247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:56.080124 +AWS,ap-northeast-2,g5.xlarge,reserved_1y,partial_upfront,0.909247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:41.289163 +AWS,ap-northeast-2,g5.xlarge,reserved_3y,all_upfront,0.303082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:18.602012 +AWS,ap-northeast-2,g5.xlarge,reserved_3y,no_upfront,0.303082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:58.457966 +AWS,ap-northeast-2,g5.xlarge,reserved_3y,partial_upfront,0.303082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:53.020010 +AWS,ap-northeast-2,g5.xlarge,spot,NA,0.44468,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172787 +AWS,ap-northeast-2,g6.12xlarge,on_demand,NA,5.65823,USD,AWS Pricing API,2025-11-30T08:57:39.934776 +AWS,ap-northeast-2,g6.12xlarge,reserved_1y,all_upfront,4.38514,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:11.455812 +AWS,ap-northeast-2,g6.12xlarge,reserved_1y,no_upfront,4.38514,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:51.930565 +AWS,ap-northeast-2,g6.12xlarge,reserved_1y,partial_upfront,4.38514,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:38.001387 +AWS,ap-northeast-2,g6.12xlarge,reserved_3y,all_upfront,2.92342,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:16.186759 +AWS,ap-northeast-2,g6.12xlarge,reserved_3y,no_upfront,2.92342,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:53.874284 +AWS,ap-northeast-2,g6.12xlarge,reserved_3y,partial_upfront,2.92342,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:49.954758 +AWS,ap-northeast-2,g6.12xlarge,spot,NA,1.792585,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171375 +AWS,ap-northeast-2,g6.16xlarge,on_demand,NA,4.17678,USD,AWS Pricing API,2025-11-30T08:57:37.169379 +AWS,ap-northeast-2,g6.16xlarge,reserved_1y,all_upfront,3.39886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:08.758324 +AWS,ap-northeast-2,g6.16xlarge,reserved_1y,no_upfront,3.39886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:49.165097 +AWS,ap-northeast-2,g6.16xlarge,reserved_1y,partial_upfront,3.39886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:35.285190 +AWS,ap-northeast-2,g6.16xlarge,reserved_3y,all_upfront,3.39886,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:13.531340 +AWS,ap-northeast-2,g6.16xlarge,reserved_3y,no_upfront,3.39886,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:51.105299 +AWS,ap-northeast-2,g6.16xlarge,reserved_3y,partial_upfront,3.39886,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:47.219521 +AWS,ap-northeast-2,g6.16xlarge,spot,NA,1.307911,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171317 +AWS,ap-northeast-2,g6.24xlarge,on_demand,NA,8.20797,USD,AWS Pricing API,2025-11-30T08:57:37.304660 +AWS,ap-northeast-2,g6.24xlarge,reserved_1y,all_upfront,6.233904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:08.892222 +AWS,ap-northeast-2,g6.24xlarge,reserved_1y,no_upfront,6.233904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:49.302019 +AWS,ap-northeast-2,g6.24xlarge,reserved_1y,partial_upfront,6.233904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:35.418201 +AWS,ap-northeast-2,g6.24xlarge,reserved_3y,all_upfront,2.077968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:13.665347 +AWS,ap-northeast-2,g6.24xlarge,reserved_3y,no_upfront,2.077968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:51.244016 +AWS,ap-northeast-2,g6.24xlarge,reserved_3y,partial_upfront,2.077968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:47.353022 +AWS,ap-northeast-2,g6.24xlarge,spot,NA,2.483027,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171288 +AWS,ap-northeast-2,g6.2xlarge,on_demand,NA,1.20208,USD,AWS Pricing API,2025-11-30T08:57:38.959317 +AWS,ap-northeast-2,g6.2xlarge,reserved_1y,all_upfront,1.021764,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:10.509392 +AWS,ap-northeast-2,g6.2xlarge,reserved_1y,no_upfront,1.021764,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:50.948121 +AWS,ap-northeast-2,g6.2xlarge,reserved_1y,partial_upfront,1.021764,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:37.066399 +AWS,ap-northeast-2,g6.2xlarge,reserved_3y,all_upfront,0.510881,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:15.261851 +AWS,ap-northeast-2,g6.2xlarge,reserved_3y,no_upfront,0.510881,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:52.909715 +AWS,ap-northeast-2,g6.2xlarge,reserved_3y,partial_upfront,0.510881,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:48.995707 +AWS,ap-northeast-2,g6.2xlarge,spot,NA,0.398258,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171353 +AWS,ap-northeast-2,g6.48xlarge,on_demand,NA,16.41595,USD,AWS Pricing API,2025-11-30T08:57:36.759339 +AWS,ap-northeast-2,g6.48xlarge,reserved_1y,all_upfront,12.722367,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:08.355588 +AWS,ap-northeast-2,g6.48xlarge,reserved_1y,no_upfront,12.722367,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:48.744501 +AWS,ap-northeast-2,g6.48xlarge,reserved_1y,partial_upfront,12.722367,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:34.872771 +AWS,ap-northeast-2,g6.48xlarge,reserved_3y,all_upfront,8.481576,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:13.134444 +AWS,ap-northeast-2,g6.48xlarge,reserved_3y,no_upfront,8.481576,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:50.692976 +AWS,ap-northeast-2,g6.48xlarge,reserved_3y,partial_upfront,8.481576,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:46.818665 +AWS,ap-northeast-2,g6.48xlarge,spot,NA,5.156346,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171307 +AWS,ap-northeast-2,g6.4xlarge,on_demand,NA,1.62704,USD,AWS Pricing API,2025-11-30T08:57:37.574682 +AWS,ap-northeast-2,g6.4xlarge,reserved_1y,all_upfront,1.324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:09.160831 +AWS,ap-northeast-2,g6.4xlarge,reserved_1y,no_upfront,1.324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:49.582662 +AWS,ap-northeast-2,g6.4xlarge,reserved_1y,partial_upfront,1.324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:35.687898 +AWS,ap-northeast-2,g6.4xlarge,reserved_3y,all_upfront,1.324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:13.933433 +AWS,ap-northeast-2,g6.4xlarge,reserved_3y,no_upfront,1.324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:51.515451 +AWS,ap-northeast-2,g6.4xlarge,reserved_3y,partial_upfront,1.324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:47.619304 +AWS,ap-northeast-2,g6.4xlarge,spot,NA,0.521498,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171303 +AWS,ap-northeast-2,g6.8xlarge,on_demand,NA,2.47695,USD,AWS Pricing API,2025-11-30T08:57:38.400952 +AWS,ap-northeast-2,g6.8xlarge,reserved_1y,all_upfront,2.01562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:09.967381 +AWS,ap-northeast-2,g6.8xlarge,reserved_1y,no_upfront,2.01562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:50.396635 +AWS,ap-northeast-2,g6.8xlarge,reserved_1y,partial_upfront,2.01562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:36.502370 +AWS,ap-northeast-2,g6.8xlarge,reserved_3y,all_upfront,2.01562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:14.725430 +AWS,ap-northeast-2,g6.8xlarge,reserved_3y,no_upfront,2.01562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:52.355914 +AWS,ap-northeast-2,g6.8xlarge,reserved_3y,partial_upfront,2.01562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:48.429329 +AWS,ap-northeast-2,g6.8xlarge,spot,NA,0.783147,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171362 +AWS,ap-northeast-2,g6.xlarge,on_demand,NA,0.9896,USD,AWS Pricing API,2025-11-30T08:57:36.897352 +AWS,ap-northeast-2,g6.xlarge,reserved_1y,all_upfront,0.45423,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:08.489279 +AWS,ap-northeast-2,g6.xlarge,reserved_1y,no_upfront,0.45423,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:48.879387 +AWS,ap-northeast-2,g6.xlarge,reserved_1y,partial_upfront,0.45423,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:35.008159 +AWS,ap-northeast-2,g6.xlarge,reserved_3y,all_upfront,0.45423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:13.268688 +AWS,ap-northeast-2,g6.xlarge,reserved_3y,no_upfront,0.45423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:50.829794 +AWS,ap-northeast-2,g6.xlarge,reserved_3y,partial_upfront,0.45423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:46.951435 +AWS,ap-northeast-2,g6.xlarge,spot,NA,0.332352,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171312 +AWS,ap-northeast-2,g6e.12xlarge,on_demand,NA,12.90014,USD,AWS Pricing API,2025-11-30T08:57:39.516040 +AWS,ap-northeast-2,g6e.12xlarge,reserved_1y,all_upfront,6.68743,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:11.044836 +AWS,ap-northeast-2,g6e.12xlarge,reserved_1y,no_upfront,6.68743,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:51.524120 +AWS,ap-northeast-2,g6e.12xlarge,reserved_1y,partial_upfront,6.68743,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:37.599566 +AWS,ap-northeast-2,g6e.12xlarge,reserved_3y,all_upfront,6.68743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:15.792762 +AWS,ap-northeast-2,g6e.12xlarge,reserved_3y,no_upfront,6.68743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:53.462583 +AWS,ap-northeast-2,g6e.12xlarge,reserved_3y,partial_upfront,6.68743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:49.529122 +AWS,ap-northeast-2,g6e.12xlarge,spot,NA,4.572751,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171379 +AWS,ap-northeast-2,g6e.16xlarge,on_demand,NA,9.31575,USD,AWS Pricing API,2025-11-30T08:57:38.126977 +AWS,ap-northeast-2,g6e.16xlarge,reserved_1y,all_upfront,5.86892,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:09.696860 +AWS,ap-northeast-2,g6e.16xlarge,reserved_1y,no_upfront,5.86892,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:50.126585 +AWS,ap-northeast-2,g6e.16xlarge,reserved_1y,partial_upfront,5.86892,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:36.232617 +AWS,ap-northeast-2,g6e.16xlarge,reserved_3y,all_upfront,5.86892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:14.463073 +AWS,ap-northeast-2,g6e.16xlarge,reserved_3y,no_upfront,5.86892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:52.076627 +AWS,ap-northeast-2,g6e.16xlarge,reserved_3y,partial_upfront,5.86892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:48.159005 +AWS,ap-northeast-2,g6e.16xlarge,spot,NA,3.045016,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171344 +AWS,ap-northeast-2,g6e.24xlarge,on_demand,NA,18.52234,USD,AWS Pricing API,2025-11-30T08:57:37.991663 +AWS,ap-northeast-2,g6e.24xlarge,reserved_1y,all_upfront,11.66907,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:09.562937 +AWS,ap-northeast-2,g6e.24xlarge,reserved_1y,no_upfront,11.66907,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:49.991149 +AWS,ap-northeast-2,g6e.24xlarge,reserved_1y,partial_upfront,11.66907,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:36.097241 +AWS,ap-northeast-2,g6e.24xlarge,reserved_3y,all_upfront,11.66907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:14.331124 +AWS,ap-northeast-2,g6e.24xlarge,reserved_3y,no_upfront,11.66907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:51.937334 +AWS,ap-northeast-2,g6e.24xlarge,reserved_3y,partial_upfront,11.66907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:48.023443 +AWS,ap-northeast-2,g6e.24xlarge,spot,NA,6.09995,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171357 +AWS,ap-northeast-2,g6e.2xlarge,on_demand,NA,2.75652,USD,AWS Pricing API,2025-11-30T08:57:37.709886 +AWS,ap-northeast-2,g6e.2xlarge,reserved_1y,all_upfront,1.653901,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:09.294757 +AWS,ap-northeast-2,g6e.2xlarge,reserved_1y,no_upfront,1.653901,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:49.717389 +AWS,ap-northeast-2,g6e.2xlarge,reserved_1y,partial_upfront,1.653901,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:35.825726 +AWS,ap-northeast-2,g6e.2xlarge,reserved_3y,all_upfront,1.102607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:14.065061 +AWS,ap-northeast-2,g6e.2xlarge,reserved_3y,no_upfront,1.102607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:51.662087 +AWS,ap-northeast-2,g6e.2xlarge,reserved_3y,partial_upfront,1.102607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:47.753636 +AWS,ap-northeast-2,g6e.2xlarge,spot,NA,1.022764,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171349 +AWS,ap-northeast-2,g6e.48xlarge,on_demand,NA,37.04468,USD,AWS Pricing API,2025-11-30T08:57:37.034740 +AWS,ap-northeast-2,g6e.48xlarge,reserved_1y,all_upfront,23.33815,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:08.624474 +AWS,ap-northeast-2,g6e.48xlarge,reserved_1y,no_upfront,23.33815,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:49.016492 +AWS,ap-northeast-2,g6e.48xlarge,reserved_1y,partial_upfront,23.33815,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:35.142847 +AWS,ap-northeast-2,g6e.48xlarge,reserved_3y,all_upfront,23.33815,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:13.399075 +AWS,ap-northeast-2,g6e.48xlarge,reserved_3y,no_upfront,23.33815,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:50.965654 +AWS,ap-northeast-2,g6e.48xlarge,reserved_3y,partial_upfront,23.33815,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:47.085915 +AWS,ap-northeast-2,g6e.48xlarge,spot,NA,12.332531,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171298 +AWS,ap-northeast-2,g6e.4xlarge,on_demand,NA,3.69355,USD,AWS Pricing API,2025-11-30T08:57:37.846832 +AWS,ap-northeast-2,g6e.4xlarge,reserved_1y,all_upfront,2.32694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:09.428439 +AWS,ap-northeast-2,g6e.4xlarge,reserved_1y,no_upfront,2.32694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:49.854390 +AWS,ap-northeast-2,g6e.4xlarge,reserved_1y,partial_upfront,2.32694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:35.962698 +AWS,ap-northeast-2,g6e.4xlarge,reserved_3y,all_upfront,2.32694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:14.195535 +AWS,ap-northeast-2,g6e.4xlarge,reserved_3y,no_upfront,2.32694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:51.797458 +AWS,ap-northeast-2,g6e.4xlarge,reserved_3y,partial_upfront,2.32694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:47.889236 +AWS,ap-northeast-2,g6e.4xlarge,spot,NA,1.240246,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171330 +AWS,ap-northeast-2,g6e.8xlarge,on_demand,NA,5.56762,USD,AWS Pricing API,2025-11-30T08:57:36.620613 +AWS,ap-northeast-2,g6e.8xlarge,reserved_1y,all_upfront,4.008678,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:08.215926 +AWS,ap-northeast-2,g6e.8xlarge,reserved_1y,no_upfront,4.008678,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:48.604991 +AWS,ap-northeast-2,g6e.8xlarge,reserved_1y,partial_upfront,4.008678,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:34.738936 +AWS,ap-northeast-2,g6e.8xlarge,reserved_3y,all_upfront,2.672453,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:13.002759 +AWS,ap-northeast-2,g6e.8xlarge,reserved_3y,no_upfront,2.672453,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:50.553285 +AWS,ap-northeast-2,g6e.8xlarge,reserved_3y,partial_upfront,2.672453,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:46.684714 +AWS,ap-northeast-2,g6e.8xlarge,spot,NA,1.879087,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171326 +AWS,ap-northeast-2,g6e.xlarge,on_demand,NA,2.288,USD,AWS Pricing API,2025-11-30T08:57:39.368037 +AWS,ap-northeast-2,g6e.xlarge,reserved_1y,all_upfront,2.580822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:10.910874 +AWS,ap-northeast-2,g6e.xlarge,reserved_1y,no_upfront,2.580822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:51.386980 +AWS,ap-northeast-2,g6e.xlarge,reserved_1y,partial_upfront,2.580822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:37.466988 +AWS,ap-northeast-2,g6e.xlarge,reserved_3y,all_upfront,0.860274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:15.662165 +AWS,ap-northeast-2,g6e.xlarge,reserved_3y,no_upfront,0.860274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:53.323872 +AWS,ap-northeast-2,g6e.xlarge,reserved_3y,partial_upfront,0.860274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:49.395193 +AWS,ap-northeast-2,g6e.xlarge,spot,NA,0.745217,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171401 +AWS,ap-northeast-2,gr6.4xlarge,on_demand,NA,1.8926,USD,AWS Pricing API,2025-11-30T08:57:38.264612 +AWS,ap-northeast-2,gr6.4xlarge,reserved_1y,all_upfront,1.15,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:09.831027 +AWS,ap-northeast-2,gr6.4xlarge,reserved_1y,no_upfront,1.15,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:50.262178 +AWS,ap-northeast-2,gr6.4xlarge,reserved_1y,partial_upfront,1.15,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:36.367486 +AWS,ap-northeast-2,gr6.4xlarge,reserved_3y,all_upfront,0.383333,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:14.594607 +AWS,ap-northeast-2,gr6.4xlarge,reserved_3y,no_upfront,0.383333,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:52.213642 +AWS,ap-northeast-2,gr6.4xlarge,reserved_3y,partial_upfront,0.383333,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:48.294027 +AWS,ap-northeast-2,gr6.4xlarge,spot,NA,0.613676,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171340 +AWS,ap-northeast-2,gr6.8xlarge,on_demand,NA,3.00809,USD,AWS Pricing API,2025-11-30T08:57:39.653205 +AWS,ap-northeast-2,gr6.8xlarge,reserved_1y,all_upfront,1.95827,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:11.178813 +AWS,ap-northeast-2,gr6.8xlarge,reserved_1y,no_upfront,1.95827,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:51.659310 +AWS,ap-northeast-2,gr6.8xlarge,reserved_1y,partial_upfront,1.95827,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:37.733079 +AWS,ap-northeast-2,gr6.8xlarge,reserved_3y,all_upfront,1.95827,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:15.922722 +AWS,ap-northeast-2,gr6.8xlarge,reserved_3y,no_upfront,1.95827,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:53.599286 +AWS,ap-northeast-2,gr6.8xlarge,reserved_3y,partial_upfront,1.95827,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:49.674951 +AWS,ap-northeast-2,gr6.8xlarge,spot,NA,0.987164,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171388 +AWS,ap-northeast-2,i2.2xlarge,on_demand,NA,2.001,USD,AWS Pricing API,2025-11-30T08:58:25.652000 +AWS,ap-northeast-2,i2.2xlarge,reserved_1y,all_upfront,1.857877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:57.114691 +AWS,ap-northeast-2,i2.2xlarge,reserved_1y,no_upfront,1.857877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:37.889347 +AWS,ap-northeast-2,i2.2xlarge,reserved_1y,partial_upfront,1.857877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:23.480490 +AWS,ap-northeast-2,i2.2xlarge,reserved_3y,all_upfront,0.619292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:01.056212 +AWS,ap-northeast-2,i2.2xlarge,reserved_3y,no_upfront,0.619292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:40.332125 +AWS,ap-northeast-2,i2.2xlarge,reserved_3y,partial_upfront,0.619292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:35.199347 +AWS,ap-northeast-2,i2.2xlarge,spot,NA,0.650422,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172422 +AWS,ap-northeast-2,i2.4xlarge,on_demand,NA,4.002,USD,AWS Pricing API,2025-11-30T08:58:21.624074 +AWS,ap-northeast-2,i2.4xlarge,reserved_1y,all_upfront,2.086301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:53.101829 +AWS,ap-northeast-2,i2.4xlarge,reserved_1y,no_upfront,2.086301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:33.818185 +AWS,ap-northeast-2,i2.4xlarge,reserved_1y,partial_upfront,2.086301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:19.412499 +AWS,ap-northeast-2,i2.4xlarge,reserved_3y,all_upfront,0.695434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:57.077085 +AWS,ap-northeast-2,i2.4xlarge,reserved_3y,no_upfront,0.695434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:36.230731 +AWS,ap-northeast-2,i2.4xlarge,reserved_3y,partial_upfront,0.695434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:31.190039 +AWS,ap-northeast-2,i2.4xlarge,spot,NA,1.293735,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172332 +AWS,ap-northeast-2,i2.8xlarge,on_demand,NA,8.004,USD,AWS Pricing API,2025-11-30T08:58:28.208940 +AWS,ap-northeast-2,i2.8xlarge,reserved_1y,all_upfront,4.259795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:59.676728 +AWS,ap-northeast-2,i2.8xlarge,reserved_1y,no_upfront,4.259795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:40.527326 +AWS,ap-northeast-2,i2.8xlarge,reserved_1y,partial_upfront,4.259795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:26.051289 +AWS,ap-northeast-2,i2.8xlarge,reserved_3y,all_upfront,2.839932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:03.604035 +AWS,ap-northeast-2,i2.8xlarge,reserved_3y,no_upfront,2.839932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:42.945600 +AWS,ap-northeast-2,i2.8xlarge,reserved_3y,partial_upfront,2.839932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:37.743728 +AWS,ap-northeast-2,i2.8xlarge,spot,NA,2.613085,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172483 +AWS,ap-northeast-2,i2.xlarge,on_demand,NA,1.001,USD,AWS Pricing API,2025-11-30T08:58:28.764231 +AWS,ap-northeast-2,i2.xlarge,reserved_1y,all_upfront,0.612393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:00.222624 +AWS,ap-northeast-2,i2.xlarge,reserved_1y,no_upfront,0.612393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:41.066827 +AWS,ap-northeast-2,i2.xlarge,reserved_1y,partial_upfront,0.612393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:26.600451 +AWS,ap-northeast-2,i2.xlarge,reserved_3y,all_upfront,0.408131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:04.130796 +AWS,ap-northeast-2,i2.xlarge,reserved_3y,no_upfront,0.408131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:43.499147 +AWS,ap-northeast-2,i2.xlarge,reserved_3y,partial_upfront,0.408131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:38.282246 +AWS,ap-northeast-2,i2.xlarge,spot,NA,0.327648,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172491 +AWS,ap-northeast-2,i3.16xlarge,on_demand,NA,5.856,USD,AWS Pricing API,2025-11-30T08:58:35.048657 +AWS,ap-northeast-2,i3.16xlarge,reserved_1y,all_upfront,3.259,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:06.471624 +AWS,ap-northeast-2,i3.16xlarge,reserved_1y,no_upfront,3.259,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:47.393488 +AWS,ap-northeast-2,i3.16xlarge,reserved_1y,partial_upfront,3.259,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:32.847385 +AWS,ap-northeast-2,i3.16xlarge,reserved_3y,all_upfront,3.259,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:10.257664 +AWS,ap-northeast-2,i3.16xlarge,reserved_3y,no_upfront,3.259,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:49.864324 +AWS,ap-northeast-2,i3.16xlarge,reserved_3y,partial_upfront,3.259,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:44.480874 +AWS,ap-northeast-2,i3.16xlarge,spot,NA,2.182673,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172635 +AWS,ap-northeast-2,i3.2xlarge,on_demand,NA,0.732,USD,AWS Pricing API,2025-11-30T08:57:54.841165 +AWS,ap-northeast-2,i3.2xlarge,reserved_1y,all_upfront,0.656009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:26.240839 +AWS,ap-northeast-2,i3.2xlarge,reserved_1y,no_upfront,0.656009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:06.963878 +AWS,ap-northeast-2,i3.2xlarge,reserved_1y,partial_upfront,0.656009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:52.704164 +AWS,ap-northeast-2,i3.2xlarge,reserved_3y,all_upfront,0.328003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:30.624472 +AWS,ap-northeast-2,i3.2xlarge,reserved_3y,no_upfront,0.328003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:08.981546 +AWS,ap-northeast-2,i3.2xlarge,reserved_3y,partial_upfront,0.328003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:04.618337 +AWS,ap-northeast-2,i3.2xlarge,spot,NA,0.279473,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171701 +AWS,ap-northeast-2,i3.4xlarge,on_demand,NA,1.464,USD,AWS Pricing API,2025-11-30T08:57:56.322334 +AWS,ap-northeast-2,i3.4xlarge,reserved_1y,all_upfront,1.063927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:27.719233 +AWS,ap-northeast-2,i3.4xlarge,reserved_1y,no_upfront,1.063927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:08.449267 +AWS,ap-northeast-2,i3.4xlarge,reserved_1y,partial_upfront,1.063927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:54.227244 +AWS,ap-northeast-2,i3.4xlarge,reserved_3y,all_upfront,0.354642,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:32.090468 +AWS,ap-northeast-2,i3.4xlarge,reserved_3y,no_upfront,0.354642,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:10.486747 +AWS,ap-northeast-2,i3.4xlarge,reserved_3y,partial_upfront,0.354642,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:06.092435 +AWS,ap-northeast-2,i3.4xlarge,spot,NA,0.604503,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171774 +AWS,ap-northeast-2,i3.8xlarge,on_demand,NA,2.928,USD,AWS Pricing API,2025-11-30T08:57:50.493357 +AWS,ap-northeast-2,i3.8xlarge,reserved_1y,all_upfront,1.850228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:21.822746 +AWS,ap-northeast-2,i3.8xlarge,reserved_1y,no_upfront,1.850228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:02.580081 +AWS,ap-northeast-2,i3.8xlarge,reserved_1y,partial_upfront,1.850228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:48.360389 +AWS,ap-northeast-2,i3.8xlarge,reserved_3y,all_upfront,0.616743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:26.386803 +AWS,ap-northeast-2,i3.8xlarge,reserved_3y,no_upfront,0.616743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:04.564596 +AWS,ap-northeast-2,i3.8xlarge,reserved_3y,partial_upfront,0.616743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:00.296816 +AWS,ap-northeast-2,i3.8xlarge,spot,NA,0.962658,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171626 +AWS,ap-northeast-2,i3.large,on_demand,NA,0.183,USD,AWS Pricing API,2025-11-30T08:57:55.523496 +AWS,ap-northeast-2,i3.large,reserved_1y,all_upfront,0.163945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:26.915754 +AWS,ap-northeast-2,i3.large,reserved_1y,no_upfront,0.163945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:07.644661 +AWS,ap-northeast-2,i3.large,reserved_1y,partial_upfront,0.163945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:53.407336 +AWS,ap-northeast-2,i3.large,reserved_3y,all_upfront,0.081982,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:31.292877 +AWS,ap-northeast-2,i3.large,reserved_3y,no_upfront,0.081982,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:09.665402 +AWS,ap-northeast-2,i3.large,reserved_3y,partial_upfront,0.081982,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:05.297825 +AWS,ap-northeast-2,i3.large,spot,NA,0.061568,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171750 +AWS,ap-northeast-2,i3.xlarge,on_demand,NA,0.366,USD,AWS Pricing API,2025-11-30T08:58:20.803126 +AWS,ap-northeast-2,i3.xlarge,reserved_1y,all_upfront,0.376877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:52.291815 +AWS,ap-northeast-2,i3.xlarge,reserved_1y,no_upfront,0.376877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:33.004899 +AWS,ap-northeast-2,i3.xlarge,reserved_1y,partial_upfront,0.376877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:18.603882 +AWS,ap-northeast-2,i3.xlarge,reserved_3y,all_upfront,0.188292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:56.286611 +AWS,ap-northeast-2,i3.xlarge,reserved_3y,no_upfront,0.188292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:35.403372 +AWS,ap-northeast-2,i3.xlarge,reserved_3y,partial_upfront,0.188292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:30.385074 +AWS,ap-northeast-2,i3.xlarge,spot,NA,0.135021,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172312 +AWS,ap-northeast-2,i3en.12xlarge,on_demand,NA,6.384,USD,AWS Pricing API,2025-11-30T08:57:52.516450 +AWS,ap-northeast-2,i3en.12xlarge,reserved_1y,all_upfront,5.140137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:23.936891 +AWS,ap-northeast-2,i3en.12xlarge,reserved_1y,no_upfront,5.140137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:04.633971 +AWS,ap-northeast-2,i3en.12xlarge,reserved_1y,partial_upfront,5.140137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:50.394431 +AWS,ap-northeast-2,i3en.12xlarge,reserved_3y,all_upfront,2.570046,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:28.367666 +AWS,ap-northeast-2,i3en.12xlarge,reserved_3y,no_upfront,2.570046,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:06.622005 +AWS,ap-northeast-2,i3en.12xlarge,reserved_3y,partial_upfront,2.570046,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:02.324056 +AWS,ap-northeast-2,i3en.12xlarge,spot,NA,2.6486,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171639 +AWS,ap-northeast-2,i3en.24xlarge,on_demand,NA,12.768,USD,AWS Pricing API,2025-11-30T08:57:57.800350 +AWS,ap-northeast-2,i3en.24xlarge,reserved_1y,all_upfront,17.314041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:29.280932 +AWS,ap-northeast-2,i3en.24xlarge,reserved_1y,no_upfront,17.314041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:09.941418 +AWS,ap-northeast-2,i3en.24xlarge,reserved_1y,partial_upfront,17.314041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:55.704213 +AWS,ap-northeast-2,i3en.24xlarge,reserved_3y,all_upfront,5.771347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:33.536645 +AWS,ap-northeast-2,i3en.24xlarge,reserved_3y,no_upfront,5.771347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:12.019268 +AWS,ap-northeast-2,i3en.24xlarge,reserved_3y,partial_upfront,5.771347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:07.580597 +AWS,ap-northeast-2,i3en.24xlarge,spot,NA,4.658707,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171794 +AWS,ap-northeast-2,i3en.2xlarge,on_demand,NA,1.064,USD,AWS Pricing API,2025-11-30T08:57:47.635459 +AWS,ap-northeast-2,i3en.2xlarge,reserved_1y,all_upfront,0.981187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:18.985064 +AWS,ap-northeast-2,i3en.2xlarge,reserved_1y,no_upfront,0.981187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:59.667488 +AWS,ap-northeast-2,i3en.2xlarge,reserved_1y,partial_upfront,0.981187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:45.519283 +AWS,ap-northeast-2,i3en.2xlarge,reserved_3y,all_upfront,0.490396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:23.607277 +AWS,ap-northeast-2,i3en.2xlarge,reserved_3y,no_upfront,0.490396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:01.596349 +AWS,ap-northeast-2,i3en.2xlarge,reserved_3y,partial_upfront,0.490396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:57.452874 +AWS,ap-northeast-2,i3en.2xlarge,spot,NA,0.428684,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171559 +AWS,ap-northeast-2,i3en.3xlarge,on_demand,NA,1.596,USD,AWS Pricing API,2025-11-30T08:58:42.328927 +AWS,ap-northeast-2,i3en.3xlarge,reserved_1y,all_upfront,1.161187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:13.711312 +AWS,ap-northeast-2,i3en.3xlarge,reserved_1y,no_upfront,1.161187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:54.703813 +AWS,ap-northeast-2,i3en.3xlarge,reserved_1y,partial_upfront,1.161187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:39.938006 +AWS,ap-northeast-2,i3en.3xlarge,reserved_3y,all_upfront,0.387062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:17.287782 +AWS,ap-northeast-2,i3en.3xlarge,reserved_3y,no_upfront,0.387062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:57.079746 +AWS,ap-northeast-2,i3en.3xlarge,reserved_3y,partial_upfront,0.387062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:51.662852 +AWS,ap-northeast-2,i3en.3xlarge,spot,NA,0.558951,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172758 +AWS,ap-northeast-2,i3en.6xlarge,on_demand,NA,3.192,USD,AWS Pricing API,2025-11-30T08:58:33.560632 +AWS,ap-northeast-2,i3en.6xlarge,reserved_1y,all_upfront,2.570511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:04.987300 +AWS,ap-northeast-2,i3en.6xlarge,reserved_1y,no_upfront,2.570511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:45.870083 +AWS,ap-northeast-2,i3en.6xlarge,reserved_1y,partial_upfront,2.570511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:31.379743 +AWS,ap-northeast-2,i3en.6xlarge,reserved_3y,all_upfront,1.285504,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:08.792329 +AWS,ap-northeast-2,i3en.6xlarge,reserved_3y,no_upfront,1.285504,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:48.343485 +AWS,ap-northeast-2,i3en.6xlarge,reserved_3y,partial_upfront,1.285504,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:42.996293 +AWS,ap-northeast-2,i3en.6xlarge,spot,NA,1.111659,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172607 +AWS,ap-northeast-2,i3en.large,on_demand,NA,0.266,USD,AWS Pricing API,2025-11-30T08:58:06.340044 +AWS,ap-northeast-2,i3en.large,reserved_1y,all_upfront,0.207,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:37.780120 +AWS,ap-northeast-2,i3en.large,reserved_1y,no_upfront,0.207,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:18.496033 +AWS,ap-northeast-2,i3en.large,reserved_1y,partial_upfront,0.207,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:04.208264 +AWS,ap-northeast-2,i3en.large,reserved_3y,all_upfront,0.207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:41.862724 +AWS,ap-northeast-2,i3en.large,reserved_3y,no_upfront,0.207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:20.702430 +AWS,ap-northeast-2,i3en.large,reserved_3y,partial_upfront,0.207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:16.045331 +AWS,ap-northeast-2,i3en.large,spot,NA,0.0871,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172020 +AWS,ap-northeast-2,i3en.xlarge,on_demand,NA,0.532,USD,AWS Pricing API,2025-11-30T08:58:05.649653 +AWS,ap-northeast-2,i3en.xlarge,reserved_1y,all_upfront,0.338927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:37.113834 +AWS,ap-northeast-2,i3en.xlarge,reserved_1y,no_upfront,0.338927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:17.817943 +AWS,ap-northeast-2,i3en.xlarge,reserved_1y,partial_upfront,0.338927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:03.539521 +AWS,ap-northeast-2,i3en.xlarge,reserved_3y,all_upfront,0.112976,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:41.197911 +AWS,ap-northeast-2,i3en.xlarge,reserved_3y,no_upfront,0.112976,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:20.014817 +AWS,ap-northeast-2,i3en.xlarge,reserved_3y,partial_upfront,0.112976,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:15.375119 +AWS,ap-northeast-2,i3en.xlarge,spot,NA,0.204316,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171984 +AWS,ap-northeast-2,i4i.16xlarge,on_demand,NA,6.442,USD,AWS Pricing API,2025-11-30T08:58:10.544918 +AWS,ap-northeast-2,i4i.16xlarge,reserved_1y,all_upfront,3.96442,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:41.955799 +AWS,ap-northeast-2,i4i.16xlarge,reserved_1y,no_upfront,3.96442,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:22.706679 +AWS,ap-northeast-2,i4i.16xlarge,reserved_1y,partial_upfront,3.96442,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:08.385610 +AWS,ap-northeast-2,i4i.16xlarge,reserved_3y,all_upfront,2.642807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:46.025616 +AWS,ap-northeast-2,i4i.16xlarge,reserved_3y,no_upfront,2.642807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:24.957445 +AWS,ap-northeast-2,i4i.16xlarge,reserved_3y,partial_upfront,2.642807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:20.171721 +AWS,ap-northeast-2,i4i.16xlarge,spot,NA,2.060278,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172095 +AWS,ap-northeast-2,i4i.2xlarge,on_demand,NA,0.805,USD,AWS Pricing API,2025-11-30T08:58:26.464744 +AWS,ap-northeast-2,i4i.2xlarge,reserved_1y,all_upfront,0.485731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:57.917881 +AWS,ap-northeast-2,i4i.2xlarge,reserved_1y,no_upfront,0.485731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:38.716159 +AWS,ap-northeast-2,i4i.2xlarge,reserved_1y,partial_upfront,0.485731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:24.292077 +AWS,ap-northeast-2,i4i.2xlarge,reserved_3y,all_upfront,0.16191,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:01.871146 +AWS,ap-northeast-2,i4i.2xlarge,reserved_3y,no_upfront,0.16191,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:41.155684 +AWS,ap-northeast-2,i4i.2xlarge,reserved_3y,partial_upfront,0.16191,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:35.998625 +AWS,ap-northeast-2,i4i.2xlarge,spot,NA,0.354737,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172406 +AWS,ap-northeast-2,i4i.32xlarge,on_demand,NA,12.8832,USD,AWS Pricing API,2025-11-30T08:58:38.809230 +AWS,ap-northeast-2,i4i.32xlarge,reserved_1y,all_upfront,7.92964,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:10.231745 +AWS,ap-northeast-2,i4i.32xlarge,reserved_1y,no_upfront,7.92964,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:51.257060 +AWS,ap-northeast-2,i4i.32xlarge,reserved_1y,partial_upfront,7.92964,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:36.589302 +AWS,ap-northeast-2,i4i.32xlarge,reserved_3y,all_upfront,5.286413,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:13.950020 +AWS,ap-northeast-2,i4i.32xlarge,reserved_3y,no_upfront,5.286413,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:53.663800 +AWS,ap-northeast-2,i4i.32xlarge,reserved_3y,partial_upfront,5.286413,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:48.211268 +AWS,ap-northeast-2,i4i.32xlarge,spot,NA,4.340289,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172709 +AWS,ap-northeast-2,i4i.4xlarge,on_demand,NA,1.61,USD,AWS Pricing API,2025-11-30T08:58:15.014776 +AWS,ap-northeast-2,i4i.4xlarge,reserved_1y,all_upfront,0.991548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:46.495066 +AWS,ap-northeast-2,i4i.4xlarge,reserved_1y,no_upfront,0.991548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:27.188707 +AWS,ap-northeast-2,i4i.4xlarge,reserved_1y,partial_upfront,0.991548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:12.815812 +AWS,ap-northeast-2,i4i.4xlarge,reserved_3y,all_upfront,0.661183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:50.559063 +AWS,ap-northeast-2,i4i.4xlarge,reserved_3y,no_upfront,0.661183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:29.506887 +AWS,ap-northeast-2,i4i.4xlarge,reserved_3y,partial_upfront,0.661183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:24.603238 +AWS,ap-northeast-2,i4i.4xlarge,spot,NA,0.606397,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172203 +AWS,ap-northeast-2,i4i.8xlarge,on_demand,NA,3.221,USD,AWS Pricing API,2025-11-30T08:58:18.004780 +AWS,ap-northeast-2,i4i.8xlarge,reserved_1y,all_upfront,1.942808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:49.447991 +AWS,ap-northeast-2,i4i.8xlarge,reserved_1y,no_upfront,1.942808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:30.168083 +AWS,ap-northeast-2,i4i.8xlarge,reserved_1y,partial_upfront,1.942808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:15.782865 +AWS,ap-northeast-2,i4i.8xlarge,reserved_3y,all_upfront,0.647603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:53.499887 +AWS,ap-northeast-2,i4i.8xlarge,reserved_3y,no_upfront,0.647603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:32.517562 +AWS,ap-northeast-2,i4i.8xlarge,reserved_3y,partial_upfront,0.647603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:27.588120 +AWS,ap-northeast-2,i4i.8xlarge,spot,NA,1.00917,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172273 +AWS,ap-northeast-2,i4i.large,on_demand,NA,0.201,USD,AWS Pricing API,2025-11-30T08:58:43.579386 +AWS,ap-northeast-2,i4i.large,reserved_1y,all_upfront,0.147858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:14.929975 +AWS,ap-northeast-2,i4i.large,reserved_1y,no_upfront,0.147858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:55.942435 +AWS,ap-northeast-2,i4i.large,reserved_1y,partial_upfront,0.147858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:41.155945 +AWS,ap-northeast-2,i4i.large,reserved_3y,all_upfront,0.098619,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:18.470768 +AWS,ap-northeast-2,i4i.large,reserved_3y,no_upfront,0.098619,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:58.318652 +AWS,ap-northeast-2,i4i.large,reserved_3y,partial_upfront,0.098619,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:52.887819 +AWS,ap-northeast-2,i4i.large,spot,NA,0.067871,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172796 +AWS,ap-northeast-2,i4i.xlarge,on_demand,NA,0.403,USD,AWS Pricing API,2025-11-30T08:58:24.847345 +AWS,ap-northeast-2,i4i.xlarge,reserved_1y,all_upfront,0.186,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:56.315816 +AWS,ap-northeast-2,i4i.xlarge,reserved_1y,no_upfront,0.186,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:37.073802 +AWS,ap-northeast-2,i4i.xlarge,reserved_1y,partial_upfront,0.186,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:22.673637 +AWS,ap-northeast-2,i4i.xlarge,reserved_3y,all_upfront,0.186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:00.270753 +AWS,ap-northeast-2,i4i.xlarge,reserved_3y,no_upfront,0.186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:39.507186 +AWS,ap-northeast-2,i4i.xlarge,reserved_3y,partial_upfront,0.186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:34.396873 +AWS,ap-northeast-2,i4i.xlarge,spot,NA,0.150133,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172383 +AWS,ap-northeast-2,i7i.12xlarge,on_demand,NA,5.3143,USD,AWS Pricing API,2025-11-30T08:58:03.058676 +AWS,ap-northeast-2,i7i.16xlarge,on_demand,NA,7.0858,USD,AWS Pricing API,2025-11-30T08:58:48.817204 +AWS,ap-northeast-2,i7i.24xlarge,on_demand,NA,10.6286,USD,AWS Pricing API,2025-11-30T08:57:43.957304 +AWS,ap-northeast-2,i7i.2xlarge,on_demand,NA,0.8857,USD,AWS Pricing API,2025-11-30T08:57:41.045600 +AWS,ap-northeast-2,i7i.48xlarge,on_demand,NA,21.2573,USD,AWS Pricing API,2025-11-30T08:57:42.782683 +AWS,ap-northeast-2,i7i.4xlarge,on_demand,NA,1.7714,USD,AWS Pricing API,2025-11-30T08:58:45.721685 +AWS,ap-northeast-2,i7i.8xlarge,on_demand,NA,3.5429,USD,AWS Pricing API,2025-11-30T08:58:15.682895 +AWS,ap-northeast-2,i7i.large,on_demand,NA,0.2214,USD,AWS Pricing API,2025-11-30T08:57:59.291827 +AWS,ap-northeast-2,i7i.xlarge,on_demand,NA,0.4429,USD,AWS Pricing API,2025-11-30T08:58:07.700753 +AWS,ap-northeast-2,i8g.12xlarge,on_demand,NA,4.8312,USD,AWS Pricing API,2025-11-30T08:58:39.080303 +AWS,ap-northeast-2,i8g.12xlarge,spot,NA,2.247784,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172693 +AWS,ap-northeast-2,i8g.16xlarge,on_demand,NA,6.4416,USD,AWS Pricing API,2025-11-30T08:58:36.121834 +AWS,ap-northeast-2,i8g.16xlarge,spot,NA,2.60741,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172662 +AWS,ap-northeast-2,i8g.24xlarge,on_demand,NA,9.6624,USD,AWS Pricing API,2025-11-30T08:58:38.546861 +AWS,ap-northeast-2,i8g.24xlarge,spot,NA,4.172468,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172674 +AWS,ap-northeast-2,i8g.2xlarge,on_demand,NA,0.8052,USD,AWS Pricing API,2025-11-30T08:58:05.785177 +AWS,ap-northeast-2,i8g.2xlarge,spot,NA,0.332297,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171980 +AWS,ap-northeast-2,i8g.48xlarge,on_demand,NA,19.3248,USD,AWS Pricing API,2025-11-30T08:57:46.397199 +AWS,ap-northeast-2,i8g.48xlarge,spot,NA,9.177352,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171538 +AWS,ap-northeast-2,i8g.4xlarge,on_demand,NA,1.6104,USD,AWS Pricing API,2025-11-30T08:58:33.290687 +AWS,ap-northeast-2,i8g.4xlarge,spot,NA,0.66419,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172595 +AWS,ap-northeast-2,i8g.8xlarge,on_demand,NA,3.2208,USD,AWS Pricing API,2025-11-30T08:58:52.446963 +AWS,ap-northeast-2,i8g.8xlarge,spot,NA,1.304984,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172972 +AWS,ap-northeast-2,i8g.large,on_demand,NA,0.2013,USD,AWS Pricing API,2025-11-30T08:58:10.274044 +AWS,ap-northeast-2,i8g.large,spot,NA,0.081453,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172067 +AWS,ap-northeast-2,i8g.xlarge,on_demand,NA,0.4026,USD,AWS Pricing API,2025-11-30T08:58:02.258616 +AWS,ap-northeast-2,i8g.xlarge,spot,NA,0.172627,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171919 +AWS,ap-northeast-2,m4.10xlarge,on_demand,NA,2.46,USD,AWS Pricing API,2025-11-30T08:58:12.977717 +AWS,ap-northeast-2,m4.10xlarge,reserved_1y,all_upfront,1.47,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:44.459336 +AWS,ap-northeast-2,m4.10xlarge,reserved_1y,no_upfront,1.47,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:25.145833 +AWS,ap-northeast-2,m4.10xlarge,reserved_1y,partial_upfront,1.47,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:10.801200 +AWS,ap-northeast-2,m4.10xlarge,reserved_3y,all_upfront,1.47,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:48.528990 +AWS,ap-northeast-2,m4.10xlarge,reserved_3y,no_upfront,1.47,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:27.440333 +AWS,ap-northeast-2,m4.10xlarge,reserved_3y,partial_upfront,1.47,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:22.592715 +AWS,ap-northeast-2,m4.10xlarge,spot,NA,0.852167,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172143 +AWS,ap-northeast-2,m4.16xlarge,on_demand,NA,3.936,USD,AWS Pricing API,2025-11-30T08:58:18.140027 +AWS,ap-northeast-2,m4.16xlarge,reserved_1y,all_upfront,2.7048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:49.582488 +AWS,ap-northeast-2,m4.16xlarge,reserved_1y,no_upfront,2.7048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:30.304157 +AWS,ap-northeast-2,m4.16xlarge,reserved_1y,partial_upfront,2.7048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:15.915243 +AWS,ap-northeast-2,m4.16xlarge,reserved_3y,all_upfront,2.7048,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:53.634526 +AWS,ap-northeast-2,m4.16xlarge,reserved_3y,no_upfront,2.7048,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:32.654596 +AWS,ap-northeast-2,m4.16xlarge,reserved_3y,partial_upfront,2.7048,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:27.721885 +AWS,ap-northeast-2,m4.16xlarge,spot,NA,1.383872,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172260 +AWS,ap-northeast-2,m4.2xlarge,on_demand,NA,0.492,USD,AWS Pricing API,2025-11-30T08:57:59.698663 +AWS,ap-northeast-2,m4.2xlarge,reserved_1y,all_upfront,0.3381,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:31.180961 +AWS,ap-northeast-2,m4.2xlarge,reserved_1y,no_upfront,0.3381,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:11.849665 +AWS,ap-northeast-2,m4.2xlarge,reserved_1y,partial_upfront,0.3381,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:57.620116 +AWS,ap-northeast-2,m4.2xlarge,reserved_3y,all_upfront,0.3381,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:35.404871 +AWS,ap-northeast-2,m4.2xlarge,reserved_3y,no_upfront,0.3381,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:13.966826 +AWS,ap-northeast-2,m4.2xlarge,reserved_3y,partial_upfront,0.3381,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:09.479317 +AWS,ap-northeast-2,m4.2xlarge,spot,NA,0.194868,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171875 +AWS,ap-northeast-2,m4.4xlarge,on_demand,NA,0.984,USD,AWS Pricing API,2025-11-30T08:58:33.968779 +AWS,ap-northeast-2,m4.4xlarge,reserved_1y,all_upfront,0.560023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:05.403208 +AWS,ap-northeast-2,m4.4xlarge,reserved_1y,no_upfront,0.560023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:46.283619 +AWS,ap-northeast-2,m4.4xlarge,reserved_1y,partial_upfront,0.560023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:31.783134 +AWS,ap-northeast-2,m4.4xlarge,reserved_3y,all_upfront,0.373341,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:09.207853 +AWS,ap-northeast-2,m4.4xlarge,reserved_3y,no_upfront,0.373341,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:48.754172 +AWS,ap-northeast-2,m4.4xlarge,reserved_3y,partial_upfront,0.373341,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:43.403358 +AWS,ap-northeast-2,m4.4xlarge,spot,NA,0.457611,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172631 +AWS,ap-northeast-2,m4.large,on_demand,NA,0.123,USD,AWS Pricing API,2025-11-30T08:57:41.576999 +AWS,ap-northeast-2,m4.large,reserved_1y,all_upfront,0.140982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:13.071336 +AWS,ap-northeast-2,m4.large,reserved_1y,no_upfront,0.140982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:53.576546 +AWS,ap-northeast-2,m4.large,reserved_1y,partial_upfront,0.140982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:39.622029 +AWS,ap-northeast-2,m4.large,reserved_3y,all_upfront,0.046994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:17.791786 +AWS,ap-northeast-2,m4.large,reserved_3y,no_upfront,0.046994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:55.526855 +AWS,ap-northeast-2,m4.large,reserved_3y,partial_upfront,0.046994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:51.554646 +AWS,ap-northeast-2,m4.large,spot,NA,0.04878,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171435 +AWS,ap-northeast-2,m4.xlarge,on_demand,NA,0.246,USD,AWS Pricing API,2025-11-30T08:58:22.438334 +AWS,ap-northeast-2,m4.xlarge,reserved_1y,all_upfront,0.157763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:53.914561 +AWS,ap-northeast-2,m4.xlarge,reserved_1y,no_upfront,0.157763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:34.637993 +AWS,ap-northeast-2,m4.xlarge,reserved_1y,partial_upfront,0.157763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:20.232315 +AWS,ap-northeast-2,m4.xlarge,reserved_3y,all_upfront,0.052588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:57.871727 +AWS,ap-northeast-2,m4.xlarge,reserved_3y,no_upfront,0.052588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:37.055728 +AWS,ap-northeast-2,m4.xlarge,reserved_3y,partial_upfront,0.052588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:32.003252 +AWS,ap-northeast-2,m4.xlarge,spot,NA,0.089664,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172359 +AWS,ap-northeast-2,m5.12xlarge,on_demand,NA,2.832,USD,AWS Pricing API,2025-11-30T08:57:59.836999 +AWS,ap-northeast-2,m5.12xlarge,reserved_1y,all_upfront,1.223,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:31.317582 +AWS,ap-northeast-2,m5.12xlarge,reserved_1y,no_upfront,1.223,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:11.985403 +AWS,ap-northeast-2,m5.12xlarge,reserved_1y,partial_upfront,1.223,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:57.761334 +AWS,ap-northeast-2,m5.12xlarge,reserved_3y,all_upfront,1.223,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:35.534896 +AWS,ap-northeast-2,m5.12xlarge,reserved_3y,no_upfront,1.223,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:14.107187 +AWS,ap-northeast-2,m5.12xlarge,reserved_3y,partial_upfront,1.223,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:09.612227 +AWS,ap-northeast-2,m5.12xlarge,spot,NA,0.999296,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171857 +AWS,ap-northeast-2,m5.16xlarge,on_demand,NA,3.776,USD,AWS Pricing API,2025-11-30T08:58:32.337863 +AWS,ap-northeast-2,m5.16xlarge,reserved_1y,all_upfront,4.259361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:03.768251 +AWS,ap-northeast-2,m5.16xlarge,reserved_1y,no_upfront,4.259361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:44.637763 +AWS,ap-northeast-2,m5.16xlarge,reserved_1y,partial_upfront,4.259361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:30.164486 +AWS,ap-northeast-2,m5.16xlarge,reserved_3y,all_upfront,1.419787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:07.598227 +AWS,ap-northeast-2,m5.16xlarge,reserved_3y,no_upfront,1.419787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:47.093405 +AWS,ap-northeast-2,m5.16xlarge,reserved_3y,partial_upfront,1.419787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:41.786616 +AWS,ap-northeast-2,m5.16xlarge,spot,NA,1.266039,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172579 +AWS,ap-northeast-2,m5.24xlarge,on_demand,NA,5.664,USD,AWS Pricing API,2025-11-30T08:58:43.851987 +AWS,ap-northeast-2,m5.24xlarge,reserved_1y,all_upfront,3.528,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:15.198770 +AWS,ap-northeast-2,m5.24xlarge,reserved_1y,no_upfront,3.528,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:56.215745 +AWS,ap-northeast-2,m5.24xlarge,reserved_1y,partial_upfront,3.528,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:41.434751 +AWS,ap-northeast-2,m5.24xlarge,reserved_3y,all_upfront,3.528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:18.738349 +AWS,ap-northeast-2,m5.24xlarge,reserved_3y,no_upfront,3.528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:58.596394 +AWS,ap-northeast-2,m5.24xlarge,reserved_3y,partial_upfront,3.528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:53.154551 +AWS,ap-northeast-2,m5.24xlarge,spot,NA,2.053979,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172791 +AWS,ap-northeast-2,m5.2xlarge,on_demand,NA,0.472,USD,AWS Pricing API,2025-11-30T08:58:15.865340 +AWS,ap-northeast-2,m5.2xlarge,reserved_1y,all_upfront,0.279954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:47.297970 +AWS,ap-northeast-2,m5.2xlarge,reserved_1y,no_upfront,0.279954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:28.006005 +AWS,ap-northeast-2,m5.2xlarge,reserved_1y,partial_upfront,0.279954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:13.635107 +AWS,ap-northeast-2,m5.2xlarge,reserved_3y,all_upfront,0.186651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:51.348029 +AWS,ap-northeast-2,m5.2xlarge,reserved_3y,no_upfront,0.186651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:30.334783 +AWS,ap-northeast-2,m5.2xlarge,reserved_3y,partial_upfront,0.186651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:25.428305 +AWS,ap-northeast-2,m5.2xlarge,spot,NA,0.182029,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172232 +AWS,ap-northeast-2,m5.4xlarge,on_demand,NA,0.944,USD,AWS Pricing API,2025-11-30T08:58:25.111977 +AWS,ap-northeast-2,m5.4xlarge,reserved_1y,all_upfront,0.755438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:56.579603 +AWS,ap-northeast-2,m5.4xlarge,reserved_1y,no_upfront,0.755438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:37.347765 +AWS,ap-northeast-2,m5.4xlarge,reserved_1y,partial_upfront,0.755438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:22.942565 +AWS,ap-northeast-2,m5.4xlarge,reserved_3y,all_upfront,0.377813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:00.531623 +AWS,ap-northeast-2,m5.4xlarge,reserved_3y,no_upfront,0.377813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:39.783836 +AWS,ap-northeast-2,m5.4xlarge,reserved_3y,partial_upfront,0.377813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:34.664297 +AWS,ap-northeast-2,m5.4xlarge,spot,NA,0.406371,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172395 +AWS,ap-northeast-2,m5.8xlarge,on_demand,NA,1.888,USD,AWS Pricing API,2025-11-30T08:58:51.770617 +AWS,ap-northeast-2,m5.8xlarge,reserved_1y,all_upfront,1.28795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:23.145385 +AWS,ap-northeast-2,m5.8xlarge,reserved_1y,no_upfront,1.28795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:04.258456 +AWS,ap-northeast-2,m5.8xlarge,reserved_1y,partial_upfront,1.28795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:49.375305 +AWS,ap-northeast-2,m5.8xlarge,reserved_3y,all_upfront,0.85865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:26.726510 +AWS,ap-northeast-2,m5.8xlarge,reserved_3y,no_upfront,0.85865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:06.741237 +AWS,ap-northeast-2,m5.8xlarge,reserved_3y,partial_upfront,0.85865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:01.060562 +AWS,ap-northeast-2,m5.8xlarge,spot,NA,0.704102,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172964 +AWS,ap-northeast-2,m5.large,on_demand,NA,0.118,USD,AWS Pricing API,2025-11-30T08:58:16.263783 +AWS,ap-northeast-2,m5.large,reserved_1y,all_upfront,0.068607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:47.697945 +AWS,ap-northeast-2,m5.large,reserved_1y,no_upfront,0.068607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:28.409919 +AWS,ap-northeast-2,m5.large,reserved_1y,partial_upfront,0.068607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:14.035519 +AWS,ap-northeast-2,m5.large,reserved_3y,all_upfront,0.022869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:51.742781 +AWS,ap-northeast-2,m5.large,reserved_3y,no_upfront,0.022869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:30.741908 +AWS,ap-northeast-2,m5.large,reserved_3y,partial_upfront,0.022869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:25.834336 +AWS,ap-northeast-2,m5.large,spot,NA,0.044563,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172224 +AWS,ap-northeast-2,m5.xlarge,on_demand,NA,0.236,USD,AWS Pricing API,2025-11-30T08:58:49.609944 +AWS,ap-northeast-2,m5.xlarge,reserved_1y,all_upfront,0.169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:20.989035 +AWS,ap-northeast-2,m5.xlarge,reserved_1y,no_upfront,0.169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:02.078806 +AWS,ap-northeast-2,m5.xlarge,reserved_1y,partial_upfront,0.169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:47.214100 +AWS,ap-northeast-2,m5.xlarge,reserved_3y,all_upfront,0.169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:24.521707 +AWS,ap-northeast-2,m5.xlarge,reserved_3y,no_upfront,0.169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:04.522830 +AWS,ap-northeast-2,m5.xlarge,reserved_3y,partial_upfront,0.169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:58.901680 +AWS,ap-northeast-2,m5.xlarge,spot,NA,0.085266,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172904 +AWS,ap-northeast-2,m5a.12xlarge,on_demand,NA,2.544,USD,AWS Pricing API,2025-11-30T08:58:16.801490 +AWS,ap-northeast-2,m5a.12xlarge,reserved_1y,all_upfront,2.03537,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:48.236187 +AWS,ap-northeast-2,m5a.12xlarge,reserved_1y,no_upfront,2.03537,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:28.948856 +AWS,ap-northeast-2,m5a.12xlarge,reserved_1y,partial_upfront,2.03537,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:14.570305 +AWS,ap-northeast-2,m5a.12xlarge,reserved_3y,all_upfront,1.01779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:52.278896 +AWS,ap-northeast-2,m5a.12xlarge,reserved_3y,no_upfront,1.01779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:31.286621 +AWS,ap-northeast-2,m5a.12xlarge,reserved_3y,partial_upfront,1.01779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:26.364455 +AWS,ap-northeast-2,m5a.12xlarge,spot,NA,0.824619,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172220 +AWS,ap-northeast-2,m5a.16xlarge,on_demand,NA,3.392,USD,AWS Pricing API,2025-11-30T08:58:34.112216 +AWS,ap-northeast-2,m5a.16xlarge,reserved_1y,all_upfront,1.971689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:05.536211 +AWS,ap-northeast-2,m5a.16xlarge,reserved_1y,no_upfront,1.971689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:46.430907 +AWS,ap-northeast-2,m5a.16xlarge,reserved_1y,partial_upfront,1.971689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:31.916671 +AWS,ap-northeast-2,m5a.16xlarge,reserved_3y,all_upfront,0.65723,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:09.339746 +AWS,ap-northeast-2,m5a.16xlarge,reserved_3y,no_upfront,0.65723,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:48.890329 +AWS,ap-northeast-2,m5a.16xlarge,reserved_3y,partial_upfront,0.65723,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:43.542681 +AWS,ap-northeast-2,m5a.16xlarge,spot,NA,1.123242,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172611 +AWS,ap-northeast-2,m5a.24xlarge,on_demand,NA,5.088,USD,AWS Pricing API,2025-11-30T08:58:09.467896 +AWS,ap-northeast-2,m5a.24xlarge,reserved_1y,all_upfront,3.169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:40.881333 +AWS,ap-northeast-2,m5a.24xlarge,reserved_1y,no_upfront,3.169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:21.621351 +AWS,ap-northeast-2,m5a.24xlarge,reserved_1y,partial_upfront,3.169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:07.299477 +AWS,ap-northeast-2,m5a.24xlarge,reserved_3y,all_upfront,3.169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:44.964403 +AWS,ap-northeast-2,m5a.24xlarge,reserved_3y,no_upfront,3.169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:23.857038 +AWS,ap-northeast-2,m5a.24xlarge,reserved_3y,partial_upfront,3.169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:19.108965 +AWS,ap-northeast-2,m5a.24xlarge,spot,NA,1.749874,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172086 +AWS,ap-northeast-2,m5a.2xlarge,on_demand,NA,0.424,USD,AWS Pricing API,2025-11-30T08:58:01.985606 +AWS,ap-northeast-2,m5a.2xlarge,reserved_1y,all_upfront,0.411562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:33.474506 +AWS,ap-northeast-2,m5a.2xlarge,reserved_1y,no_upfront,0.411562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:14.158712 +AWS,ap-northeast-2,m5a.2xlarge,reserved_1y,partial_upfront,0.411562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:59.895726 +AWS,ap-northeast-2,m5a.2xlarge,reserved_3y,all_upfront,0.205854,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:37.631419 +AWS,ap-northeast-2,m5a.2xlarge,reserved_3y,no_upfront,0.205854,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:16.312199 +AWS,ap-northeast-2,m5a.2xlarge,reserved_3y,partial_upfront,0.205854,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:11.752532 +AWS,ap-northeast-2,m5a.2xlarge,spot,NA,0.170912,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171899 +AWS,ap-northeast-2,m5a.4xlarge,on_demand,NA,0.848,USD,AWS Pricing API,2025-11-30T08:58:42.462556 +AWS,ap-northeast-2,m5a.4xlarge,reserved_1y,all_upfront,1.209589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:13.849015 +AWS,ap-northeast-2,m5a.4xlarge,reserved_1y,no_upfront,1.209589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:54.839133 +AWS,ap-northeast-2,m5a.4xlarge,reserved_1y,partial_upfront,1.209589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:40.073958 +AWS,ap-northeast-2,m5a.4xlarge,reserved_3y,all_upfront,0.403196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:17.420411 +AWS,ap-northeast-2,m5a.4xlarge,reserved_3y,no_upfront,0.403196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:57.215868 +AWS,ap-northeast-2,m5a.4xlarge,reserved_3y,partial_upfront,0.403196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:51.794675 +AWS,ap-northeast-2,m5a.4xlarge,spot,NA,0.31946,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172745 +AWS,ap-northeast-2,m5a.8xlarge,on_demand,NA,1.696,USD,AWS Pricing API,2025-11-30T08:57:53.059753 +AWS,ap-northeast-2,m5a.8xlarge,reserved_1y,all_upfront,1.35658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:24.477340 +AWS,ap-northeast-2,m5a.8xlarge,reserved_1y,no_upfront,1.35658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:05.181955 +AWS,ap-northeast-2,m5a.8xlarge,reserved_1y,partial_upfront,1.35658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:50.931779 +AWS,ap-northeast-2,m5a.8xlarge,reserved_3y,all_upfront,0.678193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:28.901403 +AWS,ap-northeast-2,m5a.8xlarge,reserved_3y,no_upfront,0.678193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:07.171985 +AWS,ap-northeast-2,m5a.8xlarge,reserved_3y,partial_upfront,0.678193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:02.862036 +AWS,ap-northeast-2,m5a.8xlarge,spot,NA,0.607989,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171688 +AWS,ap-northeast-2,m5a.large,on_demand,NA,0.106,USD,AWS Pricing API,2025-11-30T08:58:11.886538 +AWS,ap-northeast-2,m5a.large,reserved_1y,all_upfront,0.076,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:43.342726 +AWS,ap-northeast-2,m5a.large,reserved_1y,no_upfront,0.076,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:24.061181 +AWS,ap-northeast-2,m5a.large,reserved_1y,partial_upfront,0.076,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:09.721919 +AWS,ap-northeast-2,m5a.large,reserved_3y,all_upfront,0.076,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:47.350966 +AWS,ap-northeast-2,m5a.large,reserved_3y,no_upfront,0.076,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:26.339935 +AWS,ap-northeast-2,m5a.large,reserved_3y,partial_upfront,0.076,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:21.521732 +AWS,ap-northeast-2,m5a.large,spot,NA,0.041299,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172131 +AWS,ap-northeast-2,m5a.xlarge,on_demand,NA,0.212,USD,AWS Pricing API,2025-11-30T08:58:13.924708 +AWS,ap-northeast-2,m5a.xlarge,reserved_1y,all_upfront,0.1259,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:45.422594 +AWS,ap-northeast-2,m5a.xlarge,reserved_1y,no_upfront,0.1259,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:26.103960 +AWS,ap-northeast-2,m5a.xlarge,reserved_1y,partial_upfront,0.1259,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:11.739841 +AWS,ap-northeast-2,m5a.xlarge,reserved_3y,all_upfront,0.083967,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:49.465995 +AWS,ap-northeast-2,m5a.xlarge,reserved_3y,no_upfront,0.083967,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:28.411637 +AWS,ap-northeast-2,m5a.xlarge,reserved_3y,partial_upfront,0.083967,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:23.533652 +AWS,ap-northeast-2,m5a.xlarge,spot,NA,0.083902,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172175 +AWS,ap-northeast-2,m5d.12xlarge,on_demand,NA,3.336,USD,AWS Pricing API,2025-11-30T08:57:44.365620 +AWS,ap-northeast-2,m5d.12xlarge,reserved_1y,all_upfront,2.393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:15.765115 +AWS,ap-northeast-2,m5d.12xlarge,reserved_1y,no_upfront,2.393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:56.368737 +AWS,ap-northeast-2,m5d.12xlarge,reserved_1y,partial_upfront,2.393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:42.301424 +AWS,ap-northeast-2,m5d.12xlarge,reserved_3y,all_upfront,2.393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:20.440706 +AWS,ap-northeast-2,m5d.12xlarge,reserved_3y,no_upfront,2.393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:58.298019 +AWS,ap-northeast-2,m5d.12xlarge,reserved_3y,partial_upfront,2.393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:54.233981 +AWS,ap-northeast-2,m5d.12xlarge,spot,NA,1.244781,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171464 +AWS,ap-northeast-2,m5d.16xlarge,on_demand,NA,4.448,USD,AWS Pricing API,2025-11-30T08:58:29.175573 +AWS,ap-northeast-2,m5d.16xlarge,reserved_1y,all_upfront,5.017352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:00.628072 +AWS,ap-northeast-2,m5d.16xlarge,reserved_1y,no_upfront,5.017352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:41.492488 +AWS,ap-northeast-2,m5d.16xlarge,reserved_1y,partial_upfront,5.017352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:27.002662 +AWS,ap-northeast-2,m5d.16xlarge,reserved_3y,all_upfront,1.672451,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:04.532451 +AWS,ap-northeast-2,m5d.16xlarge,reserved_3y,no_upfront,1.672451,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:43.908958 +AWS,ap-northeast-2,m5d.16xlarge,reserved_3y,partial_upfront,1.672451,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:38.684206 +AWS,ap-northeast-2,m5d.16xlarge,spot,NA,1.530999,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172487 +AWS,ap-northeast-2,m5d.24xlarge,on_demand,NA,6.672,USD,AWS Pricing API,2025-11-30T08:58:12.841598 +AWS,ap-northeast-2,m5d.24xlarge,reserved_1y,all_upfront,3.883676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:44.324382 +AWS,ap-northeast-2,m5d.24xlarge,reserved_1y,no_upfront,3.883676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:25.010038 +AWS,ap-northeast-2,m5d.24xlarge,reserved_1y,partial_upfront,3.883676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:10.668953 +AWS,ap-northeast-2,m5d.24xlarge,reserved_3y,all_upfront,1.294559,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:48.395871 +AWS,ap-northeast-2,m5d.24xlarge,reserved_3y,no_upfront,1.294559,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:27.301162 +AWS,ap-northeast-2,m5d.24xlarge,reserved_3y,partial_upfront,1.294559,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:22.459710 +AWS,ap-northeast-2,m5d.24xlarge,spot,NA,2.391581,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172135 +AWS,ap-northeast-2,m5d.2xlarge,on_demand,NA,0.556,USD,AWS Pricing API,2025-11-30T08:57:57.256303 +AWS,ap-northeast-2,m5d.2xlarge,reserved_1y,all_upfront,0.293,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:28.658565 +AWS,ap-northeast-2,m5d.2xlarge,reserved_1y,no_upfront,0.293,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:09.391805 +AWS,ap-northeast-2,m5d.2xlarge,reserved_1y,partial_upfront,0.293,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:55.168781 +AWS,ap-northeast-2,m5d.2xlarge,reserved_3y,all_upfront,0.293,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:33.004894 +AWS,ap-northeast-2,m5d.2xlarge,reserved_3y,no_upfront,0.293,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:11.457301 +AWS,ap-northeast-2,m5d.2xlarge,reserved_3y,partial_upfront,0.293,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:07.028026 +AWS,ap-northeast-2,m5d.2xlarge,spot,NA,0.208065,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171814 +AWS,ap-northeast-2,m5d.4xlarge,on_demand,NA,1.112,USD,AWS Pricing API,2025-11-30T08:58:08.383917 +AWS,ap-northeast-2,m5d.4xlarge,reserved_1y,all_upfront,0.694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:39.790557 +AWS,ap-northeast-2,m5d.4xlarge,reserved_1y,no_upfront,0.694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:20.529973 +AWS,ap-northeast-2,m5d.4xlarge,reserved_1y,partial_upfront,0.694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:06.223842 +AWS,ap-northeast-2,m5d.4xlarge,reserved_3y,all_upfront,0.694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:43.895691 +AWS,ap-northeast-2,m5d.4xlarge,reserved_3y,no_upfront,0.694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:22.763640 +AWS,ap-northeast-2,m5d.4xlarge,reserved_3y,partial_upfront,0.694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:18.042329 +AWS,ap-northeast-2,m5d.4xlarge,spot,NA,0.433978,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172026 +AWS,ap-northeast-2,m5d.8xlarge,on_demand,NA,2.224,USD,AWS Pricing API,2025-11-30T08:58:51.635511 +AWS,ap-northeast-2,m5d.8xlarge,reserved_1y,all_upfront,3.190525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:23.006884 +AWS,ap-northeast-2,m5d.8xlarge,reserved_1y,no_upfront,3.190525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:04.121570 +AWS,ap-northeast-2,m5d.8xlarge,reserved_1y,partial_upfront,3.190525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:49.239888 +AWS,ap-northeast-2,m5d.8xlarge,reserved_3y,all_upfront,1.063508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:26.593195 +AWS,ap-northeast-2,m5d.8xlarge,reserved_3y,no_upfront,1.063508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:06.602762 +AWS,ap-northeast-2,m5d.8xlarge,reserved_3y,partial_upfront,1.063508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:00.925491 +AWS,ap-northeast-2,m5d.8xlarge,spot,NA,0.850084,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172948 +AWS,ap-northeast-2,m5d.large,on_demand,NA,0.139,USD,AWS Pricing API,2025-11-30T08:57:48.173496 +AWS,ap-northeast-2,m5d.large,reserved_1y,all_upfront,0.1,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:19.535889 +AWS,ap-northeast-2,m5d.large,reserved_1y,no_upfront,0.1,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:00.219131 +AWS,ap-northeast-2,m5d.large,reserved_1y,partial_upfront,0.1,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:46.053751 +AWS,ap-northeast-2,m5d.large,reserved_3y,all_upfront,0.1,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:24.139509 +AWS,ap-northeast-2,m5d.large,reserved_3y,no_upfront,0.1,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:02.159170 +AWS,ap-northeast-2,m5d.large,reserved_3y,partial_upfront,0.1,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:58.006440 +AWS,ap-northeast-2,m5d.large,spot,NA,0.05462,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171572 +AWS,ap-northeast-2,m5d.xlarge,on_demand,NA,0.278,USD,AWS Pricing API,2025-11-30T08:58:04.149797 +AWS,ap-northeast-2,m5d.xlarge,reserved_1y,all_upfront,0.165534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:35.629258 +AWS,ap-northeast-2,m5d.xlarge,reserved_1y,no_upfront,0.165534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:16.313257 +AWS,ap-northeast-2,m5d.xlarge,reserved_1y,partial_upfront,0.165534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:02.041850 +AWS,ap-northeast-2,m5d.xlarge,reserved_3y,all_upfront,0.110511,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:39.722776 +AWS,ap-northeast-2,m5d.xlarge,reserved_3y,no_upfront,0.110511,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:18.498315 +AWS,ap-northeast-2,m5d.xlarge,reserved_3y,partial_upfront,0.110511,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:13.900535 +AWS,ap-northeast-2,m5d.xlarge,spot,NA,0.099777,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171944 +AWS,ap-northeast-2,m5zn.12xlarge,on_demand,NA,4.872,USD,AWS Pricing API,2025-11-30T08:58:20.003010 +AWS,ap-northeast-2,m5zn.12xlarge,reserved_1y,all_upfront,3.912018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:51.467352 +AWS,ap-northeast-2,m5zn.12xlarge,reserved_1y,no_upfront,3.912018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:32.190252 +AWS,ap-northeast-2,m5zn.12xlarge,reserved_1y,partial_upfront,3.912018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:17.803293 +AWS,ap-northeast-2,m5zn.12xlarge,reserved_3y,all_upfront,1.956006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:55.500628 +AWS,ap-northeast-2,m5zn.12xlarge,reserved_3y,no_upfront,1.956006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:34.576366 +AWS,ap-northeast-2,m5zn.12xlarge,reserved_3y,partial_upfront,1.956006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:29.589180 +AWS,ap-northeast-2,m5zn.12xlarge,spot,NA,1.776553,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172316 +AWS,ap-northeast-2,m5zn.2xlarge,on_demand,NA,0.812,USD,AWS Pricing API,2025-11-30T08:57:49.562425 +AWS,ap-northeast-2,m5zn.2xlarge,reserved_1y,all_upfront,0.652041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:20.889966 +AWS,ap-northeast-2,m5zn.2xlarge,reserved_1y,no_upfront,0.652041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:01.610813 +AWS,ap-northeast-2,m5zn.2xlarge,reserved_1y,partial_upfront,0.652041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:47.409064 +AWS,ap-northeast-2,m5zn.2xlarge,reserved_3y,all_upfront,0.326014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:25.465416 +AWS,ap-northeast-2,m5zn.2xlarge,reserved_3y,no_upfront,0.326014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:03.592973 +AWS,ap-northeast-2,m5zn.2xlarge,reserved_3y,partial_upfront,0.326014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:59.355115 +AWS,ap-northeast-2,m5zn.2xlarge,spot,NA,0.324842,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171584 +AWS,ap-northeast-2,m5zn.3xlarge,on_demand,NA,1.218,USD,AWS Pricing API,2025-11-30T08:58:23.504644 +AWS,ap-northeast-2,m5zn.3xlarge,reserved_1y,all_upfront,0.6318,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:54.973267 +AWS,ap-northeast-2,m5zn.3xlarge,reserved_1y,no_upfront,0.6318,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:35.721793 +AWS,ap-northeast-2,m5zn.3xlarge,reserved_1y,partial_upfront,0.6318,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:21.326803 +AWS,ap-northeast-2,m5zn.3xlarge,reserved_3y,all_upfront,0.6318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:58.924982 +AWS,ap-northeast-2,m5zn.3xlarge,reserved_3y,no_upfront,0.6318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:38.144282 +AWS,ap-northeast-2,m5zn.3xlarge,reserved_3y,partial_upfront,0.6318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:33.061324 +AWS,ap-northeast-2,m5zn.3xlarge,spot,NA,0.523853,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172375 +AWS,ap-northeast-2,m5zn.6xlarge,on_demand,NA,2.436,USD,AWS Pricing API,2025-11-30T08:57:43.684728 +AWS,ap-northeast-2,m5zn.6xlarge,reserved_1y,all_upfront,1.728041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:15.084772 +AWS,ap-northeast-2,m5zn.6xlarge,reserved_1y,no_upfront,1.728041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:55.672723 +AWS,ap-northeast-2,m5zn.6xlarge,reserved_1y,partial_upfront,1.728041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:41.638352 +AWS,ap-northeast-2,m5zn.6xlarge,reserved_3y,all_upfront,1.152014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:19.780898 +AWS,ap-northeast-2,m5zn.6xlarge,reserved_3y,no_upfront,1.152014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:57.598325 +AWS,ap-northeast-2,m5zn.6xlarge,reserved_3y,partial_upfront,1.152014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:53.557425 +AWS,ap-northeast-2,m5zn.6xlarge,spot,NA,0.993132,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171481 +AWS,ap-northeast-2,m5zn.large,on_demand,NA,0.203,USD,AWS Pricing API,2025-11-30T08:58:13.247021 +AWS,ap-northeast-2,m5zn.large,reserved_1y,all_upfront,0.120046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:44.727273 +AWS,ap-northeast-2,m5zn.large,reserved_1y,no_upfront,0.120046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:25.423942 +AWS,ap-northeast-2,m5zn.large,reserved_1y,partial_upfront,0.120046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:11.067569 +AWS,ap-northeast-2,m5zn.large,reserved_3y,all_upfront,0.080015,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:48.799974 +AWS,ap-northeast-2,m5zn.large,reserved_3y,no_upfront,0.080015,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:27.724483 +AWS,ap-northeast-2,m5zn.large,reserved_3y,partial_upfront,0.080015,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:22.861823 +AWS,ap-northeast-2,m5zn.large,spot,NA,0.077493,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172167 +AWS,ap-northeast-2,m5zn.metal,on_demand,NA,4.872,USD,AWS Pricing API,2025-11-30T08:58:50.283660 +AWS,ap-northeast-2,m5zn.metal,reserved_1y,all_upfront,3.024,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:21.668102 +AWS,ap-northeast-2,m5zn.metal,reserved_1y,no_upfront,3.024,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:02.764972 +AWS,ap-northeast-2,m5zn.metal,reserved_1y,partial_upfront,3.024,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:47.899553 +AWS,ap-northeast-2,m5zn.metal,reserved_3y,all_upfront,3.024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:25.278567 +AWS,ap-northeast-2,m5zn.metal,reserved_3y,no_upfront,3.024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:05.206785 +AWS,ap-northeast-2,m5zn.metal,reserved_3y,partial_upfront,3.024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:59.572575 +AWS,ap-northeast-2,m5zn.metal,spot,NA,1.571796,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172928 +AWS,ap-northeast-2,m5zn.xlarge,on_demand,NA,0.406,USD,AWS Pricing API,2025-11-30T08:57:48.723397 +AWS,ap-northeast-2,m5zn.xlarge,reserved_1y,all_upfront,0.239977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:20.085292 +AWS,ap-northeast-2,m5zn.xlarge,reserved_1y,no_upfront,0.239977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:00.773270 +AWS,ap-northeast-2,m5zn.xlarge,reserved_1y,partial_upfront,0.239977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:46.595983 +AWS,ap-northeast-2,m5zn.xlarge,reserved_3y,all_upfront,0.159992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:24.663024 +AWS,ap-northeast-2,m5zn.xlarge,reserved_3y,no_upfront,0.159992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:02.747004 +AWS,ap-northeast-2,m5zn.xlarge,reserved_3y,partial_upfront,0.159992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:58.545590 +AWS,ap-northeast-2,m5zn.xlarge,spot,NA,0.171649,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171580 +AWS,ap-northeast-2,m6g.12xlarge,on_demand,NA,2.256,USD,AWS Pricing API,2025-11-30T08:57:58.472957 +AWS,ap-northeast-2,m6g.12xlarge,reserved_1y,all_upfront,1.368018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:29.959454 +AWS,ap-northeast-2,m6g.12xlarge,reserved_1y,no_upfront,1.368018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:10.624683 +AWS,ap-northeast-2,m6g.12xlarge,reserved_1y,partial_upfront,1.368018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:56.388567 +AWS,ap-northeast-2,m6g.12xlarge,reserved_3y,all_upfront,0.912006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:34.202289 +AWS,ap-northeast-2,m6g.12xlarge,reserved_3y,no_upfront,0.912006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:12.708469 +AWS,ap-northeast-2,m6g.12xlarge,reserved_3y,partial_upfront,0.912006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:08.267016 +AWS,ap-northeast-2,m6g.12xlarge,spot,NA,0.816772,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171843 +AWS,ap-northeast-2,m6g.16xlarge,on_demand,NA,3.008,USD,AWS Pricing API,2025-11-30T08:57:53.877370 +AWS,ap-northeast-2,m6g.16xlarge,reserved_1y,all_upfront,1.823986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:25.296804 +AWS,ap-northeast-2,m6g.16xlarge,reserved_1y,no_upfront,1.823986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:06.010366 +AWS,ap-northeast-2,m6g.16xlarge,reserved_1y,partial_upfront,1.823986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:51.756629 +AWS,ap-northeast-2,m6g.16xlarge,reserved_3y,all_upfront,1.215995,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:29.695922 +AWS,ap-northeast-2,m6g.16xlarge,reserved_3y,no_upfront,1.215995,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:08.003056 +AWS,ap-northeast-2,m6g.16xlarge,reserved_3y,partial_upfront,1.215995,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:03.674023 +AWS,ap-northeast-2,m6g.16xlarge,spot,NA,1.087795,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171659 +AWS,ap-northeast-2,m6g.2xlarge,on_demand,NA,0.376,USD,AWS Pricing API,2025-11-30T08:58:14.470552 +AWS,ap-northeast-2,m6g.2xlarge,reserved_1y,all_upfront,0.540982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:45.958999 +AWS,ap-northeast-2,m6g.2xlarge,reserved_1y,no_upfront,0.540982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:26.650554 +AWS,ap-northeast-2,m6g.2xlarge,reserved_1y,partial_upfront,0.540982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:12.284711 +AWS,ap-northeast-2,m6g.2xlarge,reserved_3y,all_upfront,0.180327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:50.003454 +AWS,ap-northeast-2,m6g.2xlarge,reserved_3y,no_upfront,0.180327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:28.958531 +AWS,ap-northeast-2,m6g.2xlarge,reserved_3y,partial_upfront,0.180327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:24.068896 +AWS,ap-northeast-2,m6g.2xlarge,spot,NA,0.137566,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172207 +AWS,ap-northeast-2,m6g.4xlarge,on_demand,NA,0.752,USD,AWS Pricing API,2025-11-30T08:58:40.870959 +AWS,ap-northeast-2,m6g.4xlarge,reserved_1y,all_upfront,0.5376,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:12.262374 +AWS,ap-northeast-2,m6g.4xlarge,reserved_1y,no_upfront,0.5376,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:53.307184 +AWS,ap-northeast-2,m6g.4xlarge,reserved_1y,partial_upfront,0.5376,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:38.597292 +AWS,ap-northeast-2,m6g.4xlarge,reserved_3y,all_upfront,0.5376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:15.943753 +AWS,ap-northeast-2,m6g.4xlarge,reserved_3y,no_upfront,0.5376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:55.717207 +AWS,ap-northeast-2,m6g.4xlarge,reserved_3y,partial_upfront,0.5376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:50.334689 +AWS,ap-northeast-2,m6g.4xlarge,spot,NA,0.28013,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172737 +AWS,ap-northeast-2,m6g.8xlarge,on_demand,NA,1.504,USD,AWS Pricing API,2025-11-30T08:58:21.895702 +AWS,ap-northeast-2,m6g.8xlarge,reserved_1y,all_upfront,0.893836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:53.371642 +AWS,ap-northeast-2,m6g.8xlarge,reserved_1y,no_upfront,0.893836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:34.092000 +AWS,ap-northeast-2,m6g.8xlarge,reserved_1y,partial_upfront,0.893836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:19.688865 +AWS,ap-northeast-2,m6g.8xlarge,reserved_3y,all_upfront,0.297945,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:57.342660 +AWS,ap-northeast-2,m6g.8xlarge,reserved_3y,no_upfront,0.297945,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:36.502032 +AWS,ap-northeast-2,m6g.8xlarge,reserved_3y,partial_upfront,0.297945,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:31.461361 +AWS,ap-northeast-2,m6g.8xlarge,spot,NA,0.536927,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172324 +AWS,ap-northeast-2,m6g.large,on_demand,NA,0.094,USD,AWS Pricing API,2025-11-30T08:57:59.027879 +AWS,ap-northeast-2,m6g.large,reserved_1y,all_upfront,0.135274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:30.497246 +AWS,ap-northeast-2,m6g.large,reserved_1y,no_upfront,0.135274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:11.167293 +AWS,ap-northeast-2,m6g.large,reserved_1y,partial_upfront,0.135274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:56.927744 +AWS,ap-northeast-2,m6g.large,reserved_3y,all_upfront,0.045091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:34.741226 +AWS,ap-northeast-2,m6g.large,reserved_3y,no_upfront,0.045091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:13.265658 +AWS,ap-northeast-2,m6g.large,reserved_3y,partial_upfront,0.045091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:08.802239 +AWS,ap-northeast-2,m6g.large,spot,NA,0.033988,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171852 +AWS,ap-northeast-2,m6g.xlarge,on_demand,NA,0.188,USD,AWS Pricing API,2025-11-30T08:58:12.703746 +AWS,ap-northeast-2,m6g.xlarge,reserved_1y,all_upfront,0.1344,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:44.190922 +AWS,ap-northeast-2,m6g.xlarge,reserved_1y,no_upfront,0.1344,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:24.874602 +AWS,ap-northeast-2,m6g.xlarge,reserved_1y,partial_upfront,0.1344,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:10.533460 +AWS,ap-northeast-2,m6g.xlarge,reserved_3y,all_upfront,0.1344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:48.254670 +AWS,ap-northeast-2,m6g.xlarge,reserved_3y,no_upfront,0.1344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:27.164589 +AWS,ap-northeast-2,m6g.xlarge,reserved_3y,partial_upfront,0.1344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:22.325311 +AWS,ap-northeast-2,m6g.xlarge,spot,NA,0.066579,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172147 +AWS,ap-northeast-2,m6gd.12xlarge,on_demand,NA,2.6688,USD,AWS Pricing API,2025-11-30T08:58:30.551037 +AWS,ap-northeast-2,m6gd.12xlarge,reserved_1y,all_upfront,1.6643,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:01.995225 +AWS,ap-northeast-2,m6gd.12xlarge,reserved_1y,no_upfront,1.6643,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:42.856957 +AWS,ap-northeast-2,m6gd.12xlarge,reserved_1y,partial_upfront,1.6643,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:28.376893 +AWS,ap-northeast-2,m6gd.12xlarge,reserved_3y,all_upfront,1.6643,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:05.865716 +AWS,ap-northeast-2,m6gd.12xlarge,reserved_3y,no_upfront,1.6643,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:45.296989 +AWS,ap-northeast-2,m6gd.12xlarge,reserved_3y,partial_upfront,1.6643,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:40.033692 +AWS,ap-northeast-2,m6gd.12xlarge,spot,NA,0.904077,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172495 +AWS,ap-northeast-2,m6gd.16xlarge,on_demand,NA,3.5584,USD,AWS Pricing API,2025-11-30T08:58:32.894448 +AWS,ap-northeast-2,m6gd.16xlarge,reserved_1y,all_upfront,2.113321,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:04.314889 +AWS,ap-northeast-2,m6gd.16xlarge,reserved_1y,no_upfront,2.113321,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:45.181896 +AWS,ap-northeast-2,m6gd.16xlarge,reserved_1y,partial_upfront,2.113321,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:30.708866 +AWS,ap-northeast-2,m6gd.16xlarge,reserved_3y,all_upfront,1.408907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:08.130590 +AWS,ap-northeast-2,m6gd.16xlarge,reserved_3y,no_upfront,1.408907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:47.652562 +AWS,ap-northeast-2,m6gd.16xlarge,reserved_3y,partial_upfront,1.408907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:42.330017 +AWS,ap-northeast-2,m6gd.16xlarge,spot,NA,1.223399,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172583 +AWS,ap-northeast-2,m6gd.2xlarge,on_demand,NA,0.4448,USD,AWS Pricing API,2025-11-30T08:58:01.166000 +AWS,ap-northeast-2,m6gd.2xlarge,reserved_1y,all_upfront,0.2344,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:32.665869 +AWS,ap-northeast-2,m6gd.2xlarge,reserved_1y,no_upfront,0.2344,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:13.342603 +AWS,ap-northeast-2,m6gd.2xlarge,reserved_1y,partial_upfront,0.2344,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:59.086891 +AWS,ap-northeast-2,m6gd.2xlarge,reserved_3y,all_upfront,0.2344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:36.847915 +AWS,ap-northeast-2,m6gd.2xlarge,reserved_3y,no_upfront,0.2344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:15.469733 +AWS,ap-northeast-2,m6gd.2xlarge,reserved_3y,partial_upfront,0.2344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:10.953418 +AWS,ap-northeast-2,m6gd.2xlarge,spot,NA,0.160029,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171903 +AWS,ap-northeast-2,m6gd.4xlarge,on_demand,NA,0.8896,USD,AWS Pricing API,2025-11-30T08:58:27.669629 +AWS,ap-northeast-2,m6gd.4xlarge,reserved_1y,all_upfront,0.595548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:59.141379 +AWS,ap-northeast-2,m6gd.4xlarge,reserved_1y,no_upfront,0.595548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:39.976383 +AWS,ap-northeast-2,m6gd.4xlarge,reserved_1y,partial_upfront,0.595548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:25.510020 +AWS,ap-northeast-2,m6gd.4xlarge,reserved_3y,all_upfront,0.198516,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:03.076298 +AWS,ap-northeast-2,m6gd.4xlarge,reserved_3y,no_upfront,0.198516,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:42.391592 +AWS,ap-northeast-2,m6gd.4xlarge,reserved_3y,partial_upfront,0.198516,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:37.208014 +AWS,ap-northeast-2,m6gd.4xlarge,spot,NA,0.314466,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172451 +AWS,ap-northeast-2,m6gd.8xlarge,on_demand,NA,1.7792,USD,AWS Pricing API,2025-11-30T08:57:49.963591 +AWS,ap-northeast-2,m6gd.8xlarge,reserved_1y,all_upfront,0.7686,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:21.290845 +AWS,ap-northeast-2,m6gd.8xlarge,reserved_1y,no_upfront,0.7686,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:02.033358 +AWS,ap-northeast-2,m6gd.8xlarge,reserved_1y,partial_upfront,0.7686,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:47.813019 +AWS,ap-northeast-2,m6gd.8xlarge,reserved_3y,all_upfront,0.7686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:25.864369 +AWS,ap-northeast-2,m6gd.8xlarge,reserved_3y,no_upfront,0.7686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:04.016710 +AWS,ap-northeast-2,m6gd.8xlarge,reserved_3y,partial_upfront,0.7686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:59.755126 +AWS,ap-northeast-2,m6gd.8xlarge,spot,NA,0.62749,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171589 +AWS,ap-northeast-2,m6gd.large,on_demand,NA,0.1112,USD,AWS Pricing API,2025-11-30T08:58:11.348503 +AWS,ap-northeast-2,m6gd.large,reserved_1y,all_upfront,0.125457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:42.795031 +AWS,ap-northeast-2,m6gd.large,reserved_1y,no_upfront,0.125457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:23.515438 +AWS,ap-northeast-2,m6gd.large,reserved_1y,partial_upfront,0.125457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:09.186374 +AWS,ap-northeast-2,m6gd.large,reserved_3y,all_upfront,0.041819,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:46.818256 +AWS,ap-northeast-2,m6gd.large,reserved_3y,no_upfront,0.041819,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:25.788044 +AWS,ap-northeast-2,m6gd.large,reserved_3y,partial_upfront,0.041819,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:20.974920 +AWS,ap-northeast-2,m6gd.large,spot,NA,0.040117,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172119 +AWS,ap-northeast-2,m6gd.xlarge,on_demand,NA,0.2224,USD,AWS Pricing API,2025-11-30T08:58:04.563529 +AWS,ap-northeast-2,m6gd.xlarge,reserved_1y,all_upfront,0.1387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:36.030477 +AWS,ap-northeast-2,m6gd.xlarge,reserved_1y,no_upfront,0.1387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:16.725000 +AWS,ap-northeast-2,m6gd.xlarge,reserved_1y,partial_upfront,0.1387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:02.456083 +AWS,ap-northeast-2,m6gd.xlarge,reserved_3y,all_upfront,0.1387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:40.131794 +AWS,ap-northeast-2,m6gd.xlarge,reserved_3y,no_upfront,0.1387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:18.910927 +AWS,ap-northeast-2,m6gd.xlarge,reserved_3y,partial_upfront,0.1387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:14.306006 +AWS,ap-northeast-2,m6gd.xlarge,spot,NA,0.077546,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171952 +AWS,ap-northeast-2,m6i.12xlarge,on_demand,NA,2.832,USD,AWS Pricing API,2025-11-30T08:57:50.762248 +AWS,ap-northeast-2,m6i.12xlarge,reserved_1y,all_upfront,1.728767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:22.090773 +AWS,ap-northeast-2,m6i.12xlarge,reserved_1y,no_upfront,1.728767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:02.852247 +AWS,ap-northeast-2,m6i.12xlarge,reserved_1y,partial_upfront,1.728767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:48.630724 +AWS,ap-northeast-2,m6i.12xlarge,reserved_3y,all_upfront,0.576256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:26.654152 +AWS,ap-northeast-2,m6i.12xlarge,reserved_3y,no_upfront,0.576256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:04.839962 +AWS,ap-northeast-2,m6i.12xlarge,reserved_3y,partial_upfront,0.576256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:00.566090 +AWS,ap-northeast-2,m6i.12xlarge,spot,NA,0.987809,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171618 +AWS,ap-northeast-2,m6i.16xlarge,on_demand,NA,3.776,USD,AWS Pricing API,2025-11-30T08:58:05.235210 +AWS,ap-northeast-2,m6i.16xlarge,reserved_1y,all_upfront,2.524429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:36.708892 +AWS,ap-northeast-2,m6i.16xlarge,reserved_1y,no_upfront,2.524429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:17.406671 +AWS,ap-northeast-2,m6i.16xlarge,reserved_1y,partial_upfront,2.524429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:03.134911 +AWS,ap-northeast-2,m6i.16xlarge,reserved_3y,all_upfront,0.841476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:40.792158 +AWS,ap-northeast-2,m6i.16xlarge,reserved_3y,no_upfront,0.841476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:19.602689 +AWS,ap-northeast-2,m6i.16xlarge,reserved_3y,partial_upfront,0.841476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:14.968938 +AWS,ap-northeast-2,m6i.16xlarge,spot,NA,1.33817,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171964 +AWS,ap-northeast-2,m6i.24xlarge,on_demand,NA,5.664,USD,AWS Pricing API,2025-11-30T08:58:06.745333 +AWS,ap-northeast-2,m6i.24xlarge,reserved_1y,all_upfront,3.528041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:38.183144 +AWS,ap-northeast-2,m6i.24xlarge,reserved_1y,no_upfront,3.528041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:18.900525 +AWS,ap-northeast-2,m6i.24xlarge,reserved_1y,partial_upfront,3.528041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:04.610954 +AWS,ap-northeast-2,m6i.24xlarge,reserved_3y,all_upfront,2.352014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:42.269900 +AWS,ap-northeast-2,m6i.24xlarge,reserved_3y,no_upfront,2.352014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:21.113612 +AWS,ap-northeast-2,m6i.24xlarge,reserved_3y,partial_upfront,2.352014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:16.443725 +AWS,ap-northeast-2,m6i.24xlarge,spot,NA,2.003387,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172013 +AWS,ap-northeast-2,m6i.2xlarge,on_demand,NA,0.472,USD,AWS Pricing API,2025-11-30T08:58:25.515833 +AWS,ap-northeast-2,m6i.2xlarge,reserved_1y,all_upfront,0.315525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:56.979553 +AWS,ap-northeast-2,m6i.2xlarge,reserved_1y,no_upfront,0.315525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:37.754556 +AWS,ap-northeast-2,m6i.2xlarge,reserved_1y,partial_upfront,0.315525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:23.348116 +AWS,ap-northeast-2,m6i.2xlarge,reserved_3y,all_upfront,0.105175,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:00.923769 +AWS,ap-northeast-2,m6i.2xlarge,reserved_3y,no_upfront,0.105175,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:40.194267 +AWS,ap-northeast-2,m6i.2xlarge,reserved_3y,partial_upfront,0.105175,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:35.063150 +AWS,ap-northeast-2,m6i.2xlarge,spot,NA,0.201791,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172402 +AWS,ap-northeast-2,m6i.32xlarge,on_demand,NA,7.552,USD,AWS Pricing API,2025-11-30T08:58:42.191269 +AWS,ap-northeast-2,m6i.32xlarge,reserved_1y,all_upfront,5.152027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:13.576286 +AWS,ap-northeast-2,m6i.32xlarge,reserved_1y,no_upfront,5.152027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:54.569317 +AWS,ap-northeast-2,m6i.32xlarge,reserved_1y,partial_upfront,5.152027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:39.803604 +AWS,ap-northeast-2,m6i.32xlarge,reserved_3y,all_upfront,3.434676,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:17.156964 +AWS,ap-northeast-2,m6i.32xlarge,reserved_3y,no_upfront,3.434676,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:56.944015 +AWS,ap-northeast-2,m6i.32xlarge,reserved_3y,partial_upfront,3.434676,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:51.527082 +AWS,ap-northeast-2,m6i.32xlarge,spot,NA,2.449915,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172749 +AWS,ap-northeast-2,m6i.4xlarge,on_demand,NA,0.944,USD,AWS Pricing API,2025-11-30T08:57:52.921566 +AWS,ap-northeast-2,m6i.4xlarge,reserved_1y,all_upfront,0.576256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:24.342202 +AWS,ap-northeast-2,m6i.4xlarge,reserved_1y,no_upfront,0.576256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:05.043549 +AWS,ap-northeast-2,m6i.4xlarge,reserved_1y,partial_upfront,0.576256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:50.799059 +AWS,ap-northeast-2,m6i.4xlarge,reserved_3y,all_upfront,0.192085,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:28.772326 +AWS,ap-northeast-2,m6i.4xlarge,reserved_3y,no_upfront,0.192085,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:07.032268 +AWS,ap-northeast-2,m6i.4xlarge,reserved_3y,partial_upfront,0.192085,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:02.728683 +AWS,ap-northeast-2,m6i.4xlarge,spot,NA,0.452742,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171655 +AWS,ap-northeast-2,m6i.8xlarge,on_demand,NA,1.888,USD,AWS Pricing API,2025-11-30T08:57:57.666389 +AWS,ap-northeast-2,m6i.8xlarge,reserved_1y,all_upfront,1.3524,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:29.066514 +AWS,ap-northeast-2,m6i.8xlarge,reserved_1y,no_upfront,1.3524,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:09.805684 +AWS,ap-northeast-2,m6i.8xlarge,reserved_1y,partial_upfront,1.3524,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:55.570621 +AWS,ap-northeast-2,m6i.8xlarge,reserved_3y,all_upfront,1.3524,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:33.403883 +AWS,ap-northeast-2,m6i.8xlarge,reserved_3y,no_upfront,1.3524,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:11.881653 +AWS,ap-northeast-2,m6i.8xlarge,reserved_3y,partial_upfront,1.3524,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:07.438532 +AWS,ap-northeast-2,m6i.8xlarge,spot,NA,0.810421,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171790 +AWS,ap-northeast-2,m6i.large,on_demand,NA,0.118,USD,AWS Pricing API,2025-11-30T08:58:08.247367 +AWS,ap-northeast-2,m6i.large,reserved_1y,all_upfront,0.114176,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:39.657756 +AWS,ap-northeast-2,m6i.large,reserved_1y,no_upfront,0.114176,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:20.391669 +AWS,ap-northeast-2,m6i.large,reserved_1y,partial_upfront,0.114176,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:06.088108 +AWS,ap-northeast-2,m6i.large,reserved_3y,all_upfront,0.057099,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:43.762935 +AWS,ap-northeast-2,m6i.large,reserved_3y,no_upfront,0.057099,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:22.627129 +AWS,ap-northeast-2,m6i.large,reserved_3y,partial_upfront,0.057099,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:17.908679 +AWS,ap-northeast-2,m6i.large,spot,NA,0.046653,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172033 +AWS,ap-northeast-2,m6i.xlarge,on_demand,NA,0.236,USD,AWS Pricing API,2025-11-30T08:57:44.230851 +AWS,ap-northeast-2,m6i.xlarge,reserved_1y,all_upfront,0.144064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:15.633091 +AWS,ap-northeast-2,m6i.xlarge,reserved_1y,no_upfront,0.144064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:56.233351 +AWS,ap-northeast-2,m6i.xlarge,reserved_1y,partial_upfront,0.144064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:42.168541 +AWS,ap-northeast-2,m6i.xlarge,reserved_3y,all_upfront,0.048021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:20.305696 +AWS,ap-northeast-2,m6i.xlarge,reserved_3y,no_upfront,0.048021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:58.161337 +AWS,ap-northeast-2,m6i.xlarge,reserved_3y,partial_upfront,0.048021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:54.101805 +AWS,ap-northeast-2,m6i.xlarge,spot,NA,0.088675,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171485 +AWS,ap-northeast-2,m6id.12xlarge,on_demand,NA,3.5028,USD,AWS Pricing API,2025-11-30T08:58:22.032735 +AWS,ap-northeast-2,m6id.12xlarge,reserved_1y,all_upfront,2.51225,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:53.506950 +AWS,ap-northeast-2,m6id.12xlarge,reserved_1y,no_upfront,2.51225,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:34.226294 +AWS,ap-northeast-2,m6id.12xlarge,reserved_1y,partial_upfront,2.51225,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:19.823671 +AWS,ap-northeast-2,m6id.12xlarge,reserved_3y,all_upfront,2.51225,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:57.473802 +AWS,ap-northeast-2,m6id.12xlarge,reserved_3y,no_upfront,2.51225,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:36.640386 +AWS,ap-northeast-2,m6id.12xlarge,reserved_3y,partial_upfront,2.51225,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:31.594635 +AWS,ap-northeast-2,m6id.12xlarge,spot,NA,1.199634,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172328 +AWS,ap-northeast-2,m6id.16xlarge,on_demand,NA,4.6704,USD,AWS Pricing API,2025-11-30T08:57:49.425390 +AWS,ap-northeast-2,m6id.16xlarge,reserved_1y,all_upfront,2.746233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:20.755686 +AWS,ap-northeast-2,m6id.16xlarge,reserved_1y,no_upfront,2.746233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:01.467480 +AWS,ap-northeast-2,m6id.16xlarge,reserved_1y,partial_upfront,2.746233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:47.273100 +AWS,ap-northeast-2,m6id.16xlarge,reserved_3y,all_upfront,0.915411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:25.334418 +AWS,ap-northeast-2,m6id.16xlarge,reserved_3y,no_upfront,0.915411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:03.447503 +AWS,ap-northeast-2,m6id.16xlarge,reserved_3y,partial_upfront,0.915411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:59.211412 +AWS,ap-northeast-2,m6id.16xlarge,spot,NA,1.575632,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171593 +AWS,ap-northeast-2,m6id.24xlarge,on_demand,NA,7.0056,USD,AWS Pricing API,2025-11-30T08:57:53.603405 +AWS,ap-northeast-2,m6id.24xlarge,reserved_1y,all_upfront,5.0245,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:25.014095 +AWS,ap-northeast-2,m6id.24xlarge,reserved_1y,no_upfront,5.0245,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:05.735751 +AWS,ap-northeast-2,m6id.24xlarge,reserved_1y,partial_upfront,5.0245,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:51.484019 +AWS,ap-northeast-2,m6id.24xlarge,reserved_3y,all_upfront,5.0245,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:29.430589 +AWS,ap-northeast-2,m6id.24xlarge,reserved_3y,no_upfront,5.0245,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:07.720814 +AWS,ap-northeast-2,m6id.24xlarge,reserved_3y,partial_upfront,5.0245,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:03.402311 +AWS,ap-northeast-2,m6id.24xlarge,spot,NA,2.534409,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171680 +AWS,ap-northeast-2,m6id.2xlarge,on_demand,NA,0.5838,USD,AWS Pricing API,2025-11-30T08:57:45.988219 +AWS,ap-northeast-2,m6id.2xlarge,reserved_1y,all_upfront,0.466988,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:17.367936 +AWS,ap-northeast-2,m6id.2xlarge,reserved_1y,no_upfront,0.466988,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:58.018034 +AWS,ap-northeast-2,m6id.2xlarge,reserved_1y,partial_upfront,0.466988,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:43.912848 +AWS,ap-northeast-2,m6id.2xlarge,reserved_3y,all_upfront,0.233503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:22.030253 +AWS,ap-northeast-2,m6id.2xlarge,reserved_3y,no_upfront,0.233503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:59.938810 +AWS,ap-northeast-2,m6id.2xlarge,reserved_3y,partial_upfront,0.233503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:55.840989 +AWS,ap-northeast-2,m6id.2xlarge,spot,NA,0.212453,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171514 +AWS,ap-northeast-2,m6id.32xlarge,on_demand,NA,9.3408,USD,AWS Pricing API,2025-11-30T08:58:25.787846 +AWS,ap-northeast-2,m6id.32xlarge,reserved_1y,all_upfront,4.03523,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:57.247622 +AWS,ap-northeast-2,m6id.32xlarge,reserved_1y,no_upfront,4.03523,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:38.028880 +AWS,ap-northeast-2,m6id.32xlarge,reserved_1y,partial_upfront,4.03523,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:23.619180 +AWS,ap-northeast-2,m6id.32xlarge,reserved_3y,all_upfront,4.03523,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:01.187785 +AWS,ap-northeast-2,m6id.32xlarge,reserved_3y,no_upfront,4.03523,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:40.468639 +AWS,ap-northeast-2,m6id.32xlarge,reserved_3y,partial_upfront,4.03523,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:35.333840 +AWS,ap-northeast-2,m6id.32xlarge,spot,NA,3.068029,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172410 +AWS,ap-northeast-2,m6id.4xlarge,on_demand,NA,1.1676,USD,AWS Pricing API,2025-11-30T08:58:48.263780 +AWS,ap-northeast-2,m6id.4xlarge,reserved_1y,all_upfront,0.73559,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:19.645263 +AWS,ap-northeast-2,m6id.4xlarge,reserved_1y,no_upfront,0.73559,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:00.708271 +AWS,ap-northeast-2,m6id.4xlarge,reserved_1y,partial_upfront,0.73559,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:45.883141 +AWS,ap-northeast-2,m6id.4xlarge,reserved_3y,all_upfront,0.73559,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:23.180706 +AWS,ap-northeast-2,m6id.4xlarge,reserved_3y,no_upfront,0.73559,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:03.153733 +AWS,ap-northeast-2,m6id.4xlarge,reserved_3y,partial_upfront,0.73559,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:57.572990 +AWS,ap-northeast-2,m6id.4xlarge,spot,NA,0.43256,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172867 +AWS,ap-northeast-2,m6id.8xlarge,on_demand,NA,2.3352,USD,AWS Pricing API,2025-11-30T08:58:20.663914 +AWS,ap-northeast-2,m6id.8xlarge,reserved_1y,all_upfront,1.67483,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:52.156480 +AWS,ap-northeast-2,m6id.8xlarge,reserved_1y,no_upfront,1.67483,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:32.867470 +AWS,ap-northeast-2,m6id.8xlarge,reserved_1y,partial_upfront,1.67483,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:18.470910 +AWS,ap-northeast-2,m6id.8xlarge,reserved_3y,all_upfront,1.67483,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:56.154900 +AWS,ap-northeast-2,m6id.8xlarge,reserved_3y,no_upfront,1.67483,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:35.263989 +AWS,ap-northeast-2,m6id.8xlarge,reserved_3y,partial_upfront,1.67483,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:30.250016 +AWS,ap-northeast-2,m6id.8xlarge,spot,NA,0.796727,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172320 +AWS,ap-northeast-2,m6id.large,on_demand,NA,0.14595,USD,AWS Pricing API,2025-11-30T08:58:49.344696 +AWS,ap-northeast-2,m6id.large,reserved_1y,all_upfront,0.10468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:20.718960 +AWS,ap-northeast-2,m6id.large,reserved_1y,no_upfront,0.10468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:01.805011 +AWS,ap-northeast-2,m6id.large,reserved_1y,partial_upfront,0.10468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:46.949150 +AWS,ap-northeast-2,m6id.large,reserved_3y,all_upfront,0.10468,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:24.234818 +AWS,ap-northeast-2,m6id.large,reserved_3y,no_upfront,0.10468,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:04.248460 +AWS,ap-northeast-2,m6id.large,reserved_3y,partial_upfront,0.10468,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:58.631071 +AWS,ap-northeast-2,m6id.large,spot,NA,0.0512,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172896 +AWS,ap-northeast-2,m6id.xlarge,on_demand,NA,0.2919,USD,AWS Pricing API,2025-11-30T08:57:52.651167 +AWS,ap-northeast-2,m6id.xlarge,reserved_1y,all_upfront,0.20935,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:24.073452 +AWS,ap-northeast-2,m6id.xlarge,reserved_1y,no_upfront,0.20935,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:04.772374 +AWS,ap-northeast-2,m6id.xlarge,reserved_1y,partial_upfront,0.20935,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:50.527884 +AWS,ap-northeast-2,m6id.xlarge,reserved_3y,all_upfront,0.20935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:28.499198 +AWS,ap-northeast-2,m6id.xlarge,reserved_3y,no_upfront,0.20935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:06.756685 +AWS,ap-northeast-2,m6id.xlarge,reserved_3y,partial_upfront,0.20935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:02.459839 +AWS,ap-northeast-2,m6id.xlarge,spot,NA,0.103493,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171647 +AWS,ap-northeast-2,m6idn.12xlarge,on_demand,NA,4.6332,USD,AWS Pricing API,2025-11-30T08:58:12.430643 +AWS,ap-northeast-2,m6idn.12xlarge,reserved_1y,all_upfront,2.91892,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:43.919859 +AWS,ap-northeast-2,m6idn.12xlarge,reserved_1y,no_upfront,2.91892,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:24.603463 +AWS,ap-northeast-2,m6idn.12xlarge,reserved_1y,partial_upfront,2.91892,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:10.262599 +AWS,ap-northeast-2,m6idn.12xlarge,reserved_3y,all_upfront,2.91892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:47.981218 +AWS,ap-northeast-2,m6idn.12xlarge,reserved_3y,no_upfront,2.91892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:26.888378 +AWS,ap-northeast-2,m6idn.12xlarge,reserved_3y,partial_upfront,2.91892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:22.057834 +AWS,ap-northeast-2,m6idn.12xlarge,spot,NA,1.152026,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172127 +AWS,ap-northeast-2,m6idn.16xlarge,on_demand,NA,6.1776,USD,AWS Pricing API,2025-11-30T08:58:35.447039 +AWS,ap-northeast-2,m6idn.16xlarge,reserved_1y,all_upfront,4.744433,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:06.873288 +AWS,ap-northeast-2,m6idn.16xlarge,reserved_1y,no_upfront,4.744433,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:47.808596 +AWS,ap-northeast-2,m6idn.16xlarge,reserved_1y,partial_upfront,4.744433,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:33.249408 +AWS,ap-northeast-2,m6idn.16xlarge,reserved_3y,all_upfront,2.372211,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:10.653129 +AWS,ap-northeast-2,m6idn.16xlarge,reserved_3y,no_upfront,2.372211,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:50.274396 +AWS,ap-northeast-2,m6idn.16xlarge,reserved_3y,partial_upfront,2.372211,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:44.885578 +AWS,ap-northeast-2,m6idn.16xlarge,spot,NA,1.469355,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172643 +AWS,ap-northeast-2,m6idn.24xlarge,on_demand,NA,9.2664,USD,AWS Pricing API,2025-11-30T08:58:18.274662 +AWS,ap-northeast-2,m6idn.24xlarge,reserved_1y,all_upfront,5.559829,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:49.716345 +AWS,ap-northeast-2,m6idn.24xlarge,reserved_1y,no_upfront,5.559829,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:30.440733 +AWS,ap-northeast-2,m6idn.24xlarge,reserved_1y,partial_upfront,5.559829,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:16.050794 +AWS,ap-northeast-2,m6idn.24xlarge,reserved_3y,all_upfront,3.706556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:53.766587 +AWS,ap-northeast-2,m6idn.24xlarge,reserved_3y,no_upfront,3.706556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:32.792304 +AWS,ap-northeast-2,m6idn.24xlarge,reserved_3y,partial_upfront,3.706556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:27.855229 +AWS,ap-northeast-2,m6idn.24xlarge,spot,NA,2.124663,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172269 +AWS,ap-northeast-2,m6idn.2xlarge,on_demand,NA,0.7722,USD,AWS Pricing API,2025-11-30T08:57:58.747240 +AWS,ap-northeast-2,m6idn.2xlarge,reserved_1y,all_upfront,0.56189,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:30.229658 +AWS,ap-northeast-2,m6idn.2xlarge,reserved_1y,no_upfront,0.56189,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:10.896840 +AWS,ap-northeast-2,m6idn.2xlarge,reserved_1y,partial_upfront,0.56189,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:56.660329 +AWS,ap-northeast-2,m6idn.2xlarge,reserved_3y,all_upfront,0.56189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:34.466988 +AWS,ap-northeast-2,m6idn.2xlarge,reserved_3y,no_upfront,0.56189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:12.981915 +AWS,ap-northeast-2,m6idn.2xlarge,reserved_3y,partial_upfront,0.56189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:08.536617 +AWS,ap-northeast-2,m6idn.2xlarge,spot,NA,0.187654,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171821 +AWS,ap-northeast-2,m6idn.32xlarge,on_demand,NA,12.3552,USD,AWS Pricing API,2025-11-30T08:58:19.071017 +AWS,ap-northeast-2,m6idn.32xlarge,reserved_1y,all_upfront,9.488753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:50.534861 +AWS,ap-northeast-2,m6idn.32xlarge,reserved_1y,no_upfront,9.488753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:31.243516 +AWS,ap-northeast-2,m6idn.32xlarge,reserved_1y,partial_upfront,9.488753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:16.868299 +AWS,ap-northeast-2,m6idn.32xlarge,reserved_3y,all_upfront,4.744384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:54.564269 +AWS,ap-northeast-2,m6idn.32xlarge,reserved_3y,no_upfront,4.744384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:33.620238 +AWS,ap-northeast-2,m6idn.32xlarge,reserved_3y,partial_upfront,4.744384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:28.656649 +AWS,ap-northeast-2,m6idn.32xlarge,spot,NA,2.627631,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172292 +AWS,ap-northeast-2,m6idn.4xlarge,on_demand,NA,1.5444,USD,AWS Pricing API,2025-11-30T08:58:15.277809 +AWS,ap-northeast-2,m6idn.4xlarge,reserved_1y,all_upfront,0.97297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:46.763778 +AWS,ap-northeast-2,m6idn.4xlarge,reserved_1y,no_upfront,0.97297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:27.457262 +AWS,ap-northeast-2,m6idn.4xlarge,reserved_1y,partial_upfront,0.97297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:13.094442 +AWS,ap-northeast-2,m6idn.4xlarge,reserved_3y,all_upfront,0.97297,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:50.821127 +AWS,ap-northeast-2,m6idn.4xlarge,reserved_3y,no_upfront,0.97297,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:29.783175 +AWS,ap-northeast-2,m6idn.4xlarge,reserved_3y,partial_upfront,0.97297,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:24.868419 +AWS,ap-northeast-2,m6idn.4xlarge,spot,NA,0.401894,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172199 +AWS,ap-northeast-2,m6idn.8xlarge,on_demand,NA,3.0888,USD,AWS Pricing API,2025-11-30T08:57:43.549294 +AWS,ap-northeast-2,m6idn.8xlarge,reserved_1y,all_upfront,1.81621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:14.949377 +AWS,ap-northeast-2,m6idn.8xlarge,reserved_1y,no_upfront,1.81621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:55.536488 +AWS,ap-northeast-2,m6idn.8xlarge,reserved_1y,partial_upfront,1.81621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:41.504373 +AWS,ap-northeast-2,m6idn.8xlarge,reserved_3y,all_upfront,0.605403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:19.648340 +AWS,ap-northeast-2,m6idn.8xlarge,reserved_3y,no_upfront,0.605403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:57.459623 +AWS,ap-northeast-2,m6idn.8xlarge,reserved_3y,partial_upfront,0.605403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:53.425360 +AWS,ap-northeast-2,m6idn.8xlarge,spot,NA,0.689608,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171468 +AWS,ap-northeast-2,m6idn.large,on_demand,NA,0.19305,USD,AWS Pricing API,2025-11-30T08:58:29.447118 +AWS,ap-northeast-2,m6idn.large,reserved_1y,all_upfront,0.11347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:00.901741 +AWS,ap-northeast-2,m6idn.large,reserved_1y,no_upfront,0.11347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:41.762233 +AWS,ap-northeast-2,m6idn.large,reserved_1y,partial_upfront,0.11347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:27.273723 +AWS,ap-northeast-2,m6idn.large,reserved_3y,all_upfront,0.037823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:04.796612 +AWS,ap-northeast-2,m6idn.large,reserved_3y,no_upfront,0.037823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:44.190938 +AWS,ap-northeast-2,m6idn.large,reserved_3y,partial_upfront,0.037823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:38.964913 +AWS,ap-northeast-2,m6idn.large,spot,NA,0.052076,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172519 +AWS,ap-northeast-2,m6idn.xlarge,on_demand,NA,0.3861,USD,AWS Pricing API,2025-11-30T08:58:12.569578 +AWS,ap-northeast-2,m6idn.xlarge,reserved_1y,all_upfront,0.231698,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:44.055225 +AWS,ap-northeast-2,m6idn.xlarge,reserved_1y,no_upfront,0.231698,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:24.739773 +AWS,ap-northeast-2,m6idn.xlarge,reserved_1y,partial_upfront,0.231698,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:10.396071 +AWS,ap-northeast-2,m6idn.xlarge,reserved_3y,all_upfront,0.154453,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:48.119621 +AWS,ap-northeast-2,m6idn.xlarge,reserved_3y,no_upfront,0.154453,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:27.026288 +AWS,ap-northeast-2,m6idn.xlarge,reserved_3y,partial_upfront,0.154453,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:22.192067 +AWS,ap-northeast-2,m6idn.xlarge,spot,NA,0.094243,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172123 +AWS,ap-northeast-2,m6in.12xlarge,on_demand,NA,4.04352,USD,AWS Pricing API,2025-11-30T08:57:40.627794 +AWS,ap-northeast-2,m6in.12xlarge,reserved_1y,all_upfront,2.94651,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:12.130509 +AWS,ap-northeast-2,m6in.12xlarge,reserved_1y,no_upfront,2.94651,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:52.626773 +AWS,ap-northeast-2,m6in.12xlarge,reserved_1y,partial_upfront,2.94651,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:38.675439 +AWS,ap-northeast-2,m6in.12xlarge,reserved_3y,all_upfront,2.94651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:16.862887 +AWS,ap-northeast-2,m6in.12xlarge,reserved_3y,no_upfront,2.94651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:54.563694 +AWS,ap-northeast-2,m6in.12xlarge,reserved_3y,partial_upfront,2.94651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:50.625993 +AWS,ap-northeast-2,m6in.12xlarge,spot,NA,1.147562,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171418 +AWS,ap-northeast-2,m6in.16xlarge,on_demand,NA,5.39136,USD,AWS Pricing API,2025-11-30T08:57:50.628287 +AWS,ap-northeast-2,m6in.16xlarge,reserved_1y,all_upfront,3.39656,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:21.956486 +AWS,ap-northeast-2,m6in.16xlarge,reserved_1y,no_upfront,3.39656,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:02.715681 +AWS,ap-northeast-2,m6in.16xlarge,reserved_1y,partial_upfront,3.39656,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:48.495923 +AWS,ap-northeast-2,m6in.16xlarge,reserved_3y,all_upfront,3.39656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:26.521397 +AWS,ap-northeast-2,m6in.16xlarge,reserved_3y,no_upfront,3.39656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:04.701434 +AWS,ap-northeast-2,m6in.16xlarge,reserved_3y,partial_upfront,3.39656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:00.432766 +AWS,ap-northeast-2,m6in.16xlarge,spot,NA,1.268349,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171622 +AWS,ap-northeast-2,m6in.24xlarge,on_demand,NA,8.08704,USD,AWS Pricing API,2025-11-30T08:58:31.927528 +AWS,ap-northeast-2,m6in.24xlarge,reserved_1y,all_upfront,7.035756,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:03.358821 +AWS,ap-northeast-2,m6in.24xlarge,reserved_1y,no_upfront,7.035756,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:44.224794 +AWS,ap-northeast-2,m6in.24xlarge,reserved_1y,partial_upfront,7.035756,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:29.760389 +AWS,ap-northeast-2,m6in.24xlarge,reserved_3y,all_upfront,3.517872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:07.204406 +AWS,ap-northeast-2,m6in.24xlarge,reserved_3y,no_upfront,3.517872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:46.676909 +AWS,ap-northeast-2,m6in.24xlarge,reserved_3y,partial_upfront,3.517872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:41.382837 +AWS,ap-northeast-2,m6in.24xlarge,spot,NA,2.030897,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172543 +AWS,ap-northeast-2,m6in.2xlarge,on_demand,NA,0.67392,USD,AWS Pricing API,2025-11-30T08:57:57.393824 +AWS,ap-northeast-2,m6in.2xlarge,reserved_1y,all_upfront,0.404349,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:28.796311 +AWS,ap-northeast-2,m6in.2xlarge,reserved_1y,no_upfront,0.404349,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:09.527489 +AWS,ap-northeast-2,m6in.2xlarge,reserved_1y,partial_upfront,0.404349,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:55.301422 +AWS,ap-northeast-2,m6in.2xlarge,reserved_3y,all_upfront,0.26957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:33.138679 +AWS,ap-northeast-2,m6in.2xlarge,reserved_3y,no_upfront,0.26957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:11.602439 +AWS,ap-northeast-2,m6in.2xlarge,reserved_3y,partial_upfront,0.26957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:07.162309 +AWS,ap-northeast-2,m6in.2xlarge,spot,NA,0.169324,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171799 +AWS,ap-northeast-2,m6in.32xlarge,on_demand,NA,10.78272,USD,AWS Pricing API,2025-11-30T08:57:46.122131 +AWS,ap-northeast-2,m6in.32xlarge,reserved_1y,all_upfront,7.333562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:17.500701 +AWS,ap-northeast-2,m6in.32xlarge,reserved_1y,no_upfront,7.333562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:58.156841 +AWS,ap-northeast-2,m6in.32xlarge,reserved_1y,partial_upfront,7.333562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:44.049725 +AWS,ap-northeast-2,m6in.32xlarge,reserved_3y,all_upfront,2.444521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:22.162355 +AWS,ap-northeast-2,m6in.32xlarge,reserved_3y,no_upfront,2.444521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:00.081998 +AWS,ap-northeast-2,m6in.32xlarge,reserved_3y,partial_upfront,2.444521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:55.975875 +AWS,ap-northeast-2,m6in.32xlarge,spot,NA,2.363133,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171522 +AWS,ap-northeast-2,m6in.4xlarge,on_demand,NA,1.34784,USD,AWS Pricing API,2025-11-30T08:57:56.186214 +AWS,ap-northeast-2,m6in.4xlarge,reserved_1y,all_upfront,1.723744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:27.580645 +AWS,ap-northeast-2,m6in.4xlarge,reserved_1y,no_upfront,1.723744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:08.315833 +AWS,ap-northeast-2,m6in.4xlarge,reserved_1y,partial_upfront,1.723744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:54.092210 +AWS,ap-northeast-2,m6in.4xlarge,reserved_3y,all_upfront,0.574581,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:31.957059 +AWS,ap-northeast-2,m6in.4xlarge,reserved_3y,no_upfront,0.574581,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:10.347128 +AWS,ap-northeast-2,m6in.4xlarge,reserved_3y,partial_upfront,0.574581,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:05.957511 +AWS,ap-northeast-2,m6in.4xlarge,spot,NA,0.345215,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171769 +AWS,ap-northeast-2,m6in.8xlarge,on_demand,NA,2.69568,USD,AWS Pricing API,2025-11-30T08:57:54.288550 +AWS,ap-northeast-2,m6in.8xlarge,reserved_1y,all_upfront,2.037432,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:25.697531 +AWS,ap-northeast-2,m6in.8xlarge,reserved_1y,no_upfront,2.037432,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:06.418884 +AWS,ap-northeast-2,m6in.8xlarge,reserved_1y,partial_upfront,2.037432,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:52.164689 +AWS,ap-northeast-2,m6in.8xlarge,reserved_3y,all_upfront,1.018711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:30.098429 +AWS,ap-northeast-2,m6in.8xlarge,reserved_3y,no_upfront,1.018711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:08.416011 +AWS,ap-northeast-2,m6in.8xlarge,reserved_3y,partial_upfront,1.018711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:04.075949 +AWS,ap-northeast-2,m6in.8xlarge,spot,NA,0.574407,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171718 +AWS,ap-northeast-2,m6in.large,on_demand,NA,0.16848,USD,AWS Pricing API,2025-11-30T08:58:13.788867 +AWS,ap-northeast-2,m6in.large,reserved_1y,all_upfront,0.101111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:45.287883 +AWS,ap-northeast-2,m6in.large,reserved_1y,no_upfront,0.101111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:25.966554 +AWS,ap-northeast-2,m6in.large,reserved_1y,partial_upfront,0.101111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:11.604502 +AWS,ap-northeast-2,m6in.large,reserved_3y,all_upfront,0.067397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:49.333656 +AWS,ap-northeast-2,m6in.large,reserved_3y,no_upfront,0.067397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:28.273902 +AWS,ap-northeast-2,m6in.large,reserved_3y,partial_upfront,0.067397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:23.400078 +AWS,ap-northeast-2,m6in.large,spot,NA,0.042277,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172180 +AWS,ap-northeast-2,m6in.xlarge,on_demand,NA,0.33696,USD,AWS Pricing API,2025-11-30T08:58:27.807965 +AWS,ap-northeast-2,m6in.xlarge,reserved_1y,all_upfront,0.24554,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:59.276495 +AWS,ap-northeast-2,m6in.xlarge,reserved_1y,no_upfront,0.24554,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:40.116423 +AWS,ap-northeast-2,m6in.xlarge,reserved_1y,partial_upfront,0.24554,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:25.648925 +AWS,ap-northeast-2,m6in.xlarge,reserved_3y,all_upfront,0.24554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:03.209965 +AWS,ap-northeast-2,m6in.xlarge,reserved_3y,no_upfront,0.24554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:42.527581 +AWS,ap-northeast-2,m6in.xlarge,reserved_3y,partial_upfront,0.24554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:37.341866 +AWS,ap-northeast-2,m6in.xlarge,spot,NA,0.074616,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172434 +AWS,ap-northeast-2,m7g.12xlarge,on_demand,NA,2.4072,USD,AWS Pricing API,2025-11-30T08:58:01.582859 +AWS,ap-northeast-2,m7g.12xlarge,reserved_1y,all_upfront,2.330103,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:33.066948 +AWS,ap-northeast-2,m7g.12xlarge,reserved_1y,no_upfront,2.330103,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:13.748473 +AWS,ap-northeast-2,m7g.12xlarge,reserved_1y,partial_upfront,2.330103,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:59.488603 +AWS,ap-northeast-2,m7g.12xlarge,reserved_3y,all_upfront,1.165034,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:37.237855 +AWS,ap-northeast-2,m7g.12xlarge,reserved_3y,no_upfront,1.165034,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:15.893169 +AWS,ap-northeast-2,m7g.12xlarge,reserved_3y,partial_upfront,1.165034,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:11.353614 +AWS,ap-northeast-2,m7g.12xlarge,spot,NA,1.086006,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171895 +AWS,ap-northeast-2,m7g.16xlarge,on_demand,NA,3.2096,USD,AWS Pricing API,2025-11-30T08:58:30.281639 +AWS,ap-northeast-2,m7g.16xlarge,reserved_1y,all_upfront,3.106837,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:01.716496 +AWS,ap-northeast-2,m7g.16xlarge,reserved_1y,no_upfront,3.106837,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:42.587003 +AWS,ap-northeast-2,m7g.16xlarge,reserved_1y,partial_upfront,3.106837,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:28.109243 +AWS,ap-northeast-2,m7g.16xlarge,reserved_3y,all_upfront,1.553412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:05.599988 +AWS,ap-northeast-2,m7g.16xlarge,reserved_3y,no_upfront,1.553412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:45.021944 +AWS,ap-northeast-2,m7g.16xlarge,reserved_3y,partial_upfront,1.553412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:39.766501 +AWS,ap-northeast-2,m7g.16xlarge,spot,NA,1.434869,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172507 +AWS,ap-northeast-2,m7g.2xlarge,on_demand,NA,0.4012,USD,AWS Pricing API,2025-11-30T08:57:53.468718 +AWS,ap-northeast-2,m7g.2xlarge,reserved_1y,all_upfront,0.335612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:24.880630 +AWS,ap-northeast-2,m7g.2xlarge,reserved_1y,no_upfront,0.335612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:05.601145 +AWS,ap-northeast-2,m7g.2xlarge,reserved_1y,partial_upfront,0.335612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:51.350322 +AWS,ap-northeast-2,m7g.2xlarge,reserved_3y,all_upfront,0.167804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:29.299357 +AWS,ap-northeast-2,m7g.2xlarge,reserved_3y,no_upfront,0.167804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:07.584264 +AWS,ap-northeast-2,m7g.2xlarge,reserved_3y,partial_upfront,0.167804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:03.268628 +AWS,ap-northeast-2,m7g.2xlarge,spot,NA,0.154865,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171684 +AWS,ap-northeast-2,m7g.4xlarge,on_demand,NA,0.8024,USD,AWS Pricing API,2025-11-30T08:58:49.874726 +AWS,ap-northeast-2,m7g.4xlarge,reserved_1y,all_upfront,0.499786,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:21.252578 +AWS,ap-northeast-2,m7g.4xlarge,reserved_1y,no_upfront,0.499786,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:02.352904 +AWS,ap-northeast-2,m7g.4xlarge,reserved_1y,partial_upfront,0.499786,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:47.485603 +AWS,ap-northeast-2,m7g.4xlarge,reserved_3y,all_upfront,0.333195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:24.785668 +AWS,ap-northeast-2,m7g.4xlarge,reserved_3y,no_upfront,0.333195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:04.792566 +AWS,ap-northeast-2,m7g.4xlarge,reserved_3y,partial_upfront,0.333195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:59.169643 +AWS,ap-northeast-2,m7g.4xlarge,spot,NA,0.294309,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172932 +AWS,ap-northeast-2,m7g.8xlarge,on_demand,NA,1.6048,USD,AWS Pricing API,2025-11-30T08:57:44.643136 +AWS,ap-northeast-2,m7g.8xlarge,reserved_1y,all_upfront,1.1495,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:16.035324 +AWS,ap-northeast-2,m7g.8xlarge,reserved_1y,no_upfront,1.1495,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:56.637059 +AWS,ap-northeast-2,m7g.8xlarge,reserved_1y,partial_upfront,1.1495,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:42.571468 +AWS,ap-northeast-2,m7g.8xlarge,reserved_3y,all_upfront,1.1495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:20.702092 +AWS,ap-northeast-2,m7g.8xlarge,reserved_3y,no_upfront,1.1495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:58.570293 +AWS,ap-northeast-2,m7g.8xlarge,reserved_3y,partial_upfront,1.1495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:54.499995 +AWS,ap-northeast-2,m7g.8xlarge,spot,NA,0.661544,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171506 +AWS,ap-northeast-2,m7g.large,on_demand,NA,0.1003,USD,AWS Pricing API,2025-11-30T08:58:12.161286 +AWS,ap-northeast-2,m7g.large,reserved_1y,all_upfront,0.061187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:43.620561 +AWS,ap-northeast-2,m7g.large,reserved_1y,no_upfront,0.061187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:24.336033 +AWS,ap-northeast-2,m7g.large,reserved_1y,partial_upfront,0.061187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:09.993020 +AWS,ap-northeast-2,m7g.large,reserved_3y,all_upfront,0.020396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:47.615255 +AWS,ap-northeast-2,m7g.large,reserved_3y,no_upfront,0.020396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:26.613114 +AWS,ap-northeast-2,m7g.large,reserved_3y,partial_upfront,0.020396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:21.789919 +AWS,ap-northeast-2,m7g.large,spot,NA,0.038463,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172139 +AWS,ap-northeast-2,m7g.xlarge,on_demand,NA,0.2006,USD,AWS Pricing API,2025-11-30T08:58:18.937168 +AWS,ap-northeast-2,m7g.xlarge,reserved_1y,all_upfront,0.134132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:50.397678 +AWS,ap-northeast-2,m7g.xlarge,reserved_1y,no_upfront,0.134132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:31.109357 +AWS,ap-northeast-2,m7g.xlarge,reserved_1y,partial_upfront,0.134132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:16.734294 +AWS,ap-northeast-2,m7g.xlarge,reserved_3y,all_upfront,0.044711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:54.420895 +AWS,ap-northeast-2,m7g.xlarge,reserved_3y,no_upfront,0.044711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:33.484565 +AWS,ap-northeast-2,m7g.xlarge,reserved_3y,partial_upfront,0.044711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:28.520694 +AWS,ap-northeast-2,m7g.xlarge,spot,NA,0.071119,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172296 +AWS,ap-northeast-2,m7gd.12xlarge,on_demand,NA,3.1526,USD,AWS Pricing API,2025-11-30T08:57:52.787361 +AWS,ap-northeast-2,m7gd.12xlarge,reserved_1y,all_upfront,1.853767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:24.208326 +AWS,ap-northeast-2,m7gd.12xlarge,reserved_1y,no_upfront,1.853767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:04.908296 +AWS,ap-northeast-2,m7gd.12xlarge,reserved_1y,partial_upfront,1.853767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:50.662880 +AWS,ap-northeast-2,m7gd.12xlarge,reserved_3y,all_upfront,0.617922,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:28.640632 +AWS,ap-northeast-2,m7gd.12xlarge,reserved_3y,no_upfront,0.617922,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:06.893423 +AWS,ap-northeast-2,m7gd.12xlarge,reserved_3y,partial_upfront,0.617922,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:02.595275 +AWS,ap-northeast-2,m7gd.12xlarge,spot,NA,0.991362,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171667 +AWS,ap-northeast-2,m7gd.16xlarge,on_demand,NA,4.2035,USD,AWS Pricing API,2025-11-30T08:58:09.866841 +AWS,ap-northeast-2,m7gd.16xlarge,reserved_1y,all_upfront,2.471689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:41.285415 +AWS,ap-northeast-2,m7gd.16xlarge,reserved_1y,no_upfront,2.471689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:22.026125 +AWS,ap-northeast-2,m7gd.16xlarge,reserved_1y,partial_upfront,2.471689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:07.706528 +AWS,ap-northeast-2,m7gd.16xlarge,reserved_3y,all_upfront,0.823896,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:45.356988 +AWS,ap-northeast-2,m7gd.16xlarge,reserved_3y,no_upfront,0.823896,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:24.262817 +AWS,ap-northeast-2,m7gd.16xlarge,reserved_3y,partial_upfront,0.823896,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:19.505185 +AWS,ap-northeast-2,m7gd.16xlarge,spot,NA,1.255277,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172063 +AWS,ap-northeast-2,m7gd.2xlarge,on_demand,NA,0.5254,USD,AWS Pricing API,2025-11-30T08:58:25.379934 +AWS,ap-northeast-2,m7gd.2xlarge,reserved_1y,all_upfront,0.358952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:56.842039 +AWS,ap-northeast-2,m7gd.2xlarge,reserved_1y,no_upfront,0.358952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:37.617603 +AWS,ap-northeast-2,m7gd.2xlarge,reserved_1y,partial_upfront,0.358952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:23.210716 +AWS,ap-northeast-2,m7gd.2xlarge,reserved_3y,all_upfront,0.239317,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:00.792835 +AWS,ap-northeast-2,m7gd.2xlarge,reserved_3y,no_upfront,0.239317,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:40.054906 +AWS,ap-northeast-2,m7gd.2xlarge,reserved_3y,partial_upfront,0.239317,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:34.929474 +AWS,ap-northeast-2,m7gd.2xlarge,spot,NA,0.168123,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172426 +AWS,ap-northeast-2,m7gd.4xlarge,on_demand,NA,1.0509,USD,AWS Pricing API,2025-11-30T08:58:43.014999 +AWS,ap-northeast-2,m7gd.4xlarge,reserved_1y,all_upfront,0.840679,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:14.394295 +AWS,ap-northeast-2,m7gd.4xlarge,reserved_1y,no_upfront,0.840679,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:55.389416 +AWS,ap-northeast-2,m7gd.4xlarge,reserved_1y,partial_upfront,0.840679,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:40.615596 +AWS,ap-northeast-2,m7gd.4xlarge,reserved_3y,all_upfront,0.42036,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:17.947690 +AWS,ap-northeast-2,m7gd.4xlarge,reserved_3y,no_upfront,0.42036,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:57.773624 +AWS,ap-northeast-2,m7gd.4xlarge,reserved_3y,partial_upfront,0.42036,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:52.340171 +AWS,ap-northeast-2,m7gd.4xlarge,spot,NA,0.397032,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172802 +AWS,ap-northeast-2,m7gd.8xlarge,on_demand,NA,2.1018,USD,AWS Pricing API,2025-11-30T08:58:23.103843 +AWS,ap-northeast-2,m7gd.8xlarge,reserved_1y,all_upfront,3.015183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:54.575167 +AWS,ap-northeast-2,m7gd.8xlarge,reserved_1y,no_upfront,3.015183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:35.314864 +AWS,ap-northeast-2,m7gd.8xlarge,reserved_1y,partial_upfront,3.015183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:20.914641 +AWS,ap-northeast-2,m7gd.8xlarge,reserved_3y,all_upfront,1.005061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:58.529865 +AWS,ap-northeast-2,m7gd.8xlarge,reserved_3y,no_upfront,1.005061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:37.737751 +AWS,ap-northeast-2,m7gd.8xlarge,reserved_3y,partial_upfront,1.005061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:32.662583 +AWS,ap-northeast-2,m7gd.8xlarge,spot,NA,0.699701,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172367 +AWS,ap-northeast-2,m7gd.large,on_demand,NA,0.1314,USD,AWS Pricing API,2025-11-30T08:58:20.941198 +AWS,ap-northeast-2,m7gd.large,reserved_1y,all_upfront,0.128119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:52.424806 +AWS,ap-northeast-2,m7gd.large,reserved_1y,no_upfront,0.128119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:33.140002 +AWS,ap-northeast-2,m7gd.large,reserved_1y,partial_upfront,0.128119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:18.739942 +AWS,ap-northeast-2,m7gd.large,reserved_3y,all_upfront,0.06404,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:56.416818 +AWS,ap-northeast-2,m7gd.large,reserved_3y,no_upfront,0.06404,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:35.539067 +AWS,ap-northeast-2,m7gd.large,reserved_3y,partial_upfront,0.06404,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:30.519161 +AWS,ap-northeast-2,m7gd.large,spot,NA,0.04056,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172300 +AWS,ap-northeast-2,m7gd.xlarge,on_demand,NA,0.2627,USD,AWS Pricing API,2025-11-30T08:58:27.001969 +AWS,ap-northeast-2,m7gd.xlarge,reserved_1y,all_upfront,0.210148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:58.470715 +AWS,ap-northeast-2,m7gd.xlarge,reserved_1y,no_upfront,0.210148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:39.287327 +AWS,ap-northeast-2,m7gd.xlarge,reserved_1y,partial_upfront,0.210148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:24.833971 +AWS,ap-northeast-2,m7gd.xlarge,reserved_3y,all_upfront,0.105049,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:02.402470 +AWS,ap-northeast-2,m7gd.xlarge,reserved_3y,no_upfront,0.105049,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:41.705128 +AWS,ap-northeast-2,m7gd.xlarge,reserved_3y,partial_upfront,0.105049,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:36.529629 +AWS,ap-northeast-2,m7gd.xlarge,spot,NA,0.084613,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172443 +AWS,ap-northeast-2,m7i.12xlarge,on_demand,NA,2.9736,USD,AWS Pricing API,2025-11-30T08:57:58.891999 +AWS,ap-northeast-2,m7i.12xlarge,reserved_1y,all_upfront,1.815183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:30.363509 +AWS,ap-northeast-2,m7i.12xlarge,reserved_1y,no_upfront,1.815183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:11.031420 +AWS,ap-northeast-2,m7i.12xlarge,reserved_1y,partial_upfront,1.815183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:56.792315 +AWS,ap-northeast-2,m7i.12xlarge,reserved_3y,all_upfront,0.605061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:34.597510 +AWS,ap-northeast-2,m7i.12xlarge,reserved_3y,no_upfront,0.605061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:13.128875 +AWS,ap-northeast-2,m7i.12xlarge,reserved_3y,partial_upfront,0.605061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:08.669192 +AWS,ap-northeast-2,m7i.12xlarge,spot,NA,1.015675,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171839 +AWS,ap-northeast-2,m7i.16xlarge,on_demand,NA,3.9648,USD,AWS Pricing API,2025-11-30T08:58:35.713422 +AWS,ap-northeast-2,m7i.16xlarge,reserved_1y,all_upfront,2.469617,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:07.142291 +AWS,ap-northeast-2,m7i.16xlarge,reserved_1y,no_upfront,2.469617,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:48.081523 +AWS,ap-northeast-2,m7i.16xlarge,reserved_1y,partial_upfront,2.469617,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:33.517430 +AWS,ap-northeast-2,m7i.16xlarge,reserved_3y,all_upfront,1.646406,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:10.914332 +AWS,ap-northeast-2,m7i.16xlarge,reserved_3y,no_upfront,1.646406,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:50.544285 +AWS,ap-northeast-2,m7i.16xlarge,reserved_3y,partial_upfront,1.646406,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:45.150751 +AWS,ap-northeast-2,m7i.16xlarge,spot,NA,1.364863,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172639 +AWS,ap-northeast-2,m7i.24xlarge,on_demand,NA,5.9472,USD,AWS Pricing API,2025-11-30T08:58:41.922521 +AWS,ap-northeast-2,m7i.24xlarge,reserved_1y,all_upfront,3.704369,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:13.300198 +AWS,ap-northeast-2,m7i.24xlarge,reserved_1y,no_upfront,3.704369,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:54.275501 +AWS,ap-northeast-2,m7i.24xlarge,reserved_1y,partial_upfront,3.704369,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:39.538865 +AWS,ap-northeast-2,m7i.24xlarge,reserved_3y,all_upfront,2.46959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:16.891892 +AWS,ap-northeast-2,m7i.24xlarge,reserved_3y,no_upfront,2.46959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:56.671290 +AWS,ap-northeast-2,m7i.24xlarge,reserved_3y,partial_upfront,2.46959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:51.263627 +AWS,ap-northeast-2,m7i.24xlarge,spot,NA,2.056481,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172753 +AWS,ap-northeast-2,m7i.2xlarge,on_demand,NA,0.4956,USD,AWS Pricing API,2025-11-30T08:58:17.201989 +AWS,ap-northeast-2,m7i.2xlarge,reserved_1y,all_upfront,0.308688,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:48.645591 +AWS,ap-northeast-2,m7i.2xlarge,reserved_1y,no_upfront,0.308688,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:29.353819 +AWS,ap-northeast-2,m7i.2xlarge,reserved_1y,partial_upfront,0.308688,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:14.977644 +AWS,ap-northeast-2,m7i.2xlarge,reserved_3y,all_upfront,0.205796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:52.681928 +AWS,ap-northeast-2,m7i.2xlarge,reserved_3y,no_upfront,0.205796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:31.692742 +AWS,ap-northeast-2,m7i.2xlarge,reserved_3y,partial_upfront,0.205796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:26.766647 +AWS,ap-northeast-2,m7i.2xlarge,spot,NA,0.194608,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172252 +AWS,ap-northeast-2,m7i.48xlarge,on_demand,NA,11.8944,USD,AWS Pricing API,2025-11-30T08:57:40.213795 +AWS,ap-northeast-2,m7i.48xlarge,reserved_1y,all_upfront,7.408728,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:11.724417 +AWS,ap-northeast-2,m7i.48xlarge,reserved_1y,no_upfront,7.408728,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:52.209136 +AWS,ap-northeast-2,m7i.48xlarge,reserved_1y,partial_upfront,7.408728,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:38.274313 +AWS,ap-northeast-2,m7i.48xlarge,reserved_3y,all_upfront,4.939169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:16.459329 +AWS,ap-northeast-2,m7i.48xlarge,reserved_3y,no_upfront,4.939169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:54.152332 +AWS,ap-northeast-2,m7i.48xlarge,reserved_3y,partial_upfront,4.939169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:50.222453 +AWS,ap-northeast-2,m7i.48xlarge,spot,NA,3.913567,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171384 +AWS,ap-northeast-2,m7i.4xlarge,on_demand,NA,0.9912,USD,AWS Pricing API,2025-11-30T08:57:54.150819 +AWS,ap-northeast-2,m7i.4xlarge,reserved_1y,all_upfront,1.16895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:25.564090 +AWS,ap-northeast-2,m7i.4xlarge,reserved_1y,no_upfront,1.16895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:06.283538 +AWS,ap-northeast-2,m7i.4xlarge,reserved_1y,partial_upfront,1.16895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:52.028171 +AWS,ap-northeast-2,m7i.4xlarge,reserved_3y,all_upfront,0.38965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:29.966490 +AWS,ap-northeast-2,m7i.4xlarge,reserved_3y,no_upfront,0.38965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:08.277334 +AWS,ap-northeast-2,m7i.4xlarge,reserved_3y,partial_upfront,0.38965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:03.940372 +AWS,ap-northeast-2,m7i.4xlarge,spot,NA,0.388183,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171744 +AWS,ap-northeast-2,m7i.8xlarge,on_demand,NA,1.9824,USD,AWS Pricing API,2025-11-30T08:58:31.497260 +AWS,ap-northeast-2,m7i.8xlarge,reserved_1y,all_upfront,1.658147,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:02.954788 +AWS,ap-northeast-2,m7i.8xlarge,reserved_1y,no_upfront,1.658147,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:43.814742 +AWS,ap-northeast-2,m7i.8xlarge,reserved_1y,partial_upfront,1.658147,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:29.341687 +AWS,ap-northeast-2,m7i.8xlarge,reserved_3y,all_upfront,0.829076,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:06.798393 +AWS,ap-northeast-2,m7i.8xlarge,reserved_3y,no_upfront,0.829076,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:46.260581 +AWS,ap-northeast-2,m7i.8xlarge,reserved_3y,partial_upfront,0.829076,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:40.978487 +AWS,ap-northeast-2,m7i.8xlarge,spot,NA,0.701258,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172567 +AWS,ap-northeast-2,m7i.large,on_demand,NA,0.1239,USD,AWS Pricing API,2025-11-30T08:57:57.120073 +AWS,ap-northeast-2,m7i.large,reserved_1y,all_upfront,0.084497,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:28.521785 +AWS,ap-northeast-2,m7i.large,reserved_1y,no_upfront,0.084497,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:09.255964 +AWS,ap-northeast-2,m7i.large,reserved_1y,partial_upfront,0.084497,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:55.034690 +AWS,ap-northeast-2,m7i.large,reserved_3y,all_upfront,0.056339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:32.873869 +AWS,ap-northeast-2,m7i.large,reserved_3y,no_upfront,0.056339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:11.318687 +AWS,ap-northeast-2,m7i.large,reserved_3y,partial_upfront,0.056339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:06.895277 +AWS,ap-northeast-2,m7i.large,spot,NA,0.044185,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171786 +AWS,ap-northeast-2,m7i.metal-24xl,on_demand,NA,5.9472,USD,AWS Pricing API,2025-11-30T08:57:40.350152 +AWS,ap-northeast-2,m7i.metal-24xl,reserved_1y,all_upfront,3.88961,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:11.860090 +AWS,ap-northeast-2,m7i.metal-24xl,reserved_1y,no_upfront,3.88961,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:52.356485 +AWS,ap-northeast-2,m7i.metal-24xl,reserved_1y,partial_upfront,3.88961,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:38.408339 +AWS,ap-northeast-2,m7i.metal-24xl,reserved_3y,all_upfront,3.88961,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:16.590107 +AWS,ap-northeast-2,m7i.metal-24xl,reserved_3y,no_upfront,3.88961,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:54.288502 +AWS,ap-northeast-2,m7i.metal-24xl,reserved_3y,partial_upfront,3.88961,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:50.356937 +AWS,ap-northeast-2,m7i.metal-24xl,spot,NA,2.157096,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171393 +AWS,ap-northeast-2,m7i.metal-48xl,on_demand,NA,11.8944,USD,AWS Pricing API,2025-11-30T08:58:21.351345 +AWS,ap-northeast-2,m7i.metal-48xl,reserved_1y,all_upfront,8.114372,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:52.832134 +AWS,ap-northeast-2,m7i.metal-48xl,reserved_1y,no_upfront,8.114372,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:33.545609 +AWS,ap-northeast-2,m7i.metal-48xl,reserved_1y,partial_upfront,8.114372,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:19.142512 +AWS,ap-northeast-2,m7i.metal-48xl,reserved_3y,all_upfront,5.409577,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:56.813119 +AWS,ap-northeast-2,m7i.metal-48xl,reserved_3y,no_upfront,5.409577,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:35.952884 +AWS,ap-northeast-2,m7i.metal-48xl,reserved_3y,partial_upfront,5.409577,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:30.921678 +AWS,ap-northeast-2,m7i.metal-48xl,spot,NA,3.865554,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172351 +AWS,ap-northeast-2,m7i.xlarge,on_demand,NA,0.2478,USD,AWS Pricing API,2025-11-30T08:58:43.439809 +AWS,ap-northeast-2,m7i.xlarge,reserved_1y,all_upfront,0.1775,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:14.796368 +AWS,ap-northeast-2,m7i.xlarge,reserved_1y,no_upfront,0.1775,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:55.804381 +AWS,ap-northeast-2,m7i.xlarge,reserved_1y,partial_upfront,0.1775,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:41.021047 +AWS,ap-northeast-2,m7i.xlarge,reserved_3y,all_upfront,0.1775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:18.338987 +AWS,ap-northeast-2,m7i.xlarge,reserved_3y,no_upfront,0.1775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:58.182514 +AWS,ap-northeast-2,m7i.xlarge,reserved_3y,partial_upfront,0.1775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:52.752890 +AWS,ap-northeast-2,m7i.xlarge,spot,NA,0.091441,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172810 +AWS,ap-northeast-2,m8g.12xlarge,on_demand,NA,2.64816,USD,AWS Pricing API,2025-11-30T08:58:27.402755 +AWS,ap-northeast-2,m8g.12xlarge,reserved_1y,all_upfront,1.649542,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:58.870102 +AWS,ap-northeast-2,m8g.12xlarge,reserved_1y,no_upfront,1.649542,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:39.693862 +AWS,ap-northeast-2,m8g.12xlarge,reserved_1y,partial_upfront,1.649542,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:25.239361 +AWS,ap-northeast-2,m8g.12xlarge,reserved_3y,all_upfront,1.099694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:02.811121 +AWS,ap-northeast-2,m8g.12xlarge,reserved_3y,no_upfront,1.099694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:42.117062 +AWS,ap-northeast-2,m8g.12xlarge,reserved_3y,partial_upfront,1.099694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:36.938041 +AWS,ap-northeast-2,m8g.12xlarge,spot,NA,0.803256,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172447 +AWS,ap-northeast-2,m8g.16xlarge,on_demand,NA,3.53088,USD,AWS Pricing API,2025-11-30T08:57:40.773436 +AWS,ap-northeast-2,m8g.16xlarge,reserved_1y,all_upfront,2.408718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:12.275172 +AWS,ap-northeast-2,m8g.16xlarge,reserved_1y,no_upfront,2.408718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:52.763602 +AWS,ap-northeast-2,m8g.16xlarge,reserved_1y,partial_upfront,2.408718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:38.811371 +AWS,ap-northeast-2,m8g.16xlarge,reserved_3y,all_upfront,1.605826,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:16.997834 +AWS,ap-northeast-2,m8g.16xlarge,reserved_3y,no_upfront,1.605826,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:54.699247 +AWS,ap-northeast-2,m8g.16xlarge,reserved_3y,partial_upfront,1.605826,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:50.758920 +AWS,ap-northeast-2,m8g.16xlarge,spot,NA,1.105796,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171422 +AWS,ap-northeast-2,m8g.24xlarge,on_demand,NA,5.29632,USD,AWS Pricing API,2025-11-30T08:58:48.670546 +AWS,ap-northeast-2,m8g.24xlarge,reserved_1y,all_upfront,2.76849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:20.051780 +AWS,ap-northeast-2,m8g.24xlarge,reserved_1y,no_upfront,2.76849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:01.122679 +AWS,ap-northeast-2,m8g.24xlarge,reserved_1y,partial_upfront,2.76849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:46.290765 +AWS,ap-northeast-2,m8g.24xlarge,reserved_3y,all_upfront,2.76849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:23.575251 +AWS,ap-northeast-2,m8g.24xlarge,reserved_3y,no_upfront,2.76849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:03.567223 +AWS,ap-northeast-2,m8g.24xlarge,reserved_3y,partial_upfront,2.76849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:57.970684 +AWS,ap-northeast-2,m8g.24xlarge,spot,NA,1.382783,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172900 +AWS,ap-northeast-2,m8g.2xlarge,on_demand,NA,0.44136,USD,AWS Pricing API,2025-11-30T08:58:40.181269 +AWS,ap-northeast-2,m8g.2xlarge,reserved_1y,all_upfront,0.31615,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:11.583891 +AWS,ap-northeast-2,m8g.2xlarge,reserved_1y,no_upfront,0.31615,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:52.631104 +AWS,ap-northeast-2,m8g.2xlarge,reserved_1y,partial_upfront,0.31615,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:37.931590 +AWS,ap-northeast-2,m8g.2xlarge,reserved_3y,all_upfront,0.31615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:15.289545 +AWS,ap-northeast-2,m8g.2xlarge,reserved_3y,no_upfront,0.31615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:55.025743 +AWS,ap-northeast-2,m8g.2xlarge,reserved_3y,partial_upfront,0.31615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:49.659807 +AWS,ap-northeast-2,m8g.2xlarge,spot,NA,0.149444,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172732 +AWS,ap-northeast-2,m8g.48xlarge,on_demand,NA,10.59264,USD,AWS Pricing API,2025-11-30T08:58:13.384445 +AWS,ap-northeast-2,m8g.48xlarge,reserved_1y,all_upfront,6.92806,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:44.862777 +AWS,ap-northeast-2,m8g.48xlarge,reserved_1y,no_upfront,6.92806,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:25.560558 +AWS,ap-northeast-2,m8g.48xlarge,reserved_1y,partial_upfront,6.92806,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:11.202431 +AWS,ap-northeast-2,m8g.48xlarge,reserved_3y,all_upfront,6.92806,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:48.934444 +AWS,ap-northeast-2,m8g.48xlarge,reserved_3y,no_upfront,6.92806,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:27.862385 +AWS,ap-northeast-2,m8g.48xlarge,reserved_3y,partial_upfront,6.92806,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:22.994589 +AWS,ap-northeast-2,m8g.48xlarge,spot,NA,2.715926,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172155 +AWS,ap-northeast-2,m8g.4xlarge,on_demand,NA,0.88272,USD,AWS Pricing API,2025-11-30T08:58:30.143911 +AWS,ap-northeast-2,m8g.4xlarge,reserved_1y,all_upfront,0.549806,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:01.580790 +AWS,ap-northeast-2,m8g.4xlarge,reserved_1y,no_upfront,0.549806,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:42.449063 +AWS,ap-northeast-2,m8g.4xlarge,reserved_1y,partial_upfront,0.549806,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:27.973007 +AWS,ap-northeast-2,m8g.4xlarge,reserved_3y,all_upfront,0.366549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:05.465222 +AWS,ap-northeast-2,m8g.4xlarge,reserved_3y,no_upfront,0.366549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:44.885783 +AWS,ap-northeast-2,m8g.4xlarge,reserved_3y,partial_upfront,0.366549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:39.633682 +AWS,ap-northeast-2,m8g.4xlarge,spot,NA,0.293597,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172523 +AWS,ap-northeast-2,m8g.8xlarge,on_demand,NA,1.76544,USD,AWS Pricing API,2025-11-30T08:58:01.849432 +AWS,ap-northeast-2,m8g.8xlarge,reserved_1y,all_upfront,0.79737,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:33.342762 +AWS,ap-northeast-2,m8g.8xlarge,reserved_1y,no_upfront,0.79737,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:14.021202 +AWS,ap-northeast-2,m8g.8xlarge,reserved_1y,partial_upfront,0.79737,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:59.752184 +AWS,ap-northeast-2,m8g.8xlarge,reserved_3y,all_upfront,0.79737,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:37.498701 +AWS,ap-northeast-2,m8g.8xlarge,reserved_3y,no_upfront,0.79737,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:16.175902 +AWS,ap-northeast-2,m8g.8xlarge,reserved_3y,partial_upfront,0.79737,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:11.619123 +AWS,ap-northeast-2,m8g.8xlarge,spot,NA,0.586686,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171891 +AWS,ap-northeast-2,m8g.large,on_demand,NA,0.11034,USD,AWS Pricing API,2025-11-30T08:58:50.686915 +AWS,ap-northeast-2,m8g.large,reserved_1y,all_upfront,0.07904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:22.068083 +AWS,ap-northeast-2,m8g.large,reserved_1y,no_upfront,0.07904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:03.174257 +AWS,ap-northeast-2,m8g.large,reserved_1y,partial_upfront,0.07904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:48.297585 +AWS,ap-northeast-2,m8g.large,reserved_3y,all_upfront,0.07904,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:25.670723 +AWS,ap-northeast-2,m8g.large,reserved_3y,no_upfront,0.07904,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:05.625019 +AWS,ap-northeast-2,m8g.large,reserved_3y,partial_upfront,0.07904,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:59.975649 +AWS,ap-northeast-2,m8g.large,spot,NA,0.036236,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172916 +AWS,ap-northeast-2,m8g.medium,on_demand,NA,0.05517,USD,AWS Pricing API,2025-11-30T08:58:52.582881 +AWS,ap-northeast-2,m8g.medium,reserved_1y,all_upfront,0.02492,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:23.951414 +AWS,ap-northeast-2,m8g.medium,reserved_1y,no_upfront,0.02492,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:05.081869 +AWS,ap-northeast-2,m8g.medium,reserved_1y,partial_upfront,0.02492,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:50.182518 +AWS,ap-northeast-2,m8g.medium,reserved_3y,all_upfront,0.02492,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:27.512062 +AWS,ap-northeast-2,m8g.medium,reserved_3y,no_upfront,0.02492,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:07.597242 +AWS,ap-northeast-2,m8g.medium,reserved_3y,partial_upfront,0.02492,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:01.916610 +AWS,ap-northeast-2,m8g.medium,spot,NA,0.014841,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172976 +AWS,ap-northeast-2,m8g.xlarge,on_demand,NA,0.22068,USD,AWS Pricing API,2025-11-30T08:58:11.076122 +AWS,ap-northeast-2,m8g.xlarge,reserved_1y,all_upfront,0.150498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:42.507314 +AWS,ap-northeast-2,m8g.xlarge,reserved_1y,no_upfront,0.150498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:23.244434 +AWS,ap-northeast-2,m8g.xlarge,reserved_1y,partial_upfront,0.150498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:08.919488 +AWS,ap-northeast-2,m8g.xlarge,reserved_3y,all_upfront,0.100346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:46.553737 +AWS,ap-northeast-2,m8g.xlarge,reserved_3y,no_upfront,0.100346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:25.509839 +AWS,ap-northeast-2,m8g.xlarge,reserved_3y,partial_upfront,0.100346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:20.703870 +AWS,ap-northeast-2,m8g.xlarge,spot,NA,0.071915,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172091 +AWS,ap-northeast-2,p2.16xlarge,on_demand,NA,23.44,USD,AWS Pricing API,2025-11-30T08:57:47.497087 +AWS,ap-northeast-2,p2.8xlarge,on_demand,NA,11.72,USD,AWS Pricing API,2025-11-30T08:58:46.269581 +AWS,ap-northeast-2,p2.xlarge,on_demand,NA,1.465,USD,AWS Pricing API,2025-11-30T08:57:51.028666 +AWS,ap-northeast-2,p3.16xlarge,on_demand,NA,33.872,USD,AWS Pricing API,2025-11-30T08:58:06.204734 +AWS,ap-northeast-2,p3.16xlarge,spot,NA,17.45901,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171989 +AWS,ap-northeast-2,p3.2xlarge,on_demand,NA,4.234,USD,AWS Pricing API,2025-11-30T08:58:36.791723 +AWS,ap-northeast-2,p3.2xlarge,spot,NA,2.035683,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172654 +AWS,ap-northeast-2,p3.8xlarge,on_demand,NA,16.936,USD,AWS Pricing API,2025-11-30T08:57:47.092813 +AWS,ap-northeast-2,p3.8xlarge,spot,NA,9.3148,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171543 +AWS,ap-northeast-2,p4d.24xlarge,on_demand,NA,30.41028,USD,AWS Pricing API,2025-11-30T08:57:47.226692 +AWS,ap-northeast-2,p4d.24xlarge,reserved_1y,all_upfront,18.36191,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:18.585906 +AWS,ap-northeast-2,p4d.24xlarge,reserved_1y,no_upfront,18.36191,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:59.261195 +AWS,ap-northeast-2,p4d.24xlarge,reserved_1y,partial_upfront,18.36191,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:45.120635 +AWS,ap-northeast-2,p4d.24xlarge,reserved_3y,all_upfront,12.241286,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:23.209584 +AWS,ap-northeast-2,p4d.24xlarge,reserved_3y,no_upfront,12.241286,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:01.180134 +AWS,ap-northeast-2,p4d.24xlarge,reserved_3y,partial_upfront,12.241286,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:57.045347 +AWS,ap-northeast-2,p4d.24xlarge,spot,NA,10.727058,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171510 +AWS,ap-northeast-2,r4.16xlarge,on_demand,NA,5.12,USD,AWS Pricing API,2025-11-30T08:58:39.217844 +AWS,ap-northeast-2,r4.16xlarge,reserved_1y,all_upfront,3.532838,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:10.631875 +AWS,ap-northeast-2,r4.16xlarge,reserved_1y,no_upfront,3.532838,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:51.660023 +AWS,ap-northeast-2,r4.16xlarge,reserved_1y,partial_upfront,3.532838,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:36.988774 +AWS,ap-northeast-2,r4.16xlarge,reserved_3y,all_upfront,2.355213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:14.352913 +AWS,ap-northeast-2,r4.16xlarge,reserved_3y,no_upfront,2.355213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:54.074443 +AWS,ap-northeast-2,r4.16xlarge,reserved_3y,partial_upfront,2.355213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:48.714931 +AWS,ap-northeast-2,r4.16xlarge,spot,NA,1.689883,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172717 +AWS,ap-northeast-2,r5.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T08:57:40.493038 +AWS,ap-northeast-2,r5.12xlarge,reserved_1y,all_upfront,2.643,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:11.996673 +AWS,ap-northeast-2,r5.12xlarge,reserved_1y,no_upfront,2.643,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:52.491290 +AWS,ap-northeast-2,r5.12xlarge,reserved_1y,partial_upfront,2.643,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:38.540394 +AWS,ap-northeast-2,r5.12xlarge,reserved_3y,all_upfront,2.643,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:16.725604 +AWS,ap-northeast-2,r5.12xlarge,reserved_3y,no_upfront,2.643,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:54.425339 +AWS,ap-northeast-2,r5.12xlarge,reserved_3y,partial_upfront,2.643,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:50.492604 +AWS,ap-northeast-2,r5.12xlarge,spot,NA,1.590097,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171431 +AWS,ap-northeast-2,r5.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T08:58:13.517941 +AWS,ap-northeast-2,r5.16xlarge,reserved_1y,all_upfront,3.891379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:44.998915 +AWS,ap-northeast-2,r5.16xlarge,reserved_1y,no_upfront,3.891379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:25.695934 +AWS,ap-northeast-2,r5.16xlarge,reserved_1y,partial_upfront,3.891379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:11.337103 +AWS,ap-northeast-2,r5.16xlarge,reserved_3y,all_upfront,1.945793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:49.067324 +AWS,ap-northeast-2,r5.16xlarge,reserved_3y,no_upfront,1.945793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:27.999511 +AWS,ap-northeast-2,r5.16xlarge,reserved_3y,partial_upfront,1.945793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:23.129435 +AWS,ap-northeast-2,r5.16xlarge,spot,NA,1.912268,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172160 +AWS,ap-northeast-2,r5.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T08:57:55.922449 +AWS,ap-northeast-2,r5.24xlarge,reserved_1y,all_upfront,5.286,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:27.314408 +AWS,ap-northeast-2,r5.24xlarge,reserved_1y,no_upfront,5.286,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:08.047088 +AWS,ap-northeast-2,r5.24xlarge,reserved_1y,partial_upfront,5.286,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:53.823850 +AWS,ap-northeast-2,r5.24xlarge,reserved_3y,all_upfront,5.286,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:31.693298 +AWS,ap-northeast-2,r5.24xlarge,reserved_3y,no_upfront,5.286,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:10.074580 +AWS,ap-northeast-2,r5.24xlarge,reserved_3y,partial_upfront,5.286,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:05.694869 +AWS,ap-northeast-2,r5.24xlarge,spot,NA,2.819228,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171760 +AWS,ap-northeast-2,r5.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T12:52:29.963985 +AWS,ap-northeast-2,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.964140 +AWS,ap-northeast-2,r5.2xlarge,reserved_1y_no_upfront,NA,0.383,USD,AWS Pricing API,2025-11-30T12:52:29.964129 +AWS,ap-northeast-2,r5.2xlarge,reserved_1y_partial_upfront,NA,0.182,USD,AWS Pricing API,2025-11-30T12:52:29.964153 +AWS,ap-northeast-2,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.964067 +AWS,ap-northeast-2,r5.2xlarge,reserved_3y_no_upfront,NA,0.263,USD,AWS Pricing API,2025-11-30T12:52:29.964055 +AWS,ap-northeast-2,r5.2xlarge,reserved_3y_partial_upfront,NA,0.147,USD,AWS Pricing API,2025-11-30T12:52:29.964105 +AWS,ap-northeast-2,r5.2xlarge,spot,NA,0.23159,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:36.410140 +AWS,ap-northeast-2,r5.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T08:58:48.400052 +AWS,ap-northeast-2,r5.4xlarge,reserved_1y,all_upfront,0.72984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:19.780077 +AWS,ap-northeast-2,r5.4xlarge,reserved_1y,no_upfront,0.72984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:00.849105 +AWS,ap-northeast-2,r5.4xlarge,reserved_1y,partial_upfront,0.72984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:46.019609 +AWS,ap-northeast-2,r5.4xlarge,reserved_3y,all_upfront,0.486613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:23.314022 +AWS,ap-northeast-2,r5.4xlarge,reserved_3y,no_upfront,0.486613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:03.293315 +AWS,ap-northeast-2,r5.4xlarge,reserved_3y,partial_upfront,0.486613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:57.706390 +AWS,ap-northeast-2,r5.4xlarge,spot,NA,0.554509,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172908 +AWS,ap-northeast-2,r5.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T08:58:31.223153 +AWS,ap-northeast-2,r5.8xlarge,reserved_1y,all_upfront,1.762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:02.682310 +AWS,ap-northeast-2,r5.8xlarge,reserved_1y,no_upfront,1.762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:43.541195 +AWS,ap-northeast-2,r5.8xlarge,reserved_1y,partial_upfront,1.762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:29.070037 +AWS,ap-northeast-2,r5.8xlarge,reserved_3y,all_upfront,1.762,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:06.524288 +AWS,ap-northeast-2,r5.8xlarge,reserved_3y,no_upfront,1.762,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:45.977343 +AWS,ap-northeast-2,r5.8xlarge,reserved_3y,partial_upfront,1.762,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:40.707918 +AWS,ap-northeast-2,r5.8xlarge,spot,NA,1.026932,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172559 +AWS,ap-northeast-2,r5.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T08:58:07.417388 +AWS,ap-northeast-2,r5.large,reserved_1y,all_upfront,0.10274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:38.854405 +AWS,ap-northeast-2,r5.large,reserved_1y,no_upfront,0.10274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:19.582040 +AWS,ap-northeast-2,r5.large,reserved_1y,partial_upfront,0.10274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:05.280956 +AWS,ap-northeast-2,r5.large,reserved_3y,all_upfront,0.034247,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:42.934757 +AWS,ap-northeast-2,r5.large,reserved_3y,no_upfront,0.034247,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:21.810741 +AWS,ap-northeast-2,r5.large,reserved_3y,partial_upfront,0.034247,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:17.115773 +AWS,ap-northeast-2,r5.large,spot,NA,0.057873,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172001 +AWS,ap-northeast-2,r5.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T08:57:44.779495 +AWS,ap-northeast-2,r5.xlarge,reserved_1y,all_upfront,0.18221,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:16.168275 +AWS,ap-northeast-2,r5.xlarge,reserved_1y,no_upfront,0.18221,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:56.771523 +AWS,ap-northeast-2,r5.xlarge,reserved_1y,partial_upfront,0.18221,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:42.706335 +AWS,ap-northeast-2,r5.xlarge,reserved_3y,all_upfront,0.121403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:20.831572 +AWS,ap-northeast-2,r5.xlarge,reserved_3y,no_upfront,0.121403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:58.709507 +AWS,ap-northeast-2,r5.xlarge,reserved_3y,partial_upfront,0.121403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:54.635352 +AWS,ap-northeast-2,r5.xlarge,spot,NA,0.116712,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171489 +AWS,ap-northeast-2,r5a.12xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T08:58:39.354098 +AWS,ap-northeast-2,r5a.12xlarge,reserved_1y,all_upfront,1.858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:10.766828 +AWS,ap-northeast-2,r5a.12xlarge,reserved_1y,no_upfront,1.858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:51.796704 +AWS,ap-northeast-2,r5a.12xlarge,reserved_1y,partial_upfront,1.858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:37.123713 +AWS,ap-northeast-2,r5a.12xlarge,reserved_3y,all_upfront,1.858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:14.488079 +AWS,ap-northeast-2,r5a.12xlarge,reserved_3y,no_upfront,1.858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:54.212131 +AWS,ap-northeast-2,r5a.12xlarge,reserved_3y,partial_upfront,1.858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:48.848285 +AWS,ap-northeast-2,r5a.12xlarge,spot,NA,1.259702,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172713 +AWS,ap-northeast-2,r5a.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T08:58:47.597919 +AWS,ap-northeast-2,r5a.16xlarge,reserved_1y,all_upfront,2.559018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:18.977524 +AWS,ap-northeast-2,r5a.16xlarge,reserved_1y,no_upfront,2.559018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:00.022789 +AWS,ap-northeast-2,r5a.16xlarge,reserved_1y,partial_upfront,2.559018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:45.209484 +AWS,ap-northeast-2,r5a.16xlarge,reserved_3y,all_upfront,0.853006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:22.517700 +AWS,ap-northeast-2,r5a.16xlarge,reserved_3y,no_upfront,0.853006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:02.466707 +AWS,ap-northeast-2,r5a.16xlarge,reserved_3y,partial_upfront,0.853006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:56.898903 +AWS,ap-northeast-2,r5a.16xlarge,spot,NA,1.684456,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172882 +AWS,ap-northeast-2,r5a.24xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T08:58:41.512696 +AWS,ap-northeast-2,r5a.24xlarge,reserved_1y,all_upfront,3.83847,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:12.886836 +AWS,ap-northeast-2,r5a.24xlarge,reserved_1y,no_upfront,3.83847,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:53.852941 +AWS,ap-northeast-2,r5a.24xlarge,reserved_1y,partial_upfront,3.83847,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:39.133360 +AWS,ap-northeast-2,r5a.24xlarge,reserved_3y,all_upfront,1.27949,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:16.494617 +AWS,ap-northeast-2,r5a.24xlarge,reserved_3y,no_upfront,1.27949,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:56.260565 +AWS,ap-northeast-2,r5a.24xlarge,reserved_3y,partial_upfront,1.27949,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:50.864064 +AWS,ap-northeast-2,r5a.24xlarge,spot,NA,2.921068,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172741 +AWS,ap-northeast-2,r5a.2xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T08:58:52.179561 +AWS,ap-northeast-2,r5a.2xlarge,reserved_1y,all_upfront,0.343,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:23.546433 +AWS,ap-northeast-2,r5a.2xlarge,reserved_1y,no_upfront,0.343,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:04.672691 +AWS,ap-northeast-2,r5a.2xlarge,reserved_1y,partial_upfront,0.343,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:49.786867 +AWS,ap-northeast-2,r5a.2xlarge,reserved_3y,all_upfront,0.343,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:27.121203 +AWS,ap-northeast-2,r5a.2xlarge,reserved_3y,no_upfront,0.343,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:07.176292 +AWS,ap-northeast-2,r5a.2xlarge,reserved_3y,partial_upfront,0.343,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:01.498385 +AWS,ap-northeast-2,r5a.2xlarge,spot,NA,0.252514,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172944 +AWS,ap-northeast-2,r5a.4xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T08:58:32.201558 +AWS,ap-northeast-2,r5a.4xlarge,reserved_1y,all_upfront,0.870854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:03.632251 +AWS,ap-northeast-2,r5a.4xlarge,reserved_1y,no_upfront,0.870854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:44.501130 +AWS,ap-northeast-2,r5a.4xlarge,reserved_1y,partial_upfront,0.870854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:30.029528 +AWS,ap-northeast-2,r5a.4xlarge,reserved_3y,all_upfront,0.435618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:07.465778 +AWS,ap-northeast-2,r5a.4xlarge,reserved_3y,no_upfront,0.435618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:46.955632 +AWS,ap-northeast-2,r5a.4xlarge,reserved_3y,partial_upfront,0.435618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:41.651526 +AWS,ap-northeast-2,r5a.4xlarge,spot,NA,0.484013,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172599 +AWS,ap-northeast-2,r5a.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:58:14.607814 +AWS,ap-northeast-2,r5a.8xlarge,reserved_1y,all_upfront,1.279452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:46.093338 +AWS,ap-northeast-2,r5a.8xlarge,reserved_1y,no_upfront,1.279452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:26.785946 +AWS,ap-northeast-2,r5a.8xlarge,reserved_1y,partial_upfront,1.279452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:12.421023 +AWS,ap-northeast-2,r5a.8xlarge,reserved_3y,all_upfront,0.426484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:50.135582 +AWS,ap-northeast-2,r5a.8xlarge,reserved_3y,no_upfront,0.426484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:29.096162 +AWS,ap-northeast-2,r5a.8xlarge,reserved_3y,partial_upfront,0.426484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:24.204546 +AWS,ap-northeast-2,r5a.8xlarge,spot,NA,1.079124,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172211 +AWS,ap-northeast-2,r5a.large,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T08:58:21.078955 +AWS,ap-northeast-2,r5a.large,reserved_1y,all_upfront,0.059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:52.560147 +AWS,ap-northeast-2,r5a.large,reserved_1y,no_upfront,0.059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:33.274965 +AWS,ap-northeast-2,r5a.large,reserved_1y,partial_upfront,0.059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:18.872764 +AWS,ap-northeast-2,r5a.large,reserved_3y,all_upfront,0.059,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:56.551735 +AWS,ap-northeast-2,r5a.large,reserved_3y,no_upfront,0.059,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:35.678755 +AWS,ap-northeast-2,r5a.large,reserved_3y,partial_upfront,0.059,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:30.653390 +AWS,ap-northeast-2,r5a.large,spot,NA,0.061099,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172304 +AWS,ap-northeast-2,r5a.xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T08:58:31.646533 +AWS,ap-northeast-2,r5a.xlarge,reserved_1y,all_upfront,0.287068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:03.089645 +AWS,ap-northeast-2,r5a.xlarge,reserved_1y,no_upfront,0.287068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:43.952128 +AWS,ap-northeast-2,r5a.xlarge,reserved_1y,partial_upfront,0.287068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:29.481824 +AWS,ap-northeast-2,r5a.xlarge,reserved_3y,all_upfront,0.143689,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:06.931165 +AWS,ap-northeast-2,r5a.xlarge,reserved_3y,no_upfront,0.143689,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:46.398396 +AWS,ap-northeast-2,r5a.xlarge,reserved_3y,partial_upfront,0.143689,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:41.113642 +AWS,ap-northeast-2,r5a.xlarge,spot,NA,0.126194,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172563 +AWS,ap-northeast-2,r5d.12xlarge,on_demand,NA,4.152,USD,AWS Pricing API,2025-11-30T08:58:45.055728 +AWS,ap-northeast-2,r5d.12xlarge,reserved_1y,all_upfront,2.436644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:16.418932 +AWS,ap-northeast-2,r5d.12xlarge,reserved_1y,no_upfront,2.436644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:57.450652 +AWS,ap-northeast-2,r5d.12xlarge,reserved_1y,partial_upfront,2.436644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:42.653338 +AWS,ap-northeast-2,r5d.12xlarge,reserved_3y,all_upfront,0.812215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:19.941932 +AWS,ap-northeast-2,r5d.12xlarge,reserved_3y,no_upfront,0.812215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:59.858921 +AWS,ap-northeast-2,r5d.12xlarge,reserved_3y,partial_upfront,0.812215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:54.354538 +AWS,ap-northeast-2,r5d.12xlarge,spot,NA,1.428123,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172838 +AWS,ap-northeast-2,r5d.16xlarge,on_demand,NA,5.536,USD,AWS Pricing API,2025-11-30T08:58:09.730948 +AWS,ap-northeast-2,r5d.16xlarge,reserved_1y,all_upfront,3.248973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:41.147541 +AWS,ap-northeast-2,r5d.16xlarge,reserved_1y,no_upfront,3.248973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:21.890494 +AWS,ap-northeast-2,r5d.16xlarge,reserved_1y,partial_upfront,3.248973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:07.573595 +AWS,ap-northeast-2,r5d.16xlarge,reserved_3y,all_upfront,1.082991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:45.225140 +AWS,ap-northeast-2,r5d.16xlarge,reserved_3y,no_upfront,1.082991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:24.126898 +AWS,ap-northeast-2,r5d.16xlarge,reserved_3y,partial_upfront,1.082991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:19.373907 +AWS,ap-northeast-2,r5d.16xlarge,spot,NA,1.956117,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172071 +AWS,ap-northeast-2,r5d.24xlarge,on_demand,NA,8.304,USD,AWS Pricing API,2025-11-30T08:58:39.500236 +AWS,ap-northeast-2,r5d.24xlarge,reserved_1y,all_upfront,6.64342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:10.901370 +AWS,ap-northeast-2,r5d.24xlarge,reserved_1y,no_upfront,6.64342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:51.932030 +AWS,ap-northeast-2,r5d.24xlarge,reserved_1y,partial_upfront,6.64342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:37.257189 +AWS,ap-northeast-2,r5d.24xlarge,reserved_3y,all_upfront,3.321807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:14.622656 +AWS,ap-northeast-2,r5d.24xlarge,reserved_3y,no_upfront,3.321807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:54.349002 +AWS,ap-northeast-2,r5d.24xlarge,reserved_3y,partial_upfront,3.321807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:48.987180 +AWS,ap-northeast-2,r5d.24xlarge,spot,NA,3.156938,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172697 +AWS,ap-northeast-2,r5d.2xlarge,on_demand,NA,0.692,USD,AWS Pricing API,2025-11-30T08:58:38.145192 +AWS,ap-northeast-2,r5d.2xlarge,reserved_1y,all_upfront,0.5,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:09.561507 +AWS,ap-northeast-2,r5d.2xlarge,reserved_1y,no_upfront,0.5,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:50.571822 +AWS,ap-northeast-2,r5d.2xlarge,reserved_1y,partial_upfront,0.5,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:35.920374 +AWS,ap-northeast-2,r5d.2xlarge,reserved_3y,all_upfront,0.5,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:13.283897 +AWS,ap-northeast-2,r5d.2xlarge,reserved_3y,no_upfront,0.5,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:52.990084 +AWS,ap-northeast-2,r5d.2xlarge,reserved_3y,partial_upfront,0.5,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:47.537208 +AWS,ap-northeast-2,r5d.2xlarge,spot,NA,0.287907,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172682 +AWS,ap-northeast-2,r5d.4xlarge,on_demand,NA,1.384,USD,AWS Pricing API,2025-11-30T08:58:09.202565 +AWS,ap-northeast-2,r5d.4xlarge,reserved_1y,all_upfront,0.87,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:40.612613 +AWS,ap-northeast-2,r5d.4xlarge,reserved_1y,no_upfront,0.87,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:21.343105 +AWS,ap-northeast-2,r5d.4xlarge,reserved_1y,partial_upfront,0.87,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:07.034941 +AWS,ap-northeast-2,r5d.4xlarge,reserved_3y,all_upfront,0.87,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:44.697798 +AWS,ap-northeast-2,r5d.4xlarge,reserved_3y,no_upfront,0.87,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:23.584809 +AWS,ap-northeast-2,r5d.4xlarge,reserved_3y,partial_upfront,0.87,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:18.843180 +AWS,ap-northeast-2,r5d.4xlarge,spot,NA,0.536334,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172079 +AWS,ap-northeast-2,r5d.8xlarge,on_demand,NA,2.768,USD,AWS Pricing API,2025-11-30T08:58:08.787301 +AWS,ap-northeast-2,r5d.8xlarge,reserved_1y,all_upfront,1.906082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:40.197202 +AWS,ap-northeast-2,r5d.8xlarge,reserved_1y,no_upfront,1.906082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:20.935122 +AWS,ap-northeast-2,r5d.8xlarge,reserved_1y,partial_upfront,1.906082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:06.630415 +AWS,ap-northeast-2,r5d.8xlarge,reserved_3y,all_upfront,1.270694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:44.295607 +AWS,ap-northeast-2,r5d.8xlarge,reserved_3y,no_upfront,1.270694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:23.174763 +AWS,ap-northeast-2,r5d.8xlarge,reserved_3y,partial_upfront,1.270694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:18.442850 +AWS,ap-northeast-2,r5d.8xlarge,spot,NA,1.048111,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172045 +AWS,ap-northeast-2,r5d.large,on_demand,NA,0.173,USD,AWS Pricing API,2025-11-30T08:58:33.427785 +AWS,ap-northeast-2,r5d.large,reserved_1y,all_upfront,0.138767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:04.853023 +AWS,ap-northeast-2,r5d.large,reserved_1y,no_upfront,0.138767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:45.730970 +AWS,ap-northeast-2,r5d.large,reserved_1y,partial_upfront,0.138767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:31.235676 +AWS,ap-northeast-2,r5d.large,reserved_3y,all_upfront,0.069589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:08.660699 +AWS,ap-northeast-2,r5d.large,reserved_3y,no_upfront,0.069589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:48.205601 +AWS,ap-northeast-2,r5d.large,reserved_3y,partial_upfront,0.069589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:42.861674 +AWS,ap-northeast-2,r5d.large,spot,NA,0.066423,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172623 +AWS,ap-northeast-2,r5d.xlarge,on_demand,NA,0.346,USD,AWS Pricing API,2025-11-30T08:57:51.164011 +AWS,ap-northeast-2,r5d.xlarge,reserved_1y,all_upfront,0.233562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:22.501980 +AWS,ap-northeast-2,r5d.xlarge,reserved_1y,no_upfront,0.233562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:03.255552 +AWS,ap-northeast-2,r5d.xlarge,reserved_1y,partial_upfront,0.233562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:49.045806 +AWS,ap-northeast-2,r5d.xlarge,reserved_3y,all_upfront,0.077854,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:27.047230 +AWS,ap-northeast-2,r5d.xlarge,reserved_3y,no_upfront,0.077854,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:05.258780 +AWS,ap-northeast-2,r5d.xlarge,reserved_3y,partial_upfront,0.077854,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:00.964476 +AWS,ap-northeast-2,r5d.xlarge,spot,NA,0.161524,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171614 +AWS,ap-northeast-2,r5dn.12xlarge,on_demand,NA,4.776,USD,AWS Pricing API,2025-11-30T08:57:54.014140 +AWS,ap-northeast-2,r5dn.12xlarge,reserved_1y,all_upfront,2.29019,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:25.430323 +AWS,ap-northeast-2,r5dn.12xlarge,reserved_1y,no_upfront,2.29019,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:06.145765 +AWS,ap-northeast-2,r5dn.12xlarge,reserved_1y,partial_upfront,2.29019,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:51.891999 +AWS,ap-northeast-2,r5dn.12xlarge,reserved_3y,all_upfront,2.29019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:29.835122 +AWS,ap-northeast-2,r5dn.12xlarge,reserved_3y,no_upfront,2.29019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:08.140553 +AWS,ap-northeast-2,r5dn.12xlarge,reserved_3y,partial_upfront,2.29019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:03.806751 +AWS,ap-northeast-2,r5dn.12xlarge,spot,NA,1.691867,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171675 +AWS,ap-northeast-2,r5dn.16xlarge,on_demand,NA,6.368,USD,AWS Pricing API,2025-11-30T08:58:04.425792 +AWS,ap-northeast-2,r5dn.16xlarge,reserved_1y,all_upfront,3.05358,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:35.897162 +AWS,ap-northeast-2,r5dn.16xlarge,reserved_1y,no_upfront,3.05358,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:16.588203 +AWS,ap-northeast-2,r5dn.16xlarge,reserved_1y,partial_upfront,3.05358,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:02.320453 +AWS,ap-northeast-2,r5dn.16xlarge,reserved_3y,all_upfront,3.05358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:39.999291 +AWS,ap-northeast-2,r5dn.16xlarge,reserved_3y,no_upfront,3.05358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:18.774738 +AWS,ap-northeast-2,r5dn.16xlarge,reserved_3y,partial_upfront,3.05358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:14.169676 +AWS,ap-northeast-2,r5dn.16xlarge,spot,NA,2.221658,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171927 +AWS,ap-northeast-2,r5dn.24xlarge,on_demand,NA,9.552,USD,AWS Pricing API,2025-11-30T08:58:16.000971 +AWS,ap-northeast-2,r5dn.24xlarge,reserved_1y,all_upfront,3.98204,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:47.432281 +AWS,ap-northeast-2,r5dn.24xlarge,reserved_1y,no_upfront,3.98204,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:28.142088 +AWS,ap-northeast-2,r5dn.24xlarge,reserved_1y,partial_upfront,3.98204,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:13.768680 +AWS,ap-northeast-2,r5dn.24xlarge,reserved_3y,all_upfront,3.98204,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:51.478419 +AWS,ap-northeast-2,r5dn.24xlarge,reserved_3y,no_upfront,3.98204,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:30.473215 +AWS,ap-northeast-2,r5dn.24xlarge,reserved_3y,partial_upfront,3.98204,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:25.561631 +AWS,ap-northeast-2,r5dn.24xlarge,spot,NA,3.712705,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172240 +AWS,ap-northeast-2,r5dn.2xlarge,on_demand,NA,0.796,USD,AWS Pricing API,2025-11-30T08:58:21.216791 +AWS,ap-northeast-2,r5dn.2xlarge,reserved_1y,all_upfront,0.50148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:52.694461 +AWS,ap-northeast-2,r5dn.2xlarge,reserved_1y,no_upfront,0.50148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:33.410889 +AWS,ap-northeast-2,r5dn.2xlarge,reserved_1y,partial_upfront,0.50148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:19.007260 +AWS,ap-northeast-2,r5dn.2xlarge,reserved_3y,all_upfront,0.50148,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:56.683750 +AWS,ap-northeast-2,r5dn.2xlarge,reserved_3y,no_upfront,0.50148,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:35.817859 +AWS,ap-northeast-2,r5dn.2xlarge,reserved_3y,partial_upfront,0.50148,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:30.786922 +AWS,ap-northeast-2,r5dn.2xlarge,spot,NA,0.338579,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172340 +AWS,ap-northeast-2,r5dn.4xlarge,on_demand,NA,1.592,USD,AWS Pricing API,2025-11-30T08:57:45.444340 +AWS,ap-northeast-2,r5dn.4xlarge,reserved_1y,all_upfront,0.936073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:16.831241 +AWS,ap-northeast-2,r5dn.4xlarge,reserved_1y,no_upfront,0.936073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:57.456735 +AWS,ap-northeast-2,r5dn.4xlarge,reserved_1y,partial_upfront,0.936073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:43.373464 +AWS,ap-northeast-2,r5dn.4xlarge,reserved_3y,all_upfront,0.312024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:21.490786 +AWS,ap-northeast-2,r5dn.4xlarge,reserved_3y,no_upfront,0.312024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:59.392184 +AWS,ap-northeast-2,r5dn.4xlarge,reserved_3y,partial_upfront,0.312024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:55.298210 +AWS,ap-northeast-2,r5dn.4xlarge,spot,NA,0.631949,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171502 +AWS,ap-northeast-2,r5dn.8xlarge,on_demand,NA,3.184,USD,AWS Pricing API,2025-11-30T08:58:44.787333 +AWS,ap-northeast-2,r5dn.8xlarge,reserved_1y,all_upfront,2.33355,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:16.154105 +AWS,ap-northeast-2,r5dn.8xlarge,reserved_1y,no_upfront,2.33355,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:57.172501 +AWS,ap-northeast-2,r5dn.8xlarge,reserved_1y,partial_upfront,2.33355,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:42.385375 +AWS,ap-northeast-2,r5dn.8xlarge,reserved_3y,all_upfront,2.33355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:19.681625 +AWS,ap-northeast-2,r5dn.8xlarge,reserved_3y,no_upfront,2.33355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:59.576998 +AWS,ap-northeast-2,r5dn.8xlarge,reserved_3y,partial_upfront,2.33355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:54.086708 +AWS,ap-northeast-2,r5dn.8xlarge,spot,NA,1.227838,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172834 +AWS,ap-northeast-2,r5dn.large,on_demand,NA,0.199,USD,AWS Pricing API,2025-11-30T08:57:55.113356 +AWS,ap-northeast-2,r5dn.large,reserved_1y,all_upfront,0.12537,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:26.510649 +AWS,ap-northeast-2,r5dn.large,reserved_1y,no_upfront,0.12537,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:07.240381 +AWS,ap-northeast-2,r5dn.large,reserved_1y,partial_upfront,0.12537,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:52.996080 +AWS,ap-northeast-2,r5dn.large,reserved_3y,all_upfront,0.12537,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:30.898967 +AWS,ap-northeast-2,r5dn.large,reserved_3y,no_upfront,0.12537,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:09.254132 +AWS,ap-northeast-2,r5dn.large,reserved_3y,partial_upfront,0.12537,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:04.896837 +AWS,ap-northeast-2,r5dn.large,spot,NA,0.082887,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171730 +AWS,ap-northeast-2,r5dn.metal,on_demand,NA,9.552,USD,AWS Pricing API,2025-11-30T08:57:43.149222 +AWS,ap-northeast-2,r5dn.metal,reserved_1y,all_upfront,7.374134,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:14.540466 +AWS,ap-northeast-2,r5dn.metal,reserved_1y,no_upfront,7.374134,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:55.091987 +AWS,ap-northeast-2,r5dn.metal,reserved_1y,partial_upfront,7.374134,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:41.104193 +AWS,ap-northeast-2,r5dn.metal,reserved_3y,all_upfront,3.687071,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:19.239375 +AWS,ap-northeast-2,r5dn.metal,reserved_3y,no_upfront,3.687071,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:57.049757 +AWS,ap-northeast-2,r5dn.metal,reserved_3y,partial_upfront,3.687071,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:53.027217 +AWS,ap-northeast-2,r5dn.metal,spot,NA,3.337417,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171456 +AWS,ap-northeast-2,r5dn.xlarge,on_demand,NA,0.398,USD,AWS Pricing API,2025-11-30T08:58:06.479024 +AWS,ap-northeast-2,r5dn.xlarge,reserved_1y,all_upfront,0.277827,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:37.913850 +AWS,ap-northeast-2,r5dn.xlarge,reserved_1y,no_upfront,0.277827,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:18.632560 +AWS,ap-northeast-2,r5dn.xlarge,reserved_1y,partial_upfront,0.277827,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:04.342297 +AWS,ap-northeast-2,r5dn.xlarge,reserved_3y,all_upfront,0.185209,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:42.001626 +AWS,ap-northeast-2,r5dn.xlarge,reserved_3y,no_upfront,0.185209,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:20.839292 +AWS,ap-northeast-2,r5dn.xlarge,reserved_3y,partial_upfront,0.185209,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:16.179872 +AWS,ap-northeast-2,r5dn.xlarge,spot,NA,0.19276,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172005 +AWS,ap-northeast-2,r5n.12xlarge,on_demand,NA,4.272,USD,AWS Pricing API,2025-11-30T08:58:29.038330 +AWS,ap-northeast-2,r5n.12xlarge,reserved_1y,all_upfront,2.039,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:00.489819 +AWS,ap-northeast-2,r5n.12xlarge,reserved_1y,no_upfront,2.039,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:41.343993 +AWS,ap-northeast-2,r5n.12xlarge,reserved_1y,partial_upfront,2.039,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:26.867687 +AWS,ap-northeast-2,r5n.12xlarge,reserved_3y,all_upfront,2.039,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:04.397534 +AWS,ap-northeast-2,r5n.12xlarge,reserved_3y,no_upfront,2.039,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:43.772581 +AWS,ap-northeast-2,r5n.12xlarge,reserved_3y,partial_upfront,2.039,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:38.551692 +AWS,ap-northeast-2,r5n.12xlarge,spot,NA,2.513128,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172479 +AWS,ap-northeast-2,r5n.16xlarge,on_demand,NA,5.696,USD,AWS Pricing API,2025-11-30T08:58:44.379580 +AWS,ap-northeast-2,r5n.16xlarge,reserved_1y,all_upfront,3.41779,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:15.740706 +AWS,ap-northeast-2,r5n.16xlarge,reserved_1y,no_upfront,3.41779,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:56.761368 +AWS,ap-northeast-2,r5n.16xlarge,reserved_1y,partial_upfront,3.41779,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:41.967325 +AWS,ap-northeast-2,r5n.16xlarge,reserved_3y,all_upfront,2.278597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:19.269978 +AWS,ap-northeast-2,r5n.16xlarge,reserved_3y,no_upfront,2.278597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:59.158254 +AWS,ap-northeast-2,r5n.16xlarge,reserved_3y,partial_upfront,2.278597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:53.684526 +AWS,ap-northeast-2,r5n.16xlarge,spot,NA,2.379149,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172826 +AWS,ap-northeast-2,r5n.24xlarge,on_demand,NA,8.544,USD,AWS Pricing API,2025-11-30T08:58:06.062145 +AWS,ap-northeast-2,r5n.24xlarge,reserved_1y,all_upfront,5.383,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:37.515546 +AWS,ap-northeast-2,r5n.24xlarge,reserved_1y,no_upfront,5.383,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:18.224293 +AWS,ap-northeast-2,r5n.24xlarge,reserved_1y,partial_upfront,5.383,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:03.943437 +AWS,ap-northeast-2,r5n.24xlarge,reserved_3y,all_upfront,5.383,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:41.597749 +AWS,ap-northeast-2,r5n.24xlarge,reserved_3y,no_upfront,5.383,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:20.432442 +AWS,ap-northeast-2,r5n.24xlarge,reserved_3y,partial_upfront,5.383,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:15.780818 +AWS,ap-northeast-2,r5n.24xlarge,spot,NA,3.448759,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171960 +AWS,ap-northeast-2,r5n.2xlarge,on_demand,NA,0.712,USD,AWS Pricing API,2025-11-30T08:57:46.956647 +AWS,ap-northeast-2,r5n.2xlarge,reserved_1y,all_upfront,0.496174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:18.315686 +AWS,ap-northeast-2,r5n.2xlarge,reserved_1y,no_upfront,0.496174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:58.992326 +AWS,ap-northeast-2,r5n.2xlarge,reserved_1y,partial_upfront,0.496174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:44.853048 +AWS,ap-northeast-2,r5n.2xlarge,reserved_3y,all_upfront,0.330725,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:22.948563 +AWS,ap-northeast-2,r5n.2xlarge,reserved_3y,no_upfront,0.330725,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:00.904665 +AWS,ap-northeast-2,r5n.2xlarge,reserved_3y,partial_upfront,0.330725,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:56.775480 +AWS,ap-northeast-2,r5n.2xlarge,spot,NA,0.312103,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171526 +AWS,ap-northeast-2,r5n.4xlarge,on_demand,NA,1.424,USD,AWS Pricing API,2025-11-30T08:58:42.880245 +AWS,ap-northeast-2,r5n.4xlarge,reserved_1y,all_upfront,0.972717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:14.259416 +AWS,ap-northeast-2,r5n.4xlarge,reserved_1y,no_upfront,0.972717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:55.248018 +AWS,ap-northeast-2,r5n.4xlarge,reserved_1y,partial_upfront,0.972717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:40.475143 +AWS,ap-northeast-2,r5n.4xlarge,reserved_3y,all_upfront,0.324239,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:17.815421 +AWS,ap-northeast-2,r5n.4xlarge,reserved_3y,no_upfront,0.324239,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:57.636501 +AWS,ap-northeast-2,r5n.4xlarge,reserved_3y,partial_upfront,0.324239,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:52.195479 +AWS,ap-northeast-2,r5n.4xlarge,spot,NA,0.844865,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172762 +AWS,ap-northeast-2,r5n.8xlarge,on_demand,NA,2.848,USD,AWS Pricing API,2025-11-30T08:58:28.901989 +AWS,ap-northeast-2,r5n.8xlarge,reserved_1y,all_upfront,1.794,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:00.355466 +AWS,ap-northeast-2,r5n.8xlarge,reserved_1y,no_upfront,1.794,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:41.204357 +AWS,ap-northeast-2,r5n.8xlarge,reserved_1y,partial_upfront,1.794,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:26.734781 +AWS,ap-northeast-2,r5n.8xlarge,reserved_3y,all_upfront,1.794,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:04.262792 +AWS,ap-northeast-2,r5n.8xlarge,reserved_3y,no_upfront,1.794,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:43.634881 +AWS,ap-northeast-2,r5n.8xlarge,reserved_3y,partial_upfront,1.794,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:38.416354 +AWS,ap-northeast-2,r5n.8xlarge,spot,NA,1.660394,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172471 +AWS,ap-northeast-2,r5n.large,on_demand,NA,0.178,USD,AWS Pricing API,2025-11-30T08:58:50.147178 +AWS,ap-northeast-2,r5n.large,reserved_1y,all_upfront,0.13,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:21.524478 +AWS,ap-northeast-2,r5n.large,reserved_1y,no_upfront,0.13,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:02.628023 +AWS,ap-northeast-2,r5n.large,reserved_1y,partial_upfront,0.13,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:47.762487 +AWS,ap-northeast-2,r5n.large,reserved_3y,all_upfront,0.13,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:25.134948 +AWS,ap-northeast-2,r5n.large,reserved_3y,no_upfront,0.13,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:05.068784 +AWS,ap-northeast-2,r5n.large,reserved_3y,partial_upfront,0.13,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:59.437348 +AWS,ap-northeast-2,r5n.large,spot,NA,0.070204,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172936 +AWS,ap-northeast-2,r5n.metal,on_demand,NA,8.544,USD,AWS Pricing API,2025-11-30T08:58:29.870130 +AWS,ap-northeast-2,r5n.metal,reserved_1y,all_upfront,3.543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:01.306725 +AWS,ap-northeast-2,r5n.metal,reserved_1y,no_upfront,3.543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:42.174529 +AWS,ap-northeast-2,r5n.metal,reserved_1y,partial_upfront,3.543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:27.688581 +AWS,ap-northeast-2,r5n.metal,reserved_3y,all_upfront,3.543,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:05.201837 +AWS,ap-northeast-2,r5n.metal,reserved_3y,no_upfront,3.543,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:44.605978 +AWS,ap-northeast-2,r5n.metal,reserved_3y,partial_upfront,3.543,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:39.367113 +AWS,ap-northeast-2,r5n.metal,spot,NA,2.978832,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172511 +AWS,ap-northeast-2,r5n.xlarge,on_demand,NA,0.356,USD,AWS Pricing API,2025-11-30T08:58:08.112545 +AWS,ap-northeast-2,r5n.xlarge,reserved_1y,all_upfront,0.385502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:39.522704 +AWS,ap-northeast-2,r5n.xlarge,reserved_1y,no_upfront,0.385502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:20.257380 +AWS,ap-northeast-2,r5n.xlarge,reserved_1y,partial_upfront,0.385502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:05.954328 +AWS,ap-northeast-2,r5n.xlarge,reserved_3y,all_upfront,0.128501,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:43.590477 +AWS,ap-northeast-2,r5n.xlarge,reserved_3y,no_upfront,0.128501,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:22.491172 +AWS,ap-northeast-2,r5n.xlarge,reserved_3y,partial_upfront,0.128501,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:17.774950 +AWS,ap-northeast-2,r5n.xlarge,spot,NA,0.172039,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172051 +AWS,ap-northeast-2,r6g.12xlarge,on_demand,NA,2.928,USD,AWS Pricing API,2025-11-30T08:58:01.317018 +AWS,ap-northeast-2,r6g.12xlarge,reserved_1y,all_upfront,2.015991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:32.800650 +AWS,ap-northeast-2,r6g.12xlarge,reserved_1y,no_upfront,2.015991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:13.479574 +AWS,ap-northeast-2,r6g.12xlarge,reserved_1y,partial_upfront,2.015991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:59.223364 +AWS,ap-northeast-2,r6g.12xlarge,reserved_3y,all_upfront,1.343997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:36.978004 +AWS,ap-northeast-2,r6g.12xlarge,reserved_3y,no_upfront,1.343997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:15.614264 +AWS,ap-northeast-2,r6g.12xlarge,reserved_3y,partial_upfront,1.343997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:11.086650 +AWS,ap-northeast-2,r6g.12xlarge,spot,NA,1.008582,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171887 +AWS,ap-northeast-2,r6g.16xlarge,on_demand,NA,3.904,USD,AWS Pricing API,2025-11-30T08:57:58.204764 +AWS,ap-northeast-2,r6g.16xlarge,reserved_1y,all_upfront,5.550685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:29.691032 +AWS,ap-northeast-2,r6g.16xlarge,reserved_1y,no_upfront,5.550685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:10.352170 +AWS,ap-northeast-2,r6g.16xlarge,reserved_1y,partial_upfront,5.550685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:56.120839 +AWS,ap-northeast-2,r6g.16xlarge,reserved_3y,all_upfront,1.850228,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:33.938204 +AWS,ap-northeast-2,r6g.16xlarge,reserved_3y,no_upfront,1.850228,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:12.434574 +AWS,ap-northeast-2,r6g.16xlarge,reserved_3y,partial_upfront,1.850228,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:07.993583 +AWS,ap-northeast-2,r6g.16xlarge,spot,NA,1.384972,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171826 +AWS,ap-northeast-2,r6g.2xlarge,on_demand,NA,0.488,USD,AWS Pricing API,2025-11-30T08:58:51.085358 +AWS,ap-northeast-2,r6g.2xlarge,reserved_1y,all_upfront,0.3528,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:22.466253 +AWS,ap-northeast-2,r6g.2xlarge,reserved_1y,no_upfront,0.3528,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:03.578995 +AWS,ap-northeast-2,r6g.2xlarge,reserved_1y,partial_upfront,0.3528,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:48.703813 +AWS,ap-northeast-2,r6g.2xlarge,reserved_3y,all_upfront,0.3528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:26.065838 +AWS,ap-northeast-2,r6g.2xlarge,reserved_3y,no_upfront,0.3528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:06.045125 +AWS,ap-northeast-2,r6g.2xlarge,reserved_3y,partial_upfront,0.3528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:00.380716 +AWS,ap-northeast-2,r6g.2xlarge,spot,NA,0.167644,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172940 +AWS,ap-northeast-2,r6g.4xlarge,on_demand,NA,0.976,USD,AWS Pricing API,2025-11-30T08:57:48.037103 +AWS,ap-northeast-2,r6g.4xlarge,reserved_1y,all_upfront,0.7056,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:19.399191 +AWS,ap-northeast-2,r6g.4xlarge,reserved_1y,no_upfront,0.7056,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:00.079228 +AWS,ap-northeast-2,r6g.4xlarge,reserved_1y,partial_upfront,0.7056,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:45.920549 +AWS,ap-northeast-2,r6g.4xlarge,reserved_3y,all_upfront,0.7056,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:24.006522 +AWS,ap-northeast-2,r6g.4xlarge,reserved_3y,no_upfront,0.7056,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:02.019900 +AWS,ap-northeast-2,r6g.4xlarge,reserved_3y,partial_upfront,0.7056,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:57.874585 +AWS,ap-northeast-2,r6g.4xlarge,spot,NA,0.407222,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171568 +AWS,ap-northeast-2,r6g.8xlarge,on_demand,NA,1.952,USD,AWS Pricing API,2025-11-30T08:58:26.865007 +AWS,ap-northeast-2,r6g.8xlarge,reserved_1y,all_upfront,1.168018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:58.330941 +AWS,ap-northeast-2,r6g.8xlarge,reserved_1y,no_upfront,1.168018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:39.140419 +AWS,ap-northeast-2,r6g.8xlarge,reserved_1y,partial_upfront,1.168018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:24.699898 +AWS,ap-northeast-2,r6g.8xlarge,reserved_3y,all_upfront,0.778673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:02.269056 +AWS,ap-northeast-2,r6g.8xlarge,reserved_3y,no_upfront,0.778673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:41.567957 +AWS,ap-northeast-2,r6g.8xlarge,reserved_3y,partial_upfront,0.778673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:36.394601 +AWS,ap-northeast-2,r6g.8xlarge,spot,NA,0.678417,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172455 +AWS,ap-northeast-2,r6g.large,on_demand,NA,0.122,USD,AWS Pricing API,2025-11-30T08:58:05.510035 +AWS,ap-northeast-2,r6g.large,reserved_1y,all_upfront,0.0637,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:36.978459 +AWS,ap-northeast-2,r6g.large,reserved_1y,no_upfront,0.0637,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:17.681894 +AWS,ap-northeast-2,r6g.large,reserved_1y,partial_upfront,0.0637,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:03.405835 +AWS,ap-northeast-2,r6g.large,reserved_3y,all_upfront,0.0637,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:41.066115 +AWS,ap-northeast-2,r6g.large,reserved_3y,no_upfront,0.0637,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:19.878281 +AWS,ap-northeast-2,r6g.large,reserved_3y,partial_upfront,0.0637,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:15.240335 +AWS,ap-northeast-2,r6g.large,spot,NA,0.043995,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171972 +AWS,ap-northeast-2,r6g.xlarge,on_demand,NA,0.244,USD,AWS Pricing API,2025-11-30T08:57:40.908716 +AWS,ap-northeast-2,r6g.xlarge,reserved_1y,all_upfront,0.143037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:12.412072 +AWS,ap-northeast-2,r6g.xlarge,reserved_1y,no_upfront,0.143037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:52.900805 +AWS,ap-northeast-2,r6g.xlarge,reserved_1y,partial_upfront,0.143037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:38.946447 +AWS,ap-northeast-2,r6g.xlarge,reserved_3y,all_upfront,0.047679,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:17.129603 +AWS,ap-northeast-2,r6g.xlarge,reserved_3y,no_upfront,0.047679,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:54.842228 +AWS,ap-northeast-2,r6g.xlarge,reserved_3y,partial_upfront,0.047679,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:50.891443 +AWS,ap-northeast-2,r6g.xlarge,spot,NA,0.088108,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171427 +AWS,ap-northeast-2,r6gd.12xlarge,on_demand,NA,3.3216,USD,AWS Pricing API,2025-11-30T08:58:37.334703 +AWS,ap-northeast-2,r6gd.12xlarge,reserved_1y,all_upfront,2.657222,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:08.734624 +AWS,ap-northeast-2,r6gd.12xlarge,reserved_1y,no_upfront,2.657222,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:49.741063 +AWS,ap-northeast-2,r6gd.12xlarge,reserved_1y,partial_upfront,2.657222,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:35.122294 +AWS,ap-northeast-2,r6gd.12xlarge,reserved_3y,all_upfront,1.328607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:12.489109 +AWS,ap-northeast-2,r6gd.12xlarge,reserved_3y,no_upfront,1.328607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:52.176652 +AWS,ap-northeast-2,r6gd.12xlarge,reserved_3y,partial_upfront,1.328607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:46.742403 +AWS,ap-northeast-2,r6gd.12xlarge,spot,NA,1.204236,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172658 +AWS,ap-northeast-2,r6gd.16xlarge,on_demand,NA,4.4288,USD,AWS Pricing API,2025-11-30T08:58:04.002200 +AWS,ap-northeast-2,r6gd.16xlarge,reserved_1y,all_upfront,3.050214,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:35.493179 +AWS,ap-northeast-2,r6gd.16xlarge,reserved_1y,no_upfront,3.050214,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:16.179102 +AWS,ap-northeast-2,r6gd.16xlarge,reserved_1y,partial_upfront,3.050214,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:01.906376 +AWS,ap-northeast-2,r6gd.16xlarge,reserved_3y,all_upfront,2.033471,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:39.591738 +AWS,ap-northeast-2,r6gd.16xlarge,reserved_3y,no_upfront,2.033471,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:18.360641 +AWS,ap-northeast-2,r6gd.16xlarge,reserved_3y,partial_upfront,2.033471,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:13.759231 +AWS,ap-northeast-2,r6gd.16xlarge,spot,NA,1.586755,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171932 +AWS,ap-northeast-2,r6gd.2xlarge,on_demand,NA,0.5536,USD,AWS Pricing API,2025-11-30T08:57:42.377194 +AWS,ap-northeast-2,r6gd.2xlarge,reserved_1y,all_upfront,0.442892,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:13.872846 +AWS,ap-northeast-2,r6gd.2xlarge,reserved_1y,no_upfront,0.442892,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:54.409581 +AWS,ap-northeast-2,r6gd.2xlarge,reserved_1y,partial_upfront,0.442892,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:40.427875 +AWS,ap-northeast-2,r6gd.2xlarge,reserved_3y,all_upfront,0.221431,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:18.585632 +AWS,ap-northeast-2,r6gd.2xlarge,reserved_3y,no_upfront,0.221431,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:56.355460 +AWS,ap-northeast-2,r6gd.2xlarge,reserved_3y,partial_upfront,0.221431,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:52.353484 +AWS,ap-northeast-2,r6gd.2xlarge,spot,NA,0.234289,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171448 +AWS,ap-northeast-2,r6gd.4xlarge,on_demand,NA,1.1072,USD,AWS Pricing API,2025-11-30T08:57:49.004123 +AWS,ap-northeast-2,r6gd.4xlarge,reserved_1y,all_upfront,0.6963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:20.355214 +AWS,ap-northeast-2,r6gd.4xlarge,reserved_1y,no_upfront,0.6963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:01.055299 +AWS,ap-northeast-2,r6gd.4xlarge,reserved_1y,partial_upfront,0.6963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:46.862912 +AWS,ap-northeast-2,r6gd.4xlarge,reserved_3y,all_upfront,0.6963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:24.935056 +AWS,ap-northeast-2,r6gd.4xlarge,reserved_3y,no_upfront,0.6963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:03.032459 +AWS,ap-northeast-2,r6gd.4xlarge,reserved_3y,partial_upfront,0.6963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:58.810310 +AWS,ap-northeast-2,r6gd.4xlarge,spot,NA,0.428817,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171605 +AWS,ap-northeast-2,r6gd.8xlarge,on_demand,NA,2.2144,USD,AWS Pricing API,2025-11-30T08:57:43.285527 +AWS,ap-northeast-2,r6gd.8xlarge,reserved_1y,all_upfront,3.132763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:14.673835 +AWS,ap-northeast-2,r6gd.8xlarge,reserved_1y,no_upfront,3.132763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:55.237819 +AWS,ap-northeast-2,r6gd.8xlarge,reserved_1y,partial_upfront,3.132763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:41.239244 +AWS,ap-northeast-2,r6gd.8xlarge,reserved_3y,all_upfront,1.044254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:19.372202 +AWS,ap-northeast-2,r6gd.8xlarge,reserved_3y,no_upfront,1.044254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:57.186372 +AWS,ap-northeast-2,r6gd.8xlarge,reserved_3y,partial_upfront,1.044254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:53.161022 +AWS,ap-northeast-2,r6gd.8xlarge,spot,NA,0.781694,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171477 +AWS,ap-northeast-2,r6gd.large,on_demand,NA,0.1384,USD,AWS Pricing API,2025-11-30T08:58:18.798856 +AWS,ap-northeast-2,r6gd.large,reserved_1y,all_upfront,0.087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:50.260386 +AWS,ap-northeast-2,r6gd.large,reserved_1y,no_upfront,0.087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:30.972475 +AWS,ap-northeast-2,r6gd.large,reserved_1y,partial_upfront,0.087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:16.582087 +AWS,ap-northeast-2,r6gd.large,reserved_3y,all_upfront,0.087,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:54.288153 +AWS,ap-northeast-2,r6gd.large,reserved_3y,no_upfront,0.087,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:33.346657 +AWS,ap-northeast-2,r6gd.large,reserved_3y,partial_upfront,0.087,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:28.389040 +AWS,ap-northeast-2,r6gd.large,spot,NA,0.050086,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172288 +AWS,ap-northeast-2,r6gd.xlarge,on_demand,NA,0.2768,USD,AWS Pricing API,2025-11-30T08:58:02.923285 +AWS,ap-northeast-2,r6gd.xlarge,reserved_1y,all_upfront,0.391553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:34.417524 +AWS,ap-northeast-2,r6gd.xlarge,reserved_1y,no_upfront,0.391553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:15.097636 +AWS,ap-northeast-2,r6gd.xlarge,reserved_1y,partial_upfront,0.391553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:00.828061 +AWS,ap-northeast-2,r6gd.xlarge,reserved_3y,all_upfront,0.130518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:38.545060 +AWS,ap-northeast-2,r6gd.xlarge,reserved_3y,no_upfront,0.130518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:17.271139 +AWS,ap-northeast-2,r6gd.xlarge,reserved_3y,partial_upfront,0.130518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:12.678427 +AWS,ap-northeast-2,r6gd.xlarge,spot,NA,0.112248,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171907 +AWS,ap-northeast-2,r6i.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T08:58:43.154162 +AWS,ap-northeast-2,r6i.12xlarge,reserved_1y,all_upfront,2.293175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:14.528713 +AWS,ap-northeast-2,r6i.12xlarge,reserved_1y,no_upfront,2.293175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:55.525553 +AWS,ap-northeast-2,r6i.12xlarge,reserved_1y,partial_upfront,2.293175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:40.752197 +AWS,ap-northeast-2,r6i.12xlarge,reserved_3y,all_upfront,1.528792,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:18.079066 +AWS,ap-northeast-2,r6i.12xlarge,reserved_3y,no_upfront,1.528792,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:57.909139 +AWS,ap-northeast-2,r6i.12xlarge,reserved_3y,partial_upfront,1.528792,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:52.478648 +AWS,ap-northeast-2,r6i.12xlarge,spot,NA,1.428732,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172783 +AWS,ap-northeast-2,r6i.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T08:57:51.720883 +AWS,ap-northeast-2,r6i.16xlarge,reserved_1y,all_upfront,2.996461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:23.137599 +AWS,ap-northeast-2,r6i.16xlarge,reserved_1y,no_upfront,2.996461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:03.811224 +AWS,ap-northeast-2,r6i.16xlarge,reserved_1y,partial_upfront,2.996461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:49.590795 +AWS,ap-northeast-2,r6i.16xlarge,reserved_3y,all_upfront,0.99882,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:27.574420 +AWS,ap-northeast-2,r6i.16xlarge,reserved_3y,no_upfront,0.99882,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:05.803362 +AWS,ap-northeast-2,r6i.16xlarge,reserved_3y,partial_upfront,0.99882,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:01.501842 +AWS,ap-northeast-2,r6i.16xlarge,spot,NA,1.78197,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171651 +AWS,ap-northeast-2,r6i.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T08:57:58.069216 +AWS,ap-northeast-2,r6i.24xlarge,reserved_1y,all_upfront,5.039977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:29.555542 +AWS,ap-northeast-2,r6i.24xlarge,reserved_1y,no_upfront,5.039977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:10.214516 +AWS,ap-northeast-2,r6i.24xlarge,reserved_1y,partial_upfront,5.039977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:55.977576 +AWS,ap-northeast-2,r6i.24xlarge,reserved_3y,all_upfront,3.359992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:33.807172 +AWS,ap-northeast-2,r6i.24xlarge,reserved_3y,no_upfront,3.359992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:12.293074 +AWS,ap-northeast-2,r6i.24xlarge,reserved_3y,partial_upfront,3.359992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:07.857448 +AWS,ap-northeast-2,r6i.24xlarge,spot,NA,2.671971,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171778 +AWS,ap-northeast-2,r6i.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T08:58:46.665639 +AWS,ap-northeast-2,r6i.2xlarge,reserved_1y,all_upfront,0.374543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:18.037680 +AWS,ap-northeast-2,r6i.2xlarge,reserved_1y,no_upfront,0.374543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:59.068278 +AWS,ap-northeast-2,r6i.2xlarge,reserved_1y,partial_upfront,0.374543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:44.275332 +AWS,ap-northeast-2,r6i.2xlarge,reserved_3y,all_upfront,0.124848,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:21.586193 +AWS,ap-northeast-2,r6i.2xlarge,reserved_3y,no_upfront,0.124848,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:01.497223 +AWS,ap-northeast-2,r6i.2xlarge,reserved_3y,partial_upfront,0.124848,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:55.969184 +AWS,ap-northeast-2,r6i.2xlarge,spot,NA,0.25478,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172846 +AWS,ap-northeast-2,r6i.32xlarge,on_demand,NA,9.728,USD,AWS Pricing API,2025-11-30T08:57:51.856884 +AWS,ap-northeast-2,r6i.32xlarge,reserved_1y,all_upfront,6.42096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:23.270754 +AWS,ap-northeast-2,r6i.32xlarge,reserved_1y,no_upfront,6.42096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:03.947520 +AWS,ap-northeast-2,r6i.32xlarge,reserved_1y,partial_upfront,6.42096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:49.727106 +AWS,ap-northeast-2,r6i.32xlarge,reserved_3y,all_upfront,6.42096,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:27.704177 +AWS,ap-northeast-2,r6i.32xlarge,reserved_3y,no_upfront,6.42096,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:05.948012 +AWS,ap-northeast-2,r6i.32xlarge,reserved_3y,partial_upfront,6.42096,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:01.639804 +AWS,ap-northeast-2,r6i.32xlarge,spot,NA,3.313863,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171630 +AWS,ap-northeast-2,r6i.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T08:58:13.112249 +AWS,ap-northeast-2,r6i.4xlarge,reserved_1y,all_upfront,0.749087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:44.593099 +AWS,ap-northeast-2,r6i.4xlarge,reserved_1y,no_upfront,0.749087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:25.281592 +AWS,ap-northeast-2,r6i.4xlarge,reserved_1y,partial_upfront,0.749087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:10.933023 +AWS,ap-northeast-2,r6i.4xlarge,reserved_3y,all_upfront,0.249696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:48.662997 +AWS,ap-northeast-2,r6i.4xlarge,reserved_3y,no_upfront,0.249696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:27.584811 +AWS,ap-northeast-2,r6i.4xlarge,reserved_3y,partial_upfront,0.249696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:22.728335 +AWS,ap-northeast-2,r6i.4xlarge,spot,NA,0.533432,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172171 +AWS,ap-northeast-2,r6i.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T08:58:17.468112 +AWS,ap-northeast-2,r6i.8xlarge,reserved_1y,all_upfront,1.528784,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:48.911722 +AWS,ap-northeast-2,r6i.8xlarge,reserved_1y,no_upfront,1.528784,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:29.623579 +AWS,ap-northeast-2,r6i.8xlarge,reserved_1y,partial_upfront,1.528784,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:15.245064 +AWS,ap-northeast-2,r6i.8xlarge,reserved_3y,all_upfront,1.019195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:52.945161 +AWS,ap-northeast-2,r6i.8xlarge,reserved_3y,no_upfront,1.019195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:31.961736 +AWS,ap-northeast-2,r6i.8xlarge,reserved_3y,partial_upfront,1.019195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:27.029196 +AWS,ap-northeast-2,r6i.8xlarge,spot,NA,1.00542,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172248 +AWS,ap-northeast-2,r6i.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T08:58:33.157809 +AWS,ap-northeast-2,r6i.large,reserved_1y,all_upfront,0.07897,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:04.583065 +AWS,ap-northeast-2,r6i.large,reserved_1y,no_upfront,0.07897,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:45.461640 +AWS,ap-northeast-2,r6i.large,reserved_1y,partial_upfront,0.07897,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:30.971225 +AWS,ap-northeast-2,r6i.large,reserved_3y,all_upfront,0.07897,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:08.396680 +AWS,ap-northeast-2,r6i.large,reserved_3y,no_upfront,0.07897,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:47.931810 +AWS,ap-northeast-2,r6i.large,reserved_3y,partial_upfront,0.07897,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:42.596466 +AWS,ap-northeast-2,r6i.large,spot,NA,0.056501,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172587 +AWS,ap-northeast-2,r6i.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T08:57:55.250308 +AWS,ap-northeast-2,r6i.xlarge,reserved_1y,all_upfront,0.361187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:26.647102 +AWS,ap-northeast-2,r6i.xlarge,reserved_1y,no_upfront,0.361187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:07.375912 +AWS,ap-northeast-2,r6i.xlarge,reserved_1y,partial_upfront,0.361187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:53.131260 +AWS,ap-northeast-2,r6i.xlarge,reserved_3y,all_upfront,0.120396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:31.029932 +AWS,ap-northeast-2,r6i.xlarge,reserved_3y,no_upfront,0.120396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:09.392262 +AWS,ap-northeast-2,r6i.xlarge,reserved_3y,partial_upfront,0.120396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:05.031478 +AWS,ap-northeast-2,r6i.xlarge,spot,NA,0.12034,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171697 +AWS,ap-northeast-2,r6id.12xlarge,on_demand,NA,4.3608,USD,AWS Pricing API,2025-11-30T08:58:47.068098 +AWS,ap-northeast-2,r6id.12xlarge,reserved_1y,all_upfront,2.611214,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:18.442151 +AWS,ap-northeast-2,r6id.12xlarge,reserved_1y,no_upfront,2.611214,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:59.474174 +AWS,ap-northeast-2,r6id.12xlarge,reserved_1y,partial_upfront,2.611214,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:44.677241 +AWS,ap-northeast-2,r6id.12xlarge,reserved_3y,all_upfront,1.740818,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:21.991288 +AWS,ap-northeast-2,r6id.12xlarge,reserved_3y,no_upfront,1.740818,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:01.919902 +AWS,ap-northeast-2,r6id.12xlarge,reserved_3y,partial_upfront,1.740818,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:56.372665 +AWS,ap-northeast-2,r6id.12xlarge,spot,NA,1.599419,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172874 +AWS,ap-northeast-2,r6id.16xlarge,on_demand,NA,5.8144,USD,AWS Pricing API,2025-11-30T08:58:30.004854 +AWS,ap-northeast-2,r6id.16xlarge,reserved_1y,all_upfront,3.02172,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:01.443902 +AWS,ap-northeast-2,r6id.16xlarge,reserved_1y,no_upfront,3.02172,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:42.311890 +AWS,ap-northeast-2,r6id.16xlarge,reserved_1y,partial_upfront,3.02172,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:27.822832 +AWS,ap-northeast-2,r6id.16xlarge,reserved_3y,all_upfront,3.02172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:05.334389 +AWS,ap-northeast-2,r6id.16xlarge,reserved_3y,no_upfront,3.02172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:44.749128 +AWS,ap-northeast-2,r6id.16xlarge,reserved_3y,partial_upfront,3.02172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:39.500309 +AWS,ap-northeast-2,r6id.16xlarge,spot,NA,2.065255,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172499 +AWS,ap-northeast-2,r6id.24xlarge,on_demand,NA,8.7216,USD,AWS Pricing API,2025-11-30T08:57:42.646910 +AWS,ap-northeast-2,r6id.24xlarge,reserved_1y,all_upfront,5.118037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:14.145240 +AWS,ap-northeast-2,r6id.24xlarge,reserved_1y,no_upfront,5.118037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:54.678834 +AWS,ap-northeast-2,r6id.24xlarge,reserved_1y,partial_upfront,5.118037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:40.703854 +AWS,ap-northeast-2,r6id.24xlarge,reserved_3y,all_upfront,1.706012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:18.846481 +AWS,ap-northeast-2,r6id.24xlarge,reserved_3y,no_upfront,1.706012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:56.628128 +AWS,ap-northeast-2,r6id.24xlarge,reserved_3y,partial_upfront,1.706012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:52.620689 +AWS,ap-northeast-2,r6id.24xlarge,spot,NA,3.291982,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171443 +AWS,ap-northeast-2,r6id.2xlarge,on_demand,NA,0.7268,USD,AWS Pricing API,2025-11-30T08:58:32.747664 +AWS,ap-northeast-2,r6id.2xlarge,reserved_1y,all_upfront,0.52557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:04.177923 +AWS,ap-northeast-2,r6id.2xlarge,reserved_1y,no_upfront,0.52557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:45.045874 +AWS,ap-northeast-2,r6id.2xlarge,reserved_1y,partial_upfront,0.52557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:30.573871 +AWS,ap-northeast-2,r6id.2xlarge,reserved_3y,all_upfront,0.52557,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:07.999697 +AWS,ap-northeast-2,r6id.2xlarge,reserved_3y,no_upfront,0.52557,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:47.515570 +AWS,ap-northeast-2,r6id.2xlarge,reserved_3y,partial_upfront,0.52557,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:42.197208 +AWS,ap-northeast-2,r6id.2xlarge,spot,NA,0.295674,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172575 +AWS,ap-northeast-2,r6id.32xlarge,on_demand,NA,11.6288,USD,AWS Pricing API,2025-11-30T08:58:24.574590 +AWS,ap-northeast-2,r6id.32xlarge,reserved_1y,all_upfront,7.84863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:56.043214 +AWS,ap-northeast-2,r6id.32xlarge,reserved_1y,no_upfront,7.84863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:36.802144 +AWS,ap-northeast-2,r6id.32xlarge,reserved_1y,partial_upfront,7.84863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:22.405342 +AWS,ap-northeast-2,r6id.32xlarge,reserved_3y,all_upfront,2.61621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:59.999678 +AWS,ap-northeast-2,r6id.32xlarge,reserved_3y,no_upfront,2.61621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:39.233438 +AWS,ap-northeast-2,r6id.32xlarge,reserved_3y,partial_upfront,2.61621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:34.127823 +AWS,ap-northeast-2,r6id.32xlarge,spot,NA,3.826652,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172379 +AWS,ap-northeast-2,r6id.4xlarge,on_demand,NA,1.4536,USD,AWS Pricing API,2025-11-30T08:58:19.335001 +AWS,ap-northeast-2,r6id.4xlarge,reserved_1y,all_upfront,0.98105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:50.800929 +AWS,ap-northeast-2,r6id.4xlarge,reserved_1y,no_upfront,0.98105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:31.516524 +AWS,ap-northeast-2,r6id.4xlarge,reserved_1y,partial_upfront,0.98105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:17.133628 +AWS,ap-northeast-2,r6id.4xlarge,reserved_3y,all_upfront,0.327017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:54.827862 +AWS,ap-northeast-2,r6id.4xlarge,reserved_3y,no_upfront,0.327017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:33.893092 +AWS,ap-northeast-2,r6id.4xlarge,reserved_3y,partial_upfront,0.327017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:28.921870 +AWS,ap-northeast-2,r6id.4xlarge,spot,NA,0.580794,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172281 +AWS,ap-northeast-2,r6id.8xlarge,on_demand,NA,2.9072,USD,AWS Pricing API,2025-11-30T08:57:42.241538 +AWS,ap-northeast-2,r6id.8xlarge,reserved_1y,all_upfront,1.70605,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:13.740483 +AWS,ap-northeast-2,r6id.8xlarge,reserved_1y,no_upfront,1.70605,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:54.271918 +AWS,ap-northeast-2,r6id.8xlarge,reserved_1y,partial_upfront,1.70605,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:40.293700 +AWS,ap-northeast-2,r6id.8xlarge,reserved_3y,all_upfront,0.568683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:18.449320 +AWS,ap-northeast-2,r6id.8xlarge,reserved_3y,no_upfront,0.568683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:56.216714 +AWS,ap-northeast-2,r6id.8xlarge,reserved_3y,partial_upfront,0.568683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:52.220393 +AWS,ap-northeast-2,r6id.8xlarge,spot,NA,1.163954,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171452 +AWS,ap-northeast-2,r6id.large,on_demand,NA,0.1817,USD,AWS Pricing API,2025-11-30T08:58:07.276409 +AWS,ap-northeast-2,r6id.large,reserved_1y,all_upfront,0.106621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:38.718549 +AWS,ap-northeast-2,r6id.large,reserved_1y,no_upfront,0.106621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:19.445351 +AWS,ap-northeast-2,r6id.large,reserved_1y,partial_upfront,0.106621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:05.146006 +AWS,ap-northeast-2,r6id.large,reserved_3y,all_upfront,0.03554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:42.803981 +AWS,ap-northeast-2,r6id.large,reserved_3y,no_upfront,0.03554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:21.674000 +AWS,ap-northeast-2,r6id.large,reserved_3y,partial_upfront,0.03554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:16.976414 +AWS,ap-northeast-2,r6id.large,spot,NA,0.064743,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171993 +AWS,ap-northeast-2,r6id.xlarge,on_demand,NA,0.3634,USD,AWS Pricing API,2025-11-30T08:58:44.515931 +AWS,ap-northeast-2,r6id.xlarge,reserved_1y,all_upfront,0.290717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:15.879455 +AWS,ap-northeast-2,r6id.xlarge,reserved_1y,no_upfront,0.290717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:56.899931 +AWS,ap-northeast-2,r6id.xlarge,reserved_1y,partial_upfront,0.290717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:42.105483 +AWS,ap-northeast-2,r6id.xlarge,reserved_3y,all_upfront,0.145359,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:19.414128 +AWS,ap-northeast-2,r6id.xlarge,reserved_3y,no_upfront,0.145359,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:59.301512 +AWS,ap-northeast-2,r6id.xlarge,reserved_3y,partial_upfront,0.145359,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:53.818115 +AWS,ap-northeast-2,r6id.xlarge,spot,NA,0.154486,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172842 +AWS,ap-northeast-2,r7g.12xlarge,on_demand,NA,3.1008,USD,AWS Pricing API,2025-11-30T08:58:11.482927 +AWS,ap-northeast-2,r7g.12xlarge,reserved_1y,all_upfront,2.613346,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:42.931342 +AWS,ap-northeast-2,r7g.12xlarge,reserved_1y,no_upfront,2.613346,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:23.652875 +AWS,ap-northeast-2,r7g.12xlarge,reserved_1y,partial_upfront,2.613346,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:09.319441 +AWS,ap-northeast-2,r7g.12xlarge,reserved_3y,all_upfront,1.306649,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:46.953256 +AWS,ap-northeast-2,r7g.12xlarge,reserved_3y,no_upfront,1.306649,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:25.925986 +AWS,ap-northeast-2,r7g.12xlarge,reserved_3y,partial_upfront,1.306649,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:21.109200 +AWS,ap-northeast-2,r7g.12xlarge,spot,NA,1.17924,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172098 +AWS,ap-northeast-2,r7g.16xlarge,on_demand,NA,4.1344,USD,AWS Pricing API,2025-11-30T08:57:56.725441 +AWS,ap-northeast-2,r7g.16xlarge,reserved_1y,all_upfront,2.1482,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:28.122820 +AWS,ap-northeast-2,r7g.16xlarge,reserved_1y,no_upfront,2.1482,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:08.855046 +AWS,ap-northeast-2,r7g.16xlarge,reserved_1y,partial_upfront,2.1482,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:54.639041 +AWS,ap-northeast-2,r7g.16xlarge,reserved_3y,all_upfront,2.1482,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:32.483150 +AWS,ap-northeast-2,r7g.16xlarge,reserved_3y,no_upfront,2.1482,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:10.909791 +AWS,ap-northeast-2,r7g.16xlarge,reserved_3y,partial_upfront,2.1482,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:06.496630 +AWS,ap-northeast-2,r7g.16xlarge,spot,NA,1.543499,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171756 +AWS,ap-northeast-2,r7g.2xlarge,on_demand,NA,0.5168,USD,AWS Pricing API,2025-11-30T08:58:04.839249 +AWS,ap-northeast-2,r7g.2xlarge,reserved_1y,all_upfront,0.3411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:36.301502 +AWS,ap-northeast-2,r7g.2xlarge,reserved_1y,no_upfront,0.3411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:16.998198 +AWS,ap-northeast-2,r7g.2xlarge,reserved_1y,partial_upfront,0.3411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:02.727225 +AWS,ap-northeast-2,r7g.2xlarge,reserved_3y,all_upfront,0.3411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:40.399478 +AWS,ap-northeast-2,r7g.2xlarge,reserved_3y,no_upfront,0.3411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:19.183059 +AWS,ap-northeast-2,r7g.2xlarge,reserved_3y,partial_upfront,0.3411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:14.570937 +AWS,ap-northeast-2,r7g.2xlarge,spot,NA,0.188393,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171948 +AWS,ap-northeast-2,r7g.4xlarge,on_demand,NA,1.0336,USD,AWS Pricing API,2025-11-30T08:57:55.386369 +AWS,ap-northeast-2,r7g.4xlarge,reserved_1y,all_upfront,0.636758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:26.781162 +AWS,ap-northeast-2,r7g.4xlarge,reserved_1y,no_upfront,0.636758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:07.511701 +AWS,ap-northeast-2,r7g.4xlarge,reserved_1y,partial_upfront,0.636758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:53.273266 +AWS,ap-northeast-2,r7g.4xlarge,reserved_3y,all_upfront,0.212253,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:31.163319 +AWS,ap-northeast-2,r7g.4xlarge,reserved_3y,no_upfront,0.212253,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:09.529321 +AWS,ap-northeast-2,r7g.4xlarge,reserved_3y,partial_upfront,0.212253,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:05.164861 +AWS,ap-northeast-2,r7g.4xlarge,spot,NA,0.376222,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171709 +AWS,ap-northeast-2,r7g.8xlarge,on_demand,NA,2.0672,USD,AWS Pricing API,2025-11-30T08:58:27.267826 +AWS,ap-northeast-2,r7g.8xlarge,reserved_1y,all_upfront,1.3644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:58.735537 +AWS,ap-northeast-2,r7g.8xlarge,reserved_1y,no_upfront,1.3644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:39.558853 +AWS,ap-northeast-2,r7g.8xlarge,reserved_1y,partial_upfront,1.3644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:25.104681 +AWS,ap-northeast-2,r7g.8xlarge,reserved_3y,all_upfront,1.3644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:02.675690 +AWS,ap-northeast-2,r7g.8xlarge,reserved_3y,no_upfront,1.3644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:41.981042 +AWS,ap-northeast-2,r7g.8xlarge,reserved_3y,partial_upfront,1.3644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:36.798439 +AWS,ap-northeast-2,r7g.8xlarge,spot,NA,0.797206,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172430 +AWS,ap-northeast-2,r7g.large,on_demand,NA,0.1292,USD,AWS Pricing API,2025-11-30T08:58:21.760809 +AWS,ap-northeast-2,r7g.large,reserved_1y,all_upfront,0.0937,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:53.236686 +AWS,ap-northeast-2,r7g.large,reserved_1y,no_upfront,0.0937,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:33.954522 +AWS,ap-northeast-2,r7g.large,reserved_1y,partial_upfront,0.0937,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:19.554117 +AWS,ap-northeast-2,r7g.large,reserved_3y,all_upfront,0.0937,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:57.211131 +AWS,ap-northeast-2,r7g.large,reserved_3y,no_upfront,0.0937,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:36.366757 +AWS,ap-northeast-2,r7g.large,reserved_3y,partial_upfront,0.0937,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:31.322290 +AWS,ap-northeast-2,r7g.large,spot,NA,0.047247,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172336 +AWS,ap-northeast-2,r7g.xlarge,on_demand,NA,0.2584,USD,AWS Pricing API,2025-11-30T08:58:24.171653 +AWS,ap-northeast-2,r7g.xlarge,reserved_1y,all_upfront,0.162364,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:55.642834 +AWS,ap-northeast-2,r7g.xlarge,reserved_1y,no_upfront,0.162364,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:36.400321 +AWS,ap-northeast-2,r7g.xlarge,reserved_1y,partial_upfront,0.162364,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:21.992582 +AWS,ap-northeast-2,r7g.xlarge,reserved_3y,all_upfront,0.108255,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:59.595888 +AWS,ap-northeast-2,r7g.xlarge,reserved_3y,no_upfront,0.108255,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:38.825731 +AWS,ap-northeast-2,r7g.xlarge,reserved_3y,partial_upfront,0.108255,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:33.731009 +AWS,ap-northeast-2,r7g.xlarge,spot,NA,0.086756,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172391 +AWS,ap-northeast-2,r7gd.12xlarge,on_demand,NA,3.925,USD,AWS Pricing API,2025-11-30T08:58:45.999208 +AWS,ap-northeast-2,r7gd.12xlarge,reserved_1y,all_upfront,3.140023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:17.361153 +AWS,ap-northeast-2,r7gd.12xlarge,reserved_1y,no_upfront,3.140023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:58.396262 +AWS,ap-northeast-2,r7gd.12xlarge,reserved_1y,partial_upfront,3.140023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:43.598156 +AWS,ap-northeast-2,r7gd.12xlarge,reserved_3y,all_upfront,1.570008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:20.920092 +AWS,ap-northeast-2,r7gd.12xlarge,reserved_3y,no_upfront,1.570008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:00.814115 +AWS,ap-northeast-2,r7gd.12xlarge,reserved_3y,partial_upfront,1.570008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:55.306137 +AWS,ap-northeast-2,r7gd.12xlarge,spot,NA,1.164386,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172854 +AWS,ap-northeast-2,r7gd.16xlarge,on_demand,NA,5.2333,USD,AWS Pricing API,2025-11-30T08:58:41.376677 +AWS,ap-northeast-2,r7gd.16xlarge,reserved_1y,all_upfront,5.036497,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:12.663337 +AWS,ap-northeast-2,r7gd.16xlarge,reserved_1y,no_upfront,5.036497,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:53.709282 +AWS,ap-northeast-2,r7gd.16xlarge,reserved_1y,partial_upfront,5.036497,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:38.999292 +AWS,ap-northeast-2,r7gd.16xlarge,reserved_3y,all_upfront,2.518232,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:16.363387 +AWS,ap-northeast-2,r7gd.16xlarge,reserved_3y,no_upfront,2.518232,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:56.123936 +AWS,ap-northeast-2,r7gd.16xlarge,reserved_3y,partial_upfront,2.518232,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:50.733840 +AWS,ap-northeast-2,r7gd.16xlarge,spot,NA,1.450822,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172728 +AWS,ap-northeast-2,r7gd.2xlarge,on_demand,NA,0.6542,USD,AWS Pricing API,2025-11-30T08:58:10.409442 +AWS,ap-northeast-2,r7gd.2xlarge,reserved_1y,all_upfront,0.473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:41.820152 +AWS,ap-northeast-2,r7gd.2xlarge,reserved_1y,no_upfront,0.473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:22.569528 +AWS,ap-northeast-2,r7gd.2xlarge,reserved_1y,partial_upfront,0.473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:08.251250 +AWS,ap-northeast-2,r7gd.2xlarge,reserved_3y,all_upfront,0.473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:45.886890 +AWS,ap-northeast-2,r7gd.2xlarge,reserved_3y,no_upfront,0.473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:24.819684 +AWS,ap-northeast-2,r7gd.2xlarge,reserved_3y,partial_upfront,0.473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:20.038243 +AWS,ap-northeast-2,r7gd.2xlarge,spot,NA,0.198515,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172115 +AWS,ap-northeast-2,r7gd.4xlarge,on_demand,NA,1.3083,USD,AWS Pricing API,2025-11-30T08:58:30.689304 +AWS,ap-northeast-2,r7gd.4xlarge,reserved_1y,all_upfront,1.259092,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:02.132048 +AWS,ap-northeast-2,r7gd.4xlarge,reserved_1y,no_upfront,1.259092,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:42.994675 +AWS,ap-northeast-2,r7gd.4xlarge,reserved_1y,partial_upfront,1.259092,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:28.520874 +AWS,ap-northeast-2,r7gd.4xlarge,reserved_3y,all_upfront,0.629564,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:05.996767 +AWS,ap-northeast-2,r7gd.4xlarge,reserved_3y,no_upfront,0.629564,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:45.432807 +AWS,ap-northeast-2,r7gd.4xlarge,reserved_3y,partial_upfront,0.629564,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:40.169273 +AWS,ap-northeast-2,r7gd.4xlarge,spot,NA,0.459925,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172551 +AWS,ap-northeast-2,r7gd.8xlarge,on_demand,NA,2.6166,USD,AWS Pricing API,2025-11-30T08:58:24.710588 +AWS,ap-northeast-2,r7gd.8xlarge,reserved_1y,all_upfront,1.8922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:56.178770 +AWS,ap-northeast-2,r7gd.8xlarge,reserved_1y,no_upfront,1.8922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:36.938575 +AWS,ap-northeast-2,r7gd.8xlarge,reserved_1y,partial_upfront,1.8922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:22.540341 +AWS,ap-northeast-2,r7gd.8xlarge,reserved_3y,all_upfront,1.8922,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:00.135952 +AWS,ap-northeast-2,r7gd.8xlarge,reserved_3y,no_upfront,1.8922,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:39.369768 +AWS,ap-northeast-2,r7gd.8xlarge,reserved_3y,partial_upfront,1.8922,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:34.263927 +AWS,ap-northeast-2,r7gd.8xlarge,spot,NA,0.798991,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172387 +AWS,ap-northeast-2,r7gd.large,on_demand,NA,0.1635,USD,AWS Pricing API,2025-11-30T08:57:49.154202 +AWS,ap-northeast-2,r7gd.large,reserved_1y,all_upfront,0.110388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:20.488285 +AWS,ap-northeast-2,r7gd.large,reserved_1y,no_upfront,0.110388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:01.192757 +AWS,ap-northeast-2,r7gd.large,reserved_1y,partial_upfront,0.110388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:47.000095 +AWS,ap-northeast-2,r7gd.large,reserved_3y,all_upfront,0.036796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:25.068360 +AWS,ap-northeast-2,r7gd.large,reserved_3y,no_upfront,0.036796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:03.172493 +AWS,ap-northeast-2,r7gd.large,reserved_3y,partial_upfront,0.036796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:58.944613 +AWS,ap-northeast-2,r7gd.large,spot,NA,0.049886,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171601 +AWS,ap-northeast-2,r7gd.xlarge,on_demand,NA,0.3271,USD,AWS Pricing API,2025-11-30T08:57:58.609849 +AWS,ap-northeast-2,r7gd.xlarge,reserved_1y,all_upfront,0.191895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:30.096467 +AWS,ap-northeast-2,r7gd.xlarge,reserved_1y,no_upfront,0.191895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:10.762833 +AWS,ap-northeast-2,r7gd.xlarge,reserved_1y,partial_upfront,0.191895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:56.522737 +AWS,ap-northeast-2,r7gd.xlarge,reserved_3y,all_upfront,0.063965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:34.337393 +AWS,ap-northeast-2,r7gd.xlarge,reserved_3y,no_upfront,0.063965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:12.845593 +AWS,ap-northeast-2,r7gd.xlarge,reserved_3y,partial_upfront,0.063965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:08.401271 +AWS,ap-northeast-2,r7gd.xlarge,spot,NA,0.102647,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171830 +AWS,ap-northeast-2,r7i.12xlarge,on_demand,NA,3.8304,USD,AWS Pricing API,2025-11-30T08:58:33.697571 +AWS,ap-northeast-2,r7i.12xlarge,reserved_1y,all_upfront,2.7783,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:05.122645 +AWS,ap-northeast-2,r7i.12xlarge,reserved_1y,no_upfront,2.7783,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:46.007840 +AWS,ap-northeast-2,r7i.12xlarge,reserved_1y,partial_upfront,2.7783,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:31.513447 +AWS,ap-northeast-2,r7i.12xlarge,reserved_3y,all_upfront,2.7783,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:08.927331 +AWS,ap-northeast-2,r7i.12xlarge,reserved_3y,no_upfront,2.7783,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:48.480249 +AWS,ap-northeast-2,r7i.12xlarge,reserved_3y,partial_upfront,2.7783,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:43.131035 +AWS,ap-northeast-2,r7i.12xlarge,spot,NA,1.589176,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172603 +AWS,ap-northeast-2,r7i.16xlarge,on_demand,NA,5.1072,USD,AWS Pricing API,2025-11-30T08:58:31.790157 +AWS,ap-northeast-2,r7i.16xlarge,reserved_1y,all_upfront,3.146233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:03.223458 +AWS,ap-northeast-2,r7i.16xlarge,reserved_1y,no_upfront,3.146233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:44.087122 +AWS,ap-northeast-2,r7i.16xlarge,reserved_1y,partial_upfront,3.146233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:29.619482 +AWS,ap-northeast-2,r7i.16xlarge,reserved_3y,all_upfront,1.048744,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:07.072400 +AWS,ap-northeast-2,r7i.16xlarge,reserved_3y,no_upfront,1.048744,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:46.534511 +AWS,ap-northeast-2,r7i.16xlarge,reserved_3y,partial_upfront,1.048744,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:41.248576 +AWS,ap-northeast-2,r7i.16xlarge,spot,NA,1.967087,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172555 +AWS,ap-northeast-2,r7i.24xlarge,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T08:58:28.489983 +AWS,ap-northeast-2,r7i.24xlarge,reserved_1y,all_upfront,5.5566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:59.950450 +AWS,ap-northeast-2,r7i.24xlarge,reserved_1y,no_upfront,5.5566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:40.797175 +AWS,ap-northeast-2,r7i.24xlarge,reserved_1y,partial_upfront,5.5566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:26.320530 +AWS,ap-northeast-2,r7i.24xlarge,reserved_3y,all_upfront,5.5566,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:03.869938 +AWS,ap-northeast-2,r7i.24xlarge,reserved_3y,no_upfront,5.5566,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:43.220374 +AWS,ap-northeast-2,r7i.24xlarge,reserved_3y,partial_upfront,5.5566,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:38.010214 +AWS,ap-northeast-2,r7i.24xlarge,spot,NA,2.957134,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172463 +AWS,ap-northeast-2,r7i.2xlarge,on_demand,NA,0.6384,USD,AWS Pricing API,2025-11-30T08:58:30.823285 +AWS,ap-northeast-2,r7i.2xlarge,reserved_1y,all_upfront,0.441048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:02.270842 +AWS,ap-northeast-2,r7i.2xlarge,reserved_1y,no_upfront,0.441048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:43.131646 +AWS,ap-northeast-2,r7i.2xlarge,reserved_1y,partial_upfront,0.441048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:28.665212 +AWS,ap-northeast-2,r7i.2xlarge,reserved_3y,all_upfront,0.294016,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:06.129873 +AWS,ap-northeast-2,r7i.2xlarge,reserved_3y,no_upfront,0.294016,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:45.569036 +AWS,ap-northeast-2,r7i.2xlarge,reserved_3y,partial_upfront,0.294016,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:40.304025 +AWS,ap-northeast-2,r7i.2xlarge,spot,NA,0.250883,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172547 +AWS,ap-northeast-2,r7i.48xlarge,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T08:58:51.351508 +AWS,ap-northeast-2,r7i.48xlarge,reserved_1y,all_upfront,11.11321,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:22.731977 +AWS,ap-northeast-2,r7i.48xlarge,reserved_1y,no_upfront,11.11321,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:03.848617 +AWS,ap-northeast-2,r7i.48xlarge,reserved_1y,partial_upfront,11.11321,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:48.969244 +AWS,ap-northeast-2,r7i.48xlarge,reserved_3y,all_upfront,11.11321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:26.326313 +AWS,ap-northeast-2,r7i.48xlarge,reserved_3y,no_upfront,11.11321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:06.325111 +AWS,ap-northeast-2,r7i.48xlarge,reserved_3y,partial_upfront,11.11321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:00.656657 +AWS,ap-northeast-2,r7i.48xlarge,spot,NA,5.159196,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172960 +AWS,ap-northeast-2,r7i.4xlarge,on_demand,NA,1.2768,USD,AWS Pricing API,2025-11-30T08:58:28.350993 +AWS,ap-northeast-2,r7i.4xlarge,reserved_1y,all_upfront,0.802566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:59.813737 +AWS,ap-northeast-2,r7i.4xlarge,reserved_1y,no_upfront,0.802566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:40.663459 +AWS,ap-northeast-2,r7i.4xlarge,reserved_1y,partial_upfront,0.802566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:26.185986 +AWS,ap-northeast-2,r7i.4xlarge,reserved_3y,all_upfront,0.535062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:03.737149 +AWS,ap-northeast-2,r7i.4xlarge,reserved_3y,no_upfront,0.535062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:43.083281 +AWS,ap-northeast-2,r7i.4xlarge,reserved_3y,partial_upfront,0.535062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:37.876934 +AWS,ap-northeast-2,r7i.4xlarge,spot,NA,0.569362,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172467 +AWS,ap-northeast-2,r7i.8xlarge,on_demand,NA,2.5536,USD,AWS Pricing API,2025-11-30T08:57:45.180270 +AWS,ap-northeast-2,r7i.8xlarge,reserved_1y,all_upfront,3.611644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:16.564853 +AWS,ap-northeast-2,r7i.8xlarge,reserved_1y,no_upfront,3.611644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:57.185127 +AWS,ap-northeast-2,r7i.8xlarge,reserved_1y,partial_upfront,3.611644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:43.107244 +AWS,ap-northeast-2,r7i.8xlarge,reserved_3y,all_upfront,1.203881,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:21.227099 +AWS,ap-northeast-2,r7i.8xlarge,reserved_3y,no_upfront,1.203881,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:59.118098 +AWS,ap-northeast-2,r7i.8xlarge,reserved_3y,partial_upfront,1.203881,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:55.031009 +AWS,ap-northeast-2,r7i.8xlarge,spot,NA,1.1058,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171493 +AWS,ap-northeast-2,r7i.large,on_demand,NA,0.1596,USD,AWS Pricing API,2025-11-30T08:57:59.426913 +AWS,ap-northeast-2,r7i.large,reserved_1y,all_upfront,0.225685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:30.908072 +AWS,ap-northeast-2,r7i.large,reserved_1y,no_upfront,0.225685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:11.575161 +AWS,ap-northeast-2,r7i.large,reserved_1y,partial_upfront,0.225685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:57.336292 +AWS,ap-northeast-2,r7i.large,reserved_3y,all_upfront,0.075228,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:35.140520 +AWS,ap-northeast-2,r7i.large,reserved_3y,no_upfront,0.075228,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:13.676433 +AWS,ap-northeast-2,r7i.large,reserved_3y,partial_upfront,0.075228,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:09.212914 +AWS,ap-northeast-2,r7i.large,spot,NA,0.054073,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171847 +AWS,ap-northeast-2,r7i.metal-24xl,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T08:58:15.549120 +AWS,ap-northeast-2,r7i.metal-24xl,reserved_1y,all_upfront,5.05652,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:47.034165 +AWS,ap-northeast-2,r7i.metal-24xl,reserved_1y,no_upfront,5.05652,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:27.732598 +AWS,ap-northeast-2,r7i.metal-24xl,reserved_1y,partial_upfront,5.05652,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:13.366133 +AWS,ap-northeast-2,r7i.metal-24xl,reserved_3y,all_upfront,5.05652,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:51.086412 +AWS,ap-northeast-2,r7i.metal-24xl,reserved_3y,no_upfront,5.05652,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:30.060885 +AWS,ap-northeast-2,r7i.metal-24xl,reserved_3y,partial_upfront,5.05652,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:25.152370 +AWS,ap-northeast-2,r7i.metal-24xl,spot,NA,2.733265,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172191 +AWS,ap-northeast-2,r7i.metal-48xl,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T08:58:35.182180 +AWS,ap-northeast-2,r7i.metal-48xl,reserved_1y,all_upfront,12.912471,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:06.604171 +AWS,ap-northeast-2,r7i.metal-48xl,reserved_1y,no_upfront,12.912471,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:47.532814 +AWS,ap-northeast-2,r7i.metal-48xl,reserved_1y,partial_upfront,12.912471,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:32.980520 +AWS,ap-northeast-2,r7i.metal-48xl,reserved_3y,all_upfront,6.45623,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:10.389541 +AWS,ap-northeast-2,r7i.metal-48xl,reserved_3y,no_upfront,6.45623,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:50.000410 +AWS,ap-northeast-2,r7i.metal-48xl,reserved_3y,partial_upfront,6.45623,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:44.621064 +AWS,ap-northeast-2,r7i.metal-48xl,spot,NA,5.0149,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172647 +AWS,ap-northeast-2,r7i.xlarge,on_demand,NA,0.3192,USD,AWS Pricing API,2025-11-30T08:58:10.940183 +AWS,ap-northeast-2,r7i.xlarge,reserved_1y,all_upfront,0.14526,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:42.370006 +AWS,ap-northeast-2,r7i.xlarge,reserved_1y,no_upfront,0.14526,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:23.109255 +AWS,ap-northeast-2,r7i.xlarge,reserved_1y,partial_upfront,0.14526,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:08.783764 +AWS,ap-northeast-2,r7i.xlarge,reserved_3y,all_upfront,0.14526,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:46.419861 +AWS,ap-northeast-2,r7i.xlarge,reserved_3y,no_upfront,0.14526,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:25.367242 +AWS,ap-northeast-2,r7i.xlarge,reserved_3y,partial_upfront,0.14526,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:20.570938 +AWS,ap-northeast-2,r7i.xlarge,spot,NA,0.126591,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172111 +AWS,ap-northeast-2,r8g.12xlarge,on_demand,NA,3.41088,USD,AWS Pricing API,2025-11-30T08:58:17.732634 +AWS,ap-northeast-2,r8g.12xlarge,reserved_1y,all_upfront,2.309132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:49.179677 +AWS,ap-northeast-2,r8g.12xlarge,reserved_1y,no_upfront,2.309132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:29.893044 +AWS,ap-northeast-2,r8g.12xlarge,reserved_1y,partial_upfront,2.309132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:15.515646 +AWS,ap-northeast-2,r8g.12xlarge,reserved_3y,all_upfront,0.769711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:53.217908 +AWS,ap-northeast-2,r8g.12xlarge,reserved_3y,no_upfront,0.769711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:32.235571 +AWS,ap-northeast-2,r8g.12xlarge,reserved_3y,partial_upfront,0.769711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:27.313171 +AWS,ap-northeast-2,r8g.12xlarge,spot,NA,1.147042,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172256 +AWS,ap-northeast-2,r8g.16xlarge,on_demand,NA,4.54784,USD,AWS Pricing API,2025-11-30T08:58:40.722026 +AWS,ap-northeast-2,r8g.16xlarge,reserved_1y,all_upfront,3.29873,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:12.119734 +AWS,ap-northeast-2,r8g.16xlarge,reserved_1y,no_upfront,3.29873,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:53.172622 +AWS,ap-northeast-2,r8g.16xlarge,reserved_1y,partial_upfront,3.29873,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:38.463019 +AWS,ap-northeast-2,r8g.16xlarge,reserved_3y,all_upfront,3.29873,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:15.811271 +AWS,ap-northeast-2,r8g.16xlarge,reserved_3y,no_upfront,3.29873,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:55.578887 +AWS,ap-northeast-2,r8g.16xlarge,reserved_3y,partial_upfront,3.29873,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:50.192846 +AWS,ap-northeast-2,r8g.16xlarge,spot,NA,1.474151,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172721 +AWS,ap-northeast-2,r8g.24xlarge,on_demand,NA,6.82176,USD,AWS Pricing API,2025-11-30T08:58:09.061884 +AWS,ap-northeast-2,r8g.24xlarge,reserved_1y,all_upfront,5.749326,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:40.479197 +AWS,ap-northeast-2,r8g.24xlarge,reserved_1y,no_upfront,5.749326,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:21.206850 +AWS,ap-northeast-2,r8g.24xlarge,reserved_1y,partial_upfront,5.749326,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:06.898826 +AWS,ap-northeast-2,r8g.24xlarge,reserved_3y,all_upfront,2.874669,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:44.564853 +AWS,ap-northeast-2,r8g.24xlarge,reserved_3y,no_upfront,2.874669,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:23.448134 +AWS,ap-northeast-2,r8g.24xlarge,reserved_3y,partial_upfront,2.874669,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:18.710172 +AWS,ap-northeast-2,r8g.24xlarge,spot,NA,2.177744,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172082 +AWS,ap-northeast-2,r8g.2xlarge,on_demand,NA,0.56848,USD,AWS Pricing API,2025-11-30T08:58:21.486330 +AWS,ap-northeast-2,r8g.2xlarge,reserved_1y,all_upfront,0.479141,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:52.967201 +AWS,ap-northeast-2,r8g.2xlarge,reserved_1y,no_upfront,0.479141,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:33.681336 +AWS,ap-northeast-2,r8g.2xlarge,reserved_1y,partial_upfront,0.479141,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:19.278893 +AWS,ap-northeast-2,r8g.2xlarge,reserved_3y,all_upfront,0.239567,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:56.944253 +AWS,ap-northeast-2,r8g.2xlarge,reserved_3y,no_upfront,0.239567,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:36.090980 +AWS,ap-northeast-2,r8g.2xlarge,reserved_3y,partial_upfront,0.239567,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:31.056165 +AWS,ap-northeast-2,r8g.2xlarge,spot,NA,0.224777,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172355 +AWS,ap-northeast-2,r8g.48xlarge,on_demand,NA,13.64352,USD,AWS Pricing API,2025-11-30T08:58:07.564401 +AWS,ap-northeast-2,r8g.48xlarge,reserved_1y,all_upfront,11.498777,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:38.991564 +AWS,ap-northeast-2,r8g.48xlarge,reserved_1y,no_upfront,11.498777,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:19.718399 +AWS,ap-northeast-2,r8g.48xlarge,reserved_1y,partial_upfront,11.498777,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:05.416800 +AWS,ap-northeast-2,r8g.48xlarge,reserved_3y,all_upfront,5.749386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:43.068197 +AWS,ap-northeast-2,r8g.48xlarge,reserved_3y,no_upfront,5.749386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:21.947733 +AWS,ap-northeast-2,r8g.48xlarge,reserved_3y,partial_upfront,5.749386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:17.246896 +AWS,ap-northeast-2,r8g.48xlarge,spot,NA,4.370198,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171997 +AWS,ap-northeast-2,r8g.4xlarge,on_demand,NA,1.13696,USD,AWS Pricing API,2025-11-30T08:58:25.923665 +AWS,ap-northeast-2,r8g.4xlarge,reserved_1y,all_upfront,0.958281,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:57.383526 +AWS,ap-northeast-2,r8g.4xlarge,reserved_1y,no_upfront,0.958281,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:38.164556 +AWS,ap-northeast-2,r8g.4xlarge,reserved_1y,partial_upfront,0.958281,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:23.753055 +AWS,ap-northeast-2,r8g.4xlarge,reserved_3y,all_upfront,0.479134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:01.319518 +AWS,ap-northeast-2,r8g.4xlarge,reserved_3y,no_upfront,0.479134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:40.607188 +AWS,ap-northeast-2,r8g.4xlarge,reserved_3y,partial_upfront,0.479134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:35.466588 +AWS,ap-northeast-2,r8g.4xlarge,spot,NA,0.421358,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172414 +AWS,ap-northeast-2,r8g.8xlarge,on_demand,NA,2.27392,USD,AWS Pricing API,2025-11-30T08:57:46.674204 +AWS,ap-northeast-2,r8g.8xlarge,reserved_1y,all_upfront,1.64937,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:18.048427 +AWS,ap-northeast-2,r8g.8xlarge,reserved_1y,no_upfront,1.64937,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:58.709630 +AWS,ap-northeast-2,r8g.8xlarge,reserved_1y,partial_upfront,1.64937,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:44.582512 +AWS,ap-northeast-2,r8g.8xlarge,reserved_3y,all_upfront,1.64937,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:22.683711 +AWS,ap-northeast-2,r8g.8xlarge,reserved_3y,no_upfront,1.64937,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:00.630659 +AWS,ap-northeast-2,r8g.8xlarge,reserved_3y,partial_upfront,1.64937,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:56.510705 +AWS,ap-northeast-2,r8g.8xlarge,spot,NA,0.848078,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171534 +AWS,ap-northeast-2,r8g.large,on_demand,NA,0.14212,USD,AWS Pricing API,2025-11-30T08:58:24.438930 +AWS,ap-northeast-2,r8g.large,reserved_1y,all_upfront,0.089305,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:55.908554 +AWS,ap-northeast-2,r8g.large,reserved_1y,no_upfront,0.089305,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:36.669164 +AWS,ap-northeast-2,r8g.large,reserved_1y,partial_upfront,0.089305,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:22.267201 +AWS,ap-northeast-2,r8g.large,reserved_3y,all_upfront,0.059548,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:59.864382 +AWS,ap-northeast-2,r8g.large,reserved_3y,no_upfront,0.059548,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:39.097158 +AWS,ap-northeast-2,r8g.large,reserved_3y,partial_upfront,0.059548,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:33.994117 +AWS,ap-northeast-2,r8g.large,spot,NA,0.05182,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172398 +AWS,ap-northeast-2,r8g.xlarge,on_demand,NA,0.28424,USD,AWS Pricing API,2025-11-30T08:58:07.139844 +AWS,ap-northeast-2,r8g.xlarge,reserved_1y,all_upfront,0.178724,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:38.583211 +AWS,ap-northeast-2,r8g.xlarge,reserved_1y,no_upfront,0.178724,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:12:19.307301 +AWS,ap-northeast-2,r8g.xlarge,reserved_1y,partial_upfront,0.178724,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:05.012950 +AWS,ap-northeast-2,r8g.xlarge,reserved_3y,all_upfront,0.119135,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:42.668240 +AWS,ap-northeast-2,r8g.xlarge,reserved_3y,no_upfront,0.119135,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:17:21.529526 +AWS,ap-northeast-2,r8g.xlarge,reserved_3y,partial_upfront,0.119135,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:39:16.840981 +AWS,ap-northeast-2,r8g.xlarge,spot,NA,0.114893,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.172009 +AWS,ap-northeast-2,z1d.12xlarge,on_demand,NA,5.4,USD,AWS Pricing API,2025-11-30T08:57:36.339581 +AWS,ap-northeast-2,z1d.12xlarge,reserved_1y,all_upfront,3.642922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:07.943118 +AWS,ap-northeast-2,z1d.12xlarge,reserved_1y,no_upfront,3.642922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:48.333131 +AWS,ap-northeast-2,z1d.12xlarge,reserved_1y,partial_upfront,3.642922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:34.449063 +AWS,ap-northeast-2,z1d.12xlarge,reserved_3y,all_upfront,1.214307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:12.735658 +AWS,ap-northeast-2,z1d.12xlarge,reserved_3y,no_upfront,1.214307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:50.271930 +AWS,ap-northeast-2,z1d.12xlarge,reserved_3y,partial_upfront,1.214307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:46.416019 +AWS,ap-northeast-2,z1d.12xlarge,spot,NA,2.233112,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171321 +AWS,ap-northeast-2,z1d.2xlarge,on_demand,NA,0.9,USD,AWS Pricing API,2025-11-30T08:57:39.793248 +AWS,ap-northeast-2,z1d.2xlarge,reserved_1y,all_upfront,1.17363,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:11.320466 +AWS,ap-northeast-2,z1d.2xlarge,reserved_1y,no_upfront,1.17363,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:51.794339 +AWS,ap-northeast-2,z1d.2xlarge,reserved_1y,partial_upfront,1.17363,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:37.866812 +AWS,ap-northeast-2,z1d.2xlarge,reserved_3y,all_upfront,0.39121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:16.055463 +AWS,ap-northeast-2,z1d.2xlarge,reserved_3y,no_upfront,0.39121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:53.738761 +AWS,ap-northeast-2,z1d.2xlarge,reserved_3y,partial_upfront,0.39121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:49.808579 +AWS,ap-northeast-2,z1d.2xlarge,spot,NA,0.376183,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171405 +AWS,ap-northeast-2,z1d.3xlarge,on_demand,NA,1.35,USD,AWS Pricing API,2025-11-30T08:57:38.678286 +AWS,ap-northeast-2,z1d.3xlarge,reserved_1y,all_upfront,0.851,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:10.236972 +AWS,ap-northeast-2,z1d.3xlarge,reserved_1y,no_upfront,0.851,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:50.666269 +AWS,ap-northeast-2,z1d.3xlarge,reserved_1y,partial_upfront,0.851,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:36.787634 +AWS,ap-northeast-2,z1d.3xlarge,reserved_3y,all_upfront,0.851,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:14.995018 +AWS,ap-northeast-2,z1d.3xlarge,reserved_3y,no_upfront,0.851,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:52.638790 +AWS,ap-northeast-2,z1d.3xlarge,reserved_3y,partial_upfront,0.851,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:48.724928 +AWS,ap-northeast-2,z1d.3xlarge,spot,NA,0.537746,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171366 +AWS,ap-northeast-2,z1d.6xlarge,on_demand,NA,2.7,USD,AWS Pricing API,2025-11-30T08:57:38.814695 +AWS,ap-northeast-2,z1d.6xlarge,reserved_1y,all_upfront,1.952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:10.371588 +AWS,ap-northeast-2,z1d.6xlarge,reserved_1y,no_upfront,1.952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:50.813093 +AWS,ap-northeast-2,z1d.6xlarge,reserved_1y,partial_upfront,1.952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:36.932324 +AWS,ap-northeast-2,z1d.6xlarge,reserved_3y,all_upfront,1.952,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:15.128990 +AWS,ap-northeast-2,z1d.6xlarge,reserved_3y,no_upfront,1.952,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:52.772842 +AWS,ap-northeast-2,z1d.6xlarge,reserved_3y,partial_upfront,1.952,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:48.861740 +AWS,ap-northeast-2,z1d.6xlarge,spot,NA,0.962217,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171371 +AWS,ap-northeast-2,z1d.large,on_demand,NA,0.225,USD,AWS Pricing API,2025-11-30T08:57:39.098401 +AWS,ap-northeast-2,z1d.large,reserved_1y,all_upfront,0.163,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:10.644645 +AWS,ap-northeast-2,z1d.large,reserved_1y,no_upfront,0.163,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:51.110929 +AWS,ap-northeast-2,z1d.large,reserved_1y,partial_upfront,0.163,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:37.201118 +AWS,ap-northeast-2,z1d.large,reserved_3y,all_upfront,0.163,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:15.391913 +AWS,ap-northeast-2,z1d.large,reserved_3y,no_upfront,0.163,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:53.048844 +AWS,ap-northeast-2,z1d.large,reserved_3y,partial_upfront,0.163,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:49.129437 +AWS,ap-northeast-2,z1d.large,spot,NA,0.075738,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171410 +AWS,ap-northeast-2,z1d.xlarge,on_demand,NA,0.45,USD,AWS Pricing API,2025-11-30T08:57:40.078868 +AWS,ap-northeast-2,z1d.xlarge,reserved_1y,all_upfront,0.270046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:11.590360 +AWS,ap-northeast-2,z1d.xlarge,reserved_1y,no_upfront,0.270046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:52.074464 +AWS,ap-northeast-2,z1d.xlarge,reserved_1y,partial_upfront,0.270046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:38.133870 +AWS,ap-northeast-2,z1d.xlarge,reserved_3y,all_upfront,0.180015,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:16.328450 +AWS,ap-northeast-2,z1d.xlarge,reserved_3y,no_upfront,0.180015,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:54.016528 +AWS,ap-northeast-2,z1d.xlarge,reserved_3y,partial_upfront,0.180015,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:50.088056 +AWS,ap-northeast-2,z1d.xlarge,spot,NA,0.158287,USD,AWS EC2 API (90-day avg),2025-11-30T09:32:08.171414 +AWS,ap-south-1,c5.12xlarge,on_demand,NA,2.04,USD,AWS Pricing API,2025-11-30T08:57:13.107523 +AWS,ap-south-1,c5.12xlarge,reserved_1y,all_upfront,1.285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:44.537382 +AWS,ap-south-1,c5.12xlarge,reserved_1y,no_upfront,1.285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:24.749383 +AWS,ap-south-1,c5.12xlarge,reserved_1y,partial_upfront,1.285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:11.207039 +AWS,ap-south-1,c5.12xlarge,reserved_3y,all_upfront,1.285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:49.678643 +AWS,ap-south-1,c5.12xlarge,reserved_3y,no_upfront,1.285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:26.345162 +AWS,ap-south-1,c5.12xlarge,reserved_3y,partial_upfront,1.285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:23.172377 +AWS,ap-south-1,c5.12xlarge,spot,NA,0.524792,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340387 +AWS,ap-south-1,c5.18xlarge,on_demand,NA,3.06,USD,AWS Pricing API,2025-11-30T08:57:21.429880 +AWS,ap-south-1,c5.18xlarge,reserved_1y,all_upfront,4.324543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:52.914547 +AWS,ap-south-1,c5.18xlarge,reserved_1y,no_upfront,4.324543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:33.226740 +AWS,ap-south-1,c5.18xlarge,reserved_1y,partial_upfront,4.324543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:19.548400 +AWS,ap-south-1,c5.18xlarge,reserved_3y,all_upfront,1.441514,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:57.925130 +AWS,ap-south-1,c5.18xlarge,reserved_3y,no_upfront,1.441514,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:35.064915 +AWS,ap-south-1,c5.18xlarge,reserved_3y,partial_upfront,1.441514,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:31.492438 +AWS,ap-south-1,c5.18xlarge,spot,NA,0.605112,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340562 +AWS,ap-south-1,c5.24xlarge,on_demand,NA,4.08,USD,AWS Pricing API,2025-11-30T08:56:26.162724 +AWS,ap-south-1,c5.24xlarge,reserved_1y,all_upfront,3.172,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:57.880559 +AWS,ap-south-1,c5.24xlarge,reserved_1y,no_upfront,3.172,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:37.575789 +AWS,ap-south-1,c5.24xlarge,reserved_1y,partial_upfront,3.172,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:24.598968 +AWS,ap-south-1,c5.24xlarge,reserved_3y,all_upfront,3.172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:03.922921 +AWS,ap-south-1,c5.24xlarge,reserved_3y,no_upfront,3.172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:38.799934 +AWS,ap-south-1,c5.24xlarge,reserved_3y,partial_upfront,3.172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:36.778858 +AWS,ap-south-1,c5.24xlarge,spot,NA,0.781063,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339296 +AWS,ap-south-1,c5.4xlarge,on_demand,NA,0.68,USD,AWS Pricing API,2025-11-30T08:57:05.859123 +AWS,ap-south-1,c5.4xlarge,reserved_1y,all_upfront,0.960959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:37.351106 +AWS,ap-south-1,c5.4xlarge,reserved_1y,no_upfront,0.960959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:17.517663 +AWS,ap-south-1,c5.4xlarge,reserved_1y,partial_upfront,0.960959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:04.050439 +AWS,ap-south-1,c5.4xlarge,reserved_3y,all_upfront,0.32032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:42.656252 +AWS,ap-south-1,c5.4xlarge,reserved_3y,no_upfront,0.32032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:19.053308 +AWS,ap-south-1,c5.4xlarge,reserved_3y,partial_upfront,0.32032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:16.041421 +AWS,ap-south-1,c5.4xlarge,spot,NA,0.188911,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340209 +AWS,ap-south-1,c5.9xlarge,on_demand,NA,1.53,USD,AWS Pricing API,2025-11-30T08:56:25.474810 +AWS,ap-south-1,c5.9xlarge,reserved_1y,all_upfront,0.918018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:57.214273 +AWS,ap-south-1,c5.9xlarge,reserved_1y,no_upfront,0.918018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:36.898116 +AWS,ap-south-1,c5.9xlarge,reserved_1y,partial_upfront,0.918018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:23.930668 +AWS,ap-south-1,c5.9xlarge,reserved_3y,all_upfront,0.612006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:03.257877 +AWS,ap-south-1,c5.9xlarge,reserved_3y,no_upfront,0.612006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:38.088384 +AWS,ap-south-1,c5.9xlarge,reserved_3y,partial_upfront,0.612006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:36.108950 +AWS,ap-south-1,c5.9xlarge,spot,NA,0.479711,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339305 +AWS,ap-south-1,c5a.12xlarge,on_demand,NA,1.128,USD,AWS Pricing API,2025-11-30T08:57:21.964914 +AWS,ap-south-1,c5a.12xlarge,reserved_1y,all_upfront,0.663242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:53.456648 +AWS,ap-south-1,c5a.12xlarge,reserved_1y,no_upfront,0.663242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:33.771793 +AWS,ap-south-1,c5a.12xlarge,reserved_1y,partial_upfront,0.663242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:20.088117 +AWS,ap-south-1,c5a.12xlarge,reserved_3y,all_upfront,0.221081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:58.462306 +AWS,ap-south-1,c5a.12xlarge,reserved_3y,no_upfront,0.221081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:35.609986 +AWS,ap-south-1,c5a.12xlarge,reserved_3y,partial_upfront,0.221081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:32.024596 +AWS,ap-south-1,c5a.12xlarge,spot,NA,0.513732,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340566 +AWS,ap-south-1,c5a.16xlarge,on_demand,NA,1.504,USD,AWS Pricing API,2025-11-30T08:56:41.449295 +AWS,ap-south-1,c5a.16xlarge,reserved_1y,all_upfront,1.203397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:13.172431 +AWS,ap-south-1,c5a.16xlarge,reserved_1y,no_upfront,1.203397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:52.932174 +AWS,ap-south-1,c5a.16xlarge,reserved_1y,partial_upfront,1.203397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:39.811213 +AWS,ap-south-1,c5a.16xlarge,reserved_3y,all_upfront,0.601799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:18.912468 +AWS,ap-south-1,c5a.16xlarge,reserved_3y,no_upfront,0.601799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:54.405918 +AWS,ap-south-1,c5a.16xlarge,reserved_3y,partial_upfront,0.601799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:51.954616 +AWS,ap-south-1,c5a.16xlarge,spot,NA,0.629181,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339596 +AWS,ap-south-1,c5a.24xlarge,on_demand,NA,2.256,USD,AWS Pricing API,2025-11-30T08:57:28.171908 +AWS,ap-south-1,c5a.24xlarge,reserved_1y,all_upfront,1.671845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:59.669300 +AWS,ap-south-1,c5a.24xlarge,reserved_1y,no_upfront,1.671845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:40.022579 +AWS,ap-south-1,c5a.24xlarge,reserved_1y,partial_upfront,1.671845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:26.264036 +AWS,ap-south-1,c5a.24xlarge,reserved_3y,all_upfront,1.114615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:04.647746 +AWS,ap-south-1,c5a.24xlarge,reserved_3y,no_upfront,1.114615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:41.940762 +AWS,ap-south-1,c5a.24xlarge,reserved_3y,partial_upfront,1.114615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:38.267206 +AWS,ap-south-1,c5a.24xlarge,spot,NA,0.759586,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340706 +AWS,ap-south-1,c5a.2xlarge,on_demand,NA,0.188,USD,AWS Pricing API,2025-11-30T08:57:11.272771 +AWS,ap-south-1,c5a.2xlarge,reserved_1y,all_upfront,0.146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:42.787555 +AWS,ap-south-1,c5a.2xlarge,reserved_1y,no_upfront,0.146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:22.944374 +AWS,ap-south-1,c5a.2xlarge,reserved_1y,partial_upfront,0.146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:09.448280 +AWS,ap-south-1,c5a.2xlarge,reserved_3y,all_upfront,0.146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:47.934342 +AWS,ap-south-1,c5a.2xlarge,reserved_3y,no_upfront,0.146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:24.545445 +AWS,ap-south-1,c5a.2xlarge,reserved_3y,partial_upfront,0.146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:21.418632 +AWS,ap-south-1,c5a.2xlarge,spot,NA,0.099116,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340310 +AWS,ap-south-1,c5a.4xlarge,on_demand,NA,0.376,USD,AWS Pricing API,2025-11-30T08:56:44.044168 +AWS,ap-south-1,c5a.4xlarge,reserved_1y,all_upfront,0.293,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:15.734529 +AWS,ap-south-1,c5a.4xlarge,reserved_1y,no_upfront,0.293,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:55.527789 +AWS,ap-south-1,c5a.4xlarge,reserved_1y,partial_upfront,0.293,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:42.367013 +AWS,ap-south-1,c5a.4xlarge,reserved_3y,all_upfront,0.293,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:21.413931 +AWS,ap-south-1,c5a.4xlarge,reserved_3y,no_upfront,0.293,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:57.020685 +AWS,ap-south-1,c5a.4xlarge,reserved_3y,partial_upfront,0.293,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:54.496340 +AWS,ap-south-1,c5a.4xlarge,spot,NA,0.18589,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339693 +AWS,ap-south-1,c5a.8xlarge,on_demand,NA,0.752,USD,AWS Pricing API,2025-11-30T08:56:36.706408 +AWS,ap-south-1,c5a.8xlarge,reserved_1y,all_upfront,0.601256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:08.449642 +AWS,ap-south-1,c5a.8xlarge,reserved_1y,no_upfront,0.601256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:48.167665 +AWS,ap-south-1,c5a.8xlarge,reserved_1y,partial_upfront,0.601256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:35.062670 +AWS,ap-south-1,c5a.8xlarge,reserved_3y,all_upfront,0.300419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:14.276213 +AWS,ap-south-1,c5a.8xlarge,reserved_3y,no_upfront,0.300419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:49.592542 +AWS,ap-south-1,c5a.8xlarge,reserved_3y,partial_upfront,0.300419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:47.265502 +AWS,ap-south-1,c5a.8xlarge,spot,NA,0.298095,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339506 +AWS,ap-south-1,c5a.xlarge,on_demand,NA,0.094,USD,AWS Pricing API,2025-11-30T08:56:27.657391 +AWS,ap-south-1,c5a.xlarge,reserved_1y,all_upfront,0.073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:59.356318 +AWS,ap-south-1,c5a.xlarge,reserved_1y,no_upfront,0.073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:39.068132 +AWS,ap-south-1,c5a.xlarge,reserved_1y,partial_upfront,0.073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:26.091117 +AWS,ap-south-1,c5a.xlarge,reserved_3y,all_upfront,0.073,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:05.381302 +AWS,ap-south-1,c5a.xlarge,reserved_3y,no_upfront,0.073,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:40.380283 +AWS,ap-south-1,c5a.xlarge,reserved_3y,partial_upfront,0.073,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:38.239139 +AWS,ap-south-1,c5a.xlarge,spot,NA,0.059049,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339325 +AWS,ap-south-1,c5d.12xlarge,on_demand,NA,2.376,USD,AWS Pricing API,2025-11-30T08:57:34.052134 +AWS,ap-south-1,c5d.12xlarge,reserved_1y,all_upfront,1.746288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:05.665762 +AWS,ap-south-1,c5d.12xlarge,reserved_1y,no_upfront,1.746288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:45.997469 +AWS,ap-south-1,c5d.12xlarge,reserved_1y,partial_upfront,1.746288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:32.184003 +AWS,ap-south-1,c5d.12xlarge,reserved_3y,all_upfront,1.164096,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:10.450092 +AWS,ap-south-1,c5d.12xlarge,reserved_3y,no_upfront,1.164096,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:47.948077 +AWS,ap-south-1,c5d.12xlarge,reserved_3y,partial_upfront,1.164096,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:44.152184 +AWS,ap-south-1,c5d.12xlarge,spot,NA,0.708671,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340782 +AWS,ap-south-1,c5d.18xlarge,on_demand,NA,3.564,USD,AWS Pricing API,2025-11-30T08:56:57.736893 +AWS,ap-south-1,c5d.18xlarge,reserved_1y,all_upfront,4.979224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:29.228544 +AWS,ap-south-1,c5d.18xlarge,reserved_1y,no_upfront,4.979224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:09.321000 +AWS,ap-south-1,c5d.18xlarge,reserved_1y,partial_upfront,4.979224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:55.878870 +AWS,ap-south-1,c5d.18xlarge,reserved_3y,all_upfront,1.659741,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:34.672902 +AWS,ap-south-1,c5d.18xlarge,reserved_3y,no_upfront,1.659741,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:10.788243 +AWS,ap-south-1,c5d.18xlarge,reserved_3y,partial_upfront,1.659741,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:07.989218 +AWS,ap-south-1,c5d.18xlarge,spot,NA,0.858591,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340028 +AWS,ap-south-1,c5d.24xlarge,on_demand,NA,4.752,USD,AWS Pricing API,2025-11-30T08:56:30.339180 +AWS,ap-south-1,c5d.24xlarge,reserved_1y,all_upfront,2.994,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:02.092433 +AWS,ap-south-1,c5d.24xlarge,reserved_1y,no_upfront,2.994,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:41.779220 +AWS,ap-south-1,c5d.24xlarge,reserved_1y,partial_upfront,2.994,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:28.763140 +AWS,ap-south-1,c5d.24xlarge,reserved_3y,all_upfront,2.994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:08.034003 +AWS,ap-south-1,c5d.24xlarge,reserved_3y,no_upfront,2.994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:43.145233 +AWS,ap-south-1,c5d.24xlarge,reserved_3y,partial_upfront,2.994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:40.929821 +AWS,ap-south-1,c5d.24xlarge,spot,NA,1.413213,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339362 +AWS,ap-south-1,c5d.2xlarge,on_demand,NA,0.396,USD,AWS Pricing API,2025-11-30T08:57:17.975775 +AWS,ap-south-1,c5d.2xlarge,reserved_1y,all_upfront,0.291548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:49.390177 +AWS,ap-south-1,c5d.2xlarge,reserved_1y,no_upfront,0.291548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:29.718739 +AWS,ap-south-1,c5d.2xlarge,reserved_1y,partial_upfront,0.291548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:16.067298 +AWS,ap-south-1,c5d.2xlarge,reserved_3y,all_upfront,0.194516,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:54.511049 +AWS,ap-south-1,c5d.2xlarge,reserved_3y,no_upfront,0.194516,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:31.452879 +AWS,ap-south-1,c5d.2xlarge,reserved_3y,partial_upfront,0.194516,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:28.015659 +AWS,ap-south-1,c5d.2xlarge,spot,NA,0.173436,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340495 +AWS,ap-south-1,c5d.4xlarge,on_demand,NA,0.792,USD,AWS Pricing API,2025-11-30T08:56:37.927772 +AWS,ap-south-1,c5d.4xlarge,reserved_1y,all_upfront,1.106507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:09.663485 +AWS,ap-south-1,c5d.4xlarge,reserved_1y,no_upfront,1.106507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:49.397786 +AWS,ap-south-1,c5d.4xlarge,reserved_1y,partial_upfront,1.106507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:36.276830 +AWS,ap-south-1,c5d.4xlarge,reserved_3y,all_upfront,0.368836,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:15.472152 +AWS,ap-south-1,c5d.4xlarge,reserved_3y,no_upfront,0.368836,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:50.833894 +AWS,ap-south-1,c5d.4xlarge,reserved_3y,partial_upfront,0.368836,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:48.464413 +AWS,ap-south-1,c5d.4xlarge,spot,NA,0.340232,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339548 +AWS,ap-south-1,c5d.9xlarge,on_demand,NA,1.782,USD,AWS Pricing API,2025-11-30T08:57:07.453482 +AWS,ap-south-1,c5d.9xlarge,reserved_1y,all_upfront,2.489612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:38.961902 +AWS,ap-south-1,c5d.9xlarge,reserved_1y,no_upfront,2.489612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:19.137164 +AWS,ap-south-1,c5d.9xlarge,reserved_1y,partial_upfront,2.489612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:05.683059 +AWS,ap-south-1,c5d.9xlarge,reserved_3y,all_upfront,0.829871,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:44.238483 +AWS,ap-south-1,c5d.9xlarge,reserved_3y,no_upfront,0.829871,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:20.685906 +AWS,ap-south-1,c5d.9xlarge,reserved_3y,partial_upfront,0.829871,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:17.645553 +AWS,ap-south-1,c5d.9xlarge,spot,NA,0.584702,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340249 +AWS,ap-south-1,c5d.xlarge,on_demand,NA,0.198,USD,AWS Pricing API,2025-11-30T08:57:03.156076 +AWS,ap-south-1,c5d.xlarge,reserved_1y,all_upfront,0.158836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:34.648395 +AWS,ap-south-1,c5d.xlarge,reserved_1y,no_upfront,0.158836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:14.790184 +AWS,ap-south-1,c5d.xlarge,reserved_1y,partial_upfront,0.158836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:01.325350 +AWS,ap-south-1,c5d.xlarge,reserved_3y,all_upfront,0.079612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:40.007597 +AWS,ap-south-1,c5d.xlarge,reserved_3y,no_upfront,0.079612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:16.325405 +AWS,ap-south-1,c5d.xlarge,reserved_3y,partial_upfront,0.079612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:13.348377 +AWS,ap-south-1,c5d.xlarge,spot,NA,0.076968,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340169 +AWS,ap-south-1,c5n.18xlarge,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:57:23.446972 +AWS,ap-south-1,c5n.18xlarge,reserved_1y,all_upfront,2.821461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:54.938361 +AWS,ap-south-1,c5n.18xlarge,reserved_1y,no_upfront,2.821461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:35.262294 +AWS,ap-south-1,c5n.18xlarge,reserved_1y,partial_upfront,2.821461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:21.565095 +AWS,ap-south-1,c5n.18xlarge,reserved_3y,all_upfront,0.940487,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:59.936746 +AWS,ap-south-1,c5n.18xlarge,reserved_3y,no_upfront,0.940487,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:37.111765 +AWS,ap-south-1,c5n.18xlarge,reserved_3y,partial_upfront,0.940487,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:33.561504 +AWS,ap-south-1,c5n.18xlarge,spot,NA,1.080144,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340586 +AWS,ap-south-1,c5n.2xlarge,on_demand,NA,0.432,USD,AWS Pricing API,2025-11-30T08:57:33.513149 +AWS,ap-south-1,c5n.2xlarge,reserved_1y,all_upfront,0.253995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:05.122906 +AWS,ap-south-1,c5n.2xlarge,reserved_1y,no_upfront,0.253995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:45.452163 +AWS,ap-south-1,c5n.2xlarge,reserved_1y,partial_upfront,0.253995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:31.649547 +AWS,ap-south-1,c5n.2xlarge,reserved_3y,all_upfront,0.084665,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:09.926682 +AWS,ap-south-1,c5n.2xlarge,reserved_3y,no_upfront,0.084665,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:47.403315 +AWS,ap-south-1,c5n.2xlarge,reserved_3y,partial_upfront,0.084665,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:43.619178 +AWS,ap-south-1,c5n.2xlarge,spot,NA,0.186366,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340786 +AWS,ap-south-1,c5n.4xlarge,on_demand,NA,0.864,USD,AWS Pricing API,2025-11-30T08:57:09.918253 +AWS,ap-south-1,c5n.4xlarge,reserved_1y,all_upfront,0.672,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:41.418845 +AWS,ap-south-1,c5n.4xlarge,reserved_1y,no_upfront,0.672,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:21.586005 +AWS,ap-south-1,c5n.4xlarge,reserved_1y,partial_upfront,0.672,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:08.112356 +AWS,ap-south-1,c5n.4xlarge,reserved_3y,all_upfront,0.672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:46.620901 +AWS,ap-south-1,c5n.4xlarge,reserved_3y,no_upfront,0.672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:23.177118 +AWS,ap-south-1,c5n.4xlarge,reserved_3y,partial_upfront,0.672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:20.084002 +AWS,ap-south-1,c5n.4xlarge,spot,NA,0.362735,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340290 +AWS,ap-south-1,c5n.9xlarge,on_demand,NA,1.944,USD,AWS Pricing API,2025-11-30T08:57:23.307123 +AWS,ap-south-1,c5n.9xlarge,reserved_1y,all_upfront,0.874,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:54.805870 +AWS,ap-south-1,c5n.9xlarge,reserved_1y,no_upfront,0.874,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:35.127227 +AWS,ap-south-1,c5n.9xlarge,reserved_1y,partial_upfront,0.874,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:21.431490 +AWS,ap-south-1,c5n.9xlarge,reserved_3y,all_upfront,0.874,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:59.805817 +AWS,ap-south-1,c5n.9xlarge,reserved_3y,no_upfront,0.874,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:36.970960 +AWS,ap-south-1,c5n.9xlarge,reserved_3y,partial_upfront,0.874,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:33.428960 +AWS,ap-south-1,c5n.9xlarge,spot,NA,0.682626,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340578 +AWS,ap-south-1,c5n.metal,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:56:31.959896 +AWS,ap-south-1,c5n.metal,reserved_1y,all_upfront,2.821461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:03.719726 +AWS,ap-south-1,c5n.metal,reserved_1y,no_upfront,2.821461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:43.406322 +AWS,ap-south-1,c5n.metal,reserved_1y,partial_upfront,2.821461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:30.366810 +AWS,ap-south-1,c5n.metal,reserved_3y,all_upfront,0.940487,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:09.625233 +AWS,ap-south-1,c5n.metal,reserved_3y,no_upfront,0.940487,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:44.806264 +AWS,ap-south-1,c5n.metal,reserved_3y,partial_upfront,0.940487,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:42.551788 +AWS,ap-south-1,c5n.metal,spot,NA,0.884857,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339416 +AWS,ap-south-1,c5n.xlarge,on_demand,NA,0.216,USD,AWS Pricing API,2025-11-30T08:57:25.312407 +AWS,ap-south-1,c5n.xlarge,reserved_1y,all_upfront,0.136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:56.813749 +AWS,ap-south-1,c5n.xlarge,reserved_1y,no_upfront,0.136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:37.160907 +AWS,ap-south-1,c5n.xlarge,reserved_1y,partial_upfront,0.136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:23.436837 +AWS,ap-south-1,c5n.xlarge,reserved_3y,all_upfront,0.136,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:01.823076 +AWS,ap-south-1,c5n.xlarge,reserved_3y,no_upfront,0.136,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:39.034185 +AWS,ap-south-1,c5n.xlarge,reserved_3y,partial_upfront,0.136,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:35.450459 +AWS,ap-south-1,c5n.xlarge,spot,NA,0.08636,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340639 +AWS,ap-south-1,c6g.12xlarge,on_demand,NA,1.0224,USD,AWS Pricing API,2025-11-30T08:56:37.248934 +AWS,ap-south-1,c6g.12xlarge,reserved_1y,all_upfront,1.429909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:08.988668 +AWS,ap-south-1,c6g.12xlarge,reserved_1y,no_upfront,1.429909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:48.714735 +AWS,ap-south-1,c6g.12xlarge,reserved_1y,partial_upfront,1.429909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:35.602743 +AWS,ap-south-1,c6g.12xlarge,reserved_3y,all_upfront,0.476636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:14.807612 +AWS,ap-south-1,c6g.12xlarge,reserved_3y,no_upfront,0.476636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:50.146274 +AWS,ap-south-1,c6g.12xlarge,reserved_3y,partial_upfront,0.476636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:47.802986 +AWS,ap-south-1,c6g.12xlarge,spot,NA,0.390493,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339523 +AWS,ap-south-1,c6g.16xlarge,on_demand,NA,1.3632,USD,AWS Pricing API,2025-11-30T08:56:55.273314 +AWS,ap-south-1,c6g.16xlarge,reserved_1y,all_upfront,0.7004,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:26.787199 +AWS,ap-south-1,c6g.16xlarge,reserved_1y,no_upfront,0.7004,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:06.839506 +AWS,ap-south-1,c6g.16xlarge,reserved_1y,partial_upfront,0.7004,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:53.443770 +AWS,ap-south-1,c6g.16xlarge,reserved_3y,all_upfront,0.7004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:32.282921 +AWS,ap-south-1,c6g.16xlarge,reserved_3y,no_upfront,0.7004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:08.316788 +AWS,ap-south-1,c6g.16xlarge,reserved_3y,partial_upfront,0.7004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:05.520908 +AWS,ap-south-1,c6g.16xlarge,spot,NA,0.484361,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339937 +AWS,ap-south-1,c6g.2xlarge,on_demand,NA,0.1704,USD,AWS Pricing API,2025-11-30T08:57:07.316967 +AWS,ap-south-1,c6g.2xlarge,reserved_1y,all_upfront,0.136383,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:38.826939 +AWS,ap-south-1,c6g.2xlarge,reserved_1y,no_upfront,0.136383,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:19.001100 +AWS,ap-south-1,c6g.2xlarge,reserved_1y,partial_upfront,0.136383,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:05.551206 +AWS,ap-south-1,c6g.2xlarge,reserved_3y,all_upfront,0.068194,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:44.107485 +AWS,ap-south-1,c6g.2xlarge,reserved_3y,no_upfront,0.068194,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:20.549875 +AWS,ap-south-1,c6g.2xlarge,reserved_3y,partial_upfront,0.068194,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:17.509442 +AWS,ap-south-1,c6g.2xlarge,spot,NA,0.073871,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340241 +AWS,ap-south-1,c6g.4xlarge,on_demand,NA,0.3408,USD,AWS Pricing API,2025-11-30T08:57:26.123285 +AWS,ap-south-1,c6g.4xlarge,reserved_1y,all_upfront,0.2147,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:57.625858 +AWS,ap-south-1,c6g.4xlarge,reserved_1y,no_upfront,0.2147,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:37.978000 +AWS,ap-south-1,c6g.4xlarge,reserved_1y,partial_upfront,0.2147,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:24.244526 +AWS,ap-south-1,c6g.4xlarge,reserved_3y,all_upfront,0.2147,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:02.645514 +AWS,ap-south-1,c6g.4xlarge,reserved_3y,no_upfront,0.2147,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:39.854139 +AWS,ap-south-1,c6g.4xlarge,reserved_3y,partial_upfront,0.2147,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:36.254082 +AWS,ap-south-1,c6g.4xlarge,spot,NA,0.12573,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340655 +AWS,ap-south-1,c6g.8xlarge,on_demand,NA,0.6816,USD,AWS Pricing API,2025-11-30T08:56:53.603027 +AWS,ap-south-1,c6g.8xlarge,reserved_1y,all_upfront,0.5263,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:25.174555 +AWS,ap-south-1,c6g.8xlarge,reserved_1y,no_upfront,0.5263,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:05.210967 +AWS,ap-south-1,c6g.8xlarge,reserved_1y,partial_upfront,0.5263,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:51.827303 +AWS,ap-south-1,c6g.8xlarge,reserved_3y,all_upfront,0.5263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:30.679569 +AWS,ap-south-1,c6g.8xlarge,reserved_3y,no_upfront,0.5263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:06.656214 +AWS,ap-south-1,c6g.8xlarge,reserved_3y,partial_upfront,0.5263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:03.905204 +AWS,ap-south-1,c6g.8xlarge,spot,NA,0.24255,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339915 +AWS,ap-south-1,c6g.xlarge,on_demand,NA,0.0852,USD,AWS Pricing API,2025-11-30T08:57:31.513601 +AWS,ap-south-1,c6g.xlarge,reserved_1y,all_upfront,0.068142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:03.097717 +AWS,ap-south-1,c6g.xlarge,reserved_1y,no_upfront,0.068142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:43.416553 +AWS,ap-south-1,c6g.xlarge,reserved_1y,partial_upfront,0.068142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:29.629233 +AWS,ap-south-1,c6g.xlarge,reserved_3y,all_upfront,0.034047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:07.945502 +AWS,ap-south-1,c6g.xlarge,reserved_3y,no_upfront,0.034047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:45.348205 +AWS,ap-south-1,c6g.xlarge,reserved_3y,partial_upfront,0.034047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:41.622902 +AWS,ap-south-1,c6g.xlarge,spot,NA,0.039114,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340758 +AWS,ap-south-1,c6gd.12xlarge,on_demand,NA,1.176,USD,AWS Pricing API,2025-11-30T08:56:32.104738 +AWS,ap-south-1,c6gd.12xlarge,reserved_1y,all_upfront,0.940794,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:03.853675 +AWS,ap-south-1,c6gd.12xlarge,reserved_1y,no_upfront,0.940794,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:43.544363 +AWS,ap-south-1,c6gd.12xlarge,reserved_1y,partial_upfront,0.940794,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:30.500754 +AWS,ap-south-1,c6gd.12xlarge,reserved_3y,all_upfront,0.470398,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:09.757340 +AWS,ap-south-1,c6gd.12xlarge,reserved_3y,no_upfront,0.470398,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:44.940837 +AWS,ap-south-1,c6gd.12xlarge,reserved_3y,partial_upfront,0.470398,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:42.683877 +AWS,ap-south-1,c6gd.12xlarge,spot,NA,0.413819,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339411 +AWS,ap-south-1,c6gd.16xlarge,on_demand,NA,1.568,USD,AWS Pricing API,2025-11-30T08:57:10.449839 +AWS,ap-south-1,c6gd.16xlarge,reserved_1y,all_upfront,0.6774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:41.979030 +AWS,ap-south-1,c6gd.16xlarge,reserved_1y,no_upfront,0.6774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:22.126536 +AWS,ap-south-1,c6gd.16xlarge,reserved_1y,partial_upfront,0.6774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:08.644588 +AWS,ap-south-1,c6gd.16xlarge,reserved_3y,all_upfront,0.6774,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:47.144692 +AWS,ap-south-1,c6gd.16xlarge,reserved_3y,no_upfront,0.6774,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:23.723188 +AWS,ap-south-1,c6gd.16xlarge,reserved_3y,partial_upfront,0.6774,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:20.617681 +AWS,ap-south-1,c6gd.16xlarge,spot,NA,0.485432,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340322 +AWS,ap-south-1,c6gd.2xlarge,on_demand,NA,0.196,USD,AWS Pricing API,2025-11-30T08:57:20.768247 +AWS,ap-south-1,c6gd.2xlarge,reserved_1y,all_upfront,0.15678,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:52.244236 +AWS,ap-south-1,c6gd.2xlarge,reserved_1y,no_upfront,0.15678,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:32.552543 +AWS,ap-south-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.15678,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:18.881158 +AWS,ap-south-1,c6gd.2xlarge,reserved_3y,all_upfront,0.078393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:57.266861 +AWS,ap-south-1,c6gd.2xlarge,reserved_3y,no_upfront,0.078393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:34.372976 +AWS,ap-south-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.078393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:30.816070 +AWS,ap-south-1,c6gd.2xlarge,spot,NA,0.055097,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340539 +AWS,ap-south-1,c6gd.4xlarge,on_demand,NA,0.392,USD,AWS Pricing API,2025-11-30T08:57:00.316505 +AWS,ap-south-1,c6gd.4xlarge,reserved_1y,all_upfront,0.230479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:31.802382 +AWS,ap-south-1,c6gd.4xlarge,reserved_1y,no_upfront,0.230479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:11.914311 +AWS,ap-south-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.230479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:58.474442 +AWS,ap-south-1,c6gd.4xlarge,reserved_3y,all_upfront,0.076826,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:37.213326 +AWS,ap-south-1,c6gd.4xlarge,reserved_3y,no_upfront,0.076826,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:13.435227 +AWS,ap-south-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.076826,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:10.533440 +AWS,ap-south-1,c6gd.4xlarge,spot,NA,0.154248,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340117 +AWS,ap-south-1,c6gd.8xlarge,on_demand,NA,0.784,USD,AWS Pricing API,2025-11-30T08:57:28.974035 +AWS,ap-south-1,c6gd.8xlarge,reserved_1y,all_upfront,0.6051,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:00.472402 +AWS,ap-south-1,c6gd.8xlarge,reserved_1y,no_upfront,0.6051,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:40.836323 +AWS,ap-south-1,c6gd.8xlarge,reserved_1y,partial_upfront,0.6051,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:27.065642 +AWS,ap-south-1,c6gd.8xlarge,reserved_3y,all_upfront,0.6051,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:05.436508 +AWS,ap-south-1,c6gd.8xlarge,reserved_3y,no_upfront,0.6051,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:42.756764 +AWS,ap-south-1,c6gd.8xlarge,reserved_3y,partial_upfront,0.6051,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:39.064732 +AWS,ap-south-1,c6gd.8xlarge,spot,NA,0.272593,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340714 +AWS,ap-south-1,c6gd.xlarge,on_demand,NA,0.098,USD,AWS Pricing API,2025-11-30T08:57:20.111272 +AWS,ap-south-1,c6gd.xlarge,reserved_1y,all_upfront,0.058852,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:51.564974 +AWS,ap-south-1,c6gd.xlarge,reserved_1y,no_upfront,0.058852,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:31.874880 +AWS,ap-south-1,c6gd.xlarge,reserved_1y,partial_upfront,0.058852,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:18.214424 +AWS,ap-south-1,c6gd.xlarge,reserved_3y,all_upfront,0.039217,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:56.611453 +AWS,ap-south-1,c6gd.xlarge,reserved_3y,no_upfront,0.039217,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:33.687002 +AWS,ap-south-1,c6gd.xlarge,reserved_3y,partial_upfront,0.039217,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:30.151628 +AWS,ap-south-1,c6gd.xlarge,spot,NA,0.042968,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340547 +AWS,ap-south-1,c6i.12xlarge,on_demand,NA,2.04,USD,AWS Pricing API,2025-11-30T08:57:19.974031 +AWS,ap-south-1,c6i.12xlarge,reserved_1y,all_upfront,1.71356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:51.421770 +AWS,ap-south-1,c6i.12xlarge,reserved_1y,no_upfront,1.71356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:31.738741 +AWS,ap-south-1,c6i.12xlarge,reserved_1y,partial_upfront,1.71356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:18.081282 +AWS,ap-south-1,c6i.12xlarge,reserved_3y,all_upfront,0.856787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:56.478671 +AWS,ap-south-1,c6i.12xlarge,reserved_3y,no_upfront,0.856787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:33.549825 +AWS,ap-south-1,c6i.12xlarge,reserved_3y,partial_upfront,0.856787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:30.018604 +AWS,ap-south-1,c6i.12xlarge,spot,NA,0.637962,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340527 +AWS,ap-south-1,c6i.16xlarge,on_demand,NA,2.72,USD,AWS Pricing API,2025-11-30T08:56:54.866576 +AWS,ap-south-1,c6i.16xlarge,reserved_1y,all_upfront,3.857306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:26.383549 +AWS,ap-south-1,c6i.16xlarge,reserved_1y,no_upfront,3.857306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:06.431605 +AWS,ap-south-1,c6i.16xlarge,reserved_1y,partial_upfront,3.857306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:53.034205 +AWS,ap-south-1,c6i.16xlarge,reserved_3y,all_upfront,1.285769,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:31.880449 +AWS,ap-south-1,c6i.16xlarge,reserved_3y,no_upfront,1.285769,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:07.903403 +AWS,ap-south-1,c6i.16xlarge,reserved_3y,partial_upfront,1.285769,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:05.117410 +AWS,ap-south-1,c6i.16xlarge,spot,NA,0.917234,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339943 +AWS,ap-south-1,c6i.24xlarge,on_demand,NA,4.08,USD,AWS Pricing API,2025-11-30T08:56:49.455716 +AWS,ap-south-1,c6i.24xlarge,reserved_1y,all_upfront,3.10968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:21.102448 +AWS,ap-south-1,c6i.24xlarge,reserved_1y,no_upfront,3.10968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:01.046926 +AWS,ap-south-1,c6i.24xlarge,reserved_1y,partial_upfront,3.10968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:47.793212 +AWS,ap-south-1,c6i.24xlarge,reserved_3y,all_upfront,3.10968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:26.706378 +AWS,ap-south-1,c6i.24xlarge,reserved_3y,no_upfront,3.10968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:02.521881 +AWS,ap-south-1,c6i.24xlarge,reserved_3y,partial_upfront,3.10968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:59.872482 +AWS,ap-south-1,c6i.24xlarge,spot,NA,0.946959,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339785 +AWS,ap-south-1,c6i.2xlarge,on_demand,NA,0.34,USD,AWS Pricing API,2025-11-30T08:56:33.307854 +AWS,ap-south-1,c6i.2xlarge,reserved_1y,all_upfront,0.21016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:05.070135 +AWS,ap-south-1,c6i.2xlarge,reserved_1y,no_upfront,0.21016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:44.773858 +AWS,ap-south-1,c6i.2xlarge,reserved_1y,partial_upfront,0.21016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:31.721424 +AWS,ap-south-1,c6i.2xlarge,reserved_3y,all_upfront,0.070053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:10.956617 +AWS,ap-south-1,c6i.2xlarge,reserved_3y,no_upfront,0.070053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:46.162953 +AWS,ap-south-1,c6i.2xlarge,reserved_3y,partial_upfront,0.070053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:43.878277 +AWS,ap-south-1,c6i.2xlarge,spot,NA,0.147307,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339432 +AWS,ap-south-1,c6i.32xlarge,on_demand,NA,5.44,USD,AWS Pricing API,2025-11-30T08:57:24.642077 +AWS,ap-south-1,c6i.32xlarge,reserved_1y,all_upfront,3.361758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:56.144416 +AWS,ap-south-1,c6i.32xlarge,reserved_1y,no_upfront,3.361758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:36.486021 +AWS,ap-south-1,c6i.32xlarge,reserved_1y,partial_upfront,3.361758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:22.762554 +AWS,ap-south-1,c6i.32xlarge,reserved_3y,all_upfront,1.120586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:01.117720 +AWS,ap-south-1,c6i.32xlarge,reserved_3y,no_upfront,1.120586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:38.354043 +AWS,ap-south-1,c6i.32xlarge,reserved_3y,partial_upfront,1.120586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:34.763097 +AWS,ap-south-1,c6i.32xlarge,spot,NA,1.12521,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340635 +AWS,ap-south-1,c6i.4xlarge,on_demand,NA,0.68,USD,AWS Pricing API,2025-11-30T08:56:29.392421 +AWS,ap-south-1,c6i.4xlarge,reserved_1y,all_upfront,0.571225,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:01.107605 +AWS,ap-south-1,c6i.4xlarge,reserved_1y,no_upfront,0.571225,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:40.826602 +AWS,ap-south-1,c6i.4xlarge,reserved_1y,partial_upfront,0.571225,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:27.826187 +AWS,ap-south-1,c6i.4xlarge,reserved_3y,all_upfront,0.285608,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:07.098818 +AWS,ap-south-1,c6i.4xlarge,reserved_3y,no_upfront,0.285608,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:42.176256 +AWS,ap-south-1,c6i.4xlarge,reserved_3y,partial_upfront,0.285608,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:39.995796 +AWS,ap-south-1,c6i.4xlarge,spot,NA,0.250553,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339337 +AWS,ap-south-1,c6i.8xlarge,on_demand,NA,1.36,USD,AWS Pricing API,2025-11-30T08:56:43.103471 +AWS,ap-south-1,c6i.8xlarge,reserved_1y,all_upfront,1.03656,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:14.789291 +AWS,ap-south-1,c6i.8xlarge,reserved_1y,no_upfront,1.03656,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:54.567370 +AWS,ap-south-1,c6i.8xlarge,reserved_1y,partial_upfront,1.03656,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:41.429340 +AWS,ap-south-1,c6i.8xlarge,reserved_3y,all_upfront,1.03656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:20.498139 +AWS,ap-south-1,c6i.8xlarge,reserved_3y,no_upfront,1.03656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:56.059658 +AWS,ap-south-1,c6i.8xlarge,reserved_3y,partial_upfront,1.03656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:53.563918 +AWS,ap-south-1,c6i.8xlarge,spot,NA,0.373107,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339684 +AWS,ap-south-1,c6i.xlarge,on_demand,NA,0.17,USD,AWS Pricing API,2025-11-30T08:56:47.268717 +AWS,ap-south-1,c6i.xlarge,reserved_1y,all_upfront,0.11256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:18.957919 +AWS,ap-south-1,c6i.xlarge,reserved_1y,no_upfront,0.11256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:58.841520 +AWS,ap-south-1,c6i.xlarge,reserved_1y,partial_upfront,0.11256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:45.620125 +AWS,ap-south-1,c6i.xlarge,reserved_3y,all_upfront,0.11256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:24.602212 +AWS,ap-south-1,c6i.xlarge,reserved_3y,no_upfront,0.11256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:00.307184 +AWS,ap-south-1,c6i.xlarge,reserved_3y,partial_upfront,0.11256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:57.728458 +AWS,ap-south-1,c6i.xlarge,spot,NA,0.075128,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339756 +AWS,ap-south-1,c6in.12xlarge,on_demand,NA,2.7216,USD,AWS Pricing API,2025-11-30T08:56:36.841349 +AWS,ap-south-1,c6in.12xlarge,reserved_1y,all_upfront,2.11583,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:08.584840 +AWS,ap-south-1,c6in.12xlarge,reserved_1y,no_upfront,2.11583,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:48.305584 +AWS,ap-south-1,c6in.12xlarge,reserved_1y,partial_upfront,2.11583,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:35.194772 +AWS,ap-south-1,c6in.12xlarge,reserved_3y,all_upfront,2.11583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:14.411369 +AWS,ap-south-1,c6in.12xlarge,reserved_3y,no_upfront,2.11583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:49.735526 +AWS,ap-south-1,c6in.12xlarge,reserved_3y,partial_upfront,2.11583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:47.400371 +AWS,ap-south-1,c6in.12xlarge,spot,NA,0.914397,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339518 +AWS,ap-south-1,c6in.16xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T08:56:48.232222 +AWS,ap-south-1,c6in.16xlarge,reserved_1y,all_upfront,1.4195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:19.894196 +AWS,ap-south-1,c6in.16xlarge,reserved_1y,no_upfront,1.4195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:59.810555 +AWS,ap-south-1,c6in.16xlarge,reserved_1y,partial_upfront,1.4195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:46.562651 +AWS,ap-south-1,c6in.16xlarge,reserved_3y,all_upfront,1.4195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:25.522093 +AWS,ap-south-1,c6in.16xlarge,reserved_3y,no_upfront,1.4195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:01.265534 +AWS,ap-south-1,c6in.16xlarge,reserved_3y,partial_upfront,1.4195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:58.662893 +AWS,ap-south-1,c6in.16xlarge,spot,NA,1.405448,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339760 +AWS,ap-south-1,c6in.24xlarge,on_demand,NA,5.4432,USD,AWS Pricing API,2025-11-30T08:56:57.871550 +AWS,ap-south-1,c6in.24xlarge,reserved_1y,all_upfront,3.265951,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:29.365850 +AWS,ap-south-1,c6in.24xlarge,reserved_1y,no_upfront,3.265951,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:09.455391 +AWS,ap-south-1,c6in.24xlarge,reserved_1y,partial_upfront,3.265951,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:56.012705 +AWS,ap-south-1,c6in.24xlarge,reserved_3y,all_upfront,2.17729,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:34.807991 +AWS,ap-south-1,c6in.24xlarge,reserved_3y,no_upfront,2.17729,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:10.925883 +AWS,ap-south-1,c6in.24xlarge,reserved_3y,partial_upfront,2.17729,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:08.123224 +AWS,ap-south-1,c6in.24xlarge,spot,NA,1.866325,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340057 +AWS,ap-south-1,c6in.2xlarge,on_demand,NA,0.4536,USD,AWS Pricing API,2025-11-30T08:57:01.529084 +AWS,ap-south-1,c6in.2xlarge,reserved_1y,all_upfront,0.377609,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:33.024586 +AWS,ap-south-1,c6in.2xlarge,reserved_1y,no_upfront,0.377609,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:13.153892 +AWS,ap-south-1,c6in.2xlarge,reserved_1y,partial_upfront,0.377609,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:59.693986 +AWS,ap-south-1,c6in.2xlarge,reserved_3y,all_upfront,0.188796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:38.415642 +AWS,ap-south-1,c6in.2xlarge,reserved_3y,no_upfront,0.188796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:14.671487 +AWS,ap-south-1,c6in.2xlarge,reserved_3y,partial_upfront,0.188796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:11.734523 +AWS,ap-south-1,c6in.2xlarge,spot,NA,0.190263,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340149 +AWS,ap-south-1,c6in.32xlarge,on_demand,NA,7.2576,USD,AWS Pricing API,2025-11-30T08:57:35.537365 +AWS,ap-south-1,c6in.32xlarge,reserved_1y,all_upfront,2.839,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:07.136883 +AWS,ap-south-1,c6in.32xlarge,reserved_1y,no_upfront,2.839,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:47.519650 +AWS,ap-south-1,c6in.32xlarge,reserved_1y,partial_upfront,2.839,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:33.653092 +AWS,ap-south-1,c6in.32xlarge,reserved_3y,all_upfront,2.839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:11.946998 +AWS,ap-south-1,c6in.32xlarge,reserved_3y,no_upfront,2.839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:49.457519 +AWS,ap-south-1,c6in.32xlarge,reserved_3y,partial_upfront,2.839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:45.624161 +AWS,ap-south-1,c6in.32xlarge,spot,NA,1.264577,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340806 +AWS,ap-south-1,c6in.4xlarge,on_demand,NA,0.9072,USD,AWS Pricing API,2025-11-30T08:56:35.882857 +AWS,ap-south-1,c6in.4xlarge,reserved_1y,all_upfront,0.657212,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:07.623097 +AWS,ap-south-1,c6in.4xlarge,reserved_1y,no_upfront,0.657212,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:47.347898 +AWS,ap-south-1,c6in.4xlarge,reserved_1y,partial_upfront,0.657212,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:34.258145 +AWS,ap-south-1,c6in.4xlarge,reserved_3y,all_upfront,0.328597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:13.472549 +AWS,ap-south-1,c6in.4xlarge,reserved_3y,no_upfront,0.328597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:48.760571 +AWS,ap-south-1,c6in.4xlarge,reserved_3y,partial_upfront,0.328597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:46.442337 +AWS,ap-south-1,c6in.4xlarge,spot,NA,0.282329,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339489 +AWS,ap-south-1,c6in.8xlarge,on_demand,NA,1.8144,USD,AWS Pricing API,2025-11-30T08:57:05.997171 +AWS,ap-south-1,c6in.8xlarge,reserved_1y,all_upfront,1.853196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:37.486268 +AWS,ap-south-1,c6in.8xlarge,reserved_1y,no_upfront,1.853196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:17.652603 +AWS,ap-south-1,c6in.8xlarge,reserved_1y,partial_upfront,1.853196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:04.201162 +AWS,ap-south-1,c6in.8xlarge,reserved_3y,all_upfront,0.617732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:42.800045 +AWS,ap-south-1,c6in.8xlarge,reserved_3y,no_upfront,0.617732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:19.188506 +AWS,ap-south-1,c6in.8xlarge,reserved_3y,partial_upfront,0.617732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:16.176537 +AWS,ap-south-1,c6in.8xlarge,spot,NA,0.597388,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340217 +AWS,ap-south-1,c6in.xlarge,on_demand,NA,0.2268,USD,AWS Pricing API,2025-11-30T08:56:53.748172 +AWS,ap-south-1,c6in.xlarge,reserved_1y,all_upfront,0.231621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:25.319463 +AWS,ap-south-1,c6in.xlarge,reserved_1y,no_upfront,0.231621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:05.344204 +AWS,ap-south-1,c6in.xlarge,reserved_1y,partial_upfront,0.231621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:51.961951 +AWS,ap-south-1,c6in.xlarge,reserved_3y,all_upfront,0.077207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:30.821348 +AWS,ap-south-1,c6in.xlarge,reserved_3y,no_upfront,0.077207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:06.794182 +AWS,ap-south-1,c6in.xlarge,reserved_3y,partial_upfront,0.077207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:04.039437 +AWS,ap-south-1,c6in.xlarge,spot,NA,0.079967,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339892 +AWS,ap-south-1,c7g.12xlarge,on_demand,NA,1.1779,USD,AWS Pricing API,2025-11-30T08:57:03.824231 +AWS,ap-south-1,c7g.12xlarge,reserved_1y,all_upfront,0.742747,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:35.317902 +AWS,ap-south-1,c7g.12xlarge,reserved_1y,no_upfront,0.742747,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:15.465350 +AWS,ap-south-1,c7g.12xlarge,reserved_1y,partial_upfront,0.742747,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:02.010372 +AWS,ap-south-1,c7g.12xlarge,reserved_3y,all_upfront,0.495182,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:40.668503 +AWS,ap-south-1,c7g.12xlarge,reserved_3y,no_upfront,0.495182,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:17.006219 +AWS,ap-south-1,c7g.12xlarge,reserved_3y,partial_upfront,0.495182,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:14.015314 +AWS,ap-south-1,c7g.12xlarge,spot,NA,0.459914,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340177 +AWS,ap-south-1,c7g.16xlarge,on_demand,NA,1.5706,USD,AWS Pricing API,2025-11-30T08:57:13.513967 +AWS,ap-south-1,c7g.16xlarge,reserved_1y,all_upfront,0.990405,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:44.952017 +AWS,ap-south-1,c7g.16xlarge,reserved_1y,no_upfront,0.990405,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:25.157391 +AWS,ap-south-1,c7g.16xlarge,reserved_1y,partial_upfront,0.990405,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:11.606645 +AWS,ap-south-1,c7g.16xlarge,reserved_3y,all_upfront,0.660268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:50.082001 +AWS,ap-south-1,c7g.16xlarge,reserved_3y,no_upfront,0.660268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:26.769994 +AWS,ap-south-1,c7g.16xlarge,reserved_3y,partial_upfront,0.660268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:23.576145 +AWS,ap-south-1,c7g.16xlarge,spot,NA,0.52757,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340383 +AWS,ap-south-1,c7g.2xlarge,on_demand,NA,0.1963,USD,AWS Pricing API,2025-11-30T08:57:32.048800 +AWS,ap-south-1,c7g.2xlarge,reserved_1y,all_upfront,0.189409,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:03.636717 +AWS,ap-south-1,c7g.2xlarge,reserved_1y,no_upfront,0.189409,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:43.960765 +AWS,ap-south-1,c7g.2xlarge,reserved_1y,partial_upfront,0.189409,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:30.175553 +AWS,ap-south-1,c7g.2xlarge,reserved_3y,all_upfront,0.094736,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:08.473275 +AWS,ap-south-1,c7g.2xlarge,reserved_3y,no_upfront,0.094736,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:45.896257 +AWS,ap-south-1,c7g.2xlarge,reserved_3y,partial_upfront,0.094736,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:42.164668 +AWS,ap-south-1,c7g.2xlarge,spot,NA,0.084089,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340762 +AWS,ap-south-1,c7g.4xlarge,on_demand,NA,0.3926,USD,AWS Pricing API,2025-11-30T08:56:48.908387 +AWS,ap-south-1,c7g.4xlarge,reserved_1y,all_upfront,0.279338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:20.567530 +AWS,ap-south-1,c7g.4xlarge,reserved_1y,no_upfront,0.279338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:00.502277 +AWS,ap-south-1,c7g.4xlarge,reserved_1y,partial_upfront,0.279338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:47.249290 +AWS,ap-south-1,c7g.4xlarge,reserved_3y,all_upfront,0.093113,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:26.180793 +AWS,ap-south-1,c7g.4xlarge,reserved_3y,no_upfront,0.093113,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:01.963163 +AWS,ap-south-1,c7g.4xlarge,reserved_3y,partial_upfront,0.093113,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:59.337159 +AWS,ap-south-1,c7g.4xlarge,spot,NA,0.151296,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339801 +AWS,ap-south-1,c7g.8xlarge,on_demand,NA,0.7853,USD,AWS Pricing API,2025-11-30T08:57:00.046684 +AWS,ap-south-1,c7g.8xlarge,reserved_1y,all_upfront,0.659649,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:31.533609 +AWS,ap-south-1,c7g.8xlarge,reserved_1y,no_upfront,0.659649,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:11.644619 +AWS,ap-south-1,c7g.8xlarge,reserved_1y,partial_upfront,0.659649,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:58.207556 +AWS,ap-south-1,c7g.8xlarge,reserved_3y,all_upfront,0.329816,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:36.947849 +AWS,ap-south-1,c7g.8xlarge,reserved_3y,no_upfront,0.329816,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:13.164067 +AWS,ap-south-1,c7g.8xlarge,reserved_3y,partial_upfront,0.329816,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:10.267306 +AWS,ap-south-1,c7g.8xlarge,spot,NA,0.319683,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340104 +AWS,ap-south-1,c7g.xlarge,on_demand,NA,0.0982,USD,AWS Pricing API,2025-11-30T08:56:46.999782 +AWS,ap-south-1,c7g.xlarge,reserved_1y,all_upfront,0.069863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:18.690992 +AWS,ap-south-1,c7g.xlarge,reserved_1y,no_upfront,0.069863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:58.552524 +AWS,ap-south-1,c7g.xlarge,reserved_1y,partial_upfront,0.069863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:45.352717 +AWS,ap-south-1,c7g.xlarge,reserved_3y,all_upfront,0.023288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:24.336642 +AWS,ap-south-1,c7g.xlarge,reserved_3y,no_upfront,0.023288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:00.036062 +AWS,ap-south-1,c7g.xlarge,reserved_3y,partial_upfront,0.023288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:57.460450 +AWS,ap-south-1,c7g.xlarge,spot,NA,0.051013,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339751 +AWS,ap-south-1,c7gd.12xlarge,on_demand,NA,1.3824,USD,AWS Pricing API,2025-11-30T08:56:58.007409 +AWS,ap-south-1,c7gd.12xlarge,reserved_1y,all_upfront,0.99589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:29.500968 +AWS,ap-south-1,c7gd.12xlarge,reserved_1y,no_upfront,0.99589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:09.591194 +AWS,ap-south-1,c7gd.12xlarge,reserved_1y,partial_upfront,0.99589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:56.146505 +AWS,ap-south-1,c7gd.12xlarge,reserved_3y,all_upfront,0.331963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:34.940397 +AWS,ap-south-1,c7gd.12xlarge,reserved_3y,no_upfront,0.331963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:11.063366 +AWS,ap-south-1,c7gd.12xlarge,reserved_3y,partial_upfront,0.331963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:08.258025 +AWS,ap-south-1,c7gd.12xlarge,spot,NA,0.5487,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340035 +AWS,ap-south-1,c7gd.16xlarge,on_demand,NA,1.8432,USD,AWS Pricing API,2025-11-30T08:56:43.907138 +AWS,ap-south-1,c7gd.16xlarge,reserved_1y,all_upfront,1.08379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:15.600642 +AWS,ap-south-1,c7gd.16xlarge,reserved_1y,no_upfront,1.08379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:55.393235 +AWS,ap-south-1,c7gd.16xlarge,reserved_1y,partial_upfront,1.08379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:42.230995 +AWS,ap-south-1,c7gd.16xlarge,reserved_3y,all_upfront,0.361263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:21.282281 +AWS,ap-south-1,c7gd.16xlarge,reserved_3y,no_upfront,0.361263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:56.878172 +AWS,ap-south-1,c7gd.16xlarge,reserved_3y,partial_upfront,0.361263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:54.360904 +AWS,ap-south-1,c7gd.16xlarge,spot,NA,0.607452,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339672 +AWS,ap-south-1,c7gd.2xlarge,on_demand,NA,0.2304,USD,AWS Pricing API,2025-11-30T08:57:13.379713 +AWS,ap-south-1,c7gd.2xlarge,reserved_1y,all_upfront,0.165982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:44.809000 +AWS,ap-south-1,c7gd.2xlarge,reserved_1y,no_upfront,0.165982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:25.021240 +AWS,ap-south-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.165982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:11.473969 +AWS,ap-south-1,c7gd.2xlarge,reserved_3y,all_upfront,0.055327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:49.947870 +AWS,ap-south-1,c7gd.2xlarge,reserved_3y,no_upfront,0.055327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:26.631413 +AWS,ap-south-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.055327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:23.442168 +AWS,ap-south-1,c7gd.2xlarge,spot,NA,0.107927,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340394 +AWS,ap-south-1,c7gd.4xlarge,on_demand,NA,0.4608,USD,AWS Pricing API,2025-11-30T08:57:00.719552 +AWS,ap-south-1,c7gd.4xlarge,reserved_1y,all_upfront,0.1991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:32.210623 +AWS,ap-south-1,c7gd.4xlarge,reserved_1y,no_upfront,0.1991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:12.322148 +AWS,ap-south-1,c7gd.4xlarge,reserved_1y,partial_upfront,0.1991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:58.880240 +AWS,ap-south-1,c7gd.4xlarge,reserved_3y,all_upfront,0.1991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:37.606286 +AWS,ap-south-1,c7gd.4xlarge,reserved_3y,no_upfront,0.1991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:13.846592 +AWS,ap-south-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.1991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:10.931107 +AWS,ap-south-1,c7gd.4xlarge,spot,NA,0.252256,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340109 +AWS,ap-south-1,c7gd.8xlarge,on_demand,NA,0.9216,USD,AWS Pricing API,2025-11-30T08:56:52.229452 +AWS,ap-south-1,c7gd.8xlarge,reserved_1y,all_upfront,0.663927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:23.817515 +AWS,ap-south-1,c7gd.8xlarge,reserved_1y,no_upfront,0.663927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:03.807201 +AWS,ap-south-1,c7gd.8xlarge,reserved_1y,partial_upfront,0.663927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:50.480189 +AWS,ap-south-1,c7gd.8xlarge,reserved_3y,all_upfront,0.221309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:29.354979 +AWS,ap-south-1,c7gd.8xlarge,reserved_3y,no_upfront,0.221309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:05.284123 +AWS,ap-south-1,c7gd.8xlarge,reserved_3y,partial_upfront,0.221309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:02.556042 +AWS,ap-south-1,c7gd.8xlarge,spot,NA,0.388456,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339860 +AWS,ap-south-1,c7gd.xlarge,on_demand,NA,0.1152,USD,AWS Pricing API,2025-11-30T08:57:31.379453 +AWS,ap-south-1,c7gd.xlarge,reserved_1y,all_upfront,0.0889,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:02.960523 +AWS,ap-south-1,c7gd.xlarge,reserved_1y,no_upfront,0.0889,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:43.281046 +AWS,ap-south-1,c7gd.xlarge,reserved_1y,partial_upfront,0.0889,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:29.483394 +AWS,ap-south-1,c7gd.xlarge,reserved_3y,all_upfront,0.0889,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:07.813527 +AWS,ap-south-1,c7gd.xlarge,reserved_3y,no_upfront,0.0889,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:45.211299 +AWS,ap-south-1,c7gd.xlarge,reserved_3y,partial_upfront,0.0889,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:41.489245 +AWS,ap-south-1,c7gd.xlarge,spot,NA,0.058505,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340754 +AWS,ap-south-1,c7i.12xlarge,on_demand,NA,2.142,USD,AWS Pricing API,2025-11-30T08:56:52.504636 +AWS,ap-south-1,c7i.12xlarge,reserved_1y,all_upfront,3.037557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:24.085693 +AWS,ap-south-1,c7i.12xlarge,reserved_1y,no_upfront,3.037557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:04.088870 +AWS,ap-south-1,c7i.12xlarge,reserved_1y,partial_upfront,3.037557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:50.746480 +AWS,ap-south-1,c7i.12xlarge,reserved_3y,all_upfront,1.012519,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:29.616576 +AWS,ap-south-1,c7i.12xlarge,reserved_3y,no_upfront,1.012519,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:05.559240 +AWS,ap-south-1,c7i.12xlarge,reserved_3y,partial_upfront,1.012519,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:02.828515 +AWS,ap-south-1,c7i.12xlarge,spot,NA,0.644451,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339855 +AWS,ap-south-1,c7i.16xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T08:57:29.643954 +AWS,ap-south-1,c7i.16xlarge,reserved_1y,all_upfront,1.764954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:01.151308 +AWS,ap-south-1,c7i.16xlarge,reserved_1y,no_upfront,1.764954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:41.514113 +AWS,ap-south-1,c7i.16xlarge,reserved_1y,partial_upfront,1.764954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:27.735173 +AWS,ap-south-1,c7i.16xlarge,reserved_3y,all_upfront,0.588318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:06.097773 +AWS,ap-south-1,c7i.16xlarge,reserved_3y,no_upfront,0.588318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:43.442628 +AWS,ap-south-1,c7i.16xlarge,reserved_3y,partial_upfront,0.588318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:39.742814 +AWS,ap-south-1,c7i.16xlarge,spot,NA,0.861542,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340726 +AWS,ap-south-1,c7i.24xlarge,on_demand,NA,4.284,USD,AWS Pricing API,2025-11-30T08:57:03.422169 +AWS,ap-south-1,c7i.24xlarge,reserved_1y,all_upfront,3.26515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:34.917093 +AWS,ap-south-1,c7i.24xlarge,reserved_1y,no_upfront,3.26515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:15.059727 +AWS,ap-south-1,c7i.24xlarge,reserved_1y,partial_upfront,3.26515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:01.595571 +AWS,ap-south-1,c7i.24xlarge,reserved_3y,all_upfront,3.26515,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:40.267968 +AWS,ap-south-1,c7i.24xlarge,reserved_3y,no_upfront,3.26515,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:16.594955 +AWS,ap-south-1,c7i.24xlarge,reserved_3y,partial_upfront,3.26515,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:13.611669 +AWS,ap-south-1,c7i.24xlarge,spot,NA,1.041711,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340153 +AWS,ap-south-1,c7i.2xlarge,on_demand,NA,0.357,USD,AWS Pricing API,2025-11-30T08:57:18.113024 +AWS,ap-south-1,c7i.2xlarge,reserved_1y,all_upfront,0.23638,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:49.523654 +AWS,ap-south-1,c7i.2xlarge,reserved_1y,no_upfront,0.23638,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:29.854634 +AWS,ap-south-1,c7i.2xlarge,reserved_1y,partial_upfront,0.23638,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:16.199643 +AWS,ap-south-1,c7i.2xlarge,reserved_3y,all_upfront,0.23638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:54.644828 +AWS,ap-south-1,c7i.2xlarge,reserved_3y,no_upfront,0.23638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:31.596113 +AWS,ap-south-1,c7i.2xlarge,reserved_3y,partial_upfront,0.23638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:28.151389 +AWS,ap-south-1,c7i.2xlarge,spot,NA,0.163914,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340499 +AWS,ap-south-1,c7i.48xlarge,on_demand,NA,8.568,USD,AWS Pricing API,2025-11-30T08:56:45.930858 +AWS,ap-south-1,c7i.48xlarge,reserved_1y,all_upfront,6.219373,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:17.615323 +AWS,ap-south-1,c7i.48xlarge,reserved_1y,no_upfront,6.219373,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:57.450528 +AWS,ap-south-1,c7i.48xlarge,reserved_1y,partial_upfront,6.219373,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:44.255532 +AWS,ap-south-1,c7i.48xlarge,reserved_3y,all_upfront,4.146238,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:23.269995 +AWS,ap-south-1,c7i.48xlarge,reserved_3y,no_upfront,4.146238,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:58.930139 +AWS,ap-south-1,c7i.48xlarge,reserved_3y,partial_upfront,4.146238,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:56.372506 +AWS,ap-south-1,c7i.48xlarge,spot,NA,1.855817,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339747 +AWS,ap-south-1,c7i.4xlarge,on_demand,NA,0.714,USD,AWS Pricing API,2025-11-30T08:56:59.094096 +AWS,ap-south-1,c7i.4xlarge,reserved_1y,all_upfront,0.54419,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:30.583927 +AWS,ap-south-1,c7i.4xlarge,reserved_1y,no_upfront,0.54419,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:10.693461 +AWS,ap-south-1,c7i.4xlarge,reserved_1y,partial_upfront,0.54419,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:57.246474 +AWS,ap-south-1,c7i.4xlarge,reserved_3y,all_upfront,0.54419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:36.002371 +AWS,ap-south-1,c7i.4xlarge,reserved_3y,no_upfront,0.54419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:12.180060 +AWS,ap-south-1,c7i.4xlarge,reserved_3y,partial_upfront,0.54419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:09.333293 +AWS,ap-south-1,c7i.4xlarge,spot,NA,0.282797,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340096 +AWS,ap-south-1,c7i.8xlarge,on_demand,NA,1.428,USD,AWS Pricing API,2025-11-30T08:56:30.883220 +AWS,ap-south-1,c7i.8xlarge,reserved_1y,all_upfront,1.015868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:02.642792 +AWS,ap-south-1,c7i.8xlarge,reserved_1y,no_upfront,1.015868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:42.324524 +AWS,ap-south-1,c7i.8xlarge,reserved_1y,partial_upfront,1.015868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:29.299333 +AWS,ap-south-1,c7i.8xlarge,reserved_3y,all_upfront,0.338623,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:08.571118 +AWS,ap-south-1,c7i.8xlarge,reserved_3y,no_upfront,0.338623,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:43.692323 +AWS,ap-south-1,c7i.8xlarge,reserved_3y,partial_upfront,0.338623,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:41.462850 +AWS,ap-south-1,c7i.8xlarge,spot,NA,0.465996,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339408 +AWS,ap-south-1,c7i.large,on_demand,NA,0.08925,USD,AWS Pricing API,2025-11-30T08:57:17.565127 +AWS,ap-south-1,c7i.large,reserved_1y,all_upfront,0.06802,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:48.988266 +AWS,ap-south-1,c7i.large,reserved_1y,no_upfront,0.06802,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:29.312438 +AWS,ap-south-1,c7i.large,reserved_1y,partial_upfront,0.06802,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:15.654694 +AWS,ap-south-1,c7i.large,reserved_3y,all_upfront,0.06802,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:54.112122 +AWS,ap-south-1,c7i.large,reserved_3y,no_upfront,0.06802,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:31.035075 +AWS,ap-south-1,c7i.large,reserved_3y,partial_upfront,0.06802,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:27.613374 +AWS,ap-south-1,c7i.large,spot,NA,0.033662,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340484 +AWS,ap-south-1,c7i.metal-24xl,on_demand,NA,4.284,USD,AWS Pricing API,2025-11-30T08:56:46.736114 +AWS,ap-south-1,c7i.metal-24xl,reserved_1y,all_upfront,2.83652,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:18.420291 +AWS,ap-south-1,c7i.metal-24xl,reserved_1y,no_upfront,2.83652,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:58.277215 +AWS,ap-south-1,c7i.metal-24xl,reserved_1y,partial_upfront,2.83652,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:45.084138 +AWS,ap-south-1,c7i.metal-24xl,reserved_3y,all_upfront,2.83652,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:24.064631 +AWS,ap-south-1,c7i.metal-24xl,reserved_3y,no_upfront,2.83652,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:59.763480 +AWS,ap-south-1,c7i.metal-24xl,reserved_3y,partial_upfront,2.83652,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:57.183961 +AWS,ap-south-1,c7i.metal-24xl,spot,NA,1.085125,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339743 +AWS,ap-south-1,c7i.metal-48xl,on_demand,NA,8.568,USD,AWS Pricing API,2025-11-30T08:56:34.945450 +AWS,ap-south-1,c7i.metal-48xl,reserved_1y,all_upfront,7.197111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:06.689927 +AWS,ap-south-1,c7i.metal-48xl,reserved_1y,no_upfront,7.197111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:46.398421 +AWS,ap-south-1,c7i.metal-48xl,reserved_1y,partial_upfront,7.197111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:33.326981 +AWS,ap-south-1,c7i.metal-48xl,reserved_3y,all_upfront,3.598557,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:12.552458 +AWS,ap-south-1,c7i.metal-48xl,reserved_3y,no_upfront,3.598557,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:47.803266 +AWS,ap-south-1,c7i.metal-48xl,reserved_3y,partial_upfront,3.598557,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:45.499224 +AWS,ap-south-1,c7i.metal-48xl,spot,NA,1.898899,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339485 +AWS,ap-south-1,c7i.xlarge,on_demand,NA,0.1785,USD,AWS Pricing API,2025-11-30T08:57:28.705244 +AWS,ap-south-1,c7i.xlarge,reserved_1y,all_upfront,0.112559,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:00.205575 +AWS,ap-south-1,c7i.xlarge,reserved_1y,no_upfront,0.112559,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:40.568003 +AWS,ap-south-1,c7i.xlarge,reserved_1y,partial_upfront,0.112559,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:26.799106 +AWS,ap-south-1,c7i.xlarge,reserved_3y,all_upfront,0.07504,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:05.176008 +AWS,ap-south-1,c7i.xlarge,reserved_3y,no_upfront,0.07504,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:42.485240 +AWS,ap-south-1,c7i.xlarge,reserved_3y,partial_upfront,0.07504,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:38.798847 +AWS,ap-south-1,c7i.xlarge,spot,NA,0.071618,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340702 +AWS,ap-south-1,c8g.12xlarge,on_demand,NA,1.29552,USD,AWS Pricing API,2025-11-30T08:57:26.267319 +AWS,ap-south-1,c8g.12xlarge,reserved_1y,all_upfront,1.08827,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:57.758148 +AWS,ap-south-1,c8g.12xlarge,reserved_1y,no_upfront,1.08827,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:38.114544 +AWS,ap-south-1,c8g.12xlarge,reserved_1y,partial_upfront,1.08827,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:24.381238 +AWS,ap-south-1,c8g.12xlarge,reserved_3y,all_upfront,0.54413,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:02.777052 +AWS,ap-south-1,c8g.12xlarge,reserved_3y,no_upfront,0.54413,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:39.991139 +AWS,ap-south-1,c8g.12xlarge,reserved_3y,partial_upfront,0.54413,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:36.386154 +AWS,ap-south-1,c8g.12xlarge,spot,NA,0.51372,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340643 +AWS,ap-south-1,c8g.16xlarge,on_demand,NA,1.72736,USD,AWS Pricing API,2025-11-30T08:56:29.797287 +AWS,ap-south-1,c8g.16xlarge,reserved_1y,all_upfront,1.089275,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:01.520542 +AWS,ap-south-1,c8g.16xlarge,reserved_1y,no_upfront,1.089275,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:41.233892 +AWS,ap-south-1,c8g.16xlarge,reserved_1y,partial_upfront,1.089275,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:28.223502 +AWS,ap-south-1,c8g.16xlarge,reserved_3y,all_upfront,0.726185,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:07.501672 +AWS,ap-south-1,c8g.16xlarge,reserved_3y,no_upfront,0.726185,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:42.597683 +AWS,ap-south-1,c8g.16xlarge,reserved_3y,partial_upfront,0.726185,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:40.400437 +AWS,ap-south-1,c8g.16xlarge,spot,NA,0.617766,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339383 +AWS,ap-south-1,c8g.24xlarge,on_demand,NA,2.59104,USD,AWS Pricing API,2025-11-30T08:57:16.343267 +AWS,ap-south-1,c8g.24xlarge,reserved_1y,all_upfront,2.176426,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:47.772768 +AWS,ap-south-1,c8g.24xlarge,reserved_1y,no_upfront,2.176426,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:28.065183 +AWS,ap-south-1,c8g.24xlarge,reserved_1y,partial_upfront,2.176426,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:14.443544 +AWS,ap-south-1,c8g.24xlarge,reserved_3y,all_upfront,1.088222,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:52.913219 +AWS,ap-south-1,c8g.24xlarge,reserved_3y,no_upfront,1.088222,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:29.704210 +AWS,ap-south-1,c8g.24xlarge,reserved_3y,partial_upfront,1.088222,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:26.412661 +AWS,ap-south-1,c8g.24xlarge,spot,NA,0.793623,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340458 +AWS,ap-south-1,c8g.2xlarge,on_demand,NA,0.21592,USD,AWS Pricing API,2025-11-30T08:56:41.868029 +AWS,ap-south-1,c8g.2xlarge,reserved_1y,all_upfront,0.306279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:13.573252 +AWS,ap-south-1,c8g.2xlarge,reserved_1y,no_upfront,0.306279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:53.342513 +AWS,ap-south-1,c8g.2xlarge,reserved_1y,partial_upfront,0.306279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:40.214420 +AWS,ap-south-1,c8g.2xlarge,reserved_3y,all_upfront,0.102093,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:19.308473 +AWS,ap-south-1,c8g.2xlarge,reserved_3y,no_upfront,0.102093,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:54.821093 +AWS,ap-south-1,c8g.2xlarge,reserved_3y,partial_upfront,0.102093,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:52.357059 +AWS,ap-south-1,c8g.2xlarge,spot,NA,0.114747,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339629 +AWS,ap-south-1,c8g.48xlarge,on_demand,NA,5.18208,USD,AWS Pricing API,2025-11-30T08:57:34.991814 +AWS,ap-south-1,c8g.48xlarge,reserved_1y,all_upfront,2.35059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:06.600824 +AWS,ap-south-1,c8g.48xlarge,reserved_1y,no_upfront,2.35059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:46.964535 +AWS,ap-south-1,c8g.48xlarge,reserved_1y,partial_upfront,2.35059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:33.118410 +AWS,ap-south-1,c8g.48xlarge,reserved_3y,all_upfront,2.35059,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:11.374865 +AWS,ap-south-1,c8g.48xlarge,reserved_3y,no_upfront,2.35059,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:48.906241 +AWS,ap-south-1,c8g.48xlarge,reserved_3y,partial_upfront,2.35059,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:45.090169 +AWS,ap-south-1,c8g.48xlarge,spot,NA,1.464196,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340822 +AWS,ap-south-1,c8g.4xlarge,on_demand,NA,0.43184,USD,AWS Pricing API,2025-11-30T08:56:44.307868 +AWS,ap-south-1,c8g.4xlarge,reserved_1y,all_upfront,0.272347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:16.002454 +AWS,ap-south-1,c8g.4xlarge,reserved_1y,no_upfront,0.272347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:55.798330 +AWS,ap-south-1,c8g.4xlarge,reserved_1y,partial_upfront,0.272347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:42.638288 +AWS,ap-south-1,c8g.4xlarge,reserved_3y,all_upfront,0.181556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:21.690501 +AWS,ap-south-1,c8g.4xlarge,reserved_3y,no_upfront,0.181556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:57.293831 +AWS,ap-south-1,c8g.4xlarge,reserved_3y,partial_upfront,0.181556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:54.762252 +AWS,ap-south-1,c8g.4xlarge,spot,NA,0.217165,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339676 +AWS,ap-south-1,c8g.8xlarge,on_demand,NA,0.86368,USD,AWS Pricing API,2025-11-30T08:56:47.826093 +AWS,ap-south-1,c8g.8xlarge,reserved_1y,all_upfront,1.224886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:19.493898 +AWS,ap-south-1,c8g.8xlarge,reserved_1y,no_upfront,1.224886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:59.393271 +AWS,ap-south-1,c8g.8xlarge,reserved_1y,partial_upfront,1.224886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:46.163425 +AWS,ap-south-1,c8g.8xlarge,reserved_3y,all_upfront,0.408295,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:25.127164 +AWS,ap-south-1,c8g.8xlarge,reserved_3y,no_upfront,0.408295,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:00.854452 +AWS,ap-south-1,c8g.8xlarge,reserved_3y,partial_upfront,0.408295,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:58.264725 +AWS,ap-south-1,c8g.8xlarge,spot,NA,0.385911,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339773 +AWS,ap-south-1,c8g.large,on_demand,NA,0.05398,USD,AWS Pricing API,2025-11-30T08:57:29.373073 +AWS,ap-south-1,c8g.large,reserved_1y,all_upfront,0.039225,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:00.872889 +AWS,ap-south-1,c8g.large,reserved_1y,no_upfront,0.039225,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:41.243800 +AWS,ap-south-1,c8g.large,reserved_1y,partial_upfront,0.039225,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:27.464995 +AWS,ap-south-1,c8g.large,reserved_3y,all_upfront,0.026135,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:05.831168 +AWS,ap-south-1,c8g.large,reserved_3y,no_upfront,0.026135,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:43.168175 +AWS,ap-south-1,c8g.large,reserved_3y,partial_upfront,0.026135,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:39.474689 +AWS,ap-south-1,c8g.large,spot,NA,0.024939,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340734 +AWS,ap-south-1,c8g.medium,on_demand,NA,0.02699,USD,AWS Pricing API,2025-11-30T08:57:14.188200 +AWS,ap-south-1,c8g.medium,reserved_1y,all_upfront,0.019178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:45.626037 +AWS,ap-south-1,c8g.medium,reserved_1y,no_upfront,0.019178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:25.840228 +AWS,ap-south-1,c8g.medium,reserved_1y,partial_upfront,0.019178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:12.285980 +AWS,ap-south-1,c8g.medium,reserved_3y,all_upfront,0.006393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:50.746139 +AWS,ap-south-1,c8g.medium,reserved_3y,no_upfront,0.006393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:27.480525 +AWS,ap-south-1,c8g.medium,reserved_3y,partial_upfront,0.006393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:24.259249 +AWS,ap-south-1,c8g.medium,spot,NA,0.007629,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340407 +AWS,ap-south-1,c8g.xlarge,on_demand,NA,0.10796,USD,AWS Pricing API,2025-11-30T08:56:38.065882 +AWS,ap-south-1,c8g.xlarge,reserved_1y,all_upfront,0.076826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:09.798283 +AWS,ap-south-1,c8g.xlarge,reserved_1y,no_upfront,0.076826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:49.532316 +AWS,ap-south-1,c8g.xlarge,reserved_1y,partial_upfront,0.076826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:36.412770 +AWS,ap-south-1,c8g.xlarge,reserved_3y,all_upfront,0.025609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:15.605138 +AWS,ap-south-1,c8g.xlarge,reserved_3y,no_upfront,0.025609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:50.971989 +AWS,ap-south-1,c8g.xlarge,reserved_3y,partial_upfront,0.025609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:48.597946 +AWS,ap-south-1,c8g.xlarge,spot,NA,0.055119,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339560 +AWS,ap-south-1,d3.2xlarge,on_demand,NA,1.047,USD,AWS Pricing API,2025-11-30T08:57:04.093125 +AWS,ap-south-1,d3.2xlarge,reserved_1y,all_upfront,0.66,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:35.583746 +AWS,ap-south-1,d3.2xlarge,reserved_1y,no_upfront,0.66,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:15.742193 +AWS,ap-south-1,d3.2xlarge,reserved_1y,partial_upfront,0.66,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:02.281742 +AWS,ap-south-1,d3.2xlarge,reserved_3y,all_upfront,0.66,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:40.928699 +AWS,ap-south-1,d3.2xlarge,reserved_3y,no_upfront,0.66,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:17.280375 +AWS,ap-south-1,d3.2xlarge,reserved_3y,partial_upfront,0.66,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:14.282521 +AWS,ap-south-1,d3.2xlarge,spot,NA,0.31726,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340185 +AWS,ap-south-1,d3.4xlarge,on_demand,NA,2.095,USD,AWS Pricing API,2025-11-30T08:57:30.977177 +AWS,ap-south-1,d3.4xlarge,reserved_1y,all_upfront,1.256311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:02.553595 +AWS,ap-south-1,d3.4xlarge,reserved_1y,no_upfront,1.256311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:42.872037 +AWS,ap-south-1,d3.4xlarge,reserved_1y,partial_upfront,1.256311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:29.063152 +AWS,ap-south-1,d3.4xlarge,reserved_3y,all_upfront,0.837437,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:07.421029 +AWS,ap-south-1,d3.4xlarge,reserved_3y,no_upfront,0.837437,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:44.801096 +AWS,ap-south-1,d3.4xlarge,reserved_3y,partial_upfront,0.837437,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:41.081047 +AWS,ap-south-1,d3.4xlarge,spot,NA,0.677271,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340738 +AWS,ap-south-1,d3.8xlarge,on_demand,NA,4.18904,USD,AWS Pricing API,2025-11-30T08:56:34.395520 +AWS,ap-south-1,d3.8xlarge,reserved_1y,all_upfront,2.513445,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:06.154927 +AWS,ap-south-1,d3.8xlarge,reserved_1y,no_upfront,2.513445,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:45.859368 +AWS,ap-south-1,d3.8xlarge,reserved_1y,partial_upfront,2.513445,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:32.790690 +AWS,ap-south-1,d3.8xlarge,reserved_3y,all_upfront,1.675622,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:12.019079 +AWS,ap-south-1,d3.8xlarge,reserved_3y,no_upfront,1.675622,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:47.255761 +AWS,ap-south-1,d3.8xlarge,reserved_3y,partial_upfront,1.675622,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:44.952909 +AWS,ap-south-1,d3.8xlarge,spot,NA,0.853783,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339468 +AWS,ap-south-1,d3.xlarge,on_demand,NA,0.524,USD,AWS Pricing API,2025-11-30T08:56:31.824757 +AWS,ap-south-1,d3.xlarge,reserved_1y,all_upfront,0.33,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:03.585253 +AWS,ap-south-1,d3.xlarge,reserved_1y,no_upfront,0.33,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:43.269671 +AWS,ap-south-1,d3.xlarge,reserved_1y,partial_upfront,0.33,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:30.231037 +AWS,ap-south-1,d3.xlarge,reserved_3y,all_upfront,0.33,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:09.490711 +AWS,ap-south-1,d3.xlarge,reserved_3y,no_upfront,0.33,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:44.670929 +AWS,ap-south-1,d3.xlarge,reserved_3y,partial_upfront,0.33,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:42.417557 +AWS,ap-south-1,d3.xlarge,spot,NA,0.145088,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339404 +AWS,ap-south-1,g4dn.12xlarge,on_demand,NA,4.306,USD,AWS Pricing API,2025-11-30T08:56:34.807705 +AWS,ap-south-1,g4dn.12xlarge,reserved_1y,all_upfront,2.713,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:06.555951 +AWS,ap-south-1,g4dn.12xlarge,reserved_1y,no_upfront,2.713,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:46.263167 +AWS,ap-south-1,g4dn.12xlarge,reserved_1y,partial_upfront,2.713,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:33.193072 +AWS,ap-south-1,g4dn.12xlarge,reserved_3y,all_upfront,2.713,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:12.422639 +AWS,ap-south-1,g4dn.12xlarge,reserved_3y,no_upfront,2.713,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:47.666925 +AWS,ap-south-1,g4dn.12xlarge,reserved_3y,partial_upfront,2.713,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:45.359100 +AWS,ap-south-1,g4dn.12xlarge,spot,NA,1.622567,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339452 +AWS,ap-south-1,g4dn.16xlarge,on_demand,NA,4.791,USD,AWS Pricing API,2025-11-30T08:56:41.038495 +AWS,ap-south-1,g4dn.16xlarge,reserved_1y,all_upfront,2.816781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:12.758491 +AWS,ap-south-1,g4dn.16xlarge,reserved_1y,no_upfront,2.816781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:52.522907 +AWS,ap-south-1,g4dn.16xlarge,reserved_1y,partial_upfront,2.816781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:39.404942 +AWS,ap-south-1,g4dn.16xlarge,reserved_3y,all_upfront,0.938927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:18.516223 +AWS,ap-south-1,g4dn.16xlarge,reserved_3y,no_upfront,0.938927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:53.991313 +AWS,ap-south-1,g4dn.16xlarge,reserved_3y,partial_upfront,0.938927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:51.552746 +AWS,ap-south-1,g4dn.16xlarge,spot,NA,0.994384,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339617 +AWS,ap-south-1,g4dn.2xlarge,on_demand,NA,0.828,USD,AWS Pricing API,2025-11-30T08:57:15.135438 +AWS,ap-south-1,g4dn.2xlarge,reserved_1y,all_upfront,0.496288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:46.568173 +AWS,ap-south-1,g4dn.2xlarge,reserved_1y,no_upfront,0.496288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:26.798116 +AWS,ap-south-1,g4dn.2xlarge,reserved_1y,partial_upfront,0.496288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:13.240178 +AWS,ap-south-1,g4dn.2xlarge,reserved_3y,all_upfront,0.330763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:51.714172 +AWS,ap-south-1,g4dn.2xlarge,reserved_3y,no_upfront,0.330763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:28.442307 +AWS,ap-south-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.330763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:25.198980 +AWS,ap-south-1,g4dn.2xlarge,spot,NA,0.251517,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340411 +AWS,ap-south-1,g4dn.4xlarge,on_demand,NA,1.325,USD,AWS Pricing API,2025-11-30T08:56:55.685326 +AWS,ap-south-1,g4dn.4xlarge,reserved_1y,all_upfront,0.779338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:27.191880 +AWS,ap-south-1,g4dn.4xlarge,reserved_1y,no_upfront,0.779338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:07.254769 +AWS,ap-south-1,g4dn.4xlarge,reserved_1y,partial_upfront,0.779338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:53.852258 +AWS,ap-south-1,g4dn.4xlarge,reserved_3y,all_upfront,0.259779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:32.679131 +AWS,ap-south-1,g4dn.4xlarge,reserved_3y,no_upfront,0.259779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:08.726463 +AWS,ap-south-1,g4dn.4xlarge,reserved_3y,partial_upfront,0.259779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:05.922199 +AWS,ap-south-1,g4dn.4xlarge,spot,NA,0.504291,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339982 +AWS,ap-south-1,g4dn.8xlarge,on_demand,NA,2.395,USD,AWS Pricing API,2025-11-30T08:56:58.424752 +AWS,ap-south-1,g4dn.8xlarge,reserved_1y,all_upfront,1.408447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:29.906327 +AWS,ap-south-1,g4dn.8xlarge,reserved_1y,no_upfront,1.408447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:10.001268 +AWS,ap-south-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.408447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:56.559044 +AWS,ap-south-1,g4dn.8xlarge,reserved_3y,all_upfront,0.469482,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:35.341185 +AWS,ap-south-1,g4dn.8xlarge,reserved_3y,no_upfront,0.469482,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:11.480069 +AWS,ap-south-1,g4dn.8xlarge,reserved_3y,partial_upfront,0.469482,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:08.667682 +AWS,ap-south-1,g4dn.8xlarge,spot,NA,0.725398,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340084 +AWS,ap-south-1,g4dn.xlarge,on_demand,NA,0.579,USD,AWS Pricing API,2025-11-30T08:57:21.692394 +AWS,ap-south-1,g4dn.xlarge,reserved_1y,all_upfront,0.365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:53.182080 +AWS,ap-south-1,g4dn.xlarge,reserved_1y,no_upfront,0.365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:33.495448 +AWS,ap-south-1,g4dn.xlarge,reserved_1y,partial_upfront,0.365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:19.817893 +AWS,ap-south-1,g4dn.xlarge,reserved_3y,all_upfront,0.365,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:58.190198 +AWS,ap-south-1,g4dn.xlarge,reserved_3y,no_upfront,0.365,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:35.335756 +AWS,ap-south-1,g4dn.xlarge,reserved_3y,partial_upfront,0.365,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:31.757353 +AWS,ap-south-1,g4dn.xlarge,spot,NA,0.20545,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340558 +AWS,ap-south-1,g5.12xlarge,on_demand,NA,6.81091,USD,AWS Pricing API,2025-11-30T08:56:20.231016 +AWS,ap-south-1,g5.12xlarge,reserved_1y,all_upfront,4.29087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:51.922484 +AWS,ap-south-1,g5.12xlarge,reserved_1y,no_upfront,4.29087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:31.505047 +AWS,ap-south-1,g5.12xlarge,reserved_1y,partial_upfront,4.29087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:18.710567 +AWS,ap-south-1,g5.12xlarge,reserved_3y,all_upfront,4.29087,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:58.020481 +AWS,ap-south-1,g5.12xlarge,reserved_3y,no_upfront,4.29087,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:32.754274 +AWS,ap-south-1,g5.12xlarge,reserved_3y,partial_upfront,4.29087,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:30.859274 +AWS,ap-south-1,g5.12xlarge,spot,NA,2.033154,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339179 +AWS,ap-south-1,g5.16xlarge,on_demand,NA,4.91846,USD,AWS Pricing API,2025-11-30T08:56:22.240658 +AWS,ap-south-1,g5.16xlarge,reserved_1y,all_upfront,5.548059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:53.950984 +AWS,ap-south-1,g5.16xlarge,reserved_1y,no_upfront,5.548059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:33.623627 +AWS,ap-south-1,g5.16xlarge,reserved_1y,partial_upfront,5.548059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:20.720748 +AWS,ap-south-1,g5.16xlarge,reserved_3y,all_upfront,1.849353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:00.024949 +AWS,ap-south-1,g5.16xlarge,reserved_3y,no_upfront,1.849353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:34.801737 +AWS,ap-south-1,g5.16xlarge,reserved_3y,partial_upfront,1.849353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:32.883695 +AWS,ap-south-1,g5.16xlarge,spot,NA,1.479157,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339225 +AWS,ap-south-1,g5.24xlarge,on_demand,NA,9.77928,USD,AWS Pricing API,2025-11-30T08:56:21.177262 +AWS,ap-south-1,g5.24xlarge,reserved_1y,all_upfront,7.70118,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:52.881085 +AWS,ap-south-1,g5.24xlarge,reserved_1y,no_upfront,7.70118,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:32.456495 +AWS,ap-south-1,g5.24xlarge,reserved_1y,partial_upfront,7.70118,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:19.651246 +AWS,ap-south-1,g5.24xlarge,reserved_3y,all_upfront,7.70118,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:58.968591 +AWS,ap-south-1,g5.24xlarge,reserved_3y,no_upfront,7.70118,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:33.718382 +AWS,ap-south-1,g5.24xlarge,reserved_3y,partial_upfront,7.70118,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:31.806718 +AWS,ap-south-1,g5.24xlarge,spot,NA,2.740527,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339199 +AWS,ap-south-1,g5.2xlarge,on_demand,NA,1.45536,USD,AWS Pricing API,2025-11-30T08:56:38.201060 +AWS,ap-south-1,g5.2xlarge,reserved_1y,all_upfront,0.873254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:09.933175 +AWS,ap-south-1,g5.2xlarge,reserved_1y,no_upfront,0.873254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:49.667345 +AWS,ap-south-1,g5.2xlarge,reserved_1y,partial_upfront,0.873254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:36.548447 +AWS,ap-south-1,g5.2xlarge,reserved_3y,all_upfront,0.582158,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:15.738401 +AWS,ap-south-1,g5.2xlarge,reserved_3y,no_upfront,0.582158,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:51.111621 +AWS,ap-south-1,g5.2xlarge,reserved_3y,partial_upfront,0.582158,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:48.730713 +AWS,ap-south-1,g5.2xlarge,spot,NA,0.50144,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339564 +AWS,ap-south-1,g5.48xlarge,on_demand,NA,19.55855,USD,AWS Pricing API,2025-11-30T08:56:22.919715 +AWS,ap-south-1,g5.48xlarge,reserved_1y,all_upfront,11.73515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:54.638236 +AWS,ap-south-1,g5.48xlarge,reserved_1y,no_upfront,11.73515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:34.313293 +AWS,ap-south-1,g5.48xlarge,reserved_1y,partial_upfront,11.73515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:21.392298 +AWS,ap-south-1,g5.48xlarge,reserved_3y,all_upfront,7.82343,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:00.692842 +AWS,ap-south-1,g5.48xlarge,reserved_3y,no_upfront,7.82343,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:35.485586 +AWS,ap-south-1,g5.48xlarge,reserved_3y,partial_upfront,7.82343,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:33.557148 +AWS,ap-south-1,g5.48xlarge,spot,NA,5.156999,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339267 +AWS,ap-south-1,g5.4xlarge,on_demand,NA,1.95009,USD,AWS Pricing API,2025-11-30T08:56:32.373210 +AWS,ap-south-1,g5.4xlarge,reserved_1y,all_upfront,2.199658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:04.123361 +AWS,ap-south-1,g5.4xlarge,reserved_1y,no_upfront,2.199658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:43.818000 +AWS,ap-south-1,g5.4xlarge,reserved_1y,partial_upfront,2.199658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:30.777589 +AWS,ap-south-1,g5.4xlarge,reserved_3y,all_upfront,0.733219,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:10.020767 +AWS,ap-south-1,g5.4xlarge,reserved_3y,no_upfront,0.733219,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:45.213197 +AWS,ap-south-1,g5.4xlarge,reserved_3y,partial_upfront,0.733219,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:42.949399 +AWS,ap-south-1,g5.4xlarge,spot,NA,0.623177,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339424 +AWS,ap-south-1,g5.8xlarge,on_demand,NA,2.93955,USD,AWS Pricing API,2025-11-30T08:56:40.085741 +AWS,ap-south-1,g5.8xlarge,reserved_1y,all_upfront,2.31489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:11.821150 +AWS,ap-south-1,g5.8xlarge,reserved_1y,no_upfront,2.31489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:51.572797 +AWS,ap-south-1,g5.8xlarge,reserved_1y,partial_upfront,2.31489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:38.446517 +AWS,ap-south-1,g5.8xlarge,reserved_3y,all_upfront,2.31489,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:17.581529 +AWS,ap-south-1,g5.8xlarge,reserved_3y,no_upfront,2.31489,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:53.034444 +AWS,ap-south-1,g5.8xlarge,reserved_3y,partial_upfront,2.31489,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:50.614171 +AWS,ap-south-1,g5.8xlarge,spot,NA,1.026825,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339588 +AWS,ap-south-1,g5.xlarge,on_demand,NA,1.208,USD,AWS Pricing API,2025-11-30T08:57:27.221407 +AWS,ap-south-1,g5.xlarge,reserved_1y,all_upfront,0.76104,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:58.727167 +AWS,ap-south-1,g5.xlarge,reserved_1y,no_upfront,0.76104,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:39.073614 +AWS,ap-south-1,g5.xlarge,reserved_1y,partial_upfront,0.76104,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:25.326223 +AWS,ap-south-1,g5.xlarge,reserved_3y,all_upfront,0.76104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:03.719679 +AWS,ap-south-1,g5.xlarge,reserved_3y,no_upfront,0.76104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:40.985637 +AWS,ap-south-1,g5.xlarge,reserved_3y,partial_upfront,0.76104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:37.335005 +AWS,ap-south-1,g5.xlarge,spot,NA,0.407758,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340694 +AWS,ap-south-1,g6.12xlarge,on_demand,NA,5.52558,USD,AWS Pricing API,2025-11-30T08:56:23.595355 +AWS,ap-south-1,g6.12xlarge,reserved_1y,all_upfront,4.696793,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:55.316917 +AWS,ap-south-1,g6.12xlarge,reserved_1y,no_upfront,4.696793,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:34.989792 +AWS,ap-south-1,g6.12xlarge,reserved_1y,partial_upfront,4.696793,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:22.060382 +AWS,ap-south-1,g6.12xlarge,reserved_3y,all_upfront,2.348391,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:01.351082 +AWS,ap-south-1,g6.12xlarge,reserved_3y,no_upfront,2.348391,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:36.176581 +AWS,ap-south-1,g6.12xlarge,reserved_3y,partial_upfront,2.348391,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:34.227625 +AWS,ap-south-1,g6.12xlarge,spot,NA,1.951739,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339254 +AWS,ap-south-1,g6.16xlarge,on_demand,NA,4.07886,USD,AWS Pricing API,2025-11-30T08:56:20.909538 +AWS,ap-south-1,g6.16xlarge,reserved_1y,all_upfront,2.478311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:52.598667 +AWS,ap-south-1,g6.16xlarge,reserved_1y,no_upfront,2.478311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:32.187339 +AWS,ap-south-1,g6.16xlarge,reserved_1y,partial_upfront,2.478311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:19.381804 +AWS,ap-south-1,g6.16xlarge,reserved_3y,all_upfront,0.826104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:58.702484 +AWS,ap-south-1,g6.16xlarge,reserved_3y,no_upfront,0.826104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:33.447708 +AWS,ap-south-1,g6.16xlarge,reserved_3y,partial_upfront,0.826104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:31.537309 +AWS,ap-south-1,g6.16xlarge,spot,NA,1.034717,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339193 +AWS,ap-south-1,g6.24xlarge,on_demand,NA,8.01555,USD,AWS Pricing API,2025-11-30T08:56:21.043549 +AWS,ap-south-1,g6.24xlarge,reserved_1y,all_upfront,5.21812,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:52.743973 +AWS,ap-south-1,g6.24xlarge,reserved_1y,no_upfront,5.21812,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:32.322367 +AWS,ap-south-1,g6.24xlarge,reserved_1y,partial_upfront,5.21812,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:19.517590 +AWS,ap-south-1,g6.24xlarge,reserved_3y,all_upfront,5.21812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:58.832711 +AWS,ap-south-1,g6.24xlarge,reserved_3y,no_upfront,5.21812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:33.582488 +AWS,ap-south-1,g6.24xlarge,reserved_3y,partial_upfront,5.21812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:31.671360 +AWS,ap-south-1,g6.24xlarge,spot,NA,2.647018,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339189 +AWS,ap-south-1,g6.2xlarge,on_demand,NA,1.1739,USD,AWS Pricing API,2025-11-30T08:56:22.649475 +AWS,ap-south-1,g6.2xlarge,reserved_1y,all_upfront,0.891553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:54.366220 +AWS,ap-south-1,g6.2xlarge,reserved_1y,no_upfront,0.891553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:34.037459 +AWS,ap-south-1,g6.2xlarge,reserved_1y,partial_upfront,0.891553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:21.120483 +AWS,ap-south-1,g6.2xlarge,reserved_3y,all_upfront,0.297184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:00.422021 +AWS,ap-south-1,g6.2xlarge,reserved_3y,no_upfront,0.297184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:35.214245 +AWS,ap-south-1,g6.2xlarge,reserved_3y,partial_upfront,0.297184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:33.286572 +AWS,ap-south-1,g6.2xlarge,spot,NA,0.386245,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339212 +AWS,ap-south-1,g6.48xlarge,on_demand,NA,16.0311,USD,AWS Pricing API,2025-11-30T08:56:20.507726 +AWS,ap-south-1,g6.48xlarge,reserved_1y,all_upfront,9.740525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:52.191390 +AWS,ap-south-1,g6.48xlarge,reserved_1y,no_upfront,9.740525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:31.776597 +AWS,ap-south-1,g6.48xlarge,reserved_1y,partial_upfront,9.740525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:18.980240 +AWS,ap-south-1,g6.48xlarge,reserved_3y,all_upfront,3.246842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:58.306578 +AWS,ap-south-1,g6.48xlarge,reserved_3y,no_upfront,3.246842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:33.028512 +AWS,ap-south-1,g6.48xlarge,reserved_3y,partial_upfront,3.246842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:31.125487 +AWS,ap-south-1,g6.48xlarge,spot,NA,3.455345,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339163 +AWS,ap-south-1,g6.4xlarge,on_demand,NA,1.58889,USD,AWS Pricing API,2025-11-30T08:56:21.314962 +AWS,ap-south-1,g6.4xlarge,reserved_1y,all_upfront,1.206735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:53.017205 +AWS,ap-south-1,g6.4xlarge,reserved_1y,no_upfront,1.206735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:32.593046 +AWS,ap-south-1,g6.4xlarge,reserved_1y,partial_upfront,1.206735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:19.784398 +AWS,ap-south-1,g6.4xlarge,reserved_3y,all_upfront,0.402245,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:59.099166 +AWS,ap-south-1,g6.4xlarge,reserved_3y,no_upfront,0.402245,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:33.855072 +AWS,ap-south-1,g6.4xlarge,reserved_3y,partial_upfront,0.402245,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:31.950149 +AWS,ap-south-1,g6.4xlarge,spot,NA,0.458084,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339203 +AWS,ap-south-1,g6.8xlarge,on_demand,NA,2.41888,USD,AWS Pricing API,2025-11-30T08:56:22.104786 +AWS,ap-south-1,g6.8xlarge,reserved_1y,all_upfront,1.8371,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:53.814367 +AWS,ap-south-1,g6.8xlarge,reserved_1y,no_upfront,1.8371,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:33.488480 +AWS,ap-south-1,g6.8xlarge,reserved_1y,partial_upfront,1.8371,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:20.584905 +AWS,ap-south-1,g6.8xlarge,reserved_3y,all_upfront,0.612367,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:59.891555 +AWS,ap-south-1,g6.8xlarge,reserved_3y,no_upfront,0.612367,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:34.667126 +AWS,ap-south-1,g6.8xlarge,reserved_3y,partial_upfront,0.612367,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:32.746857 +AWS,ap-south-1,g6.8xlarge,spot,NA,0.781957,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339216 +AWS,ap-south-1,g6.xlarge,on_demand,NA,0.9664,USD,AWS Pricing API,2025-11-30T08:56:20.643469 +AWS,ap-south-1,g6.xlarge,reserved_1y,all_upfront,0.748909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:52.328835 +AWS,ap-south-1,g6.xlarge,reserved_1y,no_upfront,0.748909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:31.912771 +AWS,ap-south-1,g6.xlarge,reserved_1y,partial_upfront,0.748909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:19.116102 +AWS,ap-south-1,g6.xlarge,reserved_3y,all_upfront,0.49929,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:58.437251 +AWS,ap-south-1,g6.xlarge,reserved_3y,no_upfront,0.49929,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:33.165146 +AWS,ap-south-1,g6.xlarge,reserved_3y,partial_upfront,0.49929,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:31.260097 +AWS,ap-south-1,g6.xlarge,spot,NA,0.396169,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339185 +AWS,ap-south-1,gr6.4xlarge,on_demand,NA,1.8483,USD,AWS Pricing API,2025-11-30T08:56:21.970419 +AWS,ap-south-1,gr6.4xlarge,reserved_1y,all_upfront,1.50405,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:53.680587 +AWS,ap-south-1,gr6.4xlarge,reserved_1y,no_upfront,1.50405,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:33.351191 +AWS,ap-south-1,gr6.4xlarge,reserved_1y,partial_upfront,1.50405,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:20.448721 +AWS,ap-south-1,gr6.4xlarge,reserved_3y,all_upfront,1.50405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:59.758898 +AWS,ap-south-1,gr6.4xlarge,reserved_3y,no_upfront,1.50405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:34.531331 +AWS,ap-south-1,gr6.4xlarge,reserved_3y,partial_upfront,1.50405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:32.609829 +AWS,ap-south-1,gr6.4xlarge,spot,NA,0.465274,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339229 +AWS,ap-south-1,gr6.8xlarge,on_demand,NA,2.93768,USD,AWS Pricing API,2025-11-30T08:56:23.319344 +AWS,ap-south-1,gr6.8xlarge,reserved_1y,all_upfront,3.520776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:55.037311 +AWS,ap-south-1,gr6.8xlarge,reserved_1y,no_upfront,3.520776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:34.714792 +AWS,ap-south-1,gr6.8xlarge,reserved_1y,partial_upfront,3.520776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:21.791092 +AWS,ap-south-1,gr6.8xlarge,reserved_3y,all_upfront,1.173592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:01.085122 +AWS,ap-south-1,gr6.8xlarge,reserved_3y,no_upfront,1.173592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:35.900137 +AWS,ap-south-1,gr6.8xlarge,reserved_3y,partial_upfront,1.173592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:33.961578 +AWS,ap-south-1,gr6.8xlarge,spot,NA,0.741981,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339258 +AWS,ap-south-1,i2.2xlarge,on_demand,NA,1.933,USD,AWS Pricing API,2025-11-30T08:57:09.380031 +AWS,ap-south-1,i2.2xlarge,reserved_1y,all_upfront,0.974087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:40.876970 +AWS,ap-south-1,i2.2xlarge,reserved_1y,no_upfront,0.974087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:21.041766 +AWS,ap-south-1,i2.2xlarge,reserved_1y,partial_upfront,0.974087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:07.576801 +AWS,ap-south-1,i2.2xlarge,reserved_3y,all_upfront,0.324696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:46.092586 +AWS,ap-south-1,i2.2xlarge,reserved_3y,no_upfront,0.324696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:22.629739 +AWS,ap-south-1,i2.2xlarge,reserved_3y,partial_upfront,0.324696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:19.539070 +AWS,ap-south-1,i2.2xlarge,spot,NA,0.338784,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340294 +AWS,ap-south-1,i2.4xlarge,on_demand,NA,3.867,USD,AWS Pricing API,2025-11-30T08:57:05.311997 +AWS,ap-south-1,i2.4xlarge,reserved_1y,all_upfront,1.986265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:36.795130 +AWS,ap-south-1,i2.4xlarge,reserved_1y,no_upfront,1.986265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:16.965914 +AWS,ap-south-1,i2.4xlarge,reserved_1y,partial_upfront,1.986265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:03.510012 +AWS,ap-south-1,i2.4xlarge,reserved_3y,all_upfront,1.324088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:42.128139 +AWS,ap-south-1,i2.4xlarge,reserved_3y,no_upfront,1.324088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:18.504239 +AWS,ap-south-1,i2.4xlarge,reserved_3y,partial_upfront,1.324088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:15.487536 +AWS,ap-south-1,i2.4xlarge,spot,NA,0.803916,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340221 +AWS,ap-south-1,i2.8xlarge,on_demand,NA,7.733,USD,AWS Pricing API,2025-11-30T08:57:12.005139 +AWS,ap-south-1,i2.8xlarge,reserved_1y,all_upfront,4.563621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:43.462670 +AWS,ap-south-1,i2.8xlarge,reserved_1y,no_upfront,4.563621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:23.660108 +AWS,ap-south-1,i2.8xlarge,reserved_1y,partial_upfront,4.563621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:10.118373 +AWS,ap-south-1,i2.8xlarge,reserved_3y,all_upfront,3.04254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:48.611209 +AWS,ap-south-1,i2.8xlarge,reserved_3y,no_upfront,3.04254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:25.240649 +AWS,ap-south-1,i2.8xlarge,reserved_3y,partial_upfront,3.04254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:22.083237 +AWS,ap-south-1,i2.8xlarge,spot,NA,1.191533,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340346 +AWS,ap-south-1,i2.xlarge,on_demand,NA,0.967,USD,AWS Pricing API,2025-11-30T08:57:12.554842 +AWS,ap-south-1,i2.xlarge,reserved_1y,all_upfront,0.599,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:43.999851 +AWS,ap-south-1,i2.xlarge,reserved_1y,no_upfront,0.599,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:24.204938 +AWS,ap-south-1,i2.xlarge,reserved_1y,partial_upfront,0.599,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:10.665017 +AWS,ap-south-1,i2.xlarge,reserved_3y,all_upfront,0.599,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:49.140046 +AWS,ap-south-1,i2.xlarge,reserved_3y,no_upfront,0.599,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:25.789263 +AWS,ap-south-1,i2.xlarge,reserved_3y,partial_upfront,0.599,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:22.628141 +AWS,ap-south-1,i2.xlarge,spot,NA,0.148387,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340358 +AWS,ap-south-1,i3.16xlarge,on_demand,NA,5.664,USD,AWS Pricing API,2025-11-30T08:57:18.773839 +AWS,ap-south-1,i3.16xlarge,reserved_1y,all_upfront,3.607991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:50.220520 +AWS,ap-south-1,i3.16xlarge,reserved_1y,no_upfront,3.607991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:30.527064 +AWS,ap-south-1,i3.16xlarge,reserved_1y,partial_upfront,3.607991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:16.873291 +AWS,ap-south-1,i3.16xlarge,reserved_3y,all_upfront,1.202664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:55.298848 +AWS,ap-south-1,i3.16xlarge,reserved_3y,no_upfront,1.202664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:32.270403 +AWS,ap-south-1,i3.16xlarge,reserved_3y,partial_upfront,1.202664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:28.813154 +AWS,ap-south-1,i3.16xlarge,spot,NA,1.203819,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340507 +AWS,ap-south-1,i3.2xlarge,on_demand,NA,0.708,USD,AWS Pricing API,2025-11-30T08:56:38.335952 +AWS,ap-south-1,i3.2xlarge,reserved_1y,all_upfront,0.735941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:10.069342 +AWS,ap-south-1,i3.2xlarge,reserved_1y,no_upfront,0.735941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:49.805196 +AWS,ap-south-1,i3.2xlarge,reserved_1y,partial_upfront,0.735941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:36.686027 +AWS,ap-south-1,i3.2xlarge,reserved_3y,all_upfront,0.36798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:15.871564 +AWS,ap-south-1,i3.2xlarge,reserved_3y,no_upfront,0.36798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:51.249292 +AWS,ap-south-1,i3.2xlarge,reserved_3y,partial_upfront,0.36798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:48.864266 +AWS,ap-south-1,i3.2xlarge,spot,NA,0.263531,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339556 +AWS,ap-south-1,i3.4xlarge,on_demand,NA,1.416,USD,AWS Pricing API,2025-11-30T08:56:39.818302 +AWS,ap-south-1,i3.4xlarge,reserved_1y,all_upfront,0.974,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:11.557325 +AWS,ap-south-1,i3.4xlarge,reserved_1y,no_upfront,0.974,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:51.302273 +AWS,ap-south-1,i3.4xlarge,reserved_1y,partial_upfront,0.974,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:38.171451 +AWS,ap-south-1,i3.4xlarge,reserved_3y,all_upfront,0.974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:17.320184 +AWS,ap-south-1,i3.4xlarge,reserved_3y,no_upfront,0.974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:52.762342 +AWS,ap-south-1,i3.4xlarge,reserved_3y,partial_upfront,0.974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:50.342656 +AWS,ap-south-1,i3.4xlarge,spot,NA,0.493337,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339584 +AWS,ap-south-1,i3.8xlarge,on_demand,NA,2.832,USD,AWS Pricing API,2025-11-30T08:56:33.978556 +AWS,ap-south-1,i3.8xlarge,reserved_1y,all_upfront,2.241,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:05.738500 +AWS,ap-south-1,i3.8xlarge,reserved_1y,no_upfront,2.241,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:45.448766 +AWS,ap-south-1,i3.8xlarge,reserved_1y,partial_upfront,2.241,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:32.389601 +AWS,ap-south-1,i3.8xlarge,reserved_3y,all_upfront,2.241,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:11.614130 +AWS,ap-south-1,i3.8xlarge,reserved_3y,no_upfront,2.241,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:46.845097 +AWS,ap-south-1,i3.8xlarge,reserved_3y,partial_upfront,2.241,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:44.550002 +AWS,ap-south-1,i3.8xlarge,spot,NA,0.604365,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339448 +AWS,ap-south-1,i3.large,on_demand,NA,0.177,USD,AWS Pricing API,2025-11-30T08:56:39.012231 +AWS,ap-south-1,i3.large,reserved_1y,all_upfront,0.122,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:10.755188 +AWS,ap-south-1,i3.large,reserved_1y,no_upfront,0.122,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:50.484776 +AWS,ap-south-1,i3.large,reserved_1y,partial_upfront,0.122,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:37.368029 +AWS,ap-south-1,i3.large,reserved_3y,all_upfront,0.122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:16.536652 +AWS,ap-south-1,i3.large,reserved_3y,no_upfront,0.122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:51.938617 +AWS,ap-south-1,i3.large,reserved_3y,partial_upfront,0.122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:49.537061 +AWS,ap-south-1,i3.large,spot,NA,0.046289,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339592 +AWS,ap-south-1,i3.xlarge,on_demand,NA,0.354,USD,AWS Pricing API,2025-11-30T08:57:04.495926 +AWS,ap-south-1,i3.xlarge,reserved_1y,all_upfront,0.28,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:35.984281 +AWS,ap-south-1,i3.xlarge,reserved_1y,no_upfront,0.28,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:16.148755 +AWS,ap-south-1,i3.xlarge,reserved_1y,partial_upfront,0.28,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:02.688235 +AWS,ap-south-1,i3.xlarge,reserved_3y,all_upfront,0.28,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:41.331780 +AWS,ap-south-1,i3.xlarge,reserved_3y,no_upfront,0.28,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:17.686576 +AWS,ap-south-1,i3.xlarge,reserved_3y,partial_upfront,0.28,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:14.680036 +AWS,ap-south-1,i3.xlarge,spot,NA,0.116382,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340181 +AWS,ap-south-1,i3en.12xlarge,on_demand,NA,6.168,USD,AWS Pricing API,2025-11-30T08:56:36.019977 +AWS,ap-south-1,i3en.12xlarge,reserved_1y,all_upfront,4.987753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:07.765426 +AWS,ap-south-1,i3en.12xlarge,reserved_1y,no_upfront,4.987753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:47.484339 +AWS,ap-south-1,i3en.12xlarge,reserved_1y,partial_upfront,4.987753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:34.392833 +AWS,ap-south-1,i3en.12xlarge,reserved_3y,all_upfront,2.493918,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:13.607960 +AWS,ap-south-1,i3en.12xlarge,reserved_3y,no_upfront,2.493918,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:48.898140 +AWS,ap-south-1,i3en.12xlarge,reserved_3y,partial_upfront,2.493918,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:46.581610 +AWS,ap-south-1,i3en.12xlarge,spot,NA,2.357087,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339477 +AWS,ap-south-1,i3en.24xlarge,on_demand,NA,12.336,USD,AWS Pricing API,2025-11-30T08:56:41.313741 +AWS,ap-south-1,i3en.24xlarge,reserved_1y,all_upfront,9.749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:13.035699 +AWS,ap-south-1,i3en.24xlarge,reserved_1y,no_upfront,9.749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:52.794358 +AWS,ap-south-1,i3en.24xlarge,reserved_1y,partial_upfront,9.749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:39.676886 +AWS,ap-south-1,i3en.24xlarge,reserved_3y,all_upfront,9.749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:18.781946 +AWS,ap-south-1,i3en.24xlarge,reserved_3y,no_upfront,9.749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:54.266324 +AWS,ap-south-1,i3en.24xlarge,reserved_3y,partial_upfront,9.749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:51.820581 +AWS,ap-south-1,i3en.24xlarge,spot,NA,3.965819,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339604 +AWS,ap-south-1,i3en.2xlarge,on_demand,NA,1.028,USD,AWS Pricing API,2025-11-30T08:56:31.153739 +AWS,ap-south-1,i3en.2xlarge,reserved_1y,all_upfront,0.773872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:02.913246 +AWS,ap-south-1,i3en.2xlarge,reserved_1y,no_upfront,0.773872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:42.592016 +AWS,ap-south-1,i3en.2xlarge,reserved_1y,partial_upfront,0.773872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:29.564862 +AWS,ap-south-1,i3en.2xlarge,reserved_3y,all_upfront,0.515957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:08.833367 +AWS,ap-south-1,i3en.2xlarge,reserved_3y,no_upfront,0.515957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:43.973008 +AWS,ap-south-1,i3en.2xlarge,reserved_3y,partial_upfront,0.515957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:41.728643 +AWS,ap-south-1,i3en.2xlarge,spot,NA,0.46026,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339395 +AWS,ap-south-1,i3en.3xlarge,on_demand,NA,1.542,USD,AWS Pricing API,2025-11-30T08:57:25.849325 +AWS,ap-south-1,i3en.3xlarge,reserved_1y,all_upfront,1.002027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:57.355547 +AWS,ap-south-1,i3en.3xlarge,reserved_1y,no_upfront,1.002027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:37.702780 +AWS,ap-south-1,i3en.3xlarge,reserved_1y,partial_upfront,1.002027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:23.974928 +AWS,ap-south-1,i3en.3xlarge,reserved_3y,all_upfront,0.668009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:02.377039 +AWS,ap-south-1,i3en.3xlarge,reserved_3y,no_upfront,0.668009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:39.578886 +AWS,ap-south-1,i3en.3xlarge,reserved_3y,partial_upfront,0.668009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:35.988341 +AWS,ap-south-1,i3en.3xlarge,spot,NA,0.629125,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340651 +AWS,ap-south-1,i3en.6xlarge,on_demand,NA,3.084,USD,AWS Pricing API,2025-11-30T08:57:17.294583 +AWS,ap-south-1,i3en.6xlarge,reserved_1y,all_upfront,2.437,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:48.715442 +AWS,ap-south-1,i3en.6xlarge,reserved_1y,no_upfront,2.437,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:29.033939 +AWS,ap-south-1,i3en.6xlarge,reserved_1y,partial_upfront,2.437,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:15.384127 +AWS,ap-south-1,i3en.6xlarge,reserved_3y,all_upfront,2.437,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:53.847646 +AWS,ap-south-1,i3en.6xlarge,reserved_3y,no_upfront,2.437,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:30.759105 +AWS,ap-south-1,i3en.6xlarge,reserved_3y,partial_upfront,2.437,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:27.349309 +AWS,ap-south-1,i3en.6xlarge,spot,NA,1.039089,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340476 +AWS,ap-south-1,i3en.large,on_demand,NA,0.257,USD,AWS Pricing API,2025-11-30T08:56:49.915984 +AWS,ap-south-1,i3en.large,reserved_1y,all_upfront,0.175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:21.511979 +AWS,ap-south-1,i3en.large,reserved_1y,no_upfront,0.175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:01.468418 +AWS,ap-south-1,i3en.large,reserved_1y,partial_upfront,0.175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:48.202985 +AWS,ap-south-1,i3en.large,reserved_3y,all_upfront,0.175,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:27.099795 +AWS,ap-south-1,i3en.large,reserved_3y,no_upfront,0.175,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:02.931949 +AWS,ap-south-1,i3en.large,reserved_3y,partial_upfront,0.175,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:00.272823 +AWS,ap-south-1,i3en.large,spot,NA,0.06517,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339835 +AWS,ap-south-1,i3en.xlarge,on_demand,NA,0.514,USD,AWS Pricing API,2025-11-30T08:56:49.184842 +AWS,ap-south-1,i3en.xlarge,reserved_1y,all_upfront,0.704224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:20.836221 +AWS,ap-south-1,i3en.xlarge,reserved_1y,no_upfront,0.704224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:00.776751 +AWS,ap-south-1,i3en.xlarge,reserved_1y,partial_upfront,0.704224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:47.516945 +AWS,ap-south-1,i3en.xlarge,reserved_3y,all_upfront,0.234741,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:26.445194 +AWS,ap-south-1,i3en.xlarge,reserved_3y,no_upfront,0.234741,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:02.248547 +AWS,ap-south-1,i3en.xlarge,reserved_3y,partial_upfront,0.234741,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:59.605923 +AWS,ap-south-1,i3en.xlarge,spot,NA,0.167807,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339789 +AWS,ap-south-1,i4i.16xlarge,on_demand,NA,6.23,USD,AWS Pricing API,2025-11-30T08:56:54.165531 +AWS,ap-south-1,i4i.16xlarge,reserved_1y,all_upfront,5.362918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:25.718477 +AWS,ap-south-1,i4i.16xlarge,reserved_1y,no_upfront,5.362918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:05.752007 +AWS,ap-south-1,i4i.16xlarge,reserved_1y,partial_upfront,5.362918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:52.362396 +AWS,ap-south-1,i4i.16xlarge,reserved_3y,all_upfront,2.681639,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:31.215764 +AWS,ap-south-1,i4i.16xlarge,reserved_3y,no_upfront,2.681639,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:07.209439 +AWS,ap-south-1,i4i.16xlarge,reserved_3y,partial_upfront,2.681639,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:04.440584 +AWS,ap-south-1,i4i.16xlarge,spot,NA,1.337938,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339949 +AWS,ap-south-1,i4i.2xlarge,on_demand,NA,0.779,USD,AWS Pricing API,2025-11-30T08:57:10.187033 +AWS,ap-south-1,i4i.2xlarge,reserved_1y,all_upfront,0.473288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:41.687823 +AWS,ap-south-1,i4i.2xlarge,reserved_1y,no_upfront,0.473288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:21.854847 +AWS,ap-south-1,i4i.2xlarge,reserved_1y,partial_upfront,0.473288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:08.380358 +AWS,ap-south-1,i4i.2xlarge,reserved_3y,all_upfront,0.157763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:46.882980 +AWS,ap-south-1,i4i.2xlarge,reserved_3y,no_upfront,0.157763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:23.449450 +AWS,ap-south-1,i4i.2xlarge,reserved_3y,partial_upfront,0.157763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:20.350651 +AWS,ap-south-1,i4i.2xlarge,spot,NA,0.283619,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340282 +AWS,ap-south-1,i4i.32xlarge,on_demand,NA,12.4608,USD,AWS Pricing API,2025-11-30T08:57:22.499047 +AWS,ap-south-1,i4i.32xlarge,reserved_1y,all_upfront,9.72136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:54.002028 +AWS,ap-south-1,i4i.32xlarge,reserved_1y,no_upfront,9.72136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:34.309053 +AWS,ap-south-1,i4i.32xlarge,reserved_1y,partial_upfront,9.72136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:20.622787 +AWS,ap-south-1,i4i.32xlarge,reserved_3y,all_upfront,9.72136,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:58.995653 +AWS,ap-south-1,i4i.32xlarge,reserved_3y,no_upfront,9.72136,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:36.154707 +AWS,ap-south-1,i4i.32xlarge,reserved_3y,partial_upfront,9.72136,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:32.569541 +AWS,ap-south-1,i4i.32xlarge,spot,NA,3.124677,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340582 +AWS,ap-south-1,i4i.4xlarge,on_demand,NA,1.558,USD,AWS Pricing API,2025-11-30T08:56:58.690621 +AWS,ap-south-1,i4i.4xlarge,reserved_1y,all_upfront,1.215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:30.179783 +AWS,ap-south-1,i4i.4xlarge,reserved_1y,no_upfront,1.215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:10.273025 +AWS,ap-south-1,i4i.4xlarge,reserved_1y,partial_upfront,1.215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:56.831026 +AWS,ap-south-1,i4i.4xlarge,reserved_3y,all_upfront,1.215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:35.602819 +AWS,ap-south-1,i4i.4xlarge,reserved_3y,no_upfront,1.215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:11.749366 +AWS,ap-south-1,i4i.4xlarge,reserved_3y,partial_upfront,1.215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:08.932556 +AWS,ap-south-1,i4i.4xlarge,spot,NA,0.474808,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340075 +AWS,ap-south-1,i4i.8xlarge,on_demand,NA,3.115,USD,AWS Pricing API,2025-11-30T08:57:01.666422 +AWS,ap-south-1,i4i.8xlarge,reserved_1y,all_upfront,2.268265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:33.159547 +AWS,ap-south-1,i4i.8xlarge,reserved_1y,no_upfront,2.268265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:13.290448 +AWS,ap-south-1,i4i.8xlarge,reserved_1y,partial_upfront,2.268265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:59.830644 +AWS,ap-south-1,i4i.8xlarge,reserved_3y,all_upfront,0.756088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:38.547831 +AWS,ap-south-1,i4i.8xlarge,reserved_3y,no_upfront,0.756088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:14.809188 +AWS,ap-south-1,i4i.8xlarge,reserved_3y,partial_upfront,0.756088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:11.868226 +AWS,ap-south-1,i4i.8xlarge,spot,NA,0.935075,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340133 +AWS,ap-south-1,i4i.large,on_demand,NA,0.195,USD,AWS Pricing API,2025-11-30T08:57:27.086611 +AWS,ap-south-1,i4i.large,reserved_1y,all_upfront,0.152,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:58.590452 +AWS,ap-south-1,i4i.large,reserved_1y,no_upfront,0.152,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:38.935015 +AWS,ap-south-1,i4i.large,reserved_1y,partial_upfront,0.152,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:25.191845 +AWS,ap-south-1,i4i.large,reserved_3y,all_upfront,0.152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:03.587812 +AWS,ap-south-1,i4i.large,reserved_3y,no_upfront,0.152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:40.843157 +AWS,ap-south-1,i4i.large,reserved_3y,partial_upfront,0.152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:37.196304 +AWS,ap-south-1,i4i.large,spot,NA,0.049506,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340670 +AWS,ap-south-1,i4i.xlarge,on_demand,NA,0.389,USD,AWS Pricing API,2025-11-30T08:57:08.528098 +AWS,ap-south-1,i4i.xlarge,reserved_1y,all_upfront,0.254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:40.052159 +AWS,ap-south-1,i4i.xlarge,reserved_1y,no_upfront,0.254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:20.232298 +AWS,ap-south-1,i4i.xlarge,reserved_1y,partial_upfront,0.254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:06.755625 +AWS,ap-south-1,i4i.xlarge,reserved_3y,all_upfront,0.254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:45.296667 +AWS,ap-south-1,i4i.xlarge,reserved_3y,no_upfront,0.254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:21.804723 +AWS,ap-south-1,i4i.xlarge,reserved_3y,partial_upfront,0.254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:18.723617 +AWS,ap-south-1,i4i.xlarge,spot,NA,0.120269,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340270 +AWS,ap-south-1,i7i.12xlarge,on_demand,NA,5.1401,USD,AWS Pricing API,2025-11-30T08:56:46.600723 +AWS,ap-south-1,i7i.16xlarge,on_demand,NA,6.8534,USD,AWS Pricing API,2025-11-30T08:57:32.318885 +AWS,ap-south-1,i7i.24xlarge,on_demand,NA,10.2802,USD,AWS Pricing API,2025-11-30T08:56:27.506270 +AWS,ap-south-1,i7i.2xlarge,on_demand,NA,0.8567,USD,AWS Pricing API,2025-11-30T08:56:24.678888 +AWS,ap-south-1,i7i.48xlarge,on_demand,NA,20.5603,USD,AWS Pricing API,2025-11-30T08:56:26.433325 +AWS,ap-south-1,i7i.4xlarge,on_demand,NA,1.7134,USD,AWS Pricing API,2025-11-30T08:57:29.238476 +AWS,ap-south-1,i7i.8xlarge,on_demand,NA,3.4267,USD,AWS Pricing API,2025-11-30T08:56:59.362615 +AWS,ap-south-1,i7i.large,on_demand,NA,0.2142,USD,AWS Pricing API,2025-11-30T08:56:42.831587 +AWS,ap-south-1,i7i.xlarge,on_demand,NA,0.4283,USD,AWS Pricing API,2025-11-30T08:56:51.279810 +AWS,ap-south-1,i8g.12xlarge,on_demand,NA,4.6728,USD,AWS Pricing API,2025-11-30T08:57:22.762209 +AWS,ap-south-1,i8g.12xlarge,spot,NA,2.190607,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340597 +AWS,ap-south-1,i8g.16xlarge,on_demand,NA,6.2304,USD,AWS Pricing API,2025-11-30T08:57:19.836821 +AWS,ap-south-1,i8g.16xlarge,spot,NA,2.923025,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340535 +AWS,ap-south-1,i8g.24xlarge,on_demand,NA,9.3456,USD,AWS Pricing API,2025-11-30T08:57:22.229937 +AWS,ap-south-1,i8g.24xlarge,spot,NA,4.36471,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340551 +AWS,ap-south-1,i8g.2xlarge,on_demand,NA,0.7788,USD,AWS Pricing API,2025-11-30T08:56:49.320741 +AWS,ap-south-1,i8g.2xlarge,spot,NA,0.36732,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339797 +AWS,ap-south-1,i8g.48xlarge,on_demand,NA,18.6912,USD,AWS Pricing API,2025-11-30T08:56:29.932183 +AWS,ap-south-1,i8g.48xlarge,spot,NA,8.731558,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339370 +AWS,ap-south-1,i8g.4xlarge,on_demand,NA,1.5576,USD,AWS Pricing API,2025-11-30T08:57:17.018461 +AWS,ap-south-1,i8g.4xlarge,spot,NA,0.729667,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340451 +AWS,ap-south-1,i8g.8xlarge,on_demand,NA,3.1152,USD,AWS Pricing API,2025-11-30T08:57:35.937382 +AWS,ap-south-1,i8g.8xlarge,spot,NA,1.455935,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340830 +AWS,ap-south-1,i8g.large,on_demand,NA,0.1947,USD,AWS Pricing API,2025-11-30T08:56:53.885773 +AWS,ap-south-1,i8g.large,spot,NA,0.091282,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339887 +AWS,ap-south-1,i8g.xlarge,on_demand,NA,0.3894,USD,AWS Pricing API,2025-11-30T08:56:45.794906 +AWS,ap-south-1,i8g.xlarge,spot,NA,0.182912,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339739 +AWS,ap-south-1,im4gn.16xlarge,on_demand,NA,6.608,USD,AWS Pricing API,2025-11-30T08:56:52.922890 +AWS,ap-south-1,im4gn.16xlarge,reserved_1y,all_upfront,3.969635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:24.498478 +AWS,ap-south-1,im4gn.16xlarge,reserved_1y,no_upfront,3.969635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:04.510317 +AWS,ap-south-1,im4gn.16xlarge,reserved_1y,partial_upfront,3.969635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:51.150812 +AWS,ap-south-1,im4gn.16xlarge,reserved_3y,all_upfront,1.323212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:30.021527 +AWS,ap-south-1,im4gn.16xlarge,reserved_3y,no_upfront,1.323212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:05.970521 +AWS,ap-south-1,im4gn.16xlarge,reserved_3y,partial_upfront,1.323212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:03.239923 +AWS,ap-south-1,im4gn.2xlarge,on_demand,NA,0.826,USD,AWS Pricing API,2025-11-30T08:56:50.592795 +AWS,ap-south-1,im4gn.2xlarge,reserved_1y,all_upfront,0.70546,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:22.179932 +AWS,ap-south-1,im4gn.2xlarge,reserved_1y,no_upfront,0.70546,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:02.162586 +AWS,ap-south-1,im4gn.2xlarge,reserved_1y,partial_upfront,0.70546,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:48.874593 +AWS,ap-south-1,im4gn.2xlarge,reserved_3y,all_upfront,0.35272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:27.767949 +AWS,ap-south-1,im4gn.2xlarge,reserved_3y,no_upfront,0.35272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:03.616307 +AWS,ap-south-1,im4gn.2xlarge,reserved_3y,partial_upfront,0.35272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:00.934878 +AWS,ap-south-1,im4gn.4xlarge,on_demand,NA,1.652,USD,AWS Pricing API,2025-11-30T08:56:45.250979 +AWS,ap-south-1,im4gn.4xlarge,reserved_1y,all_upfront,0.992466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:16.945212 +AWS,ap-south-1,im4gn.4xlarge,reserved_1y,no_upfront,0.992466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:56.750799 +AWS,ap-south-1,im4gn.4xlarge,reserved_1y,partial_upfront,0.992466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:43.587625 +AWS,ap-south-1,im4gn.4xlarge,reserved_3y,all_upfront,0.330822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:22.608679 +AWS,ap-south-1,im4gn.4xlarge,reserved_3y,no_upfront,0.330822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:58.246281 +AWS,ap-south-1,im4gn.4xlarge,reserved_3y,partial_upfront,0.330822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:55.698794 +AWS,ap-south-1,im4gn.8xlarge,on_demand,NA,3.304,USD,AWS Pricing API,2025-11-30T08:56:45.659544 +AWS,ap-south-1,im4gn.8xlarge,reserved_1y,all_upfront,1.984817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:17.345759 +AWS,ap-south-1,im4gn.8xlarge,reserved_1y,no_upfront,1.984817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:57.171123 +AWS,ap-south-1,im4gn.8xlarge,reserved_1y,partial_upfront,1.984817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:43.991839 +AWS,ap-south-1,im4gn.8xlarge,reserved_3y,all_upfront,0.661606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:23.008457 +AWS,ap-south-1,im4gn.8xlarge,reserved_3y,no_upfront,0.661606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:58.658670 +AWS,ap-south-1,im4gn.8xlarge,reserved_3y,partial_upfront,0.661606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:56.103248 +AWS,ap-south-1,im4gn.large,on_demand,NA,0.2065,USD,AWS Pricing API,2025-11-30T08:56:46.329954 +AWS,ap-south-1,im4gn.large,reserved_1y,all_upfront,0.15915,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:18.020881 +AWS,ap-south-1,im4gn.large,reserved_1y,no_upfront,0.15915,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:57.873353 +AWS,ap-south-1,im4gn.large,reserved_1y,partial_upfront,0.15915,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:44.672495 +AWS,ap-south-1,im4gn.large,reserved_3y,all_upfront,0.15915,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:23.659433 +AWS,ap-south-1,im4gn.large,reserved_3y,no_upfront,0.15915,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:59.340474 +AWS,ap-south-1,im4gn.large,reserved_3y,partial_upfront,0.15915,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:56.773568 +AWS,ap-south-1,im4gn.xlarge,on_demand,NA,0.413,USD,AWS Pricing API,2025-11-30T08:57:34.326289 +AWS,ap-south-1,im4gn.xlarge,reserved_1y,all_upfront,0.49726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:05.933066 +AWS,ap-south-1,im4gn.xlarge,reserved_1y,no_upfront,0.49726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:46.269978 +AWS,ap-south-1,im4gn.xlarge,reserved_1y,partial_upfront,0.49726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:32.450582 +AWS,ap-south-1,im4gn.xlarge,reserved_3y,all_upfront,0.165753,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:10.713375 +AWS,ap-south-1,im4gn.xlarge,reserved_3y,no_upfront,0.165753,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:48.221180 +AWS,ap-south-1,im4gn.xlarge,reserved_3y,partial_upfront,0.165753,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:44.421732 +AWS,ap-south-1,is4gen.2xlarge,on_demand,NA,1.31,USD,AWS Pricing API,2025-11-30T08:56:43.642933 +AWS,ap-south-1,is4gen.2xlarge,reserved_1y,all_upfront,1.059977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:15.331954 +AWS,ap-south-1,is4gen.2xlarge,reserved_1y,no_upfront,1.059977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:55.112710 +AWS,ap-south-1,is4gen.2xlarge,reserved_1y,partial_upfront,1.059977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:41.963224 +AWS,ap-south-1,is4gen.2xlarge,reserved_3y,all_upfront,0.529992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:21.021721 +AWS,ap-south-1,is4gen.2xlarge,reserved_3y,no_upfront,0.529992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:56.606897 +AWS,ap-south-1,is4gen.2xlarge,reserved_3y,partial_upfront,0.529992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:54.093919 +AWS,ap-south-1,is4gen.2xlarge,spot,NA,0.357123,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339667 +AWS,ap-south-1,is4gen.4xlarge,on_demand,NA,2.62,USD,AWS Pricing API,2025-11-30T08:57:26.815132 +AWS,ap-south-1,is4gen.4xlarge,reserved_1y,all_upfront,2.543981,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:58.309205 +AWS,ap-south-1,is4gen.4xlarge,reserved_1y,no_upfront,2.543981,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:38.660619 +AWS,ap-south-1,is4gen.4xlarge,reserved_1y,partial_upfront,2.543981,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:24.920658 +AWS,ap-south-1,is4gen.4xlarge,reserved_3y,all_upfront,1.271987,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:03.309592 +AWS,ap-south-1,is4gen.4xlarge,reserved_3y,no_upfront,1.271987,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:40.556155 +AWS,ap-south-1,is4gen.4xlarge,reserved_3y,partial_upfront,1.271987,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:36.927282 +AWS,ap-south-1,is4gen.4xlarge,spot,NA,0.80099,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340682 +AWS,ap-south-1,is4gen.8xlarge,on_demand,NA,5.24,USD,AWS Pricing API,2025-11-30T08:56:25.615971 +AWS,ap-south-1,is4gen.8xlarge,reserved_1y,all_upfront,3.407995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:57.348125 +AWS,ap-south-1,is4gen.8xlarge,reserved_1y,no_upfront,3.407995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:37.033154 +AWS,ap-south-1,is4gen.8xlarge,reserved_1y,partial_upfront,3.407995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:24.062724 +AWS,ap-south-1,is4gen.8xlarge,reserved_3y,all_upfront,2.271998,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:03.391321 +AWS,ap-south-1,is4gen.8xlarge,reserved_3y,no_upfront,2.271998,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:38.236451 +AWS,ap-south-1,is4gen.8xlarge,reserved_3y,partial_upfront,2.271998,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:36.242182 +AWS,ap-south-1,is4gen.8xlarge,spot,NA,1.073548,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339300 +AWS,ap-south-1,is4gen.large,on_demand,NA,0.3275,USD,AWS Pricing API,2025-11-30T08:57:07.053815 +AWS,ap-south-1,is4gen.large,reserved_1y,all_upfront,0.26827,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:38.553074 +AWS,ap-south-1,is4gen.large,reserved_1y,no_upfront,0.26827,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:18.733574 +AWS,ap-south-1,is4gen.large,reserved_1y,partial_upfront,0.26827,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:05.274662 +AWS,ap-south-1,is4gen.large,reserved_3y,all_upfront,0.26827,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:43.845901 +AWS,ap-south-1,is4gen.large,reserved_3y,no_upfront,0.26827,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:20.279190 +AWS,ap-south-1,is4gen.large,reserved_3y,partial_upfront,0.26827,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:17.244978 +AWS,ap-south-1,is4gen.large,spot,NA,0.066014,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340253 +AWS,ap-south-1,is4gen.xlarge,on_demand,NA,0.655,USD,AWS Pricing API,2025-11-30T08:56:51.425712 +AWS,ap-south-1,is4gen.xlarge,reserved_1y,all_upfront,0.74726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:22.997714 +AWS,ap-south-1,is4gen.xlarge,reserved_1y,no_upfront,0.74726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:02.986282 +AWS,ap-south-1,is4gen.xlarge,reserved_1y,partial_upfront,0.74726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:49.679095 +AWS,ap-south-1,is4gen.xlarge,reserved_3y,all_upfront,0.249087,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:28.558337 +AWS,ap-south-1,is4gen.xlarge,reserved_3y,no_upfront,0.249087,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:04.440130 +AWS,ap-south-1,is4gen.xlarge,reserved_3y,partial_upfront,0.249087,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:01.738149 +AWS,ap-south-1,is4gen.xlarge,spot,NA,0.160352,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339841 +AWS,ap-south-1,m4.10xlarge,on_demand,NA,2.1,USD,AWS Pricing API,2025-11-30T08:56:56.644431 +AWS,ap-south-1,m4.10xlarge,reserved_1y,all_upfront,1.505,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:28.134829 +AWS,ap-south-1,m4.10xlarge,reserved_1y,no_upfront,1.505,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:08.235481 +AWS,ap-south-1,m4.10xlarge,reserved_1y,partial_upfront,1.505,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:54.794452 +AWS,ap-south-1,m4.10xlarge,reserved_3y,all_upfront,1.505,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:33.609463 +AWS,ap-south-1,m4.10xlarge,reserved_3y,no_upfront,1.505,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:09.684725 +AWS,ap-south-1,m4.10xlarge,reserved_3y,partial_upfront,1.505,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:06.912915 +AWS,ap-south-1,m4.10xlarge,spot,NA,0.707943,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340005 +AWS,ap-south-1,m4.16xlarge,on_demand,NA,3.36,USD,AWS Pricing API,2025-11-30T08:57:01.805396 +AWS,ap-south-1,m4.16xlarge,reserved_1y,all_upfront,2.293289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:33.294257 +AWS,ap-south-1,m4.16xlarge,reserved_1y,no_upfront,2.293289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:13.423766 +AWS,ap-south-1,m4.16xlarge,reserved_1y,partial_upfront,2.293289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:59.972176 +AWS,ap-south-1,m4.16xlarge,reserved_3y,all_upfront,1.52883,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:38.678632 +AWS,ap-south-1,m4.16xlarge,reserved_3y,no_upfront,1.52883,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:14.944698 +AWS,ap-south-1,m4.16xlarge,reserved_3y,partial_upfront,1.52883,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:12.002148 +AWS,ap-south-1,m4.16xlarge,spot,NA,1.255143,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340141 +AWS,ap-south-1,m4.2xlarge,on_demand,NA,0.42,USD,AWS Pricing API,2025-11-30T08:56:43.239745 +AWS,ap-south-1,m4.2xlarge,reserved_1y,all_upfront,0.244292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:14.923065 +AWS,ap-south-1,m4.2xlarge,reserved_1y,no_upfront,0.244292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:54.705309 +AWS,ap-south-1,m4.2xlarge,reserved_1y,partial_upfront,0.244292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:41.561439 +AWS,ap-south-1,m4.2xlarge,reserved_3y,all_upfront,0.081431,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:20.628538 +AWS,ap-south-1,m4.2xlarge,reserved_3y,no_upfront,0.081431,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:56.195805 +AWS,ap-south-1,m4.2xlarge,reserved_3y,partial_upfront,0.081431,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:53.697035 +AWS,ap-south-1,m4.2xlarge,spot,NA,0.196354,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339680 +AWS,ap-south-1,m4.4xlarge,on_demand,NA,0.84,USD,AWS Pricing API,2025-11-30T08:57:17.700758 +AWS,ap-south-1,m4.4xlarge,reserved_1y,all_upfront,0.498615,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:49.122332 +AWS,ap-south-1,m4.4xlarge,reserved_1y,no_upfront,0.498615,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:29.448284 +AWS,ap-south-1,m4.4xlarge,reserved_1y,partial_upfront,0.498615,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:15.791336 +AWS,ap-south-1,m4.4xlarge,reserved_3y,all_upfront,0.332405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:54.243676 +AWS,ap-south-1,m4.4xlarge,reserved_3y,no_upfront,0.332405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:31.172258 +AWS,ap-south-1,m4.4xlarge,reserved_3y,partial_upfront,0.332405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:27.747325 +AWS,ap-south-1,m4.4xlarge,spot,NA,0.326679,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340491 +AWS,ap-south-1,m4.large,on_demand,NA,0.105,USD,AWS Pricing API,2025-11-30T08:56:25.205081 +AWS,ap-south-1,m4.large,reserved_1y,all_upfront,0.0752,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:56.942104 +AWS,ap-south-1,m4.large,reserved_1y,no_upfront,0.0752,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:36.629834 +AWS,ap-south-1,m4.large,reserved_1y,partial_upfront,0.0752,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:23.665187 +AWS,ap-south-1,m4.large,reserved_3y,all_upfront,0.0752,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:02.993139 +AWS,ap-south-1,m4.large,reserved_3y,no_upfront,0.0752,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:37.813116 +AWS,ap-south-1,m4.large,reserved_3y,partial_upfront,0.0752,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:35.844523 +AWS,ap-south-1,m4.large,spot,NA,0.046947,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339284 +AWS,ap-south-1,m4.xlarge,on_demand,NA,0.21,USD,AWS Pricing API,2025-11-30T08:57:06.134595 +AWS,ap-south-1,m4.xlarge,reserved_1y,all_upfront,0.1018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:37.619496 +AWS,ap-south-1,m4.xlarge,reserved_1y,no_upfront,0.1018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:17.788517 +AWS,ap-south-1,m4.xlarge,reserved_1y,partial_upfront,0.1018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:04.335097 +AWS,ap-south-1,m4.xlarge,reserved_3y,all_upfront,0.1018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:42.932049 +AWS,ap-south-1,m4.xlarge,reserved_3y,no_upfront,0.1018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:19.324832 +AWS,ap-south-1,m4.xlarge,reserved_3y,partial_upfront,0.1018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:16.310161 +AWS,ap-south-1,m4.xlarge,spot,NA,0.088612,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340205 +AWS,ap-south-1,m5.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T08:56:43.377029 +AWS,ap-south-1,m5.12xlarge,reserved_1y,all_upfront,1.791,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:15.058023 +AWS,ap-south-1,m5.12xlarge,reserved_1y,no_upfront,1.791,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:54.842702 +AWS,ap-south-1,m5.12xlarge,reserved_1y,partial_upfront,1.791,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:41.696087 +AWS,ap-south-1,m5.12xlarge,reserved_3y,all_upfront,1.791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:20.760384 +AWS,ap-south-1,m5.12xlarge,reserved_3y,no_upfront,1.791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:56.335498 +AWS,ap-south-1,m5.12xlarge,reserved_3y,partial_upfront,1.791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:53.830881 +AWS,ap-south-1,m5.12xlarge,spot,NA,0.67141,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339688 +AWS,ap-south-1,m5.16xlarge,on_demand,NA,3.232,USD,AWS Pricing API,2025-11-30T08:57:16.082222 +AWS,ap-south-1,m5.16xlarge,reserved_1y,all_upfront,4.421804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:47.506470 +AWS,ap-south-1,m5.16xlarge,reserved_1y,no_upfront,4.421804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:27.755651 +AWS,ap-south-1,m5.16xlarge,reserved_1y,partial_upfront,4.421804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:14.176678 +AWS,ap-south-1,m5.16xlarge,reserved_3y,all_upfront,1.473935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:52.640915 +AWS,ap-south-1,m5.16xlarge,reserved_3y,no_upfront,1.473935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:29.428412 +AWS,ap-south-1,m5.16xlarge,reserved_3y,partial_upfront,1.473935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:26.137201 +AWS,ap-south-1,m5.16xlarge,spot,NA,0.949291,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340455 +AWS,ap-south-1,m5.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T08:57:27.358646 +AWS,ap-south-1,m5.24xlarge,reserved_1y,all_upfront,2.436,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:58.863679 +AWS,ap-south-1,m5.24xlarge,reserved_1y,no_upfront,2.436,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:39.208844 +AWS,ap-south-1,m5.24xlarge,reserved_1y,partial_upfront,2.436,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:25.460115 +AWS,ap-south-1,m5.24xlarge,reserved_3y,all_upfront,2.436,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:03.851463 +AWS,ap-south-1,m5.24xlarge,reserved_3y,no_upfront,2.436,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:41.121842 +AWS,ap-south-1,m5.24xlarge,reserved_3y,partial_upfront,2.436,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:37.465796 +AWS,ap-south-1,m5.24xlarge,spot,NA,0.845182,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340678 +AWS,ap-south-1,m5.2xlarge,on_demand,NA,0.404,USD,AWS Pricing API,2025-11-30T08:56:59.497213 +AWS,ap-south-1,m5.2xlarge,reserved_1y,all_upfront,0.299,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:30.984767 +AWS,ap-south-1,m5.2xlarge,reserved_1y,no_upfront,0.299,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:11.103630 +AWS,ap-south-1,m5.2xlarge,reserved_1y,partial_upfront,0.299,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:57.650923 +AWS,ap-south-1,m5.2xlarge,reserved_3y,all_upfront,0.299,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:36.410466 +AWS,ap-south-1,m5.2xlarge,reserved_3y,no_upfront,0.299,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:12.589127 +AWS,ap-south-1,m5.2xlarge,reserved_3y,partial_upfront,0.299,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:09.735087 +AWS,ap-south-1,m5.2xlarge,spot,NA,0.149254,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340121 +AWS,ap-south-1,m5.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T08:57:08.793178 +AWS,ap-south-1,m5.4xlarge,reserved_1y,all_upfront,0.911416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:40.328402 +AWS,ap-south-1,m5.4xlarge,reserved_1y,no_upfront,0.911416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:20.499747 +AWS,ap-south-1,m5.4xlarge,reserved_1y,partial_upfront,0.911416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:07.023777 +AWS,ap-south-1,m5.4xlarge,reserved_3y,all_upfront,0.303805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:45.558569 +AWS,ap-south-1,m5.4xlarge,reserved_3y,no_upfront,0.303805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:22.081028 +AWS,ap-south-1,m5.4xlarge,reserved_3y,partial_upfront,0.303805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:18.995220 +AWS,ap-south-1,m5.4xlarge,spot,NA,0.293742,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340274 +AWS,ap-south-1,m5.8xlarge,on_demand,NA,1.616,USD,AWS Pricing API,2025-11-30T08:57:35.260987 +AWS,ap-south-1,m5.8xlarge,reserved_1y,all_upfront,1.137607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:06.872622 +AWS,ap-south-1,m5.8xlarge,reserved_1y,no_upfront,1.137607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:47.237923 +AWS,ap-south-1,m5.8xlarge,reserved_1y,partial_upfront,1.137607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:33.385676 +AWS,ap-south-1,m5.8xlarge,reserved_3y,all_upfront,0.758536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:11.643593 +AWS,ap-south-1,m5.8xlarge,reserved_3y,no_upfront,0.758536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:49.183694 +AWS,ap-south-1,m5.8xlarge,reserved_3y,partial_upfront,0.758536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:45.357398 +AWS,ap-south-1,m5.8xlarge,spot,NA,0.5535,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340801 +AWS,ap-south-1,m5.large,on_demand,NA,0.101,USD,AWS Pricing API,2025-11-30T08:56:59.900575 +AWS,ap-south-1,m5.large,reserved_1y,all_upfront,0.075,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:31.399837 +AWS,ap-south-1,m5.large,reserved_1y,no_upfront,0.075,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:11.510589 +AWS,ap-south-1,m5.large,reserved_1y,partial_upfront,0.075,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:58.062546 +AWS,ap-south-1,m5.large,reserved_3y,all_upfront,0.075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:36.814890 +AWS,ap-south-1,m5.large,reserved_3y,no_upfront,0.075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:13.024508 +AWS,ap-south-1,m5.large,reserved_3y,partial_upfront,0.075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:10.130926 +AWS,ap-south-1,m5.large,spot,NA,0.037385,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340100 +AWS,ap-south-1,m5.xlarge,on_demand,NA,0.202,USD,AWS Pricing API,2025-11-30T08:57:33.109683 +AWS,ap-south-1,m5.xlarge,reserved_1y,all_upfront,0.087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:04.719074 +AWS,ap-south-1,m5.xlarge,reserved_1y,no_upfront,0.087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:45.042335 +AWS,ap-south-1,m5.xlarge,reserved_1y,partial_upfront,0.087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:31.246620 +AWS,ap-south-1,m5.xlarge,reserved_3y,all_upfront,0.087,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:09.524804 +AWS,ap-south-1,m5.xlarge,reserved_3y,no_upfront,0.087,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:46.994099 +AWS,ap-south-1,m5.xlarge,reserved_3y,partial_upfront,0.087,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:43.219371 +AWS,ap-south-1,m5.xlarge,spot,NA,0.068531,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340766 +AWS,ap-south-1,m5a.12xlarge,on_demand,NA,1.333,USD,AWS Pricing API,2025-11-30T08:57:00.449748 +AWS,ap-south-1,m5a.12xlarge,reserved_1y,all_upfront,0.919521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:31.937436 +AWS,ap-south-1,m5a.12xlarge,reserved_1y,no_upfront,0.919521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:12.050769 +AWS,ap-south-1,m5a.12xlarge,reserved_1y,partial_upfront,0.919521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:58.613715 +AWS,ap-south-1,m5a.12xlarge,reserved_3y,all_upfront,0.306507,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:37.344161 +AWS,ap-south-1,m5a.12xlarge,reserved_3y,no_upfront,0.306507,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:13.573760 +AWS,ap-south-1,m5a.12xlarge,reserved_3y,partial_upfront,0.306507,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:10.667804 +AWS,ap-south-1,m5a.12xlarge,spot,NA,0.482399,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340113 +AWS,ap-south-1,m5a.16xlarge,on_demand,NA,1.778,USD,AWS Pricing API,2025-11-30T08:57:17.839808 +AWS,ap-south-1,m5a.16xlarge,reserved_1y,all_upfront,2.005137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:49.257558 +AWS,ap-south-1,m5a.16xlarge,reserved_1y,no_upfront,2.005137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:29.584552 +AWS,ap-south-1,m5a.16xlarge,reserved_1y,partial_upfront,2.005137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:15.933848 +AWS,ap-south-1,m5a.16xlarge,reserved_3y,all_upfront,0.668379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:54.378470 +AWS,ap-south-1,m5a.16xlarge,reserved_3y,no_upfront,0.668379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:31.316533 +AWS,ap-south-1,m5a.16xlarge,reserved_3y,partial_upfront,0.668379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:27.880704 +AWS,ap-south-1,m5a.16xlarge,spot,NA,0.848924,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340488 +AWS,ap-south-1,m5a.24xlarge,on_demand,NA,2.666,USD,AWS Pricing API,2025-11-30T08:56:53.058834 +AWS,ap-south-1,m5a.24xlarge,reserved_1y,all_upfront,1.876242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:24.632623 +AWS,ap-south-1,m5a.24xlarge,reserved_1y,no_upfront,1.876242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:04.657131 +AWS,ap-south-1,m5a.24xlarge,reserved_1y,partial_upfront,1.876242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:51.293447 +AWS,ap-south-1,m5a.24xlarge,reserved_3y,all_upfront,1.250747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:30.152012 +AWS,ap-south-1,m5a.24xlarge,reserved_3y,no_upfront,1.250747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:06.108208 +AWS,ap-south-1,m5a.24xlarge,reserved_3y,partial_upfront,1.250747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:03.374028 +AWS,ap-south-1,m5a.24xlarge,spot,NA,1.065283,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339921 +AWS,ap-south-1,m5a.2xlarge,on_demand,NA,0.222,USD,AWS Pricing API,2025-11-30T08:56:45.521747 +AWS,ap-south-1,m5a.2xlarge,reserved_1y,all_upfront,0.133667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:17.212239 +AWS,ap-south-1,m5a.2xlarge,reserved_1y,no_upfront,0.133667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:57.021226 +AWS,ap-south-1,m5a.2xlarge,reserved_1y,partial_upfront,0.133667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:43.856904 +AWS,ap-south-1,m5a.2xlarge,reserved_3y,all_upfront,0.089222,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:22.876567 +AWS,ap-south-1,m5a.2xlarge,reserved_3y,no_upfront,0.089222,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:58.519147 +AWS,ap-south-1,m5a.2xlarge,reserved_3y,partial_upfront,0.089222,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:55.969020 +AWS,ap-south-1,m5a.2xlarge,spot,NA,0.101553,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339697 +AWS,ap-south-1,m5a.4xlarge,on_demand,NA,0.444,USD,AWS Pricing API,2025-11-30T08:57:25.987356 +AWS,ap-south-1,m5a.4xlarge,reserved_1y,all_upfront,0.607991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:57.490900 +AWS,ap-south-1,m5a.4xlarge,reserved_1y,no_upfront,0.607991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:37.838999 +AWS,ap-south-1,m5a.4xlarge,reserved_1y,partial_upfront,0.607991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:24.109982 +AWS,ap-south-1,m5a.4xlarge,reserved_3y,all_upfront,0.202664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:02.514767 +AWS,ap-south-1,m5a.4xlarge,reserved_3y,no_upfront,0.202664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:39.717191 +AWS,ap-south-1,m5a.4xlarge,reserved_3y,partial_upfront,0.202664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:36.120720 +AWS,ap-south-1,m5a.4xlarge,spot,NA,0.195474,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340647 +AWS,ap-south-1,m5a.8xlarge,on_demand,NA,0.889,USD,AWS Pricing API,2025-11-30T08:56:36.572637 +AWS,ap-south-1,m5a.8xlarge,reserved_1y,all_upfront,0.533667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:08.311867 +AWS,ap-south-1,m5a.8xlarge,reserved_1y,no_upfront,0.533667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:48.028882 +AWS,ap-south-1,m5a.8xlarge,reserved_1y,partial_upfront,0.533667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:34.929959 +AWS,ap-south-1,m5a.8xlarge,reserved_3y,all_upfront,0.355889,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:14.143189 +AWS,ap-south-1,m5a.8xlarge,reserved_3y,no_upfront,0.355889,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:49.456656 +AWS,ap-south-1,m5a.8xlarge,reserved_3y,partial_upfront,0.355889,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:47.125023 +AWS,ap-south-1,m5a.8xlarge,spot,NA,0.434203,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339514 +AWS,ap-south-1,m5a.large,on_demand,NA,0.056,USD,AWS Pricing API,2025-11-30T08:56:55.549562 +AWS,ap-south-1,m5a.large,reserved_1y,all_upfront,0.033667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:27.054646 +AWS,ap-south-1,m5a.large,reserved_1y,no_upfront,0.033667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:07.118356 +AWS,ap-south-1,m5a.large,reserved_1y,partial_upfront,0.033667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:53.709942 +AWS,ap-south-1,m5a.large,reserved_3y,all_upfront,0.022556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:32.544255 +AWS,ap-south-1,m5a.large,reserved_3y,no_upfront,0.022556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:08.589130 +AWS,ap-south-1,m5a.large,reserved_3y,partial_upfront,0.022556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:05.789655 +AWS,ap-south-1,m5a.large,spot,NA,0.025328,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340017 +AWS,ap-south-1,m5a.xlarge,on_demand,NA,0.111,USD,AWS Pricing API,2025-11-30T08:56:57.599649 +AWS,ap-south-1,m5a.xlarge,reserved_1y,all_upfront,0.082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:29.090213 +AWS,ap-south-1,m5a.xlarge,reserved_1y,no_upfront,0.082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:09.186014 +AWS,ap-south-1,m5a.xlarge,reserved_1y,partial_upfront,0.082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:55.744552 +AWS,ap-south-1,m5a.xlarge,reserved_3y,all_upfront,0.082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:34.539865 +AWS,ap-south-1,m5a.xlarge,reserved_3y,no_upfront,0.082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:10.650829 +AWS,ap-south-1,m5a.xlarge,reserved_3y,partial_upfront,0.082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:07.855947 +AWS,ap-south-1,m5a.xlarge,spot,NA,0.050042,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340040 +AWS,ap-south-1,m5d.12xlarge,on_demand,NA,2.928,USD,AWS Pricing API,2025-11-30T08:56:27.929647 +AWS,ap-south-1,m5d.12xlarge,reserved_1y,all_upfront,1.265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:59.637622 +AWS,ap-south-1,m5d.12xlarge,reserved_1y,no_upfront,1.265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:39.340724 +AWS,ap-south-1,m5d.12xlarge,reserved_1y,partial_upfront,1.265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:26.364132 +AWS,ap-south-1,m5d.12xlarge,reserved_3y,all_upfront,1.265,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:05.649098 +AWS,ap-south-1,m5d.12xlarge,reserved_3y,no_upfront,1.265,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:40.656652 +AWS,ap-south-1,m5d.12xlarge,reserved_3y,partial_upfront,1.265,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:38.508686 +AWS,ap-south-1,m5d.12xlarge,spot,NA,0.968814,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339317 +AWS,ap-south-1,m5d.16xlarge,on_demand,NA,3.904,USD,AWS Pricing API,2025-11-30T08:57:12.970617 +AWS,ap-south-1,m5d.16xlarge,reserved_1y,all_upfront,5.310274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:44.402907 +AWS,ap-south-1,m5d.16xlarge,reserved_1y,no_upfront,5.310274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:24.610960 +AWS,ap-south-1,m5d.16xlarge,reserved_1y,partial_upfront,5.310274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:11.070123 +AWS,ap-south-1,m5d.16xlarge,reserved_3y,all_upfront,1.770091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:49.547009 +AWS,ap-south-1,m5d.16xlarge,reserved_3y,no_upfront,1.770091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:26.208450 +AWS,ap-south-1,m5d.16xlarge,reserved_3y,partial_upfront,1.770091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:23.033979 +AWS,ap-south-1,m5d.16xlarge,spot,NA,1.122897,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340350 +AWS,ap-south-1,m5d.24xlarge,on_demand,NA,5.856,USD,AWS Pricing API,2025-11-30T08:56:56.510032 +AWS,ap-south-1,m5d.24xlarge,reserved_1y,all_upfront,4.684584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:27.997833 +AWS,ap-south-1,m5d.24xlarge,reserved_1y,no_upfront,4.684584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:08.096239 +AWS,ap-south-1,m5d.24xlarge,reserved_1y,partial_upfront,4.684584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:54.661829 +AWS,ap-south-1,m5d.24xlarge,reserved_3y,all_upfront,2.342195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:33.476490 +AWS,ap-south-1,m5d.24xlarge,reserved_3y,no_upfront,2.342195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:09.548569 +AWS,ap-south-1,m5d.24xlarge,reserved_3y,partial_upfront,2.342195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:06.778684 +AWS,ap-south-1,m5d.24xlarge,spot,NA,1.935477,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339994 +AWS,ap-south-1,m5d.2xlarge,on_demand,NA,0.488,USD,AWS Pricing API,2025-11-30T08:56:40.764927 +AWS,ap-south-1,m5d.2xlarge,reserved_1y,all_upfront,0.292347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:12.490412 +AWS,ap-south-1,m5d.2xlarge,reserved_1y,no_upfront,0.292347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:52.251254 +AWS,ap-south-1,m5d.2xlarge,reserved_1y,partial_upfront,0.292347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:39.136148 +AWS,ap-south-1,m5d.2xlarge,reserved_3y,all_upfront,0.194782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:18.250675 +AWS,ap-south-1,m5d.2xlarge,reserved_3y,no_upfront,0.194782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:53.720264 +AWS,ap-south-1,m5d.2xlarge,reserved_3y,partial_upfront,0.194782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:51.280897 +AWS,ap-south-1,m5d.2xlarge,spot,NA,0.231591,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339625 +AWS,ap-south-1,m5d.4xlarge,on_demand,NA,0.976,USD,AWS Pricing API,2025-11-30T08:56:51.961659 +AWS,ap-south-1,m5d.4xlarge,reserved_1y,all_upfront,1.100913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:23.530939 +AWS,ap-south-1,m5d.4xlarge,reserved_1y,no_upfront,1.100913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:03.538144 +AWS,ap-south-1,m5d.4xlarge,reserved_1y,partial_upfront,1.100913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:50.215042 +AWS,ap-south-1,m5d.4xlarge,reserved_3y,all_upfront,0.366971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:29.089743 +AWS,ap-south-1,m5d.4xlarge,reserved_3y,no_upfront,0.366971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:04.999758 +AWS,ap-south-1,m5d.4xlarge,reserved_3y,partial_upfront,0.366971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:02.276366 +AWS,ap-south-1,m5d.4xlarge,spot,NA,0.387041,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339865 +AWS,ap-south-1,m5d.8xlarge,on_demand,NA,1.952,USD,AWS Pricing API,2025-11-30T08:57:35.127003 +AWS,ap-south-1,m5d.8xlarge,reserved_1y,all_upfront,1.374329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:06.736721 +AWS,ap-south-1,m5d.8xlarge,reserved_1y,no_upfront,1.374329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:47.102421 +AWS,ap-south-1,m5d.8xlarge,reserved_1y,partial_upfront,1.374329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:33.251663 +AWS,ap-south-1,m5d.8xlarge,reserved_3y,all_upfront,0.91611,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:11.505141 +AWS,ap-south-1,m5d.8xlarge,reserved_3y,no_upfront,0.91611,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:49.045126 +AWS,ap-south-1,m5d.8xlarge,reserved_3y,partial_upfront,0.91611,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:45.223757 +AWS,ap-south-1,m5d.8xlarge,spot,NA,0.698581,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340814 +AWS,ap-south-1,m5d.large,on_demand,NA,0.122,USD,AWS Pricing API,2025-11-30T08:56:31.686238 +AWS,ap-south-1,m5d.large,reserved_1y,all_upfront,0.053,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:03.451145 +AWS,ap-south-1,m5d.large,reserved_1y,no_upfront,0.053,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:43.133844 +AWS,ap-south-1,m5d.large,reserved_1y,partial_upfront,0.053,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:30.098305 +AWS,ap-south-1,m5d.large,reserved_3y,all_upfront,0.053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:09.357135 +AWS,ap-south-1,m5d.large,reserved_3y,no_upfront,0.053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:44.531937 +AWS,ap-south-1,m5d.large,reserved_3y,partial_upfront,0.053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:42.271278 +AWS,ap-south-1,m5d.large,spot,NA,0.050089,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339400 +AWS,ap-south-1,m5d.xlarge,on_demand,NA,0.244,USD,AWS Pricing API,2025-11-30T08:56:47.677918 +AWS,ap-south-1,m5d.xlarge,reserved_1y,all_upfront,0.331849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:19.357966 +AWS,ap-south-1,m5d.xlarge,reserved_1y,no_upfront,0.331849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:59.256770 +AWS,ap-south-1,m5d.xlarge,reserved_1y,partial_upfront,0.331849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:46.028080 +AWS,ap-south-1,m5d.xlarge,reserved_3y,all_upfront,0.110616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:24.996924 +AWS,ap-south-1,m5d.xlarge,reserved_3y,no_upfront,0.110616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:00.718593 +AWS,ap-south-1,m5d.xlarge,reserved_3y,partial_upfront,0.110616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:58.130638 +AWS,ap-south-1,m5d.xlarge,spot,NA,0.082567,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339765 +AWS,ap-south-1,m6g.12xlarge,on_demand,NA,1.2144,USD,AWS Pricing API,2025-11-30T08:56:42.002702 +AWS,ap-south-1,m6g.12xlarge,reserved_1y,all_upfront,1.142778,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:13.706096 +AWS,ap-south-1,m6g.12xlarge,reserved_1y,no_upfront,1.142778,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:53.478892 +AWS,ap-south-1,m6g.12xlarge,reserved_1y,partial_upfront,1.142778,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:40.351180 +AWS,ap-south-1,m6g.12xlarge,reserved_3y,all_upfront,0.571393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:19.440371 +AWS,ap-south-1,m6g.12xlarge,reserved_3y,no_upfront,0.571393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:54.956510 +AWS,ap-south-1,m6g.12xlarge,reserved_3y,partial_upfront,0.571393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:52.490934 +AWS,ap-south-1,m6g.12xlarge,spot,NA,0.528297,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339646 +AWS,ap-south-1,m6g.16xlarge,on_demand,NA,1.6192,USD,AWS Pricing API,2025-11-30T08:56:37.388350 +AWS,ap-south-1,m6g.16xlarge,reserved_1y,all_upfront,1.523594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:09.123727 +AWS,ap-south-1,m6g.16xlarge,reserved_1y,no_upfront,1.523594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:48.850167 +AWS,ap-south-1,m6g.16xlarge,reserved_1y,partial_upfront,1.523594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:35.738767 +AWS,ap-south-1,m6g.16xlarge,reserved_3y,all_upfront,0.761798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:14.943432 +AWS,ap-south-1,m6g.16xlarge,reserved_3y,no_upfront,0.761798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:50.284137 +AWS,ap-south-1,m6g.16xlarge,reserved_3y,partial_upfront,0.761798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:47.935189 +AWS,ap-south-1,m6g.16xlarge,spot,NA,0.583427,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339531 +AWS,ap-south-1,m6g.2xlarge,on_demand,NA,0.2024,USD,AWS Pricing API,2025-11-30T08:56:58.143166 +AWS,ap-south-1,m6g.2xlarge,reserved_1y,all_upfront,0.1028,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:29.634854 +AWS,ap-south-1,m6g.2xlarge,reserved_1y,no_upfront,0.1028,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:09.729208 +AWS,ap-south-1,m6g.2xlarge,reserved_1y,partial_upfront,0.1028,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:56.280020 +AWS,ap-south-1,m6g.2xlarge,reserved_3y,all_upfront,0.1028,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:35.073473 +AWS,ap-south-1,m6g.2xlarge,reserved_3y,no_upfront,0.1028,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:11.199311 +AWS,ap-south-1,m6g.2xlarge,reserved_3y,partial_upfront,0.1028,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:08.390549 +AWS,ap-south-1,m6g.2xlarge,spot,NA,0.105191,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340088 +AWS,ap-south-1,m6g.4xlarge,on_demand,NA,0.4048,USD,AWS Pricing API,2025-11-30T08:57:24.505725 +AWS,ap-south-1,m6g.4xlarge,reserved_1y,all_upfront,0.559932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:56.009234 +AWS,ap-south-1,m6g.4xlarge,reserved_1y,no_upfront,0.559932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:36.349682 +AWS,ap-south-1,m6g.4xlarge,reserved_1y,partial_upfront,0.559932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:22.628670 +AWS,ap-south-1,m6g.4xlarge,reserved_3y,all_upfront,0.186644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:00.985621 +AWS,ap-south-1,m6g.4xlarge,reserved_3y,no_upfront,0.186644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:38.218110 +AWS,ap-south-1,m6g.4xlarge,reserved_3y,partial_upfront,0.186644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:34.629460 +AWS,ap-south-1,m6g.4xlarge,spot,NA,0.1905,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340624 +AWS,ap-south-1,m6g.8xlarge,on_demand,NA,0.8096,USD,AWS Pricing API,2025-11-30T08:57:05.587001 +AWS,ap-south-1,m6g.8xlarge,reserved_1y,all_upfront,0.4114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:37.063788 +AWS,ap-south-1,m6g.8xlarge,reserved_1y,no_upfront,0.4114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:17.239904 +AWS,ap-south-1,m6g.8xlarge,reserved_1y,partial_upfront,0.4114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:03.781367 +AWS,ap-south-1,m6g.8xlarge,reserved_3y,all_upfront,0.4114,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:42.392263 +AWS,ap-south-1,m6g.8xlarge,reserved_3y,no_upfront,0.4114,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:18.778250 +AWS,ap-south-1,m6g.8xlarge,reserved_3y,partial_upfront,0.4114,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:15.765248 +AWS,ap-south-1,m6g.8xlarge,spot,NA,0.426894,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340229 +AWS,ap-south-1,m6g.large,on_demand,NA,0.0506,USD,AWS Pricing API,2025-11-30T08:56:42.550974 +AWS,ap-south-1,m6g.large,reserved_1y,all_upfront,0.035822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:14.249908 +AWS,ap-south-1,m6g.large,reserved_1y,no_upfront,0.035822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:54.021892 +AWS,ap-south-1,m6g.large,reserved_1y,partial_upfront,0.035822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:40.893230 +AWS,ap-south-1,m6g.large,reserved_3y,all_upfront,0.023874,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:19.968243 +AWS,ap-south-1,m6g.large,reserved_3y,no_upfront,0.023874,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:55.511713 +AWS,ap-south-1,m6g.large,reserved_3y,partial_upfront,0.023874,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:53.035460 +AWS,ap-south-1,m6g.large,spot,NA,0.024939,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339642 +AWS,ap-south-1,m6g.xlarge,on_demand,NA,0.1012,USD,AWS Pricing API,2025-11-30T08:56:56.367388 +AWS,ap-south-1,m6g.xlarge,reserved_1y,all_upfront,0.0752,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:27.861316 +AWS,ap-south-1,m6g.xlarge,reserved_1y,no_upfront,0.0752,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:07.956980 +AWS,ap-south-1,m6g.xlarge,reserved_1y,partial_upfront,0.0752,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:54.527503 +AWS,ap-south-1,m6g.xlarge,reserved_3y,all_upfront,0.0752,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:33.344969 +AWS,ap-south-1,m6g.xlarge,reserved_3y,no_upfront,0.0752,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:09.412663 +AWS,ap-south-1,m6g.xlarge,reserved_3y,partial_upfront,0.0752,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:06.638814 +AWS,ap-south-1,m6g.xlarge,spot,NA,0.047247,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340011 +AWS,ap-south-1,m6gd.12xlarge,on_demand,NA,1.4496,USD,AWS Pricing API,2025-11-30T08:57:14.325224 +AWS,ap-south-1,m6gd.12xlarge,reserved_1y,all_upfront,1.0718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:45.760532 +AWS,ap-south-1,m6gd.12xlarge,reserved_1y,no_upfront,1.0718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:25.981411 +AWS,ap-south-1,m6gd.12xlarge,reserved_1y,partial_upfront,1.0718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:12.422326 +AWS,ap-south-1,m6gd.12xlarge,reserved_3y,all_upfront,1.0718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:50.878868 +AWS,ap-south-1,m6gd.12xlarge,reserved_3y,no_upfront,1.0718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:27.617305 +AWS,ap-south-1,m6gd.12xlarge,reserved_3y,partial_upfront,1.0718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:24.392727 +AWS,ap-south-1,m6gd.12xlarge,spot,NA,0.496869,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340403 +AWS,ap-south-1,m6gd.16xlarge,on_demand,NA,1.9328,USD,AWS Pricing API,2025-11-30T08:57:16.615043 +AWS,ap-south-1,m6gd.16xlarge,reserved_1y,all_upfront,1.33379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:48.042510 +AWS,ap-south-1,m6gd.16xlarge,reserved_1y,no_upfront,1.33379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:28.343774 +AWS,ap-south-1,m6gd.16xlarge,reserved_1y,partial_upfront,1.33379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:14.713916 +AWS,ap-south-1,m6gd.16xlarge,reserved_3y,all_upfront,0.444597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:53.180732 +AWS,ap-south-1,m6gd.16xlarge,reserved_3y,no_upfront,0.444597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:29.974362 +AWS,ap-south-1,m6gd.16xlarge,reserved_3y,partial_upfront,0.444597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:26.677884 +AWS,ap-south-1,m6gd.16xlarge,spot,NA,0.595486,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340447 +AWS,ap-south-1,m6gd.2xlarge,on_demand,NA,0.2416,USD,AWS Pricing API,2025-11-30T08:56:44.712258 +AWS,ap-south-1,m6gd.2xlarge,reserved_1y,all_upfront,0.1522,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:16.407437 +AWS,ap-south-1,m6gd.2xlarge,reserved_1y,no_upfront,0.1522,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:56.200228 +AWS,ap-south-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.1522,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:43.043732 +AWS,ap-south-1,m6gd.2xlarge,reserved_3y,all_upfront,0.1522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:22.081314 +AWS,ap-south-1,m6gd.2xlarge,reserved_3y,no_upfront,0.1522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:57.701435 +AWS,ap-south-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.1522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:55.161470 +AWS,ap-south-1,m6gd.2xlarge,spot,NA,0.137364,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339702 +AWS,ap-south-1,m6gd.4xlarge,on_demand,NA,0.4832,USD,AWS Pricing API,2025-11-30T08:57:11.409811 +AWS,ap-south-1,m6gd.4xlarge,reserved_1y,all_upfront,0.340191,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:42.921872 +AWS,ap-south-1,m6gd.4xlarge,reserved_1y,no_upfront,0.340191,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:23.079297 +AWS,ap-south-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.340191,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:09.583523 +AWS,ap-south-1,m6gd.4xlarge,reserved_3y,all_upfront,0.226797,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:48.076715 +AWS,ap-south-1,m6gd.4xlarge,reserved_3y,no_upfront,0.226797,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:24.692718 +AWS,ap-south-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.226797,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:21.553608 +AWS,ap-south-1,m6gd.4xlarge,spot,NA,0.206417,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340330 +AWS,ap-south-1,m6gd.8xlarge,on_demand,NA,0.9664,USD,AWS Pricing API,2025-11-30T08:56:33.443224 +AWS,ap-south-1,m6gd.8xlarge,reserved_1y,all_upfront,0.680597,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:05.203733 +AWS,ap-south-1,m6gd.8xlarge,reserved_1y,no_upfront,0.680597,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:44.908548 +AWS,ap-south-1,m6gd.8xlarge,reserved_1y,partial_upfront,0.680597,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:31.857730 +AWS,ap-south-1,m6gd.8xlarge,reserved_3y,all_upfront,0.453732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:11.089279 +AWS,ap-south-1,m6gd.8xlarge,reserved_3y,no_upfront,0.453732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:46.303730 +AWS,ap-south-1,m6gd.8xlarge,reserved_3y,partial_upfront,0.453732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:44.013807 +AWS,ap-south-1,m6gd.8xlarge,spot,NA,0.399067,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339436 +AWS,ap-south-1,m6gd.large,on_demand,NA,0.0604,USD,AWS Pricing API,2025-11-30T08:56:55.002170 +AWS,ap-south-1,m6gd.large,reserved_1y,all_upfront,0.035502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:26.518410 +AWS,ap-south-1,m6gd.large,reserved_1y,no_upfront,0.035502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:06.567845 +AWS,ap-south-1,m6gd.large,reserved_1y,partial_upfront,0.035502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:53.172867 +AWS,ap-south-1,m6gd.large,reserved_3y,all_upfront,0.011834,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:32.009589 +AWS,ap-south-1,m6gd.large,reserved_3y,no_upfront,0.011834,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:08.040895 +AWS,ap-south-1,m6gd.large,reserved_3y,partial_upfront,0.011834,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:05.252040 +AWS,ap-south-1,m6gd.large,spot,NA,0.032615,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339955 +AWS,ap-south-1,m6gd.xlarge,on_demand,NA,0.1208,USD,AWS Pricing API,2025-11-30T08:56:48.089353 +AWS,ap-south-1,m6gd.xlarge,reserved_1y,all_upfront,0.083333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:19.759769 +AWS,ap-south-1,m6gd.xlarge,reserved_1y,no_upfront,0.083333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:59.676241 +AWS,ap-south-1,m6gd.xlarge,reserved_1y,partial_upfront,0.083333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:46.427375 +AWS,ap-south-1,m6gd.xlarge,reserved_3y,all_upfront,0.027778,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:25.391256 +AWS,ap-south-1,m6gd.xlarge,reserved_3y,no_upfront,0.027778,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:01.125378 +AWS,ap-south-1,m6gd.xlarge,reserved_3y,partial_upfront,0.027778,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:58.530901 +AWS,ap-south-1,m6gd.xlarge,spot,NA,0.071284,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339769 +AWS,ap-south-1,m6i.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T08:56:34.258741 +AWS,ap-south-1,m6i.12xlarge,reserved_1y,all_upfront,1.524629,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:06.007595 +AWS,ap-south-1,m6i.12xlarge,reserved_1y,no_upfront,1.524629,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:45.721809 +AWS,ap-south-1,m6i.12xlarge,reserved_1y,partial_upfront,1.524629,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:32.657648 +AWS,ap-south-1,m6i.12xlarge,reserved_3y,all_upfront,1.01641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:11.886965 +AWS,ap-south-1,m6i.12xlarge,reserved_3y,no_upfront,1.01641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:47.118656 +AWS,ap-south-1,m6i.12xlarge,reserved_3y,partial_upfront,1.01641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:44.820117 +AWS,ap-south-1,m6i.12xlarge,spot,NA,0.669157,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339464 +AWS,ap-south-1,m6i.16xlarge,on_demand,NA,3.232,USD,AWS Pricing API,2025-11-30T08:56:48.774136 +AWS,ap-south-1,m6i.16xlarge,reserved_1y,all_upfront,2.13444,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:20.430512 +AWS,ap-south-1,m6i.16xlarge,reserved_1y,no_upfront,2.13444,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:00.366533 +AWS,ap-south-1,m6i.16xlarge,reserved_1y,partial_upfront,2.13444,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:47.115170 +AWS,ap-south-1,m6i.16xlarge,reserved_3y,all_upfront,2.13444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:26.047614 +AWS,ap-south-1,m6i.16xlarge,reserved_3y,no_upfront,2.13444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:01.823559 +AWS,ap-south-1,m6i.16xlarge,reserved_3y,partial_upfront,2.13444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:59.195639 +AWS,ap-south-1,m6i.16xlarge,spot,NA,1.281328,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339806 +AWS,ap-south-1,m6i.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T08:56:50.330249 +AWS,ap-south-1,m6i.24xlarge,reserved_1y,all_upfront,2.2045,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:21.912537 +AWS,ap-south-1,m6i.24xlarge,reserved_1y,no_upfront,2.2045,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:01.886000 +AWS,ap-south-1,m6i.24xlarge,reserved_1y,partial_upfront,2.2045,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:48.604537 +AWS,ap-south-1,m6i.24xlarge,reserved_3y,all_upfront,2.2045,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:27.496017 +AWS,ap-south-1,m6i.24xlarge,reserved_3y,no_upfront,2.2045,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:03.342529 +AWS,ap-south-1,m6i.24xlarge,reserved_3y,partial_upfront,2.2045,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:00.667844 +AWS,ap-south-1,m6i.24xlarge,spot,NA,1.302916,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339831 +AWS,ap-south-1,m6i.2xlarge,on_demand,NA,0.404,USD,AWS Pricing API,2025-11-30T08:57:09.204372 +AWS,ap-south-1,m6i.2xlarge,reserved_1y,all_upfront,0.254105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:40.739617 +AWS,ap-south-1,m6i.2xlarge,reserved_1y,no_upfront,0.254105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:20.906566 +AWS,ap-south-1,m6i.2xlarge,reserved_1y,partial_upfront,0.254105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:07.443289 +AWS,ap-south-1,m6i.2xlarge,reserved_3y,all_upfront,0.169402,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:45.961728 +AWS,ap-south-1,m6i.2xlarge,reserved_3y,no_upfront,0.169402,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:22.491857 +AWS,ap-south-1,m6i.2xlarge,reserved_3y,partial_upfront,0.169402,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:19.405880 +AWS,ap-south-1,m6i.2xlarge,spot,NA,0.152435,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340298 +AWS,ap-south-1,m6i.32xlarge,on_demand,NA,6.464,USD,AWS Pricing API,2025-11-30T08:57:25.709900 +AWS,ap-south-1,m6i.32xlarge,reserved_1y,all_upfront,4.7712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:57.219620 +AWS,ap-south-1,m6i.32xlarge,reserved_1y,no_upfront,4.7712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:37.567964 +AWS,ap-south-1,m6i.32xlarge,reserved_1y,partial_upfront,4.7712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:23.837933 +AWS,ap-south-1,m6i.32xlarge,reserved_3y,all_upfront,4.7712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:02.242359 +AWS,ap-south-1,m6i.32xlarge,reserved_3y,no_upfront,4.7712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:39.442894 +AWS,ap-south-1,m6i.32xlarge,reserved_3y,partial_upfront,4.7712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:35.855870 +AWS,ap-south-1,m6i.32xlarge,spot,NA,2.006538,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340663 +AWS,ap-south-1,m6i.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T08:56:36.435842 +AWS,ap-south-1,m6i.4xlarge,reserved_1y,all_upfront,0.498059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:08.178387 +AWS,ap-south-1,m6i.4xlarge,reserved_1y,no_upfront,0.498059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:47.890810 +AWS,ap-south-1,m6i.4xlarge,reserved_1y,partial_upfront,0.498059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:34.795281 +AWS,ap-south-1,m6i.4xlarge,reserved_3y,all_upfront,0.16602,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:14.006789 +AWS,ap-south-1,m6i.4xlarge,reserved_3y,no_upfront,0.16602,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:49.308974 +AWS,ap-south-1,m6i.4xlarge,reserved_3y,partial_upfront,0.16602,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:46.989619 +AWS,ap-south-1,m6i.4xlarge,spot,NA,0.321597,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339527 +AWS,ap-south-1,m6i.8xlarge,on_demand,NA,1.616,USD,AWS Pricing API,2025-11-30T08:56:41.176592 +AWS,ap-south-1,m6i.8xlarge,reserved_1y,all_upfront,1.136037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:12.899413 +AWS,ap-south-1,m6i.8xlarge,reserved_1y,no_upfront,1.136037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:52.659611 +AWS,ap-south-1,m6i.8xlarge,reserved_1y,partial_upfront,1.136037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:39.539185 +AWS,ap-south-1,m6i.8xlarge,reserved_3y,all_upfront,0.757346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:18.648953 +AWS,ap-south-1,m6i.8xlarge,reserved_3y,no_upfront,0.757346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:54.129225 +AWS,ap-south-1,m6i.8xlarge,reserved_3y,partial_upfront,0.757346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:51.685139 +AWS,ap-south-1,m6i.8xlarge,spot,NA,0.574963,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339600 +AWS,ap-south-1,m6i.large,on_demand,NA,0.101,USD,AWS Pricing API,2025-11-30T08:56:51.826044 +AWS,ap-south-1,m6i.large,reserved_1y,all_upfront,0.138128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:23.396903 +AWS,ap-south-1,m6i.large,reserved_1y,no_upfront,0.138128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:03.403073 +AWS,ap-south-1,m6i.large,reserved_1y,partial_upfront,0.138128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:50.080624 +AWS,ap-south-1,m6i.large,reserved_3y,all_upfront,0.046043,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:28.958206 +AWS,ap-south-1,m6i.large,reserved_3y,no_upfront,0.046043,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:04.853384 +AWS,ap-south-1,m6i.large,reserved_3y,partial_upfront,0.046043,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:02.142273 +AWS,ap-south-1,m6i.large,spot,NA,0.038853,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339871 +AWS,ap-south-1,m6i.xlarge,on_demand,NA,0.202,USD,AWS Pricing API,2025-11-30T08:56:27.793461 +AWS,ap-south-1,m6i.xlarge,reserved_1y,all_upfront,0.1491,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:59.500335 +AWS,ap-south-1,m6i.xlarge,reserved_1y,no_upfront,0.1491,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:39.203582 +AWS,ap-south-1,m6i.xlarge,reserved_1y,partial_upfront,0.1491,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:26.229317 +AWS,ap-south-1,m6i.xlarge,reserved_3y,all_upfront,0.1491,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:05.515279 +AWS,ap-south-1,m6i.xlarge,reserved_3y,no_upfront,0.1491,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:40.515641 +AWS,ap-south-1,m6i.xlarge,reserved_3y,partial_upfront,0.1491,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:38.376059 +AWS,ap-south-1,m6i.xlarge,spot,NA,0.072323,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339329 +AWS,ap-south-1,m6id.12xlarge,on_demand,NA,3.0744,USD,AWS Pricing API,2025-11-30T08:57:05.721878 +AWS,ap-south-1,m6id.12xlarge,reserved_1y,all_upfront,2.165024,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:37.210839 +AWS,ap-south-1,m6id.12xlarge,reserved_1y,no_upfront,2.165024,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:17.384245 +AWS,ap-south-1,m6id.12xlarge,reserved_1y,partial_upfront,2.165024,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:03.916077 +AWS,ap-south-1,m6id.12xlarge,reserved_3y,all_upfront,1.443335,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:42.526760 +AWS,ap-south-1,m6id.12xlarge,reserved_3y,no_upfront,1.443335,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:18.915411 +AWS,ap-south-1,m6id.12xlarge,reserved_3y,partial_upfront,1.443335,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:15.909894 +AWS,ap-south-1,m6id.12xlarge,spot,NA,0.984733,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340213 +AWS,ap-south-1,m6id.16xlarge,on_demand,NA,4.0992,USD,AWS Pricing API,2025-11-30T08:56:32.910552 +AWS,ap-south-1,m6id.16xlarge,reserved_1y,all_upfront,2.410274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:04.669986 +AWS,ap-south-1,m6id.16xlarge,reserved_1y,no_upfront,2.410274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:44.364231 +AWS,ap-south-1,m6id.16xlarge,reserved_1y,partial_upfront,2.410274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:31.311606 +AWS,ap-south-1,m6id.16xlarge,reserved_3y,all_upfront,0.803425,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:10.562813 +AWS,ap-south-1,m6id.16xlarge,reserved_3y,no_upfront,0.803425,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:45.755106 +AWS,ap-south-1,m6id.16xlarge,reserved_3y,partial_upfront,0.803425,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:43.478432 +AWS,ap-south-1,m6id.16xlarge,spot,NA,1.266394,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339428 +AWS,ap-south-1,m6id.24xlarge,on_demand,NA,6.1488,USD,AWS Pricing API,2025-11-30T08:56:37.115541 +AWS,ap-south-1,m6id.24xlarge,reserved_1y,all_upfront,8.363813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:08.854237 +AWS,ap-south-1,m6id.24xlarge,reserved_1y,no_upfront,8.363813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:48.579842 +AWS,ap-south-1,m6id.24xlarge,reserved_1y,partial_upfront,8.363813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:35.468794 +AWS,ap-south-1,m6id.24xlarge,reserved_3y,all_upfront,2.787938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:14.676259 +AWS,ap-south-1,m6id.24xlarge,reserved_3y,no_upfront,2.787938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:50.010681 +AWS,ap-south-1,m6id.24xlarge,reserved_3y,partial_upfront,2.787938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:47.670939 +AWS,ap-south-1,m6id.24xlarge,spot,NA,2.06182,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339502 +AWS,ap-south-1,m6id.2xlarge,on_demand,NA,0.5124,USD,AWS Pricing API,2025-11-30T08:56:29.527895 +AWS,ap-south-1,m6id.2xlarge,reserved_1y,all_upfront,0.301256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:01.243791 +AWS,ap-south-1,m6id.2xlarge,reserved_1y,no_upfront,0.301256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:40.960835 +AWS,ap-south-1,m6id.2xlarge,reserved_1y,partial_upfront,0.301256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:27.958420 +AWS,ap-south-1,m6id.2xlarge,reserved_3y,all_upfront,0.100419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:07.239731 +AWS,ap-south-1,m6id.2xlarge,reserved_3y,no_upfront,0.100419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:42.312630 +AWS,ap-south-1,m6id.2xlarge,reserved_3y,partial_upfront,0.100419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:40.131218 +AWS,ap-south-1,m6id.2xlarge,spot,NA,0.203325,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339374 +AWS,ap-south-1,m6id.32xlarge,on_demand,NA,8.1984,USD,AWS Pricing API,2025-11-30T08:57:09.516586 +AWS,ap-south-1,m6id.32xlarge,reserved_1y,all_upfront,4.09654,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:41.013163 +AWS,ap-south-1,m6id.32xlarge,reserved_1y,no_upfront,4.09654,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:21.178382 +AWS,ap-south-1,m6id.32xlarge,reserved_1y,partial_upfront,4.09654,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:07.711630 +AWS,ap-south-1,m6id.32xlarge,reserved_3y,all_upfront,4.09654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:46.225958 +AWS,ap-south-1,m6id.32xlarge,reserved_3y,no_upfront,4.09654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:22.770223 +AWS,ap-south-1,m6id.32xlarge,reserved_3y,partial_upfront,4.09654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:19.674401 +AWS,ap-south-1,m6id.32xlarge,spot,NA,2.815582,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340306 +AWS,ap-south-1,m6id.4xlarge,on_demand,NA,1.0248,USD,AWS Pricing API,2025-11-30T08:57:31.776002 +AWS,ap-south-1,m6id.4xlarge,reserved_1y,all_upfront,0.721675,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:03.366427 +AWS,ap-south-1,m6id.4xlarge,reserved_1y,no_upfront,0.721675,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:43.685968 +AWS,ap-south-1,m6id.4xlarge,reserved_1y,partial_upfront,0.721675,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:29.906983 +AWS,ap-south-1,m6id.4xlarge,reserved_3y,all_upfront,0.481112,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:08.209420 +AWS,ap-south-1,m6id.4xlarge,reserved_3y,no_upfront,0.481112,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:45.623098 +AWS,ap-south-1,m6id.4xlarge,reserved_3y,partial_upfront,0.481112,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:41.889771 +AWS,ap-south-1,m6id.4xlarge,spot,NA,0.316579,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340746 +AWS,ap-south-1,m6id.8xlarge,on_demand,NA,2.0496,USD,AWS Pricing API,2025-11-30T08:57:04.359089 +AWS,ap-south-1,m6id.8xlarge,reserved_1y,all_upfront,1.22972,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:35.848896 +AWS,ap-south-1,m6id.8xlarge,reserved_1y,no_upfront,1.22972,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:16.012790 +AWS,ap-south-1,m6id.8xlarge,reserved_1y,partial_upfront,1.22972,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:02.553523 +AWS,ap-south-1,m6id.8xlarge,reserved_3y,all_upfront,0.819827,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:41.199372 +AWS,ap-south-1,m6id.8xlarge,reserved_3y,no_upfront,0.819827,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:17.550334 +AWS,ap-south-1,m6id.8xlarge,reserved_3y,partial_upfront,0.819827,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:14.547253 +AWS,ap-south-1,m6id.8xlarge,spot,NA,0.644633,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340197 +AWS,ap-south-1,m6id.large,on_demand,NA,0.1281,USD,AWS Pricing API,2025-11-30T08:57:32.845782 +AWS,ap-south-1,m6id.large,reserved_1y,all_upfront,0.118557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:04.442647 +AWS,ap-south-1,m6id.large,reserved_1y,no_upfront,0.118557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:44.767141 +AWS,ap-south-1,m6id.large,reserved_1y,partial_upfront,0.118557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:30.980534 +AWS,ap-south-1,m6id.large,reserved_3y,all_upfront,0.059272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:09.259117 +AWS,ap-south-1,m6id.large,reserved_3y,no_upfront,0.059272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:46.720274 +AWS,ap-south-1,m6id.large,reserved_3y,partial_upfront,0.059272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:42.955528 +AWS,ap-south-1,m6id.large,spot,NA,0.037898,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340774 +AWS,ap-south-1,m6id.xlarge,on_demand,NA,0.2562,USD,AWS Pricing API,2025-11-30T08:56:36.165252 +AWS,ap-south-1,m6id.xlarge,reserved_1y,all_upfront,0.180393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:07.900858 +AWS,ap-south-1,m6id.xlarge,reserved_1y,no_upfront,0.180393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:47.621926 +AWS,ap-south-1,m6id.xlarge,reserved_1y,partial_upfront,0.180393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:34.528874 +AWS,ap-south-1,m6id.xlarge,reserved_3y,all_upfront,0.120271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:13.740060 +AWS,ap-south-1,m6id.xlarge,reserved_3y,no_upfront,0.120271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:49.035576 +AWS,ap-south-1,m6id.xlarge,reserved_3y,partial_upfront,0.120271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:46.720875 +AWS,ap-south-1,m6id.xlarge,spot,NA,0.090692,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339481 +AWS,ap-south-1,m6idn.12xlarge,on_demand,NA,4.0716,USD,AWS Pricing API,2025-11-30T08:56:56.095874 +AWS,ap-south-1,m6idn.12xlarge,reserved_1y,all_upfront,2.394064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:27.591103 +AWS,ap-south-1,m6idn.12xlarge,reserved_1y,no_upfront,2.394064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:07.663563 +AWS,ap-south-1,m6idn.12xlarge,reserved_1y,partial_upfront,2.394064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:54.256570 +AWS,ap-south-1,m6idn.12xlarge,reserved_3y,all_upfront,0.798021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:33.076601 +AWS,ap-south-1,m6idn.12xlarge,reserved_3y,no_upfront,0.798021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:09.136696 +AWS,ap-south-1,m6idn.12xlarge,reserved_3y,partial_upfront,0.798021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:06.333037 +AWS,ap-south-1,m6idn.12xlarge,spot,NA,1.545677,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339988 +AWS,ap-south-1,m6idn.16xlarge,on_demand,NA,5.4288,USD,AWS Pricing API,2025-11-30T08:57:19.179453 +AWS,ap-south-1,m6idn.16xlarge,reserved_1y,all_upfront,3.42014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:50.618745 +AWS,ap-south-1,m6idn.16xlarge,reserved_1y,no_upfront,3.42014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:30.930030 +AWS,ap-south-1,m6idn.16xlarge,reserved_1y,partial_upfront,3.42014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:17.271815 +AWS,ap-south-1,m6idn.16xlarge,reserved_3y,all_upfront,3.42014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:55.692076 +AWS,ap-south-1,m6idn.16xlarge,reserved_3y,no_upfront,3.42014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:32.728047 +AWS,ap-south-1,m6idn.16xlarge,reserved_3y,partial_upfront,3.42014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:29.214907 +AWS,ap-south-1,m6idn.16xlarge,spot,NA,1.928478,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340511 +AWS,ap-south-1,m6idn.24xlarge,on_demand,NA,8.1432,USD,AWS Pricing API,2025-11-30T08:57:01.942807 +AWS,ap-south-1,m6idn.24xlarge,reserved_1y,all_upfront,3.65858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:33.428046 +AWS,ap-south-1,m6idn.24xlarge,reserved_1y,no_upfront,3.65858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:13.568402 +AWS,ap-south-1,m6idn.24xlarge,reserved_1y,partial_upfront,3.65858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:00.107298 +AWS,ap-south-1,m6idn.24xlarge,reserved_3y,all_upfront,3.65858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:38.810502 +AWS,ap-south-1,m6idn.24xlarge,reserved_3y,no_upfront,3.65858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:15.083650 +AWS,ap-south-1,m6idn.24xlarge,reserved_3y,partial_upfront,3.65858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:12.136947 +AWS,ap-south-1,m6idn.24xlarge,spot,NA,2.5325,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340129 +AWS,ap-south-1,m6idn.2xlarge,on_demand,NA,0.6786,USD,AWS Pricing API,2025-11-30T08:56:42.277301 +AWS,ap-south-1,m6idn.2xlarge,reserved_1y,all_upfront,0.407119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:13.973696 +AWS,ap-south-1,m6idn.2xlarge,reserved_1y,no_upfront,0.407119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:53.751231 +AWS,ap-south-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.407119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:40.621848 +AWS,ap-south-1,m6idn.2xlarge,reserved_3y,all_upfront,0.271426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:19.703432 +AWS,ap-south-1,m6idn.2xlarge,reserved_3y,no_upfront,0.271426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:55.238149 +AWS,ap-south-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.271426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:52.767826 +AWS,ap-south-1,m6idn.2xlarge,spot,NA,0.226551,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339633 +AWS,ap-south-1,m6idn.32xlarge,on_demand,NA,10.8576,USD,AWS Pricing API,2025-11-30T08:57:02.755766 +AWS,ap-south-1,m6idn.32xlarge,reserved_1y,all_upfront,7.696996,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:34.246205 +AWS,ap-south-1,m6idn.32xlarge,reserved_1y,no_upfront,7.696996,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:14.380142 +AWS,ap-south-1,m6idn.32xlarge,reserved_1y,partial_upfront,7.696996,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:00.914306 +AWS,ap-south-1,m6idn.32xlarge,reserved_3y,all_upfront,5.131319,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:39.611666 +AWS,ap-south-1,m6idn.32xlarge,reserved_3y,no_upfront,5.131319,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:15.906438 +AWS,ap-south-1,m6idn.32xlarge,reserved_3y,partial_upfront,5.131319,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:12.947241 +AWS,ap-south-1,m6idn.32xlarge,spot,NA,3.293373,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340173 +AWS,ap-south-1,m6idn.4xlarge,on_demand,NA,1.3572,USD,AWS Pricing API,2025-11-30T08:56:58.958310 +AWS,ap-south-1,m6idn.4xlarge,reserved_1y,all_upfront,0.814352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:30.448739 +AWS,ap-south-1,m6idn.4xlarge,reserved_1y,no_upfront,0.814352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:10.552224 +AWS,ap-south-1,m6idn.4xlarge,reserved_1y,partial_upfront,0.814352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:57.111446 +AWS,ap-south-1,m6idn.4xlarge,reserved_3y,all_upfront,0.542891,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:35.865929 +AWS,ap-south-1,m6idn.4xlarge,reserved_3y,no_upfront,0.542891,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:12.041106 +AWS,ap-south-1,m6idn.4xlarge,reserved_3y,partial_upfront,0.542891,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:09.197225 +AWS,ap-south-1,m6idn.4xlarge,spot,NA,0.485061,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340071 +AWS,ap-south-1,m6idn.8xlarge,on_demand,NA,2.7144,USD,AWS Pricing API,2025-11-30T08:56:27.105115 +AWS,ap-south-1,m6idn.8xlarge,reserved_1y,all_upfront,1.71007,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:58.824330 +AWS,ap-south-1,m6idn.8xlarge,reserved_1y,no_upfront,1.71007,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:38.521068 +AWS,ap-south-1,m6idn.8xlarge,reserved_1y,partial_upfront,1.71007,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:25.546933 +AWS,ap-south-1,m6idn.8xlarge,reserved_3y,all_upfront,1.71007,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:04.851485 +AWS,ap-south-1,m6idn.8xlarge,reserved_3y,no_upfront,1.71007,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:39.842463 +AWS,ap-south-1,m6idn.8xlarge,reserved_3y,partial_upfront,1.71007,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:37.708471 +AWS,ap-south-1,m6idn.8xlarge,spot,NA,0.899018,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339333 +AWS,ap-south-1,m6idn.large,on_demand,NA,0.16965,USD,AWS Pricing API,2025-11-30T08:57:13.244265 +AWS,ap-south-1,m6idn.large,reserved_1y,all_upfront,0.099772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:44.673970 +AWS,ap-south-1,m6idn.large,reserved_1y,no_upfront,0.099772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:24.883596 +AWS,ap-south-1,m6idn.large,reserved_1y,partial_upfront,0.099772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:11.340207 +AWS,ap-south-1,m6idn.large,reserved_3y,all_upfront,0.033257,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:49.811994 +AWS,ap-south-1,m6idn.large,reserved_3y,no_upfront,0.033257,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:26.484324 +AWS,ap-south-1,m6idn.large,reserved_3y,partial_upfront,0.033257,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:23.307906 +AWS,ap-south-1,m6idn.large,spot,NA,0.053805,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340391 +AWS,ap-south-1,m6idn.xlarge,on_demand,NA,0.3393,USD,AWS Pricing API,2025-11-30T08:56:56.232456 +AWS,ap-south-1,m6idn.xlarge,reserved_1y,all_upfront,0.199543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:27.726287 +AWS,ap-south-1,m6idn.xlarge,reserved_1y,no_upfront,0.199543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:07.810666 +AWS,ap-south-1,m6idn.xlarge,reserved_1y,partial_upfront,0.199543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:54.391827 +AWS,ap-south-1,m6idn.xlarge,reserved_3y,all_upfront,0.066514,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:33.213544 +AWS,ap-south-1,m6idn.xlarge,reserved_3y,no_upfront,0.066514,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:09.274425 +AWS,ap-south-1,m6idn.xlarge,reserved_3y,partial_upfront,0.066514,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:06.468610 +AWS,ap-south-1,m6idn.xlarge,spot,NA,0.103369,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339977 +AWS,ap-south-1,m6in.12xlarge,on_demand,NA,3.48192,USD,AWS Pricing API,2025-11-30T08:56:24.278657 +AWS,ap-south-1,m6in.12xlarge,reserved_1y,all_upfront,1.54932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:56.005002 +AWS,ap-south-1,m6in.12xlarge,reserved_1y,no_upfront,1.54932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:35.674076 +AWS,ap-south-1,m6in.12xlarge,reserved_1y,partial_upfront,1.54932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:22.731413 +AWS,ap-south-1,m6in.12xlarge,reserved_3y,all_upfront,1.54932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:02.060618 +AWS,ap-south-1,m6in.12xlarge,reserved_3y,no_upfront,1.54932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:36.856399 +AWS,ap-south-1,m6in.12xlarge,reserved_3y,partial_upfront,1.54932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:34.905594 +AWS,ap-south-1,m6in.12xlarge,spot,NA,1.338829,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339276 +AWS,ap-south-1,m6in.16xlarge,on_demand,NA,4.64256,USD,AWS Pricing API,2025-11-30T08:56:34.120593 +AWS,ap-south-1,m6in.16xlarge,reserved_1y,all_upfront,2.92481,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:05.871753 +AWS,ap-south-1,m6in.16xlarge,reserved_1y,no_upfront,2.92481,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:45.586084 +AWS,ap-south-1,m6in.16xlarge,reserved_1y,partial_upfront,2.92481,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:32.524614 +AWS,ap-south-1,m6in.16xlarge,reserved_3y,all_upfront,2.92481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:11.755528 +AWS,ap-south-1,m6in.16xlarge,reserved_3y,no_upfront,2.92481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:46.980646 +AWS,ap-south-1,m6in.16xlarge,reserved_3y,partial_upfront,2.92481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:44.685948 +AWS,ap-south-1,m6in.16xlarge,spot,NA,1.244215,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339456 +AWS,ap-south-1,m6in.24xlarge,on_demand,NA,6.96384,USD,AWS Pricing API,2025-11-30T08:57:15.679634 +AWS,ap-south-1,m6in.24xlarge,reserved_1y,all_upfront,4.178305,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:47.105274 +AWS,ap-south-1,m6in.24xlarge,reserved_1y,no_upfront,4.178305,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:27.346514 +AWS,ap-south-1,m6in.24xlarge,reserved_1y,partial_upfront,4.178305,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:13.776458 +AWS,ap-south-1,m6in.24xlarge,reserved_3y,all_upfront,2.785535,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:52.245534 +AWS,ap-south-1,m6in.24xlarge,reserved_3y,no_upfront,2.785535,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:29.021138 +AWS,ap-south-1,m6in.24xlarge,reserved_3y,partial_upfront,2.785535,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:25.735967 +AWS,ap-south-1,m6in.24xlarge,spot,NA,1.850366,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340415 +AWS,ap-south-1,m6in.2xlarge,on_demand,NA,0.58032,USD,AWS Pricing API,2025-11-30T08:56:40.901505 +AWS,ap-south-1,m6in.2xlarge,reserved_1y,all_upfront,0.43507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:12.626639 +AWS,ap-south-1,m6in.2xlarge,reserved_1y,no_upfront,0.43507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:52.386118 +AWS,ap-south-1,m6in.2xlarge,reserved_1y,partial_upfront,0.43507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:39.270504 +AWS,ap-south-1,m6in.2xlarge,reserved_3y,all_upfront,0.43507,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:18.382635 +AWS,ap-south-1,m6in.2xlarge,reserved_3y,no_upfront,0.43507,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:53.856046 +AWS,ap-south-1,m6in.2xlarge,reserved_3y,partial_upfront,0.43507,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:51.418804 +AWS,ap-south-1,m6in.2xlarge,spot,NA,0.189712,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339613 +AWS,ap-south-1,m6in.32xlarge,on_demand,NA,9.28512,USD,AWS Pricing API,2025-11-30T08:56:29.662778 +AWS,ap-south-1,m6in.32xlarge,reserved_1y,all_upfront,7.650972,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:01.385227 +AWS,ap-south-1,m6in.32xlarge,reserved_1y,no_upfront,7.650972,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:41.097444 +AWS,ap-south-1,m6in.32xlarge,reserved_1y,partial_upfront,7.650972,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:28.090178 +AWS,ap-south-1,m6in.32xlarge,reserved_3y,all_upfront,3.825477,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:07.370432 +AWS,ap-south-1,m6in.32xlarge,reserved_3y,no_upfront,3.825477,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:42.460824 +AWS,ap-south-1,m6in.32xlarge,reserved_3y,partial_upfront,3.825477,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:40.265240 +AWS,ap-south-1,m6in.32xlarge,spot,NA,2.132297,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339379 +AWS,ap-south-1,m6in.4xlarge,on_demand,NA,1.16064,USD,AWS Pricing API,2025-11-30T08:56:39.679548 +AWS,ap-south-1,m6in.4xlarge,reserved_1y,all_upfront,0.87013,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:11.422314 +AWS,ap-south-1,m6in.4xlarge,reserved_1y,no_upfront,0.87013,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:51.165732 +AWS,ap-south-1,m6in.4xlarge,reserved_1y,partial_upfront,0.87013,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:38.038264 +AWS,ap-south-1,m6in.4xlarge,reserved_3y,all_upfront,0.87013,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:17.186433 +AWS,ap-south-1,m6in.4xlarge,reserved_3y,no_upfront,0.87013,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:52.618326 +AWS,ap-south-1,m6in.4xlarge,reserved_3y,partial_upfront,0.87013,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:50.206528 +AWS,ap-south-1,m6in.4xlarge,spot,NA,0.377377,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339576 +AWS,ap-south-1,m6in.8xlarge,on_demand,NA,2.32128,USD,AWS Pricing API,2025-11-30T08:56:37.790985 +AWS,ap-south-1,m6in.8xlarge,reserved_1y,all_upfront,1.364954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:09.527981 +AWS,ap-south-1,m6in.8xlarge,reserved_1y,no_upfront,1.364954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:49.262536 +AWS,ap-south-1,m6in.8xlarge,reserved_1y,partial_upfront,1.364954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:36.143120 +AWS,ap-south-1,m6in.8xlarge,reserved_3y,all_upfront,0.454985,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:15.339286 +AWS,ap-south-1,m6in.8xlarge,reserved_3y,no_upfront,0.454985,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:50.693662 +AWS,ap-south-1,m6in.8xlarge,reserved_3y,partial_upfront,0.454985,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:48.331341 +AWS,ap-south-1,m6in.8xlarge,spot,NA,0.693654,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339539 +AWS,ap-south-1,m6in.large,on_demand,NA,0.14508,USD,AWS Pricing API,2025-11-30T08:56:57.452953 +AWS,ap-south-1,m6in.large,reserved_1y,all_upfront,0.085274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:28.956473 +AWS,ap-south-1,m6in.large,reserved_1y,no_upfront,0.085274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:09.051589 +AWS,ap-south-1,m6in.large,reserved_1y,partial_upfront,0.085274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:55.608803 +AWS,ap-south-1,m6in.large,reserved_3y,all_upfront,0.028425,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:34.406032 +AWS,ap-south-1,m6in.large,reserved_3y,no_upfront,0.028425,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:10.515077 +AWS,ap-south-1,m6in.large,reserved_3y,partial_upfront,0.028425,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:07.711538 +AWS,ap-south-1,m6in.large,spot,NA,0.045206,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340045 +AWS,ap-south-1,m6in.xlarge,on_demand,NA,0.29016,USD,AWS Pricing API,2025-11-30T08:57:11.549025 +AWS,ap-south-1,m6in.xlarge,reserved_1y,all_upfront,0.21753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:43.056941 +AWS,ap-south-1,m6in.xlarge,reserved_1y,no_upfront,0.21753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:23.251696 +AWS,ap-south-1,m6in.xlarge,reserved_1y,partial_upfront,0.21753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:09.717327 +AWS,ap-south-1,m6in.xlarge,reserved_3y,all_upfront,0.21753,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:48.206900 +AWS,ap-south-1,m6in.xlarge,reserved_3y,no_upfront,0.21753,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:24.830610 +AWS,ap-south-1,m6in.xlarge,reserved_3y,partial_upfront,0.21753,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:21.685748 +AWS,ap-south-1,m6in.xlarge,spot,NA,0.073763,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340338 +AWS,ap-south-1,m7g.12xlarge,on_demand,NA,1.3997,USD,AWS Pricing API,2025-11-30T08:56:45.115267 +AWS,ap-south-1,m7g.12xlarge,reserved_1y,all_upfront,1.0332,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:16.811937 +AWS,ap-south-1,m7g.12xlarge,reserved_1y,no_upfront,1.0332,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:56.615976 +AWS,ap-south-1,m7g.12xlarge,reserved_1y,partial_upfront,1.0332,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:43.447272 +AWS,ap-south-1,m7g.12xlarge,reserved_3y,all_upfront,1.0332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:22.475662 +AWS,ap-south-1,m7g.12xlarge,reserved_3y,no_upfront,1.0332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:58.109441 +AWS,ap-south-1,m7g.12xlarge,reserved_3y,partial_upfront,1.0332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:55.563316 +AWS,ap-south-1,m7g.12xlarge,spot,NA,0.491205,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339708 +AWS,ap-south-1,m7g.16xlarge,on_demand,NA,1.8662,USD,AWS Pricing API,2025-11-30T08:57:14.051567 +AWS,ap-south-1,m7g.16xlarge,reserved_1y,all_upfront,2.552968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:45.493582 +AWS,ap-south-1,m7g.16xlarge,reserved_1y,no_upfront,2.552968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:25.703615 +AWS,ap-south-1,m7g.16xlarge,reserved_1y,partial_upfront,2.552968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:12.150516 +AWS,ap-south-1,m7g.16xlarge,reserved_3y,all_upfront,0.850989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:50.614113 +AWS,ap-south-1,m7g.16xlarge,reserved_3y,no_upfront,0.850989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:27.323441 +AWS,ap-south-1,m7g.16xlarge,reserved_3y,partial_upfront,0.850989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:24.125497 +AWS,ap-south-1,m7g.16xlarge,spot,NA,0.643168,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340398 +AWS,ap-south-1,m7g.2xlarge,on_demand,NA,0.2333,USD,AWS Pricing API,2025-11-30T08:56:36.980248 +AWS,ap-south-1,m7g.2xlarge,reserved_1y,all_upfront,0.1172,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:08.720035 +AWS,ap-south-1,m7g.2xlarge,reserved_1y,no_upfront,0.1172,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:48.443649 +AWS,ap-south-1,m7g.2xlarge,reserved_1y,partial_upfront,0.1172,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:35.330183 +AWS,ap-south-1,m7g.2xlarge,reserved_3y,all_upfront,0.1172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:14.544559 +AWS,ap-south-1,m7g.2xlarge,reserved_3y,no_upfront,0.1172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:49.871667 +AWS,ap-south-1,m7g.2xlarge,reserved_3y,partial_upfront,0.1172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:47.535104 +AWS,ap-south-1,m7g.2xlarge,spot,NA,0.105151,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339535 +AWS,ap-south-1,m7g.4xlarge,on_demand,NA,0.4666,USD,AWS Pricing API,2025-11-30T08:57:33.379681 +AWS,ap-south-1,m7g.4xlarge,reserved_1y,all_upfront,0.287557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:04.986139 +AWS,ap-south-1,m7g.4xlarge,reserved_1y,no_upfront,0.287557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:45.314842 +AWS,ap-south-1,m7g.4xlarge,reserved_1y,partial_upfront,0.287557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:31.516401 +AWS,ap-south-1,m7g.4xlarge,reserved_3y,all_upfront,0.095852,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:09.792026 +AWS,ap-south-1,m7g.4xlarge,reserved_3y,no_upfront,0.095852,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:47.267066 +AWS,ap-south-1,m7g.4xlarge,reserved_3y,partial_upfront,0.095852,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:43.484756 +AWS,ap-south-1,m7g.4xlarge,spot,NA,0.196072,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340790 +AWS,ap-south-1,m7g.8xlarge,on_demand,NA,0.9331,USD,AWS Pricing API,2025-11-30T08:56:28.203281 +AWS,ap-south-1,m7g.8xlarge,reserved_1y,all_upfront,0.6888,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:59.905493 +AWS,ap-south-1,m7g.8xlarge,reserved_1y,no_upfront,0.6888,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:39.612537 +AWS,ap-south-1,m7g.8xlarge,reserved_1y,partial_upfront,0.6888,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:26.633507 +AWS,ap-south-1,m7g.8xlarge,reserved_3y,all_upfront,0.6888,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:05.910888 +AWS,ap-south-1,m7g.8xlarge,reserved_3y,no_upfront,0.6888,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:40.928865 +AWS,ap-south-1,m7g.8xlarge,reserved_3y,partial_upfront,0.6888,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:38.776498 +AWS,ap-south-1,m7g.8xlarge,spot,NA,0.373294,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339345 +AWS,ap-south-1,m7g.large,on_demand,NA,0.0583,USD,AWS Pricing API,2025-11-30T08:56:55.828483 +AWS,ap-south-1,m7g.large,reserved_1y,all_upfront,0.041048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:27.327683 +AWS,ap-south-1,m7g.large,reserved_1y,no_upfront,0.041048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:07.392794 +AWS,ap-south-1,m7g.large,reserved_1y,partial_upfront,0.041048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:53.988781 +AWS,ap-south-1,m7g.large,reserved_3y,all_upfront,0.027349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:32.812222 +AWS,ap-south-1,m7g.large,reserved_3y,no_upfront,0.027349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:08.863134 +AWS,ap-south-1,m7g.large,reserved_3y,partial_upfront,0.027349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:06.065873 +AWS,ap-south-1,m7g.large,spot,NA,0.028491,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340000 +AWS,ap-south-1,m7g.xlarge,on_demand,NA,0.1166,USD,AWS Pricing API,2025-11-30T08:57:02.618494 +AWS,ap-south-1,m7g.xlarge,reserved_1y,all_upfront,0.071918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:34.113129 +AWS,ap-south-1,m7g.xlarge,reserved_1y,no_upfront,0.071918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:14.245112 +AWS,ap-south-1,m7g.xlarge,reserved_1y,partial_upfront,0.071918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:00.779611 +AWS,ap-south-1,m7g.xlarge,reserved_3y,all_upfront,0.023973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:39.473155 +AWS,ap-south-1,m7g.xlarge,reserved_3y,no_upfront,0.023973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:15.768157 +AWS,ap-south-1,m7g.xlarge,reserved_3y,partial_upfront,0.023973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:12.812626 +AWS,ap-south-1,m7g.xlarge,spot,NA,0.054525,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340161 +AWS,ap-south-1,m7gd.12xlarge,on_demand,NA,1.704,USD,AWS Pricing API,2025-11-30T08:56:36.299132 +AWS,ap-south-1,m7gd.12xlarge,reserved_1y,all_upfront,1.001941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:08.037920 +AWS,ap-south-1,m7gd.12xlarge,reserved_1y,no_upfront,1.001941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:47.756326 +AWS,ap-south-1,m7gd.12xlarge,reserved_1y,partial_upfront,1.001941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:34.662921 +AWS,ap-south-1,m7gd.12xlarge,reserved_3y,all_upfront,0.33398,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:13.873076 +AWS,ap-south-1,m7gd.12xlarge,reserved_3y,no_upfront,0.33398,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:49.171137 +AWS,ap-south-1,m7gd.12xlarge,reserved_3y,partial_upfront,0.33398,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:46.856392 +AWS,ap-south-1,m7gd.12xlarge,spot,NA,0.634338,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339510 +AWS,ap-south-1,m7gd.16xlarge,on_demand,NA,2.272,USD,AWS Pricing API,2025-11-30T08:56:53.464827 +AWS,ap-south-1,m7gd.16xlarge,reserved_1y,all_upfront,1.817642,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:25.035869 +AWS,ap-south-1,m7gd.16xlarge,reserved_1y,no_upfront,1.817642,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:05.075305 +AWS,ap-south-1,m7gd.16xlarge,reserved_1y,partial_upfront,1.817642,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:51.693848 +AWS,ap-south-1,m7gd.16xlarge,reserved_3y,all_upfront,0.908814,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:30.547389 +AWS,ap-south-1,m7gd.16xlarge,reserved_3y,no_upfront,0.908814,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:06.520038 +AWS,ap-south-1,m7gd.16xlarge,reserved_3y,partial_upfront,0.908814,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:03.771169 +AWS,ap-south-1,m7gd.16xlarge,spot,NA,0.722666,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339927 +AWS,ap-south-1,m7gd.2xlarge,on_demand,NA,0.284,USD,AWS Pricing API,2025-11-30T08:57:09.068865 +AWS,ap-south-1,m7gd.2xlarge,reserved_1y,all_upfront,0.21,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:40.603315 +AWS,ap-south-1,m7gd.2xlarge,reserved_1y,no_upfront,0.21,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:20.768788 +AWS,ap-south-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.21,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:07.300088 +AWS,ap-south-1,m7gd.2xlarge,reserved_3y,all_upfront,0.21,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:45.826119 +AWS,ap-south-1,m7gd.2xlarge,reserved_3y,no_upfront,0.21,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:22.354712 +AWS,ap-south-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.21,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:19.260867 +AWS,ap-south-1,m7gd.2xlarge,spot,NA,0.123116,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340302 +AWS,ap-south-1,m7gd.4xlarge,on_demand,NA,0.568,USD,AWS Pricing API,2025-11-30T08:57:26.542207 +AWS,ap-south-1,m7gd.4xlarge,reserved_1y,all_upfront,0.4,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:58.027158 +AWS,ap-south-1,m7gd.4xlarge,reserved_1y,no_upfront,0.4,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:38.387676 +AWS,ap-south-1,m7gd.4xlarge,reserved_1y,partial_upfront,0.4,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:24.650409 +AWS,ap-south-1,m7gd.4xlarge,reserved_3y,all_upfront,0.266667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:03.042520 +AWS,ap-south-1,m7gd.4xlarge,reserved_3y,no_upfront,0.266667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:40.267011 +AWS,ap-south-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.266667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:36.657421 +AWS,ap-south-1,m7gd.4xlarge,spot,NA,0.253551,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340690 +AWS,ap-south-1,m7gd.8xlarge,on_demand,NA,1.136,USD,AWS Pricing API,2025-11-30T08:57:06.787702 +AWS,ap-south-1,m7gd.8xlarge,reserved_1y,all_upfront,0.784018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:38.286016 +AWS,ap-south-1,m7gd.8xlarge,reserved_1y,no_upfront,0.784018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:18.460236 +AWS,ap-south-1,m7gd.8xlarge,reserved_1y,partial_upfront,0.784018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:05.007466 +AWS,ap-south-1,m7gd.8xlarge,reserved_3y,all_upfront,0.261339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:43.586660 +AWS,ap-south-1,m7gd.8xlarge,reserved_3y,no_upfront,0.261339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:20.006935 +AWS,ap-south-1,m7gd.8xlarge,reserved_3y,partial_upfront,0.261339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:16.976047 +AWS,ap-south-1,m7gd.8xlarge,spot,NA,0.437289,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340245 +AWS,ap-south-1,m7gd.large,on_demand,NA,0.071,USD,AWS Pricing API,2025-11-30T08:57:04.631856 +AWS,ap-south-1,m7gd.large,reserved_1y,all_upfront,0.080137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:36.124117 +AWS,ap-south-1,m7gd.large,reserved_1y,no_upfront,0.080137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:16.285611 +AWS,ap-south-1,m7gd.large,reserved_1y,partial_upfront,0.080137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:02.824358 +AWS,ap-south-1,m7gd.large,reserved_3y,all_upfront,0.026712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:41.460965 +AWS,ap-south-1,m7gd.large,reserved_3y,no_upfront,0.026712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:17.820874 +AWS,ap-south-1,m7gd.large,reserved_3y,partial_upfront,0.026712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:14.815674 +AWS,ap-south-1,m7gd.large,spot,NA,0.024216,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340189 +AWS,ap-south-1,m7gd.xlarge,on_demand,NA,0.142,USD,AWS Pricing API,2025-11-30T08:57:10.726586 +AWS,ap-south-1,m7gd.xlarge,reserved_1y,all_upfront,0.097945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:42.248661 +AWS,ap-south-1,m7gd.xlarge,reserved_1y,no_upfront,0.097945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:22.398698 +AWS,ap-south-1,m7gd.xlarge,reserved_1y,partial_upfront,0.097945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:08.911422 +AWS,ap-south-1,m7gd.xlarge,reserved_3y,all_upfront,0.032648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:47.407439 +AWS,ap-south-1,m7gd.xlarge,reserved_3y,no_upfront,0.032648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:23.995673 +AWS,ap-south-1,m7gd.xlarge,reserved_3y,partial_upfront,0.032648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:20.887227 +AWS,ap-south-1,m7gd.xlarge,spot,NA,0.067094,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340314 +AWS,ap-south-1,m7i.12xlarge,on_demand,NA,2.5452,USD,AWS Pricing API,2025-11-30T08:56:42.414603 +AWS,ap-south-1,m7i.12xlarge,reserved_1y,all_upfront,1.87866,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:14.108797 +AWS,ap-south-1,m7i.12xlarge,reserved_1y,no_upfront,1.87866,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:53.885712 +AWS,ap-south-1,m7i.12xlarge,reserved_1y,partial_upfront,1.87866,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:40.757460 +AWS,ap-south-1,m7i.12xlarge,reserved_3y,all_upfront,1.87866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:19.835284 +AWS,ap-south-1,m7i.12xlarge,reserved_3y,no_upfront,1.87866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:55.374461 +AWS,ap-south-1,m7i.12xlarge,reserved_3y,partial_upfront,1.87866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:52.900802 +AWS,ap-south-1,m7i.12xlarge,spot,NA,0.853085,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339637 +AWS,ap-south-1,m7i.16xlarge,on_demand,NA,3.3936,USD,AWS Pricing API,2025-11-30T08:57:19.441357 +AWS,ap-south-1,m7i.16xlarge,reserved_1y,all_upfront,2.857685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:50.890587 +AWS,ap-south-1,m7i.16xlarge,reserved_1y,no_upfront,2.857685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:31.200129 +AWS,ap-south-1,m7i.16xlarge,reserved_1y,partial_upfront,2.857685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:17.535848 +AWS,ap-south-1,m7i.16xlarge,reserved_3y,all_upfront,1.428842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:55.954828 +AWS,ap-south-1,m7i.16xlarge,reserved_3y,no_upfront,1.428842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:33.002229 +AWS,ap-south-1,m7i.16xlarge,reserved_3y,partial_upfront,1.428842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:29.483449 +AWS,ap-south-1,m7i.16xlarge,spot,NA,1.129838,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340515 +AWS,ap-south-1,m7i.24xlarge,on_demand,NA,5.0904,USD,AWS Pricing API,2025-11-30T08:57:25.447756 +AWS,ap-south-1,m7i.24xlarge,reserved_1y,all_upfront,3.578355,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:56.952792 +AWS,ap-south-1,m7i.24xlarge,reserved_1y,no_upfront,3.578355,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:37.296934 +AWS,ap-south-1,m7i.24xlarge,reserved_1y,partial_upfront,3.578355,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:23.570672 +AWS,ap-south-1,m7i.24xlarge,reserved_3y,all_upfront,2.385585,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:01.966707 +AWS,ap-south-1,m7i.24xlarge,reserved_3y,no_upfront,2.385585,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:39.170412 +AWS,ap-south-1,m7i.24xlarge,reserved_3y,partial_upfront,2.385585,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:35.583735 +AWS,ap-south-1,m7i.24xlarge,spot,NA,1.236332,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340659 +AWS,ap-south-1,m7i.2xlarge,on_demand,NA,0.4242,USD,AWS Pricing API,2025-11-30T08:57:00.855139 +AWS,ap-south-1,m7i.2xlarge,reserved_1y,all_upfront,0.298187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:32.355159 +AWS,ap-south-1,m7i.2xlarge,reserved_1y,no_upfront,0.298187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:12.459732 +AWS,ap-south-1,m7i.2xlarge,reserved_1y,partial_upfront,0.298187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:59.014626 +AWS,ap-south-1,m7i.2xlarge,reserved_3y,all_upfront,0.198796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:37.746001 +AWS,ap-south-1,m7i.2xlarge,reserved_3y,no_upfront,0.198796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:13.983294 +AWS,ap-south-1,m7i.2xlarge,reserved_3y,partial_upfront,0.198796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:11.069097 +AWS,ap-south-1,m7i.2xlarge,spot,NA,0.198866,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340125 +AWS,ap-south-1,m7i.48xlarge,on_demand,NA,10.1808,USD,AWS Pricing API,2025-11-30T08:56:23.868401 +AWS,ap-south-1,m7i.48xlarge,reserved_1y,all_upfront,6.403372,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:55.587847 +AWS,ap-south-1,m7i.48xlarge,reserved_1y,no_upfront,6.403372,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:35.263640 +AWS,ap-south-1,m7i.48xlarge,reserved_1y,partial_upfront,6.403372,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:22.329116 +AWS,ap-south-1,m7i.48xlarge,reserved_3y,all_upfront,4.268897,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:01.624556 +AWS,ap-south-1,m7i.48xlarge,reserved_3y,no_upfront,4.268897,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:36.450435 +AWS,ap-south-1,m7i.48xlarge,reserved_3y,partial_upfront,4.268897,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:34.500638 +AWS,ap-south-1,m7i.48xlarge,spot,NA,1.994272,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339242 +AWS,ap-south-1,m7i.4xlarge,on_demand,NA,0.8484,USD,AWS Pricing API,2025-11-30T08:56:37.654915 +AWS,ap-south-1,m7i.4xlarge,reserved_1y,all_upfront,0.533581,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:09.391024 +AWS,ap-south-1,m7i.4xlarge,reserved_1y,no_upfront,0.533581,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:49.124593 +AWS,ap-south-1,m7i.4xlarge,reserved_1y,partial_upfront,0.533581,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:36.006579 +AWS,ap-south-1,m7i.4xlarge,reserved_3y,all_upfront,0.355727,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:15.205199 +AWS,ap-south-1,m7i.4xlarge,reserved_3y,no_upfront,0.355727,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:50.557553 +AWS,ap-south-1,m7i.4xlarge,reserved_3y,partial_upfront,0.355727,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:48.199216 +AWS,ap-south-1,m7i.4xlarge,spot,NA,0.324477,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339568 +AWS,ap-south-1,m7i.8xlarge,on_demand,NA,1.6968,USD,AWS Pricing API,2025-11-30T08:57:15.269591 +AWS,ap-south-1,m7i.8xlarge,reserved_1y,all_upfront,1.12058,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:46.701957 +AWS,ap-south-1,m7i.8xlarge,reserved_1y,no_upfront,1.12058,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:26.935760 +AWS,ap-south-1,m7i.8xlarge,reserved_1y,partial_upfront,1.12058,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:13.373251 +AWS,ap-south-1,m7i.8xlarge,reserved_3y,all_upfront,1.12058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:51.845653 +AWS,ap-south-1,m7i.8xlarge,reserved_3y,no_upfront,1.12058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:28.590846 +AWS,ap-south-1,m7i.8xlarge,reserved_3y,partial_upfront,1.12058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:25.331435 +AWS,ap-south-1,m7i.8xlarge,spot,NA,0.618408,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340427 +AWS,ap-south-1,m7i.large,on_demand,NA,0.10605,USD,AWS Pricing API,2025-11-30T08:56:40.627217 +AWS,ap-south-1,m7i.large,reserved_1y,all_upfront,0.07004,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:12.356784 +AWS,ap-south-1,m7i.large,reserved_1y,no_upfront,0.07004,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:52.116095 +AWS,ap-south-1,m7i.large,reserved_1y,partial_upfront,0.07004,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:39.002289 +AWS,ap-south-1,m7i.large,reserved_3y,all_upfront,0.07004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:18.107670 +AWS,ap-south-1,m7i.large,reserved_3y,no_upfront,0.07004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:53.582479 +AWS,ap-south-1,m7i.large,reserved_3y,partial_upfront,0.07004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:51.145970 +AWS,ap-south-1,m7i.large,spot,NA,0.047479,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339608 +AWS,ap-south-1,m7i.metal-24xl,on_demand,NA,5.0904,USD,AWS Pricing API,2025-11-30T08:56:24.004011 +AWS,ap-south-1,m7i.metal-24xl,reserved_1y,all_upfront,3.75732,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:55.724161 +AWS,ap-south-1,m7i.metal-24xl,reserved_1y,no_upfront,3.75732,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:35.402615 +AWS,ap-south-1,m7i.metal-24xl,reserved_1y,partial_upfront,3.75732,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:22.462207 +AWS,ap-south-1,m7i.metal-24xl,reserved_3y,all_upfront,3.75732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:01.772275 +AWS,ap-south-1,m7i.metal-24xl,reserved_3y,no_upfront,3.75732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:36.585761 +AWS,ap-south-1,m7i.metal-24xl,reserved_3y,partial_upfront,3.75732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:34.635627 +AWS,ap-south-1,m7i.metal-24xl,spot,NA,1.060937,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339250 +AWS,ap-south-1,m7i.metal-48xl,on_demand,NA,10.1808,USD,AWS Pricing API,2025-11-30T08:57:05.037924 +AWS,ap-south-1,m7i.metal-48xl,reserved_1y,all_upfront,8.573055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:36.526583 +AWS,ap-south-1,m7i.metal-48xl,reserved_1y,no_upfront,8.573055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:16.694410 +AWS,ap-south-1,m7i.metal-48xl,reserved_1y,partial_upfront,8.573055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:03.241184 +AWS,ap-south-1,m7i.metal-48xl,reserved_3y,all_upfront,4.286525,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:41.852978 +AWS,ap-south-1,m7i.metal-48xl,reserved_3y,no_upfront,4.286525,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:18.231106 +AWS,ap-south-1,m7i.metal-48xl,reserved_3y,partial_upfront,4.286525,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:15.217765 +AWS,ap-south-1,m7i.metal-48xl,spot,NA,2.078859,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340237 +AWS,ap-south-1,m7i.xlarge,on_demand,NA,0.2121,USD,AWS Pricing API,2025-11-30T08:57:26.951520 +AWS,ap-south-1,m7i.xlarge,reserved_1y,all_upfront,0.197409,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:58.444166 +AWS,ap-south-1,m7i.xlarge,reserved_1y,no_upfront,0.197409,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:38.799491 +AWS,ap-south-1,m7i.xlarge,reserved_1y,partial_upfront,0.197409,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:25.057469 +AWS,ap-south-1,m7i.xlarge,reserved_3y,all_upfront,0.098703,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:03.445239 +AWS,ap-south-1,m7i.xlarge,reserved_3y,no_upfront,0.098703,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:40.693650 +AWS,ap-south-1,m7i.xlarge,reserved_3y,partial_upfront,0.098703,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:37.061454 +AWS,ap-south-1,m7i.xlarge,spot,NA,0.096538,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340686 +AWS,ap-south-1,m8g.12xlarge,on_demand,NA,1.53984,USD,AWS Pricing API,2025-11-30T08:57:11.132633 +AWS,ap-south-1,m8g.12xlarge,reserved_1y,all_upfront,1.060845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:42.651407 +AWS,ap-south-1,m8g.12xlarge,reserved_1y,no_upfront,1.060845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:22.805878 +AWS,ap-south-1,m8g.12xlarge,reserved_1y,partial_upfront,1.060845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:09.313318 +AWS,ap-south-1,m8g.12xlarge,reserved_3y,all_upfront,0.353615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:47.802879 +AWS,ap-south-1,m8g.12xlarge,reserved_3y,no_upfront,0.353615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:24.407045 +AWS,ap-south-1,m8g.12xlarge,reserved_3y,partial_upfront,0.353615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:21.285714 +AWS,ap-south-1,m8g.12xlarge,spot,NA,0.571818,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340318 +AWS,ap-south-1,m8g.16xlarge,on_demand,NA,2.05312,USD,AWS Pricing API,2025-11-30T08:56:24.412088 +AWS,ap-south-1,m8g.16xlarge,reserved_1y,all_upfront,1.265639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:56.144030 +AWS,ap-south-1,m8g.16xlarge,reserved_1y,no_upfront,1.265639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:35.810795 +AWS,ap-south-1,m8g.16xlarge,reserved_1y,partial_upfront,1.265639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:22.866011 +AWS,ap-south-1,m8g.16xlarge,reserved_3y,all_upfront,0.42188,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:02.192679 +AWS,ap-south-1,m8g.16xlarge,reserved_3y,no_upfront,0.42188,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:36.992156 +AWS,ap-south-1,m8g.16xlarge,reserved_3y,partial_upfront,0.42188,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:35.039310 +AWS,ap-south-1,m8g.16xlarge,spot,NA,0.774355,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339280 +AWS,ap-south-1,m8g.24xlarge,on_demand,NA,3.07968,USD,AWS Pricing API,2025-11-30T08:57:32.183543 +AWS,ap-south-1,m8g.24xlarge,reserved_1y,all_upfront,1.4006,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:03.773771 +AWS,ap-south-1,m8g.24xlarge,reserved_1y,no_upfront,1.4006,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:44.095627 +AWS,ap-south-1,m8g.24xlarge,reserved_1y,partial_upfront,1.4006,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:30.318177 +AWS,ap-south-1,m8g.24xlarge,reserved_3y,all_upfront,1.4006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:08.608548 +AWS,ap-south-1,m8g.24xlarge,reserved_3y,no_upfront,1.4006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:46.042180 +AWS,ap-south-1,m8g.24xlarge,reserved_3y,partial_upfront,1.4006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:42.297260 +AWS,ap-south-1,m8g.24xlarge,spot,NA,0.883831,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340770 +AWS,ap-south-1,m8g.2xlarge,on_demand,NA,0.25664,USD,AWS Pricing API,2025-11-30T08:57:23.844407 +AWS,ap-south-1,m8g.2xlarge,reserved_1y,all_upfront,0.158219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:55.347020 +AWS,ap-south-1,m8g.2xlarge,reserved_1y,no_upfront,0.158219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:35.666477 +AWS,ap-south-1,m8g.2xlarge,reserved_1y,partial_upfront,0.158219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:21.964919 +AWS,ap-south-1,m8g.2xlarge,reserved_3y,all_upfront,0.05274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:00.327894 +AWS,ap-south-1,m8g.2xlarge,reserved_3y,no_upfront,0.05274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:37.519098 +AWS,ap-south-1,m8g.2xlarge,reserved_3y,partial_upfront,0.05274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:33.960373 +AWS,ap-south-1,m8g.2xlarge,spot,NA,0.144731,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340619 +AWS,ap-south-1,m8g.48xlarge,on_demand,NA,6.15936,USD,AWS Pricing API,2025-11-30T08:56:57.048316 +AWS,ap-south-1,m8g.48xlarge,reserved_1y,all_upfront,4.330088,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:28.552782 +AWS,ap-south-1,m8g.48xlarge,reserved_1y,no_upfront,4.330088,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:08.642374 +AWS,ap-south-1,m8g.48xlarge,reserved_1y,partial_upfront,4.330088,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:55.209754 +AWS,ap-south-1,m8g.48xlarge,reserved_3y,all_upfront,2.886709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:34.007483 +AWS,ap-south-1,m8g.48xlarge,reserved_3y,no_upfront,2.886709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:10.105890 +AWS,ap-south-1,m8g.48xlarge,reserved_3y,partial_upfront,2.886709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:07.314444 +AWS,ap-south-1,m8g.48xlarge,spot,NA,1.602448,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340023 +AWS,ap-south-1,m8g.4xlarge,on_demand,NA,0.51328,USD,AWS Pricing API,2025-11-30T08:57:13.915778 +AWS,ap-south-1,m8g.4xlarge,reserved_1y,all_upfront,0.339,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:45.359943 +AWS,ap-south-1,m8g.4xlarge,reserved_1y,no_upfront,0.339,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:25.564634 +AWS,ap-south-1,m8g.4xlarge,reserved_1y,partial_upfront,0.339,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:12.013870 +AWS,ap-south-1,m8g.4xlarge,reserved_3y,all_upfront,0.339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:50.478285 +AWS,ap-south-1,m8g.4xlarge,reserved_3y,no_upfront,0.339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:27.181003 +AWS,ap-south-1,m8g.4xlarge,reserved_3y,partial_upfront,0.339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:23.986183 +AWS,ap-south-1,m8g.4xlarge,spot,NA,0.232855,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340374 +AWS,ap-south-1,m8g.8xlarge,on_demand,NA,1.02656,USD,AWS Pricing API,2025-11-30T08:56:45.387503 +AWS,ap-south-1,m8g.8xlarge,reserved_1y,all_upfront,0.707192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:17.077734 +AWS,ap-south-1,m8g.8xlarge,reserved_1y,no_upfront,0.707192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:56.886513 +AWS,ap-south-1,m8g.8xlarge,reserved_1y,partial_upfront,0.707192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:43.721541 +AWS,ap-south-1,m8g.8xlarge,reserved_3y,all_upfront,0.235731,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:22.742767 +AWS,ap-south-1,m8g.8xlarge,reserved_3y,no_upfront,0.235731,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:58.382817 +AWS,ap-south-1,m8g.8xlarge,reserved_3y,partial_upfront,0.235731,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:55.834109 +AWS,ap-south-1,m8g.8xlarge,spot,NA,0.426329,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339714 +AWS,ap-south-1,m8g.large,on_demand,NA,0.06416,USD,AWS Pricing API,2025-11-30T08:57:34.189915 +AWS,ap-south-1,m8g.large,reserved_1y,all_upfront,0.087785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:05.798833 +AWS,ap-south-1,m8g.large,reserved_1y,no_upfront,0.087785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:46.132853 +AWS,ap-south-1,m8g.large,reserved_1y,partial_upfront,0.087785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:32.316176 +AWS,ap-south-1,m8g.large,reserved_3y,all_upfront,0.029262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:10.580506 +AWS,ap-south-1,m8g.large,reserved_3y,no_upfront,0.029262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:48.084353 +AWS,ap-south-1,m8g.large,reserved_3y,partial_upfront,0.029262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:44.287135 +AWS,ap-south-1,m8g.large,spot,NA,0.028084,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340794 +AWS,ap-south-1,m8g.medium,on_demand,NA,0.03208,USD,AWS Pricing API,2025-11-30T08:57:36.075693 +AWS,ap-south-1,m8g.medium,reserved_1y,all_upfront,0.020136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:07.675528 +AWS,ap-south-1,m8g.medium,reserved_1y,no_upfront,0.020136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:48.064004 +AWS,ap-south-1,m8g.medium,reserved_1y,partial_upfront,0.020136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:34.182638 +AWS,ap-south-1,m8g.medium,reserved_3y,all_upfront,0.013439,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:12.475048 +AWS,ap-south-1,m8g.medium,reserved_3y,no_upfront,0.013439,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:50.000871 +AWS,ap-south-1,m8g.medium,reserved_3y,partial_upfront,0.013439,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:46.152773 +AWS,ap-south-1,m8g.medium,spot,NA,0.007769,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340833 +AWS,ap-south-1,m8g.xlarge,on_demand,NA,0.12832,USD,AWS Pricing API,2025-11-30T08:56:54.717585 +AWS,ap-south-1,m8g.xlarge,reserved_1y,all_upfront,0.08475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:26.250739 +AWS,ap-south-1,m8g.xlarge,reserved_1y,no_upfront,0.08475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:06.293704 +AWS,ap-south-1,m8g.xlarge,reserved_1y,partial_upfront,0.08475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:52.897727 +AWS,ap-south-1,m8g.xlarge,reserved_3y,all_upfront,0.08475,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:31.747532 +AWS,ap-south-1,m8g.xlarge,reserved_3y,no_upfront,0.08475,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:07.767812 +AWS,ap-south-1,m8g.xlarge,reserved_3y,partial_upfront,0.08475,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:04.984592 +AWS,ap-south-1,m8g.xlarge,spot,NA,0.060589,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339972 +AWS,ap-south-1,m8i.12xlarge,on_demand,NA,2.6724,USD,AWS Pricing API,2025-11-30T08:57:23.580427 +AWS,ap-south-1,m8i.12xlarge,spot,NA,0.39825,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340591 +AWS,ap-south-1,m8i.16xlarge,on_demand,NA,3.5632,USD,AWS Pricing API,2025-11-30T08:56:52.095395 +AWS,ap-south-1,m8i.16xlarge,spot,NA,0.544133,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339849 +AWS,ap-south-1,m8i.24xlarge,on_demand,NA,5.3448,USD,AWS Pricing API,2025-11-30T08:57:19.043561 +AWS,ap-south-1,m8i.24xlarge,spot,NA,0.782808,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340523 +AWS,ap-south-1,m8i.2xlarge,on_demand,NA,0.4454,USD,AWS Pricing API,2025-11-30T08:56:33.838688 +AWS,ap-south-1,m8i.2xlarge,spot,NA,0.068052,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339444 +AWS,ap-south-1,m8i.48xlarge,on_demand,NA,10.6896,USD,AWS Pricing API,2025-11-30T08:57:03.957440 +AWS,ap-south-1,m8i.48xlarge,spot,NA,1.476923,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340193 +AWS,ap-south-1,m8i.4xlarge,on_demand,NA,0.8908,USD,AWS Pricing API,2025-11-30T08:56:29.258873 +AWS,ap-south-1,m8i.4xlarge,spot,NA,0.131216,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339354 +AWS,ap-south-1,m8i.8xlarge,on_demand,NA,1.7816,USD,AWS Pricing API,2025-11-30T08:56:42.687803 +AWS,ap-south-1,m8i.8xlarge,spot,NA,0.264607,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339654 +AWS,ap-south-1,m8i.large,on_demand,NA,0.11135,USD,AWS Pricing API,2025-11-30T08:56:44.444206 +AWS,ap-south-1,m8i.large,spot,NA,0.016439,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339727 +AWS,ap-south-1,m8i.xlarge,on_demand,NA,0.2227,USD,AWS Pricing API,2025-11-30T08:56:35.615040 +AWS,ap-south-1,m8i.xlarge,spot,NA,0.032074,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339494 +AWS,ap-south-1,p2.16xlarge,on_demand,NA,27.488,USD,AWS Pricing API,2025-11-30T08:56:31.017729 +AWS,ap-south-1,p2.8xlarge,on_demand,NA,13.744,USD,AWS Pricing API,2025-11-30T08:57:29.780411 +AWS,ap-south-1,p2.xlarge,on_demand,NA,1.718,USD,AWS Pricing API,2025-11-30T08:56:34.532898 +AWS,ap-south-1,p4d.24xlarge,on_demand,NA,26.3444,USD,AWS Pricing API,2025-11-30T08:56:30.745438 +AWS,ap-south-1,p4d.24xlarge,reserved_1y,all_upfront,21.872591,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:02.496854 +AWS,ap-south-1,p4d.24xlarge,reserved_1y,no_upfront,21.872591,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:42.188549 +AWS,ap-south-1,p4d.24xlarge,reserved_1y,partial_upfront,21.872591,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:29.164620 +AWS,ap-south-1,p4d.24xlarge,reserved_3y,all_upfront,21.872591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:08.435635 +AWS,ap-south-1,p4d.24xlarge,reserved_3y,no_upfront,21.872591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:43.554677 +AWS,ap-south-1,p4d.24xlarge,reserved_3y,partial_upfront,21.872591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:41.328855 +AWS,ap-south-1,p4d.24xlarge,spot,NA,16.966388,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339387 +AWS,ap-south-1,p5.48xlarge,on_demand,NA,66.048,USD,AWS Pricing API,2025-11-30T08:57:20.245973 +AWS,ap-south-1,p5.48xlarge,reserved_1y,all_upfront,132.043151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:51.697233 +AWS,ap-south-1,p5.48xlarge,reserved_1y,no_upfront,132.043151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:32.014234 +AWS,ap-south-1,p5.48xlarge,reserved_1y,partial_upfront,132.043151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:18.347862 +AWS,ap-south-1,p5.48xlarge,reserved_3y,all_upfront,44.014384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:56.744438 +AWS,ap-south-1,p5.48xlarge,reserved_3y,no_upfront,44.014384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:33.826204 +AWS,ap-south-1,p5.48xlarge,reserved_3y,partial_upfront,44.014384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:30.285368 +AWS,ap-south-1,p5.48xlarge,spot,NA,22.290244,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340543 +AWS,ap-south-1,r4.16xlarge,on_demand,NA,4.384,USD,AWS Pricing API,2025-11-30T08:57:22.897380 +AWS,ap-south-1,r4.16xlarge,reserved_1y,all_upfront,3.018332,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:54.401962 +AWS,ap-south-1,r4.16xlarge,reserved_1y,no_upfront,3.018332,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:34.715374 +AWS,ap-south-1,r4.16xlarge,reserved_1y,partial_upfront,3.018332,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:21.028241 +AWS,ap-south-1,r4.16xlarge,reserved_3y,all_upfront,2.012244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:59.413369 +AWS,ap-south-1,r4.16xlarge,reserved_3y,no_upfront,2.012244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:36.559209 +AWS,ap-south-1,r4.16xlarge,reserved_3y,partial_upfront,2.012244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:33.033889 +AWS,ap-south-1,r4.16xlarge,spot,NA,1.456127,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340574 +AWS,ap-south-1,r5.12xlarge,on_demand,NA,3.12,USD,AWS Pricing API,2025-11-30T08:56:24.141625 +AWS,ap-south-1,r5.12xlarge,reserved_1y,all_upfront,2.496032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:55.871031 +AWS,ap-south-1,r5.12xlarge,reserved_1y,no_upfront,2.496032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:35.540556 +AWS,ap-south-1,r5.12xlarge,reserved_1y,partial_upfront,2.496032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:22.595934 +AWS,ap-south-1,r5.12xlarge,reserved_3y,all_upfront,1.248011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:01.913633 +AWS,ap-south-1,r5.12xlarge,reserved_3y,no_upfront,1.248011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:36.720595 +AWS,ap-south-1,r5.12xlarge,reserved_3y,partial_upfront,1.248011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:34.771010 +AWS,ap-south-1,r5.12xlarge,spot,NA,1.076238,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339288 +AWS,ap-south-1,r5.16xlarge,on_demand,NA,4.16,USD,AWS Pricing API,2025-11-30T08:56:57.182872 +AWS,ap-south-1,r5.16xlarge,reserved_1y,all_upfront,2.483781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:28.687167 +AWS,ap-south-1,r5.16xlarge,reserved_1y,no_upfront,2.483781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:08.779704 +AWS,ap-south-1,r5.16xlarge,reserved_1y,partial_upfront,2.483781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:55.343912 +AWS,ap-south-1,r5.16xlarge,reserved_3y,all_upfront,1.655927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:34.144043 +AWS,ap-south-1,r5.16xlarge,reserved_3y,no_upfront,1.655927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:10.243397 +AWS,ap-south-1,r5.16xlarge,reserved_3y,partial_upfront,1.655927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:07.449141 +AWS,ap-south-1,r5.16xlarge,spot,NA,1.203405,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340065 +AWS,ap-south-1,r5.24xlarge,on_demand,NA,6.24,USD,AWS Pricing API,2025-11-30T08:56:39.409153 +AWS,ap-south-1,r5.24xlarge,reserved_1y,all_upfront,3.725671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:11.154772 +AWS,ap-south-1,r5.24xlarge,reserved_1y,no_upfront,3.725671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:50.891827 +AWS,ap-south-1,r5.24xlarge,reserved_1y,partial_upfront,3.725671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:37.763309 +AWS,ap-south-1,r5.24xlarge,reserved_3y,all_upfront,2.48389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:16.924074 +AWS,ap-south-1,r5.24xlarge,reserved_3y,no_upfront,2.48389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:52.342884 +AWS,ap-south-1,r5.24xlarge,reserved_3y,partial_upfront,2.48389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:49.937600 +AWS,ap-south-1,r5.24xlarge,spot,NA,1.676478,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339572 +AWS,ap-south-1,r5.2xlarge,on_demand,NA,0.52,USD,AWS Pricing API,2025-11-30T12:52:30.070704 +AWS,ap-south-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:30.070851 +AWS,ap-south-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.375,USD,AWS Pricing API,2025-11-30T12:52:30.070808 +AWS,ap-south-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.155,USD,AWS Pricing API,2025-11-30T12:52:30.070870 +AWS,ap-south-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:30.070883 +AWS,ap-south-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.27,USD,AWS Pricing API,2025-11-30T12:52:30.070897 +AWS,ap-south-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.125,USD,AWS Pricing API,2025-11-30T12:52:30.070782 +AWS,ap-south-1,r5.2xlarge,spot,NA,0.20496,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:37.402768 +AWS,ap-south-1,r5.4xlarge,on_demand,NA,1.04,USD,AWS Pricing API,2025-11-30T08:57:31.911850 +AWS,ap-south-1,r5.4xlarge,reserved_1y,all_upfront,0.700228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:03.500005 +AWS,ap-south-1,r5.4xlarge,reserved_1y,no_upfront,0.700228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:43.821417 +AWS,ap-south-1,r5.4xlarge,reserved_1y,partial_upfront,0.700228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:30.040621 +AWS,ap-south-1,r5.4xlarge,reserved_3y,all_upfront,0.233409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:08.341609 +AWS,ap-south-1,r5.4xlarge,reserved_3y,no_upfront,0.233409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:45.760835 +AWS,ap-south-1,r5.4xlarge,reserved_3y,partial_upfront,0.233409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:42.031025 +AWS,ap-south-1,r5.4xlarge,spot,NA,0.492905,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340778 +AWS,ap-south-1,r5.8xlarge,on_demand,NA,2.08,USD,AWS Pricing API,2025-11-30T08:57:14.999930 +AWS,ap-south-1,r5.8xlarge,reserved_1y,all_upfront,1.5,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:46.433000 +AWS,ap-south-1,r5.8xlarge,reserved_1y,no_upfront,1.5,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:26.662431 +AWS,ap-south-1,r5.8xlarge,reserved_1y,partial_upfront,1.5,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:13.105791 +AWS,ap-south-1,r5.8xlarge,reserved_3y,all_upfront,1.5,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:51.582043 +AWS,ap-south-1,r5.8xlarge,reserved_3y,no_upfront,1.5,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:28.302242 +AWS,ap-south-1,r5.8xlarge,reserved_3y,partial_upfront,1.5,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:25.065524 +AWS,ap-south-1,r5.8xlarge,spot,NA,0.914355,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340419 +AWS,ap-south-1,r5.large,on_demand,NA,0.13,USD,AWS Pricing API,2025-11-30T08:56:51.006816 +AWS,ap-south-1,r5.large,reserved_1y,all_upfront,0.089635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:22.589859 +AWS,ap-south-1,r5.large,reserved_1y,no_upfront,0.089635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:02.576256 +AWS,ap-south-1,r5.large,reserved_1y,partial_upfront,0.089635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:49.278134 +AWS,ap-south-1,r5.large,reserved_3y,all_upfront,0.059878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:28.162722 +AWS,ap-south-1,r5.large,reserved_3y,no_upfront,0.059878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:04.032416 +AWS,ap-south-1,r5.large,reserved_3y,partial_upfront,0.059878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:01.339788 +AWS,ap-south-1,r5.large,spot,NA,0.056626,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339814 +AWS,ap-south-1,r5.xlarge,on_demand,NA,0.26,USD,AWS Pricing API,2025-11-30T08:56:28.339374 +AWS,ap-south-1,r5.xlarge,reserved_1y,all_upfront,0.20805,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:00.040704 +AWS,ap-south-1,r5.xlarge,reserved_1y,no_upfront,0.20805,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:39.749110 +AWS,ap-south-1,r5.xlarge,reserved_1y,partial_upfront,0.20805,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:26.768408 +AWS,ap-south-1,r5.xlarge,reserved_3y,all_upfront,0.104017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:06.042875 +AWS,ap-south-1,r5.xlarge,reserved_3y,no_upfront,0.104017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:41.069216 +AWS,ap-south-1,r5.xlarge,reserved_3y,partial_upfront,0.104017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:38.910615 +AWS,ap-south-1,r5.xlarge,spot,NA,0.110664,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339341 +AWS,ap-south-1,r5a.12xlarge,on_demand,NA,1.716,USD,AWS Pricing API,2025-11-30T08:57:23.035335 +AWS,ap-south-1,r5a.12xlarge,reserved_1y,all_upfront,1.155365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:54.537649 +AWS,ap-south-1,r5a.12xlarge,reserved_1y,no_upfront,1.155365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:34.852938 +AWS,ap-south-1,r5a.12xlarge,reserved_1y,partial_upfront,1.155365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:21.163471 +AWS,ap-south-1,r5a.12xlarge,reserved_3y,all_upfront,0.385122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:59.543385 +AWS,ap-south-1,r5a.12xlarge,reserved_3y,no_upfront,0.385122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:36.696810 +AWS,ap-south-1,r5a.12xlarge,reserved_3y,partial_upfront,0.385122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:33.164495 +AWS,ap-south-1,r5a.12xlarge,spot,NA,0.825696,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340603 +AWS,ap-south-1,r5a.16xlarge,on_demand,NA,2.288,USD,AWS Pricing API,2025-11-30T08:57:31.112116 +AWS,ap-south-1,r5a.16xlarge,reserved_1y,all_upfront,1.65,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:02.690085 +AWS,ap-south-1,r5a.16xlarge,reserved_1y,no_upfront,1.65,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:43.008050 +AWS,ap-south-1,r5a.16xlarge,reserved_1y,partial_upfront,1.65,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:29.208093 +AWS,ap-south-1,r5a.16xlarge,reserved_3y,all_upfront,1.65,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:07.551812 +AWS,ap-south-1,r5a.16xlarge,reserved_3y,no_upfront,1.65,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:44.936951 +AWS,ap-south-1,r5a.16xlarge,reserved_3y,partial_upfront,1.65,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:41.216147 +AWS,ap-south-1,r5a.16xlarge,spot,NA,1.108414,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340742 +AWS,ap-south-1,r5a.24xlarge,on_demand,NA,3.432,USD,AWS Pricing API,2025-11-30T08:57:25.049093 +AWS,ap-south-1,r5a.24xlarge,reserved_1y,all_upfront,2.007877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:56.546676 +AWS,ap-south-1,r5a.24xlarge,reserved_1y,no_upfront,2.007877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:36.891406 +AWS,ap-south-1,r5a.24xlarge,reserved_1y,partial_upfront,2.007877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:23.170043 +AWS,ap-south-1,r5a.24xlarge,reserved_3y,all_upfront,0.669292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:01.531952 +AWS,ap-south-1,r5a.24xlarge,reserved_3y,no_upfront,0.669292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:38.763912 +AWS,ap-south-1,r5a.24xlarge,reserved_3y,partial_upfront,0.669292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:35.181695 +AWS,ap-south-1,r5a.24xlarge,spot,NA,1.698339,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340631 +AWS,ap-south-1,r5a.2xlarge,on_demand,NA,0.286,USD,AWS Pricing API,2025-11-30T08:57:35.671107 +AWS,ap-south-1,r5a.2xlarge,reserved_1y,all_upfront,0.167352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:07.270460 +AWS,ap-south-1,r5a.2xlarge,reserved_1y,no_upfront,0.167352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:47.657055 +AWS,ap-south-1,r5a.2xlarge,reserved_1y,partial_upfront,0.167352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:33.784311 +AWS,ap-south-1,r5a.2xlarge,reserved_3y,all_upfront,0.055784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:12.081420 +AWS,ap-south-1,r5a.2xlarge,reserved_3y,no_upfront,0.055784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:49.593941 +AWS,ap-south-1,r5a.2xlarge,reserved_3y,partial_upfront,0.055784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:45.754680 +AWS,ap-south-1,r5a.2xlarge,spot,NA,0.154338,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340825 +AWS,ap-south-1,r5a.4xlarge,on_demand,NA,0.572,USD,AWS Pricing API,2025-11-30T08:57:15.945646 +AWS,ap-south-1,r5a.4xlarge,reserved_1y,all_upfront,0.341776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:47.373512 +AWS,ap-south-1,r5a.4xlarge,reserved_1y,no_upfront,0.341776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:27.620099 +AWS,ap-south-1,r5a.4xlarge,reserved_1y,partial_upfront,0.341776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:14.043901 +AWS,ap-south-1,r5a.4xlarge,reserved_3y,all_upfront,0.227925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:52.508827 +AWS,ap-south-1,r5a.4xlarge,reserved_3y,no_upfront,0.227925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:29.292553 +AWS,ap-south-1,r5a.4xlarge,reserved_3y,partial_upfront,0.227925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:26.002702 +AWS,ap-south-1,r5a.4xlarge,spot,NA,0.283423,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340462 +AWS,ap-south-1,r5a.8xlarge,on_demand,NA,1.144,USD,AWS Pricing API,2025-11-30T08:56:58.278988 +AWS,ap-south-1,r5a.8xlarge,reserved_1y,all_upfront,0.825,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:29.767795 +AWS,ap-south-1,r5a.8xlarge,reserved_1y,no_upfront,0.825,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:09.868052 +AWS,ap-south-1,r5a.8xlarge,reserved_1y,partial_upfront,0.825,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:56.420124 +AWS,ap-south-1,r5a.8xlarge,reserved_3y,all_upfront,0.825,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:35.207555 +AWS,ap-south-1,r5a.8xlarge,reserved_3y,no_upfront,0.825,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:11.337977 +AWS,ap-south-1,r5a.8xlarge,reserved_3y,partial_upfront,0.825,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:08.524719 +AWS,ap-south-1,r5a.8xlarge,spot,NA,0.598821,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340092 +AWS,ap-south-1,r5a.large,on_demand,NA,0.072,USD,AWS Pricing API,2025-11-30T08:57:04.768608 +AWS,ap-south-1,r5a.large,reserved_1y,all_upfront,0.041781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:36.257661 +AWS,ap-south-1,r5a.large,reserved_1y,no_upfront,0.041781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:16.422313 +AWS,ap-south-1,r5a.large,reserved_1y,partial_upfront,0.041781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:02.960175 +AWS,ap-south-1,r5a.large,reserved_3y,all_upfront,0.013927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:41.593230 +AWS,ap-south-1,r5a.large,reserved_3y,no_upfront,0.013927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:17.957702 +AWS,ap-south-1,r5a.large,reserved_3y,partial_upfront,0.013927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:14.952792 +AWS,ap-south-1,r5a.large,spot,NA,0.03094,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340201 +AWS,ap-south-1,r5a.xlarge,on_demand,NA,0.143,USD,AWS Pricing API,2025-11-30T08:57:15.404256 +AWS,ap-south-1,r5a.xlarge,reserved_1y,all_upfront,0.096233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:46.834494 +AWS,ap-south-1,r5a.xlarge,reserved_1y,no_upfront,0.096233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:27.072201 +AWS,ap-south-1,r5a.xlarge,reserved_1y,partial_upfront,0.096233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:13.507292 +AWS,ap-south-1,r5a.xlarge,reserved_3y,all_upfront,0.032078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:51.980624 +AWS,ap-south-1,r5a.xlarge,reserved_3y,no_upfront,0.032078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:28.741870 +AWS,ap-south-1,r5a.xlarge,reserved_3y,partial_upfront,0.032078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:25.467731 +AWS,ap-south-1,r5a.xlarge,spot,NA,0.073578,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340443 +AWS,ap-south-1,r5d.12xlarge,on_demand,NA,3.624,USD,AWS Pricing API,2025-11-30T08:57:28.565370 +AWS,ap-south-1,r5d.12xlarge,reserved_1y,all_upfront,2.174215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:00.070750 +AWS,ap-south-1,r5d.12xlarge,reserved_1y,no_upfront,2.174215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:40.429869 +AWS,ap-south-1,r5d.12xlarge,reserved_1y,partial_upfront,2.174215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:26.665859 +AWS,ap-south-1,r5d.12xlarge,reserved_3y,all_upfront,1.449405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:05.042457 +AWS,ap-south-1,r5d.12xlarge,reserved_3y,no_upfront,1.449405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:42.347058 +AWS,ap-south-1,r5d.12xlarge,reserved_3y,partial_upfront,1.449405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:38.664426 +AWS,ap-south-1,r5d.12xlarge,spot,NA,1.311965,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340698 +AWS,ap-south-1,r5d.16xlarge,on_demand,NA,4.832,USD,AWS Pricing API,2025-11-30T08:56:53.326364 +AWS,ap-south-1,r5d.16xlarge,reserved_1y,all_upfront,2.84121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:24.900883 +AWS,ap-south-1,r5d.16xlarge,reserved_1y,no_upfront,2.84121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:04.939068 +AWS,ap-south-1,r5d.16xlarge,reserved_1y,partial_upfront,2.84121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:51.558869 +AWS,ap-south-1,r5d.16xlarge,reserved_3y,all_upfront,0.94707,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:30.414807 +AWS,ap-south-1,r5d.16xlarge,reserved_3y,no_upfront,0.94707,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:06.384921 +AWS,ap-south-1,r5d.16xlarge,reserved_3y,partial_upfront,0.94707,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:03.638468 +AWS,ap-south-1,r5d.16xlarge,spot,NA,1.486549,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339904 +AWS,ap-south-1,r5d.24xlarge,on_demand,NA,7.248,USD,AWS Pricing API,2025-11-30T08:57:23.171559 +AWS,ap-south-1,r5d.24xlarge,reserved_1y,all_upfront,5.798744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:54.672046 +AWS,ap-south-1,r5d.24xlarge,reserved_1y,no_upfront,5.798744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:34.989550 +AWS,ap-south-1,r5d.24xlarge,reserved_1y,partial_upfront,5.798744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:21.298227 +AWS,ap-south-1,r5d.24xlarge,reserved_3y,all_upfront,2.899581,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:59.674156 +AWS,ap-south-1,r5d.24xlarge,reserved_3y,no_upfront,2.899581,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:36.831987 +AWS,ap-south-1,r5d.24xlarge,reserved_3y,partial_upfront,2.899581,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:33.297127 +AWS,ap-south-1,r5d.24xlarge,spot,NA,2.743406,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340570 +AWS,ap-south-1,r5d.2xlarge,on_demand,NA,0.604,USD,AWS Pricing API,2025-11-30T08:57:21.827142 +AWS,ap-south-1,r5d.2xlarge,reserved_1y,all_upfront,0.84726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:53.324578 +AWS,ap-south-1,r5d.2xlarge,reserved_1y,no_upfront,0.84726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:33.633155 +AWS,ap-south-1,r5d.2xlarge,reserved_1y,partial_upfront,0.84726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:19.953206 +AWS,ap-south-1,r5d.2xlarge,reserved_3y,all_upfront,0.28242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:58.322736 +AWS,ap-south-1,r5d.2xlarge,reserved_3y,no_upfront,0.28242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:35.471903 +AWS,ap-south-1,r5d.2xlarge,reserved_3y,partial_upfront,0.28242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:31.888802 +AWS,ap-south-1,r5d.2xlarge,spot,NA,0.251554,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340554 +AWS,ap-south-1,r5d.4xlarge,on_demand,NA,1.208,USD,AWS Pricing API,2025-11-30T08:56:52.783019 +AWS,ap-south-1,r5d.4xlarge,reserved_1y,all_upfront,0.966772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:24.355304 +AWS,ap-south-1,r5d.4xlarge,reserved_1y,no_upfront,0.966772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:04.366356 +AWS,ap-south-1,r5d.4xlarge,reserved_1y,partial_upfront,0.966772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:51.013293 +AWS,ap-south-1,r5d.4xlarge,reserved_3y,all_upfront,0.483591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:29.891220 +AWS,ap-south-1,r5d.4xlarge,reserved_3y,no_upfront,0.483591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:05.831851 +AWS,ap-south-1,r5d.4xlarge,reserved_3y,partial_upfront,0.483591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:03.099573 +AWS,ap-south-1,r5d.4xlarge,spot,NA,0.457817,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339909 +AWS,ap-south-1,r5d.8xlarge,on_demand,NA,2.416,USD,AWS Pricing API,2025-11-30T08:56:52.366556 +AWS,ap-south-1,r5d.8xlarge,reserved_1y,all_upfront,1.449772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:23.951179 +AWS,ap-south-1,r5d.8xlarge,reserved_1y,no_upfront,1.449772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:03.944556 +AWS,ap-south-1,r5d.8xlarge,reserved_1y,partial_upfront,1.449772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:50.614637 +AWS,ap-south-1,r5d.8xlarge,reserved_3y,all_upfront,0.966591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:29.485928 +AWS,ap-south-1,r5d.8xlarge,reserved_3y,no_upfront,0.966591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:05.419763 +AWS,ap-south-1,r5d.8xlarge,reserved_3y,partial_upfront,0.966591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:02.692630 +AWS,ap-south-1,r5d.8xlarge,spot,NA,1.019847,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339876 +AWS,ap-south-1,r5d.large,on_demand,NA,0.151,USD,AWS Pricing API,2025-11-30T08:57:17.154317 +AWS,ap-south-1,r5d.large,reserved_1y,all_upfront,0.120639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:48.580881 +AWS,ap-south-1,r5d.large,reserved_1y,no_upfront,0.120639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:28.892836 +AWS,ap-south-1,r5d.large,reserved_1y,partial_upfront,0.120639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:15.251317 +AWS,ap-south-1,r5d.large,reserved_3y,all_upfront,0.060213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:53.715712 +AWS,ap-south-1,r5d.large,reserved_3y,no_upfront,0.060213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:30.621798 +AWS,ap-south-1,r5d.large,reserved_3y,partial_upfront,0.060213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:27.212448 +AWS,ap-south-1,r5d.large,spot,NA,0.054278,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340503 +AWS,ap-south-1,r5d.xlarge,on_demand,NA,0.302,USD,AWS Pricing API,2025-11-30T08:56:34.670576 +AWS,ap-south-1,r5d.xlarge,reserved_1y,all_upfront,0.241164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:06.419606 +AWS,ap-south-1,r5d.xlarge,reserved_1y,no_upfront,0.241164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:46.126133 +AWS,ap-south-1,r5d.xlarge,reserved_1y,partial_upfront,0.241164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:33.057818 +AWS,ap-south-1,r5d.xlarge,reserved_3y,all_upfront,0.120388,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:12.289659 +AWS,ap-south-1,r5d.xlarge,reserved_3y,no_upfront,0.120388,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:47.528546 +AWS,ap-south-1,r5d.xlarge,reserved_3y,partial_upfront,0.120388,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:45.219138 +AWS,ap-south-1,r5d.xlarge,spot,NA,0.134847,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339460 +AWS,ap-south-1,r5n.12xlarge,on_demand,NA,3.672,USD,AWS Pricing API,2025-11-30T08:57:12.834408 +AWS,ap-south-1,r5n.12xlarge,reserved_1y,all_upfront,4.663699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:44.267844 +AWS,ap-south-1,r5n.12xlarge,reserved_1y,no_upfront,4.663699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:24.474889 +AWS,ap-south-1,r5n.12xlarge,reserved_1y,partial_upfront,4.663699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:10.931794 +AWS,ap-south-1,r5n.12xlarge,reserved_3y,all_upfront,1.554566,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:49.408251 +AWS,ap-south-1,r5n.12xlarge,reserved_3y,no_upfront,1.554566,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:26.071474 +AWS,ap-south-1,r5n.12xlarge,reserved_3y,partial_upfront,1.554566,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:22.900186 +AWS,ap-south-1,r5n.12xlarge,spot,NA,1.603511,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340366 +AWS,ap-south-1,r5n.16xlarge,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T08:57:27.897942 +AWS,ap-south-1,r5n.16xlarge,reserved_1y,all_upfront,2.937836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:59.402770 +AWS,ap-south-1,r5n.16xlarge,reserved_1y,no_upfront,2.937836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:39.747538 +AWS,ap-south-1,r5n.16xlarge,reserved_1y,partial_upfront,2.937836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:25.995655 +AWS,ap-south-1,r5n.16xlarge,reserved_3y,all_upfront,1.958612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:04.380607 +AWS,ap-south-1,r5n.16xlarge,reserved_3y,no_upfront,1.958612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:41.667917 +AWS,ap-south-1,r5n.16xlarge,reserved_3y,partial_upfront,1.958612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:38.000013 +AWS,ap-south-1,r5n.16xlarge,spot,NA,2.248373,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340710 +AWS,ap-south-1,r5n.24xlarge,on_demand,NA,7.344,USD,AWS Pricing API,2025-11-30T08:56:49.652197 +AWS,ap-south-1,r5n.24xlarge,reserved_1y,all_upfront,2.974,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:21.237139 +AWS,ap-south-1,r5n.24xlarge,reserved_1y,no_upfront,2.974,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:01.185508 +AWS,ap-south-1,r5n.24xlarge,reserved_1y,partial_upfront,2.974,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:47.933202 +AWS,ap-south-1,r5n.24xlarge,reserved_3y,all_upfront,2.974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:26.838150 +AWS,ap-south-1,r5n.24xlarge,reserved_3y,no_upfront,2.974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:02.659416 +AWS,ap-south-1,r5n.24xlarge,reserved_3y,partial_upfront,2.974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:00.005709 +AWS,ap-south-1,r5n.24xlarge,spot,NA,3.359161,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339793 +AWS,ap-south-1,r5n.2xlarge,on_demand,NA,0.612,USD,AWS Pricing API,2025-11-30T08:56:30.477733 +AWS,ap-south-1,r5n.2xlarge,reserved_1y,all_upfront,0.528575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:02.229394 +AWS,ap-south-1,r5n.2xlarge,reserved_1y,no_upfront,0.528575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:41.916416 +AWS,ap-south-1,r5n.2xlarge,reserved_1y,partial_upfront,0.528575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:28.899330 +AWS,ap-south-1,r5n.2xlarge,reserved_3y,all_upfront,0.264192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:08.172914 +AWS,ap-south-1,r5n.2xlarge,reserved_3y,no_upfront,0.264192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:43.281806 +AWS,ap-south-1,r5n.2xlarge,reserved_3y,partial_upfront,0.264192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:41.063811 +AWS,ap-south-1,r5n.2xlarge,spot,NA,0.290882,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339358 +AWS,ap-south-1,r5n.4xlarge,on_demand,NA,1.224,USD,AWS Pricing API,2025-11-30T08:57:26.406208 +AWS,ap-south-1,r5n.4xlarge,reserved_1y,all_upfront,1.294406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:57.892765 +AWS,ap-south-1,r5n.4xlarge,reserved_1y,no_upfront,1.294406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:38.253001 +AWS,ap-south-1,r5n.4xlarge,reserved_1y,partial_upfront,1.294406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:24.514718 +AWS,ap-south-1,r5n.4xlarge,reserved_3y,all_upfront,0.431469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:02.910871 +AWS,ap-south-1,r5n.4xlarge,reserved_3y,no_upfront,0.431469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:40.129410 +AWS,ap-south-1,r5n.4xlarge,reserved_3y,partial_upfront,0.431469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:36.522547 +AWS,ap-south-1,r5n.4xlarge,spot,NA,0.656056,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340667 +AWS,ap-south-1,r5n.8xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T08:57:12.691139 +AWS,ap-south-1,r5n.8xlarge,reserved_1y,all_upfront,1.836055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:44.132897 +AWS,ap-south-1,r5n.8xlarge,reserved_1y,no_upfront,1.836055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:24.339946 +AWS,ap-south-1,r5n.8xlarge,reserved_1y,partial_upfront,1.836055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:10.798128 +AWS,ap-south-1,r5n.8xlarge,reserved_3y,all_upfront,0.918018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:49.276031 +AWS,ap-south-1,r5n.8xlarge,reserved_3y,no_upfront,0.918018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:25.935057 +AWS,ap-south-1,r5n.8xlarge,reserved_3y,partial_upfront,0.918018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:22.762733 +AWS,ap-south-1,r5n.8xlarge,spot,NA,1.169232,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340354 +AWS,ap-south-1,r5n.large,on_demand,NA,0.153,USD,AWS Pricing API,2025-11-30T08:57:33.655115 +AWS,ap-south-1,r5n.large,reserved_1y,all_upfront,0.104224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:05.255828 +AWS,ap-south-1,r5n.large,reserved_1y,no_upfront,0.104224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:45.589469 +AWS,ap-south-1,r5n.large,reserved_1y,partial_upfront,0.104224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:31.783043 +AWS,ap-south-1,r5n.large,reserved_3y,all_upfront,0.034741,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:10.058734 +AWS,ap-south-1,r5n.large,reserved_3y,no_upfront,0.034741,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:47.538568 +AWS,ap-south-1,r5n.large,reserved_3y,partial_upfront,0.034741,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:43.756162 +AWS,ap-south-1,r5n.large,spot,NA,0.061948,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340797 +AWS,ap-south-1,r5n.metal,on_demand,NA,7.344,USD,AWS Pricing API,2025-11-30T08:57:13.648022 +AWS,ap-south-1,r5n.metal,reserved_1y,all_upfront,9.327511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:45.090711 +AWS,ap-south-1,r5n.metal,reserved_1y,no_upfront,9.327511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:25.293840 +AWS,ap-south-1,r5n.metal,reserved_1y,partial_upfront,9.327511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:11.748017 +AWS,ap-south-1,r5n.metal,reserved_3y,all_upfront,3.10917,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:50.214545 +AWS,ap-south-1,r5n.metal,reserved_3y,no_upfront,3.10917,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:26.907930 +AWS,ap-south-1,r5n.metal,reserved_3y,partial_upfront,3.10917,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:23.716749 +AWS,ap-south-1,r5n.metal,spot,NA,1.704603,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340370 +AWS,ap-south-1,r5n.xlarge,on_demand,NA,0.306,USD,AWS Pricing API,2025-11-30T08:56:51.690834 +AWS,ap-south-1,r5n.xlarge,reserved_1y,all_upfront,0.212279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:23.263228 +AWS,ap-south-1,r5n.xlarge,reserved_1y,no_upfront,0.212279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:03.268359 +AWS,ap-south-1,r5n.xlarge,reserved_1y,partial_upfront,0.212279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:49.945888 +AWS,ap-south-1,r5n.xlarge,reserved_3y,all_upfront,0.141426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:28.817405 +AWS,ap-south-1,r5n.xlarge,reserved_3y,no_upfront,0.141426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:04.718104 +AWS,ap-south-1,r5n.xlarge,reserved_3y,partial_upfront,0.141426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:02.006218 +AWS,ap-south-1,r5n.xlarge,spot,NA,0.140437,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339881 +AWS,ap-south-1,r6g.12xlarge,on_demand,NA,1.56,USD,AWS Pricing API,2025-11-30T08:56:44.848831 +AWS,ap-south-1,r6g.12xlarge,reserved_1y,all_upfront,0.936037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:16.544189 +AWS,ap-south-1,r6g.12xlarge,reserved_1y,no_upfront,0.936037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:56.344851 +AWS,ap-south-1,r6g.12xlarge,reserved_1y,partial_upfront,0.936037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:43.177971 +AWS,ap-south-1,r6g.12xlarge,reserved_3y,all_upfront,0.624012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:22.214381 +AWS,ap-south-1,r6g.12xlarge,reserved_3y,no_upfront,0.624012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:57.836446 +AWS,ap-south-1,r6g.12xlarge,reserved_3y,partial_upfront,0.624012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:55.294993 +AWS,ap-south-1,r6g.12xlarge,spot,NA,0.646851,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339722 +AWS,ap-south-1,r6g.16xlarge,on_demand,NA,2.08,USD,AWS Pricing API,2025-11-30T08:56:41.728171 +AWS,ap-south-1,r6g.16xlarge,reserved_1y,all_upfront,1.5059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:13.440072 +AWS,ap-south-1,r6g.16xlarge,reserved_1y,no_upfront,1.5059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:53.206030 +AWS,ap-south-1,r6g.16xlarge,reserved_1y,partial_upfront,1.5059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:40.081457 +AWS,ap-south-1,r6g.16xlarge,reserved_3y,all_upfront,1.5059,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:19.178285 +AWS,ap-south-1,r6g.16xlarge,reserved_3y,no_upfront,1.5059,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:54.682335 +AWS,ap-south-1,r6g.16xlarge,reserved_3y,partial_upfront,1.5059,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:52.224551 +AWS,ap-south-1,r6g.16xlarge,spot,NA,0.583983,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339663 +AWS,ap-south-1,r6g.2xlarge,on_demand,NA,0.26,USD,AWS Pricing API,2025-11-30T08:57:34.587765 +AWS,ap-south-1,r6g.2xlarge,reserved_1y,all_upfront,0.1882,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:06.199311 +AWS,ap-south-1,r6g.2xlarge,reserved_1y,no_upfront,0.1882,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:46.556339 +AWS,ap-south-1,r6g.2xlarge,reserved_1y,partial_upfront,0.1882,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:32.716368 +AWS,ap-south-1,r6g.2xlarge,reserved_3y,all_upfront,0.1882,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:10.980851 +AWS,ap-south-1,r6g.2xlarge,reserved_3y,no_upfront,0.1882,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:48.496165 +AWS,ap-south-1,r6g.2xlarge,reserved_3y,partial_upfront,0.1882,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:44.688590 +AWS,ap-south-1,r6g.2xlarge,spot,NA,0.137498,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340810 +AWS,ap-south-1,r6g.4xlarge,on_demand,NA,0.52,USD,AWS Pricing API,2025-11-30T08:56:31.549834 +AWS,ap-south-1,r6g.4xlarge,reserved_1y,all_upfront,0.2246,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:03.313323 +AWS,ap-south-1,r6g.4xlarge,reserved_1y,no_upfront,0.2246,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:42.995983 +AWS,ap-south-1,r6g.4xlarge,reserved_1y,partial_upfront,0.2246,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:29.964413 +AWS,ap-south-1,r6g.4xlarge,reserved_3y,all_upfront,0.2246,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:09.226407 +AWS,ap-south-1,r6g.4xlarge,reserved_3y,no_upfront,0.2246,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:44.394795 +AWS,ap-south-1,r6g.4xlarge,reserved_3y,partial_upfront,0.2246,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:42.137640 +AWS,ap-south-1,r6g.4xlarge,spot,NA,0.321653,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339391 +AWS,ap-south-1,r6g.8xlarge,on_demand,NA,1.04,USD,AWS Pricing API,2025-11-30T08:57:10.585650 +AWS,ap-south-1,r6g.8xlarge,reserved_1y,all_upfront,0.995918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:42.114582 +AWS,ap-south-1,r6g.8xlarge,reserved_1y,no_upfront,0.995918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:22.262366 +AWS,ap-south-1,r6g.8xlarge,reserved_1y,partial_upfront,0.995918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:08.777202 +AWS,ap-south-1,r6g.8xlarge,reserved_3y,all_upfront,0.497973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:47.275607 +AWS,ap-south-1,r6g.8xlarge,reserved_3y,no_upfront,0.497973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:23.858770 +AWS,ap-south-1,r6g.8xlarge,reserved_3y,partial_upfront,0.497973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:20.752464 +AWS,ap-south-1,r6g.8xlarge,spot,NA,0.64323,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340334 +AWS,ap-south-1,r6g.large,on_demand,NA,0.065,USD,AWS Pricing API,2025-11-30T08:56:49.046644 +AWS,ap-south-1,r6g.large,reserved_1y,all_upfront,0.091553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:20.701608 +AWS,ap-south-1,r6g.large,reserved_1y,no_upfront,0.091553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:00.639933 +AWS,ap-south-1,r6g.large,reserved_1y,partial_upfront,0.091553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:47.382649 +AWS,ap-south-1,r6g.large,reserved_3y,all_upfront,0.030518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:26.311926 +AWS,ap-south-1,r6g.large,reserved_3y,no_upfront,0.030518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:02.111450 +AWS,ap-south-1,r6g.large,reserved_3y,partial_upfront,0.030518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:59.470857 +AWS,ap-south-1,r6g.large,spot,NA,0.028081,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339810 +AWS,ap-south-1,r6g.xlarge,on_demand,NA,0.13,USD,AWS Pricing API,2025-11-30T08:56:24.545125 +AWS,ap-south-1,r6g.xlarge,reserved_1y,all_upfront,0.0819,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:56.278285 +AWS,ap-south-1,r6g.xlarge,reserved_1y,no_upfront,0.0819,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:35.946874 +AWS,ap-south-1,r6g.xlarge,reserved_1y,partial_upfront,0.0819,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:23.001150 +AWS,ap-south-1,r6g.xlarge,reserved_3y,all_upfront,0.0819,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:02.325511 +AWS,ap-south-1,r6g.xlarge,reserved_3y,no_upfront,0.0819,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:37.129075 +AWS,ap-south-1,r6g.xlarge,reserved_3y,partial_upfront,0.0819,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:35.177761 +AWS,ap-south-1,r6g.xlarge,spot,NA,0.06448,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339272 +AWS,ap-south-1,r6gd.12xlarge,on_demand,NA,1.7938,USD,AWS Pricing API,2025-11-30T08:57:21.035202 +AWS,ap-south-1,r6gd.12xlarge,reserved_1y,all_upfront,1.076228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:52.517584 +AWS,ap-south-1,r6gd.12xlarge,reserved_1y,no_upfront,1.076228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:32.824127 +AWS,ap-south-1,r6gd.12xlarge,reserved_1y,partial_upfront,1.076228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:19.151889 +AWS,ap-south-1,r6gd.12xlarge,reserved_3y,all_upfront,0.717476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:57.529480 +AWS,ap-south-1,r6gd.12xlarge,reserved_3y,no_upfront,0.717476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:34.646557 +AWS,ap-south-1,r6gd.12xlarge,reserved_3y,partial_upfront,0.717476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:31.092430 +AWS,ap-south-1,r6gd.12xlarge,spot,NA,0.706452,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340531 +AWS,ap-south-1,r6gd.16xlarge,on_demand,NA,2.3917,USD,AWS Pricing API,2025-11-30T08:56:47.540944 +AWS,ap-south-1,r6gd.16xlarge,reserved_1y,all_upfront,1.406279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:19.225305 +AWS,ap-south-1,r6gd.16xlarge,reserved_1y,no_upfront,1.406279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:59.119860 +AWS,ap-south-1,r6gd.16xlarge,reserved_1y,partial_upfront,1.406279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:45.890682 +AWS,ap-south-1,r6gd.16xlarge,reserved_3y,all_upfront,0.46876,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:24.864277 +AWS,ap-south-1,r6gd.16xlarge,reserved_3y,no_upfront,0.46876,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:00.581860 +AWS,ap-south-1,r6gd.16xlarge,reserved_3y,partial_upfront,0.46876,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:57.994943 +AWS,ap-south-1,r6gd.16xlarge,spot,NA,0.816955,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339781 +AWS,ap-south-1,r6gd.2xlarge,on_demand,NA,0.299,USD,AWS Pricing API,2025-11-30T08:56:26.021767 +AWS,ap-south-1,r6gd.2xlarge,reserved_1y,all_upfront,0.419292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:57.747460 +AWS,ap-south-1,r6gd.2xlarge,reserved_1y,no_upfront,0.419292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:37.439336 +AWS,ap-south-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.419292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:24.463378 +AWS,ap-south-1,r6gd.2xlarge,reserved_3y,all_upfront,0.139764,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:03.790919 +AWS,ap-south-1,r6gd.2xlarge,reserved_3y,no_upfront,0.139764,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:38.664285 +AWS,ap-south-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.139764,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:36.647276 +AWS,ap-south-1,r6gd.2xlarge,spot,NA,0.157591,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339313 +AWS,ap-south-1,r6gd.4xlarge,on_demand,NA,0.5979,USD,AWS Pricing API,2025-11-30T08:56:32.511005 +AWS,ap-south-1,r6gd.4xlarge,reserved_1y,all_upfront,0.351598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:04.266395 +AWS,ap-south-1,r6gd.4xlarge,reserved_1y,no_upfront,0.351598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:43.953466 +AWS,ap-south-1,r6gd.4xlarge,reserved_1y,partial_upfront,0.351598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:30.909783 +AWS,ap-south-1,r6gd.4xlarge,reserved_3y,all_upfront,0.117199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:10.162231 +AWS,ap-south-1,r6gd.4xlarge,reserved_3y,no_upfront,0.117199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:45.349601 +AWS,ap-south-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.117199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:43.080907 +AWS,ap-south-1,r6gd.4xlarge,spot,NA,0.303195,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339419 +AWS,ap-south-1,r6gd.8xlarge,on_demand,NA,1.1958,USD,AWS Pricing API,2025-11-30T08:56:26.839921 +AWS,ap-south-1,r6gd.8xlarge,reserved_1y,all_upfront,0.825057,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:58.551777 +AWS,ap-south-1,r6gd.8xlarge,reserved_1y,no_upfront,0.825057,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:38.253162 +AWS,ap-south-1,r6gd.8xlarge,reserved_1y,partial_upfront,0.825057,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:25.275306 +AWS,ap-south-1,r6gd.8xlarge,reserved_3y,all_upfront,0.550019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:04.584337 +AWS,ap-south-1,r6gd.8xlarge,reserved_3y,no_upfront,0.550019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:39.561603 +AWS,ap-south-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.550019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:37.444654 +AWS,ap-south-1,r6gd.8xlarge,spot,NA,0.565274,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339321 +AWS,ap-south-1,r6gd.large,on_demand,NA,0.0747,USD,AWS Pricing API,2025-11-30T08:57:02.479095 +AWS,ap-south-1,r6gd.large,reserved_1y,all_upfront,0.0541,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:33.973667 +AWS,ap-south-1,r6gd.large,reserved_1y,no_upfront,0.0541,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:14.108571 +AWS,ap-south-1,r6gd.large,reserved_1y,partial_upfront,0.0541,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:00.644644 +AWS,ap-south-1,r6gd.large,reserved_3y,all_upfront,0.0541,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:39.337698 +AWS,ap-south-1,r6gd.large,reserved_3y,no_upfront,0.0541,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:15.633611 +AWS,ap-south-1,r6gd.large,reserved_3y,partial_upfront,0.0541,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:12.678935 +AWS,ap-south-1,r6gd.large,spot,NA,0.030703,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340157 +AWS,ap-south-1,r6gd.xlarge,on_demand,NA,0.1495,USD,AWS Pricing API,2025-11-30T08:56:46.465078 +AWS,ap-south-1,r6gd.xlarge,reserved_1y,all_upfront,0.209703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:18.152837 +AWS,ap-south-1,r6gd.xlarge,reserved_1y,no_upfront,0.209703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:58.007171 +AWS,ap-south-1,r6gd.xlarge,reserved_1y,partial_upfront,0.209703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:44.816561 +AWS,ap-south-1,r6gd.xlarge,reserved_3y,all_upfront,0.069901,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:23.792767 +AWS,ap-south-1,r6gd.xlarge,reserved_3y,no_upfront,0.069901,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:59.488255 +AWS,ap-south-1,r6gd.xlarge,reserved_3y,partial_upfront,0.069901,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:56.910292 +AWS,ap-south-1,r6gd.xlarge,spot,NA,0.092844,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339733 +AWS,ap-south-1,r6i.12xlarge,on_demand,NA,3.12,USD,AWS Pricing API,2025-11-30T08:57:26.677846 +AWS,ap-south-1,r6i.12xlarge,reserved_1y,all_upfront,2.147973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:58.168568 +AWS,ap-south-1,r6i.12xlarge,reserved_1y,no_upfront,2.147973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:38.524326 +AWS,ap-south-1,r6i.12xlarge,reserved_1y,partial_upfront,2.147973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:24.785585 +AWS,ap-south-1,r6i.12xlarge,reserved_3y,all_upfront,1.431991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:03.175789 +AWS,ap-south-1,r6i.12xlarge,reserved_3y,no_upfront,1.431991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:40.409442 +AWS,ap-south-1,r6i.12xlarge,reserved_3y,partial_upfront,1.431991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:36.793686 +AWS,ap-south-1,r6i.12xlarge,spot,NA,0.835015,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340674 +AWS,ap-south-1,r6i.16xlarge,on_demand,NA,4.16,USD,AWS Pricing API,2025-11-30T08:56:35.212599 +AWS,ap-south-1,r6i.16xlarge,reserved_1y,all_upfront,2.604055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:06.956868 +AWS,ap-south-1,r6i.16xlarge,reserved_1y,no_upfront,2.604055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:46.667466 +AWS,ap-south-1,r6i.16xlarge,reserved_1y,partial_upfront,2.604055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:33.594490 +AWS,ap-south-1,r6i.16xlarge,reserved_3y,all_upfront,1.736018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:12.814317 +AWS,ap-south-1,r6i.16xlarge,reserved_3y,no_upfront,1.736018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:48.078015 +AWS,ap-south-1,r6i.16xlarge,reserved_3y,partial_upfront,1.736018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:45.770382 +AWS,ap-south-1,r6i.16xlarge,spot,NA,1.12667,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339472 +AWS,ap-south-1,r6i.24xlarge,on_demand,NA,6.24,USD,AWS Pricing API,2025-11-30T08:56:41.589991 +AWS,ap-south-1,r6i.24xlarge,reserved_1y,all_upfront,5.241564,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:13.307495 +AWS,ap-south-1,r6i.24xlarge,reserved_1y,no_upfront,5.241564,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:53.070447 +AWS,ap-south-1,r6i.24xlarge,reserved_1y,partial_upfront,5.241564,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:39.948177 +AWS,ap-south-1,r6i.24xlarge,reserved_3y,all_upfront,2.620788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:19.046640 +AWS,ap-south-1,r6i.24xlarge,reserved_3y,no_upfront,2.620788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:54.545090 +AWS,ap-south-1,r6i.24xlarge,reserved_3y,partial_upfront,2.620788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:52.089474 +AWS,ap-south-1,r6i.24xlarge,spot,NA,1.427655,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339621 +AWS,ap-south-1,r6i.2xlarge,on_demand,NA,0.52,USD,AWS Pricing API,2025-11-30T08:57:30.182995 +AWS,ap-south-1,r6i.2xlarge,reserved_1y,all_upfront,0.5,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:01.704924 +AWS,ap-south-1,r6i.2xlarge,reserved_1y,no_upfront,0.5,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:42.061864 +AWS,ap-south-1,r6i.2xlarge,reserved_1y,partial_upfront,0.5,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:28.263628 +AWS,ap-south-1,r6i.2xlarge,reserved_3y,all_upfront,0.25,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:06.628486 +AWS,ap-south-1,r6i.2xlarge,reserved_3y,no_upfront,0.25,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:43.984714 +AWS,ap-south-1,r6i.2xlarge,reserved_3y,partial_upfront,0.25,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:40.273109 +AWS,ap-south-1,r6i.2xlarge,spot,NA,0.186374,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340722 +AWS,ap-south-1,r6i.32xlarge,on_demand,NA,8.32,USD,AWS Pricing API,2025-11-30T08:56:35.347361 +AWS,ap-south-1,r6i.32xlarge,reserved_1y,all_upfront,6.988753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:07.090887 +AWS,ap-south-1,r6i.32xlarge,reserved_1y,no_upfront,6.988753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:46.803873 +AWS,ap-south-1,r6i.32xlarge,reserved_1y,partial_upfront,6.988753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:33.727703 +AWS,ap-south-1,r6i.32xlarge,reserved_3y,all_upfront,3.494384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:12.945541 +AWS,ap-south-1,r6i.32xlarge,reserved_3y,no_upfront,3.494384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:48.215682 +AWS,ap-south-1,r6i.32xlarge,reserved_3y,partial_upfront,3.494384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:45.906855 +AWS,ap-south-1,r6i.32xlarge,spot,NA,1.694219,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339498 +AWS,ap-south-1,r6i.4xlarge,on_demand,NA,1.04,USD,AWS Pricing API,2025-11-30T08:56:56.782355 +AWS,ap-south-1,r6i.4xlarge,reserved_1y,all_upfront,0.715991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:28.282291 +AWS,ap-south-1,r6i.4xlarge,reserved_1y,no_upfront,0.715991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:08.371991 +AWS,ap-south-1,r6i.4xlarge,reserved_1y,partial_upfront,0.715991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:54.929474 +AWS,ap-south-1,r6i.4xlarge,reserved_3y,all_upfront,0.47733,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:33.743622 +AWS,ap-south-1,r6i.4xlarge,reserved_3y,no_upfront,0.47733,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:09.832383 +AWS,ap-south-1,r6i.4xlarge,reserved_3y,partial_upfront,0.47733,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:07.049772 +AWS,ap-south-1,r6i.4xlarge,spot,NA,0.331742,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340051 +AWS,ap-south-1,r6i.8xlarge,on_demand,NA,2.08,USD,AWS Pricing API,2025-11-30T08:57:01.123735 +AWS,ap-south-1,r6i.8xlarge,reserved_1y,all_upfront,1.5036,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:32.624348 +AWS,ap-south-1,r6i.8xlarge,reserved_1y,no_upfront,1.5036,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:12.731412 +AWS,ap-south-1,r6i.8xlarge,reserved_1y,partial_upfront,1.5036,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:59.283324 +AWS,ap-south-1,r6i.8xlarge,reserved_3y,all_upfront,1.5036,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:38.009342 +AWS,ap-south-1,r6i.8xlarge,reserved_3y,no_upfront,1.5036,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:14.260571 +AWS,ap-south-1,r6i.8xlarge,reserved_3y,partial_upfront,1.5036,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:11.333974 +AWS,ap-south-1,r6i.8xlarge,spot,NA,0.615422,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340145 +AWS,ap-south-1,r6i.large,on_demand,NA,0.13,USD,AWS Pricing API,2025-11-30T08:57:16.880683 +AWS,ap-south-1,r6i.large,reserved_1y,all_upfront,0.18379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:48.311667 +AWS,ap-south-1,r6i.large,reserved_1y,no_upfront,0.18379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:28.619986 +AWS,ap-south-1,r6i.large,reserved_1y,partial_upfront,0.18379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:14.980704 +AWS,ap-south-1,r6i.large,reserved_3y,all_upfront,0.061263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:53.445843 +AWS,ap-south-1,r6i.large,reserved_3y,no_upfront,0.061263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:30.249904 +AWS,ap-south-1,r6i.large,reserved_3y,partial_upfront,0.061263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:26.946210 +AWS,ap-south-1,r6i.large,spot,NA,0.040419,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340466 +AWS,ap-south-1,r6i.xlarge,on_demand,NA,0.26,USD,AWS Pricing API,2025-11-30T08:56:38.736213 +AWS,ap-south-1,r6i.xlarge,reserved_1y,all_upfront,0.18795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:10.477372 +AWS,ap-south-1,r6i.xlarge,reserved_1y,no_upfront,0.18795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:50.211878 +AWS,ap-south-1,r6i.xlarge,reserved_1y,partial_upfront,0.18795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:37.088422 +AWS,ap-south-1,r6i.xlarge,reserved_3y,all_upfront,0.18795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:16.273518 +AWS,ap-south-1,r6i.xlarge,reserved_3y,no_upfront,0.18795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:51.662396 +AWS,ap-south-1,r6i.xlarge,reserved_3y,partial_upfront,0.18795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:49.270603 +AWS,ap-south-1,r6i.xlarge,spot,NA,0.09091,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339544 +AWS,ap-south-1,r6id.12xlarge,on_demand,NA,3.8064,USD,AWS Pricing API,2025-11-30T08:57:30.579690 +AWS,ap-south-1,r6id.12xlarge,reserved_1y,all_upfront,2.39803,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:02.133230 +AWS,ap-south-1,r6id.12xlarge,reserved_1y,no_upfront,2.39803,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:42.467379 +AWS,ap-south-1,r6id.12xlarge,reserved_1y,partial_upfront,2.39803,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:28.662010 +AWS,ap-south-1,r6id.12xlarge,reserved_3y,all_upfront,2.39803,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:07.021835 +AWS,ap-south-1,r6id.12xlarge,reserved_3y,no_upfront,2.39803,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:44.393258 +AWS,ap-south-1,r6id.12xlarge,reserved_3y,partial_upfront,2.39803,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:40.673999 +AWS,ap-south-1,r6id.12xlarge,spot,NA,1.095865,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340750 +AWS,ap-south-1,r6id.16xlarge,on_demand,NA,5.0752,USD,AWS Pricing API,2025-11-30T08:57:13.783406 +AWS,ap-south-1,r6id.16xlarge,reserved_1y,all_upfront,3.045163,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:45.225139 +AWS,ap-south-1,r6id.16xlarge,reserved_1y,no_upfront,3.045163,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:25.429744 +AWS,ap-south-1,r6id.16xlarge,reserved_1y,partial_upfront,3.045163,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:11.879996 +AWS,ap-south-1,r6id.16xlarge,reserved_3y,all_upfront,2.030094,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:50.346376 +AWS,ap-south-1,r6id.16xlarge,reserved_3y,no_upfront,2.030094,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:27.044222 +AWS,ap-south-1,r6id.16xlarge,reserved_3y,partial_upfront,2.030094,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:23.852117 +AWS,ap-south-1,r6id.16xlarge,spot,NA,1.356494,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340379 +AWS,ap-south-1,r6id.24xlarge,on_demand,NA,7.6128,USD,AWS Pricing API,2025-11-30T08:56:26.299386 +AWS,ap-south-1,r6id.24xlarge,reserved_1y,all_upfront,4.56763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:58.018368 +AWS,ap-south-1,r6id.24xlarge,reserved_1y,no_upfront,4.56763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:37.712603 +AWS,ap-south-1,r6id.24xlarge,reserved_1y,partial_upfront,4.56763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:24.735611 +AWS,ap-south-1,r6id.24xlarge,reserved_3y,all_upfront,3.045103,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:04.056646 +AWS,ap-south-1,r6id.24xlarge,reserved_3y,no_upfront,3.045103,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:38.937511 +AWS,ap-south-1,r6id.24xlarge,reserved_3y,partial_upfront,3.045103,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:36.913183 +AWS,ap-south-1,r6id.24xlarge,spot,NA,2.239663,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339292 +AWS,ap-south-1,r6id.2xlarge,on_demand,NA,0.6344,USD,AWS Pricing API,2025-11-30T08:57:16.479668 +AWS,ap-south-1,r6id.2xlarge,reserved_1y,all_upfront,0.39967,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:47.908030 +AWS,ap-south-1,r6id.2xlarge,reserved_1y,no_upfront,0.39967,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:28.200768 +AWS,ap-south-1,r6id.2xlarge,reserved_1y,partial_upfront,0.39967,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:14.577912 +AWS,ap-south-1,r6id.2xlarge,reserved_3y,all_upfront,0.39967,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:53.046503 +AWS,ap-south-1,r6id.2xlarge,reserved_3y,no_upfront,0.39967,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:29.838601 +AWS,ap-south-1,r6id.2xlarge,reserved_3y,partial_upfront,0.39967,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:26.545793 +AWS,ap-south-1,r6id.2xlarge,spot,NA,0.230781,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340472 +AWS,ap-south-1,r6id.32xlarge,on_demand,NA,10.1504,USD,AWS Pricing API,2025-11-30T08:57:08.257933 +AWS,ap-south-1,r6id.32xlarge,reserved_1y,all_upfront,7.35396,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:39.778926 +AWS,ap-south-1,r6id.32xlarge,reserved_1y,no_upfront,7.35396,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:19.953720 +AWS,ap-south-1,r6id.32xlarge,reserved_1y,partial_upfront,7.35396,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:06.484884 +AWS,ap-south-1,r6id.32xlarge,reserved_3y,all_upfront,7.35396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:45.032703 +AWS,ap-south-1,r6id.32xlarge,reserved_3y,no_upfront,7.35396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:21.525645 +AWS,ap-south-1,r6id.32xlarge,reserved_3y,partial_upfront,7.35396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:18.454037 +AWS,ap-south-1,r6id.32xlarge,spot,NA,2.771798,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340278 +AWS,ap-south-1,r6id.4xlarge,on_demand,NA,1.2688,USD,AWS Pricing API,2025-11-30T08:57:03.020718 +AWS,ap-south-1,r6id.4xlarge,reserved_1y,all_upfront,0.857991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:34.513244 +AWS,ap-south-1,r6id.4xlarge,reserved_1y,no_upfront,0.857991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:14.653644 +AWS,ap-south-1,r6id.4xlarge,reserved_1y,partial_upfront,0.857991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:01.189083 +AWS,ap-south-1,r6id.4xlarge,reserved_3y,all_upfront,0.285997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:39.875295 +AWS,ap-south-1,r6id.4xlarge,reserved_3y,no_upfront,0.285997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:16.189650 +AWS,ap-south-1,r6id.4xlarge,reserved_3y,partial_upfront,0.285997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:13.215837 +AWS,ap-south-1,r6id.4xlarge,spot,NA,0.341168,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340165 +AWS,ap-south-1,r6id.8xlarge,on_demand,NA,2.5376,USD,AWS Pricing API,2025-11-30T08:56:25.885753 +AWS,ap-south-1,r6id.8xlarge,reserved_1y,all_upfront,1.522581,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:57.614436 +AWS,ap-south-1,r6id.8xlarge,reserved_1y,no_upfront,1.522581,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:37.304529 +AWS,ap-south-1,r6id.8xlarge,reserved_1y,partial_upfront,1.522581,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:24.330623 +AWS,ap-south-1,r6id.8xlarge,reserved_3y,all_upfront,1.015047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:03.658884 +AWS,ap-south-1,r6id.8xlarge,reserved_3y,no_upfront,1.015047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:38.527970 +AWS,ap-south-1,r6id.8xlarge,reserved_3y,partial_upfront,1.015047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:36.507966 +AWS,ap-south-1,r6id.8xlarge,spot,NA,0.717579,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339309 +AWS,ap-south-1,r6id.large,on_demand,NA,0.1586,USD,AWS Pricing API,2025-11-30T08:56:50.869767 +AWS,ap-south-1,r6id.large,reserved_1y,all_upfront,0.093265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:22.453300 +AWS,ap-south-1,r6id.large,reserved_1y,no_upfront,0.093265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:02.437198 +AWS,ap-south-1,r6id.large,reserved_1y,partial_upfront,0.093265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:49.142682 +AWS,ap-south-1,r6id.large,reserved_3y,all_upfront,0.031088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:28.029603 +AWS,ap-south-1,r6id.large,reserved_3y,no_upfront,0.031088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:03.890004 +AWS,ap-south-1,r6id.large,reserved_3y,partial_upfront,0.031088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:01.205209 +AWS,ap-south-1,r6id.large,spot,NA,0.051963,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339819 +AWS,ap-south-1,r6id.xlarge,on_demand,NA,0.3172,USD,AWS Pricing API,2025-11-30T08:57:28.034580 +AWS,ap-south-1,r6id.xlarge,reserved_1y,all_upfront,0.16344,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:59.536058 +AWS,ap-south-1,r6id.xlarge,reserved_1y,no_upfront,0.16344,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:39.883134 +AWS,ap-south-1,r6id.xlarge,reserved_1y,partial_upfront,0.16344,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:26.130889 +AWS,ap-south-1,r6id.xlarge,reserved_3y,all_upfront,0.16344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:04.515567 +AWS,ap-south-1,r6id.xlarge,reserved_3y,no_upfront,0.16344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:41.804323 +AWS,ap-south-1,r6id.xlarge,reserved_3y,partial_upfront,0.16344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:38.133730 +AWS,ap-south-1,r6id.xlarge,spot,NA,0.122287,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340718 +AWS,ap-south-1,r7g.12xlarge,on_demand,NA,1.8019,USD,AWS Pricing API,2025-11-30T08:56:55.136125 +AWS,ap-south-1,r7g.12xlarge,reserved_1y,all_upfront,1.105251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:26.653770 +AWS,ap-south-1,r7g.12xlarge,reserved_1y,no_upfront,1.105251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:06.703625 +AWS,ap-south-1,r7g.12xlarge,reserved_1y,partial_upfront,1.105251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:53.309791 +AWS,ap-south-1,r7g.12xlarge,reserved_3y,all_upfront,0.368417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:32.151937 +AWS,ap-south-1,r7g.12xlarge,reserved_3y,no_upfront,0.368417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:08.177528 +AWS,ap-south-1,r7g.12xlarge,reserved_3y,partial_upfront,0.368417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:05.387318 +AWS,ap-south-1,r7g.12xlarge,spot,NA,0.586276,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339966 +AWS,ap-south-1,r7g.16xlarge,on_demand,NA,2.4026,USD,AWS Pricing API,2025-11-30T08:56:40.223863 +AWS,ap-south-1,r7g.16xlarge,reserved_1y,all_upfront,1.2476,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:11.956471 +AWS,ap-south-1,r7g.16xlarge,reserved_1y,no_upfront,1.2476,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:51.709140 +AWS,ap-south-1,r7g.16xlarge,reserved_1y,partial_upfront,1.2476,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:38.581339 +AWS,ap-south-1,r7g.16xlarge,reserved_3y,all_upfront,1.2476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:17.712718 +AWS,ap-south-1,r7g.16xlarge,reserved_3y,no_upfront,1.2476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:53.174011 +AWS,ap-south-1,r7g.16xlarge,reserved_3y,partial_upfront,1.2476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:50.746931 +AWS,ap-south-1,r7g.16xlarge,spot,NA,0.717183,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339580 +AWS,ap-south-1,r7g.2xlarge,on_demand,NA,0.3003,USD,AWS Pricing API,2025-11-30T08:56:48.369502 +AWS,ap-south-1,r7g.2xlarge,reserved_1y,all_upfront,0.202626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:20.027881 +AWS,ap-south-1,r7g.2xlarge,reserved_1y,no_upfront,0.202626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:59.948903 +AWS,ap-south-1,r7g.2xlarge,reserved_1y,partial_upfront,0.202626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:46.707372 +AWS,ap-south-1,r7g.2xlarge,reserved_3y,all_upfront,0.067542,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:25.653735 +AWS,ap-south-1,r7g.2xlarge,reserved_3y,no_upfront,0.067542,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:01.410761 +AWS,ap-south-1,r7g.2xlarge,reserved_3y,partial_upfront,0.067542,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:58.794767 +AWS,ap-south-1,r7g.2xlarge,spot,NA,0.135428,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339777 +AWS,ap-south-1,r7g.4xlarge,on_demand,NA,0.6006,USD,AWS Pricing API,2025-11-30T08:56:38.872061 +AWS,ap-south-1,r7g.4xlarge,reserved_1y,all_upfront,0.504525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:10.610437 +AWS,ap-south-1,r7g.4xlarge,reserved_1y,no_upfront,0.504525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:50.348526 +AWS,ap-south-1,r7g.4xlarge,reserved_1y,partial_upfront,0.504525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:37.222187 +AWS,ap-south-1,r7g.4xlarge,reserved_3y,all_upfront,0.252242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:16.405278 +AWS,ap-south-1,r7g.4xlarge,reserved_3y,no_upfront,0.252242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:51.798602 +AWS,ap-south-1,r7g.4xlarge,reserved_3y,partial_upfront,0.252242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:49.403849 +AWS,ap-south-1,r7g.4xlarge,spot,NA,0.245961,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339552 +AWS,ap-south-1,r7g.8xlarge,on_demand,NA,1.2013,USD,AWS Pricing API,2025-11-30T08:57:10.997818 +AWS,ap-south-1,r7g.8xlarge,reserved_1y,all_upfront,1.698059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:42.515027 +AWS,ap-south-1,r7g.8xlarge,reserved_1y,no_upfront,1.698059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:22.672094 +AWS,ap-south-1,r7g.8xlarge,reserved_1y,partial_upfront,1.698059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:09.179643 +AWS,ap-south-1,r7g.8xlarge,reserved_3y,all_upfront,0.56602,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:47.671180 +AWS,ap-south-1,r7g.8xlarge,reserved_3y,no_upfront,0.56602,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:24.268471 +AWS,ap-south-1,r7g.8xlarge,reserved_3y,partial_upfront,0.56602,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:21.151701 +AWS,ap-south-1,r7g.8xlarge,spot,NA,0.51874,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340326 +AWS,ap-south-1,r7g.large,on_demand,NA,0.0751,USD,AWS Pricing API,2025-11-30T08:57:05.449961 +AWS,ap-south-1,r7g.large,reserved_1y,all_upfront,0.051599,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:36.930143 +AWS,ap-south-1,r7g.large,reserved_1y,no_upfront,0.051599,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:17.103880 +AWS,ap-south-1,r7g.large,reserved_1y,partial_upfront,0.051599,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:03.645153 +AWS,ap-south-1,r7g.large,reserved_3y,all_upfront,0.0344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:42.260534 +AWS,ap-south-1,r7g.large,reserved_3y,no_upfront,0.0344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:18.642784 +AWS,ap-south-1,r7g.large,reserved_3y,partial_upfront,0.0344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:15.623422 +AWS,ap-south-1,r7g.large,spot,NA,0.031078,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340233 +AWS,ap-south-1,r7g.xlarge,on_demand,NA,0.1502,USD,AWS Pricing API,2025-11-30T08:57:07.850296 +AWS,ap-south-1,r7g.xlarge,reserved_1y,all_upfront,0.126135,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:39.371021 +AWS,ap-south-1,r7g.xlarge,reserved_1y,no_upfront,0.126135,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:19.547808 +AWS,ap-south-1,r7g.xlarge,reserved_1y,partial_upfront,0.126135,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:06.084116 +AWS,ap-south-1,r7g.xlarge,reserved_3y,all_upfront,0.063045,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:44.634186 +AWS,ap-south-1,r7g.xlarge,reserved_3y,no_upfront,0.063045,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:21.097328 +AWS,ap-south-1,r7g.xlarge,reserved_3y,partial_upfront,0.063045,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:18.046181 +AWS,ap-south-1,r7g.xlarge,spot,NA,0.06458,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340266 +AWS,ap-south-1,r7gd.12xlarge,on_demand,NA,2.112,USD,AWS Pricing API,2025-11-30T08:57:29.508287 +AWS,ap-south-1,r7gd.12xlarge,reserved_1y,all_upfront,1.267162,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:01.018205 +AWS,ap-south-1,r7gd.12xlarge,reserved_1y,no_upfront,1.267162,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:41.379384 +AWS,ap-south-1,r7gd.12xlarge,reserved_1y,partial_upfront,1.267162,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:27.600495 +AWS,ap-south-1,r7gd.12xlarge,reserved_3y,all_upfront,0.844787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:05.963079 +AWS,ap-south-1,r7gd.12xlarge,reserved_3y,no_upfront,0.844787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:43.306676 +AWS,ap-south-1,r7gd.12xlarge,reserved_3y,partial_upfront,0.844787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:39.607802 +AWS,ap-south-1,r7gd.12xlarge,spot,NA,0.734307,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340730 +AWS,ap-south-1,r7gd.16xlarge,on_demand,NA,2.816,USD,AWS Pricing API,2025-11-30T08:57:24.912103 +AWS,ap-south-1,r7gd.16xlarge,reserved_1y,all_upfront,1.655822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:56.411594 +AWS,ap-south-1,r7gd.16xlarge,reserved_1y,no_upfront,1.655822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:36.756084 +AWS,ap-south-1,r7gd.16xlarge,reserved_1y,partial_upfront,1.655822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:23.036603 +AWS,ap-south-1,r7gd.16xlarge,reserved_3y,all_upfront,0.551941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:01.389548 +AWS,ap-south-1,r7gd.16xlarge,reserved_3y,no_upfront,0.551941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:38.626613 +AWS,ap-south-1,r7gd.16xlarge,reserved_3y,partial_upfront,0.551941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:35.046378 +AWS,ap-south-1,r7gd.16xlarge,spot,NA,0.834966,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340608 +AWS,ap-south-1,r7gd.2xlarge,on_demand,NA,0.352,USD,AWS Pricing API,2025-11-30T08:56:54.030006 +AWS,ap-south-1,r7gd.2xlarge,reserved_1y,all_upfront,0.238014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:25.584025 +AWS,ap-south-1,r7gd.2xlarge,reserved_1y,no_upfront,0.238014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:05.616749 +AWS,ap-south-1,r7gd.2xlarge,reserved_1y,partial_upfront,0.238014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:52.229067 +AWS,ap-south-1,r7gd.2xlarge,reserved_3y,all_upfront,0.079338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:31.084319 +AWS,ap-south-1,r7gd.2xlarge,reserved_3y,no_upfront,0.079338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:07.071977 +AWS,ap-south-1,r7gd.2xlarge,reserved_3y,partial_upfront,0.079338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:04.305837 +AWS,ap-south-1,r7gd.2xlarge,spot,NA,0.161172,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339932 +AWS,ap-south-1,r7gd.4xlarge,on_demand,NA,0.704,USD,AWS Pricing API,2025-11-30T08:57:14.463775 +AWS,ap-south-1,r7gd.4xlarge,reserved_1y,all_upfront,0.413927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:45.893242 +AWS,ap-south-1,r7gd.4xlarge,reserved_1y,no_upfront,0.413927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:26.117669 +AWS,ap-south-1,r7gd.4xlarge,reserved_1y,partial_upfront,0.413927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:12.556312 +AWS,ap-south-1,r7gd.4xlarge,reserved_3y,all_upfront,0.137976,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:51.011258 +AWS,ap-south-1,r7gd.4xlarge,reserved_3y,no_upfront,0.137976,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:27.755052 +AWS,ap-south-1,r7gd.4xlarge,reserved_3y,partial_upfront,0.137976,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:24.531738 +AWS,ap-south-1,r7gd.4xlarge,spot,NA,0.279538,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340431 +AWS,ap-south-1,r7gd.8xlarge,on_demand,NA,1.408,USD,AWS Pricing API,2025-11-30T08:57:08.393533 +AWS,ap-south-1,r7gd.8xlarge,reserved_1y,all_upfront,1.588242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:39.913914 +AWS,ap-south-1,r7gd.8xlarge,reserved_1y,no_upfront,1.588242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:20.094027 +AWS,ap-south-1,r7gd.8xlarge,reserved_1y,partial_upfront,1.588242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:06.619946 +AWS,ap-south-1,r7gd.8xlarge,reserved_3y,all_upfront,0.529414,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:45.162029 +AWS,ap-south-1,r7gd.8xlarge,reserved_3y,no_upfront,0.529414,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:21.667081 +AWS,ap-south-1,r7gd.8xlarge,reserved_3y,partial_upfront,0.529414,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:18.588636 +AWS,ap-south-1,r7gd.8xlarge,spot,NA,0.550222,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340261 +AWS,ap-south-1,r7gd.large,on_demand,NA,0.088,USD,AWS Pricing API,2025-11-30T08:56:32.644370 +AWS,ap-south-1,r7gd.large,reserved_1y,all_upfront,0.051712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:04.399890 +AWS,ap-south-1,r7gd.large,reserved_1y,no_upfront,0.051712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:44.088770 +AWS,ap-south-1,r7gd.large,reserved_1y,partial_upfront,0.051712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:31.045797 +AWS,ap-south-1,r7gd.large,reserved_3y,all_upfront,0.017237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:10.297166 +AWS,ap-south-1,r7gd.large,reserved_3y,no_upfront,0.017237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:45.485707 +AWS,ap-south-1,r7gd.large,reserved_3y,partial_upfront,0.017237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:43.214541 +AWS,ap-south-1,r7gd.large,spot,NA,0.028827,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339440 +AWS,ap-south-1,r7gd.xlarge,on_demand,NA,0.176,USD,AWS Pricing API,2025-11-30T08:56:42.139343 +AWS,ap-south-1,r7gd.xlarge,reserved_1y,all_upfront,0.103539,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:13.840679 +AWS,ap-south-1,r7gd.xlarge,reserved_1y,no_upfront,0.103539,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:53.616482 +AWS,ap-south-1,r7gd.xlarge,reserved_1y,partial_upfront,0.103539,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:40.486614 +AWS,ap-south-1,r7gd.xlarge,reserved_3y,all_upfront,0.034513,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:19.571204 +AWS,ap-south-1,r7gd.xlarge,reserved_3y,no_upfront,0.034513,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:55.101219 +AWS,ap-south-1,r7gd.xlarge,reserved_3y,partial_upfront,0.034513,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:52.635149 +AWS,ap-south-1,r7gd.xlarge,spot,NA,0.090655,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339650 +AWS,ap-south-1,r7i.12xlarge,on_demand,NA,3.276,USD,AWS Pricing API,2025-11-30T08:57:17.429228 +AWS,ap-south-1,r7i.12xlarge,reserved_1y,all_upfront,2.009589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:48.853659 +AWS,ap-south-1,r7i.12xlarge,reserved_1y,no_upfront,2.009589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:29.170950 +AWS,ap-south-1,r7i.12xlarge,reserved_1y,partial_upfront,2.009589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:15.522311 +AWS,ap-south-1,r7i.12xlarge,reserved_3y,all_upfront,0.669863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:53.979122 +AWS,ap-south-1,r7i.12xlarge,reserved_3y,no_upfront,0.669863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:30.898272 +AWS,ap-south-1,r7i.12xlarge,reserved_3y,partial_upfront,0.669863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:27.481742 +AWS,ap-south-1,r7i.12xlarge,spot,NA,0.951889,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340480 +AWS,ap-south-1,r7i.16xlarge,on_demand,NA,4.368,USD,AWS Pricing API,2025-11-30T08:57:15.540803 +AWS,ap-south-1,r7i.16xlarge,reserved_1y,all_upfront,2.268,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:46.969564 +AWS,ap-south-1,r7i.16xlarge,reserved_1y,no_upfront,2.268,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:27.208283 +AWS,ap-south-1,r7i.16xlarge,reserved_1y,partial_upfront,2.268,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:13.642453 +AWS,ap-south-1,r7i.16xlarge,reserved_3y,all_upfront,2.268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:52.115055 +AWS,ap-south-1,r7i.16xlarge,reserved_3y,no_upfront,2.268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:28.880373 +AWS,ap-south-1,r7i.16xlarge,reserved_3y,partial_upfront,2.268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:25.601572 +AWS,ap-south-1,r7i.16xlarge,spot,NA,1.29838,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340435 +AWS,ap-south-1,r7i.24xlarge,on_demand,NA,6.552,USD,AWS Pricing API,2025-11-30T08:57:12.277425 +AWS,ap-south-1,r7i.24xlarge,reserved_1y,all_upfront,5.50366,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:43.733178 +AWS,ap-south-1,r7i.24xlarge,reserved_1y,no_upfront,5.50366,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:23.932938 +AWS,ap-south-1,r7i.24xlarge,reserved_1y,partial_upfront,5.50366,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:10.389957 +AWS,ap-south-1,r7i.24xlarge,reserved_3y,all_upfront,2.751833,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:48.876243 +AWS,ap-south-1,r7i.24xlarge,reserved_3y,no_upfront,2.751833,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:25.517982 +AWS,ap-south-1,r7i.24xlarge,reserved_3y,partial_upfront,2.751833,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:22.365322 +AWS,ap-south-1,r7i.24xlarge,spot,NA,1.461103,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340362 +AWS,ap-south-1,r7i.2xlarge,on_demand,NA,0.546,USD,AWS Pricing API,2025-11-30T08:57:14.600467 +AWS,ap-south-1,r7i.2xlarge,reserved_1y,all_upfront,0.37585,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:46.028289 +AWS,ap-south-1,r7i.2xlarge,reserved_1y,no_upfront,0.37585,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:26.253927 +AWS,ap-south-1,r7i.2xlarge,reserved_1y,partial_upfront,0.37585,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:12.692799 +AWS,ap-south-1,r7i.2xlarge,reserved_3y,all_upfront,0.250583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:51.145921 +AWS,ap-south-1,r7i.2xlarge,reserved_3y,no_upfront,0.250583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:27.891770 +AWS,ap-south-1,r7i.2xlarge,reserved_3y,partial_upfront,0.250583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:24.663404 +AWS,ap-south-1,r7i.2xlarge,spot,NA,0.219637,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340423 +AWS,ap-south-1,r7i.48xlarge,on_demand,NA,13.104,USD,AWS Pricing API,2025-11-30T08:57:34.855988 +AWS,ap-south-1,r7i.48xlarge,reserved_1y,all_upfront,8.61271,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:55:06.466908 +AWS,ap-south-1,r7i.48xlarge,reserved_1y,no_upfront,8.61271,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:46.826642 +AWS,ap-south-1,r7i.48xlarge,reserved_1y,partial_upfront,8.61271,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:32.984892 +AWS,ap-south-1,r7i.48xlarge,reserved_3y,all_upfront,8.61271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:11.245521 +AWS,ap-south-1,r7i.48xlarge,reserved_3y,no_upfront,8.61271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:48.769798 +AWS,ap-south-1,r7i.48xlarge,reserved_3y,partial_upfront,8.61271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:44.957002 +AWS,ap-south-1,r7i.48xlarge,spot,NA,3.780858,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340818 +AWS,ap-south-1,r7i.4xlarge,on_demand,NA,1.092,USD,AWS Pricing API,2025-11-30T08:57:12.141725 +AWS,ap-south-1,r7i.4xlarge,reserved_1y,all_upfront,0.683551,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:43.596758 +AWS,ap-south-1,r7i.4xlarge,reserved_1y,no_upfront,0.683551,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:23.794453 +AWS,ap-south-1,r7i.4xlarge,reserved_1y,partial_upfront,0.683551,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:10.255849 +AWS,ap-south-1,r7i.4xlarge,reserved_3y,all_upfront,0.455697,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:48.744425 +AWS,ap-south-1,r7i.4xlarge,reserved_3y,no_upfront,0.455697,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:25.380945 +AWS,ap-south-1,r7i.4xlarge,reserved_3y,partial_upfront,0.455697,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:22.230434 +AWS,ap-south-1,r7i.4xlarge,spot,NA,0.399951,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340342 +AWS,ap-south-1,r7i.8xlarge,on_demand,NA,2.184,USD,AWS Pricing API,2025-11-30T08:56:28.733344 +AWS,ap-south-1,r7i.8xlarge,reserved_1y,all_upfront,2.586758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:00.443525 +AWS,ap-south-1,r7i.8xlarge,reserved_1y,no_upfront,2.586758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:40.152749 +AWS,ap-south-1,r7i.8xlarge,reserved_1y,partial_upfront,2.586758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:27.162775 +AWS,ap-south-1,r7i.8xlarge,reserved_3y,all_upfront,0.862253,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:06.445040 +AWS,ap-south-1,r7i.8xlarge,reserved_3y,no_upfront,0.862253,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:41.485311 +AWS,ap-south-1,r7i.8xlarge,reserved_3y,partial_upfront,0.862253,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:39.320779 +AWS,ap-south-1,r7i.8xlarge,spot,NA,0.743647,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339350 +AWS,ap-south-1,r7i.large,on_demand,NA,0.1365,USD,AWS Pricing API,2025-11-30T08:56:42.969248 +AWS,ap-south-1,r7i.large,reserved_1y,all_upfront,0.09867,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:14.653896 +AWS,ap-south-1,r7i.large,reserved_1y,no_upfront,0.09867,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:54.430787 +AWS,ap-south-1,r7i.large,reserved_1y,partial_upfront,0.09867,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:41.293477 +AWS,ap-south-1,r7i.large,reserved_3y,all_upfront,0.09867,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:20.368046 +AWS,ap-south-1,r7i.large,reserved_3y,no_upfront,0.09867,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:55.920414 +AWS,ap-south-1,r7i.large,reserved_3y,partial_upfront,0.09867,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:53.429499 +AWS,ap-south-1,r7i.large,spot,NA,0.041812,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339659 +AWS,ap-south-1,r7i.metal-24xl,on_demand,NA,6.552,USD,AWS Pricing API,2025-11-30T08:56:59.229015 +AWS,ap-south-1,r7i.metal-24xl,reserved_1y,all_upfront,5.50366,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:30.718526 +AWS,ap-south-1,r7i.metal-24xl,reserved_1y,no_upfront,5.50366,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:10.829162 +AWS,ap-south-1,r7i.metal-24xl,reserved_1y,partial_upfront,5.50366,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:57.384572 +AWS,ap-south-1,r7i.metal-24xl,reserved_3y,all_upfront,2.751833,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:36.134451 +AWS,ap-south-1,r7i.metal-24xl,reserved_3y,no_upfront,2.751833,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:12.315774 +AWS,ap-south-1,r7i.metal-24xl,reserved_3y,partial_upfront,2.751833,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:09.468832 +AWS,ap-south-1,r7i.metal-24xl,spot,NA,1.500818,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340079 +AWS,ap-south-1,r7i.metal-48xl,on_demand,NA,13.104,USD,AWS Pricing API,2025-11-30T08:57:18.908276 +AWS,ap-south-1,r7i.metal-48xl,reserved_1y,all_upfront,8.61271,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:50.352788 +AWS,ap-south-1,r7i.metal-48xl,reserved_1y,no_upfront,8.61271,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:30.660394 +AWS,ap-south-1,r7i.metal-48xl,reserved_1y,partial_upfront,8.61271,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:17.008502 +AWS,ap-south-1,r7i.metal-48xl,reserved_3y,all_upfront,8.61271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:55.429819 +AWS,ap-south-1,r7i.metal-48xl,reserved_3y,no_upfront,8.61271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:32.407029 +AWS,ap-south-1,r7i.metal-48xl,reserved_3y,partial_upfront,8.61271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:28.947924 +AWS,ap-south-1,r7i.metal-48xl,spot,NA,2.709693,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340519 +AWS,ap-south-1,r7i.xlarge,on_demand,NA,0.273,USD,AWS Pricing API,2025-11-30T08:56:54.579726 +AWS,ap-south-1,r7i.xlarge,reserved_1y,all_upfront,0.167466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:26.116398 +AWS,ap-south-1,r7i.xlarge,reserved_1y,no_upfront,0.167466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:06.157302 +AWS,ap-south-1,r7i.xlarge,reserved_1y,partial_upfront,0.167466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:52.761516 +AWS,ap-south-1,r7i.xlarge,reserved_3y,all_upfront,0.055822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:31.615664 +AWS,ap-south-1,r7i.xlarge,reserved_3y,no_upfront,0.055822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:07.623640 +AWS,ap-south-1,r7i.xlarge,reserved_3y,partial_upfront,0.055822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:04.849661 +AWS,ap-south-1,r7i.xlarge,spot,NA,0.101682,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339961 +AWS,ap-south-1,r8g.12xlarge,on_demand,NA,1.98192,USD,AWS Pricing API,2025-11-30T08:57:01.392097 +AWS,ap-south-1,r8g.12xlarge,reserved_1y,all_upfront,2.801598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:32.891876 +AWS,ap-south-1,r8g.12xlarge,reserved_1y,no_upfront,2.801598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:13.009088 +AWS,ap-south-1,r8g.12xlarge,reserved_1y,partial_upfront,2.801598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:59.559623 +AWS,ap-south-1,r8g.12xlarge,reserved_3y,all_upfront,0.933866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:38.271573 +AWS,ap-south-1,r8g.12xlarge,reserved_3y,no_upfront,0.933866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:14.532877 +AWS,ap-south-1,r8g.12xlarge,reserved_3y,partial_upfront,0.933866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:11.601393 +AWS,ap-south-1,r8g.12xlarge,spot,NA,0.666396,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340137 +AWS,ap-south-1,r8g.16xlarge,on_demand,NA,2.64256,USD,AWS Pricing API,2025-11-30T08:57:24.370749 +AWS,ap-south-1,r8g.16xlarge,reserved_1y,all_upfront,1.62089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:55.875364 +AWS,ap-south-1,r8g.16xlarge,reserved_1y,no_upfront,1.62089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:36.213845 +AWS,ap-south-1,r8g.16xlarge,reserved_1y,partial_upfront,1.62089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:22.493137 +AWS,ap-south-1,r8g.16xlarge,reserved_3y,all_upfront,0.540297,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:00:00.852973 +AWS,ap-south-1,r8g.16xlarge,reserved_3y,no_upfront,0.540297,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:38.080728 +AWS,ap-south-1,r8g.16xlarge,reserved_3y,partial_upfront,0.540297,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:34.497241 +AWS,ap-south-1,r8g.16xlarge,spot,NA,0.861556,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340613 +AWS,ap-south-1,r8g.24xlarge,on_demand,NA,3.96384,USD,AWS Pricing API,2025-11-30T08:56:52.647474 +AWS,ap-south-1,r8g.24xlarge,reserved_1y,all_upfront,2.431393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:24.220625 +AWS,ap-south-1,r8g.24xlarge,reserved_1y,no_upfront,2.431393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:04.228859 +AWS,ap-south-1,r8g.24xlarge,reserved_1y,partial_upfront,2.431393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:50.880405 +AWS,ap-south-1,r8g.24xlarge,reserved_3y,all_upfront,0.810464,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:29.748101 +AWS,ap-south-1,r8g.24xlarge,reserved_3y,no_upfront,0.810464,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:05.697004 +AWS,ap-south-1,r8g.24xlarge,reserved_3y,partial_upfront,0.810464,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:02.964064 +AWS,ap-south-1,r8g.24xlarge,spot,NA,0.985281,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339898 +AWS,ap-south-1,r8g.2xlarge,on_demand,NA,0.33032,USD,AWS Pricing API,2025-11-30T08:57:05.173820 +AWS,ap-south-1,r8g.2xlarge,reserved_1y,all_upfront,0.39121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:36.659538 +AWS,ap-south-1,r8g.2xlarge,reserved_1y,no_upfront,0.39121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:16.830130 +AWS,ap-south-1,r8g.2xlarge,reserved_1y,partial_upfront,0.39121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:03.375806 +AWS,ap-south-1,r8g.2xlarge,reserved_3y,all_upfront,0.130403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:41.985229 +AWS,ap-south-1,r8g.2xlarge,reserved_3y,no_upfront,0.130403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:18.368866 +AWS,ap-south-1,r8g.2xlarge,reserved_3y,partial_upfront,0.130403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:15.353415 +AWS,ap-south-1,r8g.2xlarge,spot,NA,0.147797,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340225 +AWS,ap-south-1,r8g.48xlarge,on_demand,NA,7.92768,USD,AWS Pricing API,2025-11-30T08:56:51.144714 +AWS,ap-south-1,r8g.48xlarge,reserved_1y,all_upfront,6.659216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:22.726294 +AWS,ap-south-1,r8g.48xlarge,reserved_1y,no_upfront,6.659216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:02.715864 +AWS,ap-south-1,r8g.48xlarge,reserved_1y,partial_upfront,6.659216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:49.410848 +AWS,ap-south-1,r8g.48xlarge,reserved_3y,all_upfront,3.329612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:28.293691 +AWS,ap-south-1,r8g.48xlarge,reserved_3y,no_upfront,3.329612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:04.167469 +AWS,ap-south-1,r8g.48xlarge,reserved_3y,partial_upfront,3.329612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:01.473076 +AWS,ap-south-1,r8g.48xlarge,spot,NA,1.465526,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339827 +AWS,ap-south-1,r8g.4xlarge,on_demand,NA,0.66064,USD,AWS Pricing API,2025-11-30T08:57:09.653660 +AWS,ap-south-1,r8g.4xlarge,reserved_1y,all_upfront,0.413485,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:41.150330 +AWS,ap-south-1,r8g.4xlarge,reserved_1y,no_upfront,0.413485,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:21.312933 +AWS,ap-south-1,r8g.4xlarge,reserved_1y,partial_upfront,0.413485,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:07.844766 +AWS,ap-south-1,r8g.4xlarge,reserved_3y,all_upfront,0.275662,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:46.357667 +AWS,ap-south-1,r8g.4xlarge,reserved_3y,no_upfront,0.275662,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:22.905361 +AWS,ap-south-1,r8g.4xlarge,reserved_3y,partial_upfront,0.275662,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:19.813517 +AWS,ap-south-1,r8g.4xlarge,spot,NA,0.326669,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340286 +AWS,ap-south-1,r8g.8xlarge,on_demand,NA,1.32128,USD,AWS Pricing API,2025-11-30T08:56:30.196426 +AWS,ap-south-1,r8g.8xlarge,reserved_1y,all_upfront,0.82696,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:01.947016 +AWS,ap-south-1,r8g.8xlarge,reserved_1y,no_upfront,0.82696,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:41.641603 +AWS,ap-south-1,r8g.8xlarge,reserved_1y,partial_upfront,0.82696,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:28.623785 +AWS,ap-south-1,r8g.8xlarge,reserved_3y,all_upfront,0.551313,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:07.900119 +AWS,ap-south-1,r8g.8xlarge,reserved_3y,no_upfront,0.551313,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:43.007039 +AWS,ap-south-1,r8g.8xlarge,reserved_3y,partial_upfront,0.551313,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:40.796649 +AWS,ap-south-1,r8g.8xlarge,spot,NA,0.567137,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339366 +AWS,ap-south-1,r8g.large,on_demand,NA,0.08258,USD,AWS Pricing API,2025-11-30T08:57:08.122903 +AWS,ap-south-1,r8g.large,reserved_1y,all_upfront,0.051639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:39.641795 +AWS,ap-south-1,r8g.large,reserved_1y,no_upfront,0.051639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:19.816622 +AWS,ap-south-1,r8g.large,reserved_1y,partial_upfront,0.051639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:33:06.350742 +AWS,ap-south-1,r8g.large,reserved_3y,all_upfront,0.03444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:44.894453 +AWS,ap-south-1,r8g.large,reserved_3y,no_upfront,0.03444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:21.379522 +AWS,ap-south-1,r8g.large,reserved_3y,partial_upfront,0.03444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:18.320043 +AWS,ap-south-1,r8g.large,spot,NA,0.029797,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.340257 +AWS,ap-south-1,r8g.xlarge,on_demand,NA,0.16516,USD,AWS Pricing API,2025-11-30T08:56:50.733940 +AWS,ap-south-1,r8g.xlarge,reserved_1y,all_upfront,0.103402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:54:22.317226 +AWS,ap-south-1,r8g.xlarge,reserved_1y,no_upfront,0.103402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:11:02.300554 +AWS,ap-south-1,r8g.xlarge,reserved_1y,partial_upfront,0.103402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:49.009483 +AWS,ap-south-1,r8g.xlarge,reserved_3y,all_upfront,0.068927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:27.898345 +AWS,ap-south-1,r8g.xlarge,reserved_3y,no_upfront,0.068927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:16:03.752115 +AWS,ap-south-1,r8g.xlarge,reserved_3y,partial_upfront,0.068927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:38:01.072177 +AWS,ap-south-1,r8g.xlarge,spot,NA,0.07913,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339823 +AWS,ap-south-1,z1d.12xlarge,on_demand,NA,4.704,USD,AWS Pricing API,2025-11-30T08:56:20.094513 +AWS,ap-south-1,z1d.12xlarge,reserved_1y,all_upfront,3.405,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:51.789154 +AWS,ap-south-1,z1d.12xlarge,reserved_1y,no_upfront,3.405,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:31.368739 +AWS,ap-south-1,z1d.12xlarge,reserved_1y,partial_upfront,3.405,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:18.577532 +AWS,ap-south-1,z1d.12xlarge,reserved_3y,all_upfront,3.405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:57.890241 +AWS,ap-south-1,z1d.12xlarge,reserved_3y,no_upfront,3.405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:32.615027 +AWS,ap-south-1,z1d.12xlarge,reserved_3y,partial_upfront,3.405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:30.726543 +AWS,ap-south-1,z1d.12xlarge,spot,NA,1.076207,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339208 +AWS,ap-south-1,z1d.2xlarge,on_demand,NA,0.784,USD,AWS Pricing API,2025-11-30T08:56:23.455580 +AWS,ap-south-1,z1d.2xlarge,reserved_1y,all_upfront,0.54032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:55.183419 +AWS,ap-south-1,z1d.2xlarge,reserved_1y,no_upfront,0.54032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:34.853597 +AWS,ap-south-1,z1d.2xlarge,reserved_1y,partial_upfront,0.54032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:21.924572 +AWS,ap-south-1,z1d.2xlarge,reserved_3y,all_upfront,0.360107,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:01.218281 +AWS,ap-south-1,z1d.2xlarge,reserved_3y,no_upfront,0.360107,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:36.039641 +AWS,ap-south-1,z1d.2xlarge,reserved_3y,partial_upfront,0.360107,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:34.095609 +AWS,ap-south-1,z1d.2xlarge,spot,NA,0.31251,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339238 +AWS,ap-south-1,z1d.3xlarge,on_demand,NA,1.176,USD,AWS Pricing API,2025-11-30T08:56:22.377203 +AWS,ap-south-1,z1d.3xlarge,reserved_1y,all_upfront,0.691438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:54.095109 +AWS,ap-south-1,z1d.3xlarge,reserved_1y,no_upfront,0.691438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:33.761137 +AWS,ap-south-1,z1d.3xlarge,reserved_1y,partial_upfront,0.691438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:20.853231 +AWS,ap-south-1,z1d.3xlarge,reserved_3y,all_upfront,0.230479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:00.158273 +AWS,ap-south-1,z1d.3xlarge,reserved_3y,no_upfront,0.230479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:34.939197 +AWS,ap-south-1,z1d.3xlarge,reserved_3y,partial_upfront,0.230479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:33.017095 +AWS,ap-south-1,z1d.3xlarge,spot,NA,0.412061,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339233 +AWS,ap-south-1,z1d.6xlarge,on_demand,NA,2.352,USD,AWS Pricing API,2025-11-30T08:56:22.513801 +AWS,ap-south-1,z1d.6xlarge,reserved_1y,all_upfront,1.703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:54.229262 +AWS,ap-south-1,z1d.6xlarge,reserved_1y,no_upfront,1.703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:33.901841 +AWS,ap-south-1,z1d.6xlarge,reserved_1y,partial_upfront,1.703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:20.985502 +AWS,ap-south-1,z1d.6xlarge,reserved_3y,all_upfront,1.703,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:00.290838 +AWS,ap-south-1,z1d.6xlarge,reserved_3y,no_upfront,1.703,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:35.078280 +AWS,ap-south-1,z1d.6xlarge,reserved_3y,partial_upfront,1.703,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:33.152269 +AWS,ap-south-1,z1d.6xlarge,spot,NA,0.64576,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339221 +AWS,ap-south-1,z1d.large,on_demand,NA,0.196,USD,AWS Pricing API,2025-11-30T08:56:22.784346 +AWS,ap-south-1,z1d.large,reserved_1y,all_upfront,0.11779,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:54.501596 +AWS,ap-south-1,z1d.large,reserved_1y,no_upfront,0.11779,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:34.175433 +AWS,ap-south-1,z1d.large,reserved_1y,partial_upfront,0.11779,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:21.256343 +AWS,ap-south-1,z1d.large,reserved_3y,all_upfront,0.078597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:00.553416 +AWS,ap-south-1,z1d.large,reserved_3y,no_upfront,0.078597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:35.350279 +AWS,ap-south-1,z1d.large,reserved_3y,partial_upfront,0.078597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:33.419100 +AWS,ap-south-1,z1d.large,spot,NA,0.051065,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339246 +AWS,ap-south-1,z1d.xlarge,on_demand,NA,0.392,USD,AWS Pricing API,2025-11-30T08:56:23.732467 +AWS,ap-south-1,z1d.xlarge,reserved_1y,all_upfront,0.23558,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:55.452877 +AWS,ap-south-1,z1d.xlarge,reserved_1y,no_upfront,0.23558,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:35.127760 +AWS,ap-south-1,z1d.xlarge,reserved_1y,partial_upfront,0.23558,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:22.196661 +AWS,ap-south-1,z1d.xlarge,reserved_3y,all_upfront,0.157193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:59:01.486418 +AWS,ap-south-1,z1d.xlarge,reserved_3y,no_upfront,0.157193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:36.312793 +AWS,ap-south-1,z1d.xlarge,reserved_3y,partial_upfront,0.157193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:34.361619 +AWS,ap-south-1,z1d.xlarge,spot,NA,0.118395,USD,AWS EC2 API (90-day avg),2025-11-30T09:28:46.339263 +AWS,ap-southeast-1,c5.12xlarge,on_demand,NA,2.352,USD,AWS Pricing API,2025-11-30T08:59:46.071048 +AWS,ap-southeast-1,c5.12xlarge,reserved_1y,all_upfront,1.881187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:17.266024 +AWS,ap-southeast-1,c5.12xlarge,reserved_1y,no_upfront,1.881187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:58.773347 +AWS,ap-southeast-1,c5.12xlarge,reserved_1y,partial_upfront,1.881187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:43.256762 +AWS,ap-southeast-1,c5.12xlarge,reserved_3y,all_upfront,0.940396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:19.745051 +AWS,ap-southeast-1,c5.12xlarge,reserved_3y,no_upfront,0.940396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:01.750337 +AWS,ap-southeast-1,c5.12xlarge,reserved_3y,partial_upfront,0.940396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:54.709273 +AWS,ap-southeast-1,c5.12xlarge,spot,NA,0.92373,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921215 +AWS,ap-southeast-1,c5.18xlarge,on_demand,NA,3.528,USD,AWS Pricing API,2025-11-30T08:59:54.568195 +AWS,ap-southeast-1,c5.18xlarge,reserved_1y,all_upfront,4.968836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:25.640328 +AWS,ap-southeast-1,c5.18xlarge,reserved_1y,no_upfront,4.968836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:07.259885 +AWS,ap-southeast-1,c5.18xlarge,reserved_1y,partial_upfront,4.968836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:51.662535 +AWS,ap-southeast-1,c5.18xlarge,reserved_3y,all_upfront,1.656279,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:27.943439 +AWS,ap-southeast-1,c5.18xlarge,reserved_3y,no_upfront,1.656279,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:10.297712 +AWS,ap-southeast-1,c5.18xlarge,reserved_3y,partial_upfront,1.656279,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:03.081889 +AWS,ap-southeast-1,c5.18xlarge,spot,NA,1.200242,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921431 +AWS,ap-southeast-1,c5.24xlarge,on_demand,NA,4.704,USD,AWS Pricing API,2025-11-30T08:58:58.849700 +AWS,ap-southeast-1,c5.24xlarge,reserved_1y,all_upfront,3.403653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:30.261405 +AWS,ap-southeast-1,c5.24xlarge,reserved_1y,no_upfront,3.403653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:11.475163 +AWS,ap-southeast-1,c5.24xlarge,reserved_1y,partial_upfront,3.403653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:56.487200 +AWS,ap-southeast-1,c5.24xlarge,reserved_3y,all_upfront,1.134551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:33.729055 +AWS,ap-southeast-1,c5.24xlarge,reserved_3y,no_upfront,1.134551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:14.081103 +AWS,ap-southeast-1,c5.24xlarge,reserved_3y,partial_upfront,1.134551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:08.250945 +AWS,ap-southeast-1,c5.24xlarge,spot,NA,1.498178,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919968 +AWS,ap-southeast-1,c5.4xlarge,on_demand,NA,0.784,USD,AWS Pricing API,2025-11-30T08:59:38.843239 +AWS,ap-southeast-1,c5.4xlarge,reserved_1y,all_upfront,0.339,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:10.106853 +AWS,ap-southeast-1,c5.4xlarge,reserved_1y,no_upfront,0.339,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:51.578395 +AWS,ap-southeast-1,c5.4xlarge,reserved_1y,partial_upfront,0.339,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:35.989968 +AWS,ap-southeast-1,c5.4xlarge,reserved_3y,all_upfront,0.339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:12.625885 +AWS,ap-southeast-1,c5.4xlarge,reserved_3y,no_upfront,0.339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:54.445762 +AWS,ap-southeast-1,c5.4xlarge,reserved_3y,partial_upfront,0.339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:47.583242 +AWS,ap-southeast-1,c5.4xlarge,spot,NA,0.319224,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921033 +AWS,ap-southeast-1,c5.9xlarge,on_demand,NA,1.764,USD,AWS Pricing API,2025-11-30T08:58:58.160465 +AWS,ap-southeast-1,c5.9xlarge,reserved_1y,all_upfront,1.302256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:29.585989 +AWS,ap-southeast-1,c5.9xlarge,reserved_1y,no_upfront,1.302256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:10.791223 +AWS,ap-southeast-1,c5.9xlarge,reserved_1y,partial_upfront,1.302256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:55.809271 +AWS,ap-southeast-1,c5.9xlarge,reserved_3y,all_upfront,0.868085,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:33.063366 +AWS,ap-southeast-1,c5.9xlarge,reserved_3y,no_upfront,0.868085,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:13.392034 +AWS,ap-southeast-1,c5.9xlarge,reserved_3y,partial_upfront,0.868085,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:07.564291 +AWS,ap-southeast-1,c5.9xlarge,spot,NA,0.754452,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919991 +AWS,ap-southeast-1,c5a.12xlarge,on_demand,NA,2.112,USD,AWS Pricing API,2025-11-30T08:59:55.105411 +AWS,ap-southeast-1,c5a.12xlarge,reserved_1y,all_upfront,1.241895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:26.193827 +AWS,ap-southeast-1,c5a.12xlarge,reserved_1y,no_upfront,1.241895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:07.805211 +AWS,ap-southeast-1,c5a.12xlarge,reserved_1y,partial_upfront,1.241895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:52.194877 +AWS,ap-southeast-1,c5a.12xlarge,reserved_3y,all_upfront,0.413965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:28.481129 +AWS,ap-southeast-1,c5a.12xlarge,reserved_3y,no_upfront,0.413965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:10.845258 +AWS,ap-southeast-1,c5a.12xlarge,reserved_3y,partial_upfront,0.413965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:03.614766 +AWS,ap-southeast-1,c5a.12xlarge,spot,NA,1.121853,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921419 +AWS,ap-southeast-1,c5a.16xlarge,on_demand,NA,2.816,USD,AWS Pricing API,2025-11-30T08:59:14.205919 +AWS,ap-southeast-1,c5a.16xlarge,reserved_1y,all_upfront,2.075671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:45.680287 +AWS,ap-southeast-1,c5a.16xlarge,reserved_1y,no_upfront,2.075671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:26.937058 +AWS,ap-southeast-1,c5a.16xlarge,reserved_1y,partial_upfront,2.075671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:11.801909 +AWS,ap-southeast-1,c5a.16xlarge,reserved_3y,all_upfront,1.38389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:48.782635 +AWS,ap-southeast-1,c5a.16xlarge,reserved_3y,no_upfront,1.38389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:29.637187 +AWS,ap-southeast-1,c5a.16xlarge,reserved_3y,partial_upfront,1.38389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:23.439676 +AWS,ap-southeast-1,c5a.16xlarge,spot,NA,1.055589,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920385 +AWS,ap-southeast-1,c5a.24xlarge,on_demand,NA,4.224,USD,AWS Pricing API,2025-11-30T09:00:01.352204 +AWS,ap-southeast-1,c5a.24xlarge,reserved_1y,all_upfront,4.764726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:32.413245 +AWS,ap-southeast-1,c5a.24xlarge,reserved_1y,no_upfront,4.764726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:14.079220 +AWS,ap-southeast-1,c5a.24xlarge,reserved_1y,partial_upfront,4.764726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:58.375053 +AWS,ap-southeast-1,c5a.24xlarge,reserved_3y,all_upfront,1.588242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:34.584441 +AWS,ap-southeast-1,c5a.24xlarge,reserved_3y,no_upfront,1.588242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:17.202645 +AWS,ap-southeast-1,c5a.24xlarge,reserved_3y,partial_upfront,1.588242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:09.805737 +AWS,ap-southeast-1,c5a.24xlarge,spot,NA,1.538927,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921578 +AWS,ap-southeast-1,c5a.2xlarge,on_demand,NA,0.352,USD,AWS Pricing API,2025-11-30T08:59:44.296585 +AWS,ap-southeast-1,c5a.2xlarge,reserved_1y,all_upfront,0.25968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:15.502529 +AWS,ap-southeast-1,c5a.2xlarge,reserved_1y,no_upfront,0.25968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:57.005537 +AWS,ap-southeast-1,c5a.2xlarge,reserved_1y,partial_upfront,0.25968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:41.404645 +AWS,ap-southeast-1,c5a.2xlarge,reserved_3y,all_upfront,0.173227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:18.020592 +AWS,ap-southeast-1,c5a.2xlarge,reserved_3y,no_upfront,0.173227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:59.956682 +AWS,ap-southeast-1,c5a.2xlarge,reserved_3y,partial_upfront,0.173227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:52.943247 +AWS,ap-southeast-1,c5a.2xlarge,spot,NA,0.169152,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921174 +AWS,ap-southeast-1,c5a.4xlarge,on_demand,NA,0.704,USD,AWS Pricing API,2025-11-30T08:59:16.782933 +AWS,ap-southeast-1,c5a.4xlarge,reserved_1y,all_upfront,0.518475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:48.245745 +AWS,ap-southeast-1,c5a.4xlarge,reserved_1y,no_upfront,0.518475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:29.559070 +AWS,ap-southeast-1,c5a.4xlarge,reserved_1y,partial_upfront,0.518475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:14.378958 +AWS,ap-southeast-1,c5a.4xlarge,reserved_3y,all_upfront,0.345492,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:51.307451 +AWS,ap-southeast-1,c5a.4xlarge,reserved_3y,no_upfront,0.345492,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:32.275708 +AWS,ap-southeast-1,c5a.4xlarge,reserved_3y,partial_upfront,0.345492,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:25.988961 +AWS,ap-southeast-1,c5a.4xlarge,spot,NA,0.30662,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920469 +AWS,ap-southeast-1,c5a.8xlarge,on_demand,NA,1.408,USD,AWS Pricing API,2025-11-30T08:59:09.447105 +AWS,ap-southeast-1,c5a.8xlarge,reserved_1y,all_upfront,0.844374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:40.933248 +AWS,ap-southeast-1,c5a.8xlarge,reserved_1y,no_upfront,0.844374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:22.166856 +AWS,ap-southeast-1,c5a.8xlarge,reserved_1y,partial_upfront,0.844374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:07.058851 +AWS,ap-southeast-1,c5a.8xlarge,reserved_3y,all_upfront,0.562791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:44.128371 +AWS,ap-southeast-1,c5a.8xlarge,reserved_3y,no_upfront,0.562791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:24.807207 +AWS,ap-southeast-1,c5a.8xlarge,reserved_3y,partial_upfront,0.562791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:18.737848 +AWS,ap-southeast-1,c5a.8xlarge,spot,NA,0.649618,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920241 +AWS,ap-southeast-1,c5a.xlarge,on_demand,NA,0.176,USD,AWS Pricing API,2025-11-30T08:59:00.324611 +AWS,ap-southeast-1,c5a.xlarge,reserved_1y,all_upfront,0.076,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:31.753171 +AWS,ap-southeast-1,c5a.xlarge,reserved_1y,no_upfront,0.076,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:12.971787 +AWS,ap-southeast-1,c5a.xlarge,reserved_1y,partial_upfront,0.076,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:57.967675 +AWS,ap-southeast-1,c5a.xlarge,reserved_3y,all_upfront,0.076,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:35.185006 +AWS,ap-southeast-1,c5a.xlarge,reserved_3y,no_upfront,0.076,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:15.587354 +AWS,ap-southeast-1,c5a.xlarge,reserved_3y,partial_upfront,0.076,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:09.726778 +AWS,ap-southeast-1,c5a.xlarge,spot,NA,0.095136,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919996 +AWS,ap-southeast-1,c5ad.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T09:00:05.757815 +AWS,ap-southeast-1,c5ad.12xlarge,reserved_1y,all_upfront,2.734247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:36.787960 +AWS,ap-southeast-1,c5ad.12xlarge,reserved_1y,no_upfront,2.734247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:18.429311 +AWS,ap-southeast-1,c5ad.12xlarge,reserved_1y,partial_upfront,2.734247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:02.720459 +AWS,ap-southeast-1,c5ad.12xlarge,reserved_3y,all_upfront,0.911416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:38.812325 +AWS,ap-southeast-1,c5ad.12xlarge,reserved_3y,no_upfront,0.911416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:21.615578 +AWS,ap-southeast-1,c5ad.12xlarge,reserved_3y,partial_upfront,0.911416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:14.104730 +AWS,ap-southeast-1,c5ad.12xlarge,spot,NA,1.225341,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921696 +AWS,ap-southeast-1,c5ad.16xlarge,on_demand,NA,3.232,USD,AWS Pricing API,2025-11-30T08:59:57.403648 +AWS,ap-southeast-1,c5ad.16xlarge,reserved_1y,all_upfront,1.396,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:28.480913 +AWS,ap-southeast-1,c5ad.16xlarge,reserved_1y,no_upfront,1.396,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:10.123659 +AWS,ap-southeast-1,c5ad.16xlarge,reserved_1y,partial_upfront,1.396,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:54.474402 +AWS,ap-southeast-1,c5ad.16xlarge,reserved_3y,all_upfront,1.396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:30.740669 +AWS,ap-southeast-1,c5ad.16xlarge,reserved_3y,no_upfront,1.396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:13.171675 +AWS,ap-southeast-1,c5ad.16xlarge,reserved_3y,partial_upfront,1.396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:05.896867 +AWS,ap-southeast-1,c5ad.16xlarge,spot,NA,1.241014,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921497 +AWS,ap-southeast-1,c5ad.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T08:59:16.917536 +AWS,ap-southeast-1,c5ad.24xlarge,reserved_1y,all_upfront,2.850571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:48.379223 +AWS,ap-southeast-1,c5ad.24xlarge,reserved_1y,no_upfront,2.850571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:29.694713 +AWS,ap-southeast-1,c5ad.24xlarge,reserved_1y,partial_upfront,2.850571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:14.512830 +AWS,ap-southeast-1,c5ad.24xlarge,reserved_3y,all_upfront,0.95019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:51.440692 +AWS,ap-southeast-1,c5ad.24xlarge,reserved_3y,no_upfront,0.95019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:32.412010 +AWS,ap-southeast-1,c5ad.24xlarge,reserved_3y,partial_upfront,0.95019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:26.124801 +AWS,ap-southeast-1,c5ad.24xlarge,spot,NA,1.612454,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920477 +AWS,ap-southeast-1,c5ad.2xlarge,on_demand,NA,0.404,USD,AWS Pricing API,2025-11-30T08:59:06.360527 +AWS,ap-southeast-1,c5ad.2xlarge,reserved_1y,all_upfront,0.290183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:37.808125 +AWS,ap-southeast-1,c5ad.2xlarge,reserved_1y,no_upfront,0.290183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:18.982361 +AWS,ap-southeast-1,c5ad.2xlarge,reserved_1y,partial_upfront,0.290183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:03.952075 +AWS,ap-southeast-1,c5ad.2xlarge,reserved_3y,all_upfront,0.096728,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:41.077612 +AWS,ap-southeast-1,c5ad.2xlarge,reserved_3y,no_upfront,0.096728,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:21.623118 +AWS,ap-southeast-1,c5ad.2xlarge,reserved_3y,partial_upfront,0.096728,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:15.617941 +AWS,ap-southeast-1,c5ad.2xlarge,spot,NA,0.218929,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920190 +AWS,ap-southeast-1,c5ad.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T09:00:06.296597 +AWS,ap-southeast-1,c5ad.4xlarge,reserved_1y,all_upfront,0.646817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:37.324244 +AWS,ap-southeast-1,c5ad.4xlarge,reserved_1y,no_upfront,0.646817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:18.970803 +AWS,ap-southeast-1,c5ad.4xlarge,reserved_1y,partial_upfront,0.646817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:03.255940 +AWS,ap-southeast-1,c5ad.4xlarge,reserved_3y,all_upfront,0.323606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:39.342492 +AWS,ap-southeast-1,c5ad.4xlarge,reserved_3y,no_upfront,0.323606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:22.169933 +AWS,ap-southeast-1,c5ad.4xlarge,reserved_3y,partial_upfront,0.323606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:14.638267 +AWS,ap-southeast-1,c5ad.4xlarge,spot,NA,0.359615,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921687 +AWS,ap-southeast-1,c5ad.8xlarge,on_demand,NA,1.616,USD,AWS Pricing API,2025-11-30T08:59:16.514180 +AWS,ap-southeast-1,c5ad.8xlarge,reserved_1y,all_upfront,0.950228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:47.977879 +AWS,ap-southeast-1,c5ad.8xlarge,reserved_1y,no_upfront,0.950228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:29.280154 +AWS,ap-southeast-1,c5ad.8xlarge,reserved_1y,partial_upfront,0.950228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:14.101455 +AWS,ap-southeast-1,c5ad.8xlarge,reserved_3y,all_upfront,0.316743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:51.039728 +AWS,ap-southeast-1,c5ad.8xlarge,reserved_3y,no_upfront,0.316743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:32.003705 +AWS,ap-southeast-1,c5ad.8xlarge,reserved_3y,partial_upfront,0.316743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:25.718904 +AWS,ap-southeast-1,c5ad.8xlarge,spot,NA,0.654871,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920473 +AWS,ap-southeast-1,c5ad.xlarge,on_demand,NA,0.202,USD,AWS Pricing API,2025-11-30T08:59:55.778707 +AWS,ap-southeast-1,c5ad.xlarge,reserved_1y,all_upfront,0.121616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:26.879685 +AWS,ap-southeast-1,c5ad.xlarge,reserved_1y,no_upfront,0.121616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:08.485052 +AWS,ap-southeast-1,c5ad.xlarge,reserved_1y,partial_upfront,0.121616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:52.859220 +AWS,ap-southeast-1,c5ad.xlarge,reserved_3y,all_upfront,0.081205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:29.144214 +AWS,ap-southeast-1,c5ad.xlarge,reserved_3y,no_upfront,0.081205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:11.529619 +AWS,ap-southeast-1,c5ad.xlarge,reserved_3y,partial_upfront,0.081205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:04.285909 +AWS,ap-southeast-1,c5ad.xlarge,spot,NA,0.117388,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921442 +AWS,ap-southeast-1,c5d.12xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T09:00:07.378481 +AWS,ap-southeast-1,c5d.12xlarge,reserved_1y,all_upfront,1.580594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:38.415748 +AWS,ap-southeast-1,c5d.12xlarge,reserved_1y,no_upfront,1.580594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:20.061289 +AWS,ap-southeast-1,c5d.12xlarge,reserved_1y,partial_upfront,1.580594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:04.353036 +AWS,ap-southeast-1,c5d.12xlarge,reserved_3y,all_upfront,0.526865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:40.402099 +AWS,ap-southeast-1,c5d.12xlarge,reserved_3y,no_upfront,0.526865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:23.271647 +AWS,ap-southeast-1,c5d.12xlarge,reserved_3y,partial_upfront,0.526865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:15.729489 +AWS,ap-southeast-1,c5d.12xlarge,spot,NA,1.120528,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921712 +AWS,ap-southeast-1,c5d.18xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:59:30.591791 +AWS,ap-southeast-1,c5d.18xlarge,reserved_1y,all_upfront,2.419589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:01.968676 +AWS,ap-southeast-1,c5d.18xlarge,reserved_1y,no_upfront,2.419589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:43.296730 +AWS,ap-southeast-1,c5d.18xlarge,reserved_1y,partial_upfront,2.419589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:27.894533 +AWS,ap-southeast-1,c5d.18xlarge,reserved_3y,all_upfront,1.613196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:04.643027 +AWS,ap-southeast-1,c5d.18xlarge,reserved_3y,no_upfront,1.613196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:46.127655 +AWS,ap-southeast-1,c5d.18xlarge,reserved_3y,partial_upfront,1.613196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:39.447030 +AWS,ap-southeast-1,c5d.18xlarge,spot,NA,1.393745,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920805 +AWS,ap-southeast-1,c5d.24xlarge,on_demand,NA,5.376,USD,AWS Pricing API,2025-11-30T08:59:03.065531 +AWS,ap-southeast-1,c5d.24xlarge,reserved_1y,all_upfront,6.064155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:34.539766 +AWS,ap-southeast-1,c5d.24xlarge,reserved_1y,no_upfront,6.064155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:15.708525 +AWS,ap-southeast-1,c5d.24xlarge,reserved_1y,partial_upfront,6.064155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:00.679822 +AWS,ap-southeast-1,c5d.24xlarge,reserved_3y,all_upfront,2.021385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:37.853970 +AWS,ap-southeast-1,c5d.24xlarge,reserved_3y,no_upfront,2.021385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:18.333310 +AWS,ap-southeast-1,c5d.24xlarge,reserved_3y,partial_upfront,2.021385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:12.405820 +AWS,ap-southeast-1,c5d.24xlarge,spot,NA,1.875256,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920069 +AWS,ap-southeast-1,c5d.2xlarge,on_demand,NA,0.448,USD,AWS Pricing API,2025-11-30T08:59:51.078175 +AWS,ap-southeast-1,c5d.2xlarge,reserved_1y,all_upfront,0.62637,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:22.109556 +AWS,ap-southeast-1,c5d.2xlarge,reserved_1y,no_upfront,0.62637,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:03.726485 +AWS,ap-southeast-1,c5d.2xlarge,reserved_1y,partial_upfront,0.62637,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:48.158716 +AWS,ap-southeast-1,c5d.2xlarge,reserved_3y,all_upfront,0.20879,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:24.527056 +AWS,ap-southeast-1,c5d.2xlarge,reserved_3y,no_upfront,0.20879,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:06.735809 +AWS,ap-southeast-1,c5d.2xlarge,reserved_3y,partial_upfront,0.20879,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:59.569596 +AWS,ap-southeast-1,c5d.2xlarge,spot,NA,0.215756,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921364 +AWS,ap-southeast-1,c5d.4xlarge,on_demand,NA,0.896,USD,AWS Pricing API,2025-11-30T08:59:10.675592 +AWS,ap-southeast-1,c5d.4xlarge,reserved_1y,all_upfront,0.387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:42.151086 +AWS,ap-southeast-1,c5d.4xlarge,reserved_1y,no_upfront,0.387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:23.389789 +AWS,ap-southeast-1,c5d.4xlarge,reserved_1y,partial_upfront,0.387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:08.289517 +AWS,ap-southeast-1,c5d.4xlarge,reserved_3y,all_upfront,0.387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:45.323157 +AWS,ap-southeast-1,c5d.4xlarge,reserved_3y,no_upfront,0.387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:26.043937 +AWS,ap-southeast-1,c5d.4xlarge,reserved_3y,partial_upfront,0.387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:19.949480 +AWS,ap-southeast-1,c5d.4xlarge,spot,NA,0.442508,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920287 +AWS,ap-southeast-1,c5d.9xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:59:40.480721 +AWS,ap-southeast-1,c5d.9xlarge,reserved_1y,all_upfront,1.185388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:11.735387 +AWS,ap-southeast-1,c5d.9xlarge,reserved_1y,no_upfront,1.185388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:53.204420 +AWS,ap-southeast-1,c5d.9xlarge,reserved_1y,partial_upfront,1.185388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:37.610867 +AWS,ap-southeast-1,c5d.9xlarge,reserved_3y,all_upfront,0.395129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:14.290934 +AWS,ap-southeast-1,c5d.9xlarge,reserved_3y,no_upfront,0.395129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:56.099464 +AWS,ap-southeast-1,c5d.9xlarge,reserved_3y,partial_upfront,0.395129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:49.193966 +AWS,ap-southeast-1,c5d.9xlarge,spot,NA,0.872057,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921052 +AWS,ap-southeast-1,c5d.xlarge,on_demand,NA,0.224,USD,AWS Pricing API,2025-11-30T08:59:36.098178 +AWS,ap-southeast-1,c5d.xlarge,reserved_1y,all_upfront,0.134237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:07.396623 +AWS,ap-southeast-1,c5d.xlarge,reserved_1y,no_upfront,0.134237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:48.825278 +AWS,ap-southeast-1,c5d.xlarge,reserved_1y,partial_upfront,0.134237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:33.283700 +AWS,ap-southeast-1,c5d.xlarge,reserved_3y,all_upfront,0.089412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:09.950863 +AWS,ap-southeast-1,c5d.xlarge,reserved_3y,no_upfront,0.089412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:51.690289 +AWS,ap-southeast-1,c5d.xlarge,reserved_3y,partial_upfront,0.089412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:44.872905 +AWS,ap-southeast-1,c5d.xlarge,spot,NA,0.111741,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920956 +AWS,ap-southeast-1,c5n.18xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:59:56.593155 +AWS,ap-southeast-1,c5n.18xlarge,reserved_1y,all_upfront,3.229452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:27.684716 +AWS,ap-southeast-1,c5n.18xlarge,reserved_1y,no_upfront,3.229452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:09.307480 +AWS,ap-southeast-1,c5n.18xlarge,reserved_1y,partial_upfront,3.229452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:53.666272 +AWS,ap-southeast-1,c5n.18xlarge,reserved_3y,all_upfront,1.076484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:29.951820 +AWS,ap-southeast-1,c5n.18xlarge,reserved_3y,no_upfront,1.076484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:12.357665 +AWS,ap-southeast-1,c5n.18xlarge,reserved_3y,partial_upfront,1.076484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:05.085452 +AWS,ap-southeast-1,c5n.18xlarge,spot,NA,1.625737,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921458 +AWS,ap-southeast-1,c5n.2xlarge,on_demand,NA,0.496,USD,AWS Pricing API,2025-11-30T09:00:06.842753 +AWS,ap-southeast-1,c5n.2xlarge,reserved_1y,all_upfront,0.358493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:37.869738 +AWS,ap-southeast-1,c5n.2xlarge,reserved_1y,no_upfront,0.358493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:19.517864 +AWS,ap-southeast-1,c5n.2xlarge,reserved_1y,partial_upfront,0.358493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:03.810037 +AWS,ap-southeast-1,c5n.2xlarge,reserved_3y,all_upfront,0.179498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:39.871486 +AWS,ap-southeast-1,c5n.2xlarge,reserved_3y,no_upfront,0.179498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:22.725703 +AWS,ap-southeast-1,c5n.2xlarge,reserved_3y,partial_upfront,0.179498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:15.184951 +AWS,ap-southeast-1,c5n.2xlarge,spot,NA,0.232677,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921708 +AWS,ap-southeast-1,c5n.4xlarge,on_demand,NA,0.992,USD,AWS Pricing API,2025-11-30T08:59:42.920755 +AWS,ap-southeast-1,c5n.4xlarge,reserved_1y,all_upfront,0.583333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:14.160811 +AWS,ap-southeast-1,c5n.4xlarge,reserved_1y,no_upfront,0.583333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:55.646641 +AWS,ap-southeast-1,c5n.4xlarge,reserved_1y,partial_upfront,0.583333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:40.054393 +AWS,ap-southeast-1,c5n.4xlarge,reserved_3y,all_upfront,0.194444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:16.692213 +AWS,ap-southeast-1,c5n.4xlarge,reserved_3y,no_upfront,0.194444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:58.579351 +AWS,ap-southeast-1,c5n.4xlarge,reserved_3y,partial_upfront,0.194444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:51.596178 +AWS,ap-southeast-1,c5n.4xlarge,spot,NA,0.501648,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921119 +AWS,ap-southeast-1,c5n.9xlarge,on_demand,NA,2.232,USD,AWS Pricing API,2025-11-30T08:59:56.458480 +AWS,ap-southeast-1,c5n.9xlarge,reserved_1y,all_upfront,1.611333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:27.549490 +AWS,ap-southeast-1,c5n.9xlarge,reserved_1y,no_upfront,1.611333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:09.168520 +AWS,ap-southeast-1,c5n.9xlarge,reserved_1y,partial_upfront,1.611333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:53.531138 +AWS,ap-southeast-1,c5n.9xlarge,reserved_3y,all_upfront,0.805778,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:29.807019 +AWS,ap-southeast-1,c5n.9xlarge,reserved_3y,no_upfront,0.805778,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:12.220603 +AWS,ap-southeast-1,c5n.9xlarge,reserved_3y,partial_upfront,0.805778,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:04.952022 +AWS,ap-southeast-1,c5n.9xlarge,spot,NA,1.037768,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921469 +AWS,ap-southeast-1,c5n.metal,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:59:04.731082 +AWS,ap-southeast-1,c5n.metal,reserved_1y,all_upfront,3.295717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:36.187095 +AWS,ap-southeast-1,c5n.metal,reserved_1y,no_upfront,3.295717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:17.338296 +AWS,ap-southeast-1,c5n.metal,reserved_1y,partial_upfront,3.295717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:02.330375 +AWS,ap-southeast-1,c5n.metal,reserved_3y,all_upfront,2.197239,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:39.473320 +AWS,ap-southeast-1,c5n.metal,reserved_3y,no_upfront,2.197239,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:19.979889 +AWS,ap-southeast-1,c5n.metal,reserved_3y,partial_upfront,2.197239,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:14.009256 +AWS,ap-southeast-1,c5n.metal,spot,NA,1.455134,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920108 +AWS,ap-southeast-1,c5n.xlarge,on_demand,NA,0.248,USD,AWS Pricing API,2025-11-30T08:59:58.486133 +AWS,ap-southeast-1,c5n.xlarge,reserved_1y,all_upfront,0.148429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:29.589040 +AWS,ap-southeast-1,c5n.xlarge,reserved_1y,no_upfront,0.148429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:11.213670 +AWS,ap-southeast-1,c5n.xlarge,reserved_1y,partial_upfront,0.148429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:55.550387 +AWS,ap-southeast-1,c5n.xlarge,reserved_3y,all_upfront,0.09881,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:31.807457 +AWS,ap-southeast-1,c5n.xlarge,reserved_3y,no_upfront,0.09881,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:14.277180 +AWS,ap-southeast-1,c5n.xlarge,reserved_3y,partial_upfront,0.09881,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:06.974476 +AWS,ap-southeast-1,c5n.xlarge,spot,NA,0.135319,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921547 +AWS,ap-southeast-1,c6g.12xlarge,on_demand,NA,1.8816,USD,AWS Pricing API,2025-11-30T08:59:09.987366 +AWS,ap-southeast-1,c6g.12xlarge,reserved_1y,all_upfront,1.4553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:41.476578 +AWS,ap-southeast-1,c6g.12xlarge,reserved_1y,no_upfront,1.4553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:22.710970 +AWS,ap-southeast-1,c6g.12xlarge,reserved_1y,partial_upfront,1.4553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:07.599190 +AWS,ap-southeast-1,c6g.12xlarge,reserved_3y,all_upfront,1.4553,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:44.657608 +AWS,ap-southeast-1,c6g.12xlarge,reserved_3y,no_upfront,1.4553,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:25.357476 +AWS,ap-southeast-1,c6g.12xlarge,reserved_3y,partial_upfront,1.4553,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:19.276825 +AWS,ap-southeast-1,c6g.12xlarge,spot,NA,0.703002,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920245 +AWS,ap-southeast-1,c6g.16xlarge,on_demand,NA,2.5088,USD,AWS Pricing API,2025-11-30T08:59:28.092608 +AWS,ap-southeast-1,c6g.16xlarge,reserved_1y,all_upfront,1.475228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:59.410580 +AWS,ap-southeast-1,c6g.16xlarge,reserved_1y,no_upfront,1.475228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:40.796265 +AWS,ap-southeast-1,c6g.16xlarge,reserved_1y,partial_upfront,1.475228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:25.463143 +AWS,ap-southeast-1,c6g.16xlarge,reserved_3y,all_upfront,0.491743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:02.217150 +AWS,ap-southeast-1,c6g.16xlarge,reserved_3y,no_upfront,0.491743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:43.638288 +AWS,ap-southeast-1,c6g.16xlarge,reserved_3y,partial_upfront,0.491743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:37.017771 +AWS,ap-southeast-1,c6g.16xlarge,spot,NA,0.878864,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920737 +AWS,ap-southeast-1,c6g.2xlarge,on_demand,NA,0.3136,USD,AWS Pricing API,2025-11-30T08:59:40.334792 +AWS,ap-southeast-1,c6g.2xlarge,reserved_1y,all_upfront,0.184361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:11.596753 +AWS,ap-southeast-1,c6g.2xlarge,reserved_1y,no_upfront,0.184361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:53.069404 +AWS,ap-southeast-1,c6g.2xlarge,reserved_1y,partial_upfront,0.184361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:37.471936 +AWS,ap-southeast-1,c6g.2xlarge,reserved_3y,all_upfront,0.061454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:14.157484 +AWS,ap-southeast-1,c6g.2xlarge,reserved_3y,no_upfront,0.061454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:55.958684 +AWS,ap-southeast-1,c6g.2xlarge,reserved_3y,partial_upfront,0.061454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:49.059760 +AWS,ap-southeast-1,c6g.2xlarge,spot,NA,0.153666,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921080 +AWS,ap-southeast-1,c6g.4xlarge,on_demand,NA,0.6272,USD,AWS Pricing API,2025-11-30T08:59:59.328538 +AWS,ap-southeast-1,c6g.4xlarge,reserved_1y,all_upfront,0.45274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:30.397831 +AWS,ap-southeast-1,c6g.4xlarge,reserved_1y,no_upfront,0.45274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:12.036692 +AWS,ap-southeast-1,c6g.4xlarge,reserved_1y,partial_upfront,0.45274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:56.354923 +AWS,ap-southeast-1,c6g.4xlarge,reserved_3y,all_upfront,0.150913,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:32.598280 +AWS,ap-southeast-1,c6g.4xlarge,reserved_3y,no_upfront,0.150913,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:15.106462 +AWS,ap-southeast-1,c6g.4xlarge,reserved_3y,partial_upfront,0.150913,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:07.774940 +AWS,ap-southeast-1,c6g.4xlarge,spot,NA,0.268318,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921516 +AWS,ap-southeast-1,c6g.8xlarge,on_demand,NA,1.2544,USD,AWS Pricing API,2025-11-30T08:59:26.459769 +AWS,ap-southeast-1,c6g.8xlarge,reserved_1y,all_upfront,1.003526,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:57.786770 +AWS,ap-southeast-1,c6g.8xlarge,reserved_1y,no_upfront,1.003526,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:39.144345 +AWS,ap-southeast-1,c6g.8xlarge,reserved_1y,partial_upfront,1.003526,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:23.843814 +AWS,ap-southeast-1,c6g.8xlarge,reserved_3y,all_upfront,0.501775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:00.606710 +AWS,ap-southeast-1,c6g.8xlarge,reserved_3y,no_upfront,0.501775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:41.978822 +AWS,ap-southeast-1,c6g.8xlarge,reserved_3y,partial_upfront,0.501775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:35.406002 +AWS,ap-southeast-1,c6g.8xlarge,spot,NA,0.546373,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920706 +AWS,ap-southeast-1,c6g.xlarge,on_demand,NA,0.1568,USD,AWS Pricing API,2025-11-30T09:00:04.797011 +AWS,ap-southeast-1,c6g.xlarge,reserved_1y,all_upfront,0.092237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:35.839580 +AWS,ap-southeast-1,c6g.xlarge,reserved_1y,no_upfront,0.092237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:17.485438 +AWS,ap-southeast-1,c6g.xlarge,reserved_1y,partial_upfront,0.092237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:01.750423 +AWS,ap-southeast-1,c6g.xlarge,reserved_3y,all_upfront,0.030746,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:37.887782 +AWS,ap-southeast-1,c6g.xlarge,reserved_3y,no_upfront,0.030746,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:20.649092 +AWS,ap-southeast-1,c6g.xlarge,reserved_3y,partial_upfront,0.030746,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:13.167081 +AWS,ap-southeast-1,c6g.xlarge,spot,NA,0.077105,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921655 +AWS,ap-southeast-1,c6gd.12xlarge,on_demand,NA,2.16,USD,AWS Pricing API,2025-11-30T08:59:04.866256 +AWS,ap-southeast-1,c6gd.12xlarge,reserved_1y,all_upfront,3.034247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:36.322384 +AWS,ap-southeast-1,c6gd.12xlarge,reserved_1y,no_upfront,3.034247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:17.480050 +AWS,ap-southeast-1,c6gd.12xlarge,reserved_1y,partial_upfront,3.034247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:02.464855 +AWS,ap-southeast-1,c6gd.12xlarge,reserved_3y,all_upfront,1.011416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:39.604242 +AWS,ap-southeast-1,c6gd.12xlarge,reserved_3y,no_upfront,1.011416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:20.118977 +AWS,ap-southeast-1,c6gd.12xlarge,reserved_3y,partial_upfront,1.011416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:14.143037 +AWS,ap-southeast-1,c6gd.12xlarge,spot,NA,0.768071,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920136 +AWS,ap-southeast-1,c6gd.16xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T08:59:43.465852 +AWS,ap-southeast-1,c6gd.16xlarge,reserved_1y,all_upfront,1.728041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:14.696871 +AWS,ap-southeast-1,c6gd.16xlarge,reserved_1y,no_upfront,1.728041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:56.190940 +AWS,ap-southeast-1,c6gd.16xlarge,reserved_1y,partial_upfront,1.728041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:40.591710 +AWS,ap-southeast-1,c6gd.16xlarge,reserved_3y,all_upfront,1.152014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:17.214628 +AWS,ap-southeast-1,c6gd.16xlarge,reserved_3y,no_upfront,1.152014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:59.125436 +AWS,ap-southeast-1,c6gd.16xlarge,reserved_3y,partial_upfront,1.152014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:52.130134 +AWS,ap-southeast-1,c6gd.16xlarge,spot,NA,0.983827,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921155 +AWS,ap-southeast-1,c6gd.2xlarge,on_demand,NA,0.36,USD,AWS Pricing API,2025-11-30T08:59:53.901986 +AWS,ap-southeast-1,c6gd.2xlarge,reserved_1y,all_upfront,0.263963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:24.974004 +AWS,ap-southeast-1,c6gd.2xlarge,reserved_1y,no_upfront,0.263963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:06.582758 +AWS,ap-southeast-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.263963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:50.990020 +AWS,ap-southeast-1,c6gd.2xlarge,reserved_3y,all_upfront,0.175988,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:27.274279 +AWS,ap-southeast-1,c6gd.2xlarge,reserved_3y,no_upfront,0.175988,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:09.608062 +AWS,ap-southeast-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.175988,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:02.404727 +AWS,ap-southeast-1,c6gd.2xlarge,spot,NA,0.126846,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921407 +AWS,ap-southeast-1,c6gd.4xlarge,on_demand,NA,0.72,USD,AWS Pricing API,2025-11-30T08:59:33.172855 +AWS,ap-southeast-1,c6gd.4xlarge,reserved_1y,all_upfront,0.528041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:04.549220 +AWS,ap-southeast-1,c6gd.4xlarge,reserved_1y,no_upfront,0.528041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:45.926241 +AWS,ap-southeast-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.528041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:30.472518 +AWS,ap-southeast-1,c6gd.4xlarge,reserved_3y,all_upfront,0.352014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:07.171850 +AWS,ap-southeast-1,c6gd.4xlarge,reserved_3y,no_upfront,0.352014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:48.793176 +AWS,ap-southeast-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.352014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:42.040352 +AWS,ap-southeast-1,c6gd.4xlarge,spot,NA,0.289512,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920890 +AWS,ap-southeast-1,c6gd.8xlarge,on_demand,NA,1.44,USD,AWS Pricing API,2025-11-30T09:00:02.201278 +AWS,ap-southeast-1,c6gd.8xlarge,reserved_1y,all_upfront,0.6221,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:33.227789 +AWS,ap-southeast-1,c6gd.8xlarge,reserved_1y,no_upfront,0.6221,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:14.904629 +AWS,ap-southeast-1,c6gd.8xlarge,reserved_1y,partial_upfront,0.6221,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:59.186985 +AWS,ap-southeast-1,c6gd.8xlarge,reserved_3y,all_upfront,0.6221,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:35.373028 +AWS,ap-southeast-1,c6gd.8xlarge,reserved_3y,no_upfront,0.6221,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:18.023936 +AWS,ap-southeast-1,c6gd.8xlarge,reserved_3y,partial_upfront,0.6221,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:10.611422 +AWS,ap-southeast-1,c6gd.8xlarge,spot,NA,0.657821,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921598 +AWS,ap-southeast-1,c6gd.xlarge,on_demand,NA,0.18,USD,AWS Pricing API,2025-11-30T08:59:53.236624 +AWS,ap-southeast-1,c6gd.xlarge,reserved_1y,all_upfront,0.105822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:24.293921 +AWS,ap-southeast-1,c6gd.xlarge,reserved_1y,no_upfront,0.105822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:05.900223 +AWS,ap-southeast-1,c6gd.xlarge,reserved_1y,partial_upfront,0.105822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:50.310674 +AWS,ap-southeast-1,c6gd.xlarge,reserved_3y,all_upfront,0.035274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:26.616934 +AWS,ap-southeast-1,c6gd.xlarge,reserved_3y,no_upfront,0.035274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:08.930167 +AWS,ap-southeast-1,c6gd.xlarge,reserved_3y,partial_upfront,0.035274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:01.731279 +AWS,ap-southeast-1,c6gd.xlarge,spot,NA,0.086783,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921391 +AWS,ap-southeast-1,c6i.12xlarge,on_demand,NA,2.352,USD,AWS Pricing API,2025-11-30T08:59:53.098683 +AWS,ap-southeast-1,c6i.12xlarge,reserved_1y,all_upfront,1.66621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:24.147716 +AWS,ap-southeast-1,c6i.12xlarge,reserved_1y,no_upfront,1.66621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:05.765369 +AWS,ap-southeast-1,c6i.12xlarge,reserved_1y,partial_upfront,1.66621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:50.172601 +AWS,ap-southeast-1,c6i.12xlarge,reserved_3y,all_upfront,0.555403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:26.485955 +AWS,ap-southeast-1,c6i.12xlarge,reserved_3y,no_upfront,0.555403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:08.793496 +AWS,ap-southeast-1,c6i.12xlarge,reserved_3y,partial_upfront,0.555403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:01.595552 +AWS,ap-southeast-1,c6i.12xlarge,spot,NA,0.941741,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921387 +AWS,ap-southeast-1,c6i.16xlarge,on_demand,NA,3.136,USD,AWS Pricing API,2025-11-30T08:59:27.686479 +AWS,ap-southeast-1,c6i.16xlarge,reserved_1y,all_upfront,2.08152,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:59.004907 +AWS,ap-southeast-1,c6i.16xlarge,reserved_1y,no_upfront,2.08152,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:40.371321 +AWS,ap-southeast-1,c6i.16xlarge,reserved_1y,partial_upfront,2.08152,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:25.063129 +AWS,ap-southeast-1,c6i.16xlarge,reserved_3y,all_upfront,2.08152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:01.813204 +AWS,ap-southeast-1,c6i.16xlarge,reserved_3y,no_upfront,2.08152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:43.217157 +AWS,ap-southeast-1,c6i.16xlarge,reserved_3y,partial_upfront,2.08152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:36.613722 +AWS,ap-southeast-1,c6i.16xlarge,spot,NA,1.167664,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920718 +AWS,ap-southeast-1,c6i.24xlarge,on_demand,NA,4.704,USD,AWS Pricing API,2025-11-30T08:59:22.319004 +AWS,ap-southeast-1,c6i.24xlarge,reserved_1y,all_upfront,2.914155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:53.652769 +AWS,ap-southeast-1,c6i.24xlarge,reserved_1y,no_upfront,2.914155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:35.023802 +AWS,ap-southeast-1,c6i.24xlarge,reserved_1y,partial_upfront,2.914155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:19.782345 +AWS,ap-southeast-1,c6i.24xlarge,reserved_3y,all_upfront,0.971385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:56.625078 +AWS,ap-southeast-1,c6i.24xlarge,reserved_3y,no_upfront,0.971385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:37.822790 +AWS,ap-southeast-1,c6i.24xlarge,reserved_3y,partial_upfront,0.971385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:31.388606 +AWS,ap-southeast-1,c6i.24xlarge,spot,NA,1.654115,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920590 +AWS,ap-southeast-1,c6i.2xlarge,on_demand,NA,0.392,USD,AWS Pricing API,2025-11-30T08:59:06.087106 +AWS,ap-southeast-1,c6i.2xlarge,reserved_1y,all_upfront,0.242808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:37.539059 +AWS,ap-southeast-1,c6i.2xlarge,reserved_1y,no_upfront,0.242808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:18.708741 +AWS,ap-southeast-1,c6i.2xlarge,reserved_1y,partial_upfront,0.242808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:03.681831 +AWS,ap-southeast-1,c6i.2xlarge,reserved_3y,all_upfront,0.080936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:40.813730 +AWS,ap-southeast-1,c6i.2xlarge,reserved_3y,no_upfront,0.080936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:21.348554 +AWS,ap-southeast-1,c6i.2xlarge,reserved_3y,partial_upfront,0.080936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:15.349709 +AWS,ap-southeast-1,c6i.2xlarge,spot,NA,0.183072,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920154 +AWS,ap-southeast-1,c6i.32xlarge,on_demand,NA,6.272,USD,AWS Pricing API,2025-11-30T08:59:57.807950 +AWS,ap-southeast-1,c6i.32xlarge,reserved_1y,all_upfront,5.26849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:28.905838 +AWS,ap-southeast-1,c6i.32xlarge,reserved_1y,no_upfront,5.26849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:10.532979 +AWS,ap-southeast-1,c6i.32xlarge,reserved_1y,partial_upfront,5.26849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:54.874653 +AWS,ap-southeast-1,c6i.32xlarge,reserved_3y,all_upfront,2.634243,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:31.133616 +AWS,ap-southeast-1,c6i.32xlarge,reserved_3y,no_upfront,2.634243,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:13.593725 +AWS,ap-southeast-1,c6i.32xlarge,reserved_3y,partial_upfront,2.634243,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:06.295397 +AWS,ap-southeast-1,c6i.32xlarge,spot,NA,2.087689,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921481 +AWS,ap-southeast-1,c6i.4xlarge,on_demand,NA,0.784,USD,AWS Pricing API,2025-11-30T08:59:02.093045 +AWS,ap-southeast-1,c6i.4xlarge,reserved_1y,all_upfront,0.485731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:33.572155 +AWS,ap-southeast-1,c6i.4xlarge,reserved_1y,no_upfront,0.485731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:14.750476 +AWS,ap-southeast-1,c6i.4xlarge,reserved_1y,partial_upfront,0.485731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:59.732763 +AWS,ap-southeast-1,c6i.4xlarge,reserved_3y,all_upfront,0.16191,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:36.908031 +AWS,ap-southeast-1,c6i.4xlarge,reserved_3y,no_upfront,0.16191,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:17.374004 +AWS,ap-southeast-1,c6i.4xlarge,reserved_3y,partial_upfront,0.16191,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:11.465073 +AWS,ap-southeast-1,c6i.4xlarge,spot,NA,0.356154,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920055 +AWS,ap-southeast-1,c6i.8xlarge,on_demand,NA,1.568,USD,AWS Pricing API,2025-11-30T08:59:15.835212 +AWS,ap-southeast-1,c6i.8xlarge,reserved_1y,all_upfront,0.971347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:47.299226 +AWS,ap-southeast-1,c6i.8xlarge,reserved_1y,no_upfront,0.971347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:28.580252 +AWS,ap-southeast-1,c6i.8xlarge,reserved_1y,partial_upfront,0.971347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:13.425392 +AWS,ap-southeast-1,c6i.8xlarge,reserved_3y,all_upfront,0.323782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:50.382255 +AWS,ap-southeast-1,c6i.8xlarge,reserved_3y,no_upfront,0.323782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:31.307767 +AWS,ap-southeast-1,c6i.8xlarge,reserved_3y,partial_upfront,0.323782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:25.048913 +AWS,ap-southeast-1,c6i.8xlarge,spot,NA,0.694892,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920461 +AWS,ap-southeast-1,c6i.xlarge,on_demand,NA,0.196,USD,AWS Pricing API,2025-11-30T08:59:20.037348 +AWS,ap-southeast-1,c6i.xlarge,reserved_1y,all_upfront,0.164676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:51.486804 +AWS,ap-southeast-1,c6i.xlarge,reserved_1y,no_upfront,0.164676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:32.838547 +AWS,ap-southeast-1,c6i.xlarge,reserved_1y,partial_upfront,0.164676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:17.623360 +AWS,ap-southeast-1,c6i.xlarge,reserved_3y,all_upfront,0.082332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:54.504941 +AWS,ap-southeast-1,c6i.xlarge,reserved_3y,no_upfront,0.082332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:35.612865 +AWS,ap-southeast-1,c6i.xlarge,reserved_3y,partial_upfront,0.082332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:29.230174 +AWS,ap-southeast-1,c6i.xlarge,spot,NA,0.092484,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920547 +AWS,ap-southeast-1,c6id.12xlarge,on_demand,NA,2.8224,USD,AWS Pricing API,2025-11-30T08:59:48.799203 +AWS,ap-southeast-1,c6id.12xlarge,reserved_1y,all_upfront,2.1755,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:19.952176 +AWS,ap-southeast-1,c6id.12xlarge,reserved_1y,no_upfront,2.1755,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:01.526888 +AWS,ap-southeast-1,c6id.12xlarge,reserved_1y,partial_upfront,2.1755,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:45.959237 +AWS,ap-southeast-1,c6id.12xlarge,reserved_3y,all_upfront,2.1755,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:22.409601 +AWS,ap-southeast-1,c6id.12xlarge,reserved_3y,no_upfront,2.1755,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:04.537721 +AWS,ap-southeast-1,c6id.12xlarge,reserved_3y,partial_upfront,2.1755,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:57.425016 +AWS,ap-southeast-1,c6id.12xlarge,spot,NA,1.084429,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921316 +AWS,ap-southeast-1,c6id.16xlarge,on_demand,NA,3.7632,USD,AWS Pricing API,2025-11-30T08:59:58.351403 +AWS,ap-southeast-1,c6id.16xlarge,reserved_1y,all_upfront,4.244863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:29.454702 +AWS,ap-southeast-1,c6id.16xlarge,reserved_1y,no_upfront,4.244863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:11.077700 +AWS,ap-southeast-1,c6id.16xlarge,reserved_1y,partial_upfront,4.244863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:55.412739 +AWS,ap-southeast-1,c6id.16xlarge,reserved_3y,all_upfront,1.414954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:31.676059 +AWS,ap-southeast-1,c6id.16xlarge,reserved_3y,no_upfront,1.414954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:14.141824 +AWS,ap-southeast-1,c6id.16xlarge,reserved_3y,partial_upfront,1.414954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:06.831283 +AWS,ap-southeast-1,c6id.16xlarge,spot,NA,1.373691,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921532 +AWS,ap-southeast-1,c6id.24xlarge,on_demand,NA,5.6448,USD,AWS Pricing API,2025-11-30T08:59:16.241011 +AWS,ap-southeast-1,c6id.24xlarge,reserved_1y,all_upfront,3.386933,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:47.700948 +AWS,ap-southeast-1,c6id.24xlarge,reserved_1y,no_upfront,3.386933,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:28.988276 +AWS,ap-southeast-1,c6id.24xlarge,reserved_1y,partial_upfront,3.386933,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:13.828983 +AWS,ap-southeast-1,c6id.24xlarge,reserved_3y,all_upfront,2.257938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:50.775609 +AWS,ap-southeast-1,c6id.24xlarge,reserved_3y,no_upfront,2.257938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:31.727841 +AWS,ap-southeast-1,c6id.24xlarge,reserved_3y,partial_upfront,2.257938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:25.453481 +AWS,ap-southeast-1,c6id.24xlarge,spot,NA,1.856705,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920481 +AWS,ap-southeast-1,c6id.2xlarge,on_demand,NA,0.4704,USD,AWS Pricing API,2025-11-30T09:00:08.745042 +AWS,ap-southeast-1,c6id.2xlarge,reserved_1y,all_upfront,0.36258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:39.761061 +AWS,ap-southeast-1,c6id.2xlarge,reserved_1y,no_upfront,0.36258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:21.442998 +AWS,ap-southeast-1,c6id.2xlarge,reserved_1y,partial_upfront,0.36258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:05.705614 +AWS,ap-southeast-1,c6id.2xlarge,reserved_3y,all_upfront,0.36258,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:41.728732 +AWS,ap-southeast-1,c6id.2xlarge,reserved_3y,no_upfront,0.36258,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:24.648590 +AWS,ap-southeast-1,c6id.2xlarge,reserved_3y,partial_upfront,0.36258,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:17.084768 +AWS,ap-southeast-1,c6id.2xlarge,spot,NA,0.20551,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921745 +AWS,ap-southeast-1,c6id.32xlarge,on_demand,NA,7.5264,USD,AWS Pricing API,2025-11-30T08:59:04.173564 +AWS,ap-southeast-1,c6id.32xlarge,reserved_1y,all_upfront,7.158311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:35.632559 +AWS,ap-southeast-1,c6id.32xlarge,reserved_1y,no_upfront,7.158311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:16.792891 +AWS,ap-southeast-1,c6id.32xlarge,reserved_1y,partial_upfront,7.158311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:01.761897 +AWS,ap-southeast-1,c6id.32xlarge,reserved_3y,all_upfront,3.579164,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:38.943313 +AWS,ap-southeast-1,c6id.32xlarge,reserved_3y,no_upfront,3.579164,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:19.430100 +AWS,ap-southeast-1,c6id.32xlarge,reserved_3y,partial_upfront,3.579164,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:13.469049 +AWS,ap-southeast-1,c6id.32xlarge,spot,NA,2.295138,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920118 +AWS,ap-southeast-1,c6id.4xlarge,on_demand,NA,0.9408,USD,AWS Pricing API,2025-11-30T08:59:11.213850 +AWS,ap-southeast-1,c6id.4xlarge,reserved_1y,all_upfront,0.553196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:42.694135 +AWS,ap-southeast-1,c6id.4xlarge,reserved_1y,no_upfront,0.553196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:23.932173 +AWS,ap-southeast-1,c6id.4xlarge,reserved_1y,partial_upfront,0.553196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:08.823356 +AWS,ap-southeast-1,c6id.4xlarge,reserved_3y,all_upfront,0.184399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:45.861085 +AWS,ap-southeast-1,c6id.4xlarge,reserved_3y,no_upfront,0.184399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:26.595460 +AWS,ap-southeast-1,c6id.4xlarge,reserved_3y,partial_upfront,0.184399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:20.488969 +AWS,ap-southeast-1,c6id.4xlarge,spot,NA,0.410455,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920281 +AWS,ap-southeast-1,c6id.8xlarge,on_demand,NA,1.8816,USD,AWS Pricing API,2025-11-30T08:59:44.704641 +AWS,ap-southeast-1,c6id.8xlarge,reserved_1y,all_upfront,1.505315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:15.907924 +AWS,ap-southeast-1,c6id.8xlarge,reserved_1y,no_upfront,1.505315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:57.414311 +AWS,ap-southeast-1,c6id.8xlarge,reserved_1y,partial_upfront,1.505315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:41.900875 +AWS,ap-southeast-1,c6id.8xlarge,reserved_3y,all_upfront,0.752652,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:18.415418 +AWS,ap-southeast-1,c6id.8xlarge,reserved_3y,no_upfront,0.752652,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:00.379201 +AWS,ap-southeast-1,c6id.8xlarge,reserved_3y,partial_upfront,0.752652,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:53.345645 +AWS,ap-southeast-1,c6id.8xlarge,spot,NA,0.685561,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921207 +AWS,ap-southeast-1,c6id.xlarge,on_demand,NA,0.2352,USD,AWS Pricing API,2025-11-30T09:00:03.578281 +AWS,ap-southeast-1,c6id.xlarge,reserved_1y,all_upfront,0.18129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:34.583114 +AWS,ap-southeast-1,c6id.xlarge,reserved_1y,no_upfront,0.18129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:16.260280 +AWS,ap-southeast-1,c6id.xlarge,reserved_1y,partial_upfront,0.18129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:00.529676 +AWS,ap-southeast-1,c6id.xlarge,reserved_3y,all_upfront,0.18129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:36.692369 +AWS,ap-southeast-1,c6id.xlarge,reserved_3y,no_upfront,0.18129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:19.404489 +AWS,ap-southeast-1,c6id.xlarge,reserved_3y,partial_upfront,0.18129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:11.954172 +AWS,ap-southeast-1,c6id.xlarge,spot,NA,0.104637,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921618 +AWS,ap-southeast-1,c6in.12xlarge,on_demand,NA,3.1248,USD,AWS Pricing API,2025-11-30T08:59:09.580614 +AWS,ap-southeast-1,c6in.12xlarge,reserved_1y,all_upfront,1.874883,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:41.067911 +AWS,ap-southeast-1,c6in.12xlarge,reserved_1y,no_upfront,1.874883,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:22.303632 +AWS,ap-southeast-1,c6in.12xlarge,reserved_1y,partial_upfront,1.874883,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:07.196579 +AWS,ap-southeast-1,c6in.12xlarge,reserved_3y,all_upfront,1.249921,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:44.260060 +AWS,ap-southeast-1,c6in.12xlarge,reserved_3y,no_upfront,1.249921,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:24.943521 +AWS,ap-southeast-1,c6in.12xlarge,reserved_3y,partial_upfront,1.249921,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:18.869659 +AWS,ap-southeast-1,c6in.12xlarge,spot,NA,1.197356,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920262 +AWS,ap-southeast-1,c6in.16xlarge,on_demand,NA,4.1664,USD,AWS Pricing API,2025-11-30T08:59:20.995194 +AWS,ap-southeast-1,c6in.16xlarge,reserved_1y,all_upfront,2.449886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:52.436861 +AWS,ap-southeast-1,c6in.16xlarge,reserved_1y,no_upfront,2.449886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:33.792301 +AWS,ap-southeast-1,c6in.16xlarge,reserved_1y,partial_upfront,2.449886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:18.575663 +AWS,ap-southeast-1,c6in.16xlarge,reserved_3y,all_upfront,0.816629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:55.433911 +AWS,ap-southeast-1,c6in.16xlarge,reserved_3y,no_upfront,0.816629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:36.573045 +AWS,ap-southeast-1,c6in.16xlarge,reserved_3y,partial_upfront,0.816629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:30.172443 +AWS,ap-southeast-1,c6in.16xlarge,spot,NA,1.505237,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920582 +AWS,ap-southeast-1,c6in.24xlarge,on_demand,NA,6.2496,USD,AWS Pricing API,2025-11-30T08:59:30.729561 +AWS,ap-southeast-1,c6in.24xlarge,reserved_1y,all_upfront,3.749766,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:02.105617 +AWS,ap-southeast-1,c6in.24xlarge,reserved_1y,no_upfront,3.749766,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:43.434127 +AWS,ap-southeast-1,c6in.24xlarge,reserved_1y,partial_upfront,3.749766,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:28.027443 +AWS,ap-southeast-1,c6in.24xlarge,reserved_3y,all_upfront,2.499842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:04.776184 +AWS,ap-southeast-1,c6in.24xlarge,reserved_3y,no_upfront,2.499842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:46.265505 +AWS,ap-southeast-1,c6in.24xlarge,reserved_3y,partial_upfront,2.499842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:39.586834 +AWS,ap-southeast-1,c6in.24xlarge,spot,NA,2.065603,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920809 +AWS,ap-southeast-1,c6in.2xlarge,on_demand,NA,0.5208,USD,AWS Pricing API,2025-11-30T08:59:34.468409 +AWS,ap-southeast-1,c6in.2xlarge,reserved_1y,all_upfront,0.376712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:05.771351 +AWS,ap-southeast-1,c6in.2xlarge,reserved_1y,no_upfront,0.376712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:47.170793 +AWS,ap-southeast-1,c6in.2xlarge,reserved_1y,partial_upfront,0.376712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:31.676940 +AWS,ap-southeast-1,c6in.2xlarge,reserved_3y,all_upfront,0.125571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:08.361608 +AWS,ap-southeast-1,c6in.2xlarge,reserved_3y,no_upfront,0.125571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:50.026261 +AWS,ap-southeast-1,c6in.2xlarge,reserved_3y,partial_upfront,0.125571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:43.272246 +AWS,ap-southeast-1,c6in.2xlarge,spot,NA,0.24968,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920911 +AWS,ap-southeast-1,c6in.32xlarge,on_demand,NA,8.3328,USD,AWS Pricing API,2025-11-30T09:00:08.881199 +AWS,ap-southeast-1,c6in.32xlarge,reserved_1y,all_upfront,6.028196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:39.896387 +AWS,ap-southeast-1,c6in.32xlarge,reserved_1y,no_upfront,6.028196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:21.579522 +AWS,ap-southeast-1,c6in.32xlarge,reserved_1y,partial_upfront,6.028196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:05.838598 +AWS,ap-southeast-1,c6in.32xlarge,reserved_3y,all_upfront,2.009399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:41.861255 +AWS,ap-southeast-1,c6in.32xlarge,reserved_3y,no_upfront,2.009399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:24.790989 +AWS,ap-southeast-1,c6in.32xlarge,reserved_3y,partial_upfront,2.009399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:17.219091 +AWS,ap-southeast-1,c6in.32xlarge,spot,NA,2.590663,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921737 +AWS,ap-southeast-1,c6in.4xlarge,on_demand,NA,1.0416,USD,AWS Pricing API,2025-11-30T08:59:08.631137 +AWS,ap-southeast-1,c6in.4xlarge,reserved_1y,all_upfront,0.624923,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:40.118104 +AWS,ap-southeast-1,c6in.4xlarge,reserved_1y,no_upfront,0.624923,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:21.300930 +AWS,ap-southeast-1,c6in.4xlarge,reserved_1y,partial_upfront,0.624923,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:06.249616 +AWS,ap-southeast-1,c6in.4xlarge,reserved_3y,all_upfront,0.416628,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:43.331503 +AWS,ap-southeast-1,c6in.4xlarge,reserved_3y,no_upfront,0.416628,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:23.974084 +AWS,ap-southeast-1,c6in.4xlarge,reserved_3y,partial_upfront,0.416628,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:17.921162 +AWS,ap-southeast-1,c6in.4xlarge,spot,NA,0.516336,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920226 +AWS,ap-southeast-1,c6in.8xlarge,on_demand,NA,2.0832,USD,AWS Pricing API,2025-11-30T08:59:38.980511 +AWS,ap-southeast-1,c6in.8xlarge,reserved_1y,all_upfront,1.503207,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:10.243238 +AWS,ap-southeast-1,c6in.8xlarge,reserved_1y,no_upfront,1.503207,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:51.713912 +AWS,ap-southeast-1,c6in.8xlarge,reserved_1y,partial_upfront,1.503207,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:36.132625 +AWS,ap-southeast-1,c6in.8xlarge,reserved_3y,all_upfront,0.751609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:12.756569 +AWS,ap-southeast-1,c6in.8xlarge,reserved_3y,no_upfront,0.751609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:54.580445 +AWS,ap-southeast-1,c6in.8xlarge,reserved_3y,partial_upfront,0.751609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:47.717949 +AWS,ap-southeast-1,c6in.8xlarge,spot,NA,0.929955,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921041 +AWS,ap-southeast-1,c6in.xlarge,on_demand,NA,0.2604,USD,AWS Pricing API,2025-11-30T08:59:26.607563 +AWS,ap-southeast-1,c6in.xlarge,reserved_1y,all_upfront,0.153082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:57.923793 +AWS,ap-southeast-1,c6in.xlarge,reserved_1y,no_upfront,0.153082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:39.281167 +AWS,ap-southeast-1,c6in.xlarge,reserved_1y,partial_upfront,0.153082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:23.978866 +AWS,ap-southeast-1,c6in.xlarge,reserved_3y,all_upfront,0.051027,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:00.740068 +AWS,ap-southeast-1,c6in.xlarge,reserved_3y,no_upfront,0.051027,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:42.117761 +AWS,ap-southeast-1,c6in.xlarge,reserved_3y,partial_upfront,0.051027,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:35.539993 +AWS,ap-southeast-1,c6in.xlarge,spot,NA,0.116768,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920702 +AWS,ap-southeast-1,c7g.12xlarge,on_demand,NA,1.9992,USD,AWS Pricing API,2025-11-30T08:59:36.796051 +AWS,ap-southeast-1,c7g.12xlarge,reserved_1y,all_upfront,1.679275,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:08.075893 +AWS,ap-southeast-1,c7g.12xlarge,reserved_1y,no_upfront,1.679275,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:49.509246 +AWS,ap-southeast-1,c7g.12xlarge,reserved_1y,partial_upfront,1.679275,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:33.966832 +AWS,ap-southeast-1,c7g.12xlarge,reserved_3y,all_upfront,0.839625,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:10.620388 +AWS,ap-southeast-1,c7g.12xlarge,reserved_3y,no_upfront,0.839625,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:52.375922 +AWS,ap-southeast-1,c7g.12xlarge,reserved_3y,partial_upfront,0.839625,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:45.551536 +AWS,ap-southeast-1,c7g.12xlarge,spot,NA,0.782189,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920984 +AWS,ap-southeast-1,c7g.16xlarge,on_demand,NA,2.6656,USD,AWS Pricing API,2025-11-30T08:59:46.484202 +AWS,ap-southeast-1,c7g.16xlarge,reserved_1y,all_upfront,2.239138,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:17.669141 +AWS,ap-southeast-1,c7g.16xlarge,reserved_1y,no_upfront,2.239138,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:59.185640 +AWS,ap-southeast-1,c7g.16xlarge,reserved_1y,partial_upfront,2.239138,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:43.661108 +AWS,ap-southeast-1,c7g.16xlarge,reserved_3y,all_upfront,1.119579,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:20.144639 +AWS,ap-southeast-1,c7g.16xlarge,reserved_3y,no_upfront,1.119579,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:02.166993 +AWS,ap-southeast-1,c7g.16xlarge,reserved_3y,partial_upfront,1.119579,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:55.108108 +AWS,ap-southeast-1,c7g.16xlarge,spot,NA,0.94265,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921219 +AWS,ap-southeast-1,c7g.2xlarge,on_demand,NA,0.3332,USD,AWS Pricing API,2025-11-30T09:00:05.350123 +AWS,ap-southeast-1,c7g.2xlarge,reserved_1y,all_upfront,0.206393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:36.383171 +AWS,ap-southeast-1,c7g.2xlarge,reserved_1y,no_upfront,0.206393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:18.026557 +AWS,ap-southeast-1,c7g.2xlarge,reserved_1y,partial_upfront,0.206393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:02.307290 +AWS,ap-southeast-1,c7g.2xlarge,reserved_3y,all_upfront,0.068798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:38.419042 +AWS,ap-southeast-1,c7g.2xlarge,reserved_3y,no_upfront,0.068798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:21.207336 +AWS,ap-southeast-1,c7g.2xlarge,reserved_3y,partial_upfront,0.068798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:13.705105 +AWS,ap-southeast-1,c7g.2xlarge,spot,NA,0.163104,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921671 +AWS,ap-southeast-1,c7g.4xlarge,on_demand,NA,0.6664,USD,AWS Pricing API,2025-11-30T08:59:21.749668 +AWS,ap-southeast-1,c7g.4xlarge,reserved_1y,all_upfront,0.5058,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:53.115763 +AWS,ap-southeast-1,c7g.4xlarge,reserved_1y,no_upfront,0.5058,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:34.476194 +AWS,ap-southeast-1,c7g.4xlarge,reserved_1y,partial_upfront,0.5058,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:19.247190 +AWS,ap-southeast-1,c7g.4xlarge,reserved_3y,all_upfront,0.5058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:56.099074 +AWS,ap-southeast-1,c7g.4xlarge,reserved_3y,no_upfront,0.5058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:37.262450 +AWS,ap-southeast-1,c7g.4xlarge,reserved_3y,partial_upfront,0.5058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:30.844668 +AWS,ap-southeast-1,c7g.4xlarge,spot,NA,0.296826,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920601 +AWS,ap-southeast-1,c7g.8xlarge,on_demand,NA,1.3328,USD,AWS Pricing API,2025-11-30T08:59:32.905507 +AWS,ap-southeast-1,c7g.8xlarge,reserved_1y,all_upfront,0.963435,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:04.272632 +AWS,ap-southeast-1,c7g.8xlarge,reserved_1y,no_upfront,0.963435,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:45.657242 +AWS,ap-southeast-1,c7g.8xlarge,reserved_1y,partial_upfront,0.963435,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:30.208364 +AWS,ap-southeast-1,c7g.8xlarge,reserved_3y,all_upfront,0.642278,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:06.909228 +AWS,ap-southeast-1,c7g.8xlarge,reserved_3y,no_upfront,0.642278,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:48.522399 +AWS,ap-southeast-1,c7g.8xlarge,reserved_3y,partial_upfront,0.642278,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:41.770859 +AWS,ap-southeast-1,c7g.8xlarge,spot,NA,0.599751,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920886 +AWS,ap-southeast-1,c7g.xlarge,on_demand,NA,0.1666,USD,AWS Pricing API,2025-11-30T08:59:19.760818 +AWS,ap-southeast-1,c7g.xlarge,reserved_1y,all_upfront,0.197374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:51.220304 +AWS,ap-southeast-1,c7g.xlarge,reserved_1y,no_upfront,0.197374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:32.554618 +AWS,ap-southeast-1,c7g.xlarge,reserved_1y,partial_upfront,0.197374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:17.355246 +AWS,ap-southeast-1,c7g.xlarge,reserved_3y,all_upfront,0.065791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:54.236020 +AWS,ap-southeast-1,c7g.xlarge,reserved_3y,no_upfront,0.065791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:35.305107 +AWS,ap-southeast-1,c7g.xlarge,reserved_3y,partial_upfront,0.065791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:28.953512 +AWS,ap-southeast-1,c7g.xlarge,spot,NA,0.092255,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920528 +AWS,ap-southeast-1,c7gd.12xlarge,on_demand,NA,2.5402,USD,AWS Pricing API,2025-11-30T08:59:30.864798 +AWS,ap-southeast-1,c7gd.12xlarge,reserved_1y,all_upfront,1.6003,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:02.242215 +AWS,ap-southeast-1,c7gd.12xlarge,reserved_1y,no_upfront,1.6003,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:43.575652 +AWS,ap-southeast-1,c7gd.12xlarge,reserved_1y,partial_upfront,1.6003,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:28.161387 +AWS,ap-southeast-1,c7gd.12xlarge,reserved_3y,all_upfront,1.6003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:04.906896 +AWS,ap-southeast-1,c7gd.12xlarge,reserved_3y,no_upfront,1.6003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:46.402765 +AWS,ap-southeast-1,c7gd.12xlarge,reserved_3y,partial_upfront,1.6003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:39.723676 +AWS,ap-southeast-1,c7gd.12xlarge,spot,NA,0.903987,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920812 +AWS,ap-southeast-1,c7gd.16xlarge,on_demand,NA,3.3869,USD,AWS Pricing API,2025-11-30T08:59:16.647427 +AWS,ap-southeast-1,c7gd.16xlarge,reserved_1y,all_upfront,2.709478,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:48.112778 +AWS,ap-southeast-1,c7gd.16xlarge,reserved_1y,no_upfront,2.709478,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:29.417143 +AWS,ap-southeast-1,c7gd.16xlarge,reserved_1y,partial_upfront,2.709478,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:14.244679 +AWS,ap-southeast-1,c7gd.16xlarge,reserved_3y,all_upfront,1.354759,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:51.171842 +AWS,ap-southeast-1,c7gd.16xlarge,reserved_3y,no_upfront,1.354759,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:32.140110 +AWS,ap-southeast-1,c7gd.16xlarge,reserved_3y,partial_upfront,1.354759,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:25.854626 +AWS,ap-southeast-1,c7gd.16xlarge,spot,NA,1.164883,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920445 +AWS,ap-southeast-1,c7gd.2xlarge,on_demand,NA,0.4234,USD,AWS Pricing API,2025-11-30T08:59:46.345349 +AWS,ap-southeast-1,c7gd.2xlarge,reserved_1y,all_upfront,0.304566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:17.535768 +AWS,ap-southeast-1,c7gd.2xlarge,reserved_1y,no_upfront,0.304566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:59.048847 +AWS,ap-southeast-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.304566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:43.526612 +AWS,ap-southeast-1,c7gd.2xlarge,reserved_3y,all_upfront,0.101522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:20.009532 +AWS,ap-southeast-1,c7gd.2xlarge,reserved_3y,no_upfront,0.101522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:02.029544 +AWS,ap-southeast-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.101522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:54.974347 +AWS,ap-southeast-1,c7gd.2xlarge,spot,NA,0.175649,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921231 +AWS,ap-southeast-1,c7gd.4xlarge,on_demand,NA,0.8467,USD,AWS Pricing API,2025-11-30T08:59:33.571710 +AWS,ap-southeast-1,c7gd.4xlarge,reserved_1y,all_upfront,0.5334,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:04.958732 +AWS,ap-southeast-1,c7gd.4xlarge,reserved_1y,no_upfront,0.5334,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:46.347376 +AWS,ap-southeast-1,c7gd.4xlarge,reserved_1y,partial_upfront,0.5334,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:30.879320 +AWS,ap-southeast-1,c7gd.4xlarge,reserved_3y,all_upfront,0.5334,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:07.564598 +AWS,ap-southeast-1,c7gd.4xlarge,reserved_3y,no_upfront,0.5334,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:49.202669 +AWS,ap-southeast-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.5334,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:42.453159 +AWS,ap-southeast-1,c7gd.4xlarge,spot,NA,0.405321,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920894 +AWS,ap-southeast-1,c7gd.8xlarge,on_demand,NA,1.6934,USD,AWS Pricing API,2025-11-30T08:59:25.069020 +AWS,ap-southeast-1,c7gd.8xlarge,reserved_1y,all_upfront,1.015991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:56.444128 +AWS,ap-southeast-1,c7gd.8xlarge,reserved_1y,no_upfront,1.015991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:37.767198 +AWS,ap-southeast-1,c7gd.8xlarge,reserved_1y,partial_upfront,1.015991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:22.484294 +AWS,ap-southeast-1,c7gd.8xlarge,reserved_3y,all_upfront,0.67733,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:59.273813 +AWS,ap-southeast-1,c7gd.8xlarge,reserved_3y,no_upfront,0.67733,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:40.594540 +AWS,ap-southeast-1,c7gd.8xlarge,reserved_3y,partial_upfront,0.67733,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:34.074994 +AWS,ap-southeast-1,c7gd.8xlarge,spot,NA,0.757752,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920674 +AWS,ap-southeast-1,c7gd.xlarge,on_demand,NA,0.2117,USD,AWS Pricing API,2025-11-30T09:00:04.662003 +AWS,ap-southeast-1,c7gd.xlarge,reserved_1y,all_upfront,0.238813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:35.690912 +AWS,ap-southeast-1,c7gd.xlarge,reserved_1y,no_upfront,0.238813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:17.349621 +AWS,ap-southeast-1,c7gd.xlarge,reserved_1y,partial_upfront,0.238813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:01.614385 +AWS,ap-southeast-1,c7gd.xlarge,reserved_3y,all_upfront,0.079604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:37.756511 +AWS,ap-southeast-1,c7gd.xlarge,reserved_3y,no_upfront,0.079604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:20.508451 +AWS,ap-southeast-1,c7gd.xlarge,reserved_3y,partial_upfront,0.079604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:13.034043 +AWS,ap-southeast-1,c7gd.xlarge,spot,NA,0.103196,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921651 +AWS,ap-southeast-1,c7i.12xlarge,on_demand,NA,2.4696,USD,AWS Pricing API,2025-11-30T08:59:25.342744 +AWS,ap-southeast-1,c7i.12xlarge,reserved_1y,all_upfront,1.63919,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:56.712570 +AWS,ap-southeast-1,c7i.12xlarge,reserved_1y,no_upfront,1.63919,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:38.040255 +AWS,ap-southeast-1,c7i.12xlarge,reserved_1y,partial_upfront,1.63919,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:22.754808 +AWS,ap-southeast-1,c7i.12xlarge,reserved_3y,all_upfront,1.63919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:59.535224 +AWS,ap-southeast-1,c7i.12xlarge,reserved_3y,no_upfront,1.63919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:40.869965 +AWS,ap-southeast-1,c7i.12xlarge,reserved_3y,partial_upfront,1.63919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:34.341007 +AWS,ap-southeast-1,c7i.12xlarge,spot,NA,0.966663,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920671 +AWS,ap-southeast-1,c7i.16xlarge,on_demand,NA,3.2928,USD,AWS Pricing API,2025-11-30T09:00:02.897968 +AWS,ap-southeast-1,c7i.16xlarge,reserved_1y,all_upfront,2.765919,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:33.911768 +AWS,ap-southeast-1,c7i.16xlarge,reserved_1y,no_upfront,2.765919,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:15.581248 +AWS,ap-southeast-1,c7i.16xlarge,reserved_1y,partial_upfront,2.765919,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:59.857969 +AWS,ap-southeast-1,c7i.16xlarge,reserved_3y,all_upfront,1.382966,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:36.035882 +AWS,ap-southeast-1,c7i.16xlarge,reserved_3y,no_upfront,1.382966,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:18.718766 +AWS,ap-southeast-1,c7i.16xlarge,reserved_3y,partial_upfront,1.382966,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:11.280444 +AWS,ap-southeast-1,c7i.16xlarge,spot,NA,1.224181,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921631 +AWS,ap-southeast-1,c7i.24xlarge,on_demand,NA,4.9392,USD,AWS Pricing API,2025-11-30T08:59:36.369264 +AWS,ap-southeast-1,c7i.24xlarge,reserved_1y,all_upfront,3.059817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:07.666787 +AWS,ap-southeast-1,c7i.24xlarge,reserved_1y,no_upfront,3.059817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:49.096521 +AWS,ap-southeast-1,c7i.24xlarge,reserved_1y,partial_upfront,3.059817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:33.554802 +AWS,ap-southeast-1,c7i.24xlarge,reserved_3y,all_upfront,1.019939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:10.218198 +AWS,ap-southeast-1,c7i.24xlarge,reserved_3y,no_upfront,1.019939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:51.967840 +AWS,ap-southeast-1,c7i.24xlarge,reserved_3y,partial_upfront,1.019939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:45.141985 +AWS,ap-southeast-1,c7i.24xlarge,spot,NA,1.714866,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920943 +AWS,ap-southeast-1,c7i.2xlarge,on_demand,NA,0.4116,USD,AWS Pricing API,2025-11-30T08:59:51.214913 +AWS,ap-southeast-1,c7i.2xlarge,reserved_1y,all_upfront,0.255023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:22.245603 +AWS,ap-southeast-1,c7i.2xlarge,reserved_1y,no_upfront,0.255023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:03.862762 +AWS,ap-southeast-1,c7i.2xlarge,reserved_1y,partial_upfront,0.255023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:48.293560 +AWS,ap-southeast-1,c7i.2xlarge,reserved_3y,all_upfront,0.085008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:24.659633 +AWS,ap-southeast-1,c7i.2xlarge,reserved_3y,no_upfront,0.085008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:06.874503 +AWS,ap-southeast-1,c7i.2xlarge,reserved_3y,partial_upfront,0.085008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:59.706278 +AWS,ap-southeast-1,c7i.2xlarge,spot,NA,0.199352,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921348 +AWS,ap-southeast-1,c7i.48xlarge,on_demand,NA,9.8784,USD,AWS Pricing API,2025-11-30T08:59:18.686811 +AWS,ap-southeast-1,c7i.48xlarge,reserved_1y,all_upfront,6.997945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:50.145047 +AWS,ap-southeast-1,c7i.48xlarge,reserved_1y,no_upfront,6.997945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:31.468246 +AWS,ap-southeast-1,c7i.48xlarge,reserved_1y,partial_upfront,6.997945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:16.280301 +AWS,ap-southeast-1,c7i.48xlarge,reserved_3y,all_upfront,2.332648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:53.182359 +AWS,ap-southeast-1,c7i.48xlarge,reserved_3y,no_upfront,2.332648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:34.203426 +AWS,ap-southeast-1,c7i.48xlarge,reserved_3y,partial_upfront,2.332648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:27.883496 +AWS,ap-southeast-1,c7i.48xlarge,spot,NA,3.371971,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920543 +AWS,ap-southeast-1,c7i.4xlarge,on_demand,NA,0.8232,USD,AWS Pricing API,2025-11-30T08:59:31.967151 +AWS,ap-southeast-1,c7i.4xlarge,reserved_1y,all_upfront,0.691477,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:03.326559 +AWS,ap-southeast-1,c7i.4xlarge,reserved_1y,no_upfront,0.691477,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:44.691439 +AWS,ap-southeast-1,c7i.4xlarge,reserved_1y,partial_upfront,0.691477,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:29.263928 +AWS,ap-southeast-1,c7i.4xlarge,reserved_3y,all_upfront,0.345739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:05.973602 +AWS,ap-southeast-1,c7i.4xlarge,reserved_3y,no_upfront,0.345739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:47.524301 +AWS,ap-southeast-1,c7i.4xlarge,reserved_3y,partial_upfront,0.345739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:40.800339 +AWS,ap-southeast-1,c7i.4xlarge,spot,NA,0.384284,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920833 +AWS,ap-southeast-1,c7i.8xlarge,on_demand,NA,1.6464,USD,AWS Pricing API,2025-11-30T08:59:03.624706 +AWS,ap-southeast-1,c7i.8xlarge,reserved_1y,all_upfront,1.24964,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:35.079362 +AWS,ap-southeast-1,c7i.8xlarge,reserved_1y,no_upfront,1.24964,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:16.253729 +AWS,ap-southeast-1,c7i.8xlarge,reserved_1y,partial_upfront,1.24964,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:01.218698 +AWS,ap-southeast-1,c7i.8xlarge,reserved_3y,all_upfront,1.24964,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:38.414756 +AWS,ap-southeast-1,c7i.8xlarge,reserved_3y,no_upfront,1.24964,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:18.882209 +AWS,ap-southeast-1,c7i.8xlarge,reserved_3y,partial_upfront,1.24964,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:12.936909 +AWS,ap-southeast-1,c7i.8xlarge,spot,NA,0.752517,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920104 +AWS,ap-southeast-1,c7i.large,on_demand,NA,0.1029,USD,AWS Pricing API,2025-11-30T08:59:50.575794 +AWS,ap-southeast-1,c7i.large,reserved_1y,all_upfront,0.065054,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:21.696959 +AWS,ap-southeast-1,c7i.large,reserved_1y,no_upfront,0.065054,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:03.315535 +AWS,ap-southeast-1,c7i.large,reserved_1y,partial_upfront,0.065054,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:47.744000 +AWS,ap-southeast-1,c7i.large,reserved_3y,all_upfront,0.043365,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:24.130945 +AWS,ap-southeast-1,c7i.large,reserved_3y,no_upfront,0.043365,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:06.318840 +AWS,ap-southeast-1,c7i.large,reserved_3y,partial_upfront,0.043365,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:59.168902 +AWS,ap-southeast-1,c7i.large,spot,NA,0.051086,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921352 +AWS,ap-southeast-1,c7i.metal-24xl,on_demand,NA,4.9392,USD,AWS Pricing API,2025-11-30T08:59:19.488252 +AWS,ap-southeast-1,c7i.metal-24xl,reserved_1y,all_upfront,2.55829,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:50.947600 +AWS,ap-southeast-1,c7i.metal-24xl,reserved_1y,no_upfront,2.55829,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:32.281743 +AWS,ap-southeast-1,c7i.metal-24xl,reserved_1y,partial_upfront,2.55829,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:17.087689 +AWS,ap-southeast-1,c7i.metal-24xl,reserved_3y,all_upfront,2.55829,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:53.972721 +AWS,ap-southeast-1,c7i.metal-24xl,reserved_3y,no_upfront,2.55829,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:35.023224 +AWS,ap-southeast-1,c7i.metal-24xl,reserved_3y,partial_upfront,2.55829,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:28.687439 +AWS,ap-southeast-1,c7i.metal-24xl,spot,NA,1.781155,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920516 +AWS,ap-southeast-1,c7i.metal-48xl,on_demand,NA,9.8784,USD,AWS Pricing API,2025-11-30T08:59:07.703197 +AWS,ap-southeast-1,c7i.metal-48xl,reserved_1y,all_upfront,6.997945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:39.158081 +AWS,ap-southeast-1,c7i.metal-48xl,reserved_1y,no_upfront,6.997945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:20.351060 +AWS,ap-southeast-1,c7i.metal-48xl,reserved_1y,partial_upfront,6.997945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:05.311188 +AWS,ap-southeast-1,c7i.metal-48xl,reserved_3y,all_upfront,2.332648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:42.393337 +AWS,ap-southeast-1,c7i.metal-48xl,reserved_3y,no_upfront,2.332648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:22.992346 +AWS,ap-southeast-1,c7i.metal-48xl,reserved_3y,partial_upfront,2.332648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:16.979896 +AWS,ap-southeast-1,c7i.metal-48xl,spot,NA,3.478781,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920222 +AWS,ap-southeast-1,c7i.xlarge,on_demand,NA,0.2058,USD,AWS Pricing API,2025-11-30T09:00:01.915873 +AWS,ap-southeast-1,c7i.xlarge,reserved_1y,all_upfront,0.1366,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:32.951077 +AWS,ap-southeast-1,c7i.xlarge,reserved_1y,no_upfront,0.1366,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:14.628832 +AWS,ap-southeast-1,c7i.xlarge,reserved_1y,partial_upfront,0.1366,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:58.919362 +AWS,ap-southeast-1,c7i.xlarge,reserved_3y,all_upfront,0.1366,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:35.110935 +AWS,ap-southeast-1,c7i.xlarge,reserved_3y,no_upfront,0.1366,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:17.750002 +AWS,ap-southeast-1,c7i.xlarge,reserved_3y,partial_upfront,0.1366,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:10.348818 +AWS,ap-southeast-1,c7i.xlarge,spot,NA,0.107812,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921602 +AWS,ap-southeast-1,c8g.12xlarge,on_demand,NA,2.19936,USD,AWS Pricing API,2025-11-30T08:59:59.463543 +AWS,ap-southeast-1,c8g.12xlarge,reserved_1y,all_upfront,1.847486,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:30.532357 +AWS,ap-southeast-1,c8g.12xlarge,reserved_1y,no_upfront,1.847486,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:12.173552 +AWS,ap-southeast-1,c8g.12xlarge,reserved_1y,partial_upfront,1.847486,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:56.489158 +AWS,ap-southeast-1,c8g.12xlarge,reserved_3y,all_upfront,0.923742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:32.729171 +AWS,ap-southeast-1,c8g.12xlarge,reserved_3y,no_upfront,0.923742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:15.243071 +AWS,ap-southeast-1,c8g.12xlarge,reserved_3y,partial_upfront,0.923742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:07.907693 +AWS,ap-southeast-1,c8g.12xlarge,spot,NA,0.916644,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921543 +AWS,ap-southeast-1,c8g.16xlarge,on_demand,NA,2.93248,USD,AWS Pricing API,2025-11-30T08:59:02.516257 +AWS,ap-southeast-1,c8g.16xlarge,reserved_1y,all_upfront,2.22588,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:34.002468 +AWS,ap-southeast-1,c8g.16xlarge,reserved_1y,no_upfront,2.22588,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:15.160601 +AWS,ap-southeast-1,c8g.16xlarge,reserved_1y,partial_upfront,2.22588,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:00.144474 +AWS,ap-southeast-1,c8g.16xlarge,reserved_3y,all_upfront,2.22588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:37.305679 +AWS,ap-southeast-1,c8g.16xlarge,reserved_3y,no_upfront,2.22588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:17.788057 +AWS,ap-southeast-1,c8g.16xlarge,reserved_3y,partial_upfront,2.22588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:11.868623 +AWS,ap-southeast-1,c8g.16xlarge,spot,NA,1.067558,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920077 +AWS,ap-southeast-1,c8g.24xlarge,on_demand,NA,4.39872,USD,AWS Pricing API,2025-11-30T08:59:49.343579 +AWS,ap-southeast-1,c8g.24xlarge,reserved_1y,all_upfront,6.202283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:20.487831 +AWS,ap-southeast-1,c8g.24xlarge,reserved_1y,no_upfront,6.202283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:02.079991 +AWS,ap-southeast-1,c8g.24xlarge,reserved_1y,partial_upfront,6.202283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:46.491341 +AWS,ap-southeast-1,c8g.24xlarge,reserved_3y,all_upfront,2.067428,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:22.939626 +AWS,ap-southeast-1,c8g.24xlarge,reserved_3y,no_upfront,2.067428,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:05.081187 +AWS,ap-southeast-1,c8g.24xlarge,reserved_3y,partial_upfront,2.067428,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:57.961395 +AWS,ap-southeast-1,c8g.24xlarge,spot,NA,1.390675,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921301 +AWS,ap-southeast-1,c8g.2xlarge,on_demand,NA,0.36656,USD,AWS Pricing API,2025-11-30T08:59:14.615107 +AWS,ap-southeast-1,c8g.2xlarge,reserved_1y,all_upfront,0.434132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:46.082956 +AWS,ap-southeast-1,c8g.2xlarge,reserved_1y,no_upfront,0.434132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:27.349434 +AWS,ap-southeast-1,c8g.2xlarge,reserved_1y,partial_upfront,0.434132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:12.208172 +AWS,ap-southeast-1,c8g.2xlarge,reserved_3y,all_upfront,0.144711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:49.176884 +AWS,ap-southeast-1,c8g.2xlarge,reserved_3y,no_upfront,0.144711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:30.056242 +AWS,ap-southeast-1,c8g.2xlarge,reserved_3y,partial_upfront,0.144711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:23.847304 +AWS,ap-southeast-1,c8g.2xlarge,spot,NA,0.17186,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920397 +AWS,ap-southeast-1,c8g.48xlarge,on_demand,NA,8.79744,USD,AWS Pricing API,2025-11-30T09:00:08.337771 +AWS,ap-southeast-1,c8g.48xlarge,reserved_1y,all_upfront,7.389812,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:39.358455 +AWS,ap-southeast-1,c8g.48xlarge,reserved_1y,no_upfront,7.389812,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:21.027573 +AWS,ap-southeast-1,c8g.48xlarge,reserved_1y,partial_upfront,7.389812,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:05.299458 +AWS,ap-southeast-1,c8g.48xlarge,reserved_3y,all_upfront,3.694911,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:41.332083 +AWS,ap-southeast-1,c8g.48xlarge,reserved_3y,no_upfront,3.694911,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:24.229949 +AWS,ap-southeast-1,c8g.48xlarge,reserved_3y,partial_upfront,3.694911,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:16.670342 +AWS,ap-southeast-1,c8g.48xlarge,spot,NA,2.896864,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921773 +AWS,ap-southeast-1,c8g.4xlarge,on_demand,NA,0.73312,USD,AWS Pricing API,2025-11-30T08:59:17.052688 +AWS,ap-southeast-1,c8g.4xlarge,reserved_1y,all_upfront,0.615832,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:48.514261 +AWS,ap-southeast-1,c8g.4xlarge,reserved_1y,no_upfront,0.615832,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:29.830038 +AWS,ap-southeast-1,c8g.4xlarge,reserved_1y,partial_upfront,0.615832,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:14.646821 +AWS,ap-southeast-1,c8g.4xlarge,reserved_3y,all_upfront,0.307917,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:51.574869 +AWS,ap-southeast-1,c8g.4xlarge,reserved_3y,no_upfront,0.307917,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:32.548821 +AWS,ap-southeast-1,c8g.4xlarge,reserved_3y,partial_upfront,0.307917,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:26.258935 +AWS,ap-southeast-1,c8g.4xlarge,spot,NA,0.304882,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920453 +AWS,ap-southeast-1,c8g.8xlarge,on_demand,NA,1.46624,USD,AWS Pricing API,2025-11-30T08:59:20.584288 +AWS,ap-southeast-1,c8g.8xlarge,reserved_1y,all_upfront,2.067466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:52.025155 +AWS,ap-southeast-1,c8g.8xlarge,reserved_1y,no_upfront,2.067466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:33.384971 +AWS,ap-southeast-1,c8g.8xlarge,reserved_1y,partial_upfront,2.067466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:18.173280 +AWS,ap-southeast-1,c8g.8xlarge,reserved_3y,all_upfront,0.689155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:55.034154 +AWS,ap-southeast-1,c8g.8xlarge,reserved_3y,no_upfront,0.689155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:36.162652 +AWS,ap-southeast-1,c8g.8xlarge,reserved_3y,partial_upfront,0.689155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:29.770691 +AWS,ap-southeast-1,c8g.8xlarge,spot,NA,0.644254,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920558 +AWS,ap-southeast-1,c8g.large,on_demand,NA,0.09164,USD,AWS Pricing API,2025-11-30T09:00:02.620948 +AWS,ap-southeast-1,c8g.large,reserved_1y,all_upfront,0.056735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:33.641074 +AWS,ap-southeast-1,c8g.large,reserved_1y,no_upfront,0.056735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:15.307797 +AWS,ap-southeast-1,c8g.large,reserved_1y,partial_upfront,0.056735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:59.586375 +AWS,ap-southeast-1,c8g.large,reserved_3y,all_upfront,0.018912,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:35.765972 +AWS,ap-southeast-1,c8g.large,reserved_3y,no_upfront,0.018912,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:18.434108 +AWS,ap-southeast-1,c8g.large,reserved_3y,partial_upfront,0.018912,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:11.011158 +AWS,ap-southeast-1,c8g.large,spot,NA,0.040582,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921635 +AWS,ap-southeast-1,c8g.medium,on_demand,NA,0.04582,USD,AWS Pricing API,2025-11-30T08:59:47.174978 +AWS,ap-southeast-1,c8g.medium,reserved_1y,all_upfront,0.03242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:18.341312 +AWS,ap-southeast-1,c8g.medium,reserved_1y,no_upfront,0.03242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:59.880804 +AWS,ap-southeast-1,c8g.medium,reserved_1y,partial_upfront,0.03242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:44.341144 +AWS,ap-southeast-1,c8g.medium,reserved_3y,all_upfront,0.010807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:20.817575 +AWS,ap-southeast-1,c8g.medium,reserved_3y,no_upfront,0.010807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:02.883135 +AWS,ap-southeast-1,c8g.medium,reserved_3y,partial_upfront,0.010807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:55.793518 +AWS,ap-southeast-1,c8g.medium,spot,NA,0.016423,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921253 +AWS,ap-southeast-1,c8g.xlarge,on_demand,NA,0.18328,USD,AWS Pricing API,2025-11-30T08:59:10.812811 +AWS,ap-southeast-1,c8g.xlarge,reserved_1y,all_upfront,0.11347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:42.287037 +AWS,ap-southeast-1,c8g.xlarge,reserved_1y,no_upfront,0.11347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:23.524858 +AWS,ap-southeast-1,c8g.xlarge,reserved_1y,partial_upfront,0.11347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:08.424268 +AWS,ap-southeast-1,c8g.xlarge,reserved_3y,all_upfront,0.037823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:45.457272 +AWS,ap-southeast-1,c8g.xlarge,reserved_3y,no_upfront,0.037823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:26.181495 +AWS,ap-southeast-1,c8g.xlarge,reserved_3y,partial_upfront,0.037823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:20.084492 +AWS,ap-southeast-1,c8g.xlarge,spot,NA,0.092395,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920293 +AWS,ap-southeast-1,d3.2xlarge,on_demand,NA,1.252,USD,AWS Pricing API,2025-11-30T08:59:37.061065 +AWS,ap-southeast-1,d3.2xlarge,reserved_1y,all_upfront,0.736187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:08.344319 +AWS,ap-southeast-1,d3.2xlarge,reserved_1y,no_upfront,0.736187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:49.780487 +AWS,ap-southeast-1,d3.2xlarge,reserved_1y,partial_upfront,0.736187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:34.246772 +AWS,ap-southeast-1,d3.2xlarge,reserved_3y,all_upfront,0.245396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:10.883885 +AWS,ap-southeast-1,d3.2xlarge,reserved_3y,no_upfront,0.245396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:52.657607 +AWS,ap-southeast-1,d3.2xlarge,reserved_3y,partial_upfront,0.245396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:45.821976 +AWS,ap-southeast-1,d3.2xlarge,spot,NA,0.499593,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920997 +AWS,ap-southeast-1,d3.4xlarge,on_demand,NA,2.504,USD,AWS Pricing API,2025-11-30T09:00:04.250649 +AWS,ap-southeast-1,d3.4xlarge,reserved_1y,all_upfront,1.893,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:35.278010 +AWS,ap-southeast-1,d3.4xlarge,reserved_1y,no_upfront,1.893,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:16.939978 +AWS,ap-southeast-1,d3.4xlarge,reserved_1y,partial_upfront,1.893,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:01.211935 +AWS,ap-southeast-1,d3.4xlarge,reserved_3y,all_upfront,1.893,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:37.361742 +AWS,ap-southeast-1,d3.4xlarge,reserved_3y,no_upfront,1.893,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:20.097260 +AWS,ap-southeast-1,d3.4xlarge,reserved_3y,partial_upfront,1.893,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:12.624431 +AWS,ap-southeast-1,d3.4xlarge,spot,NA,0.959642,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921659 +AWS,ap-southeast-1,d3.8xlarge,on_demand,NA,5.00808,USD,AWS Pricing API,2025-11-30T08:59:07.157974 +AWS,ap-southeast-1,d3.8xlarge,reserved_1y,all_upfront,3.605764,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:38.620389 +AWS,ap-southeast-1,d3.8xlarge,reserved_1y,no_upfront,3.605764,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:19.806837 +AWS,ap-southeast-1,d3.8xlarge,reserved_1y,partial_upfront,3.605764,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:04.771237 +AWS,ap-southeast-1,d3.8xlarge,reserved_3y,all_upfront,2.403861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:41.867118 +AWS,ap-southeast-1,d3.8xlarge,reserved_3y,no_upfront,2.403861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:22.443050 +AWS,ap-southeast-1,d3.8xlarge,reserved_3y,partial_upfront,2.403861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:16.444205 +AWS,ap-southeast-1,d3.8xlarge,spot,NA,2.005706,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920194 +AWS,ap-southeast-1,d3.xlarge,on_demand,NA,0.626,USD,AWS Pricing API,2025-11-30T08:59:04.590377 +AWS,ap-southeast-1,d3.xlarge,reserved_1y,all_upfront,0.325,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:36.051331 +AWS,ap-southeast-1,d3.xlarge,reserved_1y,no_upfront,0.325,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:17.200618 +AWS,ap-southeast-1,d3.xlarge,reserved_1y,partial_upfront,0.325,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:02.182923 +AWS,ap-southeast-1,d3.xlarge,reserved_3y,all_upfront,0.325,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:39.338992 +AWS,ap-southeast-1,d3.xlarge,reserved_3y,no_upfront,0.325,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:19.840608 +AWS,ap-southeast-1,d3.xlarge,reserved_3y,partial_upfront,0.325,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:13.874831 +AWS,ap-southeast-1,d3.xlarge,spot,NA,0.209193,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920142 +AWS,ap-southeast-1,d3en.12xlarge,on_demand,NA,7.90752,USD,AWS Pricing API,2025-11-30T08:59:56.864782 +AWS,ap-southeast-1,d3en.12xlarge,reserved_1y,all_upfront,3.41605,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:27.949354 +AWS,ap-southeast-1,d3en.12xlarge,reserved_1y,no_upfront,3.41605,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:09.579517 +AWS,ap-southeast-1,d3en.12xlarge,reserved_1y,partial_upfront,3.41605,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:53.936068 +AWS,ap-southeast-1,d3en.12xlarge,reserved_3y,all_upfront,3.41605,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:30.212749 +AWS,ap-southeast-1,d3en.12xlarge,reserved_3y,no_upfront,3.41605,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:12.630244 +AWS,ap-southeast-1,d3en.12xlarge,reserved_3y,partial_upfront,3.41605,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:05.358511 +AWS,ap-southeast-1,d3en.12xlarge,spot,NA,5.65736,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921473 +AWS,ap-southeast-1,d3en.2xlarge,on_demand,NA,1.318,USD,AWS Pricing API,2025-11-30T08:59:35.825730 +AWS,ap-southeast-1,d3en.2xlarge,reserved_1y,all_upfront,0.774886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:07.126908 +AWS,ap-southeast-1,d3en.2xlarge,reserved_1y,no_upfront,0.774886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:48.552502 +AWS,ap-southeast-1,d3en.2xlarge,reserved_1y,partial_upfront,0.774886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:33.015858 +AWS,ap-southeast-1,d3en.2xlarge,reserved_3y,all_upfront,0.258295,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:09.688760 +AWS,ap-southeast-1,d3en.2xlarge,reserved_3y,no_upfront,0.258295,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:51.409798 +AWS,ap-southeast-1,d3en.2xlarge,reserved_3y,partial_upfront,0.258295,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:44.605615 +AWS,ap-southeast-1,d3en.2xlarge,spot,NA,0.605489,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920948 +AWS,ap-southeast-1,d3en.4xlarge,on_demand,NA,2.636,USD,AWS Pricing API,2025-11-30T08:59:43.328695 +AWS,ap-southeast-1,d3en.4xlarge,reserved_1y,all_upfront,1.859817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:14.562553 +AWS,ap-southeast-1,d3en.4xlarge,reserved_1y,no_upfront,1.859817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:56.054313 +AWS,ap-southeast-1,d3en.4xlarge,reserved_1y,partial_upfront,1.859817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:40.453091 +AWS,ap-southeast-1,d3en.4xlarge,reserved_3y,all_upfront,0.619939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:17.083255 +AWS,ap-southeast-1,d3en.4xlarge,reserved_3y,no_upfront,0.619939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:58.988863 +AWS,ap-southeast-1,d3en.4xlarge,reserved_3y,partial_upfront,0.619939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:51.994201 +AWS,ap-southeast-1,d3en.4xlarge,spot,NA,1.115142,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921170 +AWS,ap-southeast-1,d3en.6xlarge,on_demand,NA,3.954,USD,AWS Pricing API,2025-11-30T09:00:09.557452 +AWS,ap-southeast-1,d3en.6xlarge,reserved_1y,all_upfront,2.372073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:40.566797 +AWS,ap-southeast-1,d3en.6xlarge,reserved_1y,no_upfront,2.372073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:22.265089 +AWS,ap-southeast-1,d3en.6xlarge,reserved_1y,partial_upfront,2.372073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:06.502896 +AWS,ap-southeast-1,d3en.6xlarge,reserved_3y,all_upfront,1.581358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:42.518554 +AWS,ap-southeast-1,d3en.6xlarge,reserved_3y,no_upfront,1.581358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:25.471768 +AWS,ap-southeast-1,d3en.6xlarge,reserved_3y,partial_upfront,1.581358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:17.884538 +AWS,ap-southeast-1,d3en.6xlarge,spot,NA,1.639543,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921789 +AWS,ap-southeast-1,d3en.8xlarge,on_demand,NA,5.27168,USD,AWS Pricing API,2025-11-30T09:00:04.934894 +AWS,ap-southeast-1,d3en.8xlarge,reserved_1y,all_upfront,3.98539,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:35.975819 +AWS,ap-southeast-1,d3en.8xlarge,reserved_1y,no_upfront,3.98539,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:17.622263 +AWS,ap-southeast-1,d3en.8xlarge,reserved_1y,partial_upfront,3.98539,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:01.900309 +AWS,ap-southeast-1,d3en.8xlarge,reserved_3y,all_upfront,3.98539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:38.022995 +AWS,ap-southeast-1,d3en.8xlarge,reserved_3y,no_upfront,3.98539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:20.784569 +AWS,ap-southeast-1,d3en.8xlarge,reserved_3y,partial_upfront,3.98539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:13.304292 +AWS,ap-southeast-1,d3en.8xlarge,spot,NA,3.544192,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921667 +AWS,ap-southeast-1,d3en.xlarge,on_demand,NA,0.659,USD,AWS Pricing API,2025-11-30T08:59:19.896614 +AWS,ap-southeast-1,d3en.xlarge,reserved_1y,all_upfront,0.387443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:51.354652 +AWS,ap-southeast-1,d3en.xlarge,reserved_1y,no_upfront,0.387443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:32.690874 +AWS,ap-southeast-1,d3en.xlarge,reserved_1y,partial_upfront,0.387443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:17.489337 +AWS,ap-southeast-1,d3en.xlarge,reserved_3y,all_upfront,0.129148,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:54.373727 +AWS,ap-southeast-1,d3en.xlarge,reserved_3y,no_upfront,0.129148,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:35.474234 +AWS,ap-southeast-1,d3en.xlarge,reserved_3y,partial_upfront,0.129148,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:29.096590 +AWS,ap-southeast-1,d3en.xlarge,spot,NA,0.251202,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920566 +AWS,ap-southeast-1,g4dn.12xlarge,on_demand,NA,5.474,USD,AWS Pricing API,2025-11-30T08:59:07.566161 +AWS,ap-southeast-1,g4dn.12xlarge,reserved_1y,all_upfront,3.218607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:39.023954 +AWS,ap-southeast-1,g4dn.12xlarge,reserved_1y,no_upfront,3.218607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:20.213251 +AWS,ap-southeast-1,g4dn.12xlarge,reserved_1y,partial_upfront,3.218607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:05.174680 +AWS,ap-southeast-1,g4dn.12xlarge,reserved_3y,all_upfront,1.072869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:42.261932 +AWS,ap-southeast-1,g4dn.12xlarge,reserved_3y,no_upfront,1.072869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:22.855817 +AWS,ap-southeast-1,g4dn.12xlarge,reserved_3y,partial_upfront,1.072869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:16.847063 +AWS,ap-southeast-1,g4dn.12xlarge,spot,NA,2.018513,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920202 +AWS,ap-southeast-1,g4dn.16xlarge,on_demand,NA,6.089,USD,AWS Pricing API,2025-11-30T08:59:13.797981 +AWS,ap-southeast-1,g4dn.16xlarge,reserved_1y,all_upfront,3.551,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:45.266551 +AWS,ap-southeast-1,g4dn.16xlarge,reserved_1y,no_upfront,3.551,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:26.530175 +AWS,ap-southeast-1,g4dn.16xlarge,reserved_1y,partial_upfront,3.551,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:11.394670 +AWS,ap-southeast-1,g4dn.16xlarge,reserved_3y,all_upfront,3.551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:48.384792 +AWS,ap-southeast-1,g4dn.16xlarge,reserved_3y,no_upfront,3.551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:29.216701 +AWS,ap-southeast-1,g4dn.16xlarge,reserved_3y,partial_upfront,3.551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:23.039441 +AWS,ap-southeast-1,g4dn.16xlarge,spot,NA,1.873906,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920349 +AWS,ap-southeast-1,g4dn.2xlarge,on_demand,NA,1.052,USD,AWS Pricing API,2025-11-30T08:59:48.118915 +AWS,ap-southeast-1,g4dn.2xlarge,reserved_1y,all_upfront,0.663,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:19.284632 +AWS,ap-southeast-1,g4dn.2xlarge,reserved_1y,no_upfront,0.663,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:00.841429 +AWS,ap-southeast-1,g4dn.2xlarge,reserved_1y,partial_upfront,0.663,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:45.287086 +AWS,ap-southeast-1,g4dn.2xlarge,reserved_3y,all_upfront,0.663,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:21.749205 +AWS,ap-southeast-1,g4dn.2xlarge,reserved_3y,no_upfront,0.663,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:03.844422 +AWS,ap-southeast-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.663,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:56.753195 +AWS,ap-southeast-1,g4dn.2xlarge,spot,NA,0.407761,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921257 +AWS,ap-southeast-1,g4dn.4xlarge,on_demand,NA,1.685,USD,AWS Pricing API,2025-11-30T08:59:28.501981 +AWS,ap-southeast-1,g4dn.4xlarge,reserved_1y,all_upfront,1.061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:59.813164 +AWS,ap-southeast-1,g4dn.4xlarge,reserved_1y,no_upfront,1.061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:41.216234 +AWS,ap-southeast-1,g4dn.4xlarge,reserved_1y,partial_upfront,1.061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:25.875729 +AWS,ap-southeast-1,g4dn.4xlarge,reserved_3y,all_upfront,1.061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:02.621104 +AWS,ap-southeast-1,g4dn.4xlarge,reserved_3y,no_upfront,1.061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:44.053833 +AWS,ap-southeast-1,g4dn.4xlarge,reserved_3y,partial_upfront,1.061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:37.418793 +AWS,ap-southeast-1,g4dn.4xlarge,spot,NA,0.683135,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920752 +AWS,ap-southeast-1,g4dn.8xlarge,on_demand,NA,3.045,USD,AWS Pricing API,2025-11-30T08:59:31.270447 +AWS,ap-southeast-1,g4dn.8xlarge,reserved_1y,all_upfront,1.918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:02.649806 +AWS,ap-southeast-1,g4dn.8xlarge,reserved_1y,no_upfront,1.918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:43.986884 +AWS,ap-southeast-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:28.574744 +AWS,ap-southeast-1,g4dn.8xlarge,reserved_3y,all_upfront,1.918,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:05.307666 +AWS,ap-southeast-1,g4dn.8xlarge,reserved_3y,no_upfront,1.918,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:46.825454 +AWS,ap-southeast-1,g4dn.8xlarge,reserved_3y,partial_upfront,1.918,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:40.124795 +AWS,ap-southeast-1,g4dn.8xlarge,spot,NA,1.119018,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920851 +AWS,ap-southeast-1,g4dn.xlarge,on_demand,NA,0.736,USD,AWS Pricing API,2025-11-30T08:59:54.833844 +AWS,ap-southeast-1,g4dn.xlarge,reserved_1y,all_upfront,0.533,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:25.912340 +AWS,ap-southeast-1,g4dn.xlarge,reserved_1y,no_upfront,0.533,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:07.532661 +AWS,ap-southeast-1,g4dn.xlarge,reserved_1y,partial_upfront,0.533,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:51.925887 +AWS,ap-southeast-1,g4dn.xlarge,reserved_3y,all_upfront,0.533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:28.207461 +AWS,ap-southeast-1,g4dn.xlarge,reserved_3y,no_upfront,0.533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:10.570735 +AWS,ap-southeast-1,g4dn.xlarge,reserved_3y,partial_upfront,0.533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:03.347771 +AWS,ap-southeast-1,g4dn.xlarge,spot,NA,0.309769,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921435 +AWS,ap-southeast-1,i2.2xlarge,on_demand,NA,2.035,USD,AWS Pricing API,2025-11-30T08:59:42.375940 +AWS,ap-southeast-1,i2.2xlarge,reserved_1y,all_upfront,1.025457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:13.620669 +AWS,ap-southeast-1,i2.2xlarge,reserved_1y,no_upfront,1.025457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:55.104853 +AWS,ap-southeast-1,i2.2xlarge,reserved_1y,partial_upfront,1.025457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:39.516540 +AWS,ap-southeast-1,i2.2xlarge,reserved_3y,all_upfront,0.341819,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:16.163706 +AWS,ap-southeast-1,i2.2xlarge,reserved_3y,no_upfront,0.341819,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:58.021625 +AWS,ap-southeast-1,i2.2xlarge,reserved_3y,partial_upfront,0.341819,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:51.063121 +AWS,ap-southeast-1,i2.2xlarge,spot,NA,0.642393,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921115 +AWS,ap-southeast-1,i2.4xlarge,on_demand,NA,4.07,USD,AWS Pricing API,2025-11-30T08:59:38.292843 +AWS,ap-southeast-1,i2.4xlarge,reserved_1y,all_upfront,2.402027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:09.560933 +AWS,ap-southeast-1,i2.4xlarge,reserved_1y,no_upfront,2.402027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:51.031342 +AWS,ap-southeast-1,i2.4xlarge,reserved_1y,partial_upfront,2.402027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:35.455024 +AWS,ap-southeast-1,i2.4xlarge,reserved_3y,all_upfront,1.601342,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:12.087231 +AWS,ap-southeast-1,i2.4xlarge,reserved_3y,no_upfront,1.601342,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:53.896580 +AWS,ap-southeast-1,i2.4xlarge,reserved_3y,partial_upfront,1.601342,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:47.045992 +AWS,ap-southeast-1,i2.4xlarge,spot,NA,1.262251,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921025 +AWS,ap-southeast-1,i2.8xlarge,on_demand,NA,8.14,USD,AWS Pricing API,2025-11-30T08:59:44.971359 +AWS,ap-southeast-1,i2.8xlarge,reserved_1y,all_upfront,4.097717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:16.175582 +AWS,ap-southeast-1,i2.8xlarge,reserved_1y,no_upfront,4.097717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:57.682436 +AWS,ap-southeast-1,i2.8xlarge,reserved_1y,partial_upfront,4.097717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:42.166132 +AWS,ap-southeast-1,i2.8xlarge,reserved_3y,all_upfront,1.365906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:18.677937 +AWS,ap-southeast-1,i2.8xlarge,reserved_3y,no_upfront,1.365906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:00.648418 +AWS,ap-southeast-1,i2.8xlarge,reserved_3y,partial_upfront,1.365906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:53.610662 +AWS,ap-southeast-1,i2.8xlarge,spot,NA,2.409145,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921178 +AWS,ap-southeast-1,i2.xlarge,on_demand,NA,1.018,USD,AWS Pricing API,2025-11-30T08:59:45.517178 +AWS,ap-southeast-1,i2.xlarge,reserved_1y,all_upfront,0.600228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:16.719528 +AWS,ap-southeast-1,i2.xlarge,reserved_1y,no_upfront,0.600228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:58.224771 +AWS,ap-southeast-1,i2.xlarge,reserved_1y,partial_upfront,0.600228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:42.700207 +AWS,ap-southeast-1,i2.xlarge,reserved_3y,all_upfront,0.400076,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:19.215783 +AWS,ap-southeast-1,i2.xlarge,reserved_3y,no_upfront,0.400076,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:01.198475 +AWS,ap-southeast-1,i2.xlarge,reserved_3y,partial_upfront,0.400076,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:54.151910 +AWS,ap-southeast-1,i2.xlarge,spot,NA,0.3006,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921211 +AWS,ap-southeast-1,i3.16xlarge,on_demand,NA,5.984,USD,AWS Pricing API,2025-11-30T08:59:51.892555 +AWS,ap-southeast-1,i3.16xlarge,reserved_1y,all_upfront,5.385155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:22.918489 +AWS,ap-southeast-1,i3.16xlarge,reserved_1y,no_upfront,5.385155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:04.543887 +AWS,ap-southeast-1,i3.16xlarge,reserved_1y,partial_upfront,5.385155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:48.956667 +AWS,ap-southeast-1,i3.16xlarge,reserved_3y,all_upfront,2.692385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:25.312242 +AWS,ap-southeast-1,i3.16xlarge,reserved_3y,no_upfront,2.692385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:07.558465 +AWS,ap-southeast-1,i3.16xlarge,reserved_3y,partial_upfront,2.692385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:00.373858 +AWS,ap-southeast-1,i3.16xlarge,spot,NA,1.937012,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921372 +AWS,ap-southeast-1,i3.2xlarge,on_demand,NA,0.748,USD,AWS Pricing API,2025-11-30T08:59:11.077964 +AWS,ap-southeast-1,i3.2xlarge,reserved_1y,all_upfront,0.476484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:42.560989 +AWS,ap-southeast-1,i3.2xlarge,reserved_1y,no_upfront,0.476484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:23.795748 +AWS,ap-southeast-1,i3.2xlarge,reserved_1y,partial_upfront,0.476484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:08.691434 +AWS,ap-southeast-1,i3.2xlarge,reserved_3y,all_upfront,0.158828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:45.729751 +AWS,ap-southeast-1,i3.2xlarge,reserved_3y,no_upfront,0.158828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:26.457431 +AWS,ap-southeast-1,i3.2xlarge,reserved_3y,partial_upfront,0.158828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:20.354435 +AWS,ap-southeast-1,i3.2xlarge,spot,NA,0.308865,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920277 +AWS,ap-southeast-1,i3.4xlarge,on_demand,NA,1.496,USD,AWS Pricing API,2025-11-30T08:59:12.562890 +AWS,ap-southeast-1,i3.4xlarge,reserved_1y,all_upfront,1.898402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:44.045401 +AWS,ap-southeast-1,i3.4xlarge,reserved_1y,no_upfront,1.898402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:25.300273 +AWS,ap-southeast-1,i3.4xlarge,reserved_1y,partial_upfront,1.898402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:10.174691 +AWS,ap-southeast-1,i3.4xlarge,reserved_3y,all_upfront,0.632801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:47.191092 +AWS,ap-southeast-1,i3.4xlarge,reserved_3y,no_upfront,0.632801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:27.978112 +AWS,ap-southeast-1,i3.4xlarge,reserved_3y,partial_upfront,0.632801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:21.823026 +AWS,ap-southeast-1,i3.4xlarge,spot,NA,0.571722,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920327 +AWS,ap-southeast-1,i3.8xlarge,on_demand,NA,2.992,USD,AWS Pricing API,2025-11-30T08:59:06.751779 +AWS,ap-southeast-1,i3.8xlarge,reserved_1y,all_upfront,2.692635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:38.211732 +AWS,ap-southeast-1,i3.8xlarge,reserved_1y,no_upfront,2.692635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:19.395395 +AWS,ap-southeast-1,i3.8xlarge,reserved_1y,partial_upfront,2.692635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:04.365203 +AWS,ap-southeast-1,i3.8xlarge,reserved_3y,all_upfront,1.346212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:41.470474 +AWS,ap-southeast-1,i3.8xlarge,reserved_3y,no_upfront,1.346212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:22.027517 +AWS,ap-southeast-1,i3.8xlarge,reserved_3y,partial_upfront,1.346212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:16.028224 +AWS,ap-southeast-1,i3.8xlarge,spot,NA,0.9969,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920186 +AWS,ap-southeast-1,i3.large,on_demand,NA,0.187,USD,AWS Pricing API,2025-11-30T08:59:11.760679 +AWS,ap-southeast-1,i3.large,reserved_1y,all_upfront,0.119064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:43.235734 +AWS,ap-southeast-1,i3.large,reserved_1y,no_upfront,0.119064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:24.484830 +AWS,ap-southeast-1,i3.large,reserved_1y,partial_upfront,0.119064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:09.365220 +AWS,ap-southeast-1,i3.large,reserved_3y,all_upfront,0.039688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:46.391059 +AWS,ap-southeast-1,i3.large,reserved_3y,no_upfront,0.039688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:27.157927 +AWS,ap-southeast-1,i3.large,reserved_3y,partial_upfront,0.039688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:21.027349 +AWS,ap-southeast-1,i3.large,spot,NA,0.067903,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920344 +AWS,ap-southeast-1,i3.xlarge,on_demand,NA,0.374,USD,AWS Pricing API,2025-11-30T08:59:37.471813 +AWS,ap-southeast-1,i3.xlarge,reserved_1y,all_upfront,0.568037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:08.747081 +AWS,ap-southeast-1,i3.xlarge,reserved_1y,no_upfront,0.568037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:50.193222 +AWS,ap-southeast-1,i3.xlarge,reserved_1y,partial_upfront,0.568037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:34.649320 +AWS,ap-southeast-1,i3.xlarge,reserved_3y,all_upfront,0.189346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:11.286639 +AWS,ap-southeast-1,i3.xlarge,reserved_3y,no_upfront,0.189346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:53.070874 +AWS,ap-southeast-1,i3.xlarge,reserved_3y,partial_upfront,0.189346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:46.238413 +AWS,ap-southeast-1,i3.xlarge,spot,NA,0.146993,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920992 +AWS,ap-southeast-1,i3en.12xlarge,on_demand,NA,6.504,USD,AWS Pricing API,2025-11-30T08:59:08.766310 +AWS,ap-southeast-1,i3en.12xlarge,reserved_1y,all_upfront,5.243192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:40.254827 +AWS,ap-southeast-1,i3en.12xlarge,reserved_1y,no_upfront,5.243192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:21.437897 +AWS,ap-southeast-1,i3en.12xlarge,reserved_1y,partial_upfront,5.243192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:06.385430 +AWS,ap-southeast-1,i3en.12xlarge,reserved_3y,all_upfront,2.621731,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:43.466387 +AWS,ap-southeast-1,i3en.12xlarge,reserved_3y,no_upfront,2.621731,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:24.112604 +AWS,ap-southeast-1,i3en.12xlarge,reserved_3y,partial_upfront,2.621731,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:18.057450 +AWS,ap-southeast-1,i3en.12xlarge,spot,NA,2.383156,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920218 +AWS,ap-southeast-1,i3en.24xlarge,on_demand,NA,13.008,USD,AWS Pricing API,2025-11-30T08:59:14.070626 +AWS,ap-southeast-1,i3en.24xlarge,reserved_1y,all_upfront,17.75,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:45.545639 +AWS,ap-southeast-1,i3en.24xlarge,reserved_1y,no_upfront,17.75,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:26.802916 +AWS,ap-southeast-1,i3en.24xlarge,reserved_1y,partial_upfront,17.75,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:11.665932 +AWS,ap-southeast-1,i3en.24xlarge,reserved_3y,all_upfront,5.916667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:48.651696 +AWS,ap-southeast-1,i3en.24xlarge,reserved_3y,no_upfront,5.916667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:29.500699 +AWS,ap-southeast-1,i3en.24xlarge,reserved_3y,partial_upfront,5.916667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:23.307052 +AWS,ap-southeast-1,i3en.24xlarge,spot,NA,4.917688,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920365 +AWS,ap-southeast-1,i3en.2xlarge,on_demand,NA,1.084,USD,AWS Pricing API,2025-11-30T08:59:03.905288 +AWS,ap-southeast-1,i3en.2xlarge,reserved_1y,all_upfront,0.853,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:35.365737 +AWS,ap-southeast-1,i3en.2xlarge,reserved_1y,no_upfront,0.853,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:16.523746 +AWS,ap-southeast-1,i3en.2xlarge,reserved_1y,partial_upfront,0.853,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:01.493090 +AWS,ap-southeast-1,i3en.2xlarge,reserved_3y,all_upfront,0.853,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:38.679897 +AWS,ap-southeast-1,i3en.2xlarge,reserved_3y,no_upfront,0.853,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:19.158287 +AWS,ap-southeast-1,i3en.2xlarge,reserved_3y,partial_upfront,0.853,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:13.205249 +AWS,ap-southeast-1,i3en.2xlarge,spot,NA,0.452222,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920130 +AWS,ap-southeast-1,i3en.3xlarge,on_demand,NA,1.626,USD,AWS Pricing API,2025-11-30T08:59:59.055068 +AWS,ap-southeast-1,i3en.3xlarge,reserved_1y,all_upfront,1.058452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:30.128912 +AWS,ap-southeast-1,i3en.3xlarge,reserved_1y,no_upfront,1.058452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:11.762314 +AWS,ap-southeast-1,i3en.3xlarge,reserved_1y,partial_upfront,1.058452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:56.084762 +AWS,ap-southeast-1,i3en.3xlarge,reserved_3y,all_upfront,0.705484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:32.335322 +AWS,ap-southeast-1,i3en.3xlarge,reserved_3y,no_upfront,0.705484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:14.828414 +AWS,ap-southeast-1,i3en.3xlarge,reserved_3y,partial_upfront,0.705484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:07.507423 +AWS,ap-southeast-1,i3en.3xlarge,spot,NA,0.63353,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921520 +AWS,ap-southeast-1,i3en.6xlarge,on_demand,NA,3.252,USD,AWS Pricing API,2025-11-30T08:59:50.304276 +AWS,ap-southeast-1,i3en.6xlarge,reserved_1y,all_upfront,2.118018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:21.428087 +AWS,ap-southeast-1,i3en.6xlarge,reserved_1y,no_upfront,2.118018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:03.036141 +AWS,ap-southeast-1,i3en.6xlarge,reserved_1y,partial_upfront,2.118018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:47.435998 +AWS,ap-southeast-1,i3en.6xlarge,reserved_3y,all_upfront,1.412006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:23.867706 +AWS,ap-southeast-1,i3en.6xlarge,reserved_3y,no_upfront,1.412006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:06.044540 +AWS,ap-southeast-1,i3en.6xlarge,reserved_3y,partial_upfront,1.412006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:58.900379 +AWS,ap-southeast-1,i3en.6xlarge,spot,NA,1.055697,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921332 +AWS,ap-southeast-1,i3en.large,on_demand,NA,0.271,USD,AWS Pricing API,2025-11-30T08:59:22.736707 +AWS,ap-southeast-1,i3en.large,reserved_1y,all_upfront,0.199087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:54.053295 +AWS,ap-southeast-1,i3en.large,reserved_1y,no_upfront,0.199087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:35.432341 +AWS,ap-southeast-1,i3en.large,reserved_1y,partial_upfront,0.199087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:20.192709 +AWS,ap-southeast-1,i3en.large,reserved_3y,all_upfront,0.066362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:57.020924 +AWS,ap-southeast-1,i3en.large,reserved_3y,no_upfront,0.066362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:38.236985 +AWS,ap-southeast-1,i3en.large,reserved_3y,partial_upfront,0.066362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:31.790030 +AWS,ap-southeast-1,i3en.large,spot,NA,0.088696,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920636 +AWS,ap-southeast-1,i3en.xlarge,on_demand,NA,0.542,USD,AWS Pricing API,2025-11-30T08:59:22.027238 +AWS,ap-southeast-1,i3en.xlarge,reserved_1y,all_upfront,0.406082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:53.385070 +AWS,ap-southeast-1,i3en.xlarge,reserved_1y,no_upfront,0.406082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:34.748947 +AWS,ap-southeast-1,i3en.xlarge,reserved_1y,partial_upfront,0.406082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:19.515834 +AWS,ap-southeast-1,i3en.xlarge,reserved_3y,all_upfront,0.270694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:56.362845 +AWS,ap-southeast-1,i3en.xlarge,reserved_3y,no_upfront,0.270694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:37.542520 +AWS,ap-southeast-1,i3en.xlarge,reserved_3y,partial_upfront,0.270694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:31.118324 +AWS,ap-southeast-1,i3en.xlarge,spot,NA,0.213567,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920620 +AWS,ap-southeast-1,i4g.16xlarge,on_demand,NA,5.92416,USD,AWS Pricing API,2025-11-30T08:59:39.387000 +AWS,ap-southeast-1,i4g.16xlarge,reserved_1y,all_upfront,3.86739,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:10.644283 +AWS,ap-southeast-1,i4g.16xlarge,reserved_1y,no_upfront,3.86739,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:52.123135 +AWS,ap-southeast-1,i4g.16xlarge,reserved_1y,partial_upfront,3.86739,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:36.532110 +AWS,ap-southeast-1,i4g.16xlarge,reserved_3y,all_upfront,3.86739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:13.151776 +AWS,ap-southeast-1,i4g.16xlarge,reserved_3y,no_upfront,3.86739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:55.005352 +AWS,ap-southeast-1,i4g.16xlarge,reserved_3y,partial_upfront,3.86739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:48.115619 +AWS,ap-southeast-1,i4g.16xlarge,spot,NA,2.35933,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921056 +AWS,ap-southeast-1,i4g.2xlarge,on_demand,NA,0.74052,USD,AWS Pricing API,2025-11-30T08:59:53.501814 +AWS,ap-southeast-1,i4g.2xlarge,reserved_1y,all_upfront,0.451142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:24.560951 +AWS,ap-southeast-1,i4g.2xlarge,reserved_1y,no_upfront,0.451142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:06.173732 +AWS,ap-southeast-1,i4g.2xlarge,reserved_1y,partial_upfront,0.451142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:50.586007 +AWS,ap-southeast-1,i4g.2xlarge,reserved_3y,all_upfront,0.150381,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:26.880528 +AWS,ap-southeast-1,i4g.2xlarge,reserved_3y,no_upfront,0.150381,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:09.201006 +AWS,ap-southeast-1,i4g.2xlarge,reserved_3y,partial_upfront,0.150381,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:02.001434 +AWS,ap-southeast-1,i4g.2xlarge,spot,NA,0.29155,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921400 +AWS,ap-southeast-1,i4g.4xlarge,on_demand,NA,1.48104,USD,AWS Pricing API,2025-11-30T08:59:52.429435 +AWS,ap-southeast-1,i4g.4xlarge,reserved_1y,all_upfront,1.270031,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:23.464450 +AWS,ap-southeast-1,i4g.4xlarge,reserved_1y,no_upfront,1.270031,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:05.086923 +AWS,ap-southeast-1,i4g.4xlarge,reserved_1y,partial_upfront,1.270031,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:49.495331 +AWS,ap-southeast-1,i4g.4xlarge,reserved_3y,all_upfront,0.635024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:25.834095 +AWS,ap-southeast-1,i4g.4xlarge,reserved_3y,no_upfront,0.635024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:08.104788 +AWS,ap-southeast-1,i4g.4xlarge,reserved_3y,partial_upfront,0.635024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:00.917460 +AWS,ap-southeast-1,i4g.4xlarge,spot,NA,0.584393,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921375 +AWS,ap-southeast-1,i4g.8xlarge,on_demand,NA,2.96208,USD,AWS Pricing API,2025-11-30T08:59:39.652322 +AWS,ap-southeast-1,i4g.8xlarge,reserved_1y,all_upfront,4.476142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:10.908930 +AWS,ap-southeast-1,i4g.8xlarge,reserved_1y,no_upfront,4.476142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:52.395350 +AWS,ap-southeast-1,i4g.8xlarge,reserved_1y,partial_upfront,4.476142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:36.797165 +AWS,ap-southeast-1,i4g.8xlarge,reserved_3y,all_upfront,1.492047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:13.418676 +AWS,ap-southeast-1,i4g.8xlarge,reserved_3y,no_upfront,1.492047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:55.273651 +AWS,ap-southeast-1,i4g.8xlarge,reserved_3y,partial_upfront,1.492047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:48.379674 +AWS,ap-southeast-1,i4g.8xlarge,spot,NA,1.261782,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921068 +AWS,ap-southeast-1,i4g.large,on_demand,NA,0.18513,USD,AWS Pricing API,2025-11-30T08:59:13.106418 +AWS,ap-southeast-1,i4g.large,reserved_1y,all_upfront,0.12086,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:44.584882 +AWS,ap-southeast-1,i4g.large,reserved_1y,no_upfront,0.12086,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:25.844044 +AWS,ap-southeast-1,i4g.large,reserved_1y,partial_upfront,0.12086,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:10.710913 +AWS,ap-southeast-1,i4g.large,reserved_3y,all_upfront,0.12086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:47.724337 +AWS,ap-southeast-1,i4g.large,reserved_3y,no_upfront,0.12086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:28.528757 +AWS,ap-southeast-1,i4g.large,reserved_3y,partial_upfront,0.12086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:22.371763 +AWS,ap-southeast-1,i4g.large,spot,NA,0.067497,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920361 +AWS,ap-southeast-1,i4g.xlarge,on_demand,NA,0.37026,USD,AWS Pricing API,2025-11-30T08:59:36.231580 +AWS,ap-southeast-1,i4g.xlarge,reserved_1y,all_upfront,0.317508,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:07.531188 +AWS,ap-southeast-1,i4g.xlarge,reserved_1y,no_upfront,0.317508,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:48.960826 +AWS,ap-southeast-1,i4g.xlarge,reserved_1y,partial_upfront,0.317508,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:33.422569 +AWS,ap-southeast-1,i4g.xlarge,reserved_3y,all_upfront,0.158756,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:10.085359 +AWS,ap-southeast-1,i4g.xlarge,reserved_3y,no_upfront,0.158756,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:51.828997 +AWS,ap-southeast-1,i4g.xlarge,reserved_3y,partial_upfront,0.158756,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:45.007541 +AWS,ap-southeast-1,i4g.xlarge,spot,NA,0.146105,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920968 +AWS,ap-southeast-1,i4i.16xlarge,on_demand,NA,6.582,USD,AWS Pricing API,2025-11-30T08:59:27.016847 +AWS,ap-southeast-1,i4i.16xlarge,reserved_1y,all_upfront,4.092233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:58.326210 +AWS,ap-southeast-1,i4i.16xlarge,reserved_1y,no_upfront,4.092233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:39.691383 +AWS,ap-southeast-1,i4i.16xlarge,reserved_1y,partial_upfront,4.092233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:24.385995 +AWS,ap-southeast-1,i4i.16xlarge,reserved_3y,all_upfront,2.728078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:01.145042 +AWS,ap-southeast-1,i4i.16xlarge,reserved_3y,no_upfront,2.728078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:42.525001 +AWS,ap-southeast-1,i4i.16xlarge,reserved_3y,partial_upfront,2.728078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:35.946839 +AWS,ap-southeast-1,i4i.16xlarge,spot,NA,2.245945,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920733 +AWS,ap-southeast-1,i4i.2xlarge,on_demand,NA,0.823,USD,AWS Pricing API,2025-11-30T08:59:43.192034 +AWS,ap-southeast-1,i4i.2xlarge,reserved_1y,all_upfront,0.511822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:14.428820 +AWS,ap-southeast-1,i4i.2xlarge,reserved_1y,no_upfront,0.511822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:55.916089 +AWS,ap-southeast-1,i4i.2xlarge,reserved_1y,partial_upfront,0.511822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:40.320106 +AWS,ap-southeast-1,i4i.2xlarge,reserved_3y,all_upfront,0.341274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:16.952791 +AWS,ap-southeast-1,i4i.2xlarge,reserved_3y,no_upfront,0.341274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:58.853159 +AWS,ap-southeast-1,i4i.2xlarge,reserved_3y,partial_upfront,0.341274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:51.861650 +AWS,ap-southeast-1,i4i.2xlarge,spot,NA,0.330585,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921135 +AWS,ap-southeast-1,i4i.32xlarge,on_demand,NA,13.1648,USD,AWS Pricing API,2025-11-30T08:59:55.643320 +AWS,ap-southeast-1,i4i.32xlarge,reserved_1y,all_upfront,13.533494,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:26.740885 +AWS,ap-southeast-1,i4i.32xlarge,reserved_1y,no_upfront,13.533494,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:08.348992 +AWS,ap-southeast-1,i4i.32xlarge,reserved_1y,partial_upfront,13.533494,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:52.725733 +AWS,ap-southeast-1,i4i.32xlarge,reserved_3y,all_upfront,6.766751,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:29.013085 +AWS,ap-southeast-1,i4i.32xlarge,reserved_3y,no_upfront,6.766751,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:11.394015 +AWS,ap-southeast-1,i4i.32xlarge,reserved_3y,partial_upfront,6.766751,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:04.150180 +AWS,ap-southeast-1,i4i.32xlarge,spot,NA,4.464529,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921454 +AWS,ap-southeast-1,i4i.4xlarge,on_demand,NA,1.646,USD,AWS Pricing API,2025-11-30T08:59:31.545146 +AWS,ap-southeast-1,i4i.4xlarge,reserved_1y,all_upfront,1.279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:02.921666 +AWS,ap-southeast-1,i4i.4xlarge,reserved_1y,no_upfront,1.279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:44.263576 +AWS,ap-southeast-1,i4i.4xlarge,reserved_1y,partial_upfront,1.279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:28.842550 +AWS,ap-southeast-1,i4i.4xlarge,reserved_3y,all_upfront,1.279,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:05.575031 +AWS,ap-southeast-1,i4i.4xlarge,reserved_3y,no_upfront,1.279,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:47.104633 +AWS,ap-southeast-1,i4i.4xlarge,reserved_3y,partial_upfront,1.279,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:40.394837 +AWS,ap-southeast-1,i4i.4xlarge,spot,NA,0.677612,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920845 +AWS,ap-southeast-1,i4i.8xlarge,on_demand,NA,3.291,USD,AWS Pricing API,2025-11-30T08:59:34.604130 +AWS,ap-southeast-1,i4i.8xlarge,reserved_1y,all_upfront,2.005365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:05.906183 +AWS,ap-southeast-1,i4i.8xlarge,reserved_1y,no_upfront,2.005365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:47.310725 +AWS,ap-southeast-1,i4i.8xlarge,reserved_1y,partial_upfront,2.005365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:31.810982 +AWS,ap-southeast-1,i4i.8xlarge,reserved_3y,all_upfront,0.668455,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:08.494708 +AWS,ap-southeast-1,i4i.8xlarge,reserved_3y,no_upfront,0.668455,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:50.162755 +AWS,ap-southeast-1,i4i.8xlarge,reserved_3y,partial_upfront,0.668455,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:43.405246 +AWS,ap-southeast-1,i4i.8xlarge,spot,NA,1.145272,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920935 +AWS,ap-southeast-1,i4i.large,on_demand,NA,0.206,USD,AWS Pricing API,2025-11-30T09:00:00.280632 +AWS,ap-southeast-1,i4i.large,reserved_1y,all_upfront,0.095,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:31.337192 +AWS,ap-southeast-1,i4i.large,reserved_1y,no_upfront,0.095,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:12.994763 +AWS,ap-southeast-1,i4i.large,reserved_1y,partial_upfront,0.095,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:57.296963 +AWS,ap-southeast-1,i4i.large,reserved_3y,all_upfront,0.095,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:33.521867 +AWS,ap-southeast-1,i4i.large,reserved_3y,no_upfront,0.095,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:16.072967 +AWS,ap-southeast-1,i4i.large,reserved_3y,partial_upfront,0.095,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:08.727865 +AWS,ap-southeast-1,i4i.large,spot,NA,0.078017,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921563 +AWS,ap-southeast-1,i4i.xlarge,on_demand,NA,0.411,USD,AWS Pricing API,2025-11-30T08:59:41.561238 +AWS,ap-southeast-1,i4i.xlarge,reserved_1y,all_upfront,0.250685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:12.805781 +AWS,ap-southeast-1,i4i.xlarge,reserved_1y,no_upfront,0.250685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:54.289292 +AWS,ap-southeast-1,i4i.xlarge,reserved_1y,partial_upfront,0.250685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:38.691022 +AWS,ap-southeast-1,i4i.xlarge,reserved_3y,all_upfront,0.083562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:15.366822 +AWS,ap-southeast-1,i4i.xlarge,reserved_3y,no_upfront,0.083562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:57.206412 +AWS,ap-southeast-1,i4i.xlarge,reserved_3y,partial_upfront,0.083562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:50.262870 +AWS,ap-southeast-1,i4i.xlarge,spot,NA,0.169464,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921092 +AWS,ap-southeast-1,i8g.12xlarge,on_demand,NA,4.9368,USD,AWS Pricing API,2025-11-30T08:59:55.913652 +AWS,ap-southeast-1,i8g.12xlarge,spot,NA,2.519332,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921466 +AWS,ap-southeast-1,i8g.16xlarge,on_demand,NA,6.5824,USD,AWS Pricing API,2025-11-30T08:59:52.963334 +AWS,ap-southeast-1,i8g.16xlarge,spot,NA,2.940796,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921411 +AWS,ap-southeast-1,i8g.24xlarge,on_demand,NA,9.8736,USD,AWS Pricing API,2025-11-30T08:59:55.377495 +AWS,ap-southeast-1,i8g.24xlarge,spot,NA,5.078311,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921427 +AWS,ap-southeast-1,i8g.2xlarge,on_demand,NA,0.8228,USD,AWS Pricing API,2025-11-30T08:59:22.177492 +AWS,ap-southeast-1,i8g.2xlarge,spot,NA,0.361525,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920605 +AWS,ap-southeast-1,i8g.48xlarge,on_demand,NA,19.7472,USD,AWS Pricing API,2025-11-30T08:59:02.653697 +AWS,ap-southeast-1,i8g.48xlarge,spot,NA,10.785349,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920073 +AWS,ap-southeast-1,i8g.4xlarge,on_demand,NA,1.6456,USD,AWS Pricing API,2025-11-30T08:59:50.027419 +AWS,ap-southeast-1,i8g.4xlarge,spot,NA,0.842297,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921313 +AWS,ap-southeast-1,i8g.8xlarge,on_demand,NA,3.2912,USD,AWS Pricing API,2025-11-30T09:00:09.285961 +AWS,ap-southeast-1,i8g.8xlarge,spot,NA,1.789503,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921784 +AWS,ap-southeast-1,i8g.large,on_demand,NA,0.2057,USD,AWS Pricing API,2025-11-30T08:59:26.746109 +AWS,ap-southeast-1,i8g.large,spot,NA,0.106638,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920686 +AWS,ap-southeast-1,i8g.xlarge,on_demand,NA,0.4114,USD,AWS Pricing API,2025-11-30T08:59:18.551324 +AWS,ap-southeast-1,i8g.xlarge,spot,NA,0.202291,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920539 +AWS,ap-southeast-1,im4gn.16xlarge,on_demand,NA,6.97734,USD,AWS Pricing API,2025-11-30T08:59:25.777689 +AWS,ap-southeast-1,im4gn.16xlarge,reserved_1y,all_upfront,4.201598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:57.117634 +AWS,ap-southeast-1,im4gn.16xlarge,reserved_1y,no_upfront,4.201598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:38.451974 +AWS,ap-southeast-1,im4gn.16xlarge,reserved_1y,partial_upfront,4.201598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:23.165971 +AWS,ap-southeast-1,im4gn.16xlarge,reserved_3y,all_upfront,1.400533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:59.945011 +AWS,ap-southeast-1,im4gn.16xlarge,reserved_3y,no_upfront,1.400533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:41.284193 +AWS,ap-southeast-1,im4gn.16xlarge,reserved_3y,partial_upfront,1.400533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:34.742116 +AWS,ap-southeast-1,im4gn.16xlarge,spot,NA,2.705527,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920682 +AWS,ap-southeast-1,im4gn.2xlarge,on_demand,NA,0.87217,USD,AWS Pricing API,2025-11-30T08:59:23.412090 +AWS,ap-southeast-1,im4gn.2xlarge,reserved_1y,all_upfront,0.56272,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:54.723474 +AWS,ap-southeast-1,im4gn.2xlarge,reserved_1y,no_upfront,0.56272,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:36.112824 +AWS,ap-southeast-1,im4gn.2xlarge,reserved_1y,partial_upfront,0.56272,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:20.870586 +AWS,ap-southeast-1,im4gn.2xlarge,reserved_3y,all_upfront,0.56272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:57.682456 +AWS,ap-southeast-1,im4gn.2xlarge,reserved_3y,no_upfront,0.56272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:38.933167 +AWS,ap-southeast-1,im4gn.2xlarge,reserved_3y,partial_upfront,0.56272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:32.456835 +AWS,ap-southeast-1,im4gn.2xlarge,spot,NA,0.310116,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920624 +AWS,ap-southeast-1,im4gn.4xlarge,on_demand,NA,1.74434,USD,AWS Pricing API,2025-11-30T08:59:18.004589 +AWS,ap-southeast-1,im4gn.4xlarge,reserved_1y,all_upfront,1.12543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:49.458638 +AWS,ap-southeast-1,im4gn.4xlarge,reserved_1y,no_upfront,1.12543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:30.789239 +AWS,ap-southeast-1,im4gn.4xlarge,reserved_1y,partial_upfront,1.12543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:15.594685 +AWS,ap-southeast-1,im4gn.4xlarge,reserved_3y,all_upfront,1.12543,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:52.512279 +AWS,ap-southeast-1,im4gn.4xlarge,reserved_3y,no_upfront,1.12543,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:33.501678 +AWS,ap-southeast-1,im4gn.4xlarge,reserved_3y,partial_upfront,1.12543,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:27.196552 +AWS,ap-southeast-1,im4gn.4xlarge,spot,NA,0.607826,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920512 +AWS,ap-southeast-1,im4gn.8xlarge,on_demand,NA,3.48867,USD,AWS Pricing API,2025-11-30T08:59:18.413279 +AWS,ap-southeast-1,im4gn.8xlarge,reserved_1y,all_upfront,2.25086,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:49.875841 +AWS,ap-southeast-1,im4gn.8xlarge,reserved_1y,no_upfront,2.25086,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:31.195052 +AWS,ap-southeast-1,im4gn.8xlarge,reserved_1y,partial_upfront,2.25086,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:15.997958 +AWS,ap-southeast-1,im4gn.8xlarge,reserved_3y,all_upfront,2.25086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:52.918516 +AWS,ap-southeast-1,im4gn.8xlarge,reserved_3y,no_upfront,2.25086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:33.922805 +AWS,ap-southeast-1,im4gn.8xlarge,reserved_3y,partial_upfront,2.25086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:27.607598 +AWS,ap-southeast-1,im4gn.8xlarge,spot,NA,1.120447,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920508 +AWS,ap-southeast-1,im4gn.large,on_demand,NA,0.21804,USD,AWS Pricing API,2025-11-30T08:59:19.084811 +AWS,ap-southeast-1,im4gn.large,reserved_1y,all_upfront,0.260616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:50.545951 +AWS,ap-southeast-1,im4gn.large,reserved_1y,no_upfront,0.260616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:31.872271 +AWS,ap-southeast-1,im4gn.large,reserved_1y,partial_upfront,0.260616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:16.687578 +AWS,ap-southeast-1,im4gn.large,reserved_3y,all_upfront,0.086872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:53.578746 +AWS,ap-southeast-1,im4gn.large,reserved_3y,no_upfront,0.086872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:34.615168 +AWS,ap-southeast-1,im4gn.large,reserved_3y,partial_upfront,0.086872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:28.284871 +AWS,ap-southeast-1,im4gn.large,spot,NA,0.083825,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920535 +AWS,ap-southeast-1,im4gn.xlarge,on_demand,NA,0.43608,USD,AWS Pricing API,2025-11-30T09:00:07.647589 +AWS,ap-southeast-1,im4gn.xlarge,reserved_1y,all_upfront,0.23925,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:38.682130 +AWS,ap-southeast-1,im4gn.xlarge,reserved_1y,no_upfront,0.23925,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:20.339363 +AWS,ap-southeast-1,im4gn.xlarge,reserved_1y,partial_upfront,0.23925,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:04.622726 +AWS,ap-southeast-1,im4gn.xlarge,reserved_3y,all_upfront,0.23925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:40.672484 +AWS,ap-southeast-1,im4gn.xlarge,reserved_3y,no_upfront,0.23925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:23.544179 +AWS,ap-southeast-1,im4gn.xlarge,reserved_3y,partial_upfront,0.23925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:15.998202 +AWS,ap-southeast-1,im4gn.xlarge,spot,NA,0.154487,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921727 +AWS,ap-southeast-1,is4gen.2xlarge,on_demand,NA,1.3821,USD,AWS Pricing API,2025-11-30T08:59:16.375706 +AWS,ap-southeast-1,is4gen.2xlarge,reserved_1y,all_upfront,1.567694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:47.843887 +AWS,ap-southeast-1,is4gen.2xlarge,reserved_1y,no_upfront,1.567694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:29.143858 +AWS,ap-southeast-1,is4gen.2xlarge,reserved_1y,partial_upfront,1.567694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:13.967756 +AWS,ap-southeast-1,is4gen.2xlarge,reserved_3y,all_upfront,0.522565,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:50.907949 +AWS,ap-southeast-1,is4gen.2xlarge,reserved_3y,no_upfront,0.522565,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:31.864881 +AWS,ap-southeast-1,is4gen.2xlarge,reserved_3y,partial_upfront,0.522565,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:25.587791 +AWS,ap-southeast-1,is4gen.2xlarge,spot,NA,0.478591,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920465 +AWS,ap-southeast-1,is4gen.4xlarge,on_demand,NA,2.76421,USD,AWS Pricing API,2025-11-30T09:00:00.007291 +AWS,ap-southeast-1,is4gen.4xlarge,reserved_1y,all_upfront,1.759247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:31.066356 +AWS,ap-southeast-1,is4gen.4xlarge,reserved_1y,no_upfront,1.759247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:12.719186 +AWS,ap-southeast-1,is4gen.4xlarge,reserved_1y,partial_upfront,1.759247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:57.030791 +AWS,ap-southeast-1,is4gen.4xlarge,reserved_3y,all_upfront,0.586416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:33.257381 +AWS,ap-southeast-1,is4gen.4xlarge,reserved_3y,no_upfront,0.586416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:15.797025 +AWS,ap-southeast-1,is4gen.4xlarge,reserved_3y,partial_upfront,0.586416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:08.458242 +AWS,ap-southeast-1,is4gen.4xlarge,spot,NA,1.119411,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921567 +AWS,ap-southeast-1,is4gen.8xlarge,on_demand,NA,5.52842,USD,AWS Pricing API,2025-11-30T08:58:58.296874 +AWS,ap-southeast-1,is4gen.8xlarge,reserved_1y,all_upfront,5.344752,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:29.719613 +AWS,ap-southeast-1,is4gen.8xlarge,reserved_1y,no_upfront,5.344752,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:10.927693 +AWS,ap-southeast-1,is4gen.8xlarge,reserved_1y,partial_upfront,5.344752,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:55.946225 +AWS,ap-southeast-1,is4gen.8xlarge,reserved_3y,all_upfront,2.672377,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:33.194673 +AWS,ap-southeast-1,is4gen.8xlarge,reserved_3y,no_upfront,2.672377,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:13.530339 +AWS,ap-southeast-1,is4gen.8xlarge,reserved_3y,partial_upfront,2.672377,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:07.697119 +AWS,ap-southeast-1,is4gen.8xlarge,spot,NA,1.781245,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919986 +AWS,ap-southeast-1,is4gen.large,on_demand,NA,0.34553,USD,AWS Pricing API,2025-11-30T08:59:40.061618 +AWS,ap-southeast-1,is4gen.large,reserved_1y,all_upfront,0.219863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:11.315169 +AWS,ap-southeast-1,is4gen.large,reserved_1y,no_upfront,0.219863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:52.799995 +AWS,ap-southeast-1,is4gen.large,reserved_1y,partial_upfront,0.219863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:37.203573 +AWS,ap-southeast-1,is4gen.large,reserved_3y,all_upfront,0.073288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:13.887447 +AWS,ap-southeast-1,is4gen.large,reserved_3y,no_upfront,0.073288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:55.684910 +AWS,ap-southeast-1,is4gen.large,reserved_3y,partial_upfront,0.073288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:48.789587 +AWS,ap-southeast-1,is4gen.large,spot,NA,0.108384,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921060 +AWS,ap-southeast-1,is4gen.xlarge,on_demand,NA,0.69105,USD,AWS Pricing API,2025-11-30T08:59:24.241419 +AWS,ap-southeast-1,is4gen.xlarge,reserved_1y,all_upfront,0.56373,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:55.628689 +AWS,ap-southeast-1,is4gen.xlarge,reserved_1y,no_upfront,0.56373,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:36.937012 +AWS,ap-southeast-1,is4gen.xlarge,reserved_1y,partial_upfront,0.56373,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:21.675785 +AWS,ap-southeast-1,is4gen.xlarge,reserved_3y,all_upfront,0.56373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:58.482973 +AWS,ap-southeast-1,is4gen.xlarge,reserved_3y,no_upfront,0.56373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:39.766136 +AWS,ap-southeast-1,is4gen.xlarge,reserved_3y,partial_upfront,0.56373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:33.268587 +AWS,ap-southeast-1,is4gen.xlarge,spot,NA,0.250755,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920667 +AWS,ap-southeast-1,m4.10xlarge,on_demand,NA,2.5,USD,AWS Pricing API,2025-11-30T08:59:29.458633 +AWS,ap-southeast-1,m4.10xlarge,reserved_1y,all_upfront,1.667922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:00.757003 +AWS,ap-southeast-1,m4.10xlarge,reserved_1y,no_upfront,1.667922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:42.178021 +AWS,ap-southeast-1,m4.10xlarge,reserved_1y,partial_upfront,1.667922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:26.819890 +AWS,ap-southeast-1,m4.10xlarge,reserved_3y,all_upfront,0.555974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:03.562280 +AWS,ap-southeast-1,m4.10xlarge,reserved_3y,no_upfront,0.555974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:45.015349 +AWS,ap-southeast-1,m4.10xlarge,reserved_3y,partial_upfront,0.555974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:38.361184 +AWS,ap-southeast-1,m4.10xlarge,spot,NA,1.020455,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920776 +AWS,ap-southeast-1,m4.16xlarge,on_demand,NA,4.0,USD,AWS Pricing API,2025-11-30T08:59:34.740266 +AWS,ap-southeast-1,m4.16xlarge,reserved_1y,all_upfront,4.421804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:06.041876 +AWS,ap-southeast-1,m4.16xlarge,reserved_1y,no_upfront,4.421804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:47.447387 +AWS,ap-southeast-1,m4.16xlarge,reserved_1y,partial_upfront,4.421804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:31.946974 +AWS,ap-southeast-1,m4.16xlarge,reserved_3y,all_upfront,1.473935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:08.628241 +AWS,ap-southeast-1,m4.16xlarge,reserved_3y,no_upfront,1.473935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:50.301904 +AWS,ap-southeast-1,m4.16xlarge,reserved_3y,partial_upfront,1.473935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:43.537807 +AWS,ap-southeast-1,m4.16xlarge,spot,NA,1.402524,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920931 +AWS,ap-southeast-1,m4.2xlarge,on_demand,NA,0.5,USD,AWS Pricing API,2025-11-30T08:59:15.970141 +AWS,ap-southeast-1,m4.2xlarge,reserved_1y,all_upfront,0.450828,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:47.433798 +AWS,ap-southeast-1,m4.2xlarge,reserved_1y,no_upfront,0.450828,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:28.717733 +AWS,ap-southeast-1,m4.2xlarge,reserved_1y,partial_upfront,0.450828,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:13.560341 +AWS,ap-southeast-1,m4.2xlarge,reserved_3y,all_upfront,0.225409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:50.512838 +AWS,ap-southeast-1,m4.2xlarge,reserved_3y,no_upfront,0.225409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:31.452208 +AWS,ap-southeast-1,m4.2xlarge,reserved_3y,partial_upfront,0.225409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:25.185439 +AWS,ap-southeast-1,m4.2xlarge,spot,NA,0.230505,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920449 +AWS,ap-southeast-1,m4.4xlarge,on_demand,NA,1.0,USD,AWS Pricing API,2025-11-30T08:59:50.710213 +AWS,ap-southeast-1,m4.4xlarge,reserved_1y,all_upfront,0.680811,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:21.830357 +AWS,ap-southeast-1,m4.4xlarge,reserved_1y,no_upfront,0.680811,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:03.453417 +AWS,ap-southeast-1,m4.4xlarge,reserved_1y,partial_upfront,0.680811,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:47.883685 +AWS,ap-southeast-1,m4.4xlarge,reserved_3y,all_upfront,0.45387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:24.264033 +AWS,ap-southeast-1,m4.4xlarge,reserved_3y,no_upfront,0.45387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:06.458720 +AWS,ap-southeast-1,m4.4xlarge,reserved_3y,partial_upfront,0.45387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:59.302367 +AWS,ap-southeast-1,m4.4xlarge,spot,NA,0.481567,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921340 +AWS,ap-southeast-1,m4.large,on_demand,NA,0.125,USD,AWS Pricing API,2025-11-30T08:58:57.886967 +AWS,ap-southeast-1,m4.large,reserved_1y,all_upfront,0.0894,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:29.318840 +AWS,ap-southeast-1,m4.large,reserved_1y,no_upfront,0.0894,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:10.518453 +AWS,ap-southeast-1,m4.large,reserved_1y,partial_upfront,0.0894,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:55.543333 +AWS,ap-southeast-1,m4.large,reserved_3y,all_upfront,0.0894,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:32.795790 +AWS,ap-southeast-1,m4.large,reserved_3y,no_upfront,0.0894,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:13.110785 +AWS,ap-southeast-1,m4.large,reserved_3y,partial_upfront,0.0894,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:07.294551 +AWS,ap-southeast-1,m4.large,spot,NA,0.058179,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919944 +AWS,ap-southeast-1,m4.xlarge,on_demand,NA,0.25,USD,AWS Pricing API,2025-11-30T08:59:39.120987 +AWS,ap-southeast-1,m4.xlarge,reserved_1y,all_upfront,0.147973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:10.376926 +AWS,ap-southeast-1,m4.xlarge,reserved_1y,no_upfront,0.147973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:51.852229 +AWS,ap-southeast-1,m4.xlarge,reserved_1y,partial_upfront,0.147973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:36.265793 +AWS,ap-southeast-1,m4.xlarge,reserved_3y,all_upfront,0.098658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:12.887164 +AWS,ap-southeast-1,m4.xlarge,reserved_3y,no_upfront,0.098658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:54.724036 +AWS,ap-southeast-1,m4.xlarge,reserved_3y,partial_upfront,0.098658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:47.850392 +AWS,ap-southeast-1,m4.xlarge,spot,NA,0.112974,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921037 +AWS,ap-southeast-1,m5.12xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T08:59:16.105991 +AWS,ap-southeast-1,m5.12xlarge,reserved_1y,all_upfront,3.24863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:47.568287 +AWS,ap-southeast-1,m5.12xlarge,reserved_1y,no_upfront,3.24863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:28.851902 +AWS,ap-southeast-1,m5.12xlarge,reserved_1y,partial_upfront,3.24863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:13.694207 +AWS,ap-southeast-1,m5.12xlarge,reserved_3y,all_upfront,1.082877,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:50.644502 +AWS,ap-southeast-1,m5.12xlarge,reserved_3y,no_upfront,1.082877,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:31.590760 +AWS,ap-southeast-1,m5.12xlarge,reserved_3y,partial_upfront,1.082877,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:25.320281 +AWS,ap-southeast-1,m5.12xlarge,spot,NA,1.071088,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920457 +AWS,ap-southeast-1,m5.16xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T08:59:49.079344 +AWS,ap-southeast-1,m5.16xlarge,reserved_1y,all_upfront,2.419,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:20.222408 +AWS,ap-southeast-1,m5.16xlarge,reserved_1y,no_upfront,2.419,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:01.805578 +AWS,ap-southeast-1,m5.16xlarge,reserved_1y,partial_upfront,2.419,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:46.225367 +AWS,ap-southeast-1,m5.16xlarge,reserved_3y,all_upfront,2.419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:22.673701 +AWS,ap-southeast-1,m5.16xlarge,reserved_3y,no_upfront,2.419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:04.809243 +AWS,ap-southeast-1,m5.16xlarge,reserved_3y,partial_upfront,2.419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:57.695077 +AWS,ap-southeast-1,m5.16xlarge,spot,NA,1.501607,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921309 +AWS,ap-southeast-1,m5.24xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T09:00:00.547625 +AWS,ap-southeast-1,m5.24xlarge,reserved_1y,all_upfront,5.409192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:31.603527 +AWS,ap-southeast-1,m5.24xlarge,reserved_1y,no_upfront,5.409192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:13.263060 +AWS,ap-southeast-1,m5.24xlarge,reserved_1y,partial_upfront,5.409192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:57.569578 +AWS,ap-southeast-1,m5.24xlarge,reserved_3y,all_upfront,2.704397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:33.784571 +AWS,ap-southeast-1,m5.24xlarge,reserved_3y,no_upfront,2.704397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:16.345422 +AWS,ap-southeast-1,m5.24xlarge,reserved_3y,partial_upfront,2.704397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:08.999005 +AWS,ap-southeast-1,m5.24xlarge,spot,NA,2.112144,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921571 +AWS,ap-southeast-1,m5.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T08:59:32.373681 +AWS,ap-southeast-1,m5.2xlarge,reserved_1y,all_upfront,0.451128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:03.731012 +AWS,ap-southeast-1,m5.2xlarge,reserved_1y,no_upfront,0.451128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:45.102406 +AWS,ap-southeast-1,m5.2xlarge,reserved_1y,partial_upfront,0.451128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:29.667468 +AWS,ap-southeast-1,m5.2xlarge,reserved_3y,all_upfront,0.225709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:06.369460 +AWS,ap-southeast-1,m5.2xlarge,reserved_3y,no_upfront,0.225709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:47.954719 +AWS,ap-southeast-1,m5.2xlarge,reserved_3y,partial_upfront,0.225709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:41.210210 +AWS,ap-southeast-1,m5.2xlarge,spot,NA,0.193818,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920882 +AWS,ap-southeast-1,m5.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T08:59:41.824247 +AWS,ap-southeast-1,m5.4xlarge,reserved_1y,all_upfront,0.680411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:13.077643 +AWS,ap-southeast-1,m5.4xlarge,reserved_1y,no_upfront,0.680411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:54.558785 +AWS,ap-southeast-1,m5.4xlarge,reserved_1y,partial_upfront,0.680411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:38.966349 +AWS,ap-southeast-1,m5.4xlarge,reserved_3y,all_upfront,0.45347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:15.631669 +AWS,ap-southeast-1,m5.4xlarge,reserved_3y,no_upfront,0.45347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:57.478739 +AWS,ap-southeast-1,m5.4xlarge,reserved_3y,partial_upfront,0.45347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:50.529782 +AWS,ap-southeast-1,m5.4xlarge,spot,NA,0.425871,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921084 +AWS,ap-southeast-1,m5.8xlarge,on_demand,NA,1.92,USD,AWS Pricing API,2025-11-30T09:00:08.608666 +AWS,ap-southeast-1,m5.8xlarge,reserved_1y,all_upfront,1.536055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:39.627444 +AWS,ap-southeast-1,m5.8xlarge,reserved_1y,no_upfront,1.536055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:21.301024 +AWS,ap-southeast-1,m5.8xlarge,reserved_1y,partial_upfront,1.536055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:05.570884 +AWS,ap-southeast-1,m5.8xlarge,reserved_3y,all_upfront,0.768018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:41.596465 +AWS,ap-southeast-1,m5.8xlarge,reserved_3y,no_upfront,0.768018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:24.512332 +AWS,ap-southeast-1,m5.8xlarge,reserved_3y,partial_upfront,0.768018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:16.949114 +AWS,ap-southeast-1,m5.8xlarge,spot,NA,0.775761,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921751 +AWS,ap-southeast-1,m5.large,on_demand,NA,0.12,USD,AWS Pricing API,2025-11-30T08:59:32.771225 +AWS,ap-southeast-1,m5.large,reserved_1y,all_upfront,0.08558,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:04.136691 +AWS,ap-southeast-1,m5.large,reserved_1y,no_upfront,0.08558,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:45.521304 +AWS,ap-southeast-1,m5.large,reserved_1y,partial_upfront,0.08558,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:30.071567 +AWS,ap-southeast-1,m5.large,reserved_3y,all_upfront,0.057193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:06.775780 +AWS,ap-southeast-1,m5.large,reserved_3y,no_upfront,0.057193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:48.385964 +AWS,ap-southeast-1,m5.large,reserved_3y,partial_upfront,0.057193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:41.632616 +AWS,ap-southeast-1,m5.large,spot,NA,0.052462,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920903 +AWS,ap-southeast-1,m5.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T09:00:06.436189 +AWS,ap-southeast-1,m5.xlarge,reserved_1y,all_upfront,0.19195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:37.459676 +AWS,ap-southeast-1,m5.xlarge,reserved_1y,no_upfront,0.19195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:19.105628 +AWS,ap-southeast-1,m5.xlarge,reserved_1y,partial_upfront,0.19195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:03.399994 +AWS,ap-southeast-1,m5.xlarge,reserved_3y,all_upfront,0.095983,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:39.474001 +AWS,ap-southeast-1,m5.xlarge,reserved_3y,no_upfront,0.095983,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:22.306184 +AWS,ap-southeast-1,m5.xlarge,reserved_3y,partial_upfront,0.095983,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:14.770496 +AWS,ap-southeast-1,m5.xlarge,spot,NA,0.087852,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921691 +AWS,ap-southeast-1,m5a.12xlarge,on_demand,NA,2.592,USD,AWS Pricing API,2025-11-30T08:59:33.306939 +AWS,ap-southeast-1,m5a.12xlarge,reserved_1y,all_upfront,1.524087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:04.684820 +AWS,ap-southeast-1,m5a.12xlarge,reserved_1y,no_upfront,1.524087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:46.075727 +AWS,ap-southeast-1,m5a.12xlarge,reserved_1y,partial_upfront,1.524087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:30.605564 +AWS,ap-southeast-1,m5a.12xlarge,reserved_3y,all_upfront,0.508029,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:07.305304 +AWS,ap-southeast-1,m5a.12xlarge,reserved_3y,no_upfront,0.508029,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:48.928457 +AWS,ap-southeast-1,m5a.12xlarge,reserved_3y,partial_upfront,0.508029,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:42.185268 +AWS,ap-southeast-1,m5a.12xlarge,spot,NA,1.103879,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920907 +AWS,ap-southeast-1,m5a.16xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T08:59:50.844617 +AWS,ap-southeast-1,m5a.16xlarge,reserved_1y,all_upfront,2.032078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:21.964913 +AWS,ap-southeast-1,m5a.16xlarge,reserved_1y,no_upfront,2.032078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:03.591437 +AWS,ap-southeast-1,m5a.16xlarge,reserved_1y,partial_upfront,2.032078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:48.024188 +AWS,ap-southeast-1,m5a.16xlarge,reserved_3y,all_upfront,0.677359,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:24.396527 +AWS,ap-southeast-1,m5a.16xlarge,reserved_3y,no_upfront,0.677359,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:06.596104 +AWS,ap-southeast-1,m5a.16xlarge,reserved_3y,partial_upfront,0.677359,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:59.435185 +AWS,ap-southeast-1,m5a.16xlarge,spot,NA,1.435173,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921360 +AWS,ap-southeast-1,m5a.24xlarge,on_demand,NA,5.184,USD,AWS Pricing API,2025-11-30T08:59:25.913262 +AWS,ap-southeast-1,m5a.24xlarge,reserved_1y,all_upfront,4.147388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:57.253154 +AWS,ap-southeast-1,m5a.24xlarge,reserved_1y,no_upfront,4.147388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:38.587538 +AWS,ap-southeast-1,m5a.24xlarge,reserved_1y,partial_upfront,4.147388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:23.306184 +AWS,ap-southeast-1,m5a.24xlarge,reserved_3y,all_upfront,2.073796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:00.078103 +AWS,ap-southeast-1,m5a.24xlarge,reserved_3y,no_upfront,2.073796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:41.422910 +AWS,ap-southeast-1,m5a.24xlarge,reserved_3y,partial_upfront,2.073796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:34.875052 +AWS,ap-southeast-1,m5a.24xlarge,spot,NA,1.746312,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920714 +AWS,ap-southeast-1,m5a.2xlarge,on_demand,NA,0.432,USD,AWS Pricing API,2025-11-30T08:59:18.275484 +AWS,ap-southeast-1,m5a.2xlarge,reserved_1y,all_upfront,0.259566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:49.740453 +AWS,ap-southeast-1,m5a.2xlarge,reserved_1y,no_upfront,0.259566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:31.060232 +AWS,ap-southeast-1,m5a.2xlarge,reserved_1y,partial_upfront,0.259566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:15.863173 +AWS,ap-southeast-1,m5a.2xlarge,reserved_3y,all_upfront,0.173189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:52.784768 +AWS,ap-southeast-1,m5a.2xlarge,reserved_3y,no_upfront,0.173189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:33.784057 +AWS,ap-southeast-1,m5a.2xlarge,reserved_3y,partial_upfront,0.173189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:27.474854 +AWS,ap-southeast-1,m5a.2xlarge,spot,NA,0.222841,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920485 +AWS,ap-southeast-1,m5a.4xlarge,on_demand,NA,0.864,USD,AWS Pricing API,2025-11-30T08:59:59.192619 +AWS,ap-southeast-1,m5a.4xlarge,reserved_1y,all_upfront,0.612279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:30.263516 +AWS,ap-southeast-1,m5a.4xlarge,reserved_1y,no_upfront,0.612279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:11.899218 +AWS,ap-southeast-1,m5a.4xlarge,reserved_1y,partial_upfront,0.612279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:56.220657 +AWS,ap-southeast-1,m5a.4xlarge,reserved_3y,all_upfront,0.408093,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:32.467517 +AWS,ap-southeast-1,m5a.4xlarge,reserved_3y,no_upfront,0.408093,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:14.967358 +AWS,ap-southeast-1,m5a.4xlarge,reserved_3y,partial_upfront,0.408093,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:07.639671 +AWS,ap-southeast-1,m5a.4xlarge,spot,NA,0.408944,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921539 +AWS,ap-southeast-1,m5a.8xlarge,on_demand,NA,1.728,USD,AWS Pricing API,2025-11-30T08:59:09.309985 +AWS,ap-southeast-1,m5a.8xlarge,reserved_1y,all_upfront,1.200685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:40.796929 +AWS,ap-southeast-1,m5a.8xlarge,reserved_1y,no_upfront,1.200685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:21.982917 +AWS,ap-southeast-1,m5a.8xlarge,reserved_1y,partial_upfront,1.200685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:06.923404 +AWS,ap-southeast-1,m5a.8xlarge,reserved_3y,all_upfront,0.400228,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:43.995969 +AWS,ap-southeast-1,m5a.8xlarge,reserved_3y,no_upfront,0.400228,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:24.665811 +AWS,ap-southeast-1,m5a.8xlarge,reserved_3y,partial_upfront,0.400228,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:18.604421 +AWS,ap-southeast-1,m5a.8xlarge,spot,NA,0.819747,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920270 +AWS,ap-southeast-1,m5a.large,on_demand,NA,0.108,USD,AWS Pricing API,2025-11-30T08:59:28.364558 +AWS,ap-southeast-1,m5a.large,reserved_1y,all_upfront,0.06347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:59.678791 +AWS,ap-southeast-1,m5a.large,reserved_1y,no_upfront,0.06347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:41.079334 +AWS,ap-southeast-1,m5a.large,reserved_1y,partial_upfront,0.06347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:25.743701 +AWS,ap-southeast-1,m5a.large,reserved_3y,all_upfront,0.021157,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:02.485536 +AWS,ap-southeast-1,m5a.large,reserved_3y,no_upfront,0.021157,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:43.918964 +AWS,ap-southeast-1,m5a.large,reserved_3y,partial_upfront,0.021157,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:37.284772 +AWS,ap-southeast-1,m5a.large,spot,NA,0.054599,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920768 +AWS,ap-southeast-1,m5a.xlarge,on_demand,NA,0.216,USD,AWS Pricing API,2025-11-30T08:59:30.455874 +AWS,ap-southeast-1,m5a.xlarge,reserved_1y,all_upfront,0.172566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:01.819027 +AWS,ap-southeast-1,m5a.xlarge,reserved_1y,no_upfront,0.172566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:43.162261 +AWS,ap-southeast-1,m5a.xlarge,reserved_1y,partial_upfront,0.172566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:27.759655 +AWS,ap-southeast-1,m5a.xlarge,reserved_3y,all_upfront,0.086189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:04.495946 +AWS,ap-southeast-1,m5a.xlarge,reserved_3y,no_upfront,0.086189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:45.990011 +AWS,ap-southeast-1,m5a.xlarge,reserved_3y,partial_upfront,0.086189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:39.308335 +AWS,ap-southeast-1,m5a.xlarge,spot,NA,0.113568,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920792 +AWS,ap-southeast-1,m5d.12xlarge,on_demand,NA,3.384,USD,AWS Pricing API,2025-11-30T08:59:00.604473 +AWS,ap-southeast-1,m5d.12xlarge,reserved_1y,all_upfront,2.515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:32.020610 +AWS,ap-southeast-1,m5d.12xlarge,reserved_1y,no_upfront,2.515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:13.246973 +AWS,ap-southeast-1,m5d.12xlarge,reserved_1y,partial_upfront,2.515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:58.238254 +AWS,ap-southeast-1,m5d.12xlarge,reserved_3y,all_upfront,2.515,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:35.450831 +AWS,ap-southeast-1,m5d.12xlarge,reserved_3y,no_upfront,2.515,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:15.862741 +AWS,ap-southeast-1,m5d.12xlarge,reserved_3y,partial_upfront,2.515,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:09.994884 +AWS,ap-southeast-1,m5d.12xlarge,spot,NA,1.297421,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920019 +AWS,ap-southeast-1,m5d.16xlarge,on_demand,NA,4.512,USD,AWS Pricing API,2025-11-30T08:59:45.935157 +AWS,ap-southeast-1,m5d.16xlarge,reserved_1y,all_upfront,3.609192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:17.126753 +AWS,ap-southeast-1,m5d.16xlarge,reserved_1y,no_upfront,3.609192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:58.635731 +AWS,ap-southeast-1,m5d.16xlarge,reserved_1y,partial_upfront,3.609192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:43.115412 +AWS,ap-southeast-1,m5d.16xlarge,reserved_3y,all_upfront,1.804397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:19.612027 +AWS,ap-southeast-1,m5d.16xlarge,reserved_3y,no_upfront,1.804397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:01.611320 +AWS,ap-southeast-1,m5d.16xlarge,reserved_3y,partial_upfront,1.804397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:54.563417 +AWS,ap-southeast-1,m5d.16xlarge,spot,NA,1.541737,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921191 +AWS,ap-southeast-1,m5d.24xlarge,on_demand,NA,6.768,USD,AWS Pricing API,2025-11-30T08:59:29.318936 +AWS,ap-southeast-1,m5d.24xlarge,reserved_1y,all_upfront,3.979566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:00.621948 +AWS,ap-southeast-1,m5d.24xlarge,reserved_1y,no_upfront,3.979566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:42.042365 +AWS,ap-southeast-1,m5d.24xlarge,reserved_1y,partial_upfront,3.979566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:26.685656 +AWS,ap-southeast-1,m5d.24xlarge,reserved_3y,all_upfront,1.326522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:03.427370 +AWS,ap-southeast-1,m5d.24xlarge,reserved_3y,no_upfront,1.326522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:44.877792 +AWS,ap-southeast-1,m5d.24xlarge,reserved_3y,partial_upfront,1.326522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:38.226503 +AWS,ap-southeast-1,m5d.24xlarge,spot,NA,2.295341,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920764 +AWS,ap-southeast-1,m5d.2xlarge,on_demand,NA,0.564,USD,AWS Pricing API,2025-11-30T08:59:13.514752 +AWS,ap-southeast-1,m5d.2xlarge,reserved_1y,all_upfront,0.775,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:44.989380 +AWS,ap-southeast-1,m5d.2xlarge,reserved_1y,no_upfront,0.775,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:26.256664 +AWS,ap-southeast-1,m5d.2xlarge,reserved_1y,partial_upfront,0.775,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:11.116477 +AWS,ap-southeast-1,m5d.2xlarge,reserved_3y,all_upfront,0.258333,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:48.120924 +AWS,ap-southeast-1,m5d.2xlarge,reserved_3y,no_upfront,0.258333,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:28.941537 +AWS,ap-southeast-1,m5d.2xlarge,reserved_3y,partial_upfront,0.258333,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:22.774190 +AWS,ap-southeast-1,m5d.2xlarge,spot,NA,0.258279,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920353 +AWS,ap-southeast-1,m5d.4xlarge,on_demand,NA,1.128,USD,AWS Pricing API,2025-11-30T08:59:24.792754 +AWS,ap-southeast-1,m5d.4xlarge,reserved_1y,all_upfront,0.902826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:56.169349 +AWS,ap-southeast-1,m5d.4xlarge,reserved_1y,no_upfront,0.902826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:37.495892 +AWS,ap-southeast-1,m5d.4xlarge,reserved_1y,partial_upfront,0.902826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:22.217038 +AWS,ap-southeast-1,m5d.4xlarge,reserved_3y,all_upfront,0.451609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:59.009917 +AWS,ap-southeast-1,m5d.4xlarge,reserved_3y,no_upfront,0.451609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:40.322221 +AWS,ap-southeast-1,m5d.4xlarge,reserved_3y,partial_upfront,0.451609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:33.808439 +AWS,ap-southeast-1,m5d.4xlarge,spot,NA,0.493905,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920659 +AWS,ap-southeast-1,m5d.8xlarge,on_demand,NA,2.256,USD,AWS Pricing API,2025-11-30T09:00:08.472909 +AWS,ap-southeast-1,m5d.8xlarge,reserved_1y,all_upfront,1.596516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:39.492828 +AWS,ap-southeast-1,m5d.8xlarge,reserved_1y,no_upfront,1.596516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:21.163067 +AWS,ap-southeast-1,m5d.8xlarge,reserved_1y,partial_upfront,1.596516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:05.433828 +AWS,ap-southeast-1,m5d.8xlarge,reserved_3y,all_upfront,1.064172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:41.463792 +AWS,ap-southeast-1,m5d.8xlarge,reserved_3y,no_upfront,1.064172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:24.376304 +AWS,ap-southeast-1,m5d.8xlarge,reserved_3y,partial_upfront,1.064172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:16.803502 +AWS,ap-southeast-1,m5d.8xlarge,spot,NA,0.885669,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921756 +AWS,ap-southeast-1,m5d.large,on_demand,NA,0.141,USD,AWS Pricing API,2025-11-30T08:59:04.454099 +AWS,ap-southeast-1,m5d.large,reserved_1y,all_upfront,0.089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:35.913270 +AWS,ap-southeast-1,m5d.large,reserved_1y,no_upfront,0.089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:17.064968 +AWS,ap-southeast-1,m5d.large,reserved_1y,partial_upfront,0.089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:02.045925 +AWS,ap-southeast-1,m5d.large,reserved_3y,all_upfront,0.089,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:39.209166 +AWS,ap-southeast-1,m5d.large,reserved_3y,no_upfront,0.089,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:19.700764 +AWS,ap-southeast-1,m5d.large,reserved_3y,partial_upfront,0.089,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:13.740504 +AWS,ap-southeast-1,m5d.large,spot,NA,0.064559,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920113 +AWS,ap-southeast-1,m5d.xlarge,on_demand,NA,0.282,USD,AWS Pricing API,2025-11-30T08:59:20.447830 +AWS,ap-southeast-1,m5d.xlarge,reserved_1y,all_upfront,0.21,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:51.891501 +AWS,ap-southeast-1,m5d.xlarge,reserved_1y,no_upfront,0.21,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:33.249429 +AWS,ap-southeast-1,m5d.xlarge,reserved_1y,partial_upfront,0.21,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:18.036696 +AWS,ap-southeast-1,m5d.xlarge,reserved_3y,all_upfront,0.21,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:54.901994 +AWS,ap-southeast-1,m5d.xlarge,reserved_3y,no_upfront,0.21,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:36.024754 +AWS,ap-southeast-1,m5d.xlarge,reserved_3y,partial_upfront,0.21,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:29.636062 +AWS,ap-southeast-1,m5d.xlarge,spot,NA,0.122185,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920578 +AWS,ap-southeast-1,m5dn.12xlarge,on_demand,NA,4.008,USD,AWS Pricing API,2025-11-30T08:59:02.790489 +AWS,ap-southeast-1,m5dn.12xlarge,reserved_1y,all_upfront,3.013,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:34.268784 +AWS,ap-southeast-1,m5dn.12xlarge,reserved_1y,no_upfront,3.013,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:15.433053 +AWS,ap-southeast-1,m5dn.12xlarge,reserved_1y,partial_upfront,3.013,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:00.411894 +AWS,ap-southeast-1,m5dn.12xlarge,reserved_3y,all_upfront,3.013,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:37.569537 +AWS,ap-southeast-1,m5dn.12xlarge,reserved_3y,no_upfront,3.013,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:18.060028 +AWS,ap-southeast-1,m5dn.12xlarge,reserved_3y,partial_upfront,3.013,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:12.133650 +AWS,ap-southeast-1,m5dn.12xlarge,spot,NA,1.358714,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920091 +AWS,ap-southeast-1,m5dn.16xlarge,on_demand,NA,5.344,USD,AWS Pricing API,2025-11-30T08:59:37.197187 +AWS,ap-southeast-1,m5dn.16xlarge,reserved_1y,all_upfront,3.367,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:08.477825 +AWS,ap-southeast-1,m5dn.16xlarge,reserved_1y,no_upfront,3.367,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:49.917495 +AWS,ap-southeast-1,m5dn.16xlarge,reserved_1y,partial_upfront,3.367,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:34.381140 +AWS,ap-southeast-1,m5dn.16xlarge,reserved_3y,all_upfront,3.367,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:11.017302 +AWS,ap-southeast-1,m5dn.16xlarge,reserved_3y,no_upfront,3.367,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:52.793739 +AWS,ap-southeast-1,m5dn.16xlarge,reserved_3y,partial_upfront,3.367,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:45.955404 +AWS,ap-southeast-1,m5dn.16xlarge,spot,NA,1.698318,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920977 +AWS,ap-southeast-1,m5dn.24xlarge,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T09:00:01.628517 +AWS,ap-southeast-1,m5dn.24xlarge,reserved_1y,all_upfront,4.713356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:32.682290 +AWS,ap-southeast-1,m5dn.24xlarge,reserved_1y,no_upfront,4.713356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:14.352231 +AWS,ap-southeast-1,m5dn.24xlarge,reserved_1y,partial_upfront,4.713356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:58.650764 +AWS,ap-southeast-1,m5dn.24xlarge,reserved_3y,all_upfront,1.571119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:34.847333 +AWS,ap-southeast-1,m5dn.24xlarge,reserved_3y,no_upfront,1.571119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:17.476788 +AWS,ap-southeast-1,m5dn.24xlarge,reserved_3y,partial_upfront,1.571119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:10.077303 +AWS,ap-southeast-1,m5dn.24xlarge,spot,NA,2.648748,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921594 +AWS,ap-southeast-1,m5dn.2xlarge,on_demand,NA,0.668,USD,AWS Pricing API,2025-11-30T08:58:59.657279 +AWS,ap-southeast-1,m5dn.2xlarge,reserved_1y,all_upfront,0.468721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:31.072978 +AWS,ap-southeast-1,m5dn.2xlarge,reserved_1y,no_upfront,0.468721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:12.287732 +AWS,ap-southeast-1,m5dn.2xlarge,reserved_1y,partial_upfront,0.468721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:57.293411 +AWS,ap-southeast-1,m5dn.2xlarge,reserved_3y,all_upfront,0.15624,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:34.525522 +AWS,ap-southeast-1,m5dn.2xlarge,reserved_3y,no_upfront,0.15624,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:14.902010 +AWS,ap-southeast-1,m5dn.2xlarge,reserved_3y,partial_upfront,0.15624,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:09.058127 +AWS,ap-southeast-1,m5dn.2xlarge,spot,NA,0.343509,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920001 +AWS,ap-southeast-1,m5dn.4xlarge,on_demand,NA,1.336,USD,AWS Pricing API,2025-11-30T08:59:39.922922 +AWS,ap-southeast-1,m5dn.4xlarge,reserved_1y,all_upfront,0.842,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:11.179871 +AWS,ap-southeast-1,m5dn.4xlarge,reserved_1y,no_upfront,0.842,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:52.665976 +AWS,ap-southeast-1,m5dn.4xlarge,reserved_1y,partial_upfront,0.842,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:37.070191 +AWS,ap-southeast-1,m5dn.4xlarge,reserved_3y,all_upfront,0.842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:13.755921 +AWS,ap-southeast-1,m5dn.4xlarge,reserved_3y,no_upfront,0.842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:55.546218 +AWS,ap-southeast-1,m5dn.4xlarge,reserved_3y,partial_upfront,0.842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:48.651302 +AWS,ap-southeast-1,m5dn.4xlarge,spot,NA,0.773154,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921064 +AWS,ap-southeast-1,m5dn.8xlarge,on_demand,NA,2.672,USD,AWS Pricing API,2025-11-30T08:59:00.741370 +AWS,ap-southeast-1,m5dn.8xlarge,reserved_1y,all_upfront,2.009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:32.154500 +AWS,ap-southeast-1,m5dn.8xlarge,reserved_1y,no_upfront,2.009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:13.384014 +AWS,ap-southeast-1,m5dn.8xlarge,reserved_1y,partial_upfront,2.009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:58.383451 +AWS,ap-southeast-1,m5dn.8xlarge,reserved_3y,all_upfront,2.009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:35.581677 +AWS,ap-southeast-1,m5dn.8xlarge,reserved_3y,no_upfront,2.009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:15.999845 +AWS,ap-southeast-1,m5dn.8xlarge,reserved_3y,partial_upfront,2.009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:10.131213 +AWS,ap-southeast-1,m5dn.8xlarge,spot,NA,1.124062,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920028 +AWS,ap-southeast-1,m5dn.large,on_demand,NA,0.167,USD,AWS Pricing API,2025-11-30T08:59:55.241952 +AWS,ap-southeast-1,m5dn.large,reserved_1y,all_upfront,0.119817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:26.329430 +AWS,ap-southeast-1,m5dn.large,reserved_1y,no_upfront,0.119817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:07.941228 +AWS,ap-southeast-1,m5dn.large,reserved_1y,partial_upfront,0.119817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:52.328290 +AWS,ap-southeast-1,m5dn.large,reserved_3y,all_upfront,0.079939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:28.620732 +AWS,ap-southeast-1,m5dn.large,reserved_3y,no_upfront,0.079939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:10.983755 +AWS,ap-southeast-1,m5dn.large,reserved_3y,partial_upfront,0.079939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:03.750043 +AWS,ap-southeast-1,m5dn.large,spot,NA,0.072999,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921438 +AWS,ap-southeast-1,m5dn.metal,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T09:00:06.572425 +AWS,ap-southeast-1,m5dn.metal,reserved_1y,all_upfront,5.05,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:37.594899 +AWS,ap-southeast-1,m5dn.metal,reserved_1y,no_upfront,5.05,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:19.245912 +AWS,ap-southeast-1,m5dn.metal,reserved_1y,partial_upfront,5.05,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:03.535768 +AWS,ap-southeast-1,m5dn.metal,reserved_3y,all_upfront,5.05,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:39.606428 +AWS,ap-southeast-1,m5dn.metal,reserved_3y,no_upfront,5.05,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:22.449435 +AWS,ap-southeast-1,m5dn.metal,reserved_3y,partial_upfront,5.05,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:14.906077 +AWS,ap-southeast-1,m5dn.metal,spot,NA,2.090454,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921731 +AWS,ap-southeast-1,m5dn.xlarge,on_demand,NA,0.334,USD,AWS Pricing API,2025-11-30T08:58:58.435596 +AWS,ap-southeast-1,m5dn.xlarge,reserved_1y,all_upfront,0.151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:29.855790 +AWS,ap-southeast-1,m5dn.xlarge,reserved_1y,no_upfront,0.151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:11.063345 +AWS,ap-southeast-1,m5dn.xlarge,reserved_1y,partial_upfront,0.151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:56.079334 +AWS,ap-southeast-1,m5dn.xlarge,reserved_3y,all_upfront,0.151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:33.330595 +AWS,ap-southeast-1,m5dn.xlarge,reserved_3y,no_upfront,0.151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:13.667178 +AWS,ap-southeast-1,m5dn.xlarge,reserved_3y,partial_upfront,0.151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:07.841099 +AWS,ap-southeast-1,m5dn.xlarge,spot,NA,0.160965,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919963 +AWS,ap-southeast-1,m5n.12xlarge,on_demand,NA,3.504,USD,AWS Pricing API,2025-11-30T08:59:20.174084 +AWS,ap-southeast-1,m5n.12xlarge,reserved_1y,all_upfront,2.922781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:51.622211 +AWS,ap-southeast-1,m5n.12xlarge,reserved_1y,no_upfront,2.922781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:32.975273 +AWS,ap-southeast-1,m5n.12xlarge,reserved_1y,partial_upfront,2.922781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:17.768561 +AWS,ap-southeast-1,m5n.12xlarge,reserved_3y,all_upfront,1.461594,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:54.635092 +AWS,ap-southeast-1,m5n.12xlarge,reserved_3y,no_upfront,1.461594,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:35.752334 +AWS,ap-southeast-1,m5n.12xlarge,reserved_3y,partial_upfront,1.461594,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:29.364080 +AWS,ap-southeast-1,m5n.12xlarge,spot,NA,1.224667,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920574 +AWS,ap-southeast-1,m5n.16xlarge,on_demand,NA,4.672,USD,AWS Pricing API,2025-11-30T08:59:17.728235 +AWS,ap-southeast-1,m5n.16xlarge,reserved_1y,all_upfront,3.278196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:49.188780 +AWS,ap-southeast-1,m5n.16xlarge,reserved_1y,no_upfront,3.278196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:30.518945 +AWS,ap-southeast-1,m5n.16xlarge,reserved_1y,partial_upfront,3.278196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:15.327094 +AWS,ap-southeast-1,m5n.16xlarge,reserved_3y,all_upfront,1.092732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:52.248395 +AWS,ap-southeast-1,m5n.16xlarge,reserved_3y,no_upfront,1.092732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:33.226904 +AWS,ap-southeast-1,m5n.16xlarge,reserved_3y,partial_upfront,1.092732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:26.928368 +AWS,ap-southeast-1,m5n.16xlarge,spot,NA,1.593925,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920493 +AWS,ap-southeast-1,m5n.24xlarge,on_demand,NA,7.008,USD,AWS Pricing API,2025-11-30T08:58:59.251684 +AWS,ap-southeast-1,m5n.24xlarge,reserved_1y,all_upfront,8.591667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:30.669202 +AWS,ap-southeast-1,m5n.24xlarge,reserved_1y,no_upfront,8.591667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:11.880415 +AWS,ap-southeast-1,m5n.24xlarge,reserved_1y,partial_upfront,8.591667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:56.888234 +AWS,ap-southeast-1,m5n.24xlarge,reserved_3y,all_upfront,2.863889,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:34.122939 +AWS,ap-southeast-1,m5n.24xlarge,reserved_3y,no_upfront,2.863889,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:14.488936 +AWS,ap-southeast-1,m5n.24xlarge,reserved_3y,partial_upfront,2.863889,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:08.649886 +AWS,ap-southeast-1,m5n.24xlarge,spot,NA,2.224485,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919977 +AWS,ap-southeast-1,m5n.2xlarge,on_demand,NA,0.584,USD,AWS Pricing API,2025-11-30T08:59:31.685436 +AWS,ap-southeast-1,m5n.2xlarge,reserved_1y,all_upfront,0.409817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:03.056872 +AWS,ap-southeast-1,m5n.2xlarge,reserved_1y,no_upfront,0.409817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:44.399150 +AWS,ap-southeast-1,m5n.2xlarge,reserved_1y,partial_upfront,0.409817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:28.977586 +AWS,ap-southeast-1,m5n.2xlarge,reserved_3y,all_upfront,0.136606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:05.708135 +AWS,ap-southeast-1,m5n.2xlarge,reserved_3y,no_upfront,0.136606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:47.248310 +AWS,ap-southeast-1,m5n.2xlarge,reserved_3y,partial_upfront,0.136606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:40.529857 +AWS,ap-southeast-1,m5n.2xlarge,spot,NA,0.276391,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920865 +AWS,ap-southeast-1,m5n.4xlarge,on_demand,NA,1.168,USD,AWS Pricing API,2025-11-30T08:59:54.430475 +AWS,ap-southeast-1,m5n.4xlarge,reserved_1y,all_upfront,0.686758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:25.506665 +AWS,ap-southeast-1,m5n.4xlarge,reserved_1y,no_upfront,0.686758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:07.121804 +AWS,ap-southeast-1,m5n.4xlarge,reserved_1y,partial_upfront,0.686758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:51.528538 +AWS,ap-southeast-1,m5n.4xlarge,reserved_3y,all_upfront,0.228919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:27.811631 +AWS,ap-southeast-1,m5n.4xlarge,reserved_3y,no_upfront,0.228919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:10.160102 +AWS,ap-southeast-1,m5n.4xlarge,reserved_3y,partial_upfront,0.228919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:02.948338 +AWS,ap-southeast-1,m5n.4xlarge,spot,NA,0.555665,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921423 +AWS,ap-southeast-1,m5n.8xlarge,on_demand,NA,2.336,USD,AWS Pricing API,2025-11-30T08:59:19.623399 +AWS,ap-southeast-1,m5n.8xlarge,reserved_1y,all_upfront,1.373516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:51.084357 +AWS,ap-southeast-1,m5n.8xlarge,reserved_1y,no_upfront,1.373516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:32.419043 +AWS,ap-southeast-1,m5n.8xlarge,reserved_1y,partial_upfront,1.373516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:17.222783 +AWS,ap-southeast-1,m5n.8xlarge,reserved_3y,all_upfront,0.457839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:54.104393 +AWS,ap-southeast-1,m5n.8xlarge,reserved_3y,no_upfront,0.457839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:35.161797 +AWS,ap-southeast-1,m5n.8xlarge,reserved_3y,partial_upfront,0.457839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:28.821082 +AWS,ap-southeast-1,m5n.8xlarge,spot,NA,0.955871,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920524 +AWS,ap-southeast-1,m5n.large,on_demand,NA,0.146,USD,AWS Pricing API,2025-11-30T08:59:12.025724 +AWS,ap-southeast-1,m5n.large,reserved_1y,all_upfront,0.092,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:43.501381 +AWS,ap-southeast-1,m5n.large,reserved_1y,no_upfront,0.092,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:24.756097 +AWS,ap-southeast-1,m5n.large,reserved_1y,partial_upfront,0.092,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:09.637621 +AWS,ap-southeast-1,m5n.large,reserved_3y,all_upfront,0.092,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:46.659373 +AWS,ap-southeast-1,m5n.large,reserved_3y,no_upfront,0.092,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:27.429738 +AWS,ap-southeast-1,m5n.large,reserved_3y,partial_upfront,0.092,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:21.294414 +AWS,ap-southeast-1,m5n.large,spot,NA,0.058757,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920323 +AWS,ap-southeast-1,m5n.metal,on_demand,NA,7.008,USD,AWS Pricing API,2025-11-30T08:59:36.504239 +AWS,ap-southeast-1,m5n.metal,reserved_1y,all_upfront,5.269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:07.801531 +AWS,ap-southeast-1,m5n.metal,reserved_1y,no_upfront,5.269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:49.233293 +AWS,ap-southeast-1,m5n.metal,reserved_1y,partial_upfront,5.269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:33.699476 +AWS,ap-southeast-1,m5n.metal,reserved_3y,all_upfront,5.269,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:10.350916 +AWS,ap-southeast-1,m5n.metal,reserved_3y,no_upfront,5.269,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:52.103401 +AWS,ap-southeast-1,m5n.metal,reserved_3y,partial_upfront,5.269,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:45.275614 +AWS,ap-southeast-1,m5n.metal,spot,NA,1.613421,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920988 +AWS,ap-southeast-1,m5n.xlarge,on_demand,NA,0.292,USD,AWS Pricing API,2025-11-30T08:59:31.406414 +AWS,ap-southeast-1,m5n.xlarge,reserved_1y,all_upfront,0.22,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:02.786102 +AWS,ap-southeast-1,m5n.xlarge,reserved_1y,no_upfront,0.22,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:44.126541 +AWS,ap-southeast-1,m5n.xlarge,reserved_1y,partial_upfront,0.22,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:28.708344 +AWS,ap-southeast-1,m5n.xlarge,reserved_3y,all_upfront,0.22,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:05.442084 +AWS,ap-southeast-1,m5n.xlarge,reserved_3y,no_upfront,0.22,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:46.963951 +AWS,ap-southeast-1,m5n.xlarge,reserved_3y,partial_upfront,0.22,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:40.257086 +AWS,ap-southeast-1,m5n.xlarge,spot,NA,0.138209,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920874 +AWS,ap-southeast-1,m5zn.12xlarge,on_demand,NA,4.956,USD,AWS Pricing API,2025-11-30T08:59:36.649049 +AWS,ap-southeast-1,m5zn.12xlarge,reserved_1y,all_upfront,3.552027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:07.940297 +AWS,ap-southeast-1,m5zn.12xlarge,reserved_1y,no_upfront,3.552027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:49.371586 +AWS,ap-southeast-1,m5zn.12xlarge,reserved_1y,partial_upfront,3.552027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:33.833243 +AWS,ap-southeast-1,m5zn.12xlarge,reserved_3y,all_upfront,2.368009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:10.487898 +AWS,ap-southeast-1,m5zn.12xlarge,reserved_3y,no_upfront,2.368009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:52.240531 +AWS,ap-southeast-1,m5zn.12xlarge,reserved_3y,partial_upfront,2.368009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:45.411162 +AWS,ap-southeast-1,m5zn.12xlarge,spot,NA,1.858466,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920980 +AWS,ap-southeast-1,m5zn.2xlarge,on_demand,NA,0.826,USD,AWS Pricing API,2025-11-30T08:59:05.809918 +AWS,ap-southeast-1,m5zn.2xlarge,reserved_1y,all_upfront,0.5187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:37.270384 +AWS,ap-southeast-1,m5zn.2xlarge,reserved_1y,no_upfront,0.5187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:18.437597 +AWS,ap-southeast-1,m5zn.2xlarge,reserved_1y,partial_upfront,0.5187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:03.412560 +AWS,ap-southeast-1,m5zn.2xlarge,reserved_3y,all_upfront,0.5187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:40.527472 +AWS,ap-southeast-1,m5zn.2xlarge,reserved_3y,no_upfront,0.5187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:21.074277 +AWS,ap-southeast-1,m5zn.2xlarge,reserved_3y,partial_upfront,0.5187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:15.080793 +AWS,ap-southeast-1,m5zn.2xlarge,spot,NA,0.484,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920174 +AWS,ap-southeast-1,m5zn.3xlarge,on_demand,NA,1.239,USD,AWS Pricing API,2025-11-30T08:59:40.197994 +AWS,ap-southeast-1,m5zn.3xlarge,reserved_1y,all_upfront,0.741048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:11.463205 +AWS,ap-southeast-1,m5zn.3xlarge,reserved_1y,no_upfront,0.741048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:52.934686 +AWS,ap-southeast-1,m5zn.3xlarge,reserved_1y,partial_upfront,0.741048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:37.338859 +AWS,ap-southeast-1,m5zn.3xlarge,reserved_3y,all_upfront,0.494016,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:14.020287 +AWS,ap-southeast-1,m5zn.3xlarge,reserved_3y,no_upfront,0.494016,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:55.821288 +AWS,ap-southeast-1,m5zn.3xlarge,reserved_3y,partial_upfront,0.494016,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:48.926605 +AWS,ap-southeast-1,m5zn.3xlarge,spot,NA,0.663617,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921076 +AWS,ap-southeast-1,m5zn.6xlarge,on_demand,NA,2.478,USD,AWS Pricing API,2025-11-30T08:58:59.930026 +AWS,ap-southeast-1,m5zn.6xlarge,reserved_1y,all_upfront,1.740525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:31.344217 +AWS,ap-southeast-1,m5zn.6xlarge,reserved_1y,no_upfront,1.740525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:12.561512 +AWS,ap-southeast-1,m5zn.6xlarge,reserved_1y,partial_upfront,1.740525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:57.563639 +AWS,ap-southeast-1,m5zn.6xlarge,reserved_3y,all_upfront,0.580175,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:34.791632 +AWS,ap-southeast-1,m5zn.6xlarge,reserved_3y,no_upfront,0.580175,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:15.179874 +AWS,ap-southeast-1,m5zn.6xlarge,reserved_3y,partial_upfront,0.580175,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:09.329693 +AWS,ap-southeast-1,m5zn.6xlarge,spot,NA,1.256918,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920010 +AWS,ap-southeast-1,m5zn.large,on_demand,NA,0.2065,USD,AWS Pricing API,2025-11-30T08:59:29.749542 +AWS,ap-southeast-1,m5zn.large,reserved_1y,all_upfront,0.198901,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:01.027950 +AWS,ap-southeast-1,m5zn.large,reserved_1y,no_upfront,0.198901,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:42.462564 +AWS,ap-southeast-1,m5zn.large,reserved_1y,partial_upfront,0.198901,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:27.086109 +AWS,ap-southeast-1,m5zn.large,reserved_3y,all_upfront,0.099434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:03.831701 +AWS,ap-southeast-1,m5zn.large,reserved_3y,no_upfront,0.099434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:45.302315 +AWS,ap-southeast-1,m5zn.large,reserved_3y,partial_upfront,0.099434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:38.629231 +AWS,ap-southeast-1,m5zn.large,spot,NA,0.089603,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920800 +AWS,ap-southeast-1,m5zn.metal,on_demand,NA,4.956,USD,AWS Pricing API,2025-11-30T09:00:07.113878 +AWS,ap-southeast-1,m5zn.metal,reserved_1y,all_upfront,2.963963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:38.149788 +AWS,ap-southeast-1,m5zn.metal,reserved_1y,no_upfront,2.963963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:19.790321 +AWS,ap-southeast-1,m5zn.metal,reserved_1y,partial_upfront,2.963963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:04.080506 +AWS,ap-southeast-1,m5zn.metal,reserved_3y,all_upfront,1.975988,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:40.137535 +AWS,ap-southeast-1,m5zn.metal,reserved_3y,no_upfront,1.975988,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:22.995994 +AWS,ap-southeast-1,m5zn.metal,reserved_3y,partial_upfront,1.975988,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:15.461474 +AWS,ap-southeast-1,m5zn.metal,spot,NA,1.523481,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921720 +AWS,ap-southeast-1,m5zn.xlarge,on_demand,NA,0.413,USD,AWS Pricing API,2025-11-30T08:59:05.001094 +AWS,ap-southeast-1,m5zn.xlarge,reserved_1y,all_upfront,0.331973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:36.459617 +AWS,ap-southeast-1,m5zn.xlarge,reserved_1y,no_upfront,0.331973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:17.618194 +AWS,ap-southeast-1,m5zn.xlarge,reserved_1y,partial_upfront,0.331973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:02.605113 +AWS,ap-southeast-1,m5zn.xlarge,reserved_3y,all_upfront,0.165991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:39.736631 +AWS,ap-southeast-1,m5zn.xlarge,reserved_3y,no_upfront,0.165991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:20.258926 +AWS,ap-southeast-1,m5zn.xlarge,reserved_3y,partial_upfront,0.165991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:14.274938 +AWS,ap-southeast-1,m5zn.xlarge,spot,NA,0.226584,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920149 +AWS,ap-southeast-1,m6g.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:59:14.748713 +AWS,ap-southeast-1,m6g.12xlarge,reserved_1y,all_upfront,1.84322,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:46.216549 +AWS,ap-southeast-1,m6g.12xlarge,reserved_1y,no_upfront,1.84322,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:27.486193 +AWS,ap-southeast-1,m6g.12xlarge,reserved_1y,partial_upfront,1.84322,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:12.342801 +AWS,ap-southeast-1,m6g.12xlarge,reserved_3y,all_upfront,0.921607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:49.313457 +AWS,ap-southeast-1,m6g.12xlarge,reserved_3y,no_upfront,0.921607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:30.193412 +AWS,ap-southeast-1,m6g.12xlarge,reserved_3y,partial_upfront,0.921607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:23.983402 +AWS,ap-southeast-1,m6g.12xlarge,spot,NA,0.848674,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920405 +AWS,ap-southeast-1,m6g.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:59:10.127980 +AWS,ap-southeast-1,m6g.16xlarge,reserved_1y,all_upfront,2.457551,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:41.609807 +AWS,ap-southeast-1,m6g.16xlarge,reserved_1y,no_upfront,2.457551,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:22.846926 +AWS,ap-southeast-1,m6g.16xlarge,reserved_1y,partial_upfront,2.457551,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:07.731876 +AWS,ap-southeast-1,m6g.16xlarge,reserved_3y,all_upfront,1.228784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:44.793666 +AWS,ap-southeast-1,m6g.16xlarge,reserved_3y,no_upfront,1.228784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:25.494552 +AWS,ap-southeast-1,m6g.16xlarge,reserved_3y,partial_upfront,1.228784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:19.412606 +AWS,ap-southeast-1,m6g.16xlarge,spot,NA,1.095789,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920237 +AWS,ap-southeast-1,m6g.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:59:31.000494 +AWS,ap-southeast-1,m6g.2xlarge,reserved_1y,all_upfront,0.273886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:02.379397 +AWS,ap-southeast-1,m6g.2xlarge,reserved_1y,no_upfront,0.273886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:43.713346 +AWS,ap-southeast-1,m6g.2xlarge,reserved_1y,partial_upfront,0.273886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:28.302844 +AWS,ap-southeast-1,m6g.2xlarge,reserved_3y,all_upfront,0.182562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:05.039169 +AWS,ap-southeast-1,m6g.2xlarge,reserved_3y,no_upfront,0.182562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:46.540840 +AWS,ap-southeast-1,m6g.2xlarge,reserved_3y,partial_upfront,0.182562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:39.857204 +AWS,ap-southeast-1,m6g.2xlarge,spot,NA,0.168249,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920839 +AWS,ap-southeast-1,m6g.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:59:57.673678 +AWS,ap-southeast-1,m6g.4xlarge,reserved_1y,all_upfront,0.451598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:28.760144 +AWS,ap-southeast-1,m6g.4xlarge,reserved_1y,no_upfront,0.451598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:10.398440 +AWS,ap-southeast-1,m6g.4xlarge,reserved_1y,partial_upfront,0.451598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:54.740612 +AWS,ap-southeast-1,m6g.4xlarge,reserved_3y,all_upfront,0.150533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:31.001196 +AWS,ap-southeast-1,m6g.4xlarge,reserved_3y,no_upfront,0.150533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:13.447292 +AWS,ap-southeast-1,m6g.4xlarge,reserved_3y,partial_upfront,0.150533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:06.162556 +AWS,ap-southeast-1,m6g.4xlarge,spot,NA,0.306476,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921501 +AWS,ap-southeast-1,m6g.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:59:38.567016 +AWS,ap-southeast-1,m6g.8xlarge,reserved_1y,all_upfront,1.073516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:09.835740 +AWS,ap-southeast-1,m6g.8xlarge,reserved_1y,no_upfront,1.073516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:51.304923 +AWS,ap-southeast-1,m6g.8xlarge,reserved_1y,partial_upfront,1.073516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:35.720378 +AWS,ap-southeast-1,m6g.8xlarge,reserved_3y,all_upfront,0.357839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:12.353746 +AWS,ap-southeast-1,m6g.8xlarge,reserved_3y,no_upfront,0.357839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:54.172328 +AWS,ap-southeast-1,m6g.8xlarge,reserved_3y,partial_upfront,0.357839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:47.312773 +AWS,ap-southeast-1,m6g.8xlarge,spot,NA,0.659912,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921021 +AWS,ap-southeast-1,m6g.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T08:59:15.305280 +AWS,ap-southeast-1,m6g.large,reserved_1y,all_upfront,0.0719,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:46.764697 +AWS,ap-southeast-1,m6g.large,reserved_1y,no_upfront,0.0719,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:28.037756 +AWS,ap-southeast-1,m6g.large,reserved_1y,partial_upfront,0.0719,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:12.890251 +AWS,ap-southeast-1,m6g.large,reserved_3y,all_upfront,0.0719,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:49.847603 +AWS,ap-southeast-1,m6g.large,reserved_3y,no_upfront,0.0719,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:30.746527 +AWS,ap-southeast-1,m6g.large,reserved_3y,partial_upfront,0.0719,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:24.518137 +AWS,ap-southeast-1,m6g.large,spot,NA,0.040312,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920441 +AWS,ap-southeast-1,m6g.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:59:29.183142 +AWS,ap-southeast-1,m6g.xlarge,reserved_1y,all_upfront,0.1129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:00.487892 +AWS,ap-southeast-1,m6g.xlarge,reserved_1y,no_upfront,0.1129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:41.906522 +AWS,ap-southeast-1,m6g.xlarge,reserved_1y,partial_upfront,0.1129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:26.547466 +AWS,ap-southeast-1,m6g.xlarge,reserved_3y,all_upfront,0.037633,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:03.294547 +AWS,ap-southeast-1,m6g.xlarge,reserved_3y,no_upfront,0.037633,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:44.741535 +AWS,ap-southeast-1,m6g.xlarge,reserved_3y,partial_upfront,0.037633,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:38.089953 +AWS,ap-southeast-1,m6g.xlarge,spot,NA,0.074445,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920788 +AWS,ap-southeast-1,m6gd.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:59:47.310887 +AWS,ap-southeast-1,m6gd.12xlarge,reserved_1y,all_upfront,1.920046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:18.477601 +AWS,ap-southeast-1,m6gd.12xlarge,reserved_1y,no_upfront,1.920046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:00.018522 +AWS,ap-southeast-1,m6gd.12xlarge,reserved_1y,partial_upfront,1.920046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:44.476115 +AWS,ap-southeast-1,m6gd.12xlarge,reserved_3y,all_upfront,1.280015,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:20.951257 +AWS,ap-southeast-1,m6gd.12xlarge,reserved_3y,no_upfront,1.280015,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:03.021008 +AWS,ap-southeast-1,m6gd.12xlarge,reserved_3y,partial_upfront,1.280015,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:55.929078 +AWS,ap-southeast-1,m6gd.12xlarge,spot,NA,0.979919,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921223 +AWS,ap-southeast-1,m6gd.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T08:59:49.616765 +AWS,ap-southeast-1,m6gd.16xlarge,reserved_1y,all_upfront,4.060502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:20.756202 +AWS,ap-southeast-1,m6gd.16xlarge,reserved_1y,no_upfront,4.060502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:02.354117 +AWS,ap-southeast-1,m6gd.16xlarge,reserved_1y,partial_upfront,4.060502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:46.762679 +AWS,ap-southeast-1,m6gd.16xlarge,reserved_3y,all_upfront,1.353501,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:23.206358 +AWS,ap-southeast-1,m6gd.16xlarge,reserved_3y,no_upfront,1.353501,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:05.357306 +AWS,ap-southeast-1,m6gd.16xlarge,reserved_3y,partial_upfront,1.353501,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:58.233015 +AWS,ap-southeast-1,m6gd.16xlarge,spot,NA,1.288386,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921320 +AWS,ap-southeast-1,m6gd.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:59:17.445159 +AWS,ap-southeast-1,m6gd.2xlarge,reserved_1y,all_upfront,0.1944,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:48.915298 +AWS,ap-southeast-1,m6gd.2xlarge,reserved_1y,no_upfront,0.1944,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:30.243291 +AWS,ap-southeast-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.1944,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:15.051298 +AWS,ap-southeast-1,m6gd.2xlarge,reserved_3y,all_upfront,0.1944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:51.969664 +AWS,ap-southeast-1,m6gd.2xlarge,reserved_3y,no_upfront,0.1944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:32.952038 +AWS,ap-southeast-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.1944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:26.655234 +AWS,ap-southeast-1,m6gd.2xlarge,spot,NA,0.217006,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920489 +AWS,ap-southeast-1,m6gd.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:59:44.430390 +AWS,ap-southeast-1,m6gd.4xlarge,reserved_1y,all_upfront,0.5712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:15.640284 +AWS,ap-southeast-1,m6gd.4xlarge,reserved_1y,no_upfront,0.5712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:57.140551 +AWS,ap-southeast-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.5712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:41.538722 +AWS,ap-southeast-1,m6gd.4xlarge,reserved_3y,all_upfront,0.5712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:18.151605 +AWS,ap-southeast-1,m6gd.4xlarge,reserved_3y,no_upfront,0.5712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:00.106525 +AWS,ap-southeast-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.5712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:53.079533 +AWS,ap-southeast-1,m6gd.4xlarge,spot,NA,0.34328,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921163 +AWS,ap-southeast-1,m6gd.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T08:59:06.222766 +AWS,ap-southeast-1,m6gd.8xlarge,reserved_1y,all_upfront,1.088064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:37.674230 +AWS,ap-southeast-1,m6gd.8xlarge,reserved_1y,no_upfront,1.088064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:18.845745 +AWS,ap-southeast-1,m6gd.8xlarge,reserved_1y,partial_upfront,1.088064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:03.817072 +AWS,ap-southeast-1,m6gd.8xlarge,reserved_3y,all_upfront,0.725355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:40.944423 +AWS,ap-southeast-1,m6gd.8xlarge,reserved_3y,no_upfront,0.725355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:21.487244 +AWS,ap-southeast-1,m6gd.8xlarge,reserved_3y,partial_upfront,0.725355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:15.485135 +AWS,ap-southeast-1,m6gd.8xlarge,spot,NA,0.680818,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920178 +AWS,ap-southeast-1,m6gd.large,on_demand,NA,0.113,USD,AWS Pricing API,2025-11-30T08:59:27.822532 +AWS,ap-southeast-1,m6gd.large,reserved_1y,all_upfront,0.078425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:59.139502 +AWS,ap-southeast-1,m6gd.large,reserved_1y,no_upfront,0.078425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:40.514109 +AWS,ap-southeast-1,m6gd.large,reserved_1y,partial_upfront,0.078425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:25.197581 +AWS,ap-southeast-1,m6gd.large,reserved_3y,all_upfront,0.026142,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:01.947377 +AWS,ap-southeast-1,m6gd.large,reserved_3y,no_upfront,0.026142,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:43.354957 +AWS,ap-southeast-1,m6gd.large,reserved_3y,partial_upfront,0.026142,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:36.746940 +AWS,ap-southeast-1,m6gd.large,spot,NA,0.068506,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920744 +AWS,ap-southeast-1,m6gd.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:59:20.857086 +AWS,ap-southeast-1,m6gd.xlarge,reserved_1y,all_upfront,0.168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:52.301646 +AWS,ap-southeast-1,m6gd.xlarge,reserved_1y,no_upfront,0.168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:33.655995 +AWS,ap-southeast-1,m6gd.xlarge,reserved_1y,partial_upfront,0.168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:18.441570 +AWS,ap-southeast-1,m6gd.xlarge,reserved_3y,all_upfront,0.168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:55.301094 +AWS,ap-southeast-1,m6gd.xlarge,reserved_3y,no_upfront,0.168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:36.437416 +AWS,ap-southeast-1,m6gd.xlarge,reserved_3y,partial_upfront,0.168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:30.040124 +AWS,ap-southeast-1,m6gd.xlarge,spot,NA,0.104429,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920570 +AWS,ap-southeast-1,m6i.12xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T08:59:07.021089 +AWS,ap-southeast-1,m6i.12xlarge,reserved_1y,all_upfront,1.778082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:38.487271 +AWS,ap-southeast-1,m6i.12xlarge,reserved_1y,no_upfront,1.778082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:19.668040 +AWS,ap-southeast-1,m6i.12xlarge,reserved_1y,partial_upfront,1.778082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:04.637385 +AWS,ap-southeast-1,m6i.12xlarge,reserved_3y,all_upfront,0.592694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:41.736878 +AWS,ap-southeast-1,m6i.12xlarge,reserved_3y,no_upfront,0.592694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:22.303996 +AWS,ap-southeast-1,m6i.12xlarge,reserved_3y,partial_upfront,0.592694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:16.308196 +AWS,ap-southeast-1,m6i.12xlarge,spot,NA,1.089353,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920182 +AWS,ap-southeast-1,m6i.16xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T08:59:21.611701 +AWS,ap-southeast-1,m6i.16xlarge,reserved_1y,all_upfront,2.85936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:52.980618 +AWS,ap-southeast-1,m6i.16xlarge,reserved_1y,no_upfront,2.85936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:34.338953 +AWS,ap-southeast-1,m6i.16xlarge,reserved_1y,partial_upfront,2.85936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:19.109870 +AWS,ap-southeast-1,m6i.16xlarge,reserved_3y,all_upfront,2.85936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:55.967938 +AWS,ap-southeast-1,m6i.16xlarge,reserved_3y,no_upfront,2.85936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:37.123163 +AWS,ap-southeast-1,m6i.16xlarge,reserved_3y,partial_upfront,2.85936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:30.710507 +AWS,ap-southeast-1,m6i.16xlarge,spot,NA,1.478116,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920609 +AWS,ap-southeast-1,m6i.24xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T08:59:23.150560 +AWS,ap-southeast-1,m6i.24xlarge,reserved_1y,all_upfront,4.28904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:54.456114 +AWS,ap-southeast-1,m6i.24xlarge,reserved_1y,no_upfront,4.28904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:35.841306 +AWS,ap-southeast-1,m6i.24xlarge,reserved_1y,partial_upfront,4.28904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:20.604759 +AWS,ap-southeast-1,m6i.24xlarge,reserved_3y,all_upfront,4.28904,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:57.421543 +AWS,ap-southeast-1,m6i.24xlarge,reserved_3y,no_upfront,4.28904,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:38.647215 +AWS,ap-southeast-1,m6i.24xlarge,reserved_3y,partial_upfront,4.28904,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:32.192703 +AWS,ap-southeast-1,m6i.24xlarge,spot,NA,2.143984,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920628 +AWS,ap-southeast-1,m6i.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T08:59:42.239803 +AWS,ap-southeast-1,m6i.2xlarge,reserved_1y,all_upfront,0.340405,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:13.486416 +AWS,ap-southeast-1,m6i.2xlarge,reserved_1y,no_upfront,0.340405,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:54.969257 +AWS,ap-southeast-1,m6i.2xlarge,reserved_1y,partial_upfront,0.340405,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:39.368587 +AWS,ap-southeast-1,m6i.2xlarge,reserved_3y,all_upfront,0.226935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:16.032536 +AWS,ap-southeast-1,m6i.2xlarge,reserved_3y,no_upfront,0.226935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:57.885786 +AWS,ap-southeast-1,m6i.2xlarge,reserved_3y,partial_upfront,0.226935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:50.928009 +AWS,ap-southeast-1,m6i.2xlarge,spot,NA,0.213728,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921123 +AWS,ap-southeast-1,m6i.32xlarge,on_demand,NA,7.68,USD,AWS Pricing API,2025-11-30T08:59:58.894823 +AWS,ap-southeast-1,m6i.32xlarge,reserved_1y,all_upfront,5.08032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:29.992651 +AWS,ap-southeast-1,m6i.32xlarge,reserved_1y,no_upfront,5.08032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:11.627240 +AWS,ap-southeast-1,m6i.32xlarge,reserved_1y,partial_upfront,5.08032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:55.952018 +AWS,ap-southeast-1,m6i.32xlarge,reserved_3y,all_upfront,5.08032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:32.204433 +AWS,ap-southeast-1,m6i.32xlarge,reserved_3y,no_upfront,5.08032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:14.690142 +AWS,ap-southeast-1,m6i.32xlarge,reserved_3y,partial_upfront,5.08032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:07.374943 +AWS,ap-southeast-1,m6i.32xlarge,spot,NA,2.50858,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921513 +AWS,ap-southeast-1,m6i.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T08:59:09.171635 +AWS,ap-southeast-1,m6i.4xlarge,reserved_1y,all_upfront,1.325342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:40.660959 +AWS,ap-southeast-1,m6i.4xlarge,reserved_1y,no_upfront,1.325342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:21.844060 +AWS,ap-southeast-1,m6i.4xlarge,reserved_1y,partial_upfront,1.325342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:06.787820 +AWS,ap-southeast-1,m6i.4xlarge,reserved_3y,all_upfront,0.441781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:43.865061 +AWS,ap-southeast-1,m6i.4xlarge,reserved_3y,no_upfront,0.441781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:24.525179 +AWS,ap-southeast-1,m6i.4xlarge,reserved_3y,partial_upfront,0.441781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:18.470850 +AWS,ap-southeast-1,m6i.4xlarge,spot,NA,0.414308,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920249 +AWS,ap-southeast-1,m6i.8xlarge,on_demand,NA,1.92,USD,AWS Pricing API,2025-11-30T08:59:13.934543 +AWS,ap-southeast-1,m6i.8xlarge,reserved_1y,all_upfront,1.27008,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:45.407365 +AWS,ap-southeast-1,m6i.8xlarge,reserved_1y,no_upfront,1.27008,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:26.665946 +AWS,ap-southeast-1,m6i.8xlarge,reserved_1y,partial_upfront,1.27008,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:11.528900 +AWS,ap-southeast-1,m6i.8xlarge,reserved_3y,all_upfront,1.27008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:48.516660 +AWS,ap-southeast-1,m6i.8xlarge,reserved_3y,no_upfront,1.27008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:29.363463 +AWS,ap-southeast-1,m6i.8xlarge,reserved_3y,partial_upfront,1.27008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:23.171896 +AWS,ap-southeast-1,m6i.8xlarge,spot,NA,0.78356,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920381 +AWS,ap-southeast-1,m6i.large,on_demand,NA,0.12,USD,AWS Pricing API,2025-11-30T08:59:24.657337 +AWS,ap-southeast-1,m6i.large,reserved_1y,all_upfront,0.165639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:56.033580 +AWS,ap-southeast-1,m6i.large,reserved_1y,no_upfront,0.165639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:37.361994 +AWS,ap-southeast-1,m6i.large,reserved_1y,partial_upfront,0.165639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:22.083834 +AWS,ap-southeast-1,m6i.large,reserved_3y,all_upfront,0.055213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:58.879187 +AWS,ap-southeast-1,m6i.large,reserved_3y,no_upfront,0.055213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:40.187338 +AWS,ap-southeast-1,m6i.large,reserved_3y,partial_upfront,0.055213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:33.673973 +AWS,ap-southeast-1,m6i.large,spot,NA,0.051781,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920678 +AWS,ap-southeast-1,m6i.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T08:59:00.463552 +AWS,ap-southeast-1,m6i.xlarge,reserved_1y,all_upfront,0.166781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:31.886400 +AWS,ap-southeast-1,m6i.xlarge,reserved_1y,no_upfront,0.166781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:13.108396 +AWS,ap-southeast-1,m6i.xlarge,reserved_1y,partial_upfront,0.166781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:58.104215 +AWS,ap-southeast-1,m6i.xlarge,reserved_3y,all_upfront,0.055594,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:35.320323 +AWS,ap-southeast-1,m6i.xlarge,reserved_3y,no_upfront,0.055594,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:15.723754 +AWS,ap-southeast-1,m6i.xlarge,reserved_3y,partial_upfront,0.055594,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:09.859955 +AWS,ap-southeast-1,m6i.xlarge,spot,NA,0.107274,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920024 +AWS,ap-southeast-1,m6id.12xlarge,on_demand,NA,3.5532,USD,AWS Pricing API,2025-11-30T08:59:38.704956 +AWS,ap-southeast-1,m6id.12xlarge,reserved_1y,all_upfront,2.64102,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:09.970230 +AWS,ap-southeast-1,m6id.12xlarge,reserved_1y,no_upfront,2.64102,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:51.443185 +AWS,ap-southeast-1,m6id.12xlarge,reserved_1y,partial_upfront,2.64102,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:35.855569 +AWS,ap-southeast-1,m6id.12xlarge,reserved_3y,all_upfront,2.64102,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:12.495688 +AWS,ap-southeast-1,m6id.12xlarge,reserved_3y,no_upfront,2.64102,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:54.309051 +AWS,ap-southeast-1,m6id.12xlarge,reserved_3y,partial_upfront,2.64102,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:47.446724 +AWS,ap-southeast-1,m6id.12xlarge,spot,NA,1.324117,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921029 +AWS,ap-southeast-1,m6id.16xlarge,on_demand,NA,4.7376,USD,AWS Pricing API,2025-11-30T08:59:05.673534 +AWS,ap-southeast-1,m6id.16xlarge,reserved_1y,all_upfront,3.52136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:37.133194 +AWS,ap-southeast-1,m6id.16xlarge,reserved_1y,no_upfront,3.52136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:18.298903 +AWS,ap-southeast-1,m6id.16xlarge,reserved_1y,partial_upfront,3.52136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:03.274352 +AWS,ap-southeast-1,m6id.16xlarge,reserved_3y,all_upfront,3.52136,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:40.395540 +AWS,ap-southeast-1,m6id.16xlarge,reserved_3y,no_upfront,3.52136,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:20.937066 +AWS,ap-southeast-1,m6id.16xlarge,reserved_3y,partial_upfront,3.52136,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:14.947347 +AWS,ap-southeast-1,m6id.16xlarge,spot,NA,1.706618,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920158 +AWS,ap-southeast-1,m6id.24xlarge,on_demand,NA,7.1064,USD,AWS Pricing API,2025-11-30T08:59:09.851909 +AWS,ap-southeast-1,m6id.24xlarge,reserved_1y,all_upfront,5.28204,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:41.340240 +AWS,ap-southeast-1,m6id.24xlarge,reserved_1y,no_upfront,5.28204,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:22.575345 +AWS,ap-southeast-1,m6id.24xlarge,reserved_1y,partial_upfront,5.28204,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:07.464098 +AWS,ap-southeast-1,m6id.24xlarge,reserved_3y,all_upfront,5.28204,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:44.526522 +AWS,ap-southeast-1,m6id.24xlarge,reserved_3y,no_upfront,5.28204,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:25.217496 +AWS,ap-southeast-1,m6id.24xlarge,reserved_3y,partial_upfront,5.28204,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:19.141944 +AWS,ap-southeast-1,m6id.24xlarge,spot,NA,2.503794,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920273 +AWS,ap-southeast-1,m6id.2xlarge,on_demand,NA,0.5922,USD,AWS Pricing API,2025-11-30T08:59:02.240263 +AWS,ap-southeast-1,m6id.2xlarge,reserved_1y,all_upfront,0.419189,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:33.718387 +AWS,ap-southeast-1,m6id.2xlarge,reserved_1y,no_upfront,0.419189,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:14.886630 +AWS,ap-southeast-1,m6id.2xlarge,reserved_1y,partial_upfront,0.419189,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:59.867445 +AWS,ap-southeast-1,m6id.2xlarge,reserved_3y,all_upfront,0.279463,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:37.041060 +AWS,ap-southeast-1,m6id.2xlarge,reserved_3y,no_upfront,0.279463,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:17.510532 +AWS,ap-southeast-1,m6id.2xlarge,reserved_3y,partial_upfront,0.279463,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:11.597754 +AWS,ap-southeast-1,m6id.2xlarge,spot,NA,0.249909,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920064 +AWS,ap-southeast-1,m6id.32xlarge,on_demand,NA,9.4752,USD,AWS Pricing API,2025-11-30T08:59:42.523249 +AWS,ap-southeast-1,m6id.32xlarge,reserved_1y,all_upfront,5.68514,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:13.756053 +AWS,ap-southeast-1,m6id.32xlarge,reserved_1y,no_upfront,5.68514,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:55.238573 +AWS,ap-southeast-1,m6id.32xlarge,reserved_1y,partial_upfront,5.68514,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:39.653305 +AWS,ap-southeast-1,m6id.32xlarge,reserved_3y,all_upfront,3.790087,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:16.295339 +AWS,ap-southeast-1,m6id.32xlarge,reserved_3y,no_upfront,3.790087,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:58.158615 +AWS,ap-southeast-1,m6id.32xlarge,reserved_3y,partial_upfront,3.790087,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:51.197317 +AWS,ap-southeast-1,m6id.32xlarge,spot,NA,3.048858,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921139 +AWS,ap-southeast-1,m6id.4xlarge,on_demand,NA,1.1844,USD,AWS Pricing API,2025-11-30T09:00:05.070941 +AWS,ap-southeast-1,m6id.4xlarge,reserved_1y,all_upfront,0.88034,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:36.111137 +AWS,ap-southeast-1,m6id.4xlarge,reserved_1y,no_upfront,0.88034,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:17.757249 +AWS,ap-southeast-1,m6id.4xlarge,reserved_1y,partial_upfront,0.88034,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:02.037290 +AWS,ap-southeast-1,m6id.4xlarge,reserved_3y,all_upfront,0.88034,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:38.155247 +AWS,ap-southeast-1,m6id.4xlarge,reserved_3y,no_upfront,0.88034,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:20.930959 +AWS,ap-southeast-1,m6id.4xlarge,reserved_3y,partial_upfront,0.88034,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:13.439341 +AWS,ap-southeast-1,m6id.4xlarge,spot,NA,0.491524,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921647 +AWS,ap-southeast-1,m6id.8xlarge,on_demand,NA,2.3688,USD,AWS Pricing API,2025-11-30T08:59:37.335096 +AWS,ap-southeast-1,m6id.8xlarge,reserved_1y,all_upfront,1.643265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:08.611827 +AWS,ap-southeast-1,m6id.8xlarge,reserved_1y,no_upfront,1.643265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:50.054300 +AWS,ap-southeast-1,m6id.8xlarge,reserved_1y,partial_upfront,1.643265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:34.513418 +AWS,ap-southeast-1,m6id.8xlarge,reserved_3y,all_upfront,0.547755,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:11.151428 +AWS,ap-southeast-1,m6id.8xlarge,reserved_3y,no_upfront,0.547755,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:52.930831 +AWS,ap-southeast-1,m6id.8xlarge,reserved_3y,partial_upfront,0.547755,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:46.101185 +AWS,ap-southeast-1,m6id.8xlarge,spot,NA,0.858064,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921001 +AWS,ap-southeast-1,m6id.large,on_demand,NA,0.14805,USD,AWS Pricing API,2025-11-30T09:00:06.160189 +AWS,ap-southeast-1,m6id.large,reserved_1y,all_upfront,0.11004,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:37.189233 +AWS,ap-southeast-1,m6id.large,reserved_1y,no_upfront,0.11004,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:18.836751 +AWS,ap-southeast-1,m6id.large,reserved_1y,partial_upfront,0.11004,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:03.122354 +AWS,ap-southeast-1,m6id.large,reserved_3y,all_upfront,0.11004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:39.207060 +AWS,ap-southeast-1,m6id.large,reserved_3y,no_upfront,0.11004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:22.027060 +AWS,ap-southeast-1,m6id.large,reserved_3y,partial_upfront,0.11004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:14.505907 +AWS,ap-southeast-1,m6id.large,spot,NA,0.058107,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921700 +AWS,ap-southeast-1,m6id.xlarge,on_demand,NA,0.2961,USD,AWS Pricing API,2025-11-30T08:59:08.902826 +AWS,ap-southeast-1,m6id.xlarge,reserved_1y,all_upfront,0.334018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:40.390809 +AWS,ap-southeast-1,m6id.xlarge,reserved_1y,no_upfront,0.334018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:21.571984 +AWS,ap-southeast-1,m6id.xlarge,reserved_1y,partial_upfront,0.334018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:06.517256 +AWS,ap-southeast-1,m6id.xlarge,reserved_3y,all_upfront,0.111339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:43.596938 +AWS,ap-southeast-1,m6id.xlarge,reserved_3y,no_upfront,0.111339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:24.249846 +AWS,ap-southeast-1,m6id.xlarge,reserved_3y,partial_upfront,0.111339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:18.199129 +AWS,ap-southeast-1,m6id.xlarge,spot,NA,0.122384,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920234 +AWS,ap-southeast-1,m6idn.12xlarge,on_demand,NA,4.68936,USD,AWS Pricing API,2025-11-30T08:59:28.911525 +AWS,ap-southeast-1,m6idn.12xlarge,reserved_1y,all_upfront,3.52497,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:00.218135 +AWS,ap-southeast-1,m6idn.12xlarge,reserved_1y,no_upfront,3.52497,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:41.632753 +AWS,ap-southeast-1,m6idn.12xlarge,reserved_1y,partial_upfront,3.52497,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:26.277799 +AWS,ap-southeast-1,m6idn.12xlarge,reserved_3y,all_upfront,3.52497,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:03.019022 +AWS,ap-southeast-1,m6idn.12xlarge,reserved_3y,no_upfront,3.52497,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:44.465197 +AWS,ap-southeast-1,m6idn.12xlarge,reserved_3y,partial_upfront,3.52497,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:37.823077 +AWS,ap-southeast-1,m6idn.12xlarge,spot,NA,1.4087,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920780 +AWS,ap-southeast-1,m6idn.16xlarge,on_demand,NA,6.25248,USD,AWS Pricing API,2025-11-30T08:59:52.294382 +AWS,ap-southeast-1,m6idn.16xlarge,reserved_1y,all_upfront,3.93906,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:23.323297 +AWS,ap-southeast-1,m6idn.16xlarge,reserved_1y,no_upfront,3.93906,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:04.951036 +AWS,ap-southeast-1,m6idn.16xlarge,reserved_1y,partial_upfront,3.93906,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:49.359038 +AWS,ap-southeast-1,m6idn.16xlarge,reserved_3y,all_upfront,3.93906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:25.701530 +AWS,ap-southeast-1,m6idn.16xlarge,reserved_3y,no_upfront,3.93906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:07.967062 +AWS,ap-southeast-1,m6idn.16xlarge,reserved_3y,partial_upfront,3.93906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:00.774015 +AWS,ap-southeast-1,m6idn.16xlarge,spot,NA,1.996755,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921383 +AWS,ap-southeast-1,m6idn.24xlarge,on_demand,NA,9.37872,USD,AWS Pricing API,2025-11-30T08:59:34.874689 +AWS,ap-southeast-1,m6idn.24xlarge,reserved_1y,all_upfront,3.69709,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:06.177585 +AWS,ap-southeast-1,m6idn.24xlarge,reserved_1y,no_upfront,3.69709,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:47.587408 +AWS,ap-southeast-1,m6idn.24xlarge,reserved_1y,partial_upfront,3.69709,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:32.080257 +AWS,ap-southeast-1,m6idn.24xlarge,reserved_3y,all_upfront,3.69709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:08.759960 +AWS,ap-southeast-1,m6idn.24xlarge,reserved_3y,no_upfront,3.69709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:50.448434 +AWS,ap-southeast-1,m6idn.24xlarge,reserved_3y,partial_upfront,3.69709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:43.671724 +AWS,ap-southeast-1,m6idn.24xlarge,spot,NA,3.856826,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920927 +AWS,ap-southeast-1,m6idn.2xlarge,on_demand,NA,0.78156,USD,AWS Pricing API,2025-11-30T08:59:15.029116 +AWS,ap-southeast-1,m6idn.2xlarge,reserved_1y,all_upfront,0.559555,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:46.493815 +AWS,ap-southeast-1,m6idn.2xlarge,reserved_1y,no_upfront,0.559555,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:27.760518 +AWS,ap-southeast-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.559555,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:12.614296 +AWS,ap-southeast-1,m6idn.2xlarge,reserved_3y,all_upfront,0.373025,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:49.583979 +AWS,ap-southeast-1,m6idn.2xlarge,reserved_3y,no_upfront,0.373025,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:30.468850 +AWS,ap-southeast-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.373025,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:24.250624 +AWS,ap-southeast-1,m6idn.2xlarge,spot,NA,0.301985,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920438 +AWS,ap-southeast-1,m6idn.32xlarge,on_demand,NA,12.50496,USD,AWS Pricing API,2025-11-30T08:59:35.690701 +AWS,ap-southeast-1,m6idn.32xlarge,reserved_1y,all_upfront,15.400685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:06.991803 +AWS,ap-southeast-1,m6idn.32xlarge,reserved_1y,no_upfront,15.400685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:48.414467 +AWS,ap-southeast-1,m6idn.32xlarge,reserved_1y,partial_upfront,15.400685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:32.882849 +AWS,ap-southeast-1,m6idn.32xlarge,reserved_3y,all_upfront,5.133562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:09.558128 +AWS,ap-southeast-1,m6idn.32xlarge,reserved_3y,no_upfront,5.133562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:51.273355 +AWS,ap-southeast-1,m6idn.32xlarge,reserved_3y,partial_upfront,5.133562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:44.470132 +AWS,ap-southeast-1,m6idn.32xlarge,spot,NA,4.873908,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920972 +AWS,ap-southeast-1,m6idn.4xlarge,on_demand,NA,1.56312,USD,AWS Pricing API,2025-11-30T08:59:31.822146 +AWS,ap-southeast-1,m6idn.4xlarge,reserved_1y,all_upfront,1.17499,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:03.191734 +AWS,ap-southeast-1,m6idn.4xlarge,reserved_1y,no_upfront,1.17499,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:44.547325 +AWS,ap-southeast-1,m6idn.4xlarge,reserved_1y,partial_upfront,1.17499,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:29.122337 +AWS,ap-southeast-1,m6idn.4xlarge,reserved_3y,all_upfront,1.17499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:05.839341 +AWS,ap-southeast-1,m6idn.4xlarge,reserved_3y,no_upfront,1.17499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:47.385872 +AWS,ap-southeast-1,m6idn.4xlarge,reserved_3y,partial_upfront,1.17499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:40.663189 +AWS,ap-southeast-1,m6idn.4xlarge,spot,NA,0.696063,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920878 +AWS,ap-southeast-1,m6idn.8xlarge,on_demand,NA,3.12624,USD,AWS Pricing API,2025-11-30T08:58:59.793757 +AWS,ap-southeast-1,m6idn.8xlarge,reserved_1y,all_upfront,2.619174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:31.208934 +AWS,ap-southeast-1,m6idn.8xlarge,reserved_1y,no_upfront,2.619174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:12.423530 +AWS,ap-southeast-1,m6idn.8xlarge,reserved_1y,partial_upfront,2.619174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:57.428977 +AWS,ap-southeast-1,m6idn.8xlarge,reserved_3y,all_upfront,1.309585,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:34.655036 +AWS,ap-southeast-1,m6idn.8xlarge,reserved_3y,no_upfront,1.309585,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:15.040775 +AWS,ap-southeast-1,m6idn.8xlarge,reserved_3y,partial_upfront,1.309585,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:09.193701 +AWS,ap-southeast-1,m6idn.8xlarge,spot,NA,0.969974,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920005 +AWS,ap-southeast-1,m6idn.large,on_demand,NA,0.19539,USD,AWS Pricing API,2025-11-30T08:59:46.210481 +AWS,ap-southeast-1,m6idn.large,reserved_1y,all_upfront,0.0884,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:17.401205 +AWS,ap-southeast-1,m6idn.large,reserved_1y,no_upfront,0.0884,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:58.910965 +AWS,ap-southeast-1,m6idn.large,reserved_1y,partial_upfront,0.0884,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:43.390783 +AWS,ap-southeast-1,m6idn.large,reserved_3y,all_upfront,0.0884,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:19.877211 +AWS,ap-southeast-1,m6idn.large,reserved_3y,no_upfront,0.0884,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:01.888029 +AWS,ap-southeast-1,m6idn.large,reserved_3y,partial_upfront,0.0884,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:54.842605 +AWS,ap-southeast-1,m6idn.large,spot,NA,0.068309,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921248 +AWS,ap-southeast-1,m6idn.xlarge,on_demand,NA,0.39078,USD,AWS Pricing API,2025-11-30T08:59:29.047242 +AWS,ap-southeast-1,m6idn.xlarge,reserved_1y,all_upfront,0.29375,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:00.354465 +AWS,ap-southeast-1,m6idn.xlarge,reserved_1y,no_upfront,0.29375,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:41.769648 +AWS,ap-southeast-1,m6idn.xlarge,reserved_1y,partial_upfront,0.29375,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:26.413151 +AWS,ap-southeast-1,m6idn.xlarge,reserved_3y,all_upfront,0.29375,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:03.153765 +AWS,ap-southeast-1,m6idn.xlarge,reserved_3y,no_upfront,0.29375,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:44.602842 +AWS,ap-southeast-1,m6idn.xlarge,reserved_3y,partial_upfront,0.29375,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:37.957414 +AWS,ap-southeast-1,m6idn.xlarge,spot,NA,0.14609,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920756 +AWS,ap-southeast-1,m6in.12xlarge,on_demand,NA,4.09968,USD,AWS Pricing API,2025-11-30T08:58:56.955284 +AWS,ap-southeast-1,m6in.12xlarge,reserved_1y,all_upfront,3.08214,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:28.375284 +AWS,ap-southeast-1,m6in.12xlarge,reserved_1y,no_upfront,3.08214,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:09.550805 +AWS,ap-southeast-1,m6in.12xlarge,reserved_1y,partial_upfront,3.08214,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:54.597810 +AWS,ap-southeast-1,m6in.12xlarge,reserved_3y,all_upfront,3.08214,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:31.867863 +AWS,ap-southeast-1,m6in.12xlarge,reserved_3y,no_upfront,3.08214,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:12.143516 +AWS,ap-southeast-1,m6in.12xlarge,reserved_3y,partial_upfront,3.08214,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:06.357885 +AWS,ap-southeast-1,m6in.12xlarge,spot,NA,1.435169,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919920 +AWS,ap-southeast-1,m6in.16xlarge,on_demand,NA,5.46624,USD,AWS Pricing API,2025-11-30T08:59:06.885397 +AWS,ap-southeast-1,m6in.16xlarge,reserved_1y,all_upfront,3.27971,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:38.347305 +AWS,ap-southeast-1,m6in.16xlarge,reserved_1y,no_upfront,3.27971,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:19.533204 +AWS,ap-southeast-1,m6in.16xlarge,reserved_1y,partial_upfront,3.27971,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:04.500016 +AWS,ap-southeast-1,m6in.16xlarge,reserved_3y,all_upfront,2.186483,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:41.602437 +AWS,ap-southeast-1,m6in.16xlarge,reserved_3y,no_upfront,2.186483,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:22.164519 +AWS,ap-southeast-1,m6in.16xlarge,reserved_3y,partial_upfront,2.186483,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:16.163090 +AWS,ap-southeast-1,m6in.16xlarge,spot,NA,1.878033,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920198 +AWS,ap-southeast-1,m6in.24xlarge,on_demand,NA,8.19936,USD,AWS Pricing API,2025-11-30T08:59:48.659975 +AWS,ap-southeast-1,m6in.24xlarge,reserved_1y,all_upfront,5.753311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:19.818219 +AWS,ap-southeast-1,m6in.24xlarge,reserved_1y,no_upfront,5.753311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:01.388841 +AWS,ap-southeast-1,m6in.24xlarge,reserved_1y,partial_upfront,5.753311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:45.824320 +AWS,ap-southeast-1,m6in.24xlarge,reserved_3y,all_upfront,1.91777,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:22.277803 +AWS,ap-southeast-1,m6in.24xlarge,reserved_3y,no_upfront,1.91777,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:04.401631 +AWS,ap-southeast-1,m6in.24xlarge,reserved_3y,partial_upfront,1.91777,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:57.291944 +AWS,ap-southeast-1,m6in.24xlarge,spot,NA,3.545795,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921289 +AWS,ap-southeast-1,m6in.2xlarge,on_demand,NA,0.68328,USD,AWS Pricing API,2025-11-30T08:59:13.661862 +AWS,ap-southeast-1,m6in.2xlarge,reserved_1y,all_upfront,0.26787,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:45.123103 +AWS,ap-southeast-1,m6in.2xlarge,reserved_1y,no_upfront,0.26787,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:26.392605 +AWS,ap-southeast-1,m6in.2xlarge,reserved_1y,partial_upfront,0.26787,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:11.259429 +AWS,ap-southeast-1,m6in.2xlarge,reserved_3y,all_upfront,0.26787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:48.252913 +AWS,ap-southeast-1,m6in.2xlarge,reserved_3y,no_upfront,0.26787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:29.080228 +AWS,ap-southeast-1,m6in.2xlarge,reserved_3y,partial_upfront,0.26787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:22.907455 +AWS,ap-southeast-1,m6in.2xlarge,spot,NA,0.317381,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920373 +AWS,ap-southeast-1,m6in.32xlarge,on_demand,NA,10.93248,USD,AWS Pricing API,2025-11-30T08:59:02.377982 +AWS,ap-southeast-1,m6in.32xlarge,reserved_1y,all_upfront,6.428311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:33.859282 +AWS,ap-southeast-1,m6in.32xlarge,reserved_1y,no_upfront,6.428311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:15.024130 +AWS,ap-southeast-1,m6in.32xlarge,reserved_1y,partial_upfront,6.428311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:00.008740 +AWS,ap-southeast-1,m6in.32xlarge,reserved_3y,all_upfront,2.14277,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:37.172000 +AWS,ap-southeast-1,m6in.32xlarge,reserved_3y,no_upfront,2.14277,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:17.649148 +AWS,ap-southeast-1,m6in.32xlarge,reserved_3y,partial_upfront,2.14277,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:11.734930 +AWS,ap-southeast-1,m6in.32xlarge,spot,NA,3.836574,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920082 +AWS,ap-southeast-1,m6in.4xlarge,on_demand,NA,1.36656,USD,AWS Pricing API,2025-11-30T08:59:12.424895 +AWS,ap-southeast-1,m6in.4xlarge,reserved_1y,all_upfront,0.819902,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:43.909809 +AWS,ap-southeast-1,m6in.4xlarge,reserved_1y,no_upfront,0.819902,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:25.163110 +AWS,ap-southeast-1,m6in.4xlarge,reserved_1y,partial_upfront,0.819902,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:10.039655 +AWS,ap-southeast-1,m6in.4xlarge,reserved_3y,all_upfront,0.546614,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:47.056515 +AWS,ap-southeast-1,m6in.4xlarge,reserved_3y,no_upfront,0.546614,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:27.840018 +AWS,ap-southeast-1,m6in.4xlarge,reserved_3y,partial_upfront,0.546614,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:21.689224 +AWS,ap-southeast-1,m6in.4xlarge,spot,NA,0.590197,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920331 +AWS,ap-southeast-1,m6in.8xlarge,on_demand,NA,2.73312,USD,AWS Pricing API,2025-11-30T08:59:10.530739 +AWS,ap-southeast-1,m6in.8xlarge,reserved_1y,all_upfront,1.607078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:42.016497 +AWS,ap-southeast-1,m6in.8xlarge,reserved_1y,no_upfront,1.607078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:23.251737 +AWS,ap-southeast-1,m6in.8xlarge,reserved_1y,partial_upfront,1.607078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:08.155057 +AWS,ap-southeast-1,m6in.8xlarge,reserved_3y,all_upfront,0.535693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:45.189794 +AWS,ap-southeast-1,m6in.8xlarge,reserved_3y,no_upfront,0.535693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:25.908146 +AWS,ap-southeast-1,m6in.8xlarge,reserved_3y,partial_upfront,0.535693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:19.814914 +AWS,ap-southeast-1,m6in.8xlarge,spot,NA,1.050644,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920298 +AWS,ap-southeast-1,m6in.large,on_demand,NA,0.17082,USD,AWS Pricing API,2025-11-30T08:59:30.317329 +AWS,ap-southeast-1,m6in.large,reserved_1y,all_upfront,0.100457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:01.683406 +AWS,ap-southeast-1,m6in.large,reserved_1y,no_upfront,0.100457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:43.026504 +AWS,ap-southeast-1,m6in.large,reserved_1y,partial_upfront,0.100457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:27.623722 +AWS,ap-southeast-1,m6in.large,reserved_3y,all_upfront,0.033486,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:04.364824 +AWS,ap-southeast-1,m6in.large,reserved_3y,no_upfront,0.033486,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:45.852187 +AWS,ap-southeast-1,m6in.large,reserved_3y,partial_upfront,0.033486,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:39.175563 +AWS,ap-southeast-1,m6in.large,spot,NA,0.065761,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920796 +AWS,ap-southeast-1,m6in.xlarge,on_demand,NA,0.34164,USD,AWS Pricing API,2025-11-30T08:59:44.567154 +AWS,ap-southeast-1,m6in.xlarge,reserved_1y,all_upfront,0.25684,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:15.774923 +AWS,ap-southeast-1,m6in.xlarge,reserved_1y,no_upfront,0.25684,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:57.276660 +AWS,ap-southeast-1,m6in.xlarge,reserved_1y,partial_upfront,0.25684,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:41.679071 +AWS,ap-southeast-1,m6in.xlarge,reserved_3y,all_upfront,0.25684,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:18.282671 +AWS,ap-southeast-1,m6in.xlarge,reserved_3y,no_upfront,0.25684,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:00.242439 +AWS,ap-southeast-1,m6in.xlarge,reserved_3y,partial_upfront,0.25684,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:53.213448 +AWS,ap-southeast-1,m6in.xlarge,spot,NA,0.134337,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921151 +AWS,ap-southeast-1,m7g.12xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T08:59:17.868491 +AWS,ap-southeast-1,m7g.12xlarge,reserved_1y,all_upfront,1.8229,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:49.324662 +AWS,ap-southeast-1,m7g.12xlarge,reserved_1y,no_upfront,1.8229,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:30.652443 +AWS,ap-southeast-1,m7g.12xlarge,reserved_1y,partial_upfront,1.8229,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:15.460991 +AWS,ap-southeast-1,m7g.12xlarge,reserved_3y,all_upfront,1.8229,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:52.380517 +AWS,ap-southeast-1,m7g.12xlarge,reserved_3y,no_upfront,1.8229,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:33.365126 +AWS,ap-southeast-1,m7g.12xlarge,reserved_3y,partial_upfront,1.8229,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:27.062544 +AWS,ap-southeast-1,m7g.12xlarge,spot,NA,0.93803,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920500 +AWS,ap-southeast-1,m7g.16xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T08:59:47.038957 +AWS,ap-southeast-1,m7g.16xlarge,reserved_1y,all_upfront,3.865868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:18.207045 +AWS,ap-southeast-1,m7g.16xlarge,reserved_1y,no_upfront,3.865868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:59.731877 +AWS,ap-southeast-1,m7g.16xlarge,reserved_1y,partial_upfront,3.865868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:44.207358 +AWS,ap-southeast-1,m7g.16xlarge,reserved_3y,all_upfront,1.288623,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:20.685838 +AWS,ap-southeast-1,m7g.16xlarge,reserved_3y,no_upfront,1.288623,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:02.745150 +AWS,ap-southeast-1,m7g.16xlarge,reserved_3y,partial_upfront,1.288623,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:55.660690 +AWS,ap-southeast-1,m7g.16xlarge,spot,NA,1.339365,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921227 +AWS,ap-southeast-1,m7g.2xlarge,on_demand,NA,0.408,USD,AWS Pricing API,2025-11-30T08:59:09.714779 +AWS,ap-southeast-1,m7g.2xlarge,reserved_1y,all_upfront,0.257039,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:41.203607 +AWS,ap-southeast-1,m7g.2xlarge,reserved_1y,no_upfront,0.257039,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:22.438812 +AWS,ap-southeast-1,m7g.2xlarge,reserved_1y,partial_upfront,0.257039,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:07.328887 +AWS,ap-southeast-1,m7g.2xlarge,reserved_3y,all_upfront,0.171346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:44.391342 +AWS,ap-southeast-1,m7g.2xlarge,reserved_3y,no_upfront,0.171346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:25.080129 +AWS,ap-southeast-1,m7g.2xlarge,reserved_3y,partial_upfront,0.171346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:19.008670 +AWS,ap-southeast-1,m7g.2xlarge,spot,NA,0.180998,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920258 +AWS,ap-southeast-1,m7g.4xlarge,on_demand,NA,0.816,USD,AWS Pricing API,2025-11-30T09:00:06.708472 +AWS,ap-southeast-1,m7g.4xlarge,reserved_1y,all_upfront,0.503767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:37.736126 +AWS,ap-southeast-1,m7g.4xlarge,reserved_1y,no_upfront,0.503767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:19.380123 +AWS,ap-southeast-1,m7g.4xlarge,reserved_1y,partial_upfront,0.503767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:03.671375 +AWS,ap-southeast-1,m7g.4xlarge,reserved_3y,all_upfront,0.167922,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:39.737917 +AWS,ap-southeast-1,m7g.4xlarge,reserved_3y,no_upfront,0.167922,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:22.587813 +AWS,ap-southeast-1,m7g.4xlarge,reserved_3y,partial_upfront,0.167922,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:15.040444 +AWS,ap-southeast-1,m7g.4xlarge,spot,NA,0.346833,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921723 +AWS,ap-southeast-1,m7g.8xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T08:59:00.874730 +AWS,ap-southeast-1,m7g.8xlarge,reserved_1y,all_upfront,1.2153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:32.289040 +AWS,ap-southeast-1,m7g.8xlarge,reserved_1y,no_upfront,1.2153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:13.521607 +AWS,ap-southeast-1,m7g.8xlarge,reserved_1y,partial_upfront,1.2153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:58.517495 +AWS,ap-southeast-1,m7g.8xlarge,reserved_3y,all_upfront,1.2153,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:35.717349 +AWS,ap-southeast-1,m7g.8xlarge,reserved_3y,no_upfront,1.2153,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:16.140777 +AWS,ap-southeast-1,m7g.8xlarge,reserved_3y,partial_upfront,1.2153,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:10.264238 +AWS,ap-southeast-1,m7g.8xlarge,spot,NA,0.702204,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920060 +AWS,ap-southeast-1,m7g.large,on_demand,NA,0.102,USD,AWS Pricing API,2025-11-30T08:59:28.637190 +AWS,ap-southeast-1,m7g.large,reserved_1y,all_upfront,0.085669,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:59.946838 +AWS,ap-southeast-1,m7g.large,reserved_1y,no_upfront,0.085669,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:41.353191 +AWS,ap-southeast-1,m7g.large,reserved_1y,partial_upfront,0.085669,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:26.007947 +AWS,ap-southeast-1,m7g.large,reserved_3y,all_upfront,0.042823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:02.752411 +AWS,ap-southeast-1,m7g.large,reserved_3y,no_upfront,0.042823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:44.190892 +AWS,ap-southeast-1,m7g.large,reserved_3y,partial_upfront,0.042823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:37.552676 +AWS,ap-southeast-1,m7g.large,spot,NA,0.047666,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920760 +AWS,ap-southeast-1,m7g.xlarge,on_demand,NA,0.204,USD,AWS Pricing API,2025-11-30T08:59:35.551143 +AWS,ap-southeast-1,m7g.xlarge,reserved_1y,all_upfront,0.125913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:06.856831 +AWS,ap-southeast-1,m7g.xlarge,reserved_1y,no_upfront,0.125913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:48.276215 +AWS,ap-southeast-1,m7g.xlarge,reserved_1y,partial_upfront,0.125913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:32.748840 +AWS,ap-southeast-1,m7g.xlarge,reserved_3y,all_upfront,0.041971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:09.422161 +AWS,ap-southeast-1,m7g.xlarge,reserved_3y,no_upfront,0.041971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:51.137413 +AWS,ap-southeast-1,m7g.xlarge,reserved_3y,partial_upfront,0.041971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:44.337442 +AWS,ap-southeast-1,m7g.xlarge,spot,NA,0.084784,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920960 +AWS,ap-southeast-1,m7gd.12xlarge,on_demand,NA,3.1979,USD,AWS Pricing API,2025-11-30T08:59:09.037482 +AWS,ap-southeast-1,m7gd.12xlarge,reserved_1y,all_upfront,1.880365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:40.524520 +AWS,ap-southeast-1,m7gd.12xlarge,reserved_1y,no_upfront,1.880365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:21.707499 +AWS,ap-southeast-1,m7gd.12xlarge,reserved_1y,partial_upfront,1.880365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:06.653087 +AWS,ap-southeast-1,m7gd.12xlarge,reserved_3y,all_upfront,0.626788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:43.733022 +AWS,ap-southeast-1,m7gd.12xlarge,reserved_3y,no_upfront,0.626788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:24.386336 +AWS,ap-southeast-1,m7gd.12xlarge,reserved_3y,partial_upfront,0.626788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:18.336183 +AWS,ap-southeast-1,m7gd.12xlarge,spot,NA,1.193829,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920254 +AWS,ap-southeast-1,m7gd.16xlarge,on_demand,NA,4.2638,USD,AWS Pricing API,2025-11-30T08:59:26.322022 +AWS,ap-southeast-1,m7gd.16xlarge,reserved_1y,all_upfront,2.6862,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:57.651832 +AWS,ap-southeast-1,m7gd.16xlarge,reserved_1y,no_upfront,2.6862,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:38.991995 +AWS,ap-southeast-1,m7gd.16xlarge,reserved_1y,partial_upfront,2.6862,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:23.710838 +AWS,ap-southeast-1,m7gd.16xlarge,reserved_3y,all_upfront,2.6862,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:00.472403 +AWS,ap-southeast-1,m7gd.16xlarge,reserved_3y,no_upfront,2.6862,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:41.838741 +AWS,ap-southeast-1,m7gd.16xlarge,reserved_3y,partial_upfront,2.6862,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:35.272957 +AWS,ap-southeast-1,m7gd.16xlarge,spot,NA,1.647625,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920698 +AWS,ap-southeast-1,m7gd.2xlarge,on_demand,NA,0.533,USD,AWS Pricing API,2025-11-30T08:59:42.099221 +AWS,ap-southeast-1,m7gd.2xlarge,reserved_1y,all_upfront,0.319832,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:13.352573 +AWS,ap-southeast-1,m7gd.2xlarge,reserved_1y,no_upfront,0.319832,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:54.832591 +AWS,ap-southeast-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.319832,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:39.234409 +AWS,ap-southeast-1,m7gd.2xlarge,reserved_3y,all_upfront,0.213211,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:15.895833 +AWS,ap-southeast-1,m7gd.2xlarge,reserved_3y,no_upfront,0.213211,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:57.749881 +AWS,ap-southeast-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.213211,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:50.796841 +AWS,ap-southeast-1,m7gd.2xlarge,spot,NA,0.243455,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921131 +AWS,ap-southeast-1,m7gd.4xlarge,on_demand,NA,1.066,USD,AWS Pricing API,2025-11-30T08:59:59.736031 +AWS,ap-southeast-1,m7gd.4xlarge,reserved_1y,all_upfront,0.7923,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:30.800359 +AWS,ap-southeast-1,m7gd.4xlarge,reserved_1y,no_upfront,0.7923,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:12.443500 +AWS,ap-southeast-1,m7gd.4xlarge,reserved_1y,partial_upfront,0.7923,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:56.759713 +AWS,ap-southeast-1,m7gd.4xlarge,reserved_3y,all_upfront,0.7923,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:32.994916 +AWS,ap-southeast-1,m7gd.4xlarge,reserved_3y,no_upfront,0.7923,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:15.515727 +AWS,ap-southeast-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.7923,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:08.187721 +AWS,ap-southeast-1,m7gd.4xlarge,spot,NA,0.437346,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921559 +AWS,ap-southeast-1,m7gd.8xlarge,on_demand,NA,2.1319,USD,AWS Pricing API,2025-11-30T08:59:39.786911 +AWS,ap-southeast-1,m7gd.8xlarge,reserved_1y,all_upfront,1.509166,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:11.044378 +AWS,ap-southeast-1,m7gd.8xlarge,reserved_1y,no_upfront,1.509166,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:52.532089 +AWS,ap-southeast-1,m7gd.8xlarge,reserved_1y,partial_upfront,1.509166,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:36.933028 +AWS,ap-southeast-1,m7gd.8xlarge,reserved_3y,all_upfront,1.006122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:13.549711 +AWS,ap-southeast-1,m7gd.8xlarge,reserved_3y,no_upfront,1.006122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:55.410031 +AWS,ap-southeast-1,m7gd.8xlarge,reserved_3y,partial_upfront,1.006122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:48.513333 +AWS,ap-southeast-1,m7gd.8xlarge,spot,NA,0.807602,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921072 +AWS,ap-southeast-1,m7gd.large,on_demand,NA,0.1332,USD,AWS Pricing API,2025-11-30T08:59:37.610365 +AWS,ap-southeast-1,m7gd.large,reserved_1y,all_upfront,0.092466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:08.883188 +AWS,ap-southeast-1,m7gd.large,reserved_1y,no_upfront,0.092466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:50.335632 +AWS,ap-southeast-1,m7gd.large,reserved_1y,partial_upfront,0.092466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:34.782858 +AWS,ap-southeast-1,m7gd.large,reserved_3y,all_upfront,0.030822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:11.419091 +AWS,ap-southeast-1,m7gd.large,reserved_3y,no_upfront,0.030822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:53.207566 +AWS,ap-southeast-1,m7gd.large,reserved_3y,partial_upfront,0.030822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:46.372849 +AWS,ap-southeast-1,m7gd.large,spot,NA,0.054514,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921005 +AWS,ap-southeast-1,m7gd.xlarge,on_demand,NA,0.2665,USD,AWS Pricing API,2025-11-30T08:59:43.739058 +AWS,ap-southeast-1,m7gd.xlarge,reserved_1y,all_upfront,0.159809,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:14.964895 +AWS,ap-southeast-1,m7gd.xlarge,reserved_1y,no_upfront,0.159809,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:56.462984 +AWS,ap-southeast-1,m7gd.xlarge,reserved_1y,partial_upfront,0.159809,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:40.864342 +AWS,ap-southeast-1,m7gd.xlarge,reserved_3y,all_upfront,0.106536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:17.479344 +AWS,ap-southeast-1,m7gd.xlarge,reserved_3y,no_upfront,0.106536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:59.400252 +AWS,ap-southeast-1,m7gd.xlarge,reserved_3y,partial_upfront,0.106536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:52.399776 +AWS,ap-southeast-1,m7gd.xlarge,spot,NA,0.116574,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921159 +AWS,ap-southeast-1,m7i.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:59:15.166675 +AWS,ap-southeast-1,m7i.12xlarge,reserved_1y,all_upfront,2.25176,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:46.630956 +AWS,ap-southeast-1,m7i.12xlarge,reserved_1y,no_upfront,2.25176,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:27.898814 +AWS,ap-southeast-1,m7i.12xlarge,reserved_1y,partial_upfront,2.25176,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:12.755075 +AWS,ap-southeast-1,m7i.12xlarge,reserved_3y,all_upfront,2.25176,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:49.716486 +AWS,ap-southeast-1,m7i.12xlarge,reserved_3y,no_upfront,2.25176,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:30.606844 +AWS,ap-southeast-1,m7i.12xlarge,reserved_3y,partial_upfront,2.25176,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:24.384459 +AWS,ap-southeast-1,m7i.12xlarge,spot,NA,1.174313,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920409 +AWS,ap-southeast-1,m7i.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:59:52.568360 +AWS,ap-southeast-1,m7i.16xlarge,reserved_1y,all_upfront,3.00234,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:23.600884 +AWS,ap-southeast-1,m7i.16xlarge,reserved_1y,no_upfront,3.00234,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:05.222810 +AWS,ap-southeast-1,m7i.16xlarge,reserved_1y,partial_upfront,3.00234,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:49.629920 +AWS,ap-southeast-1,m7i.16xlarge,reserved_3y,all_upfront,3.00234,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:25.966817 +AWS,ap-southeast-1,m7i.16xlarge,reserved_3y,no_upfront,3.00234,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:08.241385 +AWS,ap-southeast-1,m7i.16xlarge,reserved_3y,partial_upfront,3.00234,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:01.051989 +AWS,ap-southeast-1,m7i.16xlarge,spot,NA,1.537316,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921379 +AWS,ap-southeast-1,m7i.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:59:58.621210 +AWS,ap-southeast-1,m7i.24xlarge,reserved_1y,all_upfront,3.734018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:29.722357 +AWS,ap-southeast-1,m7i.24xlarge,reserved_1y,no_upfront,3.734018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:11.352566 +AWS,ap-southeast-1,m7i.24xlarge,reserved_1y,partial_upfront,3.734018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:55.684381 +AWS,ap-southeast-1,m7i.24xlarge,reserved_3y,all_upfront,1.244673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:31.939986 +AWS,ap-southeast-1,m7i.24xlarge,reserved_3y,no_upfront,1.244673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:14.416347 +AWS,ap-southeast-1,m7i.24xlarge,reserved_3y,partial_upfront,1.244673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:07.107930 +AWS,ap-southeast-1,m7i.24xlarge,spot,NA,2.143586,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921536 +AWS,ap-southeast-1,m7i.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T08:59:33.720438 +AWS,ap-southeast-1,m7i.2xlarge,reserved_1y,all_upfront,0.423306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:05.096566 +AWS,ap-southeast-1,m7i.2xlarge,reserved_1y,no_upfront,0.423306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:46.485748 +AWS,ap-southeast-1,m7i.2xlarge,reserved_1y,partial_upfront,0.423306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:31.012225 +AWS,ap-southeast-1,m7i.2xlarge,reserved_3y,all_upfront,0.211662,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:07.696245 +AWS,ap-southeast-1,m7i.2xlarge,reserved_3y,no_upfront,0.211662,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:49.339524 +AWS,ap-southeast-1,m7i.2xlarge,reserved_3y,partial_upfront,0.211662,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:42.590213 +AWS,ap-southeast-1,m7i.2xlarge,spot,NA,0.238557,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920915 +AWS,ap-southeast-1,m7i.48xlarge,on_demand,NA,12.096,USD,AWS Pricing API,2025-11-30T08:58:56.540355 +AWS,ap-southeast-1,m7i.48xlarge,reserved_1y,all_upfront,7.468037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:27.971774 +AWS,ap-southeast-1,m7i.48xlarge,reserved_1y,no_upfront,7.468037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:09.143693 +AWS,ap-southeast-1,m7i.48xlarge,reserved_1y,partial_upfront,7.468037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:54.195953 +AWS,ap-southeast-1,m7i.48xlarge,reserved_3y,all_upfront,2.489346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:31.465605 +AWS,ap-southeast-1,m7i.48xlarge,reserved_3y,no_upfront,2.489346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:11.714861 +AWS,ap-southeast-1,m7i.48xlarge,reserved_3y,partial_upfront,2.489346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:05.956166 +AWS,ap-southeast-1,m7i.48xlarge,spot,NA,4.0621,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919889 +AWS,ap-southeast-1,m7i.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:59:10.397130 +AWS,ap-southeast-1,m7i.4xlarge,reserved_1y,all_upfront,0.75059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:41.878962 +AWS,ap-southeast-1,m7i.4xlarge,reserved_1y,no_upfront,0.75059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:23.117699 +AWS,ap-southeast-1,m7i.4xlarge,reserved_1y,partial_upfront,0.75059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:08.019503 +AWS,ap-southeast-1,m7i.4xlarge,reserved_3y,all_upfront,0.75059,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:45.060144 +AWS,ap-southeast-1,m7i.4xlarge,reserved_3y,no_upfront,0.75059,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:25.769185 +AWS,ap-southeast-1,m7i.4xlarge,reserved_3y,partial_upfront,0.75059,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:19.682487 +AWS,ap-southeast-1,m7i.4xlarge,spot,NA,0.49682,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920315 +AWS,ap-southeast-1,m7i.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:59:48.255327 +AWS,ap-southeast-1,m7i.8xlarge,reserved_1y,all_upfront,1.893317,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:19.417982 +AWS,ap-southeast-1,m7i.8xlarge,reserved_1y,no_upfront,1.893317,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:00.976092 +AWS,ap-southeast-1,m7i.8xlarge,reserved_1y,partial_upfront,1.893317,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:45.422433 +AWS,ap-southeast-1,m7i.8xlarge,reserved_3y,all_upfront,0.946666,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:21.880746 +AWS,ap-southeast-1,m7i.8xlarge,reserved_3y,no_upfront,0.946666,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:03.982606 +AWS,ap-southeast-1,m7i.8xlarge,reserved_3y,partial_upfront,0.946666,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:56.885979 +AWS,ap-southeast-1,m7i.8xlarge,spot,NA,0.853627,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921264 +AWS,ap-southeast-1,m7i.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:59:13.380603 +AWS,ap-southeast-1,m7i.large,reserved_1y,all_upfront,0.089315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:44.855589 +AWS,ap-southeast-1,m7i.large,reserved_1y,no_upfront,0.089315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:26.118372 +AWS,ap-southeast-1,m7i.large,reserved_1y,partial_upfront,0.089315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:10.982687 +AWS,ap-southeast-1,m7i.large,reserved_3y,all_upfront,0.059558,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:47.989041 +AWS,ap-southeast-1,m7i.large,reserved_3y,no_upfront,0.059558,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:28.801719 +AWS,ap-southeast-1,m7i.large,reserved_3y,partial_upfront,0.059558,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:22.640683 +AWS,ap-southeast-1,m7i.large,spot,NA,0.058482,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920357 +AWS,ap-southeast-1,m7i.metal-24xl,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:58:56.675718 +AWS,ap-southeast-1,m7i.metal-24xl,reserved_1y,all_upfront,4.203311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:28.106446 +AWS,ap-southeast-1,m7i.metal-24xl,reserved_1y,no_upfront,4.203311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:09.279446 +AWS,ap-southeast-1,m7i.metal-24xl,reserved_1y,partial_upfront,4.203311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:54.331566 +AWS,ap-southeast-1,m7i.metal-24xl,reserved_3y,all_upfront,1.401104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:31.595616 +AWS,ap-southeast-1,m7i.metal-24xl,reserved_3y,no_upfront,1.401104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:11.865699 +AWS,ap-southeast-1,m7i.metal-24xl,reserved_3y,partial_upfront,1.401104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:06.089364 +AWS,ap-southeast-1,m7i.metal-24xl,spot,NA,2.157277,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919894 +AWS,ap-southeast-1,m7i.metal-48xl,on_demand,NA,12.096,USD,AWS Pricing API,2025-11-30T08:59:38.018184 +AWS,ap-southeast-1,m7i.metal-48xl,reserved_1y,all_upfront,8.578101,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:09.288698 +AWS,ap-southeast-1,m7i.metal-48xl,reserved_1y,no_upfront,8.578101,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:50.746432 +AWS,ap-southeast-1,m7i.metal-48xl,reserved_1y,partial_upfront,8.578101,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:35.186172 +AWS,ap-southeast-1,m7i.metal-48xl,reserved_3y,all_upfront,5.71874,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:11.821171 +AWS,ap-southeast-1,m7i.metal-48xl,reserved_3y,no_upfront,5.71874,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:53.616679 +AWS,ap-southeast-1,m7i.metal-48xl,reserved_3y,partial_upfront,5.71874,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:46.776827 +AWS,ap-southeast-1,m7i.metal-48xl,spot,NA,4.211481,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921017 +AWS,ap-southeast-1,m7i.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T09:00:00.144688 +AWS,ap-southeast-1,m7i.xlarge,reserved_1y,all_upfront,0.155594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:31.202178 +AWS,ap-southeast-1,m7i.xlarge,reserved_1y,no_upfront,0.155594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:12.858892 +AWS,ap-southeast-1,m7i.xlarge,reserved_1y,partial_upfront,0.155594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:57.164050 +AWS,ap-southeast-1,m7i.xlarge,reserved_3y,all_upfront,0.051865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:33.389026 +AWS,ap-southeast-1,m7i.xlarge,reserved_3y,no_upfront,0.051865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:15.934853 +AWS,ap-southeast-1,m7i.xlarge,reserved_3y,partial_upfront,0.051865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:08.591656 +AWS,ap-southeast-1,m7i.xlarge,spot,NA,0.121636,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921555 +AWS,ap-southeast-1,m8g.12xlarge,on_demand,NA,2.6928,USD,AWS Pricing API,2025-11-30T08:59:44.161222 +AWS,ap-southeast-1,m8g.12xlarge,reserved_1y,all_upfront,1.36541,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:15.369006 +AWS,ap-southeast-1,m8g.12xlarge,reserved_1y,no_upfront,1.36541,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:56.870678 +AWS,ap-southeast-1,m8g.12xlarge,reserved_1y,partial_upfront,1.36541,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:41.270216 +AWS,ap-southeast-1,m8g.12xlarge,reserved_3y,all_upfront,1.36541,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:17.877380 +AWS,ap-southeast-1,m8g.12xlarge,reserved_3y,no_upfront,1.36541,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:59.819821 +AWS,ap-southeast-1,m8g.12xlarge,reserved_3y,partial_upfront,1.36541,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:52.807405 +AWS,ap-southeast-1,m8g.12xlarge,spot,NA,1.010979,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921166 +AWS,ap-southeast-1,m8g.16xlarge,on_demand,NA,3.5904,USD,AWS Pricing API,2025-11-30T08:58:57.091003 +AWS,ap-southeast-1,m8g.16xlarge,reserved_1y,all_upfront,3.015966,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:28.510365 +AWS,ap-southeast-1,m8g.16xlarge,reserved_1y,no_upfront,3.015966,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:09.688479 +AWS,ap-southeast-1,m8g.16xlarge,reserved_1y,partial_upfront,3.015966,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:54.730748 +AWS,ap-southeast-1,m8g.16xlarge,reserved_3y,all_upfront,1.507975,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:32.002320 +AWS,ap-southeast-1,m8g.16xlarge,reserved_3y,no_upfront,1.507975,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:12.284999 +AWS,ap-southeast-1,m8g.16xlarge,reserved_3y,partial_upfront,1.507975,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:06.497272 +AWS,ap-southeast-1,m8g.16xlarge,spot,NA,1.411695,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919939 +AWS,ap-southeast-1,m8g.24xlarge,on_demand,NA,5.3856,USD,AWS Pricing API,2025-11-30T09:00:05.486779 +AWS,ap-southeast-1,m8g.24xlarge,reserved_1y,all_upfront,3.392921,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:36.517068 +AWS,ap-southeast-1,m8g.24xlarge,reserved_1y,no_upfront,3.392921,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:18.161341 +AWS,ap-southeast-1,m8g.24xlarge,reserved_1y,partial_upfront,3.392921,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:02.446468 +AWS,ap-southeast-1,m8g.24xlarge,reserved_3y,all_upfront,2.261947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:38.549578 +AWS,ap-southeast-1,m8g.24xlarge,reserved_3y,no_upfront,2.261947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:21.344398 +AWS,ap-southeast-1,m8g.24xlarge,reserved_3y,partial_upfront,2.261947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:13.837159 +AWS,ap-southeast-1,m8g.24xlarge,spot,NA,1.843222,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921675 +AWS,ap-southeast-1,m8g.2xlarge,on_demand,NA,0.4488,USD,AWS Pricing API,2025-11-30T08:59:57.001199 +AWS,ap-southeast-1,m8g.2xlarge,reserved_1y,all_upfront,0.377013,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:28.083689 +AWS,ap-southeast-1,m8g.2xlarge,reserved_1y,no_upfront,0.377013,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:09.717582 +AWS,ap-southeast-1,m8g.2xlarge,reserved_1y,partial_upfront,0.377013,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:54.074095 +AWS,ap-southeast-1,m8g.2xlarge,reserved_3y,all_upfront,0.188504,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:30.344082 +AWS,ap-southeast-1,m8g.2xlarge,reserved_3y,no_upfront,0.188504,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:12.766982 +AWS,ap-southeast-1,m8g.2xlarge,reserved_3y,partial_upfront,0.188504,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:05.490242 +AWS,ap-southeast-1,m8g.2xlarge,spot,NA,0.224427,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921477 +AWS,ap-southeast-1,m8g.48xlarge,on_demand,NA,10.7712,USD,AWS Pricing API,2025-11-30T08:59:29.886702 +AWS,ap-southeast-1,m8g.48xlarge,reserved_1y,all_upfront,6.650114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:01.170386 +AWS,ap-southeast-1,m8g.48xlarge,reserved_1y,no_upfront,6.650114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:42.610153 +AWS,ap-southeast-1,m8g.48xlarge,reserved_1y,partial_upfront,6.650114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:27.221018 +AWS,ap-southeast-1,m8g.48xlarge,reserved_3y,all_upfront,2.216705,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:03.964195 +AWS,ap-southeast-1,m8g.48xlarge,reserved_3y,no_upfront,2.216705,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:45.439312 +AWS,ap-southeast-1,m8g.48xlarge,reserved_3y,partial_upfront,2.216705,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:38.766302 +AWS,ap-southeast-1,m8g.48xlarge,spot,NA,3.639296,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920821 +AWS,ap-southeast-1,m8g.4xlarge,on_demand,NA,0.8976,USD,AWS Pricing API,2025-11-30T08:59:46.901567 +AWS,ap-southeast-1,m8g.4xlarge,reserved_1y,all_upfront,0.59376,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:18.073432 +AWS,ap-southeast-1,m8g.4xlarge,reserved_1y,no_upfront,0.59376,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:59.595009 +AWS,ap-southeast-1,m8g.4xlarge,reserved_1y,partial_upfront,0.59376,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:44.072571 +AWS,ap-southeast-1,m8g.4xlarge,reserved_3y,all_upfront,0.59376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:20.553222 +AWS,ap-southeast-1,m8g.4xlarge,reserved_3y,no_upfront,0.59376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:02.607312 +AWS,ap-southeast-1,m8g.4xlarge,reserved_3y,partial_upfront,0.59376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:55.513378 +AWS,ap-southeast-1,m8g.4xlarge,spot,NA,0.357782,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921235 +AWS,ap-southeast-1,m8g.8xlarge,on_demand,NA,1.7952,USD,AWS Pricing API,2025-11-30T08:59:18.138587 +AWS,ap-southeast-1,m8g.8xlarge,reserved_1y,all_upfront,0.8143,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:49.600892 +AWS,ap-southeast-1,m8g.8xlarge,reserved_1y,no_upfront,0.8143,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:30.926337 +AWS,ap-southeast-1,m8g.8xlarge,reserved_1y,partial_upfront,0.8143,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:15.728947 +AWS,ap-southeast-1,m8g.8xlarge,reserved_3y,all_upfront,0.8143,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:52.643795 +AWS,ap-southeast-1,m8g.8xlarge,reserved_3y,no_upfront,0.8143,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:33.639184 +AWS,ap-southeast-1,m8g.8xlarge,reserved_3y,partial_upfront,0.8143,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:27.332263 +AWS,ap-southeast-1,m8g.8xlarge,spot,NA,0.780874,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920504 +AWS,ap-southeast-1,m8g.large,on_demand,NA,0.1122,USD,AWS Pricing API,2025-11-30T09:00:07.512681 +AWS,ap-southeast-1,m8g.large,reserved_1y,all_upfront,0.070728,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:38.549709 +AWS,ap-southeast-1,m8g.large,reserved_1y,no_upfront,0.070728,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:20.196841 +AWS,ap-southeast-1,m8g.large,reserved_1y,partial_upfront,0.070728,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:04.490564 +AWS,ap-southeast-1,m8g.large,reserved_3y,all_upfront,0.047136,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:40.534769 +AWS,ap-southeast-1,m8g.large,reserved_3y,no_upfront,0.047136,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:23.407538 +AWS,ap-southeast-1,m8g.large,reserved_3y,partial_upfront,0.047136,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:15.864444 +AWS,ap-southeast-1,m8g.large,spot,NA,0.050563,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921716 +AWS,ap-southeast-1,m8g.medium,on_demand,NA,0.0561,USD,AWS Pricing API,2025-11-30T09:00:09.422333 +AWS,ap-southeast-1,m8g.medium,reserved_1y,all_upfront,0.077397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:40.430440 +AWS,ap-southeast-1,m8g.medium,reserved_1y,no_upfront,0.077397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:22.129500 +AWS,ap-southeast-1,m8g.medium,reserved_1y,partial_upfront,0.077397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:06.370358 +AWS,ap-southeast-1,m8g.medium,reserved_3y,all_upfront,0.025799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:42.386042 +AWS,ap-southeast-1,m8g.medium,reserved_3y,no_upfront,0.025799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:25.335241 +AWS,ap-southeast-1,m8g.medium,reserved_3y,partial_upfront,0.025799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:17.752180 +AWS,ap-southeast-1,m8g.medium,spot,NA,0.024358,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921795 +AWS,ap-southeast-1,m8g.xlarge,on_demand,NA,0.2244,USD,AWS Pricing API,2025-11-30T08:59:27.552542 +AWS,ap-southeast-1,m8g.xlarge,reserved_1y,all_upfront,0.155936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:58.869520 +AWS,ap-southeast-1,m8g.xlarge,reserved_1y,no_upfront,0.155936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:40.234444 +AWS,ap-southeast-1,m8g.xlarge,reserved_1y,partial_upfront,0.155936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:24.918781 +AWS,ap-southeast-1,m8g.xlarge,reserved_3y,all_upfront,0.051979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:01.679941 +AWS,ap-southeast-1,m8g.xlarge,reserved_3y,no_upfront,0.051979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:43.076162 +AWS,ap-southeast-1,m8g.xlarge,reserved_3y,partial_upfront,0.051979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:36.480121 +AWS,ap-southeast-1,m8g.xlarge,spot,NA,0.105395,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920740 +AWS,ap-southeast-1,p2.16xlarge,on_demand,NA,27.488,USD,AWS Pricing API,2025-11-30T08:59:03.765915 +AWS,ap-southeast-1,p2.8xlarge,on_demand,NA,13.744,USD,AWS Pricing API,2025-11-30T09:00:03.033979 +AWS,ap-southeast-1,p2.xlarge,on_demand,NA,1.718,USD,AWS Pricing API,2025-11-30T08:59:07.293777 +AWS,ap-southeast-1,p3.16xlarge,on_demand,NA,33.872,USD,AWS Pricing API,2025-11-30T08:59:22.597815 +AWS,ap-southeast-1,p3.16xlarge,spot,NA,17.27647,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920617 +AWS,ap-southeast-1,p3.2xlarge,on_demand,NA,4.234,USD,AWS Pricing API,2025-11-30T08:59:53.635739 +AWS,ap-southeast-1,p3.2xlarge,spot,NA,1.268803,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921395 +AWS,ap-southeast-1,p3.8xlarge,on_demand,NA,16.936,USD,AWS Pricing API,2025-11-30T08:59:03.336756 +AWS,ap-southeast-1,p3.8xlarge,spot,NA,5.402311,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920095 +AWS,ap-southeast-1,p4d.24xlarge,on_demand,NA,26.34917,USD,AWS Pricing API,2025-11-30T08:59:03.487826 +AWS,ap-southeast-1,p4d.24xlarge,reserved_1y,all_upfront,20.046374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:34.941599 +AWS,ap-southeast-1,p4d.24xlarge,reserved_1y,no_upfront,20.046374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:16.116935 +AWS,ap-southeast-1,p4d.24xlarge,reserved_1y,partial_upfront,20.046374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:01.082866 +AWS,ap-southeast-1,p4d.24xlarge,reserved_3y,all_upfront,20.046374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:38.283461 +AWS,ap-southeast-1,p4d.24xlarge,reserved_3y,no_upfront,20.046374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:18.743540 +AWS,ap-southeast-1,p4d.24xlarge,reserved_3y,partial_upfront,20.046374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:12.803545 +AWS,ap-southeast-1,p4de.24xlarge,on_demand,NA,32.93646,USD,AWS Pricing API,2025-11-30T08:59:27.281721 +AWS,ap-southeast-1,p4de.24xlarge,reserved_1y,all_upfront,19.887245,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:58.600245 +AWS,ap-southeast-1,p4de.24xlarge,reserved_1y,no_upfront,19.887245,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:39.962835 +AWS,ap-southeast-1,p4de.24xlarge,reserved_1y,partial_upfront,19.887245,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:24.650439 +AWS,ap-southeast-1,p4de.24xlarge,reserved_3y,all_upfront,13.258173,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:01.413029 +AWS,ap-southeast-1,p4de.24xlarge,reserved_3y,no_upfront,13.258173,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:42.799769 +AWS,ap-southeast-1,p4de.24xlarge,reserved_3y,partial_upfront,13.258173,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:36.211505 +AWS,ap-southeast-1,p4de.24xlarge,spot,NA,24.690709,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920748 +AWS,ap-southeast-1,r4.16xlarge,on_demand,NA,5.12,USD,AWS Pricing API,2025-11-30T08:59:56.050910 +AWS,ap-southeast-1,r4.16xlarge,reserved_1y,all_upfront,3.2256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:27.147132 +AWS,ap-southeast-1,r4.16xlarge,reserved_1y,no_upfront,3.2256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:08.753303 +AWS,ap-southeast-1,r4.16xlarge,reserved_1y,partial_upfront,3.2256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:53.126217 +AWS,ap-southeast-1,r4.16xlarge,reserved_3y,all_upfront,3.2256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:29.410205 +AWS,ap-southeast-1,r4.16xlarge,reserved_3y,no_upfront,3.2256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:11.805300 +AWS,ap-southeast-1,r4.16xlarge,reserved_3y,partial_upfront,3.2256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:04.550189 +AWS,ap-southeast-1,r4.16xlarge,spot,NA,1.993969,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921446 +AWS,ap-southeast-1,r5.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T08:58:56.817279 +AWS,ap-southeast-1,r5.12xlarge,reserved_1y,all_upfront,1.903,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:28.239752 +AWS,ap-southeast-1,r5.12xlarge,reserved_1y,no_upfront,1.903,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:09.415041 +AWS,ap-southeast-1,r5.12xlarge,reserved_1y,partial_upfront,1.903,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:54.464814 +AWS,ap-southeast-1,r5.12xlarge,reserved_3y,all_upfront,1.903,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:31.736323 +AWS,ap-southeast-1,r5.12xlarge,reserved_3y,no_upfront,1.903,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:12.005771 +AWS,ap-southeast-1,r5.12xlarge,reserved_3y,partial_upfront,1.903,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:06.223057 +AWS,ap-southeast-1,r5.12xlarge,spot,NA,1.435115,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919930 +AWS,ap-southeast-1,r5.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T08:59:30.032801 +AWS,ap-southeast-1,r5.16xlarge,reserved_1y,all_upfront,3.289041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:01.319371 +AWS,ap-southeast-1,r5.16xlarge,reserved_1y,no_upfront,3.289041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:42.756175 +AWS,ap-southeast-1,r5.16xlarge,reserved_1y,partial_upfront,3.289041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:27.355662 +AWS,ap-southeast-1,r5.16xlarge,reserved_3y,all_upfront,1.096347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:04.095151 +AWS,ap-southeast-1,r5.16xlarge,reserved_3y,no_upfront,1.096347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:45.581829 +AWS,ap-southeast-1,r5.16xlarge,reserved_3y,partial_upfront,1.096347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:38.906881 +AWS,ap-southeast-1,r5.16xlarge,spot,NA,1.627155,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920827 +AWS,ap-southeast-1,r5.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T08:59:12.164154 +AWS,ap-southeast-1,r5.24xlarge,reserved_1y,all_upfront,4.596,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:43.636051 +AWS,ap-southeast-1,r5.24xlarge,reserved_1y,no_upfront,4.596,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:24.893882 +AWS,ap-southeast-1,r5.24xlarge,reserved_1y,partial_upfront,4.596,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:09.769978 +AWS,ap-southeast-1,r5.24xlarge,reserved_3y,all_upfront,4.596,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:46.791926 +AWS,ap-southeast-1,r5.24xlarge,reserved_3y,no_upfront,4.596,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:27.566991 +AWS,ap-southeast-1,r5.24xlarge,reserved_3y,partial_upfront,4.596,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:21.426390 +AWS,ap-southeast-1,r5.24xlarge,spot,NA,2.627707,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920340 +AWS,ap-southeast-1,r5.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T12:52:30.163733 +AWS,ap-southeast-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:30.163869 +AWS,ap-southeast-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.44,USD,AWS Pricing API,2025-11-30T12:52:30.163858 +AWS,ap-southeast-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.21,USD,AWS Pricing API,2025-11-30T12:52:30.163893 +AWS,ap-southeast-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:30.163807 +AWS,ap-southeast-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.263,USD,AWS Pricing API,2025-11-30T12:52:30.163882 +AWS,ap-southeast-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.122,USD,AWS Pricing API,2025-11-30T12:52:30.163833 +AWS,ap-southeast-1,r5.2xlarge,spot,NA,0.299,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:38.180889 +AWS,ap-southeast-1,r5.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T09:00:05.213987 +AWS,ap-southeast-1,r5.4xlarge,reserved_1y,all_upfront,0.881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:36.246022 +AWS,ap-southeast-1,r5.4xlarge,reserved_1y,no_upfront,0.881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:17.891541 +AWS,ap-southeast-1,r5.4xlarge,reserved_1y,partial_upfront,0.881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:02.172312 +AWS,ap-southeast-1,r5.4xlarge,reserved_3y,all_upfront,0.881,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:38.287313 +AWS,ap-southeast-1,r5.4xlarge,reserved_3y,no_upfront,0.881,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:21.067428 +AWS,ap-southeast-1,r5.4xlarge,reserved_3y,partial_upfront,0.881,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:13.571715 +AWS,ap-southeast-1,r5.4xlarge,spot,NA,0.496454,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921679 +AWS,ap-southeast-1,r5.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T08:59:47.984588 +AWS,ap-southeast-1,r5.8xlarge,reserved_1y,all_upfront,1.945247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:19.151063 +AWS,ap-southeast-1,r5.8xlarge,reserved_1y,no_upfront,1.945247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:00.705167 +AWS,ap-southeast-1,r5.8xlarge,reserved_1y,partial_upfront,1.945247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:45.151083 +AWS,ap-southeast-1,r5.8xlarge,reserved_3y,all_upfront,0.972416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:21.616145 +AWS,ap-southeast-1,r5.8xlarge,reserved_3y,no_upfront,0.972416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:03.703384 +AWS,ap-southeast-1,r5.8xlarge,reserved_3y,partial_upfront,0.972416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:56.608294 +AWS,ap-southeast-1,r5.8xlarge,spot,NA,0.926183,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921281 +AWS,ap-southeast-1,r5.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T08:59:23.837061 +AWS,ap-southeast-1,r5.large,reserved_1y,all_upfront,0.11,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:55.226787 +AWS,ap-southeast-1,r5.large,reserved_1y,no_upfront,0.11,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:36.530624 +AWS,ap-southeast-1,r5.large,reserved_1y,partial_upfront,0.11,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:21.274627 +AWS,ap-southeast-1,r5.large,reserved_3y,all_upfront,0.11,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:58.084193 +AWS,ap-southeast-1,r5.large,reserved_3y,no_upfront,0.11,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:39.353602 +AWS,ap-southeast-1,r5.large,reserved_3y,partial_upfront,0.11,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:32.857507 +AWS,ap-southeast-1,r5.large,spot,NA,0.059072,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920651 +AWS,ap-southeast-1,r5.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T08:59:01.008846 +AWS,ap-southeast-1,r5.xlarge,reserved_1y,all_upfront,0.178767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:32.422311 +AWS,ap-southeast-1,r5.xlarge,reserved_1y,no_upfront,0.178767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:13.661337 +AWS,ap-southeast-1,r5.xlarge,reserved_1y,partial_upfront,0.178767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:58.651421 +AWS,ap-southeast-1,r5.xlarge,reserved_3y,all_upfront,0.059589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:35.848909 +AWS,ap-southeast-1,r5.xlarge,reserved_3y,no_upfront,0.059589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:16.279459 +AWS,ap-southeast-1,r5.xlarge,reserved_3y,partial_upfront,0.059589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:10.398116 +AWS,ap-southeast-1,r5.xlarge,spot,NA,0.121562,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920037 +AWS,ap-southeast-1,r5a.12xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T08:59:56.185197 +AWS,ap-southeast-1,r5a.12xlarge,reserved_1y,all_upfront,2.368,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:27.282696 +AWS,ap-southeast-1,r5a.12xlarge,reserved_1y,no_upfront,2.368,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:08.890186 +AWS,ap-southeast-1,r5a.12xlarge,reserved_1y,partial_upfront,2.368,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:53.258721 +AWS,ap-southeast-1,r5a.12xlarge,reserved_3y,all_upfront,2.368,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:29.540970 +AWS,ap-southeast-1,r5a.12xlarge,reserved_3y,no_upfront,2.368,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:11.944744 +AWS,ap-southeast-1,r5a.12xlarge,reserved_3y,partial_upfront,2.368,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:04.683163 +AWS,ap-southeast-1,r5a.12xlarge,spot,NA,1.450805,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921462 +AWS,ap-southeast-1,r5a.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T09:00:04.387021 +AWS,ap-southeast-1,r5a.16xlarge,reserved_1y,all_upfront,2.611594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:35.414791 +AWS,ap-southeast-1,r5a.16xlarge,reserved_1y,no_upfront,2.611594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:17.076732 +AWS,ap-southeast-1,r5a.16xlarge,reserved_1y,partial_upfront,2.611594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:01.346778 +AWS,ap-southeast-1,r5a.16xlarge,reserved_3y,all_upfront,1.741198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:37.495743 +AWS,ap-southeast-1,r5a.16xlarge,reserved_3y,no_upfront,1.741198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:20.235747 +AWS,ap-southeast-1,r5a.16xlarge,reserved_3y,partial_upfront,1.741198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:12.757222 +AWS,ap-southeast-1,r5a.16xlarge,spot,NA,1.792602,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921639 +AWS,ap-southeast-1,r5a.24xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T08:59:58.217479 +AWS,ap-southeast-1,r5a.24xlarge,reserved_1y,all_upfront,2.82,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:29.314754 +AWS,ap-southeast-1,r5a.24xlarge,reserved_1y,no_upfront,2.82,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:10.942334 +AWS,ap-southeast-1,r5a.24xlarge,reserved_1y,partial_upfront,2.82,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:55.277618 +AWS,ap-southeast-1,r5a.24xlarge,reserved_3y,all_upfront,2.82,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:31.535154 +AWS,ap-southeast-1,r5a.24xlarge,reserved_3y,no_upfront,2.82,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:14.004104 +AWS,ap-southeast-1,r5a.24xlarge,reserved_3y,partial_upfront,2.82,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:06.697283 +AWS,ap-southeast-1,r5a.24xlarge,spot,NA,2.82177,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921489 +AWS,ap-southeast-1,r5a.2xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T09:00:09.024627 +AWS,ap-southeast-1,r5a.2xlarge,reserved_1y,all_upfront,0.3759,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:40.031406 +AWS,ap-southeast-1,r5a.2xlarge,reserved_1y,no_upfront,0.3759,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:21.719730 +AWS,ap-southeast-1,r5a.2xlarge,reserved_1y,partial_upfront,0.3759,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:05.973421 +AWS,ap-southeast-1,r5a.2xlarge,reserved_3y,all_upfront,0.250633,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:41.995105 +AWS,ap-southeast-1,r5a.2xlarge,reserved_3y,no_upfront,0.250633,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:24.927778 +AWS,ap-southeast-1,r5a.2xlarge,reserved_3y,partial_upfront,0.250633,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:17.354289 +AWS,ap-southeast-1,r5a.2xlarge,spot,NA,0.276817,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921768 +AWS,ap-southeast-1,r5a.4xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T08:59:48.933579 +AWS,ap-southeast-1,r5a.4xlarge,reserved_1y,all_upfront,1.548174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:20.087400 +AWS,ap-southeast-1,r5a.4xlarge,reserved_1y,no_upfront,1.548174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:01.666926 +AWS,ap-southeast-1,r5a.4xlarge,reserved_1y,partial_upfront,1.548174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:46.092672 +AWS,ap-southeast-1,r5a.4xlarge,reserved_3y,all_upfront,0.516058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:22.542404 +AWS,ap-southeast-1,r5a.4xlarge,reserved_3y,no_upfront,0.516058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:04.673155 +AWS,ap-southeast-1,r5a.4xlarge,reserved_3y,partial_upfront,0.516058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:57.560159 +AWS,ap-southeast-1,r5a.4xlarge,spot,NA,0.614101,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921293 +AWS,ap-southeast-1,r5a.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:59:31.134349 +AWS,ap-southeast-1,r5a.8xlarge,reserved_1y,all_upfront,1.503826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:02.515620 +AWS,ap-southeast-1,r5a.8xlarge,reserved_1y,no_upfront,1.503826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:43.851264 +AWS,ap-southeast-1,r5a.8xlarge,reserved_1y,partial_upfront,1.503826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:28.438363 +AWS,ap-southeast-1,r5a.8xlarge,reserved_3y,all_upfront,1.002609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:05.174505 +AWS,ap-southeast-1,r5a.8xlarge,reserved_3y,no_upfront,1.002609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:46.678876 +AWS,ap-southeast-1,r5a.8xlarge,reserved_3y,partial_upfront,1.002609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:39.991038 +AWS,ap-southeast-1,r5a.8xlarge,spot,NA,0.988577,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920869 +AWS,ap-southeast-1,r5a.large,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T08:59:37.747004 +AWS,ap-southeast-1,r5a.large,reserved_1y,all_upfront,0.193493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:09.017711 +AWS,ap-southeast-1,r5a.large,reserved_1y,no_upfront,0.193493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:50.474480 +AWS,ap-southeast-1,r5a.large,reserved_1y,partial_upfront,0.193493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:34.915850 +AWS,ap-southeast-1,r5a.large,reserved_3y,all_upfront,0.064498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:11.552297 +AWS,ap-southeast-1,r5a.large,reserved_3y,no_upfront,0.064498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:53.343367 +AWS,ap-southeast-1,r5a.large,reserved_3y,partial_upfront,0.064498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:46.505960 +AWS,ap-southeast-1,r5a.large,spot,NA,0.062782,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921009 +AWS,ap-southeast-1,r5a.xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T08:59:48.389170 +AWS,ap-southeast-1,r5a.xlarge,reserved_1y,all_upfront,0.263489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:19.550951 +AWS,ap-southeast-1,r5a.xlarge,reserved_1y,no_upfront,0.263489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:01.113059 +AWS,ap-southeast-1,r5a.xlarge,reserved_1y,partial_upfront,0.263489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:45.555448 +AWS,ap-southeast-1,r5a.xlarge,reserved_3y,all_upfront,0.13183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:22.014748 +AWS,ap-southeast-1,r5a.xlarge,reserved_3y,no_upfront,0.13183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:04.119557 +AWS,ap-southeast-1,r5a.xlarge,reserved_3y,partial_upfront,0.13183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:57.021150 +AWS,ap-southeast-1,r5a.xlarge,spot,NA,0.135697,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921277 +AWS,ap-southeast-1,r5d.12xlarge,on_demand,NA,4.176,USD,AWS Pricing API,2025-11-30T09:00:01.773137 +AWS,ap-southeast-1,r5d.12xlarge,reserved_1y,all_upfront,2.631,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:32.816845 +AWS,ap-southeast-1,r5d.12xlarge,reserved_1y,no_upfront,2.631,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:14.488200 +AWS,ap-southeast-1,r5d.12xlarge,reserved_1y,partial_upfront,2.631,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:58.785065 +AWS,ap-southeast-1,r5d.12xlarge,reserved_3y,all_upfront,2.631,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:34.977693 +AWS,ap-southeast-1,r5d.12xlarge,reserved_3y,no_upfront,2.631,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:17.611630 +AWS,ap-southeast-1,r5d.12xlarge,reserved_3y,partial_upfront,2.631,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:10.209035 +AWS,ap-southeast-1,r5d.12xlarge,spot,NA,1.596148,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921586 +AWS,ap-southeast-1,r5d.16xlarge,on_demand,NA,5.568,USD,AWS Pricing API,2025-11-30T08:59:26.186964 +AWS,ap-southeast-1,r5d.16xlarge,reserved_1y,all_upfront,3.340434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:57.517788 +AWS,ap-southeast-1,r5d.16xlarge,reserved_1y,no_upfront,3.340434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:38.856070 +AWS,ap-southeast-1,r5d.16xlarge,reserved_1y,partial_upfront,3.340434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:23.573594 +AWS,ap-southeast-1,r5d.16xlarge,reserved_3y,all_upfront,2.226811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:00.340800 +AWS,ap-southeast-1,r5d.16xlarge,reserved_3y,no_upfront,2.226811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:41.699427 +AWS,ap-southeast-1,r5d.16xlarge,reserved_3y,partial_upfront,2.226811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:35.141168 +AWS,ap-southeast-1,r5d.16xlarge,spot,NA,2.050888,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920694 +AWS,ap-southeast-1,r5d.24xlarge,on_demand,NA,8.352,USD,AWS Pricing API,2025-11-30T08:59:56.322828 +AWS,ap-southeast-1,r5d.24xlarge,reserved_1y,all_upfront,5.655708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:27.414967 +AWS,ap-southeast-1,r5d.24xlarge,reserved_1y,no_upfront,5.655708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:09.032055 +AWS,ap-southeast-1,r5d.24xlarge,reserved_1y,partial_upfront,5.655708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:53.396780 +AWS,ap-southeast-1,r5d.24xlarge,reserved_3y,all_upfront,1.885236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:29.673654 +AWS,ap-southeast-1,r5d.24xlarge,reserved_3y,no_upfront,1.885236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:12.083205 +AWS,ap-southeast-1,r5d.24xlarge,reserved_3y,partial_upfront,1.885236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:04.818139 +AWS,ap-southeast-1,r5d.24xlarge,spot,NA,3.171079,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921450 +AWS,ap-southeast-1,r5d.2xlarge,on_demand,NA,0.696,USD,AWS Pricing API,2025-11-30T08:59:54.970996 +AWS,ap-southeast-1,r5d.2xlarge,reserved_1y,all_upfront,0.480411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:26.047072 +AWS,ap-southeast-1,r5d.2xlarge,reserved_1y,no_upfront,0.480411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:07.668556 +AWS,ap-southeast-1,r5d.2xlarge,reserved_1y,partial_upfront,0.480411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:52.061307 +AWS,ap-southeast-1,r5d.2xlarge,reserved_3y,all_upfront,0.320137,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:28.340474 +AWS,ap-southeast-1,r5d.2xlarge,reserved_3y,no_upfront,0.320137,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:10.708686 +AWS,ap-southeast-1,r5d.2xlarge,reserved_3y,partial_upfront,0.320137,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:03.481180 +AWS,ap-southeast-1,r5d.2xlarge,spot,NA,0.395701,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921415 +AWS,ap-southeast-1,r5d.4xlarge,on_demand,NA,1.392,USD,AWS Pricing API,2025-11-30T08:59:25.641545 +AWS,ap-southeast-1,r5d.4xlarge,reserved_1y,all_upfront,0.94258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:56.982639 +AWS,ap-southeast-1,r5d.4xlarge,reserved_1y,no_upfront,0.94258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:38.315150 +AWS,ap-southeast-1,r5d.4xlarge,reserved_1y,partial_upfront,0.94258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:23.031727 +AWS,ap-southeast-1,r5d.4xlarge,reserved_3y,all_upfront,0.314193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:59.797686 +AWS,ap-southeast-1,r5d.4xlarge,reserved_3y,no_upfront,0.314193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:41.146775 +AWS,ap-southeast-1,r5d.4xlarge,reserved_3y,partial_upfront,0.314193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:34.606757 +AWS,ap-southeast-1,r5d.4xlarge,spot,NA,0.646683,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920690 +AWS,ap-southeast-1,r5d.8xlarge,on_demand,NA,2.784,USD,AWS Pricing API,2025-11-30T08:59:25.204269 +AWS,ap-southeast-1,r5d.8xlarge,reserved_1y,all_upfront,3.906164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:56.577837 +AWS,ap-southeast-1,r5d.8xlarge,reserved_1y,no_upfront,3.906164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:37.902561 +AWS,ap-southeast-1,r5d.8xlarge,reserved_1y,partial_upfront,3.906164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:22.619701 +AWS,ap-southeast-1,r5d.8xlarge,reserved_3y,all_upfront,1.302055,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:59.404082 +AWS,ap-southeast-1,r5d.8xlarge,reserved_3y,no_upfront,1.302055,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:40.732032 +AWS,ap-southeast-1,r5d.8xlarge,reserved_3y,partial_upfront,1.302055,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:34.210581 +AWS,ap-southeast-1,r5d.8xlarge,spot,NA,1.251226,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920663 +AWS,ap-southeast-1,r5d.large,on_demand,NA,0.174,USD,AWS Pricing API,2025-11-30T08:59:50.167191 +AWS,ap-southeast-1,r5d.large,reserved_1y,all_upfront,0.126,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:21.294722 +AWS,ap-southeast-1,r5d.large,reserved_1y,no_upfront,0.126,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:02.897073 +AWS,ap-southeast-1,r5d.large,reserved_1y,partial_upfront,0.126,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:47.301859 +AWS,ap-southeast-1,r5d.large,reserved_3y,all_upfront,0.126,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:23.733253 +AWS,ap-southeast-1,r5d.large,reserved_3y,no_upfront,0.126,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:05.907276 +AWS,ap-southeast-1,r5d.large,reserved_3y,partial_upfront,0.126,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:58.769445 +AWS,ap-southeast-1,r5d.large,spot,NA,0.070763,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921328 +AWS,ap-southeast-1,r5d.xlarge,on_demand,NA,0.348,USD,AWS Pricing API,2025-11-30T08:59:07.429122 +AWS,ap-southeast-1,r5d.xlarge,reserved_1y,all_upfront,0.20468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:38.889191 +AWS,ap-southeast-1,r5d.xlarge,reserved_1y,no_upfront,0.20468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:20.077194 +AWS,ap-southeast-1,r5d.xlarge,reserved_1y,partial_upfront,0.20468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:05.039159 +AWS,ap-southeast-1,r5d.xlarge,reserved_3y,all_upfront,0.068227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:42.129673 +AWS,ap-southeast-1,r5d.xlarge,reserved_3y,no_upfront,0.068227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:22.716872 +AWS,ap-southeast-1,r5d.xlarge,reserved_3y,partial_upfront,0.068227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:16.714286 +AWS,ap-southeast-1,r5d.xlarge,spot,NA,0.167787,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920206 +AWS,ap-southeast-1,r5dn.12xlarge,on_demand,NA,4.8,USD,AWS Pricing API,2025-11-30T08:59:10.263412 +AWS,ap-southeast-1,r5dn.12xlarge,reserved_1y,all_upfront,3.647959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:41.742842 +AWS,ap-southeast-1,r5dn.12xlarge,reserved_1y,no_upfront,3.647959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:22.982644 +AWS,ap-southeast-1,r5dn.12xlarge,reserved_1y,partial_upfront,3.647959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:07.882975 +AWS,ap-southeast-1,r5dn.12xlarge,reserved_3y,all_upfront,1.823986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:44.929745 +AWS,ap-southeast-1,r5dn.12xlarge,reserved_3y,no_upfront,1.823986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:25.632720 +AWS,ap-southeast-1,r5dn.12xlarge,reserved_3y,partial_upfront,1.823986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:19.548327 +AWS,ap-southeast-1,r5dn.12xlarge,spot,NA,1.83743,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920266 +AWS,ap-southeast-1,r5dn.16xlarge,on_demand,NA,6.4,USD,AWS Pricing API,2025-11-30T08:59:20.720167 +AWS,ap-southeast-1,r5dn.16xlarge,reserved_1y,all_upfront,4.863945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:52.166183 +AWS,ap-southeast-1,r5dn.16xlarge,reserved_1y,no_upfront,4.863945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:33.520917 +AWS,ap-southeast-1,r5dn.16xlarge,reserved_1y,partial_upfront,4.863945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:18.306676 +AWS,ap-southeast-1,r5dn.16xlarge,reserved_3y,all_upfront,2.431982,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:55.166612 +AWS,ap-southeast-1,r5dn.16xlarge,reserved_3y,no_upfront,2.431982,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:36.299671 +AWS,ap-southeast-1,r5dn.16xlarge,reserved_3y,partial_upfront,2.431982,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:29.905985 +AWS,ap-southeast-1,r5dn.16xlarge,spot,NA,2.289438,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920554 +AWS,ap-southeast-1,r5dn.24xlarge,on_demand,NA,9.6,USD,AWS Pricing API,2025-11-30T08:59:32.508123 +AWS,ap-southeast-1,r5dn.24xlarge,reserved_1y,all_upfront,6.566781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:03.866259 +AWS,ap-southeast-1,r5dn.24xlarge,reserved_1y,no_upfront,6.566781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:45.239756 +AWS,ap-southeast-1,r5dn.24xlarge,reserved_1y,partial_upfront,6.566781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:29.799438 +AWS,ap-southeast-1,r5dn.24xlarge,reserved_3y,all_upfront,2.188927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:06.504204 +AWS,ap-southeast-1,r5dn.24xlarge,reserved_3y,no_upfront,2.188927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:48.109773 +AWS,ap-southeast-1,r5dn.24xlarge,reserved_3y,partial_upfront,2.188927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:41.346395 +AWS,ap-southeast-1,r5dn.24xlarge,spot,NA,3.137919,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920898 +AWS,ap-southeast-1,r5dn.2xlarge,on_demand,NA,0.8,USD,AWS Pricing API,2025-11-30T08:59:37.882003 +AWS,ap-southeast-1,r5dn.2xlarge,reserved_1y,all_upfront,0.586,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:09.153427 +AWS,ap-southeast-1,r5dn.2xlarge,reserved_1y,no_upfront,0.586,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:50.610702 +AWS,ap-southeast-1,r5dn.2xlarge,reserved_1y,partial_upfront,0.586,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:35.051974 +AWS,ap-southeast-1,r5dn.2xlarge,reserved_3y,all_upfront,0.586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:11.682076 +AWS,ap-southeast-1,r5dn.2xlarge,reserved_3y,no_upfront,0.586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:53.479754 +AWS,ap-southeast-1,r5dn.2xlarge,reserved_3y,partial_upfront,0.586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:46.640367 +AWS,ap-southeast-1,r5dn.2xlarge,spot,NA,0.437471,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921048 +AWS,ap-southeast-1,r5dn.4xlarge,on_demand,NA,1.6,USD,AWS Pricing API,2025-11-30T08:59:01.681720 +AWS,ap-southeast-1,r5dn.4xlarge,reserved_1y,all_upfront,1.173,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:33.096489 +AWS,ap-southeast-1,r5dn.4xlarge,reserved_1y,no_upfront,1.173,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:14.341454 +AWS,ap-southeast-1,r5dn.4xlarge,reserved_1y,partial_upfront,1.173,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:59.327428 +AWS,ap-southeast-1,r5dn.4xlarge,reserved_3y,all_upfront,1.173,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:36.506802 +AWS,ap-southeast-1,r5dn.4xlarge,reserved_3y,no_upfront,1.173,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:16.964294 +AWS,ap-southeast-1,r5dn.4xlarge,reserved_3y,partial_upfront,1.173,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:11.067241 +AWS,ap-southeast-1,r5dn.4xlarge,spot,NA,0.776475,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920033 +AWS,ap-southeast-1,r5dn.8xlarge,on_demand,NA,3.2,USD,AWS Pricing API,2025-11-30T09:00:01.490123 +AWS,ap-southeast-1,r5dn.8xlarge,reserved_1y,all_upfront,2.233781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:32.547523 +AWS,ap-southeast-1,r5dn.8xlarge,reserved_1y,no_upfront,2.233781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:14.214988 +AWS,ap-southeast-1,r5dn.8xlarge,reserved_1y,partial_upfront,2.233781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:58.518191 +AWS,ap-southeast-1,r5dn.8xlarge,reserved_3y,all_upfront,1.48926,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:34.715783 +AWS,ap-southeast-1,r5dn.8xlarge,reserved_3y,no_upfront,1.48926,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:17.339535 +AWS,ap-southeast-1,r5dn.8xlarge,reserved_3y,partial_upfront,1.48926,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:09.940761 +AWS,ap-southeast-1,r5dn.8xlarge,spot,NA,1.314618,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921606 +AWS,ap-southeast-1,r5dn.large,on_demand,NA,0.2,USD,AWS Pricing API,2025-11-30T08:59:11.350094 +AWS,ap-southeast-1,r5dn.large,reserved_1y,all_upfront,0.136758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:42.829813 +AWS,ap-southeast-1,r5dn.large,reserved_1y,no_upfront,0.136758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:24.069141 +AWS,ap-southeast-1,r5dn.large,reserved_1y,partial_upfront,0.136758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:08.957746 +AWS,ap-southeast-1,r5dn.large,reserved_3y,all_upfront,0.045586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:45.993369 +AWS,ap-southeast-1,r5dn.large,reserved_3y,no_upfront,0.045586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:26.732696 +AWS,ap-southeast-1,r5dn.large,reserved_3y,partial_upfront,0.045586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:20.622476 +AWS,ap-southeast-1,r5dn.large,spot,NA,0.077434,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920319 +AWS,ap-southeast-1,r5dn.metal,on_demand,NA,9.6,USD,AWS Pricing API,2025-11-30T08:58:59.386409 +AWS,ap-southeast-1,r5dn.metal,reserved_1y,all_upfront,6.566781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:30.802402 +AWS,ap-southeast-1,r5dn.metal,reserved_1y,no_upfront,6.566781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:12.018713 +AWS,ap-southeast-1,r5dn.metal,reserved_1y,partial_upfront,6.566781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:57.021245 +AWS,ap-southeast-1,r5dn.metal,reserved_3y,all_upfront,2.188927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:34.260118 +AWS,ap-southeast-1,r5dn.metal,reserved_3y,no_upfront,2.188927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:14.625779 +AWS,ap-southeast-1,r5dn.metal,reserved_3y,partial_upfront,2.188927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:08.784538 +AWS,ap-southeast-1,r5dn.metal,spot,NA,3.269294,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919954 +AWS,ap-southeast-1,r5dn.xlarge,on_demand,NA,0.4,USD,AWS Pricing API,2025-11-30T08:59:22.871363 +AWS,ap-southeast-1,r5dn.xlarge,reserved_1y,all_upfront,0.23516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:54.187071 +AWS,ap-southeast-1,r5dn.xlarge,reserved_1y,no_upfront,0.23516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:35.568926 +AWS,ap-southeast-1,r5dn.xlarge,reserved_1y,partial_upfront,0.23516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:20.327882 +AWS,ap-southeast-1,r5dn.xlarge,reserved_3y,all_upfront,0.078387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:57.155992 +AWS,ap-southeast-1,r5dn.xlarge,reserved_3y,no_upfront,0.078387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:38.372743 +AWS,ap-southeast-1,r5dn.xlarge,reserved_3y,partial_upfront,0.078387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:31.925233 +AWS,ap-southeast-1,r5dn.xlarge,spot,NA,0.200127,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920644 +AWS,ap-southeast-1,r5n.12xlarge,on_demand,NA,4.272,USD,AWS Pricing API,2025-11-30T08:59:45.798569 +AWS,ap-southeast-1,r5n.12xlarge,reserved_1y,all_upfront,2.563621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:16.991953 +AWS,ap-southeast-1,r5n.12xlarge,reserved_1y,no_upfront,2.563621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:58.498999 +AWS,ap-southeast-1,r5n.12xlarge,reserved_1y,partial_upfront,2.563621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:42.977110 +AWS,ap-southeast-1,r5n.12xlarge,reserved_3y,all_upfront,1.709207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:19.480060 +AWS,ap-southeast-1,r5n.12xlarge,reserved_3y,no_upfront,1.709207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:01.473873 +AWS,ap-southeast-1,r5n.12xlarge,reserved_3y,partial_upfront,1.709207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:54.429340 +AWS,ap-southeast-1,r5n.12xlarge,spot,NA,1.669126,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921203 +AWS,ap-southeast-1,r5n.16xlarge,on_demand,NA,5.696,USD,AWS Pricing API,2025-11-30T09:00:01.079419 +AWS,ap-southeast-1,r5n.16xlarge,reserved_1y,all_upfront,4.351813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:32.142681 +AWS,ap-southeast-1,r5n.16xlarge,reserved_1y,no_upfront,4.351813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:13.804666 +AWS,ap-southeast-1,r5n.16xlarge,reserved_1y,partial_upfront,4.351813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:58.104040 +AWS,ap-southeast-1,r5n.16xlarge,reserved_3y,all_upfront,2.175938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:34.320902 +AWS,ap-southeast-1,r5n.16xlarge,reserved_3y,no_upfront,2.175938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:16.930427 +AWS,ap-southeast-1,r5n.16xlarge,reserved_3y,partial_upfront,2.175938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:09.539336 +AWS,ap-southeast-1,r5n.16xlarge,spot,NA,2.137429,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921590 +AWS,ap-southeast-1,r5n.24xlarge,on_demand,NA,8.544,USD,AWS Pricing API,2025-11-30T08:59:22.455120 +AWS,ap-southeast-1,r5n.24xlarge,reserved_1y,all_upfront,5.955626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:53.786595 +AWS,ap-southeast-1,r5n.24xlarge,reserved_1y,no_upfront,5.955626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:35.161070 +AWS,ap-southeast-1,r5n.24xlarge,reserved_1y,partial_upfront,5.955626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:19.914949 +AWS,ap-southeast-1,r5n.24xlarge,reserved_3y,all_upfront,3.970542,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:56.756821 +AWS,ap-southeast-1,r5n.24xlarge,reserved_3y,no_upfront,3.970542,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:37.960023 +AWS,ap-southeast-1,r5n.24xlarge,reserved_3y,partial_upfront,3.970542,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:31.523935 +AWS,ap-southeast-1,r5n.24xlarge,spot,NA,2.997767,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920613 +AWS,ap-southeast-1,r5n.2xlarge,on_demand,NA,0.712,USD,AWS Pricing API,2025-11-30T08:59:03.202225 +AWS,ap-southeast-1,r5n.2xlarge,reserved_1y,all_upfront,0.521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:34.673101 +AWS,ap-southeast-1,r5n.2xlarge,reserved_1y,no_upfront,0.521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:15.844800 +AWS,ap-southeast-1,r5n.2xlarge,reserved_1y,partial_upfront,0.521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:00.816018 +AWS,ap-southeast-1,r5n.2xlarge,reserved_3y,all_upfront,0.521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:38.021710 +AWS,ap-southeast-1,r5n.2xlarge,reserved_3y,no_upfront,0.521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:18.469771 +AWS,ap-southeast-1,r5n.2xlarge,reserved_3y,partial_upfront,0.521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:12.538347 +AWS,ap-southeast-1,r5n.2xlarge,spot,NA,0.347486,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920086 +AWS,ap-southeast-1,r5n.4xlarge,on_demand,NA,1.424,USD,AWS Pricing API,2025-11-30T08:59:59.599797 +AWS,ap-southeast-1,r5n.4xlarge,reserved_1y,all_upfront,0.675,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:30.666528 +AWS,ap-southeast-1,r5n.4xlarge,reserved_1y,no_upfront,0.675,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:12.308582 +AWS,ap-southeast-1,r5n.4xlarge,reserved_1y,partial_upfront,0.675,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:56.625715 +AWS,ap-southeast-1,r5n.4xlarge,reserved_3y,all_upfront,0.675,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:32.863382 +AWS,ap-southeast-1,r5n.4xlarge,reserved_3y,no_upfront,0.675,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:15.379549 +AWS,ap-southeast-1,r5n.4xlarge,reserved_3y,partial_upfront,0.675,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:08.044391 +AWS,ap-southeast-1,r5n.4xlarge,spot,NA,0.687765,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921524 +AWS,ap-southeast-1,r5n.8xlarge,on_demand,NA,2.848,USD,AWS Pricing API,2025-11-30T08:59:45.653623 +AWS,ap-southeast-1,r5n.8xlarge,reserved_1y,all_upfront,1.94532,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:16.855345 +AWS,ap-southeast-1,r5n.8xlarge,reserved_1y,no_upfront,1.94532,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:58.362886 +AWS,ap-southeast-1,r5n.8xlarge,reserved_1y,partial_upfront,1.94532,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:42.836551 +AWS,ap-southeast-1,r5n.8xlarge,reserved_3y,all_upfront,0.64844,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:19.347008 +AWS,ap-southeast-1,r5n.8xlarge,reserved_3y,no_upfront,0.64844,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:01.335449 +AWS,ap-southeast-1,r5n.8xlarge,reserved_3y,partial_upfront,0.64844,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:54.284435 +AWS,ap-southeast-1,r5n.8xlarge,spot,NA,1.173164,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921198 +AWS,ap-southeast-1,r5n.large,on_demand,NA,0.178,USD,AWS Pricing API,2025-11-30T09:00:06.978865 +AWS,ap-southeast-1,r5n.large,reserved_1y,all_upfront,0.13,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:38.003753 +AWS,ap-southeast-1,r5n.large,reserved_1y,no_upfront,0.13,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:19.655004 +AWS,ap-southeast-1,r5n.large,reserved_1y,partial_upfront,0.13,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:03.946557 +AWS,ap-southeast-1,r5n.large,reserved_3y,all_upfront,0.13,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:40.004217 +AWS,ap-southeast-1,r5n.large,reserved_3y,no_upfront,0.13,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:22.861273 +AWS,ap-southeast-1,r5n.large,reserved_3y,partial_upfront,0.13,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:15.328641 +AWS,ap-southeast-1,r5n.large,spot,NA,0.075837,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921704 +AWS,ap-southeast-1,r5n.metal,on_demand,NA,8.544,USD,AWS Pricing API,2025-11-30T08:59:46.618277 +AWS,ap-southeast-1,r5n.metal,reserved_1y,all_upfront,5.383,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:17.803679 +AWS,ap-southeast-1,r5n.metal,reserved_1y,no_upfront,5.383,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:59.321543 +AWS,ap-southeast-1,r5n.metal,reserved_1y,partial_upfront,5.383,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:43.797036 +AWS,ap-southeast-1,r5n.metal,reserved_3y,all_upfront,5.383,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:20.276976 +AWS,ap-southeast-1,r5n.metal,reserved_3y,no_upfront,5.383,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:02.321167 +AWS,ap-southeast-1,r5n.metal,reserved_3y,partial_upfront,5.383,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:55.244662 +AWS,ap-southeast-1,r5n.metal,spot,NA,2.984763,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921244 +AWS,ap-southeast-1,r5n.xlarge,on_demand,NA,0.356,USD,AWS Pricing API,2025-11-30T08:59:24.518348 +AWS,ap-southeast-1,r5n.xlarge,reserved_1y,all_upfront,0.383447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:55.897895 +AWS,ap-southeast-1,r5n.xlarge,reserved_1y,no_upfront,0.383447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:37.225705 +AWS,ap-southeast-1,r5n.xlarge,reserved_1y,partial_upfront,0.383447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:21.948576 +AWS,ap-southeast-1,r5n.xlarge,reserved_3y,all_upfront,0.127816,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:58.745234 +AWS,ap-southeast-1,r5n.xlarge,reserved_3y,no_upfront,0.127816,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:40.040153 +AWS,ap-southeast-1,r5n.xlarge,reserved_3y,partial_upfront,0.127816,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:33.535189 +AWS,ap-southeast-1,r5n.xlarge,spot,NA,0.192206,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920655 +AWS,ap-southeast-1,r6g.12xlarge,on_demand,NA,2.9184,USD,AWS Pricing API,2025-11-30T08:59:17.583437 +AWS,ap-southeast-1,r6g.12xlarge,reserved_1y,all_upfront,1.715982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:49.055978 +AWS,ap-southeast-1,r6g.12xlarge,reserved_1y,no_upfront,1.715982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:30.381371 +AWS,ap-southeast-1,r6g.12xlarge,reserved_1y,partial_upfront,1.715982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:15.186926 +AWS,ap-southeast-1,r6g.12xlarge,reserved_3y,all_upfront,0.571994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:52.113024 +AWS,ap-southeast-1,r6g.12xlarge,reserved_3y,no_upfront,0.571994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:33.089222 +AWS,ap-southeast-1,r6g.12xlarge,reserved_3y,partial_upfront,0.571994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:26.791271 +AWS,ap-southeast-1,r6g.12xlarge,spot,NA,1.262208,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920497 +AWS,ap-southeast-1,r6g.16xlarge,on_demand,NA,3.8912,USD,AWS Pricing API,2025-11-30T08:59:14.479298 +AWS,ap-southeast-1,r6g.16xlarge,reserved_1y,all_upfront,2.4515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:45.949387 +AWS,ap-southeast-1,r6g.16xlarge,reserved_1y,no_upfront,2.4515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:27.213401 +AWS,ap-southeast-1,r6g.16xlarge,reserved_1y,partial_upfront,2.4515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:12.069969 +AWS,ap-southeast-1,r6g.16xlarge,reserved_3y,all_upfront,2.4515,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:49.047084 +AWS,ap-southeast-1,r6g.16xlarge,reserved_3y,no_upfront,2.4515,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:29.916884 +AWS,ap-southeast-1,r6g.16xlarge,reserved_3y,partial_upfront,2.4515,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:23.713967 +AWS,ap-southeast-1,r6g.16xlarge,spot,NA,1.826365,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920401 +AWS,ap-southeast-1,r6g.2xlarge,on_demand,NA,0.4864,USD,AWS Pricing API,2025-11-30T09:00:07.932300 +AWS,ap-southeast-1,r6g.2xlarge,reserved_1y,all_upfront,0.3064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:38.950301 +AWS,ap-southeast-1,r6g.2xlarge,reserved_1y,no_upfront,0.3064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:20.618927 +AWS,ap-southeast-1,r6g.2xlarge,reserved_1y,partial_upfront,0.3064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:04.895966 +AWS,ap-southeast-1,r6g.2xlarge,reserved_3y,all_upfront,0.3064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:40.936497 +AWS,ap-southeast-1,r6g.2xlarge,reserved_3y,no_upfront,0.3064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:23.814913 +AWS,ap-southeast-1,r6g.2xlarge,reserved_3y,partial_upfront,0.3064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:16.263782 +AWS,ap-southeast-1,r6g.2xlarge,spot,NA,0.222263,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921778 +AWS,ap-southeast-1,r6g.4xlarge,on_demand,NA,0.9728,USD,AWS Pricing API,2025-11-30T08:59:04.310094 +AWS,ap-southeast-1,r6g.4xlarge,reserved_1y,all_upfront,0.583695,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:35.777600 +AWS,ap-southeast-1,r6g.4xlarge,reserved_1y,no_upfront,0.583695,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:16.927062 +AWS,ap-southeast-1,r6g.4xlarge,reserved_1y,partial_upfront,0.583695,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:01.897086 +AWS,ap-southeast-1,r6g.4xlarge,reserved_3y,all_upfront,0.389098,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:39.076558 +AWS,ap-southeast-1,r6g.4xlarge,reserved_3y,no_upfront,0.389098,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:19.565076 +AWS,ap-southeast-1,r6g.4xlarge,reserved_3y,partial_upfront,0.389098,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:13.603444 +AWS,ap-southeast-1,r6g.4xlarge,spot,NA,0.419267,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920124 +AWS,ap-southeast-1,r6g.8xlarge,on_demand,NA,1.9456,USD,AWS Pricing API,2025-11-30T08:59:43.602844 +AWS,ap-southeast-1,r6g.8xlarge,reserved_1y,all_upfront,1.403,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:14.830281 +AWS,ap-southeast-1,r6g.8xlarge,reserved_1y,no_upfront,1.403,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:56.325564 +AWS,ap-southeast-1,r6g.8xlarge,reserved_1y,partial_upfront,1.403,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:40.725852 +AWS,ap-southeast-1,r6g.8xlarge,reserved_3y,all_upfront,1.403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:17.347079 +AWS,ap-southeast-1,r6g.8xlarge,reserved_3y,no_upfront,1.403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:59.261326 +AWS,ap-southeast-1,r6g.8xlarge,reserved_3y,partial_upfront,1.403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:52.265594 +AWS,ap-southeast-1,r6g.8xlarge,spot,NA,0.816883,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921143 +AWS,ap-southeast-1,r6g.large,on_demand,NA,0.1216,USD,AWS Pricing API,2025-11-30T08:59:21.887667 +AWS,ap-southeast-1,r6g.large,reserved_1y,all_upfront,0.0525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:53.252147 +AWS,ap-southeast-1,r6g.large,reserved_1y,no_upfront,0.0525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:34.612479 +AWS,ap-southeast-1,r6g.large,reserved_1y,partial_upfront,0.0525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:19.381485 +AWS,ap-southeast-1,r6g.large,reserved_3y,all_upfront,0.0525,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:56.231923 +AWS,ap-southeast-1,r6g.large,reserved_3y,no_upfront,0.0525,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:37.406678 +AWS,ap-southeast-1,r6g.large,reserved_3y,partial_upfront,0.0525,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:30.984511 +AWS,ap-southeast-1,r6g.large,spot,NA,0.051121,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920593 +AWS,ap-southeast-1,r6g.xlarge,on_demand,NA,0.2432,USD,AWS Pricing API,2025-11-30T08:58:57.226178 +AWS,ap-southeast-1,r6g.xlarge,reserved_1y,all_upfront,0.1754,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:28.645904 +AWS,ap-southeast-1,r6g.xlarge,reserved_1y,no_upfront,0.1754,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:09.824323 +AWS,ap-southeast-1,r6g.xlarge,reserved_1y,partial_upfront,0.1754,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:54.864730 +AWS,ap-southeast-1,r6g.xlarge,reserved_3y,all_upfront,0.1754,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:32.135615 +AWS,ap-southeast-1,r6g.xlarge,reserved_3y,no_upfront,0.1754,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:12.422644 +AWS,ap-southeast-1,r6g.xlarge,reserved_3y,partial_upfront,0.1754,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:06.629737 +AWS,ap-southeast-1,r6g.xlarge,spot,NA,0.103616,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919925 +AWS,ap-southeast-1,r6gd.12xlarge,on_demand,NA,3.336,USD,AWS Pricing API,2025-11-30T08:59:54.166566 +AWS,ap-southeast-1,r6gd.12xlarge,reserved_1y,all_upfront,2.257763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:25.241218 +AWS,ap-southeast-1,r6gd.12xlarge,reserved_1y,no_upfront,2.257763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:06.850434 +AWS,ap-southeast-1,r6gd.12xlarge,reserved_1y,partial_upfront,2.257763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:51.260161 +AWS,ap-southeast-1,r6gd.12xlarge,reserved_3y,all_upfront,0.752588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:27.549393 +AWS,ap-southeast-1,r6gd.12xlarge,reserved_3y,no_upfront,0.752588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:09.879544 +AWS,ap-southeast-1,r6gd.12xlarge,reserved_3y,partial_upfront,0.752588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:02.681465 +AWS,ap-southeast-1,r6gd.12xlarge,spot,NA,1.342412,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921403 +AWS,ap-southeast-1,r6gd.16xlarge,on_demand,NA,4.448,USD,AWS Pricing API,2025-11-30T08:59:20.310782 +AWS,ap-southeast-1,r6gd.16xlarge,reserved_1y,all_upfront,3.584128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:51.756459 +AWS,ap-southeast-1,r6gd.16xlarge,reserved_1y,no_upfront,3.584128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:33.113552 +AWS,ap-southeast-1,r6gd.16xlarge,reserved_1y,partial_upfront,3.584128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:17.902426 +AWS,ap-southeast-1,r6gd.16xlarge,reserved_3y,all_upfront,1.792043,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:54.766453 +AWS,ap-southeast-1,r6gd.16xlarge,reserved_3y,no_upfront,1.792043,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:35.888889 +AWS,ap-southeast-1,r6gd.16xlarge,reserved_3y,partial_upfront,1.792043,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:29.499935 +AWS,ap-southeast-1,r6gd.16xlarge,spot,NA,1.850567,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920551 +AWS,ap-southeast-1,r6gd.2xlarge,on_demand,NA,0.556,USD,AWS Pricing API,2025-11-30T08:58:58.712018 +AWS,ap-southeast-1,r6gd.2xlarge,reserved_1y,all_upfront,0.448073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:30.126387 +AWS,ap-southeast-1,r6gd.2xlarge,reserved_1y,no_upfront,0.448073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:11.336902 +AWS,ap-southeast-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.448073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:56.352594 +AWS,ap-southeast-1,r6gd.2xlarge,reserved_3y,all_upfront,0.224024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:33.596757 +AWS,ap-southeast-1,r6gd.2xlarge,reserved_3y,no_upfront,0.224024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:13.941700 +AWS,ap-southeast-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.224024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:08.117702 +AWS,ap-southeast-1,r6gd.2xlarge,spot,NA,0.232199,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919958 +AWS,ap-southeast-1,r6gd.4xlarge,on_demand,NA,1.112,USD,AWS Pricing API,2025-11-30T08:59:05.277165 +AWS,ap-southeast-1,r6gd.4xlarge,reserved_1y,all_upfront,0.768018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:36.729793 +AWS,ap-southeast-1,r6gd.4xlarge,reserved_1y,no_upfront,0.768018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:17.889340 +AWS,ap-southeast-1,r6gd.4xlarge,reserved_1y,partial_upfront,0.768018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:02.872054 +AWS,ap-southeast-1,r6gd.4xlarge,reserved_3y,all_upfront,0.512006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:40.000759 +AWS,ap-southeast-1,r6gd.4xlarge,reserved_3y,no_upfront,0.512006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:20.529899 +AWS,ap-southeast-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.512006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:14.548969 +AWS,ap-southeast-1,r6gd.4xlarge,spot,NA,0.417699,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920170 +AWS,ap-southeast-1,r6gd.8xlarge,on_demand,NA,2.224,USD,AWS Pricing API,2025-11-30T08:58:59.522415 +AWS,ap-southeast-1,r6gd.8xlarge,reserved_1y,all_upfront,1.792064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:30.936543 +AWS,ap-southeast-1,r6gd.8xlarge,reserved_1y,no_upfront,1.792064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:12.154403 +AWS,ap-southeast-1,r6gd.8xlarge,reserved_1y,partial_upfront,1.792064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:57.154961 +AWS,ap-southeast-1,r6gd.8xlarge,reserved_3y,all_upfront,0.896021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:34.392920 +AWS,ap-southeast-1,r6gd.8xlarge,reserved_3y,no_upfront,0.896021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:14.762941 +AWS,ap-southeast-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.896021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:08.923216 +AWS,ap-southeast-1,r6gd.8xlarge,spot,NA,0.977377,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920015 +AWS,ap-southeast-1,r6gd.large,on_demand,NA,0.139,USD,AWS Pricing API,2025-11-30T08:59:35.416712 +AWS,ap-southeast-1,r6gd.large,reserved_1y,all_upfront,0.084009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:06.721097 +AWS,ap-southeast-1,r6gd.large,reserved_1y,no_upfront,0.084009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:48.139155 +AWS,ap-southeast-1,r6gd.large,reserved_1y,partial_upfront,0.084009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:32.615547 +AWS,ap-southeast-1,r6gd.large,reserved_3y,all_upfront,0.056003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:09.282925 +AWS,ap-southeast-1,r6gd.large,reserved_3y,no_upfront,0.056003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:50.998905 +AWS,ap-southeast-1,r6gd.large,reserved_3y,partial_upfront,0.056003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:44.204475 +AWS,ap-southeast-1,r6gd.large,spot,NA,0.058339,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920952 +AWS,ap-southeast-1,r6gd.xlarge,on_demand,NA,0.278,USD,AWS Pricing API,2025-11-30T08:59:19.223861 +AWS,ap-southeast-1,r6gd.xlarge,reserved_1y,all_upfront,0.1764,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:50.678674 +AWS,ap-southeast-1,r6gd.xlarge,reserved_1y,no_upfront,0.1764,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:32.008394 +AWS,ap-southeast-1,r6gd.xlarge,reserved_1y,partial_upfront,0.1764,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:16.819248 +AWS,ap-southeast-1,r6gd.xlarge,reserved_3y,all_upfront,0.1764,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:53.712127 +AWS,ap-southeast-1,r6gd.xlarge,reserved_3y,no_upfront,0.1764,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:34.749998 +AWS,ap-southeast-1,r6gd.xlarge,reserved_3y,partial_upfront,0.1764,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:28.423067 +AWS,ap-southeast-1,r6gd.xlarge,spot,NA,0.119302,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920520 +AWS,ap-southeast-1,r6i.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T08:59:59.871557 +AWS,ap-southeast-1,r6i.12xlarge,reserved_1y,all_upfront,2.298207,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:30.933685 +AWS,ap-southeast-1,r6i.12xlarge,reserved_1y,no_upfront,2.298207,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:12.582693 +AWS,ap-southeast-1,r6i.12xlarge,reserved_1y,partial_upfront,2.298207,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:56.896007 +AWS,ap-southeast-1,r6i.12xlarge,reserved_3y,all_upfront,1.532149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:33.125476 +AWS,ap-southeast-1,r6i.12xlarge,reserved_3y,no_upfront,1.532149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:15.660345 +AWS,ap-southeast-1,r6i.12xlarge,reserved_3y,partial_upfront,1.532149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:08.325970 +AWS,ap-southeast-1,r6i.12xlarge,spot,NA,1.448727,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921551 +AWS,ap-southeast-1,r6i.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T08:59:07.967037 +AWS,ap-southeast-1,r6i.16xlarge,reserved_1y,all_upfront,3.289041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:39.427122 +AWS,ap-southeast-1,r6i.16xlarge,reserved_1y,no_upfront,3.289041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:20.625301 +AWS,ap-southeast-1,r6i.16xlarge,reserved_1y,partial_upfront,3.289041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:05.577795 +AWS,ap-southeast-1,r6i.16xlarge,reserved_3y,all_upfront,1.096347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:42.655563 +AWS,ap-southeast-1,r6i.16xlarge,reserved_3y,no_upfront,1.096347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:23.269013 +AWS,ap-southeast-1,r6i.16xlarge,reserved_3y,partial_upfront,1.096347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:17.243609 +AWS,ap-southeast-1,r6i.16xlarge,spot,NA,1.777159,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920210 +AWS,ap-southeast-1,r6i.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T08:59:14.343711 +AWS,ap-southeast-1,r6i.24xlarge,reserved_1y,all_upfront,5.28595,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:45.815013 +AWS,ap-southeast-1,r6i.24xlarge,reserved_1y,no_upfront,5.28595,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:27.074840 +AWS,ap-southeast-1,r6i.24xlarge,reserved_1y,partial_upfront,5.28595,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:11.935656 +AWS,ap-southeast-1,r6i.24xlarge,reserved_3y,all_upfront,5.28595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:48.916664 +AWS,ap-southeast-1,r6i.24xlarge,reserved_3y,no_upfront,5.28595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:29.774206 +AWS,ap-southeast-1,r6i.24xlarge,reserved_3y,partial_upfront,5.28595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:23.582109 +AWS,ap-southeast-1,r6i.24xlarge,spot,NA,2.895275,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920369 +AWS,ap-southeast-1,r6i.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T09:00:03.440785 +AWS,ap-southeast-1,r6i.2xlarge,reserved_1y,all_upfront,0.4405,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:34.447753 +AWS,ap-southeast-1,r6i.2xlarge,reserved_1y,no_upfront,0.4405,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:16.121651 +AWS,ap-southeast-1,r6i.2xlarge,reserved_1y,partial_upfront,0.4405,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:00.393752 +AWS,ap-southeast-1,r6i.2xlarge,reserved_3y,all_upfront,0.4405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:36.561359 +AWS,ap-southeast-1,r6i.2xlarge,reserved_3y,no_upfront,0.4405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:19.265921 +AWS,ap-southeast-1,r6i.2xlarge,reserved_3y,partial_upfront,0.4405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:11.817047 +AWS,ap-southeast-1,r6i.2xlarge,spot,NA,0.284356,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921614 +AWS,ap-southeast-1,r6i.32xlarge,on_demand,NA,9.728,USD,AWS Pricing API,2025-11-30T08:59:08.101127 +AWS,ap-southeast-1,r6i.32xlarge,reserved_1y,all_upfront,13.813927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:39.563371 +AWS,ap-southeast-1,r6i.32xlarge,reserved_1y,no_upfront,13.813927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:20.760137 +AWS,ap-southeast-1,r6i.32xlarge,reserved_1y,partial_upfront,13.813927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:05.714355 +AWS,ap-southeast-1,r6i.32xlarge,reserved_3y,all_upfront,4.604642,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:42.787937 +AWS,ap-southeast-1,r6i.32xlarge,reserved_3y,no_upfront,4.604642,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:23.419957 +AWS,ap-southeast-1,r6i.32xlarge,reserved_3y,partial_upfront,4.604642,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:17.378812 +AWS,ap-southeast-1,r6i.32xlarge,spot,NA,3.609637,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920230 +AWS,ap-southeast-1,r6i.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T08:59:29.602884 +AWS,ap-southeast-1,r6i.4xlarge,reserved_1y,all_upfront,1.726712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:00.893646 +AWS,ap-southeast-1,r6i.4xlarge,reserved_1y,no_upfront,1.726712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:42.315277 +AWS,ap-southeast-1,r6i.4xlarge,reserved_1y,partial_upfront,1.726712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:26.953935 +AWS,ap-southeast-1,r6i.4xlarge,reserved_3y,all_upfront,0.575571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:03.697509 +AWS,ap-southeast-1,r6i.4xlarge,reserved_3y,no_upfront,0.575571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:45.155105 +AWS,ap-southeast-1,r6i.4xlarge,reserved_3y,partial_upfront,0.575571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:38.496100 +AWS,ap-southeast-1,r6i.4xlarge,spot,NA,0.562542,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920816 +AWS,ap-southeast-1,r6i.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T08:59:34.056594 +AWS,ap-southeast-1,r6i.8xlarge,reserved_1y,all_upfront,2.880479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:05.368669 +AWS,ap-southeast-1,r6i.8xlarge,reserved_1y,no_upfront,2.880479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:46.761419 +AWS,ap-southeast-1,r6i.8xlarge,reserved_1y,partial_upfront,2.880479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:31.277178 +AWS,ap-southeast-1,r6i.8xlarge,reserved_3y,all_upfront,0.96016,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:07.958847 +AWS,ap-southeast-1,r6i.8xlarge,reserved_3y,no_upfront,0.96016,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:49.617721 +AWS,ap-southeast-1,r6i.8xlarge,reserved_3y,partial_upfront,0.96016,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:42.860385 +AWS,ap-southeast-1,r6i.8xlarge,spot,NA,0.945833,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920919 +AWS,ap-southeast-1,r6i.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T08:59:49.891806 +AWS,ap-southeast-1,r6i.large,reserved_1y,all_upfront,0.093836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:21.026919 +AWS,ap-southeast-1,r6i.large,reserved_1y,no_upfront,0.093836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:02.627116 +AWS,ap-southeast-1,r6i.large,reserved_1y,partial_upfront,0.093836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:47.031052 +AWS,ap-southeast-1,r6i.large,reserved_3y,all_upfront,0.031279,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:23.471358 +AWS,ap-southeast-1,r6i.large,reserved_3y,no_upfront,0.031279,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:05.632550 +AWS,ap-southeast-1,r6i.large,reserved_3y,partial_upfront,0.031279,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:58.502660 +AWS,ap-southeast-1,r6i.large,spot,NA,0.062016,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921324 +AWS,ap-southeast-1,r6i.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T08:59:11.485719 +AWS,ap-southeast-1,r6i.xlarge,reserved_1y,all_upfront,0.22025,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:42.963368 +AWS,ap-southeast-1,r6i.xlarge,reserved_1y,no_upfront,0.22025,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:24.210764 +AWS,ap-southeast-1,r6i.xlarge,reserved_1y,partial_upfront,0.22025,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:09.098090 +AWS,ap-southeast-1,r6i.xlarge,reserved_3y,all_upfront,0.22025,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:46.125019 +AWS,ap-southeast-1,r6i.xlarge,reserved_3y,no_upfront,0.22025,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:26.872852 +AWS,ap-southeast-1,r6i.xlarge,reserved_3y,partial_upfront,0.22025,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:20.757509 +AWS,ap-southeast-1,r6i.xlarge,spot,NA,0.127827,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920303 +AWS,ap-southeast-1,r6id.12xlarge,on_demand,NA,4.3848,USD,AWS Pricing API,2025-11-30T09:00:03.853046 +AWS,ap-southeast-1,r6id.12xlarge,reserved_1y,all_upfront,4.946005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:34.866999 +AWS,ap-southeast-1,r6id.12xlarge,reserved_1y,no_upfront,4.946005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:16.536817 +AWS,ap-southeast-1,r6id.12xlarge,reserved_1y,partial_upfront,4.946005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:00.799888 +AWS,ap-southeast-1,r6id.12xlarge,reserved_3y,all_upfront,1.648668,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:36.957119 +AWS,ap-southeast-1,r6id.12xlarge,reserved_3y,no_upfront,1.648668,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:19.690016 +AWS,ap-southeast-1,r6id.12xlarge,reserved_3y,partial_upfront,1.648668,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:12.221434 +AWS,ap-southeast-1,r6id.12xlarge,spot,NA,1.531257,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921643 +AWS,ap-southeast-1,r6id.16xlarge,on_demand,NA,5.8464,USD,AWS Pricing API,2025-11-30T08:59:46.761774 +AWS,ap-southeast-1,r6id.16xlarge,reserved_1y,all_upfront,4.24186,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:17.938988 +AWS,ap-southeast-1,r6id.16xlarge,reserved_1y,no_upfront,4.24186,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:59.456460 +AWS,ap-southeast-1,r6id.16xlarge,reserved_1y,partial_upfront,4.24186,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:43.932284 +AWS,ap-southeast-1,r6id.16xlarge,reserved_3y,all_upfront,4.24186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:20.420838 +AWS,ap-southeast-1,r6id.16xlarge,reserved_3y,no_upfront,4.24186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:02.458154 +AWS,ap-southeast-1,r6id.16xlarge,reserved_3y,partial_upfront,4.24186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:55.380359 +AWS,ap-southeast-1,r6id.16xlarge,spot,NA,2.298244,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921240 +AWS,ap-southeast-1,r6id.24xlarge,on_demand,NA,8.7696,USD,AWS Pricing API,2025-11-30T08:58:58.987673 +AWS,ap-southeast-1,r6id.24xlarge,reserved_1y,all_upfront,7.015678,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:30.402929 +AWS,ap-southeast-1,r6id.24xlarge,reserved_1y,no_upfront,7.015678,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:11.609710 +AWS,ap-southeast-1,r6id.24xlarge,reserved_1y,partial_upfront,7.015678,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:56.621432 +AWS,ap-southeast-1,r6id.24xlarge,reserved_3y,all_upfront,3.507839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:33.861946 +AWS,ap-southeast-1,r6id.24xlarge,reserved_3y,no_upfront,3.507839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:14.217284 +AWS,ap-southeast-1,r6id.24xlarge,reserved_3y,partial_upfront,3.507839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:08.383875 +AWS,ap-southeast-1,r6id.24xlarge,spot,NA,3.134601,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919981 +AWS,ap-southeast-1,r6id.2xlarge,on_demand,NA,0.7308,USD,AWS Pricing API,2025-11-30T08:59:49.480537 +AWS,ap-southeast-1,r6id.2xlarge,reserved_1y,all_upfront,0.438532,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:20.620541 +AWS,ap-southeast-1,r6id.2xlarge,reserved_1y,no_upfront,0.438532,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:02.216755 +AWS,ap-southeast-1,r6id.2xlarge,reserved_1y,partial_upfront,0.438532,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:46.626583 +AWS,ap-southeast-1,r6id.2xlarge,reserved_3y,all_upfront,0.292337,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:23.076985 +AWS,ap-southeast-1,r6id.2xlarge,reserved_3y,no_upfront,0.292337,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:05.218971 +AWS,ap-southeast-1,r6id.2xlarge,reserved_3y,partial_upfront,0.292337,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:58.096299 +AWS,ap-southeast-1,r6id.2xlarge,spot,NA,0.380445,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921297 +AWS,ap-southeast-1,r6id.32xlarge,on_demand,NA,11.6928,USD,AWS Pricing API,2025-11-30T08:59:41.285490 +AWS,ap-southeast-1,r6id.32xlarge,reserved_1y,all_upfront,9.354199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:12.538149 +AWS,ap-southeast-1,r6id.32xlarge,reserved_1y,no_upfront,9.354199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:54.013976 +AWS,ap-southeast-1,r6id.32xlarge,reserved_1y,partial_upfront,9.354199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:38.413898 +AWS,ap-southeast-1,r6id.32xlarge,reserved_3y,all_upfront,4.677106,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:15.099489 +AWS,ap-southeast-1,r6id.32xlarge,reserved_3y,no_upfront,4.677106,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:56.931775 +AWS,ap-southeast-1,r6id.32xlarge,reserved_3y,partial_upfront,4.677106,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:49.995112 +AWS,ap-southeast-1,r6id.32xlarge,spot,NA,4.221514,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921107 +AWS,ap-southeast-1,r6id.4xlarge,on_demand,NA,1.4616,USD,AWS Pricing API,2025-11-30T08:59:35.961831 +AWS,ap-southeast-1,r6id.4xlarge,reserved_1y,all_upfront,1.06046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:07.262007 +AWS,ap-southeast-1,r6id.4xlarge,reserved_1y,no_upfront,1.06046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:48.689355 +AWS,ap-southeast-1,r6id.4xlarge,reserved_1y,partial_upfront,1.06046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:33.150308 +AWS,ap-southeast-1,r6id.4xlarge,reserved_3y,all_upfront,1.06046,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:09.819663 +AWS,ap-southeast-1,r6id.4xlarge,reserved_3y,no_upfront,1.06046,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:51.551181 +AWS,ap-southeast-1,r6id.4xlarge,reserved_3y,partial_upfront,1.06046,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:44.740050 +AWS,ap-southeast-1,r6id.4xlarge,spot,NA,0.643803,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920964 +AWS,ap-southeast-1,r6id.8xlarge,on_demand,NA,2.9232,USD,AWS Pricing API,2025-11-30T08:58:58.576779 +AWS,ap-southeast-1,r6id.8xlarge,reserved_1y,all_upfront,2.338521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:29.990384 +AWS,ap-southeast-1,r6id.8xlarge,reserved_1y,no_upfront,2.338521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:11.200929 +AWS,ap-southeast-1,r6id.8xlarge,reserved_1y,partial_upfront,2.338521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:56.216141 +AWS,ap-southeast-1,r6id.8xlarge,reserved_3y,all_upfront,1.169267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:33.464336 +AWS,ap-southeast-1,r6id.8xlarge,reserved_3y,no_upfront,1.169267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:13.804750 +AWS,ap-southeast-1,r6id.8xlarge,reserved_3y,partial_upfront,1.169267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:07.976118 +AWS,ap-southeast-1,r6id.8xlarge,spot,NA,1.151658,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919972 +AWS,ap-southeast-1,r6id.large,on_demand,NA,0.1827,USD,AWS Pricing API,2025-11-30T08:59:23.696551 +AWS,ap-southeast-1,r6id.large,reserved_1y,all_upfront,0.20605,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:55.092775 +AWS,ap-southeast-1,r6id.large,reserved_1y,no_upfront,0.20605,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:36.384566 +AWS,ap-southeast-1,r6id.large,reserved_1y,partial_upfront,0.20605,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:21.139114 +AWS,ap-southeast-1,r6id.large,reserved_3y,all_upfront,0.068683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:57.947790 +AWS,ap-southeast-1,r6id.large,reserved_3y,no_upfront,0.068683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:39.215530 +AWS,ap-southeast-1,r6id.large,reserved_3y,partial_upfront,0.068683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:32.722723 +AWS,ap-southeast-1,r6id.large,spot,NA,0.07033,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920647 +AWS,ap-southeast-1,r6id.xlarge,on_demand,NA,0.3654,USD,AWS Pricing API,2025-11-30T09:00:01.217424 +AWS,ap-southeast-1,r6id.xlarge,reserved_1y,all_upfront,0.21484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:32.277904 +AWS,ap-southeast-1,r6id.xlarge,reserved_1y,no_upfront,0.21484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:13.943162 +AWS,ap-southeast-1,r6id.xlarge,reserved_1y,partial_upfront,0.21484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:58.240224 +AWS,ap-southeast-1,r6id.xlarge,reserved_3y,all_upfront,0.071613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:34.453121 +AWS,ap-southeast-1,r6id.xlarge,reserved_3y,no_upfront,0.071613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:17.066769 +AWS,ap-southeast-1,r6id.xlarge,reserved_3y,partial_upfront,0.071613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:09.671860 +AWS,ap-southeast-1,r6id.xlarge,spot,NA,0.159803,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921582 +AWS,ap-southeast-1,r6idn.12xlarge,on_demand,NA,5.616,USD,AWS Pricing API,2025-11-30T08:59:21.476566 +AWS,ap-southeast-1,r6idn.12xlarge,reserved_1y,all_upfront,3.841553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:52.846685 +AWS,ap-southeast-1,r6idn.12xlarge,reserved_1y,no_upfront,3.841553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:34.202162 +AWS,ap-southeast-1,r6idn.12xlarge,reserved_1y,partial_upfront,3.841553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:18.976573 +AWS,ap-southeast-1,r6idn.12xlarge,reserved_3y,all_upfront,1.280518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:55.835577 +AWS,ap-southeast-1,r6idn.12xlarge,reserved_3y,no_upfront,1.280518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:36.987028 +AWS,ap-southeast-1,r6idn.12xlarge,reserved_3y,partial_upfront,1.280518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:30.575294 +AWS,ap-southeast-1,r6idn.12xlarge,spot,NA,1.909255,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920586 +AWS,ap-southeast-1,r6idn.16xlarge,on_demand,NA,7.488,USD,AWS Pricing API,2025-11-30T08:59:01.274171 +AWS,ap-southeast-1,r6idn.16xlarge,reserved_1y,all_upfront,5.690871,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:32.694859 +AWS,ap-southeast-1,r6idn.16xlarge,reserved_1y,no_upfront,5.690871,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:13.935657 +AWS,ap-southeast-1,r6idn.16xlarge,reserved_1y,partial_upfront,5.690871,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:58.921219 +AWS,ap-southeast-1,r6idn.16xlarge,reserved_3y,all_upfront,2.845437,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:36.109951 +AWS,ap-southeast-1,r6idn.16xlarge,reserved_3y,no_upfront,2.845437,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:16.553406 +AWS,ap-southeast-1,r6idn.16xlarge,reserved_3y,partial_upfront,2.845437,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:10.666545 +AWS,ap-southeast-1,r6idn.16xlarge,spot,NA,3.011824,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920046 +AWS,ap-southeast-1,r6idn.24xlarge,on_demand,NA,11.232,USD,AWS Pricing API,2025-11-30T08:59:28.773547 +AWS,ap-southeast-1,r6idn.24xlarge,reserved_1y,all_upfront,6.604452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:00.083047 +AWS,ap-southeast-1,r6idn.24xlarge,reserved_1y,no_upfront,6.604452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:41.497914 +AWS,ap-southeast-1,r6idn.24xlarge,reserved_1y,partial_upfront,6.604452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:26.141598 +AWS,ap-southeast-1,r6idn.24xlarge,reserved_3y,all_upfront,2.201484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:02.885135 +AWS,ap-southeast-1,r6idn.24xlarge,reserved_3y,no_upfront,2.201484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:44.327895 +AWS,ap-southeast-1,r6idn.24xlarge,reserved_3y,partial_upfront,2.201484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:37.687957 +AWS,ap-southeast-1,r6idn.24xlarge,spot,NA,4.652157,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920772 +AWS,ap-southeast-1,r6idn.2xlarge,on_demand,NA,0.936,USD,AWS Pricing API,2025-11-30T08:59:28.228874 +AWS,ap-southeast-1,r6idn.2xlarge,reserved_1y,all_upfront,0.38413,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:59.546745 +AWS,ap-southeast-1,r6idn.2xlarge,reserved_1y,no_upfront,0.38413,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:40.934662 +AWS,ap-southeast-1,r6idn.2xlarge,reserved_1y,partial_upfront,0.38413,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:25.606323 +AWS,ap-southeast-1,r6idn.2xlarge,reserved_3y,all_upfront,0.38413,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:02.349623 +AWS,ap-southeast-1,r6idn.2xlarge,reserved_3y,no_upfront,0.38413,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:43.777771 +AWS,ap-southeast-1,r6idn.2xlarge,reserved_3y,partial_upfront,0.38413,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:37.152169 +AWS,ap-southeast-1,r6idn.2xlarge,spot,NA,0.457206,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920784 +AWS,ap-southeast-1,r6idn.32xlarge,on_demand,NA,14.976,USD,AWS Pricing API,2025-11-30T08:59:58.758457 +AWS,ap-southeast-1,r6idn.32xlarge,reserved_1y,all_upfront,8.805936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:29.856327 +AWS,ap-southeast-1,r6idn.32xlarge,reserved_1y,no_upfront,8.805936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:11.490557 +AWS,ap-southeast-1,r6idn.32xlarge,reserved_1y,partial_upfront,8.805936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:55.817043 +AWS,ap-southeast-1,r6idn.32xlarge,reserved_3y,all_upfront,2.935312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:32.073542 +AWS,ap-southeast-1,r6idn.32xlarge,reserved_3y,no_upfront,2.935312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:14.554529 +AWS,ap-southeast-1,r6idn.32xlarge,reserved_3y,partial_upfront,2.935312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:07.242443 +AWS,ap-southeast-1,r6idn.32xlarge,spot,NA,6.387254,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921528 +AWS,ap-southeast-1,r6idn.4xlarge,on_demand,NA,1.872,USD,AWS Pricing API,2025-11-30T08:59:01.820492 +AWS,ap-southeast-1,r6idn.4xlarge,reserved_1y,all_upfront,1.37199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:33.232990 +AWS,ap-southeast-1,r6idn.4xlarge,reserved_1y,no_upfront,1.37199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:14.479663 +AWS,ap-southeast-1,r6idn.4xlarge,reserved_1y,partial_upfront,1.37199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:59.463255 +AWS,ap-southeast-1,r6idn.4xlarge,reserved_3y,all_upfront,1.37199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:36.638153 +AWS,ap-southeast-1,r6idn.4xlarge,reserved_3y,no_upfront,1.37199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:17.101028 +AWS,ap-southeast-1,r6idn.4xlarge,reserved_3y,partial_upfront,1.37199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:11.200309 +AWS,ap-southeast-1,r6idn.4xlarge,spot,NA,0.772924,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920042 +AWS,ap-southeast-1,r6idn.8xlarge,on_demand,NA,3.744,USD,AWS Pricing API,2025-11-30T08:59:49.754669 +AWS,ap-southeast-1,r6idn.8xlarge,reserved_1y,all_upfront,2.35872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:20.890694 +AWS,ap-southeast-1,r6idn.8xlarge,reserved_1y,no_upfront,2.35872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:02.489871 +AWS,ap-southeast-1,r6idn.8xlarge,reserved_1y,partial_upfront,2.35872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:46.897319 +AWS,ap-southeast-1,r6idn.8xlarge,reserved_3y,all_upfront,2.35872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:23.340275 +AWS,ap-southeast-1,r6idn.8xlarge,reserved_3y,no_upfront,2.35872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:05.494587 +AWS,ap-southeast-1,r6idn.8xlarge,reserved_3y,partial_upfront,2.35872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:58.368641 +AWS,ap-southeast-1,r6idn.8xlarge,spot,NA,1.551416,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921305 +AWS,ap-southeast-1,r6idn.large,on_demand,NA,0.234,USD,AWS Pricing API,2025-11-30T08:59:21.339892 +AWS,ap-southeast-1,r6idn.large,reserved_1y,all_upfront,0.1715,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:52.712855 +AWS,ap-southeast-1,r6idn.large,reserved_1y,no_upfront,0.1715,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:34.065164 +AWS,ap-southeast-1,r6idn.large,reserved_1y,partial_upfront,0.1715,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:18.843930 +AWS,ap-southeast-1,r6idn.large,reserved_3y,all_upfront,0.1715,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:55.702533 +AWS,ap-southeast-1,r6idn.large,reserved_3y,no_upfront,0.1715,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:36.846535 +AWS,ap-southeast-1,r6idn.large,reserved_3y,partial_upfront,0.1715,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:30.442696 +AWS,ap-southeast-1,r6idn.large,spot,NA,0.08435,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920597 +AWS,ap-southeast-1,r6idn.xlarge,on_demand,NA,0.468,USD,AWS Pricing API,2025-11-30T08:59:13.245390 +AWS,ap-southeast-1,r6idn.xlarge,reserved_1y,all_upfront,0.320091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:44.722218 +AWS,ap-southeast-1,r6idn.xlarge,reserved_1y,no_upfront,0.320091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:25.979933 +AWS,ap-southeast-1,r6idn.xlarge,reserved_1y,partial_upfront,0.320091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:10.849177 +AWS,ap-southeast-1,r6idn.xlarge,reserved_3y,all_upfront,0.106697,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:47.856397 +AWS,ap-southeast-1,r6idn.xlarge,reserved_3y,no_upfront,0.106697,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:28.665699 +AWS,ap-southeast-1,r6idn.xlarge,reserved_3y,partial_upfront,0.106697,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:22.506602 +AWS,ap-southeast-1,r6idn.xlarge,spot,NA,0.192731,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920377 +AWS,ap-southeast-1,r6in.12xlarge,on_demand,NA,4.99824,USD,AWS Pricing API,2025-11-30T08:59:05.945942 +AWS,ap-southeast-1,r6in.12xlarge,reserved_1y,all_upfront,4.387499,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:37.405470 +AWS,ap-southeast-1,r6in.12xlarge,reserved_1y,no_upfront,4.387499,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:18.573004 +AWS,ap-southeast-1,r6in.12xlarge,reserved_1y,partial_upfront,4.387499,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:03.548546 +AWS,ap-southeast-1,r6in.12xlarge,reserved_3y,all_upfront,2.19374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:40.657740 +AWS,ap-southeast-1,r6in.12xlarge,reserved_3y,no_upfront,2.19374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:21.212548 +AWS,ap-southeast-1,r6in.12xlarge,reserved_3y,partial_upfront,2.19374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:15.213769 +AWS,ap-southeast-1,r6in.12xlarge,spot,NA,1.88513,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920166 +AWS,ap-southeast-1,r6in.16xlarge,on_demand,NA,6.66432,USD,AWS Pricing API,2025-11-30T08:58:57.623219 +AWS,ap-southeast-1,r6in.16xlarge,reserved_1y,all_upfront,4.87728,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:29.049107 +AWS,ap-southeast-1,r6in.16xlarge,reserved_1y,no_upfront,4.87728,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:10.233529 +AWS,ap-southeast-1,r6in.16xlarge,reserved_1y,partial_upfront,4.87728,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:55.275383 +AWS,ap-southeast-1,r6in.16xlarge,reserved_3y,all_upfront,4.87728,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:32.527016 +AWS,ap-southeast-1,r6in.16xlarge,reserved_3y,no_upfront,4.87728,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:12.830077 +AWS,ap-southeast-1,r6in.16xlarge,reserved_3y,partial_upfront,4.87728,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:07.026330 +AWS,ap-southeast-1,r6in.16xlarge,spot,NA,2.42318,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919935 +AWS,ap-southeast-1,r6in.24xlarge,on_demand,NA,9.99648,USD,AWS Pricing API,2025-11-30T08:59:57.945977 +AWS,ap-southeast-1,r6in.24xlarge,reserved_1y,all_upfront,7.637298,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:29.040257 +AWS,ap-southeast-1,r6in.24xlarge,reserved_1y,no_upfront,7.637298,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:10.670588 +AWS,ap-southeast-1,r6in.24xlarge,reserved_1y,partial_upfront,7.637298,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:55.008416 +AWS,ap-southeast-1,r6in.24xlarge,reserved_3y,all_upfront,3.818653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:31.264226 +AWS,ap-southeast-1,r6in.24xlarge,reserved_3y,no_upfront,3.818653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:13.729475 +AWS,ap-southeast-1,r6in.24xlarge,reserved_3y,partial_upfront,3.818653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:06.429409 +AWS,ap-southeast-1,r6in.24xlarge,spot,NA,3.46618,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921505 +AWS,ap-southeast-1,r6in.2xlarge,on_demand,NA,0.83304,USD,AWS Pricing API,2025-11-30T09:00:00.812490 +AWS,ap-southeast-1,r6in.2xlarge,reserved_1y,all_upfront,0.60966,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:31.870941 +AWS,ap-southeast-1,r6in.2xlarge,reserved_1y,no_upfront,0.60966,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:13.533700 +AWS,ap-southeast-1,r6in.2xlarge,reserved_1y,partial_upfront,0.60966,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:57.836158 +AWS,ap-southeast-1,r6in.2xlarge,reserved_3y,all_upfront,0.60966,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:34.056893 +AWS,ap-southeast-1,r6in.2xlarge,reserved_3y,no_upfront,0.60966,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:16.659237 +AWS,ap-southeast-1,r6in.2xlarge,reserved_3y,partial_upfront,0.60966,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:09.272234 +AWS,ap-southeast-1,r6in.2xlarge,spot,NA,0.349138,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921574 +AWS,ap-southeast-1,r6in.32xlarge,on_demand,NA,13.32864,USD,AWS Pricing API,2025-11-30T08:59:41.014341 +AWS,ap-southeast-1,r6in.32xlarge,reserved_1y,all_upfront,9.75457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:12.268839 +AWS,ap-southeast-1,r6in.32xlarge,reserved_1y,no_upfront,9.75457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:53.742458 +AWS,ap-southeast-1,r6in.32xlarge,reserved_1y,partial_upfront,9.75457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:38.146843 +AWS,ap-southeast-1,r6in.32xlarge,reserved_3y,all_upfront,9.75457,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:14.836980 +AWS,ap-southeast-1,r6in.32xlarge,reserved_3y,no_upfront,9.75457,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:56.659201 +AWS,ap-southeast-1,r6in.32xlarge,reserved_3y,partial_upfront,9.75457,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:49.728102 +AWS,ap-southeast-1,r6in.32xlarge,spot,NA,4.29907,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921088 +AWS,ap-southeast-1,r6in.4xlarge,on_demand,NA,1.66608,USD,AWS Pricing API,2025-11-30T09:00:03.304837 +AWS,ap-southeast-1,r6in.4xlarge,reserved_1y,all_upfront,0.78974,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:34.314008 +AWS,ap-southeast-1,r6in.4xlarge,reserved_1y,no_upfront,0.78974,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:15.983972 +AWS,ap-southeast-1,r6in.4xlarge,reserved_1y,partial_upfront,0.78974,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:00.258313 +AWS,ap-southeast-1,r6in.4xlarge,reserved_3y,all_upfront,0.78974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:36.430785 +AWS,ap-southeast-1,r6in.4xlarge,reserved_3y,no_upfront,0.78974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:19.127903 +AWS,ap-southeast-1,r6in.4xlarge,reserved_3y,partial_upfront,0.78974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:11.684260 +AWS,ap-southeast-1,r6in.4xlarge,spot,NA,0.731099,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921627 +AWS,ap-southeast-1,r6in.8xlarge,on_demand,NA,3.33216,USD,AWS Pricing API,2025-11-30T08:59:51.357185 +AWS,ap-southeast-1,r6in.8xlarge,reserved_1y,all_upfront,2.43864,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:22.379687 +AWS,ap-southeast-1,r6in.8xlarge,reserved_1y,no_upfront,2.43864,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:04.001309 +AWS,ap-southeast-1,r6in.8xlarge,reserved_1y,partial_upfront,2.43864,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:48.426997 +AWS,ap-southeast-1,r6in.8xlarge,reserved_3y,all_upfront,2.43864,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:24.792364 +AWS,ap-southeast-1,r6in.8xlarge,reserved_3y,no_upfront,2.43864,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:07.010718 +AWS,ap-southeast-1,r6in.8xlarge,reserved_3y,partial_upfront,2.43864,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:59.845514 +AWS,ap-southeast-1,r6in.8xlarge,spot,NA,1.217053,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921336 +AWS,ap-southeast-1,r6in.large,on_demand,NA,0.20826,USD,AWS Pricing API,2025-11-30T09:00:06.024276 +AWS,ap-southeast-1,r6in.large,reserved_1y,all_upfront,0.224315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:37.054216 +AWS,ap-southeast-1,r6in.large,reserved_1y,no_upfront,0.224315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:18.699574 +AWS,ap-southeast-1,r6in.large,reserved_1y,partial_upfront,0.224315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:02.987492 +AWS,ap-southeast-1,r6in.large,reserved_3y,all_upfront,0.074772,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:39.074761 +AWS,ap-southeast-1,r6in.large,reserved_3y,no_upfront,0.074772,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:21.889775 +AWS,ap-southeast-1,r6in.large,reserved_3y,partial_upfront,0.074772,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:14.371792 +AWS,ap-southeast-1,r6in.large,spot,NA,0.07247,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921683 +AWS,ap-southeast-1,r6in.xlarge,on_demand,NA,0.41652,USD,AWS Pricing API,2025-11-30T09:00:03.718804 +AWS,ap-southeast-1,r6in.xlarge,reserved_1y,all_upfront,0.365611,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:34.728245 +AWS,ap-southeast-1,r6in.xlarge,reserved_1y,no_upfront,0.365611,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:16.398975 +AWS,ap-southeast-1,r6in.xlarge,reserved_1y,partial_upfront,0.365611,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:00.664980 +AWS,ap-southeast-1,r6in.xlarge,reserved_3y,all_upfront,0.18281,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:36.824112 +AWS,ap-southeast-1,r6in.xlarge,reserved_3y,no_upfront,0.18281,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:19.545892 +AWS,ap-southeast-1,r6in.xlarge,reserved_3y,partial_upfront,0.18281,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:12.087317 +AWS,ap-southeast-1,r6in.xlarge,spot,NA,0.182191,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921610 +AWS,ap-southeast-1,r7g.12xlarge,on_demand,NA,3.1008,USD,AWS Pricing API,2025-11-30T08:59:27.957540 +AWS,ap-southeast-1,r7g.12xlarge,reserved_1y,all_upfront,2.604082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:59.274383 +AWS,ap-southeast-1,r7g.12xlarge,reserved_1y,no_upfront,2.604082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:40.651591 +AWS,ap-southeast-1,r7g.12xlarge,reserved_1y,partial_upfront,2.604082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:25.329697 +AWS,ap-southeast-1,r7g.12xlarge,reserved_3y,all_upfront,1.302027,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:02.082382 +AWS,ap-southeast-1,r7g.12xlarge,reserved_3y,no_upfront,1.302027,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:43.497578 +AWS,ap-southeast-1,r7g.12xlarge,reserved_3y,partial_upfront,1.302027,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:36.882832 +AWS,ap-southeast-1,r7g.12xlarge,spot,NA,1.305684,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920729 +AWS,ap-southeast-1,r7g.16xlarge,on_demand,NA,4.1344,USD,AWS Pricing API,2025-11-30T08:59:12.956531 +AWS,ap-southeast-1,r7g.16xlarge,reserved_1y,all_upfront,3.471995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:44.448301 +AWS,ap-southeast-1,r7g.16xlarge,reserved_1y,no_upfront,3.471995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:25.708006 +AWS,ap-southeast-1,r7g.16xlarge,reserved_1y,partial_upfront,3.471995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:10.577021 +AWS,ap-southeast-1,r7g.16xlarge,reserved_3y,all_upfront,1.735998,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:47.593834 +AWS,ap-southeast-1,r7g.16xlarge,reserved_3y,no_upfront,1.735998,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:28.389180 +AWS,ap-southeast-1,r7g.16xlarge,reserved_3y,partial_upfront,1.735998,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:22.235648 +AWS,ap-southeast-1,r7g.16xlarge,spot,NA,1.662094,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920335 +AWS,ap-southeast-1,r7g.2xlarge,on_demand,NA,0.5168,USD,AWS Pricing API,2025-11-30T08:59:21.203138 +AWS,ap-southeast-1,r7g.2xlarge,reserved_1y,all_upfront,0.3744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:52.575252 +AWS,ap-southeast-1,r7g.2xlarge,reserved_1y,no_upfront,0.3744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:33.929022 +AWS,ap-southeast-1,r7g.2xlarge,reserved_1y,partial_upfront,0.3744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:18.709824 +AWS,ap-southeast-1,r7g.2xlarge,reserved_3y,all_upfront,0.3744,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:55.569980 +AWS,ap-southeast-1,r7g.2xlarge,reserved_3y,no_upfront,0.3744,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:36.709022 +AWS,ap-southeast-1,r7g.2xlarge,reserved_3y,partial_upfront,0.3744,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:30.308822 +AWS,ap-southeast-1,r7g.2xlarge,spot,NA,0.226753,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920562 +AWS,ap-southeast-1,r7g.4xlarge,on_demand,NA,1.0336,USD,AWS Pricing API,2025-11-30T08:59:11.619474 +AWS,ap-southeast-1,r7g.4xlarge,reserved_1y,all_upfront,0.638128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:43.099545 +AWS,ap-southeast-1,r7g.4xlarge,reserved_1y,no_upfront,0.638128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:24.348693 +AWS,ap-southeast-1,r7g.4xlarge,reserved_1y,partial_upfront,0.638128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:09.232407 +AWS,ap-southeast-1,r7g.4xlarge,reserved_3y,all_upfront,0.212709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:46.259033 +AWS,ap-southeast-1,r7g.4xlarge,reserved_3y,no_upfront,0.212709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:27.021285 +AWS,ap-southeast-1,r7g.4xlarge,reserved_3y,partial_upfront,0.212709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:20.893029 +AWS,ap-southeast-1,r7g.4xlarge,spot,NA,0.432449,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920309 +AWS,ap-southeast-1,r7g.8xlarge,on_demand,NA,2.0672,USD,AWS Pricing API,2025-11-30T08:59:44.025741 +AWS,ap-southeast-1,r7g.8xlarge,reserved_1y,all_upfront,1.302342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:15.235503 +AWS,ap-southeast-1,r7g.8xlarge,reserved_1y,no_upfront,1.302342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:56.732811 +AWS,ap-southeast-1,r7g.8xlarge,reserved_1y,partial_upfront,1.302342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:41.135638 +AWS,ap-southeast-1,r7g.8xlarge,reserved_3y,all_upfront,0.868247,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:17.745811 +AWS,ap-southeast-1,r7g.8xlarge,reserved_3y,no_upfront,0.868247,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:59.673486 +AWS,ap-southeast-1,r7g.8xlarge,reserved_3y,partial_upfront,0.868247,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:52.675994 +AWS,ap-southeast-1,r7g.8xlarge,spot,NA,0.911111,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921147 +AWS,ap-southeast-1,r7g.large,on_demand,NA,0.1292,USD,AWS Pricing API,2025-11-30T08:59:38.429639 +AWS,ap-southeast-1,r7g.large,reserved_1y,all_upfront,0.079795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:09.694131 +AWS,ap-southeast-1,r7g.large,reserved_1y,no_upfront,0.079795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:51.166750 +AWS,ap-southeast-1,r7g.large,reserved_1y,partial_upfront,0.079795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:35.587005 +AWS,ap-southeast-1,r7g.large,reserved_3y,all_upfront,0.026598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:12.220578 +AWS,ap-southeast-1,r7g.large,reserved_3y,no_upfront,0.026598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:54.035666 +AWS,ap-southeast-1,r7g.large,reserved_3y,partial_upfront,0.026598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:47.179535 +AWS,ap-southeast-1,r7g.large,spot,NA,0.050472,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921045 +AWS,ap-southeast-1,r7g.xlarge,on_demand,NA,0.2584,USD,AWS Pricing API,2025-11-30T08:59:40.877686 +AWS,ap-southeast-1,r7g.xlarge,reserved_1y,all_upfront,0.217085,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:12.134560 +AWS,ap-southeast-1,r7g.xlarge,reserved_1y,no_upfront,0.217085,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:53.607760 +AWS,ap-southeast-1,r7g.xlarge,reserved_1y,partial_upfront,0.217085,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:38.007875 +AWS,ap-southeast-1,r7g.xlarge,reserved_3y,all_upfront,0.108562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:14.705073 +AWS,ap-southeast-1,r7g.xlarge,reserved_3y,no_upfront,0.108562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:56.513813 +AWS,ap-southeast-1,r7g.xlarge,reserved_3y,partial_upfront,0.108562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:49.595096 +AWS,ap-southeast-1,r7g.xlarge,spot,NA,0.101726,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921111 +AWS,ap-southeast-1,r7gd.12xlarge,on_demand,NA,3.9463,USD,AWS Pricing API,2025-11-30T09:00:02.760710 +AWS,ap-southeast-1,r7gd.12xlarge,reserved_1y,all_upfront,2.672489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:33.777983 +AWS,ap-southeast-1,r7gd.12xlarge,reserved_1y,no_upfront,2.672489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:15.446717 +AWS,ap-southeast-1,r7gd.12xlarge,reserved_1y,partial_upfront,2.672489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:59.722248 +AWS,ap-southeast-1,r7gd.12xlarge,reserved_3y,all_upfront,0.89083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:35.901359 +AWS,ap-southeast-1,r7gd.12xlarge,reserved_3y,no_upfront,0.89083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:18.572630 +AWS,ap-southeast-1,r7gd.12xlarge,reserved_3y,partial_upfront,0.89083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:11.146768 +AWS,ap-southeast-1,r7gd.12xlarge,spot,NA,1.486713,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921623 +AWS,ap-southeast-1,r7gd.16xlarge,on_demand,NA,5.2618,USD,AWS Pricing API,2025-11-30T08:59:58.081421 +AWS,ap-southeast-1,r7gd.16xlarge,reserved_1y,all_upfront,3.563242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:29.177534 +AWS,ap-southeast-1,r7gd.16xlarge,reserved_1y,no_upfront,3.563242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:10.805253 +AWS,ap-southeast-1,r7gd.16xlarge,reserved_1y,partial_upfront,3.563242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:55.143032 +AWS,ap-southeast-1,r7gd.16xlarge,reserved_3y,all_upfront,1.187747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:31.402770 +AWS,ap-southeast-1,r7gd.16xlarge,reserved_3y,no_upfront,1.187747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:13.864735 +AWS,ap-southeast-1,r7gd.16xlarge,reserved_3y,partial_upfront,1.187747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:06.565726 +AWS,ap-southeast-1,r7gd.16xlarge,spot,NA,2.13948,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921485 +AWS,ap-southeast-1,r7gd.2xlarge,on_demand,NA,0.6577,USD,AWS Pricing API,2025-11-30T08:59:26.881434 +AWS,ap-southeast-1,r7gd.2xlarge,reserved_1y,all_upfront,0.454483,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:58.190389 +AWS,ap-southeast-1,r7gd.2xlarge,reserved_1y,no_upfront,0.454483,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:39.552076 +AWS,ap-southeast-1,r7gd.2xlarge,reserved_1y,partial_upfront,0.454483,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:24.251262 +AWS,ap-southeast-1,r7gd.2xlarge,reserved_3y,all_upfront,0.302961,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:01.012449 +AWS,ap-southeast-1,r7gd.2xlarge,reserved_3y,no_upfront,0.302961,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:42.389448 +AWS,ap-southeast-1,r7gd.2xlarge,reserved_3y,partial_upfront,0.302961,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:35.812136 +AWS,ap-southeast-1,r7gd.2xlarge,spot,NA,0.314345,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920725 +AWS,ap-southeast-1,r7gd.4xlarge,on_demand,NA,1.3154,USD,AWS Pricing API,2025-11-30T08:59:47.448347 +AWS,ap-southeast-1,r7gd.4xlarge,reserved_1y,all_upfront,1.845434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:18.613373 +AWS,ap-southeast-1,r7gd.4xlarge,reserved_1y,no_upfront,1.845434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:00.154393 +AWS,ap-southeast-1,r7gd.4xlarge,reserved_1y,partial_upfront,1.845434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:44.612553 +AWS,ap-southeast-1,r7gd.4xlarge,reserved_3y,all_upfront,0.615145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:21.084631 +AWS,ap-southeast-1,r7gd.4xlarge,reserved_3y,no_upfront,0.615145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:03.158309 +AWS,ap-southeast-1,r7gd.4xlarge,reserved_3y,partial_upfront,0.615145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:56.069064 +AWS,ap-southeast-1,r7gd.4xlarge,spot,NA,0.574542,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921285 +AWS,ap-southeast-1,r7gd.8xlarge,on_demand,NA,2.6309,USD,AWS Pricing API,2025-11-30T08:59:41.422464 +AWS,ap-southeast-1,r7gd.8xlarge,reserved_1y,all_upfront,1.546918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:12.673353 +AWS,ap-southeast-1,r7gd.8xlarge,reserved_1y,no_upfront,1.546918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:54.150694 +AWS,ap-southeast-1,r7gd.8xlarge,reserved_1y,partial_upfront,1.546918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:38.546803 +AWS,ap-southeast-1,r7gd.8xlarge,reserved_3y,all_upfront,0.515639,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:15.231166 +AWS,ap-southeast-1,r7gd.8xlarge,reserved_3y,no_upfront,0.515639,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:57.068582 +AWS,ap-southeast-1,r7gd.8xlarge,reserved_3y,partial_upfront,0.515639,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:50.130734 +AWS,ap-southeast-1,r7gd.8xlarge,spot,NA,1.193536,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921095 +AWS,ap-southeast-1,r7gd.large,on_demand,NA,0.1644,USD,AWS Pricing API,2025-11-30T08:59:05.411046 +AWS,ap-southeast-1,r7gd.large,reserved_1y,all_upfront,0.096689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:36.866865 +AWS,ap-southeast-1,r7gd.large,reserved_1y,no_upfront,0.096689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:18.026522 +AWS,ap-southeast-1,r7gd.large,reserved_1y,partial_upfront,0.096689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:03.008599 +AWS,ap-southeast-1,r7gd.large,reserved_3y,all_upfront,0.03223,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:40.133418 +AWS,ap-southeast-1,r7gd.large,reserved_3y,no_upfront,0.03223,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:20.667989 +AWS,ap-southeast-1,r7gd.large,reserved_3y,partial_upfront,0.03223,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:14.683123 +AWS,ap-southeast-1,r7gd.large,spot,NA,0.06345,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920162 +AWS,ap-southeast-1,r7gd.xlarge,on_demand,NA,0.3289,USD,AWS Pricing API,2025-11-30T08:59:14.886899 +AWS,ap-southeast-1,r7gd.xlarge,reserved_1y,all_upfront,0.19733,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:46.356675 +AWS,ap-southeast-1,r7gd.xlarge,reserved_1y,no_upfront,0.19733,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:27.621640 +AWS,ap-southeast-1,r7gd.xlarge,reserved_1y,partial_upfront,0.19733,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:12.479637 +AWS,ap-southeast-1,r7gd.xlarge,reserved_3y,all_upfront,0.131577,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:49.450956 +AWS,ap-southeast-1,r7gd.xlarge,reserved_3y,no_upfront,0.131577,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:30.330818 +AWS,ap-southeast-1,r7gd.xlarge,reserved_3y,partial_upfront,0.131577,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:24.114589 +AWS,ap-southeast-1,r7gd.xlarge,spot,NA,0.145562,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920393 +AWS,ap-southeast-1,r7i.12xlarge,on_demand,NA,3.8304,USD,AWS Pricing API,2025-11-30T08:59:50.441028 +AWS,ap-southeast-1,r7i.12xlarge,reserved_1y,all_upfront,2.77512,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:21.563832 +AWS,ap-southeast-1,r7i.12xlarge,reserved_1y,no_upfront,2.77512,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:03.178882 +AWS,ap-southeast-1,r7i.12xlarge,reserved_1y,partial_upfront,2.77512,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:47.595836 +AWS,ap-southeast-1,r7i.12xlarge,reserved_3y,all_upfront,2.77512,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:23.998030 +AWS,ap-southeast-1,r7i.12xlarge,reserved_3y,no_upfront,2.77512,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:06.182672 +AWS,ap-southeast-1,r7i.12xlarge,reserved_3y,partial_upfront,2.77512,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:59.034919 +AWS,ap-southeast-1,r7i.12xlarge,spot,NA,1.471935,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921344 +AWS,ap-southeast-1,r7i.16xlarge,on_demand,NA,5.1072,USD,AWS Pricing API,2025-11-30T08:59:48.524593 +AWS,ap-southeast-1,r7i.16xlarge,reserved_1y,all_upfront,3.70017,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:19.683273 +AWS,ap-southeast-1,r7i.16xlarge,reserved_1y,no_upfront,3.70017,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:01.251250 +AWS,ap-southeast-1,r7i.16xlarge,reserved_1y,partial_upfront,3.70017,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:45.690045 +AWS,ap-southeast-1,r7i.16xlarge,reserved_3y,all_upfront,3.70017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:22.146301 +AWS,ap-southeast-1,r7i.16xlarge,reserved_3y,no_upfront,3.70017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:04.257133 +AWS,ap-southeast-1,r7i.16xlarge,reserved_3y,partial_upfront,3.70017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:57.154126 +AWS,ap-southeast-1,r7i.16xlarge,spot,NA,1.906639,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921273 +AWS,ap-southeast-1,r7i.24xlarge,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T08:59:45.245730 +AWS,ap-southeast-1,r7i.24xlarge,reserved_1y,all_upfront,5.06762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:16.452601 +AWS,ap-southeast-1,r7i.24xlarge,reserved_1y,no_upfront,5.06762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:57.952965 +AWS,ap-southeast-1,r7i.24xlarge,reserved_1y,partial_upfront,5.06762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:42.435915 +AWS,ap-southeast-1,r7i.24xlarge,reserved_3y,all_upfront,5.06762,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:18.954787 +AWS,ap-southeast-1,r7i.24xlarge,reserved_3y,no_upfront,5.06762,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:00.927205 +AWS,ap-southeast-1,r7i.24xlarge,reserved_3y,partial_upfront,5.06762,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:53.880202 +AWS,ap-southeast-1,r7i.24xlarge,spot,NA,2.991911,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921195 +AWS,ap-southeast-1,r7i.2xlarge,on_demand,NA,0.6384,USD,AWS Pricing API,2025-11-30T08:59:47.584974 +AWS,ap-southeast-1,r7i.2xlarge,reserved_1y,all_upfront,0.33301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:18.746522 +AWS,ap-southeast-1,r7i.2xlarge,reserved_1y,no_upfront,0.33301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:00.294383 +AWS,ap-southeast-1,r7i.2xlarge,reserved_1y,partial_upfront,0.33301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:44.747679 +AWS,ap-southeast-1,r7i.2xlarge,reserved_3y,all_upfront,0.33301,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:21.216839 +AWS,ap-southeast-1,r7i.2xlarge,reserved_3y,no_upfront,0.33301,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:03.295668 +AWS,ap-southeast-1,r7i.2xlarge,reserved_3y,partial_upfront,0.33301,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:56.202744 +AWS,ap-southeast-1,r7i.2xlarge,spot,NA,0.290498,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921261 +AWS,ap-southeast-1,r7i.48xlarge,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T09:00:08.200194 +AWS,ap-southeast-1,r7i.48xlarge,reserved_1y,all_upfront,11.1005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:39.223879 +AWS,ap-southeast-1,r7i.48xlarge,reserved_1y,no_upfront,11.1005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:20.888227 +AWS,ap-southeast-1,r7i.48xlarge,reserved_1y,partial_upfront,11.1005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:05.160542 +AWS,ap-southeast-1,r7i.48xlarge,reserved_3y,all_upfront,11.1005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:41.202022 +AWS,ap-southeast-1,r7i.48xlarge,reserved_3y,no_upfront,11.1005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:24.092347 +AWS,ap-southeast-1,r7i.48xlarge,reserved_3y,partial_upfront,11.1005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:16.533929 +AWS,ap-southeast-1,r7i.48xlarge,spot,NA,5.912529,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921762 +AWS,ap-southeast-1,r7i.4xlarge,on_demand,NA,1.2768,USD,AWS Pricing API,2025-11-30T08:59:45.108421 +AWS,ap-southeast-1,r7i.4xlarge,reserved_1y,all_upfront,0.788242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:16.318821 +AWS,ap-southeast-1,r7i.4xlarge,reserved_1y,no_upfront,0.788242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:57.817813 +AWS,ap-southeast-1,r7i.4xlarge,reserved_1y,partial_upfront,0.788242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:42.300320 +AWS,ap-southeast-1,r7i.4xlarge,reserved_3y,all_upfront,0.262747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:18.823118 +AWS,ap-southeast-1,r7i.4xlarge,reserved_3y,no_upfront,0.262747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:00.786212 +AWS,ap-southeast-1,r7i.4xlarge,reserved_3y,partial_upfront,0.262747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:53.747878 +AWS,ap-southeast-1,r7i.4xlarge,spot,NA,0.584832,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921183 +AWS,ap-southeast-1,r7i.8xlarge,on_demand,NA,2.5536,USD,AWS Pricing API,2025-11-30T08:59:01.410648 +AWS,ap-southeast-1,r7i.8xlarge,reserved_1y,all_upfront,1.608718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:32.828493 +AWS,ap-southeast-1,r7i.8xlarge,reserved_1y,no_upfront,1.608718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:14.071328 +AWS,ap-southeast-1,r7i.8xlarge,reserved_1y,partial_upfront,1.608718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:59.058686 +AWS,ap-southeast-1,r7i.8xlarge,reserved_3y,all_upfront,1.072493,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:36.244879 +AWS,ap-southeast-1,r7i.8xlarge,reserved_3y,no_upfront,1.072493,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:16.688728 +AWS,ap-southeast-1,r7i.8xlarge,reserved_3y,partial_upfront,1.072493,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:10.800263 +AWS,ap-southeast-1,r7i.8xlarge,spot,NA,1.047418,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920051 +AWS,ap-southeast-1,r7i.large,on_demand,NA,0.1596,USD,AWS Pricing API,2025-11-30T08:59:15.699625 +AWS,ap-southeast-1,r7i.large,reserved_1y,all_upfront,0.100498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:47.164744 +AWS,ap-southeast-1,r7i.large,reserved_1y,no_upfront,0.100498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:28.442000 +AWS,ap-southeast-1,r7i.large,reserved_1y,partial_upfront,0.100498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:13.290441 +AWS,ap-southeast-1,r7i.large,reserved_3y,all_upfront,0.067013,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:50.243116 +AWS,ap-southeast-1,r7i.large,reserved_3y,no_upfront,0.067013,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:31.167598 +AWS,ap-southeast-1,r7i.large,reserved_3y,partial_upfront,0.067013,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:24.914711 +AWS,ap-southeast-1,r7i.large,spot,NA,0.062888,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920389 +AWS,ap-southeast-1,r7i.metal-24xl,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T08:59:32.105420 +AWS,ap-southeast-1,r7i.metal-24xl,reserved_1y,all_upfront,6.435026,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:03.461708 +AWS,ap-southeast-1,r7i.metal-24xl,reserved_1y,no_upfront,6.435026,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:44.827743 +AWS,ap-southeast-1,r7i.metal-24xl,reserved_1y,partial_upfront,6.435026,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:29.397073 +AWS,ap-southeast-1,r7i.metal-24xl,reserved_3y,all_upfront,3.217522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:06.106364 +AWS,ap-southeast-1,r7i.metal-24xl,reserved_3y,no_upfront,3.217522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:47.664713 +AWS,ap-southeast-1,r7i.metal-24xl,reserved_3y,partial_upfront,3.217522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:40.935911 +AWS,ap-southeast-1,r7i.metal-24xl,spot,NA,3.530771,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920859 +AWS,ap-southeast-1,r7i.metal-48xl,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T08:59:52.029103 +AWS,ap-southeast-1,r7i.metal-48xl,reserved_1y,all_upfront,14.800627,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:23.053644 +AWS,ap-southeast-1,r7i.metal-48xl,reserved_1y,no_upfront,14.800627,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:04.681864 +AWS,ap-southeast-1,r7i.metal-48xl,reserved_1y,partial_upfront,14.800627,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:49.094951 +AWS,ap-southeast-1,r7i.metal-48xl,reserved_3y,all_upfront,7.400322,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:25.442810 +AWS,ap-southeast-1,r7i.metal-48xl,reserved_3y,no_upfront,7.400322,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:07.694663 +AWS,ap-southeast-1,r7i.metal-48xl,reserved_3y,partial_upfront,7.400322,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:00.506958 +AWS,ap-southeast-1,r7i.metal-48xl,spot,NA,5.645847,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921368 +AWS,ap-southeast-1,r7i.xlarge,on_demand,NA,0.3192,USD,AWS Pricing API,2025-11-30T08:59:27.417312 +AWS,ap-southeast-1,r7i.xlarge,reserved_1y,all_upfront,0.23126,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:58.736035 +AWS,ap-southeast-1,r7i.xlarge,reserved_1y,no_upfront,0.23126,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:40.098798 +AWS,ap-southeast-1,r7i.xlarge,reserved_1y,partial_upfront,0.23126,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:24.785672 +AWS,ap-southeast-1,r7i.xlarge,reserved_3y,all_upfront,0.23126,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:01.545912 +AWS,ap-southeast-1,r7i.xlarge,reserved_3y,no_upfront,0.23126,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:42.935608 +AWS,ap-southeast-1,r7i.xlarge,reserved_3y,partial_upfront,0.23126,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:36.346870 +AWS,ap-southeast-1,r7i.xlarge,spot,NA,0.126025,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920721 +AWS,ap-southeast-1,r8g.12xlarge,on_demand,NA,3.41088,USD,AWS Pricing API,2025-11-30T08:59:34.323622 +AWS,ap-southeast-1,r8g.12xlarge,reserved_1y,all_upfront,2.353178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:05.636839 +AWS,ap-southeast-1,r8g.12xlarge,reserved_1y,no_upfront,2.353178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:47.034787 +AWS,ap-southeast-1,r8g.12xlarge,reserved_1y,partial_upfront,2.353178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:31.542683 +AWS,ap-southeast-1,r8g.12xlarge,reserved_3y,all_upfront,1.568779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:08.226476 +AWS,ap-southeast-1,r8g.12xlarge,reserved_3y,no_upfront,1.568779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:49.889403 +AWS,ap-southeast-1,r8g.12xlarge,reserved_3y,partial_upfront,1.568779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:43.136951 +AWS,ap-southeast-1,r8g.12xlarge,spot,NA,1.461618,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920939 +AWS,ap-southeast-1,r8g.16xlarge,on_demand,NA,4.54784,USD,AWS Pricing API,2025-11-30T08:59:57.538934 +AWS,ap-southeast-1,r8g.16xlarge,reserved_1y,all_upfront,6.457991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:28.619963 +AWS,ap-southeast-1,r8g.16xlarge,reserved_1y,no_upfront,6.457991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:10.262475 +AWS,ap-southeast-1,r8g.16xlarge,reserved_1y,partial_upfront,6.457991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:54.606896 +AWS,ap-southeast-1,r8g.16xlarge,reserved_3y,all_upfront,2.152664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:30.870772 +AWS,ap-southeast-1,r8g.16xlarge,reserved_3y,no_upfront,2.152664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:13.309444 +AWS,ap-southeast-1,r8g.16xlarge,reserved_3y,partial_upfront,2.152664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:06.030634 +AWS,ap-southeast-1,r8g.16xlarge,spot,NA,2.079467,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921493 +AWS,ap-southeast-1,r8g.24xlarge,on_demand,NA,6.82176,USD,AWS Pricing API,2025-11-30T08:59:25.498243 +AWS,ap-southeast-1,r8g.24xlarge,reserved_1y,all_upfront,4.211758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:56.846549 +AWS,ap-southeast-1,r8g.24xlarge,reserved_1y,no_upfront,4.211758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:38.179333 +AWS,ap-southeast-1,r8g.24xlarge,reserved_1y,partial_upfront,4.211758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:22.896907 +AWS,ap-southeast-1,r8g.24xlarge,reserved_3y,all_upfront,1.403919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:59.666743 +AWS,ap-southeast-1,r8g.24xlarge,reserved_3y,no_upfront,1.403919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:41.006573 +AWS,ap-southeast-1,r8g.24xlarge,reserved_3y,partial_upfront,1.403919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:34.474875 +AWS,ap-southeast-1,r8g.24xlarge,spot,NA,3.062917,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920710 +AWS,ap-southeast-1,r8g.2xlarge,on_demand,NA,0.56848,USD,AWS Pricing API,2025-11-30T08:59:38.153148 +AWS,ap-southeast-1,r8g.2xlarge,reserved_1y,all_upfront,0.4118,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:09.423605 +AWS,ap-southeast-1,r8g.2xlarge,reserved_1y,no_upfront,0.4118,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:50.892808 +AWS,ap-southeast-1,r8g.2xlarge,reserved_1y,partial_upfront,0.4118,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:35.321372 +AWS,ap-southeast-1,r8g.2xlarge,reserved_3y,all_upfront,0.4118,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:11.954529 +AWS,ap-southeast-1,r8g.2xlarge,reserved_3y,no_upfront,0.4118,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:53.758213 +AWS,ap-southeast-1,r8g.2xlarge,reserved_3y,partial_upfront,0.4118,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:46.910115 +AWS,ap-southeast-1,r8g.2xlarge,spot,NA,0.252446,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921013 +AWS,ap-southeast-1,r8g.48xlarge,on_demand,NA,13.64352,USD,AWS Pricing API,2025-11-30T08:59:23.973873 +AWS,ap-southeast-1,r8g.48xlarge,reserved_1y,all_upfront,9.8833,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:55.360658 +AWS,ap-southeast-1,r8g.48xlarge,reserved_1y,no_upfront,9.8833,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:36.667718 +AWS,ap-southeast-1,r8g.48xlarge,reserved_1y,partial_upfront,9.8833,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:21.410475 +AWS,ap-southeast-1,r8g.48xlarge,reserved_3y,all_upfront,9.8833,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:58.216973 +AWS,ap-southeast-1,r8g.48xlarge,reserved_3y,no_upfront,9.8833,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:39.488942 +AWS,ap-southeast-1,r8g.48xlarge,reserved_3y,partial_upfront,9.8833,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:32.991861 +AWS,ap-southeast-1,r8g.48xlarge,spot,NA,5.236729,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920632 +AWS,ap-southeast-1,r8g.4xlarge,on_demand,NA,1.13696,USD,AWS Pricing API,2025-11-30T08:59:42.655811 +AWS,ap-southeast-1,r8g.4xlarge,reserved_1y,all_upfront,0.784427,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:13.892387 +AWS,ap-southeast-1,r8g.4xlarge,reserved_1y,no_upfront,0.784427,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:55.377305 +AWS,ap-southeast-1,r8g.4xlarge,reserved_1y,partial_upfront,0.784427,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:39.787599 +AWS,ap-southeast-1,r8g.4xlarge,reserved_3y,all_upfront,0.522936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:16.426249 +AWS,ap-southeast-1,r8g.4xlarge,reserved_3y,no_upfront,0.522936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:58.296513 +AWS,ap-southeast-1,r8g.4xlarge,reserved_3y,partial_upfront,0.522936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:51.329932 +AWS,ap-southeast-1,r8g.4xlarge,spot,NA,0.4563,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921127 +AWS,ap-southeast-1,r8g.8xlarge,on_demand,NA,2.27392,USD,AWS Pricing API,2025-11-30T08:59:02.926577 +AWS,ap-southeast-1,r8g.8xlarge,reserved_1y,all_upfront,1.403881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:34.405341 +AWS,ap-southeast-1,r8g.8xlarge,reserved_1y,no_upfront,1.403881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:15.570242 +AWS,ap-southeast-1,r8g.8xlarge,reserved_1y,partial_upfront,1.403881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:00.545561 +AWS,ap-southeast-1,r8g.8xlarge,reserved_3y,all_upfront,0.46796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:37.708894 +AWS,ap-southeast-1,r8g.8xlarge,reserved_3y,no_upfront,0.46796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:18.196600 +AWS,ap-southeast-1,r8g.8xlarge,reserved_3y,partial_upfront,0.46796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:12.269566 +AWS,ap-southeast-1,r8g.8xlarge,spot,NA,0.973715,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920100 +AWS,ap-southeast-1,r8g.large,on_demand,NA,0.14212,USD,AWS Pricing API,2025-11-30T08:59:41.148499 +AWS,ap-southeast-1,r8g.large,reserved_1y,all_upfront,0.119338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:12.403366 +AWS,ap-southeast-1,r8g.large,reserved_1y,no_upfront,0.119338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:53.879057 +AWS,ap-southeast-1,r8g.large,reserved_1y,partial_upfront,0.119338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:38.281100 +AWS,ap-southeast-1,r8g.large,reserved_3y,all_upfront,0.059673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:14.968021 +AWS,ap-southeast-1,r8g.large,reserved_3y,no_upfront,0.059673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:56.794291 +AWS,ap-southeast-1,r8g.large,reserved_3y,partial_upfront,0.059673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:49.860391 +AWS,ap-southeast-1,r8g.large,spot,NA,0.056326,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921099 +AWS,ap-southeast-1,r8g.xlarge,on_demand,NA,0.28424,USD,AWS Pricing API,2025-11-30T08:59:23.558710 +AWS,ap-southeast-1,r8g.xlarge,reserved_1y,all_upfront,0.238675,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:54.860489 +AWS,ap-southeast-1,r8g.xlarge,reserved_1y,no_upfront,0.238675,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:36.250578 +AWS,ap-southeast-1,r8g.xlarge,reserved_1y,partial_upfront,0.238675,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:35:21.004579 +AWS,ap-southeast-1,r8g.xlarge,reserved_3y,all_upfront,0.119345,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:57.814190 +AWS,ap-southeast-1,r8g.xlarge,reserved_3y,no_upfront,0.119345,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:39.077171 +AWS,ap-southeast-1,r8g.xlarge,reserved_3y,partial_upfront,0.119345,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:32.590159 +AWS,ap-southeast-1,r8g.xlarge,spot,NA,0.126142,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920640 +AWS,ap-southeast-1,r8i.12xlarge,on_demand,NA,4.02192,USD,AWS Pricing API,2025-11-30T08:59:18.822558 +AWS,ap-southeast-1,r8i.12xlarge,spot,NA,1.131703,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920531 +AWS,ap-southeast-1,r8i.16xlarge,on_demand,NA,5.36256,USD,AWS Pricing API,2025-11-30T08:59:51.494749 +AWS,ap-southeast-1,r8i.16xlarge,spot,NA,1.532369,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921356 +AWS,ap-southeast-1,r8i.24xlarge,on_demand,NA,8.04384,USD,AWS Pricing API,2025-11-30T08:59:57.136786 +AWS,ap-southeast-1,r8i.24xlarge,spot,NA,2.470459,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921508 +AWS,ap-southeast-1,r8i.2xlarge,on_demand,NA,0.67032,USD,AWS Pricing API,2025-11-30T08:59:45.379890 +AWS,ap-southeast-1,r8i.2xlarge,spot,NA,0.254776,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921187 +AWS,ap-southeast-1,r8i.48xlarge,on_demand,NA,16.08768,USD,AWS Pricing API,2025-11-30T09:00:04.521748 +AWS,ap-southeast-1,r8i.48xlarge,spot,NA,4.698654,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921663 +AWS,ap-southeast-1,r8i.4xlarge,on_demand,NA,1.34064,USD,AWS Pricing API,2025-11-30T08:59:40.741811 +AWS,ap-southeast-1,r8i.4xlarge,spot,NA,0.501192,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.921103 +AWS,ap-southeast-1,r8i.8xlarge,on_demand,NA,2.68128,USD,AWS Pricing API,2025-11-30T08:59:33.857281 +AWS,ap-southeast-1,r8i.8xlarge,spot,NA,0.862926,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920923 +AWS,ap-southeast-1,r8i.large,on_demand,NA,0.16758,USD,AWS Pricing API,2025-11-30T08:58:58.019838 +AWS,ap-southeast-1,r8i.large,spot,NA,0.055926,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919949 +AWS,ap-southeast-1,r8i.xlarge,on_demand,NA,0.33516,USD,AWS Pricing API,2025-11-30T08:59:08.236595 +AWS,ap-southeast-1,r8i.xlarge,spot,NA,0.129596,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.920214 +AWS,ap-southeast-1,z1d.12xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:58:52.845683 +AWS,ap-southeast-1,z1d.12xlarge,reserved_1y,all_upfront,3.189269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:24.220018 +AWS,ap-southeast-1,z1d.12xlarge,reserved_1y,no_upfront,3.189269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:05.353875 +AWS,ap-southeast-1,z1d.12xlarge,reserved_1y,partial_upfront,3.189269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:50.459813 +AWS,ap-southeast-1,z1d.12xlarge,reserved_3y,all_upfront,1.06309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:27.772524 +AWS,ap-southeast-1,z1d.12xlarge,reserved_3y,no_upfront,1.06309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:07.871790 +AWS,ap-southeast-1,z1d.12xlarge,reserved_3y,partial_upfront,1.06309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:02.193365 +AWS,ap-southeast-1,z1d.12xlarge,spot,NA,2.590891,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919865 +AWS,ap-southeast-1,z1d.2xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:58:56.130919 +AWS,ap-southeast-1,z1d.2xlarge,reserved_1y,all_upfront,0.625785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:27.569371 +AWS,ap-southeast-1,z1d.2xlarge,reserved_1y,no_upfront,0.625785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:08.738743 +AWS,ap-southeast-1,z1d.2xlarge,reserved_1y,partial_upfront,0.625785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:53.795575 +AWS,ap-southeast-1,z1d.2xlarge,reserved_3y,all_upfront,0.417262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:31.066247 +AWS,ap-southeast-1,z1d.2xlarge,reserved_3y,no_upfront,0.417262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:11.296585 +AWS,ap-southeast-1,z1d.2xlarge,reserved_3y,partial_upfront,0.417262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:05.553621 +AWS,ap-southeast-1,z1d.2xlarge,spot,NA,0.35008,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919900 +AWS,ap-southeast-1,z1d.3xlarge,on_demand,NA,1.356,USD,AWS Pricing API,2025-11-30T08:58:55.067263 +AWS,ap-southeast-1,z1d.3xlarge,reserved_1y,all_upfront,0.813849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:26.498539 +AWS,ap-southeast-1,z1d.3xlarge,reserved_1y,no_upfront,0.813849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:07.654431 +AWS,ap-southeast-1,z1d.3xlarge,reserved_1y,partial_upfront,0.813849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:52.728040 +AWS,ap-southeast-1,z1d.3xlarge,reserved_3y,all_upfront,0.542616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:29.995803 +AWS,ap-southeast-1,z1d.3xlarge,reserved_3y,no_upfront,0.542616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:10.199531 +AWS,ap-southeast-1,z1d.3xlarge,reserved_3y,partial_upfront,0.542616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:04.476898 +AWS,ap-southeast-1,z1d.3xlarge,spot,NA,0.539637,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919884 +AWS,ap-southeast-1,z1d.6xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:58:55.204880 +AWS,ap-southeast-1,z1d.6xlarge,reserved_1y,all_upfront,1.971,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:26.635240 +AWS,ap-southeast-1,z1d.6xlarge,reserved_1y,no_upfront,1.971,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:07.790557 +AWS,ap-southeast-1,z1d.6xlarge,reserved_1y,partial_upfront,1.971,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:52.864819 +AWS,ap-southeast-1,z1d.6xlarge,reserved_3y,all_upfront,1.971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:30.144415 +AWS,ap-southeast-1,z1d.6xlarge,reserved_3y,no_upfront,1.971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:10.336377 +AWS,ap-southeast-1,z1d.6xlarge,reserved_3y,partial_upfront,1.971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:04.609218 +AWS,ap-southeast-1,z1d.6xlarge,spot,NA,0.889253,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919879 +AWS,ap-southeast-1,z1d.large,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:58:55.470096 +AWS,ap-southeast-1,z1d.large,reserved_1y,all_upfront,0.156196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:26.904402 +AWS,ap-southeast-1,z1d.large,reserved_1y,no_upfront,0.156196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:08.063739 +AWS,ap-southeast-1,z1d.large,reserved_1y,partial_upfront,0.156196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:53.131573 +AWS,ap-southeast-1,z1d.large,reserved_3y,all_upfront,0.104065,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:30.410412 +AWS,ap-southeast-1,z1d.large,reserved_3y,no_upfront,0.104065,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:10.612599 +AWS,ap-southeast-1,z1d.large,reserved_3y,partial_upfront,0.104065,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:04.877033 +AWS,ap-southeast-1,z1d.large,spot,NA,0.085779,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919907 +AWS,ap-southeast-1,z1d.xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:58:56.403467 +AWS,ap-southeast-1,z1d.xlarge,reserved_1y,all_upfront,0.306507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:56:27.837168 +AWS,ap-southeast-1,z1d.xlarge,reserved_1y,no_upfront,0.306507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:13:09.007302 +AWS,ap-southeast-1,z1d.xlarge,reserved_1y,partial_upfront,0.306507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:34:54.061314 +AWS,ap-southeast-1,z1d.xlarge,reserved_3y,all_upfront,0.102169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:01:31.330891 +AWS,ap-southeast-1,z1d.xlarge,reserved_3y,no_upfront,0.102169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:18:11.575035 +AWS,ap-southeast-1,z1d.xlarge,reserved_3y,partial_upfront,0.102169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:40:05.820407 +AWS,ap-southeast-1,z1d.xlarge,spot,NA,0.16584,USD,AWS EC2 API (90-day avg),2025-11-30T09:35:29.919913 +AWS,ap-southeast-2,c5.12xlarge,on_demand,NA,2.664,USD,AWS Pricing API,2025-11-30T09:01:03.307040 +AWS,ap-southeast-2,c5.12xlarge,reserved_1y,all_upfront,1.678,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:33.554365 +AWS,ap-southeast-2,c5.12xlarge,reserved_1y,no_upfront,1.678,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:15.868563 +AWS,ap-southeast-2,c5.12xlarge,reserved_1y,partial_upfront,1.678,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:59.241310 +AWS,ap-southeast-2,c5.12xlarge,reserved_3y,all_upfront,1.678,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:34.440658 +AWS,ap-southeast-2,c5.12xlarge,reserved_3y,no_upfront,1.678,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:19.650955 +AWS,ap-southeast-2,c5.12xlarge,reserved_3y,partial_upfront,1.678,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:10.565503 +AWS,ap-southeast-2,c5.12xlarge,spot,NA,0.933131,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038489 +AWS,ap-southeast-2,c5.18xlarge,on_demand,NA,3.996,USD,AWS Pricing API,2025-11-30T09:01:11.833188 +AWS,ap-southeast-2,c5.18xlarge,reserved_1y,all_upfront,2.349658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:41.946029 +AWS,ap-southeast-2,c5.18xlarge,reserved_1y,no_upfront,2.349658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:24.395392 +AWS,ap-southeast-2,c5.18xlarge,reserved_1y,partial_upfront,2.349658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:07.624610 +AWS,ap-southeast-2,c5.18xlarge,reserved_3y,all_upfront,0.783219,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:42.690037 +AWS,ap-southeast-2,c5.18xlarge,reserved_3y,no_upfront,0.783219,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:28.166294 +AWS,ap-southeast-2,c5.18xlarge,reserved_3y,partial_upfront,0.783219,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:18.875554 +AWS,ap-southeast-2,c5.18xlarge,spot,NA,1.361563,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038701 +AWS,ap-southeast-2,c5.24xlarge,on_demand,NA,5.328,USD,AWS Pricing API,2025-11-30T09:00:15.887465 +AWS,ap-southeast-2,c5.24xlarge,reserved_1y,all_upfront,3.196402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:46.831977 +AWS,ap-southeast-2,c5.24xlarge,reserved_1y,no_upfront,3.196402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:28.537561 +AWS,ap-southeast-2,c5.24xlarge,reserved_1y,partial_upfront,3.196402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:12.698795 +AWS,ap-southeast-2,c5.24xlarge,reserved_3y,all_upfront,2.130801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:48.598841 +AWS,ap-southeast-2,c5.24xlarge,reserved_3y,no_upfront,2.130801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:31.795821 +AWS,ap-southeast-2,c5.24xlarge,reserved_3y,partial_upfront,2.130801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:24.072145 +AWS,ap-southeast-2,c5.24xlarge,spot,NA,2.00066,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037127 +AWS,ap-southeast-2,c5.4xlarge,on_demand,NA,0.888,USD,AWS Pricing API,2025-11-30T09:00:56.011645 +AWS,ap-southeast-2,c5.4xlarge,reserved_1y,all_upfront,0.651,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:26.391843 +AWS,ap-southeast-2,c5.4xlarge,reserved_1y,no_upfront,0.651,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:08.614112 +AWS,ap-southeast-2,c5.4xlarge,reserved_1y,partial_upfront,0.651,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:52.070304 +AWS,ap-southeast-2,c5.4xlarge,reserved_3y,all_upfront,0.651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:27.435803 +AWS,ap-southeast-2,c5.4xlarge,reserved_3y,no_upfront,0.651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:12.346742 +AWS,ap-southeast-2,c5.4xlarge,reserved_3y,partial_upfront,0.651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:03.462596 +AWS,ap-southeast-2,c5.4xlarge,spot,NA,0.30732,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038291 +AWS,ap-southeast-2,c5.9xlarge,on_demand,NA,1.998,USD,AWS Pricing API,2025-11-30T09:00:15.210163 +AWS,ap-southeast-2,c5.9xlarge,reserved_1y,all_upfront,1.465,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:46.156722 +AWS,ap-southeast-2,c5.9xlarge,reserved_1y,no_upfront,1.465,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:27.857556 +AWS,ap-southeast-2,c5.9xlarge,reserved_1y,partial_upfront,1.465,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:12.021768 +AWS,ap-southeast-2,c5.9xlarge,reserved_3y,all_upfront,1.465,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:47.942474 +AWS,ap-southeast-2,c5.9xlarge,reserved_3y,no_upfront,1.465,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:31.093547 +AWS,ap-southeast-2,c5.9xlarge,reserved_3y,partial_upfront,1.465,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:23.398396 +AWS,ap-southeast-2,c5.9xlarge,spot,NA,0.743765,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037156 +AWS,ap-southeast-2,c5a.12xlarge,on_demand,NA,2.4,USD,AWS Pricing API,2025-11-30T09:01:12.388286 +AWS,ap-southeast-2,c5a.12xlarge,reserved_1y,all_upfront,1.411187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:42.485675 +AWS,ap-southeast-2,c5a.12xlarge,reserved_1y,no_upfront,1.411187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:24.939934 +AWS,ap-southeast-2,c5a.12xlarge,reserved_1y,partial_upfront,1.411187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:08.163065 +AWS,ap-southeast-2,c5a.12xlarge,reserved_3y,all_upfront,0.470396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:43.220925 +AWS,ap-southeast-2,c5a.12xlarge,reserved_3y,no_upfront,0.470396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:28.712409 +AWS,ap-southeast-2,c5a.12xlarge,reserved_3y,partial_upfront,0.470396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:19.408368 +AWS,ap-southeast-2,c5a.12xlarge,spot,NA,1.033181,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038705 +AWS,ap-southeast-2,c5a.16xlarge,on_demand,NA,3.2,USD,AWS Pricing API,2025-11-30T09:00:31.590595 +AWS,ap-southeast-2,c5a.16xlarge,reserved_1y,all_upfront,4.487671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:02.147530 +AWS,ap-southeast-2,c5a.16xlarge,reserved_1y,no_upfront,4.487671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:44.112480 +AWS,ap-southeast-2,c5a.16xlarge,reserved_1y,partial_upfront,4.487671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:27.937353 +AWS,ap-southeast-2,c5a.16xlarge,reserved_3y,all_upfront,1.49589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:03.634667 +AWS,ap-southeast-2,c5a.16xlarge,reserved_3y,no_upfront,1.49589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:47.452599 +AWS,ap-southeast-2,c5a.16xlarge,reserved_3y,partial_upfront,1.49589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:39.311125 +AWS,ap-southeast-2,c5a.16xlarge,spot,NA,1.253992,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037532 +AWS,ap-southeast-2,c5a.24xlarge,on_demand,NA,4.8,USD,AWS Pricing API,2025-11-30T09:01:18.687556 +AWS,ap-southeast-2,c5a.24xlarge,reserved_1y,all_upfront,2.473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:48.696596 +AWS,ap-southeast-2,c5a.24xlarge,reserved_1y,no_upfront,2.473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:31.271059 +AWS,ap-southeast-2,c5a.24xlarge,reserved_1y,partial_upfront,2.473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:14.414308 +AWS,ap-southeast-2,c5a.24xlarge,reserved_3y,all_upfront,2.473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:49.332623 +AWS,ap-southeast-2,c5a.24xlarge,reserved_3y,no_upfront,2.473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:35.037212 +AWS,ap-southeast-2,c5a.24xlarge,reserved_3y,partial_upfront,2.473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:25.636082 +AWS,ap-southeast-2,c5a.24xlarge,spot,NA,1.959148,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038891 +AWS,ap-southeast-2,c5a.2xlarge,on_demand,NA,0.4,USD,AWS Pricing API,2025-11-30T09:01:01.489525 +AWS,ap-southeast-2,c5a.2xlarge,reserved_1y,all_upfront,0.272831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:31.803639 +AWS,ap-southeast-2,c5a.2xlarge,reserved_1y,no_upfront,0.272831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:14.102659 +AWS,ap-southeast-2,c5a.2xlarge,reserved_1y,partial_upfront,0.272831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:57.471001 +AWS,ap-southeast-2,c5a.2xlarge,reserved_3y,all_upfront,0.090944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:32.715150 +AWS,ap-southeast-2,c5a.2xlarge,reserved_3y,no_upfront,0.090944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:17.867725 +AWS,ap-southeast-2,c5a.2xlarge,reserved_3y,partial_upfront,0.090944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:08.823192 +AWS,ap-southeast-2,c5a.2xlarge,spot,NA,0.17756,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038409 +AWS,ap-southeast-2,c5a.4xlarge,on_demand,NA,0.8,USD,AWS Pricing API,2025-11-30T09:00:34.201950 +AWS,ap-southeast-2,c5a.4xlarge,reserved_1y,all_upfront,0.470434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:04.735756 +AWS,ap-southeast-2,c5a.4xlarge,reserved_1y,no_upfront,0.470434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:46.709962 +AWS,ap-southeast-2,c5a.4xlarge,reserved_1y,partial_upfront,0.470434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:30.512186 +AWS,ap-southeast-2,c5a.4xlarge,reserved_3y,all_upfront,0.156811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:06.209438 +AWS,ap-southeast-2,c5a.4xlarge,reserved_3y,no_upfront,0.156811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:50.074863 +AWS,ap-southeast-2,c5a.4xlarge,reserved_3y,partial_upfront,0.156811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:41.867227 +AWS,ap-southeast-2,c5a.4xlarge,spot,NA,0.345633,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037648 +AWS,ap-southeast-2,c5a.8xlarge,on_demand,NA,1.6,USD,AWS Pricing API,2025-11-30T09:00:26.785414 +AWS,ap-southeast-2,c5a.8xlarge,reserved_1y,all_upfront,1.280046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:57.392876 +AWS,ap-southeast-2,c5a.8xlarge,reserved_1y,no_upfront,1.280046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:39.310497 +AWS,ap-southeast-2,c5a.8xlarge,reserved_1y,partial_upfront,1.280046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:23.226902 +AWS,ap-southeast-2,c5a.8xlarge,reserved_3y,all_upfront,0.640015,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:58.950596 +AWS,ap-southeast-2,c5a.8xlarge,reserved_3y,no_upfront,0.640015,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:42.565054 +AWS,ap-southeast-2,c5a.8xlarge,reserved_3y,partial_upfront,0.640015,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:34.558758 +AWS,ap-southeast-2,c5a.8xlarge,spot,NA,0.673748,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037434 +AWS,ap-southeast-2,c5a.xlarge,on_demand,NA,0.2,USD,AWS Pricing API,2025-11-30T09:00:17.492554 +AWS,ap-southeast-2,c5a.xlarge,reserved_1y,all_upfront,0.146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:48.331774 +AWS,ap-southeast-2,c5a.xlarge,reserved_1y,no_upfront,0.146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:30.035335 +AWS,ap-southeast-2,c5a.xlarge,reserved_1y,partial_upfront,0.146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:14.183984 +AWS,ap-southeast-2,c5a.xlarge,reserved_3y,all_upfront,0.146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:50.057841 +AWS,ap-southeast-2,c5a.xlarge,reserved_3y,no_upfront,0.146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:33.295334 +AWS,ap-southeast-2,c5a.xlarge,reserved_3y,partial_upfront,0.146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:25.543012 +AWS,ap-southeast-2,c5a.xlarge,spot,NA,0.095473,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037171 +AWS,ap-southeast-2,c5ad.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T09:01:23.074178 +AWS,ap-southeast-2,c5ad.12xlarge,reserved_1y,all_upfront,1.594635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:53.022687 +AWS,ap-southeast-2,c5ad.12xlarge,reserved_1y,no_upfront,1.594635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:35.652318 +AWS,ap-southeast-2,c5ad.12xlarge,reserved_1y,partial_upfront,1.594635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:18.734899 +AWS,ap-southeast-2,c5ad.12xlarge,reserved_3y,all_upfront,0.531545,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:53.567099 +AWS,ap-southeast-2,c5ad.12xlarge,reserved_3y,no_upfront,0.531545,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:39.452542 +AWS,ap-southeast-2,c5ad.12xlarge,reserved_3y,partial_upfront,0.531545,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:29.947377 +AWS,ap-southeast-2,c5ad.12xlarge,spot,NA,1.180801,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038977 +AWS,ap-southeast-2,c5ad.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T09:01:14.705790 +AWS,ap-southeast-2,c5ad.16xlarge,reserved_1y,all_upfront,2.278,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:44.771664 +AWS,ap-southeast-2,c5ad.16xlarge,reserved_1y,no_upfront,2.278,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:27.292813 +AWS,ap-southeast-2,c5ad.16xlarge,reserved_1y,partial_upfront,2.278,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:10.487218 +AWS,ap-southeast-2,c5ad.16xlarge,reserved_3y,all_upfront,2.278,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:45.471067 +AWS,ap-southeast-2,c5ad.16xlarge,reserved_3y,no_upfront,2.278,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:31.033064 +AWS,ap-southeast-2,c5ad.16xlarge,reserved_3y,partial_upfront,2.278,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:21.701563 +AWS,ap-southeast-2,c5ad.16xlarge,spot,NA,1.764726,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038765 +AWS,ap-southeast-2,c5ad.24xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T09:00:34.337679 +AWS,ap-southeast-2,c5ad.24xlarge,reserved_1y,all_upfront,3.987,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:04.870326 +AWS,ap-southeast-2,c5ad.24xlarge,reserved_1y,no_upfront,3.987,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:46.845204 +AWS,ap-southeast-2,c5ad.24xlarge,reserved_1y,partial_upfront,3.987,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:30.646400 +AWS,ap-southeast-2,c5ad.24xlarge,reserved_3y,all_upfront,3.987,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:06.341615 +AWS,ap-southeast-2,c5ad.24xlarge,reserved_3y,no_upfront,3.987,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:50.223407 +AWS,ap-southeast-2,c5ad.24xlarge,reserved_3y,partial_upfront,3.987,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:42.002489 +AWS,ap-southeast-2,c5ad.24xlarge,spot,NA,2.935126,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037643 +AWS,ap-southeast-2,c5ad.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T09:00:23.655967 +AWS,ap-southeast-2,c5ad.2xlarge,reserved_1y,all_upfront,0.285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:54.277163 +AWS,ap-southeast-2,c5ad.2xlarge,reserved_1y,no_upfront,0.285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:36.144770 +AWS,ap-southeast-2,c5ad.2xlarge,reserved_1y,partial_upfront,0.285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:20.129996 +AWS,ap-southeast-2,c5ad.2xlarge,reserved_3y,all_upfront,0.285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:55.889100 +AWS,ap-southeast-2,c5ad.2xlarge,reserved_3y,no_upfront,0.285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:39.360279 +AWS,ap-southeast-2,c5ad.2xlarge,reserved_3y,partial_upfront,0.285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:31.457501 +AWS,ap-southeast-2,c5ad.2xlarge,spot,NA,0.196527,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037370 +AWS,ap-southeast-2,c5ad.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T09:01:23.616140 +AWS,ap-southeast-2,c5ad.4xlarge,reserved_1y,all_upfront,0.632438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:53.562825 +AWS,ap-southeast-2,c5ad.4xlarge,reserved_1y,no_upfront,0.632438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:36.194689 +AWS,ap-southeast-2,c5ad.4xlarge,reserved_1y,partial_upfront,0.632438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:19.270508 +AWS,ap-southeast-2,c5ad.4xlarge,reserved_3y,all_upfront,0.421479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:54.105196 +AWS,ap-southeast-2,c5ad.4xlarge,reserved_3y,no_upfront,0.421479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:40.003983 +AWS,ap-southeast-2,c5ad.4xlarge,reserved_3y,partial_upfront,0.421479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:30.480572 +AWS,ap-southeast-2,c5ad.4xlarge,spot,NA,0.413496,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038980 +AWS,ap-southeast-2,c5ad.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T09:00:33.928231 +AWS,ap-southeast-2,c5ad.8xlarge,reserved_1y,all_upfront,1.265763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:04.463416 +AWS,ap-southeast-2,c5ad.8xlarge,reserved_1y,no_upfront,1.265763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:46.435502 +AWS,ap-southeast-2,c5ad.8xlarge,reserved_1y,partial_upfront,1.265763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:30.243318 +AWS,ap-southeast-2,c5ad.8xlarge,reserved_3y,all_upfront,0.843921,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:05.946549 +AWS,ap-southeast-2,c5ad.8xlarge,reserved_3y,no_upfront,0.843921,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:49.792866 +AWS,ap-southeast-2,c5ad.8xlarge,reserved_3y,partial_upfront,0.843921,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:41.601095 +AWS,ap-southeast-2,c5ad.8xlarge,spot,NA,0.75914,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037615 +AWS,ap-southeast-2,c5ad.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T09:01:13.073728 +AWS,ap-southeast-2,c5ad.xlarge,reserved_1y,all_upfront,0.142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:43.155460 +AWS,ap-southeast-2,c5ad.xlarge,reserved_1y,no_upfront,0.142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:25.626073 +AWS,ap-southeast-2,c5ad.xlarge,reserved_1y,partial_upfront,0.142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:08.841307 +AWS,ap-southeast-2,c5ad.xlarge,reserved_3y,all_upfront,0.142,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:43.880788 +AWS,ap-southeast-2,c5ad.xlarge,reserved_3y,no_upfront,0.142,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:29.386928 +AWS,ap-southeast-2,c5ad.xlarge,reserved_3y,partial_upfront,0.142,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:20.086972 +AWS,ap-southeast-2,c5ad.xlarge,spot,NA,0.104596,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038737 +AWS,ap-southeast-2,c5d.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T09:01:24.708086 +AWS,ap-southeast-2,c5d.12xlarge,reserved_1y,all_upfront,2.122187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:54.642369 +AWS,ap-southeast-2,c5d.12xlarge,reserved_1y,no_upfront,2.122187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:37.283824 +AWS,ap-southeast-2,c5d.12xlarge,reserved_1y,partial_upfront,2.122187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:20.358212 +AWS,ap-southeast-2,c5d.12xlarge,reserved_3y,all_upfront,1.414729,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:55.154027 +AWS,ap-southeast-2,c5d.12xlarge,reserved_3y,no_upfront,1.414729,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:41.107082 +AWS,ap-southeast-2,c5d.12xlarge,reserved_3y,partial_upfront,1.414729,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:31.546256 +AWS,ap-southeast-2,c5d.12xlarge,spot,NA,1.088219,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039023 +AWS,ap-southeast-2,c5d.18xlarge,on_demand,NA,4.536,USD,AWS Pricing API,2025-11-30T09:00:47.828939 +AWS,ap-southeast-2,c5d.18xlarge,reserved_1y,all_upfront,2.667123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:18.301022 +AWS,ap-southeast-2,c5d.18xlarge,reserved_1y,no_upfront,2.667123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:00.351815 +AWS,ap-southeast-2,c5d.18xlarge,reserved_1y,partial_upfront,2.667123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:44.004772 +AWS,ap-southeast-2,c5d.18xlarge,reserved_3y,all_upfront,0.889041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:19.482476 +AWS,ap-southeast-2,c5d.18xlarge,reserved_3y,no_upfront,0.889041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:03.973353 +AWS,ap-southeast-2,c5d.18xlarge,reserved_3y,partial_upfront,0.889041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:55.356263 +AWS,ap-southeast-2,c5d.18xlarge,spot,NA,1.623281,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037999 +AWS,ap-southeast-2,c5d.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T09:00:20.253838 +AWS,ap-southeast-2,c5d.24xlarge,reserved_1y,all_upfront,4.159932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:51.016078 +AWS,ap-southeast-2,c5d.24xlarge,reserved_1y,no_upfront,4.159932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:32.812461 +AWS,ap-southeast-2,c5d.24xlarge,reserved_1y,partial_upfront,4.159932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:16.907644 +AWS,ap-southeast-2,c5d.24xlarge,reserved_3y,all_upfront,1.386644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:52.702860 +AWS,ap-southeast-2,c5d.24xlarge,reserved_3y,no_upfront,1.386644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:36.054216 +AWS,ap-southeast-2,c5d.24xlarge,reserved_3y,partial_upfront,1.386644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:28.229979 +AWS,ap-southeast-2,c5d.24xlarge,spot,NA,2.586827,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037245 +AWS,ap-southeast-2,c5d.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T09:01:08.256495 +AWS,ap-southeast-2,c5d.2xlarge,reserved_1y,all_upfront,0.353826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:38.438631 +AWS,ap-southeast-2,c5d.2xlarge,reserved_1y,no_upfront,0.353826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:20.837828 +AWS,ap-southeast-2,c5d.2xlarge,reserved_1y,partial_upfront,0.353826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:04.136681 +AWS,ap-southeast-2,c5d.2xlarge,reserved_3y,all_upfront,0.235942,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:39.236021 +AWS,ap-southeast-2,c5d.2xlarge,reserved_3y,no_upfront,0.235942,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:24.604021 +AWS,ap-southeast-2,c5d.2xlarge,reserved_3y,partial_upfront,0.235942,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:15.400125 +AWS,ap-southeast-2,c5d.2xlarge,spot,NA,0.226848,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038621 +AWS,ap-southeast-2,c5d.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T09:00:28.032247 +AWS,ap-southeast-2,c5d.4xlarge,reserved_1y,all_upfront,0.806795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:58.618351 +AWS,ap-southeast-2,c5d.4xlarge,reserved_1y,no_upfront,0.806795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:40.548706 +AWS,ap-southeast-2,c5d.4xlarge,reserved_1y,partial_upfront,0.806795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:24.439081 +AWS,ap-southeast-2,c5d.4xlarge,reserved_3y,all_upfront,0.403598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:00.140269 +AWS,ap-southeast-2,c5d.4xlarge,reserved_3y,no_upfront,0.403598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:43.802138 +AWS,ap-southeast-2,c5d.4xlarge,reserved_3y,partial_upfront,0.403598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:35.810651 +AWS,ap-southeast-2,c5d.4xlarge,spot,NA,0.361798,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037487 +AWS,ap-southeast-2,c5d.9xlarge,on_demand,NA,2.268,USD,AWS Pricing API,2025-11-30T09:00:57.640908 +AWS,ap-southeast-2,c5d.9xlarge,reserved_1y,all_upfront,1.333562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:28.013380 +AWS,ap-southeast-2,c5d.9xlarge,reserved_1y,no_upfront,1.333562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:10.249565 +AWS,ap-southeast-2,c5d.9xlarge,reserved_1y,partial_upfront,1.333562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:53.690793 +AWS,ap-southeast-2,c5d.9xlarge,reserved_3y,all_upfront,0.444521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:29.015753 +AWS,ap-southeast-2,c5d.9xlarge,reserved_3y,no_upfront,0.444521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:13.995083 +AWS,ap-southeast-2,c5d.9xlarge,reserved_3y,partial_upfront,0.444521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:05.066993 +AWS,ap-southeast-2,c5d.9xlarge,spot,NA,0.851119,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038319 +AWS,ap-southeast-2,c5d.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T09:00:53.288823 +AWS,ap-southeast-2,c5d.xlarge,reserved_1y,all_upfront,0.148174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:23.682223 +AWS,ap-southeast-2,c5d.xlarge,reserved_1y,no_upfront,0.148174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:05.889735 +AWS,ap-southeast-2,c5d.xlarge,reserved_1y,partial_upfront,0.148174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:49.396276 +AWS,ap-southeast-2,c5d.xlarge,reserved_3y,all_upfront,0.049391,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:24.776002 +AWS,ap-southeast-2,c5d.xlarge,reserved_3y,no_upfront,0.049391,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:09.578740 +AWS,ap-southeast-2,c5d.xlarge,reserved_3y,partial_upfront,0.049391,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:00.739707 +AWS,ap-southeast-2,c5d.xlarge,spot,NA,0.09588,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038168 +AWS,ap-southeast-2,c5n.18xlarge,on_demand,NA,5.076,USD,AWS Pricing API,2025-11-30T09:01:13.893681 +AWS,ap-southeast-2,c5n.18xlarge,reserved_1y,all_upfront,3.045831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:43.972394 +AWS,ap-southeast-2,c5n.18xlarge,reserved_1y,no_upfront,3.045831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:26.459079 +AWS,ap-southeast-2,c5n.18xlarge,reserved_1y,partial_upfront,3.045831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:09.676110 +AWS,ap-southeast-2,c5n.18xlarge,reserved_3y,all_upfront,2.03061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:44.674642 +AWS,ap-southeast-2,c5n.18xlarge,reserved_3y,no_upfront,2.03061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:30.208068 +AWS,ap-southeast-2,c5n.18xlarge,reserved_3y,partial_upfront,2.03061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:20.900143 +AWS,ap-southeast-2,c5n.18xlarge,spot,NA,1.729785,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038749 +AWS,ap-southeast-2,c5n.2xlarge,on_demand,NA,0.564,USD,AWS Pricing API,2025-11-30T09:01:24.162859 +AWS,ap-southeast-2,c5n.2xlarge,reserved_1y,all_upfront,0.385845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:54.104657 +AWS,ap-southeast-2,c5n.2xlarge,reserved_1y,no_upfront,0.385845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:36.739572 +AWS,ap-southeast-2,c5n.2xlarge,reserved_1y,partial_upfront,0.385845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:19.821481 +AWS,ap-southeast-2,c5n.2xlarge,reserved_3y,all_upfront,0.128615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:54.626952 +AWS,ap-southeast-2,c5n.2xlarge,reserved_3y,no_upfront,0.128615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:40.560110 +AWS,ap-southeast-2,c5n.2xlarge,reserved_3y,partial_upfront,0.128615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:31.017826 +AWS,ap-southeast-2,c5n.2xlarge,spot,NA,0.247871,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039019 +AWS,ap-southeast-2,c5n.4xlarge,on_demand,NA,1.128,USD,AWS Pricing API,2025-11-30T09:01:00.089710 +AWS,ap-southeast-2,c5n.4xlarge,reserved_1y,all_upfront,0.711,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:30.444746 +AWS,ap-southeast-2,c5n.4xlarge,reserved_1y,no_upfront,0.711,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:12.726208 +AWS,ap-southeast-2,c5n.4xlarge,reserved_1y,partial_upfront,0.711,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:56.126633 +AWS,ap-southeast-2,c5n.4xlarge,reserved_3y,all_upfront,0.711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:31.393533 +AWS,ap-southeast-2,c5n.4xlarge,reserved_3y,no_upfront,0.711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:16.491959 +AWS,ap-southeast-2,c5n.4xlarge,reserved_3y,partial_upfront,0.711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:07.467438 +AWS,ap-southeast-2,c5n.4xlarge,spot,NA,0.421399,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038389 +AWS,ap-southeast-2,c5n.9xlarge,on_demand,NA,2.538,USD,AWS Pricing API,2025-11-30T09:01:13.757851 +AWS,ap-southeast-2,c5n.9xlarge,reserved_1y,all_upfront,2.568721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:43.838398 +AWS,ap-southeast-2,c5n.9xlarge,reserved_1y,no_upfront,2.568721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:26.322729 +AWS,ap-southeast-2,c5n.9xlarge,reserved_1y,partial_upfront,2.568721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:09.535471 +AWS,ap-southeast-2,c5n.9xlarge,reserved_3y,all_upfront,0.85624,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:44.543882 +AWS,ap-southeast-2,c5n.9xlarge,reserved_3y,no_upfront,0.85624,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:30.070844 +AWS,ap-southeast-2,c5n.9xlarge,reserved_3y,partial_upfront,0.85624,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:20.753964 +AWS,ap-southeast-2,c5n.9xlarge,spot,NA,0.895754,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038725 +AWS,ap-southeast-2,c5n.metal,on_demand,NA,5.076,USD,AWS Pricing API,2025-11-30T09:00:21.916360 +AWS,ap-southeast-2,c5n.metal,reserved_1y,all_upfront,2.263,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:52.643363 +AWS,ap-southeast-2,c5n.metal,reserved_1y,no_upfront,2.263,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:34.477230 +AWS,ap-southeast-2,c5n.metal,reserved_1y,partial_upfront,2.263,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:18.518565 +AWS,ap-southeast-2,c5n.metal,reserved_3y,all_upfront,2.263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:54.285983 +AWS,ap-southeast-2,c5n.metal,reserved_3y,no_upfront,2.263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:37.702945 +AWS,ap-southeast-2,c5n.metal,reserved_3y,partial_upfront,2.263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:29.846045 +AWS,ap-southeast-2,c5n.metal,spot,NA,1.68334,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037266 +AWS,ap-southeast-2,c5n.xlarge,on_demand,NA,0.282,USD,AWS Pricing API,2025-11-30T09:01:15.807323 +AWS,ap-southeast-2,c5n.xlarge,reserved_1y,all_upfront,0.192922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:45.854427 +AWS,ap-southeast-2,c5n.xlarge,reserved_1y,no_upfront,0.192922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:28.382205 +AWS,ap-southeast-2,c5n.xlarge,reserved_1y,partial_upfront,0.192922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:11.569836 +AWS,ap-southeast-2,c5n.xlarge,reserved_3y,all_upfront,0.064307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:46.533865 +AWS,ap-southeast-2,c5n.xlarge,reserved_3y,no_upfront,0.064307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:32.132861 +AWS,ap-southeast-2,c5n.xlarge,reserved_3y,partial_upfront,0.064307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:22.775085 +AWS,ap-southeast-2,c5n.xlarge,spot,NA,0.138338,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038821 +AWS,ap-southeast-2,c6g.12xlarge,on_demand,NA,2.1312,USD,AWS Pricing API,2025-11-30T09:00:27.340468 +AWS,ap-southeast-2,c6g.12xlarge,reserved_1y,all_upfront,1.461986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:57.930855 +AWS,ap-southeast-2,c6g.12xlarge,reserved_1y,no_upfront,1.461986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:39.853079 +AWS,ap-southeast-2,c6g.12xlarge,reserved_1y,partial_upfront,1.461986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:23.767719 +AWS,ap-southeast-2,c6g.12xlarge,reserved_3y,all_upfront,0.487329,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:59.478560 +AWS,ap-southeast-2,c6g.12xlarge,reserved_3y,no_upfront,0.487329,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:43.112062 +AWS,ap-southeast-2,c6g.12xlarge,reserved_3y,partial_upfront,0.487329,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:35.103799 +AWS,ap-southeast-2,c6g.12xlarge,spot,NA,0.679404,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037426 +AWS,ap-southeast-2,c6g.16xlarge,on_demand,NA,2.8416,USD,AWS Pricing API,2025-11-30T09:00:45.357370 +AWS,ap-southeast-2,c6g.16xlarge,reserved_1y,all_upfront,2.685227,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:15.851466 +AWS,ap-southeast-2,c6g.16xlarge,reserved_1y,no_upfront,2.685227,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:57.885186 +AWS,ap-southeast-2,c6g.16xlarge,reserved_1y,partial_upfront,2.685227,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:41.563235 +AWS,ap-southeast-2,c6g.16xlarge,reserved_3y,all_upfront,1.342609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:17.063309 +AWS,ap-southeast-2,c6g.16xlarge,reserved_3y,no_upfront,1.342609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:01.409884 +AWS,ap-southeast-2,c6g.16xlarge,reserved_3y,partial_upfront,1.342609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:52.907646 +AWS,ap-southeast-2,c6g.16xlarge,spot,NA,0.922857,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037920 +AWS,ap-southeast-2,c6g.2xlarge,on_demand,NA,0.3552,USD,AWS Pricing API,2025-11-30T09:00:57.506382 +AWS,ap-southeast-2,c6g.2xlarge,reserved_1y,all_upfront,0.208904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:27.877503 +AWS,ap-southeast-2,c6g.2xlarge,reserved_1y,no_upfront,0.208904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:10.113590 +AWS,ap-southeast-2,c6g.2xlarge,reserved_1y,partial_upfront,0.208904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:53.557075 +AWS,ap-southeast-2,c6g.2xlarge,reserved_3y,all_upfront,0.069635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:28.884859 +AWS,ap-southeast-2,c6g.2xlarge,reserved_3y,no_upfront,0.069635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:13.859931 +AWS,ap-southeast-2,c6g.2xlarge,reserved_3y,partial_upfront,0.069635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:04.933860 +AWS,ap-southeast-2,c6g.2xlarge,spot,NA,0.143463,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038311 +AWS,ap-southeast-2,c6g.4xlarge,on_demand,NA,0.7104,USD,AWS Pricing API,2025-11-30T09:01:16.627348 +AWS,ap-southeast-2,c6g.4xlarge,reserved_1y,all_upfront,0.4476,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:46.673326 +AWS,ap-southeast-2,c6g.4xlarge,reserved_1y,no_upfront,0.4476,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:29.207196 +AWS,ap-southeast-2,c6g.4xlarge,reserved_1y,partial_upfront,0.4476,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:12.392470 +AWS,ap-southeast-2,c6g.4xlarge,reserved_3y,all_upfront,0.4476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:47.330698 +AWS,ap-southeast-2,c6g.4xlarge,reserved_3y,no_upfront,0.4476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:32.962728 +AWS,ap-southeast-2,c6g.4xlarge,reserved_3y,partial_upfront,0.4476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:23.587857 +AWS,ap-southeast-2,c6g.4xlarge,spot,NA,0.2446,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038801 +AWS,ap-southeast-2,c6g.8xlarge,on_demand,NA,1.4208,USD,AWS Pricing API,2025-11-30T09:00:43.715395 +AWS,ap-southeast-2,c6g.8xlarge,reserved_1y,all_upfront,1.0443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:14.196868 +AWS,ap-southeast-2,c6g.8xlarge,reserved_1y,no_upfront,1.0443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:56.261326 +AWS,ap-southeast-2,c6g.8xlarge,reserved_1y,partial_upfront,1.0443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:39.955848 +AWS,ap-southeast-2,c6g.8xlarge,reserved_3y,all_upfront,1.0443,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:15.476963 +AWS,ap-southeast-2,c6g.8xlarge,reserved_3y,no_upfront,1.0443,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:59.746920 +AWS,ap-southeast-2,c6g.8xlarge,reserved_3y,partial_upfront,1.0443,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:51.303169 +AWS,ap-southeast-2,c6g.8xlarge,spot,NA,0.505246,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037865 +AWS,ap-southeast-2,c6g.xlarge,on_demand,NA,0.1776,USD,AWS Pricing API,2025-11-30T09:01:22.113741 +AWS,ap-southeast-2,c6g.xlarge,reserved_1y,all_upfront,0.106611,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:52.065834 +AWS,ap-southeast-2,c6g.xlarge,reserved_1y,no_upfront,0.106611,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:34.700009 +AWS,ap-southeast-2,c6g.xlarge,reserved_1y,partial_upfront,0.106611,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:17.782394 +AWS,ap-southeast-2,c6g.xlarge,reserved_3y,all_upfront,0.07107,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:52.640031 +AWS,ap-southeast-2,c6g.xlarge,reserved_3y,no_upfront,0.07107,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:38.482437 +AWS,ap-southeast-2,c6g.xlarge,reserved_3y,partial_upfront,0.07107,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:29.015872 +AWS,ap-southeast-2,c6g.xlarge,spot,NA,0.06672,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038938 +AWS,ap-southeast-2,c6gd.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T09:00:22.052388 +AWS,ap-southeast-2,c6gd.12xlarge,reserved_1y,all_upfront,1.7893,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:52.776664 +AWS,ap-southeast-2,c6gd.12xlarge,reserved_1y,no_upfront,1.7893,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:34.626495 +AWS,ap-southeast-2,c6gd.12xlarge,reserved_1y,partial_upfront,1.7893,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:18.652554 +AWS,ap-southeast-2,c6gd.12xlarge,reserved_3y,all_upfront,1.7893,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:54.416041 +AWS,ap-southeast-2,c6gd.12xlarge,reserved_3y,no_upfront,1.7893,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:37.841648 +AWS,ap-southeast-2,c6gd.12xlarge,reserved_3y,partial_upfront,1.7893,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:29.980050 +AWS,ap-southeast-2,c6gd.12xlarge,spot,NA,0.771525,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037291 +AWS,ap-southeast-2,c6gd.16xlarge,on_demand,NA,3.232,USD,AWS Pricing API,2025-11-30T09:01:00.669972 +AWS,ap-southeast-2,c6gd.16xlarge,reserved_1y,all_upfront,2.226598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:30.990509 +AWS,ap-southeast-2,c6gd.16xlarge,reserved_1y,no_upfront,2.226598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:13.275294 +AWS,ap-southeast-2,c6gd.16xlarge,reserved_1y,partial_upfront,2.226598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:56.664215 +AWS,ap-southeast-2,c6gd.16xlarge,reserved_3y,all_upfront,0.742199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:31.920851 +AWS,ap-southeast-2,c6gd.16xlarge,reserved_3y,no_upfront,0.742199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:17.038900 +AWS,ap-southeast-2,c6gd.16xlarge,reserved_3y,partial_upfront,0.742199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:08.002873 +AWS,ap-southeast-2,c6gd.16xlarge,spot,NA,1.021933,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038429 +AWS,ap-southeast-2,c6gd.2xlarge,on_demand,NA,0.404,USD,AWS Pricing API,2025-11-30T09:01:11.158694 +AWS,ap-southeast-2,c6gd.2xlarge,reserved_1y,all_upfront,0.239977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:41.276646 +AWS,ap-southeast-2,c6gd.2xlarge,reserved_1y,no_upfront,0.239977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:23.699442 +AWS,ap-southeast-2,c6gd.2xlarge,reserved_1y,partial_upfront,0.239977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:06.961440 +AWS,ap-southeast-2,c6gd.2xlarge,reserved_3y,all_upfront,0.159992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:42.030859 +AWS,ap-southeast-2,c6gd.2xlarge,reserved_3y,no_upfront,0.159992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:27.482736 +AWS,ap-southeast-2,c6gd.2xlarge,reserved_3y,partial_upfront,0.159992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:18.211789 +AWS,ap-southeast-2,c6gd.2xlarge,spot,NA,0.132815,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038661 +AWS,ap-southeast-2,c6gd.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T09:00:50.429762 +AWS,ap-southeast-2,c6gd.4xlarge,reserved_1y,all_upfront,0.470434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:20.841612 +AWS,ap-southeast-2,c6gd.4xlarge,reserved_1y,no_upfront,0.470434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:03.002740 +AWS,ap-southeast-2,c6gd.4xlarge,reserved_1y,partial_upfront,0.470434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:46.565700 +AWS,ap-southeast-2,c6gd.4xlarge,reserved_3y,all_upfront,0.156811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:21.993299 +AWS,ap-southeast-2,c6gd.4xlarge,reserved_3y,no_upfront,0.156811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:06.592134 +AWS,ap-southeast-2,c6gd.4xlarge,reserved_3y,partial_upfront,0.156811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:57.912184 +AWS,ap-southeast-2,c6gd.4xlarge,spot,NA,0.27892,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038091 +AWS,ap-southeast-2,c6gd.8xlarge,on_demand,NA,1.616,USD,AWS Pricing API,2025-11-30T09:01:19.499556 +AWS,ap-southeast-2,c6gd.8xlarge,reserved_1y,all_upfront,2.257648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:49.504601 +AWS,ap-southeast-2,c6gd.8xlarge,reserved_1y,no_upfront,2.257648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:32.094532 +AWS,ap-southeast-2,c6gd.8xlarge,reserved_1y,partial_upfront,2.257648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:15.225091 +AWS,ap-southeast-2,c6gd.8xlarge,reserved_3y,all_upfront,0.752549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:50.139478 +AWS,ap-southeast-2,c6gd.8xlarge,reserved_3y,no_upfront,0.752549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:35.876014 +AWS,ap-southeast-2,c6gd.8xlarge,reserved_3y,partial_upfront,0.752549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:26.454858 +AWS,ap-southeast-2,c6gd.8xlarge,spot,NA,0.560276,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038883 +AWS,ap-southeast-2,c6gd.xlarge,on_demand,NA,0.202,USD,AWS Pricing API,2025-11-30T09:01:10.473617 +AWS,ap-southeast-2,c6gd.xlarge,reserved_1y,all_upfront,0.19195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:40.605218 +AWS,ap-southeast-2,c6gd.xlarge,reserved_1y,no_upfront,0.19195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:23.019294 +AWS,ap-southeast-2,c6gd.xlarge,reserved_1y,partial_upfront,0.19195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:06.277690 +AWS,ap-southeast-2,c6gd.xlarge,reserved_3y,all_upfront,0.095983,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:41.362314 +AWS,ap-southeast-2,c6gd.xlarge,reserved_3y,no_upfront,0.095983,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:26.795027 +AWS,ap-southeast-2,c6gd.xlarge,reserved_3y,partial_upfront,0.095983,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:17.539162 +AWS,ap-southeast-2,c6gd.xlarge,spot,NA,0.073807,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038665 +AWS,ap-southeast-2,c6i.12xlarge,on_demand,NA,2.664,USD,AWS Pricing API,2025-11-30T09:01:10.334889 +AWS,ap-southeast-2,c6i.12xlarge,reserved_1y,all_upfront,1.953,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:40.471009 +AWS,ap-southeast-2,c6i.12xlarge,reserved_1y,no_upfront,1.953,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:22.884313 +AWS,ap-southeast-2,c6i.12xlarge,reserved_1y,partial_upfront,1.953,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:06.144657 +AWS,ap-southeast-2,c6i.12xlarge,reserved_3y,all_upfront,1.953,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:41.229799 +AWS,ap-southeast-2,c6i.12xlarge,reserved_3y,no_upfront,1.953,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:26.658953 +AWS,ap-southeast-2,c6i.12xlarge,reserved_3y,partial_upfront,1.953,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:17.400907 +AWS,ap-southeast-2,c6i.12xlarge,spot,NA,1.013987,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038681 +AWS,ap-southeast-2,c6i.16xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:00:44.948728 +AWS,ap-southeast-2,c6i.16xlarge,reserved_1y,all_upfront,2.233581,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:15.432308 +AWS,ap-southeast-2,c6i.16xlarge,reserved_1y,no_upfront,2.233581,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:57.478143 +AWS,ap-southeast-2,c6i.16xlarge,reserved_1y,partial_upfront,2.233581,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:41.163932 +AWS,ap-southeast-2,c6i.16xlarge,reserved_3y,all_upfront,1.48906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:16.660040 +AWS,ap-southeast-2,c6i.16xlarge,reserved_3y,no_upfront,1.48906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:00.991317 +AWS,ap-southeast-2,c6i.16xlarge,reserved_3y,partial_upfront,1.48906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:52.502539 +AWS,ap-southeast-2,c6i.16xlarge,spot,NA,1.500064,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037916 +AWS,ap-southeast-2,c6i.24xlarge,on_demand,NA,5.328,USD,AWS Pricing API,2025-11-30T09:00:39.619866 +AWS,ap-southeast-2,c6i.24xlarge,reserved_1y,all_upfront,7.479338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:10.138641 +AWS,ap-southeast-2,c6i.24xlarge,reserved_1y,no_upfront,7.479338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:52.172912 +AWS,ap-southeast-2,c6i.24xlarge,reserved_1y,partial_upfront,7.479338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:35.914664 +AWS,ap-southeast-2,c6i.24xlarge,reserved_3y,all_upfront,2.493113,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:11.508973 +AWS,ap-southeast-2,c6i.24xlarge,reserved_3y,no_upfront,2.493113,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:55.620352 +AWS,ap-southeast-2,c6i.24xlarge,reserved_3y,partial_upfront,2.493113,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:47.264923 +AWS,ap-southeast-2,c6i.24xlarge,spot,NA,2.3129,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037755 +AWS,ap-southeast-2,c6i.2xlarge,on_demand,NA,0.444,USD,AWS Pricing API,2025-11-30T09:00:23.383884 +AWS,ap-southeast-2,c6i.2xlarge,reserved_1y,all_upfront,0.22896,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:54.006973 +AWS,ap-southeast-2,c6i.2xlarge,reserved_1y,no_upfront,0.22896,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:35.862950 +AWS,ap-southeast-2,c6i.2xlarge,reserved_1y,partial_upfront,0.22896,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:19.861523 +AWS,ap-southeast-2,c6i.2xlarge,reserved_3y,all_upfront,0.22896,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:55.626144 +AWS,ap-southeast-2,c6i.2xlarge,reserved_3y,no_upfront,0.22896,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:39.087375 +AWS,ap-southeast-2,c6i.2xlarge,reserved_3y,partial_upfront,0.22896,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:31.190454 +AWS,ap-southeast-2,c6i.2xlarge,spot,NA,0.180955,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037299 +AWS,ap-southeast-2,c6i.32xlarge,on_demand,NA,7.104,USD,AWS Pricing API,2025-11-30T09:01:15.114201 +AWS,ap-southeast-2,c6i.32xlarge,reserved_1y,all_upfront,4.467162,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:45.173383 +AWS,ap-southeast-2,c6i.32xlarge,reserved_1y,no_upfront,4.467162,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:27.701781 +AWS,ap-southeast-2,c6i.32xlarge,reserved_1y,partial_upfront,4.467162,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:10.891997 +AWS,ap-southeast-2,c6i.32xlarge,reserved_3y,all_upfront,2.978121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:45.868243 +AWS,ap-southeast-2,c6i.32xlarge,reserved_3y,no_upfront,2.978121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:31.446291 +AWS,ap-southeast-2,c6i.32xlarge,reserved_3y,partial_upfront,2.978121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:22.105380 +AWS,ap-southeast-2,c6i.32xlarge,spot,NA,2.993995,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038777 +AWS,ap-southeast-2,c6i.4xlarge,on_demand,NA,0.888,USD,AWS Pricing API,2025-11-30T09:00:19.288864 +AWS,ap-southeast-2,c6i.4xlarge,reserved_1y,all_upfront,0.58632,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:50.078617 +AWS,ap-southeast-2,c6i.4xlarge,reserved_1y,no_upfront,0.58632,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:31.842911 +AWS,ap-southeast-2,c6i.4xlarge,reserved_1y,partial_upfront,0.58632,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:15.954155 +AWS,ap-southeast-2,c6i.4xlarge,reserved_3y,all_upfront,0.58632,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:51.775534 +AWS,ap-southeast-2,c6i.4xlarge,reserved_3y,no_upfront,0.58632,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:35.079740 +AWS,ap-southeast-2,c6i.4xlarge,reserved_3y,partial_upfront,0.58632,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:27.294808 +AWS,ap-southeast-2,c6i.4xlarge,spot,NA,0.318224,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037191 +AWS,ap-southeast-2,c6i.8xlarge,on_demand,NA,1.776,USD,AWS Pricing API,2025-11-30T09:00:33.226723 +AWS,ap-southeast-2,c6i.8xlarge,reserved_1y,all_upfront,1.116847,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:03.780346 +AWS,ap-southeast-2,c6i.8xlarge,reserved_1y,no_upfront,1.116847,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:45.758272 +AWS,ap-southeast-2,c6i.8xlarge,reserved_1y,partial_upfront,1.116847,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:29.573204 +AWS,ap-southeast-2,c6i.8xlarge,reserved_3y,all_upfront,0.744549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:05.260736 +AWS,ap-southeast-2,c6i.8xlarge,reserved_3y,no_upfront,0.744549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:49.095735 +AWS,ap-southeast-2,c6i.8xlarge,reserved_3y,partial_upfront,0.744549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:40.918256 +AWS,ap-southeast-2,c6i.8xlarge,spot,NA,0.663874,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037619 +AWS,ap-southeast-2,c6i.xlarge,on_demand,NA,0.222,USD,AWS Pricing API,2025-11-30T09:00:37.448689 +AWS,ap-southeast-2,c6i.xlarge,reserved_1y,all_upfront,0.186768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:07.981129 +AWS,ap-southeast-2,c6i.xlarge,reserved_1y,no_upfront,0.186768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:49.979145 +AWS,ap-southeast-2,c6i.xlarge,reserved_1y,partial_upfront,0.186768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:33.750032 +AWS,ap-southeast-2,c6i.xlarge,reserved_3y,all_upfront,0.093389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:09.390690 +AWS,ap-southeast-2,c6i.xlarge,reserved_3y,no_upfront,0.093389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:53.406373 +AWS,ap-southeast-2,c6i.xlarge,reserved_3y,partial_upfront,0.093389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:45.097416 +AWS,ap-southeast-2,c6i.xlarge,spot,NA,0.096322,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037718 +AWS,ap-southeast-2,c6id.12xlarge,on_demand,NA,3.1752,USD,AWS Pricing API,2025-11-30T09:01:06.045369 +AWS,ap-southeast-2,c6id.12xlarge,reserved_1y,all_upfront,1.905071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:36.281930 +AWS,ap-southeast-2,c6id.12xlarge,reserved_1y,no_upfront,1.905071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:18.622858 +AWS,ap-southeast-2,c6id.12xlarge,reserved_1y,partial_upfront,1.905071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:01.967935 +AWS,ap-southeast-2,c6id.12xlarge,reserved_3y,all_upfront,1.270064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:37.114259 +AWS,ap-southeast-2,c6id.12xlarge,reserved_3y,no_upfront,1.270064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:22.391274 +AWS,ap-southeast-2,c6id.12xlarge,reserved_3y,partial_upfront,1.270064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:13.240191 +AWS,ap-southeast-2,c6id.12xlarge,spot,NA,1.074725,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038589 +AWS,ap-southeast-2,c6id.16xlarge,on_demand,NA,4.2336,USD,AWS Pricing API,2025-11-30T09:01:15.672167 +AWS,ap-southeast-2,c6id.16xlarge,reserved_1y,all_upfront,2.66717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:45.716084 +AWS,ap-southeast-2,c6id.16xlarge,reserved_1y,no_upfront,2.66717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:28.247230 +AWS,ap-southeast-2,c6id.16xlarge,reserved_1y,partial_upfront,2.66717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:11.435367 +AWS,ap-southeast-2,c6id.16xlarge,reserved_3y,all_upfront,2.66717,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:46.397520 +AWS,ap-southeast-2,c6id.16xlarge,reserved_3y,no_upfront,2.66717,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:31.995222 +AWS,ap-southeast-2,c6id.16xlarge,reserved_3y,partial_upfront,2.66717,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:22.642175 +AWS,ap-southeast-2,c6id.16xlarge,spot,NA,1.52937,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038793 +AWS,ap-southeast-2,c6id.24xlarge,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T09:00:33.644083 +AWS,ap-southeast-2,c6id.24xlarge,reserved_1y,all_upfront,8.921575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:04.189999 +AWS,ap-southeast-2,c6id.24xlarge,reserved_1y,no_upfront,8.921575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:46.165542 +AWS,ap-southeast-2,c6id.24xlarge,reserved_1y,partial_upfront,8.921575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:29.976423 +AWS,ap-southeast-2,c6id.24xlarge,reserved_3y,all_upfront,2.973858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:05.670989 +AWS,ap-southeast-2,c6id.24xlarge,reserved_3y,no_upfront,2.973858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:49.515457 +AWS,ap-southeast-2,c6id.24xlarge,reserved_3y,partial_upfront,2.973858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:41.332033 +AWS,ap-southeast-2,c6id.24xlarge,spot,NA,2.11671,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037623 +AWS,ap-southeast-2,c6id.2xlarge,on_demand,NA,0.5292,USD,AWS Pricing API,2025-11-30T09:01:26.061266 +AWS,ap-southeast-2,c6id.2xlarge,reserved_1y,all_upfront,0.596918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:55.995843 +AWS,ap-southeast-2,c6id.2xlarge,reserved_1y,no_upfront,0.596918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:38.649250 +AWS,ap-southeast-2,c6id.2xlarge,reserved_1y,partial_upfront,0.596918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:21.707837 +AWS,ap-southeast-2,c6id.2xlarge,reserved_3y,all_upfront,0.198973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:56.493599 +AWS,ap-southeast-2,c6id.2xlarge,reserved_3y,no_upfront,0.198973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:42.493187 +AWS,ap-southeast-2,c6id.2xlarge,reserved_3y,partial_upfront,0.198973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:32.898383 +AWS,ap-southeast-2,c6id.2xlarge,spot,NA,0.194033,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039072 +AWS,ap-southeast-2,c6id.32xlarge,on_demand,NA,8.4672,USD,AWS Pricing API,2025-11-30T09:00:21.363581 +AWS,ap-southeast-2,c6id.32xlarge,reserved_1y,all_upfront,5.33434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:52.093189 +AWS,ap-southeast-2,c6id.32xlarge,reserved_1y,no_upfront,5.33434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:33.907032 +AWS,ap-southeast-2,c6id.32xlarge,reserved_1y,partial_upfront,5.33434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:17.978964 +AWS,ap-southeast-2,c6id.32xlarge,reserved_3y,all_upfront,5.33434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:53.752240 +AWS,ap-southeast-2,c6id.32xlarge,reserved_3y,no_upfront,5.33434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:37.146783 +AWS,ap-southeast-2,c6id.32xlarge,reserved_3y,partial_upfront,5.33434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:29.310326 +AWS,ap-southeast-2,c6id.32xlarge,spot,NA,2.945096,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037278 +AWS,ap-southeast-2,c6id.4xlarge,on_demand,NA,1.0584,USD,AWS Pricing API,2025-11-30T09:00:28.577174 +AWS,ap-southeast-2,c6id.4xlarge,reserved_1y,all_upfront,0.846726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:59.158190 +AWS,ap-southeast-2,c6id.4xlarge,reserved_1y,no_upfront,0.846726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:41.096340 +AWS,ap-southeast-2,c6id.4xlarge,reserved_1y,partial_upfront,0.846726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:24.974332 +AWS,ap-southeast-2,c6id.4xlarge,reserved_3y,all_upfront,0.423362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:00.674490 +AWS,ap-southeast-2,c6id.4xlarge,reserved_3y,no_upfront,0.423362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:44.350318 +AWS,ap-southeast-2,c6id.4xlarge,reserved_3y,partial_upfront,0.423362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:36.345010 +AWS,ap-southeast-2,c6id.4xlarge,spot,NA,0.39321,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037479 +AWS,ap-southeast-2,c6id.8xlarge,on_demand,NA,2.1168,USD,AWS Pricing API,2025-11-30T09:01:01.906523 +AWS,ap-southeast-2,c6id.8xlarge,reserved_1y,all_upfront,1.455936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:32.207893 +AWS,ap-southeast-2,c6id.8xlarge,reserved_1y,no_upfront,1.455936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:14.512062 +AWS,ap-southeast-2,c6id.8xlarge,reserved_1y,partial_upfront,1.455936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:57.873164 +AWS,ap-southeast-2,c6id.8xlarge,reserved_3y,all_upfront,0.485312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:33.115690 +AWS,ap-southeast-2,c6id.8xlarge,reserved_3y,no_upfront,0.485312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:18.281996 +AWS,ap-southeast-2,c6id.8xlarge,reserved_3y,partial_upfront,0.485312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:09.224228 +AWS,ap-southeast-2,c6id.8xlarge,spot,NA,0.744554,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038441 +AWS,ap-southeast-2,c6id.xlarge,on_demand,NA,0.2646,USD,AWS Pricing API,2025-11-30T09:01:20.870612 +AWS,ap-southeast-2,c6id.xlarge,reserved_1y,all_upfront,0.19499,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:50.859480 +AWS,ap-southeast-2,c6id.xlarge,reserved_1y,no_upfront,0.19499,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:33.453845 +AWS,ap-southeast-2,c6id.xlarge,reserved_1y,partial_upfront,0.19499,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:16.579698 +AWS,ap-southeast-2,c6id.xlarge,reserved_3y,all_upfront,0.19499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:51.453344 +AWS,ap-southeast-2,c6id.xlarge,reserved_3y,no_upfront,0.19499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:37.248193 +AWS,ap-southeast-2,c6id.xlarge,reserved_3y,partial_upfront,0.19499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:27.819546 +AWS,ap-southeast-2,c6id.xlarge,spot,NA,0.093407,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038922 +AWS,ap-southeast-2,c6in.12xlarge,on_demand,NA,3.5532,USD,AWS Pricing API,2025-11-30T09:00:26.923399 +AWS,ap-southeast-2,c6in.12xlarge,reserved_1y,all_upfront,2.60414,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:57.528497 +AWS,ap-southeast-2,c6in.12xlarge,reserved_1y,no_upfront,2.60414,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:39.447355 +AWS,ap-southeast-2,c6in.12xlarge,reserved_1y,partial_upfront,2.60414,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:23.363856 +AWS,ap-southeast-2,c6in.12xlarge,reserved_3y,all_upfront,2.60414,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:59.085539 +AWS,ap-southeast-2,c6in.12xlarge,reserved_3y,no_upfront,2.60414,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:42.701711 +AWS,ap-southeast-2,c6in.12xlarge,reserved_3y,partial_upfront,2.60414,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:34.693065 +AWS,ap-southeast-2,c6in.12xlarge,spot,NA,1.24287,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037417 +AWS,ap-southeast-2,c6in.16xlarge,on_demand,NA,4.7376,USD,AWS Pricing API,2025-11-30T09:00:38.394368 +AWS,ap-southeast-2,c6in.16xlarge,reserved_1y,all_upfront,2.785731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:08.923682 +AWS,ap-southeast-2,c6in.16xlarge,reserved_1y,no_upfront,2.785731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:50.950074 +AWS,ap-southeast-2,c6in.16xlarge,reserved_1y,partial_upfront,2.785731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:34.696743 +AWS,ap-southeast-2,c6in.16xlarge,reserved_3y,all_upfront,0.928577,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:10.321075 +AWS,ap-southeast-2,c6in.16xlarge,reserved_3y,no_upfront,0.928577,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:54.376112 +AWS,ap-southeast-2,c6in.16xlarge,reserved_3y,partial_upfront,0.928577,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:46.050898 +AWS,ap-southeast-2,c6in.16xlarge,spot,NA,1.854554,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037734 +AWS,ap-southeast-2,c6in.24xlarge,on_demand,NA,7.1064,USD,AWS Pricing API,2025-11-30T09:00:47.984504 +AWS,ap-southeast-2,c6in.24xlarge,reserved_1y,all_upfront,4.263883,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:18.433253 +AWS,ap-southeast-2,c6in.24xlarge,reserved_1y,no_upfront,4.263883,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:00.487314 +AWS,ap-southeast-2,c6in.24xlarge,reserved_1y,partial_upfront,4.263883,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:44.137687 +AWS,ap-southeast-2,c6in.24xlarge,reserved_3y,all_upfront,2.842574,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:19.615685 +AWS,ap-southeast-2,c6in.24xlarge,reserved_3y,no_upfront,2.842574,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:04.110298 +AWS,ap-southeast-2,c6in.24xlarge,reserved_3y,partial_upfront,2.842574,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:55.490386 +AWS,ap-southeast-2,c6in.24xlarge,spot,NA,2.339504,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038003 +AWS,ap-southeast-2,c6in.2xlarge,on_demand,NA,0.5922,USD,AWS Pricing API,2025-11-30T09:00:51.662411 +AWS,ap-southeast-2,c6in.2xlarge,reserved_1y,all_upfront,0.718493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:22.052861 +AWS,ap-southeast-2,c6in.2xlarge,reserved_1y,no_upfront,0.718493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:04.232872 +AWS,ap-southeast-2,c6in.2xlarge,reserved_1y,partial_upfront,0.718493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:47.781647 +AWS,ap-southeast-2,c6in.2xlarge,reserved_3y,all_upfront,0.239498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:23.187887 +AWS,ap-southeast-2,c6in.2xlarge,reserved_3y,no_upfront,0.239498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:07.822875 +AWS,ap-southeast-2,c6in.2xlarge,reserved_3y,partial_upfront,0.239498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:59.131206 +AWS,ap-southeast-2,c6in.2xlarge,spot,NA,0.207051,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038148 +AWS,ap-southeast-2,c6in.32xlarge,on_demand,NA,9.4752,USD,AWS Pricing API,2025-11-30T09:01:26.199797 +AWS,ap-southeast-2,c6in.32xlarge,reserved_1y,all_upfront,5.96938,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:56.129100 +AWS,ap-southeast-2,c6in.32xlarge,reserved_1y,no_upfront,5.96938,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:38.786742 +AWS,ap-southeast-2,c6in.32xlarge,reserved_1y,partial_upfront,5.96938,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:21.840305 +AWS,ap-southeast-2,c6in.32xlarge,reserved_3y,all_upfront,5.96938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:56.625391 +AWS,ap-southeast-2,c6in.32xlarge,reserved_3y,no_upfront,5.96938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:42.629051 +AWS,ap-southeast-2,c6in.32xlarge,reserved_3y,partial_upfront,5.96938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:33.032763 +AWS,ap-southeast-2,c6in.32xlarge,spot,NA,3.43744,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039063 +AWS,ap-southeast-2,c6in.4xlarge,on_demand,NA,1.1844,USD,AWS Pricing API,2025-11-30T09:00:25.957644 +AWS,ap-southeast-2,c6in.4xlarge,reserved_1y,all_upfront,0.849923,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:56.577088 +AWS,ap-southeast-2,c6in.4xlarge,reserved_1y,no_upfront,0.849923,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:38.485803 +AWS,ap-southeast-2,c6in.4xlarge,reserved_1y,partial_upfront,0.849923,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:22.416444 +AWS,ap-southeast-2,c6in.4xlarge,reserved_3y,all_upfront,0.424961,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:58.149699 +AWS,ap-southeast-2,c6in.4xlarge,reserved_3y,no_upfront,0.424961,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:41.728315 +AWS,ap-southeast-2,c6in.4xlarge,reserved_3y,partial_upfront,0.424961,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:33.744101 +AWS,ap-southeast-2,c6in.4xlarge,spot,NA,0.476321,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037383 +AWS,ap-southeast-2,c6in.8xlarge,on_demand,NA,2.3688,USD,AWS Pricing API,2025-11-30T09:00:56.148397 +AWS,ap-southeast-2,c6in.8xlarge,reserved_1y,all_upfront,1.955238,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:26.526722 +AWS,ap-southeast-2,c6in.8xlarge,reserved_1y,no_upfront,1.955238,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:08.750926 +AWS,ap-southeast-2,c6in.8xlarge,reserved_1y,partial_upfront,1.955238,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:52.205484 +AWS,ap-southeast-2,c6in.8xlarge,reserved_3y,all_upfront,0.977613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:27.569791 +AWS,ap-southeast-2,c6in.8xlarge,reserved_3y,no_upfront,0.977613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:12.483860 +AWS,ap-southeast-2,c6in.8xlarge,reserved_3y,partial_upfront,0.977613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:03.599653 +AWS,ap-southeast-2,c6in.8xlarge,spot,NA,0.809043,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038271 +AWS,ap-southeast-2,c6in.xlarge,on_demand,NA,0.2961,USD,AWS Pricing API,2025-11-30T09:00:43.851525 +AWS,ap-southeast-2,c6in.xlarge,reserved_1y,all_upfront,0.206651,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:14.342638 +AWS,ap-southeast-2,c6in.xlarge,reserved_1y,no_upfront,0.206651,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:56.397252 +AWS,ap-southeast-2,c6in.xlarge,reserved_1y,partial_upfront,0.206651,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:40.091955 +AWS,ap-southeast-2,c6in.xlarge,reserved_3y,all_upfront,0.137777,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:15.609163 +AWS,ap-southeast-2,c6in.xlarge,reserved_3y,no_upfront,0.137777,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:59.884039 +AWS,ap-southeast-2,c6in.xlarge,reserved_3y,partial_upfront,0.137777,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:51.436776 +AWS,ap-southeast-2,c6in.xlarge,spot,NA,0.098511,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037885 +AWS,ap-southeast-2,c7g.12xlarge,on_demand,NA,2.2646,USD,AWS Pricing API,2025-11-30T09:00:53.963517 +AWS,ap-southeast-2,c7g.12xlarge,reserved_1y,all_upfront,1.4952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:24.352901 +AWS,ap-southeast-2,c7g.12xlarge,reserved_1y,no_upfront,1.4952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:06.574196 +AWS,ap-southeast-2,c7g.12xlarge,reserved_1y,partial_upfront,1.4952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:50.061913 +AWS,ap-southeast-2,c7g.12xlarge,reserved_3y,all_upfront,1.4952,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:25.436092 +AWS,ap-southeast-2,c7g.12xlarge,reserved_3y,no_upfront,1.4952,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:10.261369 +AWS,ap-southeast-2,c7g.12xlarge,reserved_3y,partial_upfront,1.4952,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:01.405428 +AWS,ap-southeast-2,c7g.12xlarge,spot,NA,0.736784,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038221 +AWS,ap-southeast-2,c7g.16xlarge,on_demand,NA,3.0195,USD,AWS Pricing API,2025-11-30T09:01:03.716243 +AWS,ap-southeast-2,c7g.16xlarge,reserved_1y,all_upfront,2.2136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:33.963205 +AWS,ap-southeast-2,c7g.16xlarge,reserved_1y,no_upfront,2.2136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:16.290379 +AWS,ap-southeast-2,c7g.16xlarge,reserved_1y,partial_upfront,2.2136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:59.644640 +AWS,ap-southeast-2,c7g.16xlarge,reserved_3y,all_upfront,2.2136,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:34.844945 +AWS,ap-southeast-2,c7g.16xlarge,reserved_3y,no_upfront,2.2136,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:20.063764 +AWS,ap-southeast-2,c7g.16xlarge,reserved_3y,partial_upfront,2.2136,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:10.965511 +AWS,ap-southeast-2,c7g.16xlarge,spot,NA,0.958344,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038480 +AWS,ap-southeast-2,c7g.2xlarge,on_demand,NA,0.3774,USD,AWS Pricing API,2025-11-30T09:01:22.666692 +AWS,ap-southeast-2,c7g.2xlarge,reserved_1y,all_upfront,0.2492,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:52.607876 +AWS,ap-southeast-2,c7g.2xlarge,reserved_1y,no_upfront,0.2492,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:35.244344 +AWS,ap-southeast-2,c7g.2xlarge,reserved_1y,partial_upfront,0.2492,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:18.323241 +AWS,ap-southeast-2,c7g.2xlarge,reserved_3y,all_upfront,0.2492,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:53.173154 +AWS,ap-southeast-2,c7g.2xlarge,reserved_3y,no_upfront,0.2492,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:39.035633 +AWS,ap-southeast-2,c7g.2xlarge,reserved_3y,partial_upfront,0.2492,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:29.547707 +AWS,ap-southeast-2,c7g.2xlarge,spot,NA,0.148983,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038984 +AWS,ap-southeast-2,c7g.4xlarge,on_demand,NA,0.7549,USD,AWS Pricing API,2025-11-30T09:00:39.073504 +AWS,ap-southeast-2,c7g.4xlarge,reserved_1y,all_upfront,0.5534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:09.599441 +AWS,ap-southeast-2,c7g.4xlarge,reserved_1y,no_upfront,0.5534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:51.628070 +AWS,ap-southeast-2,c7g.4xlarge,reserved_1y,partial_upfront,0.5534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:35.369936 +AWS,ap-southeast-2,c7g.4xlarge,reserved_3y,all_upfront,0.5534,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:10.980900 +AWS,ap-southeast-2,c7g.4xlarge,reserved_3y,no_upfront,0.5534,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:55.072408 +AWS,ap-southeast-2,c7g.4xlarge,reserved_3y,partial_upfront,0.5534,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:46.727872 +AWS,ap-southeast-2,c7g.4xlarge,spot,NA,0.258799,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037771 +AWS,ap-southeast-2,c7g.8xlarge,on_demand,NA,1.5098,USD,AWS Pricing API,2025-11-30T09:00:50.153856 +AWS,ap-southeast-2,c7g.8xlarge,reserved_1y,all_upfront,0.9968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:20.574319 +AWS,ap-southeast-2,c7g.8xlarge,reserved_1y,no_upfront,0.9968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:02.728752 +AWS,ap-southeast-2,c7g.8xlarge,reserved_1y,partial_upfront,0.9968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:46.299372 +AWS,ap-southeast-2,c7g.8xlarge,reserved_3y,all_upfront,0.9968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:21.731185 +AWS,ap-southeast-2,c7g.8xlarge,reserved_3y,no_upfront,0.9968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:06.316910 +AWS,ap-southeast-2,c7g.8xlarge,reserved_3y,partial_upfront,0.9968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:57.640390 +AWS,ap-southeast-2,c7g.8xlarge,spot,NA,0.533482,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038116 +AWS,ap-southeast-2,c7g.xlarge,on_demand,NA,0.1887,USD,AWS Pricing API,2025-11-30T09:00:37.173636 +AWS,ap-southeast-2,c7g.xlarge,reserved_1y,all_upfront,0.1384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:07.704350 +AWS,ap-southeast-2,c7g.xlarge,reserved_1y,no_upfront,0.1384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:49.708898 +AWS,ap-southeast-2,c7g.xlarge,reserved_1y,partial_upfront,0.1384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:33.484196 +AWS,ap-southeast-2,c7g.xlarge,reserved_3y,all_upfront,0.1384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:09.112292 +AWS,ap-southeast-2,c7g.xlarge,reserved_3y,no_upfront,0.1384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:53.131628 +AWS,ap-southeast-2,c7g.xlarge,reserved_3y,partial_upfront,0.1384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:44.830600 +AWS,ap-southeast-2,c7g.xlarge,spot,NA,0.080428,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037715 +AWS,ap-southeast-2,c7gd.12xlarge,on_demand,NA,2.8579,USD,AWS Pricing API,2025-11-30T09:00:48.120448 +AWS,ap-southeast-2,c7gd.12xlarge,reserved_1y,all_upfront,1.8005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:18.568733 +AWS,ap-southeast-2,c7gd.12xlarge,reserved_1y,no_upfront,1.8005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:00.625055 +AWS,ap-southeast-2,c7gd.12xlarge,reserved_1y,partial_upfront,1.8005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:44.272101 +AWS,ap-southeast-2,c7gd.12xlarge,reserved_3y,all_upfront,1.8005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:19.749227 +AWS,ap-southeast-2,c7gd.12xlarge,reserved_3y,no_upfront,1.8005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:04.252248 +AWS,ap-southeast-2,c7gd.12xlarge,reserved_3y,partial_upfront,1.8005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:55.627167 +AWS,ap-southeast-2,c7gd.12xlarge,spot,NA,0.909541,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038007 +AWS,ap-southeast-2,c7gd.16xlarge,on_demand,NA,3.8106,USD,AWS Pricing API,2025-11-30T09:00:34.064015 +AWS,ap-southeast-2,c7gd.16xlarge,reserved_1y,all_upfront,2.4007,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:04.598571 +AWS,ap-southeast-2,c7gd.16xlarge,reserved_1y,no_upfront,2.4007,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:46.573486 +AWS,ap-southeast-2,c7gd.16xlarge,reserved_1y,partial_upfront,2.4007,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:30.378094 +AWS,ap-southeast-2,c7gd.16xlarge,reserved_3y,all_upfront,2.4007,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:06.077408 +AWS,ap-southeast-2,c7gd.16xlarge,reserved_3y,no_upfront,2.4007,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:49.931674 +AWS,ap-southeast-2,c7gd.16xlarge,reserved_3y,partial_upfront,2.4007,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:41.734107 +AWS,ap-southeast-2,c7gd.16xlarge,spot,NA,1.200835,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037611 +AWS,ap-southeast-2,c7gd.2xlarge,on_demand,NA,0.4763,USD,AWS Pricing API,2025-11-30T09:01:03.578441 +AWS,ap-southeast-2,c7gd.2xlarge,reserved_1y,all_upfront,0.334223,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:33.826485 +AWS,ap-southeast-2,c7gd.2xlarge,reserved_1y,no_upfront,0.334223,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:16.148541 +AWS,ap-southeast-2,c7gd.2xlarge,reserved_1y,partial_upfront,0.334223,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:59.510514 +AWS,ap-southeast-2,c7gd.2xlarge,reserved_3y,all_upfront,0.222808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:34.702769 +AWS,ap-southeast-2,c7gd.2xlarge,reserved_3y,no_upfront,0.222808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:19.924752 +AWS,ap-southeast-2,c7gd.2xlarge,reserved_3y,partial_upfront,0.222808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:10.833746 +AWS,ap-southeast-2,c7gd.2xlarge,spot,NA,0.163008,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038493 +AWS,ap-southeast-2,c7gd.4xlarge,on_demand,NA,0.9526,USD,AWS Pricing API,2025-11-30T09:00:50.838541 +AWS,ap-southeast-2,c7gd.4xlarge,reserved_1y,all_upfront,0.6002,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:21.248873 +AWS,ap-southeast-2,c7gd.4xlarge,reserved_1y,no_upfront,0.6002,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:03.411352 +AWS,ap-southeast-2,c7gd.4xlarge,reserved_1y,partial_upfront,0.6002,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:46.971626 +AWS,ap-southeast-2,c7gd.4xlarge,reserved_3y,all_upfront,0.6002,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:22.384137 +AWS,ap-southeast-2,c7gd.4xlarge,reserved_3y,no_upfront,0.6002,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:07.003425 +AWS,ap-southeast-2,c7gd.4xlarge,reserved_3y,partial_upfront,0.6002,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:58.322274 +AWS,ap-southeast-2,c7gd.4xlarge,spot,NA,0.391248,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038087 +AWS,ap-southeast-2,c7gd.8xlarge,on_demand,NA,1.9053,USD,AWS Pricing API,2025-11-30T09:00:42.352869 +AWS,ap-southeast-2,c7gd.8xlarge,reserved_1y,all_upfront,1.12032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:12.837465 +AWS,ap-southeast-2,c7gd.8xlarge,reserved_1y,no_upfront,1.12032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:54.891514 +AWS,ap-southeast-2,c7gd.8xlarge,reserved_1y,partial_upfront,1.12032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:38.611364 +AWS,ap-southeast-2,c7gd.8xlarge,reserved_3y,all_upfront,0.37344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:14.150727 +AWS,ap-southeast-2,c7gd.8xlarge,reserved_3y,no_upfront,0.37344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:58.370690 +AWS,ap-southeast-2,c7gd.8xlarge,reserved_3y,partial_upfront,0.37344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:49.952166 +AWS,ap-southeast-2,c7gd.8xlarge,spot,NA,0.695035,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037858 +AWS,ap-southeast-2,c7gd.xlarge,on_demand,NA,0.2382,USD,AWS Pricing API,2025-11-30T09:01:21.977436 +AWS,ap-southeast-2,c7gd.xlarge,reserved_1y,all_upfront,0.167162,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:51.931992 +AWS,ap-southeast-2,c7gd.xlarge,reserved_1y,no_upfront,0.167162,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:34.566863 +AWS,ap-southeast-2,c7gd.xlarge,reserved_1y,partial_upfront,0.167162,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:17.646969 +AWS,ap-southeast-2,c7gd.xlarge,reserved_3y,all_upfront,0.111454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:52.507366 +AWS,ap-southeast-2,c7gd.xlarge,reserved_3y,no_upfront,0.111454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:38.347156 +AWS,ap-southeast-2,c7gd.xlarge,reserved_3y,partial_upfront,0.111454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:28.882802 +AWS,ap-southeast-2,c7gd.xlarge,spot,NA,0.09156,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038949 +AWS,ap-southeast-2,c7i.12xlarge,on_demand,NA,2.7972,USD,AWS Pricing API,2025-11-30T09:00:42.624528 +AWS,ap-southeast-2,c7i.12xlarge,reserved_1y,all_upfront,1.84691,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:13.110742 +AWS,ap-southeast-2,c7i.12xlarge,reserved_1y,no_upfront,1.84691,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:55.169526 +AWS,ap-southeast-2,c7i.12xlarge,reserved_1y,partial_upfront,1.84691,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:38.877129 +AWS,ap-southeast-2,c7i.12xlarge,reserved_3y,all_upfront,1.84691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:14.417753 +AWS,ap-southeast-2,c7i.12xlarge,reserved_3y,no_upfront,1.84691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:58.645526 +AWS,ap-southeast-2,c7i.12xlarge,reserved_3y,partial_upfront,1.84691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:50.224018 +AWS,ap-southeast-2,c7i.12xlarge,spot,NA,1.116694,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037846 +AWS,ap-southeast-2,c7i.16xlarge,on_demand,NA,3.7296,USD,AWS Pricing API,2025-11-30T09:01:20.178555 +AWS,ap-southeast-2,c7i.16xlarge,reserved_1y,all_upfront,2.298402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:50.189634 +AWS,ap-southeast-2,c7i.16xlarge,reserved_1y,no_upfront,2.298402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:32.770460 +AWS,ap-southeast-2,c7i.16xlarge,reserved_1y,partial_upfront,2.298402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:15.893494 +AWS,ap-southeast-2,c7i.16xlarge,reserved_3y,all_upfront,0.766134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:50.792307 +AWS,ap-southeast-2,c7i.16xlarge,reserved_3y,no_upfront,0.766134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:36.559971 +AWS,ap-southeast-2,c7i.16xlarge,reserved_3y,partial_upfront,0.766134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:27.118888 +AWS,ap-southeast-2,c7i.16xlarge,spot,NA,1.582872,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038906 +AWS,ap-southeast-2,c7i.24xlarge,on_demand,NA,5.5944,USD,AWS Pricing API,2025-11-30T09:00:53.560638 +AWS,ap-southeast-2,c7i.24xlarge,reserved_1y,all_upfront,3.447603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:23.948522 +AWS,ap-southeast-2,c7i.24xlarge,reserved_1y,no_upfront,3.447603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:06.165187 +AWS,ap-southeast-2,c7i.24xlarge,reserved_1y,partial_upfront,3.447603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:49.663239 +AWS,ap-southeast-2,c7i.24xlarge,reserved_3y,all_upfront,1.149201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:25.042386 +AWS,ap-southeast-2,c7i.24xlarge,reserved_3y,no_upfront,1.149201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:09.852874 +AWS,ap-southeast-2,c7i.24xlarge,reserved_3y,partial_upfront,1.149201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:01.004588 +AWS,ap-southeast-2,c7i.24xlarge,spot,NA,3.160777,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038199 +AWS,ap-southeast-2,c7i.2xlarge,on_demand,NA,0.4662,USD,AWS Pricing API,2025-11-30T09:01:08.400228 +AWS,ap-southeast-2,c7i.2xlarge,reserved_1y,all_upfront,0.287329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:38.576374 +AWS,ap-southeast-2,c7i.2xlarge,reserved_1y,no_upfront,0.287329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:20.973410 +AWS,ap-southeast-2,c7i.2xlarge,reserved_1y,partial_upfront,0.287329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:04.270316 +AWS,ap-southeast-2,c7i.2xlarge,reserved_3y,all_upfront,0.095776,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:39.368225 +AWS,ap-southeast-2,c7i.2xlarge,reserved_3y,no_upfront,0.095776,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:24.741302 +AWS,ap-southeast-2,c7i.2xlarge,reserved_3y,partial_upfront,0.095776,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:15.531780 +AWS,ap-southeast-2,c7i.2xlarge,spot,NA,0.206363,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038601 +AWS,ap-southeast-2,c7i.48xlarge,on_demand,NA,11.1888,USD,AWS Pricing API,2025-11-30T09:00:36.087994 +AWS,ap-southeast-2,c7i.48xlarge,reserved_1y,all_upfront,5.76982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:06.627723 +AWS,ap-southeast-2,c7i.48xlarge,reserved_1y,no_upfront,5.76982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:48.621252 +AWS,ap-southeast-2,c7i.48xlarge,reserved_1y,partial_upfront,5.76982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:32.396381 +AWS,ap-southeast-2,c7i.48xlarge,reserved_3y,all_upfront,5.76982,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:08.058195 +AWS,ap-southeast-2,c7i.48xlarge,reserved_3y,no_upfront,5.76982,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:52.024716 +AWS,ap-southeast-2,c7i.48xlarge,reserved_3y,partial_upfront,5.76982,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:43.748887 +AWS,ap-southeast-2,c7i.48xlarge,spot,NA,6.738156,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037683 +AWS,ap-southeast-2,c7i.4xlarge,on_demand,NA,0.9324,USD,AWS Pricing API,2025-11-30T09:00:49.204004 +AWS,ap-southeast-2,c7i.4xlarge,reserved_1y,all_upfront,0.68355,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:19.639542 +AWS,ap-southeast-2,c7i.4xlarge,reserved_1y,no_upfront,0.68355,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:01.728760 +AWS,ap-southeast-2,c7i.4xlarge,reserved_1y,partial_upfront,0.68355,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:45.352887 +AWS,ap-southeast-2,c7i.4xlarge,reserved_3y,all_upfront,0.68355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:20.808079 +AWS,ap-southeast-2,c7i.4xlarge,reserved_3y,no_upfront,0.68355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:05.349792 +AWS,ap-southeast-2,c7i.4xlarge,reserved_3y,partial_upfront,0.68355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:56.702611 +AWS,ap-southeast-2,c7i.4xlarge,spot,NA,0.427096,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038031 +AWS,ap-southeast-2,c7i.8xlarge,on_demand,NA,1.8648,USD,AWS Pricing API,2025-11-30T09:00:20.807714 +AWS,ap-southeast-2,c7i.8xlarge,reserved_1y,all_upfront,1.569106,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:51.555935 +AWS,ap-southeast-2,c7i.8xlarge,reserved_1y,no_upfront,1.569106,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:33.353269 +AWS,ap-southeast-2,c7i.8xlarge,reserved_1y,partial_upfront,1.569106,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:17.443447 +AWS,ap-southeast-2,c7i.8xlarge,reserved_3y,all_upfront,0.784555,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:53.228990 +AWS,ap-southeast-2,c7i.8xlarge,reserved_3y,no_upfront,0.784555,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:36.600321 +AWS,ap-southeast-2,c7i.8xlarge,reserved_3y,partial_upfront,0.784555,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:28.765787 +AWS,ap-southeast-2,c7i.8xlarge,spot,NA,0.808325,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037286 +AWS,ap-southeast-2,c7i.large,on_demand,NA,0.11655,USD,AWS Pricing API,2025-11-30T09:01:07.847444 +AWS,ap-southeast-2,c7i.large,reserved_1y,all_upfront,0.05296,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:38.032933 +AWS,ap-southeast-2,c7i.large,reserved_1y,no_upfront,0.05296,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:20.419709 +AWS,ap-southeast-2,c7i.large,reserved_1y,partial_upfront,0.05296,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:03.727822 +AWS,ap-southeast-2,c7i.large,reserved_3y,all_upfront,0.05296,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:38.839117 +AWS,ap-southeast-2,c7i.large,reserved_3y,no_upfront,0.05296,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:24.180991 +AWS,ap-southeast-2,c7i.large,reserved_3y,partial_upfront,0.05296,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:14.994179 +AWS,ap-southeast-2,c7i.large,spot,NA,0.045566,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038606 +AWS,ap-southeast-2,c7i.metal-24xl,on_demand,NA,5.5944,USD,AWS Pricing API,2025-11-30T09:00:36.906978 +AWS,ap-southeast-2,c7i.metal-24xl,reserved_1y,all_upfront,4.10131,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:07.438313 +AWS,ap-southeast-2,c7i.metal-24xl,reserved_1y,no_upfront,4.10131,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:49.435402 +AWS,ap-southeast-2,c7i.metal-24xl,reserved_1y,partial_upfront,4.10131,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:33.205940 +AWS,ap-southeast-2,c7i.metal-24xl,reserved_3y,all_upfront,4.10131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:08.846613 +AWS,ap-southeast-2,c7i.metal-24xl,reserved_3y,no_upfront,4.10131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:52.846984 +AWS,ap-southeast-2,c7i.metal-24xl,reserved_3y,partial_upfront,4.10131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:44.555691 +AWS,ap-southeast-2,c7i.metal-24xl,spot,NA,1.932957,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037699 +AWS,ap-southeast-2,c7i.metal-48xl,on_demand,NA,11.1888,USD,AWS Pricing API,2025-11-30T09:00:25.005832 +AWS,ap-southeast-2,c7i.metal-48xl,reserved_1y,all_upfront,5.08394,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:55.640593 +AWS,ap-southeast-2,c7i.metal-48xl,reserved_1y,no_upfront,5.08394,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:37.524561 +AWS,ap-southeast-2,c7i.metal-48xl,reserved_1y,partial_upfront,5.08394,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:21.478578 +AWS,ap-southeast-2,c7i.metal-48xl,reserved_3y,all_upfront,5.08394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:57.224717 +AWS,ap-southeast-2,c7i.metal-48xl,reserved_3y,no_upfront,5.08394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:40.739994 +AWS,ap-southeast-2,c7i.metal-48xl,reserved_3y,partial_upfront,5.08394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:32.790466 +AWS,ap-southeast-2,c7i.metal-48xl,spot,NA,3.641892,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037388 +AWS,ap-southeast-2,c7i.xlarge,on_demand,NA,0.2331,USD,AWS Pricing API,2025-11-30T09:01:19.226170 +AWS,ap-southeast-2,c7i.xlarge,reserved_1y,all_upfront,0.15391,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:49.234101 +AWS,ap-southeast-2,c7i.xlarge,reserved_1y,no_upfront,0.15391,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:31.823913 +AWS,ap-southeast-2,c7i.xlarge,reserved_1y,partial_upfront,0.15391,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:14.954455 +AWS,ap-southeast-2,c7i.xlarge,reserved_3y,all_upfront,0.15391,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:49.864261 +AWS,ap-southeast-2,c7i.xlarge,reserved_3y,no_upfront,0.15391,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:35.593441 +AWS,ap-southeast-2,c7i.xlarge,reserved_3y,partial_upfront,0.15391,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:26.186194 +AWS,ap-southeast-2,c7i.xlarge,spot,NA,0.098421,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038875 +AWS,ap-southeast-2,c8g.12xlarge,on_demand,NA,2.4912,USD,AWS Pricing API,2025-11-30T09:01:16.762773 +AWS,ap-southeast-2,c8g.12xlarge,reserved_1y,all_upfront,1.28471,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:46.811218 +AWS,ap-southeast-2,c8g.12xlarge,reserved_1y,no_upfront,1.28471,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:29.345500 +AWS,ap-southeast-2,c8g.12xlarge,reserved_1y,partial_upfront,1.28471,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:12.532398 +AWS,ap-southeast-2,c8g.12xlarge,reserved_3y,all_upfront,1.28471,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:47.461754 +AWS,ap-southeast-2,c8g.12xlarge,reserved_3y,no_upfront,1.28471,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:33.099949 +AWS,ap-southeast-2,c8g.12xlarge,reserved_3y,partial_upfront,1.28471,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:23.722810 +AWS,ap-southeast-2,c8g.12xlarge,spot,NA,0.87119,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038809 +AWS,ap-southeast-2,c8g.16xlarge,on_demand,NA,3.3216,USD,AWS Pricing API,2025-11-30T09:00:19.702923 +AWS,ap-southeast-2,c8g.16xlarge,reserved_1y,all_upfront,2.046804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:50.480559 +AWS,ap-southeast-2,c8g.16xlarge,reserved_1y,no_upfront,2.046804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:32.253140 +AWS,ap-southeast-2,c8g.16xlarge,reserved_1y,partial_upfront,2.046804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:16.367074 +AWS,ap-southeast-2,c8g.16xlarge,reserved_3y,all_upfront,0.682268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:52.177022 +AWS,ap-southeast-2,c8g.16xlarge,reserved_3y,no_upfront,0.682268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:35.493812 +AWS,ap-southeast-2,c8g.16xlarge,reserved_3y,partial_upfront,0.682268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:27.698215 +AWS,ap-southeast-2,c8g.16xlarge,spot,NA,1.091468,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037233 +AWS,ap-southeast-2,c8g.24xlarge,on_demand,NA,4.9824,USD,AWS Pricing API,2025-11-30T09:01:06.597713 +AWS,ap-southeast-2,c8g.24xlarge,reserved_1y,all_upfront,3.07032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:36.819686 +AWS,ap-southeast-2,c8g.24xlarge,reserved_1y,no_upfront,3.07032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:19.174509 +AWS,ap-southeast-2,c8g.24xlarge,reserved_1y,partial_upfront,3.07032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:02.508912 +AWS,ap-southeast-2,c8g.24xlarge,reserved_3y,all_upfront,1.02344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:37.645496 +AWS,ap-southeast-2,c8g.24xlarge,reserved_3y,no_upfront,1.02344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:22.947991 +AWS,ap-southeast-2,c8g.24xlarge,reserved_3y,partial_upfront,1.02344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:13.782772 +AWS,ap-southeast-2,c8g.24xlarge,spot,NA,1.590465,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038554 +AWS,ap-southeast-2,c8g.2xlarge,on_demand,NA,0.4152,USD,AWS Pricing API,2025-11-30T09:00:32.000937 +AWS,ap-southeast-2,c8g.2xlarge,reserved_1y,all_upfront,0.255822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:02.553154 +AWS,ap-southeast-2,c8g.2xlarge,reserved_1y,no_upfront,0.255822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:44.520986 +AWS,ap-southeast-2,c8g.2xlarge,reserved_1y,partial_upfront,0.255822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:28.349402 +AWS,ap-southeast-2,c8g.2xlarge,reserved_3y,all_upfront,0.085274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:04.033732 +AWS,ap-southeast-2,c8g.2xlarge,reserved_3y,no_upfront,0.085274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:47.863293 +AWS,ap-southeast-2,c8g.2xlarge,reserved_3y,partial_upfront,0.085274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:39.713968 +AWS,ap-southeast-2,c8g.2xlarge,spot,NA,0.175647,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037599 +AWS,ap-southeast-2,c8g.48xlarge,on_demand,NA,9.9648,USD,AWS Pricing API,2025-11-30T09:01:25.653621 +AWS,ap-southeast-2,c8g.48xlarge,reserved_1y,all_upfront,7.30529,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:55.593072 +AWS,ap-southeast-2,c8g.48xlarge,reserved_1y,no_upfront,7.30529,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:38.232746 +AWS,ap-southeast-2,c8g.48xlarge,reserved_1y,partial_upfront,7.30529,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:21.303858 +AWS,ap-southeast-2,c8g.48xlarge,reserved_3y,all_upfront,7.30529,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:56.091866 +AWS,ap-southeast-2,c8g.48xlarge,reserved_3y,no_upfront,7.30529,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:42.082102 +AWS,ap-southeast-2,c8g.48xlarge,reserved_3y,partial_upfront,7.30529,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:32.487056 +AWS,ap-southeast-2,c8g.48xlarge,spot,NA,3.279075,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039047 +AWS,ap-southeast-2,c8g.4xlarge,on_demand,NA,0.8304,USD,AWS Pricing API,2025-11-30T09:00:34.473408 +AWS,ap-southeast-2,c8g.4xlarge,reserved_1y,all_upfront,0.511758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:05.003785 +AWS,ap-southeast-2,c8g.4xlarge,reserved_1y,no_upfront,0.511758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:46.981036 +AWS,ap-southeast-2,c8g.4xlarge,reserved_1y,partial_upfront,0.511758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:30.787884 +AWS,ap-southeast-2,c8g.4xlarge,reserved_3y,all_upfront,0.170586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:06.476337 +AWS,ap-southeast-2,c8g.4xlarge,reserved_3y,no_upfront,0.170586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:50.361198 +AWS,ap-southeast-2,c8g.4xlarge,reserved_3y,partial_upfront,0.170586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:42.137286 +AWS,ap-southeast-2,c8g.4xlarge,spot,NA,0.308104,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037639 +AWS,ap-southeast-2,c8g.8xlarge,on_demand,NA,1.6608,USD,AWS Pricing API,2025-11-30T09:00:37.984773 +AWS,ap-southeast-2,c8g.8xlarge,reserved_1y,all_upfront,1.136416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:08.518905 +AWS,ap-southeast-2,c8g.8xlarge,reserved_1y,no_upfront,1.136416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:50.540577 +AWS,ap-southeast-2,c8g.8xlarge,reserved_1y,partial_upfront,1.136416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:34.289609 +AWS,ap-southeast-2,c8g.8xlarge,reserved_3y,all_upfront,0.378805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:09.928012 +AWS,ap-southeast-2,c8g.8xlarge,reserved_3y,no_upfront,0.378805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:53.965378 +AWS,ap-southeast-2,c8g.8xlarge,reserved_3y,partial_upfront,0.378805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:45.640406 +AWS,ap-southeast-2,c8g.8xlarge,spot,NA,0.661238,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037726 +AWS,ap-southeast-2,c8g.large,on_demand,NA,0.1038,USD,AWS Pricing API,2025-11-30T09:01:19.900201 +AWS,ap-southeast-2,c8g.large,reserved_1y,all_upfront,0.063927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:49.918668 +AWS,ap-southeast-2,c8g.large,reserved_1y,no_upfront,0.063927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:32.498855 +AWS,ap-southeast-2,c8g.large,reserved_1y,partial_upfront,0.063927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:15.625555 +AWS,ap-southeast-2,c8g.large,reserved_3y,all_upfront,0.021309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:50.530040 +AWS,ap-southeast-2,c8g.large,reserved_3y,no_upfront,0.021309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:36.286107 +AWS,ap-southeast-2,c8g.large,reserved_3y,partial_upfront,0.021309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:26.853460 +AWS,ap-southeast-2,c8g.large,spot,NA,0.036431,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038934 +AWS,ap-southeast-2,c8g.medium,on_demand,NA,0.0519,USD,AWS Pricing API,2025-11-30T09:01:04.403617 +AWS,ap-southeast-2,c8g.medium,reserved_1y,all_upfront,0.03427,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:34.646625 +AWS,ap-southeast-2,c8g.medium,reserved_1y,no_upfront,0.03427,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:16.979690 +AWS,ap-southeast-2,c8g.medium,reserved_1y,partial_upfront,0.03427,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:00.327857 +AWS,ap-southeast-2,c8g.medium,reserved_3y,all_upfront,0.03427,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:35.514882 +AWS,ap-southeast-2,c8g.medium,reserved_3y,no_upfront,0.03427,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:20.748090 +AWS,ap-southeast-2,c8g.medium,reserved_3y,partial_upfront,0.03427,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:11.631869 +AWS,ap-southeast-2,c8g.medium,spot,NA,0.016618,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038514 +AWS,ap-southeast-2,c8g.xlarge,on_demand,NA,0.2076,USD,AWS Pricing API,2025-11-30T09:00:28.168616 +AWS,ap-southeast-2,c8g.xlarge,reserved_1y,all_upfront,0.130567,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:58.755669 +AWS,ap-southeast-2,c8g.xlarge,reserved_1y,no_upfront,0.130567,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:40.687223 +AWS,ap-southeast-2,c8g.xlarge,reserved_1y,partial_upfront,0.130567,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:24.573004 +AWS,ap-southeast-2,c8g.xlarge,reserved_3y,all_upfront,0.087036,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:00.275895 +AWS,ap-southeast-2,c8g.xlarge,reserved_3y,no_upfront,0.087036,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:43.939664 +AWS,ap-southeast-2,c8g.xlarge,reserved_3y,partial_upfront,0.087036,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:35.943335 +AWS,ap-southeast-2,c8g.xlarge,spot,NA,0.086564,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037463 +AWS,ap-southeast-2,c8gd.12xlarge,on_demand,NA,3.0864,USD,AWS Pricing API,2025-11-30T09:01:02.045417 +AWS,ap-southeast-2,c8gd.12xlarge,spot,NA,0.709164,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038457 +AWS,ap-southeast-2,c8gd.16xlarge,on_demand,NA,4.1152,USD,AWS Pricing API,2025-11-30T09:01:26.471490 +AWS,ap-southeast-2,c8gd.16xlarge,spot,NA,0.706635,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039043 +AWS,ap-southeast-2,c8gd.24xlarge,on_demand,NA,6.1728,USD,AWS Pricing API,2025-11-30T09:01:12.795173 +AWS,ap-southeast-2,c8gd.24xlarge,spot,NA,0.983617,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038692 +AWS,ap-southeast-2,c8gd.2xlarge,on_demand,NA,0.5144,USD,AWS Pricing API,2025-11-30T09:00:56.699246 +AWS,ap-southeast-2,c8gd.2xlarge,spot,NA,0.161186,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038303 +AWS,ap-southeast-2,c8gd.48xlarge,on_demand,NA,12.3456,USD,AWS Pricing API,2025-11-30T09:00:44.396526 +AWS,ap-southeast-2,c8gd.48xlarge,spot,NA,1.933228,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037938 +AWS,ap-southeast-2,c8gd.4xlarge,on_demand,NA,1.0288,USD,AWS Pricing API,2025-11-30T09:00:29.665827 +AWS,ap-southeast-2,c8gd.4xlarge,spot,NA,0.276412,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037511 +AWS,ap-southeast-2,c8gd.8xlarge,on_demand,NA,2.0576,USD,AWS Pricing API,2025-11-30T09:00:52.341248 +AWS,ap-southeast-2,c8gd.8xlarge,spot,NA,0.554809,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038193 +AWS,ap-southeast-2,c8gd.large,on_demand,NA,0.1286,USD,AWS Pricing API,2025-11-30T09:01:18.280964 +AWS,ap-southeast-2,c8gd.large,spot,NA,0.030175,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038860 +AWS,ap-southeast-2,c8gd.xlarge,on_demand,NA,0.2572,USD,AWS Pricing API,2025-11-30T09:00:40.579411 +AWS,ap-southeast-2,c8gd.xlarge,spot,NA,0.076457,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037799 +AWS,ap-southeast-2,d3.2xlarge,on_demand,NA,1.252,USD,AWS Pricing API,2025-11-30T09:00:54.230985 +AWS,ap-southeast-2,d3.2xlarge,reserved_1y,all_upfront,1.001256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:24.619448 +AWS,ap-southeast-2,d3.2xlarge,reserved_1y,no_upfront,1.001256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:06.843409 +AWS,ap-southeast-2,d3.2xlarge,reserved_1y,partial_upfront,1.001256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:50.329289 +AWS,ap-southeast-2,d3.2xlarge,reserved_3y,all_upfront,0.500419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:25.697121 +AWS,ap-southeast-2,d3.2xlarge,reserved_3y,no_upfront,0.500419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:10.540667 +AWS,ap-southeast-2,d3.2xlarge,reserved_3y,partial_upfront,0.500419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:01.673844 +AWS,ap-southeast-2,d3.2xlarge,spot,NA,0.443512,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038233 +AWS,ap-southeast-2,d3.4xlarge,on_demand,NA,2.504,USD,AWS Pricing API,2025-11-30T09:01:21.550564 +AWS,ap-southeast-2,d3.4xlarge,reserved_1y,all_upfront,1.472374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:51.530952 +AWS,ap-southeast-2,d3.4xlarge,reserved_1y,no_upfront,1.472374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:34.142959 +AWS,ap-southeast-2,d3.4xlarge,reserved_1y,partial_upfront,1.472374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:17.244086 +AWS,ap-southeast-2,d3.4xlarge,reserved_3y,all_upfront,0.490791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:52.109742 +AWS,ap-southeast-2,d3.4xlarge,reserved_3y,no_upfront,0.490791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:37.936171 +AWS,ap-southeast-2,d3.4xlarge,reserved_3y,partial_upfront,0.490791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:28.480881 +AWS,ap-southeast-2,d3.4xlarge,spot,NA,0.783667,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038961 +AWS,ap-southeast-2,d3.8xlarge,on_demand,NA,5.00808,USD,AWS Pricing API,2025-11-30T09:00:24.465395 +AWS,ap-southeast-2,d3.8xlarge,reserved_1y,all_upfront,4.807762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:55.091110 +AWS,ap-southeast-2,d3.8xlarge,reserved_1y,no_upfront,4.807762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:36.971569 +AWS,ap-southeast-2,d3.8xlarge,reserved_1y,partial_upfront,4.807762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:20.935543 +AWS,ap-southeast-2,d3.8xlarge,reserved_3y,all_upfront,2.403881,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:56.695002 +AWS,ap-southeast-2,d3.8xlarge,reserved_3y,no_upfront,2.403881,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:40.190305 +AWS,ap-southeast-2,d3.8xlarge,reserved_3y,partial_upfront,2.403881,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:32.252855 +AWS,ap-southeast-2,d3.8xlarge,spot,NA,1.622124,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037349 +AWS,ap-southeast-2,d3.xlarge,on_demand,NA,0.626,USD,AWS Pricing API,2025-11-30T09:00:21.768759 +AWS,ap-southeast-2,d3.xlarge,reserved_1y,all_upfront,0.473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:52.509726 +AWS,ap-southeast-2,d3.xlarge,reserved_1y,no_upfront,0.473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:34.342149 +AWS,ap-southeast-2,d3.xlarge,reserved_1y,partial_upfront,0.473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:18.385532 +AWS,ap-southeast-2,d3.xlarge,reserved_3y,all_upfront,0.473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:54.156035 +AWS,ap-southeast-2,d3.xlarge,reserved_3y,no_upfront,0.473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:37.564202 +AWS,ap-southeast-2,d3.xlarge,reserved_3y,partial_upfront,0.473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:29.711483 +AWS,ap-southeast-2,d3.xlarge,spot,NA,0.202919,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037282 +AWS,ap-southeast-2,d3en.12xlarge,on_demand,NA,7.90752,USD,AWS Pricing API,2025-11-30T09:01:14.159479 +AWS,ap-southeast-2,d3en.12xlarge,reserved_1y,all_upfront,5.579566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:44.239420 +AWS,ap-southeast-2,d3en.12xlarge,reserved_1y,no_upfront,5.579566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:26.740482 +AWS,ap-southeast-2,d3en.12xlarge,reserved_1y,partial_upfront,5.579566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:09.948992 +AWS,ap-southeast-2,d3en.12xlarge,reserved_3y,all_upfront,1.859855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:44.937338 +AWS,ap-southeast-2,d3en.12xlarge,reserved_3y,no_upfront,1.859855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:30.479472 +AWS,ap-southeast-2,d3en.12xlarge,reserved_3y,partial_upfront,1.859855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:21.166532 +AWS,ap-southeast-2,d3en.12xlarge,spot,NA,2.539499,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038729 +AWS,ap-southeast-2,d3en.2xlarge,on_demand,NA,1.318,USD,AWS Pricing API,2025-11-30T09:00:53.018079 +AWS,ap-southeast-2,d3en.2xlarge,reserved_1y,all_upfront,0.79032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:23.412577 +AWS,ap-southeast-2,d3en.2xlarge,reserved_1y,no_upfront,0.79032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:05.619511 +AWS,ap-southeast-2,d3en.2xlarge,reserved_1y,partial_upfront,0.79032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:49.121471 +AWS,ap-southeast-2,d3en.2xlarge,reserved_3y,all_upfront,0.526773,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:24.507422 +AWS,ap-southeast-2,d3en.2xlarge,reserved_3y,no_upfront,0.526773,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:09.205054 +AWS,ap-southeast-2,d3en.2xlarge,reserved_3y,partial_upfront,0.526773,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:00.473057 +AWS,ap-southeast-2,d3en.2xlarge,spot,NA,0.45164,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038181 +AWS,ap-southeast-2,d3en.4xlarge,on_demand,NA,2.636,USD,AWS Pricing API,2025-11-30T09:01:00.525464 +AWS,ap-southeast-2,d3en.4xlarge,reserved_1y,all_upfront,1.859817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:30.857341 +AWS,ap-southeast-2,d3en.4xlarge,reserved_1y,no_upfront,1.859817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:13.131139 +AWS,ap-southeast-2,d3en.4xlarge,reserved_1y,partial_upfront,1.859817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:56.525737 +AWS,ap-southeast-2,d3en.4xlarge,reserved_3y,all_upfront,0.619939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:31.786080 +AWS,ap-southeast-2,d3en.4xlarge,reserved_3y,no_upfront,0.619939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:16.902879 +AWS,ap-southeast-2,d3en.4xlarge,reserved_3y,partial_upfront,0.619939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:07.867567 +AWS,ap-southeast-2,d3en.4xlarge,spot,NA,0.928473,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038421 +AWS,ap-southeast-2,d3en.6xlarge,on_demand,NA,3.954,USD,AWS Pricing API,2025-11-30T09:01:26.879063 +AWS,ap-southeast-2,d3en.6xlarge,reserved_1y,all_upfront,2.372073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:56.809888 +AWS,ap-southeast-2,d3en.6xlarge,reserved_1y,no_upfront,2.372073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:39.513434 +AWS,ap-southeast-2,d3en.6xlarge,reserved_1y,partial_upfront,2.372073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:22.525919 +AWS,ap-southeast-2,d3en.6xlarge,reserved_3y,all_upfront,1.581358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:57.289468 +AWS,ap-southeast-2,d3en.6xlarge,reserved_3y,no_upfront,1.581358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:43.322328 +AWS,ap-southeast-2,d3en.6xlarge,reserved_3y,partial_upfront,1.581358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:33.694926 +AWS,ap-southeast-2,d3en.6xlarge,spot,NA,1.275487,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039088 +AWS,ap-southeast-2,d3en.8xlarge,on_demand,NA,5.27168,USD,AWS Pricing API,2025-11-30T09:01:22.252726 +AWS,ap-southeast-2,d3en.8xlarge,reserved_1y,all_upfront,3.719749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:52.197617 +AWS,ap-southeast-2,d3en.8xlarge,reserved_1y,no_upfront,3.719749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:34.834778 +AWS,ap-southeast-2,d3en.8xlarge,reserved_1y,partial_upfront,3.719749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:17.915724 +AWS,ap-southeast-2,d3en.8xlarge,reserved_3y,all_upfront,1.239916,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:52.773472 +AWS,ap-southeast-2,d3en.8xlarge,reserved_3y,no_upfront,1.239916,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:38.620857 +AWS,ap-southeast-2,d3en.8xlarge,reserved_3y,partial_upfront,1.239916,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:29.148650 +AWS,ap-southeast-2,d3en.8xlarge,spot,NA,1.653297,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038941 +AWS,ap-southeast-2,d3en.xlarge,on_demand,NA,0.659,USD,AWS Pricing API,2025-11-30T09:00:37.309182 +AWS,ap-southeast-2,d3en.xlarge,reserved_1y,all_upfront,0.395717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:07.839055 +AWS,ap-southeast-2,d3en.xlarge,reserved_1y,no_upfront,0.395717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:49.844670 +AWS,ap-southeast-2,d3en.xlarge,reserved_1y,partial_upfront,0.395717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:33.616733 +AWS,ap-southeast-2,d3en.xlarge,reserved_3y,all_upfront,0.263906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:09.254179 +AWS,ap-southeast-2,d3en.xlarge,reserved_3y,no_upfront,0.263906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:53.268464 +AWS,ap-southeast-2,d3en.xlarge,reserved_3y,partial_upfront,0.263906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:44.964982 +AWS,ap-southeast-2,d3en.xlarge,spot,NA,0.214612,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037730 +AWS,ap-southeast-2,g4dn.12xlarge,on_demand,NA,5.087,USD,AWS Pricing API,2025-11-30T09:00:24.867832 +AWS,ap-southeast-2,g4dn.12xlarge,reserved_1y,all_upfront,3.43984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:55.500200 +AWS,ap-southeast-2,g4dn.12xlarge,reserved_1y,no_upfront,3.43984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:37.386040 +AWS,ap-southeast-2,g4dn.12xlarge,reserved_1y,partial_upfront,3.43984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:21.344698 +AWS,ap-southeast-2,g4dn.12xlarge,reserved_3y,all_upfront,1.146613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:57.091065 +AWS,ap-southeast-2,g4dn.12xlarge,reserved_3y,no_upfront,1.146613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:40.603808 +AWS,ap-southeast-2,g4dn.12xlarge,reserved_3y,partial_upfront,1.146613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:32.652975 +AWS,ap-southeast-2,g4dn.12xlarge,spot,NA,1.773915,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037343 +AWS,ap-southeast-2,g4dn.16xlarge,on_demand,NA,5.659,USD,AWS Pricing API,2025-11-30T09:00:31.175654 +AWS,ap-southeast-2,g4dn.16xlarge,reserved_1y,all_upfront,5.092977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:01.737992 +AWS,ap-southeast-2,g4dn.16xlarge,reserved_1y,no_upfront,5.092977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:43.701052 +AWS,ap-southeast-2,g4dn.16xlarge,reserved_1y,partial_upfront,5.092977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:27.537085 +AWS,ap-southeast-2,g4dn.16xlarge,reserved_3y,all_upfront,2.546326,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:03.220471 +AWS,ap-southeast-2,g4dn.16xlarge,reserved_3y,no_upfront,2.546326,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:47.034889 +AWS,ap-southeast-2,g4dn.16xlarge,reserved_3y,partial_upfront,2.546326,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:38.907615 +AWS,ap-southeast-2,g4dn.16xlarge,spot,NA,1.739405,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037536 +AWS,ap-southeast-2,g4dn.2xlarge,on_demand,NA,0.978,USD,AWS Pricing API,2025-11-30T09:01:05.364378 +AWS,ap-southeast-2,g4dn.2xlarge,reserved_1y,all_upfront,0.661301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:35.593142 +AWS,ap-southeast-2,g4dn.2xlarge,reserved_1y,no_upfront,0.661301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:17.938004 +AWS,ap-southeast-2,g4dn.2xlarge,reserved_1y,partial_upfront,0.661301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:01.286325 +AWS,ap-southeast-2,g4dn.2xlarge,reserved_3y,all_upfront,0.220434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:36.433188 +AWS,ap-southeast-2,g4dn.2xlarge,reserved_3y,no_upfront,0.220434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:21.710152 +AWS,ap-southeast-2,g4dn.2xlarge,reserved_3y,partial_upfront,0.220434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:12.569768 +AWS,ap-southeast-2,g4dn.2xlarge,spot,NA,0.340761,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038526 +AWS,ap-southeast-2,g4dn.4xlarge,on_demand,NA,1.566,USD,AWS Pricing API,2025-11-30T09:00:45.766542 +AWS,ap-southeast-2,g4dn.4xlarge,reserved_1y,all_upfront,1.134,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:16.253720 +AWS,ap-southeast-2,g4dn.4xlarge,reserved_1y,no_upfront,1.134,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:58.303463 +AWS,ap-southeast-2,g4dn.4xlarge,reserved_1y,partial_upfront,1.134,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:41.967015 +AWS,ap-southeast-2,g4dn.4xlarge,reserved_3y,all_upfront,1.134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:17.461940 +AWS,ap-southeast-2,g4dn.4xlarge,reserved_3y,no_upfront,1.134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:01.847859 +AWS,ap-southeast-2,g4dn.4xlarge,reserved_3y,partial_upfront,1.134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:53.322899 +AWS,ap-southeast-2,g4dn.4xlarge,spot,NA,0.524396,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037951 +AWS,ap-southeast-2,g4dn.8xlarge,on_demand,NA,2.83,USD,AWS Pricing API,2025-11-30T09:00:48.534368 +AWS,ap-southeast-2,g4dn.8xlarge,reserved_1y,all_upfront,2.547046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:18.973455 +AWS,ap-southeast-2,g4dn.8xlarge,reserved_1y,no_upfront,2.547046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:01.038381 +AWS,ap-southeast-2,g4dn.8xlarge,reserved_1y,partial_upfront,2.547046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:44.680886 +AWS,ap-southeast-2,g4dn.8xlarge,reserved_3y,all_upfront,1.273682,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:20.142614 +AWS,ap-southeast-2,g4dn.8xlarge,reserved_3y,no_upfront,1.273682,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:04.663739 +AWS,ap-southeast-2,g4dn.8xlarge,reserved_3y,partial_upfront,1.273682,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:56.030364 +AWS,ap-southeast-2,g4dn.8xlarge,spot,NA,0.948552,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038070 +AWS,ap-southeast-2,g4dn.xlarge,on_demand,NA,0.684,USD,AWS Pricing API,2025-11-30T09:01:12.108733 +AWS,ap-southeast-2,g4dn.xlarge,reserved_1y,all_upfront,0.402169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:42.216639 +AWS,ap-southeast-2,g4dn.xlarge,reserved_1y,no_upfront,0.402169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:24.668517 +AWS,ap-southeast-2,g4dn.xlarge,reserved_1y,partial_upfront,0.402169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:07.894077 +AWS,ap-southeast-2,g4dn.xlarge,reserved_3y,all_upfront,0.134056,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:42.955951 +AWS,ap-southeast-2,g4dn.xlarge,reserved_3y,no_upfront,0.134056,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:28.439054 +AWS,ap-southeast-2,g4dn.xlarge,reserved_3y,partial_upfront,0.134056,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:19.141109 +AWS,ap-southeast-2,g4dn.xlarge,spot,NA,0.25373,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038697 +AWS,ap-southeast-2,g5.12xlarge,on_demand,NA,7.37473,USD,AWS Pricing API,2025-11-30T09:00:09.829129 +AWS,ap-southeast-2,g5.12xlarge,reserved_1y,all_upfront,4.424863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:40.842924 +AWS,ap-southeast-2,g5.12xlarge,reserved_1y,no_upfront,4.424863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:22.532794 +AWS,ap-southeast-2,g5.12xlarge,reserved_1y,partial_upfront,4.424863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:06.772799 +AWS,ap-southeast-2,g5.12xlarge,reserved_3y,all_upfront,2.949901,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:42.780927 +AWS,ap-southeast-2,g5.12xlarge,reserved_3y,no_upfront,2.949901,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:25.747577 +AWS,ap-southeast-2,g5.12xlarge,reserved_3y,partial_upfront,2.949901,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:18.160969 +AWS,ap-southeast-2,g5.12xlarge,spot,NA,2.904824,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.036990 +AWS,ap-southeast-2,g5.16xlarge,on_demand,NA,5.32561,USD,AWS Pricing API,2025-11-30T09:00:11.850025 +AWS,ap-southeast-2,g5.16xlarge,reserved_1y,all_upfront,7.828653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:42.863126 +AWS,ap-southeast-2,g5.16xlarge,reserved_1y,no_upfront,7.828653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:24.581639 +AWS,ap-southeast-2,g5.16xlarge,reserved_1y,partial_upfront,7.828653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:08.801607 +AWS,ap-southeast-2,g5.16xlarge,reserved_3y,all_upfront,2.609551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:44.780701 +AWS,ap-southeast-2,g5.16xlarge,reserved_3y,no_upfront,2.609551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:27.807289 +AWS,ap-southeast-2,g5.16xlarge,reserved_3y,partial_upfront,2.609551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:20.177078 +AWS,ap-southeast-2,g5.16xlarge,spot,NA,2.217772,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037029 +AWS,ap-southeast-2,g5.24xlarge,on_demand,NA,10.58882,USD,AWS Pricing API,2025-11-30T09:00:10.776016 +AWS,ap-southeast-2,g5.24xlarge,reserved_1y,all_upfront,7.782763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:41.784994 +AWS,ap-southeast-2,g5.24xlarge,reserved_1y,no_upfront,7.782763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:23.502288 +AWS,ap-southeast-2,g5.24xlarge,reserved_1y,partial_upfront,7.782763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:07.714660 +AWS,ap-southeast-2,g5.24xlarge,reserved_3y,all_upfront,2.594254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:43.714187 +AWS,ap-southeast-2,g5.24xlarge,reserved_3y,no_upfront,2.594254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:26.706699 +AWS,ap-southeast-2,g5.24xlarge,reserved_3y,partial_upfront,2.594254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:19.097375 +AWS,ap-southeast-2,g5.24xlarge,spot,NA,9.641517,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.036999 +AWS,ap-southeast-2,g5.2xlarge,on_demand,NA,1.57584,USD,AWS Pricing API,2025-11-30T09:00:28.305662 +AWS,ap-southeast-2,g5.2xlarge,reserved_1y,all_upfront,0.926598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:58.889503 +AWS,ap-southeast-2,g5.2xlarge,reserved_1y,no_upfront,0.926598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:40.823767 +AWS,ap-southeast-2,g5.2xlarge,reserved_1y,partial_upfront,0.926598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:24.706471 +AWS,ap-southeast-2,g5.2xlarge,reserved_3y,all_upfront,0.308866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:00.407379 +AWS,ap-southeast-2,g5.2xlarge,reserved_3y,no_upfront,0.308866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:44.076302 +AWS,ap-southeast-2,g5.2xlarge,reserved_3y,partial_upfront,0.308866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:36.078879 +AWS,ap-southeast-2,g5.2xlarge,spot,NA,0.642128,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037491 +AWS,ap-southeast-2,g5.48xlarge,on_demand,NA,21.17764,USD,AWS Pricing API,2025-11-30T09:00:12.636062 +AWS,ap-southeast-2,g5.48xlarge,reserved_1y,all_upfront,15.565525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:43.537535 +AWS,ap-southeast-2,g5.48xlarge,reserved_1y,no_upfront,15.565525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:25.260764 +AWS,ap-southeast-2,g5.48xlarge,reserved_1y,partial_upfront,15.565525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:09.476992 +AWS,ap-southeast-2,g5.48xlarge,reserved_3y,all_upfront,5.188508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:45.445796 +AWS,ap-southeast-2,g5.48xlarge,reserved_3y,no_upfront,5.188508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:28.488980 +AWS,ap-southeast-2,g5.48xlarge,reserved_3y,partial_upfront,5.188508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:20.845143 +AWS,ap-southeast-2,g5.48xlarge,spot,NA,21.1776,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037063 +AWS,ap-southeast-2,g5.4xlarge,on_demand,NA,2.11152,USD,AWS Pricing API,2025-11-30T09:00:22.335652 +AWS,ap-southeast-2,g5.4xlarge,reserved_1y,all_upfront,1.689195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:53.059094 +AWS,ap-southeast-2,g5.4xlarge,reserved_1y,no_upfront,1.689195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:34.909731 +AWS,ap-southeast-2,g5.4xlarge,reserved_1y,partial_upfront,1.689195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:18.919492 +AWS,ap-southeast-2,g5.4xlarge,reserved_3y,all_upfront,0.844598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:54.693051 +AWS,ap-southeast-2,g5.4xlarge,reserved_3y,no_upfront,0.844598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:38.115397 +AWS,ap-southeast-2,g5.4xlarge,reserved_3y,partial_upfront,0.844598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:30.245747 +AWS,ap-southeast-2,g5.4xlarge,spot,NA,0.845522,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037316 +AWS,ap-southeast-2,g5.8xlarge,on_demand,NA,3.18289,USD,AWS Pricing API,2025-11-30T09:00:30.212402 +AWS,ap-southeast-2,g5.8xlarge,reserved_1y,all_upfront,1.71876,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:00.773376 +AWS,ap-southeast-2,g5.8xlarge,reserved_1y,no_upfront,1.71876,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:42.747117 +AWS,ap-southeast-2,g5.8xlarge,reserved_1y,partial_upfront,1.71876,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:26.597124 +AWS,ap-southeast-2,g5.8xlarge,reserved_3y,all_upfront,1.71876,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:02.285982 +AWS,ap-southeast-2,g5.8xlarge,reserved_3y,no_upfront,1.71876,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:46.061562 +AWS,ap-southeast-2,g5.8xlarge,reserved_3y,partial_upfront,1.71876,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:37.967809 +AWS,ap-southeast-2,g5.8xlarge,spot,NA,1.071216,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037527 +AWS,ap-southeast-2,g5.xlarge,on_demand,NA,1.308,USD,AWS Pricing API,2025-11-30T09:01:17.719255 +AWS,ap-southeast-2,g5.xlarge,reserved_1y,all_upfront,0.961416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:47.757674 +AWS,ap-southeast-2,g5.xlarge,reserved_1y,no_upfront,0.961416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:30.318070 +AWS,ap-southeast-2,g5.xlarge,reserved_1y,partial_upfront,0.961416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:13.474347 +AWS,ap-southeast-2,g5.xlarge,reserved_3y,all_upfront,0.320472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:48.397434 +AWS,ap-southeast-2,g5.xlarge,reserved_3y,no_upfront,0.320472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:34.067829 +AWS,ap-southeast-2,g5.xlarge,reserved_3y,partial_upfront,0.320472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:24.683276 +AWS,ap-southeast-2,g5.xlarge,spot,NA,0.485777,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038867 +AWS,ap-southeast-2,g6.12xlarge,on_demand,NA,5.98299,USD,AWS Pricing API,2025-11-30T09:00:13.304604 +AWS,ap-southeast-2,g6.12xlarge,reserved_1y,all_upfront,4.86866,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:44.205606 +AWS,ap-southeast-2,g6.12xlarge,reserved_1y,no_upfront,4.86866,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:25.940753 +AWS,ap-southeast-2,g6.12xlarge,reserved_1y,partial_upfront,4.86866,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:10.148425 +AWS,ap-southeast-2,g6.12xlarge,reserved_3y,all_upfront,4.86866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:46.101306 +AWS,ap-southeast-2,g6.12xlarge,reserved_3y,no_upfront,4.86866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:29.173658 +AWS,ap-southeast-2,g6.12xlarge,reserved_3y,partial_upfront,4.86866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:21.523691 +AWS,ap-southeast-2,g6.12xlarge,spot,NA,2.911907,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037033 +AWS,ap-southeast-2,g6.16xlarge,on_demand,NA,4.41652,USD,AWS Pricing API,2025-11-30T09:00:10.506571 +AWS,ap-southeast-2,g6.16xlarge,reserved_1y,all_upfront,3.422816,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:41.518462 +AWS,ap-southeast-2,g6.16xlarge,reserved_1y,no_upfront,3.422816,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:23.229088 +AWS,ap-southeast-2,g6.16xlarge,reserved_1y,partial_upfront,3.422816,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:07.438538 +AWS,ap-southeast-2,g6.16xlarge,reserved_3y,all_upfront,2.281872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:43.448510 +AWS,ap-southeast-2,g6.16xlarge,reserved_3y,no_upfront,2.281872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:26.431932 +AWS,ap-southeast-2,g6.16xlarge,reserved_3y,partial_upfront,2.281872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:18.828926 +AWS,ap-southeast-2,g6.16xlarge,spot,NA,1.938489,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037003 +AWS,ap-southeast-2,g6.24xlarge,on_demand,NA,8.67909,USD,AWS Pricing API,2025-11-30T09:00:10.640411 +AWS,ap-southeast-2,g6.24xlarge,reserved_1y,all_upfront,5.273402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:41.651484 +AWS,ap-southeast-2,g6.24xlarge,reserved_1y,no_upfront,5.273402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:23.365188 +AWS,ap-southeast-2,g6.24xlarge,reserved_1y,partial_upfront,5.273402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:07.575668 +AWS,ap-southeast-2,g6.24xlarge,reserved_3y,all_upfront,1.757801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:43.583252 +AWS,ap-southeast-2,g6.24xlarge,reserved_3y,no_upfront,1.757801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:26.570474 +AWS,ap-southeast-2,g6.24xlarge,reserved_3y,partial_upfront,1.757801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:18.963464 +AWS,ap-southeast-2,g6.24xlarge,spot,NA,3.699466,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.036994 +AWS,ap-southeast-2,g6.2xlarge,on_demand,NA,1.27107,USD,AWS Pricing API,2025-11-30T09:00:12.269070 +AWS,ap-southeast-2,g6.2xlarge,reserved_1y,all_upfront,0.77226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:43.270444 +AWS,ap-southeast-2,g6.2xlarge,reserved_1y,no_upfront,0.77226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:24.990441 +AWS,ap-southeast-2,g6.2xlarge,reserved_1y,partial_upfront,0.77226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:09.205167 +AWS,ap-southeast-2,g6.2xlarge,reserved_3y,all_upfront,0.25742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:45.179015 +AWS,ap-southeast-2,g6.2xlarge,reserved_3y,no_upfront,0.25742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:28.216970 +AWS,ap-southeast-2,g6.2xlarge,reserved_3y,partial_upfront,0.25742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:20.576644 +AWS,ap-southeast-2,g6.2xlarge,spot,NA,0.432499,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037012 +AWS,ap-southeast-2,g6.48xlarge,on_demand,NA,17.35817,USD,AWS Pricing API,2025-11-30T09:00:10.093743 +AWS,ap-southeast-2,g6.48xlarge,reserved_1y,all_upfront,11.30017,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:41.113297 +AWS,ap-southeast-2,g6.48xlarge,reserved_1y,no_upfront,11.30017,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:22.803484 +AWS,ap-southeast-2,g6.48xlarge,reserved_1y,partial_upfront,11.30017,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:07.035896 +AWS,ap-southeast-2,g6.48xlarge,reserved_3y,all_upfront,11.30017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:43.051774 +AWS,ap-southeast-2,g6.48xlarge,reserved_3y,no_upfront,11.30017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:26.023915 +AWS,ap-southeast-2,g6.48xlarge,reserved_3y,partial_upfront,11.30017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:18.427844 +AWS,ap-southeast-2,g6.48xlarge,spot,NA,7.861432,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.036958 +AWS,ap-southeast-2,g6.4xlarge,on_demand,NA,1.72042,USD,AWS Pricing API,2025-11-30T09:00:10.910436 +AWS,ap-southeast-2,g6.4xlarge,reserved_1y,all_upfront,0.98709,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:41.921444 +AWS,ap-southeast-2,g6.4xlarge,reserved_1y,no_upfront,0.98709,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:23.638823 +AWS,ap-southeast-2,g6.4xlarge,reserved_1y,partial_upfront,0.98709,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:07.861019 +AWS,ap-southeast-2,g6.4xlarge,reserved_3y,all_upfront,0.98709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:43.852029 +AWS,ap-southeast-2,g6.4xlarge,reserved_3y,no_upfront,0.98709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:26.843702 +AWS,ap-southeast-2,g6.4xlarge,reserved_3y,partial_upfront,0.98709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:19.234340 +AWS,ap-southeast-2,g6.4xlarge,spot,NA,0.686862,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.036980 +AWS,ap-southeast-2,g6.8xlarge,on_demand,NA,2.61912,USD,AWS Pricing API,2025-11-30T09:00:11.705662 +AWS,ap-southeast-2,g6.8xlarge,reserved_1y,all_upfront,1.70505,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:42.729688 +AWS,ap-southeast-2,g6.8xlarge,reserved_1y,no_upfront,1.70505,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:24.446535 +AWS,ap-southeast-2,g6.8xlarge,reserved_1y,partial_upfront,1.70505,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:08.665308 +AWS,ap-southeast-2,g6.8xlarge,reserved_3y,all_upfront,1.70505,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:44.647434 +AWS,ap-southeast-2,g6.8xlarge,reserved_3y,no_upfront,1.70505,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:27.666413 +AWS,ap-southeast-2,g6.8xlarge,reserved_3y,partial_upfront,1.70505,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:20.036231 +AWS,ap-southeast-2,g6.8xlarge,spot,NA,0.956433,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037020 +AWS,ap-southeast-2,g6.xlarge,on_demand,NA,1.0464,USD,AWS Pricing API,2025-11-30T09:00:10.239569 +AWS,ap-southeast-2,g6.xlarge,reserved_1y,all_upfront,0.60037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:41.249956 +AWS,ap-southeast-2,g6.xlarge,reserved_1y,no_upfront,0.60037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:22.941816 +AWS,ap-southeast-2,g6.xlarge,reserved_1y,partial_upfront,0.60037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:07.168192 +AWS,ap-southeast-2,g6.xlarge,reserved_3y,all_upfront,0.60037,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:43.183381 +AWS,ap-southeast-2,g6.xlarge,reserved_3y,no_upfront,0.60037,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:26.161299 +AWS,ap-southeast-2,g6.xlarge,reserved_3y,partial_upfront,0.60037,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:18.560487 +AWS,ap-southeast-2,g6.xlarge,spot,NA,0.356251,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.036985 +AWS,ap-southeast-2,gr6.4xlarge,on_demand,NA,2.0012,USD,AWS Pricing API,2025-11-30T09:00:11.571214 +AWS,ap-southeast-2,gr6.4xlarge,reserved_1y,all_upfront,1.24069,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:42.595585 +AWS,ap-southeast-2,gr6.4xlarge,reserved_1y,no_upfront,1.24069,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:24.311447 +AWS,ap-southeast-2,gr6.4xlarge,reserved_1y,partial_upfront,1.24069,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:08.523920 +AWS,ap-southeast-2,gr6.4xlarge,reserved_3y,all_upfront,0.827143,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:44.516686 +AWS,ap-southeast-2,gr6.4xlarge,reserved_3y,no_upfront,0.827143,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:27.529094 +AWS,ap-southeast-2,gr6.4xlarge,reserved_3y,partial_upfront,0.827143,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:19.902547 +AWS,ap-southeast-2,gr6.4xlarge,spot,NA,0.692084,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037007 +AWS,ap-southeast-2,gr6.8xlarge,on_demand,NA,3.1807,USD,AWS Pricing API,2025-11-30T09:00:13.030338 +AWS,ap-southeast-2,gr6.8xlarge,reserved_1y,all_upfront,2.5883,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:43.937165 +AWS,ap-southeast-2,gr6.8xlarge,reserved_1y,no_upfront,2.5883,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:25.666453 +AWS,ap-southeast-2,gr6.8xlarge,reserved_1y,partial_upfront,2.5883,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:09.878301 +AWS,ap-southeast-2,gr6.8xlarge,reserved_3y,all_upfront,2.5883,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:45.836604 +AWS,ap-southeast-2,gr6.8xlarge,reserved_3y,no_upfront,2.5883,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:28.901276 +AWS,ap-southeast-2,gr6.8xlarge,reserved_3y,partial_upfront,2.5883,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:21.254596 +AWS,ap-southeast-2,gr6.8xlarge,spot,NA,1.0667,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037059 +AWS,ap-southeast-2,i2.2xlarge,on_demand,NA,2.035,USD,AWS Pricing API,2025-11-30T09:00:59.541398 +AWS,ap-southeast-2,i2.2xlarge,reserved_1y,all_upfront,2.768721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:29.903988 +AWS,ap-southeast-2,i2.2xlarge,reserved_1y,no_upfront,2.768721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:12.187995 +AWS,ap-southeast-2,i2.2xlarge,reserved_1y,partial_upfront,2.768721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:55.580692 +AWS,ap-southeast-2,i2.2xlarge,reserved_3y,all_upfront,0.922907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:30.864648 +AWS,ap-southeast-2,i2.2xlarge,reserved_3y,no_upfront,0.922907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:15.926307 +AWS,ap-southeast-2,i2.2xlarge,reserved_3y,partial_upfront,0.922907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:06.933475 +AWS,ap-southeast-2,i2.2xlarge,spot,NA,0.646659,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038384 +AWS,ap-southeast-2,i2.4xlarge,on_demand,NA,4.07,USD,AWS Pricing API,2025-11-30T09:00:55.465692 +AWS,ap-southeast-2,i2.4xlarge,reserved_1y,all_upfront,2.522,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:25.845692 +AWS,ap-southeast-2,i2.4xlarge,reserved_1y,no_upfront,2.522,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:08.067038 +AWS,ap-southeast-2,i2.4xlarge,reserved_1y,partial_upfront,2.522,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:51.532807 +AWS,ap-southeast-2,i2.4xlarge,reserved_3y,all_upfront,2.522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:26.901472 +AWS,ap-southeast-2,i2.4xlarge,reserved_3y,no_upfront,2.522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:11.789155 +AWS,ap-southeast-2,i2.4xlarge,reserved_3y,partial_upfront,2.522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:02.919625 +AWS,ap-southeast-2,i2.4xlarge,spot,NA,1.32224,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038275 +AWS,ap-southeast-2,i2.8xlarge,on_demand,NA,8.14,USD,AWS Pricing API,2025-11-30T09:01:02.188560 +AWS,ap-southeast-2,i2.8xlarge,reserved_1y,all_upfront,4.708105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:32.479628 +AWS,ap-southeast-2,i2.8xlarge,reserved_1y,no_upfront,4.708105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:14.781308 +AWS,ap-southeast-2,i2.8xlarge,reserved_1y,partial_upfront,4.708105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:58.142144 +AWS,ap-southeast-2,i2.8xlarge,reserved_3y,all_upfront,1.569368,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:33.379342 +AWS,ap-southeast-2,i2.8xlarge,reserved_3y,no_upfront,1.569368,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:18.555310 +AWS,ap-southeast-2,i2.8xlarge,reserved_3y,partial_upfront,1.569368,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:09.488982 +AWS,ap-southeast-2,i2.8xlarge,spot,NA,2.576802,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038449 +AWS,ap-southeast-2,i2.xlarge,on_demand,NA,1.018,USD,AWS Pricing API,2025-11-30T09:01:02.740673 +AWS,ap-southeast-2,i2.xlarge,reserved_1y,all_upfront,0.522201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:33.015190 +AWS,ap-southeast-2,i2.xlarge,reserved_1y,no_upfront,0.522201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:15.321105 +AWS,ap-southeast-2,i2.xlarge,reserved_1y,partial_upfront,0.522201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:58.685107 +AWS,ap-southeast-2,i2.xlarge,reserved_3y,all_upfront,0.322734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:33.914474 +AWS,ap-southeast-2,i2.xlarge,reserved_3y,no_upfront,0.322734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:19.105477 +AWS,ap-southeast-2,i2.xlarge,reserved_3y,partial_upfront,0.322734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:10.029504 +AWS,ap-southeast-2,i2.xlarge,spot,NA,0.313943,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038469 +AWS,ap-southeast-2,i3.16xlarge,on_demand,NA,5.984,USD,AWS Pricing API,2025-11-30T09:01:09.112112 +AWS,ap-southeast-2,i3.16xlarge,reserved_1y,all_upfront,4.399886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:39.263224 +AWS,ap-southeast-2,i3.16xlarge,reserved_1y,no_upfront,4.399886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:21.647345 +AWS,ap-southeast-2,i3.16xlarge,reserved_1y,partial_upfront,4.399886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:04.932774 +AWS,ap-southeast-2,i3.16xlarge,reserved_3y,all_upfront,1.466629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:40.038335 +AWS,ap-southeast-2,i3.16xlarge,reserved_3y,no_upfront,1.466629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:25.424033 +AWS,ap-southeast-2,i3.16xlarge,reserved_3y,partial_upfront,1.466629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:16.197335 +AWS,ap-southeast-2,i3.16xlarge,spot,NA,2.012886,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038657 +AWS,ap-southeast-2,i3.2xlarge,on_demand,NA,0.748,USD,AWS Pricing API,2025-11-30T09:00:28.441533 +AWS,ap-southeast-2,i3.2xlarge,reserved_1y,all_upfront,0.476484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:59.025171 +AWS,ap-southeast-2,i3.2xlarge,reserved_1y,no_upfront,0.476484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:40.961050 +AWS,ap-southeast-2,i3.2xlarge,reserved_1y,partial_upfront,0.476484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:24.839809 +AWS,ap-southeast-2,i3.2xlarge,reserved_3y,all_upfront,0.158828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:00.540474 +AWS,ap-southeast-2,i3.2xlarge,reserved_3y,no_upfront,0.158828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:44.214153 +AWS,ap-southeast-2,i3.2xlarge,reserved_3y,partial_upfront,0.158828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:36.212643 +AWS,ap-southeast-2,i3.2xlarge,spot,NA,0.302758,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037483 +AWS,ap-southeast-2,i3.4xlarge,on_demand,NA,1.496,USD,AWS Pricing API,2025-11-30T09:00:29.936346 +AWS,ap-southeast-2,i3.4xlarge,reserved_1y,all_upfront,1.025,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:00.504683 +AWS,ap-southeast-2,i3.4xlarge,reserved_1y,no_upfront,1.025,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:42.466877 +AWS,ap-southeast-2,i3.4xlarge,reserved_1y,partial_upfront,1.025,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:26.332849 +AWS,ap-southeast-2,i3.4xlarge,reserved_3y,all_upfront,1.025,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:02.008179 +AWS,ap-southeast-2,i3.4xlarge,reserved_3y,no_upfront,1.025,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:45.790031 +AWS,ap-southeast-2,i3.4xlarge,reserved_3y,partial_upfront,1.025,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:37.703869 +AWS,ap-southeast-2,i3.4xlarge,spot,NA,0.550942,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037523 +AWS,ap-southeast-2,i3.8xlarge,on_demand,NA,2.992,USD,AWS Pricing API,2025-11-30T09:00:24.053526 +AWS,ap-southeast-2,i3.8xlarge,reserved_1y,all_upfront,1.944374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:54.679163 +AWS,ap-southeast-2,i3.8xlarge,reserved_1y,no_upfront,1.944374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:36.552820 +AWS,ap-southeast-2,i3.8xlarge,reserved_1y,partial_upfront,1.944374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:20.530447 +AWS,ap-southeast-2,i3.8xlarge,reserved_3y,all_upfront,1.296125,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:56.281634 +AWS,ap-southeast-2,i3.8xlarge,reserved_3y,no_upfront,1.296125,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:39.777171 +AWS,ap-southeast-2,i3.8xlarge,reserved_3y,partial_upfront,1.296125,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:31.854840 +AWS,ap-southeast-2,i3.8xlarge,spot,NA,1.192148,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037375 +AWS,ap-southeast-2,i3.large,on_demand,NA,0.187,USD,AWS Pricing API,2025-11-30T09:00:29.122563 +AWS,ap-southeast-2,i3.large,reserved_1y,all_upfront,0.121731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:59.697066 +AWS,ap-southeast-2,i3.large,reserved_1y,no_upfront,0.121731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:41.646632 +AWS,ap-southeast-2,i3.large,reserved_1y,partial_upfront,0.121731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:25.521763 +AWS,ap-southeast-2,i3.large,reserved_3y,all_upfront,0.081244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:01.207399 +AWS,ap-southeast-2,i3.large,reserved_3y,no_upfront,0.081244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:44.902395 +AWS,ap-southeast-2,i3.large,reserved_3y,partial_upfront,0.081244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:36.881119 +AWS,ap-southeast-2,i3.large,spot,NA,0.062041,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037515 +AWS,ap-southeast-2,i3.xlarge,on_demand,NA,0.374,USD,AWS Pricing API,2025-11-30T09:00:54.633586 +AWS,ap-southeast-2,i3.xlarge,reserved_1y,all_upfront,0.336397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:25.020192 +AWS,ap-southeast-2,i3.xlarge,reserved_1y,no_upfront,0.336397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:07.250422 +AWS,ap-southeast-2,i3.xlarge,reserved_1y,partial_upfront,0.336397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:50.732665 +AWS,ap-southeast-2,i3.xlarge,reserved_3y,all_upfront,0.168132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:26.103937 +AWS,ap-southeast-2,i3.xlarge,reserved_3y,no_upfront,0.168132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:10.949962 +AWS,ap-southeast-2,i3.xlarge,reserved_3y,partial_upfront,0.168132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:02.090566 +AWS,ap-southeast-2,i3.xlarge,spot,NA,0.148348,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038215 +AWS,ap-southeast-2,i3en.12xlarge,on_demand,NA,6.504,USD,AWS Pricing API,2025-11-30T09:00:26.094763 +AWS,ap-southeast-2,i3en.12xlarge,reserved_1y,all_upfront,4.235922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:56.710430 +AWS,ap-southeast-2,i3en.12xlarge,reserved_1y,no_upfront,4.235922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:38.626773 +AWS,ap-southeast-2,i3en.12xlarge,reserved_1y,partial_upfront,4.235922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:22.551253 +AWS,ap-southeast-2,i3en.12xlarge,reserved_3y,all_upfront,2.823974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:58.282201 +AWS,ap-southeast-2,i3en.12xlarge,reserved_3y,no_upfront,2.823974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:41.864527 +AWS,ap-southeast-2,i3en.12xlarge,reserved_3y,partial_upfront,2.823974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:33.878506 +AWS,ap-southeast-2,i3en.12xlarge,spot,NA,2.448845,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037392 +AWS,ap-southeast-2,i3en.24xlarge,on_demand,NA,13.008,USD,AWS Pricing API,2025-11-30T09:00:31.454576 +AWS,ap-southeast-2,i3en.24xlarge,reserved_1y,all_upfront,8.471845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:02.010730 +AWS,ap-southeast-2,i3en.24xlarge,reserved_1y,no_upfront,8.471845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:43.976113 +AWS,ap-southeast-2,i3en.24xlarge,reserved_1y,partial_upfront,8.471845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:27.803614 +AWS,ap-southeast-2,i3en.24xlarge,reserved_3y,all_upfront,5.647948,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:03.502320 +AWS,ap-southeast-2,i3en.24xlarge,reserved_3y,no_upfront,5.647948,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:47.308751 +AWS,ap-southeast-2,i3en.24xlarge,reserved_3y,partial_upfront,5.647948,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:39.175666 +AWS,ap-southeast-2,i3en.24xlarge,spot,NA,4.460113,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037556 +AWS,ap-southeast-2,i3en.2xlarge,on_demand,NA,1.084,USD,AWS Pricing API,2025-11-30T09:00:21.088618 +AWS,ap-southeast-2,i3en.2xlarge,reserved_1y,all_upfront,0.812164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:51.823396 +AWS,ap-southeast-2,i3en.2xlarge,reserved_1y,no_upfront,0.812164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:33.627699 +AWS,ap-southeast-2,i3en.2xlarge,reserved_1y,partial_upfront,0.812164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:17.712298 +AWS,ap-southeast-2,i3en.2xlarge,reserved_3y,all_upfront,0.541388,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:53.489494 +AWS,ap-southeast-2,i3en.2xlarge,reserved_3y,no_upfront,0.541388,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:36.872266 +AWS,ap-southeast-2,i3en.2xlarge,reserved_3y,partial_upfront,0.541388,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:29.032598 +AWS,ap-southeast-2,i3en.2xlarge,spot,NA,0.443446,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037295 +AWS,ap-southeast-2,i3en.3xlarge,on_demand,NA,1.626,USD,AWS Pricing API,2025-11-30T09:01:16.354932 +AWS,ap-southeast-2,i3en.3xlarge,reserved_1y,all_upfront,1.112,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:46.401105 +AWS,ap-southeast-2,i3en.3xlarge,reserved_1y,no_upfront,1.112,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:28.933973 +AWS,ap-southeast-2,i3en.3xlarge,reserved_1y,partial_upfront,1.112,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:12.121868 +AWS,ap-southeast-2,i3en.3xlarge,reserved_3y,all_upfront,1.112,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:47.067807 +AWS,ap-southeast-2,i3en.3xlarge,reserved_3y,no_upfront,1.112,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:32.690272 +AWS,ap-southeast-2,i3en.3xlarge,reserved_3y,partial_upfront,1.112,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:23.309095 +AWS,ap-southeast-2,i3en.3xlarge,spot,NA,0.574514,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038817 +AWS,ap-southeast-2,i3en.6xlarge,on_demand,NA,3.252,USD,AWS Pricing API,2025-11-30T09:01:07.569304 +AWS,ap-southeast-2,i3en.6xlarge,reserved_1y,all_upfront,2.559,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:37.762967 +AWS,ap-southeast-2,i3en.6xlarge,reserved_1y,no_upfront,2.559,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:20.145218 +AWS,ap-southeast-2,i3en.6xlarge,reserved_1y,partial_upfront,2.559,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:03.459633 +AWS,ap-southeast-2,i3en.6xlarge,reserved_3y,all_upfront,2.559,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:38.572332 +AWS,ap-southeast-2,i3en.6xlarge,reserved_3y,no_upfront,2.559,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:23.906781 +AWS,ap-southeast-2,i3en.6xlarge,reserved_3y,partial_upfront,2.559,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:14.727615 +AWS,ap-southeast-2,i3en.6xlarge,spot,NA,1.050738,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038597 +AWS,ap-southeast-2,i3en.large,on_demand,NA,0.271,USD,AWS Pricing API,2025-11-30T09:00:40.039019 +AWS,ap-southeast-2,i3en.large,reserved_1y,all_upfront,0.218813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:10.539600 +AWS,ap-southeast-2,i3en.large,reserved_1y,no_upfront,0.218813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:52.585336 +AWS,ap-southeast-2,i3en.large,reserved_1y,partial_upfront,0.218813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:36.317015 +AWS,ap-southeast-2,i3en.large,reserved_3y,all_upfront,0.109604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:11.905632 +AWS,ap-southeast-2,i3en.large,reserved_3y,no_upfront,0.109604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:56.036055 +AWS,ap-southeast-2,i3en.large,reserved_3y,partial_upfront,0.109604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:47.666861 +AWS,ap-southeast-2,i3en.large,spot,NA,0.088604,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037814 +AWS,ap-southeast-2,i3en.xlarge,on_demand,NA,0.542,USD,AWS Pricing API,2025-11-30T09:00:39.345318 +AWS,ap-southeast-2,i3en.xlarge,reserved_1y,all_upfront,0.427,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:09.868922 +AWS,ap-southeast-2,i3en.xlarge,reserved_1y,no_upfront,0.427,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:51.901726 +AWS,ap-southeast-2,i3en.xlarge,reserved_1y,partial_upfront,0.427,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:35.640302 +AWS,ap-southeast-2,i3en.xlarge,reserved_3y,all_upfront,0.427,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:11.245165 +AWS,ap-southeast-2,i3en.xlarge,reserved_3y,no_upfront,0.427,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:55.346727 +AWS,ap-southeast-2,i3en.xlarge,reserved_3y,partial_upfront,0.427,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:46.993639 +AWS,ap-southeast-2,i3en.xlarge,spot,NA,0.212496,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037767 +AWS,ap-southeast-2,i4g.16xlarge,on_demand,NA,5.92416,USD,AWS Pricing API,2025-11-30T09:00:56.563243 +AWS,ap-southeast-2,i4g.16xlarge,reserved_1y,all_upfront,3.86739,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:26.930676 +AWS,ap-southeast-2,i4g.16xlarge,reserved_1y,no_upfront,3.86739,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:09.159563 +AWS,ap-southeast-2,i4g.16xlarge,reserved_1y,partial_upfront,3.86739,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:52.606274 +AWS,ap-southeast-2,i4g.16xlarge,reserved_3y,all_upfront,3.86739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:27.965942 +AWS,ap-southeast-2,i4g.16xlarge,reserved_3y,no_upfront,3.86739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:12.894306 +AWS,ap-southeast-2,i4g.16xlarge,reserved_3y,partial_upfront,3.86739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:04.002542 +AWS,ap-southeast-2,i4g.16xlarge,spot,NA,1.980605,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038323 +AWS,ap-southeast-2,i4g.2xlarge,on_demand,NA,0.74052,USD,AWS Pricing API,2025-11-30T09:01:10.747678 +AWS,ap-southeast-2,i4g.2xlarge,reserved_1y,all_upfront,0.57562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:40.876255 +AWS,ap-southeast-2,i4g.2xlarge,reserved_1y,no_upfront,0.57562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:23.287353 +AWS,ap-southeast-2,i4g.2xlarge,reserved_1y,partial_upfront,0.57562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:06.561758 +AWS,ap-southeast-2,i4g.2xlarge,reserved_3y,all_upfront,0.57562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:41.634458 +AWS,ap-southeast-2,i4g.2xlarge,reserved_3y,no_upfront,0.57562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:27.075696 +AWS,ap-southeast-2,i4g.2xlarge,reserved_3y,partial_upfront,0.57562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:17.817980 +AWS,ap-southeast-2,i4g.2xlarge,spot,NA,0.263511,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038669 +AWS,ap-southeast-2,i4g.4xlarge,on_demand,NA,1.48104,USD,AWS Pricing API,2025-11-30T09:01:09.665639 +AWS,ap-southeast-2,i4g.4xlarge,reserved_1y,all_upfront,1.270031,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:39.798901 +AWS,ap-southeast-2,i4g.4xlarge,reserved_1y,no_upfront,1.270031,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:22.199207 +AWS,ap-southeast-2,i4g.4xlarge,reserved_1y,partial_upfront,1.270031,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:05.471795 +AWS,ap-southeast-2,i4g.4xlarge,reserved_3y,all_upfront,0.635024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:40.572279 +AWS,ap-southeast-2,i4g.4xlarge,reserved_3y,no_upfront,0.635024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:25.976878 +AWS,ap-southeast-2,i4g.4xlarge,reserved_3y,partial_upfront,0.635024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:16.737010 +AWS,ap-southeast-2,i4g.4xlarge,spot,NA,0.532475,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038633 +AWS,ap-southeast-2,i4g.8xlarge,on_demand,NA,2.96208,USD,AWS Pricing API,2025-11-30T09:00:56.832545 +AWS,ap-southeast-2,i4g.8xlarge,reserved_1y,all_upfront,1.841586,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:27.200346 +AWS,ap-southeast-2,i4g.8xlarge,reserved_1y,no_upfront,1.841586,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:09.427816 +AWS,ap-southeast-2,i4g.8xlarge,reserved_1y,partial_upfront,1.841586,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:52.882452 +AWS,ap-southeast-2,i4g.8xlarge,reserved_3y,all_upfront,1.227735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:28.228631 +AWS,ap-southeast-2,i4g.8xlarge,reserved_3y,no_upfront,1.227735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:13.166298 +AWS,ap-southeast-2,i4g.8xlarge,reserved_3y,partial_upfront,1.227735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:04.269579 +AWS,ap-southeast-2,i4g.8xlarge,spot,NA,0.987907,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038327 +AWS,ap-southeast-2,i4g.large,on_demand,NA,0.18513,USD,AWS Pricing API,2025-11-30T09:00:30.485917 +AWS,ap-southeast-2,i4g.large,reserved_1y,all_upfront,0.115084,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:01.041355 +AWS,ap-southeast-2,i4g.large,reserved_1y,no_upfront,0.115084,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:43.018902 +AWS,ap-southeast-2,i4g.large,reserved_1y,partial_upfront,0.115084,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:26.865780 +AWS,ap-southeast-2,i4g.large,reserved_3y,all_upfront,0.076728,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:02.552017 +AWS,ap-southeast-2,i4g.large,reserved_3y,no_upfront,0.076728,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:46.345307 +AWS,ap-southeast-2,i4g.large,reserved_3y,partial_upfront,0.076728,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:38.234840 +AWS,ap-southeast-2,i4g.large,spot,NA,0.061748,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037543 +AWS,ap-southeast-2,i4g.xlarge,on_demand,NA,0.37026,USD,AWS Pricing API,2025-11-30T09:00:53.423853 +AWS,ap-southeast-2,i4g.xlarge,reserved_1y,all_upfront,0.230168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:23.814887 +AWS,ap-southeast-2,i4g.xlarge,reserved_1y,no_upfront,0.230168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:06.024950 +AWS,ap-southeast-2,i4g.xlarge,reserved_1y,partial_upfront,0.230168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:49.531344 +AWS,ap-southeast-2,i4g.xlarge,reserved_3y,all_upfront,0.153456,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:24.907413 +AWS,ap-southeast-2,i4g.xlarge,reserved_3y,no_upfront,0.153456,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:09.714961 +AWS,ap-southeast-2,i4g.xlarge,reserved_3y,partial_upfront,0.153456,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:00.872194 +AWS,ap-southeast-2,i4g.xlarge,spot,NA,0.128296,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038207 +AWS,ap-southeast-2,i4i.16xlarge,on_demand,NA,6.582,USD,AWS Pricing API,2025-11-30T09:00:44.260258 +AWS,ap-southeast-2,i4i.16xlarge,reserved_1y,all_upfront,4.872416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:14.744033 +AWS,ap-southeast-2,i4i.16xlarge,reserved_1y,no_upfront,4.872416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:56.803012 +AWS,ap-southeast-2,i4i.16xlarge,reserved_1y,partial_upfront,4.872416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:40.494351 +AWS,ap-southeast-2,i4i.16xlarge,reserved_3y,all_upfront,3.248139,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:16.003014 +AWS,ap-southeast-2,i4i.16xlarge,reserved_3y,no_upfront,3.248139,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:00.301067 +AWS,ap-southeast-2,i4i.16xlarge,reserved_3y,partial_upfront,3.248139,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:51.830636 +AWS,ap-southeast-2,i4i.16xlarge,spot,NA,2.178153,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037905 +AWS,ap-southeast-2,i4i.2xlarge,on_demand,NA,0.823,USD,AWS Pricing API,2025-11-30T09:01:00.388257 +AWS,ap-southeast-2,i4i.2xlarge,reserved_1y,all_upfront,0.609566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:30.723562 +AWS,ap-southeast-2,i4i.2xlarge,reserved_1y,no_upfront,0.609566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:12.993345 +AWS,ap-southeast-2,i4i.2xlarge,reserved_1y,partial_upfront,0.609566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:56.392717 +AWS,ap-southeast-2,i4i.2xlarge,reserved_3y,all_upfront,0.406522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:31.653829 +AWS,ap-southeast-2,i4i.2xlarge,reserved_3y,no_upfront,0.406522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:16.763705 +AWS,ap-southeast-2,i4i.2xlarge,reserved_3y,partial_upfront,0.406522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:07.734423 +AWS,ap-southeast-2,i4i.2xlarge,spot,NA,0.303465,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038393 +AWS,ap-southeast-2,i4i.32xlarge,on_demand,NA,13.1648,USD,AWS Pricing API,2025-11-30T09:01:12.930571 +AWS,ap-southeast-2,i4i.32xlarge,reserved_1y,all_upfront,9.745691,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:43.018711 +AWS,ap-southeast-2,i4i.32xlarge,reserved_1y,no_upfront,9.745691,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:25.480459 +AWS,ap-southeast-2,i4i.32xlarge,reserved_1y,partial_upfront,9.745691,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:08.696046 +AWS,ap-southeast-2,i4i.32xlarge,reserved_3y,all_upfront,6.497137,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:43.746007 +AWS,ap-southeast-2,i4i.32xlarge,reserved_3y,no_upfront,6.497137,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:29.249935 +AWS,ap-southeast-2,i4i.32xlarge,reserved_3y,partial_upfront,6.497137,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:19.952567 +AWS,ap-southeast-2,i4i.32xlarge,spot,NA,4.786043,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038717 +AWS,ap-southeast-2,i4i.4xlarge,on_demand,NA,1.646,USD,AWS Pricing API,2025-11-30T09:00:48.802119 +AWS,ap-southeast-2,i4i.4xlarge,reserved_1y,all_upfront,1.074,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:19.241032 +AWS,ap-southeast-2,i4i.4xlarge,reserved_1y,no_upfront,1.074,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:01.315808 +AWS,ap-southeast-2,i4i.4xlarge,reserved_1y,partial_upfront,1.074,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:44.950915 +AWS,ap-southeast-2,i4i.4xlarge,reserved_3y,all_upfront,1.074,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:20.415563 +AWS,ap-southeast-2,i4i.4xlarge,reserved_3y,no_upfront,1.074,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:04.939760 +AWS,ap-southeast-2,i4i.4xlarge,reserved_3y,partial_upfront,1.074,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:56.294407 +AWS,ap-southeast-2,i4i.4xlarge,spot,NA,0.625545,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038083 +AWS,ap-southeast-2,i4i.8xlarge,on_demand,NA,3.291,USD,AWS Pricing API,2025-11-30T09:00:51.797772 +AWS,ap-southeast-2,i4i.8xlarge,reserved_1y,all_upfront,3.979566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:22.189190 +AWS,ap-southeast-2,i4i.8xlarge,reserved_1y,no_upfront,3.979566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:04.371695 +AWS,ap-southeast-2,i4i.8xlarge,reserved_1y,partial_upfront,3.979566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:47.914572 +AWS,ap-southeast-2,i4i.8xlarge,reserved_3y,all_upfront,1.326522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:23.319681 +AWS,ap-southeast-2,i4i.8xlarge,reserved_3y,no_upfront,1.326522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:07.963578 +AWS,ap-southeast-2,i4i.8xlarge,reserved_3y,partial_upfront,1.326522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:59.262779 +AWS,ap-southeast-2,i4i.8xlarge,spot,NA,1.162155,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038153 +AWS,ap-southeast-2,i4i.large,on_demand,NA,0.206,USD,AWS Pricing API,2025-11-30T09:01:17.582208 +AWS,ap-southeast-2,i4i.large,reserved_1y,all_upfront,0.310845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:47.621244 +AWS,ap-southeast-2,i4i.large,reserved_1y,no_upfront,0.310845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:30.181231 +AWS,ap-southeast-2,i4i.large,reserved_1y,partial_upfront,0.310845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:13.341703 +AWS,ap-southeast-2,i4i.large,reserved_3y,all_upfront,0.103615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:48.266033 +AWS,ap-southeast-2,i4i.large,reserved_3y,no_upfront,0.103615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:33.929715 +AWS,ap-southeast-2,i4i.large,reserved_3y,partial_upfront,0.103615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:24.550762 +AWS,ap-southeast-2,i4i.large,spot,NA,0.06935,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038863 +AWS,ap-southeast-2,i4i.xlarge,on_demand,NA,0.411,USD,AWS Pricing API,2025-11-30T09:00:58.726978 +AWS,ap-southeast-2,i4i.xlarge,reserved_1y,all_upfront,0.32,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:29.096061 +AWS,ap-southeast-2,i4i.xlarge,reserved_1y,no_upfront,0.32,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:11.356688 +AWS,ap-southeast-2,i4i.xlarge,reserved_1y,partial_upfront,0.32,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:54.761436 +AWS,ap-southeast-2,i4i.xlarge,reserved_3y,all_upfront,0.32,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:30.082369 +AWS,ap-southeast-2,i4i.xlarge,reserved_3y,no_upfront,0.32,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:15.100645 +AWS,ap-southeast-2,i4i.xlarge,reserved_3y,partial_upfront,0.32,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:06.138609 +AWS,ap-southeast-2,i4i.xlarge,spot,NA,0.153368,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038360 +AWS,ap-southeast-2,i7i.12xlarge,on_demand,NA,5.4305,USD,AWS Pricing API,2025-11-30T09:00:36.763183 +AWS,ap-southeast-2,i7i.12xlarge,spot,NA,1.686906,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037687 +AWS,ap-southeast-2,i7i.16xlarge,on_demand,NA,7.2406,USD,AWS Pricing API,2025-11-30T09:01:22.937732 +AWS,ap-southeast-2,i7i.16xlarge,spot,NA,2.210788,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038992 +AWS,ap-southeast-2,i7i.24xlarge,on_demand,NA,10.861,USD,AWS Pricing API,2025-11-30T09:00:17.357894 +AWS,ap-southeast-2,i7i.24xlarge,spot,NA,3.092097,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037179 +AWS,ap-southeast-2,i7i.2xlarge,on_demand,NA,0.9051,USD,AWS Pricing API,2025-11-30T09:00:14.393601 +AWS,ap-southeast-2,i7i.2xlarge,spot,NA,0.380071,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037075 +AWS,ap-southeast-2,i7i.48xlarge,on_demand,NA,21.7219,USD,AWS Pricing API,2025-11-30T09:00:16.182528 +AWS,ap-southeast-2,i7i.48xlarge,spot,NA,6.488774,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037149 +AWS,ap-southeast-2,i7i.4xlarge,on_demand,NA,1.8102,USD,AWS Pricing API,2025-11-30T09:01:19.763552 +AWS,ap-southeast-2,i7i.4xlarge,spot,NA,0.690988,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038910 +AWS,ap-southeast-2,i7i.8xlarge,on_demand,NA,3.6203,USD,AWS Pricing API,2025-11-30T09:00:49.473608 +AWS,ap-southeast-2,i7i.8xlarge,spot,NA,1.326526,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038027 +AWS,ap-southeast-2,i7i.large,on_demand,NA,0.2263,USD,AWS Pricing API,2025-11-30T09:00:32.954675 +AWS,ap-southeast-2,i7i.large,spot,NA,0.070011,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037607 +AWS,ap-southeast-2,i7i.xlarge,on_demand,NA,0.4525,USD,AWS Pricing API,2025-11-30T09:00:41.406254 +AWS,ap-southeast-2,i7i.xlarge,spot,NA,0.161727,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037838 +AWS,ap-southeast-2,i8g.12xlarge,on_demand,NA,4.9368,USD,AWS Pricing API,2025-11-30T09:01:13.209190 +AWS,ap-southeast-2,i8g.12xlarge,spot,NA,2.249266,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038733 +AWS,ap-southeast-2,i8g.16xlarge,on_demand,NA,6.5824,USD,AWS Pricing API,2025-11-30T09:01:10.200259 +AWS,ap-southeast-2,i8g.16xlarge,spot,NA,3.022129,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038685 +AWS,ap-southeast-2,i8g.24xlarge,on_demand,NA,9.8736,USD,AWS Pricing API,2025-11-30T09:01:12.658338 +AWS,ap-southeast-2,i8g.24xlarge,spot,NA,4.569209,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038713 +AWS,ap-southeast-2,i8g.2xlarge,on_demand,NA,0.8228,USD,AWS Pricing API,2025-11-30T09:00:39.478918 +AWS,ap-southeast-2,i8g.2xlarge,spot,NA,0.380505,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037775 +AWS,ap-southeast-2,i8g.48xlarge,on_demand,NA,19.7472,USD,AWS Pricing API,2025-11-30T09:00:19.839486 +AWS,ap-southeast-2,i8g.48xlarge,spot,NA,9.603291,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037229 +AWS,ap-southeast-2,i8g.4xlarge,on_demand,NA,1.6456,USD,AWS Pricing API,2025-11-30T09:01:07.294959 +AWS,ap-southeast-2,i8g.4xlarge,spot,NA,0.749951,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038581 +AWS,ap-southeast-2,i8g.8xlarge,on_demand,NA,3.2912,USD,AWS Pricing API,2025-11-30T09:01:26.607070 +AWS,ap-southeast-2,i8g.8xlarge,spot,NA,1.522736,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039084 +AWS,ap-southeast-2,i8g.large,on_demand,NA,0.2057,USD,AWS Pricing API,2025-11-30T09:00:43.986247 +AWS,ap-southeast-2,i8g.large,spot,NA,0.093679,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037897 +AWS,ap-southeast-2,i8g.xlarge,on_demand,NA,0.4114,USD,AWS Pricing API,2025-11-30T09:00:35.952319 +AWS,ap-southeast-2,i8g.xlarge,spot,NA,0.188093,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037695 +AWS,ap-southeast-2,im4gn.16xlarge,on_demand,NA,6.97734,USD,AWS Pricing API,2025-11-30T09:00:43.035116 +AWS,ap-southeast-2,im4gn.16xlarge,reserved_1y,all_upfront,5.104847,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:13.526731 +AWS,ap-southeast-2,im4gn.16xlarge,reserved_1y,no_upfront,5.104847,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:55.575260 +AWS,ap-southeast-2,im4gn.16xlarge,reserved_1y,partial_upfront,5.104847,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:39.278190 +AWS,ap-southeast-2,im4gn.16xlarge,reserved_3y,all_upfront,3.403249,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:14.817430 +AWS,ap-southeast-2,im4gn.16xlarge,reserved_3y,no_upfront,3.403249,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:59.058385 +AWS,ap-southeast-2,im4gn.16xlarge,reserved_3y,partial_upfront,3.403249,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:50.627354 +AWS,ap-southeast-2,im4gn.16xlarge,spot,NA,2.632451,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037881 +AWS,ap-southeast-2,im4gn.2xlarge,on_demand,NA,0.87217,USD,AWS Pricing API,2025-11-30T09:00:40.716825 +AWS,ap-southeast-2,im4gn.2xlarge,reserved_1y,all_upfront,0.739252,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:11.211779 +AWS,ap-southeast-2,im4gn.2xlarge,reserved_1y,no_upfront,0.739252,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:53.257402 +AWS,ap-southeast-2,im4gn.2xlarge,reserved_1y,partial_upfront,0.739252,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:36.988677 +AWS,ap-southeast-2,im4gn.2xlarge,reserved_3y,all_upfront,0.369617,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:12.563256 +AWS,ap-southeast-2,im4gn.2xlarge,reserved_3y,no_upfront,0.369617,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:56.728600 +AWS,ap-southeast-2,im4gn.2xlarge,reserved_3y,partial_upfront,0.369617,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:48.331402 +AWS,ap-southeast-2,im4gn.2xlarge,spot,NA,0.310339,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037807 +AWS,ap-southeast-2,im4gn.4xlarge,on_demand,NA,1.74434,USD,AWS Pricing API,2025-11-30T09:00:35.409754 +AWS,ap-southeast-2,im4gn.4xlarge,reserved_1y,all_upfront,1.250685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:05.941925 +AWS,ap-southeast-2,im4gn.4xlarge,reserved_1y,no_upfront,1.250685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:47.936525 +AWS,ap-southeast-2,im4gn.4xlarge,reserved_1y,partial_upfront,1.250685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:31.725708 +AWS,ap-southeast-2,im4gn.4xlarge,reserved_3y,all_upfront,0.416895,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:07.398555 +AWS,ap-southeast-2,im4gn.4xlarge,reserved_3y,no_upfront,0.416895,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:51.334837 +AWS,ap-southeast-2,im4gn.4xlarge,reserved_3y,partial_upfront,0.416895,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:43.076680 +AWS,ap-southeast-2,im4gn.4xlarge,spot,NA,0.564024,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037655 +AWS,ap-southeast-2,im4gn.8xlarge,on_demand,NA,3.48867,USD,AWS Pricing API,2025-11-30T09:00:35.818975 +AWS,ap-southeast-2,im4gn.8xlarge,reserved_1y,all_upfront,2.25086,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:06.351633 +AWS,ap-southeast-2,im4gn.8xlarge,reserved_1y,no_upfront,2.25086,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:48.351403 +AWS,ap-southeast-2,im4gn.8xlarge,reserved_1y,partial_upfront,2.25086,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:32.129483 +AWS,ap-southeast-2,im4gn.8xlarge,reserved_3y,all_upfront,2.25086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:07.792063 +AWS,ap-southeast-2,im4gn.8xlarge,reserved_3y,no_upfront,2.25086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:51.746853 +AWS,ap-southeast-2,im4gn.8xlarge,reserved_3y,partial_upfront,2.25086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:43.484481 +AWS,ap-southeast-2,im4gn.8xlarge,spot,NA,1.10779,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037671 +AWS,ap-southeast-2,im4gn.large,on_demand,NA,0.21804,USD,AWS Pricing API,2025-11-30T09:00:36.492332 +AWS,ap-southeast-2,im4gn.large,reserved_1y,all_upfront,0.1675,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:07.037802 +AWS,ap-southeast-2,im4gn.large,reserved_1y,no_upfront,0.1675,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:49.026708 +AWS,ap-southeast-2,im4gn.large,reserved_1y,partial_upfront,0.1675,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:32.793602 +AWS,ap-southeast-2,im4gn.large,reserved_3y,all_upfront,0.1675,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:08.454282 +AWS,ap-southeast-2,im4gn.large,reserved_3y,no_upfront,0.1675,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:52.432166 +AWS,ap-southeast-2,im4gn.large,reserved_3y,partial_upfront,0.1675,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:44.154640 +AWS,ap-southeast-2,im4gn.large,spot,NA,0.067412,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037711 +AWS,ap-southeast-2,im4gn.xlarge,on_demand,NA,0.43608,USD,AWS Pricing API,2025-11-30T09:01:24.980094 +AWS,ap-southeast-2,im4gn.xlarge,reserved_1y,all_upfront,0.369569,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:54.908349 +AWS,ap-southeast-2,im4gn.xlarge,reserved_1y,no_upfront,0.369569,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:37.558525 +AWS,ap-southeast-2,im4gn.xlarge,reserved_1y,partial_upfront,0.369569,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:20.623779 +AWS,ap-southeast-2,im4gn.xlarge,reserved_3y,all_upfront,0.18479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:55.422677 +AWS,ap-southeast-2,im4gn.xlarge,reserved_3y,no_upfront,0.18479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:41.387420 +AWS,ap-southeast-2,im4gn.xlarge,reserved_3y,partial_upfront,0.18479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:31.816153 +AWS,ap-southeast-2,im4gn.xlarge,spot,NA,0.1422,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039027 +AWS,ap-southeast-2,is4gen.2xlarge,on_demand,NA,1.3821,USD,AWS Pricing API,2025-11-30T09:00:33.782327 +AWS,ap-southeast-2,is4gen.2xlarge,reserved_1y,all_upfront,0.94248,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:04.326727 +AWS,ap-southeast-2,is4gen.2xlarge,reserved_1y,no_upfront,0.94248,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:46.300542 +AWS,ap-southeast-2,is4gen.2xlarge,reserved_1y,partial_upfront,0.94248,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:30.110223 +AWS,ap-southeast-2,is4gen.2xlarge,reserved_3y,all_upfront,0.94248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:05.815338 +AWS,ap-southeast-2,is4gen.2xlarge,reserved_3y,no_upfront,0.94248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:49.655241 +AWS,ap-southeast-2,is4gen.2xlarge,reserved_3y,partial_upfront,0.94248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:41.468959 +AWS,ap-southeast-2,is4gen.2xlarge,spot,NA,0.534815,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037635 +AWS,ap-southeast-2,is4gen.4xlarge,on_demand,NA,2.76421,USD,AWS Pricing API,2025-11-30T09:01:17.307380 +AWS,ap-southeast-2,is4gen.4xlarge,reserved_1y,all_upfront,2.223594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:47.351859 +AWS,ap-southeast-2,is4gen.4xlarge,reserved_1y,no_upfront,2.223594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:29.893791 +AWS,ap-southeast-2,is4gen.4xlarge,reserved_1y,partial_upfront,2.223594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:13.073010 +AWS,ap-southeast-2,is4gen.4xlarge,reserved_3y,all_upfront,1.111798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:48.003375 +AWS,ap-southeast-2,is4gen.4xlarge,reserved_3y,no_upfront,1.111798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:33.656547 +AWS,ap-southeast-2,is4gen.4xlarge,reserved_3y,partial_upfront,1.111798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:24.270535 +AWS,ap-southeast-2,is4gen.4xlarge,spot,NA,0.910078,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038840 +AWS,ap-southeast-2,is4gen.8xlarge,on_demand,NA,5.52842,USD,AWS Pricing API,2025-11-30T09:00:15.345204 +AWS,ap-southeast-2,is4gen.8xlarge,reserved_1y,all_upfront,4.50981,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:46.290594 +AWS,ap-southeast-2,is4gen.8xlarge,reserved_1y,no_upfront,4.50981,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:27.994485 +AWS,ap-southeast-2,is4gen.8xlarge,reserved_1y,partial_upfront,4.50981,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:12.160177 +AWS,ap-southeast-2,is4gen.8xlarge,reserved_3y,all_upfront,4.50981,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:48.074186 +AWS,ap-southeast-2,is4gen.8xlarge,reserved_3y,no_upfront,4.50981,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:31.233461 +AWS,ap-southeast-2,is4gen.8xlarge,reserved_3y,partial_upfront,4.50981,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:23.532678 +AWS,ap-southeast-2,is4gen.8xlarge,spot,NA,1.864924,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037119 +AWS,ap-southeast-2,is4gen.large,on_demand,NA,0.34553,USD,AWS Pricing API,2025-11-30T09:00:57.237579 +AWS,ap-southeast-2,is4gen.large,reserved_1y,all_upfront,0.23562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:27.607668 +AWS,ap-southeast-2,is4gen.large,reserved_1y,no_upfront,0.23562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:09.843602 +AWS,ap-southeast-2,is4gen.large,reserved_1y,partial_upfront,0.23562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:53.286990 +AWS,ap-southeast-2,is4gen.large,reserved_3y,all_upfront,0.23562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:28.621044 +AWS,ap-southeast-2,is4gen.large,reserved_3y,no_upfront,0.23562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:13.577675 +AWS,ap-southeast-2,is4gen.large,reserved_3y,partial_upfront,0.23562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:04.667796 +AWS,ap-southeast-2,is4gen.large,spot,NA,0.134713,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038307 +AWS,ap-southeast-2,is4gen.xlarge,on_demand,NA,0.69105,USD,AWS Pricing API,2025-11-30T09:00:41.545762 +AWS,ap-southeast-2,is4gen.xlarge,reserved_1y,all_upfront,0.56373,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:12.027177 +AWS,ap-southeast-2,is4gen.xlarge,reserved_1y,no_upfront,0.56373,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:54.072241 +AWS,ap-southeast-2,is4gen.xlarge,reserved_1y,partial_upfront,0.56373,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:37.798387 +AWS,ap-southeast-2,is4gen.xlarge,reserved_3y,all_upfront,0.56373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:13.357401 +AWS,ap-southeast-2,is4gen.xlarge,reserved_3y,no_upfront,0.56373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:57.553220 +AWS,ap-southeast-2,is4gen.xlarge,reserved_3y,partial_upfront,0.56373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:49.152550 +AWS,ap-southeast-2,is4gen.xlarge,spot,NA,0.220006,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037850 +AWS,ap-southeast-2,m4.10xlarge,on_demand,NA,2.5,USD,AWS Pricing API,2025-11-30T09:00:46.741703 +AWS,ap-southeast-2,m4.10xlarge,reserved_1y,all_upfront,1.6,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:17.219589 +AWS,ap-southeast-2,m4.10xlarge,reserved_1y,no_upfront,1.6,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:59.262308 +AWS,ap-southeast-2,m4.10xlarge,reserved_1y,partial_upfront,1.6,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:42.918543 +AWS,ap-southeast-2,m4.10xlarge,reserved_3y,all_upfront,1.066667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:18.400518 +AWS,ap-southeast-2,m4.10xlarge,reserved_3y,no_upfront,1.066667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:02.857331 +AWS,ap-southeast-2,m4.10xlarge,reserved_3y,partial_upfront,1.066667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:54.275017 +AWS,ap-southeast-2,m4.10xlarge,spot,NA,0.908782,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037959 +AWS,ap-southeast-2,m4.16xlarge,on_demand,NA,4.0,USD,AWS Pricing API,2025-11-30T09:00:51.933648 +AWS,ap-southeast-2,m4.16xlarge,reserved_1y,all_upfront,4.12161,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:22.328524 +AWS,ap-southeast-2,m4.16xlarge,reserved_1y,no_upfront,4.12161,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:04.510456 +AWS,ap-southeast-2,m4.16xlarge,reserved_1y,partial_upfront,4.12161,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:48.047327 +AWS,ap-southeast-2,m4.16xlarge,reserved_3y,all_upfront,2.060803,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:23.450882 +AWS,ap-southeast-2,m4.16xlarge,reserved_3y,no_upfront,2.060803,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:08.101872 +AWS,ap-southeast-2,m4.16xlarge,reserved_3y,partial_upfront,2.060803,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:59.395515 +AWS,ap-southeast-2,m4.16xlarge,spot,NA,1.3384,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038144 +AWS,ap-southeast-2,m4.2xlarge,on_demand,NA,0.5,USD,AWS Pricing API,2025-11-30T09:00:33.372872 +AWS,ap-southeast-2,m4.2xlarge,reserved_1y,all_upfront,0.3864,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:03.916125 +AWS,ap-southeast-2,m4.2xlarge,reserved_1y,no_upfront,0.3864,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:45.895226 +AWS,ap-southeast-2,m4.2xlarge,reserved_1y,partial_upfront,0.3864,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:29.707999 +AWS,ap-southeast-2,m4.2xlarge,reserved_3y,all_upfront,0.3864,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:05.397018 +AWS,ap-southeast-2,m4.2xlarge,reserved_3y,no_upfront,0.3864,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:49.240875 +AWS,ap-southeast-2,m4.2xlarge,reserved_3y,partial_upfront,0.3864,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:41.054442 +AWS,ap-southeast-2,m4.2xlarge,spot,NA,0.233139,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037627 +AWS,ap-southeast-2,m4.4xlarge,on_demand,NA,1.0,USD,AWS Pricing API,2025-11-30T09:01:07.985476 +AWS,ap-southeast-2,m4.4xlarge,reserved_1y,all_upfront,0.7728,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:38.169606 +AWS,ap-southeast-2,m4.4xlarge,reserved_1y,no_upfront,0.7728,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:20.553190 +AWS,ap-southeast-2,m4.4xlarge,reserved_1y,partial_upfront,0.7728,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:03.866630 +AWS,ap-southeast-2,m4.4xlarge,reserved_3y,all_upfront,0.7728,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:38.972072 +AWS,ap-southeast-2,m4.4xlarge,reserved_3y,no_upfront,0.7728,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:24.328233 +AWS,ap-southeast-2,m4.4xlarge,reserved_3y,partial_upfront,0.7728,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:15.129065 +AWS,ap-southeast-2,m4.4xlarge,spot,NA,0.476412,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038609 +AWS,ap-southeast-2,m4.large,on_demand,NA,0.125,USD,AWS Pricing API,2025-11-30T09:00:14.942016 +AWS,ap-southeast-2,m4.large,reserved_1y,all_upfront,0.078425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:45.881642 +AWS,ap-southeast-2,m4.large,reserved_1y,no_upfront,0.078425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:27.587806 +AWS,ap-southeast-2,m4.large,reserved_1y,partial_upfront,0.078425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:11.753481 +AWS,ap-southeast-2,m4.large,reserved_3y,all_upfront,0.026142,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:47.678443 +AWS,ap-southeast-2,m4.large,reserved_3y,no_upfront,0.026142,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:30.822014 +AWS,ap-southeast-2,m4.large,reserved_3y,partial_upfront,0.026142,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:23.132630 +AWS,ap-southeast-2,m4.large,spot,NA,0.052089,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037067 +AWS,ap-southeast-2,m4.xlarge,on_demand,NA,0.25,USD,AWS Pricing API,2025-11-30T09:00:56.284636 +AWS,ap-southeast-2,m4.xlarge,reserved_1y,all_upfront,0.168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:26.663394 +AWS,ap-southeast-2,m4.xlarge,reserved_1y,no_upfront,0.168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:08.887151 +AWS,ap-southeast-2,m4.xlarge,reserved_1y,partial_upfront,0.168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:52.339005 +AWS,ap-southeast-2,m4.xlarge,reserved_3y,all_upfront,0.168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:27.700474 +AWS,ap-southeast-2,m4.xlarge,reserved_3y,no_upfront,0.168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:12.621308 +AWS,ap-southeast-2,m4.xlarge,reserved_3y,partial_upfront,0.168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:03.735088 +AWS,ap-southeast-2,m4.xlarge,spot,NA,0.1081,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038263 +AWS,ap-southeast-2,m5.12xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T09:00:33.507666 +AWS,ap-southeast-2,m5.12xlarge,reserved_1y,all_upfront,2.303968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:04.052738 +AWS,ap-southeast-2,m5.12xlarge,reserved_1y,no_upfront,2.303968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:46.029818 +AWS,ap-southeast-2,m5.12xlarge,reserved_1y,partial_upfront,2.303968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:29.841757 +AWS,ap-southeast-2,m5.12xlarge,reserved_3y,all_upfront,1.151989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:05.529081 +AWS,ap-southeast-2,m5.12xlarge,reserved_3y,no_upfront,1.151989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:49.378527 +AWS,ap-southeast-2,m5.12xlarge,reserved_3y,partial_upfront,1.151989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:41.196565 +AWS,ap-southeast-2,m5.12xlarge,spot,NA,1.065492,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037631 +AWS,ap-southeast-2,m5.16xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T09:01:06.322928 +AWS,ap-southeast-2,m5.16xlarge,reserved_1y,all_upfront,3.071995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:36.552494 +AWS,ap-southeast-2,m5.16xlarge,reserved_1y,no_upfront,3.071995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:18.902784 +AWS,ap-southeast-2,m5.16xlarge,reserved_1y,partial_upfront,3.071995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:02.239026 +AWS,ap-southeast-2,m5.16xlarge,reserved_3y,all_upfront,1.535998,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:37.378171 +AWS,ap-southeast-2,m5.16xlarge,reserved_3y,no_upfront,1.535998,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:22.664728 +AWS,ap-southeast-2,m5.16xlarge,reserved_3y,partial_upfront,1.535998,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:13.517247 +AWS,ap-southeast-2,m5.16xlarge,spot,NA,1.409504,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038561 +AWS,ap-southeast-2,m5.24xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T09:01:17.862329 +AWS,ap-southeast-2,m5.24xlarge,reserved_1y,all_upfront,4.371845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:47.890641 +AWS,ap-southeast-2,m5.24xlarge,reserved_1y,no_upfront,4.371845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:30.454770 +AWS,ap-southeast-2,m5.24xlarge,reserved_1y,partial_upfront,4.371845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:13.607753 +AWS,ap-southeast-2,m5.24xlarge,reserved_3y,all_upfront,2.914615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:48.531631 +AWS,ap-southeast-2,m5.24xlarge,reserved_3y,no_upfront,2.914615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:34.214603 +AWS,ap-southeast-2,m5.24xlarge,reserved_3y,partial_upfront,2.914615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:24.832006 +AWS,ap-southeast-2,m5.24xlarge,spot,NA,2.002967,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038836 +AWS,ap-southeast-2,m5.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T09:00:49.610390 +AWS,ap-southeast-2,m5.2xlarge,reserved_1y,all_upfront,0.504653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:20.041291 +AWS,ap-southeast-2,m5.2xlarge,reserved_1y,no_upfront,0.504653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:02.174954 +AWS,ap-southeast-2,m5.2xlarge,reserved_1y,partial_upfront,0.504653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:45.756767 +AWS,ap-southeast-2,m5.2xlarge,reserved_3y,all_upfront,0.252218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:21.202344 +AWS,ap-southeast-2,m5.2xlarge,reserved_3y,no_upfront,0.252218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:05.761574 +AWS,ap-southeast-2,m5.2xlarge,reserved_3y,partial_upfront,0.252218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:57.100041 +AWS,ap-southeast-2,m5.2xlarge,spot,NA,0.176703,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038100 +AWS,ap-southeast-2,m5.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T09:00:58.993107 +AWS,ap-southeast-2,m5.4xlarge,reserved_1y,all_upfront,0.765,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:29.366966 +AWS,ap-southeast-2,m5.4xlarge,reserved_1y,no_upfront,0.765,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:11.633435 +AWS,ap-southeast-2,m5.4xlarge,reserved_1y,partial_upfront,0.765,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:55.040024 +AWS,ap-southeast-2,m5.4xlarge,reserved_3y,all_upfront,0.765,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:30.341233 +AWS,ap-southeast-2,m5.4xlarge,reserved_3y,no_upfront,0.765,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:15.372718 +AWS,ap-southeast-2,m5.4xlarge,reserved_3y,partial_upfront,0.765,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:06.404723 +AWS,ap-southeast-2,m5.4xlarge,spot,NA,0.376639,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038352 +AWS,ap-southeast-2,m5.8xlarge,on_demand,NA,1.92,USD,AWS Pricing API,2025-11-30T09:01:25.923736 +AWS,ap-southeast-2,m5.8xlarge,reserved_1y,all_upfront,1.428082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:55.862364 +AWS,ap-southeast-2,m5.8xlarge,reserved_1y,no_upfront,1.428082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:38.513366 +AWS,ap-southeast-2,m5.8xlarge,reserved_1y,partial_upfront,1.428082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:21.575447 +AWS,ap-southeast-2,m5.8xlarge,reserved_3y,all_upfront,0.476027,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:56.357217 +AWS,ap-southeast-2,m5.8xlarge,reserved_3y,no_upfront,0.476027,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:42.357205 +AWS,ap-southeast-2,m5.8xlarge,reserved_3y,partial_upfront,0.476027,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:32.760879 +AWS,ap-southeast-2,m5.8xlarge,spot,NA,0.690511,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039080 +AWS,ap-southeast-2,m5.large,on_demand,NA,0.12,USD,AWS Pricing API,2025-11-30T09:00:50.016022 +AWS,ap-southeast-2,m5.large,reserved_1y,all_upfront,0.096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:20.440109 +AWS,ap-southeast-2,m5.large,reserved_1y,no_upfront,0.096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:02.592266 +AWS,ap-southeast-2,m5.large,reserved_1y,partial_upfront,0.096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:46.164775 +AWS,ap-southeast-2,m5.large,reserved_3y,all_upfront,0.096,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:21.599396 +AWS,ap-southeast-2,m5.large,reserved_3y,no_upfront,0.096,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:06.170528 +AWS,ap-southeast-2,m5.large,reserved_3y,partial_upfront,0.096,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:57.506044 +AWS,ap-southeast-2,m5.large,spot,NA,0.047171,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038108 +AWS,ap-southeast-2,m5.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T09:01:23.752875 +AWS,ap-southeast-2,m5.xlarge,reserved_1y,all_upfront,0.182096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:53.697758 +AWS,ap-southeast-2,m5.xlarge,reserved_1y,no_upfront,0.182096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:36.333519 +AWS,ap-southeast-2,m5.xlarge,reserved_1y,partial_upfront,0.182096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:19.417951 +AWS,ap-southeast-2,m5.xlarge,reserved_3y,all_upfront,0.121365,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:54.236352 +AWS,ap-southeast-2,m5.xlarge,reserved_3y,no_upfront,0.121365,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:40.149962 +AWS,ap-southeast-2,m5.xlarge,reserved_3y,partial_upfront,0.121365,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:30.615483 +AWS,ap-southeast-2,m5.xlarge,spot,NA,0.084139,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038998 +AWS,ap-southeast-2,m5a.12xlarge,on_demand,NA,2.592,USD,AWS Pricing API,2025-11-30T09:00:50.565764 +AWS,ap-southeast-2,m5a.12xlarge,reserved_1y,all_upfront,1.524087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:20.976450 +AWS,ap-southeast-2,m5a.12xlarge,reserved_1y,no_upfront,1.524087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:03.139514 +AWS,ap-southeast-2,m5a.12xlarge,reserved_1y,partial_upfront,1.524087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:46.701983 +AWS,ap-southeast-2,m5a.12xlarge,reserved_3y,all_upfront,0.508029,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:22.124519 +AWS,ap-southeast-2,m5a.12xlarge,reserved_3y,no_upfront,0.508029,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:06.728825 +AWS,ap-southeast-2,m5a.12xlarge,reserved_3y,partial_upfront,0.508029,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:58.047269 +AWS,ap-southeast-2,m5a.12xlarge,spot,NA,1.09961,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038120 +AWS,ap-southeast-2,m5a.16xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T09:01:08.120686 +AWS,ap-southeast-2,m5a.16xlarge,reserved_1y,all_upfront,1.493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:38.304827 +AWS,ap-southeast-2,m5a.16xlarge,reserved_1y,no_upfront,1.493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:20.701796 +AWS,ap-southeast-2,m5a.16xlarge,reserved_1y,partial_upfront,1.493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:03.999711 +AWS,ap-southeast-2,m5a.16xlarge,reserved_3y,all_upfront,1.493,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:39.106150 +AWS,ap-southeast-2,m5a.16xlarge,reserved_3y,no_upfront,1.493,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:24.465745 +AWS,ap-southeast-2,m5a.16xlarge,reserved_3y,partial_upfront,1.493,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:15.263228 +AWS,ap-southeast-2,m5a.16xlarge,spot,NA,1.209694,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038617 +AWS,ap-southeast-2,m5a.24xlarge,on_demand,NA,5.184,USD,AWS Pricing API,2025-11-30T09:00:43.170328 +AWS,ap-southeast-2,m5a.24xlarge,reserved_1y,all_upfront,3.048174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:13.661126 +AWS,ap-southeast-2,m5a.24xlarge,reserved_1y,no_upfront,3.048174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:55.711339 +AWS,ap-southeast-2,m5a.24xlarge,reserved_1y,partial_upfront,3.048174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:39.412104 +AWS,ap-southeast-2,m5a.24xlarge,reserved_3y,all_upfront,1.016058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:14.949409 +AWS,ap-southeast-2,m5a.24xlarge,reserved_3y,no_upfront,1.016058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:59.195722 +AWS,ap-southeast-2,m5a.24xlarge,reserved_3y,partial_upfront,1.016058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:50.761650 +AWS,ap-southeast-2,m5a.24xlarge,spot,NA,1.720638,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037869 +AWS,ap-southeast-2,m5a.2xlarge,on_demand,NA,0.432,USD,AWS Pricing API,2025-11-30T09:00:35.682238 +AWS,ap-southeast-2,m5a.2xlarge,reserved_1y,all_upfront,0.344,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:06.215292 +AWS,ap-southeast-2,m5a.2xlarge,reserved_1y,no_upfront,0.344,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:48.212812 +AWS,ap-southeast-2,m5a.2xlarge,reserved_1y,partial_upfront,0.344,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:31.996464 +AWS,ap-southeast-2,m5a.2xlarge,reserved_3y,all_upfront,0.344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:07.660870 +AWS,ap-southeast-2,m5a.2xlarge,reserved_3y,no_upfront,0.344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:51.607652 +AWS,ap-southeast-2,m5a.2xlarge,reserved_3y,partial_upfront,0.344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:43.344902 +AWS,ap-southeast-2,m5a.2xlarge,spot,NA,0.215776,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037675 +AWS,ap-southeast-2,m5a.4xlarge,on_demand,NA,0.864,USD,AWS Pricing API,2025-11-30T09:01:16.490510 +AWS,ap-southeast-2,m5a.4xlarge,reserved_1y,all_upfront,0.688,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:46.538599 +AWS,ap-southeast-2,m5a.4xlarge,reserved_1y,no_upfront,0.688,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:29.071548 +AWS,ap-southeast-2,m5a.4xlarge,reserved_1y,partial_upfront,0.688,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:12.256157 +AWS,ap-southeast-2,m5a.4xlarge,reserved_3y,all_upfront,0.688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:47.198388 +AWS,ap-southeast-2,m5a.4xlarge,reserved_3y,no_upfront,0.688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:32.826404 +AWS,ap-southeast-2,m5a.4xlarge,reserved_3y,partial_upfront,0.688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:23.454609 +AWS,ap-southeast-2,m5a.4xlarge,spot,NA,0.346286,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038825 +AWS,ap-southeast-2,m5a.8xlarge,on_demand,NA,1.728,USD,AWS Pricing API,2025-11-30T09:00:26.640097 +AWS,ap-southeast-2,m5a.8xlarge,reserved_1y,all_upfront,0.982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:57.257563 +AWS,ap-southeast-2,m5a.8xlarge,reserved_1y,no_upfront,0.982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:39.174868 +AWS,ap-southeast-2,m5a.8xlarge,reserved_1y,partial_upfront,0.982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:23.093093 +AWS,ap-southeast-2,m5a.8xlarge,reserved_3y,all_upfront,0.982,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:58.818206 +AWS,ap-southeast-2,m5a.8xlarge,reserved_3y,no_upfront,0.982,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:42.414484 +AWS,ap-southeast-2,m5a.8xlarge,reserved_3y,partial_upfront,0.982,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:34.426246 +AWS,ap-southeast-2,m5a.8xlarge,spot,NA,0.675162,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037438 +AWS,ap-southeast-2,m5a.large,on_demand,NA,0.108,USD,AWS Pricing API,2025-11-30T09:00:45.630953 +AWS,ap-southeast-2,m5a.large,reserved_1y,all_upfront,0.080251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:16.118448 +AWS,ap-southeast-2,m5a.large,reserved_1y,no_upfront,0.080251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:58.164683 +AWS,ap-southeast-2,m5a.large,reserved_1y,partial_upfront,0.080251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:41.829714 +AWS,ap-southeast-2,m5a.large,reserved_3y,all_upfront,0.02675,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:17.329349 +AWS,ap-southeast-2,m5a.large,reserved_3y,no_upfront,0.02675,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:01.702646 +AWS,ap-southeast-2,m5a.large,reserved_3y,partial_upfront,0.02675,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:53.189063 +AWS,ap-southeast-2,m5a.large,spot,NA,0.049569,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037955 +AWS,ap-southeast-2,m5a.xlarge,on_demand,NA,0.216,USD,AWS Pricing API,2025-11-30T09:00:47.689495 +AWS,ap-southeast-2,m5a.xlarge,reserved_1y,all_upfront,0.172566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:18.166517 +AWS,ap-southeast-2,m5a.xlarge,reserved_1y,no_upfront,0.172566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:00.215794 +AWS,ap-southeast-2,m5a.xlarge,reserved_1y,partial_upfront,0.172566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:43.870409 +AWS,ap-southeast-2,m5a.xlarge,reserved_3y,all_upfront,0.086189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:19.342493 +AWS,ap-southeast-2,m5a.xlarge,reserved_3y,no_upfront,0.086189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:03.835632 +AWS,ap-southeast-2,m5a.xlarge,reserved_3y,partial_upfront,0.086189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:55.215837 +AWS,ap-southeast-2,m5a.xlarge,spot,NA,0.106327,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038015 +AWS,ap-southeast-2,m5d.12xlarge,on_demand,NA,3.408,USD,AWS Pricing API,2025-11-30T09:00:17.770926 +AWS,ap-southeast-2,m5d.12xlarge,reserved_1y,all_upfront,2.566105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:48.600322 +AWS,ap-southeast-2,m5d.12xlarge,reserved_1y,no_upfront,2.566105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:30.315305 +AWS,ap-southeast-2,m5d.12xlarge,reserved_1y,partial_upfront,2.566105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:14.453183 +AWS,ap-southeast-2,m5d.12xlarge,reserved_3y,all_upfront,1.710702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:50.332150 +AWS,ap-southeast-2,m5d.12xlarge,reserved_3y,no_upfront,1.710702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:33.570185 +AWS,ap-southeast-2,m5d.12xlarge,reserved_3y,partial_upfront,1.710702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:25.820389 +AWS,ap-southeast-2,m5d.12xlarge,spot,NA,1.397386,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037162 +AWS,ap-southeast-2,m5d.16xlarge,on_demand,NA,4.544,USD,AWS Pricing API,2025-11-30T09:01:03.165700 +AWS,ap-southeast-2,m5d.16xlarge,reserved_1y,all_upfront,3.353082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:33.419820 +AWS,ap-southeast-2,m5d.16xlarge,reserved_1y,no_upfront,3.353082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:15.732282 +AWS,ap-southeast-2,m5d.16xlarge,reserved_1y,partial_upfront,3.353082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:59.106194 +AWS,ap-southeast-2,m5d.16xlarge,reserved_3y,all_upfront,1.117694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:34.310133 +AWS,ap-southeast-2,m5d.16xlarge,reserved_3y,no_upfront,1.117694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:19.513433 +AWS,ap-southeast-2,m5d.16xlarge,reserved_3y,partial_upfront,1.117694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:10.432054 +AWS,ap-southeast-2,m5d.16xlarge,spot,NA,1.804784,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038445 +AWS,ap-southeast-2,m5d.24xlarge,on_demand,NA,6.816,USD,AWS Pricing API,2025-11-30T09:00:46.602865 +AWS,ap-southeast-2,m5d.24xlarge,reserved_1y,all_upfront,3.83,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:17.069614 +AWS,ap-southeast-2,m5d.24xlarge,reserved_1y,no_upfront,3.83,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:59.122469 +AWS,ap-southeast-2,m5d.24xlarge,reserved_1y,partial_upfront,3.83,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:42.784260 +AWS,ap-southeast-2,m5d.24xlarge,reserved_3y,all_upfront,3.83,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:18.269010 +AWS,ap-southeast-2,m5d.24xlarge,reserved_3y,no_upfront,3.83,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:02.719077 +AWS,ap-southeast-2,m5d.24xlarge,reserved_3y,partial_upfront,3.83,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:54.139325 +AWS,ap-southeast-2,m5d.24xlarge,spot,NA,2.388673,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037975 +AWS,ap-southeast-2,m5d.2xlarge,on_demand,NA,0.568,USD,AWS Pricing API,2025-11-30T09:00:30.902474 +AWS,ap-southeast-2,m5d.2xlarge,reserved_1y,all_upfront,0.340434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:01.463039 +AWS,ap-southeast-2,m5d.2xlarge,reserved_1y,no_upfront,0.340434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:43.429700 +AWS,ap-southeast-2,m5d.2xlarge,reserved_1y,partial_upfront,0.340434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:27.269961 +AWS,ap-southeast-2,m5d.2xlarge,reserved_3y,all_upfront,0.226811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:02.948306 +AWS,ap-southeast-2,m5d.2xlarge,reserved_3y,no_upfront,0.226811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:46.759806 +AWS,ap-southeast-2,m5d.2xlarge,reserved_3y,partial_upfront,0.226811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:38.637745 +AWS,ap-southeast-2,m5d.2xlarge,spot,NA,0.265602,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037560 +AWS,ap-southeast-2,m5d.4xlarge,on_demand,NA,1.136,USD,AWS Pricing API,2025-11-30T09:00:42.084791 +AWS,ap-southeast-2,m5d.4xlarge,reserved_1y,all_upfront,0.681753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:12.562179 +AWS,ap-southeast-2,m5d.4xlarge,reserved_1y,no_upfront,0.681753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:54.619556 +AWS,ap-southeast-2,m5d.4xlarge,reserved_1y,partial_upfront,0.681753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:38.334454 +AWS,ap-southeast-2,m5d.4xlarge,reserved_3y,all_upfront,0.454584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:13.885076 +AWS,ap-southeast-2,m5d.4xlarge,reserved_3y,no_upfront,0.454584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:58.098902 +AWS,ap-southeast-2,m5d.4xlarge,reserved_3y,partial_upfront,0.454584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:49.685217 +AWS,ap-southeast-2,m5d.4xlarge,spot,NA,0.465109,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037842 +AWS,ap-southeast-2,m5d.8xlarge,on_demand,NA,2.272,USD,AWS Pricing API,2025-11-30T09:01:25.789121 +AWS,ap-southeast-2,m5d.8xlarge,reserved_1y,all_upfront,1.796,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:55.727055 +AWS,ap-southeast-2,m5d.8xlarge,reserved_1y,no_upfront,1.796,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:38.375688 +AWS,ap-southeast-2,m5d.8xlarge,reserved_1y,partial_upfront,1.796,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:21.438749 +AWS,ap-southeast-2,m5d.8xlarge,reserved_3y,all_upfront,1.796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:56.226218 +AWS,ap-southeast-2,m5d.8xlarge,reserved_3y,no_upfront,1.796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:42.219872 +AWS,ap-southeast-2,m5d.8xlarge,reserved_3y,partial_upfront,1.796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:32.626322 +AWS,ap-southeast-2,m5d.8xlarge,spot,NA,0.974877,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039076 +AWS,ap-southeast-2,m5d.large,on_demand,NA,0.142,USD,AWS Pricing API,2025-11-30T09:00:21.630091 +AWS,ap-southeast-2,m5d.large,reserved_1y,all_upfront,0.08,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:52.374039 +AWS,ap-southeast-2,m5d.large,reserved_1y,no_upfront,0.08,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:34.192856 +AWS,ap-southeast-2,m5d.large,reserved_1y,partial_upfront,0.08,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:18.252134 +AWS,ap-southeast-2,m5d.large,reserved_3y,all_upfront,0.08,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:54.022368 +AWS,ap-southeast-2,m5d.large,reserved_3y,no_upfront,0.08,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:37.425673 +AWS,ap-southeast-2,m5d.large,reserved_3y,partial_upfront,0.08,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:29.578364 +AWS,ap-southeast-2,m5d.large,spot,NA,0.058142,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037274 +AWS,ap-southeast-2,m5d.xlarge,on_demand,NA,0.284,USD,AWS Pricing API,2025-11-30T09:00:37.850760 +AWS,ap-southeast-2,m5d.xlarge,reserved_1y,all_upfront,0.167009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:08.384160 +AWS,ap-southeast-2,m5d.xlarge,reserved_1y,no_upfront,0.167009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:50.401614 +AWS,ap-southeast-2,m5d.xlarge,reserved_1y,partial_upfront,0.167009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:34.155433 +AWS,ap-southeast-2,m5d.xlarge,reserved_3y,all_upfront,0.05567,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:09.794548 +AWS,ap-southeast-2,m5d.xlarge,reserved_3y,no_upfront,0.05567,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:53.826642 +AWS,ap-southeast-2,m5d.xlarge,reserved_3y,partial_upfront,0.05567,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:45.498263 +AWS,ap-southeast-2,m5d.xlarge,spot,NA,0.128162,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037747 +AWS,ap-southeast-2,m5zn.12xlarge,on_demand,NA,4.956,USD,AWS Pricing API,2025-11-30T09:00:53.825708 +AWS,ap-southeast-2,m5zn.12xlarge,reserved_1y,all_upfront,3.480936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:24.219226 +AWS,ap-southeast-2,m5zn.12xlarge,reserved_1y,no_upfront,3.480936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:06.436761 +AWS,ap-southeast-2,m5zn.12xlarge,reserved_1y,partial_upfront,3.480936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:49.928571 +AWS,ap-southeast-2,m5zn.12xlarge,reserved_3y,all_upfront,1.160312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:25.303742 +AWS,ap-southeast-2,m5zn.12xlarge,reserved_3y,no_upfront,1.160312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:10.124469 +AWS,ap-southeast-2,m5zn.12xlarge,reserved_3y,partial_upfront,1.160312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:01.270529 +AWS,ap-southeast-2,m5zn.12xlarge,spot,NA,1.851402,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038229 +AWS,ap-southeast-2,m5zn.2xlarge,on_demand,NA,0.826,USD,AWS Pricing API,2025-11-30T09:00:23.108952 +AWS,ap-southeast-2,m5zn.2xlarge,reserved_1y,all_upfront,1.170091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:53.739890 +AWS,ap-southeast-2,m5zn.2xlarge,reserved_1y,no_upfront,1.170091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:35.589672 +AWS,ap-southeast-2,m5zn.2xlarge,reserved_1y,partial_upfront,1.170091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:19.593470 +AWS,ap-southeast-2,m5zn.2xlarge,reserved_3y,all_upfront,0.39003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:55.350809 +AWS,ap-southeast-2,m5zn.2xlarge,reserved_3y,no_upfront,0.39003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:38.807675 +AWS,ap-southeast-2,m5zn.2xlarge,reserved_3y,partial_upfront,0.39003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:30.917955 +AWS,ap-southeast-2,m5zn.2xlarge,spot,NA,0.382376,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037337 +AWS,ap-southeast-2,m5zn.3xlarge,on_demand,NA,1.239,USD,AWS Pricing API,2025-11-30T09:00:57.373392 +AWS,ap-southeast-2,m5zn.3xlarge,reserved_1y,all_upfront,0.726142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:27.741909 +AWS,ap-southeast-2,m5zn.3xlarge,reserved_1y,no_upfront,0.726142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:09.979449 +AWS,ap-southeast-2,m5zn.3xlarge,reserved_1y,partial_upfront,0.726142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:53.422354 +AWS,ap-southeast-2,m5zn.3xlarge,reserved_3y,all_upfront,0.242047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:28.752848 +AWS,ap-southeast-2,m5zn.3xlarge,reserved_3y,no_upfront,0.242047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:13.722999 +AWS,ap-southeast-2,m5zn.3xlarge,reserved_3y,partial_upfront,0.242047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:04.800897 +AWS,ap-southeast-2,m5zn.3xlarge,spot,NA,0.554997,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038299 +AWS,ap-southeast-2,m5zn.6xlarge,on_demand,NA,2.478,USD,AWS Pricing API,2025-11-30T09:00:16.987079 +AWS,ap-southeast-2,m5zn.6xlarge,reserved_1y,all_upfront,3.510388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:47.931154 +AWS,ap-southeast-2,m5zn.6xlarge,reserved_1y,no_upfront,3.510388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:29.633132 +AWS,ap-southeast-2,m5zn.6xlarge,reserved_1y,partial_upfront,3.510388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:13.783274 +AWS,ap-southeast-2,m5zn.6xlarge,reserved_3y,all_upfront,1.170129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:49.664299 +AWS,ap-southeast-2,m5zn.6xlarge,reserved_3y,no_upfront,1.170129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:32.888932 +AWS,ap-southeast-2,m5zn.6xlarge,reserved_3y,partial_upfront,1.170129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:25.144259 +AWS,ap-southeast-2,m5zn.6xlarge,spot,NA,1.172636,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037187 +AWS,ap-southeast-2,m5zn.large,on_demand,NA,0.2065,USD,AWS Pricing API,2025-11-30T09:00:47.013167 +AWS,ap-southeast-2,m5zn.large,reserved_1y,all_upfront,0.166043,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:17.497172 +AWS,ap-southeast-2,m5zn.large,reserved_1y,no_upfront,0.166043,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:59.535023 +AWS,ap-southeast-2,m5zn.large,reserved_1y,partial_upfront,0.166043,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:43.191719 +AWS,ap-southeast-2,m5zn.large,reserved_3y,all_upfront,0.083014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:18.666901 +AWS,ap-southeast-2,m5zn.large,reserved_3y,no_upfront,0.083014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:03.133660 +AWS,ap-southeast-2,m5zn.large,reserved_3y,partial_upfront,0.083014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:54.543823 +AWS,ap-southeast-2,m5zn.large,spot,NA,0.076004,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037987 +AWS,ap-southeast-2,m5zn.metal,on_demand,NA,4.956,USD,AWS Pricing API,2025-11-30T09:01:24.436567 +AWS,ap-southeast-2,m5zn.metal,reserved_1y,all_upfront,3.7296,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:54.374886 +AWS,ap-southeast-2,m5zn.metal,reserved_1y,no_upfront,3.7296,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:37.013334 +AWS,ap-southeast-2,m5zn.metal,reserved_1y,partial_upfront,3.7296,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:20.091014 +AWS,ap-southeast-2,m5zn.metal,reserved_3y,all_upfront,3.7296,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:54.891263 +AWS,ap-southeast-2,m5zn.metal,reserved_3y,no_upfront,3.7296,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:40.833278 +AWS,ap-southeast-2,m5zn.metal,reserved_3y,partial_upfront,3.7296,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:31.284594 +AWS,ap-southeast-2,m5zn.metal,spot,NA,1.748725,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039035 +AWS,ap-southeast-2,m5zn.xlarge,on_demand,NA,0.413,USD,AWS Pricing API,2025-11-30T09:00:22.198687 +AWS,ap-southeast-2,m5zn.xlarge,reserved_1y,all_upfront,0.295945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:52.913753 +AWS,ap-southeast-2,m5zn.xlarge,reserved_1y,no_upfront,0.295945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:34.775054 +AWS,ap-southeast-2,m5zn.xlarge,reserved_1y,partial_upfront,0.295945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:18.787288 +AWS,ap-southeast-2,m5zn.xlarge,reserved_3y,all_upfront,0.197315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:54.548812 +AWS,ap-southeast-2,m5zn.xlarge,reserved_3y,no_upfront,0.197315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:37.979791 +AWS,ap-southeast-2,m5zn.xlarge,reserved_3y,partial_upfront,0.197315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:30.112324 +AWS,ap-southeast-2,m5zn.xlarge,spot,NA,0.19818,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037320 +AWS,ap-southeast-2,m6g.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:00:32.144770 +AWS,ap-southeast-2,m6g.12xlarge,reserved_1y,all_upfront,1.3176,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:02.687834 +AWS,ap-southeast-2,m6g.12xlarge,reserved_1y,no_upfront,1.3176,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:44.658752 +AWS,ap-southeast-2,m6g.12xlarge,reserved_1y,partial_upfront,1.3176,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:28.485406 +AWS,ap-southeast-2,m6g.12xlarge,reserved_3y,all_upfront,1.3176,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:04.178987 +AWS,ap-southeast-2,m6g.12xlarge,reserved_3y,no_upfront,1.3176,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:47.997841 +AWS,ap-southeast-2,m6g.12xlarge,reserved_3y,partial_upfront,1.3176,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:39.846384 +AWS,ap-southeast-2,m6g.12xlarge,spot,NA,0.754725,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037582 +AWS,ap-southeast-2,m6g.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T09:00:27.476507 +AWS,ap-southeast-2,m6g.16xlarge,reserved_1y,all_upfront,1.806393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:58.065959 +AWS,ap-southeast-2,m6g.16xlarge,reserved_1y,no_upfront,1.806393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:40.000244 +AWS,ap-southeast-2,m6g.16xlarge,reserved_1y,partial_upfront,1.806393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:23.905233 +AWS,ap-southeast-2,m6g.16xlarge,reserved_3y,all_upfront,0.602131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:59.612583 +AWS,ap-southeast-2,m6g.16xlarge,reserved_3y,no_upfront,0.602131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:43.257854 +AWS,ap-southeast-2,m6g.16xlarge,reserved_3y,partial_upfront,0.602131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:35.244715 +AWS,ap-southeast-2,m6g.16xlarge,spot,NA,1.001943,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037421 +AWS,ap-southeast-2,m6g.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T09:00:48.260889 +AWS,ap-southeast-2,m6g.2xlarge,reserved_1y,all_upfront,0.225799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:18.706230 +AWS,ap-southeast-2,m6g.2xlarge,reserved_1y,no_upfront,0.225799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:00.761624 +AWS,ap-southeast-2,m6g.2xlarge,reserved_1y,partial_upfront,0.225799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:44.406377 +AWS,ap-southeast-2,m6g.2xlarge,reserved_3y,all_upfront,0.075266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:19.879518 +AWS,ap-southeast-2,m6g.2xlarge,reserved_3y,no_upfront,0.075266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:04.391205 +AWS,ap-southeast-2,m6g.2xlarge,reserved_3y,partial_upfront,0.075266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:55.761403 +AWS,ap-southeast-2,m6g.2xlarge,spot,NA,0.151009,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038043 +AWS,ap-southeast-2,m6g.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T09:01:14.978900 +AWS,ap-southeast-2,m6g.4xlarge,reserved_1y,all_upfront,0.6152,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:45.039943 +AWS,ap-southeast-2,m6g.4xlarge,reserved_1y,no_upfront,0.6152,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:27.565347 +AWS,ap-southeast-2,m6g.4xlarge,reserved_1y,partial_upfront,0.6152,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:10.756452 +AWS,ap-southeast-2,m6g.4xlarge,reserved_3y,all_upfront,0.6152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:45.736644 +AWS,ap-southeast-2,m6g.4xlarge,reserved_3y,no_upfront,0.6152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:31.309127 +AWS,ap-southeast-2,m6g.4xlarge,reserved_3y,partial_upfront,0.6152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:21.971084 +AWS,ap-southeast-2,m6g.4xlarge,spot,NA,0.264709,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038781 +AWS,ap-southeast-2,m6g.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T09:00:55.739188 +AWS,ap-southeast-2,m6g.8xlarge,reserved_1y,all_upfront,1.148402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:26.119326 +AWS,ap-southeast-2,m6g.8xlarge,reserved_1y,no_upfront,1.148402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:08.337276 +AWS,ap-southeast-2,m6g.8xlarge,reserved_1y,partial_upfront,1.148402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:51.801320 +AWS,ap-southeast-2,m6g.8xlarge,reserved_3y,all_upfront,0.382801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:27.171193 +AWS,ap-southeast-2,m6g.8xlarge,reserved_3y,no_upfront,0.382801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:12.068927 +AWS,ap-southeast-2,m6g.8xlarge,reserved_3y,partial_upfront,0.382801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:03.190453 +AWS,ap-southeast-2,m6g.8xlarge,spot,NA,0.534628,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038287 +AWS,ap-southeast-2,m6g.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T09:00:32.691629 +AWS,ap-southeast-2,m6g.large,reserved_1y,all_upfront,0.071804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:03.238753 +AWS,ap-southeast-2,m6g.large,reserved_1y,no_upfront,0.071804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:45.205263 +AWS,ap-southeast-2,m6g.large,reserved_1y,partial_upfront,0.071804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:29.042542 +AWS,ap-southeast-2,m6g.large,reserved_3y,all_upfront,0.023935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:04.720892 +AWS,ap-southeast-2,m6g.large,reserved_3y,no_upfront,0.023935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:48.544861 +AWS,ap-southeast-2,m6g.large,reserved_3y,partial_upfront,0.023935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:40.386299 +AWS,ap-southeast-2,m6g.large,spot,NA,0.036904,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037595 +AWS,ap-southeast-2,m6g.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T09:00:46.468352 +AWS,ap-southeast-2,m6g.xlarge,reserved_1y,all_upfront,0.298858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:16.933639 +AWS,ap-southeast-2,m6g.xlarge,reserved_1y,no_upfront,0.298858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:58.986907 +AWS,ap-southeast-2,m6g.xlarge,reserved_1y,partial_upfront,0.298858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:42.649176 +AWS,ap-southeast-2,m6g.xlarge,reserved_3y,all_upfront,0.099619,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:18.135649 +AWS,ap-southeast-2,m6g.xlarge,reserved_3y,no_upfront,0.099619,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:02.578189 +AWS,ap-southeast-2,m6g.xlarge,reserved_3y,partial_upfront,0.099619,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:54.005096 +AWS,ap-southeast-2,m6g.xlarge,spot,NA,0.065003,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037963 +AWS,ap-southeast-2,m6gd.12xlarge,on_demand,NA,2.736,USD,AWS Pricing API,2025-11-30T09:01:04.542924 +AWS,ap-southeast-2,m6gd.12xlarge,reserved_1y,all_upfront,2.142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:34.779131 +AWS,ap-southeast-2,m6gd.12xlarge,reserved_1y,no_upfront,2.142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:17.114539 +AWS,ap-southeast-2,m6gd.12xlarge,reserved_1y,partial_upfront,2.142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:00.467881 +AWS,ap-southeast-2,m6gd.12xlarge,reserved_3y,all_upfront,2.142,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:35.644819 +AWS,ap-southeast-2,m6gd.12xlarge,reserved_3y,no_upfront,2.142,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:20.887373 +AWS,ap-southeast-2,m6gd.12xlarge,reserved_3y,partial_upfront,2.142,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:11.769914 +AWS,ap-southeast-2,m6gd.12xlarge,spot,NA,0.889022,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038506 +AWS,ap-southeast-2,m6gd.16xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T09:01:06.870518 +AWS,ap-southeast-2,m6gd.16xlarge,reserved_1y,all_upfront,5.550228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:37.089354 +AWS,ap-southeast-2,m6gd.16xlarge,reserved_1y,no_upfront,5.550228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:19.449041 +AWS,ap-southeast-2,m6gd.16xlarge,reserved_1y,partial_upfront,5.550228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:02.780934 +AWS,ap-southeast-2,m6gd.16xlarge,reserved_3y,all_upfront,1.850076,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:37.912408 +AWS,ap-southeast-2,m6gd.16xlarge,reserved_3y,no_upfront,1.850076,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:23.225974 +AWS,ap-southeast-2,m6gd.16xlarge,reserved_3y,partial_upfront,1.850076,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:14.052841 +AWS,ap-southeast-2,m6gd.16xlarge,spot,NA,1.175895,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038585 +AWS,ap-southeast-2,m6gd.2xlarge,on_demand,NA,0.456,USD,AWS Pricing API,2025-11-30T09:00:34.873447 +AWS,ap-southeast-2,m6gd.2xlarge,reserved_1y,all_upfront,0.2549,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:05.405038 +AWS,ap-southeast-2,m6gd.2xlarge,reserved_1y,no_upfront,0.2549,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:47.392338 +AWS,ap-southeast-2,m6gd.2xlarge,reserved_1y,partial_upfront,0.2549,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:31.196395 +AWS,ap-southeast-2,m6gd.2xlarge,reserved_3y,all_upfront,0.2549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:06.868567 +AWS,ap-southeast-2,m6gd.2xlarge,reserved_3y,no_upfront,0.2549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:50.778972 +AWS,ap-southeast-2,m6gd.2xlarge,reserved_3y,partial_upfront,0.2549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:42.540832 +AWS,ap-southeast-2,m6gd.2xlarge,spot,NA,0.171729,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037667 +AWS,ap-southeast-2,m6gd.4xlarge,on_demand,NA,0.912,USD,AWS Pricing API,2025-11-30T09:01:01.627046 +AWS,ap-southeast-2,m6gd.4xlarge,reserved_1y,all_upfront,0.943991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:31.937782 +AWS,ap-southeast-2,m6gd.4xlarge,reserved_1y,no_upfront,0.943991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:14.239648 +AWS,ap-southeast-2,m6gd.4xlarge,reserved_1y,partial_upfront,0.943991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:57.605006 +AWS,ap-southeast-2,m6gd.4xlarge,reserved_3y,all_upfront,0.471997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:32.850011 +AWS,ap-southeast-2,m6gd.4xlarge,reserved_3y,no_upfront,0.471997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:18.006192 +AWS,ap-southeast-2,m6gd.4xlarge,reserved_3y,partial_upfront,0.471997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:08.956650 +AWS,ap-southeast-2,m6gd.4xlarge,spot,NA,0.326443,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038405 +AWS,ap-southeast-2,m6gd.8xlarge,on_demand,NA,1.824,USD,AWS Pricing API,2025-11-30T09:00:23.520416 +AWS,ap-southeast-2,m6gd.8xlarge,reserved_1y,all_upfront,0.7775,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:54.141241 +AWS,ap-southeast-2,m6gd.8xlarge,reserved_1y,no_upfront,0.7775,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:35.998590 +AWS,ap-southeast-2,m6gd.8xlarge,reserved_1y,partial_upfront,0.7775,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:19.995801 +AWS,ap-southeast-2,m6gd.8xlarge,reserved_3y,all_upfront,0.7775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:55.758815 +AWS,ap-southeast-2,m6gd.8xlarge,reserved_3y,no_upfront,0.7775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:39.223509 +AWS,ap-southeast-2,m6gd.8xlarge,reserved_3y,partial_upfront,0.7775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:31.324792 +AWS,ap-southeast-2,m6gd.8xlarge,spot,NA,0.631934,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037312 +AWS,ap-southeast-2,m6gd.large,on_demand,NA,0.114,USD,AWS Pricing API,2025-11-30T09:00:45.084736 +AWS,ap-southeast-2,m6gd.large,reserved_1y,all_upfront,0.0637,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:15.577218 +AWS,ap-southeast-2,m6gd.large,reserved_1y,no_upfront,0.0637,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:57.612663 +AWS,ap-southeast-2,m6gd.large,reserved_1y,partial_upfront,0.0637,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:41.296169 +AWS,ap-southeast-2,m6gd.large,reserved_3y,all_upfront,0.0637,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:16.792650 +AWS,ap-southeast-2,m6gd.large,reserved_3y,no_upfront,0.0637,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:01.130149 +AWS,ap-southeast-2,m6gd.large,reserved_3y,partial_upfront,0.0637,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:52.637209 +AWS,ap-southeast-2,m6gd.large,spot,NA,0.040163,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037928 +AWS,ap-southeast-2,m6gd.xlarge,on_demand,NA,0.228,USD,AWS Pricing API,2025-11-30T09:00:38.255780 +AWS,ap-southeast-2,m6gd.xlarge,reserved_1y,all_upfront,0.166553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:08.786814 +AWS,ap-southeast-2,m6gd.xlarge,reserved_1y,no_upfront,0.166553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:50.811736 +AWS,ap-southeast-2,m6gd.xlarge,reserved_1y,partial_upfront,0.166553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:34.555138 +AWS,ap-southeast-2,m6gd.xlarge,reserved_3y,all_upfront,0.055518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:10.190253 +AWS,ap-southeast-2,m6gd.xlarge,reserved_3y,no_upfront,0.055518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:54.238360 +AWS,ap-southeast-2,m6gd.xlarge,reserved_3y,partial_upfront,0.055518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:45.917037 +AWS,ap-southeast-2,m6gd.xlarge,spot,NA,0.079195,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037751 +AWS,ap-southeast-2,m6i.12xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T09:00:24.324930 +AWS,ap-southeast-2,m6i.12xlarge,reserved_1y,all_upfront,2.419184,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:54.957369 +AWS,ap-southeast-2,m6i.12xlarge,reserved_1y,no_upfront,2.419184,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:36.834292 +AWS,ap-southeast-2,m6i.12xlarge,reserved_1y,partial_upfront,2.419184,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:20.800697 +AWS,ap-southeast-2,m6i.12xlarge,reserved_3y,all_upfront,1.209595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:56.561391 +AWS,ap-southeast-2,m6i.12xlarge,reserved_3y,no_upfront,1.209595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:40.053222 +AWS,ap-southeast-2,m6i.12xlarge,reserved_3y,partial_upfront,1.209595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:32.120949 +AWS,ap-southeast-2,m6i.12xlarge,spot,NA,1.102243,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037366 +AWS,ap-southeast-2,m6i.16xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T09:00:38.937986 +AWS,ap-southeast-2,m6i.16xlarge,reserved_1y,all_upfront,3.225578,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:09.461998 +AWS,ap-southeast-2,m6i.16xlarge,reserved_1y,no_upfront,3.225578,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:51.491416 +AWS,ap-southeast-2,m6i.16xlarge,reserved_1y,partial_upfront,3.225578,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:35.234392 +AWS,ap-southeast-2,m6i.16xlarge,reserved_3y,all_upfront,1.612793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:10.848936 +AWS,ap-southeast-2,m6i.16xlarge,reserved_3y,no_upfront,1.612793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:54.935692 +AWS,ap-southeast-2,m6i.16xlarge,reserved_3y,partial_upfront,1.612793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:46.592193 +AWS,ap-southeast-2,m6i.16xlarge,spot,NA,1.440867,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037779 +AWS,ap-southeast-2,m6i.24xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T09:00:40.446288 +AWS,ap-southeast-2,m6i.24xlarge,reserved_1y,all_upfront,3.556279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:10.943943 +AWS,ap-southeast-2,m6i.24xlarge,reserved_1y,no_upfront,3.556279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:52.990004 +AWS,ap-southeast-2,m6i.24xlarge,reserved_1y,partial_upfront,3.556279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:36.719254 +AWS,ap-southeast-2,m6i.24xlarge,reserved_3y,all_upfront,1.185426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:12.297451 +AWS,ap-southeast-2,m6i.24xlarge,reserved_3y,no_upfront,1.185426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:56.457789 +AWS,ap-southeast-2,m6i.24xlarge,reserved_3y,partial_upfront,1.185426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:48.066200 +AWS,ap-southeast-2,m6i.24xlarge,spot,NA,2.065252,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037818 +AWS,ap-southeast-2,m6i.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T09:00:59.406041 +AWS,ap-southeast-2,m6i.2xlarge,reserved_1y,all_upfront,0.296347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:29.769464 +AWS,ap-southeast-2,m6i.2xlarge,reserved_1y,no_upfront,0.296347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:12.053155 +AWS,ap-southeast-2,m6i.2xlarge,reserved_1y,partial_upfront,0.296347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:55.445793 +AWS,ap-southeast-2,m6i.2xlarge,reserved_3y,all_upfront,0.098782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:30.734681 +AWS,ap-southeast-2,m6i.2xlarge,reserved_3y,no_upfront,0.098782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:15.785437 +AWS,ap-southeast-2,m6i.2xlarge,reserved_3y,partial_upfront,0.098782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:06.799540 +AWS,ap-southeast-2,m6i.2xlarge,spot,NA,0.181025,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038373 +AWS,ap-southeast-2,m6i.32xlarge,on_demand,NA,7.68,USD,AWS Pricing API,2025-11-30T09:01:16.219969 +AWS,ap-southeast-2,m6i.32xlarge,reserved_1y,all_upfront,6.451156,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:46.264478 +AWS,ap-southeast-2,m6i.32xlarge,reserved_1y,no_upfront,6.451156,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:28.791880 +AWS,ap-southeast-2,m6i.32xlarge,reserved_1y,partial_upfront,6.451156,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:11.988113 +AWS,ap-southeast-2,m6i.32xlarge,reserved_3y,all_upfront,3.225585,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:46.934557 +AWS,ap-southeast-2,m6i.32xlarge,reserved_3y,no_upfront,3.225585,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:32.554446 +AWS,ap-southeast-2,m6i.32xlarge,reserved_3y,partial_upfront,3.225585,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:23.173710 +AWS,ap-southeast-2,m6i.32xlarge,spot,NA,2.681148,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038829 +AWS,ap-southeast-2,m6i.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T09:00:26.502564 +AWS,ap-southeast-2,m6i.4xlarge,reserved_1y,all_upfront,0.604797,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:57.119606 +AWS,ap-southeast-2,m6i.4xlarge,reserved_1y,no_upfront,0.604797,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:39.038264 +AWS,ap-southeast-2,m6i.4xlarge,reserved_1y,partial_upfront,0.604797,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:22.959514 +AWS,ap-southeast-2,m6i.4xlarge,reserved_3y,all_upfront,0.403199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:58.688286 +AWS,ap-southeast-2,m6i.4xlarge,reserved_3y,no_upfront,0.403199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:42.275467 +AWS,ap-southeast-2,m6i.4xlarge,reserved_3y,partial_upfront,0.403199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:34.293005 +AWS,ap-southeast-2,m6i.4xlarge,spot,NA,0.378053,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037430 +AWS,ap-southeast-2,m6i.8xlarge,on_demand,NA,1.92,USD,AWS Pricing API,2025-11-30T09:00:31.317930 +AWS,ap-southeast-2,m6i.8xlarge,reserved_1y,all_upfront,1.209595,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:01.875413 +AWS,ap-southeast-2,m6i.8xlarge,reserved_1y,no_upfront,1.209595,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:43.839156 +AWS,ap-southeast-2,m6i.8xlarge,reserved_1y,partial_upfront,1.209595,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:27.670125 +AWS,ap-southeast-2,m6i.8xlarge,reserved_3y,all_upfront,0.806398,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:03.367533 +AWS,ap-southeast-2,m6i.8xlarge,reserved_3y,no_upfront,0.806398,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:47.172007 +AWS,ap-southeast-2,m6i.8xlarge,reserved_3y,partial_upfront,0.806398,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:39.042342 +AWS,ap-southeast-2,m6i.8xlarge,spot,NA,0.714565,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037548 +AWS,ap-southeast-2,m6i.large,on_demand,NA,0.12,USD,AWS Pricing API,2025-11-30T09:00:41.948600 +AWS,ap-southeast-2,m6i.large,reserved_1y,all_upfront,0.100771,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:12.427810 +AWS,ap-southeast-2,m6i.large,reserved_1y,no_upfront,0.100771,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:54.483467 +AWS,ap-southeast-2,m6i.large,reserved_1y,partial_upfront,0.100771,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:38.200703 +AWS,ap-southeast-2,m6i.large,reserved_3y,all_upfront,0.05039,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:13.751391 +AWS,ap-southeast-2,m6i.large,reserved_3y,no_upfront,0.05039,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:57.962602 +AWS,ap-southeast-2,m6i.large,reserved_3y,partial_upfront,0.05039,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:49.548326 +AWS,ap-southeast-2,m6i.large,spot,NA,0.046988,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037854 +AWS,ap-southeast-2,m6i.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T09:00:17.636392 +AWS,ap-southeast-2,m6i.xlarge,reserved_1y,all_upfront,0.151171,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:48.466779 +AWS,ap-southeast-2,m6i.xlarge,reserved_1y,no_upfront,0.151171,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:30.177115 +AWS,ap-southeast-2,m6i.xlarge,reserved_1y,partial_upfront,0.151171,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:14.318431 +AWS,ap-southeast-2,m6i.xlarge,reserved_3y,all_upfront,0.10079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:50.197756 +AWS,ap-southeast-2,m6i.xlarge,reserved_3y,no_upfront,0.10079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:33.432186 +AWS,ap-southeast-2,m6i.xlarge,reserved_3y,partial_upfront,0.10079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:25.682473 +AWS,ap-southeast-2,m6i.xlarge,spot,NA,0.099319,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037183 +AWS,ap-southeast-2,m6id.12xlarge,on_demand,NA,3.5784,USD,AWS Pricing API,2025-11-30T09:00:55.874454 +AWS,ap-southeast-2,m6id.12xlarge,reserved_1y,all_upfront,2.25439,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:26.255516 +AWS,ap-southeast-2,m6id.12xlarge,reserved_1y,no_upfront,2.25439,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:08.471272 +AWS,ap-southeast-2,m6id.12xlarge,reserved_1y,partial_upfront,2.25439,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:51.936298 +AWS,ap-southeast-2,m6id.12xlarge,reserved_3y,all_upfront,2.25439,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:27.303123 +AWS,ap-southeast-2,m6id.12xlarge,reserved_3y,no_upfront,2.25439,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:12.208511 +AWS,ap-southeast-2,m6id.12xlarge,reserved_3y,partial_upfront,2.25439,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:03.329354 +AWS,ap-southeast-2,m6id.12xlarge,spot,NA,1.267981,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038283 +AWS,ap-southeast-2,m6id.16xlarge,on_demand,NA,4.7712,USD,AWS Pricing API,2025-11-30T09:00:22.971236 +AWS,ap-southeast-2,m6id.16xlarge,reserved_1y,all_upfront,3.77215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:53.606606 +AWS,ap-southeast-2,m6id.16xlarge,reserved_1y,no_upfront,3.77215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:35.453135 +AWS,ap-southeast-2,m6id.16xlarge,reserved_1y,partial_upfront,3.77215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:19.459692 +AWS,ap-southeast-2,m6id.16xlarge,reserved_3y,all_upfront,3.77215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:55.218122 +AWS,ap-southeast-2,m6id.16xlarge,reserved_3y,no_upfront,3.77215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:38.669925 +AWS,ap-southeast-2,m6id.16xlarge,reserved_3y,partial_upfront,3.77215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:30.783205 +AWS,ap-southeast-2,m6id.16xlarge,spot,NA,1.767827,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037303 +AWS,ap-southeast-2,m6id.24xlarge,on_demand,NA,7.1568,USD,AWS Pricing API,2025-11-30T09:00:27.203976 +AWS,ap-southeast-2,m6id.24xlarge,reserved_1y,all_upfront,4.208219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:57.796468 +AWS,ap-southeast-2,m6id.24xlarge,reserved_1y,no_upfront,4.208219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:39.717888 +AWS,ap-southeast-2,m6id.24xlarge,reserved_1y,partial_upfront,4.208219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:23.632636 +AWS,ap-southeast-2,m6id.24xlarge,reserved_3y,all_upfront,1.40274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:59.348213 +AWS,ap-southeast-2,m6id.24xlarge,reserved_3y,no_upfront,1.40274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:42.974228 +AWS,ap-southeast-2,m6id.24xlarge,reserved_3y,partial_upfront,1.40274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:34.967021 +AWS,ap-southeast-2,m6id.24xlarge,spot,NA,2.406506,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037447 +AWS,ap-southeast-2,m6id.2xlarge,on_demand,NA,0.5964,USD,AWS Pricing API,2025-11-30T09:00:19.430026 +AWS,ap-southeast-2,m6id.2xlarge,reserved_1y,all_upfront,0.47152,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:50.213910 +AWS,ap-southeast-2,m6id.2xlarge,reserved_1y,no_upfront,0.47152,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:31.978271 +AWS,ap-southeast-2,m6id.2xlarge,reserved_1y,partial_upfront,0.47152,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:16.098198 +AWS,ap-southeast-2,m6id.2xlarge,reserved_3y,all_upfront,0.47152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:51.909461 +AWS,ap-southeast-2,m6id.2xlarge,reserved_3y,no_upfront,0.47152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:35.217208 +AWS,ap-southeast-2,m6id.2xlarge,reserved_3y,partial_upfront,0.47152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:27.428718 +AWS,ap-southeast-2,m6id.2xlarge,spot,NA,0.243753,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037254 +AWS,ap-southeast-2,m6id.32xlarge,on_demand,NA,9.5424,USD,AWS Pricing API,2025-11-30T09:00:59.675712 +AWS,ap-southeast-2,m6id.32xlarge,reserved_1y,all_upfront,5.36231,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:30.040346 +AWS,ap-southeast-2,m6id.32xlarge,reserved_1y,no_upfront,5.36231,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:12.323606 +AWS,ap-southeast-2,m6id.32xlarge,reserved_1y,partial_upfront,5.36231,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:55.715991 +AWS,ap-southeast-2,m6id.32xlarge,reserved_3y,all_upfront,5.36231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:30.998421 +AWS,ap-southeast-2,m6id.32xlarge,reserved_3y,no_upfront,5.36231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:16.066392 +AWS,ap-southeast-2,m6id.32xlarge,reserved_3y,partial_upfront,5.36231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:07.068747 +AWS,ap-southeast-2,m6id.32xlarge,spot,NA,3.233523,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038397 +AWS,ap-southeast-2,m6id.4xlarge,on_demand,NA,1.1928,USD,AWS Pricing API,2025-11-30T09:01:22.392919 +AWS,ap-southeast-2,m6id.4xlarge,reserved_1y,all_upfront,0.715717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:52.332094 +AWS,ap-southeast-2,m6id.4xlarge,reserved_1y,no_upfront,0.715717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:34.971345 +AWS,ap-southeast-2,m6id.4xlarge,reserved_1y,partial_upfront,0.715717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:18.050321 +AWS,ap-southeast-2,m6id.4xlarge,reserved_3y,all_upfront,0.477132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:52.905961 +AWS,ap-southeast-2,m6id.4xlarge,reserved_3y,no_upfront,0.477132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:38.757981 +AWS,ap-southeast-2,m6id.4xlarge,reserved_3y,partial_upfront,0.477132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:29.280810 +AWS,ap-southeast-2,m6id.4xlarge,spot,NA,0.43472,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038953 +AWS,ap-southeast-2,m6id.8xlarge,on_demand,NA,2.3856,USD,AWS Pricing API,2025-11-30T09:00:54.497595 +AWS,ap-southeast-2,m6id.8xlarge,reserved_1y,all_upfront,1.796304,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:24.885743 +AWS,ap-southeast-2,m6id.8xlarge,reserved_1y,no_upfront,1.796304,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:07.113219 +AWS,ap-southeast-2,m6id.8xlarge,reserved_1y,partial_upfront,1.796304,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:50.596771 +AWS,ap-southeast-2,m6id.8xlarge,reserved_3y,all_upfront,1.197521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:25.960497 +AWS,ap-southeast-2,m6id.8xlarge,reserved_3y,no_upfront,1.197521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:10.810700 +AWS,ap-southeast-2,m6id.8xlarge,reserved_3y,partial_upfront,1.197521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:01.953481 +AWS,ap-southeast-2,m6id.8xlarge,spot,NA,0.837369,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038251 +AWS,ap-southeast-2,m6id.large,on_demand,NA,0.1491,USD,AWS Pricing API,2025-11-30T09:01:23.478852 +AWS,ap-southeast-2,m6id.large,reserved_1y,all_upfront,0.112294,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:53.428116 +AWS,ap-southeast-2,m6id.large,reserved_1y,no_upfront,0.112294,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:36.059204 +AWS,ap-southeast-2,m6id.large,reserved_1y,partial_upfront,0.112294,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:19.136600 +AWS,ap-southeast-2,m6id.large,reserved_3y,all_upfront,0.074851,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:53.971245 +AWS,ap-southeast-2,m6id.large,reserved_3y,no_upfront,0.074851,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:39.867858 +AWS,ap-southeast-2,m6id.large,reserved_3y,partial_upfront,0.074851,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:30.347362 +AWS,ap-southeast-2,m6id.large,spot,NA,0.052121,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038973 +AWS,ap-southeast-2,m6id.xlarge,on_demand,NA,0.2982,USD,AWS Pricing API,2025-11-30T09:00:26.232439 +AWS,ap-southeast-2,m6id.xlarge,reserved_1y,all_upfront,0.23576,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:56.847276 +AWS,ap-southeast-2,m6id.xlarge,reserved_1y,no_upfront,0.23576,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:38.765197 +AWS,ap-southeast-2,m6id.xlarge,reserved_1y,partial_upfront,0.23576,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:22.686972 +AWS,ap-southeast-2,m6id.xlarge,reserved_3y,all_upfront,0.23576,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:58.415223 +AWS,ap-southeast-2,m6id.xlarge,reserved_3y,no_upfront,0.23576,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:42.000280 +AWS,ap-southeast-2,m6id.xlarge,reserved_3y,partial_upfront,0.23576,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:34.025622 +AWS,ap-southeast-2,m6id.xlarge,spot,NA,0.132563,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037409 +AWS,ap-southeast-2,m6idn.12xlarge,on_demand,NA,4.82976,USD,AWS Pricing API,2025-11-30T09:00:46.196310 +AWS,ap-southeast-2,m6idn.12xlarge,reserved_1y,all_upfront,3.77808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:16.666027 +AWS,ap-southeast-2,m6idn.12xlarge,reserved_1y,no_upfront,3.77808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:58.716929 +AWS,ap-southeast-2,m6idn.12xlarge,reserved_1y,partial_upfront,3.77808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:42.372736 +AWS,ap-southeast-2,m6idn.12xlarge,reserved_3y,all_upfront,3.77808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:17.857023 +AWS,ap-southeast-2,m6idn.12xlarge,reserved_3y,no_upfront,3.77808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:02.296932 +AWS,ap-southeast-2,m6idn.12xlarge,reserved_3y,partial_upfront,3.77808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:53.722455 +AWS,ap-southeast-2,m6idn.12xlarge,spot,NA,1.695455,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037971 +AWS,ap-southeast-2,m6idn.16xlarge,on_demand,NA,6.43968,USD,AWS Pricing API,2025-11-30T09:01:09.528535 +AWS,ap-southeast-2,m6idn.16xlarge,reserved_1y,all_upfront,5.151753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:39.660518 +AWS,ap-southeast-2,m6idn.16xlarge,reserved_1y,no_upfront,5.151753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:22.064051 +AWS,ap-southeast-2,m6idn.16xlarge,reserved_1y,partial_upfront,5.151753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:05.335280 +AWS,ap-southeast-2,m6idn.16xlarge,reserved_3y,all_upfront,2.575878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:40.438153 +AWS,ap-southeast-2,m6idn.16xlarge,reserved_3y,no_upfront,2.575878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:25.837494 +AWS,ap-southeast-2,m6idn.16xlarge,reserved_3y,partial_upfront,2.575878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:16.603743 +AWS,ap-southeast-2,m6idn.16xlarge,spot,NA,2.378929,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038653 +AWS,ap-southeast-2,m6idn.24xlarge,on_demand,NA,9.65952,USD,AWS Pricing API,2025-11-30T09:00:52.069993 +AWS,ap-southeast-2,m6idn.24xlarge,reserved_1y,all_upfront,7.727562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:22.462729 +AWS,ap-southeast-2,m6idn.24xlarge,reserved_1y,no_upfront,7.727562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:04.645419 +AWS,ap-southeast-2,m6idn.24xlarge,reserved_1y,partial_upfront,7.727562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:48.182008 +AWS,ap-southeast-2,m6idn.24xlarge,reserved_3y,all_upfront,3.863787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:23.583697 +AWS,ap-southeast-2,m6idn.24xlarge,reserved_3y,no_upfront,3.863787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:08.238040 +AWS,ap-southeast-2,m6idn.24xlarge,reserved_3y,partial_upfront,3.863787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:59.534496 +AWS,ap-southeast-2,m6idn.24xlarge,spot,NA,3.456617,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038140 +AWS,ap-southeast-2,m6idn.2xlarge,on_demand,NA,0.80496,USD,AWS Pricing API,2025-11-30T09:00:32.416913 +AWS,ap-southeast-2,m6idn.2xlarge,reserved_1y,all_upfront,0.50712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:02.965507 +AWS,ap-southeast-2,m6idn.2xlarge,reserved_1y,no_upfront,0.50712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:44.929372 +AWS,ap-southeast-2,m6idn.2xlarge,reserved_1y,partial_upfront,0.50712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:28.766461 +AWS,ap-southeast-2,m6idn.2xlarge,reserved_3y,all_upfront,0.50712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:04.449829 +AWS,ap-southeast-2,m6idn.2xlarge,reserved_3y,no_upfront,0.50712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:48.272350 +AWS,ap-southeast-2,m6idn.2xlarge,reserved_3y,partial_upfront,0.50712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:40.113539 +AWS,ap-southeast-2,m6idn.2xlarge,spot,NA,0.308772,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037573 +AWS,ap-southeast-2,m6idn.32xlarge,on_demand,NA,12.87936,USD,AWS Pricing API,2025-11-30T09:00:52.879049 +AWS,ap-southeast-2,m6idn.32xlarge,reserved_1y,all_upfront,9.595163,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:23.270619 +AWS,ap-southeast-2,m6idn.32xlarge,reserved_1y,no_upfront,9.595163,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:05.478644 +AWS,ap-southeast-2,m6idn.32xlarge,reserved_1y,partial_upfront,9.595163,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:48.989418 +AWS,ap-southeast-2,m6idn.32xlarge,reserved_3y,all_upfront,6.396761,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:24.373143 +AWS,ap-southeast-2,m6idn.32xlarge,reserved_3y,no_upfront,6.396761,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:09.067145 +AWS,ap-southeast-2,m6idn.32xlarge,reserved_3y,partial_upfront,6.396761,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:00.338385 +AWS,ap-southeast-2,m6idn.32xlarge,spot,NA,4.048655,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038176 +AWS,ap-southeast-2,m6idn.4xlarge,on_demand,NA,1.60992,USD,AWS Pricing API,2025-11-30T09:00:49.067751 +AWS,ap-southeast-2,m6idn.4xlarge,reserved_1y,all_upfront,1.01425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:19.507093 +AWS,ap-southeast-2,m6idn.4xlarge,reserved_1y,no_upfront,1.01425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:01.590422 +AWS,ap-southeast-2,m6idn.4xlarge,reserved_1y,partial_upfront,1.01425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:45.215755 +AWS,ap-southeast-2,m6idn.4xlarge,reserved_3y,all_upfront,1.01425,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:20.677306 +AWS,ap-southeast-2,m6idn.4xlarge,reserved_3y,no_upfront,1.01425,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:05.212609 +AWS,ap-southeast-2,m6idn.4xlarge,reserved_3y,partial_upfront,1.01425,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:56.569978 +AWS,ap-southeast-2,m6idn.4xlarge,spot,NA,0.657032,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038035 +AWS,ap-southeast-2,m6idn.8xlarge,on_demand,NA,3.21984,USD,AWS Pricing API,2025-11-30T09:00:16.850710 +AWS,ap-southeast-2,m6idn.8xlarge,reserved_1y,all_upfront,3.631963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:47.795777 +AWS,ap-southeast-2,m6idn.8xlarge,reserved_1y,no_upfront,3.631963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:29.497530 +AWS,ap-southeast-2,m6idn.8xlarge,reserved_1y,partial_upfront,3.631963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:13.637462 +AWS,ap-southeast-2,m6idn.8xlarge,reserved_3y,all_upfront,1.210654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:49.529398 +AWS,ap-southeast-2,m6idn.8xlarge,reserved_3y,no_upfront,1.210654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:32.751432 +AWS,ap-southeast-2,m6idn.8xlarge,reserved_3y,partial_upfront,1.210654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:25.009385 +AWS,ap-southeast-2,m6idn.8xlarge,spot,NA,1.107249,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037175 +AWS,ap-southeast-2,m6idn.large,on_demand,NA,0.20124,USD,AWS Pricing API,2025-11-30T09:01:03.441523 +AWS,ap-southeast-2,m6idn.large,reserved_1y,all_upfront,0.15742,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:33.691878 +AWS,ap-southeast-2,m6idn.large,reserved_1y,no_upfront,0.15742,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:16.012111 +AWS,ap-southeast-2,m6idn.large,reserved_1y,partial_upfront,0.15742,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:59.377004 +AWS,ap-southeast-2,m6idn.large,reserved_3y,all_upfront,0.15742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:34.572250 +AWS,ap-southeast-2,m6idn.large,reserved_3y,no_upfront,0.15742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:19.788279 +AWS,ap-southeast-2,m6idn.large,reserved_3y,partial_upfront,0.15742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:10.699710 +AWS,ap-southeast-2,m6idn.large,spot,NA,0.070095,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038497 +AWS,ap-southeast-2,m6idn.xlarge,on_demand,NA,0.40248,USD,AWS Pricing API,2025-11-30T09:00:46.333767 +AWS,ap-southeast-2,m6idn.xlarge,reserved_1y,all_upfront,0.25356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:16.798962 +AWS,ap-southeast-2,m6idn.xlarge,reserved_1y,no_upfront,0.25356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:58.851913 +AWS,ap-southeast-2,m6idn.xlarge,reserved_1y,partial_upfront,0.25356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:42.515562 +AWS,ap-southeast-2,m6idn.xlarge,reserved_3y,all_upfront,0.25356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:18.002445 +AWS,ap-southeast-2,m6idn.xlarge,reserved_3y,no_upfront,0.25356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:02.439048 +AWS,ap-southeast-2,m6idn.xlarge,reserved_3y,partial_upfront,0.25356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:53.869938 +AWS,ap-southeast-2,m6idn.xlarge,spot,NA,0.179026,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037967 +AWS,ap-southeast-2,m6in.12xlarge,on_demand,NA,4.212,USD,AWS Pricing API,2025-11-30T09:00:13.981366 +AWS,ap-southeast-2,m6in.12xlarge,reserved_1y,all_upfront,3.146354,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:44.944159 +AWS,ap-southeast-2,m6in.12xlarge,reserved_1y,no_upfront,3.146354,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:26.623071 +AWS,ap-southeast-2,m6in.12xlarge,reserved_1y,partial_upfront,3.146354,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:10.817900 +AWS,ap-southeast-2,m6in.12xlarge,reserved_3y,all_upfront,2.097571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:46.759824 +AWS,ap-southeast-2,m6in.12xlarge,reserved_3y,no_upfront,2.097571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:29.868232 +AWS,ap-southeast-2,m6in.12xlarge,reserved_3y,partial_upfront,2.097571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:22.193266 +AWS,ap-southeast-2,m6in.12xlarge,spot,NA,1.587552,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037088 +AWS,ap-southeast-2,m6in.16xlarge,on_demand,NA,5.616,USD,AWS Pricing API,2025-11-30T09:00:24.188113 +AWS,ap-southeast-2,m6in.16xlarge,reserved_1y,all_upfront,3.53808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:54.821498 +AWS,ap-southeast-2,m6in.16xlarge,reserved_1y,no_upfront,3.53808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:36.696894 +AWS,ap-southeast-2,m6in.16xlarge,reserved_1y,partial_upfront,3.53808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:20.666408 +AWS,ap-southeast-2,m6in.16xlarge,reserved_3y,all_upfront,3.53808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:56.420139 +AWS,ap-southeast-2,m6in.16xlarge,reserved_3y,no_upfront,3.53808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:39.914779 +AWS,ap-southeast-2,m6in.16xlarge,reserved_3y,partial_upfront,3.53808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:31.987998 +AWS,ap-southeast-2,m6in.16xlarge,spot,NA,2.13874,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037356 +AWS,ap-southeast-2,m6in.24xlarge,on_demand,NA,8.424,USD,AWS Pricing API,2025-11-30T09:01:05.907811 +AWS,ap-southeast-2,m6in.24xlarge,reserved_1y,all_upfront,5.30712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:36.142570 +AWS,ap-southeast-2,m6in.24xlarge,reserved_1y,no_upfront,5.30712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:18.488418 +AWS,ap-southeast-2,m6in.24xlarge,reserved_1y,partial_upfront,5.30712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:01.831854 +AWS,ap-southeast-2,m6in.24xlarge,reserved_3y,all_upfront,5.30712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:36.968525 +AWS,ap-southeast-2,m6in.24xlarge,reserved_3y,no_upfront,5.30712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:22.256448 +AWS,ap-southeast-2,m6in.24xlarge,reserved_3y,partial_upfront,5.30712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:13.105354 +AWS,ap-southeast-2,m6in.24xlarge,spot,NA,3.030156,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038538 +AWS,ap-southeast-2,m6in.2xlarge,on_demand,NA,0.702,USD,AWS Pricing API,2025-11-30T09:00:31.038669 +AWS,ap-southeast-2,m6in.2xlarge,reserved_1y,all_upfront,0.941096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:01.599153 +AWS,ap-southeast-2,m6in.2xlarge,reserved_1y,no_upfront,0.941096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:43.565055 +AWS,ap-southeast-2,m6in.2xlarge,reserved_1y,partial_upfront,0.941096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:27.404980 +AWS,ap-southeast-2,m6in.2xlarge,reserved_3y,all_upfront,0.313699,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:03.084241 +AWS,ap-southeast-2,m6in.2xlarge,reserved_3y,no_upfront,0.313699,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:46.896863 +AWS,ap-southeast-2,m6in.2xlarge,reserved_3y,partial_upfront,0.313699,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:38.770442 +AWS,ap-southeast-2,m6in.2xlarge,spot,NA,0.266682,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037539 +AWS,ap-southeast-2,m6in.32xlarge,on_demand,NA,11.232,USD,AWS Pricing API,2025-11-30T09:00:19.567378 +AWS,ap-southeast-2,m6in.32xlarge,reserved_1y,all_upfront,6.604452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:50.346962 +AWS,ap-southeast-2,m6in.32xlarge,reserved_1y,no_upfront,6.604452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:32.114675 +AWS,ap-southeast-2,m6in.32xlarge,reserved_1y,partial_upfront,6.604452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:16.233754 +AWS,ap-southeast-2,m6in.32xlarge,reserved_3y,all_upfront,2.201484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:52.042375 +AWS,ap-southeast-2,m6in.32xlarge,reserved_3y,no_upfront,2.201484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:35.356976 +AWS,ap-southeast-2,m6in.32xlarge,reserved_3y,partial_upfront,2.201484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:27.562580 +AWS,ap-southeast-2,m6in.32xlarge,spot,NA,3.610824,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037237 +AWS,ap-southeast-2,m6in.4xlarge,on_demand,NA,1.404,USD,AWS Pricing API,2025-11-30T09:00:29.800874 +AWS,ap-southeast-2,m6in.4xlarge,reserved_1y,all_upfront,1.112008,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:00.370564 +AWS,ap-southeast-2,m6in.4xlarge,reserved_1y,no_upfront,1.112008,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:42.332007 +AWS,ap-southeast-2,m6in.4xlarge,reserved_1y,partial_upfront,1.112008,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:26.190285 +AWS,ap-southeast-2,m6in.4xlarge,reserved_3y,all_upfront,0.555996,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:01.873206 +AWS,ap-southeast-2,m6in.4xlarge,reserved_3y,no_upfront,0.555996,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:45.650584 +AWS,ap-southeast-2,m6in.4xlarge,reserved_3y,partial_upfront,0.555996,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:37.564218 +AWS,ap-southeast-2,m6in.4xlarge,spot,NA,0.536279,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037507 +AWS,ap-southeast-2,m6in.8xlarge,on_demand,NA,2.808,USD,AWS Pricing API,2025-11-30T09:00:27.895342 +AWS,ap-southeast-2,m6in.8xlarge,reserved_1y,all_upfront,2.20245,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:58.482427 +AWS,ap-southeast-2,m6in.8xlarge,reserved_1y,no_upfront,2.20245,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:40.412199 +AWS,ap-southeast-2,m6in.8xlarge,reserved_1y,partial_upfront,2.20245,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:24.305133 +AWS,ap-southeast-2,m6in.8xlarge,reserved_3y,all_upfront,2.20245,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:00.007654 +AWS,ap-southeast-2,m6in.8xlarge,reserved_3y,no_upfront,2.20245,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:43.666865 +AWS,ap-southeast-2,m6in.8xlarge,reserved_3y,partial_upfront,2.20245,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:35.666899 +AWS,ap-southeast-2,m6in.8xlarge,spot,NA,1.049396,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037475 +AWS,ap-southeast-2,m6in.large,on_demand,NA,0.1755,USD,AWS Pricing API,2025-11-30T09:00:47.553205 +AWS,ap-southeast-2,m6in.large,reserved_1y,all_upfront,0.13765,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:18.030670 +AWS,ap-southeast-2,m6in.large,reserved_1y,no_upfront,0.13765,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:00.080780 +AWS,ap-southeast-2,m6in.large,reserved_1y,partial_upfront,0.13765,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:43.735238 +AWS,ap-southeast-2,m6in.large,reserved_3y,all_upfront,0.13765,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:19.210333 +AWS,ap-southeast-2,m6in.large,reserved_3y,no_upfront,0.13765,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:03.695156 +AWS,ap-southeast-2,m6in.large,reserved_3y,partial_upfront,0.13765,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:55.078880 +AWS,ap-southeast-2,m6in.large,spot,NA,0.068008,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038023 +AWS,ap-southeast-2,m6in.xlarge,on_demand,NA,0.351,USD,AWS Pricing API,2025-11-30T09:01:01.766525 +AWS,ap-southeast-2,m6in.xlarge,reserved_1y,all_upfront,0.27531,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:32.072330 +AWS,ap-southeast-2,m6in.xlarge,reserved_1y,no_upfront,0.27531,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:14.376378 +AWS,ap-southeast-2,m6in.xlarge,reserved_1y,partial_upfront,0.27531,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:57.739990 +AWS,ap-southeast-2,m6in.xlarge,reserved_3y,all_upfront,0.27531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:32.981935 +AWS,ap-southeast-2,m6in.xlarge,reserved_3y,no_upfront,0.27531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:18.143164 +AWS,ap-southeast-2,m6in.xlarge,reserved_3y,partial_upfront,0.27531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:09.090534 +AWS,ap-southeast-2,m6in.xlarge,spot,NA,0.140787,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038433 +AWS,ap-southeast-2,m7a.12xlarge,on_demand,NA,3.4776,USD,AWS Pricing API,2025-11-30T09:00:50.292652 +AWS,ap-southeast-2,m7a.12xlarge,reserved_1y,all_upfront,2.64338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:20.708609 +AWS,ap-southeast-2,m7a.12xlarge,reserved_1y,no_upfront,2.64338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:02.867000 +AWS,ap-southeast-2,m7a.12xlarge,reserved_1y,partial_upfront,2.64338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:46.433623 +AWS,ap-southeast-2,m7a.12xlarge,reserved_3y,all_upfront,2.64338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:21.862514 +AWS,ap-southeast-2,m7a.12xlarge,reserved_3y,no_upfront,2.64338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:06.453783 +AWS,ap-southeast-2,m7a.12xlarge,reserved_3y,partial_upfront,2.64338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:57.778175 +AWS,ap-southeast-2,m7a.12xlarge,spot,NA,1.398341,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038096 +AWS,ap-southeast-2,m7a.16xlarge,on_demand,NA,4.6368,USD,AWS Pricing API,2025-11-30T09:01:06.459585 +AWS,ap-southeast-2,m7a.16xlarge,reserved_1y,all_upfront,3.52451,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:36.685955 +AWS,ap-southeast-2,m7a.16xlarge,reserved_1y,no_upfront,3.52451,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:19.038558 +AWS,ap-southeast-2,m7a.16xlarge,reserved_1y,partial_upfront,3.52451,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:02.375102 +AWS,ap-southeast-2,m7a.16xlarge,reserved_3y,all_upfront,3.52451,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:37.515179 +AWS,ap-southeast-2,m7a.16xlarge,reserved_3y,no_upfront,3.52451,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:22.812009 +AWS,ap-southeast-2,m7a.16xlarge,reserved_3y,partial_upfront,3.52451,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:13.649672 +AWS,ap-southeast-2,m7a.16xlarge,spot,NA,1.631636,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038569 +AWS,ap-southeast-2,m7a.24xlarge,on_demand,NA,6.9552,USD,AWS Pricing API,2025-11-30T09:01:19.361358 +AWS,ap-southeast-2,m7a.24xlarge,reserved_1y,all_upfront,5.28676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:49.369308 +AWS,ap-southeast-2,m7a.24xlarge,reserved_1y,no_upfront,5.28676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:31.959237 +AWS,ap-southeast-2,m7a.24xlarge,reserved_1y,partial_upfront,5.28676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:15.090983 +AWS,ap-southeast-2,m7a.24xlarge,reserved_3y,all_upfront,5.28676,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:50.005840 +AWS,ap-southeast-2,m7a.24xlarge,reserved_3y,no_upfront,5.28676,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:35.740464 +AWS,ap-southeast-2,m7a.24xlarge,reserved_3y,partial_upfront,5.28676,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:26.319724 +AWS,ap-southeast-2,m7a.24xlarge,spot,NA,2.431243,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038879 +AWS,ap-southeast-2,m7a.2xlarge,on_demand,NA,0.5796,USD,AWS Pricing API,2025-11-30T09:00:25.819872 +AWS,ap-southeast-2,m7a.2xlarge,reserved_1y,all_upfront,0.30346,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:56.443830 +AWS,ap-southeast-2,m7a.2xlarge,reserved_1y,no_upfront,0.30346,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:38.350655 +AWS,ap-southeast-2,m7a.2xlarge,reserved_1y,partial_upfront,0.30346,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:22.279200 +AWS,ap-southeast-2,m7a.2xlarge,reserved_3y,all_upfront,0.30346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:58.016728 +AWS,ap-southeast-2,m7a.2xlarge,reserved_3y,no_upfront,0.30346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:41.591541 +AWS,ap-southeast-2,m7a.2xlarge,reserved_3y,partial_upfront,0.30346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:33.607889 +AWS,ap-southeast-2,m7a.2xlarge,spot,NA,0.211305,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037379 +AWS,ap-southeast-2,m7a.32xlarge,on_demand,NA,9.2736,USD,AWS Pricing API,2025-11-30T09:01:08.821966 +AWS,ap-southeast-2,m7a.32xlarge,reserved_1y,all_upfront,6.57911,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:38.979671 +AWS,ap-southeast-2,m7a.32xlarge,reserved_1y,no_upfront,6.57911,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:21.380694 +AWS,ap-southeast-2,m7a.32xlarge,reserved_1y,partial_upfront,6.57911,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:04.669762 +AWS,ap-southeast-2,m7a.32xlarge,reserved_3y,all_upfront,2.193037,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:39.764724 +AWS,ap-southeast-2,m7a.32xlarge,reserved_3y,no_upfront,2.193037,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:25.151940 +AWS,ap-southeast-2,m7a.32xlarge,reserved_3y,partial_upfront,2.193037,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:15.932383 +AWS,ap-southeast-2,m7a.32xlarge,spot,NA,3.407652,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038641 +AWS,ap-southeast-2,m7a.48xlarge,on_demand,NA,13.9104,USD,AWS Pricing API,2025-11-30T09:00:18.740416 +AWS,ap-southeast-2,m7a.48xlarge,reserved_1y,all_upfront,8.588242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:49.538534 +AWS,ap-southeast-2,m7a.48xlarge,reserved_1y,no_upfront,8.588242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:31.285390 +AWS,ap-southeast-2,m7a.48xlarge,reserved_1y,partial_upfront,8.588242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:15.395179 +AWS,ap-southeast-2,m7a.48xlarge,reserved_3y,all_upfront,2.862747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:51.254414 +AWS,ap-southeast-2,m7a.48xlarge,reserved_3y,no_upfront,2.862747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:34.531385 +AWS,ap-southeast-2,m7a.48xlarge,reserved_3y,partial_upfront,2.862747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:26.762554 +AWS,ap-southeast-2,m7a.48xlarge,spot,NA,4.851743,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037212 +AWS,ap-southeast-2,m7a.4xlarge,on_demand,NA,1.1592,USD,AWS Pricing API,2025-11-30T09:00:52.203663 +AWS,ap-southeast-2,m7a.4xlarge,reserved_1y,all_upfront,0.715639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:22.595781 +AWS,ap-southeast-2,m7a.4xlarge,reserved_1y,no_upfront,0.715639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:04.788628 +AWS,ap-southeast-2,m7a.4xlarge,reserved_1y,partial_upfront,0.715639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:48.316679 +AWS,ap-southeast-2,m7a.4xlarge,reserved_3y,all_upfront,0.238546,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:23.718230 +AWS,ap-southeast-2,m7a.4xlarge,reserved_3y,no_upfront,0.238546,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:08.373531 +AWS,ap-southeast-2,m7a.4xlarge,reserved_3y,partial_upfront,0.238546,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:59.668018 +AWS,ap-southeast-2,m7a.4xlarge,spot,NA,0.496871,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038132 +AWS,ap-southeast-2,m7a.8xlarge,on_demand,NA,2.3184,USD,AWS Pricing API,2025-11-30T09:00:56.426297 +AWS,ap-southeast-2,m7a.8xlarge,reserved_1y,all_upfront,1.76225,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:26.796637 +AWS,ap-southeast-2,m7a.8xlarge,reserved_1y,no_upfront,1.76225,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:09.023528 +AWS,ap-southeast-2,m7a.8xlarge,reserved_1y,partial_upfront,1.76225,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:52.471559 +AWS,ap-southeast-2,m7a.8xlarge,reserved_3y,all_upfront,1.76225,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:27.831448 +AWS,ap-southeast-2,m7a.8xlarge,reserved_3y,no_upfront,1.76225,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:12.758204 +AWS,ap-southeast-2,m7a.8xlarge,reserved_3y,partial_upfront,1.76225,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:03.868012 +AWS,ap-southeast-2,m7a.8xlarge,spot,NA,0.942104,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038315 +AWS,ap-southeast-2,m7a.xlarge,on_demand,NA,0.2898,USD,AWS Pricing API,2025-11-30T09:00:18.329832 +AWS,ap-southeast-2,m7a.xlarge,reserved_1y,all_upfront,0.413014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:49.133527 +AWS,ap-southeast-2,m7a.xlarge,reserved_1y,no_upfront,0.413014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:30.876832 +AWS,ap-southeast-2,m7a.xlarge,reserved_1y,partial_upfront,0.413014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:14.989475 +AWS,ap-southeast-2,m7a.xlarge,reserved_3y,all_upfront,0.137671,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:50.857408 +AWS,ap-southeast-2,m7a.xlarge,reserved_3y,no_upfront,0.137671,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:34.116353 +AWS,ap-southeast-2,m7a.xlarge,reserved_3y,partial_upfront,0.137671,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:26.356457 +AWS,ap-southeast-2,m7a.xlarge,spot,NA,0.110114,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037225 +AWS,ap-southeast-2,m7g.12xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T09:00:35.274438 +AWS,ap-southeast-2,m7g.12xlarge,reserved_1y,all_upfront,1.511416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:05.804034 +AWS,ap-southeast-2,m7g.12xlarge,reserved_1y,no_upfront,1.511416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:47.799734 +AWS,ap-southeast-2,m7g.12xlarge,reserved_1y,partial_upfront,1.511416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:31.593189 +AWS,ap-southeast-2,m7g.12xlarge,reserved_3y,all_upfront,0.503805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:07.266313 +AWS,ap-southeast-2,m7g.12xlarge,reserved_3y,no_upfront,0.503805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:51.195030 +AWS,ap-southeast-2,m7g.12xlarge,reserved_3y,partial_upfront,0.503805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:42.945342 +AWS,ap-southeast-2,m7g.12xlarge,spot,NA,0.809733,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037659 +AWS,ap-southeast-2,m7g.16xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T09:01:04.265659 +AWS,ap-southeast-2,m7g.16xlarge,reserved_1y,all_upfront,2.481,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:34.510541 +AWS,ap-southeast-2,m7g.16xlarge,reserved_1y,no_upfront,2.481,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:16.841713 +AWS,ap-southeast-2,m7g.16xlarge,reserved_1y,partial_upfront,2.481,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:00.192557 +AWS,ap-southeast-2,m7g.16xlarge,reserved_3y,all_upfront,2.481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:35.384702 +AWS,ap-southeast-2,m7g.16xlarge,reserved_3y,no_upfront,2.481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:20.612226 +AWS,ap-southeast-2,m7g.16xlarge,reserved_3y,partial_upfront,2.481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:11.500155 +AWS,ap-southeast-2,m7g.16xlarge,spot,NA,1.067705,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038510 +AWS,ap-southeast-2,m7g.2xlarge,on_demand,NA,0.408,USD,AWS Pricing API,2025-11-30T09:00:27.059524 +AWS,ap-southeast-2,m7g.2xlarge,reserved_1y,all_upfront,0.581507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:57.663117 +AWS,ap-southeast-2,m7g.2xlarge,reserved_1y,no_upfront,0.581507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:39.581917 +AWS,ap-southeast-2,m7g.2xlarge,reserved_1y,partial_upfront,0.581507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:23.497973 +AWS,ap-southeast-2,m7g.2xlarge,reserved_3y,all_upfront,0.193836,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:59.216480 +AWS,ap-southeast-2,m7g.2xlarge,reserved_3y,no_upfront,0.193836,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:42.837303 +AWS,ap-southeast-2,m7g.2xlarge,reserved_3y,partial_upfront,0.193836,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:34.829703 +AWS,ap-southeast-2,m7g.2xlarge,spot,NA,0.152994,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037451 +AWS,ap-southeast-2,m7g.4xlarge,on_demand,NA,0.816,USD,AWS Pricing API,2025-11-30T09:01:24.025764 +AWS,ap-southeast-2,m7g.4xlarge,reserved_1y,all_upfront,0.791179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:53.970563 +AWS,ap-southeast-2,m7g.4xlarge,reserved_1y,no_upfront,0.791179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:36.602940 +AWS,ap-southeast-2,m7g.4xlarge,reserved_1y,partial_upfront,0.791179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:19.685499 +AWS,ap-southeast-2,m7g.4xlarge,reserved_3y,all_upfront,0.395593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:54.495806 +AWS,ap-southeast-2,m7g.4xlarge,reserved_3y,no_upfront,0.395593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:40.423691 +AWS,ap-southeast-2,m7g.4xlarge,reserved_3y,partial_upfront,0.395593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:30.882769 +AWS,ap-southeast-2,m7g.4xlarge,spot,NA,0.292806,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039010 +AWS,ap-southeast-2,m7g.8xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T09:00:18.047605 +AWS,ap-southeast-2,m7g.8xlarge,reserved_1y,all_upfront,1.028141,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:48.864821 +AWS,ap-southeast-2,m7g.8xlarge,reserved_1y,no_upfront,1.028141,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:30.607577 +AWS,ap-southeast-2,m7g.8xlarge,reserved_1y,partial_upfront,1.028141,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:14.722928 +AWS,ap-southeast-2,m7g.8xlarge,reserved_3y,all_upfront,0.685447,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:50.592302 +AWS,ap-southeast-2,m7g.8xlarge,reserved_3y,no_upfront,0.685447,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:33.839354 +AWS,ap-southeast-2,m7g.8xlarge,reserved_3y,partial_upfront,0.685447,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:26.088877 +AWS,ap-southeast-2,m7g.8xlarge,spot,NA,0.595099,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037195 +AWS,ap-southeast-2,m7g.large,on_demand,NA,0.102,USD,AWS Pricing API,2025-11-30T09:00:45.900656 +AWS,ap-southeast-2,m7g.large,reserved_1y,all_upfront,0.0775,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:16.389049 +AWS,ap-southeast-2,m7g.large,reserved_1y,no_upfront,0.0775,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:58.441101 +AWS,ap-southeast-2,m7g.large,reserved_1y,partial_upfront,0.0775,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:42.105506 +AWS,ap-southeast-2,m7g.large,reserved_3y,all_upfront,0.0775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:17.594865 +AWS,ap-southeast-2,m7g.large,reserved_3y,no_upfront,0.0775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:02.005451 +AWS,ap-southeast-2,m7g.large,reserved_3y,partial_upfront,0.0775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:53.456453 +AWS,ap-southeast-2,m7g.large,spot,NA,0.042273,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037983 +AWS,ap-southeast-2,m7g.xlarge,on_demand,NA,0.204,USD,AWS Pricing API,2025-11-30T09:00:52.743640 +AWS,ap-southeast-2,m7g.xlarge,reserved_1y,all_upfront,0.144749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:23.133560 +AWS,ap-southeast-2,m7g.xlarge,reserved_1y,no_upfront,0.144749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:05.343403 +AWS,ap-southeast-2,m7g.xlarge,reserved_1y,partial_upfront,0.144749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:48.855277 +AWS,ap-southeast-2,m7g.xlarge,reserved_3y,all_upfront,0.04825,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:24.241558 +AWS,ap-southeast-2,m7g.xlarge,reserved_3y,no_upfront,0.04825,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:08.931355 +AWS,ap-southeast-2,m7g.xlarge,reserved_3y,partial_upfront,0.04825,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:00.204076 +AWS,ap-southeast-2,m7g.xlarge,spot,NA,0.075461,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038172 +AWS,ap-southeast-2,m7gd.12xlarge,on_demand,NA,3.2206,USD,AWS Pricing API,2025-11-30T09:00:26.367213 +AWS,ap-southeast-2,m7gd.12xlarge,reserved_1y,all_upfront,2.376484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:56.983872 +AWS,ap-southeast-2,m7gd.12xlarge,reserved_1y,no_upfront,2.376484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:38.902617 +AWS,ap-southeast-2,m7gd.12xlarge,reserved_1y,partial_upfront,2.376484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:22.825512 +AWS,ap-southeast-2,m7gd.12xlarge,reserved_3y,all_upfront,0.792161,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:58.549098 +AWS,ap-southeast-2,m7gd.12xlarge,reserved_3y,no_upfront,0.792161,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:42.136575 +AWS,ap-southeast-2,m7gd.12xlarge,reserved_3y,partial_upfront,0.792161,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:34.158036 +AWS,ap-southeast-2,m7gd.12xlarge,spot,NA,1.020821,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037443 +AWS,ap-southeast-2,m7gd.16xlarge,on_demand,NA,4.2941,USD,AWS Pricing API,2025-11-30T09:00:43.578966 +AWS,ap-southeast-2,m7gd.16xlarge,reserved_1y,all_upfront,2.576442,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:14.063457 +AWS,ap-southeast-2,m7gd.16xlarge,reserved_1y,no_upfront,2.576442,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:56.124344 +AWS,ap-southeast-2,m7gd.16xlarge,reserved_1y,partial_upfront,2.576442,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:39.821888 +AWS,ap-southeast-2,m7gd.16xlarge,reserved_3y,all_upfront,1.717614,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:15.340780 +AWS,ap-southeast-2,m7gd.16xlarge,reserved_3y,no_upfront,1.717614,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:59.609784 +AWS,ap-southeast-2,m7gd.16xlarge,reserved_3y,partial_upfront,1.717614,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:51.167244 +AWS,ap-southeast-2,m7gd.16xlarge,spot,NA,1.381677,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037893 +AWS,ap-southeast-2,m7gd.2xlarge,on_demand,NA,0.5368,USD,AWS Pricing API,2025-11-30T09:00:59.264879 +AWS,ap-southeast-2,m7gd.2xlarge,reserved_1y,all_upfront,0.3382,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:29.633785 +AWS,ap-southeast-2,m7gd.2xlarge,reserved_1y,no_upfront,0.3382,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:11.903611 +AWS,ap-southeast-2,m7gd.2xlarge,reserved_1y,partial_upfront,0.3382,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:55.311755 +AWS,ap-southeast-2,m7gd.2xlarge,reserved_3y,all_upfront,0.3382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:30.603545 +AWS,ap-southeast-2,m7gd.2xlarge,reserved_3y,no_upfront,0.3382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:15.642357 +AWS,ap-southeast-2,m7gd.2xlarge,reserved_3y,partial_upfront,0.3382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:06.665807 +AWS,ap-southeast-2,m7gd.2xlarge,spot,NA,0.210933,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038380 +AWS,ap-southeast-2,m7gd.4xlarge,on_demand,NA,1.0735,USD,AWS Pricing API,2025-11-30T09:01:17.032716 +AWS,ap-southeast-2,m7gd.4xlarge,reserved_1y,all_upfront,0.631279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:47.084036 +AWS,ap-southeast-2,m7gd.4xlarge,reserved_1y,no_upfront,0.631279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:29.619926 +AWS,ap-southeast-2,m7gd.4xlarge,reserved_1y,partial_upfront,0.631279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:12.804091 +AWS,ap-southeast-2,m7gd.4xlarge,reserved_3y,all_upfront,0.210426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:47.734788 +AWS,ap-southeast-2,m7gd.4xlarge,reserved_3y,no_upfront,0.210426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:33.381575 +AWS,ap-southeast-2,m7gd.4xlarge,reserved_3y,partial_upfront,0.210426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:24.000046 +AWS,ap-southeast-2,m7gd.4xlarge,spot,NA,0.414471,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038852 +AWS,ap-southeast-2,m7gd.8xlarge,on_demand,NA,2.147,USD,AWS Pricing API,2025-11-30T09:00:56.972567 +AWS,ap-southeast-2,m7gd.8xlarge,reserved_1y,all_upfront,2.234285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:27.337518 +AWS,ap-southeast-2,m7gd.8xlarge,reserved_1y,no_upfront,2.234285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:09.565169 +AWS,ap-southeast-2,m7gd.8xlarge,reserved_1y,partial_upfront,2.234285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:53.018520 +AWS,ap-southeast-2,m7gd.8xlarge,reserved_3y,all_upfront,1.117162,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:28.359667 +AWS,ap-southeast-2,m7gd.8xlarge,reserved_3y,no_upfront,1.117162,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:13.303660 +AWS,ap-southeast-2,m7gd.8xlarge,reserved_3y,partial_upfront,1.117162,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:04.403822 +AWS,ap-southeast-2,m7gd.8xlarge,spot,NA,0.776683,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038295 +AWS,ap-southeast-2,m7gd.large,on_demand,NA,0.1342,USD,AWS Pricing API,2025-11-30T09:00:54.771362 +AWS,ap-southeast-2,m7gd.large,reserved_1y,all_upfront,0.058,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:25.167006 +AWS,ap-southeast-2,m7gd.large,reserved_1y,no_upfront,0.058,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:07.387488 +AWS,ap-southeast-2,m7gd.large,reserved_1y,partial_upfront,0.058,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:50.865012 +AWS,ap-southeast-2,m7gd.large,reserved_3y,all_upfront,0.058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:26.237851 +AWS,ap-southeast-2,m7gd.large,reserved_3y,no_upfront,0.058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:11.089681 +AWS,ap-southeast-2,m7gd.large,reserved_3y,partial_upfront,0.058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:02.226832 +AWS,ap-southeast-2,m7gd.large,spot,NA,0.04674,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038237 +AWS,ap-southeast-2,m7gd.xlarge,on_demand,NA,0.2684,USD,AWS Pricing API,2025-11-30T09:01:00.940115 +AWS,ap-southeast-2,m7gd.xlarge,reserved_1y,all_upfront,0.157763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:31.260869 +AWS,ap-southeast-2,m7gd.xlarge,reserved_1y,no_upfront,0.157763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:13.550329 +AWS,ap-southeast-2,m7gd.xlarge,reserved_1y,partial_upfront,0.157763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:56.931271 +AWS,ap-southeast-2,m7gd.xlarge,reserved_3y,all_upfront,0.052588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:32.188639 +AWS,ap-southeast-2,m7gd.xlarge,reserved_3y,no_upfront,0.052588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:17.317085 +AWS,ap-southeast-2,m7gd.xlarge,reserved_3y,partial_upfront,0.052588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:08.282810 +AWS,ap-southeast-2,m7gd.xlarge,spot,NA,0.105458,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038425 +AWS,ap-southeast-2,m7i.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T09:00:32.554351 +AWS,ap-southeast-2,m7i.12xlarge,reserved_1y,all_upfront,1.905071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:03.102240 +AWS,ap-southeast-2,m7i.12xlarge,reserved_1y,no_upfront,1.905071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:45.065755 +AWS,ap-southeast-2,m7i.12xlarge,reserved_1y,partial_upfront,1.905071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:28.898220 +AWS,ap-southeast-2,m7i.12xlarge,reserved_3y,all_upfront,1.270064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:04.587008 +AWS,ap-southeast-2,m7i.12xlarge,reserved_3y,no_upfront,1.270064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:48.408795 +AWS,ap-southeast-2,m7i.12xlarge,reserved_3y,partial_upfront,1.270064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:40.249423 +AWS,ap-southeast-2,m7i.12xlarge,spot,NA,1.165257,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037586 +AWS,ap-southeast-2,m7i.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T09:01:09.802920 +AWS,ap-southeast-2,m7i.16xlarge,reserved_1y,all_upfront,2.489384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:39.933842 +AWS,ap-southeast-2,m7i.16xlarge,reserved_1y,no_upfront,2.489384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:22.335473 +AWS,ap-southeast-2,m7i.16xlarge,reserved_1y,partial_upfront,2.489384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:05.606758 +AWS,ap-southeast-2,m7i.16xlarge,reserved_3y,all_upfront,0.829795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:40.704893 +AWS,ap-southeast-2,m7i.16xlarge,reserved_3y,no_upfront,0.829795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:26.114447 +AWS,ap-southeast-2,m7i.16xlarge,reserved_3y,partial_upfront,0.829795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:16.871402 +AWS,ap-southeast-2,m7i.16xlarge,spot,NA,1.434247,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038637 +AWS,ap-southeast-2,m7i.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T09:01:15.946598 +AWS,ap-southeast-2,m7i.24xlarge,reserved_1y,all_upfront,4.00075,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:45.989165 +AWS,ap-southeast-2,m7i.24xlarge,reserved_1y,no_upfront,4.00075,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:28.518632 +AWS,ap-southeast-2,m7i.24xlarge,reserved_1y,partial_upfront,4.00075,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:11.718035 +AWS,ap-southeast-2,m7i.24xlarge,reserved_3y,all_upfront,4.00075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:46.670039 +AWS,ap-southeast-2,m7i.24xlarge,reserved_3y,no_upfront,4.00075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:32.278372 +AWS,ap-southeast-2,m7i.24xlarge,reserved_3y,partial_upfront,4.00075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:22.907694 +AWS,ap-southeast-2,m7i.24xlarge,spot,NA,2.122961,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038797 +AWS,ap-southeast-2,m7i.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T09:00:50.975655 +AWS,ap-southeast-2,m7i.2xlarge,reserved_1y,all_upfront,0.31755,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:21.383315 +AWS,ap-southeast-2,m7i.2xlarge,reserved_1y,no_upfront,0.31755,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:03.549321 +AWS,ap-southeast-2,m7i.2xlarge,reserved_1y,partial_upfront,0.31755,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:47.109796 +AWS,ap-southeast-2,m7i.2xlarge,reserved_3y,all_upfront,0.21169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:22.514590 +AWS,ap-southeast-2,m7i.2xlarge,reserved_3y,no_upfront,0.21169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:07.141735 +AWS,ap-southeast-2,m7i.2xlarge,reserved_3y,partial_upfront,0.21169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:58.459073 +AWS,ap-southeast-2,m7i.2xlarge,spot,NA,0.224665,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038124 +AWS,ap-southeast-2,m7i.48xlarge,on_demand,NA,12.096,USD,AWS Pricing API,2025-11-30T09:00:13.574885 +AWS,ap-southeast-2,m7i.48xlarge,reserved_1y,all_upfront,9.19436,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:44.476031 +AWS,ap-southeast-2,m7i.48xlarge,reserved_1y,no_upfront,9.19436,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:26.211495 +AWS,ap-southeast-2,m7i.48xlarge,reserved_1y,partial_upfront,9.19436,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:10.416231 +AWS,ap-southeast-2,m7i.48xlarge,reserved_3y,all_upfront,9.19436,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:46.364480 +AWS,ap-southeast-2,m7i.48xlarge,reserved_3y,no_upfront,9.19436,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:29.457937 +AWS,ap-southeast-2,m7i.48xlarge,reserved_3y,partial_upfront,9.19436,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:21.789650 +AWS,ap-southeast-2,m7i.48xlarge,spot,NA,4.191613,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037038 +AWS,ap-southeast-2,m7i.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T09:00:27.749970 +AWS,ap-southeast-2,m7i.4xlarge,reserved_1y,all_upfront,0.622374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:58.346819 +AWS,ap-southeast-2,m7i.4xlarge,reserved_1y,no_upfront,0.622374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:40.273913 +AWS,ap-southeast-2,m7i.4xlarge,reserved_1y,partial_upfront,0.622374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:24.173350 +AWS,ap-southeast-2,m7i.4xlarge,reserved_3y,all_upfront,0.207458,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:59.874916 +AWS,ap-southeast-2,m7i.4xlarge,reserved_3y,no_upfront,0.207458,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:43.529149 +AWS,ap-southeast-2,m7i.4xlarge,reserved_3y,partial_upfront,0.207458,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:35.533111 +AWS,ap-southeast-2,m7i.4xlarge,spot,NA,0.431801,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037458 +AWS,ap-southeast-2,m7i.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T09:01:05.501706 +AWS,ap-southeast-2,m7i.8xlarge,reserved_1y,all_upfront,1.270086,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:35.729110 +AWS,ap-southeast-2,m7i.8xlarge,reserved_1y,no_upfront,1.270086,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:18.077350 +AWS,ap-southeast-2,m7i.8xlarge,reserved_1y,partial_upfront,1.270086,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:01.420925 +AWS,ap-southeast-2,m7i.8xlarge,reserved_3y,all_upfront,0.846722,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:36.568441 +AWS,ap-southeast-2,m7i.8xlarge,reserved_3y,no_upfront,0.846722,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:21.845813 +AWS,ap-southeast-2,m7i.8xlarge,reserved_3y,partial_upfront,0.846722,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:12.702877 +AWS,ap-southeast-2,m7i.8xlarge,spot,NA,0.830872,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038542 +AWS,ap-southeast-2,m7i.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T09:00:30.765397 +AWS,ap-southeast-2,m7i.large,reserved_1y,all_upfront,0.09577,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:01.323803 +AWS,ap-southeast-2,m7i.large,reserved_1y,no_upfront,0.09577,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:43.291555 +AWS,ap-southeast-2,m7i.large,reserved_1y,partial_upfront,0.09577,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:27.135989 +AWS,ap-southeast-2,m7i.large,reserved_3y,all_upfront,0.09577,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:02.816959 +AWS,ap-southeast-2,m7i.large,reserved_3y,no_upfront,0.09577,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:46.622838 +AWS,ap-southeast-2,m7i.large,reserved_3y,partial_upfront,0.09577,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:38.503389 +AWS,ap-southeast-2,m7i.large,spot,NA,0.058642,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037552 +AWS,ap-southeast-2,m7i.metal-24xl,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T09:00:13.710407 +AWS,ap-southeast-2,m7i.metal-24xl,reserved_1y,all_upfront,5.080354,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:44.669502 +AWS,ap-southeast-2,m7i.metal-24xl,reserved_1y,no_upfront,5.080354,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:26.348934 +AWS,ap-southeast-2,m7i.metal-24xl,reserved_1y,partial_upfront,5.080354,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:10.549979 +AWS,ap-southeast-2,m7i.metal-24xl,reserved_3y,all_upfront,2.540171,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:46.495672 +AWS,ap-southeast-2,m7i.metal-24xl,reserved_3y,no_upfront,2.540171,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:29.595384 +AWS,ap-southeast-2,m7i.metal-24xl,reserved_3y,partial_upfront,2.540171,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:21.926444 +AWS,ap-southeast-2,m7i.metal-24xl,spot,NA,2.024707,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037042 +AWS,ap-southeast-2,m7i.metal-48xl,on_demand,NA,12.096,USD,AWS Pricing API,2025-11-30T09:00:55.186606 +AWS,ap-southeast-2,m7i.metal-48xl,reserved_1y,all_upfront,17.23984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:25.570321 +AWS,ap-southeast-2,m7i.metal-48xl,reserved_1y,no_upfront,17.23984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:07.792749 +AWS,ap-southeast-2,m7i.metal-48xl,reserved_1y,partial_upfront,17.23984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:51.264975 +AWS,ap-southeast-2,m7i.metal-48xl,reserved_3y,all_upfront,5.746613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:26.638491 +AWS,ap-southeast-2,m7i.metal-48xl,reserved_3y,no_upfront,5.746613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:11.512799 +AWS,ap-southeast-2,m7i.metal-48xl,reserved_3y,partial_upfront,5.746613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:02.648889 +AWS,ap-southeast-2,m7i.metal-48xl,spot,NA,3.830722,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038259 +AWS,ap-southeast-2,m7i.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T09:01:17.444608 +AWS,ap-southeast-2,m7i.xlarge,reserved_1y,all_upfront,0.244299,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:47.487603 +AWS,ap-southeast-2,m7i.xlarge,reserved_1y,no_upfront,0.244299,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:30.042879 +AWS,ap-southeast-2,m7i.xlarge,reserved_1y,partial_upfront,0.244299,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:13.206632 +AWS,ap-southeast-2,m7i.xlarge,reserved_3y,all_upfront,0.122153,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:48.134941 +AWS,ap-southeast-2,m7i.xlarge,reserved_3y,no_upfront,0.122153,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:33.794547 +AWS,ap-southeast-2,m7i.xlarge,reserved_3y,partial_upfront,0.122153,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:24.416632 +AWS,ap-southeast-2,m7i.xlarge,spot,NA,0.119113,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038844 +AWS,ap-southeast-2,m8g.12xlarge,on_demand,NA,2.6928,USD,AWS Pricing API,2025-11-30T09:01:01.352200 +AWS,ap-southeast-2,m8g.12xlarge,reserved_1y,all_upfront,2.04678,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:31.670915 +AWS,ap-southeast-2,m8g.12xlarge,reserved_1y,no_upfront,2.04678,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:13.961168 +AWS,ap-southeast-2,m8g.12xlarge,reserved_1y,partial_upfront,2.04678,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:57.335337 +AWS,ap-southeast-2,m8g.12xlarge,reserved_3y,all_upfront,2.04678,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:32.583345 +AWS,ap-southeast-2,m8g.12xlarge,reserved_3y,no_upfront,2.04678,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:17.726668 +AWS,ap-southeast-2,m8g.12xlarge,reserved_3y,partial_upfront,2.04678,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:08.681992 +AWS,ap-southeast-2,m8g.12xlarge,spot,NA,0.969327,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038413 +AWS,ap-southeast-2,m8g.16xlarge,on_demand,NA,3.5904,USD,AWS Pricing API,2025-11-30T09:00:14.119988 +AWS,ap-southeast-2,m8g.16xlarge,reserved_1y,all_upfront,2.37505,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:45.079128 +AWS,ap-southeast-2,m8g.16xlarge,reserved_1y,no_upfront,2.37505,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:26.761960 +AWS,ap-southeast-2,m8g.16xlarge,reserved_1y,partial_upfront,2.37505,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:10.952034 +AWS,ap-southeast-2,m8g.16xlarge,reserved_3y,all_upfront,2.37505,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:46.889245 +AWS,ap-southeast-2,m8g.16xlarge,reserved_3y,no_upfront,2.37505,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:30.006157 +AWS,ap-southeast-2,m8g.16xlarge,reserved_3y,partial_upfront,2.37505,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:22.325028 +AWS,ap-southeast-2,m8g.16xlarge,spot,NA,1.207936,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037080 +AWS,ap-southeast-2,m8g.24xlarge,on_demand,NA,5.3856,USD,AWS Pricing API,2025-11-30T09:01:22.802883 +AWS,ap-southeast-2,m8g.24xlarge,reserved_1y,all_upfront,3.820662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:52.745291 +AWS,ap-southeast-2,m8g.24xlarge,reserved_1y,no_upfront,3.820662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:35.379783 +AWS,ap-southeast-2,m8g.24xlarge,reserved_1y,partial_upfront,3.820662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:18.458814 +AWS,ap-southeast-2,m8g.24xlarge,reserved_3y,all_upfront,1.273554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:53.305224 +AWS,ap-southeast-2,m8g.24xlarge,reserved_3y,no_upfront,1.273554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:39.175884 +AWS,ap-southeast-2,m8g.24xlarge,reserved_3y,partial_upfront,1.273554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:29.679311 +AWS,ap-southeast-2,m8g.24xlarge,spot,NA,1.770653,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038988 +AWS,ap-southeast-2,m8g.2xlarge,on_demand,NA,0.4488,USD,AWS Pricing API,2025-11-30T09:01:14.297828 +AWS,ap-southeast-2,m8g.2xlarge,reserved_1y,all_upfront,0.20353,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:44.373410 +AWS,ap-southeast-2,m8g.2xlarge,reserved_1y,no_upfront,0.20353,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:26.876271 +AWS,ap-southeast-2,m8g.2xlarge,reserved_1y,partial_upfront,0.20353,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:10.087163 +AWS,ap-southeast-2,m8g.2xlarge,reserved_3y,all_upfront,0.20353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:45.069787 +AWS,ap-southeast-2,m8g.2xlarge,reserved_3y,no_upfront,0.20353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:30.617009 +AWS,ap-southeast-2,m8g.2xlarge,reserved_3y,partial_upfront,0.20353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:21.304646 +AWS,ap-southeast-2,m8g.2xlarge,spot,NA,0.186326,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038761 +AWS,ap-southeast-2,m8g.48xlarge,on_demand,NA,10.7712,USD,AWS Pricing API,2025-11-30T09:00:47.147190 +AWS,ap-southeast-2,m8g.48xlarge,reserved_1y,all_upfront,6.785852,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:17.631408 +AWS,ap-southeast-2,m8g.48xlarge,reserved_1y,no_upfront,6.785852,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:59.670808 +AWS,ap-southeast-2,m8g.48xlarge,reserved_1y,partial_upfront,6.785852,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:43.325792 +AWS,ap-southeast-2,m8g.48xlarge,reserved_3y,all_upfront,4.523904,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:18.800993 +AWS,ap-southeast-2,m8g.48xlarge,reserved_3y,no_upfront,4.523904,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:03.271753 +AWS,ap-southeast-2,m8g.48xlarge,reserved_3y,partial_upfront,4.523904,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:54.677605 +AWS,ap-southeast-2,m8g.48xlarge,spot,NA,3.578021,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037995 +AWS,ap-southeast-2,m8g.4xlarge,on_demand,NA,0.8976,USD,AWS Pricing API,2025-11-30T09:01:04.132697 +AWS,ap-southeast-2,m8g.4xlarge,reserved_1y,all_upfront,0.554224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:34.369382 +AWS,ap-southeast-2,m8g.4xlarge,reserved_1y,no_upfront,0.554224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:16.706554 +AWS,ap-southeast-2,m8g.4xlarge,reserved_1y,partial_upfront,0.554224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:00.055516 +AWS,ap-southeast-2,m8g.4xlarge,reserved_3y,all_upfront,0.184741,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:35.253476 +AWS,ap-southeast-2,m8g.4xlarge,reserved_3y,no_upfront,0.184741,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:20.475982 +AWS,ap-southeast-2,m8g.4xlarge,reserved_3y,partial_upfront,0.184741,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:11.365983 +AWS,ap-southeast-2,m8g.4xlarge,spot,NA,0.342281,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038477 +AWS,ap-southeast-2,m8g.8xlarge,on_demand,NA,1.7952,USD,AWS Pricing API,2025-11-30T09:00:35.545667 +AWS,ap-southeast-2,m8g.8xlarge,reserved_1y,all_upfront,1.507608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:06.077035 +AWS,ap-southeast-2,m8g.8xlarge,reserved_1y,no_upfront,1.507608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:48.075463 +AWS,ap-southeast-2,m8g.8xlarge,reserved_1y,partial_upfront,1.507608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:31.861952 +AWS,ap-southeast-2,m8g.8xlarge,reserved_3y,all_upfront,0.753803,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:07.527967 +AWS,ap-southeast-2,m8g.8xlarge,reserved_3y,no_upfront,0.753803,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:51.470765 +AWS,ap-southeast-2,m8g.8xlarge,reserved_3y,partial_upfront,0.753803,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:43.210043 +AWS,ap-southeast-2,m8g.8xlarge,spot,NA,0.818818,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037679 +AWS,ap-southeast-2,m8g.large,on_demand,NA,0.1122,USD,AWS Pricing API,2025-11-30T09:01:24.842869 +AWS,ap-southeast-2,m8g.large,reserved_1y,all_upfront,0.05088,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:54.775290 +AWS,ap-southeast-2,m8g.large,reserved_1y,no_upfront,0.05088,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:37.421212 +AWS,ap-southeast-2,m8g.large,reserved_1y,partial_upfront,0.05088,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:20.488695 +AWS,ap-southeast-2,m8g.large,reserved_3y,all_upfront,0.05088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:55.290479 +AWS,ap-southeast-2,m8g.large,reserved_3y,no_upfront,0.05088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:41.245778 +AWS,ap-southeast-2,m8g.large,reserved_3y,partial_upfront,0.05088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:31.683643 +AWS,ap-southeast-2,m8g.large,spot,NA,0.043072,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039031 +AWS,ap-southeast-2,m8g.medium,on_demand,NA,0.0561,USD,AWS Pricing API,2025-11-30T09:01:26.742408 +AWS,ap-southeast-2,m8g.medium,reserved_1y,all_upfront,0.047168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:56.676801 +AWS,ap-southeast-2,m8g.medium,reserved_1y,no_upfront,0.047168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:39.374668 +AWS,ap-southeast-2,m8g.medium,reserved_1y,partial_upfront,0.047168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:22.382891 +AWS,ap-southeast-2,m8g.medium,reserved_3y,all_upfront,0.023576,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:57.149490 +AWS,ap-southeast-2,m8g.medium,reserved_3y,no_upfront,0.023576,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:43.183288 +AWS,ap-southeast-2,m8g.medium,reserved_3y,partial_upfront,0.023576,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:33.560286 +AWS,ap-southeast-2,m8g.medium,spot,NA,0.017616,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039092 +AWS,ap-southeast-2,m8g.xlarge,on_demand,NA,0.2244,USD,AWS Pricing API,2025-11-30T09:00:44.812241 +AWS,ap-southeast-2,m8g.xlarge,reserved_1y,all_upfront,0.10176,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:15.296806 +AWS,ap-southeast-2,m8g.xlarge,reserved_1y,no_upfront,0.10176,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:57.343737 +AWS,ap-southeast-2,m8g.xlarge,reserved_1y,partial_upfront,0.10176,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:41.031098 +AWS,ap-southeast-2,m8g.xlarge,reserved_3y,all_upfront,0.10176,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:16.529195 +AWS,ap-southeast-2,m8g.xlarge,reserved_3y,no_upfront,0.10176,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:00.849534 +AWS,ap-southeast-2,m8g.xlarge,reserved_3y,partial_upfront,0.10176,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:52.366609 +AWS,ap-southeast-2,m8g.xlarge,spot,NA,0.098967,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037909 +AWS,ap-southeast-2,m8gd.12xlarge,on_demand,NA,3.47808,USD,AWS Pricing API,2025-11-30T09:01:25.378706 +AWS,ap-southeast-2,m8gd.12xlarge,spot,NA,0.735097,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039067 +AWS,ap-southeast-2,m8gd.16xlarge,on_demand,NA,4.63744,USD,AWS Pricing API,2025-11-30T09:01:18.007718 +AWS,ap-southeast-2,m8gd.16xlarge,spot,NA,0.809592,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038856 +AWS,ap-southeast-2,m8gd.24xlarge,on_demand,NA,6.95616,USD,AWS Pricing API,2025-11-30T09:00:43.305374 +AWS,ap-southeast-2,m8gd.24xlarge,spot,NA,1.136019,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037877 +AWS,ap-southeast-2,m8gd.2xlarge,on_demand,NA,0.57968,USD,AWS Pricing API,2025-11-30T09:01:24.571566 +AWS,ap-southeast-2,m8gd.2xlarge,spot,NA,0.178457,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039039 +AWS,ap-southeast-2,m8gd.48xlarge,on_demand,NA,13.91232,USD,AWS Pricing API,2025-11-30T09:01:20.453018 +AWS,ap-southeast-2,m8gd.48xlarge,spot,NA,2.374636,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038902 +AWS,ap-southeast-2,m8gd.4xlarge,on_demand,NA,1.15936,USD,AWS Pricing API,2025-11-30T09:00:50.702867 +AWS,ap-southeast-2,m8gd.4xlarge,spot,NA,0.349107,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038104 +AWS,ap-southeast-2,m8gd.8xlarge,on_demand,NA,2.31872,USD,AWS Pricing API,2025-11-30T09:00:14.798158 +AWS,ap-southeast-2,m8gd.8xlarge,spot,NA,0.795889,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037092 +AWS,ap-southeast-2,m8gd.large,on_demand,NA,0.14492,USD,AWS Pricing API,2025-11-30T09:00:59.952673 +AWS,ap-southeast-2,m8gd.large,spot,NA,0.03602,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038369 +AWS,ap-southeast-2,m8gd.xlarge,on_demand,NA,0.28984,USD,AWS Pricing API,2025-11-30T09:00:51.384989 +AWS,ap-southeast-2,m8gd.xlarge,spot,NA,0.081773,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038128 +AWS,ap-southeast-2,p2.16xlarge,on_demand,NA,24.672,USD,AWS Pricing API,2025-11-30T09:00:20.944695 +AWS,ap-southeast-2,p2.8xlarge,on_demand,NA,12.336,USD,AWS Pricing API,2025-11-30T09:01:20.314644 +AWS,ap-southeast-2,p2.xlarge,on_demand,NA,1.542,USD,AWS Pricing API,2025-11-30T09:00:24.597529 +AWS,ap-southeast-2,p3.16xlarge,on_demand,NA,33.872,USD,AWS Pricing API,2025-11-30T09:00:39.895426 +AWS,ap-southeast-2,p3.16xlarge,spot,NA,23.33507,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037787 +AWS,ap-southeast-2,p3.2xlarge,on_demand,NA,4.234,USD,AWS Pricing API,2025-11-30T09:01:10.891150 +AWS,ap-southeast-2,p3.2xlarge,spot,NA,1.319159,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038688 +AWS,ap-southeast-2,p3.8xlarge,on_demand,NA,16.936,USD,AWS Pricing API,2025-11-30T09:00:20.536779 +AWS,ap-southeast-2,p3.8xlarge,spot,NA,5.708092,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037258 +AWS,ap-southeast-2,p4d.24xlarge,on_demand,NA,28.54493,USD,AWS Pricing API,2025-11-30T09:00:20.672493 +AWS,ap-southeast-2,p4d.24xlarge,reserved_1y,all_upfront,16.890868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:51.419234 +AWS,ap-southeast-2,p4d.24xlarge,reserved_1y,no_upfront,16.890868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:33.218130 +AWS,ap-southeast-2,p4d.24xlarge,reserved_1y,partial_upfront,16.890868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:17.306372 +AWS,ap-southeast-2,p4d.24xlarge,reserved_3y,all_upfront,5.630289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:53.097089 +AWS,ap-southeast-2,p4d.24xlarge,reserved_3y,no_upfront,5.630289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:36.464632 +AWS,ap-southeast-2,p4d.24xlarge,reserved_3y,partial_upfront,5.630289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:28.631160 +AWS,ap-southeast-2,p4d.24xlarge,spot,NA,9.266942,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037262 +AWS,ap-southeast-2,p5.48xlarge,on_demand,NA,71.552,USD,AWS Pricing API,2025-11-30T09:01:10.607646 +AWS,ap-southeast-2,p5.48xlarge,reserved_1y,all_upfront,57.241564,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:40.738934 +AWS,ap-southeast-2,p5.48xlarge,reserved_1y,no_upfront,57.241564,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:23.153088 +AWS,ap-southeast-2,p5.48xlarge,reserved_1y,partial_upfront,57.241564,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:06.414844 +AWS,ap-southeast-2,p5.48xlarge,reserved_3y,all_upfront,28.620788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:41.501882 +AWS,ap-southeast-2,p5.48xlarge,reserved_3y,no_upfront,28.620788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:26.933299 +AWS,ap-southeast-2,p5.48xlarge,reserved_3y,partial_upfront,28.620788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:17.683609 +AWS,ap-southeast-2,p5.48xlarge,spot,NA,40.831688,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038677 +AWS,ap-southeast-2,r4.16xlarge,on_demand,NA,5.1072,USD,AWS Pricing API,2025-11-30T09:01:13.344895 +AWS,ap-southeast-2,r4.16xlarge,reserved_1y,all_upfront,3.532838,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:43.431821 +AWS,ap-southeast-2,r4.16xlarge,reserved_1y,no_upfront,3.532838,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:25.913379 +AWS,ap-southeast-2,r4.16xlarge,reserved_1y,partial_upfront,3.532838,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:09.117111 +AWS,ap-southeast-2,r4.16xlarge,reserved_3y,all_upfront,2.355213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:44.142016 +AWS,ap-southeast-2,r4.16xlarge,reserved_3y,no_upfront,2.355213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:29.657974 +AWS,ap-southeast-2,r4.16xlarge,reserved_3y,partial_upfront,2.355213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:20.351911 +AWS,ap-southeast-2,r4.16xlarge,spot,NA,1.821014,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038721 +AWS,ap-southeast-2,r5.12xlarge,on_demand,NA,3.624,USD,AWS Pricing API,2025-11-30T09:00:13.846234 +AWS,ap-southeast-2,r5.12xlarge,reserved_1y,all_upfront,2.283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:44.804009 +AWS,ap-southeast-2,r5.12xlarge,reserved_1y,no_upfront,2.283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:26.487333 +AWS,ap-southeast-2,r5.12xlarge,reserved_1y,partial_upfront,2.283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:10.684800 +AWS,ap-southeast-2,r5.12xlarge,reserved_3y,all_upfront,2.283,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:46.628806 +AWS,ap-southeast-2,r5.12xlarge,reserved_3y,no_upfront,2.283,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:29.730083 +AWS,ap-southeast-2,r5.12xlarge,reserved_3y,partial_upfront,2.283,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:22.059354 +AWS,ap-southeast-2,r5.12xlarge,spot,NA,1.250979,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037071 +AWS,ap-southeast-2,r5.16xlarge,on_demand,NA,4.832,USD,AWS Pricing API,2025-11-30T09:00:47.281614 +AWS,ap-southeast-2,r5.16xlarge,reserved_1y,all_upfront,3.267352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:17.766079 +AWS,ap-southeast-2,r5.16xlarge,reserved_1y,no_upfront,3.267352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:59.806631 +AWS,ap-southeast-2,r5.16xlarge,reserved_1y,partial_upfront,3.267352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:43.460555 +AWS,ap-southeast-2,r5.16xlarge,reserved_3y,all_upfront,1.089117,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:18.943178 +AWS,ap-southeast-2,r5.16xlarge,reserved_3y,no_upfront,1.089117,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:03.410270 +AWS,ap-southeast-2,r5.16xlarge,reserved_3y,partial_upfront,1.089117,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:54.811126 +AWS,ap-southeast-2,r5.16xlarge,spot,NA,1.663042,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037991 +AWS,ap-southeast-2,r5.24xlarge,on_demand,NA,7.248,USD,AWS Pricing API,2025-11-30T09:00:29.533395 +AWS,ap-southeast-2,r5.24xlarge,reserved_1y,all_upfront,5.251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:00.102586 +AWS,ap-southeast-2,r5.24xlarge,reserved_1y,no_upfront,5.251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:42.054552 +AWS,ap-southeast-2,r5.24xlarge,reserved_1y,partial_upfront,5.251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:25.920601 +AWS,ap-southeast-2,r5.24xlarge,reserved_3y,all_upfront,5.251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:01.605038 +AWS,ap-southeast-2,r5.24xlarge,reserved_3y,no_upfront,5.251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:45.308286 +AWS,ap-southeast-2,r5.24xlarge,reserved_3y,partial_upfront,5.251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:37.293602 +AWS,ap-southeast-2,r5.24xlarge,spot,NA,2.590165,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037495 +AWS,ap-southeast-2,r5.2xlarge,on_demand,NA,0.604,USD,AWS Pricing API,2025-11-30T12:52:30.265119 +AWS,ap-southeast-2,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:30.265262 +AWS,ap-southeast-2,r5.2xlarge,reserved_1y_no_upfront,NA,0.381,USD,AWS Pricing API,2025-11-30T12:52:30.265301 +AWS,ap-southeast-2,r5.2xlarge,reserved_1y_partial_upfront,NA,0.181,USD,AWS Pricing API,2025-11-30T12:52:30.265288 +AWS,ap-southeast-2,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:30.265275 +AWS,ap-southeast-2,r5.2xlarge,reserved_3y_no_upfront,NA,0.315,USD,AWS Pricing API,2025-11-30T12:52:30.265250 +AWS,ap-southeast-2,r5.2xlarge,reserved_3y_partial_upfront,NA,0.146,USD,AWS Pricing API,2025-11-30T12:52:30.265237 +AWS,ap-southeast-2,r5.2xlarge,spot,NA,0.23077,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:38.848214 +AWS,ap-southeast-2,r5.4xlarge,on_demand,NA,1.208,USD,AWS Pricing API,2025-11-30T09:01:22.529955 +AWS,ap-southeast-2,r5.4xlarge,reserved_1y,all_upfront,0.761,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:52.473812 +AWS,ap-southeast-2,r5.4xlarge,reserved_1y,no_upfront,0.761,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:35.105194 +AWS,ap-southeast-2,r5.4xlarge,reserved_1y,partial_upfront,0.761,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:18.189862 +AWS,ap-southeast-2,r5.4xlarge,reserved_3y,all_upfront,0.761,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:53.038097 +AWS,ap-southeast-2,r5.4xlarge,reserved_3y,no_upfront,0.761,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:38.895130 +AWS,ap-southeast-2,r5.4xlarge,reserved_3y,partial_upfront,0.761,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:29.413168 +AWS,ap-southeast-2,r5.4xlarge,spot,NA,0.417206,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038969 +AWS,ap-southeast-2,r5.8xlarge,on_demand,NA,2.416,USD,AWS Pricing API,2025-11-30T09:01:05.228186 +AWS,ap-southeast-2,r5.8xlarge,reserved_1y,all_upfront,1.932543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:35.457954 +AWS,ap-southeast-2,r5.8xlarge,reserved_1y,no_upfront,1.932543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:17.803552 +AWS,ap-southeast-2,r5.8xlarge,reserved_1y,partial_upfront,1.932543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:01.150144 +AWS,ap-southeast-2,r5.8xlarge,reserved_3y,all_upfront,0.966181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:36.299281 +AWS,ap-southeast-2,r5.8xlarge,reserved_3y,no_upfront,0.966181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:21.570993 +AWS,ap-southeast-2,r5.8xlarge,reserved_3y,partial_upfront,0.966181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:12.437591 +AWS,ap-southeast-2,r5.8xlarge,spot,NA,0.818805,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038550 +AWS,ap-southeast-2,r5.large,on_demand,NA,0.151,USD,AWS Pricing API,2025-11-30T09:00:41.135970 +AWS,ap-southeast-2,r5.large,reserved_1y,all_upfront,0.109,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:11.622430 +AWS,ap-southeast-2,r5.large,reserved_1y,no_upfront,0.109,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:53.665597 +AWS,ap-southeast-2,r5.large,reserved_1y,partial_upfront,0.109,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:37.397224 +AWS,ap-southeast-2,r5.large,reserved_3y,all_upfront,0.109,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:12.960375 +AWS,ap-southeast-2,r5.large,reserved_3y,no_upfront,0.109,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:57.144087 +AWS,ap-southeast-2,r5.large,reserved_3y,partial_upfront,0.109,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:48.749333 +AWS,ap-southeast-2,r5.large,spot,NA,0.054206,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037830 +AWS,ap-southeast-2,r5.xlarge,on_demand,NA,0.302,USD,AWS Pricing API,2025-11-30T09:00:18.180718 +AWS,ap-southeast-2,r5.xlarge,reserved_1y,all_upfront,0.241164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:48.998958 +AWS,ap-southeast-2,r5.xlarge,reserved_1y,no_upfront,0.241164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:30.741748 +AWS,ap-southeast-2,r5.xlarge,reserved_1y,partial_upfront,0.241164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:14.855718 +AWS,ap-southeast-2,r5.xlarge,reserved_3y,all_upfront,0.120388,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:50.726320 +AWS,ap-southeast-2,r5.xlarge,reserved_3y,no_upfront,0.120388,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:33.975530 +AWS,ap-southeast-2,r5.xlarge,reserved_3y,partial_upfront,0.120388,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:26.223113 +AWS,ap-southeast-2,r5.xlarge,spot,NA,0.104724,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037200 +AWS,ap-southeast-2,r5a.12xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T09:01:13.481815 +AWS,ap-southeast-2,r5a.12xlarge,reserved_1y,all_upfront,3.681735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:43.564758 +AWS,ap-southeast-2,r5a.12xlarge,reserved_1y,no_upfront,3.681735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:26.052879 +AWS,ap-southeast-2,r5a.12xlarge,reserved_1y,partial_upfront,3.681735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:09.256085 +AWS,ap-southeast-2,r5a.12xlarge,reserved_3y,all_upfront,1.227245,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:44.274825 +AWS,ap-southeast-2,r5a.12xlarge,reserved_3y,no_upfront,1.227245,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:29.793775 +AWS,ap-southeast-2,r5a.12xlarge,reserved_3y,partial_upfront,1.227245,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:20.485084 +AWS,ap-southeast-2,r5a.12xlarge,spot,NA,1.469238,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038745 +AWS,ap-southeast-2,r5a.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T09:01:21.697977 +AWS,ap-southeast-2,r5a.16xlarge,reserved_1y,all_upfront,2.611594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:51.667582 +AWS,ap-southeast-2,r5a.16xlarge,reserved_1y,no_upfront,2.611594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:34.289267 +AWS,ap-southeast-2,r5a.16xlarge,reserved_1y,partial_upfront,2.611594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:17.378474 +AWS,ap-southeast-2,r5a.16xlarge,reserved_3y,all_upfront,1.741198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:52.241149 +AWS,ap-southeast-2,r5a.16xlarge,reserved_3y,no_upfront,1.741198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:38.074844 +AWS,ap-southeast-2,r5a.16xlarge,reserved_3y,partial_upfront,1.741198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:28.614975 +AWS,ap-southeast-2,r5a.16xlarge,spot,NA,1.578963,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038957 +AWS,ap-southeast-2,r5a.24xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T09:01:15.533340 +AWS,ap-southeast-2,r5a.24xlarge,reserved_1y,all_upfront,4.523986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:45.579820 +AWS,ap-southeast-2,r5a.24xlarge,reserved_1y,no_upfront,4.523986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:28.110858 +AWS,ap-southeast-2,r5a.24xlarge,reserved_1y,partial_upfront,4.523986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:11.299464 +AWS,ap-southeast-2,r5a.24xlarge,reserved_3y,all_upfront,3.015995,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:46.263378 +AWS,ap-southeast-2,r5a.24xlarge,reserved_3y,no_upfront,3.015995,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:31.858926 +AWS,ap-southeast-2,r5a.24xlarge,reserved_3y,partial_upfront,3.015995,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:22.508083 +AWS,ap-southeast-2,r5a.24xlarge,spot,NA,2.409614,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038757 +AWS,ap-southeast-2,r5a.2xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T09:01:26.336907 +AWS,ap-southeast-2,r5a.2xlarge,reserved_1y,all_upfront,0.43537,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:56.272397 +AWS,ap-southeast-2,r5a.2xlarge,reserved_1y,no_upfront,0.43537,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:38.921734 +AWS,ap-southeast-2,r5a.2xlarge,reserved_1y,partial_upfront,0.43537,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:21.972656 +AWS,ap-southeast-2,r5a.2xlarge,reserved_3y,all_upfront,0.21779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:56.757265 +AWS,ap-southeast-2,r5a.2xlarge,reserved_3y,no_upfront,0.21779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:42.765176 +AWS,ap-southeast-2,r5a.2xlarge,reserved_3y,partial_upfront,0.21779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:33.165304 +AWS,ap-southeast-2,r5a.2xlarge,spot,NA,0.242196,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039055 +AWS,ap-southeast-2,r5a.4xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T09:01:06.186166 +AWS,ap-southeast-2,r5a.4xlarge,reserved_1y,all_upfront,0.870854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:36.416423 +AWS,ap-southeast-2,r5a.4xlarge,reserved_1y,no_upfront,0.870854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:18.759357 +AWS,ap-southeast-2,r5a.4xlarge,reserved_1y,partial_upfront,0.870854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:02.104089 +AWS,ap-southeast-2,r5a.4xlarge,reserved_3y,all_upfront,0.435618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:37.245140 +AWS,ap-southeast-2,r5a.4xlarge,reserved_3y,no_upfront,0.435618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:22.528502 +AWS,ap-southeast-2,r5a.4xlarge,reserved_3y,partial_upfront,0.435618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:13.383857 +AWS,ap-southeast-2,r5a.4xlarge,spot,NA,0.470171,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038558 +AWS,ap-southeast-2,r5a.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T09:00:48.399061 +AWS,ap-southeast-2,r5a.8xlarge,reserved_1y,all_upfront,1.507995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:18.840592 +AWS,ap-southeast-2,r5a.8xlarge,reserved_1y,no_upfront,1.507995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:00.900353 +AWS,ap-southeast-2,r5a.8xlarge,reserved_1y,partial_upfront,1.507995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:44.540637 +AWS,ap-southeast-2,r5a.8xlarge,reserved_3y,all_upfront,1.005332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:20.013524 +AWS,ap-southeast-2,r5a.8xlarge,reserved_3y,no_upfront,1.005332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:04.527154 +AWS,ap-southeast-2,r5a.8xlarge,reserved_3y,partial_upfront,1.005332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:55.895689 +AWS,ap-southeast-2,r5a.8xlarge,spot,NA,0.847004,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038077 +AWS,ap-southeast-2,r5a.large,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T09:00:54.913814 +AWS,ap-southeast-2,r5a.large,reserved_1y,all_upfront,0.132315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:25.299874 +AWS,ap-southeast-2,r5a.large,reserved_1y,no_upfront,0.132315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:07.523246 +AWS,ap-southeast-2,r5a.large,reserved_1y,partial_upfront,0.132315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:50.999110 +AWS,ap-southeast-2,r5a.large,reserved_3y,all_upfront,0.066105,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:26.368653 +AWS,ap-southeast-2,r5a.large,reserved_3y,no_upfront,0.066105,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:11.235249 +AWS,ap-southeast-2,r5a.large,reserved_3y,partial_upfront,0.066105,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:02.371182 +AWS,ap-southeast-2,r5a.large,spot,NA,0.056899,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038225 +AWS,ap-southeast-2,r5a.xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T09:01:05.636016 +AWS,ap-southeast-2,r5a.xlarge,reserved_1y,all_upfront,0.159932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:35.861684 +AWS,ap-southeast-2,r5a.xlarge,reserved_1y,no_upfront,0.159932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:18.213182 +AWS,ap-southeast-2,r5a.xlarge,reserved_1y,partial_upfront,0.159932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:01.559068 +AWS,ap-southeast-2,r5a.xlarge,reserved_3y,all_upfront,0.053311,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:36.699507 +AWS,ap-southeast-2,r5a.xlarge,reserved_3y,no_upfront,0.053311,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:21.985246 +AWS,ap-southeast-2,r5a.xlarge,reserved_3y,partial_upfront,0.053311,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:12.837587 +AWS,ap-southeast-2,r5a.xlarge,spot,NA,0.115681,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038534 +AWS,ap-southeast-2,r5d.12xlarge,on_demand,NA,4.176,USD,AWS Pricing API,2025-11-30T09:01:19.089216 +AWS,ap-southeast-2,r5d.12xlarge,reserved_1y,all_upfront,1.804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:49.100062 +AWS,ap-southeast-2,r5d.12xlarge,reserved_1y,no_upfront,1.804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:31.686684 +AWS,ap-southeast-2,r5d.12xlarge,reserved_1y,partial_upfront,1.804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:14.818467 +AWS,ap-southeast-2,r5d.12xlarge,reserved_3y,all_upfront,1.804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:49.727260 +AWS,ap-southeast-2,r5d.12xlarge,reserved_3y,no_upfront,1.804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:35.452749 +AWS,ap-southeast-2,r5d.12xlarge,reserved_3y,partial_upfront,1.804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:26.046537 +AWS,ap-southeast-2,r5d.12xlarge,spot,NA,1.462695,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038871 +AWS,ap-southeast-2,r5d.16xlarge,on_demand,NA,5.568,USD,AWS Pricing API,2025-11-30T09:00:43.442648 +AWS,ap-southeast-2,r5d.16xlarge,reserved_1y,all_upfront,3.273973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:13.928625 +AWS,ap-southeast-2,r5d.16xlarge,reserved_1y,no_upfront,3.273973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:55.986077 +AWS,ap-southeast-2,r5d.16xlarge,reserved_1y,partial_upfront,3.273973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:39.684141 +AWS,ap-southeast-2,r5d.16xlarge,reserved_3y,all_upfront,1.091324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:15.209093 +AWS,ap-southeast-2,r5d.16xlarge,reserved_3y,no_upfront,1.091324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:59.470621 +AWS,ap-southeast-2,r5d.16xlarge,reserved_3y,partial_upfront,1.091324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:51.030412 +AWS,ap-southeast-2,r5d.16xlarge,spot,NA,1.956516,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037901 +AWS,ap-southeast-2,r5d.24xlarge,on_demand,NA,8.352,USD,AWS Pricing API,2025-11-30T09:01:13.621831 +AWS,ap-southeast-2,r5d.24xlarge,reserved_1y,all_upfront,8.031744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:43.700618 +AWS,ap-southeast-2,r5d.24xlarge,reserved_1y,no_upfront,8.031744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:26.187362 +AWS,ap-southeast-2,r5d.24xlarge,reserved_1y,partial_upfront,8.031744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:09.400041 +AWS,ap-southeast-2,r5d.24xlarge,reserved_3y,all_upfront,4.015915,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:44.410742 +AWS,ap-southeast-2,r5d.24xlarge,reserved_3y,no_upfront,4.015915,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:29.932040 +AWS,ap-southeast-2,r5d.24xlarge,reserved_3y,partial_upfront,4.015915,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:20.621562 +AWS,ap-southeast-2,r5d.24xlarge,spot,NA,2.819874,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038741 +AWS,ap-southeast-2,r5d.2xlarge,on_demand,NA,0.696,USD,AWS Pricing API,2025-11-30T09:01:12.252920 +AWS,ap-southeast-2,r5d.2xlarge,reserved_1y,all_upfront,0.438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:42.351567 +AWS,ap-southeast-2,r5d.2xlarge,reserved_1y,no_upfront,0.438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:24.803928 +AWS,ap-southeast-2,r5d.2xlarge,reserved_1y,partial_upfront,0.438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:08.030773 +AWS,ap-southeast-2,r5d.2xlarge,reserved_3y,all_upfront,0.438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:43.089419 +AWS,ap-southeast-2,r5d.2xlarge,reserved_3y,no_upfront,0.438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:28.574986 +AWS,ap-southeast-2,r5d.2xlarge,reserved_3y,partial_upfront,0.438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:19.274132 +AWS,ap-southeast-2,r5d.2xlarge,spot,NA,0.31066,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038709 +AWS,ap-southeast-2,r5d.4xlarge,on_demand,NA,1.392,USD,AWS Pricing API,2025-11-30T09:00:42.895194 +AWS,ap-southeast-2,r5d.4xlarge,reserved_1y,all_upfront,1.570205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:13.382645 +AWS,ap-southeast-2,r5d.4xlarge,reserved_1y,no_upfront,1.570205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:55.441510 +AWS,ap-southeast-2,r5d.4xlarge,reserved_1y,partial_upfront,1.570205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:39.145000 +AWS,ap-southeast-2,r5d.4xlarge,reserved_3y,all_upfront,0.523402,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:14.684862 +AWS,ap-southeast-2,r5d.4xlarge,reserved_3y,no_upfront,0.523402,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:58.920461 +AWS,ap-southeast-2,r5d.4xlarge,reserved_3y,partial_upfront,0.523402,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:50.495364 +AWS,ap-southeast-2,r5d.4xlarge,spot,NA,0.52782,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037873 +AWS,ap-southeast-2,r5d.8xlarge,on_demand,NA,2.784,USD,AWS Pricing API,2025-11-30T09:00:42.487377 +AWS,ap-southeast-2,r5d.8xlarge,reserved_1y,all_upfront,3.935502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:12.973504 +AWS,ap-southeast-2,r5d.8xlarge,reserved_1y,no_upfront,3.935502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:55.031310 +AWS,ap-southeast-2,r5d.8xlarge,reserved_1y,partial_upfront,3.935502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:38.744752 +AWS,ap-southeast-2,r5d.8xlarge,reserved_3y,all_upfront,1.311834,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:14.283696 +AWS,ap-southeast-2,r5d.8xlarge,reserved_3y,no_upfront,1.311834,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:58.508432 +AWS,ap-southeast-2,r5d.8xlarge,reserved_3y,partial_upfront,1.311834,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:50.090243 +AWS,ap-southeast-2,r5d.8xlarge,spot,NA,1.046957,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037834 +AWS,ap-southeast-2,r5d.large,on_demand,NA,0.174,USD,AWS Pricing API,2025-11-30T09:01:07.432385 +AWS,ap-southeast-2,r5d.large,reserved_1y,all_upfront,0.09,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:37.628768 +AWS,ap-southeast-2,r5d.large,reserved_1y,no_upfront,0.09,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:20.005919 +AWS,ap-southeast-2,r5d.large,reserved_1y,partial_upfront,0.09,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:03.321562 +AWS,ap-southeast-2,r5d.large,reserved_3y,all_upfront,0.09,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:38.438538 +AWS,ap-southeast-2,r5d.large,reserved_3y,no_upfront,0.09,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:23.770793 +AWS,ap-southeast-2,r5d.large,reserved_3y,partial_upfront,0.09,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:14.594346 +AWS,ap-southeast-2,r5d.large,spot,NA,0.069913,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038593 +AWS,ap-southeast-2,r5d.xlarge,on_demand,NA,0.348,USD,AWS Pricing API,2025-11-30T09:00:24.732494 +AWS,ap-southeast-2,r5d.xlarge,reserved_1y,all_upfront,0.237215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:55.366305 +AWS,ap-southeast-2,r5d.xlarge,reserved_1y,no_upfront,0.237215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:37.251207 +AWS,ap-southeast-2,r5d.xlarge,reserved_1y,partial_upfront,0.237215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:21.211284 +AWS,ap-southeast-2,r5d.xlarge,reserved_3y,all_upfront,0.079072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:56.957806 +AWS,ap-southeast-2,r5d.xlarge,reserved_3y,no_upfront,0.079072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:40.465335 +AWS,ap-southeast-2,r5d.xlarge,reserved_3y,partial_upfront,0.079072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:32.519339 +AWS,ap-southeast-2,r5d.xlarge,spot,NA,0.167816,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037361 +AWS,ap-southeast-2,r5dn.12xlarge,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T09:00:27.614129 +AWS,ap-southeast-2,r5dn.12xlarge,reserved_1y,all_upfront,2.878881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:58.209650 +AWS,ap-southeast-2,r5dn.12xlarge,reserved_1y,no_upfront,2.878881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:40.135470 +AWS,ap-southeast-2,r5dn.12xlarge,reserved_1y,partial_upfront,2.878881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:24.039016 +AWS,ap-southeast-2,r5dn.12xlarge,reserved_3y,all_upfront,0.959627,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:59.743958 +AWS,ap-southeast-2,r5dn.12xlarge,reserved_3y,no_upfront,0.959627,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:43.394683 +AWS,ap-southeast-2,r5dn.12xlarge,reserved_3y,partial_upfront,0.959627,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:35.397673 +AWS,ap-southeast-2,r5dn.12xlarge,spot,NA,1.985105,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037413 +AWS,ap-southeast-2,r5dn.16xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T09:00:38.120213 +AWS,ap-southeast-2,r5dn.16xlarge,reserved_1y,all_upfront,8.367808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:08.653351 +AWS,ap-southeast-2,r5dn.16xlarge,reserved_1y,no_upfront,8.367808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:50.675298 +AWS,ap-southeast-2,r5dn.16xlarge,reserved_1y,partial_upfront,8.367808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:34.421884 +AWS,ap-southeast-2,r5dn.16xlarge,reserved_3y,all_upfront,2.789269,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:10.059773 +AWS,ap-southeast-2,r5dn.16xlarge,reserved_3y,no_upfront,2.789269,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:54.103161 +AWS,ap-southeast-2,r5dn.16xlarge,reserved_3y,partial_upfront,2.789269,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:45.773644 +AWS,ap-southeast-2,r5dn.16xlarge,spot,NA,2.478685,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037722 +AWS,ap-southeast-2,r5dn.24xlarge,on_demand,NA,9.792,USD,AWS Pricing API,2025-11-30T09:00:49.747147 +AWS,ap-southeast-2,r5dn.24xlarge,reserved_1y,all_upfront,7.422361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:20.174031 +AWS,ap-southeast-2,r5dn.24xlarge,reserved_1y,no_upfront,7.422361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:02.317834 +AWS,ap-southeast-2,r5dn.24xlarge,reserved_1y,partial_upfront,7.422361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:45.891973 +AWS,ap-southeast-2,r5dn.24xlarge,reserved_3y,all_upfront,3.711174,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:21.337918 +AWS,ap-southeast-2,r5dn.24xlarge,reserved_3y,no_upfront,3.711174,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:05.899542 +AWS,ap-southeast-2,r5dn.24xlarge,reserved_3y,partial_upfront,3.711174,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:57.241507 +AWS,ap-southeast-2,r5dn.24xlarge,spot,NA,3.622691,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038112 +AWS,ap-southeast-2,r5dn.2xlarge,on_demand,NA,0.816,USD,AWS Pricing API,2025-11-30T09:00:55.050152 +AWS,ap-southeast-2,r5dn.2xlarge,reserved_1y,all_upfront,0.872146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:25.435298 +AWS,ap-southeast-2,r5dn.2xlarge,reserved_1y,no_upfront,0.872146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:07.657372 +AWS,ap-southeast-2,r5dn.2xlarge,reserved_1y,partial_upfront,0.872146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:51.132168 +AWS,ap-southeast-2,r5dn.2xlarge,reserved_3y,all_upfront,0.290715,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:26.501051 +AWS,ap-southeast-2,r5dn.2xlarge,reserved_3y,no_upfront,0.290715,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:11.374823 +AWS,ap-southeast-2,r5dn.2xlarge,reserved_3y,partial_upfront,0.290715,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:02.507088 +AWS,ap-southeast-2,r5dn.2xlarge,spot,NA,0.358281,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038267 +AWS,ap-southeast-2,r5dn.4xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T09:00:18.876433 +AWS,ap-southeast-2,r5dn.4xlarge,reserved_1y,all_upfront,1.139091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:49.674012 +AWS,ap-southeast-2,r5dn.4xlarge,reserved_1y,no_upfront,1.139091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:31.424062 +AWS,ap-southeast-2,r5dn.4xlarge,reserved_1y,partial_upfront,1.139091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:15.536694 +AWS,ap-southeast-2,r5dn.4xlarge,reserved_3y,all_upfront,0.75941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:51.383885 +AWS,ap-southeast-2,r5dn.4xlarge,reserved_3y,no_upfront,0.75941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:34.668501 +AWS,ap-southeast-2,r5dn.4xlarge,reserved_3y,partial_upfront,0.75941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:26.894339 +AWS,ap-southeast-2,r5dn.4xlarge,spot,NA,0.636729,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037204 +AWS,ap-southeast-2,r5dn.8xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T09:01:18.822875 +AWS,ap-southeast-2,r5dn.8xlarge,reserved_1y,all_upfront,2.278295,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:48.829752 +AWS,ap-southeast-2,r5dn.8xlarge,reserved_1y,no_upfront,2.278295,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:31.407134 +AWS,ap-southeast-2,r5dn.8xlarge,reserved_1y,partial_upfront,2.278295,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:14.550310 +AWS,ap-southeast-2,r5dn.8xlarge,reserved_3y,all_upfront,1.518858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:49.464748 +AWS,ap-southeast-2,r5dn.8xlarge,reserved_3y,no_upfront,1.518858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:35.173426 +AWS,ap-southeast-2,r5dn.8xlarge,reserved_3y,partial_upfront,1.518858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:25.777516 +AWS,ap-southeast-2,r5dn.8xlarge,spot,NA,1.372815,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038887 +AWS,ap-southeast-2,r5dn.large,on_demand,NA,0.204,USD,AWS Pricing API,2025-11-30T09:00:28.712565 +AWS,ap-southeast-2,r5dn.large,reserved_1y,all_upfront,0.14951,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:59.294219 +AWS,ap-southeast-2,r5dn.large,reserved_1y,no_upfront,0.14951,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:41.233710 +AWS,ap-southeast-2,r5dn.large,reserved_1y,partial_upfront,0.14951,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:25.120276 +AWS,ap-southeast-2,r5dn.large,reserved_3y,all_upfront,0.14951,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:00.806169 +AWS,ap-southeast-2,r5dn.large,reserved_3y,no_upfront,0.14951,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:44.488171 +AWS,ap-southeast-2,r5dn.large,reserved_3y,partial_upfront,0.14951,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:36.480394 +AWS,ap-southeast-2,r5dn.large,spot,NA,0.069482,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037466 +AWS,ap-southeast-2,r5dn.metal,on_demand,NA,9.792,USD,AWS Pricing API,2025-11-30T09:00:16.453750 +AWS,ap-southeast-2,r5dn.metal,reserved_1y,all_upfront,6.834762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:47.378750 +AWS,ap-southeast-2,r5dn.metal,reserved_1y,no_upfront,6.834762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:29.090825 +AWS,ap-southeast-2,r5dn.metal,reserved_1y,partial_upfront,6.834762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:13.235231 +AWS,ap-southeast-2,r5dn.metal,reserved_3y,all_upfront,4.556527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:49.130232 +AWS,ap-southeast-2,r5dn.metal,reserved_3y,no_upfront,4.556527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:32.339767 +AWS,ap-southeast-2,r5dn.metal,reserved_3y,partial_upfront,4.556527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:24.601990 +AWS,ap-southeast-2,r5dn.metal,spot,NA,3.424298,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037134 +AWS,ap-southeast-2,r5dn.xlarge,on_demand,NA,0.408,USD,AWS Pricing API,2025-11-30T09:00:40.174113 +AWS,ap-southeast-2,r5dn.xlarge,reserved_1y,all_upfront,0.244774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:10.677222 +AWS,ap-southeast-2,r5dn.xlarge,reserved_1y,no_upfront,0.244774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:52.722187 +AWS,ap-southeast-2,r5dn.xlarge,reserved_1y,partial_upfront,0.244774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:36.452575 +AWS,ap-southeast-2,r5dn.xlarge,reserved_3y,all_upfront,0.163191,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:12.035807 +AWS,ap-southeast-2,r5dn.xlarge,reserved_3y,no_upfront,0.163191,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:56.176629 +AWS,ap-southeast-2,r5dn.xlarge,reserved_3y,partial_upfront,0.163191,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:47.799595 +AWS,ap-southeast-2,r5dn.xlarge,spot,NA,0.19638,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037803 +AWS,ap-southeast-2,r5n.12xlarge,on_demand,NA,4.344,USD,AWS Pricing API,2025-11-30T09:01:03.026851 +AWS,ap-southeast-2,r5n.12xlarge,reserved_1y,all_upfront,5.517237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:33.285811 +AWS,ap-southeast-2,r5n.12xlarge,reserved_1y,no_upfront,5.517237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:15.598728 +AWS,ap-southeast-2,r5n.12xlarge,reserved_1y,partial_upfront,5.517237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:58.971101 +AWS,ap-southeast-2,r5n.12xlarge,reserved_3y,all_upfront,1.839079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:34.179009 +AWS,ap-southeast-2,r5n.12xlarge,reserved_3y,no_upfront,1.839079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:19.376648 +AWS,ap-southeast-2,r5n.12xlarge,reserved_3y,partial_upfront,1.839079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:10.297745 +AWS,ap-southeast-2,r5n.12xlarge,spot,NA,1.698944,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038461 +AWS,ap-southeast-2,r5n.16xlarge,on_demand,NA,5.792,USD,AWS Pricing API,2025-11-30T09:01:18.416365 +AWS,ap-southeast-2,r5n.16xlarge,reserved_1y,all_upfront,7.356279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:48.424704 +AWS,ap-southeast-2,r5n.16xlarge,reserved_1y,no_upfront,7.356279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:30.993963 +AWS,ap-southeast-2,r5n.16xlarge,reserved_1y,partial_upfront,7.356279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:14.144708 +AWS,ap-southeast-2,r5n.16xlarge,reserved_3y,all_upfront,2.452093,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:49.059664 +AWS,ap-southeast-2,r5n.16xlarge,reserved_3y,no_upfront,2.452093,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:34.760189 +AWS,ap-southeast-2,r5n.16xlarge,reserved_3y,partial_upfront,2.452093,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:25.366962 +AWS,ap-southeast-2,r5n.16xlarge,spot,NA,2.291982,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038898 +AWS,ap-southeast-2,r5n.24xlarge,on_demand,NA,8.688,USD,AWS Pricing API,2025-11-30T09:00:39.757920 +AWS,ap-southeast-2,r5n.24xlarge,reserved_1y,all_upfront,3.519,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:10.270514 +AWS,ap-southeast-2,r5n.24xlarge,reserved_1y,no_upfront,3.519,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:52.311737 +AWS,ap-southeast-2,r5n.24xlarge,reserved_1y,partial_upfront,3.519,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:36.050704 +AWS,ap-southeast-2,r5n.24xlarge,reserved_3y,all_upfront,3.519,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:11.642611 +AWS,ap-southeast-2,r5n.24xlarge,reserved_3y,no_upfront,3.519,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:55.758980 +AWS,ap-southeast-2,r5n.24xlarge,reserved_3y,partial_upfront,3.519,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:47.401583 +AWS,ap-southeast-2,r5n.24xlarge,spot,NA,3.652819,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037763 +AWS,ap-southeast-2,r5n.2xlarge,on_demand,NA,0.724,USD,AWS Pricing API,2025-11-30T09:00:20.388669 +AWS,ap-southeast-2,r5n.2xlarge,reserved_1y,all_upfront,0.528,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:51.151575 +AWS,ap-southeast-2,r5n.2xlarge,reserved_1y,no_upfront,0.528,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:32.948851 +AWS,ap-southeast-2,r5n.2xlarge,reserved_1y,partial_upfront,0.528,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:17.040713 +AWS,ap-southeast-2,r5n.2xlarge,reserved_3y,all_upfront,0.528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:52.833852 +AWS,ap-southeast-2,r5n.2xlarge,reserved_3y,no_upfront,0.528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:36.192231 +AWS,ap-southeast-2,r5n.2xlarge,reserved_3y,partial_upfront,0.528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:28.363104 +AWS,ap-southeast-2,r5n.2xlarge,spot,NA,0.292097,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037250 +AWS,ap-southeast-2,r5n.4xlarge,on_demand,NA,1.448,USD,AWS Pricing API,2025-11-30T09:01:16.898292 +AWS,ap-southeast-2,r5n.4xlarge,reserved_1y,all_upfront,1.839041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:46.949800 +AWS,ap-southeast-2,r5n.4xlarge,reserved_1y,no_upfront,1.839041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:29.478943 +AWS,ap-southeast-2,r5n.4xlarge,reserved_1y,partial_upfront,1.839041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:12.665707 +AWS,ap-southeast-2,r5n.4xlarge,reserved_3y,all_upfront,0.613014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:47.591309 +AWS,ap-southeast-2,r5n.4xlarge,reserved_3y,no_upfront,0.613014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:33.243932 +AWS,ap-southeast-2,r5n.4xlarge,reserved_3y,partial_upfront,0.613014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:23.865924 +AWS,ap-southeast-2,r5n.4xlarge,spot,NA,0.631071,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038805 +AWS,ap-southeast-2,r5n.8xlarge,on_demand,NA,2.896,USD,AWS Pricing API,2025-11-30T09:01:02.885806 +AWS,ap-southeast-2,r5n.8xlarge,reserved_1y,all_upfront,1.737836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:33.151162 +AWS,ap-southeast-2,r5n.8xlarge,reserved_1y,no_upfront,1.737836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:15.458476 +AWS,ap-southeast-2,r5n.8xlarge,reserved_1y,partial_upfront,1.737836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:58.821477 +AWS,ap-southeast-2,r5n.8xlarge,reserved_3y,all_upfront,1.158612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:34.048479 +AWS,ap-southeast-2,r5n.8xlarge,reserved_3y,no_upfront,1.158612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:19.240927 +AWS,ap-southeast-2,r5n.8xlarge,reserved_3y,partial_upfront,1.158612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:10.163540 +AWS,ap-southeast-2,r5n.8xlarge,spot,NA,1.496448,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038465 +AWS,ap-southeast-2,r5n.large,on_demand,NA,0.181,USD,AWS Pricing API,2025-11-30T09:01:24.300967 +AWS,ap-southeast-2,r5n.large,reserved_1y,all_upfront,0.132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:54.239791 +AWS,ap-southeast-2,r5n.large,reserved_1y,no_upfront,0.132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:36.875068 +AWS,ap-southeast-2,r5n.large,reserved_1y,partial_upfront,0.132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:19.956289 +AWS,ap-southeast-2,r5n.large,reserved_3y,all_upfront,0.132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:54.759172 +AWS,ap-southeast-2,r5n.large,reserved_3y,no_upfront,0.132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:40.695011 +AWS,ap-southeast-2,r5n.large,reserved_3y,partial_upfront,0.132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:31.150817 +AWS,ap-southeast-2,r5n.large,spot,NA,0.06628,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039015 +AWS,ap-southeast-2,r5n.metal,on_demand,NA,8.688,USD,AWS Pricing API,2025-11-30T09:01:03.858407 +AWS,ap-southeast-2,r5n.metal,reserved_1y,all_upfront,5.212393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:34.100719 +AWS,ap-southeast-2,r5n.metal,reserved_1y,no_upfront,5.212393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:16.427366 +AWS,ap-southeast-2,r5n.metal,reserved_1y,partial_upfront,5.212393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:59.779277 +AWS,ap-southeast-2,r5n.metal,reserved_3y,all_upfront,3.474798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:34.990844 +AWS,ap-southeast-2,r5n.metal,reserved_3y,no_upfront,3.474798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:20.200111 +AWS,ap-southeast-2,r5n.metal,reserved_3y,partial_upfront,3.474798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:11.098528 +AWS,ap-southeast-2,r5n.metal,spot,NA,2.941772,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038501 +AWS,ap-southeast-2,r5n.xlarge,on_demand,NA,0.362,USD,AWS Pricing API,2025-11-30T09:00:41.810813 +AWS,ap-southeast-2,r5n.xlarge,reserved_1y,all_upfront,0.251571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:12.295529 +AWS,ap-southeast-2,r5n.xlarge,reserved_1y,no_upfront,0.251571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:54.346763 +AWS,ap-southeast-2,r5n.xlarge,reserved_1y,partial_upfront,0.251571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:38.066628 +AWS,ap-southeast-2,r5n.xlarge,reserved_3y,all_upfront,0.167857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:13.616956 +AWS,ap-southeast-2,r5n.xlarge,reserved_3y,no_upfront,0.167857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:57.825993 +AWS,ap-southeast-2,r5n.xlarge,reserved_3y,partial_upfront,0.167857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:49.417457 +AWS,ap-southeast-2,r5n.xlarge,spot,NA,0.172178,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037861 +AWS,ap-southeast-2,r6g.12xlarge,on_demand,NA,2.8992,USD,AWS Pricing API,2025-11-30T09:00:35.009977 +AWS,ap-southeast-2,r6g.12xlarge,reserved_1y,all_upfront,2.319298,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:05.540124 +AWS,ap-southeast-2,r6g.12xlarge,reserved_1y,no_upfront,2.319298,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:47.529953 +AWS,ap-southeast-2,r6g.12xlarge,reserved_1y,partial_upfront,2.319298,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:31.329147 +AWS,ap-southeast-2,r6g.12xlarge,reserved_3y,all_upfront,1.159633,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:07.004501 +AWS,ap-southeast-2,r6g.12xlarge,reserved_3y,no_upfront,1.159633,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:50.916281 +AWS,ap-southeast-2,r6g.12xlarge,reserved_3y,partial_upfront,1.159633,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:42.675674 +AWS,ap-southeast-2,r6g.12xlarge,spot,NA,0.963303,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037651 +AWS,ap-southeast-2,r6g.16xlarge,on_demand,NA,3.8656,USD,AWS Pricing API,2025-11-30T09:00:31.865003 +AWS,ap-southeast-2,r6g.16xlarge,reserved_1y,all_upfront,2.4353,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:02.419261 +AWS,ap-southeast-2,r6g.16xlarge,reserved_1y,no_upfront,2.4353,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:44.384030 +AWS,ap-southeast-2,r6g.16xlarge,reserved_1y,partial_upfront,2.4353,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:28.214188 +AWS,ap-southeast-2,r6g.16xlarge,reserved_3y,all_upfront,2.4353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:03.900585 +AWS,ap-southeast-2,r6g.16xlarge,reserved_3y,no_upfront,2.4353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:47.725904 +AWS,ap-southeast-2,r6g.16xlarge,reserved_3y,partial_upfront,2.4353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:39.580843 +AWS,ap-southeast-2,r6g.16xlarge,spot,NA,1.303276,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037577 +AWS,ap-southeast-2,r6g.2xlarge,on_demand,NA,0.4832,USD,AWS Pricing API,2025-11-30T09:01:25.245417 +AWS,ap-southeast-2,r6g.2xlarge,reserved_1y,all_upfront,0.32637,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:55.176417 +AWS,ap-southeast-2,r6g.2xlarge,reserved_1y,no_upfront,0.32637,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:37.825826 +AWS,ap-southeast-2,r6g.2xlarge,reserved_1y,partial_upfront,0.32637,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:20.887673 +AWS,ap-southeast-2,r6g.2xlarge,reserved_3y,all_upfront,0.10879,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:55.692567 +AWS,ap-southeast-2,r6g.2xlarge,reserved_3y,no_upfront,0.10879,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:41.663472 +AWS,ap-southeast-2,r6g.2xlarge,reserved_3y,partial_upfront,0.10879,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:32.083881 +AWS,ap-southeast-2,r6g.2xlarge,spot,NA,0.182337,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039059 +AWS,ap-southeast-2,r6g.4xlarge,on_demand,NA,0.9664,USD,AWS Pricing API,2025-11-30T09:00:21.497270 +AWS,ap-southeast-2,r6g.4xlarge,reserved_1y,all_upfront,0.6992,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:52.240877 +AWS,ap-southeast-2,r6g.4xlarge,reserved_1y,no_upfront,0.6992,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:34.056989 +AWS,ap-southeast-2,r6g.4xlarge,reserved_1y,partial_upfront,0.6992,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:18.115942 +AWS,ap-southeast-2,r6g.4xlarge,reserved_3y,all_upfront,0.6992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:53.886477 +AWS,ap-southeast-2,r6g.4xlarge,reserved_3y,no_upfront,0.6992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:37.287134 +AWS,ap-southeast-2,r6g.4xlarge,reserved_3y,partial_upfront,0.6992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:29.443852 +AWS,ap-southeast-2,r6g.4xlarge,spot,NA,0.384338,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037270 +AWS,ap-southeast-2,r6g.8xlarge,on_demand,NA,1.9328,USD,AWS Pricing API,2025-11-30T09:01:00.804628 +AWS,ap-southeast-2,r6g.8xlarge,reserved_1y,all_upfront,1.159595,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:31.126510 +AWS,ap-southeast-2,r6g.8xlarge,reserved_1y,no_upfront,1.159595,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:13.412762 +AWS,ap-southeast-2,r6g.8xlarge,reserved_1y,partial_upfront,1.159595,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:56.796691 +AWS,ap-southeast-2,r6g.8xlarge,reserved_3y,all_upfront,0.773065,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:32.052183 +AWS,ap-southeast-2,r6g.8xlarge,reserved_3y,no_upfront,0.773065,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:17.177580 +AWS,ap-southeast-2,r6g.8xlarge,reserved_3y,partial_upfront,0.773065,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:08.148851 +AWS,ap-southeast-2,r6g.8xlarge,spot,NA,0.64601,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038417 +AWS,ap-southeast-2,r6g.large,on_demand,NA,0.1208,USD,AWS Pricing API,2025-11-30T09:00:39.209689 +AWS,ap-southeast-2,r6g.large,reserved_1y,all_upfront,0.081621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:09.733774 +AWS,ap-southeast-2,r6g.large,reserved_1y,no_upfront,0.081621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:51.764980 +AWS,ap-southeast-2,r6g.large,reserved_1y,partial_upfront,0.081621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:35.505006 +AWS,ap-southeast-2,r6g.large,reserved_3y,all_upfront,0.027207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:11.113284 +AWS,ap-southeast-2,r6g.large,reserved_3y,no_upfront,0.027207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:55.209708 +AWS,ap-southeast-2,r6g.large,reserved_3y,partial_upfront,0.027207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:46.861391 +AWS,ap-southeast-2,r6g.large,spot,NA,0.045445,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037791 +AWS,ap-southeast-2,r6g.xlarge,on_demand,NA,0.2416,USD,AWS Pricing API,2025-11-30T09:00:14.259497 +AWS,ap-southeast-2,r6g.xlarge,reserved_1y,all_upfront,0.1748,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:45.215439 +AWS,ap-southeast-2,r6g.xlarge,reserved_1y,no_upfront,0.1748,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:26.899019 +AWS,ap-southeast-2,r6g.xlarge,reserved_1y,partial_upfront,0.1748,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:11.088039 +AWS,ap-southeast-2,r6g.xlarge,reserved_3y,all_upfront,0.1748,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:47.020930 +AWS,ap-southeast-2,r6g.xlarge,reserved_3y,no_upfront,0.1748,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:30.143656 +AWS,ap-southeast-2,r6g.xlarge,reserved_3y,partial_upfront,0.1748,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:22.459203 +AWS,ap-southeast-2,r6g.xlarge,spot,NA,0.09133,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037096 +AWS,ap-southeast-2,r6gd.12xlarge,on_demand,NA,3.336,USD,AWS Pricing API,2025-11-30T09:01:11.423975 +AWS,ap-southeast-2,r6gd.12xlarge,reserved_1y,all_upfront,2.4443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:41.544828 +AWS,ap-southeast-2,r6gd.12xlarge,reserved_1y,no_upfront,2.4443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:23.968564 +AWS,ap-southeast-2,r6gd.12xlarge,reserved_1y,partial_upfront,2.4443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:07.228986 +AWS,ap-southeast-2,r6gd.12xlarge,reserved_3y,all_upfront,2.4443,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:42.292226 +AWS,ap-southeast-2,r6gd.12xlarge,reserved_3y,no_upfront,2.4443,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:27.757656 +AWS,ap-southeast-2,r6gd.12xlarge,reserved_3y,partial_upfront,2.4443,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:18.477843 +AWS,ap-southeast-2,r6gd.12xlarge,spot,NA,1.458666,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038673 +AWS,ap-southeast-2,r6gd.16xlarge,on_demand,NA,4.448,USD,AWS Pricing API,2025-11-30T09:00:37.712341 +AWS,ap-southeast-2,r6gd.16xlarge,reserved_1y,all_upfront,6.303196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:08.250242 +AWS,ap-southeast-2,r6gd.16xlarge,reserved_1y,no_upfront,6.303196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:50.265302 +AWS,ap-southeast-2,r6gd.16xlarge,reserved_1y,partial_upfront,6.303196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:34.021284 +AWS,ap-southeast-2,r6gd.16xlarge,reserved_3y,all_upfront,2.101065,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:09.654187 +AWS,ap-southeast-2,r6gd.16xlarge,reserved_3y,no_upfront,2.101065,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:53.688348 +AWS,ap-southeast-2,r6gd.16xlarge,reserved_3y,partial_upfront,2.101065,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:45.366550 +AWS,ap-southeast-2,r6gd.16xlarge,spot,NA,1.7717,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037743 +AWS,ap-southeast-2,r6gd.2xlarge,on_demand,NA,0.556,USD,AWS Pricing API,2025-11-30T09:00:15.751218 +AWS,ap-southeast-2,r6gd.2xlarge,reserved_1y,all_upfront,0.7879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:46.696076 +AWS,ap-southeast-2,r6gd.2xlarge,reserved_1y,no_upfront,0.7879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:28.399991 +AWS,ap-southeast-2,r6gd.2xlarge,reserved_1y,partial_upfront,0.7879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:12.563553 +AWS,ap-southeast-2,r6gd.2xlarge,reserved_3y,all_upfront,0.262633,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:48.465877 +AWS,ap-southeast-2,r6gd.2xlarge,reserved_3y,no_upfront,0.262633,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:31.652857 +AWS,ap-southeast-2,r6gd.2xlarge,reserved_3y,partial_upfront,0.262633,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:23.937235 +AWS,ap-southeast-2,r6gd.2xlarge,spot,NA,0.24427,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037113 +AWS,ap-southeast-2,r6gd.4xlarge,on_demand,NA,1.112,USD,AWS Pricing API,2025-11-30T09:00:22.474556 +AWS,ap-southeast-2,r6gd.4xlarge,reserved_1y,all_upfront,0.896032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:53.191790 +AWS,ap-southeast-2,r6gd.4xlarge,reserved_1y,no_upfront,0.896032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:35.045189 +AWS,ap-southeast-2,r6gd.4xlarge,reserved_1y,partial_upfront,0.896032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:19.055801 +AWS,ap-southeast-2,r6gd.4xlarge,reserved_3y,all_upfront,0.448011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:54.823370 +AWS,ap-southeast-2,r6gd.4xlarge,reserved_3y,no_upfront,0.448011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:38.258977 +AWS,ap-southeast-2,r6gd.4xlarge,reserved_3y,partial_upfront,0.448011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:30.379612 +AWS,ap-southeast-2,r6gd.4xlarge,spot,NA,0.582203,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037325 +AWS,ap-southeast-2,r6gd.8xlarge,on_demand,NA,2.224,USD,AWS Pricing API,2025-11-30T09:00:16.590508 +AWS,ap-southeast-2,r6gd.8xlarge,reserved_1y,all_upfront,1.344032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:47.511791 +AWS,ap-southeast-2,r6gd.8xlarge,reserved_1y,no_upfront,1.344032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:29.229029 +AWS,ap-southeast-2,r6gd.8xlarge,reserved_1y,partial_upfront,1.344032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:13.370251 +AWS,ap-southeast-2,r6gd.8xlarge,reserved_3y,all_upfront,0.896011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:49.262355 +AWS,ap-southeast-2,r6gd.8xlarge,reserved_3y,no_upfront,0.896011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:32.478410 +AWS,ap-southeast-2,r6gd.8xlarge,reserved_3y,partial_upfront,0.896011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:24.743225 +AWS,ap-southeast-2,r6gd.8xlarge,spot,NA,1.074747,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037166 +AWS,ap-southeast-2,r6gd.large,on_demand,NA,0.139,USD,AWS Pricing API,2025-11-30T09:00:52.605645 +AWS,ap-southeast-2,r6gd.large,reserved_1y,all_upfront,0.084009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:22.998275 +AWS,ap-southeast-2,r6gd.large,reserved_1y,no_upfront,0.084009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:05.200991 +AWS,ap-southeast-2,r6gd.large,reserved_1y,partial_upfront,0.084009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:48.717261 +AWS,ap-southeast-2,r6gd.large,reserved_3y,all_upfront,0.056003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:24.110976 +AWS,ap-southeast-2,r6gd.large,reserved_3y,no_upfront,0.056003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:08.785922 +AWS,ap-southeast-2,r6gd.large,reserved_3y,partial_upfront,0.056003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:00.068811 +AWS,ap-southeast-2,r6gd.large,spot,NA,0.049735,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038165 +AWS,ap-southeast-2,r6gd.xlarge,on_demand,NA,0.278,USD,AWS Pricing API,2025-11-30T09:00:36.629085 +AWS,ap-southeast-2,r6gd.xlarge,reserved_1y,all_upfront,0.164612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:07.171006 +AWS,ap-southeast-2,r6gd.xlarge,reserved_1y,no_upfront,0.164612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:49.164015 +AWS,ap-southeast-2,r6gd.xlarge,reserved_1y,partial_upfront,0.164612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:32.927328 +AWS,ap-southeast-2,r6gd.xlarge,reserved_3y,all_upfront,0.054871,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:08.585546 +AWS,ap-southeast-2,r6gd.xlarge,reserved_3y,no_upfront,0.054871,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:52.569263 +AWS,ap-southeast-2,r6gd.xlarge,reserved_3y,partial_upfront,0.054871,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:44.288361 +AWS,ap-southeast-2,r6gd.xlarge,spot,NA,0.123453,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037703 +AWS,ap-southeast-2,r6i.12xlarge,on_demand,NA,3.624,USD,AWS Pricing API,2025-11-30T09:01:17.172698 +AWS,ap-southeast-2,r6i.12xlarge,reserved_1y,all_upfront,2.234932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:47.218681 +AWS,ap-southeast-2,r6i.12xlarge,reserved_1y,no_upfront,2.234932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:29.756209 +AWS,ap-southeast-2,r6i.12xlarge,reserved_1y,partial_upfront,2.234932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:12.939557 +AWS,ap-southeast-2,r6i.12xlarge,reserved_3y,all_upfront,0.744977,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:47.872083 +AWS,ap-southeast-2,r6i.12xlarge,reserved_3y,no_upfront,0.744977,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:33.521387 +AWS,ap-southeast-2,r6i.12xlarge,reserved_3y,partial_upfront,0.744977,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:24.136923 +AWS,ap-southeast-2,r6i.12xlarge,spot,NA,1.2701,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038848 +AWS,ap-southeast-2,r6i.16xlarge,on_demand,NA,4.832,USD,AWS Pricing API,2025-11-30T09:00:25.283738 +AWS,ap-southeast-2,r6i.16xlarge,reserved_1y,all_upfront,3.19284,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:55.904826 +AWS,ap-southeast-2,r6i.16xlarge,reserved_1y,no_upfront,3.19284,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:37.803360 +AWS,ap-southeast-2,r6i.16xlarge,reserved_1y,partial_upfront,3.19284,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:21.743017 +AWS,ap-southeast-2,r6i.16xlarge,reserved_3y,all_upfront,3.19284,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:57.487236 +AWS,ap-southeast-2,r6i.16xlarge,reserved_3y,no_upfront,3.19284,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:41.011151 +AWS,ap-southeast-2,r6i.16xlarge,reserved_3y,partial_upfront,3.19284,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:33.064700 +AWS,ap-southeast-2,r6i.16xlarge,spot,NA,1.751215,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037396 +AWS,ap-southeast-2,r6i.24xlarge,on_demand,NA,7.248,USD,AWS Pricing API,2025-11-30T09:00:31.728095 +AWS,ap-southeast-2,r6i.24xlarge,reserved_1y,all_upfront,4.78926,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:02.284004 +AWS,ap-southeast-2,r6i.24xlarge,reserved_1y,no_upfront,4.78926,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:44.248786 +AWS,ap-southeast-2,r6i.24xlarge,reserved_1y,partial_upfront,4.78926,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:28.081071 +AWS,ap-southeast-2,r6i.24xlarge,reserved_3y,all_upfront,4.78926,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:03.768858 +AWS,ap-southeast-2,r6i.24xlarge,reserved_3y,no_upfront,4.78926,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:47.589593 +AWS,ap-southeast-2,r6i.24xlarge,reserved_3y,partial_upfront,4.78926,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:39.445728 +AWS,ap-southeast-2,r6i.24xlarge,spot,NA,2.596609,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037569 +AWS,ap-southeast-2,r6i.2xlarge,on_demand,NA,0.604,USD,AWS Pricing API,2025-11-30T09:01:20.722687 +AWS,ap-southeast-2,r6i.2xlarge,reserved_1y,all_upfront,0.852854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:50.723932 +AWS,ap-southeast-2,r6i.2xlarge,reserved_1y,no_upfront,0.852854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:33.316637 +AWS,ap-southeast-2,r6i.2xlarge,reserved_1y,partial_upfront,0.852854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:16.427961 +AWS,ap-southeast-2,r6i.2xlarge,reserved_3y,all_upfront,0.284285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:51.321368 +AWS,ap-southeast-2,r6i.2xlarge,reserved_3y,no_upfront,0.284285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:37.108482 +AWS,ap-southeast-2,r6i.2xlarge,reserved_3y,partial_upfront,0.284285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:27.671363 +AWS,ap-southeast-2,r6i.2xlarge,spot,NA,0.22317,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038918 +AWS,ap-southeast-2,r6i.32xlarge,on_demand,NA,9.664,USD,AWS Pricing API,2025-11-30T09:00:25.419091 +AWS,ap-southeast-2,r6i.32xlarge,reserved_1y,all_upfront,6.081553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:56.041660 +AWS,ap-southeast-2,r6i.32xlarge,reserved_1y,no_upfront,6.081553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:37.938356 +AWS,ap-southeast-2,r6i.32xlarge,reserved_1y,partial_upfront,6.081553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:21.877053 +AWS,ap-southeast-2,r6i.32xlarge,reserved_3y,all_upfront,4.054384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:57.622849 +AWS,ap-southeast-2,r6i.32xlarge,reserved_3y,no_upfront,4.054384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:41.155861 +AWS,ap-southeast-2,r6i.32xlarge,reserved_3y,partial_upfront,4.054384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:33.209814 +AWS,ap-southeast-2,r6i.32xlarge,spot,NA,3.289533,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037400 +AWS,ap-southeast-2,r6i.4xlarge,on_demand,NA,1.208,USD,AWS Pricing API,2025-11-30T09:00:46.877632 +AWS,ap-southeast-2,r6i.4xlarge,reserved_1y,all_upfront,1.705822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:17.362656 +AWS,ap-southeast-2,r6i.4xlarge,reserved_1y,no_upfront,1.705822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:59.399853 +AWS,ap-southeast-2,r6i.4xlarge,reserved_1y,partial_upfront,1.705822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:43.053165 +AWS,ap-southeast-2,r6i.4xlarge,reserved_3y,all_upfront,0.568607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:18.535665 +AWS,ap-southeast-2,r6i.4xlarge,reserved_3y,no_upfront,0.568607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:02.996147 +AWS,ap-southeast-2,r6i.4xlarge,reserved_3y,partial_upfront,0.568607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:54.408901 +AWS,ap-southeast-2,r6i.4xlarge,spot,NA,0.489363,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038019 +AWS,ap-southeast-2,r6i.8xlarge,on_demand,NA,2.416,USD,AWS Pricing API,2025-11-30T09:00:51.248760 +AWS,ap-southeast-2,r6i.8xlarge,reserved_1y,all_upfront,1.52036,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:21.648338 +AWS,ap-southeast-2,r6i.8xlarge,reserved_1y,no_upfront,1.52036,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:03.824956 +AWS,ap-southeast-2,r6i.8xlarge,reserved_1y,partial_upfront,1.52036,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:47.378826 +AWS,ap-southeast-2,r6i.8xlarge,reserved_3y,all_upfront,1.013587,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:22.786439 +AWS,ap-southeast-2,r6i.8xlarge,reserved_3y,no_upfront,1.013587,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:07.413408 +AWS,ap-southeast-2,r6i.8xlarge,reserved_3y,partial_upfront,1.013587,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:58.729245 +AWS,ap-southeast-2,r6i.8xlarge,spot,NA,0.834654,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038161 +AWS,ap-southeast-2,r6i.large,on_demand,NA,0.151,USD,AWS Pricing API,2025-11-30T09:01:07.159999 +AWS,ap-southeast-2,r6i.large,reserved_1y,all_upfront,0.09978,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:37.359379 +AWS,ap-southeast-2,r6i.large,reserved_1y,no_upfront,0.09978,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:19.734327 +AWS,ap-southeast-2,r6i.large,reserved_1y,partial_upfront,0.09978,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:03.051912 +AWS,ap-southeast-2,r6i.large,reserved_3y,all_upfront,0.09978,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:38.176737 +AWS,ap-southeast-2,r6i.large,reserved_3y,no_upfront,0.09978,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:23.501133 +AWS,ap-southeast-2,r6i.large,reserved_3y,partial_upfront,0.09978,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:14.320422 +AWS,ap-southeast-2,r6i.large,spot,NA,0.055762,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038577 +AWS,ap-southeast-2,r6i.xlarge,on_demand,NA,0.302,USD,AWS Pricing API,2025-11-30T09:00:28.848760 +AWS,ap-southeast-2,r6i.xlarge,reserved_1y,all_upfront,0.203881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:59.428863 +AWS,ap-southeast-2,r6i.xlarge,reserved_1y,no_upfront,0.203881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:41.369999 +AWS,ap-southeast-2,r6i.xlarge,reserved_1y,partial_upfront,0.203881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:25.253422 +AWS,ap-southeast-2,r6i.xlarge,reserved_3y,all_upfront,0.06796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:00.937963 +AWS,ap-southeast-2,r6i.xlarge,reserved_3y,no_upfront,0.06796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:44.624294 +AWS,ap-southeast-2,r6i.xlarge,reserved_3y,partial_upfront,0.06796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:36.612311 +AWS,ap-southeast-2,r6i.xlarge,spot,NA,0.112315,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037470 +AWS,ap-southeast-2,r6id.12xlarge,on_demand,NA,4.176,USD,AWS Pricing API,2025-11-30T09:01:21.144987 +AWS,ap-southeast-2,r6id.12xlarge,reserved_1y,all_upfront,2.63088,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:51.128102 +AWS,ap-southeast-2,r6id.12xlarge,reserved_1y,no_upfront,2.63088,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:33.728205 +AWS,ap-southeast-2,r6id.12xlarge,reserved_1y,partial_upfront,2.63088,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:16.847190 +AWS,ap-southeast-2,r6id.12xlarge,reserved_3y,all_upfront,2.63088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:51.715319 +AWS,ap-southeast-2,r6id.12xlarge,reserved_3y,no_upfront,2.63088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:37.521181 +AWS,ap-southeast-2,r6id.12xlarge,reserved_3y,partial_upfront,2.63088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:28.088764 +AWS,ap-southeast-2,r6id.12xlarge,spot,NA,1.366057,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038965 +AWS,ap-southeast-2,r6id.16xlarge,on_demand,NA,5.568,USD,AWS Pricing API,2025-11-30T09:01:03.996294 +AWS,ap-southeast-2,r6id.16xlarge,reserved_1y,all_upfront,4.454353,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:34.234612 +AWS,ap-southeast-2,r6id.16xlarge,reserved_1y,no_upfront,4.454353,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:16.563476 +AWS,ap-southeast-2,r6id.16xlarge,reserved_1y,partial_upfront,4.454353,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:59.916398 +AWS,ap-southeast-2,r6id.16xlarge,reserved_3y,all_upfront,2.227184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:35.122909 +AWS,ap-southeast-2,r6id.16xlarge,reserved_3y,no_upfront,2.227184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:20.339402 +AWS,ap-southeast-2,r6id.16xlarge,reserved_3y,partial_upfront,2.227184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:11.232569 +AWS,ap-southeast-2,r6id.16xlarge,spot,NA,1.972154,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038485 +AWS,ap-southeast-2,r6id.24xlarge,on_demand,NA,8.352,USD,AWS Pricing API,2025-11-30T09:00:16.023522 +AWS,ap-southeast-2,r6id.24xlarge,reserved_1y,all_upfront,11.806507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:46.969342 +AWS,ap-southeast-2,r6id.24xlarge,reserved_1y,no_upfront,11.806507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:28.681790 +AWS,ap-southeast-2,r6id.24xlarge,reserved_1y,partial_upfront,11.806507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:12.834002 +AWS,ap-southeast-2,r6id.24xlarge,reserved_3y,all_upfront,3.935502,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:48.731247 +AWS,ap-southeast-2,r6id.24xlarge,reserved_3y,no_upfront,3.935502,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:31.932166 +AWS,ap-southeast-2,r6id.24xlarge,reserved_3y,partial_upfront,3.935502,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:24.207212 +AWS,ap-southeast-2,r6id.24xlarge,spot,NA,2.632482,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037142 +AWS,ap-southeast-2,r6id.2xlarge,on_demand,NA,0.696,USD,AWS Pricing API,2025-11-30T09:01:06.736097 +AWS,ap-southeast-2,r6id.2xlarge,reserved_1y,all_upfront,0.43848,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:36.955449 +AWS,ap-southeast-2,r6id.2xlarge,reserved_1y,no_upfront,0.43848,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:19.314684 +AWS,ap-southeast-2,r6id.2xlarge,reserved_1y,partial_upfront,0.43848,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:02.642350 +AWS,ap-southeast-2,r6id.2xlarge,reserved_3y,all_upfront,0.43848,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:37.778564 +AWS,ap-southeast-2,r6id.2xlarge,reserved_3y,no_upfront,0.43848,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:23.085807 +AWS,ap-southeast-2,r6id.2xlarge,reserved_3y,partial_upfront,0.43848,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:13.919780 +AWS,ap-southeast-2,r6id.2xlarge,spot,NA,0.310985,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038565 +AWS,ap-southeast-2,r6id.32xlarge,on_demand,NA,11.136,USD,AWS Pricing API,2025-11-30T09:00:58.456191 +AWS,ap-southeast-2,r6id.32xlarge,reserved_1y,all_upfront,6.681553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:28.824634 +AWS,ap-southeast-2,r6id.32xlarge,reserved_1y,no_upfront,6.681553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:11.067442 +AWS,ap-southeast-2,r6id.32xlarge,reserved_1y,partial_upfront,6.681553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:54.492685 +AWS,ap-southeast-2,r6id.32xlarge,reserved_3y,all_upfront,4.454384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:29.807059 +AWS,ap-southeast-2,r6id.32xlarge,reserved_3y,no_upfront,4.454384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:14.827324 +AWS,ap-southeast-2,r6id.32xlarge,reserved_3y,partial_upfront,4.454384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:05.870616 +AWS,ap-southeast-2,r6id.32xlarge,spot,NA,3.824194,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038340 +AWS,ap-southeast-2,r6id.4xlarge,on_demand,NA,1.392,USD,AWS Pricing API,2025-11-30T09:00:53.151106 +AWS,ap-southeast-2,r6id.4xlarge,reserved_1y,all_upfront,1.967694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:23.546995 +AWS,ap-southeast-2,r6id.4xlarge,reserved_1y,no_upfront,1.967694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:05.754655 +AWS,ap-southeast-2,r6id.4xlarge,reserved_1y,partial_upfront,1.967694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:49.261499 +AWS,ap-southeast-2,r6id.4xlarge,reserved_3y,all_upfront,0.655898,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:24.640263 +AWS,ap-southeast-2,r6id.4xlarge,reserved_3y,no_upfront,0.655898,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:09.441718 +AWS,ap-southeast-2,r6id.4xlarge,reserved_3y,partial_upfront,0.655898,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:00.605940 +AWS,ap-southeast-2,r6id.4xlarge,spot,NA,0.502537,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038187 +AWS,ap-southeast-2,r6id.8xlarge,on_demand,NA,2.784,USD,AWS Pricing API,2025-11-30T09:00:15.613757 +AWS,ap-southeast-2,r6id.8xlarge,reserved_1y,all_upfront,1.75392,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:46.562264 +AWS,ap-southeast-2,r6id.8xlarge,reserved_1y,no_upfront,1.75392,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:28.265349 +AWS,ap-southeast-2,r6id.8xlarge,reserved_1y,partial_upfront,1.75392,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:12.425709 +AWS,ap-southeast-2,r6id.8xlarge,reserved_3y,all_upfront,1.75392,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:48.335193 +AWS,ap-southeast-2,r6id.8xlarge,reserved_3y,no_upfront,1.75392,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:31.516981 +AWS,ap-southeast-2,r6id.8xlarge,reserved_3y,partial_upfront,1.75392,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:23.804661 +AWS,ap-southeast-2,r6id.8xlarge,spot,NA,1.001863,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037107 +AWS,ap-southeast-2,r6id.large,on_demand,NA,0.174,USD,AWS Pricing API,2025-11-30T09:00:41.000259 +AWS,ap-southeast-2,r6id.large,reserved_1y,all_upfront,0.12709,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:11.487386 +AWS,ap-southeast-2,r6id.large,reserved_1y,no_upfront,0.12709,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:53.529114 +AWS,ap-southeast-2,r6id.large,reserved_1y,partial_upfront,0.12709,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:37.256866 +AWS,ap-southeast-2,r6id.large,reserved_3y,all_upfront,0.12709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:12.825551 +AWS,ap-southeast-2,r6id.large,reserved_3y,no_upfront,0.12709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:57.005768 +AWS,ap-southeast-2,r6id.large,reserved_3y,partial_upfront,0.12709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:48.614551 +AWS,ap-southeast-2,r6id.large,spot,NA,0.059868,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037795 +AWS,ap-southeast-2,r6id.xlarge,on_demand,NA,0.348,USD,AWS Pricing API,2025-11-30T09:01:18.552626 +AWS,ap-southeast-2,r6id.xlarge,reserved_1y,all_upfront,0.21924,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:48.560481 +AWS,ap-southeast-2,r6id.xlarge,reserved_1y,no_upfront,0.21924,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:31.132247 +AWS,ap-southeast-2,r6id.xlarge,reserved_1y,partial_upfront,0.21924,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:14.278544 +AWS,ap-southeast-2,r6id.xlarge,reserved_3y,all_upfront,0.21924,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:49.199930 +AWS,ap-southeast-2,r6id.xlarge,reserved_3y,no_upfront,0.21924,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:34.897505 +AWS,ap-southeast-2,r6id.xlarge,reserved_3y,partial_upfront,0.21924,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:25.501406 +AWS,ap-southeast-2,r6id.xlarge,spot,NA,0.143553,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038895 +AWS,ap-southeast-2,r6idn.12xlarge,on_demand,NA,5.72832,USD,AWS Pricing API,2025-11-30T09:00:38.802863 +AWS,ap-southeast-2,r6idn.12xlarge,reserved_1y,all_upfront,3.368265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:09.326035 +AWS,ap-southeast-2,r6idn.12xlarge,reserved_1y,no_upfront,3.368265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:51.355737 +AWS,ap-southeast-2,r6idn.12xlarge,reserved_1y,partial_upfront,3.368265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:35.098217 +AWS,ap-southeast-2,r6idn.12xlarge,reserved_3y,all_upfront,1.122755,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:10.719007 +AWS,ap-southeast-2,r6idn.12xlarge,reserved_3y,no_upfront,1.122755,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:54.796139 +AWS,ap-southeast-2,r6idn.12xlarge,reserved_3y,partial_upfront,1.122755,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:46.457584 +AWS,ap-southeast-2,r6idn.12xlarge,spot,NA,1.889433,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037783 +AWS,ap-southeast-2,r6idn.16xlarge,on_demand,NA,7.63776,USD,AWS Pricing API,2025-11-30T09:00:18.466438 +AWS,ap-southeast-2,r6idn.16xlarge,reserved_1y,all_upfront,5.789483,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:49.271608 +AWS,ap-southeast-2,r6idn.16xlarge,reserved_1y,no_upfront,5.789483,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:31.011242 +AWS,ap-southeast-2,r6idn.16xlarge,reserved_1y,partial_upfront,5.789483,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:15.126303 +AWS,ap-southeast-2,r6idn.16xlarge,reserved_3y,all_upfront,2.894734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:50.990823 +AWS,ap-southeast-2,r6idn.16xlarge,reserved_3y,no_upfront,2.894734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:34.255708 +AWS,ap-southeast-2,r6idn.16xlarge,reserved_3y,partial_upfront,2.894734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:26.492044 +AWS,ap-southeast-2,r6idn.16xlarge,spot,NA,2.649116,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037208 +AWS,ap-southeast-2,r6idn.24xlarge,on_demand,NA,11.45664,USD,AWS Pricing API,2025-11-30T09:00:46.038488 +AWS,ap-southeast-2,r6idn.24xlarge,reserved_1y,all_upfront,8.684158,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:16.523010 +AWS,ap-southeast-2,r6idn.24xlarge,reserved_1y,no_upfront,8.684158,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:58.576863 +AWS,ap-southeast-2,r6idn.24xlarge,reserved_1y,partial_upfront,8.684158,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:42.240129 +AWS,ap-southeast-2,r6idn.24xlarge,reserved_3y,all_upfront,4.342073,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:17.727146 +AWS,ap-southeast-2,r6idn.24xlarge,reserved_3y,no_upfront,4.342073,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:02.150598 +AWS,ap-southeast-2,r6idn.24xlarge,reserved_3y,partial_upfront,4.342073,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:53.588469 +AWS,ap-southeast-2,r6idn.24xlarge,spot,NA,3.805585,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037979 +AWS,ap-southeast-2,r6idn.2xlarge,on_demand,NA,0.95472,USD,AWS Pricing API,2025-11-30T09:00:45.494197 +AWS,ap-southeast-2,r6idn.2xlarge,reserved_1y,all_upfront,0.572836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:15.983330 +AWS,ap-southeast-2,r6idn.2xlarge,reserved_1y,no_upfront,0.572836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:58.028874 +AWS,ap-southeast-2,r6idn.2xlarge,reserved_1y,partial_upfront,0.572836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:41.697373 +AWS,ap-southeast-2,r6idn.2xlarge,reserved_3y,all_upfront,0.381892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:17.197625 +AWS,ap-southeast-2,r6idn.2xlarge,reserved_3y,no_upfront,0.381892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:01.554441 +AWS,ap-southeast-2,r6idn.2xlarge,reserved_3y,partial_upfront,0.381892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:53.057170 +AWS,ap-southeast-2,r6idn.2xlarge,spot,NA,0.37956,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037944 +AWS,ap-southeast-2,r6idn.32xlarge,on_demand,NA,15.27552,USD,AWS Pricing API,2025-11-30T09:01:16.084541 +AWS,ap-southeast-2,r6idn.32xlarge,reserved_1y,all_upfront,9.62358,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:46.124398 +AWS,ap-southeast-2,r6idn.32xlarge,reserved_1y,no_upfront,9.62358,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:28.657305 +AWS,ap-southeast-2,r6idn.32xlarge,reserved_1y,partial_upfront,9.62358,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:11.852949 +AWS,ap-southeast-2,r6idn.32xlarge,reserved_3y,all_upfront,9.62358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:46.801233 +AWS,ap-southeast-2,r6idn.32xlarge,reserved_3y,no_upfront,9.62358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:32.417752 +AWS,ap-southeast-2,r6idn.32xlarge,reserved_3y,partial_upfront,9.62358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:23.042270 +AWS,ap-southeast-2,r6idn.32xlarge,spot,NA,5.185092,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038813 +AWS,ap-southeast-2,r6idn.4xlarge,on_demand,NA,1.90944,USD,AWS Pricing API,2025-11-30T09:00:19.025203 +AWS,ap-southeast-2,r6idn.4xlarge,reserved_1y,all_upfront,1.447342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:49.811268 +AWS,ap-southeast-2,r6idn.4xlarge,reserved_1y,no_upfront,1.447342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:31.562739 +AWS,ap-southeast-2,r6idn.4xlarge,reserved_1y,partial_upfront,1.447342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:15.681179 +AWS,ap-southeast-2,r6idn.4xlarge,reserved_3y,all_upfront,0.723674,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:51.514678 +AWS,ap-southeast-2,r6idn.4xlarge,reserved_3y,no_upfront,0.723674,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:34.804883 +AWS,ap-southeast-2,r6idn.4xlarge,reserved_3y,partial_upfront,0.723674,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:27.030994 +AWS,ap-southeast-2,r6idn.4xlarge,spot,NA,0.713592,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037220 +AWS,ap-southeast-2,r6idn.8xlarge,on_demand,NA,3.81888,USD,AWS Pricing API,2025-11-30T09:01:07.015280 +AWS,ap-southeast-2,r6idn.8xlarge,reserved_1y,all_upfront,2.245548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:37.226699 +AWS,ap-southeast-2,r6idn.8xlarge,reserved_1y,no_upfront,2.245548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:19.595482 +AWS,ap-southeast-2,r6idn.8xlarge,reserved_1y,partial_upfront,2.245548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:02.915877 +AWS,ap-southeast-2,r6idn.8xlarge,reserved_3y,all_upfront,0.748516,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:38.043614 +AWS,ap-southeast-2,r6idn.8xlarge,reserved_3y,no_upfront,0.748516,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:23.363371 +AWS,ap-southeast-2,r6idn.8xlarge,reserved_3y,partial_upfront,0.748516,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:14.187212 +AWS,ap-southeast-2,r6idn.8xlarge,spot,NA,1.386769,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038573 +AWS,ap-southeast-2,r6idn.large,on_demand,NA,0.23868,USD,AWS Pricing API,2025-11-30T09:00:38.664784 +AWS,ap-southeast-2,r6idn.large,reserved_1y,all_upfront,0.143175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:09.191982 +AWS,ap-southeast-2,r6idn.large,reserved_1y,no_upfront,0.143175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:51.221205 +AWS,ap-southeast-2,r6idn.large,reserved_1y,partial_upfront,0.143175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:34.963391 +AWS,ap-southeast-2,r6idn.large,reserved_3y,all_upfront,0.095458,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:10.585609 +AWS,ap-southeast-2,r6idn.large,reserved_3y,no_upfront,0.095458,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:54.657438 +AWS,ap-southeast-2,r6idn.large,reserved_3y,partial_upfront,0.095458,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:46.324108 +AWS,ap-southeast-2,r6idn.large,spot,NA,0.081846,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037759 +AWS,ap-southeast-2,r6idn.xlarge,on_demand,NA,0.47736,USD,AWS Pricing API,2025-11-30T09:00:30.629282 +AWS,ap-southeast-2,r6idn.xlarge,reserved_1y,all_upfront,0.286475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:01.177570 +AWS,ap-southeast-2,r6idn.xlarge,reserved_1y,no_upfront,0.286475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:43.156169 +AWS,ap-southeast-2,r6idn.xlarge,reserved_1y,partial_upfront,0.286475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:27.001342 +AWS,ap-southeast-2,r6idn.xlarge,reserved_3y,all_upfront,0.190965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:02.684494 +AWS,ap-southeast-2,r6idn.xlarge,reserved_3y,no_upfront,0.190965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:46.482899 +AWS,ap-southeast-2,r6idn.xlarge,reserved_3y,partial_upfront,0.190965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:38.368308 +AWS,ap-southeast-2,r6idn.xlarge,spot,NA,0.187672,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037565 +AWS,ap-southeast-2,r6in.12xlarge,on_demand,NA,5.08248,USD,AWS Pricing API,2025-11-30T09:00:23.245269 +AWS,ap-southeast-2,r6in.12xlarge,reserved_1y,all_upfront,5.373288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:53.874602 +AWS,ap-southeast-2,r6in.12xlarge,reserved_1y,no_upfront,5.373288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:35.725209 +AWS,ap-southeast-2,r6in.12xlarge,reserved_1y,partial_upfront,5.373288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:19.727196 +AWS,ap-southeast-2,r6in.12xlarge,reserved_3y,all_upfront,1.791096,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:55.483652 +AWS,ap-southeast-2,r6in.12xlarge,reserved_3y,no_upfront,1.791096,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:38.949315 +AWS,ap-southeast-2,r6in.12xlarge,reserved_3y,partial_upfront,1.791096,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:31.057834 +AWS,ap-southeast-2,r6in.12xlarge,spot,NA,1.673121,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037307 +AWS,ap-southeast-2,r6in.16xlarge,on_demand,NA,6.77664,USD,AWS Pricing API,2025-11-30T09:00:14.663085 +AWS,ap-southeast-2,r6in.16xlarge,reserved_1y,all_upfront,8.604909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:45.612838 +AWS,ap-southeast-2,r6in.16xlarge,reserved_1y,no_upfront,8.604909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:27.316164 +AWS,ap-southeast-2,r6in.16xlarge,reserved_1y,partial_upfront,8.604909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:11.488514 +AWS,ap-southeast-2,r6in.16xlarge,reserved_3y,all_upfront,2.868303,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:47.411519 +AWS,ap-southeast-2,r6in.16xlarge,reserved_3y,no_upfront,2.868303,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:30.550548 +AWS,ap-southeast-2,r6in.16xlarge,reserved_3y,partial_upfront,2.868303,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:22.866195 +AWS,ap-southeast-2,r6in.16xlarge,spot,NA,2.391834,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037101 +AWS,ap-southeast-2,r6in.24xlarge,on_demand,NA,10.16496,USD,AWS Pricing API,2025-11-30T09:01:15.260174 +AWS,ap-southeast-2,r6in.24xlarge,reserved_1y,all_upfront,6.099033,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:45.309146 +AWS,ap-southeast-2,r6in.24xlarge,reserved_1y,no_upfront,6.099033,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:27.836988 +AWS,ap-southeast-2,r6in.24xlarge,reserved_1y,partial_upfront,6.099033,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:11.025974 +AWS,ap-southeast-2,r6in.24xlarge,reserved_3y,all_upfront,4.066004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:46.000288 +AWS,ap-southeast-2,r6in.24xlarge,reserved_3y,no_upfront,4.066004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:31.585080 +AWS,ap-southeast-2,r6in.24xlarge,reserved_3y,partial_upfront,4.066004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:22.240488 +AWS,ap-southeast-2,r6in.24xlarge,spot,NA,3.775034,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038773 +AWS,ap-southeast-2,r6in.2xlarge,on_demand,NA,0.84708,USD,AWS Pricing API,2025-11-30T09:01:18.145162 +AWS,ap-southeast-2,r6in.2xlarge,reserved_1y,all_upfront,0.61718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:48.158447 +AWS,ap-southeast-2,r6in.2xlarge,reserved_1y,no_upfront,0.61718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:30.725225 +AWS,ap-southeast-2,r6in.2xlarge,reserved_1y,partial_upfront,0.61718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:13.878038 +AWS,ap-southeast-2,r6in.2xlarge,reserved_3y,all_upfront,0.61718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:48.792887 +AWS,ap-southeast-2,r6in.2xlarge,reserved_3y,no_upfront,0.61718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:34.486201 +AWS,ap-southeast-2,r6in.2xlarge,reserved_3y,partial_upfront,0.61718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:25.098309 +AWS,ap-southeast-2,r6in.2xlarge,spot,NA,0.307265,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038832 +AWS,ap-southeast-2,r6in.32xlarge,on_demand,NA,13.55328,USD,AWS Pricing API,2025-11-30T09:00:58.177481 +AWS,ap-southeast-2,r6in.32xlarge,reserved_1y,all_upfront,8.53857,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:28.542771 +AWS,ap-southeast-2,r6in.32xlarge,reserved_1y,no_upfront,8.53857,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:10.791872 +AWS,ap-southeast-2,r6in.32xlarge,reserved_1y,partial_upfront,8.53857,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:54.225844 +AWS,ap-southeast-2,r6in.32xlarge,reserved_3y,all_upfront,8.53857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:29.542536 +AWS,ap-southeast-2,r6in.32xlarge,reserved_3y,no_upfront,8.53857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:14.552521 +AWS,ap-southeast-2,r6in.32xlarge,reserved_3y,partial_upfront,8.53857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:05.602140 +AWS,ap-southeast-2,r6in.32xlarge,spot,NA,4.754702,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038348 +AWS,ap-southeast-2,r6in.4xlarge,on_demand,NA,1.69416,USD,AWS Pricing API,2025-11-30T09:01:20.587373 +AWS,ap-southeast-2,r6in.4xlarge,reserved_1y,all_upfront,1.016469,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:50.588137 +AWS,ap-southeast-2,r6in.4xlarge,reserved_1y,no_upfront,1.016469,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:33.180129 +AWS,ap-southeast-2,r6in.4xlarge,reserved_1y,partial_upfront,1.016469,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:16.292226 +AWS,ap-southeast-2,r6in.4xlarge,reserved_3y,all_upfront,0.677656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:51.187313 +AWS,ap-southeast-2,r6in.4xlarge,reserved_3y,no_upfront,0.677656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:36.972145 +AWS,ap-southeast-2,r6in.4xlarge,reserved_3y,partial_upfront,0.677656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:27.533781 +AWS,ap-southeast-2,r6in.4xlarge,spot,NA,0.606268,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038926 +AWS,ap-southeast-2,r6in.8xlarge,on_demand,NA,3.38832,USD,AWS Pricing API,2025-11-30T09:01:08.535881 +AWS,ap-southeast-2,r6in.8xlarge,reserved_1y,all_upfront,2.13464,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:38.710978 +AWS,ap-southeast-2,r6in.8xlarge,reserved_1y,no_upfront,2.13464,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:21.110732 +AWS,ap-southeast-2,r6in.8xlarge,reserved_1y,partial_upfront,2.13464,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:04.405174 +AWS,ap-southeast-2,r6in.8xlarge,reserved_3y,all_upfront,2.13464,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:39.502869 +AWS,ap-southeast-2,r6in.8xlarge,reserved_3y,no_upfront,2.13464,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:24.880414 +AWS,ap-southeast-2,r6in.8xlarge,reserved_3y,partial_upfront,2.13464,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:15.667924 +AWS,ap-southeast-2,r6in.8xlarge,spot,NA,1.146251,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038625 +AWS,ap-southeast-2,r6in.large,on_demand,NA,0.21177,USD,AWS Pricing API,2025-11-30T09:01:23.341556 +AWS,ap-southeast-2,r6in.large,reserved_1y,all_upfront,0.223858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:53.294930 +AWS,ap-southeast-2,r6in.large,reserved_1y,no_upfront,0.223858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:35.921276 +AWS,ap-southeast-2,r6in.large,reserved_1y,partial_upfront,0.223858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:18.999931 +AWS,ap-southeast-2,r6in.large,reserved_3y,all_upfront,0.074619,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:53.841114 +AWS,ap-southeast-2,r6in.large,reserved_3y,no_upfront,0.074619,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:39.729706 +AWS,ap-southeast-2,r6in.large,reserved_3y,partial_upfront,0.074619,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:30.212901 +AWS,ap-southeast-2,r6in.large,spot,NA,0.067729,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039004 +AWS,ap-southeast-2,r6in.xlarge,on_demand,NA,0.42354,USD,AWS Pricing API,2025-11-30T09:01:21.009236 +AWS,ap-southeast-2,r6in.xlarge,reserved_1y,all_upfront,0.26683,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:50.993972 +AWS,ap-southeast-2,r6in.xlarge,reserved_1y,no_upfront,0.26683,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:33.591728 +AWS,ap-southeast-2,r6in.xlarge,reserved_1y,partial_upfront,0.26683,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:16.713710 +AWS,ap-southeast-2,r6in.xlarge,reserved_3y,all_upfront,0.26683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:51.584098 +AWS,ap-southeast-2,r6in.xlarge,reserved_3y,no_upfront,0.26683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:37.385111 +AWS,ap-southeast-2,r6in.xlarge,reserved_3y,partial_upfront,0.26683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:27.954416 +AWS,ap-southeast-2,r6in.xlarge,spot,NA,0.144773,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038930 +AWS,ap-southeast-2,r7g.12xlarge,on_demand,NA,3.0806,USD,AWS Pricing API,2025-11-30T09:00:45.221459 +AWS,ap-southeast-2,r7g.12xlarge,reserved_1y,all_upfront,1.3997,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:15.717785 +AWS,ap-southeast-2,r7g.12xlarge,reserved_1y,no_upfront,1.3997,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:57.748761 +AWS,ap-southeast-2,r7g.12xlarge,reserved_1y,partial_upfront,1.3997,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:41.429264 +AWS,ap-southeast-2,r7g.12xlarge,reserved_3y,all_upfront,1.3997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:16.926400 +AWS,ap-southeast-2,r7g.12xlarge,reserved_3y,no_upfront,1.3997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:01.270517 +AWS,ap-southeast-2,r7g.12xlarge,reserved_3y,partial_upfront,1.3997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:52.772706 +AWS,ap-southeast-2,r7g.12xlarge,spot,NA,0.971691,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037932 +AWS,ap-southeast-2,r7g.16xlarge,on_demand,NA,4.1075,USD,AWS Pricing API,2025-11-30T09:00:30.347908 +AWS,ap-southeast-2,r7g.16xlarge,reserved_1y,all_upfront,2.584866,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:00.905676 +AWS,ap-southeast-2,r7g.16xlarge,reserved_1y,no_upfront,2.584866,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:42.883293 +AWS,ap-southeast-2,r7g.16xlarge,reserved_1y,partial_upfront,2.584866,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:26.733005 +AWS,ap-southeast-2,r7g.16xlarge,reserved_3y,all_upfront,1.723222,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:02.418121 +AWS,ap-southeast-2,r7g.16xlarge,reserved_3y,no_upfront,1.723222,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:46.207331 +AWS,ap-southeast-2,r7g.16xlarge,reserved_3y,partial_upfront,1.723222,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:38.100696 +AWS,ap-southeast-2,r7g.16xlarge,spot,NA,1.31765,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037503 +AWS,ap-southeast-2,r7g.2xlarge,on_demand,NA,0.5134,USD,AWS Pricing API,2025-11-30T09:00:38.530932 +AWS,ap-southeast-2,r7g.2xlarge,reserved_1y,all_upfront,0.3393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:09.056953 +AWS,ap-southeast-2,r7g.2xlarge,reserved_1y,no_upfront,0.3393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:51.085074 +AWS,ap-southeast-2,r7g.2xlarge,reserved_1y,partial_upfront,0.3393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:34.830480 +AWS,ap-southeast-2,r7g.2xlarge,reserved_3y,all_upfront,0.3393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:10.453033 +AWS,ap-southeast-2,r7g.2xlarge,reserved_3y,no_upfront,0.3393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:54.517975 +AWS,ap-southeast-2,r7g.2xlarge,reserved_3y,partial_upfront,0.3393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:46.189673 +AWS,ap-southeast-2,r7g.2xlarge,spot,NA,0.19032,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037738 +AWS,ap-southeast-2,r7g.4xlarge,on_demand,NA,1.0269,USD,AWS Pricing API,2025-11-30T09:00:28.984558 +AWS,ap-southeast-2,r7g.4xlarge,reserved_1y,all_upfront,0.707253,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:59.563200 +AWS,ap-southeast-2,r7g.4xlarge,reserved_1y,no_upfront,0.707253,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:41.508309 +AWS,ap-southeast-2,r7g.4xlarge,reserved_1y,partial_upfront,0.707253,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:25.387024 +AWS,ap-southeast-2,r7g.4xlarge,reserved_3y,all_upfront,0.471484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:01.073157 +AWS,ap-southeast-2,r7g.4xlarge,reserved_3y,no_upfront,0.471484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:44.765251 +AWS,ap-southeast-2,r7g.4xlarge,reserved_3y,partial_upfront,0.471484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:36.746521 +AWS,ap-southeast-2,r7g.4xlarge,spot,NA,0.351162,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037455 +AWS,ap-southeast-2,r7g.8xlarge,on_demand,NA,2.0538,USD,AWS Pricing API,2025-11-30T09:01:01.208035 +AWS,ap-southeast-2,r7g.8xlarge,reserved_1y,all_upfront,1.386187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:31.536258 +AWS,ap-southeast-2,r7g.8xlarge,reserved_1y,no_upfront,1.386187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:13.821677 +AWS,ap-southeast-2,r7g.8xlarge,reserved_1y,partial_upfront,1.386187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:57.199917 +AWS,ap-southeast-2,r7g.8xlarge,reserved_3y,all_upfront,0.462062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:32.451702 +AWS,ap-southeast-2,r7g.8xlarge,reserved_3y,no_upfront,0.462062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:17.589003 +AWS,ap-southeast-2,r7g.8xlarge,reserved_3y,partial_upfront,0.462062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:08.547652 +AWS,ap-southeast-2,r7g.8xlarge,spot,NA,0.763985,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038401 +AWS,ap-southeast-2,r7g.large,on_demand,NA,0.1284,USD,AWS Pricing API,2025-11-30T09:00:55.602698 +AWS,ap-southeast-2,r7g.large,reserved_1y,all_upfront,0.0928,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:25.979657 +AWS,ap-southeast-2,r7g.large,reserved_1y,no_upfront,0.0928,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:08.202832 +AWS,ap-southeast-2,r7g.large,reserved_1y,partial_upfront,0.0928,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:51.666313 +AWS,ap-southeast-2,r7g.large,reserved_3y,all_upfront,0.0928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:27.033260 +AWS,ap-southeast-2,r7g.large,reserved_3y,no_upfront,0.0928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:11.927788 +AWS,ap-southeast-2,r7g.large,reserved_3y,partial_upfront,0.0928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:03.055931 +AWS,ap-southeast-2,r7g.large,spot,NA,0.047468,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038279 +AWS,ap-southeast-2,r7g.xlarge,on_demand,NA,0.2567,USD,AWS Pricing API,2025-11-30T09:00:58.041090 +AWS,ap-southeast-2,r7g.xlarge,reserved_1y,all_upfront,0.161622,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:28.408847 +AWS,ap-southeast-2,r7g.xlarge,reserved_1y,no_upfront,0.161622,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:10.658261 +AWS,ap-southeast-2,r7g.xlarge,reserved_1y,partial_upfront,0.161622,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:54.090194 +AWS,ap-southeast-2,r7g.xlarge,reserved_3y,all_upfront,0.107741,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:29.410512 +AWS,ap-southeast-2,r7g.xlarge,reserved_3y,no_upfront,0.107741,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:14.413469 +AWS,ap-southeast-2,r7g.xlarge,reserved_3y,partial_upfront,0.107741,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:05.467750 +AWS,ap-southeast-2,r7g.xlarge,spot,NA,0.096043,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038344 +AWS,ap-southeast-2,r7gd.12xlarge,on_demand,NA,3.7584,USD,AWS Pricing API,2025-11-30T09:01:20.038934 +AWS,ap-southeast-2,r7gd.12xlarge,reserved_1y,all_upfront,2.562215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:50.054221 +AWS,ap-southeast-2,r7gd.12xlarge,reserved_1y,no_upfront,2.562215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:32.634944 +AWS,ap-southeast-2,r7gd.12xlarge,reserved_1y,partial_upfront,2.562215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:15.758044 +AWS,ap-southeast-2,r7gd.12xlarge,reserved_3y,all_upfront,0.854072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:50.661667 +AWS,ap-southeast-2,r7gd.12xlarge,reserved_3y,no_upfront,0.854072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:36.422578 +AWS,ap-southeast-2,r7gd.12xlarge,reserved_3y,partial_upfront,0.854072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:26.985790 +AWS,ap-southeast-2,r7gd.12xlarge,spot,NA,1.368308,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038914 +AWS,ap-southeast-2,r7gd.16xlarge,on_demand,NA,5.0112,USD,AWS Pricing API,2025-11-30T09:01:15.397253 +AWS,ap-southeast-2,r7gd.16xlarge,reserved_1y,all_upfront,3.1571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:45.444427 +AWS,ap-southeast-2,r7gd.16xlarge,reserved_1y,no_upfront,3.1571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:27.974031 +AWS,ap-southeast-2,r7gd.16xlarge,reserved_1y,partial_upfront,3.1571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:11.164620 +AWS,ap-southeast-2,r7gd.16xlarge,reserved_3y,all_upfront,3.1571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:46.132999 +AWS,ap-southeast-2,r7gd.16xlarge,reserved_3y,no_upfront,3.1571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:31.722790 +AWS,ap-southeast-2,r7gd.16xlarge,reserved_3y,partial_upfront,3.1571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:22.373759 +AWS,ap-southeast-2,r7gd.16xlarge,spot,NA,1.732837,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038789 +AWS,ap-southeast-2,r7gd.2xlarge,on_demand,NA,0.6264,USD,AWS Pricing API,2025-11-30T09:00:44.122468 +AWS,ap-southeast-2,r7gd.2xlarge,reserved_1y,all_upfront,0.368379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:14.609702 +AWS,ap-southeast-2,r7gd.2xlarge,reserved_1y,no_upfront,0.368379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:56.666868 +AWS,ap-southeast-2,r7gd.2xlarge,reserved_1y,partial_upfront,0.368379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:40.361259 +AWS,ap-southeast-2,r7gd.2xlarge,reserved_3y,all_upfront,0.122793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:15.872868 +AWS,ap-southeast-2,r7gd.2xlarge,reserved_3y,no_upfront,0.122793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:00.163099 +AWS,ap-southeast-2,r7gd.2xlarge,reserved_3y,partial_upfront,0.122793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:51.698347 +AWS,ap-southeast-2,r7gd.2xlarge,spot,NA,0.253122,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037912 +AWS,ap-southeast-2,r7gd.4xlarge,on_demand,NA,1.2528,USD,AWS Pricing API,2025-11-30T09:01:04.687921 +AWS,ap-southeast-2,r7gd.4xlarge,reserved_1y,all_upfront,0.85411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:34.914421 +AWS,ap-southeast-2,r7gd.4xlarge,reserved_1y,no_upfront,0.85411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:17.251306 +AWS,ap-southeast-2,r7gd.4xlarge,reserved_1y,partial_upfront,0.85411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:00.605660 +AWS,ap-southeast-2,r7gd.4xlarge,reserved_3y,all_upfront,0.284703,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:35.776825 +AWS,ap-southeast-2,r7gd.4xlarge,reserved_3y,no_upfront,0.284703,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:21.024209 +AWS,ap-southeast-2,r7gd.4xlarge,reserved_3y,partial_upfront,0.284703,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:11.904197 +AWS,ap-southeast-2,r7gd.4xlarge,spot,NA,0.571741,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038546 +AWS,ap-southeast-2,r7gd.8xlarge,on_demand,NA,2.5056,USD,AWS Pricing API,2025-11-30T09:00:58.593573 +AWS,ap-southeast-2,r7gd.8xlarge,reserved_1y,all_upfront,2.409378,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:28.961714 +AWS,ap-southeast-2,r7gd.8xlarge,reserved_1y,no_upfront,2.409378,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:11.217601 +AWS,ap-southeast-2,r7gd.8xlarge,reserved_1y,partial_upfront,2.409378,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:54.626949 +AWS,ap-southeast-2,r7gd.8xlarge,reserved_3y,all_upfront,1.204659,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:29.950374 +AWS,ap-southeast-2,r7gd.8xlarge,reserved_3y,no_upfront,1.204659,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:14.964999 +AWS,ap-southeast-2,r7gd.8xlarge,reserved_3y,partial_upfront,1.204659,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:06.006767 +AWS,ap-southeast-2,r7gd.8xlarge,spot,NA,1.324993,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038331 +AWS,ap-southeast-2,r7gd.large,on_demand,NA,0.1566,USD,AWS Pricing API,2025-11-30T09:00:22.703065 +AWS,ap-southeast-2,r7gd.large,reserved_1y,all_upfront,0.221347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:53.326903 +AWS,ap-southeast-2,r7gd.large,reserved_1y,no_upfront,0.221347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:35.182102 +AWS,ap-southeast-2,r7gd.large,reserved_1y,partial_upfront,0.221347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:19.189625 +AWS,ap-southeast-2,r7gd.large,reserved_3y,all_upfront,0.073782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:54.955036 +AWS,ap-southeast-2,r7gd.large,reserved_3y,no_upfront,0.073782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:38.394900 +AWS,ap-southeast-2,r7gd.large,reserved_3y,partial_upfront,0.073782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:30.512364 +AWS,ap-southeast-2,r7gd.large,spot,NA,0.05271,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037330 +AWS,ap-southeast-2,r7gd.xlarge,on_demand,NA,0.3132,USD,AWS Pricing API,2025-11-30T09:00:32.279483 +AWS,ap-southeast-2,r7gd.xlarge,reserved_1y,all_upfront,0.184132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:02.831134 +AWS,ap-southeast-2,r7gd.xlarge,reserved_1y,no_upfront,0.184132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:44.793564 +AWS,ap-southeast-2,r7gd.xlarge,reserved_1y,partial_upfront,0.184132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:28.620757 +AWS,ap-southeast-2,r7gd.xlarge,reserved_3y,all_upfront,0.061377,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:04.312185 +AWS,ap-southeast-2,r7gd.xlarge,reserved_3y,no_upfront,0.061377,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:48.134019 +AWS,ap-southeast-2,r7gd.xlarge,reserved_3y,partial_upfront,0.061377,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:39.978117 +AWS,ap-southeast-2,r7gd.xlarge,spot,NA,0.123025,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037603 +AWS,ap-southeast-2,r7i.12xlarge,on_demand,NA,3.8052,USD,AWS Pricing API,2025-11-30T09:01:07.708781 +AWS,ap-southeast-2,r7i.12xlarge,reserved_1y,all_upfront,2.75183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:37.898090 +AWS,ap-southeast-2,r7i.12xlarge,reserved_1y,no_upfront,2.75183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:20.283817 +AWS,ap-southeast-2,r7i.12xlarge,reserved_1y,partial_upfront,2.75183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:03.593271 +AWS,ap-southeast-2,r7i.12xlarge,reserved_3y,all_upfront,2.75183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:38.707213 +AWS,ap-southeast-2,r7i.12xlarge,reserved_3y,no_upfront,2.75183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:24.044494 +AWS,ap-southeast-2,r7i.12xlarge,reserved_3y,partial_upfront,2.75183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:14.860979 +AWS,ap-southeast-2,r7i.12xlarge,spot,NA,1.313698,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038613 +AWS,ap-southeast-2,r7i.16xlarge,on_demand,NA,5.0736,USD,AWS Pricing API,2025-11-30T09:01:05.772520 +AWS,ap-southeast-2,r7i.16xlarge,reserved_1y,all_upfront,3.35246,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:36.001754 +AWS,ap-southeast-2,r7i.16xlarge,reserved_1y,no_upfront,3.35246,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:18.350674 +AWS,ap-southeast-2,r7i.16xlarge,reserved_1y,partial_upfront,3.35246,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:01.695308 +AWS,ap-southeast-2,r7i.16xlarge,reserved_3y,all_upfront,3.35246,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:36.839554 +AWS,ap-southeast-2,r7i.16xlarge,reserved_3y,no_upfront,3.35246,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:22.119789 +AWS,ap-southeast-2,r7i.16xlarge,reserved_3y,partial_upfront,3.35246,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:12.972094 +AWS,ap-southeast-2,r7i.16xlarge,spot,NA,1.720764,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038518 +AWS,ap-southeast-2,r7i.24xlarge,on_demand,NA,7.6104,USD,AWS Pricing API,2025-11-30T09:01:02.466811 +AWS,ap-southeast-2,r7i.24xlarge,reserved_1y,all_upfront,5.50367,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:32.747416 +AWS,ap-southeast-2,r7i.24xlarge,reserved_1y,no_upfront,5.50367,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:15.051743 +AWS,ap-southeast-2,r7i.24xlarge,reserved_1y,partial_upfront,5.50367,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:58.417302 +AWS,ap-southeast-2,r7i.24xlarge,reserved_3y,all_upfront,5.50367,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:33.642995 +AWS,ap-southeast-2,r7i.24xlarge,reserved_3y,no_upfront,5.50367,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:18.829576 +AWS,ap-southeast-2,r7i.24xlarge,reserved_3y,partial_upfront,5.50367,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:09.757029 +AWS,ap-southeast-2,r7i.24xlarge,spot,NA,2.593147,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038437 +AWS,ap-southeast-2,r7i.2xlarge,on_demand,NA,0.6342,USD,AWS Pricing API,2025-11-30T09:01:04.825167 +AWS,ap-southeast-2,r7i.2xlarge,reserved_1y,all_upfront,0.609273,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:35.050382 +AWS,ap-southeast-2,r7i.2xlarge,reserved_1y,no_upfront,0.609273,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:17.394743 +AWS,ap-southeast-2,r7i.2xlarge,reserved_1y,partial_upfront,0.609273,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:00.739453 +AWS,ap-southeast-2,r7i.2xlarge,reserved_3y,all_upfront,0.304631,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:35.908192 +AWS,ap-southeast-2,r7i.2xlarge,reserved_3y,no_upfront,0.304631,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:21.161263 +AWS,ap-southeast-2,r7i.2xlarge,reserved_3y,partial_upfront,0.304631,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:12.038644 +AWS,ap-southeast-2,r7i.2xlarge,spot,NA,0.221665,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038530 +AWS,ap-southeast-2,r7i.48xlarge,on_demand,NA,15.2208,USD,AWS Pricing API,2025-11-30T09:01:25.515805 +AWS,ap-southeast-2,r7i.48xlarge,reserved_1y,all_upfront,11.00733,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:55.448011 +AWS,ap-southeast-2,r7i.48xlarge,reserved_1y,no_upfront,11.00733,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:38.093784 +AWS,ap-southeast-2,r7i.48xlarge,reserved_1y,partial_upfront,11.00733,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:21.156376 +AWS,ap-southeast-2,r7i.48xlarge,reserved_3y,all_upfront,11.00733,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:55.959130 +AWS,ap-southeast-2,r7i.48xlarge,reserved_3y,no_upfront,11.00733,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:41.933722 +AWS,ap-southeast-2,r7i.48xlarge,reserved_3y,partial_upfront,11.00733,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:32.353270 +AWS,ap-southeast-2,r7i.48xlarge,spot,NA,5.06865,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.039051 +AWS,ap-southeast-2,r7i.4xlarge,on_demand,NA,1.2684,USD,AWS Pricing API,2025-11-30T09:01:02.328828 +AWS,ap-southeast-2,r7i.4xlarge,reserved_1y,all_upfront,1.067267,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:32.613839 +AWS,ap-southeast-2,r7i.4xlarge,reserved_1y,no_upfront,1.067267,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:14.916847 +AWS,ap-southeast-2,r7i.4xlarge,reserved_1y,partial_upfront,1.067267,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:58.282010 +AWS,ap-southeast-2,r7i.4xlarge,reserved_3y,all_upfront,0.533629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:33.510396 +AWS,ap-southeast-2,r7i.4xlarge,reserved_3y,no_upfront,0.533629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:18.692061 +AWS,ap-southeast-2,r7i.4xlarge,reserved_3y,partial_upfront,0.533629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:09.623649 +AWS,ap-southeast-2,r7i.4xlarge,spot,NA,0.453737,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038453 +AWS,ap-southeast-2,r7i.8xlarge,on_demand,NA,2.5368,USD,AWS Pricing API,2025-11-30T09:00:18.602550 +AWS,ap-southeast-2,r7i.8xlarge,reserved_1y,all_upfront,1.31593,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:49.405564 +AWS,ap-southeast-2,r7i.8xlarge,reserved_1y,no_upfront,1.31593,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:31.148500 +AWS,ap-southeast-2,r7i.8xlarge,reserved_1y,partial_upfront,1.31593,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:15.260085 +AWS,ap-southeast-2,r7i.8xlarge,reserved_3y,all_upfront,1.31593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:51.122305 +AWS,ap-southeast-2,r7i.8xlarge,reserved_3y,no_upfront,1.31593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:34.393999 +AWS,ap-southeast-2,r7i.8xlarge,reserved_3y,partial_upfront,1.31593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:26.626079 +AWS,ap-southeast-2,r7i.8xlarge,spot,NA,0.857541,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037216 +AWS,ap-southeast-2,r7i.large,on_demand,NA,0.15855,USD,AWS Pricing API,2025-11-30T09:00:33.090689 +AWS,ap-southeast-2,r7i.large,reserved_1y,all_upfront,0.13335,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:03.642788 +AWS,ap-southeast-2,r7i.large,reserved_1y,no_upfront,0.13335,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:45.620555 +AWS,ap-southeast-2,r7i.large,reserved_1y,partial_upfront,0.13335,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:29.438535 +AWS,ap-southeast-2,r7i.large,reserved_3y,all_upfront,0.066683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:05.124128 +AWS,ap-southeast-2,r7i.large,reserved_3y,no_upfront,0.066683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:48.959562 +AWS,ap-southeast-2,r7i.large,reserved_3y,partial_upfront,0.066683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:40.784535 +AWS,ap-southeast-2,r7i.large,spot,NA,0.053073,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037590 +AWS,ap-southeast-2,r7i.metal-24xl,on_demand,NA,7.6104,USD,AWS Pricing API,2025-11-30T09:00:49.341157 +AWS,ap-southeast-2,r7i.metal-24xl,reserved_1y,all_upfront,5.02869,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:19.772989 +AWS,ap-southeast-2,r7i.metal-24xl,reserved_1y,no_upfront,5.02869,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:01.872807 +AWS,ap-southeast-2,r7i.metal-24xl,reserved_1y,partial_upfront,5.02869,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:45.488551 +AWS,ap-southeast-2,r7i.metal-24xl,reserved_3y,all_upfront,5.02869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:20.939434 +AWS,ap-southeast-2,r7i.metal-24xl,reserved_3y,no_upfront,5.02869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:05.489066 +AWS,ap-southeast-2,r7i.metal-24xl,reserved_3y,partial_upfront,5.02869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:56.835818 +AWS,ap-southeast-2,r7i.metal-24xl,spot,NA,2.627989,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038039 +AWS,ap-southeast-2,r7i.metal-48xl,on_demand,NA,15.2208,USD,AWS Pricing API,2025-11-30T09:01:09.247377 +AWS,ap-southeast-2,r7i.metal-48xl,reserved_1y,all_upfront,9.386872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:39.396308 +AWS,ap-southeast-2,r7i.metal-48xl,reserved_1y,no_upfront,9.386872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:21.783393 +AWS,ap-southeast-2,r7i.metal-48xl,reserved_1y,partial_upfront,9.386872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:05.067573 +AWS,ap-southeast-2,r7i.metal-48xl,reserved_3y,all_upfront,3.128957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:40.171159 +AWS,ap-southeast-2,r7i.metal-48xl,reserved_3y,no_upfront,3.128957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:25.563395 +AWS,ap-southeast-2,r7i.metal-48xl,reserved_3y,partial_upfront,3.128957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:16.332995 +AWS,ap-southeast-2,r7i.metal-48xl,spot,NA,4.772837,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038649 +AWS,ap-southeast-2,r7i.xlarge,on_demand,NA,0.3171,USD,AWS Pricing API,2025-11-30T09:00:44.672825 +AWS,ap-southeast-2,r7i.xlarge,reserved_1y,all_upfront,0.447831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:15.161492 +AWS,ap-southeast-2,r7i.xlarge,reserved_1y,no_upfront,0.447831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:57.205077 +AWS,ap-southeast-2,r7i.xlarge,reserved_1y,partial_upfront,0.447831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:40.896085 +AWS,ap-southeast-2,r7i.xlarge,reserved_3y,all_upfront,0.149277,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:16.397787 +AWS,ap-southeast-2,r7i.xlarge,reserved_3y,no_upfront,0.149277,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:00.711439 +AWS,ap-southeast-2,r7i.xlarge,reserved_3y,partial_upfront,0.149277,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:52.230741 +AWS,ap-southeast-2,r7i.xlarge,spot,NA,0.110183,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037924 +AWS,ap-southeast-2,r8g.12xlarge,on_demand,NA,3.3888,USD,AWS Pricing API,2025-11-30T09:00:51.526887 +AWS,ap-southeast-2,r8g.12xlarge,reserved_1y,all_upfront,2.2392,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:21.917104 +AWS,ap-southeast-2,r8g.12xlarge,reserved_1y,no_upfront,2.2392,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:04.096889 +AWS,ap-southeast-2,r8g.12xlarge,reserved_1y,partial_upfront,2.2392,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:47.647454 +AWS,ap-southeast-2,r8g.12xlarge,reserved_3y,all_upfront,2.2392,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:23.051150 +AWS,ap-southeast-2,r8g.12xlarge,reserved_3y,no_upfront,2.2392,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:07.686710 +AWS,ap-southeast-2,r8g.12xlarge,reserved_3y,partial_upfront,2.2392,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:58.998319 +AWS,ap-southeast-2,r8g.12xlarge,spot,NA,1.192711,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038136 +AWS,ap-southeast-2,r8g.16xlarge,on_demand,NA,4.5184,USD,AWS Pricing API,2025-11-30T09:01:14.841712 +AWS,ap-southeast-2,r8g.16xlarge,reserved_1y,all_upfront,2.843399,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:44.904999 +AWS,ap-southeast-2,r8g.16xlarge,reserved_1y,no_upfront,2.843399,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:27.427484 +AWS,ap-southeast-2,r8g.16xlarge,reserved_1y,partial_upfront,2.843399,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:37:10.619501 +AWS,ap-southeast-2,r8g.16xlarge,reserved_3y,all_upfront,1.895606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:45.605620 +AWS,ap-southeast-2,r8g.16xlarge,reserved_3y,no_upfront,1.895606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:31.169514 +AWS,ap-southeast-2,r8g.16xlarge,reserved_3y,partial_upfront,1.895606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:21.834126 +AWS,ap-southeast-2,r8g.16xlarge,spot,NA,1.486495,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038769 +AWS,ap-southeast-2,r8g.24xlarge,on_demand,NA,6.7776,USD,AWS Pricing API,2025-11-30T09:00:42.758372 +AWS,ap-southeast-2,r8g.24xlarge,reserved_1y,all_upfront,9.570548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:13.247624 +AWS,ap-southeast-2,r8g.24xlarge,reserved_1y,no_upfront,9.570548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:55.305624 +AWS,ap-southeast-2,r8g.24xlarge,reserved_1y,partial_upfront,9.570548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:39.011283 +AWS,ap-southeast-2,r8g.24xlarge,reserved_3y,all_upfront,3.190183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:14.551655 +AWS,ap-southeast-2,r8g.24xlarge,reserved_3y,no_upfront,3.190183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:58.784130 +AWS,ap-southeast-2,r8g.24xlarge,reserved_3y,partial_upfront,3.190183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:50.359608 +AWS,ap-southeast-2,r8g.24xlarge,spot,NA,2.185217,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037889 +AWS,ap-southeast-2,r8g.2xlarge,on_demand,NA,0.5648,USD,AWS Pricing API,2025-11-30T09:00:55.321934 +AWS,ap-southeast-2,r8g.2xlarge,reserved_1y,all_upfront,0.3732,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:25.710006 +AWS,ap-southeast-2,r8g.2xlarge,reserved_1y,no_upfront,0.3732,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:07.929138 +AWS,ap-southeast-2,r8g.2xlarge,reserved_1y,partial_upfront,0.3732,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:51.398692 +AWS,ap-southeast-2,r8g.2xlarge,reserved_3y,all_upfront,0.3732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:26.769152 +AWS,ap-southeast-2,r8g.2xlarge,reserved_3y,no_upfront,0.3732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:11.650546 +AWS,ap-southeast-2,r8g.2xlarge,reserved_3y,partial_upfront,0.3732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:02.783528 +AWS,ap-southeast-2,r8g.2xlarge,spot,NA,0.222975,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038255 +AWS,ap-southeast-2,r8g.48xlarge,on_demand,NA,13.5552,USD,AWS Pricing API,2025-11-30T09:00:41.273111 +AWS,ap-southeast-2,r8g.48xlarge,reserved_1y,all_upfront,8.359703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:11.759162 +AWS,ap-southeast-2,r8g.48xlarge,reserved_1y,no_upfront,8.359703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:53.800957 +AWS,ap-southeast-2,r8g.48xlarge,reserved_1y,partial_upfront,8.359703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:37.529105 +AWS,ap-southeast-2,r8g.48xlarge,reserved_3y,all_upfront,2.786568,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:13.093318 +AWS,ap-southeast-2,r8g.48xlarge,reserved_3y,no_upfront,2.786568,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:57.282041 +AWS,ap-southeast-2,r8g.48xlarge,reserved_3y,partial_upfront,2.786568,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:48.884149 +AWS,ap-southeast-2,r8g.48xlarge,spot,NA,4.323443,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037810 +AWS,ap-southeast-2,r8g.4xlarge,on_demand,NA,1.1296,USD,AWS Pricing API,2025-11-30T09:00:59.817184 +AWS,ap-southeast-2,r8g.4xlarge,reserved_1y,all_upfront,0.710909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:30.175378 +AWS,ap-southeast-2,r8g.4xlarge,reserved_1y,no_upfront,0.710909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:12.457982 +AWS,ap-southeast-2,r8g.4xlarge,reserved_1y,partial_upfront,0.710909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:55.853798 +AWS,ap-southeast-2,r8g.4xlarge,reserved_3y,all_upfront,0.473923,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:31.131610 +AWS,ap-southeast-2,r8g.4xlarge,reserved_3y,no_upfront,0.473923,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:16.209766 +AWS,ap-southeast-2,r8g.4xlarge,reserved_3y,partial_upfront,0.473923,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:07.203545 +AWS,ap-southeast-2,r8g.4xlarge,spot,NA,0.413983,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038365 +AWS,ap-southeast-2,r8g.8xlarge,on_demand,NA,2.2592,USD,AWS Pricing API,2025-11-30T09:00:20.104723 +AWS,ap-southeast-2,r8g.8xlarge,reserved_1y,all_upfront,1.900905,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:50.882505 +AWS,ap-southeast-2,r8g.8xlarge,reserved_1y,no_upfront,1.900905,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:32.676070 +AWS,ap-southeast-2,r8g.8xlarge,reserved_1y,partial_upfront,1.900905,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:16.775412 +AWS,ap-southeast-2,r8g.8xlarge,reserved_3y,all_upfront,0.950448,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:52.570312 +AWS,ap-southeast-2,r8g.8xlarge,reserved_3y,no_upfront,0.950448,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:35.913575 +AWS,ap-southeast-2,r8g.8xlarge,reserved_3y,partial_upfront,0.950448,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:28.094708 +AWS,ap-southeast-2,r8g.8xlarge,spot,NA,1.025093,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037241 +AWS,ap-southeast-2,r8g.large,on_demand,NA,0.1412,USD,AWS Pricing API,2025-11-30T09:00:58.318965 +AWS,ap-southeast-2,r8g.large,reserved_1y,all_upfront,0.118855,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:28.684411 +AWS,ap-southeast-2,r8g.large,reserved_1y,no_upfront,0.118855,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:15:10.931459 +AWS,ap-southeast-2,r8g.large,reserved_1y,partial_upfront,0.118855,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:54.359039 +AWS,ap-southeast-2,r8g.large,reserved_3y,all_upfront,0.059418,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:29.675451 +AWS,ap-southeast-2,r8g.large,reserved_3y,no_upfront,0.059418,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:20:14.689482 +AWS,ap-southeast-2,r8g.large,reserved_3y,partial_upfront,0.059418,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:42:05.737999 +AWS,ap-southeast-2,r8g.large,spot,NA,0.049572,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038335 +AWS,ap-southeast-2,r8g.xlarge,on_demand,NA,0.2824,USD,AWS Pricing API,2025-11-30T09:00:40.854478 +AWS,ap-southeast-2,r8g.xlarge,reserved_1y,all_upfront,0.174201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:58:11.344837 +AWS,ap-southeast-2,r8g.xlarge,reserved_1y,no_upfront,0.174201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:53.392716 +AWS,ap-southeast-2,r8g.xlarge,reserved_1y,partial_upfront,0.174201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:37.122394 +AWS,ap-southeast-2,r8g.xlarge,reserved_3y,all_upfront,0.058067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:03:12.694336 +AWS,ap-southeast-2,r8g.xlarge,reserved_3y,no_upfront,0.058067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:56.867162 +AWS,ap-southeast-2,r8g.xlarge,reserved_3y,partial_upfront,0.058067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:48.480208 +AWS,ap-southeast-2,r8g.xlarge,spot,NA,0.10914,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037822 +AWS,ap-southeast-2,r8gd.12xlarge,on_demand,NA,4.05888,USD,AWS Pricing API,2025-11-30T09:00:59.129842 +AWS,ap-southeast-2,r8gd.12xlarge,spot,NA,0.928411,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038376 +AWS,ap-southeast-2,r8gd.16xlarge,on_demand,NA,5.41184,USD,AWS Pricing API,2025-11-30T09:00:47.416574 +AWS,ap-southeast-2,r8gd.16xlarge,spot,NA,1.026763,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038011 +AWS,ap-southeast-2,r8gd.24xlarge,on_demand,NA,8.11776,USD,AWS Pricing API,2025-11-30T09:00:34.737684 +AWS,ap-southeast-2,r8gd.24xlarge,spot,NA,1.284269,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037663 +AWS,ap-southeast-2,r8gd.2xlarge,on_demand,NA,0.67648,USD,AWS Pricing API,2025-11-30T09:00:40.307184 +AWS,ap-southeast-2,r8gd.2xlarge,spot,NA,0.225234,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037826 +AWS,ap-southeast-2,r8gd.48xlarge,on_demand,NA,16.23552,USD,AWS Pricing API,2025-11-30T09:01:14.571051 +AWS,ap-southeast-2,r8gd.48xlarge,spot,NA,2.687761,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038753 +AWS,ap-southeast-2,r8gd.4xlarge,on_demand,NA,1.35296,USD,AWS Pricing API,2025-11-30T09:01:08.972478 +AWS,ap-southeast-2,r8gd.4xlarge,spot,NA,0.421146,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038645 +AWS,ap-southeast-2,r8gd.8xlarge,on_demand,NA,2.70592,USD,AWS Pricing API,2025-11-30T09:00:36.355176 +AWS,ap-southeast-2,r8gd.8xlarge,spot,NA,1.014127,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037691 +AWS,ap-southeast-2,r8gd.large,on_demand,NA,0.16912,USD,AWS Pricing API,2025-11-30T09:00:29.261357 +AWS,ap-southeast-2,r8gd.large,spot,NA,0.036775,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037519 +AWS,ap-southeast-2,r8gd.xlarge,on_demand,NA,0.33824,USD,AWS Pricing API,2025-11-30T09:00:30.075325 +AWS,ap-southeast-2,r8gd.xlarge,spot,NA,0.085226,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037499 +AWS,ap-southeast-2,r8i.12xlarge,on_demand,NA,3.99552,USD,AWS Pricing API,2025-11-30T09:00:36.222819 +AWS,ap-southeast-2,r8i.12xlarge,spot,NA,1.793995,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037707 +AWS,ap-southeast-2,r8i.16xlarge,on_demand,NA,5.32736,USD,AWS Pricing API,2025-11-30T09:01:08.672106 +AWS,ap-southeast-2,r8i.16xlarge,spot,NA,2.367692,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038629 +AWS,ap-southeast-2,r8i.24xlarge,on_demand,NA,7.99104,USD,AWS Pricing API,2025-11-30T09:01:14.433560 +AWS,ap-southeast-2,r8i.24xlarge,spot,NA,3.561085,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038785 +AWS,ap-southeast-2,r8i.2xlarge,on_demand,NA,0.66592,USD,AWS Pricing API,2025-11-30T09:01:02.603594 +AWS,ap-southeast-2,r8i.2xlarge,spot,NA,0.372365,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038473 +AWS,ap-southeast-2,r8i.48xlarge,on_demand,NA,15.98208,USD,AWS Pricing API,2025-11-30T09:01:21.840691 +AWS,ap-southeast-2,r8i.48xlarge,spot,NA,7.083555,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038945 +AWS,ap-southeast-2,r8i.4xlarge,on_demand,NA,1.33184,USD,AWS Pricing API,2025-11-30T09:00:57.907837 +AWS,ap-southeast-2,r8i.4xlarge,spot,NA,0.617161,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038356 +AWS,ap-southeast-2,r8i.8xlarge,on_demand,NA,2.66368,USD,AWS Pricing API,2025-11-30T09:00:51.111634 +AWS,ap-southeast-2,r8i.8xlarge,spot,NA,1.228507,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.038157 +AWS,ap-southeast-2,r8i.large,on_demand,NA,0.16648,USD,AWS Pricing API,2025-11-30T09:00:15.077222 +AWS,ap-southeast-2,r8i.large,spot,NA,0.074445,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037084 +AWS,ap-southeast-2,r8i.xlarge,on_demand,NA,0.33296,USD,AWS Pricing API,2025-11-30T09:00:25.553789 +AWS,ap-southeast-2,r8i.xlarge,spot,NA,0.15412,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037405 +AWS,ap-southeast-2,z1d.12xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T09:00:09.692812 +AWS,ap-southeast-2,z1d.12xlarge,reserved_1y,all_upfront,7.059589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:40.700846 +AWS,ap-southeast-2,z1d.12xlarge,reserved_1y,no_upfront,7.059589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:22.398520 +AWS,ap-southeast-2,z1d.12xlarge,reserved_1y,partial_upfront,7.059589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:06.636024 +AWS,ap-southeast-2,z1d.12xlarge,reserved_3y,all_upfront,2.353196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:42.648545 +AWS,ap-southeast-2,z1d.12xlarge,reserved_3y,no_upfront,2.353196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:25.610830 +AWS,ap-southeast-2,z1d.12xlarge,reserved_3y,partial_upfront,2.353196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:18.027185 +AWS,ap-southeast-2,z1d.12xlarge,spot,NA,1.738091,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.036975 +AWS,ap-southeast-2,z1d.2xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T09:00:13.166281 +AWS,ap-southeast-2,z1d.2xlarge,reserved_1y,all_upfront,0.696032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:44.071710 +AWS,ap-southeast-2,z1d.2xlarge,reserved_1y,no_upfront,0.696032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:25.804667 +AWS,ap-southeast-2,z1d.2xlarge,reserved_1y,partial_upfront,0.696032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:10.011392 +AWS,ap-southeast-2,z1d.2xlarge,reserved_3y,all_upfront,0.348011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:45.969103 +AWS,ap-southeast-2,z1d.2xlarge,reserved_3y,no_upfront,0.348011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:29.036975 +AWS,ap-southeast-2,z1d.2xlarge,reserved_3y,partial_upfront,0.348011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:21.389528 +AWS,ap-southeast-2,z1d.2xlarge,spot,NA,0.355078,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037050 +AWS,ap-southeast-2,z1d.3xlarge,on_demand,NA,1.356,USD,AWS Pricing API,2025-11-30T09:00:11.986416 +AWS,ap-southeast-2,z1d.3xlarge,reserved_1y,all_upfront,0.993,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:43.000659 +AWS,ap-southeast-2,z1d.3xlarge,reserved_1y,no_upfront,0.993,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:24.717890 +AWS,ap-southeast-2,z1d.3xlarge,reserved_1y,partial_upfront,0.993,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:08.933867 +AWS,ap-southeast-2,z1d.3xlarge,reserved_3y,all_upfront,0.993,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:44.911617 +AWS,ap-southeast-2,z1d.3xlarge,reserved_3y,no_upfront,0.993,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:27.944736 +AWS,ap-southeast-2,z1d.3xlarge,reserved_3y,partial_upfront,0.993,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:20.310465 +AWS,ap-southeast-2,z1d.3xlarge,spot,NA,0.501986,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037016 +AWS,ap-southeast-2,z1d.6xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T09:00:12.126324 +AWS,ap-southeast-2,z1d.6xlarge,reserved_1y,all_upfront,1.627584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:43.137223 +AWS,ap-southeast-2,z1d.6xlarge,reserved_1y,no_upfront,1.627584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:24.853651 +AWS,ap-southeast-2,z1d.6xlarge,reserved_1y,partial_upfront,1.627584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:09.069471 +AWS,ap-southeast-2,z1d.6xlarge,reserved_3y,all_upfront,1.085195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:45.048205 +AWS,ap-southeast-2,z1d.6xlarge,reserved_3y,no_upfront,1.085195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:28.080635 +AWS,ap-southeast-2,z1d.6xlarge,reserved_3y,partial_upfront,1.085195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:20.442904 +AWS,ap-southeast-2,z1d.6xlarge,spot,NA,0.948009,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037024 +AWS,ap-southeast-2,z1d.large,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T09:00:12.405644 +AWS,ap-southeast-2,z1d.large,reserved_1y,all_upfront,0.135808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:43.402704 +AWS,ap-southeast-2,z1d.large,reserved_1y,no_upfront,0.135808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:25.126029 +AWS,ap-southeast-2,z1d.large,reserved_1y,partial_upfront,0.135808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:09.339841 +AWS,ap-southeast-2,z1d.large,reserved_3y,all_upfront,0.090603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:45.314463 +AWS,ap-southeast-2,z1d.large,reserved_3y,no_upfront,0.090603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:28.353134 +AWS,ap-southeast-2,z1d.large,reserved_3y,partial_upfront,0.090603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:20.710045 +AWS,ap-southeast-2,z1d.large,spot,NA,0.073987,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037046 +AWS,ap-southeast-2,z1d.xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T09:00:13.441032 +AWS,ap-southeast-2,z1d.xlarge,reserved_1y,all_upfront,0.271616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:57:44.342423 +AWS,ap-southeast-2,z1d.xlarge,reserved_1y,no_upfront,0.271616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:14:26.075178 +AWS,ap-southeast-2,z1d.xlarge,reserved_1y,partial_upfront,0.271616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:36:10.280816 +AWS,ap-southeast-2,z1d.xlarge,reserved_3y,all_upfront,0.181205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:02:46.232847 +AWS,ap-southeast-2,z1d.xlarge,reserved_3y,no_upfront,0.181205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:19:29.319933 +AWS,ap-southeast-2,z1d.xlarge,reserved_3y,partial_upfront,0.181205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:41:21.656538 +AWS,ap-southeast-2,z1d.xlarge,spot,NA,0.170349,USD,AWS EC2 API (90-day avg),2025-11-30T09:39:18.037054 +AWS,ap-southeast-3,c5.12xlarge,on_demand,NA,2.352,USD,AWS Pricing API,2025-11-30T08:55:56.974100 +AWS,ap-southeast-3,c5.12xlarge,reserved_1y,all_upfront,2.253068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:28.457592 +AWS,ap-southeast-3,c5.12xlarge,reserved_1y,no_upfront,2.253068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:07.773692 +AWS,ap-southeast-3,c5.12xlarge,reserved_1y,partial_upfront,2.253068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:55.367139 +AWS,ap-southeast-3,c5.12xlarge,reserved_3y,all_upfront,1.126356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:35.125543 +AWS,ap-southeast-3,c5.12xlarge,reserved_3y,no_upfront,1.126356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:08.942949 +AWS,ap-southeast-3,c5.12xlarge,reserved_3y,partial_upfront,1.126356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:07.616873 +AWS,ap-southeast-3,c5.12xlarge,spot,NA,0.26171,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854484 +AWS,ap-southeast-3,c5.18xlarge,on_demand,NA,3.528,USD,AWS Pricing API,2025-11-30T08:56:05.372895 +AWS,ap-southeast-3,c5.18xlarge,reserved_1y,all_upfront,2.822781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:36.808022 +AWS,ap-southeast-3,c5.18xlarge,reserved_1y,no_upfront,2.822781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:16.295001 +AWS,ap-southeast-3,c5.18xlarge,reserved_1y,partial_upfront,2.822781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:03.688554 +AWS,ap-southeast-3,c5.18xlarge,reserved_3y,all_upfront,1.411594,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:43.320251 +AWS,ap-southeast-3,c5.18xlarge,reserved_3y,no_upfront,1.411594,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:17.416380 +AWS,ap-southeast-3,c5.18xlarge,reserved_3y,partial_upfront,1.411594,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:15.913589 +AWS,ap-southeast-3,c5.18xlarge,spot,NA,0.686254,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854591 +AWS,ap-southeast-3,c5.24xlarge,on_demand,NA,4.704,USD,AWS Pricing API,2025-11-30T08:55:11.056046 +AWS,ap-southeast-3,c5.24xlarge,reserved_1y,all_upfront,3.403653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:41.944965 +AWS,ap-southeast-3,c5.24xlarge,reserved_1y,no_upfront,3.403653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:20.730560 +AWS,ap-southeast-3,c5.24xlarge,reserved_1y,partial_upfront,3.403653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:09.100423 +AWS,ap-southeast-3,c5.24xlarge,reserved_3y,all_upfront,1.134551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:49.604637 +AWS,ap-southeast-3,c5.24xlarge,reserved_3y,no_upfront,1.134551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:21.566106 +AWS,ap-southeast-3,c5.24xlarge,reserved_3y,partial_upfront,1.134551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:21.442136 +AWS,ap-southeast-3,c5.24xlarge,spot,NA,0.479466,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853775 +AWS,ap-southeast-3,c5.4xlarge,on_demand,NA,0.784,USD,AWS Pricing API,2025-11-30T08:55:49.950303 +AWS,ap-southeast-3,c5.4xlarge,reserved_1y,all_upfront,0.460959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:21.317850 +AWS,ap-southeast-3,c5.4xlarge,reserved_1y,no_upfront,0.460959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:00.476449 +AWS,ap-southeast-3,c5.4xlarge,reserved_1y,partial_upfront,0.460959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:48.238827 +AWS,ap-southeast-3,c5.4xlarge,reserved_3y,all_upfront,0.153653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:28.082155 +AWS,ap-southeast-3,c5.4xlarge,reserved_3y,no_upfront,0.153653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:01.647343 +AWS,ap-southeast-3,c5.4xlarge,reserved_3y,partial_upfront,0.153653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:00.519711 +AWS,ap-southeast-3,c5.4xlarge,spot,NA,0.099745,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854377 +AWS,ap-southeast-3,c5.9xlarge,on_demand,NA,1.764,USD,AWS Pricing API,2025-11-30T08:55:10.374282 +AWS,ap-southeast-3,c5.9xlarge,reserved_1y,all_upfront,1.111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:41.279066 +AWS,ap-southeast-3,c5.9xlarge,reserved_1y,no_upfront,1.111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:20.036784 +AWS,ap-southeast-3,c5.9xlarge,reserved_1y,partial_upfront,1.111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:08.436720 +AWS,ap-southeast-3,c5.9xlarge,reserved_3y,all_upfront,1.111,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:48.946593 +AWS,ap-southeast-3,c5.9xlarge,reserved_3y,no_upfront,1.111,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:20.885758 +AWS,ap-southeast-3,c5.9xlarge,reserved_3y,partial_upfront,1.111,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:20.774666 +AWS,ap-southeast-3,c5.9xlarge,spot,NA,0.254009,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853767 +AWS,ap-southeast-3,c5d.12xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T08:56:17.837257 +AWS,ap-southeast-3,c5d.12xlarge,reserved_1y,all_upfront,2.150785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:49.502602 +AWS,ap-southeast-3,c5d.12xlarge,reserved_1y,no_upfront,2.150785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:29.067900 +AWS,ap-southeast-3,c5d.12xlarge,reserved_1y,partial_upfront,2.150785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:16.283954 +AWS,ap-southeast-3,c5d.12xlarge,reserved_3y,all_upfront,1.075595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:55.666732 +AWS,ap-southeast-3,c5d.12xlarge,reserved_3y,no_upfront,1.075595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:30.294852 +AWS,ap-southeast-3,c5d.12xlarge,reserved_3y,partial_upfront,1.075595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:28.449664 +AWS,ap-southeast-3,c5d.12xlarge,spot,NA,0.302824,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854717 +AWS,ap-southeast-3,c5d.18xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:55:41.994130 +AWS,ap-southeast-3,c5d.18xlarge,reserved_1y,all_upfront,4.548059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:13.245838 +AWS,ap-southeast-3,c5d.18xlarge,reserved_1y,no_upfront,4.548059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:52.340874 +AWS,ap-southeast-3,c5d.18xlarge,reserved_1y,partial_upfront,4.548059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:40.175902 +AWS,ap-southeast-3,c5d.18xlarge,reserved_3y,all_upfront,1.51602,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:20.203366 +AWS,ap-southeast-3,c5d.18xlarge,reserved_3y,no_upfront,1.51602,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:53.452729 +AWS,ap-southeast-3,c5d.18xlarge,reserved_3y,partial_upfront,1.51602,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:52.501355 +AWS,ap-southeast-3,c5d.18xlarge,spot,NA,0.40474,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854288 +AWS,ap-southeast-3,c5d.24xlarge,on_demand,NA,5.376,USD,AWS Pricing API,2025-11-30T08:55:15.191448 +AWS,ap-southeast-3,c5d.24xlarge,reserved_1y,all_upfront,3.86758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:46.116822 +AWS,ap-southeast-3,c5d.24xlarge,reserved_1y,no_upfront,3.86758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:24.986988 +AWS,ap-southeast-3,c5d.24xlarge,reserved_1y,partial_upfront,3.86758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:13.231683 +AWS,ap-southeast-3,c5d.24xlarge,reserved_3y,all_upfront,1.289193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:53.681781 +AWS,ap-southeast-3,c5d.24xlarge,reserved_3y,no_upfront,1.289193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:25.787623 +AWS,ap-southeast-3,c5d.24xlarge,reserved_3y,partial_upfront,1.289193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:25.595149 +AWS,ap-southeast-3,c5d.24xlarge,spot,NA,0.549884,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853811 +AWS,ap-southeast-3,c5d.2xlarge,on_demand,NA,0.448,USD,AWS Pricing API,2025-11-30T08:56:01.845893 +AWS,ap-southeast-3,c5d.2xlarge,reserved_1y,all_upfront,0.345,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:33.309518 +AWS,ap-southeast-3,c5d.2xlarge,reserved_1y,no_upfront,0.345,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:12.753736 +AWS,ap-southeast-3,c5d.2xlarge,reserved_1y,partial_upfront,0.345,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:00.199265 +AWS,ap-southeast-3,c5d.2xlarge,reserved_3y,all_upfront,0.345,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:39.892063 +AWS,ap-southeast-3,c5d.2xlarge,reserved_3y,no_upfront,0.345,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:13.858161 +AWS,ap-southeast-3,c5d.2xlarge,reserved_3y,partial_upfront,0.345,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:12.433863 +AWS,ap-southeast-3,c5d.2xlarge,spot,NA,0.121344,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854539 +AWS,ap-southeast-3,c5d.4xlarge,on_demand,NA,0.896,USD,AWS Pricing API,2025-11-30T08:55:22.621746 +AWS,ap-southeast-3,c5d.4xlarge,reserved_1y,all_upfront,0.537836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:53.649318 +AWS,ap-southeast-3,c5d.4xlarge,reserved_1y,no_upfront,0.537836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:32.600996 +AWS,ap-southeast-3,c5d.4xlarge,reserved_1y,partial_upfront,0.537836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:20.752561 +AWS,ap-southeast-3,c5d.4xlarge,reserved_3y,all_upfront,0.358612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:01.066668 +AWS,ap-southeast-3,c5d.4xlarge,reserved_3y,no_upfront,0.358612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:33.553818 +AWS,ap-southeast-3,c5d.4xlarge,reserved_3y,partial_upfront,0.358612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:33.091669 +AWS,ap-southeast-3,c5d.4xlarge,spot,NA,0.174436,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853946 +AWS,ap-southeast-3,c5d.9xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:55:51.520888 +AWS,ap-southeast-3,c5d.9xlarge,reserved_1y,all_upfront,1.612589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:22.916112 +AWS,ap-southeast-3,c5d.9xlarge,reserved_1y,no_upfront,1.612589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:02.127134 +AWS,ap-southeast-3,c5d.9xlarge,reserved_1y,partial_upfront,1.612589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:49.844842 +AWS,ap-southeast-3,c5d.9xlarge,reserved_3y,all_upfront,0.806196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:29.715287 +AWS,ap-southeast-3,c5d.9xlarge,reserved_3y,no_upfront,0.806196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:03.324106 +AWS,ap-southeast-3,c5d.9xlarge,reserved_3y,partial_upfront,0.806196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:02.125977 +AWS,ap-southeast-3,c5d.9xlarge,spot,NA,0.25621,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854404 +AWS,ap-southeast-3,c5d.xlarge,on_demand,NA,0.224,USD,AWS Pricing API,2025-11-30T08:55:47.310463 +AWS,ap-southeast-3,c5d.xlarge,reserved_1y,all_upfront,0.164192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:18.637791 +AWS,ap-southeast-3,c5d.xlarge,reserved_1y,no_upfront,0.164192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:57.772168 +AWS,ap-southeast-3,c5d.xlarge,reserved_1y,partial_upfront,0.164192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:45.535297 +AWS,ap-southeast-3,c5d.xlarge,reserved_3y,all_upfront,0.109397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:25.451846 +AWS,ap-southeast-3,c5d.xlarge,reserved_3y,no_upfront,0.109397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:58.913861 +AWS,ap-southeast-3,c5d.xlarge,reserved_3y,partial_upfront,0.109397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:57.843982 +AWS,ap-southeast-3,c5d.xlarge,spot,NA,0.063698,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854349 +AWS,ap-southeast-3,c5n.18xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:56:07.402458 +AWS,ap-southeast-3,c5n.18xlarge,reserved_1y,all_upfront,2.678155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:38.862597 +AWS,ap-southeast-3,c5n.18xlarge,reserved_1y,no_upfront,2.678155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:18.357413 +AWS,ap-southeast-3,c5n.18xlarge,reserved_1y,partial_upfront,2.678155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:05.706001 +AWS,ap-southeast-3,c5n.18xlarge,reserved_3y,all_upfront,1.785385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:45.282670 +AWS,ap-southeast-3,c5n.18xlarge,reserved_3y,no_upfront,1.785385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:19.475441 +AWS,ap-southeast-3,c5n.18xlarge,reserved_3y,partial_upfront,1.785385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:17.913708 +AWS,ap-southeast-3,c5n.18xlarge,spot,NA,1.343196,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854595 +AWS,ap-southeast-3,c5n.2xlarge,on_demand,NA,0.496,USD,AWS Pricing API,2025-11-30T08:56:17.313155 +AWS,ap-southeast-3,c5n.2xlarge,reserved_1y,all_upfront,0.358493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:48.965846 +AWS,ap-southeast-3,c5n.2xlarge,reserved_1y,no_upfront,0.358493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:28.533306 +AWS,ap-southeast-3,c5n.2xlarge,reserved_1y,partial_upfront,0.358493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:15.754451 +AWS,ap-southeast-3,c5n.2xlarge,reserved_3y,all_upfront,0.179498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:55.137308 +AWS,ap-southeast-3,c5n.2xlarge,reserved_3y,no_upfront,0.179498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:29.753555 +AWS,ap-southeast-3,c5n.2xlarge,reserved_3y,partial_upfront,0.179498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:27.913337 +AWS,ap-southeast-3,c5n.2xlarge,spot,NA,0.089052,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854721 +AWS,ap-southeast-3,c5n.4xlarge,on_demand,NA,0.992,USD,AWS Pricing API,2025-11-30T08:55:53.906513 +AWS,ap-southeast-3,c5n.4xlarge,reserved_1y,all_upfront,0.445,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:25.344269 +AWS,ap-southeast-3,c5n.4xlarge,reserved_1y,no_upfront,0.445,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:04.609135 +AWS,ap-southeast-3,c5n.4xlarge,reserved_1y,partial_upfront,0.445,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:52.272434 +AWS,ap-southeast-3,c5n.4xlarge,reserved_3y,all_upfront,0.445,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:32.088213 +AWS,ap-southeast-3,c5n.4xlarge,reserved_3y,no_upfront,0.445,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:05.781302 +AWS,ap-southeast-3,c5n.4xlarge,reserved_3y,partial_upfront,0.445,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:04.526410 +AWS,ap-southeast-3,c5n.4xlarge,spot,NA,0.162109,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854436 +AWS,ap-southeast-3,c5n.9xlarge,on_demand,NA,2.232,USD,AWS Pricing API,2025-11-30T08:56:07.266619 +AWS,ap-southeast-3,c5n.9xlarge,reserved_1y,all_upfront,1.73,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:38.730302 +AWS,ap-southeast-3,c5n.9xlarge,reserved_1y,no_upfront,1.73,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:18.218034 +AWS,ap-southeast-3,c5n.9xlarge,reserved_1y,partial_upfront,1.73,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:05.560206 +AWS,ap-southeast-3,c5n.9xlarge,reserved_3y,all_upfront,1.73,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:45.151388 +AWS,ap-southeast-3,c5n.9xlarge,reserved_3y,no_upfront,1.73,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:19.339594 +AWS,ap-southeast-3,c5n.9xlarge,reserved_3y,partial_upfront,1.73,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:17.777636 +AWS,ap-southeast-3,c5n.9xlarge,spot,NA,0.348457,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854599 +AWS,ap-southeast-3,c5n.metal,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:55:16.790346 +AWS,ap-southeast-3,c5n.metal,reserved_1y,all_upfront,3.295717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:47.734114 +AWS,ap-southeast-3,c5n.metal,reserved_1y,no_upfront,3.295717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:26.630393 +AWS,ap-southeast-3,c5n.metal,reserved_1y,partial_upfront,3.295717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:14.865597 +AWS,ap-southeast-3,c5n.metal,reserved_3y,all_upfront,2.197239,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:55.255866 +AWS,ap-southeast-3,c5n.metal,reserved_3y,no_upfront,2.197239,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:27.444964 +AWS,ap-southeast-3,c5n.metal,reserved_3y,partial_upfront,2.197239,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:27.210595 +AWS,ap-southeast-3,c5n.metal,spot,NA,1.774325,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853828 +AWS,ap-southeast-3,c5n.xlarge,on_demand,NA,0.248,USD,AWS Pricing API,2025-11-30T08:56:09.254137 +AWS,ap-southeast-3,c5n.xlarge,reserved_1y,all_upfront,0.252397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:40.754149 +AWS,ap-southeast-3,c5n.xlarge,reserved_1y,no_upfront,0.252397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:20.246735 +AWS,ap-southeast-3,c5n.xlarge,reserved_1y,partial_upfront,0.252397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:07.597459 +AWS,ap-southeast-3,c5n.xlarge,reserved_3y,all_upfront,0.084132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:47.124046 +AWS,ap-southeast-3,c5n.xlarge,reserved_3y,no_upfront,0.084132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:21.399594 +AWS,ap-southeast-3,c5n.xlarge,reserved_3y,partial_upfront,0.084132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:19.772297 +AWS,ap-southeast-3,c5n.xlarge,spot,NA,0.052053,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854643 +AWS,ap-southeast-3,c6g.12xlarge,on_demand,NA,1.8816,USD,AWS Pricing API,2025-11-30T08:55:21.957102 +AWS,ap-southeast-3,c6g.12xlarge,reserved_1y,all_upfront,2.623744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:52.981062 +AWS,ap-southeast-3,c6g.12xlarge,reserved_1y,no_upfront,2.623744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:31.910869 +AWS,ap-southeast-3,c6g.12xlarge,reserved_1y,partial_upfront,2.623744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:20.085034 +AWS,ap-southeast-3,c6g.12xlarge,reserved_3y,all_upfront,0.874581,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:00.407075 +AWS,ap-southeast-3,c6g.12xlarge,reserved_3y,no_upfront,0.874581,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:32.867943 +AWS,ap-southeast-3,c6g.12xlarge,reserved_3y,partial_upfront,0.874581,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:32.417723 +AWS,ap-southeast-3,c6g.12xlarge,spot,NA,0.207736,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853920 +AWS,ap-southeast-3,c6g.16xlarge,on_demand,NA,2.5088,USD,AWS Pricing API,2025-11-30T08:55:39.614969 +AWS,ap-southeast-3,c6g.16xlarge,reserved_1y,all_upfront,2.007051,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:10.826173 +AWS,ap-southeast-3,c6g.16xlarge,reserved_1y,no_upfront,2.007051,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:49.916511 +AWS,ap-southeast-3,c6g.16xlarge,reserved_1y,partial_upfront,2.007051,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:37.771500 +AWS,ap-southeast-3,c6g.16xlarge,reserved_3y,all_upfront,1.00355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:17.848685 +AWS,ap-southeast-3,c6g.16xlarge,reserved_3y,no_upfront,1.00355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:50.989966 +AWS,ap-southeast-3,c6g.16xlarge,reserved_3y,partial_upfront,1.00355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:50.106597 +AWS,ap-southeast-3,c6g.16xlarge,spot,NA,0.283405,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854234 +AWS,ap-southeast-3,c6g.2xlarge,on_demand,NA,0.3136,USD,AWS Pricing API,2025-11-30T08:55:51.383354 +AWS,ap-southeast-3,c6g.2xlarge,reserved_1y,all_upfront,0.184361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:22.781284 +AWS,ap-southeast-3,c6g.2xlarge,reserved_1y,no_upfront,0.184361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:01.979651 +AWS,ap-southeast-3,c6g.2xlarge,reserved_1y,partial_upfront,0.184361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:49.697318 +AWS,ap-southeast-3,c6g.2xlarge,reserved_3y,all_upfront,0.061454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:29.585133 +AWS,ap-southeast-3,c6g.2xlarge,reserved_3y,no_upfront,0.061454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:03.185586 +AWS,ap-southeast-3,c6g.2xlarge,reserved_3y,partial_upfront,0.061454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:01.991099 +AWS,ap-southeast-3,c6g.2xlarge,spot,NA,0.048009,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854400 +AWS,ap-southeast-3,c6g.4xlarge,on_demand,NA,0.6272,USD,AWS Pricing API,2025-11-30T08:56:10.065282 +AWS,ap-southeast-3,c6g.4xlarge,reserved_1y,all_upfront,0.4851,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:41.565834 +AWS,ap-southeast-3,c6g.4xlarge,reserved_1y,no_upfront,0.4851,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:21.055962 +AWS,ap-southeast-3,c6g.4xlarge,reserved_1y,partial_upfront,0.4851,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:08.398781 +AWS,ap-southeast-3,c6g.4xlarge,reserved_3y,all_upfront,0.4851,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:47.914689 +AWS,ap-southeast-3,c6g.4xlarge,reserved_3y,no_upfront,0.4851,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:22.225724 +AWS,ap-southeast-3,c6g.4xlarge,reserved_3y,partial_upfront,0.4851,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:20.575216 +AWS,ap-southeast-3,c6g.4xlarge,spot,NA,0.070248,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854627 +AWS,ap-southeast-3,c6g.8xlarge,on_demand,NA,1.2544,USD,AWS Pricing API,2025-11-30T08:55:38.018502 +AWS,ap-southeast-3,c6g.8xlarge,reserved_1y,all_upfront,0.9702,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:09.188262 +AWS,ap-southeast-3,c6g.8xlarge,reserved_1y,no_upfront,0.9702,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:48.288332 +AWS,ap-southeast-3,c6g.8xlarge,reserved_1y,partial_upfront,0.9702,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:36.162196 +AWS,ap-southeast-3,c6g.8xlarge,reserved_3y,all_upfront,0.9702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:16.250493 +AWS,ap-southeast-3,c6g.8xlarge,reserved_3y,no_upfront,0.9702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:49.345311 +AWS,ap-southeast-3,c6g.8xlarge,reserved_3y,partial_upfront,0.9702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:48.496511 +AWS,ap-southeast-3,c6g.8xlarge,spot,NA,0.175607,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854212 +AWS,ap-southeast-3,c6g.xlarge,on_demand,NA,0.1568,USD,AWS Pricing API,2025-11-30T08:56:15.329155 +AWS,ap-southeast-3,c6g.xlarge,reserved_1y,all_upfront,0.115463,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:46.949109 +AWS,ap-southeast-3,c6g.xlarge,reserved_1y,no_upfront,0.115463,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:26.507663 +AWS,ap-southeast-3,c6g.xlarge,reserved_1y,partial_upfront,0.115463,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:13.731677 +AWS,ap-southeast-3,c6g.xlarge,reserved_3y,all_upfront,0.076954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:53.172548 +AWS,ap-southeast-3,c6g.xlarge,reserved_3y,no_upfront,0.076954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:27.704505 +AWS,ap-southeast-3,c6g.xlarge,reserved_3y,partial_upfront,0.076954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:25.919374 +AWS,ap-southeast-3,c6g.xlarge,spot,NA,0.05722,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854690 +AWS,ap-southeast-3,c6gd.12xlarge,on_demand,NA,2.16,USD,AWS Pricing API,2025-11-30T08:55:16.926753 +AWS,ap-southeast-3,c6gd.12xlarge,reserved_1y,all_upfront,1.728005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:47.868915 +AWS,ap-southeast-3,c6gd.12xlarge,reserved_1y,no_upfront,1.728005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:26.766093 +AWS,ap-southeast-3,c6gd.12xlarge,reserved_1y,partial_upfront,1.728005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:15.003456 +AWS,ap-southeast-3,c6gd.12xlarge,reserved_3y,all_upfront,0.864002,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:55.387538 +AWS,ap-southeast-3,c6gd.12xlarge,reserved_3y,no_upfront,0.864002,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:27.580523 +AWS,ap-southeast-3,c6gd.12xlarge,reserved_3y,partial_upfront,0.864002,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:27.343336 +AWS,ap-southeast-3,c6gd.12xlarge,spot,NA,0.25591,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853851 +AWS,ap-southeast-3,c6gd.16xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T08:55:54.446805 +AWS,ap-southeast-3,c6gd.16xlarge,reserved_1y,all_upfront,1.4861,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:25.877899 +AWS,ap-southeast-3,c6gd.16xlarge,reserved_1y,no_upfront,1.4861,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:05.156234 +AWS,ap-southeast-3,c6gd.16xlarge,reserved_1y,partial_upfront,1.4861,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:52.819087 +AWS,ap-southeast-3,c6gd.16xlarge,reserved_3y,all_upfront,1.4861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:32.622583 +AWS,ap-southeast-3,c6gd.16xlarge,reserved_3y,no_upfront,1.4861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:06.340134 +AWS,ap-southeast-3,c6gd.16xlarge,reserved_3y,partial_upfront,1.4861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:05.059157 +AWS,ap-southeast-3,c6gd.16xlarge,spot,NA,0.30258,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854456 +AWS,ap-southeast-3,c6gd.2xlarge,on_demand,NA,0.36,USD,AWS Pricing API,2025-11-30T08:56:04.685548 +AWS,ap-southeast-3,c6gd.2xlarge,reserved_1y,all_upfront,0.287982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:36.124073 +AWS,ap-southeast-3,c6gd.2xlarge,reserved_1y,no_upfront,0.287982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:15.618788 +AWS,ap-southeast-3,c6gd.2xlarge,reserved_1y,partial_upfront,0.287982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:03.020013 +AWS,ap-southeast-3,c6gd.2xlarge,reserved_3y,all_upfront,0.143994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:42.663075 +AWS,ap-southeast-3,c6gd.2xlarge,reserved_3y,no_upfront,0.143994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:16.737212 +AWS,ap-southeast-3,c6gd.2xlarge,reserved_3y,partial_upfront,0.143994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:15.248558 +AWS,ap-southeast-3,c6gd.2xlarge,spot,NA,0.036656,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854579 +AWS,ap-southeast-3,c6gd.4xlarge,on_demand,NA,0.72,USD,AWS Pricing API,2025-11-30T08:55:44.531220 +AWS,ap-southeast-3,c6gd.4xlarge,reserved_1y,all_upfront,0.423402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:15.805873 +AWS,ap-southeast-3,c6gd.4xlarge,reserved_1y,no_upfront,0.423402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:54.924687 +AWS,ap-southeast-3,c6gd.4xlarge,reserved_1y,partial_upfront,0.423402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:42.729202 +AWS,ap-southeast-3,c6gd.4xlarge,reserved_3y,all_upfront,0.141134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:22.693774 +AWS,ap-southeast-3,c6gd.4xlarge,reserved_3y,no_upfront,0.141134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:56.035357 +AWS,ap-southeast-3,c6gd.4xlarge,reserved_3y,partial_upfront,0.141134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:55.051743 +AWS,ap-southeast-3,c6gd.4xlarge,spot,NA,0.084209,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854329 +AWS,ap-southeast-3,c6gd.8xlarge,on_demand,NA,1.44,USD,AWS Pricing API,2025-11-30T08:56:12.839046 +AWS,ap-southeast-3,c6gd.8xlarge,reserved_1y,all_upfront,1.055968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:44.394295 +AWS,ap-southeast-3,c6gd.8xlarge,reserved_1y,no_upfront,1.055968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:23.930634 +AWS,ap-southeast-3,c6gd.8xlarge,reserved_1y,partial_upfront,1.055968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:11.198919 +AWS,ap-southeast-3,c6gd.8xlarge,reserved_3y,all_upfront,0.703989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:50.688005 +AWS,ap-southeast-3,c6gd.8xlarge,reserved_3y,no_upfront,0.703989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:25.098003 +AWS,ap-southeast-3,c6gd.8xlarge,reserved_3y,partial_upfront,0.703989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:23.373299 +AWS,ap-southeast-3,c6gd.8xlarge,spot,NA,0.182034,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854670 +AWS,ap-southeast-3,c6gd.xlarge,on_demand,NA,0.18,USD,AWS Pricing API,2025-11-30T08:56:04.008841 +AWS,ap-southeast-3,c6gd.xlarge,reserved_1y,all_upfront,0.252854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:35.451834 +AWS,ap-southeast-3,c6gd.xlarge,reserved_1y,no_upfront,0.252854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:14.943606 +AWS,ap-southeast-3,c6gd.xlarge,reserved_1y,partial_upfront,0.252854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:02.351252 +AWS,ap-southeast-3,c6gd.xlarge,reserved_3y,all_upfront,0.084285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:42.013071 +AWS,ap-southeast-3,c6gd.xlarge,reserved_3y,no_upfront,0.084285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:16.036670 +AWS,ap-southeast-3,c6gd.xlarge,reserved_3y,partial_upfront,0.084285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:14.573387 +AWS,ap-southeast-3,c6gd.xlarge,spot,NA,0.025818,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854575 +AWS,ap-southeast-3,c6in.12xlarge,on_demand,NA,3.1248,USD,AWS Pricing API,2025-11-30T08:55:21.556744 +AWS,ap-southeast-3,c6in.12xlarge,reserved_1y,all_upfront,1.837329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:52.578758 +AWS,ap-southeast-3,c6in.12xlarge,reserved_1y,no_upfront,1.837329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:31.504001 +AWS,ap-southeast-3,c6in.12xlarge,reserved_1y,partial_upfront,1.837329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:19.683112 +AWS,ap-southeast-3,c6in.12xlarge,reserved_3y,all_upfront,0.612443,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:00.010203 +AWS,ap-southeast-3,c6in.12xlarge,reserved_3y,no_upfront,0.612443,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:32.458922 +AWS,ap-southeast-3,c6in.12xlarge,reserved_3y,partial_upfront,0.612443,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:31.999670 +AWS,ap-southeast-3,c6in.12xlarge,spot,NA,0.347094,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853909 +AWS,ap-southeast-3,c6in.16xlarge,on_demand,NA,4.1664,USD,AWS Pricing API,2025-11-30T08:55:32.801051 +AWS,ap-southeast-3,c6in.16xlarge,reserved_1y,all_upfront,1.86693,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:03.933323 +AWS,ap-southeast-3,c6in.16xlarge,reserved_1y,no_upfront,1.86693,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:43.005536 +AWS,ap-southeast-3,c6in.16xlarge,reserved_1y,partial_upfront,1.86693,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:30.922177 +AWS,ap-southeast-3,c6in.16xlarge,reserved_3y,all_upfront,1.86693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:11.091898 +AWS,ap-southeast-3,c6in.16xlarge,reserved_3y,no_upfront,1.86693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:43.969003 +AWS,ap-southeast-3,c6in.16xlarge,reserved_3y,partial_upfront,1.86693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:43.282345 +AWS,ap-southeast-3,c6in.16xlarge,spot,NA,0.456526,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854108 +AWS,ap-southeast-3,c6in.24xlarge,on_demand,NA,6.2496,USD,AWS Pricing API,2025-11-30T08:55:42.133859 +AWS,ap-southeast-3,c6in.24xlarge,reserved_1y,all_upfront,4.509736,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:13.380201 +AWS,ap-southeast-3,c6in.24xlarge,reserved_1y,no_upfront,4.509736,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:52.477028 +AWS,ap-southeast-3,c6in.24xlarge,reserved_1y,partial_upfront,4.509736,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:40.309133 +AWS,ap-southeast-3,c6in.24xlarge,reserved_3y,all_upfront,2.254865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:20.336003 +AWS,ap-southeast-3,c6in.24xlarge,reserved_3y,no_upfront,2.254865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:53.587849 +AWS,ap-southeast-3,c6in.24xlarge,reserved_3y,partial_upfront,2.254865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:52.636986 +AWS,ap-southeast-3,c6in.24xlarge,spot,NA,0.638863,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854292 +AWS,ap-southeast-3,c6in.2xlarge,on_demand,NA,0.5208,USD,AWS Pricing API,2025-11-30T08:55:45.718951 +AWS,ap-southeast-3,c6in.2xlarge,reserved_1y,all_upfront,0.3281,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:17.022079 +AWS,ap-southeast-3,c6in.2xlarge,reserved_1y,no_upfront,0.3281,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:56.137188 +AWS,ap-southeast-3,c6in.2xlarge,reserved_1y,partial_upfront,0.3281,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:43.937929 +AWS,ap-southeast-3,c6in.2xlarge,reserved_3y,all_upfront,0.3281,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:23.874133 +AWS,ap-southeast-3,c6in.2xlarge,reserved_3y,no_upfront,0.3281,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:57.274429 +AWS,ap-southeast-3,c6in.2xlarge,reserved_3y,partial_upfront,0.3281,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:56.252909 +AWS,ap-southeast-3,c6in.2xlarge,spot,NA,0.119342,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854341 +AWS,ap-southeast-3,c6in.32xlarge,on_demand,NA,8.3328,USD,AWS Pricing API,2025-11-30T08:56:19.305015 +AWS,ap-southeast-3,c6in.32xlarge,reserved_1y,all_upfront,6.028196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:50.977042 +AWS,ap-southeast-3,c6in.32xlarge,reserved_1y,no_upfront,6.028196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:30.554229 +AWS,ap-southeast-3,c6in.32xlarge,reserved_1y,partial_upfront,6.028196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:17.767773 +AWS,ap-southeast-3,c6in.32xlarge,reserved_3y,all_upfront,2.009399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:57.111135 +AWS,ap-southeast-3,c6in.32xlarge,reserved_3y,no_upfront,2.009399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:31.804782 +AWS,ap-southeast-3,c6in.32xlarge,reserved_3y,partial_upfront,2.009399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:29.915730 +AWS,ap-southeast-3,c6in.32xlarge,spot,NA,1.290759,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854740 +AWS,ap-southeast-3,c6in.4xlarge,on_demand,NA,1.0416,USD,AWS Pricing API,2025-11-30T08:55:20.620298 +AWS,ap-southeast-3,c6in.4xlarge,reserved_1y,all_upfront,1.059817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:51.629709 +AWS,ap-southeast-3,c6in.4xlarge,reserved_1y,no_upfront,1.059817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:30.553264 +AWS,ap-southeast-3,c6in.4xlarge,reserved_1y,partial_upfront,1.059817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:18.748535 +AWS,ap-southeast-3,c6in.4xlarge,reserved_3y,all_upfront,0.353272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:59.080256 +AWS,ap-southeast-3,c6in.4xlarge,reserved_3y,no_upfront,0.353272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:31.425839 +AWS,ap-southeast-3,c6in.4xlarge,reserved_3y,partial_upfront,0.353272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:31.062749 +AWS,ap-southeast-3,c6in.4xlarge,spot,NA,0.226651,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853900 +AWS,ap-southeast-3,c6in.8xlarge,on_demand,NA,2.0832,USD,AWS Pricing API,2025-11-30T08:55:50.087085 +AWS,ap-southeast-3,c6in.8xlarge,reserved_1y,all_upfront,1.61471,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:21.452394 +AWS,ap-southeast-3,c6in.8xlarge,reserved_1y,no_upfront,1.61471,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:00.613676 +AWS,ap-southeast-3,c6in.8xlarge,reserved_1y,partial_upfront,1.61471,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:48.375892 +AWS,ap-southeast-3,c6in.8xlarge,reserved_3y,all_upfront,1.61471,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:28.221735 +AWS,ap-southeast-3,c6in.8xlarge,reserved_3y,no_upfront,1.61471,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:01.791621 +AWS,ap-southeast-3,c6in.8xlarge,reserved_3y,partial_upfront,1.61471,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:00.654597 +AWS,ap-southeast-3,c6in.8xlarge,spot,NA,0.403041,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854381 +AWS,ap-southeast-3,c6in.xlarge,on_demand,NA,0.2604,USD,AWS Pricing API,2025-11-30T08:55:38.151578 +AWS,ap-southeast-3,c6in.xlarge,reserved_1y,all_upfront,0.187962,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:09.323440 +AWS,ap-southeast-3,c6in.xlarge,reserved_1y,no_upfront,0.187962,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:48.423426 +AWS,ap-southeast-3,c6in.xlarge,reserved_1y,partial_upfront,0.187962,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:36.297664 +AWS,ap-southeast-3,c6in.xlarge,reserved_3y,all_upfront,0.093974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:16.380719 +AWS,ap-southeast-3,c6in.xlarge,reserved_3y,no_upfront,0.093974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:49.481860 +AWS,ap-southeast-3,c6in.xlarge,reserved_3y,partial_upfront,0.093974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:48.628013 +AWS,ap-southeast-3,c6in.xlarge,spot,NA,0.046424,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854229 +AWS,ap-southeast-3,c7g.12xlarge,on_demand,NA,1.9992,USD,AWS Pricing API,2025-11-30T08:55:47.969175 +AWS,ap-southeast-3,c7g.12xlarge,reserved_1y,all_upfront,1.23847,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:19.310772 +AWS,ap-southeast-3,c7g.12xlarge,reserved_1y,no_upfront,1.23847,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:58.448365 +AWS,ap-southeast-3,c7g.12xlarge,reserved_1y,partial_upfront,1.23847,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:46.211274 +AWS,ap-southeast-3,c7g.12xlarge,reserved_3y,all_upfront,0.412823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:26.119545 +AWS,ap-southeast-3,c7g.12xlarge,reserved_3y,no_upfront,0.412823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:59.596442 +AWS,ap-southeast-3,c7g.12xlarge,reserved_3y,partial_upfront,0.412823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:58.509859 +AWS,ap-southeast-3,c7g.12xlarge,spot,NA,0.265528,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854373 +AWS,ap-southeast-3,c7g.16xlarge,on_demand,NA,2.6656,USD,AWS Pricing API,2025-11-30T08:55:57.395291 +AWS,ap-southeast-3,c7g.16xlarge,reserved_1y,all_upfront,2.239138,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:28.865350 +AWS,ap-southeast-3,c7g.16xlarge,reserved_1y,no_upfront,2.239138,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:08.199471 +AWS,ap-southeast-3,c7g.16xlarge,reserved_1y,partial_upfront,2.239138,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:55.768997 +AWS,ap-southeast-3,c7g.16xlarge,reserved_3y,all_upfront,1.119579,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:35.520910 +AWS,ap-southeast-3,c7g.16xlarge,reserved_3y,no_upfront,1.119579,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:09.355573 +AWS,ap-southeast-3,c7g.16xlarge,reserved_3y,partial_upfront,1.119579,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:08.018567 +AWS,ap-southeast-3,c7g.16xlarge,spot,NA,0.378885,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854476 +AWS,ap-southeast-3,c7g.2xlarge,on_demand,NA,0.3332,USD,AWS Pricing API,2025-11-30T08:56:15.861535 +AWS,ap-southeast-3,c7g.2xlarge,reserved_1y,all_upfront,0.319626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:47.489896 +AWS,ap-southeast-3,c7g.2xlarge,reserved_1y,no_upfront,0.319626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:27.052255 +AWS,ap-southeast-3,c7g.2xlarge,reserved_1y,partial_upfront,0.319626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:14.277799 +AWS,ap-southeast-3,c7g.2xlarge,reserved_3y,all_upfront,0.159809,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:53.698616 +AWS,ap-southeast-3,c7g.2xlarge,reserved_3y,no_upfront,0.159809,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:28.247425 +AWS,ap-southeast-3,c7g.2xlarge,reserved_3y,partial_upfront,0.159809,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:26.454611 +AWS,ap-southeast-3,c7g.2xlarge,spot,NA,0.046301,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854709 +AWS,ap-southeast-3,c7g.4xlarge,on_demand,NA,0.6664,USD,AWS Pricing API,2025-11-30T08:55:33.469890 +AWS,ap-southeast-3,c7g.4xlarge,reserved_1y,all_upfront,0.421216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:04.619169 +AWS,ap-southeast-3,c7g.4xlarge,reserved_1y,no_upfront,0.421216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:43.683955 +AWS,ap-southeast-3,c7g.4xlarge,reserved_1y,partial_upfront,0.421216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:31.596816 +AWS,ap-southeast-3,c7g.4xlarge,reserved_3y,all_upfront,0.280805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:11.749779 +AWS,ap-southeast-3,c7g.4xlarge,reserved_3y,no_upfront,0.280805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:44.650645 +AWS,ap-southeast-3,c7g.4xlarge,reserved_3y,partial_upfront,0.280805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:43.955999 +AWS,ap-southeast-3,c7g.4xlarge,spot,NA,0.074879,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854156 +AWS,ap-southeast-3,c7g.8xlarge,on_demand,NA,1.3328,USD,AWS Pricing API,2025-11-30T08:55:44.269803 +AWS,ap-southeast-3,c7g.8xlarge,reserved_1y,all_upfront,1.0116,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:15.541537 +AWS,ap-southeast-3,c7g.8xlarge,reserved_1y,no_upfront,1.0116,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:54.655433 +AWS,ap-southeast-3,c7g.8xlarge,reserved_1y,partial_upfront,1.0116,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:42.459719 +AWS,ap-southeast-3,c7g.8xlarge,reserved_3y,all_upfront,1.0116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:22.429411 +AWS,ap-southeast-3,c7g.8xlarge,reserved_3y,no_upfront,1.0116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:55.764783 +AWS,ap-southeast-3,c7g.8xlarge,reserved_3y,partial_upfront,1.0116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:54.785720 +AWS,ap-southeast-3,c7g.8xlarge,spot,NA,0.181079,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854317 +AWS,ap-southeast-3,c7g.xlarge,on_demand,NA,0.1666,USD,AWS Pricing API,2025-11-30T08:55:31.588317 +AWS,ap-southeast-3,c7g.xlarge,reserved_1y,all_upfront,0.103196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:02.716910 +AWS,ap-southeast-3,c7g.xlarge,reserved_1y,no_upfront,0.103196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:41.781469 +AWS,ap-southeast-3,c7g.xlarge,reserved_1y,partial_upfront,0.103196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:29.708667 +AWS,ap-southeast-3,c7g.xlarge,reserved_3y,all_upfront,0.034399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:09.906847 +AWS,ap-southeast-3,c7g.xlarge,reserved_3y,no_upfront,0.034399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:42.736593 +AWS,ap-southeast-3,c7g.xlarge,reserved_3y,partial_upfront,0.034399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:42.027137 +AWS,ap-southeast-3,c7g.xlarge,spot,NA,0.026971,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854091 +AWS,ap-southeast-3,c7gd.12xlarge,on_demand,NA,2.5402,USD,AWS Pricing API,2025-11-30T08:55:42.272397 +AWS,ap-southeast-3,c7gd.12xlarge,reserved_1y,all_upfront,1.9579,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:13.515690 +AWS,ap-southeast-3,c7gd.12xlarge,reserved_1y,no_upfront,1.9579,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:52.612334 +AWS,ap-southeast-3,c7gd.12xlarge,reserved_1y,partial_upfront,1.9579,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:40.442821 +AWS,ap-southeast-3,c7gd.12xlarge,reserved_3y,all_upfront,1.9579,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:20.466146 +AWS,ap-southeast-3,c7gd.12xlarge,reserved_3y,no_upfront,1.9579,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:53.723540 +AWS,ap-southeast-3,c7gd.12xlarge,reserved_3y,partial_upfront,1.9579,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:52.770835 +AWS,ap-southeast-3,c7gd.12xlarge,spot,NA,0.267453,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854280 +AWS,ap-southeast-3,c7gd.16xlarge,on_demand,NA,3.3869,USD,AWS Pricing API,2025-11-30T08:55:28.543126 +AWS,ap-southeast-3,c7gd.16xlarge,reserved_1y,all_upfront,2.43653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:59.607844 +AWS,ap-southeast-3,c7gd.16xlarge,reserved_1y,no_upfront,2.43653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:38.676879 +AWS,ap-southeast-3,c7gd.16xlarge,reserved_1y,partial_upfront,2.43653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:26.642986 +AWS,ap-southeast-3,c7gd.16xlarge,reserved_3y,all_upfront,0.812177,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:06.874090 +AWS,ap-southeast-3,c7gd.16xlarge,reserved_3y,no_upfront,0.812177,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:39.584977 +AWS,ap-southeast-3,c7gd.16xlarge,reserved_3y,partial_upfront,0.812177,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:38.962391 +AWS,ap-southeast-3,c7gd.16xlarge,spot,NA,0.339566,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854035 +AWS,ap-southeast-3,c7gd.2xlarge,on_demand,NA,0.4234,USD,AWS Pricing API,2025-11-30T08:55:57.247999 +AWS,ap-southeast-3,c7gd.2xlarge,reserved_1y,all_upfront,0.591895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:28.726197 +AWS,ap-southeast-3,c7gd.2xlarge,reserved_1y,no_upfront,0.591895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:08.051442 +AWS,ap-southeast-3,c7gd.2xlarge,reserved_1y,partial_upfront,0.591895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:55.635532 +AWS,ap-southeast-3,c7gd.2xlarge,reserved_3y,all_upfront,0.197298,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:35.387010 +AWS,ap-southeast-3,c7gd.2xlarge,reserved_3y,no_upfront,0.197298,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:09.217885 +AWS,ap-southeast-3,c7gd.2xlarge,reserved_3y,partial_upfront,0.197298,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:07.880599 +AWS,ap-southeast-3,c7gd.2xlarge,spot,NA,0.045584,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854480 +AWS,ap-southeast-3,c7gd.4xlarge,on_demand,NA,0.8467,USD,AWS Pricing API,2025-11-30T08:55:44.926938 +AWS,ap-southeast-3,c7gd.4xlarge,reserved_1y,all_upfront,0.677291,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:16.209633 +AWS,ap-southeast-3,c7gd.4xlarge,reserved_1y,no_upfront,0.677291,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:55.328376 +AWS,ap-southeast-3,c7gd.4xlarge,reserved_1y,partial_upfront,0.677291,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:43.135401 +AWS,ap-southeast-3,c7gd.4xlarge,reserved_3y,all_upfront,0.33863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:23.092387 +AWS,ap-southeast-3,c7gd.4xlarge,reserved_3y,no_upfront,0.33863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:56.439950 +AWS,ap-southeast-3,c7gd.4xlarge,reserved_3y,partial_upfront,0.33863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:55.461182 +AWS,ap-southeast-3,c7gd.4xlarge,spot,NA,0.099066,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854321 +AWS,ap-southeast-3,c7gd.8xlarge,on_demand,NA,1.6934,USD,AWS Pricing API,2025-11-30T08:55:36.658244 +AWS,ap-southeast-3,c7gd.8xlarge,reserved_1y,all_upfront,1.3053,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:07.838964 +AWS,ap-southeast-3,c7gd.8xlarge,reserved_1y,no_upfront,1.3053,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:46.919876 +AWS,ap-southeast-3,c7gd.8xlarge,reserved_1y,partial_upfront,1.3053,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:34.806730 +AWS,ap-southeast-3,c7gd.8xlarge,reserved_3y,all_upfront,1.3053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:14.911221 +AWS,ap-southeast-3,c7gd.8xlarge,reserved_3y,no_upfront,1.3053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:47.958439 +AWS,ap-southeast-3,c7gd.8xlarge,reserved_3y,partial_upfront,1.3053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:47.157744 +AWS,ap-southeast-3,c7gd.8xlarge,spot,NA,0.195699,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854204 +AWS,ap-southeast-3,c7gd.xlarge,on_demand,NA,0.2117,USD,AWS Pricing API,2025-11-30T08:56:15.192353 +AWS,ap-southeast-3,c7gd.xlarge,reserved_1y,all_upfront,0.169355,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:46.807374 +AWS,ap-southeast-3,c7gd.xlarge,reserved_1y,no_upfront,0.169355,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:26.372518 +AWS,ap-southeast-3,c7gd.xlarge,reserved_1y,partial_upfront,0.169355,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:13.598233 +AWS,ap-southeast-3,c7gd.xlarge,reserved_3y,all_upfront,0.084652,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:53.038833 +AWS,ap-southeast-3,c7gd.xlarge,reserved_3y,no_upfront,0.084652,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:27.567503 +AWS,ap-southeast-3,c7gd.xlarge,reserved_3y,partial_upfront,0.084652,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:25.784804 +AWS,ap-southeast-3,c7gd.xlarge,spot,NA,0.027242,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854693 +AWS,ap-southeast-3,c7i.12xlarge,on_demand,NA,2.4696,USD,AWS Pricing API,2025-11-30T08:55:36.932316 +AWS,ap-southeast-3,c7i.12xlarge,reserved_1y,all_upfront,2.925,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:08.109031 +AWS,ap-southeast-3,c7i.12xlarge,reserved_1y,no_upfront,2.925,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:47.195203 +AWS,ap-southeast-3,c7i.12xlarge,reserved_1y,partial_upfront,2.925,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:35.082204 +AWS,ap-southeast-3,c7i.12xlarge,reserved_3y,all_upfront,0.975,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:15.187544 +AWS,ap-southeast-3,c7i.12xlarge,reserved_3y,no_upfront,0.975,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:48.237635 +AWS,ap-southeast-3,c7i.12xlarge,reserved_3y,partial_upfront,0.975,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:47.424903 +AWS,ap-southeast-3,c7i.12xlarge,spot,NA,0.277964,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854196 +AWS,ap-southeast-3,c7i.16xlarge,on_demand,NA,3.2928,USD,AWS Pricing API,2025-11-30T08:56:13.503883 +AWS,ap-southeast-3,c7i.16xlarge,reserved_1y,all_upfront,2.765919,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:45.065496 +AWS,ap-southeast-3,c7i.16xlarge,reserved_1y,no_upfront,2.765919,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:24.612163 +AWS,ap-southeast-3,c7i.16xlarge,reserved_1y,partial_upfront,2.765919,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:11.874618 +AWS,ap-southeast-3,c7i.16xlarge,reserved_3y,all_upfront,1.382966,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:51.341995 +AWS,ap-southeast-3,c7i.16xlarge,reserved_3y,no_upfront,1.382966,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:25.793089 +AWS,ap-southeast-3,c7i.16xlarge,reserved_3y,partial_upfront,1.382966,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:24.042380 +AWS,ap-southeast-3,c7i.16xlarge,spot,NA,0.387966,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854686 +AWS,ap-southeast-3,c7i.24xlarge,on_demand,NA,4.9392,USD,AWS Pricing API,2025-11-30T08:55:47.574149 +AWS,ap-southeast-3,c7i.24xlarge,reserved_1y,all_upfront,3.74892,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:18.906712 +AWS,ap-southeast-3,c7i.24xlarge,reserved_1y,no_upfront,3.74892,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:58.043409 +AWS,ap-southeast-3,c7i.24xlarge,reserved_1y,partial_upfront,3.74892,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:45.801012 +AWS,ap-southeast-3,c7i.24xlarge,reserved_3y,all_upfront,3.74892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:25.726121 +AWS,ap-southeast-3,c7i.24xlarge,reserved_3y,no_upfront,3.74892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:59.184195 +AWS,ap-southeast-3,c7i.24xlarge,reserved_3y,partial_upfront,3.74892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:58.115190 +AWS,ap-southeast-3,c7i.24xlarge,spot,NA,0.51361,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854353 +AWS,ap-southeast-3,c7i.2xlarge,on_demand,NA,0.4116,USD,AWS Pricing API,2025-11-30T08:56:01.985860 +AWS,ap-southeast-3,c7i.2xlarge,reserved_1y,all_upfront,0.255023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:33.442026 +AWS,ap-southeast-3,c7i.2xlarge,reserved_1y,no_upfront,0.255023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:12.887812 +AWS,ap-southeast-3,c7i.2xlarge,reserved_1y,partial_upfront,0.255023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:00.334182 +AWS,ap-southeast-3,c7i.2xlarge,reserved_3y,all_upfront,0.085008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:40.025270 +AWS,ap-southeast-3,c7i.2xlarge,reserved_3y,no_upfront,0.085008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:13.993222 +AWS,ap-southeast-3,c7i.2xlarge,reserved_3y,partial_upfront,0.085008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:12.568327 +AWS,ap-southeast-3,c7i.2xlarge,spot,NA,0.062861,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854535 +AWS,ap-southeast-3,c7i.48xlarge,on_demand,NA,9.8784,USD,AWS Pricing API,2025-11-30T08:55:30.530098 +AWS,ap-southeast-3,c7i.48xlarge,reserved_1y,all_upfront,8.297862,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:01.626837 +AWS,ap-southeast-3,c7i.48xlarge,reserved_1y,no_upfront,8.297862,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:40.700418 +AWS,ap-southeast-3,c7i.48xlarge,reserved_1y,partial_upfront,8.297862,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:28.644438 +AWS,ap-southeast-3,c7i.48xlarge,reserved_3y,all_upfront,4.148927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:08.862924 +AWS,ap-southeast-3,c7i.48xlarge,reserved_3y,no_upfront,4.148927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:41.638774 +AWS,ap-southeast-3,c7i.48xlarge,reserved_3y,partial_upfront,4.148927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:40.965819 +AWS,ap-southeast-3,c7i.48xlarge,spot,NA,1.036568,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854102 +AWS,ap-southeast-3,c7i.4xlarge,on_demand,NA,0.8232,USD,AWS Pricing API,2025-11-30T08:55:43.331482 +AWS,ap-southeast-3,c7i.4xlarge,reserved_1y,all_upfront,0.691477,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:14.590754 +AWS,ap-southeast-3,c7i.4xlarge,reserved_1y,no_upfront,0.691477,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:53.707687 +AWS,ap-southeast-3,c7i.4xlarge,reserved_1y,partial_upfront,0.691477,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:41.525012 +AWS,ap-southeast-3,c7i.4xlarge,reserved_3y,all_upfront,0.345739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:21.506383 +AWS,ap-southeast-3,c7i.4xlarge,reserved_3y,no_upfront,0.345739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:54.809309 +AWS,ap-southeast-3,c7i.4xlarge,reserved_3y,partial_upfront,0.345739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:53.852805 +AWS,ap-southeast-3,c7i.4xlarge,spot,NA,0.097692,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854301 +AWS,ap-southeast-3,c7i.8xlarge,on_demand,NA,1.6464,USD,AWS Pricing API,2025-11-30T08:55:15.719135 +AWS,ap-southeast-3,c7i.8xlarge,reserved_1y,all_upfront,1.190161,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:46.661150 +AWS,ap-southeast-3,c7i.8xlarge,reserved_1y,no_upfront,1.190161,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:25.530355 +AWS,ap-southeast-3,c7i.8xlarge,reserved_1y,partial_upfront,1.190161,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:13.793433 +AWS,ap-southeast-3,c7i.8xlarge,reserved_3y,all_upfront,0.793434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:54.206944 +AWS,ap-southeast-3,c7i.8xlarge,reserved_3y,no_upfront,0.793434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:26.346747 +AWS,ap-southeast-3,c7i.8xlarge,reserved_3y,partial_upfront,0.793434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:26.128171 +AWS,ap-southeast-3,c7i.8xlarge,spot,NA,0.225883,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853833 +AWS,ap-southeast-3,c7i.large,on_demand,NA,0.1029,USD,AWS Pricing API,2025-11-30T08:56:01.437380 +AWS,ap-southeast-3,c7i.large,reserved_1y,all_upfront,0.0781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:32.907603 +AWS,ap-southeast-3,c7i.large,reserved_1y,no_upfront,0.0781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:12.349103 +AWS,ap-southeast-3,c7i.large,reserved_1y,partial_upfront,0.0781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:59.802435 +AWS,ap-southeast-3,c7i.large,reserved_3y,all_upfront,0.0781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:39.496410 +AWS,ap-southeast-3,c7i.large,reserved_3y,no_upfront,0.0781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:13.454845 +AWS,ap-southeast-3,c7i.large,reserved_3y,partial_upfront,0.0781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:12.026902 +AWS,ap-southeast-3,c7i.large,spot,NA,0.015376,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854551 +AWS,ap-southeast-3,c7i.metal-24xl,on_demand,NA,4.9392,USD,AWS Pricing API,2025-11-30T08:55:31.322205 +AWS,ap-southeast-3,c7i.metal-24xl,reserved_1y,all_upfront,3.74892,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:02.440776 +AWS,ap-southeast-3,c7i.metal-24xl,reserved_1y,no_upfront,3.74892,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:41.511295 +AWS,ap-southeast-3,c7i.metal-24xl,reserved_1y,partial_upfront,3.74892,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:29.440695 +AWS,ap-southeast-3,c7i.metal-24xl,reserved_3y,all_upfront,3.74892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:09.646109 +AWS,ap-southeast-3,c7i.metal-24xl,reserved_3y,no_upfront,3.74892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:42.465385 +AWS,ap-southeast-3,c7i.metal-24xl,reserved_3y,partial_upfront,3.74892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:41.761335 +AWS,ap-southeast-3,c7i.metal-24xl,spot,NA,0.564343,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854097 +AWS,ap-southeast-3,c7i.metal-48xl,on_demand,NA,9.8784,USD,AWS Pricing API,2025-11-30T08:55:19.701205 +AWS,ap-southeast-3,c7i.metal-48xl,reserved_1y,all_upfront,7.49785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:50.698911 +AWS,ap-southeast-3,c7i.metal-48xl,reserved_1y,no_upfront,7.49785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:29.604231 +AWS,ap-southeast-3,c7i.metal-48xl,reserved_1y,partial_upfront,7.49785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:17.805751 +AWS,ap-southeast-3,c7i.metal-48xl,reserved_3y,all_upfront,7.49785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:58.158526 +AWS,ap-southeast-3,c7i.metal-48xl,reserved_3y,no_upfront,7.49785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:30.462177 +AWS,ap-southeast-3,c7i.metal-48xl,reserved_3y,partial_upfront,7.49785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:30.126728 +AWS,ap-southeast-3,c7i.metal-48xl,spot,NA,1.036389,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853905 +AWS,ap-southeast-3,c7i.xlarge,on_demand,NA,0.2058,USD,AWS Pricing API,2025-11-30T08:56:12.573096 +AWS,ap-southeast-3,c7i.xlarge,reserved_1y,all_upfront,0.1366,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:44.128579 +AWS,ap-southeast-3,c7i.xlarge,reserved_1y,no_upfront,0.1366,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:23.640327 +AWS,ap-southeast-3,c7i.xlarge,reserved_1y,partial_upfront,0.1366,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:10.932696 +AWS,ap-southeast-3,c7i.xlarge,reserved_3y,all_upfront,0.1366,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:50.419657 +AWS,ap-southeast-3,c7i.xlarge,reserved_3y,no_upfront,0.1366,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:24.822398 +AWS,ap-southeast-3,c7i.xlarge,reserved_3y,partial_upfront,0.1366,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:23.108680 +AWS,ap-southeast-3,c7i.xlarge,spot,NA,0.03146,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854666 +AWS,ap-southeast-3,c8g.12xlarge,on_demand,NA,2.19912,USD,AWS Pricing API,2025-11-30T08:56:10.200512 +AWS,ap-southeast-3,c8g.12xlarge,reserved_1y,all_upfront,1.390171,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:41.703376 +AWS,ap-southeast-3,c8g.12xlarge,reserved_1y,no_upfront,1.390171,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:21.191397 +AWS,ap-southeast-3,c8g.12xlarge,reserved_1y,partial_upfront,1.390171,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:08.532761 +AWS,ap-southeast-3,c8g.12xlarge,reserved_3y,all_upfront,0.926777,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:48.050434 +AWS,ap-southeast-3,c8g.12xlarge,reserved_3y,no_upfront,0.926777,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:22.361138 +AWS,ap-southeast-3,c8g.12xlarge,reserved_3y,partial_upfront,0.926777,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:20.708546 +AWS,ap-southeast-3,c8g.12xlarge,spot,NA,0.313171,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854639 +AWS,ap-southeast-3,c8g.16xlarge,on_demand,NA,2.93216,USD,AWS Pricing API,2025-11-30T08:55:14.647416 +AWS,ap-southeast-3,c8g.16xlarge,reserved_1y,all_upfront,1.816438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:45.576973 +AWS,ap-southeast-3,c8g.16xlarge,reserved_1y,no_upfront,1.816438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:24.446110 +AWS,ap-southeast-3,c8g.16xlarge,reserved_1y,partial_upfront,1.816438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:12.703297 +AWS,ap-southeast-3,c8g.16xlarge,reserved_3y,all_upfront,0.605479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:53.148194 +AWS,ap-southeast-3,c8g.16xlarge,reserved_3y,no_upfront,0.605479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:25.237582 +AWS,ap-southeast-3,c8g.16xlarge,reserved_3y,partial_upfront,0.605479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:25.059482 +AWS,ap-southeast-3,c8g.16xlarge,spot,NA,0.400065,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853804 +AWS,ap-southeast-3,c8g.24xlarge,on_demand,NA,4.39824,USD,AWS Pricing API,2025-11-30T08:56:00.221479 +AWS,ap-southeast-3,c8g.24xlarge,reserved_1y,all_upfront,3.115753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:31.683877 +AWS,ap-southeast-3,c8g.24xlarge,reserved_1y,no_upfront,3.115753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:11.114594 +AWS,ap-southeast-3,c8g.24xlarge,reserved_1y,partial_upfront,3.115753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:58.591204 +AWS,ap-southeast-3,c8g.24xlarge,reserved_3y,all_upfront,1.038584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:38.315339 +AWS,ap-southeast-3,c8g.24xlarge,reserved_3y,no_upfront,1.038584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:12.226760 +AWS,ap-southeast-3,c8g.24xlarge,reserved_3y,partial_upfront,1.038584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:10.816027 +AWS,ap-southeast-3,c8g.24xlarge,spot,NA,0.608068,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854524 +AWS,ap-southeast-3,c8g.2xlarge,on_demand,NA,0.36652,USD,AWS Pricing API,2025-11-30T08:55:26.555778 +AWS,ap-southeast-3,c8g.2xlarge,reserved_1y,all_upfront,0.26489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:57.586315 +AWS,ap-southeast-3,c8g.2xlarge,reserved_1y,no_upfront,0.26489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:36.545009 +AWS,ap-southeast-3,c8g.2xlarge,reserved_1y,partial_upfront,0.26489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:24.630996 +AWS,ap-southeast-3,c8g.2xlarge,reserved_3y,all_upfront,0.17661,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:04.898622 +AWS,ap-southeast-3,c8g.2xlarge,reserved_3y,no_upfront,0.17661,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:37.516650 +AWS,ap-southeast-3,c8g.2xlarge,reserved_3y,partial_upfront,0.17661,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:36.956617 +AWS,ap-southeast-3,c8g.2xlarge,spot,NA,0.046258,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854003 +AWS,ap-southeast-3,c8g.48xlarge,on_demand,NA,8.79648,USD,AWS Pricing API,2025-11-30T08:56:18.763290 +AWS,ap-southeast-3,c8g.48xlarge,reserved_1y,all_upfront,6.231393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:50.442873 +AWS,ap-southeast-3,c8g.48xlarge,reserved_1y,no_upfront,6.231393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:30.010380 +AWS,ap-southeast-3,c8g.48xlarge,reserved_1y,partial_upfront,6.231393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:17.230181 +AWS,ap-southeast-3,c8g.48xlarge,reserved_3y,all_upfront,2.077131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:56.583041 +AWS,ap-southeast-3,c8g.48xlarge,reserved_3y,no_upfront,2.077131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:31.255599 +AWS,ap-southeast-3,c8g.48xlarge,reserved_3y,partial_upfront,2.077131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:29.380473 +AWS,ap-southeast-3,c8g.48xlarge,spot,NA,1.188942,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854736 +AWS,ap-southeast-3,c8g.4xlarge,on_demand,NA,0.73304,USD,AWS Pricing API,2025-11-30T08:55:28.951862 +AWS,ap-southeast-3,c8g.4xlarge,reserved_1y,all_upfront,0.615812,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:00.010620 +AWS,ap-southeast-3,c8g.4xlarge,reserved_1y,no_upfront,0.615812,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:39.083147 +AWS,ap-southeast-3,c8g.4xlarge,reserved_1y,partial_upfront,0.615812,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:27.042891 +AWS,ap-southeast-3,c8g.4xlarge,reserved_3y,all_upfront,0.307897,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:07.279014 +AWS,ap-southeast-3,c8g.4xlarge,reserved_3y,no_upfront,0.307897,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:39.995559 +AWS,ap-southeast-3,c8g.4xlarge,reserved_3y,partial_upfront,0.307897,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:39.357037 +AWS,ap-southeast-3,c8g.4xlarge,spot,NA,0.093585,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854031 +AWS,ap-southeast-3,c8g.8xlarge,on_demand,NA,1.46608,USD,AWS Pricing API,2025-11-30T08:55:32.394816 +AWS,ap-southeast-3,c8g.8xlarge,reserved_1y,all_upfront,1.40624,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:03.521563 +AWS,ap-southeast-3,c8g.8xlarge,reserved_1y,no_upfront,1.40624,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:42.600794 +AWS,ap-southeast-3,c8g.8xlarge,reserved_1y,partial_upfront,1.40624,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:30.519234 +AWS,ap-southeast-3,c8g.8xlarge,reserved_3y,all_upfront,0.70312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:10.700615 +AWS,ap-southeast-3,c8g.8xlarge,reserved_3y,no_upfront,0.70312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:43.556758 +AWS,ap-southeast-3,c8g.8xlarge,reserved_3y,partial_upfront,0.70312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:42.882278 +AWS,ap-southeast-3,c8g.8xlarge,spot,NA,0.210468,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854134 +AWS,ap-southeast-3,c8g.large,on_demand,NA,0.09163,USD,AWS Pricing API,2025-11-30T08:56:13.232039 +AWS,ap-southeast-3,c8g.large,reserved_1y,all_upfront,0.06955,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:44.795101 +AWS,ap-southeast-3,c8g.large,reserved_1y,no_upfront,0.06955,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:24.337100 +AWS,ap-southeast-3,c8g.large,reserved_1y,partial_upfront,0.06955,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:11.594242 +AWS,ap-southeast-3,c8g.large,reserved_3y,all_upfront,0.06955,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:51.077422 +AWS,ap-southeast-3,c8g.large,reserved_3y,no_upfront,0.06955,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:25.515839 +AWS,ap-southeast-3,c8g.large,reserved_3y,partial_upfront,0.06955,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:23.767098 +AWS,ap-southeast-3,c8g.large,spot,NA,0.012579,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854678 +AWS,ap-southeast-3,c8g.medium,on_demand,NA,0.04582,USD,AWS Pricing API,2025-11-30T08:55:58.058366 +AWS,ap-southeast-3,c8g.medium,reserved_1y,all_upfront,0.054224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:29.540010 +AWS,ap-southeast-3,c8g.medium,reserved_1y,no_upfront,0.054224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:08.887111 +AWS,ap-southeast-3,c8g.medium,reserved_1y,partial_upfront,0.054224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:56.452482 +AWS,ap-southeast-3,c8g.medium,reserved_3y,all_upfront,0.018075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:36.174572 +AWS,ap-southeast-3,c8g.medium,reserved_3y,no_upfront,0.018075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:10.042773 +AWS,ap-southeast-3,c8g.medium,reserved_3y,partial_upfront,0.018075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:08.685196 +AWS,ap-southeast-3,c8g.medium,spot,NA,0.006347,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854496 +AWS,ap-southeast-3,c8g.xlarge,on_demand,NA,0.18326,USD,AWS Pricing API,2025-11-30T08:55:22.757188 +AWS,ap-southeast-3,c8g.xlarge,reserved_1y,all_upfront,0.129795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:53.784194 +AWS,ap-southeast-3,c8g.xlarge,reserved_1y,no_upfront,0.129795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:32.739748 +AWS,ap-southeast-3,c8g.xlarge,reserved_1y,partial_upfront,0.129795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:20.887883 +AWS,ap-southeast-3,c8g.xlarge,reserved_3y,all_upfront,0.043265,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:01.200138 +AWS,ap-southeast-3,c8g.xlarge,reserved_3y,no_upfront,0.043265,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:33.691421 +AWS,ap-southeast-3,c8g.xlarge,reserved_3y,partial_upfront,0.043265,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:33.226868 +AWS,ap-southeast-3,c8g.xlarge,spot,NA,0.025841,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853950 +AWS,ap-southeast-3,d3en.12xlarge,on_demand,NA,7.90752,USD,AWS Pricing API,2025-11-30T08:56:07.663877 +AWS,ap-southeast-3,d3en.12xlarge,reserved_1y,all_upfront,5.579566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:39.134861 +AWS,ap-southeast-3,d3en.12xlarge,reserved_1y,no_upfront,5.579566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:18.625281 +AWS,ap-southeast-3,d3en.12xlarge,reserved_1y,partial_upfront,5.579566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:05.984158 +AWS,ap-southeast-3,d3en.12xlarge,reserved_3y,all_upfront,1.859855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:45.549260 +AWS,ap-southeast-3,d3en.12xlarge,reserved_3y,no_upfront,1.859855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:19.759813 +AWS,ap-southeast-3,d3en.12xlarge,reserved_3y,partial_upfront,1.859855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:18.179407 +AWS,ap-southeast-3,d3en.12xlarge,spot,NA,0.797386,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854611 +AWS,ap-southeast-3,d3en.2xlarge,on_demand,NA,1.318,USD,AWS Pricing API,2025-11-30T08:55:47.044239 +AWS,ap-southeast-3,d3en.2xlarge,reserved_1y,all_upfront,0.79032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:18.362961 +AWS,ap-southeast-3,d3en.2xlarge,reserved_1y,no_upfront,0.79032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:57.502822 +AWS,ap-southeast-3,d3en.2xlarge,reserved_1y,partial_upfront,0.79032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:45.269428 +AWS,ap-southeast-3,d3en.2xlarge,reserved_3y,all_upfront,0.526773,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:25.188313 +AWS,ap-southeast-3,d3en.2xlarge,reserved_3y,no_upfront,0.526773,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:58.639655 +AWS,ap-southeast-3,d3en.2xlarge,reserved_3y,partial_upfront,0.526773,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:57.578687 +AWS,ap-southeast-3,d3en.2xlarge,spot,NA,0.132605,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854365 +AWS,ap-southeast-3,d3en.4xlarge,on_demand,NA,2.636,USD,AWS Pricing API,2025-11-30T08:55:54.308891 +AWS,ap-southeast-3,d3en.4xlarge,reserved_1y,all_upfront,1.549886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:25.743369 +AWS,ap-southeast-3,d3en.4xlarge,reserved_1y,no_upfront,1.549886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:05.021252 +AWS,ap-southeast-3,d3en.4xlarge,reserved_1y,partial_upfront,1.549886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:52.687257 +AWS,ap-southeast-3,d3en.4xlarge,reserved_3y,all_upfront,0.516629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:32.482118 +AWS,ap-southeast-3,d3en.4xlarge,reserved_3y,no_upfront,0.516629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:06.200721 +AWS,ap-southeast-3,d3en.4xlarge,reserved_3y,partial_upfront,0.516629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:04.927243 +AWS,ap-southeast-3,d3en.4xlarge,spot,NA,0.266408,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854460 +AWS,ap-southeast-3,d3en.6xlarge,on_demand,NA,3.954,USD,AWS Pricing API,2025-11-30T08:56:19.953810 +AWS,ap-southeast-3,d3en.6xlarge,reserved_1y,all_upfront,2.372073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:51.654906 +AWS,ap-southeast-3,d3en.6xlarge,reserved_1y,no_upfront,2.372073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:31.231811 +AWS,ap-southeast-3,d3en.6xlarge,reserved_1y,partial_upfront,2.372073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:18.443007 +AWS,ap-southeast-3,d3en.6xlarge,reserved_3y,all_upfront,1.581358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:57.758570 +AWS,ap-southeast-3,d3en.6xlarge,reserved_3y,no_upfront,1.581358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:32.479284 +AWS,ap-southeast-3,d3en.6xlarge,reserved_3y,partial_upfront,1.581358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:30.592899 +AWS,ap-southeast-3,d3en.6xlarge,spot,NA,0.398635,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854748 +AWS,ap-southeast-3,d3en.8xlarge,on_demand,NA,5.27168,USD,AWS Pricing API,2025-11-30T08:56:15.463308 +AWS,ap-southeast-3,d3en.8xlarge,reserved_1y,all_upfront,3.32116,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:47.083414 +AWS,ap-southeast-3,d3en.8xlarge,reserved_1y,no_upfront,3.32116,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:26.643488 +AWS,ap-southeast-3,d3en.8xlarge,reserved_1y,partial_upfront,3.32116,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:13.880731 +AWS,ap-southeast-3,d3en.8xlarge,reserved_3y,all_upfront,3.32116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:53.303433 +AWS,ap-southeast-3,d3en.8xlarge,reserved_3y,no_upfront,3.32116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:27.839106 +AWS,ap-southeast-3,d3en.8xlarge,reserved_3y,partial_upfront,3.32116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:26.051947 +AWS,ap-southeast-3,d3en.8xlarge,spot,NA,0.531988,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854697 +AWS,ap-southeast-3,d3en.xlarge,on_demand,NA,0.659,USD,AWS Pricing API,2025-11-30T08:55:31.725435 +AWS,ap-southeast-3,d3en.xlarge,reserved_1y,all_upfront,0.474215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:02.851020 +AWS,ap-southeast-3,d3en.xlarge,reserved_1y,no_upfront,0.474215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:41.918470 +AWS,ap-southeast-3,d3en.xlarge,reserved_1y,partial_upfront,0.474215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:29.841718 +AWS,ap-southeast-3,d3en.xlarge,reserved_3y,all_upfront,0.316072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:10.037787 +AWS,ap-southeast-3,d3en.xlarge,reserved_3y,no_upfront,0.316072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:42.874001 +AWS,ap-southeast-3,d3en.xlarge,reserved_3y,partial_upfront,0.316072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:42.159923 +AWS,ap-southeast-3,d3en.xlarge,spot,NA,0.066132,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854144 +AWS,ap-southeast-3,g5.12xlarge,on_demand,NA,7.93854,USD,AWS Pricing API,2025-11-30T08:55:05.172811 +AWS,ap-southeast-3,g5.12xlarge,reserved_1y,all_upfront,6.2516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:36.076951 +AWS,ap-southeast-3,g5.12xlarge,reserved_1y,no_upfront,6.2516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:14.685113 +AWS,ap-southeast-3,g5.12xlarge,reserved_1y,partial_upfront,6.2516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:03.229983 +AWS,ap-southeast-3,g5.12xlarge,reserved_3y,all_upfront,6.2516,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:43.818502 +AWS,ap-southeast-3,g5.12xlarge,reserved_3y,no_upfront,6.2516,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:15.563704 +AWS,ap-southeast-3,g5.12xlarge,reserved_3y,partial_upfront,6.2516,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:15.566770 +AWS,ap-southeast-3,g5.12xlarge,spot,NA,1.145279,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853724 +AWS,ap-southeast-3,g5.16xlarge,on_demand,NA,5.73277,USD,AWS Pricing API,2025-11-30T08:55:07.169263 +AWS,ap-southeast-3,g5.16xlarge,reserved_1y,all_upfront,3.37089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:38.068229 +AWS,ap-southeast-3,g5.16xlarge,reserved_1y,no_upfront,3.37089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:16.748333 +AWS,ap-southeast-3,g5.16xlarge,reserved_1y,partial_upfront,3.37089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:05.241558 +AWS,ap-southeast-3,g5.16xlarge,reserved_3y,all_upfront,1.12363,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:45.770506 +AWS,ap-southeast-3,g5.16xlarge,reserved_3y,no_upfront,1.12363,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:17.620547 +AWS,ap-southeast-3,g5.16xlarge,reserved_3y,partial_upfront,1.12363,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:17.559710 +AWS,ap-southeast-3,g5.16xlarge,spot,NA,0.573888,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853742 +AWS,ap-southeast-3,g5.24xlarge,on_demand,NA,11.39836,USD,AWS Pricing API,2025-11-30T08:55:06.110968 +AWS,ap-southeast-3,g5.24xlarge,reserved_1y,all_upfront,6.702283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:37.006486 +AWS,ap-southeast-3,g5.24xlarge,reserved_1y,no_upfront,6.702283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:15.640296 +AWS,ap-southeast-3,g5.24xlarge,reserved_1y,partial_upfront,6.702283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:04.169798 +AWS,ap-southeast-3,g5.24xlarge,reserved_3y,all_upfront,2.234094,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:44.730419 +AWS,ap-southeast-3,g5.24xlarge,reserved_3y,no_upfront,2.234094,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:16.545977 +AWS,ap-southeast-3,g5.24xlarge,reserved_3y,partial_upfront,2.234094,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:16.500877 +AWS,ap-southeast-3,g5.24xlarge,spot,NA,5.612064,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853737 +AWS,ap-southeast-3,g5.2xlarge,on_demand,NA,1.69632,USD,AWS Pricing API,2025-11-30T08:55:22.896129 +AWS,ap-southeast-3,g5.2xlarge,reserved_1y,all_upfront,2.493607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:53.917426 +AWS,ap-southeast-3,g5.2xlarge,reserved_1y,no_upfront,2.493607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:32.888096 +AWS,ap-southeast-3,g5.2xlarge,reserved_1y,partial_upfront,2.493607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:21.032567 +AWS,ap-southeast-3,g5.2xlarge,reserved_3y,all_upfront,0.831202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:01.332021 +AWS,ap-southeast-3,g5.2xlarge,reserved_3y,no_upfront,0.831202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:33.829366 +AWS,ap-southeast-3,g5.2xlarge,reserved_3y,partial_upfront,0.831202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:33.362360 +AWS,ap-southeast-3,g5.2xlarge,spot,NA,0.285499,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853938 +AWS,ap-southeast-3,g5.48xlarge,on_demand,NA,22.79672,USD,AWS Pricing API,2025-11-30T08:55:07.847963 +AWS,ap-southeast-3,g5.48xlarge,reserved_1y,all_upfront,17.097514,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:38.742451 +AWS,ap-southeast-3,g5.48xlarge,reserved_1y,no_upfront,17.097514,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:17.433629 +AWS,ap-southeast-3,g5.48xlarge,reserved_1y,partial_upfront,17.097514,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:05.910298 +AWS,ap-southeast-3,g5.48xlarge,reserved_3y,all_upfront,11.398351,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:46.435798 +AWS,ap-southeast-3,g5.48xlarge,reserved_3y,no_upfront,11.398351,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:18.302885 +AWS,ap-southeast-3,g5.48xlarge,reserved_3y,partial_upfront,11.398351,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:18.227607 +AWS,ap-southeast-3,g5.48xlarge,spot,NA,5.745893,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853755 +AWS,ap-southeast-3,g5.4xlarge,on_demand,NA,2.27295,USD,AWS Pricing API,2025-11-30T08:55:17.193397 +AWS,ap-southeast-3,g5.4xlarge,reserved_1y,all_upfront,1.670662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:48.136083 +AWS,ap-southeast-3,g5.4xlarge,reserved_1y,no_upfront,1.670662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:27.039772 +AWS,ap-southeast-3,g5.4xlarge,reserved_1y,partial_upfront,1.670662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:15.283232 +AWS,ap-southeast-3,g5.4xlarge,reserved_3y,all_upfront,0.556887,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:55.648890 +AWS,ap-southeast-3,g5.4xlarge,reserved_3y,no_upfront,0.556887,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:27.865969 +AWS,ap-southeast-3,g5.4xlarge,reserved_3y,partial_upfront,0.556887,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:27.609486 +AWS,ap-southeast-3,g5.4xlarge,spot,NA,0.375643,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853874 +AWS,ap-southeast-3,g5.8xlarge,on_demand,NA,3.42623,USD,AWS Pricing API,2025-11-30T08:55:24.772403 +AWS,ap-southeast-3,g5.8xlarge,reserved_1y,all_upfront,2.055724,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:55.835090 +AWS,ap-southeast-3,g5.8xlarge,reserved_1y,no_upfront,2.055724,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:34.778692 +AWS,ap-southeast-3,g5.8xlarge,reserved_1y,partial_upfront,2.055724,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:22.885746 +AWS,ap-southeast-3,g5.8xlarge,reserved_3y,all_upfront,1.370488,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:03.193571 +AWS,ap-southeast-3,g5.8xlarge,reserved_3y,no_upfront,1.370488,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:35.743705 +AWS,ap-southeast-3,g5.8xlarge,reserved_3y,partial_upfront,1.370488,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:35.227961 +AWS,ap-southeast-3,g5.8xlarge,spot,NA,0.53595,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853962 +AWS,ap-southeast-3,g5.xlarge,on_demand,NA,1.408,USD,AWS Pricing API,2025-11-30T08:56:11.134936 +AWS,ap-southeast-3,g5.xlarge,reserved_1y,all_upfront,0.844774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:42.649837 +AWS,ap-southeast-3,g5.xlarge,reserved_1y,no_upfront,0.844774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:22.145479 +AWS,ap-southeast-3,g5.xlarge,reserved_1y,partial_upfront,0.844774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:09.471021 +AWS,ap-southeast-3,g5.xlarge,reserved_3y,all_upfront,0.563191,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:48.976556 +AWS,ap-southeast-3,g5.xlarge,reserved_3y,no_upfront,0.563191,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:23.315395 +AWS,ap-southeast-3,g5.xlarge,reserved_3y,partial_upfront,0.563191,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:21.649166 +AWS,ap-southeast-3,g5.xlarge,spot,NA,0.326804,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854651 +AWS,ap-southeast-3,i3.16xlarge,on_demand,NA,5.984,USD,AWS Pricing API,2025-11-30T08:56:02.671671 +AWS,ap-southeast-3,i3.16xlarge,reserved_1y,all_upfront,3.339,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:34.109255 +AWS,ap-southeast-3,i3.16xlarge,reserved_1y,no_upfront,3.339,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:13.573822 +AWS,ap-southeast-3,i3.16xlarge,reserved_1y,partial_upfront,3.339,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:00.998873 +AWS,ap-southeast-3,i3.16xlarge,reserved_3y,all_upfront,3.339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:40.677509 +AWS,ap-southeast-3,i3.16xlarge,reserved_3y,no_upfront,3.339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:14.673621 +AWS,ap-southeast-3,i3.16xlarge,reserved_3y,partial_upfront,3.339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:13.228014 +AWS,ap-southeast-3,i3.16xlarge,spot,NA,0.614096,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854567 +AWS,ap-southeast-3,i3.2xlarge,on_demand,NA,0.748,USD,AWS Pricing API,2025-11-30T08:55:23.038301 +AWS,ap-southeast-3,i3.2xlarge,reserved_1y,all_upfront,0.417,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:54.059135 +AWS,ap-southeast-3,i3.2xlarge,reserved_1y,no_upfront,0.417,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:33.026282 +AWS,ap-southeast-3,i3.2xlarge,reserved_1y,partial_upfront,0.417,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:21.166816 +AWS,ap-southeast-3,i3.2xlarge,reserved_3y,all_upfront,0.417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:01.466281 +AWS,ap-southeast-3,i3.2xlarge,reserved_3y,no_upfront,0.417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:33.965051 +AWS,ap-southeast-3,i3.2xlarge,reserved_3y,partial_upfront,0.417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:33.495374 +AWS,ap-southeast-3,i3.2xlarge,spot,NA,0.082141,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853954 +AWS,ap-southeast-3,i3.4xlarge,on_demand,NA,1.496,USD,AWS Pricing API,2025-11-30T08:55:24.497706 +AWS,ap-southeast-3,i3.4xlarge,reserved_1y,all_upfront,1.343991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:55.540236 +AWS,ap-southeast-3,i3.4xlarge,reserved_1y,no_upfront,1.343991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:34.509393 +AWS,ap-southeast-3,i3.4xlarge,reserved_1y,partial_upfront,1.343991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:22.625121 +AWS,ap-southeast-3,i3.4xlarge,reserved_3y,all_upfront,0.671997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:02.929769 +AWS,ap-southeast-3,i3.4xlarge,reserved_3y,no_upfront,0.671997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:35.473257 +AWS,ap-southeast-3,i3.4xlarge,reserved_3y,partial_upfront,0.671997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:34.959179 +AWS,ap-southeast-3,i3.4xlarge,spot,NA,0.160142,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853970 +AWS,ap-southeast-3,i3.8xlarge,on_demand,NA,2.992,USD,AWS Pricing API,2025-11-30T08:55:18.775425 +AWS,ap-southeast-3,i3.8xlarge,reserved_1y,all_upfront,1.452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:49.748484 +AWS,ap-southeast-3,i3.8xlarge,reserved_1y,no_upfront,1.452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:28.648431 +AWS,ap-southeast-3,i3.8xlarge,reserved_1y,partial_upfront,1.452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:16.873407 +AWS,ap-southeast-3,i3.8xlarge,reserved_3y,all_upfront,1.452,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:57.238876 +AWS,ap-southeast-3,i3.8xlarge,reserved_3y,no_upfront,1.452,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:29.504951 +AWS,ap-southeast-3,i3.8xlarge,reserved_3y,partial_upfront,1.452,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:29.198088 +AWS,ap-southeast-3,i3.8xlarge,spot,NA,0.30684,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853881 +AWS,ap-southeast-3,i3.large,on_demand,NA,0.187,USD,AWS Pricing API,2025-11-30T08:55:23.706094 +AWS,ap-southeast-3,i3.large,reserved_1y,all_upfront,0.128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:54.740427 +AWS,ap-southeast-3,i3.large,reserved_1y,no_upfront,0.128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:33.699389 +AWS,ap-southeast-3,i3.large,reserved_1y,partial_upfront,0.128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:21.827482 +AWS,ap-southeast-3,i3.large,reserved_3y,all_upfront,0.128,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:02.130951 +AWS,ap-southeast-3,i3.large,reserved_3y,no_upfront,0.128,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:34.643418 +AWS,ap-southeast-3,i3.large,reserved_3y,partial_upfront,0.128,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:34.159589 +AWS,ap-southeast-3,i3.large,spot,NA,0.020185,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853966 +AWS,ap-southeast-3,i3.xlarge,on_demand,NA,0.374,USD,AWS Pricing API,2025-11-30T08:55:48.620952 +AWS,ap-southeast-3,i3.xlarge,reserved_1y,all_upfront,0.295,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:19.972590 +AWS,ap-southeast-3,i3.xlarge,reserved_1y,no_upfront,0.295,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:59.125480 +AWS,ap-southeast-3,i3.xlarge,reserved_1y,partial_upfront,0.295,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:46.884422 +AWS,ap-southeast-3,i3.xlarge,reserved_3y,all_upfront,0.295,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:26.773174 +AWS,ap-southeast-3,i3.xlarge,reserved_3y,no_upfront,0.295,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:00.273603 +AWS,ap-southeast-3,i3.xlarge,reserved_3y,partial_upfront,0.295,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:59.179168 +AWS,ap-southeast-3,i3.xlarge,spot,NA,0.044786,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854369 +AWS,ap-southeast-3,i3en.12xlarge,on_demand,NA,6.504,USD,AWS Pricing API,2025-11-30T08:55:20.756829 +AWS,ap-southeast-3,i3en.12xlarge,reserved_1y,all_upfront,4.874215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:51.762780 +AWS,ap-southeast-3,i3en.12xlarge,reserved_1y,no_upfront,4.874215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:30.688818 +AWS,ap-southeast-3,i3en.12xlarge,reserved_1y,partial_upfront,4.874215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:18.886943 +AWS,ap-southeast-3,i3en.12xlarge,reserved_3y,all_upfront,3.249405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:59.212887 +AWS,ap-southeast-3,i3en.12xlarge,reserved_3y,no_upfront,3.249405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:31.563902 +AWS,ap-southeast-3,i3en.12xlarge,reserved_3y,partial_upfront,3.249405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:31.197342 +AWS,ap-southeast-3,i3en.12xlarge,spot,NA,1.092302,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853896 +AWS,ap-southeast-3,i3en.24xlarge,on_demand,NA,13.008,USD,AWS Pricing API,2025-11-30T08:55:25.970615 +AWS,ap-southeast-3,i3en.24xlarge,reserved_1y,all_upfront,10.485269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:57.042718 +AWS,ap-southeast-3,i3en.24xlarge,reserved_1y,no_upfront,10.485269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:36.007090 +AWS,ap-southeast-3,i3en.24xlarge,reserved_1y,partial_upfront,10.485269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:24.098572 +AWS,ap-southeast-3,i3en.24xlarge,reserved_3y,all_upfront,5.242423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:04.376619 +AWS,ap-southeast-3,i3en.24xlarge,reserved_3y,no_upfront,5.242423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:36.973245 +AWS,ap-southeast-3,i3en.24xlarge,reserved_3y,partial_upfront,5.242423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:36.428787 +AWS,ap-southeast-3,i3en.24xlarge,spot,NA,4.75196,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853991 +AWS,ap-southeast-3,i3en.2xlarge,on_demand,NA,1.084,USD,AWS Pricing API,2025-11-30T08:55:15.984093 +AWS,ap-southeast-3,i3en.2xlarge,reserved_1y,all_upfront,0.691895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:46.927969 +AWS,ap-southeast-3,i3en.2xlarge,reserved_1y,no_upfront,0.691895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:25.801820 +AWS,ap-southeast-3,i3en.2xlarge,reserved_1y,partial_upfront,0.691895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:14.060950 +AWS,ap-southeast-3,i3en.2xlarge,reserved_3y,all_upfront,0.230632,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:54.466884 +AWS,ap-southeast-3,i3en.2xlarge,reserved_3y,no_upfront,0.230632,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:26.620295 +AWS,ap-southeast-3,i3en.2xlarge,reserved_3y,partial_upfront,0.230632,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:26.393904 +AWS,ap-southeast-3,i3en.2xlarge,spot,NA,0.236776,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853822 +AWS,ap-southeast-3,i3en.3xlarge,on_demand,NA,1.626,USD,AWS Pricing API,2025-11-30T08:56:09.791376 +AWS,ap-southeast-3,i3en.3xlarge,reserved_1y,all_upfront,1.28,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:41.298542 +AWS,ap-southeast-3,i3en.3xlarge,reserved_1y,no_upfront,1.28,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:20.785420 +AWS,ap-southeast-3,i3en.3xlarge,reserved_1y,partial_upfront,1.28,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:08.134009 +AWS,ap-southeast-3,i3en.3xlarge,reserved_3y,all_upfront,1.28,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:47.648119 +AWS,ap-southeast-3,i3en.3xlarge,reserved_3y,no_upfront,1.28,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:21.951808 +AWS,ap-southeast-3,i3en.3xlarge,reserved_3y,partial_upfront,1.28,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:20.309584 +AWS,ap-southeast-3,i3en.3xlarge,spot,NA,0.219103,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854647 +AWS,ap-southeast-3,i3en.6xlarge,on_demand,NA,3.252,USD,AWS Pricing API,2025-11-30T08:56:01.160179 +AWS,ap-southeast-3,i3en.6xlarge,reserved_1y,all_upfront,3.019041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:32.626101 +AWS,ap-southeast-3,i3en.6xlarge,reserved_1y,no_upfront,3.019041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:12.077137 +AWS,ap-southeast-3,i3en.6xlarge,reserved_1y,partial_upfront,3.019041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:59.535150 +AWS,ap-southeast-3,i3en.6xlarge,reserved_3y,all_upfront,1.50968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:39.235724 +AWS,ap-southeast-3,i3en.6xlarge,reserved_3y,no_upfront,1.50968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:13.181862 +AWS,ap-southeast-3,i3en.6xlarge,reserved_3y,partial_upfront,1.50968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:11.758579 +AWS,ap-southeast-3,i3en.6xlarge,spot,NA,0.374508,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854547 +AWS,ap-southeast-3,i3en.large,on_demand,NA,0.271,USD,AWS Pricing API,2025-11-30T08:55:34.397862 +AWS,ap-southeast-3,i3en.large,reserved_1y,all_upfront,0.172945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:05.563972 +AWS,ap-southeast-3,i3en.large,reserved_1y,no_upfront,0.172945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:44.625096 +AWS,ap-southeast-3,i3en.large,reserved_1y,partial_upfront,0.172945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:32.535553 +AWS,ap-southeast-3,i3en.large,reserved_3y,all_upfront,0.057648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:12.665957 +AWS,ap-southeast-3,i3en.large,reserved_3y,no_upfront,0.057648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:45.613434 +AWS,ap-southeast-3,i3en.large,reserved_3y,partial_upfront,0.057648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:44.887866 +AWS,ap-southeast-3,i3en.large,spot,NA,0.038653,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854183 +AWS,ap-southeast-3,i3en.xlarge,on_demand,NA,0.542,USD,AWS Pricing API,2025-11-30T08:55:33.742200 +AWS,ap-southeast-3,i3en.xlarge,reserved_1y,all_upfront,0.371,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:04.889507 +AWS,ap-southeast-3,i3en.xlarge,reserved_1y,no_upfront,0.371,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:43.955854 +AWS,ap-southeast-3,i3en.xlarge,reserved_1y,partial_upfront,0.371,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:31.866347 +AWS,ap-southeast-3,i3en.xlarge,reserved_3y,all_upfront,0.371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:12.013675 +AWS,ap-southeast-3,i3en.xlarge,reserved_3y,no_upfront,0.371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:44.925608 +AWS,ap-southeast-3,i3en.xlarge,reserved_3y,partial_upfront,0.371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:44.223674 +AWS,ap-southeast-3,i3en.xlarge,spot,NA,0.119327,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854150 +AWS,ap-southeast-3,i4i.16xlarge,on_demand,NA,6.582,USD,AWS Pricing API,2025-11-30T08:55:38.550886 +AWS,ap-southeast-3,i4i.16xlarge,reserved_1y,all_upfront,6.767114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:09.730814 +AWS,ap-southeast-3,i4i.16xlarge,reserved_1y,no_upfront,6.767114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:48.839516 +AWS,ap-southeast-3,i4i.16xlarge,reserved_1y,partial_upfront,6.767114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:36.699284 +AWS,ap-southeast-3,i4i.16xlarge,reserved_3y,all_upfront,3.383705,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:16.772730 +AWS,ap-southeast-3,i4i.16xlarge,reserved_3y,no_upfront,3.383705,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:49.889376 +AWS,ap-southeast-3,i4i.16xlarge,reserved_3y,partial_upfront,3.383705,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:49.027681 +AWS,ap-southeast-3,i4i.16xlarge,spot,NA,0.745554,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854263 +AWS,ap-southeast-3,i4i.2xlarge,on_demand,NA,0.823,USD,AWS Pricing API,2025-11-30T08:55:54.170115 +AWS,ap-southeast-3,i4i.2xlarge,reserved_1y,all_upfront,0.511822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:25.610184 +AWS,ap-southeast-3,i4i.2xlarge,reserved_1y,no_upfront,0.511822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:04.877580 +AWS,ap-southeast-3,i4i.2xlarge,reserved_1y,partial_upfront,0.511822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:52.552116 +AWS,ap-southeast-3,i4i.2xlarge,reserved_3y,all_upfront,0.341274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:32.351173 +AWS,ap-southeast-3,i4i.2xlarge,reserved_3y,no_upfront,0.341274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:06.055526 +AWS,ap-southeast-3,i4i.2xlarge,reserved_3y,partial_upfront,0.341274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:04.793993 +AWS,ap-southeast-3,i4i.2xlarge,spot,NA,0.150144,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854432 +AWS,ap-southeast-3,i4i.32xlarge,on_demand,NA,13.1648,USD,AWS Pricing API,2025-11-30T08:56:06.442435 +AWS,ap-southeast-3,i4i.32xlarge,reserved_1y,all_upfront,8.184946,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:37.877370 +AWS,ap-southeast-3,i4i.32xlarge,reserved_1y,no_upfront,8.184946,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:17.407504 +AWS,ap-southeast-3,i4i.32xlarge,reserved_1y,partial_upfront,8.184946,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:04.766457 +AWS,ap-southeast-3,i4i.32xlarge,reserved_3y,all_upfront,5.456635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:44.367270 +AWS,ap-southeast-3,i4i.32xlarge,reserved_3y,no_upfront,5.456635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:18.529518 +AWS,ap-southeast-3,i4i.32xlarge,reserved_3y,partial_upfront,5.456635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:16.975726 +AWS,ap-southeast-3,i4i.32xlarge,spot,NA,1.484157,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854603 +AWS,ap-southeast-3,i4i.4xlarge,on_demand,NA,1.646,USD,AWS Pricing API,2025-11-30T08:55:42.937501 +AWS,ap-southeast-3,i4i.4xlarge,reserved_1y,all_upfront,1.279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:14.183681 +AWS,ap-southeast-3,i4i.4xlarge,reserved_1y,no_upfront,1.279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:53.295539 +AWS,ap-southeast-3,i4i.4xlarge,reserved_1y,partial_upfront,1.279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:41.119663 +AWS,ap-southeast-3,i4i.4xlarge,reserved_3y,all_upfront,1.279,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:21.116796 +AWS,ap-southeast-3,i4i.4xlarge,reserved_3y,no_upfront,1.279,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:54.403593 +AWS,ap-southeast-3,i4i.4xlarge,reserved_3y,partial_upfront,1.279,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:53.450124 +AWS,ap-southeast-3,i4i.4xlarge,spot,NA,0.174905,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854297 +AWS,ap-southeast-3,i4i.8xlarge,on_demand,NA,3.291,USD,AWS Pricing API,2025-11-30T08:55:45.856828 +AWS,ap-southeast-3,i4i.8xlarge,reserved_1y,all_upfront,2.436265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:17.155408 +AWS,ap-southeast-3,i4i.8xlarge,reserved_1y,no_upfront,2.436265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:56.275386 +AWS,ap-southeast-3,i4i.8xlarge,reserved_1y,partial_upfront,2.436265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:44.072608 +AWS,ap-southeast-3,i4i.8xlarge,reserved_3y,all_upfront,1.624088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:24.009427 +AWS,ap-southeast-3,i4i.8xlarge,reserved_3y,no_upfront,1.624088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:57.412137 +AWS,ap-southeast-3,i4i.8xlarge,reserved_3y,partial_upfront,1.624088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:56.387075 +AWS,ap-southeast-3,i4i.8xlarge,spot,NA,0.368257,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854337 +AWS,ap-southeast-3,i4i.large,on_demand,NA,0.206,USD,AWS Pricing API,2025-11-30T08:56:10.995593 +AWS,ap-southeast-3,i4i.large,reserved_1y,all_upfront,0.248744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:42.516272 +AWS,ap-southeast-3,i4i.large,reserved_1y,no_upfront,0.248744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:22.005869 +AWS,ap-southeast-3,i4i.large,reserved_1y,partial_upfront,0.248744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:09.330775 +AWS,ap-southeast-3,i4i.large,reserved_3y,all_upfront,0.082915,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:48.843431 +AWS,ap-southeast-3,i4i.large,reserved_3y,no_upfront,0.082915,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:23.178893 +AWS,ap-southeast-3,i4i.large,reserved_3y,partial_upfront,0.082915,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:21.509482 +AWS,ap-southeast-3,i4i.large,spot,NA,0.052204,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854659 +AWS,ap-southeast-3,i4i.xlarge,on_demand,NA,0.411,USD,AWS Pricing API,2025-11-30T08:55:52.587829 +AWS,ap-southeast-3,i4i.xlarge,reserved_1y,all_upfront,0.255854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:23.984105 +AWS,ap-southeast-3,i4i.xlarge,reserved_1y,no_upfront,0.255854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:03.228446 +AWS,ap-southeast-3,i4i.xlarge,reserved_1y,partial_upfront,0.255854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:50.905185 +AWS,ap-southeast-3,i4i.xlarge,reserved_3y,all_upfront,0.170618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:30.775291 +AWS,ap-southeast-3,i4i.xlarge,reserved_3y,no_upfront,0.170618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:04.417300 +AWS,ap-southeast-3,i4i.xlarge,reserved_3y,partial_upfront,0.170618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:03.196584 +AWS,ap-southeast-3,i4i.xlarge,spot,NA,0.08886,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854412 +AWS,ap-southeast-3,m5.12xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T08:55:28.020578 +AWS,ap-southeast-3,m5.12xlarge,reserved_1y,all_upfront,1.728041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:59.073875 +AWS,ap-southeast-3,m5.12xlarge,reserved_1y,no_upfront,1.728041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:38.140236 +AWS,ap-southeast-3,m5.12xlarge,reserved_1y,partial_upfront,1.728041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:26.107734 +AWS,ap-southeast-3,m5.12xlarge,reserved_3y,all_upfront,1.152014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:06.349657 +AWS,ap-southeast-3,m5.12xlarge,reserved_3y,no_upfront,1.152014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:39.031122 +AWS,ap-southeast-3,m5.12xlarge,reserved_3y,partial_upfront,1.152014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:38.425591 +AWS,ap-southeast-3,m5.12xlarge,spot,NA,0.308616,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854027 +AWS,ap-southeast-3,m5.16xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T08:55:59.949194 +AWS,ap-southeast-3,m5.16xlarge,reserved_1y,all_upfront,2.257877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:31.414585 +AWS,ap-southeast-3,m5.16xlarge,reserved_1y,no_upfront,2.257877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:10.832157 +AWS,ap-southeast-3,m5.16xlarge,reserved_1y,partial_upfront,2.257877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:58.326367 +AWS,ap-southeast-3,m5.16xlarge,reserved_3y,all_upfront,0.752626,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:38.041676 +AWS,ap-southeast-3,m5.16xlarge,reserved_3y,no_upfront,0.752626,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:11.953700 +AWS,ap-southeast-3,m5.16xlarge,reserved_3y,partial_upfront,0.752626,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:10.551609 +AWS,ap-southeast-3,m5.16xlarge,spot,NA,0.40659,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854532 +AWS,ap-southeast-3,m5.24xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T08:56:11.270897 +AWS,ap-southeast-3,m5.24xlarge,reserved_1y,all_upfront,3.386872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:42.783671 +AWS,ap-southeast-3,m5.24xlarge,reserved_1y,no_upfront,3.386872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:22.282507 +AWS,ap-southeast-3,m5.24xlarge,reserved_1y,partial_upfront,3.386872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:09.604713 +AWS,ap-southeast-3,m5.24xlarge,reserved_3y,all_upfront,1.128957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:49.111241 +AWS,ap-southeast-3,m5.24xlarge,reserved_3y,no_upfront,1.128957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:23.456978 +AWS,ap-southeast-3,m5.24xlarge,reserved_3y,partial_upfront,1.128957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:21.783550 +AWS,ap-southeast-3,m5.24xlarge,spot,NA,0.583665,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854662 +AWS,ap-southeast-3,m5.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T08:55:43.731050 +AWS,ap-southeast-3,m5.2xlarge,reserved_1y,all_upfront,0.28795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:15.000110 +AWS,ap-southeast-3,m5.2xlarge,reserved_1y,no_upfront,0.28795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:54.109490 +AWS,ap-southeast-3,m5.2xlarge,reserved_1y,partial_upfront,0.28795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:41.922680 +AWS,ap-southeast-3,m5.2xlarge,reserved_3y,all_upfront,0.191983,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:21.900116 +AWS,ap-southeast-3,m5.2xlarge,reserved_3y,no_upfront,0.191983,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:55.216954 +AWS,ap-southeast-3,m5.2xlarge,reserved_3y,partial_upfront,0.191983,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:54.251481 +AWS,ap-southeast-3,m5.2xlarge,spot,NA,0.234681,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854313 +AWS,ap-southeast-3,m5.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T08:55:52.854210 +AWS,ap-southeast-3,m5.4xlarge,reserved_1y,all_upfront,0.487,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:24.261625 +AWS,ap-southeast-3,m5.4xlarge,reserved_1y,no_upfront,0.487,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:03.497852 +AWS,ap-southeast-3,m5.4xlarge,reserved_1y,partial_upfront,0.487,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:51.176272 +AWS,ap-southeast-3,m5.4xlarge,reserved_3y,all_upfront,0.487,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:31.037992 +AWS,ap-southeast-3,m5.4xlarge,reserved_3y,no_upfront,0.487,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:04.692514 +AWS,ap-southeast-3,m5.4xlarge,reserved_3y,partial_upfront,0.487,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:03.464960 +AWS,ap-southeast-3,m5.4xlarge,spot,NA,0.218293,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854416 +AWS,ap-southeast-3,m5.8xlarge,on_demand,NA,1.92,USD,AWS Pricing API,2025-11-30T08:56:19.037084 +AWS,ap-southeast-3,m5.8xlarge,reserved_1y,all_upfront,1.43,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:50.709382 +AWS,ap-southeast-3,m5.8xlarge,reserved_1y,no_upfront,1.43,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:30.285355 +AWS,ap-southeast-3,m5.8xlarge,reserved_1y,partial_upfront,1.43,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:17.501189 +AWS,ap-southeast-3,m5.8xlarge,reserved_3y,all_upfront,1.43,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:56.847811 +AWS,ap-southeast-3,m5.8xlarge,reserved_3y,no_upfront,1.43,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:31.536252 +AWS,ap-southeast-3,m5.8xlarge,reserved_3y,partial_upfront,1.43,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:29.649043 +AWS,ap-southeast-3,m5.8xlarge,spot,NA,0.318639,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854728 +AWS,ap-southeast-3,m5.large,on_demand,NA,0.12,USD,AWS Pricing API,2025-11-30T08:55:44.131655 +AWS,ap-southeast-3,m5.large,reserved_1y,all_upfront,0.070548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:15.405024 +AWS,ap-southeast-3,m5.large,reserved_1y,no_upfront,0.070548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:54.516780 +AWS,ap-southeast-3,m5.large,reserved_1y,partial_upfront,0.070548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:42.327218 +AWS,ap-southeast-3,m5.large,reserved_3y,all_upfront,0.023516,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:22.296241 +AWS,ap-southeast-3,m5.large,reserved_3y,no_upfront,0.023516,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:55.627634 +AWS,ap-southeast-3,m5.large,reserved_3y,partial_upfront,0.023516,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:54.651682 +AWS,ap-southeast-3,m5.large,spot,NA,0.035642,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854325 +AWS,ap-southeast-3,m5.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T08:56:16.912107 +AWS,ap-southeast-3,m5.xlarge,reserved_1y,all_upfront,0.144032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:48.565518 +AWS,ap-southeast-3,m5.xlarge,reserved_1y,no_upfront,0.144032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:28.125243 +AWS,ap-southeast-3,m5.xlarge,reserved_1y,partial_upfront,0.144032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:15.353879 +AWS,ap-southeast-3,m5.xlarge,reserved_3y,all_upfront,0.096011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:54.742442 +AWS,ap-southeast-3,m5.xlarge,reserved_3y,no_upfront,0.096011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:29.336993 +AWS,ap-southeast-3,m5.xlarge,reserved_3y,partial_upfront,0.096011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:27.512065 +AWS,ap-southeast-3,m5.xlarge,spot,NA,0.126829,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854701 +AWS,ap-southeast-3,m5d.12xlarge,on_demand,NA,3.384,USD,AWS Pricing API,2025-11-30T08:55:12.769433 +AWS,ap-southeast-3,m5d.12xlarge,reserved_1y,all_upfront,2.030183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:43.697650 +AWS,ap-southeast-3,m5d.12xlarge,reserved_1y,no_upfront,2.030183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:22.531581 +AWS,ap-southeast-3,m5d.12xlarge,reserved_1y,partial_upfront,2.030183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:10.828479 +AWS,ap-southeast-3,m5d.12xlarge,reserved_3y,all_upfront,1.353394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:51.320637 +AWS,ap-southeast-3,m5d.12xlarge,reserved_3y,no_upfront,1.353394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:23.324933 +AWS,ap-southeast-3,m5d.12xlarge,reserved_3y,partial_upfront,1.353394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:23.175161 +AWS,ap-southeast-3,m5d.12xlarge,spot,NA,0.366035,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853779 +AWS,ap-southeast-3,m5d.16xlarge,on_demand,NA,4.512,USD,AWS Pricing API,2025-11-30T08:55:56.835504 +AWS,ap-southeast-3,m5d.16xlarge,reserved_1y,all_upfront,2.707653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:28.322199 +AWS,ap-southeast-3,m5d.16xlarge,reserved_1y,no_upfront,2.707653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:07.626633 +AWS,ap-southeast-3,m5d.16xlarge,reserved_1y,partial_upfront,2.707653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:55.234001 +AWS,ap-southeast-3,m5d.16xlarge,reserved_3y,all_upfront,1.805218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:34.983817 +AWS,ap-southeast-3,m5d.16xlarge,reserved_3y,no_upfront,1.805218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:08.803265 +AWS,ap-southeast-3,m5d.16xlarge,reserved_3y,partial_upfront,1.805218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:07.482494 +AWS,ap-southeast-3,m5d.16xlarge,spot,NA,0.457862,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854472 +AWS,ap-southeast-3,m5d.24xlarge,on_demand,NA,6.768,USD,AWS Pricing API,2025-11-30T08:55:40.814226 +AWS,ap-southeast-3,m5d.24xlarge,reserved_1y,all_upfront,3.979566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:12.032473 +AWS,ap-southeast-3,m5d.24xlarge,reserved_1y,no_upfront,3.979566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:51.129201 +AWS,ap-southeast-3,m5d.24xlarge,reserved_1y,partial_upfront,3.979566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:38.978334 +AWS,ap-southeast-3,m5d.24xlarge,reserved_3y,all_upfront,1.326522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:19.027851 +AWS,ap-southeast-3,m5d.24xlarge,reserved_3y,no_upfront,1.326522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:52.225953 +AWS,ap-southeast-3,m5d.24xlarge,reserved_3y,partial_upfront,1.326522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:51.310918 +AWS,ap-southeast-3,m5d.24xlarge,spot,NA,0.688642,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854276 +AWS,ap-southeast-3,m5d.2xlarge,on_demand,NA,0.564,USD,AWS Pricing API,2025-11-30T08:55:25.445242 +AWS,ap-southeast-3,m5d.2xlarge,reserved_1y,all_upfront,0.39121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:56.505271 +AWS,ap-southeast-3,m5d.2xlarge,reserved_1y,no_upfront,0.39121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:35.463656 +AWS,ap-southeast-3,m5d.2xlarge,reserved_1y,partial_upfront,0.39121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:23.554615 +AWS,ap-southeast-3,m5d.2xlarge,reserved_3y,all_upfront,0.130403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:03.853667 +AWS,ap-southeast-3,m5d.2xlarge,reserved_3y,no_upfront,0.130403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:36.427796 +AWS,ap-southeast-3,m5d.2xlarge,reserved_3y,partial_upfront,0.130403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:35.893730 +AWS,ap-southeast-3,m5d.2xlarge,spot,NA,0.078045,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853983 +AWS,ap-southeast-3,m5d.4xlarge,on_demand,NA,1.128,USD,AWS Pricing API,2025-11-30T08:55:36.394017 +AWS,ap-southeast-3,m5d.4xlarge,reserved_1y,all_upfront,0.838,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:07.567156 +AWS,ap-southeast-3,m5d.4xlarge,reserved_1y,no_upfront,0.838,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:46.649312 +AWS,ap-southeast-3,m5d.4xlarge,reserved_1y,partial_upfront,0.838,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:34.536919 +AWS,ap-southeast-3,m5d.4xlarge,reserved_3y,all_upfront,0.838,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:14.645082 +AWS,ap-southeast-3,m5d.4xlarge,reserved_3y,no_upfront,0.838,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:47.686645 +AWS,ap-southeast-3,m5d.4xlarge,reserved_3y,partial_upfront,0.838,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:46.891612 +AWS,ap-southeast-3,m5d.4xlarge,spot,NA,0.132116,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854208 +AWS,ap-southeast-3,m5d.8xlarge,on_demand,NA,2.256,USD,AWS Pricing API,2025-11-30T08:56:18.899978 +AWS,ap-southeast-3,m5d.8xlarge,reserved_1y,all_upfront,1.565068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:50.576003 +AWS,ap-southeast-3,m5d.8xlarge,reserved_1y,no_upfront,1.565068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:30.145664 +AWS,ap-southeast-3,m5d.8xlarge,reserved_1y,partial_upfront,1.565068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:17.366857 +AWS,ap-southeast-3,m5d.8xlarge,reserved_3y,all_upfront,0.521689,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:56.716366 +AWS,ap-southeast-3,m5d.8xlarge,reserved_3y,no_upfront,0.521689,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:31.392235 +AWS,ap-southeast-3,m5d.8xlarge,reserved_3y,partial_upfront,0.521689,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:29.515955 +AWS,ap-southeast-3,m5d.8xlarge,spot,NA,0.348607,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854732 +AWS,ap-southeast-3,m5d.large,on_demand,NA,0.141,USD,AWS Pricing API,2025-11-30T08:55:16.517757 +AWS,ap-southeast-3,m5d.large,reserved_1y,all_upfront,0.082877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:47.464109 +AWS,ap-southeast-3,m5d.large,reserved_1y,no_upfront,0.082877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:26.351093 +AWS,ap-southeast-3,m5d.large,reserved_1y,partial_upfront,0.082877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:14.591393 +AWS,ap-southeast-3,m5d.large,reserved_3y,all_upfront,0.027626,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:54.992043 +AWS,ap-southeast-3,m5d.large,reserved_3y,no_upfront,0.027626,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:27.168305 +AWS,ap-southeast-3,m5d.large,reserved_3y,partial_upfront,0.027626,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:26.936513 +AWS,ap-southeast-3,m5d.large,spot,NA,0.019602,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853845 +AWS,ap-southeast-3,m5d.xlarge,on_demand,NA,0.282,USD,AWS Pricing API,2025-11-30T08:55:32.260522 +AWS,ap-southeast-3,m5d.xlarge,reserved_1y,all_upfront,0.169589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:03.386653 +AWS,ap-southeast-3,m5d.xlarge,reserved_1y,no_upfront,0.169589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:42.462782 +AWS,ap-southeast-3,m5d.xlarge,reserved_1y,partial_upfront,0.169589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:30.384655 +AWS,ap-southeast-3,m5d.xlarge,reserved_3y,all_upfront,0.113196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:10.561123 +AWS,ap-southeast-3,m5d.xlarge,reserved_3y,no_upfront,0.113196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:43.421499 +AWS,ap-southeast-3,m5d.xlarge,reserved_3y,partial_upfront,0.113196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:42.750356 +AWS,ap-southeast-3,m5d.xlarge,spot,NA,0.032139,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854114 +AWS,ap-southeast-3,m6g.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:55:26.693520 +AWS,ap-southeast-3,m6g.12xlarge,reserved_1y,all_upfront,3.170091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:57.725369 +AWS,ap-southeast-3,m6g.12xlarge,reserved_1y,no_upfront,3.170091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:36.703246 +AWS,ap-southeast-3,m6g.12xlarge,reserved_1y,partial_upfront,3.170091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:24.764363 +AWS,ap-southeast-3,m6g.12xlarge,reserved_3y,all_upfront,1.056697,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:05.030609 +AWS,ap-southeast-3,m6g.12xlarge,reserved_3y,no_upfront,1.056697,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:37.655225 +AWS,ap-southeast-3,m6g.12xlarge,reserved_3y,partial_upfront,1.056697,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:37.090598 +AWS,ap-southeast-3,m6g.12xlarge,spot,NA,0.306876,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854015 +AWS,ap-southeast-3,m6g.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:55:22.092218 +AWS,ap-southeast-3,m6g.16xlarge,reserved_1y,all_upfront,1.843175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:53.116781 +AWS,ap-southeast-3,m6g.16xlarge,reserved_1y,no_upfront,1.843175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:32.059354 +AWS,ap-southeast-3,m6g.16xlarge,reserved_1y,partial_upfront,1.843175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:20.219661 +AWS,ap-southeast-3,m6g.16xlarge,reserved_3y,all_upfront,1.228792,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:00.539786 +AWS,ap-southeast-3,m6g.16xlarge,reserved_3y,no_upfront,1.228792,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:33.009154 +AWS,ap-southeast-3,m6g.16xlarge,reserved_3y,partial_upfront,1.228792,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:32.549624 +AWS,ap-southeast-3,m6g.16xlarge,spot,NA,0.424824,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853926 +AWS,ap-southeast-3,m6g.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:55:42.409739 +AWS,ap-southeast-3,m6g.2xlarge,reserved_1y,all_upfront,0.268379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:13.648239 +AWS,ap-southeast-3,m6g.2xlarge,reserved_1y,no_upfront,0.268379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:52.746493 +AWS,ap-southeast-3,m6g.2xlarge,reserved_1y,partial_upfront,0.268379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:40.578708 +AWS,ap-southeast-3,m6g.2xlarge,reserved_3y,all_upfront,0.08946,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:20.595289 +AWS,ap-southeast-3,m6g.2xlarge,reserved_3y,no_upfront,0.08946,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:53.861880 +AWS,ap-southeast-3,m6g.2xlarge,reserved_3y,partial_upfront,0.08946,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:52.904331 +AWS,ap-southeast-3,m6g.2xlarge,spot,NA,0.069548,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854309 +AWS,ap-southeast-3,m6g.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:56:08.462316 +AWS,ap-southeast-3,m6g.4xlarge,reserved_1y,all_upfront,0.5751,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:39.933865 +AWS,ap-southeast-3,m6g.4xlarge,reserved_1y,no_upfront,0.5751,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:19.432406 +AWS,ap-southeast-3,m6g.4xlarge,reserved_1y,partial_upfront,0.5751,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:06.797527 +AWS,ap-southeast-3,m6g.4xlarge,reserved_3y,all_upfront,0.5751,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:46.337919 +AWS,ap-southeast-3,m6g.4xlarge,reserved_3y,no_upfront,0.5751,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:20.575445 +AWS,ap-southeast-3,m6g.4xlarge,reserved_3y,partial_upfront,0.5751,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:18.981084 +AWS,ap-southeast-3,m6g.4xlarge,spot,NA,0.103901,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854614 +AWS,ap-southeast-3,m6g.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:55:49.684112 +AWS,ap-southeast-3,m6g.8xlarge,reserved_1y,all_upfront,1.228775,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:21.044605 +AWS,ap-southeast-3,m6g.8xlarge,reserved_1y,no_upfront,1.228775,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:00.206735 +AWS,ap-southeast-3,m6g.8xlarge,reserved_1y,partial_upfront,1.228775,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:47.969301 +AWS,ap-southeast-3,m6g.8xlarge,reserved_3y,all_upfront,0.614392,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:27.822437 +AWS,ap-southeast-3,m6g.8xlarge,reserved_3y,no_upfront,0.614392,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:01.373177 +AWS,ap-southeast-3,m6g.8xlarge,reserved_3y,partial_upfront,0.614392,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:00.254302 +AWS,ap-southeast-3,m6g.8xlarge,spot,NA,0.251208,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854388 +AWS,ap-southeast-3,m6g.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T08:55:27.225855 +AWS,ap-southeast-3,m6g.large,reserved_1y,all_upfront,0.0719,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:58.272608 +AWS,ap-southeast-3,m6g.large,reserved_1y,no_upfront,0.0719,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:37.243856 +AWS,ap-southeast-3,m6g.large,reserved_1y,partial_upfront,0.0719,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:25.306192 +AWS,ap-southeast-3,m6g.large,reserved_3y,all_upfront,0.0719,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:05.565987 +AWS,ap-southeast-3,m6g.large,reserved_3y,no_upfront,0.0719,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:38.203624 +AWS,ap-southeast-3,m6g.large,reserved_3y,partial_upfront,0.0719,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:37.623819 +AWS,ap-southeast-3,m6g.large,spot,NA,0.026192,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853999 +AWS,ap-southeast-3,m6g.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:55:40.673745 +AWS,ap-southeast-3,m6g.xlarge,reserved_1y,all_upfront,0.115248,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:11.900028 +AWS,ap-southeast-3,m6g.xlarge,reserved_1y,no_upfront,0.115248,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:50.991933 +AWS,ap-southeast-3,m6g.xlarge,reserved_1y,partial_upfront,0.115248,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:38.844506 +AWS,ap-southeast-3,m6g.xlarge,reserved_3y,all_upfront,0.076816,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:18.893719 +AWS,ap-southeast-3,m6g.xlarge,reserved_3y,no_upfront,0.076816,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:52.087796 +AWS,ap-southeast-3,m6g.xlarge,reserved_3y,partial_upfront,0.076816,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:51.165639 +AWS,ap-southeast-3,m6g.xlarge,spot,NA,0.026301,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854272 +AWS,ap-southeast-3,m6gd.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:55:58.193571 +AWS,ap-southeast-3,m6gd.12xlarge,reserved_1y,all_upfront,3.739498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:29.673549 +AWS,ap-southeast-3,m6gd.12xlarge,reserved_1y,no_upfront,3.739498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:09.021780 +AWS,ap-southeast-3,m6gd.12xlarge,reserved_1y,partial_upfront,3.739498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:56.586832 +AWS,ap-southeast-3,m6gd.12xlarge,reserved_3y,all_upfront,1.246499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:36.306803 +AWS,ap-southeast-3,m6gd.12xlarge,reserved_3y,no_upfront,1.246499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:10.179916 +AWS,ap-southeast-3,m6gd.12xlarge,reserved_3y,partial_upfront,1.246499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:08.821100 +AWS,ap-southeast-3,m6gd.12xlarge,spot,NA,0.330877,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854488 +AWS,ap-southeast-3,m6gd.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T08:56:00.497777 +AWS,ap-southeast-3,m6gd.16xlarge,reserved_1y,all_upfront,2.2849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:31.952339 +AWS,ap-southeast-3,m6gd.16xlarge,reserved_1y,no_upfront,2.2849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:11.394136 +AWS,ap-southeast-3,m6gd.16xlarge,reserved_1y,partial_upfront,2.2849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:58.868642 +AWS,ap-southeast-3,m6gd.16xlarge,reserved_3y,all_upfront,2.2849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:38.575662 +AWS,ap-southeast-3,m6gd.16xlarge,reserved_3y,no_upfront,2.2849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:12.500079 +AWS,ap-southeast-3,m6gd.16xlarge,reserved_3y,partial_upfront,2.2849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:11.093463 +AWS,ap-southeast-3,m6gd.16xlarge,spot,NA,0.374504,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854528 +AWS,ap-southeast-3,m6gd.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:55:29.345417 +AWS,ap-southeast-3,m6gd.2xlarge,reserved_1y,all_upfront,0.271959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:00.407444 +AWS,ap-southeast-3,m6gd.2xlarge,reserved_1y,no_upfront,0.271959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:39.488488 +AWS,ap-southeast-3,m6gd.2xlarge,reserved_1y,partial_upfront,0.271959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:27.443291 +AWS,ap-southeast-3,m6gd.2xlarge,reserved_3y,all_upfront,0.18132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:07.678666 +AWS,ap-southeast-3,m6gd.2xlarge,reserved_3y,no_upfront,0.18132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:40.412819 +AWS,ap-southeast-3,m6gd.2xlarge,reserved_3y,partial_upfront,0.18132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:39.755806 +AWS,ap-southeast-3,m6gd.2xlarge,spot,NA,0.086078,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854043 +AWS,ap-southeast-3,m6gd.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:55:55.376938 +AWS,ap-southeast-3,m6gd.4xlarge,reserved_1y,all_upfront,0.672,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:26.846974 +AWS,ap-southeast-3,m6gd.4xlarge,reserved_1y,no_upfront,0.672,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:06.111802 +AWS,ap-southeast-3,m6gd.4xlarge,reserved_1y,partial_upfront,0.672,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:53.750827 +AWS,ap-southeast-3,m6gd.4xlarge,reserved_3y,all_upfront,0.672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:33.545228 +AWS,ap-southeast-3,m6gd.4xlarge,reserved_3y,no_upfront,0.672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:07.307938 +AWS,ap-southeast-3,m6gd.4xlarge,reserved_3y,partial_upfront,0.672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:05.999110 +AWS,ap-southeast-3,m6gd.4xlarge,spot,NA,0.113821,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854452 +AWS,ap-southeast-3,m6gd.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T08:55:18.248401 +AWS,ap-southeast-3,m6gd.8xlarge,reserved_1y,all_upfront,2.492922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:49.214496 +AWS,ap-southeast-3,m6gd.8xlarge,reserved_1y,no_upfront,2.492922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:28.114522 +AWS,ap-southeast-3,m6gd.8xlarge,reserved_1y,partial_upfront,2.492922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:16.345299 +AWS,ap-southeast-3,m6gd.8xlarge,reserved_3y,all_upfront,0.830974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:56.706616 +AWS,ap-southeast-3,m6gd.8xlarge,reserved_3y,no_upfront,0.830974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:28.953085 +AWS,ap-southeast-3,m6gd.8xlarge,reserved_3y,partial_upfront,0.830974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:28.669143 +AWS,ap-southeast-3,m6gd.8xlarge,spot,NA,0.235504,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853862 +AWS,ap-southeast-3,m6gd.large,on_demand,NA,0.113,USD,AWS Pricing API,2025-11-30T08:55:39.336510 +AWS,ap-southeast-3,m6gd.large,reserved_1y,all_upfront,0.084,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:10.545837 +AWS,ap-southeast-3,m6gd.large,reserved_1y,no_upfront,0.084,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:49.645988 +AWS,ap-southeast-3,m6gd.large,reserved_1y,partial_upfront,0.084,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:37.501078 +AWS,ap-southeast-3,m6gd.large,reserved_3y,all_upfront,0.084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:17.575894 +AWS,ap-southeast-3,m6gd.large,reserved_3y,no_upfront,0.084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:50.709099 +AWS,ap-southeast-3,m6gd.large,reserved_3y,partial_upfront,0.084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:49.839904 +AWS,ap-southeast-3,m6gd.large,spot,NA,0.018055,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854243 +AWS,ap-southeast-3,m6gd.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:55:32.664827 +AWS,ap-southeast-3,m6gd.xlarge,reserved_1y,all_upfront,0.0972,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:03.788405 +AWS,ap-southeast-3,m6gd.xlarge,reserved_1y,no_upfront,0.0972,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:42.870826 +AWS,ap-southeast-3,m6gd.xlarge,reserved_1y,partial_upfront,0.0972,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:30.786653 +AWS,ap-southeast-3,m6gd.xlarge,reserved_3y,all_upfront,0.0972,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:10.961350 +AWS,ap-southeast-3,m6gd.xlarge,reserved_3y,no_upfront,0.0972,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:43.831404 +AWS,ap-southeast-3,m6gd.xlarge,reserved_3y,partial_upfront,0.0972,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:43.147035 +AWS,ap-southeast-3,m6gd.xlarge,spot,NA,0.030859,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854126 +AWS,ap-southeast-3,m6i.12xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T08:55:19.041395 +AWS,ap-southeast-3,m6i.12xlarge,reserved_1y,all_upfront,1.778082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:50.027717 +AWS,ap-southeast-3,m6i.12xlarge,reserved_1y,no_upfront,1.778082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:28.917990 +AWS,ap-southeast-3,m6i.12xlarge,reserved_1y,partial_upfront,1.778082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:17.138350 +AWS,ap-southeast-3,m6i.12xlarge,reserved_3y,all_upfront,0.592694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:57.503233 +AWS,ap-southeast-3,m6i.12xlarge,reserved_3y,no_upfront,0.592694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:29.776649 +AWS,ap-southeast-3,m6i.12xlarge,reserved_3y,partial_upfront,0.592694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:29.467835 +AWS,ap-southeast-3,m6i.12xlarge,spot,NA,0.352164,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853887 +AWS,ap-southeast-3,m6i.16xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T08:55:33.332906 +AWS,ap-southeast-3,m6i.16xlarge,reserved_1y,all_upfront,1.94745,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:04.482936 +AWS,ap-southeast-3,m6i.16xlarge,reserved_1y,no_upfront,1.94745,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:43.546121 +AWS,ap-southeast-3,m6i.16xlarge,reserved_1y,partial_upfront,1.94745,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:31.463441 +AWS,ap-southeast-3,m6i.16xlarge,reserved_3y,all_upfront,1.94745,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:11.619757 +AWS,ap-southeast-3,m6i.16xlarge,reserved_3y,no_upfront,1.94745,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:44.514117 +AWS,ap-southeast-3,m6i.16xlarge,reserved_3y,partial_upfront,1.94745,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:43.818257 +AWS,ap-southeast-3,m6i.16xlarge,spot,NA,0.442639,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854166 +AWS,ap-southeast-3,m6i.24xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T08:55:34.800848 +AWS,ap-southeast-3,m6i.24xlarge,reserved_1y,all_upfront,3.556279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:05.964499 +AWS,ap-southeast-3,m6i.24xlarge,reserved_1y,no_upfront,3.556279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:45.030134 +AWS,ap-southeast-3,m6i.24xlarge,reserved_1y,partial_upfront,3.556279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:32.937251 +AWS,ap-southeast-3,m6i.24xlarge,reserved_3y,all_upfront,1.185426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:13.079775 +AWS,ap-southeast-3,m6i.24xlarge,reserved_3y,no_upfront,1.185426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:46.021915 +AWS,ap-southeast-3,m6i.24xlarge,reserved_3y,partial_upfront,1.185426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:45.286319 +AWS,ap-southeast-3,m6i.24xlarge,spot,NA,0.779503,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854187 +AWS,ap-southeast-3,m6i.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T08:55:53.251302 +AWS,ap-southeast-3,m6i.2xlarge,reserved_1y,all_upfront,0.340405,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:24.664677 +AWS,ap-southeast-3,m6i.2xlarge,reserved_1y,no_upfront,0.340405,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:03.916319 +AWS,ap-southeast-3,m6i.2xlarge,reserved_1y,partial_upfront,0.340405,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:51.613859 +AWS,ap-southeast-3,m6i.2xlarge,reserved_3y,all_upfront,0.226935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:31.427666 +AWS,ap-southeast-3,m6i.2xlarge,reserved_3y,no_upfront,0.226935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:05.099866 +AWS,ap-southeast-3,m6i.2xlarge,reserved_3y,partial_upfront,0.226935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:03.858799 +AWS,ap-southeast-3,m6i.2xlarge,spot,NA,0.330726,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854440 +AWS,ap-southeast-3,m6i.32xlarge,on_demand,NA,7.68,USD,AWS Pricing API,2025-11-30T08:56:09.657627 +AWS,ap-southeast-3,m6i.32xlarge,reserved_1y,all_upfront,5.08032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:41.164229 +AWS,ap-southeast-3,m6i.32xlarge,reserved_1y,no_upfront,5.08032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:20.651908 +AWS,ap-southeast-3,m6i.32xlarge,reserved_1y,partial_upfront,5.08032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:08.000160 +AWS,ap-southeast-3,m6i.32xlarge,reserved_3y,all_upfront,5.08032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:47.515927 +AWS,ap-southeast-3,m6i.32xlarge,reserved_3y,no_upfront,5.08032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:21.816395 +AWS,ap-southeast-3,m6i.32xlarge,reserved_3y,partial_upfront,5.08032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:20.174501 +AWS,ap-southeast-3,m6i.32xlarge,spot,NA,0.790654,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854631 +AWS,ap-southeast-3,m6i.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T08:55:21.153960 +AWS,ap-southeast-3,m6i.4xlarge,reserved_1y,all_upfront,0.901656,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:52.167469 +AWS,ap-southeast-3,m6i.4xlarge,reserved_1y,no_upfront,0.901656,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:31.096677 +AWS,ap-southeast-3,m6i.4xlarge,reserved_1y,partial_upfront,0.901656,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:19.286472 +AWS,ap-southeast-3,m6i.4xlarge,reserved_3y,all_upfront,0.450819,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:59.619408 +AWS,ap-southeast-3,m6i.4xlarge,reserved_3y,no_upfront,0.450819,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:32.050412 +AWS,ap-southeast-3,m6i.4xlarge,reserved_3y,partial_upfront,0.450819,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:31.602142 +AWS,ap-southeast-3,m6i.4xlarge,spot,NA,0.20519,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853913 +AWS,ap-southeast-3,m6i.8xlarge,on_demand,NA,1.92,USD,AWS Pricing API,2025-11-30T08:55:25.835898 +AWS,ap-southeast-3,m6i.8xlarge,reserved_1y,all_upfront,2.650685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:56.907865 +AWS,ap-southeast-3,m6i.8xlarge,reserved_1y,no_upfront,2.650685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:35.866074 +AWS,ap-southeast-3,m6i.8xlarge,reserved_1y,partial_upfront,2.650685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:23.965277 +AWS,ap-southeast-3,m6i.8xlarge,reserved_3y,all_upfront,0.883562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:04.244996 +AWS,ap-southeast-3,m6i.8xlarge,reserved_3y,no_upfront,0.883562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:36.834649 +AWS,ap-southeast-3,m6i.8xlarge,reserved_3y,partial_upfront,0.883562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:36.295506 +AWS,ap-southeast-3,m6i.8xlarge,spot,NA,0.32088,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853995 +AWS,ap-southeast-3,m6i.large,on_demand,NA,0.12,USD,AWS Pricing API,2025-11-30T08:55:36.257463 +AWS,ap-southeast-3,m6i.large,reserved_1y,all_upfront,0.112645,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:07.431834 +AWS,ap-southeast-3,m6i.large,reserved_1y,no_upfront,0.112645,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:46.512263 +AWS,ap-southeast-3,m6i.large,reserved_1y,partial_upfront,0.112645,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:34.401228 +AWS,ap-southeast-3,m6i.large,reserved_3y,all_upfront,0.056328,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:14.513229 +AWS,ap-southeast-3,m6i.large,reserved_3y,no_upfront,0.056328,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:47.549685 +AWS,ap-southeast-3,m6i.large,reserved_3y,partial_upfront,0.056328,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:46.757710 +AWS,ap-southeast-3,m6i.large,spot,NA,0.022092,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854200 +AWS,ap-southeast-3,m6i.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T08:55:12.634288 +AWS,ap-southeast-3,m6i.xlarge,reserved_1y,all_upfront,0.166781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:43.543962 +AWS,ap-southeast-3,m6i.xlarge,reserved_1y,no_upfront,0.166781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:22.397061 +AWS,ap-southeast-3,m6i.xlarge,reserved_1y,partial_upfront,0.166781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:10.692923 +AWS,ap-southeast-3,m6i.xlarge,reserved_3y,all_upfront,0.055594,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:51.181862 +AWS,ap-southeast-3,m6i.xlarge,reserved_3y,no_upfront,0.055594,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:23.187528 +AWS,ap-southeast-3,m6i.xlarge,reserved_3y,partial_upfront,0.055594,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:23.042189 +AWS,ap-southeast-3,m6i.xlarge,spot,NA,0.145087,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853787 +AWS,ap-southeast-3,m7g.12xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T08:55:29.747161 +AWS,ap-southeast-3,m7g.12xlarge,reserved_1y,all_upfront,1.736137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:00.816272 +AWS,ap-southeast-3,m7g.12xlarge,reserved_1y,no_upfront,1.736137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:39.893257 +AWS,ap-southeast-3,m7g.12xlarge,reserved_1y,partial_upfront,1.736137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:27.847952 +AWS,ap-southeast-3,m7g.12xlarge,reserved_3y,all_upfront,1.157446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:08.080797 +AWS,ap-southeast-3,m7g.12xlarge,reserved_3y,no_upfront,1.157446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:40.817484 +AWS,ap-southeast-3,m7g.12xlarge,reserved_3y,partial_upfront,1.157446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:40.164633 +AWS,ap-southeast-3,m7g.12xlarge,spot,NA,0.311814,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854080 +AWS,ap-southeast-3,m7g.16xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T08:55:57.918800 +AWS,ap-southeast-3,m7g.16xlarge,reserved_1y,all_upfront,2.056396,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:29.403372 +AWS,ap-southeast-3,m7g.16xlarge,reserved_1y,no_upfront,2.056396,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:08.751735 +AWS,ap-southeast-3,m7g.16xlarge,reserved_1y,partial_upfront,2.056396,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:56.321281 +AWS,ap-southeast-3,m7g.16xlarge,reserved_3y,all_upfront,1.370932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:36.043066 +AWS,ap-southeast-3,m7g.16xlarge,reserved_3y,no_upfront,1.370932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:09.908289 +AWS,ap-southeast-3,m7g.16xlarge,reserved_3y,partial_upfront,1.370932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:08.550750 +AWS,ap-southeast-3,m7g.16xlarge,spot,NA,0.346864,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854492 +AWS,ap-southeast-3,m7g.2xlarge,on_demand,NA,0.408,USD,AWS Pricing API,2025-11-30T08:55:21.692741 +AWS,ap-southeast-3,m7g.2xlarge,reserved_1y,all_upfront,0.257039,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:52.713837 +AWS,ap-southeast-3,m7g.2xlarge,reserved_1y,no_upfront,0.257039,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:31.641355 +AWS,ap-southeast-3,m7g.2xlarge,reserved_1y,partial_upfront,0.257039,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:19.818921 +AWS,ap-southeast-3,m7g.2xlarge,reserved_3y,all_upfront,0.171346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:00.142284 +AWS,ap-southeast-3,m7g.2xlarge,reserved_3y,no_upfront,0.171346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:32.595554 +AWS,ap-southeast-3,m7g.2xlarge,reserved_3y,partial_upfront,0.171346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:32.145954 +AWS,ap-southeast-3,m7g.2xlarge,spot,NA,0.042363,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853932 +AWS,ap-southeast-3,m7g.4xlarge,on_demand,NA,0.816,USD,AWS Pricing API,2025-11-30T08:56:17.175731 +AWS,ap-southeast-3,m7g.4xlarge,reserved_1y,all_upfront,0.685441,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:48.831814 +AWS,ap-southeast-3,m7g.4xlarge,reserved_1y,no_upfront,0.685441,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:28.396750 +AWS,ap-southeast-3,m7g.4xlarge,reserved_1y,partial_upfront,0.685441,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:15.622255 +AWS,ap-southeast-3,m7g.4xlarge,reserved_3y,all_upfront,0.342747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:55.002720 +AWS,ap-southeast-3,m7g.4xlarge,reserved_3y,no_upfront,0.342747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:29.613949 +AWS,ap-southeast-3,m7g.4xlarge,reserved_3y,partial_upfront,0.342747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:27.778960 +AWS,ap-southeast-3,m7g.4xlarge,spot,NA,0.153021,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854713 +AWS,ap-southeast-3,m7g.8xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T08:55:13.054192 +AWS,ap-southeast-3,m7g.8xlarge,reserved_1y,all_upfront,1.134247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:43.962889 +AWS,ap-southeast-3,m7g.8xlarge,reserved_1y,no_upfront,1.134247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:22.798857 +AWS,ap-southeast-3,m7g.8xlarge,reserved_1y,partial_upfront,1.134247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:11.097893 +AWS,ap-southeast-3,m7g.8xlarge,reserved_3y,all_upfront,0.378082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:51.579719 +AWS,ap-southeast-3,m7g.8xlarge,reserved_3y,no_upfront,0.378082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:23.600455 +AWS,ap-southeast-3,m7g.8xlarge,reserved_3y,partial_upfront,0.378082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:23.449767 +AWS,ap-southeast-3,m7g.8xlarge,spot,NA,0.268048,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853795 +AWS,ap-southeast-3,m7g.large,on_demand,NA,0.102,USD,AWS Pricing API,2025-11-30T08:55:40.143446 +AWS,ap-southeast-3,m7g.large,reserved_1y,all_upfront,0.0517,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:11.351648 +AWS,ap-southeast-3,m7g.large,reserved_1y,no_upfront,0.0517,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:50.459958 +AWS,ap-southeast-3,m7g.large,reserved_1y,partial_upfront,0.0517,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:38.303422 +AWS,ap-southeast-3,m7g.large,reserved_3y,all_upfront,0.0517,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:18.370792 +AWS,ap-southeast-3,m7g.large,reserved_3y,no_upfront,0.0517,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:51.533114 +AWS,ap-southeast-3,m7g.large,reserved_3y,partial_upfront,0.0517,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:50.637296 +AWS,ap-southeast-3,m7g.large,spot,NA,0.014699,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854268 +AWS,ap-southeast-3,m7g.xlarge,on_demand,NA,0.204,USD,AWS Pricing API,2025-11-30T08:55:46.779928 +AWS,ap-southeast-3,m7g.xlarge,reserved_1y,all_upfront,0.1349,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:18.097593 +AWS,ap-southeast-3,m7g.xlarge,reserved_1y,no_upfront,0.1349,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:57.229503 +AWS,ap-southeast-3,m7g.xlarge,reserved_1y,partial_upfront,0.1349,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:44.999908 +AWS,ap-southeast-3,m7g.xlarge,reserved_3y,all_upfront,0.1349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:24.924202 +AWS,ap-southeast-3,m7g.xlarge,reserved_3y,no_upfront,0.1349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:58.367792 +AWS,ap-southeast-3,m7g.xlarge,reserved_3y,partial_upfront,0.1349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:57.311641 +AWS,ap-southeast-3,m7g.xlarge,spot,NA,0.023746,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854361 +AWS,ap-southeast-3,m7i.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:55:27.090127 +AWS,ap-southeast-3,m7i.12xlarge,reserved_1y,all_upfront,1.53361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:58.136347 +AWS,ap-southeast-3,m7i.12xlarge,reserved_1y,no_upfront,1.53361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:37.108613 +AWS,ap-southeast-3,m7i.12xlarge,reserved_1y,partial_upfront,1.53361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:25.172091 +AWS,ap-southeast-3,m7i.12xlarge,reserved_3y,all_upfront,1.53361,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:05.430591 +AWS,ap-southeast-3,m7i.12xlarge,reserved_3y,no_upfront,1.53361,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:38.064526 +AWS,ap-southeast-3,m7i.12xlarge,reserved_3y,partial_upfront,1.53361,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:37.487609 +AWS,ap-southeast-3,m7i.12xlarge,spot,NA,0.361223,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854011 +AWS,ap-southeast-3,m7i.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:56:03.342992 +AWS,ap-southeast-3,m7i.16xlarge,reserved_1y,all_upfront,2.66717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:34.777125 +AWS,ap-southeast-3,m7i.16xlarge,reserved_1y,no_upfront,2.66717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:14.271663 +AWS,ap-southeast-3,m7i.16xlarge,reserved_1y,partial_upfront,2.66717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:01.677787 +AWS,ap-southeast-3,m7i.16xlarge,reserved_3y,all_upfront,2.66717,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:41.349074 +AWS,ap-southeast-3,m7i.16xlarge,reserved_3y,no_upfront,2.66717,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:15.353463 +AWS,ap-southeast-3,m7i.16xlarge,reserved_3y,partial_upfront,2.66717,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:13.898695 +AWS,ap-southeast-3,m7i.16xlarge,spot,NA,0.446641,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854563 +AWS,ap-southeast-3,m7i.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:56:09.391807 +AWS,ap-southeast-3,m7i.24xlarge,reserved_1y,all_upfront,4.203311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:40.889024 +AWS,ap-southeast-3,m7i.24xlarge,reserved_1y,no_upfront,4.203311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:20.381611 +AWS,ap-southeast-3,m7i.24xlarge,reserved_1y,partial_upfront,4.203311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:07.730595 +AWS,ap-southeast-3,m7i.24xlarge,reserved_3y,all_upfront,1.401104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:47.255853 +AWS,ap-southeast-3,m7i.24xlarge,reserved_3y,no_upfront,1.401104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:21.536496 +AWS,ap-southeast-3,m7i.24xlarge,reserved_3y,partial_upfront,1.401104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:19.904120 +AWS,ap-southeast-3,m7i.24xlarge,spot,NA,0.766753,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854635 +AWS,ap-southeast-3,m7i.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T08:55:45.059375 +AWS,ap-southeast-3,m7i.2xlarge,reserved_1y,all_upfront,0.31755,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:16.349778 +AWS,ap-southeast-3,m7i.2xlarge,reserved_1y,no_upfront,0.31755,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:55.464550 +AWS,ap-southeast-3,m7i.2xlarge,reserved_1y,partial_upfront,0.31755,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:43.269826 +AWS,ap-southeast-3,m7i.2xlarge,reserved_3y,all_upfront,0.21169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:23.223445 +AWS,ap-southeast-3,m7i.2xlarge,reserved_3y,no_upfront,0.21169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:56.582915 +AWS,ap-southeast-3,m7i.2xlarge,reserved_3y,partial_upfront,0.21169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:55.593646 +AWS,ap-southeast-3,m7i.2xlarge,spot,NA,0.068181,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854333 +AWS,ap-southeast-3,m7i.48xlarge,on_demand,NA,12.096,USD,AWS Pricing API,2025-11-30T08:55:08.763413 +AWS,ap-southeast-3,m7i.48xlarge,reserved_1y,all_upfront,6.13444,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:39.684006 +AWS,ap-southeast-3,m7i.48xlarge,reserved_1y,no_upfront,6.13444,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:18.401368 +AWS,ap-southeast-3,m7i.48xlarge,reserved_1y,partial_upfront,6.13444,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:06.838758 +AWS,ap-southeast-3,m7i.48xlarge,reserved_3y,all_upfront,6.13444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:47.346644 +AWS,ap-southeast-3,m7i.48xlarge,reserved_3y,no_upfront,6.13444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:19.249576 +AWS,ap-southeast-3,m7i.48xlarge,reserved_3y,partial_upfront,6.13444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:19.163598 +AWS,ap-southeast-3,m7i.48xlarge,spot,NA,1.469822,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853746 +AWS,ap-southeast-3,m7i.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:55:22.361045 +AWS,ap-southeast-3,m7i.4xlarge,reserved_1y,all_upfront,0.71484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:53.384383 +AWS,ap-southeast-3,m7i.4xlarge,reserved_1y,no_upfront,0.71484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:32.329769 +AWS,ap-southeast-3,m7i.4xlarge,reserved_1y,partial_upfront,0.71484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:20.488604 +AWS,ap-southeast-3,m7i.4xlarge,reserved_3y,all_upfront,0.47656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:00.801229 +AWS,ap-southeast-3,m7i.4xlarge,reserved_3y,no_upfront,0.47656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:33.282622 +AWS,ap-southeast-3,m7i.4xlarge,reserved_3y,partial_upfront,0.47656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:32.815897 +AWS,ap-southeast-3,m7i.4xlarge,spot,NA,0.194628,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853942 +AWS,ap-southeast-3,m7i.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:55:59.152044 +AWS,ap-southeast-3,m7i.8xlarge,reserved_1y,all_upfront,1.244635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:30.619171 +AWS,ap-southeast-3,m7i.8xlarge,reserved_1y,no_upfront,1.244635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:09.988369 +AWS,ap-southeast-3,m7i.8xlarge,reserved_1y,partial_upfront,1.244635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:57.526792 +AWS,ap-southeast-3,m7i.8xlarge,reserved_3y,all_upfront,0.414878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:37.240522 +AWS,ap-southeast-3,m7i.8xlarge,reserved_3y,no_upfront,0.414878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:11.140371 +AWS,ap-southeast-3,m7i.8xlarge,reserved_3y,partial_upfront,0.414878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:09.758820 +AWS,ap-southeast-3,m7i.8xlarge,spot,NA,0.273497,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854504 +AWS,ap-southeast-3,m7i.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:55:25.310697 +AWS,ap-southeast-3,m7i.large,reserved_1y,all_upfront,0.079416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:56.371634 +AWS,ap-southeast-3,m7i.large,reserved_1y,no_upfront,0.079416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:35.326768 +AWS,ap-southeast-3,m7i.large,reserved_1y,partial_upfront,0.079416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:23.420249 +AWS,ap-southeast-3,m7i.large,reserved_3y,all_upfront,0.052932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:03.720877 +AWS,ap-southeast-3,m7i.large,reserved_3y,no_upfront,0.052932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:36.289143 +AWS,ap-southeast-3,m7i.large,reserved_3y,partial_upfront,0.052932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:35.759005 +AWS,ap-southeast-3,m7i.large,spot,NA,0.017075,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853987 +AWS,ap-southeast-3,m7i.metal-24xl,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:55:08.898211 +AWS,ap-southeast-3,m7i.metal-24xl,reserved_1y,all_upfront,3.810257,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:39.817920 +AWS,ap-southeast-3,m7i.metal-24xl,reserved_1y,no_upfront,3.810257,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:18.537708 +AWS,ap-southeast-3,m7i.metal-24xl,reserved_1y,partial_upfront,3.810257,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:06.971221 +AWS,ap-southeast-3,m7i.metal-24xl,reserved_3y,all_upfront,2.540166,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:47.487561 +AWS,ap-southeast-3,m7i.metal-24xl,reserved_3y,no_upfront,2.540166,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:19.384778 +AWS,ap-southeast-3,m7i.metal-24xl,reserved_3y,partial_upfront,2.540166,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:19.297004 +AWS,ap-southeast-3,m7i.metal-24xl,spot,NA,0.822764,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853750 +AWS,ap-southeast-3,m7i.metal-48xl,on_demand,NA,12.096,USD,AWS Pricing API,2025-11-30T08:55:49.146293 +AWS,ap-southeast-3,m7i.metal-48xl,reserved_1y,all_upfront,16.699315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:20.501108 +AWS,ap-southeast-3,m7i.metal-48xl,reserved_1y,no_upfront,16.699315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:59.664445 +AWS,ap-southeast-3,m7i.metal-48xl,reserved_1y,partial_upfront,16.699315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:47.419054 +AWS,ap-southeast-3,m7i.metal-48xl,reserved_3y,all_upfront,5.566438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:27.297750 +AWS,ap-southeast-3,m7i.metal-48xl,reserved_3y,no_upfront,5.566438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:00.819579 +AWS,ap-southeast-3,m7i.metal-48xl,reserved_3y,partial_upfront,5.566438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:59.710460 +AWS,ap-southeast-3,m7i.metal-48xl,spot,NA,1.660107,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854385 +AWS,ap-southeast-3,m7i.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T08:56:10.857778 +AWS,ap-southeast-3,m7i.xlarge,reserved_1y,all_upfront,0.21171,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:42.373806 +AWS,ap-southeast-3,m7i.xlarge,reserved_1y,no_upfront,0.21171,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:21.869994 +AWS,ap-southeast-3,m7i.xlarge,reserved_1y,partial_upfront,0.21171,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:09.198415 +AWS,ap-southeast-3,m7i.xlarge,reserved_3y,all_upfront,0.10585,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:48.709656 +AWS,ap-southeast-3,m7i.xlarge,reserved_3y,no_upfront,0.10585,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:23.039108 +AWS,ap-southeast-3,m7i.xlarge,reserved_3y,partial_upfront,0.10585,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:21.375907 +AWS,ap-southeast-3,m7i.xlarge,spot,NA,0.048701,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854655 +AWS,ap-southeast-3,p5.48xlarge,on_demand,NA,75.9552,USD,AWS Pricing API,2025-11-30T08:56:04.144494 +AWS,ap-southeast-3,p5.48xlarge,reserved_1y,all_upfront,59.81472,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:35.585366 +AWS,ap-southeast-3,p5.48xlarge,reserved_1y,no_upfront,59.81472,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:15.080412 +AWS,ap-southeast-3,p5.48xlarge,reserved_1y,partial_upfront,59.81472,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:02.487178 +AWS,ap-southeast-3,p5.48xlarge,reserved_3y,all_upfront,59.81472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:42.146030 +AWS,ap-southeast-3,p5.48xlarge,reserved_3y,no_upfront,59.81472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:16.177102 +AWS,ap-southeast-3,p5.48xlarge,reserved_3y,partial_upfront,59.81472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:14.708640 +AWS,ap-southeast-3,p5.48xlarge,spot,NA,12.690988,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854571 +AWS,ap-southeast-3,r5.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T08:55:09.030863 +AWS,ap-southeast-3,r5.12xlarge,reserved_1y,all_upfront,1.903,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:39.953193 +AWS,ap-southeast-3,r5.12xlarge,reserved_1y,no_upfront,1.903,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:18.673396 +AWS,ap-southeast-3,r5.12xlarge,reserved_1y,partial_upfront,1.903,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:07.103826 +AWS,ap-southeast-3,r5.12xlarge,reserved_3y,all_upfront,1.903,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:47.619329 +AWS,ap-southeast-3,r5.12xlarge,reserved_3y,no_upfront,1.903,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:19.522697 +AWS,ap-southeast-3,r5.12xlarge,reserved_3y,partial_upfront,1.903,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:19.431145 +AWS,ap-southeast-3,r5.12xlarge,spot,NA,0.410412,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853763 +AWS,ap-southeast-3,r5.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T08:55:41.467001 +AWS,ap-southeast-3,r5.16xlarge,reserved_1y,all_upfront,3.064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:12.706942 +AWS,ap-southeast-3,r5.16xlarge,reserved_1y,no_upfront,3.064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:51.803227 +AWS,ap-southeast-3,r5.16xlarge,reserved_1y,partial_upfront,3.064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:39.643142 +AWS,ap-southeast-3,r5.16xlarge,reserved_3y,all_upfront,3.064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:19.680176 +AWS,ap-southeast-3,r5.16xlarge,reserved_3y,no_upfront,3.064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:52.906391 +AWS,ap-southeast-3,r5.16xlarge,reserved_3y,partial_upfront,3.064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:51.968344 +AWS,ap-southeast-3,r5.16xlarge,spot,NA,0.537268,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854284 +AWS,ap-southeast-3,r5.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T08:55:24.103502 +AWS,ap-southeast-3,r5.24xlarge,reserved_1y,all_upfront,4.377813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:55.138592 +AWS,ap-southeast-3,r5.24xlarge,reserved_1y,no_upfront,4.377813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:34.102884 +AWS,ap-southeast-3,r5.24xlarge,reserved_1y,partial_upfront,4.377813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:22.224821 +AWS,ap-southeast-3,r5.24xlarge,reserved_3y,all_upfront,2.918604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:02.528813 +AWS,ap-southeast-3,r5.24xlarge,reserved_3y,no_upfront,2.918604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:35.055524 +AWS,ap-southeast-3,r5.24xlarge,reserved_3y,partial_upfront,2.918604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:34.556019 +AWS,ap-southeast-3,r5.24xlarge,spot,NA,0.777556,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853974 +AWS,ap-southeast-3,r5.2xlarge,spot,NA,0.27617,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:39.639244 +AWS,ap-southeast-3,r5.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T08:56:15.727062 +AWS,ap-southeast-3,r5.4xlarge,reserved_1y,all_upfront,0.72984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:47.352344 +AWS,ap-southeast-3,r5.4xlarge,reserved_1y,no_upfront,0.72984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:26.911831 +AWS,ap-southeast-3,r5.4xlarge,reserved_1y,partial_upfront,0.72984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:14.145955 +AWS,ap-southeast-3,r5.4xlarge,reserved_3y,all_upfront,0.486613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:53.566545 +AWS,ap-southeast-3,r5.4xlarge,reserved_3y,no_upfront,0.486613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:28.109345 +AWS,ap-southeast-3,r5.4xlarge,reserved_3y,partial_upfront,0.486613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:26.320221 +AWS,ap-southeast-3,r5.4xlarge,spot,NA,0.260646,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854705 +AWS,ap-southeast-3,r5.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T08:55:58.884883 +AWS,ap-southeast-3,r5.8xlarge,reserved_1y,all_upfront,1.762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:30.343913 +AWS,ap-southeast-3,r5.8xlarge,reserved_1y,no_upfront,1.762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:09.718088 +AWS,ap-southeast-3,r5.8xlarge,reserved_1y,partial_upfront,1.762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:57.258956 +AWS,ap-southeast-3,r5.8xlarge,reserved_3y,all_upfront,1.762,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:36.974652 +AWS,ap-southeast-3,r5.8xlarge,reserved_3y,no_upfront,1.762,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:10.861925 +AWS,ap-southeast-3,r5.8xlarge,reserved_3y,partial_upfront,1.762,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:09.493515 +AWS,ap-southeast-3,r5.8xlarge,spot,NA,0.478918,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854508 +AWS,ap-southeast-3,r5.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T08:55:35.467189 +AWS,ap-southeast-3,r5.large,reserved_1y,all_upfront,0.079,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:06.630463 +AWS,ap-southeast-3,r5.large,reserved_1y,no_upfront,0.079,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:45.704897 +AWS,ap-southeast-3,r5.large,reserved_1y,partial_upfront,0.079,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:33.602526 +AWS,ap-southeast-3,r5.large,reserved_3y,all_upfront,0.079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:13.734173 +AWS,ap-southeast-3,r5.large,reserved_3y,no_upfront,0.079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:46.728586 +AWS,ap-southeast-3,r5.large,reserved_3y,partial_upfront,0.079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:45.951920 +AWS,ap-southeast-3,r5.large,spot,NA,0.028675,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854174 +AWS,ap-southeast-3,r5.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T08:55:13.192867 +AWS,ap-southeast-3,r5.xlarge,reserved_1y,all_upfront,0.205594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:44.102149 +AWS,ap-southeast-3,r5.xlarge,reserved_1y,no_upfront,0.205594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:22.935988 +AWS,ap-southeast-3,r5.xlarge,reserved_1y,partial_upfront,0.205594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:11.230471 +AWS,ap-southeast-3,r5.xlarge,reserved_3y,all_upfront,0.068531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:51.710668 +AWS,ap-southeast-3,r5.xlarge,reserved_3y,no_upfront,0.068531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:23.737242 +AWS,ap-southeast-3,r5.xlarge,reserved_3y,partial_upfront,0.068531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:23.588988 +AWS,ap-southeast-3,r5.xlarge,spot,NA,0.129314,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853800 +AWS,ap-southeast-3,r5d.12xlarge,on_demand,NA,4.176,USD,AWS Pricing API,2025-11-30T08:56:12.435622 +AWS,ap-southeast-3,r5d.12xlarge,reserved_1y,all_upfront,3.03,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:43.993332 +AWS,ap-southeast-3,r5d.12xlarge,reserved_1y,no_upfront,3.03,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:23.504425 +AWS,ap-southeast-3,r5d.12xlarge,reserved_1y,partial_upfront,3.03,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:10.798717 +AWS,ap-southeast-3,r5d.12xlarge,reserved_3y,all_upfront,3.03,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:50.289447 +AWS,ap-southeast-3,r5d.12xlarge,reserved_3y,no_upfront,3.03,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:24.684220 +AWS,ap-southeast-3,r5d.12xlarge,reserved_3y,partial_upfront,3.03,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:22.975534 +AWS,ap-southeast-3,r5d.12xlarge,spot,NA,0.508041,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854674 +AWS,ap-southeast-3,r5d.16xlarge,on_demand,NA,5.568,USD,AWS Pricing API,2025-11-30T08:55:37.743046 +AWS,ap-southeast-3,r5d.16xlarge,reserved_1y,all_upfront,3.273973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:08.921428 +AWS,ap-southeast-3,r5d.16xlarge,reserved_1y,no_upfront,3.273973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:48.018646 +AWS,ap-southeast-3,r5d.16xlarge,reserved_1y,partial_upfront,3.273973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:35.894307 +AWS,ap-southeast-3,r5d.16xlarge,reserved_3y,all_upfront,1.091324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:15.985680 +AWS,ap-southeast-3,r5d.16xlarge,reserved_3y,no_upfront,1.091324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:49.063871 +AWS,ap-southeast-3,r5d.16xlarge,reserved_3y,partial_upfront,1.091324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:48.222972 +AWS,ap-southeast-3,r5d.16xlarge,spot,NA,0.567366,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854221 +AWS,ap-southeast-3,r5d.24xlarge,on_demand,NA,8.352,USD,AWS Pricing API,2025-11-30T08:56:07.116855 +AWS,ap-southeast-3,r5d.24xlarge,reserved_1y,all_upfront,5.262,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:38.590361 +AWS,ap-southeast-3,r5d.24xlarge,reserved_1y,no_upfront,5.262,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:18.080347 +AWS,ap-southeast-3,r5d.24xlarge,reserved_1y,partial_upfront,5.262,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:05.425385 +AWS,ap-southeast-3,r5d.24xlarge,reserved_3y,all_upfront,5.262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:45.019040 +AWS,ap-southeast-3,r5d.24xlarge,reserved_3y,no_upfront,5.262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:19.203683 +AWS,ap-southeast-3,r5d.24xlarge,reserved_3y,partial_upfront,5.262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:17.634226 +AWS,ap-southeast-3,r5d.24xlarge,spot,NA,0.842546,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854607 +AWS,ap-southeast-3,r5d.2xlarge,on_demand,NA,0.696,USD,AWS Pricing API,2025-11-30T08:56:05.771023 +AWS,ap-southeast-3,r5d.2xlarge,reserved_1y,all_upfront,0.438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:37.210137 +AWS,ap-southeast-3,r5d.2xlarge,reserved_1y,no_upfront,0.438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:16.732297 +AWS,ap-southeast-3,r5d.2xlarge,reserved_1y,partial_upfront,0.438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:04.090278 +AWS,ap-southeast-3,r5d.2xlarge,reserved_3y,all_upfront,0.438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:43.714765 +AWS,ap-southeast-3,r5d.2xlarge,reserved_3y,no_upfront,0.438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:17.840180 +AWS,ap-southeast-3,r5d.2xlarge,reserved_3y,partial_upfront,0.438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:16.313486 +AWS,ap-southeast-3,r5d.2xlarge,spot,NA,0.153597,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854587 +AWS,ap-southeast-3,r5d.4xlarge,on_demand,NA,1.392,USD,AWS Pricing API,2025-11-30T08:55:37.209900 +AWS,ap-southeast-3,r5d.4xlarge,reserved_1y,all_upfront,1.01,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:08.379369 +AWS,ap-southeast-3,r5d.4xlarge,reserved_1y,no_upfront,1.01,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:47.472192 +AWS,ap-southeast-3,r5d.4xlarge,reserved_1y,partial_upfront,1.01,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:35.354039 +AWS,ap-southeast-3,r5d.4xlarge,reserved_3y,all_upfront,1.01,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:15.451072 +AWS,ap-southeast-3,r5d.4xlarge,reserved_3y,no_upfront,1.01,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:48.520757 +AWS,ap-southeast-3,r5d.4xlarge,reserved_3y,partial_upfront,1.01,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:47.694512 +AWS,ap-southeast-3,r5d.4xlarge,spot,NA,0.304989,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854216 +AWS,ap-southeast-3,r5d.8xlarge,on_demand,NA,2.784,USD,AWS Pricing API,2025-11-30T08:55:36.797758 +AWS,ap-southeast-3,r5d.8xlarge,reserved_1y,all_upfront,2.227434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:07.973040 +AWS,ap-southeast-3,r5d.8xlarge,reserved_1y,no_upfront,2.227434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:47.056425 +AWS,ap-southeast-3,r5d.8xlarge,reserved_1y,partial_upfront,2.227434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:34.938981 +AWS,ap-southeast-3,r5d.8xlarge,reserved_3y,all_upfront,1.113811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:15.044446 +AWS,ap-southeast-3,r5d.8xlarge,reserved_3y,no_upfront,1.113811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:48.100225 +AWS,ap-southeast-3,r5d.8xlarge,reserved_3y,partial_upfront,1.113811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:47.291320 +AWS,ap-southeast-3,r5d.8xlarge,spot,NA,0.523563,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854191 +AWS,ap-southeast-3,r5d.large,on_demand,NA,0.174,USD,AWS Pricing API,2025-11-30T08:56:01.025405 +AWS,ap-southeast-3,r5d.large,reserved_1y,all_upfront,0.11,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:32.489415 +AWS,ap-southeast-3,r5d.large,reserved_1y,no_upfront,0.11,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:11.930306 +AWS,ap-southeast-3,r5d.large,reserved_1y,partial_upfront,0.11,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:59.402186 +AWS,ap-southeast-3,r5d.large,reserved_3y,all_upfront,0.11,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:39.096939 +AWS,ap-southeast-3,r5d.large,reserved_3y,no_upfront,0.11,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:13.042845 +AWS,ap-southeast-3,r5d.large,reserved_3y,partial_upfront,0.11,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:11.623935 +AWS,ap-southeast-3,r5d.large,spot,NA,0.023765,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854555 +AWS,ap-southeast-3,r5d.xlarge,on_demand,NA,0.348,USD,AWS Pricing API,2025-11-30T08:55:19.436371 +AWS,ap-southeast-3,r5d.xlarge,reserved_1y,all_upfront,0.219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:50.424260 +AWS,ap-southeast-3,r5d.xlarge,reserved_1y,no_upfront,0.219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:29.330412 +AWS,ap-southeast-3,r5d.xlarge,reserved_1y,partial_upfront,0.219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:17.541440 +AWS,ap-southeast-3,r5d.xlarge,reserved_3y,all_upfront,0.219,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:57.896281 +AWS,ap-southeast-3,r5d.xlarge,reserved_3y,no_upfront,0.219,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:30.191323 +AWS,ap-southeast-3,r5d.xlarge,reserved_3y,partial_upfront,0.219,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:29.863409 +AWS,ap-southeast-3,r5d.xlarge,spot,NA,0.079933,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853892 +AWS,ap-southeast-3,r6g.12xlarge,on_demand,NA,2.9184,USD,AWS Pricing API,2025-11-30T08:55:29.479787 +AWS,ap-southeast-3,r6g.12xlarge,reserved_1y,all_upfront,1.751071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:00.546155 +AWS,ap-southeast-3,r6g.12xlarge,reserved_1y,no_upfront,1.751071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:39.623291 +AWS,ap-southeast-3,r6g.12xlarge,reserved_1y,partial_upfront,1.751071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:27.578900 +AWS,ap-southeast-3,r6g.12xlarge,reserved_3y,all_upfront,1.167357,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:07.810856 +AWS,ap-southeast-3,r6g.12xlarge,reserved_3y,no_upfront,1.167357,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:40.547124 +AWS,ap-southeast-3,r6g.12xlarge,reserved_3y,partial_upfront,1.167357,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:39.889590 +AWS,ap-southeast-3,r6g.12xlarge,spot,NA,0.340321,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854039 +AWS,ap-southeast-3,r6g.16xlarge,on_demand,NA,3.8912,USD,AWS Pricing API,2025-11-30T08:55:26.420952 +AWS,ap-southeast-3,r6g.16xlarge,reserved_1y,all_upfront,2.334752,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:57.451098 +AWS,ap-southeast-3,r6g.16xlarge,reserved_1y,no_upfront,2.334752,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:36.410821 +AWS,ap-southeast-3,r6g.16xlarge,reserved_1y,partial_upfront,2.334752,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:24.497513 +AWS,ap-southeast-3,r6g.16xlarge,reserved_3y,all_upfront,1.556517,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:04.765903 +AWS,ap-southeast-3,r6g.16xlarge,reserved_3y,no_upfront,1.556517,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:37.379682 +AWS,ap-southeast-3,r6g.16xlarge,reserved_3y,partial_upfront,1.556517,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:36.823527 +AWS,ap-southeast-3,r6g.16xlarge,spot,NA,0.406867,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854019 +AWS,ap-southeast-3,r6g.2xlarge,on_demand,NA,0.4864,USD,AWS Pricing API,2025-11-30T08:56:18.358997 +AWS,ap-southeast-3,r6g.2xlarge,reserved_1y,all_upfront,0.389195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:50.040325 +AWS,ap-southeast-3,r6g.2xlarge,reserved_1y,no_upfront,0.389195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:29.606745 +AWS,ap-southeast-3,r6g.2xlarge,reserved_1y,partial_upfront,0.389195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:16.827713 +AWS,ap-southeast-3,r6g.2xlarge,reserved_3y,all_upfront,0.194598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:56.187674 +AWS,ap-southeast-3,r6g.2xlarge,reserved_3y,no_upfront,0.194598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:30.835226 +AWS,ap-southeast-3,r6g.2xlarge,reserved_3y,partial_upfront,0.194598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:28.981623 +AWS,ap-southeast-3,r6g.2xlarge,spot,NA,0.082264,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854725 +AWS,ap-southeast-3,r6g.4xlarge,on_demand,NA,0.9728,USD,AWS Pricing API,2025-11-30T08:55:16.383003 +AWS,ap-southeast-3,r6g.4xlarge,reserved_1y,all_upfront,0.583695,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:47.330547 +AWS,ap-southeast-3,r6g.4xlarge,reserved_1y,no_upfront,0.583695,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:26.211877 +AWS,ap-southeast-3,r6g.4xlarge,reserved_1y,partial_upfront,0.583695,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:14.458287 +AWS,ap-southeast-3,r6g.4xlarge,reserved_3y,all_upfront,0.389098,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:54.859678 +AWS,ap-southeast-3,r6g.4xlarge,reserved_3y,no_upfront,0.389098,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:27.028343 +AWS,ap-southeast-3,r6g.4xlarge,reserved_3y,partial_upfront,0.389098,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:26.801769 +AWS,ap-southeast-3,r6g.4xlarge,spot,NA,0.182396,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853839 +AWS,ap-southeast-3,r6g.8xlarge,on_demand,NA,1.9456,USD,AWS Pricing API,2025-11-30T08:55:54.582547 +AWS,ap-southeast-3,r6g.8xlarge,reserved_1y,all_upfront,1.336251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:26.018158 +AWS,ap-southeast-3,r6g.8xlarge,reserved_1y,no_upfront,1.336251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:05.294475 +AWS,ap-southeast-3,r6g.8xlarge,reserved_1y,partial_upfront,1.336251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:52.953643 +AWS,ap-southeast-3,r6g.8xlarge,reserved_3y,all_upfront,0.890817,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:32.754684 +AWS,ap-southeast-3,r6g.8xlarge,reserved_3y,no_upfront,0.890817,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:06.479874 +AWS,ap-southeast-3,r6g.8xlarge,reserved_3y,partial_upfront,0.890817,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:05.192213 +AWS,ap-southeast-3,r6g.8xlarge,spot,NA,0.215879,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854448 +AWS,ap-southeast-3,r6g.large,on_demand,NA,0.1216,USD,AWS Pricing API,2025-11-30T08:55:33.608247 +AWS,ap-southeast-3,r6g.large,reserved_1y,all_upfront,0.071461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:04.755216 +AWS,ap-southeast-3,r6g.large,reserved_1y,no_upfront,0.071461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:43.818409 +AWS,ap-southeast-3,r6g.large,reserved_1y,partial_upfront,0.071461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:31.730433 +AWS,ap-southeast-3,r6g.large,reserved_3y,all_upfront,0.02382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:11.882385 +AWS,ap-southeast-3,r6g.large,reserved_3y,no_upfront,0.02382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:44.788361 +AWS,ap-southeast-3,r6g.large,reserved_3y,partial_upfront,0.02382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:44.087944 +AWS,ap-southeast-3,r6g.large,spot,NA,0.019123,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854161 +AWS,ap-southeast-3,r6g.xlarge,on_demand,NA,0.2432,USD,AWS Pricing API,2025-11-30T08:55:09.434356 +AWS,ap-southeast-3,r6g.xlarge,reserved_1y,all_upfront,0.145945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:40.350795 +AWS,ap-southeast-3,r6g.xlarge,reserved_1y,no_upfront,0.145945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:19.080648 +AWS,ap-southeast-3,r6g.xlarge,reserved_1y,partial_upfront,0.145945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:07.504324 +AWS,ap-southeast-3,r6g.xlarge,reserved_3y,all_upfront,0.097315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:48.020212 +AWS,ap-southeast-3,r6g.xlarge,reserved_3y,no_upfront,0.097315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:19.930672 +AWS,ap-southeast-3,r6g.xlarge,reserved_3y,partial_upfront,0.097315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:19.832541 +AWS,ap-southeast-3,r6g.xlarge,spot,NA,0.037851,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853759 +AWS,ap-southeast-3,r6gd.12xlarge,on_demand,NA,3.336,USD,AWS Pricing API,2025-11-30T08:56:04.963246 +AWS,ap-southeast-3,r6gd.12xlarge,reserved_1y,all_upfront,1.975571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:36.389435 +AWS,ap-southeast-3,r6gd.12xlarge,reserved_1y,no_upfront,1.975571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:15.891033 +AWS,ap-southeast-3,r6gd.12xlarge,reserved_1y,partial_upfront,1.975571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:03.289651 +AWS,ap-southeast-3,r6gd.12xlarge,reserved_3y,all_upfront,0.658524,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:42.924905 +AWS,ap-southeast-3,r6gd.12xlarge,reserved_3y,no_upfront,0.658524,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:17.009786 +AWS,ap-southeast-3,r6gd.12xlarge,reserved_3y,partial_upfront,0.658524,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:15.515030 +AWS,ap-southeast-3,r6gd.12xlarge,spot,NA,0.463585,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854583 +AWS,ap-southeast-3,r6gd.16xlarge,on_demand,NA,4.448,USD,AWS Pricing API,2025-11-30T08:55:32.126127 +AWS,ap-southeast-3,r6gd.16xlarge,reserved_1y,all_upfront,2.634132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:03.252874 +AWS,ap-southeast-3,r6gd.16xlarge,reserved_1y,no_upfront,2.634132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:42.325307 +AWS,ap-southeast-3,r6gd.16xlarge,reserved_1y,partial_upfront,2.634132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:30.249411 +AWS,ap-southeast-3,r6gd.16xlarge,reserved_3y,all_upfront,0.878044,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:10.430439 +AWS,ap-southeast-3,r6gd.16xlarge,reserved_3y,no_upfront,0.878044,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:43.284831 +AWS,ap-southeast-3,r6gd.16xlarge,reserved_3y,partial_upfront,0.878044,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:42.555820 +AWS,ap-southeast-3,r6gd.16xlarge,spot,NA,0.500866,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854120 +AWS,ap-southeast-3,r6gd.2xlarge,on_demand,NA,0.556,USD,AWS Pricing API,2025-11-30T08:55:10.912065 +AWS,ap-southeast-3,r6gd.2xlarge,reserved_1y,all_upfront,0.376256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:41.809509 +AWS,ap-southeast-3,r6gd.2xlarge,reserved_1y,no_upfront,0.376256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:20.595649 +AWS,ap-southeast-3,r6gd.2xlarge,reserved_1y,partial_upfront,0.376256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:08.967158 +AWS,ap-southeast-3,r6gd.2xlarge,reserved_3y,all_upfront,0.125419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:49.472758 +AWS,ap-southeast-3,r6gd.2xlarge,reserved_3y,no_upfront,0.125419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:21.427467 +AWS,ap-southeast-3,r6gd.2xlarge,reserved_3y,partial_upfront,0.125419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:21.310003 +AWS,ap-southeast-3,r6gd.2xlarge,spot,NA,0.064612,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853771 +AWS,ap-southeast-3,r6gd.4xlarge,on_demand,NA,1.112,USD,AWS Pricing API,2025-11-30T08:55:17.328062 +AWS,ap-southeast-3,r6gd.4xlarge,reserved_1y,all_upfront,0.752626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:48.268231 +AWS,ap-southeast-3,r6gd.4xlarge,reserved_1y,no_upfront,0.752626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:27.176537 +AWS,ap-southeast-3,r6gd.4xlarge,reserved_1y,partial_upfront,0.752626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:15.416924 +AWS,ap-southeast-3,r6gd.4xlarge,reserved_3y,all_upfront,0.250875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:55.781050 +AWS,ap-southeast-3,r6gd.4xlarge,reserved_3y,no_upfront,0.250875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:28.001245 +AWS,ap-southeast-3,r6gd.4xlarge,reserved_3y,partial_upfront,0.250875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:27.742354 +AWS,ap-southeast-3,r6gd.4xlarge,spot,NA,0.131673,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853856 +AWS,ap-southeast-3,r6gd.8xlarge,on_demand,NA,2.224,USD,AWS Pricing API,2025-11-30T08:55:11.716967 +AWS,ap-southeast-3,r6gd.8xlarge,reserved_1y,all_upfront,1.535822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:42.608702 +AWS,ap-southeast-3,r6gd.8xlarge,reserved_1y,no_upfront,1.535822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:21.445880 +AWS,ap-southeast-3,r6gd.8xlarge,reserved_1y,partial_upfront,1.535822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:09.767495 +AWS,ap-southeast-3,r6gd.8xlarge,reserved_3y,all_upfront,1.023874,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:50.265313 +AWS,ap-southeast-3,r6gd.8xlarge,reserved_3y,no_upfront,1.023874,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:22.246742 +AWS,ap-southeast-3,r6gd.8xlarge,reserved_3y,partial_upfront,1.023874,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:22.112043 +AWS,ap-southeast-3,r6gd.8xlarge,spot,NA,0.261113,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853783 +AWS,ap-southeast-3,r6gd.large,on_demand,NA,0.139,USD,AWS Pricing API,2025-11-30T08:55:46.645775 +AWS,ap-southeast-3,r6gd.large,reserved_1y,all_upfront,0.196918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:17.953547 +AWS,ap-southeast-3,r6gd.large,reserved_1y,no_upfront,0.196918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:57.092014 +AWS,ap-southeast-3,r6gd.large,reserved_1y,partial_upfront,0.196918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:44.864833 +AWS,ap-southeast-3,r6gd.large,reserved_3y,all_upfront,0.065639,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:24.791385 +AWS,ap-southeast-3,r6gd.large,reserved_3y,no_upfront,0.065639,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:58.228708 +AWS,ap-southeast-3,r6gd.large,reserved_3y,partial_upfront,0.065639,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:57.177898 +AWS,ap-southeast-3,r6gd.large,spot,NA,0.017018,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854357 +AWS,ap-southeast-3,r6gd.xlarge,on_demand,NA,0.278,USD,AWS Pricing API,2025-11-30T08:55:31.053673 +AWS,ap-southeast-3,r6gd.xlarge,reserved_1y,all_upfront,0.224037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:02.170516 +AWS,ap-southeast-3,r6gd.xlarge,reserved_1y,no_upfront,0.224037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:41.237612 +AWS,ap-southeast-3,r6gd.xlarge,reserved_1y,partial_upfront,0.224037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:29.174229 +AWS,ap-southeast-3,r6gd.xlarge,reserved_3y,all_upfront,0.112012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:09.385578 +AWS,ap-southeast-3,r6gd.xlarge,reserved_3y,no_upfront,0.112012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:42.190638 +AWS,ap-southeast-3,r6gd.xlarge,reserved_3y,partial_upfront,0.112012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:41.495567 +AWS,ap-southeast-3,r6gd.xlarge,spot,NA,0.032099,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854085 +AWS,ap-southeast-3,r7g.12xlarge,on_demand,NA,3.1008,USD,AWS Pricing API,2025-11-30T08:55:39.477279 +AWS,ap-southeast-3,r7g.12xlarge,reserved_1y,all_upfront,2.995375,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:10.680419 +AWS,ap-southeast-3,r7g.12xlarge,reserved_1y,no_upfront,2.995375,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:49.780896 +AWS,ap-southeast-3,r7g.12xlarge,reserved_1y,partial_upfront,2.995375,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:37.637983 +AWS,ap-southeast-3,r7g.12xlarge,reserved_3y,all_upfront,1.497658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:17.707082 +AWS,ap-southeast-3,r7g.12xlarge,reserved_3y,no_upfront,1.497658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:50.853134 +AWS,ap-southeast-3,r7g.12xlarge,reserved_3y,partial_upfront,1.497658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:49.973241 +AWS,ap-southeast-3,r7g.12xlarge,spot,NA,0.368883,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854255 +AWS,ap-southeast-3,r7g.16xlarge,on_demand,NA,4.1344,USD,AWS Pricing API,2025-11-30T08:55:24.911103 +AWS,ap-southeast-3,r7g.16xlarge,reserved_1y,all_upfront,2.795662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:55.971901 +AWS,ap-southeast-3,r7g.16xlarge,reserved_1y,no_upfront,2.795662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:34.922505 +AWS,ap-southeast-3,r7g.16xlarge,reserved_1y,partial_upfront,2.795662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:23.025064 +AWS,ap-southeast-3,r7g.16xlarge,reserved_3y,all_upfront,0.931887,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:03.324632 +AWS,ap-southeast-3,r7g.16xlarge,reserved_3y,no_upfront,0.931887,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:35.880166 +AWS,ap-southeast-3,r7g.16xlarge,reserved_3y,partial_upfront,0.931887,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:35.362626 +AWS,ap-southeast-3,r7g.16xlarge,spot,NA,0.41752,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853978 +AWS,ap-southeast-3,r7g.2xlarge,on_demand,NA,0.5168,USD,AWS Pricing API,2025-11-30T08:55:32.941528 +AWS,ap-southeast-3,r7g.2xlarge,reserved_1y,all_upfront,0.319064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:04.082842 +AWS,ap-southeast-3,r7g.2xlarge,reserved_1y,no_upfront,0.319064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:43.141949 +AWS,ap-southeast-3,r7g.2xlarge,reserved_1y,partial_upfront,0.319064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:31.058929 +AWS,ap-southeast-3,r7g.2xlarge,reserved_3y,all_upfront,0.106355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:11.222297 +AWS,ap-southeast-3,r7g.2xlarge,reserved_3y,no_upfront,0.106355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:44.105970 +AWS,ap-southeast-3,r7g.2xlarge,reserved_3y,partial_upfront,0.106355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:43.414677 +AWS,ap-southeast-3,r7g.2xlarge,spot,NA,0.05948,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854139 +AWS,ap-southeast-3,r7g.4xlarge,on_demand,NA,1.0336,USD,AWS Pricing API,2025-11-30T08:55:23.569381 +AWS,ap-southeast-3,r7g.4xlarge,reserved_1y,all_upfront,0.5392,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:54.605023 +AWS,ap-southeast-3,r7g.4xlarge,reserved_1y,no_upfront,0.5392,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:33.564389 +AWS,ap-southeast-3,r7g.4xlarge,reserved_1y,partial_upfront,0.5392,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:21.694345 +AWS,ap-southeast-3,r7g.4xlarge,reserved_3y,all_upfront,0.5392,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:01.996168 +AWS,ap-southeast-3,r7g.4xlarge,reserved_3y,no_upfront,0.5392,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:34.505815 +AWS,ap-southeast-3,r7g.4xlarge,reserved_3y,partial_upfront,0.5392,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:34.022680 +AWS,ap-southeast-3,r7g.4xlarge,spot,NA,0.104818,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853958 +AWS,ap-southeast-3,r7g.8xlarge,on_demand,NA,2.0672,USD,AWS Pricing API,2025-11-30T08:55:54.981990 +AWS,ap-southeast-3,r7g.8xlarge,reserved_1y,all_upfront,1.276256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:26.420171 +AWS,ap-southeast-3,r7g.8xlarge,reserved_1y,no_upfront,1.276256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:05.706676 +AWS,ap-southeast-3,r7g.8xlarge,reserved_1y,partial_upfront,1.276256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:53.351604 +AWS,ap-southeast-3,r7g.8xlarge,reserved_3y,all_upfront,0.425419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:33.151798 +AWS,ap-southeast-3,r7g.8xlarge,reserved_3y,no_upfront,0.425419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:06.895684 +AWS,ap-southeast-3,r7g.8xlarge,reserved_3y,partial_upfront,0.425419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:05.598116 +AWS,ap-southeast-3,r7g.8xlarge,spot,NA,0.242039,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854444 +AWS,ap-southeast-3,r7g.large,on_demand,NA,0.1292,USD,AWS Pricing API,2025-11-30T08:55:49.548538 +AWS,ap-southeast-3,r7g.large,reserved_1y,all_upfront,0.183447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:20.903278 +AWS,ap-southeast-3,r7g.large,reserved_1y,no_upfront,0.183447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:00.070981 +AWS,ap-southeast-3,r7g.large,reserved_1y,partial_upfront,0.183447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:47.826322 +AWS,ap-southeast-3,r7g.large,reserved_3y,all_upfront,0.061149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:27.690816 +AWS,ap-southeast-3,r7g.large,reserved_3y,no_upfront,0.061149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:01.231086 +AWS,ap-southeast-3,r7g.large,reserved_3y,partial_upfront,0.061149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:00.119951 +AWS,ap-southeast-3,r7g.large,spot,NA,0.015465,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854392 +AWS,ap-southeast-3,r7g.xlarge,on_demand,NA,0.2584,USD,AWS Pricing API,2025-11-30T08:55:51.911497 +AWS,ap-southeast-3,r7g.xlarge,reserved_1y,all_upfront,0.178255,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:23.313268 +AWS,ap-southeast-3,r7g.xlarge,reserved_1y,no_upfront,0.178255,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:02.545191 +AWS,ap-southeast-3,r7g.xlarge,reserved_1y,partial_upfront,0.178255,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:50.242892 +AWS,ap-southeast-3,r7g.xlarge,reserved_3y,all_upfront,0.118818,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:30.107362 +AWS,ap-southeast-3,r7g.xlarge,reserved_3y,no_upfront,0.118818,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:03.731474 +AWS,ap-southeast-3,r7g.xlarge,reserved_3y,partial_upfront,0.118818,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:02.522335 +AWS,ap-southeast-3,r7g.xlarge,spot,NA,0.029948,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854420 +AWS,ap-southeast-3,r7gd.12xlarge,on_demand,NA,3.9461,USD,AWS Pricing API,2025-11-30T08:56:13.368498 +AWS,ap-southeast-3,r7gd.12xlarge,reserved_1y,all_upfront,2.486,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:44.930889 +AWS,ap-southeast-3,r7gd.12xlarge,reserved_1y,no_upfront,2.486,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:24.471576 +AWS,ap-southeast-3,r7gd.12xlarge,reserved_1y,partial_upfront,2.486,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:11.732131 +AWS,ap-southeast-3,r7gd.12xlarge,reserved_3y,all_upfront,2.486,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:51.210193 +AWS,ap-southeast-3,r7gd.12xlarge,reserved_3y,no_upfront,2.486,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:25.652977 +AWS,ap-southeast-3,r7gd.12xlarge,reserved_3y,partial_upfront,2.486,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:23.899926 +AWS,ap-southeast-3,r7gd.12xlarge,spot,NA,0.469472,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854682 +AWS,ap-southeast-3,r7gd.16xlarge,on_demand,NA,5.2614,USD,AWS Pricing API,2025-11-30T08:56:08.858709 +AWS,ap-southeast-3,r7gd.16xlarge,reserved_1y,all_upfront,3.093721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:40.335775 +AWS,ap-southeast-3,r7gd.16xlarge,reserved_1y,no_upfront,3.093721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:19.841336 +AWS,ap-southeast-3,r7gd.16xlarge,reserved_1y,partial_upfront,3.093721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:07.197478 +AWS,ap-southeast-3,r7gd.16xlarge,reserved_3y,all_upfront,1.03124,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:46.726698 +AWS,ap-southeast-3,r7gd.16xlarge,reserved_3y,no_upfront,1.03124,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:20.985221 +AWS,ap-southeast-3,r7gd.16xlarge,reserved_3y,partial_upfront,1.03124,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:19.377115 +AWS,ap-southeast-3,r7gd.16xlarge,spot,NA,0.53942,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854622 +AWS,ap-southeast-3,r7gd.2xlarge,on_demand,NA,0.6577,USD,AWS Pricing API,2025-11-30T08:55:38.414694 +AWS,ap-southeast-3,r7gd.2xlarge,reserved_1y,all_upfront,0.526135,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:09.597023 +AWS,ap-southeast-3,r7gd.2xlarge,reserved_1y,no_upfront,0.526135,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:48.697459 +AWS,ap-southeast-3,r7gd.2xlarge,reserved_1y,partial_upfront,0.526135,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:36.562098 +AWS,ap-southeast-3,r7gd.2xlarge,reserved_3y,all_upfront,0.263045,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:16.642650 +AWS,ap-southeast-3,r7gd.2xlarge,reserved_3y,no_upfront,0.263045,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:49.753936 +AWS,ap-southeast-3,r7gd.2xlarge,reserved_3y,partial_upfront,0.263045,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:48.893262 +AWS,ap-southeast-3,r7gd.2xlarge,spot,NA,0.069091,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854238 +AWS,ap-southeast-3,r7gd.4xlarge,on_demand,NA,1.3154,USD,AWS Pricing API,2025-11-30T08:55:58.345497 +AWS,ap-southeast-3,r7gd.4xlarge,reserved_1y,all_upfront,0.9543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:29.807206 +AWS,ap-southeast-3,r7gd.4xlarge,reserved_1y,no_upfront,0.9543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:09.160933 +AWS,ap-southeast-3,r7gd.4xlarge,reserved_1y,partial_upfront,0.9543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:56.720844 +AWS,ap-southeast-3,r7gd.4xlarge,reserved_3y,all_upfront,0.9543,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:36.438492 +AWS,ap-southeast-3,r7gd.4xlarge,reserved_3y,no_upfront,0.9543,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:10.318192 +AWS,ap-southeast-3,r7gd.4xlarge,reserved_3y,partial_upfront,0.9543,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:08.954423 +AWS,ap-southeast-3,r7gd.4xlarge,spot,NA,0.135705,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854520 +AWS,ap-southeast-3,r7gd.8xlarge,on_demand,NA,2.6307,USD,AWS Pricing API,2025-11-30T08:55:52.450698 +AWS,ap-southeast-3,r7gd.8xlarge,reserved_1y,all_upfront,1.817804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:23.849415 +AWS,ap-southeast-3,r7gd.8xlarge,reserved_1y,no_upfront,1.817804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:03.089052 +AWS,ap-southeast-3,r7gd.8xlarge,reserved_1y,partial_upfront,1.817804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:50.771072 +AWS,ap-southeast-3,r7gd.8xlarge,reserved_3y,all_upfront,1.211868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:30.636357 +AWS,ap-southeast-3,r7gd.8xlarge,reserved_3y,no_upfront,1.211868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:04.280209 +AWS,ap-southeast-3,r7gd.8xlarge,reserved_3y,partial_upfront,1.211868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:03.062355 +AWS,ap-southeast-3,r7gd.8xlarge,spot,NA,0.339348,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854424 +AWS,ap-southeast-3,r7gd.large,on_demand,NA,0.1644,USD,AWS Pricing API,2025-11-30T08:55:17.466550 +AWS,ap-southeast-3,r7gd.large,reserved_1y,all_upfront,0.1036,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:48.411379 +AWS,ap-southeast-3,r7gd.large,reserved_1y,no_upfront,0.1036,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:27.310645 +AWS,ap-southeast-3,r7gd.large,reserved_1y,partial_upfront,0.1036,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:15.551632 +AWS,ap-southeast-3,r7gd.large,reserved_3y,all_upfront,0.1036,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:55.914190 +AWS,ap-southeast-3,r7gd.large,reserved_3y,no_upfront,0.1036,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:28.138161 +AWS,ap-southeast-3,r7gd.large,reserved_3y,partial_upfront,0.1036,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:27.877852 +AWS,ap-southeast-3,r7gd.large,spot,NA,0.018006,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853868 +AWS,ap-southeast-3,r7gd.xlarge,on_demand,NA,0.3288,USD,AWS Pricing API,2025-11-30T08:55:26.828207 +AWS,ap-southeast-3,r7gd.xlarge,reserved_1y,all_upfront,0.193379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:57.862754 +AWS,ap-southeast-3,r7gd.xlarge,reserved_1y,no_upfront,0.193379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:36.837169 +AWS,ap-southeast-3,r7gd.xlarge,reserved_1y,partial_upfront,0.193379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:24.905175 +AWS,ap-southeast-3,r7gd.xlarge,reserved_3y,all_upfront,0.06446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:05.169390 +AWS,ap-southeast-3,r7gd.xlarge,reserved_3y,no_upfront,0.06446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:37.792465 +AWS,ap-southeast-3,r7gd.xlarge,reserved_3y,partial_upfront,0.06446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:37.224192 +AWS,ap-southeast-3,r7gd.xlarge,spot,NA,0.034218,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854023 +AWS,ap-southeast-3,r7i.12xlarge,on_demand,NA,3.8304,USD,AWS Pricing API,2025-11-30T08:56:01.298699 +AWS,ap-southeast-3,r7i.12xlarge,reserved_1y,all_upfront,1.99809,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:32.760834 +AWS,ap-southeast-3,r7i.12xlarge,reserved_1y,no_upfront,1.99809,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:12.212798 +AWS,ap-southeast-3,r7i.12xlarge,reserved_1y,partial_upfront,1.99809,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:59.667486 +AWS,ap-southeast-3,r7i.12xlarge,reserved_3y,all_upfront,1.99809,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:39.366905 +AWS,ap-southeast-3,r7i.12xlarge,reserved_3y,no_upfront,1.99809,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:13.317765 +AWS,ap-southeast-3,r7i.12xlarge,reserved_3y,partial_upfront,1.99809,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:11.892365 +AWS,ap-southeast-3,r7i.12xlarge,spot,NA,0.552246,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854543 +AWS,ap-southeast-3,r7i.16xlarge,on_demand,NA,5.1072,USD,AWS Pricing API,2025-11-30T08:55:59.423388 +AWS,ap-southeast-3,r7i.16xlarge,reserved_1y,all_upfront,4.29009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:30.883723 +AWS,ap-southeast-3,r7i.16xlarge,reserved_1y,no_upfront,4.29009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:10.261276 +AWS,ap-southeast-3,r7i.16xlarge,reserved_1y,partial_upfront,4.29009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:57.792393 +AWS,ap-southeast-3,r7i.16xlarge,reserved_3y,all_upfront,2.145037,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:37.504897 +AWS,ap-southeast-3,r7i.16xlarge,reserved_3y,no_upfront,2.145037,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:11.410470 +AWS,ap-southeast-3,r7i.16xlarge,reserved_3y,partial_upfront,2.145037,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:10.023740 +AWS,ap-southeast-3,r7i.16xlarge,spot,NA,0.664731,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854500 +AWS,ap-southeast-3,r7i.24xlarge,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T08:55:56.174345 +AWS,ap-southeast-3,r7i.24xlarge,reserved_1y,all_upfront,9.073402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:27.656076 +AWS,ap-southeast-3,r7i.24xlarge,reserved_1y,no_upfront,9.073402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:06.934859 +AWS,ap-southeast-3,r7i.24xlarge,reserved_1y,partial_upfront,9.073402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:54.570295 +AWS,ap-southeast-3,r7i.24xlarge,reserved_3y,all_upfront,3.024467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:34.331947 +AWS,ap-southeast-3,r7i.24xlarge,reserved_3y,no_upfront,3.024467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:08.124378 +AWS,ap-southeast-3,r7i.24xlarge,reserved_3y,partial_upfront,3.024467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:06.808798 +AWS,ap-southeast-3,r7i.24xlarge,spot,NA,0.893982,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854468 +AWS,ap-southeast-3,r7i.2xlarge,on_demand,NA,0.6384,USD,AWS Pricing API,2025-11-30T08:55:58.481133 +AWS,ap-southeast-3,r7i.2xlarge,reserved_1y,all_upfront,0.440455,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:29.941882 +AWS,ap-southeast-3,r7i.2xlarge,reserved_1y,no_upfront,0.440455,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:09.299416 +AWS,ap-southeast-3,r7i.2xlarge,reserved_1y,partial_upfront,0.440455,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:56.860251 +AWS,ap-southeast-3,r7i.2xlarge,reserved_3y,all_upfront,0.293652,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:36.571321 +AWS,ap-southeast-3,r7i.2xlarge,reserved_3y,no_upfront,0.293652,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:10.454927 +AWS,ap-southeast-3,r7i.2xlarge,reserved_3y,partial_upfront,0.293652,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:09.093388 +AWS,ap-southeast-3,r7i.2xlarge,spot,NA,0.097594,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854512 +AWS,ap-southeast-3,r7i.48xlarge,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T08:56:18.627423 +AWS,ap-southeast-3,r7i.48xlarge,reserved_1y,all_upfront,12.870166,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:50.306321 +AWS,ap-southeast-3,r7i.48xlarge,reserved_1y,no_upfront,12.870166,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:29.874288 +AWS,ap-southeast-3,r7i.48xlarge,reserved_1y,partial_upfront,12.870166,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:17.094817 +AWS,ap-southeast-3,r7i.48xlarge,reserved_3y,all_upfront,6.435082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:56.451296 +AWS,ap-southeast-3,r7i.48xlarge,reserved_3y,no_upfront,6.435082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:31.107034 +AWS,ap-southeast-3,r7i.48xlarge,reserved_3y,partial_upfront,6.435082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:29.247272 +AWS,ap-southeast-3,r7i.48xlarge,spot,NA,1.575125,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854744 +AWS,ap-southeast-3,r7i.4xlarge,on_demand,NA,1.2768,USD,AWS Pricing API,2025-11-30T08:55:56.037551 +AWS,ap-southeast-3,r7i.4xlarge,reserved_1y,all_upfront,0.863356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:27.521535 +AWS,ap-southeast-3,r7i.4xlarge,reserved_1y,no_upfront,0.863356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:06.798594 +AWS,ap-southeast-3,r7i.4xlarge,reserved_1y,partial_upfront,0.863356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:54.424460 +AWS,ap-southeast-3,r7i.4xlarge,reserved_3y,all_upfront,0.287785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:34.201281 +AWS,ap-southeast-3,r7i.4xlarge,reserved_3y,no_upfront,0.287785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:07.987694 +AWS,ap-southeast-3,r7i.4xlarge,reserved_3y,partial_upfront,0.287785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:06.667857 +AWS,ap-southeast-3,r7i.4xlarge,spot,NA,0.188533,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854464 +AWS,ap-southeast-3,r7i.8xlarge,on_demand,NA,2.5536,USD,AWS Pricing API,2025-11-30T08:55:13.596778 +AWS,ap-southeast-3,r7i.8xlarge,reserved_1y,all_upfront,1.608718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:44.499884 +AWS,ap-southeast-3,r7i.8xlarge,reserved_1y,no_upfront,1.608718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:23.342210 +AWS,ap-southeast-3,r7i.8xlarge,reserved_1y,partial_upfront,1.608718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:11.641830 +AWS,ap-southeast-3,r7i.8xlarge,reserved_3y,all_upfront,1.072493,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:52.100257 +AWS,ap-southeast-3,r7i.8xlarge,reserved_3y,no_upfront,1.072493,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:24.145245 +AWS,ap-southeast-3,r7i.8xlarge,reserved_3y,partial_upfront,1.072493,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:23.987275 +AWS,ap-southeast-3,r7i.8xlarge,spot,NA,0.517566,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853791 +AWS,ap-southeast-3,r7i.large,on_demand,NA,0.1596,USD,AWS Pricing API,2025-11-30T08:55:27.624263 +AWS,ap-southeast-3,r7i.large,reserved_1y,all_upfront,0.134091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:58.674171 +AWS,ap-southeast-3,r7i.large,reserved_1y,no_upfront,0.134091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:37.735050 +AWS,ap-southeast-3,r7i.large,reserved_1y,partial_upfront,0.134091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:25.706929 +AWS,ap-southeast-3,r7i.large,reserved_3y,all_upfront,0.067044,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:05.959618 +AWS,ap-southeast-3,r7i.large,reserved_3y,no_upfront,0.067044,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:38.624014 +AWS,ap-southeast-3,r7i.large,reserved_3y,partial_upfront,0.067044,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:38.020088 +AWS,ap-southeast-3,r7i.large,spot,NA,0.025776,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854007 +AWS,ap-southeast-3,r7i.metal-24xl,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T08:55:43.466785 +AWS,ap-southeast-3,r7i.metal-24xl,reserved_1y,all_upfront,4.826278,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:14.726125 +AWS,ap-southeast-3,r7i.metal-24xl,reserved_1y,no_upfront,4.826278,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:53.842515 +AWS,ap-southeast-3,r7i.metal-24xl,reserved_1y,partial_upfront,4.826278,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:41.657881 +AWS,ap-southeast-3,r7i.metal-24xl,reserved_3y,all_upfront,3.217526,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:21.637084 +AWS,ap-southeast-3,r7i.metal-24xl,reserved_3y,no_upfront,3.217526,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:54.944219 +AWS,ap-southeast-3,r7i.metal-24xl,reserved_3y,partial_upfront,3.217526,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:53.985745 +AWS,ap-southeast-3,r7i.metal-24xl,spot,NA,0.779131,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854305 +AWS,ap-southeast-3,r7i.metal-48xl,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T08:56:02.807830 +AWS,ap-southeast-3,r7i.metal-48xl,reserved_1y,all_upfront,9.459589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:34.242868 +AWS,ap-southeast-3,r7i.metal-48xl,reserved_1y,no_upfront,9.459589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:13.723263 +AWS,ap-southeast-3,r7i.metal-48xl,reserved_1y,partial_upfront,9.459589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:01.135694 +AWS,ap-southeast-3,r7i.metal-48xl,reserved_3y,all_upfront,3.153196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:40.815301 +AWS,ap-southeast-3,r7i.metal-48xl,reserved_3y,no_upfront,3.153196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:14.809564 +AWS,ap-southeast-3,r7i.metal-48xl,reserved_3y,partial_upfront,3.153196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:13.362187 +AWS,ap-southeast-3,r7i.metal-48xl,spot,NA,5.856852,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854559 +AWS,ap-southeast-3,r7i.xlarge,on_demand,NA,0.3192,USD,AWS Pricing API,2025-11-30T08:55:38.943430 +AWS,ap-southeast-3,r7i.xlarge,reserved_1y,all_upfront,0.22028,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:10.139367 +AWS,ap-southeast-3,r7i.xlarge,reserved_1y,no_upfront,0.22028,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:49.243226 +AWS,ap-southeast-3,r7i.xlarge,reserved_1y,partial_upfront,0.22028,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:37.097623 +AWS,ap-southeast-3,r7i.xlarge,reserved_3y,all_upfront,0.14684,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:17.175183 +AWS,ap-southeast-3,r7i.xlarge,reserved_3y,no_upfront,0.14684,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:50.299464 +AWS,ap-southeast-3,r7i.xlarge,reserved_3y,partial_upfront,0.14684,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:49.440182 +AWS,ap-southeast-3,r7i.xlarge,spot,NA,0.045503,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854259 +AWS,ap-southeast-3,r8g.12xlarge,on_demand,NA,3.41088,USD,AWS Pricing API,2025-11-30T08:55:45.585119 +AWS,ap-southeast-3,r8g.12xlarge,reserved_1y,all_upfront,2.148859,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:16.888380 +AWS,ap-southeast-3,r8g.12xlarge,reserved_1y,no_upfront,2.148859,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:56.002115 +AWS,ap-southeast-3,r8g.12xlarge,reserved_1y,partial_upfront,2.148859,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:43.802093 +AWS,ap-southeast-3,r8g.12xlarge,reserved_3y,all_upfront,1.432573,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:23.742266 +AWS,ap-southeast-3,r8g.12xlarge,reserved_3y,no_upfront,1.432573,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:57.126725 +AWS,ap-southeast-3,r8g.12xlarge,reserved_3y,partial_upfront,1.432573,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:56.119366 +AWS,ap-southeast-3,r8g.12xlarge,spot,NA,0.443997,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854345 +AWS,ap-southeast-3,r8g.16xlarge,on_demand,NA,4.54784,USD,AWS Pricing API,2025-11-30T08:56:08.325882 +AWS,ap-southeast-3,r8g.16xlarge,reserved_1y,all_upfront,2.0629,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:39.799378 +AWS,ap-southeast-3,r8g.16xlarge,reserved_1y,no_upfront,2.0629,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:19.297897 +AWS,ap-southeast-3,r8g.16xlarge,reserved_1y,partial_upfront,2.0629,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:32:06.661597 +AWS,ap-southeast-3,r8g.16xlarge,reserved_3y,all_upfront,2.0629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:46.207268 +AWS,ap-southeast-3,r8g.16xlarge,reserved_3y,no_upfront,2.0629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:20.439052 +AWS,ap-southeast-3,r8g.16xlarge,reserved_3y,partial_upfront,2.0629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:18.848956 +AWS,ap-southeast-3,r8g.16xlarge,spot,NA,0.463863,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854618 +AWS,ap-southeast-3,r8g.24xlarge,on_demand,NA,6.82176,USD,AWS Pricing API,2025-11-30T08:55:37.073259 +AWS,ap-southeast-3,r8g.24xlarge,reserved_1y,all_upfront,4.94237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:08.245133 +AWS,ap-southeast-3,r8g.24xlarge,reserved_1y,no_upfront,4.94237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:47.330525 +AWS,ap-southeast-3,r8g.24xlarge,reserved_1y,partial_upfront,4.94237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:35.220474 +AWS,ap-southeast-3,r8g.24xlarge,reserved_3y,all_upfront,4.94237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:15.320423 +AWS,ap-southeast-3,r8g.24xlarge,reserved_3y,no_upfront,4.94237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:48.385565 +AWS,ap-southeast-3,r8g.24xlarge,reserved_3y,partial_upfront,4.94237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:47.558938 +AWS,ap-southeast-3,r8g.24xlarge,spot,NA,0.711157,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854225 +AWS,ap-southeast-3,r8g.2xlarge,on_demand,NA,0.56848,USD,AWS Pricing API,2025-11-30T08:55:49.283276 +AWS,ap-southeast-3,r8g.2xlarge,reserved_1y,all_upfront,0.807306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:20.637354 +AWS,ap-southeast-3,r8g.2xlarge,reserved_1y,no_upfront,0.807306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:59.800286 +AWS,ap-southeast-3,r8g.2xlarge,reserved_1y,partial_upfront,0.807306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:47.553842 +AWS,ap-southeast-3,r8g.2xlarge,reserved_3y,all_upfront,0.269102,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:27.429276 +AWS,ap-southeast-3,r8g.2xlarge,reserved_3y,no_upfront,0.269102,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:00.955851 +AWS,ap-southeast-3,r8g.2xlarge,reserved_3y,partial_upfront,0.269102,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:59.846766 +AWS,ap-southeast-3,r8g.2xlarge,spot,NA,0.062652,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854396 +AWS,ap-southeast-3,r8g.48xlarge,on_demand,NA,13.64352,USD,AWS Pricing API,2025-11-30T08:55:35.603639 +AWS,ap-southeast-3,r8g.48xlarge,reserved_1y,all_upfront,8.595427,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:06.765874 +AWS,ap-southeast-3,r8g.48xlarge,reserved_1y,no_upfront,8.595427,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:45.842466 +AWS,ap-southeast-3,r8g.48xlarge,reserved_1y,partial_upfront,8.595427,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:33.736818 +AWS,ap-southeast-3,r8g.48xlarge,reserved_3y,all_upfront,5.730282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:13.865033 +AWS,ap-southeast-3,r8g.48xlarge,reserved_3y,no_upfront,5.730282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:46.866902 +AWS,ap-southeast-3,r8g.48xlarge,reserved_3y,partial_upfront,5.730282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:46.085384 +AWS,ap-southeast-3,r8g.48xlarge,spot,NA,1.388283,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854170 +AWS,ap-southeast-3,r8g.4xlarge,on_demand,NA,1.13696,USD,AWS Pricing API,2025-11-30T08:55:53.644226 +AWS,ap-southeast-3,r8g.4xlarge,reserved_1y,all_upfront,0.716245,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:25.075014 +AWS,ap-southeast-3,r8g.4xlarge,reserved_1y,no_upfront,0.716245,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:04.334621 +AWS,ap-southeast-3,r8g.4xlarge,reserved_1y,partial_upfront,0.716245,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:52.008127 +AWS,ap-southeast-3,r8g.4xlarge,reserved_3y,all_upfront,0.477508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:31.823336 +AWS,ap-southeast-3,r8g.4xlarge,reserved_3y,no_upfront,0.477508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:05.509134 +AWS,ap-southeast-3,r8g.4xlarge,reserved_3y,partial_upfront,0.477508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:04.258393 +AWS,ap-southeast-3,r8g.4xlarge,spot,NA,0.118504,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854428 +AWS,ap-southeast-3,r8g.8xlarge,on_demand,NA,2.27392,USD,AWS Pricing API,2025-11-30T08:55:15.055266 +AWS,ap-southeast-3,r8g.8xlarge,reserved_1y,all_upfront,2.196639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:45.982672 +AWS,ap-southeast-3,r8g.8xlarge,reserved_1y,no_upfront,2.196639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:24.848999 +AWS,ap-southeast-3,r8g.8xlarge,reserved_1y,partial_upfront,2.196639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:13.099601 +AWS,ap-southeast-3,r8g.8xlarge,reserved_3y,all_upfront,1.098313,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:53.551414 +AWS,ap-southeast-3,r8g.8xlarge,reserved_3y,no_upfront,1.098313,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:25.651860 +AWS,ap-southeast-3,r8g.8xlarge,reserved_3y,partial_upfront,1.098313,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:25.460335 +AWS,ap-southeast-3,r8g.8xlarge,spot,NA,0.267428,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.853816 +AWS,ap-southeast-3,r8g.large,on_demand,NA,0.14212,USD,AWS Pricing API,2025-11-30T08:55:52.186033 +AWS,ap-southeast-3,r8g.large,reserved_1y,all_upfront,0.089519,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:23.578746 +AWS,ap-southeast-3,r8g.large,reserved_1y,no_upfront,0.089519,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:10:02.819128 +AWS,ap-southeast-3,r8g.large,reserved_1y,partial_upfront,0.089519,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:50.505666 +AWS,ap-southeast-3,r8g.large,reserved_3y,all_upfront,0.059686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:30.373206 +AWS,ap-southeast-3,r8g.large,reserved_3y,no_upfront,0.059686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:15:04.005602 +AWS,ap-southeast-3,r8g.large,reserved_3y,partial_upfront,0.059686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:37:02.789253 +AWS,ap-southeast-3,r8g.large,spot,NA,0.015703,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854408 +AWS,ap-southeast-3,r8g.xlarge,on_demand,NA,0.28424,USD,AWS Pricing API,2025-11-30T08:55:35.196304 +AWS,ap-southeast-3,r8g.xlarge,reserved_1y,all_upfront,0.403653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:53:06.363005 +AWS,ap-southeast-3,r8g.xlarge,reserved_1y,no_upfront,0.403653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:45.434387 +AWS,ap-southeast-3,r8g.xlarge,reserved_1y,partial_upfront,0.403653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:33.336148 +AWS,ap-southeast-3,r8g.xlarge,reserved_3y,all_upfront,0.134551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:58:13.472719 +AWS,ap-southeast-3,r8g.xlarge,reserved_3y,no_upfront,0.134551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:46.451522 +AWS,ap-southeast-3,r8g.xlarge,reserved_3y,partial_upfront,0.134551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:45.687196 +AWS,ap-southeast-3,r8g.xlarge,spot,NA,0.031805,USD,AWS EC2 API (90-day avg),2025-11-30T09:25:31.854179 +AWS,ca-central-1,c5.12xlarge,on_demand,NA,2.232,USD,AWS Pricing API,2025-11-30T09:09:58.960625 +AWS,ca-central-1,c5.12xlarge,reserved_1y,all_upfront,1.725292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:28.248233 +AWS,ca-central-1,c5.12xlarge,reserved_1y,no_upfront,1.725292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:16.085623 +AWS,ca-central-1,c5.12xlarge,reserved_1y,partial_upfront,1.725292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:51.318577 +AWS,ca-central-1,c5.12xlarge,reserved_3y,all_upfront,0.862431,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:17.866091 +AWS,ca-central-1,c5.12xlarge,reserved_3y,no_upfront,0.862431,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:23.996713 +AWS,ca-central-1,c5.12xlarge,reserved_3y,partial_upfront,0.862431,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:00.638733 +AWS,ca-central-1,c5.12xlarge,spot,NA,0.654553,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197555 +AWS,ca-central-1,c5.18xlarge,on_demand,NA,3.348,USD,AWS Pricing API,2025-11-30T09:10:07.562955 +AWS,ca-central-1,c5.18xlarge,reserved_1y,all_upfront,2.588438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:36.658091 +AWS,ca-central-1,c5.18xlarge,reserved_1y,no_upfront,2.588438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:24.566941 +AWS,ca-central-1,c5.18xlarge,reserved_1y,partial_upfront,2.588438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:59.703866 +AWS,ca-central-1,c5.18xlarge,reserved_3y,all_upfront,1.294146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:26.064364 +AWS,ca-central-1,c5.18xlarge,reserved_3y,no_upfront,1.294146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:32.560243 +AWS,ca-central-1,c5.18xlarge,reserved_3y,partial_upfront,1.294146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:09.053789 +AWS,ca-central-1,c5.18xlarge,spot,NA,0.962943,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197749 +AWS,ca-central-1,c5.24xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T09:09:12.243845 +AWS,ca-central-1,c5.24xlarge,reserved_1y,all_upfront,2.143,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:41.419705 +AWS,ca-central-1,c5.24xlarge,reserved_1y,no_upfront,2.143,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:28.794602 +AWS,ca-central-1,c5.24xlarge,reserved_1y,partial_upfront,2.143,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:04.775771 +AWS,ca-central-1,c5.24xlarge,reserved_3y,all_upfront,2.143,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:32.178044 +AWS,ca-central-1,c5.24xlarge,reserved_3y,no_upfront,2.143,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:36.330935 +AWS,ca-central-1,c5.24xlarge,reserved_3y,partial_upfront,2.143,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:14.244454 +AWS,ca-central-1,c5.24xlarge,spot,NA,1.29561,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187939 +AWS,ca-central-1,c5.4xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T09:09:51.757155 +AWS,ca-central-1,c5.4xlarge,reserved_1y,all_upfront,0.972374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:21.116305 +AWS,ca-central-1,c5.4xlarge,reserved_1y,no_upfront,0.972374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:08.807642 +AWS,ca-central-1,c5.4xlarge,reserved_1y,partial_upfront,0.972374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:44.156431 +AWS,ca-central-1,c5.4xlarge,reserved_3y,all_upfront,0.324125,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:10.837165 +AWS,ca-central-1,c5.4xlarge,reserved_3y,no_upfront,0.324125,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:16.656003 +AWS,ca-central-1,c5.4xlarge,reserved_3y,partial_upfront,0.324125,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:53.494190 +AWS,ca-central-1,c5.4xlarge,spot,NA,0.248067,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197406 +AWS,ca-central-1,c5.9xlarge,on_demand,NA,1.674,USD,AWS Pricing API,2025-11-30T09:09:11.576914 +AWS,ca-central-1,c5.9xlarge,reserved_1y,all_upfront,0.984361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:40.746479 +AWS,ca-central-1,c5.9xlarge,reserved_1y,no_upfront,0.984361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:28.106234 +AWS,ca-central-1,c5.9xlarge,reserved_1y,partial_upfront,0.984361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:04.100266 +AWS,ca-central-1,c5.9xlarge,reserved_3y,all_upfront,0.32812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:31.518911 +AWS,ca-central-1,c5.9xlarge,reserved_3y,no_upfront,0.32812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:35.653070 +AWS,ca-central-1,c5.9xlarge,reserved_3y,partial_upfront,0.32812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:13.572946 +AWS,ca-central-1,c5.9xlarge,spot,NA,0.58641,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187957 +AWS,ca-central-1,c5a.12xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T09:10:08.102996 +AWS,ca-central-1,c5a.12xlarge,reserved_1y,all_upfront,1.209795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:37.201883 +AWS,ca-central-1,c5a.12xlarge,reserved_1y,no_upfront,1.209795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:25.111688 +AWS,ca-central-1,c5a.12xlarge,reserved_1y,partial_upfront,1.209795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:00.240741 +AWS,ca-central-1,c5a.12xlarge,reserved_3y,all_upfront,0.806598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:26.589897 +AWS,ca-central-1,c5a.12xlarge,reserved_3y,no_upfront,0.806598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:33.108677 +AWS,ca-central-1,c5a.12xlarge,reserved_3y,partial_upfront,0.806598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:09.582901 +AWS,ca-central-1,c5a.12xlarge,spot,NA,0.773303,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197757 +AWS,ca-central-1,c5a.16xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T09:09:27.506825 +AWS,ca-central-1,c5a.16xlarge,reserved_1y,all_upfront,2.150785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:56.725883 +AWS,ca-central-1,c5a.16xlarge,reserved_1y,no_upfront,2.150785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:44.217242 +AWS,ca-central-1,c5a.16xlarge,reserved_1y,partial_upfront,2.150785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:19.998215 +AWS,ca-central-1,c5a.16xlarge,reserved_3y,all_upfront,1.075595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:47.139808 +AWS,ca-central-1,c5a.16xlarge,reserved_3y,no_upfront,1.075595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:51.921485 +AWS,ca-central-1,c5a.16xlarge,reserved_3y,partial_upfront,1.075595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:29.406636 +AWS,ca-central-1,c5a.16xlarge,spot,NA,1.033032,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188438 +AWS,ca-central-1,c5a.24xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T09:10:14.406567 +AWS,ca-central-1,c5a.24xlarge,reserved_1y,all_upfront,2.95574,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:43.408808 +AWS,ca-central-1,c5a.24xlarge,reserved_1y,no_upfront,2.95574,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:31.385224 +AWS,ca-central-1,c5a.24xlarge,reserved_1y,partial_upfront,2.95574,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:06.480217 +AWS,ca-central-1,c5a.24xlarge,reserved_3y,all_upfront,1.97058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:32.680386 +AWS,ca-central-1,c5a.24xlarge,reserved_3y,no_upfront,1.97058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:39.417947 +AWS,ca-central-1,c5a.24xlarge,reserved_3y,partial_upfront,1.97058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:15.762902 +AWS,ca-central-1,c5a.24xlarge,spot,NA,1.290238,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197915 +AWS,ca-central-1,c5a.2xlarge,on_demand,NA,0.336,USD,AWS Pricing API,2025-11-30T09:09:57.175868 +AWS,ca-central-1,c5a.2xlarge,reserved_1y,all_upfront,0.268598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:26.499526 +AWS,ca-central-1,c5a.2xlarge,reserved_1y,no_upfront,0.268598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:14.287846 +AWS,ca-central-1,c5a.2xlarge,reserved_1y,partial_upfront,0.268598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:49.573014 +AWS,ca-central-1,c5a.2xlarge,reserved_3y,all_upfront,0.134199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:16.130548 +AWS,ca-central-1,c5a.2xlarge,reserved_3y,no_upfront,0.134199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:22.171236 +AWS,ca-central-1,c5a.2xlarge,reserved_3y,partial_upfront,0.134199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:58.873685 +AWS,ca-central-1,c5a.2xlarge,spot,NA,0.161053,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197498 +AWS,ca-central-1,c5a.4xlarge,on_demand,NA,0.672,USD,AWS Pricing API,2025-11-30T09:09:30.090164 +AWS,ca-central-1,c5a.4xlarge,reserved_1y,all_upfront,0.29,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:59.304500 +AWS,ca-central-1,c5a.4xlarge,reserved_1y,no_upfront,0.29,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:46.820806 +AWS,ca-central-1,c5a.4xlarge,reserved_1y,partial_upfront,0.29,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:22.557049 +AWS,ca-central-1,c5a.4xlarge,reserved_3y,all_upfront,0.29,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:49.674086 +AWS,ca-central-1,c5a.4xlarge,reserved_3y,no_upfront,0.29,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:54.567426 +AWS,ca-central-1,c5a.4xlarge,reserved_3y,partial_upfront,0.29,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:32.023449 +AWS,ca-central-1,c5a.4xlarge,spot,NA,0.275067,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188549 +AWS,ca-central-1,c5a.8xlarge,on_demand,NA,1.344,USD,AWS Pricing API,2025-11-30T09:09:22.766553 +AWS,ca-central-1,c5a.8xlarge,reserved_1y,all_upfront,0.847,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:51.984830 +AWS,ca-central-1,c5a.8xlarge,reserved_1y,no_upfront,0.847,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:39.412969 +AWS,ca-central-1,c5a.8xlarge,reserved_1y,partial_upfront,0.847,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:15.280206 +AWS,ca-central-1,c5a.8xlarge,reserved_3y,all_upfront,0.847,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:42.507794 +AWS,ca-central-1,c5a.8xlarge,reserved_3y,no_upfront,0.847,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:47.073736 +AWS,ca-central-1,c5a.8xlarge,reserved_3y,partial_upfront,0.847,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:24.689026 +AWS,ca-central-1,c5a.8xlarge,spot,NA,0.518822,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188282 +AWS,ca-central-1,c5a.xlarge,on_demand,NA,0.168,USD,AWS Pricing API,2025-11-30T09:09:13.717760 +AWS,ca-central-1,c5a.xlarge,reserved_1y,all_upfront,0.120662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:42.919813 +AWS,ca-central-1,c5a.xlarge,reserved_1y,no_upfront,0.120662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:30.287537 +AWS,ca-central-1,c5a.xlarge,reserved_1y,partial_upfront,0.120662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:06.243072 +AWS,ca-central-1,c5a.xlarge,reserved_3y,all_upfront,0.040221,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:33.629185 +AWS,ca-central-1,c5a.xlarge,reserved_3y,no_upfront,0.040221,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:37.870960 +AWS,ca-central-1,c5a.xlarge,reserved_3y,partial_upfront,0.040221,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:15.700280 +AWS,ca-central-1,c5a.xlarge,spot,NA,0.080608,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187982 +AWS,ca-central-1,c5d.12xlarge,on_demand,NA,2.544,USD,AWS Pricing API,2025-11-30T09:10:20.280240 +AWS,ca-central-1,c5d.12xlarge,reserved_1y,all_upfront,1.49589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:49.360497 +AWS,ca-central-1,c5d.12xlarge,reserved_1y,no_upfront,1.49589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:37.361989 +AWS,ca-central-1,c5d.12xlarge,reserved_1y,partial_upfront,1.49589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:12.392960 +AWS,ca-central-1,c5d.12xlarge,reserved_3y,all_upfront,0.49863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:38.497905 +AWS,ca-central-1,c5d.12xlarge,reserved_3y,no_upfront,0.49863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:45.474151 +AWS,ca-central-1,c5d.12xlarge,reserved_3y,partial_upfront,0.49863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:21.706142 +AWS,ca-central-1,c5d.12xlarge,spot,NA,0.833225,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198000 +AWS,ca-central-1,c5d.18xlarge,on_demand,NA,3.816,USD,AWS Pricing API,2025-11-30T09:09:43.665679 +AWS,ca-central-1,c5d.18xlarge,reserved_1y,all_upfront,2.746804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:12.916986 +AWS,ca-central-1,c5d.18xlarge,reserved_1y,no_upfront,2.746804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:00.536957 +AWS,ca-central-1,c5d.18xlarge,reserved_1y,partial_upfront,2.746804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:36.026834 +AWS,ca-central-1,c5d.18xlarge,reserved_3y,all_upfront,0.915601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:02.903330 +AWS,ca-central-1,c5d.18xlarge,reserved_3y,no_upfront,0.915601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:08.394152 +AWS,ca-central-1,c5d.18xlarge,reserved_3y,partial_upfront,0.915601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:45.468216 +AWS,ca-central-1,c5d.18xlarge,spot,NA,1.126826,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197160 +AWS,ca-central-1,c5d.24xlarge,on_demand,NA,5.088,USD,AWS Pricing API,2025-11-30T09:09:16.417114 +AWS,ca-central-1,c5d.24xlarge,reserved_1y,all_upfront,3.737607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:45.649901 +AWS,ca-central-1,c5d.24xlarge,reserved_1y,no_upfront,3.737607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:33.013152 +AWS,ca-central-1,c5d.24xlarge,reserved_1y,partial_upfront,3.737607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:08.941870 +AWS,ca-central-1,c5d.24xlarge,reserved_3y,all_upfront,2.491869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:36.264215 +AWS,ca-central-1,c5d.24xlarge,reserved_3y,no_upfront,2.491869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:40.633984 +AWS,ca-central-1,c5d.24xlarge,reserved_3y,partial_upfront,2.491869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:18.372654 +AWS,ca-central-1,c5d.24xlarge,spot,NA,1.747799,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188032 +AWS,ca-central-1,c5d.2xlarge,on_demand,NA,0.424,USD,AWS Pricing API,2025-11-30T09:10:04.011193 +AWS,ca-central-1,c5d.2xlarge,reserved_1y,all_upfront,0.327,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:33.141349 +AWS,ca-central-1,c5d.2xlarge,reserved_1y,no_upfront,0.327,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:21.029059 +AWS,ca-central-1,c5d.2xlarge,reserved_1y,partial_upfront,0.327,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:56.196987 +AWS,ca-central-1,c5d.2xlarge,reserved_3y,all_upfront,0.327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:22.639528 +AWS,ca-central-1,c5d.2xlarge,reserved_3y,no_upfront,0.327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:28.958840 +AWS,ca-central-1,c5d.2xlarge,reserved_3y,partial_upfront,0.327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:05.477603 +AWS,ca-central-1,c5d.2xlarge,spot,NA,0.182333,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197675 +AWS,ca-central-1,c5d.4xlarge,on_demand,NA,0.848,USD,AWS Pricing API,2025-11-30T09:09:23.980907 +AWS,ca-central-1,c5d.4xlarge,reserved_1y,all_upfront,0.534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:53.202913 +AWS,ca-central-1,c5d.4xlarge,reserved_1y,no_upfront,0.534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:40.646338 +AWS,ca-central-1,c5d.4xlarge,reserved_1y,partial_upfront,0.534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:16.495836 +AWS,ca-central-1,c5d.4xlarge,reserved_3y,all_upfront,0.534,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:43.708661 +AWS,ca-central-1,c5d.4xlarge,reserved_3y,no_upfront,0.534,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:48.327899 +AWS,ca-central-1,c5d.4xlarge,reserved_3y,partial_upfront,0.534,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:25.894285 +AWS,ca-central-1,c5d.4xlarge,spot,NA,0.321691,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188320 +AWS,ca-central-1,c5d.9xlarge,on_demand,NA,1.908,USD,AWS Pricing API,2025-11-30T09:09:53.384568 +AWS,ca-central-1,c5d.9xlarge,reserved_1y,all_upfront,1.121918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:22.718499 +AWS,ca-central-1,c5d.9xlarge,reserved_1y,no_upfront,1.121918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:10.456809 +AWS,ca-central-1,c5d.9xlarge,reserved_1y,partial_upfront,1.121918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:45.769539 +AWS,ca-central-1,c5d.9xlarge,reserved_3y,all_upfront,0.373973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:12.428524 +AWS,ca-central-1,c5d.9xlarge,reserved_3y,no_upfront,0.373973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:18.324291 +AWS,ca-central-1,c5d.9xlarge,reserved_3y,partial_upfront,0.373973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:55.104295 +AWS,ca-central-1,c5d.9xlarge,spot,NA,0.651945,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197418 +AWS,ca-central-1,c5d.xlarge,on_demand,NA,0.212,USD,AWS Pricing API,2025-11-30T09:09:49.075501 +AWS,ca-central-1,c5d.xlarge,reserved_1y,all_upfront,0.164174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:18.430102 +AWS,ca-central-1,c5d.xlarge,reserved_1y,no_upfront,0.164174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:06.077461 +AWS,ca-central-1,c5d.xlarge,reserved_1y,partial_upfront,0.164174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:41.438694 +AWS,ca-central-1,c5d.xlarge,reserved_3y,all_upfront,0.082058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:08.188131 +AWS,ca-central-1,c5d.xlarge,reserved_3y,no_upfront,0.082058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:13.900820 +AWS,ca-central-1,c5d.xlarge,reserved_3y,partial_upfront,0.082058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:50.829277 +AWS,ca-central-1,c5d.xlarge,spot,NA,0.087956,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197343 +AWS,ca-central-1,c5n.18xlarge,on_demand,NA,4.248,USD,AWS Pricing API,2025-11-30T09:10:09.664825 +AWS,ca-central-1,c5n.18xlarge,reserved_1y,all_upfront,3.121731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:38.674729 +AWS,ca-central-1,c5n.18xlarge,reserved_1y,no_upfront,3.121731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:26.614580 +AWS,ca-central-1,c5n.18xlarge,reserved_1y,partial_upfront,3.121731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:01.728837 +AWS,ca-central-1,c5n.18xlarge,reserved_3y,all_upfront,2.081244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:28.039028 +AWS,ca-central-1,c5n.18xlarge,reserved_3y,no_upfront,2.081244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:34.605933 +AWS,ca-central-1,c5n.18xlarge,reserved_3y,partial_upfront,2.081244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:11.069189 +AWS,ca-central-1,c5n.18xlarge,spot,NA,1.352129,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197769 +AWS,ca-central-1,c5n.2xlarge,on_demand,NA,0.472,USD,AWS Pricing API,2025-11-30T09:10:19.740070 +AWS,ca-central-1,c5n.2xlarge,reserved_1y,all_upfront,0.364,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:48.817970 +AWS,ca-central-1,c5n.2xlarge,reserved_1y,no_upfront,0.364,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:36.812086 +AWS,ca-central-1,c5n.2xlarge,reserved_1y,partial_upfront,0.364,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:11.849522 +AWS,ca-central-1,c5n.2xlarge,reserved_3y,all_upfront,0.364,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:37.960295 +AWS,ca-central-1,c5n.2xlarge,reserved_3y,no_upfront,0.364,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:44.920529 +AWS,ca-central-1,c5n.2xlarge,reserved_3y,partial_upfront,0.364,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:21.177479 +AWS,ca-central-1,c5n.2xlarge,spot,NA,0.183942,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198021 +AWS,ca-central-1,c5n.4xlarge,on_demand,NA,0.944,USD,AWS Pricing API,2025-11-30T09:09:55.815722 +AWS,ca-central-1,c5n.4xlarge,reserved_1y,all_upfront,0.693804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:25.148949 +AWS,ca-central-1,c5n.4xlarge,reserved_1y,no_upfront,0.693804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:12.916421 +AWS,ca-central-1,c5n.4xlarge,reserved_1y,partial_upfront,0.693804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:48.217149 +AWS,ca-central-1,c5n.4xlarge,reserved_3y,all_upfront,0.462601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:14.814632 +AWS,ca-central-1,c5n.4xlarge,reserved_3y,no_upfront,0.462601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:20.802134 +AWS,ca-central-1,c5n.4xlarge,reserved_3y,partial_upfront,0.462601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:57.510260 +AWS,ca-central-1,c5n.4xlarge,spot,NA,0.368955,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197460 +AWS,ca-central-1,c5n.9xlarge,on_demand,NA,2.124,USD,AWS Pricing API,2025-11-30T09:10:09.529910 +AWS,ca-central-1,c5n.9xlarge,reserved_1y,all_upfront,1.529452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:38.540478 +AWS,ca-central-1,c5n.9xlarge,reserved_1y,no_upfront,1.529452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:26.478037 +AWS,ca-central-1,c5n.9xlarge,reserved_1y,partial_upfront,1.529452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:01.591698 +AWS,ca-central-1,c5n.9xlarge,reserved_3y,all_upfront,0.509817,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:27.905999 +AWS,ca-central-1,c5n.9xlarge,reserved_3y,no_upfront,0.509817,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:34.466780 +AWS,ca-central-1,c5n.9xlarge,reserved_3y,partial_upfront,0.509817,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:10.932427 +AWS,ca-central-1,c5n.9xlarge,spot,NA,0.726939,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197777 +AWS,ca-central-1,c5n.metal,on_demand,NA,4.248,USD,AWS Pricing API,2025-11-30T09:09:18.036010 +AWS,ca-central-1,c5n.metal,reserved_1y,all_upfront,3.278,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:47.275410 +AWS,ca-central-1,c5n.metal,reserved_1y,no_upfront,3.278,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:34.654949 +AWS,ca-central-1,c5n.metal,reserved_1y,partial_upfront,3.278,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:10.551923 +AWS,ca-central-1,c5n.metal,reserved_3y,all_upfront,3.278,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:37.857245 +AWS,ca-central-1,c5n.metal,reserved_3y,no_upfront,3.278,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:42.279946 +AWS,ca-central-1,c5n.metal,reserved_3y,partial_upfront,3.278,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:19.984356 +AWS,ca-central-1,c5n.metal,spot,NA,1.340193,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188116 +AWS,ca-central-1,c5n.xlarge,on_demand,NA,0.236,USD,AWS Pricing API,2025-11-30T09:10:11.530179 +AWS,ca-central-1,c5n.xlarge,reserved_1y,all_upfront,0.182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:40.571590 +AWS,ca-central-1,c5n.xlarge,reserved_1y,no_upfront,0.182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:28.526927 +AWS,ca-central-1,c5n.xlarge,reserved_1y,partial_upfront,0.182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:03.640075 +AWS,ca-central-1,c5n.xlarge,reserved_3y,all_upfront,0.182,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:29.883791 +AWS,ca-central-1,c5n.xlarge,reserved_3y,no_upfront,0.182,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:36.521791 +AWS,ca-central-1,c5n.xlarge,reserved_3y,partial_upfront,0.182,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:12.933834 +AWS,ca-central-1,c5n.xlarge,spot,NA,0.094386,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197819 +AWS,ca-central-1,c6g.12xlarge,on_demand,NA,1.7856,USD,AWS Pricing API,2025-11-30T09:09:23.312606 +AWS,ca-central-1,c6g.12xlarge,reserved_1y,all_upfront,1.049886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:52.528534 +AWS,ca-central-1,c6g.12xlarge,reserved_1y,no_upfront,1.049886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:39.955514 +AWS,ca-central-1,c6g.12xlarge,reserved_1y,partial_upfront,1.049886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:15.822807 +AWS,ca-central-1,c6g.12xlarge,reserved_3y,all_upfront,0.349962,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:43.047053 +AWS,ca-central-1,c6g.12xlarge,reserved_3y,no_upfront,0.349962,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:47.633152 +AWS,ca-central-1,c6g.12xlarge,reserved_3y,partial_upfront,0.349962,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:25.225843 +AWS,ca-central-1,c6g.12xlarge,spot,NA,0.491718,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188276 +AWS,ca-central-1,c6g.16xlarge,on_demand,NA,2.3808,USD,AWS Pricing API,2025-11-30T09:09:41.197212 +AWS,ca-central-1,c6g.16xlarge,reserved_1y,all_upfront,1.399886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:10.485774 +AWS,ca-central-1,c6g.16xlarge,reserved_1y,no_upfront,1.399886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:58.035285 +AWS,ca-central-1,c6g.16xlarge,reserved_1y,partial_upfront,1.399886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:33.589854 +AWS,ca-central-1,c6g.16xlarge,reserved_3y,all_upfront,0.466629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:00.509392 +AWS,ca-central-1,c6g.16xlarge,reserved_3y,no_upfront,0.466629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:05.901115 +AWS,ca-central-1,c6g.16xlarge,reserved_3y,partial_upfront,0.466629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:43.040626 +AWS,ca-central-1,c6g.16xlarge,spot,NA,0.672488,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188954 +AWS,ca-central-1,c6g.2xlarge,on_demand,NA,0.2976,USD,AWS Pricing API,2025-11-30T09:09:53.241203 +AWS,ca-central-1,c6g.2xlarge,reserved_1y,all_upfront,0.175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:22.585091 +AWS,ca-central-1,c6g.2xlarge,reserved_1y,no_upfront,0.175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:10.315520 +AWS,ca-central-1,c6g.2xlarge,reserved_1y,partial_upfront,0.175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:45.635137 +AWS,ca-central-1,c6g.2xlarge,reserved_3y,all_upfront,0.058333,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:12.296700 +AWS,ca-central-1,c6g.2xlarge,reserved_3y,no_upfront,0.058333,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:18.186493 +AWS,ca-central-1,c6g.2xlarge,reserved_3y,partial_upfront,0.058333,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:54.964869 +AWS,ca-central-1,c6g.2xlarge,spot,NA,0.124249,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197414 +AWS,ca-central-1,c6g.4xlarge,on_demand,NA,0.5952,USD,AWS Pricing API,2025-11-30T09:10:12.346134 +AWS,ca-central-1,c6g.4xlarge,reserved_1y,all_upfront,0.783904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:41.380048 +AWS,ca-central-1,c6g.4xlarge,reserved_1y,no_upfront,0.783904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:29.344531 +AWS,ca-central-1,c6g.4xlarge,reserved_1y,partial_upfront,0.783904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:04.450784 +AWS,ca-central-1,c6g.4xlarge,reserved_3y,all_upfront,0.261301,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:30.677105 +AWS,ca-central-1,c6g.4xlarge,reserved_3y,no_upfront,0.261301,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:37.345739 +AWS,ca-central-1,c6g.4xlarge,reserved_3y,partial_upfront,0.261301,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:13.742623 +AWS,ca-central-1,c6g.4xlarge,spot,NA,0.209552,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197823 +AWS,ca-central-1,c6g.8xlarge,on_demand,NA,1.1904,USD,AWS Pricing API,2025-11-30T09:09:39.564010 +AWS,ca-central-1,c6g.8xlarge,reserved_1y,all_upfront,1.0666,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:08.836361 +AWS,ca-central-1,c6g.8xlarge,reserved_1y,no_upfront,1.0666,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:56.395196 +AWS,ca-central-1,c6g.8xlarge,reserved_1y,partial_upfront,1.0666,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:31.978406 +AWS,ca-central-1,c6g.8xlarge,reserved_3y,all_upfront,0.533267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:58.915766 +AWS,ca-central-1,c6g.8xlarge,reserved_3y,no_upfront,0.533267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:04.248129 +AWS,ca-central-1,c6g.8xlarge,reserved_3y,partial_upfront,0.533267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:41.409716 +AWS,ca-central-1,c6g.8xlarge,spot,NA,0.422743,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188875 +AWS,ca-central-1,c6g.xlarge,on_demand,NA,0.1488,USD,AWS Pricing API,2025-11-30T09:10:17.732000 +AWS,ca-central-1,c6g.xlarge,reserved_1y,all_upfront,0.1145,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:46.780662 +AWS,ca-central-1,c6g.xlarge,reserved_1y,no_upfront,0.1145,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:34.771093 +AWS,ca-central-1,c6g.xlarge,reserved_1y,partial_upfront,0.1145,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:09.832282 +AWS,ca-central-1,c6g.xlarge,reserved_3y,all_upfront,0.1145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:35.983221 +AWS,ca-central-1,c6g.xlarge,reserved_3y,no_upfront,0.1145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:42.859005 +AWS,ca-central-1,c6g.xlarge,reserved_3y,partial_upfront,0.1145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:19.140840 +AWS,ca-central-1,c6g.xlarge,spot,NA,0.05889,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197953 +AWS,ca-central-1,c6gd.12xlarge,on_demand,NA,2.0352,USD,AWS Pricing API,2025-11-30T09:09:18.172472 +AWS,ca-central-1,c6gd.12xlarge,reserved_1y,all_upfront,1.2822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:47.408879 +AWS,ca-central-1,c6gd.12xlarge,reserved_1y,no_upfront,1.2822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:34.790588 +AWS,ca-central-1,c6gd.12xlarge,reserved_1y,partial_upfront,1.2822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:10.686339 +AWS,ca-central-1,c6gd.12xlarge,reserved_3y,all_upfront,1.2822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:37.987742 +AWS,ca-central-1,c6gd.12xlarge,reserved_3y,no_upfront,1.2822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:42.415937 +AWS,ca-central-1,c6gd.12xlarge,reserved_3y,partial_upfront,1.2822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:20.137822 +AWS,ca-central-1,c6gd.12xlarge,spot,NA,0.605797,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188083 +AWS,ca-central-1,c6gd.16xlarge,on_demand,NA,2.7136,USD,AWS Pricing API,2025-11-30T09:09:56.368456 +AWS,ca-central-1,c6gd.16xlarge,reserved_1y,all_upfront,2.0929,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:25.688527 +AWS,ca-central-1,c6gd.16xlarge,reserved_1y,no_upfront,2.0929,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:13.461646 +AWS,ca-central-1,c6gd.16xlarge,reserved_1y,partial_upfront,2.0929,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:48.761542 +AWS,ca-central-1,c6gd.16xlarge,reserved_3y,all_upfront,2.0929,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:15.339290 +AWS,ca-central-1,c6gd.16xlarge,reserved_3y,no_upfront,2.0929,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:21.349915 +AWS,ca-central-1,c6gd.16xlarge,reserved_3y,partial_upfront,2.0929,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:58.049305 +AWS,ca-central-1,c6gd.16xlarge,spot,NA,0.746748,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197506 +AWS,ca-central-1,c6gd.2xlarge,on_demand,NA,0.3392,USD,AWS Pricing API,2025-11-30T09:10:06.873148 +AWS,ca-central-1,c6gd.2xlarge,reserved_1y,all_upfront,0.249143,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:35.990119 +AWS,ca-central-1,c6gd.2xlarge,reserved_1y,no_upfront,0.249143,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:23.877016 +AWS,ca-central-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.249143,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:59.034248 +AWS,ca-central-1,c6gd.2xlarge,reserved_3y,all_upfront,0.166114,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:25.405558 +AWS,ca-central-1,c6gd.2xlarge,reserved_3y,no_upfront,0.166114,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:31.867957 +AWS,ca-central-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.166114,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:08.283872 +AWS,ca-central-1,c6gd.2xlarge,spot,NA,0.096948,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197708 +AWS,ca-central-1,c6gd.4xlarge,on_demand,NA,0.6784,USD,AWS Pricing API,2025-11-30T09:09:46.235748 +AWS,ca-central-1,c6gd.4xlarge,reserved_1y,all_upfront,0.3262,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:15.584839 +AWS,ca-central-1,c6gd.4xlarge,reserved_1y,no_upfront,0.3262,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:03.170083 +AWS,ca-central-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.3262,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:38.625782 +AWS,ca-central-1,c6gd.4xlarge,reserved_3y,all_upfront,0.3262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:05.418420 +AWS,ca-central-1,c6gd.4xlarge,reserved_3y,no_upfront,0.3262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:10.997263 +AWS,ca-central-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.3262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:47.999045 +AWS,ca-central-1,c6gd.4xlarge,spot,NA,0.222957,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197277 +AWS,ca-central-1,c6gd.8xlarge,on_demand,NA,1.3568,USD,AWS Pricing API,2025-11-30T09:10:15.201569 +AWS,ca-central-1,c6gd.8xlarge,reserved_1y,all_upfront,0.814078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:44.211077 +AWS,ca-central-1,c6gd.8xlarge,reserved_1y,no_upfront,0.814078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:32.201202 +AWS,ca-central-1,c6gd.8xlarge,reserved_1y,partial_upfront,0.814078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:07.288496 +AWS,ca-central-1,c6gd.8xlarge,reserved_3y,all_upfront,0.542693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:33.478034 +AWS,ca-central-1,c6gd.8xlarge,reserved_3y,no_upfront,0.542693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:40.241706 +AWS,ca-central-1,c6gd.8xlarge,reserved_3y,partial_upfront,0.542693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:16.612641 +AWS,ca-central-1,c6gd.8xlarge,spot,NA,0.427256,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197907 +AWS,ca-central-1,c6gd.xlarge,on_demand,NA,0.1696,USD,AWS Pricing API,2025-11-30T09:10:06.198249 +AWS,ca-central-1,c6gd.xlarge,reserved_1y,all_upfront,0.0816,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:35.320680 +AWS,ca-central-1,c6gd.xlarge,reserved_1y,no_upfront,0.0816,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:23.200956 +AWS,ca-central-1,c6gd.xlarge,reserved_1y,partial_upfront,0.0816,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:58.361319 +AWS,ca-central-1,c6gd.xlarge,reserved_3y,all_upfront,0.0816,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:24.743562 +AWS,ca-central-1,c6gd.xlarge,reserved_3y,no_upfront,0.0816,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:31.172708 +AWS,ca-central-1,c6gd.xlarge,reserved_3y,partial_upfront,0.0816,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:07.618453 +AWS,ca-central-1,c6gd.xlarge,spot,NA,0.062743,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197712 +AWS,ca-central-1,c6i.12xlarge,on_demand,NA,2.232,USD,AWS Pricing API,2025-11-30T09:10:06.061721 +AWS,ca-central-1,c6i.12xlarge,reserved_1y,all_upfront,1.580594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:35.184913 +AWS,ca-central-1,c6i.12xlarge,reserved_1y,no_upfront,1.580594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:23.063104 +AWS,ca-central-1,c6i.12xlarge,reserved_1y,partial_upfront,1.580594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:58.224387 +AWS,ca-central-1,c6i.12xlarge,reserved_3y,all_upfront,0.526865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:24.604603 +AWS,ca-central-1,c6i.12xlarge,reserved_3y,no_upfront,0.526865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:31.034205 +AWS,ca-central-1,c6i.12xlarge,reserved_3y,partial_upfront,0.526865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:07.483714 +AWS,ca-central-1,c6i.12xlarge,spot,NA,0.677438,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197724 +AWS,ca-central-1,c6i.16xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T09:09:40.777165 +AWS,ca-central-1,c6i.16xlarge,reserved_1y,all_upfront,2.25792,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:10.069509 +AWS,ca-central-1,c6i.16xlarge,reserved_1y,no_upfront,2.25792,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:57.616899 +AWS,ca-central-1,c6i.16xlarge,reserved_1y,partial_upfront,2.25792,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:33.189352 +AWS,ca-central-1,c6i.16xlarge,reserved_3y,all_upfront,2.25792,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:00.107461 +AWS,ca-central-1,c6i.16xlarge,reserved_3y,no_upfront,2.25792,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:05.487890 +AWS,ca-central-1,c6i.16xlarge,reserved_3y,partial_upfront,2.25792,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:42.635926 +AWS,ca-central-1,c6i.16xlarge,spot,NA,0.908352,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188929 +AWS,ca-central-1,c6i.24xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T09:09:35.501742 +AWS,ca-central-1,c6i.24xlarge,reserved_1y,all_upfront,2.765982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:04.753999 +AWS,ca-central-1,c6i.24xlarge,reserved_1y,no_upfront,2.765982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:52.285280 +AWS,ca-central-1,c6i.24xlarge,reserved_1y,partial_upfront,2.765982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:27.958601 +AWS,ca-central-1,c6i.24xlarge,reserved_3y,all_upfront,0.921994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:54.952900 +AWS,ca-central-1,c6i.24xlarge,reserved_3y,no_upfront,0.921994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:00.076379 +AWS,ca-central-1,c6i.24xlarge,reserved_3y,partial_upfront,0.921994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:37.390756 +AWS,ca-central-1,c6i.24xlarge,spot,NA,1.285002,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188770 +AWS,ca-central-1,c6i.2xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T09:09:19.367129 +AWS,ca-central-1,c6i.2xlarge,reserved_1y,all_upfront,0.26347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:48.603700 +AWS,ca-central-1,c6i.2xlarge,reserved_1y,no_upfront,0.26347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:36.016463 +AWS,ca-central-1,c6i.2xlarge,reserved_1y,partial_upfront,0.26347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:11.912983 +AWS,ca-central-1,c6i.2xlarge,reserved_3y,all_upfront,0.087823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:39.186577 +AWS,ca-central-1,c6i.2xlarge,reserved_3y,no_upfront,0.087823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:43.641723 +AWS,ca-central-1,c6i.2xlarge,reserved_3y,partial_upfront,0.087823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:21.340072 +AWS,ca-central-1,c6i.2xlarge,spot,NA,0.179696,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188129 +AWS,ca-central-1,c6i.32xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T09:10:10.867294 +AWS,ca-central-1,c6i.32xlarge,reserved_1y,all_upfront,3.95136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:39.894139 +AWS,ca-central-1,c6i.32xlarge,reserved_1y,no_upfront,3.95136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:27.841464 +AWS,ca-central-1,c6i.32xlarge,reserved_1y,partial_upfront,3.95136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:02.948444 +AWS,ca-central-1,c6i.32xlarge,reserved_3y,all_upfront,3.95136,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:29.223096 +AWS,ca-central-1,c6i.32xlarge,reserved_3y,no_upfront,3.95136,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:35.834771 +AWS,ca-central-1,c6i.32xlarge,reserved_3y,partial_upfront,3.95136,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:12.261830 +AWS,ca-central-1,c6i.32xlarge,spot,NA,1.963047,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197806 +AWS,ca-central-1,c6i.4xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T09:09:15.470324 +AWS,ca-central-1,c6i.4xlarge,reserved_1y,all_upfront,0.460959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:44.675133 +AWS,ca-central-1,c6i.4xlarge,reserved_1y,no_upfront,0.460959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:32.061149 +AWS,ca-central-1,c6i.4xlarge,reserved_1y,partial_upfront,0.460959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:07.997411 +AWS,ca-central-1,c6i.4xlarge,reserved_3y,all_upfront,0.153653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:35.344725 +AWS,ca-central-1,c6i.4xlarge,reserved_3y,no_upfront,0.153653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:39.663098 +AWS,ca-central-1,c6i.4xlarge,reserved_3y,partial_upfront,0.153653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:17.425159 +AWS,ca-central-1,c6i.4xlarge,spot,NA,0.268163,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187994 +AWS,ca-central-1,c6i.8xlarge,on_demand,NA,1.488,USD,AWS Pricing API,2025-11-30T09:09:29.131213 +AWS,ca-central-1,c6i.8xlarge,reserved_1y,all_upfront,1.12896,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:58.362530 +AWS,ca-central-1,c6i.8xlarge,reserved_1y,no_upfront,1.12896,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:45.864054 +AWS,ca-central-1,c6i.8xlarge,reserved_1y,partial_upfront,1.12896,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:21.620269 +AWS,ca-central-1,c6i.8xlarge,reserved_3y,all_upfront,1.12896,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:48.739935 +AWS,ca-central-1,c6i.8xlarge,reserved_3y,no_upfront,1.12896,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:53.594307 +AWS,ca-central-1,c6i.8xlarge,reserved_3y,partial_upfront,1.12896,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:31.085383 +AWS,ca-central-1,c6i.8xlarge,spot,NA,0.507791,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188577 +AWS,ca-central-1,c6i.xlarge,on_demand,NA,0.186,USD,AWS Pricing API,2025-11-30T09:09:33.329660 +AWS,ca-central-1,c6i.xlarge,reserved_1y,all_upfront,0.134437,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:02.563261 +AWS,ca-central-1,c6i.xlarge,reserved_1y,no_upfront,0.134437,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:50.094506 +AWS,ca-central-1,c6i.xlarge,reserved_1y,partial_upfront,0.134437,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:25.794541 +AWS,ca-central-1,c6i.xlarge,reserved_3y,all_upfront,0.089612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:52.827475 +AWS,ca-central-1,c6i.xlarge,reserved_3y,no_upfront,0.089612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:57.877840 +AWS,ca-central-1,c6i.xlarge,reserved_3y,partial_upfront,0.089612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:35.229693 +AWS,ca-central-1,c6i.xlarge,spot,NA,0.101368,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188696 +AWS,ca-central-1,c6id.12xlarge,on_demand,NA,2.6712,USD,AWS Pricing API,2025-11-30T09:10:01.814771 +AWS,ca-central-1,c6id.12xlarge,reserved_1y,all_upfront,1.570662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:30.964145 +AWS,ca-central-1,c6id.12xlarge,reserved_1y,no_upfront,1.570662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:18.838978 +AWS,ca-central-1,c6id.12xlarge,reserved_1y,partial_upfront,1.570662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:54.031083 +AWS,ca-central-1,c6id.12xlarge,reserved_3y,all_upfront,0.523554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:20.531270 +AWS,ca-central-1,c6id.12xlarge,reserved_3y,no_upfront,0.523554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:26.742858 +AWS,ca-central-1,c6id.12xlarge,reserved_3y,partial_upfront,0.523554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:03.325294 +AWS,ca-central-1,c6id.12xlarge,spot,NA,0.817936,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197629 +AWS,ca-central-1,c6id.16xlarge,on_demand,NA,3.5616,USD,AWS Pricing API,2025-11-30T09:10:11.395753 +AWS,ca-central-1,c6id.16xlarge,reserved_1y,all_upfront,2.136973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:40.434889 +AWS,ca-central-1,c6id.16xlarge,reserved_1y,no_upfront,2.136973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:28.386703 +AWS,ca-central-1,c6id.16xlarge,reserved_1y,partial_upfront,2.136973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:03.506937 +AWS,ca-central-1,c6id.16xlarge,reserved_3y,all_upfront,1.424644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:29.748881 +AWS,ca-central-1,c6id.16xlarge,reserved_3y,no_upfront,1.424644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:36.384279 +AWS,ca-central-1,c6id.16xlarge,reserved_3y,partial_upfront,1.424644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:12.800323 +AWS,ca-central-1,c6id.16xlarge,spot,NA,1.065421,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197844 +AWS,ca-central-1,c6id.24xlarge,on_demand,NA,5.3424,USD,AWS Pricing API,2025-11-30T09:09:29.544205 +AWS,ca-central-1,c6id.24xlarge,reserved_1y,all_upfront,4.136836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:58.767211 +AWS,ca-central-1,c6id.24xlarge,reserved_1y,no_upfront,4.136836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:46.276346 +AWS,ca-central-1,c6id.24xlarge,reserved_1y,partial_upfront,4.136836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:22.022292 +AWS,ca-central-1,c6id.24xlarge,reserved_3y,all_upfront,2.068419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:49.149102 +AWS,ca-central-1,c6id.24xlarge,reserved_3y,no_upfront,2.068419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:54.008857 +AWS,ca-central-1,c6id.24xlarge,reserved_3y,partial_upfront,2.068419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:31.485666 +AWS,ca-central-1,c6id.24xlarge,spot,NA,2.578149,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188584 +AWS,ca-central-1,c6id.2xlarge,on_demand,NA,0.4452,USD,AWS Pricing API,2025-11-30T09:10:21.632882 +AWS,ca-central-1,c6id.2xlarge,reserved_1y,all_upfront,0.28048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:50.717368 +AWS,ca-central-1,c6id.2xlarge,reserved_1y,no_upfront,0.28048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:38.732464 +AWS,ca-central-1,c6id.2xlarge,reserved_1y,partial_upfront,0.28048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:13.740752 +AWS,ca-central-1,c6id.2xlarge,reserved_3y,all_upfront,0.28048,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:39.821326 +AWS,ca-central-1,c6id.2xlarge,reserved_3y,no_upfront,0.28048,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:46.859679 +AWS,ca-central-1,c6id.2xlarge,reserved_3y,partial_upfront,0.28048,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:23.039241 +AWS,ca-central-1,c6id.2xlarge,spot,NA,0.19191,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198025 +AWS,ca-central-1,c6id.32xlarge,on_demand,NA,7.1232,USD,AWS Pricing API,2025-11-30T09:09:17.489681 +AWS,ca-central-1,c6id.32xlarge,reserved_1y,all_upfront,3.42556,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:46.728689 +AWS,ca-central-1,c6id.32xlarge,reserved_1y,no_upfront,3.42556,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:34.099984 +AWS,ca-central-1,c6id.32xlarge,reserved_1y,partial_upfront,3.42556,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:10.015977 +AWS,ca-central-1,c6id.32xlarge,reserved_3y,all_upfront,3.42556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:37.315037 +AWS,ca-central-1,c6id.32xlarge,reserved_3y,no_upfront,3.42556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:41.727899 +AWS,ca-central-1,c6id.32xlarge,reserved_3y,partial_upfront,3.42556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:19.434957 +AWS,ca-central-1,c6id.32xlarge,spot,NA,3.902418,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188122 +AWS,ca-central-1,c6id.4xlarge,on_demand,NA,0.8904,USD,AWS Pricing API,2025-11-30T09:09:24.543468 +AWS,ca-central-1,c6id.4xlarge,reserved_1y,all_upfront,0.523516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:53.739995 +AWS,ca-central-1,c6id.4xlarge,reserved_1y,no_upfront,0.523516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:41.199253 +AWS,ca-central-1,c6id.4xlarge,reserved_1y,partial_upfront,0.523516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:17.045312 +AWS,ca-central-1,c6id.4xlarge,reserved_3y,all_upfront,0.174505,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:44.238366 +AWS,ca-central-1,c6id.4xlarge,reserved_3y,no_upfront,0.174505,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:48.877763 +AWS,ca-central-1,c6id.4xlarge,reserved_3y,partial_upfront,0.174505,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:26.440811 +AWS,ca-central-1,c6id.4xlarge,spot,NA,0.316081,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188341 +AWS,ca-central-1,c6id.8xlarge,on_demand,NA,1.7808,USD,AWS Pricing API,2025-11-30T09:09:57.587286 +AWS,ca-central-1,c6id.8xlarge,reserved_1y,all_upfront,1.307821,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:26.901631 +AWS,ca-central-1,c6id.8xlarge,reserved_1y,no_upfront,1.307821,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:14.712074 +AWS,ca-central-1,c6id.8xlarge,reserved_1y,partial_upfront,1.307821,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:49.983358 +AWS,ca-central-1,c6id.8xlarge,reserved_3y,all_upfront,0.8719,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:16.531110 +AWS,ca-central-1,c6id.8xlarge,reserved_3y,no_upfront,0.8719,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:22.583592 +AWS,ca-central-1,c6id.8xlarge,reserved_3y,partial_upfront,0.8719,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:59.278180 +AWS,ca-central-1,c6id.8xlarge,spot,NA,0.572105,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197522 +AWS,ca-central-1,c6id.xlarge,on_demand,NA,0.2226,USD,AWS Pricing API,2025-11-30T09:10:16.540328 +AWS,ca-central-1,c6id.xlarge,reserved_1y,all_upfront,0.17166,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:45.560682 +AWS,ca-central-1,c6id.xlarge,reserved_1y,no_upfront,0.17166,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:33.556685 +AWS,ca-central-1,c6id.xlarge,reserved_1y,partial_upfront,0.17166,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:08.635912 +AWS,ca-central-1,c6id.xlarge,reserved_3y,all_upfront,0.17166,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:34.800380 +AWS,ca-central-1,c6id.xlarge,reserved_3y,no_upfront,0.17166,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:41.622172 +AWS,ca-central-1,c6id.xlarge,reserved_3y,partial_upfront,0.17166,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:17.950466 +AWS,ca-central-1,c6id.xlarge,spot,NA,0.086971,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197920 +AWS,ca-central-1,c6in.12xlarge,on_demand,NA,2.9736,USD,AWS Pricing API,2025-11-30T09:09:22.901581 +AWS,ca-central-1,c6in.12xlarge,reserved_1y,all_upfront,2.141324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:52.120857 +AWS,ca-central-1,c6in.12xlarge,reserved_1y,no_upfront,2.141324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:39.547881 +AWS,ca-central-1,c6in.12xlarge,reserved_1y,partial_upfront,2.141324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:15.413852 +AWS,ca-central-1,c6in.12xlarge,reserved_3y,all_upfront,0.713775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:42.640831 +AWS,ca-central-1,c6in.12xlarge,reserved_3y,no_upfront,0.713775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:47.212581 +AWS,ca-central-1,c6in.12xlarge,reserved_3y,partial_upfront,0.713775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:24.824343 +AWS,ca-central-1,c6in.12xlarge,spot,NA,0.975675,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188259 +AWS,ca-central-1,c6in.16xlarge,on_demand,NA,3.9648,USD,AWS Pricing API,2025-11-30T09:09:34.276705 +AWS,ca-central-1,c6in.16xlarge,reserved_1y,all_upfront,3.059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:03.529567 +AWS,ca-central-1,c6in.16xlarge,reserved_1y,no_upfront,3.059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:51.049853 +AWS,ca-central-1,c6in.16xlarge,reserved_1y,partial_upfront,3.059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:26.748117 +AWS,ca-central-1,c6in.16xlarge,reserved_3y,all_upfront,3.059,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:53.753436 +AWS,ca-central-1,c6in.16xlarge,reserved_3y,no_upfront,3.059,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:58.841133 +AWS,ca-central-1,c6in.16xlarge,reserved_3y,partial_upfront,3.059,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:36.184935 +AWS,ca-central-1,c6in.16xlarge,spot,NA,1.144901,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188689 +AWS,ca-central-1,c6in.24xlarge,on_demand,NA,5.9472,USD,AWS Pricing API,2025-11-30T09:09:43.804817 +AWS,ca-central-1,c6in.24xlarge,reserved_1y,all_upfront,2.47285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:13.053406 +AWS,ca-central-1,c6in.24xlarge,reserved_1y,no_upfront,2.47285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:00.673078 +AWS,ca-central-1,c6in.24xlarge,reserved_1y,partial_upfront,2.47285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:36.162091 +AWS,ca-central-1,c6in.24xlarge,reserved_3y,all_upfront,2.47285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:03.041797 +AWS,ca-central-1,c6in.24xlarge,reserved_3y,no_upfront,2.47285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:08.532041 +AWS,ca-central-1,c6in.24xlarge,reserved_3y,partial_upfront,2.47285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:45.601385 +AWS,ca-central-1,c6in.24xlarge,spot,NA,1.911509,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197195 +AWS,ca-central-1,c6in.2xlarge,on_demand,NA,0.4956,USD,AWS Pricing API,2025-11-30T09:09:47.465666 +AWS,ca-central-1,c6in.2xlarge,reserved_1y,all_upfront,0.291438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:16.799745 +AWS,ca-central-1,c6in.2xlarge,reserved_1y,no_upfront,0.291438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:04.423765 +AWS,ca-central-1,c6in.2xlarge,reserved_1y,partial_upfront,0.291438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:39.835720 +AWS,ca-central-1,c6in.2xlarge,reserved_3y,all_upfront,0.097146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:06.610383 +AWS,ca-central-1,c6in.2xlarge,reserved_3y,no_upfront,0.097146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:12.239715 +AWS,ca-central-1,c6in.2xlarge,reserved_3y,partial_upfront,0.097146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:49.232682 +AWS,ca-central-1,c6in.2xlarge,spot,NA,0.187207,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197292 +AWS,ca-central-1,c6in.32xlarge,on_demand,NA,7.9296,USD,AWS Pricing API,2025-11-30T09:10:21.770394 +AWS,ca-central-1,c6in.32xlarge,reserved_1y,all_upfront,8.975571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:50.850377 +AWS,ca-central-1,c6in.32xlarge,reserved_1y,no_upfront,8.975571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:38.868266 +AWS,ca-central-1,c6in.32xlarge,reserved_1y,partial_upfront,8.975571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:13.877305 +AWS,ca-central-1,c6in.32xlarge,reserved_3y,all_upfront,2.991857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:39.954596 +AWS,ca-central-1,c6in.32xlarge,reserved_3y,no_upfront,2.991857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:46.995160 +AWS,ca-central-1,c6in.32xlarge,reserved_3y,partial_upfront,2.991857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:23.173163 +AWS,ca-central-1,c6in.32xlarge,spot,NA,2.185322,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198069 +AWS,ca-central-1,c6in.4xlarge,on_demand,NA,0.9912,USD,AWS Pricing API,2025-11-30T09:09:21.946962 +AWS,ca-central-1,c6in.4xlarge,reserved_1y,all_upfront,0.76475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:51.172252 +AWS,ca-central-1,c6in.4xlarge,reserved_1y,no_upfront,0.76475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:38.598236 +AWS,ca-central-1,c6in.4xlarge,reserved_1y,partial_upfront,0.76475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:14.470988 +AWS,ca-central-1,c6in.4xlarge,reserved_3y,all_upfront,0.76475,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:41.703463 +AWS,ca-central-1,c6in.4xlarge,reserved_3y,no_upfront,0.76475,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:46.250686 +AWS,ca-central-1,c6in.4xlarge,reserved_3y,partial_upfront,0.76475,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:23.884205 +AWS,ca-central-1,c6in.4xlarge,spot,NA,0.305541,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188234 +AWS,ca-central-1,c6in.8xlarge,on_demand,NA,1.9824,USD,AWS Pricing API,2025-11-30T09:09:51.903196 +AWS,ca-central-1,c6in.8xlarge,reserved_1y,all_upfront,1.427511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:21.251842 +AWS,ca-central-1,c6in.8xlarge,reserved_1y,no_upfront,1.427511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:08.944041 +AWS,ca-central-1,c6in.8xlarge,reserved_1y,partial_upfront,1.427511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:44.290894 +AWS,ca-central-1,c6in.8xlarge,reserved_3y,all_upfront,0.475837,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:10.970443 +AWS,ca-central-1,c6in.8xlarge,reserved_3y,no_upfront,0.475837,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:16.793306 +AWS,ca-central-1,c6in.8xlarge,reserved_3y,partial_upfront,0.475837,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:53.629648 +AWS,ca-central-1,c6in.8xlarge,spot,NA,0.610626,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197402 +AWS,ca-central-1,c6in.xlarge,on_demand,NA,0.2478,USD,AWS Pricing API,2025-11-30T09:09:39.700629 +AWS,ca-central-1,c6in.xlarge,reserved_1y,all_upfront,0.148655,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:08.968587 +AWS,ca-central-1,c6in.xlarge,reserved_1y,no_upfront,0.148655,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:56.530314 +AWS,ca-central-1,c6in.xlarge,reserved_1y,partial_upfront,0.148655,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:32.113337 +AWS,ca-central-1,c6in.xlarge,reserved_3y,all_upfront,0.099112,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:59.048994 +AWS,ca-central-1,c6in.xlarge,reserved_3y,no_upfront,0.099112,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:04.387279 +AWS,ca-central-1,c6in.xlarge,reserved_3y,partial_upfront,0.099112,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:41.546000 +AWS,ca-central-1,c6in.xlarge,spot,NA,0.080986,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188900 +AWS,ca-central-1,c7g.12xlarge,on_demand,NA,1.8974,USD,AWS Pricing API,2025-11-30T09:09:49.740154 +AWS,ca-central-1,c7g.12xlarge,reserved_1y,all_upfront,1.343607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:19.098629 +AWS,ca-central-1,c7g.12xlarge,reserved_1y,no_upfront,1.343607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:06.759309 +AWS,ca-central-1,c7g.12xlarge,reserved_1y,partial_upfront,1.343607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:42.112659 +AWS,ca-central-1,c7g.12xlarge,reserved_3y,all_upfront,0.447869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:08.847387 +AWS,ca-central-1,c7g.12xlarge,reserved_3y,no_upfront,0.447869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:14.585100 +AWS,ca-central-1,c7g.12xlarge,reserved_3y,partial_upfront,0.447869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:51.493179 +AWS,ca-central-1,c7g.12xlarge,spot,NA,0.585363,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197361 +AWS,ca-central-1,c7g.16xlarge,on_demand,NA,2.5299,USD,AWS Pricing API,2025-11-30T09:09:59.373797 +AWS,ca-central-1,c7g.16xlarge,reserved_1y,all_upfront,1.9195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:28.655543 +AWS,ca-central-1,c7g.16xlarge,reserved_1y,no_upfront,1.9195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:16.497011 +AWS,ca-central-1,c7g.16xlarge,reserved_1y,partial_upfront,1.9195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:51.723669 +AWS,ca-central-1,c7g.16xlarge,reserved_3y,all_upfront,1.9195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:18.265695 +AWS,ca-central-1,c7g.16xlarge,reserved_3y,no_upfront,1.9195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:24.411118 +AWS,ca-central-1,c7g.16xlarge,reserved_3y,partial_upfront,1.9195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:01.043052 +AWS,ca-central-1,c7g.16xlarge,spot,NA,0.715131,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197546 +AWS,ca-central-1,c7g.2xlarge,on_demand,NA,0.3162,USD,AWS Pricing API,2025-11-30T09:10:18.270877 +AWS,ca-central-1,c7g.2xlarge,reserved_1y,all_upfront,0.257108,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:47.335707 +AWS,ca-central-1,c7g.2xlarge,reserved_1y,no_upfront,0.257108,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:35.313469 +AWS,ca-central-1,c7g.2xlarge,reserved_1y,partial_upfront,0.257108,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:10.379412 +AWS,ca-central-1,c7g.2xlarge,reserved_3y,all_upfront,0.128569,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:36.518394 +AWS,ca-central-1,c7g.2xlarge,reserved_3y,no_upfront,0.128569,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:43.409526 +AWS,ca-central-1,c7g.2xlarge,reserved_3y,partial_upfront,0.128569,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:19.681796 +AWS,ca-central-1,c7g.2xlarge,spot,NA,0.144282,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197965 +AWS,ca-central-1,c7g.4xlarge,on_demand,NA,0.6325,USD,AWS Pricing API,2025-11-30T09:09:34.951077 +AWS,ca-central-1,c7g.4xlarge,reserved_1y,all_upfront,0.4199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:04.213465 +AWS,ca-central-1,c7g.4xlarge,reserved_1y,no_upfront,0.4199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:51.738713 +AWS,ca-central-1,c7g.4xlarge,reserved_1y,partial_upfront,0.4199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:27.415235 +AWS,ca-central-1,c7g.4xlarge,reserved_3y,all_upfront,0.4199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:54.426600 +AWS,ca-central-1,c7g.4xlarge,reserved_3y,no_upfront,0.4199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:59.524793 +AWS,ca-central-1,c7g.4xlarge,reserved_3y,partial_upfront,0.4199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:36.859371 +AWS,ca-central-1,c7g.4xlarge,spot,NA,0.259056,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188737 +AWS,ca-central-1,c7g.8xlarge,on_demand,NA,1.265,USD,AWS Pricing API,2025-11-30T09:09:45.970037 +AWS,ca-central-1,c7g.8xlarge,reserved_1y,all_upfront,1.659589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:15.317932 +AWS,ca-central-1,c7g.8xlarge,reserved_1y,no_upfront,1.659589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:02.899170 +AWS,ca-central-1,c7g.8xlarge,reserved_1y,partial_upfront,1.659589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:38.355350 +AWS,ca-central-1,c7g.8xlarge,reserved_3y,all_upfront,0.553196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:05.150906 +AWS,ca-central-1,c7g.8xlarge,reserved_3y,no_upfront,0.553196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:10.726426 +AWS,ca-central-1,c7g.8xlarge,reserved_3y,partial_upfront,0.553196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:47.728212 +AWS,ca-central-1,c7g.8xlarge,spot,NA,0.547697,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197283 +AWS,ca-central-1,c7g.xlarge,on_demand,NA,0.1581,USD,AWS Pricing API,2025-11-30T09:09:33.063485 +AWS,ca-central-1,c7g.xlarge,reserved_1y,all_upfront,0.097945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:02.283145 +AWS,ca-central-1,c7g.xlarge,reserved_1y,no_upfront,0.097945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:49.822748 +AWS,ca-central-1,c7g.xlarge,reserved_1y,partial_upfront,0.097945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:25.515345 +AWS,ca-central-1,c7g.xlarge,reserved_3y,all_upfront,0.032648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:52.564838 +AWS,ca-central-1,c7g.xlarge,reserved_3y,no_upfront,0.032648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:57.605104 +AWS,ca-central-1,c7g.xlarge,reserved_3y,partial_upfront,0.032648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:34.967776 +AWS,ca-central-1,c7g.xlarge,spot,NA,0.07265,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188683 +AWS,ca-central-1,c7gd.12xlarge,on_demand,NA,2.4038,USD,AWS Pricing API,2025-11-30T09:09:43.941842 +AWS,ca-central-1,c7gd.12xlarge,reserved_1y,all_upfront,1.861633,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:13.191070 +AWS,ca-central-1,c7gd.12xlarge,reserved_1y,no_upfront,1.861633,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:00.810822 +AWS,ca-central-1,c7gd.12xlarge,reserved_1y,partial_upfront,1.861633,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:36.295688 +AWS,ca-central-1,c7gd.12xlarge,reserved_3y,all_upfront,0.930811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:03.175516 +AWS,ca-central-1,c7gd.12xlarge,reserved_3y,no_upfront,0.930811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:08.671196 +AWS,ca-central-1,c7gd.12xlarge,reserved_3y,partial_upfront,0.930811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:45.734393 +AWS,ca-central-1,c7gd.12xlarge,spot,NA,0.668869,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197170 +AWS,ca-central-1,c7gd.16xlarge,on_demand,NA,3.2051,USD,AWS Pricing API,2025-11-30T09:09:29.949184 +AWS,ca-central-1,c7gd.16xlarge,reserved_1y,all_upfront,2.0192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:59.167394 +AWS,ca-central-1,c7gd.16xlarge,reserved_1y,no_upfront,2.0192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:46.682979 +AWS,ca-central-1,c7gd.16xlarge,reserved_1y,partial_upfront,2.0192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:22.422505 +AWS,ca-central-1,c7gd.16xlarge,reserved_3y,all_upfront,2.0192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:49.543139 +AWS,ca-central-1,c7gd.16xlarge,reserved_3y,no_upfront,2.0192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:54.421196 +AWS,ca-central-1,c7gd.16xlarge,reserved_3y,partial_upfront,2.0192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:31.887952 +AWS,ca-central-1,c7gd.16xlarge,spot,NA,0.867231,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188542 +AWS,ca-central-1,c7gd.2xlarge,on_demand,NA,0.4006,USD,AWS Pricing API,2025-11-30T09:09:59.235561 +AWS,ca-central-1,c7gd.2xlarge,reserved_1y,all_upfront,0.288356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:28.517869 +AWS,ca-central-1,c7gd.2xlarge,reserved_1y,no_upfront,0.288356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:16.361812 +AWS,ca-central-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.288356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:51.590653 +AWS,ca-central-1,c7gd.2xlarge,reserved_3y,all_upfront,0.096119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:18.131886 +AWS,ca-central-1,c7gd.2xlarge,reserved_3y,no_upfront,0.096119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:24.274473 +AWS,ca-central-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.096119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:00.906206 +AWS,ca-central-1,c7gd.2xlarge,spot,NA,0.154117,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197578 +AWS,ca-central-1,c7gd.4xlarge,on_demand,NA,0.8013,USD,AWS Pricing API,2025-11-30T09:09:46.647774 +AWS,ca-central-1,c7gd.4xlarge,reserved_1y,all_upfront,0.618,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:15.989165 +AWS,ca-central-1,c7gd.4xlarge,reserved_1y,no_upfront,0.618,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:03.581015 +AWS,ca-central-1,c7gd.4xlarge,reserved_1y,partial_upfront,0.618,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:39.029247 +AWS,ca-central-1,c7gd.4xlarge,reserved_3y,all_upfront,0.618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:05.817665 +AWS,ca-central-1,c7gd.4xlarge,reserved_3y,no_upfront,0.618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:11.416669 +AWS,ca-central-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:48.398147 +AWS,ca-central-1,c7gd.4xlarge,spot,NA,0.34666,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197263 +AWS,ca-central-1,c7gd.8xlarge,on_demand,NA,1.6026,USD,AWS Pricing API,2025-11-30T09:09:38.201422 +AWS,ca-central-1,c7gd.8xlarge,reserved_1y,all_upfront,2.098059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:07.476769 +AWS,ca-central-1,c7gd.8xlarge,reserved_1y,no_upfront,2.098059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:55.015548 +AWS,ca-central-1,c7gd.8xlarge,reserved_1y,partial_upfront,2.098059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:30.634527 +AWS,ca-central-1,c7gd.8xlarge,reserved_3y,all_upfront,0.699353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:57.591860 +AWS,ca-central-1,c7gd.8xlarge,reserved_3y,no_upfront,0.699353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:02.862561 +AWS,ca-central-1,c7gd.8xlarge,reserved_3y,partial_upfront,0.699353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:40.064875 +AWS,ca-central-1,c7gd.8xlarge,spot,NA,0.800135,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188840 +AWS,ca-central-1,c7gd.xlarge,on_demand,NA,0.2003,USD,AWS Pricing API,2025-11-30T09:10:17.596440 +AWS,ca-central-1,c7gd.xlarge,reserved_1y,all_upfront,0.0838,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:46.640645 +AWS,ca-central-1,c7gd.xlarge,reserved_1y,no_upfront,0.0838,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:34.636214 +AWS,ca-central-1,c7gd.xlarge,reserved_1y,partial_upfront,0.0838,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:09.697765 +AWS,ca-central-1,c7gd.xlarge,reserved_3y,all_upfront,0.0838,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:35.851181 +AWS,ca-central-1,c7gd.xlarge,reserved_3y,no_upfront,0.0838,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:42.720898 +AWS,ca-central-1,c7gd.xlarge,reserved_3y,partial_upfront,0.0838,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:19.008011 +AWS,ca-central-1,c7gd.xlarge,spot,NA,0.068945,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197961 +AWS,ca-central-1,c7i.12xlarge,on_demand,NA,2.3436,USD,AWS Pricing API,2025-11-30T09:09:38.476336 +AWS,ca-central-1,c7i.12xlarge,reserved_1y,all_upfront,2.686187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:07.745751 +AWS,ca-central-1,c7i.12xlarge,reserved_1y,no_upfront,2.686187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:55.304329 +AWS,ca-central-1,c7i.12xlarge,reserved_1y,partial_upfront,2.686187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:30.903157 +AWS,ca-central-1,c7i.12xlarge,reserved_3y,all_upfront,0.895396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:57.854598 +AWS,ca-central-1,c7i.12xlarge,reserved_3y,no_upfront,0.895396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:03.147107 +AWS,ca-central-1,c7i.12xlarge,reserved_3y,partial_upfront,0.895396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:40.338739 +AWS,ca-central-1,c7i.12xlarge,spot,NA,0.781136,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188846 +AWS,ca-central-1,c7i.16xlarge,on_demand,NA,3.1248,USD,AWS Pricing API,2025-11-30T09:10:15.873975 +AWS,ca-central-1,c7i.16xlarge,reserved_1y,all_upfront,2.37081,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:44.884707 +AWS,ca-central-1,c7i.16xlarge,reserved_1y,no_upfront,2.37081,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:32.878088 +AWS,ca-central-1,c7i.16xlarge,reserved_1y,partial_upfront,2.37081,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:07.964423 +AWS,ca-central-1,c7i.16xlarge,reserved_3y,all_upfront,2.37081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:34.137276 +AWS,ca-central-1,c7i.16xlarge,reserved_3y,no_upfront,2.37081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:40.923536 +AWS,ca-central-1,c7i.16xlarge,reserved_3y,partial_upfront,2.37081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:17.279304 +AWS,ca-central-1,c7i.16xlarge,spot,NA,1.031904,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197928 +AWS,ca-central-1,c7i.24xlarge,on_demand,NA,4.6872,USD,AWS Pricing API,2025-11-30T09:09:49.345461 +AWS,ca-central-1,c7i.24xlarge,reserved_1y,all_upfront,3.386933,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:18.701032 +AWS,ca-central-1,c7i.24xlarge,reserved_1y,no_upfront,3.386933,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:06.352354 +AWS,ca-central-1,c7i.24xlarge,reserved_1y,partial_upfront,3.386933,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:41.710864 +AWS,ca-central-1,c7i.24xlarge,reserved_3y,all_upfront,2.257938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:08.454419 +AWS,ca-central-1,c7i.24xlarge,reserved_3y,no_upfront,2.257938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:14.175490 +AWS,ca-central-1,c7i.24xlarge,reserved_3y,partial_upfront,2.257938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:51.095582 +AWS,ca-central-1,c7i.24xlarge,spot,NA,1.343639,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197348 +AWS,ca-central-1,c7i.2xlarge,on_demand,NA,0.3906,USD,AWS Pricing API,2025-11-30T09:10:04.157700 +AWS,ca-central-1,c7i.2xlarge,reserved_1y,all_upfront,0.242009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:33.276688 +AWS,ca-central-1,c7i.2xlarge,reserved_1y,no_upfront,0.242009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:21.166588 +AWS,ca-central-1,c7i.2xlarge,reserved_1y,partial_upfront,0.242009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:56.331180 +AWS,ca-central-1,c7i.2xlarge,reserved_3y,all_upfront,0.08067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:22.775012 +AWS,ca-central-1,c7i.2xlarge,reserved_3y,no_upfront,0.08067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:29.096242 +AWS,ca-central-1,c7i.2xlarge,reserved_3y,partial_upfront,0.08067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:05.609656 +AWS,ca-central-1,c7i.2xlarge,spot,NA,0.186283,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197653 +AWS,ca-central-1,c7i.48xlarge,on_demand,NA,9.3744,USD,AWS Pricing API,2025-11-30T09:09:31.989046 +AWS,ca-central-1,c7i.48xlarge,reserved_1y,all_upfront,10.744863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:01.183979 +AWS,ca-central-1,c7i.48xlarge,reserved_1y,no_upfront,10.744863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:48.739813 +AWS,ca-central-1,c7i.48xlarge,reserved_1y,partial_upfront,10.744863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:24.441150 +AWS,ca-central-1,c7i.48xlarge,reserved_3y,all_upfront,3.581621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:51.524190 +AWS,ca-central-1,c7i.48xlarge,reserved_3y,no_upfront,3.581621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:56.498262 +AWS,ca-central-1,c7i.48xlarge,reserved_3y,partial_upfront,3.581621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:33.900996 +AWS,ca-central-1,c7i.48xlarge,spot,NA,2.874968,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188639 +AWS,ca-central-1,c7i.4xlarge,on_demand,NA,0.7812,USD,AWS Pricing API,2025-11-30T09:09:45.030525 +AWS,ca-central-1,c7i.4xlarge,reserved_1y,all_upfront,0.895434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:14.370586 +AWS,ca-central-1,c7i.4xlarge,reserved_1y,no_upfront,0.895434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:01.947156 +AWS,ca-central-1,c7i.4xlarge,reserved_1y,partial_upfront,0.895434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:37.381274 +AWS,ca-central-1,c7i.4xlarge,reserved_3y,all_upfront,0.298478,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:04.238455 +AWS,ca-central-1,c7i.4xlarge,reserved_3y,no_upfront,0.298478,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:09.763007 +AWS,ca-central-1,c7i.4xlarge,reserved_3y,partial_upfront,0.298478,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:46.795974 +AWS,ca-central-1,c7i.4xlarge,spot,NA,0.272031,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197221 +AWS,ca-central-1,c7i.8xlarge,on_demand,NA,1.5624,USD,AWS Pricing API,2025-11-30T09:09:16.959762 +AWS,ca-central-1,c7i.8xlarge,reserved_1y,all_upfront,2.049772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:46.194728 +AWS,ca-central-1,c7i.8xlarge,reserved_1y,no_upfront,2.049772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:33.559143 +AWS,ca-central-1,c7i.8xlarge,reserved_1y,partial_upfront,2.049772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:09.480650 +AWS,ca-central-1,c7i.8xlarge,reserved_3y,all_upfront,0.683257,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:36.791992 +AWS,ca-central-1,c7i.8xlarge,reserved_3y,no_upfront,0.683257,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:41.184881 +AWS,ca-central-1,c7i.8xlarge,reserved_3y,partial_upfront,0.683257,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:18.902531 +AWS,ca-central-1,c7i.8xlarge,spot,NA,0.584566,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188109 +AWS,ca-central-1,c7i.large,on_demand,NA,0.09765,USD,AWS Pricing API,2025-11-30T09:10:03.595460 +AWS,ca-central-1,c7i.large,reserved_1y,all_upfront,0.128082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:32.737633 +AWS,ca-central-1,c7i.large,reserved_1y,no_upfront,0.128082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:20.619461 +AWS,ca-central-1,c7i.large,reserved_1y,partial_upfront,0.128082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:55.792087 +AWS,ca-central-1,c7i.large,reserved_3y,all_upfront,0.042694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:22.244688 +AWS,ca-central-1,c7i.large,reserved_3y,no_upfront,0.042694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:28.548886 +AWS,ca-central-1,c7i.large,reserved_3y,partial_upfront,0.042694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:05.065361 +AWS,ca-central-1,c7i.large,spot,NA,0.037549,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197641 +AWS,ca-central-1,c7i.metal-24xl,on_demand,NA,4.6872,USD,AWS Pricing API,2025-11-30T09:09:32.798611 +AWS,ca-central-1,c7i.metal-24xl,reserved_1y,all_upfront,3.810208,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:02.008736 +AWS,ca-central-1,c7i.metal-24xl,reserved_1y,no_upfront,3.810208,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:49.552843 +AWS,ca-central-1,c7i.metal-24xl,reserved_1y,partial_upfront,3.810208,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:25.249211 +AWS,ca-central-1,c7i.metal-24xl,reserved_3y,all_upfront,1.905109,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:52.304695 +AWS,ca-central-1,c7i.metal-24xl,reserved_3y,no_upfront,1.905109,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:57.333414 +AWS,ca-central-1,c7i.metal-24xl,reserved_3y,partial_upfront,1.905109,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:34.700711 +AWS,ca-central-1,c7i.metal-24xl,spot,NA,1.513696,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188664 +AWS,ca-central-1,c7i.metal-48xl,on_demand,NA,9.3744,USD,AWS Pricing API,2025-11-30T09:09:20.996767 +AWS,ca-central-1,c7i.metal-48xl,reserved_1y,all_upfront,6.773752,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:50.233268 +AWS,ca-central-1,c7i.metal-48xl,reserved_1y,no_upfront,6.773752,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:37.653078 +AWS,ca-central-1,c7i.metal-48xl,reserved_1y,partial_upfront,6.773752,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:13.519615 +AWS,ca-central-1,c7i.metal-48xl,reserved_3y,all_upfront,4.515837,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:40.780920 +AWS,ca-central-1,c7i.metal-48xl,reserved_3y,no_upfront,4.515837,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:45.286970 +AWS,ca-central-1,c7i.metal-48xl,reserved_3y,partial_upfront,4.515837,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:22.950754 +AWS,ca-central-1,c7i.metal-48xl,spot,NA,2.845113,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188247 +AWS,ca-central-1,c7i.xlarge,on_demand,NA,0.1953,USD,AWS Pricing API,2025-11-30T09:10:14.935353 +AWS,ca-central-1,c7i.xlarge,reserved_1y,all_upfront,0.121005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:43.944184 +AWS,ca-central-1,c7i.xlarge,reserved_1y,no_upfront,0.121005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:31.932999 +AWS,ca-central-1,c7i.xlarge,reserved_1y,partial_upfront,0.121005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:07.023080 +AWS,ca-central-1,c7i.xlarge,reserved_3y,all_upfront,0.040335,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:33.216402 +AWS,ca-central-1,c7i.xlarge,reserved_3y,no_upfront,0.040335,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:39.965128 +AWS,ca-central-1,c7i.xlarge,reserved_3y,partial_upfront,0.040335,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:16.293693 +AWS,ca-central-1,c7i.xlarge,spot,NA,0.074988,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197899 +AWS,ca-central-1,c8g.12xlarge,on_demand,NA,2.08704,USD,AWS Pricing API,2025-11-30T09:10:12.501827 +AWS,ca-central-1,c8g.12xlarge,reserved_1y,all_upfront,1.477854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:41.515269 +AWS,ca-central-1,c8g.12xlarge,reserved_1y,no_upfront,1.477854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:29.479301 +AWS,ca-central-1,c8g.12xlarge,reserved_1y,partial_upfront,1.477854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:04.584343 +AWS,ca-central-1,c8g.12xlarge,reserved_3y,all_upfront,0.492618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:30.817365 +AWS,ca-central-1,c8g.12xlarge,reserved_3y,no_upfront,0.492618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:37.483510 +AWS,ca-central-1,c8g.12xlarge,reserved_3y,partial_upfront,0.492618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:13.875869 +AWS,ca-central-1,c8g.12xlarge,spot,NA,0.671702,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197852 +AWS,ca-central-1,c8g.16xlarge,on_demand,NA,2.78272,USD,AWS Pricing API,2025-11-30T09:09:15.881922 +AWS,ca-central-1,c8g.16xlarge,reserved_1y,all_upfront,1.724201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:45.085458 +AWS,ca-central-1,c8g.16xlarge,reserved_1y,no_upfront,1.724201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:32.466630 +AWS,ca-central-1,c8g.16xlarge,reserved_1y,partial_upfront,1.724201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:08.406752 +AWS,ca-central-1,c8g.16xlarge,reserved_3y,all_upfront,0.574734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:35.740744 +AWS,ca-central-1,c8g.16xlarge,reserved_3y,no_upfront,0.574734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:40.074894 +AWS,ca-central-1,c8g.16xlarge,reserved_3y,partial_upfront,0.574734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:17.837761 +AWS,ca-central-1,c8g.16xlarge,spot,NA,0.797744,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188026 +AWS,ca-central-1,c8g.24xlarge,on_demand,NA,4.17408,USD,AWS Pricing API,2025-11-30T09:10:02.364365 +AWS,ca-central-1,c8g.24xlarge,reserved_1y,all_upfront,2.77106,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:31.507510 +AWS,ca-central-1,c8g.24xlarge,reserved_1y,no_upfront,2.77106,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:19.389541 +AWS,ca-central-1,c8g.24xlarge,reserved_1y,partial_upfront,2.77106,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:54.571763 +AWS,ca-central-1,c8g.24xlarge,reserved_3y,all_upfront,2.77106,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:21.056901 +AWS,ca-central-1,c8g.24xlarge,reserved_3y,no_upfront,2.77106,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:27.305530 +AWS,ca-central-1,c8g.24xlarge,reserved_3y,partial_upfront,2.77106,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:03.867374 +AWS,ca-central-1,c8g.24xlarge,spot,NA,1.135671,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197637 +AWS,ca-central-1,c8g.2xlarge,on_demand,NA,0.34784,USD,AWS Pricing API,2025-11-30T09:09:27.915706 +AWS,ca-central-1,c8g.2xlarge,reserved_1y,all_upfront,0.219892,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:57.138483 +AWS,ca-central-1,c8g.2xlarge,reserved_1y,no_upfront,0.219892,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:44.635054 +AWS,ca-central-1,c8g.2xlarge,reserved_1y,partial_upfront,0.219892,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:20.404005 +AWS,ca-central-1,c8g.2xlarge,reserved_3y,all_upfront,0.146604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:47.534444 +AWS,ca-central-1,c8g.2xlarge,reserved_3y,no_upfront,0.146604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:52.342550 +AWS,ca-central-1,c8g.2xlarge,reserved_3y,partial_upfront,0.146604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:29.821173 +AWS,ca-central-1,c8g.2xlarge,spot,NA,0.176404,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188525 +AWS,ca-central-1,c8g.48xlarge,on_demand,NA,8.34816,USD,AWS Pricing API,2025-11-30T09:10:21.223672 +AWS,ca-central-1,c8g.48xlarge,reserved_1y,all_upfront,10.952283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:50.302663 +AWS,ca-central-1,c8g.48xlarge,reserved_1y,no_upfront,10.952283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:38.322039 +AWS,ca-central-1,c8g.48xlarge,reserved_1y,partial_upfront,10.952283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:13.335283 +AWS,ca-central-1,c8g.48xlarge,reserved_3y,all_upfront,3.650761,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:39.422520 +AWS,ca-central-1,c8g.48xlarge,reserved_3y,no_upfront,3.650761,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:46.441973 +AWS,ca-central-1,c8g.48xlarge,reserved_3y,partial_upfront,3.650761,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:22.639634 +AWS,ca-central-1,c8g.48xlarge,spot,NA,2.401132,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198076 +AWS,ca-central-1,c8g.4xlarge,on_demand,NA,0.69568,USD,AWS Pricing API,2025-11-30T09:09:30.362642 +AWS,ca-central-1,c8g.4xlarge,reserved_1y,all_upfront,0.46184,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:59.573477 +AWS,ca-central-1,c8g.4xlarge,reserved_1y,no_upfront,0.46184,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:47.092046 +AWS,ca-central-1,c8g.4xlarge,reserved_1y,partial_upfront,0.46184,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:22.828070 +AWS,ca-central-1,c8g.4xlarge,reserved_3y,all_upfront,0.46184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:49.936610 +AWS,ca-central-1,c8g.4xlarge,reserved_3y,no_upfront,0.46184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:54.843283 +AWS,ca-central-1,c8g.4xlarge,reserved_3y,partial_upfront,0.46184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:32.301497 +AWS,ca-central-1,c8g.4xlarge,spot,NA,0.299419,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188563 +AWS,ca-central-1,c8g.8xlarge,on_demand,NA,1.39136,USD,AWS Pricing API,2025-11-30T09:09:33.871271 +AWS,ca-central-1,c8g.8xlarge,reserved_1y,all_upfront,0.985274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:03.117258 +AWS,ca-central-1,c8g.8xlarge,reserved_1y,no_upfront,0.985274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:50.643071 +AWS,ca-central-1,c8g.8xlarge,reserved_1y,partial_upfront,0.985274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:26.334648 +AWS,ca-central-1,c8g.8xlarge,reserved_3y,all_upfront,0.328425,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:53.353433 +AWS,ca-central-1,c8g.8xlarge,reserved_3y,no_upfront,0.328425,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:58.430342 +AWS,ca-central-1,c8g.8xlarge,reserved_3y,partial_upfront,0.328425,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:35.783024 +AWS,ca-central-1,c8g.8xlarge,spot,NA,1.054771,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188725 +AWS,ca-central-1,c8g.large,on_demand,NA,0.08696,USD,AWS Pricing API,2025-11-30T09:10:15.608728 +AWS,ca-central-1,c8g.large,reserved_1y,all_upfront,0.05773,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:44.617744 +AWS,ca-central-1,c8g.large,reserved_1y,no_upfront,0.05773,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:32.605524 +AWS,ca-central-1,c8g.large,reserved_1y,partial_upfront,0.05773,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:07.694160 +AWS,ca-central-1,c8g.large,reserved_3y,all_upfront,0.05773,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:33.868997 +AWS,ca-central-1,c8g.large,reserved_3y,no_upfront,0.05773,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:40.647897 +AWS,ca-central-1,c8g.large,reserved_3y,partial_upfront,0.05773,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:17.016327 +AWS,ca-central-1,c8g.large,spot,NA,0.031404,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197936 +AWS,ca-central-1,c8g.medium,on_demand,NA,0.04348,USD,AWS Pricing API,2025-11-30T09:10:00.147568 +AWS,ca-central-1,c8g.medium,reserved_1y,all_upfront,0.027449,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:29.333567 +AWS,ca-central-1,c8g.medium,reserved_1y,no_upfront,0.027449,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:17.191541 +AWS,ca-central-1,c8g.medium,reserved_1y,partial_upfront,0.027449,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:52.403751 +AWS,ca-central-1,c8g.medium,reserved_3y,all_upfront,0.018316,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:18.925169 +AWS,ca-central-1,c8g.medium,reserved_3y,no_upfront,0.018316,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:25.094030 +AWS,ca-central-1,c8g.medium,reserved_3y,partial_upfront,0.018316,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:01.713010 +AWS,ca-central-1,c8g.medium,spot,NA,0.01301,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197559 +AWS,ca-central-1,c8g.xlarge,on_demand,NA,0.17392,USD,AWS Pricing API,2025-11-30T09:09:24.116771 +AWS,ca-central-1,c8g.xlarge,reserved_1y,all_upfront,0.11546,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:53.337440 +AWS,ca-central-1,c8g.xlarge,reserved_1y,no_upfront,0.11546,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:40.782321 +AWS,ca-central-1,c8g.xlarge,reserved_1y,partial_upfront,0.11546,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:16.629649 +AWS,ca-central-1,c8g.xlarge,reserved_3y,all_upfront,0.11546,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:43.843579 +AWS,ca-central-1,c8g.xlarge,reserved_3y,no_upfront,0.11546,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:48.465025 +AWS,ca-central-1,c8g.xlarge,reserved_3y,partial_upfront,0.11546,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:26.028931 +AWS,ca-central-1,c8g.xlarge,spot,NA,0.066465,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188355 +AWS,ca-central-1,c8gd.12xlarge,on_demand,NA,2.59632,USD,AWS Pricing API,2025-11-30T09:09:57.720599 +AWS,ca-central-1,c8gd.12xlarge,spot,NA,0.427761,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197530 +AWS,ca-central-1,c8gd.16xlarge,on_demand,NA,3.46176,USD,AWS Pricing API,2025-11-30T09:10:22.040216 +AWS,ca-central-1,c8gd.16xlarge,spot,NA,0.499043,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198088 +AWS,ca-central-1,c8gd.24xlarge,on_demand,NA,5.19264,USD,AWS Pricing API,2025-11-30T09:10:08.587619 +AWS,ca-central-1,c8gd.24xlarge,spot,NA,0.698324,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197745 +AWS,ca-central-1,c8gd.2xlarge,on_demand,NA,0.43272,USD,AWS Pricing API,2025-11-30T09:09:52.446209 +AWS,ca-central-1,c8gd.2xlarge,spot,NA,0.072725,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197410 +AWS,ca-central-1,c8gd.48xlarge,on_demand,NA,10.38528,USD,AWS Pricing API,2025-11-30T09:09:40.240442 +AWS,ca-central-1,c8gd.48xlarge,spot,NA,1.40034,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188974 +AWS,ca-central-1,c8gd.4xlarge,on_demand,NA,0.86544,USD,AWS Pricing API,2025-11-30T09:09:25.616701 +AWS,ca-central-1,c8gd.4xlarge,spot,NA,0.134988,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188418 +AWS,ca-central-1,c8gd.8xlarge,on_demand,NA,1.73088,USD,AWS Pricing API,2025-11-30T09:09:48.140357 +AWS,ca-central-1,c8gd.8xlarge,spot,NA,0.274863,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197326 +AWS,ca-central-1,c8gd.large,on_demand,NA,0.10818,USD,AWS Pricing API,2025-11-30T09:10:14.002045 +AWS,ca-central-1,c8gd.large,spot,NA,0.016763,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197861 +AWS,ca-central-1,c8gd.xlarge,on_demand,NA,0.21636,USD,AWS Pricing API,2025-11-30T09:09:36.443418 +AWS,ca-central-1,c8gd.xlarge,spot,NA,0.033448,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188796 +AWS,ca-central-1,d3.2xlarge,on_demand,NA,1.1,USD,AWS Pricing API,2025-11-30T09:09:50.003200 +AWS,ca-central-1,d3.2xlarge,reserved_1y,all_upfront,0.57,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:19.367169 +AWS,ca-central-1,d3.2xlarge,reserved_1y,no_upfront,0.57,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:07.032236 +AWS,ca-central-1,d3.2xlarge,reserved_1y,partial_upfront,0.57,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:42.381842 +AWS,ca-central-1,d3.2xlarge,reserved_3y,all_upfront,0.57,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:09.108113 +AWS,ca-central-1,d3.2xlarge,reserved_3y,no_upfront,0.57,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:14.862563 +AWS,ca-central-1,d3.2xlarge,reserved_3y,partial_upfront,0.57,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:51.758402 +AWS,ca-central-1,d3.2xlarge,spot,NA,0.370381,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197369 +AWS,ca-central-1,d3.4xlarge,on_demand,NA,2.201,USD,AWS Pricing API,2025-11-30T09:10:17.192549 +AWS,ca-central-1,d3.4xlarge,reserved_1y,all_upfront,1.76032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:46.240372 +AWS,ca-central-1,d3.4xlarge,reserved_1y,no_upfront,1.76032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:34.232565 +AWS,ca-central-1,d3.4xlarge,reserved_1y,partial_upfront,1.76032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:09.297569 +AWS,ca-central-1,d3.4xlarge,reserved_3y,all_upfront,0.880107,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:35.456399 +AWS,ca-central-1,d3.4xlarge,reserved_3y,no_upfront,0.880107,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:42.300049 +AWS,ca-central-1,d3.4xlarge,reserved_3y,partial_upfront,0.880107,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:18.612443 +AWS,ca-central-1,d3.4xlarge,spot,NA,0.734903,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197940 +AWS,ca-central-1,d3.8xlarge,on_demand,NA,4.40112,USD,AWS Pricing API,2025-11-30T09:09:20.454915 +AWS,ca-central-1,d3.8xlarge,reserved_1y,all_upfront,2.64066,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:49.690547 +AWS,ca-central-1,d3.8xlarge,reserved_1y,no_upfront,2.64066,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:37.111473 +AWS,ca-central-1,d3.8xlarge,reserved_1y,partial_upfront,2.64066,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:12.982669 +AWS,ca-central-1,d3.8xlarge,reserved_3y,all_upfront,1.760447,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:40.245170 +AWS,ca-central-1,d3.8xlarge,reserved_3y,no_upfront,1.760447,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:44.740502 +AWS,ca-central-1,d3.8xlarge,reserved_3y,partial_upfront,1.760447,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:22.408644 +AWS,ca-central-1,d3.8xlarge,spot,NA,1.222103,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188199 +AWS,ca-central-1,d3.xlarge,on_demand,NA,0.55,USD,AWS Pricing API,2025-11-30T09:09:17.898779 +AWS,ca-central-1,d3.xlarge,reserved_1y,all_upfront,0.416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:47.132601 +AWS,ca-central-1,d3.xlarge,reserved_1y,no_upfront,0.416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:34.518407 +AWS,ca-central-1,d3.xlarge,reserved_1y,partial_upfront,0.416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:10.415603 +AWS,ca-central-1,d3.xlarge,reserved_3y,all_upfront,0.416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:37.722825 +AWS,ca-central-1,d3.xlarge,reserved_3y,no_upfront,0.416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:42.140292 +AWS,ca-central-1,d3.xlarge,reserved_3y,partial_upfront,0.416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:19.850516 +AWS,ca-central-1,d3.xlarge,spot,NA,0.176272,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188077 +AWS,ca-central-1,g4dn.12xlarge,on_demand,NA,4.343,USD,AWS Pricing API,2025-11-30T09:09:20.859667 +AWS,ca-central-1,g4dn.12xlarge,reserved_1y,all_upfront,2.605968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:50.094388 +AWS,ca-central-1,g4dn.12xlarge,reserved_1y,no_upfront,2.605968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:37.515869 +AWS,ca-central-1,g4dn.12xlarge,reserved_1y,partial_upfront,2.605968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:13.385766 +AWS,ca-central-1,g4dn.12xlarge,reserved_3y,all_upfront,1.737323,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:40.649082 +AWS,ca-central-1,g4dn.12xlarge,reserved_3y,no_upfront,1.737323,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:45.150490 +AWS,ca-central-1,g4dn.12xlarge,reserved_3y,partial_upfront,1.737323,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:22.812352 +AWS,ca-central-1,g4dn.12xlarge,spot,NA,1.441154,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188186 +AWS,ca-central-1,g4dn.16xlarge,on_demand,NA,4.832,USD,AWS Pricing API,2025-11-30T09:09:27.104254 +AWS,ca-central-1,g4dn.16xlarge,reserved_1y,all_upfront,2.505,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:56.317806 +AWS,ca-central-1,g4dn.16xlarge,reserved_1y,no_upfront,2.505,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:43.800721 +AWS,ca-central-1,g4dn.16xlarge,reserved_1y,partial_upfront,2.505,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:19.585990 +AWS,ca-central-1,g4dn.16xlarge,reserved_3y,all_upfront,2.505,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:46.743994 +AWS,ca-central-1,g4dn.16xlarge,reserved_3y,no_upfront,2.505,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:51.510983 +AWS,ca-central-1,g4dn.16xlarge,reserved_3y,partial_upfront,2.505,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:29.003953 +AWS,ca-central-1,g4dn.16xlarge,spot,NA,1.306668,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188464 +AWS,ca-central-1,g4dn.2xlarge,on_demand,NA,0.835,USD,AWS Pricing API,2025-11-30T09:10:01.121144 +AWS,ca-central-1,g4dn.2xlarge,reserved_1y,all_upfront,1.178196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:30.288628 +AWS,ca-central-1,g4dn.2xlarge,reserved_1y,no_upfront,1.178196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:18.148099 +AWS,ca-central-1,g4dn.2xlarge,reserved_1y,partial_upfront,1.178196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:53.342436 +AWS,ca-central-1,g4dn.2xlarge,reserved_3y,all_upfront,0.392732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:19.868620 +AWS,ca-central-1,g4dn.2xlarge,reserved_3y,no_upfront,0.392732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:26.053048 +AWS,ca-central-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.392732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:02.650338 +AWS,ca-central-1,g4dn.2xlarge,spot,NA,0.296489,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197610 +AWS,ca-central-1,g4dn.4xlarge,on_demand,NA,1.337,USD,AWS Pricing API,2025-11-30T09:09:41.595781 +AWS,ca-central-1,g4dn.4xlarge,reserved_1y,all_upfront,0.785959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:10.890950 +AWS,ca-central-1,g4dn.4xlarge,reserved_1y,no_upfront,0.785959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:58.449536 +AWS,ca-central-1,g4dn.4xlarge,reserved_1y,partial_upfront,0.785959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:33.991177 +AWS,ca-central-1,g4dn.4xlarge,reserved_3y,all_upfront,0.261986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:00.905423 +AWS,ca-central-1,g4dn.4xlarge,reserved_3y,no_upfront,0.261986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:06.319585 +AWS,ca-central-1,g4dn.4xlarge,reserved_3y,partial_upfront,0.261986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:43.449408 +AWS,ca-central-1,g4dn.4xlarge,spot,NA,0.463186,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.189026 +AWS,ca-central-1,g4dn.8xlarge,on_demand,NA,2.416,USD,AWS Pricing API,2025-11-30T09:09:44.351906 +AWS,ca-central-1,g4dn.8xlarge,reserved_1y,all_upfront,1.044,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:13.612130 +AWS,ca-central-1,g4dn.8xlarge,reserved_1y,no_upfront,1.044,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:01.231014 +AWS,ca-central-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.044,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:36.700560 +AWS,ca-central-1,g4dn.8xlarge,reserved_3y,all_upfront,1.044,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:03.578420 +AWS,ca-central-1,g4dn.8xlarge,reserved_3y,no_upfront,1.044,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:09.082287 +AWS,ca-central-1,g4dn.8xlarge,reserved_3y,partial_upfront,1.044,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:46.133485 +AWS,ca-central-1,g4dn.8xlarge,spot,NA,0.66159,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197217 +AWS,ca-central-1,g4dn.xlarge,on_demand,NA,0.584,USD,AWS Pricing API,2025-11-30T09:10:07.831154 +AWS,ca-central-1,g4dn.xlarge,reserved_1y,all_upfront,0.343379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:36.931265 +AWS,ca-central-1,g4dn.xlarge,reserved_1y,no_upfront,0.343379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:24.836443 +AWS,ca-central-1,g4dn.xlarge,reserved_1y,partial_upfront,0.343379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:59.971131 +AWS,ca-central-1,g4dn.xlarge,reserved_3y,all_upfront,0.11446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:26.326729 +AWS,ca-central-1,g4dn.xlarge,reserved_3y,no_upfront,0.11446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:32.833320 +AWS,ca-central-1,g4dn.xlarge,reserved_3y,partial_upfront,0.11446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:09.316169 +AWS,ca-central-1,g4dn.xlarge,spot,NA,0.208531,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197737 +AWS,ca-central-1,g5.12xlarge,on_demand,NA,6.29784,USD,AWS Pricing API,2025-11-30T09:09:06.287859 +AWS,ca-central-1,g5.12xlarge,reserved_1y,all_upfront,9.257877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:35.483081 +AWS,ca-central-1,g5.12xlarge,reserved_1y,no_upfront,9.257877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:22.786426 +AWS,ca-central-1,g5.12xlarge,reserved_1y,partial_upfront,9.257877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:58.803862 +AWS,ca-central-1,g5.12xlarge,reserved_3y,all_upfront,3.085959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:26.385687 +AWS,ca-central-1,g5.12xlarge,reserved_3y,no_upfront,3.085959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:30.301214 +AWS,ca-central-1,g5.12xlarge,reserved_3y,partial_upfront,3.085959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:08.323852 +AWS,ca-central-1,g5.12xlarge,spot,NA,2.539469,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187830 +AWS,ca-central-1,g5.16xlarge,on_demand,NA,4.54794,USD,AWS Pricing API,2025-11-30T09:09:08.330521 +AWS,ca-central-1,g5.16xlarge,reserved_1y,all_upfront,3.342694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:37.499238 +AWS,ca-central-1,g5.16xlarge,reserved_1y,no_upfront,3.342694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:24.841154 +AWS,ca-central-1,g5.16xlarge,reserved_1y,partial_upfront,3.342694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:00.816357 +AWS,ca-central-1,g5.16xlarge,reserved_3y,all_upfront,1.114231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:28.364705 +AWS,ca-central-1,g5.16xlarge,reserved_3y,no_upfront,1.114231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:32.369543 +AWS,ca-central-1,g5.16xlarge,reserved_3y,partial_upfront,1.114231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:10.357760 +AWS,ca-central-1,g5.16xlarge,spot,NA,1.454021,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187858 +AWS,ca-central-1,g5.24xlarge,on_demand,NA,9.04259,USD,AWS Pricing API,2025-11-30T09:09:07.236780 +AWS,ca-central-1,g5.24xlarge,reserved_1y,all_upfront,6.646347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:36.427990 +AWS,ca-central-1,g5.24xlarge,reserved_1y,no_upfront,6.646347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:23.743774 +AWS,ca-central-1,g5.24xlarge,reserved_1y,partial_upfront,6.646347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:59.748911 +AWS,ca-central-1,g5.24xlarge,reserved_3y,all_upfront,2.215449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:27.311831 +AWS,ca-central-1,g5.24xlarge,reserved_3y,no_upfront,2.215449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:31.270688 +AWS,ca-central-1,g5.24xlarge,reserved_3y,partial_upfront,2.215449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:09.280828 +AWS,ca-central-1,g5.24xlarge,spot,NA,3.158226,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187812 +AWS,ca-central-1,g5.2xlarge,on_demand,NA,1.34573,USD,AWS Pricing API,2025-11-30T09:09:24.252765 +AWS,ca-central-1,g5.2xlarge,reserved_1y,all_upfront,0.989155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:53.470624 +AWS,ca-central-1,g5.2xlarge,reserved_1y,no_upfront,0.989155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:40.919354 +AWS,ca-central-1,g5.2xlarge,reserved_1y,partial_upfront,0.989155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:16.765382 +AWS,ca-central-1,g5.2xlarge,reserved_3y,all_upfront,0.329718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:43.974953 +AWS,ca-central-1,g5.2xlarge,reserved_3y,no_upfront,0.329718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:48.600628 +AWS,ca-central-1,g5.2xlarge,reserved_3y,partial_upfront,0.329718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:26.164753 +AWS,ca-central-1,g5.2xlarge,spot,NA,0.519643,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188347 +AWS,ca-central-1,g5.48xlarge,on_demand,NA,18.08518,USD,AWS Pricing API,2025-11-30T09:09:08.983914 +AWS,ca-central-1,g5.48xlarge,reserved_1y,all_upfront,14.468182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:38.169355 +AWS,ca-central-1,g5.48xlarge,reserved_1y,no_upfront,14.468182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:25.521791 +AWS,ca-central-1,g5.48xlarge,reserved_1y,partial_upfront,14.468182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:01.497249 +AWS,ca-central-1,g5.48xlarge,reserved_3y,all_upfront,7.234087,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:29.018279 +AWS,ca-central-1,g5.48xlarge,reserved_3y,no_upfront,7.234087,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:33.057987 +AWS,ca-central-1,g5.48xlarge,reserved_3y,partial_upfront,7.234087,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:11.032539 +AWS,ca-central-1,g5.48xlarge,spot,NA,8.8093,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187884 +AWS,ca-central-1,g5.4xlarge,on_demand,NA,1.80319,USD,AWS Pricing API,2025-11-30T09:09:18.439739 +AWS,ca-central-1,g5.4xlarge,reserved_1y,all_upfront,1.442603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:47.673114 +AWS,ca-central-1,g5.4xlarge,reserved_1y,no_upfront,1.442603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:35.060174 +AWS,ca-central-1,g5.4xlarge,reserved_1y,partial_upfront,1.442603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:10.950463 +AWS,ca-central-1,g5.4xlarge,reserved_3y,all_upfront,0.721294,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:38.259859 +AWS,ca-central-1,g5.4xlarge,reserved_3y,no_upfront,0.721294,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:42.689167 +AWS,ca-central-1,g5.4xlarge,reserved_3y,partial_upfront,0.721294,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:20.404257 +AWS,ca-central-1,g5.4xlarge,spot,NA,0.673368,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188154 +AWS,ca-central-1,g5.8xlarge,on_demand,NA,2.71811,USD,AWS Pricing API,2025-11-30T09:09:26.157701 +AWS,ca-central-1,g5.8xlarge,reserved_1y,all_upfront,1.598288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:55.364858 +AWS,ca-central-1,g5.8xlarge,reserved_1y,no_upfront,1.598288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:42.836124 +AWS,ca-central-1,g5.8xlarge,reserved_1y,partial_upfront,1.598288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:18.649308 +AWS,ca-central-1,g5.8xlarge,reserved_3y,all_upfront,0.532763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:45.821703 +AWS,ca-central-1,g5.8xlarge,reserved_3y,no_upfront,0.532763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:50.533446 +AWS,ca-central-1,g5.8xlarge,reserved_3y,partial_upfront,0.532763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:28.052122 +AWS,ca-central-1,g5.8xlarge,spot,NA,0.803221,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188388 +AWS,ca-central-1,g5.xlarge,on_demand,NA,1.117,USD,AWS Pricing API,2025-11-30T09:10:13.461560 +AWS,ca-central-1,g5.xlarge,reserved_1y,all_upfront,0.670146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:42.465604 +AWS,ca-central-1,g5.xlarge,reserved_1y,no_upfront,0.670146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:30.431928 +AWS,ca-central-1,g5.xlarge,reserved_1y,partial_upfront,0.670146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:05.546963 +AWS,ca-central-1,g5.xlarge,reserved_3y,all_upfront,0.446782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:31.746320 +AWS,ca-central-1,g5.xlarge,reserved_3y,no_upfront,0.446782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:38.457060 +AWS,ca-central-1,g5.xlarge,reserved_3y,partial_upfront,0.446782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:14.819398 +AWS,ca-central-1,g5.xlarge,spot,NA,0.535268,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197895 +AWS,ca-central-1,g6.12xlarge,on_demand,NA,5.10933,USD,AWS Pricing API,2025-11-30T09:09:09.667369 +AWS,ca-central-1,g6.12xlarge,reserved_1y,all_upfront,4.15772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:38.841880 +AWS,ca-central-1,g6.12xlarge,reserved_1y,no_upfront,4.15772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:26.201599 +AWS,ca-central-1,g6.12xlarge,reserved_1y,partial_upfront,4.15772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:02.190982 +AWS,ca-central-1,g6.12xlarge,reserved_3y,all_upfront,4.15772,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:29.675048 +AWS,ca-central-1,g6.12xlarge,reserved_3y,no_upfront,4.15772,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:33.734304 +AWS,ca-central-1,g6.12xlarge,reserved_3y,partial_upfront,4.15772,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:11.694406 +AWS,ca-central-1,g6.12xlarge,spot,NA,1.861495,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187890 +AWS,ca-central-1,g6.16xlarge,on_demand,NA,3.7716,USD,AWS Pricing API,2025-11-30T09:09:06.956136 +AWS,ca-central-1,g6.16xlarge,reserved_1y,all_upfront,2.92302,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:36.156553 +AWS,ca-central-1,g6.16xlarge,reserved_1y,no_upfront,2.92302,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:23.467306 +AWS,ca-central-1,g6.16xlarge,reserved_1y,partial_upfront,2.92302,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:59.470824 +AWS,ca-central-1,g6.16xlarge,reserved_3y,all_upfront,1.948667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:27.048887 +AWS,ca-central-1,g6.16xlarge,reserved_3y,no_upfront,1.948667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:30.991573 +AWS,ca-central-1,g6.16xlarge,reserved_3y,partial_upfront,1.948667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:09.014921 +AWS,ca-central-1,g6.16xlarge,spot,NA,1.190748,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187777 +AWS,ca-central-1,g6.24xlarge,on_demand,NA,7.41173,USD,AWS Pricing API,2025-11-30T09:09:07.099321 +AWS,ca-central-1,g6.24xlarge,reserved_1y,all_upfront,4.595243,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:36.292588 +AWS,ca-central-1,g6.24xlarge,reserved_1y,no_upfront,4.595243,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:23.604539 +AWS,ca-central-1,g6.24xlarge,reserved_1y,partial_upfront,4.595243,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:59.604637 +AWS,ca-central-1,g6.24xlarge,reserved_3y,all_upfront,3.063508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:27.179554 +AWS,ca-central-1,g6.24xlarge,reserved_3y,no_upfront,3.063508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:31.130344 +AWS,ca-central-1,g6.24xlarge,reserved_3y,partial_upfront,3.063508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:09.148153 +AWS,ca-central-1,g6.24xlarge,spot,NA,2.035355,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187818 +AWS,ca-central-1,g6.2xlarge,on_demand,NA,1.08547,USD,AWS Pricing API,2025-11-30T09:09:08.721777 +AWS,ca-central-1,g6.2xlarge,reserved_1y,all_upfront,0.659475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:37.901458 +AWS,ca-central-1,g6.2xlarge,reserved_1y,no_upfront,0.659475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:25.248306 +AWS,ca-central-1,g6.2xlarge,reserved_1y,partial_upfront,0.659475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:01.229923 +AWS,ca-central-1,g6.2xlarge,reserved_3y,all_upfront,0.219825,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:28.755581 +AWS,ca-central-1,g6.2xlarge,reserved_3y,no_upfront,0.219825,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:32.783881 +AWS,ca-central-1,g6.2xlarge,reserved_3y,partial_upfront,0.219825,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:10.763716 +AWS,ca-central-1,g6.2xlarge,spot,NA,0.532738,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187844 +AWS,ca-central-1,g6.48xlarge,on_demand,NA,14.82346,USD,AWS Pricing API,2025-11-30T09:09:06.553402 +AWS,ca-central-1,g6.48xlarge,reserved_1y,all_upfront,9.006735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:35.753174 +AWS,ca-central-1,g6.48xlarge,reserved_1y,no_upfront,9.006735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:23.063330 +AWS,ca-central-1,g6.48xlarge,reserved_1y,partial_upfront,9.006735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:59.072367 +AWS,ca-central-1,g6.48xlarge,reserved_3y,all_upfront,3.002245,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:26.645453 +AWS,ca-central-1,g6.48xlarge,reserved_3y,no_upfront,3.002245,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:30.571941 +AWS,ca-central-1,g6.48xlarge,reserved_3y,partial_upfront,3.002245,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:08.596750 +AWS,ca-central-1,g6.48xlarge,spot,NA,5.183952,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187799 +AWS,ca-central-1,g6.4xlarge,on_demand,NA,1.4692,USD,AWS Pricing API,2025-11-30T09:09:07.373537 +AWS,ca-central-1,g6.4xlarge,reserved_1y,all_upfront,1.248844,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:36.563770 +AWS,ca-central-1,g6.4xlarge,reserved_1y,no_upfront,1.248844,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:23.892319 +AWS,ca-central-1,g6.4xlarge,reserved_1y,partial_upfront,1.248844,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:59.884069 +AWS,ca-central-1,g6.4xlarge,reserved_3y,all_upfront,0.624415,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:27.444917 +AWS,ca-central-1,g6.4xlarge,reserved_3y,no_upfront,0.624415,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:31.409069 +AWS,ca-central-1,g6.4xlarge,reserved_3y,partial_upfront,0.624415,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:09.414499 +AWS,ca-central-1,g6.4xlarge,spot,NA,0.583838,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187824 +AWS,ca-central-1,g6.8xlarge,on_demand,NA,2.23666,USD,AWS Pricing API,2025-11-30T09:09:08.195349 +AWS,ca-central-1,g6.8xlarge,reserved_1y,all_upfront,1.359018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:37.364986 +AWS,ca-central-1,g6.8xlarge,reserved_1y,no_upfront,1.359018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:24.703723 +AWS,ca-central-1,g6.8xlarge,reserved_1y,partial_upfront,1.359018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:00.684593 +AWS,ca-central-1,g6.8xlarge,reserved_3y,all_upfront,0.453006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:28.233667 +AWS,ca-central-1,g6.8xlarge,reserved_3y,no_upfront,0.453006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:32.232105 +AWS,ca-central-1,g6.8xlarge,reserved_3y,partial_upfront,0.453006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:10.224421 +AWS,ca-central-1,g6.8xlarge,spot,NA,0.857662,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187851 +AWS,ca-central-1,g6.xlarge,on_demand,NA,0.8936,USD,AWS Pricing API,2025-11-30T09:09:06.690884 +AWS,ca-central-1,g6.xlarge,reserved_1y,all_upfront,0.58173,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:35.889267 +AWS,ca-central-1,g6.xlarge,reserved_1y,no_upfront,0.58173,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:23.197852 +AWS,ca-central-1,g6.xlarge,reserved_1y,partial_upfront,0.58173,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:59.204633 +AWS,ca-central-1,g6.xlarge,reserved_3y,all_upfront,0.58173,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:26.784259 +AWS,ca-central-1,g6.xlarge,reserved_3y,no_upfront,0.58173,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:30.720885 +AWS,ca-central-1,g6.xlarge,reserved_3y,partial_upfront,0.58173,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:08.743032 +AWS,ca-central-1,g6.xlarge,spot,NA,0.406856,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187806 +AWS,ca-central-1,gr6.4xlarge,on_demand,NA,1.709,USD,AWS Pricing API,2025-11-30T09:09:08.052735 +AWS,ca-central-1,gr6.4xlarge,reserved_1y,all_upfront,1.297945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:37.231740 +AWS,ca-central-1,gr6.4xlarge,reserved_1y,no_upfront,1.297945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:24.569147 +AWS,ca-central-1,gr6.4xlarge,reserved_1y,partial_upfront,1.297945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:00.548474 +AWS,ca-central-1,gr6.4xlarge,reserved_3y,all_upfront,0.432648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:28.100450 +AWS,ca-central-1,gr6.4xlarge,reserved_3y,no_upfront,0.432648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:32.092501 +AWS,ca-central-1,gr6.4xlarge,reserved_3y,partial_upfront,0.432648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:10.090663 +AWS,ca-central-1,gr6.4xlarge,spot,NA,0.601581,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187837 +AWS,ca-central-1,gr6.8xlarge,on_demand,NA,2.71628,USD,AWS Pricing API,2025-11-30T09:09:09.395415 +AWS,ca-central-1,gr6.8xlarge,reserved_1y,all_upfront,4.242466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:38.571965 +AWS,ca-central-1,gr6.8xlarge,reserved_1y,no_upfront,4.242466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:25.926129 +AWS,ca-central-1,gr6.8xlarge,reserved_1y,partial_upfront,4.242466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:01.919679 +AWS,ca-central-1,gr6.8xlarge,reserved_3y,all_upfront,1.414155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:29.414926 +AWS,ca-central-1,gr6.8xlarge,reserved_3y,no_upfront,1.414155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:33.461191 +AWS,ca-central-1,gr6.8xlarge,reserved_3y,partial_upfront,1.414155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:11.429988 +AWS,ca-central-1,gr6.8xlarge,spot,NA,0.782683,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187864 +AWS,ca-central-1,i3.16xlarge,on_demand,NA,5.504,USD,AWS Pricing API,2025-11-30T09:10:04.835598 +AWS,ca-central-1,i3.16xlarge,reserved_1y,all_upfront,3.763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:33.942231 +AWS,ca-central-1,i3.16xlarge,reserved_1y,no_upfront,3.763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:21.838501 +AWS,ca-central-1,i3.16xlarge,reserved_1y,partial_upfront,3.763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:56.996101 +AWS,ca-central-1,i3.16xlarge,reserved_3y,all_upfront,3.763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:23.426298 +AWS,ca-central-1,i3.16xlarge,reserved_3y,no_upfront,3.763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:29.788079 +AWS,ca-central-1,i3.16xlarge,reserved_3y,partial_upfront,3.763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:06.272633 +AWS,ca-central-1,i3.16xlarge,spot,NA,1.648907,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197696 +AWS,ca-central-1,i3.2xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T09:09:24.389426 +AWS,ca-central-1,i3.2xlarge,reserved_1y,all_upfront,0.515648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:53.605149 +AWS,ca-central-1,i3.2xlarge,reserved_1y,no_upfront,0.515648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:41.059405 +AWS,ca-central-1,i3.2xlarge,reserved_1y,partial_upfront,0.515648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:16.909723 +AWS,ca-central-1,i3.2xlarge,reserved_3y,all_upfront,0.343883,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:44.105243 +AWS,ca-central-1,i3.2xlarge,reserved_3y,no_upfront,0.343883,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:48.739095 +AWS,ca-central-1,i3.2xlarge,reserved_3y,partial_upfront,0.343883,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:26.306901 +AWS,ca-central-1,i3.2xlarge,spot,NA,0.247151,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188313 +AWS,ca-central-1,i3.4xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T09:09:25.885203 +AWS,ca-central-1,i3.4xlarge,reserved_1y,all_upfront,2.109703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:55.097206 +AWS,ca-central-1,i3.4xlarge,reserved_1y,no_upfront,2.109703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:42.564771 +AWS,ca-central-1,i3.4xlarge,reserved_1y,partial_upfront,2.109703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:18.379802 +AWS,ca-central-1,i3.4xlarge,reserved_3y,all_upfront,0.703234,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:45.559333 +AWS,ca-central-1,i3.4xlarge,reserved_3y,no_upfront,0.703234,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:50.260791 +AWS,ca-central-1,i3.4xlarge,reserved_3y,partial_upfront,0.703234,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:27.787138 +AWS,ca-central-1,i3.4xlarge,spot,NA,0.568014,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188368 +AWS,ca-central-1,i3.8xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T09:09:20.035957 +AWS,ca-central-1,i3.8xlarge,reserved_1y,all_upfront,1.752968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:49.272230 +AWS,ca-central-1,i3.8xlarge,reserved_1y,no_upfront,1.752968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:36.700568 +AWS,ca-central-1,i3.8xlarge,reserved_1y,partial_upfront,1.752968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:12.582896 +AWS,ca-central-1,i3.8xlarge,reserved_3y,all_upfront,0.584323,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:39.843955 +AWS,ca-central-1,i3.8xlarge,reserved_3y,no_upfront,0.584323,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:44.327253 +AWS,ca-central-1,i3.8xlarge,reserved_3y,partial_upfront,0.584323,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:22.006548 +AWS,ca-central-1,i3.8xlarge,spot,NA,0.865872,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188204 +AWS,ca-central-1,i3.large,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T09:09:25.079005 +AWS,ca-central-1,i3.large,reserved_1y,all_upfront,0.155096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:54.285663 +AWS,ca-central-1,i3.large,reserved_1y,no_upfront,0.155096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:41.747428 +AWS,ca-central-1,i3.large,reserved_1y,partial_upfront,0.155096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:17.579291 +AWS,ca-central-1,i3.large,reserved_3y,all_upfront,0.077699,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:44.767540 +AWS,ca-central-1,i3.large,reserved_3y,no_upfront,0.077699,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:49.423177 +AWS,ca-central-1,i3.large,reserved_3y,partial_upfront,0.077699,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:26.977223 +AWS,ca-central-1,i3.large,spot,NA,0.052921,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188374 +AWS,ca-central-1,i3.xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T09:09:50.415122 +AWS,ca-central-1,i3.xlarge,reserved_1y,all_upfront,0.223758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:19.775431 +AWS,ca-central-1,i3.xlarge,reserved_1y,no_upfront,0.223758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:07.439315 +AWS,ca-central-1,i3.xlarge,reserved_1y,partial_upfront,0.223758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:42.786850 +AWS,ca-central-1,i3.xlarge,reserved_3y,all_upfront,0.149253,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:09.509195 +AWS,ca-central-1,i3.xlarge,reserved_3y,no_upfront,0.149253,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:15.273720 +AWS,ca-central-1,i3.xlarge,reserved_3y,partial_upfront,0.149253,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:52.156055 +AWS,ca-central-1,i3.xlarge,spot,NA,0.122608,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197356 +AWS,ca-central-1,i3en.12xlarge,on_demand,NA,6.0,USD,AWS Pricing API,2025-11-30T09:09:22.082394 +AWS,ca-central-1,i3en.12xlarge,reserved_1y,all_upfront,4.721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:51.309316 +AWS,ca-central-1,i3en.12xlarge,reserved_1y,no_upfront,4.721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:38.733162 +AWS,ca-central-1,i3en.12xlarge,reserved_1y,partial_upfront,4.721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:14.615986 +AWS,ca-central-1,i3en.12xlarge,reserved_3y,all_upfront,4.721,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:41.835595 +AWS,ca-central-1,i3en.12xlarge,reserved_3y,no_upfront,4.721,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:46.386840 +AWS,ca-central-1,i3en.12xlarge,reserved_3y,partial_upfront,4.721,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:24.019717 +AWS,ca-central-1,i3en.12xlarge,spot,NA,1.984455,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188216 +AWS,ca-central-1,i3en.24xlarge,on_demand,NA,12.0,USD,AWS Pricing API,2025-11-30T09:09:27.372812 +AWS,ca-central-1,i3en.24xlarge,reserved_1y,all_upfront,7.649429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:56.590733 +AWS,ca-central-1,i3en.24xlarge,reserved_1y,no_upfront,7.649429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:44.080501 +AWS,ca-central-1,i3en.24xlarge,reserved_1y,partial_upfront,7.649429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:19.862997 +AWS,ca-central-1,i3en.24xlarge,reserved_3y,all_upfront,2.54981,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:47.004590 +AWS,ca-central-1,i3en.24xlarge,reserved_3y,no_upfront,2.54981,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:51.782726 +AWS,ca-central-1,i3en.24xlarge,reserved_3y,partial_upfront,2.54981,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:29.270559 +AWS,ca-central-1,i3en.24xlarge,spot,NA,3.249187,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188457 +AWS,ca-central-1,i3en.2xlarge,on_demand,NA,1.0,USD,AWS Pricing API,2025-11-30T09:09:17.223397 +AWS,ca-central-1,i3en.2xlarge,reserved_1y,all_upfront,1.376826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:46.460966 +AWS,ca-central-1,i3en.2xlarge,reserved_1y,no_upfront,1.376826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:33.827280 +AWS,ca-central-1,i3en.2xlarge,reserved_1y,partial_upfront,1.376826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:09.746642 +AWS,ca-central-1,i3en.2xlarge,reserved_3y,all_upfront,0.458942,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:37.053960 +AWS,ca-central-1,i3en.2xlarge,reserved_3y,no_upfront,0.458942,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:41.456434 +AWS,ca-central-1,i3en.2xlarge,reserved_3y,partial_upfront,0.458942,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:19.169931 +AWS,ca-central-1,i3en.2xlarge,spot,NA,0.394688,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188097 +AWS,ca-central-1,i3en.3xlarge,on_demand,NA,1.5,USD,AWS Pricing API,2025-11-30T09:10:12.076050 +AWS,ca-central-1,i3en.3xlarge,reserved_1y,all_upfront,1.18,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:41.108599 +AWS,ca-central-1,i3en.3xlarge,reserved_1y,no_upfront,1.18,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:29.072131 +AWS,ca-central-1,i3en.3xlarge,reserved_1y,partial_upfront,1.18,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:04.181203 +AWS,ca-central-1,i3en.3xlarge,reserved_3y,all_upfront,1.18,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:30.414106 +AWS,ca-central-1,i3en.3xlarge,reserved_3y,no_upfront,1.18,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:37.068168 +AWS,ca-central-1,i3en.3xlarge,reserved_3y,partial_upfront,1.18,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:13.474120 +AWS,ca-central-1,i3en.3xlarge,spot,NA,0.477009,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197827 +AWS,ca-central-1,i3en.6xlarge,on_demand,NA,3.0,USD,AWS Pricing API,2025-11-30T09:10:03.311895 +AWS,ca-central-1,i3en.6xlarge,reserved_1y,all_upfront,3.404338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:32.461890 +AWS,ca-central-1,i3en.6xlarge,reserved_1y,no_upfront,3.404338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:20.343167 +AWS,ca-central-1,i3en.6xlarge,reserved_1y,partial_upfront,3.404338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:55.522780 +AWS,ca-central-1,i3en.6xlarge,reserved_3y,all_upfront,1.134779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:21.977256 +AWS,ca-central-1,i3en.6xlarge,reserved_3y,no_upfront,1.134779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:28.262311 +AWS,ca-central-1,i3en.6xlarge,reserved_3y,partial_upfront,1.134779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:04.799469 +AWS,ca-central-1,i3en.6xlarge,spot,NA,0.856959,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197645 +AWS,ca-central-1,i3en.large,on_demand,NA,0.25,USD,AWS Pricing API,2025-11-30T09:09:35.908946 +AWS,ca-central-1,i3en.large,reserved_1y,all_upfront,0.197,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:05.169370 +AWS,ca-central-1,i3en.large,reserved_1y,no_upfront,0.197,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:52.692541 +AWS,ca-central-1,i3en.large,reserved_1y,partial_upfront,0.197,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:28.356266 +AWS,ca-central-1,i3en.large,reserved_3y,all_upfront,0.197,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:55.348026 +AWS,ca-central-1,i3en.large,reserved_3y,no_upfront,0.197,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:00.499140 +AWS,ca-central-1,i3en.large,reserved_3y,partial_upfront,0.197,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:37.788488 +AWS,ca-central-1,i3en.large,spot,NA,0.070856,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188803 +AWS,ca-central-1,i3en.xlarge,on_demand,NA,0.5,USD,AWS Pricing API,2025-11-30T09:09:35.225437 +AWS,ca-central-1,i3en.xlarge,reserved_1y,all_upfront,0.367123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:04.483678 +AWS,ca-central-1,i3en.xlarge,reserved_1y,no_upfront,0.367123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:52.012800 +AWS,ca-central-1,i3en.xlarge,reserved_1y,partial_upfront,0.367123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:27.683170 +AWS,ca-central-1,i3en.xlarge,reserved_3y,all_upfront,0.122374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:54.691879 +AWS,ca-central-1,i3en.xlarge,reserved_3y,no_upfront,0.122374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:59.802399 +AWS,ca-central-1,i3en.xlarge,reserved_3y,partial_upfront,0.122374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:37.125469 +AWS,ca-central-1,i3en.xlarge,spot,NA,0.203216,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188731 +AWS,ca-central-1,i4g.16xlarge,on_demand,NA,5.44637,USD,AWS Pricing API,2025-11-30T09:09:52.311478 +AWS,ca-central-1,i4g.16xlarge,reserved_1y,all_upfront,3.385424,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:21.649674 +AWS,ca-central-1,i4g.16xlarge,reserved_1y,no_upfront,3.385424,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:09.366720 +AWS,ca-central-1,i4g.16xlarge,reserved_1y,partial_upfront,3.385424,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:44.691660 +AWS,ca-central-1,i4g.16xlarge,reserved_3y,all_upfront,2.256961,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:11.366421 +AWS,ca-central-1,i4g.16xlarge,reserved_3y,no_upfront,2.256961,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:17.222217 +AWS,ca-central-1,i4g.16xlarge,reserved_3y,partial_upfront,2.256961,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:54.029197 +AWS,ca-central-1,i4g.16xlarge,spot,NA,2.031761,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197427 +AWS,ca-central-1,i4g.2xlarge,on_demand,NA,0.6808,USD,AWS Pricing API,2025-11-30T09:10:06.470882 +AWS,ca-central-1,i4g.2xlarge,reserved_1y,all_upfront,0.414726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:35.590967 +AWS,ca-central-1,i4g.2xlarge,reserved_1y,no_upfront,0.414726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:23.476181 +AWS,ca-central-1,i4g.2xlarge,reserved_1y,partial_upfront,0.414726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:58.631451 +AWS,ca-central-1,i4g.2xlarge,reserved_3y,all_upfront,0.138242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:25.007814 +AWS,ca-central-1,i4g.2xlarge,reserved_3y,no_upfront,0.138242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:31.458302 +AWS,ca-central-1,i4g.2xlarge,reserved_3y,partial_upfront,0.138242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:07.887738 +AWS,ca-central-1,i4g.2xlarge,spot,NA,0.213633,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197720 +AWS,ca-central-1,i4g.4xlarge,on_demand,NA,1.36159,USD,AWS Pricing API,2025-11-30T09:10:05.380220 +AWS,ca-central-1,i4g.4xlarge,reserved_1y,all_upfront,0.846354,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:34.485571 +AWS,ca-central-1,i4g.4xlarge,reserved_1y,no_upfront,0.846354,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:22.382147 +AWS,ca-central-1,i4g.4xlarge,reserved_1y,partial_upfront,0.846354,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:57.531325 +AWS,ca-central-1,i4g.4xlarge,reserved_3y,all_upfront,0.564238,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:23.950009 +AWS,ca-central-1,i4g.4xlarge,reserved_3y,no_upfront,0.564238,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:30.342014 +AWS,ca-central-1,i4g.4xlarge,reserved_3y,partial_upfront,0.564238,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:06.815277 +AWS,ca-central-1,i4g.4xlarge,spot,NA,0.565817,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197700 +AWS,ca-central-1,i4g.8xlarge,on_demand,NA,2.72319,USD,AWS Pricing API,2025-11-30T09:09:52.580503 +AWS,ca-central-1,i4g.8xlarge,reserved_1y,all_upfront,1.77737,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:21.919727 +AWS,ca-central-1,i4g.8xlarge,reserved_1y,no_upfront,1.77737,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:09.638641 +AWS,ca-central-1,i4g.8xlarge,reserved_1y,partial_upfront,1.77737,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:44.960210 +AWS,ca-central-1,i4g.8xlarge,reserved_3y,all_upfront,1.77737,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:11.632331 +AWS,ca-central-1,i4g.8xlarge,reserved_3y,no_upfront,1.77737,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:17.501968 +AWS,ca-central-1,i4g.8xlarge,reserved_3y,partial_upfront,1.77737,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:54.302087 +AWS,ca-central-1,i4g.8xlarge,spot,NA,1.148854,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197432 +AWS,ca-central-1,i4g.large,on_demand,NA,0.1702,USD,AWS Pricing API,2025-11-30T09:09:26.429654 +AWS,ca-central-1,i4g.large,reserved_1y,all_upfront,0.12578,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:55.645426 +AWS,ca-central-1,i4g.large,reserved_1y,no_upfront,0.12578,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:43.109487 +AWS,ca-central-1,i4g.large,reserved_1y,partial_upfront,0.12578,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:18.916386 +AWS,ca-central-1,i4g.large,reserved_3y,all_upfront,0.083847,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:46.083151 +AWS,ca-central-1,i4g.large,reserved_3y,no_upfront,0.083847,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:50.805147 +AWS,ca-central-1,i4g.large,reserved_3y,partial_upfront,0.083847,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:28.325780 +AWS,ca-central-1,i4g.large,spot,NA,0.054892,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188450 +AWS,ca-central-1,i4g.xlarge,on_demand,NA,0.3404,USD,AWS Pricing API,2025-11-30T09:09:49.211670 +AWS,ca-central-1,i4g.xlarge,reserved_1y,all_upfront,0.519749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:18.564476 +AWS,ca-central-1,i4g.xlarge,reserved_1y,no_upfront,0.519749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:06.213958 +AWS,ca-central-1,i4g.xlarge,reserved_1y,partial_upfront,0.519749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:41.574467 +AWS,ca-central-1,i4g.xlarge,reserved_3y,all_upfront,0.17325,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:08.319933 +AWS,ca-central-1,i4g.xlarge,reserved_3y,no_upfront,0.17325,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:14.036115 +AWS,ca-central-1,i4g.xlarge,reserved_3y,partial_upfront,0.17325,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:50.962637 +AWS,ca-central-1,i4g.xlarge,spot,NA,0.111328,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197352 +AWS,ca-central-1,i4i.16xlarge,on_demand,NA,6.054,USD,AWS Pricing API,2025-11-30T09:09:40.099824 +AWS,ca-central-1,i4i.16xlarge,reserved_1y,all_upfront,4.396804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:09.374330 +AWS,ca-central-1,i4i.16xlarge,reserved_1y,no_upfront,4.396804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:56.936239 +AWS,ca-central-1,i4i.16xlarge,reserved_1y,partial_upfront,4.396804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:32.513960 +AWS,ca-central-1,i4i.16xlarge,reserved_3y,all_upfront,1.465601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:59.440121 +AWS,ca-central-1,i4i.16xlarge,reserved_3y,no_upfront,1.465601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:04.798365 +AWS,ca-central-1,i4i.16xlarge,reserved_3y,partial_upfront,1.465601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:41.952871 +AWS,ca-central-1,i4i.16xlarge,spot,NA,1.764437,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188968 +AWS,ca-central-1,i4i.2xlarge,on_demand,NA,0.757,USD,AWS Pricing API,2025-11-30T09:09:56.092453 +AWS,ca-central-1,i4i.2xlarge,reserved_1y,all_upfront,0.470046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:25.419792 +AWS,ca-central-1,i4i.2xlarge,reserved_1y,no_upfront,0.470046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:13.185281 +AWS,ca-central-1,i4i.2xlarge,reserved_1y,partial_upfront,0.470046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:48.489612 +AWS,ca-central-1,i4i.2xlarge,reserved_3y,all_upfront,0.313349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:15.077219 +AWS,ca-central-1,i4i.2xlarge,reserved_3y,no_upfront,0.313349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:21.076207 +AWS,ca-central-1,i4i.2xlarge,reserved_3y,partial_upfront,0.313349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:57.778279 +AWS,ca-central-1,i4i.2xlarge,spot,NA,0.342615,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197473 +AWS,ca-central-1,i4i.32xlarge,on_demand,NA,12.1088,USD,AWS Pricing API,2025-11-30T09:10:08.720946 +AWS,ca-central-1,i4i.32xlarge,reserved_1y,all_upfront,6.78341,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:37.738180 +AWS,ca-central-1,i4i.32xlarge,reserved_1y,no_upfront,6.78341,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:25.657082 +AWS,ca-central-1,i4i.32xlarge,reserved_1y,partial_upfront,6.78341,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:00.773320 +AWS,ca-central-1,i4i.32xlarge,reserved_3y,all_upfront,6.78341,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:27.118566 +AWS,ca-central-1,i4i.32xlarge,reserved_3y,no_upfront,6.78341,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:33.652234 +AWS,ca-central-1,i4i.32xlarge,reserved_3y,partial_upfront,6.78341,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:10.114985 +AWS,ca-central-1,i4i.32xlarge,spot,NA,3.307661,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197781 +AWS,ca-central-1,i4i.4xlarge,on_demand,NA,1.514,USD,AWS Pricing API,2025-11-30T09:09:44.616990 +AWS,ca-central-1,i4i.4xlarge,reserved_1y,all_upfront,1.121845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:13.888569 +AWS,ca-central-1,i4i.4xlarge,reserved_1y,no_upfront,1.121845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:01.516093 +AWS,ca-central-1,i4i.4xlarge,reserved_1y,partial_upfront,1.121845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:36.970808 +AWS,ca-central-1,i4i.4xlarge,reserved_3y,all_upfront,0.747948,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:03.842487 +AWS,ca-central-1,i4i.4xlarge,reserved_3y,no_upfront,0.747948,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:09.354745 +AWS,ca-central-1,i4i.4xlarge,reserved_3y,partial_upfront,0.747948,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:46.400762 +AWS,ca-central-1,i4i.4xlarge,spot,NA,0.595963,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197204 +AWS,ca-central-1,i4i.8xlarge,on_demand,NA,3.027,USD,AWS Pricing API,2025-11-30T09:09:47.601553 +AWS,ca-central-1,i4i.8xlarge,reserved_1y,all_upfront,1.842352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:16.935255 +AWS,ca-central-1,i4i.8xlarge,reserved_1y,no_upfront,1.842352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:04.558656 +AWS,ca-central-1,i4i.8xlarge,reserved_1y,partial_upfront,1.842352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:39.971929 +AWS,ca-central-1,i4i.8xlarge,reserved_3y,all_upfront,0.614117,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:06.741824 +AWS,ca-central-1,i4i.8xlarge,reserved_3y,no_upfront,0.614117,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:12.380466 +AWS,ca-central-1,i4i.8xlarge,reserved_3y,partial_upfront,0.614117,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:49.366426 +AWS,ca-central-1,i4i.8xlarge,spot,NA,0.837842,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197304 +AWS,ca-central-1,i4i.large,on_demand,NA,0.189,USD,AWS Pricing API,2025-11-30T09:10:13.324951 +AWS,ca-central-1,i4i.large,reserved_1y,all_upfront,0.140091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:42.332417 +AWS,ca-central-1,i4i.large,reserved_1y,no_upfront,0.140091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:30.295545 +AWS,ca-central-1,i4i.large,reserved_1y,partial_upfront,0.140091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:05.399664 +AWS,ca-central-1,i4i.large,reserved_3y,all_upfront,0.093364,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:31.613908 +AWS,ca-central-1,i4i.large,reserved_3y,no_upfront,0.093364,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:38.317938 +AWS,ca-central-1,i4i.large,reserved_3y,partial_upfront,0.093364,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:14.686499 +AWS,ca-central-1,i4i.large,spot,NA,0.056579,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197857 +AWS,ca-central-1,i4i.xlarge,on_demand,NA,0.378,USD,AWS Pricing API,2025-11-30T09:09:54.450541 +AWS,ca-central-1,i4i.xlarge,reserved_1y,all_upfront,0.294,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:23.797593 +AWS,ca-central-1,i4i.xlarge,reserved_1y,no_upfront,0.294,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:11.548129 +AWS,ca-central-1,i4i.xlarge,reserved_1y,partial_upfront,0.294,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:46.852331 +AWS,ca-central-1,i4i.xlarge,reserved_3y,all_upfront,0.294,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:13.486477 +AWS,ca-central-1,i4i.xlarge,reserved_3y,no_upfront,0.294,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:19.425719 +AWS,ca-central-1,i4i.xlarge,reserved_3y,partial_upfront,0.294,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:56.174172 +AWS,ca-central-1,i4i.xlarge,spot,NA,0.133264,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197440 +AWS,ca-central-1,i7i.12xlarge,on_demand,NA,4.9949,USD,AWS Pricing API,2025-11-30T09:09:32.663122 +AWS,ca-central-1,i7i.16xlarge,on_demand,NA,6.6598,USD,AWS Pricing API,2025-11-30T09:10:18.541434 +AWS,ca-central-1,i7i.24xlarge,on_demand,NA,9.9898,USD,AWS Pricing API,2025-11-30T09:09:13.581066 +AWS,ca-central-1,i7i.2xlarge,on_demand,NA,0.8325,USD,AWS Pricing API,2025-11-30T09:09:10.760692 +AWS,ca-central-1,i7i.48xlarge,on_demand,NA,19.9795,USD,AWS Pricing API,2025-11-30T09:09:12.520628 +AWS,ca-central-1,i7i.4xlarge,on_demand,NA,1.665,USD,AWS Pricing API,2025-11-30T09:10:15.468124 +AWS,ca-central-1,i7i.8xlarge,on_demand,NA,3.3299,USD,AWS Pricing API,2025-11-30T09:09:45.301049 +AWS,ca-central-1,i7i.large,on_demand,NA,0.2081,USD,AWS Pricing API,2025-11-30T09:09:28.851556 +AWS,ca-central-1,i7i.xlarge,on_demand,NA,0.4162,USD,AWS Pricing API,2025-11-30T09:09:37.258731 +AWS,ca-central-1,i8g.12xlarge,on_demand,NA,4.5384,USD,AWS Pricing API,2025-11-30T09:10:08.987131 +AWS,ca-central-1,i8g.12xlarge,spot,NA,2.371918,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197786 +AWS,ca-central-1,i8g.16xlarge,on_demand,NA,6.0512,USD,AWS Pricing API,2025-11-30T09:10:05.920688 +AWS,ca-central-1,i8g.16xlarge,spot,NA,3.234313,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197704 +AWS,ca-central-1,i8g.24xlarge,on_demand,NA,9.0768,USD,AWS Pricing API,2025-11-30T09:10:08.451310 +AWS,ca-central-1,i8g.24xlarge,spot,NA,4.32476,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197741 +AWS,ca-central-1,i8g.2xlarge,on_demand,NA,0.7564,USD,AWS Pricing API,2025-11-30T09:09:35.365585 +AWS,ca-central-1,i8g.2xlarge,spot,NA,0.403102,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188756 +AWS,ca-central-1,i8g.48xlarge,on_demand,NA,18.1536,USD,AWS Pricing API,2025-11-30T09:09:16.016536 +AWS,ca-central-1,i8g.48xlarge,spot,NA,9.414806,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188070 +AWS,ca-central-1,i8g.4xlarge,on_demand,NA,1.5128,USD,AWS Pricing API,2025-11-30T09:10:03.038840 +AWS,ca-central-1,i8g.4xlarge,spot,NA,0.811075,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197618 +AWS,ca-central-1,i8g.8xlarge,on_demand,NA,3.0256,USD,AWS Pricing API,2025-11-30T09:10:22.177041 +AWS,ca-central-1,i8g.8xlarge,spot,NA,1.713924,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198101 +AWS,ca-central-1,i8g.large,on_demand,NA,0.1891,USD,AWS Pricing API,2025-11-30T09:09:39.834548 +AWS,ca-central-1,i8g.large,spot,NA,0.090687,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188887 +AWS,ca-central-1,i8g.xlarge,on_demand,NA,0.3782,USD,AWS Pricing API,2025-11-30T09:09:31.852820 +AWS,ca-central-1,i8g.xlarge,spot,NA,0.195769,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188677 +AWS,ca-central-1,im4gn.16xlarge,on_demand,NA,6.41766,USD,AWS Pricing API,2025-11-30T09:09:38.884445 +AWS,ca-central-1,im4gn.16xlarge,reserved_1y,all_upfront,4.606164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:08.159138 +AWS,ca-central-1,im4gn.16xlarge,reserved_1y,no_upfront,4.606164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:55.714370 +AWS,ca-central-1,im4gn.16xlarge,reserved_1y,partial_upfront,4.606164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:31.308746 +AWS,ca-central-1,im4gn.16xlarge,reserved_3y,all_upfront,1.535388,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:58.252953 +AWS,ca-central-1,im4gn.16xlarge,reserved_3y,no_upfront,1.535388,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:03.563830 +AWS,ca-central-1,im4gn.16xlarge,reserved_3y,partial_upfront,1.535388,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:40.743963 +AWS,ca-central-1,im4gn.16xlarge,spot,NA,2.261507,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188917 +AWS,ca-central-1,im4gn.2xlarge,on_demand,NA,0.80221,USD,AWS Pricing API,2025-11-30T09:09:36.580463 +AWS,ca-central-1,im4gn.2xlarge,reserved_1y,all_upfront,0.587481,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:05.850795 +AWS,ca-central-1,im4gn.2xlarge,reserved_1y,no_upfront,0.587481,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:53.370977 +AWS,ca-central-1,im4gn.2xlarge,reserved_1y,partial_upfront,0.587481,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:29.018686 +AWS,ca-central-1,im4gn.2xlarge,reserved_3y,all_upfront,0.391667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:56.003168 +AWS,ca-central-1,im4gn.2xlarge,reserved_3y,no_upfront,0.391667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:01.182509 +AWS,ca-central-1,im4gn.2xlarge,reserved_3y,partial_upfront,0.391667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:38.452473 +AWS,ca-central-1,im4gn.2xlarge,spot,NA,0.230316,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188816 +AWS,ca-central-1,im4gn.4xlarge,on_demand,NA,1.60442,USD,AWS Pricing API,2025-11-30T09:09:31.302097 +AWS,ca-central-1,im4gn.4xlarge,reserved_1y,all_upfront,1.355238,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:00.508366 +AWS,ca-central-1,im4gn.4xlarge,reserved_1y,no_upfront,1.355238,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:48.056788 +AWS,ca-central-1,im4gn.4xlarge,reserved_1y,partial_upfront,1.355238,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:23.766951 +AWS,ca-central-1,im4gn.4xlarge,reserved_3y,all_upfront,0.677613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:50.865580 +AWS,ca-central-1,im4gn.4xlarge,reserved_3y,no_upfront,0.677613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:55.795754 +AWS,ca-central-1,im4gn.4xlarge,reserved_3y,partial_upfront,0.677613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:33.233248 +AWS,ca-central-1,im4gn.4xlarge,spot,NA,0.461158,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188632 +AWS,ca-central-1,im4gn.8xlarge,on_demand,NA,3.20883,USD,AWS Pricing API,2025-11-30T09:09:31.718614 +AWS,ca-central-1,im4gn.8xlarge,reserved_1y,all_upfront,1.969423,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:00.914831 +AWS,ca-central-1,im4gn.8xlarge,reserved_1y,no_upfront,1.969423,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:48.464777 +AWS,ca-central-1,im4gn.8xlarge,reserved_1y,partial_upfront,1.969423,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:24.173832 +AWS,ca-central-1,im4gn.8xlarge,reserved_3y,all_upfront,1.312954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:51.263869 +AWS,ca-central-1,im4gn.8xlarge,reserved_3y,no_upfront,1.312954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:56.223594 +AWS,ca-central-1,im4gn.8xlarge,reserved_3y,partial_upfront,1.312954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:33.633545 +AWS,ca-central-1,im4gn.8xlarge,spot,NA,1.266758,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188590 +AWS,ca-central-1,im4gn.large,on_demand,NA,0.20055,USD,AWS Pricing API,2025-11-30T09:09:32.393443 +AWS,ca-central-1,im4gn.large,reserved_1y,all_upfront,0.12307,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:01.601000 +AWS,ca-central-1,im4gn.large,reserved_1y,no_upfront,0.12307,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:49.145799 +AWS,ca-central-1,im4gn.large,reserved_1y,partial_upfront,0.12307,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:24.847778 +AWS,ca-central-1,im4gn.large,reserved_3y,all_upfront,0.08205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:51.911919 +AWS,ca-central-1,im4gn.large,reserved_3y,no_upfront,0.08205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:56.917585 +AWS,ca-central-1,im4gn.large,reserved_3y,partial_upfront,0.08205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:34.304745 +AWS,ca-central-1,im4gn.large,spot,NA,0.077466,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188651 +AWS,ca-central-1,im4gn.xlarge,on_demand,NA,0.4011,USD,AWS Pricing API,2025-11-30T09:10:20.550509 +AWS,ca-central-1,im4gn.xlarge,reserved_1y,all_upfront,0.2879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:49.631450 +AWS,ca-central-1,im4gn.xlarge,reserved_1y,no_upfront,0.2879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:37.638784 +AWS,ca-central-1,im4gn.xlarge,reserved_1y,partial_upfront,0.2879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:12.664970 +AWS,ca-central-1,im4gn.xlarge,reserved_3y,all_upfront,0.095967,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:38.762307 +AWS,ca-central-1,im4gn.xlarge,reserved_3y,no_upfront,0.095967,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:45.754671 +AWS,ca-central-1,im4gn.xlarge,reserved_3y,partial_upfront,0.095967,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:21.974498 +AWS,ca-central-1,im4gn.xlarge,spot,NA,0.131019,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198016 +AWS,ca-central-1,is4gen.2xlarge,on_demand,NA,1.275,USD,AWS Pricing API,2025-11-30T09:09:29.679847 +AWS,ca-central-1,is4gen.2xlarge,reserved_1y,all_upfront,0.812215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:58.900281 +AWS,ca-central-1,is4gen.2xlarge,reserved_1y,no_upfront,0.812215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:46.412662 +AWS,ca-central-1,is4gen.2xlarge,reserved_1y,partial_upfront,0.812215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:22.156465 +AWS,ca-central-1,is4gen.2xlarge,reserved_3y,all_upfront,0.270738,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:49.279602 +AWS,ca-central-1,is4gen.2xlarge,reserved_3y,no_upfront,0.270738,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:54.146955 +AWS,ca-central-1,is4gen.2xlarge,reserved_3y,partial_upfront,0.270738,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:31.621041 +AWS,ca-central-1,is4gen.2xlarge,spot,NA,0.518628,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188536 +AWS,ca-central-1,is4gen.4xlarge,on_demand,NA,2.55,USD,AWS Pricing API,2025-11-30T09:10:13.051659 +AWS,ca-central-1,is4gen.4xlarge,reserved_1y,all_upfront,1.979874,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:42.057944 +AWS,ca-central-1,is4gen.4xlarge,reserved_1y,no_upfront,1.979874,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:30.025865 +AWS,ca-central-1,is4gen.4xlarge,reserved_1y,partial_upfront,1.979874,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:05.130532 +AWS,ca-central-1,is4gen.4xlarge,reserved_3y,all_upfront,1.319905,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:31.346765 +AWS,ca-central-1,is4gen.4xlarge,reserved_3y,no_upfront,1.319905,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:38.034527 +AWS,ca-central-1,is4gen.4xlarge,reserved_3y,partial_upfront,1.319905,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:14.417966 +AWS,ca-central-1,is4gen.4xlarge,spot,NA,0.952651,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197873 +AWS,ca-central-1,is4gen.8xlarge,on_demand,NA,5.1,USD,AWS Pricing API,2025-11-30T09:09:11.712352 +AWS,ca-central-1,is4gen.8xlarge,reserved_1y,all_upfront,4.15768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:40.879469 +AWS,ca-central-1,is4gen.8xlarge,reserved_1y,no_upfront,4.15768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:28.245215 +AWS,ca-central-1,is4gen.8xlarge,reserved_1y,partial_upfront,4.15768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:04.234596 +AWS,ca-central-1,is4gen.8xlarge,reserved_3y,all_upfront,4.15768,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:31.651257 +AWS,ca-central-1,is4gen.8xlarge,reserved_3y,no_upfront,4.15768,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:35.789416 +AWS,ca-central-1,is4gen.8xlarge,reserved_3y,partial_upfront,4.15768,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:13.706424 +AWS,ca-central-1,is4gen.8xlarge,spot,NA,1.86661,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187945 +AWS,ca-central-1,is4gen.large,on_demand,NA,0.31875,USD,AWS Pricing API,2025-11-30T09:09:52.976016 +AWS,ca-central-1,is4gen.large,reserved_1y,all_upfront,0.24258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:22.319011 +AWS,ca-central-1,is4gen.large,reserved_1y,no_upfront,0.24258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:10.042860 +AWS,ca-central-1,is4gen.large,reserved_1y,partial_upfront,0.24258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:45.367000 +AWS,ca-central-1,is4gen.large,reserved_3y,all_upfront,0.08086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:12.036229 +AWS,ca-central-1,is4gen.large,reserved_3y,no_upfront,0.08086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:17.909727 +AWS,ca-central-1,is4gen.large,reserved_3y,partial_upfront,0.08086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:54.700198 +AWS,ca-central-1,is4gen.large,spot,NA,0.132786,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197423 +AWS,ca-central-1,is4gen.xlarge,on_demand,NA,0.6375,USD,AWS Pricing API,2025-11-30T09:09:37.395650 +AWS,ca-central-1,is4gen.xlarge,reserved_1y,all_upfront,0.51971,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:06.662145 +AWS,ca-central-1,is4gen.xlarge,reserved_1y,no_upfront,0.51971,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:54.197852 +AWS,ca-central-1,is4gen.xlarge,reserved_1y,partial_upfront,0.51971,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:29.835723 +AWS,ca-central-1,is4gen.xlarge,reserved_3y,all_upfront,0.51971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:56.801980 +AWS,ca-central-1,is4gen.xlarge,reserved_3y,no_upfront,0.51971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:02.018123 +AWS,ca-central-1,is4gen.xlarge,reserved_3y,partial_upfront,0.51971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:39.261100 +AWS,ca-central-1,is4gen.xlarge,spot,NA,0.218136,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188851 +AWS,ca-central-1,m4.10xlarge,on_demand,NA,2.22,USD,AWS Pricing API,2025-11-30T09:09:42.562360 +AWS,ca-central-1,m4.10xlarge,reserved_1y,all_upfront,1.759977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:11.840309 +AWS,ca-central-1,m4.10xlarge,reserved_1y,no_upfront,1.759977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:59.412155 +AWS,ca-central-1,m4.10xlarge,reserved_1y,partial_upfront,1.759977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:34.948787 +AWS,ca-central-1,m4.10xlarge,reserved_3y,all_upfront,0.879992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:01.840855 +AWS,ca-central-1,m4.10xlarge,reserved_3y,no_upfront,0.879992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:07.279604 +AWS,ca-central-1,m4.10xlarge,reserved_3y,partial_upfront,0.879992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:44.399732 +AWS,ca-central-1,m4.10xlarge,spot,NA,0.763812,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.189013 +AWS,ca-central-1,m4.16xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:09:47.738409 +AWS,ca-central-1,m4.16xlarge,reserved_1y,all_upfront,4.760502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:17.072617 +AWS,ca-central-1,m4.16xlarge,reserved_1y,no_upfront,4.760502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:04.698530 +AWS,ca-central-1,m4.16xlarge,reserved_1y,partial_upfront,4.760502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:40.108752 +AWS,ca-central-1,m4.16xlarge,reserved_3y,all_upfront,1.586834,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:06.874100 +AWS,ca-central-1,m4.16xlarge,reserved_3y,no_upfront,1.586834,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:12.522410 +AWS,ca-central-1,m4.16xlarge,reserved_3y,partial_upfront,1.586834,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:49.497398 +AWS,ca-central-1,m4.16xlarge,spot,NA,1.158604,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197322 +AWS,ca-central-1,m4.2xlarge,on_demand,NA,0.444,USD,AWS Pricing API,2025-11-30T09:09:29.268812 +AWS,ca-central-1,m4.2xlarge,reserved_1y,all_upfront,0.299043,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:58.495930 +AWS,ca-central-1,m4.2xlarge,reserved_1y,no_upfront,0.299043,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:46.002704 +AWS,ca-central-1,m4.2xlarge,reserved_1y,partial_upfront,0.299043,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:21.753929 +AWS,ca-central-1,m4.2xlarge,reserved_3y,all_upfront,0.199348,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:48.873863 +AWS,ca-central-1,m4.2xlarge,reserved_3y,no_upfront,0.199348,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:53.733140 +AWS,ca-central-1,m4.2xlarge,reserved_3y,partial_upfront,0.199348,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:31.220190 +AWS,ca-central-1,m4.2xlarge,spot,NA,0.187993,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188569 +AWS,ca-central-1,m4.4xlarge,on_demand,NA,0.888,USD,AWS Pricing API,2025-11-30T09:10:03.740399 +AWS,ca-central-1,m4.4xlarge,reserved_1y,all_upfront,0.520046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:32.870919 +AWS,ca-central-1,m4.4xlarge,reserved_1y,no_upfront,0.520046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:20.755727 +AWS,ca-central-1,m4.4xlarge,reserved_1y,partial_upfront,0.520046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:55.925737 +AWS,ca-central-1,m4.4xlarge,reserved_3y,all_upfront,0.346682,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:22.377452 +AWS,ca-central-1,m4.4xlarge,reserved_3y,no_upfront,0.346682,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:28.685762 +AWS,ca-central-1,m4.4xlarge,reserved_3y,partial_upfront,0.346682,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:05.198924 +AWS,ca-central-1,m4.4xlarge,spot,NA,0.325676,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197658 +AWS,ca-central-1,m4.large,on_demand,NA,0.111,USD,AWS Pricing API,2025-11-30T09:09:11.306834 +AWS,ca-central-1,m4.large,reserved_1y,all_upfront,0.0683,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:40.462843 +AWS,ca-central-1,m4.large,reserved_1y,no_upfront,0.0683,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:27.835949 +AWS,ca-central-1,m4.large,reserved_1y,partial_upfront,0.0683,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:03.831933 +AWS,ca-central-1,m4.large,reserved_3y,all_upfront,0.0683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:31.254830 +AWS,ca-central-1,m4.large,reserved_3y,no_upfront,0.0683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:35.381070 +AWS,ca-central-1,m4.large,reserved_3y,partial_upfront,0.0683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:13.302161 +AWS,ca-central-1,m4.large,spot,NA,0.044581,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187933 +AWS,ca-central-1,m4.xlarge,on_demand,NA,0.222,USD,AWS Pricing API,2025-11-30T09:09:52.038510 +AWS,ca-central-1,m4.xlarge,reserved_1y,all_upfront,0.297489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:21.384923 +AWS,ca-central-1,m4.xlarge,reserved_1y,no_upfront,0.297489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:09.086667 +AWS,ca-central-1,m4.xlarge,reserved_1y,partial_upfront,0.297489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:44.424937 +AWS,ca-central-1,m4.xlarge,reserved_3y,all_upfront,0.099163,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:11.102293 +AWS,ca-central-1,m4.xlarge,reserved_3y,no_upfront,0.099163,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:16.940201 +AWS,ca-central-1,m4.xlarge,reserved_3y,partial_upfront,0.099163,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:53.764546 +AWS,ca-central-1,m4.xlarge,spot,NA,0.103223,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197378 +AWS,ca-central-1,m5.12xlarge,on_demand,NA,2.568,USD,AWS Pricing API,2025-11-30T09:09:29.408083 +AWS,ca-central-1,m5.12xlarge,reserved_1y,all_upfront,1.747603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:58.631579 +AWS,ca-central-1,m5.12xlarge,reserved_1y,no_upfront,1.747603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:46.140141 +AWS,ca-central-1,m5.12xlarge,reserved_1y,partial_upfront,1.747603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:21.888621 +AWS,ca-central-1,m5.12xlarge,reserved_3y,all_upfront,0.582534,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:49.016102 +AWS,ca-central-1,m5.12xlarge,reserved_3y,no_upfront,0.582534,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:53.870503 +AWS,ca-central-1,m5.12xlarge,reserved_3y,partial_upfront,0.582534,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:31.353467 +AWS,ca-central-1,m5.12xlarge,spot,NA,0.826472,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188557 +AWS,ca-central-1,m5.16xlarge,on_demand,NA,3.424,USD,AWS Pricing API,2025-11-30T09:10:02.094847 +AWS,ca-central-1,m5.16xlarge,reserved_1y,all_upfront,2.377813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:31.239438 +AWS,ca-central-1,m5.16xlarge,reserved_1y,no_upfront,2.377813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:19.114343 +AWS,ca-central-1,m5.16xlarge,reserved_1y,partial_upfront,2.377813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:54.306389 +AWS,ca-central-1,m5.16xlarge,reserved_3y,all_upfront,1.585271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:20.795805 +AWS,ca-central-1,m5.16xlarge,reserved_3y,no_upfront,1.585271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:27.021366 +AWS,ca-central-1,m5.16xlarge,reserved_3y,partial_upfront,1.585271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:03.594966 +AWS,ca-central-1,m5.16xlarge,spot,NA,1.078339,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197622 +AWS,ca-central-1,m5.24xlarge,on_demand,NA,5.136,USD,AWS Pricing API,2025-11-30T09:10:13.601332 +AWS,ca-central-1,m5.24xlarge,reserved_1y,all_upfront,3.019977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:42.602342 +AWS,ca-central-1,m5.24xlarge,reserved_1y,no_upfront,3.019977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:30.567467 +AWS,ca-central-1,m5.24xlarge,reserved_1y,partial_upfront,3.019977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:05.683365 +AWS,ca-central-1,m5.24xlarge,reserved_3y,all_upfront,1.006659,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:31.877269 +AWS,ca-central-1,m5.24xlarge,reserved_3y,no_upfront,1.006659,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:38.593929 +AWS,ca-central-1,m5.24xlarge,reserved_3y,partial_upfront,1.006659,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:14.965852 +AWS,ca-central-1,m5.24xlarge,spot,NA,1.521308,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197865 +AWS,ca-central-1,m5.2xlarge,on_demand,NA,0.428,USD,AWS Pricing API,2025-11-30T09:09:45.437695 +AWS,ca-central-1,m5.2xlarge,reserved_1y,all_upfront,0.256425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:14.773674 +AWS,ca-central-1,m5.2xlarge,reserved_1y,no_upfront,0.256425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:02.357927 +AWS,ca-central-1,m5.2xlarge,reserved_1y,partial_upfront,0.256425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:37.792051 +AWS,ca-central-1,m5.2xlarge,reserved_3y,all_upfront,0.170808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:04.630112 +AWS,ca-central-1,m5.2xlarge,reserved_3y,no_upfront,0.170808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:10.179208 +AWS,ca-central-1,m5.2xlarge,reserved_3y,partial_upfront,0.170808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:47.198238 +AWS,ca-central-1,m5.2xlarge,spot,NA,0.163918,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197234 +AWS,ca-central-1,m5.4xlarge,on_demand,NA,0.856,USD,AWS Pricing API,2025-11-30T09:09:54.716321 +AWS,ca-central-1,m5.4xlarge,reserved_1y,all_upfront,0.513849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:24.064596 +AWS,ca-central-1,m5.4xlarge,reserved_1y,no_upfront,0.513849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:11.819481 +AWS,ca-central-1,m5.4xlarge,reserved_1y,partial_upfront,0.513849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:47.129006 +AWS,ca-central-1,m5.4xlarge,reserved_3y,all_upfront,0.342616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:13.751653 +AWS,ca-central-1,m5.4xlarge,reserved_3y,no_upfront,0.342616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:19.700798 +AWS,ca-central-1,m5.4xlarge,reserved_3y,partial_upfront,0.342616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:56.442513 +AWS,ca-central-1,m5.4xlarge,spot,NA,0.36041,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197444 +AWS,ca-central-1,m5.8xlarge,on_demand,NA,1.712,USD,AWS Pricing API,2025-11-30T09:10:21.497650 +AWS,ca-central-1,m5.8xlarge,reserved_1y,all_upfront,1.369169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:50.570253 +AWS,ca-central-1,m5.8xlarge,reserved_1y,no_upfront,1.369169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:38.596682 +AWS,ca-central-1,m5.8xlarge,reserved_1y,partial_upfront,1.369169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:13.603598 +AWS,ca-central-1,m5.8xlarge,reserved_3y,all_upfront,0.68439,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:39.687421 +AWS,ca-central-1,m5.8xlarge,reserved_3y,no_upfront,0.68439,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:46.717941 +AWS,ca-central-1,m5.8xlarge,reserved_3y,partial_upfront,0.68439,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:22.904628 +AWS,ca-central-1,m5.8xlarge,spot,NA,0.561136,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198041 +AWS,ca-central-1,m5.large,on_demand,NA,0.107,USD,AWS Pricing API,2025-11-30T09:09:45.834348 +AWS,ca-central-1,m5.large,reserved_1y,all_upfront,0.067,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:15.181074 +AWS,ca-central-1,m5.large,reserved_1y,no_upfront,0.067,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:02.763386 +AWS,ca-central-1,m5.large,reserved_1y,partial_upfront,0.067,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:38.220243 +AWS,ca-central-1,m5.large,reserved_3y,all_upfront,0.067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:05.019368 +AWS,ca-central-1,m5.large,reserved_3y,no_upfront,0.067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:10.590862 +AWS,ca-central-1,m5.large,reserved_3y,partial_upfront,0.067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:47.595486 +AWS,ca-central-1,m5.large,spot,NA,0.041232,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197239 +AWS,ca-central-1,m5.xlarge,on_demand,NA,0.214,USD,AWS Pricing API,2025-11-30T09:10:19.340491 +AWS,ca-central-1,m5.xlarge,reserved_1y,all_upfront,0.199429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:48.403281 +AWS,ca-central-1,m5.xlarge,reserved_1y,no_upfront,0.199429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:36.404306 +AWS,ca-central-1,m5.xlarge,reserved_1y,partial_upfront,0.199429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:11.448431 +AWS,ca-central-1,m5.xlarge,reserved_3y,all_upfront,0.09981,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:37.566351 +AWS,ca-central-1,m5.xlarge,reserved_3y,no_upfront,0.09981,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:44.507470 +AWS,ca-central-1,m5.xlarge,reserved_3y,partial_upfront,0.09981,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:20.763659 +AWS,ca-central-1,m5.xlarge,spot,NA,0.080695,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197978 +AWS,ca-central-1,m5a.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:09:46.375727 +AWS,ca-central-1,m5a.12xlarge,reserved_1y,all_upfront,3.159247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:15.719493 +AWS,ca-central-1,m5a.12xlarge,reserved_1y,no_upfront,3.159247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:03.306813 +AWS,ca-central-1,m5a.12xlarge,reserved_1y,partial_upfront,3.159247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:38.759854 +AWS,ca-central-1,m5a.12xlarge,reserved_3y,all_upfront,1.053082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:05.552362 +AWS,ca-central-1,m5a.12xlarge,reserved_3y,no_upfront,1.053082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:11.136239 +AWS,ca-central-1,m5a.12xlarge,reserved_3y,partial_upfront,1.053082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:48.133723 +AWS,ca-central-1,m5a.12xlarge,spot,NA,0.828767,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197243 +AWS,ca-central-1,m5a.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T09:10:03.874593 +AWS,ca-central-1,m5a.16xlarge,reserved_1y,all_upfront,1.806393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:33.004361 +AWS,ca-central-1,m5a.16xlarge,reserved_1y,no_upfront,1.806393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:20.892728 +AWS,ca-central-1,m5a.16xlarge,reserved_1y,partial_upfront,1.806393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:56.060578 +AWS,ca-central-1,m5a.16xlarge,reserved_3y,all_upfront,0.602131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:22.510130 +AWS,ca-central-1,m5a.16xlarge,reserved_3y,no_upfront,0.602131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:28.821875 +AWS,ca-central-1,m5a.16xlarge,reserved_3y,partial_upfront,0.602131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:05.332246 +AWS,ca-central-1,m5a.16xlarge,spot,NA,1.0234,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197666 +AWS,ca-central-1,m5a.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:09:39.018561 +AWS,ca-central-1,m5a.24xlarge,reserved_1y,all_upfront,3.14532,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:08.294509 +AWS,ca-central-1,m5a.24xlarge,reserved_1y,no_upfront,3.14532,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:55.851167 +AWS,ca-central-1,m5a.24xlarge,reserved_1y,partial_upfront,3.14532,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:31.444238 +AWS,ca-central-1,m5a.24xlarge,reserved_3y,all_upfront,1.04844,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:58.384194 +AWS,ca-central-1,m5a.24xlarge,reserved_3y,no_upfront,1.04844,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:03.702627 +AWS,ca-central-1,m5a.24xlarge,reserved_3y,partial_upfront,1.04844,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:40.877400 +AWS,ca-central-1,m5a.24xlarge,spot,NA,1.887693,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188923 +AWS,ca-central-1,m5a.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T09:09:31.576632 +AWS,ca-central-1,m5a.2xlarge,reserved_1y,all_upfront,0.225799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:00.779442 +AWS,ca-central-1,m5a.2xlarge,reserved_1y,no_upfront,0.225799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:48.328631 +AWS,ca-central-1,m5a.2xlarge,reserved_1y,partial_upfront,0.225799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:24.040468 +AWS,ca-central-1,m5a.2xlarge,reserved_3y,all_upfront,0.075266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:51.133000 +AWS,ca-central-1,m5a.2xlarge,reserved_3y,no_upfront,0.075266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:56.073793 +AWS,ca-central-1,m5a.2xlarge,reserved_3y,partial_upfront,0.075266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:33.498984 +AWS,ca-central-1,m5a.2xlarge,spot,NA,0.186499,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188627 +AWS,ca-central-1,m5a.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T09:10:12.211559 +AWS,ca-central-1,m5a.4xlarge,reserved_1y,all_upfront,0.614845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:41.244735 +AWS,ca-central-1,m5a.4xlarge,reserved_1y,no_upfront,0.614845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:29.209344 +AWS,ca-central-1,m5a.4xlarge,reserved_1y,partial_upfront,0.614845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:04.317342 +AWS,ca-central-1,m5a.4xlarge,reserved_3y,all_upfront,0.307615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:30.545105 +AWS,ca-central-1,m5a.4xlarge,reserved_3y,no_upfront,0.307615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:37.203903 +AWS,ca-central-1,m5a.4xlarge,reserved_3y,partial_upfront,0.307615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:13.606765 +AWS,ca-central-1,m5a.4xlarge,spot,NA,0.290057,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197836 +AWS,ca-central-1,m5a.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T09:09:22.629979 +AWS,ca-central-1,m5a.8xlarge,reserved_1y,all_upfront,1.123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:51.850913 +AWS,ca-central-1,m5a.8xlarge,reserved_1y,no_upfront,1.123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:39.274681 +AWS,ca-central-1,m5a.8xlarge,reserved_1y,partial_upfront,1.123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:15.146071 +AWS,ca-central-1,m5a.8xlarge,reserved_3y,all_upfront,1.123,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:42.375558 +AWS,ca-central-1,m5a.8xlarge,reserved_3y,no_upfront,1.123,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:46.936186 +AWS,ca-central-1,m5a.8xlarge,reserved_3y,partial_upfront,1.123,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:24.557904 +AWS,ca-central-1,m5a.8xlarge,spot,NA,0.504276,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188271 +AWS,ca-central-1,m5a.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T09:09:41.463409 +AWS,ca-central-1,m5a.large,reserved_1y,all_upfront,0.06,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:10.754405 +AWS,ca-central-1,m5a.large,reserved_1y,no_upfront,0.06,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:58.313463 +AWS,ca-central-1,m5a.large,reserved_1y,partial_upfront,0.06,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:33.855983 +AWS,ca-central-1,m5a.large,reserved_3y,all_upfront,0.06,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:00.772368 +AWS,ca-central-1,m5a.large,reserved_3y,no_upfront,0.06,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:06.182911 +AWS,ca-central-1,m5a.large,reserved_3y,partial_upfront,0.06,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:43.312501 +AWS,ca-central-1,m5a.large,spot,NA,0.047958,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.189000 +AWS,ca-central-1,m5a.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T09:09:43.529956 +AWS,ca-central-1,m5a.xlarge,reserved_1y,all_upfront,0.263242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:12.777897 +AWS,ca-central-1,m5a.xlarge,reserved_1y,no_upfront,0.263242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:00.398878 +AWS,ca-central-1,m5a.xlarge,reserved_1y,partial_upfront,0.263242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:35.891886 +AWS,ca-central-1,m5a.xlarge,reserved_3y,all_upfront,0.087747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:02.770472 +AWS,ca-central-1,m5a.xlarge,reserved_3y,no_upfront,0.087747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:08.253543 +AWS,ca-central-1,m5a.xlarge,reserved_3y,partial_upfront,0.087747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:45.331537 +AWS,ca-central-1,m5a.xlarge,spot,NA,0.090508,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197191 +AWS,ca-central-1,m5d.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T09:09:14.000146 +AWS,ca-central-1,m5d.12xlarge,reserved_1y,all_upfront,1.814192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:43.186909 +AWS,ca-central-1,m5d.12xlarge,reserved_1y,no_upfront,1.814192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:30.560362 +AWS,ca-central-1,m5d.12xlarge,reserved_1y,partial_upfront,1.814192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:06.514604 +AWS,ca-central-1,m5d.12xlarge,reserved_3y,all_upfront,1.209397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:33.891963 +AWS,ca-central-1,m5d.12xlarge,reserved_3y,no_upfront,1.209397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:38.144836 +AWS,ca-central-1,m5d.12xlarge,reserved_3y,partial_upfront,1.209397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:15.967955 +AWS,ca-central-1,m5d.12xlarge,spot,NA,0.929394,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187963 +AWS,ca-central-1,m5d.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T09:09:58.820807 +AWS,ca-central-1,m5d.16xlarge,reserved_1y,all_upfront,2.54,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:28.113464 +AWS,ca-central-1,m5d.16xlarge,reserved_1y,no_upfront,2.54,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:15.949139 +AWS,ca-central-1,m5d.16xlarge,reserved_1y,partial_upfront,2.54,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:51.183795 +AWS,ca-central-1,m5d.16xlarge,reserved_3y,all_upfront,2.54,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:17.734364 +AWS,ca-central-1,m5d.16xlarge,reserved_3y,no_upfront,2.54,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:23.858417 +AWS,ca-central-1,m5d.16xlarge,reserved_3y,partial_upfront,2.54,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:00.501833 +AWS,ca-central-1,m5d.16xlarge,spot,NA,1.147386,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197526 +AWS,ca-central-1,m5d.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T09:09:42.423046 +AWS,ca-central-1,m5d.24xlarge,reserved_1y,all_upfront,3.556279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:11.702137 +AWS,ca-central-1,m5d.24xlarge,reserved_1y,no_upfront,3.556279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:59.274154 +AWS,ca-central-1,m5d.24xlarge,reserved_1y,partial_upfront,3.556279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:34.813087 +AWS,ca-central-1,m5d.24xlarge,reserved_3y,all_upfront,1.185426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:01.705455 +AWS,ca-central-1,m5d.24xlarge,reserved_3y,no_upfront,1.185426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:07.143599 +AWS,ca-central-1,m5d.24xlarge,reserved_3y,partial_upfront,1.185426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:44.255358 +AWS,ca-central-1,m5d.24xlarge,spot,NA,1.648355,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.189020 +AWS,ca-central-1,m5d.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T09:09:26.831895 +AWS,ca-central-1,m5d.2xlarge,reserved_1y,all_upfront,0.68379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:56.048272 +AWS,ca-central-1,m5d.2xlarge,reserved_1y,no_upfront,0.68379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:43.516411 +AWS,ca-central-1,m5d.2xlarge,reserved_1y,partial_upfront,0.68379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:19.317424 +AWS,ca-central-1,m5d.2xlarge,reserved_3y,all_upfront,0.22793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:46.480833 +AWS,ca-central-1,m5d.2xlarge,reserved_3y,no_upfront,0.22793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:51.224315 +AWS,ca-central-1,m5d.2xlarge,reserved_3y,partial_upfront,0.22793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:28.736486 +AWS,ca-central-1,m5d.2xlarge,spot,NA,0.20107,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188472 +AWS,ca-central-1,m5d.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T09:09:37.937598 +AWS,ca-central-1,m5d.4xlarge,reserved_1y,all_upfront,0.635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:07.205194 +AWS,ca-central-1,m5d.4xlarge,reserved_1y,no_upfront,0.635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:54.743264 +AWS,ca-central-1,m5d.4xlarge,reserved_1y,partial_upfront,0.635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:30.368270 +AWS,ca-central-1,m5d.4xlarge,reserved_3y,all_upfront,0.635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:57.328675 +AWS,ca-central-1,m5d.4xlarge,reserved_3y,no_upfront,0.635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:02.576293 +AWS,ca-central-1,m5d.4xlarge,reserved_3y,partial_upfront,0.635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:39.796782 +AWS,ca-central-1,m5d.4xlarge,spot,NA,0.417465,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188857 +AWS,ca-central-1,m5d.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T09:10:21.359578 +AWS,ca-central-1,m5d.8xlarge,reserved_1y,all_upfront,1.414078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:50.436625 +AWS,ca-central-1,m5d.8xlarge,reserved_1y,no_upfront,1.414078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:38.459264 +AWS,ca-central-1,m5d.8xlarge,reserved_1y,partial_upfront,1.414078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:13.468776 +AWS,ca-central-1,m5d.8xlarge,reserved_3y,all_upfront,0.942693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:39.555230 +AWS,ca-central-1,m5d.8xlarge,reserved_3y,no_upfront,0.942693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:46.578188 +AWS,ca-central-1,m5d.8xlarge,reserved_3y,partial_upfront,0.942693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:22.771945 +AWS,ca-central-1,m5d.8xlarge,spot,NA,0.746365,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198082 +AWS,ca-central-1,m5d.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T09:09:17.761288 +AWS,ca-central-1,m5d.large,reserved_1y,all_upfront,0.100571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:46.997481 +AWS,ca-central-1,m5d.large,reserved_1y,no_upfront,0.100571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:34.377290 +AWS,ca-central-1,m5d.large,reserved_1y,partial_upfront,0.100571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:10.283203 +AWS,ca-central-1,m5d.large,reserved_3y,all_upfront,0.05019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:37.582831 +AWS,ca-central-1,m5d.large,reserved_3y,no_upfront,0.05019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:42.003546 +AWS,ca-central-1,m5d.large,reserved_3y,partial_upfront,0.05019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:19.703251 +AWS,ca-central-1,m5d.large,spot,NA,0.049739,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188103 +AWS,ca-central-1,m5d.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T09:09:33.735515 +AWS,ca-central-1,m5d.xlarge,reserved_1y,all_upfront,0.341895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:02.981690 +AWS,ca-central-1,m5d.xlarge,reserved_1y,no_upfront,0.341895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:50.507197 +AWS,ca-central-1,m5d.xlarge,reserved_1y,partial_upfront,0.341895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:26.201566 +AWS,ca-central-1,m5d.xlarge,reserved_3y,all_upfront,0.113965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:53.218932 +AWS,ca-central-1,m5d.xlarge,reserved_3y,no_upfront,0.113965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:58.294010 +AWS,ca-central-1,m5d.xlarge,reserved_3y,partial_upfront,0.113965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:35.646765 +AWS,ca-central-1,m5d.xlarge,spot,NA,0.090667,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188702 +AWS,ca-central-1,m6g.12xlarge,on_demand,NA,2.0544,USD,AWS Pricing API,2025-11-30T09:09:28.055011 +AWS,ca-central-1,m6g.12xlarge,reserved_1y,all_upfront,1.643548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:57.272605 +AWS,ca-central-1,m6g.12xlarge,reserved_1y,no_upfront,1.643548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:44.771676 +AWS,ca-central-1,m6g.12xlarge,reserved_1y,partial_upfront,1.643548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:20.537747 +AWS,ca-central-1,m6g.12xlarge,reserved_3y,all_upfront,0.821783,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:47.664531 +AWS,ca-central-1,m6g.12xlarge,reserved_3y,no_upfront,0.821783,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:52.477557 +AWS,ca-central-1,m6g.12xlarge,reserved_3y,partial_upfront,0.821783,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:30.018075 +AWS,ca-central-1,m6g.12xlarge,spot,NA,0.626256,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188493 +AWS,ca-central-1,m6g.16xlarge,on_demand,NA,2.7392,USD,AWS Pricing API,2025-11-30T09:09:23.446926 +AWS,ca-central-1,m6g.16xlarge,reserved_1y,all_upfront,1.9917,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:52.664566 +AWS,ca-central-1,m6g.16xlarge,reserved_1y,no_upfront,1.9917,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:40.094544 +AWS,ca-central-1,m6g.16xlarge,reserved_1y,partial_upfront,1.9917,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:15.956842 +AWS,ca-central-1,m6g.16xlarge,reserved_3y,all_upfront,1.9917,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:43.176496 +AWS,ca-central-1,m6g.16xlarge,reserved_3y,no_upfront,1.9917,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:47.771759 +AWS,ca-central-1,m6g.16xlarge,reserved_3y,partial_upfront,1.9917,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:25.359830 +AWS,ca-central-1,m6g.16xlarge,spot,NA,0.788973,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188295 +AWS,ca-central-1,m6g.2xlarge,on_demand,NA,0.3424,USD,AWS Pricing API,2025-11-30T09:09:44.079025 +AWS,ca-central-1,m6g.2xlarge,reserved_1y,all_upfront,0.23242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:13.327076 +AWS,ca-central-1,m6g.2xlarge,reserved_1y,no_upfront,0.23242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:00.948500 +AWS,ca-central-1,m6g.2xlarge,reserved_1y,partial_upfront,0.23242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:36.429061 +AWS,ca-central-1,m6g.2xlarge,reserved_3y,all_upfront,0.077473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:03.307965 +AWS,ca-central-1,m6g.2xlarge,reserved_3y,no_upfront,0.077473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:08.808164 +AWS,ca-central-1,m6g.2xlarge,reserved_3y,partial_upfront,0.077473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:45.869012 +AWS,ca-central-1,m6g.2xlarge,spot,NA,0.129369,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197213 +AWS,ca-central-1,m6g.4xlarge,on_demand,NA,0.6848,USD,AWS Pricing API,2025-11-30T09:10:10.730967 +AWS,ca-central-1,m6g.4xlarge,reserved_1y,all_upfront,0.402626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:39.758195 +AWS,ca-central-1,m6g.4xlarge,reserved_1y,no_upfront,0.402626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:27.703361 +AWS,ca-central-1,m6g.4xlarge,reserved_1y,partial_upfront,0.402626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:02.812109 +AWS,ca-central-1,m6g.4xlarge,reserved_3y,all_upfront,0.134209,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:29.092524 +AWS,ca-central-1,m6g.4xlarge,reserved_3y,no_upfront,0.134209,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:35.697791 +AWS,ca-central-1,m6g.4xlarge,reserved_3y,partial_upfront,0.134209,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:12.127101 +AWS,ca-central-1,m6g.4xlarge,spot,NA,0.268684,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197802 +AWS,ca-central-1,m6g.8xlarge,on_demand,NA,1.3696,USD,AWS Pricing API,2025-11-30T09:09:51.484961 +AWS,ca-central-1,m6g.8xlarge,reserved_1y,all_upfront,0.821745,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:20.844844 +AWS,ca-central-1,m6g.8xlarge,reserved_1y,no_upfront,0.821745,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:08.537189 +AWS,ca-central-1,m6g.8xlarge,reserved_1y,partial_upfront,0.821745,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:43.875386 +AWS,ca-central-1,m6g.8xlarge,reserved_3y,all_upfront,0.547848,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:10.572926 +AWS,ca-central-1,m6g.8xlarge,reserved_3y,no_upfront,0.547848,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:16.383186 +AWS,ca-central-1,m6g.8xlarge,reserved_3y,partial_upfront,0.547848,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:53.225025 +AWS,ca-central-1,m6g.8xlarge,spot,NA,0.445894,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197382 +AWS,ca-central-1,m6g.large,on_demand,NA,0.0856,USD,AWS Pricing API,2025-11-30T09:09:28.587086 +AWS,ca-central-1,m6g.large,reserved_1y,all_upfront,0.050342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:57.816390 +AWS,ca-central-1,m6g.large,reserved_1y,no_upfront,0.050342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:45.322710 +AWS,ca-central-1,m6g.large,reserved_1y,partial_upfront,0.050342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:21.083464 +AWS,ca-central-1,m6g.large,reserved_3y,all_upfront,0.016781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:48.194221 +AWS,ca-central-1,m6g.large,reserved_3y,no_upfront,0.016781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:53.029478 +AWS,ca-central-1,m6g.large,reserved_3y,partial_upfront,0.016781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:30.557244 +AWS,ca-central-1,m6g.large,spot,NA,0.036767,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188519 +AWS,ca-central-1,m6g.xlarge,on_demand,NA,0.1712,USD,AWS Pricing API,2025-11-30T09:09:42.286707 +AWS,ca-central-1,m6g.xlarge,reserved_1y,all_upfront,0.1079,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:11.566198 +AWS,ca-central-1,m6g.xlarge,reserved_1y,no_upfront,0.1079,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:59.138406 +AWS,ca-central-1,m6g.xlarge,reserved_1y,partial_upfront,0.1079,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:34.678997 +AWS,ca-central-1,m6g.xlarge,reserved_3y,all_upfront,0.1079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:01.569316 +AWS,ca-central-1,m6g.xlarge,reserved_3y,no_upfront,0.1079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:07.008298 +AWS,ca-central-1,m6g.xlarge,reserved_3y,partial_upfront,0.1079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:44.122166 +AWS,ca-central-1,m6g.xlarge,spot,NA,0.054898,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188993 +AWS,ca-central-1,m6gd.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T09:10:00.287923 +AWS,ca-central-1,m6gd.12xlarge,reserved_1y,all_upfront,1.5241,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:29.469502 +AWS,ca-central-1,m6gd.12xlarge,reserved_1y,no_upfront,1.5241,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:17.329159 +AWS,ca-central-1,m6gd.12xlarge,reserved_1y,partial_upfront,1.5241,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:52.539158 +AWS,ca-central-1,m6gd.12xlarge,reserved_3y,all_upfront,1.5241,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:19.059368 +AWS,ca-central-1,m6gd.12xlarge,reserved_3y,no_upfront,1.5241,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:25.230361 +AWS,ca-central-1,m6gd.12xlarge,reserved_3y,partial_upfront,1.5241,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:01.846241 +AWS,ca-central-1,m6gd.12xlarge,spot,NA,0.724102,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197551 +AWS,ca-central-1,m6gd.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T09:10:02.631936 +AWS,ca-central-1,m6gd.16xlarge,reserved_1y,all_upfront,1.896689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:31.777240 +AWS,ca-central-1,m6gd.16xlarge,reserved_1y,no_upfront,1.896689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:19.659314 +AWS,ca-central-1,m6gd.16xlarge,reserved_1y,partial_upfront,1.896689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:54.837441 +AWS,ca-central-1,m6gd.16xlarge,reserved_3y,all_upfront,0.63223,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:21.321632 +AWS,ca-central-1,m6gd.16xlarge,reserved_3y,no_upfront,0.63223,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:27.577961 +AWS,ca-central-1,m6gd.16xlarge,reserved_3y,partial_upfront,0.63223,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:04.131023 +AWS,ca-central-1,m6gd.16xlarge,spot,NA,0.935514,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197625 +AWS,ca-central-1,m6gd.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T09:09:30.764555 +AWS,ca-central-1,m6gd.2xlarge,reserved_1y,all_upfront,0.297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:59.973766 +AWS,ca-central-1,m6gd.2xlarge,reserved_1y,no_upfront,0.297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:47.508213 +AWS,ca-central-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:23.226536 +AWS,ca-central-1,m6gd.2xlarge,reserved_3y,all_upfront,0.297,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:50.329525 +AWS,ca-central-1,m6gd.2xlarge,reserved_3y,no_upfront,0.297,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:55.252920 +AWS,ca-central-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.297,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:32.697052 +AWS,ca-central-1,m6gd.2xlarge,spot,NA,0.132773,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188608 +AWS,ca-central-1,m6gd.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T09:09:57.310990 +AWS,ca-central-1,m6gd.4xlarge,reserved_1y,all_upfront,1.094064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:26.632813 +AWS,ca-central-1,m6gd.4xlarge,reserved_1y,no_upfront,1.094064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:14.424881 +AWS,ca-central-1,m6gd.4xlarge,reserved_1y,partial_upfront,1.094064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:49.712613 +AWS,ca-central-1,m6gd.4xlarge,reserved_3y,all_upfront,0.364688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:16.264086 +AWS,ca-central-1,m6gd.4xlarge,reserved_3y,no_upfront,0.364688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:22.309345 +AWS,ca-central-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.364688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:59.008833 +AWS,ca-central-1,m6gd.4xlarge,spot,NA,0.27375,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197502 +AWS,ca-central-1,m6gd.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T09:09:19.503480 +AWS,ca-central-1,m6gd.8xlarge,reserved_1y,all_upfront,1.1879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:48.736575 +AWS,ca-central-1,m6gd.8xlarge,reserved_1y,no_upfront,1.1879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:36.154727 +AWS,ca-central-1,m6gd.8xlarge,reserved_1y,partial_upfront,1.1879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:12.049682 +AWS,ca-central-1,m6gd.8xlarge,reserved_3y,all_upfront,1.1879,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:39.318029 +AWS,ca-central-1,m6gd.8xlarge,reserved_3y,no_upfront,1.1879,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:43.779381 +AWS,ca-central-1,m6gd.8xlarge,reserved_3y,partial_upfront,1.1879,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:21.473006 +AWS,ca-central-1,m6gd.8xlarge,spot,NA,0.453745,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188141 +AWS,ca-central-1,m6gd.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T09:09:40.912415 +AWS,ca-central-1,m6gd.large,reserved_1y,all_upfront,0.0635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:10.206614 +AWS,ca-central-1,m6gd.large,reserved_1y,no_upfront,0.0635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:57.752154 +AWS,ca-central-1,m6gd.large,reserved_1y,partial_upfront,0.0635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:33.322275 +AWS,ca-central-1,m6gd.large,reserved_3y,all_upfront,0.0635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:00.240562 +AWS,ca-central-1,m6gd.large,reserved_3y,no_upfront,0.0635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:05.626075 +AWS,ca-central-1,m6gd.large,reserved_3y,partial_upfront,0.0635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:42.772912 +AWS,ca-central-1,m6gd.large,spot,NA,0.036135,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188961 +AWS,ca-central-1,m6gd.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T09:09:34.135370 +AWS,ca-central-1,m6gd.xlarge,reserved_1y,all_upfront,0.1005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:03.385737 +AWS,ca-central-1,m6gd.xlarge,reserved_1y,no_upfront,0.1005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:50.914418 +AWS,ca-central-1,m6gd.xlarge,reserved_1y,partial_upfront,0.1005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:26.614630 +AWS,ca-central-1,m6gd.xlarge,reserved_3y,all_upfront,0.1005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:53.622099 +AWS,ca-central-1,m6gd.xlarge,reserved_3y,no_upfront,0.1005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:58.704957 +AWS,ca-central-1,m6gd.xlarge,reserved_3y,partial_upfront,0.1005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:36.053591 +AWS,ca-central-1,m6gd.xlarge,spot,NA,0.07235,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188708 +AWS,ca-central-1,m6i.12xlarge,on_demand,NA,2.568,USD,AWS Pricing API,2025-11-30T09:09:20.310569 +AWS,ca-central-1,m6i.12xlarge,reserved_1y,all_upfront,1.78795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:49.551875 +AWS,ca-central-1,m6i.12xlarge,reserved_1y,no_upfront,1.78795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:36.975626 +AWS,ca-central-1,m6i.12xlarge,reserved_1y,partial_upfront,1.78795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:12.849250 +AWS,ca-central-1,m6i.12xlarge,reserved_3y,all_upfront,1.191983,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:40.108900 +AWS,ca-central-1,m6i.12xlarge,reserved_3y,no_upfront,1.191983,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:44.604279 +AWS,ca-central-1,m6i.12xlarge,reserved_3y,partial_upfront,1.191983,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:22.274968 +AWS,ca-central-1,m6i.12xlarge,spot,NA,0.89237,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188161 +AWS,ca-central-1,m6i.16xlarge,on_demand,NA,3.424,USD,AWS Pricing API,2025-11-30T09:09:34.813251 +AWS,ca-central-1,m6i.16xlarge,reserved_1y,all_upfront,2.25792,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:04.078273 +AWS,ca-central-1,m6i.16xlarge,reserved_1y,no_upfront,2.25792,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:51.602725 +AWS,ca-central-1,m6i.16xlarge,reserved_1y,partial_upfront,2.25792,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:27.281422 +AWS,ca-central-1,m6i.16xlarge,reserved_3y,all_upfront,2.25792,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:54.295699 +AWS,ca-central-1,m6i.16xlarge,reserved_3y,no_upfront,2.25792,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:59.388364 +AWS,ca-central-1,m6i.16xlarge,reserved_3y,partial_upfront,2.25792,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:36.723872 +AWS,ca-central-1,m6i.16xlarge,spot,NA,1.204127,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188743 +AWS,ca-central-1,m6i.24xlarge,on_demand,NA,5.136,USD,AWS Pricing API,2025-11-30T09:09:36.311533 +AWS,ca-central-1,m6i.24xlarge,reserved_1y,all_upfront,3.7548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:05.579931 +AWS,ca-central-1,m6i.24xlarge,reserved_1y,no_upfront,3.7548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:53.099833 +AWS,ca-central-1,m6i.24xlarge,reserved_1y,partial_upfront,3.7548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:28.756099 +AWS,ca-central-1,m6i.24xlarge,reserved_3y,all_upfront,3.7548,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:55.743021 +AWS,ca-central-1,m6i.24xlarge,reserved_3y,no_upfront,3.7548,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:00.906497 +AWS,ca-central-1,m6i.24xlarge,reserved_3y,partial_upfront,3.7548,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:38.185909 +AWS,ca-central-1,m6i.24xlarge,spot,NA,1.796682,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188789 +AWS,ca-central-1,m6i.2xlarge,on_demand,NA,0.428,USD,AWS Pricing API,2025-11-30T09:09:55.126426 +AWS,ca-central-1,m6i.2xlarge,reserved_1y,all_upfront,0.509247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:24.473518 +AWS,ca-central-1,m6i.2xlarge,reserved_1y,no_upfront,0.509247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:12.224488 +AWS,ca-central-1,m6i.2xlarge,reserved_1y,partial_upfront,0.509247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:47.543933 +AWS,ca-central-1,m6i.2xlarge,reserved_3y,all_upfront,0.169749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:14.144164 +AWS,ca-central-1,m6i.2xlarge,reserved_3y,no_upfront,0.169749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:20.116458 +AWS,ca-central-1,m6i.2xlarge,reserved_3y,partial_upfront,0.169749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:56.833874 +AWS,ca-central-1,m6i.2xlarge,spot,NA,0.215502,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197469 +AWS,ca-central-1,m6i.32xlarge,on_demand,NA,6.848,USD,AWS Pricing API,2025-11-30T09:10:11.935717 +AWS,ca-central-1,m6i.32xlarge,reserved_1y,all_upfront,4.21484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:40.973644 +AWS,ca-central-1,m6i.32xlarge,reserved_1y,no_upfront,4.21484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:28.934471 +AWS,ca-central-1,m6i.32xlarge,reserved_1y,partial_upfront,4.21484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:04.040958 +AWS,ca-central-1,m6i.32xlarge,reserved_3y,all_upfront,1.404947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:30.281428 +AWS,ca-central-1,m6i.32xlarge,reserved_3y,no_upfront,1.404947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:36.932010 +AWS,ca-central-1,m6i.32xlarge,reserved_3y,partial_upfront,1.404947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:13.338777 +AWS,ca-central-1,m6i.32xlarge,spot,NA,2.289488,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197840 +AWS,ca-central-1,m6i.4xlarge,on_demand,NA,0.856,USD,AWS Pricing API,2025-11-30T09:09:22.495737 +AWS,ca-central-1,m6i.4xlarge,reserved_1y,all_upfront,0.537636,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:51.714039 +AWS,ca-central-1,m6i.4xlarge,reserved_1y,no_upfront,0.537636,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:39.140830 +AWS,ca-central-1,m6i.4xlarge,reserved_1y,partial_upfront,0.537636,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:15.012670 +AWS,ca-central-1,m6i.4xlarge,reserved_3y,all_upfront,0.358412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:42.236694 +AWS,ca-central-1,m6i.4xlarge,reserved_3y,no_upfront,0.358412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:46.796282 +AWS,ca-central-1,m6i.4xlarge,reserved_3y,partial_upfront,0.358412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:24.422379 +AWS,ca-central-1,m6i.4xlarge,spot,NA,0.397739,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188289 +AWS,ca-central-1,m6i.8xlarge,on_demand,NA,1.712,USD,AWS Pricing API,2025-11-30T09:09:27.239710 +AWS,ca-central-1,m6i.8xlarge,reserved_1y,all_upfront,1.075157,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:56.455193 +AWS,ca-central-1,m6i.8xlarge,reserved_1y,no_upfront,1.075157,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:43.941004 +AWS,ca-central-1,m6i.8xlarge,reserved_1y,partial_upfront,1.075157,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:19.729553 +AWS,ca-central-1,m6i.8xlarge,reserved_3y,all_upfront,0.716786,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:46.873266 +AWS,ca-central-1,m6i.8xlarge,reserved_3y,no_upfront,0.716786,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:51.645967 +AWS,ca-central-1,m6i.8xlarge,reserved_3y,partial_upfront,0.716786,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:29.136982 +AWS,ca-central-1,m6i.8xlarge,spot,NA,0.620838,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188432 +AWS,ca-central-1,m6i.large,on_demand,NA,0.107,USD,AWS Pricing API,2025-11-30T09:09:37.800910 +AWS,ca-central-1,m6i.large,reserved_1y,all_upfront,0.090274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:07.070235 +AWS,ca-central-1,m6i.large,reserved_1y,no_upfront,0.090274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:54.603902 +AWS,ca-central-1,m6i.large,reserved_1y,partial_upfront,0.090274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:30.235206 +AWS,ca-central-1,m6i.large,reserved_3y,all_upfront,0.045145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:57.195954 +AWS,ca-central-1,m6i.large,reserved_3y,no_upfront,0.045145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:02.435718 +AWS,ca-central-1,m6i.large,reserved_3y,partial_upfront,0.045145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:39.664481 +AWS,ca-central-1,m6i.large,spot,NA,0.044944,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188869 +AWS,ca-central-1,m6i.xlarge,on_demand,NA,0.214,USD,AWS Pricing API,2025-11-30T09:09:13.866430 +AWS,ca-central-1,m6i.xlarge,reserved_1y,all_upfront,0.15645,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:43.052635 +AWS,ca-central-1,m6i.xlarge,reserved_1y,no_upfront,0.15645,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:30.422523 +AWS,ca-central-1,m6i.xlarge,reserved_1y,partial_upfront,0.15645,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:06.379774 +AWS,ca-central-1,m6i.xlarge,reserved_3y,all_upfront,0.15645,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:33.761893 +AWS,ca-central-1,m6i.xlarge,reserved_3y,no_upfront,0.15645,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:38.008696 +AWS,ca-central-1,m6i.xlarge,reserved_3y,partial_upfront,0.15645,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:15.833020 +AWS,ca-central-1,m6i.xlarge,spot,NA,0.087214,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187988 +AWS,ca-central-1,m6id.12xlarge,on_demand,NA,3.1752,USD,AWS Pricing API,2025-11-30T09:09:51.622452 +AWS,ca-central-1,m6id.12xlarge,reserved_1y,all_upfront,2.540177,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:20.981096 +AWS,ca-central-1,m6id.12xlarge,reserved_1y,no_upfront,2.540177,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:08.672645 +AWS,ca-central-1,m6id.12xlarge,reserved_1y,partial_upfront,2.540177,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:44.009964 +AWS,ca-central-1,m6id.12xlarge,reserved_3y,all_upfront,1.270086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:10.705497 +AWS,ca-central-1,m6id.12xlarge,reserved_3y,no_upfront,1.270086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:16.519290 +AWS,ca-central-1,m6id.12xlarge,reserved_3y,partial_upfront,1.270086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:53.358404 +AWS,ca-central-1,m6id.12xlarge,spot,NA,1.050224,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197386 +AWS,ca-central-1,m6id.16xlarge,on_demand,NA,4.2336,USD,AWS Pricing API,2025-11-30T09:09:18.972001 +AWS,ca-central-1,m6id.16xlarge,reserved_1y,all_upfront,4.775457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:48.207848 +AWS,ca-central-1,m6id.16xlarge,reserved_1y,no_upfront,4.775457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:35.606843 +AWS,ca-central-1,m6id.16xlarge,reserved_1y,partial_upfront,4.775457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:11.492168 +AWS,ca-central-1,m6id.16xlarge,reserved_3y,all_upfront,1.591819,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:38.792698 +AWS,ca-central-1,m6id.16xlarge,reserved_3y,no_upfront,1.591819,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:43.233498 +AWS,ca-central-1,m6id.16xlarge,reserved_3y,partial_upfront,1.591819,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:20.944621 +AWS,ca-central-1,m6id.16xlarge,spot,NA,1.340367,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188135 +AWS,ca-central-1,m6id.24xlarge,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T09:09:23.175204 +AWS,ca-central-1,m6id.24xlarge,reserved_1y,all_upfront,3.810257,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:52.394133 +AWS,ca-central-1,m6id.24xlarge,reserved_1y,no_upfront,3.810257,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:39.819775 +AWS,ca-central-1,m6id.24xlarge,reserved_1y,partial_upfront,3.810257,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:15.685024 +AWS,ca-central-1,m6id.24xlarge,reserved_3y,all_upfront,2.540166,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:42.908912 +AWS,ca-central-1,m6id.24xlarge,reserved_3y,no_upfront,2.540166,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:47.495701 +AWS,ca-central-1,m6id.24xlarge,reserved_3y,partial_upfront,2.540166,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:25.091984 +AWS,ca-central-1,m6id.24xlarge,spot,NA,2.155363,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188301 +AWS,ca-central-1,m6id.2xlarge,on_demand,NA,0.5292,USD,AWS Pricing API,2025-11-30T09:09:15.606815 +AWS,ca-central-1,m6id.2xlarge,reserved_1y,all_upfront,0.718037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:44.808344 +AWS,ca-central-1,m6id.2xlarge,reserved_1y,no_upfront,0.718037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:32.196433 +AWS,ca-central-1,m6id.2xlarge,reserved_1y,partial_upfront,0.718037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:08.130456 +AWS,ca-central-1,m6id.2xlarge,reserved_3y,all_upfront,0.239346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:35.477134 +AWS,ca-central-1,m6id.2xlarge,reserved_3y,no_upfront,0.239346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:39.801048 +AWS,ca-central-1,m6id.2xlarge,reserved_3y,partial_upfront,0.239346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:17.563779 +AWS,ca-central-1,m6id.2xlarge,spot,NA,0.199761,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188044 +AWS,ca-central-1,m6id.32xlarge,on_demand,NA,8.4672,USD,AWS Pricing API,2025-11-30T09:09:55.402201 +AWS,ca-central-1,m6id.32xlarge,reserved_1y,all_upfront,5.33434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:24.742226 +AWS,ca-central-1,m6id.32xlarge,reserved_1y,no_upfront,5.33434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:12.497642 +AWS,ca-central-1,m6id.32xlarge,reserved_1y,partial_upfront,5.33434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:47.811978 +AWS,ca-central-1,m6id.32xlarge,reserved_3y,all_upfront,5.33434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:14.407318 +AWS,ca-central-1,m6id.32xlarge,reserved_3y,no_upfront,5.33434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:20.391918 +AWS,ca-central-1,m6id.32xlarge,reserved_3y,partial_upfront,5.33434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:57.110803 +AWS,ca-central-1,m6id.32xlarge,spot,NA,2.944457,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197465 +AWS,ca-central-1,m6id.4xlarge,on_demand,NA,1.0584,USD,AWS Pricing API,2025-11-30T09:10:18.001335 +AWS,ca-central-1,m6id.4xlarge,reserved_1y,all_upfront,0.742443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:47.062637 +AWS,ca-central-1,m6id.4xlarge,reserved_1y,no_upfront,0.742443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:35.040080 +AWS,ca-central-1,m6id.4xlarge,reserved_1y,partial_upfront,0.742443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:10.107896 +AWS,ca-central-1,m6id.4xlarge,reserved_3y,all_upfront,0.494954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:36.254730 +AWS,ca-central-1,m6id.4xlarge,reserved_3y,no_upfront,0.494954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:43.132386 +AWS,ca-central-1,m6id.4xlarge,reserved_3y,partial_upfront,0.494954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:19.407806 +AWS,ca-central-1,m6id.4xlarge,spot,NA,0.417514,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197949 +AWS,ca-central-1,m6id.8xlarge,on_demand,NA,2.1168,USD,AWS Pricing API,2025-11-30T09:09:50.278688 +AWS,ca-central-1,m6id.8xlarge,reserved_1y,all_upfront,1.244635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:19.640193 +AWS,ca-central-1,m6id.8xlarge,reserved_1y,no_upfront,1.244635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:07.305099 +AWS,ca-central-1,m6id.8xlarge,reserved_1y,partial_upfront,1.244635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:42.649057 +AWS,ca-central-1,m6id.8xlarge,reserved_3y,all_upfront,0.414878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:09.374819 +AWS,ca-central-1,m6id.8xlarge,reserved_3y,no_upfront,0.414878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:15.136088 +AWS,ca-central-1,m6id.8xlarge,reserved_3y,partial_upfront,0.414878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:52.020396 +AWS,ca-central-1,m6id.8xlarge,spot,NA,0.74009,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197365 +AWS,ca-central-1,m6id.large,on_demand,NA,0.1323,USD,AWS Pricing API,2025-11-30T09:10:19.077713 +AWS,ca-central-1,m6id.large,reserved_1y,all_upfront,0.090982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:48.132830 +AWS,ca-central-1,m6id.large,reserved_1y,no_upfront,0.090982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:36.135828 +AWS,ca-central-1,m6id.large,reserved_1y,partial_upfront,0.090982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:11.180757 +AWS,ca-central-1,m6id.large,reserved_3y,all_upfront,0.030327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:37.302624 +AWS,ca-central-1,m6id.large,reserved_3y,no_upfront,0.030327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:44.236085 +AWS,ca-central-1,m6id.large,reserved_3y,partial_upfront,0.030327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:20.497101 +AWS,ca-central-1,m6id.large,spot,NA,0.045557,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197974 +AWS,ca-central-1,m6id.xlarge,on_demand,NA,0.2646,USD,AWS Pricing API,2025-11-30T09:09:22.219296 +AWS,ca-central-1,m6id.xlarge,reserved_1y,all_upfront,0.1667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:51.442998 +AWS,ca-central-1,m6id.xlarge,reserved_1y,no_upfront,0.1667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:38.871726 +AWS,ca-central-1,m6id.xlarge,reserved_1y,partial_upfront,0.1667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:14.750161 +AWS,ca-central-1,m6id.xlarge,reserved_3y,all_upfront,0.1667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:41.967602 +AWS,ca-central-1,m6id.xlarge,reserved_3y,no_upfront,0.1667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:46.523632 +AWS,ca-central-1,m6id.xlarge,reserved_3y,partial_upfront,0.1667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:24.151496 +AWS,ca-central-1,m6id.xlarge,spot,NA,0.089257,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188222 +AWS,ca-central-1,m6idn.12xlarge,on_demand,NA,4.18032,USD,AWS Pricing API,2025-11-30T09:09:42.010667 +AWS,ca-central-1,m6idn.12xlarge,reserved_1y,all_upfront,2.457991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:11.298668 +AWS,ca-central-1,m6idn.12xlarge,reserved_1y,no_upfront,2.457991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:58.860701 +AWS,ca-central-1,m6idn.12xlarge,reserved_1y,partial_upfront,2.457991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:34.403550 +AWS,ca-central-1,m6idn.12xlarge,reserved_3y,all_upfront,0.81933,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:01.302085 +AWS,ca-central-1,m6idn.12xlarge,reserved_3y,no_upfront,0.81933,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:06.732374 +AWS,ca-central-1,m6idn.12xlarge,reserved_3y,partial_upfront,0.81933,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:43.851823 +AWS,ca-central-1,m6idn.12xlarge,spot,NA,1.619261,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188981 +AWS,ca-central-1,m6idn.16xlarge,on_demand,NA,5.57376,USD,AWS Pricing API,2025-11-30T09:10:05.245624 +AWS,ca-central-1,m6idn.16xlarge,reserved_1y,all_upfront,6.657991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:34.347975 +AWS,ca-central-1,m6idn.16xlarge,reserved_1y,no_upfront,6.657991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:22.246008 +AWS,ca-central-1,m6idn.16xlarge,reserved_1y,partial_upfront,6.657991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:57.395754 +AWS,ca-central-1,m6idn.16xlarge,reserved_3y,all_upfront,2.21933,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:23.819339 +AWS,ca-central-1,m6idn.16xlarge,reserved_3y,no_upfront,2.21933,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:30.203613 +AWS,ca-central-1,m6idn.16xlarge,reserved_3y,partial_upfront,2.21933,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:06.677475 +AWS,ca-central-1,m6idn.16xlarge,spot,NA,1.983458,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197687 +AWS,ca-central-1,m6idn.24xlarge,on_demand,NA,8.36064,USD,AWS Pricing API,2025-11-30T09:09:47.874548 +AWS,ca-central-1,m6idn.24xlarge,reserved_1y,all_upfront,8.414612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:17.207802 +AWS,ca-central-1,m6idn.24xlarge,reserved_1y,no_upfront,8.414612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:04.836706 +AWS,ca-central-1,m6idn.24xlarge,reserved_1y,partial_upfront,8.414612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:40.241845 +AWS,ca-central-1,m6idn.24xlarge,reserved_3y,all_upfront,2.804871,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:07.009080 +AWS,ca-central-1,m6idn.24xlarge,reserved_3y,no_upfront,2.804871,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:12.657534 +AWS,ca-central-1,m6idn.24xlarge,reserved_3y,partial_upfront,2.804871,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:49.630743 +AWS,ca-central-1,m6idn.24xlarge,spot,NA,3.209203,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197313 +AWS,ca-central-1,m6idn.2xlarge,on_demand,NA,0.69672,USD,AWS Pricing API,2025-11-30T09:09:28.318708 +AWS,ca-central-1,m6idn.2xlarge,reserved_1y,all_upfront,0.832192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:57.541552 +AWS,ca-central-1,m6idn.2xlarge,reserved_1y,no_upfront,0.832192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:45.043724 +AWS,ca-central-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.832192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:20.814169 +AWS,ca-central-1,m6idn.2xlarge,reserved_3y,all_upfront,0.277397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:47.927534 +AWS,ca-central-1,m6idn.2xlarge,reserved_3y,no_upfront,0.277397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:52.749831 +AWS,ca-central-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.277397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:30.286328 +AWS,ca-central-1,m6idn.2xlarge,spot,NA,0.251101,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188500 +AWS,ca-central-1,m6idn.32xlarge,on_demand,NA,11.14752,USD,AWS Pricing API,2025-11-30T09:09:48.679991 +AWS,ca-central-1,m6idn.32xlarge,reserved_1y,all_upfront,7.02294,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:18.027545 +AWS,ca-central-1,m6idn.32xlarge,reserved_1y,no_upfront,7.02294,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:05.655640 +AWS,ca-central-1,m6idn.32xlarge,reserved_1y,partial_upfront,7.02294,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:41.041075 +AWS,ca-central-1,m6idn.32xlarge,reserved_3y,all_upfront,7.02294,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:07.798984 +AWS,ca-central-1,m6idn.32xlarge,reserved_3y,no_upfront,7.02294,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:13.485390 +AWS,ca-central-1,m6idn.32xlarge,reserved_3y,partial_upfront,7.02294,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:50.433213 +AWS,ca-central-1,m6idn.32xlarge,spot,NA,4.639323,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197339 +AWS,ca-central-1,m6idn.4xlarge,on_demand,NA,1.39344,USD,AWS Pricing API,2025-11-30T09:09:44.891075 +AWS,ca-central-1,m6idn.4xlarge,reserved_1y,all_upfront,0.819292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:14.232721 +AWS,ca-central-1,m6idn.4xlarge,reserved_1y,no_upfront,0.819292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:01.803159 +AWS,ca-central-1,m6idn.4xlarge,reserved_1y,partial_upfront,0.819292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:37.241878 +AWS,ca-central-1,m6idn.4xlarge,reserved_3y,all_upfront,0.273097,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:04.106531 +AWS,ca-central-1,m6idn.4xlarge,reserved_3y,no_upfront,0.273097,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:09.626993 +AWS,ca-central-1,m6idn.4xlarge,reserved_3y,partial_upfront,0.273097,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:46.663165 +AWS,ca-central-1,m6idn.4xlarge,spot,NA,0.483764,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197230 +AWS,ca-central-1,m6idn.8xlarge,on_demand,NA,2.78688,USD,AWS Pricing API,2025-11-30T09:09:13.185254 +AWS,ca-central-1,m6idn.8xlarge,reserved_1y,all_upfront,3.328995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:42.384916 +AWS,ca-central-1,m6idn.8xlarge,reserved_1y,no_upfront,3.328995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:29.743971 +AWS,ca-central-1,m6idn.8xlarge,reserved_1y,partial_upfront,3.328995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:05.713459 +AWS,ca-central-1,m6idn.8xlarge,reserved_3y,all_upfront,1.109665,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:33.095484 +AWS,ca-central-1,m6idn.8xlarge,reserved_3y,no_upfront,1.109665,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:37.311848 +AWS,ca-central-1,m6idn.8xlarge,reserved_3y,partial_upfront,1.109665,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:15.167568 +AWS,ca-central-1,m6idn.8xlarge,spot,NA,0.990373,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187969 +AWS,ca-central-1,m6idn.large,on_demand,NA,0.17418,USD,AWS Pricing API,2025-11-30T09:09:59.098458 +AWS,ca-central-1,m6idn.large,reserved_1y,all_upfront,0.117694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:28.382355 +AWS,ca-central-1,m6idn.large,reserved_1y,no_upfront,0.117694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:16.224741 +AWS,ca-central-1,m6idn.large,reserved_1y,partial_upfront,0.117694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:51.454714 +AWS,ca-central-1,m6idn.large,reserved_3y,all_upfront,0.039231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:17.998029 +AWS,ca-central-1,m6idn.large,reserved_3y,no_upfront,0.039231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:24.134551 +AWS,ca-central-1,m6idn.large,reserved_3y,partial_upfront,0.039231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:00.771117 +AWS,ca-central-1,m6idn.large,spot,NA,0.064255,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197575 +AWS,ca-central-1,m6idn.xlarge,on_demand,NA,0.34836,USD,AWS Pricing API,2025-11-30T09:09:42.146821 +AWS,ca-central-1,m6idn.xlarge,reserved_1y,all_upfront,0.208962,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:11.431652 +AWS,ca-central-1,m6idn.xlarge,reserved_1y,no_upfront,0.208962,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:59.000811 +AWS,ca-central-1,m6idn.xlarge,reserved_1y,partial_upfront,0.208962,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:34.542335 +AWS,ca-central-1,m6idn.xlarge,reserved_3y,all_upfront,0.139327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:01.436824 +AWS,ca-central-1,m6idn.xlarge,reserved_3y,no_upfront,0.139327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:06.871124 +AWS,ca-central-1,m6idn.xlarge,reserved_3y,partial_upfront,0.139327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:43.986215 +AWS,ca-central-1,m6idn.xlarge,spot,NA,0.118185,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188987 +AWS,ca-central-1,m6in.12xlarge,on_demand,NA,3.72432,USD,AWS Pricing API,2025-11-30T09:09:10.349790 +AWS,ca-central-1,m6in.12xlarge,reserved_1y,all_upfront,2.69671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:39.522102 +AWS,ca-central-1,m6in.12xlarge,reserved_1y,no_upfront,2.69671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:26.881061 +AWS,ca-central-1,m6in.12xlarge,reserved_1y,partial_upfront,2.69671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:02.875538 +AWS,ca-central-1,m6in.12xlarge,reserved_3y,all_upfront,2.69671,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:30.333361 +AWS,ca-central-1,m6in.12xlarge,reserved_3y,no_upfront,2.69671,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:34.420346 +AWS,ca-central-1,m6in.12xlarge,reserved_3y,partial_upfront,2.69671,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:12.364307 +AWS,ca-central-1,m6in.12xlarge,spot,NA,1.28533,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187921 +AWS,ca-central-1,m6in.16xlarge,on_demand,NA,4.96576,USD,AWS Pricing API,2025-11-30T09:09:20.172380 +AWS,ca-central-1,m6in.16xlarge,reserved_1y,all_upfront,2.919863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:49.407384 +AWS,ca-central-1,m6in.16xlarge,reserved_1y,no_upfront,2.919863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:36.838369 +AWS,ca-central-1,m6in.16xlarge,reserved_1y,partial_upfront,2.919863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:12.715909 +AWS,ca-central-1,m6in.16xlarge,reserved_3y,all_upfront,0.973288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:39.976104 +AWS,ca-central-1,m6in.16xlarge,reserved_3y,no_upfront,0.973288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:44.465994 +AWS,ca-central-1,m6in.16xlarge,reserved_3y,partial_upfront,0.973288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:22.140283 +AWS,ca-central-1,m6in.16xlarge,spot,NA,1.901433,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188192 +AWS,ca-central-1,m6in.24xlarge,on_demand,NA,7.44864,USD,AWS Pricing API,2025-11-30T09:10:01.673651 +AWS,ca-central-1,m6in.24xlarge,reserved_1y,all_upfront,4.379795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:30.827752 +AWS,ca-central-1,m6in.24xlarge,reserved_1y,no_upfront,4.379795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:18.703396 +AWS,ca-central-1,m6in.24xlarge,reserved_1y,partial_upfront,4.379795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:53.897254 +AWS,ca-central-1,m6in.24xlarge,reserved_3y,all_upfront,1.459932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:20.399459 +AWS,ca-central-1,m6in.24xlarge,reserved_3y,no_upfront,1.459932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:26.604292 +AWS,ca-central-1,m6in.24xlarge,reserved_3y,partial_upfront,1.459932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:03.187462 +AWS,ca-central-1,m6in.24xlarge,spot,NA,3.074332,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197590 +AWS,ca-central-1,m6in.2xlarge,on_demand,NA,0.62072,USD,AWS Pricing API,2025-11-30T09:09:26.968101 +AWS,ca-central-1,m6in.2xlarge,reserved_1y,all_upfront,0.44945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:56.182031 +AWS,ca-central-1,m6in.2xlarge,reserved_1y,no_upfront,0.44945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:43.665455 +AWS,ca-central-1,m6in.2xlarge,reserved_1y,partial_upfront,0.44945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:19.450859 +AWS,ca-central-1,m6in.2xlarge,reserved_3y,all_upfront,0.44945,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:46.612963 +AWS,ca-central-1,m6in.2xlarge,reserved_3y,no_upfront,0.44945,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:51.360825 +AWS,ca-central-1,m6in.2xlarge,reserved_3y,partial_upfront,0.44945,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:28.870735 +AWS,ca-central-1,m6in.2xlarge,spot,NA,0.193321,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188481 +AWS,ca-central-1,m6in.32xlarge,on_demand,NA,9.93152,USD,AWS Pricing API,2025-11-30T09:09:15.743546 +AWS,ca-central-1,m6in.32xlarge,reserved_1y,all_upfront,6.25686,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:44.951180 +AWS,ca-central-1,m6in.32xlarge,reserved_1y,no_upfront,6.25686,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:32.332129 +AWS,ca-central-1,m6in.32xlarge,reserved_1y,partial_upfront,6.25686,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:08.273039 +AWS,ca-central-1,m6in.32xlarge,reserved_3y,all_upfront,6.25686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:35.608898 +AWS,ca-central-1,m6in.32xlarge,reserved_3y,no_upfront,6.25686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:39.937522 +AWS,ca-central-1,m6in.32xlarge,reserved_3y,partial_upfront,6.25686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:17.703361 +AWS,ca-central-1,m6in.32xlarge,spot,NA,3.406092,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188038 +AWS,ca-central-1,m6in.4xlarge,on_demand,NA,1.24144,USD,AWS Pricing API,2025-11-30T09:09:25.751856 +AWS,ca-central-1,m6in.4xlarge,reserved_1y,all_upfront,0.838927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:54.954401 +AWS,ca-central-1,m6in.4xlarge,reserved_1y,no_upfront,0.838927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:42.427895 +AWS,ca-central-1,m6in.4xlarge,reserved_1y,partial_upfront,0.838927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:18.245659 +AWS,ca-central-1,m6in.4xlarge,reserved_3y,all_upfront,0.279642,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:45.426622 +AWS,ca-central-1,m6in.4xlarge,reserved_3y,no_upfront,0.279642,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:50.125672 +AWS,ca-central-1,m6in.4xlarge,reserved_3y,partial_upfront,0.279642,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:27.644867 +AWS,ca-central-1,m6in.4xlarge,spot,NA,0.392186,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188394 +AWS,ca-central-1,m6in.8xlarge,on_demand,NA,2.48288,USD,AWS Pricing API,2025-11-30T09:09:23.846283 +AWS,ca-central-1,m6in.8xlarge,reserved_1y,all_upfront,0.95703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:53.068175 +AWS,ca-central-1,m6in.8xlarge,reserved_1y,no_upfront,0.95703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:40.512243 +AWS,ca-central-1,m6in.8xlarge,reserved_1y,partial_upfront,0.95703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:16.358987 +AWS,ca-central-1,m6in.8xlarge,reserved_3y,all_upfront,0.95703,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:43.575337 +AWS,ca-central-1,m6in.8xlarge,reserved_3y,no_upfront,0.95703,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:48.182012 +AWS,ca-central-1,m6in.8xlarge,reserved_3y,partial_upfront,0.95703,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:25.759754 +AWS,ca-central-1,m6in.8xlarge,spot,NA,0.815439,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188361 +AWS,ca-central-1,m6in.large,on_demand,NA,0.15518,USD,AWS Pricing API,2025-11-30T09:09:43.393599 +AWS,ca-central-1,m6in.large,reserved_1y,all_upfront,0.11236,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:12.644106 +AWS,ca-central-1,m6in.large,reserved_1y,no_upfront,0.11236,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:00.261984 +AWS,ca-central-1,m6in.large,reserved_1y,partial_upfront,0.11236,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:35.757557 +AWS,ca-central-1,m6in.large,reserved_3y,all_upfront,0.11236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:02.639601 +AWS,ca-central-1,m6in.large,reserved_3y,no_upfront,0.11236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:08.115943 +AWS,ca-central-1,m6in.large,reserved_3y,partial_upfront,0.11236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:45.197024 +AWS,ca-central-1,m6in.large,spot,NA,0.050229,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197177 +AWS,ca-central-1,m6in.xlarge,on_demand,NA,0.31036,USD,AWS Pricing API,2025-11-30T09:09:57.451454 +AWS,ca-central-1,m6in.xlarge,reserved_1y,all_upfront,0.209703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:26.767414 +AWS,ca-central-1,m6in.xlarge,reserved_1y,no_upfront,0.209703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:14.573464 +AWS,ca-central-1,m6in.xlarge,reserved_1y,partial_upfront,0.209703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:49.848390 +AWS,ca-central-1,m6in.xlarge,reserved_3y,all_upfront,0.069901,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:16.397146 +AWS,ca-central-1,m6in.xlarge,reserved_3y,no_upfront,0.069901,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:22.446909 +AWS,ca-central-1,m6in.xlarge,reserved_3y,partial_upfront,0.069901,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:59.142244 +AWS,ca-central-1,m6in.xlarge,spot,NA,0.09148,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197510 +AWS,ca-central-1,m7g.12xlarge,on_demand,NA,2.183,USD,AWS Pricing API,2025-11-30T09:09:31.165478 +AWS,ca-central-1,m7g.12xlarge,reserved_1y,all_upfront,1.519932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:00.374826 +AWS,ca-central-1,m7g.12xlarge,reserved_1y,no_upfront,1.519932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:47.921005 +AWS,ca-central-1,m7g.12xlarge,reserved_1y,partial_upfront,1.519932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:23.631704 +AWS,ca-central-1,m7g.12xlarge,reserved_3y,all_upfront,1.013311,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:50.723566 +AWS,ca-central-1,m7g.12xlarge,reserved_3y,no_upfront,1.013311,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:55.658240 +AWS,ca-central-1,m7g.12xlarge,reserved_3y,partial_upfront,1.013311,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:33.099734 +AWS,ca-central-1,m7g.12xlarge,spot,NA,0.739406,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188602 +AWS,ca-central-1,m7g.16xlarge,on_demand,NA,2.9107,USD,AWS Pricing API,2025-11-30T09:10:00.010175 +AWS,ca-central-1,m7g.16xlarge,reserved_1y,all_upfront,1.469,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:29.198331 +AWS,ca-central-1,m7g.16xlarge,reserved_1y,no_upfront,1.469,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:17.056552 +AWS,ca-central-1,m7g.16xlarge,reserved_1y,partial_upfront,1.469,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:52.267779 +AWS,ca-central-1,m7g.16xlarge,reserved_3y,all_upfront,1.469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:18.794630 +AWS,ca-central-1,m7g.16xlarge,reserved_3y,no_upfront,1.469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:24.956134 +AWS,ca-central-1,m7g.16xlarge,reserved_3y,partial_upfront,1.469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:01.578832 +AWS,ca-central-1,m7g.16xlarge,spot,NA,0.974271,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197567 +AWS,ca-central-1,m7g.2xlarge,on_demand,NA,0.3638,USD,AWS Pricing API,2025-11-30T09:09:23.038534 +AWS,ca-central-1,m7g.2xlarge,reserved_1y,all_upfront,0.2399,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:52.256712 +AWS,ca-central-1,m7g.2xlarge,reserved_1y,no_upfront,0.2399,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:39.684790 +AWS,ca-central-1,m7g.2xlarge,reserved_1y,partial_upfront,0.2399,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:15.549690 +AWS,ca-central-1,m7g.2xlarge,reserved_3y,all_upfront,0.2399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:42.777357 +AWS,ca-central-1,m7g.2xlarge,reserved_3y,no_upfront,0.2399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:47.350516 +AWS,ca-central-1,m7g.2xlarge,reserved_3y,partial_upfront,0.2399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:24.957196 +AWS,ca-central-1,m7g.2xlarge,spot,NA,0.136356,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188265 +AWS,ca-central-1,m7g.4xlarge,on_demand,NA,0.7277,USD,AWS Pricing API,2025-11-30T09:10:19.603879 +AWS,ca-central-1,m7g.4xlarge,reserved_1y,all_upfront,0.447831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:48.677204 +AWS,ca-central-1,m7g.4xlarge,reserved_1y,no_upfront,0.447831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:36.673380 +AWS,ca-central-1,m7g.4xlarge,reserved_1y,partial_upfront,0.447831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:11.714312 +AWS,ca-central-1,m7g.4xlarge,reserved_3y,all_upfront,0.149277,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:37.827525 +AWS,ca-central-1,m7g.4xlarge,reserved_3y,no_upfront,0.149277,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:44.776276 +AWS,ca-central-1,m7g.4xlarge,reserved_3y,partial_upfront,0.149277,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:21.042549 +AWS,ca-central-1,m7g.4xlarge,spot,NA,0.314499,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197991 +AWS,ca-central-1,m7g.8xlarge,on_demand,NA,1.4554,USD,AWS Pricing API,2025-11-30T09:09:14.267826 +AWS,ca-central-1,m7g.8xlarge,reserved_1y,all_upfront,1.064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:43.466451 +AWS,ca-central-1,m7g.8xlarge,reserved_1y,no_upfront,1.064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:30.831899 +AWS,ca-central-1,m7g.8xlarge,reserved_1y,partial_upfront,1.064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:06.784786 +AWS,ca-central-1,m7g.8xlarge,reserved_3y,all_upfront,1.064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:34.154693 +AWS,ca-central-1,m7g.8xlarge,reserved_3y,no_upfront,1.064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:38.425024 +AWS,ca-central-1,m7g.8xlarge,reserved_3y,partial_upfront,1.064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:16.234144 +AWS,ca-central-1,m7g.8xlarge,spot,NA,0.542587,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188001 +AWS,ca-central-1,m7g.large,on_demand,NA,0.091,USD,AWS Pricing API,2025-11-30T09:09:41.741476 +AWS,ca-central-1,m7g.large,reserved_1y,all_upfront,0.055936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:11.027671 +AWS,ca-central-1,m7g.large,reserved_1y,no_upfront,0.055936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:58.588837 +AWS,ca-central-1,m7g.large,reserved_1y,partial_upfront,0.055936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:34.126426 +AWS,ca-central-1,m7g.large,reserved_3y,all_upfront,0.018645,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:01.036327 +AWS,ca-central-1,m7g.large,reserved_3y,no_upfront,0.018645,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:06.461980 +AWS,ca-central-1,m7g.large,reserved_3y,partial_upfront,0.018645,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:43.581922 +AWS,ca-central-1,m7g.large,spot,NA,0.03813,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.189007 +AWS,ca-central-1,m7g.xlarge,on_demand,NA,0.1819,USD,AWS Pricing API,2025-11-30T09:09:48.543635 +AWS,ca-central-1,m7g.xlarge,reserved_1y,all_upfront,0.114178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:17.889873 +AWS,ca-central-1,m7g.xlarge,reserved_1y,no_upfront,0.114178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:05.514814 +AWS,ca-central-1,m7g.xlarge,reserved_1y,partial_upfront,0.114178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:40.905952 +AWS,ca-central-1,m7g.xlarge,reserved_3y,all_upfront,0.076126,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:07.662855 +AWS,ca-central-1,m7g.xlarge,reserved_3y,no_upfront,0.076126,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:13.337918 +AWS,ca-central-1,m7g.xlarge,reserved_3y,partial_upfront,0.076126,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:50.297778 +AWS,ca-central-1,m7g.xlarge,spot,NA,0.068452,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197331 +AWS,ca-central-1,m7i.12xlarge,on_demand,NA,2.6964,USD,AWS Pricing API,2025-11-30T09:09:28.451876 +AWS,ca-central-1,m7i.12xlarge,reserved_1y,all_upfront,1.693409,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:57.674830 +AWS,ca-central-1,m7i.12xlarge,reserved_1y,no_upfront,1.693409,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:45.183881 +AWS,ca-central-1,m7i.12xlarge,reserved_1y,partial_upfront,1.693409,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:20.949438 +AWS,ca-central-1,m7i.12xlarge,reserved_3y,all_upfront,1.12895,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:48.062114 +AWS,ca-central-1,m7i.12xlarge,reserved_3y,no_upfront,1.12895,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:52.888414 +AWS,ca-central-1,m7i.12xlarge,reserved_3y,partial_upfront,1.12895,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:30.423496 +AWS,ca-central-1,m7i.12xlarge,spot,NA,0.961597,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188530 +AWS,ca-central-1,m7i.16xlarge,on_demand,NA,3.5952,USD,AWS Pricing API,2025-11-30T09:10:05.519513 +AWS,ca-central-1,m7i.16xlarge,reserved_1y,all_upfront,2.257955,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:34.630458 +AWS,ca-central-1,m7i.16xlarge,reserved_1y,no_upfront,2.257955,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:22.518510 +AWS,ca-central-1,m7i.16xlarge,reserved_1y,partial_upfront,2.257955,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:57.665504 +AWS,ca-central-1,m7i.16xlarge,reserved_3y,all_upfront,1.505292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:24.082028 +AWS,ca-central-1,m7i.16xlarge,reserved_3y,no_upfront,1.505292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:30.480485 +AWS,ca-central-1,m7i.16xlarge,reserved_3y,partial_upfront,1.505292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:06.950415 +AWS,ca-central-1,m7i.16xlarge,spot,NA,1.210775,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197679 +AWS,ca-central-1,m7i.24xlarge,on_demand,NA,5.3928,USD,AWS Pricing API,2025-11-30T09:10:11.666311 +AWS,ca-central-1,m7i.24xlarge,reserved_1y,all_upfront,3.94253,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:40.707731 +AWS,ca-central-1,m7i.24xlarge,reserved_1y,no_upfront,3.94253,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:28.662764 +AWS,ca-central-1,m7i.24xlarge,reserved_1y,partial_upfront,3.94253,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:03.775799 +AWS,ca-central-1,m7i.24xlarge,reserved_3y,all_upfront,3.94253,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:30.017100 +AWS,ca-central-1,m7i.24xlarge,reserved_3y,no_upfront,3.94253,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:36.658445 +AWS,ca-central-1,m7i.24xlarge,reserved_3y,partial_upfront,3.94253,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:13.073995 +AWS,ca-central-1,m7i.24xlarge,spot,NA,1.629355,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197848 +AWS,ca-central-1,m7i.2xlarge,on_demand,NA,0.4494,USD,AWS Pricing API,2025-11-30T09:09:46.785140 +AWS,ca-central-1,m7i.2xlarge,reserved_1y,all_upfront,0.617352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:16.128266 +AWS,ca-central-1,m7i.2xlarge,reserved_1y,no_upfront,0.617352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:03.716846 +AWS,ca-central-1,m7i.2xlarge,reserved_1y,partial_upfront,0.617352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:39.162451 +AWS,ca-central-1,m7i.2xlarge,reserved_3y,all_upfront,0.205784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:05.953111 +AWS,ca-central-1,m7i.2xlarge,reserved_3y,no_upfront,0.205784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:11.552931 +AWS,ca-central-1,m7i.2xlarge,reserved_3y,partial_upfront,0.205784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:48.542304 +AWS,ca-central-1,m7i.2xlarge,spot,NA,0.205076,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197300 +AWS,ca-central-1,m7i.48xlarge,on_demand,NA,10.7856,USD,AWS Pricing API,2025-11-30T09:09:09.931356 +AWS,ca-central-1,m7i.48xlarge,reserved_1y,all_upfront,9.102148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:39.117474 +AWS,ca-central-1,m7i.48xlarge,reserved_1y,no_upfront,9.102148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:26.473666 +AWS,ca-central-1,m7i.48xlarge,reserved_1y,partial_upfront,9.102148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:02.469635 +AWS,ca-central-1,m7i.48xlarge,reserved_3y,all_upfront,4.551083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:29.939957 +AWS,ca-central-1,m7i.48xlarge,reserved_3y,no_upfront,4.551083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:34.006013 +AWS,ca-central-1,m7i.48xlarge,reserved_3y,partial_upfront,4.551083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:11.960109 +AWS,ca-central-1,m7i.48xlarge,spot,NA,3.290673,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187871 +AWS,ca-central-1,m7i.4xlarge,on_demand,NA,0.8988,USD,AWS Pricing API,2025-11-30T09:09:23.709450 +AWS,ca-central-1,m7i.4xlarge,reserved_1y,all_upfront,0.6258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:52.933589 +AWS,ca-central-1,m7i.4xlarge,reserved_1y,no_upfront,0.6258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:40.374226 +AWS,ca-central-1,m7i.4xlarge,reserved_1y,partial_upfront,0.6258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:16.224787 +AWS,ca-central-1,m7i.4xlarge,reserved_3y,all_upfront,0.4172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:43.442174 +AWS,ca-central-1,m7i.4xlarge,reserved_3y,no_upfront,0.4172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:48.045376 +AWS,ca-central-1,m7i.4xlarge,reserved_3y,partial_upfront,0.4172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:25.626472 +AWS,ca-central-1,m7i.4xlarge,spot,NA,0.367731,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188334 +AWS,ca-central-1,m7i.8xlarge,on_demand,NA,1.7976,USD,AWS Pricing API,2025-11-30T09:10:01.257284 +AWS,ca-central-1,m7i.8xlarge,reserved_1y,all_upfront,1.226598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:30.421184 +AWS,ca-central-1,m7i.8xlarge,reserved_1y,no_upfront,1.226598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:18.285171 +AWS,ca-central-1,m7i.8xlarge,reserved_1y,partial_upfront,1.226598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:53.476793 +AWS,ca-central-1,m7i.8xlarge,reserved_3y,all_upfront,0.408866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:20.004113 +AWS,ca-central-1,m7i.8xlarge,reserved_3y,no_upfront,0.408866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:26.188878 +AWS,ca-central-1,m7i.8xlarge,reserved_3y,partial_upfront,0.408866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:02.784424 +AWS,ca-central-1,m7i.8xlarge,spot,NA,0.705406,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197602 +AWS,ca-central-1,m7i.large,on_demand,NA,0.11235,USD,AWS Pricing API,2025-11-30T09:09:26.694865 +AWS,ca-central-1,m7i.large,reserved_1y,all_upfront,0.078265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:55.912930 +AWS,ca-central-1,m7i.large,reserved_1y,no_upfront,0.078265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:43.380455 +AWS,ca-central-1,m7i.large,reserved_1y,partial_upfront,0.078265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:19.182918 +AWS,ca-central-1,m7i.large,reserved_3y,all_upfront,0.052162,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:46.349017 +AWS,ca-central-1,m7i.large,reserved_3y,no_upfront,0.052162,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:51.085514 +AWS,ca-central-1,m7i.large,reserved_3y,partial_upfront,0.052162,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:28.596885 +AWS,ca-central-1,m7i.large,spot,NA,0.041362,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188444 +AWS,ca-central-1,m7i.metal-24xl,on_demand,NA,5.3928,USD,AWS Pricing API,2025-11-30T09:09:10.068747 +AWS,ca-central-1,m7i.metal-24xl,reserved_1y,all_upfront,3.754797,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:39.251929 +AWS,ca-central-1,m7i.metal-24xl,reserved_1y,no_upfront,3.754797,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:26.606632 +AWS,ca-central-1,m7i.metal-24xl,reserved_1y,partial_upfront,3.754797,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:02.604487 +AWS,ca-central-1,m7i.metal-24xl,reserved_3y,all_upfront,2.503199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:30.070327 +AWS,ca-central-1,m7i.metal-24xl,reserved_3y,no_upfront,2.503199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:34.144869 +AWS,ca-central-1,m7i.metal-24xl,reserved_3y,partial_upfront,2.503199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:12.094623 +AWS,ca-central-1,m7i.metal-24xl,spot,NA,1.525847,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187878 +AWS,ca-central-1,m7i.metal-48xl,on_demand,NA,10.7856,USD,AWS Pricing API,2025-11-30T09:09:50.945405 +AWS,ca-central-1,m7i.metal-48xl,reserved_1y,all_upfront,6.638356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:20.308093 +AWS,ca-central-1,m7i.metal-48xl,reserved_1y,no_upfront,6.638356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:07.989312 +AWS,ca-central-1,m7i.metal-48xl,reserved_1y,partial_upfront,6.638356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:43.331278 +AWS,ca-central-1,m7i.metal-48xl,reserved_3y,all_upfront,2.212785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:10.032851 +AWS,ca-central-1,m7i.metal-48xl,reserved_3y,no_upfront,2.212785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:15.827973 +AWS,ca-central-1,m7i.metal-48xl,reserved_3y,partial_upfront,2.212785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:52.688253 +AWS,ca-central-1,m7i.metal-48xl,spot,NA,2.875084,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197394 +AWS,ca-central-1,m7i.xlarge,on_demand,NA,0.2247,USD,AWS Pricing API,2025-11-30T09:10:13.189044 +AWS,ca-central-1,m7i.xlarge,reserved_1y,all_upfront,0.138242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:42.193323 +AWS,ca-central-1,m7i.xlarge,reserved_1y,no_upfront,0.138242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:30.160181 +AWS,ca-central-1,m7i.xlarge,reserved_1y,partial_upfront,0.138242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:05.265256 +AWS,ca-central-1,m7i.xlarge,reserved_3y,all_upfront,0.046081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:31.481573 +AWS,ca-central-1,m7i.xlarge,reserved_3y,no_upfront,0.046081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:38.180799 +AWS,ca-central-1,m7i.xlarge,reserved_3y,partial_upfront,0.046081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:14.552066 +AWS,ca-central-1,m7i.xlarge,spot,NA,0.091893,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197869 +AWS,ca-central-1,m8g.12xlarge,on_demand,NA,2.40144,USD,AWS Pricing API,2025-11-30T09:09:57.040095 +AWS,ca-central-1,m8g.12xlarge,reserved_1y,all_upfront,1.75563,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:26.365148 +AWS,ca-central-1,m8g.12xlarge,reserved_1y,no_upfront,1.75563,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:14.152940 +AWS,ca-central-1,m8g.12xlarge,reserved_1y,partial_upfront,1.75563,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:49.436311 +AWS,ca-central-1,m8g.12xlarge,reserved_3y,all_upfront,1.75563,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:15.997903 +AWS,ca-central-1,m8g.12xlarge,reserved_3y,no_upfront,1.75563,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:22.029531 +AWS,ca-central-1,m8g.12xlarge,reserved_3y,partial_upfront,1.75563,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:58.742042 +AWS,ca-central-1,m8g.12xlarge,spot,NA,0.552619,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197494 +AWS,ca-central-1,m8g.16xlarge,on_demand,NA,3.20192,USD,AWS Pricing API,2025-11-30T09:09:10.487022 +AWS,ca-central-1,m8g.16xlarge,reserved_1y,all_upfront,1.61592,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:39.657264 +AWS,ca-central-1,m8g.16xlarge,reserved_1y,no_upfront,1.61592,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:27.023803 +AWS,ca-central-1,m8g.16xlarge,reserved_1y,partial_upfront,1.61592,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:03.017020 +AWS,ca-central-1,m8g.16xlarge,reserved_3y,all_upfront,1.61592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:30.467712 +AWS,ca-central-1,m8g.16xlarge,reserved_3y,no_upfront,1.61592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:34.558741 +AWS,ca-central-1,m8g.16xlarge,reserved_3y,partial_upfront,1.61592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:12.498898 +AWS,ca-central-1,m8g.16xlarge,spot,NA,0.712928,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187902 +AWS,ca-central-1,m8g.24xlarge,on_demand,NA,4.80288,USD,AWS Pricing API,2025-11-30T09:10:18.407233 +AWS,ca-central-1,m8g.24xlarge,reserved_1y,all_upfront,6.598402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:47.470042 +AWS,ca-central-1,m8g.24xlarge,reserved_1y,no_upfront,6.598402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:35.461665 +AWS,ca-central-1,m8g.24xlarge,reserved_1y,partial_upfront,6.598402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:10.515668 +AWS,ca-central-1,m8g.24xlarge,reserved_3y,all_upfront,2.199467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:36.651108 +AWS,ca-central-1,m8g.24xlarge,reserved_3y,no_upfront,2.199467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:43.547916 +AWS,ca-central-1,m8g.24xlarge,reserved_3y,partial_upfront,2.199467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:19.816581 +AWS,ca-central-1,m8g.24xlarge,spot,NA,0.726822,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197969 +AWS,ca-central-1,m8g.2xlarge,on_demand,NA,0.40024,USD,AWS Pricing API,2025-11-30T09:10:10.064621 +AWS,ca-central-1,m8g.2xlarge,reserved_1y,all_upfront,0.20199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:39.072163 +AWS,ca-central-1,m8g.2xlarge,reserved_1y,no_upfront,0.20199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:27.027666 +AWS,ca-central-1,m8g.2xlarge,reserved_1y,partial_upfront,0.20199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:02.129299 +AWS,ca-central-1,m8g.2xlarge,reserved_3y,all_upfront,0.20199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:28.428353 +AWS,ca-central-1,m8g.2xlarge,reserved_3y,no_upfront,0.20199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:35.012082 +AWS,ca-central-1,m8g.2xlarge,reserved_3y,partial_upfront,0.20199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:11.462619 +AWS,ca-central-1,m8g.2xlarge,spot,NA,0.129421,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197814 +AWS,ca-central-1,m8g.48xlarge,on_demand,NA,9.60576,USD,AWS Pricing API,2025-11-30T09:09:42.974690 +AWS,ca-central-1,m8g.48xlarge,reserved_1y,all_upfront,7.02251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:12.244641 +AWS,ca-central-1,m8g.48xlarge,reserved_1y,no_upfront,7.02251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:59.824466 +AWS,ca-central-1,m8g.48xlarge,reserved_1y,partial_upfront,7.02251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:35.354145 +AWS,ca-central-1,m8g.48xlarge,reserved_3y,all_upfront,7.02251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:02.240219 +AWS,ca-central-1,m8g.48xlarge,reserved_3y,no_upfront,7.02251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:07.689160 +AWS,ca-central-1,m8g.48xlarge,reserved_3y,partial_upfront,7.02251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:44.797639 +AWS,ca-central-1,m8g.48xlarge,spot,NA,1.415703,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197199 +AWS,ca-central-1,m8g.4xlarge,on_demand,NA,0.80048,USD,AWS Pricing API,2025-11-30T09:09:59.867850 +AWS,ca-central-1,m8g.4xlarge,reserved_1y,all_upfront,0.492694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:29.065781 +AWS,ca-central-1,m8g.4xlarge,reserved_1y,no_upfront,0.492694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:16.921184 +AWS,ca-central-1,m8g.4xlarge,reserved_1y,partial_upfront,0.492694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:52.123519 +AWS,ca-central-1,m8g.4xlarge,reserved_3y,all_upfront,0.164231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:18.663562 +AWS,ca-central-1,m8g.4xlarge,reserved_3y,no_upfront,0.164231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:24.821808 +AWS,ca-central-1,m8g.4xlarge,reserved_3y,partial_upfront,0.164231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:01.444882 +AWS,ca-central-1,m8g.4xlarge,spot,NA,0.224451,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197571 +AWS,ca-central-1,m8g.8xlarge,on_demand,NA,1.60096,USD,AWS Pricing API,2025-11-30T09:09:31.439222 +AWS,ca-central-1,m8g.8xlarge,reserved_1y,all_upfront,1.17042,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:00.643115 +AWS,ca-central-1,m8g.8xlarge,reserved_1y,no_upfront,1.17042,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:48.193281 +AWS,ca-central-1,m8g.8xlarge,reserved_1y,partial_upfront,1.17042,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:23.906258 +AWS,ca-central-1,m8g.8xlarge,reserved_3y,all_upfront,1.17042,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:50.998264 +AWS,ca-central-1,m8g.8xlarge,reserved_3y,no_upfront,1.17042,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:55.932707 +AWS,ca-central-1,m8g.8xlarge,reserved_3y,partial_upfront,1.17042,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:33.365838 +AWS,ca-central-1,m8g.8xlarge,spot,NA,0.567867,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188620 +AWS,ca-central-1,m8g.large,on_demand,NA,0.10006,USD,AWS Pricing API,2025-11-30T09:10:20.414458 +AWS,ca-central-1,m8g.large,reserved_1y,all_upfront,0.0456,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:49.494257 +AWS,ca-central-1,m8g.large,reserved_1y,no_upfront,0.0456,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:37.500381 +AWS,ca-central-1,m8g.large,reserved_1y,partial_upfront,0.0456,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:12.528965 +AWS,ca-central-1,m8g.large,reserved_3y,all_upfront,0.0456,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:38.629328 +AWS,ca-central-1,m8g.large,reserved_3y,no_upfront,0.0456,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:45.618684 +AWS,ca-central-1,m8g.large,reserved_3y,partial_upfront,0.0456,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:21.840329 +AWS,ca-central-1,m8g.large,spot,NA,0.026504,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198012 +AWS,ca-central-1,m8g.medium,on_demand,NA,0.05003,USD,AWS Pricing API,2025-11-30T09:10:22.314781 +AWS,ca-central-1,m8g.medium,reserved_1y,all_upfront,0.03658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:51.384781 +AWS,ca-central-1,m8g.medium,reserved_1y,no_upfront,0.03658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:39.418092 +AWS,ca-central-1,m8g.medium,reserved_1y,partial_upfront,0.03658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:14.417489 +AWS,ca-central-1,m8g.medium,reserved_3y,all_upfront,0.03658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:40.479875 +AWS,ca-central-1,m8g.medium,reserved_3y,no_upfront,0.03658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:47.544482 +AWS,ca-central-1,m8g.medium,reserved_3y,partial_upfront,0.03658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:23.707953 +AWS,ca-central-1,m8g.medium,spot,NA,0.008792,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198107 +AWS,ca-central-1,m8g.xlarge,on_demand,NA,0.20012,USD,AWS Pricing API,2025-11-30T09:09:40.642358 +AWS,ca-central-1,m8g.xlarge,reserved_1y,all_upfront,0.13197,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:09.934502 +AWS,ca-central-1,m8g.xlarge,reserved_1y,no_upfront,0.13197,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:57.480864 +AWS,ca-central-1,m8g.xlarge,reserved_1y,partial_upfront,0.13197,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:33.047691 +AWS,ca-central-1,m8g.xlarge,reserved_3y,all_upfront,0.13197,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:59.974208 +AWS,ca-central-1,m8g.xlarge,reserved_3y,no_upfront,0.13197,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:05.347882 +AWS,ca-central-1,m8g.xlarge,reserved_3y,partial_upfront,0.13197,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:42.502454 +AWS,ca-central-1,m8g.xlarge,spot,NA,0.063882,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188935 +AWS,ca-central-1,m8gd.12xlarge,on_demand,NA,3.0864,USD,AWS Pricing API,2025-11-30T09:10:20.952851 +AWS,ca-central-1,m8gd.12xlarge,spot,NA,0.710167,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198029 +AWS,ca-central-1,m8gd.16xlarge,on_demand,NA,4.1152,USD,AWS Pricing API,2025-11-30T09:10:13.736163 +AWS,ca-central-1,m8gd.16xlarge,spot,NA,0.677122,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197881 +AWS,ca-central-1,m8gd.24xlarge,on_demand,NA,6.1728,USD,AWS Pricing API,2025-11-30T09:09:39.156438 +AWS,ca-central-1,m8gd.24xlarge,spot,NA,0.907065,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188912 +AWS,ca-central-1,m8gd.2xlarge,on_demand,NA,0.5144,USD,AWS Pricing API,2025-11-30T09:10:20.138255 +AWS,ca-central-1,m8gd.2xlarge,spot,NA,0.15976,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197987 +AWS,ca-central-1,m8gd.48xlarge,on_demand,NA,12.3456,USD,AWS Pricing API,2025-11-30T09:10:16.139060 +AWS,ca-central-1,m8gd.48xlarge,spot,NA,1.792787,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197924 +AWS,ca-central-1,m8gd.4xlarge,on_demand,NA,1.0288,USD,AWS Pricing API,2025-11-30T09:09:46.512027 +AWS,ca-central-1,m8gd.4xlarge,spot,NA,0.300983,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197271 +AWS,ca-central-1,m8gd.8xlarge,on_demand,NA,2.0576,USD,AWS Pricing API,2025-11-30T09:09:11.169747 +AWS,ca-central-1,m8gd.8xlarge,spot,NA,0.797105,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187908 +AWS,ca-central-1,m8gd.large,on_demand,NA,0.1286,USD,AWS Pricing API,2025-11-30T09:09:55.681130 +AWS,ca-central-1,m8gd.large,spot,NA,0.030046,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197477 +AWS,ca-central-1,m8gd.xlarge,on_demand,NA,0.2572,USD,AWS Pricing API,2025-11-30T09:09:47.192884 +AWS,ca-central-1,m8gd.xlarge,spot,NA,0.068869,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197287 +AWS,ca-central-1,p3.16xlarge,on_demand,NA,26.928,USD,AWS Pricing API,2025-11-30T09:09:35.771543 +AWS,ca-central-1,p3.16xlarge,spot,NA,14.023679,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188776 +AWS,ca-central-1,p3.2xlarge,on_demand,NA,3.366,USD,AWS Pricing API,2025-11-30T09:10:06.606108 +AWS,ca-central-1,p3.2xlarge,spot,NA,1.130756,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197732 +AWS,ca-central-1,p3.8xlarge,on_demand,NA,13.464,USD,AWS Pricing API,2025-11-30T09:09:16.686526 +AWS,ca-central-1,p3.8xlarge,spot,NA,4.722384,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188056 +AWS,ca-central-1,p4d.24xlarge,on_demand,NA,25.25174,USD,AWS Pricing API,2025-11-30T09:09:16.821640 +AWS,ca-central-1,p4d.24xlarge,reserved_1y,all_upfront,19.963938,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:46.052604 +AWS,ca-central-1,p4d.24xlarge,reserved_1y,no_upfront,19.963938,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:33.420587 +AWS,ca-central-1,p4d.24xlarge,reserved_1y,partial_upfront,19.963938,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:09.345440 +AWS,ca-central-1,p4d.24xlarge,reserved_3y,all_upfront,9.981975,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:36.661680 +AWS,ca-central-1,p4d.24xlarge,reserved_3y,no_upfront,9.981975,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:41.047485 +AWS,ca-central-1,p4d.24xlarge,reserved_3y,partial_upfront,9.981975,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:18.769834 +AWS,ca-central-1,p4d.24xlarge,spot,NA,12.248099,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188050 +AWS,ca-central-1,p5.48xlarge,on_demand,NA,63.296,USD,AWS Pricing API,2025-11-30T09:10:06.333611 +AWS,ca-central-1,p5.48xlarge,reserved_1y,all_upfront,50.636826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:35.454947 +AWS,ca-central-1,p5.48xlarge,reserved_1y,no_upfront,50.636826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:23.338029 +AWS,ca-central-1,p5.48xlarge,reserved_1y,partial_upfront,50.636826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:58.496805 +AWS,ca-central-1,p5.48xlarge,reserved_3y,all_upfront,25.318409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:24.874973 +AWS,ca-central-1,p5.48xlarge,reserved_3y,no_upfront,25.318409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:31.309936 +AWS,ca-central-1,p5.48xlarge,reserved_3y,partial_upfront,25.318409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:07.753154 +AWS,ca-central-1,p5.48xlarge,spot,NA,63.296,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197728 +AWS,ca-central-1,r4.16xlarge,on_demand,NA,4.672,USD,AWS Pricing API,2025-11-30T09:10:09.122196 +AWS,ca-central-1,r4.16xlarge,reserved_1y,all_upfront,3.4003,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:38.139494 +AWS,ca-central-1,r4.16xlarge,reserved_1y,no_upfront,3.4003,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:26.064820 +AWS,ca-central-1,r4.16xlarge,reserved_1y,partial_upfront,3.4003,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:01.185666 +AWS,ca-central-1,r4.16xlarge,reserved_3y,all_upfront,3.4003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:27.512656 +AWS,ca-central-1,r4.16xlarge,reserved_3y,no_upfront,3.4003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:34.054942 +AWS,ca-central-1,r4.16xlarge,reserved_3y,partial_upfront,3.4003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:10.524724 +AWS,ca-central-1,r4.16xlarge,spot,NA,1.358667,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197761 +AWS,ca-central-1,r5.12xlarge,on_demand,NA,3.312,USD,AWS Pricing API,2025-11-30T09:09:10.213539 +AWS,ca-central-1,r5.12xlarge,reserved_1y,all_upfront,1.987607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:39.387898 +AWS,ca-central-1,r5.12xlarge,reserved_1y,no_upfront,1.987607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:26.742731 +AWS,ca-central-1,r5.12xlarge,reserved_1y,partial_upfront,1.987607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:02.740198 +AWS,ca-central-1,r5.12xlarge,reserved_3y,all_upfront,1.325202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:30.200954 +AWS,ca-central-1,r5.12xlarge,reserved_3y,no_upfront,1.325202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:34.283222 +AWS,ca-central-1,r5.12xlarge,reserved_3y,partial_upfront,1.325202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:12.230633 +AWS,ca-central-1,r5.12xlarge,spot,NA,1.000373,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187896 +AWS,ca-central-1,r5.16xlarge,on_demand,NA,4.416,USD,AWS Pricing API,2025-11-30T09:09:43.113157 +AWS,ca-central-1,r5.16xlarge,reserved_1y,all_upfront,2.782,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:12.378601 +AWS,ca-central-1,r5.16xlarge,reserved_1y,no_upfront,2.782,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:59.966913 +AWS,ca-central-1,r5.16xlarge,reserved_1y,partial_upfront,2.782,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:35.490300 +AWS,ca-central-1,r5.16xlarge,reserved_3y,all_upfront,2.782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:02.375043 +AWS,ca-central-1,r5.16xlarge,reserved_3y,no_upfront,2.782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:07.843932 +AWS,ca-central-1,r5.16xlarge,reserved_3y,partial_upfront,2.782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:44.931403 +AWS,ca-central-1,r5.16xlarge,spot,NA,1.429683,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197186 +AWS,ca-central-1,r5.24xlarge,on_demand,NA,6.624,USD,AWS Pricing API,2025-11-30T09:09:25.483343 +AWS,ca-central-1,r5.24xlarge,reserved_1y,all_upfront,4.570274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:54.684555 +AWS,ca-central-1,r5.24xlarge,reserved_1y,no_upfront,4.570274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:42.153726 +AWS,ca-central-1,r5.24xlarge,reserved_1y,partial_upfront,4.570274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:17.978814 +AWS,ca-central-1,r5.24xlarge,reserved_3y,all_upfront,3.046758,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:45.162134 +AWS,ca-central-1,r5.24xlarge,reserved_3y,no_upfront,3.046758,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:49.840473 +AWS,ca-central-1,r5.24xlarge,reserved_3y,partial_upfront,3.046758,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:27.373923 +AWS,ca-central-1,r5.24xlarge,spot,NA,1.853747,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188409 +AWS,ca-central-1,r5.2xlarge,on_demand,NA,0.552,USD,AWS Pricing API,2025-11-30T12:52:29.249271 +AWS,ca-central-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.249354 +AWS,ca-central-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.348,USD,AWS Pricing API,2025-11-30T12:52:29.249430 +AWS,ca-central-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.166,USD,AWS Pricing API,2025-11-30T12:52:29.249441 +AWS,ca-central-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.249417 +AWS,ca-central-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.288,USD,AWS Pricing API,2025-11-30T12:52:29.249342 +AWS,ca-central-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.133,USD,AWS Pricing API,2025-11-30T12:52:29.249382 +AWS,ca-central-1,r5.2xlarge,spot,NA,0.25514,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:31.970859 +AWS,ca-central-1,r5.4xlarge,on_demand,NA,1.104,USD,AWS Pricing API,2025-11-30T09:10:18.137265 +AWS,ca-central-1,r5.4xlarge,reserved_1y,all_upfront,0.662164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:47.196804 +AWS,ca-central-1,r5.4xlarge,reserved_1y,no_upfront,0.662164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:35.176364 +AWS,ca-central-1,r5.4xlarge,reserved_1y,partial_upfront,0.662164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:10.243343 +AWS,ca-central-1,r5.4xlarge,reserved_3y,all_upfront,0.441388,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:36.387764 +AWS,ca-central-1,r5.4xlarge,reserved_3y,no_upfront,0.441388,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:43.268649 +AWS,ca-central-1,r5.4xlarge,reserved_3y,partial_upfront,0.441388,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:19.547102 +AWS,ca-central-1,r5.4xlarge,spot,NA,0.432641,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197982 +AWS,ca-central-1,r5.8xlarge,on_demand,NA,2.208,USD,AWS Pricing API,2025-11-30T09:10:00.977852 +AWS,ca-central-1,r5.8xlarge,reserved_1y,all_upfront,1.766772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:30.154176 +AWS,ca-central-1,r5.8xlarge,reserved_1y,no_upfront,1.766772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:18.011398 +AWS,ca-central-1,r5.8xlarge,reserved_1y,partial_upfront,1.766772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:53.208998 +AWS,ca-central-1,r5.8xlarge,reserved_3y,all_upfront,0.883591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:19.726261 +AWS,ca-central-1,r5.8xlarge,reserved_3y,no_upfront,0.883591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:25.915751 +AWS,ca-central-1,r5.8xlarge,reserved_3y,partial_upfront,0.883591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:02.516709 +AWS,ca-central-1,r5.8xlarge,spot,NA,0.718729,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197598 +AWS,ca-central-1,r5.large,on_demand,NA,0.138,USD,AWS Pricing API,2025-11-30T09:09:36.984065 +AWS,ca-central-1,r5.large,reserved_1y,all_upfront,0.087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:06.256044 +AWS,ca-central-1,r5.large,reserved_1y,no_upfront,0.087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:53.780460 +AWS,ca-central-1,r5.large,reserved_1y,partial_upfront,0.087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:29.431283 +AWS,ca-central-1,r5.large,reserved_3y,all_upfront,0.087,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:56.391300 +AWS,ca-central-1,r5.large,reserved_3y,no_upfront,0.087,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:01.597237 +AWS,ca-central-1,r5.large,reserved_3y,partial_upfront,0.087,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:38.862286 +AWS,ca-central-1,r5.large,spot,NA,0.053761,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188783 +AWS,ca-central-1,r5.xlarge,on_demand,NA,0.276,USD,AWS Pricing API,2025-11-30T09:09:14.405980 +AWS,ca-central-1,r5.xlarge,reserved_1y,all_upfront,0.190205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:43.603124 +AWS,ca-central-1,r5.xlarge,reserved_1y,no_upfront,0.190205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:30.970819 +AWS,ca-central-1,r5.xlarge,reserved_1y,partial_upfront,0.190205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:06.922801 +AWS,ca-central-1,r5.xlarge,reserved_3y,all_upfront,0.126735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:34.287357 +AWS,ca-central-1,r5.xlarge,reserved_3y,no_upfront,0.126735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:38.562342 +AWS,ca-central-1,r5.xlarge,reserved_3y,partial_upfront,0.126735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:16.372713 +AWS,ca-central-1,r5.xlarge,spot,NA,0.127284,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188013 +AWS,ca-central-1,r5a.12xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T09:10:09.261114 +AWS,ca-central-1,r5a.12xlarge,reserved_1y,all_upfront,2.060023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:38.273504 +AWS,ca-central-1,r5a.12xlarge,reserved_1y,no_upfront,2.060023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:26.201591 +AWS,ca-central-1,r5a.12xlarge,reserved_1y,partial_upfront,2.060023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:01.320623 +AWS,ca-central-1,r5a.12xlarge,reserved_3y,all_upfront,1.373341,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:27.643016 +AWS,ca-central-1,r5a.12xlarge,reserved_3y,no_upfront,1.373341,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:34.191394 +AWS,ca-central-1,r5a.12xlarge,reserved_3y,partial_upfront,1.373341,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:10.664233 +AWS,ca-central-1,r5a.12xlarge,spot,NA,1.140424,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197773 +AWS,ca-central-1,r5a.16xlarge,on_demand,NA,3.968,USD,AWS Pricing API,2025-11-30T09:10:17.326995 +AWS,ca-central-1,r5a.16xlarge,reserved_1y,all_upfront,1.714,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:46.374020 +AWS,ca-central-1,r5a.16xlarge,reserved_1y,no_upfront,1.714,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:34.369937 +AWS,ca-central-1,r5a.16xlarge,reserved_1y,partial_upfront,1.714,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:09.432279 +AWS,ca-central-1,r5a.16xlarge,reserved_3y,all_upfront,1.714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:35.590276 +AWS,ca-central-1,r5a.16xlarge,reserved_3y,no_upfront,1.714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:42.446010 +AWS,ca-central-1,r5a.16xlarge,reserved_3y,partial_upfront,1.714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:18.746202 +AWS,ca-central-1,r5a.16xlarge,spot,NA,1.418687,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197957 +AWS,ca-central-1,r5a.24xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T09:10:11.261912 +AWS,ca-central-1,r5a.24xlarge,reserved_1y,all_upfront,4.326,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:40.298914 +AWS,ca-central-1,r5a.24xlarge,reserved_1y,no_upfront,4.326,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:28.249209 +AWS,ca-central-1,r5a.24xlarge,reserved_1y,partial_upfront,4.326,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:03.360739 +AWS,ca-central-1,r5a.24xlarge,reserved_3y,all_upfront,4.326,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:29.616259 +AWS,ca-central-1,r5a.24xlarge,reserved_3y,no_upfront,4.326,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:36.244399 +AWS,ca-central-1,r5a.24xlarge,reserved_3y,partial_upfront,4.326,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:12.665776 +AWS,ca-central-1,r5a.24xlarge,spot,NA,1.776279,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197798 +AWS,ca-central-1,r5a.2xlarge,on_demand,NA,0.496,USD,AWS Pricing API,2025-11-30T09:10:21.905096 +AWS,ca-central-1,r5a.2xlarge,reserved_1y,all_upfront,0.214,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:50.985058 +AWS,ca-central-1,r5a.2xlarge,reserved_1y,no_upfront,0.214,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:39.005457 +AWS,ca-central-1,r5a.2xlarge,reserved_1y,partial_upfront,0.214,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:14.013422 +AWS,ca-central-1,r5a.2xlarge,reserved_3y,all_upfront,0.214,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:40.087535 +AWS,ca-central-1,r5a.2xlarge,reserved_3y,no_upfront,0.214,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:47.131864 +AWS,ca-central-1,r5a.2xlarge,reserved_3y,partial_upfront,0.214,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:23.309760 +AWS,ca-central-1,r5a.2xlarge,spot,NA,0.221648,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198037 +AWS,ca-central-1,r5a.4xlarge,on_demand,NA,0.992,USD,AWS Pricing API,2025-11-30T09:10:01.953198 +AWS,ca-central-1,r5a.4xlarge,reserved_1y,all_upfront,0.672945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:31.100214 +AWS,ca-central-1,r5a.4xlarge,reserved_1y,no_upfront,0.672945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:18.977058 +AWS,ca-central-1,r5a.4xlarge,reserved_1y,partial_upfront,0.672945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:54.168964 +AWS,ca-central-1,r5a.4xlarge,reserved_3y,all_upfront,0.224315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:20.663161 +AWS,ca-central-1,r5a.4xlarge,reserved_3y,no_upfront,0.224315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:26.879453 +AWS,ca-central-1,r5a.4xlarge,reserved_3y,partial_upfront,0.224315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:03.462171 +AWS,ca-central-1,r5a.4xlarge,spot,NA,0.366438,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197633 +AWS,ca-central-1,r5a.8xlarge,on_demand,NA,1.984,USD,AWS Pricing API,2025-11-30T09:09:44.216491 +AWS,ca-central-1,r5a.8xlarge,reserved_1y,all_upfront,3.070205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:13.472808 +AWS,ca-central-1,r5a.8xlarge,reserved_1y,no_upfront,3.070205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:01.086136 +AWS,ca-central-1,r5a.8xlarge,reserved_1y,partial_upfront,3.070205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:36.563626 +AWS,ca-central-1,r5a.8xlarge,reserved_3y,all_upfront,1.023402,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:03.442800 +AWS,ca-central-1,r5a.8xlarge,reserved_3y,no_upfront,1.023402,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:08.944630 +AWS,ca-central-1,r5a.8xlarge,reserved_3y,partial_upfront,1.023402,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:46.000794 +AWS,ca-central-1,r5a.8xlarge,spot,NA,0.722268,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197225 +AWS,ca-central-1,r5a.large,on_demand,NA,0.124,USD,AWS Pricing API,2025-11-30T09:09:50.681072 +AWS,ca-central-1,r5a.large,reserved_1y,all_upfront,0.13984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:20.044618 +AWS,ca-central-1,r5a.large,reserved_1y,no_upfront,0.13984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:07.715493 +AWS,ca-central-1,r5a.large,reserved_1y,partial_upfront,0.13984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:43.063162 +AWS,ca-central-1,r5a.large,reserved_3y,all_upfront,0.046613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:09.771020 +AWS,ca-central-1,r5a.large,reserved_3y,no_upfront,0.046613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:15.553294 +AWS,ca-central-1,r5a.large,reserved_3y,partial_upfront,0.046613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:52.422693 +AWS,ca-central-1,r5a.large,spot,NA,0.049889,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197373 +AWS,ca-central-1,r5a.xlarge,on_demand,NA,0.248,USD,AWS Pricing API,2025-11-30T09:10:01.394457 +AWS,ca-central-1,r5a.xlarge,reserved_1y,all_upfront,0.18,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:30.555280 +AWS,ca-central-1,r5a.xlarge,reserved_1y,no_upfront,0.18,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:18.421549 +AWS,ca-central-1,r5a.xlarge,reserved_1y,partial_upfront,0.18,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:53.622741 +AWS,ca-central-1,r5a.xlarge,reserved_3y,all_upfront,0.18,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:20.135741 +AWS,ca-central-1,r5a.xlarge,reserved_3y,no_upfront,0.18,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:26.328253 +AWS,ca-central-1,r5a.xlarge,reserved_3y,partial_upfront,0.18,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:02.917671 +AWS,ca-central-1,r5a.xlarge,spot,NA,0.107093,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197606 +AWS,ca-central-1,r5d.12xlarge,on_demand,NA,3.792,USD,AWS Pricing API,2025-11-30T09:10:14.799150 +AWS,ca-central-1,r5d.12xlarge,reserved_1y,all_upfront,5.323288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:43.808603 +AWS,ca-central-1,r5d.12xlarge,reserved_1y,no_upfront,5.323288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:31.792703 +AWS,ca-central-1,r5d.12xlarge,reserved_1y,partial_upfront,5.323288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:06.887193 +AWS,ca-central-1,r5d.12xlarge,reserved_3y,all_upfront,1.774429,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:33.083376 +AWS,ca-central-1,r5d.12xlarge,reserved_3y,no_upfront,1.774429,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:39.826538 +AWS,ca-central-1,r5d.12xlarge,reserved_3y,partial_upfront,1.774429,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:16.159387 +AWS,ca-central-1,r5d.12xlarge,spot,NA,1.14885,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197903 +AWS,ca-central-1,r5d.16xlarge,on_demand,NA,5.056,USD,AWS Pricing API,2025-11-30T09:09:39.298369 +AWS,ca-central-1,r5d.16xlarge,reserved_1y,all_upfront,3.033781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:08.562526 +AWS,ca-central-1,r5d.16xlarge,reserved_1y,no_upfront,3.033781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:56.127227 +AWS,ca-central-1,r5d.16xlarge,reserved_1y,partial_upfront,3.033781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:31.711080 +AWS,ca-central-1,r5d.16xlarge,reserved_3y,all_upfront,2.022594,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:58.651764 +AWS,ca-central-1,r5d.16xlarge,reserved_3y,no_upfront,2.022594,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:03.975499 +AWS,ca-central-1,r5d.16xlarge,reserved_3y,partial_upfront,2.022594,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:41.145811 +AWS,ca-central-1,r5d.16xlarge,spot,NA,1.60544,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188906 +AWS,ca-central-1,r5d.24xlarge,on_demand,NA,7.584,USD,AWS Pricing API,2025-11-30T09:10:09.395058 +AWS,ca-central-1,r5d.24xlarge,reserved_1y,all_upfront,5.160731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:38.406651 +AWS,ca-central-1,r5d.24xlarge,reserved_1y,no_upfront,5.160731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:26.339825 +AWS,ca-central-1,r5d.24xlarge,reserved_1y,partial_upfront,5.160731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:01.455767 +AWS,ca-central-1,r5d.24xlarge,reserved_3y,all_upfront,1.720244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:27.774773 +AWS,ca-central-1,r5d.24xlarge,reserved_3y,no_upfront,1.720244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:34.328207 +AWS,ca-central-1,r5d.24xlarge,reserved_3y,partial_upfront,1.720244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:10.799064 +AWS,ca-central-1,r5d.24xlarge,spot,NA,2.161577,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197765 +AWS,ca-central-1,r5d.2xlarge,on_demand,NA,0.632,USD,AWS Pricing API,2025-11-30T09:10:07.967042 +AWS,ca-central-1,r5d.2xlarge,reserved_1y,all_upfront,0.461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:37.065292 +AWS,ca-central-1,r5d.2xlarge,reserved_1y,no_upfront,0.461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:24.971899 +AWS,ca-central-1,r5d.2xlarge,reserved_1y,partial_upfront,0.461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:00.107009 +AWS,ca-central-1,r5d.2xlarge,reserved_3y,all_upfront,0.461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:26.459133 +AWS,ca-central-1,r5d.2xlarge,reserved_3y,no_upfront,0.461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:32.972683 +AWS,ca-central-1,r5d.2xlarge,reserved_3y,partial_upfront,0.461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:09.448715 +AWS,ca-central-1,r5d.2xlarge,spot,NA,0.281738,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197753 +AWS,ca-central-1,r5d.4xlarge,on_demand,NA,1.264,USD,AWS Pricing API,2025-11-30T09:09:38.749059 +AWS,ca-central-1,r5d.4xlarge,reserved_1y,all_upfront,1.011447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:08.025352 +AWS,ca-central-1,r5d.4xlarge,reserved_1y,no_upfront,1.011447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:55.578094 +AWS,ca-central-1,r5d.4xlarge,reserved_1y,partial_upfront,1.011447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:31.174913 +AWS,ca-central-1,r5d.4xlarge,reserved_3y,all_upfront,0.505816,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:58.119736 +AWS,ca-central-1,r5d.4xlarge,reserved_3y,no_upfront,0.505816,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:03.425866 +AWS,ca-central-1,r5d.4xlarge,reserved_3y,partial_upfront,0.505816,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:40.609744 +AWS,ca-central-1,r5d.4xlarge,spot,NA,0.522324,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188881 +AWS,ca-central-1,r5d.8xlarge,on_demand,NA,2.528,USD,AWS Pricing API,2025-11-30T09:09:38.339323 +AWS,ca-central-1,r5d.8xlarge,reserved_1y,all_upfront,1.843,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:07.611523 +AWS,ca-central-1,r5d.8xlarge,reserved_1y,no_upfront,1.843,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:55.166505 +AWS,ca-central-1,r5d.8xlarge,reserved_1y,partial_upfront,1.843,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:30.769092 +AWS,ca-central-1,r5d.8xlarge,reserved_3y,all_upfront,1.843,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:57.722912 +AWS,ca-central-1,r5d.8xlarge,reserved_3y,no_upfront,1.843,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:03.000703 +AWS,ca-central-1,r5d.8xlarge,reserved_3y,partial_upfront,1.843,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:40.198905 +AWS,ca-central-1,r5d.8xlarge,spot,NA,0.871556,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188834 +AWS,ca-central-1,r5d.large,on_demand,NA,0.158,USD,AWS Pricing API,2025-11-30T09:10:03.175200 +AWS,ca-central-1,r5d.large,reserved_1y,all_upfront,0.109909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:32.327298 +AWS,ca-central-1,r5d.large,reserved_1y,no_upfront,0.109909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:20.206093 +AWS,ca-central-1,r5d.large,reserved_1y,partial_upfront,0.109909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:55.383743 +AWS,ca-central-1,r5d.large,reserved_3y,all_upfront,0.073303,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:21.847599 +AWS,ca-central-1,r5d.large,reserved_3y,no_upfront,0.073303,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:28.126026 +AWS,ca-central-1,r5d.large,reserved_3y,partial_upfront,0.073303,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:04.663207 +AWS,ca-central-1,r5d.large,spot,NA,0.055196,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197662 +AWS,ca-central-1,r5d.xlarge,on_demand,NA,0.316,USD,AWS Pricing API,2025-11-30T09:09:20.721185 +AWS,ca-central-1,r5d.xlarge,reserved_1y,all_upfront,0.185845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:49.958525 +AWS,ca-central-1,r5d.xlarge,reserved_1y,no_upfront,0.185845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:37.379922 +AWS,ca-central-1,r5d.xlarge,reserved_1y,partial_upfront,0.185845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:13.249334 +AWS,ca-central-1,r5d.xlarge,reserved_3y,all_upfront,0.061948,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:40.518836 +AWS,ca-central-1,r5d.xlarge,reserved_3y,no_upfront,0.061948,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:45.013256 +AWS,ca-central-1,r5d.xlarge,reserved_3y,partial_upfront,0.061948,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:22.675462 +AWS,ca-central-1,r5d.xlarge,spot,NA,0.162076,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188210 +AWS,ca-central-1,r5n.12xlarge,on_demand,NA,3.912,USD,AWS Pricing API,2025-11-30T09:09:58.683480 +AWS,ca-central-1,r5n.12xlarge,reserved_1y,all_upfront,2.669406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:27.979117 +AWS,ca-central-1,r5n.12xlarge,reserved_1y,no_upfront,2.669406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:15.806478 +AWS,ca-central-1,r5n.12xlarge,reserved_1y,partial_upfront,2.669406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:51.050349 +AWS,ca-central-1,r5n.12xlarge,reserved_3y,all_upfront,0.889802,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:17.601037 +AWS,ca-central-1,r5n.12xlarge,reserved_3y,no_upfront,0.889802,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:23.718375 +AWS,ca-central-1,r5n.12xlarge,reserved_3y,partial_upfront,0.889802,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:00.369843 +AWS,ca-central-1,r5n.12xlarge,spot,NA,1.361189,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197542 +AWS,ca-central-1,r5n.16xlarge,on_demand,NA,5.216,USD,AWS Pricing API,2025-11-30T09:10:14.139631 +AWS,ca-central-1,r5n.16xlarge,reserved_1y,all_upfront,3.135922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:43.138961 +AWS,ca-central-1,r5n.16xlarge,reserved_1y,no_upfront,3.135922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:31.117401 +AWS,ca-central-1,r5n.16xlarge,reserved_1y,partial_upfront,3.135922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:06.214467 +AWS,ca-central-1,r5n.16xlarge,reserved_3y,all_upfront,2.090641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:32.409118 +AWS,ca-central-1,r5n.16xlarge,reserved_3y,no_upfront,2.090641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:39.143285 +AWS,ca-central-1,r5n.16xlarge,reserved_3y,partial_upfront,2.090641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:15.494331 +AWS,ca-central-1,r5n.16xlarge,spot,NA,1.922478,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197911 +AWS,ca-central-1,r5n.24xlarge,on_demand,NA,7.824,USD,AWS Pricing API,2025-11-30T09:09:35.636869 +AWS,ca-central-1,r5n.24xlarge,reserved_1y,all_upfront,3.655,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:04.899619 +AWS,ca-central-1,r5n.24xlarge,reserved_1y,no_upfront,3.655,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:52.424546 +AWS,ca-central-1,r5n.24xlarge,reserved_1y,partial_upfront,3.655,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:28.092300 +AWS,ca-central-1,r5n.24xlarge,reserved_3y,all_upfront,3.655,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:55.086480 +AWS,ca-central-1,r5n.24xlarge,reserved_3y,no_upfront,3.655,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:00.214493 +AWS,ca-central-1,r5n.24xlarge,reserved_3y,partial_upfront,3.655,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:37.524252 +AWS,ca-central-1,r5n.24xlarge,spot,NA,2.21062,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188763 +AWS,ca-central-1,r5n.2xlarge,on_demand,NA,0.652,USD,AWS Pricing API,2025-11-30T09:09:16.551251 +AWS,ca-central-1,r5n.2xlarge,reserved_1y,all_upfront,0.384132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:45.782603 +AWS,ca-central-1,r5n.2xlarge,reserved_1y,no_upfront,0.384132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:33.150022 +AWS,ca-central-1,r5n.2xlarge,reserved_1y,partial_upfront,0.384132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:09.077835 +AWS,ca-central-1,r5n.2xlarge,reserved_3y,all_upfront,0.128044,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:36.398648 +AWS,ca-central-1,r5n.2xlarge,reserved_3y,no_upfront,0.128044,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:40.774332 +AWS,ca-central-1,r5n.2xlarge,reserved_3y,partial_upfront,0.128044,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:18.503720 +AWS,ca-central-1,r5n.2xlarge,spot,NA,0.25638,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188019 +AWS,ca-central-1,r5n.4xlarge,on_demand,NA,1.304,USD,AWS Pricing API,2025-11-30T09:10:12.637638 +AWS,ca-central-1,r5n.4xlarge,reserved_1y,all_upfront,1.658105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:41.651107 +AWS,ca-central-1,r5n.4xlarge,reserved_1y,no_upfront,1.658105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:29.616477 +AWS,ca-central-1,r5n.4xlarge,reserved_1y,partial_upfront,1.658105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:04.718171 +AWS,ca-central-1,r5n.4xlarge,reserved_3y,all_upfront,0.552702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:30.951032 +AWS,ca-central-1,r5n.4xlarge,reserved_3y,no_upfront,0.552702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:37.620543 +AWS,ca-central-1,r5n.4xlarge,reserved_3y,partial_upfront,0.552702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:14.010876 +AWS,ca-central-1,r5n.4xlarge,spot,NA,0.464094,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197832 +AWS,ca-central-1,r5n.8xlarge,on_demand,NA,2.608,USD,AWS Pricing API,2025-11-30T09:09:58.548180 +AWS,ca-central-1,r5n.8xlarge,reserved_1y,all_upfront,1.815991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:27.842983 +AWS,ca-central-1,r5n.8xlarge,reserved_1y,no_upfront,1.815991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:15.669925 +AWS,ca-central-1,r5n.8xlarge,reserved_1y,partial_upfront,1.815991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:50.917395 +AWS,ca-central-1,r5n.8xlarge,reserved_3y,all_upfront,1.210664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:17.469131 +AWS,ca-central-1,r5n.8xlarge,reserved_3y,no_upfront,1.210664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:23.579474 +AWS,ca-central-1,r5n.8xlarge,reserved_3y,partial_upfront,1.210664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:00.236698 +AWS,ca-central-1,r5n.8xlarge,spot,NA,1.016476,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197534 +AWS,ca-central-1,r5n.large,on_demand,NA,0.163,USD,AWS Pricing API,2025-11-30T09:10:19.874104 +AWS,ca-central-1,r5n.large,reserved_1y,all_upfront,0.119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:48.953038 +AWS,ca-central-1,r5n.large,reserved_1y,no_upfront,0.119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:36.949379 +AWS,ca-central-1,r5n.large,reserved_1y,partial_upfront,0.119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:11.983622 +AWS,ca-central-1,r5n.large,reserved_3y,all_upfront,0.119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:38.091901 +AWS,ca-central-1,r5n.large,reserved_3y,no_upfront,0.119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:45.056812 +AWS,ca-central-1,r5n.large,reserved_3y,partial_upfront,0.119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:21.310951 +AWS,ca-central-1,r5n.large,spot,NA,0.058737,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197995 +AWS,ca-central-1,r5n.metal,on_demand,NA,7.824,USD,AWS Pricing API,2025-11-30T09:09:59.600680 +AWS,ca-central-1,r5n.metal,reserved_1y,all_upfront,4.703941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:28.790701 +AWS,ca-central-1,r5n.metal,reserved_1y,no_upfront,4.703941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:16.648665 +AWS,ca-central-1,r5n.metal,reserved_1y,partial_upfront,4.703941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:51.857290 +AWS,ca-central-1,r5n.metal,reserved_3y,all_upfront,3.13598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:18.401614 +AWS,ca-central-1,r5n.metal,reserved_3y,no_upfront,3.13598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:24.548952 +AWS,ca-central-1,r5n.metal,reserved_3y,partial_upfront,3.13598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:01.179729 +AWS,ca-central-1,r5n.metal,spot,NA,2.109768,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197563 +AWS,ca-central-1,r5n.xlarge,on_demand,NA,0.326,USD,AWS Pricing API,2025-11-30T09:09:37.662307 +AWS,ca-central-1,r5n.xlarge,reserved_1y,all_upfront,0.126,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:06.933203 +AWS,ca-central-1,r5n.xlarge,reserved_1y,no_upfront,0.126,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:54.469266 +AWS,ca-central-1,r5n.xlarge,reserved_1y,partial_upfront,0.126,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:30.100842 +AWS,ca-central-1,r5n.xlarge,reserved_3y,all_upfront,0.126,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:57.065480 +AWS,ca-central-1,r5n.xlarge,reserved_3y,no_upfront,0.126,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:02.294741 +AWS,ca-central-1,r5n.xlarge,reserved_3y,partial_upfront,0.126,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:39.533204 +AWS,ca-central-1,r5n.xlarge,spot,NA,0.131392,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188864 +AWS,ca-central-1,r6g.12xlarge,on_demand,NA,2.6496,USD,AWS Pricing API,2025-11-30T09:09:30.899926 +AWS,ca-central-1,r6g.12xlarge,reserved_1y,all_upfront,1.835608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:00.108858 +AWS,ca-central-1,r6g.12xlarge,reserved_1y,no_upfront,1.835608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:47.645404 +AWS,ca-central-1,r6g.12xlarge,reserved_1y,partial_upfront,1.835608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:23.359856 +AWS,ca-central-1,r6g.12xlarge,reserved_3y,all_upfront,1.223736,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:50.460869 +AWS,ca-central-1,r6g.12xlarge,reserved_3y,no_upfront,1.223736,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:55.388622 +AWS,ca-central-1,r6g.12xlarge,reserved_3y,partial_upfront,1.223736,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:32.831000 +AWS,ca-central-1,r6g.12xlarge,spot,NA,0.821085,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188614 +AWS,ca-central-1,r6g.16xlarge,on_demand,NA,3.5328,USD,AWS Pricing API,2025-11-30T09:09:27.778403 +AWS,ca-central-1,r6g.16xlarge,reserved_1y,all_upfront,4.992808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:57.004614 +AWS,ca-central-1,r6g.16xlarge,reserved_1y,no_upfront,4.992808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:44.498853 +AWS,ca-central-1,r6g.16xlarge,reserved_1y,partial_upfront,4.992808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:20.268858 +AWS,ca-central-1,r6g.16xlarge,reserved_3y,all_upfront,1.664269,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:47.401833 +AWS,ca-central-1,r6g.16xlarge,reserved_3y,no_upfront,1.664269,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:52.204031 +AWS,ca-central-1,r6g.16xlarge,reserved_3y,partial_upfront,1.664269,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:29.673165 +AWS,ca-central-1,r6g.16xlarge,spot,NA,1.193398,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188512 +AWS,ca-central-1,r6g.2xlarge,on_demand,NA,0.4416,USD,AWS Pricing API,2025-11-30T09:10:20.813179 +AWS,ca-central-1,r6g.2xlarge,reserved_1y,all_upfront,0.259703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:49.900199 +AWS,ca-central-1,r6g.2xlarge,reserved_1y,no_upfront,0.259703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:37.910166 +AWS,ca-central-1,r6g.2xlarge,reserved_1y,partial_upfront,0.259703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:12.932132 +AWS,ca-central-1,r6g.2xlarge,reserved_3y,all_upfront,0.086568,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:39.023295 +AWS,ca-central-1,r6g.2xlarge,reserved_3y,no_upfront,0.086568,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:46.023386 +AWS,ca-central-1,r6g.2xlarge,reserved_3y,partial_upfront,0.086568,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:22.238375 +AWS,ca-central-1,r6g.2xlarge,spot,NA,0.159735,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198095 +AWS,ca-central-1,r6g.4xlarge,on_demand,NA,0.8832,USD,AWS Pricing API,2025-11-30T09:09:17.624695 +AWS,ca-central-1,r6g.4xlarge,reserved_1y,all_upfront,0.706509,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:46.863754 +AWS,ca-central-1,r6g.4xlarge,reserved_1y,no_upfront,0.706509,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:34.238210 +AWS,ca-central-1,r6g.4xlarge,reserved_1y,partial_upfront,0.706509,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:10.148236 +AWS,ca-central-1,r6g.4xlarge,reserved_3y,all_upfront,0.353236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:37.449313 +AWS,ca-central-1,r6g.4xlarge,reserved_3y,no_upfront,0.353236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:41.866752 +AWS,ca-central-1,r6g.4xlarge,reserved_3y,partial_upfront,0.353236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:19.569282 +AWS,ca-central-1,r6g.4xlarge,spot,NA,0.313554,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188090 +AWS,ca-central-1,r6g.8xlarge,on_demand,NA,1.7664,USD,AWS Pricing API,2025-11-30T09:09:56.507515 +AWS,ca-central-1,r6g.8xlarge,reserved_1y,all_upfront,1.285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:25.823140 +AWS,ca-central-1,r6g.8xlarge,reserved_1y,no_upfront,1.285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:13.597912 +AWS,ca-central-1,r6g.8xlarge,reserved_1y,partial_upfront,1.285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:48.894902 +AWS,ca-central-1,r6g.8xlarge,reserved_3y,all_upfront,1.285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:15.470643 +AWS,ca-central-1,r6g.8xlarge,reserved_3y,no_upfront,1.285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:21.488381 +AWS,ca-central-1,r6g.8xlarge,reserved_3y,partial_upfront,1.285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:58.182282 +AWS,ca-central-1,r6g.8xlarge,spot,NA,0.53412,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197489 +AWS,ca-central-1,r6g.large,on_demand,NA,0.1104,USD,AWS Pricing API,2025-11-30T09:09:35.089536 +AWS,ca-central-1,r6g.large,reserved_1y,all_upfront,0.064954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:04.348043 +AWS,ca-central-1,r6g.large,reserved_1y,no_upfront,0.064954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:51.875997 +AWS,ca-central-1,r6g.large,reserved_1y,partial_upfront,0.064954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:27.549277 +AWS,ca-central-1,r6g.large,reserved_3y,all_upfront,0.021651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:54.558969 +AWS,ca-central-1,r6g.large,reserved_3y,no_upfront,0.021651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:59.664212 +AWS,ca-central-1,r6g.large,reserved_3y,partial_upfront,0.021651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:36.993038 +AWS,ca-central-1,r6g.large,spot,NA,0.03653,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188750 +AWS,ca-central-1,r6g.xlarge,on_demand,NA,0.2208,USD,AWS Pricing API,2025-11-30T09:09:10.626905 +AWS,ca-central-1,r6g.xlarge,reserved_1y,all_upfront,0.129795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:39.791989 +AWS,ca-central-1,r6g.xlarge,reserved_1y,no_upfront,0.129795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:27.160042 +AWS,ca-central-1,r6g.xlarge,reserved_1y,partial_upfront,0.129795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:03.152102 +AWS,ca-central-1,r6g.xlarge,reserved_3y,all_upfront,0.043265,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:30.599798 +AWS,ca-central-1,r6g.xlarge,reserved_3y,no_upfront,0.043265,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:34.698373 +AWS,ca-central-1,r6g.xlarge,reserved_3y,partial_upfront,0.043265,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:12.635089 +AWS,ca-central-1,r6g.xlarge,spot,NA,0.068536,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187915 +AWS,ca-central-1,r6gd.12xlarge,on_demand,NA,3.0336,USD,AWS Pricing API,2025-11-30T09:10:07.141984 +AWS,ca-central-1,r6gd.12xlarge,reserved_1y,all_upfront,1.78379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:36.259000 +AWS,ca-central-1,r6gd.12xlarge,reserved_1y,no_upfront,1.78379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:24.160275 +AWS,ca-central-1,r6gd.12xlarge,reserved_1y,partial_upfront,1.78379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:59.302160 +AWS,ca-central-1,r6gd.12xlarge,reserved_3y,all_upfront,0.594597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:25.669229 +AWS,ca-central-1,r6gd.12xlarge,reserved_3y,no_upfront,0.594597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:32.140925 +AWS,ca-central-1,r6gd.12xlarge,reserved_3y,partial_upfront,0.594597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:08.558282 +AWS,ca-central-1,r6gd.12xlarge,spot,NA,0.938711,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197716 +AWS,ca-central-1,r6gd.16xlarge,on_demand,NA,4.0448,USD,AWS Pricing API,2025-11-30T09:09:33.601557 +AWS,ca-central-1,r6gd.16xlarge,reserved_1y,all_upfront,2.378311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:02.845960 +AWS,ca-central-1,r6gd.16xlarge,reserved_1y,no_upfront,2.378311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:50.369133 +AWS,ca-central-1,r6gd.16xlarge,reserved_1y,partial_upfront,2.378311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:26.062390 +AWS,ca-central-1,r6gd.16xlarge,reserved_3y,all_upfront,0.79277,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:53.087113 +AWS,ca-central-1,r6gd.16xlarge,reserved_3y,no_upfront,0.79277,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:58.154632 +AWS,ca-central-1,r6gd.16xlarge,reserved_3y,partial_upfront,0.79277,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:35.509286 +AWS,ca-central-1,r6gd.16xlarge,spot,NA,1.180382,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188713 +AWS,ca-central-1,r6gd.2xlarge,on_demand,NA,0.5056,USD,AWS Pricing API,2025-11-30T09:09:12.108226 +AWS,ca-central-1,r6gd.2xlarge,reserved_1y,all_upfront,0.351071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:41.282728 +AWS,ca-central-1,r6gd.2xlarge,reserved_1y,no_upfront,0.351071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:28.659472 +AWS,ca-central-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.351071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:04.641097 +AWS,ca-central-1,r6gd.2xlarge,reserved_3y,all_upfront,0.234024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:32.046027 +AWS,ca-central-1,r6gd.2xlarge,reserved_3y,no_upfront,0.234024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:36.195001 +AWS,ca-central-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.234024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:14.110368 +AWS,ca-central-1,r6gd.2xlarge,spot,NA,0.18183,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187951 +AWS,ca-central-1,r6gd.4xlarge,on_demand,NA,1.0112,USD,AWS Pricing API,2025-11-30T09:09:18.573914 +AWS,ca-central-1,r6gd.4xlarge,reserved_1y,all_upfront,0.7373,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:47.807423 +AWS,ca-central-1,r6gd.4xlarge,reserved_1y,no_upfront,0.7373,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:35.195932 +AWS,ca-central-1,r6gd.4xlarge,reserved_1y,partial_upfront,0.7373,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:11.084543 +AWS,ca-central-1,r6gd.4xlarge,reserved_3y,all_upfront,0.7373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:38.394445 +AWS,ca-central-1,r6gd.4xlarge,reserved_3y,no_upfront,0.7373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:42.825086 +AWS,ca-central-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.7373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:20.546224 +AWS,ca-central-1,r6gd.4xlarge,spot,NA,0.345269,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188148 +AWS,ca-central-1,r6gd.8xlarge,on_demand,NA,2.0224,USD,AWS Pricing API,2025-11-30T09:09:12.918308 +AWS,ca-central-1,r6gd.8xlarge,reserved_1y,all_upfront,1.189155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:42.118414 +AWS,ca-central-1,r6gd.8xlarge,reserved_1y,no_upfront,1.189155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:29.476086 +AWS,ca-central-1,r6gd.8xlarge,reserved_1y,partial_upfront,1.189155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:05.440180 +AWS,ca-central-1,r6gd.8xlarge,reserved_3y,all_upfront,0.396385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:32.830580 +AWS,ca-central-1,r6gd.8xlarge,reserved_3y,no_upfront,0.396385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:37.035698 +AWS,ca-central-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.396385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:14.905246 +AWS,ca-central-1,r6gd.8xlarge,spot,NA,0.673758,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187976 +AWS,ca-central-1,r6gd.large,on_demand,NA,0.1264,USD,AWS Pricing API,2025-11-30T09:09:48.407254 +AWS,ca-central-1,r6gd.large,reserved_1y,all_upfront,0.0796,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:17.755288 +AWS,ca-central-1,r6gd.large,reserved_1y,no_upfront,0.0796,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:05.375081 +AWS,ca-central-1,r6gd.large,reserved_1y,partial_upfront,0.0796,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:40.769237 +AWS,ca-central-1,r6gd.large,reserved_3y,all_upfront,0.0796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:07.531891 +AWS,ca-central-1,r6gd.large,reserved_3y,no_upfront,0.0796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:13.200524 +AWS,ca-central-1,r6gd.large,reserved_3y,partial_upfront,0.0796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:50.161374 +AWS,ca-central-1,r6gd.large,spot,NA,0.042367,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197335 +AWS,ca-central-1,r6gd.xlarge,on_demand,NA,0.2528,USD,AWS Pricing API,2025-11-30T09:09:32.527631 +AWS,ca-central-1,r6gd.xlarge,reserved_1y,all_upfront,0.1593,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:01.738953 +AWS,ca-central-1,r6gd.xlarge,reserved_1y,no_upfront,0.1593,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:49.281793 +AWS,ca-central-1,r6gd.xlarge,reserved_1y,partial_upfront,0.1593,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:24.982030 +AWS,ca-central-1,r6gd.xlarge,reserved_3y,all_upfront,0.1593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:52.043458 +AWS,ca-central-1,r6gd.xlarge,reserved_3y,no_upfront,0.1593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:57.058166 +AWS,ca-central-1,r6gd.xlarge,reserved_3y,partial_upfront,0.1593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:34.437101 +AWS,ca-central-1,r6gd.xlarge,spot,NA,0.090126,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188645 +AWS,ca-central-1,r6i.12xlarge,on_demand,NA,3.312,USD,AWS Pricing API,2025-11-30T09:10:12.911131 +AWS,ca-central-1,r6i.12xlarge,reserved_1y,all_upfront,2.279954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:41.922298 +AWS,ca-central-1,r6i.12xlarge,reserved_1y,no_upfront,2.279954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:29.888924 +AWS,ca-central-1,r6i.12xlarge,reserved_1y,partial_upfront,2.279954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:04.995640 +AWS,ca-central-1,r6i.12xlarge,reserved_3y,all_upfront,1.519985,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:31.214646 +AWS,ca-central-1,r6i.12xlarge,reserved_3y,no_upfront,1.519985,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:37.894874 +AWS,ca-central-1,r6i.12xlarge,reserved_3y,partial_upfront,1.519985,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:14.276799 +AWS,ca-central-1,r6i.12xlarge,spot,NA,1.174859,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197877 +AWS,ca-central-1,r6i.16xlarge,on_demand,NA,4.416,USD,AWS Pricing API,2025-11-30T09:09:21.265034 +AWS,ca-central-1,r6i.16xlarge,reserved_1y,all_upfront,3.192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:50.502427 +AWS,ca-central-1,r6i.16xlarge,reserved_1y,no_upfront,3.192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:37.925542 +AWS,ca-central-1,r6i.16xlarge,reserved_1y,partial_upfront,3.192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:13.788552 +AWS,ca-central-1,r6i.16xlarge,reserved_3y,all_upfront,3.192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:41.045123 +AWS,ca-central-1,r6i.16xlarge,reserved_3y,no_upfront,3.192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:45.563703 +AWS,ca-central-1,r6i.16xlarge,reserved_3y,partial_upfront,3.192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:23.217992 +AWS,ca-central-1,r6i.16xlarge,spot,NA,1.702058,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188228 +AWS,ca-central-1,r6i.24xlarge,on_demand,NA,6.624,USD,AWS Pricing API,2025-11-30T09:09:27.641122 +AWS,ca-central-1,r6i.24xlarge,reserved_1y,all_upfront,7.817009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:56.866482 +AWS,ca-central-1,r6i.24xlarge,reserved_1y,no_upfront,7.817009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:44.360796 +AWS,ca-central-1,r6i.24xlarge,reserved_1y,partial_upfront,7.817009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:20.134719 +AWS,ca-central-1,r6i.24xlarge,reserved_3y,all_upfront,2.60567,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:47.272110 +AWS,ca-central-1,r6i.24xlarge,reserved_3y,no_upfront,2.60567,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:52.067365 +AWS,ca-central-1,r6i.24xlarge,reserved_3y,partial_upfront,2.60567,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:29.540280 +AWS,ca-central-1,r6i.24xlarge,spot,NA,2.172598,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188487 +AWS,ca-central-1,r6i.2xlarge,on_demand,NA,0.552,USD,AWS Pricing API,2025-11-30T09:10:16.405363 +AWS,ca-central-1,r6i.2xlarge,reserved_1y,all_upfront,0.341667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:45.425191 +AWS,ca-central-1,r6i.2xlarge,reserved_1y,no_upfront,0.341667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:33.418127 +AWS,ca-central-1,r6i.2xlarge,reserved_1y,partial_upfront,0.341667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:08.500685 +AWS,ca-central-1,r6i.2xlarge,reserved_3y,all_upfront,0.113889,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:34.669183 +AWS,ca-central-1,r6i.2xlarge,reserved_3y,no_upfront,0.113889,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:41.473526 +AWS,ca-central-1,r6i.2xlarge,reserved_3y,partial_upfront,0.113889,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:17.814773 +AWS,ca-central-1,r6i.2xlarge,spot,NA,0.234235,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197932 +AWS,ca-central-1,r6i.32xlarge,on_demand,NA,8.832,USD,AWS Pricing API,2025-11-30T09:09:21.399425 +AWS,ca-central-1,r6i.32xlarge,reserved_1y,all_upfront,6.079954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:50.635969 +AWS,ca-central-1,r6i.32xlarge,reserved_1y,no_upfront,6.079954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:38.060267 +AWS,ca-central-1,r6i.32xlarge,reserved_1y,partial_upfront,6.079954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:13.930446 +AWS,ca-central-1,r6i.32xlarge,reserved_3y,all_upfront,4.053318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:41.176358 +AWS,ca-central-1,r6i.32xlarge,reserved_3y,no_upfront,4.053318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:45.702777 +AWS,ca-central-1,r6i.32xlarge,reserved_3y,partial_upfront,4.053318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:23.353723 +AWS,ca-central-1,r6i.32xlarge,spot,NA,2.686244,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188240 +AWS,ca-central-1,r6i.4xlarge,on_demand,NA,1.104,USD,AWS Pricing API,2025-11-30T09:09:42.697717 +AWS,ca-central-1,r6i.4xlarge,reserved_1y,all_upfront,0.798,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:11.976065 +AWS,ca-central-1,r6i.4xlarge,reserved_1y,no_upfront,0.798,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:59.554658 +AWS,ca-central-1,r6i.4xlarge,reserved_1y,partial_upfront,0.798,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:35.084438 +AWS,ca-central-1,r6i.4xlarge,reserved_3y,all_upfront,0.798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:01.975417 +AWS,ca-central-1,r6i.4xlarge,reserved_3y,no_upfront,0.798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:07.414927 +AWS,ca-central-1,r6i.4xlarge,reserved_3y,partial_upfront,0.798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:44.531064 +AWS,ca-central-1,r6i.4xlarge,spot,NA,0.483617,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197137 +AWS,ca-central-1,r6i.8xlarge,on_demand,NA,2.208,USD,AWS Pricing API,2025-11-30T09:09:47.058650 +AWS,ca-central-1,r6i.8xlarge,reserved_1y,all_upfront,2.12344,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:16.395184 +AWS,ca-central-1,r6i.8xlarge,reserved_1y,no_upfront,2.12344,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:04.002741 +AWS,ca-central-1,r6i.8xlarge,reserved_1y,partial_upfront,2.12344,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:39.434533 +AWS,ca-central-1,r6i.8xlarge,reserved_3y,all_upfront,1.06172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:06.216266 +AWS,ca-central-1,r6i.8xlarge,reserved_3y,no_upfront,1.06172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:11.824369 +AWS,ca-central-1,r6i.8xlarge,reserved_3y,partial_upfront,1.06172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:48.817880 +AWS,ca-central-1,r6i.8xlarge,spot,NA,0.853957,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197309 +AWS,ca-central-1,r6i.large,on_demand,NA,0.138,USD,AWS Pricing API,2025-11-30T09:10:02.903310 +AWS,ca-central-1,r6i.large,reserved_1y,all_upfront,0.115514,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:32.045884 +AWS,ca-central-1,r6i.large,reserved_1y,no_upfront,0.115514,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:19.936563 +AWS,ca-central-1,r6i.large,reserved_1y,partial_upfront,0.115514,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:55.117275 +AWS,ca-central-1,r6i.large,reserved_3y,all_upfront,0.057751,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:21.584511 +AWS,ca-central-1,r6i.large,reserved_3y,no_upfront,0.057751,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:27.852190 +AWS,ca-central-1,r6i.large,reserved_3y,partial_upfront,0.057751,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:04.397300 +AWS,ca-central-1,r6i.large,spot,NA,0.054513,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197614 +AWS,ca-central-1,r6i.xlarge,on_demand,NA,0.276,USD,AWS Pricing API,2025-11-30T09:09:24.806824 +AWS,ca-central-1,r6i.xlarge,reserved_1y,all_upfront,0.189977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:54.013682 +AWS,ca-central-1,r6i.xlarge,reserved_1y,no_upfront,0.189977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:41.468451 +AWS,ca-central-1,r6i.xlarge,reserved_1y,partial_upfront,0.189977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:17.311609 +AWS,ca-central-1,r6i.xlarge,reserved_3y,all_upfront,0.126659,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:44.504461 +AWS,ca-central-1,r6i.xlarge,reserved_3y,no_upfront,0.126659,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:49.150875 +AWS,ca-central-1,r6i.xlarge,reserved_3y,partial_upfront,0.126659,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:26.706561 +AWS,ca-central-1,r6i.xlarge,spot,NA,0.113747,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188307 +AWS,ca-central-1,r7g.12xlarge,on_demand,NA,2.8152,USD,AWS Pricing API,2025-11-30T09:09:41.051184 +AWS,ca-central-1,r7g.12xlarge,reserved_1y,all_upfront,3.980023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:10.350361 +AWS,ca-central-1,r7g.12xlarge,reserved_1y,no_upfront,3.980023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:57.898390 +AWS,ca-central-1,r7g.12xlarge,reserved_1y,partial_upfront,3.980023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:33.456145 +AWS,ca-central-1,r7g.12xlarge,reserved_3y,all_upfront,1.326674,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:00.372058 +AWS,ca-central-1,r7g.12xlarge,reserved_3y,no_upfront,1.326674,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:05.764649 +AWS,ca-central-1,r7g.12xlarge,reserved_3y,partial_upfront,1.326674,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:42.907880 +AWS,ca-central-1,r7g.12xlarge,spot,NA,0.900937,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188941 +AWS,ca-central-1,r7g.16xlarge,on_demand,NA,3.7536,USD,AWS Pricing API,2025-11-30T09:09:26.293728 +AWS,ca-central-1,r7g.16xlarge,reserved_1y,all_upfront,1.9494,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:55.512761 +AWS,ca-central-1,r7g.16xlarge,reserved_1y,no_upfront,1.9494,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:42.973779 +AWS,ca-central-1,r7g.16xlarge,reserved_1y,partial_upfront,1.9494,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:18.781931 +AWS,ca-central-1,r7g.16xlarge,reserved_3y,all_upfront,1.9494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:45.950638 +AWS,ca-central-1,r7g.16xlarge,reserved_3y,no_upfront,1.9494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:50.670767 +AWS,ca-central-1,r7g.16xlarge,reserved_3y,partial_upfront,1.9494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:28.191824 +AWS,ca-central-1,r7g.16xlarge,spot,NA,1.13371,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188381 +AWS,ca-central-1,r7g.2xlarge,on_demand,NA,0.4692,USD,AWS Pricing API,2025-11-30T09:09:34.413452 +AWS,ca-central-1,r7g.2xlarge,reserved_1y,all_upfront,0.3392,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:03.672873 +AWS,ca-central-1,r7g.2xlarge,reserved_1y,no_upfront,0.3392,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:51.187925 +AWS,ca-central-1,r7g.2xlarge,reserved_1y,partial_upfront,0.3392,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:26.883127 +AWS,ca-central-1,r7g.2xlarge,reserved_3y,all_upfront,0.3392,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:53.885247 +AWS,ca-central-1,r7g.2xlarge,reserved_3y,no_upfront,0.3392,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:58.979333 +AWS,ca-central-1,r7g.2xlarge,reserved_3y,partial_upfront,0.3392,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:36.320036 +AWS,ca-central-1,r7g.2xlarge,spot,NA,0.169915,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188719 +AWS,ca-central-1,r7g.4xlarge,on_demand,NA,0.9384,USD,AWS Pricing API,2025-11-30T09:09:24.943013 +AWS,ca-central-1,r7g.4xlarge,reserved_1y,all_upfront,1.326712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:54.148772 +AWS,ca-central-1,r7g.4xlarge,reserved_1y,no_upfront,1.326712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:41.612323 +AWS,ca-central-1,r7g.4xlarge,reserved_1y,partial_upfront,1.326712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:17.445434 +AWS,ca-central-1,r7g.4xlarge,reserved_3y,all_upfront,0.442237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:44.636656 +AWS,ca-central-1,r7g.4xlarge,reserved_3y,no_upfront,0.442237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:49.287003 +AWS,ca-central-1,r7g.4xlarge,reserved_3y,partial_upfront,0.442237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:26.840790 +AWS,ca-central-1,r7g.4xlarge,spot,NA,0.299448,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188327 +AWS,ca-central-1,r7g.8xlarge,on_demand,NA,1.8768,USD,AWS Pricing API,2025-11-30T09:09:56.905398 +AWS,ca-central-1,r7g.8xlarge,reserved_1y,all_upfront,1.26621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:26.229400 +AWS,ca-central-1,r7g.8xlarge,reserved_1y,no_upfront,1.26621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:14.014214 +AWS,ca-central-1,r7g.8xlarge,reserved_1y,partial_upfront,1.26621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:49.291997 +AWS,ca-central-1,r7g.8xlarge,reserved_3y,all_upfront,0.42207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:15.862393 +AWS,ca-central-1,r7g.8xlarge,reserved_3y,no_upfront,0.42207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:21.892392 +AWS,ca-central-1,r7g.8xlarge,reserved_3y,partial_upfront,0.42207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:58.604504 +AWS,ca-central-1,r7g.8xlarge,spot,NA,0.635393,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197485 +AWS,ca-central-1,r7g.large,on_demand,NA,0.1173,USD,AWS Pricing API,2025-11-30T09:09:51.346782 +AWS,ca-central-1,r7g.large,reserved_1y,all_upfront,0.09813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:20.710827 +AWS,ca-central-1,r7g.large,reserved_1y,no_upfront,0.09813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:08.401924 +AWS,ca-central-1,r7g.large,reserved_1y,partial_upfront,0.09813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:43.741496 +AWS,ca-central-1,r7g.large,reserved_3y,all_upfront,0.049043,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:10.430781 +AWS,ca-central-1,r7g.large,reserved_3y,no_upfront,0.049043,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:16.243593 +AWS,ca-central-1,r7g.large,reserved_3y,partial_upfront,0.049043,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:53.087289 +AWS,ca-central-1,r7g.large,spot,NA,0.039327,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197390 +AWS,ca-central-1,r7g.xlarge,on_demand,NA,0.2346,USD,AWS Pricing API,2025-11-30T09:09:53.786742 +AWS,ca-central-1,r7g.xlarge,reserved_1y,all_upfront,0.1218,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:23.126864 +AWS,ca-central-1,r7g.xlarge,reserved_1y,no_upfront,0.1218,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:10.865204 +AWS,ca-central-1,r7g.xlarge,reserved_1y,partial_upfront,0.1218,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:46.180125 +AWS,ca-central-1,r7g.xlarge,reserved_3y,all_upfront,0.1218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:12.821024 +AWS,ca-central-1,r7g.xlarge,reserved_3y,no_upfront,0.1218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:18.741426 +AWS,ca-central-1,r7g.xlarge,reserved_3y,partial_upfront,0.1218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:55.513098 +AWS,ca-central-1,r7g.xlarge,spot,NA,0.079616,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197436 +AWS,ca-central-1,r7i.12xlarge,on_demand,NA,3.4776,USD,AWS Pricing API,2025-11-30T09:10:03.449343 +AWS,ca-central-1,r7i.12xlarge,reserved_1y,all_upfront,3.344453,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:32.603016 +AWS,ca-central-1,r7i.12xlarge,reserved_1y,no_upfront,3.344453,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:20.480693 +AWS,ca-central-1,r7i.12xlarge,reserved_1y,partial_upfront,3.344453,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:55.657538 +AWS,ca-central-1,r7i.12xlarge,reserved_3y,all_upfront,1.672231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:22.111232 +AWS,ca-central-1,r7i.12xlarge,reserved_3y,no_upfront,1.672231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:28.401896 +AWS,ca-central-1,r7i.12xlarge,reserved_3y,partial_upfront,1.672231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:04.932718 +AWS,ca-central-1,r7i.12xlarge,spot,NA,1.225769,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197671 +AWS,ca-central-1,r7i.16xlarge,on_demand,NA,4.6368,USD,AWS Pricing API,2025-11-30T09:10:01.531998 +AWS,ca-central-1,r7i.16xlarge,reserved_1y,all_upfront,2.869635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:30.691217 +AWS,ca-central-1,r7i.16xlarge,reserved_1y,no_upfront,2.869635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:18.567235 +AWS,ca-central-1,r7i.16xlarge,reserved_1y,partial_upfront,2.869635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:53.764362 +AWS,ca-central-1,r7i.16xlarge,reserved_3y,all_upfront,0.956545,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:20.266343 +AWS,ca-central-1,r7i.16xlarge,reserved_3y,no_upfront,0.956545,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:26.468083 +AWS,ca-central-1,r7i.16xlarge,reserved_3y,partial_upfront,0.956545,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:03.053094 +AWS,ca-central-1,r7i.16xlarge,spot,NA,1.68838,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197583 +AWS,ca-central-1,r7i.24xlarge,on_demand,NA,6.9552,USD,AWS Pricing API,2025-11-30T09:09:58.144430 +AWS,ca-central-1,r7i.24xlarge,reserved_1y,all_upfront,4.392289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:27.442930 +AWS,ca-central-1,r7i.24xlarge,reserved_1y,no_upfront,4.392289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:15.260036 +AWS,ca-central-1,r7i.24xlarge,reserved_1y,partial_upfront,4.392289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:50.520373 +AWS,ca-central-1,r7i.24xlarge,reserved_3y,all_upfront,2.92821,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:17.069799 +AWS,ca-central-1,r7i.24xlarge,reserved_3y,no_upfront,2.92821,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:23.159867 +AWS,ca-central-1,r7i.24xlarge,reserved_3y,partial_upfront,2.92821,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:59.822765 +AWS,ca-central-1,r7i.24xlarge,spot,NA,1.89514,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197518 +AWS,ca-central-1,r7i.2xlarge,on_demand,NA,0.5796,USD,AWS Pricing API,2025-11-30T09:10:00.572914 +AWS,ca-central-1,r7i.2xlarge,reserved_1y,all_upfront,0.38433,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:29.745511 +AWS,ca-central-1,r7i.2xlarge,reserved_1y,no_upfront,0.38433,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:17.601534 +AWS,ca-central-1,r7i.2xlarge,reserved_1y,partial_upfront,0.38433,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:52.808695 +AWS,ca-central-1,r7i.2xlarge,reserved_3y,all_upfront,0.38433,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:19.327226 +AWS,ca-central-1,r7i.2xlarge,reserved_3y,no_upfront,0.38433,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:25.504952 +AWS,ca-central-1,r7i.2xlarge,reserved_3y,partial_upfront,0.38433,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:02.114161 +AWS,ca-central-1,r7i.2xlarge,spot,NA,0.224194,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197587 +AWS,ca-central-1,r7i.48xlarge,on_demand,NA,13.9104,USD,AWS Pricing API,2025-11-30T09:10:21.087953 +AWS,ca-central-1,r7i.48xlarge,reserved_1y,all_upfront,16.415868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:50.168543 +AWS,ca-central-1,r7i.48xlarge,reserved_1y,no_upfront,16.415868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:38.184154 +AWS,ca-central-1,r7i.48xlarge,reserved_1y,partial_upfront,16.415868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:13.197714 +AWS,ca-central-1,r7i.48xlarge,reserved_3y,all_upfront,5.471956,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:39.288444 +AWS,ca-central-1,r7i.48xlarge,reserved_3y,no_upfront,5.471956,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:46.297178 +AWS,ca-central-1,r7i.48xlarge,reserved_3y,partial_upfront,5.471956,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:22.502820 +AWS,ca-central-1,r7i.48xlarge,spot,NA,3.781912,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.198033 +AWS,ca-central-1,r7i.4xlarge,on_demand,NA,1.1592,USD,AWS Pricing API,2025-11-30T09:09:57.994742 +AWS,ca-central-1,r7i.4xlarge,reserved_1y,all_upfront,0.717466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:27.308781 +AWS,ca-central-1,r7i.4xlarge,reserved_1y,no_upfront,0.717466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:15.115201 +AWS,ca-central-1,r7i.4xlarge,reserved_1y,partial_upfront,0.717466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:50.383985 +AWS,ca-central-1,r7i.4xlarge,reserved_3y,all_upfront,0.239155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:16.924382 +AWS,ca-central-1,r7i.4xlarge,reserved_3y,no_upfront,0.239155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:23.015509 +AWS,ca-central-1,r7i.4xlarge,reserved_3y,partial_upfront,0.239155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:59.684737 +AWS,ca-central-1,r7i.4xlarge,spot,NA,0.436859,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197514 +AWS,ca-central-1,r7i.8xlarge,on_demand,NA,2.3184,USD,AWS Pricing API,2025-11-30T09:09:14.803541 +AWS,ca-central-1,r7i.8xlarge,reserved_1y,all_upfront,1.53732,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:44.006316 +AWS,ca-central-1,r7i.8xlarge,reserved_1y,no_upfront,1.53732,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:31.379486 +AWS,ca-central-1,r7i.8xlarge,reserved_1y,partial_upfront,1.53732,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:07.329814 +AWS,ca-central-1,r7i.8xlarge,reserved_3y,all_upfront,1.53732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:34.689996 +AWS,ca-central-1,r7i.8xlarge,reserved_3y,no_upfront,1.53732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:38.977520 +AWS,ca-central-1,r7i.8xlarge,reserved_3y,partial_upfront,1.53732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:16.767278 +AWS,ca-central-1,r7i.8xlarge,spot,NA,0.901379,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188007 +AWS,ca-central-1,r7i.large,on_demand,NA,0.1449,USD,AWS Pricing API,2025-11-30T09:09:28.985732 +AWS,ca-central-1,r7i.large,reserved_1y,all_upfront,0.10474,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:58.225934 +AWS,ca-central-1,r7i.large,reserved_1y,no_upfront,0.10474,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:45.726102 +AWS,ca-central-1,r7i.large,reserved_1y,partial_upfront,0.10474,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:21.486148 +AWS,ca-central-1,r7i.large,reserved_3y,all_upfront,0.10474,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:48.609496 +AWS,ca-central-1,r7i.large,reserved_3y,no_upfront,0.10474,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:53.443434 +AWS,ca-central-1,r7i.large,reserved_3y,partial_upfront,0.10474,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:30.951704 +AWS,ca-central-1,r7i.large,spot,NA,0.045008,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188506 +AWS,ca-central-1,r7i.metal-24xl,on_demand,NA,6.9552,USD,AWS Pricing API,2025-11-30T09:09:45.165398 +AWS,ca-central-1,r7i.metal-24xl,reserved_1y,all_upfront,5.821178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:14.505260 +AWS,ca-central-1,r7i.metal-24xl,reserved_1y,no_upfront,5.821178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:02.083043 +AWS,ca-central-1,r7i.metal-24xl,reserved_1y,partial_upfront,5.821178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:37.519847 +AWS,ca-central-1,r7i.metal-24xl,reserved_3y,all_upfront,2.910599,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:04.369453 +AWS,ca-central-1,r7i.metal-24xl,reserved_3y,no_upfront,2.910599,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:09.900843 +AWS,ca-central-1,r7i.metal-24xl,reserved_3y,partial_upfront,2.910599,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:46.930556 +AWS,ca-central-1,r7i.metal-24xl,spot,NA,1.936248,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197208 +AWS,ca-central-1,r7i.metal-48xl,on_demand,NA,13.9104,USD,AWS Pricing API,2025-11-30T09:10:04.979915 +AWS,ca-central-1,r7i.metal-48xl,reserved_1y,all_upfront,11.642459,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:34.077570 +AWS,ca-central-1,r7i.metal-48xl,reserved_1y,no_upfront,11.642459,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:21.973198 +AWS,ca-central-1,r7i.metal-48xl,reserved_1y,partial_upfront,11.642459,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:57.130268 +AWS,ca-central-1,r7i.metal-48xl,reserved_3y,all_upfront,5.821226,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:23.558558 +AWS,ca-central-1,r7i.metal-48xl,reserved_3y,no_upfront,5.821226,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:29.924981 +AWS,ca-central-1,r7i.metal-48xl,reserved_3y,partial_upfront,5.821226,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:06.405778 +AWS,ca-central-1,r7i.metal-48xl,spot,NA,3.670197,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197683 +AWS,ca-central-1,r7i.xlarge,on_demand,NA,0.2898,USD,AWS Pricing API,2025-11-30T09:09:40.507334 +AWS,ca-central-1,r7i.xlarge,reserved_1y,all_upfront,0.409703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:09.797600 +AWS,ca-central-1,r7i.xlarge,reserved_1y,no_upfront,0.409703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:57.344004 +AWS,ca-central-1,r7i.xlarge,reserved_1y,partial_upfront,0.409703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:32.911660 +AWS,ca-central-1,r7i.xlarge,reserved_3y,all_upfront,0.136568,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:59.842110 +AWS,ca-central-1,r7i.xlarge,reserved_3y,no_upfront,0.136568,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:05.209601 +AWS,ca-central-1,r7i.xlarge,reserved_3y,partial_upfront,0.136568,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:42.366905 +AWS,ca-central-1,r7i.xlarge,spot,NA,0.101829,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188947 +AWS,ca-central-1,r8g.12xlarge,on_demand,NA,3.09696,USD,AWS Pricing API,2025-11-30T09:09:47.330297 +AWS,ca-central-1,r8g.12xlarge,reserved_1y,all_upfront,2.23858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:16.663729 +AWS,ca-central-1,r8g.12xlarge,reserved_1y,no_upfront,2.23858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:04.285903 +AWS,ca-central-1,r8g.12xlarge,reserved_1y,partial_upfront,2.23858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:39.701185 +AWS,ca-central-1,r8g.12xlarge,reserved_3y,all_upfront,2.23858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:06.478805 +AWS,ca-central-1,r8g.12xlarge,reserved_3y,no_upfront,2.23858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:12.099930 +AWS,ca-central-1,r8g.12xlarge,reserved_3y,partial_upfront,2.23858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:49.090646 +AWS,ca-central-1,r8g.12xlarge,spot,NA,0.742596,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197318 +AWS,ca-central-1,r8g.16xlarge,on_demand,NA,4.12928,USD,AWS Pricing API,2025-11-30T09:10:10.597573 +AWS,ca-central-1,r8g.16xlarge,reserved_1y,all_upfront,2.555594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:39.617786 +AWS,ca-central-1,r8g.16xlarge,reserved_1y,no_upfront,2.555594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:27.566363 +AWS,ca-central-1,r8g.16xlarge,reserved_1y,partial_upfront,2.555594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:02.676761 +AWS,ca-central-1,r8g.16xlarge,reserved_3y,all_upfront,0.851865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:28.958170 +AWS,ca-central-1,r8g.16xlarge,reserved_3y,no_upfront,0.851865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:35.562044 +AWS,ca-central-1,r8g.16xlarge,reserved_3y,partial_upfront,0.851865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:11.994828 +AWS,ca-central-1,r8g.16xlarge,spot,NA,0.789191,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197810 +AWS,ca-central-1,r8g.24xlarge,on_demand,NA,6.19392,USD,AWS Pricing API,2025-11-30T09:09:38.612314 +AWS,ca-central-1,r8g.24xlarge,reserved_1y,all_upfront,4.178653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:07.884847 +AWS,ca-central-1,r8g.24xlarge,reserved_1y,no_upfront,4.178653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:55.440583 +AWS,ca-central-1,r8g.24xlarge,reserved_1y,partial_upfront,4.178653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:31.041343 +AWS,ca-central-1,r8g.24xlarge,reserved_3y,all_upfront,1.392884,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:57.988421 +AWS,ca-central-1,r8g.24xlarge,reserved_3y,no_upfront,1.392884,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:03.286455 +AWS,ca-central-1,r8g.24xlarge,reserved_3y,partial_upfront,1.392884,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:40.475668 +AWS,ca-central-1,r8g.24xlarge,spot,NA,1.089785,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188894 +AWS,ca-central-1,r8g.2xlarge,on_demand,NA,0.51616,USD,AWS Pricing API,2025-11-30T09:09:51.079248 +AWS,ca-central-1,r8g.2xlarge,reserved_1y,all_upfront,0.348174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:20.442956 +AWS,ca-central-1,r8g.2xlarge,reserved_1y,no_upfront,0.348174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:08.123794 +AWS,ca-central-1,r8g.2xlarge,reserved_1y,partial_upfront,0.348174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:43.465233 +AWS,ca-central-1,r8g.2xlarge,reserved_3y,all_upfront,0.116058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:10.167251 +AWS,ca-central-1,r8g.2xlarge,reserved_3y,no_upfront,0.116058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:15.965808 +AWS,ca-central-1,r8g.2xlarge,reserved_3y,partial_upfront,0.116058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:52.821233 +AWS,ca-central-1,r8g.2xlarge,spot,NA,0.168683,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197398 +AWS,ca-central-1,r8g.48xlarge,on_demand,NA,12.38784,USD,AWS Pricing API,2025-11-30T09:09:37.123314 +AWS,ca-central-1,r8g.48xlarge,reserved_1y,all_upfront,8.357306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:06.392373 +AWS,ca-central-1,r8g.48xlarge,reserved_1y,no_upfront,8.357306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:53.925218 +AWS,ca-central-1,r8g.48xlarge,reserved_1y,partial_upfront,8.357306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:29.566716 +AWS,ca-central-1,r8g.48xlarge,reserved_3y,all_upfront,2.785769,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:56.525962 +AWS,ca-central-1,r8g.48xlarge,reserved_3y,no_upfront,2.785769,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:01.734844 +AWS,ca-central-1,r8g.48xlarge,reserved_3y,partial_upfront,2.785769,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:38.995400 +AWS,ca-central-1,r8g.48xlarge,spot,NA,2.286369,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188828 +AWS,ca-central-1,r8g.4xlarge,on_demand,NA,1.03232,USD,AWS Pricing API,2025-11-30T09:09:55.545050 +AWS,ca-central-1,r8g.4xlarge,reserved_1y,all_upfront,0.68453,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:24.881100 +AWS,ca-central-1,r8g.4xlarge,reserved_1y,no_upfront,0.68453,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:12.634287 +AWS,ca-central-1,r8g.4xlarge,reserved_1y,partial_upfront,0.68453,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:47.949967 +AWS,ca-central-1,r8g.4xlarge,reserved_3y,all_upfront,0.68453,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:14.551967 +AWS,ca-central-1,r8g.4xlarge,reserved_3y,no_upfront,0.68453,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:20.528782 +AWS,ca-central-1,r8g.4xlarge,reserved_3y,partial_upfront,0.68453,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:57.244756 +AWS,ca-central-1,r8g.4xlarge,spot,NA,0.298377,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197481 +AWS,ca-central-1,r8g.8xlarge,on_demand,NA,2.06464,USD,AWS Pricing API,2025-11-30T09:09:16.280271 +AWS,ca-central-1,r8g.8xlarge,reserved_1y,all_upfront,1.303871,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:45.515622 +AWS,ca-central-1,r8g.8xlarge,reserved_1y,no_upfront,1.303871,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:32.878679 +AWS,ca-central-1,r8g.8xlarge,reserved_1y,partial_upfront,1.303871,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:08.806247 +AWS,ca-central-1,r8g.8xlarge,reserved_3y,all_upfront,0.869244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:36.132004 +AWS,ca-central-1,r8g.8xlarge,reserved_3y,no_upfront,0.869244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:40.487722 +AWS,ca-central-1,r8g.8xlarge,reserved_3y,partial_upfront,0.869244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:18.238851 +AWS,ca-central-1,r8g.8xlarge,spot,NA,1.027576,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188063 +AWS,ca-central-1,r8g.large,on_demand,NA,0.12904,USD,AWS Pricing API,2025-11-30T09:09:54.057513 +AWS,ca-central-1,r8g.large,reserved_1y,all_upfront,0.079909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:23.395281 +AWS,ca-central-1,r8g.large,reserved_1y,no_upfront,0.079909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:11.143271 +AWS,ca-central-1,r8g.large,reserved_1y,partial_upfront,0.079909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:46.448215 +AWS,ca-central-1,r8g.large,reserved_3y,all_upfront,0.026636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:13.094691 +AWS,ca-central-1,r8g.large,reserved_3y,no_upfront,0.026636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:19.016200 +AWS,ca-central-1,r8g.large,reserved_3y,partial_upfront,0.026636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:55.776183 +AWS,ca-central-1,r8g.large,spot,NA,0.047714,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197452 +AWS,ca-central-1,r8g.xlarge,on_demand,NA,0.25808,USD,AWS Pricing API,2025-11-30T09:09:36.717113 +AWS,ca-central-1,r8g.xlarge,reserved_1y,all_upfront,0.18655,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:05.986664 +AWS,ca-central-1,r8g.xlarge,reserved_1y,no_upfront,0.18655,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:53.509121 +AWS,ca-central-1,r8g.xlarge,reserved_1y,partial_upfront,0.18655,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:45:29.154660 +AWS,ca-central-1,r8g.xlarge,reserved_3y,all_upfront,0.18655,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:56.133947 +AWS,ca-central-1,r8g.xlarge,reserved_3y,no_upfront,0.18655,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:01.321088 +AWS,ca-central-1,r8g.xlarge,reserved_3y,partial_upfront,0.18655,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:38.587663 +AWS,ca-central-1,r8g.xlarge,spot,NA,0.084158,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188822 +AWS,ca-central-1,r8gd.12xlarge,on_demand,NA,3.86976,USD,AWS Pricing API,2025-11-30T09:09:54.862480 +AWS,ca-central-1,r8gd.12xlarge,spot,NA,0.899457,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197456 +AWS,ca-central-1,r8gd.16xlarge,on_demand,NA,5.15968,USD,AWS Pricing API,2025-11-30T09:09:43.256449 +AWS,ca-central-1,r8gd.16xlarge,spot,NA,0.749898,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197182 +AWS,ca-central-1,r8gd.24xlarge,on_demand,NA,7.73952,USD,AWS Pricing API,2025-11-30T09:09:30.629558 +AWS,ca-central-1,r8gd.24xlarge,spot,NA,1.115959,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188596 +AWS,ca-central-1,r8gd.2xlarge,on_demand,NA,0.64496,USD,AWS Pricing API,2025-11-30T09:09:36.174283 +AWS,ca-central-1,r8gd.2xlarge,spot,NA,0.194596,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188809 +AWS,ca-central-1,r8gd.48xlarge,on_demand,NA,15.47904,USD,AWS Pricing API,2025-11-30T09:10:10.333866 +AWS,ca-central-1,r8gd.48xlarge,spot,NA,2.300279,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197794 +AWS,ca-central-1,r8gd.4xlarge,on_demand,NA,1.28992,USD,AWS Pricing API,2025-11-30T09:10:04.701779 +AWS,ca-central-1,r8gd.4xlarge,spot,NA,0.377054,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197692 +AWS,ca-central-1,r8gd.8xlarge,on_demand,NA,2.57984,USD,AWS Pricing API,2025-11-30T09:09:32.259833 +AWS,ca-central-1,r8gd.8xlarge,spot,NA,0.920785,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188670 +AWS,ca-central-1,r8gd.large,on_demand,NA,0.16124,USD,AWS Pricing API,2025-11-30T09:09:25.218077 +AWS,ca-central-1,r8gd.large,spot,NA,0.035358,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188425 +AWS,ca-central-1,r8gd.xlarge,on_demand,NA,0.32248,USD,AWS Pricing API,2025-11-30T09:09:26.020303 +AWS,ca-central-1,r8gd.xlarge,spot,NA,0.080814,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188402 +AWS,ca-central-1,r8i.12xlarge,on_demand,NA,3.6516,USD,AWS Pricing API,2025-11-30T09:09:32.124411 +AWS,ca-central-1,r8i.12xlarge,spot,NA,1.729743,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188657 +AWS,ca-central-1,r8i.16xlarge,on_demand,NA,4.8688,USD,AWS Pricing API,2025-11-30T09:10:04.434758 +AWS,ca-central-1,r8i.16xlarge,spot,NA,2.30698,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197649 +AWS,ca-central-1,r8i.24xlarge,on_demand,NA,7.3032,USD,AWS Pricing API,2025-11-30T09:10:10.199015 +AWS,ca-central-1,r8i.24xlarge,spot,NA,3.467765,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197790 +AWS,ca-central-1,r8i.2xlarge,on_demand,NA,0.6086,USD,AWS Pricing API,2025-11-30T09:09:58.283325 +AWS,ca-central-1,r8i.2xlarge,spot,NA,0.291474,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197538 +AWS,ca-central-1,r8i.48xlarge,on_demand,NA,14.6064,USD,AWS Pricing API,2025-11-30T09:10:17.460915 +AWS,ca-central-1,r8i.48xlarge,spot,NA,6.95098,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197945 +AWS,ca-central-1,r8i.4xlarge,on_demand,NA,1.2172,USD,AWS Pricing API,2025-11-30T09:09:53.649943 +AWS,ca-central-1,r8i.4xlarge,spot,NA,0.577306,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197448 +AWS,ca-central-1,r8i.8xlarge,on_demand,NA,2.4344,USD,AWS Pricing API,2025-11-30T09:09:46.919833 +AWS,ca-central-1,r8i.8xlarge,spot,NA,1.164635,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.197296 +AWS,ca-central-1,r8i.large,on_demand,NA,0.15215,USD,AWS Pricing API,2025-11-30T09:09:11.442397 +AWS,ca-central-1,r8i.large,spot,NA,0.072675,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.187927 +AWS,ca-central-1,r8i.xlarge,on_demand,NA,0.3043,USD,AWS Pricing API,2025-11-30T09:09:21.550167 +AWS,ca-central-1,r8i.xlarge,spot,NA,0.145169,USD,AWS EC2 API (90-day avg),2025-11-30T10:01:00.188253 +AWS,eu-central-1,c5.12xlarge,on_demand,NA,2.328,USD,AWS Pricing API,2025-11-30T09:04:53.177307 +AWS,eu-central-1,c5.12xlarge,reserved_1y,all_upfront,2.459292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:22.415873 +AWS,eu-central-1,c5.12xlarge,reserved_1y,no_upfront,2.459292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:07.175009 +AWS,eu-central-1,c5.12xlarge,reserved_1y,partial_upfront,2.459292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:47.390664 +AWS,eu-central-1,c5.12xlarge,reserved_3y,all_upfront,1.229764,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:18.865436 +AWS,eu-central-1,c5.12xlarge,reserved_3y,no_upfront,1.229764,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:12.783408 +AWS,eu-central-1,c5.12xlarge,reserved_3y,partial_upfront,1.229764,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:57.481375 +AWS,eu-central-1,c5.12xlarge,spot,NA,0.718244,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093625 +AWS,eu-central-1,c5.18xlarge,on_demand,NA,3.492,USD,AWS Pricing API,2025-11-30T09:05:01.615397 +AWS,eu-central-1,c5.18xlarge,reserved_1y,all_upfront,2.793205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:30.885654 +AWS,eu-central-1,c5.18xlarge,reserved_1y,no_upfront,2.793205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:15.690328 +AWS,eu-central-1,c5.18xlarge,reserved_1y,partial_upfront,2.793205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:55.770019 +AWS,eu-central-1,c5.18xlarge,reserved_3y,all_upfront,1.396402,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:27.133328 +AWS,eu-central-1,c5.18xlarge,reserved_3y,no_upfront,1.396402,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:21.343761 +AWS,eu-central-1,c5.18xlarge,reserved_3y,partial_upfront,1.396402,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:05.851628 +AWS,eu-central-1,c5.18xlarge,spot,NA,0.825943,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093846 +AWS,eu-central-1,c5.24xlarge,on_demand,NA,4.656,USD,AWS Pricing API,2025-11-30T09:04:05.921819 +AWS,eu-central-1,c5.24xlarge,reserved_1y,all_upfront,5.251941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:35.540107 +AWS,eu-central-1,c5.24xlarge,reserved_1y,no_upfront,5.251941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:19.662114 +AWS,eu-central-1,c5.24xlarge,reserved_1y,partial_upfront,5.251941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:00.698167 +AWS,eu-central-1,c5.24xlarge,reserved_3y,all_upfront,1.750647,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:32.876334 +AWS,eu-central-1,c5.24xlarge,reserved_3y,no_upfront,1.750647,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:25.053941 +AWS,eu-central-1,c5.24xlarge,reserved_3y,partial_upfront,1.750647,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:11.099055 +AWS,eu-central-1,c5.24xlarge,spot,NA,1.001039,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092133 +AWS,eu-central-1,c5.4xlarge,on_demand,NA,0.776,USD,AWS Pricing API,2025-11-30T09:04:45.903251 +AWS,eu-central-1,c5.4xlarge,reserved_1y,all_upfront,0.443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:15.158027 +AWS,eu-central-1,c5.4xlarge,reserved_1y,no_upfront,0.443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:59.883609 +AWS,eu-central-1,c5.4xlarge,reserved_1y,partial_upfront,0.443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:40.225813 +AWS,eu-central-1,c5.4xlarge,reserved_3y,all_upfront,0.443,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:11.848138 +AWS,eu-central-1,c5.4xlarge,reserved_3y,no_upfront,0.443,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:05.450260 +AWS,eu-central-1,c5.4xlarge,reserved_3y,partial_upfront,0.443,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:50.377211 +AWS,eu-central-1,c5.4xlarge,spot,NA,0.188082,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093380 +AWS,eu-central-1,c5.9xlarge,on_demand,NA,1.746,USD,AWS Pricing API,2025-11-30T09:04:05.229923 +AWS,eu-central-1,c5.9xlarge,reserved_1y,all_upfront,1.844219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:34.865070 +AWS,eu-central-1,c5.9xlarge,reserved_1y,no_upfront,1.844219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:18.973403 +AWS,eu-central-1,c5.9xlarge,reserved_1y,partial_upfront,1.844219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:00.021705 +AWS,eu-central-1,c5.9xlarge,reserved_3y,all_upfront,0.922073,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:32.142424 +AWS,eu-central-1,c5.9xlarge,reserved_3y,no_upfront,0.922073,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:24.365420 +AWS,eu-central-1,c5.9xlarge,reserved_3y,partial_upfront,0.922073,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:10.428120 +AWS,eu-central-1,c5.9xlarge,spot,NA,0.48313,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092141 +AWS,eu-central-1,c5a.12xlarge,on_demand,NA,2.088,USD,AWS Pricing API,2025-11-30T09:05:02.197740 +AWS,eu-central-1,c5a.12xlarge,reserved_1y,all_upfront,1.22774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:31.424957 +AWS,eu-central-1,c5a.12xlarge,reserved_1y,no_upfront,1.22774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:16.235311 +AWS,eu-central-1,c5a.12xlarge,reserved_1y,partial_upfront,1.22774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:56.317271 +AWS,eu-central-1,c5a.12xlarge,reserved_3y,all_upfront,0.409247,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:27.664795 +AWS,eu-central-1,c5a.12xlarge,reserved_3y,no_upfront,0.409247,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:21.893427 +AWS,eu-central-1,c5a.12xlarge,reserved_3y,partial_upfront,0.409247,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:06.395969 +AWS,eu-central-1,c5a.12xlarge,spot,NA,0.848255,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093858 +AWS,eu-central-1,c5a.16xlarge,on_demand,NA,2.784,USD,AWS Pricing API,2025-11-30T09:04:21.338133 +AWS,eu-central-1,c5a.16xlarge,reserved_1y,all_upfront,1.636986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:50.932368 +AWS,eu-central-1,c5a.16xlarge,reserved_1y,no_upfront,1.636986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:35.142000 +AWS,eu-central-1,c5a.16xlarge,reserved_1y,partial_upfront,1.636986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:16.041353 +AWS,eu-central-1,c5a.16xlarge,reserved_3y,all_upfront,0.545662,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:48.003191 +AWS,eu-central-1,c5a.16xlarge,reserved_3y,no_upfront,0.545662,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:40.656569 +AWS,eu-central-1,c5a.16xlarge,reserved_3y,partial_upfront,0.545662,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:26.291055 +AWS,eu-central-1,c5a.16xlarge,spot,NA,0.888324,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092620 +AWS,eu-central-1,c5a.24xlarge,on_demand,NA,4.176,USD,AWS Pricing API,2025-11-30T09:05:08.517785 +AWS,eu-central-1,c5a.24xlarge,reserved_1y,all_upfront,2.505854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:37.691774 +AWS,eu-central-1,c5a.24xlarge,reserved_1y,no_upfront,2.505854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:22.532623 +AWS,eu-central-1,c5a.24xlarge,reserved_1y,partial_upfront,2.505854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:02.546361 +AWS,eu-central-1,c5a.24xlarge,reserved_3y,all_upfront,1.670618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:33.779173 +AWS,eu-central-1,c5a.24xlarge,reserved_3y,no_upfront,1.670618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:28.228117 +AWS,eu-central-1,c5a.24xlarge,reserved_3y,partial_upfront,1.670618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:12.577506 +AWS,eu-central-1,c5a.24xlarge,spot,NA,1.266198,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094106 +AWS,eu-central-1,c5a.2xlarge,on_demand,NA,0.348,USD,AWS Pricing API,2025-11-30T09:04:51.397958 +AWS,eu-central-1,c5a.2xlarge,reserved_1y,all_upfront,0.276,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:20.628454 +AWS,eu-central-1,c5a.2xlarge,reserved_1y,no_upfront,0.276,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:05.395029 +AWS,eu-central-1,c5a.2xlarge,reserved_1y,partial_upfront,0.276,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:45.604786 +AWS,eu-central-1,c5a.2xlarge,reserved_3y,all_upfront,0.276,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:17.145733 +AWS,eu-central-1,c5a.2xlarge,reserved_3y,no_upfront,0.276,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:10.998809 +AWS,eu-central-1,c5a.2xlarge,reserved_3y,partial_upfront,0.276,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:55.748721 +AWS,eu-central-1,c5a.2xlarge,spot,NA,0.142396,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093529 +AWS,eu-central-1,c5a.4xlarge,on_demand,NA,0.696,USD,AWS Pricing API,2025-11-30T09:04:23.913816 +AWS,eu-central-1,c5a.4xlarge,reserved_1y,all_upfront,0.396,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:53.523648 +AWS,eu-central-1,c5a.4xlarge,reserved_1y,no_upfront,0.396,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:37.753492 +AWS,eu-central-1,c5a.4xlarge,reserved_1y,partial_upfront,0.396,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:18.614324 +AWS,eu-central-1,c5a.4xlarge,reserved_3y,all_upfront,0.396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:50.546716 +AWS,eu-central-1,c5a.4xlarge,reserved_3y,no_upfront,0.396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:43.295295 +AWS,eu-central-1,c5a.4xlarge,reserved_3y,partial_upfront,0.396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:28.848139 +AWS,eu-central-1,c5a.4xlarge,spot,NA,0.308667,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092700 +AWS,eu-central-1,c5a.8xlarge,on_demand,NA,1.392,USD,AWS Pricing API,2025-11-30T09:04:16.561497 +AWS,eu-central-1,c5a.8xlarge,reserved_1y,all_upfront,0.83558,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:46.182786 +AWS,eu-central-1,c5a.8xlarge,reserved_1y,no_upfront,0.83558,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:30.347561 +AWS,eu-central-1,c5a.8xlarge,reserved_1y,partial_upfront,0.83558,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:11.305331 +AWS,eu-central-1,c5a.8xlarge,reserved_3y,all_upfront,0.557193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:43.333588 +AWS,eu-central-1,c5a.8xlarge,reserved_3y,no_upfront,0.557193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:35.823637 +AWS,eu-central-1,c5a.8xlarge,reserved_3y,partial_upfront,0.557193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:21.592529 +AWS,eu-central-1,c5a.8xlarge,spot,NA,0.517417,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092485 +AWS,eu-central-1,c5a.xlarge,on_demand,NA,0.174,USD,AWS Pricing API,2025-11-30T09:04:07.418386 +AWS,eu-central-1,c5a.xlarge,reserved_1y,all_upfront,0.269635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:37.040833 +AWS,eu-central-1,c5a.xlarge,reserved_1y,no_upfront,0.269635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:21.180226 +AWS,eu-central-1,c5a.xlarge,reserved_1y,partial_upfront,0.269635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:02.261567 +AWS,eu-central-1,c5a.xlarge,reserved_3y,all_upfront,0.089878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:34.357112 +AWS,eu-central-1,c5a.xlarge,reserved_3y,no_upfront,0.089878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:26.592028 +AWS,eu-central-1,c5a.xlarge,reserved_3y,partial_upfront,0.089878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:12.572482 +AWS,eu-central-1,c5a.xlarge,spot,NA,0.092643,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092159 +AWS,eu-central-1,c5ad.12xlarge,on_demand,NA,2.4,USD,AWS Pricing API,2025-11-30T09:05:12.881777 +AWS,eu-central-1,c5ad.12xlarge,reserved_1y,all_upfront,1.439977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:42.036975 +AWS,eu-central-1,c5ad.12xlarge,reserved_1y,no_upfront,1.439977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:26.912623 +AWS,eu-central-1,c5ad.12xlarge,reserved_1y,partial_upfront,1.439977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:06.879804 +AWS,eu-central-1,c5ad.12xlarge,reserved_3y,all_upfront,0.959992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:38.044523 +AWS,eu-central-1,c5ad.12xlarge,reserved_3y,no_upfront,0.959992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:32.655042 +AWS,eu-central-1,c5ad.12xlarge,reserved_3y,partial_upfront,0.959992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:16.884997 +AWS,eu-central-1,c5ad.12xlarge,spot,NA,1.20393,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094247 +AWS,eu-central-1,c5ad.16xlarge,on_demand,NA,3.2,USD,AWS Pricing API,2025-11-30T09:05:04.538582 +AWS,eu-central-1,c5ad.16xlarge,reserved_1y,all_upfront,2.559977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:33.744399 +AWS,eu-central-1,c5ad.16xlarge,reserved_1y,no_upfront,2.559977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:18.559305 +AWS,eu-central-1,c5ad.16xlarge,reserved_1y,partial_upfront,2.559977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:58.602426 +AWS,eu-central-1,c5ad.16xlarge,reserved_3y,all_upfront,1.279992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:29.906094 +AWS,eu-central-1,c5ad.16xlarge,reserved_3y,no_upfront,1.279992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:24.224913 +AWS,eu-central-1,c5ad.16xlarge,reserved_3y,partial_upfront,1.279992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:08.667546 +AWS,eu-central-1,c5ad.16xlarge,spot,NA,1.436137,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093915 +AWS,eu-central-1,c5ad.24xlarge,on_demand,NA,4.8,USD,AWS Pricing API,2025-11-30T09:04:24.050794 +AWS,eu-central-1,c5ad.24xlarge,reserved_1y,all_upfront,2.879954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:53.656724 +AWS,eu-central-1,c5ad.24xlarge,reserved_1y,no_upfront,2.879954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:37.891342 +AWS,eu-central-1,c5ad.24xlarge,reserved_1y,partial_upfront,2.879954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:18.749649 +AWS,eu-central-1,c5ad.24xlarge,reserved_3y,all_upfront,1.919985,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:50.680220 +AWS,eu-central-1,c5ad.24xlarge,reserved_3y,no_upfront,1.919985,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:43.434227 +AWS,eu-central-1,c5ad.24xlarge,reserved_3y,partial_upfront,1.919985,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:28.984863 +AWS,eu-central-1,c5ad.24xlarge,spot,NA,1.87304,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092675 +AWS,eu-central-1,c5ad.2xlarge,on_demand,NA,0.4,USD,AWS Pricing API,2025-11-30T09:04:13.426338 +AWS,eu-central-1,c5ad.2xlarge,reserved_1y,all_upfront,0.239977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:43.058840 +AWS,eu-central-1,c5ad.2xlarge,reserved_1y,no_upfront,0.239977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:27.207663 +AWS,eu-central-1,c5ad.2xlarge,reserved_1y,partial_upfront,0.239977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:08.219925 +AWS,eu-central-1,c5ad.2xlarge,reserved_3y,all_upfront,0.159992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:40.266471 +AWS,eu-central-1,c5ad.2xlarge,reserved_3y,no_upfront,0.159992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:32.661441 +AWS,eu-central-1,c5ad.2xlarge,reserved_3y,partial_upfront,0.159992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:18.512046 +AWS,eu-central-1,c5ad.2xlarge,spot,NA,0.211767,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092406 +AWS,eu-central-1,c5ad.4xlarge,on_demand,NA,0.8,USD,AWS Pricing API,2025-11-30T09:05:13.425477 +AWS,eu-central-1,c5ad.4xlarge,reserved_1y,all_upfront,0.479954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:42.585349 +AWS,eu-central-1,c5ad.4xlarge,reserved_1y,no_upfront,0.479954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:27.469428 +AWS,eu-central-1,c5ad.4xlarge,reserved_1y,partial_upfront,0.479954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:07.416493 +AWS,eu-central-1,c5ad.4xlarge,reserved_3y,all_upfront,0.319985,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:38.575231 +AWS,eu-central-1,c5ad.4xlarge,reserved_3y,no_upfront,0.319985,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:33.206280 +AWS,eu-central-1,c5ad.4xlarge,reserved_3y,partial_upfront,0.319985,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:17.428391 +AWS,eu-central-1,c5ad.4xlarge,spot,NA,0.44818,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094218 +AWS,eu-central-1,c5ad.8xlarge,on_demand,NA,1.6,USD,AWS Pricing API,2025-11-30T09:04:23.644438 +AWS,eu-central-1,c5ad.8xlarge,reserved_1y,all_upfront,0.940753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:53.251120 +AWS,eu-central-1,c5ad.8xlarge,reserved_1y,no_upfront,0.940753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:37.482259 +AWS,eu-central-1,c5ad.8xlarge,reserved_1y,partial_upfront,0.940753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:18.339926 +AWS,eu-central-1,c5ad.8xlarge,reserved_3y,all_upfront,0.313584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:50.279657 +AWS,eu-central-1,c5ad.8xlarge,reserved_3y,no_upfront,0.313584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:43.019718 +AWS,eu-central-1,c5ad.8xlarge,reserved_3y,partial_upfront,0.313584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:28.583274 +AWS,eu-central-1,c5ad.8xlarge,spot,NA,0.765342,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092687 +AWS,eu-central-1,c5ad.xlarge,on_demand,NA,0.2,USD,AWS Pricing API,2025-11-30T09:05:02.896993 +AWS,eu-central-1,c5ad.xlarge,reserved_1y,all_upfront,0.159977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:32.099137 +AWS,eu-central-1,c5ad.xlarge,reserved_1y,no_upfront,0.159977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:16.923118 +AWS,eu-central-1,c5ad.xlarge,reserved_1y,partial_upfront,0.159977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:56.997388 +AWS,eu-central-1,c5ad.xlarge,reserved_3y,all_upfront,0.079992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:28.325965 +AWS,eu-central-1,c5ad.xlarge,reserved_3y,no_upfront,0.079992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:22.582203 +AWS,eu-central-1,c5ad.xlarge,reserved_3y,partial_upfront,0.079992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:07.062234 +AWS,eu-central-1,c5ad.xlarge,spot,NA,0.094737,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093870 +AWS,eu-central-1,c5d.12xlarge,on_demand,NA,2.664,USD,AWS Pricing API,2025-11-30T09:05:14.521517 +AWS,eu-central-1,c5d.12xlarge,reserved_1y,all_upfront,1.678,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:43.660917 +AWS,eu-central-1,c5d.12xlarge,reserved_1y,no_upfront,1.678,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:28.565487 +AWS,eu-central-1,c5d.12xlarge,reserved_1y,partial_upfront,1.678,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:08.503689 +AWS,eu-central-1,c5d.12xlarge,reserved_3y,all_upfront,1.678,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:39.656632 +AWS,eu-central-1,c5d.12xlarge,reserved_3y,no_upfront,1.678,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:34.311815 +AWS,eu-central-1,c5d.12xlarge,reserved_3y,partial_upfront,1.678,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:18.505105 +AWS,eu-central-1,c5d.12xlarge,spot,NA,1.085782,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094259 +AWS,eu-central-1,c5d.18xlarge,on_demand,NA,3.996,USD,AWS Pricing API,2025-11-30T09:04:37.643482 +AWS,eu-central-1,c5d.18xlarge,reserved_1y,all_upfront,3.196603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:07.066373 +AWS,eu-central-1,c5d.18xlarge,reserved_1y,no_upfront,3.196603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:51.597056 +AWS,eu-central-1,c5d.18xlarge,reserved_1y,partial_upfront,3.196603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:32.087184 +AWS,eu-central-1,c5d.18xlarge,reserved_3y,all_upfront,1.598201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:03.850409 +AWS,eu-central-1,c5d.18xlarge,reserved_3y,no_upfront,1.598201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:57.096265 +AWS,eu-central-1,c5d.18xlarge,reserved_3y,partial_upfront,1.598201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:42.276917 +AWS,eu-central-1,c5d.18xlarge,spot,NA,1.383235,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093129 +AWS,eu-central-1,c5d.24xlarge,on_demand,NA,5.328,USD,AWS Pricing API,2025-11-30T09:04:10.152994 +AWS,eu-central-1,c5d.24xlarge,reserved_1y,all_upfront,3.196402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:39.760427 +AWS,eu-central-1,c5d.24xlarge,reserved_1y,no_upfront,3.196402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:23.921769 +AWS,eu-central-1,c5d.24xlarge,reserved_1y,partial_upfront,3.196402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:04.972665 +AWS,eu-central-1,c5d.24xlarge,reserved_3y,all_upfront,2.130801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:37.049504 +AWS,eu-central-1,c5d.24xlarge,reserved_3y,no_upfront,2.130801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:29.355904 +AWS,eu-central-1,c5d.24xlarge,reserved_3y,partial_upfront,2.130801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:15.268882 +AWS,eu-central-1,c5d.24xlarge,spot,NA,1.666869,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092259 +AWS,eu-central-1,c5d.2xlarge,on_demand,NA,0.444,USD,AWS Pricing API,2025-11-30T09:04:58.113109 +AWS,eu-central-1,c5d.2xlarge,reserved_1y,all_upfront,0.689384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:27.294510 +AWS,eu-central-1,c5d.2xlarge,reserved_1y,no_upfront,0.689384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:12.130698 +AWS,eu-central-1,c5d.2xlarge,reserved_1y,partial_upfront,0.689384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:52.288759 +AWS,eu-central-1,c5d.2xlarge,reserved_3y,all_upfront,0.229795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:23.658651 +AWS,eu-central-1,c5d.2xlarge,reserved_3y,no_upfront,0.229795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:17.767909 +AWS,eu-central-1,c5d.2xlarge,reserved_3y,partial_upfront,0.229795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:02.353286 +AWS,eu-central-1,c5d.2xlarge,spot,NA,0.177295,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093746 +AWS,eu-central-1,c5d.4xlarge,on_demand,NA,0.888,USD,AWS Pricing API,2025-11-30T09:04:17.800510 +AWS,eu-central-1,c5d.4xlarge,reserved_1y,all_upfront,0.710763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:47.402410 +AWS,eu-central-1,c5d.4xlarge,reserved_1y,no_upfront,0.710763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:31.588390 +AWS,eu-central-1,c5d.4xlarge,reserved_1y,partial_upfront,0.710763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:12.528072 +AWS,eu-central-1,c5d.4xlarge,reserved_3y,all_upfront,0.355588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:44.545868 +AWS,eu-central-1,c5d.4xlarge,reserved_3y,no_upfront,0.355588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:37.065661 +AWS,eu-central-1,c5d.4xlarge,reserved_3y,partial_upfront,0.355588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:22.805871 +AWS,eu-central-1,c5d.4xlarge,spot,NA,0.376014,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092497 +AWS,eu-central-1,c5d.9xlarge,on_demand,NA,1.998,USD,AWS Pricing API,2025-11-30T09:04:47.544691 +AWS,eu-central-1,c5d.9xlarge,reserved_1y,all_upfront,1.174772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:16.805975 +AWS,eu-central-1,c5d.9xlarge,reserved_1y,no_upfront,1.174772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:01.540419 +AWS,eu-central-1,c5d.9xlarge,reserved_1y,partial_upfront,1.174772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:41.848878 +AWS,eu-central-1,c5d.9xlarge,reserved_3y,all_upfront,0.391591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:13.434724 +AWS,eu-central-1,c5d.9xlarge,reserved_3y,no_upfront,0.391591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:07.106596 +AWS,eu-central-1,c5d.9xlarge,reserved_3y,partial_upfront,0.391591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:51.994504 +AWS,eu-central-1,c5d.9xlarge,spot,NA,0.764506,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093412 +AWS,eu-central-1,c5d.xlarge,on_demand,NA,0.222,USD,AWS Pricing API,2025-11-30T09:04:43.159256 +AWS,eu-central-1,c5d.xlarge,reserved_1y,all_upfront,0.177,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:12.463007 +AWS,eu-central-1,c5d.xlarge,reserved_1y,no_upfront,0.177,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:57.127114 +AWS,eu-central-1,c5d.xlarge,reserved_1y,partial_upfront,0.177,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:37.501873 +AWS,eu-central-1,c5d.xlarge,reserved_3y,all_upfront,0.177,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:09.173090 +AWS,eu-central-1,c5d.xlarge,reserved_3y,no_upfront,0.177,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:02.651897 +AWS,eu-central-1,c5d.xlarge,reserved_3y,partial_upfront,0.177,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:47.686819 +AWS,eu-central-1,c5d.xlarge,spot,NA,0.098337,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093317 +AWS,eu-central-1,c5n.18xlarge,on_demand,NA,4.428,USD,AWS Pricing API,2025-11-30T09:05:03.724517 +AWS,eu-central-1,c5n.18xlarge,reserved_1y,all_upfront,3.523237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:32.920217 +AWS,eu-central-1,c5n.18xlarge,reserved_1y,no_upfront,3.523237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:17.744441 +AWS,eu-central-1,c5n.18xlarge,reserved_1y,partial_upfront,3.523237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:57.803780 +AWS,eu-central-1,c5n.18xlarge,reserved_3y,all_upfront,1.761746,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:29.119694 +AWS,eu-central-1,c5n.18xlarge,reserved_3y,no_upfront,1.761746,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:23.403481 +AWS,eu-central-1,c5n.18xlarge,reserved_3y,partial_upfront,1.761746,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:07.864252 +AWS,eu-central-1,c5n.18xlarge,spot,NA,1.194699,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093862 +AWS,eu-central-1,c5n.2xlarge,on_demand,NA,0.492,USD,AWS Pricing API,2025-11-30T09:05:13.969016 +AWS,eu-central-1,c5n.2xlarge,reserved_1y,all_upfront,0.371959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:43.120652 +AWS,eu-central-1,c5n.2xlarge,reserved_1y,no_upfront,0.371959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:28.020686 +AWS,eu-central-1,c5n.2xlarge,reserved_1y,partial_upfront,0.371959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:07.967755 +AWS,eu-central-1,c5n.2xlarge,reserved_3y,all_upfront,0.247986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:39.115101 +AWS,eu-central-1,c5n.2xlarge,reserved_3y,no_upfront,0.247986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:33.755980 +AWS,eu-central-1,c5n.2xlarge,reserved_3y,partial_upfront,0.247986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:17.970221 +AWS,eu-central-1,c5n.2xlarge,spot,NA,0.220985,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094284 +AWS,eu-central-1,c5n.4xlarge,on_demand,NA,0.984,USD,AWS Pricing API,2025-11-30T09:04:50.041817 +AWS,eu-central-1,c5n.4xlarge,reserved_1y,all_upfront,0.62,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:19.267318 +AWS,eu-central-1,c5n.4xlarge,reserved_1y,no_upfront,0.62,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:04.029425 +AWS,eu-central-1,c5n.4xlarge,reserved_1y,partial_upfront,0.62,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:44.273380 +AWS,eu-central-1,c5n.4xlarge,reserved_3y,all_upfront,0.62,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:15.819401 +AWS,eu-central-1,c5n.4xlarge,reserved_3y,no_upfront,0.62,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:09.616663 +AWS,eu-central-1,c5n.4xlarge,reserved_3y,partial_upfront,0.62,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:54.413969 +AWS,eu-central-1,c5n.4xlarge,spot,NA,0.463859,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093509 +AWS,eu-central-1,c5n.9xlarge,on_demand,NA,2.214,USD,AWS Pricing API,2025-11-30T09:05:03.586999 +AWS,eu-central-1,c5n.9xlarge,reserved_1y,all_upfront,1.301826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:32.785141 +AWS,eu-central-1,c5n.9xlarge,reserved_1y,no_upfront,1.301826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:17.603499 +AWS,eu-central-1,c5n.9xlarge,reserved_1y,partial_upfront,1.301826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:57.661475 +AWS,eu-central-1,c5n.9xlarge,reserved_3y,all_upfront,0.433942,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:28.987466 +AWS,eu-central-1,c5n.9xlarge,reserved_3y,no_upfront,0.433942,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:23.265290 +AWS,eu-central-1,c5n.9xlarge,reserved_3y,partial_upfront,0.433942,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:07.729765 +AWS,eu-central-1,c5n.9xlarge,spot,NA,0.768625,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093874 +AWS,eu-central-1,c5n.metal,on_demand,NA,4.428,USD,AWS Pricing API,2025-11-30T09:04:11.785095 +AWS,eu-central-1,c5n.metal,reserved_1y,all_upfront,5.954566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:41.389541 +AWS,eu-central-1,c5n.metal,reserved_1y,no_upfront,5.954566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:25.560768 +AWS,eu-central-1,c5n.metal,reserved_1y,partial_upfront,5.954566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:06.592499 +AWS,eu-central-1,c5n.metal,reserved_3y,all_upfront,1.984855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:38.668976 +AWS,eu-central-1,c5n.metal,reserved_3y,no_upfront,1.984855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:31.015991 +AWS,eu-central-1,c5n.metal,reserved_3y,partial_upfront,1.984855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:16.894524 +AWS,eu-central-1,c5n.metal,spot,NA,1.373647,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092285 +AWS,eu-central-1,c5n.xlarge,on_demand,NA,0.246,USD,AWS Pricing API,2025-11-30T09:05:05.636096 +AWS,eu-central-1,c5n.xlarge,reserved_1y,all_upfront,0.330822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:34.833198 +AWS,eu-central-1,c5n.xlarge,reserved_1y,no_upfront,0.330822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:19.653524 +AWS,eu-central-1,c5n.xlarge,reserved_1y,partial_upfront,0.330822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:59.688197 +AWS,eu-central-1,c5n.xlarge,reserved_3y,all_upfront,0.110274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:30.966436 +AWS,eu-central-1,c5n.xlarge,reserved_3y,no_upfront,0.110274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:25.323637 +AWS,eu-central-1,c5n.xlarge,reserved_3y,partial_upfront,0.110274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:09.749651 +AWS,eu-central-1,c5n.xlarge,spot,NA,0.108234,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093995 +AWS,eu-central-1,c6g.12xlarge,on_demand,NA,1.8624,USD,AWS Pricing API,2025-11-30T09:04:17.112199 +AWS,eu-central-1,c6g.12xlarge,reserved_1y,all_upfront,1.4846,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:46.725453 +AWS,eu-central-1,c6g.12xlarge,reserved_1y,no_upfront,1.4846,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:30.891849 +AWS,eu-central-1,c6g.12xlarge,reserved_1y,partial_upfront,1.4846,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:11.859442 +AWS,eu-central-1,c6g.12xlarge,reserved_3y,all_upfront,1.4846,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:43.871217 +AWS,eu-central-1,c6g.12xlarge,reserved_3y,no_upfront,1.4846,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:36.374500 +AWS,eu-central-1,c6g.12xlarge,reserved_3y,partial_upfront,1.4846,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:22.133230 +AWS,eu-central-1,c6g.12xlarge,spot,NA,0.507624,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092457 +AWS,eu-central-1,c6g.16xlarge,on_demand,NA,2.4832,USD,AWS Pricing API,2025-11-30T09:04:35.153951 +AWS,eu-central-1,c6g.16xlarge,reserved_1y,all_upfront,1.88518,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:04.620992 +AWS,eu-central-1,c6g.16xlarge,reserved_1y,no_upfront,1.88518,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:49.079821 +AWS,eu-central-1,c6g.16xlarge,reserved_1y,partial_upfront,1.88518,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:29.651670 +AWS,eu-central-1,c6g.16xlarge,reserved_3y,all_upfront,1.256793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:01.408641 +AWS,eu-central-1,c6g.16xlarge,reserved_3y,no_upfront,1.256793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:54.627329 +AWS,eu-central-1,c6g.16xlarge,reserved_3y,partial_upfront,1.256793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:39.865156 +AWS,eu-central-1,c6g.16xlarge,spot,NA,0.696795,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093038 +AWS,eu-central-1,c6g.2xlarge,on_demand,NA,0.3104,USD,AWS Pricing API,2025-11-30T09:04:47.409758 +AWS,eu-central-1,c6g.2xlarge,reserved_1y,all_upfront,0.2474,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:16.671128 +AWS,eu-central-1,c6g.2xlarge,reserved_1y,no_upfront,0.2474,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:01.399553 +AWS,eu-central-1,c6g.2xlarge,reserved_1y,partial_upfront,0.2474,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:41.711479 +AWS,eu-central-1,c6g.2xlarge,reserved_3y,all_upfront,0.2474,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:13.302889 +AWS,eu-central-1,c6g.2xlarge,reserved_3y,no_upfront,0.2474,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:06.968506 +AWS,eu-central-1,c6g.2xlarge,reserved_3y,partial_upfront,0.2474,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:51.859462 +AWS,eu-central-1,c6g.2xlarge,spot,NA,0.130501,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093404 +AWS,eu-central-1,c6g.4xlarge,on_demand,NA,0.6208,USD,AWS Pricing API,2025-11-30T09:05:06.463592 +AWS,eu-central-1,c6g.4xlarge,reserved_1y,all_upfront,0.971005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:35.656374 +AWS,eu-central-1,c6g.4xlarge,reserved_1y,no_upfront,0.971005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:20.471507 +AWS,eu-central-1,c6g.4xlarge,reserved_1y,partial_upfront,0.971005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:00.495657 +AWS,eu-central-1,c6g.4xlarge,reserved_3y,all_upfront,0.323668,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:31.773643 +AWS,eu-central-1,c6g.4xlarge,reserved_3y,no_upfront,0.323668,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:26.158559 +AWS,eu-central-1,c6g.4xlarge,reserved_3y,partial_upfront,0.323668,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:10.558106 +AWS,eu-central-1,c6g.4xlarge,spot,NA,0.237554,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093986 +AWS,eu-central-1,c6g.8xlarge,on_demand,NA,1.2416,USD,AWS Pricing API,2025-11-30T09:04:33.497948 +AWS,eu-central-1,c6g.8xlarge,reserved_1y,all_upfront,0.744989,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:02.991247 +AWS,eu-central-1,c6g.8xlarge,reserved_1y,no_upfront,0.744989,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:47.406425 +AWS,eu-central-1,c6g.8xlarge,reserved_1y,partial_upfront,0.744989,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:28.036548 +AWS,eu-central-1,c6g.8xlarge,reserved_3y,all_upfront,0.496663,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:59.814920 +AWS,eu-central-1,c6g.8xlarge,reserved_3y,no_upfront,0.496663,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:52.963627 +AWS,eu-central-1,c6g.8xlarge,reserved_3y,partial_upfront,0.496663,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:38.249412 +AWS,eu-central-1,c6g.8xlarge,spot,NA,0.510995,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093017 +AWS,eu-central-1,c6g.xlarge,on_demand,NA,0.1552,USD,AWS Pricing API,2025-11-30T09:05:11.930338 +AWS,eu-central-1,c6g.xlarge,reserved_1y,all_upfront,0.093175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:41.094845 +AWS,eu-central-1,c6g.xlarge,reserved_1y,no_upfront,0.093175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:25.959191 +AWS,eu-central-1,c6g.xlarge,reserved_1y,partial_upfront,0.093175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:05.933444 +AWS,eu-central-1,c6g.xlarge,reserved_3y,all_upfront,0.062125,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:37.110011 +AWS,eu-central-1,c6g.xlarge,reserved_3y,no_upfront,0.062125,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:31.698878 +AWS,eu-central-1,c6g.xlarge,reserved_3y,partial_upfront,0.062125,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:15.948191 +AWS,eu-central-1,c6g.xlarge,spot,NA,0.071739,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094170 +AWS,eu-central-1,c6gd.12xlarge,on_demand,NA,2.136,USD,AWS Pricing API,2025-11-30T09:04:11.924368 +AWS,eu-central-1,c6gd.12xlarge,reserved_1y,all_upfront,1.246575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:41.525984 +AWS,eu-central-1,c6gd.12xlarge,reserved_1y,no_upfront,1.246575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:25.697428 +AWS,eu-central-1,c6gd.12xlarge,reserved_1y,partial_upfront,1.246575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:06.725655 +AWS,eu-central-1,c6gd.12xlarge,reserved_3y,all_upfront,0.415525,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:38.799871 +AWS,eu-central-1,c6gd.12xlarge,reserved_3y,no_upfront,0.415525,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:31.156078 +AWS,eu-central-1,c6gd.12xlarge,reserved_3y,partial_upfront,0.415525,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:17.027634 +AWS,eu-central-1,c6gd.12xlarge,spot,NA,0.49058,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092315 +AWS,eu-central-1,c6gd.16xlarge,on_demand,NA,2.848,USD,AWS Pricing API,2025-11-30T09:04:50.591250 +AWS,eu-central-1,c6gd.16xlarge,reserved_1y,all_upfront,1.695945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:19.816683 +AWS,eu-central-1,c6gd.16xlarge,reserved_1y,no_upfront,1.695945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:04.578398 +AWS,eu-central-1,c6gd.16xlarge,reserved_1y,partial_upfront,1.695945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:44.807042 +AWS,eu-central-1,c6gd.16xlarge,reserved_3y,all_upfront,1.130648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:16.349042 +AWS,eu-central-1,c6gd.16xlarge,reserved_3y,no_upfront,1.130648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:10.176573 +AWS,eu-central-1,c6gd.16xlarge,reserved_3y,partial_upfront,1.130648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:54.947314 +AWS,eu-central-1,c6gd.16xlarge,spot,NA,0.607122,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093534 +AWS,eu-central-1,c6gd.2xlarge,on_demand,NA,0.356,USD,AWS Pricing API,2025-11-30T09:05:00.934798 +AWS,eu-central-1,c6gd.2xlarge,reserved_1y,all_upfront,0.2226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:30.210991 +AWS,eu-central-1,c6gd.2xlarge,reserved_1y,no_upfront,0.2226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:15.011549 +AWS,eu-central-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.2226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:55.095322 +AWS,eu-central-1,c6gd.2xlarge,reserved_3y,all_upfront,0.2226,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:26.447392 +AWS,eu-central-1,c6gd.2xlarge,reserved_3y,no_upfront,0.2226,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:20.653563 +AWS,eu-central-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.2226,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:05.172746 +AWS,eu-central-1,c6gd.2xlarge,spot,NA,0.074287,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093812 +AWS,eu-central-1,c6gd.4xlarge,on_demand,NA,0.712,USD,AWS Pricing API,2025-11-30T09:04:40.270273 +AWS,eu-central-1,c6gd.4xlarge,reserved_1y,all_upfront,0.752041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:09.630029 +AWS,eu-central-1,c6gd.4xlarge,reserved_1y,no_upfront,0.752041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:54.232372 +AWS,eu-central-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.752041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:34.662657 +AWS,eu-central-1,c6gd.4xlarge,reserved_3y,all_upfront,0.376014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:06.373212 +AWS,eu-central-1,c6gd.4xlarge,reserved_3y,no_upfront,0.376014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:59.730985 +AWS,eu-central-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.376014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:44.835959 +AWS,eu-central-1,c6gd.4xlarge,spot,NA,0.233261,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093226 +AWS,eu-central-1,c6gd.8xlarge,on_demand,NA,1.424,USD,AWS Pricing API,2025-11-30T09:05:09.331712 +AWS,eu-central-1,c6gd.8xlarge,reserved_1y,all_upfront,1.1256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:38.505328 +AWS,eu-central-1,c6gd.8xlarge,reserved_1y,no_upfront,1.1256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:23.363726 +AWS,eu-central-1,c6gd.8xlarge,reserved_1y,partial_upfront,1.1256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:03.355955 +AWS,eu-central-1,c6gd.8xlarge,reserved_3y,all_upfront,1.1256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:34.575643 +AWS,eu-central-1,c6gd.8xlarge,reserved_3y,no_upfront,1.1256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:29.063785 +AWS,eu-central-1,c6gd.8xlarge,reserved_3y,partial_upfront,1.1256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:13.387759 +AWS,eu-central-1,c6gd.8xlarge,spot,NA,0.398768,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094089 +AWS,eu-central-1,c6gd.xlarge,on_demand,NA,0.178,USD,AWS Pricing API,2025-11-30T09:05:00.272562 +AWS,eu-central-1,c6gd.xlarge,reserved_1y,all_upfront,0.131279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:29.545435 +AWS,eu-central-1,c6gd.xlarge,reserved_1y,no_upfront,0.131279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:14.334212 +AWS,eu-central-1,c6gd.xlarge,reserved_1y,partial_upfront,0.131279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:54.436950 +AWS,eu-central-1,c6gd.xlarge,reserved_3y,all_upfront,0.04376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:25.793064 +AWS,eu-central-1,c6gd.xlarge,reserved_3y,no_upfront,0.04376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:19.974146 +AWS,eu-central-1,c6gd.xlarge,reserved_3y,partial_upfront,0.04376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:04.508678 +AWS,eu-central-1,c6gd.xlarge,spot,NA,0.075632,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093821 +AWS,eu-central-1,c6i.12xlarge,on_demand,NA,2.328,USD,AWS Pricing API,2025-11-30T09:05:00.137491 +AWS,eu-central-1,c6i.12xlarge,reserved_1y,all_upfront,1.43242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:29.408725 +AWS,eu-central-1,c6i.12xlarge,reserved_1y,no_upfront,1.43242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:14.197726 +AWS,eu-central-1,c6i.12xlarge,reserved_1y,partial_upfront,1.43242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:54.302380 +AWS,eu-central-1,c6i.12xlarge,reserved_3y,all_upfront,0.477473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:25.661025 +AWS,eu-central-1,c6i.12xlarge,reserved_3y,no_upfront,0.477473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:19.836241 +AWS,eu-central-1,c6i.12xlarge,reserved_3y,partial_upfront,0.477473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:04.375344 +AWS,eu-central-1,c6i.12xlarge,spot,NA,0.750101,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093804 +AWS,eu-central-1,c6i.16xlarge,on_demand,NA,3.104,USD,AWS Pricing API,2025-11-30T09:04:34.745517 +AWS,eu-central-1,c6i.16xlarge,reserved_1y,all_upfront,2.3624,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:04.205547 +AWS,eu-central-1,c6i.16xlarge,reserved_1y,no_upfront,2.3624,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:48.654907 +AWS,eu-central-1,c6i.16xlarge,reserved_1y,partial_upfront,2.3624,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:29.244521 +AWS,eu-central-1,c6i.16xlarge,reserved_3y,all_upfront,2.3624,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:01.008461 +AWS,eu-central-1,c6i.16xlarge,reserved_3y,no_upfront,2.3624,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:54.210474 +AWS,eu-central-1,c6i.16xlarge,reserved_3y,partial_upfront,2.3624,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:39.459903 +AWS,eu-central-1,c6i.16xlarge,spot,NA,1.017533,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093068 +AWS,eu-central-1,c6i.24xlarge,on_demand,NA,4.656,USD,AWS Pricing API,2025-11-30T09:04:29.371165 +AWS,eu-central-1,c6i.24xlarge,reserved_1y,all_upfront,4.473835,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:58.926732 +AWS,eu-central-1,c6i.24xlarge,reserved_1y,no_upfront,4.473835,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:43.234451 +AWS,eu-central-1,c6i.24xlarge,reserved_1y,partial_upfront,4.473835,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:24.003016 +AWS,eu-central-1,c6i.24xlarge,reserved_3y,all_upfront,2.236925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:55.823460 +AWS,eu-central-1,c6i.24xlarge,reserved_3y,no_upfront,2.236925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:48.832416 +AWS,eu-central-1,c6i.24xlarge,reserved_3y,partial_upfront,2.236925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:34.204986 +AWS,eu-central-1,c6i.24xlarge,spot,NA,1.367417,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092875 +AWS,eu-central-1,c6i.2xlarge,on_demand,NA,0.388,USD,AWS Pricing API,2025-11-30T09:04:13.154853 +AWS,eu-central-1,c6i.2xlarge,reserved_1y,all_upfront,0.548059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:42.779204 +AWS,eu-central-1,c6i.2xlarge,reserved_1y,no_upfront,0.548059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:26.934042 +AWS,eu-central-1,c6i.2xlarge,reserved_1y,partial_upfront,0.548059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:07.950875 +AWS,eu-central-1,c6i.2xlarge,reserved_3y,all_upfront,0.182686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:40.003075 +AWS,eu-central-1,c6i.2xlarge,reserved_3y,no_upfront,0.182686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:32.387243 +AWS,eu-central-1,c6i.2xlarge,reserved_3y,partial_upfront,0.182686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:18.244079 +AWS,eu-central-1,c6i.2xlarge,spot,NA,0.189461,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092350 +AWS,eu-central-1,c6i.32xlarge,on_demand,NA,6.208,USD,AWS Pricing API,2025-11-30T09:05:04.945216 +AWS,eu-central-1,c6i.32xlarge,reserved_1y,all_upfront,3.2212,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:34.157151 +AWS,eu-central-1,c6i.32xlarge,reserved_1y,no_upfront,3.2212,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:18.971212 +AWS,eu-central-1,c6i.32xlarge,reserved_1y,partial_upfront,3.2212,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:59.007886 +AWS,eu-central-1,c6i.32xlarge,reserved_3y,all_upfront,3.2212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:30.302537 +AWS,eu-central-1,c6i.32xlarge,reserved_3y,no_upfront,3.2212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:24.636152 +AWS,eu-central-1,c6i.32xlarge,reserved_3y,partial_upfront,3.2212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:09.083323 +AWS,eu-central-1,c6i.32xlarge,spot,NA,1.758206,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093920 +AWS,eu-central-1,c6i.4xlarge,on_demand,NA,0.776,USD,AWS Pricing API,2025-11-30T09:04:09.203331 +AWS,eu-central-1,c6i.4xlarge,reserved_1y,all_upfront,0.35199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:38.809154 +AWS,eu-central-1,c6i.4xlarge,reserved_1y,no_upfront,0.35199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:22.969351 +AWS,eu-central-1,c6i.4xlarge,reserved_1y,partial_upfront,0.35199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:04.027341 +AWS,eu-central-1,c6i.4xlarge,reserved_3y,all_upfront,0.35199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:36.086863 +AWS,eu-central-1,c6i.4xlarge,reserved_3y,no_upfront,0.35199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:28.395060 +AWS,eu-central-1,c6i.4xlarge,reserved_3y,partial_upfront,0.35199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:14.321226 +AWS,eu-central-1,c6i.4xlarge,spot,NA,0.30127,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092234 +AWS,eu-central-1,c6i.8xlarge,on_demand,NA,1.552,USD,AWS Pricing API,2025-11-30T09:04:22.963360 +AWS,eu-central-1,c6i.8xlarge,reserved_1y,all_upfront,1.1812,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:52.574479 +AWS,eu-central-1,c6i.8xlarge,reserved_1y,no_upfront,1.1812,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:36.791540 +AWS,eu-central-1,c6i.8xlarge,reserved_1y,partial_upfront,1.1812,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:17.659963 +AWS,eu-central-1,c6i.8xlarge,reserved_3y,all_upfront,1.1812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:49.608508 +AWS,eu-central-1,c6i.8xlarge,reserved_3y,no_upfront,1.1812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:42.331804 +AWS,eu-central-1,c6i.8xlarge,reserved_3y,partial_upfront,1.1812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:27.899804 +AWS,eu-central-1,c6i.8xlarge,spot,NA,0.534709,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092683 +AWS,eu-central-1,c6i.xlarge,on_demand,NA,0.194,USD,AWS Pricing API,2025-11-30T09:04:27.165912 +AWS,eu-central-1,c6i.xlarge,reserved_1y,all_upfront,0.163,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:56.758469 +AWS,eu-central-1,c6i.xlarge,reserved_1y,no_upfront,0.163,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:41.039820 +AWS,eu-central-1,c6i.xlarge,reserved_1y,partial_upfront,0.163,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:21.857868 +AWS,eu-central-1,c6i.xlarge,reserved_3y,all_upfront,0.081493,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:53.712912 +AWS,eu-central-1,c6i.xlarge,reserved_3y,no_upfront,0.081493,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:46.623912 +AWS,eu-central-1,c6i.xlarge,reserved_3y,partial_upfront,0.081493,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:32.062035 +AWS,eu-central-1,c6i.xlarge,spot,NA,0.086867,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092815 +AWS,eu-central-1,c6id.12xlarge,on_demand,NA,2.7972,USD,AWS Pricing API,2025-11-30T09:04:55.924021 +AWS,eu-central-1,c6id.12xlarge,reserved_1y,all_upfront,1.20839,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:25.120866 +AWS,eu-central-1,c6id.12xlarge,reserved_1y,no_upfront,1.20839,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:09.928259 +AWS,eu-central-1,c6id.12xlarge,reserved_1y,partial_upfront,1.20839,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:50.103577 +AWS,eu-central-1,c6id.12xlarge,reserved_3y,all_upfront,1.20839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:21.534918 +AWS,eu-central-1,c6id.12xlarge,reserved_3y,no_upfront,1.20839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:15.554137 +AWS,eu-central-1,c6id.12xlarge,reserved_3y,partial_upfront,1.20839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:00.181652 +AWS,eu-central-1,c6id.12xlarge,spot,NA,1.061227,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093726 +AWS,eu-central-1,c6id.16xlarge,on_demand,NA,3.7296,USD,AWS Pricing API,2025-11-30T09:05:05.499878 +AWS,eu-central-1,c6id.16xlarge,reserved_1y,all_upfront,3.939426,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:34.700374 +AWS,eu-central-1,c6id.16xlarge,reserved_1y,no_upfront,3.939426,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:19.517132 +AWS,eu-central-1,c6id.16xlarge,reserved_1y,partial_upfront,3.939426,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:59.542190 +AWS,eu-central-1,c6id.16xlarge,reserved_3y,all_upfront,1.969715,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:30.833434 +AWS,eu-central-1,c6id.16xlarge,reserved_3y,no_upfront,1.969715,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:25.182982 +AWS,eu-central-1,c6id.16xlarge,reserved_3y,partial_upfront,1.969715,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:09.615947 +AWS,eu-central-1,c6id.16xlarge,spot,NA,1.512779,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093982 +AWS,eu-central-1,c6id.24xlarge,on_demand,NA,5.5944,USD,AWS Pricing API,2025-11-30T09:04:23.372902 +AWS,eu-central-1,c6id.24xlarge,reserved_1y,all_upfront,3.52447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:52.976695 +AWS,eu-central-1,c6id.24xlarge,reserved_1y,no_upfront,3.52447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:37.208514 +AWS,eu-central-1,c6id.24xlarge,reserved_1y,partial_upfront,3.52447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:18.071032 +AWS,eu-central-1,c6id.24xlarge,reserved_3y,all_upfront,3.52447,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:50.009614 +AWS,eu-central-1,c6id.24xlarge,reserved_3y,no_upfront,3.52447,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:42.746315 +AWS,eu-central-1,c6id.24xlarge,reserved_3y,partial_upfront,3.52447,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:28.313200 +AWS,eu-central-1,c6id.24xlarge,spot,NA,1.907484,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092704 +AWS,eu-central-1,c6id.2xlarge,on_demand,NA,0.4662,USD,AWS Pricing API,2025-11-30T09:05:15.884500 +AWS,eu-central-1,c6id.2xlarge,reserved_1y,all_upfront,0.274087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:45.020514 +AWS,eu-central-1,c6id.2xlarge,reserved_1y,no_upfront,0.274087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:29.917381 +AWS,eu-central-1,c6id.2xlarge,reserved_1y,partial_upfront,0.274087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:09.846286 +AWS,eu-central-1,c6id.2xlarge,reserved_3y,all_upfront,0.091362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:40.988068 +AWS,eu-central-1,c6id.2xlarge,reserved_3y,no_upfront,0.091362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:35.688147 +AWS,eu-central-1,c6id.2xlarge,reserved_3y,partial_upfront,0.091362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:19.857481 +AWS,eu-central-1,c6id.2xlarge,spot,NA,0.182236,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094338 +AWS,eu-central-1,c6id.32xlarge,on_demand,NA,7.4592,USD,AWS Pricing API,2025-11-30T09:04:11.241730 +AWS,eu-central-1,c6id.32xlarge,reserved_1y,all_upfront,4.475545,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:40.847111 +AWS,eu-central-1,c6id.32xlarge,reserved_1y,no_upfront,4.475545,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:25.015557 +AWS,eu-central-1,c6id.32xlarge,reserved_1y,partial_upfront,4.475545,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:06.049987 +AWS,eu-central-1,c6id.32xlarge,reserved_3y,all_upfront,2.983688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:38.121247 +AWS,eu-central-1,c6id.32xlarge,reserved_3y,no_upfront,2.983688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:30.461719 +AWS,eu-central-1,c6id.32xlarge,reserved_3y,partial_upfront,2.983688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:16.357978 +AWS,eu-central-1,c6id.32xlarge,spot,NA,2.196823,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092290 +AWS,eu-central-1,c6id.4xlarge,on_demand,NA,0.9324,USD,AWS Pricing API,2025-11-30T09:04:18.344472 +AWS,eu-central-1,c6id.4xlarge,reserved_1y,all_upfront,0.706396,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:47.941160 +AWS,eu-central-1,c6id.4xlarge,reserved_1y,no_upfront,0.706396,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:32.133381 +AWS,eu-central-1,c6id.4xlarge,reserved_1y,partial_upfront,0.706396,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:13.065508 +AWS,eu-central-1,c6id.4xlarge,reserved_3y,all_upfront,0.470932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:45.077386 +AWS,eu-central-1,c6id.4xlarge,reserved_3y,no_upfront,0.470932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:37.615659 +AWS,eu-central-1,c6id.4xlarge,reserved_3y,partial_upfront,0.470932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:23.340994 +AWS,eu-central-1,c6id.4xlarge,spot,NA,0.368566,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092501 +AWS,eu-central-1,c6id.8xlarge,on_demand,NA,1.8648,USD,AWS Pricing API,2025-11-30T09:04:51.809604 +AWS,eu-central-1,c6id.8xlarge,reserved_1y,all_upfront,1.969713,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:21.033880 +AWS,eu-central-1,c6id.8xlarge,reserved_1y,no_upfront,1.969713,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:05.804931 +AWS,eu-central-1,c6id.8xlarge,reserved_1y,partial_upfront,1.969713,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:46.017091 +AWS,eu-central-1,c6id.8xlarge,reserved_3y,all_upfront,0.984858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:17.547047 +AWS,eu-central-1,c6id.8xlarge,reserved_3y,no_upfront,0.984858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:11.413544 +AWS,eu-central-1,c6id.8xlarge,reserved_3y,partial_upfront,0.984858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:56.150234 +AWS,eu-central-1,c6id.8xlarge,spot,NA,0.762948,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093561 +AWS,eu-central-1,c6id.xlarge,on_demand,NA,0.2331,USD,AWS Pricing API,2025-11-30T09:05:10.697029 +AWS,eu-central-1,c6id.xlarge,reserved_1y,all_upfront,0.13296,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:39.863963 +AWS,eu-central-1,c6id.xlarge,reserved_1y,no_upfront,0.13296,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:24.728845 +AWS,eu-central-1,c6id.xlarge,reserved_1y,partial_upfront,0.13296,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:04.707938 +AWS,eu-central-1,c6id.xlarge,reserved_3y,all_upfront,0.13296,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:35.916076 +AWS,eu-central-1,c6id.xlarge,reserved_3y,no_upfront,0.13296,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:30.454081 +AWS,eu-central-1,c6id.xlarge,reserved_3y,partial_upfront,0.13296,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:14.728919 +AWS,eu-central-1,c6id.xlarge,spot,NA,0.08851,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094126 +AWS,eu-central-1,c6in.12xlarge,on_demand,NA,3.0996,USD,AWS Pricing API,2025-11-30T09:04:16.696372 +AWS,eu-central-1,c6in.12xlarge,reserved_1y,all_upfront,2.296119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:46.317323 +AWS,eu-central-1,c6in.12xlarge,reserved_1y,no_upfront,2.296119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:30.483930 +AWS,eu-central-1,c6in.12xlarge,reserved_1y,partial_upfront,2.296119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:11.440541 +AWS,eu-central-1,c6in.12xlarge,reserved_3y,all_upfront,0.765373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:43.466416 +AWS,eu-central-1,c6in.12xlarge,reserved_3y,no_upfront,0.765373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:35.959734 +AWS,eu-central-1,c6in.12xlarge,reserved_3y,partial_upfront,0.765373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:21.734819 +AWS,eu-central-1,c6in.12xlarge,spot,NA,1.109218,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092453 +AWS,eu-central-1,c6in.16xlarge,on_demand,NA,4.1328,USD,AWS Pricing API,2025-11-30T09:04:28.127530 +AWS,eu-central-1,c6in.16xlarge,reserved_1y,all_upfront,3.28018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:57.702483 +AWS,eu-central-1,c6in.16xlarge,reserved_1y,no_upfront,3.28018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:41.996762 +AWS,eu-central-1,c6in.16xlarge,reserved_1y,partial_upfront,3.28018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:22.796074 +AWS,eu-central-1,c6in.16xlarge,reserved_3y,all_upfront,3.28018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:54.632941 +AWS,eu-central-1,c6in.16xlarge,reserved_3y,no_upfront,3.28018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:47.590688 +AWS,eu-central-1,c6in.16xlarge,reserved_3y,partial_upfront,3.28018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:33.001751 +AWS,eu-central-1,c6in.16xlarge,spot,NA,1.44547,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092809 +AWS,eu-central-1,c6in.24xlarge,on_demand,NA,6.1992,USD,AWS Pricing API,2025-11-30T09:04:37.781903 +AWS,eu-central-1,c6in.24xlarge,reserved_1y,all_upfront,8.334589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:07.199577 +AWS,eu-central-1,c6in.24xlarge,reserved_1y,no_upfront,8.334589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:51.733943 +AWS,eu-central-1,c6in.24xlarge,reserved_1y,partial_upfront,8.334589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:32.220358 +AWS,eu-central-1,c6in.24xlarge,reserved_3y,all_upfront,2.778196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:03.981589 +AWS,eu-central-1,c6in.24xlarge,reserved_3y,no_upfront,2.778196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:57.233671 +AWS,eu-central-1,c6in.24xlarge,reserved_3y,partial_upfront,2.778196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:42.411840 +AWS,eu-central-1,c6in.24xlarge,spot,NA,2.044095,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093149 +AWS,eu-central-1,c6in.2xlarge,on_demand,NA,0.5166,USD,AWS Pricing API,2025-11-30T09:04:41.508409 +AWS,eu-central-1,c6in.2xlarge,reserved_1y,all_upfront,0.472458,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:10.846074 +AWS,eu-central-1,c6in.2xlarge,reserved_1y,no_upfront,0.472458,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:55.449239 +AWS,eu-central-1,c6in.2xlarge,reserved_1y,partial_upfront,0.472458,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:35.878976 +AWS,eu-central-1,c6in.2xlarge,reserved_3y,all_upfront,0.236233,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:07.568514 +AWS,eu-central-1,c6in.2xlarge,reserved_3y,no_upfront,0.236233,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:00.980723 +AWS,eu-central-1,c6in.2xlarge,reserved_3y,partial_upfront,0.236233,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:46.071199 +AWS,eu-central-1,c6in.2xlarge,spot,NA,0.230639,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093258 +AWS,eu-central-1,c6in.32xlarge,on_demand,NA,8.2656,USD,AWS Pricing API,2025-11-30T09:05:16.020856 +AWS,eu-central-1,c6in.32xlarge,reserved_1y,all_upfront,6.576108,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:45.154285 +AWS,eu-central-1,c6in.32xlarge,reserved_1y,no_upfront,6.576108,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:30.053483 +AWS,eu-central-1,c6in.32xlarge,reserved_1y,partial_upfront,6.576108,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:09.992135 +AWS,eu-central-1,c6in.32xlarge,reserved_3y,all_upfront,3.288056,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:41.124607 +AWS,eu-central-1,c6in.32xlarge,reserved_3y,no_upfront,3.288056,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:35.836580 +AWS,eu-central-1,c6in.32xlarge,reserved_3y,partial_upfront,3.288056,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:19.991191 +AWS,eu-central-1,c6in.32xlarge,spot,NA,2.122898,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094342 +AWS,eu-central-1,c6in.4xlarge,on_demand,NA,1.0332,USD,AWS Pricing API,2025-11-30T09:04:15.731822 +AWS,eu-central-1,c6in.4xlarge,reserved_1y,all_upfront,0.822053,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:45.375161 +AWS,eu-central-1,c6in.4xlarge,reserved_1y,no_upfront,0.822053,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:29.522506 +AWS,eu-central-1,c6in.4xlarge,reserved_1y,partial_upfront,0.822053,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:10.499337 +AWS,eu-central-1,c6in.4xlarge,reserved_3y,all_upfront,0.411018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:42.537319 +AWS,eu-central-1,c6in.4xlarge,reserved_3y,no_upfront,0.411018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:34.996190 +AWS,eu-central-1,c6in.4xlarge,reserved_3y,partial_upfront,0.411018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:20.787860 +AWS,eu-central-1,c6in.4xlarge,spot,NA,0.577117,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092441 +AWS,eu-central-1,c6in.8xlarge,on_demand,NA,2.0664,USD,AWS Pricing API,2025-11-30T09:04:46.050294 +AWS,eu-central-1,c6in.8xlarge,reserved_1y,all_upfront,1.530708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:15.296864 +AWS,eu-central-1,c6in.8xlarge,reserved_1y,no_upfront,1.530708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:00.029247 +AWS,eu-central-1,c6in.8xlarge,reserved_1y,partial_upfront,1.530708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:40.360194 +AWS,eu-central-1,c6in.8xlarge,reserved_3y,all_upfront,0.510236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:11.980015 +AWS,eu-central-1,c6in.8xlarge,reserved_3y,no_upfront,0.510236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:05.588370 +AWS,eu-central-1,c6in.8xlarge,reserved_3y,partial_upfront,0.510236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:50.511545 +AWS,eu-central-1,c6in.8xlarge,spot,NA,0.754233,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093383 +AWS,eu-central-1,c6in.xlarge,on_demand,NA,0.2583,USD,AWS Pricing API,2025-11-30T09:04:33.632467 +AWS,eu-central-1,c6in.xlarge,reserved_1y,all_upfront,0.16273,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:03.128636 +AWS,eu-central-1,c6in.xlarge,reserved_1y,no_upfront,0.16273,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:47.542953 +AWS,eu-central-1,c6in.xlarge,reserved_1y,partial_upfront,0.16273,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:28.169407 +AWS,eu-central-1,c6in.xlarge,reserved_3y,all_upfront,0.16273,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:59.958443 +AWS,eu-central-1,c6in.xlarge,reserved_3y,no_upfront,0.16273,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:53.100250 +AWS,eu-central-1,c6in.xlarge,reserved_3y,partial_upfront,0.16273,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:38.388267 +AWS,eu-central-1,c6in.xlarge,spot,NA,0.103314,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093004 +AWS,eu-central-1,c7a.12xlarge,on_demand,NA,2.81112,USD,AWS Pricing API,2025-11-30T09:05:01.069593 +AWS,eu-central-1,c7a.12xlarge,reserved_1y,all_upfront,2.361345,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:30.347841 +AWS,eu-central-1,c7a.12xlarge,reserved_1y,no_upfront,2.361345,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:15.146938 +AWS,eu-central-1,c7a.12xlarge,reserved_1y,partial_upfront,2.361345,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:55.229573 +AWS,eu-central-1,c7a.12xlarge,reserved_3y,all_upfront,1.180675,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:26.578804 +AWS,eu-central-1,c7a.12xlarge,reserved_3y,no_upfront,1.180675,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:20.792741 +AWS,eu-central-1,c7a.12xlarge,reserved_3y,partial_upfront,1.180675,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:05.315795 +AWS,eu-central-1,c7a.12xlarge,spot,NA,0.885713,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093808 +AWS,eu-central-1,c7a.16xlarge,on_demand,NA,3.74816,USD,AWS Pricing API,2025-11-30T09:04:31.420174 +AWS,eu-central-1,c7a.16xlarge,reserved_1y,all_upfront,5.294292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:00.939036 +AWS,eu-central-1,c7a.16xlarge,reserved_1y,no_upfront,5.294292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:45.350172 +AWS,eu-central-1,c7a.16xlarge,reserved_1y,partial_upfront,5.294292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:26.007972 +AWS,eu-central-1,c7a.16xlarge,reserved_3y,all_upfront,1.764764,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:57.825872 +AWS,eu-central-1,c7a.16xlarge,reserved_3y,no_upfront,1.764764,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:50.899376 +AWS,eu-central-1,c7a.16xlarge,reserved_3y,partial_upfront,1.764764,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:36.223122 +AWS,eu-central-1,c7a.16xlarge,spot,NA,1.129038,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092962 +AWS,eu-central-1,c7a.24xlarge,on_demand,NA,5.62224,USD,AWS Pricing API,2025-11-30T09:05:11.248371 +AWS,eu-central-1,c7a.24xlarge,reserved_1y,all_upfront,5.402282,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:40.404741 +AWS,eu-central-1,c7a.24xlarge,reserved_1y,no_upfront,5.402282,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:25.279626 +AWS,eu-central-1,c7a.24xlarge,reserved_1y,partial_upfront,5.402282,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:05.245214 +AWS,eu-central-1,c7a.24xlarge,reserved_3y,all_upfront,2.701141,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:36.446629 +AWS,eu-central-1,c7a.24xlarge,reserved_3y,no_upfront,2.701141,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:31.008324 +AWS,eu-central-1,c7a.24xlarge,reserved_3y,partial_upfront,2.701141,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:15.270460 +AWS,eu-central-1,c7a.24xlarge,spot,NA,1.705225,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094186 +AWS,eu-central-1,c7a.2xlarge,on_demand,NA,0.46852,USD,AWS Pricing API,2025-11-30T09:04:12.607089 +AWS,eu-central-1,c7a.2xlarge,reserved_1y,all_upfront,0.393595,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:42.228388 +AWS,eu-central-1,c7a.2xlarge,reserved_1y,no_upfront,0.393595,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:26.386801 +AWS,eu-central-1,c7a.2xlarge,reserved_1y,partial_upfront,0.393595,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:07.417261 +AWS,eu-central-1,c7a.2xlarge,reserved_3y,all_upfront,0.196792,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:39.478366 +AWS,eu-central-1,c7a.2xlarge,reserved_3y,no_upfront,0.196792,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:31.835896 +AWS,eu-central-1,c7a.2xlarge,reserved_3y,partial_upfront,0.196792,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:17.704871 +AWS,eu-central-1,c7a.2xlarge,spot,NA,0.190877,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092341 +AWS,eu-central-1,c7a.32xlarge,on_demand,NA,7.49632,USD,AWS Pricing API,2025-11-30T09:04:47.680465 +AWS,eu-central-1,c7a.32xlarge,reserved_1y,all_upfront,7.203053,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:16.951902 +AWS,eu-central-1,c7a.32xlarge,reserved_1y,no_upfront,7.203053,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:01.677894 +AWS,eu-central-1,c7a.32xlarge,reserved_1y,partial_upfront,7.203053,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:41.981626 +AWS,eu-central-1,c7a.32xlarge,reserved_3y,all_upfront,3.601531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:13.567483 +AWS,eu-central-1,c7a.32xlarge,reserved_3y,no_upfront,3.601531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:07.244222 +AWS,eu-central-1,c7a.32xlarge,reserved_3y,partial_upfront,3.601531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:52.128507 +AWS,eu-central-1,c7a.32xlarge,spot,NA,1.479025,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093460 +AWS,eu-central-1,c7a.48xlarge,on_demand,NA,11.24448,USD,AWS Pricing API,2025-11-30T09:04:07.144391 +AWS,eu-central-1,c7a.48xlarge,reserved_1y,all_upfront,8.150448,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:36.766437 +AWS,eu-central-1,c7a.48xlarge,reserved_1y,no_upfront,8.150448,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:20.906522 +AWS,eu-central-1,c7a.48xlarge,reserved_1y,partial_upfront,8.150448,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:01.975566 +AWS,eu-central-1,c7a.48xlarge,reserved_3y,all_upfront,5.433629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:34.086685 +AWS,eu-central-1,c7a.48xlarge,reserved_3y,no_upfront,5.433629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:26.309873 +AWS,eu-central-1,c7a.48xlarge,reserved_3y,partial_upfront,5.433629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:12.300053 +AWS,eu-central-1,c7a.48xlarge,spot,NA,2.495879,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092194 +AWS,eu-central-1,c7a.4xlarge,on_demand,NA,0.93704,USD,AWS Pricing API,2025-11-30T09:04:48.814149 +AWS,eu-central-1,c7a.4xlarge,reserved_1y,all_upfront,0.665639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:18.046442 +AWS,eu-central-1,c7a.4xlarge,reserved_1y,no_upfront,0.665639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:02.785181 +AWS,eu-central-1,c7a.4xlarge,reserved_1y,partial_upfront,0.665639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:43.068201 +AWS,eu-central-1,c7a.4xlarge,reserved_3y,all_upfront,0.22188,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:14.629000 +AWS,eu-central-1,c7a.4xlarge,reserved_3y,no_upfront,0.22188,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:08.369724 +AWS,eu-central-1,c7a.4xlarge,reserved_3y,partial_upfront,0.22188,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:53.207743 +AWS,eu-central-1,c7a.4xlarge,spot,NA,0.354185,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093468 +AWS,eu-central-1,c7a.8xlarge,on_demand,NA,1.87408,USD,AWS Pricing API,2025-11-30T09:04:04.550907 +AWS,eu-central-1,c7a.8xlarge,reserved_1y,all_upfront,1.331279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:34.190246 +AWS,eu-central-1,c7a.8xlarge,reserved_1y,no_upfront,1.331279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:18.289813 +AWS,eu-central-1,c7a.8xlarge,reserved_1y,partial_upfront,1.331279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:59.321380 +AWS,eu-central-1,c7a.8xlarge,reserved_3y,all_upfront,0.44376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:31.479276 +AWS,eu-central-1,c7a.8xlarge,reserved_3y,no_upfront,0.44376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:23.682872 +AWS,eu-central-1,c7a.8xlarge,reserved_3y,partial_upfront,0.44376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:09.759250 +AWS,eu-central-1,c7a.8xlarge,spot,NA,0.731935,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092096 +AWS,eu-central-1,c7a.xlarge,on_demand,NA,0.23426,USD,AWS Pricing API,2025-11-30T09:04:39.712533 +AWS,eu-central-1,c7a.xlarge,reserved_1y,all_upfront,0.10626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:09.090776 +AWS,eu-central-1,c7a.xlarge,reserved_1y,no_upfront,0.10626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:53.680619 +AWS,eu-central-1,c7a.xlarge,reserved_1y,partial_upfront,0.10626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:34.123894 +AWS,eu-central-1,c7a.xlarge,reserved_3y,all_upfront,0.10626,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:05.840246 +AWS,eu-central-1,c7a.xlarge,reserved_3y,no_upfront,0.10626,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:59.164314 +AWS,eu-central-1,c7a.xlarge,reserved_3y,partial_upfront,0.10626,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:44.291008 +AWS,eu-central-1,c7a.xlarge,spot,NA,0.097004,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093234 +AWS,eu-central-1,c7g.12xlarge,on_demand,NA,1.9788,USD,AWS Pricing API,2025-11-30T09:04:43.843404 +AWS,eu-central-1,c7g.12xlarge,reserved_1y,all_upfront,1.217466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:13.135068 +AWS,eu-central-1,c7g.12xlarge,reserved_1y,no_upfront,1.217466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:57.812736 +AWS,eu-central-1,c7g.12xlarge,reserved_1y,partial_upfront,1.217466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:38.182288 +AWS,eu-central-1,c7g.12xlarge,reserved_3y,all_upfront,0.405822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:09.837144 +AWS,eu-central-1,c7g.12xlarge,reserved_3y,no_upfront,0.405822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:03.347623 +AWS,eu-central-1,c7g.12xlarge,reserved_3y,partial_upfront,0.405822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:48.365754 +AWS,eu-central-1,c7g.12xlarge,spot,NA,0.669752,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093350 +AWS,eu-central-1,c7g.16xlarge,on_demand,NA,2.6384,USD,AWS Pricing API,2025-11-30T09:04:53.587432 +AWS,eu-central-1,c7g.16xlarge,reserved_1y,all_upfront,1.7393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:22.822212 +AWS,eu-central-1,c7g.16xlarge,reserved_1y,no_upfront,1.7393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:07.598522 +AWS,eu-central-1,c7g.16xlarge,reserved_1y,partial_upfront,1.7393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:47.796440 +AWS,eu-central-1,c7g.16xlarge,reserved_3y,all_upfront,1.7393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:19.265520 +AWS,eu-central-1,c7g.16xlarge,reserved_3y,no_upfront,1.7393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:13.191444 +AWS,eu-central-1,c7g.16xlarge,reserved_3y,partial_upfront,1.7393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:57.884018 +AWS,eu-central-1,c7g.16xlarge,spot,NA,0.873518,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093621 +AWS,eu-central-1,c7g.2xlarge,on_demand,NA,0.3298,USD,AWS Pricing API,2025-11-30T09:05:12.474818 +AWS,eu-central-1,c7g.2xlarge,reserved_1y,all_upfront,0.251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:41.634119 +AWS,eu-central-1,c7g.2xlarge,reserved_1y,no_upfront,0.251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:26.507799 +AWS,eu-central-1,c7g.2xlarge,reserved_1y,partial_upfront,0.251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:06.474205 +AWS,eu-central-1,c7g.2xlarge,reserved_3y,all_upfront,0.251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:37.649645 +AWS,eu-central-1,c7g.2xlarge,reserved_3y,no_upfront,0.251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:32.245573 +AWS,eu-central-1,c7g.2xlarge,reserved_3y,partial_upfront,0.251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:16.490267 +AWS,eu-central-1,c7g.2xlarge,spot,NA,0.180419,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094227 +AWS,eu-central-1,c7g.4xlarge,on_demand,NA,0.6596,USD,AWS Pricing API,2025-11-30T09:04:28.823400 +AWS,eu-central-1,c7g.4xlarge,reserved_1y,all_upfront,0.3422,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:58.372587 +AWS,eu-central-1,c7g.4xlarge,reserved_1y,no_upfront,0.3422,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:42.685050 +AWS,eu-central-1,c7g.4xlarge,reserved_1y,partial_upfront,0.3422,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:23.472642 +AWS,eu-central-1,c7g.4xlarge,reserved_3y,all_upfront,0.3422,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:55.297596 +AWS,eu-central-1,c7g.4xlarge,reserved_3y,no_upfront,0.3422,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:48.285437 +AWS,eu-central-1,c7g.4xlarge,reserved_3y,partial_upfront,0.3422,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:33.673893 +AWS,eu-central-1,c7g.4xlarge,spot,NA,0.233626,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092881 +AWS,eu-central-1,c7g.8xlarge,on_demand,NA,1.3192,USD,AWS Pricing API,2025-11-30T09:04:39.986895 +AWS,eu-central-1,c7g.8xlarge,reserved_1y,all_upfront,0.956182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:09.362537 +AWS,eu-central-1,c7g.8xlarge,reserved_1y,no_upfront,0.956182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:53.958817 +AWS,eu-central-1,c7g.8xlarge,reserved_1y,partial_upfront,0.956182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:34.392027 +AWS,eu-central-1,c7g.8xlarge,reserved_3y,all_upfront,0.637461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:06.104710 +AWS,eu-central-1,c7g.8xlarge,reserved_3y,no_upfront,0.637461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:59.448101 +AWS,eu-central-1,c7g.8xlarge,reserved_3y,partial_upfront,0.637461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:44.560107 +AWS,eu-central-1,c7g.8xlarge,spot,NA,0.523716,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093254 +AWS,eu-central-1,c7g.xlarge,on_demand,NA,0.1649,USD,AWS Pricing API,2025-11-30T09:04:26.893018 +AWS,eu-central-1,c7g.xlarge,reserved_1y,all_upfront,0.138481,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:56.483400 +AWS,eu-central-1,c7g.xlarge,reserved_1y,no_upfront,0.138481,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:40.768243 +AWS,eu-central-1,c7g.xlarge,reserved_1y,partial_upfront,0.138481,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:21.586873 +AWS,eu-central-1,c7g.xlarge,reserved_3y,all_upfront,0.069227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:53.449686 +AWS,eu-central-1,c7g.xlarge,reserved_3y,no_upfront,0.069227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:46.349073 +AWS,eu-central-1,c7g.xlarge,reserved_3y,partial_upfront,0.069227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:31.796600 +AWS,eu-central-1,c7g.xlarge,spot,NA,0.088527,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092759 +AWS,eu-central-1,c7gd.12xlarge,on_demand,NA,2.5176,USD,AWS Pricing API,2025-11-30T09:04:37.920131 +AWS,eu-central-1,c7gd.12xlarge,reserved_1y,all_upfront,2.014116,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:07.334653 +AWS,eu-central-1,c7gd.12xlarge,reserved_1y,no_upfront,2.014116,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:51.870126 +AWS,eu-central-1,c7gd.12xlarge,reserved_1y,partial_upfront,2.014116,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:32.351939 +AWS,eu-central-1,c7gd.12xlarge,reserved_3y,all_upfront,1.007039,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:04.112568 +AWS,eu-central-1,c7gd.12xlarge,reserved_3y,no_upfront,1.007039,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:57.374028 +AWS,eu-central-1,c7gd.12xlarge,reserved_3y,partial_upfront,1.007039,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:42.545061 +AWS,eu-central-1,c7gd.12xlarge,spot,NA,0.822679,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093145 +AWS,eu-central-1,c7gd.16xlarge,on_demand,NA,3.3568,USD,AWS Pricing API,2025-11-30T09:04:23.780389 +AWS,eu-central-1,c7gd.16xlarge,reserved_1y,all_upfront,2.014078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:53.386979 +AWS,eu-central-1,c7gd.16xlarge,reserved_1y,no_upfront,2.014078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:37.617959 +AWS,eu-central-1,c7gd.16xlarge,reserved_1y,partial_upfront,2.014078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:18.474444 +AWS,eu-central-1,c7gd.16xlarge,reserved_3y,all_upfront,1.342693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:50.413911 +AWS,eu-central-1,c7gd.16xlarge,reserved_3y,no_upfront,1.342693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:43.156858 +AWS,eu-central-1,c7gd.16xlarge,reserved_3y,partial_upfront,1.342693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:28.715867 +AWS,eu-central-1,c7gd.16xlarge,spot,NA,0.909809,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092671 +AWS,eu-central-1,c7gd.2xlarge,on_demand,NA,0.4196,USD,AWS Pricing API,2025-11-30T09:04:53.450005 +AWS,eu-central-1,c7gd.2xlarge,reserved_1y,all_upfront,0.1813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:22.687279 +AWS,eu-central-1,c7gd.2xlarge,reserved_1y,no_upfront,0.1813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:07.451087 +AWS,eu-central-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.1813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:47.657919 +AWS,eu-central-1,c7gd.2xlarge,reserved_3y,all_upfront,0.1813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:19.131000 +AWS,eu-central-1,c7gd.2xlarge,reserved_3y,no_upfront,0.1813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:13.055062 +AWS,eu-central-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.1813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:57.750848 +AWS,eu-central-1,c7gd.2xlarge,spot,NA,0.163374,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093609 +AWS,eu-central-1,c7gd.4xlarge,on_demand,NA,0.8392,USD,AWS Pricing API,2025-11-30T09:04:40.689042 +AWS,eu-central-1,c7gd.4xlarge,reserved_1y,all_upfront,1.303082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:10.033502 +AWS,eu-central-1,c7gd.4xlarge,reserved_1y,no_upfront,1.303082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:54.638292 +AWS,eu-central-1,c7gd.4xlarge,reserved_1y,partial_upfront,1.303082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:35.065308 +AWS,eu-central-1,c7gd.4xlarge,reserved_3y,all_upfront,0.434361,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:06.778513 +AWS,eu-central-1,c7gd.4xlarge,reserved_3y,no_upfront,0.434361,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:00.155698 +AWS,eu-central-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.434361,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:45.240620 +AWS,eu-central-1,c7gd.4xlarge,spot,NA,0.358998,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093220 +AWS,eu-central-1,c7gd.8xlarge,on_demand,NA,1.6784,USD,AWS Pricing API,2025-11-30T09:04:32.099482 +AWS,eu-central-1,c7gd.8xlarge,reserved_1y,all_upfront,1.3352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:01.618767 +AWS,eu-central-1,c7gd.8xlarge,reserved_1y,no_upfront,1.3352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:46.040516 +AWS,eu-central-1,c7gd.8xlarge,reserved_1y,partial_upfront,1.3352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:26.683903 +AWS,eu-central-1,c7gd.8xlarge,reserved_3y,all_upfront,1.3352,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:58.491314 +AWS,eu-central-1,c7gd.8xlarge,reserved_3y,no_upfront,1.3352,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:51.589886 +AWS,eu-central-1,c7gd.8xlarge,reserved_3y,partial_upfront,1.3352,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:36.895028 +AWS,eu-central-1,c7gd.8xlarge,spot,NA,0.673296,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092984 +AWS,eu-central-1,c7gd.xlarge,on_demand,NA,0.2098,USD,AWS Pricing API,2025-11-30T09:05:11.794657 +AWS,eu-central-1,c7gd.xlarge,reserved_1y,all_upfront,0.123402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:40.959681 +AWS,eu-central-1,c7gd.xlarge,reserved_1y,no_upfront,0.123402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:25.823148 +AWS,eu-central-1,c7gd.xlarge,reserved_1y,partial_upfront,0.123402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:05.799951 +AWS,eu-central-1,c7gd.xlarge,reserved_3y,all_upfront,0.041134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:36.977826 +AWS,eu-central-1,c7gd.xlarge,reserved_3y,no_upfront,0.041134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:31.562528 +AWS,eu-central-1,c7gd.xlarge,reserved_3y,partial_upfront,0.041134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:15.804734 +AWS,eu-central-1,c7gd.xlarge,spot,NA,0.122167,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094194 +AWS,eu-central-1,c7i.12xlarge,on_demand,NA,2.4444,USD,AWS Pricing API,2025-11-30T09:04:32.371185 +AWS,eu-central-1,c7i.12xlarge,reserved_1y,all_upfront,1.503995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:01.907545 +AWS,eu-central-1,c7i.12xlarge,reserved_1y,no_upfront,1.503995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:46.315735 +AWS,eu-central-1,c7i.12xlarge,reserved_1y,partial_upfront,1.503995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:26.951561 +AWS,eu-central-1,c7i.12xlarge,reserved_3y,all_upfront,0.501332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:58.755623 +AWS,eu-central-1,c7i.12xlarge,reserved_3y,no_upfront,0.501332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:51.868441 +AWS,eu-central-1,c7i.12xlarge,reserved_3y,partial_upfront,0.501332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:37.174666 +AWS,eu-central-1,c7i.12xlarge,spot,NA,0.961932,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092979 +AWS,eu-central-1,c7i.16xlarge,on_demand,NA,3.2592,USD,AWS Pricing API,2025-11-30T09:05:10.015297 +AWS,eu-central-1,c7i.16xlarge,reserved_1y,all_upfront,1.47837,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:39.183059 +AWS,eu-central-1,c7i.16xlarge,reserved_1y,no_upfront,1.47837,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:24.045424 +AWS,eu-central-1,c7i.16xlarge,reserved_1y,partial_upfront,1.47837,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:04.026603 +AWS,eu-central-1,c7i.16xlarge,reserved_3y,all_upfront,1.47837,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:35.250280 +AWS,eu-central-1,c7i.16xlarge,reserved_3y,no_upfront,1.47837,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:29.755091 +AWS,eu-central-1,c7i.16xlarge,reserved_3y,partial_upfront,1.47837,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:14.064235 +AWS,eu-central-1,c7i.16xlarge,spot,NA,1.092342,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094122 +AWS,eu-central-1,c7i.24xlarge,on_demand,NA,4.8888,USD,AWS Pricing API,2025-11-30T09:04:43.428655 +AWS,eu-central-1,c7i.24xlarge,reserved_1y,all_upfront,3.543604,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:12.728099 +AWS,eu-central-1,c7i.24xlarge,reserved_1y,no_upfront,3.543604,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:57.399205 +AWS,eu-central-1,c7i.24xlarge,reserved_1y,partial_upfront,3.543604,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:37.766122 +AWS,eu-central-1,c7i.24xlarge,reserved_3y,all_upfront,2.362401,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:09.439193 +AWS,eu-central-1,c7i.24xlarge,reserved_3y,no_upfront,2.362401,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:02.927826 +AWS,eu-central-1,c7i.24xlarge,reserved_3y,partial_upfront,2.362401,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:47.951440 +AWS,eu-central-1,c7i.24xlarge,spot,NA,1.582487,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093297 +AWS,eu-central-1,c7i.2xlarge,on_demand,NA,0.4074,USD,AWS Pricing API,2025-11-30T09:04:58.248224 +AWS,eu-central-1,c7i.2xlarge,reserved_1y,all_upfront,0.31006,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:27.428334 +AWS,eu-central-1,c7i.2xlarge,reserved_1y,no_upfront,0.31006,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:12.276275 +AWS,eu-central-1,c7i.2xlarge,reserved_1y,partial_upfront,0.31006,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:52.423534 +AWS,eu-central-1,c7i.2xlarge,reserved_3y,all_upfront,0.31006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:23.787951 +AWS,eu-central-1,c7i.2xlarge,reserved_3y,no_upfront,0.31006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:17.919207 +AWS,eu-central-1,c7i.2xlarge,reserved_3y,partial_upfront,0.31006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:02.489659 +AWS,eu-central-1,c7i.2xlarge,spot,NA,0.215946,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093750 +AWS,eu-central-1,c7i.48xlarge,on_demand,NA,9.7776,USD,AWS Pricing API,2025-11-30T09:04:25.811239 +AWS,eu-central-1,c7i.48xlarge,reserved_1y,all_upfront,6.44571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:55.398961 +AWS,eu-central-1,c7i.48xlarge,reserved_1y,no_upfront,6.44571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:39.677520 +AWS,eu-central-1,c7i.48xlarge,reserved_1y,partial_upfront,6.44571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:20.500414 +AWS,eu-central-1,c7i.48xlarge,reserved_3y,all_upfront,6.44571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:52.392554 +AWS,eu-central-1,c7i.48xlarge,reserved_3y,no_upfront,6.44571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:45.222499 +AWS,eu-central-1,c7i.48xlarge,reserved_3y,partial_upfront,6.44571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:30.736582 +AWS,eu-central-1,c7i.48xlarge,spot,NA,2.821964,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092768 +AWS,eu-central-1,c7i.4xlarge,on_demand,NA,0.8148,USD,AWS Pricing API,2025-11-30T09:04:39.024203 +AWS,eu-central-1,c7i.4xlarge,reserved_1y,all_upfront,0.53714,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:08.414625 +AWS,eu-central-1,c7i.4xlarge,reserved_1y,no_upfront,0.53714,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:52.991856 +AWS,eu-central-1,c7i.4xlarge,reserved_1y,partial_upfront,0.53714,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:33.443117 +AWS,eu-central-1,c7i.4xlarge,reserved_3y,all_upfront,0.53714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:05.178827 +AWS,eu-central-1,c7i.4xlarge,reserved_3y,no_upfront,0.53714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:58.478915 +AWS,eu-central-1,c7i.4xlarge,reserved_3y,partial_upfront,0.53714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:43.625736 +AWS,eu-central-1,c7i.4xlarge,spot,NA,0.328462,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093188 +AWS,eu-central-1,c7i.8xlarge,on_demand,NA,1.6296,USD,AWS Pricing API,2025-11-30T09:04:10.700164 +AWS,eu-central-1,c7i.8xlarge,reserved_1y,all_upfront,2.301826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:40.304571 +AWS,eu-central-1,c7i.8xlarge,reserved_1y,no_upfront,2.301826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:24.470900 +AWS,eu-central-1,c7i.8xlarge,reserved_1y,partial_upfront,2.301826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:05.513655 +AWS,eu-central-1,c7i.8xlarge,reserved_3y,all_upfront,0.767275,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:37.583832 +AWS,eu-central-1,c7i.8xlarge,reserved_3y,no_upfront,0.767275,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:29.908282 +AWS,eu-central-1,c7i.8xlarge,reserved_3y,partial_upfront,0.767275,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:15.809183 +AWS,eu-central-1,c7i.8xlarge,spot,NA,0.650465,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092300 +AWS,eu-central-1,c7i.large,on_demand,NA,0.10185,USD,AWS Pricing API,2025-11-30T09:04:57.699143 +AWS,eu-central-1,c7i.large,reserved_1y,all_upfront,0.063933,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:26.887226 +AWS,eu-central-1,c7i.large,reserved_1y,no_upfront,0.063933,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:11.718317 +AWS,eu-central-1,c7i.large,reserved_1y,partial_upfront,0.063933,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:51.886570 +AWS,eu-central-1,c7i.large,reserved_3y,all_upfront,0.042624,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:23.259558 +AWS,eu-central-1,c7i.large,reserved_3y,no_upfront,0.042624,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:17.361600 +AWS,eu-central-1,c7i.large,reserved_3y,partial_upfront,0.042624,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:01.950956 +AWS,eu-central-1,c7i.large,spot,NA,0.031353,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093738 +AWS,eu-central-1,c7i.metal-24xl,on_demand,NA,4.8888,USD,AWS Pricing API,2025-11-30T09:04:26.623983 +AWS,eu-central-1,c7i.metal-24xl,reserved_1y,all_upfront,3.22285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:56.205052 +AWS,eu-central-1,c7i.metal-24xl,reserved_1y,no_upfront,3.22285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:40.491899 +AWS,eu-central-1,c7i.metal-24xl,reserved_1y,partial_upfront,3.22285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:21.314655 +AWS,eu-central-1,c7i.metal-24xl,reserved_3y,all_upfront,3.22285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:53.183931 +AWS,eu-central-1,c7i.metal-24xl,reserved_3y,no_upfront,3.22285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:46.066247 +AWS,eu-central-1,c7i.metal-24xl,reserved_3y,partial_upfront,3.22285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:31.531260 +AWS,eu-central-1,c7i.metal-24xl,spot,NA,1.398776,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092776 +AWS,eu-central-1,c7i.metal-48xl,on_demand,NA,9.7776,USD,AWS Pricing API,2025-11-30T09:04:14.787655 +AWS,eu-central-1,c7i.metal-48xl,reserved_1y,all_upfront,6.138786,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:44.438508 +AWS,eu-central-1,c7i.metal-48xl,reserved_1y,no_upfront,6.138786,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:28.565309 +AWS,eu-central-1,c7i.metal-48xl,reserved_1y,partial_upfront,6.138786,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:09.552751 +AWS,eu-central-1,c7i.metal-48xl,reserved_3y,all_upfront,4.092515,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:41.611200 +AWS,eu-central-1,c7i.metal-48xl,reserved_3y,no_upfront,4.092515,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:34.034591 +AWS,eu-central-1,c7i.metal-48xl,reserved_3y,partial_upfront,4.092515,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:19.850077 +AWS,eu-central-1,c7i.metal-48xl,spot,NA,2.309712,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092432 +AWS,eu-central-1,c7i.xlarge,on_demand,NA,0.2037,USD,AWS Pricing API,2025-11-30T09:05:09.061446 +AWS,eu-central-1,c7i.xlarge,reserved_1y,all_upfront,0.15503,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:38.235758 +AWS,eu-central-1,c7i.xlarge,reserved_1y,no_upfront,0.15503,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:23.087932 +AWS,eu-central-1,c7i.xlarge,reserved_1y,partial_upfront,0.15503,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:03.085527 +AWS,eu-central-1,c7i.xlarge,reserved_3y,all_upfront,0.15503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:34.312808 +AWS,eu-central-1,c7i.xlarge,reserved_3y,no_upfront,0.15503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:28.784635 +AWS,eu-central-1,c7i.xlarge,reserved_3y,partial_upfront,0.15503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:13.111516 +AWS,eu-central-1,c7i.xlarge,spot,NA,0.089964,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094102 +AWS,eu-central-1,c8g.12xlarge,on_demand,NA,2.1768,USD,AWS Pricing API,2025-11-30T09:05:06.616609 +AWS,eu-central-1,c8g.12xlarge,reserved_1y,all_upfront,1.339384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:35.790466 +AWS,eu-central-1,c8g.12xlarge,reserved_1y,no_upfront,1.339384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:20.606292 +AWS,eu-central-1,c8g.12xlarge,reserved_1y,partial_upfront,1.339384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:00.629489 +AWS,eu-central-1,c8g.12xlarge,reserved_3y,all_upfront,0.446461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:31.916467 +AWS,eu-central-1,c8g.12xlarge,reserved_3y,no_upfront,0.446461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:26.294659 +AWS,eu-central-1,c8g.12xlarge,reserved_3y,partial_upfront,0.446461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:10.695299 +AWS,eu-central-1,c8g.12xlarge,spot,NA,1.051179,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093966 +AWS,eu-central-1,c8g.16xlarge,on_demand,NA,2.9024,USD,AWS Pricing API,2025-11-30T09:04:09.613792 +AWS,eu-central-1,c8g.16xlarge,reserved_1y,all_upfront,2.438039,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:39.213309 +AWS,eu-central-1,c8g.16xlarge,reserved_1y,no_upfront,2.438039,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:23.375584 +AWS,eu-central-1,c8g.16xlarge,reserved_1y,partial_upfront,2.438039,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:04.432247 +AWS,eu-central-1,c8g.16xlarge,reserved_3y,all_upfront,1.219013,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:36.500129 +AWS,eu-central-1,c8g.16xlarge,reserved_3y,no_upfront,1.219013,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:28.807129 +AWS,eu-central-1,c8g.16xlarge,reserved_3y,partial_upfront,1.219013,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:14.724330 +AWS,eu-central-1,c8g.16xlarge,spot,NA,0.729514,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092264 +AWS,eu-central-1,c8g.24xlarge,on_demand,NA,4.3536,USD,AWS Pricing API,2025-11-30T09:04:56.469245 +AWS,eu-central-1,c8g.24xlarge,reserved_1y,all_upfront,3.657068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:25.663178 +AWS,eu-central-1,c8g.24xlarge,reserved_1y,no_upfront,3.657068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:10.484452 +AWS,eu-central-1,c8g.24xlarge,reserved_1y,partial_upfront,3.657068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:50.645319 +AWS,eu-central-1,c8g.24xlarge,reserved_3y,all_upfront,1.828529,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:22.067065 +AWS,eu-central-1,c8g.24xlarge,reserved_3y,no_upfront,1.828529,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:16.101530 +AWS,eu-central-1,c8g.24xlarge,reserved_3y,partial_upfront,1.828529,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:00.737922 +AWS,eu-central-1,c8g.24xlarge,spot,NA,0.864277,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093705 +AWS,eu-central-1,c8g.2xlarge,on_demand,NA,0.3628,USD,AWS Pricing API,2025-11-30T09:04:21.742020 +AWS,eu-central-1,c8g.2xlarge,reserved_1y,all_upfront,0.304729,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:51.349393 +AWS,eu-central-1,c8g.2xlarge,reserved_1y,no_upfront,0.304729,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:35.560682 +AWS,eu-central-1,c8g.2xlarge,reserved_1y,partial_upfront,0.304729,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:16.450173 +AWS,eu-central-1,c8g.2xlarge,reserved_3y,all_upfront,0.15237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:48.403003 +AWS,eu-central-1,c8g.2xlarge,reserved_3y,no_upfront,0.15237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:41.075582 +AWS,eu-central-1,c8g.2xlarge,reserved_3y,partial_upfront,0.15237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:26.693694 +AWS,eu-central-1,c8g.2xlarge,spot,NA,0.185208,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092640 +AWS,eu-central-1,c8g.48xlarge,on_demand,NA,8.7072,USD,AWS Pricing API,2025-11-30T09:05:15.477661 +AWS,eu-central-1,c8g.48xlarge,reserved_1y,all_upfront,5.357306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:44.613852 +AWS,eu-central-1,c8g.48xlarge,reserved_1y,no_upfront,5.357306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:29.513218 +AWS,eu-central-1,c8g.48xlarge,reserved_1y,partial_upfront,5.357306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:09.443722 +AWS,eu-central-1,c8g.48xlarge,reserved_3y,all_upfront,1.785769,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:40.590672 +AWS,eu-central-1,c8g.48xlarge,reserved_3y,no_upfront,1.785769,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:35.271279 +AWS,eu-central-1,c8g.48xlarge,reserved_3y,partial_upfront,1.785769,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:19.446777 +AWS,eu-central-1,c8g.48xlarge,spot,NA,2.47458,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094326 +AWS,eu-central-1,c8g.4xlarge,on_demand,NA,0.7256,USD,AWS Pricing API,2025-11-30T09:04:24.184812 +AWS,eu-central-1,c8g.4xlarge,reserved_1y,all_upfront,0.37647,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:53.790226 +AWS,eu-central-1,c8g.4xlarge,reserved_1y,no_upfront,0.37647,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:38.031189 +AWS,eu-central-1,c8g.4xlarge,reserved_1y,partial_upfront,0.37647,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:18.884327 +AWS,eu-central-1,c8g.4xlarge,reserved_3y,all_upfront,0.37647,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:50.814952 +AWS,eu-central-1,c8g.4xlarge,reserved_3y,no_upfront,0.37647,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:43.573500 +AWS,eu-central-1,c8g.4xlarge,reserved_3y,partial_upfront,0.37647,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:29.117502 +AWS,eu-central-1,c8g.4xlarge,spot,NA,0.298743,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092679 +AWS,eu-central-1,c8g.8xlarge,on_demand,NA,1.4512,USD,AWS Pricing API,2025-11-30T09:04:27.717062 +AWS,eu-central-1,c8g.8xlarge,reserved_1y,all_upfront,1.030822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:57.297699 +AWS,eu-central-1,c8g.8xlarge,reserved_1y,no_upfront,1.030822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:41.587354 +AWS,eu-central-1,c8g.8xlarge,reserved_1y,partial_upfront,1.030822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:22.392959 +AWS,eu-central-1,c8g.8xlarge,reserved_3y,all_upfront,0.343607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:54.239470 +AWS,eu-central-1,c8g.8xlarge,reserved_3y,no_upfront,0.343607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:47.176645 +AWS,eu-central-1,c8g.8xlarge,reserved_3y,partial_upfront,0.343607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:32.597709 +AWS,eu-central-1,c8g.8xlarge,spot,NA,0.921307,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092797 +AWS,eu-central-1,c8g.large,on_demand,NA,0.0907,USD,AWS Pricing API,2025-11-30T09:05:09.740607 +AWS,eu-central-1,c8g.large,reserved_1y,all_upfront,0.056895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:38.909017 +AWS,eu-central-1,c8g.large,reserved_1y,no_upfront,0.056895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:23.772082 +AWS,eu-central-1,c8g.large,reserved_1y,partial_upfront,0.056895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:03.757544 +AWS,eu-central-1,c8g.large,reserved_3y,all_upfront,0.037945,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:34.982440 +AWS,eu-central-1,c8g.large,reserved_3y,no_upfront,0.037945,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:29.475980 +AWS,eu-central-1,c8g.large,reserved_3y,partial_upfront,0.037945,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:13.789373 +AWS,eu-central-1,c8g.large,spot,NA,0.042773,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094158 +AWS,eu-central-1,c8g.medium,on_demand,NA,0.04535,USD,AWS Pricing API,2025-11-30T09:04:54.280424 +AWS,eu-central-1,c8g.medium,reserved_1y,all_upfront,0.038059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:23.503998 +AWS,eu-central-1,c8g.medium,reserved_1y,no_upfront,0.038059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:08.281572 +AWS,eu-central-1,c8g.medium,reserved_1y,partial_upfront,0.038059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:48.466911 +AWS,eu-central-1,c8g.medium,reserved_3y,all_upfront,0.019033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:19.927617 +AWS,eu-central-1,c8g.medium,reserved_3y,no_upfront,0.019033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:13.884030 +AWS,eu-central-1,c8g.medium,reserved_3y,partial_upfront,0.019033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:58.560748 +AWS,eu-central-1,c8g.medium,spot,NA,0.013965,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093637 +AWS,eu-central-1,c8g.xlarge,on_demand,NA,0.1814,USD,AWS Pricing API,2025-11-30T09:04:17.935146 +AWS,eu-central-1,c8g.xlarge,reserved_1y,all_upfront,0.152359,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:47.537017 +AWS,eu-central-1,c8g.xlarge,reserved_1y,no_upfront,0.152359,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:31.724397 +AWS,eu-central-1,c8g.xlarge,reserved_1y,partial_upfront,0.152359,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:12.661616 +AWS,eu-central-1,c8g.xlarge,reserved_3y,all_upfront,0.07618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:44.679611 +AWS,eu-central-1,c8g.xlarge,reserved_3y,no_upfront,0.07618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:37.202157 +AWS,eu-central-1,c8g.xlarge,reserved_3y,partial_upfront,0.07618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:22.940602 +AWS,eu-central-1,c8g.xlarge,spot,NA,0.088889,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092510 +AWS,eu-central-1,c8gd.12xlarge,on_demand,NA,2.7192,USD,AWS Pricing API,2025-11-30T09:04:51.944597 +AWS,eu-central-1,c8gd.12xlarge,spot,NA,0.88375,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093589 +AWS,eu-central-1,c8gd.16xlarge,on_demand,NA,3.6256,USD,AWS Pricing API,2025-11-30T09:05:16.290992 +AWS,eu-central-1,c8gd.16xlarge,spot,NA,1.021759,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094346 +AWS,eu-central-1,c8gd.24xlarge,on_demand,NA,5.4384,USD,AWS Pricing API,2025-11-30T09:05:02.618030 +AWS,eu-central-1,c8gd.24xlarge,spot,NA,1.245684,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093850 +AWS,eu-central-1,c8gd.2xlarge,on_demand,NA,0.4532,USD,AWS Pricing API,2025-11-30T09:04:46.599198 +AWS,eu-central-1,c8gd.2xlarge,spot,NA,0.210199,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093416 +AWS,eu-central-1,c8gd.48xlarge,on_demand,NA,10.8768,USD,AWS Pricing API,2025-11-30T09:04:34.189150 +AWS,eu-central-1,c8gd.48xlarge,spot,NA,2.077564,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093063 +AWS,eu-central-1,c8gd.4xlarge,on_demand,NA,0.9064,USD,AWS Pricing API,2025-11-30T09:04:19.428213 +AWS,eu-central-1,c8gd.4xlarge,spot,NA,0.410054,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092569 +AWS,eu-central-1,c8gd.8xlarge,on_demand,NA,1.8128,USD,AWS Pricing API,2025-11-30T09:04:42.186899 +AWS,eu-central-1,c8gd.8xlarge,spot,NA,0.803291,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093301 +AWS,eu-central-1,c8gd.large,on_demand,NA,0.1133,USD,AWS Pricing API,2025-11-30T09:05:08.109212 +AWS,eu-central-1,c8gd.large,spot,NA,0.058226,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094013 +AWS,eu-central-1,c8gd.xlarge,on_demand,NA,0.2266,USD,AWS Pricing API,2025-11-30T09:04:30.323337 +AWS,eu-central-1,c8gd.xlarge,spot,NA,0.151216,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092946 +AWS,eu-central-1,d3.2xlarge,on_demand,NA,1.316,USD,AWS Pricing API,2025-11-30T09:04:44.109760 +AWS,eu-central-1,d3.2xlarge,reserved_1y,all_upfront,1.484589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:13.405588 +AWS,eu-central-1,d3.2xlarge,reserved_1y,no_upfront,1.484589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:58.081699 +AWS,eu-central-1,d3.2xlarge,reserved_1y,partial_upfront,1.484589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:38.451726 +AWS,eu-central-1,d3.2xlarge,reserved_3y,all_upfront,0.494863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:10.100534 +AWS,eu-central-1,d3.2xlarge,reserved_3y,no_upfront,0.494863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:03.624547 +AWS,eu-central-1,d3.2xlarge,reserved_3y,partial_upfront,0.494863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:48.628974 +AWS,eu-central-1,d3.2xlarge,spot,NA,0.458125,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093337 +AWS,eu-central-1,d3.4xlarge,on_demand,NA,2.632,USD,AWS Pricing API,2025-11-30T09:05:11.385585 +AWS,eu-central-1,d3.4xlarge,reserved_1y,all_upfront,1.579726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:40.555475 +AWS,eu-central-1,d3.4xlarge,reserved_1y,no_upfront,1.579726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:25.416137 +AWS,eu-central-1,d3.4xlarge,reserved_1y,partial_upfront,1.579726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:05.393698 +AWS,eu-central-1,d3.4xlarge,reserved_3y,all_upfront,1.053242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:36.577733 +AWS,eu-central-1,d3.4xlarge,reserved_3y,no_upfront,1.053242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:31.147531 +AWS,eu-central-1,d3.4xlarge,reserved_3y,partial_upfront,1.053242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:15.402452 +AWS,eu-central-1,d3.4xlarge,spot,NA,0.983527,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094190 +AWS,eu-central-1,d3.8xlarge,on_demand,NA,5.26448,USD,AWS Pricing API,2025-11-30T09:04:14.243903 +AWS,eu-central-1,d3.8xlarge,reserved_1y,all_upfront,7.429224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:43.876530 +AWS,eu-central-1,d3.8xlarge,reserved_1y,no_upfront,7.429224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:28.021802 +AWS,eu-central-1,d3.8xlarge,reserved_1y,partial_upfront,7.429224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:09.017692 +AWS,eu-central-1,d3.8xlarge,reserved_3y,all_upfront,2.476408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:41.076227 +AWS,eu-central-1,d3.8xlarge,reserved_3y,no_upfront,2.476408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:33.487697 +AWS,eu-central-1,d3.8xlarge,reserved_3y,partial_upfront,2.476408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:19.311006 +AWS,eu-central-1,d3.8xlarge,spot,NA,1.496087,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092393 +AWS,eu-central-1,d3.xlarge,on_demand,NA,0.658,USD,AWS Pricing API,2025-11-30T09:04:11.651931 +AWS,eu-central-1,d3.xlarge,reserved_1y,all_upfront,0.415,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:41.257069 +AWS,eu-central-1,d3.xlarge,reserved_1y,no_upfront,0.415,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:25.425087 +AWS,eu-central-1,d3.xlarge,reserved_1y,partial_upfront,0.415,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:06.455775 +AWS,eu-central-1,d3.xlarge,reserved_3y,all_upfront,0.415,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:38.537310 +AWS,eu-central-1,d3.xlarge,reserved_3y,no_upfront,0.415,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:30.877748 +AWS,eu-central-1,d3.xlarge,reserved_3y,partial_upfront,0.415,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:16.761717 +AWS,eu-central-1,d3.xlarge,spot,NA,0.198581,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092333 +AWS,eu-central-1,d3en.12xlarge,on_demand,NA,8.31228,USD,AWS Pricing API,2025-11-30T09:05:03.988487 +AWS,eu-central-1,d3en.12xlarge,reserved_1y,all_upfront,7.979767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:33.198728 +AWS,eu-central-1,d3en.12xlarge,reserved_1y,no_upfront,7.979767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:18.015424 +AWS,eu-central-1,d3en.12xlarge,reserved_1y,partial_upfront,7.979767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:58.068562 +AWS,eu-central-1,d3en.12xlarge,reserved_3y,all_upfront,3.989889,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:29.380956 +AWS,eu-central-1,d3en.12xlarge,reserved_3y,no_upfront,3.989889,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:23.677076 +AWS,eu-central-1,d3en.12xlarge,reserved_3y,partial_upfront,3.989889,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:08.133417 +AWS,eu-central-1,d3en.12xlarge,spot,NA,2.196237,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093882 +AWS,eu-central-1,d3en.2xlarge,on_demand,NA,1.385,USD,AWS Pricing API,2025-11-30T09:04:42.885608 +AWS,eu-central-1,d3en.2xlarge,reserved_1y,all_upfront,1.047,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:12.193712 +AWS,eu-central-1,d3en.2xlarge,reserved_1y,no_upfront,1.047,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:56.842391 +AWS,eu-central-1,d3en.2xlarge,reserved_1y,partial_upfront,1.047,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:37.231208 +AWS,eu-central-1,d3en.2xlarge,reserved_3y,all_upfront,1.047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:08.907981 +AWS,eu-central-1,d3en.2xlarge,reserved_3y,no_upfront,1.047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:02.371351 +AWS,eu-central-1,d3en.2xlarge,reserved_3y,partial_upfront,1.047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:47.417891 +AWS,eu-central-1,d3en.2xlarge,spot,NA,0.498624,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093314 +AWS,eu-central-1,d3en.4xlarge,on_demand,NA,2.771,USD,AWS Pricing API,2025-11-30T09:04:50.454576 +AWS,eu-central-1,d3en.4xlarge,reserved_1y,all_upfront,2.659977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:19.681764 +AWS,eu-central-1,d3en.4xlarge,reserved_1y,no_upfront,2.659977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:04.438739 +AWS,eu-central-1,d3en.4xlarge,reserved_1y,partial_upfront,2.659977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:44.673892 +AWS,eu-central-1,d3en.4xlarge,reserved_3y,all_upfront,1.329992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:16.218283 +AWS,eu-central-1,d3en.4xlarge,reserved_3y,no_upfront,1.329992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:10.038218 +AWS,eu-central-1,d3en.4xlarge,reserved_3y,partial_upfront,1.329992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:54.813252 +AWS,eu-central-1,d3en.4xlarge,spot,NA,0.971059,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093554 +AWS,eu-central-1,d3en.6xlarge,on_demand,NA,4.156,USD,AWS Pricing API,2025-11-30T09:05:16.702421 +AWS,eu-central-1,d3en.6xlarge,reserved_1y,all_upfront,3.989466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:45.827940 +AWS,eu-central-1,d3en.6xlarge,reserved_1y,no_upfront,3.989466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:30.735256 +AWS,eu-central-1,d3en.6xlarge,reserved_1y,partial_upfront,3.989466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:10.657691 +AWS,eu-central-1,d3en.6xlarge,reserved_3y,all_upfront,1.994489,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:41.778996 +AWS,eu-central-1,d3en.6xlarge,reserved_3y,no_upfront,1.994489,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:36.536399 +AWS,eu-central-1,d3en.6xlarge,reserved_3y,partial_upfront,1.994489,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:20.660331 +AWS,eu-central-1,d3en.6xlarge,spot,NA,1.241247,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094354 +AWS,eu-central-1,d3en.8xlarge,on_demand,NA,5.54152,USD,AWS Pricing API,2025-11-30T09:05:12.068057 +AWS,eu-central-1,d3en.8xlarge,reserved_1y,all_upfront,5.3198,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:41.229873 +AWS,eu-central-1,d3en.8xlarge,reserved_1y,no_upfront,5.3198,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:26.096416 +AWS,eu-central-1,d3en.8xlarge,reserved_1y,partial_upfront,5.3198,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:06.068149 +AWS,eu-central-1,d3en.8xlarge,reserved_3y,all_upfront,2.659907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:37.245551 +AWS,eu-central-1,d3en.8xlarge,reserved_3y,no_upfront,2.659907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:31.834472 +AWS,eu-central-1,d3en.8xlarge,reserved_3y,partial_upfront,2.659907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:16.084098 +AWS,eu-central-1,d3en.8xlarge,spot,NA,1.539366,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094202 +AWS,eu-central-1,d3en.xlarge,on_demand,NA,0.693,USD,AWS Pricing API,2025-11-30T09:04:27.029073 +AWS,eu-central-1,d3en.xlarge,reserved_1y,all_upfront,0.498315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:56.616901 +AWS,eu-central-1,d3en.xlarge,reserved_1y,no_upfront,0.498315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:40.902348 +AWS,eu-central-1,d3en.xlarge,reserved_1y,partial_upfront,0.498315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:21.722821 +AWS,eu-central-1,d3en.xlarge,reserved_3y,all_upfront,0.332105,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:53.581754 +AWS,eu-central-1,d3en.xlarge,reserved_3y,no_upfront,0.332105,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:46.485845 +AWS,eu-central-1,d3en.xlarge,reserved_3y,partial_upfront,0.332105,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:31.929372 +AWS,eu-central-1,d3en.xlarge,spot,NA,0.216048,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092834 +AWS,eu-central-1,g4dn.12xlarge,on_demand,NA,4.89,USD,AWS Pricing API,2025-11-30T09:04:14.650754 +AWS,eu-central-1,g4dn.12xlarge,reserved_1y,all_upfront,3.114954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:44.295043 +AWS,eu-central-1,g4dn.12xlarge,reserved_1y,no_upfront,3.114954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:28.428612 +AWS,eu-central-1,g4dn.12xlarge,reserved_1y,partial_upfront,3.114954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:09.419313 +AWS,eu-central-1,g4dn.12xlarge,reserved_3y,all_upfront,1.038318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:41.475230 +AWS,eu-central-1,g4dn.12xlarge,reserved_3y,no_upfront,1.038318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:33.897711 +AWS,eu-central-1,g4dn.12xlarge,reserved_3y,partial_upfront,1.038318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:19.716072 +AWS,eu-central-1,g4dn.12xlarge,spot,NA,1.711066,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092380 +AWS,eu-central-1,g4dn.16xlarge,on_demand,NA,5.44,USD,AWS Pricing API,2025-11-30T09:04:20.918504 +AWS,eu-central-1,g4dn.16xlarge,reserved_1y,all_upfront,4.27,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:50.520276 +AWS,eu-central-1,g4dn.16xlarge,reserved_1y,no_upfront,4.27,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:34.729974 +AWS,eu-central-1,g4dn.16xlarge,reserved_1y,partial_upfront,4.27,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:15.633692 +AWS,eu-central-1,g4dn.16xlarge,reserved_3y,all_upfront,4.27,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:47.604034 +AWS,eu-central-1,g4dn.16xlarge,reserved_3y,no_upfront,4.27,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:40.244157 +AWS,eu-central-1,g4dn.16xlarge,reserved_3y,partial_upfront,4.27,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:25.889348 +AWS,eu-central-1,g4dn.16xlarge,spot,NA,1.639838,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092586 +AWS,eu-central-1,g4dn.2xlarge,on_demand,NA,0.94,USD,AWS Pricing API,2025-11-30T09:04:55.241752 +AWS,eu-central-1,g4dn.2xlarge,reserved_1y,all_upfront,1.492352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:24.445749 +AWS,eu-central-1,g4dn.2xlarge,reserved_1y,no_upfront,1.492352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:09.239206 +AWS,eu-central-1,g4dn.2xlarge,reserved_1y,partial_upfront,1.492352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:49.418174 +AWS,eu-central-1,g4dn.2xlarge,reserved_3y,all_upfront,0.497451,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:20.869409 +AWS,eu-central-1,g4dn.2xlarge,reserved_3y,no_upfront,0.497451,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:14.853927 +AWS,eu-central-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.497451,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:59.504163 +AWS,eu-central-1,g4dn.2xlarge,spot,NA,0.300616,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093640 +AWS,eu-central-1,g4dn.4xlarge,on_demand,NA,1.505,USD,AWS Pricing API,2025-11-30T09:04:35.566523 +AWS,eu-central-1,g4dn.4xlarge,reserved_1y,all_upfront,1.124443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:05.031075 +AWS,eu-central-1,g4dn.4xlarge,reserved_1y,no_upfront,1.124443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:49.500623 +AWS,eu-central-1,g4dn.4xlarge,reserved_1y,partial_upfront,1.124443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:30.052501 +AWS,eu-central-1,g4dn.4xlarge,reserved_3y,all_upfront,0.749481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:01.810972 +AWS,eu-central-1,g4dn.4xlarge,reserved_3y,no_upfront,0.749481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:55.036115 +AWS,eu-central-1,g4dn.4xlarge,reserved_3y,partial_upfront,0.749481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:40.269275 +AWS,eu-central-1,g4dn.4xlarge,spot,NA,0.605605,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093105 +AWS,eu-central-1,g4dn.8xlarge,on_demand,NA,2.72,USD,AWS Pricing API,2025-11-30T09:04:38.338330 +AWS,eu-central-1,g4dn.8xlarge,reserved_1y,all_upfront,1.732648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:07.740321 +AWS,eu-central-1,g4dn.8xlarge,reserved_1y,no_upfront,1.732648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:52.284500 +AWS,eu-central-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.732648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:32.765120 +AWS,eu-central-1,g4dn.8xlarge,reserved_3y,all_upfront,0.577549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:04.511571 +AWS,eu-central-1,g4dn.8xlarge,reserved_3y,no_upfront,0.577549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:57.789121 +AWS,eu-central-1,g4dn.8xlarge,reserved_3y,partial_upfront,0.577549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:42.949497 +AWS,eu-central-1,g4dn.8xlarge,spot,NA,1.220644,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093164 +AWS,eu-central-1,g4dn.xlarge,on_demand,NA,0.658,USD,AWS Pricing API,2025-11-30T09:05:01.907028 +AWS,eu-central-1,g4dn.xlarge,reserved_1y,all_upfront,0.418836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:31.154100 +AWS,eu-central-1,g4dn.xlarge,reserved_1y,no_upfront,0.418836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:15.961122 +AWS,eu-central-1,g4dn.xlarge,reserved_1y,partial_upfront,0.418836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:56.039725 +AWS,eu-central-1,g4dn.xlarge,reserved_3y,all_upfront,0.139612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:27.396085 +AWS,eu-central-1,g4dn.xlarge,reserved_3y,no_upfront,0.139612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:21.615212 +AWS,eu-central-1,g4dn.xlarge,reserved_3y,partial_upfront,0.139612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:06.126520 +AWS,eu-central-1,g4dn.xlarge,spot,NA,0.265754,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093837 +AWS,eu-central-1,g5.12xlarge,on_demand,NA,7.09282,USD,AWS Pricing API,2025-11-30T09:03:59.837574 +AWS,eu-central-1,g5.12xlarge,reserved_1y,all_upfront,4.255704,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:29.545853 +AWS,eu-central-1,g5.12xlarge,reserved_1y,no_upfront,4.255704,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:13.624722 +AWS,eu-central-1,g5.12xlarge,reserved_1y,partial_upfront,4.255704,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:54.729957 +AWS,eu-central-1,g5.12xlarge,reserved_3y,all_upfront,2.837135,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:26.960642 +AWS,eu-central-1,g5.12xlarge,reserved_3y,no_upfront,2.837135,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:18.959881 +AWS,eu-central-1,g5.12xlarge,reserved_3y,partial_upfront,2.837135,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:05.191231 +AWS,eu-central-1,g5.12xlarge,spot,NA,2.416626,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091959 +AWS,eu-central-1,g5.16xlarge,on_demand,NA,5.12204,USD,AWS Pricing API,2025-11-30T09:04:01.895718 +AWS,eu-central-1,g5.16xlarge,reserved_1y,all_upfront,3.764726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:31.596964 +AWS,eu-central-1,g5.16xlarge,reserved_1y,no_upfront,3.764726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:15.689170 +AWS,eu-central-1,g5.16xlarge,reserved_1y,partial_upfront,3.764726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:56.743072 +AWS,eu-central-1,g5.16xlarge,reserved_3y,all_upfront,1.254909,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:28.952781 +AWS,eu-central-1,g5.16xlarge,reserved_3y,no_upfront,1.254909,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:21.044916 +AWS,eu-central-1,g5.16xlarge,reserved_3y,partial_upfront,1.254909,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:07.201115 +AWS,eu-central-1,g5.16xlarge,spot,NA,1.480918,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092007 +AWS,eu-central-1,g5.24xlarge,on_demand,NA,10.18405,USD,AWS Pricing API,2025-11-30T09:04:00.792038 +AWS,eu-central-1,g5.24xlarge,reserved_1y,all_upfront,8.01994,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:30.503682 +AWS,eu-central-1,g5.24xlarge,reserved_1y,no_upfront,8.01994,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:14.592911 +AWS,eu-central-1,g5.24xlarge,reserved_1y,partial_upfront,8.01994,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:55.667089 +AWS,eu-central-1,g5.24xlarge,reserved_3y,all_upfront,8.01994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:27.890429 +AWS,eu-central-1,g5.24xlarge,reserved_3y,no_upfront,8.01994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:19.943870 +AWS,eu-central-1,g5.24xlarge,reserved_3y,partial_upfront,8.01994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:06.132168 +AWS,eu-central-1,g5.24xlarge,spot,NA,3.939906,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091969 +AWS,eu-central-1,g5.2xlarge,on_demand,NA,1.5156,USD,AWS Pricing API,2025-11-30T09:04:18.074654 +AWS,eu-central-1,g5.2xlarge,reserved_1y,all_upfront,0.90936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:47.672209 +AWS,eu-central-1,g5.2xlarge,reserved_1y,no_upfront,0.90936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:31.860128 +AWS,eu-central-1,g5.2xlarge,reserved_1y,partial_upfront,0.90936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:12.795360 +AWS,eu-central-1,g5.2xlarge,reserved_3y,all_upfront,0.60624,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:44.813497 +AWS,eu-central-1,g5.2xlarge,reserved_3y,no_upfront,0.60624,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:37.340591 +AWS,eu-central-1,g5.2xlarge,reserved_3y,partial_upfront,0.60624,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:23.072951 +AWS,eu-central-1,g5.2xlarge,spot,NA,0.746197,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092506 +AWS,eu-central-1,g5.48xlarge,on_demand,NA,20.3681,USD,AWS Pricing API,2025-11-30T09:04:02.606383 +AWS,eu-central-1,g5.48xlarge,reserved_1y,all_upfront,12.8319,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:32.286743 +AWS,eu-central-1,g5.48xlarge,reserved_1y,no_upfront,12.8319,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:16.372726 +AWS,eu-central-1,g5.48xlarge,reserved_1y,partial_upfront,12.8319,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:57.418741 +AWS,eu-central-1,g5.48xlarge,reserved_3y,all_upfront,12.8319,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:29.622720 +AWS,eu-central-1,g5.48xlarge,reserved_3y,no_upfront,12.8319,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:21.742864 +AWS,eu-central-1,g5.48xlarge,reserved_3y,partial_upfront,12.8319,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:07.880467 +AWS,eu-central-1,g5.48xlarge,spot,NA,8.359654,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092025 +AWS,eu-central-1,g5.4xlarge,on_demand,NA,2.03081,USD,AWS Pricing API,2025-11-30T09:04:12.195568 +AWS,eu-central-1,g5.4xlarge,reserved_1y,all_upfront,1.52308,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:41.797979 +AWS,eu-central-1,g5.4xlarge,reserved_1y,no_upfront,1.52308,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:25.972854 +AWS,eu-central-1,g5.4xlarge,reserved_1y,partial_upfront,1.52308,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:07.006885 +AWS,eu-central-1,g5.4xlarge,reserved_3y,all_upfront,1.015393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:39.071225 +AWS,eu-central-1,g5.4xlarge,reserved_3y,no_upfront,1.015393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:31.429119 +AWS,eu-central-1,g5.4xlarge,reserved_3y,partial_upfront,1.015393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:17.297108 +AWS,eu-central-1,g5.4xlarge,spot,NA,0.778096,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092367 +AWS,eu-central-1,g5.8xlarge,on_demand,NA,3.06122,USD,AWS Pricing API,2025-11-30T09:04:19.976895 +AWS,eu-central-1,g5.8xlarge,reserved_1y,all_upfront,1.8,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:49.576082 +AWS,eu-central-1,g5.8xlarge,reserved_1y,no_upfront,1.8,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:33.771484 +AWS,eu-central-1,g5.8xlarge,reserved_1y,partial_upfront,1.8,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:14.694211 +AWS,eu-central-1,g5.8xlarge,reserved_3y,all_upfront,0.6,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:46.671712 +AWS,eu-central-1,g5.8xlarge,reserved_3y,no_upfront,0.6,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:39.279450 +AWS,eu-central-1,g5.8xlarge,reserved_3y,partial_upfront,0.6,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:24.939174 +AWS,eu-central-1,g5.8xlarge,spot,NA,0.973806,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092536 +AWS,eu-central-1,g5.xlarge,on_demand,NA,1.258,USD,AWS Pricing API,2025-11-30T09:05:07.568857 +AWS,eu-central-1,g5.xlarge,reserved_1y,all_upfront,0.79254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:36.746283 +AWS,eu-central-1,g5.xlarge,reserved_1y,no_upfront,0.79254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:21.573570 +AWS,eu-central-1,g5.xlarge,reserved_1y,partial_upfront,0.79254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:01.599387 +AWS,eu-central-1,g5.xlarge,reserved_3y,all_upfront,0.79254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:32.847925 +AWS,eu-central-1,g5.xlarge,reserved_3y,no_upfront,0.79254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:27.261505 +AWS,eu-central-1,g5.xlarge,reserved_3y,partial_upfront,0.79254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:11.630575 +AWS,eu-central-1,g5.xlarge,spot,NA,0.607803,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094037 +AWS,eu-central-1,g6.12xlarge,on_demand,NA,5.75429,USD,AWS Pricing API,2025-11-30T09:04:03.304311 +AWS,eu-central-1,g6.12xlarge,reserved_1y,all_upfront,3.496347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:32.967800 +AWS,eu-central-1,g6.12xlarge,reserved_1y,no_upfront,3.496347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:17.060384 +AWS,eu-central-1,g6.12xlarge,reserved_1y,partial_upfront,3.496347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:58.107770 +AWS,eu-central-1,g6.12xlarge,reserved_3y,all_upfront,1.165449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:30.282592 +AWS,eu-central-1,g6.12xlarge,reserved_3y,no_upfront,1.165449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:22.430422 +AWS,eu-central-1,g6.12xlarge,reserved_3y,partial_upfront,1.165449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:08.547435 +AWS,eu-central-1,g6.12xlarge,spot,NA,2.385283,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092050 +AWS,eu-central-1,g6.16xlarge,on_demand,NA,4.24769,USD,AWS Pricing API,2025-11-30T09:04:00.521492 +AWS,eu-central-1,g6.16xlarge,reserved_1y,all_upfront,3.610507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:30.228110 +AWS,eu-central-1,g6.16xlarge,reserved_1y,no_upfront,3.610507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:14.316279 +AWS,eu-central-1,g6.16xlarge,reserved_1y,partial_upfront,3.610507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:55.400805 +AWS,eu-central-1,g6.16xlarge,reserved_3y,all_upfront,1.805256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:27.624594 +AWS,eu-central-1,g6.16xlarge,reserved_3y,no_upfront,1.805256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:19.662149 +AWS,eu-central-1,g6.16xlarge,reserved_3y,partial_upfront,1.805256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:05.860124 +AWS,eu-central-1,g6.16xlarge,spot,NA,1.368036,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091964 +AWS,eu-central-1,g6.24xlarge,on_demand,NA,8.34732,USD,AWS Pricing API,2025-11-30T09:04:00.654343 +AWS,eu-central-1,g6.24xlarge,reserved_1y,all_upfront,5.175341,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:30.361319 +AWS,eu-central-1,g6.24xlarge,reserved_1y,no_upfront,5.175341,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:14.454512 +AWS,eu-central-1,g6.24xlarge,reserved_1y,partial_upfront,5.175341,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:55.534995 +AWS,eu-central-1,g6.24xlarge,reserved_3y,all_upfront,3.450227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:27.757557 +AWS,eu-central-1,g6.24xlarge,reserved_3y,no_upfront,3.450227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:19.799060 +AWS,eu-central-1,g6.24xlarge,reserved_3y,partial_upfront,3.450227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:05.995822 +AWS,eu-central-1,g6.24xlarge,spot,NA,2.633487,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091941 +AWS,eu-central-1,g6.2xlarge,on_demand,NA,1.22249,USD,AWS Pricing API,2025-11-30T09:04:02.334830 +AWS,eu-central-1,g6.2xlarge,reserved_1y,all_upfront,0.742808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:32.015910 +AWS,eu-central-1,g6.2xlarge,reserved_1y,no_upfront,0.742808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:16.094940 +AWS,eu-central-1,g6.2xlarge,reserved_1y,partial_upfront,0.742808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:57.148625 +AWS,eu-central-1,g6.2xlarge,reserved_3y,all_upfront,0.247603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:29.348119 +AWS,eu-central-1,g6.2xlarge,reserved_3y,no_upfront,0.247603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:21.465696 +AWS,eu-central-1,g6.2xlarge,reserved_3y,partial_upfront,0.247603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:07.602380 +AWS,eu-central-1,g6.2xlarge,spot,NA,0.435224,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091988 +AWS,eu-central-1,g6.48xlarge,on_demand,NA,16.69464,USD,AWS Pricing API,2025-11-30T09:04:00.112307 +AWS,eu-central-1,g6.48xlarge,reserved_1y,all_upfront,10.350682,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:29.819091 +AWS,eu-central-1,g6.48xlarge,reserved_1y,no_upfront,10.350682,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:13.907522 +AWS,eu-central-1,g6.48xlarge,reserved_1y,partial_upfront,10.350682,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:54.994785 +AWS,eu-central-1,g6.48xlarge,reserved_3y,all_upfront,6.900454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:27.228381 +AWS,eu-central-1,g6.48xlarge,reserved_3y,no_upfront,6.900454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:19.250634 +AWS,eu-central-1,g6.48xlarge,reserved_3y,partial_upfront,6.900454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:05.459846 +AWS,eu-central-1,g6.48xlarge,spot,NA,4.76189,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091936 +AWS,eu-central-1,g6.4xlarge,on_demand,NA,1.65466,USD,AWS Pricing API,2025-11-30T09:04:00.927711 +AWS,eu-central-1,g6.4xlarge,reserved_1y,all_upfront,1.005365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:30.640052 +AWS,eu-central-1,g6.4xlarge,reserved_1y,no_upfront,1.005365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:14.730571 +AWS,eu-central-1,g6.4xlarge,reserved_1y,partial_upfront,1.005365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:55.802313 +AWS,eu-central-1,g6.4xlarge,reserved_3y,all_upfront,0.335122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:28.022171 +AWS,eu-central-1,g6.4xlarge,reserved_3y,no_upfront,0.335122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:20.080214 +AWS,eu-central-1,g6.4xlarge,reserved_3y,partial_upfront,0.335122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:06.264453 +AWS,eu-central-1,g6.4xlarge,spot,NA,0.654808,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091945 +AWS,eu-central-1,g6.8xlarge,on_demand,NA,2.519,USD,AWS Pricing API,2025-11-30T09:04:01.754987 +AWS,eu-central-1,g6.8xlarge,reserved_1y,all_upfront,3.934361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:31.463119 +AWS,eu-central-1,g6.8xlarge,reserved_1y,no_upfront,3.934361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:15.551427 +AWS,eu-central-1,g6.8xlarge,reserved_1y,partial_upfront,3.934361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:56.609827 +AWS,eu-central-1,g6.8xlarge,reserved_3y,all_upfront,1.311454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:28.821606 +AWS,eu-central-1,g6.8xlarge,reserved_3y,no_upfront,1.311454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:20.907969 +AWS,eu-central-1,g6.8xlarge,reserved_3y,partial_upfront,1.311454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:07.068595 +AWS,eu-central-1,g6.8xlarge,spot,NA,0.857302,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091979 +AWS,eu-central-1,g6.xlarge,on_demand,NA,1.0064,USD,AWS Pricing API,2025-11-30T09:04:00.248340 +AWS,eu-central-1,g6.xlarge,reserved_1y,all_upfront,0.81896,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:29.955241 +AWS,eu-central-1,g6.xlarge,reserved_1y,no_upfront,0.81896,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:14.044075 +AWS,eu-central-1,g6.xlarge,reserved_1y,partial_upfront,0.81896,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:55.129669 +AWS,eu-central-1,g6.xlarge,reserved_3y,all_upfront,0.81896,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:27.359908 +AWS,eu-central-1,g6.xlarge,reserved_3y,no_upfront,0.81896,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:19.386372 +AWS,eu-central-1,g6.xlarge,reserved_3y,partial_upfront,0.81896,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:05.592958 +AWS,eu-central-1,g6.xlarge,spot,NA,0.401694,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091955 +AWS,eu-central-1,g6e.12xlarge,on_demand,NA,13.12002,USD,AWS Pricing API,2025-11-30T09:04:02.879917 +AWS,eu-central-1,g6e.12xlarge,reserved_1y,all_upfront,8.26562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:32.559591 +AWS,eu-central-1,g6e.12xlarge,reserved_1y,no_upfront,8.26562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:16.647663 +AWS,eu-central-1,g6e.12xlarge,reserved_1y,partial_upfront,8.26562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:57.689688 +AWS,eu-central-1,g6e.12xlarge,reserved_3y,all_upfront,8.26562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:29.885275 +AWS,eu-central-1,g6e.12xlarge,reserved_3y,no_upfront,8.26562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:22.019349 +AWS,eu-central-1,g6e.12xlarge,reserved_3y,partial_upfront,8.26562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:08.145831 +AWS,eu-central-1,g6e.12xlarge,spot,NA,4.236643,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092058 +AWS,eu-central-1,g6e.16xlarge,on_demand,NA,9.47454,USD,AWS Pricing API,2025-11-30T09:04:01.480230 +AWS,eu-central-1,g6e.16xlarge,reserved_1y,all_upfront,5.571005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:31.187022 +AWS,eu-central-1,g6e.16xlarge,reserved_1y,no_upfront,5.571005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:15.276709 +AWS,eu-central-1,g6e.16xlarge,reserved_1y,partial_upfront,5.571005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:56.342719 +AWS,eu-central-1,g6e.16xlarge,reserved_3y,all_upfront,1.857002,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:28.554402 +AWS,eu-central-1,g6e.16xlarge,reserved_3y,no_upfront,1.857002,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:20.628736 +AWS,eu-central-1,g6e.16xlarge,reserved_3y,partial_upfront,1.857002,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:06.799189 +AWS,eu-central-1,g6e.16xlarge,spot,NA,2.881005,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092012 +AWS,eu-central-1,g6e.24xlarge,on_demand,NA,18.83806,USD,AWS Pricing API,2025-11-30T09:04:01.342119 +AWS,eu-central-1,g6e.24xlarge,reserved_1y,all_upfront,14.24157,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:31.042186 +AWS,eu-central-1,g6e.24xlarge,reserved_1y,no_upfront,14.24157,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:15.137567 +AWS,eu-central-1,g6e.24xlarge,reserved_1y,partial_upfront,14.24157,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:56.201553 +AWS,eu-central-1,g6e.24xlarge,reserved_3y,all_upfront,14.24157,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:28.419059 +AWS,eu-central-1,g6e.24xlarge,reserved_3y,no_upfront,14.24157,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:20.492799 +AWS,eu-central-1,g6e.24xlarge,reserved_3y,partial_upfront,14.24157,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:06.667253 +AWS,eu-central-1,g6e.24xlarge,spot,NA,5.329333,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091993 +AWS,eu-central-1,g6e.2xlarge,on_demand,NA,2.8035,USD,AWS Pricing API,2025-11-30T09:04:01.064731 +AWS,eu-central-1,g6e.2xlarge,reserved_1y,all_upfront,1.682146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:30.772969 +AWS,eu-central-1,g6e.2xlarge,reserved_1y,no_upfront,1.682146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:14.866878 +AWS,eu-central-1,g6e.2xlarge,reserved_1y,partial_upfront,1.682146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:55.933993 +AWS,eu-central-1,g6e.2xlarge,reserved_3y,all_upfront,1.121415,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:28.155845 +AWS,eu-central-1,g6e.2xlarge,reserved_3y,no_upfront,1.121415,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:20.218462 +AWS,eu-central-1,g6e.2xlarge,reserved_3y,partial_upfront,1.121415,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:06.397309 +AWS,eu-central-1,g6e.2xlarge,spot,NA,1.122753,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092016 +AWS,eu-central-1,g6e.48xlarge,on_demand,NA,37.67612,USD,AWS Pricing API,2025-11-30T09:04:00.383741 +AWS,eu-central-1,g6e.48xlarge,reserved_1y,all_upfront,28.48315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:30.094183 +AWS,eu-central-1,g6e.48xlarge,reserved_1y,no_upfront,28.48315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:14.178897 +AWS,eu-central-1,g6e.48xlarge,reserved_1y,partial_upfront,28.48315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:55.267324 +AWS,eu-central-1,g6e.48xlarge,reserved_3y,all_upfront,28.48315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:27.490881 +AWS,eu-central-1,g6e.48xlarge,reserved_3y,no_upfront,28.48315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:19.522210 +AWS,eu-central-1,g6e.48xlarge,reserved_3y,partial_upfront,28.48315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:05.726777 +AWS,eu-central-1,g6e.48xlarge,spot,NA,11.19901,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091930 +AWS,eu-central-1,g6e.4xlarge,on_demand,NA,3.75651,USD,AWS Pricing API,2025-11-30T09:04:01.205011 +AWS,eu-central-1,g6e.4xlarge,reserved_1y,all_upfront,2.3666,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:30.905926 +AWS,eu-central-1,g6e.4xlarge,reserved_1y,no_upfront,2.3666,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:15.002329 +AWS,eu-central-1,g6e.4xlarge,reserved_1y,partial_upfront,2.3666,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:56.068678 +AWS,eu-central-1,g6e.4xlarge,reserved_3y,all_upfront,2.3666,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:28.288440 +AWS,eu-central-1,g6e.4xlarge,reserved_3y,no_upfront,2.3666,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:20.356299 +AWS,eu-central-1,g6e.4xlarge,reserved_3y,partial_upfront,2.3666,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:06.530763 +AWS,eu-central-1,g6e.4xlarge,spot,NA,1.222546,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091998 +AWS,eu-central-1,g6e.8xlarge,on_demand,NA,5.66252,USD,AWS Pricing API,2025-11-30T09:03:59.972155 +AWS,eu-central-1,g6e.8xlarge,reserved_1y,all_upfront,3.56739,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:29.681407 +AWS,eu-central-1,g6e.8xlarge,reserved_1y,no_upfront,3.56739,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:13.760766 +AWS,eu-central-1,g6e.8xlarge,reserved_1y,partial_upfront,3.56739,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:54.861595 +AWS,eu-central-1,g6e.8xlarge,reserved_3y,all_upfront,3.56739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:27.097858 +AWS,eu-central-1,g6e.8xlarge,reserved_3y,no_upfront,3.56739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:19.101041 +AWS,eu-central-1,g6e.8xlarge,reserved_3y,partial_upfront,3.56739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:05.326164 +AWS,eu-central-1,g6e.8xlarge,spot,NA,1.643532,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091914 +AWS,eu-central-1,g6e.xlarge,on_demand,NA,2.327,USD,AWS Pricing API,2025-11-30T09:04:02.743794 +AWS,eu-central-1,g6e.xlarge,reserved_1y,all_upfront,1.641895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:32.421426 +AWS,eu-central-1,g6e.xlarge,reserved_1y,no_upfront,1.641895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:16.509624 +AWS,eu-central-1,g6e.xlarge,reserved_1y,partial_upfront,1.641895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:57.556790 +AWS,eu-central-1,g6e.xlarge,reserved_3y,all_upfront,0.547298,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:29.752891 +AWS,eu-central-1,g6e.xlarge,reserved_3y,no_upfront,0.547298,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:21.881090 +AWS,eu-central-1,g6e.xlarge,reserved_3y,partial_upfront,0.547298,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:08.013739 +AWS,eu-central-1,g6e.xlarge,spot,NA,0.911125,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092037 +AWS,eu-central-1,gr6.4xlarge,on_demand,NA,1.9248,USD,AWS Pricing API,2025-11-30T09:04:01.618710 +AWS,eu-central-1,gr6.4xlarge,reserved_1y,all_upfront,1.25304,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:31.321429 +AWS,eu-central-1,gr6.4xlarge,reserved_1y,no_upfront,1.25304,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:15.414650 +AWS,eu-central-1,gr6.4xlarge,reserved_1y,partial_upfront,1.25304,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:56.478091 +AWS,eu-central-1,gr6.4xlarge,reserved_3y,all_upfront,1.25304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:28.686797 +AWS,eu-central-1,gr6.4xlarge,reserved_3y,no_upfront,1.25304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:20.767220 +AWS,eu-central-1,gr6.4xlarge,reserved_3y,partial_upfront,1.25304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:06.934137 +AWS,eu-central-1,gr6.4xlarge,spot,NA,0.594227,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092002 +AWS,eu-central-1,gr6.8xlarge,on_demand,NA,3.05927,USD,AWS Pricing API,2025-11-30T09:04:03.014748 +AWS,eu-central-1,gr6.8xlarge,reserved_1y,all_upfront,2.323516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:32.698784 +AWS,eu-central-1,gr6.8xlarge,reserved_1y,no_upfront,2.323516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:16.781404 +AWS,eu-central-1,gr6.8xlarge,reserved_1y,partial_upfront,2.323516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:57.837114 +AWS,eu-central-1,gr6.8xlarge,reserved_3y,all_upfront,0.774505,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:30.018396 +AWS,eu-central-1,gr6.8xlarge,reserved_3y,no_upfront,0.774505,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:22.157123 +AWS,eu-central-1,gr6.8xlarge,reserved_3y,partial_upfront,0.774505,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:08.278911 +AWS,eu-central-1,gr6.8xlarge,spot,NA,0.916913,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092046 +AWS,eu-central-1,i2.2xlarge,on_demand,NA,2.026,USD,AWS Pricing API,2025-11-30T09:04:49.494167 +AWS,eu-central-1,i2.2xlarge,reserved_1y,all_upfront,2.518721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:18.726638 +AWS,eu-central-1,i2.2xlarge,reserved_1y,no_upfront,2.518721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:03.478304 +AWS,eu-central-1,i2.2xlarge,reserved_1y,partial_upfront,2.518721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:43.737568 +AWS,eu-central-1,i2.2xlarge,reserved_3y,all_upfront,0.839574,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:15.293315 +AWS,eu-central-1,i2.2xlarge,reserved_3y,no_upfront,0.839574,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:09.054656 +AWS,eu-central-1,i2.2xlarge,reserved_3y,partial_upfront,0.839574,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:53.875629 +AWS,eu-central-1,i2.2xlarge,spot,NA,0.420818,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093489 +AWS,eu-central-1,i2.4xlarge,on_demand,NA,4.051,USD,AWS Pricing API,2025-11-30T09:04:45.350906 +AWS,eu-central-1,i2.4xlarge,reserved_1y,all_upfront,5.035046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:14.617111 +AWS,eu-central-1,i2.4xlarge,reserved_1y,no_upfront,5.035046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:59.333677 +AWS,eu-central-1,i2.4xlarge,reserved_1y,partial_upfront,5.035046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:39.675510 +AWS,eu-central-1,i2.4xlarge,reserved_3y,all_upfront,1.678349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:11.301877 +AWS,eu-central-1,i2.4xlarge,reserved_3y,no_upfront,1.678349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:04.875523 +AWS,eu-central-1,i2.4xlarge,reserved_3y,partial_upfront,1.678349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:49.841974 +AWS,eu-central-1,i2.4xlarge,spot,NA,0.983446,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093387 +AWS,eu-central-1,i2.8xlarge,on_demand,NA,8.102,USD,AWS Pricing API,2025-11-30T09:04:52.079196 +AWS,eu-central-1,i2.8xlarge,reserved_1y,all_upfront,4.003,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:21.311490 +AWS,eu-central-1,i2.8xlarge,reserved_1y,no_upfront,4.003,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:06.077423 +AWS,eu-central-1,i2.8xlarge,reserved_1y,partial_upfront,4.003,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:46.283405 +AWS,eu-central-1,i2.8xlarge,reserved_3y,all_upfront,4.003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:17.811320 +AWS,eu-central-1,i2.8xlarge,reserved_3y,no_upfront,4.003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:11.690109 +AWS,eu-central-1,i2.8xlarge,reserved_3y,partial_upfront,4.003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:56.416318 +AWS,eu-central-1,i2.8xlarge,spot,NA,1.541559,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093573 +AWS,eu-central-1,i2.xlarge,on_demand,NA,1.013,USD,AWS Pricing API,2025-11-30T09:04:52.624363 +AWS,eu-central-1,i2.xlarge,reserved_1y,all_upfront,0.475922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:21.860894 +AWS,eu-central-1,i2.xlarge,reserved_1y,no_upfront,0.475922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:06.628195 +AWS,eu-central-1,i2.xlarge,reserved_1y,partial_upfront,0.475922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:46.840147 +AWS,eu-central-1,i2.xlarge,reserved_3y,all_upfront,0.313974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:18.335451 +AWS,eu-central-1,i2.xlarge,reserved_3y,no_upfront,0.313974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:12.237438 +AWS,eu-central-1,i2.xlarge,reserved_3y,partial_upfront,0.313974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:56.947083 +AWS,eu-central-1,i2.xlarge,spot,NA,0.226438,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093585 +AWS,eu-central-1,i3.16xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T09:04:58.932268 +AWS,eu-central-1,i3.16xlarge,reserved_1y,all_upfront,3.338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:28.197079 +AWS,eu-central-1,i3.16xlarge,reserved_1y,no_upfront,3.338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:12.963486 +AWS,eu-central-1,i3.16xlarge,reserved_1y,partial_upfront,3.338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:53.098755 +AWS,eu-central-1,i3.16xlarge,reserved_3y,all_upfront,3.338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:24.458520 +AWS,eu-central-1,i3.16xlarge,reserved_3y,no_upfront,3.338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:18.609953 +AWS,eu-central-1,i3.16xlarge,reserved_3y,partial_upfront,3.338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:03.157798 +AWS,eu-central-1,i3.16xlarge,spot,NA,1.691157,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093792 +AWS,eu-central-1,i3.2xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T09:04:18.209961 +AWS,eu-central-1,i3.2xlarge,reserved_1y,all_upfront,0.58,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:47.806830 +AWS,eu-central-1,i3.2xlarge,reserved_1y,no_upfront,0.58,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:31.995956 +AWS,eu-central-1,i3.2xlarge,reserved_1y,partial_upfront,0.58,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:12.929718 +AWS,eu-central-1,i3.2xlarge,reserved_3y,all_upfront,0.58,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:44.945872 +AWS,eu-central-1,i3.2xlarge,reserved_3y,no_upfront,0.58,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:37.478725 +AWS,eu-central-1,i3.2xlarge,reserved_3y,partial_upfront,0.58,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:23.205999 +AWS,eu-central-1,i3.2xlarge,spot,NA,0.312848,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092514 +AWS,eu-central-1,i3.4xlarge,on_demand,NA,1.488,USD,AWS Pricing API,2025-11-30T09:04:19.702511 +AWS,eu-central-1,i3.4xlarge,reserved_1y,all_upfront,2.272032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:49.308104 +AWS,eu-central-1,i3.4xlarge,reserved_1y,no_upfront,2.272032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:33.500621 +AWS,eu-central-1,i3.4xlarge,reserved_1y,partial_upfront,2.272032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:14.429036 +AWS,eu-central-1,i3.4xlarge,reserved_3y,all_upfront,0.757344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:46.406506 +AWS,eu-central-1,i3.4xlarge,reserved_3y,no_upfront,0.757344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:38.997326 +AWS,eu-central-1,i3.4xlarge,reserved_3y,partial_upfront,0.757344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:24.674848 +AWS,eu-central-1,i3.4xlarge,spot,NA,0.597072,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092565 +AWS,eu-central-1,i3.8xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T09:04:13.828303 +AWS,eu-central-1,i3.8xlarge,reserved_1y,all_upfront,1.452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:43.469593 +AWS,eu-central-1,i3.8xlarge,reserved_1y,no_upfront,1.452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:27.616370 +AWS,eu-central-1,i3.8xlarge,reserved_1y,partial_upfront,1.452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:08.616474 +AWS,eu-central-1,i3.8xlarge,reserved_3y,all_upfront,1.452,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:40.669870 +AWS,eu-central-1,i3.8xlarge,reserved_3y,no_upfront,1.452,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:33.075696 +AWS,eu-central-1,i3.8xlarge,reserved_3y,partial_upfront,1.452,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:18.912671 +AWS,eu-central-1,i3.8xlarge,spot,NA,0.978708,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092397 +AWS,eu-central-1,i3.large,on_demand,NA,0.186,USD,AWS Pricing API,2025-11-30T09:04:18.887799 +AWS,eu-central-1,i3.large,reserved_1y,all_upfront,0.192863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:48.487246 +AWS,eu-central-1,i3.large,reserved_1y,no_upfront,0.192863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:32.686487 +AWS,eu-central-1,i3.large,reserved_1y,partial_upfront,0.192863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:13.620163 +AWS,eu-central-1,i3.large,reserved_3y,all_upfront,0.096288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:45.615367 +AWS,eu-central-1,i3.large,reserved_3y,no_upfront,0.096288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:38.175566 +AWS,eu-central-1,i3.large,reserved_3y,partial_upfront,0.096288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:23.879136 +AWS,eu-central-1,i3.large,spot,NA,0.056474,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092573 +AWS,eu-central-1,i3.xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T09:04:44.522660 +AWS,eu-central-1,i3.xlarge,reserved_1y,all_upfront,0.236986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:13.809787 +AWS,eu-central-1,i3.xlarge,reserved_1y,no_upfront,0.236986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:58.500352 +AWS,eu-central-1,i3.xlarge,reserved_1y,partial_upfront,0.236986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:38.868454 +AWS,eu-central-1,i3.xlarge,reserved_3y,all_upfront,0.078995,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:10.495257 +AWS,eu-central-1,i3.xlarge,reserved_3y,no_upfront,0.078995,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:04.037002 +AWS,eu-central-1,i3.xlarge,reserved_3y,partial_upfront,0.078995,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:49.032891 +AWS,eu-central-1,i3.xlarge,spot,NA,0.163638,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093329 +AWS,eu-central-1,i3en.12xlarge,on_demand,NA,6.48,USD,AWS Pricing API,2025-11-30T09:04:15.867417 +AWS,eu-central-1,i3en.12xlarge,reserved_1y,all_upfront,3.266,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:45.510043 +AWS,eu-central-1,i3en.12xlarge,reserved_1y,no_upfront,3.266,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:29.659918 +AWS,eu-central-1,i3en.12xlarge,reserved_1y,partial_upfront,3.266,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:10.633511 +AWS,eu-central-1,i3en.12xlarge,reserved_3y,all_upfront,3.266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:42.668787 +AWS,eu-central-1,i3en.12xlarge,reserved_3y,no_upfront,3.266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:35.134625 +AWS,eu-central-1,i3en.12xlarge,reserved_3y,partial_upfront,3.266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:20.923174 +AWS,eu-central-1,i3en.12xlarge,spot,NA,2.450099,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092436 +AWS,eu-central-1,i3en.24xlarge,on_demand,NA,12.96,USD,AWS Pricing API,2025-11-30T09:04:21.197705 +AWS,eu-central-1,i3en.24xlarge,reserved_1y,all_upfront,10.097,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:50.796919 +AWS,eu-central-1,i3en.24xlarge,reserved_1y,no_upfront,10.097,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:35.003779 +AWS,eu-central-1,i3en.24xlarge,reserved_1y,partial_upfront,10.097,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:15.906303 +AWS,eu-central-1,i3en.24xlarge,reserved_3y,all_upfront,10.097,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:47.869266 +AWS,eu-central-1,i3en.24xlarge,reserved_3y,no_upfront,10.097,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:40.520720 +AWS,eu-central-1,i3en.24xlarge,reserved_3y,partial_upfront,10.097,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:26.155559 +AWS,eu-central-1,i3en.24xlarge,spot,NA,3.543329,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092578 +AWS,eu-central-1,i3en.2xlarge,on_demand,NA,1.08,USD,AWS Pricing API,2025-11-30T09:04:10.971671 +AWS,eu-central-1,i3en.2xlarge,reserved_1y,all_upfront,0.841,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:40.578574 +AWS,eu-central-1,i3en.2xlarge,reserved_1y,no_upfront,0.841,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:24.741805 +AWS,eu-central-1,i3en.2xlarge,reserved_1y,partial_upfront,0.841,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:05.782192 +AWS,eu-central-1,i3en.2xlarge,reserved_3y,all_upfront,0.841,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:37.847636 +AWS,eu-central-1,i3en.2xlarge,reserved_3y,no_upfront,0.841,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:30.181655 +AWS,eu-central-1,i3en.2xlarge,reserved_3y,partial_upfront,0.841,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:16.074314 +AWS,eu-central-1,i3en.2xlarge,spot,NA,0.415482,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092320 +AWS,eu-central-1,i3en.3xlarge,on_demand,NA,1.62,USD,AWS Pricing API,2025-11-30T09:05:06.190136 +AWS,eu-central-1,i3en.3xlarge,reserved_1y,all_upfront,1.106,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:35.375630 +AWS,eu-central-1,i3en.3xlarge,reserved_1y,no_upfront,1.106,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:20.199274 +AWS,eu-central-1,i3en.3xlarge,reserved_1y,partial_upfront,1.106,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:00.228822 +AWS,eu-central-1,i3en.3xlarge,reserved_3y,all_upfront,1.106,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:31.504697 +AWS,eu-central-1,i3en.3xlarge,reserved_3y,no_upfront,1.106,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:25.880292 +AWS,eu-central-1,i3en.3xlarge,reserved_3y,partial_upfront,1.106,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:10.290087 +AWS,eu-central-1,i3en.3xlarge,spot,NA,0.583857,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093977 +AWS,eu-central-1,i3en.6xlarge,on_demand,NA,3.24,USD,AWS Pricing API,2025-11-30T09:04:57.426123 +AWS,eu-central-1,i3en.6xlarge,reserved_1y,all_upfront,2.064612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:26.616995 +AWS,eu-central-1,i3en.6xlarge,reserved_1y,no_upfront,2.064612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:11.444668 +AWS,eu-central-1,i3en.6xlarge,reserved_1y,partial_upfront,2.064612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:51.601972 +AWS,eu-central-1,i3en.6xlarge,reserved_3y,all_upfront,0.688204,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:22.995630 +AWS,eu-central-1,i3en.6xlarge,reserved_3y,no_upfront,0.688204,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:17.086030 +AWS,eu-central-1,i3en.6xlarge,reserved_3y,partial_upfront,0.688204,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:01.680146 +AWS,eu-central-1,i3en.6xlarge,spot,NA,1.143737,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093734 +AWS,eu-central-1,i3en.large,on_demand,NA,0.27,USD,AWS Pricing API,2025-11-30T09:04:29.781769 +AWS,eu-central-1,i3en.large,reserved_1y,all_upfront,0.175785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:59.330657 +AWS,eu-central-1,i3en.large,reserved_1y,no_upfront,0.175785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:43.640409 +AWS,eu-central-1,i3en.large,reserved_1y,partial_upfront,0.175785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:24.402340 +AWS,eu-central-1,i3en.large,reserved_3y,all_upfront,0.117262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:56.221375 +AWS,eu-central-1,i3en.large,reserved_3y,no_upfront,0.117262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:49.243874 +AWS,eu-central-1,i3en.large,reserved_3y,partial_upfront,0.117262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:34.606199 +AWS,eu-central-1,i3en.large,spot,NA,0.079897,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092934 +AWS,eu-central-1,i3en.xlarge,on_demand,NA,0.54,USD,AWS Pricing API,2025-11-30T09:04:29.094287 +AWS,eu-central-1,i3en.xlarge,reserved_1y,all_upfront,0.421,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:58.646724 +AWS,eu-central-1,i3en.xlarge,reserved_1y,no_upfront,0.421,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:42.960597 +AWS,eu-central-1,i3en.xlarge,reserved_1y,partial_upfront,0.421,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:23.738241 +AWS,eu-central-1,i3en.xlarge,reserved_3y,all_upfront,0.421,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:55.563851 +AWS,eu-central-1,i3en.xlarge,reserved_3y,no_upfront,0.421,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:48.561816 +AWS,eu-central-1,i3en.xlarge,reserved_3y,partial_upfront,0.421,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:33.942252 +AWS,eu-central-1,i3en.xlarge,spot,NA,0.236611,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092864 +AWS,eu-central-1,i4i.16xlarge,on_demand,NA,6.547,USD,AWS Pricing API,2025-11-30T09:04:34.055189 +AWS,eu-central-1,i4i.16xlarge,reserved_1y,all_upfront,4.707192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:03.532899 +AWS,eu-central-1,i4i.16xlarge,reserved_1y,no_upfront,4.707192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:47.961983 +AWS,eu-central-1,i4i.16xlarge,reserved_1y,partial_upfront,4.707192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:28.570004 +AWS,eu-central-1,i4i.16xlarge,reserved_3y,all_upfront,1.569064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:00.355051 +AWS,eu-central-1,i4i.16xlarge,reserved_3y,no_upfront,1.569064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:53.524667 +AWS,eu-central-1,i4i.16xlarge,reserved_3y,partial_upfront,1.569064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:38.786442 +AWS,eu-central-1,i4i.16xlarge,spot,NA,1.66521,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093077 +AWS,eu-central-1,i4i.2xlarge,on_demand,NA,0.818,USD,AWS Pricing API,2025-11-30T09:04:50.318781 +AWS,eu-central-1,i4i.2xlarge,reserved_1y,all_upfront,0.63,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:19.544159 +AWS,eu-central-1,i4i.2xlarge,reserved_1y,no_upfront,0.63,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:04.302809 +AWS,eu-central-1,i4i.2xlarge,reserved_1y,partial_upfront,0.63,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:44.541501 +AWS,eu-central-1,i4i.2xlarge,reserved_3y,all_upfront,0.63,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:16.086351 +AWS,eu-central-1,i4i.2xlarge,reserved_3y,no_upfront,0.63,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:09.900429 +AWS,eu-central-1,i4i.2xlarge,reserved_3y,partial_upfront,0.63,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:54.681040 +AWS,eu-central-1,i4i.2xlarge,spot,NA,0.329858,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093501 +AWS,eu-central-1,i4i.32xlarge,on_demand,NA,13.0944,USD,AWS Pricing API,2025-11-30T09:05:02.761042 +AWS,eu-central-1,i4i.32xlarge,reserved_1y,all_upfront,7.30811,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:31.962574 +AWS,eu-central-1,i4i.32xlarge,reserved_1y,no_upfront,7.30811,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:16.784709 +AWS,eu-central-1,i4i.32xlarge,reserved_1y,partial_upfront,7.30811,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:56.861703 +AWS,eu-central-1,i4i.32xlarge,reserved_3y,all_upfront,7.30811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:28.194550 +AWS,eu-central-1,i4i.32xlarge,reserved_3y,no_upfront,7.30811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:22.440773 +AWS,eu-central-1,i4i.32xlarge,reserved_3y,partial_upfront,7.30811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:06.929353 +AWS,eu-central-1,i4i.32xlarge,spot,NA,2.85699,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093895 +AWS,eu-central-1,i4i.4xlarge,on_demand,NA,1.637,USD,AWS Pricing API,2025-11-30T09:04:38.609457 +AWS,eu-central-1,i4i.4xlarge,reserved_1y,all_upfront,1.261,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:08.009047 +AWS,eu-central-1,i4i.4xlarge,reserved_1y,no_upfront,1.261,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:52.570386 +AWS,eu-central-1,i4i.4xlarge,reserved_1y,partial_upfront,1.261,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:33.035714 +AWS,eu-central-1,i4i.4xlarge,reserved_3y,all_upfront,1.261,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:04.780783 +AWS,eu-central-1,i4i.4xlarge,reserved_3y,no_upfront,1.261,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:58.062230 +AWS,eu-central-1,i4i.4xlarge,reserved_3y,partial_upfront,1.261,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:43.215816 +AWS,eu-central-1,i4i.4xlarge,spot,NA,0.702838,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093184 +AWS,eu-central-1,i4i.8xlarge,on_demand,NA,3.274,USD,AWS Pricing API,2025-11-30T09:04:41.645218 +AWS,eu-central-1,i4i.8xlarge,reserved_1y,all_upfront,2.134,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:10.983192 +AWS,eu-central-1,i4i.8xlarge,reserved_1y,no_upfront,2.134,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:55.587314 +AWS,eu-central-1,i4i.8xlarge,reserved_1y,partial_upfront,2.134,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:36.012136 +AWS,eu-central-1,i4i.8xlarge,reserved_3y,all_upfront,2.134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:07.700621 +AWS,eu-central-1,i4i.8xlarge,reserved_3y,no_upfront,2.134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:01.120481 +AWS,eu-central-1,i4i.8xlarge,reserved_3y,partial_upfront,2.134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:46.205092 +AWS,eu-central-1,i4i.8xlarge,spot,NA,1.147034,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093289 +AWS,eu-central-1,i4i.large,on_demand,NA,0.205,USD,AWS Pricing API,2025-11-30T09:05:07.433972 +AWS,eu-central-1,i4i.large,reserved_1y,all_upfront,0.310845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:36.609425 +AWS,eu-central-1,i4i.large,reserved_1y,no_upfront,0.310845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:21.426852 +AWS,eu-central-1,i4i.large,reserved_1y,partial_upfront,0.310845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:01.456113 +AWS,eu-central-1,i4i.large,reserved_3y,all_upfront,0.103615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:32.716151 +AWS,eu-central-1,i4i.large,reserved_3y,no_upfront,0.103615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:27.123541 +AWS,eu-central-1,i4i.large,reserved_3y,partial_upfront,0.103615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:11.496784 +AWS,eu-central-1,i4i.large,spot,NA,0.066276,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094021 +AWS,eu-central-1,i4i.xlarge,on_demand,NA,0.409,USD,AWS Pricing API,2025-11-30T09:04:48.677546 +AWS,eu-central-1,i4i.xlarge,reserved_1y,all_upfront,0.496575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:17.911671 +AWS,eu-central-1,i4i.xlarge,reserved_1y,no_upfront,0.496575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:02.646287 +AWS,eu-central-1,i4i.xlarge,reserved_1y,partial_upfront,0.496575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:42.935006 +AWS,eu-central-1,i4i.xlarge,reserved_3y,all_upfront,0.165525,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:14.495737 +AWS,eu-central-1,i4i.xlarge,reserved_3y,no_upfront,0.165525,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:08.231859 +AWS,eu-central-1,i4i.xlarge,reserved_3y,partial_upfront,0.165525,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:53.062509 +AWS,eu-central-1,i4i.xlarge,spot,NA,0.176947,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093472 +AWS,eu-central-1,i7i.12xlarge,on_demand,NA,5.4014,USD,AWS Pricing API,2025-11-30T09:04:26.489297 +AWS,eu-central-1,i7i.12xlarge,spot,NA,1.657925,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092763 +AWS,eu-central-1,i7i.16xlarge,on_demand,NA,7.2019,USD,AWS Pricing API,2025-11-30T09:05:12.744360 +AWS,eu-central-1,i7i.16xlarge,spot,NA,2.350298,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094214 +AWS,eu-central-1,i7i.24xlarge,on_demand,NA,10.8029,USD,AWS Pricing API,2025-11-30T09:04:07.281257 +AWS,eu-central-1,i7i.24xlarge,spot,NA,3.058263,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092204 +AWS,eu-central-1,i7i.2xlarge,on_demand,NA,0.9002,USD,AWS Pricing API,2025-11-30T09:04:04.415127 +AWS,eu-central-1,i7i.2xlarge,spot,NA,0.399054,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092071 +AWS,eu-central-1,i7i.48xlarge,on_demand,NA,21.6058,USD,AWS Pricing API,2025-11-30T09:04:06.194263 +AWS,eu-central-1,i7i.48xlarge,spot,NA,5.568523,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092113 +AWS,eu-central-1,i7i.4xlarge,on_demand,NA,1.8005,USD,AWS Pricing API,2025-11-30T09:05:09.607894 +AWS,eu-central-1,i7i.4xlarge,spot,NA,0.792691,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094162 +AWS,eu-central-1,i7i.8xlarge,on_demand,NA,3.601,USD,AWS Pricing API,2025-11-30T09:04:39.301125 +AWS,eu-central-1,i7i.8xlarge,spot,NA,1.289081,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093196 +AWS,eu-central-1,i7i.large,on_demand,NA,0.2251,USD,AWS Pricing API,2025-11-30T09:04:22.688698 +AWS,eu-central-1,i7i.large,spot,NA,0.094722,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092662 +AWS,eu-central-1,i7i.xlarge,on_demand,NA,0.4501,USD,AWS Pricing API,2025-11-30T09:04:31.144713 +AWS,eu-central-1,i7i.xlarge,spot,NA,0.203393,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092971 +AWS,eu-central-1,i8g.12xlarge,on_demand,NA,4.9104,USD,AWS Pricing API,2025-11-30T09:05:03.036373 +AWS,eu-central-1,i8g.12xlarge,spot,NA,1.301969,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093866 +AWS,eu-central-1,i8g.16xlarge,on_demand,NA,6.5472,USD,AWS Pricing API,2025-11-30T09:05:00.000628 +AWS,eu-central-1,i8g.16xlarge,spot,NA,1.774004,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093816 +AWS,eu-central-1,i8g.24xlarge,on_demand,NA,9.8208,USD,AWS Pricing API,2025-11-30T09:05:02.481281 +AWS,eu-central-1,i8g.24xlarge,spot,NA,2.456147,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093829 +AWS,eu-central-1,i8g.2xlarge,on_demand,NA,0.8184,USD,AWS Pricing API,2025-11-30T09:04:29.231641 +AWS,eu-central-1,i8g.2xlarge,spot,NA,0.313773,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092887 +AWS,eu-central-1,i8g.4xlarge,on_demand,NA,1.6368,USD,AWS Pricing API,2025-11-30T09:04:57.151040 +AWS,eu-central-1,i8g.4xlarge,spot,NA,0.587489,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093709 +AWS,eu-central-1,i8g.8xlarge,on_demand,NA,3.2736,USD,AWS Pricing API,2025-11-30T09:05:16.425465 +AWS,eu-central-1,i8g.8xlarge,spot,NA,0.98505,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094358 +AWS,eu-central-1,i8g.large,on_demand,NA,0.2046,USD,AWS Pricing API,2025-11-30T09:04:33.782008 +AWS,eu-central-1,i8g.large,spot,NA,0.079078,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093034 +AWS,eu-central-1,i8g.xlarge,on_demand,NA,0.4092,USD,AWS Pricing API,2025-11-30T09:04:25.668984 +AWS,eu-central-1,i8g.xlarge,spot,NA,0.164991,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092754 +AWS,eu-central-1,im4gn.16xlarge,on_demand,NA,6.94003,USD,AWS Pricing API,2025-11-30T09:04:32.776889 +AWS,eu-central-1,im4gn.16xlarge,reserved_1y,all_upfront,10.420776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:02.316271 +AWS,eu-central-1,im4gn.16xlarge,reserved_1y,no_upfront,10.420776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:46.724344 +AWS,eu-central-1,im4gn.16xlarge,reserved_1y,partial_upfront,10.420776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:27.362101 +AWS,eu-central-1,im4gn.16xlarge,reserved_3y,all_upfront,3.473592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:59.147964 +AWS,eu-central-1,im4gn.16xlarge,reserved_3y,no_upfront,3.473592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:52.284487 +AWS,eu-central-1,im4gn.16xlarge,reserved_3y,partial_upfront,3.473592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:37.578596 +AWS,eu-central-1,im4gn.16xlarge,spot,NA,1.212014,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092996 +AWS,eu-central-1,im4gn.2xlarge,on_demand,NA,0.8675,USD,AWS Pricing API,2025-11-30T09:04:30.461736 +AWS,eu-central-1,im4gn.2xlarge,reserved_1y,all_upfront,0.521575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:00.000256 +AWS,eu-central-1,im4gn.2xlarge,reserved_1y,no_upfront,0.521575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:44.392403 +AWS,eu-central-1,im4gn.2xlarge,reserved_1y,partial_upfront,0.521575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:25.072735 +AWS,eu-central-1,im4gn.2xlarge,reserved_3y,all_upfront,0.173858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:56.890151 +AWS,eu-central-1,im4gn.2xlarge,reserved_3y,no_upfront,0.173858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:49.930867 +AWS,eu-central-1,im4gn.2xlarge,reserved_3y,partial_upfront,0.173858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:35.274745 +AWS,eu-central-1,im4gn.2xlarge,spot,NA,0.25169,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092928 +AWS,eu-central-1,im4gn.4xlarge,on_demand,NA,1.73501,USD,AWS Pricing API,2025-11-30T09:04:25.129584 +AWS,eu-central-1,im4gn.4xlarge,reserved_1y,all_upfront,2.080822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:54.729969 +AWS,eu-central-1,im4gn.4xlarge,reserved_1y,no_upfront,2.080822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:38.994030 +AWS,eu-central-1,im4gn.4xlarge,reserved_1y,partial_upfront,2.080822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:19.830261 +AWS,eu-central-1,im4gn.4xlarge,reserved_3y,all_upfront,0.693607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:51.734630 +AWS,eu-central-1,im4gn.4xlarge,reserved_3y,no_upfront,0.693607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:44.533122 +AWS,eu-central-1,im4gn.4xlarge,reserved_3y,partial_upfront,0.693607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:30.063603 +AWS,eu-central-1,im4gn.4xlarge,spot,NA,0.446108,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092738 +AWS,eu-central-1,im4gn.8xlarge,on_demand,NA,3.47002,USD,AWS Pricing API,2025-11-30T09:04:25.533741 +AWS,eu-central-1,im4gn.8xlarge,reserved_1y,all_upfront,5.210388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:55.132324 +AWS,eu-central-1,im4gn.8xlarge,reserved_1y,no_upfront,5.210388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:39.405006 +AWS,eu-central-1,im4gn.8xlarge,reserved_1y,partial_upfront,5.210388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:20.232011 +AWS,eu-central-1,im4gn.8xlarge,reserved_3y,all_upfront,1.736796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:52.127809 +AWS,eu-central-1,im4gn.8xlarge,reserved_3y,no_upfront,1.736796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:44.946222 +AWS,eu-central-1,im4gn.8xlarge,reserved_3y,partial_upfront,1.736796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:30.469125 +AWS,eu-central-1,im4gn.8xlarge,spot,NA,0.859613,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092742 +AWS,eu-central-1,im4gn.large,on_demand,NA,0.21688,USD,AWS Pricing API,2025-11-30T09:04:26.217972 +AWS,eu-central-1,im4gn.large,reserved_1y,all_upfront,0.15411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:55.800978 +AWS,eu-central-1,im4gn.large,reserved_1y,no_upfront,0.15411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:40.085297 +AWS,eu-central-1,im4gn.large,reserved_1y,partial_upfront,0.15411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:20.906377 +AWS,eu-central-1,im4gn.large,reserved_3y,all_upfront,0.05137,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:52.786808 +AWS,eu-central-1,im4gn.large,reserved_3y,no_upfront,0.05137,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:45.648666 +AWS,eu-central-1,im4gn.large,reserved_3y,partial_upfront,0.05137,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:31.133684 +AWS,eu-central-1,im4gn.large,spot,NA,0.079266,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092772 +AWS,eu-central-1,im4gn.xlarge,on_demand,NA,0.43375,USD,AWS Pricing API,2025-11-30T09:05:14.792017 +AWS,eu-central-1,im4gn.xlarge,reserved_1y,all_upfront,0.260731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:43.934913 +AWS,eu-central-1,im4gn.xlarge,reserved_1y,no_upfront,0.260731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:28.834123 +AWS,eu-central-1,im4gn.xlarge,reserved_1y,partial_upfront,0.260731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:08.772184 +AWS,eu-central-1,im4gn.xlarge,reserved_3y,all_upfront,0.08691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:39.919294 +AWS,eu-central-1,im4gn.xlarge,reserved_3y,no_upfront,0.08691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:34.584373 +AWS,eu-central-1,im4gn.xlarge,reserved_3y,partial_upfront,0.08691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:18.773210 +AWS,eu-central-1,im4gn.xlarge,spot,NA,0.160272,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094272 +AWS,eu-central-1,is4gen.2xlarge,on_demand,NA,1.377,USD,AWS Pricing API,2025-11-30T09:04:23.508378 +AWS,eu-central-1,is4gen.2xlarge,reserved_1y,all_upfront,1.057945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:53.114836 +AWS,eu-central-1,is4gen.2xlarge,reserved_1y,no_upfront,1.057945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:37.344390 +AWS,eu-central-1,is4gen.2xlarge,reserved_1y,partial_upfront,1.057945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:18.206099 +AWS,eu-central-1,is4gen.2xlarge,reserved_3y,all_upfront,0.705282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:50.149043 +AWS,eu-central-1,is4gen.2xlarge,reserved_3y,no_upfront,0.705282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:42.883189 +AWS,eu-central-1,is4gen.2xlarge,reserved_3y,partial_upfront,0.705282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:28.449645 +AWS,eu-central-1,is4gen.2xlarge,spot,NA,0.389219,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092691 +AWS,eu-central-1,is4gen.4xlarge,on_demand,NA,2.754,USD,AWS Pricing API,2025-11-30T09:05:07.164221 +AWS,eu-central-1,is4gen.4xlarge,reserved_1y,all_upfront,1.757306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:36.340212 +AWS,eu-central-1,is4gen.4xlarge,reserved_1y,no_upfront,1.757306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:21.155530 +AWS,eu-central-1,is4gen.4xlarge,reserved_1y,partial_upfront,1.757306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:01.178762 +AWS,eu-central-1,is4gen.4xlarge,reserved_3y,all_upfront,0.585769,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:32.451969 +AWS,eu-central-1,is4gen.4xlarge,reserved_3y,no_upfront,0.585769,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:26.840877 +AWS,eu-central-1,is4gen.4xlarge,reserved_3y,partial_upfront,0.585769,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:11.229481 +AWS,eu-central-1,is4gen.4xlarge,spot,NA,0.635502,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094001 +AWS,eu-central-1,is4gen.8xlarge,on_demand,NA,5.508,USD,AWS Pricing API,2025-11-30T09:04:05.364000 +AWS,eu-central-1,is4gen.8xlarge,reserved_1y,all_upfront,3.76564,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:35.000149 +AWS,eu-central-1,is4gen.8xlarge,reserved_1y,no_upfront,3.76564,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:19.109955 +AWS,eu-central-1,is4gen.8xlarge,reserved_1y,partial_upfront,3.76564,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:00.156448 +AWS,eu-central-1,is4gen.8xlarge,reserved_3y,all_upfront,3.76564,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:32.278816 +AWS,eu-central-1,is4gen.8xlarge,reserved_3y,no_upfront,3.76564,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:24.504542 +AWS,eu-central-1,is4gen.8xlarge,reserved_3y,partial_upfront,3.76564,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:10.560555 +AWS,eu-central-1,is4gen.8xlarge,spot,NA,1.156204,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092137 +AWS,eu-central-1,is4gen.large,on_demand,NA,0.34425,USD,AWS Pricing API,2025-11-30T09:04:47.136001 +AWS,eu-central-1,is4gen.large,reserved_1y,all_upfront,0.219635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:16.384430 +AWS,eu-central-1,is4gen.large,reserved_1y,no_upfront,0.219635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:01.110165 +AWS,eu-central-1,is4gen.large,reserved_1y,partial_upfront,0.219635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:41.440464 +AWS,eu-central-1,is4gen.large,reserved_3y,all_upfront,0.073212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:13.037855 +AWS,eu-central-1,is4gen.large,reserved_3y,no_upfront,0.073212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:06.691319 +AWS,eu-central-1,is4gen.large,reserved_3y,partial_upfront,0.073212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:51.581685 +AWS,eu-central-1,is4gen.large,spot,NA,0.08857,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093429 +AWS,eu-central-1,is4gen.xlarge,on_demand,NA,0.6885,USD,AWS Pricing API,2025-11-30T09:04:31.283033 +AWS,eu-central-1,is4gen.xlarge,reserved_1y,all_upfront,0.528968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:00.804600 +AWS,eu-central-1,is4gen.xlarge,reserved_1y,no_upfront,0.528968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:45.212828 +AWS,eu-central-1,is4gen.xlarge,reserved_1y,partial_upfront,0.528968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:25.873794 +AWS,eu-central-1,is4gen.xlarge,reserved_3y,all_upfront,0.352636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:57.696407 +AWS,eu-central-1,is4gen.xlarge,reserved_3y,no_upfront,0.352636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:50.758696 +AWS,eu-central-1,is4gen.xlarge,reserved_3y,partial_upfront,0.352636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:36.091486 +AWS,eu-central-1,is4gen.xlarge,spot,NA,0.229855,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092992 +AWS,eu-central-1,m4.10xlarge,on_demand,NA,2.4,USD,AWS Pricing API,2025-11-30T09:04:36.555556 +AWS,eu-central-1,m4.10xlarge,reserved_1y,all_upfront,1.758105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:05.976339 +AWS,eu-central-1,m4.10xlarge,reserved_1y,no_upfront,1.758105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:50.484558 +AWS,eu-central-1,m4.10xlarge,reserved_1y,partial_upfront,1.758105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:30.989550 +AWS,eu-central-1,m4.10xlarge,reserved_3y,all_upfront,0.586035,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:02.763443 +AWS,eu-central-1,m4.10xlarge,reserved_3y,no_upfront,0.586035,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:55.997563 +AWS,eu-central-1,m4.10xlarge,reserved_3y,partial_upfront,0.586035,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:41.208309 +AWS,eu-central-1,m4.10xlarge,spot,NA,0.840468,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093109 +AWS,eu-central-1,m4.16xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T09:04:41.780296 +AWS,eu-central-1,m4.16xlarge,reserved_1y,all_upfront,2.87036,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:11.117011 +AWS,eu-central-1,m4.16xlarge,reserved_1y,no_upfront,2.87036,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:55.722859 +AWS,eu-central-1,m4.16xlarge,reserved_1y,partial_upfront,2.87036,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:36.145859 +AWS,eu-central-1,m4.16xlarge,reserved_3y,all_upfront,1.913587,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:07.833852 +AWS,eu-central-1,m4.16xlarge,reserved_3y,no_upfront,1.913587,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:01.259053 +AWS,eu-central-1,m4.16xlarge,reserved_3y,partial_upfront,1.913587,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:46.340114 +AWS,eu-central-1,m4.16xlarge,spot,NA,1.196391,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093262 +AWS,eu-central-1,m4.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T09:04:23.099780 +AWS,eu-central-1,m4.2xlarge,reserved_1y,all_upfront,0.3767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:52.706687 +AWS,eu-central-1,m4.2xlarge,reserved_1y,no_upfront,0.3767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:36.927528 +AWS,eu-central-1,m4.2xlarge,reserved_1y,partial_upfront,0.3767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:17.794959 +AWS,eu-central-1,m4.2xlarge,reserved_3y,all_upfront,0.3767,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:49.741088 +AWS,eu-central-1,m4.2xlarge,reserved_3y,no_upfront,0.3767,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:42.472494 +AWS,eu-central-1,m4.2xlarge,reserved_3y,partial_upfront,0.3767,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:28.038612 +AWS,eu-central-1,m4.2xlarge,spot,NA,0.235869,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092709 +AWS,eu-central-1,m4.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T09:04:57.834315 +AWS,eu-central-1,m4.4xlarge,reserved_1y,all_upfront,0.7535,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:27.022529 +AWS,eu-central-1,m4.4xlarge,reserved_1y,no_upfront,0.7535,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:11.855152 +AWS,eu-central-1,m4.4xlarge,reserved_1y,partial_upfront,0.7535,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:52.020600 +AWS,eu-central-1,m4.4xlarge,reserved_3y,all_upfront,0.7535,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:23.391542 +AWS,eu-central-1,m4.4xlarge,reserved_3y,no_upfront,0.7535,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:17.497738 +AWS,eu-central-1,m4.4xlarge,reserved_3y,partial_upfront,0.7535,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:02.085833 +AWS,eu-central-1,m4.4xlarge,spot,NA,0.407049,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093758 +AWS,eu-central-1,m4.large,on_demand,NA,0.12,USD,AWS Pricing API,2025-11-30T09:04:04.958285 +AWS,eu-central-1,m4.large,reserved_1y,all_upfront,0.076484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:34.597783 +AWS,eu-central-1,m4.large,reserved_1y,no_upfront,0.076484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:18.699303 +AWS,eu-central-1,m4.large,reserved_1y,partial_upfront,0.076484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:59.733547 +AWS,eu-central-1,m4.large,reserved_3y,all_upfront,0.025495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:31.876481 +AWS,eu-central-1,m4.large,reserved_3y,no_upfront,0.025495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:24.092856 +AWS,eu-central-1,m4.large,reserved_3y,partial_upfront,0.025495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:10.163424 +AWS,eu-central-1,m4.large,spot,NA,0.052956,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092100 +AWS,eu-central-1,m4.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T09:04:46.186087 +AWS,eu-central-1,m4.xlarge,reserved_1y,all_upfront,0.224037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:15.430217 +AWS,eu-central-1,m4.xlarge,reserved_1y,no_upfront,0.224037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:00.165379 +AWS,eu-central-1,m4.xlarge,reserved_1y,partial_upfront,0.224037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:40.496680 +AWS,eu-central-1,m4.xlarge,reserved_3y,all_upfront,0.112012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:12.114153 +AWS,eu-central-1,m4.xlarge,reserved_3y,no_upfront,0.112012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:05.725758 +AWS,eu-central-1,m4.xlarge,reserved_3y,partial_upfront,0.112012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:50.644021 +AWS,eu-central-1,m4.xlarge,spot,NA,0.113893,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093367 +AWS,eu-central-1,m5.12xlarge,on_demand,NA,2.76,USD,AWS Pricing API,2025-11-30T09:04:23.237236 +AWS,eu-central-1,m5.12xlarge,reserved_1y,all_upfront,1.622831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:52.840780 +AWS,eu-central-1,m5.12xlarge,reserved_1y,no_upfront,1.622831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:37.071799 +AWS,eu-central-1,m5.12xlarge,reserved_1y,partial_upfront,1.622831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:17.931883 +AWS,eu-central-1,m5.12xlarge,reserved_3y,all_upfront,0.540944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:49.873445 +AWS,eu-central-1,m5.12xlarge,reserved_3y,no_upfront,0.540944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:42.609254 +AWS,eu-central-1,m5.12xlarge,reserved_3y,partial_upfront,0.540944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:28.181330 +AWS,eu-central-1,m5.12xlarge,spot,NA,0.892773,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092696 +AWS,eu-central-1,m5.16xlarge,on_demand,NA,3.68,USD,AWS Pricing API,2025-11-30T09:04:56.196241 +AWS,eu-central-1,m5.16xlarge,reserved_1y,all_upfront,6.05879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:25.393639 +AWS,eu-central-1,m5.16xlarge,reserved_1y,no_upfront,6.05879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:10.201668 +AWS,eu-central-1,m5.16xlarge,reserved_1y,partial_upfront,6.05879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:50.373082 +AWS,eu-central-1,m5.16xlarge,reserved_3y,all_upfront,2.019597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:21.803051 +AWS,eu-central-1,m5.16xlarge,reserved_3y,no_upfront,2.019597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:15.829595 +AWS,eu-central-1,m5.16xlarge,reserved_3y,partial_upfront,2.019597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:00.463526 +AWS,eu-central-1,m5.16xlarge,spot,NA,1.047576,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093713 +AWS,eu-central-1,m5.24xlarge,on_demand,NA,5.52,USD,AWS Pricing API,2025-11-30T09:05:07.707792 +AWS,eu-central-1,m5.24xlarge,reserved_1y,all_upfront,4.305854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:36.879774 +AWS,eu-central-1,m5.24xlarge,reserved_1y,no_upfront,4.305854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:21.709651 +AWS,eu-central-1,m5.24xlarge,reserved_1y,partial_upfront,4.305854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:01.737013 +AWS,eu-central-1,m5.24xlarge,reserved_3y,all_upfront,2.870618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:32.980429 +AWS,eu-central-1,m5.24xlarge,reserved_3y,no_upfront,2.870618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:27.398845 +AWS,eu-central-1,m5.24xlarge,reserved_3y,partial_upfront,2.870618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:11.769527 +AWS,eu-central-1,m5.24xlarge,spot,NA,1.481023,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094041 +AWS,eu-central-1,m5.2xlarge,on_demand,NA,0.46,USD,AWS Pricing API,2025-11-30T09:04:39.438339 +AWS,eu-central-1,m5.2xlarge,reserved_1y,all_upfront,0.270434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:08.813865 +AWS,eu-central-1,m5.2xlarge,reserved_1y,no_upfront,0.270434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:53.405629 +AWS,eu-central-1,m5.2xlarge,reserved_1y,partial_upfront,0.270434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:33.844297 +AWS,eu-central-1,m5.2xlarge,reserved_3y,all_upfront,0.090145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:05.577026 +AWS,eu-central-1,m5.2xlarge,reserved_3y,no_upfront,0.090145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:58.885552 +AWS,eu-central-1,m5.2xlarge,reserved_3y,partial_upfront,0.090145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:44.022935 +AWS,eu-central-1,m5.2xlarge,spot,NA,0.156216,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093242 +AWS,eu-central-1,m5.4xlarge,on_demand,NA,0.92,USD,AWS Pricing API,2025-11-30T09:04:48.951091 +AWS,eu-central-1,m5.4xlarge,reserved_1y,all_upfront,0.540982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:18.181972 +AWS,eu-central-1,m5.4xlarge,reserved_1y,no_upfront,0.540982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:02.923146 +AWS,eu-central-1,m5.4xlarge,reserved_1y,partial_upfront,0.540982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:43.201394 +AWS,eu-central-1,m5.4xlarge,reserved_3y,all_upfront,0.180327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:14.760920 +AWS,eu-central-1,m5.4xlarge,reserved_3y,no_upfront,0.180327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:08.508268 +AWS,eu-central-1,m5.4xlarge,reserved_3y,partial_upfront,0.180327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:53.345553 +AWS,eu-central-1,m5.4xlarge,spot,NA,0.370965,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093438 +AWS,eu-central-1,m5.8xlarge,on_demand,NA,1.84,USD,AWS Pricing API,2025-11-30T09:05:15.748430 +AWS,eu-central-1,m5.8xlarge,reserved_1y,all_upfront,1.507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:44.886143 +AWS,eu-central-1,m5.8xlarge,reserved_1y,no_upfront,1.507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:29.782115 +AWS,eu-central-1,m5.8xlarge,reserved_1y,partial_upfront,1.507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:09.710952 +AWS,eu-central-1,m5.8xlarge,reserved_3y,all_upfront,1.507,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:40.856844 +AWS,eu-central-1,m5.8xlarge,reserved_3y,no_upfront,1.507,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:35.550816 +AWS,eu-central-1,m5.8xlarge,reserved_3y,partial_upfront,1.507,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:19.722504 +AWS,eu-central-1,m5.8xlarge,spot,NA,0.55874,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094334 +AWS,eu-central-1,m5.large,on_demand,NA,0.115,USD,AWS Pricing API,2025-11-30T09:04:39.847998 +AWS,eu-central-1,m5.large,reserved_1y,all_upfront,0.189384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:09.224828 +AWS,eu-central-1,m5.large,reserved_1y,no_upfront,0.189384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:53.820348 +AWS,eu-central-1,m5.large,reserved_1y,partial_upfront,0.189384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:34.257979 +AWS,eu-central-1,m5.large,reserved_3y,all_upfront,0.063128,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:05.971918 +AWS,eu-central-1,m5.large,reserved_3y,no_upfront,0.063128,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:59.300863 +AWS,eu-central-1,m5.large,reserved_3y,partial_upfront,0.063128,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:44.426578 +AWS,eu-central-1,m5.large,spot,NA,0.042056,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093204 +AWS,eu-central-1,m5.xlarge,on_demand,NA,0.23,USD,AWS Pricing API,2025-11-30T09:05:13.560945 +AWS,eu-central-1,m5.xlarge,reserved_1y,all_upfront,0.179726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:42.720364 +AWS,eu-central-1,m5.xlarge,reserved_1y,no_upfront,0.179726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:27.610462 +AWS,eu-central-1,m5.xlarge,reserved_1y,partial_upfront,0.179726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:07.555911 +AWS,eu-central-1,m5.xlarge,reserved_3y,all_upfront,0.119909,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:38.707256 +AWS,eu-central-1,m5.xlarge,reserved_3y,no_upfront,0.119909,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:33.343338 +AWS,eu-central-1,m5.xlarge,reserved_3y,partial_upfront,0.119909,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:17.564081 +AWS,eu-central-1,m5.xlarge,spot,NA,0.072687,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094206 +AWS,eu-central-1,m5a.12xlarge,on_demand,NA,2.496,USD,AWS Pricing API,2025-11-30T09:04:40.405748 +AWS,eu-central-1,m5a.12xlarge,reserved_1y,all_upfront,2.785155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:09.764810 +AWS,eu-central-1,m5a.12xlarge,reserved_1y,no_upfront,2.785155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:54.367763 +AWS,eu-central-1,m5a.12xlarge,reserved_1y,partial_upfront,2.785155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:34.797372 +AWS,eu-central-1,m5a.12xlarge,reserved_3y,all_upfront,1.392385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:06.505972 +AWS,eu-central-1,m5a.12xlarge,reserved_3y,no_upfront,1.392385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:59.869517 +AWS,eu-central-1,m5a.12xlarge,reserved_3y,partial_upfront,1.392385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:44.969542 +AWS,eu-central-1,m5a.12xlarge,spot,NA,0.982174,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093249 +AWS,eu-central-1,m5a.16xlarge,on_demand,NA,3.328,USD,AWS Pricing API,2025-11-30T09:04:57.968719 +AWS,eu-central-1,m5a.16xlarge,reserved_1y,all_upfront,2.662804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:27.158328 +AWS,eu-central-1,m5a.16xlarge,reserved_1y,no_upfront,2.662804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:11.993318 +AWS,eu-central-1,m5a.16xlarge,reserved_1y,partial_upfront,2.662804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:52.156679 +AWS,eu-central-1,m5a.16xlarge,reserved_3y,all_upfront,1.331601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:23.524552 +AWS,eu-central-1,m5a.16xlarge,reserved_3y,no_upfront,1.331601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:17.633523 +AWS,eu-central-1,m5a.16xlarge,reserved_3y,partial_upfront,1.331601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:02.219520 +AWS,eu-central-1,m5a.16xlarge,spot,NA,1.315771,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093742 +AWS,eu-central-1,m5a.24xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T09:04:32.915624 +AWS,eu-central-1,m5a.24xlarge,reserved_1y,all_upfront,3.993205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:02.450600 +AWS,eu-central-1,m5a.24xlarge,reserved_1y,no_upfront,3.993205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:46.863275 +AWS,eu-central-1,m5a.24xlarge,reserved_1y,partial_upfront,3.993205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:27.497492 +AWS,eu-central-1,m5a.24xlarge,reserved_3y,all_upfront,1.996402,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:59.280681 +AWS,eu-central-1,m5a.24xlarge,reserved_3y,no_upfront,1.996402,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:52.421145 +AWS,eu-central-1,m5a.24xlarge,reserved_3y,partial_upfront,1.996402,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:37.712028 +AWS,eu-central-1,m5a.24xlarge,spot,NA,1.491481,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093021 +AWS,eu-central-1,m5a.2xlarge,on_demand,NA,0.416,USD,AWS Pricing API,2025-11-30T09:04:25.398908 +AWS,eu-central-1,m5a.2xlarge,reserved_1y,all_upfront,0.249772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:54.998194 +AWS,eu-central-1,m5a.2xlarge,reserved_1y,no_upfront,0.249772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:39.268662 +AWS,eu-central-1,m5a.2xlarge,reserved_1y,partial_upfront,0.249772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:20.096980 +AWS,eu-central-1,m5a.2xlarge,reserved_3y,all_upfront,0.166591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:51.995414 +AWS,eu-central-1,m5a.2xlarge,reserved_3y,no_upfront,0.166591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:44.808870 +AWS,eu-central-1,m5a.2xlarge,reserved_3y,partial_upfront,0.166591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:30.334731 +AWS,eu-central-1,m5a.2xlarge,spot,NA,0.224469,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092717 +AWS,eu-central-1,m5a.4xlarge,on_demand,NA,0.832,USD,AWS Pricing API,2025-11-30T09:05:06.326711 +AWS,eu-central-1,m5a.4xlarge,reserved_1y,all_upfront,0.499543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:35.518669 +AWS,eu-central-1,m5a.4xlarge,reserved_1y,no_upfront,0.499543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:20.334833 +AWS,eu-central-1,m5a.4xlarge,reserved_1y,partial_upfront,0.499543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:00.361279 +AWS,eu-central-1,m5a.4xlarge,reserved_3y,all_upfront,0.333181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:31.640023 +AWS,eu-central-1,m5a.4xlarge,reserved_3y,no_upfront,0.333181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:26.018702 +AWS,eu-central-1,m5a.4xlarge,reserved_3y,partial_upfront,0.333181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:10.424560 +AWS,eu-central-1,m5a.4xlarge,spot,NA,0.406346,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093962 +AWS,eu-central-1,m5a.8xlarge,on_demand,NA,1.664,USD,AWS Pricing API,2025-11-30T09:04:16.423579 +AWS,eu-central-1,m5a.8xlarge,reserved_1y,all_upfront,1.363,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:46.047863 +AWS,eu-central-1,m5a.8xlarge,reserved_1y,no_upfront,1.363,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:30.209142 +AWS,eu-central-1,m5a.8xlarge,reserved_1y,partial_upfront,1.363,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:11.171954 +AWS,eu-central-1,m5a.8xlarge,reserved_3y,all_upfront,1.363,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:43.200076 +AWS,eu-central-1,m5a.8xlarge,reserved_3y,no_upfront,1.363,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:35.685793 +AWS,eu-central-1,m5a.8xlarge,reserved_3y,partial_upfront,1.363,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:21.459704 +AWS,eu-central-1,m5a.8xlarge,spot,NA,0.833543,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092471 +AWS,eu-central-1,m5a.large,on_demand,NA,0.104,USD,AWS Pricing API,2025-11-30T09:04:35.429975 +AWS,eu-central-1,m5a.large,reserved_1y,all_upfront,0.062164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:04.894819 +AWS,eu-central-1,m5a.large,reserved_1y,no_upfront,0.062164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:49.364989 +AWS,eu-central-1,m5a.large,reserved_1y,partial_upfront,0.062164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:29.918858 +AWS,eu-central-1,m5a.large,reserved_3y,all_upfront,0.041388,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:01.679096 +AWS,eu-central-1,m5a.large,reserved_3y,no_upfront,0.041388,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:54.899171 +AWS,eu-central-1,m5a.large,reserved_3y,partial_upfront,0.041388,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:40.131281 +AWS,eu-central-1,m5a.large,spot,NA,0.052361,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093086 +AWS,eu-central-1,m5a.xlarge,on_demand,NA,0.208,USD,AWS Pricing API,2025-11-30T09:04:37.509279 +AWS,eu-central-1,m5a.xlarge,reserved_1y,all_upfront,0.131,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:06.931335 +AWS,eu-central-1,m5a.xlarge,reserved_1y,no_upfront,0.131,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:51.460300 +AWS,eu-central-1,m5a.xlarge,reserved_1y,partial_upfront,0.131,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:31.951445 +AWS,eu-central-1,m5a.xlarge,reserved_3y,all_upfront,0.131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:03.719101 +AWS,eu-central-1,m5a.xlarge,reserved_3y,no_upfront,0.131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:56.959332 +AWS,eu-central-1,m5a.xlarge,reserved_3y,partial_upfront,0.131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:42.142388 +AWS,eu-central-1,m5a.xlarge,spot,NA,0.127932,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093141 +AWS,eu-central-1,m5d.12xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T09:04:07.692251 +AWS,eu-central-1,m5d.12xlarge,reserved_1y,all_upfront,2.611447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:37.316244 +AWS,eu-central-1,m5d.12xlarge,reserved_1y,no_upfront,2.611447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:21.463449 +AWS,eu-central-1,m5d.12xlarge,reserved_1y,partial_upfront,2.611447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:02.534589 +AWS,eu-central-1,m5d.12xlarge,reserved_3y,all_upfront,1.305816,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:34.623097 +AWS,eu-central-1,m5d.12xlarge,reserved_3y,no_upfront,1.305816,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:26.866617 +AWS,eu-central-1,m5d.12xlarge,reserved_3y,partial_upfront,1.305816,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:12.841017 +AWS,eu-central-1,m5d.12xlarge,spot,NA,1.328912,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092147 +AWS,eu-central-1,m5d.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T09:04:53.038267 +AWS,eu-central-1,m5d.16xlarge,reserved_1y,all_upfront,2.742,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:22.280283 +AWS,eu-central-1,m5d.16xlarge,reserved_1y,no_upfront,2.742,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:07.038420 +AWS,eu-central-1,m5d.16xlarge,reserved_1y,partial_upfront,2.742,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:47.258121 +AWS,eu-central-1,m5d.16xlarge,reserved_3y,all_upfront,2.742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:18.733005 +AWS,eu-central-1,m5d.16xlarge,reserved_3y,no_upfront,2.742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:12.647545 +AWS,eu-central-1,m5d.16xlarge,reserved_3y,partial_upfront,2.742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:57.348159 +AWS,eu-central-1,m5d.16xlarge,spot,NA,1.565404,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093581 +AWS,eu-central-1,m5d.24xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T09:04:36.412584 +AWS,eu-central-1,m5d.24xlarge,reserved_1y,all_upfront,3.916,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:05.842188 +AWS,eu-central-1,m5d.24xlarge,reserved_1y,no_upfront,3.916,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:50.343172 +AWS,eu-central-1,m5d.24xlarge,reserved_1y,partial_upfront,3.916,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:30.856386 +AWS,eu-central-1,m5d.24xlarge,reserved_3y,all_upfront,3.916,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:02.630230 +AWS,eu-central-1,m5d.24xlarge,reserved_3y,no_upfront,3.916,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:55.859379 +AWS,eu-central-1,m5d.24xlarge,reserved_3y,partial_upfront,3.916,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:41.073860 +AWS,eu-central-1,m5d.24xlarge,spot,NA,2.049733,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093113 +AWS,eu-central-1,m5d.2xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T09:04:20.644070 +AWS,eu-central-1,m5d.2xlarge,reserved_1y,all_upfront,0.445,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:50.250845 +AWS,eu-central-1,m5d.2xlarge,reserved_1y,no_upfront,0.445,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:34.453700 +AWS,eu-central-1,m5d.2xlarge,reserved_1y,partial_upfront,0.445,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:15.366112 +AWS,eu-central-1,m5d.2xlarge,reserved_3y,all_upfront,0.445,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:47.340979 +AWS,eu-central-1,m5d.2xlarge,reserved_3y,no_upfront,0.445,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:39.965394 +AWS,eu-central-1,m5d.2xlarge,reserved_3y,partial_upfront,0.445,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:25.624551 +AWS,eu-central-1,m5d.2xlarge,spot,NA,0.243394,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092598 +AWS,eu-central-1,m5d.4xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T09:04:31.826388 +AWS,eu-central-1,m5d.4xlarge,reserved_1y,all_upfront,1.227283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:01.349933 +AWS,eu-central-1,m5d.4xlarge,reserved_1y,no_upfront,1.227283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:45.766748 +AWS,eu-central-1,m5d.4xlarge,reserved_1y,partial_upfront,1.227283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:26.415112 +AWS,eu-central-1,m5d.4xlarge,reserved_3y,all_upfront,0.409094,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:58.226037 +AWS,eu-central-1,m5d.4xlarge,reserved_3y,no_upfront,0.409094,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:51.317004 +AWS,eu-central-1,m5d.4xlarge,reserved_3y,partial_upfront,0.409094,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:36.628853 +AWS,eu-central-1,m5d.4xlarge,spot,NA,0.515933,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092988 +AWS,eu-central-1,m5d.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T09:05:15.614231 +AWS,eu-central-1,m5d.8xlarge,reserved_1y,all_upfront,1.693918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:44.749135 +AWS,eu-central-1,m5d.8xlarge,reserved_1y,no_upfront,1.693918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:29.648377 +AWS,eu-central-1,m5d.8xlarge,reserved_1y,partial_upfront,1.693918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:09.578540 +AWS,eu-central-1,m5d.8xlarge,reserved_3y,all_upfront,1.129306,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:40.723956 +AWS,eu-central-1,m5d.8xlarge,reserved_3y,no_upfront,1.129306,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:35.409882 +AWS,eu-central-1,m5d.8xlarge,reserved_3y,partial_upfront,1.129306,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:19.589946 +AWS,eu-central-1,m5d.8xlarge,spot,NA,0.82876,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094304 +AWS,eu-central-1,m5d.large,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T09:04:11.516642 +AWS,eu-central-1,m5d.large,reserved_1y,all_upfront,0.080023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:41.120639 +AWS,eu-central-1,m5d.large,reserved_1y,no_upfront,0.080023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:25.290701 +AWS,eu-central-1,m5d.large,reserved_1y,partial_upfront,0.080023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:06.318363 +AWS,eu-central-1,m5d.large,reserved_3y,all_upfront,0.026674,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:38.402463 +AWS,eu-central-1,m5d.large,reserved_3y,no_upfront,0.026674,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:30.739441 +AWS,eu-central-1,m5d.large,reserved_3y,partial_upfront,0.026674,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:16.624922 +AWS,eu-central-1,m5d.large,spot,NA,0.062495,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092329 +AWS,eu-central-1,m5d.xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T09:04:27.583955 +AWS,eu-central-1,m5d.xlarge,reserved_1y,all_upfront,0.159932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:57.164280 +AWS,eu-central-1,m5d.xlarge,reserved_1y,no_upfront,0.159932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:41.451134 +AWS,eu-central-1,m5d.xlarge,reserved_1y,partial_upfront,0.159932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:22.257324 +AWS,eu-central-1,m5d.xlarge,reserved_3y,all_upfront,0.053311,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:54.109943 +AWS,eu-central-1,m5d.xlarge,reserved_3y,no_upfront,0.053311,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:47.039224 +AWS,eu-central-1,m5d.xlarge,reserved_3y,partial_upfront,0.053311,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:32.462980 +AWS,eu-central-1,m5d.xlarge,spot,NA,0.119985,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092841 +AWS,eu-central-1,m5dn.12xlarge,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T09:04:09.878654 +AWS,eu-central-1,m5dn.12xlarge,reserved_1y,all_upfront,4.385616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:39.483422 +AWS,eu-central-1,m5dn.12xlarge,reserved_1y,no_upfront,4.385616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:23.646932 +AWS,eu-central-1,m5dn.12xlarge,reserved_1y,partial_upfront,4.385616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:04.699298 +AWS,eu-central-1,m5dn.12xlarge,reserved_3y,all_upfront,1.461872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:36.774876 +AWS,eu-central-1,m5dn.12xlarge,reserved_3y,no_upfront,1.461872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:29.083397 +AWS,eu-central-1,m5dn.12xlarge,reserved_3y,partial_upfront,1.461872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:14.988179 +AWS,eu-central-1,m5dn.12xlarge,spot,NA,1.48428,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092272 +AWS,eu-central-1,m5dn.16xlarge,on_demand,NA,5.184,USD,AWS Pricing API,2025-11-30T09:04:44.245139 +AWS,eu-central-1,m5dn.16xlarge,reserved_1y,all_upfront,3.927055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:13.540095 +AWS,eu-central-1,m5dn.16xlarge,reserved_1y,no_upfront,3.927055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:58.226607 +AWS,eu-central-1,m5dn.16xlarge,reserved_1y,partial_upfront,3.927055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:38.587293 +AWS,eu-central-1,m5dn.16xlarge,reserved_3y,all_upfront,1.309018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:10.234016 +AWS,eu-central-1,m5dn.16xlarge,reserved_3y,no_upfront,1.309018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:03.761890 +AWS,eu-central-1,m5dn.16xlarge,reserved_3y,partial_upfront,1.309018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:48.762956 +AWS,eu-central-1,m5dn.16xlarge,spot,NA,1.499101,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093341 +AWS,eu-central-1,m5dn.24xlarge,on_demand,NA,7.776,USD,AWS Pricing API,2025-11-30T09:05:08.790105 +AWS,eu-central-1,m5dn.24xlarge,reserved_1y,all_upfront,4.665763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:37.964556 +AWS,eu-central-1,m5dn.24xlarge,reserved_1y,no_upfront,4.665763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:22.811609 +AWS,eu-central-1,m5dn.24xlarge,reserved_1y,partial_upfront,4.665763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:02.814306 +AWS,eu-central-1,m5dn.24xlarge,reserved_3y,all_upfront,3.110588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:34.046756 +AWS,eu-central-1,m5dn.24xlarge,reserved_3y,no_upfront,3.110588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:28.506700 +AWS,eu-central-1,m5dn.24xlarge,reserved_3y,partial_upfront,3.110588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:12.843533 +AWS,eu-central-1,m5dn.24xlarge,spot,NA,2.37082,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094094 +AWS,eu-central-1,m5dn.2xlarge,on_demand,NA,0.648,USD,AWS Pricing API,2025-11-30T09:04:06.738788 +AWS,eu-central-1,m5dn.2xlarge,reserved_1y,all_upfront,0.28,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:36.354366 +AWS,eu-central-1,m5dn.2xlarge,reserved_1y,no_upfront,0.28,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:20.494873 +AWS,eu-central-1,m5dn.2xlarge,reserved_1y,partial_upfront,0.28,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:01.536293 +AWS,eu-central-1,m5dn.2xlarge,reserved_3y,all_upfront,0.28,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:33.683646 +AWS,eu-central-1,m5dn.2xlarge,reserved_3y,no_upfront,0.28,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:25.879536 +AWS,eu-central-1,m5dn.2xlarge,reserved_3y,partial_upfront,0.28,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:11.901247 +AWS,eu-central-1,m5dn.2xlarge,spot,NA,0.367498,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092166 +AWS,eu-central-1,m5dn.4xlarge,on_demand,NA,1.296,USD,AWS Pricing API,2025-11-30T09:04:47.001658 +AWS,eu-central-1,m5dn.4xlarge,reserved_1y,all_upfront,1.88984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:16.250339 +AWS,eu-central-1,m5dn.4xlarge,reserved_1y,no_upfront,1.88984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:00.973348 +AWS,eu-central-1,m5dn.4xlarge,reserved_1y,partial_upfront,1.88984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:41.305921 +AWS,eu-central-1,m5dn.4xlarge,reserved_3y,all_upfront,0.629947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:12.904988 +AWS,eu-central-1,m5dn.4xlarge,reserved_3y,no_upfront,0.629947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:06.554552 +AWS,eu-central-1,m5dn.4xlarge,reserved_3y,partial_upfront,0.629947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:51.448794 +AWS,eu-central-1,m5dn.4xlarge,spot,NA,0.816965,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093420 +AWS,eu-central-1,m5dn.8xlarge,on_demand,NA,2.592,USD,AWS Pricing API,2025-11-30T09:04:07.828067 +AWS,eu-central-1,m5dn.8xlarge,reserved_1y,all_upfront,1.963584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:37.451588 +AWS,eu-central-1,m5dn.8xlarge,reserved_1y,no_upfront,1.963584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:21.603447 +AWS,eu-central-1,m5dn.8xlarge,reserved_1y,partial_upfront,1.963584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:02.670353 +AWS,eu-central-1,m5dn.8xlarge,reserved_3y,all_upfront,0.654528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:34.755850 +AWS,eu-central-1,m5dn.8xlarge,reserved_3y,no_upfront,0.654528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:27.003636 +AWS,eu-central-1,m5dn.8xlarge,reserved_3y,partial_upfront,0.654528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:12.974113 +AWS,eu-central-1,m5dn.8xlarge,spot,NA,1.106031,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092152 +AWS,eu-central-1,m5dn.large,on_demand,NA,0.162,USD,AWS Pricing API,2025-11-30T09:05:02.334911 +AWS,eu-central-1,m5dn.large,reserved_1y,all_upfront,0.236187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:31.563068 +AWS,eu-central-1,m5dn.large,reserved_1y,no_upfront,0.236187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:16.370743 +AWS,eu-central-1,m5dn.large,reserved_1y,partial_upfront,0.236187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:56.458866 +AWS,eu-central-1,m5dn.large,reserved_3y,all_upfront,0.078729,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:27.796676 +AWS,eu-central-1,m5dn.large,reserved_3y,no_upfront,0.078729,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:22.030471 +AWS,eu-central-1,m5dn.large,reserved_3y,partial_upfront,0.078729,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:06.530145 +AWS,eu-central-1,m5dn.large,spot,NA,0.096258,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093833 +AWS,eu-central-1,m5dn.metal,on_demand,NA,7.776,USD,AWS Pricing API,2025-11-30T09:05:13.697688 +AWS,eu-central-1,m5dn.metal,reserved_1y,all_upfront,4.899,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:42.852984 +AWS,eu-central-1,m5dn.metal,reserved_1y,no_upfront,4.899,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:27.746649 +AWS,eu-central-1,m5dn.metal,reserved_1y,partial_upfront,4.899,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:07.691867 +AWS,eu-central-1,m5dn.metal,reserved_3y,all_upfront,4.899,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:38.842594 +AWS,eu-central-1,m5dn.metal,reserved_3y,no_upfront,4.899,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:33.479549 +AWS,eu-central-1,m5dn.metal,reserved_3y,partial_upfront,4.899,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:17.698937 +AWS,eu-central-1,m5dn.metal,spot,NA,1.576349,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094255 +AWS,eu-central-1,m5dn.xlarge,on_demand,NA,0.324,USD,AWS Pricing API,2025-11-30T09:04:05.505440 +AWS,eu-central-1,m5dn.xlarge,reserved_1y,all_upfront,0.204,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:35.134898 +AWS,eu-central-1,m5dn.xlarge,reserved_1y,no_upfront,0.204,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:19.246382 +AWS,eu-central-1,m5dn.xlarge,reserved_1y,partial_upfront,0.204,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:00.293292 +AWS,eu-central-1,m5dn.xlarge,reserved_3y,all_upfront,0.204,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:32.413148 +AWS,eu-central-1,m5dn.xlarge,reserved_3y,no_upfront,0.204,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:24.641871 +AWS,eu-central-1,m5dn.xlarge,reserved_3y,partial_upfront,0.204,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:10.696409 +AWS,eu-central-1,m5dn.xlarge,spot,NA,0.185519,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092108 +AWS,eu-central-1,m5n.12xlarge,on_demand,NA,3.384,USD,AWS Pricing API,2025-11-30T09:04:27.304483 +AWS,eu-central-1,m5n.12xlarge,reserved_1y,all_upfront,4.865068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:56.893746 +AWS,eu-central-1,m5n.12xlarge,reserved_1y,no_upfront,4.865068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:41.175794 +AWS,eu-central-1,m5n.12xlarge,reserved_1y,partial_upfront,4.865068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:21.990120 +AWS,eu-central-1,m5n.12xlarge,reserved_3y,all_upfront,1.621689,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:53.846926 +AWS,eu-central-1,m5n.12xlarge,reserved_3y,no_upfront,1.621689,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:46.762843 +AWS,eu-central-1,m5n.12xlarge,reserved_3y,partial_upfront,1.621689,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:32.196298 +AWS,eu-central-1,m5n.12xlarge,spot,NA,1.237654,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092821 +AWS,eu-central-1,m5n.16xlarge,on_demand,NA,4.512,USD,AWS Pricing API,2025-11-30T09:04:24.855700 +AWS,eu-central-1,m5n.16xlarge,reserved_1y,all_upfront,2.653082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:54.460416 +AWS,eu-central-1,m5n.16xlarge,reserved_1y,no_upfront,2.653082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:38.718451 +AWS,eu-central-1,m5n.16xlarge,reserved_1y,partial_upfront,2.653082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:19.561150 +AWS,eu-central-1,m5n.16xlarge,reserved_3y,all_upfront,0.884361,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:51.473247 +AWS,eu-central-1,m5n.16xlarge,reserved_3y,no_upfront,0.884361,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:44.258934 +AWS,eu-central-1,m5n.16xlarge,reserved_3y,partial_upfront,0.884361,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:29.786530 +AWS,eu-central-1,m5n.16xlarge,spot,NA,1.645698,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092730 +AWS,eu-central-1,m5n.24xlarge,on_demand,NA,6.768,USD,AWS Pricing API,2025-11-30T09:04:06.331114 +AWS,eu-central-1,m5n.24xlarge,reserved_1y,all_upfront,3.574,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:35.946644 +AWS,eu-central-1,m5n.24xlarge,reserved_1y,no_upfront,3.574,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:20.075029 +AWS,eu-central-1,m5n.24xlarge,reserved_1y,partial_upfront,3.574,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:01.119703 +AWS,eu-central-1,m5n.24xlarge,reserved_3y,all_upfront,3.574,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:33.282680 +AWS,eu-central-1,m5n.24xlarge,reserved_3y,no_upfront,3.574,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:25.467507 +AWS,eu-central-1,m5n.24xlarge,reserved_3y,partial_upfront,3.574,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:11.501638 +AWS,eu-central-1,m5n.24xlarge,spot,NA,2.34795,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092104 +AWS,eu-central-1,m5n.2xlarge,on_demand,NA,0.564,USD,AWS Pricing API,2025-11-30T09:04:38.747173 +AWS,eu-central-1,m5n.2xlarge,reserved_1y,all_upfront,0.331621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:08.144099 +AWS,eu-central-1,m5n.2xlarge,reserved_1y,no_upfront,0.331621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:52.707255 +AWS,eu-central-1,m5n.2xlarge,reserved_1y,partial_upfront,0.331621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:33.172848 +AWS,eu-central-1,m5n.2xlarge,reserved_3y,all_upfront,0.11054,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:04.913822 +AWS,eu-central-1,m5n.2xlarge,reserved_3y,no_upfront,0.11054,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:58.204524 +AWS,eu-central-1,m5n.2xlarge,reserved_3y,partial_upfront,0.11054,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:43.351631 +AWS,eu-central-1,m5n.2xlarge,spot,NA,0.275196,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093176 +AWS,eu-central-1,m5n.4xlarge,on_demand,NA,1.128,USD,AWS Pricing API,2025-11-30T09:05:01.477088 +AWS,eu-central-1,m5n.4xlarge,reserved_1y,all_upfront,0.917,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:30.748525 +AWS,eu-central-1,m5n.4xlarge,reserved_1y,no_upfront,0.917,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:15.555087 +AWS,eu-central-1,m5n.4xlarge,reserved_1y,partial_upfront,0.917,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:55.636569 +AWS,eu-central-1,m5n.4xlarge,reserved_3y,all_upfront,0.917,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:26.993093 +AWS,eu-central-1,m5n.4xlarge,reserved_3y,no_upfront,0.917,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:21.204205 +AWS,eu-central-1,m5n.4xlarge,reserved_3y,partial_upfront,0.917,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:05.716762 +AWS,eu-central-1,m5n.4xlarge,spot,NA,0.50912,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093854 +AWS,eu-central-1,m5n.8xlarge,on_demand,NA,2.256,USD,AWS Pricing API,2025-11-30T09:04:26.759634 +AWS,eu-central-1,m5n.8xlarge,reserved_1y,all_upfront,1.804653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:56.339401 +AWS,eu-central-1,m5n.8xlarge,reserved_1y,no_upfront,1.804653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:40.630488 +AWS,eu-central-1,m5n.8xlarge,reserved_1y,partial_upfront,1.804653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:21.452549 +AWS,eu-central-1,m5n.8xlarge,reserved_3y,all_upfront,0.902218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:53.316755 +AWS,eu-central-1,m5n.8xlarge,reserved_3y,no_upfront,0.902218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:46.210399 +AWS,eu-central-1,m5n.8xlarge,reserved_3y,partial_upfront,0.902218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:31.664089 +AWS,eu-central-1,m5n.8xlarge,spot,NA,0.892976,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092784 +AWS,eu-central-1,m5n.large,on_demand,NA,0.141,USD,AWS Pricing API,2025-11-30T09:04:19.157226 +AWS,eu-central-1,m5n.large,reserved_1y,all_upfront,0.082877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:48.765065 +AWS,eu-central-1,m5n.large,reserved_1y,no_upfront,0.082877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:32.955148 +AWS,eu-central-1,m5n.large,reserved_1y,partial_upfront,0.082877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:13.887495 +AWS,eu-central-1,m5n.large,reserved_3y,all_upfront,0.027626,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:45.879830 +AWS,eu-central-1,m5n.large,reserved_3y,no_upfront,0.027626,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:38.451276 +AWS,eu-central-1,m5n.large,reserved_3y,partial_upfront,0.027626,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:24.145048 +AWS,eu-central-1,m5n.large,spot,NA,0.067194,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092541 +AWS,eu-central-1,m5n.metal,on_demand,NA,6.768,USD,AWS Pricing API,2025-11-30T09:04:43.565094 +AWS,eu-central-1,m5n.metal,reserved_1y,all_upfront,3.979566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:12.866635 +AWS,eu-central-1,m5n.metal,reserved_1y,no_upfront,3.979566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:57.540392 +AWS,eu-central-1,m5n.metal,reserved_1y,partial_upfront,3.979566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:37.900516 +AWS,eu-central-1,m5n.metal,reserved_3y,all_upfront,1.326522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:09.571554 +AWS,eu-central-1,m5n.metal,reserved_3y,no_upfront,1.326522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:03.066438 +AWS,eu-central-1,m5n.metal,reserved_3y,partial_upfront,1.326522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:48.086827 +AWS,eu-central-1,m5n.xlarge,on_demand,NA,0.282,USD,AWS Pricing API,2025-11-30T09:04:38.472614 +AWS,eu-central-1,m5n.xlarge,reserved_1y,all_upfront,0.229,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:07.874392 +AWS,eu-central-1,m5n.xlarge,reserved_1y,no_upfront,0.229,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:52.422478 +AWS,eu-central-1,m5n.xlarge,reserved_1y,partial_upfront,0.229,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:32.902235 +AWS,eu-central-1,m5n.xlarge,reserved_3y,all_upfront,0.229,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:04.645387 +AWS,eu-central-1,m5n.xlarge,reserved_3y,no_upfront,0.229,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:57.925721 +AWS,eu-central-1,m5n.xlarge,reserved_3y,partial_upfront,0.229,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:43.083180 +AWS,eu-central-1,m5n.xlarge,spot,NA,0.122981,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093192 +AWS,eu-central-1,m5zn.12xlarge,on_demand,NA,4.7486,USD,AWS Pricing API,2025-11-30T09:04:43.705921 +AWS,eu-central-1,m5zn.12xlarge,reserved_1y,all_upfront,2.837207,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:12.998788 +AWS,eu-central-1,m5zn.12xlarge,reserved_1y,no_upfront,2.837207,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:57.676525 +AWS,eu-central-1,m5zn.12xlarge,reserved_1y,partial_upfront,2.837207,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:38.047504 +AWS,eu-central-1,m5zn.12xlarge,reserved_3y,all_upfront,1.891469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:09.705866 +AWS,eu-central-1,m5zn.12xlarge,reserved_3y,no_upfront,1.891469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:03.209793 +AWS,eu-central-1,m5zn.12xlarge,reserved_3y,partial_upfront,1.891469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:48.223105 +AWS,eu-central-1,m5zn.12xlarge,spot,NA,1.896123,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093354 +AWS,eu-central-1,m5zn.2xlarge,on_demand,NA,0.7914,USD,AWS Pricing API,2025-11-30T09:04:12.879496 +AWS,eu-central-1,m5zn.2xlarge,reserved_1y,all_upfront,0.4125,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:42.497008 +AWS,eu-central-1,m5zn.2xlarge,reserved_1y,no_upfront,0.4125,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:26.661850 +AWS,eu-central-1,m5zn.2xlarge,reserved_1y,partial_upfront,0.4125,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:07.682941 +AWS,eu-central-1,m5zn.2xlarge,reserved_3y,all_upfront,0.4125,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:39.739346 +AWS,eu-central-1,m5zn.2xlarge,reserved_3y,no_upfront,0.4125,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:32.111596 +AWS,eu-central-1,m5zn.2xlarge,reserved_3y,partial_upfront,0.4125,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:17.974990 +AWS,eu-central-1,m5zn.2xlarge,spot,NA,0.463006,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092359 +AWS,eu-central-1,m5zn.3xlarge,on_demand,NA,1.1872,USD,AWS Pricing API,2025-11-30T09:04:47.273533 +AWS,eu-central-1,m5zn.3xlarge,reserved_1y,all_upfront,0.954796,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:16.519240 +AWS,eu-central-1,m5zn.3xlarge,reserved_1y,no_upfront,0.954796,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:01.253937 +AWS,eu-central-1,m5zn.3xlarge,reserved_1y,partial_upfront,0.954796,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:41.575632 +AWS,eu-central-1,m5zn.3xlarge,reserved_3y,all_upfront,0.477399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:13.168887 +AWS,eu-central-1,m5zn.3xlarge,reserved_3y,no_upfront,0.477399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:06.831149 +AWS,eu-central-1,m5zn.3xlarge,reserved_3y,partial_upfront,0.477399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:51.727296 +AWS,eu-central-1,m5zn.3xlarge,spot,NA,0.689845,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093425 +AWS,eu-central-1,m5zn.6xlarge,on_demand,NA,2.3743,USD,AWS Pricing API,2025-11-30T09:04:07.009484 +AWS,eu-central-1,m5zn.6xlarge,reserved_1y,all_upfront,1.390183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:36.629047 +AWS,eu-central-1,m5zn.6xlarge,reserved_1y,no_upfront,1.390183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:20.769003 +AWS,eu-central-1,m5zn.6xlarge,reserved_1y,partial_upfront,1.390183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:01.829546 +AWS,eu-central-1,m5zn.6xlarge,reserved_3y,all_upfront,0.463394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:33.951307 +AWS,eu-central-1,m5zn.6xlarge,reserved_3y,no_upfront,0.463394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:26.159350 +AWS,eu-central-1,m5zn.6xlarge,reserved_3y,partial_upfront,0.463394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:12.167321 +AWS,eu-central-1,m5zn.6xlarge,spot,NA,1.192343,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092200 +AWS,eu-central-1,m5zn.large,on_demand,NA,0.1979,USD,AWS Pricing API,2025-11-30T09:04:36.830120 +AWS,eu-central-1,m5zn.large,reserved_1y,all_upfront,0.1241,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:06.252317 +AWS,eu-central-1,m5zn.large,reserved_1y,no_upfront,0.1241,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:50.771679 +AWS,eu-central-1,m5zn.large,reserved_1y,partial_upfront,0.1241,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:31.260459 +AWS,eu-central-1,m5zn.large,reserved_3y,all_upfront,0.1241,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:03.042922 +AWS,eu-central-1,m5zn.large,reserved_3y,no_upfront,0.1241,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:56.274026 +AWS,eu-central-1,m5zn.large,reserved_3y,partial_upfront,0.1241,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:41.475059 +AWS,eu-central-1,m5zn.large,spot,NA,0.095991,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093161 +AWS,eu-central-1,m5zn.metal,on_demand,NA,4.7486,USD,AWS Pricing API,2025-11-30T09:05:14.249397 +AWS,eu-central-1,m5zn.metal,reserved_1y,all_upfront,2.979,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:43.391722 +AWS,eu-central-1,m5zn.metal,reserved_1y,no_upfront,2.979,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:28.294162 +AWS,eu-central-1,m5zn.metal,reserved_1y,partial_upfront,2.979,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:08.237017 +AWS,eu-central-1,m5zn.metal,reserved_3y,all_upfront,2.979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:39.393144 +AWS,eu-central-1,m5zn.metal,reserved_3y,no_upfront,2.979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:34.032027 +AWS,eu-central-1,m5zn.metal,reserved_3y,partial_upfront,2.979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:18.239364 +AWS,eu-central-1,m5zn.metal,spot,NA,1.191144,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094275 +AWS,eu-central-1,m5zn.xlarge,on_demand,NA,0.3957,USD,AWS Pricing API,2025-11-30T09:04:12.059592 +AWS,eu-central-1,m5zn.xlarge,reserved_1y,all_upfront,0.231735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:41.662494 +AWS,eu-central-1,m5zn.xlarge,reserved_1y,no_upfront,0.231735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:25.835280 +AWS,eu-central-1,m5zn.xlarge,reserved_1y,partial_upfront,0.231735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:06.871328 +AWS,eu-central-1,m5zn.xlarge,reserved_3y,all_upfront,0.077245,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:38.932542 +AWS,eu-central-1,m5zn.xlarge,reserved_3y,no_upfront,0.077245,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:31.292305 +AWS,eu-central-1,m5zn.xlarge,reserved_3y,partial_upfront,0.077245,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:17.163268 +AWS,eu-central-1,m5zn.xlarge,spot,NA,0.233743,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092372 +AWS,eu-central-1,m6g.12xlarge,on_demand,NA,2.208,USD,AWS Pricing API,2025-11-30T09:04:21.876871 +AWS,eu-central-1,m6g.12xlarge,reserved_1y,all_upfront,1.775635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:51.483130 +AWS,eu-central-1,m6g.12xlarge,reserved_1y,no_upfront,1.775635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:35.699221 +AWS,eu-central-1,m6g.12xlarge,reserved_1y,partial_upfront,1.775635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:16.585514 +AWS,eu-central-1,m6g.12xlarge,reserved_3y,all_upfront,0.887812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:48.534987 +AWS,eu-central-1,m6g.12xlarge,reserved_3y,no_upfront,0.887812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:41.212772 +AWS,eu-central-1,m6g.12xlarge,reserved_3y,partial_upfront,0.887812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:26.825875 +AWS,eu-central-1,m6g.12xlarge,spot,NA,0.636223,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092654 +AWS,eu-central-1,m6g.16xlarge,on_demand,NA,2.944,USD,AWS Pricing API,2025-11-30T09:04:17.247791 +AWS,eu-central-1,m6g.16xlarge,reserved_1y,all_upfront,2.2447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:46.858990 +AWS,eu-central-1,m6g.16xlarge,reserved_1y,no_upfront,2.2447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:31.028991 +AWS,eu-central-1,m6g.16xlarge,reserved_1y,partial_upfront,2.2447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:11.992542 +AWS,eu-central-1,m6g.16xlarge,reserved_3y,all_upfront,2.2447,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:44.006311 +AWS,eu-central-1,m6g.16xlarge,reserved_3y,no_upfront,2.2447,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:36.514135 +AWS,eu-central-1,m6g.16xlarge,reserved_3y,partial_upfront,2.2447,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:22.271809 +AWS,eu-central-1,m6g.16xlarge,spot,NA,0.892853,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092480 +AWS,eu-central-1,m6g.2xlarge,on_demand,NA,0.368,USD,AWS Pricing API,2025-11-30T09:04:38.056995 +AWS,eu-central-1,m6g.2xlarge,reserved_1y,all_upfront,0.1598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:07.468650 +AWS,eu-central-1,m6g.2xlarge,reserved_1y,no_upfront,0.1598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:52.007103 +AWS,eu-central-1,m6g.2xlarge,reserved_1y,partial_upfront,0.1598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:32.496951 +AWS,eu-central-1,m6g.2xlarge,reserved_3y,all_upfront,0.1598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:04.245640 +AWS,eu-central-1,m6g.2xlarge,reserved_3y,no_upfront,0.1598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:57.513288 +AWS,eu-central-1,m6g.2xlarge,reserved_3y,partial_upfront,0.1598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:42.681647 +AWS,eu-central-1,m6g.2xlarge,spot,NA,0.17781,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093168 +AWS,eu-central-1,m6g.4xlarge,on_demand,NA,0.736,USD,AWS Pricing API,2025-11-30T09:05:04.810109 +AWS,eu-central-1,m6g.4xlarge,reserved_1y,all_upfront,0.431164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:34.012147 +AWS,eu-central-1,m6g.4xlarge,reserved_1y,no_upfront,0.431164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:18.833123 +AWS,eu-central-1,m6g.4xlarge,reserved_1y,partial_upfront,0.431164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:58.871330 +AWS,eu-central-1,m6g.4xlarge,reserved_3y,all_upfront,0.143721,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:30.169732 +AWS,eu-central-1,m6g.4xlarge,reserved_3y,no_upfront,0.143721,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:24.498638 +AWS,eu-central-1,m6g.4xlarge,reserved_3y,partial_upfront,0.143721,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:08.939273 +AWS,eu-central-1,m6g.4xlarge,spot,NA,0.318535,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093954 +AWS,eu-central-1,m6g.8xlarge,on_demand,NA,1.472,USD,AWS Pricing API,2025-11-30T09:04:45.629378 +AWS,eu-central-1,m6g.8xlarge,reserved_1y,all_upfront,0.879954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:14.889985 +AWS,eu-central-1,m6g.8xlarge,reserved_1y,no_upfront,0.879954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:59.605651 +AWS,eu-central-1,m6g.8xlarge,reserved_1y,partial_upfront,0.879954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:39.955242 +AWS,eu-central-1,m6g.8xlarge,reserved_3y,all_upfront,0.586651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:11.581183 +AWS,eu-central-1,m6g.8xlarge,reserved_3y,no_upfront,0.586651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:05.153329 +AWS,eu-central-1,m6g.8xlarge,reserved_3y,partial_upfront,0.586651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:50.105970 +AWS,eu-central-1,m6g.8xlarge,spot,NA,0.653184,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093363 +AWS,eu-central-1,m6g.large,on_demand,NA,0.092,USD,AWS Pricing API,2025-11-30T09:04:22.425653 +AWS,eu-central-1,m6g.large,reserved_1y,all_upfront,0.0701,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:52.031348 +AWS,eu-central-1,m6g.large,reserved_1y,no_upfront,0.0701,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:36.243505 +AWS,eu-central-1,m6g.large,reserved_1y,partial_upfront,0.0701,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:17.121969 +AWS,eu-central-1,m6g.large,reserved_3y,all_upfront,0.0701,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:49.066229 +AWS,eu-central-1,m6g.large,reserved_3y,no_upfront,0.0701,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:41.779676 +AWS,eu-central-1,m6g.large,reserved_3y,partial_upfront,0.0701,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:27.362382 +AWS,eu-central-1,m6g.large,spot,NA,0.040085,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092658 +AWS,eu-central-1,m6g.xlarge,on_demand,NA,0.184,USD,AWS Pricing API,2025-11-30T09:04:36.271752 +AWS,eu-central-1,m6g.xlarge,reserved_1y,all_upfront,0.177177,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:05.705961 +AWS,eu-central-1,m6g.xlarge,reserved_1y,no_upfront,0.177177,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:50.204495 +AWS,eu-central-1,m6g.xlarge,reserved_1y,partial_upfront,0.177177,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:30.722825 +AWS,eu-central-1,m6g.xlarge,reserved_3y,all_upfront,0.088592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:02.491569 +AWS,eu-central-1,m6g.xlarge,reserved_3y,no_upfront,0.088592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:55.720177 +AWS,eu-central-1,m6g.xlarge,reserved_3y,partial_upfront,0.088592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:40.938629 +AWS,eu-central-1,m6g.xlarge,spot,NA,0.059713,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093117 +AWS,eu-central-1,m6gd.12xlarge,on_demand,NA,2.616,USD,AWS Pricing API,2025-11-30T09:04:54.416679 +AWS,eu-central-1,m6gd.12xlarge,reserved_1y,all_upfront,1.528767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:23.637774 +AWS,eu-central-1,m6gd.12xlarge,reserved_1y,no_upfront,1.528767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:08.416570 +AWS,eu-central-1,m6gd.12xlarge,reserved_1y,partial_upfront,1.528767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:48.600044 +AWS,eu-central-1,m6gd.12xlarge,reserved_3y,all_upfront,0.509589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:20.070242 +AWS,eu-central-1,m6gd.12xlarge,reserved_3y,no_upfront,0.509589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:14.021773 +AWS,eu-central-1,m6gd.12xlarge,reserved_3y,partial_upfront,0.509589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:58.694802 +AWS,eu-central-1,m6gd.12xlarge,spot,NA,0.738562,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093613 +AWS,eu-central-1,m6gd.16xlarge,on_demand,NA,3.488,USD,AWS Pricing API,2025-11-30T09:04:56.747406 +AWS,eu-central-1,m6gd.16xlarge,reserved_1y,all_upfront,2.1839,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:25.935016 +AWS,eu-central-1,m6gd.16xlarge,reserved_1y,no_upfront,2.1839,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:10.759089 +AWS,eu-central-1,m6gd.16xlarge,reserved_1y,partial_upfront,2.1839,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:50.923111 +AWS,eu-central-1,m6gd.16xlarge,reserved_3y,all_upfront,2.1839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:22.333161 +AWS,eu-central-1,m6gd.16xlarge,reserved_3y,no_upfront,2.1839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:16.376448 +AWS,eu-central-1,m6gd.16xlarge,reserved_3y,partial_upfront,2.1839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:01.005940 +AWS,eu-central-1,m6gd.16xlarge,spot,NA,1.278304,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093680 +AWS,eu-central-1,m6gd.2xlarge,on_demand,NA,0.436,USD,AWS Pricing API,2025-11-30T09:04:24.582300 +AWS,eu-central-1,m6gd.2xlarge,reserved_1y,all_upfront,0.357,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:54.191756 +AWS,eu-central-1,m6gd.2xlarge,reserved_1y,no_upfront,0.357,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:38.440412 +AWS,eu-central-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.357,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:19.284135 +AWS,eu-central-1,m6gd.2xlarge,reserved_3y,all_upfront,0.357,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:51.209533 +AWS,eu-central-1,m6gd.2xlarge,reserved_3y,no_upfront,0.357,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:43.979480 +AWS,eu-central-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.357,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:29.517871 +AWS,eu-central-1,m6gd.2xlarge,spot,NA,0.207364,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092721 +AWS,eu-central-1,m6gd.4xlarge,on_demand,NA,0.872,USD,AWS Pricing API,2025-11-30T09:04:51.533411 +AWS,eu-central-1,m6gd.4xlarge,reserved_1y,all_upfront,0.3802,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:20.763062 +AWS,eu-central-1,m6gd.4xlarge,reserved_1y,no_upfront,0.3802,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:05.530947 +AWS,eu-central-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.3802,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:45.736987 +AWS,eu-central-1,m6gd.4xlarge,reserved_3y,all_upfront,0.3802,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:17.278298 +AWS,eu-central-1,m6gd.4xlarge,reserved_3y,no_upfront,0.3802,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:11.136732 +AWS,eu-central-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.3802,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:55.881033 +AWS,eu-central-1,m6gd.4xlarge,spot,NA,0.348901,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093542 +AWS,eu-central-1,m6gd.8xlarge,on_demand,NA,1.744,USD,AWS Pricing API,2025-11-30T09:04:13.290976 +AWS,eu-central-1,m6gd.8xlarge,reserved_1y,all_upfront,0.7604,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:42.924792 +AWS,eu-central-1,m6gd.8xlarge,reserved_1y,no_upfront,0.7604,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:27.069493 +AWS,eu-central-1,m6gd.8xlarge,reserved_1y,partial_upfront,0.7604,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:08.085606 +AWS,eu-central-1,m6gd.8xlarge,reserved_3y,all_upfront,0.7604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:40.133029 +AWS,eu-central-1,m6gd.8xlarge,reserved_3y,no_upfront,0.7604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:32.524635 +AWS,eu-central-1,m6gd.8xlarge,reserved_3y,partial_upfront,0.7604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:18.378378 +AWS,eu-central-1,m6gd.8xlarge,spot,NA,0.599071,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092376 +AWS,eu-central-1,m6gd.large,on_demand,NA,0.109,USD,AWS Pricing API,2025-11-30T09:04:34.883327 +AWS,eu-central-1,m6gd.large,reserved_1y,all_upfront,0.065034,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:04.342624 +AWS,eu-central-1,m6gd.large,reserved_1y,no_upfront,0.065034,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:48.792520 +AWS,eu-central-1,m6gd.large,reserved_1y,partial_upfront,0.065034,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:29.379019 +AWS,eu-central-1,m6gd.large,reserved_3y,all_upfront,0.043345,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:01.139377 +AWS,eu-central-1,m6gd.large,reserved_3y,no_upfront,0.043345,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:54.348791 +AWS,eu-central-1,m6gd.large,reserved_3y,partial_upfront,0.043345,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:39.595705 +AWS,eu-central-1,m6gd.large,spot,NA,0.042016,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093051 +AWS,eu-central-1,m6gd.xlarge,on_demand,NA,0.218,USD,AWS Pricing API,2025-11-30T09:04:27.989916 +AWS,eu-central-1,m6gd.xlarge,reserved_1y,all_upfront,0.1785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:57.568942 +AWS,eu-central-1,m6gd.xlarge,reserved_1y,no_upfront,0.1785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:41.860388 +AWS,eu-central-1,m6gd.xlarge,reserved_1y,partial_upfront,0.1785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:22.659972 +AWS,eu-central-1,m6gd.xlarge,reserved_3y,all_upfront,0.1785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:54.501929 +AWS,eu-central-1,m6gd.xlarge,reserved_3y,no_upfront,0.1785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:47.453275 +AWS,eu-central-1,m6gd.xlarge,reserved_3y,partial_upfront,0.1785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:32.865814 +AWS,eu-central-1,m6gd.xlarge,spot,NA,0.107478,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092805 +AWS,eu-central-1,m6i.12xlarge,on_demand,NA,2.76,USD,AWS Pricing API,2025-11-30T09:04:14.104084 +AWS,eu-central-1,m6i.12xlarge,reserved_1y,all_upfront,1.43555,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:43.743184 +AWS,eu-central-1,m6i.12xlarge,reserved_1y,no_upfront,1.43555,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:27.886799 +AWS,eu-central-1,m6i.12xlarge,reserved_1y,partial_upfront,1.43555,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:08.882646 +AWS,eu-central-1,m6i.12xlarge,reserved_3y,all_upfront,1.43555,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:40.946572 +AWS,eu-central-1,m6i.12xlarge,reserved_3y,no_upfront,1.43555,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:33.350911 +AWS,eu-central-1,m6i.12xlarge,reserved_3y,partial_upfront,1.43555,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:19.176481 +AWS,eu-central-1,m6i.12xlarge,spot,NA,1.239737,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092388 +AWS,eu-central-1,m6i.16xlarge,on_demand,NA,3.68,USD,AWS Pricing API,2025-11-30T09:04:28.688395 +AWS,eu-central-1,m6i.16xlarge,reserved_1y,all_upfront,3.091179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:58.240514 +AWS,eu-central-1,m6i.16xlarge,reserved_1y,no_upfront,3.091179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:42.548234 +AWS,eu-central-1,m6i.16xlarge,reserved_1y,partial_upfront,3.091179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:23.335953 +AWS,eu-central-1,m6i.16xlarge,reserved_3y,all_upfront,1.545593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:55.164262 +AWS,eu-central-1,m6i.16xlarge,reserved_3y,no_upfront,1.545593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:48.141983 +AWS,eu-central-1,m6i.16xlarge,reserved_3y,partial_upfront,1.545593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:33.541743 +AWS,eu-central-1,m6i.16xlarge,spot,NA,1.721985,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092898 +AWS,eu-central-1,m6i.24xlarge,on_demand,NA,5.52,USD,AWS Pricing API,2025-11-30T09:04:30.189078 +AWS,eu-central-1,m6i.24xlarge,reserved_1y,all_upfront,2.50387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:59.732638 +AWS,eu-central-1,m6i.24xlarge,reserved_1y,no_upfront,2.50387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:44.118167 +AWS,eu-central-1,m6i.24xlarge,reserved_1y,partial_upfront,2.50387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:24.804996 +AWS,eu-central-1,m6i.24xlarge,reserved_3y,all_upfront,2.50387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:56.621928 +AWS,eu-central-1,m6i.24xlarge,reserved_3y,no_upfront,2.50387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:49.659410 +AWS,eu-central-1,m6i.24xlarge,reserved_3y,partial_upfront,2.50387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:35.008427 +AWS,eu-central-1,m6i.24xlarge,spot,NA,1.71727,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092922 +AWS,eu-central-1,m6i.2xlarge,on_demand,NA,0.46,USD,AWS Pricing API,2025-11-30T09:04:49.358602 +AWS,eu-central-1,m6i.2xlarge,reserved_1y,all_upfront,0.334029,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:18.589758 +AWS,eu-central-1,m6i.2xlarge,reserved_1y,no_upfront,0.334029,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:03.335232 +AWS,eu-central-1,m6i.2xlarge,reserved_1y,partial_upfront,0.334029,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:43.601010 +AWS,eu-central-1,m6i.2xlarge,reserved_3y,all_upfront,0.22269,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:15.159983 +AWS,eu-central-1,m6i.2xlarge,reserved_3y,no_upfront,0.22269,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:08.918702 +AWS,eu-central-1,m6i.2xlarge,reserved_3y,partial_upfront,0.22269,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:53.740491 +AWS,eu-central-1,m6i.2xlarge,spot,NA,0.203773,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093485 +AWS,eu-central-1,m6i.32xlarge,on_demand,NA,7.36,USD,AWS Pricing API,2025-11-30T09:05:06.052028 +AWS,eu-central-1,m6i.32xlarge,reserved_1y,all_upfront,4.86864,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:35.238503 +AWS,eu-central-1,m6i.32xlarge,reserved_1y,no_upfront,4.86864,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:20.065322 +AWS,eu-central-1,m6i.32xlarge,reserved_1y,partial_upfront,4.86864,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:00.093105 +AWS,eu-central-1,m6i.32xlarge,reserved_3y,all_upfront,4.86864,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:31.369492 +AWS,eu-central-1,m6i.32xlarge,reserved_3y,no_upfront,4.86864,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:25.743627 +AWS,eu-central-1,m6i.32xlarge,reserved_3y,partial_upfront,4.86864,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:10.154592 +AWS,eu-central-1,m6i.32xlarge,spot,NA,1.609892,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093973 +AWS,eu-central-1,m6i.4xlarge,on_demand,NA,0.92,USD,AWS Pricing API,2025-11-30T09:04:16.286644 +AWS,eu-central-1,m6i.4xlarge,reserved_1y,all_upfront,0.41731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:45.911615 +AWS,eu-central-1,m6i.4xlarge,reserved_1y,no_upfront,0.41731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:30.073619 +AWS,eu-central-1,m6i.4xlarge,reserved_1y,partial_upfront,0.41731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:11.036155 +AWS,eu-central-1,m6i.4xlarge,reserved_3y,all_upfront,0.41731,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:43.067309 +AWS,eu-central-1,m6i.4xlarge,reserved_3y,no_upfront,0.41731,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:35.547226 +AWS,eu-central-1,m6i.4xlarge,reserved_3y,partial_upfront,0.41731,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:21.325152 +AWS,eu-central-1,m6i.4xlarge,spot,NA,0.442399,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092489 +AWS,eu-central-1,m6i.8xlarge,on_demand,NA,1.84,USD,AWS Pricing API,2025-11-30T09:04:21.060807 +AWS,eu-central-1,m6i.8xlarge,reserved_1y,all_upfront,0.95704,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:50.657417 +AWS,eu-central-1,m6i.8xlarge,reserved_1y,no_upfront,0.95704,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:34.864791 +AWS,eu-central-1,m6i.8xlarge,reserved_1y,partial_upfront,0.95704,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:15.765874 +AWS,eu-central-1,m6i.8xlarge,reserved_3y,all_upfront,0.95704,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:47.734934 +AWS,eu-central-1,m6i.8xlarge,reserved_3y,no_upfront,0.95704,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:40.383585 +AWS,eu-central-1,m6i.8xlarge,reserved_3y,partial_upfront,0.95704,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:26.021939 +AWS,eu-central-1,m6i.8xlarge,spot,NA,0.776472,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092612 +AWS,eu-central-1,m6i.large,on_demand,NA,0.115,USD,AWS Pricing API,2025-11-30T09:04:31.691076 +AWS,eu-central-1,m6i.large,reserved_1y,all_upfront,0.071005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:01.210672 +AWS,eu-central-1,m6i.large,reserved_1y,no_upfront,0.071005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:45.622090 +AWS,eu-central-1,m6i.large,reserved_1y,partial_upfront,0.071005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:26.277402 +AWS,eu-central-1,m6i.large,reserved_3y,all_upfront,0.023668,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:58.091651 +AWS,eu-central-1,m6i.large,reserved_3y,no_upfront,0.023668,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:51.178881 +AWS,eu-central-1,m6i.large,reserved_3y,partial_upfront,0.023668,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:36.493401 +AWS,eu-central-1,m6i.large,spot,NA,0.049982,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092975 +AWS,eu-central-1,m6i.xlarge,on_demand,NA,0.23,USD,AWS Pricing API,2025-11-30T09:04:07.555922 +AWS,eu-central-1,m6i.xlarge,reserved_1y,all_upfront,0.15215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:37.179259 +AWS,eu-central-1,m6i.xlarge,reserved_1y,no_upfront,0.15215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:21.319627 +AWS,eu-central-1,m6i.xlarge,reserved_1y,partial_upfront,0.15215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:02.399653 +AWS,eu-central-1,m6i.xlarge,reserved_3y,all_upfront,0.15215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:34.489013 +AWS,eu-central-1,m6i.xlarge,reserved_3y,no_upfront,0.15215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:26.728241 +AWS,eu-central-1,m6i.xlarge,reserved_3y,partial_upfront,0.15215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:12.706525 +AWS,eu-central-1,m6i.xlarge,spot,NA,0.104579,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092188 +AWS,eu-central-1,m6id.12xlarge,on_demand,NA,3.4272,USD,AWS Pricing API,2025-11-30T09:04:45.765330 +AWS,eu-central-1,m6id.12xlarge,reserved_1y,all_upfront,2.015183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:15.024433 +AWS,eu-central-1,m6id.12xlarge,reserved_1y,no_upfront,2.015183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:59.746650 +AWS,eu-central-1,m6id.12xlarge,reserved_1y,partial_upfront,2.015183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:40.090560 +AWS,eu-central-1,m6id.12xlarge,reserved_3y,all_upfront,0.671728,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:11.713951 +AWS,eu-central-1,m6id.12xlarge,reserved_3y,no_upfront,0.671728,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:05.301105 +AWS,eu-central-1,m6id.12xlarge,reserved_3y,partial_upfront,0.671728,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:50.239054 +AWS,eu-central-1,m6id.12xlarge,spot,NA,1.415775,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093400 +AWS,eu-central-1,m6id.16xlarge,on_demand,NA,4.5696,USD,AWS Pricing API,2025-11-30T09:04:12.743162 +AWS,eu-central-1,m6id.16xlarge,reserved_1y,all_upfront,3.485731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:42.364210 +AWS,eu-central-1,m6id.16xlarge,reserved_1y,no_upfront,3.485731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:26.526036 +AWS,eu-central-1,m6id.16xlarge,reserved_1y,partial_upfront,3.485731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:07.548772 +AWS,eu-central-1,m6id.16xlarge,reserved_3y,all_upfront,1.16191,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:39.609606 +AWS,eu-central-1,m6id.16xlarge,reserved_3y,no_upfront,1.16191,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:31.975320 +AWS,eu-central-1,m6id.16xlarge,reserved_3y,partial_upfront,1.16191,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:17.841049 +AWS,eu-central-1,m6id.16xlarge,spot,NA,1.87092,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092354 +AWS,eu-central-1,m6id.24xlarge,on_demand,NA,6.8544,USD,AWS Pricing API,2025-11-30T09:04:16.974252 +AWS,eu-central-1,m6id.24xlarge,reserved_1y,all_upfront,5.602,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:46.587802 +AWS,eu-central-1,m6id.24xlarge,reserved_1y,no_upfront,5.602,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:30.756672 +AWS,eu-central-1,m6id.24xlarge,reserved_1y,partial_upfront,5.602,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:11.711897 +AWS,eu-central-1,m6id.24xlarge,reserved_3y,all_upfront,5.602,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:43.737771 +AWS,eu-central-1,m6id.24xlarge,reserved_3y,no_upfront,5.602,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:36.234993 +AWS,eu-central-1,m6id.24xlarge,reserved_3y,partial_upfront,5.602,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:22.000368 +AWS,eu-central-1,m6id.24xlarge,spot,NA,2.353118,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092476 +AWS,eu-central-1,m6id.2xlarge,on_demand,NA,0.5712,USD,AWS Pricing API,2025-11-30T09:04:09.341219 +AWS,eu-central-1,m6id.2xlarge,reserved_1y,all_upfront,0.35986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:38.943705 +AWS,eu-central-1,m6id.2xlarge,reserved_1y,no_upfront,0.35986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:23.103571 +AWS,eu-central-1,m6id.2xlarge,reserved_1y,partial_upfront,0.35986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:04.161294 +AWS,eu-central-1,m6id.2xlarge,reserved_3y,all_upfront,0.35986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:36.224089 +AWS,eu-central-1,m6id.2xlarge,reserved_3y,no_upfront,0.35986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:28.531752 +AWS,eu-central-1,m6id.2xlarge,reserved_3y,partial_upfront,0.35986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:14.456889 +AWS,eu-central-1,m6id.2xlarge,spot,NA,0.244645,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092246 +AWS,eu-central-1,m6id.32xlarge,on_demand,NA,9.1392,USD,AWS Pricing API,2025-11-30T09:04:49.629859 +AWS,eu-central-1,m6id.32xlarge,reserved_1y,all_upfront,7.113669,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:18.862424 +AWS,eu-central-1,m6id.32xlarge,reserved_1y,no_upfront,7.113669,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:03.614583 +AWS,eu-central-1,m6id.32xlarge,reserved_1y,partial_upfront,7.113669,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:43.873775 +AWS,eu-central-1,m6id.32xlarge,reserved_3y,all_upfront,4.742436,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:15.425298 +AWS,eu-central-1,m6id.32xlarge,reserved_3y,no_upfront,4.742436,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:09.193559 +AWS,eu-central-1,m6id.32xlarge,reserved_3y,partial_upfront,4.742436,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:54.015646 +AWS,eu-central-1,m6id.32xlarge,spot,NA,2.366199,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093513 +AWS,eu-central-1,m6id.4xlarge,on_demand,NA,1.1424,USD,AWS Pricing API,2025-11-30T09:05:12.203631 +AWS,eu-central-1,m6id.4xlarge,reserved_1y,all_upfront,0.871461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:41.366540 +AWS,eu-central-1,m6id.4xlarge,reserved_1y,no_upfront,0.871461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:26.236089 +AWS,eu-central-1,m6id.4xlarge,reserved_1y,partial_upfront,0.871461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:06.201998 +AWS,eu-central-1,m6id.4xlarge,reserved_3y,all_upfront,0.290487,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:37.379489 +AWS,eu-central-1,m6id.4xlarge,reserved_3y,no_upfront,0.290487,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:31.971448 +AWS,eu-central-1,m6id.4xlarge,reserved_3y,partial_upfront,0.290487,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:16.224903 +AWS,eu-central-1,m6id.4xlarge,spot,NA,0.461666,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094182 +AWS,eu-central-1,m6id.8xlarge,on_demand,NA,2.2848,USD,AWS Pricing API,2025-11-30T09:04:44.382914 +AWS,eu-central-1,m6id.8xlarge,reserved_1y,all_upfront,1.86733,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:13.674913 +AWS,eu-central-1,m6id.8xlarge,reserved_1y,no_upfront,1.86733,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:58.363101 +AWS,eu-central-1,m6id.8xlarge,reserved_1y,partial_upfront,1.86733,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:38.724768 +AWS,eu-central-1,m6id.8xlarge,reserved_3y,all_upfront,1.86733,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:10.364633 +AWS,eu-central-1,m6id.8xlarge,reserved_3y,no_upfront,1.86733,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:03.898928 +AWS,eu-central-1,m6id.8xlarge,reserved_3y,partial_upfront,1.86733,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:48.896727 +AWS,eu-central-1,m6id.8xlarge,spot,NA,0.892032,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093359 +AWS,eu-central-1,m6id.large,on_demand,NA,0.1428,USD,AWS Pricing API,2025-11-30T09:05:13.288375 +AWS,eu-central-1,m6id.large,reserved_1y,all_upfront,0.11671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:42.452020 +AWS,eu-central-1,m6id.large,reserved_1y,no_upfront,0.11671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:27.333108 +AWS,eu-central-1,m6id.large,reserved_1y,partial_upfront,0.11671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:07.282259 +AWS,eu-central-1,m6id.large,reserved_3y,all_upfront,0.11671,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:38.444069 +AWS,eu-central-1,m6id.large,reserved_3y,no_upfront,0.11671,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:33.069258 +AWS,eu-central-1,m6id.large,reserved_3y,partial_upfront,0.11671,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:17.296427 +AWS,eu-central-1,m6id.large,spot,NA,0.059341,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094210 +AWS,eu-central-1,m6id.xlarge,on_demand,NA,0.2856,USD,AWS Pricing API,2025-11-30T09:04:16.003154 +AWS,eu-central-1,m6id.xlarge,reserved_1y,all_upfront,0.17993,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:45.645291 +AWS,eu-central-1,m6id.xlarge,reserved_1y,no_upfront,0.17993,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:29.797927 +AWS,eu-central-1,m6id.xlarge,reserved_1y,partial_upfront,0.17993,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:10.768230 +AWS,eu-central-1,m6id.xlarge,reserved_3y,all_upfront,0.17993,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:42.800389 +AWS,eu-central-1,m6id.xlarge,reserved_3y,no_upfront,0.17993,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:35.271384 +AWS,eu-central-1,m6id.xlarge,reserved_3y,partial_upfront,0.17993,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:21.060617 +AWS,eu-central-1,m6id.xlarge,spot,NA,0.123194,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092428 +AWS,eu-central-1,m6idn.12xlarge,on_demand,NA,4.54896,USD,AWS Pricing API,2025-11-30T09:04:35.988822 +AWS,eu-central-1,m6idn.12xlarge,reserved_1y,all_upfront,2.4363,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:05.439596 +AWS,eu-central-1,m6idn.12xlarge,reserved_1y,no_upfront,2.4363,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:49.910492 +AWS,eu-central-1,m6idn.12xlarge,reserved_1y,partial_upfront,2.4363,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:30.454914 +AWS,eu-central-1,m6idn.12xlarge,reserved_3y,all_upfront,2.4363,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:02.222518 +AWS,eu-central-1,m6idn.12xlarge,reserved_3y,no_upfront,2.4363,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:55.445661 +AWS,eu-central-1,m6idn.12xlarge,reserved_3y,partial_upfront,2.4363,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:40.672109 +AWS,eu-central-1,m6idn.12xlarge,spot,NA,1.608035,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093097 +AWS,eu-central-1,m6idn.16xlarge,on_demand,NA,6.06528,USD,AWS Pricing API,2025-11-30T09:04:59.331408 +AWS,eu-central-1,m6idn.16xlarge,reserved_1y,all_upfront,3.24839,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:28.597260 +AWS,eu-central-1,m6idn.16xlarge,reserved_1y,no_upfront,3.24839,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:13.374573 +AWS,eu-central-1,m6idn.16xlarge,reserved_1y,partial_upfront,3.24839,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:53.500580 +AWS,eu-central-1,m6idn.16xlarge,reserved_3y,all_upfront,3.24839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:24.855915 +AWS,eu-central-1,m6idn.16xlarge,reserved_3y,no_upfront,3.24839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:19.016916 +AWS,eu-central-1,m6idn.16xlarge,reserved_3y,partial_upfront,3.24839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:03.561844 +AWS,eu-central-1,m6idn.16xlarge,spot,NA,1.990491,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093771 +AWS,eu-central-1,m6idn.24xlarge,on_demand,NA,9.09792,USD,AWS Pricing API,2025-11-30T09:04:41.916164 +AWS,eu-central-1,m6idn.24xlarge,reserved_1y,all_upfront,13.264269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:11.252032 +AWS,eu-central-1,m6idn.24xlarge,reserved_1y,no_upfront,13.264269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:55.868646 +AWS,eu-central-1,m6idn.24xlarge,reserved_1y,partial_upfront,13.264269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:36.280568 +AWS,eu-central-1,m6idn.24xlarge,reserved_3y,all_upfront,4.421423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:07.967191 +AWS,eu-central-1,m6idn.24xlarge,reserved_3y,no_upfront,4.421423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:01.401510 +AWS,eu-central-1,m6idn.24xlarge,reserved_3y,partial_upfront,4.421423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:46.475450 +AWS,eu-central-1,m6idn.24xlarge,spot,NA,2.634757,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093277 +AWS,eu-central-1,m6idn.2xlarge,on_demand,NA,0.75816,USD,AWS Pricing API,2025-11-30T09:04:22.151070 +AWS,eu-central-1,m6idn.2xlarge,reserved_1y,all_upfront,0.454847,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:51.753107 +AWS,eu-central-1,m6idn.2xlarge,reserved_1y,no_upfront,0.454847,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:35.969929 +AWS,eu-central-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.454847,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:16.851801 +AWS,eu-central-1,m6idn.2xlarge,reserved_3y,all_upfront,0.303249,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:48.798903 +AWS,eu-central-1,m6idn.2xlarge,reserved_3y,no_upfront,0.303249,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:41.491321 +AWS,eu-central-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.303249,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:27.093869 +AWS,eu-central-1,m6idn.2xlarge,spot,NA,0.314652,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092650 +AWS,eu-central-1,m6idn.32xlarge,on_demand,NA,12.13056,USD,AWS Pricing API,2025-11-30T09:04:42.739399 +AWS,eu-central-1,m6idn.32xlarge,reserved_1y,all_upfront,12.031058,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:12.057957 +AWS,eu-central-1,m6idn.32xlarge,reserved_1y,no_upfront,12.031058,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:56.693404 +AWS,eu-central-1,m6idn.32xlarge,reserved_1y,partial_upfront,12.031058,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:37.097993 +AWS,eu-central-1,m6idn.32xlarge,reserved_3y,all_upfront,6.015533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:08.767428 +AWS,eu-central-1,m6idn.32xlarge,reserved_3y,no_upfront,6.015533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:02.234659 +AWS,eu-central-1,m6idn.32xlarge,reserved_3y,partial_upfront,6.015533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:47.274521 +AWS,eu-central-1,m6idn.32xlarge,spot,NA,3.225367,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093305 +AWS,eu-central-1,m6idn.4xlarge,on_demand,NA,1.51632,USD,AWS Pricing API,2025-11-30T09:04:38.890369 +AWS,eu-central-1,m6idn.4xlarge,reserved_1y,all_upfront,0.8121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:08.280299 +AWS,eu-central-1,m6idn.4xlarge,reserved_1y,no_upfront,0.8121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:52.842173 +AWS,eu-central-1,m6idn.4xlarge,reserved_1y,partial_upfront,0.8121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:33.306942 +AWS,eu-central-1,m6idn.4xlarge,reserved_3y,all_upfront,0.8121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:05.045786 +AWS,eu-central-1,m6idn.4xlarge,reserved_3y,no_upfront,0.8121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:58.340973 +AWS,eu-central-1,m6idn.4xlarge,reserved_3y,partial_upfront,0.8121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:43.493995 +AWS,eu-central-1,m6idn.4xlarge,spot,NA,0.845923,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093200 +AWS,eu-central-1,m6idn.8xlarge,on_demand,NA,3.03264,USD,AWS Pricing API,2025-11-30T09:04:06.874151 +AWS,eu-central-1,m6idn.8xlarge,reserved_1y,all_upfront,1.3101,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:36.491964 +AWS,eu-central-1,m6idn.8xlarge,reserved_1y,no_upfront,1.3101,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:20.633417 +AWS,eu-central-1,m6idn.8xlarge,reserved_1y,partial_upfront,1.3101,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:01.686913 +AWS,eu-central-1,m6idn.8xlarge,reserved_3y,all_upfront,1.3101,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:33.816311 +AWS,eu-central-1,m6idn.8xlarge,reserved_3y,no_upfront,1.3101,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:26.021228 +AWS,eu-central-1,m6idn.8xlarge,reserved_3y,partial_upfront,1.3101,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:12.033554 +AWS,eu-central-1,m6idn.8xlarge,spot,NA,1.022965,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092182 +AWS,eu-central-1,m6idn.large,on_demand,NA,0.18954,USD,AWS Pricing API,2025-11-30T09:04:53.315194 +AWS,eu-central-1,m6idn.large,reserved_1y,all_upfront,0.146548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:22.552942 +AWS,eu-central-1,m6idn.large,reserved_1y,no_upfront,0.146548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:07.314115 +AWS,eu-central-1,m6idn.large,reserved_1y,partial_upfront,0.146548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:47.524823 +AWS,eu-central-1,m6idn.large,reserved_3y,all_upfront,0.097689,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:18.996369 +AWS,eu-central-1,m6idn.large,reserved_3y,no_upfront,0.097689,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:12.918457 +AWS,eu-central-1,m6idn.large,reserved_3y,partial_upfront,0.097689,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:57.617704 +AWS,eu-central-1,m6idn.large,spot,NA,0.072659,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093617 +AWS,eu-central-1,m6idn.xlarge,on_demand,NA,0.37908,USD,AWS Pricing API,2025-11-30T09:04:36.135683 +AWS,eu-central-1,m6idn.xlarge,reserved_1y,all_upfront,0.20302,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:05.573322 +AWS,eu-central-1,m6idn.xlarge,reserved_1y,no_upfront,0.20302,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:50.057525 +AWS,eu-central-1,m6idn.xlarge,reserved_1y,partial_upfront,0.20302,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:30.587303 +AWS,eu-central-1,m6idn.xlarge,reserved_3y,all_upfront,0.20302,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:02.357873 +AWS,eu-central-1,m6idn.xlarge,reserved_3y,no_upfront,0.20302,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:55.583466 +AWS,eu-central-1,m6idn.xlarge,reserved_3y,partial_upfront,0.20302,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:40.805388 +AWS,eu-central-1,m6idn.xlarge,spot,NA,0.149674,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093101 +AWS,eu-central-1,m6in.12xlarge,on_demand,NA,3.95928,USD,AWS Pricing API,2025-11-30T09:04:03.992544 +AWS,eu-central-1,m6in.12xlarge,reserved_1y,all_upfront,3.167431,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:33.650838 +AWS,eu-central-1,m6in.12xlarge,reserved_1y,no_upfront,3.167431,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:17.746856 +AWS,eu-central-1,m6in.12xlarge,reserved_1y,partial_upfront,3.167431,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:58.786771 +AWS,eu-central-1,m6in.12xlarge,reserved_3y,all_upfront,1.583717,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:30.950129 +AWS,eu-central-1,m6in.12xlarge,reserved_3y,no_upfront,1.583717,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:23.123457 +AWS,eu-central-1,m6in.12xlarge,reserved_3y,partial_upfront,1.583717,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:09.221439 +AWS,eu-central-1,m6in.12xlarge,spot,NA,1.474397,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092088 +AWS,eu-central-1,m6in.16xlarge,on_demand,NA,5.27904,USD,AWS Pricing API,2025-11-30T09:04:13.963312 +AWS,eu-central-1,m6in.16xlarge,reserved_1y,all_upfront,2.28055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:43.606912 +AWS,eu-central-1,m6in.16xlarge,reserved_1y,no_upfront,2.28055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:27.750157 +AWS,eu-central-1,m6in.16xlarge,reserved_1y,partial_upfront,2.28055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:08.750269 +AWS,eu-central-1,m6in.16xlarge,reserved_3y,all_upfront,2.28055,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:40.812340 +AWS,eu-central-1,m6in.16xlarge,reserved_3y,no_upfront,2.28055,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:33.213046 +AWS,eu-central-1,m6in.16xlarge,reserved_3y,partial_upfront,2.28055,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:19.045332 +AWS,eu-central-1,m6in.16xlarge,spot,NA,1.764907,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092402 +AWS,eu-central-1,m6in.24xlarge,on_demand,NA,7.91856,USD,AWS Pricing API,2025-11-30T09:04:55.789237 +AWS,eu-central-1,m6in.24xlarge,reserved_1y,all_upfront,6.334852,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:24.984313 +AWS,eu-central-1,m6in.24xlarge,reserved_1y,no_upfront,6.334852,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:09.789467 +AWS,eu-central-1,m6in.24xlarge,reserved_1y,partial_upfront,6.334852,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:49.961169 +AWS,eu-central-1,m6in.24xlarge,reserved_3y,all_upfront,3.167424,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:21.402439 +AWS,eu-central-1,m6in.24xlarge,reserved_3y,no_upfront,3.167424,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:15.416232 +AWS,eu-central-1,m6in.24xlarge,reserved_3y,partial_upfront,3.167424,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:00.040532 +AWS,eu-central-1,m6in.24xlarge,spot,NA,2.606616,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093676 +AWS,eu-central-1,m6in.2xlarge,on_demand,NA,0.65988,USD,AWS Pricing API,2025-11-30T09:04:20.780601 +AWS,eu-central-1,m6in.2xlarge,reserved_1y,all_upfront,0.388014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:50.384302 +AWS,eu-central-1,m6in.2xlarge,reserved_1y,no_upfront,0.388014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:34.592681 +AWS,eu-central-1,m6in.2xlarge,reserved_1y,partial_upfront,0.388014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:15.499115 +AWS,eu-central-1,m6in.2xlarge,reserved_3y,all_upfront,0.129338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:47.471815 +AWS,eu-central-1,m6in.2xlarge,reserved_3y,no_upfront,0.129338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:40.103458 +AWS,eu-central-1,m6in.2xlarge,reserved_3y,partial_upfront,0.129338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:25.757232 +AWS,eu-central-1,m6in.2xlarge,spot,NA,0.281606,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092616 +AWS,eu-central-1,m6in.32xlarge,on_demand,NA,10.55808,USD,AWS Pricing API,2025-11-30T09:04:09.476139 +AWS,eu-central-1,m6in.32xlarge,reserved_1y,all_upfront,6.65159,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:39.078356 +AWS,eu-central-1,m6in.32xlarge,reserved_1y,no_upfront,6.65159,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:23.239214 +AWS,eu-central-1,m6in.32xlarge,reserved_1y,partial_upfront,6.65159,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:04.295641 +AWS,eu-central-1,m6in.32xlarge,reserved_3y,all_upfront,6.65159,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:36.366763 +AWS,eu-central-1,m6in.32xlarge,reserved_3y,no_upfront,6.65159,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:28.669070 +AWS,eu-central-1,m6in.32xlarge,reserved_3y,partial_upfront,6.65159,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:14.590802 +AWS,eu-central-1,m6in.32xlarge,spot,NA,2.818307,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092268 +AWS,eu-central-1,m6in.4xlarge,on_demand,NA,1.31976,USD,AWS Pricing API,2025-11-30T09:04:19.568130 +AWS,eu-central-1,m6in.4xlarge,reserved_1y,all_upfront,1.000913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:49.171720 +AWS,eu-central-1,m6in.4xlarge,reserved_1y,no_upfront,1.000913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:33.364728 +AWS,eu-central-1,m6in.4xlarge,reserved_1y,partial_upfront,1.000913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:14.293373 +AWS,eu-central-1,m6in.4xlarge,reserved_3y,all_upfront,0.333638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:46.272366 +AWS,eu-central-1,m6in.4xlarge,reserved_3y,no_upfront,0.333638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:38.861064 +AWS,eu-central-1,m6in.4xlarge,reserved_3y,partial_upfront,0.333638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:24.540889 +AWS,eu-central-1,m6in.4xlarge,spot,NA,0.582812,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092553 +AWS,eu-central-1,m6in.8xlarge,on_demand,NA,2.63952,USD,AWS Pricing API,2025-11-30T09:04:17.664179 +AWS,eu-central-1,m6in.8xlarge,reserved_1y,all_upfront,2.14486,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:47.264865 +AWS,eu-central-1,m6in.8xlarge,reserved_1y,no_upfront,2.14486,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:31.452567 +AWS,eu-central-1,m6in.8xlarge,reserved_1y,partial_upfront,2.14486,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:12.393005 +AWS,eu-central-1,m6in.8xlarge,reserved_3y,all_upfront,2.14486,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:44.400969 +AWS,eu-central-1,m6in.8xlarge,reserved_3y,no_upfront,2.14486,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:36.927838 +AWS,eu-central-1,m6in.8xlarge,reserved_3y,partial_upfront,2.14486,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:22.672418 +AWS,eu-central-1,m6in.8xlarge,spot,NA,0.972625,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092532 +AWS,eu-central-1,m6in.large,on_demand,NA,0.16497,USD,AWS Pricing API,2025-11-30T09:04:37.372431 +AWS,eu-central-1,m6in.large,reserved_1y,all_upfront,0.099033,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:06.798020 +AWS,eu-central-1,m6in.large,reserved_1y,no_upfront,0.099033,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:51.322901 +AWS,eu-central-1,m6in.large,reserved_1y,partial_upfront,0.099033,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:31.816721 +AWS,eu-central-1,m6in.large,reserved_3y,all_upfront,0.066004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:03.587310 +AWS,eu-central-1,m6in.large,reserved_3y,no_upfront,0.066004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:56.820224 +AWS,eu-central-1,m6in.large,reserved_3y,partial_upfront,0.066004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:42.008781 +AWS,eu-central-1,m6in.large,spot,NA,0.066774,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093137 +AWS,eu-central-1,m6in.xlarge,on_demand,NA,0.32994,USD,AWS Pricing API,2025-11-30T09:04:51.671892 +AWS,eu-central-1,m6in.xlarge,reserved_1y,all_upfront,0.255296,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:20.897717 +AWS,eu-central-1,m6in.xlarge,reserved_1y,no_upfront,0.255296,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:05.668514 +AWS,eu-central-1,m6in.xlarge,reserved_1y,partial_upfront,0.255296,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:45.879974 +AWS,eu-central-1,m6in.xlarge,reserved_3y,all_upfront,0.170212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:17.412930 +AWS,eu-central-1,m6in.xlarge,reserved_3y,no_upfront,0.170212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:11.273819 +AWS,eu-central-1,m6in.xlarge,reserved_3y,partial_upfront,0.170212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:56.017459 +AWS,eu-central-1,m6in.xlarge,spot,NA,0.132678,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093538 +AWS,eu-central-1,m7a.12xlarge,on_demand,NA,3.33264,USD,AWS Pricing API,2025-11-30T09:04:40.124383 +AWS,eu-central-1,m7a.12xlarge,reserved_1y,all_upfront,2.20454,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:09.496484 +AWS,eu-central-1,m7a.12xlarge,reserved_1y,no_upfront,2.20454,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:54.094528 +AWS,eu-central-1,m7a.12xlarge,reserved_1y,partial_upfront,2.20454,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:34.528745 +AWS,eu-central-1,m7a.12xlarge,reserved_3y,all_upfront,2.20454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:06.238127 +AWS,eu-central-1,m7a.12xlarge,reserved_3y,no_upfront,2.20454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:59.593349 +AWS,eu-central-1,m7a.12xlarge,reserved_3y,partial_upfront,2.20454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:44.695847 +AWS,eu-central-1,m7a.12xlarge,spot,NA,1.259981,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093208 +AWS,eu-central-1,m7a.16xlarge,on_demand,NA,4.44352,USD,AWS Pricing API,2025-11-30T09:04:56.331513 +AWS,eu-central-1,m7a.16xlarge,reserved_1y,all_upfront,2.743379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:25.528847 +AWS,eu-central-1,m7a.16xlarge,reserved_1y,no_upfront,2.743379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:10.347654 +AWS,eu-central-1,m7a.16xlarge,reserved_1y,partial_upfront,2.743379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:50.506517 +AWS,eu-central-1,m7a.16xlarge,reserved_3y,all_upfront,0.91446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:21.934198 +AWS,eu-central-1,m7a.16xlarge,reserved_3y,no_upfront,0.91446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:15.965951 +AWS,eu-central-1,m7a.16xlarge,reserved_3y,partial_upfront,0.91446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:00.599743 +AWS,eu-central-1,m7a.16xlarge,spot,NA,1.769858,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093684 +AWS,eu-central-1,m7a.24xlarge,on_demand,NA,6.66528,USD,AWS Pricing API,2025-11-30T09:05:09.196031 +AWS,eu-central-1,m7a.24xlarge,reserved_1y,all_upfront,4.40908,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:38.370988 +AWS,eu-central-1,m7a.24xlarge,reserved_1y,no_upfront,4.40908,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:23.227953 +AWS,eu-central-1,m7a.24xlarge,reserved_1y,partial_upfront,4.40908,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:03.221653 +AWS,eu-central-1,m7a.24xlarge,reserved_3y,all_upfront,4.40908,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:34.444136 +AWS,eu-central-1,m7a.24xlarge,reserved_3y,no_upfront,4.40908,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:28.923546 +AWS,eu-central-1,m7a.24xlarge,reserved_3y,partial_upfront,4.40908,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:13.245981 +AWS,eu-central-1,m7a.24xlarge,spot,NA,2.88353,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094098 +AWS,eu-central-1,m7a.2xlarge,on_demand,NA,0.55544,USD,AWS Pricing API,2025-11-30T09:04:15.593491 +AWS,eu-central-1,m7a.2xlarge,reserved_1y,all_upfront,0.466526,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:45.240061 +AWS,eu-central-1,m7a.2xlarge,reserved_1y,no_upfront,0.466526,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:29.385383 +AWS,eu-central-1,m7a.2xlarge,reserved_1y,partial_upfront,0.466526,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:10.353194 +AWS,eu-central-1,m7a.2xlarge,reserved_3y,all_upfront,0.233269,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:42.402761 +AWS,eu-central-1,m7a.2xlarge,reserved_3y,no_upfront,0.233269,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:34.856973 +AWS,eu-central-1,m7a.2xlarge,reserved_3y,partial_upfront,0.233269,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:20.654918 +AWS,eu-central-1,m7a.2xlarge,spot,NA,0.278423,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092445 +AWS,eu-central-1,m7a.32xlarge,on_demand,NA,8.88704,USD,AWS Pricing API,2025-11-30T09:04:58.663611 +AWS,eu-central-1,m7a.32xlarge,reserved_1y,all_upfront,6.77627,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:27.929490 +AWS,eu-central-1,m7a.32xlarge,reserved_1y,no_upfront,6.77627,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:12.691718 +AWS,eu-central-1,m7a.32xlarge,reserved_1y,partial_upfront,6.77627,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:52.829500 +AWS,eu-central-1,m7a.32xlarge,reserved_3y,all_upfront,6.77627,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:24.186300 +AWS,eu-central-1,m7a.32xlarge,reserved_3y,no_upfront,6.77627,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:18.331173 +AWS,eu-central-1,m7a.32xlarge,reserved_3y,partial_upfront,6.77627,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:02.890643 +AWS,eu-central-1,m7a.32xlarge,spot,NA,2.944466,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093784 +AWS,eu-central-1,m7a.48xlarge,on_demand,NA,13.33056,USD,AWS Pricing API,2025-11-30T09:04:08.661512 +AWS,eu-central-1,m7a.48xlarge,reserved_1y,all_upfront,9.680373,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:38.259890 +AWS,eu-central-1,m7a.48xlarge,reserved_1y,no_upfront,9.680373,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:22.424873 +AWS,eu-central-1,m7a.48xlarge,reserved_1y,partial_upfront,9.680373,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:03.491335 +AWS,eu-central-1,m7a.48xlarge,reserved_3y,all_upfront,6.453584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:35.555027 +AWS,eu-central-1,m7a.48xlarge,reserved_3y,no_upfront,6.453584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:27.845070 +AWS,eu-central-1,m7a.48xlarge,reserved_3y,partial_upfront,6.453584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:13.782538 +AWS,eu-central-1,m7a.48xlarge,spot,NA,3.329716,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092230 +AWS,eu-central-1,m7a.4xlarge,on_demand,NA,1.11088,USD,AWS Pricing API,2025-11-30T09:04:42.051750 +AWS,eu-central-1,m7a.4xlarge,reserved_1y,all_upfront,0.699816,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:11.386396 +AWS,eu-central-1,m7a.4xlarge,reserved_1y,no_upfront,0.699816,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:56.016189 +AWS,eu-central-1,m7a.4xlarge,reserved_1y,partial_upfront,0.699816,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:36.415625 +AWS,eu-central-1,m7a.4xlarge,reserved_3y,all_upfront,0.466559,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:08.109857 +AWS,eu-central-1,m7a.4xlarge,reserved_3y,no_upfront,0.466559,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:01.541202 +AWS,eu-central-1,m7a.4xlarge,reserved_3y,partial_upfront,0.466559,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:46.611969 +AWS,eu-central-1,m7a.4xlarge,spot,NA,0.492777,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093293 +AWS,eu-central-1,m7a.8xlarge,on_demand,NA,2.22176,USD,AWS Pricing API,2025-11-30T09:04:46.322485 +AWS,eu-central-1,m7a.8xlarge,reserved_1y,all_upfront,1.399736,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:15.565037 +AWS,eu-central-1,m7a.8xlarge,reserved_1y,no_upfront,1.399736,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:00.301311 +AWS,eu-central-1,m7a.8xlarge,reserved_1y,partial_upfront,1.399736,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:40.630855 +AWS,eu-central-1,m7a.8xlarge,reserved_3y,all_upfront,0.933145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:12.247164 +AWS,eu-central-1,m7a.8xlarge,reserved_3y,no_upfront,0.933145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:05.862838 +AWS,eu-central-1,m7a.8xlarge,reserved_3y,partial_upfront,0.933145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:50.778104 +AWS,eu-central-1,m7a.8xlarge,spot,NA,0.810057,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093433 +AWS,eu-central-1,m7a.xlarge,on_demand,NA,0.27772,USD,AWS Pricing API,2025-11-30T09:04:08.239828 +AWS,eu-central-1,m7a.xlarge,reserved_1y,all_upfront,0.12597,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:37.857674 +AWS,eu-central-1,m7a.xlarge,reserved_1y,no_upfront,0.12597,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:22.014422 +AWS,eu-central-1,m7a.xlarge,reserved_1y,partial_upfront,0.12597,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:03.079244 +AWS,eu-central-1,m7a.xlarge,reserved_3y,all_upfront,0.12597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:35.155073 +AWS,eu-central-1,m7a.xlarge,reserved_3y,no_upfront,0.12597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:27.421726 +AWS,eu-central-1,m7a.xlarge,reserved_3y,partial_upfront,0.12597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:13.380227 +AWS,eu-central-1,m7a.xlarge,spot,NA,0.125601,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092238 +AWS,eu-central-1,m7g.12xlarge,on_demand,NA,2.3462,USD,AWS Pricing API,2025-11-30T09:04:24.991046 +AWS,eu-central-1,m7g.12xlarge,reserved_1y,all_upfront,1.448516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:54.595007 +AWS,eu-central-1,m7g.12xlarge,reserved_1y,no_upfront,1.448516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:38.855509 +AWS,eu-central-1,m7g.12xlarge,reserved_1y,partial_upfront,1.448516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:19.694956 +AWS,eu-central-1,m7g.12xlarge,reserved_3y,all_upfront,0.482839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:51.605149 +AWS,eu-central-1,m7g.12xlarge,reserved_3y,no_upfront,0.482839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:44.395737 +AWS,eu-central-1,m7g.12xlarge,reserved_3y,partial_upfront,0.482839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:29.923574 +AWS,eu-central-1,m7g.12xlarge,spot,NA,0.855085,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092734 +AWS,eu-central-1,m7g.16xlarge,on_demand,NA,3.1283,USD,AWS Pricing API,2025-11-30T09:04:54.145088 +AWS,eu-central-1,m7g.16xlarge,reserved_1y,all_upfront,2.0694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:23.366829 +AWS,eu-central-1,m7g.16xlarge,reserved_1y,no_upfront,2.0694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:08.144089 +AWS,eu-central-1,m7g.16xlarge,reserved_1y,partial_upfront,2.0694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:48.333876 +AWS,eu-central-1,m7g.16xlarge,reserved_3y,all_upfront,2.0694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:19.794086 +AWS,eu-central-1,m7g.16xlarge,reserved_3y,no_upfront,2.0694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:13.746697 +AWS,eu-central-1,m7g.16xlarge,reserved_3y,partial_upfront,2.0694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:58.420977 +AWS,eu-central-1,m7g.16xlarge,spot,NA,1.197236,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093605 +AWS,eu-central-1,m7g.2xlarge,on_demand,NA,0.391,USD,AWS Pricing API,2025-11-30T09:04:16.832102 +AWS,eu-central-1,m7g.2xlarge,reserved_1y,all_upfront,0.553653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:46.454134 +AWS,eu-central-1,m7g.2xlarge,reserved_1y,no_upfront,0.553653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:30.620855 +AWS,eu-central-1,m7g.2xlarge,reserved_1y,partial_upfront,0.553653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:11.575162 +AWS,eu-central-1,m7g.2xlarge,reserved_3y,all_upfront,0.184551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:43.603067 +AWS,eu-central-1,m7g.2xlarge,reserved_3y,no_upfront,0.184551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:36.096834 +AWS,eu-central-1,m7g.2xlarge,reserved_3y,partial_upfront,0.184551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:21.866551 +AWS,eu-central-1,m7g.2xlarge,spot,NA,0.195282,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092462 +AWS,eu-central-1,m7g.4xlarge,on_demand,NA,0.7821,USD,AWS Pricing API,2025-11-30T09:05:13.834604 +AWS,eu-central-1,m7g.4xlarge,reserved_1y,all_upfront,0.5173,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:42.985312 +AWS,eu-central-1,m7g.4xlarge,reserved_1y,no_upfront,0.5173,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:27.884033 +AWS,eu-central-1,m7g.4xlarge,reserved_1y,partial_upfront,0.5173,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:07.825963 +AWS,eu-central-1,m7g.4xlarge,reserved_3y,all_upfront,0.5173,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:38.976406 +AWS,eu-central-1,m7g.4xlarge,reserved_3y,no_upfront,0.5173,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:33.619711 +AWS,eu-central-1,m7g.4xlarge,reserved_3y,partial_upfront,0.5173,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:17.831038 +AWS,eu-central-1,m7g.4xlarge,spot,NA,0.317153,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094268 +AWS,eu-central-1,m7g.8xlarge,on_demand,NA,1.5642,USD,AWS Pricing API,2025-11-30T09:04:07.966385 +AWS,eu-central-1,m7g.8xlarge,reserved_1y,all_upfront,0.985394,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:37.588635 +AWS,eu-central-1,m7g.8xlarge,reserved_1y,no_upfront,0.985394,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:21.739590 +AWS,eu-central-1,m7g.8xlarge,reserved_1y,partial_upfront,0.985394,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:02.803632 +AWS,eu-central-1,m7g.8xlarge,reserved_3y,all_upfront,0.656931,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:34.887748 +AWS,eu-central-1,m7g.8xlarge,reserved_3y,no_upfront,0.656931,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:27.142103 +AWS,eu-central-1,m7g.8xlarge,reserved_3y,partial_upfront,0.656931,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:13.107461 +AWS,eu-central-1,m7g.8xlarge,spot,NA,0.674127,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092208 +AWS,eu-central-1,m7g.large,on_demand,NA,0.0978,USD,AWS Pricing API,2025-11-30T09:04:35.704779 +AWS,eu-central-1,m7g.large,reserved_1y,all_upfront,0.071002,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:05.165557 +AWS,eu-central-1,m7g.large,reserved_1y,no_upfront,0.071002,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:49.636757 +AWS,eu-central-1,m7g.large,reserved_1y,partial_upfront,0.071002,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:30.186940 +AWS,eu-central-1,m7g.large,reserved_3y,all_upfront,0.047334,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:01.947317 +AWS,eu-central-1,m7g.large,reserved_3y,no_upfront,0.047334,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:55.170978 +AWS,eu-central-1,m7g.large,reserved_3y,partial_upfront,0.047334,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:40.402827 +AWS,eu-central-1,m7g.large,spot,NA,0.044913,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093121 +AWS,eu-central-1,m7g.xlarge,on_demand,NA,0.1955,USD,AWS Pricing API,2025-11-30T09:04:42.602627 +AWS,eu-central-1,m7g.xlarge,reserved_1y,all_upfront,0.123244,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:11.921496 +AWS,eu-central-1,m7g.xlarge,reserved_1y,no_upfront,0.123244,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:56.555586 +AWS,eu-central-1,m7g.xlarge,reserved_1y,partial_upfront,0.123244,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:36.961763 +AWS,eu-central-1,m7g.xlarge,reserved_3y,all_upfront,0.082148,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:08.635130 +AWS,eu-central-1,m7g.xlarge,reserved_3y,no_upfront,0.082148,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:02.094779 +AWS,eu-central-1,m7g.xlarge,reserved_3y,partial_upfront,0.082148,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:47.141257 +AWS,eu-central-1,m7g.xlarge,spot,NA,0.086698,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093325 +AWS,eu-central-1,m7gd.12xlarge,on_demand,NA,3.0845,USD,AWS Pricing API,2025-11-30T09:04:16.145206 +AWS,eu-central-1,m7gd.12xlarge,reserved_1y,all_upfront,2.5209,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:45.779376 +AWS,eu-central-1,m7gd.12xlarge,reserved_1y,no_upfront,2.5209,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:29.934382 +AWS,eu-central-1,m7gd.12xlarge,reserved_1y,partial_upfront,2.5209,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:10.902288 +AWS,eu-central-1,m7gd.12xlarge,reserved_3y,all_upfront,2.5209,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:42.932162 +AWS,eu-central-1,m7gd.12xlarge,reserved_3y,no_upfront,2.5209,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:35.409187 +AWS,eu-central-1,m7gd.12xlarge,reserved_3y,partial_upfront,2.5209,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:21.192388 +AWS,eu-central-1,m7gd.12xlarge,spot,NA,0.72715,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092467 +AWS,eu-central-1,m7gd.16xlarge,on_demand,NA,4.1126,USD,AWS Pricing API,2025-11-30T09:04:33.337526 +AWS,eu-central-1,m7gd.16xlarge,reserved_1y,all_upfront,3.29008,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:02.854488 +AWS,eu-central-1,m7gd.16xlarge,reserved_1y,no_upfront,3.29008,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:47.270204 +AWS,eu-central-1,m7gd.16xlarge,reserved_1y,partial_upfront,3.29008,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:27.896368 +AWS,eu-central-1,m7gd.16xlarge,reserved_3y,all_upfront,1.645027,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:59.679168 +AWS,eu-central-1,m7gd.16xlarge,reserved_3y,no_upfront,1.645027,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:52.827163 +AWS,eu-central-1,m7gd.16xlarge,reserved_3y,partial_upfront,1.645027,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:38.115902 +AWS,eu-central-1,m7gd.16xlarge,spot,NA,0.933606,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093030 +AWS,eu-central-1,m7gd.2xlarge,on_demand,NA,0.5141,USD,AWS Pricing API,2025-11-30T09:04:49.222407 +AWS,eu-central-1,m7gd.2xlarge,reserved_1y,all_upfront,0.411247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:18.452535 +AWS,eu-central-1,m7gd.2xlarge,reserved_1y,no_upfront,0.411247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:03.197543 +AWS,eu-central-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.411247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:43.469007 +AWS,eu-central-1,m7gd.2xlarge,reserved_3y,all_upfront,0.205616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:15.027472 +AWS,eu-central-1,m7gd.2xlarge,reserved_3y,no_upfront,0.205616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:08.779854 +AWS,eu-central-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.205616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:53.609761 +AWS,eu-central-1,m7gd.2xlarge,spot,NA,0.222118,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093493 +AWS,eu-central-1,m7gd.4xlarge,on_demand,NA,1.0282,USD,AWS Pricing API,2025-11-30T09:05:06.887845 +AWS,eu-central-1,m7gd.4xlarge,reserved_1y,all_upfront,0.616847,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:36.067062 +AWS,eu-central-1,m7gd.4xlarge,reserved_1y,no_upfront,0.616847,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:20.880484 +AWS,eu-central-1,m7gd.4xlarge,reserved_1y,partial_upfront,0.616847,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:00.909108 +AWS,eu-central-1,m7gd.4xlarge,reserved_3y,all_upfront,0.411216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:32.186211 +AWS,eu-central-1,m7gd.4xlarge,reserved_3y,no_upfront,0.411216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:26.569043 +AWS,eu-central-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.411216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:10.963367 +AWS,eu-central-1,m7gd.4xlarge,spot,NA,0.434386,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094029 +AWS,eu-central-1,m7gd.8xlarge,on_demand,NA,2.0563,USD,AWS Pricing API,2025-11-30T09:04:46.863882 +AWS,eu-central-1,m7gd.8xlarge,reserved_1y,all_upfront,1.6806,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:16.102326 +AWS,eu-central-1,m7gd.8xlarge,reserved_1y,no_upfront,1.6806,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:00.836586 +AWS,eu-central-1,m7gd.8xlarge,reserved_1y,partial_upfront,1.6806,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:41.167675 +AWS,eu-central-1,m7gd.8xlarge,reserved_3y,all_upfront,1.6806,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:12.772060 +AWS,eu-central-1,m7gd.8xlarge,reserved_3y,no_upfront,1.6806,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:06.416979 +AWS,eu-central-1,m7gd.8xlarge,reserved_3y,partial_upfront,1.6806,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:51.316641 +AWS,eu-central-1,m7gd.8xlarge,spot,NA,0.741436,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093408 +AWS,eu-central-1,m7gd.large,on_demand,NA,0.1285,USD,AWS Pricing API,2025-11-30T09:04:44.657637 +AWS,eu-central-1,m7gd.large,reserved_1y,all_upfront,0.077184,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:13.942677 +AWS,eu-central-1,m7gd.large,reserved_1y,no_upfront,0.077184,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:58.638685 +AWS,eu-central-1,m7gd.large,reserved_1y,partial_upfront,0.077184,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:39.002877 +AWS,eu-central-1,m7gd.large,reserved_3y,all_upfront,0.051461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:10.629112 +AWS,eu-central-1,m7gd.large,reserved_3y,no_upfront,0.051461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:04.175679 +AWS,eu-central-1,m7gd.large,reserved_3y,partial_upfront,0.051461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:49.166367 +AWS,eu-central-1,m7gd.large,spot,NA,0.048089,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093333 +AWS,eu-central-1,m7gd.xlarge,on_demand,NA,0.257,USD,AWS Pricing API,2025-11-30T09:04:50.862784 +AWS,eu-central-1,m7gd.xlarge,reserved_1y,all_upfront,0.151142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:20.089811 +AWS,eu-central-1,m7gd.xlarge,reserved_1y,no_upfront,0.151142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:04.852156 +AWS,eu-central-1,m7gd.xlarge,reserved_1y,partial_upfront,0.151142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:45.074649 +AWS,eu-central-1,m7gd.xlarge,reserved_3y,all_upfront,0.050381,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:16.617202 +AWS,eu-central-1,m7gd.xlarge,reserved_3y,no_upfront,0.050381,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:10.450578 +AWS,eu-central-1,m7gd.xlarge,reserved_3y,partial_upfront,0.050381,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:55.217432 +AWS,eu-central-1,m7gd.xlarge,spot,NA,0.117865,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093546 +AWS,eu-central-1,m7i.12xlarge,on_demand,NA,2.898,USD,AWS Pricing API,2025-11-30T09:04:22.287655 +AWS,eu-central-1,m7i.12xlarge,reserved_1y,all_upfront,1.789269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:51.895462 +AWS,eu-central-1,m7i.12xlarge,reserved_1y,no_upfront,1.789269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:36.105590 +AWS,eu-central-1,m7i.12xlarge,reserved_1y,partial_upfront,1.789269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:16.985600 +AWS,eu-central-1,m7i.12xlarge,reserved_3y,all_upfront,0.596423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:48.932371 +AWS,eu-central-1,m7i.12xlarge,reserved_3y,no_upfront,0.596423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:41.629964 +AWS,eu-central-1,m7i.12xlarge,reserved_3y,partial_upfront,0.596423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:27.229749 +AWS,eu-central-1,m7i.12xlarge,spot,NA,1.052341,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092626 +AWS,eu-central-1,m7i.16xlarge,on_demand,NA,3.864,USD,AWS Pricing API,2025-11-30T09:04:59.599621 +AWS,eu-central-1,m7i.16xlarge,reserved_1y,all_upfront,2.94626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:28.866945 +AWS,eu-central-1,m7i.16xlarge,reserved_1y,no_upfront,2.94626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:13.645213 +AWS,eu-central-1,m7i.16xlarge,reserved_1y,partial_upfront,2.94626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:53.768960 +AWS,eu-central-1,m7i.16xlarge,reserved_3y,all_upfront,2.94626,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:25.125320 +AWS,eu-central-1,m7i.16xlarge,reserved_3y,no_upfront,2.94626,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:19.289064 +AWS,eu-central-1,m7i.16xlarge,reserved_3y,partial_upfront,2.94626,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:03.828809 +AWS,eu-central-1,m7i.16xlarge,spot,NA,1.378446,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093788 +AWS,eu-central-1,m7i.24xlarge,on_demand,NA,5.796,USD,AWS Pricing API,2025-11-30T09:05:05.774400 +AWS,eu-central-1,m7i.24xlarge,reserved_1y,all_upfront,3.578425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:34.966030 +AWS,eu-central-1,m7i.24xlarge,reserved_1y,no_upfront,3.578425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:19.789379 +AWS,eu-central-1,m7i.24xlarge,reserved_1y,partial_upfront,3.578425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:59.823005 +AWS,eu-central-1,m7i.24xlarge,reserved_3y,all_upfront,1.192808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:31.099555 +AWS,eu-central-1,m7i.24xlarge,reserved_3y,no_upfront,1.192808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:25.460571 +AWS,eu-central-1,m7i.24xlarge,reserved_3y,partial_upfront,1.192808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:09.885195 +AWS,eu-central-1,m7i.24xlarge,spot,NA,1.749521,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093990 +AWS,eu-central-1,m7i.2xlarge,on_demand,NA,0.483,USD,AWS Pricing API,2025-11-30T09:04:40.826173 +AWS,eu-central-1,m7i.2xlarge,reserved_1y,all_upfront,0.683904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:10.173974 +AWS,eu-central-1,m7i.2xlarge,reserved_1y,no_upfront,0.683904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:54.771214 +AWS,eu-central-1,m7i.2xlarge,reserved_1y,partial_upfront,0.683904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:35.199368 +AWS,eu-central-1,m7i.2xlarge,reserved_3y,all_upfront,0.227968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:06.910393 +AWS,eu-central-1,m7i.2xlarge,reserved_3y,no_upfront,0.227968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:00.294760 +AWS,eu-central-1,m7i.2xlarge,reserved_3y,partial_upfront,0.227968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:45.374280 +AWS,eu-central-1,m7i.2xlarge,spot,NA,0.246094,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093273 +AWS,eu-central-1,m7i.48xlarge,on_demand,NA,11.592,USD,AWS Pricing API,2025-11-30T09:04:03.578331 +AWS,eu-central-1,m7i.48xlarge,reserved_1y,all_upfront,7.302964,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:33.245079 +AWS,eu-central-1,m7i.48xlarge,reserved_1y,no_upfront,7.302964,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:17.336473 +AWS,eu-central-1,m7i.48xlarge,reserved_1y,partial_upfront,7.302964,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:58.379951 +AWS,eu-central-1,m7i.48xlarge,reserved_3y,all_upfront,4.868641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:30.550306 +AWS,eu-central-1,m7i.48xlarge,reserved_3y,no_upfront,4.868641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:22.704924 +AWS,eu-central-1,m7i.48xlarge,reserved_3y,partial_upfront,4.868641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:08.816585 +AWS,eu-central-1,m7i.48xlarge,spot,NA,3.47381,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092054 +AWS,eu-central-1,m7i.4xlarge,on_demand,NA,0.966,USD,AWS Pricing API,2025-11-30T09:04:17.526448 +AWS,eu-central-1,m7i.4xlarge,reserved_1y,all_upfront,0.811422,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:47.131374 +AWS,eu-central-1,m7i.4xlarge,reserved_1y,no_upfront,0.811422,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:31.308784 +AWS,eu-central-1,m7i.4xlarge,reserved_1y,partial_upfront,0.811422,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:12.259313 +AWS,eu-central-1,m7i.4xlarge,reserved_3y,all_upfront,0.405714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:44.268973 +AWS,eu-central-1,m7i.4xlarge,reserved_3y,no_upfront,0.405714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:36.789862 +AWS,eu-central-1,m7i.4xlarge,reserved_3y,partial_upfront,0.405714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:22.537565 +AWS,eu-central-1,m7i.4xlarge,spot,NA,0.458268,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092523 +AWS,eu-central-1,m7i.8xlarge,on_demand,NA,1.932,USD,AWS Pricing API,2025-11-30T09:04:55.381536 +AWS,eu-central-1,m7i.8xlarge,reserved_1y,all_upfront,1.217142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:24.580035 +AWS,eu-central-1,m7i.8xlarge,reserved_1y,no_upfront,1.217142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:09.377403 +AWS,eu-central-1,m7i.8xlarge,reserved_1y,partial_upfront,1.217142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:49.553378 +AWS,eu-central-1,m7i.8xlarge,reserved_3y,all_upfront,0.811434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:21.001731 +AWS,eu-central-1,m7i.8xlarge,reserved_3y,no_upfront,0.811434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:15.000787 +AWS,eu-central-1,m7i.8xlarge,reserved_3y,partial_upfront,0.811434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:59.638368 +AWS,eu-central-1,m7i.8xlarge,spot,NA,0.880789,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093672 +AWS,eu-central-1,m7i.large,on_demand,NA,0.12075,USD,AWS Pricing API,2025-11-30T09:04:20.509529 +AWS,eu-central-1,m7i.large,reserved_1y,all_upfront,0.101387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:50.115417 +AWS,eu-central-1,m7i.large,reserved_1y,no_upfront,0.101387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:34.316675 +AWS,eu-central-1,m7i.large,reserved_1y,partial_upfront,0.101387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:15.231781 +AWS,eu-central-1,m7i.large,reserved_3y,all_upfront,0.050702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:47.206381 +AWS,eu-central-1,m7i.large,reserved_3y,no_upfront,0.050702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:39.828037 +AWS,eu-central-1,m7i.large,reserved_3y,partial_upfront,0.050702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:25.480383 +AWS,eu-central-1,m7i.large,spot,NA,0.0558,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092590 +AWS,eu-central-1,m7i.metal-24xl,on_demand,NA,5.796,USD,AWS Pricing API,2025-11-30T09:04:03.713576 +AWS,eu-central-1,m7i.metal-24xl,reserved_1y,all_upfront,3.83405,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:33.380494 +AWS,eu-central-1,m7i.metal-24xl,reserved_1y,no_upfront,3.83405,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:17.473784 +AWS,eu-central-1,m7i.metal-24xl,reserved_1y,partial_upfront,3.83405,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:58.516340 +AWS,eu-central-1,m7i.metal-24xl,reserved_3y,all_upfront,3.83405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:30.682412 +AWS,eu-central-1,m7i.metal-24xl,reserved_3y,no_upfront,3.83405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:22.841180 +AWS,eu-central-1,m7i.metal-24xl,reserved_3y,partial_upfront,3.83405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:08.951181 +AWS,eu-central-1,m7i.metal-24xl,spot,NA,1.420722,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092041 +AWS,eu-central-1,m7i.metal-48xl,on_demand,NA,11.592,USD,AWS Pricing API,2025-11-30T09:04:45.079104 +AWS,eu-central-1,m7i.metal-48xl,reserved_1y,all_upfront,7.302964,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:14.349077 +AWS,eu-central-1,m7i.metal-48xl,reserved_1y,no_upfront,7.302964,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:59.048993 +AWS,eu-central-1,m7i.metal-48xl,reserved_1y,partial_upfront,7.302964,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:39.402186 +AWS,eu-central-1,m7i.metal-48xl,reserved_3y,all_upfront,4.868641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:11.029357 +AWS,eu-central-1,m7i.metal-48xl,reserved_3y,no_upfront,4.868641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:04.601474 +AWS,eu-central-1,m7i.metal-48xl,reserved_3y,partial_upfront,4.868641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:49.574407 +AWS,eu-central-1,m7i.metal-48xl,spot,NA,2.794582,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093392 +AWS,eu-central-1,m7i.xlarge,on_demand,NA,0.2415,USD,AWS Pricing API,2025-11-30T09:05:07.299115 +AWS,eu-central-1,m7i.xlarge,reserved_1y,all_upfront,0.15975,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:36.475656 +AWS,eu-central-1,m7i.xlarge,reserved_1y,no_upfront,0.15975,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:21.291169 +AWS,eu-central-1,m7i.xlarge,reserved_1y,partial_upfront,0.15975,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:01.315224 +AWS,eu-central-1,m7i.xlarge,reserved_3y,all_upfront,0.15975,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:32.584145 +AWS,eu-central-1,m7i.xlarge,reserved_3y,no_upfront,0.15975,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:26.984529 +AWS,eu-central-1,m7i.xlarge,reserved_3y,partial_upfront,0.15975,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:11.362184 +AWS,eu-central-1,m7i.xlarge,spot,NA,0.111007,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094017 +AWS,eu-central-1,m8g.12xlarge,on_demand,NA,2.58096,USD,AWS Pricing API,2025-11-30T09:04:51.262991 +AWS,eu-central-1,m8g.12xlarge,reserved_1y,all_upfront,1.626014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:20.493991 +AWS,eu-central-1,m8g.12xlarge,reserved_1y,no_upfront,1.626014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:05.258562 +AWS,eu-central-1,m8g.12xlarge,reserved_1y,partial_upfront,1.626014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:45.472199 +AWS,eu-central-1,m8g.12xlarge,reserved_3y,all_upfront,1.084005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:17.011619 +AWS,eu-central-1,m8g.12xlarge,reserved_3y,no_upfront,1.084005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:10.861460 +AWS,eu-central-1,m8g.12xlarge,reserved_3y,partial_upfront,1.084005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:55.615192 +AWS,eu-central-1,m8g.12xlarge,spot,NA,0.829759,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093525 +AWS,eu-central-1,m8g.16xlarge,on_demand,NA,3.44128,USD,AWS Pricing API,2025-11-30T09:04:04.132371 +AWS,eu-central-1,m8g.16xlarge,reserved_1y,all_upfront,2.27641,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:33.786496 +AWS,eu-central-1,m8g.16xlarge,reserved_1y,no_upfront,2.27641,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:17.883293 +AWS,eu-central-1,m8g.16xlarge,reserved_1y,partial_upfront,2.27641,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:58.919773 +AWS,eu-central-1,m8g.16xlarge,reserved_3y,all_upfront,2.27641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:31.083431 +AWS,eu-central-1,m8g.16xlarge,reserved_3y,no_upfront,2.27641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:23.263038 +AWS,eu-central-1,m8g.16xlarge,reserved_3y,partial_upfront,2.27641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:09.355050 +AWS,eu-central-1,m8g.16xlarge,spot,NA,1.046921,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092075 +AWS,eu-central-1,m8g.24xlarge,on_demand,NA,5.16192,USD,AWS Pricing API,2025-11-30T09:05:12.612140 +AWS,eu-central-1,m8g.24xlarge,reserved_1y,all_upfront,3.252027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:41.767863 +AWS,eu-central-1,m8g.24xlarge,reserved_1y,no_upfront,3.252027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:26.643469 +AWS,eu-central-1,m8g.24xlarge,reserved_1y,partial_upfront,3.252027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:06.610617 +AWS,eu-central-1,m8g.24xlarge,reserved_3y,all_upfront,2.168009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:37.782025 +AWS,eu-central-1,m8g.24xlarge,reserved_3y,no_upfront,2.168009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:32.382193 +AWS,eu-central-1,m8g.24xlarge,reserved_3y,partial_upfront,2.168009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:16.621235 +AWS,eu-central-1,m8g.24xlarge,spot,NA,1.174962,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094239 +AWS,eu-central-1,m8g.2xlarge,on_demand,NA,0.43016,USD,AWS Pricing API,2025-11-30T09:05:04.125205 +AWS,eu-central-1,m8g.2xlarge,reserved_1y,all_upfront,0.265525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:33.335140 +AWS,eu-central-1,m8g.2xlarge,reserved_1y,no_upfront,0.265525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:18.153650 +AWS,eu-central-1,m8g.2xlarge,reserved_1y,partial_upfront,0.265525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:58.204345 +AWS,eu-central-1,m8g.2xlarge,reserved_3y,all_upfront,0.088508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:29.512248 +AWS,eu-central-1,m8g.2xlarge,reserved_3y,no_upfront,0.088508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:23.818026 +AWS,eu-central-1,m8g.2xlarge,reserved_3y,partial_upfront,0.088508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:08.268845 +AWS,eu-central-1,m8g.2xlarge,spot,NA,0.192708,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093907 +AWS,eu-central-1,m8g.48xlarge,on_demand,NA,10.32384,USD,AWS Pricing API,2025-11-30T09:04:36.964303 +AWS,eu-central-1,m8g.48xlarge,reserved_1y,all_upfront,7.87203,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:06.386626 +AWS,eu-central-1,m8g.48xlarge,reserved_1y,no_upfront,7.87203,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:50.906549 +AWS,eu-central-1,m8g.48xlarge,reserved_1y,partial_upfront,7.87203,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:31.407529 +AWS,eu-central-1,m8g.48xlarge,reserved_3y,all_upfront,7.87203,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:03.174472 +AWS,eu-central-1,m8g.48xlarge,reserved_3y,no_upfront,7.87203,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:56.408975 +AWS,eu-central-1,m8g.48xlarge,reserved_3y,partial_upfront,7.87203,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:41.607870 +AWS,eu-central-1,m8g.48xlarge,spot,NA,2.199069,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093157 +AWS,eu-central-1,m8g.4xlarge,on_demand,NA,0.86032,USD,AWS Pricing API,2025-11-30T09:04:53.994639 +AWS,eu-central-1,m8g.4xlarge,reserved_1y,all_upfront,0.656,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:23.232704 +AWS,eu-central-1,m8g.4xlarge,reserved_1y,no_upfront,0.656,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:08.005356 +AWS,eu-central-1,m8g.4xlarge,reserved_1y,partial_upfront,0.656,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:48.197849 +AWS,eu-central-1,m8g.4xlarge,reserved_3y,all_upfront,0.656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:19.661554 +AWS,eu-central-1,m8g.4xlarge,reserved_3y,no_upfront,0.656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:13.607507 +AWS,eu-central-1,m8g.4xlarge,reserved_3y,partial_upfront,0.656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:58.288345 +AWS,eu-central-1,m8g.4xlarge,spot,NA,0.352869,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093629 +AWS,eu-central-1,m8g.8xlarge,on_demand,NA,1.72064,USD,AWS Pricing API,2025-11-30T09:04:25.264049 +AWS,eu-central-1,m8g.8xlarge,reserved_1y,all_upfront,1.224543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:54.864219 +AWS,eu-central-1,m8g.8xlarge,reserved_1y,no_upfront,1.224543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:39.130839 +AWS,eu-central-1,m8g.8xlarge,reserved_1y,partial_upfront,1.224543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:19.963319 +AWS,eu-central-1,m8g.8xlarge,reserved_3y,all_upfront,0.408181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:51.864549 +AWS,eu-central-1,m8g.8xlarge,reserved_3y,no_upfront,0.408181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:44.670526 +AWS,eu-central-1,m8g.8xlarge,reserved_3y,partial_upfront,0.408181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:30.200406 +AWS,eu-central-1,m8g.8xlarge,spot,NA,0.705886,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092746 +AWS,eu-central-1,m8g.large,on_demand,NA,0.10754,USD,AWS Pricing API,2025-11-30T09:05:14.656821 +AWS,eu-central-1,m8g.large,reserved_1y,all_upfront,0.152283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:43.799771 +AWS,eu-central-1,m8g.large,reserved_1y,no_upfront,0.152283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:28.700161 +AWS,eu-central-1,m8g.large,reserved_1y,partial_upfront,0.152283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:08.637513 +AWS,eu-central-1,m8g.large,reserved_3y,all_upfront,0.050761,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:39.788473 +AWS,eu-central-1,m8g.large,reserved_3y,no_upfront,0.050761,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:34.447619 +AWS,eu-central-1,m8g.large,reserved_3y,partial_upfront,0.050761,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:18.639338 +AWS,eu-central-1,m8g.large,spot,NA,0.051615,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094296 +AWS,eu-central-1,m8g.medium,on_demand,NA,0.05377,USD,AWS Pricing API,2025-11-30T09:05:16.564520 +AWS,eu-central-1,m8g.medium,reserved_1y,all_upfront,0.076142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:45.691172 +AWS,eu-central-1,m8g.medium,reserved_1y,no_upfront,0.076142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:30.598882 +AWS,eu-central-1,m8g.medium,reserved_1y,partial_upfront,0.076142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:10.524047 +AWS,eu-central-1,m8g.medium,reserved_3y,all_upfront,0.025381,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:41.648568 +AWS,eu-central-1,m8g.medium,reserved_3y,no_upfront,0.025381,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:36.398827 +AWS,eu-central-1,m8g.medium,reserved_3y,partial_upfront,0.025381,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:20.525941 +AWS,eu-central-1,m8g.medium,spot,NA,0.017979,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094350 +AWS,eu-central-1,m8g.xlarge,on_demand,NA,0.21508,USD,AWS Pricing API,2025-11-30T09:04:34.606146 +AWS,eu-central-1,m8g.xlarge,reserved_1y,all_upfront,0.132763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:04.068242 +AWS,eu-central-1,m8g.xlarge,reserved_1y,no_upfront,0.132763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:48.510643 +AWS,eu-central-1,m8g.xlarge,reserved_1y,partial_upfront,0.132763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:29.102875 +AWS,eu-central-1,m8g.xlarge,reserved_3y,all_upfront,0.044254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:00.877174 +AWS,eu-central-1,m8g.xlarge,reserved_3y,no_upfront,0.044254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:54.072696 +AWS,eu-central-1,m8g.xlarge,reserved_3y,partial_upfront,0.044254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:39.326616 +AWS,eu-central-1,m8g.xlarge,spot,NA,0.106403,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093046 +AWS,eu-central-1,m8gd.12xlarge,on_demand,NA,3.3312,USD,AWS Pricing API,2025-11-30T09:05:15.204903 +AWS,eu-central-1,m8gd.12xlarge,spot,NA,0.98844,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094318 +AWS,eu-central-1,m8gd.16xlarge,on_demand,NA,4.4416,USD,AWS Pricing API,2025-11-30T09:05:07.840934 +AWS,eu-central-1,m8gd.16xlarge,spot,NA,1.325722,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094033 +AWS,eu-central-1,m8gd.24xlarge,on_demand,NA,6.6624,USD,AWS Pricing API,2025-11-30T09:04:33.063922 +AWS,eu-central-1,m8gd.24xlarge,spot,NA,1.45164,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093013 +AWS,eu-central-1,m8gd.2xlarge,on_demand,NA,0.5552,USD,AWS Pricing API,2025-11-30T09:05:14.385975 +AWS,eu-central-1,m8gd.2xlarge,spot,NA,0.251603,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094290 +AWS,eu-central-1,m8gd.48xlarge,on_demand,NA,13.3248,USD,AWS Pricing API,2025-11-30T09:05:10.284801 +AWS,eu-central-1,m8gd.48xlarge,spot,NA,2.814025,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094130 +AWS,eu-central-1,m8gd.4xlarge,on_demand,NA,1.1104,USD,AWS Pricing API,2025-11-30T09:04:40.543067 +AWS,eu-central-1,m8gd.4xlarge,spot,NA,0.490919,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093212 +AWS,eu-central-1,m8gd.8xlarge,on_demand,NA,2.2208,USD,AWS Pricing API,2025-11-30T09:04:04.821652 +AWS,eu-central-1,m8gd.8xlarge,spot,NA,0.931823,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092062 +AWS,eu-central-1,m8gd.large,on_demand,NA,0.1388,USD,AWS Pricing API,2025-11-30T09:04:49.905860 +AWS,eu-central-1,m8gd.large,spot,NA,0.062395,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093497 +AWS,eu-central-1,m8gd.xlarge,on_demand,NA,0.2776,USD,AWS Pricing API,2025-11-30T09:04:41.233005 +AWS,eu-central-1,m8gd.xlarge,spot,NA,0.139529,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093285 +AWS,eu-central-1,p2.16xlarge,on_demand,NA,21.216,USD,AWS Pricing API,2025-11-30T09:04:10.834759 +AWS,eu-central-1,p2.8xlarge,on_demand,NA,10.608,USD,AWS Pricing API,2025-11-30T09:05:10.149441 +AWS,eu-central-1,p2.xlarge,on_demand,NA,1.326,USD,AWS Pricing API,2025-11-30T09:04:14.379447 +AWS,eu-central-1,p3.16xlarge,on_demand,NA,30.584,USD,AWS Pricing API,2025-11-30T09:04:29.645474 +AWS,eu-central-1,p3.16xlarge,spot,NA,11.855079,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092893 +AWS,eu-central-1,p3.2xlarge,on_demand,NA,3.823,USD,AWS Pricing API,2025-11-30T09:05:00.667152 +AWS,eu-central-1,p3.2xlarge,spot,NA,0.473579,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093825 +AWS,eu-central-1,p3.8xlarge,on_demand,NA,15.292,USD,AWS Pricing API,2025-11-30T09:04:10.427768 +AWS,eu-central-1,p3.8xlarge,spot,NA,4.93223,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092280 +AWS,eu-central-1,p4d.24xlarge,on_demand,NA,27.43298,USD,AWS Pricing API,2025-11-30T09:04:10.564037 +AWS,eu-central-1,p4d.24xlarge,reserved_1y,all_upfront,20.870934,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:40.167201 +AWS,eu-central-1,p4d.24xlarge,reserved_1y,no_upfront,20.870934,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:24.334712 +AWS,eu-central-1,p4d.24xlarge,reserved_1y,partial_upfront,20.870934,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:05.379239 +AWS,eu-central-1,p4d.24xlarge,reserved_3y,all_upfront,20.870934,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:37.450507 +AWS,eu-central-1,p4d.24xlarge,reserved_3y,no_upfront,20.870934,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:29.768709 +AWS,eu-central-1,p4d.24xlarge,reserved_3y,partial_upfront,20.870934,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:15.674160 +AWS,eu-central-1,p4d.24xlarge,spot,NA,11.498295,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092276 +AWS,eu-central-1,p4de.24xlarge,on_demand,NA,34.29122,USD,AWS Pricing API,2025-11-30T09:04:34.325964 +AWS,eu-central-1,p4de.24xlarge,reserved_1y,all_upfront,38.225913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:03.798901 +AWS,eu-central-1,p4de.24xlarge,reserved_1y,no_upfront,38.225913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:48.236895 +AWS,eu-central-1,p4de.24xlarge,reserved_1y,partial_upfront,38.225913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:28.834376 +AWS,eu-central-1,p4de.24xlarge,reserved_3y,all_upfront,12.741971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:00.615094 +AWS,eu-central-1,p4de.24xlarge,reserved_3y,no_upfront,12.741971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:53.794650 +AWS,eu-central-1,p4de.24xlarge,reserved_3y,partial_upfront,12.741971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:39.053184 +AWS,eu-central-1,p4de.24xlarge,spot,NA,21.786057,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093042 +AWS,eu-central-1,r4.16xlarge,on_demand,NA,5.1216,USD,AWS Pricing API,2025-11-30T09:05:03.176588 +AWS,eu-central-1,r4.16xlarge,reserved_1y,all_upfront,3.2256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:32.367698 +AWS,eu-central-1,r4.16xlarge,reserved_1y,no_upfront,3.2256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:17.194510 +AWS,eu-central-1,r4.16xlarge,reserved_1y,partial_upfront,3.2256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:57.262978 +AWS,eu-central-1,r4.16xlarge,reserved_3y,all_upfront,3.2256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:28.588750 +AWS,eu-central-1,r4.16xlarge,reserved_3y,no_upfront,3.2256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:22.854300 +AWS,eu-central-1,r4.16xlarge,reserved_3y,partial_upfront,3.2256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:07.327718 +AWS,eu-central-1,r4.16xlarge,spot,NA,1.632395,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093890 +AWS,eu-central-1,r5.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T09:04:03.855435 +AWS,eu-central-1,r5.12xlarge,reserved_1y,all_upfront,2.918813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:33.514672 +AWS,eu-central-1,r5.12xlarge,reserved_1y,no_upfront,2.918813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:17.609591 +AWS,eu-central-1,r5.12xlarge,reserved_1y,partial_upfront,2.918813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:58.651992 +AWS,eu-central-1,r5.12xlarge,reserved_3y,all_upfront,1.459604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:30.816920 +AWS,eu-central-1,r5.12xlarge,reserved_3y,no_upfront,1.459604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:22.985489 +AWS,eu-central-1,r5.12xlarge,reserved_3y,partial_upfront,1.459604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:09.085384 +AWS,eu-central-1,r5.12xlarge,spot,NA,1.304621,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092092 +AWS,eu-central-1,r5.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T09:04:37.101714 +AWS,eu-central-1,r5.16xlarge,reserved_1y,all_upfront,2.860046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:06.528091 +AWS,eu-central-1,r5.16xlarge,reserved_1y,no_upfront,2.860046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:51.052130 +AWS,eu-central-1,r5.16xlarge,reserved_1y,partial_upfront,2.860046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:31.543203 +AWS,eu-central-1,r5.16xlarge,reserved_3y,all_upfront,0.953349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:03.322904 +AWS,eu-central-1,r5.16xlarge,reserved_3y,no_upfront,0.953349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:56.544755 +AWS,eu-central-1,r5.16xlarge,reserved_3y,partial_upfront,0.953349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:41.742281 +AWS,eu-central-1,r5.16xlarge,spot,NA,1.29861,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093133 +AWS,eu-central-1,r5.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T09:04:19.293576 +AWS,eu-central-1,r5.24xlarge,reserved_1y,all_upfront,4.290068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:48.901814 +AWS,eu-central-1,r5.24xlarge,reserved_1y,no_upfront,4.290068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:33.092215 +AWS,eu-central-1,r5.24xlarge,reserved_1y,partial_upfront,4.290068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:14.022883 +AWS,eu-central-1,r5.24xlarge,reserved_3y,all_upfront,1.430023,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:46.011224 +AWS,eu-central-1,r5.24xlarge,reserved_3y,no_upfront,1.430023,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:38.587643 +AWS,eu-central-1,r5.24xlarge,reserved_3y,partial_upfront,1.430023,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:24.277487 +AWS,eu-central-1,r5.24xlarge,spot,NA,2.235582,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092561 +AWS,eu-central-1,r5.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T12:52:29.753487 +AWS,eu-central-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.753660 +AWS,eu-central-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.383,USD,AWS Pricing API,2025-11-30T12:52:29.753556 +AWS,eu-central-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.182,USD,AWS Pricing API,2025-11-30T12:52:29.753541 +AWS,eu-central-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.753606 +AWS,eu-central-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.317,USD,AWS Pricing API,2025-11-30T12:52:29.753648 +AWS,eu-central-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.122,USD,AWS Pricing API,2025-11-30T12:52:29.753676 +AWS,eu-central-1,r5.2xlarge,spot,NA,0.22099,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:35.291621 +AWS,eu-central-1,r5.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T09:05:12.339246 +AWS,eu-central-1,r5.4xlarge,reserved_1y,all_upfront,1.371689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:41.501204 +AWS,eu-central-1,r5.4xlarge,reserved_1y,no_upfront,1.371689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:26.372492 +AWS,eu-central-1,r5.4xlarge,reserved_1y,partial_upfront,1.371689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:06.336201 +AWS,eu-central-1,r5.4xlarge,reserved_3y,all_upfront,0.45723,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:37.510993 +AWS,eu-central-1,r5.4xlarge,reserved_3y,no_upfront,0.45723,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:32.108224 +AWS,eu-central-1,r5.4xlarge,reserved_3y,partial_upfront,0.45723,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:16.356704 +AWS,eu-central-1,r5.4xlarge,spot,NA,0.440863,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094243 +AWS,eu-central-1,r5.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T09:04:55.105026 +AWS,eu-central-1,r5.8xlarge,reserved_1y,all_upfront,1.678041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:24.312589 +AWS,eu-central-1,r5.8xlarge,reserved_1y,no_upfront,1.678041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:09.103597 +AWS,eu-central-1,r5.8xlarge,reserved_1y,partial_upfront,1.678041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:49.284304 +AWS,eu-central-1,r5.8xlarge,reserved_3y,all_upfront,1.11868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:20.735898 +AWS,eu-central-1,r5.8xlarge,reserved_3y,no_upfront,1.11868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:14.715440 +AWS,eu-central-1,r5.8xlarge,reserved_3y,partial_upfront,1.11868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:59.370645 +AWS,eu-central-1,r5.8xlarge,spot,NA,0.799169,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093664 +AWS,eu-central-1,r5.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T09:04:30.872265 +AWS,eu-central-1,r5.large,reserved_1y,all_upfront,0.12121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:00.403118 +AWS,eu-central-1,r5.large,reserved_1y,no_upfront,0.12121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:44.802488 +AWS,eu-central-1,r5.large,reserved_1y,partial_upfront,0.12121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:25.474782 +AWS,eu-central-1,r5.large,reserved_3y,all_upfront,0.060403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:57.300525 +AWS,eu-central-1,r5.large,reserved_3y,no_upfront,0.060403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:50.347259 +AWS,eu-central-1,r5.large,reserved_3y,partial_upfront,0.060403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:35.673860 +AWS,eu-central-1,r5.large,spot,NA,0.058659,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092910 +AWS,eu-central-1,r5.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T09:04:08.103300 +AWS,eu-central-1,r5.xlarge,reserved_1y,all_upfront,0.342922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:37.724961 +AWS,eu-central-1,r5.xlarge,reserved_1y,no_upfront,0.342922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:21.878654 +AWS,eu-central-1,r5.xlarge,reserved_1y,partial_upfront,0.342922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:02.938029 +AWS,eu-central-1,r5.xlarge,reserved_3y,all_upfront,0.114307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:35.018823 +AWS,eu-central-1,r5.xlarge,reserved_3y,no_upfront,0.114307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:27.282007 +AWS,eu-central-1,r5.xlarge,reserved_3y,partial_upfront,0.114307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:13.239704 +AWS,eu-central-1,r5.xlarge,spot,NA,0.12049,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092225 +AWS,eu-central-1,r5a.12xlarge,on_demand,NA,3.288,USD,AWS Pricing API,2025-11-30T09:05:03.313473 +AWS,eu-central-1,r5a.12xlarge,reserved_1y,all_upfront,2.630831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:32.503063 +AWS,eu-central-1,r5a.12xlarge,reserved_1y,no_upfront,2.630831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:17.332391 +AWS,eu-central-1,r5a.12xlarge,reserved_1y,partial_upfront,2.630831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:57.394420 +AWS,eu-central-1,r5a.12xlarge,reserved_3y,all_upfront,1.31561,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:28.719386 +AWS,eu-central-1,r5a.12xlarge,reserved_3y,no_upfront,1.31561,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:22.990378 +AWS,eu-central-1,r5a.12xlarge,reserved_3y,partial_upfront,1.31561,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:07.460552 +AWS,eu-central-1,r5a.12xlarge,spot,NA,1.419008,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093886 +AWS,eu-central-1,r5a.16xlarge,on_demand,NA,4.384,USD,AWS Pricing API,2025-11-30T09:05:11.522370 +AWS,eu-central-1,r5a.16xlarge,reserved_1y,all_upfront,2.292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:40.692545 +AWS,eu-central-1,r5a.16xlarge,reserved_1y,no_upfront,2.292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:25.553323 +AWS,eu-central-1,r5a.16xlarge,reserved_1y,partial_upfront,2.292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:05.529159 +AWS,eu-central-1,r5a.16xlarge,reserved_3y,all_upfront,2.292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:36.709143 +AWS,eu-central-1,r5a.16xlarge,reserved_3y,no_upfront,2.292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:31.284450 +AWS,eu-central-1,r5a.16xlarge,reserved_3y,partial_upfront,2.292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:15.537200 +AWS,eu-central-1,r5a.16xlarge,spot,NA,1.714754,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094166 +AWS,eu-central-1,r5a.24xlarge,on_demand,NA,6.576,USD,AWS Pricing API,2025-11-30T09:05:05.359064 +AWS,eu-central-1,r5a.24xlarge,reserved_1y,all_upfront,4.757,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:34.564651 +AWS,eu-central-1,r5a.24xlarge,reserved_1y,no_upfront,4.757,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:19.381068 +AWS,eu-central-1,r5a.24xlarge,reserved_1y,partial_upfront,4.757,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:59.408532 +AWS,eu-central-1,r5a.24xlarge,reserved_3y,all_upfront,4.757,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:30.702920 +AWS,eu-central-1,r5a.24xlarge,reserved_3y,no_upfront,4.757,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:25.045857 +AWS,eu-central-1,r5a.24xlarge,reserved_3y,partial_upfront,4.757,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:09.482150 +AWS,eu-central-1,r5a.24xlarge,spot,NA,2.245074,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093950 +AWS,eu-central-1,r5a.2xlarge,on_demand,NA,0.548,USD,AWS Pricing API,2025-11-30T09:05:16.155498 +AWS,eu-central-1,r5a.2xlarge,reserved_1y,all_upfront,0.321689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:45.288918 +AWS,eu-central-1,r5a.2xlarge,reserved_1y,no_upfront,0.321689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:30.192425 +AWS,eu-central-1,r5a.2xlarge,reserved_1y,partial_upfront,0.321689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:10.126974 +AWS,eu-central-1,r5a.2xlarge,reserved_3y,all_upfront,0.10723,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:41.256918 +AWS,eu-central-1,r5a.2xlarge,reserved_3y,no_upfront,0.10723,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:35.989615 +AWS,eu-central-1,r5a.2xlarge,reserved_3y,partial_upfront,0.10723,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:20.126270 +AWS,eu-central-1,r5a.2xlarge,spot,NA,0.278841,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094312 +AWS,eu-central-1,r5a.4xlarge,on_demand,NA,1.096,USD,AWS Pricing API,2025-11-30T09:04:56.059021 +AWS,eu-central-1,r5a.4xlarge,reserved_1y,all_upfront,0.656196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:25.256595 +AWS,eu-central-1,r5a.4xlarge,reserved_1y,no_upfront,0.656196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:10.063769 +AWS,eu-central-1,r5a.4xlarge,reserved_1y,partial_upfront,0.656196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:50.237401 +AWS,eu-central-1,r5a.4xlarge,reserved_3y,all_upfront,0.437399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:21.670580 +AWS,eu-central-1,r5a.4xlarge,reserved_3y,no_upfront,0.437399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:15.690838 +AWS,eu-central-1,r5a.4xlarge,reserved_3y,partial_upfront,0.437399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:00.329710 +AWS,eu-central-1,r5a.4xlarge,spot,NA,0.543212,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093698 +AWS,eu-central-1,r5a.8xlarge,on_demand,NA,2.192,USD,AWS Pricing API,2025-11-30T09:04:38.193320 +AWS,eu-central-1,r5a.8xlarge,reserved_1y,all_upfront,1.510137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:07.604757 +AWS,eu-central-1,r5a.8xlarge,reserved_1y,no_upfront,1.510137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:52.144551 +AWS,eu-central-1,r5a.8xlarge,reserved_1y,partial_upfront,1.510137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:32.631346 +AWS,eu-central-1,r5a.8xlarge,reserved_3y,all_upfront,1.006712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:04.381592 +AWS,eu-central-1,r5a.8xlarge,reserved_3y,no_upfront,1.006712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:57.649645 +AWS,eu-central-1,r5a.8xlarge,reserved_3y,partial_upfront,1.006712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:42.814480 +AWS,eu-central-1,r5a.8xlarge,spot,NA,0.972491,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093172 +AWS,eu-central-1,r5a.large,on_demand,NA,0.137,USD,AWS Pricing API,2025-11-30T09:04:44.804959 +AWS,eu-central-1,r5a.large,reserved_1y,all_upfront,0.086,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:14.078457 +AWS,eu-central-1,r5a.large,reserved_1y,no_upfront,0.086,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:58.775780 +AWS,eu-central-1,r5a.large,reserved_1y,partial_upfront,0.086,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:39.135454 +AWS,eu-central-1,r5a.large,reserved_3y,all_upfront,0.086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:10.762387 +AWS,eu-central-1,r5a.large,reserved_3y,no_upfront,0.086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:04.315182 +AWS,eu-central-1,r5a.large,reserved_3y,partial_upfront,0.086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:49.300184 +AWS,eu-central-1,r5a.large,spot,NA,0.067367,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093346 +AWS,eu-central-1,r5a.xlarge,on_demand,NA,0.274,USD,AWS Pricing API,2025-11-30T09:04:55.517990 +AWS,eu-central-1,r5a.xlarge,reserved_1y,all_upfront,0.38984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:24.713777 +AWS,eu-central-1,r5a.xlarge,reserved_1y,no_upfront,0.38984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:09.512690 +AWS,eu-central-1,r5a.xlarge,reserved_1y,partial_upfront,0.38984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:49.690958 +AWS,eu-central-1,r5a.xlarge,reserved_3y,all_upfront,0.129947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:21.137644 +AWS,eu-central-1,r5a.xlarge,reserved_3y,no_upfront,0.129947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:15.139115 +AWS,eu-central-1,r5a.xlarge,reserved_3y,partial_upfront,0.129947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:59.770713 +AWS,eu-central-1,r5a.xlarge,spot,NA,0.148516,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093644 +AWS,eu-central-1,r5d.12xlarge,on_demand,NA,4.152,USD,AWS Pricing API,2025-11-30T09:05:08.926347 +AWS,eu-central-1,r5d.12xlarge,reserved_1y,all_upfront,4.035598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:38.100511 +AWS,eu-central-1,r5d.12xlarge,reserved_1y,no_upfront,4.035598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:22.949408 +AWS,eu-central-1,r5d.12xlarge,reserved_1y,partial_upfront,4.035598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:02.950242 +AWS,eu-central-1,r5d.12xlarge,reserved_3y,all_upfront,2.017866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:34.180146 +AWS,eu-central-1,r5d.12xlarge,reserved_3y,no_upfront,2.017866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:28.648187 +AWS,eu-central-1,r5d.12xlarge,reserved_3y,partial_upfront,2.017866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:12.978369 +AWS,eu-central-1,r5d.12xlarge,spot,NA,1.519452,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094110 +AWS,eu-central-1,r5d.16xlarge,on_demand,NA,5.536,USD,AWS Pricing API,2025-11-30T09:04:33.200726 +AWS,eu-central-1,r5d.16xlarge,reserved_1y,all_upfront,4.063,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:02.719423 +AWS,eu-central-1,r5d.16xlarge,reserved_1y,no_upfront,4.063,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:47.135314 +AWS,eu-central-1,r5d.16xlarge,reserved_1y,partial_upfront,4.063,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:27.763050 +AWS,eu-central-1,r5d.16xlarge,reserved_3y,all_upfront,4.063,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:59.542179 +AWS,eu-central-1,r5d.16xlarge,reserved_3y,no_upfront,4.063,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:52.690224 +AWS,eu-central-1,r5d.16xlarge,reserved_3y,partial_upfront,4.063,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:37.979397 +AWS,eu-central-1,r5d.16xlarge,spot,NA,1.60254,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093008 +AWS,eu-central-1,r5d.24xlarge,on_demand,NA,8.304,USD,AWS Pricing API,2025-11-30T09:05:03.450190 +AWS,eu-central-1,r5d.24xlarge,reserved_1y,all_upfront,8.071196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:32.638123 +AWS,eu-central-1,r5d.24xlarge,reserved_1y,no_upfront,8.071196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:17.467880 +AWS,eu-central-1,r5d.24xlarge,reserved_1y,partial_upfront,8.071196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:57.528261 +AWS,eu-central-1,r5d.24xlarge,reserved_3y,all_upfront,4.035732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:28.853633 +AWS,eu-central-1,r5d.24xlarge,reserved_3y,no_upfront,4.035732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:23.128625 +AWS,eu-central-1,r5d.24xlarge,reserved_3y,partial_upfront,4.035732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:07.594132 +AWS,eu-central-1,r5d.24xlarge,spot,NA,2.332605,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093878 +AWS,eu-central-1,r5d.2xlarge,on_demand,NA,0.692,USD,AWS Pricing API,2025-11-30T09:05:02.049922 +AWS,eu-central-1,r5d.2xlarge,reserved_1y,all_upfront,0.988699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:31.289287 +AWS,eu-central-1,r5d.2xlarge,reserved_1y,no_upfront,0.988699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:16.097687 +AWS,eu-central-1,r5d.2xlarge,reserved_1y,partial_upfront,0.988699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:56.180769 +AWS,eu-central-1,r5d.2xlarge,reserved_3y,all_upfront,0.329566,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:27.531074 +AWS,eu-central-1,r5d.2xlarge,reserved_3y,no_upfront,0.329566,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:21.758185 +AWS,eu-central-1,r5d.2xlarge,reserved_3y,partial_upfront,0.329566,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:06.261638 +AWS,eu-central-1,r5d.2xlarge,spot,NA,0.332047,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093842 +AWS,eu-central-1,r5d.4xlarge,on_demand,NA,1.384,USD,AWS Pricing API,2025-11-30T09:04:32.641706 +AWS,eu-central-1,r5d.4xlarge,reserved_1y,all_upfront,1.016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:02.180073 +AWS,eu-central-1,r5d.4xlarge,reserved_1y,no_upfront,1.016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:46.589799 +AWS,eu-central-1,r5d.4xlarge,reserved_1y,partial_upfront,1.016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:27.227394 +AWS,eu-central-1,r5d.4xlarge,reserved_3y,all_upfront,1.016,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:59.018774 +AWS,eu-central-1,r5d.4xlarge,reserved_3y,no_upfront,1.016,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:52.145229 +AWS,eu-central-1,r5d.4xlarge,reserved_3y,partial_upfront,1.016,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:37.446009 +AWS,eu-central-1,r5d.4xlarge,spot,NA,0.671834,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093000 +AWS,eu-central-1,r5d.8xlarge,on_demand,NA,2.768,USD,AWS Pricing API,2025-11-30T09:04:32.234943 +AWS,eu-central-1,r5d.8xlarge,reserved_1y,all_upfront,1.744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:01.767251 +AWS,eu-central-1,r5d.8xlarge,reserved_1y,no_upfront,1.744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:46.179355 +AWS,eu-central-1,r5d.8xlarge,reserved_1y,partial_upfront,1.744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:26.817766 +AWS,eu-central-1,r5d.8xlarge,reserved_3y,all_upfront,1.744,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:58.621206 +AWS,eu-central-1,r5d.8xlarge,reserved_3y,no_upfront,1.744,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:51.730546 +AWS,eu-central-1,r5d.8xlarge,reserved_3y,partial_upfront,1.744,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:37.039613 +AWS,eu-central-1,r5d.8xlarge,spot,NA,1.122057,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092966 +AWS,eu-central-1,r5d.large,on_demand,NA,0.173,USD,AWS Pricing API,2025-11-30T09:04:57.287203 +AWS,eu-central-1,r5d.large,reserved_1y,all_upfront,0.091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:26.477620 +AWS,eu-central-1,r5d.large,reserved_1y,no_upfront,0.091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:11.307430 +AWS,eu-central-1,r5d.large,reserved_1y,partial_upfront,0.091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:51.466924 +AWS,eu-central-1,r5d.large,reserved_3y,all_upfront,0.091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:22.860497 +AWS,eu-central-1,r5d.large,reserved_3y,no_upfront,0.091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:16.946504 +AWS,eu-central-1,r5d.large,reserved_3y,partial_upfront,0.091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:01.543239 +AWS,eu-central-1,r5d.large,spot,NA,0.078023,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093755 +AWS,eu-central-1,r5d.xlarge,on_demand,NA,0.346,USD,AWS Pricing API,2025-11-30T09:04:14.516484 +AWS,eu-central-1,r5d.xlarge,reserved_1y,all_upfront,0.218,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:44.146097 +AWS,eu-central-1,r5d.xlarge,reserved_1y,no_upfront,0.218,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:28.292604 +AWS,eu-central-1,r5d.xlarge,reserved_1y,partial_upfront,0.218,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:09.282652 +AWS,eu-central-1,r5d.xlarge,reserved_3y,all_upfront,0.218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:41.342744 +AWS,eu-central-1,r5d.xlarge,reserved_3y,no_upfront,0.218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:33.761035 +AWS,eu-central-1,r5d.xlarge,reserved_3y,partial_upfront,0.218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:19.582912 +AWS,eu-central-1,r5d.xlarge,spot,NA,0.173727,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092411 +AWS,eu-central-1,r5dn.12xlarge,on_demand,NA,4.776,USD,AWS Pricing API,2025-11-30T09:04:17.387139 +AWS,eu-central-1,r5dn.12xlarge,reserved_1y,all_upfront,3.009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:46.995887 +AWS,eu-central-1,r5dn.12xlarge,reserved_1y,no_upfront,3.009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:31.172673 +AWS,eu-central-1,r5dn.12xlarge,reserved_1y,partial_upfront,3.009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:12.126538 +AWS,eu-central-1,r5dn.12xlarge,reserved_3y,all_upfront,3.009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:44.138984 +AWS,eu-central-1,r5dn.12xlarge,reserved_3y,no_upfront,3.009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:36.651841 +AWS,eu-central-1,r5dn.12xlarge,reserved_3y,partial_upfront,3.009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:22.406232 +AWS,eu-central-1,r5dn.12xlarge,spot,NA,1.875962,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092449 +AWS,eu-central-1,r5dn.16xlarge,on_demand,NA,6.368,USD,AWS Pricing API,2025-11-30T09:04:27.853758 +AWS,eu-central-1,r5dn.16xlarge,reserved_1y,all_upfront,4.399658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:57.433950 +AWS,eu-central-1,r5dn.16xlarge,reserved_1y,no_upfront,4.399658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:41.723908 +AWS,eu-central-1,r5dn.16xlarge,reserved_1y,partial_upfront,4.399658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:22.525258 +AWS,eu-central-1,r5dn.16xlarge,reserved_3y,all_upfront,1.466553,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:54.372660 +AWS,eu-central-1,r5dn.16xlarge,reserved_3y,no_upfront,1.466553,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:47.316942 +AWS,eu-central-1,r5dn.16xlarge,reserved_3y,partial_upfront,1.466553,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:32.732672 +AWS,eu-central-1,r5dn.16xlarge,spot,NA,2.568999,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092801 +AWS,eu-central-1,r5dn.24xlarge,on_demand,NA,9.552,USD,AWS Pricing API,2025-11-30T09:04:39.574613 +AWS,eu-central-1,r5dn.24xlarge,reserved_1y,all_upfront,5.616553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:08.953594 +AWS,eu-central-1,r5dn.24xlarge,reserved_1y,no_upfront,5.616553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:53.542478 +AWS,eu-central-1,r5dn.24xlarge,reserved_1y,partial_upfront,5.616553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:33.980328 +AWS,eu-central-1,r5dn.24xlarge,reserved_3y,all_upfront,1.872184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:05.709634 +AWS,eu-central-1,r5dn.24xlarge,reserved_3y,no_upfront,1.872184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:59.026797 +AWS,eu-central-1,r5dn.24xlarge,reserved_3y,partial_upfront,1.872184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:44.157456 +AWS,eu-central-1,r5dn.24xlarge,spot,NA,3.419582,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093215 +AWS,eu-central-1,r5dn.2xlarge,on_demand,NA,0.796,USD,AWS Pricing API,2025-11-30T09:04:44.941959 +AWS,eu-central-1,r5dn.2xlarge,reserved_1y,all_upfront,0.382,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:14.214639 +AWS,eu-central-1,r5dn.2xlarge,reserved_1y,no_upfront,0.382,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:58.911090 +AWS,eu-central-1,r5dn.2xlarge,reserved_1y,partial_upfront,0.382,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:39.268651 +AWS,eu-central-1,r5dn.2xlarge,reserved_3y,all_upfront,0.382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:10.897421 +AWS,eu-central-1,r5dn.2xlarge,reserved_3y,no_upfront,0.382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:04.453840 +AWS,eu-central-1,r5dn.2xlarge,reserved_3y,partial_upfront,0.382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:49.436486 +AWS,eu-central-1,r5dn.2xlarge,spot,NA,0.479037,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093396 +AWS,eu-central-1,r5dn.4xlarge,on_demand,NA,1.592,USD,AWS Pricing API,2025-11-30T09:04:08.797871 +AWS,eu-central-1,r5dn.4xlarge,reserved_1y,all_upfront,0.763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:38.396050 +AWS,eu-central-1,r5dn.4xlarge,reserved_1y,no_upfront,0.763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:22.561040 +AWS,eu-central-1,r5dn.4xlarge,reserved_1y,partial_upfront,0.763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:03.625358 +AWS,eu-central-1,r5dn.4xlarge,reserved_3y,all_upfront,0.763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:35.684268 +AWS,eu-central-1,r5dn.4xlarge,reserved_3y,no_upfront,0.763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:27.981951 +AWS,eu-central-1,r5dn.4xlarge,reserved_3y,partial_upfront,0.763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:13.916579 +AWS,eu-central-1,r5dn.4xlarge,spot,NA,0.713924,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092217 +AWS,eu-central-1,r5dn.8xlarge,on_demand,NA,3.184,USD,AWS Pricing API,2025-11-30T09:05:08.653370 +AWS,eu-central-1,r5dn.8xlarge,reserved_1y,all_upfront,1.872146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:37.827927 +AWS,eu-central-1,r5dn.8xlarge,reserved_1y,no_upfront,1.872146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:22.675192 +AWS,eu-central-1,r5dn.8xlarge,reserved_1y,partial_upfront,1.872146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:02.680379 +AWS,eu-central-1,r5dn.8xlarge,reserved_3y,all_upfront,0.624049,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:33.914711 +AWS,eu-central-1,r5dn.8xlarge,reserved_3y,no_upfront,0.624049,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:28.365940 +AWS,eu-central-1,r5dn.8xlarge,reserved_3y,partial_upfront,0.624049,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:12.709837 +AWS,eu-central-1,r5dn.8xlarge,spot,NA,1.54346,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094082 +AWS,eu-central-1,r5dn.large,on_demand,NA,0.199,USD,AWS Pricing API,2025-11-30T09:04:18.479701 +AWS,eu-central-1,r5dn.large,reserved_1y,all_upfront,0.140091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:48.076164 +AWS,eu-central-1,r5dn.large,reserved_1y,no_upfront,0.140091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:32.269735 +AWS,eu-central-1,r5dn.large,reserved_1y,partial_upfront,0.140091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:13.202702 +AWS,eu-central-1,r5dn.large,reserved_3y,all_upfront,0.093364,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:45.208760 +AWS,eu-central-1,r5dn.large,reserved_3y,no_upfront,0.093364,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:37.753478 +AWS,eu-central-1,r5dn.large,reserved_3y,partial_upfront,0.093364,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:23.477106 +AWS,eu-central-1,r5dn.large,spot,NA,0.09103,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092519 +AWS,eu-central-1,r5dn.metal,on_demand,NA,9.552,USD,AWS Pricing API,2025-11-30T09:04:06.468603 +AWS,eu-central-1,r5dn.metal,reserved_1y,all_upfront,7.071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:36.085337 +AWS,eu-central-1,r5dn.metal,reserved_1y,no_upfront,7.071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:20.221265 +AWS,eu-central-1,r5dn.metal,reserved_1y,partial_upfront,7.071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:01.263161 +AWS,eu-central-1,r5dn.metal,reserved_3y,all_upfront,7.071,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:33.416641 +AWS,eu-central-1,r5dn.metal,reserved_3y,no_upfront,7.071,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:25.604630 +AWS,eu-central-1,r5dn.metal,reserved_3y,partial_upfront,7.071,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:11.633776 +AWS,eu-central-1,r5dn.metal,spot,NA,1.710109,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092117 +AWS,eu-central-1,r5dn.xlarge,on_demand,NA,0.398,USD,AWS Pricing API,2025-11-30T09:04:29.916866 +AWS,eu-central-1,r5dn.xlarge,reserved_1y,all_upfront,0.295,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:59.464005 +AWS,eu-central-1,r5dn.xlarge,reserved_1y,no_upfront,0.295,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:43.776407 +AWS,eu-central-1,r5dn.xlarge,reserved_1y,partial_upfront,0.295,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:24.535863 +AWS,eu-central-1,r5dn.xlarge,reserved_3y,all_upfront,0.295,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:56.353605 +AWS,eu-central-1,r5dn.xlarge,reserved_3y,no_upfront,0.295,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:49.382739 +AWS,eu-central-1,r5dn.xlarge,reserved_3y,partial_upfront,0.295,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:34.740554 +AWS,eu-central-1,r5dn.xlarge,spot,NA,0.231494,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092939 +AWS,eu-central-1,r5n.12xlarge,on_demand,NA,4.272,USD,AWS Pricing API,2025-11-30T09:04:52.903073 +AWS,eu-central-1,r5n.12xlarge,reserved_1y,all_upfront,2.691,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:22.142887 +AWS,eu-central-1,r5n.12xlarge,reserved_1y,no_upfront,2.691,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:06.902099 +AWS,eu-central-1,r5n.12xlarge,reserved_1y,partial_upfront,2.691,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:47.114690 +AWS,eu-central-1,r5n.12xlarge,reserved_3y,all_upfront,2.691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:18.600817 +AWS,eu-central-1,r5n.12xlarge,reserved_3y,no_upfront,2.691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:12.510343 +AWS,eu-central-1,r5n.12xlarge,reserved_3y,partial_upfront,2.691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:57.215059 +AWS,eu-central-1,r5n.12xlarge,spot,NA,1.817177,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093577 +AWS,eu-central-1,r5n.16xlarge,on_demand,NA,5.696,USD,AWS Pricing API,2025-11-30T09:05:08.247036 +AWS,eu-central-1,r5n.16xlarge,reserved_1y,all_upfront,6.135959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:37.423108 +AWS,eu-central-1,r5n.16xlarge,reserved_1y,no_upfront,6.135959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:22.258661 +AWS,eu-central-1,r5n.16xlarge,reserved_1y,partial_upfront,6.135959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:02.274422 +AWS,eu-central-1,r5n.16xlarge,reserved_3y,all_upfront,2.04532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:33.508911 +AWS,eu-central-1,r5n.16xlarge,reserved_3y,no_upfront,2.04532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:27.952220 +AWS,eu-central-1,r5n.16xlarge,reserved_3y,partial_upfront,2.04532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:12.307603 +AWS,eu-central-1,r5n.16xlarge,spot,NA,1.958974,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094114 +AWS,eu-central-1,r5n.24xlarge,on_demand,NA,8.544,USD,AWS Pricing API,2025-11-30T09:04:29.508404 +AWS,eu-central-1,r5n.24xlarge,reserved_1y,all_upfront,5.126242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:59.061994 +AWS,eu-central-1,r5n.24xlarge,reserved_1y,no_upfront,5.126242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:43.370263 +AWS,eu-central-1,r5n.24xlarge,reserved_1y,partial_upfront,5.126242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:24.138263 +AWS,eu-central-1,r5n.24xlarge,reserved_3y,all_upfront,3.417414,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:55.957613 +AWS,eu-central-1,r5n.24xlarge,reserved_3y,no_upfront,3.417414,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:48.968513 +AWS,eu-central-1,r5n.24xlarge,reserved_3y,partial_upfront,3.417414,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:34.339410 +AWS,eu-central-1,r5n.24xlarge,spot,NA,2.954172,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092869 +AWS,eu-central-1,r5n.2xlarge,on_demand,NA,0.712,USD,AWS Pricing API,2025-11-30T09:04:10.291010 +AWS,eu-central-1,r5n.2xlarge,reserved_1y,all_upfront,0.521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:39.896025 +AWS,eu-central-1,r5n.2xlarge,reserved_1y,no_upfront,0.521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:24.061377 +AWS,eu-central-1,r5n.2xlarge,reserved_1y,partial_upfront,0.521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:05.111350 +AWS,eu-central-1,r5n.2xlarge,reserved_3y,all_upfront,0.521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:37.184947 +AWS,eu-central-1,r5n.2xlarge,reserved_3y,no_upfront,0.521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:29.495177 +AWS,eu-central-1,r5n.2xlarge,reserved_3y,partial_upfront,0.521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:15.403908 +AWS,eu-central-1,r5n.2xlarge,spot,NA,0.366273,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092255 +AWS,eu-central-1,r5n.4xlarge,on_demand,NA,1.424,USD,AWS Pricing API,2025-11-30T09:05:06.752668 +AWS,eu-central-1,r5n.4xlarge,reserved_1y,all_upfront,0.897,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:35.933038 +AWS,eu-central-1,r5n.4xlarge,reserved_1y,no_upfront,0.897,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:20.743515 +AWS,eu-central-1,r5n.4xlarge,reserved_1y,partial_upfront,0.897,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:00.773794 +AWS,eu-central-1,r5n.4xlarge,reserved_3y,all_upfront,0.897,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:32.052993 +AWS,eu-central-1,r5n.4xlarge,reserved_3y,no_upfront,0.897,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:26.432003 +AWS,eu-central-1,r5n.4xlarge,reserved_3y,partial_upfront,0.897,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:10.828122 +AWS,eu-central-1,r5n.4xlarge,spot,NA,0.668567,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093957 +AWS,eu-central-1,r5n.8xlarge,on_demand,NA,2.848,USD,AWS Pricing API,2025-11-30T09:04:52.762147 +AWS,eu-central-1,r5n.8xlarge,reserved_1y,all_upfront,2.084,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:21.993931 +AWS,eu-central-1,r5n.8xlarge,reserved_1y,no_upfront,2.084,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:06.763971 +AWS,eu-central-1,r5n.8xlarge,reserved_1y,partial_upfront,2.084,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:46.980652 +AWS,eu-central-1,r5n.8xlarge,reserved_3y,all_upfront,2.084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:18.470183 +AWS,eu-central-1,r5n.8xlarge,reserved_3y,no_upfront,2.084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:12.373975 +AWS,eu-central-1,r5n.8xlarge,reserved_3y,partial_upfront,2.084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:57.081229 +AWS,eu-central-1,r5n.8xlarge,spot,NA,1.144698,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093565 +AWS,eu-central-1,r5n.large,on_demand,NA,0.178,USD,AWS Pricing API,2025-11-30T09:05:14.109270 +AWS,eu-central-1,r5n.large,reserved_1y,all_upfront,0.123986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:43.256439 +AWS,eu-central-1,r5n.large,reserved_1y,no_upfront,0.123986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:28.156678 +AWS,eu-central-1,r5n.large,reserved_1y,partial_upfront,0.123986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:08.104343 +AWS,eu-central-1,r5n.large,reserved_3y,all_upfront,0.082662,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:39.248354 +AWS,eu-central-1,r5n.large,reserved_3y,no_upfront,0.082662,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:33.893317 +AWS,eu-central-1,r5n.large,reserved_3y,partial_upfront,0.082662,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:18.104348 +AWS,eu-central-1,r5n.large,spot,NA,0.090741,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094263 +AWS,eu-central-1,r5n.metal,on_demand,NA,8.544,USD,AWS Pricing API,2025-11-30T09:04:53.724332 +AWS,eu-central-1,r5n.metal,reserved_1y,all_upfront,5.023858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:22.958253 +AWS,eu-central-1,r5n.metal,reserved_1y,no_upfront,5.023858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:07.733198 +AWS,eu-central-1,r5n.metal,reserved_1y,partial_upfront,5.023858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:47.932588 +AWS,eu-central-1,r5n.metal,reserved_3y,all_upfront,1.674619,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:19.396702 +AWS,eu-central-1,r5n.metal,reserved_3y,no_upfront,1.674619,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:13.327913 +AWS,eu-central-1,r5n.metal,reserved_3y,partial_upfront,1.674619,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:58.019743 +AWS,eu-central-1,r5n.metal,spot,NA,1.682529,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093601 +AWS,eu-central-1,r5n.xlarge,on_demand,NA,0.356,USD,AWS Pricing API,2025-11-30T09:04:31.556742 +AWS,eu-central-1,r5n.xlarge,reserved_1y,all_upfront,0.209361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:01.074726 +AWS,eu-central-1,r5n.xlarge,reserved_1y,no_upfront,0.209361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:45.487107 +AWS,eu-central-1,r5n.xlarge,reserved_1y,partial_upfront,0.209361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:26.142444 +AWS,eu-central-1,r5n.xlarge,reserved_3y,all_upfront,0.069787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:57.957729 +AWS,eu-central-1,r5n.xlarge,reserved_3y,no_upfront,0.069787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:51.036727 +AWS,eu-central-1,r5n.xlarge,reserved_3y,partial_upfront,0.069787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:36.357328 +AWS,eu-central-1,r5n.xlarge,spot,NA,0.187592,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092957 +AWS,eu-central-1,r6g.12xlarge,on_demand,NA,2.9184,USD,AWS Pricing API,2025-11-30T09:04:24.717868 +AWS,eu-central-1,r6g.12xlarge,reserved_1y,all_upfront,1.8386,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:54.326118 +AWS,eu-central-1,r6g.12xlarge,reserved_1y,no_upfront,1.8386,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:38.578598 +AWS,eu-central-1,r6g.12xlarge,reserved_1y,partial_upfront,1.8386,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:19.417872 +AWS,eu-central-1,r6g.12xlarge,reserved_3y,all_upfront,1.8386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:51.342635 +AWS,eu-central-1,r6g.12xlarge,reserved_3y,no_upfront,1.8386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:44.118915 +AWS,eu-central-1,r6g.12xlarge,reserved_3y,partial_upfront,1.8386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:29.653464 +AWS,eu-central-1,r6g.12xlarge,spot,NA,0.713112,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092713 +AWS,eu-central-1,r6g.16xlarge,on_demand,NA,3.8912,USD,AWS Pricing API,2025-11-30T09:04:21.607580 +AWS,eu-central-1,r6g.16xlarge,reserved_1y,all_upfront,2.8061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:51.210555 +AWS,eu-central-1,r6g.16xlarge,reserved_1y,no_upfront,2.8061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:35.416252 +AWS,eu-central-1,r6g.16xlarge,reserved_1y,partial_upfront,2.8061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:16.314979 +AWS,eu-central-1,r6g.16xlarge,reserved_3y,all_upfront,2.8061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:48.270229 +AWS,eu-central-1,r6g.16xlarge,reserved_3y,no_upfront,2.8061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:40.938413 +AWS,eu-central-1,r6g.16xlarge,reserved_3y,partial_upfront,2.8061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:26.563517 +AWS,eu-central-1,r6g.16xlarge,spot,NA,0.946001,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092634 +AWS,eu-central-1,r6g.2xlarge,on_demand,NA,0.4864,USD,AWS Pricing API,2025-11-30T09:05:15.070373 +AWS,eu-central-1,r6g.2xlarge,reserved_1y,all_upfront,0.3064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:44.207055 +AWS,eu-central-1,r6g.2xlarge,reserved_1y,no_upfront,0.3064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:29.106766 +AWS,eu-central-1,r6g.2xlarge,reserved_1y,partial_upfront,0.3064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:09.042624 +AWS,eu-central-1,r6g.2xlarge,reserved_3y,all_upfront,0.3064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:40.187173 +AWS,eu-central-1,r6g.2xlarge,reserved_3y,no_upfront,0.3064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:34.859802 +AWS,eu-central-1,r6g.2xlarge,reserved_3y,partial_upfront,0.3064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:19.041182 +AWS,eu-central-1,r6g.2xlarge,spot,NA,0.213021,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094330 +AWS,eu-central-1,r6g.4xlarge,on_demand,NA,0.9728,USD,AWS Pricing API,2025-11-30T09:04:11.378621 +AWS,eu-central-1,r6g.4xlarge,reserved_1y,all_upfront,0.778276,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:40.984598 +AWS,eu-central-1,r6g.4xlarge,reserved_1y,no_upfront,0.778276,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:25.153368 +AWS,eu-central-1,r6g.4xlarge,reserved_1y,partial_upfront,0.778276,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:06.184675 +AWS,eu-central-1,r6g.4xlarge,reserved_3y,all_upfront,0.389159,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:38.269953 +AWS,eu-central-1,r6g.4xlarge,reserved_3y,no_upfront,0.389159,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:30.599890 +AWS,eu-central-1,r6g.4xlarge,reserved_3y,partial_upfront,0.389159,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:16.491072 +AWS,eu-central-1,r6g.4xlarge,spot,NA,0.470717,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092295 +AWS,eu-central-1,r6g.8xlarge,on_demand,NA,1.9456,USD,AWS Pricing API,2025-11-30T09:04:50.727216 +AWS,eu-central-1,r6g.8xlarge,reserved_1y,all_upfront,1.167376,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:19.955194 +AWS,eu-central-1,r6g.8xlarge,reserved_1y,no_upfront,1.167376,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:04.712872 +AWS,eu-central-1,r6g.8xlarge,reserved_1y,partial_upfront,1.167376,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:44.940703 +AWS,eu-central-1,r6g.8xlarge,reserved_3y,all_upfront,0.778259,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:16.483054 +AWS,eu-central-1,r6g.8xlarge,reserved_3y,no_upfront,0.778259,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:10.313155 +AWS,eu-central-1,r6g.8xlarge,reserved_3y,partial_upfront,0.778259,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:55.083482 +AWS,eu-central-1,r6g.8xlarge,spot,NA,0.699464,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093558 +AWS,eu-central-1,r6g.large,on_demand,NA,0.1216,USD,AWS Pricing API,2025-11-30T09:04:28.960293 +AWS,eu-central-1,r6g.large,reserved_1y,all_upfront,0.11797,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:58.507809 +AWS,eu-central-1,r6g.large,reserved_1y,no_upfront,0.11797,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:42.820810 +AWS,eu-central-1,r6g.large,reserved_1y,partial_upfront,0.11797,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:23.606404 +AWS,eu-central-1,r6g.large,reserved_3y,all_upfront,0.05899,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:55.430997 +AWS,eu-central-1,r6g.large,reserved_3y,no_upfront,0.05899,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:48.425105 +AWS,eu-central-1,r6g.large,reserved_3y,partial_upfront,0.05899,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:33.807606 +AWS,eu-central-1,r6g.large,spot,NA,0.050235,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092847 +AWS,eu-central-1,r6g.xlarge,on_demand,NA,0.2432,USD,AWS Pricing API,2025-11-30T09:04:04.270489 +AWS,eu-central-1,r6g.xlarge,reserved_1y,all_upfront,0.1274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:33.921976 +AWS,eu-central-1,r6g.xlarge,reserved_1y,no_upfront,0.1274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:18.021509 +AWS,eu-central-1,r6g.xlarge,reserved_1y,partial_upfront,0.1274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:59.055215 +AWS,eu-central-1,r6g.xlarge,reserved_3y,all_upfront,0.1274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:31.214074 +AWS,eu-central-1,r6g.xlarge,reserved_3y,no_upfront,0.1274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:23.412394 +AWS,eu-central-1,r6g.xlarge,reserved_3y,partial_upfront,0.1274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:09.490702 +AWS,eu-central-1,r6g.xlarge,spot,NA,0.098051,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092079 +AWS,eu-central-1,r6gd.12xlarge,on_demand,NA,3.312,USD,AWS Pricing API,2025-11-30T09:05:01.203965 +AWS,eu-central-1,r6gd.12xlarge,reserved_1y,all_upfront,4.727397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:30.481536 +AWS,eu-central-1,r6gd.12xlarge,reserved_1y,no_upfront,4.727397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:15.283335 +AWS,eu-central-1,r6gd.12xlarge,reserved_1y,partial_upfront,4.727397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:55.366733 +AWS,eu-central-1,r6gd.12xlarge,reserved_3y,all_upfront,1.575799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:26.723365 +AWS,eu-central-1,r6gd.12xlarge,reserved_3y,no_upfront,1.575799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:20.930456 +AWS,eu-central-1,r6gd.12xlarge,reserved_3y,partial_upfront,1.575799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:05.448352 +AWS,eu-central-1,r6gd.12xlarge,spot,NA,0.894706,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093800 +AWS,eu-central-1,r6gd.16xlarge,on_demand,NA,4.416,USD,AWS Pricing API,2025-11-30T09:04:27.449728 +AWS,eu-central-1,r6gd.16xlarge,reserved_1y,all_upfront,2.655754,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:57.028670 +AWS,eu-central-1,r6gd.16xlarge,reserved_1y,no_upfront,2.655754,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:41.314147 +AWS,eu-central-1,r6gd.16xlarge,reserved_1y,partial_upfront,2.655754,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:22.123354 +AWS,eu-central-1,r6gd.16xlarge,reserved_3y,all_upfront,1.770518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:53.978872 +AWS,eu-central-1,r6gd.16xlarge,reserved_3y,no_upfront,1.770518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:46.901781 +AWS,eu-central-1,r6gd.16xlarge,reserved_3y,partial_upfront,1.770518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:32.329371 +AWS,eu-central-1,r6gd.16xlarge,spot,NA,1.022016,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092827 +AWS,eu-central-1,r6gd.2xlarge,on_demand,NA,0.552,USD,AWS Pricing API,2025-11-30T09:04:05.783350 +AWS,eu-central-1,r6gd.2xlarge,reserved_1y,all_upfront,0.331982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:35.403977 +AWS,eu-central-1,r6gd.2xlarge,reserved_1y,no_upfront,0.331982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:19.526847 +AWS,eu-central-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.331982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:00.562133 +AWS,eu-central-1,r6gd.2xlarge,reserved_3y,all_upfront,0.221327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:32.743347 +AWS,eu-central-1,r6gd.2xlarge,reserved_3y,no_upfront,0.221327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:24.917045 +AWS,eu-central-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.221327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:10.961644 +AWS,eu-central-1,r6gd.2xlarge,spot,NA,0.22518,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092125 +AWS,eu-central-1,r6gd.4xlarge,on_demand,NA,1.104,USD,AWS Pricing API,2025-11-30T09:04:12.335798 +AWS,eu-central-1,r6gd.4xlarge,reserved_1y,all_upfront,0.6971,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:41.947129 +AWS,eu-central-1,r6gd.4xlarge,reserved_1y,no_upfront,0.6971,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:26.109323 +AWS,eu-central-1,r6gd.4xlarge,reserved_1y,partial_upfront,0.6971,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:07.142704 +AWS,eu-central-1,r6gd.4xlarge,reserved_3y,all_upfront,0.6971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:39.211009 +AWS,eu-central-1,r6gd.4xlarge,reserved_3y,no_upfront,0.6971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:31.565671 +AWS,eu-central-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.6971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:17.430828 +AWS,eu-central-1,r6gd.4xlarge,spot,NA,0.437237,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092346 +AWS,eu-central-1,r6gd.8xlarge,on_demand,NA,2.208,USD,AWS Pricing API,2025-11-30T09:04:06.602974 +AWS,eu-central-1,r6gd.8xlarge,reserved_1y,all_upfront,1.327827,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:36.220553 +AWS,eu-central-1,r6gd.8xlarge,reserved_1y,no_upfront,1.327827,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:20.360317 +AWS,eu-central-1,r6gd.8xlarge,reserved_1y,partial_upfront,1.327827,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:01.400219 +AWS,eu-central-1,r6gd.8xlarge,reserved_3y,all_upfront,0.885209,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:33.548777 +AWS,eu-central-1,r6gd.8xlarge,reserved_3y,no_upfront,0.885209,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:25.741937 +AWS,eu-central-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.885209,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:11.767569 +AWS,eu-central-1,r6gd.8xlarge,spot,NA,0.833418,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092173 +AWS,eu-central-1,r6gd.large,on_demand,NA,0.138,USD,AWS Pricing API,2025-11-30T09:04:42.465135 +AWS,eu-central-1,r6gd.large,reserved_1y,all_upfront,0.081279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:11.787732 +AWS,eu-central-1,r6gd.large,reserved_1y,no_upfront,0.081279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:56.420318 +AWS,eu-central-1,r6gd.large,reserved_1y,partial_upfront,0.081279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:36.819694 +AWS,eu-central-1,r6gd.large,reserved_3y,all_upfront,0.027093,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:08.502000 +AWS,eu-central-1,r6gd.large,reserved_3y,no_upfront,0.027093,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:01.954534 +AWS,eu-central-1,r6gd.large,reserved_3y,partial_upfront,0.027093,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:47.006306 +AWS,eu-central-1,r6gd.large,spot,NA,0.053648,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093309 +AWS,eu-central-1,r6gd.xlarge,on_demand,NA,0.276,USD,AWS Pricing API,2025-11-30T09:04:26.354493 +AWS,eu-central-1,r6gd.xlarge,reserved_1y,all_upfront,0.1447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:55.937588 +AWS,eu-central-1,r6gd.xlarge,reserved_1y,no_upfront,0.1447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:40.221829 +AWS,eu-central-1,r6gd.xlarge,reserved_1y,partial_upfront,0.1447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:21.049448 +AWS,eu-central-1,r6gd.xlarge,reserved_3y,all_upfront,0.1447,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:52.919597 +AWS,eu-central-1,r6gd.xlarge,reserved_3y,no_upfront,0.1447,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:45.787338 +AWS,eu-central-1,r6gd.xlarge,reserved_3y,partial_upfront,0.1447,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:31.266527 +AWS,eu-central-1,r6gd.xlarge,spot,NA,0.131581,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092750 +AWS,eu-central-1,r6i.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T09:05:07.024646 +AWS,eu-central-1,r6i.12xlarge,reserved_1y,all_upfront,1.65473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:36.201692 +AWS,eu-central-1,r6i.12xlarge,reserved_1y,no_upfront,1.65473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:21.017396 +AWS,eu-central-1,r6i.12xlarge,reserved_1y,partial_upfront,1.65473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:01.043731 +AWS,eu-central-1,r6i.12xlarge,reserved_3y,all_upfront,1.65473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:32.319480 +AWS,eu-central-1,r6i.12xlarge,reserved_3y,no_upfront,1.65473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:26.706410 +AWS,eu-central-1,r6i.12xlarge,reserved_3y,partial_upfront,1.65473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:11.095347 +AWS,eu-central-1,r6i.12xlarge,spot,NA,1.371505,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094007 +AWS,eu-central-1,r6i.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T09:04:15.052553 +AWS,eu-central-1,r6i.16xlarge,reserved_1y,all_upfront,6.906963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:44.703611 +AWS,eu-central-1,r6i.16xlarge,reserved_1y,no_upfront,6.906963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:28.841652 +AWS,eu-central-1,r6i.16xlarge,reserved_1y,partial_upfront,6.906963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:09.820076 +AWS,eu-central-1,r6i.16xlarge,reserved_3y,all_upfront,2.302321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:41.872750 +AWS,eu-central-1,r6i.16xlarge,reserved_3y,no_upfront,2.302321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:34.306818 +AWS,eu-central-1,r6i.16xlarge,reserved_3y,partial_upfront,2.302321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:20.121718 +AWS,eu-central-1,r6i.16xlarge,spot,NA,1.56992,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092415 +AWS,eu-central-1,r6i.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T09:04:21.471886 +AWS,eu-central-1,r6i.24xlarge,reserved_1y,all_upfront,4.8263,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:51.073797 +AWS,eu-central-1,r6i.24xlarge,reserved_1y,no_upfront,4.8263,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:35.280051 +AWS,eu-central-1,r6i.24xlarge,reserved_1y,partial_upfront,4.8263,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:16.174849 +AWS,eu-central-1,r6i.24xlarge,reserved_3y,all_upfront,4.8263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:48.135086 +AWS,eu-central-1,r6i.24xlarge,reserved_3y,no_upfront,4.8263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:40.794840 +AWS,eu-central-1,r6i.24xlarge,reserved_3y,partial_upfront,4.8263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:26.429469 +AWS,eu-central-1,r6i.24xlarge,spot,NA,2.458158,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092594 +AWS,eu-central-1,r6i.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T09:05:10.560233 +AWS,eu-central-1,r6i.2xlarge,reserved_1y,all_upfront,0.863356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:39.727846 +AWS,eu-central-1,r6i.2xlarge,reserved_1y,no_upfront,0.863356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:24.590237 +AWS,eu-central-1,r6i.2xlarge,reserved_1y,partial_upfront,0.863356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:04.570793 +AWS,eu-central-1,r6i.2xlarge,reserved_3y,all_upfront,0.287785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:35.782525 +AWS,eu-central-1,r6i.2xlarge,reserved_3y,no_upfront,0.287785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:30.316209 +AWS,eu-central-1,r6i.2xlarge,reserved_3y,partial_upfront,0.287785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:14.596205 +AWS,eu-central-1,r6i.2xlarge,spot,NA,0.256318,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094134 +AWS,eu-central-1,r6i.32xlarge,on_demand,NA,9.728,USD,AWS Pricing API,2025-11-30T09:04:15.189971 +AWS,eu-central-1,r6i.32xlarge,reserved_1y,all_upfront,13.813927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:44.837519 +AWS,eu-central-1,r6i.32xlarge,reserved_1y,no_upfront,13.813927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:28.978217 +AWS,eu-central-1,r6i.32xlarge,reserved_1y,partial_upfront,13.813927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:09.954012 +AWS,eu-central-1,r6i.32xlarge,reserved_3y,all_upfront,4.604642,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:42.006387 +AWS,eu-central-1,r6i.32xlarge,reserved_3y,no_upfront,4.604642,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:34.446421 +AWS,eu-central-1,r6i.32xlarge,reserved_3y,partial_upfront,4.604642,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:20.256268 +AWS,eu-central-1,r6i.32xlarge,spot,NA,3.490932,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092424 +AWS,eu-central-1,r6i.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T09:04:36.693142 +AWS,eu-central-1,r6i.4xlarge,reserved_1y,all_upfront,0.88099,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:06.113035 +AWS,eu-central-1,r6i.4xlarge,reserved_1y,no_upfront,0.88099,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:50.623011 +AWS,eu-central-1,r6i.4xlarge,reserved_1y,partial_upfront,0.88099,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:31.123406 +AWS,eu-central-1,r6i.4xlarge,reserved_3y,all_upfront,0.88099,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:02.895920 +AWS,eu-central-1,r6i.4xlarge,reserved_3y,no_upfront,0.88099,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:56.135231 +AWS,eu-central-1,r6i.4xlarge,reserved_3y,partial_upfront,0.88099,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:41.341458 +AWS,eu-central-1,r6i.4xlarge,spot,NA,0.499288,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093153 +AWS,eu-central-1,r6i.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T09:04:41.099228 +AWS,eu-central-1,r6i.8xlarge,reserved_1y,all_upfront,1.532176,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:10.442621 +AWS,eu-central-1,r6i.8xlarge,reserved_1y,no_upfront,1.532176,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:55.042044 +AWS,eu-central-1,r6i.8xlarge,reserved_1y,partial_upfront,1.532176,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:35.466389 +AWS,eu-central-1,r6i.8xlarge,reserved_3y,all_upfront,1.021445,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:07.173893 +AWS,eu-central-1,r6i.8xlarge,reserved_3y,no_upfront,1.021445,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:00.568424 +AWS,eu-central-1,r6i.8xlarge,reserved_3y,partial_upfront,1.021445,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:45.666024 +AWS,eu-central-1,r6i.8xlarge,spot,NA,0.830337,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093281 +AWS,eu-central-1,r6i.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T09:04:57.016017 +AWS,eu-central-1,r6i.large,reserved_1y,all_upfront,0.104837,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:26.205513 +AWS,eu-central-1,r6i.large,reserved_1y,no_upfront,0.104837,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:11.033943 +AWS,eu-central-1,r6i.large,reserved_1y,partial_upfront,0.104837,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:51.200346 +AWS,eu-central-1,r6i.large,reserved_3y,all_upfront,0.069906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:22.600688 +AWS,eu-central-1,r6i.large,reserved_3y,no_upfront,0.069906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:16.664732 +AWS,eu-central-1,r6i.large,reserved_3y,partial_upfront,0.069906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:01.276677 +AWS,eu-central-1,r6i.large,spot,NA,0.062049,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093691 +AWS,eu-central-1,r6i.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T09:04:18.618717 +AWS,eu-central-1,r6i.xlarge,reserved_1y,all_upfront,0.15858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:48.216140 +AWS,eu-central-1,r6i.xlarge,reserved_1y,no_upfront,0.15858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:32.409484 +AWS,eu-central-1,r6i.xlarge,reserved_1y,partial_upfront,0.15858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:13.337337 +AWS,eu-central-1,r6i.xlarge,reserved_3y,all_upfront,0.15858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:45.350552 +AWS,eu-central-1,r6i.xlarge,reserved_3y,no_upfront,0.15858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:37.892189 +AWS,eu-central-1,r6i.xlarge,reserved_3y,partial_upfront,0.15858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:23.609818 +AWS,eu-central-1,r6i.xlarge,spot,NA,0.127588,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092493 +AWS,eu-central-1,r6id.12xlarge,on_demand,NA,4.3596,USD,AWS Pricing API,2025-11-30T09:05:10.971498 +AWS,eu-central-1,r6id.12xlarge,reserved_1y,all_upfront,2.615757,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:40.133707 +AWS,eu-central-1,r6id.12xlarge,reserved_1y,no_upfront,2.615757,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:25.006748 +AWS,eu-central-1,r6id.12xlarge,reserved_1y,partial_upfront,2.615757,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:04.975307 +AWS,eu-central-1,r6id.12xlarge,reserved_3y,all_upfront,1.743839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:36.181302 +AWS,eu-central-1,r6id.12xlarge,reserved_3y,no_upfront,1.743839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:30.728592 +AWS,eu-central-1,r6id.12xlarge,reserved_3y,partial_upfront,1.743839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:15.000794 +AWS,eu-central-1,r6id.12xlarge,spot,NA,1.667651,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094198 +AWS,eu-central-1,r6id.16xlarge,on_demand,NA,5.8128,USD,AWS Pricing API,2025-11-30T09:04:53.860527 +AWS,eu-central-1,r6id.16xlarge,reserved_1y,all_upfront,3.417922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:23.097221 +AWS,eu-central-1,r6id.16xlarge,reserved_1y,no_upfront,3.417922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:07.870489 +AWS,eu-central-1,r6id.16xlarge,reserved_1y,partial_upfront,3.417922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:48.064498 +AWS,eu-central-1,r6id.16xlarge,reserved_3y,all_upfront,1.139307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:19.528189 +AWS,eu-central-1,r6id.16xlarge,reserved_3y,no_upfront,1.139307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:13.469013 +AWS,eu-central-1,r6id.16xlarge,reserved_3y,partial_upfront,1.139307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:58.152842 +AWS,eu-central-1,r6id.16xlarge,spot,NA,2.17055,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093633 +AWS,eu-central-1,r6id.24xlarge,on_demand,NA,8.7192,USD,AWS Pricing API,2025-11-30T09:04:06.057943 +AWS,eu-central-1,r6id.24xlarge,reserved_1y,all_upfront,5.4931,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:35.677097 +AWS,eu-central-1,r6id.24xlarge,reserved_1y,no_upfront,5.4931,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:19.799322 +AWS,eu-central-1,r6id.24xlarge,reserved_1y,partial_upfront,5.4931,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:00.843290 +AWS,eu-central-1,r6id.24xlarge,reserved_3y,all_upfront,5.4931,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:33.020947 +AWS,eu-central-1,r6id.24xlarge,reserved_3y,no_upfront,5.4931,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:25.192782 +AWS,eu-central-1,r6id.24xlarge,reserved_3y,partial_upfront,5.4931,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:11.236392 +AWS,eu-central-1,r6id.24xlarge,spot,NA,2.733226,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092129 +AWS,eu-central-1,r6id.2xlarge,on_demand,NA,0.7266,USD,AWS Pricing API,2025-11-30T09:04:56.604985 +AWS,eu-central-1,r6id.2xlarge,reserved_1y,all_upfront,0.31389,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:25.796615 +AWS,eu-central-1,r6id.2xlarge,reserved_1y,no_upfront,0.31389,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:10.623171 +AWS,eu-central-1,r6id.2xlarge,reserved_1y,partial_upfront,0.31389,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:50.780061 +AWS,eu-central-1,r6id.2xlarge,reserved_3y,all_upfront,0.31389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:22.200769 +AWS,eu-central-1,r6id.2xlarge,reserved_3y,no_upfront,0.31389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:16.238734 +AWS,eu-central-1,r6id.2xlarge,reserved_3y,partial_upfront,0.31389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:00.872784 +AWS,eu-central-1,r6id.2xlarge,spot,NA,0.299596,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093717 +AWS,eu-central-1,r6id.32xlarge,on_demand,NA,11.6256,USD,AWS Pricing API,2025-11-30T09:04:48.395573 +AWS,eu-central-1,r6id.32xlarge,reserved_1y,all_upfront,6.835845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:17.641755 +AWS,eu-central-1,r6id.32xlarge,reserved_1y,no_upfront,6.835845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:02.369071 +AWS,eu-central-1,r6id.32xlarge,reserved_1y,partial_upfront,6.835845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:42.665649 +AWS,eu-central-1,r6id.32xlarge,reserved_3y,all_upfront,2.278615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:14.227571 +AWS,eu-central-1,r6id.32xlarge,reserved_3y,no_upfront,2.278615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:07.949690 +AWS,eu-central-1,r6id.32xlarge,reserved_3y,partial_upfront,2.278615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:52.796188 +AWS,eu-central-1,r6id.32xlarge,spot,NA,3.142602,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093444 +AWS,eu-central-1,r6id.4xlarge,on_demand,NA,1.4532,USD,AWS Pricing API,2025-11-30T09:04:43.025446 +AWS,eu-central-1,r6id.4xlarge,reserved_1y,all_upfront,0.62778,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:12.329665 +AWS,eu-central-1,r6id.4xlarge,reserved_1y,no_upfront,0.62778,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:56.990168 +AWS,eu-central-1,r6id.4xlarge,reserved_1y,partial_upfront,0.62778,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:37.367798 +AWS,eu-central-1,r6id.4xlarge,reserved_3y,all_upfront,0.62778,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:09.040845 +AWS,eu-central-1,r6id.4xlarge,reserved_3y,no_upfront,0.62778,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:02.511421 +AWS,eu-central-1,r6id.4xlarge,reserved_3y,partial_upfront,0.62778,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:47.552046 +AWS,eu-central-1,r6id.4xlarge,spot,NA,0.558445,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093321 +AWS,eu-central-1,r6id.8xlarge,on_demand,NA,2.9064,USD,AWS Pricing API,2025-11-30T09:04:05.640800 +AWS,eu-central-1,r6id.8xlarge,reserved_1y,all_upfront,3.278425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:35.269775 +AWS,eu-central-1,r6id.8xlarge,reserved_1y,no_upfront,3.278425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:19.382791 +AWS,eu-central-1,r6id.8xlarge,reserved_1y,partial_upfront,3.278425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:00.427011 +AWS,eu-central-1,r6id.8xlarge,reserved_3y,all_upfront,1.092808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:32.610353 +AWS,eu-central-1,r6id.8xlarge,reserved_3y,no_upfront,1.092808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:24.779303 +AWS,eu-central-1,r6id.8xlarge,reserved_3y,partial_upfront,1.092808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:10.828274 +AWS,eu-central-1,r6id.8xlarge,spot,NA,1.051102,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092121 +AWS,eu-central-1,r6id.large,on_demand,NA,0.18165,USD,AWS Pricing API,2025-11-30T09:04:30.734546 +AWS,eu-central-1,r6id.large,reserved_1y,all_upfront,0.17656,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:00.269438 +AWS,eu-central-1,r6id.large,reserved_1y,no_upfront,0.17656,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:44.665869 +AWS,eu-central-1,r6id.large,reserved_1y,partial_upfront,0.17656,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:25.338381 +AWS,eu-central-1,r6id.large,reserved_3y,all_upfront,0.08828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:57.155289 +AWS,eu-central-1,r6id.large,reserved_3y,no_upfront,0.08828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:50.209511 +AWS,eu-central-1,r6id.large,reserved_3y,partial_upfront,0.08828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:35.539515 +AWS,eu-central-1,r6id.large,spot,NA,0.081432,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092902 +AWS,eu-central-1,r6id.xlarge,on_demand,NA,0.3633,USD,AWS Pricing API,2025-11-30T09:05:08.381224 +AWS,eu-central-1,r6id.xlarge,reserved_1y,all_upfront,0.26664,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:37.556989 +AWS,eu-central-1,r6id.xlarge,reserved_1y,no_upfront,0.26664,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:22.397390 +AWS,eu-central-1,r6id.xlarge,reserved_1y,partial_upfront,0.26664,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:02.411704 +AWS,eu-central-1,r6id.xlarge,reserved_3y,all_upfront,0.26664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:33.645291 +AWS,eu-central-1,r6id.xlarge,reserved_3y,no_upfront,0.26664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:28.090717 +AWS,eu-central-1,r6id.xlarge,reserved_3y,partial_upfront,0.26664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:12.442990 +AWS,eu-central-1,r6id.xlarge,spot,NA,0.174918,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094118 +AWS,eu-central-1,r6idn.12xlarge,on_demand,NA,5.58792,USD,AWS Pricing API,2025-11-30T09:04:28.538703 +AWS,eu-central-1,r6idn.12xlarge,reserved_1y,all_upfront,2.67952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:58.106342 +AWS,eu-central-1,r6idn.12xlarge,reserved_1y,no_upfront,2.67952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:42.406970 +AWS,eu-central-1,r6idn.12xlarge,reserved_1y,partial_upfront,2.67952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:23.197252 +AWS,eu-central-1,r6idn.12xlarge,reserved_3y,all_upfront,2.67952,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:55.032246 +AWS,eu-central-1,r6idn.12xlarge,reserved_3y,no_upfront,2.67952,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:48.005280 +AWS,eu-central-1,r6idn.12xlarge,reserved_3y,partial_upfront,2.67952,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:33.405759 +AWS,eu-central-1,r6idn.12xlarge,spot,NA,2.47177,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092853 +AWS,eu-central-1,r6idn.16xlarge,on_demand,NA,7.45056,USD,AWS Pricing API,2025-11-30T09:04:08.374506 +AWS,eu-central-1,r6idn.16xlarge,reserved_1y,all_upfront,5.51528,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:37.992024 +AWS,eu-central-1,r6idn.16xlarge,reserved_1y,no_upfront,5.51528,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:22.151002 +AWS,eu-central-1,r6idn.16xlarge,reserved_1y,partial_upfront,5.51528,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:03.216151 +AWS,eu-central-1,r6idn.16xlarge,reserved_3y,all_upfront,5.51528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:35.288448 +AWS,eu-central-1,r6idn.16xlarge,reserved_3y,no_upfront,5.51528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:27.560481 +AWS,eu-central-1,r6idn.16xlarge,reserved_3y,partial_upfront,5.51528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:13.515934 +AWS,eu-central-1,r6idn.16xlarge,spot,NA,3.364857,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092212 +AWS,eu-central-1,r6idn.24xlarge,on_demand,NA,11.17584,USD,AWS Pricing API,2025-11-30T09:04:35.848798 +AWS,eu-central-1,r6idn.24xlarge,reserved_1y,all_upfront,7.878978,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:05.304243 +AWS,eu-central-1,r6idn.24xlarge,reserved_1y,no_upfront,7.878978,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:49.772727 +AWS,eu-central-1,r6idn.24xlarge,reserved_1y,partial_upfront,7.878978,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:30.321799 +AWS,eu-central-1,r6idn.24xlarge,reserved_3y,all_upfront,5.252646,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:02.082342 +AWS,eu-central-1,r6idn.24xlarge,reserved_3y,no_upfront,5.252646,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:55.308007 +AWS,eu-central-1,r6idn.24xlarge,reserved_3y,partial_upfront,5.252646,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:40.537845 +AWS,eu-central-1,r6idn.24xlarge,spot,NA,3.944196,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093090 +AWS,eu-central-1,r6idn.2xlarge,on_demand,NA,0.93132,USD,AWS Pricing API,2025-11-30T09:04:35.290606 +AWS,eu-central-1,r6idn.2xlarge,reserved_1y,all_upfront,0.58673,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:04.757372 +AWS,eu-central-1,r6idn.2xlarge,reserved_1y,no_upfront,0.58673,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:49.225990 +AWS,eu-central-1,r6idn.2xlarge,reserved_1y,partial_upfront,0.58673,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:29.784511 +AWS,eu-central-1,r6idn.2xlarge,reserved_3y,all_upfront,0.58673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:01.542164 +AWS,eu-central-1,r6idn.2xlarge,reserved_3y,no_upfront,0.58673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:54.763844 +AWS,eu-central-1,r6idn.2xlarge,reserved_3y,partial_upfront,0.58673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:39.998908 +AWS,eu-central-1,r6idn.2xlarge,spot,NA,0.462462,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093094 +AWS,eu-central-1,r6idn.32xlarge,on_demand,NA,14.90112,USD,AWS Pricing API,2025-11-30T09:05:05.913416 +AWS,eu-central-1,r6idn.32xlarge,reserved_1y,all_upfront,9.38771,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:35.102387 +AWS,eu-central-1,r6idn.32xlarge,reserved_1y,no_upfront,9.38771,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:19.929161 +AWS,eu-central-1,r6idn.32xlarge,reserved_1y,partial_upfront,9.38771,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:59.958292 +AWS,eu-central-1,r6idn.32xlarge,reserved_3y,all_upfront,9.38771,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:31.239012 +AWS,eu-central-1,r6idn.32xlarge,reserved_3y,no_upfront,9.38771,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:25.607322 +AWS,eu-central-1,r6idn.32xlarge,reserved_3y,partial_upfront,9.38771,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:10.020275 +AWS,eu-central-1,r6idn.32xlarge,spot,NA,4.833903,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093969 +AWS,eu-central-1,r6idn.4xlarge,on_demand,NA,1.86264,USD,AWS Pricing API,2025-11-30T09:04:08.937144 +AWS,eu-central-1,r6idn.4xlarge,reserved_1y,all_upfront,1.286872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:38.533793 +AWS,eu-central-1,r6idn.4xlarge,reserved_1y,no_upfront,1.286872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:22.699925 +AWS,eu-central-1,r6idn.4xlarge,reserved_1y,partial_upfront,1.286872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:03.760662 +AWS,eu-central-1,r6idn.4xlarge,reserved_3y,all_upfront,0.428957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:35.817625 +AWS,eu-central-1,r6idn.4xlarge,reserved_3y,no_upfront,0.428957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:28.118302 +AWS,eu-central-1,r6idn.4xlarge,reserved_3y,partial_upfront,0.428957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:14.051624 +AWS,eu-central-1,r6idn.4xlarge,spot,NA,0.736612,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092242 +AWS,eu-central-1,r6idn.8xlarge,on_demand,NA,3.72528,USD,AWS Pricing API,2025-11-30T09:04:56.881859 +AWS,eu-central-1,r6idn.8xlarge,reserved_1y,all_upfront,4.862785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:26.071060 +AWS,eu-central-1,r6idn.8xlarge,reserved_1y,no_upfront,4.862785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:10.898642 +AWS,eu-central-1,r6idn.8xlarge,reserved_1y,partial_upfront,4.862785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:51.055967 +AWS,eu-central-1,r6idn.8xlarge,reserved_3y,all_upfront,1.620928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:22.465270 +AWS,eu-central-1,r6idn.8xlarge,reserved_3y,no_upfront,1.620928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:16.526410 +AWS,eu-central-1,r6idn.8xlarge,reserved_3y,partial_upfront,1.620928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:01.140368 +AWS,eu-central-1,r6idn.8xlarge,spot,NA,1.270036,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093721 +AWS,eu-central-1,r6idn.large,on_demand,NA,0.23283,USD,AWS Pricing API,2025-11-30T09:04:28.400154 +AWS,eu-central-1,r6idn.large,reserved_1y,all_upfront,0.179737,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:57.971921 +AWS,eu-central-1,r6idn.large,reserved_1y,no_upfront,0.179737,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:42.271377 +AWS,eu-central-1,r6idn.large,reserved_1y,partial_upfront,0.179737,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:23.065640 +AWS,eu-central-1,r6idn.large,reserved_3y,all_upfront,0.089859,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:54.899696 +AWS,eu-central-1,r6idn.large,reserved_3y,no_upfront,0.089859,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:47.869507 +AWS,eu-central-1,r6idn.large,reserved_3y,partial_upfront,0.089859,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:33.271619 +AWS,eu-central-1,r6idn.large,spot,NA,0.099837,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092858 +AWS,eu-central-1,r6idn.xlarge,on_demand,NA,0.46566,USD,AWS Pricing API,2025-11-30T09:04:20.376528 +AWS,eu-central-1,r6idn.xlarge,reserved_1y,all_upfront,0.328305,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:49.977152 +AWS,eu-central-1,r6idn.xlarge,reserved_1y,no_upfront,0.328305,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:34.182497 +AWS,eu-central-1,r6idn.xlarge,reserved_1y,partial_upfront,0.328305,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:15.096417 +AWS,eu-central-1,r6idn.xlarge,reserved_3y,all_upfront,0.218868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:47.074736 +AWS,eu-central-1,r6idn.xlarge,reserved_3y,no_upfront,0.218868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:39.690218 +AWS,eu-central-1,r6idn.xlarge,reserved_3y,partial_upfront,0.218868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:25.336653 +AWS,eu-central-1,r6idn.xlarge,spot,NA,0.237346,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092582 +AWS,eu-central-1,r6in.12xlarge,on_demand,NA,4.99824,USD,AWS Pricing API,2025-11-30T09:04:13.019428 +AWS,eu-central-1,r6in.12xlarge,reserved_1y,all_upfront,2.998899,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:42.642418 +AWS,eu-central-1,r6in.12xlarge,reserved_1y,no_upfront,2.998899,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:26.798383 +AWS,eu-central-1,r6in.12xlarge,reserved_1y,partial_upfront,2.998899,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:07.817241 +AWS,eu-central-1,r6in.12xlarge,reserved_3y,all_upfront,1.99928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:39.872292 +AWS,eu-central-1,r6in.12xlarge,reserved_3y,no_upfront,1.99928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:32.251189 +AWS,eu-central-1,r6in.12xlarge,reserved_3y,partial_upfront,1.99928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:18.109055 +AWS,eu-central-1,r6in.12xlarge,spot,NA,2.176371,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092363 +AWS,eu-central-1,r6in.16xlarge,on_demand,NA,6.66432,USD,AWS Pricing API,2025-11-30T09:04:04.685578 +AWS,eu-central-1,r6in.16xlarge,reserved_1y,all_upfront,3.15897,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:34.328543 +AWS,eu-central-1,r6in.16xlarge,reserved_1y,no_upfront,3.15897,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:18.427405 +AWS,eu-central-1,r6in.16xlarge,reserved_1y,partial_upfront,3.15897,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:59.454209 +AWS,eu-central-1,r6in.16xlarge,reserved_3y,all_upfront,3.15897,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:31.614164 +AWS,eu-central-1,r6in.16xlarge,reserved_3y,no_upfront,3.15897,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:23.820804 +AWS,eu-central-1,r6in.16xlarge,reserved_3y,partial_upfront,3.15897,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:09.891549 +AWS,eu-central-1,r6in.16xlarge,spot,NA,3.106112,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092067 +AWS,eu-central-1,r6in.24xlarge,on_demand,NA,9.99648,USD,AWS Pricing API,2025-11-30T09:05:05.088011 +AWS,eu-central-1,r6in.24xlarge,reserved_1y,all_upfront,6.29778,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:34.291820 +AWS,eu-central-1,r6in.24xlarge,reserved_1y,no_upfront,6.29778,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:19.106374 +AWS,eu-central-1,r6in.24xlarge,reserved_1y,partial_upfront,6.29778,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:59.141665 +AWS,eu-central-1,r6in.24xlarge,reserved_3y,all_upfront,6.29778,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:30.432437 +AWS,eu-central-1,r6in.24xlarge,reserved_3y,no_upfront,6.29778,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:24.773009 +AWS,eu-central-1,r6in.24xlarge,reserved_3y,partial_upfront,6.29778,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:09.215184 +AWS,eu-central-1,r6in.24xlarge,spot,NA,5.036612,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093932 +AWS,eu-central-1,r6in.2xlarge,on_demand,NA,0.83304,USD,AWS Pricing API,2025-11-30T09:05:07.975560 +AWS,eu-central-1,r6in.2xlarge,reserved_1y,all_upfront,0.580607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:37.149917 +AWS,eu-central-1,r6in.2xlarge,reserved_1y,no_upfront,0.580607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:21.980552 +AWS,eu-central-1,r6in.2xlarge,reserved_1y,partial_upfront,0.580607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:02.007166 +AWS,eu-central-1,r6in.2xlarge,reserved_3y,all_upfront,0.387076,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:33.243449 +AWS,eu-central-1,r6in.2xlarge,reserved_3y,no_upfront,0.387076,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:27.677906 +AWS,eu-central-1,r6in.2xlarge,reserved_3y,partial_upfront,0.387076,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:12.033959 +AWS,eu-central-1,r6in.2xlarge,spot,NA,0.349789,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094025 +AWS,eu-central-1,r6in.32xlarge,on_demand,NA,13.32864,USD,AWS Pricing API,2025-11-30T09:04:48.112413 +AWS,eu-central-1,r6in.32xlarge,reserved_1y,all_upfront,10.183099,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:17.360144 +AWS,eu-central-1,r6in.32xlarge,reserved_1y,no_upfront,10.183099,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:02.090255 +AWS,eu-central-1,r6in.32xlarge,reserved_1y,partial_upfront,10.183099,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:42.384922 +AWS,eu-central-1,r6in.32xlarge,reserved_3y,all_upfront,5.091546,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:13.964751 +AWS,eu-central-1,r6in.32xlarge,reserved_3y,no_upfront,5.091546,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:07.662245 +AWS,eu-central-1,r6in.32xlarge,reserved_3y,partial_upfront,5.091546,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:52.527272 +AWS,eu-central-1,r6in.32xlarge,spot,NA,4.962578,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093481 +AWS,eu-central-1,r6in.4xlarge,on_demand,NA,1.66608,USD,AWS Pricing API,2025-11-30T09:05:10.423646 +AWS,eu-central-1,r6in.4xlarge,reserved_1y,all_upfront,0.78974,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:39.581344 +AWS,eu-central-1,r6in.4xlarge,reserved_1y,no_upfront,0.78974,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:24.453298 +AWS,eu-central-1,r6in.4xlarge,reserved_1y,partial_upfront,0.78974,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:04.435803 +AWS,eu-central-1,r6in.4xlarge,reserved_3y,all_upfront,0.78974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:35.645336 +AWS,eu-central-1,r6in.4xlarge,reserved_3y,no_upfront,0.78974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:30.171992 +AWS,eu-central-1,r6in.4xlarge,reserved_3y,partial_upfront,0.78974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:14.463016 +AWS,eu-central-1,r6in.4xlarge,spot,NA,0.619171,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094140 +AWS,eu-central-1,r6in.8xlarge,on_demand,NA,3.33216,USD,AWS Pricing API,2025-11-30T09:04:58.384027 +AWS,eu-central-1,r6in.8xlarge,reserved_1y,all_upfront,1.959361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:27.563681 +AWS,eu-central-1,r6in.8xlarge,reserved_1y,no_upfront,1.959361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:12.412627 +AWS,eu-central-1,r6in.8xlarge,reserved_1y,partial_upfront,1.959361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:52.556244 +AWS,eu-central-1,r6in.8xlarge,reserved_3y,all_upfront,0.65312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:23.922291 +AWS,eu-central-1,r6in.8xlarge,reserved_3y,no_upfront,0.65312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:18.056216 +AWS,eu-central-1,r6in.8xlarge,reserved_3y,partial_upfront,0.65312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:02.624907 +AWS,eu-central-1,r6in.8xlarge,spot,NA,1.642383,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093729 +AWS,eu-central-1,r6in.large,on_demand,NA,0.20826,USD,AWS Pricing API,2025-11-30T09:05:13.152649 +AWS,eu-central-1,r6in.large,reserved_1y,all_upfront,0.122489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:42.315934 +AWS,eu-central-1,r6in.large,reserved_1y,no_upfront,0.122489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:27.197517 +AWS,eu-central-1,r6in.large,reserved_1y,partial_upfront,0.122489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:07.146999 +AWS,eu-central-1,r6in.large,reserved_3y,all_upfront,0.04083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:38.311609 +AWS,eu-central-1,r6in.large,reserved_3y,no_upfront,0.04083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:32.930198 +AWS,eu-central-1,r6in.large,reserved_3y,partial_upfront,0.04083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:17.163180 +AWS,eu-central-1,r6in.large,spot,NA,0.054715,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094222 +AWS,eu-central-1,r6in.xlarge,on_demand,NA,0.41652,USD,AWS Pricing API,2025-11-30T09:05:10.832162 +AWS,eu-central-1,r6in.xlarge,reserved_1y,all_upfront,0.244863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:39.998984 +AWS,eu-central-1,r6in.xlarge,reserved_1y,no_upfront,0.244863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:24.871238 +AWS,eu-central-1,r6in.xlarge,reserved_1y,partial_upfront,0.244863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:04.841334 +AWS,eu-central-1,r6in.xlarge,reserved_3y,all_upfront,0.081621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:36.048617 +AWS,eu-central-1,r6in.xlarge,reserved_3y,no_upfront,0.081621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:30.591503 +AWS,eu-central-1,r6in.xlarge,reserved_3y,partial_upfront,0.081621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:14.864824 +AWS,eu-central-1,r6in.xlarge,spot,NA,0.158252,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094154 +AWS,eu-central-1,r7a.48xlarge,on_demand,NA,17.61984,USD,AWS Pricing API,2025-11-30T09:04:11.105086 +AWS,eu-central-1,r7a.48xlarge,reserved_1y,all_upfront,11.914498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:40.713244 +AWS,eu-central-1,r7a.48xlarge,reserved_1y,no_upfront,11.914498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:24.877092 +AWS,eu-central-1,r7a.48xlarge,reserved_1y,partial_upfront,11.914498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:05.915244 +AWS,eu-central-1,r7a.48xlarge,reserved_3y,all_upfront,3.971499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:37.988024 +AWS,eu-central-1,r7a.48xlarge,reserved_3y,no_upfront,3.971499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:30.322437 +AWS,eu-central-1,r7a.48xlarge,reserved_3y,partial_upfront,3.971499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:16.219674 +AWS,eu-central-1,r7a.48xlarge,spot,NA,3.355777,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092324 +AWS,eu-central-1,r7g.12xlarge,on_demand,NA,3.1008,USD,AWS Pricing API,2025-11-30T09:04:35.019578 +AWS,eu-central-1,r7g.12xlarge,reserved_1y,all_upfront,1.953512,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:04.486331 +AWS,eu-central-1,r7g.12xlarge,reserved_1y,no_upfront,1.953512,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:48.940874 +AWS,eu-central-1,r7g.12xlarge,reserved_1y,partial_upfront,1.953512,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:29.511744 +AWS,eu-central-1,r7g.12xlarge,reserved_3y,all_upfront,1.302371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:01.275963 +AWS,eu-central-1,r7g.12xlarge,reserved_3y,no_upfront,1.302371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:54.490763 +AWS,eu-central-1,r7g.12xlarge,reserved_3y,partial_upfront,1.302371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:39.729037 +AWS,eu-central-1,r7g.12xlarge,spot,NA,1.047734,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093057 +AWS,eu-central-1,r7g.16xlarge,on_demand,NA,4.1344,USD,AWS Pricing API,2025-11-30T09:04:20.111901 +AWS,eu-central-1,r7g.16xlarge,reserved_1y,all_upfront,2.9954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:49.707180 +AWS,eu-central-1,r7g.16xlarge,reserved_1y,no_upfront,2.9954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:33.907172 +AWS,eu-central-1,r7g.16xlarge,reserved_1y,partial_upfront,2.9954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:14.828663 +AWS,eu-central-1,r7g.16xlarge,reserved_3y,all_upfront,2.9954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:46.806205 +AWS,eu-central-1,r7g.16xlarge,reserved_3y,no_upfront,2.9954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:39.416644 +AWS,eu-central-1,r7g.16xlarge,reserved_3y,partial_upfront,2.9954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:25.072705 +AWS,eu-central-1,r7g.16xlarge,spot,NA,1.363992,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092545 +AWS,eu-central-1,r7g.2xlarge,on_demand,NA,0.5168,USD,AWS Pricing API,2025-11-30T09:04:28.265461 +AWS,eu-central-1,r7g.2xlarge,reserved_1y,all_upfront,0.356611,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:57.837771 +AWS,eu-central-1,r7g.2xlarge,reserved_1y,no_upfront,0.356611,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:42.134021 +AWS,eu-central-1,r7g.2xlarge,reserved_1y,partial_upfront,0.356611,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:22.931201 +AWS,eu-central-1,r7g.2xlarge,reserved_3y,all_upfront,0.237737,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:54.767671 +AWS,eu-central-1,r7g.2xlarge,reserved_3y,no_upfront,0.237737,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:47.731912 +AWS,eu-central-1,r7g.2xlarge,reserved_3y,partial_upfront,0.237737,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:33.136615 +AWS,eu-central-1,r7g.2xlarge,spot,NA,0.27179,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092792 +AWS,eu-central-1,r7g.4xlarge,on_demand,NA,1.0336,USD,AWS Pricing API,2025-11-30T09:04:18.753117 +AWS,eu-central-1,r7g.4xlarge,reserved_1y,all_upfront,0.6837,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:48.351002 +AWS,eu-central-1,r7g.4xlarge,reserved_1y,no_upfront,0.6837,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:32.547282 +AWS,eu-central-1,r7g.4xlarge,reserved_1y,partial_upfront,0.6837,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:13.486516 +AWS,eu-central-1,r7g.4xlarge,reserved_3y,all_upfront,0.6837,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:45.483297 +AWS,eu-central-1,r7g.4xlarge,reserved_3y,no_upfront,0.6837,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:38.037516 +AWS,eu-central-1,r7g.4xlarge,reserved_3y,partial_upfront,0.6837,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:23.744625 +AWS,eu-central-1,r7g.4xlarge,spot,NA,0.4296,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092528 +AWS,eu-central-1,r7g.8xlarge,on_demand,NA,2.0672,USD,AWS Pricing API,2025-11-30T09:04:51.128281 +AWS,eu-central-1,r7g.8xlarge,reserved_1y,all_upfront,1.3675,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:20.359247 +AWS,eu-central-1,r7g.8xlarge,reserved_1y,no_upfront,1.3675,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:05.120420 +AWS,eu-central-1,r7g.8xlarge,reserved_1y,partial_upfront,1.3675,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:45.339791 +AWS,eu-central-1,r7g.8xlarge,reserved_3y,all_upfront,1.3675,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:16.880215 +AWS,eu-central-1,r7g.8xlarge,reserved_3y,no_upfront,1.3675,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:10.723712 +AWS,eu-central-1,r7g.8xlarge,reserved_3y,partial_upfront,1.3675,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:55.481745 +AWS,eu-central-1,r7g.8xlarge,spot,NA,0.875433,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093550 +AWS,eu-central-1,r7g.large,on_demand,NA,0.1292,USD,AWS Pricing API,2025-11-30T09:04:45.486221 +AWS,eu-central-1,r7g.large,reserved_1y,all_upfront,0.079795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:14.752883 +AWS,eu-central-1,r7g.large,reserved_1y,no_upfront,0.079795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:59.469249 +AWS,eu-central-1,r7g.large,reserved_1y,partial_upfront,0.079795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:39.812744 +AWS,eu-central-1,r7g.large,reserved_3y,all_upfront,0.026598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:11.437442 +AWS,eu-central-1,r7g.large,reserved_3y,no_upfront,0.026598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:05.014992 +AWS,eu-central-1,r7g.large,reserved_3y,partial_upfront,0.026598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:49.974138 +AWS,eu-central-1,r7g.large,spot,NA,0.050595,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093375 +AWS,eu-central-1,r7g.xlarge,on_demand,NA,0.2584,USD,AWS Pricing API,2025-11-30T09:04:47.962450 +AWS,eu-central-1,r7g.xlarge,reserved_1y,all_upfront,0.249615,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:17.221801 +AWS,eu-central-1,r7g.xlarge,reserved_1y,no_upfront,0.249615,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:01.951347 +AWS,eu-central-1,r7g.xlarge,reserved_1y,partial_upfront,0.249615,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:42.247600 +AWS,eu-central-1,r7g.xlarge,reserved_3y,all_upfront,0.124805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:13.833271 +AWS,eu-central-1,r7g.xlarge,reserved_3y,no_upfront,0.124805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:07.524288 +AWS,eu-central-1,r7g.xlarge,reserved_3y,partial_upfront,0.124805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:52.393595 +AWS,eu-central-1,r7g.xlarge,spot,NA,0.092419,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093477 +AWS,eu-central-1,r7gd.12xlarge,on_demand,NA,3.9236,USD,AWS Pricing API,2025-11-30T09:05:09.877302 +AWS,eu-central-1,r7gd.12xlarge,reserved_1y,all_upfront,2.354155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:39.045582 +AWS,eu-central-1,r7gd.12xlarge,reserved_1y,no_upfront,2.354155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:23.906947 +AWS,eu-central-1,r7gd.12xlarge,reserved_1y,partial_upfront,2.354155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:03.893559 +AWS,eu-central-1,r7gd.12xlarge,reserved_3y,all_upfront,1.569452,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:35.115762 +AWS,eu-central-1,r7gd.12xlarge,reserved_3y,no_upfront,1.569452,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:29.619894 +AWS,eu-central-1,r7gd.12xlarge,reserved_3y,partial_upfront,1.569452,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:13.922463 +AWS,eu-central-1,r7gd.12xlarge,spot,NA,0.993847,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094147 +AWS,eu-central-1,r7gd.16xlarge,on_demand,NA,5.2315,USD,AWS Pricing API,2025-11-30T09:05:05.225949 +AWS,eu-central-1,r7gd.16xlarge,reserved_1y,all_upfront,3.656711,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:34.428039 +AWS,eu-central-1,r7gd.16xlarge,reserved_1y,no_upfront,3.656711,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:19.244252 +AWS,eu-central-1,r7gd.16xlarge,reserved_1y,partial_upfront,3.656711,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:59.274663 +AWS,eu-central-1,r7gd.16xlarge,reserved_3y,all_upfront,2.437837,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:30.563596 +AWS,eu-central-1,r7gd.16xlarge,reserved_3y,no_upfront,2.437837,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:24.909605 +AWS,eu-central-1,r7gd.16xlarge,reserved_3y,partial_upfront,2.437837,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:09.348432 +AWS,eu-central-1,r7gd.16xlarge,spot,NA,1.183355,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093901 +AWS,eu-central-1,r7gd.2xlarge,on_demand,NA,0.6539,USD,AWS Pricing API,2025-11-30T09:04:33.918127 +AWS,eu-central-1,r7gd.2xlarge,reserved_1y,all_upfront,0.4799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:03.397878 +AWS,eu-central-1,r7gd.2xlarge,reserved_1y,no_upfront,0.4799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:47.818409 +AWS,eu-central-1,r7gd.2xlarge,reserved_1y,partial_upfront,0.4799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:28.435107 +AWS,eu-central-1,r7gd.2xlarge,reserved_3y,all_upfront,0.4799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:00.222966 +AWS,eu-central-1,r7gd.2xlarge,reserved_3y,no_upfront,0.4799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:53.376986 +AWS,eu-central-1,r7gd.2xlarge,reserved_3y,partial_upfront,0.4799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:38.653351 +AWS,eu-central-1,r7gd.2xlarge,spot,NA,0.304595,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093073 +AWS,eu-central-1,r7gd.4xlarge,on_demand,NA,1.3079,USD,AWS Pricing API,2025-11-30T09:04:54.552399 +AWS,eu-central-1,r7gd.4xlarge,reserved_1y,all_upfront,0.824,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:23.771237 +AWS,eu-central-1,r7gd.4xlarge,reserved_1y,no_upfront,0.824,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:08.556567 +AWS,eu-central-1,r7gd.4xlarge,reserved_1y,partial_upfront,0.824,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:48.733437 +AWS,eu-central-1,r7gd.4xlarge,reserved_3y,all_upfront,0.824,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:20.201402 +AWS,eu-central-1,r7gd.4xlarge,reserved_3y,no_upfront,0.824,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:14.160513 +AWS,eu-central-1,r7gd.4xlarge,reserved_3y,partial_upfront,0.824,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:58.830668 +AWS,eu-central-1,r7gd.4xlarge,spot,NA,0.541849,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093660 +AWS,eu-central-1,r7gd.8xlarge,on_demand,NA,2.6158,USD,AWS Pricing API,2025-11-30T09:04:48.532865 +AWS,eu-central-1,r7gd.8xlarge,reserved_1y,all_upfront,1.569403,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:17.778772 +AWS,eu-central-1,r7gd.8xlarge,reserved_1y,no_upfront,1.569403,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:02.506511 +AWS,eu-central-1,r7gd.8xlarge,reserved_1y,partial_upfront,1.569403,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:42.799745 +AWS,eu-central-1,r7gd.8xlarge,reserved_3y,all_upfront,1.046268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:14.363952 +AWS,eu-central-1,r7gd.8xlarge,reserved_3y,no_upfront,1.046268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:08.093595 +AWS,eu-central-1,r7gd.8xlarge,reserved_3y,partial_upfront,1.046268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:52.928407 +AWS,eu-central-1,r7gd.8xlarge,spot,NA,1.102295,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093456 +AWS,eu-central-1,r7gd.large,on_demand,NA,0.1635,USD,AWS Pricing API,2025-11-30T09:04:12.470790 +AWS,eu-central-1,r7gd.large,reserved_1y,all_upfront,0.12,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:42.091149 +AWS,eu-central-1,r7gd.large,reserved_1y,no_upfront,0.12,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:26.247843 +AWS,eu-central-1,r7gd.large,reserved_1y,partial_upfront,0.12,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:07.277589 +AWS,eu-central-1,r7gd.large,reserved_3y,all_upfront,0.12,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:39.342416 +AWS,eu-central-1,r7gd.large,reserved_3y,no_upfront,0.12,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:31.700650 +AWS,eu-central-1,r7gd.large,reserved_3y,partial_upfront,0.12,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:17.566624 +AWS,eu-central-1,r7gd.large,spot,NA,0.064044,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092337 +AWS,eu-central-1,r7gd.xlarge,on_demand,NA,0.327,USD,AWS Pricing API,2025-11-30T09:04:22.011848 +AWS,eu-central-1,r7gd.xlarge,reserved_1y,all_upfront,0.196159,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:51.619380 +AWS,eu-central-1,r7gd.xlarge,reserved_1y,no_upfront,0.196159,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:35.835739 +AWS,eu-central-1,r7gd.xlarge,reserved_1y,partial_upfront,0.196159,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:16.718965 +AWS,eu-central-1,r7gd.xlarge,reserved_3y,all_upfront,0.130786,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:48.667400 +AWS,eu-central-1,r7gd.xlarge,reserved_3y,no_upfront,0.130786,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:41.353091 +AWS,eu-central-1,r7gd.xlarge,reserved_3y,partial_upfront,0.130786,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:26.959909 +AWS,eu-central-1,r7gd.xlarge,spot,NA,0.152935,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092666 +AWS,eu-central-1,r7i.12xlarge,on_demand,NA,3.8304,USD,AWS Pricing API,2025-11-30T09:04:57.562720 +AWS,eu-central-1,r7i.12xlarge,reserved_1y,all_upfront,5.439269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:26.752048 +AWS,eu-central-1,r7i.12xlarge,reserved_1y,no_upfront,5.439269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:11.582588 +AWS,eu-central-1,r7i.12xlarge,reserved_1y,partial_upfront,5.439269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:51.748360 +AWS,eu-central-1,r7i.12xlarge,reserved_3y,all_upfront,1.81309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:23.128594 +AWS,eu-central-1,r7i.12xlarge,reserved_3y,no_upfront,1.81309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:17.225564 +AWS,eu-central-1,r7i.12xlarge,reserved_3y,partial_upfront,1.81309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:01.814493 +AWS,eu-central-1,r7i.12xlarge,spot,NA,1.733787,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093763 +AWS,eu-central-1,r7i.16xlarge,on_demand,NA,5.1072,USD,AWS Pricing API,2025-11-30T09:04:55.655415 +AWS,eu-central-1,r7i.16xlarge,reserved_1y,all_upfront,3.70017,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:24.848629 +AWS,eu-central-1,r7i.16xlarge,reserved_1y,no_upfront,3.70017,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:09.654219 +AWS,eu-central-1,r7i.16xlarge,reserved_1y,partial_upfront,3.70017,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:49.826555 +AWS,eu-central-1,r7i.16xlarge,reserved_3y,all_upfront,3.70017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:21.270897 +AWS,eu-central-1,r7i.16xlarge,reserved_3y,no_upfront,3.70017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:15.277422 +AWS,eu-central-1,r7i.16xlarge,reserved_3y,partial_upfront,3.70017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:59.904803 +AWS,eu-central-1,r7i.16xlarge,spot,NA,2.089545,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093656 +AWS,eu-central-1,r7i.24xlarge,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T09:04:52.354325 +AWS,eu-central-1,r7i.24xlarge,reserved_1y,all_upfront,4.826278,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:21.593025 +AWS,eu-central-1,r7i.24xlarge,reserved_1y,no_upfront,4.826278,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:06.352548 +AWS,eu-central-1,r7i.24xlarge,reserved_1y,partial_upfront,4.826278,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:46.574206 +AWS,eu-central-1,r7i.24xlarge,reserved_3y,all_upfront,3.217526,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:18.073820 +AWS,eu-central-1,r7i.24xlarge,reserved_3y,no_upfront,3.217526,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:11.963764 +AWS,eu-central-1,r7i.24xlarge,reserved_3y,partial_upfront,3.217526,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:56.681457 +AWS,eu-central-1,r7i.24xlarge,spot,NA,2.193227,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093593 +AWS,eu-central-1,r7i.2xlarge,on_demand,NA,0.6384,USD,AWS Pricing API,2025-11-30T09:04:54.698340 +AWS,eu-central-1,r7i.2xlarge,reserved_1y,all_upfront,0.402242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:23.908281 +AWS,eu-central-1,r7i.2xlarge,reserved_1y,no_upfront,0.402242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:08.693862 +AWS,eu-central-1,r7i.2xlarge,reserved_1y,partial_upfront,0.402242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:48.868130 +AWS,eu-central-1,r7i.2xlarge,reserved_3y,all_upfront,0.268147,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:20.336801 +AWS,eu-central-1,r7i.2xlarge,reserved_3y,no_upfront,0.268147,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:14.300805 +AWS,eu-central-1,r7i.2xlarge,reserved_3y,partial_upfront,0.268147,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:58.962968 +AWS,eu-central-1,r7i.2xlarge,spot,NA,0.300019,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093668 +AWS,eu-central-1,r7i.48xlarge,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T09:05:15.341819 +AWS,eu-central-1,r7i.48xlarge,reserved_1y,all_upfront,21.756963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:44.480435 +AWS,eu-central-1,r7i.48xlarge,reserved_1y,no_upfront,21.756963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:29.376143 +AWS,eu-central-1,r7i.48xlarge,reserved_1y,partial_upfront,21.756963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:09.310129 +AWS,eu-central-1,r7i.48xlarge,reserved_3y,all_upfront,7.252321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:40.452791 +AWS,eu-central-1,r7i.48xlarge,reserved_3y,no_upfront,7.252321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:35.132628 +AWS,eu-central-1,r7i.48xlarge,reserved_3y,partial_upfront,7.252321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:19.309328 +AWS,eu-central-1,r7i.48xlarge,spot,NA,4.426953,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094322 +AWS,eu-central-1,r7i.4xlarge,on_demand,NA,1.2768,USD,AWS Pricing API,2025-11-30T09:04:52.218184 +AWS,eu-central-1,r7i.4xlarge,reserved_1y,all_upfront,0.66603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:21.446674 +AWS,eu-central-1,r7i.4xlarge,reserved_1y,no_upfront,0.66603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:06.215207 +AWS,eu-central-1,r7i.4xlarge,reserved_1y,partial_upfront,0.66603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:46.436126 +AWS,eu-central-1,r7i.4xlarge,reserved_3y,all_upfront,0.66603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:17.942028 +AWS,eu-central-1,r7i.4xlarge,reserved_3y,no_upfront,0.66603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:11.829041 +AWS,eu-central-1,r7i.4xlarge,reserved_3y,partial_upfront,0.66603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:56.549675 +AWS,eu-central-1,r7i.4xlarge,spot,NA,0.564168,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093569 +AWS,eu-central-1,r7i.8xlarge,on_demand,NA,2.5536,USD,AWS Pricing API,2025-11-30T09:04:08.516243 +AWS,eu-central-1,r7i.8xlarge,reserved_1y,all_upfront,1.68921,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:38.125850 +AWS,eu-central-1,r7i.8xlarge,reserved_1y,no_upfront,1.68921,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:22.289080 +AWS,eu-central-1,r7i.8xlarge,reserved_1y,partial_upfront,1.68921,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:03.351703 +AWS,eu-central-1,r7i.8xlarge,reserved_3y,all_upfront,1.68921,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:35.423370 +AWS,eu-central-1,r7i.8xlarge,reserved_3y,no_upfront,1.68921,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:27.705179 +AWS,eu-central-1,r7i.8xlarge,reserved_3y,partial_upfront,1.68921,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:13.648927 +AWS,eu-central-1,r7i.8xlarge,spot,NA,0.99772,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092221 +AWS,eu-central-1,r7i.large,on_demand,NA,0.1596,USD,AWS Pricing API,2025-11-30T09:04:22.826568 +AWS,eu-central-1,r7i.large,reserved_1y,all_upfront,0.100498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:52.436819 +AWS,eu-central-1,r7i.large,reserved_1y,no_upfront,0.100498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:36.652902 +AWS,eu-central-1,r7i.large,reserved_1y,partial_upfront,0.100498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:17.526897 +AWS,eu-central-1,r7i.large,reserved_3y,all_upfront,0.067013,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:49.475550 +AWS,eu-central-1,r7i.large,reserved_3y,no_upfront,0.067013,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:42.190601 +AWS,eu-central-1,r7i.large,reserved_3y,partial_upfront,0.067013,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:27.766673 +AWS,eu-central-1,r7i.large,spot,NA,0.064695,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092645 +AWS,eu-central-1,r7i.metal-24xl,on_demand,NA,7.6608,USD,AWS Pricing API,2025-11-30T09:04:39.164441 +AWS,eu-central-1,r7i.metal-24xl,reserved_1y,all_upfront,5.285902,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:08.547805 +AWS,eu-central-1,r7i.metal-24xl,reserved_1y,no_upfront,5.285902,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:53.130143 +AWS,eu-central-1,r7i.metal-24xl,reserved_1y,partial_upfront,5.285902,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:33.576458 +AWS,eu-central-1,r7i.metal-24xl,reserved_3y,all_upfront,3.523954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:05.309747 +AWS,eu-central-1,r7i.metal-24xl,reserved_3y,no_upfront,3.523954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:58.615119 +AWS,eu-central-1,r7i.metal-24xl,reserved_3y,partial_upfront,3.523954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:43.759163 +AWS,eu-central-1,r7i.metal-24xl,spot,NA,1.234558,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093180 +AWS,eu-central-1,r7i.metal-48xl,on_demand,NA,15.3216,USD,AWS Pricing API,2025-11-30T09:04:59.065892 +AWS,eu-central-1,r7i.metal-48xl,reserved_1y,all_upfront,10.571909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:28.331441 +AWS,eu-central-1,r7i.metal-48xl,reserved_1y,no_upfront,10.571909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:13.100346 +AWS,eu-central-1,r7i.metal-48xl,reserved_1y,partial_upfront,10.571909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:53.233520 +AWS,eu-central-1,r7i.metal-48xl,reserved_3y,all_upfront,7.047936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:24.592070 +AWS,eu-central-1,r7i.metal-48xl,reserved_3y,no_upfront,7.047936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:18.747154 +AWS,eu-central-1,r7i.metal-48xl,reserved_3y,partial_upfront,7.047936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:03.292348 +AWS,eu-central-1,r7i.metal-48xl,spot,NA,2.943368,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093775 +AWS,eu-central-1,r7i.xlarge,on_demand,NA,0.3192,USD,AWS Pricing API,2025-11-30T09:04:34.469555 +AWS,eu-central-1,r7i.xlarge,reserved_1y,all_upfront,0.23126,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:03.932760 +AWS,eu-central-1,r7i.xlarge,reserved_1y,no_upfront,0.23126,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:48.374830 +AWS,eu-central-1,r7i.xlarge,reserved_1y,partial_upfront,0.23126,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:28.967881 +AWS,eu-central-1,r7i.xlarge,reserved_3y,all_upfront,0.23126,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:00.744876 +AWS,eu-central-1,r7i.xlarge,reserved_3y,no_upfront,0.23126,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:53.936148 +AWS,eu-central-1,r7i.xlarge,reserved_3y,partial_upfront,0.23126,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:39.193011 +AWS,eu-central-1,r7i.xlarge,spot,NA,0.134799,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093082 +AWS,eu-central-1,r7iz.12xlarge,on_demand,NA,5.4,USD,AWS Pricing API,2025-11-30T09:04:50.180864 +AWS,eu-central-1,r7iz.12xlarge,reserved_1y,all_upfront,3.175228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:19.409040 +AWS,eu-central-1,r7iz.12xlarge,reserved_1y,no_upfront,3.175228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:04.167174 +AWS,eu-central-1,r7iz.12xlarge,reserved_1y,partial_upfront,3.175228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:44.408936 +AWS,eu-central-1,r7iz.12xlarge,reserved_3y,all_upfront,1.058409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:15.952383 +AWS,eu-central-1,r7iz.12xlarge,reserved_3y,no_upfront,1.058409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:09.763229 +AWS,eu-central-1,r7iz.12xlarge,reserved_3y,partial_upfront,1.058409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:54.548833 +AWS,eu-central-1,r7iz.12xlarge,spot,NA,2.461119,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093517 +AWS,eu-central-1,r7iz.16xlarge,on_demand,NA,7.2,USD,AWS Pricing API,2025-11-30T09:05:14.926650 +AWS,eu-central-1,r7iz.16xlarge,reserved_1y,all_upfront,4.940753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:44.073138 +AWS,eu-central-1,r7iz.16xlarge,reserved_1y,no_upfront,4.940753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:28.968897 +AWS,eu-central-1,r7iz.16xlarge,reserved_1y,partial_upfront,4.940753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:08.906595 +AWS,eu-central-1,r7iz.16xlarge,reserved_3y,all_upfront,1.646918,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:40.054682 +AWS,eu-central-1,r7iz.16xlarge,reserved_3y,no_upfront,1.646918,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:34.723473 +AWS,eu-central-1,r7iz.16xlarge,reserved_3y,partial_upfront,1.646918,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:18.909691 +AWS,eu-central-1,r7iz.16xlarge,spot,NA,3.18504,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094279 +AWS,eu-central-1,r7iz.2xlarge,on_demand,NA,0.9,USD,AWS Pricing API,2025-11-30T09:04:54.833044 +AWS,eu-central-1,r7iz.2xlarge,reserved_1y,all_upfront,0.630168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:24.042583 +AWS,eu-central-1,r7iz.2xlarge,reserved_1y,no_upfront,0.630168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:08.830803 +AWS,eu-central-1,r7iz.2xlarge,reserved_1y,partial_upfront,0.630168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:49.002552 +AWS,eu-central-1,r7iz.2xlarge,reserved_3y,all_upfront,0.420123,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:20.468999 +AWS,eu-central-1,r7iz.2xlarge,reserved_3y,no_upfront,0.420123,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:14.436252 +AWS,eu-central-1,r7iz.2xlarge,reserved_3y,partial_upfront,0.420123,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:59.099208 +AWS,eu-central-1,r7iz.2xlarge,spot,NA,0.343138,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093648 +AWS,eu-central-1,r7iz.32xlarge,on_demand,NA,14.4,USD,AWS Pricing API,2025-11-30T09:05:13.016295 +AWS,eu-central-1,r7iz.32xlarge,reserved_1y,all_upfront,6.99498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:42.171015 +AWS,eu-central-1,r7iz.32xlarge,reserved_1y,no_upfront,6.99498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:27.061827 +AWS,eu-central-1,r7iz.32xlarge,reserved_1y,partial_upfront,6.99498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:07.013769 +AWS,eu-central-1,r7iz.32xlarge,reserved_3y,all_upfront,6.99498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:38.177689 +AWS,eu-central-1,r7iz.32xlarge,reserved_3y,no_upfront,6.99498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:32.793215 +AWS,eu-central-1,r7iz.32xlarge,reserved_3y,partial_upfront,6.99498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:17.028850 +AWS,eu-central-1,r7iz.32xlarge,spot,NA,5.870419,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094251 +AWS,eu-central-1,r7iz.4xlarge,on_demand,NA,1.8,USD,AWS Pricing API,2025-11-30T09:05:11.107627 +AWS,eu-central-1,r7iz.4xlarge,reserved_1y,all_upfront,2.380251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:40.270826 +AWS,eu-central-1,r7iz.4xlarge,reserved_1y,no_upfront,2.380251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:25.143004 +AWS,eu-central-1,r7iz.4xlarge,reserved_1y,partial_upfront,2.380251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:05.109280 +AWS,eu-central-1,r7iz.4xlarge,reserved_3y,all_upfront,0.793417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:36.313178 +AWS,eu-central-1,r7iz.4xlarge,reserved_3y,no_upfront,0.793417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:30.865032 +AWS,eu-central-1,r7iz.4xlarge,reserved_3y,partial_upfront,0.793417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:15.136507 +AWS,eu-central-1,r7iz.4xlarge,spot,NA,0.714092,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094178 +AWS,eu-central-1,r7iz.8xlarge,on_demand,NA,3.6,USD,AWS Pricing API,2025-11-30T09:04:13.561483 +AWS,eu-central-1,r7iz.8xlarge,reserved_1y,all_upfront,2.47032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:43.201722 +AWS,eu-central-1,r7iz.8xlarge,reserved_1y,no_upfront,2.47032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:27.345027 +AWS,eu-central-1,r7iz.8xlarge,reserved_1y,partial_upfront,2.47032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:08.352142 +AWS,eu-central-1,r7iz.8xlarge,reserved_3y,all_upfront,0.82344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:40.401790 +AWS,eu-central-1,r7iz.8xlarge,reserved_3y,no_upfront,0.82344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:32.806692 +AWS,eu-central-1,r7iz.8xlarge,reserved_3y,partial_upfront,0.82344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:18.644521 +AWS,eu-central-1,r7iz.8xlarge,spot,NA,1.114549,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092384 +AWS,eu-central-1,r7iz.xlarge,on_demand,NA,0.45,USD,AWS Pricing API,2025-11-30T09:04:59.737411 +AWS,eu-central-1,r7iz.xlarge,reserved_1y,all_upfront,0.270046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:29.002649 +AWS,eu-central-1,r7iz.xlarge,reserved_1y,no_upfront,0.270046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:13.787726 +AWS,eu-central-1,r7iz.xlarge,reserved_1y,partial_upfront,0.270046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:53.903460 +AWS,eu-central-1,r7iz.xlarge,reserved_3y,all_upfront,0.180015,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:25.267441 +AWS,eu-central-1,r7iz.xlarge,reserved_3y,no_upfront,0.180015,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:19.427499 +AWS,eu-central-1,r7iz.xlarge,reserved_3y,partial_upfront,0.180015,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:03.962993 +AWS,eu-central-1,r7iz.xlarge,spot,NA,0.180794,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093796 +AWS,eu-central-1,r8g.12xlarge,on_demand,NA,3.41088,USD,AWS Pricing API,2025-11-30T09:04:41.371371 +AWS,eu-central-1,r8g.12xlarge,reserved_1y,all_upfront,3.294963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:10.712744 +AWS,eu-central-1,r8g.12xlarge,reserved_1y,no_upfront,3.294963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:55.312778 +AWS,eu-central-1,r8g.12xlarge,reserved_1y,partial_upfront,3.294963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:35.735024 +AWS,eu-central-1,r8g.12xlarge,reserved_3y,all_upfront,1.647474,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:07.436941 +AWS,eu-central-1,r8g.12xlarge,reserved_3y,no_upfront,1.647474,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:00.843778 +AWS,eu-central-1,r8g.12xlarge,reserved_3y,partial_upfront,1.647474,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:45.935073 +AWS,eu-central-1,r8g.12xlarge,spot,NA,1.068645,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093266 +AWS,eu-central-1,r8g.16xlarge,on_demand,NA,4.54784,USD,AWS Pricing API,2025-11-30T09:05:04.673858 +AWS,eu-central-1,r8g.16xlarge,reserved_1y,all_upfront,2.0629,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:33.878970 +AWS,eu-central-1,r8g.16xlarge,reserved_1y,no_upfront,2.0629,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:18.696013 +AWS,eu-central-1,r8g.16xlarge,reserved_1y,partial_upfront,2.0629,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:58.736948 +AWS,eu-central-1,r8g.16xlarge,reserved_3y,all_upfront,2.0629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:30.036811 +AWS,eu-central-1,r8g.16xlarge,reserved_3y,no_upfront,2.0629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:24.361697 +AWS,eu-central-1,r8g.16xlarge,reserved_3y,partial_upfront,2.0629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:08.802806 +AWS,eu-central-1,r8g.16xlarge,spot,NA,1.40847,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093926 +AWS,eu-central-1,r8g.24xlarge,on_demand,NA,6.82176,USD,AWS Pricing API,2025-11-30T09:04:32.506396 +AWS,eu-central-1,r8g.24xlarge,reserved_1y,all_upfront,4.211758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:02.043621 +AWS,eu-central-1,r8g.24xlarge,reserved_1y,no_upfront,4.211758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:46.452669 +AWS,eu-central-1,r8g.24xlarge,reserved_1y,partial_upfront,4.211758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:27.093244 +AWS,eu-central-1,r8g.24xlarge,reserved_3y,all_upfront,1.403919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:58.885990 +AWS,eu-central-1,r8g.24xlarge,reserved_3y,no_upfront,1.403919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:52.010182 +AWS,eu-central-1,r8g.24xlarge,reserved_3y,partial_upfront,1.403919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:37.310988 +AWS,eu-central-1,r8g.24xlarge,spot,NA,2.088387,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093025 +AWS,eu-central-1,r8g.2xlarge,on_demand,NA,0.56848,USD,AWS Pricing API,2025-11-30T09:04:45.215283 +AWS,eu-central-1,r8g.2xlarge,reserved_1y,all_upfront,0.35818,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:14.483930 +AWS,eu-central-1,r8g.2xlarge,reserved_1y,no_upfront,0.35818,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:59.194591 +AWS,eu-central-1,r8g.2xlarge,reserved_1y,partial_upfront,0.35818,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:39.539899 +AWS,eu-central-1,r8g.2xlarge,reserved_3y,all_upfront,0.238773,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:11.167020 +AWS,eu-central-1,r8g.2xlarge,reserved_3y,no_upfront,0.238773,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:04.738781 +AWS,eu-central-1,r8g.2xlarge,reserved_3y,partial_upfront,0.238773,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:49.708807 +AWS,eu-central-1,r8g.2xlarge,spot,NA,0.277364,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093371 +AWS,eu-central-1,r8g.48xlarge,on_demand,NA,13.64352,USD,AWS Pricing API,2025-11-30T09:04:31.008390 +AWS,eu-central-1,r8g.48xlarge,reserved_1y,all_upfront,8.423516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:00.537984 +AWS,eu-central-1,r8g.48xlarge,reserved_1y,no_upfront,8.423516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:44.941558 +AWS,eu-central-1,r8g.48xlarge,reserved_1y,partial_upfront,8.423516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:25.608385 +AWS,eu-central-1,r8g.48xlarge,reserved_3y,all_upfront,2.807839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:57.435835 +AWS,eu-central-1,r8g.48xlarge,reserved_3y,no_upfront,2.807839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:50.485130 +AWS,eu-central-1,r8g.48xlarge,reserved_3y,partial_upfront,2.807839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:35.817824 +AWS,eu-central-1,r8g.48xlarge,spot,NA,3.422735,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092906 +AWS,eu-central-1,r8g.4xlarge,on_demand,NA,1.13696,USD,AWS Pricing API,2025-11-30T09:04:49.768945 +AWS,eu-central-1,r8g.4xlarge,reserved_1y,all_upfront,0.716245,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:18.998880 +AWS,eu-central-1,r8g.4xlarge,reserved_1y,no_upfront,0.716245,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:03.752487 +AWS,eu-central-1,r8g.4xlarge,reserved_1y,partial_upfront,0.716245,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:44.005752 +AWS,eu-central-1,r8g.4xlarge,reserved_3y,all_upfront,0.477508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:15.556846 +AWS,eu-central-1,r8g.4xlarge,reserved_3y,no_upfront,0.477508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:09.344268 +AWS,eu-central-1,r8g.4xlarge,reserved_3y,partial_upfront,0.477508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:54.148866 +AWS,eu-central-1,r8g.4xlarge,spot,NA,0.492812,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093521 +AWS,eu-central-1,r8g.8xlarge,on_demand,NA,2.27392,USD,AWS Pricing API,2025-11-30T09:04:10.014605 +AWS,eu-central-1,r8g.8xlarge,reserved_1y,all_upfront,1.03145,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:39.623118 +AWS,eu-central-1,r8g.8xlarge,reserved_1y,no_upfront,1.03145,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:23.782816 +AWS,eu-central-1,r8g.8xlarge,reserved_1y,partial_upfront,1.03145,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:04.836414 +AWS,eu-central-1,r8g.8xlarge,reserved_3y,all_upfront,1.03145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:36.909057 +AWS,eu-central-1,r8g.8xlarge,reserved_3y,no_upfront,1.03145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:29.218824 +AWS,eu-central-1,r8g.8xlarge,reserved_3y,partial_upfront,1.03145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:15.136179 +AWS,eu-central-1,r8g.8xlarge,spot,NA,1.120076,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092251 +AWS,eu-central-1,r8g.large,on_demand,NA,0.14212,USD,AWS Pricing API,2025-11-30T09:04:48.250364 +AWS,eu-central-1,r8g.large,reserved_1y,all_upfront,0.09401,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:17.507372 +AWS,eu-central-1,r8g.large,reserved_1y,no_upfront,0.09401,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:02.232089 +AWS,eu-central-1,r8g.large,reserved_1y,partial_upfront,0.09401,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:42.517817 +AWS,eu-central-1,r8g.large,reserved_3y,all_upfront,0.09401,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:14.097228 +AWS,eu-central-1,r8g.large,reserved_3y,no_upfront,0.09401,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:07.811382 +AWS,eu-central-1,r8g.large,reserved_3y,partial_upfront,0.09401,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:52.662737 +AWS,eu-central-1,r8g.large,spot,NA,0.060385,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093464 +AWS,eu-central-1,r8g.xlarge,on_demand,NA,0.28424,USD,AWS Pricing API,2025-11-30T09:04:30.597886 +AWS,eu-central-1,r8g.xlarge,reserved_1y,all_upfront,0.20593,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:00.136228 +AWS,eu-central-1,r8g.xlarge,reserved_1y,no_upfront,0.20593,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:44.528967 +AWS,eu-central-1,r8g.xlarge,reserved_1y,partial_upfront,0.20593,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:40:25.206130 +AWS,eu-central-1,r8g.xlarge,reserved_3y,all_upfront,0.20593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:57.022610 +AWS,eu-central-1,r8g.xlarge,reserved_3y,no_upfront,0.20593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:50.070786 +AWS,eu-central-1,r8g.xlarge,reserved_3y,partial_upfront,0.20593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:35.407185 +AWS,eu-central-1,r8g.xlarge,spot,NA,0.148052,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092915 +AWS,eu-central-1,r8gd.12xlarge,on_demand,NA,4.23744,USD,AWS Pricing API,2025-11-30T09:04:49.085389 +AWS,eu-central-1,r8gd.12xlarge,spot,NA,0.949285,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093505 +AWS,eu-central-1,r8gd.16xlarge,on_demand,NA,5.64992,USD,AWS Pricing API,2025-11-30T09:04:37.238693 +AWS,eu-central-1,r8gd.16xlarge,spot,NA,1.100355,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093125 +AWS,eu-central-1,r8gd.24xlarge,on_demand,NA,8.47488,USD,AWS Pricing API,2025-11-30T09:04:24.447480 +AWS,eu-central-1,r8gd.24xlarge,spot,NA,1.856736,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092725 +AWS,eu-central-1,r8gd.2xlarge,on_demand,NA,0.70624,USD,AWS Pricing API,2025-11-30T09:04:30.052983 +AWS,eu-central-1,r8gd.2xlarge,spot,NA,0.230166,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092952 +AWS,eu-central-1,r8gd.48xlarge,on_demand,NA,16.94976,USD,AWS Pricing API,2025-11-30T09:05:04.399311 +AWS,eu-central-1,r8gd.48xlarge,spot,NA,3.634451,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093938 +AWS,eu-central-1,r8gd.4xlarge,on_demand,NA,1.41248,USD,AWS Pricing API,2025-11-30T09:04:58.797221 +AWS,eu-central-1,r8gd.4xlarge,spot,NA,0.52352,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093779 +AWS,eu-central-1,r8gd.8xlarge,on_demand,NA,2.82496,USD,AWS Pricing API,2025-11-30T09:04:26.081699 +AWS,eu-central-1,r8gd.8xlarge,spot,NA,1.111876,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092780 +AWS,eu-central-1,r8gd.large,on_demand,NA,0.17656,USD,AWS Pricing API,2025-11-30T09:04:19.023304 +AWS,eu-central-1,r8gd.large,spot,NA,0.059386,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092557 +AWS,eu-central-1,r8gd.xlarge,on_demand,NA,0.35312,USD,AWS Pricing API,2025-11-30T09:04:19.837682 +AWS,eu-central-1,r8gd.xlarge,spot,NA,0.119798,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092549 +AWS,eu-central-1,r8i.12xlarge,on_demand,NA,4.02192,USD,AWS Pricing API,2025-11-30T09:04:25.947389 +AWS,eu-central-1,r8i.12xlarge,spot,NA,1.128209,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092788 +AWS,eu-central-1,r8i.16xlarge,on_demand,NA,5.36256,USD,AWS Pricing API,2025-11-30T09:04:58.522613 +AWS,eu-central-1,r8i.16xlarge,spot,NA,1.416302,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093767 +AWS,eu-central-1,r8i.24xlarge,on_demand,NA,8.04384,USD,AWS Pricing API,2025-11-30T09:05:04.261413 +AWS,eu-central-1,r8i.24xlarge,spot,NA,2.022,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093944 +AWS,eu-central-1,r8i.2xlarge,on_demand,NA,0.67032,USD,AWS Pricing API,2025-11-30T09:04:52.488084 +AWS,eu-central-1,r8i.2xlarge,spot,NA,0.259606,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093597 +AWS,eu-central-1,r8i.48xlarge,on_demand,NA,16.08768,USD,AWS Pricing API,2025-11-30T09:05:11.658676 +AWS,eu-central-1,r8i.48xlarge,spot,NA,3.369086,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.094174 +AWS,eu-central-1,r8i.4xlarge,on_demand,NA,1.34064,USD,AWS Pricing API,2025-11-30T09:04:47.814636 +AWS,eu-central-1,r8i.4xlarge,spot,NA,0.442632,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093452 +AWS,eu-central-1,r8i.8xlarge,on_demand,NA,2.68128,USD,AWS Pricing API,2025-11-30T09:04:40.961795 +AWS,eu-central-1,r8i.8xlarge,spot,NA,0.812017,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.093269 +AWS,eu-central-1,r8i.large,on_demand,NA,0.16758,USD,AWS Pricing API,2025-11-30T09:04:05.093042 +AWS,eu-central-1,r8i.large,spot,NA,0.05985,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092084 +AWS,eu-central-1,r8i.xlarge,on_demand,NA,0.33516,USD,AWS Pricing API,2025-11-30T09:04:15.325404 +AWS,eu-central-1,r8i.xlarge,spot,NA,0.125187,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092420 +AWS,eu-central-1,z1d.12xlarge,on_demand,NA,5.4,USD,AWS Pricing API,2025-11-30T09:03:59.702556 +AWS,eu-central-1,z1d.12xlarge,reserved_1y,all_upfront,3.781639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:29.412492 +AWS,eu-central-1,z1d.12xlarge,reserved_1y,no_upfront,3.781639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:13.486917 +AWS,eu-central-1,z1d.12xlarge,reserved_1y,partial_upfront,3.781639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:54.595655 +AWS,eu-central-1,z1d.12xlarge,reserved_3y,all_upfront,2.521213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:26.830610 +AWS,eu-central-1,z1d.12xlarge,reserved_3y,no_upfront,2.521213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:18.823591 +AWS,eu-central-1,z1d.12xlarge,reserved_3y,partial_upfront,2.521213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:05.058307 +AWS,eu-central-1,z1d.12xlarge,spot,NA,1.872067,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091950 +AWS,eu-central-1,z1d.2xlarge,on_demand,NA,0.9,USD,AWS Pricing API,2025-11-30T09:04:03.166246 +AWS,eu-central-1,z1d.2xlarge,reserved_1y,all_upfront,0.662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:32.833485 +AWS,eu-central-1,z1d.2xlarge,reserved_1y,no_upfront,0.662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:16.919500 +AWS,eu-central-1,z1d.2xlarge,reserved_1y,partial_upfront,0.662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:57.971084 +AWS,eu-central-1,z1d.2xlarge,reserved_3y,all_upfront,0.662,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:30.149377 +AWS,eu-central-1,z1d.2xlarge,reserved_3y,no_upfront,0.662,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:22.293943 +AWS,eu-central-1,z1d.2xlarge,reserved_3y,partial_upfront,0.662,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:08.415388 +AWS,eu-central-1,z1d.2xlarge,spot,NA,0.413066,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092029 +AWS,eu-central-1,z1d.3xlarge,on_demand,NA,1.35,USD,AWS Pricing API,2025-11-30T09:04:02.054808 +AWS,eu-central-1,z1d.3xlarge,reserved_1y,all_upfront,0.851,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:31.743341 +AWS,eu-central-1,z1d.3xlarge,reserved_1y,no_upfront,0.851,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:15.823445 +AWS,eu-central-1,z1d.3xlarge,reserved_1y,partial_upfront,0.851,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:56.878270 +AWS,eu-central-1,z1d.3xlarge,reserved_3y,all_upfront,0.851,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:29.084767 +AWS,eu-central-1,z1d.3xlarge,reserved_3y,no_upfront,0.851,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:21.182154 +AWS,eu-central-1,z1d.3xlarge,reserved_3y,partial_upfront,0.851,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:07.336662 +AWS,eu-central-1,z1d.3xlarge,spot,NA,0.535843,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091974 +AWS,eu-central-1,z1d.6xlarge,on_demand,NA,2.7,USD,AWS Pricing API,2025-11-30T09:04:02.191443 +AWS,eu-central-1,z1d.6xlarge,reserved_1y,all_upfront,2.977968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:31.880034 +AWS,eu-central-1,z1d.6xlarge,reserved_1y,no_upfront,2.977968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:15.958825 +AWS,eu-central-1,z1d.6xlarge,reserved_1y,partial_upfront,2.977968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:57.012557 +AWS,eu-central-1,z1d.6xlarge,reserved_3y,all_upfront,0.992656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:29.218044 +AWS,eu-central-1,z1d.6xlarge,reserved_3y,no_upfront,0.992656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:21.330298 +AWS,eu-central-1,z1d.6xlarge,reserved_3y,partial_upfront,0.992656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:07.469670 +AWS,eu-central-1,z1d.6xlarge,spot,NA,0.979577,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.091984 +AWS,eu-central-1,z1d.large,on_demand,NA,0.225,USD,AWS Pricing API,2025-11-30T09:04:02.470774 +AWS,eu-central-1,z1d.large,reserved_1y,all_upfront,0.175963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:32.151768 +AWS,eu-central-1,z1d.large,reserved_1y,no_upfront,0.175963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:16.237302 +AWS,eu-central-1,z1d.large,reserved_1y,partial_upfront,0.175963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:57.282928 +AWS,eu-central-1,z1d.large,reserved_3y,all_upfront,0.087988,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:29.484108 +AWS,eu-central-1,z1d.large,reserved_3y,no_upfront,0.087988,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:21.607119 +AWS,eu-central-1,z1d.large,reserved_3y,partial_upfront,0.087988,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:07.747502 +AWS,eu-central-1,z1d.large,spot,NA,0.074854,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092033 +AWS,eu-central-1,z1d.xlarge,on_demand,NA,0.45,USD,AWS Pricing API,2025-11-30T09:04:03.443715 +AWS,eu-central-1,z1d.xlarge,reserved_1y,all_upfront,0.404653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:33.104848 +AWS,eu-central-1,z1d.xlarge,reserved_1y,no_upfront,0.404653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:17.199272 +AWS,eu-central-1,z1d.xlarge,reserved_1y,partial_upfront,0.404653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:58.244996 +AWS,eu-central-1,z1d.xlarge,reserved_3y,all_upfront,0.202218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:30.414846 +AWS,eu-central-1,z1d.xlarge,reserved_3y,no_upfront,0.202218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:22.567105 +AWS,eu-central-1,z1d.xlarge,reserved_3y,partial_upfront,0.202218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:08.679416 +AWS,eu-central-1,z1d.xlarge,spot,NA,0.214613,USD,AWS EC2 API (90-day avg),2025-11-30T09:49:34.092021 +AWS,eu-north-1,c5.12xlarge,on_demand,NA,2.184,USD,AWS Pricing API,2025-11-30T09:08:42.835697 +AWS,eu-north-1,c5.12xlarge,reserved_1y,all_upfront,1.203,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:11.838845 +AWS,eu-north-1,c5.12xlarge,reserved_1y,no_upfront,1.203,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:58.893579 +AWS,eu-north-1,c5.12xlarge,reserved_1y,partial_upfront,1.203,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:35.423299 +AWS,eu-north-1,c5.12xlarge,reserved_3y,all_upfront,1.203,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:03.381368 +AWS,eu-north-1,c5.12xlarge,reserved_3y,no_upfront,1.203,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:06.287609 +AWS,eu-north-1,c5.12xlarge,reserved_3y,partial_upfront,1.203,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:44.905073 +AWS,eu-north-1,c5.12xlarge,spot,NA,0.626784,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502140 +AWS,eu-north-1,c5.18xlarge,on_demand,NA,3.276,USD,AWS Pricing API,2025-11-30T09:08:51.192224 +AWS,eu-north-1,c5.18xlarge,reserved_1y,all_upfront,2.064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:20.231966 +AWS,eu-north-1,c5.18xlarge,reserved_1y,no_upfront,2.064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:07.417668 +AWS,eu-north-1,c5.18xlarge,reserved_1y,partial_upfront,2.064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:43.757490 +AWS,eu-north-1,c5.18xlarge,reserved_3y,all_upfront,2.064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:11.563187 +AWS,eu-north-1,c5.18xlarge,reserved_3y,no_upfront,2.064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:14.879860 +AWS,eu-north-1,c5.18xlarge,reserved_3y,partial_upfront,2.064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:53.231718 +AWS,eu-north-1,c5.18xlarge,spot,NA,0.935215,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502338 +AWS,eu-north-1,c5.24xlarge,on_demand,NA,4.368,USD,AWS Pricing API,2025-11-30T09:07:56.310767 +AWS,eu-north-1,c5.24xlarge,reserved_1y,all_upfront,2.620388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:25.147052 +AWS,eu-north-1,c5.24xlarge,reserved_1y,no_upfront,2.620388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:11.716102 +AWS,eu-north-1,c5.24xlarge,reserved_1y,partial_upfront,2.620388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:48.960908 +AWS,eu-north-1,c5.24xlarge,reserved_3y,all_upfront,1.746796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:17.695507 +AWS,eu-north-1,c5.24xlarge,reserved_3y,no_upfront,1.746796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:18.661440 +AWS,eu-north-1,c5.24xlarge,reserved_3y,partial_upfront,1.746796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:58.617330 +AWS,eu-north-1,c5.24xlarge,spot,NA,1.271963,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501137 +AWS,eu-north-1,c5.4xlarge,on_demand,NA,0.728,USD,AWS Pricing API,2025-11-30T09:08:35.737793 +AWS,eu-north-1,c5.4xlarge,reserved_1y,all_upfront,0.582758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:04.690838 +AWS,eu-north-1,c5.4xlarge,reserved_1y,no_upfront,0.582758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:51.666584 +AWS,eu-north-1,c5.4xlarge,reserved_1y,partial_upfront,0.582758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:28.293235 +AWS,eu-north-1,c5.4xlarge,reserved_3y,all_upfront,0.291586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:56.313483 +AWS,eu-north-1,c5.4xlarge,reserved_3y,no_upfront,0.291586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:58.920163 +AWS,eu-north-1,c5.4xlarge,reserved_3y,partial_upfront,0.291586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:37.792743 +AWS,eu-north-1,c5.4xlarge,spot,NA,0.255137,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501966 +AWS,eu-north-1,c5.9xlarge,on_demand,NA,1.638,USD,AWS Pricing API,2025-11-30T09:07:55.644022 +AWS,eu-north-1,c5.9xlarge,reserved_1y,all_upfront,1.235808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:24.482428 +AWS,eu-north-1,c5.9xlarge,reserved_1y,no_upfront,1.235808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:11.030761 +AWS,eu-north-1,c5.9xlarge,reserved_1y,partial_upfront,1.235808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:48.285883 +AWS,eu-north-1,c5.9xlarge,reserved_3y,all_upfront,0.823936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:17.032985 +AWS,eu-north-1,c5.9xlarge,reserved_3y,no_upfront,0.823936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:17.972859 +AWS,eu-north-1,c5.9xlarge,reserved_3y,partial_upfront,0.823936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:57.952734 +AWS,eu-north-1,c5.9xlarge,spot,NA,0.507285,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501133 +AWS,eu-north-1,c5a.12xlarge,on_demand,NA,1.968,USD,AWS Pricing API,2025-11-30T09:08:51.739473 +AWS,eu-north-1,c5a.12xlarge,reserved_1y,all_upfront,1.180411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:20.802411 +AWS,eu-north-1,c5a.12xlarge,reserved_1y,no_upfront,1.180411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:07.969409 +AWS,eu-north-1,c5a.12xlarge,reserved_1y,partial_upfront,1.180411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:44.290704 +AWS,eu-north-1,c5a.12xlarge,reserved_3y,all_upfront,0.786804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:12.092414 +AWS,eu-north-1,c5a.12xlarge,reserved_3y,no_upfront,0.786804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:15.431147 +AWS,eu-north-1,c5a.12xlarge,reserved_3y,partial_upfront,0.786804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:53.764056 +AWS,eu-north-1,c5a.12xlarge,spot,NA,0.614265,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502350 +AWS,eu-north-1,c5a.16xlarge,on_demand,NA,2.624,USD,AWS Pricing API,2025-11-30T09:08:11.605415 +AWS,eu-north-1,c5a.16xlarge,reserved_1y,all_upfront,1.944064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:40.402591 +AWS,eu-north-1,c5a.16xlarge,reserved_1y,no_upfront,1.944064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:27.246513 +AWS,eu-north-1,c5a.16xlarge,reserved_1y,partial_upfront,1.944064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:04.193772 +AWS,eu-north-1,c5a.16xlarge,reserved_3y,all_upfront,0.648021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:32.640357 +AWS,eu-north-1,c5a.16xlarge,reserved_3y,no_upfront,0.648021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:34.213688 +AWS,eu-north-1,c5a.16xlarge,reserved_3y,partial_upfront,0.648021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:13.797518 +AWS,eu-north-1,c5a.16xlarge,spot,NA,0.763834,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501438 +AWS,eu-north-1,c5a.24xlarge,on_demand,NA,3.936,USD,AWS Pricing API,2025-11-30T09:08:57.932953 +AWS,eu-north-1,c5a.24xlarge,reserved_1y,all_upfront,2.361822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:27.000186 +AWS,eu-north-1,c5a.24xlarge,reserved_1y,no_upfront,2.361822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:14.294676 +AWS,eu-north-1,c5a.24xlarge,reserved_1y,partial_upfront,2.361822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:50.447243 +AWS,eu-north-1,c5a.24xlarge,reserved_3y,all_upfront,1.574607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:18.173689 +AWS,eu-north-1,c5a.24xlarge,reserved_3y,no_upfront,1.574607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:21.744093 +AWS,eu-north-1,c5a.24xlarge,reserved_3y,partial_upfront,1.574607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:59.920224 +AWS,eu-north-1,c5a.24xlarge,spot,NA,1.181641,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502477 +AWS,eu-north-1,c5a.2xlarge,on_demand,NA,0.328,USD,AWS Pricing API,2025-11-30T09:08:41.098469 +AWS,eu-north-1,c5a.2xlarge,reserved_1y,all_upfront,0.262804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:10.084461 +AWS,eu-north-1,c5a.2xlarge,reserved_1y,no_upfront,0.262804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:57.135537 +AWS,eu-north-1,c5a.2xlarge,reserved_1y,partial_upfront,0.262804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:33.659242 +AWS,eu-north-1,c5a.2xlarge,reserved_3y,all_upfront,0.131601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:01.639510 +AWS,eu-north-1,c5a.2xlarge,reserved_3y,no_upfront,0.131601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:04.495925 +AWS,eu-north-1,c5a.2xlarge,reserved_3y,partial_upfront,0.131601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:43.164692 +AWS,eu-north-1,c5a.2xlarge,spot,NA,0.121224,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502088 +AWS,eu-north-1,c5a.4xlarge,on_demand,NA,0.656,USD,AWS Pricing API,2025-11-30T09:08:14.181445 +AWS,eu-north-1,c5a.4xlarge,reserved_1y,all_upfront,0.393804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:42.971254 +AWS,eu-north-1,c5a.4xlarge,reserved_1y,no_upfront,0.393804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:29.850043 +AWS,eu-north-1,c5a.4xlarge,reserved_1y,partial_upfront,0.393804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:06.766981 +AWS,eu-north-1,c5a.4xlarge,reserved_3y,all_upfront,0.262601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:35.157494 +AWS,eu-north-1,c5a.4xlarge,reserved_3y,no_upfront,0.262601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:36.852974 +AWS,eu-north-1,c5a.4xlarge,reserved_3y,partial_upfront,0.262601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:16.372510 +AWS,eu-north-1,c5a.4xlarge,spot,NA,0.223837,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501521 +AWS,eu-north-1,c5a.8xlarge,on_demand,NA,1.312,USD,AWS Pricing API,2025-11-30T09:08:06.841482 +AWS,eu-north-1,c5a.8xlarge,reserved_1y,all_upfront,0.972032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:35.644902 +AWS,eu-north-1,c5a.8xlarge,reserved_1y,no_upfront,0.972032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:22.390300 +AWS,eu-north-1,c5a.8xlarge,reserved_1y,partial_upfront,0.972032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:59.474587 +AWS,eu-north-1,c5a.8xlarge,reserved_3y,all_upfront,0.324011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:27.994102 +AWS,eu-north-1,c5a.8xlarge,reserved_3y,no_upfront,0.324011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:29.341221 +AWS,eu-north-1,c5a.8xlarge,reserved_3y,partial_upfront,0.324011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:09.114297 +AWS,eu-north-1,c5a.8xlarge,spot,NA,0.469164,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501339 +AWS,eu-north-1,c5a.xlarge,on_demand,NA,0.164,USD,AWS Pricing API,2025-11-30T09:07:57.794299 +AWS,eu-north-1,c5a.xlarge,reserved_1y,all_upfront,0.096461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:26.615857 +AWS,eu-north-1,c5a.xlarge,reserved_1y,no_upfront,0.096461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:13.205561 +AWS,eu-north-1,c5a.xlarge,reserved_1y,partial_upfront,0.096461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:50.421196 +AWS,eu-north-1,c5a.xlarge,reserved_3y,all_upfront,0.032154,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:19.142445 +AWS,eu-north-1,c5a.xlarge,reserved_3y,no_upfront,0.032154,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:20.163002 +AWS,eu-north-1,c5a.xlarge,reserved_3y,partial_upfront,0.032154,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:00.085234 +AWS,eu-north-1,c5a.xlarge,spot,NA,0.064801,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501166 +AWS,eu-north-1,c5d.12xlarge,on_demand,NA,2.496,USD,AWS Pricing API,2025-11-30T09:09:03.847684 +AWS,eu-north-1,c5d.12xlarge,reserved_1y,all_upfront,1.467694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:33.036797 +AWS,eu-north-1,c5d.12xlarge,reserved_1y,no_upfront,1.467694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:20.312882 +AWS,eu-north-1,c5d.12xlarge,reserved_1y,partial_upfront,1.467694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:56.374941 +AWS,eu-north-1,c5d.12xlarge,reserved_3y,all_upfront,0.489231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:23.994366 +AWS,eu-north-1,c5d.12xlarge,reserved_3y,no_upfront,0.489231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:27.831175 +AWS,eu-north-1,c5d.12xlarge,reserved_3y,partial_upfront,0.489231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:05.902450 +AWS,eu-north-1,c5d.12xlarge,spot,NA,0.760715,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502563 +AWS,eu-north-1,c5d.18xlarge,on_demand,NA,3.744,USD,AWS Pricing API,2025-11-30T09:08:27.682993 +AWS,eu-north-1,c5d.18xlarge,reserved_1y,all_upfront,2.995347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:56.588931 +AWS,eu-north-1,c5d.18xlarge,reserved_1y,no_upfront,2.995347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:43.510918 +AWS,eu-north-1,c5d.18xlarge,reserved_1y,partial_upfront,2.995347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:20.226980 +AWS,eu-north-1,c5d.18xlarge,reserved_3y,all_upfront,1.497782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:48.379331 +AWS,eu-north-1,c5d.18xlarge,reserved_3y,no_upfront,1.497782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:50.658015 +AWS,eu-north-1,c5d.18xlarge,reserved_3y,partial_upfront,1.497782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:29.769604 +AWS,eu-north-1,c5d.18xlarge,spot,NA,1.05357,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501800 +AWS,eu-north-1,c5d.24xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T09:08:00.504939 +AWS,eu-north-1,c5d.24xlarge,reserved_1y,all_upfront,2.782,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:29.302474 +AWS,eu-north-1,c5d.24xlarge,reserved_1y,no_upfront,2.782,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:15.967285 +AWS,eu-north-1,c5d.24xlarge,reserved_1y,partial_upfront,2.782,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:53.096323 +AWS,eu-north-1,c5d.24xlarge,reserved_3y,all_upfront,2.782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:21.784901 +AWS,eu-north-1,c5d.24xlarge,reserved_3y,no_upfront,2.782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:22.908535 +AWS,eu-north-1,c5d.24xlarge,reserved_3y,partial_upfront,2.782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:02.802374 +AWS,eu-north-1,c5d.24xlarge,spot,NA,1.480339,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501212 +AWS,eu-north-1,c5d.2xlarge,on_demand,NA,0.416,USD,AWS Pricing API,2025-11-30T09:08:47.710740 +AWS,eu-north-1,c5d.2xlarge,reserved_1y,all_upfront,0.232,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:16.747340 +AWS,eu-north-1,c5d.2xlarge,reserved_1y,no_upfront,0.232,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:03.859083 +AWS,eu-north-1,c5d.2xlarge,reserved_1y,partial_upfront,0.232,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:40.272152 +AWS,eu-north-1,c5d.2xlarge,reserved_3y,all_upfront,0.232,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:08.146346 +AWS,eu-north-1,c5d.2xlarge,reserved_3y,no_upfront,0.232,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:11.209971 +AWS,eu-north-1,c5d.2xlarge,reserved_3y,partial_upfront,0.232,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:49.746364 +AWS,eu-north-1,c5d.2xlarge,spot,NA,0.152574,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502266 +AWS,eu-north-1,c5d.4xlarge,on_demand,NA,0.832,USD,AWS Pricing API,2025-11-30T09:08:08.085879 +AWS,eu-north-1,c5d.4xlarge,reserved_1y,all_upfront,0.524,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:36.869093 +AWS,eu-north-1,c5d.4xlarge,reserved_1y,no_upfront,0.524,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:23.640221 +AWS,eu-north-1,c5d.4xlarge,reserved_1y,partial_upfront,0.524,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:00.690297 +AWS,eu-north-1,c5d.4xlarge,reserved_3y,all_upfront,0.524,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:29.196465 +AWS,eu-north-1,c5d.4xlarge,reserved_3y,no_upfront,0.524,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:30.586298 +AWS,eu-north-1,c5d.4xlarge,reserved_3y,partial_upfront,0.524,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:10.323658 +AWS,eu-north-1,c5d.4xlarge,spot,NA,0.295365,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501404 +AWS,eu-north-1,c5d.9xlarge,on_demand,NA,1.872,USD,AWS Pricing API,2025-11-30T09:08:37.333543 +AWS,eu-north-1,c5d.9xlarge,reserved_1y,all_upfront,2.840297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:06.326141 +AWS,eu-north-1,c5d.9xlarge,reserved_1y,no_upfront,2.840297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:53.315887 +AWS,eu-north-1,c5d.9xlarge,reserved_1y,partial_upfront,2.840297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:29.902507 +AWS,eu-north-1,c5d.9xlarge,reserved_3y,all_upfront,0.946766,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:57.914833 +AWS,eu-north-1,c5d.9xlarge,reserved_3y,no_upfront,0.946766,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:00.601092 +AWS,eu-north-1,c5d.9xlarge,reserved_3y,partial_upfront,0.946766,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:39.402756 +AWS,eu-north-1,c5d.9xlarge,spot,NA,0.578285,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501970 +AWS,eu-north-1,c5d.xlarge,on_demand,NA,0.208,USD,AWS Pricing API,2025-11-30T09:08:33.064655 +AWS,eu-north-1,c5d.xlarge,reserved_1y,all_upfront,0.234589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:01.988205 +AWS,eu-north-1,c5d.xlarge,reserved_1y,no_upfront,0.234589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:48.962184 +AWS,eu-north-1,c5d.xlarge,reserved_1y,partial_upfront,0.234589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:25.608511 +AWS,eu-north-1,c5d.xlarge,reserved_3y,all_upfront,0.078196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:53.677956 +AWS,eu-north-1,c5d.xlarge,reserved_3y,no_upfront,0.078196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:56.170691 +AWS,eu-north-1,c5d.xlarge,reserved_3y,partial_upfront,0.078196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:35.125864 +AWS,eu-north-1,c5d.xlarge,spot,NA,0.071875,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501922 +AWS,eu-north-1,c5n.18xlarge,on_demand,NA,4.176,USD,AWS Pricing API,2025-11-30T09:08:53.228844 +AWS,eu-north-1,c5n.18xlarge,reserved_1y,all_upfront,5.422945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:22.269476 +AWS,eu-north-1,c5n.18xlarge,reserved_1y,no_upfront,5.422945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:09.497455 +AWS,eu-north-1,c5n.18xlarge,reserved_1y,partial_upfront,5.422945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:45.753679 +AWS,eu-north-1,c5n.18xlarge,reserved_3y,all_upfront,1.807648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:13.532052 +AWS,eu-north-1,c5n.18xlarge,reserved_3y,no_upfront,1.807648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:16.939867 +AWS,eu-north-1,c5n.18xlarge,reserved_3y,partial_upfront,1.807648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:55.219642 +AWS,eu-north-1,c5n.18xlarge,spot,NA,1.190876,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502367 +AWS,eu-north-1,c5n.2xlarge,on_demand,NA,0.464,USD,AWS Pricing API,2025-11-30T09:09:03.299533 +AWS,eu-north-1,c5n.2xlarge,reserved_1y,all_upfront,0.35,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:32.408217 +AWS,eu-north-1,c5n.2xlarge,reserved_1y,no_upfront,0.35,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:19.763179 +AWS,eu-north-1,c5n.2xlarge,reserved_1y,partial_upfront,0.35,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:55.825620 +AWS,eu-north-1,c5n.2xlarge,reserved_3y,all_upfront,0.233333,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:23.465688 +AWS,eu-north-1,c5n.2xlarge,reserved_3y,no_upfront,0.233333,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:27.276894 +AWS,eu-north-1,c5n.2xlarge,reserved_3y,partial_upfront,0.233333,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:05.363446 +AWS,eu-north-1,c5n.2xlarge,spot,NA,0.163674,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502554 +AWS,eu-north-1,c5n.4xlarge,on_demand,NA,0.928,USD,AWS Pricing API,2025-11-30T09:08:39.750864 +AWS,eu-north-1,c5n.4xlarge,reserved_1y,all_upfront,0.735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:08.744537 +AWS,eu-north-1,c5n.4xlarge,reserved_1y,no_upfront,0.735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:55.773727 +AWS,eu-north-1,c5n.4xlarge,reserved_1y,partial_upfront,0.735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:32.316606 +AWS,eu-north-1,c5n.4xlarge,reserved_3y,all_upfront,0.735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:00.309311 +AWS,eu-north-1,c5n.4xlarge,reserved_3y,no_upfront,0.735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:03.118768 +AWS,eu-north-1,c5n.4xlarge,reserved_3y,partial_upfront,0.735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:41.813233 +AWS,eu-north-1,c5n.4xlarge,spot,NA,0.38856,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502017 +AWS,eu-north-1,c5n.9xlarge,on_demand,NA,2.088,USD,AWS Pricing API,2025-11-30T09:08:53.092901 +AWS,eu-north-1,c5n.9xlarge,reserved_1y,all_upfront,1.315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:22.133959 +AWS,eu-north-1,c5n.9xlarge,reserved_1y,no_upfront,1.315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:09.357096 +AWS,eu-north-1,c5n.9xlarge,reserved_1y,partial_upfront,1.315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:45.620676 +AWS,eu-north-1,c5n.9xlarge,reserved_3y,all_upfront,1.315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:13.401416 +AWS,eu-north-1,c5n.9xlarge,reserved_3y,no_upfront,1.315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:16.803114 +AWS,eu-north-1,c5n.9xlarge,reserved_3y,partial_upfront,1.315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:55.087069 +AWS,eu-north-1,c5n.9xlarge,spot,NA,0.617232,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502362 +AWS,eu-north-1,c5n.metal,on_demand,NA,4.176,USD,AWS Pricing API,2025-11-30T09:08:02.146789 +AWS,eu-north-1,c5n.metal,reserved_1y,all_upfront,3.150342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:30.919442 +AWS,eu-north-1,c5n.metal,reserved_1y,no_upfront,3.150342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:17.605974 +AWS,eu-north-1,c5n.metal,reserved_1y,partial_upfront,3.150342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:54.695854 +AWS,eu-north-1,c5n.metal,reserved_3y,all_upfront,2.100114,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:23.370763 +AWS,eu-north-1,c5n.metal,reserved_3y,no_upfront,2.100114,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:24.557320 +AWS,eu-north-1,c5n.metal,reserved_3y,partial_upfront,2.100114,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:04.430285 +AWS,eu-north-1,c5n.metal,spot,NA,1.182479,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501250 +AWS,eu-north-1,c5n.xlarge,on_demand,NA,0.232,USD,AWS Pricing API,2025-11-30T09:08:55.097658 +AWS,eu-north-1,c5n.xlarge,reserved_1y,all_upfront,0.175557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:24.164432 +AWS,eu-north-1,c5n.xlarge,reserved_1y,no_upfront,0.175557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:11.416019 +AWS,eu-north-1,c5n.xlarge,reserved_1y,partial_upfront,0.175557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:47.631600 +AWS,eu-north-1,c5n.xlarge,reserved_3y,all_upfront,0.117186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:15.377074 +AWS,eu-north-1,c5n.xlarge,reserved_3y,no_upfront,0.117186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:18.850550 +AWS,eu-north-1,c5n.xlarge,reserved_3y,partial_upfront,0.117186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:57.093565 +AWS,eu-north-1,c5n.xlarge,spot,NA,0.078459,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502422 +AWS,eu-north-1,c6g.12xlarge,on_demand,NA,1.752,USD,AWS Pricing API,2025-11-30T09:08:07.382516 +AWS,eu-north-1,c6g.12xlarge,reserved_1y,all_upfront,0.7518,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:36.183149 +AWS,eu-north-1,c6g.12xlarge,reserved_1y,no_upfront,0.7518,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:22.958569 +AWS,eu-north-1,c6g.12xlarge,reserved_1y,partial_upfront,0.7518,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:00.007396 +AWS,eu-north-1,c6g.12xlarge,reserved_3y,all_upfront,0.7518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:28.535552 +AWS,eu-north-1,c6g.12xlarge,reserved_3y,no_upfront,0.7518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:29.898935 +AWS,eu-north-1,c6g.12xlarge,reserved_3y,partial_upfront,0.7518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:09.648136 +AWS,eu-north-1,c6g.12xlarge,spot,NA,0.512272,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501352 +AWS,eu-north-1,c6g.16xlarge,on_demand,NA,2.336,USD,AWS Pricing API,2025-11-30T09:08:25.255670 +AWS,eu-north-1,c6g.16xlarge,reserved_1y,all_upfront,1.8479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:54.157636 +AWS,eu-north-1,c6g.16xlarge,reserved_1y,no_upfront,1.8479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:41.045816 +AWS,eu-north-1,c6g.16xlarge,reserved_1y,partial_upfront,1.8479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:17.816256 +AWS,eu-north-1,c6g.16xlarge,reserved_3y,all_upfront,1.8479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:45.995831 +AWS,eu-north-1,c6g.16xlarge,reserved_3y,no_upfront,1.8479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:48.180293 +AWS,eu-north-1,c6g.16xlarge,reserved_3y,partial_upfront,1.8479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:27.357548 +AWS,eu-north-1,c6g.16xlarge,spot,NA,0.662878,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501727 +AWS,eu-north-1,c6g.2xlarge,on_demand,NA,0.292,USD,AWS Pricing API,2025-11-30T09:08:37.197764 +AWS,eu-north-1,c6g.2xlarge,reserved_1y,all_upfront,0.172489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:06.191294 +AWS,eu-north-1,c6g.2xlarge,reserved_1y,no_upfront,0.172489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:53.178756 +AWS,eu-north-1,c6g.2xlarge,reserved_1y,partial_upfront,0.172489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:29.769786 +AWS,eu-north-1,c6g.2xlarge,reserved_3y,all_upfront,0.057496,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:57.783628 +AWS,eu-north-1,c6g.2xlarge,reserved_3y,no_upfront,0.057496,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:00.456912 +AWS,eu-north-1,c6g.2xlarge,reserved_3y,partial_upfront,0.057496,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:39.268365 +AWS,eu-north-1,c6g.2xlarge,spot,NA,0.096266,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501982 +AWS,eu-north-1,c6g.4xlarge,on_demand,NA,0.584,USD,AWS Pricing API,2025-11-30T09:08:55.906381 +AWS,eu-north-1,c6g.4xlarge,reserved_1y,all_upfront,0.3196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:24.979559 +AWS,eu-north-1,c6g.4xlarge,reserved_1y,no_upfront,0.3196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:12.234950 +AWS,eu-north-1,c6g.4xlarge,reserved_1y,partial_upfront,0.3196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:48.431563 +AWS,eu-north-1,c6g.4xlarge,reserved_3y,all_upfront,0.3196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:16.167697 +AWS,eu-north-1,c6g.4xlarge,reserved_3y,no_upfront,0.3196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:19.677876 +AWS,eu-north-1,c6g.4xlarge,reserved_3y,partial_upfront,0.3196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:57.901521 +AWS,eu-north-1,c6g.4xlarge,spot,NA,0.207538,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502410 +AWS,eu-north-1,c6g.8xlarge,on_demand,NA,1.168,USD,AWS Pricing API,2025-11-30T09:08:23.633780 +AWS,eu-north-1,c6g.8xlarge,reserved_1y,all_upfront,0.68984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:52.441563 +AWS,eu-north-1,c6g.8xlarge,reserved_1y,no_upfront,0.68984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:39.406313 +AWS,eu-north-1,c6g.8xlarge,reserved_1y,partial_upfront,0.68984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:16.201262 +AWS,eu-north-1,c6g.8xlarge,reserved_3y,all_upfront,0.229947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:44.409228 +AWS,eu-north-1,c6g.8xlarge,reserved_3y,no_upfront,0.229947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:46.525953 +AWS,eu-north-1,c6g.8xlarge,reserved_3y,partial_upfront,0.229947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:25.749419 +AWS,eu-north-1,c6g.8xlarge,spot,NA,0.347378,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501685 +AWS,eu-north-1,c6g.xlarge,on_demand,NA,0.146,USD,AWS Pricing API,2025-11-30T09:09:01.282001 +AWS,eu-north-1,c6g.xlarge,reserved_1y,all_upfront,0.21758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:30.371167 +AWS,eu-north-1,c6g.xlarge,reserved_1y,no_upfront,0.21758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:17.724186 +AWS,eu-north-1,c6g.xlarge,reserved_1y,partial_upfront,0.21758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:53.826456 +AWS,eu-north-1,c6g.xlarge,reserved_3y,all_upfront,0.072527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:21.488873 +AWS,eu-north-1,c6g.xlarge,reserved_3y,no_upfront,0.072527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:25.201312 +AWS,eu-north-1,c6g.xlarge,reserved_3y,partial_upfront,0.072527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:03.356442 +AWS,eu-north-1,c6g.xlarge,spot,NA,0.049332,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502523 +AWS,eu-north-1,c6gd.12xlarge,on_demand,NA,1.9968,USD,AWS Pricing API,2025-11-30T09:08:02.285432 +AWS,eu-north-1,c6gd.12xlarge,reserved_1y,all_upfront,1.174087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:31.057243 +AWS,eu-north-1,c6gd.12xlarge,reserved_1y,no_upfront,1.174087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:17.742041 +AWS,eu-north-1,c6gd.12xlarge,reserved_1y,partial_upfront,1.174087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:54.829848 +AWS,eu-north-1,c6gd.12xlarge,reserved_3y,all_upfront,0.391362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:23.504173 +AWS,eu-north-1,c6gd.12xlarge,reserved_3y,no_upfront,0.391362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:24.694636 +AWS,eu-north-1,c6gd.12xlarge,reserved_3y,partial_upfront,0.391362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:04.563936 +AWS,eu-north-1,c6gd.12xlarge,spot,NA,0.579856,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501254 +AWS,eu-north-1,c6gd.16xlarge,on_demand,NA,2.6624,USD,AWS Pricing API,2025-11-30T09:08:40.281905 +AWS,eu-north-1,c6gd.16xlarge,reserved_1y,all_upfront,4.039384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:09.276987 +AWS,eu-north-1,c6gd.16xlarge,reserved_1y,no_upfront,4.039384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:56.314669 +AWS,eu-north-1,c6gd.16xlarge,reserved_1y,partial_upfront,4.039384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:32.850036 +AWS,eu-north-1,c6gd.16xlarge,reserved_3y,all_upfront,1.346461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:00.839214 +AWS,eu-north-1,c6gd.16xlarge,reserved_3y,no_upfront,1.346461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:03.664911 +AWS,eu-north-1,c6gd.16xlarge,reserved_3y,partial_upfront,1.346461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:42.361850 +AWS,eu-north-1,c6gd.16xlarge,spot,NA,0.75605,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502076 +AWS,eu-north-1,c6gd.2xlarge,on_demand,NA,0.3328,USD,AWS Pricing API,2025-11-30T09:08:50.518860 +AWS,eu-north-1,c6gd.2xlarge,reserved_1y,all_upfront,0.199686,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:19.551691 +AWS,eu-north-1,c6gd.2xlarge,reserved_1y,no_upfront,0.199686,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:06.741433 +AWS,eu-north-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.199686,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:43.091533 +AWS,eu-north-1,c6gd.2xlarge,reserved_3y,all_upfront,0.133095,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:10.904735 +AWS,eu-north-1,c6gd.2xlarge,reserved_3y,no_upfront,0.133095,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:14.198547 +AWS,eu-north-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.133095,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:52.557786 +AWS,eu-north-1,c6gd.2xlarge,spot,NA,0.102349,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502309 +AWS,eu-north-1,c6gd.4xlarge,on_demand,NA,0.6656,USD,AWS Pricing API,2025-11-30T09:08:30.249846 +AWS,eu-north-1,c6gd.4xlarge,reserved_1y,all_upfront,0.50277,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:59.145141 +AWS,eu-north-1,c6gd.4xlarge,reserved_1y,no_upfront,0.50277,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:46.102399 +AWS,eu-north-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.50277,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:22.779590 +AWS,eu-north-1,c6gd.4xlarge,reserved_3y,all_upfront,0.33519,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:50.902640 +AWS,eu-north-1,c6gd.4xlarge,reserved_3y,no_upfront,0.33519,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:53.268057 +AWS,eu-north-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.33519,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:32.308013 +AWS,eu-north-1,c6gd.4xlarge,spot,NA,0.206062,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501856 +AWS,eu-north-1,c6gd.8xlarge,on_demand,NA,1.3312,USD,AWS Pricing API,2025-11-30T09:08:58.760831 +AWS,eu-north-1,c6gd.8xlarge,reserved_1y,all_upfront,2.019749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:27.810474 +AWS,eu-north-1,c6gd.8xlarge,reserved_1y,no_upfront,2.019749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:15.127129 +AWS,eu-north-1,c6gd.8xlarge,reserved_1y,partial_upfront,2.019749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:51.259809 +AWS,eu-north-1,c6gd.8xlarge,reserved_3y,all_upfront,0.67325,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:18.974497 +AWS,eu-north-1,c6gd.8xlarge,reserved_3y,no_upfront,0.67325,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:22.579266 +AWS,eu-north-1,c6gd.8xlarge,reserved_3y,partial_upfront,0.67325,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:00.730329 +AWS,eu-north-1,c6gd.8xlarge,spot,NA,0.396267,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502485 +AWS,eu-north-1,c6gd.xlarge,on_demand,NA,0.1664,USD,AWS Pricing API,2025-11-30T09:08:49.845182 +AWS,eu-north-1,c6gd.xlarge,reserved_1y,all_upfront,0.1048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:18.883122 +AWS,eu-north-1,c6gd.xlarge,reserved_1y,no_upfront,0.1048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:06.065058 +AWS,eu-north-1,c6gd.xlarge,reserved_1y,partial_upfront,0.1048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:42.416529 +AWS,eu-north-1,c6gd.xlarge,reserved_3y,all_upfront,0.1048,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:10.252636 +AWS,eu-north-1,c6gd.xlarge,reserved_3y,no_upfront,0.1048,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:13.510140 +AWS,eu-north-1,c6gd.xlarge,reserved_3y,partial_upfront,0.1048,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:51.894165 +AWS,eu-north-1,c6gd.xlarge,spot,NA,0.05895,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502330 +AWS,eu-north-1,c6i.12xlarge,on_demand,NA,2.184,USD,AWS Pricing API,2025-11-30T09:08:49.711201 +AWS,eu-north-1,c6i.12xlarge,reserved_1y,all_upfront,1.375974,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:18.750893 +AWS,eu-north-1,c6i.12xlarge,reserved_1y,no_upfront,1.375974,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:05.931004 +AWS,eu-north-1,c6i.12xlarge,reserved_1y,partial_upfront,1.375974,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:42.282618 +AWS,eu-north-1,c6i.12xlarge,reserved_3y,all_upfront,0.917298,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:10.121870 +AWS,eu-north-1,c6i.12xlarge,reserved_3y,no_upfront,0.917298,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:13.370477 +AWS,eu-north-1,c6i.12xlarge,reserved_3y,partial_upfront,0.917298,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:51.760157 +AWS,eu-north-1,c6i.12xlarge,spot,NA,0.63133,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502317 +AWS,eu-north-1,c6i.16xlarge,on_demand,NA,2.912,USD,AWS Pricing API,2025-11-30T09:08:24.845758 +AWS,eu-north-1,c6i.16xlarge,reserved_1y,all_upfront,1.834517,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:53.747239 +AWS,eu-north-1,c6i.16xlarge,reserved_1y,no_upfront,1.834517,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:40.632373 +AWS,eu-north-1,c6i.16xlarge,reserved_1y,partial_upfront,1.834517,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:17.411118 +AWS,eu-north-1,c6i.16xlarge,reserved_3y,all_upfront,1.223026,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:45.601999 +AWS,eu-north-1,c6i.16xlarge,reserved_3y,no_upfront,1.223026,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:47.770171 +AWS,eu-north-1,c6i.16xlarge,reserved_3y,partial_upfront,1.223026,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:26.953169 +AWS,eu-north-1,c6i.16xlarge,spot,NA,0.857946,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501731 +AWS,eu-north-1,c6i.24xlarge,on_demand,NA,4.368,USD,AWS Pricing API,2025-11-30T09:08:19.603279 +AWS,eu-north-1,c6i.24xlarge,reserved_1y,all_upfront,2.696804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:48.382420 +AWS,eu-north-1,c6i.24xlarge,reserved_1y,no_upfront,2.696804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:35.310900 +AWS,eu-north-1,c6i.24xlarge,reserved_1y,partial_upfront,2.696804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:12.156724 +AWS,eu-north-1,c6i.24xlarge,reserved_3y,all_upfront,0.898935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:40.450948 +AWS,eu-north-1,c6i.24xlarge,reserved_3y,no_upfront,0.898935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:42.376950 +AWS,eu-north-1,c6i.24xlarge,reserved_3y,partial_upfront,0.898935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:21.759053 +AWS,eu-north-1,c6i.24xlarge,spot,NA,1.2298,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501604 +AWS,eu-north-1,c6i.2xlarge,on_demand,NA,0.364,USD,AWS Pricing API,2025-11-30T09:08:03.492885 +AWS,eu-north-1,c6i.2xlarge,reserved_1y,all_upfront,0.229272,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:32.269610 +AWS,eu-north-1,c6i.2xlarge,reserved_1y,no_upfront,0.229272,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:18.984373 +AWS,eu-north-1,c6i.2xlarge,reserved_1y,partial_upfront,0.229272,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:56.131085 +AWS,eu-north-1,c6i.2xlarge,reserved_3y,all_upfront,0.152864,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:24.692058 +AWS,eu-north-1,c6i.2xlarge,reserved_3y,no_upfront,0.152864,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:25.924800 +AWS,eu-north-1,c6i.2xlarge,reserved_3y,partial_upfront,0.152864,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:05.760928 +AWS,eu-north-1,c6i.2xlarge,spot,NA,0.133753,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501278 +AWS,eu-north-1,c6i.32xlarge,on_demand,NA,5.824,USD,AWS Pricing API,2025-11-30T09:08:54.420396 +AWS,eu-north-1,c6i.32xlarge,reserved_1y,all_upfront,4.892104,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:23.495227 +AWS,eu-north-1,c6i.32xlarge,reserved_1y,no_upfront,4.892104,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:10.734716 +AWS,eu-north-1,c6i.32xlarge,reserved_1y,partial_upfront,4.892104,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:46.956663 +AWS,eu-north-1,c6i.32xlarge,reserved_3y,all_upfront,2.446061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:14.717439 +AWS,eu-north-1,c6i.32xlarge,reserved_3y,no_upfront,2.446061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:18.165718 +AWS,eu-north-1,c6i.32xlarge,reserved_3y,partial_upfront,2.446061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:56.429756 +AWS,eu-north-1,c6i.32xlarge,spot,NA,1.649676,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502392 +AWS,eu-north-1,c6i.4xlarge,on_demand,NA,0.728,USD,AWS Pricing API,2025-11-30T09:07:59.552566 +AWS,eu-north-1,c6i.4xlarge,reserved_1y,all_upfront,0.505256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:28.358856 +AWS,eu-north-1,c6i.4xlarge,reserved_1y,no_upfront,0.505256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:15.001791 +AWS,eu-north-1,c6i.4xlarge,reserved_1y,partial_upfront,0.505256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:52.162493 +AWS,eu-north-1,c6i.4xlarge,reserved_3y,all_upfront,0.336839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:20.866159 +AWS,eu-north-1,c6i.4xlarge,reserved_3y,no_upfront,0.336839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:21.950829 +AWS,eu-north-1,c6i.4xlarge,reserved_3y,partial_upfront,0.336839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:01.856796 +AWS,eu-north-1,c6i.4xlarge,spot,NA,0.242781,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501203 +AWS,eu-north-1,c6i.8xlarge,on_demand,NA,1.456,USD,AWS Pricing API,2025-11-30T09:08:13.249566 +AWS,eu-north-1,c6i.8xlarge,reserved_1y,all_upfront,0.66044,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:42.033354 +AWS,eu-north-1,c6i.8xlarge,reserved_1y,no_upfront,0.66044,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:28.891275 +AWS,eu-north-1,c6i.8xlarge,reserved_1y,partial_upfront,0.66044,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:05.816701 +AWS,eu-north-1,c6i.8xlarge,reserved_3y,all_upfront,0.66044,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:34.235183 +AWS,eu-north-1,c6i.8xlarge,reserved_3y,no_upfront,0.66044,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:35.879540 +AWS,eu-north-1,c6i.8xlarge,reserved_3y,partial_upfront,0.66044,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:15.418585 +AWS,eu-north-1,c6i.8xlarge,spot,NA,0.458909,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501517 +AWS,eu-north-1,c6i.xlarge,on_demand,NA,0.182,USD,AWS Pricing API,2025-11-30T09:08:17.414668 +AWS,eu-north-1,c6i.xlarge,reserved_1y,all_upfront,0.123744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:46.210481 +AWS,eu-north-1,c6i.xlarge,reserved_1y,no_upfront,0.123744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:33.104245 +AWS,eu-north-1,c6i.xlarge,reserved_1y,partial_upfront,0.123744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:09.982664 +AWS,eu-north-1,c6i.xlarge,reserved_3y,all_upfront,0.041248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:38.307911 +AWS,eu-north-1,c6i.xlarge,reserved_3y,no_upfront,0.041248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:40.157196 +AWS,eu-north-1,c6i.xlarge,reserved_3y,partial_upfront,0.041248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:19.600917 +AWS,eu-north-1,c6i.xlarge,spot,NA,0.068755,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501577 +AWS,eu-north-1,c6in.12xlarge,on_demand,NA,2.9232,USD,AWS Pricing API,2025-11-30T09:08:06.976504 +AWS,eu-north-1,c6in.12xlarge,reserved_1y,all_upfront,1.753901,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:35.777328 +AWS,eu-north-1,c6in.12xlarge,reserved_1y,no_upfront,1.753901,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:22.527836 +AWS,eu-north-1,c6in.12xlarge,reserved_1y,partial_upfront,1.753901,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:59.606795 +AWS,eu-north-1,c6in.12xlarge,reserved_3y,all_upfront,1.169274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:28.133146 +AWS,eu-north-1,c6in.12xlarge,reserved_3y,no_upfront,1.169274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:29.488380 +AWS,eu-north-1,c6in.12xlarge,reserved_3y,partial_upfront,1.169274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:09.251453 +AWS,eu-north-1,c6in.12xlarge,spot,NA,0.88266,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501344 +AWS,eu-north-1,c6in.16xlarge,on_demand,NA,3.8976,USD,AWS Pricing API,2025-11-30T09:08:18.369534 +AWS,eu-north-1,c6in.16xlarge,reserved_1y,all_upfront,3.08737,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:47.164865 +AWS,eu-north-1,c6in.16xlarge,reserved_1y,no_upfront,3.08737,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:34.079661 +AWS,eu-north-1,c6in.16xlarge,reserved_1y,partial_upfront,3.08737,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:10.936541 +AWS,eu-north-1,c6in.16xlarge,reserved_3y,all_upfront,3.08737,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:39.238120 +AWS,eu-north-1,c6in.16xlarge,reserved_3y,no_upfront,3.08737,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:41.135344 +AWS,eu-north-1,c6in.16xlarge,reserved_3y,partial_upfront,3.08737,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:20.542751 +AWS,eu-north-1,c6in.16xlarge,spot,NA,1.12304,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501573 +AWS,eu-north-1,c6in.24xlarge,on_demand,NA,5.8464,USD,AWS Pricing API,2025-11-30T09:08:27.820175 +AWS,eu-north-1,c6in.24xlarge,reserved_1y,all_upfront,7.592123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:56.722489 +AWS,eu-north-1,c6in.24xlarge,reserved_1y,no_upfront,7.592123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:43.647225 +AWS,eu-north-1,c6in.24xlarge,reserved_1y,partial_upfront,7.592123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:20.365155 +AWS,eu-north-1,c6in.24xlarge,reserved_3y,all_upfront,2.530708,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:48.511929 +AWS,eu-north-1,c6in.24xlarge,reserved_3y,no_upfront,2.530708,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:50.795045 +AWS,eu-north-1,c6in.24xlarge,reserved_3y,partial_upfront,2.530708,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:29.902519 +AWS,eu-north-1,c6in.24xlarge,spot,NA,1.684373,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501804 +AWS,eu-north-1,c6in.2xlarge,on_demand,NA,0.4872,USD,AWS Pricing API,2025-11-30T09:08:31.444885 +AWS,eu-north-1,c6in.2xlarge,reserved_1y,all_upfront,0.36016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:00.364489 +AWS,eu-north-1,c6in.2xlarge,reserved_1y,no_upfront,0.36016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:47.324523 +AWS,eu-north-1,c6in.2xlarge,reserved_1y,partial_upfront,0.36016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:23.982167 +AWS,eu-north-1,c6in.2xlarge,reserved_3y,all_upfront,0.120053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:52.085395 +AWS,eu-north-1,c6in.2xlarge,reserved_3y,no_upfront,0.120053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:54.500427 +AWS,eu-north-1,c6in.2xlarge,reserved_3y,partial_upfront,0.120053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:33.514571 +AWS,eu-north-1,c6in.2xlarge,spot,NA,0.170185,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501902 +AWS,eu-north-1,c6in.32xlarge,on_demand,NA,7.7952,USD,AWS Pricing API,2025-11-30T09:09:05.346812 +AWS,eu-north-1,c6in.32xlarge,reserved_1y,all_upfront,4.91098,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:34.545282 +AWS,eu-north-1,c6in.32xlarge,reserved_1y,no_upfront,4.91098,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:21.821290 +AWS,eu-north-1,c6in.32xlarge,reserved_1y,partial_upfront,4.91098,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:57.874438 +AWS,eu-north-1,c6in.32xlarge,reserved_3y,all_upfront,4.91098,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:25.452037 +AWS,eu-north-1,c6in.32xlarge,reserved_3y,no_upfront,4.91098,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:29.339463 +AWS,eu-north-1,c6in.32xlarge,reserved_3y,partial_upfront,4.91098,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:07.388548 +AWS,eu-north-1,c6in.32xlarge,spot,NA,2.936519,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502600 +AWS,eu-north-1,c6in.4xlarge,on_demand,NA,0.9744,USD,AWS Pricing API,2025-11-30T09:08:06.038473 +AWS,eu-north-1,c6in.4xlarge,reserved_1y,all_upfront,0.73512,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:34.835159 +AWS,eu-north-1,c6in.4xlarge,reserved_1y,no_upfront,0.73512,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:21.574447 +AWS,eu-north-1,c6in.4xlarge,reserved_1y,partial_upfront,0.73512,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:58.673226 +AWS,eu-north-1,c6in.4xlarge,reserved_3y,all_upfront,0.490067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:27.201363 +AWS,eu-north-1,c6in.4xlarge,reserved_3y,no_upfront,0.490067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:28.513177 +AWS,eu-north-1,c6in.4xlarge,reserved_3y,partial_upfront,0.490067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:08.312732 +AWS,eu-north-1,c6in.4xlarge,spot,NA,0.326544,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501319 +AWS,eu-north-1,c6in.8xlarge,on_demand,NA,1.9488,USD,AWS Pricing API,2025-11-30T09:08:35.870925 +AWS,eu-north-1,c6in.8xlarge,reserved_1y,all_upfront,1.169229,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:04.828680 +AWS,eu-north-1,c6in.8xlarge,reserved_1y,no_upfront,1.169229,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:51.803032 +AWS,eu-north-1,c6in.8xlarge,reserved_1y,partial_upfront,1.169229,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:28.437208 +AWS,eu-north-1,c6in.8xlarge,reserved_3y,all_upfront,0.779503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:56.446938 +AWS,eu-north-1,c6in.8xlarge,reserved_3y,no_upfront,0.779503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:59.062684 +AWS,eu-north-1,c6in.8xlarge,reserved_3y,partial_upfront,0.779503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:37.931377 +AWS,eu-north-1,c6in.8xlarge,spot,NA,0.671,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501953 +AWS,eu-north-1,c6in.xlarge,on_demand,NA,0.2436,USD,AWS Pricing API,2025-11-30T09:08:23.771275 +AWS,eu-north-1,c6in.xlarge,reserved_1y,all_upfront,0.15347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:52.586276 +AWS,eu-north-1,c6in.xlarge,reserved_1y,no_upfront,0.15347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:39.543715 +AWS,eu-north-1,c6in.xlarge,reserved_1y,partial_upfront,0.15347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:16.342155 +AWS,eu-north-1,c6in.xlarge,reserved_3y,all_upfront,0.15347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:44.541494 +AWS,eu-north-1,c6in.xlarge,reserved_3y,no_upfront,0.15347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:46.664356 +AWS,eu-north-1,c6in.xlarge,reserved_3y,partial_upfront,0.15347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:25.884792 +AWS,eu-north-1,c6in.xlarge,spot,NA,0.077682,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501710 +AWS,eu-north-1,c7a.12xlarge,on_demand,NA,2.63712,USD,AWS Pricing API,2025-11-30T09:08:50.654145 +AWS,eu-north-1,c7a.12xlarge,reserved_1y,all_upfront,1.92178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:19.685928 +AWS,eu-north-1,c7a.12xlarge,reserved_1y,no_upfront,1.92178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:06.879995 +AWS,eu-north-1,c7a.12xlarge,reserved_1y,partial_upfront,1.92178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:43.226458 +AWS,eu-north-1,c7a.12xlarge,reserved_3y,all_upfront,1.92178,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:11.037232 +AWS,eu-north-1,c7a.12xlarge,reserved_3y,no_upfront,1.92178,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:14.334509 +AWS,eu-north-1,c7a.12xlarge,reserved_3y,partial_upfront,1.92178,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:52.700077 +AWS,eu-north-1,c7a.12xlarge,spot,NA,0.860876,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502304 +AWS,eu-north-1,c7a.16xlarge,on_demand,NA,3.51616,USD,AWS Pricing API,2025-11-30T09:08:21.607544 +AWS,eu-north-1,c7a.16xlarge,reserved_1y,all_upfront,4.797603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:50.400419 +AWS,eu-north-1,c7a.16xlarge,reserved_1y,no_upfront,4.797603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:37.359012 +AWS,eu-north-1,c7a.16xlarge,reserved_1y,partial_upfront,4.797603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:14.174818 +AWS,eu-north-1,c7a.16xlarge,reserved_3y,all_upfront,1.599201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:42.423604 +AWS,eu-north-1,c7a.16xlarge,reserved_3y,no_upfront,1.599201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:44.461935 +AWS,eu-north-1,c7a.16xlarge,reserved_3y,partial_upfront,1.599201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:23.754793 +AWS,eu-north-1,c7a.16xlarge,spot,NA,1.043642,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501681 +AWS,eu-north-1,c7a.24xlarge,on_demand,NA,5.27424,USD,AWS Pricing API,2025-11-30T09:09:00.624518 +AWS,eu-north-1,c7a.24xlarge,reserved_1y,all_upfront,3.84356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:29.695585 +AWS,eu-north-1,c7a.24xlarge,reserved_1y,no_upfront,3.84356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:17.048056 +AWS,eu-north-1,c7a.24xlarge,reserved_1y,partial_upfront,3.84356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:53.144752 +AWS,eu-north-1,c7a.24xlarge,reserved_3y,all_upfront,3.84356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:20.833810 +AWS,eu-north-1,c7a.24xlarge,reserved_3y,no_upfront,3.84356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:24.511575 +AWS,eu-north-1,c7a.24xlarge,reserved_3y,partial_upfront,3.84356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:02.681085 +AWS,eu-north-1,c7a.24xlarge,spot,NA,1.544778,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502519 +AWS,eu-north-1,c7a.2xlarge,on_demand,NA,0.43952,USD,AWS Pricing API,2025-11-30T09:08:02.961392 +AWS,eu-north-1,c7a.2xlarge,reserved_1y,all_upfront,0.369241,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:31.734179 +AWS,eu-north-1,c7a.2xlarge,reserved_1y,no_upfront,0.369241,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:18.442354 +AWS,eu-north-1,c7a.2xlarge,reserved_1y,partial_upfront,0.369241,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:55.501206 +AWS,eu-north-1,c7a.2xlarge,reserved_3y,all_upfront,0.184614,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:24.170708 +AWS,eu-north-1,c7a.2xlarge,reserved_3y,no_upfront,0.184614,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:25.382675 +AWS,eu-north-1,c7a.2xlarge,reserved_3y,partial_upfront,0.184614,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:05.227984 +AWS,eu-north-1,c7a.2xlarge,spot,NA,0.146206,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501274 +AWS,eu-north-1,c7a.32xlarge,on_demand,NA,7.03232,USD,AWS Pricing API,2025-11-30T09:08:37.467118 +AWS,eu-north-1,c7a.32xlarge,reserved_1y,all_upfront,3.5248,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:06.462454 +AWS,eu-north-1,c7a.32xlarge,reserved_1y,no_upfront,3.5248,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:53.456612 +AWS,eu-north-1,c7a.32xlarge,reserved_1y,partial_upfront,3.5248,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:30.034809 +AWS,eu-north-1,c7a.32xlarge,reserved_3y,all_upfront,3.5248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:58.047267 +AWS,eu-north-1,c7a.32xlarge,reserved_3y,no_upfront,3.5248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:00.737484 +AWS,eu-north-1,c7a.32xlarge,reserved_3y,partial_upfront,3.5248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:39.534972 +AWS,eu-north-1,c7a.32xlarge,spot,NA,1.961334,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502009 +AWS,eu-north-1,c7a.48xlarge,on_demand,NA,10.54848,USD,AWS Pricing API,2025-11-30T09:07:57.525056 +AWS,eu-north-1,c7a.48xlarge,reserved_1y,all_upfront,6.512671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:26.349012 +AWS,eu-north-1,c7a.48xlarge,reserved_1y,no_upfront,6.512671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:12.936676 +AWS,eu-north-1,c7a.48xlarge,reserved_1y,partial_upfront,6.512671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:50.156481 +AWS,eu-north-1,c7a.48xlarge,reserved_3y,all_upfront,2.17089,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:18.877515 +AWS,eu-north-1,c7a.48xlarge,reserved_3y,no_upfront,2.17089,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:19.891280 +AWS,eu-north-1,c7a.48xlarge,reserved_3y,partial_upfront,2.17089,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:59.816619 +AWS,eu-north-1,c7a.48xlarge,spot,NA,3.357537,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501149 +AWS,eu-north-1,c7a.4xlarge,on_demand,NA,0.87904,USD,AWS Pricing API,2025-11-30T09:08:38.548523 +AWS,eu-north-1,c7a.4xlarge,reserved_1y,all_upfront,0.738367,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:07.540621 +AWS,eu-north-1,c7a.4xlarge,reserved_1y,no_upfront,0.738367,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:54.550218 +AWS,eu-north-1,c7a.4xlarge,reserved_1y,partial_upfront,0.738367,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:31.111097 +AWS,eu-north-1,c7a.4xlarge,reserved_3y,all_upfront,0.369189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:59.117947 +AWS,eu-north-1,c7a.4xlarge,reserved_3y,no_upfront,0.369189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:01.849781 +AWS,eu-north-1,c7a.4xlarge,reserved_3y,partial_upfront,0.369189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:40.602514 +AWS,eu-north-1,c7a.4xlarge,spot,NA,0.288222,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501993 +AWS,eu-north-1,c7a.8xlarge,on_demand,NA,1.75808,USD,AWS Pricing API,2025-11-30T09:07:54.985777 +AWS,eu-north-1,c7a.8xlarge,reserved_1y,all_upfront,1.220136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:23.804499 +AWS,eu-north-1,c7a.8xlarge,reserved_1y,no_upfront,1.220136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:10.355306 +AWS,eu-north-1,c7a.8xlarge,reserved_1y,partial_upfront,1.220136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:47.618492 +AWS,eu-north-1,c7a.8xlarge,reserved_3y,all_upfront,0.813439,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:16.377676 +AWS,eu-north-1,c7a.8xlarge,reserved_3y,no_upfront,0.813439,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:17.292694 +AWS,eu-north-1,c7a.8xlarge,reserved_3y,partial_upfront,0.813439,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:57.287666 +AWS,eu-north-1,c7a.8xlarge,spot,NA,0.573872,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501124 +AWS,eu-north-1,c7a.xlarge,on_demand,NA,0.21976,USD,AWS Pricing API,2025-11-30T09:08:29.706666 +AWS,eu-north-1,c7a.xlarge,reserved_1y,all_upfront,0.260274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:58.608397 +AWS,eu-north-1,c7a.xlarge,reserved_1y,no_upfront,0.260274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:45.556805 +AWS,eu-north-1,c7a.xlarge,reserved_1y,partial_upfront,0.260274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:22.243725 +AWS,eu-north-1,c7a.xlarge,reserved_3y,all_upfront,0.086758,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:50.377956 +AWS,eu-north-1,c7a.xlarge,reserved_3y,no_upfront,0.086758,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:52.719241 +AWS,eu-north-1,c7a.xlarge,reserved_3y,partial_upfront,0.086758,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:31.769145 +AWS,eu-north-1,c7a.xlarge,spot,NA,0.073749,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501861 +AWS,eu-north-1,c7g.12xlarge,on_demand,NA,1.8566,USD,AWS Pricing API,2025-11-30T09:08:33.727680 +AWS,eu-north-1,c7g.12xlarge,reserved_1y,all_upfront,1.262785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:02.663687 +AWS,eu-north-1,c7g.12xlarge,reserved_1y,no_upfront,1.262785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:49.641803 +AWS,eu-north-1,c7g.12xlarge,reserved_1y,partial_upfront,1.262785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:26.284553 +AWS,eu-north-1,c7g.12xlarge,reserved_3y,all_upfront,0.420928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:54.335101 +AWS,eu-north-1,c7g.12xlarge,reserved_3y,no_upfront,0.420928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:56.849398 +AWS,eu-north-1,c7g.12xlarge,reserved_3y,partial_upfront,0.420928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:35.795362 +AWS,eu-north-1,c7g.12xlarge,spot,NA,0.650089,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501933 +AWS,eu-north-1,c7g.16xlarge,on_demand,NA,2.4755,USD,AWS Pricing API,2025-11-30T09:08:43.252790 +AWS,eu-north-1,c7g.16xlarge,reserved_1y,all_upfront,2.079489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:12.277080 +AWS,eu-north-1,c7g.16xlarge,reserved_1y,no_upfront,2.079489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:59.321986 +AWS,eu-north-1,c7g.16xlarge,reserved_1y,partial_upfront,2.079489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:35.824111 +AWS,eu-north-1,c7g.16xlarge,reserved_3y,all_upfront,1.039763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:03.784384 +AWS,eu-north-1,c7g.16xlarge,reserved_3y,no_upfront,1.039763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:06.698008 +AWS,eu-north-1,c7g.16xlarge,reserved_3y,partial_upfront,1.039763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:45.307027 +AWS,eu-north-1,c7g.16xlarge,spot,NA,0.720286,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502144 +AWS,eu-north-1,c7g.2xlarge,on_demand,NA,0.3094,USD,AWS Pricing API,2025-11-30T09:09:01.818848 +AWS,eu-north-1,c7g.2xlarge,reserved_1y,all_upfront,0.259977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:30.909999 +AWS,eu-north-1,c7g.2xlarge,reserved_1y,no_upfront,0.259977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:18.263342 +AWS,eu-north-1,c7g.2xlarge,reserved_1y,partial_upfront,0.259977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:54.357287 +AWS,eu-north-1,c7g.2xlarge,reserved_3y,all_upfront,0.129992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:22.013997 +AWS,eu-north-1,c7g.2xlarge,reserved_3y,no_upfront,0.129992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:25.755864 +AWS,eu-north-1,c7g.2xlarge,reserved_3y,partial_upfront,0.129992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:03.901214 +AWS,eu-north-1,c7g.2xlarge,spot,NA,0.116208,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502549 +AWS,eu-north-1,c7g.4xlarge,on_demand,NA,0.6189,USD,AWS Pricing API,2025-11-30T09:08:19.048256 +AWS,eu-north-1,c7g.4xlarge,reserved_1y,all_upfront,0.844406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:47.840894 +AWS,eu-north-1,c7g.4xlarge,reserved_1y,no_upfront,0.844406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:34.769764 +AWS,eu-north-1,c7g.4xlarge,reserved_1y,partial_upfront,0.844406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:11.619390 +AWS,eu-north-1,c7g.4xlarge,reserved_3y,all_upfront,0.281469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:39.922932 +AWS,eu-north-1,c7g.4xlarge,reserved_3y,no_upfront,0.281469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:41.827831 +AWS,eu-north-1,c7g.4xlarge,reserved_3y,partial_upfront,0.281469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:21.220945 +AWS,eu-north-1,c7g.4xlarge,spot,NA,0.207441,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501621 +AWS,eu-north-1,c7g.8xlarge,on_demand,NA,1.2378,USD,AWS Pricing API,2025-11-30T09:08:29.977042 +AWS,eu-north-1,c7g.8xlarge,reserved_1y,all_upfront,0.8188,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:58.874860 +AWS,eu-north-1,c7g.8xlarge,reserved_1y,no_upfront,0.8188,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:45.830383 +AWS,eu-north-1,c7g.8xlarge,reserved_1y,partial_upfront,0.8188,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:22.510537 +AWS,eu-north-1,c7g.8xlarge,reserved_3y,all_upfront,0.8188,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:50.641025 +AWS,eu-north-1,c7g.8xlarge,reserved_3y,no_upfront,0.8188,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:52.993426 +AWS,eu-north-1,c7g.8xlarge,reserved_3y,partial_upfront,0.8188,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:32.038992 +AWS,eu-north-1,c7g.8xlarge,spot,NA,0.385737,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501849 +AWS,eu-north-1,c7g.xlarge,on_demand,NA,0.1547,USD,AWS Pricing API,2025-11-30T09:08:17.140521 +AWS,eu-north-1,c7g.xlarge,reserved_1y,all_upfront,0.097444,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:45.942078 +AWS,eu-north-1,c7g.xlarge,reserved_1y,no_upfront,0.097444,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:32.831878 +AWS,eu-north-1,c7g.xlarge,reserved_1y,partial_upfront,0.097444,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:09.716957 +AWS,eu-north-1,c7g.xlarge,reserved_3y,all_upfront,0.064948,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:38.045883 +AWS,eu-north-1,c7g.xlarge,reserved_3y,no_upfront,0.064948,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:39.880067 +AWS,eu-north-1,c7g.xlarge,reserved_3y,partial_upfront,0.064948,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:19.333036 +AWS,eu-north-1,c7g.xlarge,spot,NA,0.058984,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501549 +AWS,eu-north-1,c7gd.12xlarge,on_demand,NA,2.3587,USD,AWS Pricing API,2025-11-30T09:08:27.955404 +AWS,eu-north-1,c7gd.12xlarge,reserved_1y,all_upfront,1.8711,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:56.858650 +AWS,eu-north-1,c7gd.12xlarge,reserved_1y,no_upfront,1.8711,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:43.786926 +AWS,eu-north-1,c7gd.12xlarge,reserved_1y,partial_upfront,1.8711,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:20.499071 +AWS,eu-north-1,c7gd.12xlarge,reserved_3y,all_upfront,1.8711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:48.641695 +AWS,eu-north-1,c7gd.12xlarge,reserved_3y,no_upfront,1.8711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:50.932977 +AWS,eu-north-1,c7gd.12xlarge,reserved_3y,partial_upfront,1.8711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:30.034742 +AWS,eu-north-1,c7gd.12xlarge,spot,NA,0.728485,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501792 +AWS,eu-north-1,c7gd.16xlarge,on_demand,NA,3.145,USD,AWS Pricing API,2025-11-30T09:08:14.047095 +AWS,eu-north-1,c7gd.16xlarge,reserved_1y,all_upfront,1.886993,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:42.836831 +AWS,eu-north-1,c7gd.16xlarge,reserved_1y,no_upfront,1.886993,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:29.715144 +AWS,eu-north-1,c7gd.16xlarge,reserved_1y,partial_upfront,1.886993,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:06.631956 +AWS,eu-north-1,c7gd.16xlarge,reserved_3y,all_upfront,1.257998,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:35.025011 +AWS,eu-north-1,c7gd.16xlarge,reserved_3y,no_upfront,1.257998,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:36.715033 +AWS,eu-north-1,c7gd.16xlarge,reserved_3y,partial_upfront,1.257998,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:16.238718 +AWS,eu-north-1,c7gd.16xlarge,spot,NA,0.88437,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501525 +AWS,eu-north-1,c7gd.2xlarge,on_demand,NA,0.3931,USD,AWS Pricing API,2025-11-30T09:08:43.111294 +AWS,eu-north-1,c7gd.2xlarge,reserved_1y,all_upfront,0.291096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:12.132841 +AWS,eu-north-1,c7gd.2xlarge,reserved_1y,no_upfront,0.291096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:59.180820 +AWS,eu-north-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.291096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:35.692046 +AWS,eu-north-1,c7gd.2xlarge,reserved_3y,all_upfront,0.097032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:03.650786 +AWS,eu-north-1,c7gd.2xlarge,reserved_3y,no_upfront,0.097032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:06.560114 +AWS,eu-north-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.097032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:45.174175 +AWS,eu-north-1,c7gd.2xlarge,spot,NA,0.138971,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502174 +AWS,eu-north-1,c7gd.4xlarge,on_demand,NA,0.7862,USD,AWS Pricing API,2025-11-30T09:08:30.639018 +AWS,eu-north-1,c7gd.4xlarge,reserved_1y,all_upfront,1.192922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:59.555453 +AWS,eu-north-1,c7gd.4xlarge,reserved_1y,no_upfront,1.192922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:46.510008 +AWS,eu-north-1,c7gd.4xlarge,reserved_1y,partial_upfront,1.192922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:23.181000 +AWS,eu-north-1,c7gd.4xlarge,reserved_3y,all_upfront,0.397641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:51.292824 +AWS,eu-north-1,c7gd.4xlarge,reserved_3y,no_upfront,0.397641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:53.677788 +AWS,eu-north-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.397641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:32.704674 +AWS,eu-north-1,c7gd.4xlarge,spot,NA,0.304179,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501836 +AWS,eu-north-1,c7gd.8xlarge,on_demand,NA,1.5725,USD,AWS Pricing API,2025-11-30T09:08:22.284470 +AWS,eu-north-1,c7gd.8xlarge,reserved_1y,all_upfront,1.2474,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:51.099395 +AWS,eu-north-1,c7gd.8xlarge,reserved_1y,no_upfront,1.2474,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:38.041166 +AWS,eu-north-1,c7gd.8xlarge,reserved_1y,partial_upfront,1.2474,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:14.851703 +AWS,eu-north-1,c7gd.8xlarge,reserved_3y,all_upfront,1.2474,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:43.094546 +AWS,eu-north-1,c7gd.8xlarge,reserved_3y,no_upfront,1.2474,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:45.151008 +AWS,eu-north-1,c7gd.8xlarge,reserved_3y,partial_upfront,1.2474,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:24.428816 +AWS,eu-north-1,c7gd.8xlarge,spot,NA,0.513954,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501669 +AWS,eu-north-1,c7gd.xlarge,on_demand,NA,0.1966,USD,AWS Pricing API,2025-11-30T09:09:01.146642 +AWS,eu-north-1,c7gd.xlarge,reserved_1y,all_upfront,0.118018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:30.233745 +AWS,eu-north-1,c7gd.xlarge,reserved_1y,no_upfront,0.118018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:17.587571 +AWS,eu-north-1,c7gd.xlarge,reserved_1y,partial_upfront,0.118018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:53.692129 +AWS,eu-north-1,c7gd.xlarge,reserved_3y,all_upfront,0.078673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:21.358596 +AWS,eu-north-1,c7gd.xlarge,reserved_3y,no_upfront,0.078673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:25.064814 +AWS,eu-north-1,c7gd.xlarge,reserved_3y,partial_upfront,0.078673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:03.217803 +AWS,eu-north-1,c7gd.xlarge,spot,NA,0.067778,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502527 +AWS,eu-north-1,c7i.12xlarge,on_demand,NA,2.2932,USD,AWS Pricing API,2025-11-30T09:08:22.556877 +AWS,eu-north-1,c7i.12xlarge,reserved_1y,all_upfront,1.444734,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:51.367746 +AWS,eu-north-1,c7i.12xlarge,reserved_1y,no_upfront,1.444734,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:38.314960 +AWS,eu-north-1,c7i.12xlarge,reserved_1y,partial_upfront,1.444734,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:15.122887 +AWS,eu-north-1,c7i.12xlarge,reserved_3y,all_upfront,0.963151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:43.359752 +AWS,eu-north-1,c7i.12xlarge,reserved_3y,no_upfront,0.963151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:45.427590 +AWS,eu-north-1,c7i.12xlarge,reserved_3y,partial_upfront,0.963151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:24.694760 +AWS,eu-north-1,c7i.12xlarge,spot,NA,0.690262,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501677 +AWS,eu-north-1,c7i.16xlarge,on_demand,NA,3.0576,USD,AWS Pricing API,2025-11-30T09:08:59.441375 +AWS,eu-north-1,c7i.16xlarge,reserved_1y,all_upfront,2.2282,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:28.482667 +AWS,eu-north-1,c7i.16xlarge,reserved_1y,no_upfront,2.2282,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:15.815017 +AWS,eu-north-1,c7i.16xlarge,reserved_1y,partial_upfront,2.2282,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:51.928860 +AWS,eu-north-1,c7i.16xlarge,reserved_3y,all_upfront,2.2282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:19.651251 +AWS,eu-north-1,c7i.16xlarge,reserved_3y,no_upfront,2.2282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:23.264892 +AWS,eu-north-1,c7i.16xlarge,reserved_3y,partial_upfront,2.2282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:01.420602 +AWS,eu-north-1,c7i.16xlarge,spot,NA,0.916722,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502506 +AWS,eu-north-1,c7i.24xlarge,on_demand,NA,4.5864,USD,AWS Pricing API,2025-11-30T09:08:33.332032 +AWS,eu-north-1,c7i.24xlarge,reserved_1y,all_upfront,3.3423,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:02.260252 +AWS,eu-north-1,c7i.24xlarge,reserved_1y,no_upfront,3.3423,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:49.234317 +AWS,eu-north-1,c7i.24xlarge,reserved_1y,partial_upfront,3.3423,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:25.877251 +AWS,eu-north-1,c7i.24xlarge,reserved_3y,all_upfront,3.3423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:53.940859 +AWS,eu-north-1,c7i.24xlarge,reserved_3y,no_upfront,3.3423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:56.443323 +AWS,eu-north-1,c7i.24xlarge,reserved_3y,partial_upfront,3.3423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:35.392322 +AWS,eu-north-1,c7i.24xlarge,spot,NA,1.329793,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501910 +AWS,eu-north-1,c7i.2xlarge,on_demand,NA,0.3822,USD,AWS Pricing API,2025-11-30T09:08:47.845238 +AWS,eu-north-1,c7i.2xlarge,reserved_1y,all_upfront,0.235959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:16.881758 +AWS,eu-north-1,c7i.2xlarge,reserved_1y,no_upfront,0.235959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:03.997890 +AWS,eu-north-1,c7i.2xlarge,reserved_1y,partial_upfront,0.235959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:40.409144 +AWS,eu-north-1,c7i.2xlarge,reserved_3y,all_upfront,0.078653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:08.279912 +AWS,eu-north-1,c7i.2xlarge,reserved_3y,no_upfront,0.078653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:11.352870 +AWS,eu-north-1,c7i.2xlarge,reserved_3y,partial_upfront,0.078653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:49.879661 +AWS,eu-north-1,c7i.2xlarge,spot,NA,0.133019,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502241 +AWS,eu-north-1,c7i.48xlarge,on_demand,NA,9.1728,USD,AWS Pricing API,2025-11-30T09:08:16.082521 +AWS,eu-north-1,c7i.48xlarge,reserved_1y,all_upfront,4.16078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:44.860610 +AWS,eu-north-1,c7i.48xlarge,reserved_1y,no_upfront,4.16078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:31.751075 +AWS,eu-north-1,c7i.48xlarge,reserved_1y,partial_upfront,4.16078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:08.643233 +AWS,eu-north-1,c7i.48xlarge,reserved_3y,all_upfront,4.16078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:37.001782 +AWS,eu-north-1,c7i.48xlarge,reserved_3y,no_upfront,4.16078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:38.783143 +AWS,eu-north-1,c7i.48xlarge,reserved_3y,partial_upfront,4.16078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:18.258700 +AWS,eu-north-1,c7i.48xlarge,spot,NA,2.778972,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501557 +AWS,eu-north-1,c7i.4xlarge,on_demand,NA,0.7644,USD,AWS Pricing API,2025-11-30T09:08:29.019181 +AWS,eu-north-1,c7i.4xlarge,reserved_1y,all_upfront,0.481543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:57.933336 +AWS,eu-north-1,c7i.4xlarge,reserved_1y,no_upfront,0.481543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:44.870951 +AWS,eu-north-1,c7i.4xlarge,reserved_1y,partial_upfront,0.481543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:21.566216 +AWS,eu-north-1,c7i.4xlarge,reserved_3y,all_upfront,0.321041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:49.702029 +AWS,eu-north-1,c7i.4xlarge,reserved_3y,no_upfront,0.321041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:52.031490 +AWS,eu-north-1,c7i.4xlarge,reserved_3y,partial_upfront,0.321041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:31.104525 +AWS,eu-north-1,c7i.4xlarge,spot,NA,0.267246,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501812 +AWS,eu-north-1,c7i.8xlarge,on_demand,NA,1.5288,USD,AWS Pricing API,2025-11-30T09:08:01.043560 +AWS,eu-north-1,c7i.8xlarge,reserved_1y,all_upfront,1.1141,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:29.843343 +AWS,eu-north-1,c7i.8xlarge,reserved_1y,no_upfront,1.1141,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:16.521233 +AWS,eu-north-1,c7i.8xlarge,reserved_1y,partial_upfront,1.1141,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:53.632033 +AWS,eu-north-1,c7i.8xlarge,reserved_3y,all_upfront,1.1141,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:22.312509 +AWS,eu-north-1,c7i.8xlarge,reserved_3y,no_upfront,1.1141,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:23.457260 +AWS,eu-north-1,c7i.8xlarge,reserved_3y,partial_upfront,1.1141,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:03.349939 +AWS,eu-north-1,c7i.8xlarge,spot,NA,0.489926,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501238 +AWS,eu-north-1,c7i.large,on_demand,NA,0.09555,USD,AWS Pricing API,2025-11-30T09:08:47.308551 +AWS,eu-north-1,c7i.large,reserved_1y,all_upfront,0.04789,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:16.348356 +AWS,eu-north-1,c7i.large,reserved_1y,no_upfront,0.04789,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:03.446923 +AWS,eu-north-1,c7i.large,reserved_1y,partial_upfront,0.04789,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:39.871226 +AWS,eu-north-1,c7i.large,reserved_3y,all_upfront,0.04789,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:07.753557 +AWS,eu-north-1,c7i.large,reserved_3y,no_upfront,0.04789,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:10.800559 +AWS,eu-north-1,c7i.large,reserved_3y,partial_upfront,0.04789,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:49.337970 +AWS,eu-north-1,c7i.large,spot,NA,0.032402,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502279 +AWS,eu-north-1,c7i.metal-24xl,on_demand,NA,4.5864,USD,AWS Pricing API,2025-11-30T09:08:16.877100 +AWS,eu-north-1,c7i.metal-24xl,reserved_1y,all_upfront,3.119521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:45.679088 +AWS,eu-north-1,c7i.metal-24xl,reserved_1y,no_upfront,3.119521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:32.562116 +AWS,eu-north-1,c7i.metal-24xl,reserved_1y,partial_upfront,3.119521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:09.451145 +AWS,eu-north-1,c7i.metal-24xl,reserved_3y,all_upfront,1.03984,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:37.780280 +AWS,eu-north-1,c7i.metal-24xl,reserved_3y,no_upfront,1.03984,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:39.606018 +AWS,eu-north-1,c7i.metal-24xl,reserved_3y,partial_upfront,1.03984,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:19.070780 +AWS,eu-north-1,c7i.metal-24xl,spot,NA,1.416135,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501553 +AWS,eu-north-1,c7i.metal-48xl,on_demand,NA,9.1728,USD,AWS Pricing API,2025-11-30T09:08:05.100922 +AWS,eu-north-1,c7i.metal-48xl,reserved_1y,all_upfront,6.6846,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:33.884987 +AWS,eu-north-1,c7i.metal-48xl,reserved_1y,no_upfront,6.6846,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:20.619859 +AWS,eu-north-1,c7i.metal-48xl,reserved_1y,partial_upfront,6.6846,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:57.737648 +AWS,eu-north-1,c7i.metal-48xl,reserved_3y,all_upfront,6.6846,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:26.271732 +AWS,eu-north-1,c7i.metal-48xl,reserved_3y,no_upfront,6.6846,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:27.564016 +AWS,eu-north-1,c7i.metal-48xl,reserved_3y,partial_upfront,6.6846,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:07.377508 +AWS,eu-north-1,c7i.metal-48xl,spot,NA,2.692323,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501315 +AWS,eu-north-1,c7i.xlarge,on_demand,NA,0.1911,USD,AWS Pricing API,2025-11-30T09:08:58.490446 +AWS,eu-north-1,c7i.xlarge,reserved_1y,all_upfront,0.132644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:27.540562 +AWS,eu-north-1,c7i.xlarge,reserved_1y,no_upfront,0.132644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:14.848185 +AWS,eu-north-1,c7i.xlarge,reserved_1y,partial_upfront,0.132644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:50.990441 +AWS,eu-north-1,c7i.xlarge,reserved_3y,all_upfront,0.088428,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:18.708704 +AWS,eu-north-1,c7i.xlarge,reserved_3y,no_upfront,0.088428,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:22.305423 +AWS,eu-north-1,c7i.xlarge,reserved_3y,partial_upfront,0.088428,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:00.463210 +AWS,eu-north-1,c7i.xlarge,spot,NA,0.07126,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502469 +AWS,eu-north-1,c8g.12xlarge,on_demand,NA,2.0424,USD,AWS Pricing API,2025-11-30T09:08:56.043620 +AWS,eu-north-1,c8g.12xlarge,reserved_1y,all_upfront,1.895744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:25.114861 +AWS,eu-north-1,c8g.12xlarge,reserved_1y,no_upfront,1.895744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:12.368899 +AWS,eu-north-1,c8g.12xlarge,reserved_1y,partial_upfront,1.895744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:48.565426 +AWS,eu-north-1,c8g.12xlarge,reserved_3y,all_upfront,0.947875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:16.305019 +AWS,eu-north-1,c8g.12xlarge,reserved_3y,no_upfront,0.947875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:19.819816 +AWS,eu-north-1,c8g.12xlarge,reserved_3y,partial_upfront,0.947875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:58.040652 +AWS,eu-north-1,c8g.12xlarge,spot,NA,0.647899,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502426 +AWS,eu-north-1,c8g.16xlarge,on_demand,NA,2.7232,USD,AWS Pricing API,2025-11-30T09:07:59.958237 +AWS,eu-north-1,c8g.16xlarge,reserved_1y,all_upfront,1.889987,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:28.759827 +AWS,eu-north-1,c8g.16xlarge,reserved_1y,no_upfront,1.889987,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:15.420903 +AWS,eu-north-1,c8g.16xlarge,reserved_1y,partial_upfront,1.889987,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:52.565954 +AWS,eu-north-1,c8g.16xlarge,reserved_3y,all_upfront,1.260002,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:21.260369 +AWS,eu-north-1,c8g.16xlarge,reserved_3y,no_upfront,1.260002,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:22.360728 +AWS,eu-north-1,c8g.16xlarge,reserved_3y,partial_upfront,1.260002,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:02.256792 +AWS,eu-north-1,c8g.16xlarge,spot,NA,0.77845,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501220 +AWS,eu-north-1,c8g.24xlarge,on_demand,NA,4.0848,USD,AWS Pricing API,2025-11-30T09:08:46.093440 +AWS,eu-north-1,c8g.24xlarge,reserved_1y,all_upfront,2.97678,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:15.130977 +AWS,eu-north-1,c8g.24xlarge,reserved_1y,no_upfront,2.97678,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:02.211156 +AWS,eu-north-1,c8g.24xlarge,reserved_1y,partial_upfront,2.97678,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:38.653663 +AWS,eu-north-1,c8g.24xlarge,reserved_3y,all_upfront,2.97678,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:06.566024 +AWS,eu-north-1,c8g.24xlarge,reserved_3y,no_upfront,2.97678,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:09.577089 +AWS,eu-north-1,c8g.24xlarge,reserved_3y,partial_upfront,2.97678,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:48.135083 +AWS,eu-north-1,c8g.24xlarge,spot,NA,1.154831,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502229 +AWS,eu-north-1,c8g.2xlarge,on_demand,NA,0.3404,USD,AWS Pricing API,2025-11-30T09:08:12.012438 +AWS,eu-north-1,c8g.2xlarge,reserved_1y,all_upfront,0.464498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:40.817942 +AWS,eu-north-1,c8g.2xlarge,reserved_1y,no_upfront,0.464498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:27.651605 +AWS,eu-north-1,c8g.2xlarge,reserved_1y,partial_upfront,0.464498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:04.597637 +AWS,eu-north-1,c8g.2xlarge,reserved_3y,all_upfront,0.154833,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:33.038082 +AWS,eu-north-1,c8g.2xlarge,reserved_3y,no_upfront,0.154833,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:34.625186 +AWS,eu-north-1,c8g.2xlarge,reserved_3y,partial_upfront,0.154833,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:14.196764 +AWS,eu-north-1,c8g.2xlarge,spot,NA,0.11901,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501476 +AWS,eu-north-1,c8g.48xlarge,on_demand,NA,8.1696,USD,AWS Pricing API,2025-11-30T09:09:04.787601 +AWS,eu-north-1,c8g.48xlarge,reserved_1y,all_upfront,5.40419,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:34.010273 +AWS,eu-north-1,c8g.48xlarge,reserved_1y,no_upfront,5.40419,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:21.265277 +AWS,eu-north-1,c8g.48xlarge,reserved_1y,partial_upfront,5.40419,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:57.325019 +AWS,eu-north-1,c8g.48xlarge,reserved_3y,all_upfront,5.40419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:24.923105 +AWS,eu-north-1,c8g.48xlarge,reserved_3y,no_upfront,5.40419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:28.785904 +AWS,eu-north-1,c8g.48xlarge,reserved_3y,partial_upfront,5.40419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:06.850777 +AWS,eu-north-1,c8g.48xlarge,spot,NA,2.434571,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502577 +AWS,eu-north-1,c8g.4xlarge,on_demand,NA,0.6808,USD,AWS Pricing API,2025-11-30T09:08:14.457911 +AWS,eu-north-1,c8g.4xlarge,reserved_1y,all_upfront,0.45035,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:43.256211 +AWS,eu-north-1,c8g.4xlarge,reserved_1y,no_upfront,0.45035,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:30.120509 +AWS,eu-north-1,c8g.4xlarge,reserved_1y,partial_upfront,0.45035,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:07.033955 +AWS,eu-north-1,c8g.4xlarge,reserved_3y,all_upfront,0.45035,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:35.420326 +AWS,eu-north-1,c8g.4xlarge,reserved_3y,no_upfront,0.45035,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:37.126856 +AWS,eu-north-1,c8g.4xlarge,reserved_3y,partial_upfront,0.45035,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:16.644335 +AWS,eu-north-1,c8g.4xlarge,spot,NA,0.235928,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501513 +AWS,eu-north-1,c8g.8xlarge,on_demand,NA,1.3616,USD,AWS Pricing API,2025-11-30T09:08:17.952020 +AWS,eu-north-1,c8g.8xlarge,reserved_1y,all_upfront,0.857781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:46.745693 +AWS,eu-north-1,c8g.8xlarge,reserved_1y,no_upfront,0.857781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:33.665987 +AWS,eu-north-1,c8g.8xlarge,reserved_1y,partial_upfront,0.857781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:10.523592 +AWS,eu-north-1,c8g.8xlarge,reserved_3y,all_upfront,0.57186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:38.837258 +AWS,eu-north-1,c8g.8xlarge,reserved_3y,no_upfront,0.57186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:40.720033 +AWS,eu-north-1,c8g.8xlarge,reserved_3y,partial_upfront,0.57186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:20.141280 +AWS,eu-north-1,c8g.8xlarge,spot,NA,0.472641,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501592 +AWS,eu-north-1,c8g.large,on_demand,NA,0.0851,USD,AWS Pricing API,2025-11-30T09:08:59.166035 +AWS,eu-north-1,c8g.large,reserved_1y,all_upfront,0.06202,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:28.210968 +AWS,eu-north-1,c8g.large,reserved_1y,no_upfront,0.06202,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:15.531843 +AWS,eu-north-1,c8g.large,reserved_1y,partial_upfront,0.06202,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:51.659096 +AWS,eu-north-1,c8g.large,reserved_3y,all_upfront,0.06202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:19.377012 +AWS,eu-north-1,c8g.large,reserved_3y,no_upfront,0.06202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:22.991034 +AWS,eu-north-1,c8g.large,reserved_3y,partial_upfront,0.06202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:01.141195 +AWS,eu-north-1,c8g.large,spot,NA,0.029608,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502515 +AWS,eu-north-1,c8g.medium,on_demand,NA,0.04255,USD,AWS Pricing API,2025-11-30T09:08:43.938454 +AWS,eu-north-1,c8g.medium,reserved_1y,all_upfront,0.026756,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:12.950093 +AWS,eu-north-1,c8g.medium,reserved_1y,no_upfront,0.026756,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:00.008379 +AWS,eu-north-1,c8g.medium,reserved_1y,partial_upfront,0.026756,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:36.497715 +AWS,eu-north-1,c8g.medium,reserved_3y,all_upfront,0.017852,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:04.444237 +AWS,eu-north-1,c8g.medium,reserved_3y,no_upfront,0.017852,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:07.386727 +AWS,eu-north-1,c8g.medium,reserved_3y,partial_upfront,0.017852,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:45.981225 +AWS,eu-north-1,c8g.medium,spot,NA,0.012756,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502161 +AWS,eu-north-1,c8g.xlarge,on_demand,NA,0.1702,USD,AWS Pricing API,2025-11-30T09:08:08.222302 +AWS,eu-north-1,c8g.xlarge,reserved_1y,all_upfront,0.107263,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:37.006927 +AWS,eu-north-1,c8g.xlarge,reserved_1y,no_upfront,0.107263,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:23.777330 +AWS,eu-north-1,c8g.xlarge,reserved_1y,partial_upfront,0.107263,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:00.825937 +AWS,eu-north-1,c8g.xlarge,reserved_3y,all_upfront,0.071494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:29.330561 +AWS,eu-north-1,c8g.xlarge,reserved_3y,no_upfront,0.071494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:30.722801 +AWS,eu-north-1,c8g.xlarge,reserved_3y,partial_upfront,0.071494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:10.455259 +AWS,eu-north-1,c8g.xlarge,spot,NA,0.059997,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501390 +AWS,eu-north-1,g4dn.12xlarge,on_demand,NA,4.15,USD,AWS Pricing API,2025-11-30T09:08:04.968247 +AWS,eu-north-1,g4dn.12xlarge,reserved_1y,all_upfront,2.489977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:33.750932 +AWS,eu-north-1,g4dn.12xlarge,reserved_1y,no_upfront,2.489977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:20.484345 +AWS,eu-north-1,g4dn.12xlarge,reserved_1y,partial_upfront,2.489977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:57.605481 +AWS,eu-north-1,g4dn.12xlarge,reserved_3y,all_upfront,1.659992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:26.136996 +AWS,eu-north-1,g4dn.12xlarge,reserved_3y,no_upfront,1.659992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:27.428585 +AWS,eu-north-1,g4dn.12xlarge,reserved_3y,partial_upfront,1.659992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:07.244724 +AWS,eu-north-1,g4dn.12xlarge,spot,NA,1.767634,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501299 +AWS,eu-north-1,g4dn.16xlarge,on_demand,NA,4.617,USD,AWS Pricing API,2025-11-30T09:08:11.191908 +AWS,eu-north-1,g4dn.16xlarge,reserved_1y,all_upfront,2.770046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:39.988750 +AWS,eu-north-1,g4dn.16xlarge,reserved_1y,no_upfront,2.770046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:26.811288 +AWS,eu-north-1,g4dn.16xlarge,reserved_1y,partial_upfront,2.770046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:03.792654 +AWS,eu-north-1,g4dn.16xlarge,reserved_3y,all_upfront,1.846682,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:32.249068 +AWS,eu-north-1,g4dn.16xlarge,reserved_3y,no_upfront,1.846682,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:33.792007 +AWS,eu-north-1,g4dn.16xlarge,reserved_3y,partial_upfront,1.846682,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:13.395475 +AWS,eu-north-1,g4dn.16xlarge,spot,NA,1.35727,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501447 +AWS,eu-north-1,g4dn.2xlarge,on_demand,NA,0.798,USD,AWS Pricing API,2025-11-30T09:08:44.881226 +AWS,eu-north-1,g4dn.2xlarge,reserved_1y,all_upfront,0.638653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:13.919008 +AWS,eu-north-1,g4dn.2xlarge,reserved_1y,no_upfront,0.638653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:00.971757 +AWS,eu-north-1,g4dn.2xlarge,reserved_1y,partial_upfront,0.638653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:37.434221 +AWS,eu-north-1,g4dn.2xlarge,reserved_3y,all_upfront,0.319551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:05.367705 +AWS,eu-north-1,g4dn.2xlarge,reserved_3y,no_upfront,0.319551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:08.346561 +AWS,eu-north-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.319551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:46.933604 +AWS,eu-north-1,g4dn.2xlarge,spot,NA,0.272694,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502187 +AWS,eu-north-1,g4dn.4xlarge,on_demand,NA,1.277,USD,AWS Pricing API,2025-11-30T09:08:25.659704 +AWS,eu-north-1,g4dn.4xlarge,reserved_1y,all_upfront,1.021324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:54.558453 +AWS,eu-north-1,g4dn.4xlarge,reserved_1y,no_upfront,1.021324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:41.454174 +AWS,eu-north-1,g4dn.4xlarge,reserved_1y,partial_upfront,1.021324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:18.215528 +AWS,eu-north-1,g4dn.4xlarge,reserved_3y,all_upfront,0.510441,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:46.400965 +AWS,eu-north-1,g4dn.4xlarge,reserved_3y,no_upfront,0.510441,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:48.594318 +AWS,eu-north-1,g4dn.4xlarge,reserved_3y,partial_upfront,0.510441,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:27.766241 +AWS,eu-north-1,g4dn.4xlarge,spot,NA,0.44776,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501755 +AWS,eu-north-1,g4dn.8xlarge,on_demand,NA,2.308,USD,AWS Pricing API,2025-11-30T09:08:28.355106 +AWS,eu-north-1,g4dn.8xlarge,reserved_1y,all_upfront,3.257534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:57.262835 +AWS,eu-north-1,g4dn.8xlarge,reserved_1y,no_upfront,3.257534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:44.192136 +AWS,eu-north-1,g4dn.8xlarge,reserved_1y,partial_upfront,3.257534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:20.897305 +AWS,eu-north-1,g4dn.8xlarge,reserved_3y,all_upfront,1.085845,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:49.041722 +AWS,eu-north-1,g4dn.8xlarge,reserved_3y,no_upfront,1.085845,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:51.343766 +AWS,eu-north-1,g4dn.8xlarge,reserved_3y,partial_upfront,1.085845,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:30.435184 +AWS,eu-north-1,g4dn.8xlarge,spot,NA,0.703787,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501819 +AWS,eu-north-1,g4dn.xlarge,on_demand,NA,0.558,USD,AWS Pricing API,2025-11-30T09:08:51.466582 +AWS,eu-north-1,g4dn.xlarge,reserved_1y,all_upfront,0.334352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:20.524736 +AWS,eu-north-1,g4dn.xlarge,reserved_1y,no_upfront,0.334352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:07.696994 +AWS,eu-north-1,g4dn.xlarge,reserved_1y,partial_upfront,0.334352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:44.022363 +AWS,eu-north-1,g4dn.xlarge,reserved_3y,all_upfront,0.222784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:11.828244 +AWS,eu-north-1,g4dn.xlarge,reserved_3y,no_upfront,0.222784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:15.153314 +AWS,eu-north-1,g4dn.xlarge,reserved_3y,partial_upfront,0.222784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:53.498534 +AWS,eu-north-1,g4dn.xlarge,spot,NA,0.210511,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502346 +AWS,eu-north-1,g5.12xlarge,on_demand,NA,6.01593,USD,AWS Pricing API,2025-11-30T09:07:50.386148 +AWS,eu-north-1,g5.12xlarge,reserved_1y,all_upfront,4.812779,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:19.205074 +AWS,eu-north-1,g5.12xlarge,reserved_1y,no_upfront,4.812779,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:05.717963 +AWS,eu-north-1,g5.12xlarge,reserved_1y,partial_upfront,4.812779,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:42.993393 +AWS,eu-north-1,g5.12xlarge,reserved_3y,all_upfront,2.406386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:11.877444 +AWS,eu-north-1,g5.12xlarge,reserved_3y,no_upfront,2.406386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:12.604671 +AWS,eu-north-1,g5.12xlarge,reserved_3y,partial_upfront,2.406386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:52.715728 +AWS,eu-north-1,g5.12xlarge,spot,NA,2.319543,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501013 +AWS,eu-north-1,g5.16xlarge,on_demand,NA,4.34437,USD,AWS Pricing API,2025-11-30T09:07:52.423396 +AWS,eu-north-1,g5.16xlarge,reserved_1y,all_upfront,2.606621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:21.243532 +AWS,eu-north-1,g5.16xlarge,reserved_1y,no_upfront,2.606621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:07.775310 +AWS,eu-north-1,g5.16xlarge,reserved_1y,partial_upfront,2.606621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:45.045817 +AWS,eu-north-1,g5.16xlarge,reserved_3y,all_upfront,1.737747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:13.857769 +AWS,eu-north-1,g5.16xlarge,reserved_3y,no_upfront,1.737747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:14.677253 +AWS,eu-north-1,g5.16xlarge,reserved_3y,partial_upfront,1.737747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:54.725104 +AWS,eu-north-1,g5.16xlarge,spot,NA,1.609888,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501058 +AWS,eu-north-1,g5.24xlarge,on_demand,NA,8.63782,USD,AWS Pricing API,2025-11-30T09:07:51.337384 +AWS,eu-north-1,g5.24xlarge,reserved_1y,all_upfront,6.910208,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:20.154191 +AWS,eu-north-1,g5.24xlarge,reserved_1y,no_upfront,6.910208,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:06.678820 +AWS,eu-north-1,g5.24xlarge,reserved_1y,partial_upfront,6.910208,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:43.968149 +AWS,eu-north-1,g5.24xlarge,reserved_3y,all_upfront,3.455109,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:12.802180 +AWS,eu-north-1,g5.24xlarge,reserved_3y,no_upfront,3.455109,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:13.576432 +AWS,eu-north-1,g5.24xlarge,reserved_3y,partial_upfront,3.455109,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:53.651699 +AWS,eu-north-1,g5.24xlarge,spot,NA,2.939559,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501031 +AWS,eu-north-1,g5.2xlarge,on_demand,NA,1.28549,USD,AWS Pricing API,2025-11-30T09:08:08.361111 +AWS,eu-north-1,g5.2xlarge,reserved_1y,all_upfront,1.028447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:37.141500 +AWS,eu-north-1,g5.2xlarge,reserved_1y,no_upfront,1.028447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:23.914486 +AWS,eu-north-1,g5.2xlarge,reserved_1y,partial_upfront,1.028447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:00.958931 +AWS,eu-north-1,g5.2xlarge,reserved_3y,all_upfront,0.514216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:29.462663 +AWS,eu-north-1,g5.2xlarge,reserved_3y,no_upfront,0.514216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:30.858929 +AWS,eu-north-1,g5.2xlarge,reserved_3y,partial_upfront,0.514216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:10.589121 +AWS,eu-north-1,g5.2xlarge,spot,NA,0.471948,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501399 +AWS,eu-north-1,g5.48xlarge,on_demand,NA,17.27564,USD,AWS Pricing API,2025-11-30T09:07:53.083444 +AWS,eu-north-1,g5.48xlarge,reserved_1y,all_upfront,10.88365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:21.917813 +AWS,eu-north-1,g5.48xlarge,reserved_1y,no_upfront,10.88365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:08.448690 +AWS,eu-north-1,g5.48xlarge,reserved_1y,partial_upfront,10.88365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:45.728489 +AWS,eu-north-1,g5.48xlarge,reserved_3y,all_upfront,10.88365,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:14.518837 +AWS,eu-north-1,g5.48xlarge,reserved_3y,no_upfront,10.88365,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:15.365110 +AWS,eu-north-1,g5.48xlarge,reserved_3y,partial_upfront,10.88365,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:55.387491 +AWS,eu-north-1,g5.48xlarge,spot,NA,5.473707,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501076 +AWS,eu-north-1,g5.4xlarge,on_demand,NA,1.72247,USD,AWS Pricing API,2025-11-30T09:08:02.553561 +AWS,eu-north-1,g5.4xlarge,reserved_1y,all_upfront,1.033521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:31.325217 +AWS,eu-north-1,g5.4xlarge,reserved_1y,no_upfront,1.033521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:18.022453 +AWS,eu-north-1,g5.4xlarge,reserved_1y,partial_upfront,1.033521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:55.093746 +AWS,eu-north-1,g5.4xlarge,reserved_3y,all_upfront,0.689,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:23.768083 +AWS,eu-north-1,g5.4xlarge,reserved_3y,no_upfront,0.689,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:24.969706 +AWS,eu-north-1,g5.4xlarge,reserved_3y,partial_upfront,0.689,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:04.828507 +AWS,eu-north-1,g5.4xlarge,spot,NA,0.578534,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501266 +AWS,eu-north-1,g5.8xlarge,on_demand,NA,2.59644,USD,AWS Pricing API,2025-11-30T09:08:10.226615 +AWS,eu-north-1,g5.8xlarge,reserved_1y,all_upfront,1.526712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:39.040051 +AWS,eu-north-1,g5.8xlarge,reserved_1y,no_upfront,1.526712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:25.835018 +AWS,eu-north-1,g5.8xlarge,reserved_1y,partial_upfront,1.526712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:02.852662 +AWS,eu-north-1,g5.8xlarge,reserved_3y,all_upfront,0.508904,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:31.306693 +AWS,eu-north-1,g5.8xlarge,reserved_3y,no_upfront,0.508904,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:32.799647 +AWS,eu-north-1,g5.8xlarge,reserved_3y,partial_upfront,0.508904,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:12.461882 +AWS,eu-north-1,g5.8xlarge,spot,NA,0.92008,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501430 +AWS,eu-north-1,g5.xlarge,on_demand,NA,1.067,USD,AWS Pricing API,2025-11-30T09:08:56.996351 +AWS,eu-north-1,g5.xlarge,reserved_1y,all_upfront,0.640191,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:26.055490 +AWS,eu-north-1,g5.xlarge,reserved_1y,no_upfront,0.640191,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:13.321449 +AWS,eu-north-1,g5.xlarge,reserved_1y,partial_upfront,0.640191,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:49.504060 +AWS,eu-north-1,g5.xlarge,reserved_3y,all_upfront,0.426797,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:17.246299 +AWS,eu-north-1,g5.xlarge,reserved_3y,no_upfront,0.426797,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:20.780172 +AWS,eu-north-1,g5.xlarge,reserved_3y,partial_upfront,0.426797,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:58.986910 +AWS,eu-north-1,g5.xlarge,spot,NA,0.380147,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502448 +AWS,eu-north-1,g6.12xlarge,on_demand,NA,4.88062,USD,AWS Pricing API,2025-11-30T09:07:53.763082 +AWS,eu-north-1,g6.12xlarge,reserved_1y,all_upfront,5.185689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:22.596172 +AWS,eu-north-1,g6.12xlarge,reserved_1y,no_upfront,5.185689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:09.130801 +AWS,eu-north-1,g6.12xlarge,reserved_1y,partial_upfront,5.185689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:46.397665 +AWS,eu-north-1,g6.12xlarge,reserved_3y,all_upfront,2.592843,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:15.190081 +AWS,eu-north-1,g6.12xlarge,reserved_3y,no_upfront,2.592843,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:16.047723 +AWS,eu-north-1,g6.12xlarge,reserved_3y,partial_upfront,2.592843,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:56.063848 +AWS,eu-north-1,g6.12xlarge,spot,NA,1.581479,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501084 +AWS,eu-north-1,g6.16xlarge,on_demand,NA,3.60277,USD,AWS Pricing API,2025-11-30T09:07:51.063654 +AWS,eu-north-1,g6.16xlarge,reserved_1y,all_upfront,2.736301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:19.881565 +AWS,eu-north-1,g6.16xlarge,reserved_1y,no_upfront,2.736301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:06.406999 +AWS,eu-north-1,g6.16xlarge,reserved_1y,partial_upfront,2.736301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:43.685221 +AWS,eu-north-1,g6.16xlarge,reserved_3y,all_upfront,0.9121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:12.536722 +AWS,eu-north-1,g6.16xlarge,reserved_3y,no_upfront,0.9121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:13.295832 +AWS,eu-north-1,g6.16xlarge,reserved_3y,partial_upfront,0.9121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:53.385478 +AWS,eu-north-1,g6.16xlarge,spot,NA,1.068381,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.500999 +AWS,eu-north-1,g6.24xlarge,on_demand,NA,7.07996,USD,AWS Pricing API,2025-11-30T09:07:51.202641 +AWS,eu-north-1,g6.24xlarge,reserved_1y,all_upfront,11.057991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:20.017341 +AWS,eu-north-1,g6.24xlarge,reserved_1y,no_upfront,11.057991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:06.543630 +AWS,eu-north-1,g6.24xlarge,reserved_1y,partial_upfront,11.057991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:43.823198 +AWS,eu-north-1,g6.24xlarge,reserved_3y,all_upfront,3.685997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:12.669982 +AWS,eu-north-1,g6.24xlarge,reserved_3y,no_upfront,3.685997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:13.435186 +AWS,eu-north-1,g6.24xlarge,reserved_3y,partial_upfront,3.685997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:53.517462 +AWS,eu-north-1,g6.24xlarge,spot,NA,2.145552,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501018 +AWS,eu-north-1,g6.2xlarge,on_demand,NA,1.03688,USD,AWS Pricing API,2025-11-30T09:07:52.817361 +AWS,eu-north-1,g6.2xlarge,reserved_1y,all_upfront,0.630023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:21.648836 +AWS,eu-north-1,g6.2xlarge,reserved_1y,no_upfront,0.630023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:08.179041 +AWS,eu-north-1,g6.2xlarge,reserved_1y,partial_upfront,0.630023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:45.461135 +AWS,eu-north-1,g6.2xlarge,reserved_3y,all_upfront,0.210008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:14.257184 +AWS,eu-north-1,g6.2xlarge,reserved_3y,no_upfront,0.210008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:15.090083 +AWS,eu-north-1,g6.2xlarge,reserved_3y,partial_upfront,0.210008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:55.120033 +AWS,eu-north-1,g6.2xlarge,spot,NA,0.38307,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501040 +AWS,eu-north-1,g6.48xlarge,on_demand,NA,14.15992,USD,AWS Pricing API,2025-11-30T09:07:50.657007 +AWS,eu-north-1,g6.48xlarge,reserved_1y,all_upfront,10.973956,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:19.473196 +AWS,eu-north-1,g6.48xlarge,reserved_1y,no_upfront,10.973956,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:05.993083 +AWS,eu-north-1,g6.48xlarge,reserved_1y,partial_upfront,10.973956,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:43.271839 +AWS,eu-north-1,g6.48xlarge,reserved_3y,all_upfront,7.315965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:12.138687 +AWS,eu-north-1,g6.48xlarge,reserved_3y,no_upfront,7.315965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:12.881999 +AWS,eu-north-1,g6.48xlarge,reserved_3y,partial_upfront,7.315965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:52.982802 +AWS,eu-north-1,g6.48xlarge,spot,NA,4.085631,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.500980 +AWS,eu-north-1,g6.4xlarge,on_demand,NA,1.40343,USD,AWS Pricing API,2025-11-30T09:07:51.472618 +AWS,eu-north-1,g6.4xlarge,reserved_1y,all_upfront,1.491169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:20.290319 +AWS,eu-north-1,g6.4xlarge,reserved_1y,no_upfront,1.491169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:06.815708 +AWS,eu-north-1,g6.4xlarge,reserved_1y,partial_upfront,1.491169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:44.105589 +AWS,eu-north-1,g6.4xlarge,reserved_3y,all_upfront,0.745583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:12.932550 +AWS,eu-north-1,g6.4xlarge,reserved_3y,no_upfront,0.745583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:13.713481 +AWS,eu-north-1,g6.4xlarge,reserved_3y,partial_upfront,0.745583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:53.783207 +AWS,eu-north-1,g6.4xlarge,spot,NA,0.484634,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501009 +AWS,eu-north-1,g6.8xlarge,on_demand,NA,2.13655,USD,AWS Pricing API,2025-11-30T09:07:52.287171 +AWS,eu-north-1,g6.8xlarge,reserved_1y,all_upfront,0.98067,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:21.099122 +AWS,eu-north-1,g6.8xlarge,reserved_1y,no_upfront,0.98067,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:07.637098 +AWS,eu-north-1,g6.8xlarge,reserved_1y,partial_upfront,0.98067,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:44.913834 +AWS,eu-north-1,g6.8xlarge,reserved_3y,all_upfront,0.98067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:13.723387 +AWS,eu-north-1,g6.8xlarge,reserved_3y,no_upfront,0.98067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:14.540395 +AWS,eu-north-1,g6.8xlarge,reserved_3y,partial_upfront,0.98067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:54.588161 +AWS,eu-north-1,g6.8xlarge,spot,NA,0.709111,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501045 +AWS,eu-north-1,g6.xlarge,on_demand,NA,0.8536,USD,AWS Pricing API,2025-11-30T09:07:50.793085 +AWS,eu-north-1,g6.xlarge,reserved_1y,all_upfront,0.69462,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:19.608087 +AWS,eu-north-1,g6.xlarge,reserved_1y,no_upfront,0.69462,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:06.131611 +AWS,eu-north-1,g6.xlarge,reserved_1y,partial_upfront,0.69462,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:43.417635 +AWS,eu-north-1,g6.xlarge,reserved_3y,all_upfront,0.69462,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:12.270932 +AWS,eu-north-1,g6.xlarge,reserved_3y,no_upfront,0.69462,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:13.017574 +AWS,eu-north-1,g6.xlarge,reserved_3y,partial_upfront,0.69462,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:53.117051 +AWS,eu-north-1,g6.xlarge,spot,NA,0.32123,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501026 +AWS,eu-north-1,g6e.12xlarge,on_demand,NA,11.12975,USD,AWS Pricing API,2025-11-30T09:07:53.358298 +AWS,eu-north-1,g6e.12xlarge,reserved_1y,all_upfront,8.41409,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:22.186131 +AWS,eu-north-1,g6e.12xlarge,reserved_1y,no_upfront,8.41409,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:08.721149 +AWS,eu-north-1,g6e.12xlarge,reserved_1y,partial_upfront,8.41409,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:45.999089 +AWS,eu-north-1,g6e.12xlarge,reserved_3y,all_upfront,8.41409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:14.793975 +AWS,eu-north-1,g6e.12xlarge,reserved_3y,no_upfront,8.41409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:15.641153 +AWS,eu-north-1,g6e.12xlarge,reserved_3y,partial_upfront,8.41409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:55.669026 +AWS,eu-north-1,g6e.12xlarge,spot,NA,3.742154,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501093 +AWS,eu-north-1,g6e.16xlarge,on_demand,NA,8.03728,USD,AWS Pricing API,2025-11-30T09:07:52.015207 +AWS,eu-north-1,g6e.16xlarge,reserved_1y,all_upfront,6.429834,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:20.830562 +AWS,eu-north-1,g6e.16xlarge,reserved_1y,no_upfront,6.429834,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:07.363900 +AWS,eu-north-1,g6e.16xlarge,reserved_1y,partial_upfront,6.429834,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:44.643640 +AWS,eu-north-1,g6e.16xlarge,reserved_3y,all_upfront,3.214918,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:13.460508 +AWS,eu-north-1,g6e.16xlarge,reserved_3y,no_upfront,3.214918,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:14.265951 +AWS,eu-north-1,g6e.16xlarge,reserved_3y,partial_upfront,3.214918,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:54.319813 +AWS,eu-north-1,g6e.16xlarge,spot,NA,2.345117,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501049 +AWS,eu-north-1,g6e.24xlarge,on_demand,NA,15.98037,USD,AWS Pricing API,2025-11-30T09:07:51.882137 +AWS,eu-north-1,g6e.24xlarge,reserved_1y,all_upfront,10.06764,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:20.695636 +AWS,eu-north-1,g6e.24xlarge,reserved_1y,no_upfront,10.06764,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:07.227634 +AWS,eu-north-1,g6e.24xlarge,reserved_1y,partial_upfront,10.06764,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:44.509399 +AWS,eu-north-1,g6e.24xlarge,reserved_3y,all_upfront,10.06764,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:13.329655 +AWS,eu-north-1,g6e.24xlarge,reserved_3y,no_upfront,10.06764,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:14.126084 +AWS,eu-north-1,g6e.24xlarge,reserved_3y,partial_upfront,10.06764,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:54.186921 +AWS,eu-north-1,g6e.24xlarge,spot,NA,5.155974,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501054 +AWS,eu-north-1,g6e.2xlarge,on_demand,NA,2.37822,USD,AWS Pricing API,2025-11-30T09:07:51.609721 +AWS,eu-north-1,g6e.2xlarge,reserved_1y,all_upfront,2.682648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:20.425199 +AWS,eu-north-1,g6e.2xlarge,reserved_1y,no_upfront,2.682648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:06.954540 +AWS,eu-north-1,g6e.2xlarge,reserved_1y,partial_upfront,2.682648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:44.240287 +AWS,eu-north-1,g6e.2xlarge,reserved_3y,all_upfront,0.894216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:13.065495 +AWS,eu-north-1,g6e.2xlarge,reserved_3y,no_upfront,0.894216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:13.850826 +AWS,eu-north-1,g6e.2xlarge,reserved_3y,partial_upfront,0.894216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:53.914385 +AWS,eu-north-1,g6e.2xlarge,spot,NA,1.020814,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501035 +AWS,eu-north-1,g6e.48xlarge,on_demand,NA,31.96075,USD,AWS Pricing API,2025-11-30T09:07:50.927950 +AWS,eu-north-1,g6e.48xlarge,reserved_1y,all_upfront,20.13527,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:19.748399 +AWS,eu-north-1,g6e.48xlarge,reserved_1y,no_upfront,20.13527,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:06.270491 +AWS,eu-north-1,g6e.48xlarge,reserved_1y,partial_upfront,20.13527,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:43.551349 +AWS,eu-north-1,g6e.48xlarge,reserved_3y,all_upfront,20.13527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:12.403641 +AWS,eu-north-1,g6e.48xlarge,reserved_3y,no_upfront,20.13527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:13.157408 +AWS,eu-north-1,g6e.48xlarge,reserved_3y,partial_upfront,20.13527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:53.252116 +AWS,eu-north-1,g6e.48xlarge,spot,NA,12.058981,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501004 +AWS,eu-north-1,g6e.4xlarge,on_demand,NA,3.18666,USD,AWS Pricing API,2025-11-30T09:07:51.746282 +AWS,eu-north-1,g6e.4xlarge,reserved_1y,all_upfront,2.40911,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:20.560172 +AWS,eu-north-1,g6e.4xlarge,reserved_1y,no_upfront,2.40911,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:07.090343 +AWS,eu-north-1,g6e.4xlarge,reserved_1y,partial_upfront,2.40911,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:44.377271 +AWS,eu-north-1,g6e.4xlarge,reserved_3y,all_upfront,2.40911,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:13.198089 +AWS,eu-north-1,g6e.4xlarge,reserved_3y,no_upfront,2.40911,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:13.989046 +AWS,eu-north-1,g6e.4xlarge,reserved_3y,partial_upfront,2.40911,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:54.048384 +AWS,eu-north-1,g6e.4xlarge,spot,NA,1.168064,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501063 +AWS,eu-north-1,g6e.8xlarge,on_demand,NA,4.80353,USD,AWS Pricing API,2025-11-30T09:07:50.520306 +AWS,eu-north-1,g6e.8xlarge,reserved_1y,all_upfront,2.824429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:19.340017 +AWS,eu-north-1,g6e.8xlarge,reserved_1y,no_upfront,2.824429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:05.854991 +AWS,eu-north-1,g6e.8xlarge,reserved_1y,partial_upfront,2.824429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:43.126923 +AWS,eu-north-1,g6e.8xlarge,reserved_3y,all_upfront,0.941476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:12.007046 +AWS,eu-north-1,g6e.8xlarge,reserved_3y,no_upfront,0.941476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:12.742198 +AWS,eu-north-1,g6e.8xlarge,reserved_3y,partial_upfront,0.941476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:52.848776 +AWS,eu-north-1,g6e.8xlarge,spot,NA,1.675498,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501022 +AWS,eu-north-1,g6e.xlarge,on_demand,NA,1.974,USD,AWS Pricing API,2025-11-30T09:07:53.222927 +AWS,eu-north-1,g6e.xlarge,reserved_1y,all_upfront,1.49234,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:22.051609 +AWS,eu-north-1,g6e.xlarge,reserved_1y,no_upfront,1.49234,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:08.585466 +AWS,eu-north-1,g6e.xlarge,reserved_1y,partial_upfront,1.49234,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:45.864245 +AWS,eu-north-1,g6e.xlarge,reserved_3y,all_upfront,1.49234,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:14.653308 +AWS,eu-north-1,g6e.xlarge,reserved_3y,no_upfront,1.49234,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:15.502458 +AWS,eu-north-1,g6e.xlarge,reserved_3y,partial_upfront,1.49234,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:55.522722 +AWS,eu-north-1,g6e.xlarge,spot,NA,0.807535,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501097 +AWS,eu-north-1,gr6.4xlarge,on_demand,NA,1.6326,USD,AWS Pricing API,2025-11-30T09:07:52.151952 +AWS,eu-north-1,gr6.4xlarge,reserved_1y,all_upfront,1.01216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:20.964973 +AWS,eu-north-1,gr6.4xlarge,reserved_1y,no_upfront,1.01216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:07.500551 +AWS,eu-north-1,gr6.4xlarge,reserved_1y,partial_upfront,1.01216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:44.779422 +AWS,eu-north-1,gr6.4xlarge,reserved_3y,all_upfront,0.674793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:13.592296 +AWS,eu-north-1,gr6.4xlarge,reserved_3y,no_upfront,0.674793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:14.403253 +AWS,eu-north-1,gr6.4xlarge,reserved_3y,partial_upfront,0.674793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:54.454177 +AWS,eu-north-1,gr6.4xlarge,spot,NA,0.469505,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501067 +AWS,eu-north-1,gr6.8xlarge,on_demand,NA,2.59485,USD,AWS Pricing API,2025-11-30T09:07:53.495436 +AWS,eu-north-1,gr6.8xlarge,reserved_1y,all_upfront,1.576598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:22.319879 +AWS,eu-north-1,gr6.8xlarge,reserved_1y,no_upfront,1.576598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:08.860247 +AWS,eu-north-1,gr6.8xlarge,reserved_1y,partial_upfront,1.576598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:46.133462 +AWS,eu-north-1,gr6.8xlarge,reserved_3y,all_upfront,0.525533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:14.925547 +AWS,eu-north-1,gr6.8xlarge,reserved_3y,no_upfront,0.525533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:15.776804 +AWS,eu-north-1,gr6.8xlarge,reserved_3y,partial_upfront,0.525533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:55.801689 +AWS,eu-north-1,gr6.8xlarge,spot,NA,0.720004,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501080 +AWS,eu-north-1,i3.16xlarge,on_demand,NA,5.216,USD,AWS Pricing API,2025-11-30T09:08:48.511631 +AWS,eu-north-1,i3.16xlarge,reserved_1y,all_upfront,7.997374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:17.551851 +AWS,eu-north-1,i3.16xlarge,reserved_1y,no_upfront,7.997374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:04.700183 +AWS,eu-north-1,i3.16xlarge,reserved_1y,partial_upfront,7.997374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:41.078792 +AWS,eu-north-1,i3.16xlarge,reserved_3y,all_upfront,2.665791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:08.945338 +AWS,eu-north-1,i3.16xlarge,reserved_3y,no_upfront,2.665791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:12.116998 +AWS,eu-north-1,i3.16xlarge,reserved_3y,partial_upfront,2.665791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:50.547124 +AWS,eu-north-1,i3.16xlarge,spot,NA,1.464452,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502300 +AWS,eu-north-1,i3.2xlarge,on_demand,NA,0.652,USD,AWS Pricing API,2025-11-30T09:08:08.496401 +AWS,eu-north-1,i3.2xlarge,reserved_1y,all_upfront,0.999658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:37.288809 +AWS,eu-north-1,i3.2xlarge,reserved_1y,no_upfront,0.999658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:24.049953 +AWS,eu-north-1,i3.2xlarge,reserved_1y,partial_upfront,0.999658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:01.093630 +AWS,eu-north-1,i3.2xlarge,reserved_3y,all_upfront,0.333219,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:29.595850 +AWS,eu-north-1,i3.2xlarge,reserved_3y,no_upfront,0.333219,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:31.004854 +AWS,eu-north-1,i3.2xlarge,reserved_3y,partial_upfront,0.333219,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:10.725319 +AWS,eu-north-1,i3.2xlarge,spot,NA,0.20286,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501374 +AWS,eu-north-1,i3.4xlarge,on_demand,NA,1.304,USD,AWS Pricing API,2025-11-30T09:08:09.965574 +AWS,eu-north-1,i3.4xlarge,reserved_1y,all_upfront,1.025,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:38.771237 +AWS,eu-north-1,i3.4xlarge,reserved_1y,no_upfront,1.025,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:25.563974 +AWS,eu-north-1,i3.4xlarge,reserved_1y,partial_upfront,1.025,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:02.584167 +AWS,eu-north-1,i3.4xlarge,reserved_3y,all_upfront,1.025,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:31.040137 +AWS,eu-north-1,i3.4xlarge,reserved_3y,no_upfront,1.025,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:32.527655 +AWS,eu-north-1,i3.4xlarge,reserved_3y,partial_upfront,1.025,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:12.196715 +AWS,eu-north-1,i3.4xlarge,spot,NA,0.474667,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501417 +AWS,eu-north-1,i3.8xlarge,on_demand,NA,2.608,USD,AWS Pricing API,2025-11-30T09:08:04.158797 +AWS,eu-north-1,i3.8xlarge,reserved_1y,all_upfront,1.698087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:32.947719 +AWS,eu-north-1,i3.8xlarge,reserved_1y,no_upfront,1.698087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:19.668494 +AWS,eu-north-1,i3.8xlarge,reserved_1y,partial_upfront,1.698087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:56.804118 +AWS,eu-north-1,i3.8xlarge,reserved_3y,all_upfront,1.132029,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:25.347339 +AWS,eu-north-1,i3.8xlarge,reserved_3y,no_upfront,1.132029,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:26.606165 +AWS,eu-north-1,i3.8xlarge,reserved_3y,partial_upfront,1.132029,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:06.430379 +AWS,eu-north-1,i3.8xlarge,spot,NA,0.745291,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501295 +AWS,eu-north-1,i3.large,on_demand,NA,0.163,USD,AWS Pricing API,2025-11-30T09:08:09.168497 +AWS,eu-north-1,i3.large,reserved_1y,all_upfront,0.111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:37.965682 +AWS,eu-north-1,i3.large,reserved_1y,no_upfront,0.111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:24.743303 +AWS,eu-north-1,i3.large,reserved_1y,partial_upfront,0.111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:01.765734 +AWS,eu-north-1,i3.large,reserved_3y,all_upfront,0.111,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:30.252047 +AWS,eu-north-1,i3.large,reserved_3y,no_upfront,0.111,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:31.704573 +AWS,eu-north-1,i3.large,reserved_3y,partial_upfront,0.111,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:11.400014 +AWS,eu-north-1,i3.large,spot,NA,0.047932,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501434 +AWS,eu-north-1,i3.xlarge,on_demand,NA,0.326,USD,AWS Pricing API,2025-11-30T09:08:34.383948 +AWS,eu-north-1,i3.xlarge,reserved_1y,all_upfront,0.499886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:03.335639 +AWS,eu-north-1,i3.xlarge,reserved_1y,no_upfront,0.499886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:50.311780 +AWS,eu-north-1,i3.xlarge,reserved_1y,partial_upfront,0.499886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:26.955836 +AWS,eu-north-1,i3.xlarge,reserved_3y,all_upfront,0.166629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:54.991306 +AWS,eu-north-1,i3.xlarge,reserved_3y,no_upfront,0.166629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:57.529993 +AWS,eu-north-1,i3.xlarge,reserved_3y,partial_upfront,0.166629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:36.453889 +AWS,eu-north-1,i3.xlarge,spot,NA,0.101153,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501937 +AWS,eu-north-1,i3en.12xlarge,on_demand,NA,5.688,USD,AWS Pricing API,2025-11-30T09:08:06.174451 +AWS,eu-north-1,i3en.12xlarge,reserved_1y,all_upfront,4.172603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:34.971537 +AWS,eu-north-1,i3en.12xlarge,reserved_1y,no_upfront,4.172603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:21.710494 +AWS,eu-north-1,i3en.12xlarge,reserved_1y,partial_upfront,4.172603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:58.805248 +AWS,eu-north-1,i3en.12xlarge,reserved_3y,all_upfront,1.390868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:27.333726 +AWS,eu-north-1,i3en.12xlarge,reserved_3y,no_upfront,1.390868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:28.655028 +AWS,eu-north-1,i3en.12xlarge,reserved_3y,partial_upfront,1.390868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:08.446712 +AWS,eu-north-1,i3en.12xlarge,spot,NA,1.62116,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501331 +AWS,eu-north-1,i3en.24xlarge,on_demand,NA,11.376,USD,AWS Pricing API,2025-11-30T09:08:11.466014 +AWS,eu-north-1,i3en.24xlarge,reserved_1y,all_upfront,7.255594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:40.267129 +AWS,eu-north-1,i3en.24xlarge,reserved_1y,no_upfront,7.255594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:27.100369 +AWS,eu-north-1,i3en.24xlarge,reserved_1y,partial_upfront,7.255594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:04.060468 +AWS,eu-north-1,i3en.24xlarge,reserved_3y,all_upfront,2.418531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:32.508967 +AWS,eu-north-1,i3en.24xlarge,reserved_3y,no_upfront,2.418531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:34.066517 +AWS,eu-north-1,i3en.24xlarge,reserved_3y,partial_upfront,2.418531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:13.663454 +AWS,eu-north-1,i3en.24xlarge,spot,NA,3.180998,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501464 +AWS,eu-north-1,i3en.2xlarge,on_demand,NA,0.948,USD,AWS Pricing API,2025-11-30T09:08:01.321859 +AWS,eu-north-1,i3en.2xlarge,reserved_1y,all_upfront,1.087671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:30.111871 +AWS,eu-north-1,i3en.2xlarge,reserved_1y,no_upfront,1.087671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:16.789173 +AWS,eu-north-1,i3en.2xlarge,reserved_1y,partial_upfront,1.087671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:53.898121 +AWS,eu-north-1,i3en.2xlarge,reserved_3y,all_upfront,0.362557,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:22.575544 +AWS,eu-north-1,i3en.2xlarge,reserved_3y,no_upfront,0.362557,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:23.729029 +AWS,eu-north-1,i3en.2xlarge,reserved_3y,partial_upfront,0.362557,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:03.625637 +AWS,eu-north-1,i3en.2xlarge,spot,NA,0.284791,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501242 +AWS,eu-north-1,i3en.3xlarge,on_demand,NA,1.422,USD,AWS Pricing API,2025-11-30T09:08:55.637976 +AWS,eu-north-1,i3en.3xlarge,reserved_1y,all_upfront,1.043151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:24.700317 +AWS,eu-north-1,i3en.3xlarge,reserved_1y,no_upfront,1.043151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:11.962769 +AWS,eu-north-1,i3en.3xlarge,reserved_1y,partial_upfront,1.043151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:48.168351 +AWS,eu-north-1,i3en.3xlarge,reserved_3y,all_upfront,0.347717,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:15.908022 +AWS,eu-north-1,i3en.3xlarge,reserved_3y,no_upfront,0.347717,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:19.401615 +AWS,eu-north-1,i3en.3xlarge,reserved_3y,partial_upfront,0.347717,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:57.629056 +AWS,eu-north-1,i3en.3xlarge,spot,NA,0.412041,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502401 +AWS,eu-north-1,i3en.6xlarge,on_demand,NA,2.844,USD,AWS Pricing API,2025-11-30T09:08:47.035205 +AWS,eu-north-1,i3en.6xlarge,reserved_1y,all_upfront,1.436,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:16.079630 +AWS,eu-north-1,i3en.6xlarge,reserved_1y,no_upfront,1.436,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:03.173297 +AWS,eu-north-1,i3en.6xlarge,reserved_1y,partial_upfront,1.436,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:39.603974 +AWS,eu-north-1,i3en.6xlarge,reserved_3y,all_upfront,1.436,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:07.486963 +AWS,eu-north-1,i3en.6xlarge,reserved_3y,no_upfront,1.436,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:10.528993 +AWS,eu-north-1,i3en.6xlarge,reserved_3y,partial_upfront,1.436,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:49.064130 +AWS,eu-north-1,i3en.6xlarge,spot,NA,0.838653,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502262 +AWS,eu-north-1,i3en.large,on_demand,NA,0.237,USD,AWS Pricing API,2025-11-30T09:08:20.014741 +AWS,eu-north-1,i3en.large,reserved_1y,all_upfront,0.173858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:48.790367 +AWS,eu-north-1,i3en.large,reserved_1y,no_upfront,0.173858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:35.719048 +AWS,eu-north-1,i3en.large,reserved_1y,partial_upfront,0.173858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:12.571187 +AWS,eu-north-1,i3en.large,reserved_3y,all_upfront,0.057953,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:40.845795 +AWS,eu-north-1,i3en.large,reserved_3y,no_upfront,0.057953,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:42.788044 +AWS,eu-north-1,i3en.large,reserved_3y,partial_upfront,0.057953,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:22.156618 +AWS,eu-north-1,i3en.large,spot,NA,0.067544,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501641 +AWS,eu-north-1,i3en.xlarge,on_demand,NA,0.474,USD,AWS Pricing API,2025-11-30T09:08:19.331669 +AWS,eu-north-1,i3en.xlarge,reserved_1y,all_upfront,0.543836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:48.116838 +AWS,eu-north-1,i3en.xlarge,reserved_1y,no_upfront,0.543836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:35.040951 +AWS,eu-north-1,i3en.xlarge,reserved_1y,partial_upfront,0.543836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:11.887065 +AWS,eu-north-1,i3en.xlarge,reserved_3y,all_upfront,0.181279,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:40.186265 +AWS,eu-north-1,i3en.xlarge,reserved_3y,no_upfront,0.181279,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:42.102816 +AWS,eu-north-1,i3en.xlarge,reserved_3y,partial_upfront,0.181279,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:21.490246 +AWS,eu-north-1,i3en.xlarge,spot,NA,0.140198,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501613 +AWS,eu-north-1,i4i.16xlarge,on_demand,NA,5.738,USD,AWS Pricing API,2025-11-30T09:08:24.180707 +AWS,eu-north-1,i4i.16xlarge,reserved_1y,all_upfront,3.561822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:52.986971 +AWS,eu-north-1,i4i.16xlarge,reserved_1y,no_upfront,3.561822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:39.952321 +AWS,eu-north-1,i4i.16xlarge,reserved_1y,partial_upfront,3.561822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:16.743120 +AWS,eu-north-1,i4i.16xlarge,reserved_3y,all_upfront,2.374607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:44.944082 +AWS,eu-north-1,i4i.16xlarge,reserved_3y,no_upfront,2.374607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:47.078835 +AWS,eu-north-1,i4i.16xlarge,reserved_3y,partial_upfront,2.374607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:26.291742 +AWS,eu-north-1,i4i.16xlarge,spot,NA,1.641659,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501719 +AWS,eu-north-1,i4i.2xlarge,on_demand,NA,0.717,USD,AWS Pricing API,2025-11-30T09:08:40.018208 +AWS,eu-north-1,i4i.2xlarge,reserved_1y,all_upfront,0.401,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:09.009767 +AWS,eu-north-1,i4i.2xlarge,reserved_1y,no_upfront,0.401,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:56.044437 +AWS,eu-north-1,i4i.2xlarge,reserved_1y,partial_upfront,0.401,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:32.585310 +AWS,eu-north-1,i4i.2xlarge,reserved_3y,all_upfront,0.401,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:00.571926 +AWS,eu-north-1,i4i.2xlarge,reserved_3y,no_upfront,0.401,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:03.393756 +AWS,eu-north-1,i4i.2xlarge,reserved_3y,partial_upfront,0.401,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:42.096133 +AWS,eu-north-1,i4i.2xlarge,spot,NA,0.223904,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502032 +AWS,eu-north-1,i4i.32xlarge,on_demand,NA,11.4752,USD,AWS Pricing API,2025-11-30T09:08:52.296676 +AWS,eu-north-1,i4i.32xlarge,reserved_1y,all_upfront,8.492697,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:21.334650 +AWS,eu-north-1,i4i.32xlarge,reserved_1y,no_upfront,8.492697,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:08.525745 +AWS,eu-north-1,i4i.32xlarge,reserved_1y,partial_upfront,8.492697,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:44.823125 +AWS,eu-north-1,i4i.32xlarge,reserved_3y,all_upfront,5.661799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:12.613581 +AWS,eu-north-1,i4i.32xlarge,reserved_3y,no_upfront,5.661799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:15.981181 +AWS,eu-north-1,i4i.32xlarge,reserved_3y,partial_upfront,5.661799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:54.293347 +AWS,eu-north-1,i4i.32xlarge,spot,NA,3.28776,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502354 +AWS,eu-north-1,i4i.4xlarge,on_demand,NA,1.434,USD,AWS Pricing API,2025-11-30T09:08:28.620271 +AWS,eu-north-1,i4i.4xlarge,reserved_1y,all_upfront,0.935,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:57.529280 +AWS,eu-north-1,i4i.4xlarge,reserved_1y,no_upfront,0.935,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:44.463252 +AWS,eu-north-1,i4i.4xlarge,reserved_1y,partial_upfront,0.935,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:21.163325 +AWS,eu-north-1,i4i.4xlarge,reserved_3y,all_upfront,0.935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:49.307102 +AWS,eu-north-1,i4i.4xlarge,reserved_3y,no_upfront,0.935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:51.616610 +AWS,eu-north-1,i4i.4xlarge,reserved_3y,partial_upfront,0.935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:30.703016 +AWS,eu-north-1,i4i.4xlarge,spot,NA,0.477097,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501828 +AWS,eu-north-1,i4i.8xlarge,on_demand,NA,2.869,USD,AWS Pricing API,2025-11-30T09:08:31.586550 +AWS,eu-north-1,i4i.8xlarge,reserved_1y,all_upfront,1.87,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:00.497970 +AWS,eu-north-1,i4i.8xlarge,reserved_1y,no_upfront,1.87,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:47.467115 +AWS,eu-north-1,i4i.8xlarge,reserved_1y,partial_upfront,1.87,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:24.127919 +AWS,eu-north-1,i4i.8xlarge,reserved_3y,all_upfront,1.87,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:52.219196 +AWS,eu-north-1,i4i.8xlarge,reserved_3y,no_upfront,1.87,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:54.639330 +AWS,eu-north-1,i4i.8xlarge,reserved_3y,partial_upfront,1.87,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:33.649081 +AWS,eu-north-1,i4i.8xlarge,spot,NA,0.885263,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501898 +AWS,eu-north-1,i4i.large,on_demand,NA,0.179,USD,AWS Pricing API,2025-11-30T09:08:56.861426 +AWS,eu-north-1,i4i.large,reserved_1y,all_upfront,0.109018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:25.919434 +AWS,eu-north-1,i4i.large,reserved_1y,no_upfront,0.109018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:13.185479 +AWS,eu-north-1,i4i.large,reserved_1y,partial_upfront,0.109018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:49.369343 +AWS,eu-north-1,i4i.large,reserved_3y,all_upfront,0.036339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:17.114343 +AWS,eu-north-1,i4i.large,reserved_3y,no_upfront,0.036339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:20.641644 +AWS,eu-north-1,i4i.large,reserved_3y,partial_upfront,0.036339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:58.853067 +AWS,eu-north-1,i4i.large,spot,NA,0.053669,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502452 +AWS,eu-north-1,i4i.xlarge,on_demand,NA,0.359,USD,AWS Pricing API,2025-11-30T09:08:38.410624 +AWS,eu-north-1,i4i.xlarge,reserved_1y,all_upfront,0.234,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:07.404480 +AWS,eu-north-1,i4i.xlarge,reserved_1y,no_upfront,0.234,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:54.413931 +AWS,eu-north-1,i4i.xlarge,reserved_1y,partial_upfront,0.234,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:30.976239 +AWS,eu-north-1,i4i.xlarge,reserved_3y,all_upfront,0.234,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:58.985335 +AWS,eu-north-1,i4i.xlarge,reserved_3y,no_upfront,0.234,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:01.711544 +AWS,eu-north-1,i4i.xlarge,reserved_3y,partial_upfront,0.234,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:40.468908 +AWS,eu-north-1,i4i.xlarge,spot,NA,0.111385,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502001 +AWS,eu-north-1,i7i.12xlarge,on_demand,NA,4.7335,USD,AWS Pricing API,2025-11-30T09:08:16.740242 +AWS,eu-north-1,i7i.16xlarge,on_demand,NA,6.3114,USD,AWS Pricing API,2025-11-30T09:09:02.092302 +AWS,eu-north-1,i7i.24xlarge,on_demand,NA,9.467,USD,AWS Pricing API,2025-11-30T09:07:57.657235 +AWS,eu-north-1,i7i.2xlarge,on_demand,NA,0.7889,USD,AWS Pricing API,2025-11-30T09:07:54.850733 +AWS,eu-north-1,i7i.48xlarge,on_demand,NA,18.9341,USD,AWS Pricing API,2025-11-30T09:07:56.580805 +AWS,eu-north-1,i7i.4xlarge,on_demand,NA,1.5778,USD,AWS Pricing API,2025-11-30T09:08:59.026400 +AWS,eu-north-1,i7i.8xlarge,on_demand,NA,3.1557,USD,AWS Pricing API,2025-11-30T09:08:29.291895 +AWS,eu-north-1,i7i.large,on_demand,NA,0.1972,USD,AWS Pricing API,2025-11-30T09:08:12.977678 +AWS,eu-north-1,i7i.xlarge,on_demand,NA,0.3945,USD,AWS Pricing API,2025-11-30T09:08:21.345878 +AWS,eu-north-1,i8g.12xlarge,on_demand,NA,4.3056,USD,AWS Pricing API,2025-11-30T09:08:52.561247 +AWS,eu-north-1,i8g.12xlarge,spot,NA,2.082519,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502371 +AWS,eu-north-1,i8g.16xlarge,on_demand,NA,5.7408,USD,AWS Pricing API,2025-11-30T09:08:49.576613 +AWS,eu-north-1,i8g.16xlarge,spot,NA,2.382658,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502321 +AWS,eu-north-1,i8g.24xlarge,on_demand,NA,8.6112,USD,AWS Pricing API,2025-11-30T09:08:52.027694 +AWS,eu-north-1,i8g.24xlarge,spot,NA,4.610314,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502342 +AWS,eu-north-1,i8g.2xlarge,on_demand,NA,0.7176,USD,AWS Pricing API,2025-11-30T09:08:19.465733 +AWS,eu-north-1,i8g.2xlarge,spot,NA,0.338276,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501600 +AWS,eu-north-1,i8g.48xlarge,on_demand,NA,17.2224,USD,AWS Pricing API,2025-11-30T09:08:00.095361 +AWS,eu-north-1,i8g.48xlarge,spot,NA,10.128429,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501229 +AWS,eu-north-1,i8g.4xlarge,on_demand,NA,1.4352,USD,AWS Pricing API,2025-11-30T09:08:46.763201 +AWS,eu-north-1,i8g.4xlarge,spot,NA,0.721277,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502237 +AWS,eu-north-1,i8g.8xlarge,on_demand,NA,2.8704,USD,AWS Pricing API,2025-11-30T09:09:05.739600 +AWS,eu-north-1,i8g.8xlarge,spot,NA,1.128467,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502604 +AWS,eu-north-1,i8g.large,on_demand,NA,0.1794,USD,AWS Pricing API,2025-11-30T09:08:23.906743 +AWS,eu-north-1,i8g.large,spot,NA,0.070697,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501701 +AWS,eu-north-1,i8g.xlarge,on_demand,NA,0.3588,USD,AWS Pricing API,2025-11-30T09:08:15.944885 +AWS,eu-north-1,i8g.xlarge,spot,NA,0.175203,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501561 +AWS,eu-north-1,m5.12xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T09:08:13.513561 +AWS,eu-north-1,m5.12xlarge,reserved_1y,all_upfront,1.439384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:42.301280 +AWS,eu-north-1,m5.12xlarge,reserved_1y,no_upfront,1.439384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:29.162834 +AWS,eu-north-1,m5.12xlarge,reserved_1y,partial_upfront,1.439384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:06.093622 +AWS,eu-north-1,m5.12xlarge,reserved_3y,all_upfront,0.479795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:34.493966 +AWS,eu-north-1,m5.12xlarge,reserved_3y,no_upfront,0.479795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:36.165503 +AWS,eu-north-1,m5.12xlarge,reserved_3y,partial_upfront,0.479795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:15.698900 +AWS,eu-north-1,m5.12xlarge,spot,NA,0.824963,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501509 +AWS,eu-north-1,m5.16xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T09:08:45.822172 +AWS,eu-north-1,m5.16xlarge,reserved_1y,all_upfront,2.056,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:14.860691 +AWS,eu-north-1,m5.16xlarge,reserved_1y,no_upfront,2.056,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:01.931602 +AWS,eu-north-1,m5.16xlarge,reserved_1y,partial_upfront,2.056,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:38.386525 +AWS,eu-north-1,m5.16xlarge,reserved_3y,all_upfront,2.056,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:06.296479 +AWS,eu-north-1,m5.16xlarge,reserved_3y,no_upfront,2.056,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:09.304409 +AWS,eu-north-1,m5.16xlarge,reserved_3y,partial_upfront,2.056,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:47.866675 +AWS,eu-north-1,m5.16xlarge,spot,NA,0.981246,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502215 +AWS,eu-north-1,m5.24xlarge,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T09:08:57.132336 +AWS,eu-north-1,m5.24xlarge,reserved_1y,all_upfront,3.953,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:26.192441 +AWS,eu-north-1,m5.24xlarge,reserved_1y,no_upfront,3.953,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:13.467149 +AWS,eu-north-1,m5.24xlarge,reserved_1y,partial_upfront,3.953,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:49.642696 +AWS,eu-north-1,m5.24xlarge,reserved_3y,all_upfront,3.953,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:17.380597 +AWS,eu-north-1,m5.24xlarge,reserved_3y,no_upfront,3.953,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:20.919947 +AWS,eu-north-1,m5.24xlarge,reserved_3y,partial_upfront,3.953,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:59.120933 +AWS,eu-north-1,m5.24xlarge,spot,NA,1.398545,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502440 +AWS,eu-north-1,m5.2xlarge,on_demand,NA,0.408,USD,AWS Pricing API,2025-11-30T09:08:29.433634 +AWS,eu-north-1,m5.2xlarge,reserved_1y,all_upfront,0.239954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:58.339893 +AWS,eu-north-1,m5.2xlarge,reserved_1y,no_upfront,0.239954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:45.282643 +AWS,eu-north-1,m5.2xlarge,reserved_1y,partial_upfront,0.239954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:21.964952 +AWS,eu-north-1,m5.2xlarge,reserved_3y,all_upfront,0.079985,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:50.109198 +AWS,eu-north-1,m5.2xlarge,reserved_3y,no_upfront,0.079985,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:52.443519 +AWS,eu-north-1,m5.2xlarge,reserved_3y,partial_upfront,0.079985,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:31.503660 +AWS,eu-north-1,m5.2xlarge,spot,NA,0.169198,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501832 +AWS,eu-north-1,m5.4xlarge,on_demand,NA,0.816,USD,AWS Pricing API,2025-11-30T09:08:38.685617 +AWS,eu-north-1,m5.4xlarge,reserved_1y,all_upfront,0.659,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:07.675635 +AWS,eu-north-1,m5.4xlarge,reserved_1y,no_upfront,0.659,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:54.687095 +AWS,eu-north-1,m5.4xlarge,reserved_1y,partial_upfront,0.659,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:31.251080 +AWS,eu-north-1,m5.4xlarge,reserved_3y,all_upfront,0.659,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:59.249932 +AWS,eu-north-1,m5.4xlarge,reserved_3y,no_upfront,0.659,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:01.989077 +AWS,eu-north-1,m5.4xlarge,reserved_3y,partial_upfront,0.659,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:40.736214 +AWS,eu-north-1,m5.4xlarge,spot,NA,0.276591,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501997 +AWS,eu-north-1,m5.8xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T09:09:05.079662 +AWS,eu-north-1,m5.8xlarge,reserved_1y,all_upfront,1.318,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:34.280885 +AWS,eu-north-1,m5.8xlarge,reserved_1y,no_upfront,1.318,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:21.551151 +AWS,eu-north-1,m5.8xlarge,reserved_1y,partial_upfront,1.318,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:57.592534 +AWS,eu-north-1,m5.8xlarge,reserved_3y,all_upfront,1.318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:25.187419 +AWS,eu-north-1,m5.8xlarge,reserved_3y,no_upfront,1.318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:29.062770 +AWS,eu-north-1,m5.8xlarge,reserved_3y,partial_upfront,1.318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:07.123391 +AWS,eu-north-1,m5.8xlarge,spot,NA,0.552176,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502595 +AWS,eu-north-1,m5.large,on_demand,NA,0.102,USD,AWS Pricing API,2025-11-30T09:08:29.841319 +AWS,eu-north-1,m5.large,reserved_1y,all_upfront,0.059932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:58.741805 +AWS,eu-north-1,m5.large,reserved_1y,no_upfront,0.059932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:45.693770 +AWS,eu-north-1,m5.large,reserved_1y,partial_upfront,0.059932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:22.377290 +AWS,eu-north-1,m5.large,reserved_3y,all_upfront,0.019977,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:50.508672 +AWS,eu-north-1,m5.large,reserved_3y,no_upfront,0.019977,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:52.857081 +AWS,eu-north-1,m5.large,reserved_3y,partial_upfront,0.019977,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:31.903549 +AWS,eu-north-1,m5.large,spot,NA,0.040177,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501844 +AWS,eu-north-1,m5.xlarge,on_demand,NA,0.204,USD,AWS Pricing API,2025-11-30T09:09:02.899441 +AWS,eu-north-1,m5.xlarge,reserved_1y,all_upfront,0.129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:32.005814 +AWS,eu-north-1,m5.xlarge,reserved_1y,no_upfront,0.129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:19.356685 +AWS,eu-north-1,m5.xlarge,reserved_1y,partial_upfront,0.129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:55.424902 +AWS,eu-north-1,m5.xlarge,reserved_3y,all_upfront,0.129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:23.060567 +AWS,eu-north-1,m5.xlarge,reserved_3y,no_upfront,0.129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:26.854818 +AWS,eu-north-1,m5.xlarge,reserved_3y,partial_upfront,0.129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:04.965356 +AWS,eu-north-1,m5.xlarge,spot,NA,0.071021,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502545 +AWS,eu-north-1,m5d.12xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T09:07:58.066166 +AWS,eu-north-1,m5d.12xlarge,reserved_1y,all_upfront,2.303968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:26.883179 +AWS,eu-north-1,m5d.12xlarge,reserved_1y,no_upfront,2.303968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:13.478438 +AWS,eu-north-1,m5d.12xlarge,reserved_1y,partial_upfront,2.303968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:50.693426 +AWS,eu-north-1,m5d.12xlarge,reserved_3y,all_upfront,1.151989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:19.406992 +AWS,eu-north-1,m5d.12xlarge,reserved_3y,no_upfront,1.151989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:20.436959 +AWS,eu-north-1,m5d.12xlarge,reserved_3y,partial_upfront,1.151989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:00.354203 +AWS,eu-north-1,m5d.12xlarge,spot,NA,0.984938,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501158 +AWS,eu-north-1,m5d.16xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T09:08:42.698675 +AWS,eu-north-1,m5d.16xlarge,reserved_1y,all_upfront,2.957653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:11.701699 +AWS,eu-north-1,m5d.16xlarge,reserved_1y,no_upfront,2.957653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:58.756735 +AWS,eu-north-1,m5d.16xlarge,reserved_1y,partial_upfront,2.957653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:35.289395 +AWS,eu-north-1,m5d.16xlarge,reserved_3y,all_upfront,1.971884,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:03.248468 +AWS,eu-north-1,m5d.16xlarge,reserved_3y,no_upfront,1.971884,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:06.148926 +AWS,eu-north-1,m5d.16xlarge,reserved_3y,partial_upfront,1.971884,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:44.772517 +AWS,eu-north-1,m5d.16xlarge,spot,NA,1.241043,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502123 +AWS,eu-north-1,m5d.24xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T09:08:26.481378 +AWS,eu-north-1,m5d.24xlarge,reserved_1y,all_upfront,3.455968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:55.370342 +AWS,eu-north-1,m5d.24xlarge,reserved_1y,no_upfront,3.455968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:42.285602 +AWS,eu-north-1,m5d.24xlarge,reserved_1y,partial_upfront,3.455968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:19.024811 +AWS,eu-north-1,m5d.24xlarge,reserved_3y,all_upfront,2.303989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:47.205687 +AWS,eu-north-1,m5d.24xlarge,reserved_3y,no_upfront,2.303989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:49.430816 +AWS,eu-north-1,m5d.24xlarge,reserved_3y,partial_upfront,2.303989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:28.568713 +AWS,eu-north-1,m5d.24xlarge,spot,NA,1.666546,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501747 +AWS,eu-north-1,m5d.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T09:08:10.918040 +AWS,eu-north-1,m5d.2xlarge,reserved_1y,all_upfront,0.362215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:39.713807 +AWS,eu-north-1,m5d.2xlarge,reserved_1y,no_upfront,0.362215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:26.539555 +AWS,eu-north-1,m5d.2xlarge,reserved_1y,partial_upfront,0.362215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:03.521450 +AWS,eu-north-1,m5d.2xlarge,reserved_3y,all_upfront,0.120738,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:31.984336 +AWS,eu-north-1,m5d.2xlarge,reserved_3y,no_upfront,0.120738,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:33.507659 +AWS,eu-north-1,m5d.2xlarge,reserved_3y,partial_upfront,0.120738,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:13.127881 +AWS,eu-north-1,m5d.2xlarge,spot,NA,0.180347,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501455 +AWS,eu-north-1,m5d.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T09:08:22.014732 +AWS,eu-north-1,m5d.4xlarge,reserved_1y,all_upfront,0.724543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:50.820117 +AWS,eu-north-1,m5d.4xlarge,reserved_1y,no_upfront,0.724543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:37.767055 +AWS,eu-north-1,m5d.4xlarge,reserved_1y,partial_upfront,0.724543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:14.578268 +AWS,eu-north-1,m5d.4xlarge,reserved_3y,all_upfront,0.241514,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:42.819464 +AWS,eu-north-1,m5d.4xlarge,reserved_3y,no_upfront,0.241514,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:44.874468 +AWS,eu-north-1,m5d.4xlarge,reserved_3y,partial_upfront,0.241514,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:24.163283 +AWS,eu-north-1,m5d.4xlarge,spot,NA,0.334415,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501665 +AWS,eu-north-1,m5d.8xlarge,on_demand,NA,1.92,USD,AWS Pricing API,2025-11-30T09:09:04.934172 +AWS,eu-north-1,m5d.8xlarge,reserved_1y,all_upfront,1.478269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:34.146179 +AWS,eu-north-1,m5d.8xlarge,reserved_1y,no_upfront,1.478269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:21.406949 +AWS,eu-north-1,m5d.8xlarge,reserved_1y,partial_upfront,1.478269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:57.458866 +AWS,eu-north-1,m5d.8xlarge,reserved_3y,all_upfront,0.985423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:25.056082 +AWS,eu-north-1,m5d.8xlarge,reserved_3y,no_upfront,0.985423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:28.923550 +AWS,eu-north-1,m5d.8xlarge,reserved_3y,partial_upfront,0.985423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:06.984552 +AWS,eu-north-1,m5d.8xlarge,spot,NA,0.633806,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502591 +AWS,eu-north-1,m5d.large,on_demand,NA,0.12,USD,AWS Pricing API,2025-11-30T09:08:01.876880 +AWS,eu-north-1,m5d.large,reserved_1y,all_upfront,0.070548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:30.650924 +AWS,eu-north-1,m5d.large,reserved_1y,no_upfront,0.070548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:17.338748 +AWS,eu-north-1,m5d.large,reserved_1y,partial_upfront,0.070548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:54.427819 +AWS,eu-north-1,m5d.large,reserved_3y,all_upfront,0.023516,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:23.104934 +AWS,eu-north-1,m5d.large,reserved_3y,no_upfront,0.023516,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:24.284257 +AWS,eu-north-1,m5d.large,reserved_3y,partial_upfront,0.023516,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:04.163633 +AWS,eu-north-1,m5d.large,spot,NA,0.043105,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501258 +AWS,eu-north-1,m5d.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T09:08:17.814622 +AWS,eu-north-1,m5d.xlarge,reserved_1y,all_upfront,0.184466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:46.611850 +AWS,eu-north-1,m5d.xlarge,reserved_1y,no_upfront,0.184466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:33.528262 +AWS,eu-north-1,m5d.xlarge,reserved_1y,partial_upfront,0.184466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:10.391089 +AWS,eu-north-1,m5d.xlarge,reserved_3y,all_upfront,0.122822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:38.704880 +AWS,eu-north-1,m5d.xlarge,reserved_3y,no_upfront,0.122822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:40.574787 +AWS,eu-north-1,m5d.xlarge,reserved_3y,partial_upfront,0.122822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:19.999090 +AWS,eu-north-1,m5d.xlarge,spot,NA,0.070791,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501585 +AWS,eu-north-1,m6g.12xlarge,on_demand,NA,1.968,USD,AWS Pricing API,2025-11-30T09:08:12.157940 +AWS,eu-north-1,m6g.12xlarge,reserved_1y,all_upfront,1.152511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:40.951341 +AWS,eu-north-1,m6g.12xlarge,reserved_1y,no_upfront,1.152511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:27.787465 +AWS,eu-north-1,m6g.12xlarge,reserved_1y,partial_upfront,1.152511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:04.732695 +AWS,eu-north-1,m6g.12xlarge,reserved_3y,all_upfront,0.38417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:33.168221 +AWS,eu-north-1,m6g.12xlarge,reserved_3y,no_upfront,0.38417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:34.761978 +AWS,eu-north-1,m6g.12xlarge,reserved_3y,partial_upfront,0.38417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:14.333335 +AWS,eu-north-1,m6g.12xlarge,spot,NA,0.60828,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501492 +AWS,eu-north-1,m6g.16xlarge,on_demand,NA,2.624,USD,AWS Pricing API,2025-11-30T09:08:07.518215 +AWS,eu-north-1,m6g.16xlarge,reserved_1y,all_upfront,2.1168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:36.315191 +AWS,eu-north-1,m6g.16xlarge,reserved_1y,no_upfront,2.1168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:23.094919 +AWS,eu-north-1,m6g.16xlarge,reserved_1y,partial_upfront,2.1168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:00.145082 +AWS,eu-north-1,m6g.16xlarge,reserved_3y,all_upfront,2.1168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:28.665858 +AWS,eu-north-1,m6g.16xlarge,reserved_3y,no_upfront,2.1168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:30.036703 +AWS,eu-north-1,m6g.16xlarge,reserved_3y,partial_upfront,2.1168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:09.783004 +AWS,eu-north-1,m6g.16xlarge,spot,NA,0.760457,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501361 +AWS,eu-north-1,m6g.2xlarge,on_demand,NA,0.328,USD,AWS Pricing API,2025-11-30T09:08:28.090028 +AWS,eu-north-1,m6g.2xlarge,reserved_1y,all_upfront,0.192123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:56.994519 +AWS,eu-north-1,m6g.2xlarge,reserved_1y,no_upfront,0.192123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:43.924638 +AWS,eu-north-1,m6g.2xlarge,reserved_1y,partial_upfront,0.192123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:20.632298 +AWS,eu-north-1,m6g.2xlarge,reserved_3y,all_upfront,0.064041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:48.772834 +AWS,eu-north-1,m6g.2xlarge,reserved_3y,no_upfront,0.064041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:51.070458 +AWS,eu-north-1,m6g.2xlarge,reserved_3y,partial_upfront,0.064041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:30.166728 +AWS,eu-north-1,m6g.2xlarge,spot,NA,0.129013,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501808 +AWS,eu-north-1,m6g.4xlarge,on_demand,NA,0.656,USD,AWS Pricing API,2025-11-30T09:08:54.285668 +AWS,eu-north-1,m6g.4xlarge,reserved_1y,all_upfront,0.49395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:23.355577 +AWS,eu-north-1,m6g.4xlarge,reserved_1y,no_upfront,0.49395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:10.598239 +AWS,eu-north-1,m6g.4xlarge,reserved_1y,partial_upfront,0.49395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:46.822333 +AWS,eu-north-1,m6g.4xlarge,reserved_3y,all_upfront,0.16465,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:14.586767 +AWS,eu-north-1,m6g.4xlarge,reserved_3y,no_upfront,0.16465,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:18.026672 +AWS,eu-north-1,m6g.4xlarge,reserved_3y,partial_upfront,0.16465,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:56.292284 +AWS,eu-north-1,m6g.4xlarge,spot,NA,0.250024,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502383 +AWS,eu-north-1,m6g.8xlarge,on_demand,NA,1.312,USD,AWS Pricing API,2025-11-30T09:08:35.470595 +AWS,eu-north-1,m6g.8xlarge,reserved_1y,all_upfront,0.8233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:04.421623 +AWS,eu-north-1,m6g.8xlarge,reserved_1y,no_upfront,0.8233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:51.398846 +AWS,eu-north-1,m6g.8xlarge,reserved_1y,partial_upfront,0.8233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:28.027992 +AWS,eu-north-1,m6g.8xlarge,reserved_3y,all_upfront,0.8233,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:56.049262 +AWS,eu-north-1,m6g.8xlarge,reserved_3y,no_upfront,0.8233,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:58.643258 +AWS,eu-north-1,m6g.8xlarge,reserved_3y,partial_upfront,0.8233,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:37.528367 +AWS,eu-north-1,m6g.8xlarge,spot,NA,0.431103,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501941 +AWS,eu-north-1,m6g.large,on_demand,NA,0.082,USD,AWS Pricing API,2025-11-30T09:08:12.712116 +AWS,eu-north-1,m6g.large,reserved_1y,all_upfront,0.0662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:41.492596 +AWS,eu-north-1,m6g.large,reserved_1y,no_upfront,0.0662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:28.350185 +AWS,eu-north-1,m6g.large,reserved_1y,partial_upfront,0.0662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:05.274953 +AWS,eu-north-1,m6g.large,reserved_3y,all_upfront,0.0662,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:33.708670 +AWS,eu-north-1,m6g.large,reserved_3y,no_upfront,0.0662,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:35.333607 +AWS,eu-north-1,m6g.large,reserved_3y,partial_upfront,0.0662,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:14.877367 +AWS,eu-north-1,m6g.large,spot,NA,0.030989,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501480 +AWS,eu-north-1,m6g.xlarge,on_demand,NA,0.164,USD,AWS Pricing API,2025-11-30T09:08:26.346678 +AWS,eu-north-1,m6g.xlarge,reserved_1y,all_upfront,0.0929,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:55.234005 +AWS,eu-north-1,m6g.xlarge,reserved_1y,no_upfront,0.0929,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:42.148419 +AWS,eu-north-1,m6g.xlarge,reserved_1y,partial_upfront,0.0929,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:18.885400 +AWS,eu-north-1,m6g.xlarge,reserved_3y,all_upfront,0.0929,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:47.073789 +AWS,eu-north-1,m6g.xlarge,reserved_3y,no_upfront,0.0929,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:49.291662 +AWS,eu-north-1,m6g.xlarge,reserved_3y,partial_upfront,0.0929,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:28.435088 +AWS,eu-north-1,m6g.xlarge,spot,NA,0.052082,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501776 +AWS,eu-north-1,m6gd.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:08:44.073196 +AWS,eu-north-1,m6gd.12xlarge,reserved_1y,all_upfront,1.8648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:13.092854 +AWS,eu-north-1,m6gd.12xlarge,reserved_1y,no_upfront,1.8648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:00.145735 +AWS,eu-north-1,m6gd.12xlarge,reserved_1y,partial_upfront,1.8648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:36.632810 +AWS,eu-north-1,m6gd.12xlarge,reserved_3y,all_upfront,1.8648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:04.577920 +AWS,eu-north-1,m6gd.12xlarge,reserved_3y,no_upfront,1.8648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:07.527080 +AWS,eu-north-1,m6gd.12xlarge,reserved_3y,partial_upfront,1.8648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:46.122087 +AWS,eu-north-1,m6gd.12xlarge,spot,NA,0.671741,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502149 +AWS,eu-north-1,m6gd.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T09:08:46.355357 +AWS,eu-north-1,m6gd.16xlarge,reserved_1y,all_upfront,1.855968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:15.399242 +AWS,eu-north-1,m6gd.16xlarge,reserved_1y,no_upfront,1.855968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:02.484726 +AWS,eu-north-1,m6gd.16xlarge,reserved_1y,partial_upfront,1.855968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:38.921885 +AWS,eu-north-1,m6gd.16xlarge,reserved_3y,all_upfront,1.237323,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:06.827595 +AWS,eu-north-1,m6gd.16xlarge,reserved_3y,no_upfront,1.237323,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:09.848768 +AWS,eu-north-1,m6gd.16xlarge,reserved_3y,partial_upfront,1.237323,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:48.401479 +AWS,eu-north-1,m6gd.16xlarge,spot,NA,0.897967,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502220 +AWS,eu-north-1,m6gd.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T09:08:14.853269 +AWS,eu-north-1,m6gd.2xlarge,reserved_1y,all_upfront,0.428653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:43.657511 +AWS,eu-north-1,m6gd.2xlarge,reserved_1y,no_upfront,0.428653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:30.524999 +AWS,eu-north-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.428653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:07.427555 +AWS,eu-north-1,m6gd.2xlarge,reserved_3y,all_upfront,0.142884,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:35.810369 +AWS,eu-north-1,m6gd.2xlarge,reserved_3y,no_upfront,0.142884,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:37.535438 +AWS,eu-north-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.142884,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:17.046854 +AWS,eu-north-1,m6gd.2xlarge,spot,NA,0.141027,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501537 +AWS,eu-north-1,m6gd.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T09:08:41.232762 +AWS,eu-north-1,m6gd.4xlarge,reserved_1y,all_upfront,0.45468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:10.219122 +AWS,eu-north-1,m6gd.4xlarge,reserved_1y,no_upfront,0.45468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:57.274280 +AWS,eu-north-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.45468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:33.792930 +AWS,eu-north-1,m6gd.4xlarge,reserved_3y,all_upfront,0.15156,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:01.773395 +AWS,eu-north-1,m6gd.4xlarge,reserved_3y,no_upfront,0.15156,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:04.633766 +AWS,eu-north-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.15156,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:43.299011 +AWS,eu-north-1,m6gd.4xlarge,spot,NA,0.257865,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502101 +AWS,eu-north-1,m6gd.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T09:08:03.628913 +AWS,eu-north-1,m6gd.8xlarge,reserved_1y,all_upfront,1.2432,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:32.410875 +AWS,eu-north-1,m6gd.8xlarge,reserved_1y,no_upfront,1.2432,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:19.120436 +AWS,eu-north-1,m6gd.8xlarge,reserved_1y,partial_upfront,1.2432,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:56.267563 +AWS,eu-north-1,m6gd.8xlarge,reserved_3y,all_upfront,1.2432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:24.825836 +AWS,eu-north-1,m6gd.8xlarge,reserved_3y,no_upfront,1.2432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:26.061895 +AWS,eu-north-1,m6gd.8xlarge,reserved_3y,partial_upfront,1.2432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:05.896275 +AWS,eu-north-1,m6gd.8xlarge,spot,NA,0.496429,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501270 +AWS,eu-north-1,m6gd.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T09:08:24.981161 +AWS,eu-north-1,m6gd.large,reserved_1y,all_upfront,0.056849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:53.886620 +AWS,eu-north-1,m6gd.large,reserved_1y,no_upfront,0.056849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:40.769970 +AWS,eu-north-1,m6gd.large,reserved_1y,partial_upfront,0.056849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:17.545243 +AWS,eu-north-1,m6gd.large,reserved_3y,all_upfront,0.01895,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:45.732728 +AWS,eu-north-1,m6gd.large,reserved_3y,no_upfront,0.01895,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:47.905473 +AWS,eu-north-1,m6gd.large,reserved_3y,partial_upfront,0.01895,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:27.085111 +AWS,eu-north-1,m6gd.large,spot,NA,0.033116,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501723 +AWS,eu-north-1,m6gd.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T09:08:18.233620 +AWS,eu-north-1,m6gd.xlarge,reserved_1y,all_upfront,0.1554,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:47.027098 +AWS,eu-north-1,m6gd.xlarge,reserved_1y,no_upfront,0.1554,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:33.944502 +AWS,eu-north-1,m6gd.xlarge,reserved_1y,partial_upfront,0.1554,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:10.794015 +AWS,eu-north-1,m6gd.xlarge,reserved_3y,all_upfront,0.1554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:39.107424 +AWS,eu-north-1,m6gd.xlarge,reserved_3y,no_upfront,0.1554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:40.996768 +AWS,eu-north-1,m6gd.xlarge,reserved_3y,partial_upfront,0.1554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:20.407051 +AWS,eu-north-1,m6gd.xlarge,spot,NA,0.062849,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501581 +AWS,eu-north-1,m6i.12xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T09:08:04.435516 +AWS,eu-north-1,m6i.12xlarge,reserved_1y,all_upfront,1.85809,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:33.218673 +AWS,eu-north-1,m6i.12xlarge,reserved_1y,no_upfront,1.85809,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:19.941906 +AWS,eu-north-1,m6i.12xlarge,reserved_1y,partial_upfront,1.85809,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:57.073697 +AWS,eu-north-1,m6i.12xlarge,reserved_3y,all_upfront,1.85809,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:25.613361 +AWS,eu-north-1,m6i.12xlarge,reserved_3y,no_upfront,1.85809,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:26.884606 +AWS,eu-north-1,m6i.12xlarge,reserved_3y,partial_upfront,1.85809,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:06.699046 +AWS,eu-north-1,m6i.12xlarge,spot,NA,0.791144,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501311 +AWS,eu-north-1,m6i.16xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T09:08:18.912303 +AWS,eu-north-1,m6i.16xlarge,reserved_1y,all_upfront,2.015183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:47.705036 +AWS,eu-north-1,m6i.16xlarge,reserved_1y,no_upfront,2.015183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:34.632910 +AWS,eu-north-1,m6i.16xlarge,reserved_1y,partial_upfront,2.015183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:11.475945 +AWS,eu-north-1,m6i.16xlarge,reserved_3y,all_upfront,0.671728,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:39.790549 +AWS,eu-north-1,m6i.16xlarge,reserved_3y,no_upfront,0.671728,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:41.691205 +AWS,eu-north-1,m6i.16xlarge,reserved_3y,partial_upfront,0.671728,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:21.079690 +AWS,eu-north-1,m6i.16xlarge,spot,NA,1.012017,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501596 +AWS,eu-north-1,m6i.24xlarge,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T09:08:20.413334 +AWS,eu-north-1,m6i.24xlarge,reserved_1y,all_upfront,4.712182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:49.193271 +AWS,eu-north-1,m6i.24xlarge,reserved_1y,no_upfront,4.712182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:36.126539 +AWS,eu-north-1,m6i.24xlarge,reserved_1y,partial_upfront,4.712182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:12.970985 +AWS,eu-north-1,m6i.24xlarge,reserved_3y,all_upfront,2.356094,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:41.242280 +AWS,eu-north-1,m6i.24xlarge,reserved_3y,no_upfront,2.356094,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:43.199722 +AWS,eu-north-1,m6i.24xlarge,reserved_3y,partial_upfront,2.356094,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:22.556338 +AWS,eu-north-1,m6i.24xlarge,spot,NA,1.465613,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501649 +AWS,eu-north-1,m6i.2xlarge,on_demand,NA,0.408,USD,AWS Pricing API,2025-11-30T09:08:39.088913 +AWS,eu-north-1,m6i.2xlarge,reserved_1y,all_upfront,0.342758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:08.079272 +AWS,eu-north-1,m6i.2xlarge,reserved_1y,no_upfront,0.342758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:55.092719 +AWS,eu-north-1,m6i.2xlarge,reserved_1y,partial_upfront,0.342758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:31.651921 +AWS,eu-north-1,m6i.2xlarge,reserved_3y,all_upfront,0.171373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:59.646440 +AWS,eu-north-1,m6i.2xlarge,reserved_3y,no_upfront,0.171373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:02.420679 +AWS,eu-north-1,m6i.2xlarge,reserved_3y,partial_upfront,0.171373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:41.134381 +AWS,eu-north-1,m6i.2xlarge,spot,NA,0.191189,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502038 +AWS,eu-north-1,m6i.32xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T09:08:55.504029 +AWS,eu-north-1,m6i.32xlarge,reserved_1y,all_upfront,4.112599,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:24.567817 +AWS,eu-north-1,m6i.32xlarge,reserved_1y,no_upfront,4.112599,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:11.824507 +AWS,eu-north-1,m6i.32xlarge,reserved_1y,partial_upfront,4.112599,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:48.034155 +AWS,eu-north-1,m6i.32xlarge,reserved_3y,all_upfront,2.741746,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:15.773240 +AWS,eu-north-1,m6i.32xlarge,reserved_3y,no_upfront,2.741746,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:19.261329 +AWS,eu-north-1,m6i.32xlarge,reserved_3y,partial_upfront,2.741746,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:57.497652 +AWS,eu-north-1,m6i.32xlarge,spot,NA,1.898883,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502405 +AWS,eu-north-1,m6i.4xlarge,on_demand,NA,0.816,USD,AWS Pricing API,2025-11-30T09:08:06.576369 +AWS,eu-north-1,m6i.4xlarge,reserved_1y,all_upfront,0.37014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:35.377967 +AWS,eu-north-1,m6i.4xlarge,reserved_1y,no_upfront,0.37014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:22.118283 +AWS,eu-north-1,m6i.4xlarge,reserved_1y,partial_upfront,0.37014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:59.207912 +AWS,eu-north-1,m6i.4xlarge,reserved_3y,all_upfront,0.37014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:27.731771 +AWS,eu-north-1,m6i.4xlarge,reserved_3y,no_upfront,0.37014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:29.066744 +AWS,eu-north-1,m6i.4xlarge,reserved_3y,partial_upfront,0.37014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:08.848956 +AWS,eu-north-1,m6i.4xlarge,spot,NA,0.284832,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501365 +AWS,eu-north-1,m6i.8xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T09:08:11.330815 +AWS,eu-north-1,m6i.8xlarge,reserved_1y,all_upfront,1.07957,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:40.126011 +AWS,eu-north-1,m6i.8xlarge,reserved_1y,no_upfront,1.07957,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:26.952764 +AWS,eu-north-1,m6i.8xlarge,reserved_1y,partial_upfront,1.07957,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:03.926653 +AWS,eu-north-1,m6i.8xlarge,reserved_3y,all_upfront,1.07957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:32.378737 +AWS,eu-north-1,m6i.8xlarge,reserved_3y,no_upfront,1.07957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:33.929354 +AWS,eu-north-1,m6i.8xlarge,reserved_3y,partial_upfront,1.07957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:13.531498 +AWS,eu-north-1,m6i.8xlarge,spot,NA,0.552555,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501442 +AWS,eu-north-1,m6i.large,on_demand,NA,0.102,USD,AWS Pricing API,2025-11-30T09:08:21.879347 +AWS,eu-north-1,m6i.large,reserved_1y,all_upfront,0.063014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:50.681045 +AWS,eu-north-1,m6i.large,reserved_1y,no_upfront,0.063014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:37.631928 +AWS,eu-north-1,m6i.large,reserved_1y,partial_upfront,0.063014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:14.445025 +AWS,eu-north-1,m6i.large,reserved_3y,all_upfront,0.021005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:42.686907 +AWS,eu-north-1,m6i.large,reserved_3y,no_upfront,0.021005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:44.738597 +AWS,eu-north-1,m6i.large,reserved_3y,partial_upfront,0.021005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:24.024910 +AWS,eu-north-1,m6i.large,spot,NA,0.037588,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501661 +AWS,eu-north-1,m6i.xlarge,on_demand,NA,0.204,USD,AWS Pricing API,2025-11-30T09:07:57.931152 +AWS,eu-north-1,m6i.xlarge,reserved_1y,all_upfront,0.125913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:26.749141 +AWS,eu-north-1,m6i.xlarge,reserved_1y,no_upfront,0.125913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:13.342329 +AWS,eu-north-1,m6i.xlarge,reserved_1y,partial_upfront,0.125913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:50.555341 +AWS,eu-north-1,m6i.xlarge,reserved_3y,all_upfront,0.041971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:19.275536 +AWS,eu-north-1,m6i.xlarge,reserved_3y,no_upfront,0.041971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:20.299527 +AWS,eu-north-1,m6i.xlarge,reserved_3y,partial_upfront,0.041971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:00.220071 +AWS,eu-north-1,m6i.xlarge,spot,NA,0.077991,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501162 +AWS,eu-north-1,m6idn.12xlarge,on_demand,NA,3.984,USD,AWS Pricing API,2025-11-30T09:08:26.072499 +AWS,eu-north-1,m6idn.12xlarge,reserved_1y,all_upfront,2.50155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:54.967306 +AWS,eu-north-1,m6idn.12xlarge,reserved_1y,no_upfront,2.50155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:41.862962 +AWS,eu-north-1,m6idn.12xlarge,reserved_1y,partial_upfront,2.50155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:18.616773 +AWS,eu-north-1,m6idn.12xlarge,reserved_3y,all_upfront,2.50155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:46.808542 +AWS,eu-north-1,m6idn.12xlarge,reserved_3y,no_upfront,2.50155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:49.016359 +AWS,eu-north-1,m6idn.12xlarge,reserved_3y,partial_upfront,2.50155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:28.169170 +AWS,eu-north-1,m6idn.12xlarge,spot,NA,1.313628,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501763 +AWS,eu-north-1,m6idn.16xlarge,on_demand,NA,5.312,USD,AWS Pricing API,2025-11-30T09:08:48.915052 +AWS,eu-north-1,m6idn.16xlarge,reserved_1y,all_upfront,5.242922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:17.953074 +AWS,eu-north-1,m6idn.16xlarge,reserved_1y,no_upfront,5.242922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:05.114424 +AWS,eu-north-1,m6idn.16xlarge,reserved_1y,partial_upfront,5.242922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:41.485610 +AWS,eu-north-1,m6idn.16xlarge,reserved_3y,all_upfront,1.747641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:09.341876 +AWS,eu-north-1,m6idn.16xlarge,reserved_3y,no_upfront,1.747641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:12.553754 +AWS,eu-north-1,m6idn.16xlarge,reserved_3y,partial_upfront,1.747641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:50.948705 +AWS,eu-north-1,m6idn.16xlarge,spot,NA,1.636377,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502292 +AWS,eu-north-1,m6idn.24xlarge,on_demand,NA,7.968,USD,AWS Pricing API,2025-11-30T09:08:31.852958 +AWS,eu-north-1,m6idn.24xlarge,reserved_1y,all_upfront,5.972831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:00.761952 +AWS,eu-north-1,m6idn.24xlarge,reserved_1y,no_upfront,5.972831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:47.739977 +AWS,eu-north-1,m6idn.24xlarge,reserved_1y,partial_upfront,5.972831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:24.394707 +AWS,eu-north-1,m6idn.24xlarge,reserved_3y,all_upfront,1.990944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:52.488952 +AWS,eu-north-1,m6idn.24xlarge,reserved_3y,no_upfront,1.990944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:54.909915 +AWS,eu-north-1,m6idn.24xlarge,reserved_3y,partial_upfront,1.990944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:33.925992 +AWS,eu-north-1,m6idn.24xlarge,spot,NA,3.231426,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501906 +AWS,eu-north-1,m6idn.2xlarge,on_demand,NA,0.664,USD,AWS Pricing API,2025-11-30T09:08:12.430801 +AWS,eu-north-1,m6idn.2xlarge,reserved_1y,all_upfront,0.397056,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:41.223884 +AWS,eu-north-1,m6idn.2xlarge,reserved_1y,no_upfront,0.397056,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:28.067696 +AWS,eu-north-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.397056,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:05.004456 +AWS,eu-north-1,m6idn.2xlarge,reserved_3y,all_upfront,0.264712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:33.435309 +AWS,eu-north-1,m6idn.2xlarge,reserved_3y,no_upfront,0.264712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:35.039664 +AWS,eu-north-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.264712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:14.600384 +AWS,eu-north-1,m6idn.2xlarge,spot,NA,0.203655,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501484 +AWS,eu-north-1,m6idn.32xlarge,on_demand,NA,10.624,USD,AWS Pricing API,2025-11-30T09:08:32.663821 +AWS,eu-north-1,m6idn.32xlarge,reserved_1y,all_upfront,6.353178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:01.578201 +AWS,eu-north-1,m6idn.32xlarge,reserved_1y,no_upfront,6.353178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:48.561180 +AWS,eu-north-1,m6idn.32xlarge,reserved_1y,partial_upfront,6.353178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:25.196992 +AWS,eu-north-1,m6idn.32xlarge,reserved_3y,all_upfront,4.235446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:53.282722 +AWS,eu-north-1,m6idn.32xlarge,reserved_3y,no_upfront,4.235446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:55.734767 +AWS,eu-north-1,m6idn.32xlarge,reserved_3y,partial_upfront,4.235446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:34.728910 +AWS,eu-north-1,m6idn.32xlarge,spot,NA,4.094886,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501926 +AWS,eu-north-1,m6idn.4xlarge,on_demand,NA,1.328,USD,AWS Pricing API,2025-11-30T09:08:28.883590 +AWS,eu-north-1,m6idn.4xlarge,reserved_1y,all_upfront,0.75886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:57.797706 +AWS,eu-north-1,m6idn.4xlarge,reserved_1y,no_upfront,0.75886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:44.735514 +AWS,eu-north-1,m6idn.4xlarge,reserved_1y,partial_upfront,0.75886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:21.432730 +AWS,eu-north-1,m6idn.4xlarge,reserved_3y,all_upfront,0.75886,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:49.569910 +AWS,eu-north-1,m6idn.4xlarge,reserved_3y,no_upfront,0.75886,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:51.891239 +AWS,eu-north-1,m6idn.4xlarge,reserved_3y,partial_upfront,0.75886,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:30.969956 +AWS,eu-north-1,m6idn.4xlarge,spot,NA,0.410206,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501824 +AWS,eu-north-1,m6idn.8xlarge,on_demand,NA,2.656,USD,AWS Pricing API,2025-11-30T09:07:57.255598 +AWS,eu-north-1,m6idn.8xlarge,reserved_1y,all_upfront,1.556507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:26.082874 +AWS,eu-north-1,m6idn.8xlarge,reserved_1y,no_upfront,1.556507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:12.666499 +AWS,eu-north-1,m6idn.8xlarge,reserved_1y,partial_upfront,1.556507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:49.891699 +AWS,eu-north-1,m6idn.8xlarge,reserved_3y,all_upfront,0.518836,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:18.615129 +AWS,eu-north-1,m6idn.8xlarge,reserved_3y,no_upfront,0.518836,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:19.613282 +AWS,eu-north-1,m6idn.8xlarge,reserved_3y,partial_upfront,0.518836,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:59.550600 +AWS,eu-north-1,m6idn.8xlarge,spot,NA,0.836049,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501145 +AWS,eu-north-1,m6idn.large,on_demand,NA,0.166,USD,AWS Pricing API,2025-11-30T09:08:42.972787 +AWS,eu-north-1,m6idn.large,reserved_1y,all_upfront,0.258219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:11.989230 +AWS,eu-north-1,m6idn.large,reserved_1y,no_upfront,0.258219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:59.041818 +AWS,eu-north-1,m6idn.large,reserved_1y,partial_upfront,0.258219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:35.558182 +AWS,eu-north-1,m6idn.large,reserved_3y,all_upfront,0.086073,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:03.516262 +AWS,eu-north-1,m6idn.large,reserved_3y,no_upfront,0.086073,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:06.424580 +AWS,eu-north-1,m6idn.large,reserved_3y,partial_upfront,0.086073,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:45.039295 +AWS,eu-north-1,m6idn.large,spot,NA,0.054873,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502157 +AWS,eu-north-1,m6idn.xlarge,on_demand,NA,0.332,USD,AWS Pricing API,2025-11-30T09:08:26.209086 +AWS,eu-north-1,m6idn.xlarge,reserved_1y,all_upfront,0.3513,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:55.100440 +AWS,eu-north-1,m6idn.xlarge,reserved_1y,no_upfront,0.3513,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:42.012379 +AWS,eu-north-1,m6idn.xlarge,reserved_1y,partial_upfront,0.3513,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:18.750397 +AWS,eu-north-1,m6idn.xlarge,reserved_3y,all_upfront,0.175653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:46.940063 +AWS,eu-north-1,m6idn.xlarge,reserved_3y,no_upfront,0.175653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:49.152870 +AWS,eu-north-1,m6idn.xlarge,reserved_3y,partial_upfront,0.175653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:28.301135 +AWS,eu-north-1,m6idn.xlarge,spot,NA,0.101048,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501772 +AWS,eu-north-1,m6in.12xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:07:54.444599 +AWS,eu-north-1,m6in.12xlarge,reserved_1y,all_upfront,1.34266,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:23.267535 +AWS,eu-north-1,m6in.12xlarge,reserved_1y,no_upfront,1.34266,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:09.810175 +AWS,eu-north-1,m6in.12xlarge,reserved_1y,partial_upfront,1.34266,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:47.075228 +AWS,eu-north-1,m6in.12xlarge,reserved_3y,all_upfront,1.34266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:15.848222 +AWS,eu-north-1,m6in.12xlarge,reserved_3y,no_upfront,1.34266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:16.743174 +AWS,eu-north-1,m6in.12xlarge,reserved_3y,partial_upfront,1.34266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:56.750283 +AWS,eu-north-1,m6in.12xlarge,spot,NA,1.155601,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501110 +AWS,eu-north-1,m6in.16xlarge,on_demand,NA,4.736,USD,AWS Pricing API,2025-11-30T09:08:04.296479 +AWS,eu-north-1,m6in.16xlarge,reserved_1y,all_upfront,3.550114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:33.084449 +AWS,eu-north-1,m6in.16xlarge,reserved_1y,no_upfront,3.550114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:19.803633 +AWS,eu-north-1,m6in.16xlarge,reserved_1y,partial_upfront,3.550114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:56.938400 +AWS,eu-north-1,m6in.16xlarge,reserved_3y,all_upfront,1.183371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:25.479408 +AWS,eu-north-1,m6in.16xlarge,reserved_3y,no_upfront,1.183371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:26.744490 +AWS,eu-north-1,m6in.16xlarge,reserved_3y,partial_upfront,1.183371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:06.564158 +AWS,eu-north-1,m6in.16xlarge,spot,NA,1.391769,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501307 +AWS,eu-north-1,m6in.24xlarge,on_demand,NA,7.104,USD,AWS Pricing API,2025-11-30T09:08:45.423956 +AWS,eu-north-1,m6in.24xlarge,reserved_1y,all_upfront,4.4606,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:14.462366 +AWS,eu-north-1,m6in.24xlarge,reserved_1y,no_upfront,4.4606,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:01.521063 +AWS,eu-north-1,m6in.24xlarge,reserved_1y,partial_upfront,4.4606,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:37.977966 +AWS,eu-north-1,m6in.24xlarge,reserved_3y,all_upfront,4.4606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:05.903050 +AWS,eu-north-1,m6in.24xlarge,reserved_3y,no_upfront,4.4606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:08.898947 +AWS,eu-north-1,m6in.24xlarge,reserved_3y,partial_upfront,4.4606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:47.470930 +AWS,eu-north-1,m6in.24xlarge,spot,NA,3.082817,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502203 +AWS,eu-north-1,m6in.2xlarge,on_demand,NA,0.592,USD,AWS Pricing API,2025-11-30T09:08:11.054914 +AWS,eu-north-1,m6in.2xlarge,reserved_1y,all_upfront,0.354065,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:39.848732 +AWS,eu-north-1,m6in.2xlarge,reserved_1y,no_upfront,0.354065,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:26.674533 +AWS,eu-north-1,m6in.2xlarge,reserved_1y,partial_upfront,0.354065,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:03.655203 +AWS,eu-north-1,m6in.2xlarge,reserved_3y,all_upfront,0.236028,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:32.117875 +AWS,eu-north-1,m6in.2xlarge,reserved_3y,no_upfront,0.236028,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:33.654122 +AWS,eu-north-1,m6in.2xlarge,reserved_3y,partial_upfront,0.236028,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:13.261198 +AWS,eu-north-1,m6in.2xlarge,spot,NA,0.184458,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501468 +AWS,eu-north-1,m6in.32xlarge,on_demand,NA,9.472,USD,AWS Pricing API,2025-11-30T09:07:59.817803 +AWS,eu-north-1,m6in.32xlarge,reserved_1y,all_upfront,5.664208,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:28.627488 +AWS,eu-north-1,m6in.32xlarge,reserved_1y,no_upfront,5.664208,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:15.285031 +AWS,eu-north-1,m6in.32xlarge,reserved_1y,partial_upfront,5.664208,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:52.431939 +AWS,eu-north-1,m6in.32xlarge,reserved_3y,all_upfront,3.776156,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:21.128455 +AWS,eu-north-1,m6in.32xlarge,reserved_3y,no_upfront,3.776156,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:22.223984 +AWS,eu-north-1,m6in.32xlarge,reserved_3y,partial_upfront,3.776156,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:02.124293 +AWS,eu-north-1,m6in.32xlarge,spot,NA,3.437718,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501208 +AWS,eu-north-1,m6in.4xlarge,on_demand,NA,1.184,USD,AWS Pricing API,2025-11-30T09:08:09.827464 +AWS,eu-north-1,m6in.4xlarge,reserved_1y,all_upfront,0.67657,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:38.637435 +AWS,eu-north-1,m6in.4xlarge,reserved_1y,no_upfront,0.67657,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:25.418918 +AWS,eu-north-1,m6in.4xlarge,reserved_1y,partial_upfront,0.67657,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:02.448248 +AWS,eu-north-1,m6in.4xlarge,reserved_3y,all_upfront,0.67657,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:30.909787 +AWS,eu-north-1,m6in.4xlarge,reserved_3y,no_upfront,0.67657,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:32.390041 +AWS,eu-north-1,m6in.4xlarge,reserved_3y,partial_upfront,0.67657,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:12.063113 +AWS,eu-north-1,m6in.4xlarge,spot,NA,0.368855,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501412 +AWS,eu-north-1,m6in.8xlarge,on_demand,NA,2.368,USD,AWS Pricing API,2025-11-30T09:08:07.944919 +AWS,eu-north-1,m6in.8xlarge,reserved_1y,all_upfront,1.416021,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:36.732779 +AWS,eu-north-1,m6in.8xlarge,reserved_1y,no_upfront,1.416021,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:23.501472 +AWS,eu-north-1,m6in.8xlarge,reserved_1y,partial_upfront,1.416021,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:00.556310 +AWS,eu-north-1,m6in.8xlarge,reserved_3y,all_upfront,0.944027,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:29.065836 +AWS,eu-north-1,m6in.8xlarge,reserved_3y,no_upfront,0.944027,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:30.449313 +AWS,eu-north-1,m6in.8xlarge,reserved_3y,partial_upfront,0.944027,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:10.190179 +AWS,eu-north-1,m6in.8xlarge,spot,NA,0.740044,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501386 +AWS,eu-north-1,m6in.large,on_demand,NA,0.148,USD,AWS Pricing API,2025-11-30T09:08:27.418035 +AWS,eu-north-1,m6in.large,reserved_1y,all_upfront,0.09293,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:56.316569 +AWS,eu-north-1,m6in.large,reserved_1y,no_upfront,0.09293,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:43.240919 +AWS,eu-north-1,m6in.large,reserved_1y,partial_upfront,0.09293,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:19.961962 +AWS,eu-north-1,m6in.large,reserved_3y,all_upfront,0.09293,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:48.118258 +AWS,eu-north-1,m6in.large,reserved_3y,no_upfront,0.09293,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:50.384785 +AWS,eu-north-1,m6in.large,reserved_3y,partial_upfront,0.09293,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:29.499169 +AWS,eu-north-1,m6in.large,spot,NA,0.046358,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501784 +AWS,eu-north-1,m6in.xlarge,on_demand,NA,0.296,USD,AWS Pricing API,2025-11-30T09:08:41.372248 +AWS,eu-north-1,m6in.xlarge,reserved_1y,all_upfront,0.18586,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:10.364277 +AWS,eu-north-1,m6in.xlarge,reserved_1y,no_upfront,0.18586,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:57.408482 +AWS,eu-north-1,m6in.xlarge,reserved_1y,partial_upfront,0.18586,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:33.927317 +AWS,eu-north-1,m6in.xlarge,reserved_3y,all_upfront,0.18586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:01.909846 +AWS,eu-north-1,m6in.xlarge,reserved_3y,no_upfront,0.18586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:04.771188 +AWS,eu-north-1,m6in.xlarge,reserved_3y,partial_upfront,0.18586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:43.432264 +AWS,eu-north-1,m6in.xlarge,spot,NA,0.091467,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502082 +AWS,eu-north-1,m7a.12xlarge,on_demand,NA,2.95584,USD,AWS Pricing API,2025-11-30T09:08:30.115694 +AWS,eu-north-1,m7a.12xlarge,reserved_1y,all_upfront,2.482945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:59.010556 +AWS,eu-north-1,m7a.12xlarge,reserved_1y,no_upfront,2.482945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:45.964276 +AWS,eu-north-1,m7a.12xlarge,reserved_1y,partial_upfront,2.482945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:22.645759 +AWS,eu-north-1,m7a.12xlarge,reserved_3y,all_upfront,1.241468,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:50.771082 +AWS,eu-north-1,m7a.12xlarge,reserved_3y,no_upfront,1.241468,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:53.130681 +AWS,eu-north-1,m7a.12xlarge,reserved_3y,partial_upfront,1.241468,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:32.174763 +AWS,eu-north-1,m7a.12xlarge,spot,NA,1.085866,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501840 +AWS,eu-north-1,m7a.16xlarge,on_demand,NA,3.94112,USD,AWS Pricing API,2025-11-30T09:08:45.958096 +AWS,eu-north-1,m7a.16xlarge,reserved_1y,all_upfront,2.433219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:14.997211 +AWS,eu-north-1,m7a.16xlarge,reserved_1y,no_upfront,2.433219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:02.073704 +AWS,eu-north-1,m7a.16xlarge,reserved_1y,partial_upfront,2.433219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:38.519936 +AWS,eu-north-1,m7a.16xlarge,reserved_3y,all_upfront,0.811073,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:06.431382 +AWS,eu-north-1,m7a.16xlarge,reserved_3y,no_upfront,0.811073,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:09.440536 +AWS,eu-north-1,m7a.16xlarge,reserved_3y,partial_upfront,0.811073,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:48.000486 +AWS,eu-north-1,m7a.16xlarge,spot,NA,1.218771,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502211 +AWS,eu-north-1,m7a.24xlarge,on_demand,NA,5.91168,USD,AWS Pricing API,2025-11-30T09:08:58.625750 +AWS,eu-north-1,m7a.24xlarge,reserved_1y,all_upfront,4.273468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:27.676557 +AWS,eu-north-1,m7a.24xlarge,reserved_1y,no_upfront,4.273468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:14.990257 +AWS,eu-north-1,m7a.24xlarge,reserved_1y,partial_upfront,4.273468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:51.126558 +AWS,eu-north-1,m7a.24xlarge,reserved_3y,all_upfront,2.848963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:18.843105 +AWS,eu-north-1,m7a.24xlarge,reserved_3y,no_upfront,2.848963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:22.442946 +AWS,eu-north-1,m7a.24xlarge,reserved_3y,partial_upfront,2.848963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:00.596808 +AWS,eu-north-1,m7a.24xlarge,spot,NA,1.776793,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502481 +AWS,eu-north-1,m7a.2xlarge,on_demand,NA,0.49264,USD,AWS Pricing API,2025-11-30T09:08:05.898622 +AWS,eu-north-1,m7a.2xlarge,reserved_1y,all_upfront,0.32588,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:34.699149 +AWS,eu-north-1,m7a.2xlarge,reserved_1y,no_upfront,0.32588,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:21.431680 +AWS,eu-north-1,m7a.2xlarge,reserved_1y,partial_upfront,0.32588,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:58.538985 +AWS,eu-north-1,m7a.2xlarge,reserved_3y,all_upfront,0.32588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:27.068532 +AWS,eu-north-1,m7a.2xlarge,reserved_3y,no_upfront,0.32588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:28.377716 +AWS,eu-north-1,m7a.2xlarge,reserved_3y,partial_upfront,0.32588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:08.179838 +AWS,eu-north-1,m7a.2xlarge,spot,NA,0.169873,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501327 +AWS,eu-north-1,m7a.32xlarge,on_demand,NA,7.88224,USD,AWS Pricing API,2025-11-30T09:08:48.248531 +AWS,eu-north-1,m7a.32xlarge,reserved_1y,all_upfront,5.9828,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:17.282337 +AWS,eu-north-1,m7a.32xlarge,reserved_1y,no_upfront,5.9828,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:04.405633 +AWS,eu-north-1,m7a.32xlarge,reserved_1y,partial_upfront,5.9828,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:40.813024 +AWS,eu-north-1,m7a.32xlarge,reserved_3y,all_upfront,5.9828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:08.672135 +AWS,eu-north-1,m7a.32xlarge,reserved_3y,no_upfront,5.9828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:11.844745 +AWS,eu-north-1,m7a.32xlarge,reserved_3y,partial_upfront,5.9828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:50.282416 +AWS,eu-north-1,m7a.32xlarge,spot,NA,2.30471,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502283 +AWS,eu-north-1,m7a.48xlarge,on_demand,NA,11.82336,USD,AWS Pricing API,2025-11-30T09:07:59.016830 +AWS,eu-north-1,m7a.48xlarge,reserved_1y,all_upfront,8.375913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:27.820831 +AWS,eu-north-1,m7a.48xlarge,reserved_1y,no_upfront,8.375913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:14.451427 +AWS,eu-north-1,m7a.48xlarge,reserved_1y,partial_upfront,8.375913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:51.629989 +AWS,eu-north-1,m7a.48xlarge,reserved_3y,all_upfront,2.791971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:20.341544 +AWS,eu-north-1,m7a.48xlarge,reserved_3y,no_upfront,2.791971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:21.394413 +AWS,eu-north-1,m7a.48xlarge,reserved_3y,partial_upfront,2.791971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:01.308565 +AWS,eu-north-1,m7a.48xlarge,spot,NA,3.642358,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501199 +AWS,eu-north-1,m7a.4xlarge,on_demand,NA,0.98528,USD,AWS Pricing API,2025-11-30T09:08:31.997715 +AWS,eu-north-1,m7a.4xlarge,reserved_1y,all_upfront,1.167009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:00.896365 +AWS,eu-north-1,m7a.4xlarge,reserved_1y,no_upfront,1.167009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:47.877916 +AWS,eu-north-1,m7a.4xlarge,reserved_1y,partial_upfront,1.167009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:24.527647 +AWS,eu-north-1,m7a.4xlarge,reserved_3y,all_upfront,0.389003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:52.619752 +AWS,eu-north-1,m7a.4xlarge,reserved_3y,no_upfront,0.389003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:55.047004 +AWS,eu-north-1,m7a.4xlarge,reserved_3y,partial_upfront,0.389003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:34.060327 +AWS,eu-north-1,m7a.4xlarge,spot,NA,0.352222,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501891 +AWS,eu-north-1,m7a.8xlarge,on_demand,NA,1.97056,USD,AWS Pricing API,2025-11-30T09:08:36.140234 +AWS,eu-north-1,m7a.8xlarge,reserved_1y,all_upfront,1.241506,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:05.095832 +AWS,eu-north-1,m7a.8xlarge,reserved_1y,no_upfront,1.241506,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:52.076878 +AWS,eu-north-1,m7a.8xlarge,reserved_1y,partial_upfront,1.241506,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:28.703374 +AWS,eu-north-1,m7a.8xlarge,reserved_3y,all_upfront,0.827655,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:56.708138 +AWS,eu-north-1,m7a.8xlarge,reserved_3y,no_upfront,0.827655,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:59.337945 +AWS,eu-north-1,m7a.8xlarge,reserved_3y,partial_upfront,0.827655,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:38.206821 +AWS,eu-north-1,m7a.8xlarge,spot,NA,0.73491,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501974 +AWS,eu-north-1,m7a.xlarge,on_demand,NA,0.24632,USD,AWS Pricing API,2025-11-30T09:07:58.603043 +AWS,eu-north-1,m7a.xlarge,reserved_1y,all_upfront,0.18696,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:27.418152 +AWS,eu-north-1,m7a.xlarge,reserved_1y,no_upfront,0.18696,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:14.035680 +AWS,eu-north-1,m7a.xlarge,reserved_1y,partial_upfront,0.18696,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:51.231112 +AWS,eu-north-1,m7a.xlarge,reserved_3y,all_upfront,0.18696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:19.939957 +AWS,eu-north-1,m7a.xlarge,reserved_3y,no_upfront,0.18696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:20.983389 +AWS,eu-north-1,m7a.xlarge,reserved_3y,partial_upfront,0.18696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:00.893750 +AWS,eu-north-1,m7a.xlarge,spot,NA,0.082923,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501195 +AWS,eu-north-1,m7g.12xlarge,on_demand,NA,2.0808,USD,AWS Pricing API,2025-11-30T09:08:15.270675 +AWS,eu-north-1,m7g.12xlarge,reserved_1y,all_upfront,1.747959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:44.059343 +AWS,eu-north-1,m7g.12xlarge,reserved_1y,no_upfront,1.747959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:30.932086 +AWS,eu-north-1,m7g.12xlarge,reserved_1y,partial_upfront,1.747959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:07.828641 +AWS,eu-north-1,m7g.12xlarge,reserved_3y,all_upfront,0.873986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:36.204560 +AWS,eu-north-1,m7g.12xlarge,reserved_3y,no_upfront,0.873986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:37.946989 +AWS,eu-north-1,m7g.12xlarge,reserved_3y,partial_upfront,0.873986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:17.463817 +AWS,eu-north-1,m7g.12xlarge,spot,NA,0.657984,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501533 +AWS,eu-north-1,m7g.16xlarge,on_demand,NA,2.7744,USD,AWS Pricing API,2025-11-30T09:08:43.799666 +AWS,eu-north-1,m7g.16xlarge,reserved_1y,all_upfront,1.7129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:12.813603 +AWS,eu-north-1,m7g.16xlarge,reserved_1y,no_upfront,1.7129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:59.867927 +AWS,eu-north-1,m7g.16xlarge,reserved_1y,partial_upfront,1.7129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:36.361813 +AWS,eu-north-1,m7g.16xlarge,reserved_3y,all_upfront,0.570967,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:04.310807 +AWS,eu-north-1,m7g.16xlarge,reserved_3y,no_upfront,0.570967,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:07.250421 +AWS,eu-north-1,m7g.16xlarge,reserved_3y,partial_upfront,0.570967,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:45.840880 +AWS,eu-north-1,m7g.16xlarge,spot,NA,0.811914,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502170 +AWS,eu-north-1,m7g.2xlarge,on_demand,NA,0.3468,USD,AWS Pricing API,2025-11-30T09:08:07.114796 +AWS,eu-north-1,m7g.2xlarge,reserved_1y,all_upfront,0.250642,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:35.914732 +AWS,eu-north-1,m7g.2xlarge,reserved_1y,no_upfront,0.250642,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:22.674309 +AWS,eu-north-1,m7g.2xlarge,reserved_1y,partial_upfront,0.250642,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:59.740452 +AWS,eu-north-1,m7g.2xlarge,reserved_3y,all_upfront,0.167081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:28.265532 +AWS,eu-north-1,m7g.2xlarge,reserved_3y,no_upfront,0.167081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:29.627718 +AWS,eu-north-1,m7g.2xlarge,reserved_3y,partial_upfront,0.167081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:09.383339 +AWS,eu-north-1,m7g.2xlarge,spot,NA,0.126371,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501348 +AWS,eu-north-1,m7g.4xlarge,on_demand,NA,0.6936,USD,AWS Pricing API,2025-11-30T09:09:03.162967 +AWS,eu-north-1,m7g.4xlarge,reserved_1y,all_upfront,0.436993,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:32.275249 +AWS,eu-north-1,m7g.4xlarge,reserved_1y,no_upfront,0.436993,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:19.624928 +AWS,eu-north-1,m7g.4xlarge,reserved_1y,partial_upfront,0.436993,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:55.691722 +AWS,eu-north-1,m7g.4xlarge,reserved_3y,all_upfront,0.291331,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:23.335481 +AWS,eu-north-1,m7g.4xlarge,reserved_3y,no_upfront,0.291331,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:27.139704 +AWS,eu-north-1,m7g.4xlarge,reserved_3y,partial_upfront,0.291331,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:05.229961 +AWS,eu-north-1,m7g.4xlarge,spot,NA,0.265028,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502573 +AWS,eu-north-1,m7g.8xlarge,on_demand,NA,1.3872,USD,AWS Pricing API,2025-11-30T09:07:58.331078 +AWS,eu-north-1,m7g.8xlarge,reserved_1y,all_upfront,0.9176,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:27.149545 +AWS,eu-north-1,m7g.8xlarge,reserved_1y,no_upfront,0.9176,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:13.761843 +AWS,eu-north-1,m7g.8xlarge,reserved_1y,partial_upfront,0.9176,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:50.961921 +AWS,eu-north-1,m7g.8xlarge,reserved_3y,all_upfront,0.9176,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:19.667823 +AWS,eu-north-1,m7g.8xlarge,reserved_3y,no_upfront,0.9176,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:20.709687 +AWS,eu-north-1,m7g.8xlarge,reserved_3y,partial_upfront,0.9176,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:00.616099 +AWS,eu-north-1,m7g.8xlarge,spot,NA,0.504516,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501183 +AWS,eu-north-1,m7g.large,on_demand,NA,0.0867,USD,AWS Pricing API,2025-11-30T09:08:25.796504 +AWS,eu-north-1,m7g.large,reserved_1y,all_upfront,0.061416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:54.696684 +AWS,eu-north-1,m7g.large,reserved_1y,no_upfront,0.061416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:41.590967 +AWS,eu-north-1,m7g.large,reserved_1y,partial_upfront,0.061416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:18.349270 +AWS,eu-north-1,m7g.large,reserved_3y,all_upfront,0.020472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:46.531692 +AWS,eu-north-1,m7g.large,reserved_3y,no_upfront,0.020472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:48.731541 +AWS,eu-north-1,m7g.large,reserved_3y,partial_upfront,0.020472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:27.899841 +AWS,eu-north-1,m7g.large,spot,NA,0.033411,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501767 +AWS,eu-north-1,m7g.xlarge,on_demand,NA,0.1734,USD,AWS Pricing API,2025-11-30T09:08:32.528891 +AWS,eu-north-1,m7g.xlarge,reserved_1y,all_upfront,0.1316,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:01.441043 +AWS,eu-north-1,m7g.xlarge,reserved_1y,no_upfront,0.1316,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:48.424832 +AWS,eu-north-1,m7g.xlarge,reserved_1y,partial_upfront,0.1316,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:25.063052 +AWS,eu-north-1,m7g.xlarge,reserved_3y,all_upfront,0.1316,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:53.151186 +AWS,eu-north-1,m7g.xlarge,reserved_3y,no_upfront,0.1316,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:55.596537 +AWS,eu-north-1,m7g.xlarge,reserved_3y,partial_upfront,0.1316,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:34.595071 +AWS,eu-north-1,m7g.xlarge,spot,NA,0.062914,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501918 +AWS,eu-north-1,m7gd.12xlarge,on_demand,NA,2.7216,USD,AWS Pricing API,2025-11-30T09:08:06.438184 +AWS,eu-north-1,m7gd.12xlarge,reserved_1y,all_upfront,2.2006,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:35.240001 +AWS,eu-north-1,m7gd.12xlarge,reserved_1y,no_upfront,2.2006,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:21.980381 +AWS,eu-north-1,m7gd.12xlarge,reserved_1y,partial_upfront,2.2006,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:59.073242 +AWS,eu-north-1,m7gd.12xlarge,reserved_3y,all_upfront,2.2006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:27.598834 +AWS,eu-north-1,m7gd.12xlarge,reserved_3y,no_upfront,2.2006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:28.930891 +AWS,eu-north-1,m7gd.12xlarge,reserved_3y,partial_upfront,2.2006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:08.715673 +AWS,eu-north-1,m7gd.12xlarge,spot,NA,0.808313,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501369 +AWS,eu-north-1,m7gd.16xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T09:08:23.489450 +AWS,eu-north-1,m7gd.16xlarge,reserved_1y,all_upfront,2.9342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:52.305996 +AWS,eu-north-1,m7gd.16xlarge,reserved_1y,no_upfront,2.9342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:39.271416 +AWS,eu-north-1,m7gd.16xlarge,reserved_1y,partial_upfront,2.9342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:16.067801 +AWS,eu-north-1,m7gd.16xlarge,reserved_3y,all_upfront,2.9342,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:44.277464 +AWS,eu-north-1,m7gd.16xlarge,reserved_3y,no_upfront,2.9342,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:46.389666 +AWS,eu-north-1,m7gd.16xlarge,reserved_3y,partial_upfront,2.9342,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:25.615358 +AWS,eu-north-1,m7gd.16xlarge,spot,NA,1.017486,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501706 +AWS,eu-north-1,m7gd.2xlarge,on_demand,NA,0.4536,USD,AWS Pricing API,2025-11-30T09:08:38.951405 +AWS,eu-north-1,m7gd.2xlarge,reserved_1y,all_upfront,0.349358,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:07.940872 +AWS,eu-north-1,m7gd.2xlarge,reserved_1y,no_upfront,0.349358,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:54.955310 +AWS,eu-north-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.349358,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:31.518750 +AWS,eu-north-1,m7gd.2xlarge,reserved_3y,all_upfront,0.232919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:59.510609 +AWS,eu-north-1,m7gd.2xlarge,reserved_3y,no_upfront,0.232919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:02.271172 +AWS,eu-north-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.232919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:41.001973 +AWS,eu-north-1,m7gd.2xlarge,spot,NA,0.149295,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502021 +AWS,eu-north-1,m7gd.4xlarge,on_demand,NA,0.9072,USD,AWS Pricing API,2025-11-30T09:08:56.318921 +AWS,eu-north-1,m7gd.4xlarge,reserved_1y,all_upfront,0.544346,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:25.385269 +AWS,eu-north-1,m7gd.4xlarge,reserved_1y,no_upfront,0.544346,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:12.642106 +AWS,eu-north-1,m7gd.4xlarge,reserved_1y,partial_upfront,0.544346,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:48.835122 +AWS,eu-north-1,m7gd.4xlarge,reserved_3y,all_upfront,0.362915,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:16.571643 +AWS,eu-north-1,m7gd.4xlarge,reserved_3y,no_upfront,0.362915,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:20.093410 +AWS,eu-north-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.362915,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:58.311027 +AWS,eu-north-1,m7gd.4xlarge,spot,NA,0.359662,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502444 +AWS,eu-north-1,m7gd.8xlarge,on_demand,NA,1.8144,USD,AWS Pricing API,2025-11-30T09:08:36.665990 +AWS,eu-north-1,m7gd.8xlarge,reserved_1y,all_upfront,1.451484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:05.657714 +AWS,eu-north-1,m7gd.8xlarge,reserved_1y,no_upfront,1.451484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:52.628183 +AWS,eu-north-1,m7gd.8xlarge,reserved_1y,partial_upfront,1.451484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:29.236953 +AWS,eu-north-1,m7gd.8xlarge,reserved_3y,all_upfront,0.725761,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:57.258557 +AWS,eu-north-1,m7gd.8xlarge,reserved_3y,no_upfront,0.725761,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:59.900738 +AWS,eu-north-1,m7gd.8xlarge,reserved_3y,partial_upfront,0.725761,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:38.736738 +AWS,eu-north-1,m7gd.8xlarge,spot,NA,0.537251,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501978 +AWS,eu-north-1,m7gd.large,on_demand,NA,0.1134,USD,AWS Pricing API,2025-11-30T09:08:34.519966 +AWS,eu-north-1,m7gd.large,reserved_1y,all_upfront,0.085616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:03.471014 +AWS,eu-north-1,m7gd.large,reserved_1y,no_upfront,0.085616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:50.450684 +AWS,eu-north-1,m7gd.large,reserved_1y,partial_upfront,0.085616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:27.089479 +AWS,eu-north-1,m7gd.large,reserved_3y,all_upfront,0.028539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:55.123646 +AWS,eu-north-1,m7gd.large,reserved_3y,no_upfront,0.028539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:57.674117 +AWS,eu-north-1,m7gd.large,reserved_3y,partial_upfront,0.028539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:36.586269 +AWS,eu-north-1,m7gd.large,spot,NA,0.036617,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501929 +AWS,eu-north-1,m7gd.xlarge,on_demand,NA,0.2268,USD,AWS Pricing API,2025-11-30T09:08:40.558347 +AWS,eu-north-1,m7gd.xlarge,reserved_1y,all_upfront,0.174629,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:09.548683 +AWS,eu-north-1,m7gd.xlarge,reserved_1y,no_upfront,0.174629,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:56.587744 +AWS,eu-north-1,m7gd.xlarge,reserved_1y,partial_upfront,0.174629,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:33.118079 +AWS,eu-north-1,m7gd.xlarge,reserved_3y,all_upfront,0.11641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:01.104185 +AWS,eu-north-1,m7gd.xlarge,reserved_3y,no_upfront,0.11641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:03.941371 +AWS,eu-north-1,m7gd.xlarge,reserved_3y,partial_upfront,0.11641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:42.627579 +AWS,eu-north-1,m7gd.xlarge,spot,NA,0.080288,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502106 +AWS,eu-north-1,m7i.12xlarge,on_demand,NA,2.5704,USD,AWS Pricing API,2025-11-30T09:08:12.565951 +AWS,eu-north-1,m7i.12xlarge,reserved_1y,all_upfront,1.95099,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:41.358952 +AWS,eu-north-1,m7i.12xlarge,reserved_1y,no_upfront,1.95099,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:28.206167 +AWS,eu-north-1,m7i.12xlarge,reserved_1y,partial_upfront,1.95099,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:05.140289 +AWS,eu-north-1,m7i.12xlarge,reserved_3y,all_upfront,1.95099,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:33.577791 +AWS,eu-north-1,m7i.12xlarge,reserved_3y,no_upfront,1.95099,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:35.184617 +AWS,eu-north-1,m7i.12xlarge,reserved_3y,partial_upfront,1.95099,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:14.745615 +AWS,eu-north-1,m7i.12xlarge,spot,NA,0.869984,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501505 +AWS,eu-north-1,m7i.16xlarge,on_demand,NA,3.4272,USD,AWS Pricing API,2025-11-30T09:08:49.179366 +AWS,eu-north-1,m7i.16xlarge,reserved_1y,all_upfront,3.298488,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:18.220089 +AWS,eu-north-1,m7i.16xlarge,reserved_1y,no_upfront,3.298488,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:05.393099 +AWS,eu-north-1,m7i.16xlarge,reserved_1y,partial_upfront,3.298488,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:41.748535 +AWS,eu-north-1,m7i.16xlarge,reserved_3y,all_upfront,1.649249,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:09.600836 +AWS,eu-north-1,m7i.16xlarge,reserved_3y,no_upfront,1.649249,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:12.825263 +AWS,eu-north-1,m7i.16xlarge,reserved_3y,partial_upfront,1.649249,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:51.214788 +AWS,eu-north-1,m7i.16xlarge,spot,NA,1.028724,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502296 +AWS,eu-north-1,m7i.24xlarge,on_demand,NA,5.1408,USD,AWS Pricing API,2025-11-30T09:08:55.232979 +AWS,eu-north-1,m7i.24xlarge,reserved_1y,all_upfront,2.67182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:24.298949 +AWS,eu-north-1,m7i.24xlarge,reserved_1y,no_upfront,2.67182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:11.552898 +AWS,eu-north-1,m7i.24xlarge,reserved_1y,partial_upfront,2.67182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:47.765717 +AWS,eu-north-1,m7i.24xlarge,reserved_3y,all_upfront,2.67182,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:15.508972 +AWS,eu-north-1,m7i.24xlarge,reserved_3y,no_upfront,2.67182,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:18.986889 +AWS,eu-north-1,m7i.24xlarge,reserved_3y,partial_upfront,2.67182,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:57.229356 +AWS,eu-north-1,m7i.24xlarge,spot,NA,1.518086,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502414 +AWS,eu-north-1,m7i.2xlarge,on_demand,NA,0.4284,USD,AWS Pricing API,2025-11-30T09:08:30.772331 +AWS,eu-north-1,m7i.2xlarge,reserved_1y,all_upfront,0.269882,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:59.690617 +AWS,eu-north-1,m7i.2xlarge,reserved_1y,no_upfront,0.269882,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:46.647631 +AWS,eu-north-1,m7i.2xlarge,reserved_1y,partial_upfront,0.269882,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:23.315186 +AWS,eu-north-1,m7i.2xlarge,reserved_3y,all_upfront,0.179927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:51.425674 +AWS,eu-north-1,m7i.2xlarge,reserved_3y,no_upfront,0.179927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:53.818194 +AWS,eu-north-1,m7i.2xlarge,reserved_3y,partial_upfront,0.179927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:32.848960 +AWS,eu-north-1,m7i.2xlarge,spot,NA,0.148027,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501874 +AWS,eu-north-1,m7i.48xlarge,on_demand,NA,10.2816,USD,AWS Pricing API,2025-11-30T09:07:54.030371 +AWS,eu-north-1,m7i.48xlarge,reserved_1y,all_upfront,6.347831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:22.863720 +AWS,eu-north-1,m7i.48xlarge,reserved_1y,no_upfront,6.347831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:09.399981 +AWS,eu-north-1,m7i.48xlarge,reserved_1y,partial_upfront,6.347831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:46.665492 +AWS,eu-north-1,m7i.48xlarge,reserved_3y,all_upfront,2.115944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:15.453396 +AWS,eu-north-1,m7i.48xlarge,reserved_3y,no_upfront,2.115944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:16.322831 +AWS,eu-north-1,m7i.48xlarge,reserved_3y,partial_upfront,2.115944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:56.331937 +AWS,eu-north-1,m7i.48xlarge,spot,NA,3.415086,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501071 +AWS,eu-north-1,m7i.4xlarge,on_demand,NA,0.8568,USD,AWS Pricing API,2025-11-30T09:08:07.808194 +AWS,eu-north-1,m7i.4xlarge,reserved_1y,all_upfront,0.65033,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:36.595072 +AWS,eu-north-1,m7i.4xlarge,reserved_1y,no_upfront,0.65033,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:23.367154 +AWS,eu-north-1,m7i.4xlarge,reserved_1y,partial_upfront,0.65033,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:00.421766 +AWS,eu-north-1,m7i.4xlarge,reserved_3y,all_upfront,0.65033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:28.935835 +AWS,eu-north-1,m7i.4xlarge,reserved_3y,no_upfront,0.65033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:30.310816 +AWS,eu-north-1,m7i.4xlarge,reserved_3y,partial_upfront,0.65033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:10.047436 +AWS,eu-north-1,m7i.4xlarge,spot,NA,0.291826,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501395 +AWS,eu-north-1,m7i.8xlarge,on_demand,NA,1.7136,USD,AWS Pricing API,2025-11-30T09:08:45.019727 +AWS,eu-north-1,m7i.8xlarge,reserved_1y,all_upfront,1.439426,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:14.056356 +AWS,eu-north-1,m7i.8xlarge,reserved_1y,no_upfront,1.439426,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:01.114879 +AWS,eu-north-1,m7i.8xlarge,reserved_1y,partial_upfront,1.439426,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:37.575712 +AWS,eu-north-1,m7i.8xlarge,reserved_3y,all_upfront,0.719715,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:05.499051 +AWS,eu-north-1,m7i.8xlarge,reserved_3y,no_upfront,0.719715,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:08.482732 +AWS,eu-north-1,m7i.8xlarge,reserved_3y,partial_upfront,0.719715,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:47.072147 +AWS,eu-north-1,m7i.8xlarge,spot,NA,0.549164,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502178 +AWS,eu-north-1,m7i.large,on_demand,NA,0.1071,USD,AWS Pricing API,2025-11-30T09:08:10.771644 +AWS,eu-north-1,m7i.large,reserved_1y,all_upfront,0.07085,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:39.579669 +AWS,eu-north-1,m7i.large,reserved_1y,no_upfront,0.07085,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:26.401889 +AWS,eu-north-1,m7i.large,reserved_1y,partial_upfront,0.07085,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:03.386258 +AWS,eu-north-1,m7i.large,reserved_3y,all_upfront,0.07085,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:31.851303 +AWS,eu-north-1,m7i.large,reserved_3y,no_upfront,0.07085,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:33.371066 +AWS,eu-north-1,m7i.large,reserved_3y,partial_upfront,0.07085,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:12.995268 +AWS,eu-north-1,m7i.large,spot,NA,0.035233,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501472 +AWS,eu-north-1,m7i.metal-24xl,on_demand,NA,5.1408,USD,AWS Pricing API,2025-11-30T09:07:54.167153 +AWS,eu-north-1,m7i.metal-24xl,reserved_1y,all_upfront,7.273288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:22.999136 +AWS,eu-north-1,m7i.metal-24xl,reserved_1y,no_upfront,7.273288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:09.537556 +AWS,eu-north-1,m7i.metal-24xl,reserved_1y,partial_upfront,7.273288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:46.799532 +AWS,eu-north-1,m7i.metal-24xl,reserved_3y,all_upfront,2.424429,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:15.584502 +AWS,eu-north-1,m7i.metal-24xl,reserved_3y,no_upfront,2.424429,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:16.461276 +AWS,eu-north-1,m7i.metal-24xl,reserved_3y,partial_upfront,2.424429,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:56.471468 +AWS,eu-north-1,m7i.metal-24xl,spot,NA,1.469222,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501089 +AWS,eu-north-1,m7i.metal-48xl,on_demand,NA,10.2816,USD,AWS Pricing API,2025-11-30T09:08:34.929833 +AWS,eu-north-1,m7i.metal-48xl,reserved_1y,all_upfront,6.80128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:03.874932 +AWS,eu-north-1,m7i.metal-48xl,reserved_1y,no_upfront,6.80128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:50.856549 +AWS,eu-north-1,m7i.metal-48xl,reserved_1y,partial_upfront,6.80128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:27.492665 +AWS,eu-north-1,m7i.metal-48xl,reserved_3y,all_upfront,6.80128,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:55.518009 +AWS,eu-north-1,m7i.metal-48xl,reserved_3y,no_upfront,6.80128,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:58.084348 +AWS,eu-north-1,m7i.metal-48xl,reserved_3y,partial_upfront,6.80128,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:36.994928 +AWS,eu-north-1,m7i.metal-48xl,spot,NA,2.938598,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501945 +AWS,eu-north-1,m7i.xlarge,on_demand,NA,0.2142,USD,AWS Pricing API,2025-11-30T09:08:56.721309 +AWS,eu-north-1,m7i.xlarge,reserved_1y,all_upfront,0.134936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:25.782764 +AWS,eu-north-1,m7i.xlarge,reserved_1y,no_upfront,0.134936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:13.049456 +AWS,eu-north-1,m7i.xlarge,reserved_1y,partial_upfront,0.134936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:49.236212 +AWS,eu-north-1,m7i.xlarge,reserved_3y,all_upfront,0.089959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:16.972023 +AWS,eu-north-1,m7i.xlarge,reserved_3y,no_upfront,0.089959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:20.504623 +AWS,eu-north-1,m7i.xlarge,reserved_3y,partial_upfront,0.089959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:58.719835 +AWS,eu-north-1,m7i.xlarge,spot,NA,0.071983,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502460 +AWS,eu-north-1,m8g.12xlarge,on_demand,NA,2.28912,USD,AWS Pricing API,2025-11-30T09:08:40.960281 +AWS,eu-north-1,m8g.12xlarge,reserved_1y,all_upfront,1.413356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:09.950036 +AWS,eu-north-1,m8g.12xlarge,reserved_1y,no_upfront,1.413356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:56.997277 +AWS,eu-north-1,m8g.12xlarge,reserved_1y,partial_upfront,1.413356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:33.526631 +AWS,eu-north-1,m8g.12xlarge,reserved_3y,all_upfront,0.471119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:01.505911 +AWS,eu-north-1,m8g.12xlarge,reserved_3y,no_upfront,0.471119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:04.354919 +AWS,eu-north-1,m8g.12xlarge,reserved_3y,partial_upfront,0.471119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:43.025653 +AWS,eu-north-1,m8g.12xlarge,spot,NA,0.698742,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502094 +AWS,eu-north-1,m8g.16xlarge,on_demand,NA,3.05216,USD,AWS Pricing API,2025-11-30T09:07:54.581967 +AWS,eu-north-1,m8g.16xlarge,reserved_1y,all_upfront,2.31666,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:23.401789 +AWS,eu-north-1,m8g.16xlarge,reserved_1y,no_upfront,2.31666,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:09.946327 +AWS,eu-north-1,m8g.16xlarge,reserved_1y,partial_upfront,2.31666,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:47.210683 +AWS,eu-north-1,m8g.16xlarge,reserved_3y,all_upfront,2.31666,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:15.982968 +AWS,eu-north-1,m8g.16xlarge,reserved_3y,no_upfront,2.31666,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:16.879921 +AWS,eu-north-1,m8g.16xlarge,reserved_3y,partial_upfront,2.31666,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:56.882986 +AWS,eu-north-1,m8g.16xlarge,spot,NA,0.920329,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501119 +AWS,eu-north-1,m8g.24xlarge,on_demand,NA,4.57824,USD,AWS Pricing API,2025-11-30T09:09:01.955275 +AWS,eu-north-1,m8g.24xlarge,reserved_1y,all_upfront,3.845677,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:31.046376 +AWS,eu-north-1,m8g.24xlarge,reserved_1y,no_upfront,3.845677,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:18.407623 +AWS,eu-north-1,m8g.24xlarge,reserved_1y,partial_upfront,3.845677,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:54.491586 +AWS,eu-north-1,m8g.24xlarge,reserved_3y,all_upfront,1.922846,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:22.144438 +AWS,eu-north-1,m8g.24xlarge,reserved_3y,no_upfront,1.922846,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:25.894464 +AWS,eu-north-1,m8g.24xlarge,reserved_3y,partial_upfront,1.922846,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:04.039114 +AWS,eu-north-1,m8g.24xlarge,spot,NA,1.377941,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502541 +AWS,eu-north-1,m8g.2xlarge,on_demand,NA,0.38152,USD,AWS Pricing API,2025-11-30T09:08:53.617512 +AWS,eu-north-1,m8g.2xlarge,reserved_1y,all_upfront,0.28958,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:22.669002 +AWS,eu-north-1,m8g.2xlarge,reserved_1y,no_upfront,0.28958,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:09.909761 +AWS,eu-north-1,m8g.2xlarge,reserved_1y,partial_upfront,0.28958,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:46.152019 +AWS,eu-north-1,m8g.2xlarge,reserved_3y,all_upfront,0.28958,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:13.924453 +AWS,eu-north-1,m8g.2xlarge,reserved_3y,no_upfront,0.28958,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:17.343811 +AWS,eu-north-1,m8g.2xlarge,reserved_3y,partial_upfront,0.28958,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:55.617203 +AWS,eu-north-1,m8g.2xlarge,spot,NA,0.138597,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502388 +AWS,eu-north-1,m8g.48xlarge,on_demand,NA,9.15648,USD,AWS Pricing API,2025-11-30T09:08:27.014961 +AWS,eu-north-1,m8g.48xlarge,reserved_1y,all_upfront,6.486644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:55.916108 +AWS,eu-north-1,m8g.48xlarge,reserved_1y,no_upfront,6.486644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:42.832408 +AWS,eu-north-1,m8g.48xlarge,reserved_1y,partial_upfront,6.486644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:19.563871 +AWS,eu-north-1,m8g.48xlarge,reserved_3y,all_upfront,2.162215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:47.724206 +AWS,eu-north-1,m8g.48xlarge,reserved_3y,no_upfront,2.162215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:49.976236 +AWS,eu-north-1,m8g.48xlarge,reserved_3y,partial_upfront,2.162215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:29.100771 +AWS,eu-north-1,m8g.48xlarge,spot,NA,2.959929,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501796 +AWS,eu-north-1,m8g.4xlarge,on_demand,NA,0.76304,USD,AWS Pricing API,2025-11-30T09:08:43.664397 +AWS,eu-north-1,m8g.4xlarge,reserved_1y,all_upfront,0.471119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:12.680541 +AWS,eu-north-1,m8g.4xlarge,reserved_1y,no_upfront,0.471119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:59.732306 +AWS,eu-north-1,m8g.4xlarge,reserved_1y,partial_upfront,0.471119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:36.227262 +AWS,eu-north-1,m8g.4xlarge,reserved_3y,all_upfront,0.15704,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:04.179550 +AWS,eu-north-1,m8g.4xlarge,reserved_3y,no_upfront,0.15704,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:07.111756 +AWS,eu-north-1,m8g.4xlarge,reserved_3y,partial_upfront,0.15704,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:45.707659 +AWS,eu-north-1,m8g.4xlarge,spot,NA,0.271849,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502166 +AWS,eu-north-1,m8g.8xlarge,on_demand,NA,1.52608,USD,AWS Pricing API,2025-11-30T09:08:15.537972 +AWS,eu-north-1,m8g.8xlarge,reserved_1y,all_upfront,1.15833,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:44.326802 +AWS,eu-north-1,m8g.8xlarge,reserved_1y,no_upfront,1.15833,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:31.207172 +AWS,eu-north-1,m8g.8xlarge,reserved_1y,partial_upfront,1.15833,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:08.099306 +AWS,eu-north-1,m8g.8xlarge,reserved_3y,all_upfront,1.15833,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:36.467732 +AWS,eu-north-1,m8g.8xlarge,reserved_3y,no_upfront,1.15833,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:38.226950 +AWS,eu-north-1,m8g.8xlarge,reserved_3y,partial_upfront,1.15833,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:17.726899 +AWS,eu-north-1,m8g.8xlarge,spot,NA,0.552672,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501529 +AWS,eu-north-1,m8g.large,on_demand,NA,0.09538,USD,AWS Pricing API,2025-11-30T09:09:03.983938 +AWS,eu-north-1,m8g.large,reserved_1y,all_upfront,0.134932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:33.173249 +AWS,eu-north-1,m8g.large,reserved_1y,no_upfront,0.134932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:20.452092 +AWS,eu-north-1,m8g.large,reserved_1y,partial_upfront,0.134932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:56.509471 +AWS,eu-north-1,m8g.large,reserved_3y,all_upfront,0.044977,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:24.126221 +AWS,eu-north-1,m8g.large,reserved_3y,no_upfront,0.044977,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:27.966590 +AWS,eu-north-1,m8g.large,reserved_3y,partial_upfront,0.044977,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:06.037488 +AWS,eu-north-1,m8g.large,spot,NA,0.038303,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502568 +AWS,eu-north-1,m8g.medium,on_demand,NA,0.04769,USD,AWS Pricing API,2025-11-30T09:09:05.879266 +AWS,eu-north-1,m8g.medium,reserved_1y,all_upfront,0.056507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:35.079969 +AWS,eu-north-1,m8g.medium,reserved_1y,no_upfront,0.056507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:22.373380 +AWS,eu-north-1,m8g.medium,reserved_1y,partial_upfront,0.056507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:58.406759 +AWS,eu-north-1,m8g.medium,reserved_3y,all_upfront,0.018836,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:25.988398 +AWS,eu-north-1,m8g.medium,reserved_3y,no_upfront,0.018836,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:29.880887 +AWS,eu-north-1,m8g.medium,reserved_3y,partial_upfront,0.018836,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:07.921318 +AWS,eu-north-1,m8g.medium,spot,NA,0.013862,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502608 +AWS,eu-north-1,m8g.xlarge,on_demand,NA,0.19076,USD,AWS Pricing API,2025-11-30T09:08:24.709038 +AWS,eu-north-1,m8g.xlarge,reserved_1y,all_upfront,0.13516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:53.604463 +AWS,eu-north-1,m8g.xlarge,reserved_1y,no_upfront,0.13516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:40.492926 +AWS,eu-north-1,m8g.xlarge,reserved_1y,partial_upfront,0.13516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:17.275565 +AWS,eu-north-1,m8g.xlarge,reserved_3y,all_upfront,0.045053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:45.468506 +AWS,eu-north-1,m8g.xlarge,reserved_3y,no_upfront,0.045053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:47.630807 +AWS,eu-north-1,m8g.xlarge,reserved_3y,partial_upfront,0.045053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:26.819264 +AWS,eu-north-1,m8g.xlarge,spot,NA,0.074685,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501714 +AWS,eu-north-1,p4d.24xlarge,on_demand,NA,23.71569,USD,AWS Pricing API,2025-11-30T09:08:00.906031 +AWS,eu-north-1,p4d.24xlarge,spot,NA,9.43333,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501234 +AWS,eu-north-1,p5.48xlarge,on_demand,NA,58.8928,USD,AWS Pricing API,2025-11-30T09:08:49.982905 +AWS,eu-north-1,p5.48xlarge,reserved_1y,all_upfront,46.37808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:19.018156 +AWS,eu-north-1,p5.48xlarge,reserved_1y,no_upfront,46.37808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:06.199950 +AWS,eu-north-1,p5.48xlarge,reserved_1y,partial_upfront,46.37808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:42.562609 +AWS,eu-north-1,p5.48xlarge,reserved_3y,all_upfront,46.37808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:10.383390 +AWS,eu-north-1,p5.48xlarge,reserved_3y,no_upfront,46.37808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:13.645184 +AWS,eu-north-1,p5.48xlarge,reserved_3y,partial_upfront,46.37808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:52.027037 +AWS,eu-north-1,p5.48xlarge,spot,NA,18.140909,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502325 +AWS,eu-north-1,r5.12xlarge,on_demand,NA,3.216,USD,AWS Pricing API,2025-11-30T09:07:54.305700 +AWS,eu-north-1,r5.12xlarge,reserved_1y,all_upfront,1.890982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:23.132497 +AWS,eu-north-1,r5.12xlarge,reserved_1y,no_upfront,1.890982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:09.672581 +AWS,eu-north-1,r5.12xlarge,reserved_1y,partial_upfront,1.890982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:46.939422 +AWS,eu-north-1,r5.12xlarge,reserved_3y,all_upfront,0.630327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:15.716304 +AWS,eu-north-1,r5.12xlarge,reserved_3y,no_upfront,0.630327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:16.605125 +AWS,eu-north-1,r5.12xlarge,reserved_3y,partial_upfront,0.630327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:56.605926 +AWS,eu-north-1,r5.12xlarge,spot,NA,1.021107,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501106 +AWS,eu-north-1,r5.16xlarge,on_demand,NA,4.288,USD,AWS Pricing API,2025-11-30T09:08:27.153008 +AWS,eu-north-1,r5.16xlarge,reserved_1y,all_upfront,2.899543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:56.049628 +AWS,eu-north-1,r5.16xlarge,reserved_1y,no_upfront,2.899543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:42.967350 +AWS,eu-north-1,r5.16xlarge,reserved_1y,partial_upfront,2.899543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:19.696906 +AWS,eu-north-1,r5.16xlarge,reserved_3y,all_upfront,0.966514,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:47.855450 +AWS,eu-north-1,r5.16xlarge,reserved_3y,no_upfront,0.966514,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:50.111832 +AWS,eu-north-1,r5.16xlarge,reserved_3y,partial_upfront,0.966514,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:29.233663 +AWS,eu-north-1,r5.16xlarge,spot,NA,1.251247,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501788 +AWS,eu-north-1,r5.24xlarge,on_demand,NA,6.432,USD,AWS Pricing API,2025-11-30T09:08:09.561895 +AWS,eu-north-1,r5.24xlarge,reserved_1y,all_upfront,5.145247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:38.368657 +AWS,eu-north-1,r5.24xlarge,reserved_1y,no_upfront,5.145247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:25.148058 +AWS,eu-north-1,r5.24xlarge,reserved_1y,partial_upfront,5.145247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:02.168874 +AWS,eu-north-1,r5.24xlarge,reserved_3y,all_upfront,2.572416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:30.646762 +AWS,eu-north-1,r5.24xlarge,reserved_3y,no_upfront,2.572416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:32.113819 +AWS,eu-north-1,r5.24xlarge,reserved_3y,partial_upfront,2.572416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:11.798893 +AWS,eu-north-1,r5.24xlarge,spot,NA,1.846139,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501425 +AWS,eu-north-1,r5.4xlarge,on_demand,NA,1.072,USD,AWS Pricing API,2025-11-30T09:09:01.680673 +AWS,eu-north-1,r5.4xlarge,reserved_1y,all_upfront,0.739863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:30.777595 +AWS,eu-north-1,r5.4xlarge,reserved_1y,no_upfront,0.739863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:18.128596 +AWS,eu-north-1,r5.4xlarge,reserved_1y,partial_upfront,0.739863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:54.225558 +AWS,eu-north-1,r5.4xlarge,reserved_3y,all_upfront,0.493288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:21.882390 +AWS,eu-north-1,r5.4xlarge,reserved_3y,no_upfront,0.493288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:25.618100 +AWS,eu-north-1,r5.4xlarge,reserved_3y,partial_upfront,0.493288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:03.766025 +AWS,eu-north-1,r5.4xlarge,spot,NA,0.365601,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502531 +AWS,eu-north-1,r5.8xlarge,on_demand,NA,2.144,USD,AWS Pricing API,2025-11-30T09:08:44.747062 +AWS,eu-north-1,r5.8xlarge,reserved_1y,all_upfront,1.351,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:13.776280 +AWS,eu-north-1,r5.8xlarge,reserved_1y,no_upfront,1.351,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:00.829862 +AWS,eu-north-1,r5.8xlarge,reserved_1y,partial_upfront,1.351,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:37.300158 +AWS,eu-north-1,r5.8xlarge,reserved_3y,all_upfront,1.351,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:05.235394 +AWS,eu-north-1,r5.8xlarge,reserved_3y,no_upfront,1.351,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:08.210256 +AWS,eu-north-1,r5.8xlarge,reserved_3y,partial_upfront,1.351,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:46.798012 +AWS,eu-north-1,r5.8xlarge,spot,NA,0.696789,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502195 +AWS,eu-north-1,r5.large,on_demand,NA,0.134,USD,AWS Pricing API,2025-11-30T09:08:21.071128 +AWS,eu-north-1,r5.large,reserved_1y,all_upfront,0.090639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:49.865203 +AWS,eu-north-1,r5.large,reserved_1y,no_upfront,0.090639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:36.816285 +AWS,eu-north-1,r5.large,reserved_1y,partial_upfront,0.090639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:13.646223 +AWS,eu-north-1,r5.large,reserved_3y,all_upfront,0.030213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:41.896399 +AWS,eu-north-1,r5.large,reserved_3y,no_upfront,0.030213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:43.886333 +AWS,eu-north-1,r5.large,reserved_3y,partial_upfront,0.030213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:23.227066 +AWS,eu-north-1,r5.large,spot,NA,0.046643,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501653 +AWS,eu-north-1,r5.xlarge,on_demand,NA,0.268,USD,AWS Pricing API,2025-11-30T09:07:58.467114 +AWS,eu-north-1,r5.xlarge,reserved_1y,all_upfront,0.160365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:27.282858 +AWS,eu-north-1,r5.xlarge,reserved_1y,no_upfront,0.160365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:13.899524 +AWS,eu-north-1,r5.xlarge,reserved_1y,partial_upfront,0.160365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:51.097162 +AWS,eu-north-1,r5.xlarge,reserved_3y,all_upfront,0.106788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:19.799656 +AWS,eu-north-1,r5.xlarge,reserved_3y,no_upfront,0.106788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:20.846231 +AWS,eu-north-1,r5.xlarge,reserved_3y,partial_upfront,0.106788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:00.750001 +AWS,eu-north-1,r5.xlarge,spot,NA,0.092163,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501179 +AWS,eu-north-1,r5d.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T09:08:58.345449 +AWS,eu-north-1,r5d.12xlarge,reserved_1y,all_upfront,2.545945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:27.407490 +AWS,eu-north-1,r5d.12xlarge,reserved_1y,no_upfront,2.545945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:14.711690 +AWS,eu-north-1,r5d.12xlarge,reserved_1y,partial_upfront,2.545945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:50.846992 +AWS,eu-north-1,r5d.12xlarge,reserved_3y,all_upfront,1.697315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:18.571998 +AWS,eu-north-1,r5d.12xlarge,reserved_3y,no_upfront,1.697315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:22.169396 +AWS,eu-north-1,r5d.12xlarge,reserved_3y,partial_upfront,1.697315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:00.327369 +AWS,eu-north-1,r5d.12xlarge,spot,NA,1.080953,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502464 +AWS,eu-north-1,r5d.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T09:08:23.352080 +AWS,eu-north-1,r5d.16xlarge,reserved_1y,all_upfront,3.064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:52.171236 +AWS,eu-north-1,r5d.16xlarge,reserved_1y,no_upfront,3.064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:39.134617 +AWS,eu-north-1,r5d.16xlarge,reserved_1y,partial_upfront,3.064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:15.926330 +AWS,eu-north-1,r5d.16xlarge,reserved_3y,all_upfront,3.064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:44.148126 +AWS,eu-north-1,r5d.16xlarge,reserved_3y,no_upfront,3.064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:46.251951 +AWS,eu-north-1,r5d.16xlarge,reserved_3y,partial_upfront,3.064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:25.483388 +AWS,eu-north-1,r5d.16xlarge,spot,NA,1.531945,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501689 +AWS,eu-north-1,r5d.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T09:08:52.956702 +AWS,eu-north-1,r5d.24xlarge,reserved_1y,all_upfront,5.09189,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:21.999421 +AWS,eu-north-1,r5d.24xlarge,reserved_1y,no_upfront,5.09189,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:09.220180 +AWS,eu-north-1,r5d.24xlarge,reserved_1y,partial_upfront,5.09189,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:45.487721 +AWS,eu-north-1,r5d.24xlarge,reserved_3y,all_upfront,3.39463,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:13.270185 +AWS,eu-north-1,r5d.24xlarge,reserved_3y,no_upfront,3.39463,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:16.665142 +AWS,eu-north-1,r5d.24xlarge,reserved_3y,partial_upfront,3.39463,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:54.952347 +AWS,eu-north-1,r5d.24xlarge,spot,NA,2.156997,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502358 +AWS,eu-north-1,r5d.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T09:08:51.603752 +AWS,eu-north-1,r5d.2xlarge,reserved_1y,all_upfront,0.36442,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:20.668428 +AWS,eu-north-1,r5d.2xlarge,reserved_1y,no_upfront,0.36442,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:07.834118 +AWS,eu-north-1,r5d.2xlarge,reserved_1y,partial_upfront,0.36442,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:44.157296 +AWS,eu-north-1,r5d.2xlarge,reserved_3y,all_upfront,0.242807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:11.959574 +AWS,eu-north-1,r5d.2xlarge,reserved_3y,no_upfront,0.242807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:15.294015 +AWS,eu-north-1,r5d.2xlarge,reserved_3y,partial_upfront,0.242807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:53.630404 +AWS,eu-north-1,r5d.2xlarge,spot,NA,0.217703,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502334 +AWS,eu-north-1,r5d.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T09:08:22.827409 +AWS,eu-north-1,r5d.4xlarge,reserved_1y,all_upfront,1.738128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:51.635438 +AWS,eu-north-1,r5d.4xlarge,reserved_1y,no_upfront,1.738128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:38.591083 +AWS,eu-north-1,r5d.4xlarge,reserved_1y,partial_upfront,1.738128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:15.396950 +AWS,eu-north-1,r5d.4xlarge,reserved_3y,all_upfront,0.579376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:43.625768 +AWS,eu-north-1,r5d.4xlarge,reserved_3y,no_upfront,0.579376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:45.705263 +AWS,eu-north-1,r5d.4xlarge,reserved_3y,partial_upfront,0.579376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:24.957707 +AWS,eu-north-1,r5d.4xlarge,spot,NA,0.388207,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501693 +AWS,eu-north-1,r5d.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T09:08:22.421632 +AWS,eu-north-1,r5d.8xlarge,reserved_1y,all_upfront,1.945247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:51.232725 +AWS,eu-north-1,r5d.8xlarge,reserved_1y,no_upfront,1.945247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:38.178166 +AWS,eu-north-1,r5d.8xlarge,reserved_1y,partial_upfront,1.945247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:14.987576 +AWS,eu-north-1,r5d.8xlarge,reserved_3y,all_upfront,0.972416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:43.226935 +AWS,eu-north-1,r5d.8xlarge,reserved_3y,no_upfront,0.972416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:45.290663 +AWS,eu-north-1,r5d.8xlarge,reserved_3y,partial_upfront,0.972416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:24.560992 +AWS,eu-north-1,r5d.8xlarge,spot,NA,0.759337,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501657 +AWS,eu-north-1,r5d.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T09:08:46.898865 +AWS,eu-north-1,r5d.large,reserved_1y,all_upfront,0.08,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:15.945402 +AWS,eu-north-1,r5d.large,reserved_1y,no_upfront,0.08,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:03.036362 +AWS,eu-north-1,r5d.large,reserved_1y,partial_upfront,0.08,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:39.461977 +AWS,eu-north-1,r5d.large,reserved_3y,all_upfront,0.08,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:07.356067 +AWS,eu-north-1,r5d.large,reserved_3y,no_upfront,0.08,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:10.390911 +AWS,eu-north-1,r5d.large,reserved_3y,partial_upfront,0.08,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:48.931909 +AWS,eu-north-1,r5d.large,spot,NA,0.048072,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502274 +AWS,eu-north-1,r5d.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T09:08:04.830927 +AWS,eu-north-1,r5d.xlarge,reserved_1y,all_upfront,0.24342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:33.615151 +AWS,eu-north-1,r5d.xlarge,reserved_1y,no_upfront,0.24342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:20.346614 +AWS,eu-north-1,r5d.xlarge,reserved_1y,partial_upfront,0.24342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:57.471068 +AWS,eu-north-1,r5d.xlarge,reserved_3y,all_upfront,0.121807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:26.004476 +AWS,eu-north-1,r5d.xlarge,reserved_3y,no_upfront,0.121807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:27.292463 +AWS,eu-north-1,r5d.xlarge,reserved_3y,partial_upfront,0.121807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:07.109651 +AWS,eu-north-1,r5d.xlarge,spot,NA,0.121192,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501303 +AWS,eu-north-1,r5dn.12xlarge,on_demand,NA,4.248,USD,AWS Pricing API,2025-11-30T09:08:07.664130 +AWS,eu-north-1,r5dn.12xlarge,reserved_1y,all_upfront,2.934932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:36.459014 +AWS,eu-north-1,r5dn.12xlarge,reserved_1y,no_upfront,2.934932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:23.231309 +AWS,eu-north-1,r5dn.12xlarge,reserved_1y,partial_upfront,2.934932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:00.286165 +AWS,eu-north-1,r5dn.12xlarge,reserved_3y,all_upfront,0.978311,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:28.802540 +AWS,eu-north-1,r5dn.12xlarge,reserved_3y,no_upfront,0.978311,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:30.173285 +AWS,eu-north-1,r5dn.12xlarge,reserved_3y,partial_upfront,0.978311,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:09.915027 +AWS,eu-north-1,r5dn.12xlarge,spot,NA,1.26748,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501356 +AWS,eu-north-1,r5dn.16xlarge,on_demand,NA,5.664,USD,AWS Pricing API,2025-11-30T09:08:18.085705 +AWS,eu-north-1,r5dn.16xlarge,reserved_1y,all_upfront,3.398401,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:46.880778 +AWS,eu-north-1,r5dn.16xlarge,reserved_1y,no_upfront,3.398401,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:33.801120 +AWS,eu-north-1,r5dn.16xlarge,reserved_1y,partial_upfront,3.398401,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:10.658853 +AWS,eu-north-1,r5dn.16xlarge,reserved_3y,all_upfront,2.2656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:38.969058 +AWS,eu-north-1,r5dn.16xlarge,reserved_3y,no_upfront,2.2656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:40.859307 +AWS,eu-north-1,r5dn.16xlarge,reserved_3y,partial_upfront,2.2656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:20.275379 +AWS,eu-north-1,r5dn.16xlarge,spot,NA,1.854567,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501565 +AWS,eu-north-1,r5dn.24xlarge,on_demand,NA,8.496,USD,AWS Pricing API,2025-11-30T09:08:29.569917 +AWS,eu-north-1,r5dn.24xlarge,reserved_1y,all_upfront,5.35248,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:58.474143 +AWS,eu-north-1,r5dn.24xlarge,reserved_1y,no_upfront,5.35248,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:45.423243 +AWS,eu-north-1,r5dn.24xlarge,reserved_1y,partial_upfront,5.35248,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:22.101027 +AWS,eu-north-1,r5dn.24xlarge,reserved_3y,all_upfront,5.35248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:50.242553 +AWS,eu-north-1,r5dn.24xlarge,reserved_3y,no_upfront,5.35248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:52.580736 +AWS,eu-north-1,r5dn.24xlarge,reserved_3y,partial_upfront,5.35248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:31.637570 +AWS,eu-north-1,r5dn.24xlarge,spot,NA,2.521924,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501869 +AWS,eu-north-1,r5dn.2xlarge,on_demand,NA,0.708,USD,AWS Pricing API,2025-11-30T09:08:34.793139 +AWS,eu-north-1,r5dn.2xlarge,reserved_1y,all_upfront,0.3395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:03.736965 +AWS,eu-north-1,r5dn.2xlarge,reserved_1y,no_upfront,0.3395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:50.719818 +AWS,eu-north-1,r5dn.2xlarge,reserved_1y,partial_upfront,0.3395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:27.358033 +AWS,eu-north-1,r5dn.2xlarge,reserved_3y,all_upfront,0.3395,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:55.387144 +AWS,eu-north-1,r5dn.2xlarge,reserved_3y,no_upfront,0.3395,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:57.945979 +AWS,eu-north-1,r5dn.2xlarge,reserved_3y,partial_upfront,0.3395,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:36.858908 +AWS,eu-north-1,r5dn.2xlarge,spot,NA,0.301815,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501962 +AWS,eu-north-1,r5dn.4xlarge,on_demand,NA,1.416,USD,AWS Pricing API,2025-11-30T09:07:59.153643 +AWS,eu-north-1,r5dn.4xlarge,reserved_1y,all_upfront,1.257387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:27.955575 +AWS,eu-north-1,r5dn.4xlarge,reserved_1y,no_upfront,1.257387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:14.594971 +AWS,eu-north-1,r5dn.4xlarge,reserved_1y,partial_upfront,1.257387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:51.764162 +AWS,eu-north-1,r5dn.4xlarge,reserved_3y,all_upfront,0.628696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:20.473560 +AWS,eu-north-1,r5dn.4xlarge,reserved_3y,no_upfront,0.628696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:21.531703 +AWS,eu-north-1,r5dn.4xlarge,reserved_3y,partial_upfront,0.628696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:01.443796 +AWS,eu-north-1,r5dn.4xlarge,spot,NA,0.473004,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501175 +AWS,eu-north-1,r5dn.8xlarge,on_demand,NA,2.832,USD,AWS Pricing API,2025-11-30T09:08:58.071389 +AWS,eu-north-1,r5dn.8xlarge,reserved_1y,all_upfront,3.082648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:27.135605 +AWS,eu-north-1,r5dn.8xlarge,reserved_1y,no_upfront,3.082648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:14.431327 +AWS,eu-north-1,r5dn.8xlarge,reserved_1y,partial_upfront,3.082648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:50.581017 +AWS,eu-north-1,r5dn.8xlarge,reserved_3y,all_upfront,1.027549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:18.305885 +AWS,eu-north-1,r5dn.8xlarge,reserved_3y,no_upfront,1.027549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:21.882784 +AWS,eu-north-1,r5dn.8xlarge,reserved_3y,partial_upfront,1.027549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:00.059185 +AWS,eu-north-1,r5dn.8xlarge,spot,NA,0.914873,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502489 +AWS,eu-north-1,r5dn.large,on_demand,NA,0.177,USD,AWS Pricing API,2025-11-30T09:08:08.761910 +AWS,eu-north-1,r5dn.large,reserved_1y,all_upfront,0.106182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:37.557308 +AWS,eu-north-1,r5dn.large,reserved_1y,no_upfront,0.106182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:24.334416 +AWS,eu-north-1,r5dn.large,reserved_1y,partial_upfront,0.106182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:01.361489 +AWS,eu-north-1,r5dn.large,reserved_3y,all_upfront,0.070794,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:29.856447 +AWS,eu-north-1,r5dn.large,reserved_3y,no_upfront,0.070794,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:31.276988 +AWS,eu-north-1,r5dn.large,reserved_3y,partial_upfront,0.070794,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:11.000890 +AWS,eu-north-1,r5dn.large,spot,NA,0.05581,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501378 +AWS,eu-north-1,r5dn.metal,on_demand,NA,8.496,USD,AWS Pricing API,2025-11-30T09:07:56.856099 +AWS,eu-north-1,r5dn.metal,reserved_1y,all_upfront,5.35248,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:25.680904 +AWS,eu-north-1,r5dn.metal,reserved_1y,no_upfront,5.35248,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:12.259238 +AWS,eu-north-1,r5dn.metal,reserved_1y,partial_upfront,5.35248,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:49.492724 +AWS,eu-north-1,r5dn.metal,reserved_3y,all_upfront,5.35248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:18.216240 +AWS,eu-north-1,r5dn.metal,reserved_3y,no_upfront,5.35248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:19.201541 +AWS,eu-north-1,r5dn.metal,reserved_3y,partial_upfront,5.35248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:59.147429 +AWS,eu-north-1,r5dn.metal,spot,NA,2.633747,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501129 +AWS,eu-north-1,r5dn.xlarge,on_demand,NA,0.354,USD,AWS Pricing API,2025-11-30T09:08:20.149720 +AWS,eu-north-1,r5dn.xlarge,reserved_1y,all_upfront,0.208105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:48.924145 +AWS,eu-north-1,r5dn.xlarge,reserved_1y,no_upfront,0.208105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:35.855104 +AWS,eu-north-1,r5dn.xlarge,reserved_1y,partial_upfront,0.208105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:12.702877 +AWS,eu-north-1,r5dn.xlarge,reserved_3y,all_upfront,0.069368,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:40.976204 +AWS,eu-north-1,r5dn.xlarge,reserved_3y,no_upfront,0.069368,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:42.925830 +AWS,eu-north-1,r5dn.xlarge,reserved_3y,partial_upfront,0.069368,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:22.291892 +AWS,eu-north-1,r5dn.xlarge,spot,NA,0.126763,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501645 +AWS,eu-north-1,r5n.12xlarge,on_demand,NA,3.816,USD,AWS Pricing API,2025-11-30T09:08:42.564117 +AWS,eu-north-1,r5n.12xlarge,reserved_1y,all_upfront,3.000114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:11.567752 +AWS,eu-north-1,r5n.12xlarge,reserved_1y,no_upfront,3.000114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:58.621745 +AWS,eu-north-1,r5n.12xlarge,reserved_1y,partial_upfront,3.000114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:35.156940 +AWS,eu-north-1,r5n.12xlarge,reserved_3y,all_upfront,1.500038,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:03.111678 +AWS,eu-north-1,r5n.12xlarge,reserved_3y,no_upfront,1.500038,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:06.004733 +AWS,eu-north-1,r5n.12xlarge,reserved_3y,partial_upfront,1.500038,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:44.636930 +AWS,eu-north-1,r5n.12xlarge,spot,NA,1.119713,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502132 +AWS,eu-north-1,r5n.16xlarge,on_demand,NA,5.088,USD,AWS Pricing API,2025-11-30T09:08:57.668686 +AWS,eu-north-1,r5n.16xlarge,reserved_1y,all_upfront,3.747,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:26.731241 +AWS,eu-north-1,r5n.16xlarge,reserved_1y,no_upfront,3.747,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:14.026467 +AWS,eu-north-1,r5n.16xlarge,reserved_1y,partial_upfront,3.747,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:50.178981 +AWS,eu-north-1,r5n.16xlarge,reserved_3y,all_upfront,3.747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:17.912304 +AWS,eu-north-1,r5n.16xlarge,reserved_3y,no_upfront,3.747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:21.472141 +AWS,eu-north-1,r5n.16xlarge,reserved_3y,partial_upfront,3.747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:59.652262 +AWS,eu-north-1,r5n.16xlarge,spot,NA,1.465868,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502473 +AWS,eu-north-1,r5n.24xlarge,on_demand,NA,7.632,USD,AWS Pricing API,2025-11-30T09:08:19.737236 +AWS,eu-north-1,r5n.24xlarge,reserved_1y,all_upfront,4.788,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:48.516507 +AWS,eu-north-1,r5n.24xlarge,reserved_1y,no_upfront,4.788,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:35.448424 +AWS,eu-north-1,r5n.24xlarge,reserved_1y,partial_upfront,4.788,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:12.296789 +AWS,eu-north-1,r5n.24xlarge,reserved_3y,all_upfront,4.788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:40.580660 +AWS,eu-north-1,r5n.24xlarge,reserved_3y,no_upfront,4.788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:42.513894 +AWS,eu-north-1,r5n.24xlarge,reserved_3y,partial_upfront,4.788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:21.891400 +AWS,eu-north-1,r5n.24xlarge,spot,NA,2.322304,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501609 +AWS,eu-north-1,r5n.2xlarge,on_demand,NA,0.636,USD,AWS Pricing API,2025-11-30T09:08:00.641281 +AWS,eu-north-1,r5n.2xlarge,reserved_1y,all_upfront,0.468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:29.440724 +AWS,eu-north-1,r5n.2xlarge,reserved_1y,no_upfront,0.468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:16.103673 +AWS,eu-north-1,r5n.2xlarge,reserved_1y,partial_upfront,0.468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:53.230888 +AWS,eu-north-1,r5n.2xlarge,reserved_3y,all_upfront,0.468,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:21.917709 +AWS,eu-north-1,r5n.2xlarge,reserved_3y,no_upfront,0.468,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:23.048275 +AWS,eu-north-1,r5n.2xlarge,reserved_3y,partial_upfront,0.468,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:02.938893 +AWS,eu-north-1,r5n.2xlarge,spot,NA,0.271394,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501216 +AWS,eu-north-1,r5n.4xlarge,on_demand,NA,1.272,USD,AWS Pricing API,2025-11-30T09:08:56.181563 +AWS,eu-north-1,r5n.4xlarge,reserved_1y,all_upfront,0.760023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:25.248831 +AWS,eu-north-1,r5n.4xlarge,reserved_1y,no_upfront,0.760023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:12.505977 +AWS,eu-north-1,r5n.4xlarge,reserved_1y,partial_upfront,0.760023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:48.699493 +AWS,eu-north-1,r5n.4xlarge,reserved_3y,all_upfront,0.506674,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:16.437296 +AWS,eu-north-1,r5n.4xlarge,reserved_3y,no_upfront,0.506674,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:19.955596 +AWS,eu-north-1,r5n.4xlarge,reserved_3y,partial_upfront,0.506674,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:58.175936 +AWS,eu-north-1,r5n.4xlarge,spot,NA,0.41507,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502418 +AWS,eu-north-1,r5n.8xlarge,on_demand,NA,2.544,USD,AWS Pricing API,2025-11-30T09:08:42.425124 +AWS,eu-north-1,r5n.8xlarge,reserved_1y,all_upfront,1.520046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:11.430267 +AWS,eu-north-1,r5n.8xlarge,reserved_1y,no_upfront,1.520046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:58.484202 +AWS,eu-north-1,r5n.8xlarge,reserved_1y,partial_upfront,1.520046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:35.022793 +AWS,eu-north-1,r5n.8xlarge,reserved_3y,all_upfront,1.013349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:02.978960 +AWS,eu-north-1,r5n.8xlarge,reserved_3y,no_upfront,1.013349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:05.867325 +AWS,eu-north-1,r5n.8xlarge,reserved_3y,partial_upfront,1.013349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:44.495115 +AWS,eu-north-1,r5n.8xlarge,spot,NA,0.836441,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502136 +AWS,eu-north-1,r5n.large,on_demand,NA,0.159,USD,AWS Pricing API,2025-11-30T09:09:03.439508 +AWS,eu-north-1,r5n.large,reserved_1y,all_upfront,0.109247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:32.636552 +AWS,eu-north-1,r5n.large,reserved_1y,no_upfront,0.109247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:19.897878 +AWS,eu-north-1,r5n.large,reserved_1y,partial_upfront,0.109247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:55.962650 +AWS,eu-north-1,r5n.large,reserved_3y,all_upfront,0.036416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:23.603434 +AWS,eu-north-1,r5n.large,reserved_3y,no_upfront,0.036416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:27.412407 +AWS,eu-north-1,r5n.large,reserved_3y,partial_upfront,0.036416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:05.500723 +AWS,eu-north-1,r5n.large,spot,NA,0.052471,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502558 +AWS,eu-north-1,r5n.metal,on_demand,NA,7.632,USD,AWS Pricing API,2025-11-30T09:08:43.387718 +AWS,eu-north-1,r5n.metal,reserved_1y,all_upfront,5.62,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:12.413717 +AWS,eu-north-1,r5n.metal,reserved_1y,no_upfront,5.62,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:59.459301 +AWS,eu-north-1,r5n.metal,reserved_1y,partial_upfront,5.62,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:35.958343 +AWS,eu-north-1,r5n.metal,reserved_3y,all_upfront,5.62,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:03.918824 +AWS,eu-north-1,r5n.metal,reserved_3y,no_upfront,5.62,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:06.840179 +AWS,eu-north-1,r5n.metal,reserved_3y,partial_upfront,5.62,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:45.441039 +AWS,eu-north-1,r5n.metal,spot,NA,2.307277,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502153 +AWS,eu-north-1,r5n.xlarge,on_demand,NA,0.318,USD,AWS Pricing API,2025-11-30T09:08:21.743827 +AWS,eu-north-1,r5n.xlarge,reserved_1y,all_upfront,0.218607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:50.546121 +AWS,eu-north-1,r5n.xlarge,reserved_1y,no_upfront,0.218607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:37.494635 +AWS,eu-north-1,r5n.xlarge,reserved_1y,partial_upfront,0.218607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:14.309818 +AWS,eu-north-1,r5n.xlarge,reserved_3y,all_upfront,0.072869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:42.554736 +AWS,eu-north-1,r5n.xlarge,reserved_3y,no_upfront,0.072869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:44.600905 +AWS,eu-north-1,r5n.xlarge,reserved_3y,partial_upfront,0.072869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:23.889714 +AWS,eu-north-1,r5n.xlarge,spot,NA,0.116401,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501673 +AWS,eu-north-1,r6g.12xlarge,on_demand,NA,2.568,USD,AWS Pricing API,2025-11-30T09:08:15.000823 +AWS,eu-north-1,r6g.12xlarge,reserved_1y,all_upfront,1.505251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:43.792538 +AWS,eu-north-1,r6g.12xlarge,reserved_1y,no_upfront,1.505251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:30.660649 +AWS,eu-north-1,r6g.12xlarge,reserved_1y,partial_upfront,1.505251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:07.562261 +AWS,eu-north-1,r6g.12xlarge,reserved_3y,all_upfront,0.50175,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:35.943044 +AWS,eu-north-1,r6g.12xlarge,reserved_3y,no_upfront,0.50175,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:37.673465 +AWS,eu-north-1,r6g.12xlarge,reserved_3y,partial_upfront,0.50175,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:17.191998 +AWS,eu-north-1,r6g.12xlarge,spot,NA,0.79238,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501541 +AWS,eu-north-1,r6g.16xlarge,on_demand,NA,3.424,USD,AWS Pricing API,2025-11-30T09:08:11.874975 +AWS,eu-north-1,r6g.16xlarge,reserved_1y,all_upfront,2.368018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:40.673321 +AWS,eu-north-1,r6g.16xlarge,reserved_1y,no_upfront,2.368018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:27.517748 +AWS,eu-north-1,r6g.16xlarge,reserved_1y,partial_upfront,2.368018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:04.464257 +AWS,eu-north-1,r6g.16xlarge,reserved_3y,all_upfront,1.578673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:32.904429 +AWS,eu-north-1,r6g.16xlarge,reserved_3y,no_upfront,1.578673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:34.487790 +AWS,eu-north-1,r6g.16xlarge,reserved_3y,partial_upfront,1.578673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:14.062876 +AWS,eu-north-1,r6g.16xlarge,spot,NA,0.997107,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501488 +AWS,eu-north-1,r6g.2xlarge,on_demand,NA,0.428,USD,AWS Pricing API,2025-11-30T09:09:04.389169 +AWS,eu-north-1,r6g.2xlarge,reserved_1y,all_upfront,0.485046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:33.598796 +AWS,eu-north-1,r6g.2xlarge,reserved_1y,no_upfront,0.485046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:20.858818 +AWS,eu-north-1,r6g.2xlarge,reserved_1y,partial_upfront,0.485046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:56.916705 +AWS,eu-north-1,r6g.2xlarge,reserved_3y,all_upfront,0.161682,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:24.518974 +AWS,eu-north-1,r6g.2xlarge,reserved_3y,no_upfront,0.161682,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:28.374487 +AWS,eu-north-1,r6g.2xlarge,reserved_3y,partial_upfront,0.161682,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:06.436070 +AWS,eu-north-1,r6g.2xlarge,spot,NA,0.14613,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502582 +AWS,eu-north-1,r6g.4xlarge,on_demand,NA,0.856,USD,AWS Pricing API,2025-11-30T09:08:01.740095 +AWS,eu-north-1,r6g.4xlarge,reserved_1y,all_upfront,0.511936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:30.514926 +AWS,eu-north-1,r6g.4xlarge,reserved_1y,no_upfront,0.511936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:17.201375 +AWS,eu-north-1,r6g.4xlarge,reserved_1y,partial_upfront,0.511936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:54.294152 +AWS,eu-north-1,r6g.4xlarge,reserved_3y,all_upfront,0.341312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:22.973179 +AWS,eu-north-1,r6g.4xlarge,reserved_3y,no_upfront,0.341312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:24.145838 +AWS,eu-north-1,r6g.4xlarge,reserved_3y,partial_upfront,0.341312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:04.028099 +AWS,eu-north-1,r6g.4xlarge,spot,NA,0.346105,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501245 +AWS,eu-north-1,r6g.8xlarge,on_demand,NA,1.712,USD,AWS Pricing API,2025-11-30T09:08:40.422128 +AWS,eu-north-1,r6g.8xlarge,reserved_1y,all_upfront,2.398858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:09.413043 +AWS,eu-north-1,r6g.8xlarge,reserved_1y,no_upfront,2.398858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:56.452247 +AWS,eu-north-1,r6g.8xlarge,reserved_1y,partial_upfront,2.398858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:32.985183 +AWS,eu-north-1,r6g.8xlarge,reserved_3y,all_upfront,0.799619,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:00.972628 +AWS,eu-north-1,r6g.8xlarge,reserved_3y,no_upfront,0.799619,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:03.804440 +AWS,eu-north-1,r6g.8xlarge,reserved_3y,partial_upfront,0.799619,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:42.493471 +AWS,eu-north-1,r6g.8xlarge,spot,NA,0.501947,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502114 +AWS,eu-north-1,r6g.large,on_demand,NA,0.107,USD,AWS Pricing API,2025-11-30T09:08:19.197461 +AWS,eu-north-1,r6g.large,reserved_1y,all_upfront,0.085998,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:47.978762 +AWS,eu-north-1,r6g.large,reserved_1y,no_upfront,0.085998,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:34.904980 +AWS,eu-north-1,r6g.large,reserved_1y,partial_upfront,0.085998,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:11.753815 +AWS,eu-north-1,r6g.large,reserved_3y,all_upfront,0.042999,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:40.055817 +AWS,eu-north-1,r6g.large,reserved_3y,no_upfront,0.042999,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:41.966452 +AWS,eu-north-1,r6g.large,reserved_3y,partial_upfront,0.042999,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:21.355859 +AWS,eu-north-1,r6g.large,spot,NA,0.039672,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501629 +AWS,eu-north-1,r6g.xlarge,on_demand,NA,0.214,USD,AWS Pricing API,2025-11-30T09:07:54.714997 +AWS,eu-north-1,r6g.xlarge,reserved_1y,all_upfront,0.147973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:23.536942 +AWS,eu-north-1,r6g.xlarge,reserved_1y,no_upfront,0.147973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:10.082187 +AWS,eu-north-1,r6g.xlarge,reserved_1y,partial_upfront,0.147973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:47.344242 +AWS,eu-north-1,r6g.xlarge,reserved_3y,all_upfront,0.098658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:16.114938 +AWS,eu-north-1,r6g.xlarge,reserved_3y,no_upfront,0.098658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:17.021060 +AWS,eu-north-1,r6g.xlarge,reserved_3y,partial_upfront,0.098658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:57.023413 +AWS,eu-north-1,r6g.xlarge,spot,NA,0.080196,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501115 +AWS,eu-north-1,r6gd.12xlarge,on_demand,NA,2.9184,USD,AWS Pricing API,2025-11-30T09:08:50.790987 +AWS,eu-north-1,r6gd.12xlarge,reserved_1y,all_upfront,1.715982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:19.819947 +AWS,eu-north-1,r6gd.12xlarge,reserved_1y,no_upfront,1.715982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:07.016039 +AWS,eu-north-1,r6gd.12xlarge,reserved_1y,partial_upfront,1.715982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:43.359998 +AWS,eu-north-1,r6gd.12xlarge,reserved_3y,all_upfront,0.571994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:11.169644 +AWS,eu-north-1,r6gd.12xlarge,reserved_3y,no_upfront,0.571994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:14.470117 +AWS,eu-north-1,r6gd.12xlarge,reserved_3y,partial_upfront,0.571994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:52.831878 +AWS,eu-north-1,r6gd.12xlarge,spot,NA,0.876873,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502313 +AWS,eu-north-1,r6gd.16xlarge,on_demand,NA,3.8912,USD,AWS Pricing API,2025-11-30T09:08:17.678964 +AWS,eu-north-1,r6gd.16xlarge,reserved_1y,all_upfront,2.4515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:46.475793 +AWS,eu-north-1,r6gd.16xlarge,reserved_1y,no_upfront,2.4515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:33.390654 +AWS,eu-north-1,r6gd.16xlarge,reserved_1y,partial_upfront,2.4515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:10.256911 +AWS,eu-north-1,r6gd.16xlarge,reserved_3y,all_upfront,2.4515,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:38.574506 +AWS,eu-north-1,r6gd.16xlarge,reserved_3y,no_upfront,2.4515,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:40.438702 +AWS,eu-north-1,r6gd.16xlarge,reserved_3y,partial_upfront,2.4515,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:19.865806 +AWS,eu-north-1,r6gd.16xlarge,spot,NA,1.106993,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501569 +AWS,eu-north-1,r6gd.2xlarge,on_demand,NA,0.4864,USD,AWS Pricing API,2025-11-30T09:07:56.176479 +AWS,eu-north-1,r6gd.2xlarge,reserved_1y,all_upfront,0.389195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:25.011992 +AWS,eu-north-1,r6gd.2xlarge,reserved_1y,no_upfront,0.389195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:11.577297 +AWS,eu-north-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.389195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:48.823631 +AWS,eu-north-1,r6gd.2xlarge,reserved_3y,all_upfront,0.194598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:17.563142 +AWS,eu-north-1,r6gd.2xlarge,reserved_3y,no_upfront,0.194598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:18.525007 +AWS,eu-north-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.194598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:58.479691 +AWS,eu-north-1,r6gd.2xlarge,spot,NA,0.164976,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501141 +AWS,eu-north-1,r6gd.4xlarge,on_demand,NA,0.9728,USD,AWS Pricing API,2025-11-30T09:08:02.688570 +AWS,eu-north-1,r6gd.4xlarge,reserved_1y,all_upfront,0.572032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:31.458833 +AWS,eu-north-1,r6gd.4xlarge,reserved_1y,no_upfront,0.572032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:18.159954 +AWS,eu-north-1,r6gd.4xlarge,reserved_1y,partial_upfront,0.572032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:55.228350 +AWS,eu-north-1,r6gd.4xlarge,reserved_3y,all_upfront,0.190677,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:23.897253 +AWS,eu-north-1,r6gd.4xlarge,reserved_3y,no_upfront,0.190677,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:25.107904 +AWS,eu-north-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.190677,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:04.961119 +AWS,eu-north-1,r6gd.4xlarge,spot,NA,0.332622,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501291 +AWS,eu-north-1,r6gd.8xlarge,on_demand,NA,1.9456,USD,AWS Pricing API,2025-11-30T09:07:56.992109 +AWS,eu-north-1,r6gd.8xlarge,reserved_1y,all_upfront,1.144064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:25.816220 +AWS,eu-north-1,r6gd.8xlarge,reserved_1y,no_upfront,1.144064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:12.395569 +AWS,eu-north-1,r6gd.8xlarge,reserved_1y,partial_upfront,1.144064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:49.625935 +AWS,eu-north-1,r6gd.8xlarge,reserved_3y,all_upfront,0.381355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:18.348040 +AWS,eu-north-1,r6gd.8xlarge,reserved_3y,no_upfront,0.381355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:19.339811 +AWS,eu-north-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.381355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:59.279560 +AWS,eu-north-1,r6gd.8xlarge,spot,NA,0.576708,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501154 +AWS,eu-north-1,r6gd.large,on_demand,NA,0.1216,USD,AWS Pricing API,2025-11-30T09:08:32.392980 +AWS,eu-north-1,r6gd.large,reserved_1y,all_upfront,0.084866,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:01.296024 +AWS,eu-north-1,r6gd.large,reserved_1y,no_upfront,0.084866,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:48.288691 +AWS,eu-north-1,r6gd.large,reserved_1y,partial_upfront,0.084866,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:24.927267 +AWS,eu-north-1,r6gd.large,reserved_3y,all_upfront,0.056555,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:53.020520 +AWS,eu-north-1,r6gd.large,reserved_3y,no_upfront,0.056555,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:55.455214 +AWS,eu-north-1,r6gd.large,reserved_3y,partial_upfront,0.056555,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:34.462998 +AWS,eu-north-1,r6gd.large,spot,NA,0.042478,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501914 +AWS,eu-north-1,r6gd.xlarge,on_demand,NA,0.2432,USD,AWS Pricing API,2025-11-30T09:08:16.602878 +AWS,eu-north-1,r6gd.xlarge,reserved_1y,all_upfront,0.1532,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:45.407765 +AWS,eu-north-1,r6gd.xlarge,reserved_1y,no_upfront,0.1532,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:32.291744 +AWS,eu-north-1,r6gd.xlarge,reserved_1y,partial_upfront,0.1532,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:09.179300 +AWS,eu-north-1,r6gd.xlarge,reserved_3y,all_upfront,0.1532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:37.520063 +AWS,eu-north-1,r6gd.xlarge,reserved_3y,no_upfront,0.1532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:39.328728 +AWS,eu-north-1,r6gd.xlarge,reserved_3y,partial_upfront,0.1532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:18.797225 +AWS,eu-north-1,r6gd.xlarge,spot,NA,0.079506,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501545 +AWS,eu-north-1,r6i.12xlarge,on_demand,NA,3.216,USD,AWS Pricing API,2025-11-30T09:08:56.454842 +AWS,eu-north-1,r6i.12xlarge,reserved_1y,all_upfront,2.32999,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:25.518010 +AWS,eu-north-1,r6i.12xlarge,reserved_1y,no_upfront,2.32999,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:12.777985 +AWS,eu-north-1,r6i.12xlarge,reserved_1y,partial_upfront,2.32999,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:48.968774 +AWS,eu-north-1,r6i.12xlarge,reserved_3y,all_upfront,2.32999,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:16.705426 +AWS,eu-north-1,r6i.12xlarge,reserved_3y,no_upfront,2.32999,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:20.231044 +AWS,eu-north-1,r6i.12xlarge,reserved_3y,partial_upfront,2.32999,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:58.445629 +AWS,eu-north-1,r6i.12xlarge,spot,NA,0.913818,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502456 +AWS,eu-north-1,r6i.16xlarge,on_demand,NA,4.288,USD,AWS Pricing API,2025-11-30T09:08:05.368674 +AWS,eu-north-1,r6i.16xlarge,reserved_1y,all_upfront,3.10666,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:34.163150 +AWS,eu-north-1,r6i.16xlarge,reserved_1y,no_upfront,3.10666,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:20.892304 +AWS,eu-north-1,r6i.16xlarge,reserved_1y,partial_upfront,3.10666,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:58.002349 +AWS,eu-north-1,r6i.16xlarge,reserved_3y,all_upfront,3.10666,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:26.545466 +AWS,eu-north-1,r6i.16xlarge,reserved_3y,no_upfront,3.10666,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:27.833499 +AWS,eu-north-1,r6i.16xlarge,reserved_3y,partial_upfront,3.10666,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:07.644531 +AWS,eu-north-1,r6i.16xlarge,spot,NA,1.233642,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501323 +AWS,eu-north-1,r6i.24xlarge,on_demand,NA,6.432,USD,AWS Pricing API,2025-11-30T09:08:11.739889 +AWS,eu-north-1,r6i.24xlarge,reserved_1y,all_upfront,4.349315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:40.536870 +AWS,eu-north-1,r6i.24xlarge,reserved_1y,no_upfront,4.349315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:27.381782 +AWS,eu-north-1,r6i.24xlarge,reserved_1y,partial_upfront,4.349315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:04.329343 +AWS,eu-north-1,r6i.24xlarge,reserved_3y,all_upfront,1.449772,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:32.772222 +AWS,eu-north-1,r6i.24xlarge,reserved_3y,no_upfront,1.449772,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:34.349730 +AWS,eu-north-1,r6i.24xlarge,reserved_3y,partial_upfront,1.449772,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:13.929594 +AWS,eu-north-1,r6i.24xlarge,spot,NA,1.817592,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501460 +AWS,eu-north-1,r6i.2xlarge,on_demand,NA,0.536,USD,AWS Pricing API,2025-11-30T09:08:59.969035 +AWS,eu-north-1,r6i.2xlarge,reserved_1y,all_upfront,0.604566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:29.019094 +AWS,eu-north-1,r6i.2xlarge,reserved_1y,no_upfront,0.604566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:16.364192 +AWS,eu-north-1,r6i.2xlarge,reserved_1y,partial_upfront,0.604566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:52.463153 +AWS,eu-north-1,r6i.2xlarge,reserved_3y,all_upfront,0.201522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:20.179167 +AWS,eu-north-1,r6i.2xlarge,reserved_3y,no_upfront,0.201522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:23.829910 +AWS,eu-north-1,r6i.2xlarge,reserved_3y,partial_upfront,0.201522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:01.982433 +AWS,eu-north-1,r6i.2xlarge,spot,NA,0.262206,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502493 +AWS,eu-north-1,r6i.32xlarge,on_demand,NA,8.576,USD,AWS Pricing API,2025-11-30T09:08:05.505587 +AWS,eu-north-1,r6i.32xlarge,reserved_1y,all_upfront,5.799087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:34.300261 +AWS,eu-north-1,r6i.32xlarge,reserved_1y,no_upfront,5.799087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:21.030289 +AWS,eu-north-1,r6i.32xlarge,reserved_1y,partial_upfront,5.799087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:58.138580 +AWS,eu-north-1,r6i.32xlarge,reserved_3y,all_upfront,1.933029,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:26.676055 +AWS,eu-north-1,r6i.32xlarge,reserved_3y,no_upfront,1.933029,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:27.969691 +AWS,eu-north-1,r6i.32xlarge,reserved_3y,partial_upfront,1.933029,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:07.776588 +AWS,eu-north-1,r6i.32xlarge,spot,NA,2.421405,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501335 +AWS,eu-north-1,r6i.4xlarge,on_demand,NA,1.072,USD,AWS Pricing API,2025-11-30T09:08:26.749215 +AWS,eu-north-1,r6i.4xlarge,reserved_1y,all_upfront,1.52226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:55.646242 +AWS,eu-north-1,r6i.4xlarge,reserved_1y,no_upfront,1.52226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:42.556557 +AWS,eu-north-1,r6i.4xlarge,reserved_1y,partial_upfront,1.52226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:19.291711 +AWS,eu-north-1,r6i.4xlarge,reserved_3y,all_upfront,0.50742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:47.466363 +AWS,eu-north-1,r6i.4xlarge,reserved_3y,no_upfront,0.50742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:49.704146 +AWS,eu-north-1,r6i.4xlarge,reserved_3y,partial_upfront,0.50742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:28.832852 +AWS,eu-north-1,r6i.4xlarge,spot,NA,0.370901,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501780 +AWS,eu-north-1,r6i.8xlarge,on_demand,NA,2.144,USD,AWS Pricing API,2025-11-30T09:08:31.034951 +AWS,eu-north-1,r6i.8xlarge,reserved_1y,all_upfront,1.35072,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:59.955060 +AWS,eu-north-1,r6i.8xlarge,reserved_1y,no_upfront,1.35072,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:46.920214 +AWS,eu-north-1,r6i.8xlarge,reserved_1y,partial_upfront,1.35072,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:23.579551 +AWS,eu-north-1,r6i.8xlarge,reserved_3y,all_upfront,1.35072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:51.685883 +AWS,eu-north-1,r6i.8xlarge,reserved_3y,no_upfront,1.35072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:54.089379 +AWS,eu-north-1,r6i.8xlarge,reserved_3y,partial_upfront,1.35072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:33.116229 +AWS,eu-north-1,r6i.8xlarge,spot,NA,0.650741,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501880 +AWS,eu-north-1,r6i.large,on_demand,NA,0.134,USD,AWS Pricing API,2025-11-30T09:08:46.628293 +AWS,eu-north-1,r6i.large,reserved_1y,all_upfront,0.078767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:15.676849 +AWS,eu-north-1,r6i.large,reserved_1y,no_upfront,0.078767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:02.759214 +AWS,eu-north-1,r6i.large,reserved_1y,partial_upfront,0.078767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:39.194075 +AWS,eu-north-1,r6i.large,reserved_3y,all_upfront,0.026256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:07.094698 +AWS,eu-north-1,r6i.large,reserved_3y,no_upfront,0.026256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:10.118749 +AWS,eu-north-1,r6i.large,reserved_3y,partial_upfront,0.026256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:48.667236 +AWS,eu-north-1,r6i.large,spot,NA,0.046172,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502224 +AWS,eu-north-1,r6i.xlarge,on_demand,NA,0.268,USD,AWS Pricing API,2025-11-30T09:08:08.896476 +AWS,eu-north-1,r6i.xlarge,reserved_1y,all_upfront,0.19417,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:37.692856 +AWS,eu-north-1,r6i.xlarge,reserved_1y,no_upfront,0.19417,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:24.471043 +AWS,eu-north-1,r6i.xlarge,reserved_1y,partial_upfront,0.19417,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:01.496867 +AWS,eu-north-1,r6i.xlarge,reserved_3y,all_upfront,0.19417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:29.987193 +AWS,eu-north-1,r6i.xlarge,reserved_3y,no_upfront,0.19417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:31.425919 +AWS,eu-north-1,r6i.xlarge,reserved_3y,partial_upfront,0.19417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:11.134337 +AWS,eu-north-1,r6i.xlarge,spot,NA,0.092314,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501408 +AWS,eu-north-1,r6idn.12xlarge,on_demand,NA,4.97016,USD,AWS Pricing API,2025-11-30T09:08:18.777497 +AWS,eu-north-1,r6idn.12xlarge,reserved_1y,all_upfront,3.67864,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:47.570934 +AWS,eu-north-1,r6idn.12xlarge,reserved_1y,no_upfront,3.67864,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:34.496274 +AWS,eu-north-1,r6idn.12xlarge,reserved_1y,partial_upfront,3.67864,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:11.341078 +AWS,eu-north-1,r6idn.12xlarge,reserved_3y,all_upfront,3.67864,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:39.657560 +AWS,eu-north-1,r6idn.12xlarge,reserved_3y,no_upfront,3.67864,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:41.551953 +AWS,eu-north-1,r6idn.12xlarge,reserved_3y,partial_upfront,3.67864,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:20.946030 +AWS,eu-north-1,r6idn.12xlarge,spot,NA,1.476083,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501617 +AWS,eu-north-1,r6idn.16xlarge,on_demand,NA,6.62688,USD,AWS Pricing API,2025-11-30T09:07:58.738502 +AWS,eu-north-1,r6idn.16xlarge,reserved_1y,all_upfront,3.976074,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:27.552599 +AWS,eu-north-1,r6idn.16xlarge,reserved_1y,no_upfront,3.976074,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:14.171381 +AWS,eu-north-1,r6idn.16xlarge,reserved_1y,partial_upfront,3.976074,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:51.363536 +AWS,eu-north-1,r6idn.16xlarge,reserved_3y,all_upfront,2.650731,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:20.072900 +AWS,eu-north-1,r6idn.16xlarge,reserved_3y,no_upfront,2.650731,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:21.119652 +AWS,eu-north-1,r6idn.16xlarge,reserved_3y,partial_upfront,2.650731,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:01.028075 +AWS,eu-north-1,r6idn.16xlarge,spot,NA,2.050835,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501171 +AWS,eu-north-1,r6idn.24xlarge,on_demand,NA,9.94032,USD,AWS Pricing API,2025-11-30T09:08:25.933515 +AWS,eu-north-1,r6idn.24xlarge,reserved_1y,all_upfront,6.866781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:54.831351 +AWS,eu-north-1,r6idn.24xlarge,reserved_1y,no_upfront,6.866781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:41.727697 +AWS,eu-north-1,r6idn.24xlarge,reserved_1y,partial_upfront,6.866781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:18.481485 +AWS,eu-north-1,r6idn.24xlarge,reserved_3y,all_upfront,2.288927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:46.675712 +AWS,eu-north-1,r6idn.24xlarge,reserved_3y,no_upfront,2.288927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:48.869535 +AWS,eu-north-1,r6idn.24xlarge,reserved_3y,partial_upfront,2.288927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:28.036206 +AWS,eu-north-1,r6idn.24xlarge,spot,NA,2.823093,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501759 +AWS,eu-north-1,r6idn.2xlarge,on_demand,NA,0.82836,USD,AWS Pricing API,2025-11-30T09:08:25.393223 +AWS,eu-north-1,r6idn.2xlarge,reserved_1y,all_upfront,0.901484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:54.290783 +AWS,eu-north-1,r6idn.2xlarge,reserved_1y,no_upfront,0.901484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:41.184686 +AWS,eu-north-1,r6idn.2xlarge,reserved_1y,partial_upfront,0.901484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:17.949479 +AWS,eu-north-1,r6idn.2xlarge,reserved_3y,all_upfront,0.300495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:46.127682 +AWS,eu-north-1,r6idn.2xlarge,reserved_3y,no_upfront,0.300495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:48.315405 +AWS,eu-north-1,r6idn.2xlarge,reserved_3y,partial_upfront,0.300495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:27.491983 +AWS,eu-north-1,r6idn.2xlarge,spot,NA,0.310172,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501751 +AWS,eu-north-1,r6idn.32xlarge,on_demand,NA,13.25376,USD,AWS Pricing API,2025-11-30T09:08:55.369658 +AWS,eu-north-1,r6idn.32xlarge,reserved_1y,all_upfront,7.952272,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:24.432417 +AWS,eu-north-1,r6idn.32xlarge,reserved_1y,no_upfront,7.952272,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:11.687869 +AWS,eu-north-1,r6idn.32xlarge,reserved_1y,partial_upfront,7.952272,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:47.899648 +AWS,eu-north-1,r6idn.32xlarge,reserved_3y,all_upfront,5.301511,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:15.641948 +AWS,eu-north-1,r6idn.32xlarge,reserved_3y,no_upfront,5.301511,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:19.123527 +AWS,eu-north-1,r6idn.32xlarge,reserved_3y,partial_upfront,5.301511,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:57.362820 +AWS,eu-north-1,r6idn.32xlarge,spot,NA,3.757843,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502431 +AWS,eu-north-1,r6idn.4xlarge,on_demand,NA,1.65672,USD,AWS Pricing API,2025-11-30T09:07:59.290524 +AWS,eu-north-1,r6idn.4xlarge,reserved_1y,all_upfront,1.22621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:28.092505 +AWS,eu-north-1,r6idn.4xlarge,reserved_1y,no_upfront,1.22621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:14.731036 +AWS,eu-north-1,r6idn.4xlarge,reserved_1y,partial_upfront,1.22621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:51.897065 +AWS,eu-north-1,r6idn.4xlarge,reserved_3y,all_upfront,1.22621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:20.604086 +AWS,eu-north-1,r6idn.4xlarge,reserved_3y,no_upfront,1.22621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:21.667692 +AWS,eu-north-1,r6idn.4xlarge,reserved_3y,partial_upfront,1.22621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:01.579970 +AWS,eu-north-1,r6idn.4xlarge,spot,NA,0.564869,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501191 +AWS,eu-north-1,r6idn.8xlarge,on_demand,NA,3.31344,USD,AWS Pricing API,2025-11-30T09:08:46.492427 +AWS,eu-north-1,r6idn.8xlarge,reserved_1y,all_upfront,2.45243,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:15.540100 +AWS,eu-north-1,r6idn.8xlarge,reserved_1y,no_upfront,2.45243,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:02.622006 +AWS,eu-north-1,r6idn.8xlarge,reserved_1y,partial_upfront,2.45243,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:39.057225 +AWS,eu-north-1,r6idn.8xlarge,reserved_3y,all_upfront,2.45243,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:06.961837 +AWS,eu-north-1,r6idn.8xlarge,reserved_3y,no_upfront,2.45243,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:09.983858 +AWS,eu-north-1,r6idn.8xlarge,reserved_3y,partial_upfront,2.45243,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:48.534800 +AWS,eu-north-1,r6idn.8xlarge,spot,NA,1.058118,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502233 +AWS,eu-north-1,r6idn.large,on_demand,NA,0.20709,USD,AWS Pricing API,2025-11-30T09:08:18.641558 +AWS,eu-north-1,r6idn.large,reserved_1y,all_upfront,0.121804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:47.434552 +AWS,eu-north-1,r6idn.large,reserved_1y,no_upfront,0.121804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:34.360128 +AWS,eu-north-1,r6idn.large,reserved_1y,partial_upfront,0.121804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:11.206740 +AWS,eu-north-1,r6idn.large,reserved_3y,all_upfront,0.040601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:39.523697 +AWS,eu-north-1,r6idn.large,reserved_3y,no_upfront,0.040601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:41.412277 +AWS,eu-north-1,r6idn.large,reserved_3y,partial_upfront,0.040601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:20.809686 +AWS,eu-north-1,r6idn.large,spot,NA,0.064471,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501625 +AWS,eu-north-1,r6idn.xlarge,on_demand,NA,0.41418,USD,AWS Pricing API,2025-11-30T09:08:10.636487 +AWS,eu-north-1,r6idn.xlarge,reserved_1y,all_upfront,0.540639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:39.445758 +AWS,eu-north-1,r6idn.xlarge,reserved_1y,no_upfront,0.540639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:26.250936 +AWS,eu-north-1,r6idn.xlarge,reserved_1y,partial_upfront,0.540639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:03.253252 +AWS,eu-north-1,r6idn.xlarge,reserved_3y,all_upfront,0.180213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:31.713424 +AWS,eu-north-1,r6idn.xlarge,reserved_3y,no_upfront,0.180213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:33.234512 +AWS,eu-north-1,r6idn.xlarge,reserved_3y,partial_upfront,0.180213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:12.860873 +AWS,eu-north-1,r6idn.xlarge,spot,NA,0.136243,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501451 +AWS,eu-north-1,r6in.12xlarge,on_demand,NA,4.46472,USD,AWS Pricing API,2025-11-30T09:08:03.357010 +AWS,eu-north-1,r6in.12xlarge,reserved_1y,all_upfront,2.80058,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:32.134471 +AWS,eu-north-1,r6in.12xlarge,reserved_1y,no_upfront,2.80058,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:18.846902 +AWS,eu-north-1,r6in.12xlarge,reserved_1y,partial_upfront,2.80058,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:55.899804 +AWS,eu-north-1,r6in.12xlarge,reserved_3y,all_upfront,2.80058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:24.561196 +AWS,eu-north-1,r6in.12xlarge,reserved_3y,no_upfront,2.80058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:25.787869 +AWS,eu-north-1,r6in.12xlarge,reserved_3y,partial_upfront,2.80058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:05.627103 +AWS,eu-north-1,r6in.12xlarge,spot,NA,1.426497,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501287 +AWS,eu-north-1,r6in.16xlarge,on_demand,NA,5.95296,USD,AWS Pricing API,2025-11-30T09:07:55.121507 +AWS,eu-north-1,r6in.16xlarge,reserved_1y,all_upfront,3.48516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:23.940142 +AWS,eu-north-1,r6in.16xlarge,reserved_1y,no_upfront,3.48516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:10.489095 +AWS,eu-north-1,r6in.16xlarge,reserved_1y,partial_upfront,3.48516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:47.752350 +AWS,eu-north-1,r6in.16xlarge,reserved_3y,all_upfront,1.16172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:16.509850 +AWS,eu-north-1,r6in.16xlarge,reserved_3y,no_upfront,1.16172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:17.428678 +AWS,eu-north-1,r6in.16xlarge,reserved_3y,partial_upfront,1.16172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:57.420507 +AWS,eu-north-1,r6in.16xlarge,spot,NA,1.724811,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501102 +AWS,eu-north-1,r6in.24xlarge,on_demand,NA,8.92944,USD,AWS Pricing API,2025-11-30T09:08:54.554894 +AWS,eu-north-1,r6in.24xlarge,reserved_1y,all_upfront,7.018557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:23.630900 +AWS,eu-north-1,r6in.24xlarge,reserved_1y,no_upfront,7.018557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:10.871863 +AWS,eu-north-1,r6in.24xlarge,reserved_1y,partial_upfront,7.018557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:47.092465 +AWS,eu-north-1,r6in.24xlarge,reserved_3y,all_upfront,3.509272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:14.850600 +AWS,eu-north-1,r6in.24xlarge,reserved_3y,no_upfront,3.509272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:18.302743 +AWS,eu-north-1,r6in.24xlarge,reserved_3y,partial_upfront,3.509272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:56.565919 +AWS,eu-north-1,r6in.24xlarge,spot,NA,2.592506,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502397 +AWS,eu-north-1,r6in.2xlarge,on_demand,NA,0.74412,USD,AWS Pricing API,2025-11-30T09:08:57.400028 +AWS,eu-north-1,r6in.2xlarge,reserved_1y,all_upfront,0.435616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:26.460734 +AWS,eu-north-1,r6in.2xlarge,reserved_1y,no_upfront,0.435616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:13.750483 +AWS,eu-north-1,r6in.2xlarge,reserved_1y,partial_upfront,0.435616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:49.910896 +AWS,eu-north-1,r6in.2xlarge,reserved_3y,all_upfront,0.145205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:17.651874 +AWS,eu-north-1,r6in.2xlarge,reserved_3y,no_upfront,0.145205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:21.192977 +AWS,eu-north-1,r6in.2xlarge,reserved_3y,partial_upfront,0.145205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:59.386315 +AWS,eu-north-1,r6in.2xlarge,spot,NA,0.288051,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502435 +AWS,eu-north-1,r6in.32xlarge,on_demand,NA,11.90592,USD,AWS Pricing API,2025-11-30T09:08:37.869049 +AWS,eu-north-1,r6in.32xlarge,reserved_1y,all_upfront,10.403361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:06.865467 +AWS,eu-north-1,r6in.32xlarge,reserved_1y,no_upfront,10.403361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:53.870972 +AWS,eu-north-1,r6in.32xlarge,reserved_1y,partial_upfront,10.403361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:30.436047 +AWS,eu-north-1,r6in.32xlarge,reserved_3y,all_upfront,5.201687,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:58.451089 +AWS,eu-north-1,r6in.32xlarge,reserved_3y,no_upfront,5.201687,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:01.147688 +AWS,eu-north-1,r6in.32xlarge,reserved_3y,partial_upfront,5.201687,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:39.936812 +AWS,eu-north-1,r6in.32xlarge,spot,NA,3.507706,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502005 +AWS,eu-north-1,r6in.4xlarge,on_demand,NA,1.48824,USD,AWS Pricing API,2025-11-30T09:08:59.831941 +AWS,eu-north-1,r6in.4xlarge,reserved_1y,all_upfront,1.09589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:28.884137 +AWS,eu-north-1,r6in.4xlarge,reserved_1y,no_upfront,1.09589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:16.226338 +AWS,eu-north-1,r6in.4xlarge,reserved_1y,partial_upfront,1.09589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:52.329873 +AWS,eu-north-1,r6in.4xlarge,reserved_3y,all_upfront,1.09589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:20.046853 +AWS,eu-north-1,r6in.4xlarge,reserved_3y,no_upfront,1.09589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:23.688094 +AWS,eu-north-1,r6in.4xlarge,reserved_3y,partial_upfront,1.09589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:01.833919 +AWS,eu-north-1,r6in.4xlarge,spot,NA,0.490888,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502510 +AWS,eu-north-1,r6in.8xlarge,on_demand,NA,2.97648,USD,AWS Pricing API,2025-11-30T09:08:47.982825 +AWS,eu-north-1,r6in.8xlarge,reserved_1y,all_upfront,2.33956,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:17.015820 +AWS,eu-north-1,r6in.8xlarge,reserved_1y,no_upfront,2.33956,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:04.135105 +AWS,eu-north-1,r6in.8xlarge,reserved_1y,partial_upfront,2.33956,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:40.544671 +AWS,eu-north-1,r6in.8xlarge,reserved_3y,all_upfront,1.169773,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:08.411470 +AWS,eu-north-1,r6in.8xlarge,reserved_3y,no_upfront,1.169773,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:11.489123 +AWS,eu-north-1,r6in.8xlarge,reserved_3y,partial_upfront,1.169773,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:50.011555 +AWS,eu-north-1,r6in.8xlarge,spot,NA,0.928632,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502258 +AWS,eu-north-1,r6in.large,on_demand,NA,0.18603,USD,AWS Pricing API,2025-11-30T09:09:02.498176 +AWS,eu-north-1,r6in.large,reserved_1y,all_upfront,0.13699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:31.604578 +AWS,eu-north-1,r6in.large,reserved_1y,no_upfront,0.13699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:18.950198 +AWS,eu-north-1,r6in.large,reserved_1y,partial_upfront,0.13699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:55.023619 +AWS,eu-north-1,r6in.large,reserved_3y,all_upfront,0.13699,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:22.667670 +AWS,eu-north-1,r6in.large,reserved_3y,no_upfront,0.13699,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:26.447066 +AWS,eu-north-1,r6in.large,reserved_3y,partial_upfront,0.13699,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:04.569085 +AWS,eu-north-1,r6in.large,spot,NA,0.056356,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502536 +AWS,eu-north-1,r6in.xlarge,on_demand,NA,0.37206,USD,AWS Pricing API,2025-11-30T09:09:00.232532 +AWS,eu-north-1,r6in.xlarge,reserved_1y,all_upfront,0.27397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:29.286601 +AWS,eu-north-1,r6in.xlarge,reserved_1y,no_upfront,0.27397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:16.638133 +AWS,eu-north-1,r6in.xlarge,reserved_1y,partial_upfront,0.27397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:52.745192 +AWS,eu-north-1,r6in.xlarge,reserved_3y,all_upfront,0.27397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:20.439354 +AWS,eu-north-1,r6in.xlarge,reserved_3y,no_upfront,0.27397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:24.106793 +AWS,eu-north-1,r6in.xlarge,reserved_3y,partial_upfront,0.27397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:02.278415 +AWS,eu-north-1,r6in.xlarge,spot,NA,0.135923,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502497 +AWS,eu-north-1,r7a.48xlarge,on_demand,NA,15.5328,USD,AWS Pricing API,2025-11-30T09:08:01.461642 +AWS,eu-north-1,r7a.48xlarge,reserved_1y,all_upfront,9.785638,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:30.246632 +AWS,eu-north-1,r7a.48xlarge,reserved_1y,no_upfront,9.785638,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:16.926520 +AWS,eu-north-1,r7a.48xlarge,reserved_1y,partial_upfront,9.785638,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:54.032730 +AWS,eu-north-1,r7a.48xlarge,reserved_3y,all_upfront,6.523766,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:22.708608 +AWS,eu-north-1,r7a.48xlarge,reserved_3y,no_upfront,6.523766,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:23.864518 +AWS,eu-north-1,r7a.48xlarge,reserved_3y,partial_upfront,6.523766,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:03.760962 +AWS,eu-north-1,r7a.48xlarge,spot,NA,4.527633,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501262 +AWS,eu-north-1,r7g.12xlarge,on_demand,NA,2.7336,USD,AWS Pricing API,2025-11-30T09:08:25.118262 +AWS,eu-north-1,r7g.12xlarge,reserved_1y,all_upfront,1.848516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:54.020091 +AWS,eu-north-1,r7g.12xlarge,reserved_1y,no_upfront,1.848516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:40.906464 +AWS,eu-north-1,r7g.12xlarge,reserved_1y,partial_upfront,1.848516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:17.679128 +AWS,eu-north-1,r7g.12xlarge,reserved_3y,all_upfront,0.616172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:45.863118 +AWS,eu-north-1,r7g.12xlarge,reserved_3y,no_upfront,0.616172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:48.043406 +AWS,eu-north-1,r7g.12xlarge,reserved_3y,partial_upfront,0.616172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:27.215791 +AWS,eu-north-1,r7g.12xlarge,spot,NA,0.757901,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501735 +AWS,eu-north-1,r7g.16xlarge,on_demand,NA,3.6448,USD,AWS Pricing API,2025-11-30T09:08:10.371247 +AWS,eu-north-1,r7g.16xlarge,reserved_1y,all_upfront,2.143151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:39.174266 +AWS,eu-north-1,r7g.16xlarge,reserved_1y,no_upfront,2.143151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:25.979602 +AWS,eu-north-1,r7g.16xlarge,reserved_1y,partial_upfront,2.143151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:02.986613 +AWS,eu-north-1,r7g.16xlarge,reserved_3y,all_upfront,0.714384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:31.438466 +AWS,eu-north-1,r7g.16xlarge,reserved_3y,no_upfront,0.714384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:32.941632 +AWS,eu-north-1,r7g.16xlarge,reserved_3y,partial_upfront,0.714384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:12.595916 +AWS,eu-north-1,r7g.16xlarge,spot,NA,1.036047,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501421 +AWS,eu-north-1,r7g.2xlarge,on_demand,NA,0.4556,USD,AWS Pricing API,2025-11-30T09:08:18.504565 +AWS,eu-north-1,r7g.2xlarge,reserved_1y,all_upfront,0.273344,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:47.299331 +AWS,eu-north-1,r7g.2xlarge,reserved_1y,no_upfront,0.273344,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:34.221270 +AWS,eu-north-1,r7g.2xlarge,reserved_1y,partial_upfront,0.273344,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:11.070041 +AWS,eu-north-1,r7g.2xlarge,reserved_3y,all_upfront,0.182248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:39.380645 +AWS,eu-north-1,r7g.2xlarge,reserved_3y,no_upfront,0.182248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:41.272657 +AWS,eu-north-1,r7g.2xlarge,reserved_3y,partial_upfront,0.182248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:20.677096 +AWS,eu-north-1,r7g.2xlarge,spot,NA,0.147789,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501588 +AWS,eu-north-1,r7g.4xlarge,on_demand,NA,0.9112,USD,AWS Pricing API,2025-11-30T09:08:09.031514 +AWS,eu-north-1,r7g.4xlarge,reserved_1y,all_upfront,0.6602,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:37.830621 +AWS,eu-north-1,r7g.4xlarge,reserved_1y,no_upfront,0.6602,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:24.608394 +AWS,eu-north-1,r7g.4xlarge,reserved_1y,partial_upfront,0.6602,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:01.632443 +AWS,eu-north-1,r7g.4xlarge,reserved_3y,all_upfront,0.6602,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:30.118561 +AWS,eu-north-1,r7g.4xlarge,reserved_3y,no_upfront,0.6602,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:31.565734 +AWS,eu-north-1,r7g.4xlarge,reserved_3y,partial_upfront,0.6602,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:11.268100 +AWS,eu-north-1,r7g.4xlarge,spot,NA,0.287127,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501382 +AWS,eu-north-1,r7g.8xlarge,on_demand,NA,1.8224,USD,AWS Pricing API,2025-11-30T09:08:40.824785 +AWS,eu-north-1,r7g.8xlarge,reserved_1y,all_upfront,1.257467,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:09.814133 +AWS,eu-north-1,r7g.8xlarge,reserved_1y,no_upfront,1.257467,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:56.858572 +AWS,eu-north-1,r7g.8xlarge,reserved_1y,partial_upfront,1.257467,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:33.385258 +AWS,eu-north-1,r7g.8xlarge,reserved_3y,all_upfront,0.838289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:01.371006 +AWS,eu-north-1,r7g.8xlarge,reserved_3y,no_upfront,0.838289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:04.216503 +AWS,eu-north-1,r7g.8xlarge,reserved_3y,partial_upfront,0.838289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:42.892959 +AWS,eu-north-1,r7g.8xlarge,spot,NA,0.538338,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502110 +AWS,eu-north-1,r7g.large,on_demand,NA,0.1139,USD,AWS Pricing API,2025-11-30T09:08:35.333801 +AWS,eu-north-1,r7g.large,reserved_1y,all_upfront,0.067009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:04.289174 +AWS,eu-north-1,r7g.large,reserved_1y,no_upfront,0.067009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:51.263182 +AWS,eu-north-1,r7g.large,reserved_1y,partial_upfront,0.067009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:27.892535 +AWS,eu-north-1,r7g.large,reserved_3y,all_upfront,0.022336,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:55.915365 +AWS,eu-north-1,r7g.large,reserved_3y,no_upfront,0.022336,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:58.503572 +AWS,eu-north-1,r7g.large,reserved_3y,partial_upfront,0.022336,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:37.396511 +AWS,eu-north-1,r7g.large,spot,NA,0.03792,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501949 +AWS,eu-north-1,r7g.xlarge,on_demand,NA,0.2278,USD,AWS Pricing API,2025-11-30T09:08:37.732405 +AWS,eu-north-1,r7g.xlarge,reserved_1y,all_upfront,0.323516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:06.731237 +AWS,eu-north-1,r7g.xlarge,reserved_1y,no_upfront,0.323516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:53.728695 +AWS,eu-north-1,r7g.xlarge,reserved_1y,partial_upfront,0.323516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:30.300929 +AWS,eu-north-1,r7g.xlarge,reserved_3y,all_upfront,0.107839,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:58.312677 +AWS,eu-north-1,r7g.xlarge,reserved_3y,no_upfront,0.107839,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:01.009063 +AWS,eu-north-1,r7g.xlarge,reserved_3y,partial_upfront,0.107839,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:39.803058 +AWS,eu-north-1,r7g.xlarge,spot,NA,0.075531,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501989 +AWS,eu-north-1,r7gd.12xlarge,on_demand,NA,3.4474,USD,AWS Pricing API,2025-11-30T09:08:59.302876 +AWS,eu-north-1,r7gd.12xlarge,reserved_1y,all_upfront,3.888584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:28.347591 +AWS,eu-north-1,r7gd.12xlarge,reserved_1y,no_upfront,3.888584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:15.676800 +AWS,eu-north-1,r7gd.12xlarge,reserved_1y,partial_upfront,3.888584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:51.796258 +AWS,eu-north-1,r7gd.12xlarge,reserved_3y,all_upfront,1.296195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:19.510319 +AWS,eu-north-1,r7gd.12xlarge,reserved_3y,no_upfront,1.296195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:23.127550 +AWS,eu-north-1,r7gd.12xlarge,reserved_3y,partial_upfront,1.296195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:01.277984 +AWS,eu-north-1,r7gd.12xlarge,spot,NA,0.998648,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502501 +AWS,eu-north-1,r7gd.16xlarge,on_demand,NA,4.5965,USD,AWS Pricing API,2025-11-30T09:08:54.691354 +AWS,eu-north-1,r7gd.16xlarge,reserved_1y,all_upfront,3.677177,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:23.765027 +AWS,eu-north-1,r7gd.16xlarge,reserved_1y,no_upfront,3.677177,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:11.006804 +AWS,eu-north-1,r7gd.16xlarge,reserved_1y,partial_upfront,3.677177,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:47.231566 +AWS,eu-north-1,r7gd.16xlarge,reserved_3y,all_upfront,1.838592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:14.981227 +AWS,eu-north-1,r7gd.16xlarge,reserved_3y,no_upfront,1.838592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:18.437687 +AWS,eu-north-1,r7gd.16xlarge,reserved_3y,partial_upfront,1.838592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:56.697686 +AWS,eu-north-1,r7gd.16xlarge,spot,NA,1.35098,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502379 +AWS,eu-north-1,r7gd.2xlarge,on_demand,NA,0.5746,USD,AWS Pricing API,2025-11-30T09:08:24.045034 +AWS,eu-north-1,r7gd.2xlarge,reserved_1y,all_upfront,0.337785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:52.852496 +AWS,eu-north-1,r7gd.2xlarge,reserved_1y,no_upfront,0.337785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:39.815479 +AWS,eu-north-1,r7gd.2xlarge,reserved_1y,partial_upfront,0.337785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:16.607534 +AWS,eu-north-1,r7gd.2xlarge,reserved_3y,all_upfront,0.112595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:44.809849 +AWS,eu-north-1,r7gd.2xlarge,reserved_3y,no_upfront,0.112595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:46.938508 +AWS,eu-north-1,r7gd.2xlarge,reserved_3y,partial_upfront,0.112595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:26.156610 +AWS,eu-north-1,r7gd.2xlarge,spot,NA,0.186884,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501739 +AWS,eu-north-1,r7gd.4xlarge,on_demand,NA,1.1491,USD,AWS Pricing API,2025-11-30T09:08:44.208013 +AWS,eu-north-1,r7gd.4xlarge,reserved_1y,all_upfront,0.919298,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:13.237164 +AWS,eu-north-1,r7gd.4xlarge,reserved_1y,no_upfront,0.919298,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:00.283590 +AWS,eu-north-1,r7gd.4xlarge,reserved_1y,partial_upfront,0.919298,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:36.767199 +AWS,eu-north-1,r7gd.4xlarge,reserved_3y,all_upfront,0.459633,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:04.708624 +AWS,eu-north-1,r7gd.4xlarge,reserved_3y,no_upfront,0.459633,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:07.663915 +AWS,eu-north-1,r7gd.4xlarge,reserved_3y,partial_upfront,0.459633,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:46.255043 +AWS,eu-north-1,r7gd.4xlarge,spot,NA,0.357632,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502199 +AWS,eu-north-1,r7gd.8xlarge,on_demand,NA,2.2982,USD,AWS Pricing API,2025-11-30T09:08:38.275895 +AWS,eu-north-1,r7gd.8xlarge,reserved_1y,all_upfront,1.6841,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:07.267555 +AWS,eu-north-1,r7gd.8xlarge,reserved_1y,no_upfront,1.6841,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:54.277721 +AWS,eu-north-1,r7gd.8xlarge,reserved_1y,partial_upfront,1.6841,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:30.837095 +AWS,eu-north-1,r7gd.8xlarge,reserved_3y,all_upfront,1.6841,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:58.853093 +AWS,eu-north-1,r7gd.8xlarge,reserved_3y,no_upfront,1.6841,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:01.573455 +AWS,eu-north-1,r7gd.8xlarge,reserved_3y,partial_upfront,1.6841,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:40.331867 +AWS,eu-north-1,r7gd.8xlarge,spot,NA,0.957143,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501985 +AWS,eu-north-1,r7gd.large,on_demand,NA,0.1436,USD,AWS Pricing API,2025-11-30T09:08:02.826266 +AWS,eu-north-1,r7gd.large,reserved_1y,all_upfront,0.1053,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:31.592469 +AWS,eu-north-1,r7gd.large,reserved_1y,no_upfront,0.1053,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:18.303900 +AWS,eu-north-1,r7gd.large,reserved_1y,partial_upfront,0.1053,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:55.365941 +AWS,eu-north-1,r7gd.large,reserved_3y,all_upfront,0.1053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:24.033684 +AWS,eu-north-1,r7gd.large,reserved_3y,no_upfront,0.1053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:25.246722 +AWS,eu-north-1,r7gd.large,reserved_3y,partial_upfront,0.1053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:05.096267 +AWS,eu-north-1,r7gd.large,spot,NA,0.045556,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501282 +AWS,eu-north-1,r7gd.xlarge,on_demand,NA,0.2873,USD,AWS Pricing API,2025-11-30T09:08:12.293312 +AWS,eu-north-1,r7gd.xlarge,reserved_1y,all_upfront,0.229874,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:41.085319 +AWS,eu-north-1,r7gd.xlarge,reserved_1y,no_upfront,0.229874,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:27.931574 +AWS,eu-north-1,r7gd.xlarge,reserved_1y,partial_upfront,0.229874,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:04.866945 +AWS,eu-north-1,r7gd.xlarge,reserved_3y,all_upfront,0.114958,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:33.303940 +AWS,eu-north-1,r7gd.xlarge,reserved_3y,no_upfront,0.114958,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:34.899499 +AWS,eu-north-1,r7gd.xlarge,reserved_3y,partial_upfront,0.114958,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:14.466841 +AWS,eu-north-1,r7gd.xlarge,spot,NA,0.091301,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501500 +AWS,eu-north-1,r7i.12xlarge,on_demand,NA,3.3768,USD,AWS Pricing API,2025-11-30T09:08:47.171006 +AWS,eu-north-1,r7i.12xlarge,reserved_1y,all_upfront,2.127389,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:16.212820 +AWS,eu-north-1,r7i.12xlarge,reserved_1y,no_upfront,2.127389,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:03.309894 +AWS,eu-north-1,r7i.12xlarge,reserved_1y,partial_upfront,2.127389,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:39.737548 +AWS,eu-north-1,r7i.12xlarge,reserved_3y,all_upfront,1.418256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:07.619864 +AWS,eu-north-1,r7i.12xlarge,reserved_3y,no_upfront,1.418256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:10.665684 +AWS,eu-north-1,r7i.12xlarge,reserved_3y,partial_upfront,1.418256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:49.200616 +AWS,eu-north-1,r7i.12xlarge,spot,NA,1.044784,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502270 +AWS,eu-north-1,r7i.16xlarge,on_demand,NA,4.5024,USD,AWS Pricing API,2025-11-30T09:08:45.288216 +AWS,eu-north-1,r7i.16xlarge,reserved_1y,all_upfront,2.97834,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:14.328259 +AWS,eu-north-1,r7i.16xlarge,reserved_1y,no_upfront,2.97834,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:01.384411 +AWS,eu-north-1,r7i.16xlarge,reserved_1y,partial_upfront,2.97834,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:37.842108 +AWS,eu-north-1,r7i.16xlarge,reserved_3y,all_upfront,2.97834,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:05.764405 +AWS,eu-north-1,r7i.16xlarge,reserved_3y,no_upfront,2.97834,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:08.759590 +AWS,eu-north-1,r7i.16xlarge,reserved_3y,partial_upfront,2.97834,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:47.338785 +AWS,eu-north-1,r7i.16xlarge,spot,NA,1.3595,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502207 +AWS,eu-north-1,r7i.24xlarge,on_demand,NA,6.7536,USD,AWS Pricing API,2025-11-30T09:08:42.029217 +AWS,eu-north-1,r7i.24xlarge,reserved_1y,all_upfront,4.46751,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:11.031651 +AWS,eu-north-1,r7i.24xlarge,reserved_1y,no_upfront,4.46751,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:58.080718 +AWS,eu-north-1,r7i.24xlarge,reserved_1y,partial_upfront,4.46751,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:34.613110 +AWS,eu-north-1,r7i.24xlarge,reserved_3y,all_upfront,4.46751,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:02.573113 +AWS,eu-north-1,r7i.24xlarge,reserved_3y,no_upfront,4.46751,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:05.454203 +AWS,eu-north-1,r7i.24xlarge,reserved_3y,partial_upfront,4.46751,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:44.094990 +AWS,eu-north-1,r7i.24xlarge,spot,NA,2.062059,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502127 +AWS,eu-north-1,r7i.2xlarge,on_demand,NA,0.5628,USD,AWS Pricing API,2025-11-30T09:08:44.342674 +AWS,eu-north-1,r7i.2xlarge,reserved_1y,all_upfront,0.380594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:13.376028 +AWS,eu-north-1,r7i.2xlarge,reserved_1y,no_upfront,0.380594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:00.421025 +AWS,eu-north-1,r7i.2xlarge,reserved_1y,partial_upfront,0.380594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:36.901055 +AWS,eu-north-1,r7i.2xlarge,reserved_3y,all_upfront,0.126865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:04.840067 +AWS,eu-north-1,r7i.2xlarge,reserved_3y,no_upfront,0.126865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:07.799233 +AWS,eu-north-1,r7i.2xlarge,reserved_3y,partial_upfront,0.126865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:46.390659 +AWS,eu-north-1,r7i.2xlarge,spot,NA,0.197067,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502182 +AWS,eu-north-1,r7i.48xlarge,on_demand,NA,13.5072,USD,AWS Pricing API,2025-11-30T09:09:04.653365 +AWS,eu-north-1,r7i.48xlarge,reserved_1y,all_upfront,8.93501,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:33.874776 +AWS,eu-north-1,r7i.48xlarge,reserved_1y,no_upfront,8.93501,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:21.127883 +AWS,eu-north-1,r7i.48xlarge,reserved_1y,partial_upfront,8.93501,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:57.191880 +AWS,eu-north-1,r7i.48xlarge,reserved_3y,all_upfront,8.93501,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:24.777940 +AWS,eu-north-1,r7i.48xlarge,reserved_3y,no_upfront,8.93501,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:28.647151 +AWS,eu-north-1,r7i.48xlarge,reserved_3y,partial_upfront,8.93501,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:50:06.711275 +AWS,eu-north-1,r7i.48xlarge,spot,NA,4.109676,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502586 +AWS,eu-north-1,r7i.4xlarge,on_demand,NA,1.1256,USD,AWS Pricing API,2025-11-30T09:08:41.895766 +AWS,eu-north-1,r7i.4xlarge,reserved_1y,all_upfront,0.709126,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:10.894988 +AWS,eu-north-1,r7i.4xlarge,reserved_1y,no_upfront,0.709126,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:57.944263 +AWS,eu-north-1,r7i.4xlarge,reserved_1y,partial_upfront,0.709126,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:34.479826 +AWS,eu-north-1,r7i.4xlarge,reserved_3y,all_upfront,0.472749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:02.440554 +AWS,eu-north-1,r7i.4xlarge,reserved_3y,no_upfront,0.472749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:05.316987 +AWS,eu-north-1,r7i.4xlarge,reserved_3y,partial_upfront,0.472749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:43.959288 +AWS,eu-north-1,r7i.4xlarge,spot,NA,0.374187,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502118 +AWS,eu-north-1,r7i.8xlarge,on_demand,NA,2.2512,USD,AWS Pricing API,2025-11-30T09:07:58.883133 +AWS,eu-north-1,r7i.8xlarge,reserved_1y,all_upfront,1.52226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:27.685274 +AWS,eu-north-1,r7i.8xlarge,reserved_1y,no_upfront,1.52226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:14.316225 +AWS,eu-north-1,r7i.8xlarge,reserved_1y,partial_upfront,1.52226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:51.495446 +AWS,eu-north-1,r7i.8xlarge,reserved_3y,all_upfront,0.50742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:20.207188 +AWS,eu-north-1,r7i.8xlarge,reserved_3y,no_upfront,0.50742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:21.257269 +AWS,eu-north-1,r7i.8xlarge,reserved_3y,partial_upfront,0.50742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:01.173620 +AWS,eu-north-1,r7i.8xlarge,spot,NA,0.715516,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501187 +AWS,eu-north-1,r7i.large,on_demand,NA,0.1407,USD,AWS Pricing API,2025-11-30T09:08:13.114179 +AWS,eu-north-1,r7i.large,reserved_1y,all_upfront,0.09307,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:41.896170 +AWS,eu-north-1,r7i.large,reserved_1y,no_upfront,0.09307,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:28.754965 +AWS,eu-north-1,r7i.large,reserved_1y,partial_upfront,0.09307,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:05.681464 +AWS,eu-north-1,r7i.large,reserved_3y,all_upfront,0.09307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:34.103382 +AWS,eu-north-1,r7i.large,reserved_3y,no_upfront,0.09307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:35.741445 +AWS,eu-north-1,r7i.large,reserved_3y,partial_upfront,0.09307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:15.283591 +AWS,eu-north-1,r7i.large,spot,NA,0.043409,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501496 +AWS,eu-north-1,r7i.metal-24xl,on_demand,NA,6.7536,USD,AWS Pricing API,2025-11-30T09:08:29.156087 +AWS,eu-north-1,r7i.metal-24xl,reserved_1y,all_upfront,4.169635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:58.071476 +AWS,eu-north-1,r7i.metal-24xl,reserved_1y,no_upfront,4.169635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:45.006821 +AWS,eu-north-1,r7i.metal-24xl,reserved_1y,partial_upfront,4.169635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:21.701443 +AWS,eu-north-1,r7i.metal-24xl,reserved_3y,all_upfront,1.389878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:49.833858 +AWS,eu-north-1,r7i.metal-24xl,reserved_3y,no_upfront,1.389878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:52.171548 +AWS,eu-north-1,r7i.metal-24xl,reserved_3y,partial_upfront,1.389878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:31.238833 +AWS,eu-north-1,r7i.metal-24xl,spot,NA,1.973354,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501816 +AWS,eu-north-1,r7i.metal-48xl,on_demand,NA,13.5072,USD,AWS Pricing API,2025-11-30T09:08:48.648009 +AWS,eu-north-1,r7i.metal-48xl,reserved_1y,all_upfront,19.179909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:17.686261 +AWS,eu-north-1,r7i.metal-48xl,reserved_1y,no_upfront,19.179909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:04.835043 +AWS,eu-north-1,r7i.metal-48xl,reserved_1y,partial_upfront,19.179909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:41.218919 +AWS,eu-north-1,r7i.metal-48xl,reserved_3y,all_upfront,6.393303,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:09.077767 +AWS,eu-north-1,r7i.metal-48xl,reserved_3y,no_upfront,6.393303,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:12.267438 +AWS,eu-north-1,r7i.metal-48xl,reserved_3y,partial_upfront,6.393303,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:50.683001 +AWS,eu-north-1,r7i.metal-48xl,spot,NA,3.865325,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502287 +AWS,eu-north-1,r7i.xlarge,on_demand,NA,0.2814,USD,AWS Pricing API,2025-11-30T09:08:24.571341 +AWS,eu-north-1,r7i.xlarge,reserved_1y,all_upfront,0.177224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:53.468964 +AWS,eu-north-1,r7i.xlarge,reserved_1y,no_upfront,0.177224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:40.356960 +AWS,eu-north-1,r7i.xlarge,reserved_1y,partial_upfront,0.177224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:17.141043 +AWS,eu-north-1,r7i.xlarge,reserved_3y,all_upfront,0.118168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:45.337104 +AWS,eu-north-1,r7i.xlarge,reserved_3y,no_upfront,0.118168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:47.491427 +AWS,eu-north-1,r7i.xlarge,reserved_3y,partial_upfront,0.118168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:26.686590 +AWS,eu-north-1,r7i.xlarge,spot,NA,0.089528,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501743 +AWS,eu-north-1,r8g.12xlarge,on_demand,NA,3.00696,USD,AWS Pricing API,2025-11-30T09:08:31.300505 +AWS,eu-north-1,r8g.12xlarge,reserved_1y,all_upfront,2.17879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:00.229211 +AWS,eu-north-1,r8g.12xlarge,reserved_1y,no_upfront,2.17879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:47.188759 +AWS,eu-north-1,r8g.12xlarge,reserved_1y,partial_upfront,2.17879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:23.847669 +AWS,eu-north-1,r8g.12xlarge,reserved_3y,all_upfront,2.17879,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:51.954862 +AWS,eu-north-1,r8g.12xlarge,reserved_3y,no_upfront,2.17879,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:54.361913 +AWS,eu-north-1,r8g.12xlarge,reserved_3y,partial_upfront,2.17879,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:33.381563 +AWS,eu-north-1,r8g.12xlarge,spot,NA,0.854778,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501885 +AWS,eu-north-1,r8g.16xlarge,on_demand,NA,4.00928,USD,AWS Pricing API,2025-11-30T09:08:54.150810 +AWS,eu-north-1,r8g.16xlarge,reserved_1y,all_upfront,2.462785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:23.214450 +AWS,eu-north-1,r8g.16xlarge,reserved_1y,no_upfront,2.462785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:23:10.460353 +AWS,eu-north-1,r8g.16xlarge,reserved_1y,partial_upfront,2.462785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:46.685660 +AWS,eu-north-1,r8g.16xlarge,reserved_3y,all_upfront,0.820928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:14.454157 +AWS,eu-north-1,r8g.16xlarge,reserved_3y,no_upfront,0.820928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:17.889669 +AWS,eu-north-1,r8g.16xlarge,reserved_3y,partial_upfront,0.820928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:56.157773 +AWS,eu-north-1,r8g.16xlarge,spot,NA,1.149411,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502375 +AWS,eu-north-1,r8g.24xlarge,on_demand,NA,6.01392,USD,AWS Pricing API,2025-11-30T09:08:22.692660 +AWS,eu-north-1,r8g.24xlarge,reserved_1y,all_upfront,8.540868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:51.503151 +AWS,eu-north-1,r8g.24xlarge,reserved_1y,no_upfront,8.540868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:38.452392 +AWS,eu-north-1,r8g.24xlarge,reserved_1y,partial_upfront,8.540868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:15.264121 +AWS,eu-north-1,r8g.24xlarge,reserved_3y,all_upfront,2.846956,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:43.492821 +AWS,eu-north-1,r8g.24xlarge,reserved_3y,no_upfront,2.846956,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:45.568502 +AWS,eu-north-1,r8g.24xlarge,reserved_3y,partial_upfront,2.846956,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:24.827255 +AWS,eu-north-1,r8g.24xlarge,spot,NA,1.772426,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501697 +AWS,eu-north-1,r8g.2xlarge,on_demand,NA,0.50116,USD,AWS Pricing API,2025-11-30T09:08:35.065331 +AWS,eu-north-1,r8g.2xlarge,reserved_1y,all_upfront,0.314138,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:04.011829 +AWS,eu-north-1,r8g.2xlarge,reserved_1y,no_upfront,0.314138,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:50.993363 +AWS,eu-north-1,r8g.2xlarge,reserved_1y,partial_upfront,0.314138,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:27.626428 +AWS,eu-north-1,r8g.2xlarge,reserved_3y,all_upfront,0.209419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:55.650368 +AWS,eu-north-1,r8g.2xlarge,reserved_3y,no_upfront,0.209419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:58.222863 +AWS,eu-north-1,r8g.2xlarge,reserved_3y,partial_upfront,0.209419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:37.130736 +AWS,eu-north-1,r8g.2xlarge,spot,NA,0.162916,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501958 +AWS,eu-north-1,r8g.48xlarge,on_demand,NA,12.02784,USD,AWS Pricing API,2025-11-30T09:08:21.207353 +AWS,eu-north-1,r8g.48xlarge,reserved_1y,all_upfront,8.300194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:50.002019 +AWS,eu-north-1,r8g.48xlarge,reserved_1y,no_upfront,8.300194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:36.952624 +AWS,eu-north-1,r8g.48xlarge,reserved_1y,partial_upfront,8.300194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:13.778807 +AWS,eu-north-1,r8g.48xlarge,reserved_3y,all_upfront,5.533451,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:42.029024 +AWS,eu-north-1,r8g.48xlarge,reserved_3y,no_upfront,5.533451,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:44.037261 +AWS,eu-north-1,r8g.48xlarge,reserved_3y,partial_upfront,5.533451,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:23.358258 +AWS,eu-north-1,r8g.48xlarge,spot,NA,3.835573,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501637 +AWS,eu-north-1,r8g.4xlarge,on_demand,NA,1.00232,USD,AWS Pricing API,2025-11-30T09:08:39.485877 +AWS,eu-north-1,r8g.4xlarge,reserved_1y,all_upfront,0.69173,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:08.479469 +AWS,eu-north-1,r8g.4xlarge,reserved_1y,no_upfront,0.69173,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:55.503728 +AWS,eu-north-1,r8g.4xlarge,reserved_1y,partial_upfront,0.69173,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:32.051158 +AWS,eu-north-1,r8g.4xlarge,reserved_3y,all_upfront,0.461137,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:11:00.040769 +AWS,eu-north-1,r8g.4xlarge,reserved_3y,no_upfront,0.461137,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:02.836562 +AWS,eu-north-1,r8g.4xlarge,reserved_3y,partial_upfront,0.461137,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:41.547178 +AWS,eu-north-1,r8g.4xlarge,spot,NA,0.31574,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502026 +AWS,eu-north-1,r8g.8xlarge,on_demand,NA,2.00464,USD,AWS Pricing API,2025-11-30T09:08:00.358747 +AWS,eu-north-1,r8g.8xlarge,reserved_1y,all_upfront,1.45253,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:29.169011 +AWS,eu-north-1,r8g.8xlarge,reserved_1y,no_upfront,1.45253,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:15.826704 +AWS,eu-north-1,r8g.8xlarge,reserved_1y,partial_upfront,1.45253,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:52.962486 +AWS,eu-north-1,r8g.8xlarge,reserved_3y,all_upfront,1.45253,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:21.652782 +AWS,eu-north-1,r8g.8xlarge,reserved_3y,no_upfront,1.45253,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:22.770696 +AWS,eu-north-1,r8g.8xlarge,reserved_3y,partial_upfront,1.45253,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:02.660327 +AWS,eu-north-1,r8g.8xlarge,spot,NA,0.617664,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501225 +AWS,eu-north-1,r8g.large,on_demand,NA,0.12529,USD,AWS Pricing API,2025-11-30T09:08:38.007113 +AWS,eu-north-1,r8g.large,reserved_1y,all_upfront,0.10549,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:06:07.001978 +AWS,eu-north-1,r8g.large,reserved_1y,no_upfront,0.10549,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:54.007266 +AWS,eu-north-1,r8g.large,reserved_1y,partial_upfront,0.10549,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:30.569762 +AWS,eu-north-1,r8g.large,reserved_3y,all_upfront,0.05275,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:58.582168 +AWS,eu-north-1,r8g.large,reserved_3y,no_upfront,0.05275,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:28:01.286252 +AWS,eu-north-1,r8g.large,reserved_3y,partial_upfront,0.05275,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:40.069814 +AWS,eu-north-1,r8g.large,spot,NA,0.039715,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.502013 +AWS,eu-north-1,r8g.xlarge,on_demand,NA,0.25058,USD,AWS Pricing API,2025-11-30T09:08:20.805824 +AWS,eu-north-1,r8g.xlarge,reserved_1y,all_upfront,0.157069,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:49.594699 +AWS,eu-north-1,r8g.xlarge,reserved_1y,no_upfront,0.157069,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:36.533891 +AWS,eu-north-1,r8g.xlarge,reserved_1y,partial_upfront,0.157069,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:44:13.375779 +AWS,eu-north-1,r8g.xlarge,reserved_3y,all_upfront,0.10471,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:41.635692 +AWS,eu-north-1,r8g.xlarge,reserved_3y,no_upfront,0.10471,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:43.612997 +AWS,eu-north-1,r8g.xlarge,reserved_3y,partial_upfront,0.10471,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:49:22.963174 +AWS,eu-north-1,r8g.xlarge,spot,NA,0.08357,USD,AWS EC2 API (90-day avg),2025-11-30T09:58:46.501633 +AWS,eu-west-1,c5.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:06:10.270216 +AWS,eu-west-1,c5.12xlarge,reserved_1y,all_upfront,1.354795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:39.142669 +AWS,eu-west-1,c5.12xlarge,reserved_1y,no_upfront,1.354795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:24.473156 +AWS,eu-west-1,c5.12xlarge,reserved_1y,partial_upfront,1.354795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:03.477075 +AWS,eu-west-1,c5.12xlarge,reserved_3y,all_upfront,0.451598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:33.798608 +AWS,eu-west-1,c5.12xlarge,reserved_3y,no_upfront,0.451598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:30.696751 +AWS,eu-west-1,c5.12xlarge,reserved_3y,partial_upfront,0.451598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:13.354080 +AWS,eu-west-1,c5.12xlarge,spot,NA,1.046787,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730800 +AWS,eu-west-1,c5.18xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T09:06:18.751910 +AWS,eu-west-1,c5.18xlarge,reserved_1y,all_upfront,3.898402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:47.537706 +AWS,eu-west-1,c5.18xlarge,reserved_1y,no_upfront,3.898402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:32.995266 +AWS,eu-west-1,c5.18xlarge,reserved_1y,partial_upfront,3.898402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:11.812460 +AWS,eu-west-1,c5.18xlarge,reserved_3y,all_upfront,1.299467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:42.001959 +AWS,eu-west-1,c5.18xlarge,reserved_3y,no_upfront,1.299467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:39.258561 +AWS,eu-west-1,c5.18xlarge,reserved_3y,partial_upfront,1.299467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:21.726486 +AWS,eu-west-1,c5.18xlarge,spot,NA,1.574857,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731153 +AWS,eu-west-1,c5.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:05:22.846904 +AWS,eu-west-1,c5.24xlarge,reserved_1y,all_upfront,3.68684,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:52.066549 +AWS,eu-west-1,c5.24xlarge,reserved_1y,no_upfront,3.68684,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:36.974600 +AWS,eu-west-1,c5.24xlarge,reserved_1y,partial_upfront,3.68684,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:16.827315 +AWS,eu-west-1,c5.24xlarge,reserved_3y,all_upfront,1.843613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:47.850565 +AWS,eu-west-1,c5.24xlarge,reserved_3y,no_upfront,1.843613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:42.849328 +AWS,eu-west-1,c5.24xlarge,reserved_3y,partial_upfront,1.843613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:26.785411 +AWS,eu-west-1,c5.24xlarge,spot,NA,2.12778,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728315 +AWS,eu-west-1,c5.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T09:06:03.025340 +AWS,eu-west-1,c5.4xlarge,reserved_1y,all_upfront,0.614845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:31.881099 +AWS,eu-west-1,c5.4xlarge,reserved_1y,no_upfront,0.614845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:17.225541 +AWS,eu-west-1,c5.4xlarge,reserved_1y,partial_upfront,0.614845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:56.297596 +AWS,eu-west-1,c5.4xlarge,reserved_3y,all_upfront,0.307615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:26.748908 +AWS,eu-west-1,c5.4xlarge,reserved_3y,no_upfront,0.307615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:23.323012 +AWS,eu-west-1,c5.4xlarge,reserved_3y,partial_upfront,0.307615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:06.226876 +AWS,eu-west-1,c5.4xlarge,spot,NA,0.363278,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729925 +AWS,eu-west-1,c5.9xlarge,on_demand,NA,1.728,USD,AWS Pricing API,2025-11-30T09:05:22.164539 +AWS,eu-west-1,c5.9xlarge,reserved_1y,all_upfront,1.382758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:51.381110 +AWS,eu-west-1,c5.9xlarge,reserved_1y,no_upfront,1.382758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:36.294338 +AWS,eu-west-1,c5.9xlarge,reserved_1y,partial_upfront,1.382758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:16.162304 +AWS,eu-west-1,c5.9xlarge,reserved_3y,all_upfront,0.691586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:47.190963 +AWS,eu-west-1,c5.9xlarge,reserved_3y,no_upfront,0.691586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:42.155455 +AWS,eu-west-1,c5.9xlarge,reserved_3y,partial_upfront,0.691586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:26.115593 +AWS,eu-west-1,c5.9xlarge,spot,NA,0.802615,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728345 +AWS,eu-west-1,c5a.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T09:06:19.299119 +AWS,eu-west-1,c5a.12xlarge,reserved_1y,all_upfront,1.238178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:48.093965 +AWS,eu-west-1,c5a.12xlarge,reserved_1y,no_upfront,1.238178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:33.561827 +AWS,eu-west-1,c5a.12xlarge,reserved_1y,partial_upfront,1.238178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:12.350697 +AWS,eu-west-1,c5a.12xlarge,reserved_3y,all_upfront,0.825393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:42.535997 +AWS,eu-west-1,c5a.12xlarge,reserved_3y,no_upfront,0.825393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:39.810718 +AWS,eu-west-1,c5a.12xlarge,reserved_3y,partial_upfront,0.825393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:22.261046 +AWS,eu-west-1,c5a.12xlarge,spot,NA,0.97341,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731121 +AWS,eu-west-1,c5a.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T09:05:38.466004 +AWS,eu-west-1,c5a.16xlarge,reserved_1y,all_upfront,2.173,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:07.529368 +AWS,eu-west-1,c5a.16xlarge,reserved_1y,no_upfront,2.173,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:52.668277 +AWS,eu-west-1,c5a.16xlarge,reserved_1y,partial_upfront,2.173,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:32.116551 +AWS,eu-west-1,c5a.16xlarge,reserved_3y,all_upfront,2.173,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:02.903702 +AWS,eu-west-1,c5a.16xlarge,reserved_3y,no_upfront,2.173,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:58.475701 +AWS,eu-west-1,c5a.16xlarge,reserved_3y,partial_upfront,2.173,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:42.066385 +AWS,eu-west-1,c5a.16xlarge,spot,NA,1.365959,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728904 +AWS,eu-west-1,c5a.24xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T09:06:25.672423 +AWS,eu-west-1,c5a.24xlarge,reserved_1y,all_upfront,3.104169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:54.311019 +AWS,eu-west-1,c5a.24xlarge,reserved_1y,no_upfront,3.104169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:39.886395 +AWS,eu-west-1,c5a.24xlarge,reserved_1y,partial_upfront,3.104169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:18.542555 +AWS,eu-west-1,c5a.24xlarge,reserved_3y,all_upfront,2.06939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:48.660447 +AWS,eu-west-1,c5a.24xlarge,reserved_3y,no_upfront,2.06939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:46.146823 +AWS,eu-west-1,c5a.24xlarge,reserved_3y,partial_upfront,2.06939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:28.442829 +AWS,eu-west-1,c5a.24xlarge,spot,NA,1.951315,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731457 +AWS,eu-west-1,c5a.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T09:06:08.500210 +AWS,eu-west-1,c5a.2xlarge,reserved_1y,all_upfront,0.272,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:37.380537 +AWS,eu-west-1,c5a.2xlarge,reserved_1y,no_upfront,0.272,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:22.699262 +AWS,eu-west-1,c5a.2xlarge,reserved_1y,partial_upfront,0.272,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:01.692216 +AWS,eu-west-1,c5a.2xlarge,reserved_3y,all_upfront,0.272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:32.077924 +AWS,eu-west-1,c5a.2xlarge,reserved_3y,no_upfront,0.272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:28.837279 +AWS,eu-west-1,c5a.2xlarge,reserved_3y,partial_upfront,0.272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:11.608397 +AWS,eu-west-1,c5a.2xlarge,spot,NA,0.186979,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730663 +AWS,eu-west-1,c5a.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T09:05:41.105575 +AWS,eu-west-1,c5a.4xlarge,reserved_1y,all_upfront,0.412393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:10.100926 +AWS,eu-west-1,c5a.4xlarge,reserved_1y,no_upfront,0.412393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:55.264461 +AWS,eu-west-1,c5a.4xlarge,reserved_1y,partial_upfront,0.412393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:34.682284 +AWS,eu-west-1,c5a.4xlarge,reserved_3y,all_upfront,0.274798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:05.420235 +AWS,eu-west-1,c5a.4xlarge,reserved_3y,no_upfront,0.274798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:01.138805 +AWS,eu-west-1,c5a.4xlarge,reserved_3y,partial_upfront,0.274798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:44.655370 +AWS,eu-west-1,c5a.4xlarge,spot,NA,0.348414,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729011 +AWS,eu-west-1,c5a.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T09:05:33.641324 +AWS,eu-west-1,c5a.8xlarge,reserved_1y,all_upfront,1.100571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:02.661350 +AWS,eu-west-1,c5a.8xlarge,reserved_1y,no_upfront,1.100571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:47.843548 +AWS,eu-west-1,c5a.8xlarge,reserved_1y,partial_upfront,1.100571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:27.352325 +AWS,eu-west-1,c5a.8xlarge,reserved_3y,all_upfront,0.55019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:58.228245 +AWS,eu-west-1,c5a.8xlarge,reserved_3y,no_upfront,0.55019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:53.626964 +AWS,eu-west-1,c5a.8xlarge,reserved_3y,partial_upfront,0.55019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:37.245902 +AWS,eu-west-1,c5a.8xlarge,spot,NA,0.700856,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728731 +AWS,eu-west-1,c5a.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T09:05:24.362211 +AWS,eu-west-1,c5a.xlarge,reserved_1y,all_upfront,0.137196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:53.564014 +AWS,eu-west-1,c5a.xlarge,reserved_1y,no_upfront,0.137196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:38.496230 +AWS,eu-west-1,c5a.xlarge,reserved_1y,partial_upfront,0.137196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:18.300194 +AWS,eu-west-1,c5a.xlarge,reserved_3y,all_upfront,0.068399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:49.320693 +AWS,eu-west-1,c5a.xlarge,reserved_3y,no_upfront,0.068399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:44.388072 +AWS,eu-west-1,c5a.xlarge,reserved_3y,partial_upfront,0.068399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:28.269893 +AWS,eu-west-1,c5a.xlarge,spot,NA,0.103383,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728407 +AWS,eu-west-1,c5ad.12xlarge,on_demand,NA,2.352,USD,AWS Pricing API,2025-11-30T09:06:30.051411 +AWS,eu-west-1,c5ad.12xlarge,reserved_1y,all_upfront,3.561187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:58.626516 +AWS,eu-west-1,c5ad.12xlarge,reserved_1y,no_upfront,3.561187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:44.292238 +AWS,eu-west-1,c5ad.12xlarge,reserved_1y,partial_upfront,3.561187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:22.967355 +AWS,eu-west-1,c5ad.12xlarge,reserved_3y,all_upfront,1.187062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:52.924489 +AWS,eu-west-1,c5ad.12xlarge,reserved_3y,no_upfront,1.187062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:50.597823 +AWS,eu-west-1,c5ad.12xlarge,reserved_3y,partial_upfront,1.187062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:32.746299 +AWS,eu-west-1,c5ad.12xlarge,spot,NA,1.094322,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731599 +AWS,eu-west-1,c5ad.16xlarge,on_demand,NA,3.136,USD,AWS Pricing API,2025-11-30T09:06:21.629611 +AWS,eu-west-1,c5ad.16xlarge,reserved_1y,all_upfront,1.881753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:50.399988 +AWS,eu-west-1,c5ad.16xlarge,reserved_1y,no_upfront,1.881753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:35.899104 +AWS,eu-west-1,c5ad.16xlarge,reserved_1y,partial_upfront,1.881753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:14.633815 +AWS,eu-west-1,c5ad.16xlarge,reserved_3y,all_upfront,1.254584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:44.790402 +AWS,eu-west-1,c5ad.16xlarge,reserved_3y,no_upfront,1.254584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:42.164432 +AWS,eu-west-1,c5ad.16xlarge,reserved_3y,partial_upfront,1.254584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:24.537116 +AWS,eu-west-1,c5ad.16xlarge,spot,NA,1.506106,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731274 +AWS,eu-west-1,c5ad.24xlarge,on_demand,NA,4.704,USD,AWS Pricing API,2025-11-30T09:05:41.243095 +AWS,eu-west-1,c5ad.24xlarge,reserved_1y,all_upfront,2.822187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:10.235984 +AWS,eu-west-1,c5ad.24xlarge,reserved_1y,no_upfront,2.822187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:55.399547 +AWS,eu-west-1,c5ad.24xlarge,reserved_1y,partial_upfront,2.822187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:34.818347 +AWS,eu-west-1,c5ad.24xlarge,reserved_3y,all_upfront,1.881396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:05.552287 +AWS,eu-west-1,c5ad.24xlarge,reserved_3y,no_upfront,1.881396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:01.286998 +AWS,eu-west-1,c5ad.24xlarge,reserved_3y,partial_upfront,1.881396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:44.789864 +AWS,eu-west-1,c5ad.24xlarge,spot,NA,2.083355,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729047 +AWS,eu-west-1,c5ad.2xlarge,on_demand,NA,0.392,USD,AWS Pricing API,2025-11-30T09:05:30.474823 +AWS,eu-west-1,c5ad.2xlarge,reserved_1y,all_upfront,0.31,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:59.530650 +AWS,eu-west-1,c5ad.2xlarge,reserved_1y,no_upfront,0.31,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:44.671513 +AWS,eu-west-1,c5ad.2xlarge,reserved_1y,partial_upfront,0.31,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:24.236204 +AWS,eu-west-1,c5ad.2xlarge,reserved_3y,all_upfront,0.31,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:55.178264 +AWS,eu-west-1,c5ad.2xlarge,reserved_3y,no_upfront,0.31,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:50.446438 +AWS,eu-west-1,c5ad.2xlarge,reserved_3y,partial_upfront,0.31,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:34.162871 +AWS,eu-west-1,c5ad.2xlarge,spot,NA,0.1993,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728646 +AWS,eu-west-1,c5ad.4xlarge,on_demand,NA,0.784,USD,AWS Pricing API,2025-11-30T09:06:30.605483 +AWS,eu-west-1,c5ad.4xlarge,reserved_1y,all_upfront,0.47016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:59.204543 +AWS,eu-west-1,c5ad.4xlarge,reserved_1y,no_upfront,0.47016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:44.839292 +AWS,eu-west-1,c5ad.4xlarge,reserved_1y,partial_upfront,0.47016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:23.509001 +AWS,eu-west-1,c5ad.4xlarge,reserved_3y,all_upfront,0.313387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:53.453915 +AWS,eu-west-1,c5ad.4xlarge,reserved_3y,no_upfront,0.313387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:51.161985 +AWS,eu-west-1,c5ad.4xlarge,reserved_3y,partial_upfront,0.313387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:33.282521 +AWS,eu-west-1,c5ad.4xlarge,spot,NA,0.376695,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731613 +AWS,eu-west-1,c5ad.8xlarge,on_demand,NA,1.568,USD,AWS Pricing API,2025-11-30T09:05:40.822094 +AWS,eu-west-1,c5ad.8xlarge,reserved_1y,all_upfront,1.182096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:09.829885 +AWS,eu-west-1,c5ad.8xlarge,reserved_1y,no_upfront,1.182096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:54.992174 +AWS,eu-west-1,c5ad.8xlarge,reserved_1y,partial_upfront,1.182096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:34.412287 +AWS,eu-west-1,c5ad.8xlarge,reserved_3y,all_upfront,0.788032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:05.156496 +AWS,eu-west-1,c5ad.8xlarge,reserved_3y,no_upfront,0.788032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:00.861021 +AWS,eu-west-1,c5ad.8xlarge,reserved_3y,partial_upfront,0.788032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:44.380656 +AWS,eu-west-1,c5ad.8xlarge,spot,NA,0.791853,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729017 +AWS,eu-west-1,c5ad.xlarge,on_demand,NA,0.196,USD,AWS Pricing API,2025-11-30T09:06:19.977130 +AWS,eu-west-1,c5ad.xlarge,reserved_1y,all_upfront,0.144863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:48.763909 +AWS,eu-west-1,c5ad.xlarge,reserved_1y,no_upfront,0.144863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:34.248621 +AWS,eu-west-1,c5ad.xlarge,reserved_1y,partial_upfront,0.144863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:13.017710 +AWS,eu-west-1,c5ad.xlarge,reserved_3y,all_upfront,0.048288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:43.191025 +AWS,eu-west-1,c5ad.xlarge,reserved_3y,no_upfront,0.048288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:40.501439 +AWS,eu-west-1,c5ad.xlarge,reserved_3y,partial_upfront,0.048288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:22.935844 +AWS,eu-west-1,c5ad.xlarge,spot,NA,0.114785,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731185 +AWS,eu-west-1,c5d.12xlarge,on_demand,NA,2.616,USD,AWS Pricing API,2025-11-30T09:06:31.694101 +AWS,eu-west-1,c5d.12xlarge,reserved_1y,all_upfront,2.075,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:00.292305 +AWS,eu-west-1,c5d.12xlarge,reserved_1y,no_upfront,2.075,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:45.951937 +AWS,eu-west-1,c5d.12xlarge,reserved_1y,partial_upfront,2.075,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:24.589843 +AWS,eu-west-1,c5d.12xlarge,reserved_3y,all_upfront,2.075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:54.512428 +AWS,eu-west-1,c5d.12xlarge,reserved_3y,no_upfront,2.075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:52.281809 +AWS,eu-west-1,c5d.12xlarge,reserved_3y,partial_upfront,2.075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:34.347151 +AWS,eu-west-1,c5d.12xlarge,spot,NA,1.191441,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731644 +AWS,eu-west-1,c5d.18xlarge,on_demand,NA,3.924,USD,AWS Pricing API,2025-11-30T09:05:54.815515 +AWS,eu-west-1,c5d.18xlarge,reserved_1y,all_upfront,2.472,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:23.643528 +AWS,eu-west-1,c5d.18xlarge,reserved_1y,no_upfront,2.472,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:09.022483 +AWS,eu-west-1,c5d.18xlarge,reserved_1y,partial_upfront,2.472,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:48.227337 +AWS,eu-west-1,c5d.18xlarge,reserved_3y,all_upfront,2.472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:18.768162 +AWS,eu-west-1,c5d.18xlarge,reserved_3y,no_upfront,2.472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:15.045136 +AWS,eu-west-1,c5d.18xlarge,reserved_3y,partial_upfront,2.472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:58.132673 +AWS,eu-west-1,c5d.18xlarge,spot,NA,1.786917,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729596 +AWS,eu-west-1,c5d.24xlarge,on_demand,NA,5.232,USD,AWS Pricing API,2025-11-30T09:05:27.125330 +AWS,eu-west-1,c5d.24xlarge,reserved_1y,all_upfront,3.139635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:56.277097 +AWS,eu-west-1,c5d.24xlarge,reserved_1y,no_upfront,3.139635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:41.257024 +AWS,eu-west-1,c5d.24xlarge,reserved_1y,partial_upfront,3.139635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:20.989843 +AWS,eu-west-1,c5d.24xlarge,reserved_3y,all_upfront,2.093212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:51.983473 +AWS,eu-west-1,c5d.24xlarge,reserved_3y,no_upfront,2.093212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:47.154314 +AWS,eu-west-1,c5d.24xlarge,reserved_3y,partial_upfront,2.093212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:30.952821 +AWS,eu-west-1,c5d.24xlarge,spot,NA,2.377918,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728504 +AWS,eu-west-1,c5d.2xlarge,on_demand,NA,0.436,USD,AWS Pricing API,2025-11-30T09:06:15.204688 +AWS,eu-west-1,c5d.2xlarge,reserved_1y,all_upfront,0.66153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:44.023980 +AWS,eu-west-1,c5d.2xlarge,reserved_1y,no_upfront,0.66153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:29.406852 +AWS,eu-west-1,c5d.2xlarge,reserved_1y,partial_upfront,0.66153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:08.331008 +AWS,eu-west-1,c5d.2xlarge,reserved_3y,all_upfront,0.22051,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:38.580524 +AWS,eu-west-1,c5d.2xlarge,reserved_3y,no_upfront,0.22051,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:35.659011 +AWS,eu-west-1,c5d.2xlarge,reserved_3y,partial_upfront,0.22051,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:18.221559 +AWS,eu-west-1,c5d.2xlarge,spot,NA,0.219549,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730991 +AWS,eu-west-1,c5d.4xlarge,on_demand,NA,0.872,USD,AWS Pricing API,2025-11-30T09:05:34.873428 +AWS,eu-west-1,c5d.4xlarge,reserved_1y,all_upfront,0.658452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:03.894427 +AWS,eu-west-1,c5d.4xlarge,reserved_1y,no_upfront,0.658452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:49.099594 +AWS,eu-west-1,c5d.4xlarge,reserved_1y,partial_upfront,0.658452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:28.567723 +AWS,eu-west-1,c5d.4xlarge,reserved_3y,all_upfront,0.438817,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:59.436298 +AWS,eu-west-1,c5d.4xlarge,reserved_3y,no_upfront,0.438817,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:54.866744 +AWS,eu-west-1,c5d.4xlarge,reserved_3y,partial_upfront,0.438817,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:38.479929 +AWS,eu-west-1,c5d.4xlarge,spot,NA,0.433155,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728787 +AWS,eu-west-1,c5d.9xlarge,on_demand,NA,1.962,USD,AWS Pricing API,2025-11-30T09:06:04.669845 +AWS,eu-west-1,c5d.9xlarge,reserved_1y,all_upfront,1.569169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:33.580694 +AWS,eu-west-1,c5d.9xlarge,reserved_1y,no_upfront,1.569169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:18.862362 +AWS,eu-west-1,c5d.9xlarge,reserved_1y,partial_upfront,1.569169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:57.916279 +AWS,eu-west-1,c5d.9xlarge,reserved_3y,all_upfront,0.78439,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:28.341437 +AWS,eu-west-1,c5d.9xlarge,reserved_3y,no_upfront,0.78439,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:24.967904 +AWS,eu-west-1,c5d.9xlarge,reserved_3y,partial_upfront,0.78439,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:07.831152 +AWS,eu-west-1,c5d.9xlarge,spot,NA,0.925572,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729964 +AWS,eu-west-1,c5d.xlarge,on_demand,NA,0.218,USD,AWS Pricing API,2025-11-30T09:06:00.276650 +AWS,eu-west-1,c5d.xlarge,reserved_1y,all_upfront,0.122,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:29.167439 +AWS,eu-west-1,c5d.xlarge,reserved_1y,no_upfront,0.122,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:14.481605 +AWS,eu-west-1,c5d.xlarge,reserved_1y,partial_upfront,0.122,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:53.614342 +AWS,eu-west-1,c5d.xlarge,reserved_3y,all_upfront,0.122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:24.086549 +AWS,eu-west-1,c5d.xlarge,reserved_3y,no_upfront,0.122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:20.559326 +AWS,eu-west-1,c5d.xlarge,reserved_3y,partial_upfront,0.122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:03.545374 +AWS,eu-west-1,c5d.xlarge,spot,NA,0.116394,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729798 +AWS,eu-west-1,c5n.18xlarge,on_demand,NA,4.392,USD,AWS Pricing API,2025-11-30T09:06:20.819411 +AWS,eu-west-1,c5n.18xlarge,reserved_1y,all_upfront,2.582534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:49.579482 +AWS,eu-west-1,c5n.18xlarge,reserved_1y,no_upfront,2.582534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:35.074245 +AWS,eu-west-1,c5n.18xlarge,reserved_1y,partial_upfront,2.582534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:13.828401 +AWS,eu-west-1,c5n.18xlarge,reserved_3y,all_upfront,0.860845,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:43.992917 +AWS,eu-west-1,c5n.18xlarge,reserved_3y,no_upfront,0.860845,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:41.329960 +AWS,eu-west-1,c5n.18xlarge,reserved_3y,partial_upfront,0.860845,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:23.740697 +AWS,eu-west-1,c5n.18xlarge,spot,NA,1.98267,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731191 +AWS,eu-west-1,c5n.2xlarge,on_demand,NA,0.488,USD,AWS Pricing API,2025-11-30T09:06:31.150426 +AWS,eu-west-1,c5n.2xlarge,reserved_1y,all_upfront,0.368132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:59.743702 +AWS,eu-west-1,c5n.2xlarge,reserved_1y,no_upfront,0.368132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:45.401267 +AWS,eu-west-1,c5n.2xlarge,reserved_1y,partial_upfront,0.368132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:24.045395 +AWS,eu-west-1,c5n.2xlarge,reserved_3y,all_upfront,0.245377,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:53.991523 +AWS,eu-west-1,c5n.2xlarge,reserved_3y,no_upfront,0.245377,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:51.713348 +AWS,eu-west-1,c5n.2xlarge,reserved_3y,partial_upfront,0.245377,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:33.815426 +AWS,eu-west-1,c5n.2xlarge,spot,NA,0.245677,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731675 +AWS,eu-west-1,c5n.4xlarge,on_demand,NA,0.976,USD,AWS Pricing API,2025-11-30T09:06:07.127916 +AWS,eu-west-1,c5n.4xlarge,reserved_1y,all_upfront,0.585808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:36.023963 +AWS,eu-west-1,c5n.4xlarge,reserved_1y,no_upfront,0.585808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:21.331342 +AWS,eu-west-1,c5n.4xlarge,reserved_1y,partial_upfront,0.585808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:00.338864 +AWS,eu-west-1,c5n.4xlarge,reserved_3y,all_upfront,0.390603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:30.734443 +AWS,eu-west-1,c5n.4xlarge,reserved_3y,no_upfront,0.390603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:27.467215 +AWS,eu-west-1,c5n.4xlarge,reserved_3y,partial_upfront,0.390603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:10.265623 +AWS,eu-west-1,c5n.4xlarge,spot,NA,0.521741,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730621 +AWS,eu-west-1,c5n.9xlarge,on_demand,NA,2.196,USD,AWS Pricing API,2025-11-30T09:06:20.672404 +AWS,eu-west-1,c5n.9xlarge,reserved_1y,all_upfront,1.623744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:49.436749 +AWS,eu-west-1,c5n.9xlarge,reserved_1y,no_upfront,1.623744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:34.936875 +AWS,eu-west-1,c5n.9xlarge,reserved_1y,partial_upfront,1.623744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:13.687942 +AWS,eu-west-1,c5n.9xlarge,reserved_3y,all_upfront,0.541248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:43.858921 +AWS,eu-west-1,c5n.9xlarge,reserved_3y,no_upfront,0.541248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:41.188598 +AWS,eu-west-1,c5n.9xlarge,reserved_3y,partial_upfront,0.541248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:23.609131 +AWS,eu-west-1,c5n.9xlarge,spot,NA,1.026809,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731217 +AWS,eu-west-1,c5n.metal,on_demand,NA,4.392,USD,AWS Pricing API,2025-11-30T09:05:28.798906 +AWS,eu-west-1,c5n.metal,reserved_1y,all_upfront,2.767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:57.904561 +AWS,eu-west-1,c5n.metal,reserved_1y,no_upfront,2.767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:43.019582 +AWS,eu-west-1,c5n.metal,reserved_1y,partial_upfront,2.767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:22.604011 +AWS,eu-west-1,c5n.metal,reserved_3y,all_upfront,2.767,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:53.580272 +AWS,eu-west-1,c5n.metal,reserved_3y,no_upfront,2.767,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:48.802630 +AWS,eu-west-1,c5n.metal,reserved_3y,partial_upfront,2.767,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:32.555479 +AWS,eu-west-1,c5n.metal,spot,NA,1.977083,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728566 +AWS,eu-west-1,c5n.xlarge,on_demand,NA,0.244,USD,AWS Pricing API,2025-11-30T09:06:22.775037 +AWS,eu-west-1,c5n.xlarge,reserved_1y,all_upfront,0.143493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:51.480301 +AWS,eu-west-1,c5n.xlarge,reserved_1y,no_upfront,0.143493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:36.994323 +AWS,eu-west-1,c5n.xlarge,reserved_1y,partial_upfront,0.143493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:15.720815 +AWS,eu-west-1,c5n.xlarge,reserved_3y,all_upfront,0.047831,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:45.858531 +AWS,eu-west-1,c5n.xlarge,reserved_3y,no_upfront,0.047831,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:43.263785 +AWS,eu-west-1,c5n.xlarge,reserved_3y,partial_upfront,0.047831,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:25.612492 +AWS,eu-west-1,c5n.xlarge,spot,NA,0.123283,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731344 +AWS,eu-west-1,c6g.12xlarge,on_demand,NA,1.751,USD,AWS Pricing API,2025-11-30T09:05:34.184519 +AWS,eu-west-1,c6g.12xlarge,reserved_1y,all_upfront,1.2743,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:03.203756 +AWS,eu-west-1,c6g.12xlarge,reserved_1y,no_upfront,1.2743,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:48.406345 +AWS,eu-west-1,c6g.12xlarge,reserved_1y,partial_upfront,1.2743,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:27.896964 +AWS,eu-west-1,c6g.12xlarge,reserved_3y,all_upfront,0.849567,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:58.758694 +AWS,eu-west-1,c6g.12xlarge,reserved_3y,no_upfront,0.849567,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:54.174561 +AWS,eu-west-1,c6g.12xlarge,reserved_3y,partial_upfront,0.849567,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:37.799897 +AWS,eu-west-1,c6g.12xlarge,spot,NA,0.786345,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728762 +AWS,eu-west-1,c6g.16xlarge,on_demand,NA,2.3347,USD,AWS Pricing API,2025-11-30T09:05:52.342995 +AWS,eu-west-1,c6g.16xlarge,reserved_1y,all_upfront,2.772146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:21.212083 +AWS,eu-west-1,c6g.16xlarge,reserved_1y,no_upfront,2.772146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:06.545481 +AWS,eu-west-1,c6g.16xlarge,reserved_1y,partial_upfront,2.772146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:45.786341 +AWS,eu-west-1,c6g.16xlarge,reserved_3y,all_upfront,0.924049,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:16.382181 +AWS,eu-west-1,c6g.16xlarge,reserved_3y,no_upfront,0.924049,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:12.570604 +AWS,eu-west-1,c6g.16xlarge,reserved_3y,partial_upfront,0.924049,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:55.715215 +AWS,eu-west-1,c6g.16xlarge,spot,NA,1.005499,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729463 +AWS,eu-west-1,c6g.2xlarge,on_demand,NA,0.2918,USD,AWS Pricing API,2025-11-30T09:06:04.534030 +AWS,eu-west-1,c6g.2xlarge,reserved_1y,all_upfront,0.1932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:33.445099 +AWS,eu-west-1,c6g.2xlarge,reserved_1y,no_upfront,0.1932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:18.725486 +AWS,eu-west-1,c6g.2xlarge,reserved_1y,partial_upfront,0.1932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:57.783459 +AWS,eu-west-1,c6g.2xlarge,reserved_3y,all_upfront,0.1932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:28.209159 +AWS,eu-west-1,c6g.2xlarge,reserved_3y,no_upfront,0.1932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:24.830494 +AWS,eu-west-1,c6g.2xlarge,reserved_3y,partial_upfront,0.1932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:07.698331 +AWS,eu-west-1,c6g.2xlarge,spot,NA,0.144598,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729959 +AWS,eu-west-1,c6g.4xlarge,on_demand,NA,0.5837,USD,AWS Pricing API,2025-11-30T09:06:23.591243 +AWS,eu-west-1,c6g.4xlarge,reserved_1y,all_upfront,0.360616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:52.282926 +AWS,eu-west-1,c6g.4xlarge,reserved_1y,no_upfront,0.360616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:37.809653 +AWS,eu-west-1,c6g.4xlarge,reserved_1y,partial_upfront,0.360616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:16.521479 +AWS,eu-west-1,c6g.4xlarge,reserved_3y,all_upfront,0.120205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:46.672605 +AWS,eu-west-1,c6g.4xlarge,reserved_3y,no_upfront,0.120205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:44.088485 +AWS,eu-west-1,c6g.4xlarge,reserved_3y,partial_upfront,0.120205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:26.425516 +AWS,eu-west-1,c6g.4xlarge,spot,NA,0.260227,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731357 +AWS,eu-west-1,c6g.8xlarge,on_demand,NA,1.1674,USD,AWS Pricing API,2025-11-30T09:05:50.707951 +AWS,eu-west-1,c6g.8xlarge,reserved_1y,all_upfront,1.660274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:19.593372 +AWS,eu-west-1,c6g.8xlarge,reserved_1y,no_upfront,1.660274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:04.903224 +AWS,eu-west-1,c6g.8xlarge,reserved_1y,partial_upfront,1.660274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:44.160215 +AWS,eu-west-1,c6g.8xlarge,reserved_3y,all_upfront,0.553425,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:14.773212 +AWS,eu-west-1,c6g.8xlarge,reserved_3y,no_upfront,0.553425,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:10.914820 +AWS,eu-west-1,c6g.8xlarge,reserved_3y,partial_upfront,0.553425,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:54.091742 +AWS,eu-west-1,c6g.8xlarge,spot,NA,0.536395,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729435 +AWS,eu-west-1,c6g.xlarge,on_demand,NA,0.1459,USD,AWS Pricing API,2025-11-30T09:06:29.080377 +AWS,eu-west-1,c6g.xlarge,reserved_1y,all_upfront,0.122823,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:57.685342 +AWS,eu-west-1,c6g.xlarge,reserved_1y,no_upfront,0.122823,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:43.332294 +AWS,eu-west-1,c6g.xlarge,reserved_1y,partial_upfront,0.122823,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:22.009995 +AWS,eu-west-1,c6g.xlarge,reserved_3y,all_upfront,0.061408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:51.996578 +AWS,eu-west-1,c6g.xlarge,reserved_3y,no_upfront,0.061408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:49.636003 +AWS,eu-west-1,c6g.xlarge,reserved_3y,partial_upfront,0.061408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:31.819541 +AWS,eu-west-1,c6g.xlarge,spot,NA,0.07487,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731560 +AWS,eu-west-1,c6gd.12xlarge,on_demand,NA,2.0928,USD,AWS Pricing API,2025-11-30T09:05:28.934381 +AWS,eu-west-1,c6gd.12xlarge,reserved_1y,all_upfront,1.1638,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:58.040520 +AWS,eu-west-1,c6gd.12xlarge,reserved_1y,no_upfront,1.1638,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:43.165103 +AWS,eu-west-1,c6gd.12xlarge,reserved_1y,partial_upfront,1.1638,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:22.739299 +AWS,eu-west-1,c6gd.12xlarge,reserved_3y,all_upfront,1.1638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:53.710577 +AWS,eu-west-1,c6gd.12xlarge,reserved_3y,no_upfront,1.1638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:48.940499 +AWS,eu-west-1,c6gd.12xlarge,reserved_3y,partial_upfront,1.1638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:32.689664 +AWS,eu-west-1,c6gd.12xlarge,spot,NA,0.924338,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728537 +AWS,eu-west-1,c6gd.16xlarge,on_demand,NA,2.7904,USD,AWS Pricing API,2025-11-30T09:06:07.679149 +AWS,eu-west-1,c6gd.16xlarge,reserved_1y,all_upfront,2.232301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:36.565575 +AWS,eu-west-1,c6gd.16xlarge,reserved_1y,no_upfront,2.232301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:21.880561 +AWS,eu-west-1,c6gd.16xlarge,reserved_1y,partial_upfront,2.232301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:00.877141 +AWS,eu-west-1,c6gd.16xlarge,reserved_3y,all_upfront,1.116167,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:31.259926 +AWS,eu-west-1,c6gd.16xlarge,reserved_3y,no_upfront,1.116167,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:28.015616 +AWS,eu-west-1,c6gd.16xlarge,reserved_3y,partial_upfront,1.116167,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:10.803025 +AWS,eu-west-1,c6gd.16xlarge,spot,NA,1.218452,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730670 +AWS,eu-west-1,c6gd.2xlarge,on_demand,NA,0.3488,USD,AWS Pricing API,2025-11-30T09:06:18.075606 +AWS,eu-west-1,c6gd.2xlarge,reserved_1y,all_upfront,0.279047,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:46.862619 +AWS,eu-west-1,c6gd.2xlarge,reserved_1y,no_upfront,0.279047,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:32.309058 +AWS,eu-west-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.279047,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:11.144095 +AWS,eu-west-1,c6gd.2xlarge,reserved_3y,all_upfront,0.139549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:41.342759 +AWS,eu-west-1,c6gd.2xlarge,reserved_3y,no_upfront,0.139549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:38.569623 +AWS,eu-west-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.139549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:21.047136 +AWS,eu-west-1,c6gd.2xlarge,spot,NA,0.155586,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731062 +AWS,eu-west-1,c6gd.4xlarge,on_demand,NA,0.6976,USD,AWS Pricing API,2025-11-30T09:05:57.407950 +AWS,eu-west-1,c6gd.4xlarge,reserved_1y,all_upfront,0.558107,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:26.223959 +AWS,eu-west-1,c6gd.4xlarge,reserved_1y,no_upfront,0.558107,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:11.608015 +AWS,eu-west-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.558107,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:50.790968 +AWS,eu-west-1,c6gd.4xlarge,reserved_3y,all_upfront,0.279036,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:21.294490 +AWS,eu-west-1,c6gd.4xlarge,reserved_3y,no_upfront,0.279036,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:17.684029 +AWS,eu-west-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.279036,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:00.689669 +AWS,eu-west-1,c6gd.4xlarge,spot,NA,0.331019,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729683 +AWS,eu-west-1,c6gd.8xlarge,on_demand,NA,1.3952,USD,AWS Pricing API,2025-11-30T09:06:26.499184 +AWS,eu-west-1,c6gd.8xlarge,reserved_1y,all_upfront,2.1121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:55.124949 +AWS,eu-west-1,c6gd.8xlarge,reserved_1y,no_upfront,2.1121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:40.717133 +AWS,eu-west-1,c6gd.8xlarge,reserved_1y,partial_upfront,2.1121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:19.443067 +AWS,eu-west-1,c6gd.8xlarge,reserved_3y,all_upfront,0.704033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:49.454641 +AWS,eu-west-1,c6gd.8xlarge,reserved_3y,no_upfront,0.704033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:46.989957 +AWS,eu-west-1,c6gd.8xlarge,reserved_3y,partial_upfront,0.704033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:29.253355 +AWS,eu-west-1,c6gd.8xlarge,spot,NA,0.673453,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731431 +AWS,eu-west-1,c6gd.xlarge,on_demand,NA,0.1744,USD,AWS Pricing API,2025-11-30T09:06:17.406117 +AWS,eu-west-1,c6gd.xlarge,reserved_1y,all_upfront,0.131553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:46.192829 +AWS,eu-west-1,c6gd.xlarge,reserved_1y,no_upfront,0.131553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:31.610646 +AWS,eu-west-1,c6gd.xlarge,reserved_1y,partial_upfront,0.131553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:10.475088 +AWS,eu-west-1,c6gd.xlarge,reserved_3y,all_upfront,0.087718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:40.687562 +AWS,eu-west-1,c6gd.xlarge,reserved_3y,no_upfront,0.087718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:37.880929 +AWS,eu-west-1,c6gd.xlarge,reserved_3y,partial_upfront,0.087718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:20.388770 +AWS,eu-west-1,c6gd.xlarge,spot,NA,0.087969,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731089 +AWS,eu-west-1,c6i.12xlarge,on_demand,NA,2.1888,USD,AWS Pricing API,2025-11-30T09:06:17.271336 +AWS,eu-west-1,c6i.12xlarge,reserved_1y,all_upfront,1.561073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:46.059003 +AWS,eu-west-1,c6i.12xlarge,reserved_1y,no_upfront,1.561073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:31.474341 +AWS,eu-west-1,c6i.12xlarge,reserved_1y,partial_upfront,1.561073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:10.342675 +AWS,eu-west-1,c6i.12xlarge,reserved_3y,all_upfront,0.520358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:40.554941 +AWS,eu-west-1,c6i.12xlarge,reserved_3y,no_upfront,0.520358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:37.738176 +AWS,eu-west-1,c6i.12xlarge,reserved_3y,partial_upfront,0.520358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:20.254670 +AWS,eu-west-1,c6i.12xlarge,spot,NA,1.048295,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731114 +AWS,eu-west-1,c6i.16xlarge,on_demand,NA,2.9184,USD,AWS Pricing API,2025-11-30T09:05:51.935045 +AWS,eu-west-1,c6i.16xlarge,reserved_1y,all_upfront,2.463945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:20.809561 +AWS,eu-west-1,c6i.16xlarge,reserved_1y,no_upfront,2.463945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:06.130120 +AWS,eu-west-1,c6i.16xlarge,reserved_1y,partial_upfront,2.463945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:45.373119 +AWS,eu-west-1,c6i.16xlarge,reserved_3y,all_upfront,1.231982,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:15.985363 +AWS,eu-west-1,c6i.16xlarge,reserved_3y,no_upfront,1.231982,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:12.159410 +AWS,eu-west-1,c6i.16xlarge,reserved_3y,partial_upfront,1.231982,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:55.293218 +AWS,eu-west-1,c6i.16xlarge,spot,NA,1.421542,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729469 +AWS,eu-west-1,c6i.24xlarge,on_demand,NA,4.3776,USD,AWS Pricing API,2025-11-30T09:05:46.588621 +AWS,eu-west-1,c6i.24xlarge,reserved_1y,all_upfront,2.704795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:15.544620 +AWS,eu-west-1,c6i.24xlarge,reserved_1y,no_upfront,2.704795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:00.738810 +AWS,eu-west-1,c6i.24xlarge,reserved_1y,partial_upfront,2.704795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:40.079901 +AWS,eu-west-1,c6i.24xlarge,reserved_3y,all_upfront,0.901598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:10.720668 +AWS,eu-west-1,c6i.24xlarge,reserved_3y,no_upfront,0.901598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:06.724895 +AWS,eu-west-1,c6i.24xlarge,reserved_3y,partial_upfront,0.901598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:50.041475 +AWS,eu-west-1,c6i.24xlarge,spot,NA,1.998445,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729270 +AWS,eu-west-1,c6i.2xlarge,on_demand,NA,0.3648,USD,AWS Pricing API,2025-11-30T09:05:30.204069 +AWS,eu-west-1,c6i.2xlarge,reserved_1y,all_upfront,0.229954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:59.261492 +AWS,eu-west-1,c6i.2xlarge,reserved_1y,no_upfront,0.229954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:44.398455 +AWS,eu-west-1,c6i.2xlarge,reserved_1y,partial_upfront,0.229954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:23.967316 +AWS,eu-west-1,c6i.2xlarge,reserved_3y,all_upfront,0.153318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:54.908744 +AWS,eu-west-1,c6i.2xlarge,reserved_3y,no_upfront,0.153318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:50.173301 +AWS,eu-west-1,c6i.2xlarge,reserved_3y,partial_upfront,0.153318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:33.897877 +AWS,eu-west-1,c6i.2xlarge,spot,NA,0.189292,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728572 +AWS,eu-west-1,c6i.32xlarge,on_demand,NA,5.8368,USD,AWS Pricing API,2025-11-30T09:06:22.087860 +AWS,eu-west-1,c6i.32xlarge,reserved_1y,all_upfront,4.247728,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:50.807209 +AWS,eu-west-1,c6i.32xlarge,reserved_1y,no_upfront,4.247728,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:36.308498 +AWS,eu-west-1,c6i.32xlarge,reserved_1y,partial_upfront,4.247728,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:15.039141 +AWS,eu-west-1,c6i.32xlarge,reserved_3y,all_upfront,2.831823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:45.199079 +AWS,eu-west-1,c6i.32xlarge,reserved_3y,no_upfront,2.831823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:42.580634 +AWS,eu-west-1,c6i.32xlarge,reserved_3y,partial_upfront,2.831823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:24.942271 +AWS,eu-west-1,c6i.32xlarge,spot,NA,2.716716,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731261 +AWS,eu-west-1,c6i.4xlarge,on_demand,NA,0.7296,USD,AWS Pricing API,2025-11-30T09:05:26.172889 +AWS,eu-west-1,c6i.4xlarge,reserved_1y,all_upfront,0.450799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:55.323952 +AWS,eu-west-1,c6i.4xlarge,reserved_1y,no_upfront,0.450799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:40.288181 +AWS,eu-west-1,c6i.4xlarge,reserved_1y,partial_upfront,0.450799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:20.048692 +AWS,eu-west-1,c6i.4xlarge,reserved_3y,all_upfront,0.150266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:51.059079 +AWS,eu-west-1,c6i.4xlarge,reserved_3y,no_upfront,0.150266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:46.179478 +AWS,eu-west-1,c6i.4xlarge,reserved_3y,partial_upfront,0.150266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:30.019617 +AWS,eu-west-1,c6i.4xlarge,spot,NA,0.356934,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728447 +AWS,eu-west-1,c6i.8xlarge,on_demand,NA,1.4592,USD,AWS Pricing API,2025-11-30T09:05:40.120369 +AWS,eu-west-1,c6i.8xlarge,reserved_1y,all_upfront,0.920046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:09.147990 +AWS,eu-west-1,c6i.8xlarge,reserved_1y,no_upfront,0.920046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:54.308999 +AWS,eu-west-1,c6i.8xlarge,reserved_1y,partial_upfront,0.920046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:33.727797 +AWS,eu-west-1,c6i.8xlarge,reserved_3y,all_upfront,0.613349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:04.490436 +AWS,eu-west-1,c6i.8xlarge,reserved_3y,no_upfront,0.613349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:00.154350 +AWS,eu-west-1,c6i.8xlarge,reserved_3y,partial_upfront,0.613349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:43.697666 +AWS,eu-west-1,c6i.8xlarge,spot,NA,0.72786,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729034 +AWS,eu-west-1,c6i.xlarge,on_demand,NA,0.1824,USD,AWS Pricing API,2025-11-30T09:05:44.378847 +AWS,eu-west-1,c6i.xlarge,reserved_1y,all_upfront,0.259475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:13.391985 +AWS,eu-west-1,c6i.xlarge,reserved_1y,no_upfront,0.259475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:58.539404 +AWS,eu-west-1,c6i.xlarge,reserved_1y,partial_upfront,0.259475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:37.914806 +AWS,eu-west-1,c6i.xlarge,reserved_3y,all_upfront,0.086492,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:08.598140 +AWS,eu-west-1,c6i.xlarge,reserved_3y,no_upfront,0.086492,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:04.504932 +AWS,eu-west-1,c6i.xlarge,reserved_3y,partial_upfront,0.086492,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:47.886296 +AWS,eu-west-1,c6i.xlarge,spot,NA,0.095362,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729196 +AWS,eu-west-1,c6id.12xlarge,on_demand,NA,2.7468,USD,AWS Pricing API,2025-11-30T09:06:13.012025 +AWS,eu-west-1,c6id.12xlarge,reserved_1y,all_upfront,2.197419,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:41.845198 +AWS,eu-west-1,c6id.12xlarge,reserved_1y,no_upfront,2.197419,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:27.200110 +AWS,eu-west-1,c6id.12xlarge,reserved_1y,partial_upfront,2.197419,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:06.189419 +AWS,eu-west-1,c6id.12xlarge,reserved_3y,all_upfront,1.098713,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:36.454882 +AWS,eu-west-1,c6id.12xlarge,reserved_3y,no_upfront,1.098713,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:33.448383 +AWS,eu-west-1,c6id.12xlarge,reserved_3y,partial_upfront,1.098713,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:16.061647 +AWS,eu-west-1,c6id.12xlarge,spot,NA,1.295384,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730913 +AWS,eu-west-1,c6id.16xlarge,on_demand,NA,3.6624,USD,AWS Pricing API,2025-11-30T09:06:22.630012 +AWS,eu-west-1,c6id.16xlarge,reserved_1y,all_upfront,2.766927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:51.345444 +AWS,eu-west-1,c6id.16xlarge,reserved_1y,no_upfront,2.766927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:36.855112 +AWS,eu-west-1,c6id.16xlarge,reserved_1y,partial_upfront,2.766927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:15.585102 +AWS,eu-west-1,c6id.16xlarge,reserved_3y,all_upfront,1.844629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:45.725414 +AWS,eu-west-1,c6id.16xlarge,reserved_3y,no_upfront,1.844629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:43.127650 +AWS,eu-west-1,c6id.16xlarge,reserved_3y,partial_upfront,1.844629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:25.478446 +AWS,eu-west-1,c6id.16xlarge,spot,NA,1.709579,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731331 +AWS,eu-west-1,c6id.24xlarge,on_demand,NA,5.4936,USD,AWS Pricing API,2025-11-30T09:05:40.546665 +AWS,eu-west-1,c6id.24xlarge,reserved_1y,all_upfront,4.067466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:09.549429 +AWS,eu-west-1,c6id.24xlarge,reserved_1y,no_upfront,4.067466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:54.717513 +AWS,eu-west-1,c6id.24xlarge,reserved_1y,partial_upfront,4.067466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:34.129421 +AWS,eu-west-1,c6id.24xlarge,reserved_3y,all_upfront,1.355822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:04.884800 +AWS,eu-west-1,c6id.24xlarge,reserved_3y,no_upfront,1.355822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:00.579858 +AWS,eu-west-1,c6id.24xlarge,reserved_3y,partial_upfront,1.355822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:44.111942 +AWS,eu-west-1,c6id.24xlarge,spot,NA,2.535728,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729053 +AWS,eu-west-1,c6id.2xlarge,on_demand,NA,0.4578,USD,AWS Pricing API,2025-11-30T09:06:33.050240 +AWS,eu-west-1,c6id.2xlarge,reserved_1y,all_upfront,0.25515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:01.649554 +AWS,eu-west-1,c6id.2xlarge,reserved_1y,no_upfront,0.25515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:47.327459 +AWS,eu-west-1,c6id.2xlarge,reserved_1y,partial_upfront,0.25515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:25.946822 +AWS,eu-west-1,c6id.2xlarge,reserved_3y,all_upfront,0.25515,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:55.845591 +AWS,eu-west-1,c6id.2xlarge,reserved_3y,no_upfront,0.25515,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:53.660823 +AWS,eu-west-1,c6id.2xlarge,reserved_3y,partial_upfront,0.25515,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:35.709568 +AWS,eu-west-1,c6id.2xlarge,spot,NA,0.218754,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731745 +AWS,eu-west-1,c6id.32xlarge,on_demand,NA,7.3248,USD,AWS Pricing API,2025-11-30T09:05:28.243611 +AWS,eu-west-1,c6id.32xlarge,reserved_1y,all_upfront,4.0824,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:57.364349 +AWS,eu-west-1,c6id.32xlarge,reserved_1y,no_upfront,4.0824,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:42.456744 +AWS,eu-west-1,c6id.32xlarge,reserved_1y,partial_upfront,4.0824,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:22.066170 +AWS,eu-west-1,c6id.32xlarge,reserved_3y,all_upfront,4.0824,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:53.050227 +AWS,eu-west-1,c6id.32xlarge,reserved_3y,no_upfront,4.0824,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:48.249652 +AWS,eu-west-1,c6id.32xlarge,reserved_3y,partial_upfront,4.0824,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:32.013634 +AWS,eu-west-1,c6id.32xlarge,spot,NA,3.366689,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728549 +AWS,eu-west-1,c6id.4xlarge,on_demand,NA,0.9156,USD,AWS Pricing API,2025-11-30T09:05:35.417035 +AWS,eu-west-1,c6id.4xlarge,reserved_1y,all_upfront,1.389155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:04.445093 +AWS,eu-west-1,c6id.4xlarge,reserved_1y,no_upfront,1.389155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:49.657243 +AWS,eu-west-1,c6id.4xlarge,reserved_1y,partial_upfront,1.389155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:29.106016 +AWS,eu-west-1,c6id.4xlarge,reserved_3y,all_upfront,0.463052,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:59.959512 +AWS,eu-west-1,c6id.4xlarge,reserved_3y,no_upfront,0.463052,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:55.423890 +AWS,eu-west-1,c6id.4xlarge,reserved_3y,partial_upfront,0.463052,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:39.027494 +AWS,eu-west-1,c6id.4xlarge,spot,NA,0.440238,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728823 +AWS,eu-west-1,c6id.8xlarge,on_demand,NA,1.8312,USD,AWS Pricing API,2025-11-30T09:06:08.909920 +AWS,eu-west-1,c6id.8xlarge,reserved_1y,all_upfront,2.778311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:37.785390 +AWS,eu-west-1,c6id.8xlarge,reserved_1y,no_upfront,2.778311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:23.107017 +AWS,eu-west-1,c6id.8xlarge,reserved_1y,partial_upfront,2.778311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:02.106380 +AWS,eu-west-1,c6id.8xlarge,reserved_3y,all_upfront,0.926104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:32.473114 +AWS,eu-west-1,c6id.8xlarge,reserved_3y,no_upfront,0.926104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:29.258992 +AWS,eu-west-1,c6id.8xlarge,reserved_3y,partial_upfront,0.926104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:12.015309 +AWS,eu-west-1,c6id.8xlarge,spot,NA,0.862226,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730750 +AWS,eu-west-1,c6id.xlarge,on_demand,NA,0.2289,USD,AWS Pricing API,2025-11-30T09:06:27.848070 +AWS,eu-west-1,c6id.xlarge,reserved_1y,all_upfront,0.183109,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:56.478487 +AWS,eu-west-1,c6id.xlarge,reserved_1y,no_upfront,0.183109,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:42.097953 +AWS,eu-west-1,c6id.xlarge,reserved_1y,partial_upfront,0.183109,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:20.798995 +AWS,eu-west-1,c6id.xlarge,reserved_3y,all_upfront,0.091556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:50.785456 +AWS,eu-west-1,c6id.xlarge,reserved_3y,no_upfront,0.091556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:48.385373 +AWS,eu-west-1,c6id.xlarge,reserved_3y,partial_upfront,0.091556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:30.608614 +AWS,eu-west-1,c6id.xlarge,spot,NA,0.122207,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731495 +AWS,eu-west-1,c6in.12xlarge,on_demand,NA,3.0744,USD,AWS Pricing API,2025-11-30T09:05:33.776984 +AWS,eu-west-1,c6in.12xlarge,reserved_1y,all_upfront,1.93687,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:02.796645 +AWS,eu-west-1,c6in.12xlarge,reserved_1y,no_upfront,1.93687,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:47.981095 +AWS,eu-west-1,c6in.12xlarge,reserved_1y,partial_upfront,1.93687,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:27.485444 +AWS,eu-west-1,c6in.12xlarge,reserved_3y,all_upfront,1.93687,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:58.363238 +AWS,eu-west-1,c6in.12xlarge,reserved_3y,no_upfront,1.93687,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:53.761518 +AWS,eu-west-1,c6in.12xlarge,reserved_3y,partial_upfront,1.93687,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:37.382197 +AWS,eu-west-1,c6in.12xlarge,spot,NA,1.767375,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728725 +AWS,eu-west-1,c6in.16xlarge,on_demand,NA,4.0992,USD,AWS Pricing API,2025-11-30T09:05:45.357002 +AWS,eu-west-1,c6in.16xlarge,reserved_1y,all_upfront,3.621292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:14.334083 +AWS,eu-west-1,c6in.16xlarge,reserved_1y,no_upfront,3.621292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:59.501674 +AWS,eu-west-1,c6in.16xlarge,reserved_1y,partial_upfront,3.621292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:38.872344 +AWS,eu-west-1,c6in.16xlarge,reserved_3y,all_upfront,1.810637,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:09.526792 +AWS,eu-west-1,c6in.16xlarge,reserved_3y,no_upfront,1.810637,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:05.472733 +AWS,eu-west-1,c6in.16xlarge,reserved_3y,partial_upfront,1.810637,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:48.827245 +AWS,eu-west-1,c6in.16xlarge,spot,NA,2.109352,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729227 +AWS,eu-west-1,c6in.24xlarge,on_demand,NA,6.1488,USD,AWS Pricing API,2025-11-30T09:05:54.953488 +AWS,eu-west-1,c6in.24xlarge,reserved_1y,all_upfront,3.689275,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:23.777259 +AWS,eu-west-1,c6in.24xlarge,reserved_1y,no_upfront,3.689275,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:09.158759 +AWS,eu-west-1,c6in.24xlarge,reserved_1y,partial_upfront,3.689275,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:48.360372 +AWS,eu-west-1,c6in.24xlarge,reserved_3y,all_upfront,2.459518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:18.897873 +AWS,eu-west-1,c6in.24xlarge,reserved_3y,no_upfront,2.459518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:15.184345 +AWS,eu-west-1,c6in.24xlarge,reserved_3y,partial_upfront,2.459518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:58.265487 +AWS,eu-west-1,c6in.24xlarge,spot,NA,2.872549,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729572 +AWS,eu-west-1,c6in.2xlarge,on_demand,NA,0.5124,USD,AWS Pricing API,2025-11-30T09:05:58.610838 +AWS,eu-west-1,c6in.2xlarge,reserved_1y,all_upfront,0.386565,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:27.543551 +AWS,eu-west-1,c6in.2xlarge,reserved_1y,no_upfront,0.386565,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:12.839867 +AWS,eu-west-1,c6in.2xlarge,reserved_1y,partial_upfront,0.386565,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:51.997728 +AWS,eu-west-1,c6in.2xlarge,reserved_3y,all_upfront,0.257722,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:22.498721 +AWS,eu-west-1,c6in.2xlarge,reserved_3y,no_upfront,0.257722,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:18.909613 +AWS,eu-west-1,c6in.2xlarge,reserved_3y,partial_upfront,0.257722,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:01.906320 +AWS,eu-west-1,c6in.2xlarge,spot,NA,0.251315,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729746 +AWS,eu-west-1,c6in.32xlarge,on_demand,NA,8.1984,USD,AWS Pricing API,2025-11-30T09:06:33.186953 +AWS,eu-west-1,c6in.32xlarge,reserved_1y,all_upfront,5.16499,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:01.788763 +AWS,eu-west-1,c6in.32xlarge,reserved_1y,no_upfront,5.16499,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:47.474384 +AWS,eu-west-1,c6in.32xlarge,reserved_1y,partial_upfront,5.16499,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:26.079452 +AWS,eu-west-1,c6in.32xlarge,reserved_3y,all_upfront,5.16499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:55.975128 +AWS,eu-west-1,c6in.32xlarge,reserved_3y,no_upfront,5.16499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:53.797027 +AWS,eu-west-1,c6in.32xlarge,reserved_3y,partial_upfront,5.16499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:35.844127 +AWS,eu-west-1,c6in.32xlarge,spot,NA,3.688542,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731706 +AWS,eu-west-1,c6in.4xlarge,on_demand,NA,1.0248,USD,AWS Pricing API,2025-11-30T09:05:32.795179 +AWS,eu-west-1,c6in.4xlarge,reserved_1y,all_upfront,0.602626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:01.839233 +AWS,eu-west-1,c6in.4xlarge,reserved_1y,no_upfront,0.602626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:46.999605 +AWS,eu-west-1,c6in.4xlarge,reserved_1y,partial_upfront,0.602626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:26.540940 +AWS,eu-west-1,c6in.4xlarge,reserved_3y,all_upfront,0.200875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:57.429549 +AWS,eu-west-1,c6in.4xlarge,reserved_3y,no_upfront,0.200875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:52.800786 +AWS,eu-west-1,c6in.4xlarge,reserved_3y,partial_upfront,0.200875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:36.440153 +AWS,eu-west-1,c6in.4xlarge,spot,NA,0.463271,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728688 +AWS,eu-west-1,c6in.8xlarge,on_demand,NA,2.0496,USD,AWS Pricing API,2025-11-30T09:06:03.161603 +AWS,eu-west-1,c6in.8xlarge,reserved_1y,all_upfront,1.62374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:32.015745 +AWS,eu-west-1,c6in.8xlarge,reserved_1y,no_upfront,1.62374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:17.362573 +AWS,eu-west-1,c6in.8xlarge,reserved_1y,partial_upfront,1.62374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:56.442516 +AWS,eu-west-1,c6in.8xlarge,reserved_3y,all_upfront,1.62374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:26.880392 +AWS,eu-west-1,c6in.8xlarge,reserved_3y,no_upfront,1.62374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:23.459838 +AWS,eu-west-1,c6in.8xlarge,reserved_3y,partial_upfront,1.62374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:06.360668 +AWS,eu-west-1,c6in.8xlarge,spot,NA,1.003637,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729885 +AWS,eu-west-1,c6in.xlarge,on_demand,NA,0.2562,USD,AWS Pricing API,2025-11-30T09:05:50.845495 +AWS,eu-west-1,c6in.xlarge,reserved_1y,all_upfront,0.20297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:19.736819 +AWS,eu-west-1,c6in.xlarge,reserved_1y,no_upfront,0.20297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:05.046791 +AWS,eu-west-1,c6in.xlarge,reserved_1y,partial_upfront,0.20297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:44.294920 +AWS,eu-west-1,c6in.xlarge,reserved_3y,all_upfront,0.20297,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:14.907229 +AWS,eu-west-1,c6in.xlarge,reserved_3y,no_upfront,0.20297,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:11.059549 +AWS,eu-west-1,c6in.xlarge,reserved_3y,partial_upfront,0.20297,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:54.228482 +AWS,eu-west-1,c6in.xlarge,spot,NA,0.119699,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729419 +AWS,eu-west-1,c7a.12xlarge,on_demand,NA,2.64288,USD,AWS Pricing API,2025-11-30T09:06:18.210598 +AWS,eu-west-1,c7a.12xlarge,reserved_1y,all_upfront,3.146233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:46.996544 +AWS,eu-west-1,c7a.12xlarge,reserved_1y,no_upfront,3.146233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:32.448991 +AWS,eu-west-1,c7a.12xlarge,reserved_1y,partial_upfront,3.146233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:11.278269 +AWS,eu-west-1,c7a.12xlarge,reserved_3y,all_upfront,1.048744,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:41.474871 +AWS,eu-west-1,c7a.12xlarge,reserved_3y,no_upfront,1.048744,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:38.708090 +AWS,eu-west-1,c7a.12xlarge,reserved_3y,partial_upfront,1.048744,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:21.188890 +AWS,eu-west-1,c7a.12xlarge,spot,NA,1.275234,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731108 +AWS,eu-west-1,c7a.16xlarge,on_demand,NA,3.52384,USD,AWS Pricing API,2025-11-30T09:05:48.668703 +AWS,eu-west-1,c7a.16xlarge,reserved_1y,all_upfront,2.221705,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:17.571468 +AWS,eu-west-1,c7a.16xlarge,reserved_1y,no_upfront,2.221705,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:02.844684 +AWS,eu-west-1,c7a.16xlarge,reserved_1y,partial_upfront,2.221705,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:42.123264 +AWS,eu-west-1,c7a.16xlarge,reserved_3y,all_upfront,1.481142,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:12.800305 +AWS,eu-west-1,c7a.16xlarge,reserved_3y,no_upfront,1.481142,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:08.806444 +AWS,eu-west-1,c7a.16xlarge,reserved_3y,partial_upfront,1.481142,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:52.071243 +AWS,eu-west-1,c7a.16xlarge,spot,NA,1.649551,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729394 +AWS,eu-west-1,c7a.24xlarge,on_demand,NA,5.28576,USD,AWS Pricing API,2025-11-30T09:06:28.388477 +AWS,eu-west-1,c7a.24xlarge,reserved_1y,all_upfront,3.846762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:57.016290 +AWS,eu-west-1,c7a.24xlarge,reserved_1y,no_upfront,3.846762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:42.652969 +AWS,eu-west-1,c7a.24xlarge,reserved_1y,partial_upfront,3.846762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:21.338702 +AWS,eu-west-1,c7a.24xlarge,reserved_3y,all_upfront,2.564494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:51.316893 +AWS,eu-west-1,c7a.24xlarge,reserved_3y,no_upfront,2.564494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:48.937487 +AWS,eu-west-1,c7a.24xlarge,reserved_3y,partial_upfront,2.564494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:31.154616 +AWS,eu-west-1,c7a.24xlarge,spot,NA,2.579686,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731554 +AWS,eu-west-1,c7a.2xlarge,on_demand,NA,0.44048,USD,AWS Pricing API,2025-11-30T09:05:29.646391 +AWS,eu-west-1,c7a.2xlarge,reserved_1y,all_upfront,0.272146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:58.715980 +AWS,eu-west-1,c7a.2xlarge,reserved_1y,no_upfront,0.272146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:43.843548 +AWS,eu-west-1,c7a.2xlarge,reserved_1y,partial_upfront,0.272146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:23.418009 +AWS,eu-west-1,c7a.2xlarge,reserved_3y,all_upfront,0.090715,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:54.379067 +AWS,eu-west-1,c7a.2xlarge,reserved_3y,no_upfront,0.090715,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:49.625372 +AWS,eu-west-1,c7a.2xlarge,reserved_3y,partial_upfront,0.090715,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:33.359253 +AWS,eu-west-1,c7a.2xlarge,spot,NA,0.215512,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728623 +AWS,eu-west-1,c7a.32xlarge,on_demand,NA,7.04768,USD,AWS Pricing API,2025-11-30T09:06:04.805433 +AWS,eu-west-1,c7a.32xlarge,reserved_1y,all_upfront,5.950375,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:33.713846 +AWS,eu-west-1,c7a.32xlarge,reserved_1y,no_upfront,5.950375,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:18.998742 +AWS,eu-west-1,c7a.32xlarge,reserved_1y,partial_upfront,5.950375,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:58.050348 +AWS,eu-west-1,c7a.32xlarge,reserved_3y,all_upfront,2.975185,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:28.471573 +AWS,eu-west-1,c7a.32xlarge,reserved_3y,no_upfront,2.975185,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:25.104205 +AWS,eu-west-1,c7a.32xlarge,reserved_3y,partial_upfront,2.975185,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:07.963297 +AWS,eu-west-1,c7a.32xlarge,spot,NA,3.291327,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730034 +AWS,eu-west-1,c7a.48xlarge,on_demand,NA,10.57152,USD,AWS Pricing API,2025-11-30T09:05:24.093713 +AWS,eu-west-1,c7a.48xlarge,reserved_1y,all_upfront,6.531849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:53.294643 +AWS,eu-west-1,c7a.48xlarge,reserved_1y,no_upfront,6.531849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:38.215108 +AWS,eu-west-1,c7a.48xlarge,reserved_1y,partial_upfront,6.531849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:18.032369 +AWS,eu-west-1,c7a.48xlarge,reserved_3y,all_upfront,2.177283,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:49.058839 +AWS,eu-west-1,c7a.48xlarge,reserved_3y,no_upfront,2.177283,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:44.111051 +AWS,eu-west-1,c7a.48xlarge,reserved_3y,partial_upfront,2.177283,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:28.005315 +AWS,eu-west-1,c7a.48xlarge,spot,NA,4.730167,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728362 +AWS,eu-west-1,c7a.4xlarge,on_demand,NA,0.88096,USD,AWS Pricing API,2025-11-30T09:06:05.898587 +AWS,eu-west-1,c7a.4xlarge,reserved_1y,all_upfront,0.55545,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:34.786511 +AWS,eu-west-1,c7a.4xlarge,reserved_1y,no_upfront,0.55545,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:20.088136 +AWS,eu-west-1,c7a.4xlarge,reserved_1y,partial_upfront,0.55545,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:59.134471 +AWS,eu-west-1,c7a.4xlarge,reserved_3y,all_upfront,0.37029,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:29.532523 +AWS,eu-west-1,c7a.4xlarge,reserved_3y,no_upfront,0.37029,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:26.212699 +AWS,eu-west-1,c7a.4xlarge,reserved_3y,partial_upfront,0.37029,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:09.057954 +AWS,eu-west-1,c7a.4xlarge,spot,NA,0.426628,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730040 +AWS,eu-west-1,c7a.8xlarge,on_demand,NA,1.76192,USD,AWS Pricing API,2025-11-30T09:05:21.492925 +AWS,eu-west-1,c7a.8xlarge,reserved_1y,all_upfront,1.34635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:50.705853 +AWS,eu-west-1,c7a.8xlarge,reserved_1y,no_upfront,1.34635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:35.621975 +AWS,eu-west-1,c7a.8xlarge,reserved_1y,partial_upfront,1.34635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:15.492848 +AWS,eu-west-1,c7a.8xlarge,reserved_3y,all_upfront,1.34635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:46.535071 +AWS,eu-west-1,c7a.8xlarge,reserved_3y,no_upfront,1.34635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:41.468835 +AWS,eu-west-1,c7a.8xlarge,reserved_3y,partial_upfront,1.34635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:25.444062 +AWS,eu-west-1,c7a.8xlarge,spot,NA,0.893358,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728304 +AWS,eu-west-1,c7a.xlarge,on_demand,NA,0.22024,USD,AWS Pricing API,2025-11-30T09:05:56.865392 +AWS,eu-west-1,c7a.xlarge,reserved_1y,all_upfront,0.138836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:25.674515 +AWS,eu-west-1,c7a.xlarge,reserved_1y,no_upfront,0.138836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:11.064683 +AWS,eu-west-1,c7a.xlarge,reserved_1y,partial_upfront,0.138836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:50.250985 +AWS,eu-west-1,c7a.xlarge,reserved_3y,all_upfront,0.092565,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:20.760476 +AWS,eu-west-1,c7a.xlarge,reserved_3y,no_upfront,0.092565,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:17.122311 +AWS,eu-west-1,c7a.xlarge,reserved_3y,partial_upfront,0.092565,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:00.153105 +AWS,eu-west-1,c7a.xlarge,spot,NA,0.106717,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729712 +AWS,eu-west-1,c7g.12xlarge,on_demand,NA,1.8605,USD,AWS Pricing API,2025-11-30T09:06:00.960535 +AWS,eu-west-1,c7g.12xlarge,reserved_1y,all_upfront,1.149543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:29.851872 +AWS,eu-west-1,c7g.12xlarge,reserved_1y,no_upfront,1.149543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:15.173763 +AWS,eu-west-1,c7g.12xlarge,reserved_1y,partial_upfront,1.149543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:54.291935 +AWS,eu-west-1,c7g.12xlarge,reserved_3y,all_upfront,0.383181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:24.750415 +AWS,eu-west-1,c7g.12xlarge,reserved_3y,no_upfront,0.383181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:21.245220 +AWS,eu-west-1,c7g.12xlarge,reserved_3y,partial_upfront,0.383181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:04.215159 +AWS,eu-west-1,c7g.12xlarge,spot,NA,0.871674,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729838 +AWS,eu-west-1,c7g.16xlarge,on_demand,NA,2.4806,USD,AWS Pricing API,2025-11-30T09:06:10.671951 +AWS,eu-west-1,c7g.16xlarge,reserved_1y,all_upfront,1.563963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:39.544372 +AWS,eu-west-1,c7g.16xlarge,reserved_1y,no_upfront,1.563963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:24.877999 +AWS,eu-west-1,c7g.16xlarge,reserved_1y,partial_upfront,1.563963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:03.879801 +AWS,eu-west-1,c7g.16xlarge,reserved_3y,all_upfront,1.042654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:34.193348 +AWS,eu-west-1,c7g.16xlarge,reserved_3y,no_upfront,1.042654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:31.108227 +AWS,eu-west-1,c7g.16xlarge,reserved_3y,partial_upfront,1.042654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:13.763492 +AWS,eu-west-1,c7g.16xlarge,spot,NA,1.084226,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730812 +AWS,eu-west-1,c7g.2xlarge,on_demand,NA,0.3101,USD,AWS Pricing API,2025-11-30T09:06:29.630441 +AWS,eu-west-1,c7g.2xlarge,reserved_1y,all_upfront,0.2053,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:58.228098 +AWS,eu-west-1,c7g.2xlarge,reserved_1y,no_upfront,0.2053,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:43.877049 +AWS,eu-west-1,c7g.2xlarge,reserved_1y,partial_upfront,0.2053,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:22.557582 +AWS,eu-west-1,c7g.2xlarge,reserved_3y,all_upfront,0.2053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:52.526848 +AWS,eu-west-1,c7g.2xlarge,reserved_3y,no_upfront,0.2053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:50.190028 +AWS,eu-west-1,c7g.2xlarge,reserved_3y,partial_upfront,0.2053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:32.347492 +AWS,eu-west-1,c7g.2xlarge,spot,NA,0.146309,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731606 +AWS,eu-west-1,c7g.4xlarge,on_demand,NA,0.6202,USD,AWS Pricing API,2025-11-30T09:05:46.040748 +AWS,eu-west-1,c7g.4xlarge,reserved_1y,all_upfront,0.451385,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:15.010926 +AWS,eu-west-1,c7g.4xlarge,reserved_1y,no_upfront,0.451385,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:00.190606 +AWS,eu-west-1,c7g.4xlarge,reserved_1y,partial_upfront,0.451385,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:39.541765 +AWS,eu-west-1,c7g.4xlarge,reserved_3y,all_upfront,0.300928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:10.192181 +AWS,eu-west-1,c7g.4xlarge,reserved_3y,no_upfront,0.300928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:06.163268 +AWS,eu-west-1,c7g.4xlarge,reserved_3y,partial_upfront,0.300928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:49.507574 +AWS,eu-west-1,c7g.4xlarge,spot,NA,0.280315,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729258 +AWS,eu-west-1,c7g.8xlarge,on_demand,NA,1.2403,USD,AWS Pricing API,2025-11-30T09:05:57.136337 +AWS,eu-west-1,c7g.8xlarge,reserved_1y,all_upfront,0.90267,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:25.953536 +AWS,eu-west-1,c7g.8xlarge,reserved_1y,no_upfront,0.90267,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:11.337736 +AWS,eu-west-1,c7g.8xlarge,reserved_1y,partial_upfront,0.90267,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:50.519262 +AWS,eu-west-1,c7g.8xlarge,reserved_3y,all_upfront,0.601757,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:21.028356 +AWS,eu-west-1,c7g.8xlarge,reserved_3y,no_upfront,0.601757,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:17.397626 +AWS,eu-west-1,c7g.8xlarge,reserved_3y,partial_upfront,0.601757,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:00.420649 +AWS,eu-west-1,c7g.8xlarge,spot,NA,0.569066,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729706 +AWS,eu-west-1,c7g.xlarge,on_demand,NA,0.155,USD,AWS Pricing API,2025-11-30T09:05:44.109022 +AWS,eu-west-1,c7g.xlarge,reserved_1y,all_upfront,0.0707,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:13.122746 +AWS,eu-west-1,c7g.xlarge,reserved_1y,no_upfront,0.0707,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:58.266823 +AWS,eu-west-1,c7g.xlarge,reserved_1y,partial_upfront,0.0707,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:37.644311 +AWS,eu-west-1,c7g.xlarge,reserved_3y,all_upfront,0.0707,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:08.333866 +AWS,eu-west-1,c7g.xlarge,reserved_3y,no_upfront,0.0707,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:04.219698 +AWS,eu-west-1,c7g.xlarge,reserved_3y,partial_upfront,0.0707,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:47.617336 +AWS,eu-west-1,c7g.xlarge,spot,NA,0.080323,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729164 +AWS,eu-west-1,c7gd.12xlarge,on_demand,NA,2.472,USD,AWS Pricing API,2025-11-30T09:05:55.088178 +AWS,eu-west-1,c7gd.12xlarge,reserved_1y,all_upfront,1.961,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:23.910781 +AWS,eu-west-1,c7gd.12xlarge,reserved_1y,no_upfront,1.961,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:09.293403 +AWS,eu-west-1,c7gd.12xlarge,reserved_1y,partial_upfront,1.961,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:48.493361 +AWS,eu-west-1,c7gd.12xlarge,reserved_3y,all_upfront,1.961,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:19.037304 +AWS,eu-west-1,c7gd.12xlarge,reserved_3y,no_upfront,1.961,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:15.321031 +AWS,eu-west-1,c7gd.12xlarge,reserved_3y,partial_upfront,1.961,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:58.398744 +AWS,eu-west-1,c7gd.12xlarge,spot,NA,1.085895,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729625 +AWS,eu-west-1,c7gd.16xlarge,on_demand,NA,3.296,USD,AWS Pricing API,2025-11-30T09:05:40.967014 +AWS,eu-west-1,c7gd.16xlarge,reserved_1y,all_upfront,2.440297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:09.962381 +AWS,eu-west-1,c7gd.16xlarge,reserved_1y,no_upfront,2.440297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:55.128857 +AWS,eu-west-1,c7gd.16xlarge,reserved_1y,partial_upfront,2.440297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:34.547478 +AWS,eu-west-1,c7gd.16xlarge,reserved_3y,all_upfront,0.813432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:05.287967 +AWS,eu-west-1,c7gd.16xlarge,reserved_3y,no_upfront,0.813432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:00.998968 +AWS,eu-west-1,c7gd.16xlarge,reserved_3y,partial_upfront,0.813432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:44.515918 +AWS,eu-west-1,c7gd.16xlarge,spot,NA,1.460297,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729060 +AWS,eu-west-1,c7gd.2xlarge,on_demand,NA,0.412,USD,AWS Pricing API,2025-11-30T09:06:10.540143 +AWS,eu-west-1,c7gd.2xlarge,reserved_1y,all_upfront,0.311194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:39.408708 +AWS,eu-west-1,c7gd.2xlarge,reserved_1y,no_upfront,0.311194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:24.744202 +AWS,eu-west-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.311194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:03.745105 +AWS,eu-west-1,c7gd.2xlarge,reserved_3y,all_upfront,0.207465,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:34.062009 +AWS,eu-west-1,c7gd.2xlarge,reserved_3y,no_upfront,0.207465,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:30.971392 +AWS,eu-west-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.207465,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:13.624903 +AWS,eu-west-1,c7gd.2xlarge,spot,NA,0.187953,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730794 +AWS,eu-west-1,c7gd.4xlarge,on_demand,NA,0.824,USD,AWS Pricing API,2025-11-30T09:05:57.809695 +AWS,eu-west-1,c7gd.4xlarge,reserved_1y,all_upfront,0.494346,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:26.726376 +AWS,eu-west-1,c7gd.4xlarge,reserved_1y,no_upfront,0.494346,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:12.017377 +AWS,eu-west-1,c7gd.4xlarge,reserved_1y,partial_upfront,0.494346,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:51.192816 +AWS,eu-west-1,c7gd.4xlarge,reserved_3y,all_upfront,0.329582,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:21.686186 +AWS,eu-west-1,c7gd.4xlarge,reserved_3y,no_upfront,0.329582,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:18.091499 +AWS,eu-west-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.329582,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:01.087591 +AWS,eu-west-1,c7gd.4xlarge,spot,NA,0.420762,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729723 +AWS,eu-west-1,c7gd.8xlarge,on_demand,NA,1.648,USD,AWS Pricing API,2025-11-30T09:05:49.345916 +AWS,eu-west-1,c7gd.8xlarge,reserved_1y,all_upfront,0.969064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:18.243578 +AWS,eu-west-1,c7gd.8xlarge,reserved_1y,no_upfront,0.969064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:03.533578 +AWS,eu-west-1,c7gd.8xlarge,reserved_1y,partial_upfront,0.969064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:42.809711 +AWS,eu-west-1,c7gd.8xlarge,reserved_3y,all_upfront,0.323021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:13.454364 +AWS,eu-west-1,c7gd.8xlarge,reserved_3y,no_upfront,0.323021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:09.507739 +AWS,eu-west-1,c7gd.8xlarge,reserved_3y,partial_upfront,0.323021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:52.737941 +AWS,eu-west-1,c7gd.8xlarge,spot,NA,0.766282,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729380 +AWS,eu-west-1,c7gd.xlarge,on_demand,NA,0.206,USD,AWS Pricing API,2025-11-30T09:06:28.944909 +AWS,eu-west-1,c7gd.xlarge,reserved_1y,all_upfront,0.155654,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:57.552101 +AWS,eu-west-1,c7gd.xlarge,reserved_1y,no_upfront,0.155654,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:43.195756 +AWS,eu-west-1,c7gd.xlarge,reserved_1y,partial_upfront,0.155654,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:21.874794 +AWS,eu-west-1,c7gd.xlarge,reserved_3y,all_upfront,0.103751,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:51.864160 +AWS,eu-west-1,c7gd.xlarge,reserved_3y,no_upfront,0.103751,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:49.496580 +AWS,eu-west-1,c7gd.xlarge,reserved_3y,partial_upfront,0.103751,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:31.686387 +AWS,eu-west-1,c7gd.xlarge,spot,NA,0.096299,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731580 +AWS,eu-west-1,c7i.12xlarge,on_demand,NA,2.29824,USD,AWS Pricing API,2025-11-30T09:05:49.624065 +AWS,eu-west-1,c7i.12xlarge,reserved_1y,all_upfront,1.04782,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:18.517613 +AWS,eu-west-1,c7i.12xlarge,reserved_1y,no_upfront,1.04782,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:03.809060 +AWS,eu-west-1,c7i.12xlarge,reserved_1y,partial_upfront,1.04782,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:43.085345 +AWS,eu-west-1,c7i.12xlarge,reserved_3y,all_upfront,1.04782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:13.716189 +AWS,eu-west-1,c7i.12xlarge,reserved_3y,no_upfront,1.04782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:09.782377 +AWS,eu-west-1,c7i.12xlarge,reserved_3y,partial_upfront,1.04782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:53.013737 +AWS,eu-west-1,c7i.12xlarge,spot,NA,1.120982,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729400 +AWS,eu-west-1,c7i.16xlarge,on_demand,NA,3.06432,USD,AWS Pricing API,2025-11-30T09:06:27.177302 +AWS,eu-west-1,c7i.16xlarge,reserved_1y,all_upfront,1.893379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:55.795459 +AWS,eu-west-1,c7i.16xlarge,reserved_1y,no_upfront,1.893379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:41.405208 +AWS,eu-west-1,c7i.16xlarge,reserved_1y,partial_upfront,1.893379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:20.122131 +AWS,eu-west-1,c7i.16xlarge,reserved_3y,all_upfront,0.631126,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:50.126369 +AWS,eu-west-1,c7i.16xlarge,reserved_3y,no_upfront,0.631126,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:47.682762 +AWS,eu-west-1,c7i.16xlarge,reserved_3y,partial_upfront,0.631126,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:29.940878 +AWS,eu-west-1,c7i.16xlarge,spot,NA,1.459181,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731501 +AWS,eu-west-1,c7i.24xlarge,on_demand,NA,4.59648,USD,AWS Pricing API,2025-11-30T09:06:00.547187 +AWS,eu-west-1,c7i.24xlarge,reserved_1y,all_upfront,3.04289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:29.436773 +AWS,eu-west-1,c7i.24xlarge,reserved_1y,no_upfront,3.04289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:14.752625 +AWS,eu-west-1,c7i.24xlarge,reserved_1y,partial_upfront,3.04289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:53.890617 +AWS,eu-west-1,c7i.24xlarge,reserved_3y,all_upfront,3.04289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:24.355316 +AWS,eu-west-1,c7i.24xlarge,reserved_3y,no_upfront,3.04289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:20.832577 +AWS,eu-west-1,c7i.24xlarge,reserved_3y,partial_upfront,3.04289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:03.813129 +AWS,eu-west-1,c7i.24xlarge,spot,NA,2.20286,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729826 +AWS,eu-west-1,c7i.2xlarge,on_demand,NA,0.38304,USD,AWS Pricing API,2025-11-30T09:06:15.341380 +AWS,eu-west-1,c7i.2xlarge,reserved_1y,all_upfront,0.241526,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:44.159263 +AWS,eu-west-1,c7i.2xlarge,reserved_1y,no_upfront,0.241526,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:29.547383 +AWS,eu-west-1,c7i.2xlarge,reserved_1y,partial_upfront,0.241526,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:08.465127 +AWS,eu-west-1,c7i.2xlarge,reserved_3y,all_upfront,0.161009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:38.711390 +AWS,eu-west-1,c7i.2xlarge,reserved_3y,no_upfront,0.161009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:35.797995 +AWS,eu-west-1,c7i.2xlarge,reserved_3y,partial_upfront,0.161009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:18.356387 +AWS,eu-west-1,c7i.2xlarge,spot,NA,0.184734,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730971 +AWS,eu-west-1,c7i.48xlarge,on_demand,NA,9.19296,USD,AWS Pricing API,2025-11-30T09:05:43.021991 +AWS,eu-west-1,c7i.48xlarge,reserved_1y,all_upfront,10.943836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:12.010708 +AWS,eu-west-1,c7i.48xlarge,reserved_1y,no_upfront,10.943836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:57.173007 +AWS,eu-west-1,c7i.48xlarge,reserved_1y,partial_upfront,10.943836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:36.567289 +AWS,eu-west-1,c7i.48xlarge,reserved_3y,all_upfront,3.647945,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:07.272033 +AWS,eu-west-1,c7i.48xlarge,reserved_3y,no_upfront,3.647945,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:03.119209 +AWS,eu-west-1,c7i.48xlarge,reserved_3y,partial_upfront,3.647945,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:46.536019 +AWS,eu-west-1,c7i.48xlarge,spot,NA,4.101834,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729176 +AWS,eu-west-1,c7i.4xlarge,on_demand,NA,0.76608,USD,AWS Pricing API,2025-11-30T09:05:56.186627 +AWS,eu-west-1,c7i.4xlarge,reserved_1y,all_upfront,0.58539,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:24.997096 +AWS,eu-west-1,c7i.4xlarge,reserved_1y,no_upfront,0.58539,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:10.384825 +AWS,eu-west-1,c7i.4xlarge,reserved_1y,partial_upfront,0.58539,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:49.578451 +AWS,eu-west-1,c7i.4xlarge,reserved_3y,all_upfront,0.58539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:20.103171 +AWS,eu-west-1,c7i.4xlarge,reserved_3y,no_upfront,0.58539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:16.436580 +AWS,eu-west-1,c7i.4xlarge,reserved_3y,partial_upfront,0.58539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:59.488863 +AWS,eu-west-1,c7i.4xlarge,spot,NA,0.358904,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729660 +AWS,eu-west-1,c7i.8xlarge,on_demand,NA,1.53216,USD,AWS Pricing API,2025-11-30T09:05:27.670811 +AWS,eu-west-1,c7i.8xlarge,reserved_1y,all_upfront,1.17078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:56.816871 +AWS,eu-west-1,c7i.8xlarge,reserved_1y,no_upfront,1.17078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:41.914718 +AWS,eu-west-1,c7i.8xlarge,reserved_1y,partial_upfront,1.17078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:21.531362 +AWS,eu-west-1,c7i.8xlarge,reserved_3y,all_upfront,1.17078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:52.508052 +AWS,eu-west-1,c7i.8xlarge,reserved_3y,no_upfront,1.17078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:47.703289 +AWS,eu-west-1,c7i.8xlarge,reserved_3y,partial_upfront,1.17078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:31.484009 +AWS,eu-west-1,c7i.8xlarge,spot,NA,0.75031,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728555 +AWS,eu-west-1,c7i.large,on_demand,NA,0.09576,USD,AWS Pricing API,2025-11-30T09:06:14.787256 +AWS,eu-west-1,c7i.large,reserved_1y,all_upfront,0.114041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:43.618617 +AWS,eu-west-1,c7i.large,reserved_1y,no_upfront,0.114041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:28.991874 +AWS,eu-west-1,c7i.large,reserved_1y,partial_upfront,0.114041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:07.930030 +AWS,eu-west-1,c7i.large,reserved_3y,all_upfront,0.038014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:38.184142 +AWS,eu-west-1,c7i.large,reserved_3y,no_upfront,0.038014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:35.245800 +AWS,eu-west-1,c7i.large,reserved_3y,partial_upfront,0.038014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:17.810903 +AWS,eu-west-1,c7i.large,spot,NA,0.047155,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730997 +AWS,eu-west-1,c7i.metal-24xl,on_demand,NA,4.59648,USD,AWS Pricing API,2025-11-30T09:05:43.834024 +AWS,eu-west-1,c7i.metal-24xl,reserved_1y,all_upfront,2.840068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:12.852484 +AWS,eu-west-1,c7i.metal-24xl,reserved_1y,no_upfront,2.840068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:57.992504 +AWS,eu-west-1,c7i.metal-24xl,reserved_1y,partial_upfront,2.840068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:37.374756 +AWS,eu-west-1,c7i.metal-24xl,reserved_3y,all_upfront,0.946689,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:08.064093 +AWS,eu-west-1,c7i.metal-24xl,reserved_3y,no_upfront,0.946689,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:03.942458 +AWS,eu-west-1,c7i.metal-24xl,reserved_3y,partial_upfront,0.946689,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:47.348206 +AWS,eu-west-1,c7i.metal-24xl,spot,NA,2.133805,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729138 +AWS,eu-west-1,c7i.metal-48xl,on_demand,NA,9.19296,USD,AWS Pricing API,2025-11-30T09:05:31.842617 +AWS,eu-west-1,c7i.metal-48xl,reserved_1y,all_upfront,7.02469,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:00.886741 +AWS,eu-west-1,c7i.metal-48xl,reserved_1y,no_upfront,7.02469,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:46.040749 +AWS,eu-west-1,c7i.metal-48xl,reserved_1y,partial_upfront,7.02469,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:25.606827 +AWS,eu-west-1,c7i.metal-48xl,reserved_3y,all_upfront,7.02469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:56.509017 +AWS,eu-west-1,c7i.metal-48xl,reserved_3y,no_upfront,7.02469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:51.838430 +AWS,eu-west-1,c7i.metal-48xl,reserved_3y,partial_upfront,7.02469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:35.501544 +AWS,eu-west-1,c7i.metal-48xl,spot,NA,4.074414,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728695 +AWS,eu-west-1,c7i.xlarge,on_demand,NA,0.19152,USD,AWS Pricing API,2025-11-30T09:06:26.230174 +AWS,eu-west-1,c7i.xlarge,reserved_1y,all_upfront,0.118379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:54.853253 +AWS,eu-west-1,c7i.xlarge,reserved_1y,no_upfront,0.118379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:40.434109 +AWS,eu-west-1,c7i.xlarge,reserved_1y,partial_upfront,0.118379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:19.167271 +AWS,eu-west-1,c7i.xlarge,reserved_3y,all_upfront,0.03946,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:49.189351 +AWS,eu-west-1,c7i.xlarge,reserved_3y,no_upfront,0.03946,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:46.715966 +AWS,eu-west-1,c7i.xlarge,reserved_3y,partial_upfront,0.03946,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:28.987234 +AWS,eu-west-1,c7i.xlarge,spot,NA,0.093091,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731419 +AWS,eu-west-1,c8g.12xlarge,on_demand,NA,2.04672,USD,AWS Pricing API,2025-11-30T09:06:23.728716 +AWS,eu-west-1,c8g.12xlarge,reserved_1y,all_upfront,1.489489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:52.428694 +AWS,eu-west-1,c8g.12xlarge,reserved_1y,no_upfront,1.489489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:37.946149 +AWS,eu-west-1,c8g.12xlarge,reserved_1y,partial_upfront,1.489489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:16.656646 +AWS,eu-west-1,c8g.12xlarge,reserved_3y,all_upfront,0.99299,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:46.802909 +AWS,eu-west-1,c8g.12xlarge,reserved_3y,no_upfront,0.99299,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:44.228474 +AWS,eu-west-1,c8g.12xlarge,reserved_3y,partial_upfront,0.99299,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:26.560909 +AWS,eu-west-1,c8g.12xlarge,spot,NA,0.949593,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731299 +AWS,eu-west-1,c8g.16xlarge,on_demand,NA,2.72896,USD,AWS Pricing API,2025-11-30T09:05:26.585966 +AWS,eu-west-1,c8g.16xlarge,reserved_1y,all_upfront,3.248744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:55.737085 +AWS,eu-west-1,c8g.16xlarge,reserved_1y,no_upfront,3.248744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:40.698322 +AWS,eu-west-1,c8g.16xlarge,reserved_1y,partial_upfront,3.248744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:20.447578 +AWS,eu-west-1,c8g.16xlarge,reserved_3y,all_upfront,1.082915,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:51.456010 +AWS,eu-west-1,c8g.16xlarge,reserved_3y,no_upfront,1.082915,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:46.595889 +AWS,eu-west-1,c8g.16xlarge,reserved_3y,partial_upfront,1.082915,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:30.421006 +AWS,eu-west-1,c8g.16xlarge,spot,NA,1.269564,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728498 +AWS,eu-west-1,c8g.24xlarge,on_demand,NA,4.09344,USD,AWS Pricing API,2025-11-30T09:06:13.562879 +AWS,eu-west-1,c8g.24xlarge,reserved_1y,all_upfront,3.12791,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:42.396327 +AWS,eu-west-1,c8g.24xlarge,reserved_1y,no_upfront,3.12791,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:27.745241 +AWS,eu-west-1,c8g.24xlarge,reserved_1y,partial_upfront,3.12791,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:06.728565 +AWS,eu-west-1,c8g.24xlarge,reserved_3y,all_upfront,3.12791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:36.982460 +AWS,eu-west-1,c8g.24xlarge,reserved_3y,no_upfront,3.12791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:33.996684 +AWS,eu-west-1,c8g.24xlarge,reserved_3y,partial_upfront,3.12791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:16.596301 +AWS,eu-west-1,c8g.24xlarge,spot,NA,1.84238,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730927 +AWS,eu-west-1,c8g.2xlarge,on_demand,NA,0.34112,USD,AWS Pricing API,2025-11-30T09:05:38.876611 +AWS,eu-west-1,c8g.2xlarge,reserved_1y,all_upfront,0.215074,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:07.932403 +AWS,eu-west-1,c8g.2xlarge,reserved_1y,no_upfront,0.215074,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:53.077381 +AWS,eu-west-1,c8g.2xlarge,reserved_1y,partial_upfront,0.215074,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:32.525287 +AWS,eu-west-1,c8g.2xlarge,reserved_3y,all_upfront,0.143385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:03.302751 +AWS,eu-west-1,c8g.2xlarge,reserved_3y,no_upfront,0.143385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:58.901103 +AWS,eu-west-1,c8g.2xlarge,reserved_3y,partial_upfront,0.143385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:42.483932 +AWS,eu-west-1,c8g.2xlarge,spot,NA,0.168357,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728988 +AWS,eu-west-1,c8g.48xlarge,on_demand,NA,8.18688,USD,AWS Pricing API,2025-11-30T09:06:32.642376 +AWS,eu-west-1,c8g.48xlarge,reserved_1y,all_upfront,5.838813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:01.234764 +AWS,eu-west-1,c8g.48xlarge,reserved_1y,no_upfront,5.838813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:46.915568 +AWS,eu-west-1,c8g.48xlarge,reserved_1y,partial_upfront,5.838813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:25.543868 +AWS,eu-west-1,c8g.48xlarge,reserved_3y,all_upfront,1.946271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:55.442449 +AWS,eu-west-1,c8g.48xlarge,reserved_3y,no_upfront,1.946271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:53.251937 +AWS,eu-west-1,c8g.48xlarge,reserved_3y,partial_upfront,1.946271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:35.298455 +AWS,eu-west-1,c8g.48xlarge,spot,NA,3.683115,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731719 +AWS,eu-west-1,c8g.4xlarge,on_demand,NA,0.68224,USD,AWS Pricing API,2025-11-30T09:05:41.381708 +AWS,eu-west-1,c8g.4xlarge,reserved_1y,all_upfront,0.52132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:10.371002 +AWS,eu-west-1,c8g.4xlarge,reserved_1y,no_upfront,0.52132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:55.536667 +AWS,eu-west-1,c8g.4xlarge,reserved_1y,partial_upfront,0.52132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:34.951151 +AWS,eu-west-1,c8g.4xlarge,reserved_3y,all_upfront,0.52132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:05.691405 +AWS,eu-west-1,c8g.4xlarge,reserved_3y,no_upfront,0.52132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:01.426262 +AWS,eu-west-1,c8g.4xlarge,reserved_3y,partial_upfront,0.52132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:44.924185 +AWS,eu-west-1,c8g.4xlarge,spot,NA,0.318678,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729023 +AWS,eu-west-1,c8g.8xlarge,on_demand,NA,1.36448,USD,AWS Pricing API,2025-11-30T09:05:44.939157 +AWS,eu-west-1,c8g.8xlarge,reserved_1y,all_upfront,0.973174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:13.930322 +AWS,eu-west-1,c8g.8xlarge,reserved_1y,no_upfront,0.973174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:59.092105 +AWS,eu-west-1,c8g.8xlarge,reserved_1y,partial_upfront,0.973174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:38.462395 +AWS,eu-west-1,c8g.8xlarge,reserved_3y,all_upfront,0.324391,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:09.132128 +AWS,eu-west-1,c8g.8xlarge,reserved_3y,no_upfront,0.324391,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:05.058092 +AWS,eu-west-1,c8g.8xlarge,reserved_3y,partial_upfront,0.324391,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:48.428309 +AWS,eu-west-1,c8g.8xlarge,spot,NA,0.771073,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729190 +AWS,eu-west-1,c8g.large,on_demand,NA,0.08528,USD,AWS Pricing API,2025-11-30T09:06:26.903065 +AWS,eu-west-1,c8g.large,reserved_1y,all_upfront,0.060845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:55.526794 +AWS,eu-west-1,c8g.large,reserved_1y,no_upfront,0.060845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:41.122891 +AWS,eu-west-1,c8g.large,reserved_1y,partial_upfront,0.060845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:19.854994 +AWS,eu-west-1,c8g.large,reserved_3y,all_upfront,0.020282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:49.860419 +AWS,eu-west-1,c8g.large,reserved_3y,no_upfront,0.020282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:47.403514 +AWS,eu-west-1,c8g.large,reserved_3y,partial_upfront,0.020282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:29.653351 +AWS,eu-west-1,c8g.large,spot,NA,0.04107,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731515 +AWS,eu-west-1,c8g.medium,on_demand,NA,0.04264,USD,AWS Pricing API,2025-11-30T09:06:11.362396 +AWS,eu-west-1,c8g.medium,reserved_1y,all_upfront,0.036055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:40.218778 +AWS,eu-west-1,c8g.medium,reserved_1y,no_upfront,0.036055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:25.565810 +AWS,eu-west-1,c8g.medium,reserved_1y,partial_upfront,0.036055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:04.556265 +AWS,eu-west-1,c8g.medium,reserved_3y,all_upfront,0.018018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:34.863499 +AWS,eu-west-1,c8g.medium,reserved_3y,no_upfront,0.018018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:31.794985 +AWS,eu-west-1,c8g.medium,reserved_3y,partial_upfront,0.018018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:14.435320 +AWS,eu-west-1,c8g.medium,spot,NA,0.019141,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730769 +AWS,eu-west-1,c8g.xlarge,on_demand,NA,0.17056,USD,AWS Pricing API,2025-11-30T09:05:35.010939 +AWS,eu-west-1,c8g.xlarge,reserved_1y,all_upfront,0.08911,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:04.034479 +AWS,eu-west-1,c8g.xlarge,reserved_1y,no_upfront,0.08911,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:49.238311 +AWS,eu-west-1,c8g.xlarge,reserved_1y,partial_upfront,0.08911,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:28.701096 +AWS,eu-west-1,c8g.xlarge,reserved_3y,all_upfront,0.08911,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:59.568884 +AWS,eu-west-1,c8g.xlarge,reserved_3y,no_upfront,0.08911,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:55.006261 +AWS,eu-west-1,c8g.xlarge,reserved_3y,partial_upfront,0.08911,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:38.616558 +AWS,eu-west-1,c8g.xlarge,spot,NA,0.084074,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728817 +AWS,eu-west-1,c8gd.12xlarge,on_demand,NA,2.66976,USD,AWS Pricing API,2025-11-30T09:06:09.045038 +AWS,eu-west-1,c8gd.12xlarge,spot,NA,0.835013,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730712 +AWS,eu-west-1,c8gd.16xlarge,on_demand,NA,3.55968,USD,AWS Pricing API,2025-11-30T09:06:33.458622 +AWS,eu-west-1,c8gd.16xlarge,spot,NA,1.043874,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731732 +AWS,eu-west-1,c8gd.24xlarge,on_demand,NA,5.33952,USD,AWS Pricing API,2025-11-30T09:06:19.704011 +AWS,eu-west-1,c8gd.24xlarge,spot,NA,1.610596,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731166 +AWS,eu-west-1,c8gd.2xlarge,on_demand,NA,0.44496,USD,AWS Pricing API,2025-11-30T09:06:03.718541 +AWS,eu-west-1,c8gd.2xlarge,spot,NA,0.141304,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729942 +AWS,eu-west-1,c8gd.48xlarge,on_demand,NA,10.67904,USD,AWS Pricing API,2025-11-30T09:05:51.392180 +AWS,eu-west-1,c8gd.48xlarge,spot,NA,3.265752,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729480 +AWS,eu-west-1,c8gd.4xlarge,on_demand,NA,0.88992,USD,AWS Pricing API,2025-11-30T09:05:36.529922 +AWS,eu-west-1,c8gd.4xlarge,spot,NA,0.283365,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728851 +AWS,eu-west-1,c8gd.8xlarge,on_demand,NA,1.77984,USD,AWS Pricing API,2025-11-30T09:05:59.307169 +AWS,eu-west-1,c8gd.8xlarge,spot,NA,0.583995,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729821 +AWS,eu-west-1,c8gd.large,on_demand,NA,0.11124,USD,AWS Pricing API,2025-11-30T09:06:25.256105 +AWS,eu-west-1,c8gd.large,spot,NA,0.034743,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731369 +AWS,eu-west-1,c8gd.xlarge,on_demand,NA,0.22248,USD,AWS Pricing API,2025-11-30T09:05:47.555328 +AWS,eu-west-1,c8gd.xlarge,spot,NA,0.072477,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729356 +AWS,eu-west-1,d3.2xlarge,on_demand,NA,1.219,USD,AWS Pricing API,2025-11-30T09:06:01.226877 +AWS,eu-west-1,d3.2xlarge,reserved_1y,all_upfront,0.921,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:30.123875 +AWS,eu-west-1,d3.2xlarge,reserved_1y,no_upfront,0.921,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:15.442599 +AWS,eu-west-1,d3.2xlarge,reserved_1y,partial_upfront,0.921,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:54.555825 +AWS,eu-west-1,d3.2xlarge,reserved_3y,all_upfront,0.921,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:25.011083 +AWS,eu-west-1,d3.2xlarge,reserved_3y,no_upfront,0.921,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:21.515954 +AWS,eu-west-1,d3.2xlarge,reserved_3y,partial_upfront,0.921,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:04.481992 +AWS,eu-west-1,d3.2xlarge,spot,NA,0.566746,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729855 +AWS,eu-west-1,d3.4xlarge,on_demand,NA,2.437,USD,AWS Pricing API,2025-11-30T09:06:28.534572 +AWS,eu-west-1,d3.4xlarge,reserved_1y,all_upfront,1.719749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:57.151359 +AWS,eu-west-1,d3.4xlarge,reserved_1y,no_upfront,1.719749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:42.788769 +AWS,eu-west-1,d3.4xlarge,reserved_1y,partial_upfront,1.719749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:21.475824 +AWS,eu-west-1,d3.4xlarge,reserved_3y,all_upfront,0.57325,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:51.456630 +AWS,eu-west-1,d3.4xlarge,reserved_3y,no_upfront,0.57325,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:49.086279 +AWS,eu-west-1,d3.4xlarge,reserved_3y,partial_upfront,0.57325,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:31.288091 +AWS,eu-west-1,d3.4xlarge,spot,NA,1.077119,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731535 +AWS,eu-west-1,d3.8xlarge,on_demand,NA,4.87448,USD,AWS Pricing API,2025-11-30T09:05:31.289603 +AWS,eu-west-1,d3.8xlarge,reserved_1y,all_upfront,3.68511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:00.350615 +AWS,eu-west-1,d3.8xlarge,reserved_1y,no_upfront,3.68511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:45.487547 +AWS,eu-west-1,d3.8xlarge,reserved_1y,partial_upfront,3.68511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:25.058618 +AWS,eu-west-1,d3.8xlarge,reserved_3y,all_upfront,3.68511,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:55.974210 +AWS,eu-west-1,d3.8xlarge,reserved_3y,no_upfront,3.68511,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:51.279532 +AWS,eu-west-1,d3.8xlarge,reserved_3y,partial_upfront,3.68511,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:34.965215 +AWS,eu-west-1,d3.8xlarge,spot,NA,2.150307,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728634 +AWS,eu-west-1,d3.xlarge,on_demand,NA,0.609,USD,AWS Pricing API,2025-11-30T09:05:28.663635 +AWS,eu-west-1,d3.xlarge,reserved_1y,all_upfront,0.438406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:57.769244 +AWS,eu-west-1,d3.xlarge,reserved_1y,no_upfront,0.438406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:42.885071 +AWS,eu-west-1,d3.xlarge,reserved_1y,partial_upfront,0.438406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:22.468763 +AWS,eu-west-1,d3.xlarge,reserved_3y,all_upfront,0.292135,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:53.447266 +AWS,eu-west-1,d3.xlarge,reserved_3y,no_upfront,0.292135,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:48.660766 +AWS,eu-west-1,d3.xlarge,reserved_3y,partial_upfront,0.292135,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:32.419383 +AWS,eu-west-1,d3.xlarge,spot,NA,0.268957,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728532 +AWS,eu-west-1,d3en.12xlarge,on_demand,NA,7.69656,USD,AWS Pricing API,2025-11-30T09:06:21.083025 +AWS,eu-west-1,d3en.12xlarge,reserved_1y,all_upfront,4.617988,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:49.852941 +AWS,eu-west-1,d3en.12xlarge,reserved_1y,no_upfront,4.617988,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:35.349430 +AWS,eu-west-1,d3en.12xlarge,reserved_1y,partial_upfront,4.617988,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:14.095175 +AWS,eu-west-1,d3en.12xlarge,reserved_3y,all_upfront,3.078643,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:44.266728 +AWS,eu-west-1,d3en.12xlarge,reserved_3y,no_upfront,3.078643,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:41.609650 +AWS,eu-west-1,d3en.12xlarge,reserved_3y,partial_upfront,3.078643,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:24.004502 +AWS,eu-west-1,d3en.12xlarge,spot,NA,3.89983,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731211 +AWS,eu-west-1,d3en.2xlarge,on_demand,NA,1.283,USD,AWS Pricing API,2025-11-30T09:05:59.998009 +AWS,eu-west-1,d3en.2xlarge,reserved_1y,all_upfront,0.923758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:28.896181 +AWS,eu-west-1,d3en.2xlarge,reserved_1y,no_upfront,0.923758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:14.208040 +AWS,eu-west-1,d3en.2xlarge,reserved_1y,partial_upfront,0.923758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:53.344576 +AWS,eu-west-1,d3en.2xlarge,reserved_3y,all_upfront,0.615919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:23.822815 +AWS,eu-west-1,d3en.2xlarge,reserved_3y,no_upfront,0.615919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:20.277033 +AWS,eu-west-1,d3en.2xlarge,reserved_3y,partial_upfront,0.615919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:03.268259 +AWS,eu-west-1,d3en.2xlarge,spot,NA,0.595391,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729793 +AWS,eu-west-1,d3en.4xlarge,on_demand,NA,2.566,USD,AWS Pricing API,2025-11-30T09:06:07.543375 +AWS,eu-west-1,d3en.4xlarge,reserved_1y,all_upfront,1.94,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:36.428658 +AWS,eu-west-1,d3en.4xlarge,reserved_1y,no_upfront,1.94,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:21.743767 +AWS,eu-west-1,d3en.4xlarge,reserved_1y,partial_upfront,1.94,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:00.743834 +AWS,eu-west-1,d3en.4xlarge,reserved_3y,all_upfront,1.94,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:31.128047 +AWS,eu-west-1,d3en.4xlarge,reserved_3y,no_upfront,1.94,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:27.878266 +AWS,eu-west-1,d3en.4xlarge,reserved_3y,partial_upfront,1.94,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:10.666484 +AWS,eu-west-1,d3en.4xlarge,spot,NA,1.183254,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730633 +AWS,eu-west-1,d3en.6xlarge,on_demand,NA,3.848,USD,AWS Pricing API,2025-11-30T09:06:33.865228 +AWS,eu-west-1,d3en.6xlarge,reserved_1y,all_upfront,2.715297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:02.475957 +AWS,eu-west-1,d3en.6xlarge,reserved_1y,no_upfront,2.715297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:48.151954 +AWS,eu-west-1,d3en.6xlarge,reserved_1y,partial_upfront,2.715297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:26.749061 +AWS,eu-west-1,d3en.6xlarge,reserved_3y,all_upfront,0.905099,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:56.642502 +AWS,eu-west-1,d3en.6xlarge,reserved_3y,no_upfront,0.905099,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:54.483324 +AWS,eu-west-1,d3en.6xlarge,reserved_3y,partial_upfront,0.905099,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:36.516568 +AWS,eu-west-1,d3en.6xlarge,spot,NA,1.665394,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731769 +AWS,eu-west-1,d3en.8xlarge,on_demand,NA,5.13104,USD,AWS Pricing API,2025-11-30T09:06:29.219464 +AWS,eu-west-1,d3en.8xlarge,reserved_1y,all_upfront,2.65993,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:57.826704 +AWS,eu-west-1,d3en.8xlarge,reserved_1y,no_upfront,2.65993,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:43.468293 +AWS,eu-west-1,d3en.8xlarge,reserved_1y,partial_upfront,2.65993,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:22.144343 +AWS,eu-west-1,d3en.8xlarge,reserved_3y,all_upfront,2.65993,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:52.128765 +AWS,eu-west-1,d3en.8xlarge,reserved_3y,no_upfront,2.65993,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:49.772043 +AWS,eu-west-1,d3en.8xlarge,reserved_3y,partial_upfront,2.65993,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:31.950955 +AWS,eu-west-1,d3en.8xlarge,spot,NA,2.616555,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731528 +AWS,eu-west-1,d3en.xlarge,on_demand,NA,0.641,USD,AWS Pricing API,2025-11-30T09:05:44.244026 +AWS,eu-west-1,d3en.xlarge,reserved_1y,all_upfront,0.384466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:13.257056 +AWS,eu-west-1,d3en.xlarge,reserved_1y,no_upfront,0.384466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:58.403131 +AWS,eu-west-1,d3en.xlarge,reserved_1y,partial_upfront,0.384466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:37.778760 +AWS,eu-west-1,d3en.xlarge,reserved_3y,all_upfront,0.256155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:08.465739 +AWS,eu-west-1,d3en.xlarge,reserved_3y,no_upfront,0.256155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:04.367923 +AWS,eu-west-1,d3en.xlarge,reserved_3y,partial_upfront,0.256155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:47.752790 +AWS,eu-west-1,d3en.xlarge,spot,NA,0.297484,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729221 +AWS,eu-west-1,g4dn.12xlarge,on_demand,NA,4.362,USD,AWS Pricing API,2025-11-30T09:05:31.705402 +AWS,eu-west-1,g4dn.12xlarge,reserved_1y,all_upfront,4.92032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:00.753759 +AWS,eu-west-1,g4dn.12xlarge,reserved_1y,no_upfront,4.92032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:45.893880 +AWS,eu-west-1,g4dn.12xlarge,reserved_1y,partial_upfront,4.92032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:25.467900 +AWS,eu-west-1,g4dn.12xlarge,reserved_3y,all_upfront,1.640107,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:56.377338 +AWS,eu-west-1,g4dn.12xlarge,reserved_3y,no_upfront,1.640107,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:51.699890 +AWS,eu-west-1,g4dn.12xlarge,reserved_3y,partial_upfront,1.640107,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:35.365279 +AWS,eu-west-1,g4dn.12xlarge,spot,NA,2.049022,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728628 +AWS,eu-west-1,g4dn.16xlarge,on_demand,NA,4.853,USD,AWS Pricing API,2025-11-30T09:05:38.038768 +AWS,eu-west-1,g4dn.16xlarge,reserved_1y,all_upfront,3.091096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:07.124441 +AWS,eu-west-1,g4dn.16xlarge,reserved_1y,no_upfront,3.091096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:52.249099 +AWS,eu-west-1,g4dn.16xlarge,reserved_1y,partial_upfront,3.091096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:31.712412 +AWS,eu-west-1,g4dn.16xlarge,reserved_3y,all_upfront,1.030365,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:02.504397 +AWS,eu-west-1,g4dn.16xlarge,reserved_3y,no_upfront,1.030365,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:58.056762 +AWS,eu-west-1,g4dn.16xlarge,reserved_3y,partial_upfront,1.030365,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:41.666266 +AWS,eu-west-1,g4dn.16xlarge,spot,NA,2.087658,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728934 +AWS,eu-west-1,g4dn.2xlarge,on_demand,NA,0.838,USD,AWS Pricing API,2025-11-30T09:06:12.320645 +AWS,eu-west-1,g4dn.2xlarge,reserved_1y,all_upfront,0.626356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:41.167330 +AWS,eu-west-1,g4dn.2xlarge,reserved_1y,no_upfront,0.626356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:26.520897 +AWS,eu-west-1,g4dn.2xlarge,reserved_1y,partial_upfront,0.626356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:05.510713 +AWS,eu-west-1,g4dn.2xlarge,reserved_3y,all_upfront,0.417452,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:35.795428 +AWS,eu-west-1,g4dn.2xlarge,reserved_3y,no_upfront,0.417452,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:32.762614 +AWS,eu-west-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.417452,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:15.369375 +AWS,eu-west-1,g4dn.2xlarge,spot,NA,0.399591,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730844 +AWS,eu-west-1,g4dn.4xlarge,on_demand,NA,1.342,USD,AWS Pricing API,2025-11-30T09:05:52.748733 +AWS,eu-west-1,g4dn.4xlarge,reserved_1y,all_upfront,1.003712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:21.618184 +AWS,eu-west-1,g4dn.4xlarge,reserved_1y,no_upfront,1.003712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:06.957768 +AWS,eu-west-1,g4dn.4xlarge,reserved_1y,partial_upfront,1.003712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:46.194304 +AWS,eu-west-1,g4dn.4xlarge,reserved_3y,all_upfront,0.669237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:16.777502 +AWS,eu-west-1,g4dn.4xlarge,reserved_3y,no_upfront,0.669237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:12.987209 +AWS,eu-west-1,g4dn.4xlarge,reserved_3y,partial_upfront,0.669237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:56.114772 +AWS,eu-west-1,g4dn.4xlarge,spot,NA,0.638915,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729538 +AWS,eu-west-1,g4dn.8xlarge,on_demand,NA,2.426,USD,AWS Pricing API,2025-11-30T09:05:55.496759 +AWS,eu-west-1,g4dn.8xlarge,reserved_1y,all_upfront,1.904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:24.318143 +AWS,eu-west-1,g4dn.8xlarge,reserved_1y,no_upfront,1.904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:09.705777 +AWS,eu-west-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:48.898921 +AWS,eu-west-1,g4dn.8xlarge,reserved_3y,all_upfront,1.904,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:19.431971 +AWS,eu-west-1,g4dn.8xlarge,reserved_3y,no_upfront,1.904,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:15.730579 +AWS,eu-west-1,g4dn.8xlarge,reserved_3y,partial_upfront,1.904,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:58.813398 +AWS,eu-west-1,g4dn.8xlarge,spot,NA,1.132678,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729637 +AWS,eu-west-1,g4dn.xlarge,on_demand,NA,0.587,USD,AWS Pricing API,2025-11-30T09:06:19.027554 +AWS,eu-west-1,g4dn.xlarge,reserved_1y,all_upfront,0.381639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:47.817707 +AWS,eu-west-1,g4dn.xlarge,reserved_1y,no_upfront,0.381639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:33.277915 +AWS,eu-west-1,g4dn.xlarge,reserved_1y,partial_upfront,0.381639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:12.078971 +AWS,eu-west-1,g4dn.xlarge,reserved_3y,all_upfront,0.254546,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:42.267647 +AWS,eu-west-1,g4dn.xlarge,reserved_3y,no_upfront,0.254546,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:39.535214 +AWS,eu-west-1,g4dn.xlarge,reserved_3y,partial_upfront,0.254546,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:21.992879 +AWS,eu-west-1,g4dn.xlarge,spot,NA,0.289845,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731134 +AWS,eu-west-1,g5.12xlarge,on_demand,NA,6.33167,USD,AWS Pricing API,2025-11-30T09:05:16.972243 +AWS,eu-west-1,g5.12xlarge,reserved_1y,all_upfront,4.653767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:46.099920 +AWS,eu-west-1,g5.12xlarge,reserved_1y,no_upfront,4.653767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:31.021709 +AWS,eu-west-1,g5.12xlarge,reserved_1y,partial_upfront,4.653767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:10.925210 +AWS,eu-west-1,g5.12xlarge,reserved_3y,all_upfront,1.551256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:42.044731 +AWS,eu-west-1,g5.12xlarge,reserved_3y,no_upfront,1.551256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:36.809134 +AWS,eu-west-1,g5.12xlarge,reserved_3y,partial_upfront,1.551256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:20.926981 +AWS,eu-west-1,g5.12xlarge,spot,NA,3.034247,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728222 +AWS,eu-west-1,g5.16xlarge,on_demand,NA,4.57237,USD,AWS Pricing API,2025-11-30T09:05:18.930607 +AWS,eu-west-1,g5.16xlarge,reserved_1y,all_upfront,3.657849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:48.116754 +AWS,eu-west-1,g5.16xlarge,reserved_1y,no_upfront,3.657849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:33.032993 +AWS,eu-west-1,g5.16xlarge,reserved_1y,partial_upfront,3.657849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:12.940886 +AWS,eu-west-1,g5.16xlarge,reserved_3y,all_upfront,1.82893,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:44.020075 +AWS,eu-west-1,g5.16xlarge,reserved_3y,no_upfront,1.82893,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:38.852556 +AWS,eu-west-1,g5.16xlarge,reserved_3y,partial_upfront,1.82893,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:22.905749 +AWS,eu-west-1,g5.16xlarge,spot,NA,2.064726,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728226 +AWS,eu-west-1,g5.24xlarge,on_demand,NA,9.09117,USD,AWS Pricing API,2025-11-30T09:05:17.885279 +AWS,eu-west-1,g5.24xlarge,reserved_1y,all_upfront,7.15929,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:47.042187 +AWS,eu-west-1,g5.24xlarge,reserved_1y,no_upfront,7.15929,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:31.960407 +AWS,eu-west-1,g5.24xlarge,reserved_1y,partial_upfront,7.15929,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:11.857428 +AWS,eu-west-1,g5.24xlarge,reserved_3y,all_upfront,7.15929,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:42.959928 +AWS,eu-west-1,g5.24xlarge,reserved_3y,no_upfront,7.15929,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:37.769133 +AWS,eu-west-1,g5.24xlarge,reserved_3y,partial_upfront,7.15929,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:21.851165 +AWS,eu-west-1,g5.24xlarge,spot,NA,4.271547,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728202 +AWS,eu-west-1,g5.2xlarge,on_demand,NA,1.35296,USD,AWS Pricing API,2025-11-30T09:05:35.146757 +AWS,eu-west-1,g5.2xlarge,reserved_1y,all_upfront,1.988813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:04.172715 +AWS,eu-west-1,g5.2xlarge,reserved_1y,no_upfront,1.988813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:49.374558 +AWS,eu-west-1,g5.2xlarge,reserved_1y,partial_upfront,1.988813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:28.836700 +AWS,eu-west-1,g5.2xlarge,reserved_3y,all_upfront,0.662938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:59.698508 +AWS,eu-west-1,g5.2xlarge,reserved_3y,no_upfront,0.662938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:55.141683 +AWS,eu-west-1,g5.2xlarge,reserved_3y,partial_upfront,0.662938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:38.749870 +AWS,eu-west-1,g5.2xlarge,spot,NA,0.679074,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728799 +AWS,eu-west-1,g5.48xlarge,on_demand,NA,18.18233,USD,AWS Pricing API,2025-11-30T09:05:19.606687 +AWS,eu-west-1,g5.48xlarge,reserved_1y,all_upfront,13.364041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:48.791861 +AWS,eu-west-1,g5.48xlarge,reserved_1y,no_upfront,13.364041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:33.713173 +AWS,eu-west-1,g5.48xlarge,reserved_1y,partial_upfront,13.364041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:13.612277 +AWS,eu-west-1,g5.48xlarge,reserved_3y,all_upfront,4.45468,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:44.680632 +AWS,eu-west-1,g5.48xlarge,reserved_3y,no_upfront,4.45468,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:39.539909 +AWS,eu-west-1,g5.48xlarge,reserved_3y,partial_upfront,4.45468,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:23.572083 +AWS,eu-west-1,g5.48xlarge,spot,NA,8.476799,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728260 +AWS,eu-west-1,g5.4xlarge,on_demand,NA,1.81287,USD,AWS Pricing API,2025-11-30T09:05:29.238192 +AWS,eu-west-1,g5.4xlarge,reserved_1y,all_upfront,1.359625,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:58.312743 +AWS,eu-west-1,g5.4xlarge,reserved_1y,no_upfront,1.359625,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:43.435640 +AWS,eu-west-1,g5.4xlarge,reserved_1y,partial_upfront,1.359625,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:23.008405 +AWS,eu-west-1,g5.4xlarge,reserved_3y,all_upfront,0.906428,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:53.982823 +AWS,eu-west-1,g5.4xlarge,reserved_3y,no_upfront,0.906428,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:49.214552 +AWS,eu-west-1,g5.4xlarge,reserved_3y,partial_upfront,0.906428,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:32.955810 +AWS,eu-west-1,g5.4xlarge,spot,NA,0.889822,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728605 +AWS,eu-west-1,g5.8xlarge,on_demand,NA,2.73271,USD,AWS Pricing API,2025-11-30T09:05:37.077269 +AWS,eu-west-1,g5.8xlarge,reserved_1y,all_upfront,4.017123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:06.161228 +AWS,eu-west-1,g5.8xlarge,reserved_1y,no_upfront,4.017123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:51.293224 +AWS,eu-west-1,g5.8xlarge,reserved_1y,partial_upfront,4.017123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:30.758194 +AWS,eu-west-1,g5.8xlarge,reserved_3y,all_upfront,1.339041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:01.545858 +AWS,eu-west-1,g5.8xlarge,reserved_3y,no_upfront,1.339041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:57.096363 +AWS,eu-west-1,g5.8xlarge,reserved_3y,partial_upfront,1.339041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:40.631275 +AWS,eu-west-1,g5.8xlarge,spot,NA,1.318141,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728873 +AWS,eu-west-1,g5.xlarge,on_demand,NA,1.123,USD,AWS Pricing API,2025-11-30T09:06:24.701648 +AWS,eu-west-1,g5.xlarge,reserved_1y,all_upfront,0.673772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:53.375629 +AWS,eu-west-1,g5.xlarge,reserved_1y,no_upfront,0.673772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:38.927556 +AWS,eu-west-1,g5.xlarge,reserved_1y,partial_upfront,0.673772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:17.596997 +AWS,eu-west-1,g5.xlarge,reserved_3y,all_upfront,0.449191,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:47.735875 +AWS,eu-west-1,g5.xlarge,reserved_3y,no_upfront,0.449191,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:45.194671 +AWS,eu-west-1,g5.xlarge,reserved_3y,partial_upfront,0.449191,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:27.497595 +AWS,eu-west-1,g5.xlarge,spot,NA,0.549084,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731376 +AWS,eu-west-1,i2.2xlarge,on_demand,NA,1.876,USD,AWS Pricing API,2025-11-30T09:06:06.589720 +AWS,eu-west-1,i2.2xlarge,reserved_1y,all_upfront,1.540918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:35.469395 +AWS,eu-west-1,i2.2xlarge,reserved_1y,no_upfront,1.540918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:20.773245 +AWS,eu-west-1,i2.2xlarge,reserved_1y,partial_upfront,1.540918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:59.802608 +AWS,eu-west-1,i2.2xlarge,reserved_3y,all_upfront,0.792973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:30.197537 +AWS,eu-west-1,i2.2xlarge,reserved_3y,no_upfront,0.792973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:26.902219 +AWS,eu-west-1,i2.2xlarge,reserved_3y,partial_upfront,0.792973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:09.723565 +AWS,eu-west-1,i2.2xlarge,spot,NA,0.817868,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730585 +AWS,eu-west-1,i2.4xlarge,on_demand,NA,3.751,USD,AWS Pricing API,2025-11-30T09:06:02.465225 +AWS,eu-west-1,i2.4xlarge,reserved_1y,all_upfront,3.268493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:31.343676 +AWS,eu-west-1,i2.4xlarge,reserved_1y,no_upfront,3.268493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:16.674765 +AWS,eu-west-1,i2.4xlarge,reserved_1y,partial_upfront,3.268493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:55.761533 +AWS,eu-west-1,i2.4xlarge,reserved_3y,all_upfront,1.089498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:26.217980 +AWS,eu-west-1,i2.4xlarge,reserved_3y,no_upfront,1.089498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:22.760567 +AWS,eu-west-1,i2.4xlarge,reserved_3y,partial_upfront,1.089498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:05.691317 +AWS,eu-west-1,i2.4xlarge,spot,NA,1.634359,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729914 +AWS,eu-west-1,i2.8xlarge,on_demand,NA,7.502,USD,AWS Pricing API,2025-11-30T09:06:09.181175 +AWS,eu-west-1,i2.8xlarge,reserved_1y,all_upfront,3.5241,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:38.052514 +AWS,eu-west-1,i2.8xlarge,reserved_1y,no_upfront,3.5241,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:23.380662 +AWS,eu-west-1,i2.8xlarge,reserved_1y,partial_upfront,3.5241,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:02.389330 +AWS,eu-west-1,i2.8xlarge,reserved_3y,all_upfront,2.416033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:32.737661 +AWS,eu-west-1,i2.8xlarge,reserved_3y,no_upfront,2.416033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:29.538670 +AWS,eu-west-1,i2.8xlarge,reserved_3y,partial_upfront,2.416033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:12.279404 +AWS,eu-west-1,i2.8xlarge,spot,NA,3.319409,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730744 +AWS,eu-west-1,i2.xlarge,on_demand,NA,0.938,USD,AWS Pricing API,2025-11-30T09:06:09.717332 +AWS,eu-west-1,i2.xlarge,reserved_1y,all_upfront,0.532,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:38.591416 +AWS,eu-west-1,i2.xlarge,reserved_1y,no_upfront,0.532,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:23.927865 +AWS,eu-west-1,i2.xlarge,reserved_1y,partial_upfront,0.532,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:02.933701 +AWS,eu-west-1,i2.xlarge,reserved_3y,all_upfront,0.532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:33.265212 +AWS,eu-west-1,i2.xlarge,reserved_3y,no_upfront,0.532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:30.113680 +AWS,eu-west-1,i2.xlarge,reserved_3y,partial_upfront,0.532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:12.813484 +AWS,eu-west-1,i2.xlarge,spot,NA,0.407158,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730700 +AWS,eu-west-1,i3.16xlarge,on_demand,NA,5.504,USD,AWS Pricing API,2025-11-30T09:06:16.040895 +AWS,eu-west-1,i3.16xlarge,reserved_1y,all_upfront,4.328,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:44.842746 +AWS,eu-west-1,i3.16xlarge,reserved_1y,no_upfront,4.328,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:30.232858 +AWS,eu-west-1,i3.16xlarge,reserved_1y,partial_upfront,4.328,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:09.130993 +AWS,eu-west-1,i3.16xlarge,reserved_3y,all_upfront,4.328,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:39.366610 +AWS,eu-west-1,i3.16xlarge,reserved_3y,no_upfront,4.328,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:36.492619 +AWS,eu-west-1,i3.16xlarge,reserved_3y,partial_upfront,4.328,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:19.029692 +AWS,eu-west-1,i3.16xlarge,spot,NA,2.526616,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731043 +AWS,eu-west-1,i3.2xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T09:05:35.282357 +AWS,eu-west-1,i3.2xlarge,reserved_1y,all_upfront,0.619384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:04.308975 +AWS,eu-west-1,i3.2xlarge,reserved_1y,no_upfront,0.619384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:49.519089 +AWS,eu-west-1,i3.2xlarge,reserved_1y,partial_upfront,0.619384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:28.971199 +AWS,eu-west-1,i3.2xlarge,reserved_3y,all_upfront,0.309795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:59.829140 +AWS,eu-west-1,i3.2xlarge,reserved_3y,no_upfront,0.309795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:55.286315 +AWS,eu-west-1,i3.2xlarge,reserved_3y,partial_upfront,0.309795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:38.885906 +AWS,eu-west-1,i3.2xlarge,spot,NA,0.348193,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728834 +AWS,eu-west-1,i3.4xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T09:05:36.802043 +AWS,eu-west-1,i3.4xlarge,reserved_1y,all_upfront,2.109703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:05.888345 +AWS,eu-west-1,i3.4xlarge,reserved_1y,no_upfront,2.109703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:51.025775 +AWS,eu-west-1,i3.4xlarge,reserved_1y,partial_upfront,2.109703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:30.480919 +AWS,eu-west-1,i3.4xlarge,reserved_3y,all_upfront,0.703234,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:01.280330 +AWS,eu-west-1,i3.4xlarge,reserved_3y,no_upfront,0.703234,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:56.824346 +AWS,eu-west-1,i3.4xlarge,reserved_3y,partial_upfront,0.703234,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:40.365321 +AWS,eu-west-1,i3.4xlarge,spot,NA,0.661197,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728885 +AWS,eu-west-1,i3.8xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T09:05:30.877186 +AWS,eu-west-1,i3.8xlarge,reserved_1y,all_upfront,2.019521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:59.938868 +AWS,eu-west-1,i3.8xlarge,reserved_1y,no_upfront,2.019521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:45.078089 +AWS,eu-west-1,i3.8xlarge,reserved_1y,partial_upfront,2.019521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:24.635274 +AWS,eu-west-1,i3.8xlarge,reserved_3y,all_upfront,0.673174,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:55.577221 +AWS,eu-west-1,i3.8xlarge,reserved_3y,no_upfront,0.673174,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:50.866709 +AWS,eu-west-1,i3.8xlarge,reserved_3y,partial_upfront,0.673174,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:34.561089 +AWS,eu-west-1,i3.8xlarge,spot,NA,1.268837,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728658 +AWS,eu-west-1,i3.large,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T09:05:35.970955 +AWS,eu-west-1,i3.large,reserved_1y,all_upfront,0.155096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:05.003487 +AWS,eu-west-1,i3.large,reserved_1y,no_upfront,0.155096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:50.214323 +AWS,eu-west-1,i3.large,reserved_1y,partial_upfront,0.155096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:29.655590 +AWS,eu-west-1,i3.large,reserved_3y,all_upfront,0.077699,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:00.490161 +AWS,eu-west-1,i3.large,reserved_3y,no_upfront,0.077699,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:56.001671 +AWS,eu-west-1,i3.large,reserved_3y,partial_upfront,0.077699,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:39.562334 +AWS,eu-west-1,i3.large,spot,NA,0.076959,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728868 +AWS,eu-west-1,i3.xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T09:06:01.641472 +AWS,eu-west-1,i3.xlarge,reserved_1y,all_upfront,0.309192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:30.531291 +AWS,eu-west-1,i3.xlarge,reserved_1y,no_upfront,0.309192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:15.850266 +AWS,eu-west-1,i3.xlarge,reserved_1y,partial_upfront,0.309192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:54.961247 +AWS,eu-west-1,i3.xlarge,reserved_3y,all_upfront,0.154397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:25.410628 +AWS,eu-west-1,i3.xlarge,reserved_3y,no_upfront,0.154397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:21.934087 +AWS,eu-west-1,i3.xlarge,reserved_3y,partial_upfront,0.154397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:04.881079 +AWS,eu-west-1,i3.xlarge,spot,NA,0.165378,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729873 +AWS,eu-west-1,i3en.12xlarge,on_demand,NA,6.0,USD,AWS Pricing API,2025-11-30T09:05:32.929966 +AWS,eu-west-1,i3en.12xlarge,reserved_1y,all_upfront,4.828575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:01.976804 +AWS,eu-west-1,i3en.12xlarge,reserved_1y,no_upfront,4.828575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:47.135385 +AWS,eu-west-1,i3en.12xlarge,reserved_1y,partial_upfront,4.828575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:26.676058 +AWS,eu-west-1,i3en.12xlarge,reserved_3y,all_upfront,2.414192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:57.560637 +AWS,eu-west-1,i3en.12xlarge,reserved_3y,no_upfront,2.414192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:52.940482 +AWS,eu-west-1,i3en.12xlarge,reserved_3y,partial_upfront,2.414192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:36.573303 +AWS,eu-west-1,i3en.12xlarge,spot,NA,2.76114,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728682 +AWS,eu-west-1,i3en.24xlarge,on_demand,NA,12.0,USD,AWS Pricing API,2025-11-30T09:05:38.331037 +AWS,eu-west-1,i3en.24xlarge,reserved_1y,all_upfront,7.649429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:07.395443 +AWS,eu-west-1,i3en.24xlarge,reserved_1y,no_upfront,7.649429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:52.528472 +AWS,eu-west-1,i3en.24xlarge,reserved_1y,partial_upfront,7.649429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:31.982978 +AWS,eu-west-1,i3en.24xlarge,reserved_3y,all_upfront,2.54981,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:02.768832 +AWS,eu-west-1,i3en.24xlarge,reserved_3y,no_upfront,2.54981,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:58.338764 +AWS,eu-west-1,i3en.24xlarge,reserved_3y,partial_upfront,2.54981,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:41.931503 +AWS,eu-west-1,i3en.24xlarge,spot,NA,5.485231,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728916 +AWS,eu-west-1,i3en.2xlarge,on_demand,NA,1.0,USD,AWS Pricing API,2025-11-30T09:05:27.966181 +AWS,eu-west-1,i3en.2xlarge,reserved_1y,all_upfront,0.650228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:57.085316 +AWS,eu-west-1,i3en.2xlarge,reserved_1y,no_upfront,0.650228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:42.184796 +AWS,eu-west-1,i3en.2xlarge,reserved_1y,partial_upfront,0.650228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:21.799487 +AWS,eu-west-1,i3en.2xlarge,reserved_3y,all_upfront,0.433409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:52.785234 +AWS,eu-west-1,i3en.2xlarge,reserved_3y,no_upfront,0.433409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:47.974718 +AWS,eu-west-1,i3en.2xlarge,reserved_3y,partial_upfront,0.433409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:31.747596 +AWS,eu-west-1,i3en.2xlarge,spot,NA,0.455583,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728543 +AWS,eu-west-1,i3en.3xlarge,on_demand,NA,1.5,USD,AWS Pricing API,2025-11-30T09:06:23.320603 +AWS,eu-west-1,i3en.3xlarge,reserved_1y,all_upfront,1.024,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:52.016945 +AWS,eu-west-1,i3en.3xlarge,reserved_1y,no_upfront,1.024,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:37.539520 +AWS,eu-west-1,i3en.3xlarge,reserved_1y,partial_upfront,1.024,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:16.255963 +AWS,eu-west-1,i3en.3xlarge,reserved_3y,all_upfront,1.024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:46.405829 +AWS,eu-west-1,i3en.3xlarge,reserved_3y,no_upfront,1.024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:43.814981 +AWS,eu-west-1,i3en.3xlarge,reserved_3y,partial_upfront,1.024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:26.159145 +AWS,eu-west-1,i3en.3xlarge,spot,NA,0.676419,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731312 +AWS,eu-west-1,i3en.6xlarge,on_demand,NA,3.0,USD,AWS Pricing API,2025-11-30T09:06:14.515826 +AWS,eu-west-1,i3en.6xlarge,reserved_1y,all_upfront,1.517,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:43.347010 +AWS,eu-west-1,i3en.6xlarge,reserved_1y,no_upfront,1.517,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:28.710554 +AWS,eu-west-1,i3en.6xlarge,reserved_1y,partial_upfront,1.517,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:07.664225 +AWS,eu-west-1,i3en.6xlarge,reserved_3y,all_upfront,1.517,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:37.917704 +AWS,eu-west-1,i3en.6xlarge,reserved_3y,no_upfront,1.517,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:34.965640 +AWS,eu-west-1,i3en.6xlarge,reserved_3y,partial_upfront,1.517,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:17.540691 +AWS,eu-west-1,i3en.6xlarge,spot,NA,1.362092,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730946 +AWS,eu-west-1,i3en.large,on_demand,NA,0.25,USD,AWS Pricing API,2025-11-30T09:05:47.014958 +AWS,eu-west-1,i3en.large,reserved_1y,all_upfront,0.197,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:15.951173 +AWS,eu-west-1,i3en.large,reserved_1y,no_upfront,0.197,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:01.177950 +AWS,eu-west-1,i3en.large,reserved_1y,partial_upfront,0.197,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:40.483995 +AWS,eu-west-1,i3en.large,reserved_3y,all_upfront,0.197,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:11.115967 +AWS,eu-west-1,i3en.large,reserved_3y,no_upfront,0.197,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:07.137470 +AWS,eu-west-1,i3en.large,reserved_3y,partial_upfront,0.197,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:50.448264 +AWS,eu-west-1,i3en.large,spot,NA,0.111768,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729339 +AWS,eu-west-1,i3en.xlarge,on_demand,NA,0.5,USD,AWS Pricing API,2025-11-30T09:05:46.312924 +AWS,eu-west-1,i3en.xlarge,reserved_1y,all_upfront,0.325671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:15.277910 +AWS,eu-west-1,i3en.xlarge,reserved_1y,no_upfront,0.325671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:00.465081 +AWS,eu-west-1,i3en.xlarge,reserved_1y,partial_upfront,0.325671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:39.809066 +AWS,eu-west-1,i3en.xlarge,reserved_3y,all_upfront,0.217224,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:10.455845 +AWS,eu-west-1,i3en.xlarge,reserved_3y,no_upfront,0.217224,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:06.441039 +AWS,eu-west-1,i3en.xlarge,reserved_3y,partial_upfront,0.217224,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:49.777141 +AWS,eu-west-1,i3en.xlarge,spot,NA,0.230651,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729298 +AWS,eu-west-1,i4g.16xlarge,on_demand,NA,5.44637,USD,AWS Pricing API,2025-11-30T09:06:03.583968 +AWS,eu-west-1,i4g.16xlarge,reserved_1y,all_upfront,3.55474,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:32.425347 +AWS,eu-west-1,i4g.16xlarge,reserved_1y,no_upfront,3.55474,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:17.769456 +AWS,eu-west-1,i4g.16xlarge,reserved_1y,partial_upfront,3.55474,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:56.849234 +AWS,eu-west-1,i4g.16xlarge,reserved_3y,all_upfront,3.55474,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:27.278149 +AWS,eu-west-1,i4g.16xlarge,reserved_3y,no_upfront,3.55474,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:23.867610 +AWS,eu-west-1,i4g.16xlarge,reserved_3y,partial_upfront,3.55474,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:06.761579 +AWS,eu-west-1,i4g.16xlarge,spot,NA,2.37616,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729953 +AWS,eu-west-1,i4g.2xlarge,on_demand,NA,0.6808,USD,AWS Pricing API,2025-11-30T09:06:17.669677 +AWS,eu-west-1,i4g.2xlarge,reserved_1y,all_upfront,0.503004,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:46.458850 +AWS,eu-west-1,i4g.2xlarge,reserved_1y,no_upfront,0.503004,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:31.892107 +AWS,eu-west-1,i4g.2xlarge,reserved_1y,partial_upfront,0.503004,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:10.742239 +AWS,eu-west-1,i4g.2xlarge,reserved_3y,all_upfront,0.335348,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:40.948480 +AWS,eu-west-1,i4g.2xlarge,reserved_3y,no_upfront,0.335348,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:38.157125 +AWS,eu-west-1,i4g.2xlarge,reserved_3y,partial_upfront,0.335348,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:20.652222 +AWS,eu-west-1,i4g.2xlarge,spot,NA,0.307597,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731069 +AWS,eu-west-1,i4g.4xlarge,on_demand,NA,1.36159,USD,AWS Pricing API,2025-11-30T09:06:16.584868 +AWS,eu-west-1,i4g.4xlarge,reserved_1y,all_upfront,2.079224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:45.381875 +AWS,eu-west-1,i4g.4xlarge,reserved_1y,no_upfront,2.079224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:30.776065 +AWS,eu-west-1,i4g.4xlarge,reserved_1y,partial_upfront,2.079224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:09.665227 +AWS,eu-west-1,i4g.4xlarge,reserved_3y,all_upfront,0.693075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:39.895396 +AWS,eu-west-1,i4g.4xlarge,reserved_3y,no_upfront,0.693075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:37.048241 +AWS,eu-west-1,i4g.4xlarge,reserved_3y,partial_upfront,0.693075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:19.571705 +AWS,eu-west-1,i4g.4xlarge,spot,NA,0.636947,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731023 +AWS,eu-west-1,i4g.8xlarge,on_demand,NA,2.72319,USD,AWS Pricing API,2025-11-30T09:06:03.853783 +AWS,eu-west-1,i4g.8xlarge,reserved_1y,all_upfront,4.158447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:32.694276 +AWS,eu-west-1,i4g.8xlarge,reserved_1y,no_upfront,4.158447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:18.040556 +AWS,eu-west-1,i4g.8xlarge,reserved_1y,partial_upfront,4.158447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:57.113458 +AWS,eu-west-1,i4g.8xlarge,reserved_3y,all_upfront,1.386149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:27.548905 +AWS,eu-west-1,i4g.8xlarge,reserved_3y,no_upfront,1.386149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:24.139890 +AWS,eu-west-1,i4g.8xlarge,reserved_3y,partial_upfront,1.386149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:07.032999 +AWS,eu-west-1,i4g.8xlarge,spot,NA,1.291118,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729970 +AWS,eu-west-1,i4g.large,on_demand,NA,0.1702,USD,AWS Pricing API,2025-11-30T09:05:37.345211 +AWS,eu-west-1,i4g.large,reserved_1y,all_upfront,0.103653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:06.441135 +AWS,eu-west-1,i4g.large,reserved_1y,no_upfront,0.103653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:51.563385 +AWS,eu-west-1,i4g.large,reserved_1y,partial_upfront,0.103653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:31.025342 +AWS,eu-west-1,i4g.large,reserved_3y,all_upfront,0.034551,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:01.829712 +AWS,eu-west-1,i4g.large,reserved_3y,no_upfront,0.034551,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:57.368754 +AWS,eu-west-1,i4g.large,reserved_3y,partial_upfront,0.034551,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:40.898796 +AWS,eu-west-1,i4g.large,spot,NA,0.077102,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728953 +AWS,eu-west-1,i4g.xlarge,on_demand,NA,0.3404,USD,AWS Pricing API,2025-11-30T09:06:00.414403 +AWS,eu-west-1,i4g.xlarge,reserved_1y,all_upfront,0.291621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:29.302335 +AWS,eu-west-1,i4g.xlarge,reserved_1y,no_upfront,0.291621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:14.617249 +AWS,eu-west-1,i4g.xlarge,reserved_1y,partial_upfront,0.291621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:53.754377 +AWS,eu-west-1,i4g.xlarge,reserved_3y,all_upfront,0.145807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:24.220439 +AWS,eu-west-1,i4g.xlarge,reserved_3y,no_upfront,0.145807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:20.695998 +AWS,eu-west-1,i4g.xlarge,reserved_3y,partial_upfront,0.145807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:03.680796 +AWS,eu-west-1,i4g.xlarge,spot,NA,0.155206,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729815 +AWS,eu-west-1,i4i.16xlarge,on_demand,NA,6.054,USD,AWS Pricing API,2025-11-30T09:05:51.255673 +AWS,eu-west-1,i4i.16xlarge,reserved_1y,all_upfront,4.711,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:20.139144 +AWS,eu-west-1,i4i.16xlarge,reserved_1y,no_upfront,4.711,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:05.451107 +AWS,eu-west-1,i4i.16xlarge,reserved_1y,partial_upfront,4.711,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:44.703709 +AWS,eu-west-1,i4i.16xlarge,reserved_3y,all_upfront,4.711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:15.314719 +AWS,eu-west-1,i4i.16xlarge,reserved_3y,no_upfront,4.711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:11.470806 +AWS,eu-west-1,i4i.16xlarge,reserved_3y,partial_upfront,4.711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:54.628131 +AWS,eu-west-1,i4i.16xlarge,spot,NA,2.632998,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729474 +AWS,eu-west-1,i4i.2xlarge,on_demand,NA,0.757,USD,AWS Pricing API,2025-11-30T09:06:07.400220 +AWS,eu-west-1,i4i.2xlarge,reserved_1y,all_upfront,0.784813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:36.295112 +AWS,eu-west-1,i4i.2xlarge,reserved_1y,no_upfront,0.784813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:21.606906 +AWS,eu-west-1,i4i.2xlarge,reserved_1y,partial_upfront,0.784813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:00.609415 +AWS,eu-west-1,i4i.2xlarge,reserved_3y,all_upfront,0.392271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:30.995702 +AWS,eu-west-1,i4i.2xlarge,reserved_3y,no_upfront,0.392271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:27.740611 +AWS,eu-west-1,i4i.2xlarge,reserved_3y,partial_upfront,0.392271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:10.533600 +AWS,eu-west-1,i4i.2xlarge,spot,NA,0.399965,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730597 +AWS,eu-west-1,i4i.32xlarge,on_demand,NA,12.1088,USD,AWS Pricing API,2025-11-30T09:06:19.840435 +AWS,eu-west-1,i4i.32xlarge,reserved_1y,all_upfront,9.42168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:48.629753 +AWS,eu-west-1,i4i.32xlarge,reserved_1y,no_upfront,9.42168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:34.111568 +AWS,eu-west-1,i4i.32xlarge,reserved_1y,partial_upfront,9.42168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:12.883087 +AWS,eu-west-1,i4i.32xlarge,reserved_3y,all_upfront,9.42168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:43.059682 +AWS,eu-west-1,i4i.32xlarge,reserved_3y,no_upfront,9.42168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:40.363323 +AWS,eu-west-1,i4i.32xlarge,reserved_3y,partial_upfront,9.42168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:22.803255 +AWS,eu-west-1,i4i.32xlarge,spot,NA,5.837146,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731204 +AWS,eu-west-1,i4i.4xlarge,on_demand,NA,1.514,USD,AWS Pricing API,2025-11-30T09:05:55.772047 +AWS,eu-west-1,i4i.4xlarge,reserved_1y,all_upfront,0.921119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:24.587911 +AWS,eu-west-1,i4i.4xlarge,reserved_1y,no_upfront,0.921119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:09.975783 +AWS,eu-west-1,i4i.4xlarge,reserved_1y,partial_upfront,0.921119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:49.168144 +AWS,eu-west-1,i4i.4xlarge,reserved_3y,all_upfront,0.30704,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:19.707290 +AWS,eu-west-1,i4i.4xlarge,reserved_3y,no_upfront,0.30704,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:16.026113 +AWS,eu-west-1,i4i.4xlarge,reserved_3y,partial_upfront,0.30704,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:59.091811 +AWS,eu-west-1,i4i.4xlarge,spot,NA,0.7616,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729631 +AWS,eu-west-1,i4i.8xlarge,on_demand,NA,3.027,USD,AWS Pricing API,2025-11-30T09:05:58.745591 +AWS,eu-west-1,i4i.8xlarge,reserved_1y,all_upfront,1.842352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:27.676207 +AWS,eu-west-1,i4i.8xlarge,reserved_1y,no_upfront,1.842352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:12.975087 +AWS,eu-west-1,i4i.8xlarge,reserved_1y,partial_upfront,1.842352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:52.135106 +AWS,eu-west-1,i4i.8xlarge,reserved_3y,all_upfront,0.614117,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:22.630966 +AWS,eu-west-1,i4i.8xlarge,reserved_3y,no_upfront,0.614117,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:19.047725 +AWS,eu-west-1,i4i.8xlarge,reserved_3y,partial_upfront,0.614117,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:02.043590 +AWS,eu-west-1,i4i.8xlarge,spot,NA,1.419034,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729751 +AWS,eu-west-1,i4i.large,on_demand,NA,0.189,USD,AWS Pricing API,2025-11-30T09:06:24.565225 +AWS,eu-west-1,i4i.large,reserved_1y,all_upfront,0.147,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:53.239633 +AWS,eu-west-1,i4i.large,reserved_1y,no_upfront,0.147,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:38.782114 +AWS,eu-west-1,i4i.large,reserved_1y,partial_upfront,0.147,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:17.464153 +AWS,eu-west-1,i4i.large,reserved_3y,all_upfront,0.147,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:47.599712 +AWS,eu-west-1,i4i.large,reserved_3y,no_upfront,0.147,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:45.057641 +AWS,eu-west-1,i4i.large,reserved_3y,partial_upfront,0.147,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:27.360101 +AWS,eu-west-1,i4i.large,spot,NA,0.087991,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731401 +AWS,eu-west-1,i4i.xlarge,on_demand,NA,0.378,USD,AWS Pricing API,2025-11-30T09:06:05.762159 +AWS,eu-west-1,i4i.xlarge,reserved_1y,all_upfront,0.32358,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:34.651220 +AWS,eu-west-1,i4i.xlarge,reserved_1y,no_upfront,0.32358,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:19.950896 +AWS,eu-west-1,i4i.xlarge,reserved_1y,partial_upfront,0.32358,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:59.000569 +AWS,eu-west-1,i4i.xlarge,reserved_3y,all_upfront,0.16186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:29.398734 +AWS,eu-west-1,i4i.xlarge,reserved_3y,no_upfront,0.16186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:26.072779 +AWS,eu-west-1,i4i.xlarge,reserved_3y,partial_upfront,0.16186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:08.916755 +AWS,eu-west-1,i4i.xlarge,spot,NA,0.185996,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730010 +AWS,eu-west-1,i7i.12xlarge,on_demand,NA,4.9949,USD,AWS Pricing API,2025-11-30T09:05:43.698510 +AWS,eu-west-1,i7i.16xlarge,on_demand,NA,6.6598,USD,AWS Pricing API,2025-11-30T09:06:29.903266 +AWS,eu-west-1,i7i.24xlarge,on_demand,NA,9.9898,USD,AWS Pricing API,2025-11-30T09:05:24.226957 +AWS,eu-west-1,i7i.2xlarge,on_demand,NA,0.8325,USD,AWS Pricing API,2025-11-30T09:05:21.355413 +AWS,eu-west-1,i7i.48xlarge,on_demand,NA,19.9795,USD,AWS Pricing API,2025-11-30T09:05:23.125720 +AWS,eu-west-1,i7i.4xlarge,on_demand,NA,1.665,USD,AWS Pricing API,2025-11-30T09:06:26.768827 +AWS,eu-west-1,i7i.8xlarge,on_demand,NA,3.3299,USD,AWS Pricing API,2025-11-30T09:05:56.456813 +AWS,eu-west-1,i7i.large,on_demand,NA,0.2081,USD,AWS Pricing API,2025-11-30T09:05:39.846507 +AWS,eu-west-1,i7i.xlarge,on_demand,NA,0.4162,USD,AWS Pricing API,2025-11-30T09:05:48.394721 +AWS,eu-west-1,i8g.12xlarge,on_demand,NA,4.5384,USD,AWS Pricing API,2025-11-30T09:06:20.112714 +AWS,eu-west-1,i8g.12xlarge,spot,NA,2.942096,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731229 +AWS,eu-west-1,i8g.16xlarge,on_demand,NA,6.0512,USD,AWS Pricing API,2025-11-30T09:06:17.133177 +AWS,eu-west-1,i8g.16xlarge,spot,NA,3.340427,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731095 +AWS,eu-west-1,i8g.24xlarge,on_demand,NA,9.0768,USD,AWS Pricing API,2025-11-30T09:06:19.569057 +AWS,eu-west-1,i8g.24xlarge,spot,NA,5.791471,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731172 +AWS,eu-west-1,i8g.2xlarge,on_demand,NA,0.7564,USD,AWS Pricing API,2025-11-30T09:05:46.450491 +AWS,eu-west-1,i8g.2xlarge,spot,NA,0.398227,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729245 +AWS,eu-west-1,i8g.48xlarge,on_demand,NA,18.1536,USD,AWS Pricing API,2025-11-30T09:05:26.719729 +AWS,eu-west-1,i8g.48xlarge,spot,NA,9.591479,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728515 +AWS,eu-west-1,i8g.4xlarge,on_demand,NA,1.5128,USD,AWS Pricing API,2025-11-30T09:06:14.239190 +AWS,eu-west-1,i8g.4xlarge,spot,NA,0.833136,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730882 +AWS,eu-west-1,i8g.8xlarge,on_demand,NA,3.0256,USD,AWS Pricing API,2025-11-30T09:06:33.595967 +AWS,eu-west-1,i8g.8xlarge,spot,NA,1.686956,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731763 +AWS,eu-west-1,i8g.large,on_demand,NA,0.1891,USD,AWS Pricing API,2025-11-30T09:05:50.984200 +AWS,eu-west-1,i8g.large,spot,NA,0.102152,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729424 +AWS,eu-west-1,i8g.xlarge,on_demand,NA,0.3782,USD,AWS Pricing API,2025-11-30T09:05:42.886794 +AWS,eu-west-1,i8g.xlarge,spot,NA,0.20938,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729144 +AWS,eu-west-1,im4gn.16xlarge,on_demand,NA,6.41766,USD,AWS Pricing API,2025-11-30T09:05:50.032893 +AWS,eu-west-1,im4gn.16xlarge,reserved_1y,all_upfront,4.700194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:18.919493 +AWS,eu-west-1,im4gn.16xlarge,reserved_1y,no_upfront,4.700194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:04.219833 +AWS,eu-west-1,im4gn.16xlarge,reserved_1y,partial_upfront,4.700194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:43.487035 +AWS,eu-west-1,im4gn.16xlarge,reserved_3y,all_upfront,3.133451,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:14.111122 +AWS,eu-west-1,im4gn.16xlarge,reserved_3y,no_upfront,3.133451,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:10.227277 +AWS,eu-west-1,im4gn.16xlarge,reserved_3y,partial_upfront,3.133451,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:53.419078 +AWS,eu-west-1,im4gn.16xlarge,spot,NA,2.839461,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729457 +AWS,eu-west-1,im4gn.2xlarge,on_demand,NA,0.80221,USD,AWS Pricing API,2025-11-30T09:05:47.689856 +AWS,eu-west-1,im4gn.2xlarge,reserved_1y,all_upfront,0.677619,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:16.625822 +AWS,eu-west-1,im4gn.2xlarge,reserved_1y,no_upfront,0.677619,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:01.870132 +AWS,eu-west-1,im4gn.2xlarge,reserved_1y,partial_upfront,0.677619,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:41.153080 +AWS,eu-west-1,im4gn.2xlarge,reserved_3y,all_upfront,0.338806,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:11.861113 +AWS,eu-west-1,im4gn.2xlarge,reserved_3y,no_upfront,0.338806,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:07.820585 +AWS,eu-west-1,im4gn.2xlarge,reserved_3y,partial_upfront,0.338806,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:51.121240 +AWS,eu-west-1,im4gn.2xlarge,spot,NA,0.350453,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729316 +AWS,eu-west-1,im4gn.4xlarge,on_demand,NA,1.60442,USD,AWS Pricing API,2025-11-30T09:05:42.342527 +AWS,eu-west-1,im4gn.4xlarge,reserved_1y,all_upfront,1.355238,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:11.316417 +AWS,eu-west-1,im4gn.4xlarge,reserved_1y,no_upfront,1.355238,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:56.490210 +AWS,eu-west-1,im4gn.4xlarge,reserved_1y,partial_upfront,1.355238,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:35.894980 +AWS,eu-west-1,im4gn.4xlarge,reserved_3y,all_upfront,0.677613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:06.609859 +AWS,eu-west-1,im4gn.4xlarge,reserved_3y,no_upfront,0.677613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:02.426401 +AWS,eu-west-1,im4gn.4xlarge,reserved_3y,partial_upfront,0.677613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:45.864710 +AWS,eu-west-1,im4gn.4xlarge,spot,NA,0.717876,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729093 +AWS,eu-west-1,im4gn.8xlarge,on_demand,NA,3.20883,USD,AWS Pricing API,2025-11-30T09:05:42.752256 +AWS,eu-west-1,im4gn.8xlarge,reserved_1y,all_upfront,2.303082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:11.733461 +AWS,eu-west-1,im4gn.8xlarge,reserved_1y,no_upfront,2.303082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:56.900053 +AWS,eu-west-1,im4gn.8xlarge,reserved_1y,partial_upfront,2.303082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:36.300386 +AWS,eu-west-1,im4gn.8xlarge,reserved_3y,all_upfront,0.767694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:07.007257 +AWS,eu-west-1,im4gn.8xlarge,reserved_3y,no_upfront,0.767694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:02.843685 +AWS,eu-west-1,im4gn.8xlarge,reserved_3y,partial_upfront,0.767694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:46.266001 +AWS,eu-west-1,im4gn.8xlarge,spot,NA,1.400634,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729086 +AWS,eu-west-1,im4gn.large,on_demand,NA,0.20055,USD,AWS Pricing API,2025-11-30T09:05:43.427150 +AWS,eu-west-1,im4gn.large,reserved_1y,all_upfront,0.15422,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:12.434814 +AWS,eu-west-1,im4gn.large,reserved_1y,no_upfront,0.15422,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:57.578186 +AWS,eu-west-1,im4gn.large,reserved_1y,partial_upfront,0.15422,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:36.964513 +AWS,eu-west-1,im4gn.large,reserved_3y,all_upfront,0.15422,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:07.668461 +AWS,eu-west-1,im4gn.large,reserved_3y,no_upfront,0.15422,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:03.529492 +AWS,eu-west-1,im4gn.large,reserved_3y,partial_upfront,0.15422,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:46.938432 +AWS,eu-west-1,im4gn.large,spot,NA,0.099412,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729131 +AWS,eu-west-1,im4gn.xlarge,on_demand,NA,0.4011,USD,AWS Pricing API,2025-11-30T09:06:31.965834 +AWS,eu-west-1,im4gn.xlarge,reserved_1y,all_upfront,0.246149,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:00.561300 +AWS,eu-west-1,im4gn.xlarge,reserved_1y,no_upfront,0.246149,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:46.232561 +AWS,eu-west-1,im4gn.xlarge,reserved_1y,partial_upfront,0.246149,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:24.875584 +AWS,eu-west-1,im4gn.xlarge,reserved_3y,all_upfront,0.16411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:54.777611 +AWS,eu-west-1,im4gn.xlarge,reserved_3y,no_upfront,0.16411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:52.563087 +AWS,eu-west-1,im4gn.xlarge,reserved_3y,partial_upfront,0.16411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:34.618285 +AWS,eu-west-1,im4gn.xlarge,spot,NA,0.173699,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731669 +AWS,eu-west-1,is4gen.2xlarge,on_demand,NA,1.275,USD,AWS Pricing API,2025-11-30T09:05:40.686435 +AWS,eu-west-1,is4gen.2xlarge,reserved_1y,all_upfront,1.449658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:09.685541 +AWS,eu-west-1,is4gen.2xlarge,reserved_1y,no_upfront,1.449658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:54.853072 +AWS,eu-west-1,is4gen.2xlarge,reserved_1y,partial_upfront,1.449658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:34.262858 +AWS,eu-west-1,is4gen.2xlarge,reserved_3y,all_upfront,0.483219,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:05.016225 +AWS,eu-west-1,is4gen.2xlarge,reserved_3y,no_upfront,0.483219,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:00.722706 +AWS,eu-west-1,is4gen.2xlarge,reserved_3y,partial_upfront,0.483219,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:44.244453 +AWS,eu-west-1,is4gen.2xlarge,spot,NA,0.562872,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729040 +AWS,eu-west-1,is4gen.4xlarge,on_demand,NA,2.55,USD,AWS Pricing API,2025-11-30T09:06:24.283637 +AWS,eu-west-1,is4gen.4xlarge,reserved_1y,all_upfront,1.627854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:52.968302 +AWS,eu-west-1,is4gen.4xlarge,reserved_1y,no_upfront,1.627854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:38.501488 +AWS,eu-west-1,is4gen.4xlarge,reserved_1y,partial_upfront,1.627854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:17.194647 +AWS,eu-west-1,is4gen.4xlarge,reserved_3y,all_upfront,0.542618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:47.333602 +AWS,eu-west-1,is4gen.4xlarge,reserved_3y,no_upfront,0.542618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:44.780540 +AWS,eu-west-1,is4gen.4xlarge,reserved_3y,partial_upfront,0.542618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:27.093861 +AWS,eu-west-1,is4gen.4xlarge,spot,NA,1.113291,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731382 +AWS,eu-west-1,is4gen.8xlarge,on_demand,NA,5.1,USD,AWS Pricing API,2025-11-30T09:05:22.301811 +AWS,eu-west-1,is4gen.8xlarge,reserved_1y,all_upfront,4.15435,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:51.516573 +AWS,eu-west-1,is4gen.8xlarge,reserved_1y,no_upfront,4.15435,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:36.431044 +AWS,eu-west-1,is4gen.8xlarge,reserved_1y,partial_upfront,4.15435,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:16.294227 +AWS,eu-west-1,is4gen.8xlarge,reserved_3y,all_upfront,4.15435,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:47.320249 +AWS,eu-west-1,is4gen.8xlarge,reserved_3y,no_upfront,4.15435,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:42.295409 +AWS,eu-west-1,is4gen.8xlarge,reserved_3y,partial_upfront,4.15435,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:26.249953 +AWS,eu-west-1,is4gen.8xlarge,spot,NA,2.575986,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728351 +AWS,eu-west-1,is4gen.large,on_demand,NA,0.31875,USD,AWS Pricing API,2025-11-30T09:06:04.262824 +AWS,eu-west-1,is4gen.large,reserved_1y,all_upfront,0.16763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:33.175069 +AWS,eu-west-1,is4gen.large,reserved_1y,no_upfront,0.16763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:18.452104 +AWS,eu-west-1,is4gen.large,reserved_1y,partial_upfront,0.16763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:57.514314 +AWS,eu-west-1,is4gen.large,reserved_3y,all_upfront,0.16763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:27.941765 +AWS,eu-west-1,is4gen.large,reserved_3y,no_upfront,0.16763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:24.553845 +AWS,eu-west-1,is4gen.large,reserved_3y,partial_upfront,0.16763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:07.430877 +AWS,eu-west-1,is4gen.large,spot,NA,0.14156,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729993 +AWS,eu-west-1,is4gen.xlarge,on_demand,NA,0.6375,USD,AWS Pricing API,2025-11-30T09:05:48.532105 +AWS,eu-west-1,is4gen.xlarge,reserved_1y,all_upfront,0.43603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:17.435357 +AWS,eu-west-1,is4gen.xlarge,reserved_1y,no_upfront,0.43603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:02.709087 +AWS,eu-west-1,is4gen.xlarge,reserved_1y,partial_upfront,0.43603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:41.975881 +AWS,eu-west-1,is4gen.xlarge,reserved_3y,all_upfront,0.43603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:12.663139 +AWS,eu-west-1,is4gen.xlarge,reserved_3y,no_upfront,0.43603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:08.668378 +AWS,eu-west-1,is4gen.xlarge,reserved_3y,partial_upfront,0.43603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:51.935550 +AWS,eu-west-1,is4gen.xlarge,spot,NA,0.283577,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729374 +AWS,eu-west-1,m4.10xlarge,on_demand,NA,2.22,USD,AWS Pricing API,2025-11-30T09:05:53.719877 +AWS,eu-west-1,m4.10xlarge,reserved_1y,all_upfront,2.0,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:22.566976 +AWS,eu-west-1,m4.10xlarge,reserved_1y,no_upfront,2.0,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:07.913579 +AWS,eu-west-1,m4.10xlarge,reserved_1y,partial_upfront,2.0,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:47.148724 +AWS,eu-west-1,m4.10xlarge,reserved_3y,all_upfront,1.0,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:17.701165 +AWS,eu-west-1,m4.10xlarge,reserved_3y,no_upfront,1.0,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:13.947279 +AWS,eu-west-1,m4.10xlarge,reserved_3y,partial_upfront,1.0,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:57.065510 +AWS,eu-west-1,m4.10xlarge,spot,NA,1.029967,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729566 +AWS,eu-west-1,m4.16xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:05:58.895322 +AWS,eu-west-1,m4.16xlarge,reserved_1y,all_upfront,5.409589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:27.811181 +AWS,eu-west-1,m4.16xlarge,reserved_1y,no_upfront,5.409589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:13.118972 +AWS,eu-west-1,m4.16xlarge,reserved_1y,partial_upfront,5.409589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:52.267337 +AWS,eu-west-1,m4.16xlarge,reserved_3y,all_upfront,1.803196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:22.760710 +AWS,eu-west-1,m4.16xlarge,reserved_3y,no_upfront,1.803196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:19.185374 +AWS,eu-west-1,m4.16xlarge,reserved_3y,partial_upfront,1.803196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:02.181411 +AWS,eu-west-1,m4.16xlarge,spot,NA,1.629115,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729758 +AWS,eu-west-1,m4.2xlarge,on_demand,NA,0.444,USD,AWS Pricing API,2025-11-30T09:05:40.265150 +AWS,eu-west-1,m4.2xlarge,reserved_1y,all_upfront,0.2484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:09.282391 +AWS,eu-west-1,m4.2xlarge,reserved_1y,no_upfront,0.2484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:54.446019 +AWS,eu-west-1,m4.2xlarge,reserved_1y,partial_upfront,0.2484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:33.862609 +AWS,eu-west-1,m4.2xlarge,reserved_3y,all_upfront,0.2484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:04.623279 +AWS,eu-west-1,m4.2xlarge,reserved_3y,no_upfront,0.2484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:00.291727 +AWS,eu-west-1,m4.2xlarge,reserved_3y,partial_upfront,0.2484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:43.833817 +AWS,eu-west-1,m4.2xlarge,spot,NA,0.222266,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729066 +AWS,eu-west-1,m4.4xlarge,on_demand,NA,0.888,USD,AWS Pricing API,2025-11-30T09:06:14.922181 +AWS,eu-west-1,m4.4xlarge,reserved_1y,all_upfront,0.662364,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:43.752732 +AWS,eu-west-1,m4.4xlarge,reserved_1y,no_upfront,0.662364,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:29.126813 +AWS,eu-west-1,m4.4xlarge,reserved_1y,partial_upfront,0.662364,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:08.064069 +AWS,eu-west-1,m4.4xlarge,reserved_3y,all_upfront,0.441588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:38.315065 +AWS,eu-west-1,m4.4xlarge,reserved_3y,no_upfront,0.441588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:35.383446 +AWS,eu-west-1,m4.4xlarge,reserved_3y,partial_upfront,0.441588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:17.944433 +AWS,eu-west-1,m4.4xlarge,spot,NA,0.459816,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730978 +AWS,eu-west-1,m4.large,on_demand,NA,0.111,USD,AWS Pricing API,2025-11-30T09:05:21.899272 +AWS,eu-west-1,m4.large,reserved_1y,all_upfront,0.071959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:51.110256 +AWS,eu-west-1,m4.large,reserved_1y,no_upfront,0.071959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:36.027458 +AWS,eu-west-1,m4.large,reserved_1y,partial_upfront,0.071959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:15.897296 +AWS,eu-west-1,m4.large,reserved_3y,all_upfront,0.047986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:46.930895 +AWS,eu-west-1,m4.large,reserved_3y,no_upfront,0.047986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:41.881515 +AWS,eu-west-1,m4.large,reserved_3y,partial_upfront,0.047986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:25.849009 +AWS,eu-west-1,m4.large,spot,NA,0.056026,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728282 +AWS,eu-west-1,m4.xlarge,on_demand,NA,0.222,USD,AWS Pricing API,2025-11-30T09:06:03.310305 +AWS,eu-west-1,m4.xlarge,reserved_1y,all_upfront,0.338128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:32.157108 +AWS,eu-west-1,m4.xlarge,reserved_1y,no_upfront,0.338128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:17.496951 +AWS,eu-west-1,m4.xlarge,reserved_1y,partial_upfront,0.338128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:56.578973 +AWS,eu-west-1,m4.xlarge,reserved_3y,all_upfront,0.112709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:27.012836 +AWS,eu-west-1,m4.xlarge,reserved_3y,no_upfront,0.112709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:23.594314 +AWS,eu-west-1,m4.xlarge,reserved_3y,partial_upfront,0.112709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:06.493870 +AWS,eu-west-1,m4.xlarge,spot,NA,0.111646,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729937 +AWS,eu-west-1,m5.12xlarge,on_demand,NA,2.568,USD,AWS Pricing API,2025-11-30T09:05:40.403486 +AWS,eu-west-1,m5.12xlarge,reserved_1y,all_upfront,1.974443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:09.415504 +AWS,eu-west-1,m5.12xlarge,reserved_1y,no_upfront,1.974443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:54.582753 +AWS,eu-west-1,m5.12xlarge,reserved_1y,partial_upfront,1.974443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:33.997394 +AWS,eu-west-1,m5.12xlarge,reserved_3y,all_upfront,1.316148,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:04.754973 +AWS,eu-west-1,m5.12xlarge,reserved_3y,no_upfront,1.316148,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:00.440546 +AWS,eu-west-1,m5.12xlarge,reserved_3y,partial_upfront,1.316148,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:43.968180 +AWS,eu-west-1,m5.12xlarge,spot,NA,1.195341,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729029 +AWS,eu-west-1,m5.16xlarge,on_demand,NA,3.424,USD,AWS Pricing API,2025-11-30T09:06:13.289710 +AWS,eu-west-1,m5.16xlarge,reserved_1y,all_upfront,2.013356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:42.113714 +AWS,eu-west-1,m5.16xlarge,reserved_1y,no_upfront,2.013356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:27.475026 +AWS,eu-west-1,m5.16xlarge,reserved_1y,partial_upfront,2.013356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:06.459156 +AWS,eu-west-1,m5.16xlarge,reserved_3y,all_upfront,0.671119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:36.719240 +AWS,eu-west-1,m5.16xlarge,reserved_3y,no_upfront,0.671119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:33.722825 +AWS,eu-west-1,m5.16xlarge,reserved_3y,partial_upfront,0.671119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:16.331227 +AWS,eu-west-1,m5.16xlarge,spot,NA,1.603753,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730894 +AWS,eu-west-1,m5.24xlarge,on_demand,NA,5.136,USD,AWS Pricing API,2025-11-30T09:06:24.840843 +AWS,eu-west-1,m5.24xlarge,reserved_1y,all_upfront,3.081753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:53.510317 +AWS,eu-west-1,m5.24xlarge,reserved_1y,no_upfront,3.081753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:39.064885 +AWS,eu-west-1,m5.24xlarge,reserved_1y,partial_upfront,3.081753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:17.731168 +AWS,eu-west-1,m5.24xlarge,reserved_3y,all_upfront,2.054584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:47.867654 +AWS,eu-west-1,m5.24xlarge,reserved_3y,no_upfront,2.054584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:45.330780 +AWS,eu-west-1,m5.24xlarge,reserved_3y,partial_upfront,2.054584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:27.633027 +AWS,eu-west-1,m5.24xlarge,spot,NA,2.341858,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731407 +AWS,eu-west-1,m5.2xlarge,on_demand,NA,0.428,USD,AWS Pricing API,2025-11-30T09:05:56.593507 +AWS,eu-west-1,m5.2xlarge,reserved_1y,all_upfront,0.244,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:25.394355 +AWS,eu-west-1,m5.2xlarge,reserved_1y,no_upfront,0.244,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:10.793106 +AWS,eu-west-1,m5.2xlarge,reserved_1y,partial_upfront,0.244,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:49.977094 +AWS,eu-west-1,m5.2xlarge,reserved_3y,all_upfront,0.244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:20.497581 +AWS,eu-west-1,m5.2xlarge,reserved_3y,no_upfront,0.244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:16.847022 +AWS,eu-west-1,m5.2xlarge,reserved_3y,partial_upfront,0.244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:59.887143 +AWS,eu-west-1,m5.2xlarge,spot,NA,0.206812,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729689 +AWS,eu-west-1,m5.4xlarge,on_demand,NA,0.856,USD,AWS Pricing API,2025-11-30T09:06:06.039282 +AWS,eu-west-1,m5.4xlarge,reserved_1y,all_upfront,0.691,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:34.922369 +AWS,eu-west-1,m5.4xlarge,reserved_1y,no_upfront,0.691,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:20.229522 +AWS,eu-west-1,m5.4xlarge,reserved_1y,partial_upfront,0.691,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:59.269166 +AWS,eu-west-1,m5.4xlarge,reserved_3y,all_upfront,0.691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:29.664092 +AWS,eu-west-1,m5.4xlarge,reserved_3y,no_upfront,0.691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:26.349339 +AWS,eu-west-1,m5.4xlarge,reserved_3y,partial_upfront,0.691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:09.191054 +AWS,eu-west-1,m5.4xlarge,spot,NA,0.413816,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730539 +AWS,eu-west-1,m5.8xlarge,on_demand,NA,1.712,USD,AWS Pricing API,2025-11-30T09:06:32.915339 +AWS,eu-west-1,m5.8xlarge,reserved_1y,all_upfront,1.027584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:01.513472 +AWS,eu-west-1,m5.8xlarge,reserved_1y,no_upfront,1.027584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:47.190163 +AWS,eu-west-1,m5.8xlarge,reserved_1y,partial_upfront,1.027584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:25.812045 +AWS,eu-west-1,m5.8xlarge,reserved_3y,all_upfront,0.685195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:55.713068 +AWS,eu-west-1,m5.8xlarge,reserved_3y,no_upfront,0.685195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:53.525182 +AWS,eu-west-1,m5.8xlarge,reserved_3y,partial_upfront,0.685195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:35.575938 +AWS,eu-west-1,m5.8xlarge,spot,NA,0.815586,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731751 +AWS,eu-west-1,m5.large,on_demand,NA,0.107,USD,AWS Pricing API,2025-11-30T09:05:56.999522 +AWS,eu-west-1,m5.large,reserved_1y,all_upfront,0.064078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:25.808998 +AWS,eu-west-1,m5.large,reserved_1y,no_upfront,0.064078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:11.203021 +AWS,eu-west-1,m5.large,reserved_1y,partial_upfront,0.064078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:50.385055 +AWS,eu-west-1,m5.large,reserved_3y,all_upfront,0.042693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:20.892770 +AWS,eu-west-1,m5.large,reserved_3y,no_upfront,0.042693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:17.259068 +AWS,eu-west-1,m5.large,reserved_3y,partial_upfront,0.042693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:00.286292 +AWS,eu-west-1,m5.large,spot,NA,0.054387,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729695 +AWS,eu-west-1,m5.xlarge,on_demand,NA,0.214,USD,AWS Pricing API,2025-11-30T09:06:30.741413 +AWS,eu-west-1,m5.xlarge,reserved_1y,all_upfront,0.125799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:59.338490 +AWS,eu-west-1,m5.xlarge,reserved_1y,no_upfront,0.125799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:44.975573 +AWS,eu-west-1,m5.xlarge,reserved_1y,partial_upfront,0.125799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:23.643118 +AWS,eu-west-1,m5.xlarge,reserved_3y,all_upfront,0.041933,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:53.586087 +AWS,eu-west-1,m5.xlarge,reserved_3y,no_upfront,0.041933,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:51.301636 +AWS,eu-west-1,m5.xlarge,reserved_3y,partial_upfront,0.041933,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:33.415133 +AWS,eu-west-1,m5.xlarge,spot,NA,0.102134,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731631 +AWS,eu-west-1,m5a.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:05:57.546834 +AWS,eu-west-1,m5a.12xlarge,reserved_1y,all_upfront,1.868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:26.368076 +AWS,eu-west-1,m5a.12xlarge,reserved_1y,no_upfront,1.868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:11.743269 +AWS,eu-west-1,m5a.12xlarge,reserved_1y,partial_upfront,1.868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:50.925591 +AWS,eu-west-1,m5a.12xlarge,reserved_3y,all_upfront,1.868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:21.424134 +AWS,eu-west-1,m5a.12xlarge,reserved_3y,no_upfront,1.868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:17.819800 +AWS,eu-west-1,m5a.12xlarge,reserved_3y,partial_upfront,1.868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:00.822838 +AWS,eu-west-1,m5a.12xlarge,spot,NA,1.091113,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729729 +AWS,eu-west-1,m5a.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T09:06:15.069034 +AWS,eu-west-1,m5a.16xlarge,reserved_1y,all_upfront,2.49,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:43.888746 +AWS,eu-west-1,m5a.16xlarge,reserved_1y,no_upfront,2.49,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:29.261334 +AWS,eu-west-1,m5a.16xlarge,reserved_1y,partial_upfront,2.49,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:08.198856 +AWS,eu-west-1,m5a.16xlarge,reserved_3y,all_upfront,2.49,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:38.447061 +AWS,eu-west-1,m5a.16xlarge,reserved_3y,no_upfront,2.49,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:35.520312 +AWS,eu-west-1,m5a.16xlarge,reserved_3y,partial_upfront,2.49,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:18.087729 +AWS,eu-west-1,m5a.16xlarge,spot,NA,1.461996,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730965 +AWS,eu-west-1,m5a.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:05:50.170427 +AWS,eu-west-1,m5a.24xlarge,reserved_1y,all_upfront,3.68684,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:19.053712 +AWS,eu-west-1,m5a.24xlarge,reserved_1y,no_upfront,3.68684,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:04.357899 +AWS,eu-west-1,m5a.24xlarge,reserved_1y,partial_upfront,3.68684,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:43.622716 +AWS,eu-west-1,m5a.24xlarge,reserved_3y,all_upfront,1.843613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:14.244600 +AWS,eu-west-1,m5a.24xlarge,reserved_3y,no_upfront,1.843613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:10.362726 +AWS,eu-west-1,m5a.24xlarge,reserved_3y,partial_upfront,1.843613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:53.552066 +AWS,eu-west-1,m5a.24xlarge,spot,NA,2.110622,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729429 +AWS,eu-west-1,m5a.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T09:05:42.615372 +AWS,eu-west-1,m5a.2xlarge,reserved_1y,all_upfront,0.307365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:11.589022 +AWS,eu-west-1,m5a.2xlarge,reserved_1y,no_upfront,0.307365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:56.764610 +AWS,eu-west-1,m5a.2xlarge,reserved_1y,partial_upfront,0.307365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:36.166474 +AWS,eu-west-1,m5a.2xlarge,reserved_3y,all_upfront,0.153788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:06.875497 +AWS,eu-west-1,m5a.2xlarge,reserved_3y,no_upfront,0.153788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:02.706147 +AWS,eu-west-1,m5a.2xlarge,reserved_3y,partial_upfront,0.153788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:46.132158 +AWS,eu-west-1,m5a.2xlarge,spot,NA,0.192611,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729099 +AWS,eu-west-1,m5a.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T09:06:23.455379 +AWS,eu-west-1,m5a.4xlarge,reserved_1y,all_upfront,0.460365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:52.150120 +AWS,eu-west-1,m5a.4xlarge,reserved_1y,no_upfront,0.460365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:37.675533 +AWS,eu-west-1,m5a.4xlarge,reserved_1y,partial_upfront,0.460365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:16.389364 +AWS,eu-west-1,m5a.4xlarge,reserved_3y,all_upfront,0.306788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:46.540237 +AWS,eu-west-1,m5a.4xlarge,reserved_3y,no_upfront,0.306788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:43.950822 +AWS,eu-west-1,m5a.4xlarge,reserved_3y,partial_upfront,0.306788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:26.291653 +AWS,eu-west-1,m5a.4xlarge,spot,NA,0.389188,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731325 +AWS,eu-west-1,m5a.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T09:05:33.505542 +AWS,eu-west-1,m5a.8xlarge,reserved_1y,all_upfront,0.876,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:02.520921 +AWS,eu-west-1,m5a.8xlarge,reserved_1y,no_upfront,0.876,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:47.705187 +AWS,eu-west-1,m5a.8xlarge,reserved_1y,partial_upfront,0.876,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:27.217312 +AWS,eu-west-1,m5a.8xlarge,reserved_3y,all_upfront,0.876,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:58.096564 +AWS,eu-west-1,m5a.8xlarge,reserved_3y,no_upfront,0.876,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:53.489729 +AWS,eu-west-1,m5a.8xlarge,reserved_3y,partial_upfront,0.876,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:37.108171 +AWS,eu-west-1,m5a.8xlarge,spot,NA,0.748423,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728744 +AWS,eu-west-1,m5a.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T09:05:52.612067 +AWS,eu-west-1,m5a.large,reserved_1y,all_upfront,0.148973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:21.482267 +AWS,eu-west-1,m5a.large,reserved_1y,no_upfront,0.148973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:06.816891 +AWS,eu-west-1,m5a.large,reserved_1y,partial_upfront,0.148973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:46.057064 +AWS,eu-west-1,m5a.large,reserved_3y,all_upfront,0.049658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:16.647803 +AWS,eu-west-1,m5a.large,reserved_3y,no_upfront,0.049658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:12.845357 +AWS,eu-west-1,m5a.large,reserved_3y,partial_upfront,0.049658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:55.980368 +AWS,eu-west-1,m5a.large,spot,NA,0.054863,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729514 +AWS,eu-west-1,m5a.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T09:05:54.679688 +AWS,eu-west-1,m5a.xlarge,reserved_1y,all_upfront,0.216553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:23.507770 +AWS,eu-west-1,m5a.xlarge,reserved_1y,no_upfront,0.216553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:08.884301 +AWS,eu-west-1,m5a.xlarge,reserved_1y,partial_upfront,0.216553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:48.092223 +AWS,eu-west-1,m5a.xlarge,reserved_3y,all_upfront,0.072184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:18.629363 +AWS,eu-west-1,m5a.xlarge,reserved_3y,no_upfront,0.072184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:14.905015 +AWS,eu-west-1,m5a.xlarge,reserved_3y,partial_upfront,0.072184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:57.997590 +AWS,eu-west-1,m5a.xlarge,spot,NA,0.096565,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729619 +AWS,eu-west-1,m5d.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T09:05:24.644742 +AWS,eu-west-1,m5d.12xlarge,reserved_1y,all_upfront,1.814192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:53.833341 +AWS,eu-west-1,m5d.12xlarge,reserved_1y,no_upfront,1.814192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:38.768927 +AWS,eu-west-1,m5d.12xlarge,reserved_1y,partial_upfront,1.814192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:18.566556 +AWS,eu-west-1,m5d.12xlarge,reserved_3y,all_upfront,1.209397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:49.586464 +AWS,eu-west-1,m5d.12xlarge,reserved_3y,no_upfront,1.209397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:44.662703 +AWS,eu-west-1,m5d.12xlarge,reserved_3y,partial_upfront,1.209397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:28.542589 +AWS,eu-west-1,m5d.12xlarge,spot,NA,1.470483,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728385 +AWS,eu-west-1,m5d.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T09:06:10.131153 +AWS,eu-west-1,m5d.16xlarge,reserved_1y,all_upfront,1.742,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:39.008398 +AWS,eu-west-1,m5d.16xlarge,reserved_1y,no_upfront,1.742,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:24.339027 +AWS,eu-west-1,m5d.16xlarge,reserved_1y,partial_upfront,1.742,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:03.341895 +AWS,eu-west-1,m5d.16xlarge,reserved_3y,all_upfront,1.742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:33.666208 +AWS,eu-west-1,m5d.16xlarge,reserved_3y,no_upfront,1.742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:30.559561 +AWS,eu-west-1,m5d.16xlarge,reserved_3y,partial_upfront,1.742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:13.217204 +AWS,eu-west-1,m5d.16xlarge,spot,NA,2.020566,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730738 +AWS,eu-west-1,m5d.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T09:05:53.574647 +AWS,eu-west-1,m5d.24xlarge,reserved_1y,all_upfront,4.657881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:22.432781 +AWS,eu-west-1,m5d.24xlarge,reserved_1y,no_upfront,4.657881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:07.776237 +AWS,eu-west-1,m5d.24xlarge,reserved_1y,partial_upfront,4.657881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:47.015280 +AWS,eu-west-1,m5d.24xlarge,reserved_3y,all_upfront,3.105294,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:17.570384 +AWS,eu-west-1,m5d.24xlarge,reserved_3y,no_upfront,3.105294,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:13.809898 +AWS,eu-west-1,m5d.24xlarge,reserved_3y,partial_upfront,3.105294,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:56.928604 +AWS,eu-west-1,m5d.24xlarge,spot,NA,2.727372,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729554 +AWS,eu-west-1,m5d.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T09:05:37.769561 +AWS,eu-west-1,m5d.2xlarge,reserved_1y,all_upfront,0.287,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:06.854887 +AWS,eu-west-1,m5d.2xlarge,reserved_1y,no_upfront,0.287,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:51.974674 +AWS,eu-west-1,m5d.2xlarge,reserved_1y,partial_upfront,0.287,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:31.445085 +AWS,eu-west-1,m5d.2xlarge,reserved_3y,all_upfront,0.287,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:02.232925 +AWS,eu-west-1,m5d.2xlarge,reserved_3y,no_upfront,0.287,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:57.785056 +AWS,eu-west-1,m5d.2xlarge,reserved_3y,partial_upfront,0.287,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:41.396992 +AWS,eu-west-1,m5d.2xlarge,spot,NA,0.26661,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728959 +AWS,eu-west-1,m5d.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T09:05:49.081223 +AWS,eu-west-1,m5d.4xlarge,reserved_1y,all_upfront,0.806795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:17.976225 +AWS,eu-west-1,m5d.4xlarge,reserved_1y,no_upfront,0.806795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:03.261022 +AWS,eu-west-1,m5d.4xlarge,reserved_1y,partial_upfront,0.806795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:42.541446 +AWS,eu-west-1,m5d.4xlarge,reserved_3y,all_upfront,0.403598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:13.194930 +AWS,eu-west-1,m5d.4xlarge,reserved_3y,no_upfront,0.403598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:09.234860 +AWS,eu-west-1,m5d.4xlarge,reserved_3y,partial_upfront,0.403598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:52.473204 +AWS,eu-west-1,m5d.4xlarge,spot,NA,0.512789,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729406 +AWS,eu-west-1,m5d.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T09:06:32.778045 +AWS,eu-west-1,m5d.8xlarge,reserved_1y,all_upfront,1.521461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:01.373857 +AWS,eu-west-1,m5d.8xlarge,reserved_1y,no_upfront,1.521461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:47.052129 +AWS,eu-west-1,m5d.8xlarge,reserved_1y,partial_upfront,1.521461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:25.677543 +AWS,eu-west-1,m5d.8xlarge,reserved_3y,all_upfront,0.507154,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:55.574187 +AWS,eu-west-1,m5d.8xlarge,reserved_3y,no_upfront,0.507154,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:53.387574 +AWS,eu-west-1,m5d.8xlarge,reserved_3y,partial_upfront,0.507154,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:35.442085 +AWS,eu-west-1,m5d.8xlarge,spot,NA,0.994311,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731700 +AWS,eu-west-1,m5d.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T09:05:28.528714 +AWS,eu-west-1,m5d.large,reserved_1y,all_upfront,0.102,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:57.634012 +AWS,eu-west-1,m5d.large,reserved_1y,no_upfront,0.102,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:42.740988 +AWS,eu-west-1,m5d.large,reserved_1y,partial_upfront,0.102,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:22.333809 +AWS,eu-west-1,m5d.large,reserved_3y,all_upfront,0.102,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:53.316821 +AWS,eu-west-1,m5d.large,reserved_3y,no_upfront,0.102,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:48.525458 +AWS,eu-west-1,m5d.large,reserved_3y,partial_upfront,0.102,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:32.285232 +AWS,eu-west-1,m5d.large,spot,NA,0.064679,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728560 +AWS,eu-west-1,m5d.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T09:05:44.801866 +AWS,eu-west-1,m5d.xlarge,reserved_1y,all_upfront,0.194032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:13.797064 +AWS,eu-west-1,m5d.xlarge,reserved_1y,no_upfront,0.194032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:58.950572 +AWS,eu-west-1,m5d.xlarge,reserved_1y,partial_upfront,0.194032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:38.320112 +AWS,eu-west-1,m5d.xlarge,reserved_3y,all_upfront,0.129344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:08.999144 +AWS,eu-west-1,m5d.xlarge,reserved_3y,no_upfront,0.129344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:04.919513 +AWS,eu-west-1,m5d.xlarge,reserved_3y,partial_upfront,0.129344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:48.287886 +AWS,eu-west-1,m5d.xlarge,spot,NA,0.12724,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729239 +AWS,eu-west-1,m5dn.12xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T09:05:26.855535 +AWS,eu-west-1,m5dn.12xlarge,reserved_1y,all_upfront,3.414845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:56.003095 +AWS,eu-west-1,m5dn.12xlarge,reserved_1y,no_upfront,3.414845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:40.969654 +AWS,eu-west-1,m5dn.12xlarge,reserved_1y,partial_upfront,3.414845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:20.716967 +AWS,eu-west-1,m5dn.12xlarge,reserved_3y,all_upfront,1.707615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:51.719014 +AWS,eu-west-1,m5dn.12xlarge,reserved_3y,no_upfront,1.707615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:46.869124 +AWS,eu-west-1,m5dn.12xlarge,reserved_3y,partial_upfront,1.707615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:30.685138 +AWS,eu-west-1,m5dn.12xlarge,spot,NA,1.811841,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728475 +AWS,eu-west-1,m5dn.16xlarge,on_demand,NA,4.864,USD,AWS Pricing API,2025-11-30T09:06:01.366608 +AWS,eu-west-1,m5dn.16xlarge,reserved_1y,all_upfront,5.486644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:30.259533 +AWS,eu-west-1,m5dn.16xlarge,reserved_1y,no_upfront,5.486644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:15.576909 +AWS,eu-west-1,m5dn.16xlarge,reserved_1y,partial_upfront,5.486644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:54.694075 +AWS,eu-west-1,m5dn.16xlarge,reserved_3y,all_upfront,1.828881,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:25.145561 +AWS,eu-west-1,m5dn.16xlarge,reserved_3y,no_upfront,1.828881,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:21.652416 +AWS,eu-west-1,m5dn.16xlarge,reserved_3y,partial_upfront,1.828881,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:04.615178 +AWS,eu-west-1,m5dn.16xlarge,spot,NA,2.278204,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729867 +AWS,eu-west-1,m5dn.24xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T09:06:25.958608 +AWS,eu-west-1,m5dn.24xlarge,reserved_1y,all_upfront,3.152,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:54.579547 +AWS,eu-west-1,m5dn.24xlarge,reserved_1y,no_upfront,3.152,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:40.157748 +AWS,eu-west-1,m5dn.24xlarge,reserved_1y,partial_upfront,3.152,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:18.898266 +AWS,eu-west-1,m5dn.24xlarge,reserved_3y,all_upfront,3.152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:48.924648 +AWS,eu-west-1,m5dn.24xlarge,reserved_3y,no_upfront,3.152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:46.427834 +AWS,eu-west-1,m5dn.24xlarge,reserved_3y,partial_upfront,3.152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:28.710101 +AWS,eu-west-1,m5dn.24xlarge,spot,NA,3.341137,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731425 +AWS,eu-west-1,m5dn.2xlarge,on_demand,NA,0.608,USD,AWS Pricing API,2025-11-30T09:05:23.675790 +AWS,eu-west-1,m5dn.2xlarge,reserved_1y,all_upfront,0.488,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:52.882774 +AWS,eu-west-1,m5dn.2xlarge,reserved_1y,no_upfront,0.488,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:37.797150 +AWS,eu-west-1,m5dn.2xlarge,reserved_1y,partial_upfront,0.488,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:17.628165 +AWS,eu-west-1,m5dn.2xlarge,reserved_3y,all_upfront,0.488,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:48.655437 +AWS,eu-west-1,m5dn.2xlarge,reserved_3y,no_upfront,0.488,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:43.679432 +AWS,eu-west-1,m5dn.2xlarge,reserved_3y,partial_upfront,0.488,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:27.604796 +AWS,eu-west-1,m5dn.2xlarge,spot,NA,0.354307,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728390 +AWS,eu-west-1,m5dn.4xlarge,on_demand,NA,1.216,USD,AWS Pricing API,2025-11-30T09:06:04.127442 +AWS,eu-west-1,m5dn.4xlarge,reserved_1y,all_upfront,0.72984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:32.965060 +AWS,eu-west-1,m5dn.4xlarge,reserved_1y,no_upfront,0.72984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:18.317164 +AWS,eu-west-1,m5dn.4xlarge,reserved_1y,partial_upfront,0.72984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:57.382148 +AWS,eu-west-1,m5dn.4xlarge,reserved_3y,all_upfront,0.486613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:27.811970 +AWS,eu-west-1,m5dn.4xlarge,reserved_3y,no_upfront,0.486613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:24.416479 +AWS,eu-west-1,m5dn.4xlarge,reserved_3y,partial_upfront,0.486613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:07.299023 +AWS,eu-west-1,m5dn.4xlarge,spot,NA,0.734452,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729987 +AWS,eu-west-1,m5dn.8xlarge,on_demand,NA,2.432,USD,AWS Pricing API,2025-11-30T09:05:24.790213 +AWS,eu-west-1,m5dn.8xlarge,reserved_1y,all_upfront,1.430023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:53.971007 +AWS,eu-west-1,m5dn.8xlarge,reserved_1y,no_upfront,1.430023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:38.906116 +AWS,eu-west-1,m5dn.8xlarge,reserved_1y,partial_upfront,1.430023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:18.700936 +AWS,eu-west-1,m5dn.8xlarge,reserved_3y,all_upfront,0.476674,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:49.718919 +AWS,eu-west-1,m5dn.8xlarge,reserved_3y,no_upfront,0.476674,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:44.799211 +AWS,eu-west-1,m5dn.8xlarge,reserved_3y,partial_upfront,0.476674,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:28.674171 +AWS,eu-west-1,m5dn.8xlarge,spot,NA,1.278402,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728401 +AWS,eu-west-1,m5dn.large,on_demand,NA,0.152,USD,AWS Pricing API,2025-11-30T09:06:19.436374 +AWS,eu-west-1,m5dn.large,reserved_1y,all_upfront,0.142735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:48.227643 +AWS,eu-west-1,m5dn.large,reserved_1y,no_upfront,0.142735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:33.697164 +AWS,eu-west-1,m5dn.large,reserved_1y,partial_upfront,0.142735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:12.485601 +AWS,eu-west-1,m5dn.large,reserved_3y,all_upfront,0.071578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:42.665777 +AWS,eu-west-1,m5dn.large,reserved_3y,no_upfront,0.071578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:39.951961 +AWS,eu-west-1,m5dn.large,reserved_3y,partial_upfront,0.071578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:22.400068 +AWS,eu-west-1,m5dn.large,spot,NA,0.075139,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731178 +AWS,eu-west-1,m5dn.metal,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T09:06:30.877134 +AWS,eu-west-1,m5dn.metal,reserved_1y,all_upfront,3.688,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:59.476905 +AWS,eu-west-1,m5dn.metal,reserved_1y,no_upfront,3.688,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:45.117178 +AWS,eu-west-1,m5dn.metal,reserved_1y,partial_upfront,3.688,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:23.775772 +AWS,eu-west-1,m5dn.metal,reserved_3y,all_upfront,3.688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:53.717750 +AWS,eu-west-1,m5dn.metal,reserved_3y,no_upfront,3.688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:51.439270 +AWS,eu-west-1,m5dn.metal,reserved_3y,partial_upfront,3.688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:33.549074 +AWS,eu-west-1,m5dn.metal,spot,NA,3.240266,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731681 +AWS,eu-west-1,m5dn.xlarge,on_demand,NA,0.304,USD,AWS Pricing API,2025-11-30T09:05:22.436286 +AWS,eu-west-1,m5dn.xlarge,reserved_1y,all_upfront,0.192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:51.650835 +AWS,eu-west-1,m5dn.xlarge,reserved_1y,no_upfront,0.192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:36.565842 +AWS,eu-west-1,m5dn.xlarge,reserved_1y,partial_upfront,0.192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:16.427548 +AWS,eu-west-1,m5dn.xlarge,reserved_3y,all_upfront,0.192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:47.455126 +AWS,eu-west-1,m5dn.xlarge,reserved_3y,no_upfront,0.192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:42.434753 +AWS,eu-west-1,m5dn.xlarge,reserved_3y,partial_upfront,0.192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:26.384577 +AWS,eu-west-1,m5dn.xlarge,spot,NA,0.183142,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728340 +AWS,eu-west-1,m5n.12xlarge,on_demand,NA,3.192,USD,AWS Pricing API,2025-11-30T09:05:44.516447 +AWS,eu-west-1,m5n.12xlarge,reserved_1y,all_upfront,2.011,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:13.524868 +AWS,eu-west-1,m5n.12xlarge,reserved_1y,no_upfront,2.011,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:58.675723 +AWS,eu-west-1,m5n.12xlarge,reserved_1y,partial_upfront,2.011,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:38.052342 +AWS,eu-west-1,m5n.12xlarge,reserved_3y,all_upfront,2.011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:08.733068 +AWS,eu-west-1,m5n.12xlarge,reserved_3y,no_upfront,2.011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:04.641532 +AWS,eu-west-1,m5n.12xlarge,reserved_3y,partial_upfront,2.011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:48.020043 +AWS,eu-west-1,m5n.12xlarge,spot,NA,1.524938,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729183 +AWS,eu-west-1,m5n.16xlarge,on_demand,NA,4.256,USD,AWS Pricing API,2025-11-30T09:05:42.072315 +AWS,eu-west-1,m5n.16xlarge,reserved_1y,all_upfront,2.553826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:11.042861 +AWS,eu-west-1,m5n.16xlarge,reserved_1y,no_upfront,2.553826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:56.219249 +AWS,eu-west-1,m5n.16xlarge,reserved_1y,partial_upfront,2.553826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:35.621875 +AWS,eu-west-1,m5n.16xlarge,reserved_3y,all_upfront,1.702609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:06.344473 +AWS,eu-west-1,m5n.16xlarge,reserved_3y,no_upfront,1.702609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:02.145865 +AWS,eu-west-1,m5n.16xlarge,reserved_3y,partial_upfront,1.702609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:45.594197 +AWS,eu-west-1,m5n.16xlarge,spot,NA,2.059635,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729105 +AWS,eu-west-1,m5n.24xlarge,on_demand,NA,6.384,USD,AWS Pricing API,2025-11-30T09:05:23.261884 +AWS,eu-west-1,m5n.24xlarge,reserved_1y,all_upfront,4.90968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:52.477235 +AWS,eu-west-1,m5n.24xlarge,reserved_1y,no_upfront,4.90968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:37.391421 +AWS,eu-west-1,m5n.24xlarge,reserved_1y,partial_upfront,4.90968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:17.228313 +AWS,eu-west-1,m5n.24xlarge,reserved_3y,all_upfront,3.273227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:48.248577 +AWS,eu-west-1,m5n.24xlarge,reserved_3y,no_upfront,3.273227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:43.259139 +AWS,eu-west-1,m5n.24xlarge,reserved_3y,partial_upfront,3.273227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:27.196009 +AWS,eu-west-1,m5n.24xlarge,spot,NA,3.074132,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728321 +AWS,eu-west-1,m5n.2xlarge,on_demand,NA,0.532,USD,AWS Pricing API,2025-11-30T09:05:55.910843 +AWS,eu-west-1,m5n.2xlarge,reserved_1y,all_upfront,0.335,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:24.723690 +AWS,eu-west-1,m5n.2xlarge,reserved_1y,no_upfront,0.335,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:10.112618 +AWS,eu-west-1,m5n.2xlarge,reserved_1y,partial_upfront,0.335,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:49.304125 +AWS,eu-west-1,m5n.2xlarge,reserved_3y,all_upfront,0.335,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:19.838676 +AWS,eu-west-1,m5n.2xlarge,reserved_3y,no_upfront,0.335,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:16.162534 +AWS,eu-west-1,m5n.2xlarge,reserved_3y,partial_upfront,0.335,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:59.224254 +AWS,eu-west-1,m5n.2xlarge,spot,NA,0.294136,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729677 +AWS,eu-west-1,m5n.4xlarge,on_demand,NA,1.064,USD,AWS Pricing API,2025-11-30T09:06:18.615908 +AWS,eu-west-1,m5n.4xlarge,reserved_1y,all_upfront,0.818132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:47.402980 +AWS,eu-west-1,m5n.4xlarge,reserved_1y,no_upfront,0.818132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:32.859347 +AWS,eu-west-1,m5n.4xlarge,reserved_1y,partial_upfront,0.818132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:11.678697 +AWS,eu-west-1,m5n.4xlarge,reserved_3y,all_upfront,0.545377,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:41.867517 +AWS,eu-west-1,m5n.4xlarge,reserved_3y,no_upfront,0.545377,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:39.122335 +AWS,eu-west-1,m5n.4xlarge,reserved_3y,partial_upfront,0.545377,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:21.590604 +AWS,eu-west-1,m5n.4xlarge,spot,NA,0.586,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731147 +AWS,eu-west-1,m5n.8xlarge,on_demand,NA,2.128,USD,AWS Pricing API,2025-11-30T09:05:43.971011 +AWS,eu-west-1,m5n.8xlarge,reserved_1y,all_upfront,1.718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:12.987427 +AWS,eu-west-1,m5n.8xlarge,reserved_1y,no_upfront,1.718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:58.127607 +AWS,eu-west-1,m5n.8xlarge,reserved_1y,partial_upfront,1.718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:37.509482 +AWS,eu-west-1,m5n.8xlarge,reserved_3y,all_upfront,1.718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:08.199935 +AWS,eu-west-1,m5n.8xlarge,reserved_3y,no_upfront,1.718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:04.082649 +AWS,eu-west-1,m5n.8xlarge,reserved_3y,partial_upfront,1.718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:47.482720 +AWS,eu-west-1,m5n.8xlarge,spot,NA,1.147653,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729157 +AWS,eu-west-1,m5n.large,on_demand,NA,0.133,USD,AWS Pricing API,2025-11-30T09:05:36.248391 +AWS,eu-west-1,m5n.large,reserved_1y,all_upfront,0.066,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:05.273650 +AWS,eu-west-1,m5n.large,reserved_1y,no_upfront,0.066,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:50.484728 +AWS,eu-west-1,m5n.large,reserved_1y,partial_upfront,0.066,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:29.933371 +AWS,eu-west-1,m5n.large,reserved_3y,all_upfront,0.066,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:00.748814 +AWS,eu-west-1,m5n.large,reserved_3y,no_upfront,0.066,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:56.275387 +AWS,eu-west-1,m5n.large,reserved_3y,partial_upfront,0.066,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:39.832163 +AWS,eu-west-1,m5n.large,spot,NA,0.067978,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728862 +AWS,eu-west-1,m5n.metal,on_demand,NA,6.384,USD,AWS Pricing API,2025-11-30T09:06:00.683106 +AWS,eu-west-1,m5n.metal,reserved_1y,all_upfront,5.155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:29.570372 +AWS,eu-west-1,m5n.metal,reserved_1y,no_upfront,5.155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:14.888294 +AWS,eu-west-1,m5n.metal,reserved_1y,partial_upfront,5.155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:54.024483 +AWS,eu-west-1,m5n.metal,reserved_3y,all_upfront,5.155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:24.484490 +AWS,eu-west-1,m5n.metal,reserved_3y,no_upfront,5.155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:20.969706 +AWS,eu-west-1,m5n.metal,reserved_3y,partial_upfront,5.155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:03.945996 +AWS,eu-west-1,m5n.xlarge,on_demand,NA,0.266,USD,AWS Pricing API,2025-11-30T09:05:55.635911 +AWS,eu-west-1,m5n.xlarge,reserved_1y,all_upfront,0.3,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:24.453084 +AWS,eu-west-1,m5n.xlarge,reserved_1y,no_upfront,0.3,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:09.840322 +AWS,eu-west-1,m5n.xlarge,reserved_1y,partial_upfront,0.3,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:49.036579 +AWS,eu-west-1,m5n.xlarge,reserved_3y,all_upfront,0.1,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:19.574313 +AWS,eu-west-1,m5n.xlarge,reserved_3y,no_upfront,0.1,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:15.869446 +AWS,eu-west-1,m5n.xlarge,reserved_3y,partial_upfront,0.1,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:58.945882 +AWS,eu-west-1,m5n.xlarge,spot,NA,0.144537,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729643 +AWS,eu-west-1,m5zn.12xlarge,on_demand,NA,4.4184,USD,AWS Pricing API,2025-11-30T09:06:00.824332 +AWS,eu-west-1,m5zn.12xlarge,reserved_1y,all_upfront,2.582991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:29.703280 +AWS,eu-west-1,m5zn.12xlarge,reserved_1y,no_upfront,2.582991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:15.030188 +AWS,eu-west-1,m5zn.12xlarge,reserved_1y,partial_upfront,2.582991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:54.157203 +AWS,eu-west-1,m5zn.12xlarge,reserved_3y,all_upfront,0.860997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:24.615373 +AWS,eu-west-1,m5zn.12xlarge,reserved_3y,no_upfront,0.860997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:21.108035 +AWS,eu-west-1,m5zn.12xlarge,reserved_3y,partial_upfront,0.860997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:04.079090 +AWS,eu-west-1,m5zn.12xlarge,spot,NA,2.030372,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729861 +AWS,eu-west-1,m5zn.2xlarge,on_demand,NA,0.7364,USD,AWS Pricing API,2025-11-30T09:05:29.921157 +AWS,eu-west-1,m5zn.2xlarge,reserved_1y,all_upfront,0.5535,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:58.991979 +AWS,eu-west-1,m5zn.2xlarge,reserved_1y,no_upfront,0.5535,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:44.124473 +AWS,eu-west-1,m5zn.2xlarge,reserved_1y,partial_upfront,0.5535,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:23.687019 +AWS,eu-west-1,m5zn.2xlarge,reserved_3y,all_upfront,0.5535,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:54.643987 +AWS,eu-west-1,m5zn.2xlarge,reserved_3y,no_upfront,0.5535,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:49.897142 +AWS,eu-west-1,m5zn.2xlarge,reserved_3y,partial_upfront,0.5535,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:33.629432 +AWS,eu-west-1,m5zn.2xlarge,spot,NA,0.349678,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728589 +AWS,eu-west-1,m5zn.3xlarge,on_demand,NA,1.1046,USD,AWS Pricing API,2025-11-30T09:06:04.399174 +AWS,eu-west-1,m5zn.3xlarge,reserved_1y,all_upfront,0.79072,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:33.308595 +AWS,eu-west-1,m5zn.3xlarge,reserved_1y,no_upfront,0.79072,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:18.588260 +AWS,eu-west-1,m5zn.3xlarge,reserved_1y,partial_upfront,0.79072,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:57.648916 +AWS,eu-west-1,m5zn.3xlarge,reserved_3y,all_upfront,0.527173,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:28.076992 +AWS,eu-west-1,m5zn.3xlarge,reserved_3y,no_upfront,0.527173,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:24.690826 +AWS,eu-west-1,m5zn.3xlarge,reserved_3y,partial_upfront,0.527173,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:07.563737 +AWS,eu-west-1,m5zn.3xlarge,spot,NA,0.58352,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729948 +AWS,eu-west-1,m5zn.6xlarge,on_demand,NA,2.2092,USD,AWS Pricing API,2025-11-30T09:05:23.951883 +AWS,eu-west-1,m5zn.6xlarge,reserved_1y,all_upfront,1.549772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:53.159136 +AWS,eu-west-1,m5zn.6xlarge,reserved_1y,no_upfront,1.549772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:38.079764 +AWS,eu-west-1,m5zn.6xlarge,reserved_1y,partial_upfront,1.549772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:17.896798 +AWS,eu-west-1,m5zn.6xlarge,reserved_3y,all_upfront,0.516591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:48.923304 +AWS,eu-west-1,m5zn.6xlarge,reserved_3y,no_upfront,0.516591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:43.973517 +AWS,eu-west-1,m5zn.6xlarge,reserved_3y,partial_upfront,0.516591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:27.870953 +AWS,eu-west-1,m5zn.6xlarge,spot,NA,1.213388,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728374 +AWS,eu-west-1,m5zn.large,on_demand,NA,0.1841,USD,AWS Pricing API,2025-11-30T09:05:53.993360 +AWS,eu-west-1,m5zn.large,reserved_1y,all_upfront,0.107648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:22.836194 +AWS,eu-west-1,m5zn.large,reserved_1y,no_upfront,0.107648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:08.201129 +AWS,eu-west-1,m5zn.large,reserved_1y,partial_upfront,0.107648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:47.419435 +AWS,eu-west-1,m5zn.large,reserved_3y,all_upfront,0.035883,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:17.967240 +AWS,eu-west-1,m5zn.large,reserved_3y,no_upfront,0.035883,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:14.220203 +AWS,eu-west-1,m5zn.large,reserved_3y,partial_upfront,0.035883,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:57.332527 +AWS,eu-west-1,m5zn.large,spot,NA,0.084853,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729614 +AWS,eu-west-1,m5zn.metal,on_demand,NA,4.4184,USD,AWS Pricing API,2025-11-30T09:06:31.430750 +AWS,eu-west-1,m5zn.metal,reserved_1y,all_upfront,3.562075,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:00.017900 +AWS,eu-west-1,m5zn.metal,reserved_1y,no_upfront,3.562075,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:45.677245 +AWS,eu-west-1,m5zn.metal,reserved_1y,partial_upfront,3.562075,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:24.314856 +AWS,eu-west-1,m5zn.metal,reserved_3y,all_upfront,1.781025,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:54.253364 +AWS,eu-west-1,m5zn.metal,reserved_3y,no_upfront,1.781025,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:51.990697 +AWS,eu-west-1,m5zn.metal,reserved_3y,partial_upfront,1.781025,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:34.084590 +AWS,eu-west-1,m5zn.metal,spot,NA,1.981119,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731663 +AWS,eu-west-1,m5zn.xlarge,on_demand,NA,0.3682,USD,AWS Pricing API,2025-11-30T09:05:29.093537 +AWS,eu-west-1,m5zn.xlarge,reserved_1y,all_upfront,0.219617,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:58.179012 +AWS,eu-west-1,m5zn.xlarge,reserved_1y,no_upfront,0.219617,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:43.299739 +AWS,eu-west-1,m5zn.xlarge,reserved_1y,partial_upfront,0.219617,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:22.875131 +AWS,eu-west-1,m5zn.xlarge,reserved_3y,all_upfront,0.146406,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:53.841886 +AWS,eu-west-1,m5zn.xlarge,reserved_3y,no_upfront,0.146406,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:49.077494 +AWS,eu-west-1,m5zn.xlarge,reserved_3y,partial_upfront,0.146406,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:32.823016 +AWS,eu-west-1,m5zn.xlarge,spot,NA,0.182047,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728577 +AWS,eu-west-1,m6g.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T09:05:39.012148 +AWS,eu-west-1,m6g.12xlarge,reserved_1y,all_upfront,1.631758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:08.066623 +AWS,eu-west-1,m6g.12xlarge,reserved_1y,no_upfront,1.631758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:53.212767 +AWS,eu-west-1,m6g.12xlarge,reserved_1y,partial_upfront,1.631758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:32.657930 +AWS,eu-west-1,m6g.12xlarge,reserved_3y,all_upfront,0.815853,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:03.435595 +AWS,eu-west-1,m6g.12xlarge,reserved_3y,no_upfront,0.815853,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:59.037774 +AWS,eu-west-1,m6g.12xlarge,reserved_3y,partial_upfront,0.815853,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:42.616388 +AWS,eu-west-1,m6g.12xlarge,spot,NA,0.940937,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728976 +AWS,eu-west-1,m6g.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T09:05:34.322601 +AWS,eu-west-1,m6g.16xlarge,reserved_1y,all_upfront,3.91758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:03.342821 +AWS,eu-west-1,m6g.16xlarge,reserved_1y,no_upfront,3.91758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:48.540347 +AWS,eu-west-1,m6g.16xlarge,reserved_1y,partial_upfront,3.91758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:28.029164 +AWS,eu-west-1,m6g.16xlarge,reserved_3y,all_upfront,1.30586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:58.889008 +AWS,eu-west-1,m6g.16xlarge,reserved_3y,no_upfront,1.30586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:54.310870 +AWS,eu-west-1,m6g.16xlarge,reserved_3y,partial_upfront,1.30586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:37.933239 +AWS,eu-west-1,m6g.16xlarge,spot,NA,1.225466,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728781 +AWS,eu-west-1,m6g.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T09:05:55.223514 +AWS,eu-west-1,m6g.2xlarge,reserved_1y,all_upfront,0.247544,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:24.046035 +AWS,eu-west-1,m6g.2xlarge,reserved_1y,no_upfront,0.247544,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:09.429543 +AWS,eu-west-1,m6g.2xlarge,reserved_1y,partial_upfront,0.247544,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:48.629375 +AWS,eu-west-1,m6g.2xlarge,reserved_3y,all_upfront,0.165048,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:19.168443 +AWS,eu-west-1,m6g.2xlarge,reserved_3y,no_upfront,0.165048,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:15.458588 +AWS,eu-west-1,m6g.2xlarge,reserved_3y,partial_upfront,0.165048,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:58.542644 +AWS,eu-west-1,m6g.2xlarge,spot,NA,0.164356,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729654 +AWS,eu-west-1,m6g.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T09:06:21.953757 +AWS,eu-west-1,m6g.4xlarge,reserved_1y,all_upfront,0.5198,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:50.673917 +AWS,eu-west-1,m6g.4xlarge,reserved_1y,no_upfront,0.5198,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:36.172393 +AWS,eu-west-1,m6g.4xlarge,reserved_1y,partial_upfront,0.5198,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:14.903138 +AWS,eu-west-1,m6g.4xlarge,reserved_3y,all_upfront,0.5198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:45.067106 +AWS,eu-west-1,m6g.4xlarge,reserved_3y,no_upfront,0.5198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:42.442758 +AWS,eu-west-1,m6g.4xlarge,reserved_3y,partial_upfront,0.5198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:24.804382 +AWS,eu-west-1,m6g.4xlarge,spot,NA,0.316152,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731287 +AWS,eu-west-1,m6g.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T09:06:02.748000 +AWS,eu-west-1,m6g.8xlarge,reserved_1y,all_upfront,0.8568,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:31.612690 +AWS,eu-west-1,m6g.8xlarge,reserved_1y,no_upfront,0.8568,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:16.944162 +AWS,eu-west-1,m6g.8xlarge,reserved_1y,partial_upfront,0.8568,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:56.029654 +AWS,eu-west-1,m6g.8xlarge,reserved_3y,all_upfront,0.8568,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:26.483247 +AWS,eu-west-1,m6g.8xlarge,reserved_3y,no_upfront,0.8568,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:23.041412 +AWS,eu-west-1,m6g.8xlarge,reserved_3y,partial_upfront,0.8568,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:05.958186 +AWS,eu-west-1,m6g.8xlarge,spot,NA,0.639665,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729891 +AWS,eu-west-1,m6g.large,on_demand,NA,0.086,USD,AWS Pricing API,2025-11-30T09:05:39.574025 +AWS,eu-west-1,m6g.large,reserved_1y,all_upfront,0.045,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:08.608651 +AWS,eu-west-1,m6g.large,reserved_1y,no_upfront,0.045,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:53.756452 +AWS,eu-west-1,m6g.large,reserved_1y,partial_upfront,0.045,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:33.192531 +AWS,eu-west-1,m6g.large,reserved_3y,all_upfront,0.045,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:03.964047 +AWS,eu-west-1,m6g.large,reserved_3y,no_upfront,0.045,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:59.609193 +AWS,eu-west-1,m6g.large,reserved_3y,partial_upfront,0.045,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:43.156012 +AWS,eu-west-1,m6g.large,spot,NA,0.040555,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729005 +AWS,eu-west-1,m6g.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T09:05:53.439232 +AWS,eu-west-1,m6g.xlarge,reserved_1y,all_upfront,0.1299,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:22.297238 +AWS,eu-west-1,m6g.xlarge,reserved_1y,no_upfront,0.1299,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:07.638738 +AWS,eu-west-1,m6g.xlarge,reserved_1y,partial_upfront,0.1299,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:46.880280 +AWS,eu-west-1,m6g.xlarge,reserved_3y,all_upfront,0.1299,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:17.439835 +AWS,eu-west-1,m6g.xlarge,reserved_3y,no_upfront,0.1299,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:13.672227 +AWS,eu-west-1,m6g.xlarge,reserved_3y,partial_upfront,0.1299,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:56.795901 +AWS,eu-west-1,m6g.xlarge,spot,NA,0.081413,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729560 +AWS,eu-west-1,m6gd.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T09:06:11.499146 +AWS,eu-west-1,m6gd.12xlarge,reserved_1y,all_upfront,1.935284,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:40.350442 +AWS,eu-west-1,m6gd.12xlarge,reserved_1y,no_upfront,1.935284,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:25.703308 +AWS,eu-west-1,m6gd.12xlarge,reserved_1y,partial_upfront,1.935284,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:04.690386 +AWS,eu-west-1,m6gd.12xlarge,reserved_3y,all_upfront,0.967628,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:34.996310 +AWS,eu-west-1,m6gd.12xlarge,reserved_3y,no_upfront,0.967628,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:31.933262 +AWS,eu-west-1,m6gd.12xlarge,reserved_3y,partial_upfront,0.967628,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:14.571578 +AWS,eu-west-1,m6gd.12xlarge,spot,NA,1.082897,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730762 +AWS,eu-west-1,m6gd.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T09:06:13.833398 +AWS,eu-west-1,m6gd.16xlarge,reserved_1y,all_upfront,2.0321,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:42.673839 +AWS,eu-west-1,m6gd.16xlarge,reserved_1y,no_upfront,2.0321,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:28.020740 +AWS,eu-west-1,m6gd.16xlarge,reserved_1y,partial_upfront,2.0321,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:06.998920 +AWS,eu-west-1,m6gd.16xlarge,reserved_3y,all_upfront,2.0321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:37.250446 +AWS,eu-west-1,m6gd.16xlarge,reserved_3y,no_upfront,2.0321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:34.274868 +AWS,eu-west-1,m6gd.16xlarge,reserved_3y,partial_upfront,2.0321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:16.861372 +AWS,eu-west-1,m6gd.16xlarge,spot,NA,1.495238,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730907 +AWS,eu-west-1,m6gd.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T09:05:41.799061 +AWS,eu-west-1,m6gd.2xlarge,reserved_1y,all_upfront,0.254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:10.768845 +AWS,eu-west-1,m6gd.2xlarge,reserved_1y,no_upfront,0.254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:55.945718 +AWS,eu-west-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:35.347786 +AWS,eu-west-1,m6gd.2xlarge,reserved_3y,all_upfront,0.254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:06.078957 +AWS,eu-west-1,m6gd.2xlarge,reserved_3y,no_upfront,0.254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:01.864076 +AWS,eu-west-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:45.321529 +AWS,eu-west-1,m6gd.2xlarge,spot,NA,0.20769,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729111 +AWS,eu-west-1,m6gd.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T09:06:08.636338 +AWS,eu-west-1,m6gd.4xlarge,reserved_1y,all_upfront,0.508,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:37.514766 +AWS,eu-west-1,m6gd.4xlarge,reserved_1y,no_upfront,0.508,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:22.835245 +AWS,eu-west-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.508,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:01.827316 +AWS,eu-west-1,m6gd.4xlarge,reserved_3y,all_upfront,0.508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:32.208781 +AWS,eu-west-1,m6gd.4xlarge,reserved_3y,no_upfront,0.508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:28.971817 +AWS,eu-west-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:11.743289 +AWS,eu-west-1,m6gd.4xlarge,spot,NA,0.388246,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730682 +AWS,eu-west-1,m6gd.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T09:05:30.340754 +AWS,eu-west-1,m6gd.8xlarge,reserved_1y,all_upfront,1.3106,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:59.396548 +AWS,eu-west-1,m6gd.8xlarge,reserved_1y,no_upfront,1.3106,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:44.535818 +AWS,eu-west-1,m6gd.8xlarge,reserved_1y,partial_upfront,1.3106,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:24.101486 +AWS,eu-west-1,m6gd.8xlarge,reserved_3y,all_upfront,1.3106,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:55.039922 +AWS,eu-west-1,m6gd.8xlarge,reserved_3y,no_upfront,1.3106,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:50.309743 +AWS,eu-west-1,m6gd.8xlarge,reserved_3y,partial_upfront,1.3106,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:34.029840 +AWS,eu-west-1,m6gd.8xlarge,spot,NA,0.755517,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728594 +AWS,eu-west-1,m6gd.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T09:05:52.069290 +AWS,eu-west-1,m6gd.large,reserved_1y,all_upfront,0.076484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:20.944102 +AWS,eu-west-1,m6gd.large,reserved_1y,no_upfront,0.076484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:06.268703 +AWS,eu-west-1,m6gd.large,reserved_1y,partial_upfront,0.076484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:45.508053 +AWS,eu-west-1,m6gd.large,reserved_3y,all_upfront,0.025495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:16.117277 +AWS,eu-west-1,m6gd.large,reserved_3y,no_upfront,0.025495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:12.296051 +AWS,eu-west-1,m6gd.large,reserved_3y,partial_upfront,0.025495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:55.425761 +AWS,eu-west-1,m6gd.large,spot,NA,0.048583,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729486 +AWS,eu-west-1,m6gd.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T09:05:45.219025 +AWS,eu-west-1,m6gd.xlarge,reserved_1y,all_upfront,0.121002,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:14.200987 +AWS,eu-west-1,m6gd.xlarge,reserved_1y,no_upfront,0.121002,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:59.366348 +AWS,eu-west-1,m6gd.xlarge,reserved_1y,partial_upfront,0.121002,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:38.738213 +AWS,eu-west-1,m6gd.xlarge,reserved_3y,all_upfront,0.080667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:09.397009 +AWS,eu-west-1,m6gd.xlarge,reserved_3y,no_upfront,0.080667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:05.336226 +AWS,eu-west-1,m6gd.xlarge,reserved_3y,partial_upfront,0.080667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:48.694946 +AWS,eu-west-1,m6gd.xlarge,spot,NA,0.101164,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729202 +AWS,eu-west-1,m6i.12xlarge,on_demand,NA,2.568,USD,AWS Pricing API,2025-11-30T09:05:31.151972 +AWS,eu-west-1,m6i.12xlarge,reserved_1y,all_upfront,2.157088,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:00.210478 +AWS,eu-west-1,m6i.12xlarge,reserved_1y,no_upfront,2.157088,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:45.349024 +AWS,eu-west-1,m6i.12xlarge,reserved_1y,partial_upfront,2.157088,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:24.911739 +AWS,eu-west-1,m6i.12xlarge,reserved_3y,all_upfront,1.078549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:55.841350 +AWS,eu-west-1,m6i.12xlarge,reserved_3y,no_upfront,1.078549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:51.140859 +AWS,eu-west-1,m6i.12xlarge,reserved_3y,partial_upfront,1.078549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:34.830257 +AWS,eu-west-1,m6i.12xlarge,spot,NA,1.185333,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728641 +AWS,eu-west-1,m6i.16xlarge,on_demand,NA,3.424,USD,AWS Pricing API,2025-11-30T09:05:45.904850 +AWS,eu-west-1,m6i.16xlarge,reserved_1y,all_upfront,2.59905,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:14.876740 +AWS,eu-west-1,m6i.16xlarge,reserved_1y,no_upfront,2.59905,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:00.052771 +AWS,eu-west-1,m6i.16xlarge,reserved_1y,partial_upfront,2.59905,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:39.408705 +AWS,eu-west-1,m6i.16xlarge,reserved_3y,all_upfront,2.59905,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:10.055301 +AWS,eu-west-1,m6i.16xlarge,reserved_3y,no_upfront,2.59905,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:06.025074 +AWS,eu-west-1,m6i.16xlarge,reserved_3y,partial_upfront,2.59905,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:49.374197 +AWS,eu-west-1,m6i.16xlarge,spot,NA,1.572507,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729264 +AWS,eu-west-1,m6i.24xlarge,on_demand,NA,5.136,USD,AWS Pricing API,2025-11-30T09:05:47.418911 +AWS,eu-west-1,m6i.24xlarge,reserved_1y,all_upfront,3.89857,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:16.355521 +AWS,eu-west-1,m6i.24xlarge,reserved_1y,no_upfront,3.89857,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:01.593309 +AWS,eu-west-1,m6i.24xlarge,reserved_1y,partial_upfront,3.89857,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:40.889954 +AWS,eu-west-1,m6i.24xlarge,reserved_3y,all_upfront,3.89857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:11.512108 +AWS,eu-west-1,m6i.24xlarge,reserved_3y,no_upfront,3.89857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:07.547057 +AWS,eu-west-1,m6i.24xlarge,reserved_3y,partial_upfront,3.89857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:50.849697 +AWS,eu-west-1,m6i.24xlarge,spot,NA,2.34606,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729310 +AWS,eu-west-1,m6i.2xlarge,on_demand,NA,0.428,USD,AWS Pricing API,2025-11-30T09:06:06.451703 +AWS,eu-west-1,m6i.2xlarge,reserved_1y,all_upfront,0.32488,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:35.333303 +AWS,eu-west-1,m6i.2xlarge,reserved_1y,no_upfront,0.32488,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:20.634918 +AWS,eu-west-1,m6i.2xlarge,reserved_1y,partial_upfront,0.32488,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:59.668921 +AWS,eu-west-1,m6i.2xlarge,reserved_3y,all_upfront,0.32488,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:30.061286 +AWS,eu-west-1,m6i.2xlarge,reserved_3y,no_upfront,0.32488,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:26.764995 +AWS,eu-west-1,m6i.2xlarge,reserved_3y,partial_upfront,0.32488,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:09.590667 +AWS,eu-west-1,m6i.2xlarge,spot,NA,0.217571,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730591 +AWS,eu-west-1,m6i.32xlarge,on_demand,NA,6.848,USD,AWS Pricing API,2025-11-30T09:06:23.183617 +AWS,eu-west-1,m6i.32xlarge,reserved_1y,all_upfront,4.227968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:51.880901 +AWS,eu-west-1,m6i.32xlarge,reserved_1y,no_upfront,4.227968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:37.404781 +AWS,eu-west-1,m6i.32xlarge,reserved_1y,partial_upfront,4.227968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:16.124210 +AWS,eu-west-1,m6i.32xlarge,reserved_3y,all_upfront,1.409323,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:46.275094 +AWS,eu-west-1,m6i.32xlarge,reserved_3y,no_upfront,1.409323,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:43.677558 +AWS,eu-west-1,m6i.32xlarge,reserved_3y,partial_upfront,1.409323,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:26.025524 +AWS,eu-west-1,m6i.32xlarge,spot,NA,3.148805,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731305 +AWS,eu-west-1,m6i.4xlarge,on_demand,NA,0.856,USD,AWS Pricing API,2025-11-30T09:05:33.369310 +AWS,eu-west-1,m6i.4xlarge,reserved_1y,all_upfront,0.44974,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:02.387434 +AWS,eu-west-1,m6i.4xlarge,reserved_1y,no_upfront,0.44974,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:47.565077 +AWS,eu-west-1,m6i.4xlarge,reserved_1y,partial_upfront,0.44974,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:27.080327 +AWS,eu-west-1,m6i.4xlarge,reserved_3y,all_upfront,0.44974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:57.952558 +AWS,eu-west-1,m6i.4xlarge,reserved_3y,no_upfront,0.44974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:53.353953 +AWS,eu-west-1,m6i.4xlarge,reserved_3y,partial_upfront,0.44974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:36.973250 +AWS,eu-west-1,m6i.4xlarge,spot,NA,0.412951,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728737 +AWS,eu-west-1,m6i.8xlarge,on_demand,NA,1.712,USD,AWS Pricing API,2025-11-30T09:05:38.186668 +AWS,eu-west-1,m6i.8xlarge,reserved_1y,all_upfront,1.056963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:07.260702 +AWS,eu-west-1,m6i.8xlarge,reserved_1y,no_upfront,1.056963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:52.393890 +AWS,eu-west-1,m6i.8xlarge,reserved_1y,partial_upfront,1.056963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:31.846472 +AWS,eu-west-1,m6i.8xlarge,reserved_3y,all_upfront,0.352321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:02.637181 +AWS,eu-west-1,m6i.8xlarge,reserved_3y,no_upfront,0.352321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:58.193040 +AWS,eu-west-1,m6i.8xlarge,reserved_3y,partial_upfront,0.352321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:41.797979 +AWS,eu-west-1,m6i.8xlarge,spot,NA,0.785767,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728946 +AWS,eu-west-1,m6i.large,on_demand,NA,0.107,USD,AWS Pricing API,2025-11-30T09:05:48.944675 +AWS,eu-west-1,m6i.large,reserved_1y,all_upfront,0.066096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:17.841334 +AWS,eu-west-1,m6i.large,reserved_1y,no_upfront,0.066096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:03.123564 +AWS,eu-west-1,m6i.large,reserved_1y,partial_upfront,0.066096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:42.395967 +AWS,eu-west-1,m6i.large,reserved_3y,all_upfront,0.022032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:13.062909 +AWS,eu-west-1,m6i.large,reserved_3y,no_upfront,0.022032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:09.084011 +AWS,eu-west-1,m6i.large,reserved_3y,partial_upfront,0.022032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:52.339563 +AWS,eu-west-1,m6i.large,spot,NA,0.053448,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729387 +AWS,eu-west-1,m6i.xlarge,on_demand,NA,0.214,USD,AWS Pricing API,2025-11-30T09:05:24.497347 +AWS,eu-west-1,m6i.xlarge,reserved_1y,all_upfront,0.154747,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:53.698015 +AWS,eu-west-1,m6i.xlarge,reserved_1y,no_upfront,0.154747,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:38.631687 +AWS,eu-west-1,m6i.xlarge,reserved_1y,partial_upfront,0.154747,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:18.433086 +AWS,eu-west-1,m6i.xlarge,reserved_3y,all_upfront,0.103149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:49.454292 +AWS,eu-west-1,m6i.xlarge,reserved_3y,no_upfront,0.103149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:44.525955 +AWS,eu-west-1,m6i.xlarge,reserved_3y,partial_upfront,0.103149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:28.408964 +AWS,eu-west-1,m6i.xlarge,spot,NA,0.101083,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728396 +AWS,eu-west-1,m6id.12xlarge,on_demand,NA,3.1752,USD,AWS Pricing API,2025-11-30T09:06:02.886758 +AWS,eu-west-1,m6id.12xlarge,reserved_1y,all_upfront,2.00038,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:31.747319 +AWS,eu-west-1,m6id.12xlarge,reserved_1y,no_upfront,2.00038,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:17.088952 +AWS,eu-west-1,m6id.12xlarge,reserved_1y,partial_upfront,2.00038,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:56.164466 +AWS,eu-west-1,m6id.12xlarge,reserved_3y,all_upfront,2.00038,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:26.617509 +AWS,eu-west-1,m6id.12xlarge,reserved_3y,no_upfront,2.00038,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:23.184964 +AWS,eu-west-1,m6id.12xlarge,reserved_3y,partial_upfront,2.00038,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:06.091797 +AWS,eu-west-1,m6id.12xlarge,spot,NA,1.455439,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729919 +AWS,eu-west-1,m6id.16xlarge,on_demand,NA,4.2336,USD,AWS Pricing API,2025-11-30T09:05:29.784856 +AWS,eu-west-1,m6id.16xlarge,reserved_1y,all_upfront,3.386903,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:58.859288 +AWS,eu-west-1,m6id.16xlarge,reserved_1y,no_upfront,3.386903,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:43.985954 +AWS,eu-west-1,m6id.16xlarge,reserved_1y,partial_upfront,3.386903,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:23.552323 +AWS,eu-west-1,m6id.16xlarge,reserved_3y,all_upfront,1.693448,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:54.510138 +AWS,eu-west-1,m6id.16xlarge,reserved_3y,no_upfront,1.693448,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:49.760937 +AWS,eu-west-1,m6id.16xlarge,reserved_3y,partial_upfront,1.693448,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:33.493621 +AWS,eu-west-1,m6id.16xlarge,spot,NA,2.017549,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728617 +AWS,eu-west-1,m6id.24xlarge,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T09:05:34.047649 +AWS,eu-west-1,m6id.24xlarge,reserved_1y,all_upfront,7.163242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:03.066603 +AWS,eu-west-1,m6id.24xlarge,reserved_1y,no_upfront,7.163242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:48.261808 +AWS,eu-west-1,m6id.24xlarge,reserved_1y,partial_upfront,7.163242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:27.761189 +AWS,eu-west-1,m6id.24xlarge,reserved_3y,all_upfront,2.387747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:58.626832 +AWS,eu-west-1,m6id.24xlarge,reserved_3y,no_upfront,2.387747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:54.037765 +AWS,eu-west-1,m6id.24xlarge,reserved_3y,partial_upfront,2.387747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:37.659122 +AWS,eu-west-1,m6id.24xlarge,spot,NA,2.757049,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728769 +AWS,eu-west-1,m6id.2xlarge,on_demand,NA,0.5292,USD,AWS Pricing API,2025-11-30T09:05:26.308015 +AWS,eu-west-1,m6id.2xlarge,reserved_1y,all_upfront,0.30119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:55.458901 +AWS,eu-west-1,m6id.2xlarge,reserved_1y,no_upfront,0.30119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:40.426743 +AWS,eu-west-1,m6id.2xlarge,reserved_1y,partial_upfront,0.30119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:20.181634 +AWS,eu-west-1,m6id.2xlarge,reserved_3y,all_upfront,0.30119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:51.192963 +AWS,eu-west-1,m6id.2xlarge,reserved_3y,no_upfront,0.30119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:46.319463 +AWS,eu-west-1,m6id.2xlarge,reserved_3y,partial_upfront,0.30119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:30.153321 +AWS,eu-west-1,m6id.2xlarge,spot,NA,0.250504,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728487 +AWS,eu-west-1,m6id.32xlarge,on_demand,NA,8.4672,USD,AWS Pricing API,2025-11-30T09:06:06.725906 +AWS,eu-west-1,m6id.32xlarge,reserved_1y,all_upfront,5.080343,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:35.609062 +AWS,eu-west-1,m6id.32xlarge,reserved_1y,no_upfront,5.080343,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:20.909328 +AWS,eu-west-1,m6id.32xlarge,reserved_1y,partial_upfront,5.080343,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:59.937306 +AWS,eu-west-1,m6id.32xlarge,reserved_3y,all_upfront,3.386888,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:30.329392 +AWS,eu-west-1,m6id.32xlarge,reserved_3y,no_upfront,3.386888,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:27.040876 +AWS,eu-west-1,m6id.32xlarge,reserved_3y,partial_upfront,3.386888,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:09.856551 +AWS,eu-west-1,m6id.32xlarge,spot,NA,3.858674,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730578 +AWS,eu-west-1,m6id.4xlarge,on_demand,NA,1.0584,USD,AWS Pricing API,2025-11-30T09:06:29.353840 +AWS,eu-west-1,m6id.4xlarge,reserved_1y,all_upfront,0.846726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:57.959832 +AWS,eu-west-1,m6id.4xlarge,reserved_1y,no_upfront,0.846726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:43.604351 +AWS,eu-west-1,m6id.4xlarge,reserved_1y,partial_upfront,0.846726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:22.279347 +AWS,eu-west-1,m6id.4xlarge,reserved_3y,all_upfront,0.423362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:52.262814 +AWS,eu-west-1,m6id.4xlarge,reserved_3y,no_upfront,0.423362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:49.917476 +AWS,eu-west-1,m6id.4xlarge,reserved_3y,partial_upfront,0.423362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:32.084169 +AWS,eu-west-1,m6id.4xlarge,spot,NA,0.500457,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731573 +AWS,eu-west-1,m6id.8xlarge,on_demand,NA,2.1168,USD,AWS Pricing API,2025-11-30T09:06:01.504968 +AWS,eu-west-1,m6id.8xlarge,reserved_1y,all_upfront,1.270086,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:30.392580 +AWS,eu-west-1,m6id.8xlarge,reserved_1y,no_upfront,1.270086,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:15.714356 +AWS,eu-west-1,m6id.8xlarge,reserved_1y,partial_upfront,1.270086,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:54.828244 +AWS,eu-west-1,m6id.8xlarge,reserved_3y,all_upfront,0.846722,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:25.278218 +AWS,eu-west-1,m6id.8xlarge,reserved_3y,no_upfront,0.846722,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:21.795961 +AWS,eu-west-1,m6id.8xlarge,reserved_3y,partial_upfront,0.846722,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:04.748526 +AWS,eu-west-1,m6id.8xlarge,spot,NA,1.018455,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729850 +AWS,eu-west-1,m6id.large,on_demand,NA,0.1323,USD,AWS Pricing API,2025-11-30T09:06:30.470126 +AWS,eu-west-1,m6id.large,reserved_1y,all_upfront,0.07774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:59.068105 +AWS,eu-west-1,m6id.large,reserved_1y,no_upfront,0.07774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:44.701150 +AWS,eu-west-1,m6id.large,reserved_1y,partial_upfront,0.07774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:23.373329 +AWS,eu-west-1,m6id.large,reserved_3y,all_upfront,0.025913,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:53.321759 +AWS,eu-west-1,m6id.large,reserved_3y,no_upfront,0.025913,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:51.023552 +AWS,eu-west-1,m6id.large,reserved_3y,partial_upfront,0.025913,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:33.149328 +AWS,eu-west-1,m6id.large,spot,NA,0.063095,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731592 +AWS,eu-west-1,m6id.xlarge,on_demand,NA,0.2646,USD,AWS Pricing API,2025-11-30T09:05:33.075990 +AWS,eu-west-1,m6id.xlarge,reserved_1y,all_upfront,0.199658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:02.114008 +AWS,eu-west-1,m6id.xlarge,reserved_1y,no_upfront,0.199658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:47.270837 +AWS,eu-west-1,m6id.xlarge,reserved_1y,partial_upfront,0.199658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:26.810544 +AWS,eu-west-1,m6id.xlarge,reserved_3y,all_upfront,0.066553,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:57.690153 +AWS,eu-west-1,m6id.xlarge,reserved_3y,no_upfront,0.066553,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:53.080277 +AWS,eu-west-1,m6id.xlarge,reserved_3y,partial_upfront,0.066553,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:36.705817 +AWS,eu-west-1,m6id.xlarge,spot,NA,0.124437,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728707 +AWS,eu-west-1,m6idn.12xlarge,on_demand,NA,4.26816,USD,AWS Pricing API,2025-11-30T09:05:53.160175 +AWS,eu-west-1,m6idn.12xlarge,reserved_1y,all_upfront,2.1573,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:22.027073 +AWS,eu-west-1,m6idn.12xlarge,reserved_1y,no_upfront,2.1573,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:07.365618 +AWS,eu-west-1,m6idn.12xlarge,reserved_1y,partial_upfront,2.1573,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:46.597639 +AWS,eu-west-1,m6idn.12xlarge,reserved_3y,all_upfront,2.1573,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:17.175945 +AWS,eu-west-1,m6idn.12xlarge,reserved_3y,no_upfront,2.1573,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:13.399001 +AWS,eu-west-1,m6idn.12xlarge,reserved_3y,partial_upfront,2.1573,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:56.529762 +AWS,eu-west-1,m6idn.12xlarge,spot,NA,1.949941,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729525 +AWS,eu-west-1,m6idn.16xlarge,on_demand,NA,5.69088,USD,AWS Pricing API,2025-11-30T09:06:16.449480 +AWS,eu-west-1,m6idn.16xlarge,reserved_1y,all_upfront,3.346233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:45.248417 +AWS,eu-west-1,m6idn.16xlarge,reserved_1y,no_upfront,3.346233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:30.637323 +AWS,eu-west-1,m6idn.16xlarge,reserved_1y,partial_upfront,3.346233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:09.530487 +AWS,eu-west-1,m6idn.16xlarge,reserved_3y,all_upfront,1.115411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:39.761498 +AWS,eu-west-1,m6idn.16xlarge,reserved_3y,no_upfront,1.115411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:36.901429 +AWS,eu-west-1,m6idn.16xlarge,reserved_3y,partial_upfront,1.115411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:19.436298 +AWS,eu-west-1,m6idn.16xlarge,spot,NA,2.66029,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731049 +AWS,eu-west-1,m6idn.24xlarge,on_demand,NA,8.53632,USD,AWS Pricing API,2025-11-30T09:05:59.033916 +AWS,eu-west-1,m6idn.24xlarge,reserved_1y,all_upfront,4.3146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:27.946562 +AWS,eu-west-1,m6idn.24xlarge,reserved_1y,no_upfront,4.3146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:13.254567 +AWS,eu-west-1,m6idn.24xlarge,reserved_1y,partial_upfront,4.3146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:52.402267 +AWS,eu-west-1,m6idn.24xlarge,reserved_3y,all_upfront,4.3146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:22.890611 +AWS,eu-west-1,m6idn.24xlarge,reserved_3y,no_upfront,4.3146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:19.322308 +AWS,eu-west-1,m6idn.24xlarge,reserved_3y,partial_upfront,4.3146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:02.322075 +AWS,eu-west-1,m6idn.24xlarge,spot,NA,3.809391,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729735 +AWS,eu-west-1,m6idn.2xlarge,on_demand,NA,0.71136,USD,AWS Pricing API,2025-11-30T09:05:39.299059 +AWS,eu-west-1,m6idn.2xlarge,reserved_1y,all_upfront,0.418265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:08.339880 +AWS,eu-west-1,m6idn.2xlarge,reserved_1y,no_upfront,0.418265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:53.485717 +AWS,eu-west-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.418265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:32.925804 +AWS,eu-west-1,m6idn.2xlarge,reserved_3y,all_upfront,0.139422,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:03.698923 +AWS,eu-west-1,m6idn.2xlarge,reserved_3y,no_upfront,0.139422,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:59.324451 +AWS,eu-west-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.139422,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:42.887098 +AWS,eu-west-1,m6idn.2xlarge,spot,NA,0.350471,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728994 +AWS,eu-west-1,m6idn.32xlarge,on_demand,NA,11.38176,USD,AWS Pricing API,2025-11-30T09:05:59.862184 +AWS,eu-west-1,m6idn.32xlarge,reserved_1y,all_upfront,9.13045,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:28.758740 +AWS,eu-west-1,m6idn.32xlarge,reserved_1y,no_upfront,9.13045,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:14.072744 +AWS,eu-west-1,m6idn.32xlarge,reserved_1y,partial_upfront,9.13045,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:53.211802 +AWS,eu-west-1,m6idn.32xlarge,reserved_3y,all_upfront,9.13045,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:23.692113 +AWS,eu-west-1,m6idn.32xlarge,reserved_3y,no_upfront,9.13045,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:20.141914 +AWS,eu-west-1,m6idn.32xlarge,reserved_3y,partial_upfront,9.13045,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:03.133095 +AWS,eu-west-1,m6idn.32xlarge,spot,NA,5.07095,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729787 +AWS,eu-west-1,m6idn.4xlarge,on_demand,NA,1.42272,USD,AWS Pricing API,2025-11-30T09:05:56.048625 +AWS,eu-west-1,m6idn.4xlarge,reserved_1y,all_upfront,1.086973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:24.861976 +AWS,eu-west-1,m6idn.4xlarge,reserved_1y,no_upfront,1.086973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:10.249757 +AWS,eu-west-1,m6idn.4xlarge,reserved_1y,partial_upfront,1.086973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:49.442167 +AWS,eu-west-1,m6idn.4xlarge,reserved_3y,all_upfront,0.724644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:19.970604 +AWS,eu-west-1,m6idn.4xlarge,reserved_3y,no_upfront,0.724644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:16.301661 +AWS,eu-west-1,m6idn.4xlarge,reserved_3y,partial_upfront,0.724644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:59.356797 +AWS,eu-west-1,m6idn.4xlarge,spot,NA,0.729674,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729666 +AWS,eu-west-1,m6idn.8xlarge,on_demand,NA,2.84544,USD,AWS Pricing API,2025-11-30T09:05:23.810385 +AWS,eu-west-1,m6idn.8xlarge,reserved_1y,all_upfront,1.707283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:53.015341 +AWS,eu-west-1,m6idn.8xlarge,reserved_1y,no_upfront,1.707283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:37.932584 +AWS,eu-west-1,m6idn.8xlarge,reserved_1y,partial_upfront,1.707283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:17.763407 +AWS,eu-west-1,m6idn.8xlarge,reserved_3y,all_upfront,1.138181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:48.790243 +AWS,eu-west-1,m6idn.8xlarge,reserved_3y,no_upfront,1.138181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:43.825172 +AWS,eu-west-1,m6idn.8xlarge,reserved_3y,partial_upfront,1.138181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:27.739357 +AWS,eu-west-1,m6idn.8xlarge,spot,NA,1.297567,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728379 +AWS,eu-west-1,m6idn.large,on_demand,NA,0.17784,USD,AWS Pricing API,2025-11-30T09:06:10.406228 +AWS,eu-west-1,m6idn.large,reserved_1y,all_upfront,0.104566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:39.275633 +AWS,eu-west-1,m6idn.large,reserved_1y,no_upfront,0.104566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:24.608749 +AWS,eu-west-1,m6idn.large,reserved_1y,partial_upfront,0.104566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:03.611850 +AWS,eu-west-1,m6idn.large,reserved_3y,all_upfront,0.034855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:33.931420 +AWS,eu-west-1,m6idn.large,reserved_3y,no_upfront,0.034855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:30.835054 +AWS,eu-west-1,m6idn.large,reserved_3y,partial_upfront,0.034855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:13.489245 +AWS,eu-west-1,m6idn.large,spot,NA,0.085928,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730788 +AWS,eu-west-1,m6idn.xlarge,on_demand,NA,0.35568,USD,AWS Pricing API,2025-11-30T09:05:53.301012 +AWS,eu-west-1,m6idn.xlarge,reserved_1y,all_upfront,0.266324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:22.162243 +AWS,eu-west-1,m6idn.xlarge,reserved_1y,no_upfront,0.266324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:07.502393 +AWS,eu-west-1,m6idn.xlarge,reserved_1y,partial_upfront,0.266324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:46.741283 +AWS,eu-west-1,m6idn.xlarge,reserved_3y,all_upfront,0.088775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:17.306796 +AWS,eu-west-1,m6idn.xlarge,reserved_3y,no_upfront,0.088775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:13.535680 +AWS,eu-west-1,m6idn.xlarge,reserved_3y,partial_upfront,0.088775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:56.663649 +AWS,eu-west-1,m6idn.xlarge,spot,NA,0.16542,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729543 +AWS,eu-west-1,m6in.12xlarge,on_demand,NA,3.73464,USD,AWS Pricing API,2025-11-30T09:05:20.952701 +AWS,eu-west-1,m6in.12xlarge,reserved_1y,all_upfront,2.35282,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:50.166909 +AWS,eu-west-1,m6in.12xlarge,reserved_1y,no_upfront,2.35282,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:35.074161 +AWS,eu-west-1,m6in.12xlarge,reserved_1y,partial_upfront,2.35282,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:14.952993 +AWS,eu-west-1,m6in.12xlarge,reserved_3y,all_upfront,2.35282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:45.993577 +AWS,eu-west-1,m6in.12xlarge,reserved_3y,no_upfront,2.35282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:40.920985 +AWS,eu-west-1,m6in.12xlarge,reserved_3y,partial_upfront,2.35282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:24.911978 +AWS,eu-west-1,m6in.12xlarge,spot,NA,1.97868,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728270 +AWS,eu-west-1,m6in.16xlarge,on_demand,NA,4.97952,USD,AWS Pricing API,2025-11-30T09:05:31.015159 +AWS,eu-west-1,m6in.16xlarge,reserved_1y,all_upfront,2.927968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:00.075045 +AWS,eu-west-1,m6in.16xlarge,reserved_1y,no_upfront,2.927968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:45.213272 +AWS,eu-west-1,m6in.16xlarge,reserved_1y,partial_upfront,2.927968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:24.768311 +AWS,eu-west-1,m6in.16xlarge,reserved_3y,all_upfront,0.975989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:55.709952 +AWS,eu-west-1,m6in.16xlarge,reserved_3y,no_upfront,0.975989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:51.003082 +AWS,eu-west-1,m6in.16xlarge,reserved_3y,partial_upfront,0.975989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:34.696051 +AWS,eu-west-1,m6in.16xlarge,spot,NA,2.547593,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728652 +AWS,eu-west-1,m6in.24xlarge,on_demand,NA,7.46928,USD,AWS Pricing API,2025-11-30T09:06:12.876784 +AWS,eu-west-1,m6in.24xlarge,reserved_1y,all_upfront,5.628995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:41.710393 +AWS,eu-west-1,m6in.24xlarge,reserved_1y,no_upfront,5.628995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:27.063554 +AWS,eu-west-1,m6in.24xlarge,reserved_1y,partial_upfront,5.628995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:06.050622 +AWS,eu-west-1,m6in.24xlarge,reserved_3y,all_upfront,1.876332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:36.322637 +AWS,eu-west-1,m6in.24xlarge,reserved_3y,no_upfront,1.876332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:33.313650 +AWS,eu-west-1,m6in.24xlarge,reserved_3y,partial_upfront,1.876332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:15.928876 +AWS,eu-west-1,m6in.24xlarge,spot,NA,3.673965,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730831 +AWS,eu-west-1,m6in.2xlarge,on_demand,NA,0.62244,USD,AWS Pricing API,2025-11-30T09:05:37.903698 +AWS,eu-west-1,m6in.2xlarge,reserved_1y,all_upfront,0.575173,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:06.987922 +AWS,eu-west-1,m6in.2xlarge,reserved_1y,no_upfront,0.575173,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:52.109613 +AWS,eu-west-1,m6in.2xlarge,reserved_1y,partial_upfront,0.575173,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:31.579720 +AWS,eu-west-1,m6in.2xlarge,reserved_3y,all_upfront,0.287578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:02.368072 +AWS,eu-west-1,m6in.2xlarge,reserved_3y,no_upfront,0.287578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:57.921276 +AWS,eu-west-1,m6in.2xlarge,reserved_3y,partial_upfront,0.287578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:41.530928 +AWS,eu-west-1,m6in.2xlarge,spot,NA,0.31324,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728928 +AWS,eu-west-1,m6in.32xlarge,on_demand,NA,9.95904,USD,AWS Pricing API,2025-11-30T09:05:26.448101 +AWS,eu-west-1,m6in.32xlarge,reserved_1y,all_upfront,6.2742,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:55.593136 +AWS,eu-west-1,m6in.32xlarge,reserved_1y,no_upfront,6.2742,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:40.563404 +AWS,eu-west-1,m6in.32xlarge,reserved_1y,partial_upfront,6.2742,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:20.313824 +AWS,eu-west-1,m6in.32xlarge,reserved_3y,all_upfront,6.2742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:51.326159 +AWS,eu-west-1,m6in.32xlarge,reserved_3y,no_upfront,6.2742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:46.458829 +AWS,eu-west-1,m6in.32xlarge,reserved_3y,partial_upfront,6.2742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:30.288579 +AWS,eu-west-1,m6in.32xlarge,spot,NA,4.592981,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728509 +AWS,eu-west-1,m6in.4xlarge,on_demand,NA,1.24488,USD,AWS Pricing API,2025-11-30T09:05:36.665936 +AWS,eu-west-1,m6in.4xlarge,reserved_1y,all_upfront,0.746976,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:05.752718 +AWS,eu-west-1,m6in.4xlarge,reserved_1y,no_upfront,0.746976,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:50.888041 +AWS,eu-west-1,m6in.4xlarge,reserved_1y,partial_upfront,0.746976,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:30.346258 +AWS,eu-west-1,m6in.4xlarge,reserved_3y,all_upfront,0.497965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:01.148470 +AWS,eu-west-1,m6in.4xlarge,reserved_3y,no_upfront,0.497965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:56.686132 +AWS,eu-west-1,m6in.4xlarge,reserved_3y,partial_upfront,0.497965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:40.230524 +AWS,eu-west-1,m6in.4xlarge,spot,NA,0.635037,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728857 +AWS,eu-west-1,m6in.8xlarge,on_demand,NA,2.48976,USD,AWS Pricing API,2025-11-30T09:05:34.735791 +AWS,eu-west-1,m6in.8xlarge,reserved_1y,all_upfront,1.914616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:03.757446 +AWS,eu-west-1,m6in.8xlarge,reserved_1y,no_upfront,1.914616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:48.963619 +AWS,eu-west-1,m6in.8xlarge,reserved_1y,partial_upfront,1.914616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:28.431305 +AWS,eu-west-1,m6in.8xlarge,reserved_3y,all_upfront,1.276412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:59.301313 +AWS,eu-west-1,m6in.8xlarge,reserved_3y,no_upfront,1.276412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:54.729296 +AWS,eu-west-1,m6in.8xlarge,reserved_3y,partial_upfront,1.276412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:38.337317 +AWS,eu-west-1,m6in.8xlarge,spot,NA,1.256156,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728839 +AWS,eu-west-1,m6in.large,on_demand,NA,0.15561,USD,AWS Pricing API,2025-11-30T09:05:54.542835 +AWS,eu-west-1,m6in.large,reserved_1y,all_upfront,0.143827,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:23.373469 +AWS,eu-west-1,m6in.large,reserved_1y,no_upfront,0.143827,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:08.749208 +AWS,eu-west-1,m6in.large,reserved_1y,partial_upfront,0.143827,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:47.957905 +AWS,eu-west-1,m6in.large,reserved_3y,all_upfront,0.071909,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:18.491138 +AWS,eu-west-1,m6in.large,reserved_3y,no_upfront,0.071909,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:14.767540 +AWS,eu-west-1,m6in.large,reserved_3y,partial_upfront,0.071909,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:57.866180 +AWS,eu-west-1,m6in.large,spot,NA,0.073602,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729577 +AWS,eu-west-1,m6in.xlarge,on_demand,NA,0.31122,USD,AWS Pricing API,2025-11-30T09:06:08.772194 +AWS,eu-west-1,m6in.xlarge,reserved_1y,all_upfront,0.234589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:37.650033 +AWS,eu-west-1,m6in.xlarge,reserved_1y,no_upfront,0.234589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:22.972510 +AWS,eu-west-1,m6in.xlarge,reserved_1y,partial_upfront,0.234589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:01.964736 +AWS,eu-west-1,m6in.xlarge,reserved_3y,all_upfront,0.078196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:32.342140 +AWS,eu-west-1,m6in.xlarge,reserved_3y,no_upfront,0.078196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:29.119697 +AWS,eu-west-1,m6in.xlarge,reserved_3y,partial_upfront,0.078196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:11.876103 +AWS,eu-west-1,m6in.xlarge,spot,NA,0.154153,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730627 +AWS,eu-west-1,m7a.12xlarge,on_demand,NA,3.1008,USD,AWS Pricing API,2025-11-30T09:05:57.271349 +AWS,eu-west-1,m7a.12xlarge,reserved_1y,all_upfront,2.241596,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:26.087582 +AWS,eu-west-1,m7a.12xlarge,reserved_1y,no_upfront,2.241596,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:11.472903 +AWS,eu-west-1,m7a.12xlarge,reserved_1y,partial_upfront,2.241596,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:50.655700 +AWS,eu-west-1,m7a.12xlarge,reserved_3y,all_upfront,1.494412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:21.160887 +AWS,eu-west-1,m7a.12xlarge,reserved_3y,no_upfront,1.494412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:17.535327 +AWS,eu-west-1,m7a.12xlarge,reserved_3y,partial_upfront,1.494412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:00.554763 +AWS,eu-west-1,m7a.12xlarge,spot,NA,1.465253,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729700 +AWS,eu-west-1,m7a.16xlarge,on_demand,NA,4.1344,USD,AWS Pricing API,2025-11-30T09:06:13.426847 +AWS,eu-west-1,m7a.16xlarge,reserved_1y,all_upfront,5.913242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:42.253510 +AWS,eu-west-1,m7a.16xlarge,reserved_1y,no_upfront,5.913242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:27.609929 +AWS,eu-west-1,m7a.16xlarge,reserved_1y,partial_upfront,5.913242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:06.593900 +AWS,eu-west-1,m7a.16xlarge,reserved_3y,all_upfront,1.971081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:36.852330 +AWS,eu-west-1,m7a.16xlarge,reserved_3y,no_upfront,1.971081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:33.860312 +AWS,eu-west-1,m7a.16xlarge,reserved_3y,partial_upfront,1.971081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:16.463954 +AWS,eu-west-1,m7a.16xlarge,spot,NA,1.888834,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730901 +AWS,eu-west-1,m7a.24xlarge,on_demand,NA,6.2016,USD,AWS Pricing API,2025-11-30T09:06:26.365268 +AWS,eu-west-1,m7a.24xlarge,reserved_1y,all_upfront,3.907039,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:54.988370 +AWS,eu-west-1,m7a.24xlarge,reserved_1y,no_upfront,3.907039,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:40.578784 +AWS,eu-west-1,m7a.24xlarge,reserved_1y,partial_upfront,3.907039,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:19.310199 +AWS,eu-west-1,m7a.24xlarge,reserved_3y,all_upfront,2.60468,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:49.319821 +AWS,eu-west-1,m7a.24xlarge,reserved_3y,no_upfront,2.60468,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:46.851552 +AWS,eu-west-1,m7a.24xlarge,reserved_3y,partial_upfront,2.60468,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:29.120507 +AWS,eu-west-1,m7a.24xlarge,spot,NA,2.798701,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731444 +AWS,eu-west-1,m7a.2xlarge,on_demand,NA,0.5168,USD,AWS Pricing API,2025-11-30T09:05:32.656929 +AWS,eu-west-1,m7a.2xlarge,reserved_1y,all_upfront,0.319064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:01.703492 +AWS,eu-west-1,m7a.2xlarge,reserved_1y,no_upfront,0.319064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:46.853773 +AWS,eu-west-1,m7a.2xlarge,reserved_1y,partial_upfront,0.319064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:26.407262 +AWS,eu-west-1,m7a.2xlarge,reserved_3y,all_upfront,0.106355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:57.299919 +AWS,eu-west-1,m7a.2xlarge,reserved_3y,no_upfront,0.106355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:52.663085 +AWS,eu-west-1,m7a.2xlarge,reserved_3y,partial_upfront,0.106355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:36.306956 +AWS,eu-west-1,m7a.2xlarge,spot,NA,0.246069,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728713 +AWS,eu-west-1,m7a.32xlarge,on_demand,NA,8.2688,USD,AWS Pricing API,2025-11-30T09:06:15.751602 +AWS,eu-west-1,m7a.32xlarge,reserved_1y,all_upfront,5.858105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:44.575917 +AWS,eu-west-1,m7a.32xlarge,reserved_1y,no_upfront,5.858105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:29.960323 +AWS,eu-west-1,m7a.32xlarge,reserved_1y,partial_upfront,5.858105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:08.865431 +AWS,eu-west-1,m7a.32xlarge,reserved_3y,all_upfront,1.952702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:39.103601 +AWS,eu-west-1,m7a.32xlarge,reserved_3y,no_upfront,1.952702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:36.217946 +AWS,eu-west-1,m7a.32xlarge,reserved_3y,partial_upfront,1.952702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:18.757708 +AWS,eu-west-1,m7a.32xlarge,spot,NA,3.725565,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731036 +AWS,eu-west-1,m7a.48xlarge,on_demand,NA,12.4032,USD,AWS Pricing API,2025-11-30T09:05:25.635011 +AWS,eu-west-1,m7a.48xlarge,reserved_1y,all_upfront,8.20472,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:54.786090 +AWS,eu-west-1,m7a.48xlarge,reserved_1y,no_upfront,8.20472,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:39.742302 +AWS,eu-west-1,m7a.48xlarge,reserved_1y,partial_upfront,8.20472,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:19.510469 +AWS,eu-west-1,m7a.48xlarge,reserved_3y,all_upfront,8.20472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:50.527578 +AWS,eu-west-1,m7a.48xlarge,reserved_3y,no_upfront,8.20472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:45.626582 +AWS,eu-west-1,m7a.48xlarge,reserved_3y,partial_upfront,8.20472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:29.482248 +AWS,eu-west-1,m7a.48xlarge,spot,NA,5.48224,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728452 +AWS,eu-west-1,m7a.4xlarge,on_demand,NA,1.0336,USD,AWS Pricing API,2025-11-30T09:05:59.170611 +AWS,eu-west-1,m7a.4xlarge,reserved_1y,all_upfront,0.68373,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:28.080164 +AWS,eu-west-1,m7a.4xlarge,reserved_1y,no_upfront,0.68373,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:13.390734 +AWS,eu-west-1,m7a.4xlarge,reserved_1y,partial_upfront,0.68373,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:52.539274 +AWS,eu-west-1,m7a.4xlarge,reserved_3y,all_upfront,0.68373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:23.024714 +AWS,eu-west-1,m7a.4xlarge,reserved_3y,no_upfront,0.68373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:19.459196 +AWS,eu-west-1,m7a.4xlarge,reserved_3y,partial_upfront,0.68373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:02.458270 +AWS,eu-west-1,m7a.4xlarge,spot,NA,0.512418,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729769 +AWS,eu-west-1,m7a.8xlarge,on_demand,NA,2.0672,USD,AWS Pricing API,2025-11-30T09:06:03.448670 +AWS,eu-west-1,m7a.8xlarge,reserved_1y,all_upfront,1.0861,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:32.291642 +AWS,eu-west-1,m7a.8xlarge,reserved_1y,no_upfront,1.0861,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:17.634461 +AWS,eu-west-1,m7a.8xlarge,reserved_1y,partial_upfront,1.0861,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:56.713091 +AWS,eu-west-1,m7a.8xlarge,reserved_3y,all_upfront,1.0861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:27.143144 +AWS,eu-west-1,m7a.8xlarge,reserved_3y,no_upfront,1.0861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:23.729317 +AWS,eu-west-1,m7a.8xlarge,reserved_3y,partial_upfront,1.0861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:06.628613 +AWS,eu-west-1,m7a.8xlarge,spot,NA,0.994924,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729981 +AWS,eu-west-1,m7a.xlarge,on_demand,NA,0.2584,USD,AWS Pricing API,2025-11-30T09:05:25.203534 +AWS,eu-west-1,m7a.xlarge,reserved_1y,all_upfront,0.183105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:54.379283 +AWS,eu-west-1,m7a.xlarge,reserved_1y,no_upfront,0.183105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:39.328804 +AWS,eu-west-1,m7a.xlarge,reserved_1y,partial_upfront,0.183105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:19.105689 +AWS,eu-west-1,m7a.xlarge,reserved_3y,all_upfront,0.061035,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:50.120590 +AWS,eu-west-1,m7a.xlarge,reserved_3y,no_upfront,0.061035,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:45.211426 +AWS,eu-west-1,m7a.xlarge,reserved_3y,partial_upfront,0.061035,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:29.074229 +AWS,eu-west-1,m7a.xlarge,spot,NA,0.123241,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728423 +AWS,eu-west-1,m7g.12xlarge,on_demand,NA,2.1828,USD,AWS Pricing API,2025-11-30T09:05:42.208150 +AWS,eu-west-1,m7g.12xlarge,reserved_1y,all_upfront,1.6568,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:11.179771 +AWS,eu-west-1,m7g.12xlarge,reserved_1y,no_upfront,1.6568,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:56.354664 +AWS,eu-west-1,m7g.12xlarge,reserved_1y,partial_upfront,1.6568,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:35.762166 +AWS,eu-west-1,m7g.12xlarge,reserved_3y,all_upfront,1.6568,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:06.479033 +AWS,eu-west-1,m7g.12xlarge,reserved_3y,no_upfront,1.6568,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:02.286419 +AWS,eu-west-1,m7g.12xlarge,reserved_3y,partial_upfront,1.6568,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:45.728702 +AWS,eu-west-1,m7g.12xlarge,spot,NA,1.003264,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729124 +AWS,eu-west-1,m7g.16xlarge,on_demand,NA,2.9104,USD,AWS Pricing API,2025-11-30T09:06:11.225784 +AWS,eu-west-1,m7g.16xlarge,reserved_1y,all_upfront,2.2091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:40.084700 +AWS,eu-west-1,m7g.16xlarge,reserved_1y,no_upfront,2.2091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:25.429200 +AWS,eu-west-1,m7g.16xlarge,reserved_1y,partial_upfront,2.2091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:04.419901 +AWS,eu-west-1,m7g.16xlarge,reserved_3y,all_upfront,2.2091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:34.731666 +AWS,eu-west-1,m7g.16xlarge,reserved_3y,no_upfront,2.2091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:31.658310 +AWS,eu-west-1,m7g.16xlarge,reserved_3y,partial_upfront,2.2091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:14.300853 +AWS,eu-west-1,m7g.16xlarge,spot,NA,1.293366,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730756 +AWS,eu-west-1,m7g.2xlarge,on_demand,NA,0.3638,USD,AWS Pricing API,2025-11-30T09:05:33.912619 +AWS,eu-west-1,m7g.2xlarge,reserved_1y,all_upfront,0.263007,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:02.932036 +AWS,eu-west-1,m7g.2xlarge,reserved_1y,no_upfront,0.263007,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:48.117221 +AWS,eu-west-1,m7g.2xlarge,reserved_1y,partial_upfront,0.263007,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:27.627256 +AWS,eu-west-1,m7g.2xlarge,reserved_3y,all_upfront,0.175336,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:58.494720 +AWS,eu-west-1,m7g.2xlarge,reserved_3y,no_upfront,0.175336,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:53.899353 +AWS,eu-west-1,m7g.2xlarge,reserved_3y,partial_upfront,0.175336,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:37.514750 +AWS,eu-west-1,m7g.2xlarge,spot,NA,0.170737,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728775 +AWS,eu-west-1,m7g.4xlarge,on_demand,NA,0.7276,USD,AWS Pricing API,2025-11-30T09:06:31.012590 +AWS,eu-west-1,m7g.4xlarge,reserved_1y,all_upfront,0.458424,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:59.609795 +AWS,eu-west-1,m7g.4xlarge,reserved_1y,no_upfront,0.458424,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:45.254899 +AWS,eu-west-1,m7g.4xlarge,reserved_1y,partial_upfront,0.458424,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:23.910539 +AWS,eu-west-1,m7g.4xlarge,reserved_3y,all_upfront,0.305608,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:53.858736 +AWS,eu-west-1,m7g.4xlarge,reserved_3y,no_upfront,0.305608,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:51.577175 +AWS,eu-west-1,m7g.4xlarge,reserved_3y,partial_upfront,0.305608,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:33.682625 +AWS,eu-west-1,m7g.4xlarge,spot,NA,0.345026,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731694 +AWS,eu-west-1,m7g.8xlarge,on_demand,NA,1.4552,USD,AWS Pricing API,2025-11-30T09:05:24.925578 +AWS,eu-west-1,m7g.8xlarge,reserved_1y,all_upfront,1.052027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:54.107012 +AWS,eu-west-1,m7g.8xlarge,reserved_1y,no_upfront,1.052027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:39.056671 +AWS,eu-west-1,m7g.8xlarge,reserved_1y,partial_upfront,1.052027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:18.833939 +AWS,eu-west-1,m7g.8xlarge,reserved_3y,all_upfront,0.701342,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:49.851326 +AWS,eu-west-1,m7g.8xlarge,reserved_3y,no_upfront,0.701342,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:44.935579 +AWS,eu-west-1,m7g.8xlarge,reserved_3y,partial_upfront,0.701342,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:28.806652 +AWS,eu-west-1,m7g.8xlarge,spot,NA,0.672457,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728442 +AWS,eu-west-1,m7g.large,on_demand,NA,0.091,USD,AWS Pricing API,2025-11-30T09:05:52.887005 +AWS,eu-west-1,m7g.large,reserved_1y,all_upfront,0.064384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:21.753116 +AWS,eu-west-1,m7g.large,reserved_1y,no_upfront,0.064384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:07.094209 +AWS,eu-west-1,m7g.large,reserved_1y,partial_upfront,0.064384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:46.329433 +AWS,eu-west-1,m7g.large,reserved_3y,all_upfront,0.021461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:16.911024 +AWS,eu-west-1,m7g.large,reserved_3y,no_upfront,0.021461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:13.126043 +AWS,eu-west-1,m7g.large,reserved_3y,partial_upfront,0.021461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:56.248426 +AWS,eu-west-1,m7g.large,spot,NA,0.043841,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729549 +AWS,eu-west-1,m7g.xlarge,on_demand,NA,0.1819,USD,AWS Pricing API,2025-11-30T09:05:59.727405 +AWS,eu-west-1,m7g.xlarge,reserved_1y,all_upfront,0.26016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:28.624503 +AWS,eu-west-1,m7g.xlarge,reserved_1y,no_upfront,0.26016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:13.936609 +AWS,eu-west-1,m7g.xlarge,reserved_1y,partial_upfront,0.26016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:53.078014 +AWS,eu-west-1,m7g.xlarge,reserved_3y,all_upfront,0.08672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:23.560206 +AWS,eu-west-1,m7g.xlarge,reserved_3y,no_upfront,0.08672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:20.005940 +AWS,eu-west-1,m7g.xlarge,reserved_3y,partial_upfront,0.08672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:02.997668 +AWS,eu-west-1,m7g.xlarge,spot,NA,0.088527,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729804 +AWS,eu-west-1,m7gd.12xlarge,on_demand,NA,2.8577,USD,AWS Pricing API,2025-11-30T09:05:33.223736 +AWS,eu-west-1,m7gd.12xlarge,reserved_1y,all_upfront,4.427511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:02.251414 +AWS,eu-west-1,m7gd.12xlarge,reserved_1y,no_upfront,4.427511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:47.414475 +AWS,eu-west-1,m7gd.12xlarge,reserved_1y,partial_upfront,4.427511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:26.944352 +AWS,eu-west-1,m7gd.12xlarge,reserved_3y,all_upfront,1.475837,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:57.821079 +AWS,eu-west-1,m7gd.12xlarge,reserved_3y,no_upfront,1.475837,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:53.217192 +AWS,eu-west-1,m7gd.12xlarge,reserved_3y,partial_upfront,1.475837,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:36.840300 +AWS,eu-west-1,m7gd.12xlarge,spot,NA,1.242808,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728756 +AWS,eu-west-1,m7gd.16xlarge,on_demand,NA,3.8102,USD,AWS Pricing API,2025-11-30T09:05:50.571255 +AWS,eu-west-1,m7gd.16xlarge,reserved_1y,all_upfront,2.240411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:19.458783 +AWS,eu-west-1,m7gd.16xlarge,reserved_1y,no_upfront,2.240411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:04.766935 +AWS,eu-west-1,m7gd.16xlarge,reserved_1y,partial_upfront,2.240411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:44.025283 +AWS,eu-west-1,m7gd.16xlarge,reserved_3y,all_upfront,0.746804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:14.641247 +AWS,eu-west-1,m7gd.16xlarge,reserved_3y,no_upfront,0.746804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:10.771312 +AWS,eu-west-1,m7gd.16xlarge,reserved_3y,partial_upfront,0.746804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:53.957008 +AWS,eu-west-1,m7gd.16xlarge,spot,NA,1.669377,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729446 +AWS,eu-west-1,m7gd.2xlarge,on_demand,NA,0.4763,USD,AWS Pricing API,2025-11-30T09:06:06.314312 +AWS,eu-west-1,m7gd.2xlarge,reserved_1y,all_upfront,0.3851,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:35.198393 +AWS,eu-west-1,m7gd.2xlarge,reserved_1y,no_upfront,0.3851,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:20.499652 +AWS,eu-west-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.3851,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:59.534485 +AWS,eu-west-1,m7gd.2xlarge,reserved_3y,all_upfront,0.3851,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:29.925680 +AWS,eu-west-1,m7gd.2xlarge,reserved_3y,no_upfront,0.3851,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:26.621967 +AWS,eu-west-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.3851,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:09.455705 +AWS,eu-west-1,m7gd.2xlarge,spot,NA,0.222431,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730603 +AWS,eu-west-1,m7gd.4xlarge,on_demand,NA,0.9526,USD,AWS Pricing API,2025-11-30T09:06:24.000134 +AWS,eu-west-1,m7gd.4xlarge,reserved_1y,all_upfront,0.6001,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:52.700042 +AWS,eu-west-1,m7gd.4xlarge,reserved_1y,no_upfront,0.6001,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:38.227560 +AWS,eu-west-1,m7gd.4xlarge,reserved_1y,partial_upfront,0.6001,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:16.927923 +AWS,eu-west-1,m7gd.4xlarge,reserved_3y,all_upfront,0.6001,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:47.069328 +AWS,eu-west-1,m7gd.4xlarge,reserved_3y,no_upfront,0.6001,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:44.505302 +AWS,eu-west-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.6001,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:26.826482 +AWS,eu-west-1,m7gd.4xlarge,spot,NA,0.437283,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731388 +AWS,eu-west-1,m7gd.8xlarge,on_demand,NA,1.9051,USD,AWS Pricing API,2025-11-30T09:06:03.990154 +AWS,eu-west-1,m7gd.8xlarge,reserved_1y,all_upfront,2.148973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:32.831173 +AWS,eu-west-1,m7gd.8xlarge,reserved_1y,no_upfront,2.148973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:18.180705 +AWS,eu-west-1,m7gd.8xlarge,reserved_1y,partial_upfront,2.148973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:57.246897 +AWS,eu-west-1,m7gd.8xlarge,reserved_3y,all_upfront,0.716324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:27.680115 +AWS,eu-west-1,m7gd.8xlarge,reserved_3y,no_upfront,0.716324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:24.276035 +AWS,eu-west-1,m7gd.8xlarge,reserved_3y,partial_upfront,0.716324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:07.165597 +AWS,eu-west-1,m7gd.8xlarge,spot,NA,0.866999,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729975 +AWS,eu-west-1,m7gd.large,on_demand,NA,0.1191,USD,AWS Pricing API,2025-11-30T09:06:01.778189 +AWS,eu-west-1,m7gd.large,reserved_1y,all_upfront,0.0514,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:30.665771 +AWS,eu-west-1,m7gd.large,reserved_1y,no_upfront,0.0514,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:15.985924 +AWS,eu-west-1,m7gd.large,reserved_1y,partial_upfront,0.0514,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:55.095619 +AWS,eu-west-1,m7gd.large,reserved_3y,all_upfront,0.0514,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:25.543780 +AWS,eu-west-1,m7gd.large,reserved_3y,no_upfront,0.0514,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:22.071055 +AWS,eu-west-1,m7gd.large,reserved_3y,partial_upfront,0.0514,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:05.014818 +AWS,eu-west-1,m7gd.large,spot,NA,0.053824,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729879 +AWS,eu-west-1,m7gd.xlarge,on_demand,NA,0.2381,USD,AWS Pricing API,2025-11-30T09:06:07.950476 +AWS,eu-west-1,m7gd.xlarge,reserved_1y,all_upfront,0.183367,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:36.843045 +AWS,eu-west-1,m7gd.xlarge,reserved_1y,no_upfront,0.183367,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:22.153248 +AWS,eu-west-1,m7gd.xlarge,reserved_1y,partial_upfront,0.183367,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:01.146587 +AWS,eu-west-1,m7gd.xlarge,reserved_3y,all_upfront,0.122256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:31.537791 +AWS,eu-west-1,m7gd.xlarge,reserved_3y,no_upfront,0.122256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:28.288989 +AWS,eu-west-1,m7gd.xlarge,reserved_3y,partial_upfront,0.122256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:11.072699 +AWS,eu-west-1,m7gd.xlarge,spot,NA,0.111306,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730676 +AWS,eu-west-1,m7i.12xlarge,on_demand,NA,2.6964,USD,AWS Pricing API,2025-11-30T09:05:39.434418 +AWS,eu-west-1,m7i.12xlarge,reserved_1y,all_upfront,1.910274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:08.474597 +AWS,eu-west-1,m7i.12xlarge,reserved_1y,no_upfront,1.910274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:53.620339 +AWS,eu-west-1,m7i.12xlarge,reserved_1y,partial_upfront,1.910274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:33.058911 +AWS,eu-west-1,m7i.12xlarge,reserved_3y,all_upfront,0.636758,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:03.830807 +AWS,eu-west-1,m7i.12xlarge,reserved_3y,no_upfront,0.636758,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:59.461252 +AWS,eu-west-1,m7i.12xlarge,reserved_3y,partial_upfront,0.636758,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:43.021886 +AWS,eu-west-1,m7i.12xlarge,spot,NA,1.241256,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728970 +AWS,eu-west-1,m7i.16xlarge,on_demand,NA,3.5952,USD,AWS Pricing API,2025-11-30T09:06:16.723078 +AWS,eu-west-1,m7i.16xlarge,reserved_1y,all_upfront,3.019944,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:45.516905 +AWS,eu-west-1,m7i.16xlarge,reserved_1y,no_upfront,3.019944,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:30.913765 +AWS,eu-west-1,m7i.16xlarge,reserved_1y,partial_upfront,3.019944,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:09.798464 +AWS,eu-west-1,m7i.16xlarge,reserved_3y,all_upfront,1.509975,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:40.027439 +AWS,eu-west-1,m7i.16xlarge,reserved_3y,no_upfront,1.509975,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:37.187742 +AWS,eu-west-1,m7i.16xlarge,reserved_3y,partial_upfront,1.509975,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:19.714002 +AWS,eu-west-1,m7i.16xlarge,spot,NA,1.713439,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731030 +AWS,eu-west-1,m7i.24xlarge,on_demand,NA,5.3928,USD,AWS Pricing API,2025-11-30T09:06:22.910622 +AWS,eu-west-1,m7i.24xlarge,reserved_1y,all_upfront,4.09349,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:51.613625 +AWS,eu-west-1,m7i.24xlarge,reserved_1y,no_upfront,4.09349,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:37.131875 +AWS,eu-west-1,m7i.24xlarge,reserved_1y,partial_upfront,4.09349,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:15.853788 +AWS,eu-west-1,m7i.24xlarge,reserved_3y,all_upfront,4.09349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:45.991190 +AWS,eu-west-1,m7i.24xlarge,reserved_3y,no_upfront,4.09349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:43.400479 +AWS,eu-west-1,m7i.24xlarge,reserved_3y,partial_upfront,4.09349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:25.748839 +AWS,eu-west-1,m7i.24xlarge,spot,NA,2.507263,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731351 +AWS,eu-west-1,m7i.2xlarge,on_demand,NA,0.4494,USD,AWS Pricing API,2025-11-30T09:05:57.946216 +AWS,eu-west-1,m7i.2xlarge,reserved_1y,all_upfront,0.324883,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:26.861966 +AWS,eu-west-1,m7i.2xlarge,reserved_1y,no_upfront,0.324883,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:12.156080 +AWS,eu-west-1,m7i.2xlarge,reserved_1y,partial_upfront,0.324883,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:51.331529 +AWS,eu-west-1,m7i.2xlarge,reserved_3y,all_upfront,0.216588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:21.819829 +AWS,eu-west-1,m7i.2xlarge,reserved_3y,no_upfront,0.216588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:18.230677 +AWS,eu-west-1,m7i.2xlarge,reserved_3y,partial_upfront,0.216588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:01.230124 +AWS,eu-west-1,m7i.2xlarge,spot,NA,0.229338,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729776 +AWS,eu-west-1,m7i.48xlarge,on_demand,NA,10.7856,USD,AWS Pricing API,2025-11-30T09:05:20.541322 +AWS,eu-west-1,m7i.48xlarge,reserved_1y,all_upfront,7.797076,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:49.759162 +AWS,eu-west-1,m7i.48xlarge,reserved_1y,no_upfront,7.797076,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:34.664340 +AWS,eu-west-1,m7i.48xlarge,reserved_1y,partial_upfront,7.797076,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:14.556077 +AWS,eu-west-1,m7i.48xlarge,reserved_3y,all_upfront,5.198065,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:45.599533 +AWS,eu-west-1,m7i.48xlarge,reserved_3y,no_upfront,5.198065,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:40.505437 +AWS,eu-west-1,m7i.48xlarge,reserved_3y,partial_upfront,5.198065,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:24.501109 +AWS,eu-west-1,m7i.48xlarge,spot,NA,4.775336,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728249 +AWS,eu-west-1,m7i.4xlarge,on_demand,NA,0.8988,USD,AWS Pricing API,2025-11-30T09:05:34.597781 +AWS,eu-west-1,m7i.4xlarge,reserved_1y,all_upfront,0.566225,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:03.621034 +AWS,eu-west-1,m7i.4xlarge,reserved_1y,no_upfront,0.566225,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:48.826470 +AWS,eu-west-1,m7i.4xlarge,reserved_1y,partial_upfront,0.566225,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:28.298703 +AWS,eu-west-1,m7i.4xlarge,reserved_3y,all_upfront,0.377488,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:59.167181 +AWS,eu-west-1,m7i.4xlarge,reserved_3y,no_upfront,0.377488,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:54.591599 +AWS,eu-west-1,m7i.4xlarge,reserved_3y,partial_upfront,0.377488,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:38.203062 +AWS,eu-west-1,m7i.4xlarge,spot,NA,0.466028,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728811 +AWS,eu-west-1,m7i.8xlarge,on_demand,NA,1.7976,USD,AWS Pricing API,2025-11-30T09:06:12.455088 +AWS,eu-west-1,m7i.8xlarge,reserved_1y,all_upfront,1.3645,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:41.300607 +AWS,eu-west-1,m7i.8xlarge,reserved_1y,no_upfront,1.3645,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:26.656694 +AWS,eu-west-1,m7i.8xlarge,reserved_1y,partial_upfront,1.3645,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:05.646645 +AWS,eu-west-1,m7i.8xlarge,reserved_3y,all_upfront,1.3645,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:35.928209 +AWS,eu-west-1,m7i.8xlarge,reserved_3y,no_upfront,1.3645,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:32.898393 +AWS,eu-west-1,m7i.8xlarge,reserved_3y,partial_upfront,1.3645,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:15.502282 +AWS,eu-west-1,m7i.8xlarge,spot,NA,0.89335,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730819 +AWS,eu-west-1,m7i.large,on_demand,NA,0.11235,USD,AWS Pricing API,2025-11-30T09:05:37.619095 +AWS,eu-west-1,m7i.large,reserved_1y,all_upfront,0.08528,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:06.712443 +AWS,eu-west-1,m7i.large,reserved_1y,no_upfront,0.08528,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:51.837672 +AWS,eu-west-1,m7i.large,reserved_1y,partial_upfront,0.08528,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:31.301808 +AWS,eu-west-1,m7i.large,reserved_3y,all_upfront,0.08528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:02.096346 +AWS,eu-west-1,m7i.large,reserved_3y,no_upfront,0.08528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:57.648121 +AWS,eu-west-1,m7i.large,reserved_3y,partial_upfront,0.08528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:41.260686 +AWS,eu-west-1,m7i.large,spot,NA,0.057564,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728922 +AWS,eu-west-1,m7i.metal-24xl,on_demand,NA,5.3928,USD,AWS Pricing API,2025-11-30T09:05:20.676533 +AWS,eu-west-1,m7i.metal-24xl,reserved_1y,all_upfront,4.529979,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:49.894000 +AWS,eu-west-1,m7i.metal-24xl,reserved_1y,no_upfront,4.529979,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:34.799759 +AWS,eu-west-1,m7i.metal-24xl,reserved_1y,partial_upfront,4.529979,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:14.688094 +AWS,eu-west-1,m7i.metal-24xl,reserved_3y,all_upfront,2.264986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:45.729357 +AWS,eu-west-1,m7i.metal-24xl,reserved_3y,no_upfront,2.264986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:40.642503 +AWS,eu-west-1,m7i.metal-24xl,reserved_3y,partial_upfront,2.264986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:24.642653 +AWS,eu-west-1,m7i.metal-24xl,spot,NA,2.366396,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728243 +AWS,eu-west-1,m7i.metal-48xl,on_demand,NA,10.7856,USD,AWS Pricing API,2025-11-30T09:06:02.189386 +AWS,eu-west-1,m7i.metal-48xl,reserved_1y,all_upfront,7.13467,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:31.075322 +AWS,eu-west-1,m7i.metal-48xl,reserved_1y,no_upfront,7.13467,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:16.398404 +AWS,eu-west-1,m7i.metal-48xl,reserved_1y,partial_upfront,7.13467,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:55.494496 +AWS,eu-west-1,m7i.metal-48xl,reserved_3y,all_upfront,7.13467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:25.940878 +AWS,eu-west-1,m7i.metal-48xl,reserved_3y,no_upfront,7.13467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:22.485660 +AWS,eu-west-1,m7i.metal-48xl,reserved_3y,partial_upfront,7.13467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:05.417749 +AWS,eu-west-1,m7i.metal-48xl,spot,NA,4.843188,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729931 +AWS,eu-west-1,m7i.xlarge,on_demand,NA,0.2247,USD,AWS Pricing API,2025-11-30T09:06:24.420425 +AWS,eu-west-1,m7i.xlarge,reserved_1y,all_upfront,0.321347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:53.104990 +AWS,eu-west-1,m7i.xlarge,reserved_1y,no_upfront,0.321347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:38.638328 +AWS,eu-west-1,m7i.xlarge,reserved_1y,partial_upfront,0.321347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:17.328562 +AWS,eu-west-1,m7i.xlarge,reserved_3y,all_upfront,0.107116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:47.468035 +AWS,eu-west-1,m7i.xlarge,reserved_3y,no_upfront,0.107116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:44.920349 +AWS,eu-west-1,m7i.xlarge,reserved_3y,partial_upfront,0.107116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:27.227796 +AWS,eu-west-1,m7i.xlarge,spot,NA,0.113534,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731413 +AWS,eu-west-1,m8g.12xlarge,on_demand,NA,2.40096,USD,AWS Pricing API,2025-11-30T09:06:08.364316 +AWS,eu-west-1,m8g.12xlarge,reserved_1y,all_upfront,2.016757,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:37.246517 +AWS,eu-west-1,m8g.12xlarge,reserved_1y,no_upfront,2.016757,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:22.559670 +AWS,eu-west-1,m8g.12xlarge,reserved_1y,partial_upfront,2.016757,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:01.555258 +AWS,eu-west-1,m8g.12xlarge,reserved_3y,all_upfront,1.008386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:31.943756 +AWS,eu-west-1,m8g.12xlarge,reserved_3y,no_upfront,1.008386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:28.698817 +AWS,eu-west-1,m8g.12xlarge,reserved_3y,partial_upfront,1.008386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:11.473757 +AWS,eu-west-1,m8g.12xlarge,spot,NA,1.161555,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730657 +AWS,eu-west-1,m8g.16xlarge,on_demand,NA,3.20128,USD,AWS Pricing API,2025-11-30T09:05:21.087033 +AWS,eu-west-1,m8g.16xlarge,reserved_1y,all_upfront,2.689051,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:50.302293 +AWS,eu-west-1,m8g.16xlarge,reserved_1y,no_upfront,2.689051,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:35.216976 +AWS,eu-west-1,m8g.16xlarge,reserved_1y,partial_upfront,2.689051,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:15.088705 +AWS,eu-west-1,m8g.16xlarge,reserved_3y,all_upfront,1.34453,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:46.124952 +AWS,eu-west-1,m8g.16xlarge,reserved_3y,no_upfront,1.34453,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:41.058216 +AWS,eu-west-1,m8g.16xlarge,reserved_3y,partial_upfront,1.34453,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:25.046476 +AWS,eu-west-1,m8g.16xlarge,spot,NA,1.518721,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728299 +AWS,eu-west-1,m8g.24xlarge,on_demand,NA,4.80192,USD,AWS Pricing API,2025-11-30T09:06:29.769594 +AWS,eu-west-1,m8g.24xlarge,reserved_1y,all_upfront,4.033628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:58.360984 +AWS,eu-west-1,m8g.24xlarge,reserved_1y,no_upfront,4.033628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:44.024106 +AWS,eu-west-1,m8g.24xlarge,reserved_1y,partial_upfront,4.033628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:22.702037 +AWS,eu-west-1,m8g.24xlarge,reserved_3y,all_upfront,2.016809,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:52.661178 +AWS,eu-west-1,m8g.24xlarge,reserved_3y,no_upfront,2.016809,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:50.326475 +AWS,eu-west-1,m8g.24xlarge,reserved_3y,partial_upfront,2.016809,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:32.480594 +AWS,eu-west-1,m8g.24xlarge,spot,NA,2.301239,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731625 +AWS,eu-west-1,m8g.2xlarge,on_demand,NA,0.40016,USD,AWS Pricing API,2025-11-30T09:06:21.220182 +AWS,eu-west-1,m8g.2xlarge,reserved_1y,all_upfront,0.473973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:49.988905 +AWS,eu-west-1,m8g.2xlarge,reserved_1y,no_upfront,0.473973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:35.484714 +AWS,eu-west-1,m8g.2xlarge,reserved_1y,partial_upfront,0.473973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:14.234752 +AWS,eu-west-1,m8g.2xlarge,reserved_3y,all_upfront,0.157991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:44.402097 +AWS,eu-west-1,m8g.2xlarge,reserved_3y,no_upfront,0.157991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:41.756849 +AWS,eu-west-1,m8g.2xlarge,reserved_3y,partial_upfront,0.157991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:24.140515 +AWS,eu-west-1,m8g.2xlarge,spot,NA,0.195709,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731268 +AWS,eu-west-1,m8g.48xlarge,on_demand,NA,9.60384,USD,AWS Pricing API,2025-11-30T09:05:54.128985 +AWS,eu-west-1,m8g.48xlarge,reserved_1y,all_upfront,13.735046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:22.968694 +AWS,eu-west-1,m8g.48xlarge,reserved_1y,no_upfront,13.735046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:08.340017 +AWS,eu-west-1,m8g.48xlarge,reserved_1y,partial_upfront,13.735046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:47.554790 +AWS,eu-west-1,m8g.48xlarge,reserved_3y,all_upfront,4.578349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:18.097741 +AWS,eu-west-1,m8g.48xlarge,reserved_3y,no_upfront,4.578349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:14.358204 +AWS,eu-west-1,m8g.48xlarge,reserved_3y,partial_upfront,4.578349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:57.467413 +AWS,eu-west-1,m8g.48xlarge,spot,NA,4.311446,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729583 +AWS,eu-west-1,m8g.4xlarge,on_demand,NA,0.80032,USD,AWS Pricing API,2025-11-30T09:06:11.089114 +AWS,eu-west-1,m8g.4xlarge,reserved_1y,all_upfront,0.567009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:39.950736 +AWS,eu-west-1,m8g.4xlarge,reserved_1y,no_upfront,0.567009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:25.293675 +AWS,eu-west-1,m8g.4xlarge,reserved_1y,partial_upfront,0.567009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:04.284850 +AWS,eu-west-1,m8g.4xlarge,reserved_3y,all_upfront,0.189003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:34.598489 +AWS,eu-west-1,m8g.4xlarge,reserved_3y,no_upfront,0.189003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:31.522855 +AWS,eu-west-1,m8g.4xlarge,reserved_3y,partial_upfront,0.189003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:14.167765 +AWS,eu-west-1,m8g.4xlarge,spot,NA,0.385141,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730781 +AWS,eu-west-1,m8g.8xlarge,on_demand,NA,1.60064,USD,AWS Pricing API,2025-11-30T09:05:42.478845 +AWS,eu-west-1,m8g.8xlarge,reserved_1y,all_upfront,2.289155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:11.454202 +AWS,eu-west-1,m8g.8xlarge,reserved_1y,no_upfront,2.289155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:56.627919 +AWS,eu-west-1,m8g.8xlarge,reserved_1y,partial_upfront,2.289155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:36.030647 +AWS,eu-west-1,m8g.8xlarge,reserved_3y,all_upfront,0.763052,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:06.739854 +AWS,eu-west-1,m8g.8xlarge,reserved_3y,no_upfront,0.763052,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:02.566389 +AWS,eu-west-1,m8g.8xlarge,reserved_3y,partial_upfront,0.763052,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:45.997710 +AWS,eu-west-1,m8g.8xlarge,spot,NA,0.903964,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729073 +AWS,eu-west-1,m8g.large,on_demand,NA,0.10004,USD,AWS Pricing API,2025-11-30T09:06:31.828682 +AWS,eu-west-1,m8g.large,reserved_1y,all_upfront,0.07089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:00.428034 +AWS,eu-west-1,m8g.large,reserved_1y,no_upfront,0.07089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:46.095796 +AWS,eu-west-1,m8g.large,reserved_1y,partial_upfront,0.07089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:24.728854 +AWS,eu-west-1,m8g.large,reserved_3y,all_upfront,0.02363,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:54.643188 +AWS,eu-west-1,m8g.large,reserved_3y,no_upfront,0.02363,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:52.417403 +AWS,eu-west-1,m8g.large,reserved_3y,partial_upfront,0.02363,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:34.483335 +AWS,eu-west-1,m8g.large,spot,NA,0.045968,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731687 +AWS,eu-west-1,m8g.medium,on_demand,NA,0.05002,USD,AWS Pricing API,2025-11-30T09:06:33.729057 +AWS,eu-west-1,m8g.medium,reserved_1y,all_upfront,0.042007,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:02.341165 +AWS,eu-west-1,m8g.medium,reserved_1y,no_upfront,0.042007,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:48.016449 +AWS,eu-west-1,m8g.medium,reserved_1y,partial_upfront,0.042007,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:26.611906 +AWS,eu-west-1,m8g.medium,reserved_3y,all_upfront,0.021002,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:56.511833 +AWS,eu-west-1,m8g.medium,reserved_3y,no_upfront,0.021002,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:54.344523 +AWS,eu-west-1,m8g.medium,reserved_3y,partial_upfront,0.021002,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:36.381950 +AWS,eu-west-1,m8g.medium,spot,NA,0.023182,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731757 +AWS,eu-west-1,m8g.xlarge,on_demand,NA,0.20008,USD,AWS Pricing API,2025-11-30T09:05:51.794904 +AWS,eu-west-1,m8g.xlarge,reserved_1y,all_upfront,0.126044,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:20.674479 +AWS,eu-west-1,m8g.xlarge,reserved_1y,no_upfront,0.126044,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:05.992167 +AWS,eu-west-1,m8g.xlarge,reserved_1y,partial_upfront,0.126044,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:45.238216 +AWS,eu-west-1,m8g.xlarge,reserved_3y,all_upfront,0.084035,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:15.853627 +AWS,eu-west-1,m8g.xlarge,reserved_3y,no_upfront,0.084035,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:12.021316 +AWS,eu-west-1,m8g.xlarge,reserved_3y,partial_upfront,0.084035,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:55.158493 +AWS,eu-west-1,m8g.xlarge,spot,NA,0.096819,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729497 +AWS,eu-west-1,p2.16xlarge,on_demand,NA,15.552,USD,AWS Pricing API,2025-11-30T09:05:27.805223 +AWS,eu-west-1,p2.8xlarge,on_demand,NA,7.776,USD,AWS Pricing API,2025-11-30T09:06:27.311099 +AWS,eu-west-1,p2.xlarge,on_demand,NA,0.972,USD,AWS Pricing API,2025-11-30T09:05:31.422556 +AWS,eu-west-1,p3.16xlarge,on_demand,NA,26.44,USD,AWS Pricing API,2025-11-30T09:05:46.879028 +AWS,eu-west-1,p3.16xlarge,spot,NA,12.111608,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729287 +AWS,eu-west-1,p3.2xlarge,on_demand,NA,3.305,USD,AWS Pricing API,2025-11-30T09:06:17.805670 +AWS,eu-west-1,p3.2xlarge,spot,NA,1.42686,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731102 +AWS,eu-west-1,p3.8xlarge,on_demand,NA,13.22,USD,AWS Pricing API,2025-11-30T09:05:27.395600 +AWS,eu-west-1,p3.8xlarge,spot,NA,5.854592,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728470 +AWS,eu-west-1,p3dn.24xlarge,on_demand,NA,33.711,USD,AWS Pricing API,2025-11-30T09:06:18.479875 +AWS,eu-west-1,p3dn.24xlarge,reserved_1y,all_upfront,23.939,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:47.267136 +AWS,eu-west-1,p3dn.24xlarge,reserved_1y,no_upfront,23.939,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:32.722401 +AWS,eu-west-1,p3dn.24xlarge,reserved_1y,partial_upfront,23.939,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:11.545536 +AWS,eu-west-1,p3dn.24xlarge,reserved_3y,all_upfront,23.939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:41.736881 +AWS,eu-west-1,p3dn.24xlarge,reserved_3y,no_upfront,23.939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:38.982284 +AWS,eu-west-1,p3dn.24xlarge,reserved_3y,partial_upfront,23.939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:21.457044 +AWS,eu-west-1,p3dn.24xlarge,spot,NA,19.67614,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731140 +AWS,eu-west-1,p4d.24xlarge,on_demand,NA,23.71569,USD,AWS Pricing API,2025-11-30T09:05:27.533501 +AWS,eu-west-1,p4d.24xlarge,reserved_1y,all_upfront,15.08188,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:56.683726 +AWS,eu-west-1,p4d.24xlarge,reserved_1y,no_upfront,15.08188,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:41.770593 +AWS,eu-west-1,p4d.24xlarge,reserved_1y,partial_upfront,15.08188,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:21.396594 +AWS,eu-west-1,p4d.24xlarge,reserved_3y,all_upfront,15.08188,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:52.376802 +AWS,eu-west-1,p4d.24xlarge,reserved_3y,no_upfront,15.08188,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:47.564336 +AWS,eu-west-1,p4d.24xlarge,reserved_3y,partial_upfront,15.08188,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:31.352359 +AWS,eu-west-1,p4d.24xlarge,spot,NA,10.766828,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728481 +AWS,eu-west-1,r4.16xlarge,on_demand,NA,4.7424,USD,AWS Pricing API,2025-11-30T09:06:20.247306 +AWS,eu-west-1,r4.16xlarge,reserved_1y,all_upfront,3.439,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:49.027788 +AWS,eu-west-1,r4.16xlarge,reserved_1y,no_upfront,3.439,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:34.528058 +AWS,eu-west-1,r4.16xlarge,reserved_1y,partial_upfront,3.439,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:13.283111 +AWS,eu-west-1,r4.16xlarge,reserved_3y,all_upfront,3.439,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:43.462009 +AWS,eu-west-1,r4.16xlarge,reserved_3y,no_upfront,3.439,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:40.775548 +AWS,eu-west-1,r4.16xlarge,reserved_3y,partial_upfront,3.439,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:23.199356 +AWS,eu-west-1,r4.16xlarge,spot,NA,2.260412,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731198 +AWS,eu-west-1,r5.12xlarge,on_demand,NA,3.384,USD,AWS Pricing API,2025-11-30T09:05:20.814552 +AWS,eu-west-1,r5.12xlarge,reserved_1y,all_upfront,2.334466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:50.029799 +AWS,eu-west-1,r5.12xlarge,reserved_1y,no_upfront,2.334466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:34.938561 +AWS,eu-west-1,r5.12xlarge,reserved_1y,partial_upfront,2.334466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:14.821249 +AWS,eu-west-1,r5.12xlarge,reserved_3y,all_upfront,1.556155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:45.861088 +AWS,eu-west-1,r5.12xlarge,reserved_3y,no_upfront,1.556155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:40.781021 +AWS,eu-west-1,r5.12xlarge,reserved_3y,partial_upfront,1.556155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:24.778345 +AWS,eu-west-1,r5.12xlarge,spot,NA,1.639047,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728288 +AWS,eu-west-1,r5.16xlarge,on_demand,NA,4.512,USD,AWS Pricing API,2025-11-30T09:05:54.265201 +AWS,eu-west-1,r5.16xlarge,reserved_1y,all_upfront,3.051027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:23.106360 +AWS,eu-west-1,r5.16xlarge,reserved_1y,no_upfront,3.051027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:08.476495 +AWS,eu-west-1,r5.16xlarge,reserved_1y,partial_upfront,3.051027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:47.687926 +AWS,eu-west-1,r5.16xlarge,reserved_3y,all_upfront,1.017009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:18.226736 +AWS,eu-west-1,r5.16xlarge,reserved_3y,no_upfront,1.017009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:14.495310 +AWS,eu-west-1,r5.16xlarge,reserved_3y,partial_upfront,1.017009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:57.599363 +AWS,eu-west-1,r5.16xlarge,spot,NA,2.054696,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729602 +AWS,eu-west-1,r5.24xlarge,on_demand,NA,6.768,USD,AWS Pricing API,2025-11-30T09:05:36.384115 +AWS,eu-west-1,r5.24xlarge,reserved_1y,all_upfront,9.610731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:05.417584 +AWS,eu-west-1,r5.24xlarge,reserved_1y,no_upfront,9.610731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:50.620039 +AWS,eu-west-1,r5.24xlarge,reserved_1y,partial_upfront,9.610731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:30.078071 +AWS,eu-west-1,r5.24xlarge,reserved_3y,all_upfront,3.203577,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:00.886568 +AWS,eu-west-1,r5.24xlarge,reserved_3y,no_upfront,3.203577,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:56.413272 +AWS,eu-west-1,r5.24xlarge,reserved_3y,partial_upfront,3.203577,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:39.966321 +AWS,eu-west-1,r5.24xlarge,spot,NA,3.098939,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728891 +AWS,eu-west-1,r5.2xlarge,on_demand,NA,0.564,USD,AWS Pricing API,2025-11-30T12:52:29.477835 +AWS,eu-west-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.478022 +AWS,eu-west-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.409,USD,AWS Pricing API,2025-11-30T12:52:29.477954 +AWS,eu-west-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.169,USD,AWS Pricing API,2025-11-30T12:52:29.478010 +AWS,eu-west-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.477966 +AWS,eu-west-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.244,USD,AWS Pricing API,2025-11-30T12:52:29.477996 +AWS,eu-west-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.136,USD,AWS Pricing API,2025-11-30T12:52:29.477897 +AWS,eu-west-1,r5.2xlarge,spot,NA,0.25548,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:33.353049 +AWS,eu-west-1,r5.4xlarge,on_demand,NA,1.128,USD,AWS Pricing API,2025-11-30T09:06:29.492896 +AWS,eu-west-1,r5.4xlarge,reserved_1y,all_upfront,0.711,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:58.094408 +AWS,eu-west-1,r5.4xlarge,reserved_1y,no_upfront,0.711,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:43.741728 +AWS,eu-west-1,r5.4xlarge,reserved_1y,partial_upfront,0.711,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:22.422989 +AWS,eu-west-1,r5.4xlarge,reserved_3y,all_upfront,0.711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:52.394108 +AWS,eu-west-1,r5.4xlarge,reserved_3y,no_upfront,0.711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:50.053716 +AWS,eu-west-1,r5.4xlarge,reserved_3y,partial_upfront,0.711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:32.215535 +AWS,eu-west-1,r5.4xlarge,spot,NA,0.51626,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731619 +AWS,eu-west-1,r5.8xlarge,on_demand,NA,2.256,USD,AWS Pricing API,2025-11-30T09:06:12.184276 +AWS,eu-west-1,r5.8xlarge,reserved_1y,all_upfront,1.421,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:41.034383 +AWS,eu-west-1,r5.8xlarge,reserved_1y,no_upfront,1.421,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:26.383996 +AWS,eu-west-1,r5.8xlarge,reserved_1y,partial_upfront,1.421,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:05.374641 +AWS,eu-west-1,r5.8xlarge,reserved_3y,all_upfront,1.421,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:35.661999 +AWS,eu-west-1,r5.8xlarge,reserved_3y,no_upfront,1.421,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:32.624350 +AWS,eu-west-1,r5.8xlarge,reserved_3y,partial_upfront,1.421,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:15.237368 +AWS,eu-west-1,r5.8xlarge,spot,NA,1.076489,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730825 +AWS,eu-west-1,r5.large,on_demand,NA,0.141,USD,AWS Pricing API,2025-11-30T09:05:48.108781 +AWS,eu-west-1,r5.large,reserved_1y,all_upfront,0.061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:17.030649 +AWS,eu-west-1,r5.large,reserved_1y,no_upfront,0.061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:02.296764 +AWS,eu-west-1,r5.large,reserved_1y,partial_upfront,0.061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:41.565127 +AWS,eu-west-1,r5.large,reserved_3y,all_upfront,0.061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:12.260667 +AWS,eu-west-1,r5.large,reserved_3y,no_upfront,0.061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:08.237372 +AWS,eu-west-1,r5.large,reserved_3y,partial_upfront,0.061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:51.538311 +AWS,eu-west-1,r5.large,spot,NA,0.06585,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729328 +AWS,eu-west-1,r5.xlarge,on_demand,NA,0.282,USD,AWS Pricing API,2025-11-30T09:05:25.061382 +AWS,eu-west-1,r5.xlarge,reserved_1y,all_upfront,0.272338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:54.242550 +AWS,eu-west-1,r5.xlarge,reserved_1y,no_upfront,0.272338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:39.193381 +AWS,eu-west-1,r5.xlarge,reserved_1y,partial_upfront,0.272338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:18.970584 +AWS,eu-west-1,r5.xlarge,reserved_3y,all_upfront,0.136113,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:49.983810 +AWS,eu-west-1,r5.xlarge,reserved_3y,no_upfront,0.136113,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:45.073465 +AWS,eu-west-1,r5.xlarge,reserved_3y,partial_upfront,0.136113,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:28.941982 +AWS,eu-west-1,r5.xlarge,spot,NA,0.136233,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728458 +AWS,eu-west-1,r5a.12xlarge,on_demand,NA,3.048,USD,AWS Pricing API,2025-11-30T09:06:20.388988 +AWS,eu-west-1,r5a.12xlarge,reserved_1y,all_upfront,1.792237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:49.165430 +AWS,eu-west-1,r5a.12xlarge,reserved_1y,no_upfront,1.792237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:34.663724 +AWS,eu-west-1,r5a.12xlarge,reserved_1y,partial_upfront,1.792237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:13.418798 +AWS,eu-west-1,r5a.12xlarge,reserved_3y,all_upfront,0.597412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:43.596961 +AWS,eu-west-1,r5a.12xlarge,reserved_3y,no_upfront,0.597412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:40.913803 +AWS,eu-west-1,r5a.12xlarge,reserved_3y,partial_upfront,0.597412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:23.335481 +AWS,eu-west-1,r5a.12xlarge,spot,NA,1.444679,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731236 +AWS,eu-west-1,r5a.16xlarge,on_demand,NA,4.064,USD,AWS Pricing API,2025-11-30T09:06:28.671372 +AWS,eu-west-1,r5a.16xlarge,reserved_1y,all_upfront,5.759018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:57.284671 +AWS,eu-west-1,r5a.16xlarge,reserved_1y,no_upfront,5.759018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:42.923587 +AWS,eu-west-1,r5a.16xlarge,reserved_1y,partial_upfront,5.759018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:21.609221 +AWS,eu-west-1,r5a.16xlarge,reserved_3y,all_upfront,1.919673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:51.588178 +AWS,eu-west-1,r5a.16xlarge,reserved_3y,no_upfront,1.919673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:49.222971 +AWS,eu-west-1,r5a.16xlarge,reserved_3y,partial_upfront,1.919673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:31.420947 +AWS,eu-west-1,r5a.16xlarge,spot,NA,1.898674,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731548 +AWS,eu-west-1,r5a.24xlarge,on_demand,NA,6.096,USD,AWS Pricing API,2025-11-30T09:06:22.494595 +AWS,eu-west-1,r5a.24xlarge,reserved_1y,all_upfront,4.429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:51.210294 +AWS,eu-west-1,r5a.24xlarge,reserved_1y,no_upfront,4.429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:36.720999 +AWS,eu-west-1,r5a.24xlarge,reserved_1y,partial_upfront,4.429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:15.441856 +AWS,eu-west-1,r5a.24xlarge,reserved_3y,all_upfront,4.429,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:45.594002 +AWS,eu-west-1,r5a.24xlarge,reserved_3y,no_upfront,4.429,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:42.989762 +AWS,eu-west-1,r5a.24xlarge,reserved_3y,partial_upfront,4.429,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:25.341795 +AWS,eu-west-1,r5a.24xlarge,spot,NA,2.776337,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731242 +AWS,eu-west-1,r5a.2xlarge,on_demand,NA,0.508,USD,AWS Pricing API,2025-11-30T09:06:33.325138 +AWS,eu-west-1,r5a.2xlarge,reserved_1y,all_upfront,0.369,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:01.925148 +AWS,eu-west-1,r5a.2xlarge,reserved_1y,no_upfront,0.369,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:47.608930 +AWS,eu-west-1,r5a.2xlarge,reserved_1y,partial_upfront,0.369,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:26.211736 +AWS,eu-west-1,r5a.2xlarge,reserved_3y,all_upfront,0.369,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:56.116544 +AWS,eu-west-1,r5a.2xlarge,reserved_3y,no_upfront,0.369,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:53.934876 +AWS,eu-west-1,r5a.2xlarge,reserved_3y,partial_upfront,0.369,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:35.977022 +AWS,eu-west-1,r5a.2xlarge,spot,NA,0.271402,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731712 +AWS,eu-west-1,r5a.4xlarge,on_demand,NA,1.016,USD,AWS Pricing API,2025-11-30T09:06:13.148134 +AWS,eu-west-1,r5a.4xlarge,reserved_1y,all_upfront,0.703484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:41.980022 +AWS,eu-west-1,r5a.4xlarge,reserved_1y,no_upfront,0.703484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:27.337649 +AWS,eu-west-1,r5a.4xlarge,reserved_1y,partial_upfront,0.703484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:06.324750 +AWS,eu-west-1,r5a.4xlarge,reserved_3y,all_upfront,0.469161,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:36.587643 +AWS,eu-west-1,r5a.4xlarge,reserved_3y,no_upfront,0.469161,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:33.585450 +AWS,eu-west-1,r5a.4xlarge,reserved_3y,partial_upfront,0.469161,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:16.195023 +AWS,eu-west-1,r5a.4xlarge,spot,NA,0.534558,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730939 +AWS,eu-west-1,r5a.8xlarge,on_demand,NA,2.032,USD,AWS Pricing API,2025-11-30T09:05:55.360178 +AWS,eu-west-1,r5a.8xlarge,reserved_1y,all_upfront,1.28,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:24.184368 +AWS,eu-west-1,r5a.8xlarge,reserved_1y,no_upfront,1.28,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:09.567291 +AWS,eu-west-1,r5a.8xlarge,reserved_1y,partial_upfront,1.28,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:48.764420 +AWS,eu-west-1,r5a.8xlarge,reserved_3y,all_upfront,1.28,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:19.301182 +AWS,eu-west-1,r5a.8xlarge,reserved_3y,no_upfront,1.28,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:15.595071 +AWS,eu-west-1,r5a.8xlarge,reserved_3y,partial_upfront,1.28,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:58.676221 +AWS,eu-west-1,r5a.8xlarge,spot,NA,0.949035,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729648 +AWS,eu-west-1,r5a.large,on_demand,NA,0.127,USD,AWS Pricing API,2025-11-30T09:06:01.915799 +AWS,eu-west-1,r5a.large,reserved_1y,all_upfront,0.180023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:30.800951 +AWS,eu-west-1,r5a.large,reserved_1y,no_upfront,0.180023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:16.127096 +AWS,eu-west-1,r5a.large,reserved_1y,partial_upfront,0.180023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:55.226992 +AWS,eu-west-1,r5a.large,reserved_3y,all_upfront,0.060008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:25.676325 +AWS,eu-west-1,r5a.large,reserved_3y,no_upfront,0.060008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:22.207039 +AWS,eu-west-1,r5a.large,reserved_3y,partial_upfront,0.060008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:05.151801 +AWS,eu-west-1,r5a.large,spot,NA,0.068283,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729844 +AWS,eu-west-1,r5a.xlarge,on_demand,NA,0.254,USD,AWS Pricing API,2025-11-30T09:06:12.603814 +AWS,eu-west-1,r5a.xlarge,reserved_1y,all_upfront,0.16,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:41.434805 +AWS,eu-west-1,r5a.xlarge,reserved_1y,no_upfront,0.16,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:26.792722 +AWS,eu-west-1,r5a.xlarge,reserved_1y,partial_upfront,0.16,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:05.780516 +AWS,eu-west-1,r5a.xlarge,reserved_3y,all_upfront,0.16,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:36.059574 +AWS,eu-west-1,r5a.xlarge,reserved_3y,no_upfront,0.16,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:33.036657 +AWS,eu-west-1,r5a.xlarge,reserved_3y,partial_upfront,0.16,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:15.655970 +AWS,eu-west-1,r5a.xlarge,spot,NA,0.131705,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730863 +AWS,eu-west-1,r5d.12xlarge,on_demand,NA,3.84,USD,AWS Pricing API,2025-11-30T09:06:26.093402 +AWS,eu-west-1,r5d.12xlarge,reserved_1y,all_upfront,2.679954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:54.715000 +AWS,eu-west-1,r5d.12xlarge,reserved_1y,no_upfront,2.679954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:40.296923 +AWS,eu-west-1,r5d.12xlarge,reserved_1y,partial_upfront,2.679954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:19.031862 +AWS,eu-west-1,r5d.12xlarge,reserved_3y,all_upfront,1.786651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:49.056920 +AWS,eu-west-1,r5d.12xlarge,reserved_3y,no_upfront,1.786651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:46.575017 +AWS,eu-west-1,r5d.12xlarge,reserved_3y,partial_upfront,1.786651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:28.855008 +AWS,eu-west-1,r5d.12xlarge,spot,NA,1.849947,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731464 +AWS,eu-west-1,r5d.16xlarge,on_demand,NA,5.12,USD,AWS Pricing API,2025-11-30T09:05:50.433457 +AWS,eu-west-1,r5d.16xlarge,reserved_1y,all_upfront,3.226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:19.324285 +AWS,eu-west-1,r5d.16xlarge,reserved_1y,no_upfront,3.226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:04.631425 +AWS,eu-west-1,r5d.16xlarge,reserved_1y,partial_upfront,3.226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:43.890312 +AWS,eu-west-1,r5d.16xlarge,reserved_3y,all_upfront,3.226,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:14.507923 +AWS,eu-west-1,r5d.16xlarge,reserved_3y,no_upfront,3.226,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:10.634341 +AWS,eu-west-1,r5d.16xlarge,reserved_3y,partial_upfront,3.226,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:53.818665 +AWS,eu-west-1,r5d.16xlarge,spot,NA,2.374122,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729440 +AWS,eu-west-1,r5d.24xlarge,on_demand,NA,7.68,USD,AWS Pricing API,2025-11-30T09:06:20.526598 +AWS,eu-west-1,r5d.24xlarge,reserved_1y,all_upfront,4.607995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:49.301610 +AWS,eu-west-1,r5d.24xlarge,reserved_1y,no_upfront,4.607995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:34.800693 +AWS,eu-west-1,r5d.24xlarge,reserved_1y,partial_upfront,4.607995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:13.553216 +AWS,eu-west-1,r5d.24xlarge,reserved_3y,all_upfront,3.071998,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:43.727770 +AWS,eu-west-1,r5d.24xlarge,reserved_3y,no_upfront,3.071998,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:41.051592 +AWS,eu-west-1,r5d.24xlarge,reserved_3y,partial_upfront,3.071998,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:23.469928 +AWS,eu-west-1,r5d.24xlarge,spot,NA,3.558426,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731223 +AWS,eu-west-1,r5d.2xlarge,on_demand,NA,0.64,USD,AWS Pricing API,2025-11-30T09:06:19.163823 +AWS,eu-west-1,r5d.2xlarge,reserved_1y,all_upfront,0.469,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:47.952838 +AWS,eu-west-1,r5d.2xlarge,reserved_1y,no_upfront,0.469,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:33.423478 +AWS,eu-west-1,r5d.2xlarge,reserved_1y,partial_upfront,0.469,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:12.215852 +AWS,eu-west-1,r5d.2xlarge,reserved_3y,all_upfront,0.469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:42.401649 +AWS,eu-west-1,r5d.2xlarge,reserved_3y,no_upfront,0.469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:39.672788 +AWS,eu-west-1,r5d.2xlarge,reserved_3y,partial_upfront,0.469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:22.127479 +AWS,eu-west-1,r5d.2xlarge,spot,NA,0.350082,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731128 +AWS,eu-west-1,r5d.4xlarge,on_demand,NA,1.28,USD,AWS Pricing API,2025-11-30T09:05:49.895866 +AWS,eu-west-1,r5d.4xlarge,reserved_1y,all_upfront,0.806,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:18.787182 +AWS,eu-west-1,r5d.4xlarge,reserved_1y,no_upfront,0.806,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:04.082520 +AWS,eu-west-1,r5d.4xlarge,reserved_1y,partial_upfront,0.806,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:43.353429 +AWS,eu-west-1,r5d.4xlarge,reserved_3y,all_upfront,0.806,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:13.980199 +AWS,eu-west-1,r5d.4xlarge,reserved_3y,no_upfront,0.806,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:10.061093 +AWS,eu-west-1,r5d.4xlarge,reserved_3y,partial_upfront,0.806,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:53.282688 +AWS,eu-west-1,r5d.4xlarge,spot,NA,0.606332,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729413 +AWS,eu-west-1,r5d.8xlarge,on_demand,NA,2.56,USD,AWS Pricing API,2025-11-30T09:05:49.482893 +AWS,eu-west-1,r5d.8xlarge,reserved_1y,all_upfront,1.750913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:18.383007 +AWS,eu-west-1,r5d.8xlarge,reserved_1y,no_upfront,1.750913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:03.671271 +AWS,eu-west-1,r5d.8xlarge,reserved_1y,partial_upfront,1.750913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:42.945176 +AWS,eu-west-1,r5d.8xlarge,reserved_3y,all_upfront,0.583638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:13.584981 +AWS,eu-west-1,r5d.8xlarge,reserved_3y,no_upfront,0.583638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:09.644296 +AWS,eu-west-1,r5d.8xlarge,reserved_3y,partial_upfront,0.583638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:52.871852 +AWS,eu-west-1,r5d.8xlarge,spot,NA,1.270935,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729362 +AWS,eu-west-1,r5d.large,on_demand,NA,0.16,USD,AWS Pricing API,2025-11-30T09:06:14.373815 +AWS,eu-west-1,r5d.large,reserved_1y,all_upfront,0.180479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:43.210688 +AWS,eu-west-1,r5d.large,reserved_1y,no_upfront,0.180479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:28.571610 +AWS,eu-west-1,r5d.large,reserved_1y,partial_upfront,0.180479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:07.532272 +AWS,eu-west-1,r5d.large,reserved_3y,all_upfront,0.06016,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:37.786663 +AWS,eu-west-1,r5d.large,reserved_3y,no_upfront,0.06016,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:34.827926 +AWS,eu-west-1,r5d.large,reserved_3y,partial_upfront,0.06016,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:17.404498 +AWS,eu-west-1,r5d.large,spot,NA,0.081226,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730984 +AWS,eu-west-1,r5d.xlarge,on_demand,NA,0.32,USD,AWS Pricing API,2025-11-30T09:05:31.569361 +AWS,eu-west-1,r5d.xlarge,reserved_1y,all_upfront,0.256009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:00.620101 +AWS,eu-west-1,r5d.xlarge,reserved_1y,no_upfront,0.256009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:45.758824 +AWS,eu-west-1,r5d.xlarge,reserved_1y,partial_upfront,0.256009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:25.333273 +AWS,eu-west-1,r5d.xlarge,reserved_3y,all_upfront,0.128003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:56.246726 +AWS,eu-west-1,r5d.xlarge,reserved_3y,no_upfront,0.128003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:51.562541 +AWS,eu-west-1,r5d.xlarge,reserved_3y,partial_upfront,0.128003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:35.230652 +AWS,eu-west-1,r5d.xlarge,spot,NA,0.188099,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728664 +AWS,eu-west-1,r5dn.12xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T09:05:34.457562 +AWS,eu-west-1,r5dn.12xlarge,reserved_1y,all_upfront,3.079795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:03.479324 +AWS,eu-west-1,r5dn.12xlarge,reserved_1y,no_upfront,3.079795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:48.691485 +AWS,eu-west-1,r5dn.12xlarge,reserved_1y,partial_upfront,3.079795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:28.165174 +AWS,eu-west-1,r5dn.12xlarge,reserved_3y,all_upfront,1.026598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:59.034519 +AWS,eu-west-1,r5dn.12xlarge,reserved_3y,no_upfront,1.026598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:54.453043 +AWS,eu-west-1,r5dn.12xlarge,reserved_3y,partial_upfront,1.026598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:38.067794 +AWS,eu-west-1,r5dn.12xlarge,spot,NA,2.165463,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728750 +AWS,eu-west-1,r5dn.16xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T09:05:45.079230 +AWS,eu-west-1,r5dn.16xlarge,reserved_1y,all_upfront,4.607137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:14.064598 +AWS,eu-west-1,r5dn.16xlarge,reserved_1y,no_upfront,4.607137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:59.228412 +AWS,eu-west-1,r5dn.16xlarge,reserved_1y,partial_upfront,4.607137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:38.604831 +AWS,eu-west-1,r5dn.16xlarge,reserved_3y,all_upfront,2.303712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:09.264872 +AWS,eu-west-1,r5dn.16xlarge,reserved_3y,no_upfront,2.303712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:05.197880 +AWS,eu-west-1,r5dn.16xlarge,reserved_3y,partial_upfront,2.303712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:48.561236 +AWS,eu-west-1,r5dn.16xlarge,spot,NA,2.845326,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729208 +AWS,eu-west-1,r5dn.24xlarge,on_demand,NA,8.928,USD,AWS Pricing API,2025-11-30T09:05:56.731008 +AWS,eu-west-1,r5dn.24xlarge,reserved_1y,all_upfront,6.159589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:25.539049 +AWS,eu-west-1,r5dn.24xlarge,reserved_1y,no_upfront,6.159589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:10.929742 +AWS,eu-west-1,r5dn.24xlarge,reserved_1y,partial_upfront,6.159589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:50.114679 +AWS,eu-west-1,r5dn.24xlarge,reserved_3y,all_upfront,2.053196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:20.629561 +AWS,eu-west-1,r5dn.24xlarge,reserved_3y,no_upfront,2.053196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:16.985119 +AWS,eu-west-1,r5dn.24xlarge,reserved_3y,partial_upfront,2.053196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:00.019369 +AWS,eu-west-1,r5dn.24xlarge,spot,NA,4.22041,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729717 +AWS,eu-west-1,r5dn.2xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T09:06:02.052143 +AWS,eu-west-1,r5dn.2xlarge,reserved_1y,all_upfront,0.446174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:30.942293 +AWS,eu-west-1,r5dn.2xlarge,reserved_1y,no_upfront,0.446174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:16.262684 +AWS,eu-west-1,r5dn.2xlarge,reserved_1y,partial_upfront,0.446174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:55.360113 +AWS,eu-west-1,r5dn.2xlarge,reserved_3y,all_upfront,0.297391,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:25.808608 +AWS,eu-west-1,r5dn.2xlarge,reserved_3y,no_upfront,0.297391,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:22.346388 +AWS,eu-west-1,r5dn.2xlarge,reserved_3y,partial_upfront,0.297391,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:05.283972 +AWS,eu-west-1,r5dn.2xlarge,spot,NA,0.398275,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729902 +AWS,eu-west-1,r5dn.4xlarge,on_demand,NA,1.488,USD,AWS Pricing API,2025-11-30T09:05:25.769925 +AWS,eu-west-1,r5dn.4xlarge,reserved_1y,all_upfront,1.946804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:54.919880 +AWS,eu-west-1,r5dn.4xlarge,reserved_1y,no_upfront,1.946804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:39.879675 +AWS,eu-west-1,r5dn.4xlarge,reserved_1y,partial_upfront,1.946804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:19.645281 +AWS,eu-west-1,r5dn.4xlarge,reserved_3y,all_upfront,0.648935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:50.663238 +AWS,eu-west-1,r5dn.4xlarge,reserved_3y,no_upfront,0.648935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:45.766576 +AWS,eu-west-1,r5dn.4xlarge,reserved_3y,partial_upfront,0.648935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:29.622335 +AWS,eu-west-1,r5dn.4xlarge,spot,NA,0.716848,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728412 +AWS,eu-west-1,r5dn.8xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T09:06:25.820008 +AWS,eu-west-1,r5dn.8xlarge,reserved_1y,all_upfront,3.247831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:54.447043 +AWS,eu-west-1,r5dn.8xlarge,reserved_1y,no_upfront,3.247831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:40.021380 +AWS,eu-west-1,r5dn.8xlarge,reserved_1y,partial_upfront,3.247831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:18.763953 +AWS,eu-west-1,r5dn.8xlarge,reserved_3y,all_upfront,1.08261,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:48.793076 +AWS,eu-west-1,r5dn.8xlarge,reserved_3y,no_upfront,1.08261,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:46.281690 +AWS,eu-west-1,r5dn.8xlarge,reserved_3y,partial_upfront,1.08261,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:28.576026 +AWS,eu-west-1,r5dn.8xlarge,spot,NA,1.434154,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731437 +AWS,eu-west-1,r5dn.large,on_demand,NA,0.186,USD,AWS Pricing API,2025-11-30T09:05:35.554471 +AWS,eu-west-1,r5dn.large,reserved_1y,all_upfront,0.128311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:04.584128 +AWS,eu-west-1,r5dn.large,reserved_1y,no_upfront,0.128311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:49.796439 +AWS,eu-west-1,r5dn.large,reserved_1y,partial_upfront,0.128311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:29.239078 +AWS,eu-west-1,r5dn.large,reserved_3y,all_upfront,0.04277,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:00.090477 +AWS,eu-west-1,r5dn.large,reserved_3y,no_upfront,0.04277,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:55.564569 +AWS,eu-west-1,r5dn.large,reserved_3y,partial_upfront,0.04277,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:39.160582 +AWS,eu-west-1,r5dn.large,spot,NA,0.091141,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728805 +AWS,eu-west-1,r5dn.metal,on_demand,NA,8.928,USD,AWS Pricing API,2025-11-30T09:05:23.405374 +AWS,eu-west-1,r5dn.metal,reserved_1y,all_upfront,3.732,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:52.612269 +AWS,eu-west-1,r5dn.metal,reserved_1y,no_upfront,3.732,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:37.527020 +AWS,eu-west-1,r5dn.metal,reserved_1y,partial_upfront,3.732,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:17.361641 +AWS,eu-west-1,r5dn.metal,reserved_3y,all_upfront,3.732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:48.391455 +AWS,eu-west-1,r5dn.metal,reserved_3y,no_upfront,3.732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:43.397360 +AWS,eu-west-1,r5dn.metal,reserved_3y,partial_upfront,3.732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:27.337562 +AWS,eu-west-1,r5dn.metal,spot,NA,3.899847,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728357 +AWS,eu-west-1,r5dn.xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T09:05:47.148965 +AWS,eu-west-1,r5dn.xlarge,reserved_1y,all_upfront,0.179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:16.087115 +AWS,eu-west-1,r5dn.xlarge,reserved_1y,no_upfront,0.179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:01.315177 +AWS,eu-west-1,r5dn.xlarge,reserved_1y,partial_upfront,0.179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:40.619303 +AWS,eu-west-1,r5dn.xlarge,reserved_3y,all_upfront,0.179,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:11.250398 +AWS,eu-west-1,r5dn.xlarge,reserved_3y,no_upfront,0.179,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:07.275036 +AWS,eu-west-1,r5dn.xlarge,reserved_3y,partial_upfront,0.179,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:50.587015 +AWS,eu-west-1,r5dn.xlarge,spot,NA,0.202195,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729322 +AWS,eu-west-1,r5n.12xlarge,on_demand,NA,4.008,USD,AWS Pricing API,2025-11-30T09:06:09.992395 +AWS,eu-west-1,r5n.12xlarge,reserved_1y,all_upfront,4.294977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:38.873836 +AWS,eu-west-1,r5n.12xlarge,reserved_1y,no_upfront,4.294977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:24.203648 +AWS,eu-west-1,r5n.12xlarge,reserved_1y,partial_upfront,4.294977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:03.203694 +AWS,eu-west-1,r5n.12xlarge,reserved_3y,all_upfront,1.431659,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:33.532753 +AWS,eu-west-1,r5n.12xlarge,reserved_3y,no_upfront,1.431659,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:30.423487 +AWS,eu-west-1,r5n.12xlarge,reserved_3y,partial_upfront,1.431659,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:13.083981 +AWS,eu-west-1,r5n.12xlarge,spot,NA,1.947743,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730718 +AWS,eu-west-1,r5n.16xlarge,on_demand,NA,5.344,USD,AWS Pricing API,2025-11-30T09:06:25.401090 +AWS,eu-west-1,r5n.16xlarge,reserved_1y,all_upfront,3.939,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:54.041796 +AWS,eu-west-1,r5n.16xlarge,reserved_1y,no_upfront,3.939,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:39.616866 +AWS,eu-west-1,r5n.16xlarge,reserved_1y,partial_upfront,3.939,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:18.275303 +AWS,eu-west-1,r5n.16xlarge,reserved_3y,all_upfront,3.939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:48.390752 +AWS,eu-west-1,r5n.16xlarge,reserved_3y,no_upfront,3.939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:45.873390 +AWS,eu-west-1,r5n.16xlarge,reserved_3y,partial_upfront,3.939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:28.171250 +AWS,eu-west-1,r5n.16xlarge,spot,NA,2.462247,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731470 +AWS,eu-west-1,r5n.24xlarge,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T09:05:46.730196 +AWS,eu-west-1,r5n.24xlarge,reserved_1y,all_upfront,5.05,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:15.679623 +AWS,eu-west-1,r5n.24xlarge,reserved_1y,no_upfront,5.05,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:00.902742 +AWS,eu-west-1,r5n.24xlarge,reserved_1y,partial_upfront,5.05,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:40.215902 +AWS,eu-west-1,r5n.24xlarge,reserved_3y,all_upfront,5.05,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:10.852881 +AWS,eu-west-1,r5n.24xlarge,reserved_3y,no_upfront,5.05,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:06.860797 +AWS,eu-west-1,r5n.24xlarge,reserved_3y,partial_upfront,5.05,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:50.181498 +AWS,eu-west-1,r5n.24xlarge,spot,NA,3.779353,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729252 +AWS,eu-west-1,r5n.2xlarge,on_demand,NA,0.668,USD,AWS Pricing API,2025-11-30T09:05:27.261555 +AWS,eu-west-1,r5n.2xlarge,reserved_1y,all_upfront,0.274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:56.411785 +AWS,eu-west-1,r5n.2xlarge,reserved_1y,no_upfront,0.274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:41.392027 +AWS,eu-west-1,r5n.2xlarge,reserved_1y,partial_upfront,0.274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:21.122115 +AWS,eu-west-1,r5n.2xlarge,reserved_3y,all_upfront,0.274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:52.115979 +AWS,eu-west-1,r5n.2xlarge,reserved_3y,no_upfront,0.274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:47.290980 +AWS,eu-west-1,r5n.2xlarge,reserved_3y,partial_upfront,0.274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:31.086035 +AWS,eu-west-1,r5n.2xlarge,spot,NA,0.383921,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728492 +AWS,eu-west-1,r5n.4xlarge,on_demand,NA,1.336,USD,AWS Pricing API,2025-11-30T09:06:23.864664 +AWS,eu-west-1,r5n.4xlarge,reserved_1y,all_upfront,1.716438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:52.563209 +AWS,eu-west-1,r5n.4xlarge,reserved_1y,no_upfront,1.716438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:38.091100 +AWS,eu-west-1,r5n.4xlarge,reserved_1y,partial_upfront,1.716438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:16.792485 +AWS,eu-west-1,r5n.4xlarge,reserved_3y,all_upfront,0.572146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:46.934136 +AWS,eu-west-1,r5n.4xlarge,reserved_3y,no_upfront,0.572146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:44.368903 +AWS,eu-west-1,r5n.4xlarge,reserved_3y,partial_upfront,0.572146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:26.693791 +AWS,eu-west-1,r5n.4xlarge,spot,NA,0.633911,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731338 +AWS,eu-west-1,r5n.8xlarge,on_demand,NA,2.672,USD,AWS Pricing API,2025-11-30T09:06:09.852686 +AWS,eu-west-1,r5n.8xlarge,reserved_1y,all_upfront,3.432877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:38.727988 +AWS,eu-west-1,r5n.8xlarge,reserved_1y,no_upfront,3.432877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:24.064083 +AWS,eu-west-1,r5n.8xlarge,reserved_1y,partial_upfront,3.432877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:03.069529 +AWS,eu-west-1,r5n.8xlarge,reserved_3y,all_upfront,1.144292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:33.401626 +AWS,eu-west-1,r5n.8xlarge,reserved_3y,no_upfront,1.144292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:30.286376 +AWS,eu-west-1,r5n.8xlarge,reserved_3y,partial_upfront,1.144292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:12.948537 +AWS,eu-west-1,r5n.8xlarge,spot,NA,1.287706,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730694 +AWS,eu-west-1,r5n.large,on_demand,NA,0.167,USD,AWS Pricing API,2025-11-30T09:06:31.296018 +AWS,eu-west-1,r5n.large,reserved_1y,all_upfront,0.145475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:59.882575 +AWS,eu-west-1,r5n.large,reserved_1y,no_upfront,0.145475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:45.537397 +AWS,eu-west-1,r5n.large,reserved_1y,partial_upfront,0.145475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:24.180607 +AWS,eu-west-1,r5n.large,reserved_3y,all_upfront,0.072492,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:54.123153 +AWS,eu-west-1,r5n.large,reserved_3y,no_upfront,0.072492,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:51.853260 +AWS,eu-west-1,r5n.large,reserved_3y,partial_upfront,0.072492,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:33.952172 +AWS,eu-west-1,r5n.large,spot,NA,0.08236,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731657 +AWS,eu-west-1,r5n.metal,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T09:06:10.813295 +AWS,eu-west-1,r5n.metal,reserved_1y,all_upfront,5.627584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:39.679935 +AWS,eu-west-1,r5n.metal,reserved_1y,no_upfront,5.627584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:25.014361 +AWS,eu-west-1,r5n.metal,reserved_1y,partial_upfront,5.627584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:04.017423 +AWS,eu-west-1,r5n.metal,reserved_3y,all_upfront,3.751861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:34.325289 +AWS,eu-west-1,r5n.metal,reserved_3y,no_upfront,3.751861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:31.249000 +AWS,eu-west-1,r5n.metal,reserved_3y,partial_upfront,3.751861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:13.897232 +AWS,eu-west-1,r5n.metal,spot,NA,3.552186,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730775 +AWS,eu-west-1,r5n.xlarge,on_demand,NA,0.334,USD,AWS Pricing API,2025-11-30T09:05:48.807948 +AWS,eu-west-1,r5n.xlarge,reserved_1y,all_upfront,0.196347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:17.706582 +AWS,eu-west-1,r5n.xlarge,reserved_1y,no_upfront,0.196347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:02.984038 +AWS,eu-west-1,r5n.xlarge,reserved_1y,partial_upfront,0.196347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:42.261769 +AWS,eu-west-1,r5n.xlarge,reserved_3y,all_upfront,0.065449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:12.933151 +AWS,eu-west-1,r5n.xlarge,reserved_3y,no_upfront,0.065449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:08.943926 +AWS,eu-west-1,r5n.xlarge,reserved_3y,partial_upfront,0.065449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:52.204588 +AWS,eu-west-1,r5n.xlarge,spot,NA,0.177685,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729368 +AWS,eu-west-1,r6g.12xlarge,on_demand,NA,2.7072,USD,AWS Pricing API,2025-11-30T09:05:41.935392 +AWS,eu-west-1,r6g.12xlarge,reserved_1y,all_upfront,1.9682,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:10.906436 +AWS,eu-west-1,r6g.12xlarge,reserved_1y,no_upfront,1.9682,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:56.083268 +AWS,eu-west-1,r6g.12xlarge,reserved_1y,partial_upfront,1.9682,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:35.484754 +AWS,eu-west-1,r6g.12xlarge,reserved_3y,all_upfront,1.9682,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:06.212370 +AWS,eu-west-1,r6g.12xlarge,reserved_3y,no_upfront,1.9682,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:02.005300 +AWS,eu-west-1,r6g.12xlarge,reserved_3y,partial_upfront,1.9682,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:45.460376 +AWS,eu-west-1,r6g.12xlarge,spot,NA,1.182077,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729079 +AWS,eu-west-1,r6g.16xlarge,on_demand,NA,3.6096,USD,AWS Pricing API,2025-11-30T09:05:38.740045 +AWS,eu-west-1,r6g.16xlarge,reserved_1y,all_upfront,2.449315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:07.798722 +AWS,eu-west-1,r6g.16xlarge,reserved_1y,no_upfront,2.449315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:52.939208 +AWS,eu-west-1,r6g.16xlarge,reserved_1y,partial_upfront,2.449315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:32.386588 +AWS,eu-west-1,r6g.16xlarge,reserved_3y,all_upfront,0.816438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:03.170743 +AWS,eu-west-1,r6g.16xlarge,reserved_3y,no_upfront,0.816438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:58.764510 +AWS,eu-west-1,r6g.16xlarge,reserved_3y,partial_upfront,0.816438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:42.335592 +AWS,eu-west-1,r6g.16xlarge,spot,NA,1.56293,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728999 +AWS,eu-west-1,r6g.2xlarge,on_demand,NA,0.4512,USD,AWS Pricing API,2025-11-30T09:06:32.235426 +AWS,eu-west-1,r6g.2xlarge,reserved_1y,all_upfront,0.2843,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:00.831176 +AWS,eu-west-1,r6g.2xlarge,reserved_1y,no_upfront,0.2843,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:46.506648 +AWS,eu-west-1,r6g.2xlarge,reserved_1y,partial_upfront,0.2843,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:25.146880 +AWS,eu-west-1,r6g.2xlarge,reserved_3y,all_upfront,0.2843,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:55.042171 +AWS,eu-west-1,r6g.2xlarge,reserved_3y,no_upfront,0.2843,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:52.836304 +AWS,eu-west-1,r6g.2xlarge,reserved_3y,partial_upfront,0.2843,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:34.897112 +AWS,eu-west-1,r6g.2xlarge,spot,NA,0.211432,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731739 +AWS,eu-west-1,r6g.4xlarge,on_demand,NA,0.9024,USD,AWS Pricing API,2025-11-30T09:05:28.383338 +AWS,eu-west-1,r6g.4xlarge,reserved_1y,all_upfront,0.5685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:57.498715 +AWS,eu-west-1,r6g.4xlarge,reserved_1y,no_upfront,0.5685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:42.603626 +AWS,eu-west-1,r6g.4xlarge,reserved_1y,partial_upfront,0.5685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:22.198349 +AWS,eu-west-1,r6g.4xlarge,reserved_3y,all_upfront,0.5685,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:53.184213 +AWS,eu-west-1,r6g.4xlarge,reserved_3y,no_upfront,0.5685,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:48.388472 +AWS,eu-west-1,r6g.4xlarge,reserved_3y,partial_upfront,0.5685,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:32.152296 +AWS,eu-west-1,r6g.4xlarge,spot,NA,0.417907,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728521 +AWS,eu-west-1,r6g.8xlarge,on_demand,NA,1.8048,USD,AWS Pricing API,2025-11-30T09:06:07.813117 +AWS,eu-west-1,r6g.8xlarge,reserved_1y,all_upfront,1.249572,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:36.707562 +AWS,eu-west-1,r6g.8xlarge,reserved_1y,no_upfront,1.249572,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:22.016792 +AWS,eu-west-1,r6g.8xlarge,reserved_1y,partial_upfront,1.249572,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:01.013554 +AWS,eu-west-1,r6g.8xlarge,reserved_3y,all_upfront,0.833057,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:31.393819 +AWS,eu-west-1,r6g.8xlarge,reserved_3y,no_upfront,0.833057,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:28.152614 +AWS,eu-west-1,r6g.8xlarge,reserved_3y,partial_upfront,0.833057,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:10.936454 +AWS,eu-west-1,r6g.8xlarge,spot,NA,0.817501,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730651 +AWS,eu-west-1,r6g.large,on_demand,NA,0.1128,USD,AWS Pricing API,2025-11-30T09:05:46.176330 +AWS,eu-west-1,r6g.large,reserved_1y,all_upfront,0.06759,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:15.144594 +AWS,eu-west-1,r6g.large,reserved_1y,no_upfront,0.06759,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:00.327825 +AWS,eu-west-1,r6g.large,reserved_1y,partial_upfront,0.06759,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:39.675418 +AWS,eu-west-1,r6g.large,reserved_3y,all_upfront,0.045063,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:10.324337 +AWS,eu-west-1,r6g.large,reserved_3y,no_upfront,0.045063,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:06.301165 +AWS,eu-west-1,r6g.large,reserved_3y,partial_upfront,0.045063,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:49.642327 +AWS,eu-west-1,r6g.large,spot,NA,0.052225,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729281 +AWS,eu-west-1,r6g.xlarge,on_demand,NA,0.2256,USD,AWS Pricing API,2025-11-30T09:05:21.221510 +AWS,eu-west-1,r6g.xlarge,reserved_1y,all_upfront,0.180488,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:50.436602 +AWS,eu-west-1,r6g.xlarge,reserved_1y,no_upfront,0.180488,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:35.354602 +AWS,eu-west-1,r6g.xlarge,reserved_1y,partial_upfront,0.180488,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:15.223540 +AWS,eu-west-1,r6g.xlarge,reserved_3y,all_upfront,0.090229,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:46.258738 +AWS,eu-west-1,r6g.xlarge,reserved_3y,no_upfront,0.090229,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:41.195782 +AWS,eu-west-1,r6g.xlarge,reserved_3y,partial_upfront,0.090229,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:25.178986 +AWS,eu-west-1,r6g.xlarge,spot,NA,0.105154,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728276 +AWS,eu-west-1,r6gd.12xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T09:06:18.344886 +AWS,eu-west-1,r6gd.12xlarge,reserved_1y,all_upfront,1.806393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:47.131255 +AWS,eu-west-1,r6gd.12xlarge,reserved_1y,no_upfront,1.806393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:32.584848 +AWS,eu-west-1,r6gd.12xlarge,reserved_1y,partial_upfront,1.806393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:11.411410 +AWS,eu-west-1,r6gd.12xlarge,reserved_3y,all_upfront,0.602131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:41.606590 +AWS,eu-west-1,r6gd.12xlarge,reserved_3y,no_upfront,0.602131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:38.846199 +AWS,eu-west-1,r6gd.12xlarge,reserved_3y,partial_upfront,0.602131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:21.323944 +AWS,eu-west-1,r6gd.12xlarge,spot,NA,1.385062,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731082 +AWS,eu-west-1,r6gd.16xlarge,on_demand,NA,4.096,USD,AWS Pricing API,2025-11-30T09:05:44.665856 +AWS,eu-west-1,r6gd.16xlarge,reserved_1y,all_upfront,3.276848,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:13.661675 +AWS,eu-west-1,r6gd.16xlarge,reserved_1y,no_upfront,3.276848,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:58.811277 +AWS,eu-west-1,r6gd.16xlarge,reserved_1y,partial_upfront,3.276848,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:38.186410 +AWS,eu-west-1,r6gd.16xlarge,reserved_3y,all_upfront,1.638416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:08.866483 +AWS,eu-west-1,r6gd.16xlarge,reserved_3y,no_upfront,1.638416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:04.779244 +AWS,eu-west-1,r6gd.16xlarge,reserved_3y,partial_upfront,1.638416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:48.154383 +AWS,eu-west-1,r6gd.16xlarge,spot,NA,1.833001,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729214 +AWS,eu-west-1,r6gd.2xlarge,on_demand,NA,0.512,USD,AWS Pricing API,2025-11-30T09:05:22.708844 +AWS,eu-west-1,r6gd.2xlarge,reserved_1y,all_upfront,0.3757,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:51.932252 +AWS,eu-west-1,r6gd.2xlarge,reserved_1y,no_upfront,0.3757,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:36.838921 +AWS,eu-west-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.3757,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:16.695618 +AWS,eu-west-1,r6gd.2xlarge,reserved_3y,all_upfront,0.3757,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:47.718663 +AWS,eu-west-1,r6gd.2xlarge,reserved_3y,no_upfront,0.3757,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:42.711408 +AWS,eu-west-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.3757,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:26.651393 +AWS,eu-west-1,r6gd.2xlarge,spot,NA,0.255037,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728328 +AWS,eu-west-1,r6gd.4xlarge,on_demand,NA,1.024,USD,AWS Pricing API,2025-11-30T09:05:29.377901 +AWS,eu-west-1,r6gd.4xlarge,reserved_1y,all_upfront,0.6451,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:58.448173 +AWS,eu-west-1,r6gd.4xlarge,reserved_1y,no_upfront,0.6451,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:43.571680 +AWS,eu-west-1,r6gd.4xlarge,reserved_1y,partial_upfront,0.6451,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:23.142200 +AWS,eu-west-1,r6gd.4xlarge,reserved_3y,all_upfront,0.6451,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:54.115798 +AWS,eu-west-1,r6gd.4xlarge,reserved_3y,no_upfront,0.6451,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:49.349406 +AWS,eu-west-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.6451,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:33.090447 +AWS,eu-west-1,r6gd.4xlarge,spot,NA,0.493217,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728583 +AWS,eu-west-1,r6gd.8xlarge,on_demand,NA,2.048,USD,AWS Pricing API,2025-11-30T09:05:23.540528 +AWS,eu-west-1,r6gd.8xlarge,reserved_1y,all_upfront,1.40274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:52.745966 +AWS,eu-west-1,r6gd.8xlarge,reserved_1y,no_upfront,1.40274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:37.662506 +AWS,eu-west-1,r6gd.8xlarge,reserved_1y,partial_upfront,1.40274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:17.493774 +AWS,eu-west-1,r6gd.8xlarge,reserved_3y,all_upfront,0.46758,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:48.522496 +AWS,eu-west-1,r6gd.8xlarge,reserved_3y,no_upfront,0.46758,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:43.539325 +AWS,eu-west-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.46758,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:27.471555 +AWS,eu-west-1,r6gd.8xlarge,spot,NA,0.965936,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728368 +AWS,eu-west-1,r6gd.large,on_demand,NA,0.128,USD,AWS Pricing API,2025-11-30T09:05:59.589773 +AWS,eu-west-1,r6gd.large,reserved_1y,all_upfront,0.0806,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:28.488685 +AWS,eu-west-1,r6gd.large,reserved_1y,no_upfront,0.0806,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:13.801886 +AWS,eu-west-1,r6gd.large,reserved_1y,partial_upfront,0.0806,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:52.940819 +AWS,eu-west-1,r6gd.large,reserved_3y,all_upfront,0.0806,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:23.425811 +AWS,eu-west-1,r6gd.large,reserved_3y,no_upfront,0.0806,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:19.869805 +AWS,eu-west-1,r6gd.large,reserved_3y,partial_upfront,0.0806,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:02.862698 +AWS,eu-west-1,r6gd.large,spot,NA,0.060492,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729781 +AWS,eu-west-1,r6gd.xlarge,on_demand,NA,0.256,USD,AWS Pricing API,2025-11-30T09:05:43.563015 +AWS,eu-west-1,r6gd.xlarge,reserved_1y,all_upfront,0.1613,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:12.578090 +AWS,eu-west-1,r6gd.xlarge,reserved_1y,no_upfront,0.1613,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:57.722583 +AWS,eu-west-1,r6gd.xlarge,reserved_1y,partial_upfront,0.1613,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:37.102340 +AWS,eu-west-1,r6gd.xlarge,reserved_3y,all_upfront,0.1613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:07.799245 +AWS,eu-west-1,r6gd.xlarge,reserved_3y,no_upfront,0.1613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:03.668838 +AWS,eu-west-1,r6gd.xlarge,reserved_3y,partial_upfront,0.1613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:47.073066 +AWS,eu-west-1,r6gd.xlarge,spot,NA,0.125774,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729170 +AWS,eu-west-1,r6i.12xlarge,on_demand,NA,3.384,USD,AWS Pricing API,2025-11-30T09:06:24.147217 +AWS,eu-west-1,r6i.12xlarge,reserved_1y,all_upfront,4.805365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:52.833702 +AWS,eu-west-1,r6i.12xlarge,reserved_1y,no_upfront,4.805365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:38.363701 +AWS,eu-west-1,r6i.12xlarge,reserved_1y,partial_upfront,4.805365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:17.061071 +AWS,eu-west-1,r6i.12xlarge,reserved_3y,all_upfront,1.601788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:47.203472 +AWS,eu-west-1,r6i.12xlarge,reserved_3y,no_upfront,1.601788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:44.643886 +AWS,eu-west-1,r6i.12xlarge,reserved_3y,partial_upfront,1.601788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:26.959401 +AWS,eu-west-1,r6i.12xlarge,spot,NA,1.610389,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731363 +AWS,eu-west-1,r6i.16xlarge,on_demand,NA,4.512,USD,AWS Pricing API,2025-11-30T09:05:32.116321 +AWS,eu-west-1,r6i.16xlarge,reserved_1y,all_upfront,3.051027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:01.159370 +AWS,eu-west-1,r6i.16xlarge,reserved_1y,no_upfront,3.051027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:46.313265 +AWS,eu-west-1,r6i.16xlarge,reserved_1y,partial_upfront,3.051027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:25.876849 +AWS,eu-west-1,r6i.16xlarge,reserved_3y,all_upfront,1.017009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:56.772490 +AWS,eu-west-1,r6i.16xlarge,reserved_3y,no_upfront,1.017009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:52.113915 +AWS,eu-west-1,r6i.16xlarge,reserved_3y,partial_upfront,1.017009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:35.775977 +AWS,eu-west-1,r6i.16xlarge,spot,NA,2.07434,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728719 +AWS,eu-west-1,r6i.24xlarge,on_demand,NA,6.768,USD,AWS Pricing API,2025-11-30T09:05:38.602887 +AWS,eu-west-1,r6i.24xlarge,reserved_1y,all_upfront,4.178539,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:07.663287 +AWS,eu-west-1,r6i.24xlarge,reserved_1y,no_upfront,4.178539,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:52.803512 +AWS,eu-west-1,r6i.24xlarge,reserved_1y,partial_upfront,4.178539,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:32.251607 +AWS,eu-west-1,r6i.24xlarge,reserved_3y,all_upfront,1.392846,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:03.038006 +AWS,eu-west-1,r6i.24xlarge,reserved_3y,no_upfront,1.392846,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:58.614369 +AWS,eu-west-1,r6i.24xlarge,reserved_3y,partial_upfront,1.392846,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:42.201915 +AWS,eu-west-1,r6i.24xlarge,spot,NA,3.099315,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728940 +AWS,eu-west-1,r6i.2xlarge,on_demand,NA,0.564,USD,AWS Pricing API,2025-11-30T09:06:27.713218 +AWS,eu-west-1,r6i.2xlarge,reserved_1y,all_upfront,0.381393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:56.332874 +AWS,eu-west-1,r6i.2xlarge,reserved_1y,no_upfront,0.381393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:41.954432 +AWS,eu-west-1,r6i.2xlarge,reserved_1y,partial_upfront,0.381393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:20.664758 +AWS,eu-west-1,r6i.2xlarge,reserved_3y,all_upfront,0.127131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:50.651193 +AWS,eu-west-1,r6i.2xlarge,reserved_3y,no_upfront,0.127131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:48.237195 +AWS,eu-west-1,r6i.2xlarge,reserved_3y,partial_upfront,0.127131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:30.475260 +AWS,eu-west-1,r6i.2xlarge,spot,NA,0.276324,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731522 +AWS,eu-west-1,r6i.32xlarge,on_demand,NA,9.024,USD,AWS Pricing API,2025-11-30T09:05:32.258267 +AWS,eu-west-1,r6i.32xlarge,reserved_1y,all_upfront,5.571461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:01.295325 +AWS,eu-west-1,r6i.32xlarge,reserved_1y,no_upfront,5.571461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:46.452052 +AWS,eu-west-1,r6i.32xlarge,reserved_1y,partial_upfront,5.571461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:26.010122 +AWS,eu-west-1,r6i.32xlarge,reserved_3y,all_upfront,1.857154,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:56.902886 +AWS,eu-west-1,r6i.32xlarge,reserved_3y,no_upfront,1.857154,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:52.252537 +AWS,eu-west-1,r6i.32xlarge,reserved_3y,partial_upfront,1.857154,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:35.910134 +AWS,eu-west-1,r6i.32xlarge,spot,NA,4.079905,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728676 +AWS,eu-west-1,r6i.4xlarge,on_demand,NA,1.128,USD,AWS Pricing API,2025-11-30T09:05:53.858428 +AWS,eu-west-1,r6i.4xlarge,reserved_1y,all_upfront,0.710685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:22.701807 +AWS,eu-west-1,r6i.4xlarge,reserved_1y,no_upfront,0.710685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:08.056057 +AWS,eu-west-1,r6i.4xlarge,reserved_1y,partial_upfront,0.710685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:47.283631 +AWS,eu-west-1,r6i.4xlarge,reserved_3y,all_upfront,0.473775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:17.835116 +AWS,eu-west-1,r6i.4xlarge,reserved_3y,no_upfront,0.473775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:14.084216 +AWS,eu-west-1,r6i.4xlarge,reserved_3y,partial_upfront,0.473775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:57.198855 +AWS,eu-west-1,r6i.4xlarge,spot,NA,0.539824,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729589 +AWS,eu-west-1,r6i.8xlarge,on_demand,NA,2.256,USD,AWS Pricing API,2025-11-30T09:05:58.209735 +AWS,eu-west-1,r6i.8xlarge,reserved_1y,all_upfront,3.203539,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:27.141200 +AWS,eu-west-1,r6i.8xlarge,reserved_1y,no_upfront,3.203539,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:12.426281 +AWS,eu-west-1,r6i.8xlarge,reserved_1y,partial_upfront,3.203539,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:51.598844 +AWS,eu-west-1,r6i.8xlarge,reserved_3y,all_upfront,1.067846,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:22.092933 +AWS,eu-west-1,r6i.8xlarge,reserved_3y,no_upfront,1.067846,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:18.503058 +AWS,eu-west-1,r6i.8xlarge,reserved_3y,partial_upfront,1.067846,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:01.498860 +AWS,eu-west-1,r6i.8xlarge,spot,NA,1.067368,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729763 +AWS,eu-west-1,r6i.large,on_demand,NA,0.141,USD,AWS Pricing API,2025-11-30T09:06:14.104536 +AWS,eu-west-1,r6i.large,reserved_1y,all_upfront,0.200228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:42.945291 +AWS,eu-west-1,r6i.large,reserved_1y,no_upfront,0.200228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:28.297432 +AWS,eu-west-1,r6i.large,reserved_1y,partial_upfront,0.200228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:07.266181 +AWS,eu-west-1,r6i.large,reserved_3y,all_upfront,0.066743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:37.518992 +AWS,eu-west-1,r6i.large,reserved_3y,no_upfront,0.066743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:34.550638 +AWS,eu-west-1,r6i.large,reserved_3y,partial_upfront,0.066743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:17.130887 +AWS,eu-west-1,r6i.large,spot,NA,0.066979,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730934 +AWS,eu-west-1,r6i.xlarge,on_demand,NA,0.282,USD,AWS Pricing API,2025-11-30T09:05:35.694518 +AWS,eu-west-1,r6i.xlarge,reserved_1y,all_upfront,0.190639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:04.729248 +AWS,eu-west-1,r6i.xlarge,reserved_1y,no_upfront,0.190639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:49.931644 +AWS,eu-west-1,r6i.xlarge,reserved_1y,partial_upfront,0.190639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:29.377854 +AWS,eu-west-1,r6i.xlarge,reserved_3y,all_upfront,0.063546,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:00.223705 +AWS,eu-west-1,r6i.xlarge,reserved_3y,no_upfront,0.063546,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:55.709132 +AWS,eu-west-1,r6i.xlarge,reserved_3y,partial_upfront,0.063546,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:39.292112 +AWS,eu-west-1,r6i.xlarge,spot,NA,0.136993,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728828 +AWS,eu-west-1,r6id.12xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T09:06:28.115787 +AWS,eu-west-1,r6id.12xlarge,reserved_1y,all_upfront,2.813883,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:56.746438 +AWS,eu-west-1,r6id.12xlarge,reserved_1y,no_upfront,2.813883,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:42.371318 +AWS,eu-west-1,r6id.12xlarge,reserved_1y,partial_upfront,2.813883,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:21.067507 +AWS,eu-west-1,r6id.12xlarge,reserved_3y,all_upfront,1.875908,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:51.051366 +AWS,eu-west-1,r6id.12xlarge,reserved_3y,no_upfront,1.875908,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:48.662910 +AWS,eu-west-1,r6id.12xlarge,reserved_3y,partial_upfront,1.875908,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:30.879096 +AWS,eu-west-1,r6id.12xlarge,spot,NA,1.931825,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731541 +AWS,eu-west-1,r6id.16xlarge,on_demand,NA,5.376,USD,AWS Pricing API,2025-11-30T09:06:10.952082 +AWS,eu-west-1,r6id.16xlarge,reserved_1y,all_upfront,3.161073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:39.815852 +AWS,eu-west-1,r6id.16xlarge,reserved_1y,no_upfront,3.161073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:25.150474 +AWS,eu-west-1,r6id.16xlarge,reserved_1y,partial_upfront,3.161073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:04.151090 +AWS,eu-west-1,r6id.16xlarge,reserved_3y,all_upfront,1.053691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:34.467061 +AWS,eu-west-1,r6id.16xlarge,reserved_3y,no_upfront,1.053691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:31.384935 +AWS,eu-west-1,r6id.16xlarge,reserved_3y,partial_upfront,1.053691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:14.030685 +AWS,eu-west-1,r6id.16xlarge,spot,NA,2.553451,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730806 +AWS,eu-west-1,r6id.24xlarge,on_demand,NA,8.064,USD,AWS Pricing API,2025-11-30T09:05:22.984129 +AWS,eu-west-1,r6id.24xlarge,reserved_1y,all_upfront,5.515068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:52.209406 +AWS,eu-west-1,r6id.24xlarge,reserved_1y,no_upfront,5.515068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:37.111572 +AWS,eu-west-1,r6id.24xlarge,reserved_1y,partial_upfront,5.515068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:16.960091 +AWS,eu-west-1,r6id.24xlarge,reserved_3y,all_upfront,1.838356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:47.985446 +AWS,eu-west-1,r6id.24xlarge,reserved_3y,no_upfront,1.838356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:42.986393 +AWS,eu-west-1,r6id.24xlarge,reserved_3y,partial_upfront,1.838356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:26.920885 +AWS,eu-west-1,r6id.24xlarge,spot,NA,3.655968,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728334 +AWS,eu-west-1,r6id.2xlarge,on_demand,NA,0.672,USD,AWS Pricing API,2025-11-30T09:06:13.698649 +AWS,eu-west-1,r6id.2xlarge,reserved_1y,all_upfront,0.468965,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:42.533008 +AWS,eu-west-1,r6id.2xlarge,reserved_1y,no_upfront,0.468965,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:27.881870 +AWS,eu-west-1,r6id.2xlarge,reserved_1y,partial_upfront,0.468965,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:06.863613 +AWS,eu-west-1,r6id.2xlarge,reserved_3y,all_upfront,0.312648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:37.117914 +AWS,eu-west-1,r6id.2xlarge,reserved_3y,no_upfront,0.312648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:34.135179 +AWS,eu-west-1,r6id.2xlarge,reserved_3y,partial_upfront,0.312648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:16.728720 +AWS,eu-west-1,r6id.2xlarge,spot,NA,0.337372,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730888 +AWS,eu-west-1,r6id.32xlarge,on_demand,NA,10.752,USD,AWS Pricing API,2025-11-30T09:06:05.486524 +AWS,eu-west-1,r6id.32xlarge,reserved_1y,all_upfront,7.503606,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:34.382515 +AWS,eu-west-1,r6id.32xlarge,reserved_1y,no_upfront,7.503606,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:19.680327 +AWS,eu-west-1,r6id.32xlarge,reserved_1y,partial_upfront,7.503606,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:58.726543 +AWS,eu-west-1,r6id.32xlarge,reserved_3y,all_upfront,5.002389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:29.131751 +AWS,eu-west-1,r6id.32xlarge,reserved_3y,no_upfront,5.002389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:25.794133 +AWS,eu-west-1,r6id.32xlarge,reserved_3y,partial_upfront,5.002389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:08.650282 +AWS,eu-west-1,r6id.32xlarge,spot,NA,4.952032,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730021 +AWS,eu-west-1,r6id.4xlarge,on_demand,NA,1.344,USD,AWS Pricing API,2025-11-30T09:06:00.137961 +AWS,eu-west-1,r6id.4xlarge,reserved_1y,all_upfront,0.98484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:29.032750 +AWS,eu-west-1,r6id.4xlarge,reserved_1y,no_upfront,0.98484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:14.346799 +AWS,eu-west-1,r6id.4xlarge,reserved_1y,partial_upfront,0.98484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:53.479710 +AWS,eu-west-1,r6id.4xlarge,reserved_3y,all_upfront,0.98484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:23.954327 +AWS,eu-west-1,r6id.4xlarge,reserved_3y,no_upfront,0.98484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:20.422622 +AWS,eu-west-1,r6id.4xlarge,reserved_3y,partial_upfront,0.98484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:03.402307 +AWS,eu-west-1,r6id.4xlarge,spot,NA,0.632939,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729809 +AWS,eu-west-1,r6id.8xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T09:05:22.573260 +AWS,eu-west-1,r6id.8xlarge,reserved_1y,all_upfront,1.580594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:51.797457 +AWS,eu-west-1,r6id.8xlarge,reserved_1y,no_upfront,1.580594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:36.704352 +AWS,eu-west-1,r6id.8xlarge,reserved_1y,partial_upfront,1.580594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:16.559914 +AWS,eu-west-1,r6id.8xlarge,reserved_3y,all_upfront,0.526865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:47.586528 +AWS,eu-west-1,r6id.8xlarge,reserved_3y,no_upfront,0.526865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:42.573416 +AWS,eu-west-1,r6id.8xlarge,reserved_3y,partial_upfront,0.526865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:26.519039 +AWS,eu-west-1,r6id.8xlarge,spot,NA,1.305383,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728309 +AWS,eu-west-1,r6id.large,on_demand,NA,0.168,USD,AWS Pricing API,2025-11-30T09:05:47.972133 +AWS,eu-west-1,r6id.large,reserved_1y,all_upfront,0.134399,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:16.895721 +AWS,eu-west-1,r6id.large,reserved_1y,no_upfront,0.134399,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:02.149195 +AWS,eu-west-1,r6id.large,reserved_1y,partial_upfront,0.134399,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:41.428872 +AWS,eu-west-1,r6id.large,reserved_3y,all_upfront,0.0672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:12.126593 +AWS,eu-west-1,r6id.large,reserved_3y,no_upfront,0.0672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:08.095459 +AWS,eu-west-1,r6id.large,reserved_3y,partial_upfront,0.0672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:51.402335 +AWS,eu-west-1,r6id.large,spot,NA,0.080803,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729345 +AWS,eu-west-1,r6id.xlarge,on_demand,NA,0.336,USD,AWS Pricing API,2025-11-30T09:06:25.536464 +AWS,eu-west-1,r6id.xlarge,reserved_1y,all_upfront,0.201599,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:54.177313 +AWS,eu-west-1,r6id.xlarge,reserved_1y,no_upfront,0.201599,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:39.751888 +AWS,eu-west-1,r6id.xlarge,reserved_1y,partial_upfront,0.201599,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:18.408515 +AWS,eu-west-1,r6id.xlarge,reserved_3y,all_upfront,0.1344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:48.522496 +AWS,eu-west-1,r6id.xlarge,reserved_3y,no_upfront,0.1344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:46.010734 +AWS,eu-west-1,r6id.xlarge,reserved_3y,partial_upfront,0.1344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:28.310602 +AWS,eu-west-1,r6id.xlarge,spot,NA,0.180988,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731477 +AWS,eu-west-1,r6idn.12xlarge,on_demand,NA,5.22288,USD,AWS Pricing API,2025-11-30T09:05:45.766582 +AWS,eu-west-1,r6idn.12xlarge,reserved_1y,all_upfront,6.833105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:14.740450 +AWS,eu-west-1,r6idn.12xlarge,reserved_1y,no_upfront,6.833105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:59.912908 +AWS,eu-west-1,r6idn.12xlarge,reserved_1y,partial_upfront,6.833105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:39.275507 +AWS,eu-west-1,r6idn.12xlarge,reserved_3y,all_upfront,2.277702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:09.923379 +AWS,eu-west-1,r6idn.12xlarge,reserved_3y,no_upfront,2.277702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:05.888236 +AWS,eu-west-1,r6idn.12xlarge,reserved_3y,partial_upfront,2.277702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:49.240349 +AWS,eu-west-1,r6idn.12xlarge,spot,NA,2.430024,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729293 +AWS,eu-west-1,r6idn.16xlarge,on_demand,NA,6.96384,USD,AWS Pricing API,2025-11-30T09:05:25.341494 +AWS,eu-west-1,r6idn.16xlarge,reserved_1y,all_upfront,4.803767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:54.514175 +AWS,eu-west-1,r6idn.16xlarge,reserved_1y,no_upfront,4.803767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:39.466510 +AWS,eu-west-1,r6idn.16xlarge,reserved_1y,partial_upfront,4.803767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:19.241073 +AWS,eu-west-1,r6idn.16xlarge,reserved_3y,all_upfront,1.601256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:50.253728 +AWS,eu-west-1,r6idn.16xlarge,reserved_3y,no_upfront,1.601256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:45.348557 +AWS,eu-west-1,r6idn.16xlarge,reserved_3y,partial_upfront,1.601256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:29.206155 +AWS,eu-west-1,r6idn.16xlarge,spot,NA,3.483978,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728418 +AWS,eu-west-1,r6idn.24xlarge,on_demand,NA,10.44576,USD,AWS Pricing API,2025-11-30T09:05:53.024155 +AWS,eu-west-1,r6idn.24xlarge,reserved_1y,all_upfront,7.72041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:21.891263 +AWS,eu-west-1,r6idn.24xlarge,reserved_1y,no_upfront,7.72041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:07.229702 +AWS,eu-west-1,r6idn.24xlarge,reserved_1y,partial_upfront,7.72041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:46.462965 +AWS,eu-west-1,r6idn.24xlarge,reserved_3y,all_upfront,7.72041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:17.042295 +AWS,eu-west-1,r6idn.24xlarge,reserved_3y,no_upfront,7.72041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:13.261804 +AWS,eu-west-1,r6idn.24xlarge,reserved_3y,partial_upfront,7.72041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:56.386182 +AWS,eu-west-1,r6idn.24xlarge,spot,NA,4.757645,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729520 +AWS,eu-west-1,r6idn.2xlarge,on_demand,NA,0.87048,USD,AWS Pricing API,2025-11-30T09:05:52.478336 +AWS,eu-west-1,r6idn.2xlarge,reserved_1y,all_upfront,0.673527,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:21.347687 +AWS,eu-west-1,r6idn.2xlarge,reserved_1y,no_upfront,0.673527,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:06.680688 +AWS,eu-west-1,r6idn.2xlarge,reserved_1y,partial_upfront,0.673527,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:45.921429 +AWS,eu-west-1,r6idn.2xlarge,reserved_3y,all_upfront,0.336769,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:16.513442 +AWS,eu-west-1,r6idn.2xlarge,reserved_3y,no_upfront,0.336769,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:12.707937 +AWS,eu-west-1,r6idn.2xlarge,reserved_3y,partial_upfront,0.336769,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:55.846710 +AWS,eu-west-1,r6idn.2xlarge,spot,NA,0.467056,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729531 +AWS,eu-west-1,r6idn.32xlarge,on_demand,NA,13.92768,USD,AWS Pricing API,2025-11-30T09:06:23.046198 +AWS,eu-west-1,r6idn.32xlarge,reserved_1y,all_upfront,10.777187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:51.746685 +AWS,eu-west-1,r6idn.32xlarge,reserved_1y,no_upfront,10.777187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:37.266627 +AWS,eu-west-1,r6idn.32xlarge,reserved_1y,partial_upfront,10.777187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:15.987745 +AWS,eu-west-1,r6idn.32xlarge,reserved_3y,all_upfront,5.388602,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:46.132502 +AWS,eu-west-1,r6idn.32xlarge,reserved_3y,no_upfront,5.388602,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:43.538722 +AWS,eu-west-1,r6idn.32xlarge,reserved_3y,partial_upfront,5.388602,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:25.890002 +AWS,eu-west-1,r6idn.32xlarge,spot,NA,6.422908,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731318 +AWS,eu-west-1,r6idn.4xlarge,on_demand,NA,1.74096,USD,AWS Pricing API,2025-11-30T09:05:25.903518 +AWS,eu-west-1,r6idn.4xlarge,reserved_1y,all_upfront,1.28673,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:55.054638 +AWS,eu-west-1,r6idn.4xlarge,reserved_1y,no_upfront,1.28673,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:40.015723 +AWS,eu-west-1,r6idn.4xlarge,reserved_1y,partial_upfront,1.28673,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:19.779434 +AWS,eu-west-1,r6idn.4xlarge,reserved_3y,all_upfront,1.28673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:50.796413 +AWS,eu-west-1,r6idn.4xlarge,reserved_3y,no_upfront,1.28673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:45.904145 +AWS,eu-west-1,r6idn.4xlarge,reserved_3y,partial_upfront,1.28673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:29.754322 +AWS,eu-west-1,r6idn.4xlarge,spot,NA,0.898477,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728429 +AWS,eu-west-1,r6idn.8xlarge,on_demand,NA,3.48192,USD,AWS Pricing API,2025-11-30T09:06:13.967479 +AWS,eu-west-1,r6idn.8xlarge,reserved_1y,all_upfront,2.57347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:42.809418 +AWS,eu-west-1,r6idn.8xlarge,reserved_1y,no_upfront,2.57347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:28.162045 +AWS,eu-west-1,r6idn.8xlarge,reserved_1y,partial_upfront,2.57347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:07.133326 +AWS,eu-west-1,r6idn.8xlarge,reserved_3y,all_upfront,2.57347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:37.384818 +AWS,eu-west-1,r6idn.8xlarge,reserved_3y,no_upfront,2.57347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:34.412558 +AWS,eu-west-1,r6idn.8xlarge,reserved_3y,partial_upfront,2.57347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:16.997581 +AWS,eu-west-1,r6idn.8xlarge,spot,NA,1.785639,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730920 +AWS,eu-west-1,r6idn.large,on_demand,NA,0.21762,USD,AWS Pricing API,2025-11-30T09:05:45.627504 +AWS,eu-west-1,r6idn.large,reserved_1y,all_upfront,0.16084,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:14.602994 +AWS,eu-west-1,r6idn.large,reserved_1y,no_upfront,0.16084,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:59.774954 +AWS,eu-west-1,r6idn.large,reserved_1y,partial_upfront,0.16084,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:39.141690 +AWS,eu-west-1,r6idn.large,reserved_3y,all_upfront,0.16084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:09.792107 +AWS,eu-west-1,r6idn.large,reserved_3y,no_upfront,0.16084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:05.749841 +AWS,eu-west-1,r6idn.large,reserved_3y,partial_upfront,0.16084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:49.106684 +AWS,eu-west-1,r6idn.large,spot,NA,0.112415,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729276 +AWS,eu-west-1,r6idn.xlarge,on_demand,NA,0.43524,USD,AWS Pricing API,2025-11-30T09:05:37.481372 +AWS,eu-west-1,r6idn.xlarge,reserved_1y,all_upfront,0.2742,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:06.576238 +AWS,eu-west-1,r6idn.xlarge,reserved_1y,no_upfront,0.2742,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:51.700059 +AWS,eu-west-1,r6idn.xlarge,reserved_1y,partial_upfront,0.2742,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:31.161450 +AWS,eu-west-1,r6idn.xlarge,reserved_3y,all_upfront,0.2742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:01.963341 +AWS,eu-west-1,r6idn.xlarge,reserved_3y,no_upfront,0.2742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:57.507999 +AWS,eu-west-1,r6idn.xlarge,reserved_3y,partial_upfront,0.2742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:41.128659 +AWS,eu-west-1,r6idn.xlarge,spot,NA,0.240498,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728910 +AWS,eu-west-1,r6in.12xlarge,on_demand,NA,4.68936,USD,AWS Pricing API,2025-11-30T09:05:30.056738 +AWS,eu-west-1,r6in.12xlarge,reserved_1y,all_upfront,2.757306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:59.126035 +AWS,eu-west-1,r6in.12xlarge,reserved_1y,no_upfront,2.757306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:44.261116 +AWS,eu-west-1,r6in.12xlarge,reserved_1y,partial_upfront,2.757306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:23.821816 +AWS,eu-west-1,r6in.12xlarge,reserved_3y,all_upfront,0.919102,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:54.776880 +AWS,eu-west-1,r6in.12xlarge,reserved_3y,no_upfront,0.919102,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:50.037276 +AWS,eu-west-1,r6in.12xlarge,reserved_3y,partial_upfront,0.919102,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:33.765560 +AWS,eu-west-1,r6in.12xlarge,spot,NA,2.3703,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728600 +AWS,eu-west-1,r6in.16xlarge,on_demand,NA,6.25248,USD,AWS Pricing API,2025-11-30T09:05:21.628825 +AWS,eu-west-1,r6in.16xlarge,reserved_1y,all_upfront,3.93906,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:50.842085 +AWS,eu-west-1,r6in.16xlarge,reserved_1y,no_upfront,3.93906,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:35.757082 +AWS,eu-west-1,r6in.16xlarge,reserved_1y,partial_upfront,3.93906,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:15.632275 +AWS,eu-west-1,r6in.16xlarge,reserved_3y,all_upfront,3.93906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:46.669226 +AWS,eu-west-1,r6in.16xlarge,reserved_3y,no_upfront,3.93906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:41.605995 +AWS,eu-west-1,r6in.16xlarge,reserved_3y,partial_upfront,3.93906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:25.578836 +AWS,eu-west-1,r6in.16xlarge,spot,NA,3.065607,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728293 +AWS,eu-west-1,r6in.24xlarge,on_demand,NA,9.37872,USD,AWS Pricing API,2025-11-30T09:06:22.224692 +AWS,eu-west-1,r6in.24xlarge,reserved_1y,all_upfront,6.91207,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:50.941478 +AWS,eu-west-1,r6in.24xlarge,reserved_1y,no_upfront,6.91207,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:36.449056 +AWS,eu-west-1,r6in.24xlarge,reserved_1y,partial_upfront,6.91207,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:15.175486 +AWS,eu-west-1,r6in.24xlarge,reserved_3y,all_upfront,6.91207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:45.329908 +AWS,eu-west-1,r6in.24xlarge,reserved_3y,no_upfront,6.91207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:42.716961 +AWS,eu-west-1,r6in.24xlarge,reserved_3y,partial_upfront,6.91207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:25.076211 +AWS,eu-west-1,r6in.24xlarge,spot,NA,4.447811,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731248 +AWS,eu-west-1,r6in.2xlarge,on_demand,NA,0.78156,USD,AWS Pricing API,2025-11-30T09:06:25.115596 +AWS,eu-west-1,r6in.2xlarge,reserved_1y,all_upfront,0.593934,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:53.777674 +AWS,eu-west-1,r6in.2xlarge,reserved_1y,no_upfront,0.593934,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:39.347578 +AWS,eu-west-1,r6in.2xlarge,reserved_1y,partial_upfront,0.593934,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:18.006909 +AWS,eu-west-1,r6in.2xlarge,reserved_3y,all_upfront,0.296978,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:48.131229 +AWS,eu-west-1,r6in.2xlarge,reserved_3y,no_upfront,0.296978,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:45.602867 +AWS,eu-west-1,r6in.2xlarge,reserved_3y,partial_upfront,0.296978,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:27.896927 +AWS,eu-west-1,r6in.2xlarge,spot,NA,0.395927,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731394 +AWS,eu-west-1,r6in.32xlarge,on_demand,NA,12.50496,USD,AWS Pricing API,2025-11-30T09:06:05.206669 +AWS,eu-west-1,r6in.32xlarge,reserved_1y,all_upfront,9.503794,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:34.112499 +AWS,eu-west-1,r6in.32xlarge,reserved_1y,no_upfront,9.503794,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:19.406819 +AWS,eu-west-1,r6in.32xlarge,reserved_1y,partial_upfront,9.503794,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:58.458904 +AWS,eu-west-1,r6in.32xlarge,reserved_3y,all_upfront,4.751891,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:28.866513 +AWS,eu-west-1,r6in.32xlarge,reserved_3y,no_upfront,4.751891,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:25.518223 +AWS,eu-west-1,r6in.32xlarge,reserved_3y,partial_upfront,4.751891,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:08.382755 +AWS,eu-west-1,r6in.32xlarge,spot,NA,6.158649,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730004 +AWS,eu-west-1,r6in.4xlarge,on_demand,NA,1.56312,USD,AWS Pricing API,2025-11-30T09:06:27.579217 +AWS,eu-west-1,r6in.4xlarge,reserved_1y,all_upfront,1.15201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:56.198176 +AWS,eu-west-1,r6in.4xlarge,reserved_1y,no_upfront,1.15201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:41.816496 +AWS,eu-west-1,r6in.4xlarge,reserved_1y,partial_upfront,1.15201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:20.523500 +AWS,eu-west-1,r6in.4xlarge,reserved_3y,all_upfront,1.15201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:50.518639 +AWS,eu-west-1,r6in.4xlarge,reserved_3y,no_upfront,1.15201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:48.100795 +AWS,eu-west-1,r6in.4xlarge,reserved_3y,partial_upfront,1.15201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:30.336869 +AWS,eu-west-1,r6in.4xlarge,spot,NA,0.722616,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731483 +AWS,eu-west-1,r6in.8xlarge,on_demand,NA,3.12624,USD,AWS Pricing API,2025-11-30T09:06:15.477443 +AWS,eu-west-1,r6in.8xlarge,reserved_1y,all_upfront,1.87577,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:44.297145 +AWS,eu-west-1,r6in.8xlarge,reserved_1y,no_upfront,1.87577,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:29.688625 +AWS,eu-west-1,r6in.8xlarge,reserved_1y,partial_upfront,1.87577,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:08.598916 +AWS,eu-west-1,r6in.8xlarge,reserved_3y,all_upfront,1.250503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:38.842002 +AWS,eu-west-1,r6in.8xlarge,reserved_3y,no_upfront,1.250503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:35.937964 +AWS,eu-west-1,r6in.8xlarge,reserved_3y,partial_upfront,1.250503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:18.491990 +AWS,eu-west-1,r6in.8xlarge,spot,NA,1.435618,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730958 +AWS,eu-west-1,r6in.large,on_demand,NA,0.19539,USD,AWS Pricing API,2025-11-30T09:06:30.334699 +AWS,eu-west-1,r6in.large,reserved_1y,all_upfront,0.251027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:58.932629 +AWS,eu-west-1,r6in.large,reserved_1y,no_upfront,0.251027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:44.565884 +AWS,eu-west-1,r6in.large,reserved_1y,partial_upfront,0.251027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:23.235607 +AWS,eu-west-1,r6in.large,reserved_3y,all_upfront,0.083676,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:53.188755 +AWS,eu-west-1,r6in.large,reserved_3y,no_upfront,0.083676,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:50.876455 +AWS,eu-west-1,r6in.large,reserved_3y,partial_upfront,0.083676,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:33.015135 +AWS,eu-west-1,r6in.large,spot,NA,0.087059,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731638 +AWS,eu-west-1,r6in.xlarge,on_demand,NA,0.39078,USD,AWS Pricing API,2025-11-30T09:06:27.980154 +AWS,eu-west-1,r6in.xlarge,reserved_1y,all_upfront,0.268836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:56.611421 +AWS,eu-west-1,r6in.xlarge,reserved_1y,no_upfront,0.268836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:42.235424 +AWS,eu-west-1,r6in.xlarge,reserved_1y,partial_upfront,0.268836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:20.934281 +AWS,eu-west-1,r6in.xlarge,reserved_3y,all_upfront,0.089612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:50.918522 +AWS,eu-west-1,r6in.xlarge,reserved_3y,no_upfront,0.089612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:48.527808 +AWS,eu-west-1,r6in.xlarge,reserved_3y,partial_upfront,0.089612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:30.743563 +AWS,eu-west-1,r6in.xlarge,spot,NA,0.195827,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731508 +AWS,eu-west-1,r7a.48xlarge,on_demand,NA,16.34496,USD,AWS Pricing API,2025-11-30T09:05:28.099890 +AWS,eu-west-1,r7a.48xlarge,reserved_1y,all_upfront,13.729814,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:57.219940 +AWS,eu-west-1,r7a.48xlarge,reserved_1y,no_upfront,13.729814,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:42.321751 +AWS,eu-west-1,r7a.48xlarge,reserved_1y,partial_upfront,13.729814,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:21.931144 +AWS,eu-west-1,r7a.48xlarge,reserved_3y,all_upfront,6.864898,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:52.917268 +AWS,eu-west-1,r7a.48xlarge,reserved_3y,no_upfront,6.864898,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:48.112029 +AWS,eu-west-1,r7a.48xlarge,reserved_3y,partial_upfront,6.864898,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:31.880348 +AWS,eu-west-1,r7a.48xlarge,spot,NA,7.039845,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728527 +AWS,eu-west-1,r7g.12xlarge,on_demand,NA,2.8764,USD,AWS Pricing API,2025-11-30T09:05:52.206159 +AWS,eu-west-1,r7g.12xlarge,reserved_1y,all_upfront,1.9027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:21.077969 +AWS,eu-west-1,r7g.12xlarge,reserved_1y,no_upfront,1.9027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:06.405565 +AWS,eu-west-1,r7g.12xlarge,reserved_1y,partial_upfront,1.9027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:45.649935 +AWS,eu-west-1,r7g.12xlarge,reserved_3y,all_upfront,1.9027,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:16.249169 +AWS,eu-west-1,r7g.12xlarge,reserved_3y,no_upfront,1.9027,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:12.432984 +AWS,eu-west-1,r7g.12xlarge,reserved_3y,partial_upfront,1.9027,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:55.579703 +AWS,eu-west-1,r7g.12xlarge,spot,NA,1.277946,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729508 +AWS,eu-west-1,r7g.16xlarge,on_demand,NA,3.8352,USD,AWS Pricing API,2025-11-30T09:05:37.213159 +AWS,eu-west-1,r7g.16xlarge,reserved_1y,all_upfront,2.7786,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:06.307325 +AWS,eu-west-1,r7g.16xlarge,reserved_1y,no_upfront,2.7786,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:51.428858 +AWS,eu-west-1,r7g.16xlarge,reserved_1y,partial_upfront,2.7786,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:30.893182 +AWS,eu-west-1,r7g.16xlarge,reserved_3y,all_upfront,2.7786,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:01.684589 +AWS,eu-west-1,r7g.16xlarge,reserved_3y,no_upfront,2.7786,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:57.232599 +AWS,eu-west-1,r7g.16xlarge,reserved_3y,partial_upfront,2.7786,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:40.763072 +AWS,eu-west-1,r7g.16xlarge,spot,NA,1.678684,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728898 +AWS,eu-west-1,r7g.2xlarge,on_demand,NA,0.4794,USD,AWS Pricing API,2025-11-30T09:05:45.490407 +AWS,eu-west-1,r7g.2xlarge,reserved_1y,all_upfront,0.3473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:14.470759 +AWS,eu-west-1,r7g.2xlarge,reserved_1y,no_upfront,0.3473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:59.637722 +AWS,eu-west-1,r7g.2xlarge,reserved_1y,partial_upfront,0.3473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:39.005145 +AWS,eu-west-1,r7g.2xlarge,reserved_3y,all_upfront,0.3473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:09.661939 +AWS,eu-west-1,r7g.2xlarge,reserved_3y,no_upfront,0.3473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:05.611725 +AWS,eu-west-1,r7g.2xlarge,reserved_3y,partial_upfront,0.3473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:48.970122 +AWS,eu-west-1,r7g.2xlarge,spot,NA,0.219222,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729233 +AWS,eu-west-1,r7g.4xlarge,on_demand,NA,0.9588,USD,AWS Pricing API,2025-11-30T09:05:35.835321 +AWS,eu-west-1,r7g.4xlarge,reserved_1y,all_upfront,1.135616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:04.866910 +AWS,eu-west-1,r7g.4xlarge,reserved_1y,no_upfront,1.135616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:50.077994 +AWS,eu-west-1,r7g.4xlarge,reserved_1y,partial_upfront,1.135616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:29.520830 +AWS,eu-west-1,r7g.4xlarge,reserved_3y,all_upfront,0.378539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:00.353936 +AWS,eu-west-1,r7g.4xlarge,reserved_3y,no_upfront,0.378539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:55.854008 +AWS,eu-west-1,r7g.4xlarge,reserved_3y,partial_upfront,0.378539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:39.424296 +AWS,eu-west-1,r7g.4xlarge,spot,NA,0.44045,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728793 +AWS,eu-west-1,r7g.8xlarge,on_demand,NA,1.9176,USD,AWS Pricing API,2025-11-30T09:06:08.228930 +AWS,eu-west-1,r7g.8xlarge,reserved_1y,all_upfront,2.722945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:37.112009 +AWS,eu-west-1,r7g.8xlarge,reserved_1y,no_upfront,2.722945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:22.423450 +AWS,eu-west-1,r7g.8xlarge,reserved_1y,partial_upfront,2.722945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:01.419549 +AWS,eu-west-1,r7g.8xlarge,reserved_3y,all_upfront,0.907648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:31.802247 +AWS,eu-west-1,r7g.8xlarge,reserved_3y,no_upfront,0.907648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:28.561048 +AWS,eu-west-1,r7g.8xlarge,reserved_3y,partial_upfront,0.907648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:11.341044 +AWS,eu-west-1,r7g.8xlarge,spot,NA,0.877693,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730645 +AWS,eu-west-1,r7g.large,on_demand,NA,0.1199,USD,AWS Pricing API,2025-11-30T09:06:02.599072 +AWS,eu-west-1,r7g.large,reserved_1y,all_upfront,0.073973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:31.477402 +AWS,eu-west-1,r7g.large,reserved_1y,no_upfront,0.073973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:16.809841 +AWS,eu-west-1,r7g.large,reserved_1y,partial_upfront,0.073973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:55.893981 +AWS,eu-west-1,r7g.large,reserved_3y,all_upfront,0.024658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:26.352071 +AWS,eu-west-1,r7g.large,reserved_3y,no_upfront,0.024658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:22.902869 +AWS,eu-west-1,r7g.large,reserved_3y,partial_upfront,0.024658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:05.824581 +AWS,eu-west-1,r7g.large,spot,NA,0.055618,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729908 +AWS,eu-west-1,r7g.xlarge,on_demand,NA,0.2397,USD,AWS Pricing API,2025-11-30T09:06:05.072727 +AWS,eu-west-1,r7g.xlarge,reserved_1y,all_upfront,0.147945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:33.978647 +AWS,eu-west-1,r7g.xlarge,reserved_1y,no_upfront,0.147945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:19.267898 +AWS,eu-west-1,r7g.xlarge,reserved_1y,partial_upfront,0.147945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:58.325167 +AWS,eu-west-1,r7g.xlarge,reserved_3y,all_upfront,0.049315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:28.734758 +AWS,eu-west-1,r7g.xlarge,reserved_3y,no_upfront,0.049315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:25.381618 +AWS,eu-west-1,r7g.xlarge,reserved_3y,partial_upfront,0.049315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:08.239118 +AWS,eu-west-1,r7g.xlarge,spot,NA,0.111286,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730016 +AWS,eu-west-1,r7gd.12xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T09:06:27.039063 +AWS,eu-west-1,r7gd.12xlarge,reserved_1y,all_upfront,2.13379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:55.662108 +AWS,eu-west-1,r7gd.12xlarge,reserved_1y,no_upfront,2.13379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:41.258758 +AWS,eu-west-1,r7gd.12xlarge,reserved_1y,partial_upfront,2.13379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:19.987187 +AWS,eu-west-1,r7gd.12xlarge,reserved_3y,all_upfront,0.711263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:49.994616 +AWS,eu-west-1,r7gd.12xlarge,reserved_3y,no_upfront,0.711263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:47.542692 +AWS,eu-west-1,r7gd.12xlarge,reserved_3y,partial_upfront,0.711263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:29.797385 +AWS,eu-west-1,r7gd.12xlarge,spot,NA,1.613544,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731489 +AWS,eu-west-1,r7gd.16xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T09:06:22.357939 +AWS,eu-west-1,r7gd.16xlarge,reserved_1y,all_upfront,6.915982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:51.076446 +AWS,eu-west-1,r7gd.16xlarge,reserved_1y,no_upfront,6.915982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:36.584007 +AWS,eu-west-1,r7gd.16xlarge,reserved_1y,partial_upfront,6.915982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:15.308279 +AWS,eu-west-1,r7gd.16xlarge,reserved_3y,all_upfront,2.305327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:45.461063 +AWS,eu-west-1,r7gd.16xlarge,reserved_3y,no_upfront,2.305327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:42.854139 +AWS,eu-west-1,r7gd.16xlarge,reserved_3y,partial_upfront,2.305327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:25.209680 +AWS,eu-west-1,r7gd.16xlarge,spot,NA,2.223942,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731255 +AWS,eu-west-1,r7gd.2xlarge,on_demand,NA,0.6048,USD,AWS Pricing API,2025-11-30T09:05:51.119556 +AWS,eu-west-1,r7gd.2xlarge,reserved_1y,all_upfront,0.422073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:20.006356 +AWS,eu-west-1,r7gd.2xlarge,reserved_1y,no_upfront,0.422073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:05.315934 +AWS,eu-west-1,r7gd.2xlarge,reserved_1y,partial_upfront,0.422073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:44.563368 +AWS,eu-west-1,r7gd.2xlarge,reserved_3y,all_upfront,0.281358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:15.180716 +AWS,eu-west-1,r7gd.2xlarge,reserved_3y,no_upfront,0.281358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:11.334720 +AWS,eu-west-1,r7gd.2xlarge,reserved_3y,partial_upfront,0.281358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:54.491118 +AWS,eu-west-1,r7gd.2xlarge,spot,NA,0.299512,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729502 +AWS,eu-west-1,r7gd.4xlarge,on_demand,NA,1.2096,USD,AWS Pricing API,2025-11-30T09:06:11.635748 +AWS,eu-west-1,r7gd.4xlarge,reserved_1y,all_upfront,0.827283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:40.484605 +AWS,eu-west-1,r7gd.4xlarge,reserved_1y,no_upfront,0.827283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:25.838533 +AWS,eu-west-1,r7gd.4xlarge,reserved_1y,partial_upfront,0.827283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:04.834553 +AWS,eu-west-1,r7gd.4xlarge,reserved_3y,all_upfront,0.275761,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:35.128105 +AWS,eu-west-1,r7gd.4xlarge,reserved_3y,no_upfront,0.275761,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:32.071448 +AWS,eu-west-1,r7gd.4xlarge,reserved_3y,partial_upfront,0.275761,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:14.704415 +AWS,eu-west-1,r7gd.4xlarge,spot,NA,0.536776,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730875 +AWS,eu-west-1,r7gd.8xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T09:06:05.625458 +AWS,eu-west-1,r7gd.8xlarge,reserved_1y,all_upfront,1.688278,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:34.515534 +AWS,eu-west-1,r7gd.8xlarge,reserved_1y,no_upfront,1.688278,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:19.815079 +AWS,eu-west-1,r7gd.8xlarge,reserved_1y,partial_upfront,1.688278,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:58.860671 +AWS,eu-west-1,r7gd.8xlarge,reserved_3y,all_upfront,1.125493,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:29.267749 +AWS,eu-west-1,r7gd.8xlarge,reserved_3y,no_upfront,1.125493,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:25.933271 +AWS,eu-west-1,r7gd.8xlarge,reserved_3y,partial_upfront,1.125493,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:08.783299 +AWS,eu-west-1,r7gd.8xlarge,spot,NA,1.12479,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730028 +AWS,eu-west-1,r7gd.large,on_demand,NA,0.1512,USD,AWS Pricing API,2025-11-30T09:05:29.512802 +AWS,eu-west-1,r7gd.large,reserved_1y,all_upfront,0.1108,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:58.582085 +AWS,eu-west-1,r7gd.large,reserved_1y,no_upfront,0.1108,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:43.705486 +AWS,eu-west-1,r7gd.large,reserved_1y,partial_upfront,0.1108,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:23.282633 +AWS,eu-west-1,r7gd.large,reserved_3y,all_upfront,0.1108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:54.245709 +AWS,eu-west-1,r7gd.large,reserved_3y,no_upfront,0.1108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:49.486873 +AWS,eu-west-1,r7gd.large,reserved_3y,partial_upfront,0.1108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:33.224509 +AWS,eu-west-1,r7gd.large,spot,NA,0.068929,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728612 +AWS,eu-west-1,r7gd.xlarge,on_demand,NA,0.3024,USD,AWS Pricing API,2025-11-30T09:05:39.149056 +AWS,eu-west-1,r7gd.xlarge,reserved_1y,all_upfront,0.177854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:08.201566 +AWS,eu-west-1,r7gd.xlarge,reserved_1y,no_upfront,0.177854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:53.349376 +AWS,eu-west-1,r7gd.xlarge,reserved_1y,partial_upfront,0.177854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:32.789874 +AWS,eu-west-1,r7gd.xlarge,reserved_3y,all_upfront,0.059285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:03.568012 +AWS,eu-west-1,r7gd.xlarge,reserved_3y,no_upfront,0.059285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:59.186897 +AWS,eu-west-1,r7gd.xlarge,reserved_3y,partial_upfront,0.059285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:42.753223 +AWS,eu-west-1,r7gd.xlarge,spot,NA,0.147422,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728982 +AWS,eu-west-1,r7i.12xlarge,on_demand,NA,3.5532,USD,AWS Pricing API,2025-11-30T09:06:14.652250 +AWS,eu-west-1,r7i.12xlarge,reserved_1y,all_upfront,2.402626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:43.483186 +AWS,eu-west-1,r7i.12xlarge,reserved_1y,no_upfront,2.402626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:28.850353 +AWS,eu-west-1,r7i.12xlarge,reserved_1y,partial_upfront,2.402626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:07.796313 +AWS,eu-west-1,r7i.12xlarge,reserved_3y,all_upfront,0.800875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:38.051843 +AWS,eu-west-1,r7i.12xlarge,reserved_3y,no_upfront,0.800875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:35.102627 +AWS,eu-west-1,r7i.12xlarge,reserved_3y,partial_upfront,0.800875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:17.675930 +AWS,eu-west-1,r7i.12xlarge,spot,NA,1.666474,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730952 +AWS,eu-west-1,r7i.16xlarge,on_demand,NA,4.7376,USD,AWS Pricing API,2025-11-30T09:06:12.740645 +AWS,eu-west-1,r7i.16xlarge,reserved_1y,all_upfront,2.47132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:41.570004 +AWS,eu-west-1,r7i.16xlarge,reserved_1y,no_upfront,2.47132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:26.928288 +AWS,eu-west-1,r7i.16xlarge,reserved_1y,partial_upfront,2.47132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:05.913966 +AWS,eu-west-1,r7i.16xlarge,reserved_3y,all_upfront,2.47132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:36.190997 +AWS,eu-west-1,r7i.16xlarge,reserved_3y,no_upfront,2.47132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:33.175051 +AWS,eu-west-1,r7i.16xlarge,reserved_3y,partial_upfront,2.47132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:15.790204 +AWS,eu-west-1,r7i.16xlarge,spot,NA,2.208587,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730869 +AWS,eu-west-1,r7i.24xlarge,on_demand,NA,7.1064,USD,AWS Pricing API,2025-11-30T09:06:09.453135 +AWS,eu-west-1,r7i.24xlarge,reserved_1y,all_upfront,5.969395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:38.324074 +AWS,eu-west-1,r7i.24xlarge,reserved_1y,no_upfront,5.969395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:23.652884 +AWS,eu-west-1,r7i.24xlarge,reserved_1y,partial_upfront,5.969395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:02.662749 +AWS,eu-west-1,r7i.24xlarge,reserved_3y,all_upfront,2.984692,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:33.002122 +AWS,eu-west-1,r7i.24xlarge,reserved_3y,no_upfront,2.984692,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:29.844124 +AWS,eu-west-1,r7i.24xlarge,reserved_3y,partial_upfront,2.984692,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:12.548084 +AWS,eu-west-1,r7i.24xlarge,spot,NA,3.297352,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730688 +AWS,eu-west-1,r7i.2xlarge,on_demand,NA,0.5922,USD,AWS Pricing API,2025-11-30T09:06:11.772537 +AWS,eu-west-1,r7i.2xlarge,reserved_1y,all_upfront,0.30892,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:40.624579 +AWS,eu-west-1,r7i.2xlarge,reserved_1y,no_upfront,0.30892,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:25.976890 +AWS,eu-west-1,r7i.2xlarge,reserved_1y,partial_upfront,0.30892,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:04.972484 +AWS,eu-west-1,r7i.2xlarge,reserved_3y,all_upfront,0.30892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:35.260382 +AWS,eu-west-1,r7i.2xlarge,reserved_3y,no_upfront,0.30892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:32.209932 +AWS,eu-west-1,r7i.2xlarge,reserved_3y,partial_upfront,0.30892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:14.839072 +AWS,eu-west-1,r7i.2xlarge,spot,NA,0.298808,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730857 +AWS,eu-west-1,r7i.48xlarge,on_demand,NA,14.2128,USD,AWS Pricing API,2025-11-30T09:06:32.509332 +AWS,eu-west-1,r7i.48xlarge,reserved_1y,all_upfront,11.9388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:01.099355 +AWS,eu-west-1,r7i.48xlarge,reserved_1y,no_upfront,11.9388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:46.780041 +AWS,eu-west-1,r7i.48xlarge,reserved_1y,partial_upfront,11.9388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:25.411032 +AWS,eu-west-1,r7i.48xlarge,reserved_3y,all_upfront,5.969393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:55.308797 +AWS,eu-west-1,r7i.48xlarge,reserved_3y,no_upfront,5.969393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:53.114396 +AWS,eu-west-1,r7i.48xlarge,reserved_3y,partial_upfront,5.969393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:35.165331 +AWS,eu-west-1,r7i.48xlarge,spot,NA,6.165376,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731725 +AWS,eu-west-1,r7i.4xlarge,on_demand,NA,1.1844,USD,AWS Pricing API,2025-11-30T09:06:09.316942 +AWS,eu-west-1,r7i.4xlarge,reserved_1y,all_upfront,0.817182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:38.189326 +AWS,eu-west-1,r7i.4xlarge,reserved_1y,no_upfront,0.817182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:23.515869 +AWS,eu-west-1,r7i.4xlarge,reserved_1y,partial_upfront,0.817182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:02.526368 +AWS,eu-west-1,r7i.4xlarge,reserved_3y,all_upfront,0.544807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:32.870373 +AWS,eu-west-1,r7i.4xlarge,reserved_3y,no_upfront,0.544807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:29.681985 +AWS,eu-west-1,r7i.4xlarge,reserved_3y,partial_upfront,0.544807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:12.411251 +AWS,eu-west-1,r7i.4xlarge,spot,NA,0.5846,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730705 +AWS,eu-west-1,r7i.8xlarge,on_demand,NA,2.3688,USD,AWS Pricing API,2025-11-30T09:05:25.489007 +AWS,eu-west-1,r7i.8xlarge,reserved_1y,all_upfront,1.601826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:54.650446 +AWS,eu-west-1,r7i.8xlarge,reserved_1y,no_upfront,1.601826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:39.604801 +AWS,eu-west-1,r7i.8xlarge,reserved_1y,partial_upfront,1.601826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:19.375669 +AWS,eu-west-1,r7i.8xlarge,reserved_3y,all_upfront,0.533942,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:50.387726 +AWS,eu-west-1,r7i.8xlarge,reserved_3y,no_upfront,0.533942,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:45.487909 +AWS,eu-west-1,r7i.8xlarge,reserved_3y,partial_upfront,0.533942,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:29.340197 +AWS,eu-west-1,r7i.8xlarge,spot,NA,1.108424,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728435 +AWS,eu-west-1,r7i.large,on_demand,NA,0.14805,USD,AWS Pricing API,2025-11-30T09:05:39.981681 +AWS,eu-west-1,r7i.large,reserved_1y,all_upfront,0.175342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:09.009909 +AWS,eu-west-1,r7i.large,reserved_1y,no_upfront,0.175342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:54.162856 +AWS,eu-west-1,r7i.large,reserved_1y,partial_upfront,0.175342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:33.594742 +AWS,eu-west-1,r7i.large,reserved_3y,all_upfront,0.058447,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:04.359102 +AWS,eu-west-1,r7i.large,reserved_3y,no_upfront,0.058447,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:00.016375 +AWS,eu-west-1,r7i.large,reserved_3y,partial_upfront,0.058447,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:43.565464 +AWS,eu-west-1,r7i.large,spot,NA,0.070096,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728964 +AWS,eu-west-1,r7i.metal-24xl,on_demand,NA,7.1064,USD,AWS Pricing API,2025-11-30T09:05:56.322347 +AWS,eu-west-1,r7i.metal-24xl,reserved_1y,all_upfront,10.09121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:25.129598 +AWS,eu-west-1,r7i.metal-24xl,reserved_1y,no_upfront,10.09121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:10.521774 +AWS,eu-west-1,r7i.metal-24xl,reserved_1y,partial_upfront,10.09121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:49.713191 +AWS,eu-west-1,r7i.metal-24xl,reserved_3y,all_upfront,3.363737,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:20.235311 +AWS,eu-west-1,r7i.metal-24xl,reserved_3y,no_upfront,3.363737,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:16.574159 +AWS,eu-west-1,r7i.metal-24xl,reserved_3y,partial_upfront,3.363737,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:59.622495 +AWS,eu-west-1,r7i.metal-24xl,spot,NA,3.173113,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729672 +AWS,eu-west-1,r7i.metal-48xl,on_demand,NA,14.2128,USD,AWS Pricing API,2025-11-30T09:06:16.177920 +AWS,eu-west-1,r7i.metal-48xl,reserved_1y,all_upfront,8.775,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:44.979714 +AWS,eu-west-1,r7i.metal-48xl,reserved_1y,no_upfront,8.775,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:30.367950 +AWS,eu-west-1,r7i.metal-48xl,reserved_1y,partial_upfront,8.775,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:09.264735 +AWS,eu-west-1,r7i.metal-48xl,reserved_3y,all_upfront,2.925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:39.498874 +AWS,eu-west-1,r7i.metal-48xl,reserved_3y,no_upfront,2.925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:36.628917 +AWS,eu-west-1,r7i.metal-48xl,reserved_3y,partial_upfront,2.925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:19.173383 +AWS,eu-west-1,r7i.metal-48xl,spot,NA,6.386709,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731004 +AWS,eu-west-1,r7i.xlarge,on_demand,NA,0.2961,USD,AWS Pricing API,2025-11-30T09:05:51.655647 +AWS,eu-west-1,r7i.xlarge,reserved_1y,all_upfront,0.21452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:20.540810 +AWS,eu-west-1,r7i.xlarge,reserved_1y,no_upfront,0.21452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:05.855856 +AWS,eu-west-1,r7i.xlarge,reserved_1y,partial_upfront,0.21452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:45.104665 +AWS,eu-west-1,r7i.xlarge,reserved_3y,all_upfront,0.21452,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:15.714149 +AWS,eu-west-1,r7i.xlarge,reserved_3y,no_upfront,0.21452,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:11.882597 +AWS,eu-west-1,r7i.xlarge,reserved_3y,partial_upfront,0.21452,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:55.024453 +AWS,eu-west-1,r7i.xlarge,spot,NA,0.146039,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729491 +AWS,eu-west-1,r7iz.12xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T09:06:07.265277 +AWS,eu-west-1,r7iz.12xlarge,reserved_1y,all_upfront,2.995203,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:36.160357 +AWS,eu-west-1,r7iz.12xlarge,reserved_1y,no_upfront,2.995203,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:21.471300 +AWS,eu-west-1,r7iz.12xlarge,reserved_1y,partial_upfront,2.995203,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:00.472935 +AWS,eu-west-1,r7iz.12xlarge,reserved_3y,all_upfront,1.996801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:30.865426 +AWS,eu-west-1,r7iz.12xlarge,reserved_3y,no_upfront,1.996801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:27.604827 +AWS,eu-west-1,r7iz.12xlarge,reserved_3y,partial_upfront,1.996801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:10.401614 +AWS,eu-west-1,r7iz.12xlarge,spot,NA,2.394692,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730615 +AWS,eu-west-1,r7iz.16xlarge,on_demand,NA,6.656,USD,AWS Pricing API,2025-11-30T09:06:32.100890 +AWS,eu-west-1,r7iz.16xlarge,reserved_1y,all_upfront,5.17838,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:00.694710 +AWS,eu-west-1,r7iz.16xlarge,reserved_1y,no_upfront,5.17838,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:46.372297 +AWS,eu-west-1,r7iz.16xlarge,reserved_1y,partial_upfront,5.17838,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:25.012546 +AWS,eu-west-1,r7iz.16xlarge,reserved_3y,all_upfront,2.589187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:54.912022 +AWS,eu-west-1,r7iz.16xlarge,reserved_3y,no_upfront,2.589187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:52.700034 +AWS,eu-west-1,r7iz.16xlarge,reserved_3y,partial_upfront,2.589187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:34.750636 +AWS,eu-west-1,r7iz.16xlarge,spot,NA,3.150535,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731650 +AWS,eu-west-1,r7iz.2xlarge,on_demand,NA,0.832,USD,AWS Pricing API,2025-11-30T09:06:11.909758 +AWS,eu-west-1,r7iz.2xlarge,reserved_1y,all_upfront,0.489269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:40.761504 +AWS,eu-west-1,r7iz.2xlarge,reserved_1y,no_upfront,0.489269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:26.112538 +AWS,eu-west-1,r7iz.2xlarge,reserved_1y,partial_upfront,0.489269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:05.105625 +AWS,eu-west-1,r7iz.2xlarge,reserved_3y,all_upfront,0.16309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:35.393622 +AWS,eu-west-1,r7iz.2xlarge,reserved_3y,no_upfront,0.16309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:32.350457 +AWS,eu-west-1,r7iz.2xlarge,reserved_3y,partial_upfront,0.16309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:14.971409 +AWS,eu-west-1,r7iz.2xlarge,spot,NA,0.423377,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730837 +AWS,eu-west-1,r7iz.32xlarge,on_demand,NA,13.312,USD,AWS Pricing API,2025-11-30T09:06:30.197601 +AWS,eu-west-1,r7iz.32xlarge,reserved_1y,all_upfront,7.827511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:58.761708 +AWS,eu-west-1,r7iz.32xlarge,reserved_1y,no_upfront,7.827511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:44.428424 +AWS,eu-west-1,r7iz.32xlarge,reserved_1y,partial_upfront,7.827511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:23.100849 +AWS,eu-west-1,r7iz.32xlarge,reserved_3y,all_upfront,2.60917,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:53.056770 +AWS,eu-west-1,r7iz.32xlarge,reserved_3y,no_upfront,2.60917,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:50.739495 +AWS,eu-west-1,r7iz.32xlarge,reserved_3y,partial_upfront,2.60917,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:32.880669 +AWS,eu-west-1,r7iz.32xlarge,spot,NA,6.233685,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731586 +AWS,eu-west-1,r7iz.4xlarge,on_demand,NA,1.664,USD,AWS Pricing API,2025-11-30T09:06:28.249736 +AWS,eu-west-1,r7iz.4xlarge,reserved_1y,all_upfront,1.144749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:56.881934 +AWS,eu-west-1,r7iz.4xlarge,reserved_1y,no_upfront,1.144749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:42.515716 +AWS,eu-west-1,r7iz.4xlarge,reserved_1y,partial_upfront,1.144749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:21.203167 +AWS,eu-west-1,r7iz.4xlarge,reserved_3y,all_upfront,0.381583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:51.184286 +AWS,eu-west-1,r7iz.4xlarge,reserved_3y,no_upfront,0.381583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:48.800624 +AWS,eu-west-1,r7iz.4xlarge,reserved_3y,partial_upfront,0.381583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:31.015067 +AWS,eu-west-1,r7iz.4xlarge,spot,NA,0.808359,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731567 +AWS,eu-west-1,r7iz.8xlarge,on_demand,NA,3.328,USD,AWS Pricing API,2025-11-30T09:05:30.613257 +AWS,eu-west-1,r7iz.8xlarge,reserved_1y,all_upfront,1.996802,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:59.664974 +AWS,eu-west-1,r7iz.8xlarge,reserved_1y,no_upfront,1.996802,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:44.807790 +AWS,eu-west-1,r7iz.8xlarge,reserved_1y,partial_upfront,1.996802,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:24.370003 +AWS,eu-west-1,r7iz.8xlarge,reserved_3y,all_upfront,1.331201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:55.311277 +AWS,eu-west-1,r7iz.8xlarge,reserved_3y,no_upfront,1.331201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:50.591800 +AWS,eu-west-1,r7iz.8xlarge,reserved_3y,partial_upfront,1.331201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:34.297853 +AWS,eu-west-1,r7iz.8xlarge,spot,NA,1.631301,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728670 +AWS,eu-west-1,r7iz.xlarge,on_demand,NA,0.416,USD,AWS Pricing API,2025-11-30T09:06:16.860123 +AWS,eu-west-1,r7iz.xlarge,reserved_1y,all_upfront,0.30663,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:45.650086 +AWS,eu-west-1,r7iz.xlarge,reserved_1y,no_upfront,0.30663,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:31.063703 +AWS,eu-west-1,r7iz.xlarge,reserved_1y,partial_upfront,0.30663,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:09.931108 +AWS,eu-west-1,r7iz.xlarge,reserved_3y,all_upfront,0.30663,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:40.159999 +AWS,eu-west-1,r7iz.xlarge,reserved_3y,no_upfront,0.30663,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:37.327358 +AWS,eu-west-1,r7iz.xlarge,reserved_3y,partial_upfront,0.30663,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:19.847354 +AWS,eu-west-1,r7iz.xlarge,spot,NA,0.214608,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731011 +AWS,eu-west-1,r8g.12xlarge,on_demand,NA,3.16416,USD,AWS Pricing API,2025-11-30T09:05:58.474802 +AWS,eu-west-1,r8g.12xlarge,reserved_1y,all_upfront,1.65048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:27.409207 +AWS,eu-west-1,r8g.12xlarge,reserved_1y,no_upfront,1.65048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:12.705253 +AWS,eu-west-1,r8g.12xlarge,reserved_1y,partial_upfront,1.65048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:51.862736 +AWS,eu-west-1,r8g.12xlarge,reserved_3y,all_upfront,1.65048,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:22.368280 +AWS,eu-west-1,r8g.12xlarge,reserved_3y,no_upfront,1.65048,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:18.774028 +AWS,eu-west-1,r8g.12xlarge,reserved_3y,partial_upfront,1.65048,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:01.768814 +AWS,eu-west-1,r8g.12xlarge,spot,NA,1.493132,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729740 +AWS,eu-west-1,r8g.16xlarge,on_demand,NA,4.21888,USD,AWS Pricing API,2025-11-30T09:06:21.762681 +AWS,eu-west-1,r8g.16xlarge,reserved_1y,all_upfront,3.05658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:50.540855 +AWS,eu-west-1,r8g.16xlarge,reserved_1y,no_upfront,3.05658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:36.033848 +AWS,eu-west-1,r8g.16xlarge,reserved_1y,partial_upfront,3.05658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:14.767028 +AWS,eu-west-1,r8g.16xlarge,reserved_3y,all_upfront,3.05658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:44.933440 +AWS,eu-west-1,r8g.16xlarge,reserved_3y,no_upfront,3.05658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:42.302690 +AWS,eu-west-1,r8g.16xlarge,reserved_3y,partial_upfront,3.05658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:24.670770 +AWS,eu-west-1,r8g.16xlarge,spot,NA,1.96756,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731293 +AWS,eu-west-1,r8g.24xlarge,on_demand,NA,6.32832,USD,AWS Pricing API,2025-11-30T09:05:49.759743 +AWS,eu-west-1,r8g.24xlarge,reserved_1y,all_upfront,4.279224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:18.652623 +AWS,eu-west-1,r8g.24xlarge,reserved_1y,no_upfront,4.279224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:03.946935 +AWS,eu-west-1,r8g.24xlarge,reserved_1y,partial_upfront,4.279224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:43.218483 +AWS,eu-west-1,r8g.24xlarge,reserved_3y,all_upfront,1.426408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:13.849299 +AWS,eu-west-1,r8g.24xlarge,reserved_3y,no_upfront,1.426408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:09.922111 +AWS,eu-west-1,r8g.24xlarge,reserved_3y,partial_upfront,1.426408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:53.148856 +AWS,eu-west-1,r8g.24xlarge,spot,NA,2.954701,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729452 +AWS,eu-west-1,r8g.2xlarge,on_demand,NA,0.52736,USD,AWS Pricing API,2025-11-30T09:06:02.326892 +AWS,eu-west-1,r8g.2xlarge,reserved_1y,all_upfront,0.34885,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:31.209728 +AWS,eu-west-1,r8g.2xlarge,reserved_1y,no_upfront,0.34885,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:16.536917 +AWS,eu-west-1,r8g.2xlarge,reserved_1y,partial_upfront,0.34885,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:55.627976 +AWS,eu-west-1,r8g.2xlarge,reserved_3y,all_upfront,0.34885,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:26.073532 +AWS,eu-west-1,r8g.2xlarge,reserved_3y,no_upfront,0.34885,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:22.622854 +AWS,eu-west-1,r8g.2xlarge,reserved_3y,partial_upfront,0.34885,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:05.552432 +AWS,eu-west-1,r8g.2xlarge,spot,NA,0.258367,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729896 +AWS,eu-west-1,r8g.48xlarge,on_demand,NA,12.65664,USD,AWS Pricing API,2025-11-30T09:05:48.257339 +AWS,eu-west-1,r8g.48xlarge,reserved_1y,all_upfront,9.16974,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:17.168128 +AWS,eu-west-1,r8g.48xlarge,reserved_1y,no_upfront,9.16974,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:02.435245 +AWS,eu-west-1,r8g.48xlarge,reserved_1y,partial_upfront,9.16974,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:41.697621 +AWS,eu-west-1,r8g.48xlarge,reserved_3y,all_upfront,9.16974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:12.403668 +AWS,eu-west-1,r8g.48xlarge,reserved_3y,no_upfront,9.16974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:08.384958 +AWS,eu-west-1,r8g.48xlarge,reserved_3y,partial_upfront,9.16974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:51.670758 +AWS,eu-west-1,r8g.48xlarge,spot,NA,5.614882,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729334 +AWS,eu-west-1,r8g.4xlarge,on_demand,NA,1.05472,USD,AWS Pricing API,2025-11-30T09:06:06.858945 +AWS,eu-west-1,r8g.4xlarge,reserved_1y,all_upfront,0.664432,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:35.754412 +AWS,eu-west-1,r8g.4xlarge,reserved_1y,no_upfront,0.664432,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:21.057097 +AWS,eu-west-1,r8g.4xlarge,reserved_1y,partial_upfront,0.664432,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:00.072063 +AWS,eu-west-1,r8g.4xlarge,reserved_3y,all_upfront,0.442971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:30.460073 +AWS,eu-west-1,r8g.4xlarge,reserved_3y,no_upfront,0.442971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:27.178971 +AWS,eu-west-1,r8g.4xlarge,reserved_3y,partial_upfront,0.442971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:09.990765 +AWS,eu-west-1,r8g.4xlarge,spot,NA,0.522321,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730571 +AWS,eu-west-1,r8g.8xlarge,on_demand,NA,2.10944,USD,AWS Pricing API,2025-11-30T09:05:26.990327 +AWS,eu-west-1,r8g.8xlarge,reserved_1y,all_upfront,1.52829,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:56.141780 +AWS,eu-west-1,r8g.8xlarge,reserved_1y,no_upfront,1.52829,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:41.108425 +AWS,eu-west-1,r8g.8xlarge,reserved_1y,partial_upfront,1.52829,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:20.851631 +AWS,eu-west-1,r8g.8xlarge,reserved_3y,all_upfront,1.52829,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:51.851063 +AWS,eu-west-1,r8g.8xlarge,reserved_3y,no_upfront,1.52829,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:47.009989 +AWS,eu-west-1,r8g.8xlarge,reserved_3y,partial_upfront,1.52829,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:30.818656 +AWS,eu-west-1,r8g.8xlarge,spot,NA,1.113862,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728464 +AWS,eu-west-1,r8g.large,on_demand,NA,0.13184,USD,AWS Pricing API,2025-11-30T09:06:05.349046 +AWS,eu-west-1,r8g.large,reserved_1y,all_upfront,0.08721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:34.248222 +AWS,eu-west-1,r8g.large,reserved_1y,no_upfront,0.08721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:19.544703 +AWS,eu-west-1,r8g.large,reserved_1y,partial_upfront,0.08721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:58.591794 +AWS,eu-west-1,r8g.large,reserved_3y,all_upfront,0.08721,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:28.997759 +AWS,eu-west-1,r8g.large,reserved_3y,no_upfront,0.08721,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:25.654657 +AWS,eu-west-1,r8g.large,reserved_3y,partial_upfront,0.08721,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:08.515404 +AWS,eu-west-1,r8g.large,spot,NA,0.061953,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729999 +AWS,eu-west-1,r8g.xlarge,on_demand,NA,0.26368,USD,AWS Pricing API,2025-11-30T09:05:47.834984 +AWS,eu-west-1,r8g.xlarge,reserved_1y,all_upfront,0.221466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:16.762150 +AWS,eu-west-1,r8g.xlarge,reserved_1y,no_upfront,0.221466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:02.009880 +AWS,eu-west-1,r8g.xlarge,reserved_1y,partial_upfront,0.221466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:41.295787 +AWS,eu-west-1,r8g.xlarge,reserved_3y,all_upfront,0.110735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:11.994303 +AWS,eu-west-1,r8g.xlarge,reserved_3y,no_upfront,0.110735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:07.958268 +AWS,eu-west-1,r8g.xlarge,reserved_3y,partial_upfront,0.110735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:51.269743 +AWS,eu-west-1,r8g.xlarge,spot,NA,0.124419,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729351 +AWS,eu-west-1,r8gd.12xlarge,on_demand,NA,3.9192,USD,AWS Pricing API,2025-11-30T09:06:06.177099 +AWS,eu-west-1,r8gd.12xlarge,spot,NA,1.157445,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730609 +AWS,eu-west-1,r8gd.16xlarge,on_demand,NA,5.2256,USD,AWS Pricing API,2025-11-30T09:05:54.405126 +AWS,eu-west-1,r8gd.16xlarge,spot,NA,1.552513,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729608 +AWS,eu-west-1,r8gd.24xlarge,on_demand,NA,7.8384,USD,AWS Pricing API,2025-11-30T09:05:41.650002 +AWS,eu-west-1,r8gd.24xlarge,spot,NA,2.78664,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729118 +AWS,eu-west-1,r8gd.2xlarge,on_demand,NA,0.6532,USD,AWS Pricing API,2025-11-30T09:05:47.283596 +AWS,eu-west-1,r8gd.2xlarge,spot,NA,0.209382,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729304 +AWS,eu-west-1,r8gd.48xlarge,on_demand,NA,15.6768,USD,AWS Pricing API,2025-11-30T09:06:21.495125 +AWS,eu-west-1,r8gd.48xlarge,spot,NA,6.096986,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731281 +AWS,eu-west-1,r8gd.4xlarge,on_demand,NA,1.3064,USD,AWS Pricing API,2025-11-30T09:06:15.898834 +AWS,eu-west-1,r8gd.4xlarge,spot,NA,0.390994,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731056 +AWS,eu-west-1,r8gd.8xlarge,on_demand,NA,2.6128,USD,AWS Pricing API,2025-11-30T09:05:43.289579 +AWS,eu-west-1,r8gd.8xlarge,spot,NA,0.822394,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729151 +AWS,eu-west-1,r8gd.large,on_demand,NA,0.1633,USD,AWS Pricing API,2025-11-30T09:05:36.109256 +AWS,eu-west-1,r8gd.large,spot,NA,0.047412,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728845 +AWS,eu-west-1,r8gd.xlarge,on_demand,NA,0.3266,USD,AWS Pricing API,2025-11-30T09:05:36.939350 +AWS,eu-west-1,r8gd.xlarge,spot,NA,0.099998,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728879 +AWS,eu-west-1,x2gd.12xlarge,on_demand,NA,4.8,USD,AWS Pricing API,2025-11-30T09:06:08.090351 +AWS,eu-west-1,x2gd.12xlarge,reserved_1y,all_upfront,3.64322,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:36.977971 +AWS,eu-west-1,x2gd.12xlarge,reserved_1y,no_upfront,3.64322,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:22.288079 +AWS,eu-west-1,x2gd.12xlarge,reserved_1y,partial_upfront,3.64322,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:01.282726 +AWS,eu-west-1,x2gd.12xlarge,reserved_3y,all_upfront,1.821607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:31.669062 +AWS,eu-west-1,x2gd.12xlarge,reserved_3y,no_upfront,1.821607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:28.424841 +AWS,eu-west-1,x2gd.12xlarge,reserved_3y,partial_upfront,1.821607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:11.206253 +AWS,eu-west-1,x2gd.12xlarge,spot,NA,2.161551,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.730639 +AWS,eu-west-1,x2gd.16xlarge,on_demand,NA,6.4,USD,AWS Pricing API,2025-11-30T09:06:16.997384 +AWS,eu-west-1,x2gd.16xlarge,reserved_1y,all_upfront,3.9433,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:45.786383 +AWS,eu-west-1,x2gd.16xlarge,reserved_1y,no_upfront,3.9433,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:31.202864 +AWS,eu-west-1,x2gd.16xlarge,reserved_1y,partial_upfront,3.9433,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:10.065122 +AWS,eu-west-1,x2gd.16xlarge,reserved_3y,all_upfront,3.9433,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:40.291566 +AWS,eu-west-1,x2gd.16xlarge,reserved_3y,no_upfront,3.9433,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:37.463985 +AWS,eu-west-1,x2gd.16xlarge,reserved_3y,partial_upfront,3.9433,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:19.986065 +AWS,eu-west-1,x2gd.16xlarge,spot,NA,2.896828,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731017 +AWS,eu-west-1,x2gd.2xlarge,on_demand,NA,0.8,USD,AWS Pricing API,2025-11-30T09:05:59.453998 +AWS,eu-west-1,x2gd.2xlarge,reserved_1y,all_upfront,0.2732,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:28.355193 +AWS,eu-west-1,x2gd.2xlarge,reserved_1y,no_upfront,0.2732,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:13.663942 +AWS,eu-west-1,x2gd.2xlarge,reserved_1y,partial_upfront,0.2732,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:52.806324 +AWS,eu-west-1,x2gd.2xlarge,reserved_3y,all_upfront,0.2732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:23.289941 +AWS,eu-west-1,x2gd.2xlarge,reserved_3y,no_upfront,0.2732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:19.731309 +AWS,eu-west-1,x2gd.2xlarge,reserved_3y,partial_upfront,0.2732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:02.729729 +AWS,eu-west-1,x2gd.2xlarge,spot,NA,0.367742,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.729832 +AWS,eu-west-1,x2gd.4xlarge,on_demand,NA,1.6,USD,AWS Pricing API,2025-11-30T09:06:26.635281 +AWS,eu-west-1,x2gd.4xlarge,reserved_1y,all_upfront,0.920091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:55.258880 +AWS,eu-west-1,x2gd.4xlarge,reserved_1y,no_upfront,0.920091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:40.852642 +AWS,eu-west-1,x2gd.4xlarge,reserved_1y,partial_upfront,0.920091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:19.576857 +AWS,eu-west-1,x2gd.4xlarge,reserved_3y,all_upfront,0.306697,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:49.597693 +AWS,eu-west-1,x2gd.4xlarge,reserved_3y,no_upfront,0.306697,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:47.126682 +AWS,eu-west-1,x2gd.4xlarge,reserved_3y,partial_upfront,0.306697,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:29.386783 +AWS,eu-west-1,x2gd.4xlarge,spot,NA,0.725408,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731450 +AWS,eu-west-1,x2gd.8xlarge,on_demand,NA,3.2,USD,AWS Pricing API,2025-11-30T09:06:17.940915 +AWS,eu-west-1,x2gd.8xlarge,reserved_1y,all_upfront,2.253412,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:46.727640 +AWS,eu-west-1,x2gd.8xlarge,reserved_1y,no_upfront,2.253412,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:32.163813 +AWS,eu-west-1,x2gd.8xlarge,reserved_1y,partial_upfront,2.253412,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:11.007985 +AWS,eu-west-1,x2gd.8xlarge,reserved_3y,all_upfront,1.502271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:41.210836 +AWS,eu-west-1,x2gd.8xlarge,reserved_3y,no_upfront,1.502271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:38.429189 +AWS,eu-west-1,x2gd.8xlarge,reserved_3y,partial_upfront,1.502271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:20.915588 +AWS,eu-west-1,x2gd.8xlarge,spot,NA,1.44628,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731076 +AWS,eu-west-1,x2gd.large,on_demand,NA,0.2,USD,AWS Pricing API,2025-11-30T09:06:18.890956 +AWS,eu-west-1,x2gd.large,reserved_1y,all_upfront,0.126463,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:47.683500 +AWS,eu-west-1,x2gd.large,reserved_1y,no_upfront,0.126463,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:33.132302 +AWS,eu-west-1,x2gd.large,reserved_1y,partial_upfront,0.126463,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:11.944690 +AWS,eu-west-1,x2gd.large,reserved_3y,all_upfront,0.063221,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:42.136594 +AWS,eu-west-1,x2gd.large,reserved_3y,no_upfront,0.063221,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:39.396618 +AWS,eu-west-1,x2gd.large,reserved_3y,partial_upfront,0.063221,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:21.859440 +AWS,eu-west-1,x2gd.large,spot,NA,0.090087,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.731159 +AWS,eu-west-1,x2gd.xlarge,on_demand,NA,0.4,USD,AWS Pricing API,2025-11-30T09:05:31.980920 +AWS,eu-west-1,x2gd.xlarge,reserved_1y,all_upfront,0.446347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:03:01.024592 +AWS,eu-west-1,x2gd.xlarge,reserved_1y,no_upfront,0.446347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:46.176524 +AWS,eu-west-1,x2gd.xlarge,reserved_1y,partial_upfront,0.446347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:25.742444 +AWS,eu-west-1,x2gd.xlarge,reserved_3y,all_upfront,0.148782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:56.639654 +AWS,eu-west-1,x2gd.xlarge,reserved_3y,no_upfront,0.148782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:51.976291 +AWS,eu-west-1,x2gd.xlarge,reserved_3y,partial_upfront,0.148782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:35.642045 +AWS,eu-west-1,x2gd.xlarge,spot,NA,0.188193,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728701 +AWS,eu-west-1,z1d.12xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T09:05:16.839271 +AWS,eu-west-1,z1d.12xlarge,reserved_1y,all_upfront,3.434247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:45.963374 +AWS,eu-west-1,z1d.12xlarge,reserved_1y,no_upfront,3.434247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:30.871044 +AWS,eu-west-1,z1d.12xlarge,reserved_1y,partial_upfront,3.434247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:10.791924 +AWS,eu-west-1,z1d.12xlarge,reserved_3y,all_upfront,1.144749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:41.911065 +AWS,eu-west-1,z1d.12xlarge,reserved_3y,no_upfront,1.144749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:36.672254 +AWS,eu-west-1,z1d.12xlarge,reserved_3y,partial_upfront,1.144749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:20.794724 +AWS,eu-west-1,z1d.12xlarge,spot,NA,2.245241,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728217 +AWS,eu-west-1,z1d.2xlarge,on_demand,NA,0.832,USD,AWS Pricing API,2025-11-30T09:05:20.139380 +AWS,eu-west-1,z1d.2xlarge,reserved_1y,all_upfront,0.524,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:49.353821 +AWS,eu-west-1,z1d.2xlarge,reserved_1y,no_upfront,0.524,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:34.254823 +AWS,eu-west-1,z1d.2xlarge,reserved_1y,partial_upfront,0.524,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:14.148009 +AWS,eu-west-1,z1d.2xlarge,reserved_3y,all_upfront,0.524,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:45.204970 +AWS,eu-west-1,z1d.2xlarge,reserved_3y,no_upfront,0.524,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:40.087054 +AWS,eu-west-1,z1d.2xlarge,reserved_3y,partial_upfront,0.524,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:24.101568 +AWS,eu-west-1,z1d.2xlarge,spot,NA,0.411072,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728239 +AWS,eu-west-1,z1d.3xlarge,on_demand,NA,1.248,USD,AWS Pricing API,2025-11-30T09:05:19.066286 +AWS,eu-west-1,z1d.3xlarge,reserved_1y,all_upfront,0.92,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:48.251098 +AWS,eu-west-1,z1d.3xlarge,reserved_1y,no_upfront,0.92,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:33.169282 +AWS,eu-west-1,z1d.3xlarge,reserved_1y,partial_upfront,0.92,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:13.075170 +AWS,eu-west-1,z1d.3xlarge,reserved_3y,all_upfront,0.92,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:44.155224 +AWS,eu-west-1,z1d.3xlarge,reserved_3y,no_upfront,0.92,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:38.989390 +AWS,eu-west-1,z1d.3xlarge,reserved_3y,partial_upfront,0.92,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:23.038344 +AWS,eu-west-1,z1d.3xlarge,spot,NA,0.607979,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728230 +AWS,eu-west-1,z1d.6xlarge,on_demand,NA,2.496,USD,AWS Pricing API,2025-11-30T09:05:19.200162 +AWS,eu-west-1,z1d.6xlarge,reserved_1y,all_upfront,3.287557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:48.388830 +AWS,eu-west-1,z1d.6xlarge,reserved_1y,no_upfront,3.287557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:33.306798 +AWS,eu-west-1,z1d.6xlarge,reserved_1y,partial_upfront,3.287557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:13.207404 +AWS,eu-west-1,z1d.6xlarge,reserved_3y,all_upfront,1.095852,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:44.286678 +AWS,eu-west-1,z1d.6xlarge,reserved_3y,no_upfront,1.095852,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:39.126918 +AWS,eu-west-1,z1d.6xlarge,reserved_3y,partial_upfront,1.095852,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:23.173573 +AWS,eu-west-1,z1d.6xlarge,spot,NA,1.175403,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728235 +AWS,eu-west-1,z1d.large,on_demand,NA,0.208,USD,AWS Pricing API,2025-11-30T09:05:19.463427 +AWS,eu-west-1,z1d.large,reserved_1y,all_upfront,0.273973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:48.657626 +AWS,eu-west-1,z1d.large,reserved_1y,no_upfront,0.273973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:33.577242 +AWS,eu-west-1,z1d.large,reserved_1y,partial_upfront,0.273973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:13.478328 +AWS,eu-west-1,z1d.large,reserved_3y,all_upfront,0.091324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:44.548717 +AWS,eu-west-1,z1d.large,reserved_3y,no_upfront,0.091324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:39.401810 +AWS,eu-west-1,z1d.large,reserved_3y,partial_upfront,0.091324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:23.440270 +AWS,eu-west-1,z1d.large,spot,NA,0.092387,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728255 +AWS,eu-west-1,z1d.xlarge,on_demand,NA,0.416,USD,AWS Pricing API,2025-11-30T09:05:20.405798 +AWS,eu-west-1,z1d.xlarge,reserved_1y,all_upfront,0.323694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:02:49.622744 +AWS,eu-west-1,z1d.xlarge,reserved_1y,no_upfront,0.323694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:19:34.523101 +AWS,eu-west-1,z1d.xlarge,reserved_1y,partial_upfront,0.323694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:41:14.421001 +AWS,eu-west-1,z1d.xlarge,reserved_3y,all_upfront,0.161898,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:07:45.470129 +AWS,eu-west-1,z1d.xlarge,reserved_3y,no_upfront,0.161898,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:24:40.367108 +AWS,eu-west-1,z1d.xlarge,reserved_3y,partial_upfront,0.161898,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:46:24.367480 +AWS,eu-west-1,z1d.xlarge,spot,NA,0.194934,USD,AWS EC2 API (90-day avg),2025-11-30T09:53:16.728265 +AWS,eu-west-2,c5.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T09:07:26.808047 +AWS,eu-west-2,c5.12xlarge,reserved_1y,all_upfront,1.425342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:55.556336 +AWS,eu-west-2,c5.12xlarge,reserved_1y,no_upfront,1.425342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:41.905566 +AWS,eu-west-2,c5.12xlarge,reserved_1y,partial_upfront,1.425342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:19.522935 +AWS,eu-west-2,c5.12xlarge,reserved_3y,all_upfront,0.475114,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:48.567375 +AWS,eu-west-2,c5.12xlarge,reserved_3y,no_upfront,0.475114,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:48.552812 +AWS,eu-west-2,c5.12xlarge,reserved_3y,partial_upfront,0.475114,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:29.334811 +AWS,eu-west-2,c5.12xlarge,spot,NA,0.802614,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689019 +AWS,eu-west-2,c5.18xlarge,on_demand,NA,3.636,USD,AWS Pricing API,2025-11-30T09:07:35.204952 +AWS,eu-west-2,c5.18xlarge,reserved_1y,all_upfront,2.908621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:04.029851 +AWS,eu-west-2,c5.18xlarge,reserved_1y,no_upfront,2.908621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:50.367396 +AWS,eu-west-2,c5.18xlarge,reserved_1y,partial_upfront,2.908621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:27.894366 +AWS,eu-west-2,c5.18xlarge,reserved_3y,all_upfront,1.454207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:56.858884 +AWS,eu-west-2,c5.18xlarge,reserved_3y,no_upfront,1.454207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:57.112713 +AWS,eu-west-2,c5.18xlarge,reserved_3y,partial_upfront,1.454207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:37.649737 +AWS,eu-west-2,c5.18xlarge,spot,NA,1.137657,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689209 +AWS,eu-west-2,c5.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T09:06:40.108366 +AWS,eu-west-2,c5.24xlarge,reserved_1y,all_upfront,2.850571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:08.776978 +AWS,eu-west-2,c5.24xlarge,reserved_1y,no_upfront,2.850571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:54.439661 +AWS,eu-west-2,c5.24xlarge,reserved_1y,partial_upfront,2.850571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:32.925941 +AWS,eu-west-2,c5.24xlarge,reserved_3y,all_upfront,0.95019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:02.760052 +AWS,eu-west-2,c5.24xlarge,reserved_3y,no_upfront,0.95019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:00.879309 +AWS,eu-west-2,c5.24xlarge,reserved_3y,partial_upfront,0.95019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:42.815498 +AWS,eu-west-2,c5.24xlarge,spot,NA,1.492042,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687890 +AWS,eu-west-2,c5.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T09:07:19.597575 +AWS,eu-west-2,c5.4xlarge,reserved_1y,all_upfront,0.596461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:48.363151 +AWS,eu-west-2,c5.4xlarge,reserved_1y,no_upfront,0.596461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:34.635348 +AWS,eu-west-2,c5.4xlarge,reserved_1y,partial_upfront,0.596461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:12.348530 +AWS,eu-west-2,c5.4xlarge,reserved_3y,all_upfront,0.19882,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:41.513855 +AWS,eu-west-2,c5.4xlarge,reserved_3y,no_upfront,0.19882,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:41.198031 +AWS,eu-west-2,c5.4xlarge,reserved_3y,partial_upfront,0.19882,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:22.209665 +AWS,eu-west-2,c5.4xlarge,spot,NA,0.259255,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688858 +AWS,eu-west-2,c5.9xlarge,on_demand,NA,1.818,USD,AWS Pricing API,2025-11-30T09:06:39.433665 +AWS,eu-west-2,c5.9xlarge,reserved_1y,all_upfront,1.454753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:08.099331 +AWS,eu-west-2,c5.9xlarge,reserved_1y,no_upfront,1.454753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:53.748757 +AWS,eu-west-2,c5.9xlarge,reserved_1y,partial_upfront,1.454753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:32.258515 +AWS,eu-west-2,c5.9xlarge,reserved_3y,all_upfront,0.727584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:02.099770 +AWS,eu-west-2,c5.9xlarge,reserved_3y,no_upfront,0.727584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:00.193248 +AWS,eu-west-2,c5.9xlarge,reserved_3y,partial_upfront,0.727584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:42.152129 +AWS,eu-west-2,c5.9xlarge,spot,NA,0.618161,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687894 +AWS,eu-west-2,c5a.12xlarge,on_demand,NA,2.184,USD,AWS Pricing API,2025-11-30T09:07:35.752642 +AWS,eu-west-2,c5a.12xlarge,reserved_1y,all_upfront,1.284247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:04.576248 +AWS,eu-west-2,c5a.12xlarge,reserved_1y,no_upfront,1.284247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:50.926160 +AWS,eu-west-2,c5a.12xlarge,reserved_1y,partial_upfront,1.284247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:28.431125 +AWS,eu-west-2,c5a.12xlarge,reserved_3y,all_upfront,0.428082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:57.392190 +AWS,eu-west-2,c5a.12xlarge,reserved_3y,no_upfront,0.428082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:57.664319 +AWS,eu-west-2,c5a.12xlarge,reserved_3y,partial_upfront,0.428082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:38.183339 +AWS,eu-west-2,c5a.12xlarge,spot,NA,0.997877,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689196 +AWS,eu-west-2,c5a.16xlarge,on_demand,NA,2.912,USD,AWS Pricing API,2025-11-30T09:06:55.306486 +AWS,eu-west-2,c5a.16xlarge,reserved_1y,all_upfront,2.329146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:24.087796 +AWS,eu-west-2,c5a.16xlarge,reserved_1y,no_upfront,2.329146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:09.962911 +AWS,eu-west-2,c5a.16xlarge,reserved_1y,partial_upfront,2.329146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:48.217886 +AWS,eu-west-2,c5a.16xlarge,reserved_3y,all_upfront,1.164382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:17.789670 +AWS,eu-west-2,c5a.16xlarge,reserved_3y,no_upfront,1.164382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:16.478500 +AWS,eu-west-2,c5a.16xlarge,reserved_3y,partial_upfront,1.164382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:57.997520 +AWS,eu-west-2,c5a.16xlarge,spot,NA,1.024353,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688228 +AWS,eu-west-2,c5a.24xlarge,on_demand,NA,4.368,USD,AWS Pricing API,2025-11-30T09:07:42.027166 +AWS,eu-west-2,c5a.24xlarge,reserved_1y,all_upfront,3.223288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:10.824592 +AWS,eu-west-2,c5a.24xlarge,reserved_1y,no_upfront,3.223288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:57.223999 +AWS,eu-west-2,c5a.24xlarge,reserved_1y,partial_upfront,3.223288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:34.654568 +AWS,eu-west-2,c5a.24xlarge,reserved_3y,all_upfront,1.074429,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:03.592835 +AWS,eu-west-2,c5a.24xlarge,reserved_3y,no_upfront,1.074429,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:04.035053 +AWS,eu-west-2,c5a.24xlarge,reserved_3y,partial_upfront,1.074429,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:44.360175 +AWS,eu-west-2,c5a.24xlarge,spot,NA,1.490602,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689373 +AWS,eu-west-2,c5a.2xlarge,on_demand,NA,0.364,USD,AWS Pricing API,2025-11-30T09:07:25.030118 +AWS,eu-west-2,c5a.2xlarge,reserved_1y,all_upfront,0.2741,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:53.784841 +AWS,eu-west-2,c5a.2xlarge,reserved_1y,no_upfront,0.2741,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:40.135109 +AWS,eu-west-2,c5a.2xlarge,reserved_1y,partial_upfront,0.2741,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:17.770787 +AWS,eu-west-2,c5a.2xlarge,reserved_3y,all_upfront,0.1827,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:46.853089 +AWS,eu-west-2,c5a.2xlarge,reserved_3y,no_upfront,0.1827,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:46.740352 +AWS,eu-west-2,c5a.2xlarge,reserved_3y,partial_upfront,0.1827,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:27.579561 +AWS,eu-west-2,c5a.2xlarge,spot,NA,0.164005,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688967 +AWS,eu-west-2,c5a.4xlarge,on_demand,NA,0.728,USD,AWS Pricing API,2025-11-30T09:06:57.889285 +AWS,eu-west-2,c5a.4xlarge,reserved_1y,all_upfront,0.582758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:26.673225 +AWS,eu-west-2,c5a.4xlarge,reserved_1y,no_upfront,0.582758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:12.582320 +AWS,eu-west-2,c5a.4xlarge,reserved_1y,partial_upfront,0.582758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:50.790147 +AWS,eu-west-2,c5a.4xlarge,reserved_3y,all_upfront,0.291586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:20.310886 +AWS,eu-west-2,c5a.4xlarge,reserved_3y,no_upfront,0.291586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:19.083159 +AWS,eu-west-2,c5a.4xlarge,reserved_3y,partial_upfront,0.291586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:00.576971 +AWS,eu-west-2,c5a.4xlarge,spot,NA,0.3384,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688297 +AWS,eu-west-2,c5a.8xlarge,on_demand,NA,1.456,USD,AWS Pricing API,2025-11-30T09:06:50.580432 +AWS,eu-west-2,c5a.8xlarge,reserved_1y,all_upfront,1.16463,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:19.326370 +AWS,eu-west-2,c5a.8xlarge,reserved_1y,no_upfront,1.16463,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:05.143127 +AWS,eu-west-2,c5a.8xlarge,reserved_1y,partial_upfront,1.16463,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:43.512660 +AWS,eu-west-2,c5a.8xlarge,reserved_3y,all_upfront,0.58221,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:13.132877 +AWS,eu-west-2,c5a.8xlarge,reserved_3y,no_upfront,0.58221,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:11.640218 +AWS,eu-west-2,c5a.8xlarge,reserved_3y,partial_upfront,0.58221,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:53.309462 +AWS,eu-west-2,c5a.8xlarge,spot,NA,0.680837,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688106 +AWS,eu-west-2,c5a.xlarge,on_demand,NA,0.182,USD,AWS Pricing API,2025-11-30T09:06:41.592238 +AWS,eu-west-2,c5a.xlarge,reserved_1y,all_upfront,0.137493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:10.254325 +AWS,eu-west-2,c5a.xlarge,reserved_1y,no_upfront,0.137493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:55.928961 +AWS,eu-west-2,c5a.xlarge,reserved_1y,partial_upfront,0.137493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:34.448182 +AWS,eu-west-2,c5a.xlarge,reserved_3y,all_upfront,0.091831,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:04.222718 +AWS,eu-west-2,c5a.xlarge,reserved_3y,no_upfront,0.091831,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:02.411356 +AWS,eu-west-2,c5a.xlarge,reserved_3y,partial_upfront,0.091831,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:44.297612 +AWS,eu-west-2,c5a.xlarge,spot,NA,0.082794,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687905 +AWS,eu-west-2,c5d.12xlarge,on_demand,NA,2.76,USD,AWS Pricing API,2025-11-30T09:07:47.939462 +AWS,eu-west-2,c5d.12xlarge,reserved_1y,all_upfront,4.183447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:16.788559 +AWS,eu-west-2,c5d.12xlarge,reserved_1y,no_upfront,4.183447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:03.270470 +AWS,eu-west-2,c5d.12xlarge,reserved_1y,partial_upfront,4.183447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:40.568411 +AWS,eu-west-2,c5d.12xlarge,reserved_3y,all_upfront,1.394482,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:09.484121 +AWS,eu-west-2,c5d.12xlarge,reserved_3y,no_upfront,1.394482,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:10.104539 +AWS,eu-west-2,c5d.12xlarge,reserved_3y,partial_upfront,1.394482,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:50.264006 +AWS,eu-west-2,c5d.12xlarge,spot,NA,0.918542,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689503 +AWS,eu-west-2,c5d.18xlarge,on_demand,NA,4.14,USD,AWS Pricing API,2025-11-30T09:07:11.481398 +AWS,eu-west-2,c5d.18xlarge,reserved_1y,all_upfront,3.312018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:40.234606 +AWS,eu-west-2,c5d.18xlarge,reserved_1y,no_upfront,3.312018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:26.399245 +AWS,eu-west-2,c5d.18xlarge,reserved_1y,partial_upfront,3.312018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:04.274871 +AWS,eu-west-2,c5d.18xlarge,reserved_3y,all_upfront,1.656006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:33.549226 +AWS,eu-west-2,c5d.18xlarge,reserved_3y,no_upfront,1.656006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:32.878716 +AWS,eu-west-2,c5d.18xlarge,reserved_3y,partial_upfront,1.656006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:14.140717 +AWS,eu-west-2,c5d.18xlarge,spot,NA,1.438406,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688702 +AWS,eu-west-2,c5d.24xlarge,on_demand,NA,5.52,USD,AWS Pricing API,2025-11-30T09:06:44.259802 +AWS,eu-west-2,c5d.24xlarge,reserved_1y,all_upfront,3.245776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:12.944027 +AWS,eu-west-2,c5d.24xlarge,reserved_1y,no_upfront,3.245776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:58.670554 +AWS,eu-west-2,c5d.24xlarge,reserved_1y,partial_upfront,3.245776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:37.149473 +AWS,eu-west-2,c5d.24xlarge,reserved_3y,all_upfront,1.081925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:06.892759 +AWS,eu-west-2,c5d.24xlarge,reserved_3y,no_upfront,1.081925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:05.153490 +AWS,eu-west-2,c5d.24xlarge,reserved_3y,partial_upfront,1.081925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:46.980617 +AWS,eu-west-2,c5d.24xlarge,spot,NA,1.788281,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687947 +AWS,eu-west-2,c5d.2xlarge,on_demand,NA,0.46,USD,AWS Pricing API,2025-11-30T09:07:31.719794 +AWS,eu-west-2,c5d.2xlarge,reserved_1y,all_upfront,0.270434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:00.466333 +AWS,eu-west-2,c5d.2xlarge,reserved_1y,no_upfront,0.270434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:46.845924 +AWS,eu-west-2,c5d.2xlarge,reserved_1y,partial_upfront,0.270434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:24.403473 +AWS,eu-west-2,c5d.2xlarge,reserved_3y,all_upfront,0.090145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:53.336842 +AWS,eu-west-2,c5d.2xlarge,reserved_3y,no_upfront,0.090145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:53.535528 +AWS,eu-west-2,c5d.2xlarge,reserved_3y,partial_upfront,0.090145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:34.168014 +AWS,eu-west-2,c5d.2xlarge,spot,NA,0.165567,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689127 +AWS,eu-west-2,c5d.4xlarge,on_demand,NA,0.92,USD,AWS Pricing API,2025-11-30T09:06:51.790152 +AWS,eu-west-2,c5d.4xlarge,reserved_1y,all_upfront,0.540982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:20.566871 +AWS,eu-west-2,c5d.4xlarge,reserved_1y,no_upfront,0.540982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:06.404437 +AWS,eu-west-2,c5d.4xlarge,reserved_1y,partial_upfront,0.540982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:44.720695 +AWS,eu-west-2,c5d.4xlarge,reserved_3y,all_upfront,0.180327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:14.341287 +AWS,eu-west-2,c5d.4xlarge,reserved_3y,no_upfront,0.180327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:12.884586 +AWS,eu-west-2,c5d.4xlarge,reserved_3y,partial_upfront,0.180327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:54.516472 +AWS,eu-west-2,c5d.4xlarge,spot,NA,0.364382,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688141 +AWS,eu-west-2,c5d.9xlarge,on_demand,NA,2.07,USD,AWS Pricing API,2025-11-30T09:07:21.202448 +AWS,eu-west-2,c5d.9xlarge,reserved_1y,all_upfront,1.56205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:49.982642 +AWS,eu-west-2,c5d.9xlarge,reserved_1y,no_upfront,1.56205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:36.284119 +AWS,eu-west-2,c5d.9xlarge,reserved_1y,partial_upfront,1.56205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:13.959374 +AWS,eu-west-2,c5d.9xlarge,reserved_3y,all_upfront,1.04135,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:43.100248 +AWS,eu-west-2,c5d.9xlarge,reserved_3y,no_upfront,1.04135,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:42.849169 +AWS,eu-west-2,c5d.9xlarge,reserved_3y,partial_upfront,1.04135,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:23.826281 +AWS,eu-west-2,c5d.9xlarge,spot,NA,0.705386,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688870 +AWS,eu-west-2,c5d.xlarge,on_demand,NA,0.23,USD,AWS Pricing API,2025-11-30T09:07:16.884549 +AWS,eu-west-2,c5d.xlarge,reserved_1y,all_upfront,0.145,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:45.655187 +AWS,eu-west-2,c5d.xlarge,reserved_1y,no_upfront,0.145,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:31.895993 +AWS,eu-west-2,c5d.xlarge,reserved_1y,partial_upfront,0.145,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:09.663153 +AWS,eu-west-2,c5d.xlarge,reserved_3y,all_upfront,0.145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:38.860483 +AWS,eu-west-2,c5d.xlarge,reserved_3y,no_upfront,0.145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:38.416135 +AWS,eu-west-2,c5d.xlarge,reserved_3y,partial_upfront,0.145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:19.526667 +AWS,eu-west-2,c5d.xlarge,spot,NA,0.080531,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688812 +AWS,eu-west-2,c5n.18xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:07:37.236960 +AWS,eu-west-2,c5n.18xlarge,reserved_1y,all_upfront,3.569055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:06.065617 +AWS,eu-west-2,c5n.18xlarge,reserved_1y,no_upfront,3.569055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:52.437950 +AWS,eu-west-2,c5n.18xlarge,reserved_1y,partial_upfront,3.569055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:29.924465 +AWS,eu-west-2,c5n.18xlarge,reserved_3y,all_upfront,1.784352,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:58.858887 +AWS,eu-west-2,c5n.18xlarge,reserved_3y,no_upfront,1.784352,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:59.177803 +AWS,eu-west-2,c5n.18xlarge,reserved_3y,partial_upfront,1.784352,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:39.656087 +AWS,eu-west-2,c5n.18xlarge,spot,NA,2.253014,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689233 +AWS,eu-west-2,c5n.2xlarge,on_demand,NA,0.512,USD,AWS Pricing API,2025-11-30T09:07:47.402992 +AWS,eu-west-2,c5n.2xlarge,reserved_1y,all_upfront,0.307653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:16.249882 +AWS,eu-west-2,c5n.2xlarge,reserved_1y,no_upfront,0.307653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:02.722276 +AWS,eu-west-2,c5n.2xlarge,reserved_1y,partial_upfront,0.307653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:40.032654 +AWS,eu-west-2,c5n.2xlarge,reserved_3y,all_upfront,0.205218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:08.952322 +AWS,eu-west-2,c5n.2xlarge,reserved_3y,no_upfront,0.205218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:09.557542 +AWS,eu-west-2,c5n.2xlarge,reserved_3y,partial_upfront,0.205218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:49.724241 +AWS,eu-west-2,c5n.2xlarge,spot,NA,0.169419,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689499 +AWS,eu-west-2,c5n.4xlarge,on_demand,NA,1.024,USD,AWS Pricing API,2025-11-30T09:07:23.675888 +AWS,eu-west-2,c5n.4xlarge,reserved_1y,all_upfront,0.614192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:52.428772 +AWS,eu-west-2,c5n.4xlarge,reserved_1y,no_upfront,0.614192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:38.761600 +AWS,eu-west-2,c5n.4xlarge,reserved_1y,partial_upfront,0.614192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:16.416236 +AWS,eu-west-2,c5n.4xlarge,reserved_3y,all_upfront,0.409397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:45.514666 +AWS,eu-west-2,c5n.4xlarge,reserved_3y,no_upfront,0.409397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:45.354122 +AWS,eu-west-2,c5n.4xlarge,reserved_3y,partial_upfront,0.409397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:26.239660 +AWS,eu-west-2,c5n.4xlarge,spot,NA,0.419827,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688920 +AWS,eu-west-2,c5n.9xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:07:37.098897 +AWS,eu-west-2,c5n.9xlarge,reserved_1y,all_upfront,1.098,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:05.928862 +AWS,eu-west-2,c5n.9xlarge,reserved_1y,no_upfront,1.098,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:52.293595 +AWS,eu-west-2,c5n.9xlarge,reserved_1y,partial_upfront,1.098,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:29.779317 +AWS,eu-west-2,c5n.9xlarge,reserved_3y,all_upfront,1.098,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:58.725430 +AWS,eu-west-2,c5n.9xlarge,reserved_3y,no_upfront,1.098,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:59.040262 +AWS,eu-west-2,c5n.9xlarge,reserved_3y,partial_upfront,1.098,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:39.522406 +AWS,eu-west-2,c5n.9xlarge,spot,NA,1.092648,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689241 +AWS,eu-west-2,c5n.metal,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:06:45.876443 +AWS,eu-west-2,c5n.metal,reserved_1y,all_upfront,3.644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:14.563218 +AWS,eu-west-2,c5n.metal,reserved_1y,no_upfront,3.644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:00.313034 +AWS,eu-west-2,c5n.metal,reserved_1y,partial_upfront,3.644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:38.790830 +AWS,eu-west-2,c5n.metal,reserved_3y,all_upfront,3.644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:08.480061 +AWS,eu-west-2,c5n.metal,reserved_3y,no_upfront,3.644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:06.811911 +AWS,eu-west-2,c5n.metal,reserved_3y,partial_upfront,3.644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:48.598979 +AWS,eu-west-2,c5n.metal,spot,NA,2.275297,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687995 +AWS,eu-west-2,c5n.xlarge,on_demand,NA,0.256,USD,AWS Pricing API,2025-11-30T09:07:39.168718 +AWS,eu-west-2,c5n.xlarge,reserved_1y,all_upfront,0.192461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:07.950410 +AWS,eu-west-2,c5n.xlarge,reserved_1y,no_upfront,0.192461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:54.339107 +AWS,eu-west-2,c5n.xlarge,reserved_1y,partial_upfront,0.192461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:31.814732 +AWS,eu-west-2,c5n.xlarge,reserved_3y,all_upfront,0.128154,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:00.721413 +AWS,eu-west-2,c5n.xlarge,reserved_3y,no_upfront,0.128154,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:01.104869 +AWS,eu-west-2,c5n.xlarge,reserved_3y,partial_upfront,0.128154,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:41.535272 +AWS,eu-west-2,c5n.xlarge,spot,NA,0.100648,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689288 +AWS,eu-west-2,c6g.12xlarge,on_demand,NA,1.9392,USD,AWS Pricing API,2025-11-30T09:06:51.127803 +AWS,eu-west-2,c6g.12xlarge,reserved_1y,all_upfront,1.45938,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:19.878092 +AWS,eu-west-2,c6g.12xlarge,reserved_1y,no_upfront,1.45938,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:05.726861 +AWS,eu-west-2,c6g.12xlarge,reserved_1y,partial_upfront,1.45938,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:44.051761 +AWS,eu-west-2,c6g.12xlarge,reserved_3y,all_upfront,0.972927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:13.666029 +AWS,eu-west-2,c6g.12xlarge,reserved_3y,no_upfront,0.972927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:12.188631 +AWS,eu-west-2,c6g.12xlarge,reserved_3y,partial_upfront,0.972927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:53.852915 +AWS,eu-west-2,c6g.12xlarge,spot,NA,0.606549,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688128 +AWS,eu-west-2,c6g.16xlarge,on_demand,NA,2.5856,USD,AWS Pricing API,2025-11-30T09:07:09.054707 +AWS,eu-west-2,c6g.16xlarge,reserved_1y,all_upfront,2.0432,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:37.771013 +AWS,eu-west-2,c6g.16xlarge,reserved_1y,no_upfront,2.0432,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:23.924658 +AWS,eu-west-2,c6g.16xlarge,reserved_1y,partial_upfront,2.0432,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:01.845840 +AWS,eu-west-2,c6g.16xlarge,reserved_3y,all_upfront,2.0432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:31.171983 +AWS,eu-west-2,c6g.16xlarge,reserved_3y,no_upfront,2.0432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:30.393469 +AWS,eu-west-2,c6g.16xlarge,reserved_3y,partial_upfront,2.0432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:11.637572 +AWS,eu-west-2,c6g.16xlarge,spot,NA,0.770577,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688619 +AWS,eu-west-2,c6g.2xlarge,on_demand,NA,0.3232,USD,AWS Pricing API,2025-11-30T09:07:21.067239 +AWS,eu-west-2,c6g.2xlarge,reserved_1y,all_upfront,0.193918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:49.847080 +AWS,eu-west-2,c6g.2xlarge,reserved_1y,no_upfront,0.193918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:36.146991 +AWS,eu-west-2,c6g.2xlarge,reserved_1y,partial_upfront,0.193918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:13.825219 +AWS,eu-west-2,c6g.2xlarge,reserved_3y,all_upfront,0.129306,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:42.967949 +AWS,eu-west-2,c6g.2xlarge,reserved_3y,no_upfront,0.129306,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:42.711782 +AWS,eu-west-2,c6g.2xlarge,reserved_3y,partial_upfront,0.129306,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:23.689251 +AWS,eu-west-2,c6g.2xlarge,spot,NA,0.12848,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688878 +AWS,eu-west-2,c6g.4xlarge,on_demand,NA,0.6464,USD,AWS Pricing API,2025-11-30T09:07:39.982583 +AWS,eu-west-2,c6g.4xlarge,reserved_1y,all_upfront,0.38785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:08.781019 +AWS,eu-west-2,c6g.4xlarge,reserved_1y,no_upfront,0.38785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:55.169775 +AWS,eu-west-2,c6g.4xlarge,reserved_1y,partial_upfront,0.38785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:32.620826 +AWS,eu-west-2,c6g.4xlarge,reserved_3y,all_upfront,0.25855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:01.538322 +AWS,eu-west-2,c6g.4xlarge,reserved_3y,no_upfront,0.25855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:01.946431 +AWS,eu-west-2,c6g.4xlarge,reserved_3y,partial_upfront,0.25855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:42.352966 +AWS,eu-west-2,c6g.4xlarge,spot,NA,0.205831,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689304 +AWS,eu-west-2,c6g.8xlarge,on_demand,NA,1.2928,USD,AWS Pricing API,2025-11-30T09:07:07.410426 +AWS,eu-west-2,c6g.8xlarge,reserved_1y,all_upfront,0.775585,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:36.152125 +AWS,eu-west-2,c6g.8xlarge,reserved_1y,no_upfront,0.775585,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:22.259316 +AWS,eu-west-2,c6g.8xlarge,reserved_1y,partial_upfront,0.775585,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:00.217910 +AWS,eu-west-2,c6g.8xlarge,reserved_3y,all_upfront,0.517062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:29.582978 +AWS,eu-west-2,c6g.8xlarge,reserved_3y,no_upfront,0.517062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:28.748440 +AWS,eu-west-2,c6g.8xlarge,reserved_3y,partial_upfront,0.517062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:10.014732 +AWS,eu-west-2,c6g.8xlarge,spot,NA,0.441409,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688593 +AWS,eu-west-2,c6g.xlarge,on_demand,NA,0.1616,USD,AWS Pricing API,2025-11-30T09:07:45.397880 +AWS,eu-west-2,c6g.xlarge,reserved_1y,all_upfront,0.165487,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:14.210855 +AWS,eu-west-2,c6g.xlarge,reserved_1y,no_upfront,0.165487,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:00.636165 +AWS,eu-west-2,c6g.xlarge,reserved_1y,partial_upfront,0.165487,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:38.022455 +AWS,eu-west-2,c6g.xlarge,reserved_3y,all_upfront,0.082762,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:06.964433 +AWS,eu-west-2,c6g.xlarge,reserved_3y,no_upfront,0.082762,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:07.488559 +AWS,eu-west-2,c6g.xlarge,reserved_3y,partial_upfront,0.082762,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:47.721391 +AWS,eu-west-2,c6g.xlarge,spot,NA,0.065324,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689439 +AWS,eu-west-2,c6gd.12xlarge,on_demand,NA,2.208,USD,AWS Pricing API,2025-11-30T09:06:46.013910 +AWS,eu-west-2,c6gd.12xlarge,reserved_1y,all_upfront,1.2294,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:14.697895 +AWS,eu-west-2,c6gd.12xlarge,reserved_1y,no_upfront,1.2294,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:00.452038 +AWS,eu-west-2,c6gd.12xlarge,reserved_1y,partial_upfront,1.2294,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:38.926096 +AWS,eu-west-2,c6gd.12xlarge,reserved_3y,all_upfront,1.2294,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:08.612490 +AWS,eu-west-2,c6gd.12xlarge,reserved_3y,no_upfront,1.2294,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:06.951709 +AWS,eu-west-2,c6gd.12xlarge,reserved_3y,partial_upfront,1.2294,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:48.734933 +AWS,eu-west-2,c6gd.12xlarge,spot,NA,0.660793,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688012 +AWS,eu-west-2,c6gd.16xlarge,on_demand,NA,2.944,USD,AWS Pricing API,2025-11-30T09:07:24.226004 +AWS,eu-west-2,c6gd.16xlarge,reserved_1y,all_upfront,4.462443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:52.967664 +AWS,eu-west-2,c6gd.16xlarge,reserved_1y,no_upfront,4.462443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:39.311893 +AWS,eu-west-2,c6gd.16xlarge,reserved_1y,partial_upfront,4.462443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:16.954809 +AWS,eu-west-2,c6gd.16xlarge,reserved_3y,all_upfront,1.487481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:46.041370 +AWS,eu-west-2,c6gd.16xlarge,reserved_3y,no_upfront,1.487481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:45.908526 +AWS,eu-west-2,c6gd.16xlarge,reserved_3y,partial_upfront,1.487481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:26.778187 +AWS,eu-west-2,c6gd.16xlarge,spot,NA,0.935345,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688948 +AWS,eu-west-2,c6gd.2xlarge,on_demand,NA,0.368,USD,AWS Pricing API,2025-11-30T09:07:34.536364 +AWS,eu-west-2,c6gd.2xlarge,reserved_1y,all_upfront,0.220788,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:03.346670 +AWS,eu-west-2,c6gd.2xlarge,reserved_1y,no_upfront,0.220788,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:49.691153 +AWS,eu-west-2,c6gd.2xlarge,reserved_1y,partial_upfront,0.220788,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:27.222435 +AWS,eu-west-2,c6gd.2xlarge,reserved_3y,all_upfront,0.147196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:56.197205 +AWS,eu-west-2,c6gd.2xlarge,reserved_3y,no_upfront,0.147196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:56.417102 +AWS,eu-west-2,c6gd.2xlarge,reserved_3y,partial_upfront,0.147196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:36.978840 +AWS,eu-west-2,c6gd.2xlarge,spot,NA,0.113467,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689188 +AWS,eu-west-2,c6gd.4xlarge,on_demand,NA,0.736,USD,AWS Pricing API,2025-11-30T09:07:14.040713 +AWS,eu-west-2,c6gd.4xlarge,reserved_1y,all_upfront,1.115639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:42.828360 +AWS,eu-west-2,c6gd.4xlarge,reserved_1y,no_upfront,1.115639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:28.994164 +AWS,eu-west-2,c6gd.4xlarge,reserved_1y,partial_upfront,1.115639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:06.833510 +AWS,eu-west-2,c6gd.4xlarge,reserved_3y,all_upfront,0.37188,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:36.077194 +AWS,eu-west-2,c6gd.4xlarge,reserved_3y,no_upfront,0.37188,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:35.491315 +AWS,eu-west-2,c6gd.4xlarge,reserved_3y,partial_upfront,0.37188,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:16.699902 +AWS,eu-west-2,c6gd.4xlarge,spot,NA,0.223223,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688749 +AWS,eu-west-2,c6gd.8xlarge,on_demand,NA,1.472,USD,AWS Pricing API,2025-11-30T09:07:42.828253 +AWS,eu-west-2,c6gd.8xlarge,reserved_1y,all_upfront,1.177619,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:11.635435 +AWS,eu-west-2,c6gd.8xlarge,reserved_1y,no_upfront,1.177619,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:58.040738 +AWS,eu-west-2,c6gd.8xlarge,reserved_1y,partial_upfront,1.177619,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:35.455707 +AWS,eu-west-2,c6gd.8xlarge,reserved_3y,all_upfront,0.588806,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:04.437508 +AWS,eu-west-2,c6gd.8xlarge,reserved_3y,no_upfront,0.588806,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:04.870469 +AWS,eu-west-2,c6gd.8xlarge,reserved_3y,partial_upfront,0.588806,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:45.176130 +AWS,eu-west-2,c6gd.8xlarge,spot,NA,0.457382,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689377 +AWS,eu-west-2,c6gd.xlarge,on_demand,NA,0.184,USD,AWS Pricing API,2025-11-30T09:07:33.869733 +AWS,eu-west-2,c6gd.xlarge,reserved_1y,all_upfront,0.138806,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:02.675762 +AWS,eu-west-2,c6gd.xlarge,reserved_1y,no_upfront,0.138806,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:49.015092 +AWS,eu-west-2,c6gd.xlarge,reserved_1y,partial_upfront,0.138806,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:26.558433 +AWS,eu-west-2,c6gd.xlarge,reserved_3y,all_upfront,0.092535,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:55.521052 +AWS,eu-west-2,c6gd.xlarge,reserved_3y,no_upfront,0.092535,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:55.728757 +AWS,eu-west-2,c6gd.xlarge,reserved_3y,partial_upfront,0.092535,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:36.315378 +AWS,eu-west-2,c6gd.xlarge,spot,NA,0.063946,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689184 +AWS,eu-west-2,c6i.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T09:07:33.730086 +AWS,eu-west-2,c6i.12xlarge,reserved_1y,all_upfront,1.493493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:02.538327 +AWS,eu-west-2,c6i.12xlarge,reserved_1y,no_upfront,1.493493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:48.879274 +AWS,eu-west-2,c6i.12xlarge,reserved_1y,partial_upfront,1.493493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:26.420912 +AWS,eu-west-2,c6i.12xlarge,reserved_3y,all_upfront,0.497831,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:55.382678 +AWS,eu-west-2,c6i.12xlarge,reserved_3y,no_upfront,0.497831,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:55.589515 +AWS,eu-west-2,c6i.12xlarge,reserved_3y,partial_upfront,0.497831,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:36.183006 +AWS,eu-west-2,c6i.12xlarge,spot,NA,0.861855,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689180 +AWS,eu-west-2,c6i.16xlarge,on_demand,NA,3.232,USD,AWS Pricing API,2025-11-30T09:07:08.649826 +AWS,eu-west-2,c6i.16xlarge,reserved_1y,all_upfront,2.031982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:37.363779 +AWS,eu-west-2,c6i.16xlarge,reserved_1y,no_upfront,2.031982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:23.503744 +AWS,eu-west-2,c6i.16xlarge,reserved_1y,partial_upfront,2.031982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:01.437113 +AWS,eu-west-2,c6i.16xlarge,reserved_3y,all_upfront,1.354661,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:30.773741 +AWS,eu-west-2,c6i.16xlarge,reserved_3y,no_upfront,1.354661,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:29.982768 +AWS,eu-west-2,c6i.16xlarge,reserved_3y,partial_upfront,1.354661,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:11.233908 +AWS,eu-west-2,c6i.16xlarge,spot,NA,1.101155,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688623 +AWS,eu-west-2,c6i.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T09:07:03.299781 +AWS,eu-west-2,c6i.24xlarge,reserved_1y,all_upfront,4.675193,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:32.082409 +AWS,eu-west-2,c6i.24xlarge,reserved_1y,no_upfront,4.675193,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:18.033923 +AWS,eu-west-2,c6i.24xlarge,reserved_1y,partial_upfront,4.675193,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:56.183346 +AWS,eu-west-2,c6i.24xlarge,reserved_3y,all_upfront,2.337598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:25.608724 +AWS,eu-west-2,c6i.24xlarge,reserved_3y,no_upfront,2.337598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:24.602837 +AWS,eu-west-2,c6i.24xlarge,reserved_3y,partial_upfront,2.337598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:05.967369 +AWS,eu-west-2,c6i.24xlarge,spot,NA,1.576303,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688472 +AWS,eu-west-2,c6i.2xlarge,on_demand,NA,0.404,USD,AWS Pricing API,2025-11-30T09:06:47.232122 +AWS,eu-west-2,c6i.2xlarge,reserved_1y,all_upfront,0.291148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:15.914710 +AWS,eu-west-2,c6i.2xlarge,reserved_1y,no_upfront,0.291148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:01.690994 +AWS,eu-west-2,c6i.2xlarge,reserved_1y,partial_upfront,0.291148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:40.146636 +AWS,eu-west-2,c6i.2xlarge,reserved_3y,all_upfront,0.194116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:09.797653 +AWS,eu-west-2,c6i.2xlarge,reserved_3y,no_upfront,0.194116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:08.195731 +AWS,eu-west-2,c6i.2xlarge,reserved_3y,partial_upfront,0.194116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:49.942816 +AWS,eu-west-2,c6i.2xlarge,spot,NA,0.162612,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688043 +AWS,eu-west-2,c6i.32xlarge,on_demand,NA,6.464,USD,AWS Pricing API,2025-11-30T09:07:38.480872 +AWS,eu-west-2,c6i.32xlarge,reserved_1y,all_upfront,3.982763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:07.276004 +AWS,eu-west-2,c6i.32xlarge,reserved_1y,no_upfront,3.982763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:53.653279 +AWS,eu-west-2,c6i.32xlarge,reserved_1y,partial_upfront,3.982763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:31.137660 +AWS,eu-west-2,c6i.32xlarge,reserved_3y,all_upfront,1.327588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:00.058199 +AWS,eu-west-2,c6i.32xlarge,reserved_3y,no_upfront,1.327588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:00.416306 +AWS,eu-west-2,c6i.32xlarge,reserved_3y,partial_upfront,1.327588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:40.853920 +AWS,eu-west-2,c6i.32xlarge,spot,NA,2.042034,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689249 +AWS,eu-west-2,c6i.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T09:06:43.317162 +AWS,eu-west-2,c6i.4xlarge,reserved_1y,all_upfront,0.497831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:12.000421 +AWS,eu-west-2,c6i.4xlarge,reserved_1y,no_upfront,0.497831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:57.698412 +AWS,eu-west-2,c6i.4xlarge,reserved_1y,partial_upfront,0.497831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:36.203052 +AWS,eu-west-2,c6i.4xlarge,reserved_3y,all_upfront,0.165944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:05.955444 +AWS,eu-west-2,c6i.4xlarge,reserved_3y,no_upfront,0.165944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:04.190017 +AWS,eu-west-2,c6i.4xlarge,reserved_3y,partial_upfront,0.165944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:46.043858 +AWS,eu-west-2,c6i.4xlarge,spot,NA,0.291598,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687925 +AWS,eu-west-2,c6i.8xlarge,on_demand,NA,1.616,USD,AWS Pricing API,2025-11-30T09:06:56.939284 +AWS,eu-west-2,c6i.8xlarge,reserved_1y,all_upfront,1.141553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:25.719443 +AWS,eu-west-2,c6i.8xlarge,reserved_1y,no_upfront,1.141553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:11.631602 +AWS,eu-west-2,c6i.8xlarge,reserved_1y,partial_upfront,1.141553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:49.842813 +AWS,eu-west-2,c6i.8xlarge,reserved_3y,all_upfront,0.380518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:19.387127 +AWS,eu-west-2,c6i.8xlarge,reserved_3y,no_upfront,0.380518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:18.127906 +AWS,eu-west-2,c6i.8xlarge,reserved_3y,partial_upfront,0.380518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:59.611874 +AWS,eu-west-2,c6i.8xlarge,spot,NA,0.643217,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688278 +AWS,eu-west-2,c6i.xlarge,on_demand,NA,0.202,USD,AWS Pricing API,2025-11-30T09:07:01.130923 +AWS,eu-west-2,c6i.xlarge,reserved_1y,all_upfront,0.170011,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:29.927520 +AWS,eu-west-2,c6i.xlarge,reserved_1y,no_upfront,0.170011,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:15.853122 +AWS,eu-west-2,c6i.xlarge,reserved_1y,partial_upfront,0.170011,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:54.041170 +AWS,eu-west-2,c6i.xlarge,reserved_3y,all_upfront,0.085004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:23.493352 +AWS,eu-west-2,c6i.xlarge,reserved_3y,no_upfront,0.085004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:22.411827 +AWS,eu-west-2,c6i.xlarge,reserved_3y,partial_upfront,0.085004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:03.824326 +AWS,eu-west-2,c6i.xlarge,spot,NA,0.085234,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688438 +AWS,eu-west-2,c6id.12xlarge,on_demand,NA,2.898,USD,AWS Pricing API,2025-11-30T09:07:29.528244 +AWS,eu-west-2,c6id.12xlarge,reserved_1y,all_upfront,1.738806,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:58.285532 +AWS,eu-west-2,c6id.12xlarge,reserved_1y,no_upfront,1.738806,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:44.659586 +AWS,eu-west-2,c6id.12xlarge,reserved_1y,partial_upfront,1.738806,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:22.239987 +AWS,eu-west-2,c6id.12xlarge,reserved_3y,all_upfront,1.159202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:51.222790 +AWS,eu-west-2,c6id.12xlarge,reserved_3y,no_upfront,1.159202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:51.329479 +AWS,eu-west-2,c6id.12xlarge,reserved_3y,partial_upfront,1.159202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:32.022740 +AWS,eu-west-2,c6id.12xlarge,spot,NA,0.946,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689098 +AWS,eu-west-2,c6id.16xlarge,on_demand,NA,3.864,USD,AWS Pricing API,2025-11-30T09:07:39.029170 +AWS,eu-west-2,c6id.16xlarge,reserved_1y,all_upfront,2.916155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:07.813308 +AWS,eu-west-2,c6id.16xlarge,reserved_1y,no_upfront,2.916155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:54.198940 +AWS,eu-west-2,c6id.16xlarge,reserved_1y,partial_upfront,2.916155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:31.679144 +AWS,eu-west-2,c6id.16xlarge,reserved_3y,all_upfront,1.944085,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:00.587788 +AWS,eu-west-2,c6id.16xlarge,reserved_3y,no_upfront,1.944085,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:00.967042 +AWS,eu-west-2,c6id.16xlarge,reserved_3y,partial_upfront,1.944085,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:41.401693 +AWS,eu-west-2,c6id.16xlarge,spot,NA,1.248263,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689308 +AWS,eu-west-2,c6id.24xlarge,on_demand,NA,5.796,USD,AWS Pricing API,2025-11-30T09:06:57.351583 +AWS,eu-west-2,c6id.24xlarge,reserved_1y,all_upfront,4.636826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:26.129275 +AWS,eu-west-2,c6id.24xlarge,reserved_1y,no_upfront,4.636826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:12.040231 +AWS,eu-west-2,c6id.24xlarge,reserved_1y,partial_upfront,4.636826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:50.247263 +AWS,eu-west-2,c6id.24xlarge,reserved_3y,all_upfront,2.318409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:19.780486 +AWS,eu-west-2,c6id.24xlarge,reserved_3y,no_upfront,2.318409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:18.538301 +AWS,eu-west-2,c6id.24xlarge,reserved_3y,partial_upfront,2.318409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:00.025888 +AWS,eu-west-2,c6id.24xlarge,spot,NA,1.806463,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688305 +AWS,eu-west-2,c6id.2xlarge,on_demand,NA,0.483,USD,AWS Pricing API,2025-11-30T09:07:49.306588 +AWS,eu-west-2,c6id.2xlarge,reserved_1y,all_upfront,0.38274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:18.136185 +AWS,eu-west-2,c6id.2xlarge,reserved_1y,no_upfront,0.38274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:04.635807 +AWS,eu-west-2,c6id.2xlarge,reserved_1y,partial_upfront,0.38274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:41.922320 +AWS,eu-west-2,c6id.2xlarge,reserved_3y,all_upfront,0.38274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:10.805472 +AWS,eu-west-2,c6id.2xlarge,reserved_3y,no_upfront,0.38274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:11.495565 +AWS,eu-west-2,c6id.2xlarge,reserved_3y,partial_upfront,0.38274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:51.642220 +AWS,eu-west-2,c6id.2xlarge,spot,NA,0.167854,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689543 +AWS,eu-west-2,c6id.32xlarge,on_demand,NA,7.728,USD,AWS Pricing API,2025-11-30T09:06:45.331051 +AWS,eu-west-2,c6id.32xlarge,reserved_1y,all_upfront,6.12381,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:14.018095 +AWS,eu-west-2,c6id.32xlarge,reserved_1y,no_upfront,6.12381,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:59.759120 +AWS,eu-west-2,c6id.32xlarge,reserved_1y,partial_upfront,6.12381,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:38.244134 +AWS,eu-west-2,c6id.32xlarge,reserved_3y,all_upfront,6.12381,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:07.950792 +AWS,eu-west-2,c6id.32xlarge,reserved_3y,no_upfront,6.12381,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:06.259606 +AWS,eu-west-2,c6id.32xlarge,reserved_3y,partial_upfront,6.12381,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:48.059268 +AWS,eu-west-2,c6id.32xlarge,spot,NA,2.451819,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687991 +AWS,eu-west-2,c6id.4xlarge,on_demand,NA,0.966,USD,AWS Pricing API,2025-11-30T09:06:52.333058 +AWS,eu-west-2,c6id.4xlarge,reserved_1y,all_upfront,0.76548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:21.106092 +AWS,eu-west-2,c6id.4xlarge,reserved_1y,no_upfront,0.76548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:06.953132 +AWS,eu-west-2,c6id.4xlarge,reserved_1y,partial_upfront,0.76548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:45.262419 +AWS,eu-west-2,c6id.4xlarge,reserved_3y,all_upfront,0.76548,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:14.870779 +AWS,eu-west-2,c6id.4xlarge,reserved_3y,no_upfront,0.76548,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:13.436014 +AWS,eu-west-2,c6id.4xlarge,reserved_3y,partial_upfront,0.76548,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:55.057207 +AWS,eu-west-2,c6id.4xlarge,spot,NA,0.307759,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688169 +AWS,eu-west-2,c6id.8xlarge,on_demand,NA,1.932,USD,AWS Pricing API,2025-11-30T09:07:25.437540 +AWS,eu-west-2,c6id.8xlarge,reserved_1y,all_upfront,1.07575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:54.207806 +AWS,eu-west-2,c6id.8xlarge,reserved_1y,no_upfront,1.07575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:40.540420 +AWS,eu-west-2,c6id.8xlarge,reserved_1y,partial_upfront,1.07575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:18.174828 +AWS,eu-west-2,c6id.8xlarge,reserved_3y,all_upfront,1.07575,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:47.246156 +AWS,eu-west-2,c6id.8xlarge,reserved_3y,no_upfront,1.07575,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:47.149759 +AWS,eu-west-2,c6id.8xlarge,reserved_3y,partial_upfront,1.07575,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:27.982196 +AWS,eu-west-2,c6id.8xlarge,spot,NA,0.655812,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688971 +AWS,eu-west-2,c6id.xlarge,on_demand,NA,0.2415,USD,AWS Pricing API,2025-11-30T09:07:44.183362 +AWS,eu-west-2,c6id.xlarge,reserved_1y,all_upfront,0.19137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:12.985145 +AWS,eu-west-2,c6id.xlarge,reserved_1y,no_upfront,0.19137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:59.399847 +AWS,eu-west-2,c6id.xlarge,reserved_1y,partial_upfront,0.19137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:36.801783 +AWS,eu-west-2,c6id.xlarge,reserved_3y,all_upfront,0.19137,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:05.757316 +AWS,eu-west-2,c6id.xlarge,reserved_3y,no_upfront,0.19137,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:06.239362 +AWS,eu-west-2,c6id.xlarge,reserved_3y,partial_upfront,0.19137,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:46.510995 +AWS,eu-west-2,c6id.xlarge,spot,NA,0.086477,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689389 +AWS,eu-west-2,c6in.12xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T09:06:50.715703 +AWS,eu-west-2,c6in.12xlarge,reserved_1y,all_upfront,4.183105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:19.461055 +AWS,eu-west-2,c6in.12xlarge,reserved_1y,no_upfront,4.183105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:05.280230 +AWS,eu-west-2,c6in.12xlarge,reserved_1y,partial_upfront,4.183105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:43.648363 +AWS,eu-west-2,c6in.12xlarge,reserved_3y,all_upfront,1.394368,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:13.266906 +AWS,eu-west-2,c6in.12xlarge,reserved_3y,no_upfront,1.394368,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:11.777398 +AWS,eu-west-2,c6in.12xlarge,reserved_3y,partial_upfront,1.394368,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:53.442142 +AWS,eu-west-2,c6in.12xlarge,spot,NA,1.2559,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688124 +AWS,eu-west-2,c6in.16xlarge,on_demand,NA,4.3008,USD,AWS Pricing API,2025-11-30T09:07:02.081769 +AWS,eu-west-2,c6in.16xlarge,reserved_1y,all_upfront,3.40133,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:30.872509 +AWS,eu-west-2,c6in.16xlarge,reserved_1y,no_upfront,3.40133,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:16.807845 +AWS,eu-west-2,c6in.16xlarge,reserved_1y,partial_upfront,3.40133,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:54.976925 +AWS,eu-west-2,c6in.16xlarge,reserved_3y,all_upfront,3.40133,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:24.419022 +AWS,eu-west-2,c6in.16xlarge,reserved_3y,no_upfront,3.40133,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:23.369449 +AWS,eu-west-2,c6in.16xlarge,reserved_3y,partial_upfront,3.40133,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:04.764425 +AWS,eu-west-2,c6in.16xlarge,spot,NA,1.612471,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688392 +AWS,eu-west-2,c6in.24xlarge,on_demand,NA,6.4512,USD,AWS Pricing API,2025-11-30T09:07:11.629954 +AWS,eu-west-2,c6in.24xlarge,reserved_1y,all_upfront,5.102,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:40.370168 +AWS,eu-west-2,c6in.24xlarge,reserved_1y,no_upfront,5.102,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:26.536500 +AWS,eu-west-2,c6in.24xlarge,reserved_1y,partial_upfront,5.102,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:04.409415 +AWS,eu-west-2,c6in.24xlarge,reserved_3y,all_upfront,5.102,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:33.682986 +AWS,eu-west-2,c6in.24xlarge,reserved_3y,no_upfront,5.102,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:33.016100 +AWS,eu-west-2,c6in.24xlarge,reserved_3y,partial_upfront,5.102,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:14.274121 +AWS,eu-west-2,c6in.24xlarge,spot,NA,2.661873,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688678 +AWS,eu-west-2,c6in.2xlarge,on_demand,NA,0.5376,USD,AWS Pricing API,2025-11-30T09:07:15.265810 +AWS,eu-west-2,c6in.2xlarge,reserved_1y,all_upfront,0.416295,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:44.045059 +AWS,eu-west-2,c6in.2xlarge,reserved_1y,no_upfront,0.416295,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:30.219148 +AWS,eu-west-2,c6in.2xlarge,reserved_1y,partial_upfront,0.416295,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:08.055114 +AWS,eu-west-2,c6in.2xlarge,reserved_3y,all_upfront,0.208152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:37.276298 +AWS,eu-west-2,c6in.2xlarge,reserved_3y,no_upfront,0.208152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:36.738697 +AWS,eu-west-2,c6in.2xlarge,reserved_3y,partial_upfront,0.208152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:17.906861 +AWS,eu-west-2,c6in.2xlarge,spot,NA,0.203092,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688792 +AWS,eu-west-2,c6in.32xlarge,on_demand,NA,8.6016,USD,AWS Pricing API,2025-11-30T09:07:49.441230 +AWS,eu-west-2,c6in.32xlarge,reserved_1y,all_upfront,6.661046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:18.271589 +AWS,eu-west-2,c6in.32xlarge,reserved_1y,no_upfront,6.661046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:04.775014 +AWS,eu-west-2,c6in.32xlarge,reserved_1y,partial_upfront,6.661046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:42.058442 +AWS,eu-west-2,c6in.32xlarge,reserved_3y,all_upfront,3.330529,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:10.937915 +AWS,eu-west-2,c6in.32xlarge,reserved_3y,no_upfront,3.330529,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:11.636329 +AWS,eu-west-2,c6in.32xlarge,reserved_3y,partial_upfront,3.330529,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:51.775730 +AWS,eu-west-2,c6in.32xlarge,spot,NA,3.307137,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689535 +AWS,eu-west-2,c6in.4xlarge,on_demand,NA,1.0752,USD,AWS Pricing API,2025-11-30T09:06:49.773840 +AWS,eu-west-2,c6in.4xlarge,reserved_1y,all_upfront,0.793607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:18.491865 +AWS,eu-west-2,c6in.4xlarge,reserved_1y,no_upfront,0.793607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:04.317535 +AWS,eu-west-2,c6in.4xlarge,reserved_1y,partial_upfront,0.793607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:42.705285 +AWS,eu-west-2,c6in.4xlarge,reserved_3y,all_upfront,0.264536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:12.340186 +AWS,eu-west-2,c6in.4xlarge,reserved_3y,no_upfront,0.264536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:10.805522 +AWS,eu-west-2,c6in.4xlarge,reserved_3y,partial_upfront,0.264536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:52.488216 +AWS,eu-west-2,c6in.4xlarge,spot,NA,0.456187,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688076 +AWS,eu-west-2,c6in.8xlarge,on_demand,NA,2.1504,USD,AWS Pricing API,2025-11-30T09:07:19.734340 +AWS,eu-west-2,c6in.8xlarge,reserved_1y,all_upfront,2.788699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:48.498388 +AWS,eu-west-2,c6in.8xlarge,reserved_1y,no_upfront,2.788699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:34.770109 +AWS,eu-west-2,c6in.8xlarge,reserved_1y,partial_upfront,2.788699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:12.482458 +AWS,eu-west-2,c6in.8xlarge,reserved_3y,all_upfront,0.929566,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:41.647577 +AWS,eu-west-2,c6in.8xlarge,reserved_3y,no_upfront,0.929566,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:41.337109 +AWS,eu-west-2,c6in.8xlarge,reserved_3y,partial_upfront,0.929566,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:22.343109 +AWS,eu-west-2,c6in.8xlarge,spot,NA,0.817881,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688850 +AWS,eu-west-2,c6in.xlarge,on_demand,NA,0.2688,USD,AWS Pricing API,2025-11-30T09:07:07.549087 +AWS,eu-west-2,c6in.xlarge,reserved_1y,all_upfront,0.12805,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:36.285855 +AWS,eu-west-2,c6in.xlarge,reserved_1y,no_upfront,0.12805,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:22.393444 +AWS,eu-west-2,c6in.xlarge,reserved_1y,partial_upfront,0.12805,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:00.353335 +AWS,eu-west-2,c6in.xlarge,reserved_3y,all_upfront,0.12805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:29.717193 +AWS,eu-west-2,c6in.xlarge,reserved_3y,no_upfront,0.12805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:28.886653 +AWS,eu-west-2,c6in.xlarge,reserved_3y,partial_upfront,0.12805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:10.147703 +AWS,eu-west-2,c6in.xlarge,spot,NA,0.098122,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688577 +AWS,eu-west-2,c7a.12xlarge,on_demand,NA,2.92704,USD,AWS Pricing API,2025-11-30T09:07:34.675066 +AWS,eu-west-2,c7a.12xlarge,reserved_1y,all_upfront,2.463319,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:03.482435 +AWS,eu-west-2,c7a.12xlarge,reserved_1y,no_upfront,2.463319,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:49.826411 +AWS,eu-west-2,c7a.12xlarge,reserved_1y,partial_upfront,2.463319,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:27.357584 +AWS,eu-west-2,c7a.12xlarge,reserved_3y,all_upfront,1.23166,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:56.330224 +AWS,eu-west-2,c7a.12xlarge,reserved_3y,no_upfront,1.23166,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:56.556066 +AWS,eu-west-2,c7a.12xlarge,reserved_3y,partial_upfront,1.23166,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:37.113169 +AWS,eu-west-2,c7a.12xlarge,spot,NA,1.031612,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689192 +AWS,eu-west-2,c7a.16xlarge,on_demand,NA,3.90272,USD,AWS Pricing API,2025-11-30T09:07:05.351150 +AWS,eu-west-2,c7a.16xlarge,reserved_1y,all_upfront,2.03236,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:34.111006 +AWS,eu-west-2,c7a.16xlarge,reserved_1y,no_upfront,2.03236,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:20.177408 +AWS,eu-west-2,c7a.16xlarge,reserved_1y,partial_upfront,2.03236,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:58.196575 +AWS,eu-west-2,c7a.16xlarge,reserved_3y,all_upfront,2.03236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:27.593410 +AWS,eu-west-2,c7a.16xlarge,reserved_3y,no_upfront,2.03236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:26.667977 +AWS,eu-west-2,c7a.16xlarge,reserved_3y,partial_upfront,2.03236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:07.993490 +AWS,eu-west-2,c7a.16xlarge,spot,NA,1.496363,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688546 +AWS,eu-west-2,c7a.24xlarge,on_demand,NA,5.85408,USD,AWS Pricing API,2025-11-30T09:07:44.714195 +AWS,eu-west-2,c7a.24xlarge,reserved_1y,all_upfront,4.13516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:13.524642 +AWS,eu-west-2,c7a.24xlarge,reserved_1y,no_upfront,4.13516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:59.949885 +AWS,eu-west-2,c7a.24xlarge,reserved_1y,partial_upfront,4.13516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:37.336796 +AWS,eu-west-2,c7a.24xlarge,reserved_3y,all_upfront,1.378387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:06.282944 +AWS,eu-west-2,c7a.24xlarge,reserved_3y,no_upfront,1.378387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:06.784114 +AWS,eu-west-2,c7a.24xlarge,reserved_3y,partial_upfront,1.378387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:47.048843 +AWS,eu-west-2,c7a.24xlarge,spot,NA,2.258099,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689443 +AWS,eu-west-2,c7a.2xlarge,on_demand,NA,0.48784,USD,AWS Pricing API,2025-11-30T09:06:46.697414 +AWS,eu-west-2,c7a.2xlarge,reserved_1y,all_upfront,0.410517,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:15.377308 +AWS,eu-west-2,c7a.2xlarge,reserved_1y,no_upfront,0.410517,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:01.137426 +AWS,eu-west-2,c7a.2xlarge,reserved_1y,partial_upfront,0.410517,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:39.610517 +AWS,eu-west-2,c7a.2xlarge,reserved_3y,all_upfront,0.205266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:09.268770 +AWS,eu-west-2,c7a.2xlarge,reserved_3y,no_upfront,0.205266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:07.646213 +AWS,eu-west-2,c7a.2xlarge,reserved_3y,partial_upfront,0.205266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:49.407248 +AWS,eu-west-2,c7a.2xlarge,spot,NA,0.181601,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688047 +AWS,eu-west-2,c7a.32xlarge,on_demand,NA,7.80544,USD,AWS Pricing API,2025-11-30T09:07:21.336884 +AWS,eu-west-2,c7a.32xlarge,reserved_1y,all_upfront,5.90739,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:50.118257 +AWS,eu-west-2,c7a.32xlarge,reserved_1y,no_upfront,5.90739,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:36.420859 +AWS,eu-west-2,c7a.32xlarge,reserved_1y,partial_upfront,5.90739,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:14.103942 +AWS,eu-west-2,c7a.32xlarge,reserved_3y,all_upfront,5.90739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:43.231912 +AWS,eu-west-2,c7a.32xlarge,reserved_3y,no_upfront,5.90739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:42.986436 +AWS,eu-west-2,c7a.32xlarge,reserved_3y,partial_upfront,5.90739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:23.960542 +AWS,eu-west-2,c7a.32xlarge,spot,NA,3.939758,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688913 +AWS,eu-west-2,c7a.48xlarge,on_demand,NA,11.70816,USD,AWS Pricing API,2025-11-30T09:06:41.320062 +AWS,eu-west-2,c7a.48xlarge,reserved_1y,all_upfront,7.213813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:09.984427 +AWS,eu-west-2,c7a.48xlarge,reserved_1y,no_upfront,7.213813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:55.656785 +AWS,eu-west-2,c7a.48xlarge,reserved_1y,partial_upfront,7.213813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:34.170809 +AWS,eu-west-2,c7a.48xlarge,reserved_3y,all_upfront,2.404604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:03.957338 +AWS,eu-west-2,c7a.48xlarge,reserved_3y,no_upfront,2.404604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:02.135678 +AWS,eu-west-2,c7a.48xlarge,reserved_3y,partial_upfront,2.404604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:44.028913 +AWS,eu-west-2,c7a.48xlarge,spot,NA,5.497611,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687921 +AWS,eu-west-2,c7a.4xlarge,on_demand,NA,0.97568,USD,AWS Pricing API,2025-11-30T09:07:22.426045 +AWS,eu-west-2,c7a.4xlarge,reserved_1y,all_upfront,0.689155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:51.213473 +AWS,eu-west-2,c7a.4xlarge,reserved_1y,no_upfront,0.689155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:37.533405 +AWS,eu-west-2,c7a.4xlarge,reserved_1y,partial_upfront,0.689155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:15.203273 +AWS,eu-west-2,c7a.4xlarge,reserved_3y,all_upfront,0.229718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:44.293058 +AWS,eu-west-2,c7a.4xlarge,reserved_3y,no_upfront,0.229718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:44.099971 +AWS,eu-west-2,c7a.4xlarge,reserved_3y,partial_upfront,0.229718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:25.022859 +AWS,eu-west-2,c7a.4xlarge,spot,NA,0.363232,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688889 +AWS,eu-west-2,c7a.8xlarge,on_demand,NA,1.95136,USD,AWS Pricing API,2025-11-30T09:06:38.758219 +AWS,eu-west-2,c7a.8xlarge,reserved_1y,all_upfront,1.22689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:07.423066 +AWS,eu-west-2,c7a.8xlarge,reserved_1y,no_upfront,1.22689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:53.065206 +AWS,eu-west-2,c7a.8xlarge,reserved_1y,partial_upfront,1.22689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:31.591390 +AWS,eu-west-2,c7a.8xlarge,reserved_3y,all_upfront,0.81791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:01.416214 +AWS,eu-west-2,c7a.8xlarge,reserved_3y,no_upfront,0.81791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:59.499615 +AWS,eu-west-2,c7a.8xlarge,reserved_3y,partial_upfront,0.81791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:41.411792 +AWS,eu-west-2,c7a.8xlarge,spot,NA,0.860947,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687858 +AWS,eu-west-2,c7a.xlarge,on_demand,NA,0.24392,USD,AWS Pricing API,2025-11-30T09:07:13.496830 +AWS,eu-west-2,c7a.xlarge,reserved_1y,all_upfront,0.17226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:42.280529 +AWS,eu-west-2,c7a.xlarge,reserved_1y,no_upfront,0.17226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:28.442158 +AWS,eu-west-2,c7a.xlarge,reserved_1y,partial_upfront,0.17226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:06.293002 +AWS,eu-west-2,c7a.xlarge,reserved_3y,all_upfront,0.05742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:35.547626 +AWS,eu-west-2,c7a.xlarge,reserved_3y,no_upfront,0.05742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:34.940648 +AWS,eu-west-2,c7a.xlarge,reserved_3y,partial_upfront,0.05742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:16.166810 +AWS,eu-west-2,c7a.xlarge,spot,NA,0.101205,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688761 +AWS,eu-west-2,c7g.12xlarge,on_demand,NA,2.0606,USD,AWS Pricing API,2025-11-30T09:07:17.568581 +AWS,eu-west-2,c7g.12xlarge,reserved_1y,all_upfront,1.5596,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:46.325613 +AWS,eu-west-2,c7g.12xlarge,reserved_1y,no_upfront,1.5596,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:32.577422 +AWS,eu-west-2,c7g.12xlarge,reserved_1y,partial_upfront,1.5596,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:10.330839 +AWS,eu-west-2,c7g.12xlarge,reserved_3y,all_upfront,1.5596,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:39.527202 +AWS,eu-west-2,c7g.12xlarge,reserved_3y,no_upfront,1.5596,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:39.100773 +AWS,eu-west-2,c7g.12xlarge,reserved_3y,partial_upfront,1.5596,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:20.201446 +AWS,eu-west-2,c7g.12xlarge,spot,NA,0.64222,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688827 +AWS,eu-west-2,c7g.16xlarge,on_demand,NA,2.7475,USD,AWS Pricing API,2025-11-30T09:07:27.215825 +AWS,eu-west-2,c7g.16xlarge,reserved_1y,all_upfront,2.312347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:55.969659 +AWS,eu-west-2,c7g.16xlarge,reserved_1y,no_upfront,2.312347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:42.314292 +AWS,eu-west-2,c7g.16xlarge,reserved_1y,partial_upfront,2.312347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:19.923162 +AWS,eu-west-2,c7g.16xlarge,reserved_3y,all_upfront,1.156182,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:48.966558 +AWS,eu-west-2,c7g.16xlarge,reserved_3y,no_upfront,1.156182,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:48.965683 +AWS,eu-west-2,c7g.16xlarge,reserved_3y,partial_upfront,1.156182,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:29.734911 +AWS,eu-west-2,c7g.16xlarge,spot,NA,0.839749,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689034 +AWS,eu-west-2,c7g.2xlarge,on_demand,NA,0.3434,USD,AWS Pricing API,2025-11-30T09:07:45.937800 +AWS,eu-west-2,c7g.2xlarge,reserved_1y,all_upfront,0.215991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:14.766687 +AWS,eu-west-2,c7g.2xlarge,reserved_1y,no_upfront,0.215991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:01.192532 +AWS,eu-west-2,c7g.2xlarge,reserved_1y,partial_upfront,0.215991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:38.559139 +AWS,eu-west-2,c7g.2xlarge,reserved_3y,all_upfront,0.143997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:07.495196 +AWS,eu-west-2,c7g.2xlarge,reserved_3y,no_upfront,0.143997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:08.040322 +AWS,eu-west-2,c7g.2xlarge,reserved_3y,partial_upfront,0.143997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:48.258499 +AWS,eu-west-2,c7g.2xlarge,spot,NA,0.127067,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689460 +AWS,eu-west-2,c7g.4xlarge,on_demand,NA,0.6869,USD,AWS Pricing API,2025-11-30T09:07:02.754365 +AWS,eu-west-2,c7g.4xlarge,reserved_1y,all_upfront,0.4534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:31.543042 +AWS,eu-west-2,c7g.4xlarge,reserved_1y,no_upfront,0.4534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:17.489685 +AWS,eu-west-2,c7g.4xlarge,reserved_1y,partial_upfront,0.4534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:55.643886 +AWS,eu-west-2,c7g.4xlarge,reserved_3y,all_upfront,0.4534,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:25.077300 +AWS,eu-west-2,c7g.4xlarge,reserved_3y,no_upfront,0.4534,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:24.056513 +AWS,eu-west-2,c7g.4xlarge,reserved_3y,partial_upfront,0.4534,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:05.430770 +AWS,eu-west-2,c7g.4xlarge,spot,NA,0.208453,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688466 +AWS,eu-west-2,c7g.8xlarge,on_demand,NA,1.3738,USD,AWS Pricing API,2025-11-30T09:07:13.775518 +AWS,eu-west-2,c7g.8xlarge,reserved_1y,all_upfront,1.156123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:42.560703 +AWS,eu-west-2,c7g.8xlarge,reserved_1y,no_upfront,1.156123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:28.719200 +AWS,eu-west-2,c7g.8xlarge,reserved_1y,partial_upfront,1.156123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:06.564595 +AWS,eu-west-2,c7g.8xlarge,reserved_3y,all_upfront,0.578041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:35.811938 +AWS,eu-west-2,c7g.8xlarge,reserved_3y,no_upfront,0.578041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:35.217630 +AWS,eu-west-2,c7g.8xlarge,reserved_3y,partial_upfront,0.578041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:16.436238 +AWS,eu-west-2,c7g.8xlarge,spot,NA,0.457958,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688737 +AWS,eu-west-2,c7g.xlarge,on_demand,NA,0.1717,USD,AWS Pricing API,2025-11-30T09:07:00.864487 +AWS,eu-west-2,c7g.xlarge,reserved_1y,all_upfront,0.107995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:29.654546 +AWS,eu-west-2,c7g.xlarge,reserved_1y,no_upfront,0.107995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:15.581731 +AWS,eu-west-2,c7g.xlarge,reserved_1y,partial_upfront,0.107995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:53.774682 +AWS,eu-west-2,c7g.xlarge,reserved_3y,all_upfront,0.071998,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:23.229196 +AWS,eu-west-2,c7g.xlarge,reserved_3y,no_upfront,0.071998,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:22.134249 +AWS,eu-west-2,c7g.xlarge,reserved_3y,partial_upfront,0.071998,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:03.555336 +AWS,eu-west-2,c7g.xlarge,spot,NA,0.069476,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688376 +AWS,eu-west-2,c7gd.12xlarge,on_demand,NA,2.6083,USD,AWS Pricing API,2025-11-30T09:07:11.766647 +AWS,eu-west-2,c7gd.12xlarge,reserved_1y,all_upfront,3.953539,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:40.504039 +AWS,eu-west-2,c7gd.12xlarge,reserved_1y,no_upfront,3.953539,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:26.672803 +AWS,eu-west-2,c7gd.12xlarge,reserved_1y,partial_upfront,3.953539,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:04.544130 +AWS,eu-west-2,c7gd.12xlarge,reserved_3y,all_upfront,1.317846,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:33.821900 +AWS,eu-west-2,c7gd.12xlarge,reserved_3y,no_upfront,1.317846,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:33.155172 +AWS,eu-west-2,c7gd.12xlarge,reserved_3y,partial_upfront,1.317846,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:14.409478 +AWS,eu-west-2,c7gd.12xlarge,spot,NA,0.859442,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688690 +AWS,eu-west-2,c7gd.16xlarge,on_demand,NA,3.4778,USD,AWS Pricing API,2025-11-30T09:06:57.750741 +AWS,eu-west-2,c7gd.16xlarge,reserved_1y,all_upfront,2.7558,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:26.534587 +AWS,eu-west-2,c7gd.16xlarge,reserved_1y,no_upfront,2.7558,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:12.446136 +AWS,eu-west-2,c7gd.16xlarge,reserved_1y,partial_upfront,2.7558,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:50.655150 +AWS,eu-west-2,c7gd.16xlarge,reserved_3y,all_upfront,2.7558,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:20.177958 +AWS,eu-west-2,c7gd.16xlarge,reserved_3y,no_upfront,2.7558,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:18.945762 +AWS,eu-west-2,c7gd.16xlarge,reserved_3y,partial_upfront,2.7558,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:00.433209 +AWS,eu-west-2,c7gd.16xlarge,spot,NA,1.120316,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688301 +AWS,eu-west-2,c7gd.2xlarge,on_demand,NA,0.4347,USD,AWS Pricing API,2025-11-30T09:07:27.079292 +AWS,eu-west-2,c7gd.2xlarge,reserved_1y,all_upfront,0.255594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:55.834831 +AWS,eu-west-2,c7gd.2xlarge,reserved_1y,no_upfront,0.255594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:42.174696 +AWS,eu-west-2,c7gd.2xlarge,reserved_1y,partial_upfront,0.255594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:19.789642 +AWS,eu-west-2,c7gd.2xlarge,reserved_3y,all_upfront,0.085198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:48.835162 +AWS,eu-west-2,c7gd.2xlarge,reserved_3y,no_upfront,0.085198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:48.824366 +AWS,eu-west-2,c7gd.2xlarge,reserved_3y,partial_upfront,0.085198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:29.601926 +AWS,eu-west-2,c7gd.2xlarge,spot,NA,0.142671,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689011 +AWS,eu-west-2,c7gd.4xlarge,on_demand,NA,0.8694,USD,AWS Pricing API,2025-11-30T09:07:14.450698 +AWS,eu-west-2,c7gd.4xlarge,reserved_1y,all_upfront,0.511187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:43.226573 +AWS,eu-west-2,c7gd.4xlarge,reserved_1y,no_upfront,0.511187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:29.404859 +AWS,eu-west-2,c7gd.4xlarge,reserved_1y,partial_upfront,0.511187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:07.234186 +AWS,eu-west-2,c7gd.4xlarge,reserved_3y,all_upfront,0.170396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:36.466783 +AWS,eu-west-2,c7gd.4xlarge,reserved_3y,no_upfront,0.170396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:35.905387 +AWS,eu-west-2,c7gd.4xlarge,reserved_3y,partial_upfront,0.170396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:17.101683 +AWS,eu-west-2,c7gd.4xlarge,spot,NA,0.347934,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688753 +AWS,eu-west-2,c7gd.8xlarge,on_demand,NA,1.7389,USD,AWS Pricing API,2025-11-30T09:07:06.034139 +AWS,eu-west-2,c7gd.8xlarge,reserved_1y,all_upfront,1.022489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:34.785322 +AWS,eu-west-2,c7gd.8xlarge,reserved_1y,no_upfront,1.022489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:20.870300 +AWS,eu-west-2,c7gd.8xlarge,reserved_1y,partial_upfront,1.022489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:58.866615 +AWS,eu-west-2,c7gd.8xlarge,reserved_3y,all_upfront,0.34083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:28.249877 +AWS,eu-west-2,c7gd.8xlarge,reserved_3y,no_upfront,0.34083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:27.357120 +AWS,eu-west-2,c7gd.8xlarge,reserved_3y,partial_upfront,0.34083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:08.661561 +AWS,eu-west-2,c7gd.8xlarge,spot,NA,0.610356,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688538 +AWS,eu-west-2,c7gd.xlarge,on_demand,NA,0.2174,USD,AWS Pricing API,2025-11-30T09:07:45.262471 +AWS,eu-west-2,c7gd.xlarge,reserved_1y,all_upfront,0.173865,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:14.065393 +AWS,eu-west-2,c7gd.xlarge,reserved_1y,no_upfront,0.173865,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:00.498697 +AWS,eu-west-2,c7gd.xlarge,reserved_1y,partial_upfront,0.173865,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:37.878516 +AWS,eu-west-2,c7gd.xlarge,reserved_3y,all_upfront,0.086955,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:06.831495 +AWS,eu-west-2,c7gd.xlarge,reserved_3y,no_upfront,0.086955,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:07.346410 +AWS,eu-west-2,c7gd.xlarge,reserved_3y,partial_upfront,0.086955,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:47.578900 +AWS,eu-west-2,c7gd.xlarge,spot,NA,0.076674,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689436 +AWS,eu-west-2,c7i.12xlarge,on_demand,NA,2.5452,USD,AWS Pricing API,2025-11-30T09:07:06.310001 +AWS,eu-west-2,c7i.12xlarge,reserved_1y,all_upfront,3.608105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:35.064372 +AWS,eu-west-2,c7i.12xlarge,reserved_1y,no_upfront,3.608105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:21.145042 +AWS,eu-west-2,c7i.12xlarge,reserved_1y,partial_upfront,3.608105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:59.138328 +AWS,eu-west-2,c7i.12xlarge,reserved_3y,all_upfront,1.202702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:28.512593 +AWS,eu-west-2,c7i.12xlarge,reserved_3y,no_upfront,1.202702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:27.633906 +AWS,eu-west-2,c7i.12xlarge,reserved_3y,partial_upfront,1.202702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:08.932503 +AWS,eu-west-2,c7i.12xlarge,spot,NA,1.044913,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688550 +AWS,eu-west-2,c7i.16xlarge,on_demand,NA,3.3936,USD,AWS Pricing API,2025-11-30T09:07:43.515789 +AWS,eu-west-2,c7i.16xlarge,reserved_1y,all_upfront,4.810845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:12.306122 +AWS,eu-west-2,c7i.16xlarge,reserved_1y,no_upfront,4.810845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:58.720993 +AWS,eu-west-2,c7i.16xlarge,reserved_1y,partial_upfront,4.810845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:36.124338 +AWS,eu-west-2,c7i.16xlarge,reserved_3y,all_upfront,1.603615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:05.097377 +AWS,eu-west-2,c7i.16xlarge,reserved_3y,no_upfront,1.603615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:05.555428 +AWS,eu-west-2,c7i.16xlarge,reserved_3y,partial_upfront,1.603615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:45.845517 +AWS,eu-west-2,c7i.16xlarge,spot,NA,1.196799,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689408 +AWS,eu-west-2,c7i.24xlarge,on_demand,NA,5.0904,USD,AWS Pricing API,2025-11-30T09:07:17.159674 +AWS,eu-west-2,c7i.24xlarge,reserved_1y,all_upfront,3.3604,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:45.923933 +AWS,eu-west-2,c7i.24xlarge,reserved_1y,no_upfront,3.3604,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:32.168198 +AWS,eu-west-2,c7i.24xlarge,reserved_1y,partial_upfront,3.3604,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:09.934008 +AWS,eu-west-2,c7i.24xlarge,reserved_3y,all_upfront,3.3604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:39.134004 +AWS,eu-west-2,c7i.24xlarge,reserved_3y,no_upfront,3.3604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:38.690756 +AWS,eu-west-2,c7i.24xlarge,reserved_3y,partial_upfront,3.3604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:19.794895 +AWS,eu-west-2,c7i.24xlarge,spot,NA,1.754701,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688800 +AWS,eu-west-2,c7i.2xlarge,on_demand,NA,0.4242,USD,AWS Pricing API,2025-11-30T09:07:31.855286 +AWS,eu-west-2,c7i.2xlarge,reserved_1y,all_upfront,0.266683,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:00.600791 +AWS,eu-west-2,c7i.2xlarge,reserved_1y,no_upfront,0.266683,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:46.982223 +AWS,eu-west-2,c7i.2xlarge,reserved_1y,partial_upfront,0.266683,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:24.537736 +AWS,eu-west-2,c7i.2xlarge,reserved_3y,all_upfront,0.177794,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:53.468020 +AWS,eu-west-2,c7i.2xlarge,reserved_3y,no_upfront,0.177794,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:53.672528 +AWS,eu-west-2,c7i.2xlarge,reserved_3y,partial_upfront,0.177794,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:34.300546 +AWS,eu-west-2,c7i.2xlarge,spot,NA,0.163773,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689107 +AWS,eu-west-2,c7i.48xlarge,on_demand,NA,10.1808,USD,AWS Pricing API,2025-11-30T09:06:59.782737 +AWS,eu-west-2,c7i.48xlarge,reserved_1y,all_upfront,6.400732,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:28.555940 +AWS,eu-west-2,c7i.48xlarge,reserved_1y,no_upfront,6.400732,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:14.489808 +AWS,eu-west-2,c7i.48xlarge,reserved_1y,partial_upfront,6.400732,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:52.665436 +AWS,eu-west-2,c7i.48xlarge,reserved_3y,all_upfront,4.267171,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:22.163521 +AWS,eu-west-2,c7i.48xlarge,reserved_3y,no_upfront,4.267171,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:21.029333 +AWS,eu-west-2,c7i.48xlarge,reserved_3y,partial_upfront,4.267171,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:02.478670 +AWS,eu-west-2,c7i.48xlarge,spot,NA,3.6725,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688364 +AWS,eu-west-2,c7i.4xlarge,on_demand,NA,0.8484,USD,AWS Pricing API,2025-11-30T09:07:12.826188 +AWS,eu-west-2,c7i.4xlarge,reserved_1y,all_upfront,1.20274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:41.608916 +AWS,eu-west-2,c7i.4xlarge,reserved_1y,no_upfront,1.20274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:27.765106 +AWS,eu-west-2,c7i.4xlarge,reserved_1y,partial_upfront,1.20274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:05.616814 +AWS,eu-west-2,c7i.4xlarge,reserved_3y,all_upfront,0.400913,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:34.891294 +AWS,eu-west-2,c7i.4xlarge,reserved_3y,no_upfront,0.400913,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:34.258323 +AWS,eu-west-2,c7i.4xlarge,reserved_3y,partial_upfront,0.400913,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:15.481325 +AWS,eu-west-2,c7i.4xlarge,spot,NA,0.351577,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688718 +AWS,eu-west-2,c7i.8xlarge,on_demand,NA,1.6968,USD,AWS Pricing API,2025-11-30T09:06:44.803088 +AWS,eu-west-2,c7i.8xlarge,reserved_1y,all_upfront,1.28419,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:13.482218 +AWS,eu-west-2,c7i.8xlarge,reserved_1y,no_upfront,1.28419,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:59.215464 +AWS,eu-west-2,c7i.8xlarge,reserved_1y,partial_upfront,1.28419,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:37.702907 +AWS,eu-west-2,c7i.8xlarge,reserved_3y,all_upfront,1.28419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:07.415885 +AWS,eu-west-2,c7i.8xlarge,reserved_3y,no_upfront,1.28419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:05.707062 +AWS,eu-west-2,c7i.8xlarge,reserved_3y,partial_upfront,1.28419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:47.510733 +AWS,eu-west-2,c7i.8xlarge,spot,NA,0.688014,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687983 +AWS,eu-west-2,c7i.large,on_demand,NA,0.10605,USD,AWS Pricing API,2025-11-30T09:07:31.281806 +AWS,eu-west-2,c7i.large,reserved_1y,all_upfront,0.076462,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:00.053126 +AWS,eu-west-2,c7i.large,reserved_1y,no_upfront,0.076462,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:46.439862 +AWS,eu-west-2,c7i.large,reserved_1y,partial_upfront,0.076462,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:23.982919 +AWS,eu-west-2,c7i.large,reserved_3y,all_upfront,0.050967,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:52.936493 +AWS,eu-west-2,c7i.large,reserved_3y,no_upfront,0.050967,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:53.120825 +AWS,eu-west-2,c7i.large,reserved_3y,partial_upfront,0.050967,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:33.768180 +AWS,eu-west-2,c7i.large,spot,NA,0.03808,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689119 +AWS,eu-west-2,c7i.metal-24xl,on_demand,NA,5.0904,USD,AWS Pricing API,2025-11-30T09:07:00.601111 +AWS,eu-west-2,c7i.metal-24xl,reserved_1y,all_upfront,3.85256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:29.384355 +AWS,eu-west-2,c7i.metal-24xl,reserved_1y,no_upfront,3.85256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:15.307293 +AWS,eu-west-2,c7i.metal-24xl,reserved_1y,partial_upfront,3.85256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:53.498387 +AWS,eu-west-2,c7i.metal-24xl,reserved_3y,all_upfront,3.85256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:22.968374 +AWS,eu-west-2,c7i.metal-24xl,reserved_3y,no_upfront,3.85256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:21.855106 +AWS,eu-west-2,c7i.metal-24xl,reserved_3y,partial_upfront,3.85256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:03.288887 +AWS,eu-west-2,c7i.metal-24xl,spot,NA,1.756043,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688372 +AWS,eu-west-2,c7i.metal-48xl,on_demand,NA,10.1808,USD,AWS Pricing API,2025-11-30T09:06:48.846681 +AWS,eu-west-2,c7i.metal-48xl,reserved_1y,all_upfront,7.338174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:17.535692 +AWS,eu-west-2,c7i.metal-48xl,reserved_1y,no_upfront,7.338174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:03.361508 +AWS,eu-west-2,c7i.metal-48xl,reserved_1y,partial_upfront,7.338174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:41.767582 +AWS,eu-west-2,c7i.metal-48xl,reserved_3y,all_upfront,4.892131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:11.411248 +AWS,eu-west-2,c7i.metal-48xl,reserved_3y,no_upfront,4.892131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:09.844317 +AWS,eu-west-2,c7i.metal-48xl,reserved_3y,partial_upfront,4.892131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:51.552148 +AWS,eu-west-2,c7i.metal-48xl,spot,NA,3.297855,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688089 +AWS,eu-west-2,c7i.xlarge,on_demand,NA,0.2121,USD,AWS Pricing API,2025-11-30T09:07:42.557766 +AWS,eu-west-2,c7i.xlarge,reserved_1y,all_upfront,0.300685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:11.365746 +AWS,eu-west-2,c7i.xlarge,reserved_1y,no_upfront,0.300685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:57.768847 +AWS,eu-west-2,c7i.xlarge,reserved_1y,partial_upfront,0.300685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:35.189017 +AWS,eu-west-2,c7i.xlarge,reserved_3y,all_upfront,0.100228,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:04.162353 +AWS,eu-west-2,c7i.xlarge,reserved_3y,no_upfront,0.100228,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:04.592982 +AWS,eu-west-2,c7i.xlarge,reserved_3y,partial_upfront,0.100228,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:44.899592 +AWS,eu-west-2,c7i.xlarge,spot,NA,0.076172,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689369 +AWS,eu-west-2,c8g.12xlarge,on_demand,NA,2.26656,USD,AWS Pricing API,2025-11-30T09:07:40.119758 +AWS,eu-west-2,c8g.12xlarge,reserved_1y,all_upfront,1.18032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:08.925705 +AWS,eu-west-2,c8g.12xlarge,reserved_1y,no_upfront,1.18032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:55.305751 +AWS,eu-west-2,c8g.12xlarge,reserved_1y,partial_upfront,1.18032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:32.758493 +AWS,eu-west-2,c8g.12xlarge,reserved_3y,all_upfront,1.18032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:01.682668 +AWS,eu-west-2,c8g.12xlarge,reserved_3y,no_upfront,1.18032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:02.085035 +AWS,eu-west-2,c8g.12xlarge,reserved_3y,partial_upfront,1.18032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:42.487300 +AWS,eu-west-2,c8g.12xlarge,spot,NA,0.773731,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689284 +AWS,eu-west-2,c8g.16xlarge,on_demand,NA,3.02208,USD,AWS Pricing API,2025-11-30T09:06:43.718962 +AWS,eu-west-2,c8g.16xlarge,reserved_1y,all_upfront,1.99501,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:12.408147 +AWS,eu-west-2,c8g.16xlarge,reserved_1y,no_upfront,1.99501,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:58.113700 +AWS,eu-west-2,c8g.16xlarge,reserved_1y,partial_upfront,1.99501,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:36.606874 +AWS,eu-west-2,c8g.16xlarge,reserved_3y,all_upfront,1.99501,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:06.361591 +AWS,eu-west-2,c8g.16xlarge,reserved_3y,no_upfront,1.99501,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:04.605647 +AWS,eu-west-2,c8g.16xlarge,reserved_3y,partial_upfront,1.99501,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:46.443781 +AWS,eu-west-2,c8g.16xlarge,spot,NA,0.968427,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687953 +AWS,eu-west-2,c8g.24xlarge,on_demand,NA,4.53312,USD,AWS Pricing API,2025-11-30T09:07:30.064210 +AWS,eu-west-2,c8g.24xlarge,reserved_1y,all_upfront,3.202055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:58.827464 +AWS,eu-west-2,c8g.24xlarge,reserved_1y,no_upfront,3.202055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:45.202891 +AWS,eu-west-2,c8g.24xlarge,reserved_1y,partial_upfront,3.202055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:22.774315 +AWS,eu-west-2,c8g.24xlarge,reserved_3y,all_upfront,1.067352,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:51.748723 +AWS,eu-west-2,c8g.24xlarge,reserved_3y,no_upfront,1.067352,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:51.881242 +AWS,eu-west-2,c8g.24xlarge,reserved_3y,partial_upfront,1.067352,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:32.557409 +AWS,eu-west-2,c8g.24xlarge,spot,NA,1.41802,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689082 +AWS,eu-west-2,c8g.2xlarge,on_demand,NA,0.37776,USD,AWS Pricing API,2025-11-30T09:06:55.725495 +AWS,eu-west-2,c8g.2xlarge,reserved_1y,all_upfront,0.272327,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:24.492978 +AWS,eu-west-2,c8g.2xlarge,reserved_1y,no_upfront,0.272327,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:10.380948 +AWS,eu-west-2,c8g.2xlarge,reserved_1y,partial_upfront,0.272327,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:48.622307 +AWS,eu-west-2,c8g.2xlarge,reserved_3y,all_upfront,0.181536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:18.195312 +AWS,eu-west-2,c8g.2xlarge,reserved_3y,no_upfront,0.181536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:16.894804 +AWS,eu-west-2,c8g.2xlarge,reserved_3y,partial_upfront,0.181536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:58.402471 +AWS,eu-west-2,c8g.2xlarge,spot,NA,0.152023,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688240 +AWS,eu-west-2,c8g.48xlarge,on_demand,NA,9.06624,USD,AWS Pricing API,2025-11-30T09:07:48.896037 +AWS,eu-west-2,c8g.48xlarge,reserved_1y,all_upfront,6.40411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:17.731654 +AWS,eu-west-2,c8g.48xlarge,reserved_1y,no_upfront,6.40411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:04.224258 +AWS,eu-west-2,c8g.48xlarge,reserved_1y,partial_upfront,6.40411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:41.515248 +AWS,eu-west-2,c8g.48xlarge,reserved_3y,all_upfront,2.134703,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:10.403692 +AWS,eu-west-2,c8g.48xlarge,reserved_3y,no_upfront,2.134703,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:11.078419 +AWS,eu-west-2,c8g.48xlarge,reserved_3y,partial_upfront,2.134703,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:51.219552 +AWS,eu-west-2,c8g.48xlarge,spot,NA,2.828843,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689506 +AWS,eu-west-2,c8g.4xlarge,on_demand,NA,0.75552,USD,AWS Pricing API,2025-11-30T09:06:58.159966 +AWS,eu-west-2,c8g.4xlarge,reserved_1y,all_upfront,0.54455,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:26.939988 +AWS,eu-west-2,c8g.4xlarge,reserved_1y,no_upfront,0.54455,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:12.853412 +AWS,eu-west-2,c8g.4xlarge,reserved_1y,partial_upfront,0.54455,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:51.053826 +AWS,eu-west-2,c8g.4xlarge,reserved_3y,all_upfront,0.363043,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:20.576229 +AWS,eu-west-2,c8g.4xlarge,reserved_3y,no_upfront,0.363043,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:19.368106 +AWS,eu-west-2,c8g.4xlarge,reserved_3y,partial_upfront,0.363043,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:00.842647 +AWS,eu-west-2,c8g.4xlarge,spot,NA,0.261235,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688294 +AWS,eu-west-2,c8g.8xlarge,on_demand,NA,1.51104,USD,AWS Pricing API,2025-11-30T09:07:01.674302 +AWS,eu-west-2,c8g.8xlarge,reserved_1y,all_upfront,0.78688,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:30.467224 +AWS,eu-west-2,c8g.8xlarge,reserved_1y,no_upfront,0.78688,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:16.399276 +AWS,eu-west-2,c8g.8xlarge,reserved_1y,partial_upfront,0.78688,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:54.574984 +AWS,eu-west-2,c8g.8xlarge,reserved_3y,all_upfront,0.78688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:24.019862 +AWS,eu-west-2,c8g.8xlarge,reserved_3y,no_upfront,0.78688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:22.959057 +AWS,eu-west-2,c8g.8xlarge,reserved_3y,partial_upfront,0.78688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:04.363603 +AWS,eu-west-2,c8g.8xlarge,spot,NA,1.145909,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688432 +AWS,eu-west-2,c8g.large,on_demand,NA,0.09444,USD,AWS Pricing API,2025-11-30T09:07:43.242262 +AWS,eu-west-2,c8g.large,reserved_1y,all_upfront,0.068058,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:12.038104 +AWS,eu-west-2,c8g.large,reserved_1y,no_upfront,0.068058,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:58.449276 +AWS,eu-west-2,c8g.large,reserved_1y,partial_upfront,0.068058,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:35.852924 +AWS,eu-west-2,c8g.large,reserved_3y,all_upfront,0.045379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:04.832091 +AWS,eu-west-2,c8g.large,reserved_3y,no_upfront,0.045379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:05.282143 +AWS,eu-west-2,c8g.large,reserved_3y,partial_upfront,0.045379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:45.575826 +AWS,eu-west-2,c8g.large,spot,NA,0.03705,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689397 +AWS,eu-west-2,c8g.medium,on_demand,NA,0.04722,USD,AWS Pricing API,2025-11-30T09:07:27.906030 +AWS,eu-west-2,c8g.medium,reserved_1y,all_upfront,0.03574,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:56.644393 +AWS,eu-west-2,c8g.medium,reserved_1y,no_upfront,0.03574,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:43.010628 +AWS,eu-west-2,c8g.medium,reserved_1y,partial_upfront,0.03574,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:20.596752 +AWS,eu-west-2,c8g.medium,reserved_3y,all_upfront,0.03574,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:49.631632 +AWS,eu-west-2,c8g.medium,reserved_3y,no_upfront,0.03574,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:49.667497 +AWS,eu-west-2,c8g.medium,reserved_3y,partial_upfront,0.03574,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:30.404489 +AWS,eu-west-2,c8g.medium,spot,NA,0.016035,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689023 +AWS,eu-west-2,c8g.xlarge,on_demand,NA,0.18888,USD,AWS Pricing API,2025-11-30T09:06:51.924216 +AWS,eu-west-2,c8g.xlarge,reserved_1y,all_upfront,0.116324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:20.700792 +AWS,eu-west-2,c8g.xlarge,reserved_1y,no_upfront,0.116324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:06.542671 +AWS,eu-west-2,c8g.xlarge,reserved_1y,partial_upfront,0.116324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:44.855533 +AWS,eu-west-2,c8g.xlarge,reserved_3y,all_upfront,0.038775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:14.472247 +AWS,eu-west-2,c8g.xlarge,reserved_3y,no_upfront,0.038775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:13.021154 +AWS,eu-west-2,c8g.xlarge,reserved_3y,partial_upfront,0.038775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:54.650584 +AWS,eu-west-2,c8g.xlarge,spot,NA,0.075553,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688157 +AWS,eu-west-2,c8gd.12xlarge,on_demand,NA,2.81664,USD,AWS Pricing API,2025-11-30T09:07:25.571629 +AWS,eu-west-2,c8gd.12xlarge,spot,NA,0.41232,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688991 +AWS,eu-west-2,c8gd.16xlarge,on_demand,NA,3.75552,USD,AWS Pricing API,2025-11-30T09:07:49.715343 +AWS,eu-west-2,c8gd.16xlarge,spot,NA,0.500916,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689518 +AWS,eu-west-2,c8gd.24xlarge,on_demand,NA,5.63328,USD,AWS Pricing API,2025-11-30T09:07:36.155279 +AWS,eu-west-2,c8gd.24xlarge,spot,NA,0.580952,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689200 +AWS,eu-west-2,c8gd.2xlarge,on_demand,NA,0.46944,USD,AWS Pricing API,2025-11-30T09:07:20.264254 +AWS,eu-west-2,c8gd.2xlarge,spot,NA,0.07558,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688874 +AWS,eu-west-2,c8gd.48xlarge,on_demand,NA,11.26656,USD,AWS Pricing API,2025-11-30T09:07:08.115749 +AWS,eu-west-2,c8gd.48xlarge,spot,NA,1.194336,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688643 +AWS,eu-west-2,c8gd.4xlarge,on_demand,NA,0.93888,USD,AWS Pricing API,2025-11-30T09:06:53.418149 +AWS,eu-west-2,c8gd.4xlarge,spot,NA,0.142801,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688208 +AWS,eu-west-2,c8gd.8xlarge,on_demand,NA,1.87776,USD,AWS Pricing API,2025-11-30T09:07:15.951904 +AWS,eu-west-2,c8gd.8xlarge,spot,NA,0.32471,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688808 +AWS,eu-west-2,c8gd.large,on_demand,NA,0.11736,USD,AWS Pricing API,2025-11-30T09:07:41.614958 +AWS,eu-west-2,c8gd.large,spot,NA,0.019454,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689335 +AWS,eu-west-2,c8gd.xlarge,on_demand,NA,0.23472,USD,AWS Pricing API,2025-11-30T09:07:04.253602 +AWS,eu-west-2,c8gd.xlarge,spot,NA,0.038341,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688509 +AWS,eu-west-2,d3.2xlarge,on_demand,NA,1.28,USD,AWS Pricing API,2025-11-30T09:07:17.831592 +AWS,eu-west-2,d3.2xlarge,reserved_1y,all_upfront,1.805708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:46.596645 +AWS,eu-west-2,d3.2xlarge,reserved_1y,no_upfront,1.805708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:32.853956 +AWS,eu-west-2,d3.2xlarge,reserved_1y,partial_upfront,1.805708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:10.595347 +AWS,eu-west-2,d3.2xlarge,reserved_3y,all_upfront,0.601903,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:39.798827 +AWS,eu-west-2,d3.2xlarge,reserved_3y,no_upfront,0.601903,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:39.379009 +AWS,eu-west-2,d3.2xlarge,reserved_3y,partial_upfront,0.601903,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:20.468060 +AWS,eu-west-2,d3.2xlarge,spot,NA,0.411404,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688835 +AWS,eu-west-2,d3.4xlarge,on_demand,NA,2.559,USD,AWS Pricing API,2025-11-30T09:07:44.850248 +AWS,eu-west-2,d3.4xlarge,reserved_1y,all_upfront,1.327,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:13.660230 +AWS,eu-west-2,d3.4xlarge,reserved_1y,no_upfront,1.327,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:00.086501 +AWS,eu-west-2,d3.4xlarge,reserved_1y,partial_upfront,1.327,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:37.470078 +AWS,eu-west-2,d3.4xlarge,reserved_3y,all_upfront,1.327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:06.415737 +AWS,eu-west-2,d3.4xlarge,reserved_3y,no_upfront,1.327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:06.919714 +AWS,eu-west-2,d3.4xlarge,reserved_3y,partial_upfront,1.327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:47.182851 +AWS,eu-west-2,d3.4xlarge,spot,NA,0.832909,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689413 +AWS,eu-west-2,d3.8xlarge,on_demand,NA,5.11824,USD,AWS Pricing API,2025-11-30T09:06:48.309219 +AWS,eu-west-2,d3.8xlarge,reserved_1y,all_upfront,4.09454,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:16.988503 +AWS,eu-west-2,d3.8xlarge,reserved_1y,no_upfront,4.09454,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:02.802097 +AWS,eu-west-2,d3.8xlarge,reserved_1y,partial_upfront,4.09454,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:41.223656 +AWS,eu-west-2,d3.8xlarge,reserved_3y,all_upfront,2.04728,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:10.865691 +AWS,eu-west-2,d3.8xlarge,reserved_3y,no_upfront,2.04728,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:09.290104 +AWS,eu-west-2,d3.8xlarge,reserved_3y,partial_upfront,2.04728,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:51.020009 +AWS,eu-west-2,d3.8xlarge,spot,NA,1.616573,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688064 +AWS,eu-west-2,d3.xlarge,on_demand,NA,0.64,USD,AWS Pricing API,2025-11-30T09:06:45.740158 +AWS,eu-west-2,d3.xlarge,reserved_1y,all_upfront,0.383895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:14.427696 +AWS,eu-west-2,d3.xlarge,reserved_1y,no_upfront,0.383895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:00.176111 +AWS,eu-west-2,d3.xlarge,reserved_1y,partial_upfront,0.383895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:38.654740 +AWS,eu-west-2,d3.xlarge,reserved_3y,all_upfront,0.255965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:08.349193 +AWS,eu-west-2,d3.xlarge,reserved_3y,no_upfront,0.255965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:06.672618 +AWS,eu-west-2,d3.xlarge,reserved_3y,partial_upfront,0.255965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:48.465435 +AWS,eu-west-2,d3.xlarge,spot,NA,0.198381,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687987 +AWS,eu-west-2,g4dn.12xlarge,on_demand,NA,4.577,USD,AWS Pricing API,2025-11-30T09:06:48.712709 +AWS,eu-west-2,g4dn.12xlarge,reserved_1y,all_upfront,2.915525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:17.399136 +AWS,eu-west-2,g4dn.12xlarge,reserved_1y,no_upfront,2.915525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:03.223967 +AWS,eu-west-2,g4dn.12xlarge,reserved_1y,partial_upfront,2.915525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:41.626842 +AWS,eu-west-2,g4dn.12xlarge,reserved_3y,all_upfront,0.971842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:11.276605 +AWS,eu-west-2,g4dn.12xlarge,reserved_3y,no_upfront,0.971842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:09.704397 +AWS,eu-west-2,g4dn.12xlarge,reserved_3y,partial_upfront,0.971842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:51.419354 +AWS,eu-west-2,g4dn.12xlarge,spot,NA,1.605241,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688051 +AWS,eu-west-2,g4dn.16xlarge,on_demand,NA,5.092,USD,AWS Pricing API,2025-11-30T09:06:54.894646 +AWS,eu-west-2,g4dn.16xlarge,reserved_1y,all_upfront,8.083562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:23.676280 +AWS,eu-west-2,g4dn.16xlarge,reserved_1y,no_upfront,8.083562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:09.546281 +AWS,eu-west-2,g4dn.16xlarge,reserved_1y,partial_upfront,8.083562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:47.814696 +AWS,eu-west-2,g4dn.16xlarge,reserved_3y,all_upfront,2.694521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:17.383401 +AWS,eu-west-2,g4dn.16xlarge,reserved_3y,no_upfront,2.694521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:16.061100 +AWS,eu-west-2,g4dn.16xlarge,reserved_3y,partial_upfront,2.694521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:57.592125 +AWS,eu-west-2,g4dn.16xlarge,spot,NA,1.570664,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688232 +AWS,eu-west-2,g4dn.2xlarge,on_demand,NA,0.88,USD,AWS Pricing API,2025-11-30T09:07:28.850189 +AWS,eu-west-2,g4dn.2xlarge,reserved_1y,all_upfront,0.513,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:57.595182 +AWS,eu-west-2,g4dn.2xlarge,reserved_1y,no_upfront,0.513,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:43.975153 +AWS,eu-west-2,g4dn.2xlarge,reserved_1y,partial_upfront,0.513,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:21.543805 +AWS,eu-west-2,g4dn.2xlarge,reserved_3y,all_upfront,0.513,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:50.559968 +AWS,eu-west-2,g4dn.2xlarge,reserved_3y,no_upfront,0.513,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:50.644160 +AWS,eu-west-2,g4dn.2xlarge,reserved_3y,partial_upfront,0.513,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:31.348239 +AWS,eu-west-2,g4dn.2xlarge,spot,NA,0.286651,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689038 +AWS,eu-west-2,g4dn.4xlarge,on_demand,NA,1.409,USD,AWS Pricing API,2025-11-30T09:07:09.456945 +AWS,eu-west-2,g4dn.4xlarge,reserved_1y,all_upfront,0.915763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:38.183192 +AWS,eu-west-2,g4dn.4xlarge,reserved_1y,no_upfront,0.915763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:24.344515 +AWS,eu-west-2,g4dn.4xlarge,reserved_1y,partial_upfront,0.915763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:02.256096 +AWS,eu-west-2,g4dn.4xlarge,reserved_3y,all_upfront,0.610588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:31.569435 +AWS,eu-west-2,g4dn.4xlarge,reserved_3y,no_upfront,0.610588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:30.807080 +AWS,eu-west-2,g4dn.4xlarge,reserved_3y,partial_upfront,0.610588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:12.036079 +AWS,eu-west-2,g4dn.4xlarge,spot,NA,0.458287,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688654 +AWS,eu-west-2,g4dn.8xlarge,on_demand,NA,2.546,USD,AWS Pricing API,2025-11-30T09:07:12.170995 +AWS,eu-west-2,g4dn.8xlarge,reserved_1y,all_upfront,1.485,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:40.912804 +AWS,eu-west-2,g4dn.8xlarge,reserved_1y,no_upfront,1.485,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:27.081829 +AWS,eu-west-2,g4dn.8xlarge,reserved_1y,partial_upfront,1.485,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:04.946693 +AWS,eu-west-2,g4dn.8xlarge,reserved_3y,all_upfront,1.485,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:34.224605 +AWS,eu-west-2,g4dn.8xlarge,reserved_3y,no_upfront,1.485,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:33.574817 +AWS,eu-west-2,g4dn.8xlarge,reserved_3y,partial_upfront,1.485,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:14.815787 +AWS,eu-west-2,g4dn.8xlarge,spot,NA,0.803753,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688710 +AWS,eu-west-2,g4dn.xlarge,on_demand,NA,0.615,USD,AWS Pricing API,2025-11-30T09:07:35.478734 +AWS,eu-west-2,g4dn.xlarge,reserved_1y,all_upfront,0.392009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:04.297591 +AWS,eu-west-2,g4dn.xlarge,reserved_1y,no_upfront,0.392009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:50.640977 +AWS,eu-west-2,g4dn.xlarge,reserved_1y,partial_upfront,0.392009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:28.165856 +AWS,eu-west-2,g4dn.xlarge,reserved_3y,all_upfront,0.13067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:57.120616 +AWS,eu-west-2,g4dn.xlarge,reserved_3y,no_upfront,0.13067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:57.385481 +AWS,eu-west-2,g4dn.xlarge,reserved_3y,partial_upfront,0.13067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:37.914533 +AWS,eu-west-2,g4dn.xlarge,spot,NA,0.203389,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689204 +AWS,eu-west-2,g5.12xlarge,on_demand,NA,7.19994,USD,AWS Pricing API,2025-11-30T09:06:34.150847 +AWS,eu-west-2,g5.12xlarge,reserved_1y,all_upfront,5.759967,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:02.747264 +AWS,eu-west-2,g5.12xlarge,reserved_1y,no_upfront,5.759967,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:48.429086 +AWS,eu-west-2,g5.12xlarge,reserved_1y,partial_upfront,5.759967,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:27.016765 +AWS,eu-west-2,g5.12xlarge,reserved_3y,all_upfront,2.879982,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:56.919270 +AWS,eu-west-2,g5.12xlarge,reserved_3y,no_upfront,2.879982,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:54.758111 +AWS,eu-west-2,g5.12xlarge,reserved_3y,partial_upfront,2.879982,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:36.784143 +AWS,eu-west-2,g5.12xlarge,spot,NA,4.308482,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687777 +AWS,eu-west-2,g5.16xlarge,on_demand,NA,5.1994,USD,AWS Pricing API,2025-11-30T09:06:36.178920 +AWS,eu-west-2,g5.16xlarge,reserved_1y,all_upfront,3.057192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:04.817632 +AWS,eu-west-2,g5.16xlarge,reserved_1y,no_upfront,3.057192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:50.472914 +AWS,eu-west-2,g5.16xlarge,reserved_1y,partial_upfront,3.057192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:29.029450 +AWS,eu-west-2,g5.16xlarge,reserved_3y,all_upfront,1.019064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:58.898457 +AWS,eu-west-2,g5.16xlarge,reserved_3y,no_upfront,1.019064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:56.840797 +AWS,eu-west-2,g5.16xlarge,reserved_3y,partial_upfront,1.019064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:38.798875 +AWS,eu-west-2,g5.16xlarge,spot,NA,2.008501,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687785 +AWS,eu-west-2,g5.24xlarge,on_demand,NA,10.33786,USD,AWS Pricing API,2025-11-30T09:06:35.109250 +AWS,eu-west-2,g5.24xlarge,reserved_1y,all_upfront,6.078653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:03.725983 +AWS,eu-west-2,g5.24xlarge,reserved_1y,no_upfront,6.078653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:49.386785 +AWS,eu-west-2,g5.24xlarge,reserved_1y,partial_upfront,6.078653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:27.957215 +AWS,eu-west-2,g5.24xlarge,reserved_3y,all_upfront,2.026218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:57.846881 +AWS,eu-west-2,g5.24xlarge,reserved_3y,no_upfront,2.026218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:55.724275 +AWS,eu-west-2,g5.24xlarge,reserved_3y,partial_upfront,2.026218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:37.729203 +AWS,eu-west-2,g5.24xlarge,spot,NA,6.428208,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687781 +AWS,eu-west-2,g5.2xlarge,on_demand,NA,1.53849,USD,AWS Pricing API,2025-11-30T09:06:52.058138 +AWS,eu-west-2,g5.2xlarge,reserved_1y,all_upfront,0.90468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:20.835835 +AWS,eu-west-2,g5.2xlarge,reserved_1y,no_upfront,0.90468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:06.677869 +AWS,eu-west-2,g5.2xlarge,reserved_1y,partial_upfront,0.90468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:44.989659 +AWS,eu-west-2,g5.2xlarge,reserved_3y,all_upfront,0.30156,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:14.606199 +AWS,eu-west-2,g5.2xlarge,reserved_3y,no_upfront,0.30156,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:13.162080 +AWS,eu-west-2,g5.2xlarge,reserved_3y,partial_upfront,0.30156,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:54.784682 +AWS,eu-west-2,g5.2xlarge,spot,NA,0.506159,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688165 +AWS,eu-west-2,g5.48xlarge,on_demand,NA,20.67572,USD,AWS Pricing API,2025-11-30T09:06:36.868281 +AWS,eu-west-2,g5.48xlarge,reserved_1y,all_upfront,12.157306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:05.494350 +AWS,eu-west-2,g5.48xlarge,reserved_1y,no_upfront,12.157306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:51.153375 +AWS,eu-west-2,g5.48xlarge,reserved_1y,partial_upfront,12.157306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:29.703628 +AWS,eu-west-2,g5.48xlarge,reserved_3y,all_upfront,4.052435,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:59.563241 +AWS,eu-west-2,g5.48xlarge,reserved_3y,no_upfront,4.052435,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:57.554195 +AWS,eu-west-2,g5.48xlarge,reserved_3y,partial_upfront,4.052435,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:39.539157 +AWS,eu-west-2,g5.48xlarge,spot,NA,16.296744,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687838 +AWS,eu-west-2,g5.4xlarge,on_demand,NA,2.06148,USD,AWS Pricing API,2025-11-30T09:06:46.284818 +AWS,eu-west-2,g5.4xlarge,reserved_1y,all_upfront,1.2121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:14.968493 +AWS,eu-west-2,g5.4xlarge,reserved_1y,no_upfront,1.2121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:00.726135 +AWS,eu-west-2,g5.4xlarge,reserved_1y,partial_upfront,1.2121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:39.204953 +AWS,eu-west-2,g5.4xlarge,reserved_3y,all_upfront,0.404033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:08.872926 +AWS,eu-west-2,g5.4xlarge,reserved_3y,no_upfront,0.404033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:07.225956 +AWS,eu-west-2,g5.4xlarge,reserved_3y,partial_upfront,0.404033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:49.006346 +AWS,eu-west-2,g5.4xlarge,spot,NA,0.72188,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688039 +AWS,eu-west-2,g5.8xlarge,on_demand,NA,3.10745,USD,AWS Pricing API,2025-11-30T09:06:53.966200 +AWS,eu-west-2,g5.8xlarge,reserved_1y,all_upfront,2.485988,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:22.721201 +AWS,eu-west-2,g5.8xlarge,reserved_1y,no_upfront,2.485988,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:08.594419 +AWS,eu-west-2,g5.8xlarge,reserved_1y,partial_upfront,2.485988,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:46.875162 +AWS,eu-west-2,g5.8xlarge,reserved_3y,all_upfront,1.242989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:16.453301 +AWS,eu-west-2,g5.8xlarge,reserved_3y,no_upfront,1.242989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:15.096078 +AWS,eu-west-2,g5.8xlarge,reserved_3y,partial_upfront,1.242989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:56.664123 +AWS,eu-west-2,g5.8xlarge,spot,NA,1.135013,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688174 +AWS,eu-west-2,g5.xlarge,on_demand,NA,1.277,USD,AWS Pricing API,2025-11-30T09:07:41.072298 +AWS,eu-west-2,g5.xlarge,reserved_1y,all_upfront,1.02161,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:09.871619 +AWS,eu-west-2,g5.xlarge,reserved_1y,no_upfront,1.02161,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:56.276673 +AWS,eu-west-2,g5.xlarge,reserved_1y,partial_upfront,1.02161,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:33.715222 +AWS,eu-west-2,g5.xlarge,reserved_3y,all_upfront,0.510803,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:02.667767 +AWS,eu-west-2,g5.xlarge,reserved_3y,no_upfront,0.510803,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:03.064838 +AWS,eu-west-2,g5.xlarge,reserved_3y,partial_upfront,0.510803,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:43.428064 +AWS,eu-west-2,g5.xlarge,spot,NA,0.421202,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689319 +AWS,eu-west-2,g6.12xlarge,on_demand,NA,5.8412,USD,AWS Pricing API,2025-11-30T09:06:37.539127 +AWS,eu-west-2,g6.12xlarge,reserved_1y,all_upfront,9.123174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:06.170924 +AWS,eu-west-2,g6.12xlarge,reserved_1y,no_upfront,9.123174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:51.831631 +AWS,eu-west-2,g6.12xlarge,reserved_1y,partial_upfront,9.123174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:30.374452 +AWS,eu-west-2,g6.12xlarge,reserved_3y,all_upfront,3.041058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:00.220654 +AWS,eu-west-2,g6.12xlarge,reserved_3y,no_upfront,3.041058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:58.235248 +AWS,eu-west-2,g6.12xlarge,reserved_3y,partial_upfront,3.041058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:40.209224 +AWS,eu-west-2,g6.12xlarge,spot,NA,2.529214,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687809 +AWS,eu-west-2,g6.16xlarge,on_demand,NA,4.31184,USD,AWS Pricing API,2025-11-30T09:06:34.833919 +AWS,eu-west-2,g6.16xlarge,reserved_1y,all_upfront,6.734589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:03.443364 +AWS,eu-west-2,g6.16xlarge,reserved_1y,no_upfront,6.734589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:49.114116 +AWS,eu-west-2,g6.16xlarge,reserved_1y,partial_upfront,6.734589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:27.688582 +AWS,eu-west-2,g6.16xlarge,reserved_3y,all_upfront,2.244863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:57.580660 +AWS,eu-west-2,g6.16xlarge,reserved_3y,no_upfront,2.244863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:55.446610 +AWS,eu-west-2,g6.16xlarge,reserved_3y,partial_upfront,2.244863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:37.462084 +AWS,eu-west-2,g6.16xlarge,spot,NA,1.503856,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687764 +AWS,eu-west-2,g6.24xlarge,on_demand,NA,8.47339,USD,AWS Pricing API,2025-11-30T09:06:34.970221 +AWS,eu-west-2,g6.24xlarge,reserved_1y,all_upfront,5.51618,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:03.579418 +AWS,eu-west-2,g6.24xlarge,reserved_1y,no_upfront,5.51618,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:49.250264 +AWS,eu-west-2,g6.24xlarge,reserved_1y,partial_upfront,5.51618,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:27.822676 +AWS,eu-west-2,g6.24xlarge,reserved_3y,all_upfront,5.51618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:57.711025 +AWS,eu-west-2,g6.24xlarge,reserved_3y,no_upfront,5.51618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:55.586191 +AWS,eu-west-2,g6.24xlarge,reserved_3y,partial_upfront,5.51618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:37.595882 +AWS,eu-west-2,g6.24xlarge,spot,NA,3.190187,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687754 +AWS,eu-west-2,g6.2xlarge,on_demand,NA,1.24095,USD,AWS Pricing API,2025-11-30T09:06:36.591228 +AWS,eu-west-2,g6.2xlarge,reserved_1y,all_upfront,0.753995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:05.224240 +AWS,eu-west-2,g6.2xlarge,reserved_1y,no_upfront,0.753995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:50.881155 +AWS,eu-west-2,g6.2xlarge,reserved_1y,partial_upfront,0.753995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:29.429574 +AWS,eu-west-2,g6.2xlarge,reserved_3y,all_upfront,0.251332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:59.295651 +AWS,eu-west-2,g6.2xlarge,reserved_3y,no_upfront,0.251332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:57.276536 +AWS,eu-west-2,g6.2xlarge,reserved_3y,partial_upfront,0.251332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:39.266688 +AWS,eu-west-2,g6.2xlarge,spot,NA,0.432891,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687797 +AWS,eu-west-2,g6.48xlarge,on_demand,NA,16.94678,USD,AWS Pricing API,2025-11-30T09:06:34.415378 +AWS,eu-west-2,g6.48xlarge,reserved_1y,all_upfront,13.133775,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:03.019352 +AWS,eu-west-2,g6.48xlarge,reserved_1y,no_upfront,13.133775,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:48.703952 +AWS,eu-west-2,g6.48xlarge,reserved_1y,partial_upfront,13.133775,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:27.283773 +AWS,eu-west-2,g6.48xlarge,reserved_3y,all_upfront,8.755845,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:57.185619 +AWS,eu-west-2,g6.48xlarge,reserved_3y,no_upfront,8.755845,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:55.036211 +AWS,eu-west-2,g6.48xlarge,reserved_3y,partial_upfront,8.755845,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:37.063326 +AWS,eu-west-2,g6.48xlarge,spot,NA,5.326343,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687773 +AWS,eu-west-2,g6.4xlarge,on_demand,NA,1.67965,USD,AWS Pricing API,2025-11-30T09:06:35.245077 +AWS,eu-west-2,g6.4xlarge,reserved_1y,all_upfront,1.041352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:03.860953 +AWS,eu-west-2,g6.4xlarge,reserved_1y,no_upfront,1.041352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:49.529296 +AWS,eu-west-2,g6.4xlarge,reserved_1y,partial_upfront,1.041352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:28.090139 +AWS,eu-west-2,g6.4xlarge,reserved_3y,all_upfront,0.694244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:57.978426 +AWS,eu-west-2,g6.4xlarge,reserved_3y,no_upfront,0.694244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:55.863867 +AWS,eu-west-2,g6.4xlarge,reserved_3y,partial_upfront,0.694244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:37.871923 +AWS,eu-west-2,g6.4xlarge,spot,NA,0.695555,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687768 +AWS,eu-west-2,g6.8xlarge,on_demand,NA,2.55705,USD,AWS Pricing API,2025-11-30T09:06:36.044625 +AWS,eu-west-2,g6.8xlarge,reserved_1y,all_upfront,1.66464,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:04.683043 +AWS,eu-west-2,g6.8xlarge,reserved_1y,no_upfront,1.66464,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:50.336664 +AWS,eu-west-2,g6.8xlarge,reserved_1y,partial_upfront,1.66464,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:28.887081 +AWS,eu-west-2,g6.8xlarge,reserved_3y,all_upfront,1.66464,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:58.765227 +AWS,eu-west-2,g6.8xlarge,reserved_3y,no_upfront,1.66464,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:56.696540 +AWS,eu-west-2,g6.8xlarge,reserved_3y,partial_upfront,1.66464,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:38.665782 +AWS,eu-west-2,g6.8xlarge,spot,NA,0.842183,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687793 +AWS,eu-west-2,g6.xlarge,on_demand,NA,1.0216,USD,AWS Pricing API,2025-11-30T09:06:34.557388 +AWS,eu-west-2,g6.xlarge,reserved_1y,all_upfront,0.83133,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:03.166935 +AWS,eu-west-2,g6.xlarge,reserved_1y,no_upfront,0.83133,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:48.839637 +AWS,eu-west-2,g6.xlarge,reserved_1y,partial_upfront,0.83133,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:27.419008 +AWS,eu-west-2,g6.xlarge,reserved_3y,all_upfront,0.83133,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:57.317030 +AWS,eu-west-2,g6.xlarge,reserved_3y,no_upfront,0.83133,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:55.173588 +AWS,eu-west-2,g6.xlarge,reserved_3y,partial_upfront,0.83133,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:37.196314 +AWS,eu-west-2,g6.xlarge,spot,NA,0.363726,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687741 +AWS,eu-west-2,gr6.4xlarge,on_demand,NA,1.9539,USD,AWS Pricing API,2025-11-30T09:06:35.908549 +AWS,eu-west-2,gr6.4xlarge,reserved_1y,all_upfront,1.27199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:04.547277 +AWS,eu-west-2,gr6.4xlarge,reserved_1y,no_upfront,1.27199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:50.200866 +AWS,eu-west-2,gr6.4xlarge,reserved_1y,partial_upfront,1.27199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:28.750987 +AWS,eu-west-2,gr6.4xlarge,reserved_3y,all_upfront,1.27199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:58.631309 +AWS,eu-west-2,gr6.4xlarge,reserved_3y,no_upfront,1.27199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:56.558769 +AWS,eu-west-2,gr6.4xlarge,reserved_3y,partial_upfront,1.27199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:38.532075 +AWS,eu-west-2,gr6.4xlarge,spot,NA,0.606113,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687805 +AWS,eu-west-2,gr6.8xlarge,on_demand,NA,3.10552,USD,AWS Pricing API,2025-11-30T09:06:37.263960 +AWS,eu-west-2,gr6.8xlarge,reserved_1y,all_upfront,1.886872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:05.897833 +AWS,eu-west-2,gr6.8xlarge,reserved_1y,no_upfront,1.886872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:51.560043 +AWS,eu-west-2,gr6.8xlarge,reserved_1y,partial_upfront,1.886872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:30.106754 +AWS,eu-west-2,gr6.8xlarge,reserved_3y,all_upfront,0.628957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:59.953685 +AWS,eu-west-2,gr6.8xlarge,reserved_3y,no_upfront,0.628957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:57.963411 +AWS,eu-west-2,gr6.8xlarge,reserved_3y,partial_upfront,0.628957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:39.939691 +AWS,eu-west-2,gr6.8xlarge,spot,NA,0.956,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687826 +AWS,eu-west-2,i3.16xlarge,on_demand,NA,5.792,USD,AWS Pricing API,2025-11-30T09:07:32.518673 +AWS,eu-west-2,i3.16xlarge,reserved_1y,all_upfront,3.76442,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:01.270867 +AWS,eu-west-2,i3.16xlarge,reserved_1y,no_upfront,3.76442,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:47.663152 +AWS,eu-west-2,i3.16xlarge,reserved_1y,partial_upfront,3.76442,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:25.211288 +AWS,eu-west-2,i3.16xlarge,reserved_3y,all_upfront,2.509473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:54.181564 +AWS,eu-west-2,i3.16xlarge,reserved_3y,no_upfront,2.509473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:54.366734 +AWS,eu-west-2,i3.16xlarge,reserved_3y,partial_upfront,2.509473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:34.959422 +AWS,eu-west-2,i3.16xlarge,spot,NA,1.773797,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689151 +AWS,eu-west-2,i3.2xlarge,on_demand,NA,0.724,USD,AWS Pricing API,2025-11-30T09:06:52.195481 +AWS,eu-west-2,i3.2xlarge,reserved_1y,all_upfront,0.470274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:20.971032 +AWS,eu-west-2,i3.2xlarge,reserved_1y,no_upfront,0.470274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:06.814792 +AWS,eu-west-2,i3.2xlarge,reserved_1y,partial_upfront,0.470274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:45.125568 +AWS,eu-west-2,i3.2xlarge,reserved_3y,all_upfront,0.313425,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:14.737776 +AWS,eu-west-2,i3.2xlarge,reserved_3y,no_upfront,0.313425,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:13.297328 +AWS,eu-west-2,i3.2xlarge,reserved_3y,partial_upfront,0.313425,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:54.916567 +AWS,eu-west-2,i3.2xlarge,spot,NA,0.242391,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688153 +AWS,eu-west-2,i3.4xlarge,on_demand,NA,1.448,USD,AWS Pricing API,2025-11-30T09:06:53.683954 +AWS,eu-west-2,i3.4xlarge,reserved_1y,all_upfront,1.303397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:22.453789 +AWS,eu-west-2,i3.4xlarge,reserved_1y,no_upfront,1.303397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:08.315118 +AWS,eu-west-2,i3.4xlarge,reserved_1y,partial_upfront,1.303397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:46.608069 +AWS,eu-west-2,i3.4xlarge,reserved_3y,all_upfront,0.651799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:16.189080 +AWS,eu-west-2,i3.4xlarge,reserved_3y,no_upfront,0.651799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:14.826446 +AWS,eu-west-2,i3.4xlarge,reserved_3y,partial_upfront,0.651799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:56.397364 +AWS,eu-west-2,i3.4xlarge,spot,NA,0.593688,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688200 +AWS,eu-west-2,i3.8xlarge,on_demand,NA,2.896,USD,AWS Pricing API,2025-11-30T09:06:47.903753 +AWS,eu-west-2,i3.8xlarge,reserved_1y,all_upfront,2.606795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:16.585976 +AWS,eu-west-2,i3.8xlarge,reserved_1y,no_upfront,2.606795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:02.383884 +AWS,eu-west-2,i3.8xlarge,reserved_1y,partial_upfront,2.606795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:40.822350 +AWS,eu-west-2,i3.8xlarge,reserved_3y,all_upfront,1.303598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:10.468577 +AWS,eu-west-2,i3.8xlarge,reserved_3y,no_upfront,1.303598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:08.870658 +AWS,eu-west-2,i3.8xlarge,reserved_3y,partial_upfront,1.303598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:50.621167 +AWS,eu-west-2,i3.8xlarge,spot,NA,1.445288,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688056 +AWS,eu-west-2,i3.large,on_demand,NA,0.181,USD,AWS Pricing API,2025-11-30T09:06:52.882291 +AWS,eu-west-2,i3.large,reserved_1y,all_upfront,0.11779,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:21.646947 +AWS,eu-west-2,i3.large,reserved_1y,no_upfront,0.11779,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:07.506554 +AWS,eu-west-2,i3.large,reserved_1y,partial_upfront,0.11779,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:45.801271 +AWS,eu-west-2,i3.large,reserved_3y,all_upfront,0.078597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:15.399070 +AWS,eu-west-2,i3.large,reserved_3y,no_upfront,0.078597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:13.999234 +AWS,eu-west-2,i3.large,reserved_3y,partial_upfront,0.078597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:55.594451 +AWS,eu-west-2,i3.large,spot,NA,0.057969,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688196 +AWS,eu-west-2,i3.xlarge,on_demand,NA,0.362,USD,AWS Pricing API,2025-11-30T09:07:18.235650 +AWS,eu-west-2,i3.xlarge,reserved_1y,all_upfront,0.271731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:47.006870 +AWS,eu-west-2,i3.xlarge,reserved_1y,no_upfront,0.271731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:33.266298 +AWS,eu-west-2,i3.xlarge,reserved_1y,partial_upfront,0.271731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:11.005833 +AWS,eu-west-2,i3.xlarge,reserved_3y,all_upfront,0.181244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:40.194163 +AWS,eu-west-2,i3.xlarge,reserved_3y,no_upfront,0.181244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:39.793197 +AWS,eu-west-2,i3.xlarge,reserved_3y,partial_upfront,0.181244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:20.872738 +AWS,eu-west-2,i3.xlarge,spot,NA,0.132243,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688823 +AWS,eu-west-2,i3en.12xlarge,on_demand,NA,6.312,USD,AWS Pricing API,2025-11-30T09:06:49.909294 +AWS,eu-west-2,i3en.12xlarge,reserved_1y,all_upfront,5.079703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:18.635749 +AWS,eu-west-2,i3en.12xlarge,reserved_1y,no_upfront,5.079703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:04.456336 +AWS,eu-west-2,i3en.12xlarge,reserved_1y,partial_upfront,5.079703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:42.838616 +AWS,eu-west-2,i3en.12xlarge,reserved_3y,all_upfront,2.539901,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:12.471734 +AWS,eu-west-2,i3en.12xlarge,reserved_3y,no_upfront,2.539901,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:10.943935 +AWS,eu-west-2,i3en.12xlarge,reserved_3y,partial_upfront,2.539901,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:52.631877 +AWS,eu-west-2,i3en.12xlarge,spot,NA,1.999741,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688084 +AWS,eu-west-2,i3en.24xlarge,on_demand,NA,12.624,USD,AWS Pricing API,2025-11-30T09:06:55.170466 +AWS,eu-west-2,i3en.24xlarge,reserved_1y,all_upfront,11.774594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:23.952077 +AWS,eu-west-2,i3en.24xlarge,reserved_1y,no_upfront,11.774594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:09.826713 +AWS,eu-west-2,i3en.24xlarge,reserved_1y,partial_upfront,11.774594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:48.083846 +AWS,eu-west-2,i3en.24xlarge,reserved_3y,all_upfront,5.887531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:17.655715 +AWS,eu-west-2,i3en.24xlarge,reserved_3y,no_upfront,5.887531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:16.336219 +AWS,eu-west-2,i3en.24xlarge,reserved_3y,partial_upfront,5.887531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:57.864766 +AWS,eu-west-2,i3en.24xlarge,spot,NA,4.050445,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688224 +AWS,eu-west-2,i3en.2xlarge,on_demand,NA,1.052,USD,AWS Pricing API,2025-11-30T09:06:45.064898 +AWS,eu-west-2,i3en.2xlarge,reserved_1y,all_upfront,0.719,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:13.752552 +AWS,eu-west-2,i3en.2xlarge,reserved_1y,no_upfront,0.719,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:59.487545 +AWS,eu-west-2,i3en.2xlarge,reserved_1y,partial_upfront,0.719,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:37.969310 +AWS,eu-west-2,i3en.2xlarge,reserved_3y,all_upfront,0.719,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:07.685753 +AWS,eu-west-2,i3en.2xlarge,reserved_3y,no_upfront,0.719,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:05.985149 +AWS,eu-west-2,i3en.2xlarge,reserved_3y,partial_upfront,0.719,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:47.777833 +AWS,eu-west-2,i3en.2xlarge,spot,NA,0.408672,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687999 +AWS,eu-west-2,i3en.3xlarge,on_demand,NA,1.578,USD,AWS Pricing API,2025-11-30T09:07:39.707934 +AWS,eu-west-2,i3en.3xlarge,reserved_1y,all_upfront,1.027699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:08.509765 +AWS,eu-west-2,i3en.3xlarge,reserved_1y,no_upfront,1.027699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:54.891332 +AWS,eu-west-2,i3en.3xlarge,reserved_1y,partial_upfront,1.027699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:32.352436 +AWS,eu-west-2,i3en.3xlarge,reserved_3y,all_upfront,0.685233,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:01.260361 +AWS,eu-west-2,i3en.3xlarge,reserved_3y,no_upfront,0.685233,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:01.668473 +AWS,eu-west-2,i3en.3xlarge,reserved_3y,partial_upfront,0.685233,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:42.080391 +AWS,eu-west-2,i3en.3xlarge,spot,NA,0.527591,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689313 +AWS,eu-west-2,i3en.6xlarge,on_demand,NA,3.156,USD,AWS Pricing API,2025-11-30T09:07:31.009489 +AWS,eu-west-2,i3en.6xlarge,reserved_1y,all_upfront,2.321689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:59.773949 +AWS,eu-west-2,i3en.6xlarge,reserved_1y,no_upfront,2.321689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:46.169837 +AWS,eu-west-2,i3en.6xlarge,reserved_1y,partial_upfront,2.321689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:23.714380 +AWS,eu-west-2,i3en.6xlarge,reserved_3y,all_upfront,0.773896,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:52.673171 +AWS,eu-west-2,i3en.6xlarge,reserved_3y,no_upfront,0.773896,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:52.843013 +AWS,eu-west-2,i3en.6xlarge,reserved_3y,partial_upfront,0.773896,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:33.498101 +AWS,eu-west-2,i3en.6xlarge,spot,NA,0.974493,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689111 +AWS,eu-west-2,i3en.large,on_demand,NA,0.263,USD,AWS Pricing API,2025-11-30T09:07:03.709495 +AWS,eu-west-2,i3en.large,reserved_1y,all_upfront,0.21179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:32.489458 +AWS,eu-west-2,i3en.large,reserved_1y,no_upfront,0.21179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:18.443483 +AWS,eu-west-2,i3en.large,reserved_1y,partial_upfront,0.21179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:56.586925 +AWS,eu-west-2,i3en.large,reserved_3y,all_upfront,0.10593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:26.003140 +AWS,eu-west-2,i3en.large,reserved_3y,no_upfront,0.10593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:25.016385 +AWS,eu-west-2,i3en.large,reserved_3y,partial_upfront,0.10593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:06.389118 +AWS,eu-west-2,i3en.large,spot,NA,0.078977,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688532 +AWS,eu-west-2,i3en.xlarge,on_demand,NA,0.526,USD,AWS Pricing API,2025-11-30T09:07:03.026496 +AWS,eu-west-2,i3en.xlarge,reserved_1y,all_upfront,0.342233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:31.816715 +AWS,eu-west-2,i3en.xlarge,reserved_1y,no_upfront,0.342233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:17.763684 +AWS,eu-west-2,i3en.xlarge,reserved_1y,partial_upfront,0.342233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:55.912802 +AWS,eu-west-2,i3en.xlarge,reserved_3y,all_upfront,0.228078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:25.343946 +AWS,eu-west-2,i3en.xlarge,reserved_3y,no_upfront,0.228078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:24.329747 +AWS,eu-west-2,i3en.xlarge,reserved_3y,partial_upfront,0.228078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:05.700800 +AWS,eu-west-2,i3en.xlarge,spot,NA,0.175642,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688460 +AWS,eu-west-2,i4i.16xlarge,on_demand,NA,6.371,USD,AWS Pricing API,2025-11-30T09:07:07.979399 +AWS,eu-west-2,i4i.16xlarge,reserved_1y,all_upfront,5.44342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:36.694025 +AWS,eu-west-2,i4i.16xlarge,reserved_1y,no_upfront,5.44342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:22.811650 +AWS,eu-west-2,i4i.16xlarge,reserved_1y,partial_upfront,5.44342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:00.756376 +AWS,eu-west-2,i4i.16xlarge,reserved_3y,all_upfront,2.721807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:30.116353 +AWS,eu-west-2,i4i.16xlarge,reserved_3y,no_upfront,2.721807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:29.301783 +AWS,eu-west-2,i4i.16xlarge,reserved_3y,partial_upfront,2.721807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:10.558127 +AWS,eu-west-2,i4i.16xlarge,spot,NA,1.966788,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688627 +AWS,eu-west-2,i4i.2xlarge,on_demand,NA,0.796,USD,AWS Pricing API,2025-11-30T09:07:23.944610 +AWS,eu-west-2,i4i.2xlarge,reserved_1y,all_upfront,0.959361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:52.699554 +AWS,eu-west-2,i4i.2xlarge,reserved_1y,no_upfront,0.959361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:39.042360 +AWS,eu-west-2,i4i.2xlarge,reserved_1y,partial_upfront,0.959361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:16.689535 +AWS,eu-west-2,i4i.2xlarge,reserved_3y,all_upfront,0.319787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:45.779093 +AWS,eu-west-2,i4i.2xlarge,reserved_3y,no_upfront,0.319787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:45.631417 +AWS,eu-west-2,i4i.2xlarge,reserved_3y,partial_upfront,0.319787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:26.514411 +AWS,eu-west-2,i4i.2xlarge,spot,NA,0.305766,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688924 +AWS,eu-west-2,i4i.32xlarge,on_demand,NA,12.7424,USD,AWS Pricing API,2025-11-30T09:07:36.291731 +AWS,eu-west-2,i4i.32xlarge,reserved_1y,all_upfront,8.3155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:05.117554 +AWS,eu-west-2,i4i.32xlarge,reserved_1y,no_upfront,8.3155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:51.476744 +AWS,eu-west-2,i4i.32xlarge,reserved_1y,partial_upfront,8.3155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:28.967368 +AWS,eu-west-2,i4i.32xlarge,reserved_3y,all_upfront,8.3155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:57.917310 +AWS,eu-west-2,i4i.32xlarge,reserved_3y,no_upfront,8.3155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:58.210413 +AWS,eu-west-2,i4i.32xlarge,reserved_3y,partial_upfront,8.3155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:38.720541 +AWS,eu-west-2,i4i.32xlarge,spot,NA,3.950388,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689245 +AWS,eu-west-2,i4i.4xlarge,on_demand,NA,1.593,USD,AWS Pricing API,2025-11-30T09:07:12.432945 +AWS,eu-west-2,i4i.4xlarge,reserved_1y,all_upfront,1.918721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:41.193631 +AWS,eu-west-2,i4i.4xlarge,reserved_1y,no_upfront,1.918721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:27.352747 +AWS,eu-west-2,i4i.4xlarge,reserved_1y,partial_upfront,1.918721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:05.213692 +AWS,eu-west-2,i4i.4xlarge,reserved_3y,all_upfront,0.639574,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:34.486713 +AWS,eu-west-2,i4i.4xlarge,reserved_3y,no_upfront,0.639574,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:33.845828 +AWS,eu-west-2,i4i.4xlarge,reserved_3y,partial_upfront,0.639574,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:15.080690 +AWS,eu-west-2,i4i.4xlarge,spot,NA,0.603843,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688706 +AWS,eu-west-2,i4i.8xlarge,on_demand,NA,3.186,USD,AWS Pricing API,2025-11-30T09:07:15.411975 +AWS,eu-west-2,i4i.8xlarge,reserved_1y,all_upfront,2.482,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:44.179619 +AWS,eu-west-2,i4i.8xlarge,reserved_1y,no_upfront,2.482,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:30.369266 +AWS,eu-west-2,i4i.8xlarge,reserved_1y,partial_upfront,2.482,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:08.194976 +AWS,eu-west-2,i4i.8xlarge,reserved_3y,all_upfront,2.482,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:37.406731 +AWS,eu-west-2,i4i.8xlarge,reserved_3y,no_upfront,2.482,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:36.873782 +AWS,eu-west-2,i4i.8xlarge,reserved_3y,partial_upfront,2.482,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:18.038857 +AWS,eu-west-2,i4i.8xlarge,spot,NA,1.285453,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688788 +AWS,eu-west-2,i4i.large,on_demand,NA,0.199,USD,AWS Pricing API,2025-11-30T09:07:40.936294 +AWS,eu-west-2,i4i.large,reserved_1y,all_upfront,0.147858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:09.733856 +AWS,eu-west-2,i4i.large,reserved_1y,no_upfront,0.147858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:56.130845 +AWS,eu-west-2,i4i.large,reserved_1y,partial_upfront,0.147858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:33.570880 +AWS,eu-west-2,i4i.large,reserved_3y,all_upfront,0.098619,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:02.533788 +AWS,eu-west-2,i4i.large,reserved_3y,no_upfront,0.098619,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:02.926444 +AWS,eu-west-2,i4i.large,reserved_3y,partial_upfront,0.098619,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:43.294494 +AWS,eu-west-2,i4i.large,spot,NA,0.064123,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689345 +AWS,eu-west-2,i4i.xlarge,on_demand,NA,0.398,USD,AWS Pricing API,2025-11-30T09:07:22.289480 +AWS,eu-west-2,i4i.xlarge,reserved_1y,all_upfront,0.603767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:51.066288 +AWS,eu-west-2,i4i.xlarge,reserved_1y,no_upfront,0.603767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:37.397205 +AWS,eu-west-2,i4i.xlarge,reserved_1y,partial_upfront,0.603767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:15.068864 +AWS,eu-west-2,i4i.xlarge,reserved_3y,all_upfront,0.201256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:44.162191 +AWS,eu-west-2,i4i.xlarge,reserved_3y,no_upfront,0.201256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:43.963635 +AWS,eu-west-2,i4i.xlarge,reserved_3y,partial_upfront,0.201256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:24.889573 +AWS,eu-west-2,i4i.xlarge,spot,NA,0.138924,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688916 +AWS,eu-west-2,i7i.12xlarge,on_demand,NA,5.2562,USD,AWS Pricing API,2025-11-30T09:07:00.463503 +AWS,eu-west-2,i7i.12xlarge,spot,NA,2.378351,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688360 +AWS,eu-west-2,i7i.16xlarge,on_demand,NA,7.0083,USD,AWS Pricing API,2025-11-30T09:07:46.206441 +AWS,eu-west-2,i7i.16xlarge,spot,NA,2.896002,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689448 +AWS,eu-west-2,i7i.24xlarge,on_demand,NA,10.5125,USD,AWS Pricing API,2025-11-30T09:06:41.457026 +AWS,eu-west-2,i7i.24xlarge,spot,NA,4.10243,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687901 +AWS,eu-west-2,i7i.2xlarge,on_demand,NA,0.876,USD,AWS Pricing API,2025-11-30T09:06:38.623064 +AWS,eu-west-2,i7i.2xlarge,spot,NA,0.373844,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687850 +AWS,eu-west-2,i7i.48xlarge,on_demand,NA,21.025,USD,AWS Pricing API,2025-11-30T09:06:40.381147 +AWS,eu-west-2,i7i.48xlarge,spot,NA,7.839438,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687882 +AWS,eu-west-2,i7i.4xlarge,on_demand,NA,1.7521,USD,AWS Pricing API,2025-11-30T09:07:43.104503 +AWS,eu-west-2,i7i.4xlarge,spot,NA,0.812311,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689385 +AWS,eu-west-2,i7i.8xlarge,on_demand,NA,3.5042,USD,AWS Pricing API,2025-11-30T09:07:13.096674 +AWS,eu-west-2,i7i.8xlarge,spot,NA,1.083644,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688730 +AWS,eu-west-2,i7i.large,on_demand,NA,0.219,USD,AWS Pricing API,2025-11-30T09:06:56.664283 +AWS,eu-west-2,i7i.large,spot,NA,0.114722,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688258 +AWS,eu-west-2,i7i.xlarge,on_demand,NA,0.438,USD,AWS Pricing API,2025-11-30T09:07:05.074735 +AWS,eu-west-2,i7i.xlarge,spot,NA,0.239557,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688566 +AWS,eu-west-2,i8g.12xlarge,on_demand,NA,4.7784,USD,AWS Pricing API,2025-11-30T09:07:36.555375 +AWS,eu-west-2,i8g.12xlarge,spot,NA,2.20546,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689237 +AWS,eu-west-2,i8g.16xlarge,on_demand,NA,6.3712,USD,AWS Pricing API,2025-11-30T09:07:33.593283 +AWS,eu-west-2,i8g.16xlarge,spot,NA,3.394497,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689161 +AWS,eu-west-2,i8g.24xlarge,on_demand,NA,9.5568,USD,AWS Pricing API,2025-11-30T09:07:36.021484 +AWS,eu-west-2,i8g.24xlarge,spot,NA,5.291522,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689217 +AWS,eu-west-2,i8g.2xlarge,on_demand,NA,0.7964,USD,AWS Pricing API,2025-11-30T09:07:03.161966 +AWS,eu-west-2,i8g.2xlarge,spot,NA,0.436067,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688454 +AWS,eu-west-2,i8g.48xlarge,on_demand,NA,19.1136,USD,AWS Pricing API,2025-11-30T09:06:43.858138 +AWS,eu-west-2,i8g.48xlarge,spot,NA,10.969853,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687970 +AWS,eu-west-2,i8g.4xlarge,on_demand,NA,1.5928,USD,AWS Pricing API,2025-11-30T09:07:30.738168 +AWS,eu-west-2,i8g.4xlarge,spot,NA,0.882232,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689086 +AWS,eu-west-2,i8g.8xlarge,on_demand,NA,3.1856,USD,AWS Pricing API,2025-11-30T09:07:49.850209 +AWS,eu-west-2,i8g.8xlarge,spot,NA,1.7257,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689550 +AWS,eu-west-2,i8g.large,on_demand,NA,0.1991,USD,AWS Pricing API,2025-11-30T09:07:07.682563 +AWS,eu-west-2,i8g.large,spot,NA,0.108246,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688609 +AWS,eu-west-2,i8g.xlarge,on_demand,NA,0.3982,USD,AWS Pricing API,2025-11-30T09:06:59.645792 +AWS,eu-west-2,i8g.xlarge,spot,NA,0.219953,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688368 +AWS,eu-west-2,im4gn.16xlarge,on_demand,NA,6.75347,USD,AWS Pricing API,2025-11-30T09:07:06.726004 +AWS,eu-west-2,im4gn.16xlarge,reserved_1y,all_upfront,4.953616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:35.470749 +AWS,eu-west-2,im4gn.16xlarge,reserved_1y,no_upfront,4.953616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:21.562148 +AWS,eu-west-2,im4gn.16xlarge,reserved_1y,partial_upfront,4.953616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:59.547050 +AWS,eu-west-2,im4gn.16xlarge,reserved_3y,all_upfront,3.302399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:28.913582 +AWS,eu-west-2,im4gn.16xlarge,reserved_3y,no_upfront,3.302399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:28.045692 +AWS,eu-west-2,im4gn.16xlarge,reserved_3y,partial_upfront,3.302399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:09.328267 +AWS,eu-west-2,im4gn.16xlarge,spot,NA,2.129473,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688590 +AWS,eu-west-2,im4gn.2xlarge,on_demand,NA,0.84418,USD,AWS Pricing API,2025-11-30T09:07:04.389336 +AWS,eu-west-2,im4gn.2xlarge,reserved_1y,all_upfront,1.264954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:33.167313 +AWS,eu-west-2,im4gn.2xlarge,reserved_1y,no_upfront,1.264954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:19.126211 +AWS,eu-west-2,im4gn.2xlarge,reserved_1y,partial_upfront,1.264954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:57.261242 +AWS,eu-west-2,im4gn.2xlarge,reserved_3y,all_upfront,0.421651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:26.661076 +AWS,eu-west-2,im4gn.2xlarge,reserved_3y,no_upfront,0.421651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:25.700212 +AWS,eu-west-2,im4gn.2xlarge,reserved_3y,partial_upfront,0.421651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:07.051967 +AWS,eu-west-2,im4gn.2xlarge,spot,NA,0.269804,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688526 +AWS,eu-west-2,im4gn.4xlarge,on_demand,NA,1.68837,USD,AWS Pricing API,2025-11-30T09:06:59.100066 +AWS,eu-west-2,im4gn.4xlarge,reserved_1y,all_upfront,0.76982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:27.879210 +AWS,eu-west-2,im4gn.4xlarge,reserved_1y,no_upfront,0.76982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:13.808120 +AWS,eu-west-2,im4gn.4xlarge,reserved_1y,partial_upfront,0.76982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:51.988836 +AWS,eu-west-2,im4gn.4xlarge,reserved_3y,all_upfront,0.76982,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:21.504787 +AWS,eu-west-2,im4gn.4xlarge,reserved_3y,no_upfront,0.76982,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:20.338335 +AWS,eu-west-2,im4gn.4xlarge,reserved_3y,partial_upfront,0.76982,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:01.788525 +AWS,eu-west-2,im4gn.4xlarge,spot,NA,0.511188,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688310 +AWS,eu-west-2,im4gn.8xlarge,on_demand,NA,3.37674,USD,AWS Pricing API,2025-11-30T09:06:59.508889 +AWS,eu-west-2,im4gn.8xlarge,reserved_1y,all_upfront,1.53965,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:28.289636 +AWS,eu-west-2,im4gn.8xlarge,reserved_1y,no_upfront,1.53965,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:14.218888 +AWS,eu-west-2,im4gn.8xlarge,reserved_1y,partial_upfront,1.53965,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:52.390711 +AWS,eu-west-2,im4gn.8xlarge,reserved_3y,all_upfront,1.53965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:21.900269 +AWS,eu-west-2,im4gn.8xlarge,reserved_3y,no_upfront,1.53965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:20.753177 +AWS,eu-west-2,im4gn.8xlarge,reserved_3y,partial_upfront,1.53965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:02.207529 +AWS,eu-west-2,im4gn.8xlarge,spot,NA,1.049942,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688335 +AWS,eu-west-2,im4gn.large,on_demand,NA,0.21105,USD,AWS Pricing API,2025-11-30T09:07:00.193774 +AWS,eu-west-2,im4gn.large,reserved_1y,all_upfront,0.178226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:28.971530 +AWS,eu-west-2,im4gn.large,reserved_1y,no_upfront,0.178226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:14.901796 +AWS,eu-west-2,im4gn.large,reserved_1y,partial_upfront,0.178226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:53.076845 +AWS,eu-west-2,im4gn.large,reserved_3y,all_upfront,0.089109,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:22.563427 +AWS,eu-west-2,im4gn.large,reserved_3y,no_upfront,0.089109,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:21.437889 +AWS,eu-west-2,im4gn.large,reserved_3y,partial_upfront,0.089109,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:02.880856 +AWS,eu-west-2,im4gn.large,spot,NA,0.067596,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688348 +AWS,eu-west-2,im4gn.xlarge,on_demand,NA,0.42209,USD,AWS Pricing API,2025-11-30T09:07:48.211224 +AWS,eu-west-2,im4gn.xlarge,reserved_1y,all_upfront,0.32508,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:17.060026 +AWS,eu-west-2,im4gn.xlarge,reserved_1y,no_upfront,0.32508,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:03.543240 +AWS,eu-west-2,im4gn.xlarge,reserved_1y,partial_upfront,0.32508,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:40.837904 +AWS,eu-west-2,im4gn.xlarge,reserved_3y,all_upfront,0.32508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:09.748864 +AWS,eu-west-2,im4gn.xlarge,reserved_3y,no_upfront,0.32508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:10.382711 +AWS,eu-west-2,im4gn.xlarge,reserved_3y,partial_upfront,0.32508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:50.535610 +AWS,eu-west-2,im4gn.xlarge,spot,NA,0.138626,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689486 +AWS,eu-west-2,is4gen.2xlarge,on_demand,NA,1.3413,USD,AWS Pricing API,2025-11-30T09:06:57.487355 +AWS,eu-west-2,is4gen.2xlarge,reserved_1y,all_upfront,0.70377,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:26.266282 +AWS,eu-west-2,is4gen.2xlarge,reserved_1y,no_upfront,0.70377,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:12.175915 +AWS,eu-west-2,is4gen.2xlarge,reserved_1y,partial_upfront,0.70377,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:50.391057 +AWS,eu-west-2,is4gen.2xlarge,reserved_3y,all_upfront,0.70377,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:19.914291 +AWS,eu-west-2,is4gen.2xlarge,reserved_3y,no_upfront,0.70377,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:18.674999 +AWS,eu-west-2,is4gen.2xlarge,reserved_3y,partial_upfront,0.70377,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:00.160840 +AWS,eu-west-2,is4gen.2xlarge,spot,NA,0.417295,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688282 +AWS,eu-west-2,is4gen.4xlarge,on_demand,NA,2.68261,USD,AWS Pricing API,2025-11-30T09:07:40.663753 +AWS,eu-west-2,is4gen.4xlarge,reserved_1y,all_upfront,1.744246,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:09.461354 +AWS,eu-west-2,is4gen.4xlarge,reserved_1y,no_upfront,1.744246,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:55.855181 +AWS,eu-west-2,is4gen.4xlarge,reserved_1y,partial_upfront,1.744246,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:33.302333 +AWS,eu-west-2,is4gen.4xlarge,reserved_3y,all_upfront,1.162815,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:02.263930 +AWS,eu-west-2,is4gen.4xlarge,reserved_3y,no_upfront,1.162815,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:02.649993 +AWS,eu-west-2,is4gen.4xlarge,reserved_3y,partial_upfront,1.162815,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:43.025706 +AWS,eu-west-2,is4gen.4xlarge,spot,NA,0.835349,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689325 +AWS,eu-west-2,is4gen.8xlarge,on_demand,NA,5.36522,USD,AWS Pricing API,2025-11-30T09:06:39.570426 +AWS,eu-west-2,is4gen.8xlarge,reserved_1y,all_upfront,2.8151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:08.232155 +AWS,eu-west-2,is4gen.8xlarge,reserved_1y,no_upfront,2.8151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:53.889175 +AWS,eu-west-2,is4gen.8xlarge,reserved_1y,partial_upfront,2.8151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:32.393085 +AWS,eu-west-2,is4gen.8xlarge,reserved_3y,all_upfront,2.8151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:02.232514 +AWS,eu-west-2,is4gen.8xlarge,reserved_3y,no_upfront,2.8151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:00.329897 +AWS,eu-west-2,is4gen.8xlarge,reserved_3y,partial_upfront,2.8151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:42.283115 +AWS,eu-west-2,is4gen.8xlarge,spot,NA,1.690222,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687874 +AWS,eu-west-2,is4gen.large,on_demand,NA,0.33533,USD,AWS Pricing API,2025-11-30T09:07:20.785458 +AWS,eu-west-2,is4gen.large,reserved_1y,all_upfront,0.478995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:49.576919 +AWS,eu-west-2,is4gen.large,reserved_1y,no_upfront,0.478995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:35.875487 +AWS,eu-west-2,is4gen.large,reserved_1y,partial_upfront,0.478995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:13.557130 +AWS,eu-west-2,is4gen.large,reserved_3y,all_upfront,0.159665,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:42.696155 +AWS,eu-west-2,is4gen.large,reserved_3y,no_upfront,0.159665,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:42.434095 +AWS,eu-west-2,is4gen.large,reserved_3y,partial_upfront,0.159665,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:23.422926 +AWS,eu-west-2,is4gen.large,spot,NA,0.103793,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688882 +AWS,eu-west-2,is4gen.xlarge,on_demand,NA,0.67065,USD,AWS Pricing API,2025-11-30T09:07:05.214422 +AWS,eu-west-2,is4gen.xlarge,reserved_1y,all_upfront,0.54706,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:33.975256 +AWS,eu-west-2,is4gen.xlarge,reserved_1y,no_upfront,0.54706,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:20.040853 +AWS,eu-west-2,is4gen.xlarge,reserved_1y,partial_upfront,0.54706,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:58.062647 +AWS,eu-west-2,is4gen.xlarge,reserved_3y,all_upfront,0.54706,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:27.460981 +AWS,eu-west-2,is4gen.xlarge,reserved_3y,no_upfront,0.54706,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:26.529999 +AWS,eu-west-2,is4gen.xlarge,reserved_3y,partial_upfront,0.54706,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:07.858598 +AWS,eu-west-2,is4gen.xlarge,spot,NA,0.209237,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688570 +AWS,eu-west-2,m4.10xlarge,on_demand,NA,2.32,USD,AWS Pricing API,2025-11-30T09:07:10.406644 +AWS,eu-west-2,m4.10xlarge,reserved_1y,all_upfront,1.575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:39.150991 +AWS,eu-west-2,m4.10xlarge,reserved_1y,no_upfront,1.575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:25.305405 +AWS,eu-west-2,m4.10xlarge,reserved_1y,partial_upfront,1.575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:03.197115 +AWS,eu-west-2,m4.10xlarge,reserved_3y,all_upfront,1.575,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:32.495518 +AWS,eu-west-2,m4.10xlarge,reserved_3y,no_upfront,1.575,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:31.763868 +AWS,eu-west-2,m4.10xlarge,reserved_3y,partial_upfront,1.575,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:13.064587 +AWS,eu-west-2,m4.10xlarge,spot,NA,0.763527,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688666 +AWS,eu-west-2,m4.16xlarge,on_demand,NA,3.712,USD,AWS Pricing API,2025-11-30T09:07:15.558346 +AWS,eu-west-2,m4.16xlarge,reserved_1y,all_upfront,2.52,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:44.314079 +AWS,eu-west-2,m4.16xlarge,reserved_1y,no_upfront,2.52,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:30.507059 +AWS,eu-west-2,m4.16xlarge,reserved_1y,partial_upfront,2.52,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:08.329369 +AWS,eu-west-2,m4.16xlarge,reserved_3y,all_upfront,2.52,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:37.538631 +AWS,eu-west-2,m4.16xlarge,reserved_3y,no_upfront,2.52,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:37.010280 +AWS,eu-west-2,m4.16xlarge,reserved_3y,partial_upfront,2.52,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:18.175951 +AWS,eu-west-2,m4.16xlarge,spot,NA,1.202171,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688777 +AWS,eu-west-2,m4.2xlarge,on_demand,NA,0.464,USD,AWS Pricing API,2025-11-30T09:06:57.078356 +AWS,eu-west-2,m4.2xlarge,reserved_1y,all_upfront,0.344989,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:25.855925 +AWS,eu-west-2,m4.2xlarge,reserved_1y,no_upfront,0.344989,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:11.766987 +AWS,eu-west-2,m4.2xlarge,reserved_1y,partial_upfront,0.344989,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:49.976730 +AWS,eu-west-2,m4.2xlarge,reserved_3y,all_upfront,0.229996,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:19.517368 +AWS,eu-west-2,m4.2xlarge,reserved_3y,no_upfront,0.229996,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:18.264306 +AWS,eu-west-2,m4.2xlarge,reserved_3y,partial_upfront,0.229996,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:59.745864 +AWS,eu-west-2,m4.2xlarge,spot,NA,0.23753,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688290 +AWS,eu-west-2,m4.4xlarge,on_demand,NA,0.928,USD,AWS Pricing API,2025-11-30T09:07:31.444292 +AWS,eu-west-2,m4.4xlarge,reserved_1y,all_upfront,0.847959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:00.193222 +AWS,eu-west-2,m4.4xlarge,reserved_1y,no_upfront,0.847959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:46.575486 +AWS,eu-west-2,m4.4xlarge,reserved_1y,partial_upfront,0.847959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:24.129078 +AWS,eu-west-2,m4.4xlarge,reserved_3y,all_upfront,0.423986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:53.069065 +AWS,eu-west-2,m4.4xlarge,reserved_3y,no_upfront,0.423986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:53.259264 +AWS,eu-west-2,m4.4xlarge,reserved_3y,partial_upfront,0.423986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:33.901091 +AWS,eu-west-2,m4.4xlarge,spot,NA,0.368114,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689102 +AWS,eu-west-2,m4.large,on_demand,NA,0.116,USD,AWS Pricing API,2025-11-30T09:06:39.159142 +AWS,eu-west-2,m4.large,reserved_1y,all_upfront,0.086251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:07.829224 +AWS,eu-west-2,m4.large,reserved_1y,no_upfront,0.086251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:53.475346 +AWS,eu-west-2,m4.large,reserved_1y,partial_upfront,0.086251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:31.991058 +AWS,eu-west-2,m4.large,reserved_3y,all_upfront,0.057484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:01.825264 +AWS,eu-west-2,m4.large,reserved_3y,no_upfront,0.057484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:59.917744 +AWS,eu-west-2,m4.large,reserved_3y,partial_upfront,0.057484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:41.886973 +AWS,eu-west-2,m4.large,spot,NA,0.044203,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687870 +AWS,eu-west-2,m4.xlarge,on_demand,NA,0.232,USD,AWS Pricing API,2025-11-30T09:07:19.871721 +AWS,eu-west-2,m4.xlarge,reserved_1y,all_upfront,0.1811,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:48.632477 +AWS,eu-west-2,m4.xlarge,reserved_1y,no_upfront,0.1811,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:34.914594 +AWS,eu-west-2,m4.xlarge,reserved_1y,partial_upfront,0.1811,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:12.617151 +AWS,eu-west-2,m4.xlarge,reserved_3y,all_upfront,0.1811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:41.782945 +AWS,eu-west-2,m4.xlarge,reserved_3y,no_upfront,0.1811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:41.474544 +AWS,eu-west-2,m4.xlarge,reserved_3y,partial_upfront,0.1811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:22.484765 +AWS,eu-west-2,m4.xlarge,spot,NA,0.096127,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688854 +AWS,eu-west-2,m5.12xlarge,on_demand,NA,2.664,USD,AWS Pricing API,2025-11-30T09:06:57.216256 +AWS,eu-west-2,m5.12xlarge,reserved_1y,all_upfront,2.144,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:25.994040 +AWS,eu-west-2,m5.12xlarge,reserved_1y,no_upfront,2.144,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:11.903460 +AWS,eu-west-2,m5.12xlarge,reserved_1y,partial_upfront,2.144,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:50.113437 +AWS,eu-west-2,m5.12xlarge,reserved_3y,all_upfront,2.144,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:19.648367 +AWS,eu-west-2,m5.12xlarge,reserved_3y,no_upfront,2.144,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:18.401918 +AWS,eu-west-2,m5.12xlarge,reserved_3y,partial_upfront,2.144,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:59.879370 +AWS,eu-west-2,m5.12xlarge,spot,NA,1.037096,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688286 +AWS,eu-west-2,m5.16xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:07:29.799532 +AWS,eu-west-2,m5.16xlarge,reserved_1y,all_upfront,2.131639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:58.560837 +AWS,eu-west-2,m5.16xlarge,reserved_1y,no_upfront,2.131639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:44.934227 +AWS,eu-west-2,m5.16xlarge,reserved_1y,partial_upfront,2.131639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:22.507960 +AWS,eu-west-2,m5.16xlarge,reserved_3y,all_upfront,1.421213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:51.489069 +AWS,eu-west-2,m5.16xlarge,reserved_3y,no_upfront,1.421213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:51.603904 +AWS,eu-west-2,m5.16xlarge,reserved_3y,partial_upfront,1.421213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:32.291285 +AWS,eu-west-2,m5.16xlarge,spot,NA,1.095977,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689078 +AWS,eu-west-2,m5.24xlarge,on_demand,NA,5.328,USD,AWS Pricing API,2025-11-30T09:07:41.216001 +AWS,eu-west-2,m5.24xlarge,reserved_1y,all_upfront,4.289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:10.005409 +AWS,eu-west-2,m5.24xlarge,reserved_1y,no_upfront,4.289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:56.411514 +AWS,eu-west-2,m5.24xlarge,reserved_1y,partial_upfront,4.289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:33.849525 +AWS,eu-west-2,m5.24xlarge,reserved_3y,all_upfront,4.289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:02.799967 +AWS,eu-west-2,m5.24xlarge,reserved_3y,no_upfront,4.289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:03.201530 +AWS,eu-west-2,m5.24xlarge,reserved_3y,partial_upfront,4.289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:43.561781 +AWS,eu-west-2,m5.24xlarge,spot,NA,1.666962,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689330 +AWS,eu-west-2,m5.2xlarge,on_demand,NA,0.444,USD,AWS Pricing API,2025-11-30T09:07:13.231826 +AWS,eu-west-2,m5.2xlarge,reserved_1y,all_upfront,0.355438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:42.012652 +AWS,eu-west-2,m5.2xlarge,reserved_1y,no_upfront,0.355438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:28.172061 +AWS,eu-west-2,m5.2xlarge,reserved_1y,partial_upfront,0.355438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:06.025586 +AWS,eu-west-2,m5.2xlarge,reserved_3y,all_upfront,0.177813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:35.286748 +AWS,eu-west-2,m5.2xlarge,reserved_3y,no_upfront,0.177813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:34.666916 +AWS,eu-west-2,m5.2xlarge,reserved_3y,partial_upfront,0.177813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:15.894478 +AWS,eu-west-2,m5.2xlarge,spot,NA,0.147661,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688734 +AWS,eu-west-2,m5.4xlarge,on_demand,NA,0.888,USD,AWS Pricing API,2025-11-30T09:07:22.561183 +AWS,eu-west-2,m5.4xlarge,reserved_1y,all_upfront,0.532438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:51.348634 +AWS,eu-west-2,m5.4xlarge,reserved_1y,no_upfront,0.532438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:37.669469 +AWS,eu-west-2,m5.4xlarge,reserved_1y,partial_upfront,0.532438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:15.343684 +AWS,eu-west-2,m5.4xlarge,reserved_3y,all_upfront,0.354813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:44.429665 +AWS,eu-west-2,m5.4xlarge,reserved_3y,no_upfront,0.354813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:44.239389 +AWS,eu-west-2,m5.4xlarge,reserved_3y,partial_upfront,0.354813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:25.159144 +AWS,eu-west-2,m5.4xlarge,spot,NA,0.363578,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688897 +AWS,eu-west-2,m5.8xlarge,on_demand,NA,1.776,USD,AWS Pricing API,2025-11-30T09:07:49.169902 +AWS,eu-west-2,m5.8xlarge,reserved_1y,all_upfront,1.044292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:17.999833 +AWS,eu-west-2,m5.8xlarge,reserved_1y,no_upfront,1.044292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:04.498548 +AWS,eu-west-2,m5.8xlarge,reserved_1y,partial_upfront,1.044292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:41.785478 +AWS,eu-west-2,m5.8xlarge,reserved_3y,all_upfront,0.348097,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:10.671213 +AWS,eu-west-2,m5.8xlarge,reserved_3y,no_upfront,0.348097,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:11.358428 +AWS,eu-west-2,m5.8xlarge,reserved_3y,partial_upfront,0.348097,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:51.502346 +AWS,eu-west-2,m5.8xlarge,spot,NA,0.62048,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689530 +AWS,eu-west-2,m5.large,on_demand,NA,0.111,USD,AWS Pricing API,2025-11-30T09:07:13.640872 +AWS,eu-west-2,m5.large,reserved_1y,all_upfront,0.175114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:42.416755 +AWS,eu-west-2,m5.large,reserved_1y,no_upfront,0.175114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:28.581133 +AWS,eu-west-2,m5.large,reserved_1y,partial_upfront,0.175114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:06.429167 +AWS,eu-west-2,m5.large,reserved_3y,all_upfront,0.058371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:35.680625 +AWS,eu-west-2,m5.large,reserved_3y,no_upfront,0.058371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:35.078183 +AWS,eu-west-2,m5.large,reserved_3y,partial_upfront,0.058371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:16.301402 +AWS,eu-west-2,m5.large,spot,NA,0.041427,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688757 +AWS,eu-west-2,m5.xlarge,on_demand,NA,0.222,USD,AWS Pricing API,2025-11-30T09:07:46.994209 +AWS,eu-west-2,m5.xlarge,reserved_1y,all_upfront,0.14,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:15.844885 +AWS,eu-west-2,m5.xlarge,reserved_1y,no_upfront,0.14,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:02.308182 +AWS,eu-west-2,m5.xlarge,reserved_1y,partial_upfront,0.14,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:39.628817 +AWS,eu-west-2,m5.xlarge,reserved_3y,all_upfront,0.14,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:08.556080 +AWS,eu-west-2,m5.xlarge,reserved_3y,no_upfront,0.14,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:09.144271 +AWS,eu-west-2,m5.xlarge,reserved_3y,partial_upfront,0.14,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:49.325528 +AWS,eu-west-2,m5.xlarge,spot,NA,0.076396,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689456 +AWS,eu-west-2,m5a.12xlarge,on_demand,NA,2.4,USD,AWS Pricing API,2025-11-30T09:07:14.175335 +AWS,eu-west-2,m5a.12xlarge,reserved_1y,all_upfront,1.512,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:42.960233 +AWS,eu-west-2,m5a.12xlarge,reserved_1y,no_upfront,1.512,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:29.129423 +AWS,eu-west-2,m5a.12xlarge,reserved_1y,partial_upfront,1.512,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:06.967977 +AWS,eu-west-2,m5a.12xlarge,reserved_3y,all_upfront,1.512,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:36.207858 +AWS,eu-west-2,m5a.12xlarge,reserved_3y,no_upfront,1.512,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:35.631343 +AWS,eu-west-2,m5a.12xlarge,reserved_3y,partial_upfront,1.512,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:16.833849 +AWS,eu-west-2,m5a.12xlarge,spot,NA,1.038016,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688741 +AWS,eu-west-2,m5a.16xlarge,on_demand,NA,3.2,USD,AWS Pricing API,2025-11-30T09:07:31.582908 +AWS,eu-west-2,m5a.16xlarge,reserved_1y,all_upfront,2.559977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:00.329605 +AWS,eu-west-2,m5a.16xlarge,reserved_1y,no_upfront,2.559977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:46.710376 +AWS,eu-west-2,m5a.16xlarge,reserved_1y,partial_upfront,2.559977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:24.264406 +AWS,eu-west-2,m5a.16xlarge,reserved_3y,all_upfront,1.279992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:53.202260 +AWS,eu-west-2,m5a.16xlarge,reserved_3y,no_upfront,1.279992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:53.396884 +AWS,eu-west-2,m5a.16xlarge,reserved_3y,partial_upfront,1.279992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:34.035396 +AWS,eu-west-2,m5a.16xlarge,spot,NA,1.199629,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689115 +AWS,eu-west-2,m5a.24xlarge,on_demand,NA,4.8,USD,AWS Pricing API,2025-11-30T09:07:06.872315 +AWS,eu-west-2,m5a.24xlarge,reserved_1y,all_upfront,2.822374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:35.606393 +AWS,eu-west-2,m5a.24xlarge,reserved_1y,no_upfront,2.822374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:21.701781 +AWS,eu-west-2,m5a.24xlarge,reserved_1y,partial_upfront,2.822374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:59.682897 +AWS,eu-west-2,m5a.24xlarge,reserved_3y,all_upfront,0.940791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:29.048016 +AWS,eu-west-2,m5a.24xlarge,reserved_3y,no_upfront,0.940791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:28.183599 +AWS,eu-west-2,m5a.24xlarge,reserved_3y,partial_upfront,0.940791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:09.461004 +AWS,eu-west-2,m5a.24xlarge,spot,NA,1.73197,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688574 +AWS,eu-west-2,m5a.2xlarge,on_demand,NA,0.4,USD,AWS Pricing API,2025-11-30T09:06:59.372639 +AWS,eu-west-2,m5a.2xlarge,reserved_1y,all_upfront,0.252,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:28.154309 +AWS,eu-west-2,m5a.2xlarge,reserved_1y,no_upfront,0.252,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:14.083176 +AWS,eu-west-2,m5a.2xlarge,reserved_1y,partial_upfront,0.252,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:52.257201 +AWS,eu-west-2,m5a.2xlarge,reserved_3y,all_upfront,0.252,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:21.769713 +AWS,eu-west-2,m5a.2xlarge,reserved_3y,no_upfront,0.252,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:20.615317 +AWS,eu-west-2,m5a.2xlarge,reserved_3y,partial_upfront,0.252,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:02.072932 +AWS,eu-west-2,m5a.2xlarge,spot,NA,0.229692,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688313 +AWS,eu-west-2,m5a.4xlarge,on_demand,NA,0.8,USD,AWS Pricing API,2025-11-30T09:07:39.843287 +AWS,eu-west-2,m5a.4xlarge,reserved_1y,all_upfront,0.600913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:08.645169 +AWS,eu-west-2,m5a.4xlarge,reserved_1y,no_upfront,0.600913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:55.032336 +AWS,eu-west-2,m5a.4xlarge,reserved_1y,partial_upfront,0.600913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:32.485916 +AWS,eu-west-2,m5a.4xlarge,reserved_3y,all_upfront,0.200304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:01.404451 +AWS,eu-west-2,m5a.4xlarge,reserved_3y,no_upfront,0.200304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:01.805918 +AWS,eu-west-2,m5a.4xlarge,reserved_3y,partial_upfront,0.200304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:42.215067 +AWS,eu-west-2,m5a.4xlarge,spot,NA,0.388398,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689280 +AWS,eu-west-2,m5a.8xlarge,on_demand,NA,1.6,USD,AWS Pricing API,2025-11-30T09:06:50.447303 +AWS,eu-west-2,m5a.8xlarge,reserved_1y,all_upfront,1.008,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:19.189428 +AWS,eu-west-2,m5a.8xlarge,reserved_1y,no_upfront,1.008,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:05.006783 +AWS,eu-west-2,m5a.8xlarge,reserved_1y,partial_upfront,1.008,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:43.378834 +AWS,eu-west-2,m5a.8xlarge,reserved_3y,all_upfront,1.008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:12.997254 +AWS,eu-west-2,m5a.8xlarge,reserved_3y,no_upfront,1.008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:11.503736 +AWS,eu-west-2,m5a.8xlarge,reserved_3y,partial_upfront,1.008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:53.176060 +AWS,eu-west-2,m5a.8xlarge,spot,NA,0.797777,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688116 +AWS,eu-west-2,m5a.large,on_demand,NA,0.1,USD,AWS Pricing API,2025-11-30T09:07:09.319342 +AWS,eu-west-2,m5a.large,reserved_1y,all_upfront,0.060023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:38.047880 +AWS,eu-west-2,m5a.large,reserved_1y,no_upfront,0.060023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:24.205718 +AWS,eu-west-2,m5a.large,reserved_1y,partial_upfront,0.060023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:02.119303 +AWS,eu-west-2,m5a.large,reserved_3y,all_upfront,0.040008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:31.434934 +AWS,eu-west-2,m5a.large,reserved_3y,no_upfront,0.040008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:30.669182 +AWS,eu-west-2,m5a.large,reserved_3y,partial_upfront,0.040008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:11.902567 +AWS,eu-west-2,m5a.large,spot,NA,0.04519,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688670 +AWS,eu-west-2,m5a.xlarge,on_demand,NA,0.2,USD,AWS Pricing API,2025-11-30T09:07:11.342272 +AWS,eu-west-2,m5a.xlarge,reserved_1y,all_upfront,0.159977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:40.098975 +AWS,eu-west-2,m5a.xlarge,reserved_1y,no_upfront,0.159977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:26.260211 +AWS,eu-west-2,m5a.xlarge,reserved_1y,partial_upfront,0.159977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:04.137769 +AWS,eu-west-2,m5a.xlarge,reserved_3y,all_upfront,0.079992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:33.414294 +AWS,eu-west-2,m5a.xlarge,reserved_3y,no_upfront,0.079992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:32.739475 +AWS,eu-west-2,m5a.xlarge,reserved_3y,partial_upfront,0.079992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:14.005001 +AWS,eu-west-2,m5a.xlarge,spot,NA,0.106068,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688694 +AWS,eu-west-2,m5d.12xlarge,on_demand,NA,3.144,USD,AWS Pricing API,2025-11-30T09:06:41.866745 +AWS,eu-west-2,m5d.12xlarge,reserved_1y,all_upfront,4.947717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:10.525407 +AWS,eu-west-2,m5d.12xlarge,reserved_1y,no_upfront,4.947717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:56.205216 +AWS,eu-west-2,m5d.12xlarge,reserved_1y,partial_upfront,4.947717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:34.719708 +AWS,eu-west-2,m5d.12xlarge,reserved_3y,all_upfront,1.649239,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:04.493494 +AWS,eu-west-2,m5d.12xlarge,reserved_3y,no_upfront,1.649239,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:02.689632 +AWS,eu-west-2,m5d.12xlarge,reserved_3y,partial_upfront,1.649239,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:44.564534 +AWS,eu-west-2,m5d.12xlarge,spot,NA,1.100644,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687917 +AWS,eu-west-2,m5d.16xlarge,on_demand,NA,4.192,USD,AWS Pricing API,2025-11-30T09:07:26.670822 +AWS,eu-west-2,m5d.16xlarge,reserved_1y,all_upfront,3.353183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:55.419985 +AWS,eu-west-2,m5d.16xlarge,reserved_1y,no_upfront,3.353183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:41.769635 +AWS,eu-west-2,m5d.16xlarge,reserved_1y,partial_upfront,3.353183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:19.389666 +AWS,eu-west-2,m5d.16xlarge,reserved_3y,all_upfront,1.676394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:48.431502 +AWS,eu-west-2,m5d.16xlarge,reserved_3y,no_upfront,1.676394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:48.414043 +AWS,eu-west-2,m5d.16xlarge,reserved_3y,partial_upfront,1.676394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:29.199859 +AWS,eu-west-2,m5d.16xlarge,spot,NA,1.432631,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688975 +AWS,eu-west-2,m5d.24xlarge,on_demand,NA,6.288,USD,AWS Pricing API,2025-11-30T09:07:10.265726 +AWS,eu-west-2,m5d.24xlarge,reserved_1y,all_upfront,5.056,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:39.016207 +AWS,eu-west-2,m5d.24xlarge,reserved_1y,no_upfront,5.056,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:25.171593 +AWS,eu-west-2,m5d.24xlarge,reserved_1y,partial_upfront,5.056,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:03.062865 +AWS,eu-west-2,m5d.24xlarge,reserved_3y,all_upfront,5.056,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:32.359680 +AWS,eu-west-2,m5d.24xlarge,reserved_3y,no_upfront,5.056,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:31.628065 +AWS,eu-west-2,m5d.24xlarge,reserved_3y,partial_upfront,5.056,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:12.836093 +AWS,eu-west-2,m5d.24xlarge,spot,NA,2.037184,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688662 +AWS,eu-west-2,m5d.2xlarge,on_demand,NA,0.524,USD,AWS Pricing API,2025-11-30T09:06:54.628440 +AWS,eu-west-2,m5d.2xlarge,reserved_1y,all_upfront,0.33,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:23.407459 +AWS,eu-west-2,m5d.2xlarge,reserved_1y,no_upfront,0.33,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:09.275666 +AWS,eu-west-2,m5d.2xlarge,reserved_1y,partial_upfront,0.33,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:47.548800 +AWS,eu-west-2,m5d.2xlarge,reserved_3y,all_upfront,0.33,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:17.121130 +AWS,eu-west-2,m5d.2xlarge,reserved_3y,no_upfront,0.33,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:15.785976 +AWS,eu-west-2,m5d.2xlarge,reserved_3y,partial_upfront,0.33,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:57.326504 +AWS,eu-west-2,m5d.2xlarge,spot,NA,0.244989,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688215 +AWS,eu-west-2,m5d.4xlarge,on_demand,NA,1.048,USD,AWS Pricing API,2025-11-30T09:07:05.764164 +AWS,eu-west-2,m5d.4xlarge,reserved_1y,all_upfront,0.61621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:34.518381 +AWS,eu-west-2,m5d.4xlarge,reserved_1y,no_upfront,0.61621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:20.591960 +AWS,eu-west-2,m5d.4xlarge,reserved_1y,partial_upfront,0.61621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:58.601454 +AWS,eu-west-2,m5d.4xlarge,reserved_3y,all_upfront,0.205403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:27.989562 +AWS,eu-west-2,m5d.4xlarge,reserved_3y,no_upfront,0.205403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:27.083655 +AWS,eu-west-2,m5d.4xlarge,reserved_3y,partial_upfront,0.205403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:08.397176 +AWS,eu-west-2,m5d.4xlarge,spot,NA,0.441457,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688558 +AWS,eu-west-2,m5d.8xlarge,on_demand,NA,2.096,USD,AWS Pricing API,2025-11-30T09:07:49.033069 +AWS,eu-west-2,m5d.8xlarge,reserved_1y,all_upfront,1.604511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:17.866362 +AWS,eu-west-2,m5d.8xlarge,reserved_1y,no_upfront,1.604511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:04.360362 +AWS,eu-west-2,m5d.8xlarge,reserved_1y,partial_upfront,1.604511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:41.650612 +AWS,eu-west-2,m5d.8xlarge,reserved_3y,all_upfront,1.069504,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:10.536888 +AWS,eu-west-2,m5d.8xlarge,reserved_3y,no_upfront,1.069504,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:11.215743 +AWS,eu-west-2,m5d.8xlarge,reserved_3y,partial_upfront,1.069504,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:51.361468 +AWS,eu-west-2,m5d.8xlarge,spot,NA,0.768584,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689526 +AWS,eu-west-2,m5d.large,on_demand,NA,0.131,USD,AWS Pricing API,2025-11-30T09:06:45.603792 +AWS,eu-west-2,m5d.large,reserved_1y,all_upfront,0.206164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:14.292378 +AWS,eu-west-2,m5d.large,reserved_1y,no_upfront,0.206164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:00.040464 +AWS,eu-west-2,m5d.large,reserved_1y,partial_upfront,0.206164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:38.513955 +AWS,eu-west-2,m5d.large,reserved_3y,all_upfront,0.068721,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:08.216218 +AWS,eu-west-2,m5d.large,reserved_3y,no_upfront,0.068721,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:06.536057 +AWS,eu-west-2,m5d.large,reserved_3y,partial_upfront,0.068721,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:48.331005 +AWS,eu-west-2,m5d.large,spot,NA,0.05792,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688003 +AWS,eu-west-2,m5d.xlarge,on_demand,NA,0.262,USD,AWS Pricing API,2025-11-30T09:07:01.534277 +AWS,eu-west-2,m5d.xlarge,reserved_1y,all_upfront,0.151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:30.331689 +AWS,eu-west-2,m5d.xlarge,reserved_1y,no_upfront,0.151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:16.261580 +AWS,eu-west-2,m5d.xlarge,reserved_1y,partial_upfront,0.151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:54.442403 +AWS,eu-west-2,m5d.xlarge,reserved_3y,all_upfront,0.151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:23.886461 +AWS,eu-west-2,m5d.xlarge,reserved_3y,no_upfront,0.151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:22.821699 +AWS,eu-west-2,m5d.xlarge,reserved_3y,partial_upfront,0.151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:04.230139 +AWS,eu-west-2,m5d.xlarge,spot,NA,0.100322,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688442 +AWS,eu-west-2,m6g.12xlarge,on_demand,NA,2.1312,USD,AWS Pricing API,2025-11-30T09:06:55.859908 +AWS,eu-west-2,m6g.12xlarge,reserved_1y,all_upfront,3.372831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:24.629326 +AWS,eu-west-2,m6g.12xlarge,reserved_1y,no_upfront,3.372831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:10.521808 +AWS,eu-west-2,m6g.12xlarge,reserved_1y,partial_upfront,3.372831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:48.754429 +AWS,eu-west-2,m6g.12xlarge,reserved_3y,all_upfront,1.124277,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:18.325908 +AWS,eu-west-2,m6g.12xlarge,reserved_3y,no_upfront,1.124277,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:17.034085 +AWS,eu-west-2,m6g.12xlarge,reserved_3y,partial_upfront,1.124277,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:58.536255 +AWS,eu-west-2,m6g.12xlarge,spot,NA,0.689213,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688248 +AWS,eu-west-2,m6g.16xlarge,on_demand,NA,2.8416,USD,AWS Pricing API,2025-11-30T09:06:51.264851 +AWS,eu-west-2,m6g.16xlarge,reserved_1y,all_upfront,4.497146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:20.013931 +AWS,eu-west-2,m6g.16xlarge,reserved_1y,no_upfront,4.497146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:05.861874 +AWS,eu-west-2,m6g.16xlarge,reserved_1y,partial_upfront,4.497146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:44.186972 +AWS,eu-west-2,m6g.16xlarge,reserved_3y,all_upfront,1.499049,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:13.807810 +AWS,eu-west-2,m6g.16xlarge,reserved_3y,no_upfront,1.499049,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:12.326491 +AWS,eu-west-2,m6g.16xlarge,reserved_3y,partial_upfront,1.499049,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:53.986534 +AWS,eu-west-2,m6g.16xlarge,spot,NA,0.932423,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688133 +AWS,eu-west-2,m6g.2xlarge,on_demand,NA,0.3552,USD,AWS Pricing API,2025-11-30T09:07:11.901535 +AWS,eu-west-2,m6g.2xlarge,reserved_1y,all_upfront,0.1534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:40.640355 +AWS,eu-west-2,m6g.2xlarge,reserved_1y,no_upfront,0.1534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:26.809013 +AWS,eu-west-2,m6g.2xlarge,reserved_1y,partial_upfront,0.1534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:04.676716 +AWS,eu-west-2,m6g.2xlarge,reserved_3y,all_upfront,0.1534,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:33.958081 +AWS,eu-west-2,m6g.2xlarge,reserved_3y,no_upfront,0.1534,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:33.293165 +AWS,eu-west-2,m6g.2xlarge,reserved_3y,partial_upfront,0.1534,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:14.549130 +AWS,eu-west-2,m6g.2xlarge,spot,NA,0.134963,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688722 +AWS,eu-west-2,m6g.4xlarge,on_demand,NA,0.7104,USD,AWS Pricing API,2025-11-30T09:07:38.344410 +AWS,eu-west-2,m6g.4xlarge,reserved_1y,all_upfront,0.413,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:07.140330 +AWS,eu-west-2,m6g.4xlarge,reserved_1y,no_upfront,0.413,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:53.516625 +AWS,eu-west-2,m6g.4xlarge,reserved_1y,partial_upfront,0.413,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:31.003259 +AWS,eu-west-2,m6g.4xlarge,reserved_3y,all_upfront,0.413,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:59.910960 +AWS,eu-west-2,m6g.4xlarge,reserved_3y,no_upfront,0.413,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:00.277069 +AWS,eu-west-2,m6g.4xlarge,reserved_3y,partial_upfront,0.413,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:40.719023 +AWS,eu-west-2,m6g.4xlarge,spot,NA,0.261921,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689268 +AWS,eu-west-2,m6g.8xlarge,on_demand,NA,1.4208,USD,AWS Pricing API,2025-11-30T09:07:19.327935 +AWS,eu-west-2,m6g.8xlarge,reserved_1y,all_upfront,1.095417,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:48.081293 +AWS,eu-west-2,m6g.8xlarge,reserved_1y,no_upfront,1.095417,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:34.363009 +AWS,eu-west-2,m6g.8xlarge,reserved_1y,partial_upfront,1.095417,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:12.074325 +AWS,eu-west-2,m6g.8xlarge,reserved_3y,all_upfront,0.730272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:41.248381 +AWS,eu-west-2,m6g.8xlarge,reserved_3y,no_upfront,0.730272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:40.913848 +AWS,eu-west-2,m6g.8xlarge,reserved_3y,partial_upfront,0.730272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:21.943149 +AWS,eu-west-2,m6g.8xlarge,spot,NA,0.509489,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688866 +AWS,eu-west-2,m6g.large,on_demand,NA,0.0888,USD,AWS Pricing API,2025-11-30T09:06:56.400620 +AWS,eu-west-2,m6g.large,reserved_1y,all_upfront,0.140525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:25.175312 +AWS,eu-west-2,m6g.large,reserved_1y,no_upfront,0.140525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:11.078561 +AWS,eu-west-2,m6g.large,reserved_1y,partial_upfront,0.140525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:49.295799 +AWS,eu-west-2,m6g.large,reserved_3y,all_upfront,0.046842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:18.855669 +AWS,eu-west-2,m6g.large,reserved_3y,no_upfront,0.046842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:17.582210 +AWS,eu-west-2,m6g.large,reserved_3y,partial_upfront,0.046842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:59.081152 +AWS,eu-west-2,m6g.large,spot,NA,0.036861,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688264 +AWS,eu-west-2,m6g.xlarge,on_demand,NA,0.1776,USD,AWS Pricing API,2025-11-30T09:07:10.123752 +AWS,eu-west-2,m6g.xlarge,reserved_1y,all_upfront,0.1033,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:38.879710 +AWS,eu-west-2,m6g.xlarge,reserved_1y,no_upfront,0.1033,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:25.033328 +AWS,eu-west-2,m6g.xlarge,reserved_1y,partial_upfront,0.1033,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:02.925236 +AWS,eu-west-2,m6g.xlarge,reserved_3y,all_upfront,0.1033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:32.227530 +AWS,eu-west-2,m6g.xlarge,reserved_3y,no_upfront,0.1033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:31.490175 +AWS,eu-west-2,m6g.xlarge,reserved_3y,partial_upfront,0.1033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:12.702424 +AWS,eu-west-2,m6g.xlarge,spot,NA,0.059079,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688658 +AWS,eu-west-2,m6gd.12xlarge,on_demand,NA,2.5152,USD,AWS Pricing API,2025-11-30T09:07:28.041586 +AWS,eu-west-2,m6gd.12xlarge,reserved_1y,all_upfront,2.012132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:56.779126 +AWS,eu-west-2,m6gd.12xlarge,reserved_1y,no_upfront,2.012132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:43.146577 +AWS,eu-west-2,m6gd.12xlarge,reserved_1y,partial_upfront,2.012132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:20.733653 +AWS,eu-west-2,m6gd.12xlarge,reserved_3y,all_upfront,1.006044,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:49.765983 +AWS,eu-west-2,m6gd.12xlarge,reserved_3y,no_upfront,1.006044,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:49.804284 +AWS,eu-west-2,m6gd.12xlarge,reserved_3y,partial_upfront,1.006044,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:30.537617 +AWS,eu-west-2,m6gd.12xlarge,spot,NA,0.800717,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689030 +AWS,eu-west-2,m6gd.16xlarge,on_demand,NA,3.3536,USD,AWS Pricing API,2025-11-30T09:07:30.336338 +AWS,eu-west-2,m6gd.16xlarge,reserved_1y,all_upfront,5.277511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:59.100582 +AWS,eu-west-2,m6gd.16xlarge,reserved_1y,no_upfront,5.277511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:45.477232 +AWS,eu-west-2,m6gd.16xlarge,reserved_1y,partial_upfront,5.277511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:23.043239 +AWS,eu-west-2,m6gd.16xlarge,reserved_3y,all_upfront,1.75917,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:52.015260 +AWS,eu-west-2,m6gd.16xlarge,reserved_3y,no_upfront,1.75917,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:52.160374 +AWS,eu-west-2,m6gd.16xlarge,reserved_3y,partial_upfront,1.75917,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:32.823951 +AWS,eu-west-2,m6gd.16xlarge,spot,NA,1.052334,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689070 +AWS,eu-west-2,m6gd.2xlarge,on_demand,NA,0.4192,USD,AWS Pricing API,2025-11-30T09:06:58.559446 +AWS,eu-west-2,m6gd.2xlarge,reserved_1y,all_upfront,0.2641,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:27.339858 +AWS,eu-west-2,m6gd.2xlarge,reserved_1y,no_upfront,0.2641,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:13.263434 +AWS,eu-west-2,m6gd.2xlarge,reserved_1y,partial_upfront,0.2641,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:51.452218 +AWS,eu-west-2,m6gd.2xlarge,reserved_3y,all_upfront,0.2641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:20.969536 +AWS,eu-west-2,m6gd.2xlarge,reserved_3y,no_upfront,0.2641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:19.776576 +AWS,eu-west-2,m6gd.2xlarge,reserved_3y,partial_upfront,0.2641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:01.251242 +AWS,eu-west-2,m6gd.2xlarge,spot,NA,0.148553,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688317 +AWS,eu-west-2,m6gd.4xlarge,on_demand,NA,0.8384,USD,AWS Pricing API,2025-11-30T09:07:25.165907 +AWS,eu-west-2,m6gd.4xlarge,reserved_1y,all_upfront,0.642005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:53.919653 +AWS,eu-west-2,m6gd.4xlarge,reserved_1y,no_upfront,0.642005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:40.271043 +AWS,eu-west-2,m6gd.4xlarge,reserved_1y,partial_upfront,0.642005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:17.907516 +AWS,eu-west-2,m6gd.4xlarge,reserved_3y,all_upfront,0.428002,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:46.985244 +AWS,eu-west-2,m6gd.4xlarge,reserved_3y,no_upfront,0.428002,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:46.877664 +AWS,eu-west-2,m6gd.4xlarge,reserved_3y,partial_upfront,0.428002,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:27.715339 +AWS,eu-west-2,m6gd.4xlarge,spot,NA,0.282791,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688963 +AWS,eu-west-2,m6gd.8xlarge,on_demand,NA,1.6768,USD,AWS Pricing API,2025-11-30T09:06:47.370781 +AWS,eu-west-2,m6gd.8xlarge,reserved_1y,all_upfront,1.795147,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:16.052133 +AWS,eu-west-2,m6gd.8xlarge,reserved_1y,no_upfront,1.795147,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:01.830699 +AWS,eu-west-2,m6gd.8xlarge,reserved_1y,partial_upfront,1.795147,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:40.283459 +AWS,eu-west-2,m6gd.8xlarge,reserved_3y,all_upfront,0.897582,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:09.929306 +AWS,eu-west-2,m6gd.8xlarge,reserved_3y,no_upfront,0.897582,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:08.332314 +AWS,eu-west-2,m6gd.8xlarge,reserved_3y,partial_upfront,0.897582,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:50.076155 +AWS,eu-west-2,m6gd.8xlarge,spot,NA,0.557092,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688019 +AWS,eu-west-2,m6gd.large,on_demand,NA,0.1048,USD,AWS Pricing API,2025-11-30T09:07:08.782232 +AWS,eu-west-2,m6gd.large,reserved_1y,all_upfront,0.062793,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:37.500512 +AWS,eu-west-2,m6gd.large,reserved_1y,no_upfront,0.062793,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:23.640975 +AWS,eu-west-2,m6gd.large,reserved_1y,partial_upfront,0.062793,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:01.573724 +AWS,eu-west-2,m6gd.large,reserved_3y,all_upfront,0.041864,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:30.905791 +AWS,eu-west-2,m6gd.large,reserved_3y,no_upfront,0.041864,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:30.119497 +AWS,eu-west-2,m6gd.large,reserved_3y,partial_upfront,0.041864,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:11.368333 +AWS,eu-west-2,m6gd.large,spot,NA,0.03847,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688646 +AWS,eu-west-2,m6gd.xlarge,on_demand,NA,0.2096,USD,AWS Pricing API,2025-11-30T09:07:01.942928 +AWS,eu-west-2,m6gd.xlarge,reserved_1y,all_upfront,0.132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:30.735372 +AWS,eu-west-2,m6gd.xlarge,reserved_1y,no_upfront,0.132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:16.672728 +AWS,eu-west-2,m6gd.xlarge,reserved_1y,partial_upfront,0.132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:54.842139 +AWS,eu-west-2,m6gd.xlarge,reserved_3y,all_upfront,0.132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:24.283887 +AWS,eu-west-2,m6gd.xlarge,reserved_3y,no_upfront,0.132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:23.231868 +AWS,eu-west-2,m6gd.xlarge,reserved_3y,partial_upfront,0.132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:04.629413 +AWS,eu-west-2,m6gd.xlarge,spot,NA,0.076538,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688384 +AWS,eu-west-2,m6i.12xlarge,on_demand,NA,2.664,USD,AWS Pricing API,2025-11-30T09:06:48.173652 +AWS,eu-west-2,m6i.12xlarge,reserved_1y,all_upfront,1.888128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:16.852877 +AWS,eu-west-2,m6i.12xlarge,reserved_1y,no_upfront,1.888128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:02.662597 +AWS,eu-west-2,m6i.12xlarge,reserved_1y,partial_upfront,1.888128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:41.087565 +AWS,eu-west-2,m6i.12xlarge,reserved_3y,all_upfront,0.629376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:10.733115 +AWS,eu-west-2,m6i.12xlarge,reserved_3y,no_upfront,0.629376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:09.148321 +AWS,eu-west-2,m6i.12xlarge,reserved_3y,partial_upfront,0.629376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:50.887363 +AWS,eu-west-2,m6i.12xlarge,spot,NA,0.950384,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688060 +AWS,eu-west-2,m6i.16xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:07:02.617658 +AWS,eu-west-2,m6i.16xlarge,reserved_1y,all_upfront,2.234437,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:31.408790 +AWS,eu-west-2,m6i.16xlarge,reserved_1y,no_upfront,2.234437,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:17.351752 +AWS,eu-west-2,m6i.16xlarge,reserved_1y,partial_upfront,2.234437,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:55.512298 +AWS,eu-west-2,m6i.16xlarge,reserved_3y,all_upfront,1.489612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:24.945796 +AWS,eu-west-2,m6i.16xlarge,reserved_3y,no_upfront,1.489612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:23.920255 +AWS,eu-west-2,m6i.16xlarge,reserved_3y,partial_upfront,1.489612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:05.294889 +AWS,eu-west-2,m6i.16xlarge,spot,NA,1.166487,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688450 +AWS,eu-west-2,m6i.24xlarge,on_demand,NA,5.328,USD,AWS Pricing API,2025-11-30T09:07:04.113368 +AWS,eu-west-2,m6i.24xlarge,reserved_1y,all_upfront,3.284589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:32.888963 +AWS,eu-west-2,m6i.24xlarge,reserved_1y,no_upfront,3.284589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:18.854521 +AWS,eu-west-2,m6i.24xlarge,reserved_1y,partial_upfront,3.284589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:56.993121 +AWS,eu-west-2,m6i.24xlarge,reserved_3y,all_upfront,1.094863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:26.399636 +AWS,eu-west-2,m6i.24xlarge,reserved_3y,no_upfront,1.094863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:25.424189 +AWS,eu-west-2,m6i.24xlarge,reserved_3y,partial_upfront,1.094863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:06.787392 +AWS,eu-west-2,m6i.24xlarge,spot,NA,2.107107,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688503 +AWS,eu-west-2,m6i.2xlarge,on_demand,NA,0.444,USD,AWS Pricing API,2025-11-30T09:07:22.972778 +AWS,eu-west-2,m6i.2xlarge,reserved_1y,all_upfront,0.273744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:51.751773 +AWS,eu-west-2,m6i.2xlarge,reserved_1y,no_upfront,0.273744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:38.075307 +AWS,eu-west-2,m6i.2xlarge,reserved_1y,partial_upfront,0.273744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:15.744394 +AWS,eu-west-2,m6i.2xlarge,reserved_3y,all_upfront,0.091248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:44.843305 +AWS,eu-west-2,m6i.2xlarge,reserved_3y,no_upfront,0.091248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:44.656152 +AWS,eu-west-2,m6i.2xlarge,reserved_3y,partial_upfront,0.091248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:25.557320 +AWS,eu-west-2,m6i.2xlarge,spot,NA,0.194607,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688936 +AWS,eu-west-2,m6i.32xlarge,on_demand,NA,7.104,USD,AWS Pricing API,2025-11-30T09:07:39.569625 +AWS,eu-west-2,m6i.32xlarge,reserved_1y,all_upfront,5.034817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:08.365846 +AWS,eu-west-2,m6i.32xlarge,reserved_1y,no_upfront,5.034817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:54.755420 +AWS,eu-west-2,m6i.32xlarge,reserved_1y,partial_upfront,5.034817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:32.218887 +AWS,eu-west-2,m6i.32xlarge,reserved_3y,all_upfront,1.678272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:01.120479 +AWS,eu-west-2,m6i.32xlarge,reserved_3y,no_upfront,1.678272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:01.525666 +AWS,eu-west-2,m6i.32xlarge,reserved_3y,partial_upfront,1.678272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:41.933212 +AWS,eu-west-2,m6i.32xlarge,spot,NA,2.249643,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689300 +AWS,eu-west-2,m6i.4xlarge,on_demand,NA,0.888,USD,AWS Pricing API,2025-11-30T09:06:50.312475 +AWS,eu-west-2,m6i.4xlarge,reserved_1y,all_upfront,1.257534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:19.054743 +AWS,eu-west-2,m6i.4xlarge,reserved_1y,no_upfront,1.257534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:04.867242 +AWS,eu-west-2,m6i.4xlarge,reserved_1y,partial_upfront,1.257534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:43.244484 +AWS,eu-west-2,m6i.4xlarge,reserved_3y,all_upfront,0.419178,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:12.865209 +AWS,eu-west-2,m6i.4xlarge,reserved_3y,no_upfront,0.419178,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:11.357814 +AWS,eu-west-2,m6i.4xlarge,reserved_3y,partial_upfront,0.419178,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:53.033892 +AWS,eu-west-2,m6i.4xlarge,spot,NA,0.380752,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688137 +AWS,eu-west-2,m6i.8xlarge,on_demand,NA,1.776,USD,AWS Pricing API,2025-11-30T09:06:55.031481 +AWS,eu-west-2,m6i.8xlarge,reserved_1y,all_upfront,1.117162,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:23.814431 +AWS,eu-west-2,m6i.8xlarge,reserved_1y,no_upfront,1.117162,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:09.683695 +AWS,eu-west-2,m6i.8xlarge,reserved_1y,partial_upfront,1.117162,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:47.949218 +AWS,eu-west-2,m6i.8xlarge,reserved_3y,all_upfront,0.744787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:17.515973 +AWS,eu-west-2,m6i.8xlarge,reserved_3y,no_upfront,0.744787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:16.199539 +AWS,eu-west-2,m6i.8xlarge,reserved_3y,partial_upfront,0.744787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:57.729406 +AWS,eu-west-2,m6i.8xlarge,spot,NA,0.688358,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688236 +AWS,eu-west-2,m6i.large,on_demand,NA,0.111,USD,AWS Pricing API,2025-11-30T09:07:05.626340 +AWS,eu-west-2,m6i.large,reserved_1y,all_upfront,0.069842,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:34.383027 +AWS,eu-west-2,m6i.large,reserved_1y,no_upfront,0.069842,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:20.455975 +AWS,eu-west-2,m6i.large,reserved_1y,partial_upfront,0.069842,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:58.467202 +AWS,eu-west-2,m6i.large,reserved_3y,all_upfront,0.046554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:27.860157 +AWS,eu-west-2,m6i.large,reserved_3y,no_upfront,0.046554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:26.944568 +AWS,eu-west-2,m6i.large,reserved_3y,partial_upfront,0.046554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:08.258785 +AWS,eu-west-2,m6i.large,spot,NA,0.048761,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688554 +AWS,eu-west-2,m6i.xlarge,on_demand,NA,0.222,USD,AWS Pricing API,2025-11-30T09:06:41.726699 +AWS,eu-west-2,m6i.xlarge,reserved_1y,all_upfront,0.10093,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:10.388847 +AWS,eu-west-2,m6i.xlarge,reserved_1y,no_upfront,0.10093,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:56.067286 +AWS,eu-west-2,m6i.xlarge,reserved_1y,partial_upfront,0.10093,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:34.584979 +AWS,eu-west-2,m6i.xlarge,reserved_3y,all_upfront,0.10093,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:04.357304 +AWS,eu-west-2,m6i.xlarge,reserved_3y,no_upfront,0.10093,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:02.548303 +AWS,eu-west-2,m6i.xlarge,reserved_3y,partial_upfront,0.10093,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:44.430743 +AWS,eu-west-2,m6i.xlarge,spot,NA,0.103023,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687913 +AWS,eu-west-2,m6id.12xlarge,on_demand,NA,3.3012,USD,AWS Pricing API,2025-11-30T09:07:19.463099 +AWS,eu-west-2,m6id.12xlarge,reserved_1y,all_upfront,2.477169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:48.217534 +AWS,eu-west-2,m6id.12xlarge,reserved_1y,no_upfront,2.477169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:34.498925 +AWS,eu-west-2,m6id.12xlarge,reserved_1y,partial_upfront,2.477169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:12.208846 +AWS,eu-west-2,m6id.12xlarge,reserved_3y,all_upfront,0.825723,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:41.380449 +AWS,eu-west-2,m6id.12xlarge,reserved_3y,no_upfront,0.825723,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:41.059380 +AWS,eu-west-2,m6id.12xlarge,reserved_3y,partial_upfront,0.825723,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:22.077045 +AWS,eu-west-2,m6id.12xlarge,spot,NA,1.084241,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688843 +AWS,eu-west-2,m6id.16xlarge,on_demand,NA,4.4016,USD,AWS Pricing API,2025-11-30T09:06:46.834843 +AWS,eu-west-2,m6id.16xlarge,reserved_1y,all_upfront,3.53882,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:15.512929 +AWS,eu-west-2,m6id.16xlarge,reserved_1y,no_upfront,3.53882,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:01.275908 +AWS,eu-west-2,m6id.16xlarge,reserved_1y,partial_upfront,3.53882,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:39.744188 +AWS,eu-west-2,m6id.16xlarge,reserved_3y,all_upfront,3.53882,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:09.402631 +AWS,eu-west-2,m6id.16xlarge,reserved_3y,no_upfront,3.53882,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:07.783160 +AWS,eu-west-2,m6id.16xlarge,reserved_3y,partial_upfront,3.53882,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:49.541429 +AWS,eu-west-2,m6id.16xlarge,spot,NA,1.608248,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688031 +AWS,eu-west-2,m6id.24xlarge,on_demand,NA,6.6024,USD,AWS Pricing API,2025-11-30T09:06:50.985400 +AWS,eu-west-2,m6id.24xlarge,reserved_1y,all_upfront,5.05547,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:19.743663 +AWS,eu-west-2,m6id.24xlarge,reserved_1y,no_upfront,5.05547,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:05.590081 +AWS,eu-west-2,m6id.24xlarge,reserved_1y,partial_upfront,5.05547,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:43.918164 +AWS,eu-west-2,m6id.24xlarge,reserved_3y,all_upfront,3.37031,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:13.532532 +AWS,eu-west-2,m6id.24xlarge,reserved_3y,no_upfront,3.37031,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:12.051151 +AWS,eu-west-2,m6id.24xlarge,reserved_3y,partial_upfront,3.37031,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:53.710193 +AWS,eu-west-2,m6id.24xlarge,spot,NA,2.300547,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688120 +AWS,eu-west-2,m6id.2xlarge,on_demand,NA,0.5502,USD,AWS Pricing API,2025-11-30T09:06:43.453909 +AWS,eu-west-2,m6id.2xlarge,reserved_1y,all_upfront,0.440177,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:12.134995 +AWS,eu-west-2,m6id.2xlarge,reserved_1y,no_upfront,0.440177,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:57.840994 +AWS,eu-west-2,m6id.2xlarge,reserved_1y,partial_upfront,0.440177,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:36.337115 +AWS,eu-west-2,m6id.2xlarge,reserved_3y,all_upfront,0.220086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:06.097179 +AWS,eu-west-2,m6id.2xlarge,reserved_3y,no_upfront,0.220086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:04.329346 +AWS,eu-west-2,m6id.2xlarge,reserved_3y,partial_upfront,0.220086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:46.177292 +AWS,eu-west-2,m6id.2xlarge,spot,NA,0.215319,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687962 +AWS,eu-west-2,m6id.32xlarge,on_demand,NA,8.8032,USD,AWS Pricing API,2025-11-30T09:07:23.265554 +AWS,eu-west-2,m6id.32xlarge,reserved_1y,all_upfront,5.281942,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:52.021209 +AWS,eu-west-2,m6id.32xlarge,reserved_1y,no_upfront,5.281942,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:38.348943 +AWS,eu-west-2,m6id.32xlarge,reserved_1y,partial_upfront,5.281942,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:16.013677 +AWS,eu-west-2,m6id.32xlarge,reserved_3y,all_upfront,3.521287,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:45.118542 +AWS,eu-west-2,m6id.32xlarge,reserved_3y,no_upfront,3.521287,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:44.940515 +AWS,eu-west-2,m6id.32xlarge,reserved_3y,partial_upfront,3.521287,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:25.824356 +AWS,eu-west-2,m6id.32xlarge,spot,NA,2.878753,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688928 +AWS,eu-west-2,m6id.4xlarge,on_demand,NA,1.1004,USD,AWS Pricing API,2025-11-30T09:07:45.662507 +AWS,eu-west-2,m6id.4xlarge,reserved_1y,all_upfront,1.178082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:14.496384 +AWS,eu-west-2,m6id.4xlarge,reserved_1y,no_upfront,1.178082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:00.917681 +AWS,eu-west-2,m6id.4xlarge,reserved_1y,partial_upfront,1.178082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:38.288513 +AWS,eu-west-2,m6id.4xlarge,reserved_3y,all_upfront,0.589041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:07.227981 +AWS,eu-west-2,m6id.4xlarge,reserved_3y,no_upfront,0.589041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:07.762859 +AWS,eu-west-2,m6id.4xlarge,reserved_3y,partial_upfront,0.589041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:47.989739 +AWS,eu-west-2,m6id.4xlarge,spot,NA,0.39198,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689424 +AWS,eu-west-2,m6id.8xlarge,on_demand,NA,2.2008,USD,AWS Pricing API,2025-11-30T09:07:18.098230 +AWS,eu-west-2,m6id.8xlarge,reserved_1y,all_upfront,1.76941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:46.873205 +AWS,eu-west-2,m6id.8xlarge,reserved_1y,no_upfront,1.76941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:33.129512 +AWS,eu-west-2,m6id.8xlarge,reserved_1y,partial_upfront,1.76941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:10.871715 +AWS,eu-west-2,m6id.8xlarge,reserved_3y,all_upfront,1.76941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:40.060570 +AWS,eu-west-2,m6id.8xlarge,reserved_3y,no_upfront,1.76941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:39.654601 +AWS,eu-west-2,m6id.8xlarge,reserved_3y,partial_upfront,1.76941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:20.739940 +AWS,eu-west-2,m6id.8xlarge,spot,NA,0.791909,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688831 +AWS,eu-west-2,m6id.large,on_demand,NA,0.13755,USD,AWS Pricing API,2025-11-30T09:07:46.730257 +AWS,eu-west-2,m6id.large,reserved_1y,all_upfront,0.216438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:15.571398 +AWS,eu-west-2,m6id.large,reserved_1y,no_upfront,0.216438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:02.028311 +AWS,eu-west-2,m6id.large,reserved_1y,partial_upfront,0.216438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:39.364670 +AWS,eu-west-2,m6id.large,reserved_3y,all_upfront,0.072146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:08.280940 +AWS,eu-west-2,m6id.large,reserved_3y,no_upfront,0.072146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:08.868953 +AWS,eu-west-2,m6id.large,reserved_3y,partial_upfront,0.072146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:49.057717 +AWS,eu-west-2,m6id.large,spot,NA,0.044956,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689468 +AWS,eu-west-2,m6id.xlarge,on_demand,NA,0.2751,USD,AWS Pricing API,2025-11-30T09:06:50.048289 +AWS,eu-west-2,m6id.xlarge,reserved_1y,all_upfront,0.220088,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:18.770776 +AWS,eu-west-2,m6id.xlarge,reserved_1y,no_upfront,0.220088,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:04.592212 +AWS,eu-west-2,m6id.xlarge,reserved_1y,partial_upfront,0.220088,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:42.975860 +AWS,eu-west-2,m6id.xlarge,reserved_3y,all_upfront,0.110043,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:12.602171 +AWS,eu-west-2,m6id.xlarge,reserved_3y,no_upfront,0.110043,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:11.083741 +AWS,eu-west-2,m6id.xlarge,reserved_3y,partial_upfront,0.110043,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:52.766174 +AWS,eu-west-2,m6id.xlarge,spot,NA,0.094874,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688100 +AWS,eu-west-2,m7g.12xlarge,on_demand,NA,2.2646,USD,AWS Pricing API,2025-11-30T09:06:58.960835 +AWS,eu-west-2,m7g.12xlarge,reserved_1y,all_upfront,1.605023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:27.745029 +AWS,eu-west-2,m7g.12xlarge,reserved_1y,no_upfront,1.605023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:13.671756 +AWS,eu-west-2,m7g.12xlarge,reserved_1y,partial_upfront,1.605023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:51.855436 +AWS,eu-west-2,m7g.12xlarge,reserved_3y,all_upfront,0.535008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:21.373425 +AWS,eu-west-2,m7g.12xlarge,reserved_3y,no_upfront,0.535008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:20.202291 +AWS,eu-west-2,m7g.12xlarge,reserved_3y,partial_upfront,0.535008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:01.652577 +AWS,eu-west-2,m7g.12xlarge,spot,NA,0.7696,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688321 +AWS,eu-west-2,m7g.16xlarge,on_demand,NA,3.0195,USD,AWS Pricing API,2025-11-30T09:07:27.770670 +AWS,eu-west-2,m7g.16xlarge,reserved_1y,all_upfront,2.2929,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:56.508851 +AWS,eu-west-2,m7g.16xlarge,reserved_1y,no_upfront,2.2929,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:42.872563 +AWS,eu-west-2,m7g.16xlarge,reserved_1y,partial_upfront,2.2929,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:20.462112 +AWS,eu-west-2,m7g.16xlarge,reserved_3y,all_upfront,2.2929,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:49.499369 +AWS,eu-west-2,m7g.16xlarge,reserved_3y,no_upfront,2.2929,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:49.528180 +AWS,eu-west-2,m7g.16xlarge,reserved_3y,partial_upfront,2.2929,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:30.271165 +AWS,eu-west-2,m7g.16xlarge,spot,NA,0.970334,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689015 +AWS,eu-west-2,m7g.2xlarge,on_demand,NA,0.3774,USD,AWS Pricing API,2025-11-30T09:06:50.850575 +AWS,eu-west-2,m7g.2xlarge,reserved_1y,all_upfront,0.232648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:19.605833 +AWS,eu-west-2,m7g.2xlarge,reserved_1y,no_upfront,0.232648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:05.421044 +AWS,eu-west-2,m7g.2xlarge,reserved_1y,partial_upfront,0.232648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:43.783551 +AWS,eu-west-2,m7g.2xlarge,reserved_3y,all_upfront,0.077549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:13.400798 +AWS,eu-west-2,m7g.2xlarge,reserved_3y,no_upfront,0.077549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:11.914740 +AWS,eu-west-2,m7g.2xlarge,reserved_3y,partial_upfront,0.077549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:53.575772 +AWS,eu-west-2,m7g.2xlarge,spot,NA,0.134346,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688112 +AWS,eu-west-2,m7g.4xlarge,on_demand,NA,0.7549,USD,AWS Pricing API,2025-11-30T09:07:47.267454 +AWS,eu-west-2,m7g.4xlarge,reserved_1y,all_upfront,0.465297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:16.114306 +AWS,eu-west-2,m7g.4xlarge,reserved_1y,no_upfront,0.465297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:02.584327 +AWS,eu-west-2,m7g.4xlarge,reserved_1y,partial_upfront,0.465297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:39.895833 +AWS,eu-west-2,m7g.4xlarge,reserved_3y,all_upfront,0.155099,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:08.818729 +AWS,eu-west-2,m7g.4xlarge,reserved_3y,no_upfront,0.155099,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:09.417668 +AWS,eu-west-2,m7g.4xlarge,reserved_3y,partial_upfront,0.155099,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:49.590486 +AWS,eu-west-2,m7g.4xlarge,spot,NA,0.262038,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689472 +AWS,eu-west-2,m7g.8xlarge,on_demand,NA,1.5098,USD,AWS Pricing API,2025-11-30T09:06:42.133986 +AWS,eu-west-2,m7g.8xlarge,reserved_1y,all_upfront,0.949572,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:10.792348 +AWS,eu-west-2,m7g.8xlarge,reserved_1y,no_upfront,0.949572,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:56.476429 +AWS,eu-west-2,m7g.8xlarge,reserved_1y,partial_upfront,0.949572,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:34.986732 +AWS,eu-west-2,m7g.8xlarge,reserved_3y,all_upfront,0.633057,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:04.758258 +AWS,eu-west-2,m7g.8xlarge,reserved_3y,no_upfront,0.633057,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:02.964878 +AWS,eu-west-2,m7g.8xlarge,reserved_3y,partial_upfront,0.633057,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:44.836130 +AWS,eu-west-2,m7g.8xlarge,spot,NA,0.539219,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687936 +AWS,eu-west-2,m7g.large,on_demand,NA,0.0944,USD,AWS Pricing API,2025-11-30T09:07:09.592721 +AWS,eu-west-2,m7g.large,reserved_1y,all_upfront,0.079489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:38.316631 +AWS,eu-west-2,m7g.large,reserved_1y,no_upfront,0.079489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:24.481909 +AWS,eu-west-2,m7g.large,reserved_1y,partial_upfront,0.079489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:02.391626 +AWS,eu-west-2,m7g.large,reserved_3y,all_upfront,0.039763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:31.704609 +AWS,eu-west-2,m7g.large,reserved_3y,no_upfront,0.039763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:30.943235 +AWS,eu-west-2,m7g.large,reserved_3y,partial_upfront,0.039763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:12.170201 +AWS,eu-west-2,m7g.large,spot,NA,0.03848,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688650 +AWS,eu-west-2,m7g.xlarge,on_demand,NA,0.1887,USD,AWS Pricing API,2025-11-30T09:07:16.357458 +AWS,eu-west-2,m7g.xlarge,reserved_1y,all_upfront,0.116324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:45.117725 +AWS,eu-west-2,m7g.xlarge,reserved_1y,no_upfront,0.116324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:31.344902 +AWS,eu-west-2,m7g.xlarge,reserved_1y,partial_upfront,0.116324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:09.124812 +AWS,eu-west-2,m7g.xlarge,reserved_3y,all_upfront,0.038775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:38.329797 +AWS,eu-west-2,m7g.xlarge,reserved_3y,no_upfront,0.038775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:37.852371 +AWS,eu-west-2,m7g.xlarge,reserved_3y,partial_upfront,0.038775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:18.976005 +AWS,eu-west-2,m7g.xlarge,spot,NA,0.072598,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688796 +AWS,eu-west-2,m7i.12xlarge,on_demand,NA,2.7972,USD,AWS Pricing API,2025-11-30T09:06:56.265846 +AWS,eu-west-2,m7i.12xlarge,reserved_1y,all_upfront,1.84756,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:25.038302 +AWS,eu-west-2,m7i.12xlarge,reserved_1y,no_upfront,1.84756,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:10.939017 +AWS,eu-west-2,m7i.12xlarge,reserved_1y,partial_upfront,1.84756,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:49.159131 +AWS,eu-west-2,m7i.12xlarge,reserved_3y,all_upfront,1.84756,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:18.722675 +AWS,eu-west-2,m7i.12xlarge,reserved_3y,no_upfront,1.84756,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:17.442877 +AWS,eu-west-2,m7i.12xlarge,reserved_3y,partial_upfront,1.84756,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:58.947702 +AWS,eu-west-2,m7i.12xlarge,spot,NA,1.058598,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688270 +AWS,eu-west-2,m7i.16xlarge,on_demand,NA,3.7296,USD,AWS Pricing API,2025-11-30T09:07:33.194441 +AWS,eu-west-2,m7i.16xlarge,reserved_1y,all_upfront,2.346109,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:01.969590 +AWS,eu-west-2,m7i.16xlarge,reserved_1y,no_upfront,2.346109,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:48.335724 +AWS,eu-west-2,m7i.16xlarge,reserved_1y,partial_upfront,2.346109,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:25.882824 +AWS,eu-west-2,m7i.16xlarge,reserved_3y,all_upfront,1.56407,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:54.854988 +AWS,eu-west-2,m7i.16xlarge,reserved_3y,no_upfront,1.56407,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:55.041341 +AWS,eu-west-2,m7i.16xlarge,reserved_3y,partial_upfront,1.56407,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:35.655004 +AWS,eu-west-2,m7i.16xlarge,spot,NA,1.438484,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689156 +AWS,eu-west-2,m7i.24xlarge,on_demand,NA,5.5944,USD,AWS Pricing API,2025-11-30T09:07:39.304528 +AWS,eu-west-2,m7i.24xlarge,reserved_1y,all_upfront,3.519169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:08.083947 +AWS,eu-west-2,m7i.24xlarge,reserved_1y,no_upfront,3.519169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:54.475999 +AWS,eu-west-2,m7i.24xlarge,reserved_1y,partial_upfront,3.519169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:31.949038 +AWS,eu-west-2,m7i.24xlarge,reserved_3y,all_upfront,2.34611,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:00.854208 +AWS,eu-west-2,m7i.24xlarge,reserved_3y,no_upfront,2.34611,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:01.243688 +AWS,eu-west-2,m7i.24xlarge,reserved_3y,partial_upfront,2.34611,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:41.670037 +AWS,eu-west-2,m7i.24xlarge,spot,NA,2.106624,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689292 +AWS,eu-west-2,m7i.2xlarge,on_demand,NA,0.4662,USD,AWS Pricing API,2025-11-30T09:07:14.583792 +AWS,eu-west-2,m7i.2xlarge,reserved_1y,all_upfront,0.287443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:43.361868 +AWS,eu-west-2,m7i.2xlarge,reserved_1y,no_upfront,0.287443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:29.541493 +AWS,eu-west-2,m7i.2xlarge,reserved_1y,partial_upfront,0.287443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:07.368343 +AWS,eu-west-2,m7i.2xlarge,reserved_3y,all_upfront,0.095814,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:36.599146 +AWS,eu-west-2,m7i.2xlarge,reserved_3y,no_upfront,0.095814,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:36.045530 +AWS,eu-west-2,m7i.2xlarge,reserved_3y,partial_upfront,0.095814,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:17.236734 +AWS,eu-west-2,m7i.2xlarge,spot,NA,0.200044,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688780 +AWS,eu-west-2,m7i.48xlarge,on_demand,NA,11.1888,USD,AWS Pricing API,2025-11-30T09:06:37.810556 +AWS,eu-west-2,m7i.48xlarge,reserved_1y,all_upfront,5.82057,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:06.440189 +AWS,eu-west-2,m7i.48xlarge,reserved_1y,no_upfront,5.82057,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:52.110930 +AWS,eu-west-2,m7i.48xlarge,reserved_1y,partial_upfront,5.82057,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:30.641224 +AWS,eu-west-2,m7i.48xlarge,reserved_3y,all_upfront,5.82057,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:00.487139 +AWS,eu-west-2,m7i.48xlarge,reserved_3y,no_upfront,5.82057,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:58.520518 +AWS,eu-west-2,m7i.48xlarge,reserved_3y,partial_upfront,5.82057,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:40.475657 +AWS,eu-west-2,m7i.48xlarge,spot,NA,3.932668,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687813 +AWS,eu-west-2,m7i.4xlarge,on_demand,NA,0.9324,USD,AWS Pricing API,2025-11-30T09:06:51.527489 +AWS,eu-west-2,m7i.4xlarge,reserved_1y,all_upfront,0.574772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:20.300597 +AWS,eu-west-2,m7i.4xlarge,reserved_1y,no_upfront,0.574772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:06.130592 +AWS,eu-west-2,m7i.4xlarge,reserved_1y,partial_upfront,0.574772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:44.455995 +AWS,eu-west-2,m7i.4xlarge,reserved_3y,all_upfront,0.191591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:14.069892 +AWS,eu-west-2,m7i.4xlarge,reserved_3y,no_upfront,0.191591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:12.611708 +AWS,eu-west-2,m7i.4xlarge,reserved_3y,partial_upfront,0.191591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:54.252588 +AWS,eu-west-2,m7i.4xlarge,spot,NA,0.41393,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688149 +AWS,eu-west-2,m7i.8xlarge,on_demand,NA,1.8648,USD,AWS Pricing API,2025-11-30T09:07:28.986903 +AWS,eu-west-2,m7i.8xlarge,reserved_1y,all_upfront,1.23171,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:57.736189 +AWS,eu-west-2,m7i.8xlarge,reserved_1y,no_upfront,1.23171,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:44.112059 +AWS,eu-west-2,m7i.8xlarge,reserved_1y,partial_upfront,1.23171,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:21.685403 +AWS,eu-west-2,m7i.8xlarge,reserved_3y,all_upfront,1.23171,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:50.695994 +AWS,eu-west-2,m7i.8xlarge,reserved_3y,no_upfront,1.23171,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:50.782401 +AWS,eu-west-2,m7i.8xlarge,reserved_3y,partial_upfront,1.23171,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:31.484861 +AWS,eu-west-2,m7i.8xlarge,spot,NA,0.76261,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689058 +AWS,eu-west-2,m7i.large,on_demand,NA,0.11655,USD,AWS Pricing API,2025-11-30T09:06:54.492213 +AWS,eu-west-2,m7i.large,reserved_1y,all_upfront,0.07698,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:23.265331 +AWS,eu-west-2,m7i.large,reserved_1y,no_upfront,0.07698,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:09.136097 +AWS,eu-west-2,m7i.large,reserved_1y,partial_upfront,0.07698,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:47.413073 +AWS,eu-west-2,m7i.large,reserved_3y,all_upfront,0.07698,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:16.988138 +AWS,eu-west-2,m7i.large,reserved_3y,no_upfront,0.07698,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:15.649463 +AWS,eu-west-2,m7i.large,reserved_3y,partial_upfront,0.07698,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:57.192005 +AWS,eu-west-2,m7i.large,spot,NA,0.047894,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688219 +AWS,eu-west-2,m7i.metal-24xl,on_demand,NA,5.5944,USD,AWS Pricing API,2025-11-30T09:06:37.945239 +AWS,eu-west-2,m7i.metal-24xl,reserved_1y,all_upfront,4.7099,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:06.573383 +AWS,eu-west-2,m7i.metal-24xl,reserved_1y,no_upfront,4.7099,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:52.245947 +AWS,eu-west-2,m7i.metal-24xl,reserved_1y,partial_upfront,4.7099,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:30.775262 +AWS,eu-west-2,m7i.metal-24xl,reserved_3y,all_upfront,2.354953,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:00.617951 +AWS,eu-west-2,m7i.metal-24xl,reserved_3y,no_upfront,2.354953,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:58.656483 +AWS,eu-west-2,m7i.metal-24xl,reserved_3y,partial_upfront,2.354953,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:40.610824 +AWS,eu-west-2,m7i.metal-24xl,spot,NA,1.855644,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687821 +AWS,eu-west-2,m7i.metal-48xl,on_demand,NA,11.1888,USD,AWS Pricing API,2025-11-30T09:07:18.769699 +AWS,eu-west-2,m7i.metal-48xl,reserved_1y,all_upfront,15.844863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:47.544061 +AWS,eu-west-2,m7i.metal-48xl,reserved_1y,no_upfront,15.844863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:33.813941 +AWS,eu-west-2,m7i.metal-48xl,reserved_1y,partial_upfront,15.844863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:11.540477 +AWS,eu-west-2,m7i.metal-48xl,reserved_3y,all_upfront,5.281621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:40.721022 +AWS,eu-west-2,m7i.metal-48xl,reserved_3y,no_upfront,5.281621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:40.362092 +AWS,eu-west-2,m7i.metal-48xl,reserved_3y,partial_upfront,5.281621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:21.405715 +AWS,eu-west-2,m7i.metal-48xl,spot,NA,3.466088,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688839 +AWS,eu-west-2,m7i.xlarge,on_demand,NA,0.2331,USD,AWS Pricing API,2025-11-30T09:07:40.800173 +AWS,eu-west-2,m7i.xlarge,reserved_1y,all_upfront,0.146608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:09.596688 +AWS,eu-west-2,m7i.xlarge,reserved_1y,no_upfront,0.146608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:55.994395 +AWS,eu-west-2,m7i.xlarge,reserved_1y,partial_upfront,0.146608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:33.436069 +AWS,eu-west-2,m7i.xlarge,reserved_3y,all_upfront,0.097749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:02.398258 +AWS,eu-west-2,m7i.xlarge,reserved_3y,no_upfront,0.097749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:02.788841 +AWS,eu-west-2,m7i.xlarge,reserved_3y,partial_upfront,0.097749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:43.160052 +AWS,eu-west-2,m7i.xlarge,spot,NA,0.094498,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689349 +AWS,eu-west-2,m8g.12xlarge,on_demand,NA,2.4912,USD,AWS Pricing API,2025-11-30T09:07:24.894680 +AWS,eu-west-2,m8g.12xlarge,reserved_1y,all_upfront,2.957648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:53.649719 +AWS,eu-west-2,m8g.12xlarge,reserved_1y,no_upfront,2.957648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:39.997036 +AWS,eu-west-2,m8g.12xlarge,reserved_1y,partial_upfront,2.957648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:17.637396 +AWS,eu-west-2,m8g.12xlarge,reserved_3y,all_upfront,0.985883,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:46.720018 +AWS,eu-west-2,m8g.12xlarge,reserved_3y,no_upfront,0.985883,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:46.602115 +AWS,eu-west-2,m8g.12xlarge,reserved_3y,partial_upfront,0.985883,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:27.443919 +AWS,eu-west-2,m8g.12xlarge,spot,NA,0.885063,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688960 +AWS,eu-west-2,m8g.16xlarge,on_demand,NA,3.3216,USD,AWS Pricing API,2025-11-30T09:06:38.350082 +AWS,eu-west-2,m8g.16xlarge,reserved_1y,all_upfront,2.52229,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:07.018533 +AWS,eu-west-2,m8g.16xlarge,reserved_1y,no_upfront,2.52229,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:52.652168 +AWS,eu-west-2,m8g.16xlarge,reserved_1y,partial_upfront,2.52229,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:31.177757 +AWS,eu-west-2,m8g.16xlarge,reserved_3y,all_upfront,2.52229,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:01.013190 +AWS,eu-west-2,m8g.16xlarge,reserved_3y,no_upfront,2.52229,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:59.084861 +AWS,eu-west-2,m8g.16xlarge,reserved_3y,partial_upfront,2.52229,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:41.009873 +AWS,eu-west-2,m8g.16xlarge,spot,NA,1.082199,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687854 +AWS,eu-west-2,m8g.24xlarge,on_demand,NA,4.9824,USD,AWS Pricing API,2025-11-30T09:07:46.071687 +AWS,eu-west-2,m8g.24xlarge,reserved_1y,all_upfront,2.59202,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:14.899227 +AWS,eu-west-2,m8g.24xlarge,reserved_1y,no_upfront,2.59202,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:01.332932 +AWS,eu-west-2,m8g.24xlarge,reserved_1y,partial_upfront,2.59202,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:38.699595 +AWS,eu-west-2,m8g.24xlarge,reserved_3y,all_upfront,2.59202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:07.628709 +AWS,eu-west-2,m8g.24xlarge,reserved_3y,no_upfront,2.59202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:08.177002 +AWS,eu-west-2,m8g.24xlarge,reserved_3y,partial_upfront,2.59202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:48.391705 +AWS,eu-west-2,m8g.24xlarge,spot,NA,1.586485,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689464 +AWS,eu-west-2,m8g.2xlarge,on_demand,NA,0.4152,USD,AWS Pricing API,2025-11-30T09:07:37.639893 +AWS,eu-west-2,m8g.2xlarge,reserved_1y,all_upfront,0.31529,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:06.468136 +AWS,eu-west-2,m8g.2xlarge,reserved_1y,no_upfront,0.31529,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:52.841788 +AWS,eu-west-2,m8g.2xlarge,reserved_1y,partial_upfront,0.31529,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:30.322996 +AWS,eu-west-2,m8g.2xlarge,reserved_3y,all_upfront,0.31529,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:59.255800 +AWS,eu-west-2,m8g.2xlarge,reserved_3y,no_upfront,0.31529,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:59.589811 +AWS,eu-west-2,m8g.2xlarge,reserved_3y,partial_upfront,0.31529,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:40.053117 +AWS,eu-west-2,m8g.2xlarge,spot,NA,0.193315,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689257 +AWS,eu-west-2,m8g.48xlarge,on_demand,NA,9.9648,USD,AWS Pricing API,2025-11-30T09:07:10.803853 +AWS,eu-west-2,m8g.48xlarge,reserved_1y,all_upfront,6.267834,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:39.557240 +AWS,eu-west-2,m8g.48xlarge,reserved_1y,no_upfront,6.267834,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:25.715101 +AWS,eu-west-2,m8g.48xlarge,reserved_1y,partial_upfront,6.267834,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:03.602592 +AWS,eu-west-2,m8g.48xlarge,reserved_3y,all_upfront,4.178565,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:32.887335 +AWS,eu-west-2,m8g.48xlarge,reserved_3y,no_upfront,4.178565,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:32.177446 +AWS,eu-west-2,m8g.48xlarge,reserved_3y,partial_upfront,4.178565,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:13.470586 +AWS,eu-west-2,m8g.48xlarge,spot,NA,3.302224,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688674 +AWS,eu-west-2,m8g.4xlarge,on_demand,NA,0.8304,USD,AWS Pricing API,2025-11-30T09:07:27.632215 +AWS,eu-west-2,m8g.4xlarge,reserved_1y,all_upfront,0.600498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:56.373490 +AWS,eu-west-2,m8g.4xlarge,reserved_1y,no_upfront,0.600498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:42.735196 +AWS,eu-west-2,m8g.4xlarge,reserved_1y,partial_upfront,0.600498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:20.325645 +AWS,eu-west-2,m8g.4xlarge,reserved_3y,all_upfront,0.400346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:49.364747 +AWS,eu-west-2,m8g.4xlarge,reserved_3y,no_upfront,0.400346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:49.380960 +AWS,eu-west-2,m8g.4xlarge,reserved_3y,partial_upfront,0.400346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:30.138720 +AWS,eu-west-2,m8g.4xlarge,spot,NA,0.339607,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689003 +AWS,eu-west-2,m8g.8xlarge,on_demand,NA,1.6608,USD,AWS Pricing API,2025-11-30T09:06:59.234668 +AWS,eu-west-2,m8g.8xlarge,reserved_1y,all_upfront,0.75513,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:28.018258 +AWS,eu-west-2,m8g.8xlarge,reserved_1y,no_upfront,0.75513,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:13.947075 +AWS,eu-west-2,m8g.8xlarge,reserved_1y,partial_upfront,0.75513,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:52.122953 +AWS,eu-west-2,m8g.8xlarge,reserved_3y,all_upfront,0.75513,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:21.638631 +AWS,eu-west-2,m8g.8xlarge,reserved_3y,no_upfront,0.75513,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:20.478513 +AWS,eu-west-2,m8g.8xlarge,reserved_3y,partial_upfront,0.75513,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:01.936842 +AWS,eu-west-2,m8g.8xlarge,spot,NA,0.797669,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688341 +AWS,eu-west-2,m8g.large,on_demand,NA,0.1038,USD,AWS Pricing API,2025-11-30T09:07:48.077100 +AWS,eu-west-2,m8g.large,reserved_1y,all_upfront,0.0472,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:16.923898 +AWS,eu-west-2,m8g.large,reserved_1y,no_upfront,0.0472,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:03.407395 +AWS,eu-west-2,m8g.large,reserved_1y,partial_upfront,0.0472,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:40.702905 +AWS,eu-west-2,m8g.large,reserved_3y,all_upfront,0.0472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:09.618024 +AWS,eu-west-2,m8g.large,reserved_3y,no_upfront,0.0472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:10.242752 +AWS,eu-west-2,m8g.large,reserved_3y,partial_upfront,0.0472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:50.398448 +AWS,eu-west-2,m8g.large,spot,NA,0.040253,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689492 +AWS,eu-west-2,m8g.medium,on_demand,NA,0.0519,USD,AWS Pricing API,2025-11-30T09:07:49.992134 +AWS,eu-west-2,m8g.medium,reserved_1y,all_upfront,0.037491,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:18.807088 +AWS,eu-west-2,m8g.medium,reserved_1y,no_upfront,0.037491,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:05.315846 +AWS,eu-west-2,m8g.medium,reserved_1y,partial_upfront,0.037491,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:42.594092 +AWS,eu-west-2,m8g.medium,reserved_3y,all_upfront,0.02501,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:11.468655 +AWS,eu-west-2,m8g.medium,reserved_3y,no_upfront,0.02501,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:12.197733 +AWS,eu-west-2,m8g.medium,reserved_3y,partial_upfront,0.02501,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:52.309056 +AWS,eu-west-2,m8g.medium,spot,NA,0.016209,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689547 +AWS,eu-west-2,m8g.xlarge,on_demand,NA,0.2076,USD,AWS Pricing API,2025-11-30T09:07:08.513570 +AWS,eu-west-2,m8g.xlarge,reserved_1y,all_upfront,0.17475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:37.228659 +AWS,eu-west-2,m8g.xlarge,reserved_1y,no_upfront,0.17475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:23.365342 +AWS,eu-west-2,m8g.xlarge,reserved_1y,partial_upfront,0.17475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:01.300372 +AWS,eu-west-2,m8g.xlarge,reserved_3y,all_upfront,0.087383,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:30.641886 +AWS,eu-west-2,m8g.xlarge,reserved_3y,no_upfront,0.087383,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:29.845376 +AWS,eu-west-2,m8g.xlarge,reserved_3y,partial_upfront,0.087383,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:11.099326 +AWS,eu-west-2,m8g.xlarge,spot,NA,0.099357,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688639 +AWS,eu-west-2,m8gd.12xlarge,on_demand,NA,3.2088,USD,AWS Pricing API,2025-11-30T09:07:48.613414 +AWS,eu-west-2,m8gd.12xlarge,spot,NA,0.63392,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689514 +AWS,eu-west-2,m8gd.16xlarge,on_demand,NA,4.2784,USD,AWS Pricing API,2025-11-30T09:07:41.353787 +AWS,eu-west-2,m8gd.16xlarge,spot,NA,0.857356,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689353 +AWS,eu-west-2,m8gd.24xlarge,on_demand,NA,6.4176,USD,AWS Pricing API,2025-11-30T09:07:07.006329 +AWS,eu-west-2,m8gd.24xlarge,spot,NA,1.3106,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688603 +AWS,eu-west-2,m8gd.2xlarge,on_demand,NA,0.5348,USD,AWS Pricing API,2025-11-30T09:07:47.803070 +AWS,eu-west-2,m8gd.2xlarge,spot,NA,0.140257,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689480 +AWS,eu-west-2,m8gd.48xlarge,on_demand,NA,12.8352,USD,AWS Pricing API,2025-11-30T09:07:43.782581 +AWS,eu-west-2,m8gd.48xlarge,spot,NA,1.88748,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689381 +AWS,eu-west-2,m8gd.4xlarge,on_demand,NA,1.0696,USD,AWS Pricing API,2025-11-30T09:07:14.311902 +AWS,eu-west-2,m8gd.4xlarge,spot,NA,0.281427,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688745 +AWS,eu-west-2,m8gd.8xlarge,on_demand,NA,2.1392,USD,AWS Pricing API,2025-11-30T09:06:39.022538 +AWS,eu-west-2,m8gd.8xlarge,spot,NA,0.531306,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687846 +AWS,eu-west-2,m8gd.large,on_demand,NA,0.1337,USD,AWS Pricing API,2025-11-30T09:07:23.539287 +AWS,eu-west-2,m8gd.large,spot,NA,0.03162,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688932 +AWS,eu-west-2,m8gd.xlarge,on_demand,NA,0.2674,USD,AWS Pricing API,2025-11-30T09:07:14.988099 +AWS,eu-west-2,m8gd.xlarge,spot,NA,0.06893,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688769 +AWS,eu-west-2,p3.16xlarge,on_demand,NA,28.712,USD,AWS Pricing API,2025-11-30T09:07:03.571720 +AWS,eu-west-2,p3.16xlarge,spot,NA,28.712,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688485 +AWS,eu-west-2,p3.2xlarge,on_demand,NA,3.589,USD,AWS Pricing API,2025-11-30T09:07:34.270777 +AWS,eu-west-2,p3.2xlarge,spot,NA,1.11522,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689172 +AWS,eu-west-2,p3.8xlarge,on_demand,NA,14.356,USD,AWS Pricing API,2025-11-30T09:06:44.529940 +AWS,eu-west-2,p3.8xlarge,spot,NA,5.07047,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687975 +AWS,eu-west-2,p4d.24xlarge,on_demand,NA,28.54493,USD,AWS Pricing API,2025-11-30T09:06:44.665950 +AWS,eu-west-2,p4d.24xlarge,spot,NA,14.134241,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687979 +AWS,eu-west-2,p5.48xlarge,on_demand,NA,71.552,USD,AWS Pricing API,2025-11-30T09:07:34.006234 +AWS,eu-west-2,p5.48xlarge,reserved_1y,all_upfront,143.046804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:02.811274 +AWS,eu-west-2,p5.48xlarge,reserved_1y,no_upfront,143.046804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:49.151170 +AWS,eu-west-2,p5.48xlarge,reserved_1y,partial_upfront,143.046804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:26.689921 +AWS,eu-west-2,p5.48xlarge,reserved_3y,all_upfront,47.682268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:55.661471 +AWS,eu-west-2,p5.48xlarge,reserved_3y,no_upfront,47.682268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:55.867396 +AWS,eu-west-2,p5.48xlarge,reserved_3y,partial_upfront,47.682268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:36.448417 +AWS,eu-west-2,p5.48xlarge,spot,NA,26.352996,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689168 +AWS,eu-west-2,r4.16xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T09:07:36.692151 +AWS,eu-west-2,r4.16xlarge,reserved_1y,all_upfront,6.707877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:05.520101 +AWS,eu-west-2,r4.16xlarge,reserved_1y,no_upfront,6.707877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:51.884740 +AWS,eu-west-2,r4.16xlarge,reserved_1y,partial_upfront,6.707877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:29.374284 +AWS,eu-west-2,r4.16xlarge,reserved_3y,all_upfront,2.235959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:58.324260 +AWS,eu-west-2,r4.16xlarge,reserved_3y,no_upfront,2.235959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:58.618814 +AWS,eu-west-2,r4.16xlarge,reserved_3y,partial_upfront,2.235959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:39.120392 +AWS,eu-west-2,r4.16xlarge,spot,NA,1.704647,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689225 +AWS,eu-west-2,r5.12xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:06:38.080627 +AWS,eu-west-2,r5.12xlarge,reserved_1y,all_upfront,2.088584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:06.710093 +AWS,eu-west-2,r5.12xlarge,reserved_1y,no_upfront,2.088584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:52.382285 +AWS,eu-west-2,r5.12xlarge,reserved_1y,partial_upfront,2.088584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:30.911651 +AWS,eu-west-2,r5.12xlarge,reserved_3y,all_upfront,0.696195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:00.749692 +AWS,eu-west-2,r5.12xlarge,reserved_3y,no_upfront,0.696195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:58.801203 +AWS,eu-west-2,r5.12xlarge,reserved_3y,partial_upfront,0.696195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:40.744847 +AWS,eu-west-2,r5.12xlarge,spot,NA,1.093184,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687842 +AWS,eu-west-2,r5.16xlarge,on_demand,NA,4.736,USD,AWS Pricing API,2025-11-30T09:07:10.939673 +AWS,eu-west-2,r5.16xlarge,reserved_1y,all_upfront,3.431,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:39.697927 +AWS,eu-west-2,r5.16xlarge,reserved_1y,no_upfront,3.431,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:25.852645 +AWS,eu-west-2,r5.16xlarge,reserved_1y,partial_upfront,3.431,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:03.736928 +AWS,eu-west-2,r5.16xlarge,reserved_3y,all_upfront,3.431,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:33.019273 +AWS,eu-west-2,r5.16xlarge,reserved_3y,no_upfront,3.431,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:32.315946 +AWS,eu-west-2,r5.16xlarge,reserved_3y,partial_upfront,3.431,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:13.605704 +AWS,eu-west-2,r5.16xlarge,spot,NA,1.516916,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688698 +AWS,eu-west-2,r5.24xlarge,on_demand,NA,7.104,USD,AWS Pricing API,2025-11-30T09:06:53.284470 +AWS,eu-west-2,r5.24xlarge,reserved_1y,all_upfront,5.147,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:22.050889 +AWS,eu-west-2,r5.24xlarge,reserved_1y,no_upfront,5.147,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:07.912824 +AWS,eu-west-2,r5.24xlarge,reserved_1y,partial_upfront,5.147,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:46.201708 +AWS,eu-west-2,r5.24xlarge,reserved_3y,all_upfront,5.147,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:15.790524 +AWS,eu-west-2,r5.24xlarge,reserved_3y,no_upfront,5.147,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:14.419835 +AWS,eu-west-2,r5.24xlarge,reserved_3y,partial_upfront,5.147,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:55.997567 +AWS,eu-west-2,r5.24xlarge,spot,NA,2.282802,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688180 +AWS,eu-west-2,r5.2xlarge,on_demand,NA,0.592,USD,AWS Pricing API,2025-11-30T12:52:29.575397 +AWS,eu-west-2,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.575447 +AWS,eu-west-2,r5.2xlarge,reserved_1y_no_upfront,NA,0.373,USD,AWS Pricing API,2025-11-30T12:52:29.575533 +AWS,eu-west-2,r5.2xlarge,reserved_1y_partial_upfront,NA,0.204,USD,AWS Pricing API,2025-11-30T12:52:29.575544 +AWS,eu-west-2,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.575557 +AWS,eu-west-2,r5.2xlarge,reserved_3y_no_upfront,NA,0.309,USD,AWS Pricing API,2025-11-30T12:52:29.575570 +AWS,eu-west-2,r5.2xlarge,reserved_3y_partial_upfront,NA,0.118,USD,AWS Pricing API,2025-11-30T12:52:29.575508 +AWS,eu-west-2,r5.2xlarge,spot,NA,0.23804,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:33.980484 +AWS,eu-west-2,r5.4xlarge,on_demand,NA,1.184,USD,AWS Pricing API,2025-11-30T09:07:45.799956 +AWS,eu-west-2,r5.4xlarge,reserved_1y,all_upfront,0.858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:14.631781 +AWS,eu-west-2,r5.4xlarge,reserved_1y,no_upfront,0.858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:01.055137 +AWS,eu-west-2,r5.4xlarge,reserved_1y,partial_upfront,0.858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:38.424974 +AWS,eu-west-2,r5.4xlarge,reserved_3y,all_upfront,0.858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:07.359789 +AWS,eu-west-2,r5.4xlarge,reserved_3y,no_upfront,0.858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:07.900099 +AWS,eu-west-2,r5.4xlarge,reserved_3y,partial_upfront,0.858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:48.124065 +AWS,eu-west-2,r5.4xlarge,spot,NA,0.410537,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689452 +AWS,eu-west-2,r5.8xlarge,on_demand,NA,2.368,USD,AWS Pricing API,2025-11-30T09:07:28.715406 +AWS,eu-west-2,r5.8xlarge,reserved_1y,all_upfront,1.420388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:57.458702 +AWS,eu-west-2,r5.8xlarge,reserved_1y,no_upfront,1.420388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:43.838869 +AWS,eu-west-2,r5.8xlarge,reserved_1y,partial_upfront,1.420388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:21.410029 +AWS,eu-west-2,r5.8xlarge,reserved_3y,all_upfront,0.946796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:50.427027 +AWS,eu-west-2,r5.8xlarge,reserved_3y,no_upfront,0.946796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:50.492078 +AWS,eu-west-2,r5.8xlarge,reserved_3y,partial_upfront,0.946796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:31.207330 +AWS,eu-west-2,r5.8xlarge,spot,NA,0.783434,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689066 +AWS,eu-west-2,r5.large,on_demand,NA,0.148,USD,AWS Pricing API,2025-11-30T09:07:04.800968 +AWS,eu-west-2,r5.large,reserved_1y,all_upfront,0.088406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:33.574113 +AWS,eu-west-2,r5.large,reserved_1y,no_upfront,0.088406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:19.540190 +AWS,eu-west-2,r5.large,reserved_1y,partial_upfront,0.088406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:57.662794 +AWS,eu-west-2,r5.large,reserved_3y,all_upfront,0.058802,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:27.065259 +AWS,eu-west-2,r5.large,reserved_3y,no_upfront,0.058802,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:26.112241 +AWS,eu-west-2,r5.large,reserved_3y,partial_upfront,0.058802,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:07.460623 +AWS,eu-west-2,r5.large,spot,NA,0.057825,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688489 +AWS,eu-west-2,r5.xlarge,on_demand,NA,0.296,USD,AWS Pricing API,2025-11-30T09:06:42.270647 +AWS,eu-west-2,r5.xlarge,reserved_1y,all_upfront,0.204169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:10.927484 +AWS,eu-west-2,r5.xlarge,reserved_1y,no_upfront,0.204169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:56.612310 +AWS,eu-west-2,r5.xlarge,reserved_1y,partial_upfront,0.204169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:35.121641 +AWS,eu-west-2,r5.xlarge,reserved_3y,all_upfront,0.136056,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:04.891155 +AWS,eu-west-2,r5.xlarge,reserved_3y,no_upfront,0.136056,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:03.104194 +AWS,eu-west-2,r5.xlarge,reserved_3y,partial_upfront,0.136056,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:44.978979 +AWS,eu-west-2,r5.xlarge,spot,NA,0.119225,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687931 +AWS,eu-west-2,r5a.12xlarge,on_demand,NA,3.192,USD,AWS Pricing API,2025-11-30T09:07:36.827842 +AWS,eu-west-2,r5a.12xlarge,reserved_1y,all_upfront,2.011,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:05.656245 +AWS,eu-west-2,r5a.12xlarge,reserved_1y,no_upfront,2.011,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:52.020047 +AWS,eu-west-2,r5a.12xlarge,reserved_1y,partial_upfront,2.011,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:29.510425 +AWS,eu-west-2,r5a.12xlarge,reserved_3y,all_upfront,2.011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:58.457930 +AWS,eu-west-2,r5a.12xlarge,reserved_3y,no_upfront,2.011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:58.763571 +AWS,eu-west-2,r5a.12xlarge,reserved_3y,partial_upfront,2.011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:39.253509 +AWS,eu-west-2,r5a.12xlarge,spot,NA,1.034521,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689221 +AWS,eu-west-2,r5a.16xlarge,on_demand,NA,4.256,USD,AWS Pricing API,2025-11-30T09:07:44.984737 +AWS,eu-west-2,r5a.16xlarge,reserved_1y,all_upfront,2.887785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:13.794952 +AWS,eu-west-2,r5a.16xlarge,reserved_1y,no_upfront,2.887785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:00.229298 +AWS,eu-west-2,r5a.16xlarge,reserved_1y,partial_upfront,2.887785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:37.606880 +AWS,eu-west-2,r5a.16xlarge,reserved_3y,all_upfront,0.962595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:06.558603 +AWS,eu-west-2,r5a.16xlarge,reserved_3y,no_upfront,0.962595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:07.063433 +AWS,eu-west-2,r5a.16xlarge,reserved_3y,partial_upfront,0.962595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:47.315224 +AWS,eu-west-2,r5a.16xlarge,spot,NA,1.438095,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689428 +AWS,eu-west-2,r5a.24xlarge,on_demand,NA,6.384,USD,AWS Pricing API,2025-11-30T09:07:38.891985 +AWS,eu-west-2,r5a.24xlarge,reserved_1y,all_upfront,4.022,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:07.678390 +AWS,eu-west-2,r5a.24xlarge,reserved_1y,no_upfront,4.022,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:54.059500 +AWS,eu-west-2,r5a.24xlarge,reserved_1y,partial_upfront,4.022,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:31.543330 +AWS,eu-west-2,r5a.24xlarge,reserved_3y,all_upfront,4.022,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:00.456590 +AWS,eu-west-2,r5a.24xlarge,reserved_3y,no_upfront,4.022,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:00.828366 +AWS,eu-west-2,r5a.24xlarge,reserved_3y,partial_upfront,4.022,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:41.265170 +AWS,eu-west-2,r5a.24xlarge,spot,NA,2.03453,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689253 +AWS,eu-west-2,r5a.2xlarge,on_demand,NA,0.532,USD,AWS Pricing API,2025-11-30T09:07:49.577972 +AWS,eu-west-2,r5a.2xlarge,reserved_1y,all_upfront,0.360959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:18.405201 +AWS,eu-west-2,r5a.2xlarge,reserved_1y,no_upfront,0.360959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:04.910222 +AWS,eu-west-2,r5a.2xlarge,reserved_1y,partial_upfront,0.360959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:42.190727 +AWS,eu-west-2,r5a.2xlarge,reserved_3y,all_upfront,0.12032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:11.068834 +AWS,eu-west-2,r5a.2xlarge,reserved_3y,no_upfront,0.12032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:11.787768 +AWS,eu-west-2,r5a.2xlarge,reserved_3y,partial_upfront,0.12032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:51.911629 +AWS,eu-west-2,r5a.2xlarge,spot,NA,0.204192,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689510 +AWS,eu-west-2,r5a.4xlarge,on_demand,NA,1.064,USD,AWS Pricing API,2025-11-30T09:07:29.663063 +AWS,eu-west-2,r5a.4xlarge,reserved_1y,all_upfront,0.67,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:58.420108 +AWS,eu-west-2,r5a.4xlarge,reserved_1y,no_upfront,0.67,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:44.796181 +AWS,eu-west-2,r5a.4xlarge,reserved_1y,partial_upfront,0.67,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:22.373559 +AWS,eu-west-2,r5a.4xlarge,reserved_3y,all_upfront,0.67,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:51.354635 +AWS,eu-west-2,r5a.4xlarge,reserved_3y,no_upfront,0.67,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:51.466848 +AWS,eu-west-2,r5a.4xlarge,reserved_3y,partial_upfront,0.67,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:32.157613 +AWS,eu-west-2,r5a.4xlarge,spot,NA,0.533319,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689090 +AWS,eu-west-2,r5a.8xlarge,on_demand,NA,2.128,USD,AWS Pricing API,2025-11-30T09:07:12.035250 +AWS,eu-west-2,r5a.8xlarge,reserved_1y,all_upfront,1.702826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:40.777536 +AWS,eu-west-2,r5a.8xlarge,reserved_1y,no_upfront,1.702826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:26.944713 +AWS,eu-west-2,r5a.8xlarge,reserved_1y,partial_upfront,1.702826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:04.809923 +AWS,eu-west-2,r5a.8xlarge,reserved_3y,all_upfront,0.851609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:34.092065 +AWS,eu-west-2,r5a.8xlarge,reserved_3y,no_upfront,0.851609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:33.435801 +AWS,eu-west-2,r5a.8xlarge,reserved_3y,partial_upfront,0.851609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:14.681993 +AWS,eu-west-2,r5a.8xlarge,spot,NA,0.837985,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688714 +AWS,eu-west-2,r5a.large,on_demand,NA,0.133,USD,AWS Pricing API,2025-11-30T09:07:18.503688 +AWS,eu-west-2,r5a.large,reserved_1y,all_upfront,0.078196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:47.279129 +AWS,eu-west-2,r5a.large,reserved_1y,no_upfront,0.078196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:33.543445 +AWS,eu-west-2,r5a.large,reserved_1y,partial_upfront,0.078196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:11.272874 +AWS,eu-west-2,r5a.large,reserved_3y,all_upfront,0.026065,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:40.454912 +AWS,eu-west-2,r5a.large,reserved_3y,no_upfront,0.026065,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:40.077442 +AWS,eu-west-2,r5a.large,reserved_3y,partial_upfront,0.026065,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:21.139940 +AWS,eu-west-2,r5a.large,spot,NA,0.051647,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688819 +AWS,eu-west-2,r5a.xlarge,on_demand,NA,0.266,USD,AWS Pricing API,2025-11-30T09:07:29.125501 +AWS,eu-west-2,r5a.xlarge,reserved_1y,all_upfront,0.184123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:57.870395 +AWS,eu-west-2,r5a.xlarge,reserved_1y,no_upfront,0.184123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:44.250506 +AWS,eu-west-2,r5a.xlarge,reserved_1y,partial_upfront,0.184123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:21.827612 +AWS,eu-west-2,r5a.xlarge,reserved_3y,all_upfront,0.122708,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:50.829128 +AWS,eu-west-2,r5a.xlarge,reserved_3y,no_upfront,0.122708,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:50.918108 +AWS,eu-west-2,r5a.xlarge,reserved_3y,partial_upfront,0.122708,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:31.618314 +AWS,eu-west-2,r5a.xlarge,spot,NA,0.114966,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689054 +AWS,eu-west-2,r5d.12xlarge,on_demand,NA,4.056,USD,AWS Pricing API,2025-11-30T09:07:42.422836 +AWS,eu-west-2,r5d.12xlarge,reserved_1y,all_upfront,3.944562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:11.230576 +AWS,eu-west-2,r5d.12xlarge,reserved_1y,no_upfront,3.944562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:57.632283 +AWS,eu-west-2,r5d.12xlarge,reserved_1y,partial_upfront,3.944562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:35.053751 +AWS,eu-west-2,r5d.12xlarge,reserved_3y,all_upfront,1.972187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:03.990938 +AWS,eu-west-2,r5d.12xlarge,reserved_3y,no_upfront,1.972187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:04.452699 +AWS,eu-west-2,r5d.12xlarge,reserved_3y,partial_upfront,1.972187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:44.767954 +AWS,eu-west-2,r5d.12xlarge,spot,NA,1.315748,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689365 +AWS,eu-west-2,r5d.16xlarge,on_demand,NA,5.408,USD,AWS Pricing API,2025-11-30T09:07:07.145914 +AWS,eu-west-2,r5d.16xlarge,reserved_1y,all_upfront,3.244374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:35.880771 +AWS,eu-west-2,r5d.16xlarge,reserved_1y,no_upfront,3.244374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:21.985115 +AWS,eu-west-2,r5d.16xlarge,reserved_1y,partial_upfront,3.244374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:59.950598 +AWS,eu-west-2,r5d.16xlarge,reserved_3y,all_upfront,2.162791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:29.311757 +AWS,eu-west-2,r5d.16xlarge,reserved_3y,no_upfront,2.162791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:28.470975 +AWS,eu-west-2,r5d.16xlarge,reserved_3y,partial_upfront,2.162791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:09.738582 +AWS,eu-west-2,r5d.16xlarge,spot,NA,1.680407,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688582 +AWS,eu-west-2,r5d.24xlarge,on_demand,NA,8.112,USD,AWS Pricing API,2025-11-30T09:07:36.963836 +AWS,eu-west-2,r5d.24xlarge,reserved_1y,all_upfront,4.26,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:05.791528 +AWS,eu-west-2,r5d.24xlarge,reserved_1y,no_upfront,4.26,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:52.158592 +AWS,eu-west-2,r5d.24xlarge,reserved_1y,partial_upfront,4.26,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:29.644376 +AWS,eu-west-2,r5d.24xlarge,reserved_3y,all_upfront,4.26,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:58.593173 +AWS,eu-west-2,r5d.24xlarge,reserved_3y,no_upfront,4.26,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:58.899489 +AWS,eu-west-2,r5d.24xlarge,reserved_3y,partial_upfront,4.26,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:39.388582 +AWS,eu-west-2,r5d.24xlarge,spot,NA,2.801073,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689229 +AWS,eu-west-2,r5d.2xlarge,on_demand,NA,0.676,USD,AWS Pricing API,2025-11-30T09:07:35.616060 +AWS,eu-west-2,r5d.2xlarge,reserved_1y,all_upfront,0.292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:04.439533 +AWS,eu-west-2,r5d.2xlarge,reserved_1y,no_upfront,0.292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:50.789935 +AWS,eu-west-2,r5d.2xlarge,reserved_1y,partial_upfront,0.292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:28.299103 +AWS,eu-west-2,r5d.2xlarge,reserved_3y,all_upfront,0.292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:57.250175 +AWS,eu-west-2,r5d.2xlarge,reserved_3y,no_upfront,0.292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:57.525627 +AWS,eu-west-2,r5d.2xlarge,reserved_3y,partial_upfront,0.292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:38.049501 +AWS,eu-west-2,r5d.2xlarge,spot,NA,0.281927,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689213 +AWS,eu-west-2,r5d.4xlarge,on_demand,NA,1.352,USD,AWS Pricing API,2025-11-30T09:07:06.585732 +AWS,eu-west-2,r5d.4xlarge,reserved_1y,all_upfront,0.794977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:35.335558 +AWS,eu-west-2,r5d.4xlarge,reserved_1y,no_upfront,0.794977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:21.418109 +AWS,eu-west-2,r5d.4xlarge,reserved_1y,partial_upfront,0.794977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:59.414011 +AWS,eu-west-2,r5d.4xlarge,reserved_3y,all_upfront,0.264992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:28.782222 +AWS,eu-west-2,r5d.4xlarge,reserved_3y,no_upfront,0.264992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:27.908869 +AWS,eu-west-2,r5d.4xlarge,reserved_3y,partial_upfront,0.264992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:09.196791 +AWS,eu-west-2,r5d.4xlarge,spot,NA,0.547841,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688586 +AWS,eu-west-2,r5d.8xlarge,on_demand,NA,2.704,USD,AWS Pricing API,2025-11-30T09:07:06.177145 +AWS,eu-west-2,r5d.8xlarge,reserved_1y,all_upfront,1.622187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:34.921606 +AWS,eu-west-2,r5d.8xlarge,reserved_1y,no_upfront,1.622187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:21.006742 +AWS,eu-west-2,r5d.8xlarge,reserved_1y,partial_upfront,1.622187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:59.001484 +AWS,eu-west-2,r5d.8xlarge,reserved_3y,all_upfront,1.081396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:28.381072 +AWS,eu-west-2,r5d.8xlarge,reserved_3y,no_upfront,1.081396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:27.495355 +AWS,eu-west-2,r5d.8xlarge,reserved_3y,partial_upfront,1.081396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:08.795624 +AWS,eu-west-2,r5d.8xlarge,spot,NA,1.710878,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688562 +AWS,eu-west-2,r5d.large,on_demand,NA,0.169,USD,AWS Pricing API,2025-11-30T09:07:30.873211 +AWS,eu-west-2,r5d.large,reserved_1y,all_upfront,0.13537,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:59.637573 +AWS,eu-west-2,r5d.large,reserved_1y,no_upfront,0.13537,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:46.034595 +AWS,eu-west-2,r5d.large,reserved_1y,partial_upfront,0.13537,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:23.579833 +AWS,eu-west-2,r5d.large,reserved_3y,all_upfront,0.06779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:52.540012 +AWS,eu-west-2,r5d.large,reserved_3y,no_upfront,0.06779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:52.705125 +AWS,eu-west-2,r5d.large,reserved_3y,partial_upfront,0.06779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:33.363603 +AWS,eu-west-2,r5d.large,spot,NA,0.073289,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689123 +AWS,eu-west-2,r5d.xlarge,on_demand,NA,0.338,USD,AWS Pricing API,2025-11-30T09:06:48.575994 +AWS,eu-west-2,r5d.xlarge,reserved_1y,all_upfront,0.213,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:17.256640 +AWS,eu-west-2,r5d.xlarge,reserved_1y,no_upfront,0.213,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:03.078892 +AWS,eu-west-2,r5d.xlarge,reserved_1y,partial_upfront,0.213,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:41.490374 +AWS,eu-west-2,r5d.xlarge,reserved_3y,all_upfront,0.213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:11.144968 +AWS,eu-west-2,r5d.xlarge,reserved_3y,no_upfront,0.213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:09.564738 +AWS,eu-west-2,r5d.xlarge,reserved_3y,partial_upfront,0.213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:51.284723 +AWS,eu-west-2,r5d.xlarge,spot,NA,0.178629,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688068 +AWS,eu-west-2,r5n.12xlarge,on_demand,NA,4.2,USD,AWS Pricing API,2025-11-30T09:07:26.534890 +AWS,eu-west-2,r5n.12xlarge,reserved_1y,all_upfront,5.39726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:55.287633 +AWS,eu-west-2,r5n.12xlarge,reserved_1y,no_upfront,5.39726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:41.635713 +AWS,eu-west-2,r5n.12xlarge,reserved_1y,partial_upfront,5.39726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:19.245883 +AWS,eu-west-2,r5n.12xlarge,reserved_3y,all_upfront,1.799087,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:48.299324 +AWS,eu-west-2,r5n.12xlarge,reserved_3y,no_upfront,1.799087,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:48.273641 +AWS,eu-west-2,r5n.12xlarge,reserved_3y,partial_upfront,1.799087,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:29.064606 +AWS,eu-west-2,r5n.12xlarge,spot,NA,1.460474,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688979 +AWS,eu-west-2,r5n.16xlarge,on_demand,NA,5.6,USD,AWS Pricing API,2025-11-30T09:07:41.752033 +AWS,eu-west-2,r5n.16xlarge,reserved_1y,all_upfront,2.644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:10.548562 +AWS,eu-west-2,r5n.16xlarge,reserved_1y,no_upfront,2.644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:56.951914 +AWS,eu-west-2,r5n.16xlarge,reserved_1y,partial_upfront,2.644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:34.383689 +AWS,eu-west-2,r5n.16xlarge,reserved_3y,all_upfront,2.644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:03.324679 +AWS,eu-west-2,r5n.16xlarge,reserved_3y,no_upfront,2.644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:03.749207 +AWS,eu-west-2,r5n.16xlarge,reserved_3y,partial_upfront,2.644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:44.092640 +AWS,eu-west-2,r5n.16xlarge,spot,NA,2.201635,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689361 +AWS,eu-west-2,r5n.24xlarge,on_demand,NA,8.4,USD,AWS Pricing API,2025-11-30T09:07:03.436558 +AWS,eu-west-2,r5n.24xlarge,reserved_1y,all_upfront,6.174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:32.218723 +AWS,eu-west-2,r5n.24xlarge,reserved_1y,no_upfront,6.174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:18.170648 +AWS,eu-west-2,r5n.24xlarge,reserved_1y,partial_upfront,6.174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:56.319308 +AWS,eu-west-2,r5n.24xlarge,reserved_3y,all_upfront,6.174,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:25.741851 +AWS,eu-west-2,r5n.24xlarge,reserved_3y,no_upfront,6.174,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:24.740778 +AWS,eu-west-2,r5n.24xlarge,reserved_3y,partial_upfront,6.174,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:06.111342 +AWS,eu-west-2,r5n.24xlarge,spot,NA,3.177063,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688477 +AWS,eu-west-2,r5n.2xlarge,on_demand,NA,0.7,USD,AWS Pricing API,2025-11-30T09:06:44.395810 +AWS,eu-west-2,r5n.2xlarge,reserved_1y,all_upfront,0.899543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:13.081359 +AWS,eu-west-2,r5n.2xlarge,reserved_1y,no_upfront,0.899543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:58.808412 +AWS,eu-west-2,r5n.2xlarge,reserved_1y,partial_upfront,0.899543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:37.291688 +AWS,eu-west-2,r5n.2xlarge,reserved_3y,all_upfront,0.299848,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:07.025116 +AWS,eu-west-2,r5n.2xlarge,reserved_3y,no_upfront,0.299848,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:05.293920 +AWS,eu-west-2,r5n.2xlarge,reserved_3y,partial_upfront,0.299848,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:47.113951 +AWS,eu-west-2,r5n.2xlarge,spot,NA,0.269626,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687966 +AWS,eu-west-2,r5n.4xlarge,on_demand,NA,1.4,USD,AWS Pricing API,2025-11-30T09:07:40.257249 +AWS,eu-west-2,r5n.4xlarge,reserved_1y,all_upfront,0.886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:09.060237 +AWS,eu-west-2,r5n.4xlarge,reserved_1y,no_upfront,0.886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:55.443889 +AWS,eu-west-2,r5n.4xlarge,reserved_1y,partial_upfront,0.886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:32.893012 +AWS,eu-west-2,r5n.4xlarge,reserved_3y,all_upfront,0.886,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:01.822990 +AWS,eu-west-2,r5n.4xlarge,reserved_3y,no_upfront,0.886,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:02.225276 +AWS,eu-west-2,r5n.4xlarge,reserved_3y,partial_upfront,0.886,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:42.622893 +AWS,eu-west-2,r5n.4xlarge,spot,NA,0.54848,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689296 +AWS,eu-west-2,r5n.8xlarge,on_demand,NA,2.8,USD,AWS Pricing API,2025-11-30T09:07:26.400691 +AWS,eu-west-2,r5n.8xlarge,reserved_1y,all_upfront,1.960023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:55.153360 +AWS,eu-west-2,r5n.8xlarge,reserved_1y,no_upfront,1.960023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:41.496229 +AWS,eu-west-2,r5n.8xlarge,reserved_1y,partial_upfront,1.960023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:19.105747 +AWS,eu-west-2,r5n.8xlarge,reserved_3y,all_upfront,1.306674,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:48.169358 +AWS,eu-west-2,r5n.8xlarge,reserved_3y,no_upfront,1.306674,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:48.128525 +AWS,eu-west-2,r5n.8xlarge,reserved_3y,partial_upfront,1.306674,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:28.932151 +AWS,eu-west-2,r5n.8xlarge,spot,NA,1.328172,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688987 +AWS,eu-west-2,r5n.large,on_demand,NA,0.175,USD,AWS Pricing API,2025-11-30T09:07:47.538393 +AWS,eu-west-2,r5n.large,reserved_1y,all_upfront,0.120091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:16.384721 +AWS,eu-west-2,r5n.large,reserved_1y,no_upfront,0.120091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:02.860624 +AWS,eu-west-2,r5n.large,reserved_1y,partial_upfront,0.120091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:40.169092 +AWS,eu-west-2,r5n.large,reserved_3y,all_upfront,0.04003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:09.085618 +AWS,eu-west-2,r5n.large,reserved_3y,no_upfront,0.04003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:09.695492 +AWS,eu-west-2,r5n.large,reserved_3y,partial_upfront,0.04003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:49.859901 +AWS,eu-west-2,r5n.large,spot,NA,0.07687,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689476 +AWS,eu-west-2,r5n.metal,on_demand,NA,8.4,USD,AWS Pricing API,2025-11-30T09:07:27.351324 +AWS,eu-west-2,r5n.metal,reserved_1y,all_upfront,6.174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:56.105837 +AWS,eu-west-2,r5n.metal,reserved_1y,no_upfront,6.174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:42.449167 +AWS,eu-west-2,r5n.metal,reserved_1y,partial_upfront,6.174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:20.057212 +AWS,eu-west-2,r5n.metal,reserved_3y,all_upfront,6.174,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:49.101147 +AWS,eu-west-2,r5n.metal,reserved_3y,no_upfront,6.174,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:49.103233 +AWS,eu-west-2,r5n.metal,reserved_3y,partial_upfront,6.174,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:29.869157 +AWS,eu-west-2,r5n.metal,spot,NA,2.58585,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689007 +AWS,eu-west-2,r5n.xlarge,on_demand,NA,0.35,USD,AWS Pricing API,2025-11-30T09:07:05.488246 +AWS,eu-west-2,r5n.xlarge,reserved_1y,all_upfront,0.245489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:34.244310 +AWS,eu-west-2,r5n.xlarge,reserved_1y,no_upfront,0.245489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:20.313679 +AWS,eu-west-2,r5n.xlarge,reserved_1y,partial_upfront,0.245489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:58.330664 +AWS,eu-west-2,r5n.xlarge,reserved_3y,all_upfront,0.16383,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:27.725105 +AWS,eu-west-2,r5n.xlarge,reserved_3y,no_upfront,0.16383,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:26.806728 +AWS,eu-west-2,r5n.xlarge,reserved_3y,partial_upfront,0.16383,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:08.125708 +AWS,eu-west-2,r5n.xlarge,spot,NA,0.11538,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688542 +AWS,eu-west-2,r6g.12xlarge,on_demand,NA,2.8416,USD,AWS Pricing API,2025-11-30T09:06:58.695668 +AWS,eu-west-2,r6g.12xlarge,reserved_1y,all_upfront,1.67089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:27.477447 +AWS,eu-west-2,r6g.12xlarge,reserved_1y,no_upfront,1.67089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:13.401114 +AWS,eu-west-2,r6g.12xlarge,reserved_1y,partial_upfront,1.67089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:51.586709 +AWS,eu-west-2,r6g.12xlarge,reserved_3y,all_upfront,0.556963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:21.108986 +AWS,eu-west-2,r6g.12xlarge,reserved_3y,no_upfront,0.556963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:19.914234 +AWS,eu-west-2,r6g.12xlarge,reserved_3y,partial_upfront,0.556963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:01.386148 +AWS,eu-west-2,r6g.12xlarge,spot,NA,0.871946,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688329 +AWS,eu-west-2,r6g.16xlarge,on_demand,NA,3.7888,USD,AWS Pricing API,2025-11-30T09:06:55.582993 +AWS,eu-west-2,r6g.16xlarge,reserved_1y,all_upfront,2.3869,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:24.356559 +AWS,eu-west-2,r6g.16xlarge,reserved_1y,no_upfront,2.3869,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:10.244337 +AWS,eu-west-2,r6g.16xlarge,reserved_1y,partial_upfront,2.3869,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:48.487616 +AWS,eu-west-2,r6g.16xlarge,reserved_3y,all_upfront,2.3869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:18.054686 +AWS,eu-west-2,r6g.16xlarge,reserved_3y,no_upfront,2.3869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:16.752507 +AWS,eu-west-2,r6g.16xlarge,reserved_3y,partial_upfront,2.3869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:58.266543 +AWS,eu-west-2,r6g.16xlarge,spot,NA,1.202137,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688274 +AWS,eu-west-2,r6g.2xlarge,on_demand,NA,0.4736,USD,AWS Pricing API,2025-11-30T09:07:48.476608 +AWS,eu-west-2,r6g.2xlarge,reserved_1y,all_upfront,0.3428,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:17.325687 +AWS,eu-west-2,r6g.2xlarge,reserved_1y,no_upfront,0.3428,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:03.816049 +AWS,eu-west-2,r6g.2xlarge,reserved_1y,partial_upfront,0.3428,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:41.104580 +AWS,eu-west-2,r6g.2xlarge,reserved_3y,all_upfront,0.3428,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:10.009653 +AWS,eu-west-2,r6g.2xlarge,reserved_3y,no_upfront,0.3428,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:10.666022 +AWS,eu-west-2,r6g.2xlarge,reserved_3y,partial_upfront,0.3428,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:50.805137 +AWS,eu-west-2,r6g.2xlarge,spot,NA,0.159502,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689539 +AWS,eu-west-2,r6g.4xlarge,on_demand,NA,0.9472,USD,AWS Pricing API,2025-11-30T09:06:45.468596 +AWS,eu-west-2,r6g.4xlarge,reserved_1y,all_upfront,0.652984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:14.153942 +AWS,eu-west-2,r6g.4xlarge,reserved_1y,no_upfront,0.652984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:59.898143 +AWS,eu-west-2,r6g.4xlarge,reserved_1y,partial_upfront,0.652984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:38.379524 +AWS,eu-west-2,r6g.4xlarge,reserved_3y,all_upfront,0.435328,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:08.083660 +AWS,eu-west-2,r6g.4xlarge,reserved_3y,no_upfront,0.435328,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:06.397150 +AWS,eu-west-2,r6g.4xlarge,reserved_3y,partial_upfront,0.435328,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:48.195224 +AWS,eu-west-2,r6g.4xlarge,spot,NA,0.404079,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688008 +AWS,eu-west-2,r6g.8xlarge,on_demand,NA,1.8944,USD,AWS Pricing API,2025-11-30T09:07:24.364292 +AWS,eu-west-2,r6g.8xlarge,reserved_1y,all_upfront,1.113927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:53.104820 +AWS,eu-west-2,r6g.8xlarge,reserved_1y,no_upfront,1.113927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:39.448471 +AWS,eu-west-2,r6g.8xlarge,reserved_1y,partial_upfront,1.113927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:17.089387 +AWS,eu-west-2,r6g.8xlarge,reserved_3y,all_upfront,0.371309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:46.172759 +AWS,eu-west-2,r6g.8xlarge,reserved_3y,no_upfront,0.371309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:46.054847 +AWS,eu-west-2,r6g.8xlarge,reserved_3y,partial_upfront,0.371309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:26.913399 +AWS,eu-west-2,r6g.8xlarge,spot,NA,0.617211,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688952 +AWS,eu-west-2,r6g.large,on_demand,NA,0.1184,USD,AWS Pricing API,2025-11-30T09:07:02.889259 +AWS,eu-west-2,r6g.large,reserved_1y,all_upfront,0.071002,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:31.679392 +AWS,eu-west-2,r6g.large,reserved_1y,no_upfront,0.071002,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:17.626868 +AWS,eu-west-2,r6g.large,reserved_1y,partial_upfront,0.071002,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:55.776943 +AWS,eu-west-2,r6g.large,reserved_3y,all_upfront,0.047334,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:25.212417 +AWS,eu-west-2,r6g.large,reserved_3y,no_upfront,0.047334,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:24.193199 +AWS,eu-west-2,r6g.large,reserved_3y,partial_upfront,0.047334,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:05.566077 +AWS,eu-west-2,r6g.large,spot,NA,0.042588,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688481 +AWS,eu-west-2,r6g.xlarge,on_demand,NA,0.2368,USD,AWS Pricing API,2025-11-30T09:06:38.488667 +AWS,eu-west-2,r6g.xlarge,reserved_1y,all_upfront,0.1714,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:07.152646 +AWS,eu-west-2,r6g.xlarge,reserved_1y,no_upfront,0.1714,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:52.790895 +AWS,eu-west-2,r6g.xlarge,reserved_1y,partial_upfront,0.1714,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:31.315985 +AWS,eu-west-2,r6g.xlarge,reserved_3y,all_upfront,0.1714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:01.150747 +AWS,eu-west-2,r6g.xlarge,reserved_3y,no_upfront,0.1714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:59.224240 +AWS,eu-west-2,r6g.xlarge,reserved_3y,partial_upfront,0.1714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:41.143086 +AWS,eu-west-2,r6g.xlarge,spot,NA,0.080084,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687866 +AWS,eu-west-2,r6gd.12xlarge,on_demand,NA,3.2448,USD,AWS Pricing API,2025-11-30T09:07:34.810286 +AWS,eu-west-2,r6gd.12xlarge,reserved_1y,all_upfront,2.595918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:03.617171 +AWS,eu-west-2,r6gd.12xlarge,reserved_1y,no_upfront,2.595918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:49.963542 +AWS,eu-west-2,r6gd.12xlarge,reserved_1y,partial_upfront,2.595918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:27.493147 +AWS,eu-west-2,r6gd.12xlarge,reserved_3y,all_upfront,1.297973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:56.463795 +AWS,eu-west-2,r6gd.12xlarge,reserved_3y,no_upfront,1.297973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:56.695236 +AWS,eu-west-2,r6gd.12xlarge,reserved_3y,partial_upfront,1.297973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:37.254625 +AWS,eu-west-2,r6gd.12xlarge,spot,NA,1.005361,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689176 +AWS,eu-west-2,r6gd.16xlarge,on_demand,NA,4.3264,USD,AWS Pricing API,2025-11-30T09:07:01.395298 +AWS,eu-west-2,r6gd.16xlarge,reserved_1y,all_upfront,2.2721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:30.196607 +AWS,eu-west-2,r6gd.16xlarge,reserved_1y,no_upfront,2.2721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:16.125113 +AWS,eu-west-2,r6gd.16xlarge,reserved_1y,partial_upfront,2.2721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:54.308174 +AWS,eu-west-2,r6gd.16xlarge,reserved_3y,all_upfront,2.2721,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:23.755304 +AWS,eu-west-2,r6gd.16xlarge,reserved_3y,no_upfront,2.2721,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:22.684384 +AWS,eu-west-2,r6gd.16xlarge,reserved_3y,partial_upfront,2.2721,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:04.095107 +AWS,eu-west-2,r6gd.16xlarge,spot,NA,1.377225,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688446 +AWS,eu-west-2,r6gd.2xlarge,on_demand,NA,0.5408,USD,AWS Pricing API,2025-11-30T09:06:39.974783 +AWS,eu-west-2,r6gd.2xlarge,reserved_1y,all_upfront,0.369863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:08.640148 +AWS,eu-west-2,r6gd.2xlarge,reserved_1y,no_upfront,0.369863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:54.302809 +AWS,eu-west-2,r6gd.2xlarge,reserved_1y,partial_upfront,0.369863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:32.792697 +AWS,eu-west-2,r6gd.2xlarge,reserved_3y,all_upfront,0.123288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:02.625706 +AWS,eu-west-2,r6gd.2xlarge,reserved_3y,no_upfront,0.123288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:00.740874 +AWS,eu-west-2,r6gd.2xlarge,reserved_3y,partial_upfront,0.123288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:42.680533 +AWS,eu-west-2,r6gd.2xlarge,spot,NA,0.191533,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687886 +AWS,eu-west-2,r6gd.4xlarge,on_demand,NA,1.0816,USD,AWS Pricing API,2025-11-30T09:06:46.421231 +AWS,eu-west-2,r6gd.4xlarge,reserved_1y,all_upfront,0.4673,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:15.105643 +AWS,eu-west-2,r6gd.4xlarge,reserved_1y,no_upfront,0.4673,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:00.864918 +AWS,eu-west-2,r6gd.4xlarge,reserved_1y,partial_upfront,0.4673,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:39.340074 +AWS,eu-west-2,r6gd.4xlarge,reserved_3y,all_upfront,0.4673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:09.007096 +AWS,eu-west-2,r6gd.4xlarge,reserved_3y,no_upfront,0.4673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:07.365683 +AWS,eu-west-2,r6gd.4xlarge,reserved_3y,partial_upfront,0.4673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:49.140107 +AWS,eu-west-2,r6gd.4xlarge,spot,NA,0.404164,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688035 +AWS,eu-west-2,r6gd.8xlarge,on_demand,NA,2.1632,USD,AWS Pricing API,2025-11-30T09:06:40.779760 +AWS,eu-west-2,r6gd.8xlarge,reserved_1y,all_upfront,1.297973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:09.453272 +AWS,eu-west-2,r6gd.8xlarge,reserved_1y,no_upfront,1.297973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:55.115885 +AWS,eu-west-2,r6gd.8xlarge,reserved_1y,partial_upfront,1.297973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:33.620036 +AWS,eu-west-2,r6gd.8xlarge,reserved_3y,all_upfront,0.865324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:03.432852 +AWS,eu-west-2,r6gd.8xlarge,reserved_3y,no_upfront,0.865324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:01.580138 +AWS,eu-west-2,r6gd.8xlarge,reserved_3y,partial_upfront,0.865324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:43.487084 +AWS,eu-west-2,r6gd.8xlarge,spot,NA,0.886641,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687909 +AWS,eu-west-2,r6gd.large,on_demand,NA,0.1352,USD,AWS Pricing API,2025-11-30T09:07:16.222688 +AWS,eu-west-2,r6gd.large,reserved_1y,all_upfront,0.0991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:44.983205 +AWS,eu-west-2,r6gd.large,reserved_1y,no_upfront,0.0991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:31.209781 +AWS,eu-west-2,r6gd.large,reserved_1y,partial_upfront,0.0991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:08.989928 +AWS,eu-west-2,r6gd.large,reserved_3y,all_upfront,0.0991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:38.197585 +AWS,eu-west-2,r6gd.large,reserved_3y,no_upfront,0.0991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:37.713777 +AWS,eu-west-2,r6gd.large,reserved_3y,partial_upfront,0.0991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:18.839832 +AWS,eu-west-2,r6gd.large,spot,NA,0.046312,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688815 +AWS,eu-west-2,r6gd.xlarge,on_demand,NA,0.2704,USD,AWS Pricing API,2025-11-30T09:07:00.329592 +AWS,eu-west-2,r6gd.xlarge,reserved_1y,all_upfront,0.159018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:29.108404 +AWS,eu-west-2,r6gd.xlarge,reserved_1y,no_upfront,0.159018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:15.037278 +AWS,eu-west-2,r6gd.xlarge,reserved_1y,partial_upfront,0.159018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:53.225916 +AWS,eu-west-2,r6gd.xlarge,reserved_3y,all_upfront,0.053006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:22.697375 +AWS,eu-west-2,r6gd.xlarge,reserved_3y,no_upfront,0.053006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:21.579240 +AWS,eu-west-2,r6gd.xlarge,reserved_3y,partial_upfront,0.053006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:03.014119 +AWS,eu-west-2,r6gd.xlarge,spot,NA,0.095471,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688356 +AWS,eu-west-2,r6i.12xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:07:40.526665 +AWS,eu-west-2,r6i.12xlarge,reserved_1y,all_upfront,2.35494,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:09.326785 +AWS,eu-west-2,r6i.12xlarge,reserved_1y,no_upfront,2.35494,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:55.713394 +AWS,eu-west-2,r6i.12xlarge,reserved_1y,partial_upfront,2.35494,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:33.169617 +AWS,eu-west-2,r6i.12xlarge,reserved_3y,all_upfront,2.35494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:02.123384 +AWS,eu-west-2,r6i.12xlarge,reserved_3y,no_upfront,2.35494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:02.509390 +AWS,eu-west-2,r6i.12xlarge,reserved_3y,partial_upfront,2.35494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:42.889976 +AWS,eu-west-2,r6i.12xlarge,spot,NA,1.146174,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689341 +AWS,eu-west-2,r6i.16xlarge,on_demand,NA,4.736,USD,AWS Pricing API,2025-11-30T09:06:49.111471 +AWS,eu-west-2,r6i.16xlarge,reserved_1y,all_upfront,2.990405,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:17.814527 +AWS,eu-west-2,r6i.16xlarge,reserved_1y,no_upfront,2.990405,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:03.640680 +AWS,eu-west-2,r6i.16xlarge,reserved_1y,partial_upfront,2.990405,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:42.031111 +AWS,eu-west-2,r6i.16xlarge,reserved_3y,all_upfront,1.993602,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:11.675088 +AWS,eu-west-2,r6i.16xlarge,reserved_3y,no_upfront,1.993602,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:10.120522 +AWS,eu-west-2,r6i.16xlarge,reserved_3y,partial_upfront,1.993602,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:51.818708 +AWS,eu-west-2,r6i.16xlarge,spot,NA,1.521816,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688072 +AWS,eu-west-2,r6i.24xlarge,on_demand,NA,7.104,USD,AWS Pricing API,2025-11-30T09:06:55.445782 +AWS,eu-west-2,r6i.24xlarge,reserved_1y,all_upfront,4.485608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:24.221846 +AWS,eu-west-2,r6i.24xlarge,reserved_1y,no_upfront,4.485608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:10.107513 +AWS,eu-west-2,r6i.24xlarge,reserved_1y,partial_upfront,4.485608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:48.352640 +AWS,eu-west-2,r6i.24xlarge,reserved_3y,all_upfront,2.990403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:17.923896 +AWS,eu-west-2,r6i.24xlarge,reserved_3y,no_upfront,2.990403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:16.615564 +AWS,eu-west-2,r6i.24xlarge,reserved_3y,partial_upfront,2.990403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:58.131393 +AWS,eu-west-2,r6i.24xlarge,spot,NA,2.211809,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688212 +AWS,eu-west-2,r6i.2xlarge,on_demand,NA,0.592,USD,AWS Pricing API,2025-11-30T09:07:44.047843 +AWS,eu-west-2,r6i.2xlarge,reserved_1y,all_upfront,0.840868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:12.850417 +AWS,eu-west-2,r6i.2xlarge,reserved_1y,no_upfront,0.840868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:59.261859 +AWS,eu-west-2,r6i.2xlarge,reserved_1y,partial_upfront,0.840868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:36.668232 +AWS,eu-west-2,r6i.2xlarge,reserved_3y,all_upfront,0.280289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:05.624525 +AWS,eu-west-2,r6i.2xlarge,reserved_3y,no_upfront,0.280289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:06.099542 +AWS,eu-west-2,r6i.2xlarge,reserved_3y,partial_upfront,0.280289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:46.376449 +AWS,eu-west-2,r6i.2xlarge,spot,NA,0.249852,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689393 +AWS,eu-west-2,r6i.32xlarge,on_demand,NA,9.472,USD,AWS Pricing API,2025-11-30T09:06:49.247493 +AWS,eu-west-2,r6i.32xlarge,reserved_1y,all_upfront,6.27984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:17.950230 +AWS,eu-west-2,r6i.32xlarge,reserved_1y,no_upfront,6.27984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:03.776347 +AWS,eu-west-2,r6i.32xlarge,reserved_1y,partial_upfront,6.27984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:42.165491 +AWS,eu-west-2,r6i.32xlarge,reserved_3y,all_upfront,6.27984,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:11.817658 +AWS,eu-west-2,r6i.32xlarge,reserved_3y,no_upfront,6.27984,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:10.257231 +AWS,eu-west-2,r6i.32xlarge,reserved_3y,partial_upfront,6.27984,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:51.956632 +AWS,eu-west-2,r6i.32xlarge,spot,NA,4.450249,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688080 +AWS,eu-west-2,r6i.4xlarge,on_demand,NA,1.184,USD,AWS Pricing API,2025-11-30T09:07:10.541924 +AWS,eu-west-2,r6i.4xlarge,reserved_1y,all_upfront,1.681735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:39.287156 +AWS,eu-west-2,r6i.4xlarge,reserved_1y,no_upfront,1.681735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:25.443496 +AWS,eu-west-2,r6i.4xlarge,reserved_1y,partial_upfront,1.681735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:03.332454 +AWS,eu-west-2,r6i.4xlarge,reserved_3y,all_upfront,0.560578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:32.628495 +AWS,eu-west-2,r6i.4xlarge,reserved_3y,no_upfront,0.560578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:31.898914 +AWS,eu-west-2,r6i.4xlarge,reserved_3y,partial_upfront,0.560578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:13.199481 +AWS,eu-west-2,r6i.4xlarge,spot,NA,0.536038,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688682 +AWS,eu-west-2,r6i.8xlarge,on_demand,NA,2.368,USD,AWS Pricing API,2025-11-30T09:07:14.853137 +AWS,eu-west-2,r6i.8xlarge,reserved_1y,all_upfront,1.465297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:43.631366 +AWS,eu-west-2,r6i.8xlarge,reserved_1y,no_upfront,1.465297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:29.811809 +AWS,eu-west-2,r6i.8xlarge,reserved_1y,partial_upfront,1.465297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:07.644909 +AWS,eu-west-2,r6i.8xlarge,reserved_3y,all_upfront,0.488432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:36.860465 +AWS,eu-west-2,r6i.8xlarge,reserved_3y,no_upfront,0.488432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:36.319948 +AWS,eu-west-2,r6i.8xlarge,reserved_3y,partial_upfront,0.488432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:17.503115 +AWS,eu-west-2,r6i.8xlarge,spot,NA,0.775164,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688765 +AWS,eu-west-2,r6i.large,on_demand,NA,0.148,USD,AWS Pricing API,2025-11-30T09:07:30.603602 +AWS,eu-west-2,r6i.large,reserved_1y,all_upfront,0.21016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:59.369267 +AWS,eu-west-2,r6i.large,reserved_1y,no_upfront,0.21016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:45.750783 +AWS,eu-west-2,r6i.large,reserved_1y,partial_upfront,0.21016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:23.313895 +AWS,eu-west-2,r6i.large,reserved_3y,all_upfront,0.070053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:52.276792 +AWS,eu-west-2,r6i.large,reserved_3y,no_upfront,0.070053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:52.432321 +AWS,eu-west-2,r6i.large,reserved_3y,partial_upfront,0.070053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:33.097439 +AWS,eu-west-2,r6i.large,spot,NA,0.058466,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689074 +AWS,eu-west-2,r6i.xlarge,on_demand,NA,0.296,USD,AWS Pricing API,2025-11-30T09:06:52.610362 +AWS,eu-west-2,r6i.xlarge,reserved_1y,all_upfront,0.2142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:21.374812 +AWS,eu-west-2,r6i.xlarge,reserved_1y,no_upfront,0.2142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:07.226074 +AWS,eu-west-2,r6i.xlarge,reserved_1y,partial_upfront,0.2142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:45.531684 +AWS,eu-west-2,r6i.xlarge,reserved_3y,all_upfront,0.2142,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:15.136383 +AWS,eu-west-2,r6i.xlarge,reserved_3y,no_upfront,0.2142,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:13.724817 +AWS,eu-west-2,r6i.xlarge,reserved_3y,partial_upfront,0.2142,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:55.324536 +AWS,eu-west-2,r6i.xlarge,spot,NA,0.125662,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688145 +AWS,eu-west-2,r6id.12xlarge,on_demand,NA,4.2588,USD,AWS Pricing API,2025-11-30T09:07:44.449265 +AWS,eu-west-2,r6id.12xlarge,reserved_1y,all_upfront,3.407011,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:13.253024 +AWS,eu-west-2,r6id.12xlarge,reserved_1y,no_upfront,3.407011,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:59.673036 +AWS,eu-west-2,r6id.12xlarge,reserved_1y,partial_upfront,3.407011,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:37.068121 +AWS,eu-west-2,r6id.12xlarge,reserved_3y,all_upfront,1.70351,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:06.019263 +AWS,eu-west-2,r6id.12xlarge,reserved_3y,no_upfront,1.70351,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:06.512489 +AWS,eu-west-2,r6id.12xlarge,reserved_3y,partial_upfront,1.70351,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:46.777400 +AWS,eu-west-2,r6id.12xlarge,spot,NA,1.6124,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689420 +AWS,eu-west-2,r6id.16xlarge,on_demand,NA,5.6784,USD,AWS Pricing API,2025-11-30T09:07:27.487958 +AWS,eu-west-2,r6id.16xlarge,reserved_1y,all_upfront,3.338927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:56.238288 +AWS,eu-west-2,r6id.16xlarge,reserved_1y,no_upfront,3.338927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:42.586472 +AWS,eu-west-2,r6id.16xlarge,reserved_1y,partial_upfront,3.338927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:20.191763 +AWS,eu-west-2,r6id.16xlarge,reserved_3y,all_upfront,1.112976,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:49.233005 +AWS,eu-west-2,r6id.16xlarge,reserved_3y,no_upfront,1.112976,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:49.241120 +AWS,eu-west-2,r6id.16xlarge,reserved_3y,partial_upfront,1.112976,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:30.003803 +AWS,eu-west-2,r6id.16xlarge,spot,NA,2.030276,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689027 +AWS,eu-west-2,r6id.24xlarge,on_demand,NA,8.5176,USD,AWS Pricing API,2025-11-30T09:06:40.244572 +AWS,eu-west-2,r6id.24xlarge,reserved_1y,all_upfront,6.24076,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:08.914300 +AWS,eu-west-2,r6id.24xlarge,reserved_1y,no_upfront,6.24076,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:54.575760 +AWS,eu-west-2,r6id.24xlarge,reserved_1y,partial_upfront,6.24076,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:33.060470 +AWS,eu-west-2,r6id.24xlarge,reserved_3y,all_upfront,6.24076,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:02.894496 +AWS,eu-west-2,r6id.24xlarge,reserved_3y,no_upfront,6.24076,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:01.019457 +AWS,eu-west-2,r6id.24xlarge,reserved_3y,partial_upfront,6.24076,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:42.950294 +AWS,eu-west-2,r6id.24xlarge,spot,NA,3.160367,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687898 +AWS,eu-west-2,r6id.2xlarge,on_demand,NA,0.7098,USD,AWS Pricing API,2025-11-30T09:07:30.201009 +AWS,eu-west-2,r6id.2xlarge,reserved_1y,all_upfront,0.567873,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:58.963150 +AWS,eu-west-2,r6id.2xlarge,reserved_1y,no_upfront,0.567873,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:45.338585 +AWS,eu-west-2,r6id.2xlarge,reserved_1y,partial_upfront,0.567873,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:22.908130 +AWS,eu-west-2,r6id.2xlarge,reserved_3y,all_upfront,0.283931,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:51.881189 +AWS,eu-west-2,r6id.2xlarge,reserved_3y,no_upfront,0.283931,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:52.020603 +AWS,eu-west-2,r6id.2xlarge,reserved_3y,partial_upfront,0.283931,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:32.692370 +AWS,eu-west-2,r6id.2xlarge,spot,NA,0.246615,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689094 +AWS,eu-west-2,r6id.32xlarge,on_demand,NA,11.3568,USD,AWS Pricing API,2025-11-30T09:07:22.013622 +AWS,eu-west-2,r6id.32xlarge,reserved_1y,all_upfront,6.814118,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:50.793582 +AWS,eu-west-2,r6id.32xlarge,reserved_1y,no_upfront,6.814118,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:37.110080 +AWS,eu-west-2,r6id.32xlarge,reserved_1y,partial_upfront,6.814118,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:14.779826 +AWS,eu-west-2,r6id.32xlarge,reserved_3y,all_upfront,4.542733,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:43.891523 +AWS,eu-west-2,r6id.32xlarge,reserved_3y,no_upfront,4.542733,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:43.685325 +AWS,eu-west-2,r6id.32xlarge,reserved_3y,partial_upfront,4.542733,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:24.623548 +AWS,eu-west-2,r6id.32xlarge,spot,NA,3.940319,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688901 +AWS,eu-west-2,r6id.4xlarge,on_demand,NA,1.4196,USD,AWS Pricing API,2025-11-30T09:07:16.751866 +AWS,eu-west-2,r6id.4xlarge,reserved_1y,all_upfront,0.970776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:45.519685 +AWS,eu-west-2,r6id.4xlarge,reserved_1y,no_upfront,0.970776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:31.757913 +AWS,eu-west-2,r6id.4xlarge,reserved_1y,partial_upfront,0.970776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:09.527818 +AWS,eu-west-2,r6id.4xlarge,reserved_3y,all_upfront,0.323592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:38.727837 +AWS,eu-west-2,r6id.4xlarge,reserved_3y,no_upfront,0.323592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:38.274901 +AWS,eu-west-2,r6id.4xlarge,reserved_3y,partial_upfront,0.323592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:19.392027 +AWS,eu-west-2,r6id.4xlarge,spot,NA,0.546884,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688804 +AWS,eu-west-2,r6id.8xlarge,on_demand,NA,2.8392,USD,AWS Pricing API,2025-11-30T09:06:39.837367 +AWS,eu-west-2,r6id.8xlarge,reserved_1y,all_upfront,1.703472,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:08.499371 +AWS,eu-west-2,r6id.8xlarge,reserved_1y,no_upfront,1.703472,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:54.166914 +AWS,eu-west-2,r6id.8xlarge,reserved_1y,partial_upfront,1.703472,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:32.659727 +AWS,eu-west-2,r6id.8xlarge,reserved_3y,all_upfront,1.135664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:02.494588 +AWS,eu-west-2,r6id.8xlarge,reserved_3y,no_upfront,1.135664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:00.603687 +AWS,eu-west-2,r6id.8xlarge,reserved_3y,partial_upfront,1.135664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:42.547085 +AWS,eu-west-2,r6id.8xlarge,spot,NA,1.180957,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687878 +AWS,eu-west-2,r6id.large,on_demand,NA,0.17745,USD,AWS Pricing API,2025-11-30T09:07:04.660634 +AWS,eu-west-2,r6id.large,reserved_1y,all_upfront,0.172602,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:33.435367 +AWS,eu-west-2,r6id.large,reserved_1y,no_upfront,0.172602,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:19.402891 +AWS,eu-west-2,r6id.large,reserved_1y,partial_upfront,0.172602,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:57.529084 +AWS,eu-west-2,r6id.large,reserved_3y,all_upfront,0.086301,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:26.933718 +AWS,eu-west-2,r6id.large,reserved_3y,no_upfront,0.086301,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:25.973779 +AWS,eu-west-2,r6id.large,reserved_3y,partial_upfront,0.086301,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:07.324584 +AWS,eu-west-2,r6id.large,spot,NA,0.061463,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688497 +AWS,eu-west-2,r6id.xlarge,on_demand,NA,0.3549,USD,AWS Pricing API,2025-11-30T09:07:41.891105 +AWS,eu-west-2,r6id.xlarge,reserved_1y,all_upfront,0.26003,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:10.685537 +AWS,eu-west-2,r6id.xlarge,reserved_1y,no_upfront,0.26003,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:57.087287 +AWS,eu-west-2,r6id.xlarge,reserved_1y,partial_upfront,0.26003,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:34.518527 +AWS,eu-west-2,r6id.xlarge,reserved_3y,all_upfront,0.26003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:03.458525 +AWS,eu-west-2,r6id.xlarge,reserved_3y,no_upfront,0.26003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:03.896710 +AWS,eu-west-2,r6id.xlarge,reserved_3y,partial_upfront,0.26003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:44.226280 +AWS,eu-west-2,r6id.xlarge,spot,NA,0.132451,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689357 +AWS,eu-west-2,r7g.12xlarge,on_demand,NA,3.0192,USD,AWS Pricing API,2025-11-30T09:07:08.919810 +AWS,eu-west-2,r7g.12xlarge,reserved_1y,all_upfront,4.288242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:37.635319 +AWS,eu-west-2,r7g.12xlarge,reserved_1y,no_upfront,4.288242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:23.788668 +AWS,eu-west-2,r7g.12xlarge,reserved_1y,partial_upfront,4.288242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:01.709629 +AWS,eu-west-2,r7g.12xlarge,reserved_3y,all_upfront,1.429414,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:31.037431 +AWS,eu-west-2,r7g.12xlarge,reserved_3y,no_upfront,1.429414,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:30.256487 +AWS,eu-west-2,r7g.12xlarge,reserved_3y,partial_upfront,1.429414,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:11.501015 +AWS,eu-west-2,r7g.12xlarge,spot,NA,0.915536,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688631 +AWS,eu-west-2,r7g.16xlarge,on_demand,NA,4.0256,USD,AWS Pricing API,2025-11-30T09:06:54.099219 +AWS,eu-west-2,r7g.16xlarge,reserved_1y,all_upfront,3.889523,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:22.863040 +AWS,eu-west-2,r7g.16xlarge,reserved_1y,no_upfront,3.889523,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:08.733530 +AWS,eu-west-2,r7g.16xlarge,reserved_1y,partial_upfront,3.889523,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:47.011038 +AWS,eu-west-2,r7g.16xlarge,reserved_3y,all_upfront,1.944774,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:16.584586 +AWS,eu-west-2,r7g.16xlarge,reserved_3y,no_upfront,1.944774,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:15.233680 +AWS,eu-west-2,r7g.16xlarge,reserved_3y,partial_upfront,1.944774,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:56.797639 +AWS,eu-west-2,r7g.16xlarge,spot,NA,1.200264,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688186 +AWS,eu-west-2,r7g.2xlarge,on_demand,NA,0.5032,USD,AWS Pricing API,2025-11-30T09:07:02.218646 +AWS,eu-west-2,r7g.2xlarge,reserved_1y,all_upfront,0.346802,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:31.007556 +AWS,eu-west-2,r7g.2xlarge,reserved_1y,no_upfront,0.346802,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:16.943238 +AWS,eu-west-2,r7g.2xlarge,reserved_1y,partial_upfront,0.346802,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:55.113544 +AWS,eu-west-2,r7g.2xlarge,reserved_3y,all_upfront,0.231201,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:24.552496 +AWS,eu-west-2,r7g.2xlarge,reserved_3y,no_upfront,0.231201,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:23.506643 +AWS,eu-west-2,r7g.2xlarge,reserved_3y,partial_upfront,0.231201,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:04.897251 +AWS,eu-west-2,r7g.2xlarge,spot,NA,0.164202,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688388 +AWS,eu-west-2,r7g.4xlarge,on_demand,NA,1.0064,USD,AWS Pricing API,2025-11-30T09:06:52.746295 +AWS,eu-west-2,r7g.4xlarge,reserved_1y,all_upfront,0.6672,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:21.511290 +AWS,eu-west-2,r7g.4xlarge,reserved_1y,no_upfront,0.6672,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:07.363036 +AWS,eu-west-2,r7g.4xlarge,reserved_1y,partial_upfront,0.6672,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:45.666036 +AWS,eu-west-2,r7g.4xlarge,reserved_3y,all_upfront,0.6672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:15.267501 +AWS,eu-west-2,r7g.4xlarge,reserved_3y,no_upfront,0.6672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:13.861589 +AWS,eu-west-2,r7g.4xlarge,reserved_3y,partial_upfront,0.6672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:55.458940 +AWS,eu-west-2,r7g.4xlarge,spot,NA,0.316041,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688161 +AWS,eu-west-2,r7g.8xlarge,on_demand,NA,2.0128,USD,AWS Pricing API,2025-11-30T09:07:24.758400 +AWS,eu-west-2,r7g.8xlarge,reserved_1y,all_upfront,1.4566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:53.514147 +AWS,eu-west-2,r7g.8xlarge,reserved_1y,no_upfront,1.4566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:39.861276 +AWS,eu-west-2,r7g.8xlarge,reserved_1y,partial_upfront,1.4566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:17.503075 +AWS,eu-west-2,r7g.8xlarge,reserved_3y,all_upfront,1.4566,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:46.575123 +AWS,eu-west-2,r7g.8xlarge,reserved_3y,no_upfront,1.4566,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:46.464950 +AWS,eu-west-2,r7g.8xlarge,reserved_3y,partial_upfront,1.4566,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:27.310138 +AWS,eu-west-2,r7g.8xlarge,spot,NA,0.679674,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688955 +AWS,eu-west-2,r7g.large,on_demand,NA,0.1258,USD,AWS Pricing API,2025-11-30T09:07:19.192263 +AWS,eu-west-2,r7g.large,reserved_1y,all_upfront,0.105295,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:47.946215 +AWS,eu-west-2,r7g.large,reserved_1y,no_upfront,0.105295,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:34.224553 +AWS,eu-west-2,r7g.large,reserved_1y,partial_upfront,0.105295,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:11.940300 +AWS,eu-west-2,r7g.large,reserved_3y,all_upfront,0.052632,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:41.116183 +AWS,eu-west-2,r7g.large,reserved_3y,no_upfront,0.052632,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:40.773976 +AWS,eu-west-2,r7g.large,reserved_3y,partial_upfront,0.052632,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:21.808636 +AWS,eu-west-2,r7g.large,spot,NA,0.043589,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688862 +AWS,eu-west-2,r7g.xlarge,on_demand,NA,0.2516,USD,AWS Pricing API,2025-11-30T09:07:21.609828 +AWS,eu-west-2,r7g.xlarge,reserved_1y,all_upfront,0.158852,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:50.389011 +AWS,eu-west-2,r7g.xlarge,reserved_1y,no_upfront,0.158852,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:36.692172 +AWS,eu-west-2,r7g.xlarge,reserved_1y,partial_upfront,0.158852,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:14.381537 +AWS,eu-west-2,r7g.xlarge,reserved_3y,all_upfront,0.105884,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:43.495826 +AWS,eu-west-2,r7g.xlarge,reserved_3y,no_upfront,0.105884,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:43.274335 +AWS,eu-west-2,r7g.xlarge,reserved_3y,partial_upfront,0.105884,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:24.225732 +AWS,eu-west-2,r7g.xlarge,spot,NA,0.083137,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688886 +AWS,eu-west-2,r7gd.12xlarge,on_demand,NA,3.8328,USD,AWS Pricing API,2025-11-30T09:07:43.380418 +AWS,eu-west-2,r7gd.12xlarge,reserved_1y,all_upfront,2.253653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:12.171731 +AWS,eu-west-2,r7gd.12xlarge,reserved_1y,no_upfront,2.253653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:58.584525 +AWS,eu-west-2,r7gd.12xlarge,reserved_1y,partial_upfront,2.253653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:35.987338 +AWS,eu-west-2,r7gd.12xlarge,reserved_3y,all_upfront,0.751218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:04.964368 +AWS,eu-west-2,r7gd.12xlarge,reserved_3y,no_upfront,0.751218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:05.419817 +AWS,eu-west-2,r7gd.12xlarge,reserved_3y,partial_upfront,0.751218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:45.710401 +AWS,eu-west-2,r7gd.12xlarge,spot,NA,1.490581,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689401 +AWS,eu-west-2,r7gd.16xlarge,on_demand,NA,5.1104,USD,AWS Pricing API,2025-11-30T09:07:38.756070 +AWS,eu-west-2,r7gd.16xlarge,reserved_1y,all_upfront,3.004909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:07.544104 +AWS,eu-west-2,r7gd.16xlarge,reserved_1y,no_upfront,3.004909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:53.921351 +AWS,eu-west-2,r7gd.16xlarge,reserved_1y,partial_upfront,3.004909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:31.406305 +AWS,eu-west-2,r7gd.16xlarge,reserved_3y,all_upfront,1.001636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:00.323011 +AWS,eu-west-2,r7gd.16xlarge,reserved_3y,no_upfront,1.001636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:00.689542 +AWS,eu-west-2,r7gd.16xlarge,reserved_3y,partial_upfront,1.001636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:41.131043 +AWS,eu-west-2,r7gd.16xlarge,spot,NA,1.872062,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689272 +AWS,eu-west-2,r7gd.2xlarge,on_demand,NA,0.6388,USD,AWS Pricing API,2025-11-30T09:07:07.842038 +AWS,eu-west-2,r7gd.2xlarge,reserved_1y,all_upfront,0.445731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:36.557517 +AWS,eu-west-2,r7gd.2xlarge,reserved_1y,no_upfront,0.445731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:22.675095 +AWS,eu-west-2,r7gd.2xlarge,reserved_1y,partial_upfront,0.445731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:00.621960 +AWS,eu-west-2,r7gd.2xlarge,reserved_3y,all_upfront,0.297177,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:29.981671 +AWS,eu-west-2,r7gd.2xlarge,reserved_3y,no_upfront,0.297177,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:29.159207 +AWS,eu-west-2,r7gd.2xlarge,reserved_3y,partial_upfront,0.297177,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:10.424434 +AWS,eu-west-2,r7gd.2xlarge,spot,NA,0.267641,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688635 +AWS,eu-west-2,r7gd.4xlarge,on_demand,NA,1.2776,USD,AWS Pricing API,2025-11-30T09:07:28.177938 +AWS,eu-west-2,r7gd.4xlarge,reserved_1y,all_upfront,0.87363,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:56.914029 +AWS,eu-west-2,r7gd.4xlarge,reserved_1y,no_upfront,0.87363,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:43.288839 +AWS,eu-west-2,r7gd.4xlarge,reserved_1y,partial_upfront,0.87363,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:20.869427 +AWS,eu-west-2,r7gd.4xlarge,reserved_3y,all_upfront,0.29121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:49.897889 +AWS,eu-west-2,r7gd.4xlarge,reserved_3y,no_upfront,0.29121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:49.941795 +AWS,eu-west-2,r7gd.4xlarge,reserved_3y,partial_upfront,0.29121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:30.671804 +AWS,eu-west-2,r7gd.4xlarge,spot,NA,0.524637,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689046 +AWS,eu-west-2,r7gd.8xlarge,on_demand,NA,2.5552,USD,AWS Pricing API,2025-11-30T09:07:22.150593 +AWS,eu-west-2,r7gd.8xlarge,reserved_1y,all_upfront,3.653196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:50.928572 +AWS,eu-west-2,r7gd.8xlarge,reserved_1y,no_upfront,3.653196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:37.248480 +AWS,eu-west-2,r7gd.8xlarge,reserved_1y,partial_upfront,3.653196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:14.919300 +AWS,eu-west-2,r7gd.8xlarge,reserved_3y,all_upfront,1.217732,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:44.028994 +AWS,eu-west-2,r7gd.8xlarge,reserved_3y,no_upfront,1.217732,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:43.825978 +AWS,eu-west-2,r7gd.8xlarge,reserved_3y,partial_upfront,1.217732,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:24.757405 +AWS,eu-west-2,r7gd.8xlarge,spot,NA,1.221965,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688893 +AWS,eu-west-2,r7gd.large,on_demand,NA,0.1597,USD,AWS Pricing API,2025-11-30T09:06:46.562026 +AWS,eu-west-2,r7gd.large,reserved_1y,all_upfront,0.09395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:15.239421 +AWS,eu-west-2,r7gd.large,reserved_1y,no_upfront,0.09395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:00.999811 +AWS,eu-west-2,r7gd.large,reserved_1y,partial_upfront,0.09395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:39.474427 +AWS,eu-west-2,r7gd.large,reserved_3y,all_upfront,0.031317,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:09.139326 +AWS,eu-west-2,r7gd.large,reserved_3y,no_upfront,0.031317,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:07.503991 +AWS,eu-west-2,r7gd.large,reserved_3y,partial_upfront,0.031317,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:49.274752 +AWS,eu-west-2,r7gd.large,spot,NA,0.058338,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688025 +AWS,eu-west-2,r7gd.xlarge,on_demand,NA,0.3194,USD,AWS Pricing API,2025-11-30T09:06:55.994894 +AWS,eu-west-2,r7gd.xlarge,reserved_1y,all_upfront,0.456621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:24.765316 +AWS,eu-west-2,r7gd.xlarge,reserved_1y,no_upfront,0.456621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:10.657697 +AWS,eu-west-2,r7gd.xlarge,reserved_1y,partial_upfront,0.456621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:48.889563 +AWS,eu-west-2,r7gd.xlarge,reserved_3y,all_upfront,0.152207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:18.459958 +AWS,eu-west-2,r7gd.xlarge,reserved_3y,no_upfront,0.152207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:17.171929 +AWS,eu-west-2,r7gd.xlarge,reserved_3y,partial_upfront,0.152207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:58.670402 +AWS,eu-west-2,r7gd.xlarge,spot,NA,0.126746,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688253 +AWS,eu-west-2,r7i.12xlarge,on_demand,NA,3.7296,USD,AWS Pricing API,2025-11-30T09:07:31.146467 +AWS,eu-west-2,r7i.12xlarge,reserved_1y,all_upfront,2.51895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:59.910735 +AWS,eu-west-2,r7i.12xlarge,reserved_1y,no_upfront,2.51895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:46.304614 +AWS,eu-west-2,r7i.12xlarge,reserved_1y,partial_upfront,2.51895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:23.848434 +AWS,eu-west-2,r7i.12xlarge,reserved_3y,all_upfront,0.83965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:52.804736 +AWS,eu-west-2,r7i.12xlarge,reserved_3y,no_upfront,0.83965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:52.980015 +AWS,eu-west-2,r7i.12xlarge,reserved_3y,partial_upfront,0.83965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:33.632890 +AWS,eu-west-2,r7i.12xlarge,spot,NA,1.224829,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689131 +AWS,eu-west-2,r7i.16xlarge,on_demand,NA,4.9728,USD,AWS Pricing API,2025-11-30T09:07:29.261609 +AWS,eu-west-2,r7i.16xlarge,reserved_1y,all_upfront,2.24804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:58.006329 +AWS,eu-west-2,r7i.16xlarge,reserved_1y,no_upfront,2.24804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:44.386782 +AWS,eu-west-2,r7i.16xlarge,reserved_1y,partial_upfront,2.24804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:21.971228 +AWS,eu-west-2,r7i.16xlarge,reserved_3y,all_upfront,2.24804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:50.960054 +AWS,eu-west-2,r7i.16xlarge,reserved_3y,no_upfront,2.24804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:51.055555 +AWS,eu-west-2,r7i.16xlarge,reserved_3y,partial_upfront,2.24804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:31.755351 +AWS,eu-west-2,r7i.16xlarge,spot,NA,1.672545,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689050 +AWS,eu-west-2,r7i.24xlarge,on_demand,NA,7.4592,USD,AWS Pricing API,2025-11-30T09:07:25.974569 +AWS,eu-west-2,r7i.24xlarge,reserved_1y,all_upfront,6.244587,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:54.746874 +AWS,eu-west-2,r7i.24xlarge,reserved_1y,no_upfront,6.244587,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:41.089758 +AWS,eu-west-2,r7i.24xlarge,reserved_1y,partial_upfront,6.244587,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:18.706903 +AWS,eu-west-2,r7i.24xlarge,reserved_3y,all_upfront,3.122289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:47.771795 +AWS,eu-west-2,r7i.24xlarge,reserved_3y,no_upfront,3.122289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:47.709508 +AWS,eu-west-2,r7i.24xlarge,reserved_3y,partial_upfront,3.122289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:28.522446 +AWS,eu-west-2,r7i.24xlarge,spot,NA,2.479933,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688995 +AWS,eu-west-2,r7i.2xlarge,on_demand,NA,0.6216,USD,AWS Pricing API,2025-11-30T09:07:28.313701 +AWS,eu-west-2,r7i.2xlarge,reserved_1y,all_upfront,0.600607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:57.051601 +AWS,eu-west-2,r7i.2xlarge,reserved_1y,no_upfront,0.600607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:43.424736 +AWS,eu-west-2,r7i.2xlarge,reserved_1y,partial_upfront,0.600607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:21.004262 +AWS,eu-west-2,r7i.2xlarge,reserved_3y,all_upfront,0.300302,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:50.028954 +AWS,eu-west-2,r7i.2xlarge,reserved_3y,no_upfront,0.300302,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:50.079489 +AWS,eu-west-2,r7i.2xlarge,reserved_3y,partial_upfront,0.300302,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:30.806081 +AWS,eu-west-2,r7i.2xlarge,spot,NA,0.217295,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689062 +AWS,eu-west-2,r7i.48xlarge,on_demand,NA,14.9184,USD,AWS Pricing API,2025-11-30T09:07:48.755609 +AWS,eu-west-2,r7i.48xlarge,reserved_1y,all_upfront,21.189269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:17.591728 +AWS,eu-west-2,r7i.48xlarge,reserved_1y,no_upfront,21.189269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:22:04.085230 +AWS,eu-west-2,r7i.48xlarge,reserved_1y,partial_upfront,21.189269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:41.380268 +AWS,eu-west-2,r7i.48xlarge,reserved_3y,all_upfront,7.06309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:10:10.271351 +AWS,eu-west-2,r7i.48xlarge,reserved_3y,no_upfront,7.06309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:10.940670 +AWS,eu-west-2,r7i.48xlarge,reserved_3y,partial_upfront,7.06309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:51.072771 +AWS,eu-west-2,r7i.48xlarge,spot,NA,4.827382,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689522 +AWS,eu-west-2,r7i.4xlarge,on_demand,NA,1.2432,USD,AWS Pricing API,2025-11-30T09:07:25.837130 +AWS,eu-west-2,r7i.4xlarge,reserved_1y,all_upfront,1.765753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:54.610422 +AWS,eu-west-2,r7i.4xlarge,reserved_1y,no_upfront,1.765753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:40.952645 +AWS,eu-west-2,r7i.4xlarge,reserved_1y,partial_upfront,1.765753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:18.572982 +AWS,eu-west-2,r7i.4xlarge,reserved_3y,all_upfront,0.588584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:47.639202 +AWS,eu-west-2,r7i.4xlarge,reserved_3y,no_upfront,0.588584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:47.558218 +AWS,eu-west-2,r7i.4xlarge,reserved_3y,partial_upfront,0.588584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:28.389108 +AWS,eu-west-2,r7i.4xlarge,spot,NA,0.422504,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688999 +AWS,eu-west-2,r7i.8xlarge,on_demand,NA,2.4864,USD,AWS Pricing API,2025-11-30T09:06:42.665642 +AWS,eu-west-2,r7i.8xlarge,reserved_1y,all_upfront,1.679338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:11.326324 +AWS,eu-west-2,r7i.8xlarge,reserved_1y,no_upfront,1.679338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:57.020341 +AWS,eu-west-2,r7i.8xlarge,reserved_1y,partial_upfront,1.679338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:35.523384 +AWS,eu-west-2,r7i.8xlarge,reserved_3y,all_upfront,0.559779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:05.297674 +AWS,eu-west-2,r7i.8xlarge,reserved_3y,no_upfront,0.559779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:03.513518 +AWS,eu-west-2,r7i.8xlarge,reserved_3y,partial_upfront,0.559779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:45.377431 +AWS,eu-west-2,r7i.8xlarge,spot,NA,0.824995,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687942 +AWS,eu-west-2,r7i.large,on_demand,NA,0.1554,USD,AWS Pricing API,2025-11-30T09:06:56.800027 +AWS,eu-west-2,r7i.large,reserved_1y,all_upfront,0.096119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:25.583401 +AWS,eu-west-2,r7i.large,reserved_1y,no_upfront,0.096119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:11.495234 +AWS,eu-west-2,r7i.large,reserved_1y,partial_upfront,0.096119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:49.697674 +AWS,eu-west-2,r7i.large,reserved_3y,all_upfront,0.03204,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:19.255222 +AWS,eu-west-2,r7i.large,reserved_3y,no_upfront,0.03204,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:17.991840 +AWS,eu-west-2,r7i.large,reserved_3y,partial_upfront,0.03204,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:59.478269 +AWS,eu-west-2,r7i.large,spot,NA,0.052123,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688244 +AWS,eu-west-2,r7i.metal-24xl,on_demand,NA,7.4592,USD,AWS Pricing API,2025-11-30T09:07:12.961871 +AWS,eu-west-2,r7i.metal-24xl,reserved_1y,all_upfront,5.140834,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:41.744246 +AWS,eu-west-2,r7i.metal-24xl,reserved_1y,no_upfront,5.140834,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:27.902395 +AWS,eu-west-2,r7i.metal-24xl,reserved_1y,partial_upfront,5.140834,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:05.753413 +AWS,eu-west-2,r7i.metal-24xl,reserved_3y,all_upfront,3.427211,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:35.025100 +AWS,eu-west-2,r7i.metal-24xl,reserved_3y,no_upfront,3.427211,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:34.394951 +AWS,eu-west-2,r7i.metal-24xl,reserved_3y,partial_upfront,3.427211,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:15.624888 +AWS,eu-west-2,r7i.metal-24xl,spot,NA,2.340674,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688726 +AWS,eu-west-2,r7i.metal-48xl,on_demand,NA,14.9184,USD,AWS Pricing API,2025-11-30T09:07:32.655578 +AWS,eu-west-2,r7i.metal-48xl,reserved_1y,all_upfront,21.189269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:01.416777 +AWS,eu-west-2,r7i.metal-48xl,reserved_1y,no_upfront,21.189269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:47.799193 +AWS,eu-west-2,r7i.metal-48xl,reserved_1y,partial_upfront,21.189269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:25.351676 +AWS,eu-west-2,r7i.metal-48xl,reserved_3y,all_upfront,7.06309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:54.314927 +AWS,eu-west-2,r7i.metal-48xl,reserved_3y,no_upfront,7.06309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:54.503239 +AWS,eu-west-2,r7i.metal-48xl,reserved_3y,partial_upfront,7.06309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:35.092490 +AWS,eu-west-2,r7i.metal-48xl,spot,NA,5.515849,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689140 +AWS,eu-west-2,r7i.xlarge,on_demand,NA,0.3108,USD,AWS Pricing API,2025-11-30T09:07:08.378386 +AWS,eu-west-2,r7i.xlarge,reserved_1y,all_upfront,0.209932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:37.094865 +AWS,eu-west-2,r7i.xlarge,reserved_1y,no_upfront,0.209932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:23.224868 +AWS,eu-west-2,r7i.xlarge,reserved_1y,partial_upfront,0.209932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:01.164652 +AWS,eu-west-2,r7i.xlarge,reserved_3y,all_upfront,0.069977,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:30.509212 +AWS,eu-west-2,r7i.xlarge,reserved_3y,no_upfront,0.069977,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:29.709409 +AWS,eu-west-2,r7i.xlarge,reserved_3y,partial_upfront,0.069977,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:10.964350 +AWS,eu-west-2,r7i.xlarge,spot,NA,0.103035,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688615 +AWS,eu-west-2,r8g.12xlarge,on_demand,NA,3.32112,USD,AWS Pricing API,2025-11-30T09:07:15.124593 +AWS,eu-west-2,r8g.12xlarge,reserved_1y,all_upfront,4.717009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:43.897968 +AWS,eu-west-2,r8g.12xlarge,reserved_1y,no_upfront,4.717009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:30.083290 +AWS,eu-west-2,r8g.12xlarge,reserved_1y,partial_upfront,4.717009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:07.912392 +AWS,eu-west-2,r8g.12xlarge,reserved_3y,all_upfront,1.572336,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:37.133838 +AWS,eu-west-2,r8g.12xlarge,reserved_3y,no_upfront,1.572336,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:36.601377 +AWS,eu-west-2,r8g.12xlarge,reserved_3y,partial_upfront,1.572336,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:17.770184 +AWS,eu-west-2,r8g.12xlarge,spot,NA,0.717268,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688784 +AWS,eu-west-2,r8g.16xlarge,on_demand,NA,4.42816,USD,AWS Pricing API,2025-11-30T09:07:38.182758 +AWS,eu-west-2,r8g.16xlarge,reserved_1y,all_upfront,2.990868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:05:07.002201 +AWS,eu-west-2,r8g.16xlarge,reserved_1y,no_upfront,2.990868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:53.380369 +AWS,eu-west-2,r8g.16xlarge,reserved_1y,partial_upfront,2.990868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:30.865534 +AWS,eu-west-2,r8g.16xlarge,reserved_3y,all_upfront,0.996956,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:59.779044 +AWS,eu-west-2,r8g.16xlarge,reserved_3y,no_upfront,0.996956,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:27:00.139134 +AWS,eu-west-2,r8g.16xlarge,reserved_3y,partial_upfront,0.996956,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:40.585823 +AWS,eu-west-2,r8g.16xlarge,spot,NA,0.912135,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689265 +AWS,eu-west-2,r8g.24xlarge,on_demand,NA,6.64224,USD,AWS Pricing API,2025-11-30T09:07:06.450910 +AWS,eu-west-2,r8g.24xlarge,reserved_1y,all_upfront,4.193878,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:35.200777 +AWS,eu-west-2,r8g.24xlarge,reserved_1y,no_upfront,4.193878,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:21.281600 +AWS,eu-west-2,r8g.24xlarge,reserved_1y,partial_upfront,4.193878,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:59.279312 +AWS,eu-west-2,r8g.24xlarge,reserved_3y,all_upfront,2.795933,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:28.647093 +AWS,eu-west-2,r8g.24xlarge,reserved_3y,no_upfront,2.795933,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:27.770822 +AWS,eu-west-2,r8g.24xlarge,reserved_3y,partial_upfront,2.795933,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:09.065149 +AWS,eu-west-2,r8g.24xlarge,spot,NA,0.956499,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688597 +AWS,eu-west-2,r8g.2xlarge,on_demand,NA,0.55352,USD,AWS Pricing API,2025-11-30T09:07:18.905032 +AWS,eu-west-2,r8g.2xlarge,reserved_1y,all_upfront,0.40056,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:47.678655 +AWS,eu-west-2,r8g.2xlarge,reserved_1y,no_upfront,0.40056,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:33.951738 +AWS,eu-west-2,r8g.2xlarge,reserved_1y,partial_upfront,0.40056,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:11.672775 +AWS,eu-west-2,r8g.2xlarge,reserved_3y,all_upfront,0.40056,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:40.853194 +AWS,eu-west-2,r8g.2xlarge,reserved_3y,no_upfront,0.40056,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:40.500600 +AWS,eu-west-2,r8g.2xlarge,reserved_3y,partial_upfront,0.40056,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:21.539856 +AWS,eu-west-2,r8g.2xlarge,spot,NA,0.167299,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688847 +AWS,eu-west-2,r8g.48xlarge,on_demand,NA,13.28448,USD,AWS Pricing API,2025-11-30T09:07:04.937883 +AWS,eu-west-2,r8g.48xlarge,reserved_1y,all_upfront,8.972603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:33.710106 +AWS,eu-west-2,r8g.48xlarge,reserved_1y,no_upfront,8.972603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:19.677886 +AWS,eu-west-2,r8g.48xlarge,reserved_1y,partial_upfront,8.972603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:57.797797 +AWS,eu-west-2,r8g.48xlarge,reserved_3y,all_upfront,2.990868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:27.195280 +AWS,eu-west-2,r8g.48xlarge,reserved_3y,no_upfront,2.990868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:26.254569 +AWS,eu-west-2,r8g.48xlarge,reserved_3y,partial_upfront,2.990868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:07.592448 +AWS,eu-west-2,r8g.48xlarge,spot,NA,2.257569,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688493 +AWS,eu-west-2,r8g.4xlarge,on_demand,NA,1.10704,USD,AWS Pricing API,2025-11-30T09:07:23.404285 +AWS,eu-west-2,r8g.4xlarge,reserved_1y,all_upfront,0.80112,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:52.155720 +AWS,eu-west-2,r8g.4xlarge,reserved_1y,no_upfront,0.80112,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:38.484701 +AWS,eu-west-2,r8g.4xlarge,reserved_1y,partial_upfront,0.80112,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:16.149065 +AWS,eu-west-2,r8g.4xlarge,reserved_3y,all_upfront,0.80112,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:45.251152 +AWS,eu-west-2,r8g.4xlarge,reserved_3y,no_upfront,0.80112,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:45.080399 +AWS,eu-west-2,r8g.4xlarge,reserved_3y,partial_upfront,0.80112,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:25.958956 +AWS,eu-west-2,r8g.4xlarge,spot,NA,0.296301,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688940 +AWS,eu-west-2,r8g.8xlarge,on_demand,NA,2.21408,USD,AWS Pricing API,2025-11-30T09:06:44.122884 +AWS,eu-west-2,r8g.8xlarge,reserved_1y,all_upfront,1.853593,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:12.809430 +AWS,eu-west-2,r8g.8xlarge,reserved_1y,no_upfront,1.853593,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:58.528819 +AWS,eu-west-2,r8g.8xlarge,reserved_1y,partial_upfront,1.853593,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:37.013227 +AWS,eu-west-2,r8g.8xlarge,reserved_3y,all_upfront,0.926804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:06.758787 +AWS,eu-west-2,r8g.8xlarge,reserved_3y,no_upfront,0.926804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:05.014970 +AWS,eu-west-2,r8g.8xlarge,reserved_3y,partial_upfront,0.926804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:46.843837 +AWS,eu-west-2,r8g.8xlarge,spot,NA,0.651131,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687958 +AWS,eu-west-2,r8g.large,on_demand,NA,0.13838,USD,AWS Pricing API,2025-11-30T09:07:21.875955 +AWS,eu-west-2,r8g.large,reserved_1y,all_upfront,0.085616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:50.658866 +AWS,eu-west-2,r8g.large,reserved_1y,no_upfront,0.085616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:36.964864 +AWS,eu-west-2,r8g.large,reserved_1y,partial_upfront,0.085616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:43:14.645247 +AWS,eu-west-2,r8g.large,reserved_3y,all_upfront,0.028539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:43.759945 +AWS,eu-west-2,r8g.large,reserved_3y,no_upfront,0.028539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:43.548669 +AWS,eu-west-2,r8g.large,reserved_3y,partial_upfront,0.028539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:24.491258 +AWS,eu-west-2,r8g.large,spot,NA,0.034903,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688905 +AWS,eu-west-2,r8g.xlarge,on_demand,NA,0.27676,USD,AWS Pricing API,2025-11-30T09:07:04.525028 +AWS,eu-west-2,r8g.xlarge,reserved_1y,all_upfront,0.18348,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:33.301066 +AWS,eu-west-2,r8g.xlarge,reserved_1y,no_upfront,0.18348,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:21:19.263981 +AWS,eu-west-2,r8g.xlarge,reserved_1y,partial_upfront,0.18348,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:57.393522 +AWS,eu-west-2,r8g.xlarge,reserved_3y,all_upfront,0.18348,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:26.791914 +AWS,eu-west-2,r8g.xlarge,reserved_3y,no_upfront,0.18348,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:26:25.835704 +AWS,eu-west-2,r8g.xlarge,reserved_3y,partial_upfront,0.18348,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:48:07.189239 +AWS,eu-west-2,r8g.xlarge,spot,NA,0.084805,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688520 +AWS,eu-west-2,r8gd.12xlarge,on_demand,NA,4.13952,USD,AWS Pricing API,2025-11-30T09:07:22.694471 +AWS,eu-west-2,r8gd.12xlarge,spot,NA,0.553973,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688944 +AWS,eu-west-2,r8gd.16xlarge,on_demand,NA,5.51936,USD,AWS Pricing API,2025-11-30T09:07:11.075995 +AWS,eu-west-2,r8gd.16xlarge,spot,NA,0.63894,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688686 +AWS,eu-west-2,r8gd.24xlarge,on_demand,NA,8.27904,USD,AWS Pricing API,2025-11-30T09:06:58.424288 +AWS,eu-west-2,r8gd.24xlarge,spot,NA,0.853157,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688325 +AWS,eu-west-2,r8gd.2xlarge,on_demand,NA,0.68992,USD,AWS Pricing API,2025-11-30T09:07:03.979390 +AWS,eu-west-2,r8gd.2xlarge,spot,NA,0.11084,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688515 +AWS,eu-west-2,r8gd.48xlarge,on_demand,NA,16.55808,USD,AWS Pricing API,2025-11-30T09:07:37.914905 +AWS,eu-west-2,r8gd.48xlarge,spot,NA,1.739717,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689261 +AWS,eu-west-2,r8gd.4xlarge,on_demand,NA,1.37984,USD,AWS Pricing API,2025-11-30T09:07:32.381987 +AWS,eu-west-2,r8gd.4xlarge,spot,NA,0.209844,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689145 +AWS,eu-west-2,r8gd.8xlarge,on_demand,NA,2.75968,USD,AWS Pricing API,2025-11-30T09:07:00.057531 +AWS,eu-west-2,r8gd.8xlarge,spot,NA,0.425435,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688380 +AWS,eu-west-2,r8gd.large,on_demand,NA,0.17248,USD,AWS Pricing API,2025-11-30T09:06:53.016793 +AWS,eu-west-2,r8gd.large,spot,NA,0.026965,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688204 +AWS,eu-west-2,r8gd.xlarge,on_demand,NA,0.34496,USD,AWS Pricing API,2025-11-30T09:06:53.828960 +AWS,eu-west-2,r8gd.xlarge,spot,NA,0.055673,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688192 +AWS,eu-west-2,r8i.12xlarge,on_demand,NA,3.91608,USD,AWS Pricing API,2025-11-30T09:06:59.917759 +AWS,eu-west-2,r8i.12xlarge,spot,NA,0.897601,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688352 +AWS,eu-west-2,r8i.16xlarge,on_demand,NA,5.22144,USD,AWS Pricing API,2025-11-30T09:07:32.117780 +AWS,eu-west-2,r8i.16xlarge,spot,NA,0.83126,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689136 +AWS,eu-west-2,r8i.24xlarge,on_demand,NA,7.83216,USD,AWS Pricing API,2025-11-30T09:07:37.776915 +AWS,eu-west-2,r8i.24xlarge,spot,NA,1.332308,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689276 +AWS,eu-west-2,r8i.2xlarge,on_demand,NA,0.65268,USD,AWS Pricing API,2025-11-30T09:07:26.121470 +AWS,eu-west-2,r8i.2xlarge,spot,NA,0.153646,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688983 +AWS,eu-west-2,r8i.48xlarge,on_demand,NA,15.66432,USD,AWS Pricing API,2025-11-30T09:07:45.123237 +AWS,eu-west-2,r8i.48xlarge,spot,NA,2.228321,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.689432 +AWS,eu-west-2,r8i.4xlarge,on_demand,NA,1.30536,USD,AWS Pricing API,2025-11-30T09:07:21.475962 +AWS,eu-west-2,r8i.4xlarge,spot,NA,0.320924,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688909 +AWS,eu-west-2,r8i.8xlarge,on_demand,NA,2.61072,USD,AWS Pricing API,2025-11-30T09:07:14.718082 +AWS,eu-west-2,r8i.8xlarge,spot,NA,0.649027,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688773 +AWS,eu-west-2,r8i.large,on_demand,NA,0.16317,USD,AWS Pricing API,2025-11-30T09:06:39.295318 +AWS,eu-west-2,r8i.large,spot,NA,0.037338,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687862 +AWS,eu-west-2,r8i.xlarge,on_demand,NA,0.32634,USD,AWS Pricing API,2025-11-30T09:06:49.381629 +AWS,eu-west-2,r8i.xlarge,spot,NA,0.076933,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.688093 +AWS,eu-west-2,z1d.12xlarge,on_demand,NA,5.273,USD,AWS Pricing API,2025-11-30T09:06:34.004758 +AWS,eu-west-2,z1d.12xlarge,reserved_1y,all_upfront,4.103169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:02.611313 +AWS,eu-west-2,z1d.12xlarge,reserved_1y,no_upfront,4.103169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:48.290855 +AWS,eu-west-2,z1d.12xlarge,reserved_1y,partial_upfront,4.103169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:26.882416 +AWS,eu-west-2,z1d.12xlarge,reserved_3y,all_upfront,2.051723,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:56.784762 +AWS,eu-west-2,z1d.12xlarge,reserved_3y,no_upfront,2.051723,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:54.621011 +AWS,eu-west-2,z1d.12xlarge,reserved_3y,partial_upfront,2.051723,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:36.649214 +AWS,eu-west-2,z1d.12xlarge,spot,NA,1.621887,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687759 +AWS,eu-west-2,z1d.2xlarge,on_demand,NA,0.879,USD,AWS Pricing API,2025-11-30T09:06:37.401260 +AWS,eu-west-2,z1d.2xlarge,reserved_1y,all_upfront,1.158562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:06.035596 +AWS,eu-west-2,z1d.2xlarge,reserved_1y,no_upfront,1.158562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:51.695667 +AWS,eu-west-2,z1d.2xlarge,reserved_1y,partial_upfront,1.158562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:30.241029 +AWS,eu-west-2,z1d.2xlarge,reserved_3y,all_upfront,0.386187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:00.088025 +AWS,eu-west-2,z1d.2xlarge,reserved_3y,no_upfront,0.386187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:58.099903 +AWS,eu-west-2,z1d.2xlarge,reserved_3y,partial_upfront,0.386187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:40.074864 +AWS,eu-west-2,z1d.2xlarge,spot,NA,0.275973,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687830 +AWS,eu-west-2,z1d.3xlarge,on_demand,NA,1.318,USD,AWS Pricing API,2025-11-30T09:06:36.315896 +AWS,eu-west-2,z1d.3xlarge,reserved_1y,all_upfront,0.790434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:04.952536 +AWS,eu-west-2,z1d.3xlarge,reserved_1y,no_upfront,0.790434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:50.607309 +AWS,eu-west-2,z1d.3xlarge,reserved_1y,partial_upfront,0.790434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:29.162019 +AWS,eu-west-2,z1d.3xlarge,reserved_3y,all_upfront,0.526811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:59.030999 +AWS,eu-west-2,z1d.3xlarge,reserved_3y,no_upfront,0.526811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:56.977538 +AWS,eu-west-2,z1d.3xlarge,reserved_3y,partial_upfront,0.526811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:38.931684 +AWS,eu-west-2,z1d.3xlarge,spot,NA,0.420938,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687789 +AWS,eu-west-2,z1d.6xlarge,on_demand,NA,2.636,USD,AWS Pricing API,2025-11-30T09:06:36.452799 +AWS,eu-west-2,z1d.6xlarge,reserved_1y,all_upfront,1.550228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:05.089263 +AWS,eu-west-2,z1d.6xlarge,reserved_1y,no_upfront,1.550228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:50.744540 +AWS,eu-west-2,z1d.6xlarge,reserved_1y,partial_upfront,1.550228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:29.294589 +AWS,eu-west-2,z1d.6xlarge,reserved_3y,all_upfront,0.516743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:59.161863 +AWS,eu-west-2,z1d.6xlarge,reserved_3y,no_upfront,0.516743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:57.140014 +AWS,eu-west-2,z1d.6xlarge,reserved_3y,partial_upfront,0.516743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:39.133903 +AWS,eu-west-2,z1d.6xlarge,spot,NA,0.822979,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687801 +AWS,eu-west-2,z1d.large,on_demand,NA,0.22,USD,AWS Pricing API,2025-11-30T09:06:36.733432 +AWS,eu-west-2,z1d.large,reserved_1y,all_upfront,0.138,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:05.360851 +AWS,eu-west-2,z1d.large,reserved_1y,no_upfront,0.138,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:51.018104 +AWS,eu-west-2,z1d.large,reserved_1y,partial_upfront,0.138,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:29.569666 +AWS,eu-west-2,z1d.large,reserved_3y,all_upfront,0.138,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:08:59.430331 +AWS,eu-west-2,z1d.large,reserved_3y,no_upfront,0.138,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:57.416110 +AWS,eu-west-2,z1d.large,reserved_3y,partial_upfront,0.138,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:39.401706 +AWS,eu-west-2,z1d.large,spot,NA,0.070989,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687817 +AWS,eu-west-2,z1d.xlarge,on_demand,NA,0.439,USD,AWS Pricing API,2025-11-30T09:06:37.673607 +AWS,eu-west-2,z1d.xlarge,reserved_1y,all_upfront,0.300571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:04:06.304273 +AWS,eu-west-2,z1d.xlarge,reserved_1y,no_upfront,0.300571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:20:51.969023 +AWS,eu-west-2,z1d.xlarge,reserved_1y,partial_upfront,0.300571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:42:30.507820 +AWS,eu-west-2,z1d.xlarge,reserved_3y,all_upfront,0.10019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:09:00.352999 +AWS,eu-west-2,z1d.xlarge,reserved_3y,no_upfront,0.10019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:25:58.375457 +AWS,eu-west-2,z1d.xlarge,reserved_3y,partial_upfront,0.10019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:47:40.343213 +AWS,eu-west-2,z1d.xlarge,spot,NA,0.138419,USD,AWS EC2 API (90-day avg),2025-11-30T09:55:55.687834 +AWS,eu-west-3,c5.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T09:03:36.484152 +AWS,eu-west-3,c5.12xlarge,reserved_1y,all_upfront,1.911,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:06.020242 +AWS,eu-west-3,c5.12xlarge,reserved_1y,no_upfront,1.911,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:49.830949 +AWS,eu-west-3,c5.12xlarge,reserved_1y,partial_upfront,1.911,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:31.305473 +AWS,eu-west-3,c5.12xlarge,reserved_3y,all_upfront,1.911,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:03.953921 +AWS,eu-west-3,c5.12xlarge,reserved_3y,no_upfront,1.911,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:54.895570 +AWS,eu-west-3,c5.12xlarge,reserved_3y,partial_upfront,1.911,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:41.780311 +AWS,eu-west-3,c5.12xlarge,spot,NA,0.937181,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773745 +AWS,eu-west-3,c5.18xlarge,on_demand,NA,3.636,USD,AWS Pricing API,2025-11-30T09:03:44.778259 +AWS,eu-west-3,c5.18xlarge,reserved_1y,all_upfront,2.866,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:14.375279 +AWS,eu-west-3,c5.18xlarge,reserved_1y,no_upfront,2.866,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:58.278303 +AWS,eu-west-3,c5.18xlarge,reserved_1y,partial_upfront,2.866,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:39.634013 +AWS,eu-west-3,c5.18xlarge,reserved_3y,all_upfront,2.866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:12.193006 +AWS,eu-west-3,c5.18xlarge,reserved_3y,no_upfront,2.866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:03.411565 +AWS,eu-west-3,c5.18xlarge,reserved_3y,partial_upfront,2.866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:50.113331 +AWS,eu-west-3,c5.18xlarge,spot,NA,1.309852,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773878 +AWS,eu-west-3,c5.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T09:02:50.041890 +AWS,eu-west-3,c5.24xlarge,reserved_1y,all_upfront,3.639749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:19.328262 +AWS,eu-west-3,c5.24xlarge,reserved_1y,no_upfront,3.639749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:02.823001 +AWS,eu-west-3,c5.24xlarge,reserved_1y,partial_upfront,3.639749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:44.942015 +AWS,eu-west-3,c5.24xlarge,reserved_3y,all_upfront,2.426583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:18.278217 +AWS,eu-west-3,c5.24xlarge,reserved_3y,no_upfront,2.426583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:07.406772 +AWS,eu-west-3,c5.24xlarge,reserved_3y,partial_upfront,2.426583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:55.581531 +AWS,eu-west-3,c5.24xlarge,spot,NA,1.648274,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772941 +AWS,eu-west-3,c5.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T09:03:29.415251 +AWS,eu-west-3,c5.4xlarge,reserved_1y,all_upfront,0.475114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:58.882661 +AWS,eu-west-3,c5.4xlarge,reserved_1y,no_upfront,0.475114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:42.615488 +AWS,eu-west-3,c5.4xlarge,reserved_1y,partial_upfront,0.475114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:24.206533 +AWS,eu-west-3,c5.4xlarge,reserved_3y,all_upfront,0.158371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:56.947962 +AWS,eu-west-3,c5.4xlarge,reserved_3y,no_upfront,0.158371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:47.646250 +AWS,eu-west-3,c5.4xlarge,reserved_3y,partial_upfront,0.158371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:34.680381 +AWS,eu-west-3,c5.4xlarge,spot,NA,0.266428,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773635 +AWS,eu-west-3,c5.9xlarge,on_demand,NA,1.818,USD,AWS Pricing API,2025-11-30T09:02:49.373032 +AWS,eu-west-3,c5.9xlarge,reserved_1y,all_upfront,1.06895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:18.655899 +AWS,eu-west-3,c5.9xlarge,reserved_1y,no_upfront,1.06895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:02.107561 +AWS,eu-west-3,c5.9xlarge,reserved_1y,partial_upfront,1.06895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:44.261451 +AWS,eu-west-3,c5.9xlarge,reserved_3y,all_upfront,0.356317,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:17.599792 +AWS,eu-west-3,c5.9xlarge,reserved_3y,no_upfront,0.356317,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:06.718295 +AWS,eu-west-3,c5.9xlarge,reserved_3y,partial_upfront,0.356317,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:54.916603 +AWS,eu-west-3,c5.9xlarge,spot,NA,0.814659,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772945 +AWS,eu-west-3,c5a.12xlarge,on_demand,NA,2.184,USD,AWS Pricing API,2025-11-30T09:03:45.328859 +AWS,eu-west-3,c5a.12xlarge,reserved_1y,all_upfront,1.747388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:14.910291 +AWS,eu-west-3,c5a.12xlarge,reserved_1y,no_upfront,1.747388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:58.827084 +AWS,eu-west-3,c5a.12xlarge,reserved_1y,partial_upfront,1.747388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:40.182305 +AWS,eu-west-3,c5a.12xlarge,reserved_3y,all_upfront,0.873796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:12.715131 +AWS,eu-west-3,c5a.12xlarge,reserved_3y,no_upfront,0.873796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:03.960996 +AWS,eu-west-3,c5a.12xlarge,reserved_3y,partial_upfront,0.873796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:50.648110 +AWS,eu-west-3,c5a.12xlarge,spot,NA,0.953728,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773870 +AWS,eu-west-3,c5a.16xlarge,on_demand,NA,2.912,USD,AWS Pricing API,2025-11-30T09:03:05.399156 +AWS,eu-west-3,c5a.16xlarge,reserved_1y,all_upfront,1.258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:34.582443 +AWS,eu-west-3,c5a.16xlarge,reserved_1y,no_upfront,1.258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:18.316414 +AWS,eu-west-3,c5a.16xlarge,reserved_1y,partial_upfront,1.258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:00.123023 +AWS,eu-west-3,c5a.16xlarge,reserved_3y,all_upfront,1.258,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:33.236201 +AWS,eu-west-3,c5a.16xlarge,reserved_3y,no_upfront,1.258,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:23.014805 +AWS,eu-west-3,c5a.16xlarge,reserved_3y,partial_upfront,1.258,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:10.766327 +AWS,eu-west-3,c5a.16xlarge,spot,NA,0.834274,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773182 +AWS,eu-west-3,c5a.24xlarge,on_demand,NA,4.368,USD,AWS Pricing API,2025-11-30T09:03:51.537892 +AWS,eu-west-3,c5a.24xlarge,reserved_1y,all_upfront,3.444,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:21.191930 +AWS,eu-west-3,c5a.24xlarge,reserved_1y,no_upfront,3.444,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:05.183416 +AWS,eu-west-3,c5a.24xlarge,reserved_1y,partial_upfront,3.444,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:46.383518 +AWS,eu-west-3,c5a.24xlarge,reserved_3y,all_upfront,3.444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:18.790283 +AWS,eu-west-3,c5a.24xlarge,reserved_3y,no_upfront,3.444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:10.286103 +AWS,eu-west-3,c5a.24xlarge,reserved_3y,partial_upfront,3.444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:56.797466 +AWS,eu-west-3,c5a.24xlarge,spot,NA,1.05513,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773994 +AWS,eu-west-3,c5a.2xlarge,on_demand,NA,0.364,USD,AWS Pricing API,2025-11-30T09:03:34.731825 +AWS,eu-west-3,c5a.2xlarge,reserved_1y,all_upfront,0.218247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:04.263886 +AWS,eu-west-3,c5a.2xlarge,reserved_1y,no_upfront,0.218247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:48.061790 +AWS,eu-west-3,c5a.2xlarge,reserved_1y,partial_upfront,0.218247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:29.549318 +AWS,eu-west-3,c5a.2xlarge,reserved_3y,all_upfront,0.145416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:02.243717 +AWS,eu-west-3,c5a.2xlarge,reserved_3y,no_upfront,0.145416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:53.117197 +AWS,eu-west-3,c5a.2xlarge,reserved_3y,partial_upfront,0.145416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:40.032555 +AWS,eu-west-3,c5a.2xlarge,spot,NA,0.156346,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773702 +AWS,eu-west-3,c5a.4xlarge,on_demand,NA,0.728,USD,AWS Pricing API,2025-11-30T09:03:07.973425 +AWS,eu-west-3,c5a.4xlarge,reserved_1y,all_upfront,0.582758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:37.148663 +AWS,eu-west-3,c5a.4xlarge,reserved_1y,no_upfront,0.582758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:20.888322 +AWS,eu-west-3,c5a.4xlarge,reserved_1y,partial_upfront,0.582758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:02.706982 +AWS,eu-west-3,c5a.4xlarge,reserved_3y,all_upfront,0.291586,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:35.765632 +AWS,eu-west-3,c5a.4xlarge,reserved_3y,no_upfront,0.291586,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:25.665585 +AWS,eu-west-3,c5a.4xlarge,reserved_3y,partial_upfront,0.291586,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:13.300008 +AWS,eu-west-3,c5a.4xlarge,spot,NA,0.276396,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773230 +AWS,eu-west-3,c5a.8xlarge,on_demand,NA,1.456,USD,AWS Pricing API,2025-11-30T09:03:00.601330 +AWS,eu-west-3,c5a.8xlarge,reserved_1y,all_upfront,2.204566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:29.877915 +AWS,eu-west-3,c5a.8xlarge,reserved_1y,no_upfront,2.204566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:13.514775 +AWS,eu-west-3,c5a.8xlarge,reserved_1y,partial_upfront,2.204566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:55.440862 +AWS,eu-west-3,c5a.8xlarge,reserved_3y,all_upfront,0.734855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:28.605665 +AWS,eu-west-3,c5a.8xlarge,reserved_3y,no_upfront,0.734855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:18.181574 +AWS,eu-west-3,c5a.8xlarge,reserved_3y,partial_upfront,0.734855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:06.043936 +AWS,eu-west-3,c5a.8xlarge,spot,NA,0.617767,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773096 +AWS,eu-west-3,c5a.xlarge,on_demand,NA,0.182,USD,AWS Pricing API,2025-11-30T09:02:51.524475 +AWS,eu-west-3,c5a.xlarge,reserved_1y,all_upfront,0.115,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:20.808208 +AWS,eu-west-3,c5a.xlarge,reserved_1y,no_upfront,0.115,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:04.316356 +AWS,eu-west-3,c5a.xlarge,reserved_1y,partial_upfront,0.115,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:46.418804 +AWS,eu-west-3,c5a.xlarge,reserved_3y,all_upfront,0.115,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:19.709950 +AWS,eu-west-3,c5a.xlarge,reserved_3y,no_upfront,0.115,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:08.978522 +AWS,eu-west-3,c5a.xlarge,reserved_3y,partial_upfront,0.115,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:57.048723 +AWS,eu-west-3,c5a.xlarge,spot,NA,0.083736,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772967 +AWS,eu-west-3,c5d.18xlarge,on_demand,NA,4.14,USD,AWS Pricing API,2025-11-30T09:03:21.378645 +AWS,eu-west-3,c5d.18xlarge,reserved_1y,all_upfront,2.434361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:50.679181 +AWS,eu-west-3,c5d.18xlarge,reserved_1y,no_upfront,2.434361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:34.466640 +AWS,eu-west-3,c5d.18xlarge,reserved_1y,partial_upfront,2.434361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:16.173108 +AWS,eu-west-3,c5d.18xlarge,reserved_3y,all_upfront,0.811454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:48.989979 +AWS,eu-west-3,c5d.18xlarge,reserved_3y,no_upfront,0.811454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:39.402163 +AWS,eu-west-3,c5d.18xlarge,reserved_3y,partial_upfront,0.811454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:26.682444 +AWS,eu-west-3,c5d.18xlarge,spot,NA,1.32552,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773491 +AWS,eu-west-3,c5d.2xlarge,on_demand,NA,0.46,USD,AWS Pricing API,2025-11-30T09:03:41.313763 +AWS,eu-west-3,c5d.2xlarge,reserved_1y,all_upfront,0.270434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:10.881326 +AWS,eu-west-3,c5d.2xlarge,reserved_1y,no_upfront,0.270434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:54.727836 +AWS,eu-west-3,c5d.2xlarge,reserved_1y,partial_upfront,0.270434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:36.156937 +AWS,eu-west-3,c5d.2xlarge,reserved_3y,all_upfront,0.090145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:08.752737 +AWS,eu-west-3,c5d.2xlarge,reserved_3y,no_upfront,0.090145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:59.837610 +AWS,eu-west-3,c5d.2xlarge,reserved_3y,partial_upfront,0.090145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:46.636252 +AWS,eu-west-3,c5d.2xlarge,spot,NA,0.180768,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773815 +AWS,eu-west-3,c5d.4xlarge,on_demand,NA,0.92,USD,AWS Pricing API,2025-11-30T09:03:01.838940 +AWS,eu-west-3,c5d.4xlarge,reserved_1y,all_upfront,0.552027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:31.088988 +AWS,eu-west-3,c5d.4xlarge,reserved_1y,no_upfront,0.552027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:14.753351 +AWS,eu-west-3,c5d.4xlarge,reserved_1y,partial_upfront,0.552027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:56.654197 +AWS,eu-west-3,c5d.4xlarge,reserved_3y,all_upfront,0.368009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:29.795216 +AWS,eu-west-3,c5d.4xlarge,reserved_3y,no_upfront,0.368009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:19.439738 +AWS,eu-west-3,c5d.4xlarge,reserved_3y,partial_upfront,0.368009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:07.252601 +AWS,eu-west-3,c5d.4xlarge,spot,NA,0.333723,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773125 +AWS,eu-west-3,c5d.9xlarge,on_demand,NA,2.07,USD,AWS Pricing API,2025-11-30T09:03:31.003598 +AWS,eu-west-3,c5d.9xlarge,reserved_1y,all_upfront,1.153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:00.486233 +AWS,eu-west-3,c5d.9xlarge,reserved_1y,no_upfront,1.153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:44.243015 +AWS,eu-west-3,c5d.9xlarge,reserved_1y,partial_upfront,1.153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:25.806943 +AWS,eu-west-3,c5d.9xlarge,reserved_3y,all_upfront,1.153,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:58.534789 +AWS,eu-west-3,c5d.9xlarge,reserved_3y,no_upfront,1.153,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:49.288528 +AWS,eu-west-3,c5d.9xlarge,reserved_3y,partial_upfront,1.153,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:36.282228 +AWS,eu-west-3,c5d.9xlarge,spot,NA,0.910247,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773643 +AWS,eu-west-3,c5d.xlarge,on_demand,NA,0.23,USD,AWS Pricing API,2025-11-30T09:03:26.741721 +AWS,eu-west-3,c5d.xlarge,reserved_1y,all_upfront,0.17253,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:56.085715 +AWS,eu-west-3,c5d.xlarge,reserved_1y,no_upfront,0.17253,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:39.899305 +AWS,eu-west-3,c5d.xlarge,reserved_1y,partial_upfront,0.17253,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:21.520730 +AWS,eu-west-3,c5d.xlarge,reserved_3y,all_upfront,0.114843,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:54.300973 +AWS,eu-west-3,c5d.xlarge,reserved_3y,no_upfront,0.114843,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:44.890331 +AWS,eu-west-3,c5d.xlarge,reserved_3y,partial_upfront,0.114843,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:32.016688 +AWS,eu-west-3,c5d.xlarge,spot,NA,0.084667,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773589 +AWS,eu-west-3,c5n.18xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:03:46.799087 +AWS,eu-west-3,c5n.18xlarge,reserved_1y,all_upfront,3.633,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:16.398588 +AWS,eu-west-3,c5n.18xlarge,reserved_1y,no_upfront,3.633,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:00.360236 +AWS,eu-west-3,c5n.18xlarge,reserved_1y,partial_upfront,3.633,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:41.674265 +AWS,eu-west-3,c5n.18xlarge,reserved_3y,all_upfront,3.633,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:14.161369 +AWS,eu-west-3,c5n.18xlarge,reserved_3y,no_upfront,3.633,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:05.469201 +AWS,eu-west-3,c5n.18xlarge,reserved_3y,partial_upfront,3.633,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:52.109893 +AWS,eu-west-3,c5n.18xlarge,spot,NA,1.346353,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773881 +AWS,eu-west-3,c5n.2xlarge,on_demand,NA,0.512,USD,AWS Pricing API,2025-11-30T09:03:56.899022 +AWS,eu-west-3,c5n.2xlarge,reserved_1y,all_upfront,0.307653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:26.573222 +AWS,eu-west-3,c5n.2xlarge,reserved_1y,no_upfront,0.307653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:10.631651 +AWS,eu-west-3,c5n.2xlarge,reserved_1y,partial_upfront,0.307653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:51.779859 +AWS,eu-west-3,c5n.2xlarge,reserved_3y,all_upfront,0.205218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:24.071958 +AWS,eu-west-3,c5n.2xlarge,reserved_3y,no_upfront,0.205218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:15.941671 +AWS,eu-west-3,c5n.2xlarge,reserved_3y,partial_upfront,0.205218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:02.255023 +AWS,eu-west-3,c5n.2xlarge,spot,NA,0.213633,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774077 +AWS,eu-west-3,c5n.4xlarge,on_demand,NA,1.024,USD,AWS Pricing API,2025-11-30T09:03:33.385007 +AWS,eu-west-3,c5n.4xlarge,reserved_1y,all_upfront,0.645,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:02.915019 +AWS,eu-west-3,c5n.4xlarge,reserved_1y,no_upfront,0.645,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:46.703403 +AWS,eu-west-3,c5n.4xlarge,reserved_1y,partial_upfront,0.645,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:28.197381 +AWS,eu-west-3,c5n.4xlarge,reserved_3y,all_upfront,0.645,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:00.897307 +AWS,eu-west-3,c5n.4xlarge,reserved_3y,no_upfront,0.645,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:51.738124 +AWS,eu-west-3,c5n.4xlarge,reserved_3y,partial_upfront,0.645,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:38.700952 +AWS,eu-west-3,c5n.4xlarge,spot,NA,0.454188,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773678 +AWS,eu-west-3,c5n.9xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:03:46.660954 +AWS,eu-west-3,c5n.9xlarge,reserved_1y,all_upfront,1.816,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:16.263537 +AWS,eu-west-3,c5n.9xlarge,reserved_1y,no_upfront,1.816,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:00.216302 +AWS,eu-west-3,c5n.9xlarge,reserved_1y,partial_upfront,1.816,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:41.540348 +AWS,eu-west-3,c5n.9xlarge,reserved_3y,all_upfront,1.816,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:14.029621 +AWS,eu-west-3,c5n.9xlarge,reserved_3y,no_upfront,1.816,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:05.331205 +AWS,eu-west-3,c5n.9xlarge,reserved_3y,partial_upfront,1.816,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:51.976442 +AWS,eu-west-3,c5n.9xlarge,spot,NA,1.00297,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773893 +AWS,eu-west-3,c5n.metal,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:02:55.871682 +AWS,eu-west-3,c5n.metal,reserved_1y,all_upfront,2.709475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:25.106363 +AWS,eu-west-3,c5n.metal,reserved_1y,no_upfront,2.709475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:08.697670 +AWS,eu-west-3,c5n.metal,reserved_1y,partial_upfront,2.709475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:50.740377 +AWS,eu-west-3,c5n.metal,reserved_3y,all_upfront,0.903158,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:23.983320 +AWS,eu-west-3,c5n.metal,reserved_3y,no_upfront,0.903158,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:13.370742 +AWS,eu-west-3,c5n.metal,reserved_3y,partial_upfront,0.903158,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:01.326873 +AWS,eu-west-3,c5n.metal,spot,NA,1.257164,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773004 +AWS,eu-west-3,c5n.xlarge,on_demand,NA,0.256,USD,AWS Pricing API,2025-11-30T09:03:48.677538 +AWS,eu-west-3,c5n.xlarge,reserved_1y,all_upfront,0.153826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:18.281561 +AWS,eu-west-3,c5n.xlarge,reserved_1y,no_upfront,0.153826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:02.308365 +AWS,eu-west-3,c5n.xlarge,reserved_1y,partial_upfront,0.153826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:43.548214 +AWS,eu-west-3,c5n.xlarge,reserved_3y,all_upfront,0.102609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:16.008919 +AWS,eu-west-3,c5n.xlarge,reserved_3y,no_upfront,0.102609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:07.383592 +AWS,eu-west-3,c5n.xlarge,reserved_3y,partial_upfront,0.102609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:53.989077 +AWS,eu-west-3,c5n.xlarge,spot,NA,0.106233,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773933 +AWS,eu-west-3,c6g.12xlarge,on_demand,NA,1.944,USD,AWS Pricing API,2025-11-30T09:03:01.143648 +AWS,eu-west-3,c6g.12xlarge,reserved_1y,all_upfront,1.128995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:30.417713 +AWS,eu-west-3,c6g.12xlarge,reserved_1y,no_upfront,1.128995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:14.065313 +AWS,eu-west-3,c6g.12xlarge,reserved_1y,partial_upfront,1.128995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:55.981187 +AWS,eu-west-3,c6g.12xlarge,reserved_3y,all_upfront,0.376332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:29.137615 +AWS,eu-west-3,c6g.12xlarge,reserved_3y,no_upfront,0.376332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:18.745355 +AWS,eu-west-3,c6g.12xlarge,reserved_3y,partial_upfront,0.376332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:06.584264 +AWS,eu-west-3,c6g.12xlarge,spot,NA,0.698514,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773085 +AWS,eu-west-3,c6g.16xlarge,on_demand,NA,2.592,USD,AWS Pricing API,2025-11-30T09:03:18.975713 +AWS,eu-west-3,c6g.16xlarge,reserved_1y,all_upfront,1.6128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:48.207809 +AWS,eu-west-3,c6g.16xlarge,reserved_1y,no_upfront,1.6128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:32.033104 +AWS,eu-west-3,c6g.16xlarge,reserved_1y,partial_upfront,1.6128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:13.767460 +AWS,eu-west-3,c6g.16xlarge,reserved_3y,all_upfront,1.6128,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:46.614563 +AWS,eu-west-3,c6g.16xlarge,reserved_3y,no_upfront,1.6128,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:36.933159 +AWS,eu-west-3,c6g.16xlarge,reserved_3y,partial_upfront,1.6128,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:24.273954 +AWS,eu-west-3,c6g.16xlarge,spot,NA,0.830473,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773441 +AWS,eu-west-3,c6g.2xlarge,on_demand,NA,0.324,USD,AWS Pricing API,2025-11-30T09:03:30.867338 +AWS,eu-west-3,c6g.2xlarge,reserved_1y,all_upfront,0.256009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:00.350369 +AWS,eu-west-3,c6g.2xlarge,reserved_1y,no_upfront,0.256009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:44.107296 +AWS,eu-west-3,c6g.2xlarge,reserved_1y,partial_upfront,0.256009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:25.672852 +AWS,eu-west-3,c6g.2xlarge,reserved_3y,all_upfront,0.128003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:58.401008 +AWS,eu-west-3,c6g.2xlarge,reserved_3y,no_upfront,0.128003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:49.150910 +AWS,eu-west-3,c6g.2xlarge,reserved_3y,partial_upfront,0.128003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:36.143739 +AWS,eu-west-3,c6g.2xlarge,spot,NA,0.101151,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773647 +AWS,eu-west-3,c6g.4xlarge,on_demand,NA,0.648,USD,AWS Pricing API,2025-11-30T09:03:49.506866 +AWS,eu-west-3,c6g.4xlarge,reserved_1y,all_upfront,0.9879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:19.116894 +AWS,eu-west-3,c6g.4xlarge,reserved_1y,no_upfront,0.9879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:03.132859 +AWS,eu-west-3,c6g.4xlarge,reserved_1y,partial_upfront,0.9879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:44.359022 +AWS,eu-west-3,c6g.4xlarge,reserved_3y,all_upfront,0.3293,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:16.799666 +AWS,eu-west-3,c6g.4xlarge,reserved_3y,no_upfront,0.3293,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:08.208310 +AWS,eu-west-3,c6g.4xlarge,reserved_3y,partial_upfront,0.3293,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:54.788989 +AWS,eu-west-3,c6g.4xlarge,spot,NA,0.198907,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773925 +AWS,eu-west-3,c6g.8xlarge,on_demand,NA,1.296,USD,AWS Pricing API,2025-11-30T09:03:17.356737 +AWS,eu-west-3,c6g.8xlarge,reserved_1y,all_upfront,1.0248,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:46.582010 +AWS,eu-west-3,c6g.8xlarge,reserved_1y,no_upfront,1.0248,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:30.398879 +AWS,eu-west-3,c6g.8xlarge,reserved_1y,partial_upfront,1.0248,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:12.162809 +AWS,eu-west-3,c6g.8xlarge,reserved_3y,all_upfront,1.0248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:45.022873 +AWS,eu-west-3,c6g.8xlarge,reserved_3y,no_upfront,1.0248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:35.259375 +AWS,eu-west-3,c6g.8xlarge,reserved_3y,partial_upfront,1.0248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:22.677389 +AWS,eu-west-3,c6g.8xlarge,spot,NA,0.344303,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773420 +AWS,eu-west-3,c6g.xlarge,on_demand,NA,0.162,USD,AWS Pricing API,2025-11-30T09:03:54.869741 +AWS,eu-west-3,c6g.xlarge,reserved_1y,all_upfront,0.1008,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:24.542156 +AWS,eu-west-3,c6g.xlarge,reserved_1y,no_upfront,0.1008,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:08.604922 +AWS,eu-west-3,c6g.xlarge,reserved_1y,partial_upfront,0.1008,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:49.759233 +AWS,eu-west-3,c6g.xlarge,reserved_3y,all_upfront,0.1008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:22.084952 +AWS,eu-west-3,c6g.xlarge,reserved_3y,no_upfront,0.1008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:13.875010 +AWS,eu-west-3,c6g.xlarge,reserved_3y,partial_upfront,0.1008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:00.171081 +AWS,eu-west-3,c6g.xlarge,spot,NA,0.058005,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774029 +AWS,eu-west-3,c6gd.12xlarge,on_demand,NA,2.208,USD,AWS Pricing API,2025-11-30T09:02:56.006609 +AWS,eu-west-3,c6gd.12xlarge,reserved_1y,all_upfront,1.324843,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:25.249706 +AWS,eu-west-3,c6gd.12xlarge,reserved_1y,no_upfront,1.324843,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:08.833427 +AWS,eu-west-3,c6gd.12xlarge,reserved_1y,partial_upfront,1.324843,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:50.875015 +AWS,eu-west-3,c6gd.12xlarge,reserved_3y,all_upfront,0.883214,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:24.115011 +AWS,eu-west-3,c6gd.12xlarge,reserved_3y,no_upfront,0.883214,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:13.506501 +AWS,eu-west-3,c6gd.12xlarge,reserved_3y,partial_upfront,0.883214,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:01.462221 +AWS,eu-west-3,c6gd.12xlarge,spot,NA,0.800083,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773020 +AWS,eu-west-3,c6gd.16xlarge,on_demand,NA,2.944,USD,AWS Pricing API,2025-11-30T09:03:33.917363 +AWS,eu-west-3,c6gd.16xlarge,reserved_1y,all_upfront,1.73105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:03.453529 +AWS,eu-west-3,c6gd.16xlarge,reserved_1y,no_upfront,1.73105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:47.239301 +AWS,eu-west-3,c6gd.16xlarge,reserved_1y,partial_upfront,1.73105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:28.738181 +AWS,eu-west-3,c6gd.16xlarge,reserved_3y,all_upfront,0.577017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:01.431016 +AWS,eu-west-3,c6gd.16xlarge,reserved_3y,no_upfront,0.577017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:52.289792 +AWS,eu-west-3,c6gd.16xlarge,reserved_3y,partial_upfront,0.577017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:39.229966 +AWS,eu-west-3,c6gd.16xlarge,spot,NA,0.94297,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773686 +AWS,eu-west-3,c6gd.2xlarge,on_demand,NA,0.368,USD,AWS Pricing API,2025-11-30T09:03:44.112862 +AWS,eu-west-3,c6gd.2xlarge,reserved_1y,all_upfront,0.205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:13.699063 +AWS,eu-west-3,c6gd.2xlarge,reserved_1y,no_upfront,0.205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:57.598887 +AWS,eu-west-3,c6gd.2xlarge,reserved_1y,partial_upfront,0.205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:38.967567 +AWS,eu-west-3,c6gd.2xlarge,reserved_3y,all_upfront,0.205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:11.526143 +AWS,eu-west-3,c6gd.2xlarge,reserved_3y,no_upfront,0.205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:02.719787 +AWS,eu-west-3,c6gd.2xlarge,reserved_3y,partial_upfront,0.205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:49.447279 +AWS,eu-west-3,c6gd.2xlarge,spot,NA,0.104874,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773854 +AWS,eu-west-3,c6gd.4xlarge,on_demand,NA,0.736,USD,AWS Pricing API,2025-11-30T09:03:23.939214 +AWS,eu-west-3,c6gd.4xlarge,reserved_1y,all_upfront,0.553412,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:53.259258 +AWS,eu-west-3,c6gd.4xlarge,reserved_1y,no_upfront,0.553412,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:37.039425 +AWS,eu-west-3,c6gd.4xlarge,reserved_1y,partial_upfront,0.553412,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:18.714084 +AWS,eu-west-3,c6gd.4xlarge,reserved_3y,all_upfront,0.368937,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:51.514835 +AWS,eu-west-3,c6gd.4xlarge,reserved_3y,no_upfront,0.368937,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:42.005542 +AWS,eu-west-3,c6gd.4xlarge,reserved_3y,partial_upfront,0.368937,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:29.226159 +AWS,eu-west-3,c6gd.4xlarge,spot,NA,0.216824,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773561 +AWS,eu-west-3,c6gd.8xlarge,on_demand,NA,1.472,USD,AWS Pricing API,2025-11-30T09:03:52.354665 +AWS,eu-west-3,c6gd.8xlarge,reserved_1y,all_upfront,1.106925,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:21.998898 +AWS,eu-west-3,c6gd.8xlarge,reserved_1y,no_upfront,1.106925,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:06.010698 +AWS,eu-west-3,c6gd.8xlarge,reserved_1y,partial_upfront,1.106925,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:47.201391 +AWS,eu-west-3,c6gd.8xlarge,reserved_3y,all_upfront,0.737975,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:19.585044 +AWS,eu-west-3,c6gd.8xlarge,reserved_3y,no_upfront,0.737975,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:11.133965 +AWS,eu-west-3,c6gd.8xlarge,reserved_3y,partial_upfront,0.737975,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:57.611949 +AWS,eu-west-3,c6gd.8xlarge,spot,NA,0.427258,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773986 +AWS,eu-west-3,c6gd.xlarge,on_demand,NA,0.184,USD,AWS Pricing API,2025-11-30T09:03:43.451355 +AWS,eu-west-3,c6gd.xlarge,reserved_1y,all_upfront,0.108219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:13.036495 +AWS,eu-west-3,c6gd.xlarge,reserved_1y,no_upfront,0.108219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:56.927993 +AWS,eu-west-3,c6gd.xlarge,reserved_1y,partial_upfront,0.108219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:38.295470 +AWS,eu-west-3,c6gd.xlarge,reserved_3y,all_upfront,0.036073,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:10.861408 +AWS,eu-west-3,c6gd.xlarge,reserved_3y,no_upfront,0.036073,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:02.038180 +AWS,eu-west-3,c6gd.xlarge,reserved_3y,partial_upfront,0.036073,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:48.783934 +AWS,eu-west-3,c6gd.xlarge,spot,NA,0.060408,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773862 +AWS,eu-west-3,c6i.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T09:03:43.305739 +AWS,eu-west-3,c6i.12xlarge,reserved_1y,all_upfront,1.723973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:12.902490 +AWS,eu-west-3,c6i.12xlarge,reserved_1y,no_upfront,1.723973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:56.779549 +AWS,eu-west-3,c6i.12xlarge,reserved_1y,partial_upfront,1.723973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:38.152748 +AWS,eu-west-3,c6i.12xlarge,reserved_3y,all_upfront,0.574658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:10.729041 +AWS,eu-west-3,c6i.12xlarge,reserved_3y,no_upfront,0.574658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:01.898927 +AWS,eu-west-3,c6i.12xlarge,reserved_3y,partial_upfront,0.574658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:48.648145 +AWS,eu-west-3,c6i.12xlarge,spot,NA,0.982681,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773850 +AWS,eu-west-3,c6i.16xlarge,on_demand,NA,3.232,USD,AWS Pricing API,2025-11-30T09:03:18.564718 +AWS,eu-west-3,c6i.16xlarge,reserved_1y,all_upfront,3.83516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:47.802539 +AWS,eu-west-3,c6i.16xlarge,reserved_1y,no_upfront,3.83516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:31.626817 +AWS,eu-west-3,c6i.16xlarge,reserved_1y,partial_upfront,3.83516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:13.359350 +AWS,eu-west-3,c6i.16xlarge,reserved_3y,all_upfront,1.278387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:46.214522 +AWS,eu-west-3,c6i.16xlarge,reserved_3y,no_upfront,1.278387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:36.519245 +AWS,eu-west-3,c6i.16xlarge,reserved_3y,partial_upfront,1.278387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:23.872707 +AWS,eu-west-3,c6i.16xlarge,spot,NA,1.312534,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773437 +AWS,eu-west-3,c6i.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T09:03:13.331487 +AWS,eu-west-3,c6i.24xlarge,reserved_1y,all_upfront,3.2004,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:42.546011 +AWS,eu-west-3,c6i.24xlarge,reserved_1y,no_upfront,3.2004,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:26.314840 +AWS,eu-west-3,c6i.24xlarge,reserved_1y,partial_upfront,3.2004,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:08.127123 +AWS,eu-west-3,c6i.24xlarge,reserved_3y,all_upfront,3.2004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:41.056948 +AWS,eu-west-3,c6i.24xlarge,reserved_3y,no_upfront,3.2004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:31.158471 +AWS,eu-west-3,c6i.24xlarge,reserved_3y,partial_upfront,3.2004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:18.651745 +AWS,eu-west-3,c6i.24xlarge,spot,NA,1.703656,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773336 +AWS,eu-west-3,c6i.2xlarge,on_demand,NA,0.404,USD,AWS Pricing API,2025-11-30T09:02:57.194890 +AWS,eu-west-3,c6i.2xlarge,reserved_1y,all_upfront,0.248973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:26.460010 +AWS,eu-west-3,c6i.2xlarge,reserved_1y,no_upfront,0.248973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:10.060680 +AWS,eu-west-3,c6i.2xlarge,reserved_1y,partial_upfront,0.248973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:52.070144 +AWS,eu-west-3,c6i.2xlarge,reserved_3y,all_upfront,0.082991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:25.318367 +AWS,eu-west-3,c6i.2xlarge,reserved_3y,no_upfront,0.082991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:14.731409 +AWS,eu-west-3,c6i.2xlarge,reserved_3y,partial_upfront,0.082991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:02.689886 +AWS,eu-west-3,c6i.2xlarge,spot,NA,0.17788,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773036 +AWS,eu-west-3,c6i.32xlarge,on_demand,NA,6.464,USD,AWS Pricing API,2025-11-30T09:03:47.999075 +AWS,eu-west-3,c6i.32xlarge,reserved_1y,all_upfront,4.92576,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:17.611102 +AWS,eu-west-3,c6i.32xlarge,reserved_1y,no_upfront,4.92576,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:01.604378 +AWS,eu-west-3,c6i.32xlarge,reserved_1y,partial_upfront,4.92576,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:42.876513 +AWS,eu-west-3,c6i.32xlarge,reserved_3y,all_upfront,4.92576,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:15.348456 +AWS,eu-west-3,c6i.32xlarge,reserved_3y,no_upfront,4.92576,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:06.702326 +AWS,eu-west-3,c6i.32xlarge,reserved_3y,partial_upfront,4.92576,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:53.302812 +AWS,eu-west-3,c6i.32xlarge,spot,NA,2.085164,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773905 +AWS,eu-west-3,c6i.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T09:02:53.345771 +AWS,eu-west-3,c6i.4xlarge,reserved_1y,all_upfront,0.507995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:22.550611 +AWS,eu-west-3,c6i.4xlarge,reserved_1y,no_upfront,0.507995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:06.098385 +AWS,eu-west-3,c6i.4xlarge,reserved_1y,partial_upfront,0.507995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:48.155241 +AWS,eu-west-3,c6i.4xlarge,reserved_3y,all_upfront,0.338665,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:21.411770 +AWS,eu-west-3,c6i.4xlarge,reserved_3y,no_upfront,0.338665,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:10.766913 +AWS,eu-west-3,c6i.4xlarge,reserved_3y,partial_upfront,0.338665,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:58.794544 +AWS,eu-west-3,c6i.4xlarge,spot,NA,0.321407,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772975 +AWS,eu-west-3,c6i.8xlarge,on_demand,NA,1.616,USD,AWS Pricing API,2025-11-30T09:03:07.028050 +AWS,eu-west-3,c6i.8xlarge,reserved_1y,all_upfront,1.23144,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:36.207530 +AWS,eu-west-3,c6i.8xlarge,reserved_1y,no_upfront,1.23144,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:19.930168 +AWS,eu-west-3,c6i.8xlarge,reserved_1y,partial_upfront,1.23144,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:01.758612 +AWS,eu-west-3,c6i.8xlarge,reserved_3y,all_upfront,1.23144,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:34.821754 +AWS,eu-west-3,c6i.8xlarge,reserved_3y,no_upfront,1.23144,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:24.687026 +AWS,eu-west-3,c6i.8xlarge,reserved_3y,partial_upfront,1.23144,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:12.366020 +AWS,eu-west-3,c6i.8xlarge,spot,NA,0.708683,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773222 +AWS,eu-west-3,c6i.xlarge,on_demand,NA,0.202,USD,AWS Pricing API,2025-11-30T09:03:11.182457 +AWS,eu-west-3,c6i.xlarge,reserved_1y,all_upfront,0.15393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:40.403955 +AWS,eu-west-3,c6i.xlarge,reserved_1y,no_upfront,0.15393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:24.131259 +AWS,eu-west-3,c6i.xlarge,reserved_1y,partial_upfront,0.15393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:05.951931 +AWS,eu-west-3,c6i.xlarge,reserved_3y,all_upfront,0.15393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:38.939371 +AWS,eu-west-3,c6i.xlarge,reserved_3y,no_upfront,0.15393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:28.953917 +AWS,eu-west-3,c6i.xlarge,reserved_3y,partial_upfront,0.15393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:16.499193 +AWS,eu-west-3,c6i.xlarge,spot,NA,0.081092,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773296 +AWS,eu-west-3,c6id.12xlarge,on_demand,NA,2.898,USD,AWS Pricing API,2025-11-30T09:03:39.162141 +AWS,eu-west-3,c6id.12xlarge,reserved_1y,all_upfront,2.989175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:08.710260 +AWS,eu-west-3,c6id.12xlarge,reserved_1y,no_upfront,2.989175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:52.549621 +AWS,eu-west-3,c6id.12xlarge,reserved_1y,partial_upfront,2.989175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:34.005503 +AWS,eu-west-3,c6id.12xlarge,reserved_3y,all_upfront,1.494578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:06.610367 +AWS,eu-west-3,c6id.12xlarge,reserved_3y,no_upfront,1.494578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:57.651474 +AWS,eu-west-3,c6id.12xlarge,reserved_3y,partial_upfront,1.494578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:44.477579 +AWS,eu-west-3,c6id.12xlarge,spot,NA,0.992948,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773803 +AWS,eu-west-3,c6id.16xlarge,on_demand,NA,3.864,USD,AWS Pricing API,2025-11-30T09:03:48.534416 +AWS,eu-west-3,c6id.16xlarge,reserved_1y,all_upfront,2.318447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:18.141098 +AWS,eu-west-3,c6id.16xlarge,reserved_1y,no_upfront,2.318447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:02.161913 +AWS,eu-west-3,c6id.16xlarge,reserved_1y,partial_upfront,2.318447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:43.412605 +AWS,eu-west-3,c6id.16xlarge,reserved_3y,all_upfront,1.545616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:15.879065 +AWS,eu-west-3,c6id.16xlarge,reserved_3y,no_upfront,1.545616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:07.246284 +AWS,eu-west-3,c6id.16xlarge,reserved_3y,partial_upfront,1.545616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:53.853941 +AWS,eu-west-3,c6id.16xlarge,spot,NA,1.17656,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773941 +AWS,eu-west-3,c6id.24xlarge,on_demand,NA,5.796,USD,AWS Pricing API,2025-11-30T09:03:07.431753 +AWS,eu-west-3,c6id.24xlarge,reserved_1y,all_upfront,5.978236,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:36.615034 +AWS,eu-west-3,c6id.24xlarge,reserved_1y,no_upfront,5.978236,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:20.339817 +AWS,eu-west-3,c6id.24xlarge,reserved_1y,partial_upfront,5.978236,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:02.164344 +AWS,eu-west-3,c6id.24xlarge,reserved_3y,all_upfront,2.989119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:35.224383 +AWS,eu-west-3,c6id.24xlarge,reserved_3y,no_upfront,2.989119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:25.102459 +AWS,eu-west-3,c6id.24xlarge,reserved_3y,partial_upfront,2.989119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:12.765037 +AWS,eu-west-3,c6id.24xlarge,spot,NA,1.599139,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773214 +AWS,eu-west-3,c6id.2xlarge,on_demand,NA,0.483,USD,AWS Pricing API,2025-11-30T09:03:58.773591 +AWS,eu-west-3,c6id.2xlarge,reserved_1y,all_upfront,0.38644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:28.464597 +AWS,eu-west-3,c6id.2xlarge,reserved_1y,no_upfront,0.38644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:12.529133 +AWS,eu-west-3,c6id.2xlarge,reserved_1y,partial_upfront,0.38644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:53.664609 +AWS,eu-west-3,c6id.2xlarge,reserved_3y,all_upfront,0.193213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:25.909237 +AWS,eu-west-3,c6id.2xlarge,reserved_3y,no_upfront,0.193213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:17.868874 +AWS,eu-west-3,c6id.2xlarge,reserved_3y,partial_upfront,0.193213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:04.126150 +AWS,eu-west-3,c6id.2xlarge,spot,NA,0.175572,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774117 +AWS,eu-west-3,c6id.32xlarge,on_demand,NA,7.728,USD,AWS Pricing API,2025-11-30T09:02:55.326745 +AWS,eu-west-3,c6id.32xlarge,reserved_1y,all_upfront,6.182358,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:24.560044 +AWS,eu-west-3,c6id.32xlarge,reserved_1y,no_upfront,6.182358,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:08.140322 +AWS,eu-west-3,c6id.32xlarge,reserved_1y,partial_upfront,6.182358,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:50.197070 +AWS,eu-west-3,c6id.32xlarge,reserved_3y,all_upfront,3.091186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:23.455043 +AWS,eu-west-3,c6id.32xlarge,reserved_3y,no_upfront,3.091186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:12.818543 +AWS,eu-west-3,c6id.32xlarge,reserved_3y,partial_upfront,3.091186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:00.790428 +AWS,eu-west-3,c6id.32xlarge,spot,NA,1.620394,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773000 +AWS,eu-west-3,c6id.4xlarge,on_demand,NA,0.966,USD,AWS Pricing API,2025-11-30T09:03:02.393640 +AWS,eu-west-3,c6id.4xlarge,reserved_1y,all_upfront,0.76271,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:31.621412 +AWS,eu-west-3,c6id.4xlarge,reserved_1y,no_upfront,0.76271,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:15.305443 +AWS,eu-west-3,c6id.4xlarge,reserved_1y,partial_upfront,0.76271,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:57.189428 +AWS,eu-west-3,c6id.4xlarge,reserved_3y,all_upfront,0.76271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:30.318933 +AWS,eu-west-3,c6id.4xlarge,reserved_3y,no_upfront,0.76271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:19.996825 +AWS,eu-west-3,c6id.4xlarge,reserved_3y,partial_upfront,0.76271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:07.805044 +AWS,eu-west-3,c6id.4xlarge,spot,NA,0.366334,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773137 +AWS,eu-west-3,c6id.8xlarge,on_demand,NA,1.932,USD,AWS Pricing API,2025-11-30T09:03:35.141400 +AWS,eu-west-3,c6id.8xlarge,reserved_1y,all_upfront,1.136073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:04.669552 +AWS,eu-west-3,c6id.8xlarge,reserved_1y,no_upfront,1.136073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:48.468033 +AWS,eu-west-3,c6id.8xlarge,reserved_1y,partial_upfront,1.136073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:29.953824 +AWS,eu-west-3,c6id.8xlarge,reserved_3y,all_upfront,0.378691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:02.643200 +AWS,eu-west-3,c6id.8xlarge,reserved_3y,no_upfront,0.378691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:53.523099 +AWS,eu-west-3,c6id.8xlarge,reserved_3y,partial_upfront,0.378691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:40.440828 +AWS,eu-west-3,c6id.8xlarge,spot,NA,0.665623,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773714 +AWS,eu-west-3,c6id.xlarge,on_demand,NA,0.2415,USD,AWS Pricing API,2025-11-30T09:03:53.668242 +AWS,eu-west-3,c6id.xlarge,reserved_1y,all_upfront,0.19068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:23.334980 +AWS,eu-west-3,c6id.xlarge,reserved_1y,no_upfront,0.19068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:07.363501 +AWS,eu-west-3,c6id.xlarge,reserved_1y,partial_upfront,0.19068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:48.555043 +AWS,eu-west-3,c6id.xlarge,reserved_3y,all_upfront,0.19068,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:20.903621 +AWS,eu-west-3,c6id.xlarge,reserved_3y,no_upfront,0.19068,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:12.634365 +AWS,eu-west-3,c6id.xlarge,reserved_3y,partial_upfront,0.19068,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:58.965867 +AWS,eu-west-3,c6id.xlarge,spot,NA,0.080979,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774018 +AWS,eu-west-3,c6in.12xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T09:03:00.736168 +AWS,eu-west-3,c6in.12xlarge,reserved_1y,all_upfront,2.373059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:30.014104 +AWS,eu-west-3,c6in.12xlarge,reserved_1y,no_upfront,2.373059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:13.651547 +AWS,eu-west-3,c6in.12xlarge,reserved_1y,partial_upfront,2.373059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:55.578175 +AWS,eu-west-3,c6in.12xlarge,reserved_3y,all_upfront,0.79102,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:28.739867 +AWS,eu-west-3,c6in.12xlarge,reserved_3y,no_upfront,0.79102,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:18.320042 +AWS,eu-west-3,c6in.12xlarge,reserved_3y,partial_upfront,0.79102,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:06.177443 +AWS,eu-west-3,c6in.12xlarge,spot,NA,1.134238,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773092 +AWS,eu-west-3,c6in.16xlarge,on_demand,NA,4.3008,USD,AWS Pricing API,2025-11-30T09:03:12.119804 +AWS,eu-west-3,c6in.16xlarge,reserved_1y,all_upfront,3.831192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:41.344434 +AWS,eu-west-3,c6in.16xlarge,reserved_1y,no_upfront,3.831192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:25.086864 +AWS,eu-west-3,c6in.16xlarge,reserved_1y,partial_upfront,3.831192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:06.917367 +AWS,eu-west-3,c6in.16xlarge,reserved_3y,all_upfront,1.915591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:39.858805 +AWS,eu-west-3,c6in.16xlarge,reserved_3y,no_upfront,1.915591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:29.907563 +AWS,eu-west-3,c6in.16xlarge,reserved_3y,partial_upfront,1.915591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:17.456758 +AWS,eu-west-3,c6in.16xlarge,spot,NA,1.277258,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773310 +AWS,eu-west-3,c6in.24xlarge,on_demand,NA,6.4512,USD,AWS Pricing API,2025-11-30T09:03:21.514137 +AWS,eu-west-3,c6in.24xlarge,reserved_1y,all_upfront,4.06426,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:50.814893 +AWS,eu-west-3,c6in.24xlarge,reserved_1y,no_upfront,4.06426,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:34.605171 +AWS,eu-west-3,c6in.24xlarge,reserved_1y,partial_upfront,4.06426,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:16.304621 +AWS,eu-west-3,c6in.24xlarge,reserved_3y,all_upfront,4.06426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:49.122538 +AWS,eu-west-3,c6in.24xlarge,reserved_3y,no_upfront,4.06426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:39.538936 +AWS,eu-west-3,c6in.24xlarge,reserved_3y,partial_upfront,4.06426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:26.817942 +AWS,eu-west-3,c6in.24xlarge,spot,NA,2.265493,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773495 +AWS,eu-west-3,c6in.2xlarge,on_demand,NA,0.5376,USD,AWS Pricing API,2025-11-30T09:03:25.147741 +AWS,eu-west-3,c6in.2xlarge,reserved_1y,all_upfront,0.416573,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:54.477910 +AWS,eu-west-3,c6in.2xlarge,reserved_1y,no_upfront,0.416573,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:38.256029 +AWS,eu-west-3,c6in.2xlarge,reserved_1y,partial_upfront,0.416573,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:19.923199 +AWS,eu-west-3,c6in.2xlarge,reserved_3y,all_upfront,0.208278,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:52.701234 +AWS,eu-west-3,c6in.2xlarge,reserved_3y,no_upfront,0.208278,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:43.245547 +AWS,eu-west-3,c6in.2xlarge,reserved_3y,partial_upfront,0.208278,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:30.421752 +AWS,eu-west-3,c6in.2xlarge,spot,NA,0.187396,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773573 +AWS,eu-west-3,c6in.32xlarge,on_demand,NA,8.6016,USD,AWS Pricing API,2025-11-30T09:03:58.908842 +AWS,eu-west-3,c6in.32xlarge,reserved_1y,all_upfront,5.057763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:28.600344 +AWS,eu-west-3,c6in.32xlarge,reserved_1y,no_upfront,5.057763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:12.666544 +AWS,eu-west-3,c6in.32xlarge,reserved_1y,partial_upfront,5.057763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:53.797875 +AWS,eu-west-3,c6in.32xlarge,reserved_3y,all_upfront,1.685921,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:26.042394 +AWS,eu-west-3,c6in.32xlarge,reserved_3y,no_upfront,1.685921,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:18.007141 +AWS,eu-west-3,c6in.32xlarge,reserved_3y,partial_upfront,1.685921,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:04.261636 +AWS,eu-west-3,c6in.32xlarge,spot,NA,2.928022,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774123 +AWS,eu-west-3,c6in.4xlarge,on_demand,NA,1.0752,USD,AWS Pricing API,2025-11-30T09:02:59.774472 +AWS,eu-west-3,c6in.4xlarge,reserved_1y,all_upfront,0.957829,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:29.006092 +AWS,eu-west-3,c6in.4xlarge,reserved_1y,no_upfront,0.957829,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:12.696223 +AWS,eu-west-3,c6in.4xlarge,reserved_1y,partial_upfront,0.957829,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:54.628561 +AWS,eu-west-3,c6in.4xlarge,reserved_3y,all_upfront,0.47891,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:27.809312 +AWS,eu-west-3,c6in.4xlarge,reserved_3y,no_upfront,0.47891,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:17.361700 +AWS,eu-west-3,c6in.4xlarge,reserved_3y,partial_upfront,0.47891,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:05.235824 +AWS,eu-west-3,c6in.4xlarge,spot,NA,0.431835,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773069 +AWS,eu-west-3,c6in.8xlarge,on_demand,NA,2.1504,USD,AWS Pricing API,2025-11-30T09:03:29.550629 +AWS,eu-west-3,c6in.8xlarge,reserved_1y,all_upfront,2.349201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:59.016348 +AWS,eu-west-3,c6in.8xlarge,reserved_1y,no_upfront,2.349201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:42.750788 +AWS,eu-west-3,c6in.8xlarge,reserved_1y,partial_upfront,2.349201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:24.340399 +AWS,eu-west-3,c6in.8xlarge,reserved_3y,all_upfront,0.783067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:57.091416 +AWS,eu-west-3,c6in.8xlarge,reserved_3y,no_upfront,0.783067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:47.783954 +AWS,eu-west-3,c6in.8xlarge,reserved_3y,partial_upfront,0.783067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:34.813547 +AWS,eu-west-3,c6in.8xlarge,spot,NA,0.798679,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773639 +AWS,eu-west-3,c6in.xlarge,on_demand,NA,0.2688,USD,AWS Pricing API,2025-11-30T09:03:17.491599 +AWS,eu-west-3,c6in.xlarge,reserved_1y,all_upfront,0.158105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:46.720559 +AWS,eu-west-3,c6in.xlarge,reserved_1y,no_upfront,0.158105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:30.540331 +AWS,eu-west-3,c6in.xlarge,reserved_1y,partial_upfront,0.158105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:12.296123 +AWS,eu-west-3,c6in.xlarge,reserved_3y,all_upfront,0.052702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:45.153634 +AWS,eu-west-3,c6in.xlarge,reserved_3y,no_upfront,0.052702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:35.405657 +AWS,eu-west-3,c6in.xlarge,reserved_3y,partial_upfront,0.052702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:22.809341 +AWS,eu-west-3,c6in.xlarge,spot,NA,0.08492,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773424 +AWS,eu-west-3,c7g.12xlarge,on_demand,NA,2.0606,USD,AWS Pricing API,2025-11-30T09:03:27.410474 +AWS,eu-west-3,c7g.12xlarge,reserved_1y,all_upfront,1.520776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:56.755702 +AWS,eu-west-3,c7g.12xlarge,reserved_1y,no_upfront,1.520776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:40.575937 +AWS,eu-west-3,c7g.12xlarge,reserved_1y,partial_upfront,1.520776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:22.191215 +AWS,eu-west-3,c7g.12xlarge,reserved_3y,all_upfront,0.506925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:54.957551 +AWS,eu-west-3,c7g.12xlarge,reserved_3y,no_upfront,0.506925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:45.572552 +AWS,eu-west-3,c7g.12xlarge,reserved_3y,partial_upfront,0.506925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:32.677411 +AWS,eu-west-3,c7g.12xlarge,spot,NA,0.754182,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773600 +AWS,eu-west-3,c7g.16xlarge,on_demand,NA,2.7475,USD,AWS Pricing API,2025-11-30T09:03:36.883927 +AWS,eu-west-3,c7g.16xlarge,reserved_1y,all_upfront,2.02774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:06.429429 +AWS,eu-west-3,c7g.16xlarge,reserved_1y,no_upfront,2.02774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:50.237431 +AWS,eu-west-3,c7g.16xlarge,reserved_1y,partial_upfront,2.02774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:31.723601 +AWS,eu-west-3,c7g.16xlarge,reserved_3y,all_upfront,0.675913,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:04.352161 +AWS,eu-west-3,c7g.16xlarge,reserved_3y,no_upfront,0.675913,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:55.308157 +AWS,eu-west-3,c7g.16xlarge,reserved_3y,partial_upfront,0.675913,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:42.178393 +AWS,eu-west-3,c7g.16xlarge,spot,NA,0.949686,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773753 +AWS,eu-west-3,c7g.2xlarge,on_demand,NA,0.3434,USD,AWS Pricing API,2025-11-30T09:03:55.421230 +AWS,eu-west-3,c7g.2xlarge,reserved_1y,all_upfront,0.21153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:25.077213 +AWS,eu-west-3,c7g.2xlarge,reserved_1y,no_upfront,0.21153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:09.145249 +AWS,eu-west-3,c7g.2xlarge,reserved_1y,partial_upfront,0.21153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:50.293640 +AWS,eu-west-3,c7g.2xlarge,reserved_3y,all_upfront,0.07051,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:22.611590 +AWS,eu-west-3,c7g.2xlarge,reserved_3y,no_upfront,0.07051,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:14.424479 +AWS,eu-west-3,c7g.2xlarge,reserved_3y,partial_upfront,0.07051,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:00.713723 +AWS,eu-west-3,c7g.2xlarge,spot,NA,0.105946,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774063 +AWS,eu-west-3,c7g.4xlarge,on_demand,NA,0.6869,USD,AWS Pricing API,2025-11-30T09:03:12.791748 +AWS,eu-west-3,c7g.4xlarge,reserved_1y,all_upfront,0.4534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:42.015420 +AWS,eu-west-3,c7g.4xlarge,reserved_1y,no_upfront,0.4534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:25.763992 +AWS,eu-west-3,c7g.4xlarge,reserved_1y,partial_upfront,0.4534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:07.589363 +AWS,eu-west-3,c7g.4xlarge,reserved_3y,all_upfront,0.4534,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:40.523253 +AWS,eu-west-3,c7g.4xlarge,reserved_3y,no_upfront,0.4534,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:30.599873 +AWS,eu-west-3,c7g.4xlarge,reserved_3y,partial_upfront,0.4534,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:18.120642 +AWS,eu-west-3,c7g.4xlarge,spot,NA,0.186264,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773323 +AWS,eu-west-3,c7g.8xlarge,on_demand,NA,1.3738,USD,AWS Pricing API,2025-11-30T09:03:23.673734 +AWS,eu-west-3,c7g.8xlarge,reserved_1y,all_upfront,0.846347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:52.992581 +AWS,eu-west-3,c7g.8xlarge,reserved_1y,no_upfront,0.846347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:36.767817 +AWS,eu-west-3,c7g.8xlarge,reserved_1y,partial_upfront,0.846347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:18.448716 +AWS,eu-west-3,c7g.8xlarge,reserved_3y,all_upfront,0.282116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:51.251211 +AWS,eu-west-3,c7g.8xlarge,reserved_3y,no_upfront,0.282116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:41.733023 +AWS,eu-west-3,c7g.8xlarge,reserved_3y,partial_upfront,0.282116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:28.961300 +AWS,eu-west-3,c7g.8xlarge,spot,NA,0.473236,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773545 +AWS,eu-west-3,c7g.xlarge,on_demand,NA,0.1717,USD,AWS Pricing API,2025-11-30T09:03:10.915321 +AWS,eu-west-3,c7g.xlarge,reserved_1y,all_upfront,0.261758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:40.121545 +AWS,eu-west-3,c7g.xlarge,reserved_1y,no_upfront,0.261758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:23.860569 +AWS,eu-west-3,c7g.xlarge,reserved_1y,partial_upfront,0.261758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:05.681571 +AWS,eu-west-3,c7g.xlarge,reserved_3y,all_upfront,0.087253,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:38.677292 +AWS,eu-west-3,c7g.xlarge,reserved_3y,no_upfront,0.087253,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:28.681916 +AWS,eu-west-3,c7g.xlarge,reserved_3y,partial_upfront,0.087253,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:16.235329 +AWS,eu-west-3,c7g.xlarge,spot,NA,0.059077,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773284 +AWS,eu-west-3,c7gd.12xlarge,on_demand,NA,2.6083,USD,AWS Pricing API,2025-11-30T09:03:21.654300 +AWS,eu-west-3,c7gd.12xlarge,reserved_1y,all_upfront,1.961408,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:50.950441 +AWS,eu-west-3,c7gd.12xlarge,reserved_1y,no_upfront,1.961408,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:34.739320 +AWS,eu-west-3,c7gd.12xlarge,reserved_1y,partial_upfront,1.961408,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:16.437326 +AWS,eu-west-3,c7gd.12xlarge,reserved_3y,all_upfront,1.307603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:49.255341 +AWS,eu-west-3,c7gd.12xlarge,reserved_3y,no_upfront,1.307603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:39.675223 +AWS,eu-west-3,c7gd.12xlarge,reserved_3y,partial_upfront,1.307603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:26.949077 +AWS,eu-west-3,c7gd.12xlarge,spot,NA,1.063219,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773511 +AWS,eu-west-3,c7gd.16xlarge,on_demand,NA,3.4778,USD,AWS Pricing API,2025-11-30T09:03:07.835910 +AWS,eu-west-3,c7gd.16xlarge,reserved_1y,all_upfront,2.562785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:37.016007 +AWS,eu-west-3,c7gd.16xlarge,reserved_1y,no_upfront,2.562785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:20.753060 +AWS,eu-west-3,c7gd.16xlarge,reserved_1y,partial_upfront,2.562785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:02.569772 +AWS,eu-west-3,c7gd.16xlarge,reserved_3y,all_upfront,0.854262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:35.635697 +AWS,eu-west-3,c7gd.16xlarge,reserved_3y,no_upfront,0.854262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:25.527852 +AWS,eu-west-3,c7gd.16xlarge,reserved_3y,partial_upfront,0.854262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:13.167163 +AWS,eu-west-3,c7gd.16xlarge,spot,NA,1.217762,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773234 +AWS,eu-west-3,c7gd.2xlarge,on_demand,NA,0.4347,USD,AWS Pricing API,2025-11-30T09:03:36.747871 +AWS,eu-west-3,c7gd.2xlarge,reserved_1y,all_upfront,0.3432,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:06.285732 +AWS,eu-west-3,c7gd.2xlarge,reserved_1y,no_upfront,0.3432,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:50.098416 +AWS,eu-west-3,c7gd.2xlarge,reserved_1y,partial_upfront,0.3432,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:31.590781 +AWS,eu-west-3,c7gd.2xlarge,reserved_3y,all_upfront,0.3432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:04.216787 +AWS,eu-west-3,c7gd.2xlarge,reserved_3y,no_upfront,0.3432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:55.169506 +AWS,eu-west-3,c7gd.2xlarge,reserved_3y,partial_upfront,0.3432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:42.045112 +AWS,eu-west-3,c7gd.2xlarge,spot,NA,0.154211,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773749 +AWS,eu-west-3,c7gd.4xlarge,on_demand,NA,0.8694,USD,AWS Pricing API,2025-11-30T09:03:24.342903 +AWS,eu-west-3,c7gd.4xlarge,reserved_1y,all_upfront,0.695589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:53.661564 +AWS,eu-west-3,c7gd.4xlarge,reserved_1y,no_upfront,0.695589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:37.445531 +AWS,eu-west-3,c7gd.4xlarge,reserved_1y,partial_upfront,0.695589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:19.112263 +AWS,eu-west-3,c7gd.4xlarge,reserved_3y,all_upfront,0.347796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:51.908571 +AWS,eu-west-3,c7gd.4xlarge,reserved_3y,no_upfront,0.347796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:42.418196 +AWS,eu-west-3,c7gd.4xlarge,reserved_3y,partial_upfront,0.347796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:29.623012 +AWS,eu-west-3,c7gd.4xlarge,spot,NA,0.418013,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773556 +AWS,eu-west-3,c7gd.8xlarge,on_demand,NA,1.7389,USD,AWS Pricing API,2025-11-30T09:03:16.013150 +AWS,eu-west-3,c7gd.8xlarge,reserved_1y,all_upfront,1.3729,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:45.232667 +AWS,eu-west-3,c7gd.8xlarge,reserved_1y,no_upfront,1.3729,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:29.027307 +AWS,eu-west-3,c7gd.8xlarge,reserved_1y,partial_upfront,1.3729,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:10.828946 +AWS,eu-west-3,c7gd.8xlarge,reserved_3y,all_upfront,1.3729,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:43.699320 +AWS,eu-west-3,c7gd.8xlarge,reserved_3y,no_upfront,1.3729,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:33.887993 +AWS,eu-west-3,c7gd.8xlarge,reserved_3y,partial_upfront,1.3729,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:21.314450 +AWS,eu-west-3,c7gd.8xlarge,spot,NA,0.943821,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773383 +AWS,eu-west-3,c7gd.xlarge,on_demand,NA,0.2174,USD,AWS Pricing API,2025-11-30T09:03:54.730841 +AWS,eu-west-3,c7gd.xlarge,reserved_1y,all_upfront,0.1211,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:24.406945 +AWS,eu-west-3,c7gd.xlarge,reserved_1y,no_upfront,0.1211,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:08.471227 +AWS,eu-west-3,c7gd.xlarge,reserved_1y,partial_upfront,0.1211,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:49.626796 +AWS,eu-west-3,c7gd.xlarge,reserved_3y,all_upfront,0.1211,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:21.955061 +AWS,eu-west-3,c7gd.xlarge,reserved_3y,no_upfront,0.1211,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:13.735730 +AWS,eu-west-3,c7gd.xlarge,reserved_3y,partial_upfront,0.1211,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:00.029012 +AWS,eu-west-3,c7gd.xlarge,spot,NA,0.075146,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774033 +AWS,eu-west-3,c7i.12xlarge,on_demand,NA,2.5452,USD,AWS Pricing API,2025-11-30T09:03:16.284242 +AWS,eu-west-3,c7i.12xlarge,reserved_1y,all_upfront,1.93951,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:45.499570 +AWS,eu-west-3,c7i.12xlarge,reserved_1y,no_upfront,1.93951,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:29.299521 +AWS,eu-west-3,c7i.12xlarge,reserved_1y,partial_upfront,1.93951,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:11.095148 +AWS,eu-west-3,c7i.12xlarge,reserved_3y,all_upfront,1.93951,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:43.966953 +AWS,eu-west-3,c7i.12xlarge,reserved_3y,no_upfront,1.93951,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:34.161585 +AWS,eu-west-3,c7i.12xlarge,reserved_3y,partial_upfront,1.93951,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:21.591081 +AWS,eu-west-3,c7i.12xlarge,spot,NA,1.144056,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773378 +AWS,eu-west-3,c7i.16xlarge,on_demand,NA,3.3936,USD,AWS Pricing API,2025-11-30T09:03:53.008058 +AWS,eu-west-3,c7i.16xlarge,reserved_1y,all_upfront,2.58601,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:22.665444 +AWS,eu-west-3,c7i.16xlarge,reserved_1y,no_upfront,2.58601,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:06.687007 +AWS,eu-west-3,c7i.16xlarge,reserved_1y,partial_upfront,2.58601,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:47.887774 +AWS,eu-west-3,c7i.16xlarge,reserved_3y,all_upfront,2.58601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:20.234622 +AWS,eu-west-3,c7i.16xlarge,reserved_3y,no_upfront,2.58601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:11.904688 +AWS,eu-west-3,c7i.16xlarge,reserved_3y,partial_upfront,2.58601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:58.302358 +AWS,eu-west-3,c7i.16xlarge,spot,NA,1.258222,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774010 +AWS,eu-west-3,c7i.24xlarge,on_demand,NA,5.0904,USD,AWS Pricing API,2025-11-30T09:03:27.019592 +AWS,eu-west-3,c7i.24xlarge,reserved_1y,all_upfront,3.200418,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:56.354403 +AWS,eu-west-3,c7i.24xlarge,reserved_1y,no_upfront,3.200418,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:40.171852 +AWS,eu-west-3,c7i.24xlarge,reserved_1y,partial_upfront,3.200418,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:21.788424 +AWS,eu-west-3,c7i.24xlarge,reserved_3y,all_upfront,2.133599,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:54.562786 +AWS,eu-west-3,c7i.24xlarge,reserved_3y,no_upfront,2.133599,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:45.163654 +AWS,eu-west-3,c7i.24xlarge,reserved_3y,partial_upfront,2.133599,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:32.281655 +AWS,eu-west-3,c7i.24xlarge,spot,NA,1.917835,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773592 +AWS,eu-west-3,c7i.2xlarge,on_demand,NA,0.4242,USD,AWS Pricing API,2025-11-30T09:03:41.449219 +AWS,eu-west-3,c7i.2xlarge,reserved_1y,all_upfront,0.22136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:11.018200 +AWS,eu-west-3,c7i.2xlarge,reserved_1y,no_upfront,0.22136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:54.863420 +AWS,eu-west-3,c7i.2xlarge,reserved_1y,partial_upfront,0.22136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:36.292859 +AWS,eu-west-3,c7i.2xlarge,reserved_3y,all_upfront,0.22136,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:08.882100 +AWS,eu-west-3,c7i.2xlarge,reserved_3y,no_upfront,0.22136,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:59.973728 +AWS,eu-west-3,c7i.2xlarge,reserved_3y,partial_upfront,0.22136,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:46.769463 +AWS,eu-west-3,c7i.2xlarge,spot,NA,0.20578,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773834 +AWS,eu-west-3,c7i.48xlarge,on_demand,NA,10.1808,USD,AWS Pricing API,2025-11-30T09:03:09.841579 +AWS,eu-west-3,c7i.48xlarge,reserved_1y,all_upfront,6.400732,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:39.045776 +AWS,eu-west-3,c7i.48xlarge,reserved_1y,no_upfront,6.400732,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:22.782316 +AWS,eu-west-3,c7i.48xlarge,reserved_1y,partial_upfront,6.400732,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:04.618801 +AWS,eu-west-3,c7i.48xlarge,reserved_3y,all_upfront,4.267171,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:37.629883 +AWS,eu-west-3,c7i.48xlarge,reserved_3y,no_upfront,4.267171,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:27.592646 +AWS,eu-west-3,c7i.48xlarge,reserved_3y,partial_upfront,4.267171,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:15.160022 +AWS,eu-west-3,c7i.48xlarge,spot,NA,3.810057,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773267 +AWS,eu-west-3,c7i.4xlarge,on_demand,NA,0.8484,USD,AWS Pricing API,2025-11-30T09:03:22.726352 +AWS,eu-west-3,c7i.4xlarge,reserved_1y,all_upfront,0.8198,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:52.040380 +AWS,eu-west-3,c7i.4xlarge,reserved_1y,no_upfront,0.8198,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:35.822249 +AWS,eu-west-3,c7i.4xlarge,reserved_1y,partial_upfront,0.8198,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:17.509874 +AWS,eu-west-3,c7i.4xlarge,reserved_3y,all_upfront,0.409907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:50.316376 +AWS,eu-west-3,c7i.4xlarge,reserved_3y,no_upfront,0.409907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:40.774516 +AWS,eu-west-3,c7i.4xlarge,reserved_3y,partial_upfront,0.409907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:28.023867 +AWS,eu-west-3,c7i.4xlarge,spot,NA,0.339984,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773515 +AWS,eu-west-3,c7i.8xlarge,on_demand,NA,1.6968,USD,AWS Pricing API,2025-11-30T09:02:54.791227 +AWS,eu-west-3,c7i.8xlarge,reserved_1y,all_upfront,1.639715,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:24.026265 +AWS,eu-west-3,c7i.8xlarge,reserved_1y,no_upfront,1.639715,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:07.597034 +AWS,eu-west-3,c7i.8xlarge,reserved_1y,partial_upfront,1.639715,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:49.649232 +AWS,eu-west-3,c7i.8xlarge,reserved_3y,all_upfront,0.819852,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:22.927020 +AWS,eu-west-3,c7i.8xlarge,reserved_3y,no_upfront,0.819852,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:12.265506 +AWS,eu-west-3,c7i.8xlarge,reserved_3y,partial_upfront,0.819852,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:00.258812 +AWS,eu-west-3,c7i.8xlarge,spot,NA,0.704656,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773016 +AWS,eu-west-3,c7i.large,on_demand,NA,0.10605,USD,AWS Pricing API,2025-11-30T09:03:40.910271 +AWS,eu-west-3,c7i.large,reserved_1y,all_upfront,0.089205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:10.463825 +AWS,eu-west-3,c7i.large,reserved_1y,no_upfront,0.089205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:54.315988 +AWS,eu-west-3,c7i.large,reserved_1y,partial_upfront,0.089205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:35.751512 +AWS,eu-west-3,c7i.large,reserved_3y,all_upfront,0.044608,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:08.353142 +AWS,eu-west-3,c7i.large,reserved_3y,no_upfront,0.044608,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:59.427836 +AWS,eu-west-3,c7i.large,reserved_3y,partial_upfront,0.044608,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:46.235650 +AWS,eu-west-3,c7i.large,spot,NA,0.045361,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773823 +AWS,eu-west-3,c7i.metal-24xl,on_demand,NA,5.0904,USD,AWS Pricing API,2025-11-30T09:03:10.641572 +AWS,eu-west-3,c7i.metal-24xl,reserved_1y,all_upfront,3.200418,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:39.850369 +AWS,eu-west-3,c7i.metal-24xl,reserved_1y,no_upfront,3.200418,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:23.589946 +AWS,eu-west-3,c7i.metal-24xl,reserved_1y,partial_upfront,3.200418,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:05.418578 +AWS,eu-west-3,c7i.metal-24xl,reserved_3y,all_upfront,2.133599,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:38.418016 +AWS,eu-west-3,c7i.metal-24xl,reserved_3y,no_upfront,2.133599,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:28.412511 +AWS,eu-west-3,c7i.metal-24xl,reserved_3y,partial_upfront,2.133599,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:15.967937 +AWS,eu-west-3,c7i.metal-24xl,spot,NA,1.903938,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773275 +AWS,eu-west-3,c7i.metal-48xl,on_demand,NA,10.1808,USD,AWS Pricing API,2025-11-30T09:02:58.828490 +AWS,eu-west-3,c7i.metal-48xl,reserved_1y,all_upfront,4.6267,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:28.072957 +AWS,eu-west-3,c7i.metal-48xl,reserved_1y,no_upfront,4.6267,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:11.731329 +AWS,eu-west-3,c7i.metal-48xl,reserved_1y,partial_upfront,4.6267,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:53.683510 +AWS,eu-west-3,c7i.metal-48xl,reserved_3y,all_upfront,4.6267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:26.890624 +AWS,eu-west-3,c7i.metal-48xl,reserved_3y,no_upfront,4.6267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:16.399559 +AWS,eu-west-3,c7i.metal-48xl,reserved_3y,partial_upfront,4.6267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:04.306409 +AWS,eu-west-3,c7i.metal-48xl,spot,NA,3.109193,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773081 +AWS,eu-west-3,c7i.xlarge,on_demand,NA,0.2121,USD,AWS Pricing API,2025-11-30T09:03:52.086111 +AWS,eu-west-3,c7i.xlarge,reserved_1y,all_upfront,0.301256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:21.731109 +AWS,eu-west-3,c7i.xlarge,reserved_1y,no_upfront,0.301256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:05.728893 +AWS,eu-west-3,c7i.xlarge,reserved_1y,partial_upfront,0.301256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:46.924983 +AWS,eu-west-3,c7i.xlarge,reserved_3y,all_upfront,0.100419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:19.321672 +AWS,eu-west-3,c7i.xlarge,reserved_3y,no_upfront,0.100419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:10.850743 +AWS,eu-west-3,c7i.xlarge,reserved_3y,partial_upfront,0.100419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:57.339632 +AWS,eu-west-3,c7i.xlarge,spot,NA,0.092674,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774006 +AWS,eu-west-3,d3.2xlarge,on_demand,NA,1.28,USD,AWS Pricing API,2025-11-30T09:03:27.674462 +AWS,eu-west-3,d3.2xlarge,reserved_1y,all_upfront,1.805708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:57.116614 +AWS,eu-west-3,d3.2xlarge,reserved_1y,no_upfront,1.805708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:40.851692 +AWS,eu-west-3,d3.2xlarge,reserved_1y,partial_upfront,1.805708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:22.459818 +AWS,eu-west-3,d3.2xlarge,reserved_3y,all_upfront,0.601903,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:55.224822 +AWS,eu-west-3,d3.2xlarge,reserved_3y,no_upfront,0.601903,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:45.849357 +AWS,eu-west-3,d3.2xlarge,reserved_3y,partial_upfront,0.601903,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:32.942129 +AWS,eu-west-3,d3.2xlarge,spot,NA,0.514594,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773612 +AWS,eu-west-3,d3.4xlarge,on_demand,NA,2.559,USD,AWS Pricing API,2025-11-30T09:03:54.330421 +AWS,eu-west-3,d3.4xlarge,reserved_1y,all_upfront,1.535694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:24.006203 +AWS,eu-west-3,d3.4xlarge,reserved_1y,no_upfront,1.535694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:08.051144 +AWS,eu-west-3,d3.4xlarge,reserved_1y,partial_upfront,1.535694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:49.223820 +AWS,eu-west-3,d3.4xlarge,reserved_3y,all_upfront,1.023898,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:21.557375 +AWS,eu-west-3,d3.4xlarge,reserved_3y,no_upfront,1.023898,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:13.312951 +AWS,eu-west-3,d3.4xlarge,reserved_3y,partial_upfront,1.023898,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:59.629539 +AWS,eu-west-3,d3.4xlarge,spot,NA,0.894171,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774022 +AWS,eu-west-3,d3.8xlarge,on_demand,NA,5.11824,USD,AWS Pricing API,2025-11-30T09:02:58.276891 +AWS,eu-west-3,d3.8xlarge,reserved_1y,all_upfront,3.86939,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:27.530167 +AWS,eu-west-3,d3.8xlarge,reserved_1y,no_upfront,3.86939,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:11.192969 +AWS,eu-west-3,d3.8xlarge,reserved_1y,partial_upfront,3.86939,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:53.145179 +AWS,eu-west-3,d3.8xlarge,reserved_3y,all_upfront,3.86939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:26.368350 +AWS,eu-west-3,d3.8xlarge,reserved_3y,no_upfront,3.86939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:15.849538 +AWS,eu-west-3,d3.8xlarge,reserved_3y,partial_upfront,3.86939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:03.772329 +AWS,eu-west-3,d3.8xlarge,spot,NA,1.539971,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773049 +AWS,eu-west-3,d3.xlarge,on_demand,NA,0.64,USD,AWS Pricing API,2025-11-30T09:02:55.736562 +AWS,eu-west-3,d3.xlarge,reserved_1y,all_upfront,0.451484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:24.966519 +AWS,eu-west-3,d3.xlarge,reserved_1y,no_upfront,0.451484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:08.552228 +AWS,eu-west-3,d3.xlarge,reserved_1y,partial_upfront,0.451484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:50.607664 +AWS,eu-west-3,d3.xlarge,reserved_3y,all_upfront,0.150495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:23.851085 +AWS,eu-west-3,d3.xlarge,reserved_3y,no_upfront,0.150495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:13.231225 +AWS,eu-west-3,d3.xlarge,reserved_3y,partial_upfront,0.150495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:01.192957 +AWS,eu-west-3,d3.xlarge,spot,NA,0.168094,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773008 +AWS,eu-west-3,g4dn.12xlarge,on_demand,NA,4.574,USD,AWS Pricing API,2025-11-30T09:02:58.692219 +AWS,eu-west-3,g4dn.12xlarge,reserved_1y,all_upfront,3.314,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:27.937561 +AWS,eu-west-3,g4dn.12xlarge,reserved_1y,no_upfront,3.314,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:11.596899 +AWS,eu-west-3,g4dn.12xlarge,reserved_1y,partial_upfront,3.314,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:53.546680 +AWS,eu-west-3,g4dn.12xlarge,reserved_3y,all_upfront,3.314,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:26.759290 +AWS,eu-west-3,g4dn.12xlarge,reserved_3y,no_upfront,3.314,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:16.261721 +AWS,eu-west-3,g4dn.12xlarge,reserved_3y,partial_upfront,3.314,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:04.171995 +AWS,eu-west-3,g4dn.12xlarge,spot,NA,1.209473,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773057 +AWS,eu-west-3,g4dn.16xlarge,on_demand,NA,5.088,USD,AWS Pricing API,2025-11-30T09:03:04.983365 +AWS,eu-west-3,g4dn.16xlarge,reserved_1y,all_upfront,2.968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:34.178229 +AWS,eu-west-3,g4dn.16xlarge,reserved_1y,no_upfront,2.968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:17.910512 +AWS,eu-west-3,g4dn.16xlarge,reserved_1y,partial_upfront,2.968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:59.720308 +AWS,eu-west-3,g4dn.16xlarge,reserved_3y,all_upfront,2.968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:32.842868 +AWS,eu-west-3,g4dn.16xlarge,reserved_3y,no_upfront,2.968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:22.602738 +AWS,eu-west-3,g4dn.16xlarge,reserved_3y,partial_upfront,2.968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:10.367520 +AWS,eu-west-3,g4dn.16xlarge,spot,NA,0.989785,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773174 +AWS,eu-west-3,g4dn.2xlarge,on_demand,NA,0.879,USD,AWS Pricing API,2025-11-30T09:03:38.495545 +AWS,eu-west-3,g4dn.2xlarge,reserved_1y,all_upfront,0.554,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:08.035250 +AWS,eu-west-3,g4dn.2xlarge,reserved_1y,no_upfront,0.554,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:51.870446 +AWS,eu-west-3,g4dn.2xlarge,reserved_1y,partial_upfront,0.554,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:33.331238 +AWS,eu-west-3,g4dn.2xlarge,reserved_3y,all_upfront,0.554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:05.948860 +AWS,eu-west-3,g4dn.2xlarge,reserved_3y,no_upfront,0.554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:56.968707 +AWS,eu-west-3,g4dn.2xlarge,reserved_3y,partial_upfront,0.554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:43.804056 +AWS,eu-west-3,g4dn.2xlarge,spot,NA,0.269845,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773784 +AWS,eu-west-3,g4dn.4xlarge,on_demand,NA,1.408,USD,AWS Pricing API,2025-11-30T09:03:19.380242 +AWS,eu-west-3,g4dn.4xlarge,reserved_1y,all_upfront,1.520297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:48.611565 +AWS,eu-west-3,g4dn.4xlarge,reserved_1y,no_upfront,1.520297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:32.436977 +AWS,eu-west-3,g4dn.4xlarge,reserved_1y,partial_upfront,1.520297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:14.167244 +AWS,eu-west-3,g4dn.4xlarge,reserved_3y,all_upfront,0.760099,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:47.015656 +AWS,eu-west-3,g4dn.4xlarge,reserved_3y,no_upfront,0.760099,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:37.345688 +AWS,eu-west-3,g4dn.4xlarge,reserved_3y,partial_upfront,0.760099,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:24.674735 +AWS,eu-west-3,g4dn.4xlarge,spot,NA,0.484573,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773466 +AWS,eu-west-3,g4dn.8xlarge,on_demand,NA,2.544,USD,AWS Pricing API,2025-11-30T09:03:22.065451 +AWS,eu-west-3,g4dn.8xlarge,reserved_1y,all_upfront,1.843,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:51.363074 +AWS,eu-west-3,g4dn.8xlarge,reserved_1y,no_upfront,1.843,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:35.147429 +AWS,eu-west-3,g4dn.8xlarge,reserved_1y,partial_upfront,1.843,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:16.842216 +AWS,eu-west-3,g4dn.8xlarge,reserved_3y,all_upfront,1.843,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:49.664792 +AWS,eu-west-3,g4dn.8xlarge,reserved_3y,no_upfront,1.843,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:40.092599 +AWS,eu-west-3,g4dn.8xlarge,reserved_3y,partial_upfront,1.843,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:27.350086 +AWS,eu-west-3,g4dn.8xlarge,spot,NA,0.794226,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773524 +AWS,eu-west-3,g4dn.xlarge,on_demand,NA,0.615,USD,AWS Pricing API,2025-11-30T09:03:45.043603 +AWS,eu-west-3,g4dn.xlarge,reserved_1y,all_upfront,0.369475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:14.642631 +AWS,eu-west-3,g4dn.xlarge,reserved_1y,no_upfront,0.369475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:58.550292 +AWS,eu-west-3,g4dn.xlarge,reserved_1y,partial_upfront,0.369475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:39.902919 +AWS,eu-west-3,g4dn.xlarge,reserved_3y,all_upfront,0.246492,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:12.454743 +AWS,eu-west-3,g4dn.xlarge,reserved_3y,no_upfront,0.246492,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:03.682947 +AWS,eu-west-3,g4dn.xlarge,reserved_3y,partial_upfront,0.246492,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:50.378266 +AWS,eu-west-3,g4dn.xlarge,spot,NA,0.19137,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773866 +AWS,eu-west-3,g6.12xlarge,on_demand,NA,5.8412,USD,AWS Pricing API,2025-11-30T09:02:47.503706 +AWS,eu-west-3,g6.12xlarge,reserved_1y,all_upfront,4.52693,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:16.782896 +AWS,eu-west-3,g6.12xlarge,reserved_1y,no_upfront,4.52693,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:00.181667 +AWS,eu-west-3,g6.12xlarge,reserved_1y,partial_upfront,4.52693,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:42.389423 +AWS,eu-west-3,g6.12xlarge,reserved_3y,all_upfront,3.01795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:15.737990 +AWS,eu-west-3,g6.12xlarge,reserved_3y,no_upfront,3.01795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:04.774225 +AWS,eu-west-3,g6.12xlarge,reserved_3y,partial_upfront,3.01795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:53.019126 +AWS,eu-west-3,g6.12xlarge,spot,NA,1.61429,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772920 +AWS,eu-west-3,g6.16xlarge,on_demand,NA,4.31184,USD,AWS Pricing API,2025-11-30T09:02:44.860393 +AWS,eu-west-3,g6.16xlarge,reserved_1y,all_upfront,3.274886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:14.070857 +AWS,eu-west-3,g6.16xlarge,reserved_1y,no_upfront,3.274886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:57.480225 +AWS,eu-west-3,g6.16xlarge,reserved_1y,partial_upfront,3.274886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:39.728207 +AWS,eu-west-3,g6.16xlarge,reserved_3y,all_upfront,1.091629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:13.121093 +AWS,eu-west-3,g6.16xlarge,reserved_3y,no_upfront,1.091629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:02.036254 +AWS,eu-west-3,g6.16xlarge,reserved_3y,partial_upfront,1.091629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:50.346461 +AWS,eu-west-3,g6.16xlarge,spot,NA,0.892183,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772880 +AWS,eu-west-3,g6.24xlarge,on_demand,NA,8.47339,USD,AWS Pricing API,2025-11-30T09:02:44.995507 +AWS,eu-west-3,g6.24xlarge,reserved_1y,all_upfront,3.88929,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:14.203429 +AWS,eu-west-3,g6.24xlarge,reserved_1y,no_upfront,3.88929,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:57.613543 +AWS,eu-west-3,g6.24xlarge,reserved_1y,partial_upfront,3.88929,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:39.860935 +AWS,eu-west-3,g6.24xlarge,reserved_3y,all_upfront,3.88929,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:13.251347 +AWS,eu-west-3,g6.24xlarge,reserved_3y,no_upfront,3.88929,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:02.176919 +AWS,eu-west-3,g6.24xlarge,reserved_3y,partial_upfront,3.88929,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:50.482697 +AWS,eu-west-3,g6.24xlarge,spot,NA,1.941473,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772871 +AWS,eu-west-3,g6.2xlarge,on_demand,NA,1.24095,USD,AWS Pricing API,2025-11-30T09:02:46.581533 +AWS,eu-west-3,g6.2xlarge,reserved_1y,all_upfront,0.71199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:15.824917 +AWS,eu-west-3,g6.2xlarge,reserved_1y,no_upfront,0.71199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:59.232327 +AWS,eu-west-3,g6.2xlarge,reserved_1y,partial_upfront,0.71199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:41.462219 +AWS,eu-west-3,g6.2xlarge,reserved_3y,all_upfront,0.71199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:14.822172 +AWS,eu-west-3,g6.2xlarge,reserved_3y,no_upfront,0.71199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:03.819731 +AWS,eu-west-3,g6.2xlarge,reserved_3y,partial_upfront,0.71199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:52.089940 +AWS,eu-west-3,g6.2xlarge,spot,NA,0.396091,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772896 +AWS,eu-west-3,g6.48xlarge,on_demand,NA,16.94678,USD,AWS Pricing API,2025-11-30T09:02:44.462655 +AWS,eu-west-3,g6.48xlarge,reserved_1y,all_upfront,11.03235,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:13.670457 +AWS,eu-west-3,g6.48xlarge,reserved_1y,no_upfront,11.03235,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:57.070991 +AWS,eu-west-3,g6.48xlarge,reserved_1y,partial_upfront,11.03235,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:39.315276 +AWS,eu-west-3,g6.48xlarge,reserved_3y,all_upfront,11.03235,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:12.729799 +AWS,eu-west-3,g6.48xlarge,reserved_3y,no_upfront,11.03235,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:01.623629 +AWS,eu-west-3,g6.48xlarge,reserved_3y,partial_upfront,11.03235,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:49.948542 +AWS,eu-west-3,g6.48xlarge,spot,NA,4.272618,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772851 +AWS,eu-west-3,g6.4xlarge,on_demand,NA,1.67965,USD,AWS Pricing API,2025-11-30T09:02:45.264635 +AWS,eu-west-3,g6.4xlarge,reserved_1y,all_upfront,2.013014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:14.488253 +AWS,eu-west-3,g6.4xlarge,reserved_1y,no_upfront,2.013014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:57.882838 +AWS,eu-west-3,g6.4xlarge,reserved_1y,partial_upfront,2.013014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:40.137885 +AWS,eu-west-3,g6.4xlarge,reserved_3y,all_upfront,0.671005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:13.511584 +AWS,eu-west-3,g6.4xlarge,reserved_3y,no_upfront,0.671005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:02.451426 +AWS,eu-west-3,g6.4xlarge,reserved_3y,partial_upfront,0.671005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:50.764349 +AWS,eu-west-3,g6.4xlarge,spot,NA,0.4868,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772866 +AWS,eu-west-3,g6.8xlarge,on_demand,NA,2.55705,USD,AWS Pricing API,2025-11-30T09:02:46.056858 +AWS,eu-west-3,g6.8xlarge,reserved_1y,all_upfront,2.173507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:15.294900 +AWS,eu-west-3,g6.8xlarge,reserved_1y,no_upfront,2.173507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:58.693072 +AWS,eu-west-3,g6.8xlarge,reserved_1y,partial_upfront,2.173507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:40.930687 +AWS,eu-west-3,g6.8xlarge,reserved_3y,all_upfront,1.086749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:14.295784 +AWS,eu-west-3,g6.8xlarge,reserved_3y,no_upfront,1.086749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:03.267205 +AWS,eu-west-3,g6.8xlarge,reserved_3y,partial_upfront,1.086749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:51.559678 +AWS,eu-west-3,g6.8xlarge,spot,NA,0.762661,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772890 +AWS,eu-west-3,g6.xlarge,on_demand,NA,1.0216,USD,AWS Pricing API,2025-11-30T09:02:44.597624 +AWS,eu-west-3,g6.xlarge,reserved_1y,all_upfront,0.633367,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:13.803203 +AWS,eu-west-3,g6.xlarge,reserved_1y,no_upfront,0.633367,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:57.210465 +AWS,eu-west-3,g6.xlarge,reserved_1y,partial_upfront,0.633367,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:39.461501 +AWS,eu-west-3,g6.xlarge,reserved_3y,all_upfront,0.422256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:12.861607 +AWS,eu-west-3,g6.xlarge,reserved_3y,no_upfront,0.422256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:01.761259 +AWS,eu-west-3,g6.xlarge,reserved_3y,partial_upfront,0.422256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:50.084183 +AWS,eu-west-3,g6.xlarge,spot,NA,0.420788,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772875 +AWS,eu-west-3,gr6.4xlarge,on_demand,NA,1.9538,USD,AWS Pricing API,2025-11-30T09:02:45.921524 +AWS,eu-west-3,gr6.4xlarge,reserved_1y,all_upfront,1.660728,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:15.159246 +AWS,eu-west-3,gr6.4xlarge,reserved_1y,no_upfront,1.660728,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:58.553669 +AWS,eu-west-3,gr6.4xlarge,reserved_1y,partial_upfront,1.660728,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:40.795132 +AWS,eu-west-3,gr6.4xlarge,reserved_3y,all_upfront,0.830363,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:14.165101 +AWS,eu-west-3,gr6.4xlarge,reserved_3y,no_upfront,0.830363,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:03.132045 +AWS,eu-west-3,gr6.4xlarge,reserved_3y,partial_upfront,0.830363,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:51.426855 +AWS,eu-west-3,gr6.4xlarge,spot,NA,0.493122,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772884 +AWS,eu-west-3,gr6.8xlarge,on_demand,NA,3.10536,USD,AWS Pricing API,2025-11-30T09:02:47.238686 +AWS,eu-west-3,gr6.8xlarge,reserved_1y,all_upfront,3.299403,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:16.511790 +AWS,eu-west-3,gr6.8xlarge,reserved_1y,no_upfront,3.299403,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:16:59.903512 +AWS,eu-west-3,gr6.8xlarge,reserved_1y,partial_upfront,3.299403,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:42.122185 +AWS,eu-west-3,gr6.8xlarge,reserved_3y,all_upfront,1.649708,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:15.471517 +AWS,eu-west-3,gr6.8xlarge,reserved_3y,no_upfront,1.649708,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:04.503368 +AWS,eu-west-3,gr6.8xlarge,reserved_3y,partial_upfront,1.649708,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:52.754796 +AWS,eu-west-3,gr6.8xlarge,spot,NA,0.629593,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772902 +AWS,eu-west-3,i3.16xlarge,on_demand,NA,5.792,USD,AWS Pricing API,2025-11-30T09:03:42.102030 +AWS,eu-west-3,i3.16xlarge,reserved_1y,all_upfront,2.8,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:11.696292 +AWS,eu-west-3,i3.16xlarge,reserved_1y,no_upfront,2.8,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:55.550232 +AWS,eu-west-3,i3.16xlarge,reserved_1y,partial_upfront,2.8,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:36.954306 +AWS,eu-west-3,i3.16xlarge,reserved_3y,all_upfront,2.8,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:09.544133 +AWS,eu-west-3,i3.16xlarge,reserved_3y,no_upfront,2.8,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:00.658664 +AWS,eu-west-3,i3.16xlarge,reserved_3y,partial_upfront,2.8,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:47.440519 +AWS,eu-west-3,i3.16xlarge,spot,NA,1.308237,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773843 +AWS,eu-west-3,i3.2xlarge,on_demand,NA,0.724,USD,AWS Pricing API,2025-11-30T09:03:02.255136 +AWS,eu-west-3,i3.2xlarge,reserved_1y,all_upfront,0.648187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:31.488843 +AWS,eu-west-3,i3.2xlarge,reserved_1y,no_upfront,0.648187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:15.160704 +AWS,eu-west-3,i3.2xlarge,reserved_1y,partial_upfront,0.648187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:57.052879 +AWS,eu-west-3,i3.2xlarge,reserved_3y,all_upfront,0.324062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:30.186765 +AWS,eu-west-3,i3.2xlarge,reserved_3y,no_upfront,0.324062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:19.857484 +AWS,eu-west-3,i3.2xlarge,reserved_3y,partial_upfront,0.324062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:07.662043 +AWS,eu-west-3,i3.2xlarge,spot,NA,0.291588,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773121 +AWS,eu-west-3,i3.4xlarge,on_demand,NA,1.448,USD,AWS Pricing API,2025-11-30T09:03:03.765935 +AWS,eu-west-3,i3.4xlarge,reserved_1y,all_upfront,0.99,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:32.975320 +AWS,eu-west-3,i3.4xlarge,reserved_1y,no_upfront,0.99,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:16.668989 +AWS,eu-west-3,i3.4xlarge,reserved_1y,partial_upfront,0.99,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:58.525082 +AWS,eu-west-3,i3.4xlarge,reserved_3y,all_upfront,0.99,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:31.656247 +AWS,eu-west-3,i3.4xlarge,reserved_3y,no_upfront,0.99,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:21.364388 +AWS,eu-west-3,i3.4xlarge,reserved_3y,partial_upfront,0.99,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:09.153816 +AWS,eu-west-3,i3.4xlarge,spot,NA,0.509386,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773150 +AWS,eu-west-3,i3.8xlarge,on_demand,NA,2.896,USD,AWS Pricing API,2025-11-30T09:02:57.867046 +AWS,eu-west-3,i3.8xlarge,reserved_1y,all_upfront,1.98,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:27.130017 +AWS,eu-west-3,i3.8xlarge,reserved_1y,no_upfront,1.98,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:10.784427 +AWS,eu-west-3,i3.8xlarge,reserved_1y,partial_upfront,1.98,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:52.744488 +AWS,eu-west-3,i3.8xlarge,reserved_3y,all_upfront,1.98,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:25.973291 +AWS,eu-west-3,i3.8xlarge,reserved_3y,no_upfront,1.98,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:15.418990 +AWS,eu-west-3,i3.8xlarge,reserved_3y,partial_upfront,1.98,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:03.361236 +AWS,eu-west-3,i3.8xlarge,spot,NA,1.75298,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773045 +AWS,eu-west-3,i3.large,on_demand,NA,0.181,USD,AWS Pricing API,2025-11-30T09:03:02.942612 +AWS,eu-west-3,i3.large,reserved_1y,all_upfront,0.117904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:32.163256 +AWS,eu-west-3,i3.large,reserved_1y,no_upfront,0.117904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:15.849139 +AWS,eu-west-3,i3.large,reserved_1y,partial_upfront,0.117904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:57.725623 +AWS,eu-west-3,i3.large,reserved_3y,all_upfront,0.078635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:30.859533 +AWS,eu-west-3,i3.large,reserved_3y,no_upfront,0.078635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:20.541573 +AWS,eu-west-3,i3.large,reserved_3y,partial_upfront,0.078635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:08.339770 +AWS,eu-west-3,i3.large,spot,NA,0.047666,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773162 +AWS,eu-west-3,i3.xlarge,on_demand,NA,0.362,USD,AWS Pricing API,2025-11-30T09:03:28.069382 +AWS,eu-west-3,i3.xlarge,reserved_1y,all_upfront,0.285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:57.528558 +AWS,eu-west-3,i3.xlarge,reserved_1y,no_upfront,0.285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:41.255209 +AWS,eu-west-3,i3.xlarge,reserved_1y,partial_upfront,0.285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:22.866263 +AWS,eu-west-3,i3.xlarge,reserved_3y,all_upfront,0.285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:55.627070 +AWS,eu-west-3,i3.xlarge,reserved_3y,no_upfront,0.285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:46.266839 +AWS,eu-west-3,i3.xlarge,reserved_3y,partial_upfront,0.285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:33.349965 +AWS,eu-west-3,i3.xlarge,spot,NA,0.133305,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773608 +AWS,eu-west-3,i3en.12xlarge,on_demand,NA,6.312,USD,AWS Pricing API,2025-11-30T09:02:59.911440 +AWS,eu-west-3,i3en.12xlarge,reserved_1y,all_upfront,4.111822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:29.137946 +AWS,eu-west-3,i3en.12xlarge,reserved_1y,no_upfront,4.111822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:12.831646 +AWS,eu-west-3,i3en.12xlarge,reserved_1y,partial_upfront,4.111822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:54.763279 +AWS,eu-west-3,i3en.12xlarge,reserved_3y,all_upfront,2.741274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:27.942713 +AWS,eu-west-3,i3en.12xlarge,reserved_3y,no_upfront,2.741274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:17.499199 +AWS,eu-west-3,i3en.12xlarge,reserved_3y,partial_upfront,2.741274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:05.369285 +AWS,eu-west-3,i3en.12xlarge,spot,NA,2.920733,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773073 +AWS,eu-west-3,i3en.24xlarge,on_demand,NA,12.624,USD,AWS Pricing API,2025-11-30T09:03:05.263293 +AWS,eu-west-3,i3en.24xlarge,reserved_1y,all_upfront,9.942,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:34.447619 +AWS,eu-west-3,i3en.24xlarge,reserved_1y,no_upfront,9.942,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:18.180362 +AWS,eu-west-3,i3en.24xlarge,reserved_1y,partial_upfront,9.942,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:59.988532 +AWS,eu-west-3,i3en.24xlarge,reserved_3y,all_upfront,9.942,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:33.106005 +AWS,eu-west-3,i3en.24xlarge,reserved_3y,no_upfront,9.942,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:22.877780 +AWS,eu-west-3,i3en.24xlarge,reserved_3y,partial_upfront,9.942,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:10.633975 +AWS,eu-west-3,i3en.24xlarge,spot,NA,7.197174,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773178 +AWS,eu-west-3,i3en.2xlarge,on_demand,NA,1.052,USD,AWS Pricing API,2025-11-30T09:02:55.057965 +AWS,eu-west-3,i3en.2xlarge,reserved_1y,all_upfront,0.828,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:24.292533 +AWS,eu-west-3,i3en.2xlarge,reserved_1y,no_upfront,0.828,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:07.873159 +AWS,eu-west-3,i3en.2xlarge,reserved_1y,partial_upfront,0.828,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:49.931857 +AWS,eu-west-3,i3en.2xlarge,reserved_3y,all_upfront,0.828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:23.193583 +AWS,eu-west-3,i3en.2xlarge,reserved_3y,no_upfront,0.828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:12.543360 +AWS,eu-west-3,i3en.2xlarge,reserved_3y,partial_upfront,0.828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:00.527273 +AWS,eu-west-3,i3en.2xlarge,spot,NA,0.396394,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773024 +AWS,eu-west-3,i3en.3xlarge,on_demand,NA,1.578,USD,AWS Pricing API,2025-11-30T09:03:49.225370 +AWS,eu-west-3,i3en.3xlarge,reserved_1y,all_upfront,1.243,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:18.832902 +AWS,eu-west-3,i3en.3xlarge,reserved_1y,no_upfront,1.243,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:02.856970 +AWS,eu-west-3,i3en.3xlarge,reserved_1y,partial_upfront,1.243,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:44.090160 +AWS,eu-west-3,i3en.3xlarge,reserved_3y,all_upfront,1.243,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:16.535987 +AWS,eu-west-3,i3en.3xlarge,reserved_3y,no_upfront,1.243,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:07.937152 +AWS,eu-west-3,i3en.3xlarge,reserved_3y,partial_upfront,1.243,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:54.520710 +AWS,eu-west-3,i3en.3xlarge,spot,NA,0.752709,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773937 +AWS,eu-west-3,i3en.6xlarge,on_demand,NA,3.156,USD,AWS Pricing API,2025-11-30T09:03:40.636218 +AWS,eu-west-3,i3en.6xlarge,reserved_1y,all_upfront,4.278653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:10.186735 +AWS,eu-west-3,i3en.6xlarge,reserved_1y,no_upfront,4.278653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:54.040524 +AWS,eu-west-3,i3en.6xlarge,reserved_1y,partial_upfront,4.278653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:35.485691 +AWS,eu-west-3,i3en.6xlarge,reserved_3y,all_upfront,1.426218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:08.075620 +AWS,eu-west-3,i3en.6xlarge,reserved_3y,no_upfront,1.426218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:59.152369 +AWS,eu-west-3,i3en.6xlarge,reserved_3y,partial_upfront,1.426218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:45.957176 +AWS,eu-west-3,i3en.6xlarge,spot,NA,1.335582,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773827 +AWS,eu-west-3,i3en.large,on_demand,NA,0.263,USD,AWS Pricing API,2025-11-30T09:03:13.740933 +AWS,eu-west-3,i3en.large,reserved_1y,all_upfront,0.171616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:42.945650 +AWS,eu-west-3,i3en.large,reserved_1y,no_upfront,0.171616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:26.726703 +AWS,eu-west-3,i3en.large,reserved_1y,partial_upfront,0.171616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:08.528909 +AWS,eu-west-3,i3en.large,reserved_3y,all_upfront,0.114539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:41.452703 +AWS,eu-west-3,i3en.large,reserved_3y,no_upfront,0.114539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:31.569465 +AWS,eu-west-3,i3en.large,reserved_3y,partial_upfront,0.114539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:19.052373 +AWS,eu-west-3,i3en.large,spot,NA,0.097609,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773370 +AWS,eu-west-3,i3en.xlarge,on_demand,NA,0.526,USD,AWS Pricing API,2025-11-30T09:03:13.062860 +AWS,eu-west-3,i3en.xlarge,reserved_1y,all_upfront,0.36,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:42.281898 +AWS,eu-west-3,i3en.xlarge,reserved_1y,no_upfront,0.36,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:26.036889 +AWS,eu-west-3,i3en.xlarge,reserved_1y,partial_upfront,0.36,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:07.856601 +AWS,eu-west-3,i3en.xlarge,reserved_3y,all_upfront,0.36,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:40.787061 +AWS,eu-west-3,i3en.xlarge,reserved_3y,no_upfront,0.36,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:30.875402 +AWS,eu-west-3,i3en.xlarge,reserved_3y,partial_upfront,0.36,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:18.387416 +AWS,eu-west-3,i3en.xlarge,spot,NA,0.200426,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773347 +AWS,eu-west-3,i4i.16xlarge,on_demand,NA,6.371,USD,AWS Pricing API,2025-11-30T09:03:17.896700 +AWS,eu-west-3,i4i.16xlarge,reserved_1y,all_upfront,4.724443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:47.122397 +AWS,eu-west-3,i4i.16xlarge,reserved_1y,no_upfront,4.724443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:30.944203 +AWS,eu-west-3,i4i.16xlarge,reserved_1y,partial_upfront,4.724443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:12.694804 +AWS,eu-west-3,i4i.16xlarge,reserved_3y,all_upfront,3.149481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:45.551040 +AWS,eu-west-3,i4i.16xlarge,reserved_3y,no_upfront,3.149481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:35.822764 +AWS,eu-west-3,i4i.16xlarge,reserved_3y,partial_upfront,3.149481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:23.204415 +AWS,eu-west-3,i4i.16xlarge,spot,NA,3.219902,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773453 +AWS,eu-west-3,i4i.2xlarge,on_demand,NA,0.796,USD,AWS Pricing API,2025-11-30T09:03:33.650991 +AWS,eu-west-3,i4i.2xlarge,reserved_1y,all_upfront,0.62,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:03.181433 +AWS,eu-west-3,i4i.2xlarge,reserved_1y,no_upfront,0.62,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:46.971116 +AWS,eu-west-3,i4i.2xlarge,reserved_1y,partial_upfront,0.62,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:28.463501 +AWS,eu-west-3,i4i.2xlarge,reserved_3y,all_upfront,0.62,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:01.168091 +AWS,eu-west-3,i4i.2xlarge,reserved_3y,no_upfront,0.62,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:52.015041 +AWS,eu-west-3,i4i.2xlarge,reserved_3y,partial_upfront,0.62,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:38.965877 +AWS,eu-west-3,i4i.2xlarge,spot,NA,0.232164,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773674 +AWS,eu-west-3,i4i.32xlarge,on_demand,NA,12.7424,USD,AWS Pricing API,2025-11-30T09:03:45.853506 +AWS,eu-west-3,i4i.32xlarge,reserved_1y,all_upfront,9.449826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:15.452760 +AWS,eu-west-3,i4i.32xlarge,reserved_1y,no_upfront,9.449826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:59.379646 +AWS,eu-west-3,i4i.32xlarge,reserved_1y,partial_upfront,9.449826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:40.726400 +AWS,eu-west-3,i4i.32xlarge,reserved_3y,all_upfront,6.299902,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:13.239480 +AWS,eu-west-3,i4i.32xlarge,reserved_3y,no_upfront,6.299902,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:04.511544 +AWS,eu-west-3,i4i.32xlarge,reserved_3y,partial_upfront,6.299902,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:51.172850 +AWS,eu-west-3,i4i.32xlarge,spot,NA,8.464135,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773889 +AWS,eu-west-3,i4i.4xlarge,on_demand,NA,1.593,USD,AWS Pricing API,2025-11-30T09:03:22.332645 +AWS,eu-west-3,i4i.4xlarge,reserved_1y,all_upfront,2.389155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:51.640914 +AWS,eu-west-3,i4i.4xlarge,reserved_1y,no_upfront,2.389155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:35.414697 +AWS,eu-west-3,i4i.4xlarge,reserved_1y,partial_upfront,2.389155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:17.113676 +AWS,eu-west-3,i4i.4xlarge,reserved_3y,all_upfront,0.796385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:49.924047 +AWS,eu-west-3,i4i.4xlarge,reserved_3y,no_upfront,0.796385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:40.366128 +AWS,eu-west-3,i4i.4xlarge,reserved_3y,partial_upfront,0.796385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:27.616025 +AWS,eu-west-3,i4i.4xlarge,spot,NA,0.513903,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773536 +AWS,eu-west-3,i4i.8xlarge,on_demand,NA,3.186,USD,AWS Pricing API,2025-11-30T09:03:25.287496 +AWS,eu-west-3,i4i.8xlarge,reserved_1y,all_upfront,2.481,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:54.613564 +AWS,eu-west-3,i4i.8xlarge,reserved_1y,no_upfront,2.481,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:38.390396 +AWS,eu-west-3,i4i.8xlarge,reserved_1y,partial_upfront,2.481,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:20.057405 +AWS,eu-west-3,i4i.8xlarge,reserved_3y,all_upfront,2.481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:52.841917 +AWS,eu-west-3,i4i.8xlarge,reserved_3y,no_upfront,2.481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:43.381771 +AWS,eu-west-3,i4i.8xlarge,reserved_3y,partial_upfront,2.481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:30.554507 +AWS,eu-west-3,i4i.8xlarge,spot,NA,1.668519,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773569 +AWS,eu-west-3,i4i.large,on_demand,NA,0.199,USD,AWS Pricing API,2025-11-30T09:03:50.475725 +AWS,eu-west-3,i4i.large,reserved_1y,all_upfront,0.121347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:20.062964 +AWS,eu-west-3,i4i.large,reserved_1y,no_upfront,0.121347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:04.086572 +AWS,eu-west-3,i4i.large,reserved_1y,partial_upfront,0.121347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:45.303192 +AWS,eu-west-3,i4i.large,reserved_3y,all_upfront,0.040449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:17.740922 +AWS,eu-west-3,i4i.large,reserved_3y,no_upfront,0.040449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:09.189711 +AWS,eu-west-3,i4i.large,reserved_3y,partial_upfront,0.040449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:55.725099 +AWS,eu-west-3,i4i.large,spot,NA,0.058405,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773957 +AWS,eu-west-3,i4i.xlarge,on_demand,NA,0.398,USD,AWS Pricing API,2025-11-30T09:03:32.066558 +AWS,eu-west-3,i4i.xlarge,reserved_1y,all_upfront,0.26,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:01.567295 +AWS,eu-west-3,i4i.xlarge,reserved_1y,no_upfront,0.26,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:45.339410 +AWS,eu-west-3,i4i.xlarge,reserved_1y,partial_upfront,0.26,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:26.865450 +AWS,eu-west-3,i4i.xlarge,reserved_3y,all_upfront,0.26,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:59.592032 +AWS,eu-west-3,i4i.xlarge,reserved_3y,no_upfront,0.26,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:50.375794 +AWS,eu-west-3,i4i.xlarge,reserved_3y,partial_upfront,0.26,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:37.362251 +AWS,eu-west-3,i4i.xlarge,spot,NA,0.140701,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773663 +AWS,eu-west-3,im4gn.16xlarge,on_demand,NA,6.75347,USD,AWS Pricing API,2025-11-30T09:03:16.682509 +AWS,eu-west-3,im4gn.16xlarge,reserved_1y,all_upfront,10.011758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:45.907028 +AWS,eu-west-3,im4gn.16xlarge,reserved_1y,no_upfront,10.011758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:29.707346 +AWS,eu-west-3,im4gn.16xlarge,reserved_1y,partial_upfront,10.011758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:11.496628 +AWS,eu-west-3,im4gn.16xlarge,reserved_3y,all_upfront,3.337253,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:44.360201 +AWS,eu-west-3,im4gn.16xlarge,reserved_3y,no_upfront,3.337253,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:34.574947 +AWS,eu-west-3,im4gn.16xlarge,reserved_3y,partial_upfront,3.337253,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:22.000123 +AWS,eu-west-3,im4gn.16xlarge,spot,NA,1.99492,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773416 +AWS,eu-west-3,im4gn.2xlarge,on_demand,NA,0.84418,USD,AWS Pricing API,2025-11-30T09:03:14.416201 +AWS,eu-west-3,im4gn.2xlarge,reserved_1y,all_upfront,0.518741,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:43.621040 +AWS,eu-west-3,im4gn.2xlarge,reserved_1y,no_upfront,0.518741,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:27.409861 +AWS,eu-west-3,im4gn.2xlarge,reserved_1y,partial_upfront,0.518741,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:09.198298 +AWS,eu-west-3,im4gn.2xlarge,reserved_3y,all_upfront,0.345834,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:42.109445 +AWS,eu-west-3,im4gn.2xlarge,reserved_3y,no_upfront,0.345834,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:32.250357 +AWS,eu-west-3,im4gn.2xlarge,reserved_3y,partial_upfront,0.345834,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:19.719028 +AWS,eu-west-3,im4gn.2xlarge,spot,NA,0.206675,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773358 +AWS,eu-west-3,im4gn.4xlarge,on_demand,NA,1.68837,USD,AWS Pricing API,2025-11-30T09:03:09.165679 +AWS,eu-west-3,im4gn.4xlarge,reserved_1y,all_upfront,1.29936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:38.363622 +AWS,eu-west-3,im4gn.4xlarge,reserved_1y,no_upfront,1.29936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:22.103016 +AWS,eu-west-3,im4gn.4xlarge,reserved_1y,partial_upfront,1.29936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:03.944797 +AWS,eu-west-3,im4gn.4xlarge,reserved_3y,all_upfront,1.29936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:36.951753 +AWS,eu-west-3,im4gn.4xlarge,reserved_3y,no_upfront,1.29936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:26.901964 +AWS,eu-west-3,im4gn.4xlarge,reserved_3y,partial_upfront,1.29936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:14.493066 +AWS,eu-west-3,im4gn.4xlarge,spot,NA,0.5447,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773247 +AWS,eu-west-3,im4gn.8xlarge,on_demand,NA,3.37674,USD,AWS Pricing API,2025-11-30T09:03:09.574764 +AWS,eu-west-3,im4gn.8xlarge,reserved_1y,all_upfront,2.59871,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:38.774668 +AWS,eu-west-3,im4gn.8xlarge,reserved_1y,no_upfront,2.59871,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:22.512791 +AWS,eu-west-3,im4gn.8xlarge,reserved_1y,partial_upfront,2.59871,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:04.352060 +AWS,eu-west-3,im4gn.8xlarge,reserved_3y,all_upfront,2.59871,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:37.348969 +AWS,eu-west-3,im4gn.8xlarge,reserved_3y,no_upfront,2.59871,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:27.316326 +AWS,eu-west-3,im4gn.8xlarge,reserved_3y,partial_upfront,2.59871,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:14.894567 +AWS,eu-west-3,im4gn.8xlarge,spot,NA,1.1889,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773251 +AWS,eu-west-3,im4gn.large,on_demand,NA,0.21105,USD,AWS Pricing API,2025-11-30T09:03:10.237440 +AWS,eu-west-3,im4gn.large,reserved_1y,all_upfront,0.13617,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:39.447738 +AWS,eu-west-3,im4gn.large,reserved_1y,no_upfront,0.13617,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:23.186837 +AWS,eu-west-3,im4gn.large,reserved_1y,partial_upfront,0.13617,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:05.016419 +AWS,eu-west-3,im4gn.large,reserved_3y,all_upfront,0.13617,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:38.019758 +AWS,eu-west-3,im4gn.large,reserved_3y,no_upfront,0.13617,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:28.003670 +AWS,eu-west-3,im4gn.large,reserved_3y,partial_upfront,0.13617,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:15.570151 +AWS,eu-west-3,im4gn.large,spot,NA,0.055342,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773271 +AWS,eu-west-3,im4gn.xlarge,on_demand,NA,0.42209,USD,AWS Pricing API,2025-11-30T09:03:57.698731 +AWS,eu-west-3,im4gn.xlarge,reserved_1y,all_upfront,0.25937,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:27.379428 +AWS,eu-west-3,im4gn.xlarge,reserved_1y,no_upfront,0.25937,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:11.448471 +AWS,eu-west-3,im4gn.xlarge,reserved_1y,partial_upfront,0.25937,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:52.584015 +AWS,eu-west-3,im4gn.xlarge,reserved_3y,all_upfront,0.172917,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:24.860999 +AWS,eu-west-3,im4gn.xlarge,reserved_3y,no_upfront,0.172917,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:16.760499 +AWS,eu-west-3,im4gn.xlarge,reserved_3y,partial_upfront,0.172917,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:03.055110 +AWS,eu-west-3,im4gn.xlarge,spot,NA,0.111542,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774091 +AWS,eu-west-3,is4gen.2xlarge,on_demand,NA,1.3413,USD,AWS Pricing API,2025-11-30T09:03:07.571144 +AWS,eu-west-3,is4gen.2xlarge,reserved_1y,all_upfront,0.91651,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:36.749232 +AWS,eu-west-3,is4gen.2xlarge,reserved_1y,no_upfront,0.91651,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:20.477618 +AWS,eu-west-3,is4gen.2xlarge,reserved_1y,partial_upfront,0.91651,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:02.303083 +AWS,eu-west-3,is4gen.2xlarge,reserved_3y,all_upfront,0.91651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:35.357739 +AWS,eu-west-3,is4gen.2xlarge,reserved_3y,no_upfront,0.91651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:25.253680 +AWS,eu-west-3,is4gen.2xlarge,reserved_3y,partial_upfront,0.91651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:12.899913 +AWS,eu-west-3,is4gen.2xlarge,spot,NA,0.377276,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773218 +AWS,eu-west-3,is4gen.4xlarge,on_demand,NA,2.68261,USD,AWS Pricing API,2025-11-30T09:03:50.192720 +AWS,eu-west-3,is4gen.4xlarge,reserved_1y,all_upfront,1.710845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:19.793219 +AWS,eu-west-3,is4gen.4xlarge,reserved_1y,no_upfront,1.710845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:03.811287 +AWS,eu-west-3,is4gen.4xlarge,reserved_1y,partial_upfront,1.710845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:45.032162 +AWS,eu-west-3,is4gen.4xlarge,reserved_3y,all_upfront,0.570282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:17.477567 +AWS,eu-west-3,is4gen.4xlarge,reserved_3y,no_upfront,0.570282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:08.913840 +AWS,eu-west-3,is4gen.4xlarge,reserved_3y,partial_upfront,0.570282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:55.458463 +AWS,eu-west-3,is4gen.4xlarge,spot,NA,0.827502,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773975 +AWS,eu-west-3,is4gen.8xlarge,on_demand,NA,5.36522,USD,AWS Pricing API,2025-11-30T09:02:49.509296 +AWS,eu-west-3,is4gen.8xlarge,reserved_1y,all_upfront,4.37985,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:18.790115 +AWS,eu-west-3,is4gen.8xlarge,reserved_1y,no_upfront,4.37985,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:02.248357 +AWS,eu-west-3,is4gen.8xlarge,reserved_1y,partial_upfront,4.37985,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:44.398153 +AWS,eu-west-3,is4gen.8xlarge,reserved_3y,all_upfront,4.37985,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:17.733265 +AWS,eu-west-3,is4gen.8xlarge,reserved_3y,no_upfront,4.37985,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:06.857407 +AWS,eu-west-3,is4gen.8xlarge,reserved_3y,partial_upfront,4.37985,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:55.052975 +AWS,eu-west-3,is4gen.8xlarge,spot,NA,1.725566,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772949 +AWS,eu-west-3,is4gen.large,on_demand,NA,0.33533,USD,AWS Pricing API,2025-11-30T09:03:30.600159 +AWS,eu-west-3,is4gen.large,reserved_1y,all_upfront,0.27374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:00.083653 +AWS,eu-west-3,is4gen.large,reserved_1y,no_upfront,0.27374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:43.834780 +AWS,eu-west-3,is4gen.large,reserved_1y,partial_upfront,0.27374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:25.404098 +AWS,eu-west-3,is4gen.large,reserved_3y,all_upfront,0.27374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:58.135768 +AWS,eu-west-3,is4gen.large,reserved_3y,no_upfront,0.27374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:48.879701 +AWS,eu-west-3,is4gen.large,reserved_3y,partial_upfront,0.27374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:35.881422 +AWS,eu-west-3,is4gen.large,spot,NA,0.08662,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773655 +AWS,eu-west-3,is4gen.xlarge,on_demand,NA,0.67065,USD,AWS Pricing API,2025-11-30T09:03:15.204021 +AWS,eu-west-3,is4gen.xlarge,reserved_1y,all_upfront,0.538049,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:44.430616 +AWS,eu-west-3,is4gen.xlarge,reserved_1y,no_upfront,0.538049,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:28.214033 +AWS,eu-west-3,is4gen.xlarge,reserved_1y,partial_upfront,0.538049,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:10.024607 +AWS,eu-west-3,is4gen.xlarge,reserved_3y,all_upfront,0.269023,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:42.890642 +AWS,eu-west-3,is4gen.xlarge,reserved_3y,no_upfront,0.269023,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:33.070639 +AWS,eu-west-3,is4gen.xlarge,reserved_3y,partial_upfront,0.269023,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:20.517166 +AWS,eu-west-3,is4gen.xlarge,spot,NA,0.180858,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773387 +AWS,eu-west-3,m5.12xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T09:03:07.294184 +AWS,eu-west-3,m5.12xlarge,reserved_1y,all_upfront,2.150785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:36.478754 +AWS,eu-west-3,m5.12xlarge,reserved_1y,no_upfront,2.150785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:20.201855 +AWS,eu-west-3,m5.12xlarge,reserved_1y,partial_upfront,2.150785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:02.029234 +AWS,eu-west-3,m5.12xlarge,reserved_3y,all_upfront,1.075595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:35.090351 +AWS,eu-west-3,m5.12xlarge,reserved_3y,no_upfront,1.075595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:24.959928 +AWS,eu-west-3,m5.12xlarge,reserved_3y,partial_upfront,1.075595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:12.631143 +AWS,eu-west-3,m5.12xlarge,spot,NA,1.06913,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773226 +AWS,eu-west-3,m5.16xlarge,on_demand,NA,3.584,USD,AWS Pricing API,2025-11-30T09:03:39.430323 +AWS,eu-west-3,m5.16xlarge,reserved_1y,all_upfront,2.894,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:08.981241 +AWS,eu-west-3,m5.16xlarge,reserved_1y,no_upfront,2.894,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:52.819802 +AWS,eu-west-3,m5.16xlarge,reserved_1y,partial_upfront,2.894,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:34.278138 +AWS,eu-west-3,m5.16xlarge,reserved_3y,all_upfront,2.894,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:06.878652 +AWS,eu-west-3,m5.16xlarge,reserved_3y,no_upfront,2.894,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:57.925382 +AWS,eu-west-3,m5.16xlarge,reserved_3y,partial_upfront,2.894,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:44.746429 +AWS,eu-west-3,m5.16xlarge,spot,NA,1.467647,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773792 +AWS,eu-west-3,m5.24xlarge,on_demand,NA,5.376,USD,AWS Pricing API,2025-11-30T09:03:50.742674 +AWS,eu-west-3,m5.24xlarge,reserved_1y,all_upfront,4.051712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:20.332241 +AWS,eu-west-3,m5.24xlarge,reserved_1y,no_upfront,4.051712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:04.360854 +AWS,eu-west-3,m5.24xlarge,reserved_1y,partial_upfront,4.051712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:45.568052 +AWS,eu-west-3,m5.24xlarge,reserved_3y,all_upfront,1.350571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:17.999314 +AWS,eu-west-3,m5.24xlarge,reserved_3y,no_upfront,1.350571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:09.464141 +AWS,eu-west-3,m5.24xlarge,reserved_3y,partial_upfront,1.350571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:55.991726 +AWS,eu-west-3,m5.24xlarge,spot,NA,1.8496,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773962 +AWS,eu-west-3,m5.2xlarge,on_demand,NA,0.448,USD,AWS Pricing API,2025-11-30T09:03:23.137513 +AWS,eu-west-3,m5.2xlarge,reserved_1y,all_upfront,0.362,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:52.442157 +AWS,eu-west-3,m5.2xlarge,reserved_1y,no_upfront,0.362,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:36.226198 +AWS,eu-west-3,m5.2xlarge,reserved_1y,partial_upfront,0.362,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:17.912758 +AWS,eu-west-3,m5.2xlarge,reserved_3y,all_upfront,0.362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:50.712919 +AWS,eu-west-3,m5.2xlarge,reserved_3y,no_upfront,0.362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:41.185490 +AWS,eu-west-3,m5.2xlarge,reserved_3y,partial_upfront,0.362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:28.427140 +AWS,eu-west-3,m5.2xlarge,spot,NA,0.157466,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773553 +AWS,eu-west-3,m5.4xlarge,on_demand,NA,0.896,USD,AWS Pricing API,2025-11-30T09:03:32.332420 +AWS,eu-west-3,m5.4xlarge,reserved_1y,all_upfront,0.716557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:01.838190 +AWS,eu-west-3,m5.4xlarge,reserved_1y,no_upfront,0.716557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:45.608610 +AWS,eu-west-3,m5.4xlarge,reserved_1y,partial_upfront,0.716557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:27.132786 +AWS,eu-west-3,m5.4xlarge,reserved_3y,all_upfront,0.358186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:59.855007 +AWS,eu-west-3,m5.4xlarge,reserved_3y,no_upfront,0.358186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:50.649411 +AWS,eu-west-3,m5.4xlarge,reserved_3y,partial_upfront,0.358186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:37.633902 +AWS,eu-west-3,m5.4xlarge,spot,NA,0.384485,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773667 +AWS,eu-west-3,m5.8xlarge,on_demand,NA,1.792,USD,AWS Pricing API,2025-11-30T09:03:58.635321 +AWS,eu-west-3,m5.8xlarge,reserved_1y,all_upfront,1.433228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:28.330234 +AWS,eu-west-3,m5.8xlarge,reserved_1y,no_upfront,1.433228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:12.394808 +AWS,eu-west-3,m5.8xlarge,reserved_1y,partial_upfront,1.433228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:53.529936 +AWS,eu-west-3,m5.8xlarge,reserved_3y,all_upfront,0.716409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:25.778252 +AWS,eu-west-3,m5.8xlarge,reserved_3y,no_upfront,0.716409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:17.732064 +AWS,eu-west-3,m5.8xlarge,reserved_3y,partial_upfront,0.716409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:03.991593 +AWS,eu-west-3,m5.8xlarge,spot,NA,0.853793,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774106 +AWS,eu-west-3,m5.large,on_demand,NA,0.112,USD,AWS Pricing API,2025-11-30T09:03:23.538472 +AWS,eu-west-3,m5.large,reserved_1y,all_upfront,0.084361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:52.841599 +AWS,eu-west-3,m5.large,reserved_1y,no_upfront,0.084361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:36.630395 +AWS,eu-west-3,m5.large,reserved_1y,partial_upfront,0.084361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:18.312374 +AWS,eu-west-3,m5.large,reserved_3y,all_upfront,0.02812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:51.110253 +AWS,eu-west-3,m5.large,reserved_3y,no_upfront,0.02812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:41.595889 +AWS,eu-west-3,m5.large,reserved_3y,partial_upfront,0.02812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:28.825639 +AWS,eu-west-3,m5.large,spot,NA,0.041051,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773541 +AWS,eu-west-3,m5.xlarge,on_demand,NA,0.224,USD,AWS Pricing API,2025-11-30T09:03:56.485590 +AWS,eu-west-3,m5.xlarge,reserved_1y,all_upfront,0.131735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:26.162810 +AWS,eu-west-3,m5.xlarge,reserved_1y,no_upfront,0.131735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:10.221641 +AWS,eu-west-3,m5.xlarge,reserved_1y,partial_upfront,0.131735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:51.360590 +AWS,eu-west-3,m5.xlarge,reserved_3y,all_upfront,0.043912,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:23.662628 +AWS,eu-west-3,m5.xlarge,reserved_3y,no_upfront,0.043912,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:15.519642 +AWS,eu-west-3,m5.xlarge,reserved_3y,partial_upfront,0.043912,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:01.829886 +AWS,eu-west-3,m5.xlarge,spot,NA,0.081724,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774041 +AWS,eu-west-3,m5a.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T09:03:24.075163 +AWS,eu-west-3,m5a.12xlarge,reserved_1y,all_upfront,3.760845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:53.391845 +AWS,eu-west-3,m5a.12xlarge,reserved_1y,no_upfront,3.760845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:37.176388 +AWS,eu-west-3,m5a.12xlarge,reserved_1y,partial_upfront,3.760845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:18.845937 +AWS,eu-west-3,m5a.12xlarge,reserved_3y,all_upfront,1.253615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:51.646479 +AWS,eu-west-3,m5a.12xlarge,reserved_3y,no_upfront,1.253615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:42.145304 +AWS,eu-west-3,m5a.12xlarge,reserved_3y,partial_upfront,1.253615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:29.361733 +AWS,eu-west-3,m5a.12xlarge,spot,NA,0.852688,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773549 +AWS,eu-west-3,m5a.16xlarge,on_demand,NA,3.232,USD,AWS Pricing API,2025-11-30T09:03:41.178680 +AWS,eu-west-3,m5a.16xlarge,reserved_1y,all_upfront,2.437329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:10.742100 +AWS,eu-west-3,m5a.16xlarge,reserved_1y,no_upfront,2.437329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:54.584139 +AWS,eu-west-3,m5a.16xlarge,reserved_1y,partial_upfront,2.437329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:36.021549 +AWS,eu-west-3,m5a.16xlarge,reserved_3y,all_upfront,0.812443,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:08.616591 +AWS,eu-west-3,m5a.16xlarge,reserved_3y,no_upfront,0.812443,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:59.701362 +AWS,eu-west-3,m5a.16xlarge,reserved_3y,partial_upfront,0.812443,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:46.501709 +AWS,eu-west-3,m5a.16xlarge,spot,NA,0.869121,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773819 +AWS,eu-west-3,m5a.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T09:03:16.821404 +AWS,eu-west-3,m5a.24xlarge,reserved_1y,all_upfront,3.87879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:46.041666 +AWS,eu-west-3,m5a.24xlarge,reserved_1y,no_upfront,3.87879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:29.842706 +AWS,eu-west-3,m5a.24xlarge,reserved_1y,partial_upfront,3.87879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:11.629178 +AWS,eu-west-3,m5a.24xlarge,reserved_3y,all_upfront,1.939597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:44.493458 +AWS,eu-west-3,m5a.24xlarge,reserved_3y,no_upfront,1.939597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:34.711791 +AWS,eu-west-3,m5a.24xlarge,reserved_3y,partial_upfront,1.939597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:22.135630 +AWS,eu-west-3,m5a.24xlarge,spot,NA,1.096075,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773408 +AWS,eu-west-3,m5a.2xlarge,on_demand,NA,0.404,USD,AWS Pricing API,2025-11-30T09:03:09.439420 +AWS,eu-west-3,m5a.2xlarge,reserved_1y,all_upfront,0.326,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:38.631587 +AWS,eu-west-3,m5a.2xlarge,reserved_1y,no_upfront,0.326,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:22.375838 +AWS,eu-west-3,m5a.2xlarge,reserved_1y,partial_upfront,0.326,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:04.218110 +AWS,eu-west-3,m5a.2xlarge,reserved_3y,all_upfront,0.326,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:37.217926 +AWS,eu-west-3,m5a.2xlarge,reserved_3y,no_upfront,0.326,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:27.177141 +AWS,eu-west-3,m5a.2xlarge,reserved_3y,partial_upfront,0.326,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:14.760671 +AWS,eu-west-3,m5a.2xlarge,spot,NA,0.188082,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773239 +AWS,eu-west-3,m5a.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T09:03:49.362160 +AWS,eu-west-3,m5a.4xlarge,reserved_1y,all_upfront,0.911416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:18.966555 +AWS,eu-west-3,m5a.4xlarge,reserved_1y,no_upfront,0.911416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:02.996025 +AWS,eu-west-3,m5a.4xlarge,reserved_1y,partial_upfront,0.911416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:44.224319 +AWS,eu-west-3,m5a.4xlarge,reserved_3y,all_upfront,0.303805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:16.667857 +AWS,eu-west-3,m5a.4xlarge,reserved_3y,no_upfront,0.303805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:08.072529 +AWS,eu-west-3,m5a.4xlarge,reserved_3y,partial_upfront,0.303805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:54.653511 +AWS,eu-west-3,m5a.4xlarge,spot,NA,0.335308,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773945 +AWS,eu-west-3,m5a.8xlarge,on_demand,NA,1.616,USD,AWS Pricing API,2025-11-30T09:03:00.463264 +AWS,eu-west-3,m5a.8xlarge,reserved_1y,all_upfront,0.950228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:29.741968 +AWS,eu-west-3,m5a.8xlarge,reserved_1y,no_upfront,0.950228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:13.377040 +AWS,eu-west-3,m5a.8xlarge,reserved_1y,partial_upfront,0.950228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:55.307868 +AWS,eu-west-3,m5a.8xlarge,reserved_3y,all_upfront,0.316743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:28.473331 +AWS,eu-west-3,m5a.8xlarge,reserved_3y,no_upfront,0.316743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:18.045220 +AWS,eu-west-3,m5a.8xlarge,reserved_3y,partial_upfront,0.316743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:05.911371 +AWS,eu-west-3,m5a.8xlarge,spot,NA,0.860863,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773089 +AWS,eu-west-3,m5a.large,on_demand,NA,0.101,USD,AWS Pricing API,2025-11-30T09:03:19.241711 +AWS,eu-west-3,m5a.large,reserved_1y,all_upfront,0.077813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:48.476153 +AWS,eu-west-3,m5a.large,reserved_1y,no_upfront,0.077813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:32.301000 +AWS,eu-west-3,m5a.large,reserved_1y,partial_upfront,0.077813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:14.034439 +AWS,eu-west-3,m5a.large,reserved_3y,all_upfront,0.051938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:46.883971 +AWS,eu-west-3,m5a.large,reserved_3y,no_upfront,0.051938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:37.203691 +AWS,eu-west-3,m5a.large,reserved_3y,partial_upfront,0.051938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:24.538480 +AWS,eu-west-3,m5a.large,spot,NA,0.040539,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773478 +AWS,eu-west-3,m5a.xlarge,on_demand,NA,0.202,USD,AWS Pricing API,2025-11-30T09:03:21.240151 +AWS,eu-west-3,m5a.xlarge,reserved_1y,all_upfront,0.152283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:50.534912 +AWS,eu-west-3,m5a.xlarge,reserved_1y,no_upfront,0.152283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:34.330508 +AWS,eu-west-3,m5a.xlarge,reserved_1y,partial_upfront,0.152283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:16.040668 +AWS,eu-west-3,m5a.xlarge,reserved_3y,all_upfront,0.050761,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:48.850723 +AWS,eu-west-3,m5a.xlarge,reserved_3y,no_upfront,0.050761,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:39.262412 +AWS,eu-west-3,m5a.xlarge,reserved_3y,partial_upfront,0.050761,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:26.548930 +AWS,eu-west-3,m5a.xlarge,spot,NA,0.094855,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773487 +AWS,eu-west-3,m5d.12xlarge,on_demand,NA,3.168,USD,AWS Pricing API,2025-11-30T09:02:51.793538 +AWS,eu-west-3,m5d.12xlarge,reserved_1y,all_upfront,1.813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:21.081518 +AWS,eu-west-3,m5d.12xlarge,reserved_1y,no_upfront,1.813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:04.588912 +AWS,eu-west-3,m5d.12xlarge,reserved_1y,partial_upfront,1.813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:46.689007 +AWS,eu-west-3,m5d.12xlarge,reserved_3y,all_upfront,1.813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:19.974561 +AWS,eu-west-3,m5d.12xlarge,reserved_3y,no_upfront,1.813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:09.252448 +AWS,eu-west-3,m5d.12xlarge,reserved_3y,partial_upfront,1.813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:57.316906 +AWS,eu-west-3,m5d.12xlarge,spot,NA,1.119718,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772958 +AWS,eu-west-3,m5d.16xlarge,on_demand,NA,4.224,USD,AWS Pricing API,2025-11-30T09:03:36.342023 +AWS,eu-west-3,m5d.16xlarge,reserved_1y,all_upfront,2.661,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:05.885326 +AWS,eu-west-3,m5d.16xlarge,reserved_1y,no_upfront,2.661,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:49.695109 +AWS,eu-west-3,m5d.16xlarge,reserved_1y,partial_upfront,2.661,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:31.169131 +AWS,eu-west-3,m5d.16xlarge,reserved_3y,all_upfront,2.661,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:03.822084 +AWS,eu-west-3,m5d.16xlarge,reserved_3y,no_upfront,2.661,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:54.748712 +AWS,eu-west-3,m5d.16xlarge,reserved_3y,partial_upfront,2.661,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:41.643572 +AWS,eu-west-3,m5d.16xlarge,spot,NA,1.41052,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773721 +AWS,eu-west-3,m5d.24xlarge,on_demand,NA,6.336,USD,AWS Pricing API,2025-11-30T09:03:20.182499 +AWS,eu-west-3,m5d.24xlarge,reserved_1y,all_upfront,3.992,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:49.437059 +AWS,eu-west-3,m5d.24xlarge,reserved_1y,no_upfront,3.992,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:33.249410 +AWS,eu-west-3,m5d.24xlarge,reserved_1y,partial_upfront,3.992,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:14.970781 +AWS,eu-west-3,m5d.24xlarge,reserved_3y,all_upfront,3.992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:47.803802 +AWS,eu-west-3,m5d.24xlarge,reserved_3y,no_upfront,3.992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:38.169285 +AWS,eu-west-3,m5d.24xlarge,reserved_3y,partial_upfront,3.992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:25.478355 +AWS,eu-west-3,m5d.24xlarge,spot,NA,1.639903,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773470 +AWS,eu-west-3,m5d.2xlarge,on_demand,NA,0.528,USD,AWS Pricing API,2025-11-30T09:03:04.714124 +AWS,eu-west-3,m5d.2xlarge,reserved_1y,all_upfront,0.426,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:33.908726 +AWS,eu-west-3,m5d.2xlarge,reserved_1y,no_upfront,0.426,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:17.637948 +AWS,eu-west-3,m5d.2xlarge,reserved_1y,partial_upfront,0.426,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:59.453516 +AWS,eu-west-3,m5d.2xlarge,reserved_3y,all_upfront,0.426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:32.566796 +AWS,eu-west-3,m5d.2xlarge,reserved_3y,no_upfront,0.426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:22.329531 +AWS,eu-west-3,m5d.2xlarge,reserved_3y,partial_upfront,0.426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:10.102270 +AWS,eu-west-3,m5d.2xlarge,spot,NA,0.187159,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773190 +AWS,eu-west-3,m5d.4xlarge,on_demand,NA,1.056,USD,AWS Pricing API,2025-11-30T09:03:15.746696 +AWS,eu-west-3,m5d.4xlarge,reserved_1y,all_upfront,0.62089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:44.963910 +AWS,eu-west-3,m5d.4xlarge,reserved_1y,no_upfront,0.62089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:28.759642 +AWS,eu-west-3,m5d.4xlarge,reserved_1y,partial_upfront,0.62089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:10.561286 +AWS,eu-west-3,m5d.4xlarge,reserved_3y,all_upfront,0.206963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:43.425673 +AWS,eu-west-3,m5d.4xlarge,reserved_3y,no_upfront,0.206963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:33.619510 +AWS,eu-west-3,m5d.4xlarge,reserved_3y,partial_upfront,0.206963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:21.047155 +AWS,eu-west-3,m5d.4xlarge,spot,NA,0.401366,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773391 +AWS,eu-west-3,m5d.8xlarge,on_demand,NA,2.112,USD,AWS Pricing API,2025-11-30T09:03:58.499190 +AWS,eu-west-3,m5d.8xlarge,reserved_1y,all_upfront,1.589269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:28.195684 +AWS,eu-west-3,m5d.8xlarge,reserved_1y,no_upfront,1.589269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:12.260920 +AWS,eu-west-3,m5d.8xlarge,reserved_1y,partial_upfront,1.589269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:53.394245 +AWS,eu-west-3,m5d.8xlarge,reserved_3y,all_upfront,0.529756,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:25.646507 +AWS,eu-west-3,m5d.8xlarge,reserved_3y,no_upfront,0.529756,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:17.595213 +AWS,eu-west-3,m5d.8xlarge,reserved_3y,partial_upfront,0.529756,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:03.856981 +AWS,eu-west-3,m5d.8xlarge,spot,NA,0.899844,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774101 +AWS,eu-west-3,m5d.large,on_demand,NA,0.132,USD,AWS Pricing API,2025-11-30T09:02:55.599599 +AWS,eu-west-3,m5d.large,reserved_1y,all_upfront,0.106,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:24.829000 +AWS,eu-west-3,m5d.large,reserved_1y,no_upfront,0.106,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:08.416507 +AWS,eu-west-3,m5d.large,reserved_1y,partial_upfront,0.106,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:50.462951 +AWS,eu-west-3,m5d.large,reserved_3y,all_upfront,0.106,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:23.718519 +AWS,eu-west-3,m5d.large,reserved_3y,no_upfront,0.106,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:13.094452 +AWS,eu-west-3,m5d.large,reserved_3y,partial_upfront,0.106,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:01.056681 +AWS,eu-west-3,m5d.large,spot,NA,0.052258,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773028 +AWS,eu-west-3,m5d.xlarge,on_demand,NA,0.264,USD,AWS Pricing API,2025-11-30T09:03:11.582729 +AWS,eu-west-3,m5d.xlarge,reserved_1y,all_upfront,0.151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:40.810330 +AWS,eu-west-3,m5d.xlarge,reserved_1y,no_upfront,0.151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:24.540821 +AWS,eu-west-3,m5d.xlarge,reserved_1y,partial_upfront,0.151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:06.380585 +AWS,eu-west-3,m5d.xlarge,reserved_3y,all_upfront,0.151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:39.334802 +AWS,eu-west-3,m5d.xlarge,reserved_3y,no_upfront,0.151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:29.362652 +AWS,eu-west-3,m5d.xlarge,reserved_3y,partial_upfront,0.151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:16.912500 +AWS,eu-west-3,m5d.xlarge,spot,NA,0.099419,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773306 +AWS,eu-west-3,m6g.12xlarge,on_demand,NA,2.16,USD,AWS Pricing API,2025-11-30T09:03:05.962041 +AWS,eu-west-3,m6g.12xlarge,reserved_1y,all_upfront,1.3608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:35.118451 +AWS,eu-west-3,m6g.12xlarge,reserved_1y,no_upfront,1.3608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:18.852889 +AWS,eu-west-3,m6g.12xlarge,reserved_1y,partial_upfront,1.3608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:00.678477 +AWS,eu-west-3,m6g.12xlarge,reserved_3y,all_upfront,1.3608,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:33.770344 +AWS,eu-west-3,m6g.12xlarge,reserved_3y,no_upfront,1.3608,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:23.571423 +AWS,eu-west-3,m6g.12xlarge,reserved_3y,partial_upfront,1.3608,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:11.301091 +AWS,eu-west-3,m6g.12xlarge,spot,NA,0.872111,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773194 +AWS,eu-west-3,m6g.16xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T09:03:01.281976 +AWS,eu-west-3,m6g.16xlarge,reserved_1y,all_upfront,1.8144,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:30.551869 +AWS,eu-west-3,m6g.16xlarge,reserved_1y,no_upfront,1.8144,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:14.200843 +AWS,eu-west-3,m6g.16xlarge,reserved_1y,partial_upfront,1.8144,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:56.120267 +AWS,eu-west-3,m6g.16xlarge,reserved_3y,all_upfront,1.8144,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:29.271675 +AWS,eu-west-3,m6g.16xlarge,reserved_3y,no_upfront,1.8144,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:18.881874 +AWS,eu-west-3,m6g.16xlarge,reserved_3y,partial_upfront,1.8144,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:06.717834 +AWS,eu-west-3,m6g.16xlarge,spot,NA,0.997982,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773109 +AWS,eu-west-3,m6g.2xlarge,on_demand,NA,0.36,USD,AWS Pricing API,2025-11-30T09:03:21.795209 +AWS,eu-west-3,m6g.2xlarge,reserved_1y,all_upfront,0.215991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:51.093451 +AWS,eu-west-3,m6g.2xlarge,reserved_1y,no_upfront,0.215991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:34.873552 +AWS,eu-west-3,m6g.2xlarge,reserved_1y,partial_upfront,0.215991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:16.571814 +AWS,eu-west-3,m6g.2xlarge,reserved_3y,all_upfront,0.143997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:49.388270 +AWS,eu-west-3,m6g.2xlarge,reserved_3y,no_upfront,0.143997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:39.810896 +AWS,eu-west-3,m6g.2xlarge,reserved_3y,partial_upfront,0.143997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:27.084286 +AWS,eu-west-3,m6g.2xlarge,spot,NA,0.134976,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773519 +AWS,eu-west-3,m6g.4xlarge,on_demand,NA,0.72,USD,AWS Pricing API,2025-11-30T09:03:47.852535 +AWS,eu-west-3,m6g.4xlarge,reserved_1y,all_upfront,0.423402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:17.474344 +AWS,eu-west-3,m6g.4xlarge,reserved_1y,no_upfront,0.423402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:01.466754 +AWS,eu-west-3,m6g.4xlarge,reserved_1y,partial_upfront,0.423402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:42.743035 +AWS,eu-west-3,m6g.4xlarge,reserved_3y,all_upfront,0.141134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:15.212852 +AWS,eu-west-3,m6g.4xlarge,reserved_3y,no_upfront,0.141134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:06.560438 +AWS,eu-west-3,m6g.4xlarge,reserved_3y,partial_upfront,0.141134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:53.169898 +AWS,eu-west-3,m6g.4xlarge,spot,NA,0.31207,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773917 +AWS,eu-west-3,m6g.8xlarge,on_demand,NA,1.44,USD,AWS Pricing API,2025-11-30T09:03:29.149386 +AWS,eu-west-3,m6g.8xlarge,reserved_1y,all_upfront,1.1592,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:58.608054 +AWS,eu-west-3,m6g.8xlarge,reserved_1y,no_upfront,1.1592,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:42.338472 +AWS,eu-west-3,m6g.8xlarge,reserved_1y,partial_upfront,1.1592,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:23.942257 +AWS,eu-west-3,m6g.8xlarge,reserved_3y,all_upfront,1.1592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:56.687687 +AWS,eu-west-3,m6g.8xlarge,reserved_3y,no_upfront,1.1592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:47.362101 +AWS,eu-west-3,m6g.8xlarge,reserved_3y,partial_upfront,1.1592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:34.416157 +AWS,eu-west-3,m6g.8xlarge,spot,NA,0.618853,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773624 +AWS,eu-west-3,m6g.large,on_demand,NA,0.09,USD,AWS Pricing API,2025-11-30T09:03:06.495478 +AWS,eu-west-3,m6g.large,reserved_1y,all_upfront,0.0725,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:35.674996 +AWS,eu-west-3,m6g.large,reserved_1y,no_upfront,0.0725,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:19.388401 +AWS,eu-west-3,m6g.large,reserved_1y,partial_upfront,0.0725,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:01.214780 +AWS,eu-west-3,m6g.large,reserved_3y,all_upfront,0.0725,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:34.290607 +AWS,eu-west-3,m6g.large,reserved_3y,no_upfront,0.0725,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:24.119654 +AWS,eu-west-3,m6g.large,reserved_3y,partial_upfront,0.0725,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:11.836957 +AWS,eu-west-3,m6g.large,spot,NA,0.033653,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773210 +AWS,eu-west-3,m6g.xlarge,on_demand,NA,0.18,USD,AWS Pricing API,2025-11-30T09:03:20.046695 +AWS,eu-west-3,m6g.xlarge,reserved_1y,all_upfront,0.1037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:49.301953 +AWS,eu-west-3,m6g.xlarge,reserved_1y,no_upfront,0.1037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:33.111703 +AWS,eu-west-3,m6g.xlarge,reserved_1y,partial_upfront,0.1037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:14.837814 +AWS,eu-west-3,m6g.xlarge,reserved_3y,all_upfront,0.1037,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:47.667216 +AWS,eu-west-3,m6g.xlarge,reserved_3y,no_upfront,0.1037,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:38.028854 +AWS,eu-west-3,m6g.xlarge,reserved_3y,partial_upfront,0.1037,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:25.345611 +AWS,eu-west-3,m6g.xlarge,spot,NA,0.056642,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773474 +AWS,eu-west-3,m6gd.12xlarge,on_demand,NA,2.5344,USD,AWS Pricing API,2025-11-30T09:03:37.686436 +AWS,eu-west-3,m6gd.12xlarge,reserved_1y,all_upfront,2.85879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:07.230505 +AWS,eu-west-3,m6gd.12xlarge,reserved_1y,no_upfront,2.85879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:51.048303 +AWS,eu-west-3,m6gd.12xlarge,reserved_1y,partial_upfront,2.85879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:32.527536 +AWS,eu-west-3,m6gd.12xlarge,reserved_3y,all_upfront,0.95293,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:05.159154 +AWS,eu-west-3,m6gd.12xlarge,reserved_3y,no_upfront,0.95293,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:56.146911 +AWS,eu-west-3,m6gd.12xlarge,reserved_3y,partial_upfront,0.95293,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:42.980200 +AWS,eu-west-3,m6gd.12xlarge,spot,NA,1.008808,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773760 +AWS,eu-west-3,m6gd.16xlarge,on_demand,NA,3.3792,USD,AWS Pricing API,2025-11-30T09:03:39.953498 +AWS,eu-west-3,m6gd.16xlarge,reserved_1y,all_upfront,2.1289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:09.513746 +AWS,eu-west-3,m6gd.16xlarge,reserved_1y,no_upfront,2.1289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:53.363257 +AWS,eu-west-3,m6gd.16xlarge,reserved_1y,partial_upfront,2.1289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:34.814427 +AWS,eu-west-3,m6gd.16xlarge,reserved_3y,all_upfront,2.1289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:07.412157 +AWS,eu-west-3,m6gd.16xlarge,reserved_3y,no_upfront,2.1289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:58.467054 +AWS,eu-west-3,m6gd.16xlarge,reserved_3y,partial_upfront,2.1289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:45.281729 +AWS,eu-west-3,m6gd.16xlarge,spot,NA,1.172503,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773799 +AWS,eu-west-3,m6gd.2xlarge,on_demand,NA,0.4224,USD,AWS Pricing API,2025-11-30T09:03:08.631129 +AWS,eu-west-3,m6gd.2xlarge,reserved_1y,all_upfront,0.324415,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:37.810360 +AWS,eu-west-3,m6gd.2xlarge,reserved_1y,no_upfront,0.324415,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:21.559381 +AWS,eu-west-3,m6gd.2xlarge,reserved_1y,partial_upfront,0.324415,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:03.390393 +AWS,eu-west-3,m6gd.2xlarge,reserved_3y,all_upfront,0.216272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:36.426039 +AWS,eu-west-3,m6gd.2xlarge,reserved_3y,no_upfront,0.216272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:26.345373 +AWS,eu-west-3,m6gd.2xlarge,reserved_3y,partial_upfront,0.216272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:13.959611 +AWS,eu-west-3,m6gd.2xlarge,spot,NA,0.12347,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773242 +AWS,eu-west-3,m6gd.4xlarge,on_demand,NA,0.8448,USD,AWS Pricing API,2025-11-30T09:03:34.872642 +AWS,eu-west-3,m6gd.4xlarge,reserved_1y,all_upfront,0.5322,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:04.399974 +AWS,eu-west-3,m6gd.4xlarge,reserved_1y,no_upfront,0.5322,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:48.198310 +AWS,eu-west-3,m6gd.4xlarge,reserved_1y,partial_upfront,0.5322,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:29.684958 +AWS,eu-west-3,m6gd.4xlarge,reserved_3y,all_upfront,0.5322,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:02.378130 +AWS,eu-west-3,m6gd.4xlarge,reserved_3y,no_upfront,0.5322,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:53.252594 +AWS,eu-west-3,m6gd.4xlarge,reserved_3y,partial_upfront,0.5322,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:40.166285 +AWS,eu-west-3,m6gd.4xlarge,spot,NA,0.333273,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773690 +AWS,eu-west-3,m6gd.8xlarge,on_demand,NA,1.6896,USD,AWS Pricing API,2025-11-30T09:02:57.331464 +AWS,eu-west-3,m6gd.8xlarge,reserved_1y,all_upfront,1.3621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:26.594140 +AWS,eu-west-3,m6gd.8xlarge,reserved_1y,no_upfront,1.3621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:10.208010 +AWS,eu-west-3,m6gd.8xlarge,reserved_1y,partial_upfront,1.3621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:52.203573 +AWS,eu-west-3,m6gd.8xlarge,reserved_3y,all_upfront,1.3621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:25.450718 +AWS,eu-west-3,m6gd.8xlarge,reserved_3y,no_upfront,1.3621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:14.870176 +AWS,eu-west-3,m6gd.8xlarge,reserved_3y,partial_upfront,1.3621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:02.824925 +AWS,eu-west-3,m6gd.8xlarge,spot,NA,0.72495,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773040 +AWS,eu-west-3,m6gd.large,on_demand,NA,0.1056,USD,AWS Pricing API,2025-11-30T09:03:18.704224 +AWS,eu-west-3,m6gd.large,reserved_1y,all_upfront,0.081025,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:47.938280 +AWS,eu-west-3,m6gd.large,reserved_1y,no_upfront,0.081025,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:31.763386 +AWS,eu-west-3,m6gd.large,reserved_1y,partial_upfront,0.081025,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:13.500904 +AWS,eu-west-3,m6gd.large,reserved_3y,all_upfront,0.054008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:46.347879 +AWS,eu-west-3,m6gd.large,reserved_3y,no_upfront,0.054008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:36.656798 +AWS,eu-west-3,m6gd.large,reserved_3y,partial_upfront,0.054008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:24.006698 +AWS,eu-west-3,m6gd.large,spot,NA,0.03862,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773449 +AWS,eu-west-3,m6gd.xlarge,on_demand,NA,0.2112,USD,AWS Pricing API,2025-11-30T09:03:11.985308 +AWS,eu-west-3,m6gd.xlarge,reserved_1y,all_upfront,0.1209,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:41.211943 +AWS,eu-west-3,m6gd.xlarge,reserved_1y,no_upfront,0.1209,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:24.951491 +AWS,eu-west-3,m6gd.xlarge,reserved_1y,partial_upfront,0.1209,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:06.782189 +AWS,eu-west-3,m6gd.xlarge,reserved_3y,all_upfront,0.1209,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:39.728118 +AWS,eu-west-3,m6gd.xlarge,reserved_3y,no_upfront,0.1209,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:29.772410 +AWS,eu-west-3,m6gd.xlarge,reserved_3y,partial_upfront,0.1209,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:17.322938 +AWS,eu-west-3,m6gd.xlarge,spot,NA,0.077211,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773288 +AWS,eu-west-3,m6i.12xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T09:02:58.139269 +AWS,eu-west-3,m6i.12xlarge,reserved_1y,all_upfront,1.22472,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:27.396785 +AWS,eu-west-3,m6i.12xlarge,reserved_1y,no_upfront,1.22472,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:11.056072 +AWS,eu-west-3,m6i.12xlarge,reserved_1y,partial_upfront,1.22472,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:53.011796 +AWS,eu-west-3,m6i.12xlarge,reserved_3y,all_upfront,1.22472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:26.235360 +AWS,eu-west-3,m6i.12xlarge,reserved_3y,no_upfront,1.22472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:15.712375 +AWS,eu-west-3,m6i.12xlarge,reserved_3y,partial_upfront,1.22472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:03.639164 +AWS,eu-west-3,m6i.12xlarge,spot,NA,1.306722,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773061 +AWS,eu-west-3,m6i.16xlarge,on_demand,NA,3.584,USD,AWS Pricing API,2025-11-30T09:03:12.652875 +AWS,eu-west-3,m6i.16xlarge,reserved_1y,all_upfront,2.36376,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:41.880925 +AWS,eu-west-3,m6i.16xlarge,reserved_1y,no_upfront,2.36376,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:25.629062 +AWS,eu-west-3,m6i.16xlarge,reserved_1y,partial_upfront,2.36376,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:07.455540 +AWS,eu-west-3,m6i.16xlarge,reserved_3y,all_upfront,2.36376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:40.390448 +AWS,eu-west-3,m6i.16xlarge,reserved_3y,no_upfront,2.36376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:30.464151 +AWS,eu-west-3,m6i.16xlarge,reserved_3y,partial_upfront,2.36376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:17.987851 +AWS,eu-west-3,m6i.16xlarge,spot,NA,1.480649,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773341 +AWS,eu-west-3,m6i.24xlarge,on_demand,NA,5.376,USD,AWS Pricing API,2025-11-30T09:03:14.142540 +AWS,eu-west-3,m6i.24xlarge,reserved_1y,all_upfront,2.44944,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:43.346390 +AWS,eu-west-3,m6i.24xlarge,reserved_1y,no_upfront,2.44944,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:27.135385 +AWS,eu-west-3,m6i.24xlarge,reserved_1y,partial_upfront,2.44944,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:08.930095 +AWS,eu-west-3,m6i.24xlarge,reserved_3y,all_upfront,2.44944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:41.845478 +AWS,eu-west-3,m6i.24xlarge,reserved_3y,no_upfront,2.44944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:31.982578 +AWS,eu-west-3,m6i.24xlarge,reserved_3y,partial_upfront,2.44944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:19.454345 +AWS,eu-west-3,m6i.24xlarge,spot,NA,2.144607,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773374 +AWS,eu-west-3,m6i.2xlarge,on_demand,NA,0.448,USD,AWS Pricing API,2025-11-30T09:03:32.732623 +AWS,eu-west-3,m6i.2xlarge,reserved_1y,all_upfront,0.317123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:02.245215 +AWS,eu-west-3,m6i.2xlarge,reserved_1y,no_upfront,0.317123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:46.019145 +AWS,eu-west-3,m6i.2xlarge,reserved_1y,partial_upfront,0.317123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:27.535173 +AWS,eu-west-3,m6i.2xlarge,reserved_3y,all_upfront,0.105708,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:00.246773 +AWS,eu-west-3,m6i.2xlarge,reserved_3y,no_upfront,0.105708,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:51.063466 +AWS,eu-west-3,m6i.2xlarge,reserved_3y,partial_upfront,0.105708,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:38.034627 +AWS,eu-west-3,m6i.2xlarge,spot,NA,0.214515,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773682 +AWS,eu-west-3,m6i.32xlarge,on_demand,NA,7.168,USD,AWS Pricing API,2025-11-30T09:03:49.089535 +AWS,eu-west-3,m6i.32xlarge,reserved_1y,all_upfront,5.4362,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:18.697706 +AWS,eu-west-3,m6i.32xlarge,reserved_1y,no_upfront,5.4362,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:02.718676 +AWS,eu-west-3,m6i.32xlarge,reserved_1y,partial_upfront,5.4362,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:43.950553 +AWS,eu-west-3,m6i.32xlarge,reserved_3y,all_upfront,5.4362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:16.405853 +AWS,eu-west-3,m6i.32xlarge,reserved_3y,no_upfront,5.4362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:07.790428 +AWS,eu-west-3,m6i.32xlarge,reserved_3y,partial_upfront,5.4362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:54.387137 +AWS,eu-west-3,m6i.32xlarge,spot,NA,2.066308,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773920 +AWS,eu-west-3,m6i.4xlarge,on_demand,NA,0.896,USD,AWS Pricing API,2025-11-30T09:03:00.320542 +AWS,eu-west-3,m6i.4xlarge,reserved_1y,all_upfront,1.281621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:29.541721 +AWS,eu-west-3,m6i.4xlarge,reserved_1y,no_upfront,1.281621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:13.239798 +AWS,eu-west-3,m6i.4xlarge,reserved_1y,partial_upfront,1.281621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:55.172064 +AWS,eu-west-3,m6i.4xlarge,reserved_3y,all_upfront,0.427207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:28.341661 +AWS,eu-west-3,m6i.4xlarge,reserved_3y,no_upfront,0.427207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:17.909849 +AWS,eu-west-3,m6i.4xlarge,reserved_3y,partial_upfront,0.427207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:05.776943 +AWS,eu-west-3,m6i.4xlarge,spot,NA,0.438581,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773101 +AWS,eu-west-3,m6i.8xlarge,on_demand,NA,1.792,USD,AWS Pricing API,2025-11-30T09:03:05.121483 +AWS,eu-west-3,m6i.8xlarge,reserved_1y,all_upfront,1.125585,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:34.312511 +AWS,eu-west-3,m6i.8xlarge,reserved_1y,no_upfront,1.125585,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:18.045880 +AWS,eu-west-3,m6i.8xlarge,reserved_1y,partial_upfront,1.125585,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:59.853812 +AWS,eu-west-3,m6i.8xlarge,reserved_3y,all_upfront,0.750395,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:32.974342 +AWS,eu-west-3,m6i.8xlarge,reserved_3y,no_upfront,0.750395,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:22.739134 +AWS,eu-west-3,m6i.8xlarge,reserved_3y,partial_upfront,0.750395,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:10.501765 +AWS,eu-west-3,m6i.8xlarge,spot,NA,0.867089,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773166 +AWS,eu-west-3,m6i.large,on_demand,NA,0.112,USD,AWS Pricing API,2025-11-30T09:03:15.609396 +AWS,eu-west-3,m6i.large,reserved_1y,all_upfront,0.07034,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:44.830217 +AWS,eu-west-3,m6i.large,reserved_1y,no_upfront,0.07034,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:28.620313 +AWS,eu-west-3,m6i.large,reserved_1y,partial_upfront,0.07034,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:10.425964 +AWS,eu-west-3,m6i.large,reserved_3y,all_upfront,0.0469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:43.293611 +AWS,eu-west-3,m6i.large,reserved_3y,no_upfront,0.0469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:33.483708 +AWS,eu-west-3,m6i.large,reserved_3y,partial_upfront,0.0469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:20.914108 +AWS,eu-west-3,m6i.large,spot,NA,0.046901,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773400 +AWS,eu-west-3,m6i.xlarge,on_demand,NA,0.224,USD,AWS Pricing API,2025-11-30T09:02:51.659626 +AWS,eu-west-3,m6i.xlarge,reserved_1y,all_upfront,0.1379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:20.946126 +AWS,eu-west-3,m6i.xlarge,reserved_1y,no_upfront,0.1379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:04.452638 +AWS,eu-west-3,m6i.xlarge,reserved_1y,partial_upfront,0.1379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:46.554124 +AWS,eu-west-3,m6i.xlarge,reserved_3y,all_upfront,0.045967,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:19.842904 +AWS,eu-west-3,m6i.xlarge,reserved_3y,no_upfront,0.045967,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:09.116522 +AWS,eu-west-3,m6i.xlarge,reserved_3y,partial_upfront,0.045967,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:57.181243 +AWS,eu-west-3,m6i.xlarge,spot,NA,0.092107,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772971 +AWS,eu-west-3,m7g.12xlarge,on_demand,NA,2.2848,USD,AWS Pricing API,2025-11-30T09:03:09.029879 +AWS,eu-west-3,m7g.12xlarge,reserved_1y,all_upfront,1.7329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:38.216731 +AWS,eu-west-3,m7g.12xlarge,reserved_1y,no_upfront,1.7329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:21.967531 +AWS,eu-west-3,m7g.12xlarge,reserved_1y,partial_upfront,1.7329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:03.799727 +AWS,eu-west-3,m7g.12xlarge,reserved_3y,all_upfront,1.7329,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:36.818428 +AWS,eu-west-3,m7g.12xlarge,reserved_3y,no_upfront,1.7329,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:26.763848 +AWS,eu-west-3,m7g.12xlarge,reserved_3y,partial_upfront,1.7329,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:14.359827 +AWS,eu-west-3,m7g.12xlarge,spot,NA,0.925749,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773255 +AWS,eu-west-3,m7g.16xlarge,on_demand,NA,3.0464,USD,AWS Pricing API,2025-11-30T09:03:37.420885 +AWS,eu-west-3,m7g.16xlarge,reserved_1y,all_upfront,2.0092,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:06.965436 +AWS,eu-west-3,m7g.16xlarge,reserved_1y,no_upfront,2.0092,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:50.777804 +AWS,eu-west-3,m7g.16xlarge,reserved_1y,partial_upfront,2.0092,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:32.260638 +AWS,eu-west-3,m7g.16xlarge,reserved_3y,all_upfront,2.0092,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:04.898385 +AWS,eu-west-3,m7g.16xlarge,reserved_3y,no_upfront,2.0092,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:55.874658 +AWS,eu-west-3,m7g.16xlarge,reserved_3y,partial_upfront,2.0092,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:42.711508 +AWS,eu-west-3,m7g.16xlarge,spot,NA,1.059941,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773737 +AWS,eu-west-3,m7g.2xlarge,on_demand,NA,0.3808,USD,AWS Pricing API,2025-11-30T09:03:00.873821 +AWS,eu-west-3,m7g.2xlarge,reserved_1y,all_upfront,0.234361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:30.150506 +AWS,eu-west-3,m7g.2xlarge,reserved_1y,no_upfront,0.234361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:13.795194 +AWS,eu-west-3,m7g.2xlarge,reserved_1y,partial_upfront,0.234361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:55.712207 +AWS,eu-west-3,m7g.2xlarge,reserved_3y,all_upfront,0.07812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:28.871561 +AWS,eu-west-3,m7g.2xlarge,reserved_3y,no_upfront,0.07812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:18.456679 +AWS,eu-west-3,m7g.2xlarge,reserved_3y,partial_upfront,0.07812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:06.316016 +AWS,eu-west-3,m7g.2xlarge,spot,NA,0.141226,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773104 +AWS,eu-west-3,m7g.4xlarge,on_demand,NA,0.7616,USD,AWS Pricing API,2025-11-30T09:03:56.752846 +AWS,eu-west-3,m7g.4xlarge,reserved_1y,all_upfront,0.539155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:26.439192 +AWS,eu-west-3,m7g.4xlarge,reserved_1y,no_upfront,0.539155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:10.491920 +AWS,eu-west-3,m7g.4xlarge,reserved_1y,partial_upfront,0.539155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:51.647035 +AWS,eu-west-3,m7g.4xlarge,reserved_3y,all_upfront,0.179718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:23.941321 +AWS,eu-west-3,m7g.4xlarge,reserved_3y,no_upfront,0.179718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:15.798554 +AWS,eu-west-3,m7g.4xlarge,reserved_3y,partial_upfront,0.179718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:02.114583 +AWS,eu-west-3,m7g.4xlarge,spot,NA,0.330001,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774071 +AWS,eu-west-3,m7g.8xlarge,on_demand,NA,1.5232,USD,AWS Pricing API,2025-11-30T09:02:52.062378 +AWS,eu-west-3,m7g.8xlarge,reserved_1y,all_upfront,0.956825,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:21.350347 +AWS,eu-west-3,m7g.8xlarge,reserved_1y,no_upfront,0.956825,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:04.875781 +AWS,eu-west-3,m7g.8xlarge,reserved_1y,partial_upfront,0.956825,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:46.952809 +AWS,eu-west-3,m7g.8xlarge,reserved_3y,all_upfront,0.637875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:20.238510 +AWS,eu-west-3,m7g.8xlarge,reserved_3y,no_upfront,0.637875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:09.527856 +AWS,eu-west-3,m7g.8xlarge,reserved_3y,partial_upfront,0.637875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:57.581838 +AWS,eu-west-3,m7g.8xlarge,spot,NA,0.67152,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772979 +AWS,eu-west-3,m7g.large,on_demand,NA,0.0952,USD,AWS Pricing API,2025-11-30T09:03:19.517141 +AWS,eu-west-3,m7g.large,reserved_1y,all_upfront,0.0628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:48.756277 +AWS,eu-west-3,m7g.large,reserved_1y,no_upfront,0.0628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:32.570032 +AWS,eu-west-3,m7g.large,reserved_1y,partial_upfront,0.0628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:14.300995 +AWS,eu-west-3,m7g.large,reserved_3y,all_upfront,0.0628,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:47.149076 +AWS,eu-west-3,m7g.large,reserved_3y,no_upfront,0.0628,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:37.484643 +AWS,eu-west-3,m7g.large,reserved_3y,partial_upfront,0.0628,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:24.817955 +AWS,eu-west-3,m7g.large,spot,NA,0.037774,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773482 +AWS,eu-west-3,m7g.xlarge,on_demand,NA,0.1904,USD,AWS Pricing API,2025-11-30T09:03:26.209569 +AWS,eu-west-3,m7g.xlarge,reserved_1y,all_upfront,0.226484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:55.550470 +AWS,eu-west-3,m7g.xlarge,reserved_1y,no_upfront,0.226484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:39.330104 +AWS,eu-west-3,m7g.xlarge,reserved_1y,partial_upfront,0.226484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:20.985990 +AWS,eu-west-3,m7g.xlarge,reserved_3y,all_upfront,0.075495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:53.776775 +AWS,eu-west-3,m7g.xlarge,reserved_3y,no_upfront,0.075495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:44.340382 +AWS,eu-west-3,m7g.xlarge,reserved_3y,partial_upfront,0.075495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:31.487148 +AWS,eu-west-3,m7g.xlarge,spot,NA,0.064348,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773596 +AWS,eu-west-3,m7gd.12xlarge,on_demand,NA,2.9938,USD,AWS Pricing API,2025-11-30T09:03:00.182997 +AWS,eu-west-3,m7gd.12xlarge,reserved_1y,all_upfront,1.796274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:29.404660 +AWS,eu-west-3,m7gd.12xlarge,reserved_1y,no_upfront,1.796274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:13.103717 +AWS,eu-west-3,m7gd.12xlarge,reserved_1y,partial_upfront,1.796274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:55.038745 +AWS,eu-west-3,m7gd.12xlarge,reserved_3y,all_upfront,1.197491,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:28.206903 +AWS,eu-west-3,m7gd.12xlarge,reserved_3y,no_upfront,1.197491,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:17.768926 +AWS,eu-west-3,m7gd.12xlarge,reserved_3y,partial_upfront,1.197491,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:05.634573 +AWS,eu-west-3,m7gd.12xlarge,spot,NA,1.113442,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773117 +AWS,eu-west-3,m7gd.16xlarge,on_demand,NA,3.9917,USD,AWS Pricing API,2025-11-30T09:03:17.221277 +AWS,eu-west-3,m7gd.16xlarge,reserved_1y,all_upfront,4.502626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:46.445317 +AWS,eu-west-3,m7gd.16xlarge,reserved_1y,no_upfront,4.502626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:30.262159 +AWS,eu-west-3,m7gd.16xlarge,reserved_1y,partial_upfront,4.502626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:12.027641 +AWS,eu-west-3,m7gd.16xlarge,reserved_3y,all_upfront,1.500875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:44.889253 +AWS,eu-west-3,m7gd.16xlarge,reserved_3y,no_upfront,1.500875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:35.121728 +AWS,eu-west-3,m7gd.16xlarge,reserved_3y,partial_upfront,1.500875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:22.545059 +AWS,eu-west-3,m7gd.16xlarge,spot,NA,1.292404,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773428 +AWS,eu-west-3,m7gd.2xlarge,on_demand,NA,0.499,USD,AWS Pricing API,2025-11-30T09:03:32.596325 +AWS,eu-west-3,m7gd.2xlarge,reserved_1y,all_upfront,0.777397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:02.110587 +AWS,eu-west-3,m7gd.2xlarge,reserved_1y,no_upfront,0.777397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:45.883809 +AWS,eu-west-3,m7gd.2xlarge,reserved_1y,partial_upfront,0.777397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:27.399688 +AWS,eu-west-3,m7gd.2xlarge,reserved_3y,all_upfront,0.259132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:00.115894 +AWS,eu-west-3,m7gd.2xlarge,reserved_3y,no_upfront,0.259132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:50.920629 +AWS,eu-west-3,m7gd.2xlarge,reserved_3y,partial_upfront,0.259132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:37.901152 +AWS,eu-west-3,m7gd.2xlarge,spot,NA,0.183397,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773670 +AWS,eu-west-3,m7gd.4xlarge,on_demand,NA,0.9979,USD,AWS Pricing API,2025-11-30T09:03:49.912045 +AWS,eu-west-3,m7gd.4xlarge,reserved_1y,all_upfront,0.750913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:19.520029 +AWS,eu-west-3,m7gd.4xlarge,reserved_1y,no_upfront,0.750913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:03.540256 +AWS,eu-west-3,m7gd.4xlarge,reserved_1y,partial_upfront,0.750913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:44.767130 +AWS,eu-west-3,m7gd.4xlarge,reserved_3y,all_upfront,0.250304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:17.198334 +AWS,eu-west-3,m7gd.4xlarge,reserved_3y,no_upfront,0.250304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:08.626043 +AWS,eu-west-3,m7gd.4xlarge,reserved_3y,partial_upfront,0.250304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:55.187859 +AWS,eu-west-3,m7gd.4xlarge,spot,NA,0.352637,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773969 +AWS,eu-west-3,m7gd.8xlarge,on_demand,NA,1.9958,USD,AWS Pricing API,2025-11-30T09:03:30.332887 +AWS,eu-west-3,m7gd.8xlarge,reserved_1y,all_upfront,1.1423,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:59.815933 +AWS,eu-west-3,m7gd.8xlarge,reserved_1y,no_upfront,1.1423,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:43.566291 +AWS,eu-west-3,m7gd.8xlarge,reserved_1y,partial_upfront,1.1423,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:25.136940 +AWS,eu-west-3,m7gd.8xlarge,reserved_3y,all_upfront,1.1423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:57.874403 +AWS,eu-west-3,m7gd.8xlarge,reserved_3y,no_upfront,1.1423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:48.602441 +AWS,eu-west-3,m7gd.8xlarge,reserved_3y,partial_upfront,1.1423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:35.605789 +AWS,eu-west-3,m7gd.8xlarge,spot,NA,0.879677,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773651 +AWS,eu-west-3,m7gd.large,on_demand,NA,0.1247,USD,AWS Pricing API,2025-11-30T09:03:28.206237 +AWS,eu-west-3,m7gd.large,reserved_1y,all_upfront,0.095845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:57.663119 +AWS,eu-west-3,m7gd.large,reserved_1y,no_upfront,0.095845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:41.392318 +AWS,eu-west-3,m7gd.large,reserved_1y,partial_upfront,0.095845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:23.002721 +AWS,eu-west-3,m7gd.large,reserved_3y,all_upfront,0.063882,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:55.758570 +AWS,eu-west-3,m7gd.large,reserved_3y,no_upfront,0.063882,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:46.404975 +AWS,eu-west-3,m7gd.large,reserved_3y,partial_upfront,0.063882,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:33.483339 +AWS,eu-west-3,m7gd.large,spot,NA,0.036976,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773604 +AWS,eu-west-3,m7gd.xlarge,on_demand,NA,0.2495,USD,AWS Pricing API,2025-11-30T09:03:34.189706 +AWS,eu-west-3,m7gd.xlarge,reserved_1y,all_upfront,0.1572,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:03.725532 +AWS,eu-west-3,m7gd.xlarge,reserved_1y,no_upfront,0.1572,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:47.516876 +AWS,eu-west-3,m7gd.xlarge,reserved_1y,partial_upfront,0.1572,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:29.011749 +AWS,eu-west-3,m7gd.xlarge,reserved_3y,all_upfront,0.1572,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:01.703361 +AWS,eu-west-3,m7gd.xlarge,reserved_3y,no_upfront,0.1572,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:52.566146 +AWS,eu-west-3,m7gd.xlarge,reserved_3y,partial_upfront,0.1572,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:39.497813 +AWS,eu-west-3,m7gd.xlarge,spot,NA,0.077489,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773706 +AWS,eu-west-3,m7i.12xlarge,on_demand,NA,2.8224,USD,AWS Pricing API,2025-11-30T09:03:06.356720 +AWS,eu-west-3,m7i.12xlarge,reserved_1y,all_upfront,1.86148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:35.539014 +AWS,eu-west-3,m7i.12xlarge,reserved_1y,no_upfront,1.86148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:19.254955 +AWS,eu-west-3,m7i.12xlarge,reserved_1y,partial_upfront,1.86148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:01.081164 +AWS,eu-west-3,m7i.12xlarge,reserved_3y,all_upfront,1.86148,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:34.159373 +AWS,eu-west-3,m7i.12xlarge,reserved_3y,no_upfront,1.86148,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:23.983236 +AWS,eu-west-3,m7i.12xlarge,reserved_3y,partial_upfront,1.86148,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:11.698869 +AWS,eu-west-3,m7i.12xlarge,spot,NA,1.417756,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773198 +AWS,eu-west-3,m7i.16xlarge,on_demand,NA,3.7632,USD,AWS Pricing API,2025-11-30T09:03:42.771038 +AWS,eu-west-3,m7i.16xlarge,reserved_1y,all_upfront,2.316553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:12.364573 +AWS,eu-west-3,m7i.16xlarge,reserved_1y,no_upfront,2.316553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:56.232932 +AWS,eu-west-3,m7i.16xlarge,reserved_1y,partial_upfront,2.316553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:37.621910 +AWS,eu-west-3,m7i.16xlarge,reserved_3y,all_upfront,0.772184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:10.198979 +AWS,eu-west-3,m7i.16xlarge,reserved_3y,no_upfront,0.772184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:01.350740 +AWS,eu-west-3,m7i.16xlarge,reserved_3y,partial_upfront,0.772184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:48.112025 +AWS,eu-west-3,m7i.16xlarge,spot,NA,1.527215,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773847 +AWS,eu-west-3,m7i.24xlarge,on_demand,NA,5.6448,USD,AWS Pricing API,2025-11-30T09:03:48.815382 +AWS,eu-west-3,m7i.24xlarge,reserved_1y,all_upfront,4.762856,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:18.430947 +AWS,eu-west-3,m7i.24xlarge,reserved_1y,no_upfront,4.762856,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:02.447462 +AWS,eu-west-3,m7i.24xlarge,reserved_1y,partial_upfront,4.762856,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:43.680979 +AWS,eu-west-3,m7i.24xlarge,reserved_3y,all_upfront,2.381425,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:16.143061 +AWS,eu-west-3,m7i.24xlarge,reserved_3y,no_upfront,2.381425,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:07.520199 +AWS,eu-west-3,m7i.24xlarge,reserved_3y,partial_upfront,2.381425,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:54.121832 +AWS,eu-west-3,m7i.24xlarge,spot,NA,1.851597,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773949 +AWS,eu-west-3,m7i.2xlarge,on_demand,NA,0.4704,USD,AWS Pricing API,2025-11-30T09:03:24.480981 +AWS,eu-west-3,m7i.2xlarge,reserved_1y,all_upfront,0.295457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:53.795551 +AWS,eu-west-3,m7i.2xlarge,reserved_1y,no_upfront,0.295457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:37.579113 +AWS,eu-west-3,m7i.2xlarge,reserved_1y,partial_upfront,0.295457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:19.248501 +AWS,eu-west-3,m7i.2xlarge,reserved_3y,all_upfront,0.196979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:52.039544 +AWS,eu-west-3,m7i.2xlarge,reserved_3y,no_upfront,0.196979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:42.564007 +AWS,eu-west-3,m7i.2xlarge,reserved_3y,partial_upfront,0.196979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:29.759012 +AWS,eu-west-3,m7i.2xlarge,spot,NA,0.204297,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773581 +AWS,eu-west-3,m7i.48xlarge,on_demand,NA,11.2896,USD,AWS Pricing API,2025-11-30T09:02:47.782731 +AWS,eu-west-3,m7i.48xlarge,reserved_1y,all_upfront,7.4459,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:17.052425 +AWS,eu-west-3,m7i.48xlarge,reserved_1y,no_upfront,7.4459,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:00.457732 +AWS,eu-west-3,m7i.48xlarge,reserved_1y,partial_upfront,7.4459,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:42.658005 +AWS,eu-west-3,m7i.48xlarge,reserved_3y,all_upfront,7.4459,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:16.017632 +AWS,eu-west-3,m7i.48xlarge,reserved_3y,no_upfront,7.4459,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:05.045770 +AWS,eu-west-3,m7i.48xlarge,reserved_3y,partial_upfront,7.4459,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:53.287735 +AWS,eu-west-3,m7i.48xlarge,spot,NA,4.064794,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772908 +AWS,eu-west-3,m7i.4xlarge,on_demand,NA,0.9408,USD,AWS Pricing API,2025-11-30T09:03:01.561933 +AWS,eu-west-3,m7i.4xlarge,reserved_1y,all_upfront,0.679486,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:30.823573 +AWS,eu-west-3,m7i.4xlarge,reserved_1y,no_upfront,0.679486,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:14.471832 +AWS,eu-west-3,m7i.4xlarge,reserved_1y,partial_upfront,0.679486,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:56.388208 +AWS,eu-west-3,m7i.4xlarge,reserved_3y,all_upfront,0.453002,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:29.533028 +AWS,eu-west-3,m7i.4xlarge,reserved_3y,no_upfront,0.453002,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:19.165160 +AWS,eu-west-3,m7i.4xlarge,reserved_3y,partial_upfront,0.453002,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:06.986998 +AWS,eu-west-3,m7i.4xlarge,spot,NA,0.4204,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773141 +AWS,eu-west-3,m7i.8xlarge,on_demand,NA,1.8816,USD,AWS Pricing API,2025-11-30T09:03:38.631257 +AWS,eu-west-3,m7i.8xlarge,reserved_1y,all_upfront,1.42699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:08.169905 +AWS,eu-west-3,m7i.8xlarge,reserved_1y,no_upfront,1.42699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:52.004591 +AWS,eu-west-3,m7i.8xlarge,reserved_1y,partial_upfront,1.42699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:33.469373 +AWS,eu-west-3,m7i.8xlarge,reserved_3y,all_upfront,1.42699,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:06.080241 +AWS,eu-west-3,m7i.8xlarge,reserved_3y,no_upfront,1.42699,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:57.105527 +AWS,eu-west-3,m7i.8xlarge,reserved_3y,partial_upfront,1.42699,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:43.939153 +AWS,eu-west-3,m7i.8xlarge,spot,NA,0.92704,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773768 +AWS,eu-west-3,m7i.large,on_demand,NA,0.1176,USD,AWS Pricing API,2025-11-30T09:03:04.574232 +AWS,eu-west-3,m7i.large,reserved_1y,all_upfront,0.06179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:33.774331 +AWS,eu-west-3,m7i.large,reserved_1y,no_upfront,0.06179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:17.495018 +AWS,eu-west-3,m7i.large,reserved_1y,partial_upfront,0.06179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:59.319455 +AWS,eu-west-3,m7i.large,reserved_3y,all_upfront,0.06179,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:32.436529 +AWS,eu-west-3,m7i.large,reserved_3y,no_upfront,0.06179,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:22.192915 +AWS,eu-west-3,m7i.large,reserved_3y,partial_upfront,0.06179,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:09.968340 +AWS,eu-west-3,m7i.large,spot,NA,0.039646,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773186 +AWS,eu-west-3,m7i.metal-24xl,on_demand,NA,5.6448,USD,AWS Pricing API,2025-11-30T09:02:47.918189 +AWS,eu-west-3,m7i.metal-24xl,reserved_1y,all_upfront,3.474772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:17.190159 +AWS,eu-west-3,m7i.metal-24xl,reserved_1y,no_upfront,3.474772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:00.594861 +AWS,eu-west-3,m7i.metal-24xl,reserved_1y,partial_upfront,3.474772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:42.792816 +AWS,eu-west-3,m7i.metal-24xl,reserved_3y,all_upfront,1.158257,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:16.149761 +AWS,eu-west-3,m7i.metal-24xl,reserved_3y,no_upfront,1.158257,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:05.184165 +AWS,eu-west-3,m7i.metal-24xl,reserved_3y,partial_upfront,1.158257,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:53.419235 +AWS,eu-west-3,m7i.metal-24xl,spot,NA,1.867067,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772914 +AWS,eu-west-3,m7i.metal-48xl,on_demand,NA,11.2896,USD,AWS Pricing API,2025-11-30T09:03:28.612762 +AWS,eu-west-3,m7i.metal-48xl,reserved_1y,all_upfront,7.091332,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:58.068466 +AWS,eu-west-3,m7i.metal-48xl,reserved_1y,no_upfront,7.091332,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:41.799681 +AWS,eu-west-3,m7i.metal-48xl,reserved_1y,partial_upfront,7.091332,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:23.406288 +AWS,eu-west-3,m7i.metal-48xl,reserved_3y,all_upfront,4.727557,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:56.156263 +AWS,eu-west-3,m7i.metal-48xl,reserved_3y,no_upfront,4.727557,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:46.816579 +AWS,eu-west-3,m7i.metal-48xl,reserved_3y,partial_upfront,4.727557,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:33.884165 +AWS,eu-west-3,m7i.metal-48xl,spot,NA,2.612678,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773627 +AWS,eu-west-3,m7i.xlarge,on_demand,NA,0.2352,USD,AWS Pricing API,2025-11-30T09:03:50.327921 +AWS,eu-west-3,m7i.xlarge,reserved_1y,all_upfront,0.144749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:19.928380 +AWS,eu-west-3,m7i.xlarge,reserved_1y,no_upfront,0.144749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:03.947718 +AWS,eu-west-3,m7i.xlarge,reserved_1y,partial_upfront,0.144749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:45.168249 +AWS,eu-west-3,m7i.xlarge,reserved_3y,all_upfront,0.04825,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:17.607875 +AWS,eu-west-3,m7i.xlarge,reserved_3y,no_upfront,0.04825,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:09.052224 +AWS,eu-west-3,m7i.xlarge,reserved_3y,partial_upfront,0.04825,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:55.593217 +AWS,eu-west-3,m7i.xlarge,spot,NA,0.096111,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773981 +AWS,eu-west-3,m8g.12xlarge,on_demand,NA,2.51328,USD,AWS Pricing API,2025-11-30T09:03:34.593509 +AWS,eu-west-3,m8g.12xlarge,reserved_1y,all_upfront,1.547146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:04.128575 +AWS,eu-west-3,m8g.12xlarge,reserved_1y,no_upfront,1.547146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:47.924013 +AWS,eu-west-3,m8g.12xlarge,reserved_1y,partial_upfront,1.547146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:29.415664 +AWS,eu-west-3,m8g.12xlarge,reserved_3y,all_upfront,0.515715,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:02.109107 +AWS,eu-west-3,m8g.12xlarge,reserved_3y,no_upfront,0.515715,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:52.977956 +AWS,eu-west-3,m8g.12xlarge,reserved_3y,partial_upfront,0.515715,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:39.897267 +AWS,eu-west-3,m8g.12xlarge,spot,NA,0.630067,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773694 +AWS,eu-west-3,m8g.16xlarge,on_demand,NA,3.35104,USD,AWS Pricing API,2025-11-30T09:02:48.317497 +AWS,eu-west-3,m8g.16xlarge,reserved_1y,all_upfront,2.420534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:17.590203 +AWS,eu-west-3,m8g.16xlarge,reserved_1y,no_upfront,2.420534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:00.997603 +AWS,eu-west-3,m8g.16xlarge,reserved_1y,partial_upfront,2.420534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:43.195756 +AWS,eu-west-3,m8g.16xlarge,reserved_3y,all_upfront,1.613685,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:16.553659 +AWS,eu-west-3,m8g.16xlarge,reserved_3y,no_upfront,1.613685,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:05.623263 +AWS,eu-west-3,m8g.16xlarge,reserved_3y,partial_upfront,1.613685,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:53.860222 +AWS,eu-west-3,m8g.16xlarge,spot,NA,0.788392,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772932 +AWS,eu-west-3,m8g.24xlarge,on_demand,NA,5.02656,USD,AWS Pricing API,2025-11-30T09:03:55.557719 +AWS,eu-west-3,m8g.24xlarge,reserved_1y,all_upfront,4.241236,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:25.211763 +AWS,eu-west-3,m8g.24xlarge,reserved_1y,no_upfront,4.241236,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:09.279802 +AWS,eu-west-3,m8g.24xlarge,reserved_1y,partial_upfront,4.241236,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:50.427108 +AWS,eu-west-3,m8g.24xlarge,reserved_3y,all_upfront,2.120612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:22.748420 +AWS,eu-west-3,m8g.24xlarge,reserved_3y,no_upfront,2.120612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:14.563625 +AWS,eu-west-3,m8g.24xlarge,reserved_3y,partial_upfront,2.120612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:00.858730 +AWS,eu-west-3,m8g.24xlarge,spot,NA,1.140862,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774067 +AWS,eu-west-3,m8g.2xlarge,on_demand,NA,0.41888,USD,AWS Pricing API,2025-11-30T09:03:47.192749 +AWS,eu-west-3,m8g.2xlarge,reserved_1y,all_upfront,0.27627,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:16.805051 +AWS,eu-west-3,m8g.2xlarge,reserved_1y,no_upfront,0.27627,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:00.776211 +AWS,eu-west-3,m8g.2xlarge,reserved_1y,partial_upfront,0.27627,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:42.074612 +AWS,eu-west-3,m8g.2xlarge,reserved_3y,all_upfront,0.27627,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:14.556603 +AWS,eu-west-3,m8g.2xlarge,reserved_3y,no_upfront,0.27627,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:05.879375 +AWS,eu-west-3,m8g.2xlarge,reserved_3y,partial_upfront,0.27627,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:52.507514 +AWS,eu-west-3,m8g.2xlarge,spot,NA,0.111609,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773913 +AWS,eu-west-3,m8g.48xlarge,on_demand,NA,10.05312,USD,AWS Pricing API,2025-11-30T09:03:20.710712 +AWS,eu-west-3,m8g.48xlarge,reserved_1y,all_upfront,6.188356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:49.988854 +AWS,eu-west-3,m8g.48xlarge,reserved_1y,no_upfront,6.188356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:33.789649 +AWS,eu-west-3,m8g.48xlarge,reserved_1y,partial_upfront,6.188356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:15.509776 +AWS,eu-west-3,m8g.48xlarge,reserved_3y,all_upfront,2.062785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:48.328843 +AWS,eu-west-3,m8g.48xlarge,reserved_3y,no_upfront,2.062785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:38.716163 +AWS,eu-west-3,m8g.48xlarge,reserved_3y,partial_upfront,2.062785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:26.016169 +AWS,eu-west-3,m8g.48xlarge,spot,NA,1.947833,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773503 +AWS,eu-west-3,m8g.4xlarge,on_demand,NA,0.83776,USD,AWS Pricing API,2025-11-30T09:03:37.285569 +AWS,eu-west-3,m8g.4xlarge,reserved_1y,all_upfront,0.593037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:06.831850 +AWS,eu-west-3,m8g.4xlarge,reserved_1y,no_upfront,0.593037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:50.644091 +AWS,eu-west-3,m8g.4xlarge,reserved_1y,partial_upfront,0.593037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:32.126159 +AWS,eu-west-3,m8g.4xlarge,reserved_3y,all_upfront,0.197679,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:04.763309 +AWS,eu-west-3,m8g.4xlarge,reserved_3y,no_upfront,0.197679,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:55.738700 +AWS,eu-west-3,m8g.4xlarge,reserved_3y,partial_upfront,0.197679,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:42.578948 +AWS,eu-west-3,m8g.4xlarge,spot,NA,0.211232,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773757 +AWS,eu-west-3,m8g.8xlarge,on_demand,NA,1.67552,USD,AWS Pricing API,2025-11-30T09:03:09.302722 +AWS,eu-west-3,m8g.8xlarge,reserved_1y,all_upfront,1.10507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:38.496117 +AWS,eu-west-3,m8g.8xlarge,reserved_1y,no_upfront,1.10507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:22.238585 +AWS,eu-west-3,m8g.8xlarge,reserved_1y,partial_upfront,1.10507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:04.078275 +AWS,eu-west-3,m8g.8xlarge,reserved_3y,all_upfront,1.10507,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:37.083829 +AWS,eu-west-3,m8g.8xlarge,reserved_3y,no_upfront,1.10507,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:27.038815 +AWS,eu-west-3,m8g.8xlarge,reserved_3y,partial_upfront,1.10507,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:14.626971 +AWS,eu-west-3,m8g.8xlarge,spot,NA,0.446985,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773259 +AWS,eu-west-3,m8g.large,on_demand,NA,0.10472,USD,AWS Pricing API,2025-11-30T09:03:57.563092 +AWS,eu-west-3,m8g.large,reserved_1y,all_upfront,0.07942,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:27.246268 +AWS,eu-west-3,m8g.large,reserved_1y,no_upfront,0.07942,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:11.313545 +AWS,eu-west-3,m8g.large,reserved_1y,partial_upfront,0.07942,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:52.451253 +AWS,eu-west-3,m8g.large,reserved_3y,all_upfront,0.07942,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:24.726800 +AWS,eu-west-3,m8g.large,reserved_3y,no_upfront,0.07942,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:16.624656 +AWS,eu-west-3,m8g.large,reserved_3y,partial_upfront,0.07942,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:02.919796 +AWS,eu-west-3,m8g.large,spot,NA,0.022482,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774082 +AWS,eu-west-3,m8g.medium,on_demand,NA,0.05236,USD,AWS Pricing API,2025-11-30T09:03:59.438826 +AWS,eu-west-3,m8g.medium,reserved_1y,all_upfront,0.044145,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:29.141011 +AWS,eu-west-3,m8g.medium,reserved_1y,no_upfront,0.044145,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:13.211240 +AWS,eu-west-3,m8g.medium,reserved_1y,partial_upfront,0.044145,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:54.329051 +AWS,eu-west-3,m8g.medium,reserved_3y,all_upfront,0.022075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:26.571548 +AWS,eu-west-3,m8g.medium,reserved_3y,no_upfront,0.022075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:18.555022 +AWS,eu-west-3,m8g.medium,reserved_3y,partial_upfront,0.022075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:04.794492 +AWS,eu-west-3,m8g.medium,spot,NA,0.007956,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774137 +AWS,eu-west-3,m8g.xlarge,on_demand,NA,0.20944,USD,AWS Pricing API,2025-11-30T09:03:18.428471 +AWS,eu-west-3,m8g.xlarge,reserved_1y,all_upfront,0.15885,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:47.664768 +AWS,eu-west-3,m8g.xlarge,reserved_1y,no_upfront,0.15885,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:31.488154 +AWS,eu-west-3,m8g.xlarge,reserved_1y,partial_upfront,0.15885,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:13.226513 +AWS,eu-west-3,m8g.xlarge,reserved_3y,all_upfront,0.15885,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:46.082719 +AWS,eu-west-3,m8g.xlarge,reserved_3y,no_upfront,0.15885,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:36.380000 +AWS,eu-west-3,m8g.xlarge,reserved_3y,partial_upfront,0.15885,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:23.737283 +AWS,eu-west-3,m8g.xlarge,spot,NA,0.054807,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773445 +AWS,eu-west-3,r4.16xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T09:03:46.249621 +AWS,eu-west-3,r4.16xlarge,reserved_1y,all_upfront,3.001913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:15.855895 +AWS,eu-west-3,r4.16xlarge,reserved_1y,no_upfront,3.001913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:59.798902 +AWS,eu-west-3,r4.16xlarge,reserved_1y,partial_upfront,3.001913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:41.124077 +AWS,eu-west-3,r4.16xlarge,reserved_3y,all_upfront,2.001304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:13.634442 +AWS,eu-west-3,r4.16xlarge,reserved_3y,no_upfront,2.001304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:04.920404 +AWS,eu-west-3,r4.16xlarge,reserved_3y,partial_upfront,2.001304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:51.578189 +AWS,eu-west-3,r4.16xlarge,spot,NA,1.154738,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773885 +AWS,eu-west-3,r5.12xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:02:48.053918 +AWS,eu-west-3,r5.12xlarge,reserved_1y,all_upfront,2.573,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:17.323796 +AWS,eu-west-3,r5.12xlarge,reserved_1y,no_upfront,2.573,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:00.729442 +AWS,eu-west-3,r5.12xlarge,reserved_1y,partial_upfront,2.573,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:42.927616 +AWS,eu-west-3,r5.12xlarge,reserved_3y,all_upfront,2.573,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:16.283898 +AWS,eu-west-3,r5.12xlarge,reserved_3y,no_upfront,2.573,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:05.320991 +AWS,eu-west-3,r5.12xlarge,reserved_3y,partial_upfront,2.573,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:53.596666 +AWS,eu-west-3,r5.12xlarge,spot,NA,1.472753,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772928 +AWS,eu-west-3,r5.16xlarge,on_demand,NA,4.736,USD,AWS Pricing API,2025-11-30T09:03:20.846554 +AWS,eu-west-3,r5.16xlarge,reserved_1y,all_upfront,2.841776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:50.123339 +AWS,eu-west-3,r5.16xlarge,reserved_1y,no_upfront,2.841776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:33.924010 +AWS,eu-west-3,r5.16xlarge,reserved_1y,partial_upfront,2.841776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:15.643608 +AWS,eu-west-3,r5.16xlarge,reserved_3y,all_upfront,1.894592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:48.461488 +AWS,eu-west-3,r5.16xlarge,reserved_3y,no_upfront,1.894592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:38.855277 +AWS,eu-west-3,r5.16xlarge,reserved_3y,partial_upfront,1.894592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:26.151204 +AWS,eu-west-3,r5.16xlarge,spot,NA,1.840823,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773499 +AWS,eu-west-3,r5.24xlarge,on_demand,NA,7.104,USD,AWS Pricing API,2025-11-30T09:03:03.359399 +AWS,eu-west-3,r5.24xlarge,reserved_1y,all_upfront,4.476,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:32.576624 +AWS,eu-west-3,r5.24xlarge,reserved_1y,no_upfront,4.476,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:16.264630 +AWS,eu-west-3,r5.24xlarge,reserved_1y,partial_upfront,4.476,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:58.129859 +AWS,eu-west-3,r5.24xlarge,reserved_3y,all_upfront,4.476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:31.263035 +AWS,eu-west-3,r5.24xlarge,reserved_3y,no_upfront,4.476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:20.958630 +AWS,eu-west-3,r5.24xlarge,reserved_3y,partial_upfront,4.476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:08.745789 +AWS,eu-west-3,r5.24xlarge,spot,NA,2.117328,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773154 +AWS,eu-west-3,r5.2xlarge,on_demand,NA,0.592,USD,AWS Pricing API,2025-11-30T12:52:29.661103 +AWS,eu-west-3,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.661221 +AWS,eu-west-3,r5.2xlarge,reserved_1y_no_upfront,NA,0.373,USD,AWS Pricing API,2025-11-30T12:52:29.661150 +AWS,eu-west-3,r5.2xlarge,reserved_1y_partial_upfront,NA,0.178,USD,AWS Pricing API,2025-11-30T12:52:29.661247 +AWS,eu-west-3,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.661260 +AWS,eu-west-3,r5.2xlarge,reserved_3y_no_upfront,NA,0.256,USD,AWS Pricing API,2025-11-30T12:52:29.661273 +AWS,eu-west-3,r5.2xlarge,reserved_3y_partial_upfront,NA,0.143,USD,AWS Pricing API,2025-11-30T12:52:29.661234 +AWS,eu-west-3,r5.2xlarge,spot,NA,0.24488,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:34.620745 +AWS,eu-west-3,r5.4xlarge,on_demand,NA,1.184,USD,AWS Pricing API,2025-11-30T09:03:55.283929 +AWS,eu-west-3,r5.4xlarge,reserved_1y,all_upfront,1.681279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:24.941344 +AWS,eu-west-3,r5.4xlarge,reserved_1y,no_upfront,1.681279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:09.009897 +AWS,eu-west-3,r5.4xlarge,reserved_1y,partial_upfront,1.681279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:50.160144 +AWS,eu-west-3,r5.4xlarge,reserved_3y,all_upfront,0.560426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:22.480739 +AWS,eu-west-3,r5.4xlarge,reserved_3y,no_upfront,0.560426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:14.286614 +AWS,eu-west-3,r5.4xlarge,reserved_3y,partial_upfront,0.560426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:00.580750 +AWS,eu-west-3,r5.4xlarge,spot,NA,0.507397,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774037 +AWS,eu-west-3,r5.8xlarge,on_demand,NA,2.368,USD,AWS Pricing API,2025-11-30T09:03:38.354113 +AWS,eu-west-3,r5.8xlarge,reserved_1y,all_upfront,1.894776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:07.902147 +AWS,eu-west-3,r5.8xlarge,reserved_1y,no_upfront,1.894776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:51.732361 +AWS,eu-west-3,r5.8xlarge,reserved_1y,partial_upfront,1.894776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:33.195915 +AWS,eu-west-3,r5.8xlarge,reserved_3y,all_upfront,0.947592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:05.816813 +AWS,eu-west-3,r5.8xlarge,reserved_3y,no_upfront,0.947592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:56.830986 +AWS,eu-west-3,r5.8xlarge,reserved_3y,partial_upfront,0.947592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:43.671015 +AWS,eu-west-3,r5.8xlarge,spot,NA,1.028948,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773764 +AWS,eu-west-3,r5.large,on_demand,NA,0.148,USD,AWS Pricing API,2025-11-30T09:03:14.809875 +AWS,eu-west-3,r5.large,reserved_1y,all_upfront,0.118813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:44.025627 +AWS,eu-west-3,r5.large,reserved_1y,no_upfront,0.118813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:27.812569 +AWS,eu-west-3,r5.large,reserved_1y,partial_upfront,0.118813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:09.605132 +AWS,eu-west-3,r5.large,reserved_3y,all_upfront,0.059604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:42.498401 +AWS,eu-west-3,r5.large,reserved_3y,no_upfront,0.059604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:32.656673 +AWS,eu-west-3,r5.large,reserved_3y,partial_upfront,0.059604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:20.118216 +AWS,eu-west-3,r5.large,spot,NA,0.06137,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773364 +AWS,eu-west-3,r5.xlarge,on_demand,NA,0.296,USD,AWS Pricing API,2025-11-30T09:02:52.197279 +AWS,eu-west-3,r5.xlarge,reserved_1y,all_upfront,0.154,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:21.483292 +AWS,eu-west-3,r5.xlarge,reserved_1y,no_upfront,0.154,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:05.011463 +AWS,eu-west-3,r5.xlarge,reserved_1y,partial_upfront,0.154,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:47.088032 +AWS,eu-west-3,r5.xlarge,reserved_3y,all_upfront,0.154,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:20.369788 +AWS,eu-west-3,r5.xlarge,reserved_3y,no_upfront,0.154,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:09.662520 +AWS,eu-west-3,r5.xlarge,reserved_3y,partial_upfront,0.154,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:57.714278 +AWS,eu-west-3,r5.xlarge,spot,NA,0.117431,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772992 +AWS,eu-west-3,r5a.12xlarge,on_demand,NA,3.192,USD,AWS Pricing API,2025-11-30T09:03:46.385339 +AWS,eu-west-3,r5a.12xlarge,reserved_1y,all_upfront,1.915648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:15.991241 +AWS,eu-west-3,r5a.12xlarge,reserved_1y,no_upfront,1.915648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:59.933214 +AWS,eu-west-3,r5a.12xlarge,reserved_1y,partial_upfront,1.915648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:41.270795 +AWS,eu-west-3,r5a.12xlarge,reserved_3y,all_upfront,1.277216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:13.765430 +AWS,eu-west-3,r5a.12xlarge,reserved_3y,no_upfront,1.277216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:05.057985 +AWS,eu-west-3,r5a.12xlarge,reserved_3y,partial_upfront,1.277216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:51.711271 +AWS,eu-west-3,r5a.12xlarge,spot,NA,0.892649,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773901 +AWS,eu-west-3,r5a.16xlarge,on_demand,NA,4.256,USD,AWS Pricing API,2025-11-30T09:03:54.464727 +AWS,eu-west-3,r5a.16xlarge,reserved_1y,all_upfront,2.947516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:24.140348 +AWS,eu-west-3,r5a.16xlarge,reserved_1y,no_upfront,2.947516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:08.200547 +AWS,eu-west-3,r5a.16xlarge,reserved_1y,partial_upfront,2.947516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:49.358453 +AWS,eu-west-3,r5a.16xlarge,reserved_3y,all_upfront,1.965172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:21.688559 +AWS,eu-west-3,r5a.16xlarge,reserved_3y,no_upfront,1.965172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:13.448682 +AWS,eu-west-3,r5a.16xlarge,reserved_3y,partial_upfront,1.965172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:59.763410 +AWS,eu-west-3,r5a.16xlarge,spot,NA,1.138879,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774026 +AWS,eu-west-3,r5a.24xlarge,on_demand,NA,6.384,USD,AWS Pricing API,2025-11-30T09:03:48.399141 +AWS,eu-west-3,r5a.24xlarge,reserved_1y,all_upfront,3.830183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:18.007779 +AWS,eu-west-3,r5a.24xlarge,reserved_1y,no_upfront,3.830183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:02.013642 +AWS,eu-west-3,r5a.24xlarge,reserved_1y,partial_upfront,3.830183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:43.277967 +AWS,eu-west-3,r5a.24xlarge,reserved_3y,all_upfront,2.553394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:15.746573 +AWS,eu-west-3,r5a.24xlarge,reserved_3y,no_upfront,2.553394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:07.109613 +AWS,eu-west-3,r5a.24xlarge,reserved_3y,partial_upfront,2.553394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:53.708953 +AWS,eu-west-3,r5a.24xlarge,spot,NA,1.508756,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773909 +AWS,eu-west-3,r5a.2xlarge,on_demand,NA,0.532,USD,AWS Pricing API,2025-11-30T09:03:59.045746 +AWS,eu-west-3,r5a.2xlarge,reserved_1y,all_upfront,0.763014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:28.739734 +AWS,eu-west-3,r5a.2xlarge,reserved_1y,no_upfront,0.763014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:12.803249 +AWS,eu-west-3,r5a.2xlarge,reserved_1y,partial_upfront,0.763014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:53.932973 +AWS,eu-west-3,r5a.2xlarge,reserved_3y,all_upfront,0.254338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:26.173780 +AWS,eu-west-3,r5a.2xlarge,reserved_3y,no_upfront,0.254338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:18.145818 +AWS,eu-west-3,r5a.2xlarge,reserved_3y,partial_upfront,0.254338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:04.393852 +AWS,eu-west-3,r5a.2xlarge,spot,NA,0.204969,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774128 +AWS,eu-west-3,r5a.4xlarge,on_demand,NA,1.064,USD,AWS Pricing API,2025-11-30T09:03:39.296732 +AWS,eu-west-3,r5a.4xlarge,reserved_1y,all_upfront,0.625685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:08.847616 +AWS,eu-west-3,r5a.4xlarge,reserved_1y,no_upfront,0.625685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:52.684828 +AWS,eu-west-3,r5a.4xlarge,reserved_1y,partial_upfront,0.625685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:34.141764 +AWS,eu-west-3,r5a.4xlarge,reserved_3y,all_upfront,0.208562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:06.743945 +AWS,eu-west-3,r5a.4xlarge,reserved_3y,no_upfront,0.208562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:57.787844 +AWS,eu-west-3,r5a.4xlarge,reserved_3y,partial_upfront,0.208562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:44.610191 +AWS,eu-west-3,r5a.4xlarge,spot,NA,0.454845,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773807 +AWS,eu-west-3,r5a.8xlarge,on_demand,NA,2.128,USD,AWS Pricing API,2025-11-30T09:03:21.929689 +AWS,eu-west-3,r5a.8xlarge,reserved_1y,all_upfront,2.400342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:51.230279 +AWS,eu-west-3,r5a.8xlarge,reserved_1y,no_upfront,2.400342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:35.009106 +AWS,eu-west-3,r5a.8xlarge,reserved_1y,partial_upfront,2.400342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:16.709035 +AWS,eu-west-3,r5a.8xlarge,reserved_3y,all_upfront,0.800114,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:49.520053 +AWS,eu-west-3,r5a.8xlarge,reserved_3y,no_upfront,0.800114,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:39.949421 +AWS,eu-west-3,r5a.8xlarge,reserved_3y,partial_upfront,0.800114,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:27.217513 +AWS,eu-west-3,r5a.8xlarge,spot,NA,0.834943,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773532 +AWS,eu-west-3,r5a.large,on_demand,NA,0.133,USD,AWS Pricing API,2025-11-30T09:03:28.339959 +AWS,eu-west-3,r5a.large,reserved_1y,all_upfront,0.190753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:57.799245 +AWS,eu-west-3,r5a.large,reserved_1y,no_upfront,0.190753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:41.528284 +AWS,eu-west-3,r5a.large,reserved_1y,partial_upfront,0.190753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:23.136738 +AWS,eu-west-3,r5a.large,reserved_3y,all_upfront,0.063584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:55.889872 +AWS,eu-west-3,r5a.large,reserved_3y,no_upfront,0.063584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:46.542981 +AWS,eu-west-3,r5a.large,reserved_3y,partial_upfront,0.063584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:33.617140 +AWS,eu-west-3,r5a.large,spot,NA,0.048908,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773616 +AWS,eu-west-3,r5a.xlarge,on_demand,NA,0.266,USD,AWS Pricing API,2025-11-30T09:03:38.763823 +AWS,eu-west-3,r5a.xlarge,reserved_1y,all_upfront,0.156393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:08.306409 +AWS,eu-west-3,r5a.xlarge,reserved_1y,no_upfront,0.156393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:52.141711 +AWS,eu-west-3,r5a.xlarge,reserved_1y,partial_upfront,0.156393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:33.601829 +AWS,eu-west-3,r5a.xlarge,reserved_3y,all_upfront,0.052131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:06.213966 +AWS,eu-west-3,r5a.xlarge,reserved_3y,no_upfront,0.052131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:57.243083 +AWS,eu-west-3,r5a.xlarge,reserved_3y,partial_upfront,0.052131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:44.073502 +AWS,eu-west-3,r5a.xlarge,spot,NA,0.123648,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773780 +AWS,eu-west-3,r5d.12xlarge,on_demand,NA,4.056,USD,AWS Pricing API,2025-11-30T09:03:51.947541 +AWS,eu-west-3,r5d.12xlarge,reserved_1y,all_upfront,2.555,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:21.595640 +AWS,eu-west-3,r5d.12xlarge,reserved_1y,no_upfront,2.555,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:05.592680 +AWS,eu-west-3,r5d.12xlarge,reserved_1y,partial_upfront,2.555,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:46.783732 +AWS,eu-west-3,r5d.12xlarge,reserved_3y,all_upfront,2.555,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:19.188385 +AWS,eu-west-3,r5d.12xlarge,reserved_3y,no_upfront,2.555,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:10.713950 +AWS,eu-west-3,r5d.12xlarge,reserved_3y,partial_upfront,2.555,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:57.203530 +AWS,eu-west-3,r5d.12xlarge,spot,NA,1.207228,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773998 +AWS,eu-west-3,r5d.16xlarge,on_demand,NA,5.408,USD,AWS Pricing API,2025-11-30T09:03:17.085057 +AWS,eu-west-3,r5d.16xlarge,reserved_1y,all_upfront,4.326749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:46.308556 +AWS,eu-west-3,r5d.16xlarge,reserved_1y,no_upfront,4.326749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:30.122677 +AWS,eu-west-3,r5d.16xlarge,reserved_1y,partial_upfront,4.326749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:11.892894 +AWS,eu-west-3,r5d.16xlarge,reserved_3y,all_upfront,2.163583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:44.754712 +AWS,eu-west-3,r5d.16xlarge,reserved_3y,no_upfront,2.163583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:34.984254 +AWS,eu-west-3,r5d.16xlarge,reserved_3y,partial_upfront,2.163583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:22.410664 +AWS,eu-west-3,r5d.16xlarge,spot,NA,1.547181,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773432 +AWS,eu-west-3,r5d.24xlarge,on_demand,NA,8.112,USD,AWS Pricing API,2025-11-30T09:03:46.524821 +AWS,eu-west-3,r5d.24xlarge,reserved_1y,all_upfront,11.520205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:16.129287 +AWS,eu-west-3,r5d.24xlarge,reserved_1y,no_upfront,11.520205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:00.069840 +AWS,eu-west-3,r5d.24xlarge,reserved_1y,partial_upfront,11.520205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:41.405721 +AWS,eu-west-3,r5d.24xlarge,reserved_3y,all_upfront,3.840068,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:13.899551 +AWS,eu-west-3,r5d.24xlarge,reserved_3y,no_upfront,3.840068,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:05.194525 +AWS,eu-west-3,r5d.24xlarge,reserved_3y,partial_upfront,3.840068,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:51.843624 +AWS,eu-west-3,r5d.24xlarge,spot,NA,1.658705,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773897 +AWS,eu-west-3,r5d.2xlarge,on_demand,NA,0.676,USD,AWS Pricing API,2025-11-30T09:03:45.179441 +AWS,eu-west-3,r5d.2xlarge,reserved_1y,all_upfront,0.457648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:14.776567 +AWS,eu-west-3,r5d.2xlarge,reserved_1y,no_upfront,0.457648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:58.689463 +AWS,eu-west-3,r5d.2xlarge,reserved_1y,partial_upfront,0.457648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:40.038572 +AWS,eu-west-3,r5d.2xlarge,reserved_3y,all_upfront,0.152549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:12.583852 +AWS,eu-west-3,r5d.2xlarge,reserved_3y,no_upfront,0.152549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:03.824135 +AWS,eu-west-3,r5d.2xlarge,reserved_3y,partial_upfront,0.152549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:50.512838 +AWS,eu-west-3,r5d.2xlarge,spot,NA,0.231766,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773874 +AWS,eu-west-3,r5d.4xlarge,on_demand,NA,1.352,USD,AWS Pricing API,2025-11-30T09:03:16.549127 +AWS,eu-west-3,r5d.4xlarge,reserved_1y,all_upfront,0.811594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:45.772572 +AWS,eu-west-3,r5d.4xlarge,reserved_1y,no_upfront,0.811594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:29.573389 +AWS,eu-west-3,r5d.4xlarge,reserved_1y,partial_upfront,0.811594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:11.363138 +AWS,eu-west-3,r5d.4xlarge,reserved_3y,all_upfront,0.541198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:44.230633 +AWS,eu-west-3,r5d.4xlarge,reserved_3y,no_upfront,0.541198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:34.438158 +AWS,eu-west-3,r5d.4xlarge,reserved_3y,partial_upfront,0.541198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:21.867395 +AWS,eu-west-3,r5d.4xlarge,spot,NA,0.494282,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773412 +AWS,eu-west-3,r5d.8xlarge,on_demand,NA,2.704,USD,AWS Pricing API,2025-11-30T09:03:16.149525 +AWS,eu-west-3,r5d.8xlarge,reserved_1y,all_upfront,1.704,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:45.366648 +AWS,eu-west-3,r5d.8xlarge,reserved_1y,no_upfront,1.704,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:29.163134 +AWS,eu-west-3,r5d.8xlarge,reserved_1y,partial_upfront,1.704,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:10.962148 +AWS,eu-west-3,r5d.8xlarge,reserved_3y,all_upfront,1.704,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:43.833453 +AWS,eu-west-3,r5d.8xlarge,reserved_3y,no_upfront,1.704,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:34.024785 +AWS,eu-west-3,r5d.8xlarge,reserved_3y,partial_upfront,1.704,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:21.457236 +AWS,eu-west-3,r5d.8xlarge,spot,NA,1.23223,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773404 +AWS,eu-west-3,r5d.large,on_demand,NA,0.169,USD,AWS Pricing API,2025-11-30T09:03:40.498465 +AWS,eu-west-3,r5d.large,reserved_1y,all_upfront,0.123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:10.052236 +AWS,eu-west-3,r5d.large,reserved_1y,no_upfront,0.123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:53.906745 +AWS,eu-west-3,r5d.large,reserved_1y,partial_upfront,0.123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:35.348434 +AWS,eu-west-3,r5d.large,reserved_3y,all_upfront,0.123,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:07.944158 +AWS,eu-west-3,r5d.large,reserved_3y,no_upfront,0.123,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:59.013050 +AWS,eu-west-3,r5d.large,reserved_3y,partial_upfront,0.123,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:45.823112 +AWS,eu-west-3,r5d.large,spot,NA,0.062093,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773831 +AWS,eu-west-3,r5d.xlarge,on_demand,NA,0.338,USD,AWS Pricing API,2025-11-30T09:02:58.556268 +AWS,eu-west-3,r5d.xlarge,reserved_1y,all_upfront,0.213,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:27.802488 +AWS,eu-west-3,r5d.xlarge,reserved_1y,no_upfront,0.213,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:11.461762 +AWS,eu-west-3,r5d.xlarge,reserved_1y,partial_upfront,0.213,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:53.412356 +AWS,eu-west-3,r5d.xlarge,reserved_3y,all_upfront,0.213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:26.628190 +AWS,eu-west-3,r5d.xlarge,reserved_3y,no_upfront,0.213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:16.121765 +AWS,eu-west-3,r5d.xlarge,reserved_3y,partial_upfront,0.213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:04.038203 +AWS,eu-west-3,r5d.xlarge,spot,NA,0.167569,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773053 +AWS,eu-west-3,r5dn.12xlarge,on_demand,NA,4.704,USD,AWS Pricing API,2025-11-30T09:03:01.421477 +AWS,eu-west-3,r5dn.12xlarge,reserved_1y,all_upfront,3.640928,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:30.688113 +AWS,eu-west-3,r5dn.12xlarge,reserved_1y,no_upfront,3.640928,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:14.336204 +AWS,eu-west-3,r5dn.12xlarge,reserved_1y,partial_upfront,3.640928,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:56.254621 +AWS,eu-west-3,r5dn.12xlarge,reserved_3y,all_upfront,1.820456,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:29.402333 +AWS,eu-west-3,r5dn.12xlarge,reserved_3y,no_upfront,1.820456,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:19.018867 +AWS,eu-west-3,r5dn.12xlarge,reserved_3y,partial_upfront,1.820456,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:06.854036 +AWS,eu-west-3,r5dn.12xlarge,spot,NA,1.589346,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773113 +AWS,eu-west-3,r5dn.16xlarge,on_demand,NA,6.272,USD,AWS Pricing API,2025-11-30T09:03:11.847701 +AWS,eu-west-3,r5dn.16xlarge,reserved_1y,all_upfront,4.377857,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:41.077360 +AWS,eu-west-3,r5dn.16xlarge,reserved_1y,no_upfront,4.377857,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:24.816677 +AWS,eu-west-3,r5dn.16xlarge,reserved_1y,partial_upfront,4.377857,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:06.645380 +AWS,eu-west-3,r5dn.16xlarge,reserved_3y,all_upfront,2.918572,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:39.596937 +AWS,eu-west-3,r5dn.16xlarge,reserved_3y,no_upfront,2.918572,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:29.635316 +AWS,eu-west-3,r5dn.16xlarge,reserved_3y,partial_upfront,2.918572,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:17.191100 +AWS,eu-west-3,r5dn.16xlarge,spot,NA,1.887809,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773292 +AWS,eu-west-3,r5dn.24xlarge,on_demand,NA,9.408,USD,AWS Pricing API,2025-11-30T09:03:23.272837 +AWS,eu-west-3,r5dn.24xlarge,reserved_1y,all_upfront,6.89512,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:52.574620 +AWS,eu-west-3,r5dn.24xlarge,reserved_1y,no_upfront,6.89512,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:36.362308 +AWS,eu-west-3,r5dn.24xlarge,reserved_1y,partial_upfront,6.89512,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:18.049067 +AWS,eu-west-3,r5dn.24xlarge,reserved_3y,all_upfront,6.89512,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:50.846725 +AWS,eu-west-3,r5dn.24xlarge,reserved_3y,no_upfront,6.89512,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:41.320880 +AWS,eu-west-3,r5dn.24xlarge,reserved_3y,partial_upfront,6.89512,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:28.560087 +AWS,eu-west-3,r5dn.24xlarge,spot,NA,3.297998,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773565 +AWS,eu-west-3,r5dn.2xlarge,on_demand,NA,0.784,USD,AWS Pricing API,2025-11-30T09:03:28.475836 +AWS,eu-west-3,r5dn.2xlarge,reserved_1y,all_upfront,0.460959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:57.934602 +AWS,eu-west-3,r5dn.2xlarge,reserved_1y,no_upfront,0.460959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:41.664835 +AWS,eu-west-3,r5dn.2xlarge,reserved_1y,partial_upfront,0.460959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:23.272706 +AWS,eu-west-3,r5dn.2xlarge,reserved_3y,all_upfront,0.153653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:56.024636 +AWS,eu-west-3,r5dn.2xlarge,reserved_3y,no_upfront,0.153653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:46.679441 +AWS,eu-west-3,r5dn.2xlarge,reserved_3y,partial_upfront,0.153653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:33.751050 +AWS,eu-west-3,r5dn.2xlarge,spot,NA,0.34537,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773620 +AWS,eu-west-3,r5dn.4xlarge,on_demand,NA,1.568,USD,AWS Pricing API,2025-11-30T09:02:52.942277 +AWS,eu-west-3,r5dn.4xlarge,reserved_1y,all_upfront,0.922032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:22.149940 +AWS,eu-west-3,r5dn.4xlarge,reserved_1y,no_upfront,0.922032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:05.682414 +AWS,eu-west-3,r5dn.4xlarge,reserved_1y,partial_upfront,0.922032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:47.754447 +AWS,eu-west-3,r5dn.4xlarge,reserved_3y,all_upfront,0.307344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:21.019624 +AWS,eu-west-3,r5dn.4xlarge,reserved_3y,no_upfront,0.307344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:10.347007 +AWS,eu-west-3,r5dn.4xlarge,reserved_3y,partial_upfront,0.307344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:58.398914 +AWS,eu-west-3,r5dn.4xlarge,spot,NA,0.515309,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772988 +AWS,eu-west-3,r5dn.8xlarge,on_demand,NA,3.136,USD,AWS Pricing API,2025-11-30T09:03:51.676958 +AWS,eu-west-3,r5dn.8xlarge,reserved_1y,all_upfront,1.84395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:21.326117 +AWS,eu-west-3,r5dn.8xlarge,reserved_1y,no_upfront,1.84395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:05.321162 +AWS,eu-west-3,r5dn.8xlarge,reserved_1y,partial_upfront,1.84395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:46.519137 +AWS,eu-west-3,r5dn.8xlarge,reserved_3y,all_upfront,0.61465,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:18.922200 +AWS,eu-west-3,r5dn.8xlarge,reserved_3y,no_upfront,0.61465,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:10.433193 +AWS,eu-west-3,r5dn.8xlarge,reserved_3y,partial_upfront,0.61465,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:56.932479 +AWS,eu-west-3,r5dn.8xlarge,spot,NA,1.354906,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773990 +AWS,eu-west-3,r5dn.large,on_demand,NA,0.196,USD,AWS Pricing API,2025-11-30T09:03:02.533002 +AWS,eu-west-3,r5dn.large,reserved_1y,all_upfront,0.151743,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:31.757821 +AWS,eu-west-3,r5dn.large,reserved_1y,no_upfront,0.151743,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:15.440354 +AWS,eu-west-3,r5dn.large,reserved_1y,partial_upfront,0.151743,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:57.322950 +AWS,eu-west-3,r5dn.large,reserved_3y,all_upfront,0.075868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:30.462265 +AWS,eu-west-3,r5dn.large,reserved_3y,no_upfront,0.075868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:20.132984 +AWS,eu-west-3,r5dn.large,reserved_3y,partial_upfront,0.075868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:07.938907 +AWS,eu-west-3,r5dn.large,spot,NA,0.100179,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773145 +AWS,eu-west-3,r5dn.metal,on_demand,NA,9.408,USD,AWS Pricing API,2025-11-30T09:02:50.579639 +AWS,eu-west-3,r5dn.metal,reserved_1y,all_upfront,6.566837,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:19.867398 +AWS,eu-west-3,r5dn.metal,reserved_1y,no_upfront,6.566837,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:03.374384 +AWS,eu-west-3,r5dn.metal,reserved_1y,partial_upfront,6.566837,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:45.470656 +AWS,eu-west-3,r5dn.metal,reserved_3y,all_upfront,4.377872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:18.800048 +AWS,eu-west-3,r5dn.metal,reserved_3y,no_upfront,4.377872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:07.957197 +AWS,eu-west-3,r5dn.metal,reserved_3y,partial_upfront,4.377872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:56.110575 +AWS,eu-west-3,r5dn.metal,spot,NA,4.530013,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772937 +AWS,eu-west-3,r5dn.xlarge,on_demand,NA,0.392,USD,AWS Pricing API,2025-11-30T09:03:13.877321 +AWS,eu-west-3,r5dn.xlarge,reserved_1y,all_upfront,0.23518,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:43.080206 +AWS,eu-west-3,r5dn.xlarge,reserved_1y,no_upfront,0.23518,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:26.863300 +AWS,eu-west-3,r5dn.xlarge,reserved_1y,partial_upfront,0.23518,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:08.662203 +AWS,eu-west-3,r5dn.xlarge,reserved_3y,all_upfront,0.156793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:41.584224 +AWS,eu-west-3,r5dn.xlarge,reserved_3y,no_upfront,0.156793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:31.709476 +AWS,eu-west-3,r5dn.xlarge,reserved_3y,partial_upfront,0.156793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:19.187190 +AWS,eu-west-3,r5dn.xlarge,spot,NA,0.18779,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773353 +AWS,eu-west-3,r5n.12xlarge,on_demand,NA,4.2,USD,AWS Pricing API,2025-11-30T09:03:36.206497 +AWS,eu-west-3,r5n.12xlarge,reserved_1y,all_upfront,2.532096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:05.750228 +AWS,eu-west-3,r5n.12xlarge,reserved_1y,no_upfront,2.532096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:49.558720 +AWS,eu-west-3,r5n.12xlarge,reserved_1y,partial_upfront,2.532096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:31.034494 +AWS,eu-west-3,r5n.12xlarge,reserved_3y,all_upfront,1.688032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:03.689610 +AWS,eu-west-3,r5n.12xlarge,reserved_3y,no_upfront,1.688032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:54.611530 +AWS,eu-west-3,r5n.12xlarge,reserved_3y,partial_upfront,1.688032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:41.509300 +AWS,eu-west-3,r5n.12xlarge,spot,NA,1.586485,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773733 +AWS,eu-west-3,r5n.16xlarge,on_demand,NA,5.6,USD,AWS Pricing API,2025-11-30T09:03:51.262810 +AWS,eu-west-3,r5n.16xlarge,reserved_1y,all_upfront,4.383785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:20.924839 +AWS,eu-west-3,r5n.16xlarge,reserved_1y,no_upfront,4.383785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:04.910514 +AWS,eu-west-3,r5n.16xlarge,reserved_1y,partial_upfront,4.383785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:46.112872 +AWS,eu-west-3,r5n.16xlarge,reserved_3y,all_upfront,2.191928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:18.522610 +AWS,eu-west-3,r5n.16xlarge,reserved_3y,no_upfront,2.191928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:10.013890 +AWS,eu-west-3,r5n.16xlarge,reserved_3y,partial_upfront,2.191928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:56.532116 +AWS,eu-west-3,r5n.16xlarge,spot,NA,1.70967,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774001 +AWS,eu-west-3,r5n.24xlarge,on_demand,NA,8.4,USD,AWS Pricing API,2025-11-30T09:03:13.468845 +AWS,eu-west-3,r5n.24xlarge,reserved_1y,all_upfront,6.148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:42.679134 +AWS,eu-west-3,r5n.24xlarge,reserved_1y,no_upfront,6.148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:26.453894 +AWS,eu-west-3,r5n.24xlarge,reserved_1y,partial_upfront,6.148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:08.260251 +AWS,eu-west-3,r5n.24xlarge,reserved_3y,all_upfront,6.148,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:41.188414 +AWS,eu-west-3,r5n.24xlarge,reserved_3y,no_upfront,6.148,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:31.296196 +AWS,eu-west-3,r5n.24xlarge,reserved_3y,partial_upfront,6.148,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:18.784558 +AWS,eu-west-3,r5n.24xlarge,spot,NA,2.117388,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773329 +AWS,eu-west-3,r5n.2xlarge,on_demand,NA,0.7,USD,AWS Pricing API,2025-11-30T09:02:54.398403 +AWS,eu-west-3,r5n.2xlarge,reserved_1y,all_upfront,0.478196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:23.617677 +AWS,eu-west-3,r5n.2xlarge,reserved_1y,no_upfront,0.478196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:07.188900 +AWS,eu-west-3,r5n.2xlarge,reserved_1y,partial_upfront,0.478196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:49.226130 +AWS,eu-west-3,r5n.2xlarge,reserved_3y,all_upfront,0.159399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:22.533911 +AWS,eu-west-3,r5n.2xlarge,reserved_3y,no_upfront,0.159399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:11.854744 +AWS,eu-west-3,r5n.2xlarge,reserved_3y,partial_upfront,0.159399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:59.857413 +AWS,eu-west-3,r5n.2xlarge,spot,NA,0.260214,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772996 +AWS,eu-west-3,r5n.4xlarge,on_demand,NA,1.4,USD,AWS Pricing API,2025-11-30T09:03:49.774534 +AWS,eu-west-3,r5n.4xlarge,reserved_1y,all_upfront,1.799087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:19.386110 +AWS,eu-west-3,r5n.4xlarge,reserved_1y,no_upfront,1.799087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:03.405450 +AWS,eu-west-3,r5n.4xlarge,reserved_1y,partial_upfront,1.799087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:44.631870 +AWS,eu-west-3,r5n.4xlarge,reserved_3y,all_upfront,0.599696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:17.063568 +AWS,eu-west-3,r5n.4xlarge,reserved_3y,no_upfront,0.599696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:08.490723 +AWS,eu-west-3,r5n.4xlarge,reserved_3y,partial_upfront,0.599696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:55.055530 +AWS,eu-west-3,r5n.4xlarge,spot,NA,0.605269,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773929 +AWS,eu-west-3,r5n.8xlarge,on_demand,NA,2.8,USD,AWS Pricing API,2025-11-30T09:03:36.068715 +AWS,eu-west-3,r5n.8xlarge,reserved_1y,all_upfront,1.951913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:05.612716 +AWS,eu-west-3,r5n.8xlarge,reserved_1y,no_upfront,1.951913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:49.420169 +AWS,eu-west-3,r5n.8xlarge,reserved_1y,partial_upfront,1.951913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:30.901199 +AWS,eu-west-3,r5n.8xlarge,reserved_3y,all_upfront,1.301304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:03.559974 +AWS,eu-west-3,r5n.8xlarge,reserved_3y,no_upfront,1.301304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:54.474619 +AWS,eu-west-3,r5n.8xlarge,reserved_3y,partial_upfront,1.301304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:41.375210 +AWS,eu-west-3,r5n.8xlarge,spot,NA,1.139933,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773729 +AWS,eu-west-3,r5n.large,on_demand,NA,0.175,USD,AWS Pricing API,2025-11-30T09:03:57.039265 +AWS,eu-west-3,r5n.large,reserved_1y,all_upfront,0.119521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:26.709047 +AWS,eu-west-3,r5n.large,reserved_1y,no_upfront,0.119521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:10.773091 +AWS,eu-west-3,r5n.large,reserved_1y,partial_upfront,0.119521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:51.916516 +AWS,eu-west-3,r5n.large,reserved_3y,all_upfront,0.03984,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:24.202946 +AWS,eu-west-3,r5n.large,reserved_3y,no_upfront,0.03984,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:16.079074 +AWS,eu-west-3,r5n.large,reserved_3y,partial_upfront,0.03984,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:02.389329 +AWS,eu-west-3,r5n.large,spot,NA,0.070566,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774096 +AWS,eu-west-3,r5n.metal,on_demand,NA,8.4,USD,AWS Pricing API,2025-11-30T09:03:37.019242 +AWS,eu-west-3,r5n.metal,reserved_1y,all_upfront,7.34342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:06.566447 +AWS,eu-west-3,r5n.metal,reserved_1y,no_upfront,7.34342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:50.373356 +AWS,eu-west-3,r5n.metal,reserved_1y,partial_upfront,7.34342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:31.859312 +AWS,eu-west-3,r5n.metal,reserved_3y,all_upfront,3.671807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:04.487512 +AWS,eu-west-3,r5n.metal,reserved_3y,no_upfront,3.671807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:55.452721 +AWS,eu-west-3,r5n.metal,reserved_3y,partial_upfront,3.671807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:42.313593 +AWS,eu-west-3,r5n.metal,spot,NA,1.818967,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773741 +AWS,eu-west-3,r5n.xlarge,on_demand,NA,0.35,USD,AWS Pricing API,2025-11-30T09:03:15.472660 +AWS,eu-west-3,r5n.xlarge,reserved_1y,all_upfront,0.449772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:44.696491 +AWS,eu-west-3,r5n.xlarge,reserved_1y,no_upfront,0.449772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:28.483833 +AWS,eu-west-3,r5n.xlarge,reserved_1y,partial_upfront,0.449772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:10.291234 +AWS,eu-west-3,r5n.xlarge,reserved_3y,all_upfront,0.149924,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:43.158917 +AWS,eu-west-3,r5n.xlarge,reserved_3y,no_upfront,0.149924,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:33.344656 +AWS,eu-west-3,r5n.xlarge,reserved_3y,partial_upfront,0.149924,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:20.780519 +AWS,eu-west-3,r5n.xlarge,spot,NA,0.111184,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773396 +AWS,eu-west-3,r6g.12xlarge,on_demand,NA,2.832,USD,AWS Pricing API,2025-11-30T09:03:08.767275 +AWS,eu-west-3,r6g.12xlarge,reserved_1y,all_upfront,1.703941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:37.946007 +AWS,eu-west-3,r6g.12xlarge,reserved_1y,no_upfront,1.703941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:21.695205 +AWS,eu-west-3,r6g.12xlarge,reserved_1y,partial_upfront,1.703941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:03.525681 +AWS,eu-west-3,r6g.12xlarge,reserved_3y,all_upfront,1.13598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:36.557000 +AWS,eu-west-3,r6g.12xlarge,reserved_3y,no_upfront,1.13598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:26.482657 +AWS,eu-west-3,r6g.12xlarge,reserved_3y,partial_upfront,1.13598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:14.093138 +AWS,eu-west-3,r6g.12xlarge,spot,NA,0.947398,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773263 +AWS,eu-west-3,r6g.16xlarge,on_demand,NA,3.776,USD,AWS Pricing API,2025-11-30T09:03:05.679558 +AWS,eu-west-3,r6g.16xlarge,reserved_1y,all_upfront,2.271959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:34.854223 +AWS,eu-west-3,r6g.16xlarge,reserved_1y,no_upfront,2.271959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:18.586882 +AWS,eu-west-3,r6g.16xlarge,reserved_1y,partial_upfront,2.271959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:00.406169 +AWS,eu-west-3,r6g.16xlarge,reserved_3y,all_upfront,1.514653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:33.505436 +AWS,eu-west-3,r6g.16xlarge,reserved_3y,no_upfront,1.514653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:23.294499 +AWS,eu-west-3,r6g.16xlarge,reserved_3y,partial_upfront,1.514653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:11.035171 +AWS,eu-west-3,r6g.16xlarge,spot,NA,1.21001,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773206 +AWS,eu-west-3,r6g.2xlarge,on_demand,NA,0.472,USD,AWS Pricing API,2025-11-30T09:03:57.965395 +AWS,eu-west-3,r6g.2xlarge,reserved_1y,all_upfront,0.375963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:27.648713 +AWS,eu-west-3,r6g.2xlarge,reserved_1y,no_upfront,0.375963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:11.718161 +AWS,eu-west-3,r6g.2xlarge,reserved_1y,partial_upfront,0.375963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:52.850156 +AWS,eu-west-3,r6g.2xlarge,reserved_3y,all_upfront,0.187988,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:25.121734 +AWS,eu-west-3,r6g.2xlarge,reserved_3y,no_upfront,0.187988,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:17.035279 +AWS,eu-west-3,r6g.2xlarge,reserved_3y,partial_upfront,0.187988,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:03.323932 +AWS,eu-west-3,r6g.2xlarge,spot,NA,0.160054,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774112 +AWS,eu-west-3,r6g.4xlarge,on_demand,NA,0.944,USD,AWS Pricing API,2025-11-30T09:02:55.463634 +AWS,eu-west-3,r6g.4xlarge,reserved_1y,all_upfront,0.4061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:24.694565 +AWS,eu-west-3,r6g.4xlarge,reserved_1y,no_upfront,0.4061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:08.275232 +AWS,eu-west-3,r6g.4xlarge,reserved_1y,partial_upfront,0.4061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:50.331125 +AWS,eu-west-3,r6g.4xlarge,reserved_3y,all_upfront,0.4061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:23.586136 +AWS,eu-west-3,r6g.4xlarge,reserved_3y,no_upfront,0.4061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:12.955389 +AWS,eu-west-3,r6g.4xlarge,reserved_3y,partial_upfront,0.4061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:00.922430 +AWS,eu-west-3,r6g.4xlarge,spot,NA,0.378876,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773012 +AWS,eu-west-3,r6g.8xlarge,on_demand,NA,1.888,USD,AWS Pricing API,2025-11-30T09:03:34.053941 +AWS,eu-west-3,r6g.8xlarge,reserved_1y,all_upfront,1.1928,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:03.590128 +AWS,eu-west-3,r6g.8xlarge,reserved_1y,no_upfront,1.1928,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:47.379534 +AWS,eu-west-3,r6g.8xlarge,reserved_1y,partial_upfront,1.1928,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:28.879298 +AWS,eu-west-3,r6g.8xlarge,reserved_3y,all_upfront,1.1928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:01.567466 +AWS,eu-west-3,r6g.8xlarge,reserved_3y,no_upfront,1.1928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:52.427673 +AWS,eu-west-3,r6g.8xlarge,reserved_3y,partial_upfront,1.1928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:39.362688 +AWS,eu-west-3,r6g.8xlarge,spot,NA,0.670489,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773710 +AWS,eu-west-3,r6g.large,on_demand,NA,0.118,USD,AWS Pricing API,2025-11-30T09:03:12.927058 +AWS,eu-west-3,r6g.large,reserved_1y,all_upfront,0.0616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:42.149083 +AWS,eu-west-3,r6g.large,reserved_1y,no_upfront,0.0616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:25.899223 +AWS,eu-west-3,r6g.large,reserved_1y,partial_upfront,0.0616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:07.722928 +AWS,eu-west-3,r6g.large,reserved_3y,all_upfront,0.0616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:40.654295 +AWS,eu-west-3,r6g.large,reserved_3y,no_upfront,0.0616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:30.738883 +AWS,eu-west-3,r6g.large,reserved_3y,partial_upfront,0.0616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:18.252657 +AWS,eu-west-3,r6g.large,spot,NA,0.043664,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773319 +AWS,eu-west-3,r6g.xlarge,on_demand,NA,0.236,USD,AWS Pricing API,2025-11-30T09:02:48.453036 +AWS,eu-west-3,r6g.xlarge,reserved_1y,all_upfront,0.160731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:17.723628 +AWS,eu-west-3,r6g.xlarge,reserved_1y,no_upfront,0.160731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:01.133807 +AWS,eu-west-3,r6g.xlarge,reserved_1y,partial_upfront,0.160731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:43.328948 +AWS,eu-west-3,r6g.xlarge,reserved_3y,all_upfront,0.053577,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:16.685344 +AWS,eu-west-3,r6g.xlarge,reserved_3y,no_upfront,0.053577,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:05.758354 +AWS,eu-west-3,r6g.xlarge,reserved_3y,partial_upfront,0.053577,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:53.992718 +AWS,eu-west-3,r6g.xlarge,spot,NA,0.070591,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772924 +AWS,eu-west-3,r6gd.12xlarge,on_demand,NA,3.2448,USD,AWS Pricing API,2025-11-30T09:03:44.379690 +AWS,eu-west-3,r6gd.12xlarge,reserved_1y,all_upfront,2.241576,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:13.973670 +AWS,eu-west-3,r6gd.12xlarge,reserved_1y,no_upfront,2.241576,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:57.876060 +AWS,eu-west-3,r6gd.12xlarge,reserved_1y,partial_upfront,2.241576,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:39.233086 +AWS,eu-west-3,r6gd.12xlarge,reserved_3y,all_upfront,1.494392,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:11.790311 +AWS,eu-west-3,r6gd.12xlarge,reserved_3y,no_upfront,1.494392,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:02.996245 +AWS,eu-west-3,r6gd.12xlarge,reserved_3y,partial_upfront,1.494392,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:49.715518 +AWS,eu-west-3,r6gd.12xlarge,spot,NA,1.080736,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773858 +AWS,eu-west-3,r6gd.16xlarge,on_demand,NA,4.3264,USD,AWS Pricing API,2025-11-30T09:03:11.448175 +AWS,eu-west-3,r6gd.16xlarge,reserved_1y,all_upfront,2.988806,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:40.676190 +AWS,eu-west-3,r6gd.16xlarge,reserved_1y,no_upfront,2.988806,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:24.404489 +AWS,eu-west-3,r6gd.16xlarge,reserved_1y,partial_upfront,2.988806,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:06.235847 +AWS,eu-west-3,r6gd.16xlarge,reserved_3y,all_upfront,1.992535,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:39.202085 +AWS,eu-west-3,r6gd.16xlarge,reserved_3y,no_upfront,1.992535,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:29.225041 +AWS,eu-west-3,r6gd.16xlarge,reserved_3y,partial_upfront,1.992535,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:16.764227 +AWS,eu-west-3,r6gd.16xlarge,spot,NA,1.294154,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773301 +AWS,eu-west-3,r6gd.2xlarge,on_demand,NA,0.5408,USD,AWS Pricing API,2025-11-30T09:02:49.903360 +AWS,eu-west-3,r6gd.2xlarge,reserved_1y,all_upfront,0.610046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:19.193023 +AWS,eu-west-3,r6gd.2xlarge,reserved_1y,no_upfront,0.610046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:02.689398 +AWS,eu-west-3,r6gd.2xlarge,reserved_1y,partial_upfront,0.610046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:44.807020 +AWS,eu-west-3,r6gd.2xlarge,reserved_3y,all_upfront,0.203349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:18.144017 +AWS,eu-west-3,r6gd.2xlarge,reserved_3y,no_upfront,0.203349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:07.267878 +AWS,eu-west-3,r6gd.2xlarge,reserved_3y,partial_upfront,0.203349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:55.448683 +AWS,eu-west-3,r6gd.2xlarge,spot,NA,0.167067,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772954 +AWS,eu-west-3,r6gd.4xlarge,on_demand,NA,1.0816,USD,AWS Pricing API,2025-11-30T09:02:56.398492 +AWS,eu-west-3,r6gd.4xlarge,reserved_1y,all_upfront,0.5642,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:25.651276 +AWS,eu-west-3,r6gd.4xlarge,reserved_1y,no_upfront,0.5642,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:09.233455 +AWS,eu-west-3,r6gd.4xlarge,reserved_1y,partial_upfront,0.5642,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:51.274534 +AWS,eu-west-3,r6gd.4xlarge,reserved_3y,all_upfront,0.5642,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:24.508683 +AWS,eu-west-3,r6gd.4xlarge,reserved_3y,no_upfront,0.5642,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:13.915191 +AWS,eu-west-3,r6gd.4xlarge,reserved_3y,partial_upfront,0.5642,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:01.877586 +AWS,eu-west-3,r6gd.4xlarge,spot,NA,0.382934,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773032 +AWS,eu-west-3,r6gd.8xlarge,on_demand,NA,2.1632,USD,AWS Pricing API,2025-11-30T09:02:50.713153 +AWS,eu-west-3,r6gd.8xlarge,reserved_1y,all_upfront,1.730545,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:20.006551 +AWS,eu-west-3,r6gd.8xlarge,reserved_1y,no_upfront,1.730545,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:03.510495 +AWS,eu-west-3,r6gd.8xlarge,reserved_1y,partial_upfront,1.730545,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:45.604693 +AWS,eu-west-3,r6gd.8xlarge,reserved_3y,all_upfront,0.865248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:18.931267 +AWS,eu-west-3,r6gd.8xlarge,reserved_3y,no_upfront,0.865248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:08.094075 +AWS,eu-west-3,r6gd.8xlarge,reserved_3y,partial_upfront,0.865248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:56.244810 +AWS,eu-west-3,r6gd.8xlarge,spot,NA,0.913362,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772962 +AWS,eu-west-3,r6gd.large,on_demand,NA,0.1352,USD,AWS Pricing API,2025-11-30T09:03:26.070510 +AWS,eu-west-3,r6gd.large,reserved_1y,all_upfront,0.081125,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:55.416759 +AWS,eu-west-3,r6gd.large,reserved_1y,no_upfront,0.081125,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:39.192796 +AWS,eu-west-3,r6gd.large,reserved_1y,partial_upfront,0.081125,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:20.849127 +AWS,eu-west-3,r6gd.large,reserved_3y,all_upfront,0.054108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:53.645147 +AWS,eu-west-3,r6gd.large,reserved_3y,no_upfront,0.054108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:44.200492 +AWS,eu-west-3,r6gd.large,reserved_3y,partial_upfront,0.054108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:31.353107 +AWS,eu-west-3,r6gd.large,spot,NA,0.040403,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773585 +AWS,eu-west-3,r6gd.xlarge,on_demand,NA,0.2704,USD,AWS Pricing API,2025-11-30T09:03:10.373155 +AWS,eu-west-3,r6gd.xlarge,reserved_1y,all_upfront,0.216315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:39.583985 +AWS,eu-west-3,r6gd.xlarge,reserved_1y,no_upfront,0.216315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:23.321712 +AWS,eu-west-3,r6gd.xlarge,reserved_1y,partial_upfront,0.216315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:05.149550 +AWS,eu-west-3,r6gd.xlarge,reserved_3y,all_upfront,0.108172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:38.151909 +AWS,eu-west-3,r6gd.xlarge,reserved_3y,no_upfront,0.108172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:28.142455 +AWS,eu-west-3,r6gd.xlarge,reserved_3y,partial_upfront,0.108172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:15.705356 +AWS,eu-west-3,r6gd.xlarge,spot,NA,0.081046,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773279 +AWS,eu-west-3,r6i.12xlarge,on_demand,NA,3.552,USD,AWS Pricing API,2025-11-30T09:03:50.057228 +AWS,eu-west-3,r6i.12xlarge,reserved_1y,all_upfront,2.447973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:19.657168 +AWS,eu-west-3,r6i.12xlarge,reserved_1y,no_upfront,2.447973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:03.675710 +AWS,eu-west-3,r6i.12xlarge,reserved_1y,partial_upfront,2.447973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:44.899948 +AWS,eu-west-3,r6i.12xlarge,reserved_3y,all_upfront,1.631991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:17.333332 +AWS,eu-west-3,r6i.12xlarge,reserved_3y,no_upfront,1.631991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:08.762884 +AWS,eu-west-3,r6i.12xlarge,reserved_3y,partial_upfront,1.631991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:55.319807 +AWS,eu-west-3,r6i.12xlarge,spot,NA,1.447904,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773953 +AWS,eu-west-3,r6i.16xlarge,on_demand,NA,4.736,USD,AWS Pricing API,2025-11-30T09:02:59.098603 +AWS,eu-west-3,r6i.16xlarge,reserved_1y,all_upfront,3.13992,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:28.339053 +AWS,eu-west-3,r6i.16xlarge,reserved_1y,no_upfront,3.13992,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:12.002283 +AWS,eu-west-3,r6i.16xlarge,reserved_1y,partial_upfront,3.13992,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:53.948137 +AWS,eu-west-3,r6i.16xlarge,reserved_3y,all_upfront,3.13992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:27.157172 +AWS,eu-west-3,r6i.16xlarge,reserved_3y,no_upfront,3.13992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:16.671267 +AWS,eu-west-3,r6i.16xlarge,reserved_3y,partial_upfront,3.13992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:04.573362 +AWS,eu-west-3,r6i.16xlarge,spot,NA,1.457519,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773065 +AWS,eu-west-3,r6i.24xlarge,on_demand,NA,7.104,USD,AWS Pricing API,2025-11-30T09:03:05.534614 +AWS,eu-west-3,r6i.24xlarge,reserved_1y,all_upfront,5.1408,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:34.719386 +AWS,eu-west-3,r6i.24xlarge,reserved_1y,no_upfront,5.1408,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:18.452058 +AWS,eu-west-3,r6i.24xlarge,reserved_1y,partial_upfront,5.1408,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:00.271199 +AWS,eu-west-3,r6i.24xlarge,reserved_3y,all_upfront,5.1408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:33.370947 +AWS,eu-west-3,r6i.24xlarge,reserved_3y,no_upfront,5.1408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:23.150404 +AWS,eu-west-3,r6i.24xlarge,reserved_3y,partial_upfront,5.1408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:10.901624 +AWS,eu-west-3,r6i.24xlarge,spot,NA,2.465943,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773170 +AWS,eu-west-3,r6i.2xlarge,on_demand,NA,0.592,USD,AWS Pricing API,2025-11-30T09:03:53.532499 +AWS,eu-west-3,r6i.2xlarge,reserved_1y,all_upfront,0.840868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:23.200062 +AWS,eu-west-3,r6i.2xlarge,reserved_1y,no_upfront,0.840868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:07.225530 +AWS,eu-west-3,r6i.2xlarge,reserved_1y,partial_upfront,0.840868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:48.418863 +AWS,eu-west-3,r6i.2xlarge,reserved_3y,all_upfront,0.280289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:20.770637 +AWS,eu-west-3,r6i.2xlarge,reserved_3y,no_upfront,0.280289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:12.495321 +AWS,eu-west-3,r6i.2xlarge,reserved_3y,partial_upfront,0.280289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:58.831378 +AWS,eu-west-3,r6i.2xlarge,spot,NA,0.222421,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774014 +AWS,eu-west-3,r6i.32xlarge,on_demand,NA,9.472,USD,AWS Pricing API,2025-11-30T09:02:59.233685 +AWS,eu-west-3,r6i.32xlarge,reserved_1y,all_upfront,5.861187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:28.474846 +AWS,eu-west-3,r6i.32xlarge,reserved_1y,no_upfront,5.861187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:12.140415 +AWS,eu-west-3,r6i.32xlarge,reserved_1y,partial_upfront,5.861187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:54.084556 +AWS,eu-west-3,r6i.32xlarge,reserved_3y,all_upfront,1.953729,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:27.288504 +AWS,eu-west-3,r6i.32xlarge,reserved_3y,no_upfront,1.953729,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:16.817307 +AWS,eu-west-3,r6i.32xlarge,reserved_3y,partial_upfront,1.953729,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:04.709236 +AWS,eu-west-3,r6i.32xlarge,spot,NA,2.137052,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773077 +AWS,eu-west-3,r6i.4xlarge,on_demand,NA,1.184,USD,AWS Pricing API,2025-11-30T09:03:20.447492 +AWS,eu-west-3,r6i.4xlarge,reserved_1y,all_upfront,0.732648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:49.713113 +AWS,eu-west-3,r6i.4xlarge,reserved_1y,no_upfront,0.732648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:33.519960 +AWS,eu-west-3,r6i.4xlarge,reserved_1y,partial_upfront,0.732648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:15.244213 +AWS,eu-west-3,r6i.4xlarge,reserved_3y,all_upfront,0.244216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:48.065583 +AWS,eu-west-3,r6i.4xlarge,reserved_3y,no_upfront,0.244216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:38.444742 +AWS,eu-west-3,r6i.4xlarge,reserved_3y,partial_upfront,0.244216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:25.750710 +AWS,eu-west-3,r6i.4xlarge,spot,NA,0.484503,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773507 +AWS,eu-west-3,r6i.8xlarge,on_demand,NA,2.368,USD,AWS Pricing API,2025-11-30T09:03:24.748349 +AWS,eu-west-3,r6i.8xlarge,reserved_1y,all_upfront,1.631982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:54.079352 +AWS,eu-west-3,r6i.8xlarge,reserved_1y,no_upfront,1.631982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:37.847847 +AWS,eu-west-3,r6i.8xlarge,reserved_1y,partial_upfront,1.631982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:19.527020 +AWS,eu-west-3,r6i.8xlarge,reserved_3y,all_upfront,1.087994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:52.305143 +AWS,eu-west-3,r6i.8xlarge,reserved_3y,no_upfront,1.087994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:42.836217 +AWS,eu-west-3,r6i.8xlarge,reserved_3y,partial_upfront,1.087994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:30.025283 +AWS,eu-west-3,r6i.8xlarge,spot,NA,0.93045,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773577 +AWS,eu-west-3,r6i.large,on_demand,NA,0.148,USD,AWS Pricing API,2025-11-30T09:03:40.225811 +AWS,eu-west-3,r6i.large,reserved_1y,all_upfront,0.21016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:09.780453 +AWS,eu-west-3,r6i.large,reserved_1y,no_upfront,0.21016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:53.633791 +AWS,eu-west-3,r6i.large,reserved_1y,partial_upfront,0.21016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:35.081893 +AWS,eu-west-3,r6i.large,reserved_3y,all_upfront,0.070053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:07.674676 +AWS,eu-west-3,r6i.large,reserved_3y,no_upfront,0.070053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:58.738626 +AWS,eu-west-3,r6i.large,reserved_3y,partial_upfront,0.070053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:45.558376 +AWS,eu-west-3,r6i.large,spot,NA,0.053206,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773795 +AWS,eu-west-3,r6i.xlarge,on_demand,NA,0.296,USD,AWS Pricing API,2025-11-30T09:03:02.670615 +AWS,eu-west-3,r6i.xlarge,reserved_1y,all_upfront,0.15444,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:31.894482 +AWS,eu-west-3,r6i.xlarge,reserved_1y,no_upfront,0.15444,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:15.577614 +AWS,eu-west-3,r6i.xlarge,reserved_1y,partial_upfront,0.15444,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:57.458984 +AWS,eu-west-3,r6i.xlarge,reserved_3y,all_upfront,0.15444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:30.596867 +AWS,eu-west-3,r6i.xlarge,reserved_3y,no_upfront,0.15444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:20.269809 +AWS,eu-west-3,r6i.xlarge,reserved_3y,partial_upfront,0.15444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:08.073130 +AWS,eu-west-3,r6i.xlarge,spot,NA,0.109371,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773129 +AWS,eu-west-3,r7g.12xlarge,on_demand,NA,3.0192,USD,AWS Pricing API,2025-11-30T09:03:18.840342 +AWS,eu-west-3,r7g.12xlarge,reserved_1y,all_upfront,2.1848,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:48.074360 +AWS,eu-west-3,r7g.12xlarge,reserved_1y,no_upfront,2.1848,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:31.896924 +AWS,eu-west-3,r7g.12xlarge,reserved_1y,partial_upfront,2.1848,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:13.633148 +AWS,eu-west-3,r7g.12xlarge,reserved_3y,all_upfront,2.1848,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:46.480461 +AWS,eu-west-3,r7g.12xlarge,reserved_3y,no_upfront,2.1848,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:36.792992 +AWS,eu-west-3,r7g.12xlarge,reserved_3y,partial_upfront,2.1848,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:24.140974 +AWS,eu-west-3,r7g.12xlarge,spot,NA,1.342232,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773462 +AWS,eu-west-3,r7g.16xlarge,on_demand,NA,4.0256,USD,AWS Pricing API,2025-11-30T09:03:04.166583 +AWS,eu-west-3,r7g.16xlarge,reserved_1y,all_upfront,3.370011,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:33.371807 +AWS,eu-west-3,r7g.16xlarge,reserved_1y,no_upfront,3.370011,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:17.085114 +AWS,eu-west-3,r7g.16xlarge,reserved_1y,partial_upfront,3.370011,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:58.920549 +AWS,eu-west-3,r7g.16xlarge,reserved_3y,all_upfront,1.685004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:32.046281 +AWS,eu-west-3,r7g.16xlarge,reserved_3y,no_upfront,1.685004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:21.787243 +AWS,eu-west-3,r7g.16xlarge,reserved_3y,partial_upfront,1.685004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:09.558685 +AWS,eu-west-3,r7g.16xlarge,spot,NA,1.515092,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773158 +AWS,eu-west-3,r7g.2xlarge,on_demand,NA,0.5032,USD,AWS Pricing API,2025-11-30T09:03:12.254734 +AWS,eu-west-3,r7g.2xlarge,reserved_1y,all_upfront,0.3641,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:41.478227 +AWS,eu-west-3,r7g.2xlarge,reserved_1y,no_upfront,0.3641,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:25.222380 +AWS,eu-west-3,r7g.2xlarge,reserved_1y,partial_upfront,0.3641,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:07.052858 +AWS,eu-west-3,r7g.2xlarge,reserved_3y,all_upfront,0.3641,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:39.997143 +AWS,eu-west-3,r7g.2xlarge,reserved_3y,no_upfront,0.3641,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:30.055180 +AWS,eu-west-3,r7g.2xlarge,reserved_3y,partial_upfront,0.3641,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:17.592567 +AWS,eu-west-3,r7g.2xlarge,spot,NA,0.172281,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773314 +AWS,eu-west-3,r7g.4xlarge,on_demand,NA,1.0064,USD,AWS Pricing API,2025-11-30T09:03:02.806119 +AWS,eu-west-3,r7g.4xlarge,reserved_1y,all_upfront,0.693604,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:32.029980 +AWS,eu-west-3,r7g.4xlarge,reserved_1y,no_upfront,0.693604,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:15.715519 +AWS,eu-west-3,r7g.4xlarge,reserved_1y,partial_upfront,0.693604,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:57.592095 +AWS,eu-west-3,r7g.4xlarge,reserved_3y,all_upfront,0.462401,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:30.729493 +AWS,eu-west-3,r7g.4xlarge,reserved_3y,no_upfront,0.462401,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:20.405858 +AWS,eu-west-3,r7g.4xlarge,reserved_3y,partial_upfront,0.462401,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:08.206951 +AWS,eu-west-3,r7g.4xlarge,spot,NA,0.437464,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773133 +AWS,eu-west-3,r7g.8xlarge,on_demand,NA,2.0128,USD,AWS Pricing API,2025-11-30T09:03:34.455556 +AWS,eu-west-3,r7g.8xlarge,reserved_1y,all_upfront,1.685113,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:03.993621 +AWS,eu-west-3,r7g.8xlarge,reserved_1y,no_upfront,1.685113,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:47.786614 +AWS,eu-west-3,r7g.8xlarge,reserved_1y,partial_upfront,1.685113,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:29.282391 +AWS,eu-west-3,r7g.8xlarge,reserved_3y,all_upfront,0.842571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:01.970227 +AWS,eu-west-3,r7g.8xlarge,reserved_3y,no_upfront,0.842571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:52.840097 +AWS,eu-west-3,r7g.8xlarge,reserved_3y,partial_upfront,0.842571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:39.762843 +AWS,eu-west-3,r7g.8xlarge,spot,NA,0.782051,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773698 +AWS,eu-west-3,r7g.large,on_demand,NA,0.1258,USD,AWS Pricing API,2025-11-30T09:03:29.013325 +AWS,eu-west-3,r7g.large,reserved_1y,all_upfront,0.091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:58.470626 +AWS,eu-west-3,r7g.large,reserved_1y,no_upfront,0.091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:42.204306 +AWS,eu-west-3,r7g.large,reserved_1y,partial_upfront,0.091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:23.808481 +AWS,eu-west-3,r7g.large,reserved_3y,all_upfront,0.091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:56.548582 +AWS,eu-west-3,r7g.large,reserved_3y,no_upfront,0.091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:47.225626 +AWS,eu-west-3,r7g.large,reserved_3y,partial_upfront,0.091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:34.280945 +AWS,eu-west-3,r7g.large,spot,NA,0.038432,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773631 +AWS,eu-west-3,r7g.xlarge,on_demand,NA,0.2516,USD,AWS Pricing API,2025-11-30T09:03:31.411568 +AWS,eu-west-3,r7g.xlarge,reserved_1y,all_upfront,0.1821,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:00.892870 +AWS,eu-west-3,r7g.xlarge,reserved_1y,no_upfront,0.1821,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:44.651515 +AWS,eu-west-3,r7g.xlarge,reserved_1y,partial_upfront,0.1821,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:26.203694 +AWS,eu-west-3,r7g.xlarge,reserved_3y,all_upfront,0.1821,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:58.936253 +AWS,eu-west-3,r7g.xlarge,reserved_3y,no_upfront,0.1821,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:49.695474 +AWS,eu-west-3,r7g.xlarge,reserved_3y,partial_upfront,0.1821,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:36.675960 +AWS,eu-west-3,r7g.xlarge,spot,NA,0.07583,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773659 +AWS,eu-west-3,r7i.12xlarge,on_demand,NA,3.7296,USD,AWS Pricing API,2025-11-30T09:03:40.774551 +AWS,eu-west-3,r7i.12xlarge,reserved_1y,all_upfront,2.354981,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:10.328824 +AWS,eu-west-3,r7i.12xlarge,reserved_1y,no_upfront,2.354981,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:54.176427 +AWS,eu-west-3,r7i.12xlarge,reserved_1y,partial_upfront,2.354981,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:35.618916 +AWS,eu-west-3,r7i.12xlarge,reserved_3y,all_upfront,1.569974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:08.209231 +AWS,eu-west-3,r7i.12xlarge,reserved_3y,no_upfront,1.569974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:59.291597 +AWS,eu-west-3,r7i.12xlarge,reserved_3y,partial_upfront,1.569974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:46.101963 +AWS,eu-west-3,r7i.12xlarge,spot,NA,1.487396,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773811 +AWS,eu-west-3,r7i.16xlarge,on_demand,NA,4.9728,USD,AWS Pricing API,2025-11-30T09:03:38.897732 +AWS,eu-west-3,r7i.16xlarge,reserved_1y,all_upfront,7.063128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:08.440604 +AWS,eu-west-3,r7i.16xlarge,reserved_1y,no_upfront,7.063128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:52.278643 +AWS,eu-west-3,r7i.16xlarge,reserved_1y,partial_upfront,7.063128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:33.736683 +AWS,eu-west-3,r7i.16xlarge,reserved_3y,all_upfront,2.354376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:06.348935 +AWS,eu-west-3,r7i.16xlarge,reserved_3y,no_upfront,2.354376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:57.380435 +AWS,eu-west-3,r7i.16xlarge,reserved_3y,partial_upfront,2.354376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:44.207860 +AWS,eu-west-3,r7i.16xlarge,spot,NA,1.679946,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773788 +AWS,eu-west-3,r7i.24xlarge,on_demand,NA,7.4592,USD,AWS Pricing API,2025-11-30T09:03:35.673404 +AWS,eu-west-3,r7i.24xlarge,reserved_1y,all_upfront,4.615639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:05.204675 +AWS,eu-west-3,r7i.24xlarge,reserved_1y,no_upfront,4.615639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:49.008774 +AWS,eu-west-3,r7i.24xlarge,reserved_1y,partial_upfront,4.615639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:30.500843 +AWS,eu-west-3,r7i.24xlarge,reserved_3y,all_upfront,1.538546,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:03.168028 +AWS,eu-west-3,r7i.24xlarge,reserved_3y,no_upfront,1.538546,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:54.066579 +AWS,eu-west-3,r7i.24xlarge,reserved_3y,partial_upfront,1.538546,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:40.969960 +AWS,eu-west-3,r7i.24xlarge,spot,NA,2.478956,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773717 +AWS,eu-west-3,r7i.2xlarge,on_demand,NA,0.6216,USD,AWS Pricing API,2025-11-30T09:03:37.952026 +AWS,eu-west-3,r7i.2xlarge,reserved_1y,all_upfront,0.419863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:07.497814 +AWS,eu-west-3,r7i.2xlarge,reserved_1y,no_upfront,0.419863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:51.321093 +AWS,eu-west-3,r7i.2xlarge,reserved_1y,partial_upfront,0.419863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:32.797538 +AWS,eu-west-3,r7i.2xlarge,reserved_3y,all_upfront,0.139954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:05.420168 +AWS,eu-west-3,r7i.2xlarge,reserved_3y,no_upfront,0.139954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:56.419539 +AWS,eu-west-3,r7i.2xlarge,reserved_3y,partial_upfront,0.139954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:43.256890 +AWS,eu-west-3,r7i.2xlarge,spot,NA,0.203051,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773772 +AWS,eu-west-3,r7i.48xlarge,on_demand,NA,14.9184,USD,AWS Pricing API,2025-11-30T09:03:58.230843 +AWS,eu-west-3,r7i.48xlarge,reserved_1y,all_upfront,10.79569,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:27.928676 +AWS,eu-west-3,r7i.48xlarge,reserved_1y,no_upfront,10.79569,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:18:11.990856 +AWS,eu-west-3,r7i.48xlarge,reserved_1y,partial_upfront,10.79569,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:53.125084 +AWS,eu-west-3,r7i.48xlarge,reserved_3y,all_upfront,10.79569,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:25.381712 +AWS,eu-west-3,r7i.48xlarge,reserved_3y,no_upfront,10.79569,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:17.317065 +AWS,eu-west-3,r7i.48xlarge,reserved_3y,partial_upfront,10.79569,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:45:03.590513 +AWS,eu-west-3,r7i.48xlarge,spot,NA,4.591849,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.774133 +AWS,eu-west-3,r7i.4xlarge,on_demand,NA,1.2432,USD,AWS Pricing API,2025-11-30T09:03:35.537692 +AWS,eu-west-3,r7i.4xlarge,reserved_1y,all_upfront,0.839612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:05.071066 +AWS,eu-west-3,r7i.4xlarge,reserved_1y,no_upfront,0.839612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:48.873259 +AWS,eu-west-3,r7i.4xlarge,reserved_1y,partial_upfront,0.839612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:30.356269 +AWS,eu-west-3,r7i.4xlarge,reserved_3y,all_upfront,0.279871,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:03.034439 +AWS,eu-west-3,r7i.4xlarge,reserved_3y,no_upfront,0.279871,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:53.926847 +AWS,eu-west-3,r7i.4xlarge,reserved_3y,partial_upfront,0.279871,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:40.836423 +AWS,eu-west-3,r7i.4xlarge,spot,NA,0.458987,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773725 +AWS,eu-west-3,r7i.8xlarge,on_demand,NA,2.4864,USD,AWS Pricing API,2025-11-30T09:02:52.677672 +AWS,eu-west-3,r7i.8xlarge,reserved_1y,all_upfront,1.679338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:21.881919 +AWS,eu-west-3,r7i.8xlarge,reserved_1y,no_upfront,1.679338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:05.414771 +AWS,eu-west-3,r7i.8xlarge,reserved_1y,partial_upfront,1.679338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:38:47.486608 +AWS,eu-west-3,r7i.8xlarge,reserved_3y,all_upfront,0.559779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:20.761002 +AWS,eu-west-3,r7i.8xlarge,reserved_3y,no_upfront,0.559779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:10.072775 +AWS,eu-west-3,r7i.8xlarge,reserved_3y,partial_upfront,0.559779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:43:58.131075 +AWS,eu-west-3,r7i.8xlarge,spot,NA,0.974502,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.772983 +AWS,eu-west-3,r7i.large,on_demand,NA,0.1554,USD,AWS Pricing API,2025-11-30T09:03:06.891254 +AWS,eu-west-3,r7i.large,reserved_1y,all_upfront,0.183447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:36.074005 +AWS,eu-west-3,r7i.large,reserved_1y,no_upfront,0.183447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:19.794292 +AWS,eu-west-3,r7i.large,reserved_1y,partial_upfront,0.183447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:01.623224 +AWS,eu-west-3,r7i.large,reserved_3y,all_upfront,0.061149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:34.689711 +AWS,eu-west-3,r7i.large,reserved_3y,no_upfront,0.061149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:24.550918 +AWS,eu-west-3,r7i.large,reserved_3y,partial_upfront,0.061149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:12.233158 +AWS,eu-west-3,r7i.large,spot,NA,0.041844,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773202 +AWS,eu-west-3,r7i.metal-24xl,on_demand,NA,7.4592,USD,AWS Pricing API,2025-11-30T09:03:22.863936 +AWS,eu-west-3,r7i.metal-24xl,reserved_1y,all_upfront,4.709849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:52.172809 +AWS,eu-west-3,r7i.metal-24xl,reserved_1y,no_upfront,4.709849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:35.957390 +AWS,eu-west-3,r7i.metal-24xl,reserved_1y,partial_upfront,4.709849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:17.643203 +AWS,eu-west-3,r7i.metal-24xl,reserved_3y,all_upfront,3.13991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:50.446368 +AWS,eu-west-3,r7i.metal-24xl,reserved_3y,no_upfront,3.13991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:40.911653 +AWS,eu-west-3,r7i.metal-24xl,reserved_3y,partial_upfront,3.13991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:28.158964 +AWS,eu-west-3,r7i.metal-24xl,spot,NA,1.509586,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773528 +AWS,eu-west-3,r7i.metal-48xl,on_demand,NA,14.9184,USD,AWS Pricing API,2025-11-30T09:03:42.240063 +AWS,eu-west-3,r7i.metal-48xl,reserved_1y,all_upfront,9.231393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:01:11.829323 +AWS,eu-west-3,r7i.metal-48xl,reserved_1y,no_upfront,9.231393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:55.688553 +AWS,eu-west-3,r7i.metal-48xl,reserved_1y,partial_upfront,9.231393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:37.087304 +AWS,eu-west-3,r7i.metal-48xl,reserved_3y,all_upfront,3.077131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:06:09.678580 +AWS,eu-west-3,r7i.metal-48xl,reserved_3y,no_upfront,3.077131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:23:00.807318 +AWS,eu-west-3,r7i.metal-48xl,reserved_3y,partial_upfront,3.077131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:47.573110 +AWS,eu-west-3,r7i.metal-48xl,spot,NA,6.763546,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773839 +AWS,eu-west-3,r7i.xlarge,on_demand,NA,0.3108,USD,AWS Pricing API,2025-11-30T09:03:18.291055 +AWS,eu-west-3,r7i.xlarge,reserved_1y,all_upfront,0.260141,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:00:47.530245 +AWS,eu-west-3,r7i.xlarge,reserved_1y,no_upfront,0.260141,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:17:31.351820 +AWS,eu-west-3,r7i.xlarge,reserved_1y,partial_upfront,0.260141,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:39:13.091374 +AWS,eu-west-3,r7i.xlarge,reserved_3y,all_upfront,0.13008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:05:45.948958 +AWS,eu-west-3,r7i.xlarge,reserved_3y,no_upfront,0.13008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:22:36.243293 +AWS,eu-west-3,r7i.xlarge,reserved_3y,partial_upfront,0.13008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:44:23.602844 +AWS,eu-west-3,r7i.xlarge,spot,NA,0.091617,USD,AWS EC2 API (90-day avg),2025-11-30T09:45:39.773457 +AWS,sa-east-1,c5.12xlarge,on_demand,NA,3.144,USD,AWS Pricing API,2025-11-30T09:11:15.428929 +AWS,sa-east-1,c5.12xlarge,reserved_1y,all_upfront,2.40605,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:44.452013 +AWS,sa-east-1,c5.12xlarge,reserved_1y,no_upfront,2.40605,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:33.184896 +AWS,sa-east-1,c5.12xlarge,reserved_1y,partial_upfront,2.40605,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:07.375928 +AWS,sa-east-1,c5.12xlarge,reserved_3y,all_upfront,0.802017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:32.501606 +AWS,sa-east-1,c5.12xlarge,reserved_3y,no_upfront,0.802017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:41.829024 +AWS,sa-east-1,c5.12xlarge,reserved_3y,partial_upfront,0.802017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:16.648748 +AWS,sa-east-1,c5.12xlarge,spot,NA,1.166117,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028503 +AWS,sa-east-1,c5.18xlarge,on_demand,NA,4.716,USD,AWS Pricing API,2025-11-30T09:11:23.840699 +AWS,sa-east-1,c5.18xlarge,reserved_1y,all_upfront,2.773059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:52.822917 +AWS,sa-east-1,c5.18xlarge,reserved_1y,no_upfront,2.773059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:41.669977 +AWS,sa-east-1,c5.18xlarge,reserved_1y,partial_upfront,2.773059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:15.727388 +AWS,sa-east-1,c5.18xlarge,reserved_3y,all_upfront,0.924353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:40.733502 +AWS,sa-east-1,c5.18xlarge,reserved_3y,no_upfront,0.924353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:50.368033 +AWS,sa-east-1,c5.18xlarge,reserved_3y,partial_upfront,0.924353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:24.974043 +AWS,sa-east-1,c5.18xlarge,spot,NA,1.326974,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028663 +AWS,sa-east-1,c5.24xlarge,on_demand,NA,6.288,USD,AWS Pricing API,2025-11-30T09:10:28.600091 +AWS,sa-east-1,c5.24xlarge,reserved_1y,all_upfront,3.772416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:57.772879 +AWS,sa-east-1,c5.24xlarge,reserved_1y,no_upfront,3.772416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:45.831833 +AWS,sa-east-1,c5.24xlarge,reserved_1y,partial_upfront,3.772416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:20.732537 +AWS,sa-east-1,c5.24xlarge,reserved_3y,all_upfront,2.514805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:46.733224 +AWS,sa-east-1,c5.24xlarge,reserved_3y,no_upfront,2.514805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:54.107622 +AWS,sa-east-1,c5.24xlarge,reserved_3y,partial_upfront,2.514805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:30.012702 +AWS,sa-east-1,c5.24xlarge,spot,NA,2.20641,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027541 +AWS,sa-east-1,c5.4xlarge,on_demand,NA,1.048,USD,AWS Pricing API,2025-11-30T09:11:08.242791 +AWS,sa-east-1,c5.4xlarge,reserved_1y,all_upfront,1.182192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:37.302044 +AWS,sa-east-1,c5.4xlarge,reserved_1y,no_upfront,1.182192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:25.990276 +AWS,sa-east-1,c5.4xlarge,reserved_1y,partial_upfront,1.182192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:00.192546 +AWS,sa-east-1,c5.4xlarge,reserved_3y,all_upfront,0.394064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:25.492781 +AWS,sa-east-1,c5.4xlarge,reserved_3y,no_upfront,0.394064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:34.500909 +AWS,sa-east-1,c5.4xlarge,reserved_3y,partial_upfront,0.394064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:09.495270 +AWS,sa-east-1,c5.4xlarge,spot,NA,0.210607,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028328 +AWS,sa-east-1,c5.9xlarge,on_demand,NA,2.358,USD,AWS Pricing API,2025-11-30T09:10:27.937600 +AWS,sa-east-1,c5.9xlarge,reserved_1y,all_upfront,1.486,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:57.082714 +AWS,sa-east-1,c5.9xlarge,reserved_1y,no_upfront,1.486,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:45.154431 +AWS,sa-east-1,c5.9xlarge,reserved_1y,partial_upfront,1.486,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:20.068223 +AWS,sa-east-1,c5.9xlarge,reserved_3y,all_upfront,1.486,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:46.078019 +AWS,sa-east-1,c5.9xlarge,reserved_3y,no_upfront,1.486,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:53.390999 +AWS,sa-east-1,c5.9xlarge,reserved_3y,partial_upfront,1.486,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:29.339435 +AWS,sa-east-1,c5.9xlarge,spot,NA,0.853598,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027545 +AWS,sa-east-1,c5a.12xlarge,on_demand,NA,2.832,USD,AWS Pricing API,2025-11-30T09:11:24.377975 +AWS,sa-east-1,c5a.12xlarge,reserved_1y,all_upfront,2.265201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:53.367752 +AWS,sa-east-1,c5a.12xlarge,reserved_1y,no_upfront,2.265201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:42.219255 +AWS,sa-east-1,c5a.12xlarge,reserved_1y,partial_upfront,2.265201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:16.272348 +AWS,sa-east-1,c5a.12xlarge,reserved_3y,all_upfront,1.1324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:41.268744 +AWS,sa-east-1,c5a.12xlarge,reserved_3y,no_upfront,1.1324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:50.916236 +AWS,sa-east-1,c5a.12xlarge,reserved_3y,partial_upfront,1.1324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:25.518300 +AWS,sa-east-1,c5a.12xlarge,spot,NA,2.059571,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028667 +AWS,sa-east-1,c5a.16xlarge,on_demand,NA,3.776,USD,AWS Pricing API,2025-11-30T09:10:43.867766 +AWS,sa-east-1,c5a.16xlarge,reserved_1y,all_upfront,2.379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:13.109830 +AWS,sa-east-1,c5a.16xlarge,reserved_1y,no_upfront,2.379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:01.370964 +AWS,sa-east-1,c5a.16xlarge,reserved_1y,partial_upfront,2.379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:35.963070 +AWS,sa-east-1,c5a.16xlarge,reserved_3y,all_upfront,2.379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:01.696264 +AWS,sa-east-1,c5a.16xlarge,reserved_3y,no_upfront,2.379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:09.823398 +AWS,sa-east-1,c5a.16xlarge,reserved_3y,partial_upfront,2.379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:45.248013 +AWS,sa-east-1,c5a.16xlarge,spot,NA,2.019816,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027823 +AWS,sa-east-1,c5a.24xlarge,on_demand,NA,5.664,USD,AWS Pricing API,2025-11-30T09:11:30.611392 +AWS,sa-east-1,c5a.24xlarge,reserved_1y,all_upfront,8.276142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:59.581654 +AWS,sa-east-1,c5a.24xlarge,reserved_1y,no_upfront,8.276142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:48.616130 +AWS,sa-east-1,c5a.24xlarge,reserved_1y,partial_upfront,8.276142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:22.473387 +AWS,sa-east-1,c5a.24xlarge,reserved_3y,all_upfront,2.758714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:47.358954 +AWS,sa-east-1,c5a.24xlarge,reserved_3y,no_upfront,2.758714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:57.277140 +AWS,sa-east-1,c5a.24xlarge,reserved_3y,partial_upfront,2.758714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:31.727372 +AWS,sa-east-1,c5a.24xlarge,spot,NA,2.982546,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028821 +AWS,sa-east-1,c5a.2xlarge,on_demand,NA,0.472,USD,AWS Pricing API,2025-11-30T09:11:13.683786 +AWS,sa-east-1,c5a.2xlarge,reserved_1y,all_upfront,0.387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:42.690256 +AWS,sa-east-1,c5a.2xlarge,reserved_1y,no_upfront,0.387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:31.429160 +AWS,sa-east-1,c5a.2xlarge,reserved_1y,partial_upfront,0.387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:05.623935 +AWS,sa-east-1,c5a.2xlarge,reserved_3y,all_upfront,0.387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:30.784189 +AWS,sa-east-1,c5a.2xlarge,reserved_3y,no_upfront,0.387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:40.026462 +AWS,sa-east-1,c5a.2xlarge,reserved_3y,partial_upfront,0.387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:14.890139 +AWS,sa-east-1,c5a.2xlarge,spot,NA,0.212725,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028430 +AWS,sa-east-1,c5a.4xlarge,on_demand,NA,0.944,USD,AWS Pricing API,2025-11-30T09:10:46.493857 +AWS,sa-east-1,c5a.4xlarge,reserved_1y,all_upfront,0.773,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:15.684602 +AWS,sa-east-1,c5a.4xlarge,reserved_1y,no_upfront,0.773,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:04.016901 +AWS,sa-east-1,c5a.4xlarge,reserved_1y,partial_upfront,0.773,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:38.564349 +AWS,sa-east-1,c5a.4xlarge,reserved_3y,all_upfront,0.773,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:04.245328 +AWS,sa-east-1,c5a.4xlarge,reserved_3y,no_upfront,0.773,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:12.455643 +AWS,sa-east-1,c5a.4xlarge,reserved_3y,partial_upfront,0.773,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:47.818866 +AWS,sa-east-1,c5a.4xlarge,spot,NA,0.388904,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027889 +AWS,sa-east-1,c5a.8xlarge,on_demand,NA,1.888,USD,AWS Pricing API,2025-11-30T09:10:39.114371 +AWS,sa-east-1,c5a.8xlarge,reserved_1y,all_upfront,1.132438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:08.376059 +AWS,sa-east-1,c5a.8xlarge,reserved_1y,no_upfront,1.132438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:56.550833 +AWS,sa-east-1,c5a.8xlarge,reserved_1y,partial_upfront,1.132438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:31.233959 +AWS,sa-east-1,c5a.8xlarge,reserved_3y,all_upfront,0.754813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:57.063997 +AWS,sa-east-1,c5a.8xlarge,reserved_3y,no_upfront,0.754813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:04.917980 +AWS,sa-east-1,c5a.8xlarge,reserved_3y,partial_upfront,0.754813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:40.518042 +AWS,sa-east-1,c5a.8xlarge,spot,NA,0.893263,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027749 +AWS,sa-east-1,c5a.xlarge,on_demand,NA,0.236,USD,AWS Pricing API,2025-11-30T09:10:30.059963 +AWS,sa-east-1,c5a.xlarge,reserved_1y,all_upfront,0.138813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:59.254045 +AWS,sa-east-1,c5a.xlarge,reserved_1y,no_upfront,0.138813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:47.330295 +AWS,sa-east-1,c5a.xlarge,reserved_1y,partial_upfront,0.138813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:22.202028 +AWS,sa-east-1,c5a.xlarge,reserved_3y,all_upfront,0.046271,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:48.186489 +AWS,sa-east-1,c5a.xlarge,reserved_3y,no_upfront,0.046271,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:55.642613 +AWS,sa-east-1,c5a.xlarge,reserved_3y,partial_upfront,0.046271,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:31.467601 +AWS,sa-east-1,c5a.xlarge,spot,NA,0.104876,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027558 +AWS,sa-east-1,c5ad.12xlarge,on_demand,NA,3.216,USD,AWS Pricing API,2025-11-30T09:11:34.876984 +AWS,sa-east-1,c5ad.12xlarge,reserved_1y,all_upfront,2.026,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:03.910894 +AWS,sa-east-1,c5ad.12xlarge,reserved_1y,no_upfront,2.026,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:52.982457 +AWS,sa-east-1,c5ad.12xlarge,reserved_1y,partial_upfront,2.026,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:26.761424 +AWS,sa-east-1,c5ad.12xlarge,reserved_3y,all_upfront,2.026,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:51.595477 +AWS,sa-east-1,c5ad.12xlarge,reserved_3y,no_upfront,2.026,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:01.703453 +AWS,sa-east-1,c5ad.12xlarge,reserved_3y,partial_upfront,2.026,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:36.002528 +AWS,sa-east-1,c5ad.12xlarge,spot,NA,2.384784,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028889 +AWS,sa-east-1,c5ad.16xlarge,on_demand,NA,4.288,USD,AWS Pricing API,2025-11-30T09:11:26.676891 +AWS,sa-east-1,c5ad.16xlarge,reserved_1y,all_upfront,2.701,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:55.655274 +AWS,sa-east-1,c5ad.16xlarge,reserved_1y,no_upfront,2.701,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:44.615000 +AWS,sa-east-1,c5ad.16xlarge,reserved_1y,partial_upfront,2.701,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:18.559453 +AWS,sa-east-1,c5ad.16xlarge,reserved_3y,all_upfront,2.701,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:43.510205 +AWS,sa-east-1,c5ad.16xlarge,reserved_3y,no_upfront,2.701,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:53.248214 +AWS,sa-east-1,c5ad.16xlarge,reserved_3y,partial_upfront,2.701,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:27.801066 +AWS,sa-east-1,c5ad.16xlarge,spot,NA,3.316303,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028730 +AWS,sa-east-1,c5ad.24xlarge,on_demand,NA,6.432,USD,AWS Pricing API,2025-11-30T09:10:46.629972 +AWS,sa-east-1,c5ad.24xlarge,reserved_1y,all_upfront,5.145247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:15.822554 +AWS,sa-east-1,c5ad.24xlarge,reserved_1y,no_upfront,5.145247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:04.162888 +AWS,sa-east-1,c5ad.24xlarge,reserved_1y,partial_upfront,5.145247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:38.700541 +AWS,sa-east-1,c5ad.24xlarge,reserved_3y,all_upfront,2.572416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:04.379619 +AWS,sa-east-1,c5ad.24xlarge,reserved_3y,no_upfront,2.572416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:12.591357 +AWS,sa-east-1,c5ad.24xlarge,reserved_3y,partial_upfront,2.572416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:47.951735 +AWS,sa-east-1,c5ad.24xlarge,spot,NA,5.027688,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027910 +AWS,sa-east-1,c5ad.2xlarge,on_demand,NA,0.536,USD,AWS Pricing API,2025-11-30T09:10:35.984857 +AWS,sa-east-1,c5ad.2xlarge,reserved_1y,all_upfront,0.438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:05.255810 +AWS,sa-east-1,c5ad.2xlarge,reserved_1y,no_upfront,0.438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:53.384286 +AWS,sa-east-1,c5ad.2xlarge,reserved_1y,partial_upfront,0.438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:28.149660 +AWS,sa-east-1,c5ad.2xlarge,reserved_3y,all_upfront,0.438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:54.024394 +AWS,sa-east-1,c5ad.2xlarge,reserved_3y,no_upfront,0.438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:01.714385 +AWS,sa-east-1,c5ad.2xlarge,reserved_3y,partial_upfront,0.438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:37.399837 +AWS,sa-east-1,c5ad.2xlarge,spot,NA,0.23688,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027693 +AWS,sa-east-1,c5ad.4xlarge,on_demand,NA,1.072,USD,AWS Pricing API,2025-11-30T09:11:35.431868 +AWS,sa-east-1,c5ad.4xlarge,reserved_1y,all_upfront,0.630365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:04.449378 +AWS,sa-east-1,c5ad.4xlarge,reserved_1y,no_upfront,0.630365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:53.527060 +AWS,sa-east-1,c5ad.4xlarge,reserved_1y,partial_upfront,0.630365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:27.299044 +AWS,sa-east-1,c5ad.4xlarge,reserved_3y,all_upfront,0.210122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:52.131123 +AWS,sa-east-1,c5ad.4xlarge,reserved_3y,no_upfront,0.210122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:02.259200 +AWS,sa-east-1,c5ad.4xlarge,reserved_3y,partial_upfront,0.210122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:36.555595 +AWS,sa-east-1,c5ad.4xlarge,spot,NA,0.52406,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028869 +AWS,sa-east-1,c5ad.8xlarge,on_demand,NA,2.144,USD,AWS Pricing API,2025-11-30T09:10:46.222711 +AWS,sa-east-1,c5ad.8xlarge,reserved_1y,all_upfront,1.670046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:15.415108 +AWS,sa-east-1,c5ad.8xlarge,reserved_1y,no_upfront,1.670046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:03.743619 +AWS,sa-east-1,c5ad.8xlarge,reserved_1y,partial_upfront,1.670046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:38.291175 +AWS,sa-east-1,c5ad.8xlarge,reserved_3y,all_upfront,1.113349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:03.978470 +AWS,sa-east-1,c5ad.8xlarge,reserved_3y,no_upfront,1.113349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:12.181929 +AWS,sa-east-1,c5ad.8xlarge,reserved_3y,partial_upfront,1.113349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:47.545471 +AWS,sa-east-1,c5ad.8xlarge,spot,NA,1.48045,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027884 +AWS,sa-east-1,c5ad.xlarge,on_demand,NA,0.268,USD,AWS Pricing API,2025-11-30T09:11:25.042811 +AWS,sa-east-1,c5ad.xlarge,reserved_1y,all_upfront,0.204566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:54.046382 +AWS,sa-east-1,c5ad.xlarge,reserved_1y,no_upfront,0.204566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:42.931146 +AWS,sa-east-1,c5ad.xlarge,reserved_1y,partial_upfront,0.204566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:16.949972 +AWS,sa-east-1,c5ad.xlarge,reserved_3y,all_upfront,0.068189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:41.926323 +AWS,sa-east-1,c5ad.xlarge,reserved_3y,no_upfront,0.068189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:51.601061 +AWS,sa-east-1,c5ad.xlarge,reserved_3y,partial_upfront,0.068189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:26.184129 +AWS,sa-east-1,c5ad.xlarge,spot,NA,0.102034,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028698 +AWS,sa-east-1,c5d.12xlarge,on_demand,NA,3.576,USD,AWS Pricing API,2025-11-30T09:11:36.538892 +AWS,sa-east-1,c5d.12xlarge,reserved_1y,all_upfront,2.924,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:05.526859 +AWS,sa-east-1,c5d.12xlarge,reserved_1y,no_upfront,2.924,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:54.622988 +AWS,sa-east-1,c5d.12xlarge,reserved_1y,partial_upfront,2.924,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:28.372716 +AWS,sa-east-1,c5d.12xlarge,reserved_3y,all_upfront,2.924,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:53.203305 +AWS,sa-east-1,c5d.12xlarge,reserved_3y,no_upfront,2.924,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:03.372190 +AWS,sa-east-1,c5d.12xlarge,reserved_3y,partial_upfront,2.924,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:37.634549 +AWS,sa-east-1,c5d.12xlarge,spot,NA,2.741993,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028901 +AWS,sa-east-1,c5d.18xlarge,on_demand,NA,5.364,USD,AWS Pricing API,2025-11-30T09:11:00.131065 +AWS,sa-east-1,c5d.18xlarge,reserved_1y,all_upfront,4.386,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:29.180244 +AWS,sa-east-1,c5d.18xlarge,reserved_1y,no_upfront,4.386,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:17.718720 +AWS,sa-east-1,c5d.18xlarge,reserved_1y,partial_upfront,4.386,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:52.053629 +AWS,sa-east-1,c5d.18xlarge,reserved_3y,all_upfront,4.386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:17.514025 +AWS,sa-east-1,c5d.18xlarge,reserved_3y,no_upfront,4.386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:26.250167 +AWS,sa-east-1,c5d.18xlarge,reserved_3y,partial_upfront,4.386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:01.293174 +AWS,sa-east-1,c5d.18xlarge,spot,NA,3.093262,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028176 +AWS,sa-east-1,c5d.24xlarge,on_demand,NA,7.152,USD,AWS Pricing API,2025-11-30T09:10:32.730783 +AWS,sa-east-1,c5d.24xlarge,reserved_1y,all_upfront,4.205365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:01.962034 +AWS,sa-east-1,c5d.24xlarge,reserved_1y,no_upfront,4.205365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:50.062930 +AWS,sa-east-1,c5d.24xlarge,reserved_1y,partial_upfront,4.205365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:24.906114 +AWS,sa-east-1,c5d.24xlarge,reserved_3y,all_upfront,1.401788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:50.830839 +AWS,sa-east-1,c5d.24xlarge,reserved_3y,no_upfront,1.401788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:58.389199 +AWS,sa-east-1,c5d.24xlarge,reserved_3y,partial_upfront,1.401788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:34.164755 +AWS,sa-east-1,c5d.24xlarge,spot,NA,3.860714,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027608 +AWS,sa-east-1,c5d.2xlarge,on_demand,NA,0.596,USD,AWS Pricing API,2025-11-30T09:11:20.355950 +AWS,sa-east-1,c5d.2xlarge,reserved_1y,all_upfront,0.454795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:49.337882 +AWS,sa-east-1,c5d.2xlarge,reserved_1y,no_upfront,0.454795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:38.135047 +AWS,sa-east-1,c5d.2xlarge,reserved_1y,partial_upfront,0.454795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:12.232071 +AWS,sa-east-1,c5d.2xlarge,reserved_3y,all_upfront,0.151598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:37.301946 +AWS,sa-east-1,c5d.2xlarge,reserved_3y,no_upfront,0.151598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:46.801508 +AWS,sa-east-1,c5d.2xlarge,reserved_3y,partial_upfront,0.151598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:21.493034 +AWS,sa-east-1,c5d.2xlarge,spot,NA,0.135994,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028608 +AWS,sa-east-1,c5d.4xlarge,on_demand,NA,1.192,USD,AWS Pricing API,2025-11-30T09:10:40.332354 +AWS,sa-east-1,c5d.4xlarge,reserved_1y,all_upfront,0.909589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:09.596207 +AWS,sa-east-1,c5d.4xlarge,reserved_1y,no_upfront,0.909589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:57.783229 +AWS,sa-east-1,c5d.4xlarge,reserved_1y,partial_upfront,0.909589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:32.455068 +AWS,sa-east-1,c5d.4xlarge,reserved_3y,all_upfront,0.303196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:58.252120 +AWS,sa-east-1,c5d.4xlarge,reserved_3y,no_upfront,0.303196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:06.170497 +AWS,sa-east-1,c5d.4xlarge,reserved_3y,partial_upfront,0.303196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:41.732899 +AWS,sa-east-1,c5d.4xlarge,spot,NA,0.456753,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027774 +AWS,sa-east-1,c5d.9xlarge,on_demand,NA,2.682,USD,AWS Pricing API,2025-11-30T09:11:09.849276 +AWS,sa-east-1,c5d.9xlarge,reserved_1y,all_upfront,2.046575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:38.919548 +AWS,sa-east-1,c5d.9xlarge,reserved_1y,no_upfront,2.046575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:27.637153 +AWS,sa-east-1,c5d.9xlarge,reserved_1y,partial_upfront,2.046575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:01.817592 +AWS,sa-east-1,c5d.9xlarge,reserved_3y,all_upfront,0.682192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:27.081511 +AWS,sa-east-1,c5d.9xlarge,reserved_3y,no_upfront,0.682192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:36.177529 +AWS,sa-east-1,c5d.9xlarge,reserved_3y,partial_upfront,0.682192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:11.116786 +AWS,sa-east-1,c5d.9xlarge,spot,NA,1.470624,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028355 +AWS,sa-east-1,c5d.xlarge,on_demand,NA,0.298,USD,AWS Pricing API,2025-11-30T09:11:05.544307 +AWS,sa-east-1,c5d.xlarge,reserved_1y,all_upfront,0.231982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:34.593583 +AWS,sa-east-1,c5d.xlarge,reserved_1y,no_upfront,0.231982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:23.255703 +AWS,sa-east-1,c5d.xlarge,reserved_1y,partial_upfront,0.231982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:57.496767 +AWS,sa-east-1,c5d.xlarge,reserved_3y,all_upfront,0.154661,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:22.818135 +AWS,sa-east-1,c5d.xlarge,reserved_3y,no_upfront,0.154661,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:31.757613 +AWS,sa-east-1,c5d.xlarge,reserved_3y,partial_upfront,0.154661,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:06.791350 +AWS,sa-east-1,c5d.xlarge,spot,NA,0.103718,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028272 +AWS,sa-east-1,c5n.18xlarge,on_demand,NA,5.976,USD,AWS Pricing API,2025-11-30T09:11:25.867758 +AWS,sa-east-1,c5n.18xlarge,reserved_1y,all_upfront,7.565411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:54.857696 +AWS,sa-east-1,c5n.18xlarge,reserved_1y,no_upfront,7.565411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:43.761862 +AWS,sa-east-1,c5n.18xlarge,reserved_1y,partial_upfront,7.565411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:17.756634 +AWS,sa-east-1,c5n.18xlarge,reserved_3y,all_upfront,2.521804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:42.718198 +AWS,sa-east-1,c5n.18xlarge,reserved_3y,no_upfront,2.521804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:52.427155 +AWS,sa-east-1,c5n.18xlarge,reserved_3y,partial_upfront,2.521804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:26.995432 +AWS,sa-east-1,c5n.18xlarge,spot,NA,1.6403,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028679 +AWS,sa-east-1,c5n.2xlarge,on_demand,NA,0.664,USD,AWS Pricing API,2025-11-30T09:11:35.995197 +AWS,sa-east-1,c5n.2xlarge,reserved_1y,all_upfront,0.398201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:04.988494 +AWS,sa-east-1,c5n.2xlarge,reserved_1y,no_upfront,0.398201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:54.074704 +AWS,sa-east-1,c5n.2xlarge,reserved_1y,partial_upfront,0.398201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:27.839286 +AWS,sa-east-1,c5n.2xlarge,reserved_3y,all_upfront,0.2654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:52.662852 +AWS,sa-east-1,c5n.2xlarge,reserved_3y,no_upfront,0.2654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:02.813883 +AWS,sa-east-1,c5n.2xlarge,reserved_3y,partial_upfront,0.2654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:37.095580 +AWS,sa-east-1,c5n.2xlarge,spot,NA,0.174811,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028909 +AWS,sa-east-1,c5n.4xlarge,on_demand,NA,1.328,USD,AWS Pricing API,2025-11-30T09:11:12.336905 +AWS,sa-east-1,c5n.4xlarge,reserved_1y,all_upfront,0.995233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:41.333076 +AWS,sa-east-1,c5n.4xlarge,reserved_1y,no_upfront,0.995233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:30.070131 +AWS,sa-east-1,c5n.4xlarge,reserved_1y,partial_upfront,0.995233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:04.251102 +AWS,sa-east-1,c5n.4xlarge,reserved_3y,all_upfront,0.497744,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:29.467149 +AWS,sa-east-1,c5n.4xlarge,reserved_3y,no_upfront,0.497744,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:38.654134 +AWS,sa-east-1,c5n.4xlarge,reserved_3y,partial_upfront,0.497744,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:13.532701 +AWS,sa-east-1,c5n.4xlarge,spot,NA,0.477184,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028396 +AWS,sa-east-1,c5n.9xlarge,on_demand,NA,2.988,USD,AWS Pricing API,2025-11-30T09:11:25.731282 +AWS,sa-east-1,c5n.9xlarge,reserved_1y,all_upfront,1.792347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:54.724169 +AWS,sa-east-1,c5n.9xlarge,reserved_1y,no_upfront,1.792347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:43.624923 +AWS,sa-east-1,c5n.9xlarge,reserved_1y,partial_upfront,1.792347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:17.622906 +AWS,sa-east-1,c5n.9xlarge,reserved_3y,all_upfront,1.194782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:42.587149 +AWS,sa-east-1,c5n.9xlarge,reserved_3y,no_upfront,1.194782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:52.286231 +AWS,sa-east-1,c5n.9xlarge,reserved_3y,partial_upfront,1.194782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:26.862336 +AWS,sa-east-1,c5n.9xlarge,spot,NA,0.93637,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028694 +AWS,sa-east-1,c5n.metal,on_demand,NA,5.976,USD,AWS Pricing API,2025-11-30T09:10:34.352056 +AWS,sa-east-1,c5n.metal,reserved_1y,all_upfront,4.899,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:03.618830 +AWS,sa-east-1,c5n.metal,reserved_1y,no_upfront,4.899,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:51.708731 +AWS,sa-east-1,c5n.metal,reserved_1y,partial_upfront,4.899,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:26.535479 +AWS,sa-east-1,c5n.metal,reserved_3y,all_upfront,4.899,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:52.434672 +AWS,sa-east-1,c5n.metal,reserved_3y,no_upfront,4.899,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:00.033058 +AWS,sa-east-1,c5n.metal,reserved_3y,partial_upfront,4.899,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:35.784260 +AWS,sa-east-1,c5n.metal,spot,NA,0.91334,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027644 +AWS,sa-east-1,c5n.xlarge,on_demand,NA,0.332,USD,AWS Pricing API,2025-11-30T09:11:27.752102 +AWS,sa-east-1,c5n.xlarge,reserved_1y,all_upfront,0.259566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:56.746287 +AWS,sa-east-1,c5n.xlarge,reserved_1y,no_upfront,0.259566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:45.723998 +AWS,sa-east-1,c5n.xlarge,reserved_1y,partial_upfront,0.259566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:19.631970 +AWS,sa-east-1,c5n.xlarge,reserved_3y,all_upfront,0.173189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:44.579757 +AWS,sa-east-1,c5n.xlarge,reserved_3y,no_upfront,0.173189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:54.358479 +AWS,sa-east-1,c5n.xlarge,reserved_3y,partial_upfront,0.173189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:28.889212 +AWS,sa-east-1,c5n.xlarge,spot,NA,0.110286,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028769 +AWS,sa-east-1,c6g.12xlarge,on_demand,NA,2.5152,USD,AWS Pricing API,2025-11-30T09:10:39.661701 +AWS,sa-east-1,c6g.12xlarge,reserved_1y,all_upfront,1.961194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:08.922840 +AWS,sa-east-1,c6g.12xlarge,reserved_1y,no_upfront,1.961194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:57.099384 +AWS,sa-east-1,c6g.12xlarge,reserved_1y,partial_upfront,1.961194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:31.780673 +AWS,sa-east-1,c6g.12xlarge,reserved_3y,all_upfront,1.307465,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:57.595014 +AWS,sa-east-1,c6g.12xlarge,reserved_3y,no_upfront,1.307465,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:05.482816 +AWS,sa-east-1,c6g.12xlarge,reserved_3y,partial_upfront,1.307465,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:41.053201 +AWS,sa-east-1,c6g.12xlarge,spot,NA,0.580699,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027741 +AWS,sa-east-1,c6g.16xlarge,on_demand,NA,3.3536,USD,AWS Pricing API,2025-11-30T09:10:57.704339 +AWS,sa-east-1,c6g.16xlarge,reserved_1y,all_upfront,1.4488,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:26.751397 +AWS,sa-east-1,c6g.16xlarge,reserved_1y,no_upfront,1.4488,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:15.230927 +AWS,sa-east-1,c6g.16xlarge,reserved_1y,partial_upfront,1.4488,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:49.635108 +AWS,sa-east-1,c6g.16xlarge,reserved_3y,all_upfront,1.4488,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:15.136645 +AWS,sa-east-1,c6g.16xlarge,reserved_3y,no_upfront,1.4488,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:23.779356 +AWS,sa-east-1,c6g.16xlarge,reserved_3y,partial_upfront,1.4488,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:58.862726 +AWS,sa-east-1,c6g.16xlarge,spot,NA,0.627072,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028105 +AWS,sa-east-1,c6g.2xlarge,on_demand,NA,0.4192,USD,AWS Pricing API,2025-11-30T09:11:09.711645 +AWS,sa-east-1,c6g.2xlarge,reserved_1y,all_upfront,0.251599,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:38.784538 +AWS,sa-east-1,c6g.2xlarge,reserved_1y,no_upfront,0.251599,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:27.499972 +AWS,sa-east-1,c6g.2xlarge,reserved_1y,partial_upfront,0.251599,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:01.680749 +AWS,sa-east-1,c6g.2xlarge,reserved_3y,all_upfront,0.167733,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:26.946164 +AWS,sa-east-1,c6g.2xlarge,reserved_3y,no_upfront,0.167733,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:36.031187 +AWS,sa-east-1,c6g.2xlarge,reserved_3y,partial_upfront,0.167733,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:10.980796 +AWS,sa-east-1,c6g.2xlarge,spot,NA,0.07297,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028352 +AWS,sa-east-1,c6g.4xlarge,on_demand,NA,0.8384,USD,AWS Pricing API,2025-11-30T09:11:28.576726 +AWS,sa-east-1,c6g.4xlarge,reserved_1y,all_upfront,0.502984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:57.555250 +AWS,sa-east-1,c6g.4xlarge,reserved_1y,no_upfront,0.502984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:46.543384 +AWS,sa-east-1,c6g.4xlarge,reserved_1y,partial_upfront,0.502984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:20.445106 +AWS,sa-east-1,c6g.4xlarge,reserved_3y,all_upfront,0.335328,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:45.377065 +AWS,sa-east-1,c6g.4xlarge,reserved_3y,no_upfront,0.335328,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:55.176486 +AWS,sa-east-1,c6g.4xlarge,reserved_3y,partial_upfront,0.335328,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:29.697426 +AWS,sa-east-1,c6g.4xlarge,spot,NA,0.197327,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028749 +AWS,sa-east-1,c6g.8xlarge,on_demand,NA,1.6768,USD,AWS Pricing API,2025-11-30T09:10:56.074015 +AWS,sa-east-1,c6g.8xlarge,reserved_1y,all_upfront,1.678832,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:25.118760 +AWS,sa-east-1,c6g.8xlarge,reserved_1y,no_upfront,1.678832,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:13.598565 +AWS,sa-east-1,c6g.8xlarge,reserved_1y,partial_upfront,1.678832,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:48.020064 +AWS,sa-east-1,c6g.8xlarge,reserved_3y,all_upfront,0.839411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:13.551070 +AWS,sa-east-1,c6g.8xlarge,reserved_3y,no_upfront,0.839411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:22.123611 +AWS,sa-east-1,c6g.8xlarge,reserved_3y,partial_upfront,0.839411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:57.237644 +AWS,sa-east-1,c6g.8xlarge,spot,NA,0.418063,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028068 +AWS,sa-east-1,c6g.xlarge,on_demand,NA,0.2096,USD,AWS Pricing API,2025-11-30T09:11:33.933385 +AWS,sa-east-1,c6g.xlarge,reserved_1y,all_upfront,0.1258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:02.965672 +AWS,sa-east-1,c6g.xlarge,reserved_1y,no_upfront,0.1258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:52.034595 +AWS,sa-east-1,c6g.xlarge,reserved_1y,partial_upfront,0.1258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:25.820713 +AWS,sa-east-1,c6g.xlarge,reserved_3y,all_upfront,0.083867,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:50.670421 +AWS,sa-east-1,c6g.xlarge,reserved_3y,no_upfront,0.083867,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:00.733951 +AWS,sa-east-1,c6g.xlarge,reserved_3y,partial_upfront,0.083867,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:35.064953 +AWS,sa-east-1,c6g.xlarge,spot,NA,0.08213,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028853 +AWS,sa-east-1,c6gd.12xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T09:10:34.486795 +AWS,sa-east-1,c6gd.12xlarge,reserved_1y,all_upfront,1.8144,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:03.754273 +AWS,sa-east-1,c6gd.12xlarge,reserved_1y,no_upfront,1.8144,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:51.842488 +AWS,sa-east-1,c6gd.12xlarge,reserved_1y,partial_upfront,1.8144,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:26.669655 +AWS,sa-east-1,c6gd.12xlarge,reserved_3y,all_upfront,1.8144,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:52.566720 +AWS,sa-east-1,c6gd.12xlarge,reserved_3y,no_upfront,1.8144,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:00.176657 +AWS,sa-east-1,c6gd.12xlarge,reserved_3y,partial_upfront,1.8144,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:35.918182 +AWS,sa-east-1,c6gd.12xlarge,spot,NA,1.268939,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027632 +AWS,sa-east-1,c6gd.16xlarge,on_demand,NA,3.808,USD,AWS Pricing API,2025-11-30T09:11:12.873309 +AWS,sa-east-1,c6gd.16xlarge,reserved_1y,all_upfront,4.331507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:41.869478 +AWS,sa-east-1,c6gd.16xlarge,reserved_1y,no_upfront,4.331507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:30.611491 +AWS,sa-east-1,c6gd.16xlarge,reserved_1y,partial_upfront,4.331507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:04.809838 +AWS,sa-east-1,c6gd.16xlarge,reserved_3y,all_upfront,1.443836,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:29.993942 +AWS,sa-east-1,c6gd.16xlarge,reserved_3y,no_upfront,1.443836,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:39.202487 +AWS,sa-east-1,c6gd.16xlarge,reserved_3y,partial_upfront,1.443836,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:14.078326 +AWS,sa-east-1,c6gd.16xlarge,spot,NA,1.156163,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028447 +AWS,sa-east-1,c6gd.2xlarge,on_demand,NA,0.476,USD,AWS Pricing API,2025-11-30T09:11:23.175094 +AWS,sa-east-1,c6gd.2xlarge,reserved_1y,all_upfront,0.28795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:52.160408 +AWS,sa-east-1,c6gd.2xlarge,reserved_1y,no_upfront,0.28795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:40.986742 +AWS,sa-east-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.28795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:15.058433 +AWS,sa-east-1,c6gd.2xlarge,reserved_3y,all_upfront,0.191983,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:40.064928 +AWS,sa-east-1,c6gd.2xlarge,reserved_3y,no_upfront,0.191983,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:49.682382 +AWS,sa-east-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.191983,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:24.306127 +AWS,sa-east-1,c6gd.2xlarge,spot,NA,0.102974,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028639 +AWS,sa-east-1,c6gd.4xlarge,on_demand,NA,0.952,USD,AWS Pricing API,2025-11-30T09:11:02.703292 +AWS,sa-east-1,c6gd.4xlarge,reserved_1y,all_upfront,1.082877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:31.759822 +AWS,sa-east-1,c6gd.4xlarge,reserved_1y,no_upfront,1.082877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:20.305592 +AWS,sa-east-1,c6gd.4xlarge,reserved_1y,partial_upfront,1.082877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:54.629614 +AWS,sa-east-1,c6gd.4xlarge,reserved_3y,all_upfront,0.360959,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:20.036731 +AWS,sa-east-1,c6gd.4xlarge,reserved_3y,no_upfront,0.360959,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:28.870209 +AWS,sa-east-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.360959,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:03.865811 +AWS,sa-east-1,c6gd.4xlarge,spot,NA,0.257636,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028231 +AWS,sa-east-1,c6gd.8xlarge,on_demand,NA,1.904,USD,AWS Pricing API,2025-11-30T09:11:31.409911 +AWS,sa-east-1,c6gd.8xlarge,reserved_1y,all_upfront,1.128995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:00.383692 +AWS,sa-east-1,c6gd.8xlarge,reserved_1y,no_upfront,1.128995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:49.437783 +AWS,sa-east-1,c6gd.8xlarge,reserved_1y,partial_upfront,1.128995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:23.280317 +AWS,sa-east-1,c6gd.8xlarge,reserved_3y,all_upfront,0.376332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:48.157259 +AWS,sa-east-1,c6gd.8xlarge,reserved_3y,no_upfront,0.376332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:58.113538 +AWS,sa-east-1,c6gd.8xlarge,reserved_3y,partial_upfront,0.376332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:32.531119 +AWS,sa-east-1,c6gd.8xlarge,spot,NA,0.596118,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028801 +AWS,sa-east-1,c6gd.xlarge,on_demand,NA,0.238,USD,AWS Pricing API,2025-11-30T09:11:22.502714 +AWS,sa-east-1,c6gd.xlarge,reserved_1y,all_upfront,0.144032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:51.487278 +AWS,sa-east-1,c6gd.xlarge,reserved_1y,no_upfront,0.144032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:40.306157 +AWS,sa-east-1,c6gd.xlarge,reserved_1y,partial_upfront,0.144032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:14.383618 +AWS,sa-east-1,c6gd.xlarge,reserved_3y,all_upfront,0.096011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:39.407238 +AWS,sa-east-1,c6gd.xlarge,reserved_3y,no_upfront,0.096011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:48.996290 +AWS,sa-east-1,c6gd.xlarge,reserved_3y,partial_upfront,0.096011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:23.639670 +AWS,sa-east-1,c6gd.xlarge,spot,NA,0.057449,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028635 +AWS,sa-east-1,c6i.12xlarge,on_demand,NA,3.144,USD,AWS Pricing API,2025-11-30T09:11:22.366187 +AWS,sa-east-1,c6i.12xlarge,reserved_1y,all_upfront,2.644762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:51.352154 +AWS,sa-east-1,c6i.12xlarge,reserved_1y,no_upfront,2.644762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:40.168300 +AWS,sa-east-1,c6i.12xlarge,reserved_1y,partial_upfront,2.644762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:14.248243 +AWS,sa-east-1,c6i.12xlarge,reserved_3y,all_upfront,1.322387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:39.275030 +AWS,sa-east-1,c6i.12xlarge,reserved_3y,no_upfront,1.322387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:48.856875 +AWS,sa-east-1,c6i.12xlarge,reserved_3y,partial_upfront,1.322387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:23.506158 +AWS,sa-east-1,c6i.12xlarge,spot,NA,1.043206,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028651 +AWS,sa-east-1,c6i.16xlarge,on_demand,NA,4.192,USD,AWS Pricing API,2025-11-30T09:10:57.285458 +AWS,sa-east-1,c6i.16xlarge,reserved_1y,all_upfront,3.192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:26.344486 +AWS,sa-east-1,c6i.16xlarge,reserved_1y,no_upfront,3.192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:14.820720 +AWS,sa-east-1,c6i.16xlarge,reserved_1y,partial_upfront,3.192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:49.228303 +AWS,sa-east-1,c6i.16xlarge,reserved_3y,all_upfront,3.192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:14.738085 +AWS,sa-east-1,c6i.16xlarge,reserved_3y,no_upfront,3.192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:23.367108 +AWS,sa-east-1,c6i.16xlarge,reserved_3y,partial_upfront,3.192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:58.461919 +AWS,sa-east-1,c6i.16xlarge,spot,NA,1.677921,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028120 +AWS,sa-east-1,c6i.24xlarge,on_demand,NA,6.288,USD,AWS Pricing API,2025-11-30T09:10:52.001910 +AWS,sa-east-1,c6i.24xlarge,reserved_1y,all_upfront,3.955226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:21.069102 +AWS,sa-east-1,c6i.24xlarge,reserved_1y,no_upfront,3.955226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:09.523015 +AWS,sa-east-1,c6i.24xlarge,reserved_1y,partial_upfront,3.955226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:43.949094 +AWS,sa-east-1,c6i.24xlarge,reserved_3y,all_upfront,2.636809,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:09.571246 +AWS,sa-east-1,c6i.24xlarge,reserved_3y,no_upfront,2.636809,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:17.971187 +AWS,sa-east-1,c6i.24xlarge,reserved_3y,partial_upfront,2.636809,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:53.214559 +AWS,sa-east-1,c6i.24xlarge,spot,NA,2.499224,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027989 +AWS,sa-east-1,c6i.2xlarge,on_demand,NA,0.524,USD,AWS Pricing API,2025-11-30T09:10:35.712725 +AWS,sa-east-1,c6i.2xlarge,reserved_1y,all_upfront,0.34608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:04.969191 +AWS,sa-east-1,c6i.2xlarge,reserved_1y,no_upfront,0.34608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:53.113426 +AWS,sa-east-1,c6i.2xlarge,reserved_1y,partial_upfront,0.34608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:27.878272 +AWS,sa-east-1,c6i.2xlarge,reserved_3y,all_upfront,0.34608,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:53.751599 +AWS,sa-east-1,c6i.2xlarge,reserved_3y,no_upfront,0.34608,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:01.432749 +AWS,sa-east-1,c6i.2xlarge,reserved_3y,partial_upfront,0.34608,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:37.129170 +AWS,sa-east-1,c6i.2xlarge,spot,NA,0.192547,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027648 +AWS,sa-east-1,c6i.32xlarge,on_demand,NA,8.384,USD,AWS Pricing API,2025-11-30T09:11:27.081767 +AWS,sa-east-1,c6i.32xlarge,reserved_1y,all_upfront,6.079954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:56.068469 +AWS,sa-east-1,c6i.32xlarge,reserved_1y,no_upfront,6.079954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:45.038728 +AWS,sa-east-1,c6i.32xlarge,reserved_1y,partial_upfront,6.079954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:18.960871 +AWS,sa-east-1,c6i.32xlarge,reserved_3y,all_upfront,4.053318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:43.920236 +AWS,sa-east-1,c6i.32xlarge,reserved_3y,no_upfront,4.053318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:53.664642 +AWS,sa-east-1,c6i.32xlarge,reserved_3y,partial_upfront,4.053318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:28.203191 +AWS,sa-east-1,c6i.32xlarge,spot,NA,2.584863,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028714 +AWS,sa-east-1,c6i.4xlarge,on_demand,NA,1.048,USD,AWS Pricing API,2025-11-30T09:10:31.789827 +AWS,sa-east-1,c6i.4xlarge,reserved_1y,all_upfront,0.881587,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:01.010909 +AWS,sa-east-1,c6i.4xlarge,reserved_1y,no_upfront,0.881587,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:49.108501 +AWS,sa-east-1,c6i.4xlarge,reserved_1y,partial_upfront,0.881587,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:23.944572 +AWS,sa-east-1,c6i.4xlarge,reserved_3y,all_upfront,0.440796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:49.902097 +AWS,sa-east-1,c6i.4xlarge,reserved_3y,no_upfront,0.440796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:57.428210 +AWS,sa-east-1,c6i.4xlarge,reserved_3y,partial_upfront,0.440796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:33.201756 +AWS,sa-east-1,c6i.4xlarge,spot,NA,0.232898,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027587 +AWS,sa-east-1,c6i.8xlarge,on_demand,NA,2.096,USD,AWS Pricing API,2025-11-30T09:10:45.524137 +AWS,sa-east-1,c6i.8xlarge,reserved_1y,all_upfront,1.318447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:14.738535 +AWS,sa-east-1,c6i.8xlarge,reserved_1y,no_upfront,1.318447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:03.038539 +AWS,sa-east-1,c6i.8xlarge,reserved_1y,partial_upfront,1.318447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:37.576789 +AWS,sa-east-1,c6i.8xlarge,reserved_3y,all_upfront,0.878949,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:03.314177 +AWS,sa-east-1,c6i.8xlarge,reserved_3y,no_upfront,0.878949,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:11.491362 +AWS,sa-east-1,c6i.8xlarge,reserved_3y,partial_upfront,0.878949,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:46.867349 +AWS,sa-east-1,c6i.8xlarge,spot,NA,0.717891,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027906 +AWS,sa-east-1,c6i.xlarge,on_demand,NA,0.262,USD,AWS Pricing API,2025-11-30T09:10:49.724978 +AWS,sa-east-1,c6i.xlarge,reserved_1y,all_upfront,0.1995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:18.912410 +AWS,sa-east-1,c6i.xlarge,reserved_1y,no_upfront,0.1995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:07.322990 +AWS,sa-east-1,c6i.xlarge,reserved_1y,partial_upfront,0.1995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:41.786953 +AWS,sa-east-1,c6i.xlarge,reserved_3y,all_upfront,0.1995,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:07.446569 +AWS,sa-east-1,c6i.xlarge,reserved_3y,no_upfront,0.1995,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:15.767106 +AWS,sa-east-1,c6i.xlarge,reserved_3y,partial_upfront,0.1995,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:51.071423 +AWS,sa-east-1,c6i.xlarge,spot,NA,0.104208,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027973 +AWS,sa-east-1,c6id.12xlarge,on_demand,NA,3.7548,USD,AWS Pricing API,2025-11-30T09:11:18.173043 +AWS,sa-east-1,c6id.12xlarge,reserved_1y,all_upfront,5.493151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:47.162214 +AWS,sa-east-1,c6id.12xlarge,reserved_1y,no_upfront,5.493151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:35.929873 +AWS,sa-east-1,c6id.12xlarge,reserved_1y,partial_upfront,5.493151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:10.083045 +AWS,sa-east-1,c6id.12xlarge,reserved_3y,all_upfront,1.83105,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:35.169262 +AWS,sa-east-1,c6id.12xlarge,reserved_3y,no_upfront,1.83105,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:44.599771 +AWS,sa-east-1,c6id.12xlarge,reserved_3y,partial_upfront,1.83105,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:19.335564 +AWS,sa-east-1,c6id.12xlarge,spot,NA,2.027972,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028568 +AWS,sa-east-1,c6id.16xlarge,on_demand,NA,5.0064,USD,AWS Pricing API,2025-11-30T09:11:27.612437 +AWS,sa-east-1,c6id.16xlarge,reserved_1y,all_upfront,4.005161,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:56.609226 +AWS,sa-east-1,c6id.16xlarge,reserved_1y,no_upfront,4.005161,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:45.587158 +AWS,sa-east-1,c6id.16xlarge,reserved_1y,partial_upfront,4.005161,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:19.497705 +AWS,sa-east-1,c6id.16xlarge,reserved_3y,all_upfront,2.002574,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:44.448819 +AWS,sa-east-1,c6id.16xlarge,reserved_3y,no_upfront,2.002574,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:54.217831 +AWS,sa-east-1,c6id.16xlarge,reserved_3y,partial_upfront,2.002574,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:28.748213 +AWS,sa-east-1,c6id.16xlarge,spot,NA,2.386428,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028737 +AWS,sa-east-1,c6id.24xlarge,on_demand,NA,7.5096,USD,AWS Pricing API,2025-11-30T09:10:45.944384 +AWS,sa-east-1,c6id.24xlarge,reserved_1y,all_upfront,6.007628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:15.146137 +AWS,sa-east-1,c6id.24xlarge,reserved_1y,no_upfront,6.007628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:03.453960 +AWS,sa-east-1,c6id.24xlarge,reserved_1y,partial_upfront,6.007628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:38.015319 +AWS,sa-east-1,c6id.24xlarge,reserved_3y,all_upfront,3.003823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:03.713935 +AWS,sa-east-1,c6id.24xlarge,reserved_3y,no_upfront,3.003823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:11.907797 +AWS,sa-east-1,c6id.24xlarge,reserved_3y,partial_upfront,3.003823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:47.269801 +AWS,sa-east-1,c6id.24xlarge,spot,NA,2.903751,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027893 +AWS,sa-east-1,c6id.2xlarge,on_demand,NA,0.6258,USD,AWS Pricing API,2025-11-30T09:11:37.891233 +AWS,sa-east-1,c6id.2xlarge,reserved_1y,all_upfront,0.622823,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:06.888298 +AWS,sa-east-1,c6id.2xlarge,reserved_1y,no_upfront,0.622823,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:56.011722 +AWS,sa-east-1,c6id.2xlarge,reserved_1y,partial_upfront,0.622823,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:29.765110 +AWS,sa-east-1,c6id.2xlarge,reserved_3y,all_upfront,0.311408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:54.528153 +AWS,sa-east-1,c6id.2xlarge,reserved_3y,no_upfront,0.311408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:04.757693 +AWS,sa-east-1,c6id.2xlarge,reserved_3y,partial_upfront,0.311408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:38.978148 +AWS,sa-east-1,c6id.2xlarge,spot,NA,0.115494,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028941 +AWS,sa-east-1,c6id.32xlarge,on_demand,NA,10.0128,USD,AWS Pricing API,2025-11-30T09:10:33.814503 +AWS,sa-east-1,c6id.32xlarge,reserved_1y,all_upfront,8.18631,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:03.075556 +AWS,sa-east-1,c6id.32xlarge,reserved_1y,no_upfront,8.18631,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:51.161231 +AWS,sa-east-1,c6id.32xlarge,reserved_1y,partial_upfront,8.18631,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:25.998931 +AWS,sa-east-1,c6id.32xlarge,reserved_3y,all_upfront,8.18631,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:51.908657 +AWS,sa-east-1,c6id.32xlarge,reserved_3y,no_upfront,8.18631,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:59.484423 +AWS,sa-east-1,c6id.32xlarge,reserved_3y,partial_upfront,8.18631,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:35.232243 +AWS,sa-east-1,c6id.32xlarge,spot,NA,1.925056,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027624 +AWS,sa-east-1,c6id.4xlarge,on_demand,NA,1.2516,USD,AWS Pricing API,2025-11-30T09:10:40.879173 +AWS,sa-east-1,c6id.4xlarge,reserved_1y,all_upfront,0.735959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:10.132288 +AWS,sa-east-1,c6id.4xlarge,reserved_1y,no_upfront,0.735959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:58.335445 +AWS,sa-east-1,c6id.4xlarge,reserved_1y,partial_upfront,0.735959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:32.994650 +AWS,sa-east-1,c6id.4xlarge,reserved_3y,all_upfront,0.24532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:58.784152 +AWS,sa-east-1,c6id.4xlarge,reserved_3y,no_upfront,0.24532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:06.733455 +AWS,sa-east-1,c6id.4xlarge,reserved_3y,partial_upfront,0.24532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:42.270976 +AWS,sa-east-1,c6id.4xlarge,spot,NA,0.272759,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027757 +AWS,sa-east-1,c6id.8xlarge,on_demand,NA,2.5032,USD,AWS Pricing API,2025-11-30T09:11:14.086043 +AWS,sa-east-1,c6id.8xlarge,reserved_1y,all_upfront,1.471918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:43.106449 +AWS,sa-east-1,c6id.8xlarge,reserved_1y,no_upfront,1.471918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:31.834262 +AWS,sa-east-1,c6id.8xlarge,reserved_1y,partial_upfront,1.471918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:06.032911 +AWS,sa-east-1,c6id.8xlarge,reserved_3y,all_upfront,0.490639,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:31.177774 +AWS,sa-east-1,c6id.8xlarge,reserved_3y,no_upfront,0.490639,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:40.447841 +AWS,sa-east-1,c6id.8xlarge,reserved_3y,partial_upfront,0.490639,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:15.297380 +AWS,sa-east-1,c6id.8xlarge,spot,NA,0.891604,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028464 +AWS,sa-east-1,c6id.xlarge,on_demand,NA,0.3129,USD,AWS Pricing API,2025-11-30T09:11:32.751048 +AWS,sa-east-1,c6id.xlarge,reserved_1y,all_upfront,0.25582,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:01.735922 +AWS,sa-east-1,c6id.xlarge,reserved_1y,no_upfront,0.25582,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:50.812693 +AWS,sa-east-1,c6id.xlarge,reserved_1y,partial_upfront,0.25582,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:24.615222 +AWS,sa-east-1,c6id.xlarge,reserved_3y,all_upfront,0.25582,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:49.471520 +AWS,sa-east-1,c6id.xlarge,reserved_3y,no_upfront,0.25582,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:59.483716 +AWS,sa-east-1,c6id.xlarge,reserved_3y,partial_upfront,0.25582,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:33.858986 +AWS,sa-east-1,c6id.xlarge,spot,NA,0.066025,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028833 +AWS,sa-east-1,c6in.12xlarge,on_demand,NA,4.1832,USD,AWS Pricing API,2025-11-30T09:10:39.253186 +AWS,sa-east-1,c6in.12xlarge,reserved_1y,all_upfront,3.265787,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:08.514602 +AWS,sa-east-1,c6in.12xlarge,reserved_1y,no_upfront,3.265787,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:56.688329 +AWS,sa-east-1,c6in.12xlarge,reserved_1y,partial_upfront,3.265787,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:31.369480 +AWS,sa-east-1,c6in.12xlarge,reserved_3y,all_upfront,2.177202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:57.197725 +AWS,sa-east-1,c6in.12xlarge,reserved_3y,no_upfront,2.177202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:05.056004 +AWS,sa-east-1,c6in.12xlarge,reserved_3y,partial_upfront,2.177202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:40.652298 +AWS,sa-east-1,c6in.12xlarge,spot,NA,1.105329,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027725 +AWS,sa-east-1,c6in.16xlarge,on_demand,NA,5.5776,USD,AWS Pricing API,2025-11-30T09:10:50.676515 +AWS,sa-east-1,c6in.16xlarge,reserved_1y,all_upfront,7.061073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:19.859776 +AWS,sa-east-1,c6in.16xlarge,reserved_1y,no_upfront,7.061073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:08.284747 +AWS,sa-east-1,c6in.16xlarge,reserved_1y,partial_upfront,7.061073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:42.730111 +AWS,sa-east-1,c6in.16xlarge,reserved_3y,all_upfront,2.353691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:08.381338 +AWS,sa-east-1,c6in.16xlarge,reserved_3y,no_upfront,2.353691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:16.732907 +AWS,sa-east-1,c6in.16xlarge,reserved_3y,partial_upfront,2.353691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:52.014725 +AWS,sa-east-1,c6in.16xlarge,spot,NA,1.019338,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027981 +AWS,sa-east-1,c6in.24xlarge,on_demand,NA,8.3664,USD,AWS Pricing API,2025-11-30T09:11:00.267261 +AWS,sa-east-1,c6in.24xlarge,reserved_1y,all_upfront,6.85823,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:29.315129 +AWS,sa-east-1,c6in.24xlarge,reserved_1y,no_upfront,6.85823,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:17.857086 +AWS,sa-east-1,c6in.24xlarge,reserved_1y,partial_upfront,6.85823,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:52.213251 +AWS,sa-east-1,c6in.24xlarge,reserved_3y,all_upfront,6.85823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:17.648211 +AWS,sa-east-1,c6in.24xlarge,reserved_3y,no_upfront,6.85823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:26.387706 +AWS,sa-east-1,c6in.24xlarge,reserved_3y,partial_upfront,6.85823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:01.433689 +AWS,sa-east-1,c6in.24xlarge,spot,NA,2.327004,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028152 +AWS,sa-east-1,c6in.2xlarge,on_demand,NA,0.6972,USD,AWS Pricing API,2025-11-30T09:11:03.939198 +AWS,sa-east-1,c6in.2xlarge,reserved_1y,all_upfront,0.57152,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:32.982111 +AWS,sa-east-1,c6in.2xlarge,reserved_1y,no_upfront,0.57152,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:21.631930 +AWS,sa-east-1,c6in.2xlarge,reserved_1y,partial_upfront,0.57152,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:55.868987 +AWS,sa-east-1,c6in.2xlarge,reserved_3y,all_upfront,0.57152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:21.222276 +AWS,sa-east-1,c6in.2xlarge,reserved_3y,no_upfront,0.57152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:30.108950 +AWS,sa-east-1,c6in.2xlarge,reserved_3y,partial_upfront,0.57152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:05.075173 +AWS,sa-east-1,c6in.2xlarge,spot,NA,0.261242,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028247 +AWS,sa-east-1,c6in.32xlarge,on_demand,NA,11.1552,USD,AWS Pricing API,2025-11-30T09:11:38.028904 +AWS,sa-east-1,c6in.32xlarge,reserved_1y,all_upfront,8.534703,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:07.023362 +AWS,sa-east-1,c6in.32xlarge,reserved_1y,no_upfront,8.534703,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:56.147393 +AWS,sa-east-1,c6in.32xlarge,reserved_1y,partial_upfront,8.534703,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:29.900871 +AWS,sa-east-1,c6in.32xlarge,reserved_3y,all_upfront,2.844901,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:54.661934 +AWS,sa-east-1,c6in.32xlarge,reserved_3y,no_upfront,2.844901,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:04.894043 +AWS,sa-east-1,c6in.32xlarge,reserved_3y,partial_upfront,2.844901,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:39.113336 +AWS,sa-east-1,c6in.32xlarge,spot,NA,1.823966,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028932 +AWS,sa-east-1,c6in.4xlarge,on_demand,NA,1.3944,USD,AWS Pricing API,2025-11-30T09:10:38.244289 +AWS,sa-east-1,c6in.4xlarge,reserved_1y,all_upfront,1.472603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:07.547460 +AWS,sa-east-1,c6in.4xlarge,reserved_1y,no_upfront,1.472603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:55.728502 +AWS,sa-east-1,c6in.4xlarge,reserved_1y,partial_upfront,1.472603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:30.426736 +AWS,sa-east-1,c6in.4xlarge,reserved_3y,all_upfront,0.490868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:56.268498 +AWS,sa-east-1,c6in.4xlarge,reserved_3y,no_upfront,0.490868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:04.074397 +AWS,sa-east-1,c6in.4xlarge,reserved_3y,partial_upfront,0.490868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:39.703309 +AWS,sa-east-1,c6in.4xlarge,spot,NA,0.463098,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027714 +AWS,sa-east-1,c6in.8xlarge,on_demand,NA,2.7888,USD,AWS Pricing API,2025-11-30T09:11:08.381341 +AWS,sa-east-1,c6in.8xlarge,reserved_1y,all_upfront,2.088753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:37.436555 +AWS,sa-east-1,c6in.8xlarge,reserved_1y,no_upfront,2.088753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:26.128232 +AWS,sa-east-1,c6in.8xlarge,reserved_1y,partial_upfront,2.088753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:00.327148 +AWS,sa-east-1,c6in.8xlarge,reserved_3y,all_upfront,1.044384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:25.625206 +AWS,sa-east-1,c6in.8xlarge,reserved_3y,no_upfront,1.044384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:34.636987 +AWS,sa-east-1,c6in.8xlarge,reserved_3y,partial_upfront,1.044384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:09.627623 +AWS,sa-east-1,c6in.8xlarge,spot,NA,0.523264,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028315 +AWS,sa-east-1,c6in.xlarge,on_demand,NA,0.3486,USD,AWS Pricing API,2025-11-30T09:10:56.214211 +AWS,sa-east-1,c6in.xlarge,reserved_1y,all_upfront,0.16212,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:25.256330 +AWS,sa-east-1,c6in.xlarge,reserved_1y,no_upfront,0.16212,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:13.735037 +AWS,sa-east-1,c6in.xlarge,reserved_1y,partial_upfront,0.16212,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:48.153814 +AWS,sa-east-1,c6in.xlarge,reserved_3y,all_upfront,0.16212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:13.683147 +AWS,sa-east-1,c6in.xlarge,reserved_3y,no_upfront,0.16212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:22.262003 +AWS,sa-east-1,c6in.xlarge,reserved_3y,partial_upfront,0.16212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:57.372658 +AWS,sa-east-1,c6in.xlarge,spot,NA,0.067542,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028084 +AWS,sa-east-1,c7g.12xlarge,on_demand,NA,2.6659,USD,AWS Pricing API,2025-11-30T09:11:06.222750 +AWS,sa-east-1,c7g.12xlarge,reserved_1y,all_upfront,3.91895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:35.269929 +AWS,sa-east-1,c7g.12xlarge,reserved_1y,no_upfront,3.91895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:23.944619 +AWS,sa-east-1,c7g.12xlarge,reserved_1y,partial_upfront,3.91895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:58.169165 +AWS,sa-east-1,c7g.12xlarge,reserved_3y,all_upfront,1.306317,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:23.479403 +AWS,sa-east-1,c7g.12xlarge,reserved_3y,no_upfront,1.306317,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:32.444950 +AWS,sa-east-1,c7g.12xlarge,reserved_3y,partial_upfront,1.306317,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:07.465379 +AWS,sa-east-1,c7g.12xlarge,spot,NA,0.749601,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028295 +AWS,sa-east-1,c7g.16xlarge,on_demand,NA,3.5546,USD,AWS Pricing API,2025-11-30T09:11:15.834540 +AWS,sa-east-1,c7g.16xlarge,reserved_1y,all_upfront,2.195776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:44.852504 +AWS,sa-east-1,c7g.16xlarge,reserved_1y,no_upfront,2.195776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:33.598871 +AWS,sa-east-1,c7g.16xlarge,reserved_1y,partial_upfront,2.195776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:07.784775 +AWS,sa-east-1,c7g.16xlarge,reserved_3y,all_upfront,0.731925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:32.895987 +AWS,sa-east-1,c7g.16xlarge,reserved_3y,no_upfront,0.731925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:42.241166 +AWS,sa-east-1,c7g.16xlarge,reserved_3y,partial_upfront,0.731925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:17.051826 +AWS,sa-east-1,c7g.16xlarge,spot,NA,0.951678,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028507 +AWS,sa-east-1,c7g.2xlarge,on_demand,NA,0.4443,USD,AWS Pricing API,2025-11-30T09:11:34.468587 +AWS,sa-east-1,c7g.2xlarge,reserved_1y,all_upfront,0.339498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:03.503653 +AWS,sa-east-1,c7g.2xlarge,reserved_1y,no_upfront,0.339498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:52.576583 +AWS,sa-east-1,c7g.2xlarge,reserved_1y,partial_upfront,0.339498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:26.356963 +AWS,sa-east-1,c7g.2xlarge,reserved_3y,all_upfront,0.113166,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:51.198511 +AWS,sa-east-1,c7g.2xlarge,reserved_3y,no_upfront,0.113166,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:01.284772 +AWS,sa-east-1,c7g.2xlarge,reserved_3y,partial_upfront,0.113166,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:35.602362 +AWS,sa-east-1,c7g.2xlarge,spot,NA,0.10559,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028893 +AWS,sa-east-1,c7g.4xlarge,on_demand,NA,0.8886,USD,AWS Pricing API,2025-11-30T09:10:51.359855 +AWS,sa-east-1,c7g.4xlarge,reserved_1y,all_upfront,0.692747,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:20.530365 +AWS,sa-east-1,c7g.4xlarge,reserved_1y,no_upfront,0.692747,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:08.978792 +AWS,sa-east-1,c7g.4xlarge,reserved_1y,partial_upfront,0.692747,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:43.403121 +AWS,sa-east-1,c7g.4xlarge,reserved_3y,all_upfront,0.461849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:09.041868 +AWS,sa-east-1,c7g.4xlarge,reserved_3y,no_upfront,0.461849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:17.419156 +AWS,sa-east-1,c7g.4xlarge,reserved_3y,partial_upfront,0.461849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:52.680116 +AWS,sa-east-1,c7g.4xlarge,spot,NA,0.191985,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028005 +AWS,sa-east-1,c7g.8xlarge,on_demand,NA,1.7773,USD,AWS Pricing API,2025-11-30T09:11:02.437295 +AWS,sa-east-1,c7g.8xlarge,reserved_1y,all_upfront,1.4548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:31.493852 +AWS,sa-east-1,c7g.8xlarge,reserved_1y,no_upfront,1.4548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:20.035221 +AWS,sa-east-1,c7g.8xlarge,reserved_1y,partial_upfront,1.4548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:54.358467 +AWS,sa-east-1,c7g.8xlarge,reserved_3y,all_upfront,1.4548,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:19.773224 +AWS,sa-east-1,c7g.8xlarge,reserved_3y,no_upfront,1.4548,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:28.597529 +AWS,sa-east-1,c7g.8xlarge,reserved_3y,partial_upfront,1.4548,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:03.596728 +AWS,sa-east-1,c7g.8xlarge,spot,NA,0.474663,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028223 +AWS,sa-east-1,c7g.xlarge,on_demand,NA,0.2222,USD,AWS Pricing API,2025-11-30T09:10:49.461875 +AWS,sa-east-1,c7g.xlarge,reserved_1y,all_upfront,0.169749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:18.644636 +AWS,sa-east-1,c7g.xlarge,reserved_1y,no_upfront,0.169749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:07.052211 +AWS,sa-east-1,c7g.xlarge,reserved_1y,partial_upfront,0.169749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:41.520455 +AWS,sa-east-1,c7g.xlarge,reserved_3y,all_upfront,0.056583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:07.184909 +AWS,sa-east-1,c7g.xlarge,reserved_3y,no_upfront,0.056583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:15.492684 +AWS,sa-east-1,c7g.xlarge,reserved_3y,partial_upfront,0.056583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:50.794399 +AWS,sa-east-1,c7g.xlarge,spot,NA,0.102608,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027950 +AWS,sa-east-1,c7gd.12xlarge,on_demand,NA,3.3792,USD,AWS Pricing API,2025-11-30T09:11:00.404426 +AWS,sa-east-1,c7gd.12xlarge,reserved_1y,all_upfront,2.7628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:29.449235 +AWS,sa-east-1,c7gd.12xlarge,reserved_1y,no_upfront,2.7628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:17.992695 +AWS,sa-east-1,c7gd.12xlarge,reserved_1y,partial_upfront,2.7628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:52.346088 +AWS,sa-east-1,c7gd.12xlarge,reserved_3y,all_upfront,2.7628,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:17.781200 +AWS,sa-east-1,c7gd.12xlarge,reserved_3y,no_upfront,2.7628,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:26.525845 +AWS,sa-east-1,c7gd.12xlarge,reserved_3y,partial_upfront,2.7628,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:01.574954 +AWS,sa-east-1,c7gd.12xlarge,spot,NA,1.166668,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028168 +AWS,sa-east-1,c7gd.16xlarge,on_demand,NA,4.5056,USD,AWS Pricing API,2025-11-30T09:10:46.360170 +AWS,sa-east-1,c7gd.16xlarge,reserved_1y,all_upfront,6.591553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:15.549688 +AWS,sa-east-1,c7gd.16xlarge,reserved_1y,no_upfront,6.591553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:03.880236 +AWS,sa-east-1,c7gd.16xlarge,reserved_1y,partial_upfront,6.591553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:38.426533 +AWS,sa-east-1,c7gd.16xlarge,reserved_3y,all_upfront,2.197184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:04.111625 +AWS,sa-east-1,c7gd.16xlarge,reserved_3y,no_upfront,2.197184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:12.318735 +AWS,sa-east-1,c7gd.16xlarge,reserved_3y,partial_upfront,2.197184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:47.679449 +AWS,sa-east-1,c7gd.16xlarge,spot,NA,1.797149,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027877 +AWS,sa-east-1,c7gd.2xlarge,on_demand,NA,0.5632,USD,AWS Pricing API,2025-11-30T09:11:15.697014 +AWS,sa-east-1,c7gd.2xlarge,reserved_1y,all_upfront,0.429795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:44.718317 +AWS,sa-east-1,c7gd.2xlarge,reserved_1y,no_upfront,0.429795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:33.457013 +AWS,sa-east-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.429795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:07.650468 +AWS,sa-east-1,c7gd.2xlarge,reserved_3y,all_upfront,0.143265,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:32.762706 +AWS,sa-east-1,c7gd.2xlarge,reserved_3y,no_upfront,0.143265,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:42.101278 +AWS,sa-east-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.143265,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:16.915317 +AWS,sa-east-1,c7gd.2xlarge,spot,NA,0.119901,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028495 +AWS,sa-east-1,c7gd.4xlarge,on_demand,NA,1.1264,USD,AWS Pricing API,2025-11-30T09:11:03.119073 +AWS,sa-east-1,c7gd.4xlarge,reserved_1y,all_upfront,0.901099,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:32.169221 +AWS,sa-east-1,c7gd.4xlarge,reserved_1y,no_upfront,0.901099,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:20.811507 +AWS,sa-east-1,c7gd.4xlarge,reserved_1y,partial_upfront,0.901099,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:55.037309 +AWS,sa-east-1,c7gd.4xlarge,reserved_3y,all_upfront,0.450566,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:20.430540 +AWS,sa-east-1,c7gd.4xlarge,reserved_3y,no_upfront,0.450566,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:29.280475 +AWS,sa-east-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.450566,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:04.269545 +AWS,sa-east-1,c7gd.4xlarge,spot,NA,0.271767,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028215 +AWS,sa-east-1,c7gd.8xlarge,on_demand,NA,2.2528,USD,AWS Pricing API,2025-11-30T09:10:54.695016 +AWS,sa-east-1,c7gd.8xlarge,reserved_1y,all_upfront,3.295776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:23.759756 +AWS,sa-east-1,c7gd.8xlarge,reserved_1y,no_upfront,3.295776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:12.236760 +AWS,sa-east-1,c7gd.8xlarge,reserved_1y,partial_upfront,3.295776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:46.659965 +AWS,sa-east-1,c7gd.8xlarge,reserved_3y,all_upfront,1.098592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:12.219909 +AWS,sa-east-1,c7gd.8xlarge,reserved_3y,no_upfront,1.098592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:20.731257 +AWS,sa-east-1,c7gd.8xlarge,reserved_3y,partial_upfront,1.098592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:55.890194 +AWS,sa-east-1,c7gd.8xlarge,spot,NA,0.677934,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028057 +AWS,sa-east-1,c7gd.xlarge,on_demand,NA,0.2816,USD,AWS Pricing API,2025-11-30T09:11:33.797291 +AWS,sa-east-1,c7gd.xlarge,reserved_1y,all_upfront,0.22525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:02.826807 +AWS,sa-east-1,c7gd.xlarge,reserved_1y,no_upfront,0.22525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:51.897097 +AWS,sa-east-1,c7gd.xlarge,reserved_1y,partial_upfront,0.22525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:25.686581 +AWS,sa-east-1,c7gd.xlarge,reserved_3y,all_upfront,0.112617,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:50.531619 +AWS,sa-east-1,c7gd.xlarge,reserved_3y,no_upfront,0.112617,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:00.587540 +AWS,sa-east-1,c7gd.xlarge,reserved_3y,partial_upfront,0.112617,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:34.931937 +AWS,sa-east-1,c7gd.xlarge,spot,NA,0.067371,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028865 +AWS,sa-east-1,c7i.12xlarge,on_demand,NA,3.3012,USD,AWS Pricing API,2025-11-30T09:10:54.967816 +AWS,sa-east-1,c7i.12xlarge,reserved_1y,all_upfront,4.66016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:24.030742 +AWS,sa-east-1,c7i.12xlarge,reserved_1y,no_upfront,4.66016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:12.508558 +AWS,sa-east-1,c7i.12xlarge,reserved_1y,partial_upfront,4.66016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:46.935012 +AWS,sa-east-1,c7i.12xlarge,reserved_3y,all_upfront,1.553387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:12.491795 +AWS,sa-east-1,c7i.12xlarge,reserved_3y,no_upfront,1.553387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:21.009863 +AWS,sa-east-1,c7i.12xlarge,reserved_3y,partial_upfront,1.553387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:56.157308 +AWS,sa-east-1,c7i.12xlarge,spot,NA,1.723091,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028041 +AWS,sa-east-1,c7i.16xlarge,on_demand,NA,4.4016,USD,AWS Pricing API,2025-11-30T09:11:32.077495 +AWS,sa-east-1,c7i.16xlarge,reserved_1y,all_upfront,5.220776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:01.058225 +AWS,sa-east-1,c7i.16xlarge,reserved_1y,no_upfront,5.220776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:50.125200 +AWS,sa-east-1,c7i.16xlarge,reserved_1y,partial_upfront,5.220776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:23.943179 +AWS,sa-east-1,c7i.16xlarge,reserved_3y,all_upfront,1.740259,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:48.815243 +AWS,sa-east-1,c7i.16xlarge,reserved_3y,no_upfront,1.740259,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:58.800090 +AWS,sa-east-1,c7i.16xlarge,reserved_3y,partial_upfront,1.740259,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:33.196250 +AWS,sa-east-1,c7i.16xlarge,spot,NA,2.218289,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028845 +AWS,sa-east-1,c7i.24xlarge,on_demand,NA,6.6024,USD,AWS Pricing API,2025-11-30T09:11:05.820675 +AWS,sa-east-1,c7i.24xlarge,reserved_1y,all_upfront,4.069863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:34.862795 +AWS,sa-east-1,c7i.24xlarge,reserved_1y,no_upfront,4.069863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:23.530085 +AWS,sa-east-1,c7i.24xlarge,reserved_1y,partial_upfront,4.069863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:57.768429 +AWS,sa-east-1,c7i.24xlarge,reserved_3y,all_upfront,1.356621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:23.084910 +AWS,sa-east-1,c7i.24xlarge,reserved_3y,no_upfront,1.356621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:32.034815 +AWS,sa-east-1,c7i.24xlarge,reserved_3y,partial_upfront,1.356621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:07.062284 +AWS,sa-east-1,c7i.24xlarge,spot,NA,4.214434,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028268 +AWS,sa-east-1,c7i.2xlarge,on_demand,NA,0.5502,USD,AWS Pricing API,2025-11-30T09:11:20.490930 +AWS,sa-east-1,c7i.2xlarge,reserved_1y,all_upfront,0.390982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:49.472233 +AWS,sa-east-1,c7i.2xlarge,reserved_1y,no_upfront,0.390982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:38.272367 +AWS,sa-east-1,c7i.2xlarge,reserved_1y,partial_upfront,0.390982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:12.365202 +AWS,sa-east-1,c7i.2xlarge,reserved_3y,all_upfront,0.130327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:37.433627 +AWS,sa-east-1,c7i.2xlarge,reserved_3y,no_upfront,0.130327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:46.941021 +AWS,sa-east-1,c7i.2xlarge,reserved_3y,partial_upfront,0.130327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:21.629310 +AWS,sa-east-1,c7i.2xlarge,spot,NA,0.227919,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028600 +AWS,sa-east-1,c7i.48xlarge,on_demand,NA,13.2048,USD,AWS Pricing API,2025-11-30T09:10:48.385403 +AWS,sa-east-1,c7i.48xlarge,reserved_1y,all_upfront,11.10809,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:17.563490 +AWS,sa-east-1,c7i.48xlarge,reserved_1y,no_upfront,11.10809,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:05.952235 +AWS,sa-east-1,c7i.48xlarge,reserved_1y,partial_upfront,11.10809,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:40.450404 +AWS,sa-east-1,c7i.48xlarge,reserved_3y,all_upfront,5.554057,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:06.121323 +AWS,sa-east-1,c7i.48xlarge,reserved_3y,no_upfront,5.554057,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:14.397287 +AWS,sa-east-1,c7i.48xlarge,reserved_3y,partial_upfront,5.554057,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:49.710717 +AWS,sa-east-1,c7i.48xlarge,spot,NA,2.295688,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027937 +AWS,sa-east-1,c7i.4xlarge,on_demand,NA,1.1004,USD,AWS Pricing API,2025-11-30T09:11:01.475324 +AWS,sa-east-1,c7i.4xlarge,reserved_1y,all_upfront,0.692199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:30.557775 +AWS,sa-east-1,c7i.4xlarge,reserved_1y,no_upfront,0.692199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:19.084484 +AWS,sa-east-1,c7i.4xlarge,reserved_1y,partial_upfront,0.692199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:53.417881 +AWS,sa-east-1,c7i.4xlarge,reserved_3y,all_upfront,0.461453,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:18.850026 +AWS,sa-east-1,c7i.4xlarge,reserved_3y,no_upfront,0.461453,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:27.634635 +AWS,sa-east-1,c7i.4xlarge,reserved_3y,partial_upfront,0.461453,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:02.653649 +AWS,sa-east-1,c7i.4xlarge,spot,NA,0.450546,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028199 +AWS,sa-east-1,c7i.8xlarge,on_demand,NA,2.2008,USD,AWS Pricing API,2025-11-30T09:10:33.281860 +AWS,sa-east-1,c7i.8xlarge,reserved_1y,all_upfront,1.45354,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:02.510458 +AWS,sa-east-1,c7i.8xlarge,reserved_1y,no_upfront,1.45354,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:50.606029 +AWS,sa-east-1,c7i.8xlarge,reserved_1y,partial_upfront,1.45354,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:25.460267 +AWS,sa-east-1,c7i.8xlarge,reserved_3y,all_upfront,1.45354,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:51.380400 +AWS,sa-east-1,c7i.8xlarge,reserved_3y,no_upfront,1.45354,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:58.936449 +AWS,sa-east-1,c7i.8xlarge,reserved_3y,partial_upfront,1.45354,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:34.698260 +AWS,sa-east-1,c7i.8xlarge,spot,NA,1.082149,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027620 +AWS,sa-east-1,c7i.large,on_demand,NA,0.13755,USD,AWS Pricing API,2025-11-30T09:11:19.942344 +AWS,sa-east-1,c7i.large,reserved_1y,all_upfront,0.10474,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:48.928325 +AWS,sa-east-1,c7i.large,reserved_1y,no_upfront,0.10474,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:37.720943 +AWS,sa-east-1,c7i.large,reserved_1y,partial_upfront,0.10474,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:11.824114 +AWS,sa-east-1,c7i.large,reserved_3y,all_upfront,0.10474,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:36.902880 +AWS,sa-east-1,c7i.large,reserved_3y,no_upfront,0.10474,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:46.392446 +AWS,sa-east-1,c7i.large,reserved_3y,partial_upfront,0.10474,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:21.089357 +AWS,sa-east-1,c7i.large,spot,NA,0.043879,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028592 +AWS,sa-east-1,c7i.metal-24xl,on_demand,NA,6.6024,USD,AWS Pricing API,2025-11-30T09:10:49.197435 +AWS,sa-east-1,c7i.metal-24xl,reserved_1y,all_upfront,4.692237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:18.376916 +AWS,sa-east-1,c7i.metal-24xl,reserved_1y,no_upfront,4.692237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:06.773608 +AWS,sa-east-1,c7i.metal-24xl,reserved_1y,partial_upfront,4.692237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:41.252155 +AWS,sa-east-1,c7i.metal-24xl,reserved_3y,all_upfront,1.564079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:06.922660 +AWS,sa-east-1,c7i.metal-24xl,reserved_3y,no_upfront,1.564079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:15.220485 +AWS,sa-east-1,c7i.metal-24xl,reserved_3y,partial_upfront,1.564079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:50.527845 +AWS,sa-east-1,c7i.metal-24xl,spot,NA,0.864212,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027946 +AWS,sa-east-1,c7i.metal-48xl,on_demand,NA,13.2048,USD,AWS Pricing API,2025-11-30T09:10:37.319149 +AWS,sa-east-1,c7i.metal-48xl,reserved_1y,all_upfront,12.680528,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:06.609051 +AWS,sa-east-1,c7i.metal-48xl,reserved_1y,no_upfront,12.680528,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:54.766229 +AWS,sa-east-1,c7i.metal-48xl,reserved_1y,partial_upfront,12.680528,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:29.491969 +AWS,sa-east-1,c7i.metal-48xl,reserved_3y,all_upfront,6.340269,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:55.342874 +AWS,sa-east-1,c7i.metal-48xl,reserved_3y,no_upfront,6.340269,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:03.102736 +AWS,sa-east-1,c7i.metal-48xl,reserved_3y,partial_upfront,6.340269,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:38.744973 +AWS,sa-east-1,c7i.metal-48xl,spot,NA,1.786188,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027710 +AWS,sa-east-1,c7i.xlarge,on_demand,NA,0.2751,USD,AWS Pricing API,2025-11-30T09:11:31.145937 +AWS,sa-east-1,c7i.xlarge,reserved_1y,all_upfront,0.169635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:00.116065 +AWS,sa-east-1,c7i.xlarge,reserved_1y,no_upfront,0.169635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:49.159113 +AWS,sa-east-1,c7i.xlarge,reserved_1y,partial_upfront,0.169635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:23.009873 +AWS,sa-east-1,c7i.xlarge,reserved_3y,all_upfront,0.056545,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:47.890743 +AWS,sa-east-1,c7i.xlarge,reserved_3y,no_upfront,0.056545,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:57.831285 +AWS,sa-east-1,c7i.xlarge,reserved_3y,partial_upfront,0.056545,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:32.262694 +AWS,sa-east-1,c7i.xlarge,spot,NA,0.112142,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028827 +AWS,sa-east-1,c8g.12xlarge,on_demand,NA,2.93232,USD,AWS Pricing API,2025-11-30T09:11:28.711037 +AWS,sa-east-1,c8g.12xlarge,reserved_1y,all_upfront,2.240297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:57.688896 +AWS,sa-east-1,c8g.12xlarge,reserved_1y,no_upfront,2.240297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:46.682997 +AWS,sa-east-1,c8g.12xlarge,reserved_1y,partial_upfront,2.240297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:20.578417 +AWS,sa-east-1,c8g.12xlarge,reserved_3y,all_upfront,0.746766,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:45.507792 +AWS,sa-east-1,c8g.12xlarge,reserved_3y,no_upfront,0.746766,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:55.324181 +AWS,sa-east-1,c8g.12xlarge,reserved_3y,partial_upfront,0.746766,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:29.833014 +AWS,sa-east-1,c8g.12xlarge,spot,NA,1.066357,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028741 +AWS,sa-east-1,c8g.16xlarge,on_demand,NA,3.90976,USD,AWS Pricing API,2025-11-30T09:10:32.193991 +AWS,sa-east-1,c8g.16xlarge,reserved_1y,all_upfront,3.288568,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:01.416443 +AWS,sa-east-1,c8g.16xlarge,reserved_1y,no_upfront,3.288568,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:49.520142 +AWS,sa-east-1,c8g.16xlarge,reserved_1y,partial_upfront,3.288568,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:24.363525 +AWS,sa-east-1,c8g.16xlarge,reserved_3y,all_upfront,1.644276,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:50.306816 +AWS,sa-east-1,c8g.16xlarge,reserved_3y,no_upfront,1.644276,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:57.840015 +AWS,sa-east-1,c8g.16xlarge,reserved_3y,partial_upfront,1.644276,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:33.620543 +AWS,sa-east-1,c8g.16xlarge,spot,NA,1.579878,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027616 +AWS,sa-east-1,c8g.24xlarge,on_demand,NA,5.86464,USD,AWS Pricing API,2025-11-30T09:11:18.716104 +AWS,sa-east-1,c8g.24xlarge,reserved_1y,all_upfront,3.696618,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:47.699192 +AWS,sa-east-1,c8g.24xlarge,reserved_1y,no_upfront,3.696618,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:36.479486 +AWS,sa-east-1,c8g.24xlarge,reserved_1y,partial_upfront,3.696618,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:10.617512 +AWS,sa-east-1,c8g.24xlarge,reserved_3y,all_upfront,2.464426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:35.704497 +AWS,sa-east-1,c8g.24xlarge,reserved_3y,no_upfront,2.464426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:45.145632 +AWS,sa-east-1,c8g.24xlarge,reserved_3y,partial_upfront,2.464426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:19.871355 +AWS,sa-east-1,c8g.24xlarge,spot,NA,0.64213,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028560 +AWS,sa-east-1,c8g.2xlarge,on_demand,NA,0.48872,USD,AWS Pricing API,2025-11-30T09:10:44.282453 +AWS,sa-east-1,c8g.2xlarge,reserved_1y,all_upfront,0.32346,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:13.515725 +AWS,sa-east-1,c8g.2xlarge,reserved_1y,no_upfront,0.32346,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:01.798929 +AWS,sa-east-1,c8g.2xlarge,reserved_1y,partial_upfront,0.32346,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:36.368914 +AWS,sa-east-1,c8g.2xlarge,reserved_3y,all_upfront,0.32346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:02.108491 +AWS,sa-east-1,c8g.2xlarge,reserved_3y,no_upfront,0.32346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:10.244921 +AWS,sa-east-1,c8g.2xlarge,reserved_3y,partial_upfront,0.32346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:45.655503 +AWS,sa-east-1,c8g.2xlarge,spot,NA,0.112374,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027852 +AWS,sa-east-1,c8g.48xlarge,on_demand,NA,11.72928,USD,AWS Pricing API,2025-11-30T09:11:37.478374 +AWS,sa-east-1,c8g.48xlarge,reserved_1y,all_upfront,9.60111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:06.475701 +AWS,sa-east-1,c8g.48xlarge,reserved_1y,no_upfront,9.60111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:55.584458 +AWS,sa-east-1,c8g.48xlarge,reserved_1y,partial_upfront,9.60111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:29.361664 +AWS,sa-east-1,c8g.48xlarge,reserved_3y,all_upfront,9.60111,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:54.128113 +AWS,sa-east-1,c8g.48xlarge,reserved_3y,no_upfront,9.60111,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:04.341297 +AWS,sa-east-1,c8g.48xlarge,reserved_3y,partial_upfront,9.60111,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:38.571666 +AWS,sa-east-1,c8g.48xlarge,spot,NA,1.255697,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028949 +AWS,sa-east-1,c8g.4xlarge,on_demand,NA,0.97744,USD,AWS Pricing API,2025-11-30T09:10:46.767539 +AWS,sa-east-1,c8g.4xlarge,reserved_1y,all_upfront,0.603767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:15.955983 +AWS,sa-east-1,c8g.4xlarge,reserved_1y,no_upfront,0.603767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:04.301544 +AWS,sa-east-1,c8g.4xlarge,reserved_1y,partial_upfront,0.603767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:38.838754 +AWS,sa-east-1,c8g.4xlarge,reserved_3y,all_upfront,0.201256,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:04.514275 +AWS,sa-east-1,c8g.4xlarge,reserved_3y,no_upfront,0.201256,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:12.727846 +AWS,sa-east-1,c8g.4xlarge,reserved_3y,partial_upfront,0.201256,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:48.098282 +AWS,sa-east-1,c8g.4xlarge,spot,NA,0.261208,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027881 +AWS,sa-east-1,c8g.8xlarge,on_demand,NA,1.95488,USD,AWS Pricing API,2025-11-30T09:10:50.272933 +AWS,sa-east-1,c8g.8xlarge,reserved_1y,all_upfront,1.207534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:19.450472 +AWS,sa-east-1,c8g.8xlarge,reserved_1y,no_upfront,1.207534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:07.873777 +AWS,sa-east-1,c8g.8xlarge,reserved_1y,partial_upfront,1.207534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:42.329169 +AWS,sa-east-1,c8g.8xlarge,reserved_3y,all_upfront,0.402511,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:07.974561 +AWS,sa-east-1,c8g.8xlarge,reserved_3y,no_upfront,0.402511,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:16.319450 +AWS,sa-east-1,c8g.8xlarge,reserved_3y,partial_upfront,0.402511,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:51.613813 +AWS,sa-east-1,c8g.8xlarge,spot,NA,1.695996,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027965 +AWS,sa-east-1,c8g.large,on_demand,NA,0.12218,USD,AWS Pricing API,2025-11-30T09:11:31.810495 +AWS,sa-east-1,c8g.large,reserved_1y,all_upfront,0.06598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:00.782296 +AWS,sa-east-1,c8g.large,reserved_1y,no_upfront,0.06598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:49.845664 +AWS,sa-east-1,c8g.large,reserved_1y,partial_upfront,0.06598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:23.676009 +AWS,sa-east-1,c8g.large,reserved_3y,all_upfront,0.06598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:48.554675 +AWS,sa-east-1,c8g.large,reserved_3y,no_upfront,0.06598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:58.519272 +AWS,sa-east-1,c8g.large,reserved_3y,partial_upfront,0.06598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:32.929756 +AWS,sa-east-1,c8g.large,spot,NA,0.027618,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028841 +AWS,sa-east-1,c8g.medium,on_demand,NA,0.06109,USD,AWS Pricing API,2025-11-30T09:11:16.508869 +AWS,sa-east-1,c8g.medium,reserved_1y,all_upfront,0.046689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:45.537106 +AWS,sa-east-1,c8g.medium,reserved_1y,no_upfront,0.046689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:34.289720 +AWS,sa-east-1,c8g.medium,reserved_1y,partial_upfront,0.046689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:08.467666 +AWS,sa-east-1,c8g.medium,reserved_3y,all_upfront,0.015563,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:33.555365 +AWS,sa-east-1,c8g.medium,reserved_3y,no_upfront,0.015563,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:42.924149 +AWS,sa-east-1,c8g.medium,reserved_3y,partial_upfront,0.015563,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:17.732164 +AWS,sa-east-1,c8g.medium,spot,NA,0.007205,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028511 +AWS,sa-east-1,c8g.xlarge,on_demand,NA,0.24436,USD,AWS Pricing API,2025-11-30T09:10:40.468986 +AWS,sa-east-1,c8g.xlarge,reserved_1y,all_upfront,0.150913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:09.730002 +AWS,sa-east-1,c8g.xlarge,reserved_1y,no_upfront,0.150913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:57.918650 +AWS,sa-east-1,c8g.xlarge,reserved_1y,partial_upfront,0.150913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:32.589756 +AWS,sa-east-1,c8g.xlarge,reserved_3y,all_upfront,0.050304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:58.385659 +AWS,sa-east-1,c8g.xlarge,reserved_3y,no_upfront,0.050304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:06.311907 +AWS,sa-east-1,c8g.xlarge,reserved_3y,partial_upfront,0.050304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:41.866494 +AWS,sa-east-1,c8g.xlarge,spot,NA,0.06382,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027782 +AWS,sa-east-1,g4dn.12xlarge,on_demand,NA,6.649,USD,AWS Pricing API,2025-11-30T09:10:37.180998 +AWS,sa-east-1,g4dn.12xlarge,reserved_1y,all_upfront,4.235388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:06.471967 +AWS,sa-east-1,g4dn.12xlarge,reserved_1y,no_upfront,4.235388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:54.629859 +AWS,sa-east-1,g4dn.12xlarge,reserved_1y,partial_upfront,4.235388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:29.356477 +AWS,sa-east-1,g4dn.12xlarge,reserved_3y,all_upfront,1.411796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:55.210625 +AWS,sa-east-1,g4dn.12xlarge,reserved_3y,no_upfront,1.411796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:02.964733 +AWS,sa-east-1,g4dn.12xlarge,reserved_3y,partial_upfront,1.411796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:38.609748 +AWS,sa-east-1,g4dn.12xlarge,spot,NA,1.411325,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027685 +AWS,sa-east-1,g4dn.16xlarge,on_demand,NA,7.397,USD,AWS Pricing API,2025-11-30T09:10:43.459184 +AWS,sa-east-1,g4dn.16xlarge,reserved_1y,all_upfront,5.802,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:12.700470 +AWS,sa-east-1,g4dn.16xlarge,reserved_1y,no_upfront,5.802,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:00.942216 +AWS,sa-east-1,g4dn.16xlarge,reserved_1y,partial_upfront,5.802,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:35.554517 +AWS,sa-east-1,g4dn.16xlarge,reserved_3y,all_upfront,5.802,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:01.297297 +AWS,sa-east-1,g4dn.16xlarge,reserved_3y,no_upfront,5.802,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:09.409280 +AWS,sa-east-1,g4dn.16xlarge,reserved_3y,partial_upfront,5.802,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:44.830988 +AWS,sa-east-1,g4dn.16xlarge,spot,NA,0.746873,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027848 +AWS,sa-east-1,g4dn.2xlarge,on_demand,NA,1.278,USD,AWS Pricing API,2025-11-30T09:11:17.450296 +AWS,sa-east-1,g4dn.2xlarge,reserved_1y,all_upfront,1.694064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:46.483442 +AWS,sa-east-1,g4dn.2xlarge,reserved_1y,no_upfront,1.694064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:35.247252 +AWS,sa-east-1,g4dn.2xlarge,reserved_1y,partial_upfront,1.694064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:09.411079 +AWS,sa-east-1,g4dn.2xlarge,reserved_3y,all_upfront,0.564688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:34.497126 +AWS,sa-east-1,g4dn.2xlarge,reserved_3y,no_upfront,0.564688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:43.893096 +AWS,sa-east-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.564688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:18.666984 +AWS,sa-east-1,g4dn.2xlarge,spot,NA,0.179305,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028544 +AWS,sa-east-1,g4dn.4xlarge,on_demand,NA,2.046,USD,AWS Pricing API,2025-11-30T09:10:58.110523 +AWS,sa-east-1,g4dn.4xlarge,reserved_1y,all_upfront,1.330068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:27.153852 +AWS,sa-east-1,g4dn.4xlarge,reserved_1y,no_upfront,1.330068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:15.645482 +AWS,sa-east-1,g4dn.4xlarge,reserved_1y,partial_upfront,1.330068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:50.039792 +AWS,sa-east-1,g4dn.4xlarge,reserved_3y,all_upfront,0.886689,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:15.532174 +AWS,sa-east-1,g4dn.4xlarge,reserved_3y,no_upfront,0.886689,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:24.192122 +AWS,sa-east-1,g4dn.4xlarge,reserved_3y,partial_upfront,0.886689,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:59.280630 +AWS,sa-east-1,g4dn.4xlarge,spot,NA,0.949753,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028140 +AWS,sa-east-1,g4dn.8xlarge,on_demand,NA,3.698,USD,AWS Pricing API,2025-11-30T09:11:00.818696 +AWS,sa-east-1,g4dn.8xlarge,reserved_1y,all_upfront,1.877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:29.865571 +AWS,sa-east-1,g4dn.8xlarge,reserved_1y,no_upfront,1.877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:18.407834 +AWS,sa-east-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:52.748637 +AWS,sa-east-1,g4dn.8xlarge,reserved_3y,all_upfront,1.877,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:18.180158 +AWS,sa-east-1,g4dn.8xlarge,reserved_3y,no_upfront,1.877,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:26.937433 +AWS,sa-east-1,g4dn.8xlarge,reserved_3y,partial_upfront,1.877,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:01.985468 +AWS,sa-east-1,g4dn.8xlarge,spot,NA,0.48755,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028195 +AWS,sa-east-1,g4dn.xlarge,on_demand,NA,0.894,USD,AWS Pricing API,2025-11-30T09:11:24.107198 +AWS,sa-east-1,g4dn.xlarge,reserved_1y,all_upfront,0.840251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:53.091290 +AWS,sa-east-1,g4dn.xlarge,reserved_1y,no_upfront,0.840251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:41.945256 +AWS,sa-east-1,g4dn.xlarge,reserved_1y,partial_upfront,0.840251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:15.994356 +AWS,sa-east-1,g4dn.xlarge,reserved_3y,all_upfront,0.420084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:40.995972 +AWS,sa-east-1,g4dn.xlarge,reserved_3y,no_upfront,0.420084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:50.641374 +AWS,sa-east-1,g4dn.xlarge,reserved_3y,partial_upfront,0.420084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:25.249744 +AWS,sa-east-1,g4dn.xlarge,spot,NA,0.110723,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028675 +AWS,sa-east-1,g5.12xlarge,on_demand,NA,9.64127,USD,AWS Pricing API,2025-11-30T09:10:22.711226 +AWS,sa-east-1,g5.12xlarge,reserved_1y,all_upfront,7.231005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:51.789633 +AWS,sa-east-1,g5.12xlarge,reserved_1y,no_upfront,7.231005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:39.822294 +AWS,sa-east-1,g5.12xlarge,reserved_1y,partial_upfront,7.231005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:14.816745 +AWS,sa-east-1,g5.12xlarge,reserved_3y,all_upfront,4.820655,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:40.875814 +AWS,sa-east-1,g5.12xlarge,reserved_3y,no_upfront,4.820655,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:47.954196 +AWS,sa-east-1,g5.12xlarge,reserved_3y,partial_upfront,4.820655,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:24.106406 +AWS,sa-east-1,g5.12xlarge,spot,NA,2.174854,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027451 +AWS,sa-east-1,g5.16xlarge,on_demand,NA,6.96239,USD,AWS Pricing API,2025-11-30T09:10:24.736115 +AWS,sa-east-1,g5.16xlarge,reserved_1y,all_upfront,3.75969,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:53.840575 +AWS,sa-east-1,g5.16xlarge,reserved_1y,no_upfront,3.75969,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:41.856665 +AWS,sa-east-1,g5.16xlarge,reserved_1y,partial_upfront,3.75969,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:16.829350 +AWS,sa-east-1,g5.16xlarge,reserved_3y,all_upfront,3.75969,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:42.885416 +AWS,sa-east-1,g5.16xlarge,reserved_3y,no_upfront,3.75969,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:50.024313 +AWS,sa-east-1,g5.16xlarge,reserved_3y,partial_upfront,3.75969,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:26.131482 +AWS,sa-east-1,g5.16xlarge,spot,NA,0.996548,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027469 +AWS,sa-east-1,g5.24xlarge,on_demand,NA,13.84318,USD,AWS Pricing API,2025-11-30T09:10:23.654378 +AWS,sa-east-1,g5.24xlarge,reserved_1y,all_upfront,10.174772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:52.751397 +AWS,sa-east-1,g5.24xlarge,reserved_1y,no_upfront,10.174772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:40.772660 +AWS,sa-east-1,g5.24xlarge,reserved_1y,partial_upfront,10.174772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:15.757372 +AWS,sa-east-1,g5.24xlarge,reserved_3y,all_upfront,3.391591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:41.804307 +AWS,sa-east-1,g5.24xlarge,reserved_3y,no_upfront,3.391591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:48.929175 +AWS,sa-east-1,g5.24xlarge,reserved_3y,partial_upfront,3.391591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:25.051546 +AWS,sa-east-1,g5.24xlarge,spot,NA,3.999436,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027447 +AWS,sa-east-1,g5.2xlarge,on_demand,NA,2.06016,USD,AWS Pricing API,2025-11-30T09:10:40.606331 +AWS,sa-east-1,g5.2xlarge,reserved_1y,all_upfront,1.62238,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:09.863850 +AWS,sa-east-1,g5.2xlarge,reserved_1y,no_upfront,1.62238,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:58.056748 +AWS,sa-east-1,g5.2xlarge,reserved_1y,partial_upfront,1.62238,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:32.725323 +AWS,sa-east-1,g5.2xlarge,reserved_3y,all_upfront,1.62238,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:58.518298 +AWS,sa-east-1,g5.2xlarge,reserved_3y,no_upfront,1.62238,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:06.454401 +AWS,sa-east-1,g5.2xlarge,reserved_3y,partial_upfront,1.62238,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:42.000260 +AWS,sa-east-1,g5.2xlarge,spot,NA,0.403192,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027770 +AWS,sa-east-1,g5.48xlarge,on_demand,NA,27.68636,USD,AWS Pricing API,2025-11-30T09:10:25.399046 +AWS,sa-east-1,g5.48xlarge,reserved_1y,all_upfront,16.611846,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:54.518277 +AWS,sa-east-1,g5.48xlarge,reserved_1y,no_upfront,16.611846,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:42.544079 +AWS,sa-east-1,g5.48xlarge,reserved_1y,partial_upfront,16.611846,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:17.502125 +AWS,sa-east-1,g5.48xlarge,reserved_3y,all_upfront,11.074555,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:43.550864 +AWS,sa-east-1,g5.48xlarge,reserved_3y,no_upfront,11.074555,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:50.708207 +AWS,sa-east-1,g5.48xlarge,reserved_3y,partial_upfront,11.074555,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:26.804824 +AWS,sa-east-1,g5.48xlarge,spot,NA,10.561905,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027502 +AWS,sa-east-1,g5.4xlarge,on_demand,NA,2.76048,USD,AWS Pricing API,2025-11-30T09:10:34.759304 +AWS,sa-east-1,g5.4xlarge,reserved_1y,all_upfront,4.057877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:04.028199 +AWS,sa-east-1,g5.4xlarge,reserved_1y,no_upfront,4.057877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:52.127014 +AWS,sa-east-1,g5.4xlarge,reserved_1y,partial_upfront,4.057877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:26.939375 +AWS,sa-east-1,g5.4xlarge,reserved_3y,all_upfront,1.352626,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:52.828914 +AWS,sa-east-1,g5.4xlarge,reserved_3y,no_upfront,1.352626,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:00.454611 +AWS,sa-east-1,g5.4xlarge,reserved_3y,partial_upfront,1.352626,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:36.187246 +AWS,sa-east-1,g5.4xlarge,spot,NA,0.358805,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027657 +AWS,sa-east-1,g5.8xlarge,on_demand,NA,4.16111,USD,AWS Pricing API,2025-11-30T09:10:42.511076 +AWS,sa-east-1,g5.8xlarge,reserved_1y,all_upfront,1.7976,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:11.752806 +AWS,sa-east-1,g5.8xlarge,reserved_1y,no_upfront,1.7976,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:59.985443 +AWS,sa-east-1,g5.8xlarge,reserved_1y,partial_upfront,1.7976,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:34.616932 +AWS,sa-east-1,g5.8xlarge,reserved_3y,all_upfront,1.7976,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:00.368763 +AWS,sa-east-1,g5.8xlarge,reserved_3y,no_upfront,1.7976,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:08.417727 +AWS,sa-east-1,g5.8xlarge,reserved_3y,partial_upfront,1.7976,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:43.877639 +AWS,sa-east-1,g5.8xlarge,spot,NA,0.587006,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027803 +AWS,sa-east-1,g5.xlarge,on_demand,NA,1.71,USD,AWS Pricing API,2025-11-30T09:11:29.662922 +AWS,sa-east-1,g5.xlarge,reserved_1y,all_upfront,1.34663,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:58.628817 +AWS,sa-east-1,g5.xlarge,reserved_1y,no_upfront,1.34663,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:47.651736 +AWS,sa-east-1,g5.xlarge,reserved_1y,partial_upfront,1.34663,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:21.525999 +AWS,sa-east-1,g5.xlarge,reserved_3y,all_upfront,1.34663,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:46.437804 +AWS,sa-east-1,g5.xlarge,reserved_3y,no_upfront,1.34663,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:56.315829 +AWS,sa-east-1,g5.xlarge,reserved_3y,partial_upfront,1.34663,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:30.777550 +AWS,sa-east-1,g5.xlarge,spot,NA,0.267751,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028796 +AWS,sa-east-1,g6.12xlarge,on_demand,NA,7.82181,USD,AWS Pricing API,2025-11-30T09:10:26.059156 +AWS,sa-east-1,g6.12xlarge,reserved_1y,all_upfront,12.216667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:55.193224 +AWS,sa-east-1,g6.12xlarge,reserved_1y,no_upfront,12.216667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:43.220365 +AWS,sa-east-1,g6.12xlarge,reserved_1y,partial_upfront,12.216667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:18.167871 +AWS,sa-east-1,g6.12xlarge,reserved_3y,all_upfront,4.072222,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:44.211756 +AWS,sa-east-1,g6.12xlarge,reserved_3y,no_upfront,4.072222,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:51.392077 +AWS,sa-east-1,g6.12xlarge,reserved_3y,partial_upfront,4.072222,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:27.471842 +AWS,sa-east-1,g6.12xlarge,spot,NA,0.893,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027514 +AWS,sa-east-1,g6.16xlarge,on_demand,NA,5.77388,USD,AWS Pricing API,2025-11-30T09:10:23.385115 +AWS,sa-east-1,g6.16xlarge,reserved_1y,all_upfront,9.018037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:52.479200 +AWS,sa-east-1,g6.16xlarge,reserved_1y,no_upfront,9.018037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:40.499900 +AWS,sa-east-1,g6.16xlarge,reserved_1y,partial_upfront,9.018037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:15.491700 +AWS,sa-east-1,g6.16xlarge,reserved_3y,all_upfront,3.006012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:41.538408 +AWS,sa-east-1,g6.16xlarge,reserved_3y,no_upfront,3.006012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:48.643911 +AWS,sa-east-1,g6.16xlarge,reserved_3y,partial_upfront,3.006012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:24.781772 +AWS,sa-east-1,g6.16xlarge,spot,NA,0.799304,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027460 +AWS,sa-east-1,g6.24xlarge,on_demand,NA,11.34651,USD,AWS Pricing API,2025-11-30T09:10:23.520924 +AWS,sa-east-1,g6.24xlarge,reserved_1y,all_upfront,6.894178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:52.615279 +AWS,sa-east-1,g6.24xlarge,reserved_1y,no_upfront,6.894178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:40.637029 +AWS,sa-east-1,g6.24xlarge,reserved_1y,partial_upfront,6.894178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:15.623722 +AWS,sa-east-1,g6.24xlarge,reserved_3y,all_upfront,2.298059,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:41.670651 +AWS,sa-east-1,g6.24xlarge,reserved_3y,no_upfront,2.298059,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:48.780119 +AWS,sa-east-1,g6.24xlarge,reserved_3y,partial_upfront,2.298059,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:24.917310 +AWS,sa-east-1,g6.24xlarge,spot,NA,1.155601,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027465 +AWS,sa-east-1,g6.2xlarge,on_demand,NA,1.66173,USD,AWS Pricing API,2025-11-30T09:10:25.134607 +AWS,sa-east-1,g6.2xlarge,reserved_1y,all_upfront,1.08178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:54.248521 +AWS,sa-east-1,g6.2xlarge,reserved_1y,no_upfront,1.08178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:42.265636 +AWS,sa-east-1,g6.2xlarge,reserved_1y,partial_upfront,1.08178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:17.234896 +AWS,sa-east-1,g6.2xlarge,reserved_3y,all_upfront,1.08178,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:43.287733 +AWS,sa-east-1,g6.2xlarge,reserved_3y,no_upfront,1.08178,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:50.434158 +AWS,sa-east-1,g6.2xlarge,reserved_3y,partial_upfront,1.08178,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:26.541229 +AWS,sa-east-1,g6.2xlarge,spot,NA,0.458203,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027482 +AWS,sa-east-1,g6.48xlarge,on_demand,NA,22.69303,USD,AWS Pricing API,2025-11-30T09:10:22.975923 +AWS,sa-east-1,g6.48xlarge,reserved_1y,all_upfront,17.235388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:52.070041 +AWS,sa-east-1,g6.48xlarge,reserved_1y,no_upfront,17.235388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:40.094144 +AWS,sa-east-1,g6.48xlarge,reserved_1y,partial_upfront,17.235388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:15.089401 +AWS,sa-east-1,g6.48xlarge,reserved_3y,all_upfront,5.745129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:41.141220 +AWS,sa-east-1,g6.48xlarge,reserved_3y,no_upfront,5.745129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:48.225769 +AWS,sa-east-1,g6.48xlarge,reserved_3y,partial_upfront,5.745129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:24.375943 +AWS,sa-east-1,g6.48xlarge,spot,NA,2.495838,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027442 +AWS,sa-east-1,g6.4xlarge,on_demand,NA,2.24918,USD,AWS Pricing API,2025-11-30T09:10:23.789635 +AWS,sa-east-1,g6.4xlarge,reserved_1y,all_upfront,1.03237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:52.892774 +AWS,sa-east-1,g6.4xlarge,reserved_1y,no_upfront,1.03237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:40.908611 +AWS,sa-east-1,g6.4xlarge,reserved_1y,partial_upfront,1.03237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:15.890397 +AWS,sa-east-1,g6.4xlarge,reserved_3y,all_upfront,1.03237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:41.936573 +AWS,sa-east-1,g6.4xlarge,reserved_3y,no_upfront,1.03237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:49.066202 +AWS,sa-east-1,g6.4xlarge,reserved_3y,partial_upfront,1.03237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:25.187380 +AWS,sa-east-1,g6.4xlarge,spot,NA,0.303655,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027456 +AWS,sa-east-1,g6.8xlarge,on_demand,NA,3.42408,USD,AWS Pricing API,2025-11-30T09:10:24.595789 +AWS,sa-east-1,g6.8xlarge,reserved_1y,all_upfront,2.910497,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:53.707660 +AWS,sa-east-1,g6.8xlarge,reserved_1y,no_upfront,2.910497,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:41.719944 +AWS,sa-east-1,g6.8xlarge,reserved_1y,partial_upfront,2.910497,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:16.695865 +AWS,sa-east-1,g6.8xlarge,reserved_3y,all_upfront,1.455246,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:42.753332 +AWS,sa-east-1,g6.8xlarge,reserved_3y,no_upfront,1.455246,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:49.885980 +AWS,sa-east-1,g6.8xlarge,reserved_3y,partial_upfront,1.455246,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:25.996763 +AWS,sa-east-1,g6.8xlarge,spot,NA,0.443818,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027473 +AWS,sa-east-1,g6.xlarge,on_demand,NA,1.368,USD,AWS Pricing API,2025-11-30T09:10:23.112838 +AWS,sa-east-1,g6.xlarge,reserved_1y,all_upfront,2.136644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:52.203395 +AWS,sa-east-1,g6.xlarge,reserved_1y,no_upfront,2.136644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:40.229068 +AWS,sa-east-1,g6.xlarge,reserved_1y,partial_upfront,2.136644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:15.224287 +AWS,sa-east-1,g6.xlarge,reserved_3y,all_upfront,0.712215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:41.272842 +AWS,sa-east-1,g6.xlarge,reserved_3y,no_upfront,0.712215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:48.368041 +AWS,sa-east-1,g6.xlarge,reserved_3y,partial_upfront,0.712215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:24.510327 +AWS,sa-east-1,g6.xlarge,spot,NA,0.285246,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027429 +AWS,sa-east-1,gr6.4xlarge,on_demand,NA,2.6164,USD,AWS Pricing API,2025-11-30T09:10:24.457594 +AWS,sa-east-1,gr6.4xlarge,reserved_1y,all_upfront,1.622153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:53.571857 +AWS,sa-east-1,gr6.4xlarge,reserved_1y,no_upfront,1.622153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:41.583020 +AWS,sa-east-1,gr6.4xlarge,reserved_1y,partial_upfront,1.622153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:16.562984 +AWS,sa-east-1,gr6.4xlarge,reserved_3y,all_upfront,1.081438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:42.620009 +AWS,sa-east-1,gr6.4xlarge,reserved_3y,no_upfront,1.081438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:49.749255 +AWS,sa-east-1,gr6.4xlarge,reserved_3y,partial_upfront,1.081438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:25.860482 +AWS,sa-east-1,gr6.4xlarge,spot,NA,0.384234,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027477 +AWS,sa-east-1,gr6.8xlarge,on_demand,NA,4.1585,USD,AWS Pricing API,2025-11-30T09:10:25.791916 +AWS,sa-east-1,gr6.8xlarge,reserved_1y,all_upfront,2.578285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:54.922875 +AWS,sa-east-1,gr6.8xlarge,reserved_1y,no_upfront,2.578285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:42.949301 +AWS,sa-east-1,gr6.8xlarge,reserved_1y,partial_upfront,2.578285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:17.900666 +AWS,sa-east-1,gr6.8xlarge,reserved_3y,all_upfront,1.718848,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:43.940855 +AWS,sa-east-1,gr6.8xlarge,reserved_3y,no_upfront,1.718848,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:51.117792 +AWS,sa-east-1,gr6.8xlarge,reserved_3y,partial_upfront,1.718848,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:27.206283 +AWS,sa-east-1,gr6.8xlarge,spot,NA,0.548107,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027494 +AWS,sa-east-1,i3.16xlarge,on_demand,NA,7.968,USD,AWS Pricing API,2025-11-30T09:11:21.156709 +AWS,sa-east-1,i3.16xlarge,reserved_1y,all_upfront,4.429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:50.136553 +AWS,sa-east-1,i3.16xlarge,reserved_1y,no_upfront,4.429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:38.945576 +AWS,sa-east-1,i3.16xlarge,reserved_1y,partial_upfront,4.429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:13.033526 +AWS,sa-east-1,i3.16xlarge,reserved_3y,all_upfront,4.429,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:38.087083 +AWS,sa-east-1,i3.16xlarge,reserved_3y,no_upfront,4.429,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:47.623624 +AWS,sa-east-1,i3.16xlarge,reserved_3y,partial_upfront,4.429,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:22.301500 +AWS,sa-east-1,i3.16xlarge,spot,NA,0.844922,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028628 +AWS,sa-east-1,i3.2xlarge,on_demand,NA,0.996,USD,AWS Pricing API,2025-11-30T09:10:40.741500 +AWS,sa-east-1,i3.2xlarge,reserved_1y,all_upfront,0.647858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:09.999178 +AWS,sa-east-1,i3.2xlarge,reserved_1y,no_upfront,0.647858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:58.194635 +AWS,sa-east-1,i3.2xlarge,reserved_1y,partial_upfront,0.647858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:32.861721 +AWS,sa-east-1,i3.2xlarge,reserved_3y,all_upfront,0.431953,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:58.652105 +AWS,sa-east-1,i3.2xlarge,reserved_3y,no_upfront,0.431953,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:06.594379 +AWS,sa-east-1,i3.2xlarge,reserved_3y,partial_upfront,0.431953,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:42.135163 +AWS,sa-east-1,i3.2xlarge,spot,NA,0.318882,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027766 +AWS,sa-east-1,i3.4xlarge,on_demand,NA,1.992,USD,AWS Pricing API,2025-11-30T09:10:42.227708 +AWS,sa-east-1,i3.4xlarge,reserved_1y,all_upfront,1.295717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:11.481485 +AWS,sa-east-1,i3.4xlarge,reserved_1y,no_upfront,1.295717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:59.714604 +AWS,sa-east-1,i3.4xlarge,reserved_1y,partial_upfront,1.295717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:34.346836 +AWS,sa-east-1,i3.4xlarge,reserved_3y,all_upfront,0.863906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:00.107610 +AWS,sa-east-1,i3.4xlarge,reserved_3y,no_upfront,0.863906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:08.135598 +AWS,sa-east-1,i3.4xlarge,reserved_3y,partial_upfront,0.863906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:43.611467 +AWS,sa-east-1,i3.4xlarge,spot,NA,0.420263,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027807 +AWS,sa-east-1,i3.8xlarge,on_demand,NA,3.984,USD,AWS Pricing API,2025-11-30T09:10:36.381359 +AWS,sa-east-1,i3.8xlarge,reserved_1y,all_upfront,3.566543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:05.665992 +AWS,sa-east-1,i3.8xlarge,reserved_1y,no_upfront,3.566543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:53.790415 +AWS,sa-east-1,i3.8xlarge,reserved_1y,partial_upfront,3.566543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:28.551521 +AWS,sa-east-1,i3.8xlarge,reserved_3y,all_upfront,1.783514,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:54.417029 +AWS,sa-east-1,i3.8xlarge,reserved_3y,no_upfront,1.783514,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:02.129390 +AWS,sa-east-1,i3.8xlarge,reserved_3y,partial_upfront,1.783514,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:37.803325 +AWS,sa-east-1,i3.8xlarge,spot,NA,0.491997,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027689 +AWS,sa-east-1,i3.large,on_demand,NA,0.249,USD,AWS Pricing API,2025-11-30T09:10:41.419685 +AWS,sa-east-1,i3.large,reserved_1y,all_upfront,0.138,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:10.669058 +AWS,sa-east-1,i3.large,reserved_1y,no_upfront,0.138,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:58.887079 +AWS,sa-east-1,i3.large,reserved_1y,partial_upfront,0.138,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:33.538581 +AWS,sa-east-1,i3.large,reserved_3y,all_upfront,0.138,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:59.320148 +AWS,sa-east-1,i3.large,reserved_3y,no_upfront,0.138,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:07.299122 +AWS,sa-east-1,i3.large,reserved_3y,partial_upfront,0.138,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:42.807356 +AWS,sa-east-1,i3.large,spot,NA,0.033608,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027815 +AWS,sa-east-1,i3.xlarge,on_demand,NA,0.498,USD,AWS Pricing API,2025-11-30T09:11:06.882310 +AWS,sa-east-1,i3.xlarge,reserved_1y,all_upfront,0.317352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:35.937561 +AWS,sa-east-1,i3.xlarge,reserved_1y,no_upfront,0.317352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:24.620217 +AWS,sa-east-1,i3.xlarge,reserved_1y,partial_upfront,0.317352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:58.840073 +AWS,sa-east-1,i3.xlarge,reserved_3y,all_upfront,0.105784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:24.149036 +AWS,sa-east-1,i3.xlarge,reserved_3y,no_upfront,0.105784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:33.124697 +AWS,sa-east-1,i3.xlarge,reserved_3y,partial_upfront,0.105784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:08.134444 +AWS,sa-east-1,i3.xlarge,spot,NA,0.182689,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028291 +AWS,sa-east-1,i3en.12xlarge,on_demand,NA,8.64,USD,AWS Pricing API,2025-11-30T09:10:38.380862 +AWS,sa-east-1,i3en.12xlarge,reserved_1y,all_upfront,5.504338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:07.686774 +AWS,sa-east-1,i3en.12xlarge,reserved_1y,no_upfront,5.504338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:55.863609 +AWS,sa-east-1,i3en.12xlarge,reserved_1y,partial_upfront,5.504338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:30.560818 +AWS,sa-east-1,i3en.12xlarge,reserved_3y,all_upfront,1.834779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:56.399433 +AWS,sa-east-1,i3en.12xlarge,reserved_3y,no_upfront,1.834779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:04.220519 +AWS,sa-east-1,i3en.12xlarge,reserved_3y,partial_upfront,1.834779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:39.841730 +AWS,sa-east-1,i3en.12xlarge,spot,NA,1.476894,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027717 +AWS,sa-east-1,i3en.24xlarge,on_demand,NA,17.28,USD,AWS Pricing API,2025-11-30T09:10:43.732868 +AWS,sa-east-1,i3en.24xlarge,reserved_1y,all_upfront,12.927813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:12.977049 +AWS,sa-east-1,i3en.24xlarge,reserved_1y,no_upfront,12.927813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:01.225590 +AWS,sa-east-1,i3en.24xlarge,reserved_1y,partial_upfront,12.927813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:35.828952 +AWS,sa-east-1,i3en.24xlarge,reserved_3y,all_upfront,8.618604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:01.564324 +AWS,sa-east-1,i3en.24xlarge,reserved_3y,no_upfront,8.618604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:09.684843 +AWS,sa-east-1,i3en.24xlarge,reserved_3y,partial_upfront,8.618604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:45.108973 +AWS,sa-east-1,i3en.24xlarge,spot,NA,3.993142,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027819 +AWS,sa-east-1,i3en.2xlarge,on_demand,NA,1.44,USD,AWS Pricing API,2025-11-30T09:10:33.548258 +AWS,sa-east-1,i3en.2xlarge,reserved_1y,all_upfront,0.917352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:02.805509 +AWS,sa-east-1,i3en.2xlarge,reserved_1y,no_upfront,0.917352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:50.889607 +AWS,sa-east-1,i3en.2xlarge,reserved_1y,partial_upfront,0.917352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:25.731019 +AWS,sa-east-1,i3en.2xlarge,reserved_3y,all_upfront,0.305784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:51.647733 +AWS,sa-east-1,i3en.2xlarge,reserved_3y,no_upfront,0.305784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:59.210540 +AWS,sa-east-1,i3en.2xlarge,reserved_3y,partial_upfront,0.305784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:34.965829 +AWS,sa-east-1,i3en.2xlarge,spot,NA,0.490981,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027636 +AWS,sa-east-1,i3en.3xlarge,on_demand,NA,2.16,USD,AWS Pricing API,2025-11-30T09:11:28.303652 +AWS,sa-east-1,i3en.3xlarge,reserved_1y,all_upfront,1.583676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:57.284459 +AWS,sa-east-1,i3en.3xlarge,reserved_1y,no_upfront,1.583676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:46.271675 +AWS,sa-east-1,i3en.3xlarge,reserved_1y,partial_upfront,1.583676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:20.172132 +AWS,sa-east-1,i3en.3xlarge,reserved_3y,all_upfront,0.527892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:45.107192 +AWS,sa-east-1,i3en.3xlarge,reserved_3y,no_upfront,0.527892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:54.903982 +AWS,sa-east-1,i3en.3xlarge,reserved_3y,partial_upfront,0.527892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:29.427762 +AWS,sa-east-1,i3en.3xlarge,spot,NA,0.395275,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028745 +AWS,sa-east-1,i3en.6xlarge,on_demand,NA,4.32,USD,AWS Pricing API,2025-11-30T09:11:19.671068 +AWS,sa-east-1,i3en.6xlarge,reserved_1y,all_upfront,5.856393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:48.650971 +AWS,sa-east-1,i3en.6xlarge,reserved_1y,no_upfront,5.856393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:37.443587 +AWS,sa-east-1,i3en.6xlarge,reserved_1y,partial_upfront,5.856393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:11.555085 +AWS,sa-east-1,i3en.6xlarge,reserved_3y,all_upfront,1.952131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:36.641883 +AWS,sa-east-1,i3en.6xlarge,reserved_3y,no_upfront,1.952131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:46.110673 +AWS,sa-east-1,i3en.6xlarge,reserved_3y,partial_upfront,1.952131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:20.812727 +AWS,sa-east-1,i3en.6xlarge,spot,NA,0.856049,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028580 +AWS,sa-east-1,i3en.large,on_demand,NA,0.36,USD,AWS Pricing API,2025-11-30T09:10:52.405822 +AWS,sa-east-1,i3en.large,reserved_1y,all_upfront,0.229338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:21.477872 +AWS,sa-east-1,i3en.large,reserved_1y,no_upfront,0.229338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:09.935578 +AWS,sa-east-1,i3en.large,reserved_1y,partial_upfront,0.229338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:44.362166 +AWS,sa-east-1,i3en.large,reserved_3y,all_upfront,0.076446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:09.966586 +AWS,sa-east-1,i3en.large,reserved_3y,no_upfront,0.076446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:18.393179 +AWS,sa-east-1,i3en.large,reserved_3y,partial_upfront,0.076446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:53.613428 +AWS,sa-east-1,i3en.large,spot,NA,0.056542,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028033 +AWS,sa-east-1,i3en.xlarge,on_demand,NA,0.72,USD,AWS Pricing API,2025-11-30T09:10:51.730172 +AWS,sa-east-1,i3en.xlarge,reserved_1y,all_upfront,0.458676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:20.802219 +AWS,sa-east-1,i3en.xlarge,reserved_1y,no_upfront,0.458676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:09.252475 +AWS,sa-east-1,i3en.xlarge,reserved_1y,partial_upfront,0.458676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:43.674346 +AWS,sa-east-1,i3en.xlarge,reserved_3y,all_upfront,0.152892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:09.306698 +AWS,sa-east-1,i3en.xlarge,reserved_3y,no_upfront,0.152892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:17.697647 +AWS,sa-east-1,i3en.xlarge,reserved_3y,partial_upfront,0.152892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:52.948295 +AWS,sa-east-1,i3en.xlarge,spot,NA,0.248141,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027997 +AWS,sa-east-1,i4g.16xlarge,on_demand,NA,7.8912,USD,AWS Pricing API,2025-11-30T09:11:08.776577 +AWS,sa-east-1,i4g.16xlarge,reserved_1y,all_upfront,4.355,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:37.844420 +AWS,sa-east-1,i4g.16xlarge,reserved_1y,no_upfront,4.355,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:26.551537 +AWS,sa-east-1,i4g.16xlarge,reserved_1y,partial_upfront,4.355,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:00.729322 +AWS,sa-east-1,i4g.16xlarge,reserved_3y,all_upfront,4.355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:26.018558 +AWS,sa-east-1,i4g.16xlarge,reserved_3y,no_upfront,4.355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:35.049638 +AWS,sa-east-1,i4g.16xlarge,reserved_3y,partial_upfront,4.355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:10.029438 +AWS,sa-east-1,i4g.16xlarge,spot,NA,2.24081,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028364 +AWS,sa-east-1,i4g.2xlarge,on_demand,NA,0.9864,USD,AWS Pricing API,2025-11-30T09:11:22.779865 +AWS,sa-east-1,i4g.2xlarge,reserved_1y,all_upfront,0.599772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:51.759733 +AWS,sa-east-1,i4g.2xlarge,reserved_1y,no_upfront,0.599772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:40.581141 +AWS,sa-east-1,i4g.2xlarge,reserved_1y,partial_upfront,0.599772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:14.650813 +AWS,sa-east-1,i4g.2xlarge,reserved_3y,all_upfront,0.199924,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:39.671679 +AWS,sa-east-1,i4g.2xlarge,reserved_3y,no_upfront,0.199924,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:49.272990 +AWS,sa-east-1,i4g.2xlarge,reserved_3y,partial_upfront,0.199924,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:23.905222 +AWS,sa-east-1,i4g.2xlarge,spot,NA,0.147997,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028643 +AWS,sa-east-1,i4g.4xlarge,on_demand,NA,1.9728,USD,AWS Pricing API,2025-11-30T09:11:21.698563 +AWS,sa-east-1,i4g.4xlarge,reserved_1y,all_upfront,1.53142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:50.674664 +AWS,sa-east-1,i4g.4xlarge,reserved_1y,no_upfront,1.53142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:39.490757 +AWS,sa-east-1,i4g.4xlarge,reserved_1y,partial_upfront,1.53142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:13.582874 +AWS,sa-east-1,i4g.4xlarge,reserved_3y,all_upfront,1.53142,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:38.617851 +AWS,sa-east-1,i4g.4xlarge,reserved_3y,no_upfront,1.53142,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:48.177052 +AWS,sa-east-1,i4g.4xlarge,reserved_3y,partial_upfront,1.53142,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:22.840082 +AWS,sa-east-1,i4g.4xlarge,spot,NA,0.646394,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028616 +AWS,sa-east-1,i4g.8xlarge,on_demand,NA,3.9456,USD,AWS Pricing API,2025-11-30T09:11:09.041716 +AWS,sa-east-1,i4g.8xlarge,reserved_1y,all_upfront,2.448207,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:38.111459 +AWS,sa-east-1,i4g.8xlarge,reserved_1y,no_upfront,2.448207,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:26.819508 +AWS,sa-east-1,i4g.8xlarge,reserved_1y,partial_upfront,2.448207,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:00.999173 +AWS,sa-east-1,i4g.8xlarge,reserved_3y,all_upfront,1.632149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:26.283138 +AWS,sa-east-1,i4g.8xlarge,reserved_3y,no_upfront,1.632149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:35.325405 +AWS,sa-east-1,i4g.8xlarge,reserved_3y,partial_upfront,1.632149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:10.307528 +AWS,sa-east-1,i4g.8xlarge,spot,NA,1.084031,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028344 +AWS,sa-east-1,i4g.large,on_demand,NA,0.2466,USD,AWS Pricing API,2025-11-30T09:10:42.789437 +AWS,sa-east-1,i4g.large,reserved_1y,all_upfront,0.15,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:12.022227 +AWS,sa-east-1,i4g.large,reserved_1y,no_upfront,0.15,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:00.259670 +AWS,sa-east-1,i4g.large,reserved_1y,partial_upfront,0.15,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:34.886670 +AWS,sa-east-1,i4g.large,reserved_3y,all_upfront,0.05,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:00.635489 +AWS,sa-east-1,i4g.large,reserved_3y,no_upfront,0.05,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:08.694839 +AWS,sa-east-1,i4g.large,reserved_3y,partial_upfront,0.05,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:44.146908 +AWS,sa-east-1,i4g.large,spot,NA,0.066872,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027844 +AWS,sa-east-1,i4g.xlarge,on_demand,NA,0.4932,USD,AWS Pricing API,2025-11-30T09:11:05.681825 +AWS,sa-east-1,i4g.xlarge,reserved_1y,all_upfront,0.593836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:34.728282 +AWS,sa-east-1,i4g.xlarge,reserved_1y,no_upfront,0.593836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:23.391573 +AWS,sa-east-1,i4g.xlarge,reserved_1y,partial_upfront,0.593836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:57.633156 +AWS,sa-east-1,i4g.xlarge,reserved_3y,all_upfront,0.197945,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:22.950495 +AWS,sa-east-1,i4g.xlarge,reserved_3y,no_upfront,0.197945,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:31.894003 +AWS,sa-east-1,i4g.xlarge,reserved_3y,partial_upfront,0.197945,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:06.926913 +AWS,sa-east-1,i4g.xlarge,spot,NA,0.091069,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028276 +AWS,sa-east-1,i4i.16xlarge,on_demand,NA,8.765,USD,AWS Pricing API,2025-11-30T09:10:56.611963 +AWS,sa-east-1,i4i.16xlarge,reserved_1y,all_upfront,4.832,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:25.659791 +AWS,sa-east-1,i4i.16xlarge,reserved_1y,no_upfront,4.832,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:14.140537 +AWS,sa-east-1,i4i.16xlarge,reserved_1y,partial_upfront,4.832,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:48.552966 +AWS,sa-east-1,i4i.16xlarge,reserved_3y,all_upfront,4.832,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:14.078141 +AWS,sa-east-1,i4i.16xlarge,reserved_3y,no_upfront,4.832,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:22.679754 +AWS,sa-east-1,i4i.16xlarge,reserved_3y,partial_upfront,4.832,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:57.781511 +AWS,sa-east-1,i4i.16xlarge,spot,NA,1.415241,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028109 +AWS,sa-east-1,i4i.2xlarge,on_demand,NA,1.096,USD,AWS Pricing API,2025-11-30T09:11:12.601912 +AWS,sa-east-1,i4i.2xlarge,reserved_1y,all_upfront,1.644178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:41.600617 +AWS,sa-east-1,i4i.2xlarge,reserved_1y,no_upfront,1.644178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:30.342420 +AWS,sa-east-1,i4i.2xlarge,reserved_1y,partial_upfront,1.644178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:04.534457 +AWS,sa-east-1,i4i.2xlarge,reserved_3y,all_upfront,0.548059,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:29.732631 +AWS,sa-east-1,i4i.2xlarge,reserved_3y,no_upfront,0.548059,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:38.927684 +AWS,sa-east-1,i4i.2xlarge,reserved_3y,partial_upfront,0.548059,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:13.811725 +AWS,sa-east-1,i4i.2xlarge,spot,NA,0.221795,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028418 +AWS,sa-east-1,i4i.32xlarge,on_demand,NA,17.5296,USD,AWS Pricing API,2025-11-30T09:11:24.908104 +AWS,sa-east-1,i4i.32xlarge,reserved_1y,all_upfront,11.43072,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:53.912927 +AWS,sa-east-1,i4i.32xlarge,reserved_1y,no_upfront,11.43072,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:42.784538 +AWS,sa-east-1,i4i.32xlarge,reserved_1y,partial_upfront,11.43072,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:16.815221 +AWS,sa-east-1,i4i.32xlarge,reserved_3y,all_upfront,11.43072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:41.793404 +AWS,sa-east-1,i4i.32xlarge,reserved_3y,no_upfront,11.43072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:51.461925 +AWS,sa-east-1,i4i.32xlarge,reserved_3y,partial_upfront,11.43072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:26.049329 +AWS,sa-east-1,i4i.32xlarge,spot,NA,2.989367,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028690 +AWS,sa-east-1,i4i.4xlarge,on_demand,NA,2.191,USD,AWS Pricing API,2025-11-30T09:11:01.081293 +AWS,sa-east-1,i4i.4xlarge,reserved_1y,all_upfront,1.333562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:30.137242 +AWS,sa-east-1,i4i.4xlarge,reserved_1y,no_upfront,1.333562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:18.680531 +AWS,sa-east-1,i4i.4xlarge,reserved_1y,partial_upfront,1.333562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:53.016695 +AWS,sa-east-1,i4i.4xlarge,reserved_3y,all_upfront,0.444521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:18.450825 +AWS,sa-east-1,i4i.4xlarge,reserved_3y,no_upfront,0.444521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:27.214319 +AWS,sa-east-1,i4i.4xlarge,reserved_3y,partial_upfront,0.444521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:02.254861 +AWS,sa-east-1,i4i.4xlarge,spot,NA,0.56924,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028187 +AWS,sa-east-1,i4i.8xlarge,on_demand,NA,4.382,USD,AWS Pricing API,2025-11-30T09:11:04.076288 +AWS,sa-east-1,i4i.8xlarge,reserved_1y,all_upfront,3.236493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:33.116939 +AWS,sa-east-1,i4i.8xlarge,reserved_1y,no_upfront,3.236493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:21.768323 +AWS,sa-east-1,i4i.8xlarge,reserved_1y,partial_upfront,3.236493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:56.015221 +AWS,sa-east-1,i4i.8xlarge,reserved_3y,all_upfront,2.157498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:21.353019 +AWS,sa-east-1,i4i.8xlarge,reserved_3y,no_upfront,2.157498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:30.247323 +AWS,sa-east-1,i4i.8xlarge,reserved_3y,partial_upfront,2.157498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:05.210481 +AWS,sa-east-1,i4i.8xlarge,spot,NA,0.717166,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028259 +AWS,sa-east-1,i4i.large,on_demand,NA,0.274,USD,AWS Pricing API,2025-11-30T09:11:29.526760 +AWS,sa-east-1,i4i.large,reserved_1y,all_upfront,0.179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:58.494318 +AWS,sa-east-1,i4i.large,reserved_1y,no_upfront,0.179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:47.514500 +AWS,sa-east-1,i4i.large,reserved_1y,partial_upfront,0.179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:21.391322 +AWS,sa-east-1,i4i.large,reserved_3y,all_upfront,0.179,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:46.304820 +AWS,sa-east-1,i4i.large,reserved_3y,no_upfront,0.179,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:56.178477 +AWS,sa-east-1,i4i.large,reserved_3y,partial_upfront,0.179,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:30.641785 +AWS,sa-east-1,i4i.large,spot,NA,0.051913,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028785 +AWS,sa-east-1,i4i.xlarge,on_demand,NA,0.548,USD,AWS Pricing API,2025-11-30T09:11:10.960483 +AWS,sa-east-1,i4i.xlarge,reserved_1y,all_upfront,0.340091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:39.992009 +AWS,sa-east-1,i4i.xlarge,reserved_1y,no_upfront,0.340091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:28.715681 +AWS,sa-east-1,i4i.xlarge,reserved_1y,partial_upfront,0.340091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:02.906352 +AWS,sa-east-1,i4i.xlarge,reserved_3y,all_upfront,0.226697,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:28.132300 +AWS,sa-east-1,i4i.xlarge,reserved_3y,no_upfront,0.226697,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:37.267529 +AWS,sa-east-1,i4i.xlarge,reserved_3y,partial_upfront,0.226697,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:12.195926 +AWS,sa-east-1,i4i.xlarge,spot,NA,0.175781,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028376 +AWS,sa-east-1,i7i.12xlarge,on_demand,NA,7.231,USD,AWS Pricing API,2025-11-30T09:10:49.061950 +AWS,sa-east-1,i7i.16xlarge,on_demand,NA,9.6413,USD,AWS Pricing API,2025-11-30T09:11:34.740356 +AWS,sa-east-1,i7i.24xlarge,on_demand,NA,14.4619,USD,AWS Pricing API,2025-11-30T09:10:29.923656 +AWS,sa-east-1,i7i.2xlarge,on_demand,NA,1.2052,USD,AWS Pricing API,2025-11-30T09:10:27.135304 +AWS,sa-east-1,i7i.48xlarge,on_demand,NA,28.9238,USD,AWS Pricing API,2025-11-30T09:10:28.866092 +AWS,sa-east-1,i7i.4xlarge,on_demand,NA,2.4103,USD,AWS Pricing API,2025-11-30T09:11:31.674896 +AWS,sa-east-1,i7i.8xlarge,on_demand,NA,4.8206,USD,AWS Pricing API,2025-11-30T09:11:01.753214 +AWS,sa-east-1,i7i.large,on_demand,NA,0.3013,USD,AWS Pricing API,2025-11-30T09:10:45.236682 +AWS,sa-east-1,i7i.xlarge,on_demand,NA,0.6026,USD,AWS Pricing API,2025-11-30T09:10:53.747432 +AWS,sa-east-1,i8g.12xlarge,on_demand,NA,6.576,USD,AWS Pricing API,2025-11-30T09:11:25.179153 +AWS,sa-east-1,i8g.12xlarge,spot,NA,2.434386,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028683 +AWS,sa-east-1,i8g.16xlarge,on_demand,NA,8.768,USD,AWS Pricing API,2025-11-30T09:11:22.229919 +AWS,sa-east-1,i8g.16xlarge,spot,NA,3.229255,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028655 +AWS,sa-east-1,i8g.24xlarge,on_demand,NA,13.152,USD,AWS Pricing API,2025-11-30T09:11:24.643041 +AWS,sa-east-1,i8g.24xlarge,spot,NA,4.853114,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028659 +AWS,sa-east-1,i8g.2xlarge,on_demand,NA,1.096,USD,AWS Pricing API,2025-11-30T09:10:51.866441 +AWS,sa-east-1,i8g.2xlarge,spot,NA,0.404091,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028009 +AWS,sa-east-1,i8g.48xlarge,on_demand,NA,26.304,USD,AWS Pricing API,2025-11-30T09:10:32.328482 +AWS,sa-east-1,i8g.48xlarge,spot,NA,9.708603,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027604 +AWS,sa-east-1,i8g.4xlarge,on_demand,NA,2.192,USD,AWS Pricing API,2025-11-30T09:11:19.396966 +AWS,sa-east-1,i8g.4xlarge,spot,NA,0.8084,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028576 +AWS,sa-east-1,i8g.8xlarge,on_demand,NA,4.384,USD,AWS Pricing API,2025-11-30T09:11:38.453325 +AWS,sa-east-1,i8g.8xlarge,spot,NA,1.614534,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028961 +AWS,sa-east-1,i8g.large,on_demand,NA,0.274,USD,AWS Pricing API,2025-11-30T09:10:56.348228 +AWS,sa-east-1,i8g.large,spot,NA,0.101384,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028092 +AWS,sa-east-1,i8g.xlarge,on_demand,NA,0.548,USD,AWS Pricing API,2025-11-30T09:10:48.250612 +AWS,sa-east-1,i8g.xlarge,spot,NA,0.202409,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027954 +AWS,sa-east-1,m4.10xlarge,on_demand,NA,3.18,USD,AWS Pricing API,2025-11-30T09:10:59.050600 +AWS,sa-east-1,m4.10xlarge,reserved_1y,all_upfront,1.978041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:28.096874 +AWS,sa-east-1,m4.10xlarge,reserved_1y,no_upfront,1.978041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:16.608110 +AWS,sa-east-1,m4.10xlarge,reserved_1y,partial_upfront,1.978041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:50.982747 +AWS,sa-east-1,m4.10xlarge,reserved_3y,all_upfront,1.31868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:16.463226 +AWS,sa-east-1,m4.10xlarge,reserved_3y,no_upfront,1.31868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:25.147310 +AWS,sa-east-1,m4.10xlarge,reserved_3y,partial_upfront,1.31868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:00.225090 +AWS,sa-east-1,m4.10xlarge,spot,NA,0.557013,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028136 +AWS,sa-east-1,m4.16xlarge,on_demand,NA,5.088,USD,AWS Pricing API,2025-11-30T09:11:04.212881 +AWS,sa-east-1,m4.16xlarge,reserved_1y,all_upfront,3.16482,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:33.252898 +AWS,sa-east-1,m4.16xlarge,reserved_1y,no_upfront,3.16482,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:21.903816 +AWS,sa-east-1,m4.16xlarge,reserved_1y,partial_upfront,3.16482,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:56.148298 +AWS,sa-east-1,m4.16xlarge,reserved_3y,all_upfront,2.109873,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:21.484859 +AWS,sa-east-1,m4.16xlarge,reserved_3y,no_upfront,2.109873,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:30.396929 +AWS,sa-east-1,m4.16xlarge,reserved_3y,partial_upfront,2.109873,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:05.346801 +AWS,sa-east-1,m4.16xlarge,spot,NA,0.834123,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028255 +AWS,sa-east-1,m4.2xlarge,on_demand,NA,0.636,USD,AWS Pricing API,2025-11-30T09:10:45.668504 +AWS,sa-east-1,m4.2xlarge,reserved_1y,all_upfront,0.3179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:14.875654 +AWS,sa-east-1,m4.2xlarge,reserved_1y,no_upfront,0.3179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:03.179196 +AWS,sa-east-1,m4.2xlarge,reserved_1y,partial_upfront,0.3179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:37.722431 +AWS,sa-east-1,m4.2xlarge,reserved_3y,all_upfront,0.3179,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:03.448085 +AWS,sa-east-1,m4.2xlarge,reserved_3y,no_upfront,0.3179,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:11.628311 +AWS,sa-east-1,m4.2xlarge,reserved_3y,partial_upfront,0.3179,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:47.000198 +AWS,sa-east-1,m4.2xlarge,spot,NA,0.239289,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027897 +AWS,sa-east-1,m4.4xlarge,on_demand,NA,1.272,USD,AWS Pricing API,2025-11-30T09:11:20.078513 +AWS,sa-east-1,m4.4xlarge,reserved_1y,all_upfront,0.8308,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:49.065114 +AWS,sa-east-1,m4.4xlarge,reserved_1y,no_upfront,0.8308,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:37.857775 +AWS,sa-east-1,m4.4xlarge,reserved_1y,partial_upfront,0.8308,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:11.958030 +AWS,sa-east-1,m4.4xlarge,reserved_3y,all_upfront,0.8308,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:37.038620 +AWS,sa-east-1,m4.4xlarge,reserved_3y,no_upfront,0.8308,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:46.529384 +AWS,sa-east-1,m4.4xlarge,reserved_3y,partial_upfront,0.8308,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:21.223875 +AWS,sa-east-1,m4.4xlarge,spot,NA,0.558383,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028584 +AWS,sa-east-1,m4.large,on_demand,NA,0.159,USD,AWS Pricing API,2025-11-30T09:10:27.666925 +AWS,sa-east-1,m4.large,reserved_1y,all_upfront,0.096918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:56.808326 +AWS,sa-east-1,m4.large,reserved_1y,no_upfront,0.096918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:44.880399 +AWS,sa-east-1,m4.large,reserved_1y,partial_upfront,0.096918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:19.797780 +AWS,sa-east-1,m4.large,reserved_3y,all_upfront,0.032306,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:45.802723 +AWS,sa-east-1,m4.large,reserved_3y,no_upfront,0.032306,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:53.039943 +AWS,sa-east-1,m4.large,reserved_3y,partial_upfront,0.032306,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:29.074807 +AWS,sa-east-1,m4.large,spot,NA,0.062062,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027537 +AWS,sa-east-1,m4.xlarge,on_demand,NA,0.318,USD,AWS Pricing API,2025-11-30T09:11:08.514511 +AWS,sa-east-1,m4.xlarge,reserved_1y,all_upfront,0.256009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:37.573922 +AWS,sa-east-1,m4.xlarge,reserved_1y,no_upfront,0.256009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:26.276946 +AWS,sa-east-1,m4.xlarge,reserved_1y,partial_upfront,0.256009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:00.460939 +AWS,sa-east-1,m4.xlarge,reserved_3y,all_upfront,0.128003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:25.756000 +AWS,sa-east-1,m4.xlarge,reserved_3y,no_upfront,0.128003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:34.776232 +AWS,sa-east-1,m4.xlarge,reserved_3y,partial_upfront,0.128003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:09.760695 +AWS,sa-east-1,m4.xlarge,spot,NA,0.146649,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028319 +AWS,sa-east-1,m5.12xlarge,on_demand,NA,3.672,USD,AWS Pricing API,2025-11-30T09:10:45.809310 +AWS,sa-east-1,m5.12xlarge,reserved_1y,all_upfront,2.937196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:15.011928 +AWS,sa-east-1,m5.12xlarge,reserved_1y,no_upfront,2.937196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:03.315958 +AWS,sa-east-1,m5.12xlarge,reserved_1y,partial_upfront,2.937196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:37.870392 +AWS,sa-east-1,m5.12xlarge,reserved_3y,all_upfront,1.468399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:03.581267 +AWS,sa-east-1,m5.12xlarge,reserved_3y,no_upfront,1.468399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:11.771901 +AWS,sa-east-1,m5.12xlarge,reserved_3y,partial_upfront,1.468399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:47.135464 +AWS,sa-east-1,m5.12xlarge,spot,NA,1.357036,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027901 +AWS,sa-east-1,m5.16xlarge,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T09:11:18.449819 +AWS,sa-east-1,m5.16xlarge,reserved_1y,all_upfront,3.101484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:47.432469 +AWS,sa-east-1,m5.16xlarge,reserved_1y,no_upfront,3.101484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:36.207421 +AWS,sa-east-1,m5.16xlarge,reserved_1y,partial_upfront,3.101484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:10.352736 +AWS,sa-east-1,m5.16xlarge,reserved_3y,all_upfront,1.033828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:35.440496 +AWS,sa-east-1,m5.16xlarge,reserved_3y,no_upfront,1.033828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:44.876146 +AWS,sa-east-1,m5.16xlarge,reserved_3y,partial_upfront,1.033828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:19.602749 +AWS,sa-east-1,m5.16xlarge,spot,NA,1.541351,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028552 +AWS,sa-east-1,m5.24xlarge,on_demand,NA,7.344,USD,AWS Pricing API,2025-11-30T09:11:29.799720 +AWS,sa-east-1,m5.24xlarge,reserved_1y,all_upfront,4.045434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:58.764097 +AWS,sa-east-1,m5.24xlarge,reserved_1y,no_upfront,4.045434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:47.790469 +AWS,sa-east-1,m5.24xlarge,reserved_1y,partial_upfront,4.045434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:21.660203 +AWS,sa-east-1,m5.24xlarge,reserved_3y,all_upfront,1.348478,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:46.568288 +AWS,sa-east-1,m5.24xlarge,reserved_3y,no_upfront,1.348478,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:56.453749 +AWS,sa-east-1,m5.24xlarge,reserved_3y,partial_upfront,1.348478,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:30.914074 +AWS,sa-east-1,m5.24xlarge,spot,NA,1.955915,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028781 +AWS,sa-east-1,m5.2xlarge,on_demand,NA,0.612,USD,AWS Pricing API,2025-11-30T09:11:01.895898 +AWS,sa-east-1,m5.2xlarge,reserved_1y,all_upfront,0.865525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:30.961150 +AWS,sa-east-1,m5.2xlarge,reserved_1y,no_upfront,0.865525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:19.496503 +AWS,sa-east-1,m5.2xlarge,reserved_1y,partial_upfront,0.865525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:53.819681 +AWS,sa-east-1,m5.2xlarge,reserved_3y,all_upfront,0.288508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:19.248413 +AWS,sa-east-1,m5.2xlarge,reserved_3y,no_upfront,0.288508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:28.050858 +AWS,sa-east-1,m5.2xlarge,reserved_3y,partial_upfront,0.288508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:03.060408 +AWS,sa-east-1,m5.2xlarge,spot,NA,0.097364,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028219 +AWS,sa-east-1,m5.4xlarge,on_demand,NA,1.224,USD,AWS Pricing API,2025-11-30T09:11:11.233274 +AWS,sa-east-1,m5.4xlarge,reserved_1y,all_upfront,0.529,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:40.260446 +AWS,sa-east-1,m5.4xlarge,reserved_1y,no_upfront,0.529,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:28.985291 +AWS,sa-east-1,m5.4xlarge,reserved_1y,partial_upfront,0.529,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:03.175298 +AWS,sa-east-1,m5.4xlarge,reserved_3y,all_upfront,0.529,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:28.394474 +AWS,sa-east-1,m5.4xlarge,reserved_3y,no_upfront,0.529,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:37.543647 +AWS,sa-east-1,m5.4xlarge,reserved_3y,partial_upfront,0.529,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:12.462927 +AWS,sa-east-1,m5.4xlarge,spot,NA,0.285835,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028371 +AWS,sa-east-1,m5.8xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T09:11:37.755812 +AWS,sa-east-1,m5.8xlarge,reserved_1y,all_upfront,3.4621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:06.753098 +AWS,sa-east-1,m5.8xlarge,reserved_1y,no_upfront,3.4621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:55.868511 +AWS,sa-east-1,m5.8xlarge,reserved_1y,partial_upfront,3.4621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:29.630525 +AWS,sa-east-1,m5.8xlarge,reserved_3y,all_upfront,1.154033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:54.393403 +AWS,sa-east-1,m5.8xlarge,reserved_3y,no_upfront,1.154033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:04.617430 +AWS,sa-east-1,m5.8xlarge,reserved_3y,partial_upfront,1.154033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:38.842711 +AWS,sa-east-1,m5.8xlarge,spot,NA,0.9246,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028928 +AWS,sa-east-1,m5.large,on_demand,NA,0.153,USD,AWS Pricing API,2025-11-30T09:11:02.299488 +AWS,sa-east-1,m5.large,reserved_1y,all_upfront,0.086037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:31.360397 +AWS,sa-east-1,m5.large,reserved_1y,no_upfront,0.086037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:19.897911 +AWS,sa-east-1,m5.large,reserved_1y,partial_upfront,0.086037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:54.223440 +AWS,sa-east-1,m5.large,reserved_3y,all_upfront,0.057346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:19.641507 +AWS,sa-east-1,m5.large,reserved_3y,no_upfront,0.057346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:28.460363 +AWS,sa-east-1,m5.large,reserved_3y,partial_upfront,0.057346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:03.461005 +AWS,sa-east-1,m5.large,spot,NA,0.04947,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028235 +AWS,sa-east-1,m5.xlarge,on_demand,NA,0.306,USD,AWS Pricing API,2025-11-30T09:11:35.575155 +AWS,sa-east-1,m5.xlarge,reserved_1y,all_upfront,0.208,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:04.584153 +AWS,sa-east-1,m5.xlarge,reserved_1y,no_upfront,0.208,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:53.667222 +AWS,sa-east-1,m5.xlarge,reserved_1y,partial_upfront,0.208,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:27.433726 +AWS,sa-east-1,m5.xlarge,reserved_3y,all_upfront,0.208,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:52.264971 +AWS,sa-east-1,m5.xlarge,reserved_3y,no_upfront,0.208,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:02.398788 +AWS,sa-east-1,m5.xlarge,reserved_3y,partial_upfront,0.208,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:36.692080 +AWS,sa-east-1,m5.xlarge,spot,NA,0.048446,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028885 +AWS,sa-east-1,m5a.12xlarge,on_demand,NA,3.312,USD,AWS Pricing API,2025-11-30T09:11:02.841140 +AWS,sa-east-1,m5a.12xlarge,reserved_1y,all_upfront,1.954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:31.896781 +AWS,sa-east-1,m5a.12xlarge,reserved_1y,no_upfront,1.954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:20.441850 +AWS,sa-east-1,m5a.12xlarge,reserved_1y,partial_upfront,1.954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:54.769040 +AWS,sa-east-1,m5a.12xlarge,reserved_3y,all_upfront,1.954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:20.168554 +AWS,sa-east-1,m5a.12xlarge,reserved_3y,no_upfront,1.954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:29.007095 +AWS,sa-east-1,m5a.12xlarge,reserved_3y,partial_upfront,1.954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:04.000990 +AWS,sa-east-1,m5a.12xlarge,spot,NA,1.043923,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028211 +AWS,sa-east-1,m5a.16xlarge,on_demand,NA,4.416,USD,AWS Pricing API,2025-11-30T09:11:20.215938 +AWS,sa-east-1,m5a.16xlarge,reserved_1y,all_upfront,2.3,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:49.203412 +AWS,sa-east-1,m5a.16xlarge,reserved_1y,no_upfront,2.3,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:37.995748 +AWS,sa-east-1,m5a.16xlarge,reserved_1y,partial_upfront,2.3,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:12.094588 +AWS,sa-east-1,m5a.16xlarge,reserved_3y,all_upfront,2.3,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:37.169615 +AWS,sa-east-1,m5a.16xlarge,reserved_3y,no_upfront,2.3,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:46.665275 +AWS,sa-east-1,m5a.16xlarge,reserved_3y,partial_upfront,2.3,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:21.357397 +AWS,sa-east-1,m5a.16xlarge,spot,NA,1.954981,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028588 +AWS,sa-east-1,m5a.24xlarge,on_demand,NA,6.624,USD,AWS Pricing API,2025-11-30T09:10:55.527222 +AWS,sa-east-1,m5a.24xlarge,reserved_1y,all_upfront,3.722187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:24.570771 +AWS,sa-east-1,m5a.24xlarge,reserved_1y,no_upfront,3.722187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:13.050402 +AWS,sa-east-1,m5a.24xlarge,reserved_1y,partial_upfront,3.722187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:47.470905 +AWS,sa-east-1,m5a.24xlarge,reserved_3y,all_upfront,2.481396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:13.020467 +AWS,sa-east-1,m5a.24xlarge,reserved_3y,no_upfront,2.481396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:21.574602 +AWS,sa-east-1,m5a.24xlarge,reserved_3y,partial_upfront,2.481396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:56.696355 +AWS,sa-east-1,m5a.24xlarge,spot,NA,1.080198,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028088 +AWS,sa-east-1,m5a.2xlarge,on_demand,NA,0.552,USD,AWS Pricing API,2025-11-30T09:10:47.987950 +AWS,sa-east-1,m5a.2xlarge,reserved_1y,all_upfront,0.356311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:17.164369 +AWS,sa-east-1,m5a.2xlarge,reserved_1y,no_upfront,0.356311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:05.546229 +AWS,sa-east-1,m5a.2xlarge,reserved_1y,partial_upfront,0.356311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:40.046226 +AWS,sa-east-1,m5a.2xlarge,reserved_3y,all_upfront,0.237437,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:05.725988 +AWS,sa-east-1,m5a.2xlarge,reserved_3y,no_upfront,0.237437,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:13.992129 +AWS,sa-east-1,m5a.2xlarge,reserved_3y,partial_upfront,0.237437,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:49.304052 +AWS,sa-east-1,m5a.2xlarge,spot,NA,0.226066,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027926 +AWS,sa-east-1,m5a.4xlarge,on_demand,NA,1.104,USD,AWS Pricing API,2025-11-30T09:11:28.438826 +AWS,sa-east-1,m5a.4xlarge,reserved_1y,all_upfront,1.565525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:57.422124 +AWS,sa-east-1,m5a.4xlarge,reserved_1y,no_upfront,1.565525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:46.407354 +AWS,sa-east-1,m5a.4xlarge,reserved_1y,partial_upfront,1.565525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:20.309434 +AWS,sa-east-1,m5a.4xlarge,reserved_3y,all_upfront,0.521842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:45.242822 +AWS,sa-east-1,m5a.4xlarge,reserved_3y,no_upfront,0.521842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:55.040299 +AWS,sa-east-1,m5a.4xlarge,reserved_3y,partial_upfront,0.521842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:29.562532 +AWS,sa-east-1,m5a.4xlarge,spot,NA,0.535519,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028765 +AWS,sa-east-1,m5a.8xlarge,on_demand,NA,2.208,USD,AWS Pricing API,2025-11-30T09:10:38.929543 +AWS,sa-east-1,m5a.8xlarge,reserved_1y,all_upfront,1.215982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:08.229801 +AWS,sa-east-1,m5a.8xlarge,reserved_1y,no_upfront,1.215982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:56.413409 +AWS,sa-east-1,m5a.8xlarge,reserved_1y,partial_upfront,1.215982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:31.100054 +AWS,sa-east-1,m5a.8xlarge,reserved_3y,all_upfront,0.405327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:56.931220 +AWS,sa-east-1,m5a.8xlarge,reserved_3y,no_upfront,0.405327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:04.778768 +AWS,sa-east-1,m5a.8xlarge,reserved_3y,partial_upfront,0.405327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:40.385444 +AWS,sa-east-1,m5a.8xlarge,spot,NA,1.113339,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027721 +AWS,sa-east-1,m5a.large,on_demand,NA,0.138,USD,AWS Pricing API,2025-11-30T09:10:57.969355 +AWS,sa-east-1,m5a.large,reserved_1y,all_upfront,0.087443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:27.019749 +AWS,sa-east-1,m5a.large,reserved_1y,no_upfront,0.087443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:15.509926 +AWS,sa-east-1,m5a.large,reserved_1y,partial_upfront,0.087443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:49.902790 +AWS,sa-east-1,m5a.large,reserved_3y,all_upfront,0.029148,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:15.399827 +AWS,sa-east-1,m5a.large,reserved_3y,no_upfront,0.029148,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:24.050776 +AWS,sa-east-1,m5a.large,reserved_3y,partial_upfront,0.029148,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:59.146018 +AWS,sa-east-1,m5a.large,spot,NA,0.052287,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028144 +AWS,sa-east-1,m5a.xlarge,on_demand,NA,0.276,USD,AWS Pricing API,2025-11-30T09:10:59.996113 +AWS,sa-east-1,m5a.xlarge,reserved_1y,all_upfront,0.187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:29.048209 +AWS,sa-east-1,m5a.xlarge,reserved_1y,no_upfront,0.187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:17.581815 +AWS,sa-east-1,m5a.xlarge,reserved_1y,partial_upfront,0.187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:51.921156 +AWS,sa-east-1,m5a.xlarge,reserved_3y,all_upfront,0.187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:17.381617 +AWS,sa-east-1,m5a.xlarge,reserved_3y,no_upfront,0.187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:26.114299 +AWS,sa-east-1,m5a.xlarge,reserved_3y,partial_upfront,0.187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:01.156636 +AWS,sa-east-1,m5a.xlarge,spot,NA,0.126583,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028180 +AWS,sa-east-1,m5d.12xlarge,on_demand,NA,4.32,USD,AWS Pricing API,2025-11-30T09:10:30.331766 +AWS,sa-east-1,m5d.12xlarge,reserved_1y,all_upfront,2.443151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:59.530521 +AWS,sa-east-1,m5d.12xlarge,reserved_1y,no_upfront,2.443151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:47.607578 +AWS,sa-east-1,m5d.12xlarge,reserved_1y,partial_upfront,2.443151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:22.481908 +AWS,sa-east-1,m5d.12xlarge,reserved_3y,all_upfront,0.814384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:48.452901 +AWS,sa-east-1,m5d.12xlarge,reserved_3y,no_upfront,0.814384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:55.915436 +AWS,sa-east-1,m5d.12xlarge,reserved_3y,partial_upfront,0.814384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:31.739104 +AWS,sa-east-1,m5d.12xlarge,spot,NA,3.059834,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027571 +AWS,sa-east-1,m5d.16xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T09:11:15.293878 +AWS,sa-east-1,m5d.16xlarge,reserved_1y,all_upfront,8.1871,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:44.318852 +AWS,sa-east-1,m5d.16xlarge,reserved_1y,no_upfront,8.1871,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:33.050039 +AWS,sa-east-1,m5d.16xlarge,reserved_1y,partial_upfront,8.1871,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:07.243258 +AWS,sa-east-1,m5d.16xlarge,reserved_3y,all_upfront,2.729033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:32.360935 +AWS,sa-east-1,m5d.16xlarge,reserved_3y,no_upfront,2.729033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:41.686392 +AWS,sa-east-1,m5d.16xlarge,reserved_3y,partial_upfront,2.729033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:16.515820 +AWS,sa-east-1,m5d.16xlarge,spot,NA,3.258238,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028472 +AWS,sa-east-1,m5d.24xlarge,on_demand,NA,8.64,USD,AWS Pricing API,2025-11-30T09:10:58.911217 +AWS,sa-east-1,m5d.24xlarge,reserved_1y,all_upfront,5.734009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:27.961463 +AWS,sa-east-1,m5d.24xlarge,reserved_1y,no_upfront,5.734009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:16.471876 +AWS,sa-east-1,m5d.24xlarge,reserved_1y,partial_upfront,5.734009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:50.848052 +AWS,sa-east-1,m5d.24xlarge,reserved_3y,all_upfront,3.82267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:16.330881 +AWS,sa-east-1,m5d.24xlarge,reserved_3y,no_upfront,3.82267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:25.010724 +AWS,sa-east-1,m5d.24xlarge,reserved_3y,partial_upfront,3.82267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:00.090128 +AWS,sa-east-1,m5d.24xlarge,spot,NA,3.316873,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028147 +AWS,sa-east-1,m5d.2xlarge,on_demand,NA,0.72,USD,AWS Pricing API,2025-11-30T09:10:43.191376 +AWS,sa-east-1,m5d.2xlarge,reserved_1y,all_upfront,0.575963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:12.432463 +AWS,sa-east-1,m5d.2xlarge,reserved_1y,no_upfront,0.575963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:00.665555 +AWS,sa-east-1,m5d.2xlarge,reserved_1y,partial_upfront,0.575963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:35.287409 +AWS,sa-east-1,m5d.2xlarge,reserved_3y,all_upfront,0.287988,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:01.033119 +AWS,sa-east-1,m5d.2xlarge,reserved_3y,no_upfront,0.287988,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:09.129020 +AWS,sa-east-1,m5d.2xlarge,reserved_3y,partial_upfront,0.287988,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:44.567470 +AWS,sa-east-1,m5d.2xlarge,spot,NA,0.175212,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027835 +AWS,sa-east-1,m5d.4xlarge,on_demand,NA,1.44,USD,AWS Pricing API,2025-11-30T09:10:54.427781 +AWS,sa-east-1,m5d.4xlarge,reserved_1y,all_upfront,0.752,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:23.489547 +AWS,sa-east-1,m5d.4xlarge,reserved_1y,no_upfront,0.752,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:11.966641 +AWS,sa-east-1,m5d.4xlarge,reserved_1y,partial_upfront,0.752,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:46.390036 +AWS,sa-east-1,m5d.4xlarge,reserved_3y,all_upfront,0.752,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:11.957480 +AWS,sa-east-1,m5d.4xlarge,reserved_3y,no_upfront,0.752,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:20.456194 +AWS,sa-east-1,m5d.4xlarge,reserved_3y,partial_upfront,0.752,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:55.623256 +AWS,sa-east-1,m5d.4xlarge,spot,NA,0.724642,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028053 +AWS,sa-east-1,m5d.8xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T09:11:37.621052 +AWS,sa-east-1,m5d.8xlarge,reserved_1y,all_upfront,2.303968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:06.609528 +AWS,sa-east-1,m5d.8xlarge,reserved_1y,no_upfront,2.303968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:55.721931 +AWS,sa-east-1,m5d.8xlarge,reserved_1y,partial_upfront,2.303968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:29.495230 +AWS,sa-east-1,m5d.8xlarge,reserved_3y,all_upfront,1.151989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:54.260784 +AWS,sa-east-1,m5d.8xlarge,reserved_3y,no_upfront,1.151989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:04.478899 +AWS,sa-east-1,m5d.8xlarge,reserved_3y,partial_upfront,1.151989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:38.706485 +AWS,sa-east-1,m5d.8xlarge,spot,NA,2.030664,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028937 +AWS,sa-east-1,m5d.large,on_demand,NA,0.18,USD,AWS Pricing API,2025-11-30T09:10:34.085579 +AWS,sa-east-1,m5d.large,reserved_1y,all_upfront,0.109,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:03.346860 +AWS,sa-east-1,m5d.large,reserved_1y,no_upfront,0.109,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:51.432093 +AWS,sa-east-1,m5d.large,reserved_1y,partial_upfront,0.109,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:26.268685 +AWS,sa-east-1,m5d.large,reserved_3y,all_upfront,0.109,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:52.171701 +AWS,sa-east-1,m5d.large,reserved_3y,no_upfront,0.109,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:59.758421 +AWS,sa-east-1,m5d.large,reserved_3y,partial_upfront,0.109,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:35.519083 +AWS,sa-east-1,m5d.large,spot,NA,0.052729,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027640 +AWS,sa-east-1,m5d.xlarge,on_demand,NA,0.36,USD,AWS Pricing API,2025-11-30T09:10:50.137219 +AWS,sa-east-1,m5d.xlarge,reserved_1y,all_upfront,0.251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:19.315709 +AWS,sa-east-1,m5d.xlarge,reserved_1y,no_upfront,0.251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:07.728462 +AWS,sa-east-1,m5d.xlarge,reserved_1y,partial_upfront,0.251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:42.193718 +AWS,sa-east-1,m5d.xlarge,reserved_3y,all_upfront,0.251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:07.840355 +AWS,sa-east-1,m5d.xlarge,reserved_3y,no_upfront,0.251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:16.177144 +AWS,sa-east-1,m5d.xlarge,reserved_3y,partial_upfront,0.251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:51.474305 +AWS,sa-east-1,m5d.xlarge,spot,NA,0.047531,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027977 +AWS,sa-east-1,m5zn.12xlarge,on_demand,NA,6.3178,USD,AWS Pricing API,2025-11-30T09:11:06.085822 +AWS,sa-east-1,m5zn.12xlarge,reserved_1y,all_upfront,8.947374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:35.134395 +AWS,sa-east-1,m5zn.12xlarge,reserved_1y,no_upfront,8.947374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:23.807235 +AWS,sa-east-1,m5zn.12xlarge,reserved_1y,partial_upfront,8.947374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:58.035635 +AWS,sa-east-1,m5zn.12xlarge,reserved_3y,all_upfront,2.982458,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:23.347987 +AWS,sa-east-1,m5zn.12xlarge,reserved_3y,no_upfront,2.982458,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:32.309168 +AWS,sa-east-1,m5zn.12xlarge,reserved_3y,partial_upfront,2.982458,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:07.328453 +AWS,sa-east-1,m5zn.12xlarge,spot,NA,5.095659,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028303 +AWS,sa-east-1,m5zn.2xlarge,on_demand,NA,1.053,USD,AWS Pricing API,2025-11-30T09:10:35.444574 +AWS,sa-east-1,m5zn.2xlarge,reserved_1y,all_upfront,0.577626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:04.701295 +AWS,sa-east-1,m5zn.2xlarge,reserved_1y,no_upfront,0.577626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:52.837929 +AWS,sa-east-1,m5zn.2xlarge,reserved_1y,partial_upfront,0.577626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:27.613329 +AWS,sa-east-1,m5zn.2xlarge,reserved_3y,all_upfront,0.192542,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:53.487109 +AWS,sa-east-1,m5zn.2xlarge,reserved_3y,no_upfront,0.192542,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:01.144556 +AWS,sa-east-1,m5zn.2xlarge,reserved_3y,partial_upfront,0.192542,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:36.863025 +AWS,sa-east-1,m5zn.2xlarge,spot,NA,0.746202,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027669 +AWS,sa-east-1,m5zn.3xlarge,on_demand,NA,1.5794,USD,AWS Pricing API,2025-11-30T09:11:09.573026 +AWS,sa-east-1,m5zn.3xlarge,reserved_1y,all_upfront,1.114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:38.650948 +AWS,sa-east-1,m5zn.3xlarge,reserved_1y,no_upfront,1.114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:27.362772 +AWS,sa-east-1,m5zn.3xlarge,reserved_1y,partial_upfront,1.114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:01.545347 +AWS,sa-east-1,m5zn.3xlarge,reserved_3y,all_upfront,1.114,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:26.813773 +AWS,sa-east-1,m5zn.3xlarge,reserved_3y,no_upfront,1.114,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:35.890520 +AWS,sa-east-1,m5zn.3xlarge,reserved_3y,partial_upfront,1.114,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:10.845116 +AWS,sa-east-1,m5zn.3xlarge,spot,NA,0.810963,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028360 +AWS,sa-east-1,m5zn.6xlarge,on_demand,NA,3.1589,USD,AWS Pricing API,2025-11-30T09:10:29.657458 +AWS,sa-east-1,m5zn.6xlarge,reserved_1y,all_upfront,2.228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:58.853708 +AWS,sa-east-1,m5zn.6xlarge,reserved_1y,no_upfront,2.228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:46.922317 +AWS,sa-east-1,m5zn.6xlarge,reserved_1y,partial_upfront,2.228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:21.799504 +AWS,sa-east-1,m5zn.6xlarge,reserved_3y,all_upfront,2.228,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:47.795841 +AWS,sa-east-1,m5zn.6xlarge,reserved_3y,no_upfront,2.228,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:55.225978 +AWS,sa-east-1,m5zn.6xlarge,reserved_3y,partial_upfront,2.228,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:31.068246 +AWS,sa-east-1,m5zn.6xlarge,spot,NA,1.290144,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027566 +AWS,sa-east-1,m5zn.large,on_demand,NA,0.2632,USD,AWS Pricing API,2025-11-30T09:10:59.324808 +AWS,sa-east-1,m5zn.large,reserved_1y,all_upfront,0.253583,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:28.369903 +AWS,sa-east-1,m5zn.large,reserved_1y,no_upfront,0.253583,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:16.903990 +AWS,sa-east-1,m5zn.large,reserved_1y,partial_upfront,0.253583,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:51.251678 +AWS,sa-east-1,m5zn.large,reserved_3y,all_upfront,0.126794,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:16.725655 +AWS,sa-east-1,m5zn.large,reserved_3y,no_upfront,0.126794,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:25.429257 +AWS,sa-east-1,m5zn.large,reserved_3y,partial_upfront,0.126794,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:00.490919 +AWS,sa-east-1,m5zn.large,spot,NA,0.099664,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028164 +AWS,sa-east-1,m5zn.metal,on_demand,NA,6.3178,USD,AWS Pricing API,2025-11-30T09:11:36.265443 +AWS,sa-east-1,m5zn.metal,reserved_1y,all_upfront,3.465868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:05.259185 +AWS,sa-east-1,m5zn.metal,reserved_1y,no_upfront,3.465868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:54.351956 +AWS,sa-east-1,m5zn.metal,reserved_1y,partial_upfront,3.465868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:28.107364 +AWS,sa-east-1,m5zn.metal,reserved_3y,all_upfront,1.155289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:52.937461 +AWS,sa-east-1,m5zn.metal,reserved_3y,no_upfront,1.155289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:03.091348 +AWS,sa-east-1,m5zn.metal,reserved_3y,partial_upfront,1.155289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:37.366668 +AWS,sa-east-1,m5zn.metal,spot,NA,0.670036,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028916 +AWS,sa-east-1,m5zn.xlarge,on_demand,NA,0.5265,USD,AWS Pricing API,2025-11-30T09:10:34.624880 +AWS,sa-east-1,m5zn.xlarge,reserved_1y,all_upfront,0.294774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:03.891245 +AWS,sa-east-1,m5zn.xlarge,reserved_1y,no_upfront,0.294774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:51.986943 +AWS,sa-east-1,m5zn.xlarge,reserved_1y,partial_upfront,0.294774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:26.804299 +AWS,sa-east-1,m5zn.xlarge,reserved_3y,all_upfront,0.196525,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:52.698383 +AWS,sa-east-1,m5zn.xlarge,reserved_3y,no_upfront,0.196525,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:00.314614 +AWS,sa-east-1,m5zn.xlarge,reserved_3y,partial_upfront,0.196525,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:36.052229 +AWS,sa-east-1,m5zn.xlarge,spot,NA,0.284881,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027665 +AWS,sa-east-1,m6g.12xlarge,on_demand,NA,2.9376,USD,AWS Pricing API,2025-11-30T09:10:44.428220 +AWS,sa-east-1,m6g.12xlarge,reserved_1y,all_upfront,1.889763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:13.652509 +AWS,sa-east-1,m6g.12xlarge,reserved_1y,no_upfront,1.889763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:01.941970 +AWS,sa-east-1,m6g.12xlarge,reserved_1y,partial_upfront,1.889763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:36.502434 +AWS,sa-east-1,m6g.12xlarge,reserved_3y,all_upfront,1.259854,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:02.242663 +AWS,sa-east-1,m6g.12xlarge,reserved_3y,no_upfront,1.259854,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:10.380611 +AWS,sa-east-1,m6g.12xlarge,reserved_3y,partial_upfront,1.259854,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:45.789758 +AWS,sa-east-1,m6g.12xlarge,spot,NA,0.900542,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027860 +AWS,sa-east-1,m6g.16xlarge,on_demand,NA,3.9168,USD,AWS Pricing API,2025-11-30T09:10:39.798238 +AWS,sa-east-1,m6g.16xlarge,reserved_1y,all_upfront,2.35,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:09.057185 +AWS,sa-east-1,m6g.16xlarge,reserved_1y,no_upfront,2.35,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:57.234344 +AWS,sa-east-1,m6g.16xlarge,reserved_1y,partial_upfront,2.35,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:31.916450 +AWS,sa-east-1,m6g.16xlarge,reserved_3y,all_upfront,1.566667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:57.725635 +AWS,sa-east-1,m6g.16xlarge,reserved_3y,no_upfront,1.566667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:05.619929 +AWS,sa-east-1,m6g.16xlarge,reserved_3y,partial_upfront,1.566667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:41.187252 +AWS,sa-east-1,m6g.16xlarge,spot,NA,0.627079,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027737 +AWS,sa-east-1,m6g.2xlarge,on_demand,NA,0.4896,USD,AWS Pricing API,2025-11-30T09:11:00.541360 +AWS,sa-east-1,m6g.2xlarge,reserved_1y,all_upfront,0.472324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:29.584725 +AWS,sa-east-1,m6g.2xlarge,reserved_1y,no_upfront,0.472324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:18.128235 +AWS,sa-east-1,m6g.2xlarge,reserved_1y,partial_upfront,0.472324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:52.480994 +AWS,sa-east-1,m6g.2xlarge,reserved_3y,all_upfront,0.236175,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:17.913670 +AWS,sa-east-1,m6g.2xlarge,reserved_3y,no_upfront,0.236175,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:26.661789 +AWS,sa-east-1,m6g.2xlarge,reserved_3y,partial_upfront,0.236175,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:01.709531 +AWS,sa-east-1,m6g.2xlarge,spot,NA,0.128474,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028191 +AWS,sa-east-1,m6g.4xlarge,on_demand,NA,0.9792,USD,AWS Pricing API,2025-11-30T09:11:26.946492 +AWS,sa-east-1,m6g.4xlarge,reserved_1y,all_upfront,0.617352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:55.926509 +AWS,sa-east-1,m6g.4xlarge,reserved_1y,no_upfront,0.617352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:44.903275 +AWS,sa-east-1,m6g.4xlarge,reserved_1y,partial_upfront,0.617352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:18.826513 +AWS,sa-east-1,m6g.4xlarge,reserved_3y,all_upfront,0.205784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:43.787236 +AWS,sa-east-1,m6g.4xlarge,reserved_3y,no_upfront,0.205784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:53.527249 +AWS,sa-east-1,m6g.4xlarge,reserved_3y,partial_upfront,0.205784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:28.070305 +AWS,sa-east-1,m6g.4xlarge,spot,NA,0.30684,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028718 +AWS,sa-east-1,m6g.8xlarge,on_demand,NA,1.9584,USD,AWS Pricing API,2025-11-30T09:11:07.966960 +AWS,sa-east-1,m6g.8xlarge,reserved_1y,all_upfront,1.2338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:37.024702 +AWS,sa-east-1,m6g.8xlarge,reserved_1y,no_upfront,1.2338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:25.717865 +AWS,sa-east-1,m6g.8xlarge,reserved_1y,partial_upfront,1.2338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:59.920885 +AWS,sa-east-1,m6g.8xlarge,reserved_3y,all_upfront,1.2338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:25.227632 +AWS,sa-east-1,m6g.8xlarge,reserved_3y,no_upfront,1.2338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:34.228655 +AWS,sa-east-1,m6g.8xlarge,reserved_3y,partial_upfront,1.2338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:09.218911 +AWS,sa-east-1,m6g.8xlarge,spot,NA,0.592902,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028339 +AWS,sa-east-1,m6g.large,on_demand,NA,0.1224,USD,AWS Pricing API,2025-11-30T09:10:44.972371 +AWS,sa-east-1,m6g.large,reserved_1y,all_upfront,0.073458,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:14.193795 +AWS,sa-east-1,m6g.large,reserved_1y,no_upfront,0.073458,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:02.494210 +AWS,sa-east-1,m6g.large,reserved_1y,partial_upfront,0.073458,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:37.042724 +AWS,sa-east-1,m6g.large,reserved_3y,all_upfront,0.048953,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:02.773651 +AWS,sa-east-1,m6g.large,reserved_3y,no_upfront,0.048953,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:10.940488 +AWS,sa-east-1,m6g.large,reserved_3y,partial_upfront,0.048953,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:46.322839 +AWS,sa-east-1,m6g.large,spot,NA,0.074479,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027869 +AWS,sa-east-1,m6g.xlarge,on_demand,NA,0.2448,USD,AWS Pricing API,2025-11-30T09:10:58.772642 +AWS,sa-east-1,m6g.xlarge,reserved_1y,all_upfront,0.146802,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:27.825016 +AWS,sa-east-1,m6g.xlarge,reserved_1y,no_upfront,0.146802,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:16.334847 +AWS,sa-east-1,m6g.xlarge,reserved_1y,partial_upfront,0.146802,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:50.714327 +AWS,sa-east-1,m6g.xlarge,reserved_3y,all_upfront,0.097867,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:16.198771 +AWS,sa-east-1,m6g.xlarge,reserved_3y,no_upfront,0.097867,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:24.875405 +AWS,sa-east-1,m6g.xlarge,reserved_3y,partial_upfront,0.097867,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:59.950032 +AWS,sa-east-1,m6g.xlarge,spot,NA,0.046625,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028132 +AWS,sa-east-1,m6gd.12xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T09:11:16.644362 +AWS,sa-east-1,m6gd.12xlarge,reserved_1y,all_upfront,1.994346,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:45.674515 +AWS,sa-east-1,m6gd.12xlarge,reserved_1y,no_upfront,1.994346,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:34.430087 +AWS,sa-east-1,m6gd.12xlarge,reserved_1y,partial_upfront,1.994346,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:08.600955 +AWS,sa-east-1,m6gd.12xlarge,reserved_3y,all_upfront,1.329582,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:33.697023 +AWS,sa-east-1,m6gd.12xlarge,reserved_3y,no_upfront,1.329582,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:43.060908 +AWS,sa-east-1,m6gd.12xlarge,reserved_3y,partial_upfront,1.329582,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:17.865611 +AWS,sa-east-1,m6gd.12xlarge,spot,NA,1.234934,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028499 +AWS,sa-east-1,m6gd.16xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T09:11:18.997270 +AWS,sa-east-1,m6gd.16xlarge,reserved_1y,all_upfront,3.68644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:47.972881 +AWS,sa-east-1,m6gd.16xlarge,reserved_1y,no_upfront,3.68644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:36.752638 +AWS,sa-east-1,m6gd.16xlarge,reserved_1y,partial_upfront,3.68644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:10.883184 +AWS,sa-east-1,m6gd.16xlarge,reserved_3y,all_upfront,1.843213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:35.972836 +AWS,sa-east-1,m6gd.16xlarge,reserved_3y,no_upfront,1.843213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:45.420812 +AWS,sa-east-1,m6gd.16xlarge,reserved_3y,partial_upfront,1.843213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:20.141931 +AWS,sa-east-1,m6gd.16xlarge,spot,NA,1.381327,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028572 +AWS,sa-east-1,m6gd.2xlarge,on_demand,NA,0.576,USD,AWS Pricing API,2025-11-30T09:10:47.175782 +AWS,sa-east-1,m6gd.2xlarge,reserved_1y,all_upfront,0.4014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:16.360010 +AWS,sa-east-1,m6gd.2xlarge,reserved_1y,no_upfront,0.4014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:04.714556 +AWS,sa-east-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.4014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:39.235932 +AWS,sa-east-1,m6gd.2xlarge,reserved_3y,all_upfront,0.4014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:04.917072 +AWS,sa-east-1,m6gd.2xlarge,reserved_3y,no_upfront,0.4014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:13.137857 +AWS,sa-east-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.4014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:48.498617 +AWS,sa-east-1,m6gd.2xlarge,spot,NA,0.089951,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027922 +AWS,sa-east-1,m6gd.4xlarge,on_demand,NA,1.152,USD,AWS Pricing API,2025-11-30T09:11:13.818353 +AWS,sa-east-1,m6gd.4xlarge,reserved_1y,all_upfront,0.4977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:42.827206 +AWS,sa-east-1,m6gd.4xlarge,reserved_1y,no_upfront,0.4977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:31.565203 +AWS,sa-east-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.4977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:05.758079 +AWS,sa-east-1,m6gd.4xlarge,reserved_3y,all_upfront,0.4977,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:30.916463 +AWS,sa-east-1,m6gd.4xlarge,reserved_3y,no_upfront,0.4977,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:40.164263 +AWS,sa-east-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.4977,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:15.025822 +AWS,sa-east-1,m6gd.4xlarge,spot,NA,0.337202,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028426 +AWS,sa-east-1,m6gd.8xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T09:10:35.849166 +AWS,sa-east-1,m6gd.8xlarge,reserved_1y,all_upfront,1.84322,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:05.104972 +AWS,sa-east-1,m6gd.8xlarge,reserved_1y,no_upfront,1.84322,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:53.247668 +AWS,sa-east-1,m6gd.8xlarge,reserved_1y,partial_upfront,1.84322,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:28.015520 +AWS,sa-east-1,m6gd.8xlarge,reserved_3y,all_upfront,0.921607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:53.888543 +AWS,sa-east-1,m6gd.8xlarge,reserved_3y,no_upfront,0.921607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:01.575757 +AWS,sa-east-1,m6gd.8xlarge,reserved_3y,partial_upfront,0.921607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:37.262765 +AWS,sa-east-1,m6gd.8xlarge,spot,NA,0.632238,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027673 +AWS,sa-east-1,m6gd.large,on_demand,NA,0.144,USD,AWS Pricing API,2025-11-30T09:10:57.422547 +AWS,sa-east-1,m6gd.large,reserved_1y,all_upfront,0.0873,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:26.479624 +AWS,sa-east-1,m6gd.large,reserved_1y,no_upfront,0.0873,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:14.957963 +AWS,sa-east-1,m6gd.large,reserved_1y,partial_upfront,0.0873,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:49.363935 +AWS,sa-east-1,m6gd.large,reserved_3y,all_upfront,0.0873,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:14.871376 +AWS,sa-east-1,m6gd.large,reserved_3y,no_upfront,0.0873,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:23.502961 +AWS,sa-east-1,m6gd.large,reserved_3y,partial_upfront,0.0873,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:58.595481 +AWS,sa-east-1,m6gd.large,spot,NA,0.034631,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028116 +AWS,sa-east-1,m6gd.xlarge,on_demand,NA,0.288,USD,AWS Pricing API,2025-11-30T09:10:50.540020 +AWS,sa-east-1,m6gd.xlarge,reserved_1y,all_upfront,0.2007,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:19.721617 +AWS,sa-east-1,m6gd.xlarge,reserved_1y,no_upfront,0.2007,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:08.146590 +AWS,sa-east-1,m6gd.xlarge,reserved_1y,partial_upfront,0.2007,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:42.596188 +AWS,sa-east-1,m6gd.xlarge,reserved_3y,all_upfront,0.2007,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:08.247505 +AWS,sa-east-1,m6gd.xlarge,reserved_3y,no_upfront,0.2007,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:16.594602 +AWS,sa-east-1,m6gd.xlarge,reserved_3y,partial_upfront,0.2007,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:51.880050 +AWS,sa-east-1,m6gd.xlarge,spot,NA,0.062351,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027985 +AWS,sa-east-1,m6i.12xlarge,on_demand,NA,3.672,USD,AWS Pricing API,2025-11-30T09:10:36.648005 +AWS,sa-east-1,m6i.12xlarge,reserved_1y,all_upfront,2.167162,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:05.933116 +AWS,sa-east-1,m6i.12xlarge,reserved_1y,no_upfront,2.167162,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:54.070587 +AWS,sa-east-1,m6i.12xlarge,reserved_1y,partial_upfront,2.167162,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:28.820434 +AWS,sa-east-1,m6i.12xlarge,reserved_3y,all_upfront,1.444787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:54.685022 +AWS,sa-east-1,m6i.12xlarge,reserved_3y,no_upfront,1.444787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:02.415869 +AWS,sa-east-1,m6i.12xlarge,reserved_3y,partial_upfront,1.444787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:38.071323 +AWS,sa-east-1,m6i.12xlarge,spot,NA,2.319454,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027681 +AWS,sa-east-1,m6i.16xlarge,on_demand,NA,4.896,USD,AWS Pricing API,2025-11-30T09:10:51.221726 +AWS,sa-east-1,m6i.16xlarge,reserved_1y,all_upfront,3.03408,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:20.393456 +AWS,sa-east-1,m6i.16xlarge,reserved_1y,no_upfront,3.03408,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:08.838294 +AWS,sa-east-1,m6i.16xlarge,reserved_1y,partial_upfront,3.03408,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:43.268072 +AWS,sa-east-1,m6i.16xlarge,reserved_3y,all_upfront,3.03408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:08.910341 +AWS,sa-east-1,m6i.16xlarge,reserved_3y,no_upfront,3.03408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:17.278599 +AWS,sa-east-1,m6i.16xlarge,reserved_3y,partial_upfront,3.03408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:52.545500 +AWS,sa-east-1,m6i.16xlarge,spot,NA,2.87793,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027993 +AWS,sa-east-1,m6i.24xlarge,on_demand,NA,7.344,USD,AWS Pricing API,2025-11-30T09:10:52.814803 +AWS,sa-east-1,m6i.24xlarge,reserved_1y,all_upfront,4.656963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:21.878148 +AWS,sa-east-1,m6i.24xlarge,reserved_1y,no_upfront,4.656963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:10.343607 +AWS,sa-east-1,m6i.24xlarge,reserved_1y,partial_upfront,4.656963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:44.772981 +AWS,sa-east-1,m6i.24xlarge,reserved_3y,all_upfront,1.552321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:10.361055 +AWS,sa-east-1,m6i.24xlarge,reserved_3y,no_upfront,1.552321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:18.814763 +AWS,sa-east-1,m6i.24xlarge,reserved_3y,partial_upfront,1.552321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:54.023309 +AWS,sa-east-1,m6i.24xlarge,spot,NA,4.128993,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028025 +AWS,sa-east-1,m6i.2xlarge,on_demand,NA,0.612,USD,AWS Pricing API,2025-11-30T09:11:11.653337 +AWS,sa-east-1,m6i.2xlarge,reserved_1y,all_upfront,0.587982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:40.661924 +AWS,sa-east-1,m6i.2xlarge,reserved_1y,no_upfront,0.587982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:29.395487 +AWS,sa-east-1,m6i.2xlarge,reserved_1y,partial_upfront,0.587982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:03.578594 +AWS,sa-east-1,m6i.2xlarge,reserved_3y,all_upfront,0.293994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:28.790128 +AWS,sa-east-1,m6i.2xlarge,reserved_3y,no_upfront,0.293994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:37.952686 +AWS,sa-east-1,m6i.2xlarge,reserved_3y,partial_upfront,0.293994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:12.865517 +AWS,sa-east-1,m6i.2xlarge,spot,NA,0.225099,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028410 +AWS,sa-east-1,m6i.32xlarge,on_demand,NA,9.792,USD,AWS Pricing API,2025-11-30T09:11:28.164680 +AWS,sa-east-1,m6i.32xlarge,reserved_1y,all_upfront,6.336037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:57.149835 +AWS,sa-east-1,m6i.32xlarge,reserved_1y,no_upfront,6.336037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:46.131568 +AWS,sa-east-1,m6i.32xlarge,reserved_1y,partial_upfront,6.336037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:20.033899 +AWS,sa-east-1,m6i.32xlarge,reserved_3y,all_upfront,4.224012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:44.973647 +AWS,sa-east-1,m6i.32xlarge,reserved_3y,no_upfront,4.224012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:54.766510 +AWS,sa-east-1,m6i.32xlarge,reserved_3y,partial_upfront,4.224012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:29.295492 +AWS,sa-east-1,m6i.32xlarge,spot,NA,3.418606,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028753 +AWS,sa-east-1,m6i.4xlarge,on_demand,NA,1.224,USD,AWS Pricing API,2025-11-30T09:10:38.791816 +AWS,sa-east-1,m6i.4xlarge,reserved_1y,all_upfront,0.722387,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:08.093022 +AWS,sa-east-1,m6i.4xlarge,reserved_1y,no_upfront,0.722387,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:56.274604 +AWS,sa-east-1,m6i.4xlarge,reserved_1y,partial_upfront,0.722387,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:30.966309 +AWS,sa-east-1,m6i.4xlarge,reserved_3y,all_upfront,0.481596,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:56.797710 +AWS,sa-east-1,m6i.4xlarge,reserved_3y,no_upfront,0.481596,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:04.639838 +AWS,sa-east-1,m6i.4xlarge,reserved_3y,partial_upfront,0.481596,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:40.252049 +AWS,sa-east-1,m6i.4xlarge,spot,NA,0.521564,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027745 +AWS,sa-east-1,m6i.8xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T09:10:43.595874 +AWS,sa-east-1,m6i.8xlarge,reserved_1y,all_upfront,1.552283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:12.839005 +AWS,sa-east-1,m6i.8xlarge,reserved_1y,no_upfront,1.552283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:01.082219 +AWS,sa-east-1,m6i.8xlarge,reserved_1y,partial_upfront,1.552283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:35.691753 +AWS,sa-east-1,m6i.8xlarge,reserved_3y,all_upfront,0.517428,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:01.430564 +AWS,sa-east-1,m6i.8xlarge,reserved_3y,no_upfront,0.517428,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:09.547017 +AWS,sa-east-1,m6i.8xlarge,reserved_3y,partial_upfront,0.517428,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:44.975190 +AWS,sa-east-1,m6i.8xlarge,spot,NA,1.351719,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027840 +AWS,sa-east-1,m6i.large,on_demand,NA,0.153,USD,AWS Pricing API,2025-11-30T09:10:54.280040 +AWS,sa-east-1,m6i.large,reserved_1y,all_upfront,0.099043,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:23.352969 +AWS,sa-east-1,m6i.large,reserved_1y,no_upfront,0.099043,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:11.832353 +AWS,sa-east-1,m6i.large,reserved_1y,partial_upfront,0.099043,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:46.253774 +AWS,sa-east-1,m6i.large,reserved_3y,all_upfront,0.066014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:11.825169 +AWS,sa-east-1,m6i.large,reserved_3y,no_upfront,0.066014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:20.321315 +AWS,sa-east-1,m6i.large,reserved_3y,partial_upfront,0.066014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:55.489773 +AWS,sa-east-1,m6i.large,spot,NA,0.073326,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028061 +AWS,sa-east-1,m6i.xlarge,on_demand,NA,0.306,USD,AWS Pricing API,2025-11-30T09:10:30.195879 +AWS,sa-east-1,m6i.xlarge,reserved_1y,all_upfront,0.18963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:59.390705 +AWS,sa-east-1,m6i.xlarge,reserved_1y,no_upfront,0.18963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:47.467778 +AWS,sa-east-1,m6i.xlarge,reserved_1y,partial_upfront,0.18963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:22.346979 +AWS,sa-east-1,m6i.xlarge,reserved_3y,all_upfront,0.18963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:48.320884 +AWS,sa-east-1,m6i.xlarge,reserved_3y,no_upfront,0.18963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:55.779231 +AWS,sa-east-1,m6i.xlarge,reserved_3y,partial_upfront,0.18963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:31.604333 +AWS,sa-east-1,m6i.xlarge,spot,NA,0.116847,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027562 +AWS,sa-east-1,m6id.12xlarge,on_demand,NA,4.536,USD,AWS Pricing API,2025-11-30T09:11:08.107629 +AWS,sa-east-1,m6id.12xlarge,reserved_1y,all_upfront,2.61762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:37.167194 +AWS,sa-east-1,m6id.12xlarge,reserved_1y,no_upfront,2.61762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:25.855367 +AWS,sa-east-1,m6id.12xlarge,reserved_1y,partial_upfront,2.61762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:00.058732 +AWS,sa-east-1,m6id.12xlarge,reserved_3y,all_upfront,1.745093,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:25.360038 +AWS,sa-east-1,m6id.12xlarge,reserved_3y,no_upfront,1.745093,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:34.365172 +AWS,sa-east-1,m6id.12xlarge,reserved_3y,partial_upfront,1.745093,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:09.354079 +AWS,sa-east-1,m6id.12xlarge,spot,NA,3.878979,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028336 +AWS,sa-east-1,m6id.16xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T09:10:35.307684 +AWS,sa-east-1,m6id.16xlarge,reserved_1y,all_upfront,4.21443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:04.563667 +AWS,sa-east-1,m6id.16xlarge,reserved_1y,no_upfront,4.21443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:52.697472 +AWS,sa-east-1,m6id.16xlarge,reserved_1y,partial_upfront,4.21443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:27.471966 +AWS,sa-east-1,m6id.16xlarge,reserved_3y,all_upfront,4.21443,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:53.355506 +AWS,sa-east-1,m6id.16xlarge,reserved_3y,no_upfront,4.21443,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:01.005818 +AWS,sa-east-1,m6id.16xlarge,reserved_3y,partial_upfront,4.21443,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:36.729540 +AWS,sa-east-1,m6id.16xlarge,spot,NA,5.064054,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027653 +AWS,sa-east-1,m6id.24xlarge,on_demand,NA,9.072,USD,AWS Pricing API,2025-11-30T09:10:39.523555 +AWS,sa-east-1,m6id.24xlarge,reserved_1y,all_upfront,5.49708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:08.786748 +AWS,sa-east-1,m6id.24xlarge,reserved_1y,no_upfront,5.49708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:56.962454 +AWS,sa-east-1,m6id.24xlarge,reserved_1y,partial_upfront,5.49708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:31.645159 +AWS,sa-east-1,m6id.24xlarge,reserved_3y,all_upfront,5.49708,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:57.464725 +AWS,sa-east-1,m6id.24xlarge,reserved_3y,no_upfront,5.49708,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:05.342888 +AWS,sa-east-1,m6id.24xlarge,reserved_3y,partial_upfront,5.49708,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:40.919044 +AWS,sa-east-1,m6id.24xlarge,spot,NA,5.883237,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027729 +AWS,sa-east-1,m6id.2xlarge,on_demand,NA,0.756,USD,AWS Pricing API,2025-11-30T09:10:31.928000 +AWS,sa-east-1,m6id.2xlarge,reserved_1y,all_upfront,0.491667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:01.147316 +AWS,sa-east-1,m6id.2xlarge,reserved_1y,no_upfront,0.491667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:49.245970 +AWS,sa-east-1,m6id.2xlarge,reserved_1y,partial_upfront,0.491667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:24.079188 +AWS,sa-east-1,m6id.2xlarge,reserved_3y,all_upfront,0.163889,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:50.043874 +AWS,sa-east-1,m6id.2xlarge,reserved_3y,no_upfront,0.163889,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:57.567224 +AWS,sa-east-1,m6id.2xlarge,reserved_3y,partial_upfront,0.163889,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:33.345307 +AWS,sa-east-1,m6id.2xlarge,spot,NA,0.18736,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027612 +AWS,sa-east-1,m6id.32xlarge,on_demand,NA,12.096,USD,AWS Pricing API,2025-11-30T09:11:11.928981 +AWS,sa-east-1,m6id.32xlarge,reserved_1y,all_upfront,13.644292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:40.929205 +AWS,sa-east-1,m6id.32xlarge,reserved_1y,no_upfront,13.644292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:29.667488 +AWS,sa-east-1,m6id.32xlarge,reserved_1y,partial_upfront,13.644292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:03.847345 +AWS,sa-east-1,m6id.32xlarge,reserved_3y,all_upfront,4.548097,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:29.059782 +AWS,sa-east-1,m6id.32xlarge,reserved_3y,no_upfront,4.548097,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:38.228764 +AWS,sa-east-1,m6id.32xlarge,reserved_3y,partial_upfront,4.548097,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:13.132600 +AWS,sa-east-1,m6id.32xlarge,spot,NA,5.197387,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028422 +AWS,sa-east-1,m6id.4xlarge,on_demand,NA,1.512,USD,AWS Pricing API,2025-11-30T09:11:34.196460 +AWS,sa-east-1,m6id.4xlarge,reserved_1y,all_upfront,0.983333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:03.232667 +AWS,sa-east-1,m6id.4xlarge,reserved_1y,no_upfront,0.983333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:52.304146 +AWS,sa-east-1,m6id.4xlarge,reserved_1y,partial_upfront,0.983333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:26.086783 +AWS,sa-east-1,m6id.4xlarge,reserved_3y,all_upfront,0.327778,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:50.932086 +AWS,sa-east-1,m6id.4xlarge,reserved_3y,no_upfront,0.327778,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:01.006662 +AWS,sa-east-1,m6id.4xlarge,reserved_3y,partial_upfront,0.327778,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:35.333478 +AWS,sa-east-1,m6id.4xlarge,spot,NA,0.905264,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028861 +AWS,sa-east-1,m6id.8xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T09:11:06.745398 +AWS,sa-east-1,m6id.8xlarge,reserved_1y,all_upfront,1.83236,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:35.801837 +AWS,sa-east-1,m6id.8xlarge,reserved_1y,no_upfront,1.83236,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:24.486861 +AWS,sa-east-1,m6id.8xlarge,reserved_1y,partial_upfront,1.83236,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:58.705490 +AWS,sa-east-1,m6id.8xlarge,reserved_3y,all_upfront,1.83236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:24.016404 +AWS,sa-east-1,m6id.8xlarge,reserved_3y,no_upfront,1.83236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:32.989235 +AWS,sa-east-1,m6id.8xlarge,reserved_3y,partial_upfront,1.83236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:07.997826 +AWS,sa-east-1,m6id.8xlarge,spot,NA,2.403764,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028299 +AWS,sa-east-1,m6id.large,on_demand,NA,0.189,USD,AWS Pricing API,2025-11-30T09:11:35.284394 +AWS,sa-east-1,m6id.large,reserved_1y,all_upfront,0.09868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:04.312769 +AWS,sa-east-1,m6id.large,reserved_1y,no_upfront,0.09868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:53.392223 +AWS,sa-east-1,m6id.large,reserved_1y,partial_upfront,0.09868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:27.164011 +AWS,sa-east-1,m6id.large,reserved_3y,all_upfront,0.09868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:51.997493 +AWS,sa-east-1,m6id.large,reserved_3y,no_upfront,0.09868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:02.120494 +AWS,sa-east-1,m6id.large,reserved_3y,partial_upfront,0.09868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:36.421415 +AWS,sa-east-1,m6id.large,spot,NA,0.037321,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028881 +AWS,sa-east-1,m6id.xlarge,on_demand,NA,0.378,USD,AWS Pricing API,2025-11-30T09:10:38.516334 +AWS,sa-east-1,m6id.xlarge,reserved_1y,all_upfront,0.218088,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:07.823765 +AWS,sa-east-1,m6id.xlarge,reserved_1y,no_upfront,0.218088,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:55.999859 +AWS,sa-east-1,m6id.xlarge,reserved_1y,partial_upfront,0.218088,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:30.695846 +AWS,sa-east-1,m6id.xlarge,reserved_3y,all_upfront,0.145409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:56.532997 +AWS,sa-east-1,m6id.xlarge,reserved_3y,no_upfront,0.145409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:04.360606 +AWS,sa-east-1,m6id.xlarge,reserved_3y,partial_upfront,0.145409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:39.975876 +AWS,sa-east-1,m6id.xlarge,spot,NA,0.080259,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027702 +AWS,sa-east-1,m7g.12xlarge,on_demand,NA,3.1212,USD,AWS Pricing API,2025-11-30T09:10:47.576599 +AWS,sa-east-1,m7g.12xlarge,reserved_1y,all_upfront,1.805251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:16.761889 +AWS,sa-east-1,m7g.12xlarge,reserved_1y,no_upfront,1.805251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:05.136042 +AWS,sa-east-1,m7g.12xlarge,reserved_1y,partial_upfront,1.805251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:39.643569 +AWS,sa-east-1,m7g.12xlarge,reserved_3y,all_upfront,0.60175,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:05.323277 +AWS,sa-east-1,m7g.12xlarge,reserved_3y,no_upfront,0.60175,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:13.568507 +AWS,sa-east-1,m7g.12xlarge,reserved_3y,partial_upfront,0.60175,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:48.901234 +AWS,sa-east-1,m7g.12xlarge,spot,NA,1.518909,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027914 +AWS,sa-east-1,m7g.16xlarge,on_demand,NA,4.1616,USD,AWS Pricing API,2025-11-30T09:11:16.372271 +AWS,sa-east-1,m7g.16xlarge,reserved_1y,all_upfront,3.484342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:45.404379 +AWS,sa-east-1,m7g.16xlarge,reserved_1y,no_upfront,3.484342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:34.145689 +AWS,sa-east-1,m7g.16xlarge,reserved_1y,partial_upfront,3.484342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:08.334502 +AWS,sa-east-1,m7g.16xlarge,reserved_3y,all_upfront,1.742181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:33.424203 +AWS,sa-east-1,m7g.16xlarge,reserved_3y,no_upfront,1.742181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:42.789976 +AWS,sa-east-1,m7g.16xlarge,reserved_3y,partial_upfront,1.742181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:17.598607 +AWS,sa-east-1,m7g.16xlarge,spot,NA,2.024843,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028515 +AWS,sa-east-1,m7g.2xlarge,on_demand,NA,0.5202,USD,AWS Pricing API,2025-11-30T09:10:39.386399 +AWS,sa-east-1,m7g.2xlarge,reserved_1y,all_upfront,0.435612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:08.651445 +AWS,sa-east-1,m7g.2xlarge,reserved_1y,no_upfront,0.435612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:56.825614 +AWS,sa-east-1,m7g.2xlarge,reserved_1y,partial_upfront,0.435612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:31.508825 +AWS,sa-east-1,m7g.2xlarge,reserved_3y,all_upfront,0.217804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:57.331259 +AWS,sa-east-1,m7g.2xlarge,reserved_3y,no_upfront,0.217804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:05.196002 +AWS,sa-east-1,m7g.2xlarge,reserved_3y,partial_upfront,0.217804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:40.785840 +AWS,sa-east-1,m7g.2xlarge,spot,NA,0.122485,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027733 +AWS,sa-east-1,m7g.4xlarge,on_demand,NA,1.0404,USD,AWS Pricing API,2025-11-30T09:11:35.851112 +AWS,sa-east-1,m7g.4xlarge,reserved_1y,all_upfront,0.673244,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:04.854738 +AWS,sa-east-1,m7g.4xlarge,reserved_1y,no_upfront,0.673244,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:53.939248 +AWS,sa-east-1,m7g.4xlarge,reserved_1y,partial_upfront,0.673244,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:27.704862 +AWS,sa-east-1,m7g.4xlarge,reserved_3y,all_upfront,0.448815,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:52.530022 +AWS,sa-east-1,m7g.4xlarge,reserved_3y,no_upfront,0.448815,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:02.673549 +AWS,sa-east-1,m7g.4xlarge,reserved_3y,partial_upfront,0.448815,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:36.960932 +AWS,sa-east-1,m7g.4xlarge,spot,NA,0.421534,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028920 +AWS,sa-east-1,m7g.8xlarge,on_demand,NA,2.0808,USD,AWS Pricing API,2025-11-30T09:10:30.598195 +AWS,sa-east-1,m7g.8xlarge,reserved_1y,all_upfront,1.346374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:59.801542 +AWS,sa-east-1,m7g.8xlarge,reserved_1y,no_upfront,1.346374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:47.878610 +AWS,sa-east-1,m7g.8xlarge,reserved_1y,partial_upfront,1.346374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:22.746530 +AWS,sa-east-1,m7g.8xlarge,reserved_3y,all_upfront,0.897591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:48.714708 +AWS,sa-east-1,m7g.8xlarge,reserved_3y,no_upfront,0.897591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:56.191905 +AWS,sa-east-1,m7g.8xlarge,reserved_3y,partial_upfront,0.897591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:32.005053 +AWS,sa-east-1,m7g.8xlarge,spot,NA,0.915517,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027575 +AWS,sa-east-1,m7g.large,on_demand,NA,0.1301,USD,AWS Pricing API,2025-11-30T09:10:58.244685 +AWS,sa-east-1,m7g.large,reserved_1y,all_upfront,0.124921,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:27.289819 +AWS,sa-east-1,m7g.large,reserved_1y,no_upfront,0.124921,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:15.781547 +AWS,sa-east-1,m7g.large,reserved_1y,partial_upfront,0.124921,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:50.177204 +AWS,sa-east-1,m7g.large,reserved_3y,all_upfront,0.06244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:15.677265 +AWS,sa-east-1,m7g.large,reserved_3y,no_upfront,0.06244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:24.328328 +AWS,sa-east-1,m7g.large,reserved_3y,partial_upfront,0.06244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:59.419267 +AWS,sa-east-1,m7g.large,spot,NA,0.075565,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028128 +AWS,sa-east-1,m7g.xlarge,on_demand,NA,0.2601,USD,AWS Pricing API,2025-11-30T09:11:05.022408 +AWS,sa-east-1,m7g.xlarge,reserved_1y,all_upfront,0.1176,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:34.060995 +AWS,sa-east-1,m7g.xlarge,reserved_1y,no_upfront,0.1176,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:22.714779 +AWS,sa-east-1,m7g.xlarge,reserved_1y,partial_upfront,0.1176,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:56.965614 +AWS,sa-east-1,m7g.xlarge,reserved_3y,all_upfront,0.1176,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:22.284458 +AWS,sa-east-1,m7g.xlarge,reserved_3y,no_upfront,0.1176,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:31.216141 +AWS,sa-east-1,m7g.xlarge,reserved_3y,partial_upfront,0.1176,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:06.164226 +AWS,sa-east-1,m7g.xlarge,spot,NA,0.08389,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028283 +AWS,sa-east-1,m7gd.12xlarge,on_demand,NA,4.0824,USD,AWS Pricing API,2025-11-30T09:10:38.653768 +AWS,sa-east-1,m7gd.12xlarge,reserved_1y,all_upfront,2.70928,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:07.957819 +AWS,sa-east-1,m7gd.12xlarge,reserved_1y,no_upfront,2.70928,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:56.137335 +AWS,sa-east-1,m7gd.12xlarge,reserved_1y,partial_upfront,2.70928,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:30.830964 +AWS,sa-east-1,m7gd.12xlarge,reserved_3y,all_upfront,1.80616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:56.666523 +AWS,sa-east-1,m7gd.12xlarge,reserved_3y,no_upfront,1.80616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:04.499107 +AWS,sa-east-1,m7gd.12xlarge,reserved_3y,partial_upfront,1.80616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:40.114692 +AWS,sa-east-1,m7gd.12xlarge,spot,NA,2.534098,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027753 +AWS,sa-east-1,m7gd.16xlarge,on_demand,NA,5.4432,USD,AWS Pricing API,2025-11-30T09:10:55.936313 +AWS,sa-east-1,m7gd.16xlarge,reserved_1y,all_upfront,4.354468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:24.976199 +AWS,sa-east-1,m7gd.16xlarge,reserved_1y,no_upfront,4.354468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:13.460816 +AWS,sa-east-1,m7gd.16xlarge,reserved_1y,partial_upfront,4.354468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:47.885818 +AWS,sa-east-1,m7gd.16xlarge,reserved_3y,all_upfront,2.177223,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:13.416574 +AWS,sa-east-1,m7gd.16xlarge,reserved_3y,no_upfront,2.177223,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:21.985733 +AWS,sa-east-1,m7gd.16xlarge,reserved_3y,partial_upfront,2.177223,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:57.103247 +AWS,sa-east-1,m7gd.16xlarge,spot,NA,2.940186,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028080 +AWS,sa-east-1,m7gd.2xlarge,on_demand,NA,0.6804,USD,AWS Pricing API,2025-11-30T09:11:11.518169 +AWS,sa-east-1,m7gd.2xlarge,reserved_1y,all_upfront,0.767466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:40.526544 +AWS,sa-east-1,m7gd.2xlarge,reserved_1y,no_upfront,0.767466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:29.259022 +AWS,sa-east-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.767466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:03.444331 +AWS,sa-east-1,m7gd.2xlarge,reserved_3y,all_upfront,0.255822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:28.657674 +AWS,sa-east-1,m7gd.2xlarge,reserved_3y,no_upfront,0.255822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:37.816626 +AWS,sa-east-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.255822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:12.730252 +AWS,sa-east-1,m7gd.2xlarge,spot,NA,0.168481,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028406 +AWS,sa-east-1,m7gd.4xlarge,on_demand,NA,1.3608,USD,AWS Pricing API,2025-11-30T09:11:28.983926 +AWS,sa-east-1,m7gd.4xlarge,reserved_1y,all_upfront,1.534932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:57.956805 +AWS,sa-east-1,m7gd.4xlarge,reserved_1y,no_upfront,1.534932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:46.961747 +AWS,sa-east-1,m7gd.4xlarge,reserved_1y,partial_upfront,1.534932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:20.849785 +AWS,sa-east-1,m7gd.4xlarge,reserved_3y,all_upfront,0.511644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:45.776508 +AWS,sa-east-1,m7gd.4xlarge,reserved_3y,no_upfront,0.511644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:55.605557 +AWS,sa-east-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.511644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:30.103845 +AWS,sa-east-1,m7gd.4xlarge,spot,NA,0.515058,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028777 +AWS,sa-east-1,m7gd.8xlarge,on_demand,NA,2.7216,USD,AWS Pricing API,2025-11-30T09:11:09.178768 +AWS,sa-east-1,m7gd.8xlarge,reserved_1y,all_upfront,3.868379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:38.246360 +AWS,sa-east-1,m7gd.8xlarge,reserved_1y,no_upfront,3.868379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:26.953696 +AWS,sa-east-1,m7gd.8xlarge,reserved_1y,partial_upfront,3.868379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:01.135485 +AWS,sa-east-1,m7gd.8xlarge,reserved_3y,all_upfront,1.28946,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:26.415075 +AWS,sa-east-1,m7gd.8xlarge,reserved_3y,no_upfront,1.28946,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:35.470637 +AWS,sa-east-1,m7gd.8xlarge,reserved_3y,partial_upfront,1.28946,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:10.443447 +AWS,sa-east-1,m7gd.8xlarge,spot,NA,1.581597,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028347 +AWS,sa-east-1,m7gd.large,on_demand,NA,0.1701,USD,AWS Pricing API,2025-11-30T09:11:07.018314 +AWS,sa-east-1,m7gd.large,reserved_1y,all_upfront,0.098187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:36.072427 +AWS,sa-east-1,m7gd.large,reserved_1y,no_upfront,0.098187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:24.756509 +AWS,sa-east-1,m7gd.large,reserved_1y,partial_upfront,0.098187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:58.978434 +AWS,sa-east-1,m7gd.large,reserved_3y,all_upfront,0.065462,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:24.281639 +AWS,sa-east-1,m7gd.large,reserved_3y,no_upfront,0.065462,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:33.264295 +AWS,sa-east-1,m7gd.large,reserved_3y,partial_upfront,0.065462,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:08.269229 +AWS,sa-east-1,m7gd.large,spot,NA,0.024675,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028307 +AWS,sa-east-1,m7gd.xlarge,on_demand,NA,0.3402,USD,AWS Pricing API,2025-11-30T09:11:13.145264 +AWS,sa-east-1,m7gd.xlarge,reserved_1y,all_upfront,0.192352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:42.140783 +AWS,sa-east-1,m7gd.xlarge,reserved_1y,no_upfront,0.192352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:30.883585 +AWS,sa-east-1,m7gd.xlarge,reserved_1y,partial_upfront,0.192352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:05.078263 +AWS,sa-east-1,m7gd.xlarge,reserved_3y,all_upfront,0.064117,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:30.258147 +AWS,sa-east-1,m7gd.xlarge,reserved_3y,no_upfront,0.064117,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:39.474139 +AWS,sa-east-1,m7gd.xlarge,reserved_3y,partial_upfront,0.064117,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:14.347527 +AWS,sa-east-1,m7gd.xlarge,spot,NA,0.078488,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028451 +AWS,sa-east-1,m7i.12xlarge,on_demand,NA,3.8556,USD,AWS Pricing API,2025-11-30T09:10:44.832702 +AWS,sa-east-1,m7i.12xlarge,reserved_1y,all_upfront,2.230023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:14.056487 +AWS,sa-east-1,m7i.12xlarge,reserved_1y,no_upfront,2.230023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:02.354777 +AWS,sa-east-1,m7i.12xlarge,reserved_1y,partial_upfront,2.230023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:36.909244 +AWS,sa-east-1,m7i.12xlarge,reserved_3y,all_upfront,0.743341,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:02.641072 +AWS,sa-east-1,m7i.12xlarge,reserved_3y,no_upfront,0.743341,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:10.792247 +AWS,sa-east-1,m7i.12xlarge,reserved_3y,partial_upfront,0.743341,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:46.189396 +AWS,sa-east-1,m7i.12xlarge,spot,NA,2.462401,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027865 +AWS,sa-east-1,m7i.16xlarge,on_demand,NA,5.1408,USD,AWS Pricing API,2025-11-30T09:11:21.833537 +AWS,sa-east-1,m7i.16xlarge,reserved_1y,all_upfront,7.260616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:50.810256 +AWS,sa-east-1,m7i.16xlarge,reserved_1y,no_upfront,7.260616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:39.628990 +AWS,sa-east-1,m7i.16xlarge,reserved_1y,partial_upfront,7.260616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:13.718577 +AWS,sa-east-1,m7i.16xlarge,reserved_3y,all_upfront,2.420205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:38.752967 +AWS,sa-east-1,m7i.16xlarge,reserved_3y,no_upfront,2.420205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:48.316342 +AWS,sa-east-1,m7i.16xlarge,reserved_3y,partial_upfront,2.420205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:22.974170 +AWS,sa-east-1,m7i.16xlarge,spot,NA,3.238828,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028624 +AWS,sa-east-1,m7i.24xlarge,on_demand,NA,7.7112,USD,AWS Pricing API,2025-11-30T09:11:27.887620 +AWS,sa-east-1,m7i.24xlarge,reserved_1y,all_upfront,10.890868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:56.881352 +AWS,sa-east-1,m7i.24xlarge,reserved_1y,no_upfront,10.890868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:45.858905 +AWS,sa-east-1,m7i.24xlarge,reserved_1y,partial_upfront,10.890868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:19.768713 +AWS,sa-east-1,m7i.24xlarge,reserved_3y,all_upfront,3.630289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:44.713231 +AWS,sa-east-1,m7i.24xlarge,reserved_3y,no_upfront,3.630289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:54.494718 +AWS,sa-east-1,m7i.24xlarge,reserved_3y,partial_upfront,3.630289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:29.026775 +AWS,sa-east-1,m7i.24xlarge,spot,NA,3.942652,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028757 +AWS,sa-east-1,m7i.2xlarge,on_demand,NA,0.6426,USD,AWS Pricing API,2025-11-30T09:11:03.255611 +AWS,sa-east-1,m7i.2xlarge,reserved_1y,all_upfront,0.43659,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:32.307658 +AWS,sa-east-1,m7i.2xlarge,reserved_1y,no_upfront,0.43659,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:20.950945 +AWS,sa-east-1,m7i.2xlarge,reserved_1y,partial_upfront,0.43659,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:55.176226 +AWS,sa-east-1,m7i.2xlarge,reserved_3y,all_upfront,0.43659,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:20.564938 +AWS,sa-east-1,m7i.2xlarge,reserved_3y,no_upfront,0.43659,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:29.419666 +AWS,sa-east-1,m7i.2xlarge,reserved_3y,partial_upfront,0.43659,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:04.403060 +AWS,sa-east-1,m7i.2xlarge,spot,NA,0.198946,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028264 +AWS,sa-east-1,m7i.48xlarge,on_demand,NA,15.4224,USD,AWS Pricing API,2025-11-30T09:10:26.328609 +AWS,sa-east-1,m7i.48xlarge,reserved_1y,all_upfront,21.781735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:55.463669 +AWS,sa-east-1,m7i.48xlarge,reserved_1y,no_upfront,21.781735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:43.493611 +AWS,sa-east-1,m7i.48xlarge,reserved_1y,partial_upfront,21.781735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:18.436927 +AWS,sa-east-1,m7i.48xlarge,reserved_3y,all_upfront,7.260578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:44.474663 +AWS,sa-east-1,m7i.48xlarge,reserved_3y,no_upfront,7.260578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:51.663288 +AWS,sa-east-1,m7i.48xlarge,reserved_3y,partial_upfront,7.260578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:27.737703 +AWS,sa-east-1,m7i.48xlarge,spot,NA,2.385265,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027488 +AWS,sa-east-1,m7i.4xlarge,on_demand,NA,1.2852,USD,AWS Pricing API,2025-11-30T09:10:40.065583 +AWS,sa-east-1,m7i.4xlarge,reserved_1y,all_upfront,0.831553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:09.324866 +AWS,sa-east-1,m7i.4xlarge,reserved_1y,no_upfront,0.831553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:57.513737 +AWS,sa-east-1,m7i.4xlarge,reserved_1y,partial_upfront,0.831553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:32.184855 +AWS,sa-east-1,m7i.4xlarge,reserved_3y,all_upfront,0.554384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:57.986618 +AWS,sa-east-1,m7i.4xlarge,reserved_3y,no_upfront,0.554384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:05.899346 +AWS,sa-east-1,m7i.4xlarge,reserved_3y,partial_upfront,0.554384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:41.458608 +AWS,sa-east-1,m7i.4xlarge,spot,NA,0.547118,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027778 +AWS,sa-east-1,m7i.8xlarge,on_demand,NA,2.5704,USD,AWS Pricing API,2025-11-30T09:11:17.634658 +AWS,sa-east-1,m7i.8xlarge,reserved_1y,all_upfront,2.152061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:46.620749 +AWS,sa-east-1,m7i.8xlarge,reserved_1y,no_upfront,2.152061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:35.383854 +AWS,sa-east-1,m7i.8xlarge,reserved_1y,partial_upfront,2.152061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:09.544151 +AWS,sa-east-1,m7i.8xlarge,reserved_3y,all_upfront,1.076034,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:34.631888 +AWS,sa-east-1,m7i.8xlarge,reserved_3y,no_upfront,1.076034,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:44.038984 +AWS,sa-east-1,m7i.8xlarge,reserved_3y,partial_upfront,1.076034,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:18.799882 +AWS,sa-east-1,m7i.8xlarge,spot,NA,1.520015,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028540 +AWS,sa-east-1,m7i.large,on_demand,NA,0.16065,USD,AWS Pricing API,2025-11-30T09:10:43.056687 +AWS,sa-east-1,m7i.large,reserved_1y,all_upfront,0.134543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:12.295021 +AWS,sa-east-1,m7i.large,reserved_1y,no_upfront,0.134543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:00.529955 +AWS,sa-east-1,m7i.large,reserved_1y,partial_upfront,0.134543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:35.150769 +AWS,sa-east-1,m7i.large,reserved_3y,all_upfront,0.067268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:00.898816 +AWS,sa-east-1,m7i.large,reserved_3y,no_upfront,0.067268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:08.983553 +AWS,sa-east-1,m7i.large,reserved_3y,partial_upfront,0.067268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:44.432106 +AWS,sa-east-1,m7i.large,spot,NA,0.046773,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027827 +AWS,sa-east-1,m7i.metal-24xl,on_demand,NA,7.7112,USD,AWS Pricing API,2025-11-30T09:10:26.463983 +AWS,sa-east-1,m7i.metal-24xl,reserved_1y,all_upfront,4.88984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:55.599341 +AWS,sa-east-1,m7i.metal-24xl,reserved_1y,no_upfront,4.88984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:43.631963 +AWS,sa-east-1,m7i.metal-24xl,reserved_1y,partial_upfront,4.88984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:18.577965 +AWS,sa-east-1,m7i.metal-24xl,reserved_3y,all_upfront,1.629947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:44.608547 +AWS,sa-east-1,m7i.metal-24xl,reserved_3y,no_upfront,1.629947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:51.800176 +AWS,sa-east-1,m7i.metal-24xl,reserved_3y,partial_upfront,1.629947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:27.871440 +AWS,sa-east-1,m7i.metal-24xl,spot,NA,1.210789,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027508 +AWS,sa-east-1,m7i.metal-48xl,on_demand,NA,15.4224,USD,AWS Pricing API,2025-11-30T09:11:07.426569 +AWS,sa-east-1,m7i.metal-48xl,reserved_1y,all_upfront,12.912615,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:36.484998 +AWS,sa-east-1,m7i.metal-48xl,reserved_1y,no_upfront,12.912615,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:25.163012 +AWS,sa-east-1,m7i.metal-48xl,reserved_1y,partial_upfront,12.912615,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:59.381080 +AWS,sa-east-1,m7i.metal-48xl,reserved_3y,all_upfront,6.456298,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:24.687519 +AWS,sa-east-1,m7i.metal-48xl,reserved_3y,no_upfront,6.456298,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:33.681490 +AWS,sa-east-1,m7i.metal-48xl,reserved_3y,partial_upfront,6.456298,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:08.672548 +AWS,sa-east-1,m7i.metal-48xl,spot,NA,1.82038,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028323 +AWS,sa-east-1,m7i.xlarge,on_demand,NA,0.3213,USD,AWS Pricing API,2025-11-30T09:11:29.385175 +AWS,sa-east-1,m7i.xlarge,reserved_1y,all_upfront,0.207945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:58.359394 +AWS,sa-east-1,m7i.xlarge,reserved_1y,no_upfront,0.207945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:47.377641 +AWS,sa-east-1,m7i.xlarge,reserved_1y,partial_upfront,0.207945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:21.256401 +AWS,sa-east-1,m7i.xlarge,reserved_3y,all_upfront,0.138615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:46.173122 +AWS,sa-east-1,m7i.xlarge,reserved_3y,no_upfront,0.138615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:56.040737 +AWS,sa-east-1,m7i.xlarge,reserved_3y,partial_upfront,0.138615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:30.508761 +AWS,sa-east-1,m7i.xlarge,spot,NA,0.085917,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028793 +AWS,sa-east-1,m8g.12xlarge,on_demand,NA,3.43344,USD,AWS Pricing API,2025-11-30T09:11:13.546697 +AWS,sa-east-1,m8g.12xlarge,reserved_1y,all_upfront,2.221665,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:42.556795 +AWS,sa-east-1,m8g.12xlarge,reserved_1y,no_upfront,2.221665,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:31.289491 +AWS,sa-east-1,m8g.12xlarge,reserved_1y,partial_upfront,2.221665,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:05.487836 +AWS,sa-east-1,m8g.12xlarge,reserved_3y,all_upfront,1.481102,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:30.650960 +AWS,sa-east-1,m8g.12xlarge,reserved_3y,no_upfront,1.481102,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:39.886341 +AWS,sa-east-1,m8g.12xlarge,reserved_3y,partial_upfront,1.481102,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:14.754578 +AWS,sa-east-1,m8g.12xlarge,spot,NA,1.488289,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028443 +AWS,sa-east-1,m8g.16xlarge,on_demand,NA,4.57792,USD,AWS Pricing API,2025-11-30T09:10:26.865286 +AWS,sa-east-1,m8g.16xlarge,reserved_1y,all_upfront,6.465639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:56.008372 +AWS,sa-east-1,m8g.16xlarge,reserved_1y,no_upfront,6.465639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:44.050444 +AWS,sa-east-1,m8g.16xlarge,reserved_1y,partial_upfront,6.465639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:18.984736 +AWS,sa-east-1,m8g.16xlarge,reserved_3y,all_upfront,2.155213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:45.012820 +AWS,sa-east-1,m8g.16xlarge,reserved_3y,no_upfront,2.155213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:52.213724 +AWS,sa-east-1,m8g.16xlarge,reserved_3y,partial_upfront,2.155213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:28.276987 +AWS,sa-east-1,m8g.16xlarge,spot,NA,2.453842,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027525 +AWS,sa-east-1,m8g.24xlarge,on_demand,NA,6.86688,USD,AWS Pricing API,2025-11-30T09:11:34.604777 +AWS,sa-east-1,m8g.24xlarge,reserved_1y,all_upfront,4.05279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:03.638566 +AWS,sa-east-1,m8g.24xlarge,reserved_1y,no_upfront,4.05279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:52.710816 +AWS,sa-east-1,m8g.24xlarge,reserved_1y,partial_upfront,4.05279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:26.492846 +AWS,sa-east-1,m8g.24xlarge,reserved_3y,all_upfront,2.701877,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:51.331558 +AWS,sa-east-1,m8g.24xlarge,reserved_3y,no_upfront,2.701877,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:01.424390 +AWS,sa-east-1,m8g.24xlarge,reserved_3y,partial_upfront,2.701877,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:35.735730 +AWS,sa-east-1,m8g.24xlarge,spot,NA,0.823839,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028877 +AWS,sa-east-1,m8g.2xlarge,on_demand,NA,0.57224,USD,AWS Pricing API,2025-11-30T09:11:26.269808 +AWS,sa-east-1,m8g.2xlarge,reserved_1y,all_upfront,0.330936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:55.256054 +AWS,sa-east-1,m8g.2xlarge,reserved_1y,no_upfront,0.330936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:44.194408 +AWS,sa-east-1,m8g.2xlarge,reserved_1y,partial_upfront,0.330936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:18.155610 +AWS,sa-east-1,m8g.2xlarge,reserved_3y,all_upfront,0.110312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:43.109769 +AWS,sa-east-1,m8g.2xlarge,reserved_3y,no_upfront,0.110312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:52.837182 +AWS,sa-east-1,m8g.2xlarge,reserved_3y,partial_upfront,0.110312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:27.395268 +AWS,sa-east-1,m8g.2xlarge,spot,NA,0.149271,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028710 +AWS,sa-east-1,m8g.48xlarge,on_demand,NA,13.73376,USD,AWS Pricing API,2025-11-30T09:10:59.462042 +AWS,sa-east-1,m8g.48xlarge,reserved_1y,all_upfront,8.51095,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:28.503711 +AWS,sa-east-1,m8g.48xlarge,reserved_1y,no_upfront,8.51095,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:17.039158 +AWS,sa-east-1,m8g.48xlarge,reserved_1y,partial_upfront,8.51095,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:51.385591 +AWS,sa-east-1,m8g.48xlarge,reserved_3y,all_upfront,8.51095,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:16.859336 +AWS,sa-east-1,m8g.48xlarge,reserved_3y,no_upfront,8.51095,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:25.566600 +AWS,sa-east-1,m8g.48xlarge,reserved_3y,partial_upfront,8.51095,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:00.625227 +AWS,sa-east-1,m8g.48xlarge,spot,NA,1.75324,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028172 +AWS,sa-east-1,m8g.4xlarge,on_demand,NA,1.14448,USD,AWS Pricing API,2025-11-30T09:11:16.235613 +AWS,sa-east-1,m8g.4xlarge,reserved_1y,all_upfront,0.958281,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:45.269212 +AWS,sa-east-1,m8g.4xlarge,reserved_1y,no_upfront,0.958281,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:34.009207 +AWS,sa-east-1,m8g.4xlarge,reserved_1y,partial_upfront,0.958281,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:08.200434 +AWS,sa-east-1,m8g.4xlarge,reserved_3y,all_upfront,0.479134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:33.290630 +AWS,sa-east-1,m8g.4xlarge,reserved_3y,no_upfront,0.479134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:42.652069 +AWS,sa-east-1,m8g.4xlarge,reserved_3y,partial_upfront,0.479134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:17.457922 +AWS,sa-east-1,m8g.4xlarge,spot,NA,0.383319,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028490 +AWS,sa-east-1,m8g.8xlarge,on_demand,NA,2.28896,USD,AWS Pricing API,2025-11-30T09:10:47.852767 +AWS,sa-east-1,m8g.8xlarge,reserved_1y,all_upfront,1.916439,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:17.028725 +AWS,sa-east-1,m8g.8xlarge,reserved_1y,no_upfront,1.916439,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:05.408775 +AWS,sa-east-1,m8g.8xlarge,reserved_1y,partial_upfront,1.916439,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:39.908269 +AWS,sa-east-1,m8g.8xlarge,reserved_3y,all_upfront,0.95822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:05.591122 +AWS,sa-east-1,m8g.8xlarge,reserved_3y,no_upfront,0.95822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:13.853182 +AWS,sa-east-1,m8g.8xlarge,reserved_3y,partial_upfront,0.95822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:49.171594 +AWS,sa-east-1,m8g.8xlarge,spot,NA,0.925545,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027929 +AWS,sa-east-1,m8g.large,on_demand,NA,0.14306,USD,AWS Pricing API,2025-11-30T09:11:36.675681 +AWS,sa-east-1,m8g.large,reserved_1y,all_upfront,0.06468,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:05.665476 +AWS,sa-east-1,m8g.large,reserved_1y,no_upfront,0.06468,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:54.759962 +AWS,sa-east-1,m8g.large,reserved_1y,partial_upfront,0.06468,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:28.517546 +AWS,sa-east-1,m8g.large,reserved_3y,all_upfront,0.06468,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:53.335943 +AWS,sa-east-1,m8g.large,reserved_3y,no_upfront,0.06468,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:03.521510 +AWS,sa-east-1,m8g.large,reserved_3y,partial_upfront,0.06468,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:37.771006 +AWS,sa-east-1,m8g.large,spot,NA,0.035502,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028912 +AWS,sa-east-1,m8g.medium,on_demand,NA,0.07153,USD,AWS Pricing API,2025-11-30T09:11:38.590974 +AWS,sa-east-1,m8g.medium,reserved_1y,all_upfront,0.046314,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:07.557010 +AWS,sa-east-1,m8g.medium,reserved_1y,no_upfront,0.046314,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:56.685035 +AWS,sa-east-1,m8g.medium,reserved_1y,partial_upfront,0.046314,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:30.443094 +AWS,sa-east-1,m8g.medium,reserved_3y,all_upfront,0.030865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:55.202212 +AWS,sa-east-1,m8g.medium,reserved_3y,no_upfront,0.030865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:05.451355 +AWS,sa-east-1,m8g.medium,reserved_3y,partial_upfront,0.030865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:39.650489 +AWS,sa-east-1,m8g.medium,spot,NA,0.009572,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028965 +AWS,sa-east-1,m8g.xlarge,on_demand,NA,0.28612,USD,AWS Pricing API,2025-11-30T09:10:57.149776 +AWS,sa-east-1,m8g.xlarge,reserved_1y,all_upfront,0.18515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:26.207680 +AWS,sa-east-1,m8g.xlarge,reserved_1y,no_upfront,0.18515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:14.682747 +AWS,sa-east-1,m8g.xlarge,reserved_1y,partial_upfront,0.18515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:49.093595 +AWS,sa-east-1,m8g.xlarge,reserved_3y,all_upfront,0.12343,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:14.604802 +AWS,sa-east-1,m8g.xlarge,reserved_3y,no_upfront,0.12343,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:23.227637 +AWS,sa-east-1,m8g.xlarge,reserved_3y,partial_upfront,0.12343,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:58.329323 +AWS,sa-east-1,m8g.xlarge,spot,NA,0.09296,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028100 +AWS,sa-east-1,m8gd.12xlarge,on_demand,NA,4.4088,USD,AWS Pricing API,2025-11-30T09:11:37.204409 +AWS,sa-east-1,m8gd.12xlarge,spot,NA,0.702385,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028924 +AWS,sa-east-1,m8gd.16xlarge,on_demand,NA,5.8784,USD,AWS Pricing API,2025-11-30T09:11:29.935179 +AWS,sa-east-1,m8gd.16xlarge,spot,NA,0.895452,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028789 +AWS,sa-east-1,m8gd.24xlarge,on_demand,NA,8.8176,USD,AWS Pricing API,2025-11-30T09:10:55.664246 +AWS,sa-east-1,m8gd.24xlarge,spot,NA,0.8818,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028096 +AWS,sa-east-1,m8gd.2xlarge,on_demand,NA,0.7348,USD,AWS Pricing API,2025-11-30T09:11:36.401020 +AWS,sa-east-1,m8gd.2xlarge,spot,NA,0.11741,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028905 +AWS,sa-east-1,m8gd.48xlarge,on_demand,NA,17.6352,USD,AWS Pricing API,2025-11-30T09:11:32.340128 +AWS,sa-east-1,m8gd.48xlarge,spot,NA,1.7635,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028849 +AWS,sa-east-1,m8gd.4xlarge,on_demand,NA,1.4696,USD,AWS Pricing API,2025-11-30T09:11:02.978655 +AWS,sa-east-1,m8gd.4xlarge,spot,NA,0.233495,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028227 +AWS,sa-east-1,m8gd.8xlarge,on_demand,NA,2.9392,USD,AWS Pricing API,2025-11-30T09:10:27.529421 +AWS,sa-east-1,m8gd.8xlarge,spot,NA,0.501329,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027533 +AWS,sa-east-1,m8gd.large,on_demand,NA,0.1837,USD,AWS Pricing API,2025-11-30T09:11:12.199676 +AWS,sa-east-1,m8gd.large,spot,NA,0.029774,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028389 +AWS,sa-east-1,m8gd.xlarge,on_demand,NA,0.3674,USD,AWS Pricing API,2025-11-30T09:11:03.660374 +AWS,sa-east-1,m8gd.xlarge,spot,NA,0.059512,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028243 +AWS,sa-east-1,p4d.24xlarge,on_demand,NA,35.5569,USD,AWS Pricing API,2025-11-30T09:10:33.136970 +AWS,sa-east-1,p4d.24xlarge,reserved_1y,all_upfront,15.0498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:02.372346 +AWS,sa-east-1,p4d.24xlarge,reserved_1y,no_upfront,15.0498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:50.468995 +AWS,sa-east-1,p4d.24xlarge,reserved_1y,partial_upfront,15.0498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:25.325022 +AWS,sa-east-1,p4d.24xlarge,reserved_3y,all_upfront,15.0498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:51.244751 +AWS,sa-east-1,p4d.24xlarge,reserved_3y,no_upfront,15.0498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:58.798993 +AWS,sa-east-1,p4d.24xlarge,reserved_3y,partial_upfront,15.0498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:34.563499 +AWS,sa-east-1,p4d.24xlarge,spot,NA,7.608921,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027600 +AWS,sa-east-1,p5.48xlarge,on_demand,NA,92.4672,USD,AWS Pricing API,2025-11-30T09:11:22.642992 +AWS,sa-east-1,p5.48xlarge,reserved_1y,all_upfront,67.90791,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:51.623490 +AWS,sa-east-1,p5.48xlarge,reserved_1y,no_upfront,67.90791,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:40.443261 +AWS,sa-east-1,p5.48xlarge,reserved_1y,partial_upfront,67.90791,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:14.517187 +AWS,sa-east-1,p5.48xlarge,reserved_3y,all_upfront,67.90791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:39.541445 +AWS,sa-east-1,p5.48xlarge,reserved_3y,no_upfront,67.90791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:49.132832 +AWS,sa-east-1,p5.48xlarge,reserved_3y,partial_upfront,67.90791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:23.772426 +AWS,sa-east-1,p5.48xlarge,spot,NA,12.133177,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028647 +AWS,sa-east-1,r4.16xlarge,on_demand,NA,8.96,USD,AWS Pricing API,2025-11-30T09:11:25.316554 +AWS,sa-east-1,r4.16xlarge,reserved_1y,all_upfront,6.4915,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:54.322369 +AWS,sa-east-1,r4.16xlarge,reserved_1y,no_upfront,6.4915,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:43.207615 +AWS,sa-east-1,r4.16xlarge,reserved_1y,partial_upfront,6.4915,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:17.222663 +AWS,sa-east-1,r4.16xlarge,reserved_3y,all_upfront,6.4915,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:42.190207 +AWS,sa-east-1,r4.16xlarge,reserved_3y,no_upfront,6.4915,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:51.876621 +AWS,sa-east-1,r4.16xlarge,reserved_3y,partial_upfront,6.4915,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:26.450438 +AWS,sa-east-1,r4.16xlarge,spot,NA,1.738325,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028687 +AWS,sa-east-1,r5.12xlarge,on_demand,NA,4.824,USD,AWS Pricing API,2025-11-30T09:10:26.599804 +AWS,sa-east-1,r5.12xlarge,reserved_1y,all_upfront,2.894146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:55.735086 +AWS,sa-east-1,r5.12xlarge,reserved_1y,no_upfront,2.894146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:43.768932 +AWS,sa-east-1,r5.12xlarge,reserved_1y,partial_upfront,2.894146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:18.715722 +AWS,sa-east-1,r5.12xlarge,reserved_3y,all_upfront,1.929382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:44.747017 +AWS,sa-east-1,r5.12xlarge,reserved_3y,no_upfront,1.929382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:51.936753 +AWS,sa-east-1,r5.12xlarge,reserved_3y,partial_upfront,1.929382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:28.006840 +AWS,sa-east-1,r5.12xlarge,spot,NA,1.789384,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027529 +AWS,sa-east-1,r5.16xlarge,on_demand,NA,6.432,USD,AWS Pricing API,2025-11-30T09:10:59.598746 +AWS,sa-east-1,r5.16xlarge,reserved_1y,all_upfront,5.145247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:28.649402 +AWS,sa-east-1,r5.16xlarge,reserved_1y,no_upfront,5.145247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:17.176565 +AWS,sa-east-1,r5.16xlarge,reserved_1y,partial_upfront,5.145247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:51.522136 +AWS,sa-east-1,r5.16xlarge,reserved_3y,all_upfront,2.572416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:16.990745 +AWS,sa-east-1,r5.16xlarge,reserved_3y,no_upfront,2.572416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:25.702305 +AWS,sa-east-1,r5.16xlarge,reserved_3y,partial_upfront,2.572416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:00.759030 +AWS,sa-east-1,r5.16xlarge,spot,NA,2.674436,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028160 +AWS,sa-east-1,r5.24xlarge,on_demand,NA,9.648,USD,AWS Pricing API,2025-11-30T09:10:41.822981 +AWS,sa-east-1,r5.24xlarge,reserved_1y,all_upfront,7.718813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:11.077904 +AWS,sa-east-1,r5.24xlarge,reserved_1y,no_upfront,7.718813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:59.308655 +AWS,sa-east-1,r5.24xlarge,reserved_1y,partial_upfront,7.718813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:33.945215 +AWS,sa-east-1,r5.24xlarge,reserved_3y,all_upfront,3.859604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:59.712335 +AWS,sa-east-1,r5.24xlarge,reserved_3y,no_upfront,3.859604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:07.715943 +AWS,sa-east-1,r5.24xlarge,reserved_3y,partial_upfront,3.859604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:43.211146 +AWS,sa-east-1,r5.24xlarge,spot,NA,3.103794,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027799 +AWS,sa-east-1,r5.2xlarge,on_demand,NA,0.804,USD,AWS Pricing API,2025-11-30T12:52:29.361177 +AWS,sa-east-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.361304 +AWS,sa-east-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.507,USD,AWS Pricing API,2025-11-30T12:52:29.361369 +AWS,sa-east-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.241,USD,AWS Pricing API,2025-11-30T12:52:29.361355 +AWS,sa-east-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.361344 +AWS,sa-east-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.347,USD,AWS Pricing API,2025-11-30T12:52:29.361330 +AWS,sa-east-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.161,USD,AWS Pricing API,2025-11-30T12:52:29.361271 +AWS,sa-east-1,r5.2xlarge,spot,NA,0.22715,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:32.780758 +AWS,sa-east-1,r5.4xlarge,on_demand,NA,1.608,USD,AWS Pricing API,2025-11-30T09:11:34.333151 +AWS,sa-east-1,r5.4xlarge,reserved_1y,all_upfront,1.165,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:03.368431 +AWS,sa-east-1,r5.4xlarge,reserved_1y,no_upfront,1.165,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:52.440640 +AWS,sa-east-1,r5.4xlarge,reserved_1y,partial_upfront,1.165,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:26.222615 +AWS,sa-east-1,r5.4xlarge,reserved_3y,all_upfront,1.165,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:51.067111 +AWS,sa-east-1,r5.4xlarge,reserved_3y,no_upfront,1.165,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:01.146680 +AWS,sa-east-1,r5.4xlarge,reserved_3y,partial_upfront,1.165,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:35.469303 +AWS,sa-east-1,r5.4xlarge,spot,NA,0.614618,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028873 +AWS,sa-east-1,r5.8xlarge,on_demand,NA,3.216,USD,AWS Pricing API,2025-11-30T09:11:17.313553 +AWS,sa-east-1,r5.8xlarge,reserved_1y,all_upfront,2.026,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:46.350495 +AWS,sa-east-1,r5.8xlarge,reserved_1y,no_upfront,2.026,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:35.109020 +AWS,sa-east-1,r5.8xlarge,reserved_1y,partial_upfront,2.026,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:09.269391 +AWS,sa-east-1,r5.8xlarge,reserved_3y,all_upfront,2.026,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:34.362263 +AWS,sa-east-1,r5.8xlarge,reserved_3y,no_upfront,2.026,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:43.756178 +AWS,sa-east-1,r5.8xlarge,reserved_3y,partial_upfront,2.026,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:18.533041 +AWS,sa-east-1,r5.8xlarge,spot,NA,1.270046,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028523 +AWS,sa-east-1,r5.large,on_demand,NA,0.201,USD,AWS Pricing API,2025-11-30T09:10:53.477407 +AWS,sa-east-1,r5.large,reserved_1y,all_upfront,0.127,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:22.544127 +AWS,sa-east-1,r5.large,reserved_1y,no_upfront,0.127,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:11.020866 +AWS,sa-east-1,r5.large,reserved_1y,partial_upfront,0.127,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:45.452188 +AWS,sa-east-1,r5.large,reserved_3y,all_upfront,0.127,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:11.030608 +AWS,sa-east-1,r5.large,reserved_3y,no_upfront,0.127,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:19.496817 +AWS,sa-east-1,r5.large,reserved_3y,partial_upfront,0.127,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:54.690467 +AWS,sa-east-1,r5.large,spot,NA,0.082295,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028029 +AWS,sa-east-1,r5.xlarge,on_demand,NA,0.402,USD,AWS Pricing API,2025-11-30T09:10:30.737580 +AWS,sa-east-1,r5.xlarge,reserved_1y,all_upfront,0.291,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:59.935762 +AWS,sa-east-1,r5.xlarge,reserved_1y,no_upfront,0.291,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:48.019685 +AWS,sa-east-1,r5.xlarge,reserved_1y,partial_upfront,0.291,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:22.881154 +AWS,sa-east-1,r5.xlarge,reserved_3y,all_upfront,0.291,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:48.845884 +AWS,sa-east-1,r5.xlarge,reserved_3y,no_upfront,0.291,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:56.329682 +AWS,sa-east-1,r5.xlarge,reserved_3y,partial_upfront,0.291,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:32.139712 +AWS,sa-east-1,r5.xlarge,spot,NA,0.090189,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027579 +AWS,sa-east-1,r5a.12xlarge,on_demand,NA,4.344,USD,AWS Pricing API,2025-11-30T09:11:25.453159 +AWS,sa-east-1,r5a.12xlarge,reserved_1y,all_upfront,2.554224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:54.456663 +AWS,sa-east-1,r5a.12xlarge,reserved_1y,no_upfront,2.554224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:43.346661 +AWS,sa-east-1,r5a.12xlarge,reserved_1y,partial_upfront,2.554224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:17.356315 +AWS,sa-east-1,r5a.12xlarge,reserved_3y,all_upfront,0.851408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:42.322617 +AWS,sa-east-1,r5a.12xlarge,reserved_3y,no_upfront,0.851408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:52.013973 +AWS,sa-east-1,r5a.12xlarge,reserved_3y,partial_upfront,0.851408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:26.584575 +AWS,sa-east-1,r5a.12xlarge,spot,NA,1.408425,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028706 +AWS,sa-east-1,r5a.16xlarge,on_demand,NA,5.792,USD,AWS Pricing API,2025-11-30T09:11:33.531880 +AWS,sa-east-1,r5a.16xlarge,reserved_1y,all_upfront,4.633228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:02.546557 +AWS,sa-east-1,r5a.16xlarge,reserved_1y,no_upfront,4.633228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:51.625840 +AWS,sa-east-1,r5a.16xlarge,reserved_1y,partial_upfront,4.633228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:25.417391 +AWS,sa-east-1,r5a.16xlarge,reserved_3y,all_upfront,2.316409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:50.263571 +AWS,sa-east-1,r5a.16xlarge,reserved_3y,no_upfront,2.316409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:00.312915 +AWS,sa-east-1,r5a.16xlarge,reserved_3y,partial_upfront,2.316409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:34.666263 +AWS,sa-east-1,r5a.16xlarge,spot,NA,3.340486,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028857 +AWS,sa-east-1,r5a.24xlarge,on_demand,NA,8.688,USD,AWS Pricing API,2025-11-30T09:11:27.476219 +AWS,sa-east-1,r5a.24xlarge,reserved_1y,all_upfront,6.00237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:56.471996 +AWS,sa-east-1,r5a.24xlarge,reserved_1y,no_upfront,6.00237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:45.450512 +AWS,sa-east-1,r5a.24xlarge,reserved_1y,partial_upfront,6.00237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:19.362989 +AWS,sa-east-1,r5a.24xlarge,reserved_3y,all_upfront,4.001457,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:44.314963 +AWS,sa-east-1,r5a.24xlarge,reserved_3y,no_upfront,4.001457,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:54.078377 +AWS,sa-east-1,r5a.24xlarge,reserved_3y,partial_upfront,4.001457,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:28.603502 +AWS,sa-east-1,r5a.24xlarge,spot,NA,1.380894,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028722 +AWS,sa-east-1,r5a.2xlarge,on_demand,NA,0.724,USD,AWS Pricing API,2025-11-30T09:11:38.186813 +AWS,sa-east-1,r5a.2xlarge,reserved_1y,all_upfront,0.500114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:07.156864 +AWS,sa-east-1,r5a.2xlarge,reserved_1y,no_upfront,0.500114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:56.283342 +AWS,sa-east-1,r5a.2xlarge,reserved_1y,partial_upfront,0.500114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:30.034696 +AWS,sa-east-1,r5a.2xlarge,reserved_3y,all_upfront,0.333371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:54.793786 +AWS,sa-east-1,r5a.2xlarge,reserved_3y,no_upfront,0.333371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:05.032097 +AWS,sa-east-1,r5a.2xlarge,reserved_3y,partial_upfront,0.333371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:39.247238 +AWS,sa-east-1,r5a.2xlarge,spot,NA,0.272631,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028953 +AWS,sa-east-1,r5a.4xlarge,on_demand,NA,1.448,USD,AWS Pricing API,2025-11-30T09:11:18.308124 +AWS,sa-east-1,r5a.4xlarge,reserved_1y,all_upfront,1.05,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:47.297531 +AWS,sa-east-1,r5a.4xlarge,reserved_1y,no_upfront,1.05,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:36.066456 +AWS,sa-east-1,r5a.4xlarge,reserved_1y,partial_upfront,1.05,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:10.217538 +AWS,sa-east-1,r5a.4xlarge,reserved_3y,all_upfront,1.05,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:35.305671 +AWS,sa-east-1,r5a.4xlarge,reserved_3y,no_upfront,1.05,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:44.739982 +AWS,sa-east-1,r5a.4xlarge,reserved_3y,partial_upfront,1.05,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:19.468234 +AWS,sa-east-1,r5a.4xlarge,spot,NA,0.572653,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028556 +AWS,sa-east-1,r5a.8xlarge,on_demand,NA,2.896,USD,AWS Pricing API,2025-11-30T09:11:00.682177 +AWS,sa-east-1,r5a.8xlarge,reserved_1y,all_upfront,1.737836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:29.720346 +AWS,sa-east-1,r5a.8xlarge,reserved_1y,no_upfront,1.737836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:18.271180 +AWS,sa-east-1,r5a.8xlarge,reserved_1y,partial_upfront,1.737836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:52.612937 +AWS,sa-east-1,r5a.8xlarge,reserved_3y,all_upfront,1.158612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:18.046620 +AWS,sa-east-1,r5a.8xlarge,reserved_3y,no_upfront,1.158612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:26.800690 +AWS,sa-east-1,r5a.8xlarge,reserved_3y,partial_upfront,1.158612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:01.846626 +AWS,sa-east-1,r5a.8xlarge,spot,NA,1.338772,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028207 +AWS,sa-east-1,r5a.large,on_demand,NA,0.181,USD,AWS Pricing API,2025-11-30T09:11:07.157865 +AWS,sa-east-1,r5a.large,reserved_1y,all_upfront,0.106393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:36.206870 +AWS,sa-east-1,r5a.large,reserved_1y,no_upfront,0.106393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:24.890910 +AWS,sa-east-1,r5a.large,reserved_1y,partial_upfront,0.106393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:59.114159 +AWS,sa-east-1,r5a.large,reserved_3y,all_upfront,0.035464,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:24.414458 +AWS,sa-east-1,r5a.large,reserved_3y,no_upfront,0.035464,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:33.401860 +AWS,sa-east-1,r5a.large,reserved_3y,partial_upfront,0.035464,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:08.403312 +AWS,sa-east-1,r5a.large,spot,NA,0.063442,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028287 +AWS,sa-east-1,r5a.xlarge,on_demand,NA,0.362,USD,AWS Pricing API,2025-11-30T09:11:17.771234 +AWS,sa-east-1,r5a.xlarge,reserved_1y,all_upfront,0.228,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:46.757032 +AWS,sa-east-1,r5a.xlarge,reserved_1y,no_upfront,0.228,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:35.522382 +AWS,sa-east-1,r5a.xlarge,reserved_1y,partial_upfront,0.228,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:09.681121 +AWS,sa-east-1,r5a.xlarge,reserved_3y,all_upfront,0.228,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:34.763184 +AWS,sa-east-1,r5a.xlarge,reserved_3y,no_upfront,0.228,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:44.186263 +AWS,sa-east-1,r5a.xlarge,reserved_3y,partial_upfront,0.228,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:18.933384 +AWS,sa-east-1,r5a.xlarge,spot,NA,0.13121,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028536 +AWS,sa-east-1,r5d.12xlarge,on_demand,NA,5.472,USD,AWS Pricing API,2025-11-30T09:11:31.005748 +AWS,sa-east-1,r5d.12xlarge,reserved_1y,all_upfront,3.21758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:59.981479 +AWS,sa-east-1,r5d.12xlarge,reserved_1y,no_upfront,3.21758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:49.021635 +AWS,sa-east-1,r5d.12xlarge,reserved_1y,partial_upfront,3.21758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:22.874175 +AWS,sa-east-1,r5d.12xlarge,reserved_3y,all_upfront,1.072527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:47.752929 +AWS,sa-east-1,r5d.12xlarge,reserved_3y,no_upfront,1.072527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:57.690550 +AWS,sa-east-1,r5d.12xlarge,reserved_3y,partial_upfront,1.072527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:32.127145 +AWS,sa-east-1,r5d.12xlarge,spot,NA,3.638751,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028807 +AWS,sa-east-1,r5d.16xlarge,on_demand,NA,7.296,USD,AWS Pricing API,2025-11-30T09:10:55.800019 +AWS,sa-east-1,r5d.16xlarge,reserved_1y,all_upfront,4.290068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:24.840419 +AWS,sa-east-1,r5d.16xlarge,reserved_1y,no_upfront,4.290068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:13.323649 +AWS,sa-east-1,r5d.16xlarge,reserved_1y,partial_upfront,4.290068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:47.740693 +AWS,sa-east-1,r5d.16xlarge,reserved_3y,all_upfront,1.430023,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:13.284182 +AWS,sa-east-1,r5d.16xlarge,reserved_3y,no_upfront,1.430023,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:21.848400 +AWS,sa-east-1,r5d.16xlarge,reserved_3y,partial_upfront,1.430023,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:56.967435 +AWS,sa-east-1,r5d.16xlarge,spot,NA,5.066611,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028065 +AWS,sa-east-1,r5d.24xlarge,on_demand,NA,10.944,USD,AWS Pricing API,2025-11-30T09:11:25.590491 +AWS,sa-east-1,r5d.24xlarge,reserved_1y,all_upfront,6.566219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:54.589699 +AWS,sa-east-1,r5d.24xlarge,reserved_1y,no_upfront,6.566219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:43.483388 +AWS,sa-east-1,r5d.24xlarge,reserved_1y,partial_upfront,6.566219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:17.488866 +AWS,sa-east-1,r5d.24xlarge,reserved_3y,all_upfront,4.377406,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:42.453814 +AWS,sa-east-1,r5d.24xlarge,reserved_3y,no_upfront,4.377406,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:52.150225 +AWS,sa-east-1,r5d.24xlarge,reserved_3y,partial_upfront,4.377406,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:26.718853 +AWS,sa-east-1,r5d.24xlarge,spot,NA,6.513596,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028702 +AWS,sa-east-1,r5d.2xlarge,on_demand,NA,0.912,USD,AWS Pricing API,2025-11-30T09:11:24.240262 +AWS,sa-east-1,r5d.2xlarge,reserved_1y,all_upfront,0.634466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:53.229444 +AWS,sa-east-1,r5d.2xlarge,reserved_1y,no_upfront,0.634466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:42.080817 +AWS,sa-east-1,r5d.2xlarge,reserved_1y,partial_upfront,0.634466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:16.135276 +AWS,sa-east-1,r5d.2xlarge,reserved_3y,all_upfront,0.422822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:41.137052 +AWS,sa-east-1,r5d.2xlarge,reserved_3y,no_upfront,0.422822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:50.777903 +AWS,sa-east-1,r5d.2xlarge,reserved_3y,partial_upfront,0.422822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:25.384789 +AWS,sa-east-1,r5d.2xlarge,spot,NA,0.15291,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028671 +AWS,sa-east-1,r5d.4xlarge,on_demand,NA,1.824,USD,AWS Pricing API,2025-11-30T09:10:55.248359 +AWS,sa-east-1,r5d.4xlarge,reserved_1y,all_upfront,1.333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:24.299664 +AWS,sa-east-1,r5d.4xlarge,reserved_1y,no_upfront,1.333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:12.781438 +AWS,sa-east-1,r5d.4xlarge,reserved_1y,partial_upfront,1.333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:47.203365 +AWS,sa-east-1,r5d.4xlarge,reserved_3y,all_upfront,1.333,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:12.758504 +AWS,sa-east-1,r5d.4xlarge,reserved_3y,no_upfront,1.333,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:21.293186 +AWS,sa-east-1,r5d.4xlarge,reserved_3y,partial_upfront,1.333,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:56.428076 +AWS,sa-east-1,r5d.4xlarge,spot,NA,1.00795,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028073 +AWS,sa-east-1,r5d.8xlarge,on_demand,NA,3.648,USD,AWS Pricing API,2025-11-30T09:10:54.831798 +AWS,sa-east-1,r5d.8xlarge,reserved_1y,all_upfront,2.298,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:23.894385 +AWS,sa-east-1,r5d.8xlarge,reserved_1y,no_upfront,2.298,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:12.374342 +AWS,sa-east-1,r5d.8xlarge,reserved_1y,partial_upfront,2.298,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:46.799132 +AWS,sa-east-1,r5d.8xlarge,reserved_3y,all_upfront,2.298,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:12.351836 +AWS,sa-east-1,r5d.8xlarge,reserved_3y,no_upfront,2.298,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:20.868786 +AWS,sa-east-1,r5d.8xlarge,reserved_3y,partial_upfront,2.298,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:56.023664 +AWS,sa-east-1,r5d.8xlarge,spot,NA,2.600914,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028045 +AWS,sa-east-1,r5d.large,on_demand,NA,0.228,USD,AWS Pricing API,2025-11-30T09:11:19.534965 +AWS,sa-east-1,r5d.large,reserved_1y,all_upfront,0.134018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:48.515697 +AWS,sa-east-1,r5d.large,reserved_1y,no_upfront,0.134018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:37.308609 +AWS,sa-east-1,r5d.large,reserved_1y,partial_upfront,0.134018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:11.422569 +AWS,sa-east-1,r5d.large,reserved_3y,all_upfront,0.044673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:36.509956 +AWS,sa-east-1,r5d.large,reserved_3y,no_upfront,0.044673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:45.972265 +AWS,sa-east-1,r5d.large,reserved_3y,partial_upfront,0.044673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:20.677122 +AWS,sa-east-1,r5d.large,spot,NA,0.063646,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028604 +AWS,sa-east-1,r5d.xlarge,on_demand,NA,0.456,USD,AWS Pricing API,2025-11-30T09:10:37.044924 +AWS,sa-east-1,r5d.xlarge,reserved_1y,all_upfront,0.333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:06.336752 +AWS,sa-east-1,r5d.xlarge,reserved_1y,no_upfront,0.333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:54.482565 +AWS,sa-east-1,r5d.xlarge,reserved_1y,partial_upfront,0.333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:29.223017 +AWS,sa-east-1,r5d.xlarge,reserved_3y,all_upfront,0.333,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:55.078505 +AWS,sa-east-1,r5d.xlarge,reserved_3y,no_upfront,0.333,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:02.826634 +AWS,sa-east-1,r5d.xlarge,reserved_3y,partial_upfront,0.333,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:38.472386 +AWS,sa-east-1,r5d.xlarge,spot,NA,0.12138,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027677 +AWS,sa-east-1,r5n.12xlarge,on_demand,NA,5.664,USD,AWS Pricing API,2025-11-30T09:11:15.159108 +AWS,sa-east-1,r5n.12xlarge,reserved_1y,all_upfront,3.398201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:44.183132 +AWS,sa-east-1,r5n.12xlarge,reserved_1y,no_upfront,3.398201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:32.913433 +AWS,sa-east-1,r5n.12xlarge,reserved_1y,partial_upfront,3.398201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:07.108147 +AWS,sa-east-1,r5n.12xlarge,reserved_3y,all_upfront,2.2654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:32.229303 +AWS,sa-east-1,r5n.12xlarge,reserved_3y,no_upfront,2.2654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:41.548385 +AWS,sa-east-1,r5n.12xlarge,reserved_3y,partial_upfront,2.2654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:16.381487 +AWS,sa-east-1,r5n.12xlarge,spot,NA,3.890092,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028478 +AWS,sa-east-1,r5n.16xlarge,on_demand,NA,7.552,USD,AWS Pricing API,2025-11-30T09:11:30.333568 +AWS,sa-east-1,r5n.16xlarge,reserved_1y,all_upfront,3.111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:59.298895 +AWS,sa-east-1,r5n.16xlarge,reserved_1y,no_upfront,3.111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:48.341652 +AWS,sa-east-1,r5n.16xlarge,reserved_1y,partial_upfront,3.111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:22.203640 +AWS,sa-east-1,r5n.16xlarge,reserved_3y,all_upfront,3.111,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:47.093100 +AWS,sa-east-1,r5n.16xlarge,reserved_3y,no_upfront,3.111,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:56.996398 +AWS,sa-east-1,r5n.16xlarge,reserved_3y,partial_upfront,3.111,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:31.458805 +AWS,sa-east-1,r5n.16xlarge,spot,NA,5.20149,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028813 +AWS,sa-east-1,r5n.24xlarge,on_demand,NA,11.328,USD,AWS Pricing API,2025-11-30T09:10:52.138734 +AWS,sa-east-1,r5n.24xlarge,reserved_1y,all_upfront,7.80879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:21.210283 +AWS,sa-east-1,r5n.24xlarge,reserved_1y,no_upfront,7.80879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:09.661250 +AWS,sa-east-1,r5n.24xlarge,reserved_1y,partial_upfront,7.80879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:44.093986 +AWS,sa-east-1,r5n.24xlarge,reserved_3y,all_upfront,2.60293,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:09.703675 +AWS,sa-east-1,r5n.24xlarge,reserved_3y,no_upfront,2.60293,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:18.119239 +AWS,sa-east-1,r5n.24xlarge,reserved_3y,partial_upfront,2.60293,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:53.349016 +AWS,sa-east-1,r5n.24xlarge,spot,NA,6.756621,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028001 +AWS,sa-east-1,r5n.2xlarge,on_demand,NA,0.944,USD,AWS Pricing API,2025-11-30T09:10:32.867488 +AWS,sa-east-1,r5n.2xlarge,reserved_1y,all_upfront,0.555023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:02.099419 +AWS,sa-east-1,r5n.2xlarge,reserved_1y,no_upfront,0.555023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:50.199154 +AWS,sa-east-1,r5n.2xlarge,reserved_1y,partial_upfront,0.555023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:25.052011 +AWS,sa-east-1,r5n.2xlarge,reserved_3y,all_upfront,0.185008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:50.967070 +AWS,sa-east-1,r5n.2xlarge,reserved_3y,no_upfront,0.185008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:58.526015 +AWS,sa-east-1,r5n.2xlarge,reserved_3y,partial_upfront,0.185008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:34.296444 +AWS,sa-east-1,r5n.2xlarge,spot,NA,0.231152,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027596 +AWS,sa-east-1,r5n.4xlarge,on_demand,NA,1.888,USD,AWS Pricing API,2025-11-30T09:11:28.847600 +AWS,sa-east-1,r5n.4xlarge,reserved_1y,all_upfront,1.639909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:57.822008 +AWS,sa-east-1,r5n.4xlarge,reserved_1y,no_upfront,1.639909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:46.821589 +AWS,sa-east-1,r5n.4xlarge,reserved_1y,partial_upfront,1.639909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:20.714953 +AWS,sa-east-1,r5n.4xlarge,reserved_3y,all_upfront,0.81997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:45.644059 +AWS,sa-east-1,r5n.4xlarge,reserved_3y,no_upfront,0.81997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:55.467844 +AWS,sa-east-1,r5n.4xlarge,reserved_3y,partial_upfront,0.81997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:29.969906 +AWS,sa-east-1,r5n.4xlarge,spot,NA,1.102044,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028761 +AWS,sa-east-1,r5n.8xlarge,on_demand,NA,3.776,USD,AWS Pricing API,2025-11-30T09:11:15.022765 +AWS,sa-east-1,r5n.8xlarge,reserved_1y,all_upfront,4.821347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:44.048032 +AWS,sa-east-1,r5n.8xlarge,reserved_1y,no_upfront,4.821347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:32.777952 +AWS,sa-east-1,r5n.8xlarge,reserved_1y,partial_upfront,4.821347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:06.969688 +AWS,sa-east-1,r5n.8xlarge,reserved_3y,all_upfront,1.607116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:32.097329 +AWS,sa-east-1,r5n.8xlarge,reserved_3y,no_upfront,1.607116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:41.409594 +AWS,sa-east-1,r5n.8xlarge,reserved_3y,partial_upfront,1.607116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:16.247409 +AWS,sa-east-1,r5n.8xlarge,spot,NA,2.463859,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028482 +AWS,sa-east-1,r5n.large,on_demand,NA,0.236,USD,AWS Pricing API,2025-11-30T09:11:36.130964 +AWS,sa-east-1,r5n.large,reserved_1y,all_upfront,0.162671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:05.123458 +AWS,sa-east-1,r5n.large,reserved_1y,no_upfront,0.162671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:54.212917 +AWS,sa-east-1,r5n.large,reserved_1y,partial_upfront,0.162671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:27.973858 +AWS,sa-east-1,r5n.large,reserved_3y,all_upfront,0.054224,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:52.794085 +AWS,sa-east-1,r5n.large,reserved_3y,no_upfront,0.054224,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:02.951700 +AWS,sa-east-1,r5n.large,reserved_3y,partial_upfront,0.054224,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:37.231633 +AWS,sa-east-1,r5n.large,spot,NA,0.077046,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028897 +AWS,sa-east-1,r5n.metal,on_demand,NA,11.328,USD,AWS Pricing API,2025-11-30T09:11:15.969588 +AWS,sa-east-1,r5n.metal,reserved_1y,all_upfront,5.313,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:44.995128 +AWS,sa-east-1,r5n.metal,reserved_1y,no_upfront,5.313,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:33.735120 +AWS,sa-east-1,r5n.metal,reserved_1y,partial_upfront,5.313,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:07.922921 +AWS,sa-east-1,r5n.metal,reserved_3y,all_upfront,5.313,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:33.027867 +AWS,sa-east-1,r5n.metal,reserved_3y,no_upfront,5.313,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:42.379247 +AWS,sa-east-1,r5n.metal,reserved_3y,partial_upfront,5.313,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:17.187133 +AWS,sa-east-1,r5n.metal,spot,NA,1.28257,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028519 +AWS,sa-east-1,r5n.xlarge,on_demand,NA,0.472,USD,AWS Pricing API,2025-11-30T09:10:54.143664 +AWS,sa-east-1,r5n.xlarge,reserved_1y,all_upfront,0.349,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:23.217357 +AWS,sa-east-1,r5n.xlarge,reserved_1y,no_upfront,0.349,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:11.693671 +AWS,sa-east-1,r5n.xlarge,reserved_1y,partial_upfront,0.349,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:46.119335 +AWS,sa-east-1,r5n.xlarge,reserved_3y,all_upfront,0.349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:11.693543 +AWS,sa-east-1,r5n.xlarge,reserved_3y,no_upfront,0.349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:20.180720 +AWS,sa-east-1,r5n.xlarge,reserved_3y,partial_upfront,0.349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:55.356419 +AWS,sa-east-1,r5n.xlarge,spot,NA,0.14977,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028049 +AWS,sa-east-1,r6g.12xlarge,on_demand,NA,3.8592,USD,AWS Pricing API,2025-11-30T09:10:47.313382 +AWS,sa-east-1,r6g.12xlarge,reserved_1y,all_upfront,3.087325,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:16.495914 +AWS,sa-east-1,r6g.12xlarge,reserved_1y,no_upfront,3.087325,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:04.850980 +AWS,sa-east-1,r6g.12xlarge,reserved_1y,partial_upfront,3.087325,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:39.372475 +AWS,sa-east-1,r6g.12xlarge,reserved_3y,all_upfront,1.543642,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:05.050362 +AWS,sa-east-1,r6g.12xlarge,reserved_3y,no_upfront,1.543642,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:13.287161 +AWS,sa-east-1,r6g.12xlarge,reserved_3y,partial_upfront,1.543642,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:48.633494 +AWS,sa-east-1,r6g.12xlarge,spot,NA,1.06992,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027918 +AWS,sa-east-1,r6g.16xlarge,on_demand,NA,5.1456,USD,AWS Pricing API,2025-11-30T09:10:44.145159 +AWS,sa-east-1,r6g.16xlarge,reserved_1y,all_upfront,3.087421,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:13.382181 +AWS,sa-east-1,r6g.16xlarge,reserved_1y,no_upfront,3.087421,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:01.661065 +AWS,sa-east-1,r6g.16xlarge,reserved_1y,partial_upfront,3.087421,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:36.233974 +AWS,sa-east-1,r6g.16xlarge,reserved_3y,all_upfront,2.058274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:01.963532 +AWS,sa-east-1,r6g.16xlarge,reserved_3y,no_upfront,2.058274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:10.102423 +AWS,sa-east-1,r6g.16xlarge,reserved_3y,partial_upfront,2.058274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:45.516054 +AWS,sa-east-1,r6g.16xlarge,spot,NA,1.616371,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027873 +AWS,sa-east-1,r6g.2xlarge,on_demand,NA,0.6432,USD,AWS Pricing API,2025-11-30T09:11:37.069318 +AWS,sa-east-1,r6g.2xlarge,reserved_1y,all_upfront,0.378196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:06.067522 +AWS,sa-east-1,r6g.2xlarge,reserved_1y,no_upfront,0.378196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:55.170471 +AWS,sa-east-1,r6g.2xlarge,reserved_1y,partial_upfront,0.378196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:28.938211 +AWS,sa-east-1,r6g.2xlarge,reserved_3y,all_upfront,0.126065,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:53.727341 +AWS,sa-east-1,r6g.2xlarge,reserved_3y,no_upfront,0.126065,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:03.931273 +AWS,sa-east-1,r6g.2xlarge,reserved_3y,partial_upfront,0.126065,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:38.167678 +AWS,sa-east-1,r6g.2xlarge,spot,NA,0.281958,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028945 +AWS,sa-east-1,r6g.4xlarge,on_demand,NA,1.2864,USD,AWS Pricing API,2025-11-30T09:10:33.948423 +AWS,sa-east-1,r6g.4xlarge,reserved_1y,all_upfront,0.8104,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:03.209341 +AWS,sa-east-1,r6g.4xlarge,reserved_1y,no_upfront,0.8104,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:51.295859 +AWS,sa-east-1,r6g.4xlarge,reserved_1y,partial_upfront,0.8104,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:26.133975 +AWS,sa-east-1,r6g.4xlarge,reserved_3y,all_upfront,0.8104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:52.040938 +AWS,sa-east-1,r6g.4xlarge,reserved_3y,no_upfront,0.8104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:59.621439 +AWS,sa-east-1,r6g.4xlarge,reserved_3y,partial_upfront,0.8104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:35.372525 +AWS,sa-east-1,r6g.4xlarge,spot,NA,0.533044,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027628 +AWS,sa-east-1,r6g.8xlarge,on_demand,NA,2.5728,USD,AWS Pricing API,2025-11-30T09:11:13.009082 +AWS,sa-east-1,r6g.8xlarge,reserved_1y,all_upfront,1.8664,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:42.004767 +AWS,sa-east-1,r6g.8xlarge,reserved_1y,no_upfront,1.8664,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:30.745915 +AWS,sa-east-1,r6g.8xlarge,reserved_1y,partial_upfront,1.8664,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:04.943259 +AWS,sa-east-1,r6g.8xlarge,reserved_3y,all_upfront,1.8664,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:30.125042 +AWS,sa-east-1,r6g.8xlarge,reserved_3y,no_upfront,1.8664,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:39.338327 +AWS,sa-east-1,r6g.8xlarge,reserved_3y,partial_upfront,1.8664,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:14.212155 +AWS,sa-east-1,r6g.8xlarge,spot,NA,0.803016,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028439 +AWS,sa-east-1,r6g.large,on_demand,NA,0.1608,USD,AWS Pricing API,2025-11-30T09:10:51.594551 +AWS,sa-east-1,r6g.large,reserved_1y,all_upfront,0.111094,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:20.666500 +AWS,sa-east-1,r6g.large,reserved_1y,no_upfront,0.111094,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:09.113944 +AWS,sa-east-1,r6g.large,reserved_1y,partial_upfront,0.111094,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:43.540109 +AWS,sa-east-1,r6g.large,reserved_3y,all_upfront,0.074031,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:09.174807 +AWS,sa-east-1,r6g.large,reserved_3y,no_upfront,0.074031,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:17.558022 +AWS,sa-east-1,r6g.large,reserved_3y,partial_upfront,0.074031,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:52.814467 +AWS,sa-east-1,r6g.large,spot,NA,0.089506,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028013 +AWS,sa-east-1,r6g.xlarge,on_demand,NA,0.3216,USD,AWS Pricing API,2025-11-30T09:10:27.000666 +AWS,sa-east-1,r6g.xlarge,reserved_1y,all_upfront,0.192961,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:56.145418 +AWS,sa-east-1,r6g.xlarge,reserved_1y,no_upfront,0.192961,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:44.208288 +AWS,sa-east-1,r6g.xlarge,reserved_1y,partial_upfront,0.192961,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:19.119763 +AWS,sa-east-1,r6g.xlarge,reserved_3y,all_upfront,0.128654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:45.147759 +AWS,sa-east-1,r6g.xlarge,reserved_3y,no_upfront,0.128654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:52.354013 +AWS,sa-east-1,r6g.xlarge,reserved_3y,partial_upfront,0.128654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:28.410588 +AWS,sa-east-1,r6g.xlarge,spot,NA,0.083463,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027520 +AWS,sa-east-1,r6gd.12xlarge,on_demand,NA,4.3776,USD,AWS Pricing API,2025-11-30T09:11:23.442348 +AWS,sa-east-1,r6gd.12xlarge,reserved_1y,all_upfront,2.626542,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:52.424387 +AWS,sa-east-1,r6gd.12xlarge,reserved_1y,no_upfront,2.626542,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:41.258884 +AWS,sa-east-1,r6gd.12xlarge,reserved_1y,partial_upfront,2.626542,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:15.331365 +AWS,sa-east-1,r6gd.12xlarge,reserved_3y,all_upfront,1.751047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:40.339808 +AWS,sa-east-1,r6gd.12xlarge,reserved_3y,no_upfront,1.751047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:49.957077 +AWS,sa-east-1,r6gd.12xlarge,reserved_3y,partial_upfront,1.751047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:24.570717 +AWS,sa-east-1,r6gd.12xlarge,spot,NA,2.327198,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028631 +AWS,sa-east-1,r6gd.16xlarge,on_demand,NA,5.8368,USD,AWS Pricing API,2025-11-30T09:10:50.001251 +AWS,sa-east-1,r6gd.16xlarge,reserved_1y,all_upfront,3.432078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:19.180416 +AWS,sa-east-1,r6gd.16xlarge,reserved_1y,no_upfront,3.432078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:07.593165 +AWS,sa-east-1,r6gd.16xlarge,reserved_1y,partial_upfront,3.432078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:42.053909 +AWS,sa-east-1,r6gd.16xlarge,reserved_3y,all_upfront,1.144026,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:07.707349 +AWS,sa-east-1,r6gd.16xlarge,reserved_3y,no_upfront,1.144026,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:16.039800 +AWS,sa-east-1,r6gd.16xlarge,reserved_3y,partial_upfront,1.144026,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:51.339184 +AWS,sa-east-1,r6gd.16xlarge,spot,NA,2.985852,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027969 +AWS,sa-east-1,r6gd.2xlarge,on_demand,NA,0.7296,USD,AWS Pricing API,2025-11-30T09:10:28.464005 +AWS,sa-east-1,r6gd.2xlarge,reserved_1y,all_upfront,0.5333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:57.639086 +AWS,sa-east-1,r6gd.2xlarge,reserved_1y,no_upfront,0.5333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:45.695005 +AWS,sa-east-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.5333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:20.597360 +AWS,sa-east-1,r6gd.2xlarge,reserved_3y,all_upfront,0.5333,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:46.600734 +AWS,sa-east-1,r6gd.2xlarge,reserved_3y,no_upfront,0.5333,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:53.957652 +AWS,sa-east-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.5333,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:29.878104 +AWS,sa-east-1,r6gd.2xlarge,spot,NA,0.126873,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027549 +AWS,sa-east-1,r6gd.4xlarge,on_demand,NA,1.4592,USD,AWS Pricing API,2025-11-30T09:10:34.907926 +AWS,sa-east-1,r6gd.4xlarge,reserved_1y,all_upfront,1.015777,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:04.162920 +AWS,sa-east-1,r6gd.4xlarge,reserved_1y,no_upfront,1.015777,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:52.275443 +AWS,sa-east-1,r6gd.4xlarge,reserved_1y,partial_upfront,1.015777,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:27.074829 +AWS,sa-east-1,r6gd.4xlarge,reserved_3y,all_upfront,0.677192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:52.958628 +AWS,sa-east-1,r6gd.4xlarge,reserved_3y,no_upfront,0.677192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:00.594253 +AWS,sa-east-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.677192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:36.326552 +AWS,sa-east-1,r6gd.4xlarge,spot,NA,0.488367,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027661 +AWS,sa-east-1,r6gd.8xlarge,on_demand,NA,2.9184,USD,AWS Pricing API,2025-11-30T09:10:29.261975 +AWS,sa-east-1,r6gd.8xlarge,reserved_1y,all_upfront,1.990868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:07:58.448858 +AWS,sa-east-1,r6gd.8xlarge,reserved_1y,no_upfront,1.990868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:46.516741 +AWS,sa-east-1,r6gd.8xlarge,reserved_1y,partial_upfront,1.990868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:21.399622 +AWS,sa-east-1,r6gd.8xlarge,reserved_3y,all_upfront,0.663623,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:47.396074 +AWS,sa-east-1,r6gd.8xlarge,reserved_3y,no_upfront,0.663623,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:54.792167 +AWS,sa-east-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.663623,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:30.673994 +AWS,sa-east-1,r6gd.8xlarge,spot,NA,1.510757,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027554 +AWS,sa-east-1,r6gd.large,on_demand,NA,0.1824,USD,AWS Pricing API,2025-11-30T09:11:04.885847 +AWS,sa-east-1,r6gd.large,reserved_1y,all_upfront,0.12697,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:33.925222 +AWS,sa-east-1,r6gd.large,reserved_1y,no_upfront,0.12697,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:22.578887 +AWS,sa-east-1,r6gd.large,reserved_1y,partial_upfront,0.12697,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:56.817347 +AWS,sa-east-1,r6gd.large,reserved_3y,all_upfront,0.084657,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:22.153102 +AWS,sa-east-1,r6gd.large,reserved_3y,no_upfront,0.084657,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:31.080036 +AWS,sa-east-1,r6gd.large,reserved_3y,partial_upfront,0.084657,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:06.029835 +AWS,sa-east-1,r6gd.large,spot,NA,0.043737,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028280 +AWS,sa-east-1,r6gd.xlarge,on_demand,NA,0.3648,USD,AWS Pricing API,2025-11-30T09:10:48.927324 +AWS,sa-east-1,r6gd.xlarge,reserved_1y,all_upfront,0.214498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:18.110545 +AWS,sa-east-1,r6gd.xlarge,reserved_1y,no_upfront,0.214498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:06.497496 +AWS,sa-east-1,r6gd.xlarge,reserved_1y,partial_upfront,0.214498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:40.982441 +AWS,sa-east-1,r6gd.xlarge,reserved_3y,all_upfront,0.071499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:06.655600 +AWS,sa-east-1,r6gd.xlarge,reserved_3y,no_upfront,0.071499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:14.943948 +AWS,sa-east-1,r6gd.xlarge,reserved_3y,partial_upfront,0.071499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:50.256655 +AWS,sa-east-1,r6gd.xlarge,spot,NA,0.073268,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027941 +AWS,sa-east-1,r6i.12xlarge,on_demand,NA,4.824,USD,AWS Pricing API,2025-11-30T09:11:29.119697 +AWS,sa-east-1,r6i.12xlarge,reserved_1y,all_upfront,2.975913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:58.092385 +AWS,sa-east-1,r6i.12xlarge,reserved_1y,no_upfront,2.975913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:47.109253 +AWS,sa-east-1,r6i.12xlarge,reserved_1y,partial_upfront,2.975913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:20.987232 +AWS,sa-east-1,r6i.12xlarge,reserved_3y,all_upfront,0.991971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:45.908657 +AWS,sa-east-1,r6i.12xlarge,reserved_3y,no_upfront,0.991971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:55.744659 +AWS,sa-east-1,r6i.12xlarge,reserved_3y,partial_upfront,0.991971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:30.239454 +AWS,sa-east-1,r6i.12xlarge,spot,NA,2.027407,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028773 +AWS,sa-east-1,r6i.16xlarge,on_demand,NA,6.432,USD,AWS Pricing API,2025-11-30T09:10:37.581635 +AWS,sa-east-1,r6i.16xlarge,reserved_1y,all_upfront,4.25124,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:06.879971 +AWS,sa-east-1,r6i.16xlarge,reserved_1y,no_upfront,4.25124,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:55.039851 +AWS,sa-east-1,r6i.16xlarge,reserved_1y,partial_upfront,4.25124,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:29.758300 +AWS,sa-east-1,r6i.16xlarge,reserved_3y,all_upfront,4.25124,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:55.611678 +AWS,sa-east-1,r6i.16xlarge,reserved_3y,no_upfront,4.25124,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:03.381931 +AWS,sa-east-1,r6i.16xlarge,reserved_3y,partial_upfront,4.25124,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:39.014942 +AWS,sa-east-1,r6i.16xlarge,spot,NA,2.630036,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027697 +AWS,sa-east-1,r6i.24xlarge,on_demand,NA,9.648,USD,AWS Pricing API,2025-11-30T09:10:44.006420 +AWS,sa-east-1,r6i.24xlarge,reserved_1y,all_upfront,13.618037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:13.245953 +AWS,sa-east-1,r6i.24xlarge,reserved_1y,no_upfront,13.618037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:01.510425 +AWS,sa-east-1,r6i.24xlarge,reserved_1y,partial_upfront,13.618037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:36.098926 +AWS,sa-east-1,r6i.24xlarge,reserved_3y,all_upfront,4.539346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:01.830361 +AWS,sa-east-1,r6i.24xlarge,reserved_3y,no_upfront,4.539346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:09.964624 +AWS,sa-east-1,r6i.24xlarge,reserved_3y,partial_upfront,4.539346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:45.382008 +AWS,sa-east-1,r6i.24xlarge,spot,NA,4.271691,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027831 +AWS,sa-east-1,r6i.2xlarge,on_demand,NA,0.804,USD,AWS Pricing API,2025-11-30T09:11:32.603902 +AWS,sa-east-1,r6i.2xlarge,reserved_1y,all_upfront,1.134817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:01.594830 +AWS,sa-east-1,r6i.2xlarge,reserved_1y,no_upfront,1.134817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:50.676113 +AWS,sa-east-1,r6i.2xlarge,reserved_1y,partial_upfront,1.134817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:24.477845 +AWS,sa-east-1,r6i.2xlarge,reserved_3y,all_upfront,0.378272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:49.339404 +AWS,sa-east-1,r6i.2xlarge,reserved_3y,no_upfront,0.378272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:59.347015 +AWS,sa-east-1,r6i.2xlarge,reserved_3y,partial_upfront,0.378272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:33.725743 +AWS,sa-east-1,r6i.2xlarge,spot,NA,0.249327,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028837 +AWS,sa-east-1,r6i.32xlarge,on_demand,NA,12.864,USD,AWS Pricing API,2025-11-30T09:10:37.718385 +AWS,sa-east-1,r6i.32xlarge,reserved_1y,all_upfront,10.819184,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:07.014404 +AWS,sa-east-1,r6i.32xlarge,reserved_1y,no_upfront,10.819184,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:55.176956 +AWS,sa-east-1,r6i.32xlarge,reserved_1y,partial_upfront,10.819184,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:29.892630 +AWS,sa-east-1,r6i.32xlarge,reserved_3y,all_upfront,5.409595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:55.742225 +AWS,sa-east-1,r6i.32xlarge,reserved_3y,no_upfront,5.409595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:03.523509 +AWS,sa-east-1,r6i.32xlarge,reserved_3y,partial_upfront,5.409595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:39.149157 +AWS,sa-east-1,r6i.32xlarge,spot,NA,3.740302,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027706 +AWS,sa-east-1,r6i.4xlarge,on_demand,NA,1.608,USD,AWS Pricing API,2025-11-30T09:10:59.188446 +AWS,sa-east-1,r6i.4xlarge,reserved_1y,all_upfront,1.352369,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:28.233497 +AWS,sa-east-1,r6i.4xlarge,reserved_1y,no_upfront,1.352369,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:16.753790 +AWS,sa-east-1,r6i.4xlarge,reserved_1y,partial_upfront,1.352369,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:51.116384 +AWS,sa-east-1,r6i.4xlarge,reserved_3y,all_upfront,0.67619,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:16.594574 +AWS,sa-east-1,r6i.4xlarge,reserved_3y,no_upfront,0.67619,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:25.288026 +AWS,sa-east-1,r6i.4xlarge,reserved_3y,partial_upfront,0.67619,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:00.356691 +AWS,sa-east-1,r6i.4xlarge,spot,NA,0.625421,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028184 +AWS,sa-east-1,r6i.8xlarge,on_demand,NA,3.216,USD,AWS Pricing API,2025-11-30T09:11:03.521123 +AWS,sa-east-1,r6i.8xlarge,reserved_1y,all_upfront,2.3268,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:32.576764 +AWS,sa-east-1,r6i.8xlarge,reserved_1y,no_upfront,2.3268,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:21.229149 +AWS,sa-east-1,r6i.8xlarge,reserved_1y,partial_upfront,2.3268,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:55.453251 +AWS,sa-east-1,r6i.8xlarge,reserved_3y,all_upfront,2.3268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:20.827331 +AWS,sa-east-1,r6i.8xlarge,reserved_3y,no_upfront,2.3268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:29.693526 +AWS,sa-east-1,r6i.8xlarge,reserved_3y,partial_upfront,2.3268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:04.671235 +AWS,sa-east-1,r6i.8xlarge,spot,NA,1.281976,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028239 +AWS,sa-east-1,r6i.large,on_demand,NA,0.201,USD,AWS Pricing API,2025-11-30T09:11:19.262472 +AWS,sa-east-1,r6i.large,reserved_1y,all_upfront,0.14542,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:48.239125 +AWS,sa-east-1,r6i.large,reserved_1y,no_upfront,0.14542,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:37.035096 +AWS,sa-east-1,r6i.large,reserved_1y,partial_upfront,0.14542,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:11.151221 +AWS,sa-east-1,r6i.large,reserved_3y,all_upfront,0.14542,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:36.246147 +AWS,sa-east-1,r6i.large,reserved_3y,no_upfront,0.14542,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:45.698838 +AWS,sa-east-1,r6i.large,reserved_3y,partial_upfront,0.14542,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:20.408662 +AWS,sa-east-1,r6i.large,spot,NA,0.083238,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028564 +AWS,sa-east-1,r6i.xlarge,on_demand,NA,0.402,USD,AWS Pricing API,2025-11-30T09:10:41.147219 +AWS,sa-east-1,r6i.xlarge,reserved_1y,all_upfront,0.29085,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:10.400018 +AWS,sa-east-1,r6i.xlarge,reserved_1y,no_upfront,0.29085,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:58.613481 +AWS,sa-east-1,r6i.xlarge,reserved_1y,partial_upfront,0.29085,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:33.262940 +AWS,sa-east-1,r6i.xlarge,reserved_3y,all_upfront,0.29085,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:59.052965 +AWS,sa-east-1,r6i.xlarge,reserved_3y,no_upfront,0.29085,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:07.019230 +AWS,sa-east-1,r6i.xlarge,reserved_3y,partial_upfront,0.29085,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:42.541481 +AWS,sa-east-1,r6i.xlarge,spot,NA,0.102892,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027786 +AWS,sa-east-1,r7g.12xlarge,on_demand,NA,4.0906,USD,AWS Pricing API,2025-11-30T09:10:57.559659 +AWS,sa-east-1,r7g.12xlarge,reserved_1y,all_upfront,2.9673,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:26.617246 +AWS,sa-east-1,r7g.12xlarge,reserved_1y,no_upfront,2.9673,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:15.094633 +AWS,sa-east-1,r7g.12xlarge,reserved_1y,partial_upfront,2.9673,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:49.498302 +AWS,sa-east-1,r7g.12xlarge,reserved_3y,all_upfront,2.9673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:15.005816 +AWS,sa-east-1,r7g.12xlarge,reserved_3y,no_upfront,2.9673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:23.640482 +AWS,sa-east-1,r7g.12xlarge,reserved_3y,partial_upfront,2.9673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:58.727955 +AWS,sa-east-1,r7g.12xlarge,spot,NA,0.959534,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028112 +AWS,sa-east-1,r7g.16xlarge,on_demand,NA,5.4541,USD,AWS Pricing API,2025-11-30T09:10:42.653079 +AWS,sa-east-1,r7g.16xlarge,reserved_1y,all_upfront,3.69258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:11.887790 +AWS,sa-east-1,r7g.16xlarge,reserved_1y,no_upfront,3.69258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:00.120898 +AWS,sa-east-1,r7g.16xlarge,reserved_1y,partial_upfront,3.69258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:34.752597 +AWS,sa-east-1,r7g.16xlarge,reserved_3y,all_upfront,1.23086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:00.500691 +AWS,sa-east-1,r7g.16xlarge,reserved_3y,no_upfront,1.23086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:08.556971 +AWS,sa-east-1,r7g.16xlarge,reserved_3y,partial_upfront,1.23086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:44.013256 +AWS,sa-east-1,r7g.16xlarge,spot,NA,1.239491,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027811 +AWS,sa-east-1,r7g.2xlarge,on_demand,NA,0.6818,USD,AWS Pricing API,2025-11-30T09:10:50.825253 +AWS,sa-east-1,r7g.2xlarge,reserved_1y,all_upfront,0.430283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:19.993823 +AWS,sa-east-1,r7g.2xlarge,reserved_1y,no_upfront,0.430283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:08.421026 +AWS,sa-east-1,r7g.2xlarge,reserved_1y,partial_upfront,0.430283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:42.864636 +AWS,sa-east-1,r7g.2xlarge,reserved_3y,all_upfront,0.286828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:08.513466 +AWS,sa-east-1,r7g.2xlarge,reserved_3y,no_upfront,0.286828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:16.870015 +AWS,sa-east-1,r7g.2xlarge,reserved_3y,partial_upfront,0.286828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:52.151097 +AWS,sa-east-1,r7g.2xlarge,spot,NA,0.189936,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027961 +AWS,sa-east-1,r7g.4xlarge,on_demand,NA,1.3635,USD,AWS Pricing API,2025-11-30T09:10:41.284126 +AWS,sa-east-1,r7g.4xlarge,reserved_1y,all_upfront,0.860551,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:10.533117 +AWS,sa-east-1,r7g.4xlarge,reserved_1y,no_upfront,0.860551,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:58.750283 +AWS,sa-east-1,r7g.4xlarge,reserved_1y,partial_upfront,0.860551,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:33.401107 +AWS,sa-east-1,r7g.4xlarge,reserved_3y,all_upfront,0.573717,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:59.184943 +AWS,sa-east-1,r7g.4xlarge,reserved_3y,no_upfront,0.573717,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:07.161338 +AWS,sa-east-1,r7g.4xlarge,reserved_3y,partial_upfront,0.573717,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:42.675657 +AWS,sa-east-1,r7g.4xlarge,spot,NA,0.405479,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027762 +AWS,sa-east-1,r7g.8xlarge,on_demand,NA,2.727,USD,AWS Pricing API,2025-11-30T09:11:13.411778 +AWS,sa-east-1,r7g.8xlarge,reserved_1y,all_upfront,1.884009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:42.411687 +AWS,sa-east-1,r7g.8xlarge,reserved_1y,no_upfront,1.884009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:31.153777 +AWS,sa-east-1,r7g.8xlarge,reserved_1y,partial_upfront,1.884009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:05.351191 +AWS,sa-east-1,r7g.8xlarge,reserved_3y,all_upfront,1.256003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:30.518766 +AWS,sa-east-1,r7g.8xlarge,reserved_3y,no_upfront,1.256003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:39.749147 +AWS,sa-east-1,r7g.8xlarge,reserved_3y,partial_upfront,1.256003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:14.621353 +AWS,sa-east-1,r7g.8xlarge,spot,NA,0.717552,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028434 +AWS,sa-east-1,r7g.large,on_demand,NA,0.1704,USD,AWS Pricing API,2025-11-30T09:11:07.827683 +AWS,sa-east-1,r7g.large,reserved_1y,all_upfront,0.105365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:36.887907 +AWS,sa-east-1,r7g.large,reserved_1y,no_upfront,0.105365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:25.578815 +AWS,sa-east-1,r7g.large,reserved_1y,partial_upfront,0.105365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:59.786086 +AWS,sa-east-1,r7g.large,reserved_3y,all_upfront,0.035122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:25.083402 +AWS,sa-east-1,r7g.large,reserved_3y,no_upfront,0.035122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:34.089746 +AWS,sa-east-1,r7g.large,reserved_3y,partial_upfront,0.035122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:09.085704 +AWS,sa-east-1,r7g.large,spot,NA,0.068381,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028332 +AWS,sa-east-1,r7g.xlarge,on_demand,NA,0.3409,USD,AWS Pricing API,2025-11-30T09:11:10.246841 +AWS,sa-east-1,r7g.xlarge,reserved_1y,all_upfront,0.2473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:39.320975 +AWS,sa-east-1,r7g.xlarge,reserved_1y,no_upfront,0.2473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:28.044020 +AWS,sa-east-1,r7g.xlarge,reserved_1y,partial_upfront,0.2473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:02.231059 +AWS,sa-east-1,r7g.xlarge,reserved_3y,all_upfront,0.2473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:27.477377 +AWS,sa-east-1,r7g.xlarge,reserved_3y,no_upfront,0.2473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:36.583571 +AWS,sa-east-1,r7g.xlarge,reserved_3y,partial_upfront,0.2473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:11.517902 +AWS,sa-east-1,r7g.xlarge,spot,NA,0.06997,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028383 +AWS,sa-east-1,r7i.12xlarge,on_demand,NA,5.0652,USD,AWS Pricing API,2025-11-30T09:11:19.806399 +AWS,sa-east-1,r7i.12xlarge,reserved_1y,all_upfront,7.149543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:48.793141 +AWS,sa-east-1,r7i.12xlarge,reserved_1y,no_upfront,7.149543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:37.581527 +AWS,sa-east-1,r7i.12xlarge,reserved_1y,partial_upfront,7.149543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:11.689542 +AWS,sa-east-1,r7i.12xlarge,reserved_3y,all_upfront,2.383181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:36.772832 +AWS,sa-east-1,r7i.12xlarge,reserved_3y,no_upfront,2.383181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:46.254313 +AWS,sa-east-1,r7i.12xlarge,reserved_3y,partial_upfront,2.383181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:20.956164 +AWS,sa-east-1,r7i.12xlarge,spot,NA,1.62728,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028596 +AWS,sa-east-1,r7i.16xlarge,on_demand,NA,6.7536,USD,AWS Pricing API,2025-11-30T09:11:17.906291 +AWS,sa-east-1,r7i.16xlarge,reserved_1y,all_upfront,4.16621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:46.893493 +AWS,sa-east-1,r7i.16xlarge,reserved_1y,no_upfront,4.16621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:35.659125 +AWS,sa-east-1,r7i.16xlarge,reserved_1y,partial_upfront,4.16621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:09.815491 +AWS,sa-east-1,r7i.16xlarge,reserved_3y,all_upfront,1.388737,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:34.898098 +AWS,sa-east-1,r7i.16xlarge,reserved_3y,no_upfront,1.388737,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:44.323550 +AWS,sa-east-1,r7i.16xlarge,reserved_3y,partial_upfront,1.388737,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:19.066934 +AWS,sa-east-1,r7i.16xlarge,spot,NA,1.839079,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028527 +AWS,sa-east-1,r7i.24xlarge,on_demand,NA,10.1304,USD,AWS Pricing API,2025-11-30T09:11:14.626649 +AWS,sa-east-1,r7i.24xlarge,reserved_1y,all_upfront,6.249315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:43.648583 +AWS,sa-east-1,r7i.24xlarge,reserved_1y,no_upfront,6.249315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:32.372783 +AWS,sa-east-1,r7i.24xlarge,reserved_1y,partial_upfront,6.249315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:06.571388 +AWS,sa-east-1,r7i.24xlarge,reserved_3y,all_upfront,2.083105,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:31.705278 +AWS,sa-east-1,r7i.24xlarge,reserved_3y,no_upfront,2.083105,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:40.999133 +AWS,sa-east-1,r7i.24xlarge,reserved_3y,partial_upfront,2.083105,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:15.838486 +AWS,sa-east-1,r7i.24xlarge,spot,NA,3.08351,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028458 +AWS,sa-east-1,r7i.2xlarge,on_demand,NA,0.8442,USD,AWS Pricing API,2025-11-30T09:11:16.910247 +AWS,sa-east-1,r7i.2xlarge,reserved_1y,all_upfront,1.001142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:45.947986 +AWS,sa-east-1,r7i.2xlarge,reserved_1y,no_upfront,1.001142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:34.702091 +AWS,sa-east-1,r7i.2xlarge,reserved_1y,partial_upfront,1.001142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:08.867172 +AWS,sa-east-1,r7i.2xlarge,reserved_3y,all_upfront,0.333714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:33.959492 +AWS,sa-east-1,r7i.2xlarge,reserved_3y,no_upfront,0.333714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:43.333722 +AWS,sa-east-1,r7i.2xlarge,reserved_3y,partial_upfront,0.333714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:18.136337 +AWS,sa-east-1,r7i.2xlarge,spot,NA,0.118098,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028548 +AWS,sa-east-1,r7i.48xlarge,on_demand,NA,20.2608,USD,AWS Pricing API,2025-11-30T09:11:37.341784 +AWS,sa-east-1,r7i.48xlarge,reserved_1y,all_upfront,14.65874,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:09:06.339994 +AWS,sa-east-1,r7i.48xlarge,reserved_1y,no_upfront,14.65874,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:55.450667 +AWS,sa-east-1,r7i.48xlarge,reserved_1y,partial_upfront,14.65874,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:29.217442 +AWS,sa-east-1,r7i.48xlarge,reserved_3y,all_upfront,14.65874,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:53.994817 +AWS,sa-east-1,r7i.48xlarge,reserved_3y,no_upfront,14.65874,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:31:04.203862 +AWS,sa-east-1,r7i.48xlarge,reserved_3y,partial_upfront,14.65874,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:38.439726 +AWS,sa-east-1,r7i.48xlarge,spot,NA,3.314268,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028957 +AWS,sa-east-1,r7i.4xlarge,on_demand,NA,1.6884,USD,AWS Pricing API,2025-11-30T09:11:14.490392 +AWS,sa-east-1,r7i.4xlarge,reserved_1y,all_upfront,1.140068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:43.513536 +AWS,sa-east-1,r7i.4xlarge,reserved_1y,no_upfront,1.140068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:32.237982 +AWS,sa-east-1,r7i.4xlarge,reserved_1y,partial_upfront,1.140068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:06.433928 +AWS,sa-east-1,r7i.4xlarge,reserved_3y,all_upfront,0.380023,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:31.573315 +AWS,sa-east-1,r7i.4xlarge,reserved_3y,no_upfront,0.380023,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:40.859411 +AWS,sa-east-1,r7i.4xlarge,reserved_3y,partial_upfront,0.380023,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:15.705345 +AWS,sa-east-1,r7i.4xlarge,spot,NA,0.535966,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028486 +AWS,sa-east-1,r7i.8xlarge,on_demand,NA,3.3768,USD,AWS Pricing API,2025-11-30T09:10:31.137274 +AWS,sa-east-1,r7i.8xlarge,reserved_1y,all_upfront,2.125595,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:00.338450 +AWS,sa-east-1,r7i.8xlarge,reserved_1y,no_upfront,2.125595,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:48.427412 +AWS,sa-east-1,r7i.8xlarge,reserved_1y,partial_upfront,2.125595,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:23.281516 +AWS,sa-east-1,r7i.8xlarge,reserved_3y,all_upfront,1.417072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:49.242135 +AWS,sa-east-1,r7i.8xlarge,reserved_3y,no_upfront,1.417072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:56.734814 +AWS,sa-east-1,r7i.8xlarge,reserved_3y,partial_upfront,1.417072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:32.537578 +AWS,sa-east-1,r7i.8xlarge,spot,NA,1.198505,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027583 +AWS,sa-east-1,r7i.large,on_demand,NA,0.21105,USD,AWS Pricing API,2025-11-30T09:10:45.380541 +AWS,sa-east-1,r7i.large,reserved_1y,all_upfront,0.13949,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:14.604249 +AWS,sa-east-1,r7i.large,reserved_1y,no_upfront,0.13949,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:02.901983 +AWS,sa-east-1,r7i.large,reserved_1y,partial_upfront,0.13949,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:37.441030 +AWS,sa-east-1,r7i.large,reserved_3y,all_upfront,0.13949,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:03.180140 +AWS,sa-east-1,r7i.large,reserved_3y,no_upfront,0.13949,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:11.352980 +AWS,sa-east-1,r7i.large,reserved_3y,partial_upfront,0.13949,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:46.732082 +AWS,sa-east-1,r7i.large,spot,NA,0.028784,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027856 +AWS,sa-east-1,r7i.metal-24xl,on_demand,NA,10.1304,USD,AWS Pricing API,2025-11-30T09:11:01.613479 +AWS,sa-east-1,r7i.metal-24xl,reserved_1y,all_upfront,6.69573,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:30.693625 +AWS,sa-east-1,r7i.metal-24xl,reserved_1y,no_upfront,6.69573,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:19.223664 +AWS,sa-east-1,r7i.metal-24xl,reserved_1y,partial_upfront,6.69573,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:53.552843 +AWS,sa-east-1,r7i.metal-24xl,reserved_3y,all_upfront,6.69573,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:18.983935 +AWS,sa-east-1,r7i.metal-24xl,reserved_3y,no_upfront,6.69573,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:27.772513 +AWS,sa-east-1,r7i.metal-24xl,reserved_3y,partial_upfront,6.69573,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:02.789672 +AWS,sa-east-1,r7i.metal-24xl,spot,NA,1.061409,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028203 +AWS,sa-east-1,r7i.metal-48xl,on_demand,NA,20.2608,USD,AWS Pricing API,2025-11-30T09:11:21.292348 +AWS,sa-east-1,r7i.metal-48xl,reserved_1y,all_upfront,14.65874,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:50.271434 +AWS,sa-east-1,r7i.metal-48xl,reserved_1y,no_upfront,14.65874,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:39.083701 +AWS,sa-east-1,r7i.metal-48xl,reserved_1y,partial_upfront,14.65874,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:13.173877 +AWS,sa-east-1,r7i.metal-48xl,reserved_3y,all_upfront,14.65874,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:38.222965 +AWS,sa-east-1,r7i.metal-48xl,reserved_3y,no_upfront,14.65874,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:47.763689 +AWS,sa-east-1,r7i.metal-48xl,reserved_3y,partial_upfront,14.65874,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:22.436422 +AWS,sa-east-1,r7i.metal-48xl,spot,NA,2.195647,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028612 +AWS,sa-east-1,r7i.xlarge,on_demand,NA,0.4221,USD,AWS Pricing API,2025-11-30T09:10:57.014040 +AWS,sa-east-1,r7i.xlarge,reserved_1y,all_upfront,0.260388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:26.069914 +AWS,sa-east-1,r7i.xlarge,reserved_1y,no_upfront,0.260388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:14.547084 +AWS,sa-east-1,r7i.xlarge,reserved_1y,partial_upfront,0.260388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:48.959600 +AWS,sa-east-1,r7i.xlarge,reserved_3y,all_upfront,0.086796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:14.471934 +AWS,sa-east-1,r7i.xlarge,reserved_3y,no_upfront,0.086796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:23.091448 +AWS,sa-east-1,r7i.xlarge,reserved_3y,partial_upfront,0.086796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:58.193030 +AWS,sa-east-1,r7i.xlarge,spot,NA,0.055528,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028124 +AWS,sa-east-1,r8g.12xlarge,on_demand,NA,4.49952,USD,AWS Pricing API,2025-11-30T09:11:03.797382 +AWS,sa-east-1,r8g.12xlarge,reserved_1y,all_upfront,3.108494,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:32.844520 +AWS,sa-east-1,r8g.12xlarge,reserved_1y,no_upfront,3.108494,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:21.497688 +AWS,sa-east-1,r8g.12xlarge,reserved_1y,partial_upfront,3.108494,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:55.735406 +AWS,sa-east-1,r8g.12xlarge,reserved_3y,all_upfront,2.072345,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:21.090097 +AWS,sa-east-1,r8g.12xlarge,reserved_3y,no_upfront,2.072345,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:29.971415 +AWS,sa-east-1,r8g.12xlarge,reserved_3y,partial_upfront,2.072345,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:04.937986 +AWS,sa-east-1,r8g.12xlarge,spot,NA,0.796847,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028251 +AWS,sa-east-1,r8g.16xlarge,on_demand,NA,5.99936,USD,AWS Pricing API,2025-11-30T09:11:26.810270 +AWS,sa-east-1,r8g.16xlarge,reserved_1y,all_upfront,4.35194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:55.790110 +AWS,sa-east-1,r8g.16xlarge,reserved_1y,no_upfront,4.35194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:44.762293 +AWS,sa-east-1,r8g.16xlarge,reserved_1y,partial_upfront,4.35194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:18.693191 +AWS,sa-east-1,r8g.16xlarge,reserved_3y,all_upfront,4.35194,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:43.642768 +AWS,sa-east-1,r8g.16xlarge,reserved_3y,no_upfront,4.35194,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:53.387725 +AWS,sa-east-1,r8g.16xlarge,reserved_3y,partial_upfront,4.35194,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:27.935527 +AWS,sa-east-1,r8g.16xlarge,spot,NA,1.225465,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028726 +AWS,sa-east-1,r8g.24xlarge,on_demand,NA,8.99904,USD,AWS Pricing API,2025-11-30T09:10:55.104244 +AWS,sa-east-1,r8g.24xlarge,reserved_1y,all_upfront,6.52791,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:24.164488 +AWS,sa-east-1,r8g.24xlarge,reserved_1y,no_upfront,6.52791,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:12.646972 +AWS,sa-east-1,r8g.24xlarge,reserved_1y,partial_upfront,6.52791,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:47.069967 +AWS,sa-east-1,r8g.24xlarge,reserved_3y,all_upfront,6.52791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:12.625159 +AWS,sa-east-1,r8g.24xlarge,reserved_3y,no_upfront,6.52791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:21.152181 +AWS,sa-east-1,r8g.24xlarge,reserved_3y,partial_upfront,6.52791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:56.293782 +AWS,sa-east-1,r8g.24xlarge,spot,NA,0.947249,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028076 +AWS,sa-east-1,r8g.2xlarge,on_demand,NA,0.74992,USD,AWS Pricing API,2025-11-30T09:11:07.562112 +AWS,sa-east-1,r8g.2xlarge,reserved_1y,all_upfront,0.88984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:36.619534 +AWS,sa-east-1,r8g.2xlarge,reserved_1y,no_upfront,0.88984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:25.302566 +AWS,sa-east-1,r8g.2xlarge,reserved_1y,partial_upfront,0.88984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:59.516258 +AWS,sa-east-1,r8g.2xlarge,reserved_3y,all_upfront,0.296613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:24.820403 +AWS,sa-east-1,r8g.2xlarge,reserved_3y,no_upfront,0.296613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:33.819593 +AWS,sa-east-1,r8g.2xlarge,reserved_3y,partial_upfront,0.296613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:08.807104 +AWS,sa-east-1,r8g.2xlarge,spot,NA,0.133055,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028311 +AWS,sa-east-1,r8g.48xlarge,on_demand,NA,17.99808,USD,AWS Pricing API,2025-11-30T09:10:53.611028 +AWS,sa-east-1,r8g.48xlarge,reserved_1y,all_upfront,12.434069,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:22.682688 +AWS,sa-east-1,r8g.48xlarge,reserved_1y,no_upfront,12.434069,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:11.153919 +AWS,sa-east-1,r8g.48xlarge,reserved_1y,partial_upfront,12.434069,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:45.586182 +AWS,sa-east-1,r8g.48xlarge,reserved_3y,all_upfront,8.289396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:11.161008 +AWS,sa-east-1,r8g.48xlarge,reserved_3y,no_upfront,8.289396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:19.638461 +AWS,sa-east-1,r8g.48xlarge,reserved_3y,partial_upfront,8.289396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:54.822574 +AWS,sa-east-1,r8g.48xlarge,spot,NA,1.813672,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028037 +AWS,sa-east-1,r8g.4xlarge,on_demand,NA,1.49984,USD,AWS Pricing API,2025-11-30T09:11:12.064819 +AWS,sa-east-1,r8g.4xlarge,reserved_1y,all_upfront,1.036127,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:41.064062 +AWS,sa-east-1,r8g.4xlarge,reserved_1y,no_upfront,1.036127,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:29.801572 +AWS,sa-east-1,r8g.4xlarge,reserved_1y,partial_upfront,1.036127,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:03.982900 +AWS,sa-east-1,r8g.4xlarge,reserved_3y,all_upfront,0.690769,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:29.194528 +AWS,sa-east-1,r8g.4xlarge,reserved_3y,no_upfront,0.690769,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:38.368990 +AWS,sa-east-1,r8g.4xlarge,reserved_3y,partial_upfront,0.690769,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:13.266905 +AWS,sa-east-1,r8g.4xlarge,spot,NA,0.250194,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028414 +AWS,sa-east-1,r8g.8xlarge,on_demand,NA,2.99968,USD,AWS Pricing API,2025-11-30T09:10:32.593621 +AWS,sa-east-1,r8g.8xlarge,reserved_1y,all_upfront,4.236187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:01.824252 +AWS,sa-east-1,r8g.8xlarge,reserved_1y,no_upfront,4.236187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:24:49.927437 +AWS,sa-east-1,r8g.8xlarge,reserved_1y,partial_upfront,4.236187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:24.772516 +AWS,sa-east-1,r8g.8xlarge,reserved_3y,all_upfront,1.412062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:12:50.698757 +AWS,sa-east-1,r8g.8xlarge,reserved_3y,no_upfront,1.412062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:29:58.249010 +AWS,sa-east-1,r8g.8xlarge,reserved_3y,partial_upfront,1.412062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:34.030228 +AWS,sa-east-1,r8g.8xlarge,spot,NA,0.567846,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027591 +AWS,sa-east-1,r8g.large,on_demand,NA,0.18748,USD,AWS Pricing API,2025-11-30T09:11:10.564769 +AWS,sa-east-1,r8g.large,reserved_1y,all_upfront,0.129486,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:39.589288 +AWS,sa-east-1,r8g.large,reserved_1y,no_upfront,0.129486,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:28.312664 +AWS,sa-east-1,r8g.large,reserved_1y,partial_upfront,0.129486,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:47:02.499795 +AWS,sa-east-1,r8g.large,reserved_3y,all_upfront,0.086335,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:27.739746 +AWS,sa-east-1,r8g.large,reserved_3y,no_upfront,0.086335,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:36.857412 +AWS,sa-east-1,r8g.large,reserved_3y,partial_upfront,0.086335,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:52:11.787340 +AWS,sa-east-1,r8g.large,spot,NA,0.030722,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028368 +AWS,sa-east-1,r8g.xlarge,on_demand,NA,0.37496,USD,AWS Pricing API,2025-11-30T09:10:53.213468 +AWS,sa-east-1,r8g.xlarge,reserved_1y,all_upfront,0.360265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T11:08:22.278593 +AWS,sa-east-1,r8g.xlarge,reserved_1y,no_upfront,0.360265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:25:10.751478 +AWS,sa-east-1,r8g.xlarge,reserved_1y,partial_upfront,0.360265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:46:45.185236 +AWS,sa-east-1,r8g.xlarge,reserved_3y,all_upfront,0.180128,USD,AWS Pricing API (3yr All Upfront),2025-11-30T12:13:10.766523 +AWS,sa-east-1,r8g.xlarge,reserved_3y,no_upfront,0.180128,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:30:19.223059 +AWS,sa-east-1,r8g.xlarge,reserved_3y,partial_upfront,0.180128,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:51:54.423081 +AWS,sa-east-1,r8g.xlarge,spot,NA,0.064312,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028017 +AWS,sa-east-1,r8gd.12xlarge,on_demand,NA,5.5848,USD,AWS Pricing API,2025-11-30T09:11:11.367881 +AWS,sa-east-1,r8gd.12xlarge,spot,NA,1.089987,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028402 +AWS,sa-east-1,r8gd.16xlarge,on_demand,NA,7.4464,USD,AWS Pricing API,2025-11-30T09:10:59.732330 +AWS,sa-east-1,r8gd.16xlarge,spot,NA,1.380819,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028156 +AWS,sa-east-1,r8gd.24xlarge,on_demand,NA,11.1696,USD,AWS Pricing API,2025-11-30T09:10:47.040268 +AWS,sa-east-1,r8gd.24xlarge,spot,NA,1.126536,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027934 +AWS,sa-east-1,r8gd.2xlarge,on_demand,NA,0.9308,USD,AWS Pricing API,2025-11-30T09:10:52.676618 +AWS,sa-east-1,r8gd.2xlarge,spot,NA,0.160833,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028021 +AWS,sa-east-1,r8gd.48xlarge,on_demand,NA,22.3392,USD,AWS Pricing API,2025-11-30T09:11:26.531516 +AWS,sa-east-1,r8gd.48xlarge,spot,NA,2.272778,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028733 +AWS,sa-east-1,r8gd.4xlarge,on_demand,NA,1.8616,USD,AWS Pricing API,2025-11-30T09:11:21.018774 +AWS,sa-east-1,r8gd.4xlarge,spot,NA,0.338524,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.028620 +AWS,sa-east-1,r8gd.8xlarge,on_demand,NA,3.7232,USD,AWS Pricing API,2025-11-30T09:10:48.651172 +AWS,sa-east-1,r8gd.8xlarge,spot,NA,0.706756,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027957 +AWS,sa-east-1,r8gd.large,on_demand,NA,0.2327,USD,AWS Pricing API,2025-11-30T09:10:41.554894 +AWS,sa-east-1,r8gd.large,spot,NA,0.038335,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027790 +AWS,sa-east-1,r8gd.xlarge,on_demand,NA,0.4654,USD,AWS Pricing API,2025-11-30T09:10:42.365092 +AWS,sa-east-1,r8gd.xlarge,spot,NA,0.084962,USD,AWS EC2 API (90-day avg),2025-11-30T10:04:05.027794 +AWS,us-east-1,c5.12xlarge,on_demand,NA,2.04,USD,AWS Pricing API,2025-11-30T08:50:50.640669 +AWS,us-east-1,c5.12xlarge,reserved_1y,all_upfront,1.823808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:23.594956 +AWS,us-east-1,c5.12xlarge,reserved_1y,no_upfront,1.823808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:59.278138 +AWS,us-east-1,c5.12xlarge,reserved_1y,partial_upfront,1.823808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:50.730427 +AWS,us-east-1,c5.12xlarge,reserved_3y,all_upfront,0.911936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:32.628566 +AWS,us-east-1,c5.12xlarge,reserved_3y,no_upfront,0.911936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:00.660566 +AWS,us-east-1,c5.12xlarge,reserved_3y,partial_upfront,0.911936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:59.630554 +AWS,us-east-1,c5.12xlarge,spot,NA,0.78663,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973073 +AWS,us-east-1,c5.18xlarge,on_demand,NA,3.06,USD,AWS Pricing API,2025-11-30T08:50:59.173093 +AWS,us-east-1,c5.18xlarge,reserved_1y,all_upfront,1.836037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:31.961140 +AWS,us-east-1,c5.18xlarge,reserved_1y,no_upfront,1.836037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:07.894849 +AWS,us-east-1,c5.18xlarge,reserved_1y,partial_upfront,1.836037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:59.384484 +AWS,us-east-1,c5.18xlarge,reserved_3y,all_upfront,1.224012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:41.033680 +AWS,us-east-1,c5.18xlarge,reserved_3y,no_upfront,1.224012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:09.169897 +AWS,us-east-1,c5.18xlarge,reserved_3y,partial_upfront,1.224012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:08.210874 +AWS,us-east-1,c5.18xlarge,spot,NA,0.927674,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973339 +AWS,us-east-1,c5.24xlarge,on_demand,NA,4.08,USD,AWS Pricing API,2025-11-30T08:50:03.102441 +AWS,us-east-1,c5.24xlarge,reserved_1y,all_upfront,2.956,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:36.798644 +AWS,us-east-1,c5.24xlarge,reserved_1y,no_upfront,2.956,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:12.039859 +AWS,us-east-1,c5.24xlarge,reserved_1y,partial_upfront,2.956,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:03.180549 +AWS,us-east-1,c5.24xlarge,reserved_3y,all_upfront,2.956,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:46.025103 +AWS,us-east-1,c5.24xlarge,reserved_3y,no_upfront,2.956,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:13.894164 +AWS,us-east-1,c5.24xlarge,reserved_3y,partial_upfront,2.956,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:11.958220 +AWS,us-east-1,c5.24xlarge,spot,NA,1.33494,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971587 +AWS,us-east-1,c5.4xlarge,on_demand,NA,0.68,USD,AWS Pricing API,2025-11-30T08:50:43.260109 +AWS,us-east-1,c5.4xlarge,reserved_1y,all_upfront,0.328,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:16.438276 +AWS,us-east-1,c5.4xlarge,reserved_1y,no_upfront,0.328,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:51.953819 +AWS,us-east-1,c5.4xlarge,reserved_1y,partial_upfront,0.328,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:43.458714 +AWS,us-east-1,c5.4xlarge,reserved_3y,all_upfront,0.328,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:25.493314 +AWS,us-east-1,c5.4xlarge,reserved_3y,no_upfront,0.328,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:53.478660 +AWS,us-east-1,c5.4xlarge,reserved_3y,partial_upfront,0.328,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:52.285065 +AWS,us-east-1,c5.4xlarge,spot,NA,0.24119,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972798 +AWS,us-east-1,c5.9xlarge,on_demand,NA,1.53,USD,AWS Pricing API,2025-11-30T08:50:02.405809 +AWS,us-east-1,c5.9xlarge,reserved_1y,all_upfront,1.674087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:36.120774 +AWS,us-east-1,c5.9xlarge,reserved_1y,no_upfront,1.674087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:11.356851 +AWS,us-east-1,c5.9xlarge,reserved_1y,partial_upfront,1.674087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:02.483362 +AWS,us-east-1,c5.9xlarge,reserved_3y,all_upfront,0.558029,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:45.352443 +AWS,us-east-1,c5.9xlarge,reserved_3y,no_upfront,0.558029,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:13.217961 +AWS,us-east-1,c5.9xlarge,reserved_3y,partial_upfront,0.558029,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:11.265287 +AWS,us-east-1,c5.9xlarge,spot,NA,0.723292,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971571 +AWS,us-east-1,c5a.12xlarge,on_demand,NA,1.848,USD,AWS Pricing API,2025-11-30T08:50:59.726514 +AWS,us-east-1,c5a.12xlarge,reserved_1y,all_upfront,1.086644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:32.496782 +AWS,us-east-1,c5a.12xlarge,reserved_1y,no_upfront,1.086644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:08.443989 +AWS,us-east-1,c5a.12xlarge,reserved_1y,partial_upfront,1.086644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:59.919581 +AWS,us-east-1,c5a.12xlarge,reserved_3y,all_upfront,0.362215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:41.573332 +AWS,us-east-1,c5a.12xlarge,reserved_3y,no_upfront,0.362215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:09.713338 +AWS,us-east-1,c5a.12xlarge,reserved_3y,partial_upfront,0.362215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:08.762427 +AWS,us-east-1,c5a.12xlarge,spot,NA,0.825405,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973309 +AWS,us-east-1,c5a.16xlarge,on_demand,NA,2.464,USD,AWS Pricing API,2025-11-30T08:50:18.717196 +AWS,us-east-1,c5a.16xlarge,reserved_1y,all_upfront,1.705511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:52.252521 +AWS,us-east-1,c5a.16xlarge,reserved_1y,no_upfront,1.705511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:27.498578 +AWS,us-east-1,c5a.16xlarge,reserved_1y,partial_upfront,1.705511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:18.657495 +AWS,us-east-1,c5a.16xlarge,reserved_3y,all_upfront,1.13717,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:01.297554 +AWS,us-east-1,c5a.16xlarge,reserved_3y,no_upfront,1.13717,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:29.209199 +AWS,us-east-1,c5a.16xlarge,reserved_3y,partial_upfront,1.13717,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:27.550903 +AWS,us-east-1,c5a.16xlarge,spot,NA,1.080339,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972058 +AWS,us-east-1,c5a.24xlarge,on_demand,NA,3.696,USD,AWS Pricing API,2025-11-30T08:51:06.046451 +AWS,us-east-1,c5a.24xlarge,reserved_1y,all_upfront,2.686,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:38.716149 +AWS,us-east-1,c5a.24xlarge,reserved_1y,no_upfront,2.686,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:14.733476 +AWS,us-east-1,c5a.24xlarge,reserved_1y,partial_upfront,2.686,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:06.143845 +AWS,us-east-1,c5a.24xlarge,reserved_3y,all_upfront,2.686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:47.746553 +AWS,us-east-1,c5a.24xlarge,reserved_3y,no_upfront,2.686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:15.953744 +AWS,us-east-1,c5a.24xlarge,reserved_3y,partial_upfront,2.686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:15.097116 +AWS,us-east-1,c5a.24xlarge,spot,NA,1.480787,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973544 +AWS,us-east-1,c5a.2xlarge,on_demand,NA,0.308,USD,AWS Pricing API,2025-11-30T08:50:48.784657 +AWS,us-east-1,c5a.2xlarge,reserved_1y,all_upfront,0.224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:21.834974 +AWS,us-east-1,c5a.2xlarge,reserved_1y,no_upfront,0.224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:57.461365 +AWS,us-east-1,c5a.2xlarge,reserved_1y,partial_upfront,0.224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:48.944525 +AWS,us-east-1,c5a.2xlarge,reserved_3y,all_upfront,0.224,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:30.898583 +AWS,us-east-1,c5a.2xlarge,reserved_3y,no_upfront,0.224,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:58.901344 +AWS,us-east-1,c5a.2xlarge,reserved_3y,partial_upfront,0.224,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:57.850292 +AWS,us-east-1,c5a.2xlarge,spot,NA,0.135903,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972978 +AWS,us-east-1,c5a.4xlarge,on_demand,NA,0.616,USD,AWS Pricing API,2025-11-30T08:50:21.376216 +AWS,us-east-1,c5a.4xlarge,reserved_1y,all_upfront,0.809589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:54.820766 +AWS,us-east-1,c5a.4xlarge,reserved_1y,no_upfront,0.809589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:30.084530 +AWS,us-east-1,c5a.4xlarge,reserved_1y,partial_upfront,0.809589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:21.247068 +AWS,us-east-1,c5a.4xlarge,reserved_3y,all_upfront,0.269863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:03.868181 +AWS,us-east-1,c5a.4xlarge,reserved_3y,no_upfront,0.269863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:31.759469 +AWS,us-east-1,c5a.4xlarge,reserved_3y,partial_upfront,0.269863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:30.153332 +AWS,us-east-1,c5a.4xlarge,spot,NA,0.294804,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972131 +AWS,us-east-1,c5a.8xlarge,on_demand,NA,1.232,USD,AWS Pricing API,2025-11-30T08:50:13.883871 +AWS,us-east-1,c5a.8xlarge,reserved_1y,all_upfront,0.985155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:47.482720 +AWS,us-east-1,c5a.8xlarge,reserved_1y,no_upfront,0.985155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:22.720005 +AWS,us-east-1,c5a.8xlarge,reserved_1y,partial_upfront,0.985155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:13.858852 +AWS,us-east-1,c5a.8xlarge,reserved_3y,all_upfront,0.492385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:56.560992 +AWS,us-east-1,c5a.8xlarge,reserved_3y,no_upfront,0.492385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:24.484357 +AWS,us-east-1,c5a.8xlarge,reserved_3y,partial_upfront,0.492385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:22.703255 +AWS,us-east-1,c5a.8xlarge,spot,NA,0.526443,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971905 +AWS,us-east-1,c5a.xlarge,on_demand,NA,0.154,USD,AWS Pricing API,2025-11-30T08:50:04.618065 +AWS,us-east-1,c5a.xlarge,reserved_1y,all_upfront,0.092233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:38.270215 +AWS,us-east-1,c5a.xlarge,reserved_1y,no_upfront,0.092233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:13.539843 +AWS,us-east-1,c5a.xlarge,reserved_1y,partial_upfront,0.092233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:04.674592 +AWS,us-east-1,c5a.xlarge,reserved_3y,all_upfront,0.061411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:47.503146 +AWS,us-east-1,c5a.xlarge,reserved_3y,no_upfront,0.061411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:15.388590 +AWS,us-east-1,c5a.xlarge,reserved_3y,partial_upfront,0.061411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:13.487854 +AWS,us-east-1,c5a.xlarge,spot,NA,0.073353,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971642 +AWS,us-east-1,c5ad.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T08:51:10.416169 +AWS,us-east-1,c5ad.12xlarge,reserved_1y,all_upfront,1.422073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:43.055093 +AWS,us-east-1,c5ad.12xlarge,reserved_1y,no_upfront,1.422073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:19.098845 +AWS,us-east-1,c5ad.12xlarge,reserved_1y,partial_upfront,1.422073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:10.450227 +AWS,us-east-1,c5ad.12xlarge,reserved_3y,all_upfront,0.948024,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:52.055238 +AWS,us-east-1,c5ad.12xlarge,reserved_3y,no_upfront,0.948024,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:20.265430 +AWS,us-east-1,c5ad.12xlarge,reserved_3y,partial_upfront,0.948024,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:19.526187 +AWS,us-east-1,c5ad.12xlarge,spot,NA,0.902248,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973674 +AWS,us-east-1,c5ad.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T08:51:02.066093 +AWS,us-east-1,c5ad.16xlarge,reserved_1y,all_upfront,2.201256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:34.780395 +AWS,us-east-1,c5ad.16xlarge,reserved_1y,no_upfront,2.201256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:10.760811 +AWS,us-east-1,c5ad.16xlarge,reserved_1y,partial_upfront,2.201256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:02.243696 +AWS,us-east-1,c5ad.16xlarge,reserved_3y,all_upfront,1.100419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:43.839367 +AWS,us-east-1,c5ad.16xlarge,reserved_3y,no_upfront,1.100419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:12.000804 +AWS,us-east-1,c5ad.16xlarge,reserved_3y,partial_upfront,1.100419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:11.104492 +AWS,us-east-1,c5ad.16xlarge,spot,NA,1.104416,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973405 +AWS,us-east-1,c5ad.24xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T08:50:21.511257 +AWS,us-east-1,c5ad.24xlarge,reserved_1y,all_upfront,4.656393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:54.966935 +AWS,us-east-1,c5ad.24xlarge,reserved_1y,no_upfront,4.656393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:30.222007 +AWS,us-east-1,c5ad.24xlarge,reserved_1y,partial_upfront,4.656393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:21.381158 +AWS,us-east-1,c5ad.24xlarge,reserved_3y,all_upfront,1.552131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:04.009017 +AWS,us-east-1,c5ad.24xlarge,reserved_3y,no_upfront,1.552131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:31.895143 +AWS,us-east-1,c5ad.24xlarge,reserved_3y,partial_upfront,1.552131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:30.291350 +AWS,us-east-1,c5ad.24xlarge,spot,NA,1.541954,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972164 +AWS,us-east-1,c5ad.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T08:50:10.730621 +AWS,us-east-1,c5ad.2xlarge,reserved_1y,all_upfront,0.237493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:44.229737 +AWS,us-east-1,c5ad.2xlarge,reserved_1y,no_upfront,0.237493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:19.575569 +AWS,us-east-1,c5ad.2xlarge,reserved_1y,partial_upfront,0.237493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:10.717111 +AWS,us-east-1,c5ad.2xlarge,reserved_3y,all_upfront,0.158498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:53.460647 +AWS,us-east-1,c5ad.2xlarge,reserved_3y,no_upfront,0.158498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:21.373017 +AWS,us-east-1,c5ad.2xlarge,reserved_3y,partial_upfront,0.158498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:19.556645 +AWS,us-east-1,c5ad.2xlarge,spot,NA,0.163066,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971831 +AWS,us-east-1,c5ad.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T08:51:10.963425 +AWS,us-east-1,c5ad.4xlarge,reserved_1y,all_upfront,0.906164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:43.603247 +AWS,us-east-1,c5ad.4xlarge,reserved_1y,no_upfront,0.906164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:19.645032 +AWS,us-east-1,c5ad.4xlarge,reserved_1y,partial_upfront,0.906164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:10.992780 +AWS,us-east-1,c5ad.4xlarge,reserved_3y,all_upfront,0.302055,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:52.591665 +AWS,us-east-1,c5ad.4xlarge,reserved_3y,no_upfront,0.302055,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:20.799320 +AWS,us-east-1,c5ad.4xlarge,reserved_3y,partial_upfront,0.302055,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:20.080592 +AWS,us-east-1,c5ad.4xlarge,spot,NA,0.293662,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973670 +AWS,us-east-1,c5ad.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T08:50:21.030663 +AWS,us-east-1,c5ad.8xlarge,reserved_1y,all_upfront,1.100571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:54.551967 +AWS,us-east-1,c5ad.8xlarge,reserved_1y,no_upfront,1.100571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:29.813514 +AWS,us-east-1,c5ad.8xlarge,reserved_1y,partial_upfront,1.100571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:20.972163 +AWS,us-east-1,c5ad.8xlarge,reserved_3y,all_upfront,0.55019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:03.599096 +AWS,us-east-1,c5ad.8xlarge,reserved_3y,no_upfront,0.55019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:31.490830 +AWS,us-east-1,c5ad.8xlarge,reserved_3y,partial_upfront,0.55019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:29.881062 +AWS,us-east-1,c5ad.8xlarge,spot,NA,0.614556,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972152 +AWS,us-east-1,c5ad.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:51:00.420168 +AWS,us-east-1,c5ad.xlarge,reserved_1y,all_upfront,0.118247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:33.167124 +AWS,us-east-1,c5ad.xlarge,reserved_1y,no_upfront,0.118247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:09.129058 +AWS,us-east-1,c5ad.xlarge,reserved_1y,partial_upfront,0.118247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:00.601893 +AWS,us-east-1,c5ad.xlarge,reserved_3y,all_upfront,0.078749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:42.235608 +AWS,us-east-1,c5ad.xlarge,reserved_3y,no_upfront,0.078749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:10.383089 +AWS,us-east-1,c5ad.xlarge,reserved_3y,partial_upfront,0.078749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:09.460200 +AWS,us-east-1,c5ad.xlarge,spot,NA,0.07493,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973376 +AWS,us-east-1,c5d.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:51:12.075400 +AWS,us-east-1,c5d.12xlarge,reserved_1y,all_upfront,1.113,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:44.699234 +AWS,us-east-1,c5d.12xlarge,reserved_1y,no_upfront,1.113,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:20.740719 +AWS,us-east-1,c5d.12xlarge,reserved_1y,partial_upfront,1.113,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:12.065067 +AWS,us-east-1,c5d.12xlarge,reserved_3y,all_upfront,1.113,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:53.664500 +AWS,us-east-1,c5d.12xlarge,reserved_3y,no_upfront,1.113,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:21.876281 +AWS,us-east-1,c5d.12xlarge,reserved_3y,partial_upfront,1.113,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:21.191355 +AWS,us-east-1,c5d.12xlarge,spot,NA,0.8817,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973720 +AWS,us-east-1,c5d.18xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T08:50:35.042697 +AWS,us-east-1,c5d.18xlarge,reserved_1y,all_upfront,2.177,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:08.357464 +AWS,us-east-1,c5d.18xlarge,reserved_1y,no_upfront,2.177,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:43.758793 +AWS,us-east-1,c5d.18xlarge,reserved_1y,partial_upfront,2.177,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:35.188246 +AWS,us-east-1,c5d.18xlarge,reserved_3y,all_upfront,2.177,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:17.389722 +AWS,us-east-1,c5d.18xlarge,reserved_3y,no_upfront,2.177,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:45.368909 +AWS,us-east-1,c5d.18xlarge,reserved_3y,partial_upfront,2.177,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:43.976432 +AWS,us-east-1,c5d.18xlarge,spot,NA,1.197375,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972553 +AWS,us-east-1,c5d.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:50:07.387768 +AWS,us-east-1,c5d.24xlarge,reserved_1y,all_upfront,2.903,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:40.985069 +AWS,us-east-1,c5d.24xlarge,reserved_1y,no_upfront,2.903,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:16.298327 +AWS,us-east-1,c5d.24xlarge,reserved_1y,partial_upfront,2.903,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:07.416352 +AWS,us-east-1,c5d.24xlarge,reserved_3y,all_upfront,2.903,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:50.232348 +AWS,us-east-1,c5d.24xlarge,reserved_3y,no_upfront,2.903,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:18.087180 +AWS,us-east-1,c5d.24xlarge,reserved_3y,partial_upfront,2.903,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:16.252472 +AWS,us-east-1,c5d.24xlarge,spot,NA,1.38578,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971719 +AWS,us-east-1,c5d.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:50:55.633626 +AWS,us-east-1,c5d.2xlarge,reserved_1y,all_upfront,0.279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:28.454610 +AWS,us-east-1,c5d.2xlarge,reserved_1y,no_upfront,0.279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:04.332997 +AWS,us-east-1,c5d.2xlarge,reserved_1y,partial_upfront,0.279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:55.669453 +AWS,us-east-1,c5d.2xlarge,reserved_3y,all_upfront,0.279,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:37.503194 +AWS,us-east-1,c5d.2xlarge,reserved_3y,no_upfront,0.279,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:05.627165 +AWS,us-east-1,c5d.2xlarge,reserved_3y,partial_upfront,0.279,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:04.652862 +AWS,us-east-1,c5d.2xlarge,spot,NA,0.169257,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973215 +AWS,us-east-1,c5d.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:50:15.127477 +AWS,us-east-1,c5d.4xlarge,reserved_1y,all_upfront,0.451598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:48.704819 +AWS,us-east-1,c5d.4xlarge,reserved_1y,no_upfront,0.451598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:23.955999 +AWS,us-east-1,c5d.4xlarge,reserved_1y,partial_upfront,0.451598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:15.095824 +AWS,us-east-1,c5d.4xlarge,reserved_3y,all_upfront,0.150533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:57.781215 +AWS,us-east-1,c5d.4xlarge,reserved_3y,no_upfront,0.150533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:25.696408 +AWS,us-east-1,c5d.4xlarge,reserved_3y,partial_upfront,0.150533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:23.946396 +AWS,us-east-1,c5d.4xlarge,spot,NA,0.364218,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971991 +AWS,us-east-1,c5d.9xlarge,on_demand,NA,1.728,USD,AWS Pricing API,2025-11-30T08:50:44.892736 +AWS,us-east-1,c5d.9xlarge,reserved_1y,all_upfront,1.193918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:18.041966 +AWS,us-east-1,c5d.9xlarge,reserved_1y,no_upfront,1.193918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:53.582435 +AWS,us-east-1,c5d.9xlarge,reserved_1y,partial_upfront,1.193918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:45.095721 +AWS,us-east-1,c5d.9xlarge,reserved_3y,all_upfront,0.795973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:27.120373 +AWS,us-east-1,c5d.9xlarge,reserved_3y,no_upfront,0.795973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:55.112257 +AWS,us-east-1,c5d.9xlarge,reserved_3y,partial_upfront,0.795973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:53.960584 +AWS,us-east-1,c5d.9xlarge,spot,NA,0.745396,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972860 +AWS,us-east-1,c5d.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:50:40.510931 +AWS,us-east-1,c5d.xlarge,reserved_1y,all_upfront,0.121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:13.742776 +AWS,us-east-1,c5d.xlarge,reserved_1y,no_upfront,0.121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:49.224063 +AWS,us-east-1,c5d.xlarge,reserved_1y,partial_upfront,0.121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:40.716595 +AWS,us-east-1,c5d.xlarge,reserved_3y,all_upfront,0.121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:22.771618 +AWS,us-east-1,c5d.xlarge,reserved_3y,no_upfront,0.121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:50.786044 +AWS,us-east-1,c5d.xlarge,reserved_3y,partial_upfront,0.121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:49.509761 +AWS,us-east-1,c5d.xlarge,spot,NA,0.085708,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972714 +AWS,us-east-1,c5n.18xlarge,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:51:01.239554 +AWS,us-east-1,c5n.18xlarge,reserved_1y,all_upfront,2.449,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:33.979192 +AWS,us-east-1,c5n.18xlarge,reserved_1y,no_upfront,2.449,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:09.948894 +AWS,us-east-1,c5n.18xlarge,reserved_1y,partial_upfront,2.449,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:01.412968 +AWS,us-east-1,c5n.18xlarge,reserved_3y,all_upfront,2.449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:43.038324 +AWS,us-east-1,c5n.18xlarge,reserved_3y,no_upfront,2.449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:11.188855 +AWS,us-east-1,c5n.18xlarge,reserved_3y,partial_upfront,2.449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:10.282994 +AWS,us-east-1,c5n.18xlarge,spot,NA,1.45538,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973380 +AWS,us-east-1,c5n.2xlarge,on_demand,NA,0.432,USD,AWS Pricing API,2025-11-30T08:51:11.519001 +AWS,us-east-1,c5n.2xlarge,reserved_1y,all_upfront,0.253995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:44.148748 +AWS,us-east-1,c5n.2xlarge,reserved_1y,no_upfront,0.253995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:20.192072 +AWS,us-east-1,c5n.2xlarge,reserved_1y,partial_upfront,0.253995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:11.525658 +AWS,us-east-1,c5n.2xlarge,reserved_3y,all_upfront,0.084665,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:53.127458 +AWS,us-east-1,c5n.2xlarge,reserved_3y,no_upfront,0.084665,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:21.341227 +AWS,us-east-1,c5n.2xlarge,reserved_3y,partial_upfront,0.084665,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:20.630198 +AWS,us-east-1,c5n.2xlarge,spot,NA,0.19174,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973705 +AWS,us-east-1,c5n.4xlarge,on_demand,NA,0.864,USD,AWS Pricing API,2025-11-30T08:50:47.379456 +AWS,us-east-1,c5n.4xlarge,reserved_1y,all_upfront,0.626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:20.483255 +AWS,us-east-1,c5n.4xlarge,reserved_1y,no_upfront,0.626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:56.035456 +AWS,us-east-1,c5n.4xlarge,reserved_1y,partial_upfront,0.626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:47.556335 +AWS,us-east-1,c5n.4xlarge,reserved_3y,all_upfront,0.626,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:29.547027 +AWS,us-east-1,c5n.4xlarge,reserved_3y,no_upfront,0.626,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:57.539003 +AWS,us-east-1,c5n.4xlarge,reserved_3y,partial_upfront,0.626,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:56.472176 +AWS,us-east-1,c5n.4xlarge,spot,NA,0.404037,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972940 +AWS,us-east-1,c5n.9xlarge,on_demand,NA,1.944,USD,AWS Pricing API,2025-11-30T08:51:01.100316 +AWS,us-east-1,c5n.9xlarge,reserved_1y,all_upfront,1.409,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:33.843234 +AWS,us-east-1,c5n.9xlarge,reserved_1y,no_upfront,1.409,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:09.810338 +AWS,us-east-1,c5n.9xlarge,reserved_1y,partial_upfront,1.409,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:01.275191 +AWS,us-east-1,c5n.9xlarge,reserved_3y,all_upfront,1.409,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:42.903760 +AWS,us-east-1,c5n.9xlarge,reserved_3y,no_upfront,1.409,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:11.054182 +AWS,us-east-1,c5n.9xlarge,reserved_3y,partial_upfront,1.409,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:10.145589 +AWS,us-east-1,c5n.9xlarge,spot,NA,0.809866,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973388 +AWS,us-east-1,c5n.metal,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:50:09.034567 +AWS,us-east-1,c5n.metal,reserved_1y,all_upfront,2.286187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:42.610620 +AWS,us-east-1,c5n.metal,reserved_1y,no_upfront,2.286187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:17.939338 +AWS,us-east-1,c5n.metal,reserved_1y,partial_upfront,2.286187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:09.075073 +AWS,us-east-1,c5n.metal,reserved_3y,all_upfront,0.762062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:51.844418 +AWS,us-east-1,c5n.metal,reserved_3y,no_upfront,0.762062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:19.723162 +AWS,us-east-1,c5n.metal,reserved_3y,partial_upfront,0.762062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:17.894204 +AWS,us-east-1,c5n.metal,spot,NA,1.273595,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971756 +AWS,us-east-1,c5n.xlarge,on_demand,NA,0.216,USD,AWS Pricing API,2025-11-30T08:51:03.160309 +AWS,us-east-1,c5n.xlarge,reserved_1y,all_upfront,0.157,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:35.863117 +AWS,us-east-1,c5n.xlarge,reserved_1y,no_upfront,0.157,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:11.853816 +AWS,us-east-1,c5n.xlarge,reserved_1y,partial_upfront,0.157,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:03.320477 +AWS,us-east-1,c5n.xlarge,reserved_3y,all_upfront,0.157,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:44.924439 +AWS,us-east-1,c5n.xlarge,reserved_3y,no_upfront,0.157,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:13.082769 +AWS,us-east-1,c5n.xlarge,reserved_3y,partial_upfront,0.157,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:12.211187 +AWS,us-east-1,c5n.xlarge,spot,NA,0.101807,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973460 +AWS,us-east-1,c6g.12xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T08:50:14.431978 +AWS,us-east-1,c6g.12xlarge,reserved_1y,all_upfront,1.305624,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:48.029131 +AWS,us-east-1,c6g.12xlarge,reserved_1y,no_upfront,1.305624,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:23.272644 +AWS,us-east-1,c6g.12xlarge,reserved_1y,partial_upfront,1.305624,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:14.412060 +AWS,us-east-1,c6g.12xlarge,reserved_3y,all_upfront,0.652808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:57.100007 +AWS,us-east-1,c6g.12xlarge,reserved_3y,no_upfront,0.652808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:25.025301 +AWS,us-east-1,c6g.12xlarge,reserved_3y,partial_upfront,0.652808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:23.256577 +AWS,us-east-1,c6g.12xlarge,spot,NA,0.488658,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971930 +AWS,us-east-1,c6g.16xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:50:32.577175 +AWS,us-east-1,c6g.16xlarge,reserved_1y,all_upfront,1.279452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:05.917800 +AWS,us-east-1,c6g.16xlarge,reserved_1y,no_upfront,1.279452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:41.293275 +AWS,us-east-1,c6g.16xlarge,reserved_1y,partial_upfront,1.279452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:32.716690 +AWS,us-east-1,c6g.16xlarge,reserved_3y,all_upfront,0.426484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:14.940624 +AWS,us-east-1,c6g.16xlarge,reserved_3y,no_upfront,0.426484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:42.892033 +AWS,us-east-1,c6g.16xlarge,reserved_3y,partial_upfront,0.426484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:41.477746 +AWS,us-east-1,c6g.16xlarge,spot,NA,0.644588,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972478 +AWS,us-east-1,c6g.2xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T08:50:44.755656 +AWS,us-east-1,c6g.2xlarge,reserved_1y,all_upfront,0.1714,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:17.907527 +AWS,us-east-1,c6g.2xlarge,reserved_1y,no_upfront,0.1714,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:53.446198 +AWS,us-east-1,c6g.2xlarge,reserved_1y,partial_upfront,0.1714,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:44.951304 +AWS,us-east-1,c6g.2xlarge,reserved_3y,all_upfront,0.1714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:26.985390 +AWS,us-east-1,c6g.2xlarge,reserved_3y,no_upfront,0.1714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:54.977964 +AWS,us-east-1,c6g.2xlarge,reserved_3y,partial_upfront,0.1714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:53.822649 +AWS,us-east-1,c6g.2xlarge,spot,NA,0.111919,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972864 +AWS,us-east-1,c6g.4xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T08:51:03.989606 +AWS,us-east-1,c6g.4xlarge,reserved_1y,all_upfront,0.43517,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:36.680957 +AWS,us-east-1,c6g.4xlarge,reserved_1y,no_upfront,0.43517,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:12.682612 +AWS,us-east-1,c6g.4xlarge,reserved_1y,partial_upfront,0.43517,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:04.131248 +AWS,us-east-1,c6g.4xlarge,reserved_3y,all_upfront,0.21759,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:45.734123 +AWS,us-east-1,c6g.4xlarge,reserved_3y,no_upfront,0.21759,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:13.907501 +AWS,us-east-1,c6g.4xlarge,reserved_3y,partial_upfront,0.21759,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:13.044093 +AWS,us-east-1,c6g.4xlarge,spot,NA,0.176197,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973464 +AWS,us-east-1,c6g.8xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T08:50:30.943573 +AWS,us-east-1,c6g.8xlarge,reserved_1y,all_upfront,0.97288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:04.285497 +AWS,us-east-1,c6g.8xlarge,reserved_1y,no_upfront,0.97288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:39.659389 +AWS,us-east-1,c6g.8xlarge,reserved_1y,partial_upfront,0.97288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:30.844338 +AWS,us-east-1,c6g.8xlarge,reserved_3y,all_upfront,0.486427,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:13.327851 +AWS,us-east-1,c6g.8xlarge,reserved_3y,no_upfront,0.486427,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:41.264166 +AWS,us-east-1,c6g.8xlarge,reserved_3y,partial_upfront,0.486427,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:39.829284 +AWS,us-east-1,c6g.8xlarge,spot,NA,0.377299,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972443 +AWS,us-east-1,c6g.xlarge,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T08:51:09.457846 +AWS,us-east-1,c6g.xlarge,reserved_1y,all_upfront,0.080023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:42.107610 +AWS,us-east-1,c6g.xlarge,reserved_1y,no_upfront,0.080023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:18.146126 +AWS,us-east-1,c6g.xlarge,reserved_1y,partial_upfront,0.080023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:09.511721 +AWS,us-east-1,c6g.xlarge,reserved_3y,all_upfront,0.026674,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:51.108654 +AWS,us-east-1,c6g.xlarge,reserved_3y,no_upfront,0.026674,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:19.317511 +AWS,us-east-1,c6g.xlarge,reserved_3y,partial_upfront,0.026674,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:18.568894 +AWS,us-east-1,c6g.xlarge,spot,NA,0.062816,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973634 +AWS,us-east-1,c6gd.12xlarge,on_demand,NA,1.8432,USD,AWS Pricing API,2025-11-30T08:50:09.232227 +AWS,us-east-1,c6gd.12xlarge,reserved_1y,all_upfront,1.08379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:42.745745 +AWS,us-east-1,c6gd.12xlarge,reserved_1y,no_upfront,1.08379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:18.075838 +AWS,us-east-1,c6gd.12xlarge,reserved_1y,partial_upfront,1.08379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:09.212388 +AWS,us-east-1,c6gd.12xlarge,reserved_3y,all_upfront,0.361263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:51.975926 +AWS,us-east-1,c6gd.12xlarge,reserved_3y,no_upfront,0.361263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:19.855719 +AWS,us-east-1,c6gd.12xlarge,reserved_3y,partial_upfront,0.361263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:18.029337 +AWS,us-east-1,c6gd.12xlarge,spot,NA,0.473233,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971740 +AWS,us-east-1,c6gd.16xlarge,on_demand,NA,2.4576,USD,AWS Pricing API,2025-11-30T08:50:47.935360 +AWS,us-east-1,c6gd.16xlarge,reserved_1y,all_upfront,1.5483,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:21.026661 +AWS,us-east-1,c6gd.16xlarge,reserved_1y,no_upfront,1.5483,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:56.583328 +AWS,us-east-1,c6gd.16xlarge,reserved_1y,partial_upfront,1.5483,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:48.111379 +AWS,us-east-1,c6gd.16xlarge,reserved_3y,all_upfront,1.5483,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:30.083905 +AWS,us-east-1,c6gd.16xlarge,reserved_3y,no_upfront,1.5483,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:58.089195 +AWS,us-east-1,c6gd.16xlarge,reserved_3y,partial_upfront,1.5483,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:57.020646 +AWS,us-east-1,c6gd.16xlarge,spot,NA,0.644121,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972973 +AWS,us-east-1,c6gd.2xlarge,on_demand,NA,0.3072,USD,AWS Pricing API,2025-11-30T08:50:58.492153 +AWS,us-east-1,c6gd.2xlarge,reserved_1y,all_upfront,0.404566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:31.284647 +AWS,us-east-1,c6gd.2xlarge,reserved_1y,no_upfront,0.404566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:07.205717 +AWS,us-east-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.404566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:58.689367 +AWS,us-east-1,c6gd.2xlarge,reserved_3y,all_upfront,0.134855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:40.357393 +AWS,us-east-1,c6gd.2xlarge,reserved_3y,no_upfront,0.134855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:08.482789 +AWS,us-east-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.134855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:07.522651 +AWS,us-east-1,c6gd.2xlarge,spot,NA,0.077034,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973268 +AWS,us-east-1,c6gd.4xlarge,on_demand,NA,0.6144,USD,AWS Pricing API,2025-11-30T08:50:37.628726 +AWS,us-east-1,c6gd.4xlarge,reserved_1y,all_upfront,0.361301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:10.920616 +AWS,us-east-1,c6gd.4xlarge,reserved_1y,no_upfront,0.361301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:46.351423 +AWS,us-east-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.361301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:37.812899 +AWS,us-east-1,c6gd.4xlarge,reserved_3y,all_upfront,0.120434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:19.951161 +AWS,us-east-1,c6gd.4xlarge,reserved_3y,no_upfront,0.120434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:47.941915 +AWS,us-east-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.120434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:46.614927 +AWS,us-east-1,c6gd.4xlarge,spot,NA,0.204104,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972641 +AWS,us-east-1,c6gd.8xlarge,on_demand,NA,1.2288,USD,AWS Pricing API,2025-11-30T08:51:06.865513 +AWS,us-east-1,c6gd.8xlarge,reserved_1y,all_upfront,0.722489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:39.527938 +AWS,us-east-1,c6gd.8xlarge,reserved_1y,no_upfront,0.722489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:15.548018 +AWS,us-east-1,c6gd.8xlarge,reserved_1y,partial_upfront,0.722489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:06.957696 +AWS,us-east-1,c6gd.8xlarge,reserved_3y,all_upfront,0.24083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:48.549269 +AWS,us-east-1,c6gd.8xlarge,reserved_3y,no_upfront,0.24083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:16.768566 +AWS,us-east-1,c6gd.8xlarge,reserved_3y,partial_upfront,0.24083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:15.924128 +AWS,us-east-1,c6gd.8xlarge,spot,NA,0.362464,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973552 +AWS,us-east-1,c6gd.xlarge,on_demand,NA,0.1536,USD,AWS Pricing API,2025-11-30T08:50:57.810572 +AWS,us-east-1,c6gd.xlarge,reserved_1y,all_upfront,0.107253,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:30.601431 +AWS,us-east-1,c6gd.xlarge,reserved_1y,no_upfront,0.107253,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:06.526546 +AWS,us-east-1,c6gd.xlarge,reserved_1y,partial_upfront,0.107253,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:58.025829 +AWS,us-east-1,c6gd.xlarge,reserved_3y,all_upfront,0.071484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:39.686428 +AWS,us-east-1,c6gd.xlarge,reserved_3y,no_upfront,0.071484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:07.793571 +AWS,us-east-1,c6gd.xlarge,reserved_3y,partial_upfront,0.071484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:06.842814 +AWS,us-east-1,c6gd.xlarge,spot,NA,0.067575,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973305 +AWS,us-east-1,c6i.12xlarge,on_demand,NA,2.04,USD,AWS Pricing API,2025-11-30T08:50:57.672878 +AWS,us-east-1,c6i.12xlarge,reserved_1y,all_upfront,1.259475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:30.468170 +AWS,us-east-1,c6i.12xlarge,reserved_1y,no_upfront,1.259475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:06.391288 +AWS,us-east-1,c6i.12xlarge,reserved_1y,partial_upfront,1.259475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:57.887245 +AWS,us-east-1,c6i.12xlarge,reserved_3y,all_upfront,0.419825,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:39.551306 +AWS,us-east-1,c6i.12xlarge,reserved_3y,no_upfront,0.419825,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:07.654401 +AWS,us-east-1,c6i.12xlarge,reserved_3y,partial_upfront,0.419825,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:06.706515 +AWS,us-east-1,c6i.12xlarge,spot,NA,0.794814,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973289 +AWS,us-east-1,c6i.16xlarge,on_demand,NA,2.72,USD,AWS Pricing API,2025-11-30T08:50:32.166089 +AWS,us-east-1,c6i.16xlarge,reserved_1y,all_upfront,3.126826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:05.502971 +AWS,us-east-1,c6i.16xlarge,reserved_1y,no_upfront,3.126826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:40.882468 +AWS,us-east-1,c6i.16xlarge,reserved_1y,partial_upfront,3.126826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:32.286976 +AWS,us-east-1,c6i.16xlarge,reserved_3y,all_upfront,1.042275,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:14.536878 +AWS,us-east-1,c6i.16xlarge,reserved_3y,no_upfront,1.042275,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:42.485694 +AWS,us-east-1,c6i.16xlarge,reserved_3y,partial_upfront,1.042275,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:41.061029 +AWS,us-east-1,c6i.16xlarge,spot,NA,0.968998,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972486 +AWS,us-east-1,c6i.24xlarge,on_demand,NA,4.08,USD,AWS Pricing API,2025-11-30T08:50:26.859776 +AWS,us-east-1,c6i.24xlarge,reserved_1y,all_upfront,2.751826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:00.222738 +AWS,us-east-1,c6i.24xlarge,reserved_1y,no_upfront,2.751826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:35.562370 +AWS,us-east-1,c6i.24xlarge,reserved_1y,partial_upfront,2.751826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:26.744020 +AWS,us-east-1,c6i.24xlarge,reserved_3y,all_upfront,0.917275,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:09.285090 +AWS,us-east-1,c6i.24xlarge,reserved_3y,no_upfront,0.917275,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:37.188138 +AWS,us-east-1,c6i.24xlarge,reserved_3y,partial_upfront,0.917275,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:35.688688 +AWS,us-east-1,c6i.24xlarge,spot,NA,1.590009,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972331 +AWS,us-east-1,c6i.2xlarge,on_demand,NA,0.34,USD,AWS Pricing API,2025-11-30T08:50:10.457305 +AWS,us-east-1,c6i.2xlarge,reserved_1y,all_upfront,0.214178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:43.959700 +AWS,us-east-1,c6i.2xlarge,reserved_1y,no_upfront,0.214178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:19.302417 +AWS,us-east-1,c6i.2xlarge,reserved_1y,partial_upfront,0.214178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:10.444233 +AWS,us-east-1,c6i.2xlarge,reserved_3y,all_upfront,0.142793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:53.183390 +AWS,us-east-1,c6i.2xlarge,reserved_3y,no_upfront,0.142793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:21.082473 +AWS,us-east-1,c6i.2xlarge,reserved_3y,partial_upfront,0.142793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:19.282160 +AWS,us-east-1,c6i.2xlarge,spot,NA,0.161091,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971789 +AWS,us-east-1,c6i.32xlarge,on_demand,NA,5.44,USD,AWS Pricing API,2025-11-30T08:51:02.476786 +AWS,us-east-1,c6i.32xlarge,reserved_1y,all_upfront,3.427184,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:35.195740 +AWS,us-east-1,c6i.32xlarge,reserved_1y,no_upfront,3.427184,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:11.167235 +AWS,us-east-1,c6i.32xlarge,reserved_1y,partial_upfront,3.427184,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:02.648579 +AWS,us-east-1,c6i.32xlarge,reserved_3y,all_upfront,2.284795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:44.239176 +AWS,us-east-1,c6i.32xlarge,reserved_3y,no_upfront,2.284795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:12.400308 +AWS,us-east-1,c6i.32xlarge,reserved_3y,partial_upfront,2.284795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:11.517470 +AWS,us-east-1,c6i.32xlarge,spot,NA,1.819496,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973448 +AWS,us-east-1,c6i.4xlarge,on_demand,NA,0.68,USD,AWS Pricing API,2025-11-30T08:50:06.411610 +AWS,us-east-1,c6i.4xlarge,reserved_1y,all_upfront,0.458676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:40.046293 +AWS,us-east-1,c6i.4xlarge,reserved_1y,no_upfront,0.458676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:15.316833 +AWS,us-east-1,c6i.4xlarge,reserved_1y,partial_upfront,0.458676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:06.454314 +AWS,us-east-1,c6i.4xlarge,reserved_3y,all_upfront,0.152892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:49.286252 +AWS,us-east-1,c6i.4xlarge,reserved_3y,no_upfront,0.152892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:17.145150 +AWS,us-east-1,c6i.4xlarge,reserved_3y,partial_upfront,0.152892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:15.284529 +AWS,us-east-1,c6i.4xlarge,spot,NA,0.293208,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971646 +AWS,us-east-1,c6i.8xlarge,on_demand,NA,1.36,USD,AWS Pricing API,2025-11-30T08:50:20.342298 +AWS,us-east-1,c6i.8xlarge,reserved_1y,all_upfront,1.108821,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:53.877411 +AWS,us-east-1,c6i.8xlarge,reserved_1y,no_upfront,1.108821,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:29.133446 +AWS,us-east-1,c6i.8xlarge,reserved_1y,partial_upfront,1.108821,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:20.288268 +AWS,us-east-1,c6i.8xlarge,reserved_3y,all_upfront,0.554407,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:02.924895 +AWS,us-east-1,c6i.8xlarge,reserved_3y,no_upfront,0.554407,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:30.819357 +AWS,us-east-1,c6i.8xlarge,reserved_3y,partial_upfront,0.554407,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:29.196409 +AWS,us-east-1,c6i.8xlarge,spot,NA,0.552812,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972139 +AWS,us-east-1,c6i.xlarge,on_demand,NA,0.17,USD,AWS Pricing API,2025-11-30T08:50:24.668269 +AWS,us-east-1,c6i.xlarge,reserved_1y,all_upfront,0.104909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:58.053049 +AWS,us-east-1,c6i.xlarge,reserved_1y,no_upfront,0.104909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:33.375275 +AWS,us-east-1,c6i.xlarge,reserved_1y,partial_upfront,0.104909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:24.510260 +AWS,us-east-1,c6i.xlarge,reserved_3y,all_upfront,0.03497,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:07.125691 +AWS,us-east-1,c6i.xlarge,reserved_3y,no_upfront,0.03497,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:34.995693 +AWS,us-east-1,c6i.xlarge,reserved_3y,partial_upfront,0.03497,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:33.471272 +AWS,us-east-1,c6i.xlarge,spot,NA,0.067509,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972282 +AWS,us-east-1,c6id.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:50:53.436995 +AWS,us-east-1,c6id.12xlarge,reserved_1y,all_upfront,1.422945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:26.301738 +AWS,us-east-1,c6id.12xlarge,reserved_1y,no_upfront,1.422945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:02.097542 +AWS,us-east-1,c6id.12xlarge,reserved_1y,partial_upfront,1.422945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:53.475214 +AWS,us-east-1,c6id.12xlarge,reserved_3y,all_upfront,0.474315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:35.355360 +AWS,us-east-1,c6id.12xlarge,reserved_3y,no_upfront,0.474315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:03.454639 +AWS,us-east-1,c6id.12xlarge,reserved_3y,partial_upfront,0.474315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:02.416348 +AWS,us-east-1,c6id.12xlarge,spot,NA,0.790392,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973156 +AWS,us-east-1,c6id.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:51:03.025005 +AWS,us-east-1,c6id.16xlarge,reserved_1y,all_upfront,3.519406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:35.728978 +AWS,us-east-1,c6id.16xlarge,reserved_1y,no_upfront,3.519406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:11.718968 +AWS,us-east-1,c6id.16xlarge,reserved_1y,partial_upfront,3.519406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:03.184826 +AWS,us-east-1,c6id.16xlarge,reserved_3y,all_upfront,1.173135,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:44.787086 +AWS,us-east-1,c6id.16xlarge,reserved_3y,no_upfront,1.173135,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:12.946406 +AWS,us-east-1,c6id.16xlarge,reserved_3y,partial_upfront,1.173135,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:12.069490 +AWS,us-east-1,c6id.16xlarge,spot,NA,1.052156,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973455 +AWS,us-east-1,c6id.24xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:50:20.756893 +AWS,us-east-1,c6id.24xlarge,reserved_1y,all_upfront,2.904055,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:54.281231 +AWS,us-east-1,c6id.24xlarge,reserved_1y,no_upfront,2.904055,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:29.539663 +AWS,us-east-1,c6id.24xlarge,reserved_1y,partial_upfront,2.904055,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:20.697636 +AWS,us-east-1,c6id.24xlarge,reserved_3y,all_upfront,1.936018,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:03.330918 +AWS,us-east-1,c6id.24xlarge,reserved_3y,no_upfront,1.936018,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:31.224288 +AWS,us-east-1,c6id.24xlarge,reserved_3y,partial_upfront,1.936018,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:29.606778 +AWS,us-east-1,c6id.24xlarge,spot,NA,1.529692,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972156 +AWS,us-east-1,c6id.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:51:13.442907 +AWS,us-east-1,c6id.2xlarge,reserved_1y,all_upfront,0.237215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:46.052392 +AWS,us-east-1,c6id.2xlarge,reserved_1y,no_upfront,0.237215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:22.114659 +AWS,us-east-1,c6id.2xlarge,reserved_1y,partial_upfront,0.237215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:13.416605 +AWS,us-east-1,c6id.2xlarge,reserved_3y,all_upfront,0.079072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:55.003288 +AWS,us-east-1,c6id.2xlarge,reserved_3y,no_upfront,0.079072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:23.237107 +AWS,us-east-1,c6id.2xlarge,reserved_3y,partial_upfront,0.079072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:22.574230 +AWS,us-east-1,c6id.2xlarge,spot,NA,0.175682,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973763 +AWS,us-east-1,c6id.32xlarge,on_demand,NA,6.4512,USD,AWS Pricing API,2025-11-30T08:50:08.485759 +AWS,us-east-1,c6id.32xlarge,reserved_1y,all_upfront,4.346461,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:42.070018 +AWS,us-east-1,c6id.32xlarge,reserved_1y,no_upfront,4.346461,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:17.391157 +AWS,us-east-1,c6id.32xlarge,reserved_1y,partial_upfront,4.346461,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:08.516536 +AWS,us-east-1,c6id.32xlarge,reserved_3y,all_upfront,1.44882,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:51.305856 +AWS,us-east-1,c6id.32xlarge,reserved_3y,no_upfront,1.44882,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:19.182084 +AWS,us-east-1,c6id.32xlarge,reserved_3y,partial_upfront,1.44882,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:17.343553 +AWS,us-east-1,c6id.32xlarge,spot,NA,1.900034,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971727 +AWS,us-east-1,c6id.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:50:15.675097 +AWS,us-east-1,c6id.4xlarge,reserved_1y,all_upfront,0.484009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:49.247993 +AWS,us-east-1,c6id.4xlarge,reserved_1y,no_upfront,0.484009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:24.507285 +AWS,us-east-1,c6id.4xlarge,reserved_1y,partial_upfront,0.484009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:15.644238 +AWS,us-east-1,c6id.4xlarge,reserved_3y,all_upfront,0.32267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:58.315899 +AWS,us-east-1,c6id.4xlarge,reserved_3y,no_upfront,0.32267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:26.233972 +AWS,us-east-1,c6id.4xlarge,reserved_3y,partial_upfront,0.32267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:24.499663 +AWS,us-east-1,c6id.4xlarge,spot,NA,0.365711,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971987 +AWS,us-east-1,c6id.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:50:49.213985 +AWS,us-east-1,c6id.8xlarge,reserved_1y,all_upfront,0.94863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:22.235807 +AWS,us-east-1,c6id.8xlarge,reserved_1y,no_upfront,0.94863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:57.883318 +AWS,us-east-1,c6id.8xlarge,reserved_1y,partial_upfront,0.94863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:49.355639 +AWS,us-east-1,c6id.8xlarge,reserved_3y,all_upfront,0.31621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:31.302943 +AWS,us-east-1,c6id.8xlarge,reserved_3y,no_upfront,0.31621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:59.304252 +AWS,us-east-1,c6id.8xlarge,reserved_3y,partial_upfront,0.31621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:58.260779 +AWS,us-east-1,c6id.8xlarge,spot,NA,0.657465,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973045 +AWS,us-east-1,c6id.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:51:08.223652 +AWS,us-east-1,c6id.xlarge,reserved_1y,all_upfront,0.156009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:40.884958 +AWS,us-east-1,c6id.xlarge,reserved_1y,no_upfront,0.156009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:16.909867 +AWS,us-east-1,c6id.xlarge,reserved_1y,partial_upfront,0.156009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:08.304460 +AWS,us-east-1,c6id.xlarge,reserved_3y,all_upfront,0.078003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:49.894606 +AWS,us-east-1,c6id.xlarge,reserved_3y,no_upfront,0.078003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:18.107752 +AWS,us-east-1,c6id.xlarge,reserved_3y,partial_upfront,0.078003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:17.304143 +AWS,us-east-1,c6id.xlarge,spot,NA,0.076994,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973582 +AWS,us-east-1,c6in.12xlarge,on_demand,NA,2.7216,USD,AWS Pricing API,2025-11-30T08:50:14.023408 +AWS,us-east-1,c6in.12xlarge,reserved_1y,all_upfront,1.840297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:47.631676 +AWS,us-east-1,c6in.12xlarge,reserved_1y,no_upfront,1.840297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:22.858498 +AWS,us-east-1,c6in.12xlarge,reserved_1y,partial_upfront,1.840297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:13.999789 +AWS,us-east-1,c6in.12xlarge,reserved_3y,all_upfront,0.613432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:56.695921 +AWS,us-east-1,c6in.12xlarge,reserved_3y,no_upfront,0.613432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:24.619785 +AWS,us-east-1,c6in.12xlarge,reserved_3y,partial_upfront,0.613432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:22.842012 +AWS,us-east-1,c6in.12xlarge,spot,NA,1.101932,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971922 +AWS,us-east-1,c6in.16xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T08:50:25.627044 +AWS,us-east-1,c6in.16xlarge,reserved_1y,all_upfront,4.130936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:59.004060 +AWS,us-east-1,c6in.16xlarge,reserved_1y,no_upfront,4.130936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:34.338336 +AWS,us-east-1,c6in.16xlarge,reserved_1y,partial_upfront,4.130936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:25.468719 +AWS,us-east-1,c6in.16xlarge,reserved_3y,all_upfront,1.376979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:08.077813 +AWS,us-east-1,c6in.16xlarge,reserved_3y,no_upfront,1.376979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:35.966329 +AWS,us-east-1,c6in.16xlarge,reserved_3y,partial_upfront,1.376979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:34.444478 +AWS,us-east-1,c6in.16xlarge,spot,NA,1.536641,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972290 +AWS,us-east-1,c6in.24xlarge,on_demand,NA,5.4432,USD,AWS Pricing API,2025-11-30T08:50:35.180900 +AWS,us-east-1,c6in.24xlarge,reserved_1y,all_upfront,3.755754,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:08.491364 +AWS,us-east-1,c6in.24xlarge,reserved_1y,no_upfront,3.755754,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:43.894845 +AWS,us-east-1,c6in.24xlarge,reserved_1y,partial_upfront,3.755754,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:35.328483 +AWS,us-east-1,c6in.24xlarge,reserved_3y,all_upfront,2.503851,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:17.521340 +AWS,us-east-1,c6in.24xlarge,reserved_3y,no_upfront,2.503851,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:45.505398 +AWS,us-east-1,c6in.24xlarge,reserved_3y,partial_upfront,2.503851,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:44.117662 +AWS,us-east-1,c6in.24xlarge,spot,NA,2.019884,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972542 +AWS,us-east-1,c6in.2xlarge,on_demand,NA,0.4536,USD,AWS Pricing API,2025-11-30T08:50:38.869821 +AWS,us-east-1,c6in.2xlarge,reserved_1y,all_upfront,0.306735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:12.126123 +AWS,us-east-1,c6in.2xlarge,reserved_1y,no_upfront,0.306735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:47.580242 +AWS,us-east-1,c6in.2xlarge,reserved_1y,partial_upfront,0.306735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:39.057018 +AWS,us-east-1,c6in.2xlarge,reserved_3y,all_upfront,0.102245,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:21.153678 +AWS,us-east-1,c6in.2xlarge,reserved_3y,no_upfront,0.102245,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:49.150122 +AWS,us-east-1,c6in.2xlarge,reserved_3y,partial_upfront,0.102245,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:47.844257 +AWS,us-east-1,c6in.2xlarge,spot,NA,0.204432,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972669 +AWS,us-east-1,c6in.32xlarge,on_demand,NA,7.2576,USD,AWS Pricing API,2025-11-30T08:51:13.579146 +AWS,us-east-1,c6in.32xlarge,reserved_1y,all_upfront,3.03495,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:46.185760 +AWS,us-east-1,c6in.32xlarge,reserved_1y,no_upfront,3.03495,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:22.249154 +AWS,us-east-1,c6in.32xlarge,reserved_1y,partial_upfront,3.03495,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:13.551453 +AWS,us-east-1,c6in.32xlarge,reserved_3y,all_upfront,3.03495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:55.138485 +AWS,us-east-1,c6in.32xlarge,reserved_3y,no_upfront,3.03495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:23.373444 +AWS,us-east-1,c6in.32xlarge,reserved_3y,partial_upfront,3.03495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:22.713206 +AWS,us-east-1,c6in.32xlarge,spot,NA,2.344353,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973755 +AWS,us-east-1,c6in.4xlarge,on_demand,NA,0.9072,USD,AWS Pricing API,2025-11-30T08:50:13.060869 +AWS,us-east-1,c6in.4xlarge,reserved_1y,all_upfront,1.032763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:46.678777 +AWS,us-east-1,c6in.4xlarge,reserved_1y,no_upfront,1.032763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:21.894550 +AWS,us-east-1,c6in.4xlarge,reserved_1y,partial_upfront,1.032763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:13.045358 +AWS,us-east-1,c6in.4xlarge,reserved_3y,all_upfront,0.344254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:55.745942 +AWS,us-east-1,c6in.4xlarge,reserved_3y,no_upfront,0.344254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:23.671001 +AWS,us-east-1,c6in.4xlarge,reserved_3y,partial_upfront,0.344254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:21.879477 +AWS,us-east-1,c6in.4xlarge,spot,NA,0.378383,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971870 +AWS,us-east-1,c6in.8xlarge,on_demand,NA,1.8144,USD,AWS Pricing API,2025-11-30T08:50:43.394684 +AWS,us-east-1,c6in.8xlarge,reserved_1y,all_upfront,1.31453,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:16.570451 +AWS,us-east-1,c6in.8xlarge,reserved_1y,no_upfront,1.31453,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:52.091063 +AWS,us-east-1,c6in.8xlarge,reserved_1y,partial_upfront,1.31453,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:43.594661 +AWS,us-east-1,c6in.8xlarge,reserved_3y,all_upfront,1.31453,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:25.624780 +AWS,us-east-1,c6in.8xlarge,reserved_3y,no_upfront,1.31453,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:53.615667 +AWS,us-east-1,c6in.8xlarge,reserved_3y,partial_upfront,1.31453,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:52.432517 +AWS,us-east-1,c6in.8xlarge,spot,NA,0.839298,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972822 +AWS,us-east-1,c6in.xlarge,on_demand,NA,0.2268,USD,AWS Pricing API,2025-11-30T08:50:31.079993 +AWS,us-east-1,c6in.xlarge,reserved_1y,all_upfront,0.156446,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:04.418302 +AWS,us-east-1,c6in.xlarge,reserved_1y,no_upfront,0.156446,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:39.797638 +AWS,us-east-1,c6in.xlarge,reserved_1y,partial_upfront,0.156446,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:30.979993 +AWS,us-east-1,c6in.xlarge,reserved_3y,all_upfront,0.104315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:13.460137 +AWS,us-east-1,c6in.xlarge,reserved_3y,no_upfront,0.104315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:41.405800 +AWS,us-east-1,c6in.xlarge,reserved_3y,partial_upfront,0.104315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:39.968606 +AWS,us-east-1,c6in.xlarge,spot,NA,0.090861,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972427 +AWS,us-east-1,c7a.12xlarge,on_demand,NA,2.46336,USD,AWS Pricing API,2025-11-30T08:50:58.630394 +AWS,us-east-1,c7a.12xlarge,reserved_1y,all_upfront,1.52089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:31.427669 +AWS,us-east-1,c7a.12xlarge,reserved_1y,no_upfront,1.52089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:07.345736 +AWS,us-east-1,c7a.12xlarge,reserved_1y,partial_upfront,1.52089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:58.822364 +AWS,us-east-1,c7a.12xlarge,reserved_3y,all_upfront,0.506963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:40.492792 +AWS,us-east-1,c7a.12xlarge,reserved_3y,no_upfront,0.506963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:08.617453 +AWS,us-east-1,c7a.12xlarge,reserved_3y,partial_upfront,0.506963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:07.660410 +AWS,us-east-1,c7a.12xlarge,spot,NA,0.912736,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973281 +AWS,us-east-1,c7a.16xlarge,on_demand,NA,3.28448,USD,AWS Pricing API,2025-11-30T08:50:28.893234 +AWS,us-east-1,c7a.16xlarge,reserved_1y,all_upfront,2.027854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:02.260888 +AWS,us-east-1,c7a.16xlarge,reserved_1y,no_upfront,2.027854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:37.604394 +AWS,us-east-1,c7a.16xlarge,reserved_1y,partial_upfront,2.027854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:28.800004 +AWS,us-east-1,c7a.16xlarge,reserved_3y,all_upfront,0.675951,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:11.304458 +AWS,us-east-1,c7a.16xlarge,reserved_3y,no_upfront,0.675951,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:39.233621 +AWS,us-east-1,c7a.16xlarge,reserved_3y,partial_upfront,0.675951,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:37.759596 +AWS,us-east-1,c7a.16xlarge,spot,NA,1.244836,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972383 +AWS,us-east-1,c7a.24xlarge,on_demand,NA,4.92672,USD,AWS Pricing API,2025-11-30T08:51:08.779068 +AWS,us-east-1,c7a.24xlarge,reserved_1y,all_upfront,3.322945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:41.433759 +AWS,us-east-1,c7a.24xlarge,reserved_1y,no_upfront,3.322945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:17.466607 +AWS,us-east-1,c7a.24xlarge,reserved_1y,partial_upfront,3.322945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:08.840074 +AWS,us-east-1,c7a.24xlarge,reserved_3y,all_upfront,1.107648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:50.435669 +AWS,us-east-1,c7a.24xlarge,reserved_3y,no_upfront,1.107648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:18.644826 +AWS,us-east-1,c7a.24xlarge,reserved_3y,partial_upfront,1.107648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:17.865741 +AWS,us-east-1,c7a.24xlarge,spot,NA,1.785221,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973650 +AWS,us-east-1,c7a.2xlarge,on_demand,NA,0.41056,USD,AWS Pricing API,2025-11-30T08:50:09.913328 +AWS,us-east-1,c7a.2xlarge,reserved_1y,all_upfront,0.334707,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:43.419915 +AWS,us-east-1,c7a.2xlarge,reserved_1y,no_upfront,0.334707,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:18.759885 +AWS,us-east-1,c7a.2xlarge,reserved_1y,partial_upfront,0.334707,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:09.901953 +AWS,us-east-1,c7a.2xlarge,reserved_3y,all_upfront,0.167356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:52.647749 +AWS,us-east-1,c7a.2xlarge,reserved_3y,no_upfront,0.167356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:20.531393 +AWS,us-east-1,c7a.2xlarge,reserved_3y,partial_upfront,0.167356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:18.731125 +AWS,us-east-1,c7a.2xlarge,spot,NA,0.199151,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971773 +AWS,us-east-1,c7a.32xlarge,on_demand,NA,6.56896,USD,AWS Pricing API,2025-11-30T08:50:45.035945 +AWS,us-east-1,c7a.32xlarge,reserved_1y,all_upfront,5.355701,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:18.175844 +AWS,us-east-1,c7a.32xlarge,reserved_1y,no_upfront,5.355701,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:53.717890 +AWS,us-east-1,c7a.32xlarge,reserved_1y,partial_upfront,5.355701,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:45.232667 +AWS,us-east-1,c7a.32xlarge,reserved_3y,all_upfront,2.677847,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:27.254796 +AWS,us-east-1,c7a.32xlarge,reserved_3y,no_upfront,2.677847,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:55.244516 +AWS,us-east-1,c7a.32xlarge,reserved_3y,partial_upfront,2.677847,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:54.102671 +AWS,us-east-1,c7a.32xlarge,spot,NA,2.135092,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972884 +AWS,us-east-1,c7a.48xlarge,on_demand,NA,9.85344,USD,AWS Pricing API,2025-11-30T08:50:04.339653 +AWS,us-east-1,c7a.48xlarge,reserved_1y,all_upfront,8.810188,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:38.004409 +AWS,us-east-1,c7a.48xlarge,reserved_1y,no_upfront,8.810188,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:13.263940 +AWS,us-east-1,c7a.48xlarge,reserved_1y,partial_upfront,8.810188,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:04.404136 +AWS,us-east-1,c7a.48xlarge,reserved_3y,all_upfront,4.405089,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:47.231378 +AWS,us-east-1,c7a.48xlarge,reserved_3y,no_upfront,4.405089,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:15.116240 +AWS,us-east-1,c7a.48xlarge,reserved_3y,partial_upfront,4.405089,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:13.215879 +AWS,us-east-1,c7a.48xlarge,spot,NA,3.018119,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971613 +AWS,us-east-1,c7a.4xlarge,on_demand,NA,0.82112,USD,AWS Pricing API,2025-11-30T08:50:46.136472 +AWS,us-east-1,c7a.4xlarge,reserved_1y,all_upfront,0.565094,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:19.251525 +AWS,us-east-1,c7a.4xlarge,reserved_1y,no_upfront,0.565094,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:54.810007 +AWS,us-east-1,c7a.4xlarge,reserved_1y,partial_upfront,0.565094,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:46.330919 +AWS,us-east-1,c7a.4xlarge,reserved_3y,all_upfront,0.376738,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:28.326657 +AWS,us-east-1,c7a.4xlarge,reserved_3y,no_upfront,0.376738,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:56.321953 +AWS,us-east-1,c7a.4xlarge,reserved_3y,partial_upfront,0.376738,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:55.208398 +AWS,us-east-1,c7a.4xlarge,spot,NA,0.336647,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972919 +AWS,us-east-1,c7a.8xlarge,on_demand,NA,1.64224,USD,AWS Pricing API,2025-11-30T08:50:01.673639 +AWS,us-east-1,c7a.8xlarge,reserved_1y,all_upfront,1.013927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:35.452094 +AWS,us-east-1,c7a.8xlarge,reserved_1y,no_upfront,1.013927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:10.678135 +AWS,us-east-1,c7a.8xlarge,reserved_1y,partial_upfront,1.013927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:01.785170 +AWS,us-east-1,c7a.8xlarge,reserved_3y,all_upfront,0.337976,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:44.680718 +AWS,us-east-1,c7a.8xlarge,reserved_3y,no_upfront,0.337976,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:12.549925 +AWS,us-east-1,c7a.8xlarge,reserved_3y,partial_upfront,0.337976,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:10.576666 +AWS,us-east-1,c7a.8xlarge,spot,NA,0.729541,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971527 +AWS,us-east-1,c7a.xlarge,on_demand,NA,0.20528,USD,AWS Pricing API,2025-11-30T08:50:37.084556 +AWS,us-east-1,c7a.xlarge,reserved_1y,all_upfront,0.269863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:10.383465 +AWS,us-east-1,c7a.xlarge,reserved_1y,no_upfront,0.269863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:45.804044 +AWS,us-east-1,c7a.xlarge,reserved_1y,partial_upfront,0.269863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:37.250261 +AWS,us-east-1,c7a.xlarge,reserved_3y,all_upfront,0.089954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:19.416721 +AWS,us-east-1,c7a.xlarge,reserved_3y,no_upfront,0.089954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:47.396521 +AWS,us-east-1,c7a.xlarge,reserved_3y,partial_upfront,0.089954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:46.052390 +AWS,us-east-1,c7a.xlarge,spot,NA,0.097393,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972656 +AWS,us-east-1,c7g.12xlarge,on_demand,NA,1.74,USD,AWS Pricing API,2025-11-30T08:50:41.207007 +AWS,us-east-1,c7g.12xlarge,reserved_1y,all_upfront,1.070205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:14.419062 +AWS,us-east-1,c7g.12xlarge,reserved_1y,no_upfront,1.070205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:49.914764 +AWS,us-east-1,c7g.12xlarge,reserved_1y,partial_upfront,1.070205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:41.403899 +AWS,us-east-1,c7g.12xlarge,reserved_3y,all_upfront,0.356735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:23.450543 +AWS,us-east-1,c7g.12xlarge,reserved_3y,no_upfront,0.356735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:51.456293 +AWS,us-east-1,c7g.12xlarge,reserved_3y,partial_upfront,0.356735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:50.197566 +AWS,us-east-1,c7g.12xlarge,spot,NA,0.545762,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972768 +AWS,us-east-1,c7g.16xlarge,on_demand,NA,2.32,USD,AWS Pricing API,2025-11-30T08:50:51.059521 +AWS,us-east-1,c7g.16xlarge,reserved_1y,all_upfront,1.5288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:23.998548 +AWS,us-east-1,c7g.16xlarge,reserved_1y,no_upfront,1.5288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:59.695587 +AWS,us-east-1,c7g.16xlarge,reserved_1y,partial_upfront,1.5288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:51.142285 +AWS,us-east-1,c7g.16xlarge,reserved_3y,all_upfront,1.5288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:33.033420 +AWS,us-east-1,c7g.16xlarge,reserved_3y,no_upfront,1.5288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:01.065431 +AWS,us-east-1,c7g.16xlarge,reserved_3y,partial_upfront,1.5288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:00.044437 +AWS,us-east-1,c7g.16xlarge,spot,NA,0.763154,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973065 +AWS,us-east-1,c7g.2xlarge,on_demand,NA,0.29,USD,AWS Pricing API,2025-11-30T08:51:10.006114 +AWS,us-east-1,c7g.2xlarge,reserved_1y,all_upfront,0.197973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:42.653651 +AWS,us-east-1,c7g.2xlarge,reserved_1y,no_upfront,0.197973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:18.692051 +AWS,us-east-1,c7g.2xlarge,reserved_1y,partial_upfront,0.197973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:10.048370 +AWS,us-east-1,c7g.2xlarge,reserved_3y,all_upfront,0.131991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:51.641478 +AWS,us-east-1,c7g.2xlarge,reserved_3y,no_upfront,0.131991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:19.863547 +AWS,us-east-1,c7g.2xlarge,reserved_3y,partial_upfront,0.131991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:19.117211 +AWS,us-east-1,c7g.2xlarge,spot,NA,0.111345,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973685 +AWS,us-east-1,c7g.4xlarge,on_demand,NA,0.58,USD,AWS Pricing API,2025-11-30T08:50:26.313315 +AWS,us-east-1,c7g.4xlarge,reserved_1y,all_upfront,0.764384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:59.671554 +AWS,us-east-1,c7g.4xlarge,reserved_1y,no_upfront,0.764384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:35.021480 +AWS,us-east-1,c7g.4xlarge,reserved_1y,partial_upfront,0.764384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:26.190771 +AWS,us-east-1,c7g.4xlarge,reserved_3y,all_upfront,0.254795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:08.756731 +AWS,us-east-1,c7g.4xlarge,reserved_3y,no_upfront,0.254795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:36.651096 +AWS,us-east-1,c7g.4xlarge,reserved_3y,partial_upfront,0.254795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:35.141821 +AWS,us-east-1,c7g.4xlarge,spot,NA,0.214372,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972302 +AWS,us-east-1,c7g.8xlarge,on_demand,NA,1.16,USD,AWS Pricing API,2025-11-30T08:50:37.359542 +AWS,us-east-1,c7g.8xlarge,reserved_1y,all_upfront,0.5616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:10.652400 +AWS,us-east-1,c7g.8xlarge,reserved_1y,no_upfront,0.5616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:46.078967 +AWS,us-east-1,c7g.8xlarge,reserved_1y,partial_upfront,0.5616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:37.528481 +AWS,us-east-1,c7g.8xlarge,reserved_3y,all_upfront,0.5616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:19.685027 +AWS,us-east-1,c7g.8xlarge,reserved_3y,no_upfront,0.5616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:47.667578 +AWS,us-east-1,c7g.8xlarge,reserved_3y,partial_upfront,0.5616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:46.327424 +AWS,us-east-1,c7g.8xlarge,spot,NA,0.417017,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972621 +AWS,us-east-1,c7g.xlarge,on_demand,NA,0.145,USD,AWS Pricing API,2025-11-30T08:50:24.395986 +AWS,us-east-1,c7g.xlarge,reserved_1y,all_upfront,0.099043,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:57.785288 +AWS,us-east-1,c7g.xlarge,reserved_1y,no_upfront,0.099043,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:33.104646 +AWS,us-east-1,c7g.xlarge,reserved_1y,partial_upfront,0.099043,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:24.239099 +AWS,us-east-1,c7g.xlarge,reserved_3y,all_upfront,0.066014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:06.856247 +AWS,us-east-1,c7g.xlarge,reserved_3y,no_upfront,0.066014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:34.727187 +AWS,us-east-1,c7g.xlarge,reserved_3y,partial_upfront,0.066014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:33.196900 +AWS,us-east-1,c7g.xlarge,spot,NA,0.065632,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972244 +AWS,us-east-1,c7gd.12xlarge,on_demand,NA,2.1773,USD,AWS Pricing API,2025-11-30T08:50:35.317020 +AWS,us-east-1,c7gd.12xlarge,reserved_1y,all_upfront,1.5717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:08.630643 +AWS,us-east-1,c7gd.12xlarge,reserved_1y,no_upfront,1.5717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:44.030871 +AWS,us-east-1,c7gd.12xlarge,reserved_1y,partial_upfront,1.5717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:35.472412 +AWS,us-east-1,c7gd.12xlarge,reserved_3y,all_upfront,1.5717,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:17.656892 +AWS,us-east-1,c7gd.12xlarge,reserved_3y,no_upfront,1.5717,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:45.641393 +AWS,us-east-1,c7gd.12xlarge,reserved_3y,partial_upfront,1.5717,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:44.256549 +AWS,us-east-1,c7gd.12xlarge,spot,NA,0.720383,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972550 +AWS,us-east-1,c7gd.16xlarge,on_demand,NA,2.903,USD,AWS Pricing API,2025-11-30T08:50:21.170571 +AWS,us-east-1,c7gd.16xlarge,reserved_1y,all_upfront,1.955936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:54.686327 +AWS,us-east-1,c7gd.16xlarge,reserved_1y,no_upfront,1.955936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:29.949276 +AWS,us-east-1,c7gd.16xlarge,reserved_1y,partial_upfront,1.955936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:21.110130 +AWS,us-east-1,c7gd.16xlarge,reserved_3y,all_upfront,0.651979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:03.734232 +AWS,us-east-1,c7gd.16xlarge,reserved_3y,no_upfront,0.651979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:31.624856 +AWS,us-east-1,c7gd.16xlarge,reserved_3y,partial_upfront,0.651979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:30.017679 +AWS,us-east-1,c7gd.16xlarge,spot,NA,0.908176,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972147 +AWS,us-east-1,c7gd.2xlarge,on_demand,NA,0.3629,USD,AWS Pricing API,2025-11-30T08:50:50.924059 +AWS,us-east-1,c7gd.2xlarge,reserved_1y,all_upfront,0.280816,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:23.863799 +AWS,us-east-1,c7gd.2xlarge,reserved_1y,no_upfront,0.280816,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:59.551209 +AWS,us-east-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.280816,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:51.003177 +AWS,us-east-1,c7gd.2xlarge,reserved_3y,all_upfront,0.140405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:32.898164 +AWS,us-east-1,c7gd.2xlarge,reserved_3y,no_upfront,0.140405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:00.929720 +AWS,us-east-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.140405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:59.905412 +AWS,us-east-1,c7gd.2xlarge,spot,NA,0.118803,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973097 +AWS,us-east-1,c7gd.4xlarge,on_demand,NA,0.7258,USD,AWS Pricing API,2025-11-30T08:50:38.045203 +AWS,us-east-1,c7gd.4xlarge,reserved_1y,all_upfront,0.426941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:11.323552 +AWS,us-east-1,c7gd.4xlarge,reserved_1y,no_upfront,0.426941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:46.764540 +AWS,us-east-1,c7gd.4xlarge,reserved_1y,partial_upfront,0.426941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:38.223236 +AWS,us-east-1,c7gd.4xlarge,reserved_3y,all_upfront,0.142314,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:20.351276 +AWS,us-east-1,c7gd.4xlarge,reserved_3y,no_upfront,0.142314,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:48.344493 +AWS,us-east-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.142314,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:47.022633 +AWS,us-east-1,c7gd.4xlarge,spot,NA,0.256307,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972660 +AWS,us-east-1,c7gd.8xlarge,on_demand,NA,1.4515,USD,AWS Pricing API,2025-11-30T08:50:29.572647 +AWS,us-east-1,c7gd.8xlarge,reserved_1y,all_upfront,1.0478,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:02.937401 +AWS,us-east-1,c7gd.8xlarge,reserved_1y,no_upfront,1.0478,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:38.281574 +AWS,us-east-1,c7gd.8xlarge,reserved_1y,partial_upfront,1.0478,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:29.476838 +AWS,us-east-1,c7gd.8xlarge,reserved_3y,all_upfront,1.0478,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:11.977864 +AWS,us-east-1,c7gd.8xlarge,reserved_3y,no_upfront,1.0478,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:39.901053 +AWS,us-east-1,c7gd.8xlarge,reserved_3y,partial_upfront,1.0478,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:38.446267 +AWS,us-east-1,c7gd.8xlarge,spot,NA,0.475224,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972387 +AWS,us-east-1,c7gd.xlarge,on_demand,NA,0.1814,USD,AWS Pricing API,2025-11-30T08:51:09.322612 +AWS,us-east-1,c7gd.xlarge,reserved_1y,all_upfront,0.108952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:41.970856 +AWS,us-east-1,c7gd.xlarge,reserved_1y,no_upfront,0.108952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:18.010897 +AWS,us-east-1,c7gd.xlarge,reserved_1y,partial_upfront,0.108952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:09.377672 +AWS,us-east-1,c7gd.xlarge,reserved_3y,all_upfront,0.072651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:50.974525 +AWS,us-east-1,c7gd.xlarge,reserved_3y,no_upfront,0.072651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:19.180681 +AWS,us-east-1,c7gd.xlarge,reserved_3y,partial_upfront,0.072651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:18.426278 +AWS,us-east-1,c7gd.xlarge,spot,NA,0.07549,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973646 +AWS,us-east-1,c7i.12xlarge,on_demand,NA,2.142,USD,AWS Pricing API,2025-11-30T08:50:29.847733 +AWS,us-east-1,c7i.12xlarge,reserved_1y,all_upfront,1.41693,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:03.213902 +AWS,us-east-1,c7i.12xlarge,reserved_1y,no_upfront,1.41693,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:38.559755 +AWS,us-east-1,c7i.12xlarge,reserved_1y,partial_upfront,1.41693,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:29.749610 +AWS,us-east-1,c7i.12xlarge,reserved_3y,all_upfront,1.41693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:12.243853 +AWS,us-east-1,c7i.12xlarge,reserved_3y,no_upfront,1.41693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:40.176461 +AWS,us-east-1,c7i.12xlarge,reserved_3y,partial_upfront,1.41693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:38.720628 +AWS,us-east-1,c7i.12xlarge,spot,NA,0.907661,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972407 +AWS,us-east-1,c7i.16xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T08:51:07.541831 +AWS,us-east-1,c7i.16xlarge,reserved_1y,all_upfront,2.06389,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:40.204513 +AWS,us-east-1,c7i.16xlarge,reserved_1y,no_upfront,2.06389,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:16.231139 +AWS,us-east-1,c7i.16xlarge,reserved_1y,partial_upfront,2.06389,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:07.633199 +AWS,us-east-1,c7i.16xlarge,reserved_3y,all_upfront,2.06389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:49.224842 +AWS,us-east-1,c7i.16xlarge,reserved_3y,no_upfront,2.06389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:17.441936 +AWS,us-east-1,c7i.16xlarge,reserved_3y,partial_upfront,2.06389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:16.615876 +AWS,us-east-1,c7i.16xlarge,spot,NA,1.128341,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973606 +AWS,us-east-1,c7i.24xlarge,on_demand,NA,4.284,USD,AWS Pricing API,2025-11-30T08:50:40.791872 +AWS,us-east-1,c7i.24xlarge,reserved_1y,all_upfront,1.88608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:14.011160 +AWS,us-east-1,c7i.24xlarge,reserved_1y,no_upfront,1.88608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:49.493344 +AWS,us-east-1,c7i.24xlarge,reserved_1y,partial_upfront,1.88608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:40.990200 +AWS,us-east-1,c7i.24xlarge,reserved_3y,all_upfront,1.88608,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:23.039220 +AWS,us-east-1,c7i.24xlarge,reserved_3y,no_upfront,1.88608,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:51.053156 +AWS,us-east-1,c7i.24xlarge,reserved_3y,partial_upfront,1.88608,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:49.783719 +AWS,us-east-1,c7i.24xlarge,spot,NA,2.064523,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972742 +AWS,us-east-1,c7i.2xlarge,on_demand,NA,0.357,USD,AWS Pricing API,2025-11-30T08:50:55.771223 +AWS,us-east-1,c7i.2xlarge,reserved_1y,all_upfront,0.245681,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:28.593780 +AWS,us-east-1,c7i.2xlarge,reserved_1y,no_upfront,0.245681,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:04.470601 +AWS,us-east-1,c7i.2xlarge,reserved_1y,partial_upfront,0.245681,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:55.806969 +AWS,us-east-1,c7i.2xlarge,reserved_3y,all_upfront,0.163794,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:37.655113 +AWS,us-east-1,c7i.2xlarge,reserved_3y,no_upfront,0.163794,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:05.760788 +AWS,us-east-1,c7i.2xlarge,reserved_3y,partial_upfront,0.163794,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:04.788827 +AWS,us-east-1,c7i.2xlarge,spot,NA,0.145045,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973195 +AWS,us-east-1,c7i.48xlarge,on_demand,NA,8.568,USD,AWS Pricing API,2025-11-30T08:50:23.304616 +AWS,us-east-1,c7i.48xlarge,reserved_1y,all_upfront,3.77216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:56.723208 +AWS,us-east-1,c7i.48xlarge,reserved_1y,no_upfront,3.77216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:32.020155 +AWS,us-east-1,c7i.48xlarge,reserved_1y,partial_upfront,3.77216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:23.146555 +AWS,us-east-1,c7i.48xlarge,reserved_3y,all_upfront,3.77216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:05.784522 +AWS,us-east-1,c7i.48xlarge,reserved_3y,no_upfront,3.77216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:33.641161 +AWS,us-east-1,c7i.48xlarge,reserved_3y,partial_upfront,3.77216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:32.093243 +AWS,us-east-1,c7i.48xlarge,spot,NA,2.975574,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972240 +AWS,us-east-1,c7i.4xlarge,on_demand,NA,0.714,USD,AWS Pricing API,2025-11-30T08:50:36.410991 +AWS,us-east-1,c7i.4xlarge,reserved_1y,all_upfront,0.449796,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:09.707223 +AWS,us-east-1,c7i.4xlarge,reserved_1y,no_upfront,0.449796,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:45.118278 +AWS,us-east-1,c7i.4xlarge,reserved_1y,partial_upfront,0.449796,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:36.570618 +AWS,us-east-1,c7i.4xlarge,reserved_3y,all_upfront,0.299872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:18.733481 +AWS,us-east-1,c7i.4xlarge,reserved_3y,no_upfront,0.299872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:46.723940 +AWS,us-east-1,c7i.4xlarge,reserved_3y,partial_upfront,0.299872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:45.364388 +AWS,us-east-1,c7i.4xlarge,spot,NA,0.292892,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972581 +AWS,us-east-1,c7i.8xlarge,on_demand,NA,1.428,USD,AWS Pricing API,2025-11-30T08:50:07.933285 +AWS,us-east-1,c7i.8xlarge,reserved_1y,all_upfront,1.03195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:41.530399 +AWS,us-east-1,c7i.8xlarge,reserved_1y,no_upfront,1.03195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:16.848585 +AWS,us-east-1,c7i.8xlarge,reserved_1y,partial_upfront,1.03195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:07.964469 +AWS,us-east-1,c7i.8xlarge,reserved_3y,all_upfront,1.03195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:50.764931 +AWS,us-east-1,c7i.8xlarge,reserved_3y,no_upfront,1.03195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:18.635972 +AWS,us-east-1,c7i.8xlarge,reserved_3y,partial_upfront,1.03195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:16.799884 +AWS,us-east-1,c7i.8xlarge,spot,NA,0.568043,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971752 +AWS,us-east-1,c7i.large,on_demand,NA,0.08925,USD,AWS Pricing API,2025-11-30T08:50:55.223217 +AWS,us-east-1,c7i.large,reserved_1y,all_upfront,0.055137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:28.049492 +AWS,us-east-1,c7i.large,reserved_1y,no_upfront,0.055137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:03.919866 +AWS,us-east-1,c7i.large,reserved_1y,partial_upfront,0.055137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:55.257697 +AWS,us-east-1,c7i.large,reserved_3y,all_upfront,0.018379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:37.104131 +AWS,us-east-1,c7i.large,reserved_3y,no_upfront,0.018379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:05.221857 +AWS,us-east-1,c7i.large,reserved_3y,partial_upfront,0.018379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:04.228496 +AWS,us-east-1,c7i.large,spot,NA,0.028692,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973211 +AWS,us-east-1,c7i.metal-24xl,on_demand,NA,4.284,USD,AWS Pricing API,2025-11-30T08:50:24.119087 +AWS,us-east-1,c7i.metal-24xl,reserved_1y,all_upfront,2.948411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:57.517692 +AWS,us-east-1,c7i.metal-24xl,reserved_1y,no_upfront,2.948411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:32.832251 +AWS,us-east-1,c7i.metal-24xl,reserved_1y,partial_upfront,2.948411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:23.961009 +AWS,us-east-1,c7i.metal-24xl,reserved_3y,all_upfront,1.96561,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:06.585033 +AWS,us-east-1,c7i.metal-24xl,reserved_3y,no_upfront,1.96561,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:34.458865 +AWS,us-east-1,c7i.metal-24xl,reserved_3y,partial_upfront,1.96561,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:32.918229 +AWS,us-east-1,c7i.metal-24xl,spot,NA,1.207292,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972216 +AWS,us-east-1,c7i.metal-48xl,on_demand,NA,8.568,USD,AWS Pricing API,2025-11-30T08:50:12.106546 +AWS,us-east-1,c7i.metal-48xl,reserved_1y,all_upfront,11.261416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:45.600559 +AWS,us-east-1,c7i.metal-48xl,reserved_1y,no_upfront,11.261416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:20.942028 +AWS,us-east-1,c7i.metal-48xl,reserved_1y,partial_upfront,11.261416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:12.082756 +AWS,us-east-1,c7i.metal-48xl,reserved_3y,all_upfront,3.753805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:54.812747 +AWS,us-east-1,c7i.metal-48xl,reserved_3y,no_upfront,3.753805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:22.723070 +AWS,us-east-1,c7i.metal-48xl,reserved_3y,partial_upfront,3.753805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:20.924090 +AWS,us-east-1,c7i.metal-48xl,spot,NA,2.471991,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971888 +AWS,us-east-1,c7i.xlarge,on_demand,NA,0.1785,USD,AWS Pricing API,2025-11-30T08:51:06.594514 +AWS,us-east-1,c7i.xlarge,reserved_1y,all_upfront,0.11808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:39.255545 +AWS,us-east-1,c7i.xlarge,reserved_1y,no_upfront,0.11808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:15.273501 +AWS,us-east-1,c7i.xlarge,reserved_1y,partial_upfront,0.11808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:06.681608 +AWS,us-east-1,c7i.xlarge,reserved_3y,all_upfront,0.11808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:48.279415 +AWS,us-east-1,c7i.xlarge,reserved_3y,no_upfront,0.11808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:16.495556 +AWS,us-east-1,c7i.xlarge,reserved_3y,partial_upfront,0.11808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:15.647129 +AWS,us-east-1,c7i.xlarge,spot,NA,0.070541,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973569 +AWS,us-east-1,c8g.12xlarge,on_demand,NA,1.91424,USD,AWS Pricing API,2025-11-30T08:51:04.129152 +AWS,us-east-1,c8g.12xlarge,reserved_1y,all_upfront,1.37231,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:36.815638 +AWS,us-east-1,c8g.12xlarge,reserved_1y,no_upfront,1.37231,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:12.818249 +AWS,us-east-1,c8g.12xlarge,reserved_1y,partial_upfront,1.37231,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:04.264630 +AWS,us-east-1,c8g.12xlarge,reserved_3y,all_upfront,1.37231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:45.869163 +AWS,us-east-1,c8g.12xlarge,reserved_3y,no_upfront,1.37231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:14.052368 +AWS,us-east-1,c8g.12xlarge,reserved_3y,partial_upfront,1.37231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:13.183570 +AWS,us-east-1,c8g.12xlarge,spot,NA,0.656834,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973468 +AWS,us-east-1,c8g.16xlarge,on_demand,NA,2.55232,USD,AWS Pricing API,2025-11-30T08:50:06.814680 +AWS,us-east-1,c8g.16xlarge,reserved_1y,all_upfront,1.23568,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:40.451851 +AWS,us-east-1,c8g.16xlarge,reserved_1y,no_upfront,1.23568,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:15.751293 +AWS,us-east-1,c8g.16xlarge,reserved_1y,partial_upfront,1.23568,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:06.870262 +AWS,us-east-1,c8g.16xlarge,reserved_3y,all_upfront,1.23568,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:49.691598 +AWS,us-east-1,c8g.16xlarge,reserved_3y,no_upfront,1.23568,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:17.547745 +AWS,us-east-1,c8g.16xlarge,reserved_3y,partial_upfront,1.23568,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:15.697346 +AWS,us-east-1,c8g.16xlarge,spot,NA,0.791159,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971686 +AWS,us-east-1,c8g.24xlarge,on_demand,NA,3.82848,USD,AWS Pricing API,2025-11-30T08:50:53.987083 +AWS,us-east-1,c8g.24xlarge,reserved_1y,all_upfront,2.40272,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:26.839397 +AWS,us-east-1,c8g.24xlarge,reserved_1y,no_upfront,2.40272,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:02.664322 +AWS,us-east-1,c8g.24xlarge,reserved_1y,partial_upfront,2.40272,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:54.021837 +AWS,us-east-1,c8g.24xlarge,reserved_3y,all_upfront,1.601807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:35.897186 +AWS,us-east-1,c8g.24xlarge,reserved_3y,no_upfront,1.601807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:03.996160 +AWS,us-east-1,c8g.24xlarge,reserved_3y,partial_upfront,1.601807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:02.984337 +AWS,us-east-1,c8g.24xlarge,spot,NA,1.148449,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973148 +AWS,us-east-1,c8g.2xlarge,on_demand,NA,0.31904,USD,AWS Pricing API,2025-11-30T08:50:19.125743 +AWS,us-east-1,c8g.2xlarge,reserved_1y,all_upfront,0.217814,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:52.666845 +AWS,us-east-1,c8g.2xlarge,reserved_1y,no_upfront,0.217814,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:27.908227 +AWS,us-east-1,c8g.2xlarge,reserved_1y,partial_upfront,0.217814,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:19.064795 +AWS,us-east-1,c8g.2xlarge,reserved_3y,all_upfront,0.145211,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:01.705450 +AWS,us-east-1,c8g.2xlarge,reserved_3y,no_upfront,0.145211,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:29.615568 +AWS,us-east-1,c8g.2xlarge,reserved_3y,partial_upfront,0.145211,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:27.964054 +AWS,us-east-1,c8g.2xlarge,spot,NA,0.119192,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972114 +AWS,us-east-1,c8g.48xlarge,on_demand,NA,7.65696,USD,AWS Pricing API,2025-11-30T08:51:13.035080 +AWS,us-east-1,c8g.48xlarge,reserved_1y,all_upfront,8.785959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:45.647622 +AWS,us-east-1,c8g.48xlarge,reserved_1y,no_upfront,8.785959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:21.695232 +AWS,us-east-1,c8g.48xlarge,reserved_1y,partial_upfront,8.785959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:13.004263 +AWS,us-east-1,c8g.48xlarge,reserved_3y,all_upfront,2.928653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:54.600727 +AWS,us-east-1,c8g.48xlarge,reserved_3y,no_upfront,2.928653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:22.835651 +AWS,us-east-1,c8g.48xlarge,reserved_3y,partial_upfront,2.928653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:22.157505 +AWS,us-east-1,c8g.48xlarge,spot,NA,2.164222,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973759 +AWS,us-east-1,c8g.4xlarge,on_demand,NA,0.63808,USD,AWS Pricing API,2025-11-30T08:50:21.651134 +AWS,us-east-1,c8g.4xlarge,reserved_1y,all_upfront,0.400458,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:55.102383 +AWS,us-east-1,c8g.4xlarge,reserved_1y,no_upfront,0.400458,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:30.374276 +AWS,us-east-1,c8g.4xlarge,reserved_1y,partial_upfront,0.400458,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:21.518639 +AWS,us-east-1,c8g.4xlarge,reserved_3y,all_upfront,0.266973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:04.146268 +AWS,us-east-1,c8g.4xlarge,reserved_3y,no_upfront,0.266973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:32.028367 +AWS,us-east-1,c8g.4xlarge,reserved_3y,partial_upfront,0.266973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:30.431111 +AWS,us-east-1,c8g.4xlarge,spot,NA,0.239382,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972135 +AWS,us-east-1,c8g.8xlarge,on_demand,NA,1.27616,USD,AWS Pricing API,2025-11-30T08:50:25.217013 +AWS,us-east-1,c8g.8xlarge,reserved_1y,all_upfront,0.91488,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:58.603970 +AWS,us-east-1,c8g.8xlarge,reserved_1y,no_upfront,0.91488,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:33.925421 +AWS,us-east-1,c8g.8xlarge,reserved_1y,partial_upfront,0.91488,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:25.055529 +AWS,us-east-1,c8g.8xlarge,reserved_3y,all_upfront,0.91488,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:07.670002 +AWS,us-east-1,c8g.8xlarge,reserved_3y,no_upfront,0.91488,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:35.565327 +AWS,us-east-1,c8g.8xlarge,reserved_3y,partial_upfront,0.91488,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:34.023326 +AWS,us-east-1,c8g.8xlarge,spot,NA,0.570041,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972270 +AWS,us-east-1,c8g.large,on_demand,NA,0.07976,USD,AWS Pricing API,2025-11-30T08:51:07.273911 +AWS,us-east-1,c8g.large,reserved_1y,all_upfront,0.05718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:39.931591 +AWS,us-east-1,c8g.large,reserved_1y,no_upfront,0.05718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:15.957843 +AWS,us-east-1,c8g.large,reserved_1y,partial_upfront,0.05718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:07.358018 +AWS,us-east-1,c8g.large,reserved_3y,all_upfront,0.05718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:48.957384 +AWS,us-east-1,c8g.large,reserved_3y,no_upfront,0.05718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:17.174569 +AWS,us-east-1,c8g.large,reserved_3y,partial_upfront,0.05718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:16.342342 +AWS,us-east-1,c8g.large,spot,NA,0.033658,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973614 +AWS,us-east-1,c8g.medium,on_demand,NA,0.03988,USD,AWS Pricing API,2025-11-30T08:50:51.765729 +AWS,us-east-1,c8g.medium,reserved_1y,all_upfront,0.025067,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:24.668653 +AWS,us-east-1,c8g.medium,reserved_1y,no_upfront,0.025067,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:00.393852 +AWS,us-east-1,c8g.medium,reserved_1y,partial_upfront,0.025067,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:51.823251 +AWS,us-east-1,c8g.medium,reserved_3y,all_upfront,0.016696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:33.708716 +AWS,us-east-1,c8g.medium,reserved_3y,no_upfront,0.016696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:01.751072 +AWS,us-east-1,c8g.medium,reserved_3y,partial_upfront,0.016696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:00.744615 +AWS,us-east-1,c8g.medium,spot,NA,0.014798,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973085 +AWS,us-east-1,c8g.xlarge,on_demand,NA,0.15952,USD,AWS Pricing API,2025-11-30T08:50:15.264633 +AWS,us-east-1,c8g.xlarge,reserved_1y,all_upfront,0.098059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:48.839093 +AWS,us-east-1,c8g.xlarge,reserved_1y,no_upfront,0.098059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:24.092588 +AWS,us-east-1,c8g.xlarge,reserved_1y,partial_upfront,0.098059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:15.231248 +AWS,us-east-1,c8g.xlarge,reserved_3y,all_upfront,0.032686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:57.915655 +AWS,us-east-1,c8g.xlarge,reserved_3y,no_upfront,0.032686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:25.829331 +AWS,us-east-1,c8g.xlarge,reserved_3y,partial_upfront,0.032686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:24.085640 +AWS,us-east-1,c8g.xlarge,spot,NA,0.064184,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971957 +AWS,us-east-1,c8gd.12xlarge,on_demand,NA,2.35152,USD,AWS Pricing API,2025-11-30T08:50:49.360997 +AWS,us-east-1,c8gd.12xlarge,spot,NA,0.833687,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973041 +AWS,us-east-1,c8gd.16xlarge,on_demand,NA,3.13536,USD,AWS Pricing API,2025-11-30T08:51:13.848329 +AWS,us-east-1,c8gd.16xlarge,spot,NA,1.104488,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973751 +AWS,us-east-1,c8gd.24xlarge,on_demand,NA,4.70304,USD,AWS Pricing API,2025-11-30T08:51:00.142344 +AWS,us-east-1,c8gd.24xlarge,spot,NA,1.78174,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973330 +AWS,us-east-1,c8gd.2xlarge,on_demand,NA,0.39192,USD,AWS Pricing API,2025-11-30T08:50:43.933710 +AWS,us-east-1,c8gd.2xlarge,spot,NA,0.140195,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972868 +AWS,us-east-1,c8gd.48xlarge,on_demand,NA,9.40608,USD,AWS Pricing API,2025-11-30T08:50:31.620589 +AWS,us-east-1,c8gd.48xlarge,spot,NA,3.905877,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972474 +AWS,us-east-1,c8gd.4xlarge,on_demand,NA,0.78384,USD,AWS Pricing API,2025-11-30T08:50:16.761961 +AWS,us-east-1,c8gd.4xlarge,spot,NA,0.299162,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972026 +AWS,us-east-1,c8gd.8xlarge,on_demand,NA,1.56768,USD,AWS Pricing API,2025-11-30T08:50:39.561680 +AWS,us-east-1,c8gd.8xlarge,spot,NA,0.798923,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972729 +AWS,us-east-1,c8gd.large,on_demand,NA,0.09798,USD,AWS Pricing API,2025-11-30T08:51:05.630877 +AWS,us-east-1,c8gd.large,spot,NA,0.040599,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973535 +AWS,us-east-1,c8gd.xlarge,on_demand,NA,0.19596,USD,AWS Pricing API,2025-11-30T08:50:27.806495 +AWS,us-east-1,c8gd.xlarge,spot,NA,0.084173,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972355 +AWS,us-east-1,d3.2xlarge,on_demand,NA,0.999,USD,AWS Pricing API,2025-11-30T08:50:41.483389 +AWS,us-east-1,d3.2xlarge,reserved_1y,all_upfront,0.799315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:14.682428 +AWS,us-east-1,d3.2xlarge,reserved_1y,no_upfront,0.799315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:50.189233 +AWS,us-east-1,d3.2xlarge,reserved_1y,partial_upfront,0.799315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:41.674186 +AWS,us-east-1,d3.2xlarge,reserved_3y,all_upfront,0.399772,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:23.722108 +AWS,us-east-1,d3.2xlarge,reserved_3y,no_upfront,0.399772,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:51.724879 +AWS,us-east-1,d3.2xlarge,reserved_3y,partial_upfront,0.399772,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:50.473192 +AWS,us-east-1,d3.2xlarge,spot,NA,0.342214,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972789 +AWS,us-east-1,d3.4xlarge,on_demand,NA,1.998,USD,AWS Pricing API,2025-11-30T08:51:08.913078 +AWS,us-east-1,d3.4xlarge,reserved_1y,all_upfront,1.438178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:41.569485 +AWS,us-east-1,d3.4xlarge,reserved_1y,no_upfront,1.438178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:17.601190 +AWS,us-east-1,d3.4xlarge,reserved_1y,partial_upfront,1.438178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:08.973425 +AWS,us-east-1,d3.4xlarge,reserved_3y,all_upfront,0.958726,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:50.570436 +AWS,us-east-1,d3.4xlarge,reserved_3y,no_upfront,0.958726,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:18.780228 +AWS,us-east-1,d3.4xlarge,reserved_3y,partial_upfront,0.958726,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:18.012434 +AWS,us-east-1,d3.4xlarge,spot,NA,0.874837,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973638 +AWS,us-east-1,d3.8xlarge,on_demand,NA,3.99552,USD,AWS Pricing API,2025-11-30T08:50:11.554777 +AWS,us-east-1,d3.8xlarge,reserved_1y,all_upfront,2.51718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:45.045871 +AWS,us-east-1,d3.8xlarge,reserved_1y,no_upfront,2.51718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:20.398930 +AWS,us-east-1,d3.8xlarge,reserved_1y,partial_upfront,2.51718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:11.536579 +AWS,us-east-1,d3.8xlarge,reserved_3y,all_upfront,2.51718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:54.263292 +AWS,us-east-1,d3.8xlarge,reserved_3y,no_upfront,2.51718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:22.178769 +AWS,us-east-1,d3.8xlarge,reserved_3y,partial_upfront,2.51718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:20.378846 +AWS,us-east-1,d3.8xlarge,spot,NA,1.531206,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971822 +AWS,us-east-1,d3.xlarge,on_demand,NA,0.499,USD,AWS Pricing API,2025-11-30T08:50:08.894570 +AWS,us-east-1,d3.xlarge,reserved_1y,all_upfront,0.299886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:42.476789 +AWS,us-east-1,d3.xlarge,reserved_1y,no_upfront,0.299886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:17.801741 +AWS,us-east-1,d3.xlarge,reserved_1y,partial_upfront,0.299886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:08.934264 +AWS,us-east-1,d3.xlarge,reserved_3y,all_upfront,0.199962,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:51.710930 +AWS,us-east-1,d3.xlarge,reserved_3y,no_upfront,0.199962,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:19.587730 +AWS,us-east-1,d3.xlarge,reserved_3y,partial_upfront,0.199962,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:17.757612 +AWS,us-east-1,d3.xlarge,spot,NA,0.15488,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971760 +AWS,us-east-1,d3en.12xlarge,on_demand,NA,6.30864,USD,AWS Pricing API,2025-11-30T08:51:01.515928 +AWS,us-east-1,d3en.12xlarge,reserved_1y,all_upfront,3.78517,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:34.246356 +AWS,us-east-1,d3en.12xlarge,reserved_1y,no_upfront,3.78517,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:10.219931 +AWS,us-east-1,d3en.12xlarge,reserved_1y,partial_upfront,3.78517,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:01.682141 +AWS,us-east-1,d3en.12xlarge,reserved_3y,all_upfront,2.52345,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:43.304436 +AWS,us-east-1,d3en.12xlarge,reserved_3y,no_upfront,2.52345,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:11.456865 +AWS,us-east-1,d3en.12xlarge,reserved_3y,partial_upfront,2.52345,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:10.557487 +AWS,us-east-1,d3en.12xlarge,spot,NA,1.982824,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973392 +AWS,us-east-1,d3en.2xlarge,on_demand,NA,1.051,USD,AWS Pricing API,2025-11-30T08:50:40.238937 +AWS,us-east-1,d3en.2xlarge,reserved_1y,all_upfront,0.618265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:13.475055 +AWS,us-east-1,d3en.2xlarge,reserved_1y,no_upfront,0.618265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:48.942310 +AWS,us-east-1,d3en.2xlarge,reserved_1y,partial_upfront,0.618265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:40.442681 +AWS,us-east-1,d3en.2xlarge,reserved_3y,all_upfront,0.206088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:22.500834 +AWS,us-east-1,d3en.2xlarge,reserved_3y,no_upfront,0.206088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:50.517615 +AWS,us-east-1,d3en.2xlarge,reserved_3y,partial_upfront,0.206088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:49.234529 +AWS,us-east-1,d3en.2xlarge,spot,NA,0.392554,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972738 +AWS,us-east-1,d3en.4xlarge,on_demand,NA,2.103,USD,AWS Pricing API,2025-11-30T08:50:47.794891 +AWS,us-east-1,d3en.4xlarge,reserved_1y,all_upfront,1.59,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:20.893201 +AWS,us-east-1,d3en.4xlarge,reserved_1y,no_upfront,1.59,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:56.449101 +AWS,us-east-1,d3en.4xlarge,reserved_1y,partial_upfront,1.59,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:47.963421 +AWS,us-east-1,d3en.4xlarge,reserved_3y,all_upfront,1.59,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:29.948650 +AWS,us-east-1,d3en.4xlarge,reserved_3y,no_upfront,1.59,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:57.944954 +AWS,us-east-1,d3en.4xlarge,reserved_3y,partial_upfront,1.59,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:56.882181 +AWS,us-east-1,d3en.4xlarge,spot,NA,0.924207,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972982 +AWS,us-east-1,d3en.6xlarge,on_demand,NA,3.154,USD,AWS Pricing API,2025-11-30T08:51:14.253319 +AWS,us-east-1,d3en.6xlarge,reserved_1y,all_upfront,1.892347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:46.860407 +AWS,us-east-1,d3en.6xlarge,reserved_1y,no_upfront,1.892347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:22.931472 +AWS,us-east-1,d3en.6xlarge,reserved_1y,partial_upfront,1.892347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:14.216249 +AWS,us-east-1,d3en.6xlarge,reserved_3y,all_upfront,1.261449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:55.823347 +AWS,us-east-1,d3en.6xlarge,reserved_3y,no_upfront,1.261449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:24.042202 +AWS,us-east-1,d3en.6xlarge,reserved_3y,partial_upfront,1.261449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:23.400307 +AWS,us-east-1,d3en.6xlarge,spot,NA,1.147174,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973779 +AWS,us-east-1,d3en.8xlarge,on_demand,NA,4.20576,USD,AWS Pricing API,2025-11-30T08:51:09.594565 +AWS,us-east-1,d3en.8xlarge,reserved_1y,all_upfront,2.64963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:42.242728 +AWS,us-east-1,d3en.8xlarge,reserved_1y,no_upfront,2.64963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:18.281391 +AWS,us-east-1,d3en.8xlarge,reserved_1y,partial_upfront,2.64963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:09.646320 +AWS,us-east-1,d3en.8xlarge,reserved_3y,all_upfront,2.64963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:51.242904 +AWS,us-east-1,d3en.8xlarge,reserved_3y,no_upfront,2.64963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:19.451901 +AWS,us-east-1,d3en.8xlarge,reserved_3y,partial_upfront,2.64963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:18.704357 +AWS,us-east-1,d3en.8xlarge,spot,NA,1.513783,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973618 +AWS,us-east-1,d3en.xlarge,on_demand,NA,0.526,USD,AWS Pricing API,2025-11-30T08:50:24.531600 +AWS,us-east-1,d3en.xlarge,reserved_1y,all_upfront,0.227,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:57.918325 +AWS,us-east-1,d3en.xlarge,reserved_1y,no_upfront,0.227,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:33.239572 +AWS,us-east-1,d3en.xlarge,reserved_1y,partial_upfront,0.227,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:24.375303 +AWS,us-east-1,d3en.xlarge,reserved_3y,all_upfront,0.227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:06.991131 +AWS,us-east-1,d3en.xlarge,reserved_3y,no_upfront,0.227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:34.862268 +AWS,us-east-1,d3en.xlarge,reserved_3y,partial_upfront,0.227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:33.333352 +AWS,us-east-1,d3en.xlarge,spot,NA,0.167136,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972265 +AWS,us-east-1,g4dn.12xlarge,on_demand,NA,3.912,USD,AWS Pricing API,2025-11-30T08:50:11.970853 +AWS,us-east-1,g4dn.12xlarge,reserved_1y,all_upfront,2.465,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:45.465663 +AWS,us-east-1,g4dn.12xlarge,reserved_1y,no_upfront,2.465,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:20.805029 +AWS,us-east-1,g4dn.12xlarge,reserved_1y,partial_upfront,2.465,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:11.946939 +AWS,us-east-1,g4dn.12xlarge,reserved_3y,all_upfront,2.465,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:54.680584 +AWS,us-east-1,g4dn.12xlarge,reserved_3y,no_upfront,2.465,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:22.588965 +AWS,us-east-1,g4dn.12xlarge,reserved_3y,partial_upfront,2.465,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:20.788243 +AWS,us-east-1,g4dn.12xlarge,spot,NA,1.265306,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971838 +AWS,us-east-1,g4dn.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T08:50:18.270230 +AWS,us-east-1,g4dn.16xlarge,reserved_1y,all_upfront,2.611594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:51.849935 +AWS,us-east-1,g4dn.16xlarge,reserved_1y,no_upfront,2.611594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:27.092688 +AWS,us-east-1,g4dn.16xlarge,reserved_1y,partial_upfront,2.611594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:18.238557 +AWS,us-east-1,g4dn.16xlarge,reserved_3y,all_upfront,1.741198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:00.891502 +AWS,us-east-1,g4dn.16xlarge,reserved_3y,no_upfront,1.741198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:28.806959 +AWS,us-east-1,g4dn.16xlarge,reserved_3y,partial_upfront,1.741198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:27.136481 +AWS,us-east-1,g4dn.16xlarge,spot,NA,1.101326,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972042 +AWS,us-east-1,g4dn.2xlarge,on_demand,NA,0.752,USD,AWS Pricing API,2025-11-30T08:50:52.726849 +AWS,us-east-1,g4dn.2xlarge,reserved_1y,all_upfront,0.442123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:25.605421 +AWS,us-east-1,g4dn.2xlarge,reserved_1y,no_upfront,0.442123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:01.374082 +AWS,us-east-1,g4dn.2xlarge,reserved_1y,partial_upfront,0.442123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:52.788980 +AWS,us-east-1,g4dn.2xlarge,reserved_3y,all_upfront,0.147374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:34.664414 +AWS,us-east-1,g4dn.2xlarge,reserved_3y,no_upfront,0.147374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:02.766989 +AWS,us-east-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.147374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:01.717033 +AWS,us-east-1,g4dn.2xlarge,spot,NA,0.293937,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973140 +AWS,us-east-1,g4dn.4xlarge,on_demand,NA,1.204,USD,AWS Pricing API,2025-11-30T08:50:32.989810 +AWS,us-east-1,g4dn.4xlarge,reserved_1y,all_upfront,1.358105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:06.326149 +AWS,us-east-1,g4dn.4xlarge,reserved_1y,no_upfront,1.358105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:41.702081 +AWS,us-east-1,g4dn.4xlarge,reserved_1y,partial_upfront,1.358105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:33.126145 +AWS,us-east-1,g4dn.4xlarge,reserved_3y,all_upfront,0.452702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:15.338901 +AWS,us-east-1,g4dn.4xlarge,reserved_3y,no_upfront,0.452702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:43.335264 +AWS,us-east-1,g4dn.4xlarge,reserved_3y,partial_upfront,0.452702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:41.890753 +AWS,us-east-1,g4dn.4xlarge,spot,NA,0.403771,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972506 +AWS,us-east-1,g4dn.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:50:35.721264 +AWS,us-east-1,g4dn.8xlarge,reserved_1y,all_upfront,1.577,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:09.034031 +AWS,us-east-1,g4dn.8xlarge,reserved_1y,no_upfront,1.577,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:44.440114 +AWS,us-east-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.577,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:35.883413 +AWS,us-east-1,g4dn.8xlarge,reserved_3y,all_upfront,1.577,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:18.057636 +AWS,us-east-1,g4dn.8xlarge,reserved_3y,no_upfront,1.577,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:46.046387 +AWS,us-east-1,g4dn.8xlarge,reserved_3y,partial_upfront,1.577,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:44.669313 +AWS,us-east-1,g4dn.8xlarge,spot,NA,0.754748,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972604 +AWS,us-east-1,g4dn.xlarge,on_demand,NA,0.526,USD,AWS Pricing API,2025-11-30T08:50:59.455146 +AWS,us-east-1,g4dn.xlarge,reserved_1y,all_upfront,0.309247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:32.227684 +AWS,us-east-1,g4dn.xlarge,reserved_1y,no_upfront,0.309247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:08.168226 +AWS,us-east-1,g4dn.xlarge,reserved_1y,partial_upfront,0.309247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:59.651779 +AWS,us-east-1,g4dn.xlarge,reserved_3y,all_upfront,0.103082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:41.305475 +AWS,us-east-1,g4dn.xlarge,reserved_3y,no_upfront,0.103082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:09.442977 +AWS,us-east-1,g4dn.xlarge,reserved_3y,partial_upfront,0.103082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:08.486030 +AWS,us-east-1,g4dn.xlarge,spot,NA,0.207641,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973323 +AWS,us-east-1,g5.12xlarge,on_demand,NA,5.672,USD,AWS Pricing API,2025-11-30T08:49:56.681781 +AWS,us-east-1,g5.12xlarge,reserved_1y,all_upfront,3.403198,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:30.848633 +AWS,us-east-1,g5.12xlarge,reserved_1y,no_upfront,3.403198,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:05.716725 +AWS,us-east-1,g5.12xlarge,reserved_1y,partial_upfront,3.403198,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:57.104843 +AWS,us-east-1,g5.12xlarge,reserved_3y,all_upfront,2.268799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:40.050362 +AWS,us-east-1,g5.12xlarge,reserved_3y,no_upfront,2.268799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:07.959687 +AWS,us-east-1,g5.12xlarge,reserved_3y,partial_upfront,2.268799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:05.876147 +AWS,us-east-1,g5.12xlarge,spot,NA,2.227624,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971424 +AWS,us-east-1,g5.16xlarge,on_demand,NA,4.096,USD,AWS Pricing API,2025-11-30T08:49:58.882521 +AWS,us-east-1,g5.16xlarge,reserved_1y,all_upfront,2.21184,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:32.876769 +AWS,us-east-1,g5.16xlarge,reserved_1y,no_upfront,2.21184,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:07.983686 +AWS,us-east-1,g5.16xlarge,reserved_1y,partial_upfront,2.21184,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:59.166686 +AWS,us-east-1,g5.16xlarge,reserved_3y,all_upfront,2.21184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:42.087182 +AWS,us-east-1,g5.16xlarge,reserved_3y,no_upfront,2.21184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:09.976197 +AWS,us-east-1,g5.16xlarge,reserved_3y,partial_upfront,2.21184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:07.940664 +AWS,us-east-1,g5.16xlarge,spot,NA,1.319493,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971459 +AWS,us-east-1,g5.24xlarge,on_demand,NA,8.144,USD,AWS Pricing API,2025-11-30T08:49:57.695599 +AWS,us-east-1,g5.24xlarge,reserved_1y,all_upfront,6.515216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:31.797484 +AWS,us-east-1,g5.24xlarge,reserved_1y,no_upfront,6.515216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:06.758464 +AWS,us-east-1,g5.24xlarge,reserved_1y,partial_upfront,6.515216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:58.071018 +AWS,us-east-1,g5.24xlarge,reserved_3y,all_upfront,3.257605,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:40.997516 +AWS,us-east-1,g5.24xlarge,reserved_3y,no_upfront,3.257605,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:08.900747 +AWS,us-east-1,g5.24xlarge,reserved_3y,partial_upfront,3.257605,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:06.837423 +AWS,us-east-1,g5.24xlarge,spot,NA,3.269315,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971406 +AWS,us-east-1,g5.2xlarge,on_demand,NA,1.212,USD,AWS Pricing API,2025-11-30T08:50:15.402526 +AWS,us-east-1,g5.2xlarge,reserved_1y,all_upfront,0.712671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:48.975257 +AWS,us-east-1,g5.2xlarge,reserved_1y,no_upfront,0.712671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:24.231620 +AWS,us-east-1,g5.2xlarge,reserved_1y,partial_upfront,0.712671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:15.371965 +AWS,us-east-1,g5.2xlarge,reserved_3y,all_upfront,0.237557,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:58.049398 +AWS,us-east-1,g5.2xlarge,reserved_3y,no_upfront,0.237557,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:25.964102 +AWS,us-east-1,g5.2xlarge,reserved_3y,partial_upfront,0.237557,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:24.223325 +AWS,us-east-1,g5.2xlarge,spot,NA,0.521286,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971971 +AWS,us-east-1,g5.48xlarge,on_demand,NA,16.288,USD,AWS Pricing API,2025-11-30T08:49:59.608702 +AWS,us-east-1,g5.48xlarge,reserved_1y,all_upfront,8.79552,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:33.556277 +AWS,us-east-1,g5.48xlarge,reserved_1y,no_upfront,8.79552,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:08.678476 +AWS,us-east-1,g5.48xlarge,reserved_1y,partial_upfront,8.79552,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:59.861115 +AWS,us-east-1,g5.48xlarge,reserved_3y,all_upfront,8.79552,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:42.768901 +AWS,us-east-1,g5.48xlarge,reserved_3y,no_upfront,8.79552,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:10.651278 +AWS,us-east-1,g5.48xlarge,reserved_3y,partial_upfront,8.79552,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:08.634875 +AWS,us-east-1,g5.48xlarge,spot,NA,5.793032,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971506 +AWS,us-east-1,g5.4xlarge,on_demand,NA,1.624,USD,AWS Pricing API,2025-11-30T08:50:09.503427 +AWS,us-east-1,g5.4xlarge,reserved_1y,all_upfront,1.299229,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:43.015365 +AWS,us-east-1,g5.4xlarge,reserved_1y,no_upfront,1.299229,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:18.344381 +AWS,us-east-1,g5.4xlarge,reserved_1y,partial_upfront,1.299229,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:09.483186 +AWS,us-east-1,g5.4xlarge,reserved_3y,all_upfront,0.64961,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:52.242744 +AWS,us-east-1,g5.4xlarge,reserved_3y,no_upfront,0.64961,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:20.122519 +AWS,us-east-1,g5.4xlarge,reserved_3y,partial_upfront,0.64961,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:18.315005 +AWS,us-east-1,g5.4xlarge,spot,NA,0.647874,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971777 +AWS,us-east-1,g5.8xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T08:50:17.309990 +AWS,us-east-1,g5.8xlarge,reserved_1y,all_upfront,1.439384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:50.890119 +AWS,us-east-1,g5.8xlarge,reserved_1y,no_upfront,1.439384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:26.137645 +AWS,us-east-1,g5.8xlarge,reserved_1y,partial_upfront,1.439384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:17.275261 +AWS,us-east-1,g5.8xlarge,reserved_3y,all_upfront,0.479795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:59.933549 +AWS,us-east-1,g5.8xlarge,reserved_3y,no_upfront,0.479795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:27.861038 +AWS,us-east-1,g5.8xlarge,reserved_3y,partial_upfront,0.479795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:26.157190 +AWS,us-east-1,g5.8xlarge,spot,NA,0.91152,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972030 +AWS,us-east-1,g5.xlarge,on_demand,NA,1.006,USD,AWS Pricing API,2025-11-30T08:51:05.077881 +AWS,us-east-1,g5.xlarge,reserved_1y,all_upfront,0.43459,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:37.763504 +AWS,us-east-1,g5.xlarge,reserved_1y,no_upfront,0.43459,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:13.779623 +AWS,us-east-1,g5.xlarge,reserved_1y,partial_upfront,0.43459,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:05.209953 +AWS,us-east-1,g5.xlarge,reserved_3y,all_upfront,0.43459,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:46.814199 +AWS,us-east-1,g5.xlarge,reserved_3y,no_upfront,0.43459,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:15.012876 +AWS,us-east-1,g5.xlarge,reserved_3y,partial_upfront,0.43459,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:14.143318 +AWS,us-east-1,g5.xlarge,spot,NA,0.435982,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973515 +AWS,us-east-1,g6.12xlarge,on_demand,NA,4.6016,USD,AWS Pricing API,2025-11-30T08:50:00.325738 +AWS,us-east-1,g6.12xlarge,reserved_1y,all_upfront,2.11213,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:34.228121 +AWS,us-east-1,g6.12xlarge,reserved_1y,no_upfront,2.11213,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:09.405801 +AWS,us-east-1,g6.12xlarge,reserved_1y,partial_upfront,2.11213,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:00.552282 +AWS,us-east-1,g6.12xlarge,reserved_3y,all_upfront,2.11213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:43.452036 +AWS,us-east-1,g6.12xlarge,reserved_3y,no_upfront,2.11213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:11.324193 +AWS,us-east-1,g6.12xlarge,reserved_3y,partial_upfront,2.11213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:09.332794 +AWS,us-east-1,g6.12xlarge,spot,NA,1.975078,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971502 +AWS,us-east-1,g6.16xlarge,on_demand,NA,3.3968,USD,AWS Pricing API,2025-11-30T08:49:57.410183 +AWS,us-east-1,g6.16xlarge,reserved_1y,all_upfront,2.579909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:31.531097 +AWS,us-east-1,g6.16xlarge,reserved_1y,no_upfront,2.579909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:06.464543 +AWS,us-east-1,g6.16xlarge,reserved_1y,partial_upfront,2.579909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:57.794573 +AWS,us-east-1,g6.16xlarge,reserved_3y,all_upfront,0.85997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:40.726659 +AWS,us-east-1,g6.16xlarge,reserved_3y,no_upfront,0.85997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:08.631183 +AWS,us-east-1,g6.16xlarge,reserved_3y,partial_upfront,0.85997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:06.565330 +AWS,us-east-1,g6.16xlarge,spot,NA,1.069232,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971415 +AWS,us-east-1,g6.24xlarge,on_demand,NA,6.6752,USD,AWS Pricing API,2025-11-30T08:49:57.559717 +AWS,us-east-1,g6.24xlarge,reserved_1y,all_upfront,10.425799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:31.664793 +AWS,us-east-1,g6.24xlarge,reserved_1y,no_upfront,10.425799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:06.620655 +AWS,us-east-1,g6.24xlarge,reserved_1y,partial_upfront,10.425799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:57.933315 +AWS,us-east-1,g6.24xlarge,reserved_3y,all_upfront,3.475266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:40.863068 +AWS,us-east-1,g6.24xlarge,reserved_3y,no_upfront,3.475266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:08.765306 +AWS,us-east-1,g6.24xlarge,reserved_3y,partial_upfront,3.475266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:06.700170 +AWS,us-east-1,g6.24xlarge,spot,NA,2.901453,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971363 +AWS,us-east-1,g6.2xlarge,on_demand,NA,0.9776,USD,AWS Pricing API,2025-11-30T08:49:59.297192 +AWS,us-east-1,g6.2xlarge,reserved_1y,all_upfront,0.79552,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:33.283887 +AWS,us-east-1,g6.2xlarge,reserved_1y,no_upfront,0.79552,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:08.387452 +AWS,us-east-1,g6.2xlarge,reserved_1y,partial_upfront,0.79552,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:59.581770 +AWS,us-east-1,g6.2xlarge,reserved_3y,all_upfront,0.79552,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:42.493451 +AWS,us-east-1,g6.2xlarge,reserved_3y,no_upfront,0.79552,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:10.376195 +AWS,us-east-1,g6.2xlarge,reserved_3y,partial_upfront,0.79552,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:08.357016 +AWS,us-east-1,g6.2xlarge,spot,NA,0.462938,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971450 +AWS,us-east-1,g6.48xlarge,on_demand,NA,13.3504,USD,AWS Pricing API,2025-11-30T08:49:56.968143 +AWS,us-east-1,g6.48xlarge,reserved_1y,all_upfront,8.111758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:31.122521 +AWS,us-east-1,g6.48xlarge,reserved_1y,no_upfront,8.111758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:06.020948 +AWS,us-east-1,g6.48xlarge,reserved_1y,partial_upfront,8.111758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:57.376125 +AWS,us-east-1,g6.48xlarge,reserved_3y,all_upfront,2.703919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:40.318855 +AWS,us-east-1,g6.48xlarge,reserved_3y,no_upfront,2.703919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:08.226750 +AWS,us-east-1,g6.48xlarge,reserved_3y,partial_upfront,2.703919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:06.152214 +AWS,us-east-1,g6.48xlarge,spot,NA,4.742197,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971419 +AWS,us-east-1,g6.4xlarge,on_demand,NA,1.3232,USD,AWS Pricing API,2025-11-30T08:49:57.852278 +AWS,us-east-1,g6.4xlarge,reserved_1y,all_upfront,0.82035,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:31.930358 +AWS,us-east-1,g6.4xlarge,reserved_1y,no_upfront,0.82035,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:06.913880 +AWS,us-east-1,g6.4xlarge,reserved_1y,partial_upfront,0.82035,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:58.205812 +AWS,us-east-1,g6.4xlarge,reserved_3y,all_upfront,0.54691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:41.132874 +AWS,us-east-1,g6.4xlarge,reserved_3y,no_upfront,0.54691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:09.035619 +AWS,us-east-1,g6.4xlarge,reserved_3y,partial_upfront,0.54691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:06.973772 +AWS,us-east-1,g6.4xlarge,spot,NA,0.577091,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971386 +AWS,us-east-1,g6.8xlarge,on_demand,NA,2.0144,USD,AWS Pricing API,2025-11-30T08:49:58.725526 +AWS,us-east-1,g6.8xlarge,reserved_1y,all_upfront,1.561174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:32.743003 +AWS,us-east-1,g6.8xlarge,reserved_1y,no_upfront,1.561174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:07.829403 +AWS,us-east-1,g6.8xlarge,reserved_1y,partial_upfront,1.561174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:59.031574 +AWS,us-east-1,g6.8xlarge,reserved_3y,all_upfront,1.040778,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:41.951953 +AWS,us-east-1,g6.8xlarge,reserved_3y,no_upfront,1.040778,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:09.841122 +AWS,us-east-1,g6.8xlarge,reserved_3y,partial_upfront,1.040778,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:07.802781 +AWS,us-east-1,g6.8xlarge,spot,NA,0.855387,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971467 +AWS,us-east-1,g6.xlarge,on_demand,NA,0.8048,USD,AWS Pricing API,2025-11-30T08:49:57.120964 +AWS,us-east-1,g6.xlarge,reserved_1y,all_upfront,0.964498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:31.263202 +AWS,us-east-1,g6.xlarge,reserved_1y,no_upfront,0.964498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:06.176083 +AWS,us-east-1,g6.xlarge,reserved_1y,partial_upfront,0.964498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:57.521793 +AWS,us-east-1,g6.xlarge,reserved_3y,all_upfront,0.321499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:40.451689 +AWS,us-east-1,g6.xlarge,reserved_3y,no_upfront,0.321499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:08.360010 +AWS,us-east-1,g6.xlarge,reserved_3y,partial_upfront,0.321499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:06.290235 +AWS,us-east-1,g6.xlarge,spot,NA,0.406653,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971392 +AWS,us-east-1,g6e.12xlarge,on_demand,NA,10.49264,USD,AWS Pricing API,2025-11-30T08:49:59.898131 +AWS,us-east-1,g6e.12xlarge,reserved_1y,all_upfront,6.295621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:33.824163 +AWS,us-east-1,g6e.12xlarge,reserved_1y,no_upfront,6.295621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:08.974876 +AWS,us-east-1,g6e.12xlarge,reserved_1y,partial_upfront,6.295621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:00.133855 +AWS,us-east-1,g6e.12xlarge,reserved_3y,all_upfront,4.197067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:43.049552 +AWS,us-east-1,g6e.12xlarge,reserved_3y,no_upfront,4.197067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:10.920099 +AWS,us-east-1,g6e.12xlarge,reserved_3y,partial_upfront,4.197067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:08.923837 +AWS,us-east-1,g6e.12xlarge,spot,NA,4.354688,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971471 +AWS,us-east-1,g6e.16xlarge,on_demand,NA,7.57719,USD,AWS Pricing API,2025-11-30T08:49:58.431015 +AWS,us-east-1,g6e.16xlarge,reserved_1y,all_upfront,4.77363,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:32.476272 +AWS,us-east-1,g6e.16xlarge,reserved_1y,no_upfront,4.77363,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:07.534472 +AWS,us-east-1,g6e.16xlarge,reserved_1y,partial_upfront,4.77363,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:58.748713 +AWS,us-east-1,g6e.16xlarge,reserved_3y,all_upfront,4.77363,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:41.681033 +AWS,us-east-1,g6e.16xlarge,reserved_3y,no_upfront,4.77363,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:09.571857 +AWS,us-east-1,g6e.16xlarge,reserved_3y,partial_upfront,4.77363,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:07.525808 +AWS,us-east-1,g6e.16xlarge,spot,NA,2.199781,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971428 +AWS,us-east-1,g6e.24xlarge,on_demand,NA,15.06559,USD,AWS Pricing API,2025-11-30T08:49:58.293492 +AWS,us-east-1,g6e.24xlarge,reserved_1y,all_upfront,12.052504,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:32.341721 +AWS,us-east-1,g6e.24xlarge,reserved_1y,no_upfront,12.052504,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:07.379080 +AWS,us-east-1,g6e.24xlarge,reserved_1y,partial_upfront,12.052504,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:58.613342 +AWS,us-east-1,g6e.24xlarge,reserved_3y,all_upfront,6.026248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:41.549293 +AWS,us-east-1,g6e.24xlarge,reserved_3y,no_upfront,6.026248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:09.437389 +AWS,us-east-1,g6e.24xlarge,reserved_3y,partial_upfront,6.026248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:07.390701 +AWS,us-east-1,g6e.24xlarge,spot,NA,4.466833,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971454 +AWS,us-east-1,g6e.2xlarge,on_demand,NA,2.24208,USD,AWS Pricing API,2025-11-30T08:49:57.997398 +AWS,us-east-1,g6e.2xlarge,reserved_1y,all_upfront,1.41251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:32.066726 +AWS,us-east-1,g6e.2xlarge,reserved_1y,no_upfront,1.41251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:07.067099 +AWS,us-east-1,g6e.2xlarge,reserved_1y,partial_upfront,1.41251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:58.341757 +AWS,us-east-1,g6e.2xlarge,reserved_3y,all_upfront,1.41251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:41.267739 +AWS,us-east-1,g6e.2xlarge,reserved_3y,no_upfront,1.41251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:09.168408 +AWS,us-east-1,g6e.2xlarge,reserved_3y,partial_upfront,1.41251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:07.111198 +AWS,us-east-1,g6e.2xlarge,spot,NA,0.870347,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971433 +AWS,us-east-1,g6e.48xlarge,on_demand,NA,30.13118,USD,AWS Pricing API,2025-11-30T08:49:57.265332 +AWS,us-east-1,g6e.48xlarge,reserved_1y,all_upfront,21.260616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:31.397422 +AWS,us-east-1,g6e.48xlarge,reserved_1y,no_upfront,21.260616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:06.329637 +AWS,us-east-1,g6e.48xlarge,reserved_1y,partial_upfront,21.260616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:57.658665 +AWS,us-east-1,g6e.48xlarge,reserved_3y,all_upfront,7.086872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:40.593470 +AWS,us-east-1,g6e.48xlarge,reserved_3y,no_upfront,7.086872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:08.492786 +AWS,us-east-1,g6e.48xlarge,reserved_3y,partial_upfront,7.086872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:06.428437 +AWS,us-east-1,g6e.48xlarge,spot,NA,12.499868,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971410 +AWS,us-east-1,g6e.4xlarge,on_demand,NA,3.00424,USD,AWS Pricing API,2025-11-30T08:49:58.142361 +AWS,us-east-1,g6e.4xlarge,reserved_1y,all_upfront,2.403361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:32.203681 +AWS,us-east-1,g6e.4xlarge,reserved_1y,no_upfront,2.403361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:07.226087 +AWS,us-east-1,g6e.4xlarge,reserved_1y,partial_upfront,2.403361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:58.477243 +AWS,us-east-1,g6e.4xlarge,reserved_3y,all_upfront,1.201687,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:41.401895 +AWS,us-east-1,g6e.4xlarge,reserved_3y,no_upfront,1.201687,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:09.303226 +AWS,us-east-1,g6e.4xlarge,reserved_3y,partial_upfront,1.201687,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:07.251406 +AWS,us-east-1,g6e.4xlarge,spot,NA,0.983771,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971437 +AWS,us-east-1,g6e.8xlarge,on_demand,NA,4.52856,USD,AWS Pricing API,2025-11-30T08:49:56.825223 +AWS,us-east-1,g6e.8xlarge,reserved_1y,all_upfront,3.19532,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:30.987140 +AWS,us-east-1,g6e.8xlarge,reserved_1y,no_upfront,3.19532,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:05.868309 +AWS,us-east-1,g6e.8xlarge,reserved_1y,partial_upfront,3.19532,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:57.240946 +AWS,us-east-1,g6e.8xlarge,reserved_3y,all_upfront,1.065107,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:40.184050 +AWS,us-east-1,g6e.8xlarge,reserved_3y,no_upfront,1.065107,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:08.093076 +AWS,us-east-1,g6e.8xlarge,reserved_3y,partial_upfront,1.065107,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:06.015378 +AWS,us-east-1,g6e.8xlarge,spot,NA,1.402356,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971397 +AWS,us-east-1,g6e.xlarge,on_demand,NA,1.861,USD,AWS Pricing API,2025-11-30T08:49:59.751641 +AWS,us-east-1,g6e.xlarge,reserved_1y,all_upfront,1.339937,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:33.690528 +AWS,us-east-1,g6e.xlarge,reserved_1y,no_upfront,1.339937,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:08.838554 +AWS,us-east-1,g6e.xlarge,reserved_1y,partial_upfront,1.339937,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:59.996113 +AWS,us-east-1,g6e.xlarge,reserved_3y,all_upfront,0.893286,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:42.913711 +AWS,us-east-1,g6e.xlarge,reserved_3y,no_upfront,0.893286,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:10.786164 +AWS,us-east-1,g6e.xlarge,reserved_3y,partial_upfront,0.893286,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:08.774322 +AWS,us-east-1,g6e.xlarge,spot,NA,0.882827,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971493 +AWS,us-east-1,gr6.4xlarge,on_demand,NA,1.5392,USD,AWS Pricing API,2025-11-30T08:49:58.569530 +AWS,us-east-1,gr6.4xlarge,reserved_1y,all_upfront,0.954319,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:32.609294 +AWS,us-east-1,gr6.4xlarge,reserved_1y,no_upfront,0.954319,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:07.691533 +AWS,us-east-1,gr6.4xlarge,reserved_1y,partial_upfront,0.954319,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:58.883586 +AWS,us-east-1,gr6.4xlarge,reserved_3y,all_upfront,0.636206,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:41.814746 +AWS,us-east-1,gr6.4xlarge,reserved_3y,no_upfront,0.636206,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:09.706640 +AWS,us-east-1,gr6.4xlarge,reserved_3y,partial_upfront,0.636206,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:07.662894 +AWS,us-east-1,gr6.4xlarge,spot,NA,0.642641,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971441 +AWS,us-east-1,gr6.8xlarge,on_demand,NA,2.4464,USD,AWS Pricing API,2025-11-30T08:50:00.044617 +AWS,us-east-1,gr6.8xlarge,reserved_1y,all_upfront,1.895925,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:33.957076 +AWS,us-east-1,gr6.8xlarge,reserved_1y,no_upfront,1.895925,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:09.134003 +AWS,us-east-1,gr6.8xlarge,reserved_1y,partial_upfront,1.895925,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:00.277067 +AWS,us-east-1,gr6.8xlarge,reserved_3y,all_upfront,1.263962,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:43.183133 +AWS,us-east-1,gr6.8xlarge,reserved_3y,no_upfront,1.263962,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:11.055075 +AWS,us-east-1,gr6.8xlarge,reserved_3y,partial_upfront,1.263962,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:09.060197 +AWS,us-east-1,gr6.8xlarge,spot,NA,0.890617,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971497 +AWS,us-east-1,i2.2xlarge,on_demand,NA,1.705,USD,AWS Pricing API,2025-11-30T08:50:46.816066 +AWS,us-east-1,i2.2xlarge,reserved_1y,all_upfront,0.834237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:19.943337 +AWS,us-east-1,i2.2xlarge,reserved_1y,no_upfront,0.834237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:55.486517 +AWS,us-east-1,i2.2xlarge,reserved_1y,partial_upfront,0.834237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:47.010973 +AWS,us-east-1,i2.2xlarge,reserved_3y,all_upfront,0.556079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:29.008145 +AWS,us-east-1,i2.2xlarge,reserved_3y,no_upfront,0.556079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:56.998481 +AWS,us-east-1,i2.2xlarge,reserved_3y,partial_upfront,0.556079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:55.911321 +AWS,us-east-1,i2.2xlarge,spot,NA,0.513976,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972957 +AWS,us-east-1,i2.4xlarge,on_demand,NA,3.41,USD,AWS Pricing API,2025-11-30T08:50:42.713233 +AWS,us-east-1,i2.4xlarge,reserved_1y,all_upfront,1.668475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:15.895742 +AWS,us-east-1,i2.4xlarge,reserved_1y,no_upfront,1.668475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:51.410847 +AWS,us-east-1,i2.4xlarge,reserved_1y,partial_upfront,1.668475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:42.900977 +AWS,us-east-1,i2.4xlarge,reserved_3y,all_upfront,1.112158,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:24.950570 +AWS,us-east-1,i2.4xlarge,reserved_3y,no_upfront,1.112158,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:52.936918 +AWS,us-east-1,i2.4xlarge,reserved_3y,partial_upfront,1.112158,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:51.736109 +AWS,us-east-1,i2.4xlarge,spot,NA,1.013103,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972810 +AWS,us-east-1,i2.8xlarge,on_demand,NA,6.82,USD,AWS Pricing API,2025-11-30T08:50:49.505799 +AWS,us-east-1,i2.8xlarge,reserved_1y,all_upfront,7.684247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:22.514353 +AWS,us-east-1,i2.8xlarge,reserved_1y,no_upfront,7.684247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:58.153179 +AWS,us-east-1,i2.8xlarge,reserved_1y,partial_upfront,7.684247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:49.625752 +AWS,us-east-1,i2.8xlarge,reserved_3y,all_upfront,2.561416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:31.564380 +AWS,us-east-1,i2.8xlarge,reserved_3y,no_upfront,2.561416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:59.573007 +AWS,us-east-1,i2.8xlarge,reserved_3y,partial_upfront,2.561416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:58.532973 +AWS,us-east-1,i2.8xlarge,spot,NA,2.200701,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973034 +AWS,us-east-1,i2.xlarge,on_demand,NA,0.853,USD,AWS Pricing API,2025-11-30T08:50:50.079332 +AWS,us-east-1,i2.xlarge,reserved_1y,all_upfront,0.438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:23.045329 +AWS,us-east-1,i2.xlarge,reserved_1y,no_upfront,0.438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:58.706098 +AWS,us-east-1,i2.xlarge,reserved_1y,partial_upfront,0.438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:50.186746 +AWS,us-east-1,i2.xlarge,reserved_3y,all_upfront,0.438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:32.097239 +AWS,us-east-1,i2.xlarge,reserved_3y,no_upfront,0.438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:00.115147 +AWS,us-east-1,i2.xlarge,reserved_3y,partial_upfront,0.438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:59.076310 +AWS,us-east-1,i2.xlarge,spot,NA,0.193444,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973049 +AWS,us-east-1,i3.16xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T08:50:56.451437 +AWS,us-east-1,i3.16xlarge,reserved_1y,all_upfront,3.941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:29.262401 +AWS,us-east-1,i3.16xlarge,reserved_1y,no_upfront,3.941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:05.152107 +AWS,us-east-1,i3.16xlarge,reserved_1y,partial_upfront,3.941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:56.668241 +AWS,us-east-1,i3.16xlarge,reserved_3y,all_upfront,3.941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:38.326190 +AWS,us-east-1,i3.16xlarge,reserved_3y,no_upfront,3.941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:06.438909 +AWS,us-east-1,i3.16xlarge,reserved_3y,partial_upfront,3.941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:05.475077 +AWS,us-east-1,i3.16xlarge,spot,NA,1.950587,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973239 +AWS,us-east-1,i3.2xlarge,on_demand,NA,0.624,USD,AWS Pricing API,2025-11-30T08:50:15.539045 +AWS,us-east-1,i3.2xlarge,reserved_1y,all_upfront,0.405854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:49.114131 +AWS,us-east-1,i3.2xlarge,reserved_1y,no_upfront,0.405854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:24.367143 +AWS,us-east-1,i3.2xlarge,reserved_1y,partial_upfront,0.405854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:15.508641 +AWS,us-east-1,i3.2xlarge,reserved_3y,all_upfront,0.270618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:58.182883 +AWS,us-east-1,i3.2xlarge,reserved_3y,no_upfront,0.270618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:26.100376 +AWS,us-east-1,i3.2xlarge,reserved_3y,partial_upfront,0.270618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:24.361487 +AWS,us-east-1,i3.2xlarge,spot,NA,0.307182,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971964 +AWS,us-east-1,i3.4xlarge,on_demand,NA,1.248,USD,AWS Pricing API,2025-11-30T08:50:17.038399 +AWS,us-east-1,i3.4xlarge,reserved_1y,all_upfront,0.794977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:50.615744 +AWS,us-east-1,i3.4xlarge,reserved_1y,no_upfront,0.794977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:25.867412 +AWS,us-east-1,i3.4xlarge,reserved_1y,partial_upfront,0.794977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:16.998478 +AWS,us-east-1,i3.4xlarge,reserved_3y,all_upfront,0.264992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:59.660069 +AWS,us-east-1,i3.4xlarge,reserved_3y,no_upfront,0.264992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:27.593863 +AWS,us-east-1,i3.4xlarge,reserved_3y,partial_upfront,0.264992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:25.875025 +AWS,us-east-1,i3.4xlarge,spot,NA,0.627775,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972000 +AWS,us-east-1,i3.8xlarge,on_demand,NA,2.496,USD,AWS Pricing API,2025-11-30T08:50:11.143855 +AWS,us-east-1,i3.8xlarge,reserved_1y,all_upfront,1.839269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:44.637665 +AWS,us-east-1,i3.8xlarge,reserved_1y,no_upfront,1.839269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:19.987154 +AWS,us-east-1,i3.8xlarge,reserved_1y,partial_upfront,1.839269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:11.126457 +AWS,us-east-1,i3.8xlarge,reserved_3y,all_upfront,0.61309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:53.859525 +AWS,us-east-1,i3.8xlarge,reserved_3y,no_upfront,0.61309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:21.775315 +AWS,us-east-1,i3.8xlarge,reserved_3y,partial_upfront,0.61309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:19.966445 +AWS,us-east-1,i3.8xlarge,spot,NA,1.199026,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971818 +AWS,us-east-1,i3.large,on_demand,NA,0.156,USD,AWS Pricing API,2025-11-30T08:50:16.216753 +AWS,us-east-1,i3.large,reserved_1y,all_upfront,0.140251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:49.793287 +AWS,us-east-1,i3.large,reserved_1y,no_upfront,0.140251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:25.055534 +AWS,us-east-1,i3.large,reserved_1y,partial_upfront,0.140251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:16.188640 +AWS,us-east-1,i3.large,reserved_3y,all_upfront,0.070084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:58.853943 +AWS,us-east-1,i3.large,reserved_3y,no_upfront,0.070084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:26.773609 +AWS,us-east-1,i3.large,reserved_3y,partial_upfront,0.070084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:25.047251 +AWS,us-east-1,i3.large,spot,NA,0.043299,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972034 +AWS,us-east-1,i3.xlarge,on_demand,NA,0.312,USD,AWS Pricing API,2025-11-30T08:50:41.890332 +AWS,us-east-1,i3.xlarge,reserved_1y,all_upfront,0.229909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:15.085708 +AWS,us-east-1,i3.xlarge,reserved_1y,no_upfront,0.229909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:50.595681 +AWS,us-east-1,i3.xlarge,reserved_1y,partial_upfront,0.229909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:42.082408 +AWS,us-east-1,i3.xlarge,reserved_3y,all_upfront,0.076636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:24.138156 +AWS,us-east-1,i3.xlarge,reserved_3y,no_upfront,0.076636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:52.127374 +AWS,us-east-1,i3.xlarge,reserved_3y,partial_upfront,0.076636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:50.905409 +AWS,us-east-1,i3.xlarge,spot,NA,0.123604,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972774 +AWS,us-east-1,i3en.12xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:50:13.197397 +AWS,us-east-1,i3en.12xlarge,reserved_1y,all_upfront,3.447717,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:46.811955 +AWS,us-east-1,i3en.12xlarge,reserved_1y,no_upfront,3.447717,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:22.034443 +AWS,us-east-1,i3en.12xlarge,reserved_1y,partial_upfront,3.447717,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:13.179026 +AWS,us-east-1,i3en.12xlarge,reserved_3y,all_upfront,1.149239,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:55.880934 +AWS,us-east-1,i3en.12xlarge,reserved_3y,no_upfront,1.149239,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:23.805331 +AWS,us-east-1,i3en.12xlarge,reserved_3y,partial_upfront,1.149239,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:22.016165 +AWS,us-east-1,i3en.12xlarge,spot,NA,2.177713,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971852 +AWS,us-east-1,i3en.24xlarge,on_demand,NA,10.848,USD,AWS Pricing API,2025-11-30T08:50:18.576478 +AWS,us-east-1,i3en.24xlarge,reserved_1y,all_upfront,14.802511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:52.120133 +AWS,us-east-1,i3en.24xlarge,reserved_1y,no_upfront,14.802511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:27.363048 +AWS,us-east-1,i3en.24xlarge,reserved_1y,partial_upfront,14.802511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:18.522730 +AWS,us-east-1,i3en.24xlarge,reserved_3y,all_upfront,4.93417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:01.161749 +AWS,us-east-1,i3en.24xlarge,reserved_3y,no_upfront,4.93417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:29.077311 +AWS,us-east-1,i3en.24xlarge,reserved_3y,partial_upfront,4.93417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:27.410944 +AWS,us-east-1,i3en.24xlarge,spot,NA,3.777745,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972051 +AWS,us-east-1,i3en.2xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:50:08.209732 +AWS,us-east-1,i3en.2xlarge,reserved_1y,all_upfront,0.574658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:41.801384 +AWS,us-east-1,i3en.2xlarge,reserved_1y,no_upfront,0.574658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:17.121624 +AWS,us-east-1,i3en.2xlarge,reserved_1y,partial_upfront,0.574658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:08.237150 +AWS,us-east-1,i3en.2xlarge,reserved_3y,all_upfront,0.191553,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:51.034472 +AWS,us-east-1,i3en.2xlarge,reserved_3y,no_upfront,0.191553,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:18.913957 +AWS,us-east-1,i3en.2xlarge,reserved_3y,partial_upfront,0.191553,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:17.070423 +AWS,us-east-1,i3en.2xlarge,spot,NA,0.396803,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971731 +AWS,us-east-1,i3en.3xlarge,on_demand,NA,1.356,USD,AWS Pricing API,2025-11-30T08:51:03.716621 +AWS,us-east-1,i3en.3xlarge,reserved_1y,all_upfront,1.069,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:36.401907 +AWS,us-east-1,i3en.3xlarge,reserved_1y,no_upfront,1.069,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:12.404730 +AWS,us-east-1,i3en.3xlarge,reserved_1y,partial_upfront,1.069,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:03.861559 +AWS,us-east-1,i3en.3xlarge,reserved_3y,all_upfront,1.069,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:45.463091 +AWS,us-east-1,i3en.3xlarge,reserved_3y,no_upfront,1.069,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:13.635926 +AWS,us-east-1,i3en.3xlarge,reserved_3y,partial_upfront,1.069,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:12.759374 +AWS,us-east-1,i3en.3xlarge,spot,NA,0.49599,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973482 +AWS,us-east-1,i3en.6xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:50:54.947044 +AWS,us-east-1,i3en.6xlarge,reserved_1y,all_upfront,2.184927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:27.774346 +AWS,us-east-1,i3en.6xlarge,reserved_1y,no_upfront,2.184927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:03.646947 +AWS,us-east-1,i3en.6xlarge,reserved_1y,partial_upfront,2.184927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:54.986624 +AWS,us-east-1,i3en.6xlarge,reserved_3y,all_upfront,1.092309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:36.838913 +AWS,us-east-1,i3en.6xlarge,reserved_3y,no_upfront,1.092309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:04.948491 +AWS,us-east-1,i3en.6xlarge,reserved_3y,partial_upfront,1.092309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:03.950622 +AWS,us-east-1,i3en.6xlarge,spot,NA,1.119223,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973203 +AWS,us-east-1,i3en.large,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:50:27.267675 +AWS,us-east-1,i3en.large,reserved_1y,all_upfront,0.18253,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:00.624229 +AWS,us-east-1,i3en.large,reserved_1y,no_upfront,0.18253,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:35.970803 +AWS,us-east-1,i3en.large,reserved_1y,partial_upfront,0.18253,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:27.154538 +AWS,us-east-1,i3en.large,reserved_3y,all_upfront,0.09151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:09.687214 +AWS,us-east-1,i3en.large,reserved_3y,no_upfront,0.09151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:37.593927 +AWS,us-east-1,i3en.large,reserved_3y,partial_upfront,0.09151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:36.110758 +AWS,us-east-1,i3en.large,spot,NA,0.070584,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972351 +AWS,us-east-1,i3en.xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:50:26.586942 +AWS,us-east-1,i3en.xlarge,reserved_1y,all_upfront,0.293575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:59.943901 +AWS,us-east-1,i3en.xlarge,reserved_1y,no_upfront,0.293575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:35.295279 +AWS,us-east-1,i3en.xlarge,reserved_1y,partial_upfront,0.293575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:26.466037 +AWS,us-east-1,i3en.xlarge,reserved_3y,all_upfront,0.195858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:09.021463 +AWS,us-east-1,i3en.xlarge,reserved_3y,no_upfront,0.195858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:36.922191 +AWS,us-east-1,i3en.xlarge,reserved_3y,partial_upfront,0.195858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:35.415082 +AWS,us-east-1,i3en.xlarge,spot,NA,0.149556,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972314 +AWS,us-east-1,i4g.16xlarge,on_demand,NA,4.94208,USD,AWS Pricing API,2025-11-30T08:50:43.801818 +AWS,us-east-1,i4g.16xlarge,reserved_1y,all_upfront,4.233628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:16.968261 +AWS,us-east-1,i4g.16xlarge,reserved_1y,no_upfront,4.233628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:52.500775 +AWS,us-east-1,i4g.16xlarge,reserved_1y,partial_upfront,4.233628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:44.003737 +AWS,us-east-1,i4g.16xlarge,reserved_3y,all_upfront,2.116809,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:26.027176 +AWS,us-east-1,i4g.16xlarge,reserved_3y,no_upfront,2.116809,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:54.031197 +AWS,us-east-1,i4g.16xlarge,reserved_3y,partial_upfront,2.116809,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:52.849468 +AWS,us-east-1,i4g.16xlarge,spot,NA,1.754203,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972839 +AWS,us-east-1,i4g.2xlarge,on_demand,NA,0.61776,USD,AWS Pricing API,2025-11-30T08:50:58.087769 +AWS,us-east-1,i4g.2xlarge,reserved_1y,all_upfront,0.381768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:30.872485 +AWS,us-east-1,i4g.2xlarge,reserved_1y,no_upfront,0.381768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:06.800507 +AWS,us-east-1,i4g.2xlarge,reserved_1y,partial_upfront,0.381768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:58.291748 +AWS,us-east-1,i4g.2xlarge,reserved_3y,all_upfront,0.254523,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:39.955857 +AWS,us-east-1,i4g.2xlarge,reserved_3y,no_upfront,0.254523,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:08.076708 +AWS,us-east-1,i4g.2xlarge,reserved_3y,partial_upfront,0.254523,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:07.116524 +AWS,us-east-1,i4g.2xlarge,spot,NA,0.212047,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973301 +AWS,us-east-1,i4g.4xlarge,on_demand,NA,1.23552,USD,AWS Pricing API,2025-11-30T08:50:56.992648 +AWS,us-east-1,i4g.4xlarge,reserved_1y,all_upfront,0.916225,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:29.797224 +AWS,us-east-1,i4g.4xlarge,reserved_1y,no_upfront,0.916225,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:05.699140 +AWS,us-east-1,i4g.4xlarge,reserved_1y,partial_upfront,0.916225,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:57.214886 +AWS,us-east-1,i4g.4xlarge,reserved_3y,all_upfront,0.610822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:38.864333 +AWS,us-east-1,i4g.4xlarge,reserved_3y,no_upfront,0.610822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:06.975188 +AWS,us-east-1,i4g.4xlarge,reserved_3y,partial_upfront,0.610822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:06.019734 +AWS,us-east-1,i4g.4xlarge,spot,NA,0.591057,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973255 +AWS,us-east-1,i4g.8xlarge,on_demand,NA,2.47104,USD,AWS Pricing API,2025-11-30T08:50:44.070926 +AWS,us-east-1,i4g.8xlarge,reserved_1y,all_upfront,1.795776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:17.237534 +AWS,us-east-1,i4g.8xlarge,reserved_1y,no_upfront,1.795776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:52.769299 +AWS,us-east-1,i4g.8xlarge,reserved_1y,partial_upfront,1.795776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:44.272699 +AWS,us-east-1,i4g.8xlarge,reserved_3y,all_upfront,0.598592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:26.294844 +AWS,us-east-1,i4g.8xlarge,reserved_3y,no_upfront,0.598592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:54.296753 +AWS,us-east-1,i4g.8xlarge,reserved_3y,partial_upfront,0.598592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:53.124463 +AWS,us-east-1,i4g.8xlarge,spot,NA,1.168419,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972856 +AWS,us-east-1,i4g.large,on_demand,NA,0.15444,USD,AWS Pricing API,2025-11-30T08:50:17.581773 +AWS,us-east-1,i4g.large,reserved_1y,all_upfront,0.112215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:51.175823 +AWS,us-east-1,i4g.large,reserved_1y,no_upfront,0.112215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:26.407090 +AWS,us-east-1,i4g.large,reserved_1y,partial_upfront,0.112215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:17.544611 +AWS,us-east-1,i4g.large,reserved_3y,all_upfront,0.037405,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:00.203061 +AWS,us-east-1,i4g.large,reserved_3y,no_upfront,0.037405,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:28.133063 +AWS,us-east-1,i4g.large,reserved_3y,partial_upfront,0.037405,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:26.432479 +AWS,us-east-1,i4g.large,spot,NA,0.057126,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972082 +AWS,us-east-1,i4g.xlarge,on_demand,NA,0.30888,USD,AWS Pricing API,2025-11-30T08:50:40.657118 +AWS,us-east-1,i4g.xlarge,reserved_1y,all_upfront,0.264552,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:13.875796 +AWS,us-east-1,i4g.xlarge,reserved_1y,no_upfront,0.264552,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:49.358220 +AWS,us-east-1,i4g.xlarge,reserved_1y,partial_upfront,0.264552,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:40.853870 +AWS,us-east-1,i4g.xlarge,reserved_3y,all_upfront,0.132284,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:22.905394 +AWS,us-east-1,i4g.xlarge,reserved_3y,no_upfront,0.132284,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:50.920788 +AWS,us-east-1,i4g.xlarge,reserved_3y,partial_upfront,0.132284,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:49.647241 +AWS,us-east-1,i4g.xlarge,spot,NA,0.107922,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972710 +AWS,us-east-1,i4i.16xlarge,on_demand,NA,5.491,USD,AWS Pricing API,2025-11-30T08:50:31.485760 +AWS,us-east-1,i4i.16xlarge,reserved_1y,all_upfront,3.393804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:04.829011 +AWS,us-east-1,i4i.16xlarge,reserved_1y,no_upfront,3.393804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:40.205226 +AWS,us-east-1,i4i.16xlarge,reserved_1y,partial_upfront,3.393804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:31.385579 +AWS,us-east-1,i4i.16xlarge,reserved_3y,all_upfront,2.262601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:13.861225 +AWS,us-east-1,i4i.16xlarge,reserved_3y,no_upfront,2.262601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:41.809236 +AWS,us-east-1,i4i.16xlarge,reserved_3y,partial_upfront,2.262601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:40.376534 +AWS,us-east-1,i4i.16xlarge,spot,NA,2.779909,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972462 +AWS,us-east-1,i4i.2xlarge,on_demand,NA,0.686,USD,AWS Pricing API,2025-11-30T08:50:47.651000 +AWS,us-east-1,i4i.2xlarge,reserved_1y,all_upfront,0.415753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:20.751701 +AWS,us-east-1,i4i.2xlarge,reserved_1y,no_upfront,0.415753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:56.310993 +AWS,us-east-1,i4i.2xlarge,reserved_1y,partial_upfront,0.415753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:47.826870 +AWS,us-east-1,i4i.2xlarge,reserved_3y,all_upfront,0.138584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:29.814861 +AWS,us-east-1,i4i.2xlarge,reserved_3y,no_upfront,0.138584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:57.808079 +AWS,us-east-1,i4i.2xlarge,reserved_3y,partial_upfront,0.138584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:56.745558 +AWS,us-east-1,i4i.2xlarge,spot,NA,0.303189,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972961 +AWS,us-east-1,i4i.32xlarge,on_demand,NA,10.9824,USD,AWS Pricing API,2025-11-30T08:51:00.281829 +AWS,us-east-1,i4i.32xlarge,reserved_1y,all_upfront,7.981735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:33.032818 +AWS,us-east-1,i4i.32xlarge,reserved_1y,no_upfront,7.981735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:08.992388 +AWS,us-east-1,i4i.32xlarge,reserved_1y,partial_upfront,7.981735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:00.463099 +AWS,us-east-1,i4i.32xlarge,reserved_3y,all_upfront,2.660578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:42.105030 +AWS,us-east-1,i4i.32xlarge,reserved_3y,no_upfront,2.660578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:10.249482 +AWS,us-east-1,i4i.32xlarge,reserved_3y,partial_upfront,2.660578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:09.324130 +AWS,us-east-1,i4i.32xlarge,spot,NA,3.561134,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973384 +AWS,us-east-1,i4i.4xlarge,on_demand,NA,1.373,USD,AWS Pricing API,2025-11-30T08:50:35.996088 +AWS,us-east-1,i4i.4xlarge,reserved_1y,all_upfront,2.074429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:09.302469 +AWS,us-east-1,i4i.4xlarge,reserved_1y,no_upfront,2.074429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:44.712966 +AWS,us-east-1,i4i.4xlarge,reserved_1y,partial_upfront,2.074429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:36.160009 +AWS,us-east-1,i4i.4xlarge,reserved_3y,all_upfront,0.691476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:18.328485 +AWS,us-east-1,i4i.4xlarge,reserved_3y,no_upfront,0.691476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:46.317107 +AWS,us-east-1,i4i.4xlarge,reserved_3y,partial_upfront,0.691476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:44.948802 +AWS,us-east-1,i4i.4xlarge,spot,NA,0.826502,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972597 +AWS,us-east-1,i4i.8xlarge,on_demand,NA,2.746,USD,AWS Pricing API,2025-11-30T08:50:39.010228 +AWS,us-east-1,i4i.8xlarge,reserved_1y,all_upfront,3.316324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:12.260359 +AWS,us-east-1,i4i.8xlarge,reserved_1y,no_upfront,3.316324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:47.715020 +AWS,us-east-1,i4i.8xlarge,reserved_1y,partial_upfront,3.316324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:39.193991 +AWS,us-east-1,i4i.8xlarge,reserved_3y,all_upfront,1.105441,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:21.288423 +AWS,us-east-1,i4i.8xlarge,reserved_3y,no_upfront,1.105441,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:49.285224 +AWS,us-east-1,i4i.8xlarge,reserved_3y,partial_upfront,1.105441,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:47.991875 +AWS,us-east-1,i4i.8xlarge,spot,NA,1.552714,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972702 +AWS,us-east-1,i4i.large,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:51:04.940961 +AWS,us-east-1,i4i.large,reserved_1y,all_upfront,0.127584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:37.621357 +AWS,us-east-1,i4i.large,reserved_1y,no_upfront,0.127584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:13.636263 +AWS,us-east-1,i4i.large,reserved_1y,partial_upfront,0.127584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:05.074916 +AWS,us-east-1,i4i.large,reserved_3y,all_upfront,0.085195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:46.681045 +AWS,us-east-1,i4i.large,reserved_3y,no_upfront,0.085195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:14.876297 +AWS,us-east-1,i4i.large,reserved_3y,partial_upfront,0.085195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:14.006512 +AWS,us-east-1,i4i.large,spot,NA,0.049575,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973531 +AWS,us-east-1,i4i.xlarge,on_demand,NA,0.343,USD,AWS Pricing API,2025-11-30T08:50:46.000999 +AWS,us-east-1,i4i.xlarge,reserved_1y,all_upfront,0.223,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:19.111946 +AWS,us-east-1,i4i.xlarge,reserved_1y,no_upfront,0.223,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:54.674420 +AWS,us-east-1,i4i.xlarge,reserved_1y,partial_upfront,0.223,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:46.195015 +AWS,us-east-1,i4i.xlarge,reserved_3y,all_upfront,0.223,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:28.193301 +AWS,us-east-1,i4i.xlarge,reserved_3y,no_upfront,0.223,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:56.187459 +AWS,us-east-1,i4i.xlarge,reserved_3y,partial_upfront,0.223,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:55.067867 +AWS,us-east-1,i4i.xlarge,spot,NA,0.126891,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972888 +AWS,us-east-1,i7i.12xlarge,on_demand,NA,4.5302,USD,AWS Pricing API,2025-11-30T08:50:23.982402 +AWS,us-east-1,i7i.12xlarge,spot,NA,1.988825,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972236 +AWS,us-east-1,i7i.16xlarge,on_demand,NA,6.0403,USD,AWS Pricing API,2025-11-30T08:51:10.279831 +AWS,us-east-1,i7i.16xlarge,spot,NA,2.59197,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973666 +AWS,us-east-1,i7i.24xlarge,on_demand,NA,9.0605,USD,AWS Pricing API,2025-11-30T08:50:04.475153 +AWS,us-east-1,i7i.24xlarge,spot,NA,3.614712,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971638 +AWS,us-east-1,i7i.2xlarge,on_demand,NA,0.755,USD,AWS Pricing API,2025-11-30T08:50:01.525763 +AWS,us-east-1,i7i.2xlarge,spot,NA,0.252609,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971532 +AWS,us-east-1,i7i.48xlarge,on_demand,NA,18.121,USD,AWS Pricing API,2025-11-30T08:50:03.377304 +AWS,us-east-1,i7i.48xlarge,spot,NA,8.186245,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971562 +AWS,us-east-1,i7i.4xlarge,on_demand,NA,1.5101,USD,AWS Pricing API,2025-11-30T08:51:07.138022 +AWS,us-east-1,i7i.4xlarge,spot,NA,0.678054,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973602 +AWS,us-east-1,i7i.8xlarge,on_demand,NA,3.0202,USD,AWS Pricing API,2025-11-30T08:50:36.680927 +AWS,us-east-1,i7i.8xlarge,spot,NA,1.322448,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972608 +AWS,us-east-1,i7i.large,on_demand,NA,0.1888,USD,AWS Pricing API,2025-11-30T08:50:20.072808 +AWS,us-east-1,i7i.large,spot,NA,0.054271,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972087 +AWS,us-east-1,i7i.xlarge,on_demand,NA,0.3775,USD,AWS Pricing API,2025-11-30T08:50:28.621588 +AWS,us-east-1,i7i.xlarge,spot,NA,0.123179,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972403 +AWS,us-east-1,i8g.12xlarge,on_demand,NA,4.1184,USD,AWS Pricing API,2025-11-30T08:51:00.555131 +AWS,us-east-1,i8g.12xlarge,spot,NA,1.484559,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973396 +AWS,us-east-1,i8g.16xlarge,on_demand,NA,5.4912,USD,AWS Pricing API,2025-11-30T08:50:57.539066 +AWS,us-east-1,i8g.16xlarge,spot,NA,1.759288,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973293 +AWS,us-east-1,i8g.24xlarge,on_demand,NA,8.2368,USD,AWS Pricing API,2025-11-30T08:50:59.997797 +AWS,us-east-1,i8g.24xlarge,spot,NA,2.635393,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973355 +AWS,us-east-1,i8g.2xlarge,on_demand,NA,0.6864,USD,AWS Pricing API,2025-11-30T08:50:26.722772 +AWS,us-east-1,i8g.2xlarge,spot,NA,0.243173,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972327 +AWS,us-east-1,i8g.48xlarge,on_demand,NA,16.4736,USD,AWS Pricing API,2025-11-30T08:50:06.964486 +AWS,us-east-1,i8g.48xlarge,spot,NA,5.531648,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971702 +AWS,us-east-1,i8g.4xlarge,on_demand,NA,1.3728,USD,AWS Pricing API,2025-11-30T08:50:54.676485 +AWS,us-east-1,i8g.4xlarge,spot,NA,0.490173,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973176 +AWS,us-east-1,i8g.8xlarge,on_demand,NA,2.7456,USD,AWS Pricing API,2025-11-30T08:51:13.982250 +AWS,us-east-1,i8g.8xlarge,spot,NA,0.953151,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973783 +AWS,us-east-1,i8g.large,on_demand,NA,0.1716,USD,AWS Pricing API,2025-11-30T08:50:31.214697 +AWS,us-east-1,i8g.large,spot,NA,0.064545,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972454 +AWS,us-east-1,i8g.xlarge,on_demand,NA,0.3432,USD,AWS Pricing API,2025-11-30T08:50:23.162938 +AWS,us-east-1,i8g.xlarge,spot,NA,0.115792,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972228 +AWS,us-east-1,im4gn.16xlarge,on_demand,NA,5.82067,USD,AWS Pricing API,2025-11-30T08:50:30.265347 +AWS,us-east-1,im4gn.16xlarge,reserved_1y,all_upfront,3.484132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:03.620401 +AWS,us-east-1,im4gn.16xlarge,reserved_1y,no_upfront,3.484132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:38.969264 +AWS,us-east-1,im4gn.16xlarge,reserved_1y,partial_upfront,3.484132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:30.158422 +AWS,us-east-1,im4gn.16xlarge,reserved_3y,all_upfront,1.161377,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:12.652638 +AWS,us-east-1,im4gn.16xlarge,reserved_3y,no_upfront,1.161377,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:40.590202 +AWS,us-east-1,im4gn.16xlarge,reserved_3y,partial_upfront,1.161377,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:39.131107 +AWS,us-east-1,im4gn.16xlarge,spot,NA,1.798728,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972447 +AWS,us-east-1,im4gn.2xlarge,on_demand,NA,0.72758,USD,AWS Pricing API,2025-11-30T08:50:27.942905 +AWS,us-east-1,im4gn.2xlarge,reserved_1y,all_upfront,0.533307,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:01.294849 +AWS,us-east-1,im4gn.2xlarge,reserved_1y,no_upfront,0.533307,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:36.648065 +AWS,us-east-1,im4gn.2xlarge,reserved_1y,partial_upfront,0.533307,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:27.845426 +AWS,us-east-1,im4gn.2xlarge,reserved_3y,all_upfront,0.355529,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:10.355598 +AWS,us-east-1,im4gn.2xlarge,reserved_3y,no_upfront,0.355529,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:38.271213 +AWS,us-east-1,im4gn.2xlarge,reserved_3y,partial_upfront,0.355529,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:36.791928 +AWS,us-east-1,im4gn.2xlarge,spot,NA,0.210567,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972375 +AWS,us-east-1,im4gn.4xlarge,on_demand,NA,1.45517,USD,AWS Pricing API,2025-11-30T08:50:22.617359 +AWS,us-east-1,im4gn.4xlarge,reserved_1y,all_upfront,1.11989,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:56.056300 +AWS,us-east-1,im4gn.4xlarge,reserved_1y,no_upfront,1.11989,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:31.339462 +AWS,us-east-1,im4gn.4xlarge,reserved_1y,partial_upfront,1.11989,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:22.471562 +AWS,us-east-1,im4gn.4xlarge,reserved_3y,all_upfront,1.11989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:05.085655 +AWS,us-east-1,im4gn.4xlarge,reserved_3y,no_upfront,1.11989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:32.971608 +AWS,us-east-1,im4gn.4xlarge,reserved_3y,partial_upfront,1.11989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:31.411628 +AWS,us-east-1,im4gn.4xlarge,spot,NA,0.453398,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972192 +AWS,us-east-1,im4gn.8xlarge,on_demand,NA,2.91034,USD,AWS Pricing API,2025-11-30T08:50:23.021913 +AWS,us-east-1,im4gn.8xlarge,reserved_1y,all_upfront,2.133113,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:56.456456 +AWS,us-east-1,im4gn.8xlarge,reserved_1y,no_upfront,2.133113,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:31.749920 +AWS,us-east-1,im4gn.8xlarge,reserved_1y,partial_upfront,2.133113,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:22.878027 +AWS,us-east-1,im4gn.8xlarge,reserved_3y,all_upfront,1.422078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:05.506475 +AWS,us-east-1,im4gn.8xlarge,reserved_3y,no_upfront,1.422078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:33.373490 +AWS,us-east-1,im4gn.8xlarge,reserved_3y,partial_upfront,1.422078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:31.823351 +AWS,us-east-1,im4gn.8xlarge,spot,NA,0.769911,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972172 +AWS,us-east-1,im4gn.large,on_demand,NA,0.1819,USD,AWS Pricing API,2025-11-30T08:50:23.708921 +AWS,us-east-1,im4gn.large,reserved_1y,all_upfront,0.11665,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:57.117327 +AWS,us-east-1,im4gn.large,reserved_1y,no_upfront,0.11665,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:32.424637 +AWS,us-east-1,im4gn.large,reserved_1y,partial_upfront,0.11665,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:23.554397 +AWS,us-east-1,im4gn.large,reserved_3y,all_upfront,0.11665,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:06.183352 +AWS,us-east-1,im4gn.large,reserved_3y,no_upfront,0.11665,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:34.050457 +AWS,us-east-1,im4gn.large,reserved_3y,partial_upfront,0.11665,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:32.502775 +AWS,us-east-1,im4gn.large,spot,NA,0.065746,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972208 +AWS,us-east-1,im4gn.xlarge,on_demand,NA,0.36379,USD,AWS Pricing API,2025-11-30T08:51:12.351092 +AWS,us-east-1,im4gn.xlarge,reserved_1y,all_upfront,0.434247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:44.973425 +AWS,us-east-1,im4gn.xlarge,reserved_1y,no_upfront,0.434247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:21.015027 +AWS,us-east-1,im4gn.xlarge,reserved_1y,partial_upfront,0.434247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:12.335772 +AWS,us-east-1,im4gn.xlarge,reserved_3y,all_upfront,0.144749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:53.931806 +AWS,us-east-1,im4gn.xlarge,reserved_3y,no_upfront,0.144749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:22.160703 +AWS,us-east-1,im4gn.xlarge,reserved_3y,partial_upfront,0.144749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:21.465215 +AWS,us-east-1,im4gn.xlarge,spot,NA,0.122659,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973697 +AWS,us-east-1,is4gen.2xlarge,on_demand,NA,1.1526,USD,AWS Pricing API,2025-11-30T08:50:20.895317 +AWS,us-east-1,is4gen.2xlarge,reserved_1y,all_upfront,0.748655,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:54.415160 +AWS,us-east-1,is4gen.2xlarge,reserved_1y,no_upfront,0.748655,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:29.675800 +AWS,us-east-1,is4gen.2xlarge,reserved_1y,partial_upfront,0.748655,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:20.835167 +AWS,us-east-1,is4gen.2xlarge,reserved_3y,all_upfront,0.499112,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:03.464720 +AWS,us-east-1,is4gen.2xlarge,reserved_3y,no_upfront,0.499112,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:31.357031 +AWS,us-east-1,is4gen.2xlarge,reserved_3y,partial_upfront,0.499112,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:29.744456 +AWS,us-east-1,is4gen.2xlarge,spot,NA,0.355994,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972160 +AWS,us-east-1,is4gen.4xlarge,on_demand,NA,2.3052,USD,AWS Pricing API,2025-11-30T08:51:04.669730 +AWS,us-east-1,is4gen.4xlarge,reserved_1y,all_upfront,1.49731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:37.353671 +AWS,us-east-1,is4gen.4xlarge,reserved_1y,no_upfront,1.49731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:13.363761 +AWS,us-east-1,is4gen.4xlarge,reserved_1y,partial_upfront,1.49731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:04.806317 +AWS,us-east-1,is4gen.4xlarge,reserved_3y,all_upfront,0.998223,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:46.410545 +AWS,us-east-1,is4gen.4xlarge,reserved_3y,no_upfront,0.998223,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:14.603080 +AWS,us-east-1,is4gen.4xlarge,reserved_3y,partial_upfront,0.998223,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:13.730826 +AWS,us-east-1,is4gen.4xlarge,spot,NA,0.908826,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973519 +AWS,us-east-1,is4gen.8xlarge,on_demand,NA,4.6104,USD,AWS Pricing API,2025-11-30T08:50:02.548530 +AWS,us-east-1,is4gen.8xlarge,reserved_1y,all_upfront,2.994734,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:36.256578 +AWS,us-east-1,is4gen.8xlarge,reserved_1y,no_upfront,2.994734,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:11.492605 +AWS,us-east-1,is4gen.8xlarge,reserved_1y,partial_upfront,2.994734,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:02.622034 +AWS,us-east-1,is4gen.8xlarge,reserved_3y,all_upfront,1.996485,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:45.487313 +AWS,us-east-1,is4gen.8xlarge,reserved_3y,no_upfront,1.996485,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:13.355331 +AWS,us-east-1,is4gen.8xlarge,reserved_3y,partial_upfront,1.996485,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:11.402513 +AWS,us-east-1,is4gen.8xlarge,spot,NA,1.432985,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971566 +AWS,us-east-1,is4gen.large,on_demand,NA,0.28815,USD,AWS Pricing API,2025-11-30T08:50:44.485592 +AWS,us-east-1,is4gen.large,reserved_1y,all_upfront,0.224629,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:17.639614 +AWS,us-east-1,is4gen.large,reserved_1y,no_upfront,0.224629,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:53.176259 +AWS,us-east-1,is4gen.large,reserved_1y,partial_upfront,0.224629,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:44.679975 +AWS,us-east-1,is4gen.large,reserved_3y,all_upfront,0.149743,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:26.718193 +AWS,us-east-1,is4gen.large,reserved_3y,no_upfront,0.149743,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:54.701728 +AWS,us-east-1,is4gen.large,reserved_3y,partial_upfront,0.149743,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:53.545840 +AWS,us-east-1,is4gen.large,spot,NA,0.146129,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972852 +AWS,us-east-1,is4gen.xlarge,on_demand,NA,0.5763,USD,AWS Pricing API,2025-11-30T08:50:28.758328 +AWS,us-east-1,is4gen.xlarge,reserved_1y,all_upfront,0.374385,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:02.125728 +AWS,us-east-1,is4gen.xlarge,reserved_1y,no_upfront,0.374385,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:37.466855 +AWS,us-east-1,is4gen.xlarge,reserved_1y,partial_upfront,0.374385,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:28.663200 +AWS,us-east-1,is4gen.xlarge,reserved_3y,all_upfront,0.249575,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:11.160032 +AWS,us-east-1,is4gen.xlarge,reserved_3y,no_upfront,0.249575,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:39.089846 +AWS,us-east-1,is4gen.xlarge,reserved_3y,partial_upfront,0.249575,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:37.622386 +AWS,us-east-1,is4gen.xlarge,spot,NA,0.260397,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972395 +AWS,us-east-1,m4.10xlarge,on_demand,NA,2.0,USD,AWS Pricing API,2025-11-30T08:50:33.949023 +AWS,us-east-1,m4.10xlarge,reserved_1y,all_upfront,1.156393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:07.273426 +AWS,us-east-1,m4.10xlarge,reserved_1y,no_upfront,1.156393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:42.663431 +AWS,us-east-1,m4.10xlarge,reserved_1y,partial_upfront,1.156393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:34.088092 +AWS,us-east-1,m4.10xlarge,reserved_3y,all_upfront,0.385464,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:16.288323 +AWS,us-east-1,m4.10xlarge,reserved_3y,no_upfront,0.385464,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:44.283780 +AWS,us-east-1,m4.10xlarge,reserved_3y,partial_upfront,0.385464,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:42.866806 +AWS,us-east-1,m4.10xlarge,spot,NA,0.769366,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972498 +AWS,us-east-1,m4.16xlarge,on_demand,NA,3.2,USD,AWS Pricing API,2025-11-30T08:50:39.147842 +AWS,us-east-1,m4.16xlarge,reserved_1y,all_upfront,2.2798,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:12.409048 +AWS,us-east-1,m4.16xlarge,reserved_1y,no_upfront,2.2798,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:47.851306 +AWS,us-east-1,m4.16xlarge,reserved_1y,partial_upfront,2.2798,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:39.331924 +AWS,us-east-1,m4.16xlarge,reserved_3y,all_upfront,2.2798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:21.423666 +AWS,us-east-1,m4.16xlarge,reserved_3y,no_upfront,2.2798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:49.425778 +AWS,us-east-1,m4.16xlarge,reserved_3y,partial_upfront,2.2798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:48.130018 +AWS,us-east-1,m4.16xlarge,spot,NA,1.12058,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972664 +AWS,us-east-1,m4.2xlarge,on_demand,NA,0.4,USD,AWS Pricing API,2025-11-30T08:50:20.482171 +AWS,us-east-1,m4.2xlarge,reserved_1y,all_upfront,0.285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:54.010771 +AWS,us-east-1,m4.2xlarge,reserved_1y,no_upfront,0.285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:29.268965 +AWS,us-east-1,m4.2xlarge,reserved_1y,partial_upfront,0.285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:20.423971 +AWS,us-east-1,m4.2xlarge,reserved_3y,all_upfront,0.285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:03.060536 +AWS,us-east-1,m4.2xlarge,reserved_3y,no_upfront,0.285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:30.955842 +AWS,us-east-1,m4.2xlarge,reserved_3y,partial_upfront,0.285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:29.332776 +AWS,us-east-1,m4.2xlarge,spot,NA,0.18831,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972143 +AWS,us-east-1,m4.4xlarge,on_demand,NA,0.8,USD,AWS Pricing API,2025-11-30T08:50:55.359038 +AWS,us-east-1,m4.4xlarge,reserved_1y,all_upfront,0.531963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:28.184285 +AWS,us-east-1,m4.4xlarge,reserved_1y,no_upfront,0.531963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:04.057682 +AWS,us-east-1,m4.4xlarge,reserved_1y,partial_upfront,0.531963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:55.395385 +AWS,us-east-1,m4.4xlarge,reserved_3y,all_upfront,0.177321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:37.237218 +AWS,us-east-1,m4.4xlarge,reserved_3y,no_upfront,0.177321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:05.356740 +AWS,us-east-1,m4.4xlarge,reserved_3y,partial_upfront,0.177321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:04.368093 +AWS,us-east-1,m4.4xlarge,spot,NA,0.339151,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973191 +AWS,us-east-1,m4.large,on_demand,NA,0.1,USD,AWS Pricing API,2025-11-30T08:50:02.122461 +AWS,us-east-1,m4.large,reserved_1y,all_upfront,0.058952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:35.853228 +AWS,us-east-1,m4.large,reserved_1y,no_upfront,0.058952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:11.086094 +AWS,us-east-1,m4.large,reserved_1y,partial_upfront,0.058952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:02.199378 +AWS,us-east-1,m4.large,reserved_3y,all_upfront,0.039317,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:45.084175 +AWS,us-east-1,m4.large,reserved_3y,no_upfront,0.039317,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:12.952400 +AWS,us-east-1,m4.large,reserved_3y,partial_upfront,0.039317,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:10.991303 +AWS,us-east-1,m4.large,spot,NA,0.046973,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971546 +AWS,us-east-1,m4.xlarge,on_demand,NA,0.2,USD,AWS Pricing API,2025-11-30T08:50:43.529872 +AWS,us-east-1,m4.xlarge,reserved_1y,all_upfront,0.135708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:16.704700 +AWS,us-east-1,m4.xlarge,reserved_1y,no_upfront,0.135708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:52.229582 +AWS,us-east-1,m4.xlarge,reserved_1y,partial_upfront,0.135708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:43.732147 +AWS,us-east-1,m4.xlarge,reserved_3y,all_upfront,0.090503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:25.760248 +AWS,us-east-1,m4.xlarge,reserved_3y,no_upfront,0.090503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:53.752463 +AWS,us-east-1,m4.xlarge,reserved_3y,partial_upfront,0.090503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:52.572650 +AWS,us-east-1,m4.xlarge,spot,NA,0.08894,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972814 +AWS,us-east-1,m5.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:50:20.618955 +AWS,us-east-1,m5.12xlarge,reserved_1y,all_upfront,1.693,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:54.146677 +AWS,us-east-1,m5.12xlarge,reserved_1y,no_upfront,1.693,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:29.403938 +AWS,us-east-1,m5.12xlarge,reserved_1y,partial_upfront,1.693,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:20.560692 +AWS,us-east-1,m5.12xlarge,reserved_3y,all_upfront,1.693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:03.198194 +AWS,us-east-1,m5.12xlarge,reserved_3y,no_upfront,1.693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:31.090182 +AWS,us-east-1,m5.12xlarge,reserved_3y,partial_upfront,1.693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:29.469934 +AWS,us-east-1,m5.12xlarge,spot,NA,0.786821,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972127 +AWS,us-east-1,m5.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:50:53.707059 +AWS,us-east-1,m5.16xlarge,reserved_1y,all_upfront,1.558,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:26.569903 +AWS,us-east-1,m5.16xlarge,reserved_1y,no_upfront,1.558,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:02.379763 +AWS,us-east-1,m5.16xlarge,reserved_1y,partial_upfront,1.558,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:53.749528 +AWS,us-east-1,m5.16xlarge,reserved_3y,all_upfront,1.558,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:35.620179 +AWS,us-east-1,m5.16xlarge,reserved_3y,no_upfront,1.558,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:03.723257 +AWS,us-east-1,m5.16xlarge,reserved_3y,partial_upfront,1.558,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:02.702679 +AWS,us-east-1,m5.16xlarge,spot,NA,0.97397,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973168 +AWS,us-east-1,m5.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:51:05.223819 +AWS,us-east-1,m5.24xlarge,reserved_1y,all_upfront,4.327776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:37.900778 +AWS,us-east-1,m5.24xlarge,reserved_1y,no_upfront,4.327776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:13.919308 +AWS,us-east-1,m5.24xlarge,reserved_1y,partial_upfront,4.327776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:05.343700 +AWS,us-east-1,m5.24xlarge,reserved_3y,all_upfront,2.163925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:46.949542 +AWS,us-east-1,m5.24xlarge,reserved_3y,no_upfront,2.163925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:15.149591 +AWS,us-east-1,m5.24xlarge,reserved_3y,partial_upfront,2.163925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:14.278509 +AWS,us-east-1,m5.24xlarge,spot,NA,1.354702,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973499 +AWS,us-east-1,m5.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:50:36.813626 +AWS,us-east-1,m5.2xlarge,reserved_1y,all_upfront,0.282,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:10.112083 +AWS,us-east-1,m5.2xlarge,reserved_1y,no_upfront,0.282,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:45.527828 +AWS,us-east-1,m5.2xlarge,reserved_1y,partial_upfront,0.282,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:36.977437 +AWS,us-east-1,m5.2xlarge,reserved_3y,all_upfront,0.282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:19.134657 +AWS,us-east-1,m5.2xlarge,reserved_3y,no_upfront,0.282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:47.126231 +AWS,us-east-1,m5.2xlarge,reserved_3y,partial_upfront,0.282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:45.774533 +AWS,us-east-1,m5.2xlarge,spot,NA,0.177097,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972616 +AWS,us-east-1,m5.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:50:46.274332 +AWS,us-east-1,m5.4xlarge,reserved_1y,all_upfront,0.460365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:19.399368 +AWS,us-east-1,m5.4xlarge,reserved_1y,no_upfront,0.460365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:54.946082 +AWS,us-east-1,m5.4xlarge,reserved_1y,partial_upfront,0.460365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:46.468399 +AWS,us-east-1,m5.4xlarge,reserved_3y,all_upfront,0.306788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:28.458681 +AWS,us-east-1,m5.4xlarge,reserved_3y,no_upfront,0.306788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:56.455596 +AWS,us-east-1,m5.4xlarge,reserved_3y,partial_upfront,0.306788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:55.345948 +AWS,us-east-1,m5.4xlarge,spot,NA,0.37052,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972923 +AWS,us-east-1,m5.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:51:13.305369 +AWS,us-east-1,m5.8xlarge,reserved_1y,all_upfront,1.074329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:45.915683 +AWS,us-east-1,m5.8xlarge,reserved_1y,no_upfront,1.074329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:21.976634 +AWS,us-east-1,m5.8xlarge,reserved_1y,partial_upfront,1.074329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:13.279576 +AWS,us-east-1,m5.8xlarge,reserved_3y,all_upfront,0.71611,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:54.869676 +AWS,us-east-1,m5.8xlarge,reserved_3y,no_upfront,0.71611,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:23.103412 +AWS,us-east-1,m5.8xlarge,reserved_3y,partial_upfront,0.71611,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:22.437865 +AWS,us-east-1,m5.8xlarge,spot,NA,0.52055,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973744 +AWS,us-east-1,m5.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T08:50:37.222521 +AWS,us-east-1,m5.large,reserved_1y,all_upfront,0.067562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:10.518758 +AWS,us-east-1,m5.large,reserved_1y,no_upfront,0.067562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:45.941803 +AWS,us-east-1,m5.large,reserved_1y,partial_upfront,0.067562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:37.386297 +AWS,us-east-1,m5.large,reserved_3y,all_upfront,0.045187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:19.549388 +AWS,us-east-1,m5.large,reserved_3y,no_upfront,0.045187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:47.533564 +AWS,us-east-1,m5.large,reserved_3y,partial_upfront,0.045187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:46.189586 +AWS,us-east-1,m5.large,spot,NA,0.039042,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972645 +AWS,us-east-1,m5.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:51:11.101332 +AWS,us-east-1,m5.xlarge,reserved_1y,all_upfront,0.1129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:43.746783 +AWS,us-east-1,m5.xlarge,reserved_1y,no_upfront,0.1129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:19.782556 +AWS,us-east-1,m5.xlarge,reserved_1y,partial_upfront,0.1129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:11.124983 +AWS,us-east-1,m5.xlarge,reserved_3y,all_upfront,0.037633,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:52.724706 +AWS,us-east-1,m5.xlarge,reserved_3y,no_upfront,0.037633,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:20.937481 +AWS,us-east-1,m5.xlarge,reserved_3y,partial_upfront,0.037633,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:20.216943 +AWS,us-east-1,m5.xlarge,spot,NA,0.071378,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973681 +AWS,us-east-1,m5a.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T08:50:37.774492 +AWS,us-east-1,m5a.12xlarge,reserved_1y,all_upfront,1.511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:11.054579 +AWS,us-east-1,m5a.12xlarge,reserved_1y,no_upfront,1.511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:46.488072 +AWS,us-east-1,m5a.12xlarge,reserved_1y,partial_upfront,1.511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:37.950752 +AWS,us-east-1,m5a.12xlarge,reserved_3y,all_upfront,1.511,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:20.084963 +AWS,us-east-1,m5a.12xlarge,reserved_3y,no_upfront,1.511,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:48.076005 +AWS,us-east-1,m5a.12xlarge,reserved_3y,partial_upfront,1.511,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:46.750937 +AWS,us-east-1,m5a.12xlarge,spot,NA,0.861655,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972635 +AWS,us-east-1,m5a.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T08:50:55.494349 +AWS,us-east-1,m5a.16xlarge,reserved_1y,all_upfront,3.78653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:28.321067 +AWS,us-east-1,m5a.16xlarge,reserved_1y,no_upfront,3.78653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:04.195440 +AWS,us-east-1,m5a.16xlarge,reserved_1y,partial_upfront,3.78653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:55.533194 +AWS,us-east-1,m5a.16xlarge,reserved_3y,all_upfront,1.262177,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:37.370738 +AWS,us-east-1,m5a.16xlarge,reserved_3y,no_upfront,1.262177,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:05.491204 +AWS,us-east-1,m5a.16xlarge,reserved_3y,partial_upfront,1.262177,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:04.516407 +AWS,us-east-1,m5a.16xlarge,spot,NA,1.10014,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973223 +AWS,us-east-1,m5a.24xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T08:50:30.400165 +AWS,us-east-1,m5a.24xlarge,reserved_1y,all_upfront,2.086,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:03.754407 +AWS,us-east-1,m5a.24xlarge,reserved_1y,no_upfront,2.086,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:39.113789 +AWS,us-east-1,m5a.24xlarge,reserved_1y,partial_upfront,2.086,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:30.297493 +AWS,us-east-1,m5a.24xlarge,reserved_3y,all_upfront,2.086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:12.787761 +AWS,us-east-1,m5a.24xlarge,reserved_3y,no_upfront,2.086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:40.726447 +AWS,us-east-1,m5a.24xlarge,reserved_3y,partial_upfront,2.086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:39.268963 +AWS,us-east-1,m5a.24xlarge,spot,NA,1.428962,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972419 +AWS,us-east-1,m5a.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T08:50:22.884763 +AWS,us-east-1,m5a.2xlarge,reserved_1y,all_upfront,0.206196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:56.324088 +AWS,us-east-1,m5a.2xlarge,reserved_1y,no_upfront,0.206196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:31.611322 +AWS,us-east-1,m5a.2xlarge,reserved_1y,partial_upfront,0.206196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:22.742691 +AWS,us-east-1,m5a.2xlarge,reserved_3y,all_upfront,0.137399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:05.370547 +AWS,us-east-1,m5a.2xlarge,reserved_3y,no_upfront,0.137399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:33.240533 +AWS,us-east-1,m5a.2xlarge,reserved_3y,partial_upfront,0.137399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:31.686711 +AWS,us-east-1,m5a.2xlarge,spot,NA,0.158687,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972184 +AWS,us-east-1,m5a.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T08:51:03.853668 +AWS,us-east-1,m5a.4xlarge,reserved_1y,all_upfront,0.550785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:36.547844 +AWS,us-east-1,m5a.4xlarge,reserved_1y,no_upfront,0.550785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:12.540614 +AWS,us-east-1,m5a.4xlarge,reserved_1y,partial_upfront,0.550785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:03.997737 +AWS,us-east-1,m5a.4xlarge,reserved_3y,all_upfront,0.275595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:45.599929 +AWS,us-east-1,m5a.4xlarge,reserved_3y,no_upfront,0.275595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:13.773864 +AWS,us-east-1,m5a.4xlarge,reserved_3y,partial_upfront,0.275595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:12.897851 +AWS,us-east-1,m5a.4xlarge,spot,NA,0.31734,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973490 +AWS,us-east-1,m5a.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T08:50:13.743608 +AWS,us-east-1,m5a.8xlarge,reserved_1y,all_upfront,0.695,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:47.348357 +AWS,us-east-1,m5a.8xlarge,reserved_1y,no_upfront,0.695,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:22.582481 +AWS,us-east-1,m5a.8xlarge,reserved_1y,partial_upfront,0.695,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:13.723854 +AWS,us-east-1,m5a.8xlarge,reserved_3y,all_upfront,0.695,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:56.426746 +AWS,us-east-1,m5a.8xlarge,reserved_3y,no_upfront,0.695,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:24.347279 +AWS,us-east-1,m5a.8xlarge,reserved_3y,partial_upfront,0.695,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:22.566323 +AWS,us-east-1,m5a.8xlarge,spot,NA,0.65032,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971935 +AWS,us-east-1,m5a.large,on_demand,NA,0.086,USD,AWS Pricing API,2025-11-30T08:50:32.854457 +AWS,us-east-1,m5a.large,reserved_1y,all_upfront,0.043,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:06.191764 +AWS,us-east-1,m5a.large,reserved_1y,no_upfront,0.043,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:41.566435 +AWS,us-east-1,m5a.large,reserved_1y,partial_upfront,0.043,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:32.988346 +AWS,us-east-1,m5a.large,reserved_3y,all_upfront,0.043,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:15.206169 +AWS,us-east-1,m5a.large,reserved_3y,no_upfront,0.043,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:43.162325 +AWS,us-east-1,m5a.large,reserved_3y,partial_upfront,0.043,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:41.753818 +AWS,us-east-1,m5a.large,spot,NA,0.036291,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972514 +AWS,us-east-1,m5a.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:50:34.906126 +AWS,us-east-1,m5a.xlarge,reserved_1y,all_upfront,0.117466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:08.223985 +AWS,us-east-1,m5a.xlarge,reserved_1y,no_upfront,0.117466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:43.621264 +AWS,us-east-1,m5a.xlarge,reserved_1y,partial_upfront,0.117466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:35.054447 +AWS,us-east-1,m5a.xlarge,reserved_3y,all_upfront,0.039155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:17.230756 +AWS,us-east-1,m5a.xlarge,reserved_3y,no_upfront,0.039155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:45.235094 +AWS,us-east-1,m5a.xlarge,reserved_3y,partial_upfront,0.039155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:43.836021 +AWS,us-east-1,m5a.xlarge,spot,NA,0.079396,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972565 +AWS,us-east-1,m5d.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:50:04.905868 +AWS,us-east-1,m5d.12xlarge,reserved_1y,all_upfront,2.169169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:38.537016 +AWS,us-east-1,m5d.12xlarge,reserved_1y,no_upfront,2.169169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:13.816440 +AWS,us-east-1,m5d.12xlarge,reserved_1y,partial_upfront,2.169169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:04.950907 +AWS,us-east-1,m5d.12xlarge,reserved_3y,all_upfront,1.08439,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:47.774213 +AWS,us-east-1,m5d.12xlarge,reserved_3y,no_upfront,1.08439,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:15.659835 +AWS,us-east-1,m5d.12xlarge,reserved_3y,partial_upfront,1.08439,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:13.762330 +AWS,us-east-1,m5d.12xlarge,spot,NA,1.052438,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971617 +AWS,us-east-1,m5d.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T08:50:50.493031 +AWS,us-east-1,m5d.16xlarge,reserved_1y,all_upfront,3.37074,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:23.459073 +AWS,us-east-1,m5d.16xlarge,reserved_1y,no_upfront,3.37074,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:59.128153 +AWS,us-east-1,m5d.16xlarge,reserved_1y,partial_upfront,3.37074,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:50.595549 +AWS,us-east-1,m5d.16xlarge,reserved_3y,all_upfront,1.68558,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:32.495460 +AWS,us-east-1,m5d.16xlarge,reserved_3y,no_upfront,1.68558,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:00.525721 +AWS,us-east-1,m5d.16xlarge,reserved_3y,partial_upfront,1.68558,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:59.490973 +AWS,us-east-1,m5d.16xlarge,spot,NA,1.553241,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973053 +AWS,us-east-1,m5d.24xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:50:33.810139 +AWS,us-east-1,m5d.24xlarge,reserved_1y,all_upfront,3.254169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:07.138643 +AWS,us-east-1,m5d.24xlarge,reserved_1y,no_upfront,3.254169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:42.528600 +AWS,us-east-1,m5d.24xlarge,reserved_1y,partial_upfront,3.254169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:33.951046 +AWS,us-east-1,m5d.24xlarge,reserved_3y,all_upfront,2.16939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:16.156270 +AWS,us-east-1,m5d.24xlarge,reserved_3y,no_upfront,2.16939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:44.149232 +AWS,us-east-1,m5d.24xlarge,reserved_3y,partial_upfront,2.16939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:42.715783 +AWS,us-east-1,m5d.24xlarge,spot,NA,2.3589,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972502 +AWS,us-east-1,m5d.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:50:17.990890 +AWS,us-east-1,m5d.2xlarge,reserved_1y,all_upfront,0.285,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:51.582270 +AWS,us-east-1,m5d.2xlarge,reserved_1y,no_upfront,0.285,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:26.820764 +AWS,us-east-1,m5d.2xlarge,reserved_1y,partial_upfront,0.285,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:17.964667 +AWS,us-east-1,m5d.2xlarge,reserved_3y,all_upfront,0.285,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:00.615683 +AWS,us-east-1,m5d.2xlarge,reserved_3y,no_upfront,0.285,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:28.537914 +AWS,us-east-1,m5d.2xlarge,reserved_3y,partial_upfront,0.285,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:26.852686 +AWS,us-east-1,m5d.2xlarge,spot,NA,0.272689,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972046 +AWS,us-east-1,m5d.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:50:29.300463 +AWS,us-east-1,m5d.4xlarge,reserved_1y,all_upfront,0.455,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:02.668818 +AWS,us-east-1,m5d.4xlarge,reserved_1y,no_upfront,0.455,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:38.011861 +AWS,us-east-1,m5d.4xlarge,reserved_1y,partial_upfront,0.455,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:29.207909 +AWS,us-east-1,m5d.4xlarge,reserved_3y,all_upfront,0.455,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:11.709906 +AWS,us-east-1,m5d.4xlarge,reserved_3y,no_upfront,0.455,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:39.634991 +AWS,us-east-1,m5d.4xlarge,reserved_3y,partial_upfront,0.455,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:38.175534 +AWS,us-east-1,m5d.4xlarge,spot,NA,0.489113,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972415 +AWS,us-east-1,m5d.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T08:51:13.170629 +AWS,us-east-1,m5d.8xlarge,reserved_1y,all_upfront,0.91,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:45.781965 +AWS,us-east-1,m5d.8xlarge,reserved_1y,no_upfront,0.91,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:21.832406 +AWS,us-east-1,m5d.8xlarge,reserved_1y,partial_upfront,0.91,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:13.145231 +AWS,us-east-1,m5d.8xlarge,reserved_3y,all_upfront,0.91,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:54.735770 +AWS,us-east-1,m5d.8xlarge,reserved_3y,no_upfront,0.91,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:22.970175 +AWS,us-east-1,m5d.8xlarge,reserved_3y,partial_upfront,0.91,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:22.299965 +AWS,us-east-1,m5d.8xlarge,spot,NA,0.859775,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973767 +AWS,us-east-1,m5d.large,on_demand,NA,0.113,USD,AWS Pricing API,2025-11-30T08:50:08.756938 +AWS,us-east-1,m5d.large,reserved_1y,all_upfront,0.066438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:42.340374 +AWS,us-east-1,m5d.large,reserved_1y,no_upfront,0.066438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:17.665583 +AWS,us-east-1,m5d.large,reserved_1y,partial_upfront,0.066438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:08.799139 +AWS,us-east-1,m5d.large,reserved_3y,all_upfront,0.022146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:51.575509 +AWS,us-east-1,m5d.large,reserved_3y,no_upfront,0.022146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:19.451617 +AWS,us-east-1,m5d.large,reserved_3y,partial_upfront,0.022146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:17.616003 +AWS,us-east-1,m5d.large,spot,NA,0.056021,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971744 +AWS,us-east-1,m5d.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:50:25.077934 +AWS,us-east-1,m5d.xlarge,reserved_1y,all_upfront,0.135808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:58.458707 +AWS,us-east-1,m5d.xlarge,reserved_1y,no_upfront,0.135808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:33.789428 +AWS,us-east-1,m5d.xlarge,reserved_1y,partial_upfront,0.135808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:24.920600 +AWS,us-east-1,m5d.xlarge,reserved_3y,all_upfront,0.090603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:07.536347 +AWS,us-east-1,m5d.xlarge,reserved_3y,no_upfront,0.090603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:35.430158 +AWS,us-east-1,m5d.xlarge,reserved_3y,partial_upfront,0.090603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:33.885857 +AWS,us-east-1,m5d.xlarge,spot,NA,0.116371,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972286 +AWS,us-east-1,m5dn.12xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T08:50:07.100856 +AWS,us-east-1,m5dn.12xlarge,reserved_1y,all_upfront,1.958224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:40.717499 +AWS,us-east-1,m5dn.12xlarge,reserved_1y,no_upfront,1.958224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:16.020948 +AWS,us-east-1,m5dn.12xlarge,reserved_1y,partial_upfront,1.958224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:07.143892 +AWS,us-east-1,m5dn.12xlarge,reserved_3y,all_upfront,1.305408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:49.955607 +AWS,us-east-1,m5dn.12xlarge,reserved_3y,no_upfront,1.305408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:17.815665 +AWS,us-east-1,m5dn.12xlarge,reserved_3y,partial_upfront,1.305408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:15.975555 +AWS,us-east-1,m5dn.12xlarge,spot,NA,1.382221,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971698 +AWS,us-east-1,m5dn.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T08:50:41.616875 +AWS,us-east-1,m5dn.16xlarge,reserved_1y,all_upfront,2.611594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:14.815667 +AWS,us-east-1,m5dn.16xlarge,reserved_1y,no_upfront,2.611594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:50.324478 +AWS,us-east-1,m5dn.16xlarge,reserved_1y,partial_upfront,2.611594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:41.811570 +AWS,us-east-1,m5dn.16xlarge,reserved_3y,all_upfront,1.741198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:23.855811 +AWS,us-east-1,m5dn.16xlarge,reserved_3y,no_upfront,1.741198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:51.858727 +AWS,us-east-1,m5dn.16xlarge,reserved_3y,partial_upfront,1.741198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:50.619203 +AWS,us-east-1,m5dn.16xlarge,spot,NA,1.736013,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972763 +AWS,us-east-1,m5dn.24xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T08:51:06.316134 +AWS,us-east-1,m5dn.24xlarge,reserved_1y,all_upfront,5.404881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:38.986958 +AWS,us-east-1,m5dn.24xlarge,reserved_1y,no_upfront,5.404881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:15.002668 +AWS,us-east-1,m5dn.24xlarge,reserved_1y,partial_upfront,5.404881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:06.411412 +AWS,us-east-1,m5dn.24xlarge,reserved_3y,all_upfront,2.702294,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:48.012905 +AWS,us-east-1,m5dn.24xlarge,reserved_3y,no_upfront,2.702294,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:16.218799 +AWS,us-east-1,m5dn.24xlarge,reserved_3y,partial_upfront,2.702294,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:15.373192 +AWS,us-east-1,m5dn.24xlarge,spot,NA,2.3139,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973578 +AWS,us-east-1,m5dn.2xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T08:50:03.928178 +AWS,us-east-1,m5dn.2xlarge,reserved_1y,all_upfront,0.343,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:37.601583 +AWS,us-east-1,m5dn.2xlarge,reserved_1y,no_upfront,0.343,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:12.858499 +AWS,us-east-1,m5dn.2xlarge,reserved_1y,partial_upfront,0.343,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:03.996893 +AWS,us-east-1,m5dn.2xlarge,reserved_3y,all_upfront,0.343,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:46.829538 +AWS,us-east-1,m5dn.2xlarge,reserved_3y,no_upfront,0.343,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:14.701062 +AWS,us-east-1,m5dn.2xlarge,reserved_3y,partial_upfront,0.343,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:12.792344 +AWS,us-east-1,m5dn.2xlarge,spot,NA,0.304018,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971608 +AWS,us-east-1,m5dn.4xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T08:50:44.347176 +AWS,us-east-1,m5dn.4xlarge,reserved_1y,all_upfront,0.783557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:17.503932 +AWS,us-east-1,m5dn.4xlarge,reserved_1y,no_upfront,0.783557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:53.039210 +AWS,us-east-1,m5dn.4xlarge,reserved_1y,partial_upfront,0.783557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:44.543902 +AWS,us-east-1,m5dn.4xlarge,reserved_3y,all_upfront,0.391852,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:26.563406 +AWS,us-east-1,m5dn.4xlarge,reserved_3y,no_upfront,0.391852,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:54.568848 +AWS,us-east-1,m5dn.4xlarge,reserved_3y,partial_upfront,0.391852,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:53.408314 +AWS,us-east-1,m5dn.4xlarge,spot,NA,0.569637,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972872 +AWS,us-east-1,m5dn.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:50:05.042175 +AWS,us-east-1,m5dn.8xlarge,reserved_1y,all_upfront,1.305854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:38.677224 +AWS,us-east-1,m5dn.8xlarge,reserved_1y,no_upfront,1.305854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:13.952848 +AWS,us-east-1,m5dn.8xlarge,reserved_1y,partial_upfront,1.305854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:05.085894 +AWS,us-east-1,m5dn.8xlarge,reserved_3y,all_upfront,0.870618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:47.907715 +AWS,us-east-1,m5dn.8xlarge,reserved_3y,no_upfront,0.870618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:15.792785 +AWS,us-east-1,m5dn.8xlarge,reserved_3y,partial_upfront,0.870618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:13.898769 +AWS,us-east-1,m5dn.8xlarge,spot,NA,1.162362,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971621 +AWS,us-east-1,m5dn.large,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T08:50:59.861572 +AWS,us-east-1,m5dn.large,reserved_1y,all_upfront,0.099,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:32.633441 +AWS,us-east-1,m5dn.large,reserved_1y,no_upfront,0.099,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:08.582211 +AWS,us-east-1,m5dn.large,reserved_1y,partial_upfront,0.099,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:00.063283 +AWS,us-east-1,m5dn.large,reserved_3y,all_upfront,0.099,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:41.707901 +AWS,us-east-1,m5dn.large,reserved_3y,no_upfront,0.099,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:09.849043 +AWS,us-east-1,m5dn.large,reserved_3y,partial_upfront,0.099,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:08.900666 +AWS,us-east-1,m5dn.large,spot,NA,0.052784,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973316 +AWS,us-east-1,m5dn.metal,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T08:51:11.236765 +AWS,us-east-1,m5dn.metal,reserved_1y,all_upfront,4.700114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:43.878616 +AWS,us-east-1,m5dn.metal,reserved_1y,no_upfront,4.700114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:19.919225 +AWS,us-east-1,m5dn.metal,reserved_1y,partial_upfront,4.700114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:11.260473 +AWS,us-east-1,m5dn.metal,reserved_3y,all_upfront,2.350038,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:52.858325 +AWS,us-east-1,m5dn.metal,reserved_3y,no_upfront,2.350038,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:21.071284 +AWS,us-east-1,m5dn.metal,reserved_3y,partial_upfront,2.350038,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:20.357450 +AWS,us-east-1,m5dn.metal,spot,NA,1.998079,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973724 +AWS,us-east-1,m5dn.xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T08:50:02.689133 +AWS,us-east-1,m5dn.xlarge,reserved_1y,all_upfront,0.163621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:36.390131 +AWS,us-east-1,m5dn.xlarge,reserved_1y,no_upfront,0.163621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:11.627949 +AWS,us-east-1,m5dn.xlarge,reserved_1y,partial_upfront,0.163621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:02.770406 +AWS,us-east-1,m5dn.xlarge,reserved_3y,all_upfront,0.109207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:45.621781 +AWS,us-east-1,m5dn.xlarge,reserved_3y,no_upfront,0.109207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:13.490270 +AWS,us-east-1,m5dn.xlarge,reserved_3y,partial_upfront,0.109207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:11.540220 +AWS,us-east-1,m5dn.xlarge,spot,NA,0.128894,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971575 +AWS,us-east-1,m5n.12xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T08:50:24.806471 +AWS,us-east-1,m5n.12xlarge,reserved_1y,all_upfront,3.44258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:58.188285 +AWS,us-east-1,m5n.12xlarge,reserved_1y,no_upfront,3.44258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:33.513005 +AWS,us-east-1,m5n.12xlarge,reserved_1y,partial_upfront,3.44258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:24.647271 +AWS,us-east-1,m5n.12xlarge,reserved_3y,all_upfront,1.147527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:07.258778 +AWS,us-east-1,m5n.12xlarge,reserved_3y,no_upfront,1.147527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:35.142921 +AWS,us-east-1,m5n.12xlarge,reserved_3y,partial_upfront,1.147527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:33.611575 +AWS,us-east-1,m5n.12xlarge,spot,NA,1.249618,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972257 +AWS,us-east-1,m5n.16xlarge,on_demand,NA,3.808,USD,AWS Pricing API,2025-11-30T08:50:22.343296 +AWS,us-east-1,m5n.16xlarge,reserved_1y,all_upfront,2.779,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:55.776938 +AWS,us-east-1,m5n.16xlarge,reserved_1y,no_upfront,2.779,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:31.056614 +AWS,us-east-1,m5n.16xlarge,reserved_1y,partial_upfront,2.779,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:22.200483 +AWS,us-east-1,m5n.16xlarge,reserved_3y,all_upfront,2.779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:04.815269 +AWS,us-east-1,m5n.16xlarge,reserved_3y,no_upfront,2.779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:32.699343 +AWS,us-east-1,m5n.16xlarge,reserved_3y,partial_upfront,2.779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:31.133030 +AWS,us-east-1,m5n.16xlarge,spot,NA,1.809799,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972180 +AWS,us-east-1,m5n.24xlarge,on_demand,NA,5.712,USD,AWS Pricing API,2025-11-30T08:50:03.513663 +AWS,us-east-1,m5n.24xlarge,reserved_1y,all_upfront,2.202,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:37.198965 +AWS,us-east-1,m5n.24xlarge,reserved_1y,no_upfront,2.202,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:12.446337 +AWS,us-east-1,m5n.24xlarge,reserved_1y,partial_upfront,2.202,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:03.586846 +AWS,us-east-1,m5n.24xlarge,reserved_3y,all_upfront,2.202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:46.426303 +AWS,us-east-1,m5n.24xlarge,reserved_3y,no_upfront,2.202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:14.299239 +AWS,us-east-1,m5n.24xlarge,reserved_3y,partial_upfront,2.202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:12.374845 +AWS,us-east-1,m5n.24xlarge,spot,NA,2.238097,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971599 +AWS,us-east-1,m5n.2xlarge,on_demand,NA,0.476,USD,AWS Pricing API,2025-11-30T08:50:36.132115 +AWS,us-east-1,m5n.2xlarge,reserved_1y,all_upfront,0.573744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:09.438178 +AWS,us-east-1,m5n.2xlarge,reserved_1y,no_upfront,0.573744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:44.850454 +AWS,us-east-1,m5n.2xlarge,reserved_1y,partial_upfront,0.573744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:36.298387 +AWS,us-east-1,m5n.2xlarge,reserved_3y,all_upfront,0.191248,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:18.462129 +AWS,us-east-1,m5n.2xlarge,reserved_3y,no_upfront,0.191248,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:46.453492 +AWS,us-east-1,m5n.2xlarge,reserved_3y,partial_upfront,0.191248,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:45.086816 +AWS,us-east-1,m5n.2xlarge,spot,NA,0.221116,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972600 +AWS,us-east-1,m5n.4xlarge,on_demand,NA,0.952,USD,AWS Pricing API,2025-11-30T08:50:59.037831 +AWS,us-east-1,m5n.4xlarge,reserved_1y,all_upfront,0.679817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:31.827348 +AWS,us-east-1,m5n.4xlarge,reserved_1y,no_upfront,0.679817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:07.755397 +AWS,us-east-1,m5n.4xlarge,reserved_1y,partial_upfront,0.679817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:59.248781 +AWS,us-east-1,m5n.4xlarge,reserved_3y,all_upfront,0.339939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:40.897585 +AWS,us-east-1,m5n.4xlarge,reserved_3y,no_upfront,0.339939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:09.034587 +AWS,us-east-1,m5n.4xlarge,reserved_3y,partial_upfront,0.339939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:08.073091 +AWS,us-east-1,m5n.4xlarge,spot,NA,0.406596,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973343 +AWS,us-east-1,m5n.8xlarge,on_demand,NA,1.904,USD,AWS Pricing API,2025-11-30T08:50:24.258303 +AWS,us-east-1,m5n.8xlarge,reserved_1y,all_upfront,1.2,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:57.649848 +AWS,us-east-1,m5n.8xlarge,reserved_1y,no_upfront,1.2,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:32.967271 +AWS,us-east-1,m5n.8xlarge,reserved_1y,partial_upfront,1.2,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:24.096770 +AWS,us-east-1,m5n.8xlarge,reserved_3y,all_upfront,1.2,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:06.722640 +AWS,us-east-1,m5n.8xlarge,reserved_3y,no_upfront,1.2,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:34.592051 +AWS,us-east-1,m5n.8xlarge,reserved_3y,partial_upfront,1.2,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:33.060432 +AWS,us-east-1,m5n.8xlarge,spot,NA,0.968687,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972212 +AWS,us-east-1,m5n.large,on_demand,NA,0.119,USD,AWS Pricing API,2025-11-30T08:50:16.490355 +AWS,us-east-1,m5n.large,reserved_1y,all_upfront,0.08105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:50.076839 +AWS,us-east-1,m5n.large,reserved_1y,no_upfront,0.08105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:25.325727 +AWS,us-east-1,m5n.large,reserved_1y,partial_upfront,0.08105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:16.457895 +AWS,us-east-1,m5n.large,reserved_3y,all_upfront,0.027017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:59.120076 +AWS,us-east-1,m5n.large,reserved_3y,no_upfront,0.027017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:27.042774 +AWS,us-east-1,m5n.large,reserved_3y,partial_upfront,0.027017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:25.329830 +AWS,us-east-1,m5n.large,spot,NA,0.050054,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972013 +AWS,us-east-1,m5n.metal,on_demand,NA,5.712,USD,AWS Pricing API,2025-11-30T08:50:40.929868 +AWS,us-east-1,m5n.metal,reserved_1y,all_upfront,3.427584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:14.147655 +AWS,us-east-1,m5n.metal,reserved_1y,no_upfront,3.427584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:49.635781 +AWS,us-east-1,m5n.metal,reserved_1y,partial_upfront,3.427584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:41.127173 +AWS,us-east-1,m5n.metal,reserved_3y,all_upfront,2.285195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:23.175259 +AWS,us-east-1,m5n.metal,reserved_3y,no_upfront,2.285195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:51.187298 +AWS,us-east-1,m5n.metal,reserved_3y,partial_upfront,2.285195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:49.922031 +AWS,us-east-1,m5n.metal,spot,NA,1.830376,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972758 +AWS,us-east-1,m5n.xlarge,on_demand,NA,0.238,USD,AWS Pricing API,2025-11-30T08:50:35.859297 +AWS,us-east-1,m5n.xlarge,reserved_1y,all_upfront,0.169397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:09.167230 +AWS,us-east-1,m5n.xlarge,reserved_1y,no_upfront,0.169397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:44.575454 +AWS,us-east-1,m5n.xlarge,reserved_1y,partial_upfront,0.169397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:36.020795 +AWS,us-east-1,m5n.xlarge,reserved_3y,all_upfront,0.084466,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:18.192055 +AWS,us-east-1,m5n.xlarge,reserved_3y,no_upfront,0.084466,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:46.183008 +AWS,us-east-1,m5n.xlarge,reserved_3y,partial_upfront,0.084466,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:44.808798 +AWS,us-east-1,m5n.xlarge,spot,NA,0.100218,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972612 +AWS,us-east-1,m5zn.12xlarge,on_demand,NA,3.9641,USD,AWS Pricing API,2025-11-30T08:50:41.065957 +AWS,us-east-1,m5zn.12xlarge,reserved_1y,all_upfront,2.9968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:14.280170 +AWS,us-east-1,m5zn.12xlarge,reserved_1y,no_upfront,2.9968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:49.776681 +AWS,us-east-1,m5zn.12xlarge,reserved_1y,partial_upfront,2.9968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:41.264114 +AWS,us-east-1,m5zn.12xlarge,reserved_3y,all_upfront,2.9968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:23.311315 +AWS,us-east-1,m5zn.12xlarge,reserved_3y,no_upfront,2.9968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:51.320744 +AWS,us-east-1,m5zn.12xlarge,reserved_3y,partial_upfront,2.9968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:50.058756 +AWS,us-east-1,m5zn.12xlarge,spot,NA,2.203588,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972746 +AWS,us-east-1,m5zn.2xlarge,on_demand,NA,0.6607,USD,AWS Pricing API,2025-11-30T08:50:10.185483 +AWS,us-east-1,m5zn.2xlarge,reserved_1y,all_upfront,0.396374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:43.691860 +AWS,us-east-1,m5zn.2xlarge,reserved_1y,no_upfront,0.396374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:19.032697 +AWS,us-east-1,m5zn.2xlarge,reserved_1y,partial_upfront,0.396374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:10.173478 +AWS,us-east-1,m5zn.2xlarge,reserved_3y,all_upfront,0.264258,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:52.913293 +AWS,us-east-1,m5zn.2xlarge,reserved_3y,no_upfront,0.264258,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:20.800608 +AWS,us-east-1,m5zn.2xlarge,reserved_3y,partial_upfront,0.264258,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:19.004129 +AWS,us-east-1,m5zn.2xlarge,spot,NA,0.355182,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971769 +AWS,us-east-1,m5zn.3xlarge,on_demand,NA,0.991,USD,AWS Pricing API,2025-11-30T08:50:44.620106 +AWS,us-east-1,m5zn.3xlarge,reserved_1y,all_upfront,0.582763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:17.773484 +AWS,us-east-1,m5zn.3xlarge,reserved_1y,no_upfront,0.582763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:53.313152 +AWS,us-east-1,m5zn.3xlarge,reserved_1y,partial_upfront,0.582763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:44.815459 +AWS,us-east-1,m5zn.3xlarge,reserved_3y,all_upfront,0.194254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:26.852770 +AWS,us-east-1,m5zn.3xlarge,reserved_3y,no_upfront,0.194254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:54.839455 +AWS,us-east-1,m5zn.3xlarge,reserved_3y,partial_upfront,0.194254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:53.686235 +AWS,us-east-1,m5zn.3xlarge,spot,NA,0.60562,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972835 +AWS,us-east-1,m5zn.6xlarge,on_demand,NA,1.982,USD,AWS Pricing API,2025-11-30T08:50:04.200954 +AWS,us-east-1,m5zn.6xlarge,reserved_1y,all_upfront,1.165411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:37.869599 +AWS,us-east-1,m5zn.6xlarge,reserved_1y,no_upfront,1.165411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:13.128810 +AWS,us-east-1,m5zn.6xlarge,reserved_1y,partial_upfront,1.165411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:04.267729 +AWS,us-east-1,m5zn.6xlarge,reserved_3y,all_upfront,0.38847,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:47.096711 +AWS,us-east-1,m5zn.6xlarge,reserved_3y,no_upfront,0.38847,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:14.981115 +AWS,us-east-1,m5zn.6xlarge,reserved_3y,partial_upfront,0.38847,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:13.078894 +AWS,us-east-1,m5zn.6xlarge,spot,NA,1.283667,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971634 +AWS,us-east-1,m5zn.large,on_demand,NA,0.1652,USD,AWS Pricing API,2025-11-30T08:50:34.222704 +AWS,us-east-1,m5zn.large,reserved_1y,all_upfront,0.0714,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:07.551124 +AWS,us-east-1,m5zn.large,reserved_1y,no_upfront,0.0714,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:42.940541 +AWS,us-east-1,m5zn.large,reserved_1y,partial_upfront,0.0714,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:34.359409 +AWS,us-east-1,m5zn.large,reserved_3y,all_upfront,0.0714,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:16.555038 +AWS,us-east-1,m5zn.large,reserved_3y,no_upfront,0.0714,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:44.556428 +AWS,us-east-1,m5zn.large,reserved_3y,partial_upfront,0.0714,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:43.143286 +AWS,us-east-1,m5zn.large,spot,NA,0.066542,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972546 +AWS,us-east-1,m5zn.metal,on_demand,NA,3.9641,USD,AWS Pricing API,2025-11-30T08:51:11.806739 +AWS,us-east-1,m5zn.metal,reserved_1y,all_upfront,2.854155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:44.433351 +AWS,us-east-1,m5zn.metal,reserved_1y,no_upfront,2.854155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:20.465984 +AWS,us-east-1,m5zn.metal,reserved_1y,partial_upfront,2.854155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:11.797179 +AWS,us-east-1,m5zn.metal,reserved_3y,all_upfront,1.902785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:53.399851 +AWS,us-east-1,m5zn.metal,reserved_3y,no_upfront,1.902785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:21.607958 +AWS,us-east-1,m5zn.metal,reserved_3y,partial_upfront,1.902785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:20.903455 +AWS,us-east-1,m5zn.metal,spot,NA,1.851279,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973713 +AWS,us-east-1,m5zn.xlarge,on_demand,NA,0.3303,USD,AWS Pricing API,2025-11-30T08:50:09.368401 +AWS,us-east-1,m5zn.xlarge,reserved_1y,all_upfront,0.2497,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:42.881517 +AWS,us-east-1,m5zn.xlarge,reserved_1y,no_upfront,0.2497,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:18.211234 +AWS,us-east-1,m5zn.xlarge,reserved_1y,partial_upfront,0.2497,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:09.347548 +AWS,us-east-1,m5zn.xlarge,reserved_3y,all_upfront,0.2497,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:52.108802 +AWS,us-east-1,m5zn.xlarge,reserved_3y,no_upfront,0.2497,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:19.988981 +AWS,us-east-1,m5zn.xlarge,reserved_3y,partial_upfront,0.2497,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:18.166417 +AWS,us-east-1,m5zn.xlarge,spot,NA,0.17596,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971785 +AWS,us-east-1,m6g.12xlarge,on_demand,NA,1.848,USD,AWS Pricing API,2025-11-30T08:50:19.261237 +AWS,us-east-1,m6g.12xlarge,reserved_1y,all_upfront,1.103941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:52.803395 +AWS,us-east-1,m6g.12xlarge,reserved_1y,no_upfront,1.103941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:28.044917 +AWS,us-east-1,m6g.12xlarge,reserved_1y,partial_upfront,1.103941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:19.201032 +AWS,us-east-1,m6g.12xlarge,reserved_3y,all_upfront,0.73598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:01.842773 +AWS,us-east-1,m6g.12xlarge,reserved_3y,no_upfront,0.73598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:29.751169 +AWS,us-east-1,m6g.12xlarge,reserved_3y,partial_upfront,0.73598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:28.100089 +AWS,us-east-1,m6g.12xlarge,spot,NA,0.563231,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972102 +AWS,us-east-1,m6g.16xlarge,on_demand,NA,2.464,USD,AWS Pricing API,2025-11-30T08:50:14.580208 +AWS,us-east-1,m6g.16xlarge,reserved_1y,all_upfront,1.8141,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:48.167428 +AWS,us-east-1,m6g.16xlarge,reserved_1y,no_upfront,1.8141,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:23.407221 +AWS,us-east-1,m6g.16xlarge,reserved_1y,partial_upfront,1.8141,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:14.549865 +AWS,us-east-1,m6g.16xlarge,reserved_3y,all_upfront,1.8141,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:57.232388 +AWS,us-east-1,m6g.16xlarge,reserved_3y,no_upfront,1.8141,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:25.160946 +AWS,us-east-1,m6g.16xlarge,reserved_3y,partial_upfront,1.8141,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:23.395665 +AWS,us-east-1,m6g.16xlarge,spot,NA,0.767411,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971926 +AWS,us-east-1,m6g.2xlarge,on_demand,NA,0.308,USD,AWS Pricing API,2025-11-30T08:50:35.452211 +AWS,us-east-1,m6g.2xlarge,reserved_1y,all_upfront,0.184009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:08.766436 +AWS,us-east-1,m6g.2xlarge,reserved_1y,no_upfront,0.184009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:44.168295 +AWS,us-east-1,m6g.2xlarge,reserved_1y,partial_upfront,0.184009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:35.608801 +AWS,us-east-1,m6g.2xlarge,reserved_3y,all_upfront,0.12267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:17.789418 +AWS,us-east-1,m6g.2xlarge,reserved_3y,no_upfront,0.12267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:45.774754 +AWS,us-east-1,m6g.2xlarge,reserved_3y,partial_upfront,0.12267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:44.394662 +AWS,us-east-1,m6g.2xlarge,spot,NA,0.140281,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972589 +AWS,us-east-1,m6g.4xlarge,on_demand,NA,0.616,USD,AWS Pricing API,2025-11-30T08:51:02.341835 +AWS,us-east-1,m6g.4xlarge,reserved_1y,all_upfront,0.360616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:35.058153 +AWS,us-east-1,m6g.4xlarge,reserved_1y,no_upfront,0.360616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:11.031671 +AWS,us-east-1,m6g.4xlarge,reserved_1y,partial_upfront,0.360616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:02.514731 +AWS,us-east-1,m6g.4xlarge,reserved_3y,all_upfront,0.120205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:44.106211 +AWS,us-east-1,m6g.4xlarge,reserved_3y,no_upfront,0.120205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:12.267295 +AWS,us-east-1,m6g.4xlarge,reserved_3y,partial_upfront,0.120205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:11.380500 +AWS,us-east-1,m6g.4xlarge,spot,NA,0.273117,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973409 +AWS,us-east-1,m6g.8xlarge,on_demand,NA,1.232,USD,AWS Pricing API,2025-11-30T08:50:42.986022 +AWS,us-east-1,m6g.8xlarge,reserved_1y,all_upfront,0.9071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:16.168140 +AWS,us-east-1,m6g.8xlarge,reserved_1y,no_upfront,0.9071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:51.680596 +AWS,us-east-1,m6g.8xlarge,reserved_1y,partial_upfront,0.9071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:43.177702 +AWS,us-east-1,m6g.8xlarge,reserved_3y,all_upfront,0.9071,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:25.227814 +AWS,us-east-1,m6g.8xlarge,reserved_3y,no_upfront,0.9071,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:53.206505 +AWS,us-east-1,m6g.8xlarge,reserved_3y,partial_upfront,0.9071,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:52.012233 +AWS,us-east-1,m6g.8xlarge,spot,NA,0.515572,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972802 +AWS,us-east-1,m6g.large,on_demand,NA,0.077,USD,AWS Pricing API,2025-11-30T08:50:19.804535 +AWS,us-east-1,m6g.large,reserved_1y,all_upfront,0.0567,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:53.341098 +AWS,us-east-1,m6g.large,reserved_1y,no_upfront,0.0567,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:28.592831 +AWS,us-east-1,m6g.large,reserved_1y,partial_upfront,0.0567,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:19.744901 +AWS,us-east-1,m6g.large,reserved_3y,all_upfront,0.0567,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:02.385546 +AWS,us-east-1,m6g.large,reserved_3y,no_upfront,0.0567,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:30.287722 +AWS,us-east-1,m6g.large,reserved_3y,partial_upfront,0.0567,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:28.650029 +AWS,us-east-1,m6g.large,spot,NA,0.037988,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972098 +AWS,us-east-1,m6g.xlarge,on_demand,NA,0.154,USD,AWS Pricing API,2025-11-30T08:50:33.674934 +AWS,us-east-1,m6g.xlarge,reserved_1y,all_upfront,0.090183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:07.004662 +AWS,us-east-1,m6g.xlarge,reserved_1y,no_upfront,0.090183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:42.390123 +AWS,us-east-1,m6g.xlarge,reserved_1y,partial_upfront,0.090183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:33.815239 +AWS,us-east-1,m6g.xlarge,reserved_3y,all_upfront,0.030061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:16.009020 +AWS,us-east-1,m6g.xlarge,reserved_3y,no_upfront,0.030061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:44.012394 +AWS,us-east-1,m6g.xlarge,reserved_3y,partial_upfront,0.030061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:42.579137 +AWS,us-east-1,m6g.xlarge,spot,NA,0.065545,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972522 +AWS,us-east-1,m6gd.12xlarge,on_demand,NA,2.1696,USD,AWS Pricing API,2025-11-30T08:50:51.902410 +AWS,us-east-1,m6gd.12xlarge,reserved_1y,all_upfront,0.9373,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:24.802196 +AWS,us-east-1,m6gd.12xlarge,reserved_1y,no_upfront,0.9373,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:00.539494 +AWS,us-east-1,m6gd.12xlarge,reserved_1y,partial_upfront,0.9373,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:51.958922 +AWS,us-east-1,m6gd.12xlarge,reserved_3y,all_upfront,0.9373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:33.848560 +AWS,us-east-1,m6gd.12xlarge,reserved_3y,no_upfront,0.9373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:01.912036 +AWS,us-east-1,m6gd.12xlarge,reserved_3y,partial_upfront,0.9373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:00.884424 +AWS,us-east-1,m6gd.12xlarge,spot,NA,0.673792,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973069 +AWS,us-east-1,m6gd.16xlarge,on_demand,NA,2.8928,USD,AWS Pricing API,2025-11-30T08:50:54.261671 +AWS,us-east-1,m6gd.16xlarge,reserved_1y,all_upfront,1.700913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:27.106524 +AWS,us-east-1,m6gd.16xlarge,reserved_1y,no_upfront,1.700913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:02.940682 +AWS,us-east-1,m6gd.16xlarge,reserved_1y,partial_upfront,1.700913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:54.302481 +AWS,us-east-1,m6gd.16xlarge,reserved_3y,all_upfront,0.566971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:36.170946 +AWS,us-east-1,m6gd.16xlarge,reserved_3y,no_upfront,0.566971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:04.274333 +AWS,us-east-1,m6gd.16xlarge,reserved_3y,partial_upfront,0.566971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:03.259324 +AWS,us-east-1,m6gd.16xlarge,spot,NA,1.272536,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973180 +AWS,us-east-1,m6gd.2xlarge,on_demand,NA,0.3616,USD,AWS Pricing API,2025-11-30T08:50:22.062842 +AWS,us-east-1,m6gd.2xlarge,reserved_1y,all_upfront,0.289309,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:55.502223 +AWS,us-east-1,m6gd.2xlarge,reserved_1y,no_upfront,0.289309,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:30.782552 +AWS,us-east-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.289309,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:21.924372 +AWS,us-east-1,m6gd.2xlarge,reserved_3y,all_upfront,0.144636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:04.547018 +AWS,us-east-1,m6gd.2xlarge,reserved_3y,no_upfront,0.144636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:32.430134 +AWS,us-east-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.144636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:30.850618 +AWS,us-east-1,m6gd.2xlarge,spot,NA,0.18442,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972188 +AWS,us-east-1,m6gd.4xlarge,on_demand,NA,0.7232,USD,AWS Pricing API,2025-11-30T08:50:48.930033 +AWS,us-east-1,m6gd.4xlarge,reserved_1y,all_upfront,0.4556,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:21.969060 +AWS,us-east-1,m6gd.4xlarge,reserved_1y,no_upfront,0.4556,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:57.605412 +AWS,us-east-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.4556,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:49.080887 +AWS,us-east-1,m6gd.4xlarge,reserved_3y,all_upfront,0.4556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:31.033458 +AWS,us-east-1,m6gd.4xlarge,reserved_3y,no_upfront,0.4556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:59.034396 +AWS,us-east-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.4556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:57.988307 +AWS,us-east-1,m6gd.4xlarge,spot,NA,0.38162,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972998 +AWS,us-east-1,m6gd.8xlarge,on_demand,NA,1.4464,USD,AWS Pricing API,2025-11-30T08:50:10.594426 +AWS,us-east-1,m6gd.8xlarge,reserved_1y,all_upfront,0.850457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:44.096829 +AWS,us-east-1,m6gd.8xlarge,reserved_1y,no_upfront,0.850457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:19.440375 +AWS,us-east-1,m6gd.8xlarge,reserved_1y,partial_upfront,0.850457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:10.580236 +AWS,us-east-1,m6gd.8xlarge,reserved_3y,all_upfront,0.283486,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:53.326349 +AWS,us-east-1,m6gd.8xlarge,reserved_3y,no_upfront,0.283486,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:21.225289 +AWS,us-east-1,m6gd.8xlarge,reserved_3y,partial_upfront,0.283486,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:19.420388 +AWS,us-east-1,m6gd.8xlarge,spot,NA,0.542258,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971793 +AWS,us-east-1,m6gd.large,on_demand,NA,0.0904,USD,AWS Pricing API,2025-11-30T08:50:32.301091 +AWS,us-east-1,m6gd.large,reserved_1y,all_upfront,0.063221,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:05.637607 +AWS,us-east-1,m6gd.large,reserved_1y,no_upfront,0.063221,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:41.019777 +AWS,us-east-1,m6gd.large,reserved_1y,partial_upfront,0.063221,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:32.422130 +AWS,us-east-1,m6gd.large,reserved_3y,all_upfront,0.04214,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:14.670380 +AWS,us-east-1,m6gd.large,reserved_3y,no_upfront,0.04214,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:42.621103 +AWS,us-east-1,m6gd.large,reserved_3y,partial_upfront,0.04214,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:41.199343 +AWS,us-east-1,m6gd.large,spot,NA,0.0404,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972458 +AWS,us-east-1,m6gd.xlarge,on_demand,NA,0.1808,USD,AWS Pricing API,2025-11-30T08:50:25.489093 +AWS,us-east-1,m6gd.xlarge,reserved_1y,all_upfront,0.108424,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:58.871195 +AWS,us-east-1,m6gd.xlarge,reserved_1y,no_upfront,0.108424,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:34.203141 +AWS,us-east-1,m6gd.xlarge,reserved_1y,partial_upfront,0.108424,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:25.332233 +AWS,us-east-1,m6gd.xlarge,reserved_3y,all_upfront,0.072275,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:07.944123 +AWS,us-east-1,m6gd.xlarge,reserved_3y,no_upfront,0.072275,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:35.831601 +AWS,us-east-1,m6gd.xlarge,reserved_3y,partial_upfront,0.072275,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:34.306030 +AWS,us-east-1,m6gd.xlarge,spot,NA,0.102759,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972279 +AWS,us-east-1,m6i.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:50:11.419422 +AWS,us-east-1,m6i.12xlarge,reserved_1y,all_upfront,1.69272,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:44.911020 +AWS,us-east-1,m6i.12xlarge,reserved_1y,no_upfront,1.69272,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:20.262509 +AWS,us-east-1,m6i.12xlarge,reserved_1y,partial_upfront,1.69272,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:11.399430 +AWS,us-east-1,m6i.12xlarge,reserved_3y,all_upfront,1.69272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:54.128194 +AWS,us-east-1,m6i.12xlarge,reserved_3y,no_upfront,1.69272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:22.044642 +AWS,us-east-1,m6i.12xlarge,reserved_3y,partial_upfront,1.69272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:20.242272 +AWS,us-east-1,m6i.12xlarge,spot,NA,0.830859,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971814 +AWS,us-east-1,m6i.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:50:26.177372 +AWS,us-east-1,m6i.16xlarge,reserved_1y,all_upfront,2.25696,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:59.538367 +AWS,us-east-1,m6i.16xlarge,reserved_1y,no_upfront,2.25696,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:34.885378 +AWS,us-east-1,m6i.16xlarge,reserved_1y,partial_upfront,2.25696,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:26.016960 +AWS,us-east-1,m6i.16xlarge,reserved_3y,all_upfront,2.25696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:08.621962 +AWS,us-east-1,m6i.16xlarge,reserved_3y,no_upfront,2.25696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:36.514517 +AWS,us-east-1,m6i.16xlarge,reserved_3y,partial_upfront,2.25696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:35.001710 +AWS,us-east-1,m6i.16xlarge,spot,NA,1.637741,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972335 +AWS,us-east-1,m6i.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:50:27.673644 +AWS,us-east-1,m6i.24xlarge,reserved_1y,all_upfront,5.457763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:01.026209 +AWS,us-east-1,m6i.24xlarge,reserved_1y,no_upfront,5.457763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:36.380019 +AWS,us-east-1,m6i.24xlarge,reserved_1y,partial_upfront,5.457763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:27.573852 +AWS,us-east-1,m6i.24xlarge,reserved_3y,all_upfront,1.819254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:10.087995 +AWS,us-east-1,m6i.24xlarge,reserved_3y,no_upfront,1.819254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:38.001639 +AWS,us-east-1,m6i.24xlarge,reserved_3y,partial_upfront,1.819254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:36.518896 +AWS,us-east-1,m6i.24xlarge,spot,NA,1.373703,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972339 +AWS,us-east-1,m6i.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:50:46.680171 +AWS,us-east-1,m6i.2xlarge,reserved_1y,all_upfront,0.322535,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:19.809318 +AWS,us-east-1,m6i.2xlarge,reserved_1y,no_upfront,0.322535,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:55.351359 +AWS,us-east-1,m6i.2xlarge,reserved_1y,partial_upfront,0.322535,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:46.876290 +AWS,us-east-1,m6i.2xlarge,reserved_3y,all_upfront,0.161272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:28.872879 +AWS,us-east-1,m6i.2xlarge,reserved_3y,no_upfront,0.161272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:56.863998 +AWS,us-east-1,m6i.2xlarge,reserved_3y,partial_upfront,0.161272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:55.764408 +AWS,us-east-1,m6i.2xlarge,spot,NA,0.165213,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972948 +AWS,us-east-1,m6i.32xlarge,on_demand,NA,6.144,USD,AWS Pricing API,2025-11-30T08:51:03.582287 +AWS,us-east-1,m6i.32xlarge,reserved_1y,all_upfront,5.161016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:36.268277 +AWS,us-east-1,m6i.32xlarge,reserved_1y,no_upfront,5.161016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:12.264077 +AWS,us-east-1,m6i.32xlarge,reserved_1y,partial_upfront,5.161016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:03.727945 +AWS,us-east-1,m6i.32xlarge,reserved_3y,all_upfront,2.580499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:45.328694 +AWS,us-east-1,m6i.32xlarge,reserved_3y,no_upfront,2.580499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:13.503198 +AWS,us-east-1,m6i.32xlarge,reserved_3y,partial_upfront,2.580499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:12.620996 +AWS,us-east-1,m6i.32xlarge,spot,NA,2.253195,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973477 +AWS,us-east-1,m6i.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:50:13.608462 +AWS,us-east-1,m6i.4xlarge,reserved_1y,all_upfront,0.474201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:47.214965 +AWS,us-east-1,m6i.4xlarge,reserved_1y,no_upfront,0.474201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:22.445956 +AWS,us-east-1,m6i.4xlarge,reserved_1y,partial_upfront,0.474201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:13.585682 +AWS,us-east-1,m6i.4xlarge,reserved_3y,all_upfront,0.158067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:56.292381 +AWS,us-east-1,m6i.4xlarge,reserved_3y,no_upfront,0.158067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:24.213449 +AWS,us-east-1,m6i.4xlarge,reserved_3y,partial_upfront,0.158067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:22.430364 +AWS,us-east-1,m6i.4xlarge,spot,NA,0.310977,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971918 +AWS,us-east-1,m6i.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:50:18.406271 +AWS,us-east-1,m6i.8xlarge,reserved_1y,all_upfront,0.948288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:51.985567 +AWS,us-east-1,m6i.8xlarge,reserved_1y,no_upfront,0.948288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:27.226762 +AWS,us-east-1,m6i.8xlarge,reserved_1y,partial_upfront,0.948288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:18.375510 +AWS,us-east-1,m6i.8xlarge,reserved_3y,all_upfront,0.316096,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:01.028118 +AWS,us-east-1,m6i.8xlarge,reserved_3y,no_upfront,0.316096,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:28.942617 +AWS,us-east-1,m6i.8xlarge,reserved_3y,partial_upfront,0.316096,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:27.273635 +AWS,us-east-1,m6i.8xlarge,spot,NA,0.617545,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972074 +AWS,us-east-1,m6i.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T08:50:29.163495 +AWS,us-east-1,m6i.large,reserved_1y,all_upfront,0.113699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:02.533937 +AWS,us-east-1,m6i.large,reserved_1y,no_upfront,0.113699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:37.877502 +AWS,us-east-1,m6i.large,reserved_1y,partial_upfront,0.113699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:29.072499 +AWS,us-east-1,m6i.large,reserved_3y,all_upfront,0.0379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:11.572986 +AWS,us-east-1,m6i.large,reserved_3y,no_upfront,0.0379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:39.501679 +AWS,us-east-1,m6i.large,reserved_3y,partial_upfront,0.0379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:38.036859 +AWS,us-east-1,m6i.large,spot,NA,0.038461,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972399 +AWS,us-east-1,m6i.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:50:04.770920 +AWS,us-east-1,m6i.xlarge,reserved_1y,all_upfront,0.131621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:38.404580 +AWS,us-east-1,m6i.xlarge,reserved_1y,no_upfront,0.131621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:13.680371 +AWS,us-east-1,m6i.xlarge,reserved_1y,partial_upfront,0.131621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:04.812128 +AWS,us-east-1,m6i.xlarge,reserved_3y,all_upfront,0.043874,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:47.637921 +AWS,us-east-1,m6i.xlarge,reserved_3y,no_upfront,0.043874,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:15.523148 +AWS,us-east-1,m6i.xlarge,reserved_3y,partial_upfront,0.043874,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:13.625092 +AWS,us-east-1,m6i.xlarge,spot,NA,0.085274,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971625 +AWS,us-east-1,m6id.12xlarge,on_demand,NA,2.8476,USD,AWS Pricing API,2025-11-30T08:50:43.121947 +AWS,us-east-1,m6id.12xlarge,reserved_1y,all_upfront,2.08531,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:16.301965 +AWS,us-east-1,m6id.12xlarge,reserved_1y,no_upfront,2.08531,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:51.818119 +AWS,us-east-1,m6id.12xlarge,reserved_1y,partial_upfront,2.08531,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:43.314331 +AWS,us-east-1,m6id.12xlarge,reserved_3y,all_upfront,2.08531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:25.361310 +AWS,us-east-1,m6id.12xlarge,reserved_3y,no_upfront,2.08531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:53.341829 +AWS,us-east-1,m6id.12xlarge,reserved_3y,partial_upfront,2.08531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:52.148506 +AWS,us-east-1,m6id.12xlarge,spot,NA,0.932102,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972806 +AWS,us-east-1,m6id.16xlarge,on_demand,NA,3.7968,USD,AWS Pricing API,2025-11-30T08:50:10.050950 +AWS,us-east-1,m6id.16xlarge,reserved_1y,all_upfront,3.037442,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:43.556010 +AWS,us-east-1,m6id.16xlarge,reserved_1y,no_upfront,3.037442,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:18.896585 +AWS,us-east-1,m6id.16xlarge,reserved_1y,partial_upfront,3.037442,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:10.037026 +AWS,us-east-1,m6id.16xlarge,reserved_3y,all_upfront,1.518721,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:52.779631 +AWS,us-east-1,m6id.16xlarge,reserved_3y,no_upfront,1.518721,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:20.665272 +AWS,us-east-1,m6id.16xlarge,reserved_3y,partial_upfront,1.518721,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:18.867231 +AWS,us-east-1,m6id.16xlarge,spot,NA,1.307492,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971781 +AWS,us-east-1,m6id.24xlarge,on_demand,NA,5.6952,USD,AWS Pricing API,2025-11-30T08:50:14.293636 +AWS,us-east-1,m6id.24xlarge,reserved_1y,all_upfront,4.17063,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:47.895885 +AWS,us-east-1,m6id.24xlarge,reserved_1y,no_upfront,4.17063,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:23.130482 +AWS,us-east-1,m6id.24xlarge,reserved_1y,partial_upfront,4.17063,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:14.275471 +AWS,us-east-1,m6id.24xlarge,reserved_3y,all_upfront,4.17063,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:56.967344 +AWS,us-east-1,m6id.24xlarge,reserved_3y,no_upfront,4.17063,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:24.889946 +AWS,us-east-1,m6id.24xlarge,reserved_3y,partial_upfront,4.17063,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:23.119190 +AWS,us-east-1,m6id.24xlarge,spot,NA,2.083812,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971897 +AWS,us-east-1,m6id.2xlarge,on_demand,NA,0.4746,USD,AWS Pricing API,2025-11-30T08:50:06.545873 +AWS,us-east-1,m6id.2xlarge,reserved_1y,all_upfront,0.535388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:40.181805 +AWS,us-east-1,m6id.2xlarge,reserved_1y,no_upfront,0.535388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:15.472295 +AWS,us-east-1,m6id.2xlarge,reserved_1y,partial_upfront,0.535388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:06.597426 +AWS,us-east-1,m6id.2xlarge,reserved_3y,all_upfront,0.178463,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:49.421085 +AWS,us-east-1,m6id.2xlarge,reserved_3y,no_upfront,0.178463,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:17.278768 +AWS,us-east-1,m6id.2xlarge,reserved_3y,partial_upfront,0.178463,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:15.421397 +AWS,us-east-1,m6id.2xlarge,spot,NA,0.217292,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971723 +AWS,us-east-1,m6id.32xlarge,on_demand,NA,7.5936,USD,AWS Pricing API,2025-11-30T08:50:46.950901 +AWS,us-east-1,m6id.32xlarge,reserved_1y,all_upfront,6.074884,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:20.079114 +AWS,us-east-1,m6id.32xlarge,reserved_1y,no_upfront,6.074884,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:55.623680 +AWS,us-east-1,m6id.32xlarge,reserved_1y,partial_upfront,6.074884,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:47.147858 +AWS,us-east-1,m6id.32xlarge,reserved_3y,all_upfront,3.037441,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:29.143410 +AWS,us-east-1,m6id.32xlarge,reserved_3y,no_upfront,3.037441,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:57.136838 +AWS,us-east-1,m6id.32xlarge,reserved_3y,partial_upfront,3.037441,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:56.057185 +AWS,us-east-1,m6id.32xlarge,spot,NA,2.790453,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972965 +AWS,us-east-1,m6id.4xlarge,on_demand,NA,0.9492,USD,AWS Pricing API,2025-11-30T08:51:09.730153 +AWS,us-east-1,m6id.4xlarge,reserved_1y,all_upfront,0.66205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:42.377595 +AWS,us-east-1,m6id.4xlarge,reserved_1y,no_upfront,0.66205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:18.419908 +AWS,us-east-1,m6id.4xlarge,reserved_1y,partial_upfront,0.66205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:09.780697 +AWS,us-east-1,m6id.4xlarge,reserved_3y,all_upfront,0.44135,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:51.375343 +AWS,us-east-1,m6id.4xlarge,reserved_3y,no_upfront,0.44135,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:19.592731 +AWS,us-east-1,m6id.4xlarge,reserved_3y,partial_upfront,0.44135,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:18.842814 +AWS,us-east-1,m6id.4xlarge,spot,NA,0.390752,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973630 +AWS,us-east-1,m6id.8xlarge,on_demand,NA,1.8984,USD,AWS Pricing API,2025-11-30T08:50:41.753458 +AWS,us-east-1,m6id.8xlarge,reserved_1y,all_upfront,2.601027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:14.949157 +AWS,us-east-1,m6id.8xlarge,reserved_1y,no_upfront,2.601027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:50.457893 +AWS,us-east-1,m6id.8xlarge,reserved_1y,partial_upfront,2.601027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:41.947161 +AWS,us-east-1,m6id.8xlarge,reserved_3y,all_upfront,0.867009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:24.003653 +AWS,us-east-1,m6id.8xlarge,reserved_3y,no_upfront,0.867009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:51.992250 +AWS,us-east-1,m6id.8xlarge,reserved_3y,partial_upfront,0.867009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:50.766035 +AWS,us-east-1,m6id.8xlarge,spot,NA,0.765737,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972785 +AWS,us-east-1,m6id.large,on_demand,NA,0.11865,USD,AWS Pricing API,2025-11-30T08:51:10.827572 +AWS,us-east-1,m6id.large,reserved_1y,all_upfront,0.08689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:43.467280 +AWS,us-east-1,m6id.large,reserved_1y,no_upfront,0.08689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:19.507515 +AWS,us-east-1,m6id.large,reserved_1y,partial_upfront,0.08689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:10.853859 +AWS,us-east-1,m6id.large,reserved_3y,all_upfront,0.08689,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:52.458848 +AWS,us-east-1,m6id.large,reserved_3y,no_upfront,0.08689,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:20.666288 +AWS,us-east-1,m6id.large,reserved_3y,partial_upfront,0.08689,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:19.939258 +AWS,us-east-1,m6id.large,spot,NA,0.048373,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973689 +AWS,us-east-1,m6id.xlarge,on_demand,NA,0.2373,USD,AWS Pricing API,2025-11-30T08:50:13.335695 +AWS,us-east-1,m6id.xlarge,reserved_1y,all_upfront,0.139498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:46.948039 +AWS,us-east-1,m6id.xlarge,reserved_1y,no_upfront,0.139498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:22.172707 +AWS,us-east-1,m6id.xlarge,reserved_1y,partial_upfront,0.139498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:13.315573 +AWS,us-east-1,m6id.xlarge,reserved_3y,all_upfront,0.046499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:56.014514 +AWS,us-east-1,m6id.xlarge,reserved_3y,no_upfront,0.046499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:23.940332 +AWS,us-east-1,m6id.xlarge,reserved_3y,partial_upfront,0.046499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:22.156346 +AWS,us-east-1,m6id.xlarge,spot,NA,0.083884,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971883 +AWS,us-east-1,m6idn.12xlarge,on_demand,NA,3.81888,USD,AWS Pricing API,2025-11-30T08:50:33.398496 +AWS,us-east-1,m6idn.12xlarge,reserved_1y,all_upfront,3.161325,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:06.734401 +AWS,us-east-1,m6idn.12xlarge,reserved_1y,no_upfront,3.161325,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:42.113120 +AWS,us-east-1,m6idn.12xlarge,reserved_1y,partial_upfront,3.161325,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:33.539919 +AWS,us-east-1,m6idn.12xlarge,reserved_3y,all_upfront,1.580655,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:15.742140 +AWS,us-east-1,m6idn.12xlarge,reserved_3y,no_upfront,1.580655,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:43.742927 +AWS,us-east-1,m6idn.12xlarge,reserved_3y,partial_upfront,1.580655,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:42.303586 +AWS,us-east-1,m6idn.12xlarge,spot,NA,1.416806,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972534 +AWS,us-east-1,m6idn.16xlarge,on_demand,NA,5.09184,USD,AWS Pricing API,2025-11-30T08:50:56.858423 +AWS,us-east-1,m6idn.16xlarge,reserved_1y,all_upfront,3.055061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:29.664547 +AWS,us-east-1,m6idn.16xlarge,reserved_1y,no_upfront,3.055061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:05.560111 +AWS,us-east-1,m6idn.16xlarge,reserved_1y,partial_upfront,3.055061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:57.079224 +AWS,us-east-1,m6idn.16xlarge,reserved_3y,all_upfront,2.03672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:38.726566 +AWS,us-east-1,m6idn.16xlarge,reserved_3y,no_upfront,2.03672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:06.840951 +AWS,us-east-1,m6idn.16xlarge,reserved_3y,partial_upfront,2.03672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:05.882697 +AWS,us-east-1,m6idn.16xlarge,spot,NA,1.764097,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973243 +AWS,us-east-1,m6idn.24xlarge,on_demand,NA,7.63776,USD,AWS Pricing API,2025-11-30T08:50:39.282967 +AWS,us-east-1,m6idn.24xlarge,reserved_1y,all_upfront,5.499229,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:12.541039 +AWS,us-east-1,m6idn.24xlarge,reserved_1y,no_upfront,5.499229,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:47.988536 +AWS,us-east-1,m6idn.24xlarge,reserved_1y,partial_upfront,5.499229,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:39.467603 +AWS,us-east-1,m6idn.24xlarge,reserved_3y,all_upfront,2.74961,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:21.559518 +AWS,us-east-1,m6idn.24xlarge,reserved_3y,no_upfront,2.74961,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:49.562882 +AWS,us-east-1,m6idn.24xlarge,reserved_3y,partial_upfront,2.74961,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:48.268358 +AWS,us-east-1,m6idn.24xlarge,spot,NA,2.358821,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972690 +AWS,us-east-1,m6idn.2xlarge,on_demand,NA,0.63648,USD,AWS Pricing API,2025-11-30T08:50:19.534920 +AWS,us-east-1,m6idn.2xlarge,reserved_1y,all_upfront,0.374201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:53.071756 +AWS,us-east-1,m6idn.2xlarge,reserved_1y,no_upfront,0.374201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:28.321461 +AWS,us-east-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.374201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:19.472105 +AWS,us-east-1,m6idn.2xlarge,reserved_3y,all_upfront,0.124734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:02.116821 +AWS,us-east-1,m6idn.2xlarge,reserved_3y,no_upfront,0.124734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:30.021460 +AWS,us-east-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.124734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:28.375158 +AWS,us-east-1,m6idn.2xlarge,spot,NA,0.359213,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972091 +AWS,us-east-1,m6idn.32xlarge,on_demand,NA,10.18368,USD,AWS Pricing API,2025-11-30T08:50:40.102375 +AWS,us-east-1,m6idn.32xlarge,reserved_1y,all_upfront,5.988014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:13.341961 +AWS,us-east-1,m6idn.32xlarge,reserved_1y,no_upfront,5.988014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:48.806045 +AWS,us-east-1,m6idn.32xlarge,reserved_1y,partial_upfront,5.988014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:40.296035 +AWS,us-east-1,m6idn.32xlarge,reserved_3y,all_upfront,1.996005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:22.366542 +AWS,us-east-1,m6idn.32xlarge,reserved_3y,no_upfront,1.996005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:50.383266 +AWS,us-east-1,m6idn.32xlarge,reserved_3y,partial_upfront,1.996005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:49.097449 +AWS,us-east-1,m6idn.32xlarge,spot,NA,3.483743,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972733 +AWS,us-east-1,m6idn.4xlarge,on_demand,NA,1.27296,USD,AWS Pricing API,2025-11-30T08:50:36.270543 +AWS,us-east-1,m6idn.4xlarge,reserved_1y,all_upfront,0.868265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:09.572584 +AWS,us-east-1,m6idn.4xlarge,reserved_1y,no_upfront,0.868265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:44.984560 +AWS,us-east-1,m6idn.4xlarge,reserved_1y,partial_upfront,0.868265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:36.435107 +AWS,us-east-1,m6idn.4xlarge,reserved_3y,all_upfront,0.289422,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:18.597728 +AWS,us-east-1,m6idn.4xlarge,reserved_3y,no_upfront,0.289422,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:46.588984 +AWS,us-east-1,m6idn.4xlarge,reserved_3y,partial_upfront,0.289422,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:45.222794 +AWS,us-east-1,m6idn.4xlarge,spot,NA,0.823865,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972593 +AWS,us-east-1,m6idn.8xlarge,on_demand,NA,2.54592,USD,AWS Pricing API,2025-11-30T08:50:04.064955 +AWS,us-east-1,m6idn.8xlarge,reserved_1y,all_upfront,3.098059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:37.735812 +AWS,us-east-1,m6idn.8xlarge,reserved_1y,no_upfront,3.098059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:12.994043 +AWS,us-east-1,m6idn.8xlarge,reserved_1y,partial_upfront,3.098059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:04.133136 +AWS,us-east-1,m6idn.8xlarge,reserved_3y,all_upfront,1.032686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:46.965505 +AWS,us-east-1,m6idn.8xlarge,reserved_3y,no_upfront,1.032686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:14.839486 +AWS,us-east-1,m6idn.8xlarge,reserved_3y,partial_upfront,1.032686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:12.940638 +AWS,us-east-1,m6idn.8xlarge,spot,NA,1.212436,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971604 +AWS,us-east-1,m6idn.large,on_demand,NA,0.15912,USD,AWS Pricing API,2025-11-30T08:50:50.776718 +AWS,us-east-1,m6idn.large,reserved_1y,all_upfront,0.10025,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:23.729626 +AWS,us-east-1,m6idn.large,reserved_1y,no_upfront,0.10025,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:59.414422 +AWS,us-east-1,m6idn.large,reserved_1y,partial_upfront,0.10025,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:50.867624 +AWS,us-east-1,m6idn.large,reserved_3y,all_upfront,0.10025,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:32.762187 +AWS,us-east-1,m6idn.large,reserved_3y,no_upfront,0.10025,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:00.794915 +AWS,us-east-1,m6idn.large,reserved_3y,partial_upfront,0.10025,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:59.768013 +AWS,us-east-1,m6idn.large,spot,NA,0.056535,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973081 +AWS,us-east-1,m6idn.xlarge,on_demand,NA,0.31824,USD,AWS Pricing API,2025-11-30T08:50:33.536388 +AWS,us-east-1,m6idn.xlarge,reserved_1y,all_upfront,0.221481,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:06.868759 +AWS,us-east-1,m6idn.xlarge,reserved_1y,no_upfront,0.221481,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:42.254838 +AWS,us-east-1,m6idn.xlarge,reserved_1y,partial_upfront,0.221481,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:33.676711 +AWS,us-east-1,m6idn.xlarge,reserved_3y,all_upfront,0.14766,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:15.876791 +AWS,us-east-1,m6idn.xlarge,reserved_3y,no_upfront,0.14766,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:43.878350 +AWS,us-east-1,m6idn.xlarge,reserved_3y,partial_upfront,0.14766,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:42.440462 +AWS,us-east-1,m6idn.xlarge,spot,NA,0.152123,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972526 +AWS,us-east-1,m6in.12xlarge,on_demand,NA,3.34152,USD,AWS Pricing API,2025-11-30T08:50:01.009843 +AWS,us-east-1,m6in.12xlarge,reserved_1y,all_upfront,1.96484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:34.902672 +AWS,us-east-1,m6in.12xlarge,reserved_1y,no_upfront,1.96484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:10.132939 +AWS,us-east-1,m6in.12xlarge,reserved_1y,partial_upfront,1.96484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:01.237095 +AWS,us-east-1,m6in.12xlarge,reserved_3y,all_upfront,0.654947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:44.148470 +AWS,us-east-1,m6in.12xlarge,reserved_3y,no_upfront,0.654947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:12.006320 +AWS,us-east-1,m6in.12xlarge,reserved_3y,partial_upfront,0.654947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:10.016807 +AWS,us-east-1,m6in.12xlarge,spot,NA,1.579086,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971523 +AWS,us-east-1,m6in.16xlarge,on_demand,NA,4.45536,USD,AWS Pricing API,2025-11-30T08:50:11.281363 +AWS,us-east-1,m6in.16xlarge,reserved_1y,all_upfront,3.25083,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:44.773505 +AWS,us-east-1,m6in.16xlarge,reserved_1y,no_upfront,3.25083,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:20.125349 +AWS,us-east-1,m6in.16xlarge,reserved_1y,partial_upfront,3.25083,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:11.261210 +AWS,us-east-1,m6in.16xlarge,reserved_3y,all_upfront,3.25083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:53.993902 +AWS,us-east-1,m6in.16xlarge,reserved_3y,no_upfront,3.25083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:21.911234 +AWS,us-east-1,m6in.16xlarge,reserved_3y,partial_upfront,3.25083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:20.103900 +AWS,us-east-1,m6in.16xlarge,spot,NA,1.868628,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971846 +AWS,us-east-1,m6in.24xlarge,on_demand,NA,6.68304,USD,AWS Pricing API,2025-11-30T08:50:53.289656 +AWS,us-east-1,m6in.24xlarge,reserved_1y,all_upfront,8.055708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:26.163083 +AWS,us-east-1,m6in.24xlarge,reserved_1y,no_upfront,8.055708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:01.959723 +AWS,us-east-1,m6in.24xlarge,reserved_1y,partial_upfront,8.055708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:53.339904 +AWS,us-east-1,m6in.24xlarge,reserved_3y,all_upfront,2.685236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:35.220369 +AWS,us-east-1,m6in.24xlarge,reserved_3y,no_upfront,2.685236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:03.318824 +AWS,us-east-1,m6in.24xlarge,reserved_3y,partial_upfront,2.685236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:02.277505 +AWS,us-east-1,m6in.24xlarge,spot,NA,2.834458,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973144 +AWS,us-east-1,m6in.2xlarge,on_demand,NA,0.55692,USD,AWS Pricing API,2025-11-30T08:50:18.126265 +AWS,us-east-1,m6in.2xlarge,reserved_1y,all_upfront,0.327511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:51.716052 +AWS,us-east-1,m6in.2xlarge,reserved_1y,no_upfront,0.327511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:26.955892 +AWS,us-east-1,m6in.2xlarge,reserved_1y,partial_upfront,0.327511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:18.102132 +AWS,us-east-1,m6in.2xlarge,reserved_3y,all_upfront,0.10917,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:00.748854 +AWS,us-east-1,m6in.2xlarge,reserved_3y,no_upfront,0.10917,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:28.672704 +AWS,us-east-1,m6in.2xlarge,reserved_3y,partial_upfront,0.10917,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:26.989667 +AWS,us-east-1,m6in.2xlarge,spot,NA,0.241905,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972064 +AWS,us-east-1,m6in.32xlarge,on_demand,NA,8.91072,USD,AWS Pricing API,2025-11-30T08:50:06.680642 +AWS,us-east-1,m6in.32xlarge,reserved_1y,all_upfront,6.192035,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:40.316721 +AWS,us-east-1,m6in.32xlarge,reserved_1y,no_upfront,6.192035,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:15.609558 +AWS,us-east-1,m6in.32xlarge,reserved_1y,partial_upfront,6.192035,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:06.732960 +AWS,us-east-1,m6in.32xlarge,reserved_3y,all_upfront,4.128032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:49.557333 +AWS,us-east-1,m6in.32xlarge,reserved_3y,no_upfront,4.128032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:17.414161 +AWS,us-east-1,m6in.32xlarge,reserved_3y,partial_upfront,4.128032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:15.561214 +AWS,us-east-1,m6in.32xlarge,spot,NA,3.382001,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971694 +AWS,us-east-1,m6in.4xlarge,on_demand,NA,1.11384,USD,AWS Pricing API,2025-11-30T08:50:16.900507 +AWS,us-east-1,m6in.4xlarge,reserved_1y,all_upfront,0.668282,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:50.479799 +AWS,us-east-1,m6in.4xlarge,reserved_1y,no_upfront,0.668282,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:25.731919 +AWS,us-east-1,m6in.4xlarge,reserved_1y,partial_upfront,0.668282,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:16.861024 +AWS,us-east-1,m6in.4xlarge,reserved_3y,all_upfront,0.445527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:59.526688 +AWS,us-east-1,m6in.4xlarge,reserved_3y,no_upfront,0.445527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:27.459262 +AWS,us-east-1,m6in.4xlarge,reserved_3y,partial_upfront,0.445527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:25.736241 +AWS,us-east-1,m6in.4xlarge,spot,NA,0.648369,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972022 +AWS,us-east-1,m6in.8xlarge,on_demand,NA,2.22768,USD,AWS Pricing API,2025-11-30T08:50:14.989996 +AWS,us-east-1,m6in.8xlarge,reserved_1y,all_upfront,2.685274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:48.571077 +AWS,us-east-1,m6in.8xlarge,reserved_1y,no_upfront,2.685274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:23.818800 +AWS,us-east-1,m6in.8xlarge,reserved_1y,partial_upfront,2.685274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:14.960499 +AWS,us-east-1,m6in.8xlarge,reserved_3y,all_upfront,0.895091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:57.649070 +AWS,us-east-1,m6in.8xlarge,reserved_3y,no_upfront,0.895091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:25.561062 +AWS,us-east-1,m6in.8xlarge,reserved_3y,partial_upfront,0.895091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:23.808739 +AWS,us-east-1,m6in.8xlarge,spot,NA,1.02379,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971982 +AWS,us-east-1,m6in.large,on_demand,NA,0.13923,USD,AWS Pricing API,2025-11-30T08:50:34.766579 +AWS,us-east-1,m6in.large,reserved_1y,all_upfront,0.081849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:08.090510 +AWS,us-east-1,m6in.large,reserved_1y,no_upfront,0.081849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:43.482991 +AWS,us-east-1,m6in.large,reserved_1y,partial_upfront,0.081849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:34.912952 +AWS,us-east-1,m6in.large,reserved_3y,all_upfront,0.027283,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:17.094664 +AWS,us-east-1,m6in.large,reserved_3y,no_upfront,0.027283,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:45.101195 +AWS,us-east-1,m6in.large,reserved_3y,partial_upfront,0.027283,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:43.698348 +AWS,us-east-1,m6in.large,spot,NA,0.045686,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972573 +AWS,us-east-1,m6in.xlarge,on_demand,NA,0.27846,USD,AWS Pricing API,2025-11-30T08:50:49.077249 +AWS,us-east-1,m6in.xlarge,reserved_1y,all_upfront,0.17543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:22.101568 +AWS,us-east-1,m6in.xlarge,reserved_1y,no_upfront,0.17543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:57.740054 +AWS,us-east-1,m6in.xlarge,reserved_1y,partial_upfront,0.17543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:49.216188 +AWS,us-east-1,m6in.xlarge,reserved_3y,all_upfront,0.17543,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:31.168055 +AWS,us-east-1,m6in.xlarge,reserved_3y,no_upfront,0.17543,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:59.169749 +AWS,us-east-1,m6in.xlarge,reserved_3y,partial_upfront,0.17543,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:58.124294 +AWS,us-east-1,m6in.xlarge,spot,NA,0.120521,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972986 +AWS,us-east-1,m7a.12xlarge,on_demand,NA,2.78208,USD,AWS Pricing API,2025-11-30T08:50:37.495504 +AWS,us-east-1,m7a.12xlarge,reserved_1y,all_upfront,2.04395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:10.785916 +AWS,us-east-1,m7a.12xlarge,reserved_1y,no_upfront,2.04395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:46.213625 +AWS,us-east-1,m7a.12xlarge,reserved_1y,partial_upfront,2.04395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:37.665245 +AWS,us-east-1,m7a.12xlarge,reserved_3y,all_upfront,2.04395,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:19.818434 +AWS,us-east-1,m7a.12xlarge,reserved_3y,no_upfront,2.04395,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:47.806842 +AWS,us-east-1,m7a.12xlarge,reserved_3y,partial_upfront,2.04395,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:46.466986 +AWS,us-east-1,m7a.12xlarge,spot,NA,1.026188,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972648 +AWS,us-east-1,m7a.16xlarge,on_demand,NA,3.70944,USD,AWS Pricing API,2025-11-30T08:50:53.852116 +AWS,us-east-1,m7a.16xlarge,reserved_1y,all_upfront,2.290183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:26.705306 +AWS,us-east-1,m7a.16xlarge,reserved_1y,no_upfront,2.290183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:02.526001 +AWS,us-east-1,m7a.16xlarge,reserved_1y,partial_upfront,2.290183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:53.886881 +AWS,us-east-1,m7a.16xlarge,reserved_3y,all_upfront,0.763394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:35.765433 +AWS,us-east-1,m7a.16xlarge,reserved_3y,no_upfront,0.763394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:03.859777 +AWS,us-east-1,m7a.16xlarge,reserved_3y,partial_upfront,0.763394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:02.842668 +AWS,us-east-1,m7a.16xlarge,spot,NA,1.348665,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973184 +AWS,us-east-1,m7a.24xlarge,on_demand,NA,5.56416,USD,AWS Pricing API,2025-11-30T08:51:06.728932 +AWS,us-east-1,m7a.24xlarge,reserved_1y,all_upfront,4.0879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:39.392721 +AWS,us-east-1,m7a.24xlarge,reserved_1y,no_upfront,4.0879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:15.409763 +AWS,us-east-1,m7a.24xlarge,reserved_1y,partial_upfront,4.0879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:06.817490 +AWS,us-east-1,m7a.24xlarge,reserved_3y,all_upfront,4.0879,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:48.413255 +AWS,us-east-1,m7a.24xlarge,reserved_3y,no_upfront,4.0879,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:16.631184 +AWS,us-east-1,m7a.24xlarge,reserved_3y,partial_upfront,4.0879,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:15.785636 +AWS,us-east-1,m7a.24xlarge,spot,NA,1.83406,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973548 +AWS,us-east-1,m7a.2xlarge,on_demand,NA,0.46368,USD,AWS Pricing API,2025-11-30T08:50:12.926978 +AWS,us-east-1,m7a.2xlarge,reserved_1y,all_upfront,0.286301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:46.543846 +AWS,us-east-1,m7a.2xlarge,reserved_1y,no_upfront,0.286301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:21.757573 +AWS,us-east-1,m7a.2xlarge,reserved_1y,partial_upfront,0.286301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:12.907314 +AWS,us-east-1,m7a.2xlarge,reserved_3y,all_upfront,0.095434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:55.613027 +AWS,us-east-1,m7a.2xlarge,reserved_3y,no_upfront,0.095434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:23.531659 +AWS,us-east-1,m7a.2xlarge,reserved_3y,partial_upfront,0.095434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:21.742968 +AWS,us-east-1,m7a.2xlarge,spot,NA,0.19839,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971874 +AWS,us-east-1,m7a.32xlarge,on_demand,NA,7.41888,USD,AWS Pricing API,2025-11-30T08:50:56.185305 +AWS,us-east-1,m7a.32xlarge,reserved_1y,all_upfront,4.673936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:28.996618 +AWS,us-east-1,m7a.32xlarge,reserved_1y,no_upfront,4.673936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:04.879007 +AWS,us-east-1,m7a.32xlarge,reserved_1y,partial_upfront,4.673936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:56.401124 +AWS,us-east-1,m7a.32xlarge,reserved_3y,all_upfront,3.115945,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:38.063375 +AWS,us-east-1,m7a.32xlarge,reserved_3y,no_upfront,3.115945,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:06.170693 +AWS,us-east-1,m7a.32xlarge,reserved_3y,partial_upfront,3.115945,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:05.201793 +AWS,us-east-1,m7a.32xlarge,spot,NA,2.310057,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973231 +AWS,us-east-1,m7a.48xlarge,on_demand,NA,11.12832,USD,AWS Pricing API,2025-11-30T08:50:05.867435 +AWS,us-east-1,m7a.48xlarge,reserved_1y,all_upfront,13.180365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:39.491508 +AWS,us-east-1,m7a.48xlarge,reserved_1y,no_upfront,13.180365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:14.768043 +AWS,us-east-1,m7a.48xlarge,reserved_1y,partial_upfront,13.180365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:05.909032 +AWS,us-east-1,m7a.48xlarge,reserved_3y,all_upfront,4.393455,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:48.720595 +AWS,us-east-1,m7a.48xlarge,reserved_3y,no_upfront,4.393455,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:16.610958 +AWS,us-east-1,m7a.48xlarge,reserved_3y,partial_upfront,4.393455,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:14.723137 +AWS,us-east-1,m7a.48xlarge,spot,NA,3.581742,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971674 +AWS,us-east-1,m7a.4xlarge,on_demand,NA,0.92736,USD,AWS Pricing API,2025-11-30T08:50:39.426948 +AWS,us-east-1,m7a.4xlarge,reserved_1y,all_upfront,0.584243,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:12.672799 +AWS,us-east-1,m7a.4xlarge,reserved_1y,no_upfront,0.584243,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:48.125979 +AWS,us-east-1,m7a.4xlarge,reserved_1y,partial_upfront,0.584243,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:39.604922 +AWS,us-east-1,m7a.4xlarge,reserved_3y,all_upfront,0.389494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:21.692505 +AWS,us-east-1,m7a.4xlarge,reserved_3y,no_upfront,0.389494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:49.697122 +AWS,us-east-1,m7a.4xlarge,reserved_3y,partial_upfront,0.389494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:48.404731 +AWS,us-east-1,m7a.4xlarge,spot,NA,0.408492,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972686 +AWS,us-east-1,m7a.8xlarge,on_demand,NA,1.85472,USD,AWS Pricing API,2025-11-30T08:50:43.663716 +AWS,us-east-1,m7a.8xlarge,reserved_1y,all_upfront,2.560616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:16.837359 +AWS,us-east-1,m7a.8xlarge,reserved_1y,no_upfront,2.560616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:52.366019 +AWS,us-east-1,m7a.8xlarge,reserved_1y,partial_upfront,2.560616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:43.869364 +AWS,us-east-1,m7a.8xlarge,reserved_3y,all_upfront,0.853539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:25.893974 +AWS,us-east-1,m7a.8xlarge,reserved_3y,no_upfront,0.853539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:53.898193 +AWS,us-east-1,m7a.8xlarge,reserved_3y,partial_upfront,0.853539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:52.709505 +AWS,us-east-1,m7a.8xlarge,spot,NA,0.765876,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972843 +AWS,us-east-1,m7a.xlarge,on_demand,NA,0.23184,USD,AWS Pricing API,2025-11-30T08:50:05.458299 +AWS,us-east-1,m7a.xlarge,reserved_1y,all_upfront,0.320091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:39.083791 +AWS,us-east-1,m7a.xlarge,reserved_1y,no_upfront,0.320091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:14.360936 +AWS,us-east-1,m7a.xlarge,reserved_1y,partial_upfront,0.320091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:05.498356 +AWS,us-east-1,m7a.xlarge,reserved_3y,all_upfront,0.106697,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:48.312228 +AWS,us-east-1,m7a.xlarge,reserved_3y,no_upfront,0.106697,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:16.200124 +AWS,us-east-1,m7a.xlarge,reserved_3y,partial_upfront,0.106697,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:14.311575 +AWS,us-east-1,m7a.xlarge,spot,NA,0.097982,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971650 +AWS,us-east-1,m7g.12xlarge,on_demand,NA,1.9584,USD,AWS Pricing API,2025-11-30T08:50:22.480669 +AWS,us-east-1,m7g.12xlarge,reserved_1y,all_upfront,1.4388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:55.910486 +AWS,us-east-1,m7g.12xlarge,reserved_1y,no_upfront,1.4388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:31.201707 +AWS,us-east-1,m7g.12xlarge,reserved_1y,partial_upfront,1.4388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:22.337393 +AWS,us-east-1,m7g.12xlarge,reserved_3y,all_upfront,1.4388,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:04.950696 +AWS,us-east-1,m7g.12xlarge,reserved_3y,no_upfront,1.4388,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:32.834245 +AWS,us-east-1,m7g.12xlarge,reserved_3y,partial_upfront,1.4388,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:31.272845 +AWS,us-east-1,m7g.12xlarge,spot,NA,0.60595,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972196 +AWS,us-east-1,m7g.16xlarge,on_demand,NA,2.6112,USD,AWS Pricing API,2025-11-30T08:50:51.628494 +AWS,us-east-1,m7g.16xlarge,reserved_1y,all_upfront,1.9184,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:24.533672 +AWS,us-east-1,m7g.16xlarge,reserved_1y,no_upfront,1.9184,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:00.246000 +AWS,us-east-1,m7g.16xlarge,reserved_1y,partial_upfront,1.9184,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:51.686858 +AWS,us-east-1,m7g.16xlarge,reserved_3y,all_upfront,1.9184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:33.574965 +AWS,us-east-1,m7g.16xlarge,reserved_3y,no_upfront,1.9184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:01.613864 +AWS,us-east-1,m7g.16xlarge,reserved_3y,partial_upfront,1.9184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:00.608779 +AWS,us-east-1,m7g.16xlarge,spot,NA,0.918367,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973093 +AWS,us-east-1,m7g.2xlarge,on_demand,NA,0.3264,USD,AWS Pricing API,2025-11-30T08:50:14.155787 +AWS,us-east-1,m7g.2xlarge,reserved_1y,all_upfront,0.274094,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:47.764441 +AWS,us-east-1,m7g.2xlarge,reserved_1y,no_upfront,0.274094,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:22.994107 +AWS,us-east-1,m7g.2xlarge,reserved_1y,partial_upfront,0.274094,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:14.138960 +AWS,us-east-1,m7g.2xlarge,reserved_3y,all_upfront,0.137031,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:56.833401 +AWS,us-east-1,m7g.2xlarge,reserved_3y,no_upfront,0.137031,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:24.756820 +AWS,us-east-1,m7g.2xlarge,reserved_3y,partial_upfront,0.137031,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:22.979796 +AWS,us-east-1,m7g.2xlarge,spot,NA,0.153221,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971914 +AWS,us-east-1,m7g.4xlarge,on_demand,NA,0.6528,USD,AWS Pricing API,2025-11-30T08:51:11.382375 +AWS,us-east-1,m7g.4xlarge,reserved_1y,all_upfront,0.456825,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:44.012414 +AWS,us-east-1,m7g.4xlarge,reserved_1y,no_upfront,0.456825,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:20.057256 +AWS,us-east-1,m7g.4xlarge,reserved_1y,partial_upfront,0.456825,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:11.392537 +AWS,us-east-1,m7g.4xlarge,reserved_3y,all_upfront,0.304542,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:52.994103 +AWS,us-east-1,m7g.4xlarge,reserved_3y,no_upfront,0.304542,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:21.206622 +AWS,us-east-1,m7g.4xlarge,reserved_3y,partial_upfront,0.304542,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:20.493430 +AWS,us-east-1,m7g.4xlarge,spot,NA,0.312843,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973716 +AWS,us-east-1,m7g.8xlarge,on_demand,NA,1.3056,USD,AWS Pricing API,2025-11-30T08:50:05.179086 +AWS,us-east-1,m7g.8xlarge,reserved_1y,all_upfront,0.9592,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:38.814573 +AWS,us-east-1,m7g.8xlarge,reserved_1y,no_upfront,0.9592,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:14.088231 +AWS,us-east-1,m7g.8xlarge,reserved_1y,partial_upfront,0.9592,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:05.221054 +AWS,us-east-1,m7g.8xlarge,reserved_3y,all_upfront,0.9592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:48.040344 +AWS,us-east-1,m7g.8xlarge,reserved_3y,no_upfront,0.9592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:15.931037 +AWS,us-east-1,m7g.8xlarge,reserved_3y,partial_upfront,0.9592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:14.035169 +AWS,us-east-1,m7g.8xlarge,spot,NA,0.479686,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971662 +AWS,us-east-1,m7g.large,on_demand,NA,0.0816,USD,AWS Pricing API,2025-11-30T08:50:33.125956 +AWS,us-east-1,m7g.large,reserved_1y,all_upfront,0.096689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:06.461429 +AWS,us-east-1,m7g.large,reserved_1y,no_upfront,0.096689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:41.841765 +AWS,us-east-1,m7g.large,reserved_1y,partial_upfront,0.096689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:33.264764 +AWS,us-east-1,m7g.large,reserved_3y,all_upfront,0.03223,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:15.472020 +AWS,us-east-1,m7g.large,reserved_3y,no_upfront,0.03223,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:43.469330 +AWS,us-east-1,m7g.large,reserved_3y,partial_upfront,0.03223,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:42.030014 +AWS,us-east-1,m7g.large,spot,NA,0.036297,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972530 +AWS,us-east-1,m7g.xlarge,on_demand,NA,0.1632,USD,AWS Pricing API,2025-11-30T08:50:39.966521 +AWS,us-east-1,m7g.xlarge,reserved_1y,all_upfront,0.100799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:13.207625 +AWS,us-east-1,m7g.xlarge,reserved_1y,no_upfront,0.100799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:48.669527 +AWS,us-east-1,m7g.xlarge,reserved_1y,partial_upfront,0.100799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:40.150802 +AWS,us-east-1,m7g.xlarge,reserved_3y,all_upfront,0.0336,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:22.232138 +AWS,us-east-1,m7g.xlarge,reserved_3y,no_upfront,0.0336,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:50.247383 +AWS,us-east-1,m7g.xlarge,reserved_3y,partial_upfront,0.0336,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:48.955157 +AWS,us-east-1,m7g.xlarge,spot,NA,0.073434,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972717 +AWS,us-east-1,m7gd.12xlarge,on_demand,NA,2.5628,USD,AWS Pricing API,2025-11-30T08:50:13.470571 +AWS,us-east-1,m7gd.12xlarge,reserved_1y,all_upfront,1.8768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:47.080307 +AWS,us-east-1,m7gd.12xlarge,reserved_1y,no_upfront,1.8768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:22.310311 +AWS,us-east-1,m7gd.12xlarge,reserved_1y,partial_upfront,1.8768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:13.450616 +AWS,us-east-1,m7gd.12xlarge,reserved_3y,all_upfront,1.8768,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:56.159854 +AWS,us-east-1,m7gd.12xlarge,reserved_3y,no_upfront,1.8768,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:24.075087 +AWS,us-east-1,m7gd.12xlarge,reserved_3y,partial_upfront,1.8768,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:22.293117 +AWS,us-east-1,m7gd.12xlarge,spot,NA,0.781772,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971910 +AWS,us-east-1,m7gd.16xlarge,on_demand,NA,3.4171,USD,AWS Pricing API,2025-11-30T08:50:30.806164 +AWS,us-east-1,m7gd.16xlarge,reserved_1y,all_upfront,2.733628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:04.149656 +AWS,us-east-1,m7gd.16xlarge,reserved_1y,no_upfront,2.733628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:39.521162 +AWS,us-east-1,m7gd.16xlarge,reserved_1y,partial_upfront,2.733628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:30.705862 +AWS,us-east-1,m7gd.16xlarge,reserved_3y,all_upfront,1.366809,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:13.188496 +AWS,us-east-1,m7gd.16xlarge,reserved_3y,no_upfront,1.366809,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:41.129238 +AWS,us-east-1,m7gd.16xlarge,reserved_3y,partial_upfront,1.366809,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:39.685862 +AWS,us-east-1,m7gd.16xlarge,spot,NA,1.240001,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972450 +AWS,us-east-1,m7gd.2xlarge,on_demand,NA,0.4271,USD,AWS Pricing API,2025-11-30T08:50:46.546267 +AWS,us-east-1,m7gd.2xlarge,reserved_1y,all_upfront,0.2691,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:19.676767 +AWS,us-east-1,m7gd.2xlarge,reserved_1y,no_upfront,0.2691,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:55.215504 +AWS,us-east-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.2691,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:46.740029 +AWS,us-east-1,m7gd.2xlarge,reserved_3y,all_upfront,0.2691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:28.737165 +AWS,us-east-1,m7gd.2xlarge,reserved_3y,no_upfront,0.2691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:56.730822 +AWS,us-east-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.2691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:55.618383 +AWS,us-east-1,m7gd.2xlarge,spot,NA,0.17031,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972953 +AWS,us-east-1,m7gd.4xlarge,on_demand,NA,0.8543,USD,AWS Pricing API,2025-11-30T08:51:04.400486 +AWS,us-east-1,m7gd.4xlarge,reserved_1y,all_upfront,0.5382,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:37.087333 +AWS,us-east-1,m7gd.4xlarge,reserved_1y,no_upfront,0.5382,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:13.089377 +AWS,us-east-1,m7gd.4xlarge,reserved_1y,partial_upfront,0.5382,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:04.537242 +AWS,us-east-1,m7gd.4xlarge,reserved_3y,all_upfront,0.5382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:46.143602 +AWS,us-east-1,m7gd.4xlarge,reserved_3y,no_upfront,0.5382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:14.332209 +AWS,us-east-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.5382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:13.457833 +AWS,us-east-1,m7gd.4xlarge,spot,NA,0.384557,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973511 +AWS,us-east-1,m7gd.8xlarge,on_demand,NA,1.7086,USD,AWS Pricing API,2025-11-30T08:50:44.212771 +AWS,us-east-1,m7gd.8xlarge,reserved_1y,all_upfront,1.2512,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:17.371599 +AWS,us-east-1,m7gd.8xlarge,reserved_1y,no_upfront,1.2512,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:52.903990 +AWS,us-east-1,m7gd.8xlarge,reserved_1y,partial_upfront,1.2512,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:44.409649 +AWS,us-east-1,m7gd.8xlarge,reserved_3y,all_upfront,1.2512,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:26.429343 +AWS,us-east-1,m7gd.8xlarge,reserved_3y,no_upfront,1.2512,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:54.432089 +AWS,us-east-1,m7gd.8xlarge,reserved_3y,partial_upfront,1.2512,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:53.268947 +AWS,us-east-1,m7gd.8xlarge,spot,NA,0.749023,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972848 +AWS,us-east-1,m7gd.large,on_demand,NA,0.1068,USD,AWS Pricing API,2025-11-30T08:50:42.027305 +AWS,us-east-1,m7gd.large,reserved_1y,all_upfront,0.064078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:15.220536 +AWS,us-east-1,m7gd.large,reserved_1y,no_upfront,0.064078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:50.732250 +AWS,us-east-1,m7gd.large,reserved_1y,partial_upfront,0.064078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:42.218317 +AWS,us-east-1,m7gd.large,reserved_3y,all_upfront,0.042693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:24.272854 +AWS,us-east-1,m7gd.large,reserved_3y,no_upfront,0.042693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:52.259935 +AWS,us-east-1,m7gd.large,reserved_3y,partial_upfront,0.042693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:51.042345 +AWS,us-east-1,m7gd.large,spot,NA,0.04483,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972754 +AWS,us-east-1,m7gd.xlarge,on_demand,NA,0.2136,USD,AWS Pricing API,2025-11-30T08:50:48.221103 +AWS,us-east-1,m7gd.xlarge,reserved_1y,all_upfront,0.125571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:21.294908 +AWS,us-east-1,m7gd.xlarge,reserved_1y,no_upfront,0.125571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:56.873382 +AWS,us-east-1,m7gd.xlarge,reserved_1y,partial_upfront,0.125571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:48.383172 +AWS,us-east-1,m7gd.xlarge,reserved_3y,all_upfront,0.041857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:30.353866 +AWS,us-east-1,m7gd.xlarge,reserved_3y,no_upfront,0.041857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:58.358863 +AWS,us-east-1,m7gd.xlarge,reserved_3y,partial_upfront,0.041857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:57.296538 +AWS,us-east-1,m7gd.xlarge,spot,NA,0.09617,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973002 +AWS,us-east-1,m7i.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:50:19.671616 +AWS,us-east-1,m7i.12xlarge,reserved_1y,all_upfront,1.493607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:53.205032 +AWS,us-east-1,m7i.12xlarge,reserved_1y,no_upfront,1.493607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:28.457005 +AWS,us-east-1,m7i.12xlarge,reserved_1y,partial_upfront,1.493607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:19.607598 +AWS,us-east-1,m7i.12xlarge,reserved_3y,all_upfront,0.497869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:02.250852 +AWS,us-east-1,m7i.12xlarge,reserved_3y,no_upfront,0.497869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:30.153841 +AWS,us-east-1,m7i.12xlarge,reserved_3y,partial_upfront,0.497869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:28.514231 +AWS,us-east-1,m7i.12xlarge,spot,NA,0.827139,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972118 +AWS,us-east-1,m7i.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:50:57.130597 +AWS,us-east-1,m7i.16xlarge,reserved_1y,all_upfront,2.3698,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:29.931988 +AWS,us-east-1,m7i.16xlarge,reserved_1y,no_upfront,2.3698,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:05.835369 +AWS,us-east-1,m7i.16xlarge,reserved_1y,partial_upfront,2.3698,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:57.352288 +AWS,us-east-1,m7i.16xlarge,reserved_3y,all_upfront,2.3698,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:38.998981 +AWS,us-east-1,m7i.16xlarge,reserved_3y,no_upfront,2.3698,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:07.112060 +AWS,us-east-1,m7i.16xlarge,reserved_3y,partial_upfront,2.3698,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:06.157738 +AWS,us-east-1,m7i.16xlarge,spot,NA,1.198726,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973247 +AWS,us-east-1,m7i.24xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:51:03.299176 +AWS,us-east-1,m7i.24xlarge,reserved_1y,all_upfront,2.45378,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:36.001544 +AWS,us-east-1,m7i.24xlarge,reserved_1y,no_upfront,2.45378,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:11.988748 +AWS,us-east-1,m7i.24xlarge,reserved_1y,partial_upfront,2.45378,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:03.455818 +AWS,us-east-1,m7i.24xlarge,reserved_3y,all_upfront,2.45378,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:45.059089 +AWS,us-east-1,m7i.24xlarge,reserved_3y,no_upfront,2.45378,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:13.223376 +AWS,us-east-1,m7i.24xlarge,reserved_3y,partial_upfront,2.45378,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:12.348187 +AWS,us-east-1,m7i.24xlarge,spot,NA,1.644825,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973495 +AWS,us-east-1,m7i.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:50:38.183141 +AWS,us-east-1,m7i.2xlarge,reserved_1y,all_upfront,0.282156,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:11.458225 +AWS,us-east-1,m7i.2xlarge,reserved_1y,no_upfront,0.282156,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:46.899894 +AWS,us-east-1,m7i.2xlarge,reserved_1y,partial_upfront,0.282156,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:38.368678 +AWS,us-east-1,m7i.2xlarge,reserved_3y,all_upfront,0.188092,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:20.485968 +AWS,us-east-1,m7i.2xlarge,reserved_3y,no_upfront,0.188092,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:48.479476 +AWS,us-east-1,m7i.2xlarge,reserved_3y,partial_upfront,0.188092,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:47.164064 +AWS,us-east-1,m7i.2xlarge,spot,NA,0.173479,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972698 +AWS,us-east-1,m7i.48xlarge,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:50:00.602081 +AWS,us-east-1,m7i.48xlarge,reserved_1y,all_upfront,5.974429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:34.498815 +AWS,us-east-1,m7i.48xlarge,reserved_1y,no_upfront,5.974429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:09.680049 +AWS,us-east-1,m7i.48xlarge,reserved_1y,partial_upfront,5.974429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:00.827180 +AWS,us-east-1,m7i.48xlarge,reserved_3y,all_upfront,1.991476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:43.729207 +AWS,us-east-1,m7i.48xlarge,reserved_3y,no_upfront,1.991476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:11.604586 +AWS,us-east-1,m7i.48xlarge,reserved_3y,partial_upfront,1.991476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:09.604545 +AWS,us-east-1,m7i.48xlarge,spot,NA,3.897073,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971515 +AWS,us-east-1,m7i.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:50:14.856417 +AWS,us-east-1,m7i.4xlarge,reserved_1y,all_upfront,0.497831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:48.435803 +AWS,us-east-1,m7i.4xlarge,reserved_1y,no_upfront,0.497831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:23.681818 +AWS,us-east-1,m7i.4xlarge,reserved_1y,partial_upfront,0.497831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:14.822357 +AWS,us-east-1,m7i.4xlarge,reserved_3y,all_upfront,0.165944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:57.509628 +AWS,us-east-1,m7i.4xlarge,reserved_3y,no_upfront,0.165944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:25.428295 +AWS,us-east-1,m7i.4xlarge,reserved_3y,partial_upfront,0.165944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:23.671651 +AWS,us-east-1,m7i.4xlarge,spot,NA,0.397968,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971951 +AWS,us-east-1,m7i.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:50:52.860217 +AWS,us-east-1,m7i.8xlarge,reserved_1y,all_upfront,1.105936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:25.747246 +AWS,us-east-1,m7i.8xlarge,reserved_1y,no_upfront,1.105936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:01.524535 +AWS,us-east-1,m7i.8xlarge,reserved_1y,partial_upfront,1.105936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:52.933131 +AWS,us-east-1,m7i.8xlarge,reserved_3y,all_upfront,0.368645,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:34.808583 +AWS,us-east-1,m7i.8xlarge,reserved_3y,no_upfront,0.368645,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:02.902408 +AWS,us-east-1,m7i.8xlarge,reserved_3y,partial_upfront,0.368645,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:01.859917 +AWS,us-east-1,m7i.8xlarge,spot,NA,0.812766,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973131 +AWS,us-east-1,m7i.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T08:50:17.850595 +AWS,us-east-1,m7i.large,reserved_1y,all_upfront,0.08464,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:51.447272 +AWS,us-east-1,m7i.large,reserved_1y,no_upfront,0.08464,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:26.683607 +AWS,us-east-1,m7i.large,reserved_1y,partial_upfront,0.08464,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:17.825341 +AWS,us-east-1,m7i.large,reserved_3y,all_upfront,0.042327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:00.480077 +AWS,us-east-1,m7i.large,reserved_3y,no_upfront,0.042327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:28.403292 +AWS,us-east-1,m7i.large,reserved_3y,partial_upfront,0.042327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:26.711236 +AWS,us-east-1,m7i.large,spot,NA,0.037925,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972038 +AWS,us-east-1,m7i.metal-24xl,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:50:00.736903 +AWS,us-east-1,m7i.metal-24xl,reserved_1y,all_upfront,6.67968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:34.634204 +AWS,us-east-1,m7i.metal-24xl,reserved_1y,no_upfront,6.67968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:09.839209 +AWS,us-east-1,m7i.metal-24xl,reserved_1y,partial_upfront,6.67968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:00.964132 +AWS,us-east-1,m7i.metal-24xl,reserved_3y,all_upfront,2.22656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:43.871641 +AWS,us-east-1,m7i.metal-24xl,reserved_3y,no_upfront,2.22656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:11.738401 +AWS,us-east-1,m7i.metal-24xl,reserved_3y,partial_upfront,2.22656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:09.741182 +AWS,us-east-1,m7i.metal-24xl,spot,NA,1.472137,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971475 +AWS,us-east-1,m7i.metal-48xl,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:50:42.436444 +AWS,us-east-1,m7i.metal-48xl,reserved_1y,all_upfront,6.770818,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:15.623651 +AWS,us-east-1,m7i.metal-48xl,reserved_1y,no_upfront,6.770818,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:51.136948 +AWS,us-east-1,m7i.metal-48xl,reserved_1y,partial_upfront,6.770818,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:42.627194 +AWS,us-east-1,m7i.metal-48xl,reserved_3y,all_upfront,4.513893,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:24.684925 +AWS,us-east-1,m7i.metal-48xl,reserved_3y,no_upfront,4.513893,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:52.666157 +AWS,us-east-1,m7i.metal-48xl,reserved_3y,partial_upfront,4.513893,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:51.459351 +AWS,us-east-1,m7i.metal-48xl,spot,NA,2.657983,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972831 +AWS,us-east-1,m7i.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:51:04.803617 +AWS,us-east-1,m7i.xlarge,reserved_1y,all_upfront,0.124429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:37.487203 +AWS,us-east-1,m7i.xlarge,reserved_1y,no_upfront,0.124429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:13.498803 +AWS,us-east-1,m7i.xlarge,reserved_1y,partial_upfront,0.124429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:04.941628 +AWS,us-east-1,m7i.xlarge,reserved_3y,all_upfront,0.041476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:46.546637 +AWS,us-east-1,m7i.xlarge,reserved_3y,no_upfront,0.041476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:14.740552 +AWS,us-east-1,m7i.xlarge,reserved_3y,partial_upfront,0.041476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:13.867610 +AWS,us-east-1,m7i.xlarge,spot,NA,0.089658,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973503 +AWS,us-east-1,m8g.12xlarge,on_demand,NA,2.15424,USD,AWS Pricing API,2025-11-30T08:50:48.647617 +AWS,us-east-1,m8g.12xlarge,reserved_1y,all_upfront,1.477169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:21.699104 +AWS,us-east-1,m8g.12xlarge,reserved_1y,no_upfront,1.477169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:57.315795 +AWS,us-east-1,m8g.12xlarge,reserved_1y,partial_upfront,1.477169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:48.805892 +AWS,us-east-1,m8g.12xlarge,reserved_3y,all_upfront,0.49239,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:30.763584 +AWS,us-east-1,m8g.12xlarge,reserved_3y,no_upfront,0.49239,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:58.763112 +AWS,us-east-1,m8g.12xlarge,reserved_3y,partial_upfront,0.49239,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:57.714336 +AWS,us-east-1,m8g.12xlarge,spot,NA,0.706584,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972969 +AWS,us-east-1,m8g.16xlarge,on_demand,NA,2.87232,USD,AWS Pricing API,2025-11-30T08:50:01.239105 +AWS,us-east-1,m8g.16xlarge,reserved_1y,all_upfront,1.30288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:35.045826 +AWS,us-east-1,m8g.16xlarge,reserved_1y,no_upfront,1.30288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:10.270564 +AWS,us-east-1,m8g.16xlarge,reserved_1y,partial_upfront,1.30288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:01.376765 +AWS,us-east-1,m8g.16xlarge,reserved_3y,all_upfront,1.30288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:44.282609 +AWS,us-east-1,m8g.16xlarge,reserved_3y,no_upfront,1.30288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:12.147133 +AWS,us-east-1,m8g.16xlarge,reserved_3y,partial_upfront,1.30288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:10.163944 +AWS,us-east-1,m8g.16xlarge,spot,NA,1.048511,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971554 +AWS,us-east-1,m8g.24xlarge,on_demand,NA,4.30848,USD,AWS Pricing API,2025-11-30T08:51:10.144174 +AWS,us-east-1,m8g.24xlarge,reserved_1y,all_upfront,3.16532,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:42.789151 +AWS,us-east-1,m8g.24xlarge,reserved_1y,no_upfront,3.16532,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:18.829336 +AWS,us-east-1,m8g.24xlarge,reserved_1y,partial_upfront,3.16532,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:10.184510 +AWS,us-east-1,m8g.24xlarge,reserved_3y,all_upfront,3.16532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:51.774801 +AWS,us-east-1,m8g.24xlarge,reserved_3y,no_upfront,3.16532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:19.999447 +AWS,us-east-1,m8g.24xlarge,reserved_3y,partial_upfront,3.16532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:19.253755 +AWS,us-east-1,m8g.24xlarge,spot,NA,1.24485,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973693 +AWS,us-east-1,m8g.2xlarge,on_demand,NA,0.35904,USD,AWS Pricing API,2025-11-30T08:51:01.652691 +AWS,us-east-1,m8g.2xlarge,reserved_1y,all_upfront,0.251181,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:34.381385 +AWS,us-east-1,m8g.2xlarge,reserved_1y,no_upfront,0.251181,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:10.355818 +AWS,us-east-1,m8g.2xlarge,reserved_1y,partial_upfront,0.251181,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:01.820371 +AWS,us-east-1,m8g.2xlarge,reserved_3y,all_upfront,0.167467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:43.437518 +AWS,us-east-1,m8g.2xlarge,reserved_3y,no_upfront,0.167467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:11.588368 +AWS,us-east-1,m8g.2xlarge,reserved_3y,partial_upfront,0.167467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:10.697096 +AWS,us-east-1,m8g.2xlarge,spot,NA,0.136722,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973400 +AWS,us-east-1,m8g.48xlarge,on_demand,NA,8.61696,USD,AWS Pricing API,2025-11-30T08:50:34.358523 +AWS,us-east-1,m8g.48xlarge,reserved_1y,all_upfront,5.908562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:07.690283 +AWS,us-east-1,m8g.48xlarge,reserved_1y,no_upfront,5.908562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:43.077532 +AWS,us-east-1,m8g.48xlarge,reserved_1y,partial_upfront,5.908562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:34.505078 +AWS,us-east-1,m8g.48xlarge,reserved_3y,all_upfront,1.969521,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:16.687734 +AWS,us-east-1,m8g.48xlarge,reserved_3y,no_upfront,1.969521,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:44.690795 +AWS,us-east-1,m8g.48xlarge,reserved_3y,partial_upfront,1.969521,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:43.282868 +AWS,us-east-1,m8g.48xlarge,spot,NA,2.549932,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972557 +AWS,us-east-1,m8g.4xlarge,on_demand,NA,0.71808,USD,AWS Pricing API,2025-11-30T08:50:51.480411 +AWS,us-east-1,m8g.4xlarge,reserved_1y,all_upfront,0.492352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:24.400412 +AWS,us-east-1,m8g.4xlarge,reserved_1y,no_upfront,0.492352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:00.103094 +AWS,us-east-1,m8g.4xlarge,reserved_1y,partial_upfront,0.492352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:51.550468 +AWS,us-east-1,m8g.4xlarge,reserved_3y,all_upfront,0.164117,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:33.440686 +AWS,us-east-1,m8g.4xlarge,reserved_3y,no_upfront,0.164117,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:01.474695 +AWS,us-east-1,m8g.4xlarge,reserved_3y,partial_upfront,0.164117,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:00.470175 +AWS,us-east-1,m8g.4xlarge,spot,NA,0.259739,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973077 +AWS,us-east-1,m8g.8xlarge,on_demand,NA,1.43616,USD,AWS Pricing API,2025-11-30T08:50:22.750729 +AWS,us-east-1,m8g.8xlarge,reserved_1y,all_upfront,1.004827,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:56.190120 +AWS,us-east-1,m8g.8xlarge,reserved_1y,no_upfront,1.004827,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:31.473418 +AWS,us-east-1,m8g.8xlarge,reserved_1y,partial_upfront,1.004827,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:22.606336 +AWS,us-east-1,m8g.8xlarge,reserved_3y,all_upfront,0.669896,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:05.225861 +AWS,us-east-1,m8g.8xlarge,reserved_3y,no_upfront,0.669896,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:33.106842 +AWS,us-east-1,m8g.8xlarge,reserved_3y,partial_upfront,0.669896,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:31.550213 +AWS,us-east-1,m8g.8xlarge,spot,NA,0.550393,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972200 +AWS,us-east-1,m8g.large,on_demand,NA,0.08976,USD,AWS Pricing API,2025-11-30T08:51:12.213351 +AWS,us-east-1,m8g.large,reserved_1y,all_upfront,0.06153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:44.831417 +AWS,us-east-1,m8g.large,reserved_1y,no_upfront,0.06153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:20.878216 +AWS,us-east-1,m8g.large,reserved_1y,partial_upfront,0.06153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:12.201493 +AWS,us-east-1,m8g.large,reserved_3y,all_upfront,0.02051,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:53.795896 +AWS,us-east-1,m8g.large,reserved_3y,no_upfront,0.02051,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:22.025572 +AWS,us-east-1,m8g.large,reserved_3y,partial_upfront,0.02051,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:21.327450 +AWS,us-east-1,m8g.large,spot,NA,0.037931,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973728 +AWS,us-east-1,m8g.medium,on_demand,NA,0.04488,USD,AWS Pricing API,2025-11-30T08:51:14.117120 +AWS,us-east-1,m8g.medium,reserved_1y,all_upfront,0.037731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:46.728040 +AWS,us-east-1,m8g.medium,reserved_1y,no_upfront,0.037731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:22.792363 +AWS,us-east-1,m8g.medium,reserved_1y,partial_upfront,0.037731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:14.082662 +AWS,us-east-1,m8g.medium,reserved_3y,all_upfront,0.018857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:55.679944 +AWS,us-east-1,m8g.medium,reserved_3y,no_upfront,0.018857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:23.908171 +AWS,us-east-1,m8g.medium,reserved_3y,partial_upfront,0.018857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:23.262932 +AWS,us-east-1,m8g.medium,spot,NA,0.014559,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973775 +AWS,us-east-1,m8g.xlarge,on_demand,NA,0.17952,USD,AWS Pricing API,2025-11-30T08:50:32.030243 +AWS,us-east-1,m8g.xlarge,reserved_1y,all_upfront,0.13189,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:05.368209 +AWS,us-east-1,m8g.xlarge,reserved_1y,no_upfront,0.13189,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:40.748282 +AWS,us-east-1,m8g.xlarge,reserved_1y,partial_upfront,0.13189,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:32.148899 +AWS,us-east-1,m8g.xlarge,reserved_3y,all_upfront,0.13189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:14.403726 +AWS,us-east-1,m8g.xlarge,reserved_3y,no_upfront,0.13189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:42.349617 +AWS,us-east-1,m8g.xlarge,reserved_3y,partial_upfront,0.13189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:40.922350 +AWS,us-east-1,m8g.xlarge,spot,NA,0.061748,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972482 +AWS,us-east-1,m8gd.12xlarge,on_demand,NA,2.76768,USD,AWS Pricing API,2025-11-30T08:51:12.759961 +AWS,us-east-1,m8gd.12xlarge,spot,NA,1.348158,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973747 +AWS,us-east-1,m8gd.16xlarge,on_demand,NA,3.69024,USD,AWS Pricing API,2025-11-30T08:51:05.361069 +AWS,us-east-1,m8gd.16xlarge,spot,NA,2.123103,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973523 +AWS,us-east-1,m8gd.24xlarge,on_demand,NA,5.53536,USD,AWS Pricing API,2025-11-30T08:50:30.535530 +AWS,us-east-1,m8gd.24xlarge,spot,NA,2.320171,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972435 +AWS,us-east-1,m8gd.2xlarge,on_demand,NA,0.46128,USD,AWS Pricing API,2025-11-30T08:51:11.939165 +AWS,us-east-1,m8gd.2xlarge,spot,NA,0.218163,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973701 +AWS,us-east-1,m8gd.48xlarge,on_demand,NA,11.07072,USD,AWS Pricing API,2025-11-30T08:51:07.812291 +AWS,us-east-1,m8gd.48xlarge,spot,NA,5.504988,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973594 +AWS,us-east-1,m8gd.4xlarge,on_demand,NA,0.92256,USD,AWS Pricing API,2025-11-30T08:50:37.908694 +AWS,us-east-1,m8gd.4xlarge,spot,NA,0.480649,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972652 +AWS,us-east-1,m8gd.8xlarge,on_demand,NA,1.84512,USD,AWS Pricing API,2025-11-30T08:50:01.975523 +AWS,us-east-1,m8gd.8xlarge,spot,NA,0.606731,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971536 +AWS,us-east-1,m8gd.large,on_demand,NA,0.11532,USD,AWS Pricing API,2025-11-30T08:50:47.236957 +AWS,us-east-1,m8gd.large,spot,NA,0.060234,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972932 +AWS,us-east-1,m8gd.xlarge,on_demand,NA,0.23064,USD,AWS Pricing API,2025-11-30T08:50:38.593451 +AWS,us-east-1,m8gd.xlarge,spot,NA,0.118895,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972673 +AWS,us-east-1,m8i.12xlarge,on_demand,NA,2.54016,USD,AWS Pricing API,2025-11-30T08:51:01.376774 +AWS,us-east-1,m8i.12xlarge,spot,NA,1.09301,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973367 +AWS,us-east-1,m8i.16xlarge,on_demand,NA,3.38688,USD,AWS Pricing API,2025-11-30T08:50:29.437593 +AWS,us-east-1,m8i.16xlarge,spot,NA,1.399598,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972379 +AWS,us-east-1,m8i.24xlarge,on_demand,NA,5.08032,USD,AWS Pricing API,2025-11-30T08:50:56.722754 +AWS,us-east-1,m8i.24xlarge,spot,NA,2.006778,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973227 +AWS,us-east-1,m8i.2xlarge,on_demand,NA,0.42336,USD,AWS Pricing API,2025-11-30T08:50:11.001848 +AWS,us-east-1,m8i.2xlarge,spot,NA,0.167685,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971805 +AWS,us-east-1,m8i.48xlarge,on_demand,NA,10.16064,USD,AWS Pricing API,2025-11-30T08:50:41.348866 +AWS,us-east-1,m8i.48xlarge,spot,NA,3.003323,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972750 +AWS,us-east-1,m8i.4xlarge,on_demand,NA,0.84672,USD,AWS Pricing API,2025-11-30T08:50:06.274411 +AWS,us-east-1,m8i.4xlarge,spot,NA,0.382224,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971670 +AWS,us-east-1,m8i.8xlarge,on_demand,NA,1.69344,USD,AWS Pricing API,2025-11-30T08:50:19.939903 +AWS,us-east-1,m8i.8xlarge,spot,NA,0.712568,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972106 +AWS,us-east-1,m8i.large,on_demand,NA,0.10584,USD,AWS Pricing API,2025-11-30T08:50:21.787501 +AWS,us-east-1,m8i.large,spot,NA,0.034663,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972204 +AWS,us-east-1,m8i.xlarge,on_demand,NA,0.21168,USD,AWS Pricing API,2025-11-30T08:50:12.786736 +AWS,us-east-1,m8i.xlarge,spot,NA,0.077736,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971892 +AWS,us-east-1,p2.16xlarge,on_demand,NA,14.4,USD,AWS Pricing API,2025-11-30T08:50:08.073726 +AWS,us-east-1,p2.8xlarge,on_demand,NA,7.2,USD,AWS Pricing API,2025-11-30T08:51:07.676070 +AWS,us-east-1,p2.xlarge,on_demand,NA,0.9,USD,AWS Pricing API,2025-11-30T08:50:11.698509 +AWS,us-east-1,p3.16xlarge,on_demand,NA,24.48,USD,AWS Pricing API,2025-11-30T08:50:27.131000 +AWS,us-east-1,p3.16xlarge,spot,NA,5.824535,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972310 +AWS,us-east-1,p3.2xlarge,on_demand,NA,3.06,USD,AWS Pricing API,2025-11-30T08:50:58.222165 +AWS,us-east-1,p3.2xlarge,spot,NA,0.627896,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973297 +AWS,us-east-1,p3.8xlarge,on_demand,NA,12.24,USD,AWS Pricing API,2025-11-30T08:50:07.661559 +AWS,us-east-1,p3.8xlarge,spot,NA,3.146236,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971706 +AWS,us-east-1,p3dn.24xlarge,on_demand,NA,31.212,USD,AWS Pricing API,2025-11-30T08:50:58.901951 +AWS,us-east-1,p3dn.24xlarge,reserved_1y,all_upfront,21.043575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:31.693094 +AWS,us-east-1,p3dn.24xlarge,reserved_1y,no_upfront,21.043575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:07.620729 +AWS,us-east-1,p3dn.24xlarge,reserved_1y,partial_upfront,21.043575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:59.115036 +AWS,us-east-1,p3dn.24xlarge,reserved_3y,all_upfront,14.029192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:40.765537 +AWS,us-east-1,p3dn.24xlarge,reserved_3y,no_upfront,14.029192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:08.896808 +AWS,us-east-1,p3dn.24xlarge,reserved_3y,partial_upfront,14.029192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:07.934620 +AWS,us-east-1,p3dn.24xlarge,spot,NA,8.133822,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973335 +AWS,us-east-1,p4d.24xlarge,on_demand,NA,21.957642,USD,AWS Pricing API,2025-11-30T08:50:07.796252 +AWS,us-east-1,p4d.24xlarge,reserved_1y,all_upfront,15.591667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:41.396570 +AWS,us-east-1,p4d.24xlarge,reserved_1y,no_upfront,15.591667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:16.706197 +AWS,us-east-1,p4d.24xlarge,reserved_1y,partial_upfront,15.591667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:07.826610 +AWS,us-east-1,p4d.24xlarge,reserved_3y,all_upfront,5.197222,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:50.632297 +AWS,us-east-1,p4d.24xlarge,reserved_3y,no_upfront,5.197222,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:18.499844 +AWS,us-east-1,p4d.24xlarge,reserved_3y,partial_upfront,5.197222,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:16.661727 +AWS,us-east-1,p4d.24xlarge,spot,NA,9.546368,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971715 +AWS,us-east-1,p4de.24xlarge,on_demand,NA,27.44705,USD,AWS Pricing API,2025-11-30T08:50:31.757427 +AWS,us-east-1,p4de.24xlarge,reserved_1y,all_upfront,51.037443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:05.100062 +AWS,us-east-1,p4de.24xlarge,reserved_1y,no_upfront,51.037443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:40.474129 +AWS,us-east-1,p4de.24xlarge,reserved_1y,partial_upfront,51.037443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:31.663633 +AWS,us-east-1,p4de.24xlarge,reserved_3y,all_upfront,17.012481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:14.126467 +AWS,us-east-1,p4de.24xlarge,reserved_3y,no_upfront,17.012481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:42.078623 +AWS,us-east-1,p4de.24xlarge,reserved_3y,partial_upfront,17.012481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:40.647737 +AWS,us-east-1,p4de.24xlarge,spot,NA,14.655969,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972494 +AWS,us-east-1,p5.48xlarge,on_demand,NA,55.04,USD,AWS Pricing API,2025-11-30T08:50:57.945101 +AWS,us-east-1,p5.48xlarge,reserved_1y,all_upfront,44.031973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:30.736100 +AWS,us-east-1,p5.48xlarge,reserved_1y,no_upfront,44.031973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:06.665631 +AWS,us-east-1,p5.48xlarge,reserved_1y,partial_upfront,44.031973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:58.158392 +AWS,us-east-1,p5.48xlarge,reserved_3y,all_upfront,22.015991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:39.821512 +AWS,us-east-1,p5.48xlarge,reserved_3y,no_upfront,22.015991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:07.940027 +AWS,us-east-1,p5.48xlarge,reserved_3y,partial_upfront,22.015991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:06.979181 +AWS,us-east-1,p5.48xlarge,spot,NA,27.135214,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973285 +AWS,us-east-1,r4.16xlarge,on_demand,NA,4.256,USD,AWS Pricing API,2025-11-30T08:51:00.693138 +AWS,us-east-1,r4.16xlarge,reserved_1y,all_upfront,2.944032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:33.434733 +AWS,us-east-1,r4.16xlarge,reserved_1y,no_upfront,2.944032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:09.400704 +AWS,us-east-1,r4.16xlarge,reserved_1y,partial_upfront,2.944032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:00.870455 +AWS,us-east-1,r4.16xlarge,reserved_3y,all_upfront,1.962677,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:42.501806 +AWS,us-east-1,r4.16xlarge,reserved_3y,no_upfront,1.962677,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:10.652086 +AWS,us-east-1,r4.16xlarge,reserved_3y,partial_upfront,1.962677,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:09.734262 +AWS,us-east-1,r4.16xlarge,spot,NA,1.604447,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973363 +AWS,us-east-1,r5.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:50:00.874725 +AWS,us-east-1,r5.12xlarge,reserved_1y,all_upfront,2.086265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:34.769067 +AWS,us-east-1,r5.12xlarge,reserved_1y,no_upfront,2.086265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:09.975806 +AWS,us-east-1,r5.12xlarge,reserved_1y,partial_upfront,2.086265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:01.100651 +AWS,us-east-1,r5.12xlarge,reserved_3y,all_upfront,1.390755,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:44.005398 +AWS,us-east-1,r5.12xlarge,reserved_3y,no_upfront,1.390755,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:11.871662 +AWS,us-east-1,r5.12xlarge,reserved_3y,partial_upfront,1.390755,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:09.877509 +AWS,us-east-1,r5.12xlarge,spot,NA,1.093377,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971550 +AWS,us-east-1,r5.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:50:34.494409 +AWS,us-east-1,r5.16xlarge,reserved_1y,all_upfront,2.921,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:07.825657 +AWS,us-east-1,r5.16xlarge,reserved_1y,no_upfront,2.921,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:43.213851 +AWS,us-east-1,r5.16xlarge,reserved_1y,partial_upfront,2.921,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:34.643163 +AWS,us-east-1,r5.16xlarge,reserved_3y,all_upfront,2.921,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:16.822838 +AWS,us-east-1,r5.16xlarge,reserved_3y,no_upfront,2.921,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:44.836399 +AWS,us-east-1,r5.16xlarge,reserved_3y,partial_upfront,2.921,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:43.422592 +AWS,us-east-1,r5.16xlarge,spot,NA,1.119966,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972561 +AWS,us-east-1,r5.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:50:16.627121 +AWS,us-east-1,r5.24xlarge,reserved_1y,all_upfront,4.382,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:50.213699 +AWS,us-east-1,r5.24xlarge,reserved_1y,no_upfront,4.382,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:25.462443 +AWS,us-east-1,r5.24xlarge,reserved_1y,partial_upfront,4.382,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:16.592184 +AWS,us-east-1,r5.24xlarge,reserved_3y,all_upfront,4.382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:59.253825 +AWS,us-east-1,r5.24xlarge,reserved_3y,no_upfront,4.382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:27.180217 +AWS,us-east-1,r5.24xlarge,reserved_3y,partial_upfront,4.382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:25.466005 +AWS,us-east-1,r5.24xlarge,spot,NA,2.263318,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972018 +AWS,us-east-1,r5.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T12:52:28.853485 +AWS,us-east-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:28.853572 +AWS,us-east-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.318,USD,AWS Pricing API,2025-11-30T12:52:28.853647 +AWS,us-east-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.151,USD,AWS Pricing API,2025-11-30T12:52:28.853635 +AWS,us-east-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:28.853622 +AWS,us-east-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.218,USD,AWS Pricing API,2025-11-30T12:52:28.853596 +AWS,us-east-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.122,USD,AWS Pricing API,2025-11-30T12:52:28.853545 +AWS,us-east-1,r5.2xlarge,spot,NA,0.21994,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:30.630891 +AWS,us-east-1,r5.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:51:09.867414 +AWS,us-east-1,r5.4xlarge,reserved_1y,all_upfront,0.635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:42.519833 +AWS,us-east-1,r5.4xlarge,reserved_1y,no_upfront,0.635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:18.555476 +AWS,us-east-1,r5.4xlarge,reserved_1y,partial_upfront,0.635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:09.916252 +AWS,us-east-1,r5.4xlarge,reserved_3y,all_upfront,0.635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:51.509483 +AWS,us-east-1,r5.4xlarge,reserved_3y,no_upfront,0.635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:19.729676 +AWS,us-east-1,r5.4xlarge,reserved_3y,partial_upfront,0.635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:18.979542 +AWS,us-east-1,r5.4xlarge,spot,NA,0.354767,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973678 +AWS,us-east-1,r5.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:50:52.577462 +AWS,us-east-1,r5.8xlarge,reserved_1y,all_upfront,1.185388,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:25.472200 +AWS,us-east-1,r5.8xlarge,reserved_1y,no_upfront,1.185388,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:01.234724 +AWS,us-east-1,r5.8xlarge,reserved_1y,partial_upfront,1.185388,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:52.653671 +AWS,us-east-1,r5.8xlarge,reserved_3y,all_upfront,0.395129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:34.531219 +AWS,us-east-1,r5.8xlarge,reserved_3y,no_upfront,0.395129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:02.629897 +AWS,us-east-1,r5.8xlarge,reserved_3y,partial_upfront,0.395129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:01.577091 +AWS,us-east-1,r5.8xlarge,spot,NA,0.626301,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973125 +AWS,us-east-1,r5.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:50:28.352517 +AWS,us-east-1,r5.large,reserved_1y,all_upfront,0.091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:01.714598 +AWS,us-east-1,r5.large,reserved_1y,no_upfront,0.091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:37.059198 +AWS,us-east-1,r5.large,reserved_1y,partial_upfront,0.091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:28.256109 +AWS,us-east-1,r5.large,reserved_3y,all_upfront,0.091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:10.757019 +AWS,us-east-1,r5.large,reserved_3y,no_upfront,0.091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:38.682946 +AWS,us-east-1,r5.large,reserved_3y,partial_upfront,0.091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:37.214931 +AWS,us-east-1,r5.large,spot,NA,0.046123,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972371 +AWS,us-east-1,r5.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T08:50:05.315308 +AWS,us-east-1,r5.xlarge,reserved_1y,all_upfront,0.201256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:38.950215 +AWS,us-east-1,r5.xlarge,reserved_1y,no_upfront,0.201256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:14.226725 +AWS,us-east-1,r5.xlarge,reserved_1y,partial_upfront,0.201256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:05.359511 +AWS,us-east-1,r5.xlarge,reserved_3y,all_upfront,0.100419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:48.175745 +AWS,us-east-1,r5.xlarge,reserved_3y,no_upfront,0.100419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:16.066149 +AWS,us-east-1,r5.xlarge,reserved_3y,partial_upfront,0.100419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:14.171785 +AWS,us-east-1,r5.xlarge,spot,NA,0.077776,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971658 +AWS,us-east-1,r5a.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:51:00.831297 +AWS,us-east-1,r5a.12xlarge,reserved_1y,all_upfront,1.172,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:33.568268 +AWS,us-east-1,r5a.12xlarge,reserved_1y,no_upfront,1.172,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:09.536011 +AWS,us-east-1,r5a.12xlarge,reserved_1y,partial_upfront,1.172,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:01.008692 +AWS,us-east-1,r5a.12xlarge,reserved_3y,all_upfront,1.172,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:42.636780 +AWS,us-east-1,r5a.12xlarge,reserved_3y,no_upfront,1.172,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:10.785616 +AWS,us-east-1,r5a.12xlarge,reserved_3y,partial_upfront,1.172,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:09.870387 +AWS,us-east-1,r5a.12xlarge,spot,NA,1.089149,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973371 +AWS,us-east-1,r5a.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T08:51:09.052293 +AWS,us-east-1,r5a.16xlarge,reserved_1y,all_upfront,2.502142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:41.704311 +AWS,us-east-1,r5a.16xlarge,reserved_1y,no_upfront,2.502142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:17.735215 +AWS,us-east-1,r5a.16xlarge,reserved_1y,partial_upfront,2.502142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:09.108744 +AWS,us-east-1,r5a.16xlarge,reserved_3y,all_upfront,1.668047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:50.702118 +AWS,us-east-1,r5a.16xlarge,reserved_3y,no_upfront,1.668047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:18.914768 +AWS,us-east-1,r5a.16xlarge,reserved_3y,partial_upfront,1.668047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:18.150438 +AWS,us-east-1,r5a.16xlarge,spot,NA,1.216699,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973626 +AWS,us-east-1,r5a.24xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:51:02.887290 +AWS,us-east-1,r5a.24xlarge,reserved_1y,all_upfront,3.941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:35.596004 +AWS,us-east-1,r5a.24xlarge,reserved_1y,no_upfront,3.941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:11.584279 +AWS,us-east-1,r5a.24xlarge,reserved_1y,partial_upfront,3.941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:03.050896 +AWS,us-east-1,r5a.24xlarge,reserved_3y,all_upfront,3.941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:44.653211 +AWS,us-east-1,r5a.24xlarge,reserved_3y,no_upfront,3.941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:12.810429 +AWS,us-east-1,r5a.24xlarge,reserved_3y,partial_upfront,3.941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:11.930604 +AWS,us-east-1,r5a.24xlarge,spot,NA,1.887454,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973413 +AWS,us-east-1,r5a.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:51:13.715375 +AWS,us-east-1,r5a.2xlarge,reserved_1y,all_upfront,0.236,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:46.321286 +AWS,us-east-1,r5a.2xlarge,reserved_1y,no_upfront,0.236,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:22.388437 +AWS,us-east-1,r5a.2xlarge,reserved_1y,partial_upfront,0.236,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:13.686113 +AWS,us-east-1,r5a.2xlarge,reserved_3y,all_upfront,0.236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:55.272688 +AWS,us-east-1,r5a.2xlarge,reserved_3y,no_upfront,0.236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:23.508993 +AWS,us-east-1,r5a.2xlarge,reserved_3y,partial_upfront,0.236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:22.851807 +AWS,us-east-1,r5a.2xlarge,spot,NA,0.216035,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973740 +AWS,us-east-1,r5a.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:50:53.570975 +AWS,us-east-1,r5a.4xlarge,reserved_1y,all_upfront,0.625785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:26.435928 +AWS,us-east-1,r5a.4xlarge,reserved_1y,no_upfront,0.625785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:02.237572 +AWS,us-east-1,r5a.4xlarge,reserved_1y,partial_upfront,0.625785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:53.611534 +AWS,us-east-1,r5a.4xlarge,reserved_3y,all_upfront,0.417262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:35.487829 +AWS,us-east-1,r5a.4xlarge,reserved_3y,no_upfront,0.417262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:03.589197 +AWS,us-east-1,r5a.4xlarge,reserved_3y,partial_upfront,0.417262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:02.555922 +AWS,us-east-1,r5a.4xlarge,spot,NA,0.379048,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973172 +AWS,us-east-1,r5a.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T08:50:35.586969 +AWS,us-east-1,r5a.8xlarge,reserved_1y,all_upfront,1.063128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:08.900273 +AWS,us-east-1,r5a.8xlarge,reserved_1y,no_upfront,1.063128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:44.304170 +AWS,us-east-1,r5a.8xlarge,reserved_1y,partial_upfront,1.063128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:35.745496 +AWS,us-east-1,r5a.8xlarge,reserved_3y,all_upfront,0.354376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:17.924562 +AWS,us-east-1,r5a.8xlarge,reserved_3y,no_upfront,0.354376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:45.911399 +AWS,us-east-1,r5a.8xlarge,reserved_3y,partial_upfront,0.354376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:44.530456 +AWS,us-east-1,r5a.8xlarge,spot,NA,0.697059,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972585 +AWS,us-east-1,r5a.large,on_demand,NA,0.113,USD,AWS Pricing API,2025-11-30T08:50:42.164728 +AWS,us-east-1,r5a.large,reserved_1y,all_upfront,0.071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:15.355645 +AWS,us-east-1,r5a.large,reserved_1y,no_upfront,0.071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:50.867066 +AWS,us-east-1,r5a.large,reserved_1y,partial_upfront,0.071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:42.353670 +AWS,us-east-1,r5a.large,reserved_3y,all_upfront,0.071,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:24.419011 +AWS,us-east-1,r5a.large,reserved_3y,no_upfront,0.071,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:52.394625 +AWS,us-east-1,r5a.large,reserved_3y,partial_upfront,0.071,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:51.181939 +AWS,us-east-1,r5a.large,spot,NA,0.048325,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972779 +AWS,us-east-1,r5a.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:50:53.014321 +AWS,us-east-1,r5a.xlarge,reserved_1y,all_upfront,0.32089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:25.891025 +AWS,us-east-1,r5a.xlarge,reserved_1y,no_upfront,0.32089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:01.681690 +AWS,us-east-1,r5a.xlarge,reserved_1y,partial_upfront,0.32089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:53.068523 +AWS,us-east-1,r5a.xlarge,reserved_3y,all_upfront,0.106963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:34.953411 +AWS,us-east-1,r5a.xlarge,reserved_3y,no_upfront,0.106963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:03.046590 +AWS,us-east-1,r5a.xlarge,reserved_3y,partial_upfront,0.106963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:01.999303 +AWS,us-east-1,r5a.xlarge,spot,NA,0.09435,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973105 +AWS,us-east-1,r5d.12xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T08:51:06.453276 +AWS,us-east-1,r5d.12xlarge,reserved_1y,all_upfront,2.508,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:39.122991 +AWS,us-east-1,r5d.12xlarge,reserved_1y,no_upfront,2.508,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:15.139320 +AWS,us-east-1,r5d.12xlarge,reserved_1y,partial_upfront,2.508,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:06.547043 +AWS,us-east-1,r5d.12xlarge,reserved_3y,all_upfront,2.508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:48.144628 +AWS,us-east-1,r5d.12xlarge,reserved_3y,no_upfront,2.508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:16.360312 +AWS,us-east-1,r5d.12xlarge,reserved_3y,partial_upfront,2.508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:15.510103 +AWS,us-east-1,r5d.12xlarge,spot,NA,1.391988,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973565 +AWS,us-east-1,r5d.16xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:50:30.672215 +AWS,us-east-1,r5d.16xlarge,reserved_1y,all_upfront,3.344,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:04.017626 +AWS,us-east-1,r5d.16xlarge,reserved_1y,no_upfront,3.344,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:39.383923 +AWS,us-east-1,r5d.16xlarge,reserved_1y,partial_upfront,3.344,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:30.568262 +AWS,us-east-1,r5d.16xlarge,reserved_3y,all_upfront,3.344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:13.054774 +AWS,us-east-1,r5d.16xlarge,reserved_3y,no_upfront,3.344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:40.993406 +AWS,us-east-1,r5d.16xlarge,reserved_3y,partial_upfront,3.344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:39.539421 +AWS,us-east-1,r5d.16xlarge,spot,NA,1.462196,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972423 +AWS,us-east-1,r5d.24xlarge,on_demand,NA,6.912,USD,AWS Pricing API,2025-11-30T08:51:00.965432 +AWS,us-east-1,r5d.24xlarge,reserved_1y,all_upfront,9.689612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:33.704227 +AWS,us-east-1,r5d.24xlarge,reserved_1y,no_upfront,9.689612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:09.672423 +AWS,us-east-1,r5d.24xlarge,reserved_1y,partial_upfront,9.689612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:01.142820 +AWS,us-east-1,r5d.24xlarge,reserved_3y,all_upfront,3.229871,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:42.770914 +AWS,us-east-1,r5d.24xlarge,reserved_3y,no_upfront,3.229871,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:10.919921 +AWS,us-east-1,r5d.24xlarge,reserved_3y,partial_upfront,3.229871,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:10.007807 +AWS,us-east-1,r5d.24xlarge,spot,NA,2.454531,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973359 +AWS,us-east-1,r5d.2xlarge,on_demand,NA,0.576,USD,AWS Pricing API,2025-11-30T08:50:59.589264 +AWS,us-east-1,r5d.2xlarge,reserved_1y,all_upfront,0.338699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:32.363030 +AWS,us-east-1,r5d.2xlarge,reserved_1y,no_upfront,0.338699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:08.305933 +AWS,us-east-1,r5d.2xlarge,reserved_1y,partial_upfront,0.338699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:59.786683 +AWS,us-east-1,r5d.2xlarge,reserved_3y,all_upfront,0.1129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:41.439060 +AWS,us-east-1,r5d.2xlarge,reserved_3y,no_upfront,0.1129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:09.577412 +AWS,us-east-1,r5d.2xlarge,reserved_3y,partial_upfront,0.1129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:08.624341 +AWS,us-east-1,r5d.2xlarge,spot,NA,0.371521,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973351 +AWS,us-east-1,r5d.4xlarge,on_demand,NA,1.152,USD,AWS Pricing API,2025-11-30T08:50:30.125333 +AWS,us-east-1,r5d.4xlarge,reserved_1y,all_upfront,0.780365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:03.483199 +AWS,us-east-1,r5d.4xlarge,reserved_1y,no_upfront,0.780365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:38.830435 +AWS,us-east-1,r5d.4xlarge,reserved_1y,partial_upfront,0.780365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:30.021299 +AWS,us-east-1,r5d.4xlarge,reserved_3y,all_upfront,0.260122,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:12.518729 +AWS,us-east-1,r5d.4xlarge,reserved_3y,no_upfront,0.260122,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:40.455449 +AWS,us-east-1,r5d.4xlarge,reserved_3y,partial_upfront,0.260122,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:38.995940 +AWS,us-east-1,r5d.4xlarge,spot,NA,0.641952,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972439 +AWS,us-east-1,r5d.8xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:50:29.711000 +AWS,us-east-1,r5d.8xlarge,reserved_1y,all_upfront,1.672,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:03.071708 +AWS,us-east-1,r5d.8xlarge,reserved_1y,no_upfront,1.672,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:38.419109 +AWS,us-east-1,r5d.8xlarge,reserved_1y,partial_upfront,1.672,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:29.612112 +AWS,us-east-1,r5d.8xlarge,reserved_3y,all_upfront,1.672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:12.111088 +AWS,us-east-1,r5d.8xlarge,reserved_3y,no_upfront,1.672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:40.040222 +AWS,us-east-1,r5d.8xlarge,reserved_3y,partial_upfront,1.672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:38.584632 +AWS,us-east-1,r5d.8xlarge,spot,NA,1.035327,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972411 +AWS,us-east-1,r5d.large,on_demand,NA,0.144,USD,AWS Pricing API,2025-11-30T08:50:54.810693 +AWS,us-east-1,r5d.large,reserved_1y,all_upfront,0.091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:27.642416 +AWS,us-east-1,r5d.large,reserved_1y,no_upfront,0.091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:03.505364 +AWS,us-east-1,r5d.large,reserved_1y,partial_upfront,0.091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:54.850171 +AWS,us-east-1,r5d.large,reserved_3y,all_upfront,0.091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:36.704574 +AWS,us-east-1,r5d.large,reserved_3y,no_upfront,0.091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:04.814695 +AWS,us-east-1,r5d.large,reserved_3y,partial_upfront,0.091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:03.814019 +AWS,us-east-1,r5d.large,spot,NA,0.063837,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973207 +AWS,us-east-1,r5d.xlarge,on_demand,NA,0.288,USD,AWS Pricing API,2025-11-30T08:50:11.835823 +AWS,us-east-1,r5d.xlarge,reserved_1y,all_upfront,0.181,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:45.324814 +AWS,us-east-1,r5d.xlarge,reserved_1y,no_upfront,0.181,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:20.669596 +AWS,us-east-1,r5d.xlarge,reserved_1y,partial_upfront,0.181,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:11.809587 +AWS,us-east-1,r5d.xlarge,reserved_3y,all_upfront,0.181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:54.548072 +AWS,us-east-1,r5d.xlarge,reserved_3y,no_upfront,0.181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:22.443816 +AWS,us-east-1,r5d.xlarge,reserved_3y,partial_upfront,0.181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:20.649606 +AWS,us-east-1,r5d.xlarge,spot,NA,0.195937,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971810 +AWS,us-east-1,r5dn.12xlarge,on_demand,NA,4.008,USD,AWS Pricing API,2025-11-30T08:50:14.719845 +AWS,us-east-1,r5dn.12xlarge,reserved_1y,all_upfront,4.261073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:48.301912 +AWS,us-east-1,r5dn.12xlarge,reserved_1y,no_upfront,4.261073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:23.544960 +AWS,us-east-1,r5dn.12xlarge,reserved_1y,partial_upfront,4.261073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:14.686339 +AWS,us-east-1,r5dn.12xlarge,reserved_3y,all_upfront,1.420358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:57.374652 +AWS,us-east-1,r5dn.12xlarge,reserved_3y,no_upfront,1.420358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:25.295003 +AWS,us-east-1,r5dn.12xlarge,reserved_3y,partial_upfront,1.420358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:23.532720 +AWS,us-east-1,r5dn.12xlarge,spot,NA,1.560857,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971901 +AWS,us-east-1,r5dn.16xlarge,on_demand,NA,5.344,USD,AWS Pricing API,2025-11-30T08:50:25.353012 +AWS,us-east-1,r5dn.16xlarge,reserved_1y,all_upfront,3.142237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:58.738658 +AWS,us-east-1,r5dn.16xlarge,reserved_1y,no_upfront,3.142237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:34.060602 +AWS,us-east-1,r5dn.16xlarge,reserved_1y,partial_upfront,3.142237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:25.192700 +AWS,us-east-1,r5dn.16xlarge,reserved_3y,all_upfront,1.047412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:07.811078 +AWS,us-east-1,r5dn.16xlarge,reserved_3y,no_upfront,1.047412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:35.699732 +AWS,us-east-1,r5dn.16xlarge,reserved_3y,partial_upfront,1.047412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:34.168110 +AWS,us-east-1,r5dn.16xlarge,spot,NA,1.619551,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972275 +AWS,us-east-1,r5dn.24xlarge,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T08:50:36.948985 +AWS,us-east-1,r5dn.24xlarge,reserved_1y,all_upfront,5.420434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:10.248021 +AWS,us-east-1,r5dn.24xlarge,reserved_1y,no_upfront,5.420434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:45.666548 +AWS,us-east-1,r5dn.24xlarge,reserved_1y,partial_upfront,5.420434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:37.114279 +AWS,us-east-1,r5dn.24xlarge,reserved_3y,all_upfront,1.806811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:19.276923 +AWS,us-east-1,r5dn.24xlarge,reserved_3y,no_upfront,1.806811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:47.261801 +AWS,us-east-1,r5dn.24xlarge,reserved_3y,partial_upfront,1.806811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:45.912378 +AWS,us-east-1,r5dn.24xlarge,spot,NA,2.483356,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972629 +AWS,us-east-1,r5dn.2xlarge,on_demand,NA,0.668,USD,AWS Pricing API,2025-11-30T08:50:42.300073 +AWS,us-east-1,r5dn.2xlarge,reserved_1y,all_upfront,0.400457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:15.488917 +AWS,us-east-1,r5dn.2xlarge,reserved_1y,no_upfront,0.400457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:51.003461 +AWS,us-east-1,r5dn.2xlarge,reserved_1y,partial_upfront,0.400457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:42.491387 +AWS,us-east-1,r5dn.2xlarge,reserved_3y,all_upfront,0.266819,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:24.552203 +AWS,us-east-1,r5dn.2xlarge,reserved_3y,no_upfront,0.266819,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:52.531725 +AWS,us-east-1,r5dn.2xlarge,reserved_3y,partial_upfront,0.266819,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:51.321459 +AWS,us-east-1,r5dn.2xlarge,spot,NA,0.392781,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972794 +AWS,us-east-1,r5dn.4xlarge,on_demand,NA,1.336,USD,AWS Pricing API,2025-11-30T08:50:06.004544 +AWS,us-east-1,r5dn.4xlarge,reserved_1y,all_upfront,0.968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:39.625892 +AWS,us-east-1,r5dn.4xlarge,reserved_1y,no_upfront,0.968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:14.905554 +AWS,us-east-1,r5dn.4xlarge,reserved_1y,partial_upfront,0.968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:06.045001 +AWS,us-east-1,r5dn.4xlarge,reserved_3y,all_upfront,0.968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:48.853904 +AWS,us-east-1,r5dn.4xlarge,reserved_3y,no_upfront,0.968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:16.745182 +AWS,us-east-1,r5dn.4xlarge,reserved_3y,partial_upfront,0.968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:14.863550 +AWS,us-east-1,r5dn.4xlarge,spot,NA,0.59386,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971678 +AWS,us-east-1,r5dn.8xlarge,on_demand,NA,2.672,USD,AWS Pricing API,2025-11-30T08:51:06.180739 +AWS,us-east-1,r5dn.8xlarge,reserved_1y,all_upfront,1.936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:38.850289 +AWS,us-east-1,r5dn.8xlarge,reserved_1y,no_upfront,1.936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:14.867417 +AWS,us-east-1,r5dn.8xlarge,reserved_1y,partial_upfront,1.936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:06.277497 +AWS,us-east-1,r5dn.8xlarge,reserved_3y,all_upfront,1.936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:47.878138 +AWS,us-east-1,r5dn.8xlarge,reserved_3y,no_upfront,1.936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:16.085823 +AWS,us-east-1,r5dn.8xlarge,reserved_3y,partial_upfront,1.936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:15.234646 +AWS,us-east-1,r5dn.8xlarge,spot,NA,1.095195,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973540 +AWS,us-east-1,r5dn.large,on_demand,NA,0.167,USD,AWS Pricing API,2025-11-30T08:50:15.808341 +AWS,us-east-1,r5dn.large,reserved_1y,all_upfront,0.068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:49.383145 +AWS,us-east-1,r5dn.large,reserved_1y,no_upfront,0.068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:24.643123 +AWS,us-east-1,r5dn.large,reserved_1y,partial_upfront,0.068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:15.779009 +AWS,us-east-1,r5dn.large,reserved_3y,all_upfront,0.068,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:58.450333 +AWS,us-east-1,r5dn.large,reserved_3y,no_upfront,0.068,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:26.369442 +AWS,us-east-1,r5dn.large,reserved_3y,partial_upfront,0.068,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:24.635717 +AWS,us-east-1,r5dn.large,spot,NA,0.064084,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971977 +AWS,us-east-1,r5dn.metal,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T08:50:03.652500 +AWS,us-east-1,r5dn.metal,reserved_1y,all_upfront,5.808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:37.334682 +AWS,us-east-1,r5dn.metal,reserved_1y,no_upfront,5.808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:12.583608 +AWS,us-east-1,r5dn.metal,reserved_1y,partial_upfront,5.808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:03.724764 +AWS,us-east-1,r5dn.metal,reserved_3y,all_upfront,5.808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:46.560983 +AWS,us-east-1,r5dn.metal,reserved_3y,no_upfront,5.808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:14.432975 +AWS,us-east-1,r5dn.metal,reserved_3y,partial_upfront,5.808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:12.510877 +AWS,us-east-1,r5dn.metal,spot,NA,1.861906,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971591 +AWS,us-east-1,r5dn.xlarge,on_demand,NA,0.334,USD,AWS Pricing API,2025-11-30T08:50:27.402226 +AWS,us-east-1,r5dn.xlarge,reserved_1y,all_upfront,0.242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:00.759434 +AWS,us-east-1,r5dn.xlarge,reserved_1y,no_upfront,0.242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:36.106895 +AWS,us-east-1,r5dn.xlarge,reserved_1y,partial_upfront,0.242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:27.292492 +AWS,us-east-1,r5dn.xlarge,reserved_3y,all_upfront,0.242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:09.819339 +AWS,us-east-1,r5dn.xlarge,reserved_3y,no_upfront,0.242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:37.729504 +AWS,us-east-1,r5dn.xlarge,reserved_3y,partial_upfront,0.242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:36.248411 +AWS,us-east-1,r5dn.xlarge,spot,NA,0.187205,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972359 +AWS,us-east-1,r5n.12xlarge,on_demand,NA,3.576,USD,AWS Pricing API,2025-11-30T08:50:50.357839 +AWS,us-east-1,r5n.12xlarge,reserved_1y,all_upfront,4.541781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:23.325442 +AWS,us-east-1,r5n.12xlarge,reserved_1y,no_upfront,4.541781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:58.985387 +AWS,us-east-1,r5n.12xlarge,reserved_1y,partial_upfront,4.541781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:50.460608 +AWS,us-east-1,r5n.12xlarge,reserved_3y,all_upfront,1.513927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:32.362510 +AWS,us-east-1,r5n.12xlarge,reserved_3y,no_upfront,1.513927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:00.390591 +AWS,us-east-1,r5n.12xlarge,reserved_3y,partial_upfront,1.513927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:59.353223 +AWS,us-east-1,r5n.12xlarge,spot,NA,1.336995,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973057 +AWS,us-east-1,r5n.16xlarge,on_demand,NA,4.768,USD,AWS Pricing API,2025-11-30T08:51:05.772405 +AWS,us-east-1,r5n.16xlarge,reserved_1y,all_upfront,3.289977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:38.434269 +AWS,us-east-1,r5n.16xlarge,reserved_1y,no_upfront,3.289977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:14.462534 +AWS,us-east-1,r5n.16xlarge,reserved_1y,partial_upfront,3.289977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:05.876957 +AWS,us-east-1,r5n.16xlarge,reserved_3y,all_upfront,2.193326,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:47.480428 +AWS,us-east-1,r5n.16xlarge,reserved_3y,no_upfront,2.193326,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:15.685421 +AWS,us-east-1,r5n.16xlarge,reserved_3y,partial_upfront,2.193326,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:14.822807 +AWS,us-east-1,r5n.16xlarge,spot,NA,1.45585,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973557 +AWS,us-east-1,r5n.24xlarge,on_demand,NA,7.152,USD,AWS Pricing API,2025-11-30T08:50:26.995781 +AWS,us-east-1,r5n.24xlarge,reserved_1y,all_upfront,5.182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:00.356961 +AWS,us-east-1,r5n.24xlarge,reserved_1y,no_upfront,5.182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:35.699721 +AWS,us-east-1,r5n.24xlarge,reserved_1y,partial_upfront,5.182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:26.880150 +AWS,us-east-1,r5n.24xlarge,reserved_3y,all_upfront,5.182,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:09.420187 +AWS,us-east-1,r5n.24xlarge,reserved_3y,no_upfront,5.182,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:37.325398 +AWS,us-east-1,r5n.24xlarge,reserved_3y,partial_upfront,5.182,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:35.827087 +AWS,us-east-1,r5n.24xlarge,spot,NA,2.468169,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972298 +AWS,us-east-1,r5n.2xlarge,on_demand,NA,0.596,USD,AWS Pricing API,2025-11-30T08:50:07.524190 +AWS,us-east-1,r5n.2xlarge,reserved_1y,all_upfront,0.756963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:41.117929 +AWS,us-east-1,r5n.2xlarge,reserved_1y,no_upfront,0.756963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:16.435789 +AWS,us-east-1,r5n.2xlarge,reserved_1y,partial_upfront,0.756963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:07.551854 +AWS,us-east-1,r5n.2xlarge,reserved_3y,all_upfront,0.252321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:50.366459 +AWS,us-east-1,r5n.2xlarge,reserved_3y,no_upfront,0.252321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:18.221362 +AWS,us-east-1,r5n.2xlarge,reserved_3y,partial_upfront,0.252321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:16.390881 +AWS,us-east-1,r5n.2xlarge,spot,NA,0.30853,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971690 +AWS,us-east-1,r5n.4xlarge,on_demand,NA,1.192,USD,AWS Pricing API,2025-11-30T08:51:04.263812 +AWS,us-east-1,r5n.4xlarge,reserved_1y,all_upfront,0.864,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:36.948974 +AWS,us-east-1,r5n.4xlarge,reserved_1y,no_upfront,0.864,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:12.954124 +AWS,us-east-1,r5n.4xlarge,reserved_1y,partial_upfront,0.864,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:04.400228 +AWS,us-east-1,r5n.4xlarge,reserved_3y,all_upfront,0.864,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:46.011138 +AWS,us-east-1,r5n.4xlarge,reserved_3y,no_upfront,0.864,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:14.195715 +AWS,us-east-1,r5n.4xlarge,reserved_3y,partial_upfront,0.864,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:13.320906 +AWS,us-east-1,r5n.4xlarge,spot,NA,0.680659,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973486 +AWS,us-east-1,r5n.8xlarge,on_demand,NA,2.384,USD,AWS Pricing API,2025-11-30T08:50:50.222551 +AWS,us-east-1,r5n.8xlarge,reserved_1y,all_upfront,1.502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:23.188334 +AWS,us-east-1,r5n.8xlarge,reserved_1y,no_upfront,1.502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:58.850431 +AWS,us-east-1,r5n.8xlarge,reserved_1y,partial_upfront,1.502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:50.323903 +AWS,us-east-1,r5n.8xlarge,reserved_3y,all_upfront,1.502,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:32.229786 +AWS,us-east-1,r5n.8xlarge,reserved_3y,no_upfront,1.502,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:00.251937 +AWS,us-east-1,r5n.8xlarge,reserved_3y,partial_upfront,1.502,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:59.215515 +AWS,us-east-1,r5n.8xlarge,spot,NA,0.857858,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973027 +AWS,us-east-1,r5n.large,on_demand,NA,0.149,USD,AWS Pricing API,2025-11-30T08:51:11.672456 +AWS,us-east-1,r5n.large,reserved_1y,all_upfront,0.10237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:44.284633 +AWS,us-east-1,r5n.large,reserved_1y,no_upfront,0.10237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:20.329185 +AWS,us-east-1,r5n.large,reserved_1y,partial_upfront,0.10237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:11.662171 +AWS,us-east-1,r5n.large,reserved_3y,all_upfront,0.068123,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:53.264059 +AWS,us-east-1,r5n.large,reserved_3y,no_upfront,0.068123,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:21.473921 +AWS,us-east-1,r5n.large,reserved_3y,partial_upfront,0.068123,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:20.767319 +AWS,us-east-1,r5n.large,spot,NA,0.054308,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973732 +AWS,us-east-1,r5n.metal,on_demand,NA,7.152,USD,AWS Pricing API,2025-11-30T08:50:51.198896 +AWS,us-east-1,r5n.metal,reserved_1y,all_upfront,4.205365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:24.131046 +AWS,us-east-1,r5n.metal,reserved_1y,no_upfront,4.205365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:59.831828 +AWS,us-east-1,r5n.metal,reserved_1y,partial_upfront,4.205365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:51.278122 +AWS,us-east-1,r5n.metal,reserved_3y,all_upfront,1.401788,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:33.170590 +AWS,us-east-1,r5n.metal,reserved_3y,no_upfront,1.401788,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:01.200854 +AWS,us-east-1,r5n.metal,reserved_3y,partial_upfront,1.401788,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:00.196758 +AWS,us-east-1,r5n.metal,spot,NA,1.781461,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973061 +AWS,us-east-1,r5n.xlarge,on_demand,NA,0.298,USD,AWS Pricing API,2025-11-30T08:50:29.028077 +AWS,us-east-1,r5n.xlarge,reserved_1y,all_upfront,0.257151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:02.397807 +AWS,us-east-1,r5n.xlarge,reserved_1y,no_upfront,0.257151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:37.740977 +AWS,us-east-1,r5n.xlarge,reserved_1y,partial_upfront,0.257151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:28.936532 +AWS,us-east-1,r5n.xlarge,reserved_3y,all_upfront,0.128384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:11.440935 +AWS,us-east-1,r5n.xlarge,reserved_3y,no_upfront,0.128384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:39.367718 +AWS,us-east-1,r5n.xlarge,reserved_3y,partial_upfront,0.128384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:37.900662 +AWS,us-east-1,r5n.xlarge,spot,NA,0.139947,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972391 +AWS,us-east-1,r6g.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:50:22.198025 +AWS,us-east-1,r6g.12xlarge,reserved_1y,all_upfront,1.422489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:55.639047 +AWS,us-east-1,r6g.12xlarge,reserved_1y,no_upfront,1.422489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:30.919624 +AWS,us-east-1,r6g.12xlarge,reserved_1y,partial_upfront,1.422489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:22.062149 +AWS,us-east-1,r6g.12xlarge,reserved_3y,all_upfront,0.474163,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:04.681021 +AWS,us-east-1,r6g.12xlarge,reserved_3y,no_upfront,0.474163,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:32.564494 +AWS,us-east-1,r6g.12xlarge,reserved_3y,partial_upfront,0.474163,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:30.987829 +AWS,us-east-1,r6g.12xlarge,spot,NA,0.664222,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972168 +AWS,us-east-1,r6g.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:50:18.991722 +AWS,us-east-1,r6g.16xlarge,reserved_1y,all_upfront,2.580488,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:52.532685 +AWS,us-east-1,r6g.16xlarge,reserved_1y,no_upfront,2.580488,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:27.773145 +AWS,us-east-1,r6g.16xlarge,reserved_1y,partial_upfront,2.580488,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:18.930236 +AWS,us-east-1,r6g.16xlarge,reserved_3y,all_upfront,1.290229,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:01.569227 +AWS,us-east-1,r6g.16xlarge,reserved_3y,no_upfront,1.290229,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:29.479498 +AWS,us-east-1,r6g.16xlarge,reserved_3y,partial_upfront,1.290229,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:27.825413 +AWS,us-east-1,r6g.16xlarge,spot,NA,1.189983,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972094 +AWS,us-east-1,r6g.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:51:12.622983 +AWS,us-east-1,r6g.2xlarge,reserved_1y,all_upfront,0.254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:45.244081 +AWS,us-east-1,r6g.2xlarge,reserved_1y,no_upfront,0.254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:21.286852 +AWS,us-east-1,r6g.2xlarge,reserved_1y,partial_upfront,0.254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:12.602407 +AWS,us-east-1,r6g.2xlarge,reserved_3y,all_upfront,0.254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:54.200112 +AWS,us-east-1,r6g.2xlarge,reserved_3y,no_upfront,0.254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:22.432542 +AWS,us-east-1,r6g.2xlarge,reserved_3y,partial_upfront,0.254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:21.745296 +AWS,us-east-1,r6g.2xlarge,spot,NA,0.182,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973771 +AWS,us-east-1,r6g.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:50:08.620071 +AWS,us-east-1,r6g.4xlarge,reserved_1y,all_upfront,0.64509,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:42.206717 +AWS,us-east-1,r6g.4xlarge,reserved_1y,no_upfront,0.64509,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:17.528692 +AWS,us-east-1,r6g.4xlarge,reserved_1y,partial_upfront,0.64509,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:08.657154 +AWS,us-east-1,r6g.4xlarge,reserved_3y,all_upfront,0.322563,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:51.440044 +AWS,us-east-1,r6g.4xlarge,reserved_3y,no_upfront,0.322563,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:19.317241 +AWS,us-east-1,r6g.4xlarge,reserved_3y,partial_upfront,0.322563,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:17.479402 +AWS,us-east-1,r6g.4xlarge,spot,NA,0.269831,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971748 +AWS,us-east-1,r6g.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:50:48.085668 +AWS,us-east-1,r6g.8xlarge,reserved_1y,all_upfront,0.948288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:21.160730 +AWS,us-east-1,r6g.8xlarge,reserved_1y,no_upfront,0.948288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:56.726245 +AWS,us-east-1,r6g.8xlarge,reserved_1y,partial_upfront,0.948288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:48.248396 +AWS,us-east-1,r6g.8xlarge,reserved_3y,all_upfront,0.316096,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:30.219504 +AWS,us-east-1,r6g.8xlarge,reserved_3y,no_upfront,0.316096,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:58.224820 +AWS,us-east-1,r6g.8xlarge,reserved_3y,partial_upfront,0.316096,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:57.159492 +AWS,us-east-1,r6g.8xlarge,spot,NA,0.485774,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972994 +AWS,us-east-1,r6g.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T08:50:26.450347 +AWS,us-east-1,r6g.large,reserved_1y,all_upfront,0.113699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:59.808893 +AWS,us-east-1,r6g.large,reserved_1y,no_upfront,0.113699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:35.157677 +AWS,us-east-1,r6g.large,reserved_1y,partial_upfront,0.113699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:26.327693 +AWS,us-east-1,r6g.large,reserved_3y,all_upfront,0.0379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:08.889149 +AWS,us-east-1,r6g.large,reserved_3y,no_upfront,0.0379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:36.787966 +AWS,us-east-1,r6g.large,reserved_3y,partial_upfront,0.0379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:35.277486 +AWS,us-east-1,r6g.large,spot,NA,0.044226,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972306 +AWS,us-east-1,r6g.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:50:01.386697 +AWS,us-east-1,r6g.xlarge,reserved_1y,all_upfront,0.121002,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:35.187111 +AWS,us-east-1,r6g.xlarge,reserved_1y,no_upfront,0.121002,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:10.409353 +AWS,us-east-1,r6g.xlarge,reserved_1y,partial_upfront,0.121002,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:01.512654 +AWS,us-east-1,r6g.xlarge,reserved_3y,all_upfront,0.080667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:44.414392 +AWS,us-east-1,r6g.xlarge,reserved_3y,no_upfront,0.080667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:12.280199 +AWS,us-east-1,r6g.xlarge,reserved_3y,partial_upfront,0.080667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:10.301206 +AWS,us-east-1,r6g.xlarge,spot,NA,0.084749,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971519 +AWS,us-east-1,r6gd.12xlarge,on_demand,NA,2.7648,USD,AWS Pricing API,2025-11-30T08:50:58.766676 +AWS,us-east-1,r6gd.12xlarge,reserved_1y,all_upfront,1.4309,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:31.560228 +AWS,us-east-1,r6gd.12xlarge,reserved_1y,no_upfront,1.4309,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:07.484621 +AWS,us-east-1,r6gd.12xlarge,reserved_1y,partial_upfront,1.4309,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:58.958542 +AWS,us-east-1,r6gd.12xlarge,reserved_3y,all_upfront,1.4309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:40.632765 +AWS,us-east-1,r6gd.12xlarge,reserved_3y,no_upfront,1.4309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:08.752772 +AWS,us-east-1,r6gd.12xlarge,reserved_3y,partial_upfront,1.4309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:07.797259 +AWS,us-east-1,r6gd.12xlarge,spot,NA,0.874994,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973272 +AWS,us-east-1,r6gd.16xlarge,on_demand,NA,3.6864,USD,AWS Pricing API,2025-11-30T08:50:24.942611 +AWS,us-east-1,r6gd.16xlarge,reserved_1y,all_upfront,2.211836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:58.323667 +AWS,us-east-1,r6gd.16xlarge,reserved_1y,no_upfront,2.211836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:33.651791 +AWS,us-east-1,r6gd.16xlarge,reserved_1y,partial_upfront,2.211836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:24.785420 +AWS,us-east-1,r6gd.16xlarge,reserved_3y,all_upfront,1.474545,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:07.396762 +AWS,us-east-1,r6gd.16xlarge,reserved_3y,no_upfront,1.474545,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:35.287252 +AWS,us-east-1,r6gd.16xlarge,reserved_3y,partial_upfront,1.474545,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:33.748481 +AWS,us-east-1,r6gd.16xlarge,spot,NA,1.297899,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972251 +AWS,us-east-1,r6gd.2xlarge,on_demand,NA,0.4608,USD,AWS Pricing API,2025-11-30T08:50:02.962871 +AWS,us-east-1,r6gd.2xlarge,reserved_1y,all_upfront,0.336,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:36.660251 +AWS,us-east-1,r6gd.2xlarge,reserved_1y,no_upfront,0.336,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:11.903778 +AWS,us-east-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.336,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:03.044099 +AWS,us-east-1,r6gd.2xlarge,reserved_3y,all_upfront,0.336,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:45.891609 +AWS,us-east-1,r6gd.2xlarge,reserved_3y,no_upfront,0.336,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:13.761338 +AWS,us-east-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.336,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:11.817246 +AWS,us-east-1,r6gd.2xlarge,spot,NA,0.241964,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971579 +AWS,us-east-1,r6gd.4xlarge,on_demand,NA,0.9216,USD,AWS Pricing API,2025-11-30T08:50:09.636878 +AWS,us-east-1,r6gd.4xlarge,reserved_1y,all_upfront,1.298402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:43.153950 +AWS,us-east-1,r6gd.4xlarge,reserved_1y,no_upfront,1.298402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:18.482992 +AWS,us-east-1,r6gd.4xlarge,reserved_1y,partial_upfront,1.298402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:09.619028 +AWS,us-east-1,r6gd.4xlarge,reserved_3y,all_upfront,0.432801,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:52.378120 +AWS,us-east-1,r6gd.4xlarge,reserved_3y,no_upfront,0.432801,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:20.256552 +AWS,us-east-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.432801,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:18.454296 +AWS,us-east-1,r6gd.4xlarge,spot,NA,0.397312,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971797 +AWS,us-east-1,r6gd.8xlarge,on_demand,NA,1.8432,USD,AWS Pricing API,2025-11-30T08:50:03.790587 +AWS,us-east-1,r6gd.8xlarge,reserved_1y,all_upfront,2.596804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:37.468006 +AWS,us-east-1,r6gd.8xlarge,reserved_1y,no_upfront,2.596804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:12.718850 +AWS,us-east-1,r6gd.8xlarge,reserved_1y,partial_upfront,2.596804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:03.859979 +AWS,us-east-1,r6gd.8xlarge,reserved_3y,all_upfront,0.865601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:46.694671 +AWS,us-east-1,r6gd.8xlarge,reserved_3y,no_upfront,0.865601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:14.566995 +AWS,us-east-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.865601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:12.646871 +AWS,us-east-1,r6gd.8xlarge,spot,NA,0.704268,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971629 +AWS,us-east-1,r6gd.large,on_demand,NA,0.1152,USD,AWS Pricing API,2025-11-30T08:50:39.831476 +AWS,us-east-1,r6gd.large,reserved_1y,all_upfront,0.069189,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:13.073767 +AWS,us-east-1,r6gd.large,reserved_1y,no_upfront,0.069189,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:48.530870 +AWS,us-east-1,r6gd.large,reserved_1y,partial_upfront,0.069189,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:40.015338 +AWS,us-east-1,r6gd.large,reserved_3y,all_upfront,0.04613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:22.098858 +AWS,us-east-1,r6gd.large,reserved_3y,no_upfront,0.04613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:50.112606 +AWS,us-east-1,r6gd.large,reserved_3y,partial_upfront,0.04613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:48.815755 +AWS,us-east-1,r6gd.large,spot,NA,0.04391,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972725 +AWS,us-east-1,r6gd.xlarge,on_demand,NA,0.2304,USD,AWS Pricing API,2025-11-30T08:50:23.843167 +AWS,us-east-1,r6gd.xlarge,reserved_1y,all_upfront,0.135502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:57.250898 +AWS,us-east-1,r6gd.xlarge,reserved_1y,no_upfront,0.135502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:32.560404 +AWS,us-east-1,r6gd.xlarge,reserved_1y,partial_upfront,0.135502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:23.690544 +AWS,us-east-1,r6gd.xlarge,reserved_3y,all_upfront,0.045167,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:06.318522 +AWS,us-east-1,r6gd.xlarge,reserved_3y,no_upfront,0.045167,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:34.187892 +AWS,us-east-1,r6gd.xlarge,reserved_3y,partial_upfront,0.045167,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:32.640983 +AWS,us-east-1,r6gd.xlarge,spot,NA,0.121036,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972220 +AWS,us-east-1,r6i.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:51:04.535581 +AWS,us-east-1,r6i.12xlarge,reserved_1y,all_upfront,1.905071,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:37.219867 +AWS,us-east-1,r6i.12xlarge,reserved_1y,no_upfront,1.905071,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:13.227000 +AWS,us-east-1,r6i.12xlarge,reserved_1y,partial_upfront,1.905071,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:04.673083 +AWS,us-east-1,r6i.12xlarge,reserved_3y,all_upfront,1.270064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:46.277059 +AWS,us-east-1,r6i.12xlarge,reserved_3y,no_upfront,1.270064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:14.467009 +AWS,us-east-1,r6i.12xlarge,reserved_3y,partial_upfront,1.270064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:13.594457 +AWS,us-east-1,r6i.12xlarge,spot,NA,1.056203,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973527 +AWS,us-east-1,r6i.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:50:12.379359 +AWS,us-east-1,r6i.16xlarge,reserved_1y,all_upfront,2.92118,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:45.993632 +AWS,us-east-1,r6i.16xlarge,reserved_1y,no_upfront,2.92118,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:21.217434 +AWS,us-east-1,r6i.16xlarge,reserved_1y,partial_upfront,2.92118,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:12.354847 +AWS,us-east-1,r6i.16xlarge,reserved_3y,all_upfront,2.92118,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:55.077454 +AWS,us-east-1,r6i.16xlarge,reserved_3y,no_upfront,2.92118,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:22.995654 +AWS,us-east-1,r6i.16xlarge,reserved_3y,partial_upfront,2.92118,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:21.200089 +AWS,us-east-1,r6i.16xlarge,spot,NA,1.43695,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971866 +AWS,us-east-1,r6i.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:50:18.853950 +AWS,us-east-1,r6i.24xlarge,reserved_1y,all_upfront,5.080354,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:52.396285 +AWS,us-east-1,r6i.24xlarge,reserved_1y,no_upfront,5.080354,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:27.635883 +AWS,us-east-1,r6i.24xlarge,reserved_1y,partial_upfront,5.080354,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:18.795337 +AWS,us-east-1,r6i.24xlarge,reserved_3y,all_upfront,2.540171,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:01.432518 +AWS,us-east-1,r6i.24xlarge,reserved_3y,no_upfront,2.540171,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:29.342413 +AWS,us-east-1,r6i.24xlarge,reserved_3y,partial_upfront,2.540171,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:27.689215 +AWS,us-east-1,r6i.24xlarge,spot,NA,1.894673,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972070 +AWS,us-east-1,r6i.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T08:51:08.087258 +AWS,us-east-1,r6i.2xlarge,reserved_1y,all_upfront,0.31755,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:40.749131 +AWS,us-east-1,r6i.2xlarge,reserved_1y,no_upfront,0.31755,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:16.774288 +AWS,us-east-1,r6i.2xlarge,reserved_1y,partial_upfront,0.31755,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:08.169542 +AWS,us-east-1,r6i.2xlarge,reserved_3y,all_upfront,0.21169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:49.760597 +AWS,us-east-1,r6i.2xlarge,reserved_3y,no_upfront,0.21169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:17.974513 +AWS,us-east-1,r6i.2xlarge,reserved_3y,partial_upfront,0.21169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:17.165901 +AWS,us-east-1,r6i.2xlarge,spot,NA,0.215387,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973590 +AWS,us-east-1,r6i.32xlarge,on_demand,NA,8.064,USD,AWS Pricing API,2025-11-30T08:50:12.516102 +AWS,us-east-1,r6i.32xlarge,reserved_1y,all_upfront,5.84237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:46.128602 +AWS,us-east-1,r6i.32xlarge,reserved_1y,no_upfront,5.84237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:21.352567 +AWS,us-east-1,r6i.32xlarge,reserved_1y,partial_upfront,5.84237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:12.495439 +AWS,us-east-1,r6i.32xlarge,reserved_3y,all_upfront,5.84237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:55.211693 +AWS,us-east-1,r6i.32xlarge,reserved_3y,no_upfront,5.84237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:23.130733 +AWS,us-east-1,r6i.32xlarge,reserved_3y,partial_upfront,5.84237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:21.336778 +AWS,us-east-1,r6i.32xlarge,spot,NA,2.428031,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971879 +AWS,us-east-1,r6i.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:50:34.082558 +AWS,us-east-1,r6i.4xlarge,reserved_1y,all_upfront,0.634986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:07.409899 +AWS,us-east-1,r6i.4xlarge,reserved_1y,no_upfront,0.634986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:42.802143 +AWS,us-east-1,r6i.4xlarge,reserved_1y,partial_upfront,0.634986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:34.225198 +AWS,us-east-1,r6i.4xlarge,reserved_3y,all_upfront,0.423342,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:16.422920 +AWS,us-east-1,r6i.4xlarge,reserved_3y,no_upfront,0.423342,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:44.419254 +AWS,us-east-1,r6i.4xlarge,reserved_3y,partial_upfront,0.423342,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:43.007064 +AWS,us-east-1,r6i.4xlarge,spot,NA,0.425717,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972569 +AWS,us-east-1,r6i.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:50:38.456779 +AWS,us-east-1,r6i.8xlarge,reserved_1y,all_upfront,1.693451,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:11.726844 +AWS,us-east-1,r6i.8xlarge,reserved_1y,no_upfront,1.693451,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:47.173735 +AWS,us-east-1,r6i.8xlarge,reserved_1y,partial_upfront,1.693451,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:38.650202 +AWS,us-east-1,r6i.8xlarge,reserved_3y,all_upfront,0.846724,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:20.752935 +AWS,us-east-1,r6i.8xlarge,reserved_3y,no_upfront,0.846724,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:48.746171 +AWS,us-east-1,r6i.8xlarge,reserved_3y,partial_upfront,0.846724,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:47.435827 +AWS,us-east-1,r6i.8xlarge,spot,NA,0.709334,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972678 +AWS,us-east-1,r6i.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:50:54.540733 +AWS,us-east-1,r6i.large,reserved_1y,all_upfront,0.07774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:27.376382 +AWS,us-east-1,r6i.large,reserved_1y,no_upfront,0.07774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:03.215302 +AWS,us-east-1,r6i.large,reserved_1y,partial_upfront,0.07774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:54.574618 +AWS,us-east-1,r6i.large,reserved_3y,all_upfront,0.025913,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:36.440139 +AWS,us-east-1,r6i.large,reserved_3y,no_upfront,0.025913,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:04.546944 +AWS,us-east-1,r6i.large,reserved_3y,partial_upfront,0.025913,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:03.541263 +AWS,us-east-1,r6i.large,spot,NA,0.047281,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973152 +AWS,us-east-1,r6i.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T08:50:15.944257 +AWS,us-east-1,r6i.xlarge,reserved_1y,all_upfront,0.18257,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:49.522942 +AWS,us-east-1,r6i.xlarge,reserved_1y,no_upfront,0.18257,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:24.778525 +AWS,us-east-1,r6i.xlarge,reserved_1y,partial_upfront,0.18257,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:15.914270 +AWS,us-east-1,r6i.xlarge,reserved_3y,all_upfront,0.18257,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:58.583926 +AWS,us-east-1,r6i.xlarge,reserved_3y,no_upfront,0.18257,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:26.502597 +AWS,us-east-1,r6i.xlarge,reserved_3y,partial_upfront,0.18257,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:24.772517 +AWS,us-east-1,r6i.xlarge,spot,NA,0.106015,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971939 +AWS,us-east-1,r6id.12xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T08:51:08.506948 +AWS,us-east-1,r6id.12xlarge,reserved_1y,all_upfront,2.903968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:41.163028 +AWS,us-east-1,r6id.12xlarge,reserved_1y,no_upfront,2.903968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:17.192245 +AWS,us-east-1,r6id.12xlarge,reserved_1y,partial_upfront,2.903968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:08.572131 +AWS,us-east-1,r6id.12xlarge,reserved_3y,all_upfront,1.451989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:50.164881 +AWS,us-east-1,r6id.12xlarge,reserved_3y,no_upfront,1.451989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:18.376924 +AWS,us-east-1,r6id.12xlarge,reserved_3y,partial_upfront,1.451989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:17.591122 +AWS,us-east-1,r6id.12xlarge,spot,NA,1.611199,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973622 +AWS,us-east-1,r6id.16xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:50:51.346402 +AWS,us-east-1,r6id.16xlarge,reserved_1y,all_upfront,3.27637,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:24.265560 +AWS,us-east-1,r6id.16xlarge,reserved_1y,no_upfront,3.27637,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:59.968007 +AWS,us-east-1,r6id.16xlarge,reserved_1y,partial_upfront,3.27637,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:51.413808 +AWS,us-east-1,r6id.16xlarge,reserved_3y,all_upfront,1.092123,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:33.305472 +AWS,us-east-1,r6id.16xlarge,reserved_3y,no_upfront,1.092123,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:01.337557 +AWS,us-east-1,r6id.16xlarge,reserved_3y,partial_upfront,1.092123,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:00.333278 +AWS,us-east-1,r6id.16xlarge,spot,NA,1.58897,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973089 +AWS,us-east-1,r6id.24xlarge,on_demand,NA,7.2576,USD,AWS Pricing API,2025-11-30T08:50:03.238470 +AWS,us-east-1,r6id.24xlarge,reserved_1y,all_upfront,4.344032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:36.931248 +AWS,us-east-1,r6id.24xlarge,reserved_1y,no_upfront,4.344032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:12.175754 +AWS,us-east-1,r6id.24xlarge,reserved_1y,partial_upfront,4.344032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:03.319087 +AWS,us-east-1,r6id.24xlarge,reserved_3y,all_upfront,2.896011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:46.159798 +AWS,us-east-1,r6id.24xlarge,reserved_3y,no_upfront,2.896011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:14.030281 +AWS,us-east-1,r6id.24xlarge,reserved_3y,partial_upfront,2.896011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:12.094443 +AWS,us-east-1,r6id.24xlarge,spot,NA,2.890747,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971583 +AWS,us-east-1,r6id.2xlarge,on_demand,NA,0.6048,USD,AWS Pricing API,2025-11-30T08:50:54.124527 +AWS,us-east-1,r6id.2xlarge,reserved_1y,all_upfront,0.43879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:26.973175 +AWS,us-east-1,r6id.2xlarge,reserved_1y,no_upfront,0.43879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:02.802638 +AWS,us-east-1,r6id.2xlarge,reserved_1y,partial_upfront,0.43879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:54.167614 +AWS,us-east-1,r6id.2xlarge,reserved_3y,all_upfront,0.43879,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:36.033339 +AWS,us-east-1,r6id.2xlarge,reserved_3y,no_upfront,0.43879,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:04.138509 +AWS,us-east-1,r6id.2xlarge,reserved_3y,partial_upfront,0.43879,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:03.121649 +AWS,us-east-1,r6id.2xlarge,spot,NA,0.250161,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973160 +AWS,us-east-1,r6id.32xlarge,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:50:45.731575 +AWS,us-east-1,r6id.32xlarge,reserved_1y,all_upfront,5.676142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:18.843047 +AWS,us-east-1,r6id.32xlarge,reserved_1y,no_upfront,5.676142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:54.399088 +AWS,us-east-1,r6id.32xlarge,reserved_1y,partial_upfront,5.676142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:45.911402 +AWS,us-east-1,r6id.32xlarge,reserved_3y,all_upfront,1.892047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:27.924653 +AWS,us-east-1,r6id.32xlarge,reserved_3y,no_upfront,1.892047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:55.915320 +AWS,us-east-1,r6id.32xlarge,reserved_3y,partial_upfront,1.892047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:54.794715 +AWS,us-east-1,r6id.32xlarge,spot,NA,3.603198,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972897 +AWS,us-east-1,r6id.4xlarge,on_demand,NA,1.2096,USD,AWS Pricing API,2025-11-30T08:50:40.375827 +AWS,us-east-1,r6id.4xlarge,reserved_1y,all_upfront,0.835822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:13.608803 +AWS,us-east-1,r6id.4xlarge,reserved_1y,no_upfront,0.835822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:49.080556 +AWS,us-east-1,r6id.4xlarge,reserved_1y,partial_upfront,0.835822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:40.578863 +AWS,us-east-1,r6id.4xlarge,reserved_3y,all_upfront,0.557207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:22.638293 +AWS,us-east-1,r6id.4xlarge,reserved_3y,no_upfront,0.557207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:50.651518 +AWS,us-east-1,r6id.4xlarge,reserved_3y,partial_upfront,0.557207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:49.370985 +AWS,us-east-1,r6id.4xlarge,spot,NA,0.598528,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972721 +AWS,us-east-1,r6id.8xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:50:02.826260 +AWS,us-east-1,r6id.8xlarge,reserved_1y,all_upfront,1.75518,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:36.526365 +AWS,us-east-1,r6id.8xlarge,reserved_1y,no_upfront,1.75518,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:11.765611 +AWS,us-east-1,r6id.8xlarge,reserved_1y,partial_upfront,1.75518,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:02.906928 +AWS,us-east-1,r6id.8xlarge,reserved_3y,all_upfront,1.75518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:45.757675 +AWS,us-east-1,r6id.8xlarge,reserved_3y,no_upfront,1.75518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:13.626577 +AWS,us-east-1,r6id.8xlarge,reserved_3y,partial_upfront,1.75518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:11.679002 +AWS,us-east-1,r6id.8xlarge,spot,NA,1.261573,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971595 +AWS,us-east-1,r6id.large,on_demand,NA,0.1512,USD,AWS Pricing API,2025-11-30T08:50:28.216477 +AWS,us-east-1,r6id.large,reserved_1y,all_upfront,0.088699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:01.577522 +AWS,us-east-1,r6id.large,reserved_1y,no_upfront,0.088699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:36.922184 +AWS,us-east-1,r6id.large,reserved_1y,partial_upfront,0.088699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:28.120852 +AWS,us-east-1,r6id.large,reserved_3y,all_upfront,0.029566,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:10.625124 +AWS,us-east-1,r6id.large,reserved_3y,no_upfront,0.029566,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:38.545966 +AWS,us-east-1,r6id.large,reserved_3y,partial_upfront,0.029566,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:37.078332 +AWS,us-east-1,r6id.large,spot,NA,0.056998,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972343 +AWS,us-east-1,r6id.xlarge,on_demand,NA,0.3024,USD,AWS Pricing API,2025-11-30T08:51:05.910657 +AWS,us-east-1,r6id.xlarge,reserved_1y,all_upfront,0.177397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:38.580588 +AWS,us-east-1,r6id.xlarge,reserved_1y,no_upfront,0.177397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:14.598978 +AWS,us-east-1,r6id.xlarge,reserved_1y,partial_upfront,0.177397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:06.009265 +AWS,us-east-1,r6id.xlarge,reserved_3y,all_upfront,0.059132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:47.612990 +AWS,us-east-1,r6id.xlarge,reserved_3y,no_upfront,0.059132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:15.820147 +AWS,us-east-1,r6id.xlarge,reserved_3y,partial_upfront,0.059132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:14.958770 +AWS,us-east-1,r6id.xlarge,spot,NA,0.166515,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973561 +AWS,us-east-1,r6idn.12xlarge,on_demand,NA,4.68936,USD,AWS Pricing API,2025-11-30T08:50:26.040835 +AWS,us-east-1,r6idn.12xlarge,reserved_1y,all_upfront,2.9543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:59.405932 +AWS,us-east-1,r6idn.12xlarge,reserved_1y,no_upfront,2.9543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:34.749212 +AWS,us-east-1,r6idn.12xlarge,reserved_1y,partial_upfront,2.9543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:25.879820 +AWS,us-east-1,r6idn.12xlarge,reserved_3y,all_upfront,2.9543,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:08.477558 +AWS,us-east-1,r6idn.12xlarge,reserved_3y,no_upfront,2.9543,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:36.380654 +AWS,us-east-1,r6idn.12xlarge,reserved_3y,partial_upfront,2.9543,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:34.863211 +AWS,us-east-1,r6idn.12xlarge,spot,NA,2.069755,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972322 +AWS,us-east-1,r6idn.16xlarge,on_demand,NA,6.25248,USD,AWS Pricing API,2025-11-30T08:50:05.596626 +AWS,us-east-1,r6idn.16xlarge,reserved_1y,all_upfront,6.64726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:39.223562 +AWS,us-east-1,r6idn.16xlarge,reserved_1y,no_upfront,6.64726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:14.495615 +AWS,us-east-1,r6idn.16xlarge,reserved_1y,partial_upfront,6.64726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:05.636938 +AWS,us-east-1,r6idn.16xlarge,reserved_3y,all_upfront,2.215753,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:48.445693 +AWS,us-east-1,r6idn.16xlarge,reserved_3y,no_upfront,2.215753,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:16.342328 +AWS,us-east-1,r6idn.16xlarge,reserved_3y,partial_upfront,2.215753,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:14.448420 +AWS,us-east-1,r6idn.16xlarge,spot,NA,2.001221,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971682 +AWS,us-east-1,r6idn.24xlarge,on_demand,NA,9.37872,USD,AWS Pricing API,2025-11-30T08:50:33.263223 +AWS,us-east-1,r6idn.24xlarge,reserved_1y,all_upfront,7.071543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:06.600462 +AWS,us-east-1,r6idn.24xlarge,reserved_1y,no_upfront,7.071543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:41.976312 +AWS,us-east-1,r6idn.24xlarge,reserved_1y,partial_upfront,7.071543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:33.400738 +AWS,us-east-1,r6idn.24xlarge,reserved_3y,all_upfront,3.535774,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:15.606354 +AWS,us-east-1,r6idn.24xlarge,reserved_3y,no_upfront,3.535774,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:43.607764 +AWS,us-east-1,r6idn.24xlarge,reserved_3y,partial_upfront,3.535774,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:42.166268 +AWS,us-east-1,r6idn.24xlarge,spot,NA,3.231669,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972518 +AWS,us-east-1,r6idn.2xlarge,on_demand,NA,0.78156,USD,AWS Pricing API,2025-11-30T08:50:32.717732 +AWS,us-east-1,r6idn.2xlarge,reserved_1y,all_upfront,0.589329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:06.054030 +AWS,us-east-1,r6idn.2xlarge,reserved_1y,no_upfront,0.589329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:41.429123 +AWS,us-east-1,r6idn.2xlarge,reserved_1y,partial_upfront,0.589329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:32.853131 +AWS,us-east-1,r6idn.2xlarge,reserved_3y,all_upfront,0.294656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:15.073477 +AWS,us-east-1,r6idn.2xlarge,reserved_3y,no_upfront,0.294656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:43.027068 +AWS,us-east-1,r6idn.2xlarge,reserved_3y,partial_upfront,0.294656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:41.617149 +AWS,us-east-1,r6idn.2xlarge,spot,NA,0.419486,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972509 +AWS,us-east-1,r6idn.32xlarge,on_demand,NA,12.50496,USD,AWS Pricing API,2025-11-30T08:51:03.448434 +AWS,us-east-1,r6idn.32xlarge,reserved_1y,all_upfront,5.09152,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:36.135234 +AWS,us-east-1,r6idn.32xlarge,reserved_1y,no_upfront,5.09152,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:12.128494 +AWS,us-east-1,r6idn.32xlarge,reserved_1y,partial_upfront,5.09152,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:03.590639 +AWS,us-east-1,r6idn.32xlarge,reserved_3y,all_upfront,5.09152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:45.194196 +AWS,us-east-1,r6idn.32xlarge,reserved_3y,no_upfront,5.09152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:13.357784 +AWS,us-east-1,r6idn.32xlarge,reserved_3y,partial_upfront,5.09152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:12.484443 +AWS,us-east-1,r6idn.32xlarge,spot,NA,4.515245,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973473 +AWS,us-east-1,r6idn.4xlarge,on_demand,NA,1.56312,USD,AWS Pricing API,2025-11-30T08:50:06.139621 +AWS,us-east-1,r6idn.4xlarge,reserved_1y,all_upfront,1.353408,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:39.759245 +AWS,us-east-1,r6idn.4xlarge,reserved_1y,no_upfront,1.353408,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:15.044487 +AWS,us-east-1,r6idn.4xlarge,reserved_1y,partial_upfront,1.353408,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:06.181205 +AWS,us-east-1,r6idn.4xlarge,reserved_3y,all_upfront,0.676696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:49.018346 +AWS,us-east-1,r6idn.4xlarge,reserved_3y,no_upfront,0.676696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:16.878182 +AWS,us-east-1,r6idn.4xlarge,reserved_3y,partial_upfront,0.676696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:15.001054 +AWS,us-east-1,r6idn.4xlarge,spot,NA,0.723238,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971654 +AWS,us-east-1,r6idn.8xlarge,on_demand,NA,3.12624,USD,AWS Pricing API,2025-11-30T08:50:54.398511 +AWS,us-east-1,r6idn.8xlarge,reserved_1y,all_upfront,2.357222,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:27.241803 +AWS,us-east-1,r6idn.8xlarge,reserved_1y,no_upfront,2.357222,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:03.077484 +AWS,us-east-1,r6idn.8xlarge,reserved_1y,partial_upfront,2.357222,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:54.440342 +AWS,us-east-1,r6idn.8xlarge,reserved_3y,all_upfront,1.178607,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:36.306545 +AWS,us-east-1,r6idn.8xlarge,reserved_3y,no_upfront,1.178607,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:04.408912 +AWS,us-east-1,r6idn.8xlarge,reserved_3y,partial_upfront,1.178607,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:03.399869 +AWS,us-east-1,r6idn.8xlarge,spot,NA,1.342531,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973164 +AWS,us-east-1,r6idn.large,on_demand,NA,0.19539,USD,AWS Pricing API,2025-11-30T08:50:25.903872 +AWS,us-east-1,r6idn.large,reserved_1y,all_upfront,0.117182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:59.272316 +AWS,us-east-1,r6idn.large,reserved_1y,no_upfront,0.117182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:34.609786 +AWS,us-east-1,r6idn.large,reserved_1y,partial_upfront,0.117182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:25.742131 +AWS,us-east-1,r6idn.large,reserved_3y,all_upfront,0.078141,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:08.344034 +AWS,us-east-1,r6idn.large,reserved_3y,no_upfront,0.078141,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:36.235412 +AWS,us-east-1,r6idn.large,reserved_3y,partial_upfront,0.078141,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:34.727402 +AWS,us-east-1,r6idn.large,spot,NA,0.064262,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972318 +AWS,us-east-1,r6idn.xlarge,on_demand,NA,0.39078,USD,AWS Pricing API,2025-11-30T08:50:17.715299 +AWS,us-east-1,r6idn.xlarge,reserved_1y,all_upfront,0.269637,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:51.312967 +AWS,us-east-1,r6idn.xlarge,reserved_1y,no_upfront,0.269637,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:26.546236 +AWS,us-east-1,r6idn.xlarge,reserved_1y,partial_upfront,0.269637,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:17.683397 +AWS,us-east-1,r6idn.xlarge,reserved_3y,all_upfront,0.179759,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:00.346945 +AWS,us-east-1,r6idn.xlarge,reserved_3y,no_upfront,0.179759,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:28.267259 +AWS,us-east-1,r6idn.xlarge,reserved_3y,partial_upfront,0.179759,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:26.572093 +AWS,us-east-1,r6idn.xlarge,spot,NA,0.203756,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972078 +AWS,us-east-1,r6in.12xlarge,on_demand,NA,4.18392,USD,AWS Pricing API,2025-11-30T08:50:10.321614 +AWS,us-east-1,r6in.12xlarge,reserved_1y,all_upfront,3.03125,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:43.825398 +AWS,us-east-1,r6in.12xlarge,reserved_1y,no_upfront,3.03125,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:19.167347 +AWS,us-east-1,r6in.12xlarge,reserved_1y,partial_upfront,3.03125,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:10.306539 +AWS,us-east-1,r6in.12xlarge,reserved_3y,all_upfront,3.03125,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:53.048527 +AWS,us-east-1,r6in.12xlarge,reserved_3y,no_upfront,3.03125,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:20.946721 +AWS,us-east-1,r6in.12xlarge,reserved_3y,partial_upfront,3.03125,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:19.142375 +AWS,us-east-1,r6in.12xlarge,spot,NA,1.729686,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971764 +AWS,us-east-1,r6in.16xlarge,on_demand,NA,5.57856,USD,AWS Pricing API,2025-11-30T08:50:01.823943 +AWS,us-east-1,r6in.16xlarge,reserved_1y,all_upfront,3.51449,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:35.587745 +AWS,us-east-1,r6in.16xlarge,reserved_1y,no_upfront,3.51449,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:10.814522 +AWS,us-east-1,r6in.16xlarge,reserved_1y,partial_upfront,3.51449,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:01.923297 +AWS,us-east-1,r6in.16xlarge,reserved_3y,all_upfront,3.51449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:44.815460 +AWS,us-east-1,r6in.16xlarge,reserved_3y,no_upfront,3.51449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:12.683834 +AWS,us-east-1,r6in.16xlarge,reserved_3y,partial_upfront,3.51449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:10.715214 +AWS,us-east-1,r6in.16xlarge,spot,NA,1.606316,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971540 +AWS,us-east-1,r6in.24xlarge,on_demand,NA,8.36784,USD,AWS Pricing API,2025-11-30T08:51:02.615394 +AWS,us-east-1,r6in.24xlarge,reserved_1y,all_upfront,5.020738,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:35.331493 +AWS,us-east-1,r6in.24xlarge,reserved_1y,no_upfront,5.020738,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:11.307610 +AWS,us-east-1,r6in.24xlarge,reserved_1y,partial_upfront,5.020738,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:02.783219 +AWS,us-east-1,r6in.24xlarge,reserved_3y,all_upfront,3.347146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:44.373960 +AWS,us-east-1,r6in.24xlarge,reserved_3y,no_upfront,3.347146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:12.534370 +AWS,us-east-1,r6in.24xlarge,reserved_3y,partial_upfront,3.347146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:11.656652 +AWS,us-east-1,r6in.24xlarge,spot,NA,2.885048,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973427 +AWS,us-east-1,r6in.2xlarge,on_demand,NA,0.69732,USD,AWS Pricing API,2025-11-30T08:51:05.496359 +AWS,us-east-1,r6in.2xlarge,reserved_1y,all_upfront,0.418447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:38.168436 +AWS,us-east-1,r6in.2xlarge,reserved_1y,no_upfront,0.418447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:14.190911 +AWS,us-east-1,r6in.2xlarge,reserved_1y,partial_upfront,0.418447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:05.609712 +AWS,us-east-1,r6in.2xlarge,reserved_3y,all_upfront,0.278949,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:47.214978 +AWS,us-east-1,r6in.2xlarge,reserved_3y,no_upfront,0.278949,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:15.417204 +AWS,us-east-1,r6in.2xlarge,reserved_3y,partial_upfront,0.278949,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:14.550895 +AWS,us-east-1,r6in.2xlarge,spot,NA,0.334926,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973507 +AWS,us-east-1,r6in.32xlarge,on_demand,NA,11.15712,USD,AWS Pricing API,2025-11-30T08:50:45.457783 +AWS,us-east-1,r6in.32xlarge,reserved_1y,all_upfront,7.544406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:18.576687 +AWS,us-east-1,r6in.32xlarge,reserved_1y,no_upfront,7.544406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:54.125643 +AWS,us-east-1,r6in.32xlarge,reserved_1y,partial_upfront,7.544406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:45.638714 +AWS,us-east-1,r6in.32xlarge,reserved_3y,all_upfront,2.514802,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:27.655758 +AWS,us-east-1,r6in.32xlarge,reserved_3y,no_upfront,2.514802,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:55.646976 +AWS,us-east-1,r6in.32xlarge,reserved_3y,partial_upfront,2.514802,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:54.511843 +AWS,us-east-1,r6in.32xlarge,spot,NA,3.944952,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972880 +AWS,us-east-1,r6in.4xlarge,on_demand,NA,1.39464,USD,AWS Pricing API,2025-11-30T08:51:07.949523 +AWS,us-east-1,r6in.4xlarge,reserved_1y,all_upfront,1.045677,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:40.614554 +AWS,us-east-1,r6in.4xlarge,reserved_1y,no_upfront,1.045677,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:16.637959 +AWS,us-east-1,r6in.4xlarge,reserved_1y,partial_upfront,1.045677,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:08.035954 +AWS,us-east-1,r6in.4xlarge,reserved_3y,all_upfront,0.522846,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:49.627370 +AWS,us-east-1,r6in.4xlarge,reserved_3y,no_upfront,0.522846,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:17.842794 +AWS,us-east-1,r6in.4xlarge,reserved_3y,partial_upfront,0.522846,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:17.029639 +AWS,us-east-1,r6in.4xlarge,spot,NA,0.630873,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973597 +AWS,us-east-1,r6in.8xlarge,on_demand,NA,2.78928,USD,AWS Pricing API,2025-11-30T08:50:55.912889 +AWS,us-east-1,r6in.8xlarge,reserved_1y,all_upfront,2.02083,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:28.728919 +AWS,us-east-1,r6in.8xlarge,reserved_1y,no_upfront,2.02083,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:04.607293 +AWS,us-east-1,r6in.8xlarge,reserved_1y,partial_upfront,2.02083,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:55.943683 +AWS,us-east-1,r6in.8xlarge,reserved_3y,all_upfront,2.02083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:37.789839 +AWS,us-east-1,r6in.8xlarge,reserved_3y,no_upfront,2.02083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:05.898753 +AWS,us-east-1,r6in.8xlarge,reserved_3y,partial_upfront,2.02083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:04.927676 +AWS,us-east-1,r6in.8xlarge,spot,NA,0.962955,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973219 +AWS,us-east-1,r6in.large,on_demand,NA,0.17433,USD,AWS Pricing API,2025-11-30T08:51:10.690909 +AWS,us-east-1,r6in.large,reserved_1y,all_upfront,0.130739,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:43.332037 +AWS,us-east-1,r6in.large,reserved_1y,no_upfront,0.130739,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:19.369815 +AWS,us-east-1,r6in.large,reserved_1y,partial_upfront,0.130739,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:10.720154 +AWS,us-east-1,r6in.large,reserved_3y,all_upfront,0.065366,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:52.324835 +AWS,us-east-1,r6in.large,reserved_3y,no_upfront,0.065366,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:20.533426 +AWS,us-east-1,r6in.large,reserved_3y,partial_upfront,0.065366,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:19.803834 +AWS,us-east-1,r6in.large,spot,NA,0.045053,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973658 +AWS,us-east-1,r6in.xlarge,on_demand,NA,0.34866,USD,AWS Pricing API,2025-11-30T08:51:08.365666 +AWS,us-east-1,r6in.xlarge,reserved_1y,all_upfront,0.209166,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:41.028647 +AWS,us-east-1,r6in.xlarge,reserved_1y,no_upfront,0.209166,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:17.052861 +AWS,us-east-1,r6in.xlarge,reserved_1y,partial_upfront,0.209166,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:08.438411 +AWS,us-east-1,r6in.xlarge,reserved_3y,all_upfront,0.139455,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:50.030687 +AWS,us-east-1,r6in.xlarge,reserved_3y,no_upfront,0.139455,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:18.241737 +AWS,us-east-1,r6in.xlarge,reserved_3y,partial_upfront,0.139455,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:17.445955 +AWS,us-east-1,r6in.xlarge,spot,NA,0.167231,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973586 +AWS,us-east-1,r7a.48xlarge,on_demand,NA,14.6064,USD,AWS Pricing API,2025-11-30T08:50:08.349329 +AWS,us-east-1,r7a.48xlarge,reserved_1y,all_upfront,9.202047,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:41.935411 +AWS,us-east-1,r7a.48xlarge,reserved_1y,no_upfront,9.202047,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:17.256507 +AWS,us-east-1,r7a.48xlarge,reserved_1y,partial_upfront,9.202047,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:08.379937 +AWS,us-east-1,r7a.48xlarge,reserved_3y,all_upfront,6.134696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:51.168763 +AWS,us-east-1,r7a.48xlarge,reserved_3y,no_upfront,6.134696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:19.048222 +AWS,us-east-1,r7a.48xlarge,reserved_3y,partial_upfront,6.134696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:17.206754 +AWS,us-east-1,r7a.48xlarge,spot,NA,5.460171,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971736 +AWS,us-east-1,r7g.12xlarge,on_demand,NA,2.5704,USD,AWS Pricing API,2025-11-30T08:50:32.438857 +AWS,us-east-1,r7g.12xlarge,reserved_1y,all_upfront,1.773558,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:05.782011 +AWS,us-east-1,r7g.12xlarge,reserved_1y,no_upfront,1.773558,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:41.156075 +AWS,us-east-1,r7g.12xlarge,reserved_1y,partial_upfront,1.773558,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:32.569615 +AWS,us-east-1,r7g.12xlarge,reserved_3y,all_upfront,1.182386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:14.805888 +AWS,us-east-1,r7g.12xlarge,reserved_3y,no_upfront,1.182386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:42.757243 +AWS,us-east-1,r7g.12xlarge,reserved_3y,partial_upfront,1.182386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:41.338300 +AWS,us-east-1,r7g.12xlarge,spot,NA,0.789524,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972466 +AWS,us-east-1,r7g.16xlarge,on_demand,NA,3.4272,USD,AWS Pricing API,2025-11-30T08:50:17.445301 +AWS,us-east-1,r7g.16xlarge,reserved_1y,all_upfront,2.2671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:51.025705 +AWS,us-east-1,r7g.16xlarge,reserved_1y,no_upfront,2.2671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:26.271532 +AWS,us-east-1,r7g.16xlarge,reserved_1y,partial_upfront,2.2671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:17.408815 +AWS,us-east-1,r7g.16xlarge,reserved_3y,all_upfront,2.2671,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:00.069573 +AWS,us-east-1,r7g.16xlarge,reserved_3y,no_upfront,2.2671,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:27.997333 +AWS,us-east-1,r7g.16xlarge,reserved_3y,partial_upfront,2.2671,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:26.294142 +AWS,us-east-1,r7g.16xlarge,spot,NA,0.99546,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971995 +AWS,us-east-1,r7g.2xlarge,on_demand,NA,0.4284,USD,AWS Pricing API,2025-11-30T08:50:25.764215 +AWS,us-east-1,r7g.2xlarge,reserved_1y,all_upfront,0.413888,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:59.139346 +AWS,us-east-1,r7g.2xlarge,reserved_1y,no_upfront,0.413888,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:34.474900 +AWS,us-east-1,r7g.2xlarge,reserved_1y,partial_upfront,0.413888,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:25.603991 +AWS,us-east-1,r7g.2xlarge,reserved_3y,all_upfront,0.206963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:08.211813 +AWS,us-east-1,r7g.2xlarge,reserved_3y,no_upfront,0.206963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:36.102476 +AWS,us-east-1,r7g.2xlarge,reserved_3y,partial_upfront,0.206963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:34.591502 +AWS,us-east-1,r7g.2xlarge,spot,NA,0.192465,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972294 +AWS,us-east-1,r7g.4xlarge,on_demand,NA,0.8568,USD,AWS Pricing API,2025-11-30T08:50:16.082316 +AWS,us-east-1,r7g.4xlarge,reserved_1y,all_upfront,0.579338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:49.660354 +AWS,us-east-1,r7g.4xlarge,reserved_1y,no_upfront,0.579338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:24.918671 +AWS,us-east-1,r7g.4xlarge,reserved_1y,partial_upfront,0.579338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:16.052008 +AWS,us-east-1,r7g.4xlarge,reserved_3y,all_upfront,0.193113,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:58.719167 +AWS,us-east-1,r7g.4xlarge,reserved_3y,no_upfront,0.193113,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:26.638696 +AWS,us-east-1,r7g.4xlarge,reserved_3y,partial_upfront,0.193113,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:24.909333 +AWS,us-east-1,r7g.4xlarge,spot,NA,0.33333,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971944 +AWS,us-east-1,r7g.8xlarge,on_demand,NA,1.7136,USD,AWS Pricing API,2025-11-30T08:50:48.503452 +AWS,us-east-1,r7g.8xlarge,reserved_1y,all_upfront,1.655353,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:21.565219 +AWS,us-east-1,r7g.8xlarge,reserved_1y,no_upfront,1.655353,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:57.166869 +AWS,us-east-1,r7g.8xlarge,reserved_1y,partial_upfront,1.655353,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:48.663468 +AWS,us-east-1,r7g.8xlarge,reserved_3y,all_upfront,0.827651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:30.624520 +AWS,us-east-1,r7g.8xlarge,reserved_3y,no_upfront,0.827651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:58.629002 +AWS,us-east-1,r7g.8xlarge,reserved_3y,partial_upfront,0.827651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:57.574835 +AWS,us-east-1,r7g.8xlarge,spot,NA,0.681803,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972990 +AWS,us-east-1,r7g.large,on_demand,NA,0.1071,USD,AWS Pricing API,2025-11-30T08:50:42.849262 +AWS,us-east-1,r7g.large,reserved_1y,all_upfront,0.072374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:16.035672 +AWS,us-east-1,r7g.large,reserved_1y,no_upfront,0.072374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:51.544526 +AWS,us-east-1,r7g.large,reserved_1y,partial_upfront,0.072374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:43.042650 +AWS,us-east-1,r7g.large,reserved_3y,all_upfront,0.024125,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:25.092231 +AWS,us-east-1,r7g.large,reserved_3y,no_upfront,0.024125,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:53.072127 +AWS,us-east-1,r7g.large,reserved_3y,partial_upfront,0.024125,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:51.874528 +AWS,us-east-1,r7g.large,spot,NA,0.040562,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972826 +AWS,us-east-1,r7g.xlarge,on_demand,NA,0.2142,USD,AWS Pricing API,2025-11-30T08:50:45.320807 +AWS,us-east-1,r7g.xlarge,reserved_1y,all_upfront,0.1552,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:18.443432 +AWS,us-east-1,r7g.xlarge,reserved_1y,no_upfront,0.1552,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:53.989851 +AWS,us-east-1,r7g.xlarge,reserved_1y,partial_upfront,0.1552,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:45.502766 +AWS,us-east-1,r7g.xlarge,reserved_3y,all_upfront,0.1552,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:27.522097 +AWS,us-east-1,r7g.xlarge,reserved_3y,no_upfront,0.1552,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:55.511503 +AWS,us-east-1,r7g.xlarge,reserved_3y,partial_upfront,0.1552,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:54.372021 +AWS,us-east-1,r7g.xlarge,spot,NA,0.068463,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972905 +AWS,us-east-1,r7gd.12xlarge,on_demand,NA,3.2659,USD,AWS Pricing API,2025-11-30T08:51:07.406678 +AWS,us-east-1,r7gd.12xlarge,reserved_1y,all_upfront,1.954797,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:40.064960 +AWS,us-east-1,r7gd.12xlarge,reserved_1y,no_upfront,1.954797,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:16.093324 +AWS,us-east-1,r7gd.12xlarge,reserved_1y,partial_upfront,1.954797,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:07.492607 +AWS,us-east-1,r7gd.12xlarge,reserved_3y,all_upfront,1.303199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:49.091230 +AWS,us-east-1,r7gd.12xlarge,reserved_3y,no_upfront,1.303199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:17.307450 +AWS,us-east-1,r7gd.12xlarge,reserved_3y,partial_upfront,1.303199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:16.478800 +AWS,us-east-1,r7gd.12xlarge,spot,NA,1.066586,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973610 +AWS,us-east-1,r7gd.16xlarge,on_demand,NA,4.3546,USD,AWS Pricing API,2025-11-30T08:51:02.751647 +AWS,us-east-1,r7gd.16xlarge,reserved_1y,all_upfront,4.913584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:35.463714 +AWS,us-east-1,r7gd.16xlarge,reserved_1y,no_upfront,4.913584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:11.447871 +AWS,us-east-1,r7gd.16xlarge,reserved_1y,partial_upfront,4.913584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:02.917030 +AWS,us-east-1,r7gd.16xlarge,reserved_3y,all_upfront,1.637861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:44.509049 +AWS,us-east-1,r7gd.16xlarge,reserved_3y,no_upfront,1.637861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:12.666956 +AWS,us-east-1,r7gd.16xlarge,reserved_3y,partial_upfront,1.637861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:11.793924 +AWS,us-east-1,r7gd.16xlarge,spot,NA,1.271022,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973422 +AWS,us-east-1,r7gd.2xlarge,on_demand,NA,0.5443,USD,AWS Pricing API,2025-11-30T08:50:31.350592 +AWS,us-east-1,r7gd.2xlarge,reserved_1y,all_upfront,0.3949,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:04.693124 +AWS,us-east-1,r7gd.2xlarge,reserved_1y,no_upfront,0.3949,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:40.069277 +AWS,us-east-1,r7gd.2xlarge,reserved_1y,partial_upfront,0.3949,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:31.250122 +AWS,us-east-1,r7gd.2xlarge,reserved_3y,all_upfront,0.3949,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:13.726256 +AWS,us-east-1,r7gd.2xlarge,reserved_3y,no_upfront,0.3949,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:41.672910 +AWS,us-east-1,r7gd.2xlarge,reserved_3y,partial_upfront,0.3949,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:40.239899 +AWS,us-east-1,r7gd.2xlarge,spot,NA,0.263086,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972470 +AWS,us-east-1,r7gd.4xlarge,on_demand,NA,1.0886,USD,AWS Pricing API,2025-11-30T08:50:52.038811 +AWS,us-east-1,r7gd.4xlarge,reserved_1y,all_upfront,1.035726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:24.936598 +AWS,us-east-1,r7gd.4xlarge,reserved_1y,no_upfront,1.035726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:00.677937 +AWS,us-east-1,r7gd.4xlarge,reserved_1y,partial_upfront,1.035726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:52.095687 +AWS,us-east-1,r7gd.4xlarge,reserved_3y,all_upfront,0.517842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:33.981029 +AWS,us-east-1,r7gd.4xlarge,reserved_3y,no_upfront,0.517842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:02.052590 +AWS,us-east-1,r7gd.4xlarge,reserved_3y,partial_upfront,0.517842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:01.022282 +AWS,us-east-1,r7gd.4xlarge,spot,NA,0.517804,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973113 +AWS,us-east-1,r7gd.8xlarge,on_demand,NA,2.1773,USD,AWS Pricing API,2025-11-30T08:50:45.865103 +AWS,us-east-1,r7gd.8xlarge,reserved_1y,all_upfront,1.3684,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:18.977535 +AWS,us-east-1,r7gd.8xlarge,reserved_1y,no_upfront,1.3684,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:54.535258 +AWS,us-east-1,r7gd.8xlarge,reserved_1y,partial_upfront,1.3684,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:46.058831 +AWS,us-east-1,r7gd.8xlarge,reserved_3y,all_upfront,1.3684,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:28.058274 +AWS,us-east-1,r7gd.8xlarge,reserved_3y,no_upfront,1.3684,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:56.050742 +AWS,us-east-1,r7gd.8xlarge,reserved_3y,partial_upfront,1.3684,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:54.931317 +AWS,us-east-1,r7gd.8xlarge,spot,NA,0.854922,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972892 +AWS,us-east-1,r7gd.large,on_demand,NA,0.1361,USD,AWS Pricing API,2025-11-30T08:50:09.772227 +AWS,us-east-1,r7gd.large,reserved_1y,all_upfront,0.081453,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:43.285427 +AWS,us-east-1,r7gd.large,reserved_1y,no_upfront,0.081453,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:18.620916 +AWS,us-east-1,r7gd.large,reserved_1y,partial_upfront,0.081453,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:09.757396 +AWS,us-east-1,r7gd.large,reserved_3y,all_upfront,0.054284,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:52.512392 +AWS,us-east-1,r7gd.large,reserved_3y,no_upfront,0.054284,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:20.395324 +AWS,us-east-1,r7gd.large,reserved_3y,partial_upfront,0.054284,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:18.595225 +AWS,us-east-1,r7gd.large,spot,NA,0.050092,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971801 +AWS,us-east-1,r7gd.xlarge,on_demand,NA,0.2722,USD,AWS Pricing API,2025-11-30T08:50:19.396855 +AWS,us-east-1,r7gd.xlarge,reserved_1y,all_upfront,0.171,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:52.936832 +AWS,us-east-1,r7gd.xlarge,reserved_1y,no_upfront,0.171,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:28.184831 +AWS,us-east-1,r7gd.xlarge,reserved_1y,partial_upfront,0.171,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:19.336581 +AWS,us-east-1,r7gd.xlarge,reserved_3y,all_upfront,0.171,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:01.981133 +AWS,us-east-1,r7gd.xlarge,reserved_3y,no_upfront,0.171,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:29.886314 +AWS,us-east-1,r7gd.xlarge,reserved_3y,partial_upfront,0.171,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:28.239135 +AWS,us-east-1,r7gd.xlarge,spot,NA,0.124816,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972110 +AWS,us-east-1,r7i.12xlarge,on_demand,NA,3.1752,USD,AWS Pricing API,2025-11-30T08:50:55.085431 +AWS,us-east-1,r7i.12xlarge,reserved_1y,all_upfront,2.190874,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:27.914344 +AWS,us-east-1,r7i.12xlarge,reserved_1y,no_upfront,2.190874,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:03.783515 +AWS,us-east-1,r7i.12xlarge,reserved_1y,partial_upfront,2.190874,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:55.121696 +AWS,us-east-1,r7i.12xlarge,reserved_3y,all_upfront,1.460585,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:36.970478 +AWS,us-east-1,r7i.12xlarge,reserved_3y,no_upfront,1.460585,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:05.085560 +AWS,us-east-1,r7i.12xlarge,reserved_3y,partial_upfront,1.460585,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:04.087739 +AWS,us-east-1,r7i.12xlarge,spot,NA,1.159476,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973199 +AWS,us-east-1,r7i.16xlarge,on_demand,NA,4.2336,USD,AWS Pricing API,2025-11-30T08:50:53.153628 +AWS,us-east-1,r7i.16xlarge,reserved_1y,all_upfront,3.06724,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:26.029617 +AWS,us-east-1,r7i.16xlarge,reserved_1y,no_upfront,3.06724,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:01.821775 +AWS,us-east-1,r7i.16xlarge,reserved_1y,partial_upfront,3.06724,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:53.203348 +AWS,us-east-1,r7i.16xlarge,reserved_3y,all_upfront,3.06724,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:35.088021 +AWS,us-east-1,r7i.16xlarge,reserved_3y,no_upfront,3.06724,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:03.181497 +AWS,us-east-1,r7i.16xlarge,reserved_3y,partial_upfront,3.06724,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:02.137693 +AWS,us-east-1,r7i.16xlarge,spot,NA,1.574339,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973109 +AWS,us-east-1,r7i.24xlarge,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T08:50:49.799345 +AWS,us-east-1,r7i.24xlarge,reserved_1y,all_upfront,4.381758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:22.779342 +AWS,us-east-1,r7i.24xlarge,reserved_1y,no_upfront,4.381758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:58.428704 +AWS,us-east-1,r7i.24xlarge,reserved_1y,partial_upfront,4.381758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:49.907667 +AWS,us-east-1,r7i.24xlarge,reserved_3y,all_upfront,2.921179,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:31.829805 +AWS,us-east-1,r7i.24xlarge,reserved_3y,no_upfront,2.921179,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:59.845054 +AWS,us-east-1,r7i.24xlarge,reserved_3y,partial_upfront,2.921179,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:58.806007 +AWS,us-east-1,r7i.24xlarge,spot,NA,2.099696,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973010 +AWS,us-east-1,r7i.2xlarge,on_demand,NA,0.5292,USD,AWS Pricing API,2025-11-30T08:50:52.171659 +AWS,us-east-1,r7i.2xlarge,reserved_1y,all_upfront,0.357877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:25.070801 +AWS,us-east-1,r7i.2xlarge,reserved_1y,no_upfront,0.357877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:00.812553 +AWS,us-east-1,r7i.2xlarge,reserved_1y,partial_upfront,0.357877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:52.233199 +AWS,us-east-1,r7i.2xlarge,reserved_3y,all_upfront,0.119292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:34.117556 +AWS,us-east-1,r7i.2xlarge,reserved_3y,no_upfront,0.119292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:02.194243 +AWS,us-east-1,r7i.2xlarge,reserved_3y,partial_upfront,0.119292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:01.160991 +AWS,us-east-1,r7i.2xlarge,spot,NA,0.286784,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973119 +AWS,us-east-1,r7i.48xlarge,on_demand,NA,12.7008,USD,AWS Pricing API,2025-11-30T08:51:12.894868 +AWS,us-east-1,r7i.48xlarge,reserved_1y,all_upfront,8.763515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:45.512041 +AWS,us-east-1,r7i.48xlarge,reserved_1y,no_upfront,8.763515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:21.556807 +AWS,us-east-1,r7i.48xlarge,reserved_1y,partial_upfront,8.763515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:12.868984 +AWS,us-east-1,r7i.48xlarge,reserved_3y,all_upfront,5.842358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:54.467519 +AWS,us-east-1,r7i.48xlarge,reserved_3y,no_upfront,5.842358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:22.698770 +AWS,us-east-1,r7i.48xlarge,reserved_3y,partial_upfront,5.842358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:22.019443 +AWS,us-east-1,r7i.48xlarge,spot,NA,5.662703,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973736 +AWS,us-east-1,r7i.4xlarge,on_demand,NA,1.0584,USD,AWS Pricing API,2025-11-30T08:50:49.651182 +AWS,us-east-1,r7i.4xlarge,reserved_1y,all_upfront,0.76681,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:22.645953 +AWS,us-east-1,r7i.4xlarge,reserved_1y,no_upfront,0.76681,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:58.291034 +AWS,us-east-1,r7i.4xlarge,reserved_1y,partial_upfront,0.76681,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:49.772111 +AWS,us-east-1,r7i.4xlarge,reserved_3y,all_upfront,0.76681,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:31.696498 +AWS,us-east-1,r7i.4xlarge,reserved_3y,no_upfront,0.76681,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:59.706906 +AWS,us-east-1,r7i.4xlarge,reserved_3y,partial_upfront,0.76681,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:58.667888 +AWS,us-east-1,r7i.4xlarge,spot,NA,0.392952,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973021 +AWS,us-east-1,r7i.8xlarge,on_demand,NA,2.1168,USD,AWS Pricing API,2025-11-30T08:50:05.733563 +AWS,us-east-1,r7i.8xlarge,reserved_1y,all_upfront,1.333571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:39.358395 +AWS,us-east-1,r7i.8xlarge,reserved_1y,no_upfront,1.333571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:14.632964 +AWS,us-east-1,r7i.8xlarge,reserved_1y,partial_upfront,1.333571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:05.772448 +AWS,us-east-1,r7i.8xlarge,reserved_3y,all_upfront,0.88905,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:48.588036 +AWS,us-east-1,r7i.8xlarge,reserved_3y,no_upfront,0.88905,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:16.476905 +AWS,us-east-1,r7i.8xlarge,reserved_3y,partial_upfront,0.88905,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:14.585880 +AWS,us-east-1,r7i.8xlarge,spot,NA,0.647676,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971666 +AWS,us-east-1,r7i.large,on_demand,NA,0.1323,USD,AWS Pricing API,2025-11-30T08:50:20.207840 +AWS,us-east-1,r7i.large,reserved_1y,all_upfront,0.081735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:53.742467 +AWS,us-east-1,r7i.large,reserved_1y,no_upfront,0.081735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:28.996310 +AWS,us-east-1,r7i.large,reserved_1y,partial_upfront,0.081735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:20.152381 +AWS,us-east-1,r7i.large,reserved_3y,all_upfront,0.027245,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:02.786684 +AWS,us-east-1,r7i.large,reserved_3y,no_upfront,0.027245,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:30.685824 +AWS,us-east-1,r7i.large,reserved_3y,partial_upfront,0.027245,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:29.058028 +AWS,us-east-1,r7i.large,spot,NA,0.050116,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972122 +AWS,us-east-1,r7i.metal-24xl,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T08:50:36.546592 +AWS,us-east-1,r7i.metal-24xl,reserved_1y,all_upfront,4.20079,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:09.843357 +AWS,us-east-1,r7i.metal-24xl,reserved_1y,no_upfront,4.20079,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:45.255196 +AWS,us-east-1,r7i.metal-24xl,reserved_1y,partial_upfront,4.20079,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:36.705262 +AWS,us-east-1,r7i.metal-24xl,reserved_3y,all_upfront,4.20079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:18.867312 +AWS,us-east-1,r7i.metal-24xl,reserved_3y,no_upfront,4.20079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:46.860740 +AWS,us-east-1,r7i.metal-24xl,reserved_3y,partial_upfront,4.20079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:45.504709 +AWS,us-east-1,r7i.metal-24xl,spot,NA,2.261958,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972577 +AWS,us-east-1,r7i.metal-48xl,on_demand,NA,12.7008,USD,AWS Pricing API,2025-11-30T08:50:56.586888 +AWS,us-east-1,r7i.metal-48xl,reserved_1y,all_upfront,9.20173,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:29.398312 +AWS,us-east-1,r7i.metal-48xl,reserved_1y,no_upfront,9.20173,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:05.287530 +AWS,us-east-1,r7i.metal-48xl,reserved_1y,partial_upfront,9.20173,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:56.801174 +AWS,us-east-1,r7i.metal-48xl,reserved_3y,all_upfront,9.20173,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:38.460118 +AWS,us-east-1,r7i.metal-48xl,reserved_3y,no_upfront,9.20173,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:06.572411 +AWS,us-east-1,r7i.metal-48xl,reserved_3y,partial_upfront,9.20173,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:05.610967 +AWS,us-east-1,r7i.metal-48xl,spot,NA,2.977326,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973264 +AWS,us-east-1,r7i.xlarge,on_demand,NA,0.2646,USD,AWS Pricing API,2025-11-30T08:50:31.892376 +AWS,us-east-1,r7i.xlarge,reserved_1y,all_upfront,0.163356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:05.234372 +AWS,us-east-1,r7i.xlarge,reserved_1y,no_upfront,0.163356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:40.612507 +AWS,us-east-1,r7i.xlarge,reserved_1y,partial_upfront,0.163356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:32.012017 +AWS,us-east-1,r7i.xlarge,reserved_3y,all_upfront,0.054452,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:14.260849 +AWS,us-east-1,r7i.xlarge,reserved_3y,no_upfront,0.054452,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:42.213364 +AWS,us-east-1,r7i.xlarge,reserved_3y,partial_upfront,0.054452,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:40.782884 +AWS,us-east-1,r7i.xlarge,spot,NA,0.10613,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972490 +AWS,us-east-1,r7iz.12xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:50:47.516306 +AWS,us-east-1,r7iz.12xlarge,reserved_1y,all_upfront,2.11647,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:20.618026 +AWS,us-east-1,r7iz.12xlarge,reserved_1y,no_upfront,2.11647,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:56.173570 +AWS,us-east-1,r7iz.12xlarge,reserved_1y,partial_upfront,2.11647,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:47.692616 +AWS,us-east-1,r7iz.12xlarge,reserved_3y,all_upfront,2.11647,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:29.681985 +AWS,us-east-1,r7iz.12xlarge,reserved_3y,no_upfront,2.11647,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:57.673519 +AWS,us-east-1,r7iz.12xlarge,reserved_3y,partial_upfront,2.11647,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:56.607910 +AWS,us-east-1,r7iz.12xlarge,spot,NA,1.752065,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972936 +AWS,us-east-1,r7iz.16xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T08:51:12.487347 +AWS,us-east-1,r7iz.16xlarge,reserved_1y,all_upfront,4.036416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:45.108759 +AWS,us-east-1,r7iz.16xlarge,reserved_1y,no_upfront,4.036416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:21.151958 +AWS,us-east-1,r7iz.16xlarge,reserved_1y,partial_upfront,4.036416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:12.469896 +AWS,us-east-1,r7iz.16xlarge,reserved_3y,all_upfront,1.345472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:54.067387 +AWS,us-east-1,r7iz.16xlarge,reserved_3y,no_upfront,1.345472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:22.298442 +AWS,us-east-1,r7iz.16xlarge,reserved_3y,partial_upfront,1.345472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:21.601077 +AWS,us-east-1,r7iz.16xlarge,spot,NA,1.905611,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973709 +AWS,us-east-1,r7iz.2xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T08:50:52.306789 +AWS,us-east-1,r7iz.2xlarge,reserved_1y,all_upfront,0.437443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:25.205781 +AWS,us-east-1,r7iz.2xlarge,reserved_1y,no_upfront,0.437443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:00.959031 +AWS,us-east-1,r7iz.2xlarge,reserved_1y,partial_upfront,0.437443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:52.369102 +AWS,us-east-1,r7iz.2xlarge,reserved_3y,all_upfront,0.145814,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:34.251132 +AWS,us-east-1,r7iz.2xlarge,reserved_3y,no_upfront,0.145814,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:02.346538 +AWS,us-east-1,r7iz.2xlarge,reserved_3y,partial_upfront,0.145814,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:01.300013 +AWS,us-east-1,r7iz.2xlarge,spot,NA,0.324466,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973136 +AWS,us-east-1,r7iz.32xlarge,on_demand,NA,11.904,USD,AWS Pricing API,2025-11-30T08:51:10.553033 +AWS,us-east-1,r7iz.32xlarge,reserved_1y,all_upfront,7.49952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:43.196645 +AWS,us-east-1,r7iz.32xlarge,reserved_1y,no_upfront,7.49952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:19.235605 +AWS,us-east-1,r7iz.32xlarge,reserved_1y,partial_upfront,7.49952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:10.584916 +AWS,us-east-1,r7iz.32xlarge,reserved_3y,all_upfront,7.49952,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:52.190399 +AWS,us-east-1,r7iz.32xlarge,reserved_3y,no_upfront,7.49952,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:20.398876 +AWS,us-east-1,r7iz.32xlarge,reserved_3y,partial_upfront,7.49952,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:19.664619 +AWS,us-east-1,r7iz.32xlarge,spot,NA,4.320971,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973662 +AWS,us-east-1,r7iz.4xlarge,on_demand,NA,1.488,USD,AWS Pricing API,2025-11-30T08:51:08.642958 +AWS,us-east-1,r7iz.4xlarge,reserved_1y,all_upfront,1.08118,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:41.296592 +AWS,us-east-1,r7iz.4xlarge,reserved_1y,no_upfront,1.08118,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:17.328390 +AWS,us-east-1,r7iz.4xlarge,reserved_1y,partial_upfront,1.08118,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:08.706962 +AWS,us-east-1,r7iz.4xlarge,reserved_3y,all_upfront,1.08118,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:50.300201 +AWS,us-east-1,r7iz.4xlarge,reserved_3y,no_upfront,1.08118,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:18.510833 +AWS,us-east-1,r7iz.4xlarge,reserved_3y,partial_upfront,1.08118,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:17.728463 +AWS,us-east-1,r7iz.4xlarge,spot,NA,0.685204,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973642 +AWS,us-east-1,r7iz.8xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T08:50:10.866603 +AWS,us-east-1,r7iz.8xlarge,reserved_1y,all_upfront,2.16236,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:44.365625 +AWS,us-east-1,r7iz.8xlarge,reserved_1y,no_upfront,2.16236,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:19.716001 +AWS,us-east-1,r7iz.8xlarge,reserved_1y,partial_upfront,2.16236,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:10.852221 +AWS,us-east-1,r7iz.8xlarge,reserved_3y,all_upfront,2.16236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:53.593792 +AWS,us-east-1,r7iz.8xlarge,reserved_3y,no_upfront,2.16236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:21.506721 +AWS,us-east-1,r7iz.8xlarge,reserved_3y,partial_upfront,2.16236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:19.694377 +AWS,us-east-1,r7iz.8xlarge,spot,NA,1.151613,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971826 +AWS,us-east-1,r7iz.xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T08:50:57.267595 +AWS,us-east-1,r7iz.xlarge,reserved_1y,all_upfront,0.218721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:30.065970 +AWS,us-east-1,r7iz.xlarge,reserved_1y,no_upfront,0.218721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:05.980908 +AWS,us-east-1,r7iz.xlarge,reserved_1y,partial_upfront,0.218721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:57.486251 +AWS,us-east-1,r7iz.xlarge,reserved_3y,all_upfront,0.072907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:39.134729 +AWS,us-east-1,r7iz.xlarge,reserved_3y,no_upfront,0.072907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:07.250737 +AWS,us-east-1,r7iz.xlarge,reserved_3y,partial_upfront,0.072907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:06.297348 +AWS,us-east-1,r7iz.xlarge,spot,NA,0.144774,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973251 +AWS,us-east-1,r8g.12xlarge,on_demand,NA,2.82768,USD,AWS Pricing API,2025-11-30T08:50:38.730905 +AWS,us-east-1,r8g.12xlarge,reserved_1y,all_upfront,4.015525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:11.991428 +AWS,us-east-1,r8g.12xlarge,reserved_1y,no_upfront,4.015525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:47.445225 +AWS,us-east-1,r8g.12xlarge,reserved_1y,partial_upfront,4.015525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:38.922092 +AWS,us-east-1,r8g.12xlarge,reserved_3y,all_upfront,1.338508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:21.019757 +AWS,us-east-1,r8g.12xlarge,reserved_3y,no_upfront,1.338508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:49.015839 +AWS,us-east-1,r8g.12xlarge,reserved_3y,partial_upfront,1.338508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:47.708062 +AWS,us-east-1,r8g.12xlarge,spot,NA,1.065014,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972682 +AWS,us-east-1,r8g.16xlarge,on_demand,NA,3.77024,USD,AWS Pricing API,2025-11-30T08:51:02.204555 +AWS,us-east-1,r8g.16xlarge,reserved_1y,all_upfront,2.549429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:34.916067 +AWS,us-east-1,r8g.16xlarge,reserved_1y,no_upfront,2.549429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:10.896240 +AWS,us-east-1,r8g.16xlarge,reserved_1y,partial_upfront,2.549429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:02.379387 +AWS,us-east-1,r8g.16xlarge,reserved_3y,all_upfront,0.84981,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:43.973699 +AWS,us-east-1,r8g.16xlarge,reserved_3y,no_upfront,0.84981,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:12.134698 +AWS,us-east-1,r8g.16xlarge,reserved_3y,partial_upfront,0.84981,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:11.241750 +AWS,us-east-1,r8g.16xlarge,spot,NA,1.039744,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973434 +AWS,us-east-1,r8g.24xlarge,on_demand,NA,5.65536,USD,AWS Pricing API,2025-11-30T08:50:29.984002 +AWS,us-east-1,r8g.24xlarge,reserved_1y,all_upfront,3.824201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:03.349047 +AWS,us-east-1,r8g.24xlarge,reserved_1y,no_upfront,3.824201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:38.694229 +AWS,us-east-1,r8g.24xlarge,reserved_1y,partial_upfront,3.824201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:29.884165 +AWS,us-east-1,r8g.24xlarge,reserved_3y,all_upfront,1.274734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:12.381935 +AWS,us-east-1,r8g.24xlarge,reserved_3y,no_upfront,1.274734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:40.315325 +AWS,us-east-1,r8g.24xlarge,reserved_3y,partial_upfront,1.274734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:38.859972 +AWS,us-east-1,r8g.24xlarge,spot,NA,1.543248,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972431 +AWS,us-east-1,r8g.2xlarge,on_demand,NA,0.47128,USD,AWS Pricing API,2025-11-30T08:50:42.575372 +AWS,us-east-1,r8g.2xlarge,reserved_1y,all_upfront,0.669292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:15.760212 +AWS,us-east-1,r8g.2xlarge,reserved_1y,no_upfront,0.669292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:51.273723 +AWS,us-east-1,r8g.2xlarge,reserved_1y,partial_upfront,0.669292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:42.764213 +AWS,us-east-1,r8g.2xlarge,reserved_3y,all_upfront,0.223097,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:24.817785 +AWS,us-east-1,r8g.2xlarge,reserved_3y,no_upfront,0.223097,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:52.801323 +AWS,us-east-1,r8g.2xlarge,reserved_3y,partial_upfront,0.223097,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:51.599107 +AWS,us-east-1,r8g.2xlarge,spot,NA,0.222457,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972818 +AWS,us-east-1,r8g.48xlarge,on_demand,NA,11.31072,USD,AWS Pricing API,2025-11-30T08:50:28.488241 +AWS,us-east-1,r8g.48xlarge,reserved_1y,all_upfront,7.12578,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:01.852262 +AWS,us-east-1,r8g.48xlarge,reserved_1y,no_upfront,7.12578,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:37.195437 +AWS,us-east-1,r8g.48xlarge,reserved_1y,partial_upfront,7.12578,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:28.392330 +AWS,us-east-1,r8g.48xlarge,reserved_3y,all_upfront,4.750513,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:10.894523 +AWS,us-east-1,r8g.48xlarge,reserved_3y,no_upfront,4.750513,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:38.819106 +AWS,us-east-1,r8g.48xlarge,reserved_3y,partial_upfront,4.750513,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:37.350326 +AWS,us-east-1,r8g.48xlarge,spot,NA,3.201518,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972367 +AWS,us-east-1,r8g.4xlarge,on_demand,NA,0.94256,USD,AWS Pricing API,2025-11-30T08:50:47.090461 +AWS,us-east-1,r8g.4xlarge,reserved_1y,all_upfront,0.791776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:20.218010 +AWS,us-east-1,r8g.4xlarge,reserved_1y,no_upfront,0.791776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:55.760023 +AWS,us-east-1,r8g.4xlarge,reserved_1y,partial_upfront,0.791776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:47.288537 +AWS,us-east-1,r8g.4xlarge,reserved_3y,all_upfront,0.395885,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:29.277308 +AWS,us-east-1,r8g.4xlarge,reserved_3y,no_upfront,0.395885,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:57.271593 +AWS,us-east-1,r8g.4xlarge,reserved_3y,partial_upfront,0.395885,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:56.196041 +AWS,us-east-1,r8g.4xlarge,spot,NA,0.363163,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972944 +AWS,us-east-1,r8g.8xlarge,on_demand,NA,1.88512,USD,AWS Pricing API,2025-11-30T08:50:07.237025 +AWS,us-east-1,r8g.8xlarge,reserved_1y,all_upfront,1.583551,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:40.850609 +AWS,us-east-1,r8g.8xlarge,reserved_1y,no_upfront,1.583551,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:16.160169 +AWS,us-east-1,r8g.8xlarge,reserved_1y,partial_upfront,1.583551,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:07.279957 +AWS,us-east-1,r8g.8xlarge,reserved_3y,all_upfront,0.79177,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:50.090436 +AWS,us-east-1,r8g.8xlarge,reserved_3y,no_upfront,0.79177,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:17.952254 +AWS,us-east-1,r8g.8xlarge,reserved_3y,partial_upfront,0.79177,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:16.114720 +AWS,us-east-1,r8g.8xlarge,spot,NA,0.660716,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971710 +AWS,us-east-1,r8g.large,on_demand,NA,0.11782,USD,AWS Pricing API,2025-11-30T08:50:45.595883 +AWS,us-east-1,r8g.large,reserved_1y,all_upfront,0.081289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:18.710013 +AWS,us-east-1,r8g.large,reserved_1y,no_upfront,0.081289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:54.262022 +AWS,us-east-1,r8g.large,reserved_1y,partial_upfront,0.081289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:45.774251 +AWS,us-east-1,r8g.large,reserved_3y,all_upfront,0.054196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:27.789752 +AWS,us-east-1,r8g.large,reserved_3y,no_upfront,0.054196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:55.780569 +AWS,us-east-1,r8g.large,reserved_3y,partial_upfront,0.054196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:54.656478 +AWS,us-east-1,r8g.large,spot,NA,0.043678,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972912 +AWS,us-east-1,r8g.xlarge,on_demand,NA,0.23564,USD,AWS Pricing API,2025-11-30T08:50:28.076559 +AWS,us-east-1,r8g.xlarge,reserved_1y,all_upfront,0.197882,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:01.432117 +AWS,us-east-1,r8g.xlarge,reserved_1y,no_upfront,0.197882,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:36.782948 +AWS,us-east-1,r8g.xlarge,reserved_1y,partial_upfront,0.197882,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:27.983683 +AWS,us-east-1,r8g.xlarge,reserved_3y,all_upfront,0.098947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:10.488457 +AWS,us-east-1,r8g.xlarge,reserved_3y,no_upfront,0.098947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:38.412926 +AWS,us-east-1,r8g.xlarge,reserved_3y,partial_upfront,0.098947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:36.938097 +AWS,us-east-1,r8g.xlarge,spot,NA,0.094479,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972363 +AWS,us-east-1,r8gd.12xlarge,on_demand,NA,3.52704,USD,AWS Pricing API,2025-11-30T08:50:46.410632 +AWS,us-east-1,r8gd.12xlarge,spot,NA,1.294111,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972927 +AWS,us-east-1,r8gd.16xlarge,on_demand,NA,4.70272,USD,AWS Pricing API,2025-11-30T08:50:34.630556 +AWS,us-east-1,r8gd.16xlarge,spot,NA,2.044706,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972538 +AWS,us-east-1,r8gd.24xlarge,on_demand,NA,7.05408,USD,AWS Pricing API,2025-11-30T08:50:21.925003 +AWS,us-east-1,r8gd.24xlarge,spot,NA,2.579367,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972176 +AWS,us-east-1,r8gd.2xlarge,on_demand,NA,0.58784,USD,AWS Pricing API,2025-11-30T08:50:27.537557 +AWS,us-east-1,r8gd.2xlarge,spot,NA,0.235837,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972347 +AWS,us-east-1,r8gd.48xlarge,on_demand,NA,14.10816,USD,AWS Pricing API,2025-11-30T08:51:01.926364 +AWS,us-east-1,r8gd.48xlarge,spot,NA,5.02728,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973418 +AWS,us-east-1,r8gd.4xlarge,on_demand,NA,1.17568,USD,AWS Pricing API,2025-11-30T08:50:56.318522 +AWS,us-east-1,r8gd.4xlarge,spot,NA,0.550142,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973235 +AWS,us-east-1,r8gd.8xlarge,on_demand,NA,2.35136,USD,AWS Pricing API,2025-11-30T08:50:23.573548 +AWS,us-east-1,r8gd.8xlarge,spot,NA,1.109432,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972232 +AWS,us-east-1,r8gd.large,on_demand,NA,0.14696,USD,AWS Pricing API,2025-11-30T08:50:16.354595 +AWS,us-east-1,r8gd.large,spot,NA,0.050195,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972004 +AWS,us-east-1,r8gd.xlarge,on_demand,NA,0.29392,USD,AWS Pricing API,2025-11-30T08:50:17.173395 +AWS,us-east-1,r8gd.xlarge,spot,NA,0.116055,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972009 +AWS,us-east-1,r8i.12xlarge,on_demand,NA,3.33408,USD,AWS Pricing API,2025-11-30T08:50:23.438642 +AWS,us-east-1,r8i.12xlarge,spot,NA,1.272043,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972224 +AWS,us-east-1,r8i.16xlarge,on_demand,NA,4.44544,USD,AWS Pricing API,2025-11-30T08:50:56.046010 +AWS,us-east-1,r8i.16xlarge,spot,NA,1.643113,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973187 +AWS,us-east-1,r8i.24xlarge,on_demand,NA,6.66816,USD,AWS Pricing API,2025-11-30T08:51:01.788287 +AWS,us-east-1,r8i.24xlarge,spot,NA,2.533612,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973441 +AWS,us-east-1,r8i.2xlarge,on_demand,NA,0.55568,USD,AWS Pricing API,2025-11-30T08:50:49.941582 +AWS,us-east-1,r8i.2xlarge,spot,NA,0.225932,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973015 +AWS,us-east-1,r8i.48xlarge,on_demand,NA,13.33632,USD,AWS Pricing API,2025-11-30T08:51:09.186621 +AWS,us-east-1,r8i.48xlarge,spot,NA,4.430909,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973654 +AWS,us-east-1,r8i.4xlarge,on_demand,NA,1.11136,USD,AWS Pricing API,2025-11-30T08:50:45.180250 +AWS,us-east-1,r8i.4xlarge,spot,NA,0.476034,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972876 +AWS,us-east-1,r8i.8xlarge,on_demand,NA,2.22272,USD,AWS Pricing API,2025-11-30T08:50:38.318253 +AWS,us-east-1,r8i.8xlarge,spot,NA,0.934582,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972694 +AWS,us-east-1,r8i.large,on_demand,NA,0.13892,USD,AWS Pricing API,2025-11-30T08:50:02.261121 +AWS,us-east-1,r8i.large,spot,NA,0.041549,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971558 +AWS,us-east-1,r8i.xlarge,on_demand,NA,0.27784,USD,AWS Pricing API,2025-11-30T08:50:12.651255 +AWS,us-east-1,r8i.xlarge,spot,NA,0.105737,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971858 +AWS,us-east-1,x2gd.12xlarge,on_demand,NA,4.008,USD,AWS Pricing API,2025-11-30T08:50:48.357226 +AWS,us-east-1,x2gd.12xlarge,reserved_1y,all_upfront,2.352242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:21.429018 +AWS,us-east-1,x2gd.12xlarge,reserved_1y,no_upfront,2.352242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:57.019223 +AWS,us-east-1,x2gd.12xlarge,reserved_1y,partial_upfront,2.352242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:48.527857 +AWS,us-east-1,x2gd.12xlarge,reserved_3y,all_upfront,1.568147,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:30.486800 +AWS,us-east-1,x2gd.12xlarge,reserved_3y,no_upfront,1.568147,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:58.493149 +AWS,us-east-1,x2gd.12xlarge,reserved_3y,partial_upfront,1.568147,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:57.437450 +AWS,us-east-1,x2gd.12xlarge,spot,NA,1.476573,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973006 +AWS,us-east-1,x2gd.16xlarge,on_demand,NA,5.344,USD,AWS Pricing API,2025-11-30T08:50:57.402831 +AWS,us-east-1,x2gd.16xlarge,reserved_1y,all_upfront,3.380702,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:30.199384 +AWS,us-east-1,x2gd.16xlarge,reserved_1y,no_upfront,3.380702,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:06.118824 +AWS,us-east-1,x2gd.16xlarge,reserved_1y,partial_upfront,3.380702,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:57.620447 +AWS,us-east-1,x2gd.16xlarge,reserved_3y,all_upfront,1.690367,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:39.283074 +AWS,us-east-1,x2gd.16xlarge,reserved_3y,no_upfront,1.690367,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:07.389834 +AWS,us-east-1,x2gd.16xlarge,reserved_3y,partial_upfront,1.690367,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:06.434096 +AWS,us-east-1,x2gd.16xlarge,spot,NA,1.84068,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973260 +AWS,us-east-1,x2gd.2xlarge,on_demand,NA,0.668,USD,AWS Pricing API,2025-11-30T08:50:39.696712 +AWS,us-east-1,x2gd.2xlarge,reserved_1y,all_upfront,0.494,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:12.938395 +AWS,us-east-1,x2gd.2xlarge,reserved_1y,no_upfront,0.494,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:48.395159 +AWS,us-east-1,x2gd.2xlarge,reserved_1y,partial_upfront,0.494,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:39.875998 +AWS,us-east-1,x2gd.2xlarge,reserved_3y,all_upfront,0.494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:21.960257 +AWS,us-east-1,x2gd.2xlarge,reserved_3y,no_upfront,0.494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:49.974096 +AWS,us-east-1,x2gd.2xlarge,reserved_3y,partial_upfront,0.494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:48.678610 +AWS,us-east-1,x2gd.2xlarge,spot,NA,0.258342,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.972706 +AWS,us-east-1,x2gd.4xlarge,on_demand,NA,1.336,USD,AWS Pricing API,2025-11-30T08:51:07.001153 +AWS,us-east-1,x2gd.4xlarge,reserved_1y,all_upfront,0.922146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:39.659770 +AWS,us-east-1,x2gd.4xlarge,reserved_1y,no_upfront,0.922146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:15.684310 +AWS,us-east-1,x2gd.4xlarge,reserved_1y,partial_upfront,0.922146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:07.093896 +AWS,us-east-1,x2gd.4xlarge,reserved_3y,all_upfront,0.307382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:48.684051 +AWS,us-east-1,x2gd.4xlarge,reserved_3y,no_upfront,0.307382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:16.904600 +AWS,us-east-1,x2gd.4xlarge,reserved_3y,partial_upfront,0.307382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:16.068074 +AWS,us-east-1,x2gd.4xlarge,spot,NA,0.459821,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973574 +AWS,us-east-1,x2gd.8xlarge,on_demand,NA,2.672,USD,AWS Pricing API,2025-11-30T08:50:58.356897 +AWS,us-east-1,x2gd.8xlarge,reserved_1y,all_upfront,1.690294,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:31.141204 +AWS,us-east-1,x2gd.8xlarge,reserved_1y,no_upfront,1.690294,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:07.068253 +AWS,us-east-1,x2gd.8xlarge,reserved_1y,partial_upfront,1.690294,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:58.557124 +AWS,us-east-1,x2gd.8xlarge,reserved_3y,all_upfront,0.845165,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:40.224376 +AWS,us-east-1,x2gd.8xlarge,reserved_3y,no_upfront,0.845165,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:08.346992 +AWS,us-east-1,x2gd.8xlarge,reserved_3y,partial_upfront,0.845165,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:07.386799 +AWS,us-east-1,x2gd.8xlarge,spot,NA,0.895168,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973277 +AWS,us-east-1,x2gd.large,on_demand,NA,0.167,USD,AWS Pricing API,2025-11-30T08:50:59.308189 +AWS,us-east-1,x2gd.large,reserved_1y,all_upfront,0.097973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:32.093833 +AWS,us-east-1,x2gd.large,reserved_1y,no_upfront,0.097973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:08.032446 +AWS,us-east-1,x2gd.large,reserved_1y,partial_upfront,0.097973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:59.517033 +AWS,us-east-1,x2gd.large,reserved_3y,all_upfront,0.065324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:41.169060 +AWS,us-east-1,x2gd.large,reserved_3y,no_upfront,0.065324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:09.306591 +AWS,us-east-1,x2gd.large,reserved_3y,partial_upfront,0.065324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:08.348986 +AWS,us-east-1,x2gd.large,spot,NA,0.054338,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.973347 +AWS,us-east-1,x2gd.xlarge,on_demand,NA,0.334,USD,AWS Pricing API,2025-11-30T08:50:12.242872 +AWS,us-east-1,x2gd.xlarge,reserved_1y,all_upfront,0.192123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:45.859757 +AWS,us-east-1,x2gd.xlarge,reserved_1y,no_upfront,0.192123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:21.079024 +AWS,us-east-1,x2gd.xlarge,reserved_1y,partial_upfront,0.192123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:12.219883 +AWS,us-east-1,x2gd.xlarge,reserved_3y,all_upfront,0.064041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:54.944711 +AWS,us-east-1,x2gd.xlarge,reserved_3y,no_upfront,0.064041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:22.859061 +AWS,us-east-1,x2gd.xlarge,reserved_3y,partial_upfront,0.064041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:21.060423 +AWS,us-east-1,x2gd.xlarge,spot,NA,0.119439,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971862 +AWS,us-east-1,z1d.12xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:49:56.528943 +AWS,us-east-1,z1d.12xlarge,reserved_1y,all_upfront,5.76153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:30.713611 +AWS,us-east-1,z1d.12xlarge,reserved_1y,no_upfront,5.76153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:05.562549 +AWS,us-east-1,z1d.12xlarge,reserved_1y,partial_upfront,5.76153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:56.966209 +AWS,us-east-1,z1d.12xlarge,reserved_3y,all_upfront,1.92051,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:39.914200 +AWS,us-east-1,z1d.12xlarge,reserved_3y,no_upfront,1.92051,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:07.826807 +AWS,us-east-1,z1d.12xlarge,reserved_3y,partial_upfront,1.92051,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:05.734395 +AWS,us-east-1,z1d.12xlarge,spot,NA,1.436968,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971401 +AWS,us-east-1,z1d.2xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T08:50:00.185665 +AWS,us-east-1,z1d.2xlarge,reserved_1y,all_upfront,0.353,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:34.092678 +AWS,us-east-1,z1d.2xlarge,reserved_1y,no_upfront,0.353,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:09.270298 +AWS,us-east-1,z1d.2xlarge,reserved_1y,partial_upfront,0.353,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:00.413978 +AWS,us-east-1,z1d.2xlarge,reserved_3y,all_upfront,0.353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:43.317284 +AWS,us-east-1,z1d.2xlarge,reserved_3y,no_upfront,0.353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:11.188529 +AWS,us-east-1,z1d.2xlarge,reserved_3y,partial_upfront,0.353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:09.197303 +AWS,us-east-1,z1d.2xlarge,spot,NA,0.286187,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971480 +AWS,us-east-1,z1d.3xlarge,on_demand,NA,1.116,USD,AWS Pricing API,2025-11-30T08:49:59.027248 +AWS,us-east-1,z1d.3xlarge,reserved_1y,all_upfront,0.811,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:33.009615 +AWS,us-east-1,z1d.3xlarge,reserved_1y,no_upfront,0.811,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:08.118213 +AWS,us-east-1,z1d.3xlarge,reserved_1y,partial_upfront,0.811,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:59.304448 +AWS,us-east-1,z1d.3xlarge,reserved_3y,all_upfront,0.811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:42.227478 +AWS,us-east-1,z1d.3xlarge,reserved_3y,no_upfront,0.811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:10.110333 +AWS,us-east-1,z1d.3xlarge,reserved_3y,partial_upfront,0.811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:08.081813 +AWS,us-east-1,z1d.3xlarge,spot,NA,0.413322,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971463 +AWS,us-east-1,z1d.6xlarge,on_demand,NA,2.232,USD,AWS Pricing API,2025-11-30T08:49:59.161121 +AWS,us-east-1,z1d.6xlarge,reserved_1y,all_upfront,1.622,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:33.149783 +AWS,us-east-1,z1d.6xlarge,reserved_1y,no_upfront,1.622,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:08.252600 +AWS,us-east-1,z1d.6xlarge,reserved_1y,partial_upfront,1.622,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:59.439176 +AWS,us-east-1,z1d.6xlarge,reserved_3y,all_upfront,1.622,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:42.359447 +AWS,us-east-1,z1d.6xlarge,reserved_3y,no_upfront,1.622,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:10.242851 +AWS,us-east-1,z1d.6xlarge,reserved_3y,partial_upfront,1.622,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:08.218759 +AWS,us-east-1,z1d.6xlarge,spot,NA,0.862414,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971446 +AWS,us-east-1,z1d.large,on_demand,NA,0.186,USD,AWS Pricing API,2025-11-30T08:49:59.454407 +AWS,us-east-1,z1d.large,reserved_1y,all_upfront,0.088,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:33.419521 +AWS,us-east-1,z1d.large,reserved_1y,no_upfront,0.088,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:08.522840 +AWS,us-east-1,z1d.large,reserved_1y,partial_upfront,0.088,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:25:59.718589 +AWS,us-east-1,z1d.large,reserved_3y,all_upfront,0.088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:42.626985 +AWS,us-east-1,z1d.large,reserved_3y,no_upfront,0.088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:10.515069 +AWS,us-east-1,z1d.large,reserved_3y,partial_upfront,0.088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:08.496196 +AWS,us-east-1,z1d.large,spot,NA,0.057607,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971489 +AWS,us-east-1,z1d.xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T08:50:00.464558 +AWS,us-east-1,z1d.xlarge,reserved_1y,all_upfront,0.284128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:47:34.363310 +AWS,us-east-1,z1d.xlarge,reserved_1y,no_upfront,0.284128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:04:09.542627 +AWS,us-east-1,z1d.xlarge,reserved_1y,partial_upfront,0.284128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:26:00.690093 +AWS,us-east-1,z1d.xlarge,reserved_3y,all_upfront,0.142043,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:52:43.597056 +AWS,us-east-1,z1d.xlarge,reserved_3y,no_upfront,0.142043,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:09:11.469835 +AWS,us-east-1,z1d.xlarge,reserved_3y,partial_upfront,0.142043,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:31:09.468698 +AWS,us-east-1,z1d.xlarge,spot,NA,0.12398,USD,AWS EC2 API (90-day avg),2025-11-30T09:17:32.971510 +AWS,us-east-2,c5.12xlarge,on_demand,NA,2.04,USD,AWS Pricing API,2025-11-30T08:52:08.039332 +AWS,us-east-2,c5.12xlarge,reserved_1y,all_upfront,1.199543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:40.031098 +AWS,us-east-2,c5.12xlarge,reserved_1y,no_upfront,1.199543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:16.693962 +AWS,us-east-2,c5.12xlarge,reserved_1y,partial_upfront,1.199543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:07.267582 +AWS,us-east-2,c5.12xlarge,reserved_3y,all_upfront,0.399848,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:48.832000 +AWS,us-east-2,c5.12xlarge,reserved_3y,no_upfront,0.399848,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:17.228744 +AWS,us-east-2,c5.12xlarge,reserved_3y,partial_upfront,0.399848,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:17.715110 +AWS,us-east-2,c5.12xlarge,spot,NA,0.639146,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546967 +AWS,us-east-2,c5.18xlarge,on_demand,NA,3.06,USD,AWS Pricing API,2025-11-30T08:52:16.508639 +AWS,us-east-2,c5.18xlarge,reserved_1y,all_upfront,1.799315,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:48.470918 +AWS,us-east-2,c5.18xlarge,reserved_1y,no_upfront,1.799315,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:25.179588 +AWS,us-east-2,c5.18xlarge,reserved_1y,partial_upfront,1.799315,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:15.638142 +AWS,us-east-2,c5.18xlarge,reserved_3y,all_upfront,0.599772,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:57.188210 +AWS,us-east-2,c5.18xlarge,reserved_3y,no_upfront,0.599772,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:25.702165 +AWS,us-east-2,c5.18xlarge,reserved_3y,partial_upfront,0.599772,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:26.337683 +AWS,us-east-2,c5.18xlarge,spot,NA,0.948212,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547339 +AWS,us-east-2,c5.24xlarge,on_demand,NA,4.08,USD,AWS Pricing API,2025-11-30T08:51:20.533815 +AWS,us-east-2,c5.24xlarge,reserved_1y,all_upfront,5.361872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:53.083719 +AWS,us-east-2,c5.24xlarge,reserved_1y,no_upfront,5.361872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:29.236172 +AWS,us-east-2,c5.24xlarge,reserved_1y,partial_upfront,5.361872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:20.424182 +AWS,us-east-2,c5.24xlarge,reserved_3y,all_upfront,1.787291,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:02.074631 +AWS,us-east-2,c5.24xlarge,reserved_3y,no_upfront,1.787291,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:30.331662 +AWS,us-east-2,c5.24xlarge,reserved_3y,partial_upfront,1.787291,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:29.797129 +AWS,us-east-2,c5.24xlarge,spot,NA,1.264667,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544740 +AWS,us-east-2,c5.4xlarge,on_demand,NA,0.68,USD,AWS Pricing API,2025-11-30T08:52:00.741533 +AWS,us-east-2,c5.4xlarge,reserved_1y,all_upfront,0.463242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:32.816003 +AWS,us-east-2,c5.4xlarge,reserved_1y,no_upfront,0.463242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:09.429296 +AWS,us-east-2,c5.4xlarge,reserved_1y,partial_upfront,0.463242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:00.098579 +AWS,us-east-2,c5.4xlarge,reserved_3y,all_upfront,0.154414,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:41.652834 +AWS,us-east-2,c5.4xlarge,reserved_3y,no_upfront,0.154414,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:10.021155 +AWS,us-east-2,c5.4xlarge,reserved_3y,partial_upfront,0.154414,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:10.392528 +AWS,us-east-2,c5.4xlarge,spot,NA,0.206161,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546521 +AWS,us-east-2,c5.9xlarge,on_demand,NA,1.53,USD,AWS Pricing API,2025-11-30T08:51:19.852549 +AWS,us-east-2,c5.9xlarge,reserved_1y,all_upfront,0.964,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:52.400524 +AWS,us-east-2,c5.9xlarge,reserved_1y,no_upfront,0.964,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:28.548910 +AWS,us-east-2,c5.9xlarge,reserved_1y,partial_upfront,0.964,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:19.751949 +AWS,us-east-2,c5.9xlarge,reserved_3y,all_upfront,0.964,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:01.382692 +AWS,us-east-2,c5.9xlarge,reserved_3y,no_upfront,0.964,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:29.641509 +AWS,us-east-2,c5.9xlarge,reserved_3y,partial_upfront,0.964,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:29.108444 +AWS,us-east-2,c5.9xlarge,spot,NA,0.478678,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544732 +AWS,us-east-2,c5a.12xlarge,on_demand,NA,1.848,USD,AWS Pricing API,2025-11-30T08:52:17.060270 +AWS,us-east-2,c5a.12xlarge,reserved_1y,all_upfront,1.164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:49.023249 +AWS,us-east-2,c5a.12xlarge,reserved_1y,no_upfront,1.164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:25.730403 +AWS,us-east-2,c5a.12xlarge,reserved_1y,partial_upfront,1.164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:16.178799 +AWS,us-east-2,c5a.12xlarge,reserved_3y,all_upfront,1.164,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:57.727678 +AWS,us-east-2,c5a.12xlarge,reserved_3y,no_upfront,1.164,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:26.242602 +AWS,us-east-2,c5a.12xlarge,reserved_3y,partial_upfront,1.164,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:26.890630 +AWS,us-east-2,c5a.12xlarge,spot,NA,0.828596,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547306 +AWS,us-east-2,c5a.16xlarge,on_demand,NA,2.464,USD,AWS Pricing API,2025-11-30T08:51:36.003226 +AWS,us-east-2,c5a.16xlarge,reserved_1y,all_upfront,2.779338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:08.388751 +AWS,us-east-2,c5a.16xlarge,reserved_1y,no_upfront,2.779338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:44.716027 +AWS,us-east-2,c5a.16xlarge,reserved_1y,partial_upfront,2.779338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:35.797865 +AWS,us-east-2,c5a.16xlarge,reserved_3y,all_upfront,0.926446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:17.454528 +AWS,us-east-2,c5a.16xlarge,reserved_3y,no_upfront,0.926446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:45.687818 +AWS,us-east-2,c5a.16xlarge,reserved_3y,partial_upfront,0.926446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:45.472370 +AWS,us-east-2,c5a.16xlarge,spot,NA,0.874901,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545396 +AWS,us-east-2,c5a.24xlarge,on_demand,NA,3.696,USD,AWS Pricing API,2025-11-30T08:52:23.325181 +AWS,us-east-2,c5a.24xlarge,reserved_1y,all_upfront,4.857192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:55.244004 +AWS,us-east-2,c5a.24xlarge,reserved_1y,no_upfront,4.857192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:32.016301 +AWS,us-east-2,c5a.24xlarge,reserved_1y,partial_upfront,4.857192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:22.411243 +AWS,us-east-2,c5a.24xlarge,reserved_3y,all_upfront,1.619064,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:03.993519 +AWS,us-east-2,c5a.24xlarge,reserved_3y,no_upfront,1.619064,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:32.493046 +AWS,us-east-2,c5a.24xlarge,reserved_3y,partial_upfront,1.619064,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:33.256102 +AWS,us-east-2,c5a.24xlarge,spot,NA,1.354229,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547647 +AWS,us-east-2,c5a.2xlarge,on_demand,NA,0.308,USD,AWS Pricing API,2025-11-30T08:52:06.260257 +AWS,us-east-2,c5a.2xlarge,reserved_1y,all_upfront,0.194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:38.237801 +AWS,us-east-2,c5a.2xlarge,reserved_1y,no_upfront,0.194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:14.911515 +AWS,us-east-2,c5a.2xlarge,reserved_1y,partial_upfront,0.194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:05.521212 +AWS,us-east-2,c5a.2xlarge,reserved_3y,all_upfront,0.194,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:47.084210 +AWS,us-east-2,c5a.2xlarge,reserved_3y,no_upfront,0.194,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:15.468373 +AWS,us-east-2,c5a.2xlarge,reserved_3y,partial_upfront,0.194,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:15.912479 +AWS,us-east-2,c5a.2xlarge,spot,NA,0.119282,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546847 +AWS,us-east-2,c5a.4xlarge,on_demand,NA,0.616,USD,AWS Pricing API,2025-11-30T08:51:38.675060 +AWS,us-east-2,c5a.4xlarge,reserved_1y,all_upfront,0.297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:10.944558 +AWS,us-east-2,c5a.4xlarge,reserved_1y,no_upfront,0.297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:47.339910 +AWS,us-east-2,c5a.4xlarge,reserved_1y,partial_upfront,0.297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:38.381010 +AWS,us-east-2,c5a.4xlarge,reserved_3y,all_upfront,0.297,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:20.019939 +AWS,us-east-2,c5a.4xlarge,reserved_3y,no_upfront,0.297,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:48.258219 +AWS,us-east-2,c5a.4xlarge,reserved_3y,partial_upfront,0.297,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:48.120151 +AWS,us-east-2,c5a.4xlarge,spot,NA,0.314066,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545556 +AWS,us-east-2,c5a.8xlarge,on_demand,NA,1.232,USD,AWS Pricing API,2025-11-30T08:51:31.214779 +AWS,us-east-2,c5a.8xlarge,reserved_1y,all_upfront,0.595,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:03.659526 +AWS,us-east-2,c5a.8xlarge,reserved_1y,no_upfront,0.595,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:39.911280 +AWS,us-east-2,c5a.8xlarge,reserved_1y,partial_upfront,0.595,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:31.025107 +AWS,us-east-2,c5a.8xlarge,reserved_3y,all_upfront,0.595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:12.653324 +AWS,us-east-2,c5a.8xlarge,reserved_3y,no_upfront,0.595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:40.941562 +AWS,us-east-2,c5a.8xlarge,reserved_3y,partial_upfront,0.595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:40.601091 +AWS,us-east-2,c5a.8xlarge,spot,NA,0.456391,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545224 +AWS,us-east-2,c5a.xlarge,on_demand,NA,0.154,USD,AWS Pricing API,2025-11-30T08:51:22.045616 +AWS,us-east-2,c5a.xlarge,reserved_1y,all_upfront,0.112,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:54.580510 +AWS,us-east-2,c5a.xlarge,reserved_1y,no_upfront,0.112,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:30.726364 +AWS,us-east-2,c5a.xlarge,reserved_1y,partial_upfront,0.112,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:21.915524 +AWS,us-east-2,c5a.xlarge,reserved_3y,all_upfront,0.112,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:03.567187 +AWS,us-east-2,c5a.xlarge,reserved_3y,no_upfront,0.112,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:31.826564 +AWS,us-east-2,c5a.xlarge,reserved_3y,partial_upfront,0.112,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:31.315477 +AWS,us-east-2,c5a.xlarge,spot,NA,0.074346,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544773 +AWS,us-east-2,c5ad.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T08:52:27.695885 +AWS,us-east-2,c5ad.12xlarge,reserved_1y,all_upfront,1.213584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:59.560620 +AWS,us-east-2,c5ad.12xlarge,reserved_1y,no_upfront,1.213584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:36.377506 +AWS,us-east-2,c5ad.12xlarge,reserved_1y,partial_upfront,1.213584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:26.759703 +AWS,us-east-2,c5ad.12xlarge,reserved_3y,all_upfront,0.404528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:08.312457 +AWS,us-east-2,c5ad.12xlarge,reserved_3y,no_upfront,0.404528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:36.807688 +AWS,us-east-2,c5ad.12xlarge,reserved_3y,partial_upfront,0.404528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:37.678732 +AWS,us-east-2,c5ad.12xlarge,spot,NA,0.771512,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547820 +AWS,us-east-2,c5ad.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T08:52:19.371717 +AWS,us-east-2,c5ad.16xlarge,reserved_1y,all_upfront,1.734,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:51.310682 +AWS,us-east-2,c5ad.16xlarge,reserved_1y,no_upfront,1.734,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:28.038027 +AWS,us-east-2,c5ad.16xlarge,reserved_1y,partial_upfront,1.734,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:18.464742 +AWS,us-east-2,c5ad.16xlarge,reserved_3y,all_upfront,1.734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:00.019119 +AWS,us-east-2,c5ad.16xlarge,reserved_3y,no_upfront,1.734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:28.555322 +AWS,us-east-2,c5ad.16xlarge,reserved_3y,partial_upfront,1.734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:29.219378 +AWS,us-east-2,c5ad.16xlarge,spot,NA,0.936367,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547444 +AWS,us-east-2,c5ad.24xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T08:51:38.820586 +AWS,us-east-2,c5ad.24xlarge,reserved_1y,all_upfront,2.601,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:11.078758 +AWS,us-east-2,c5ad.24xlarge,reserved_1y,no_upfront,2.601,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:47.475034 +AWS,us-east-2,c5ad.24xlarge,reserved_1y,partial_upfront,2.601,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:38.515089 +AWS,us-east-2,c5ad.24xlarge,reserved_3y,all_upfront,2.601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:20.155052 +AWS,us-east-2,c5ad.24xlarge,reserved_3y,no_upfront,2.601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:48.393433 +AWS,us-east-2,c5ad.24xlarge,reserved_3y,partial_upfront,2.601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:48.258191 +AWS,us-east-2,c5ad.24xlarge,spot,NA,1.112815,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545507 +AWS,us-east-2,c5ad.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T08:51:28.053321 +AWS,us-east-2,c5ad.2xlarge,reserved_1y,all_upfront,0.217,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:00.537691 +AWS,us-east-2,c5ad.2xlarge,reserved_1y,no_upfront,0.217,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:36.770252 +AWS,us-east-2,c5ad.2xlarge,reserved_1y,partial_upfront,0.217,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:27.891439 +AWS,us-east-2,c5ad.2xlarge,reserved_3y,all_upfront,0.217,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:09.535598 +AWS,us-east-2,c5ad.2xlarge,reserved_3y,no_upfront,0.217,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:37.815471 +AWS,us-east-2,c5ad.2xlarge,reserved_3y,partial_upfront,0.217,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:37.403432 +AWS,us-east-2,c5ad.2xlarge,spot,NA,0.15068,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545087 +AWS,us-east-2,c5ad.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T08:52:28.253274 +AWS,us-east-2,c5ad.4xlarge,reserved_1y,all_upfront,0.412393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:00.103636 +AWS,us-east-2,c5ad.4xlarge,reserved_1y,no_upfront,0.412393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:36.923274 +AWS,us-east-2,c5ad.4xlarge,reserved_1y,partial_upfront,0.412393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:27.297037 +AWS,us-east-2,c5ad.4xlarge,reserved_3y,all_upfront,0.274798,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:08.857106 +AWS,us-east-2,c5ad.4xlarge,reserved_3y,no_upfront,0.274798,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:37.351653 +AWS,us-east-2,c5ad.4xlarge,reserved_3y,partial_upfront,0.274798,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:38.230815 +AWS,us-east-2,c5ad.4xlarge,spot,NA,0.285237,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547826 +AWS,us-east-2,c5ad.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T08:51:38.402447 +AWS,us-east-2,c5ad.8xlarge,reserved_1y,all_upfront,1.552169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:10.670507 +AWS,us-east-2,c5ad.8xlarge,reserved_1y,no_upfront,1.552169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:47.045150 +AWS,us-east-2,c5ad.8xlarge,reserved_1y,partial_upfront,1.552169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:38.098691 +AWS,us-east-2,c5ad.8xlarge,reserved_3y,all_upfront,0.51739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:19.752977 +AWS,us-east-2,c5ad.8xlarge,reserved_3y,no_upfront,0.51739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:47.989651 +AWS,us-east-2,c5ad.8xlarge,reserved_3y,partial_upfront,0.51739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:47.837011 +AWS,us-east-2,c5ad.8xlarge,spot,NA,0.55002,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545562 +AWS,us-east-2,c5ad.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:52:17.734561 +AWS,us-east-2,c5ad.xlarge,reserved_1y,all_upfront,0.226598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:49.696686 +AWS,us-east-2,c5ad.xlarge,reserved_1y,no_upfront,0.226598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:26.405740 +AWS,us-east-2,c5ad.xlarge,reserved_1y,partial_upfront,0.226598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:16.848894 +AWS,us-east-2,c5ad.xlarge,reserved_3y,all_upfront,0.075533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:58.401423 +AWS,us-east-2,c5ad.xlarge,reserved_3y,no_upfront,0.075533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:26.920631 +AWS,us-east-2,c5ad.xlarge,reserved_3y,partial_upfront,0.075533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:27.573895 +AWS,us-east-2,c5ad.xlarge,spot,NA,0.064601,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547410 +AWS,us-east-2,c5d.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:52:29.367416 +AWS,us-east-2,c5d.12xlarge,reserved_1y,all_upfront,1.671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:01.184953 +AWS,us-east-2,c5d.12xlarge,reserved_1y,no_upfront,1.671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:38.025357 +AWS,us-east-2,c5d.12xlarge,reserved_1y,partial_upfront,1.671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:28.373465 +AWS,us-east-2,c5d.12xlarge,reserved_3y,all_upfront,1.671,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:09.937857 +AWS,us-east-2,c5d.12xlarge,reserved_3y,no_upfront,1.671,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:38.438480 +AWS,us-east-2,c5d.12xlarge,reserved_3y,partial_upfront,1.671,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:39.360301 +AWS,us-east-2,c5d.12xlarge,spot,NA,0.791026,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547884 +AWS,us-east-2,c5d.18xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T08:51:52.532758 +AWS,us-east-2,c5d.18xlarge,reserved_1y,all_upfront,2.032078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:24.451375 +AWS,us-east-2,c5d.18xlarge,reserved_1y,no_upfront,2.032078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:01.172480 +AWS,us-east-2,c5d.18xlarge,reserved_1y,partial_upfront,2.032078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:51.981330 +AWS,us-east-2,c5d.18xlarge,reserved_3y,all_upfront,0.677359,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:33.555690 +AWS,us-east-2,c5d.18xlarge,reserved_3y,no_upfront,0.677359,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:01.850633 +AWS,us-east-2,c5d.18xlarge,reserved_3y,partial_upfront,0.677359,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:02.067457 +AWS,us-east-2,c5d.18xlarge,spot,NA,1.045448,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546137 +AWS,us-east-2,c5d.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:51:24.774277 +AWS,us-east-2,c5d.24xlarge,reserved_1y,all_upfront,3.183667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:57.291170 +AWS,us-east-2,c5d.24xlarge,reserved_1y,no_upfront,3.183667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:33.474751 +AWS,us-east-2,c5d.24xlarge,reserved_1y,partial_upfront,3.183667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:24.612522 +AWS,us-east-2,c5d.24xlarge,reserved_3y,all_upfront,2.122556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:06.280692 +AWS,us-east-2,c5d.24xlarge,reserved_3y,no_upfront,2.122556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:34.554012 +AWS,us-east-2,c5d.24xlarge,reserved_3y,partial_upfront,2.122556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:34.088658 +AWS,us-east-2,c5d.24xlarge,spot,NA,1.350976,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544894 +AWS,us-east-2,c5d.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:52:12.975487 +AWS,us-east-2,c5d.2xlarge,reserved_1y,all_upfront,0.339566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:44.922009 +AWS,us-east-2,c5d.2xlarge,reserved_1y,no_upfront,0.339566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:21.621919 +AWS,us-east-2,c5d.2xlarge,reserved_1y,partial_upfront,0.339566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:12.125429 +AWS,us-east-2,c5d.2xlarge,reserved_3y,all_upfront,0.169855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:53.684815 +AWS,us-east-2,c5d.2xlarge,reserved_3y,no_upfront,0.169855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:22.185281 +AWS,us-east-2,c5d.2xlarge,reserved_3y,partial_upfront,0.169855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:22.737828 +AWS,us-east-2,c5d.2xlarge,spot,NA,0.147015,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547134 +AWS,us-east-2,c5d.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:51:32.452181 +AWS,us-east-2,c5d.4xlarge,reserved_1y,all_upfront,0.533667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:04.883637 +AWS,us-east-2,c5d.4xlarge,reserved_1y,no_upfront,0.533667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:41.148943 +AWS,us-east-2,c5d.4xlarge,reserved_1y,partial_upfront,0.533667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:32.246268 +AWS,us-east-2,c5d.4xlarge,reserved_3y,all_upfront,0.355889,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:13.938447 +AWS,us-east-2,c5d.4xlarge,reserved_3y,no_upfront,0.355889,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:42.171285 +AWS,us-east-2,c5d.4xlarge,reserved_3y,partial_upfront,0.355889,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:41.840290 +AWS,us-east-2,c5d.4xlarge,spot,NA,0.301022,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545274 +AWS,us-east-2,c5d.9xlarge,on_demand,NA,1.728,USD,AWS Pricing API,2025-11-30T08:52:02.397934 +AWS,us-east-2,c5d.9xlarge,reserved_1y,all_upfront,1.328233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:34.432684 +AWS,us-east-2,c5d.9xlarge,reserved_1y,no_upfront,1.328233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:11.076196 +AWS,us-east-2,c5d.9xlarge,reserved_1y,partial_upfront,1.328233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:01.723326 +AWS,us-east-2,c5d.9xlarge,reserved_3y,all_upfront,0.664078,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:43.272507 +AWS,us-east-2,c5d.9xlarge,reserved_3y,no_upfront,0.664078,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:11.646667 +AWS,us-east-2,c5d.9xlarge,reserved_3y,partial_upfront,0.664078,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:12.045617 +AWS,us-east-2,c5d.9xlarge,spot,NA,0.644181,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546578 +AWS,us-east-2,c5d.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:51:57.990764 +AWS,us-east-2,c5d.xlarge,reserved_1y,all_upfront,0.115648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:30.094072 +AWS,us-east-2,c5d.xlarge,reserved_1y,no_upfront,0.115648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:06.689323 +AWS,us-east-2,c5d.xlarge,reserved_1y,partial_upfront,0.115648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:57.396060 +AWS,us-east-2,c5d.xlarge,reserved_3y,all_upfront,0.077216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:38.946102 +AWS,us-east-2,c5d.xlarge,reserved_3y,no_upfront,0.077216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:07.319523 +AWS,us-east-2,c5d.xlarge,reserved_3y,partial_upfront,0.077216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:07.616144 +AWS,us-east-2,c5d.xlarge,spot,NA,0.072174,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546397 +AWS,us-east-2,c5n.18xlarge,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:52:18.557314 +AWS,us-east-2,c5n.18xlarge,reserved_1y,all_upfront,2.286187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:50.509373 +AWS,us-east-2,c5n.18xlarge,reserved_1y,no_upfront,2.286187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:27.225827 +AWS,us-east-2,c5n.18xlarge,reserved_1y,partial_upfront,2.286187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:17.665335 +AWS,us-east-2,c5n.18xlarge,reserved_3y,all_upfront,0.762062,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:59.218902 +AWS,us-east-2,c5n.18xlarge,reserved_3y,no_upfront,0.762062,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:27.746726 +AWS,us-east-2,c5n.18xlarge,reserved_3y,partial_upfront,0.762062,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:28.400503 +AWS,us-east-2,c5n.18xlarge,spot,NA,1.359288,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547377 +AWS,us-east-2,c5n.2xlarge,on_demand,NA,0.432,USD,AWS Pricing API,2025-11-30T08:52:28.812945 +AWS,us-east-2,c5n.2xlarge,reserved_1y,all_upfront,0.292123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:00.643751 +AWS,us-east-2,c5n.2xlarge,reserved_1y,no_upfront,0.292123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:37.477057 +AWS,us-east-2,c5n.2xlarge,reserved_1y,partial_upfront,0.292123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:27.838090 +AWS,us-east-2,c5n.2xlarge,reserved_3y,all_upfront,0.097374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:09.395655 +AWS,us-east-2,c5n.2xlarge,reserved_3y,no_upfront,0.097374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:37.894870 +AWS,us-east-2,c5n.2xlarge,reserved_3y,partial_upfront,0.097374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:38.798513 +AWS,us-east-2,c5n.2xlarge,spot,NA,0.195173,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547909 +AWS,us-east-2,c5n.4xlarge,on_demand,NA,0.864,USD,AWS Pricing API,2025-11-30T08:52:04.879879 +AWS,us-east-2,c5n.4xlarge,reserved_1y,all_upfront,0.626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:36.879627 +AWS,us-east-2,c5n.4xlarge,reserved_1y,no_upfront,0.626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:13.542978 +AWS,us-east-2,c5n.4xlarge,reserved_1y,partial_upfront,0.626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:04.162101 +AWS,us-east-2,c5n.4xlarge,reserved_3y,all_upfront,0.626,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:45.722817 +AWS,us-east-2,c5n.4xlarge,reserved_3y,no_upfront,0.626,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:14.116041 +AWS,us-east-2,c5n.4xlarge,reserved_3y,partial_upfront,0.626,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:14.530643 +AWS,us-east-2,c5n.4xlarge,spot,NA,0.328069,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546790 +AWS,us-east-2,c5n.9xlarge,on_demand,NA,1.944,USD,AWS Pricing API,2025-11-30T08:52:18.421251 +AWS,us-east-2,c5n.9xlarge,reserved_1y,all_upfront,2.213014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:50.374632 +AWS,us-east-2,c5n.9xlarge,reserved_1y,no_upfront,2.213014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:27.089015 +AWS,us-east-2,c5n.9xlarge,reserved_1y,partial_upfront,2.213014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:17.529876 +AWS,us-east-2,c5n.9xlarge,reserved_3y,all_upfront,0.737671,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:59.080929 +AWS,us-east-2,c5n.9xlarge,reserved_3y,no_upfront,0.737671,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:27.606958 +AWS,us-east-2,c5n.9xlarge,reserved_3y,partial_upfront,0.737671,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:28.262625 +AWS,us-east-2,c5n.9xlarge,spot,NA,0.811093,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547365 +AWS,us-east-2,c5n.metal,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:51:26.415173 +AWS,us-east-2,c5n.metal,reserved_1y,all_upfront,2.332438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:58.915497 +AWS,us-east-2,c5n.metal,reserved_1y,no_upfront,2.332438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:35.117753 +AWS,us-east-2,c5n.metal,reserved_1y,partial_upfront,2.332438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:26.255845 +AWS,us-east-2,c5n.metal,reserved_3y,all_upfront,1.554813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:07.916054 +AWS,us-east-2,c5n.metal,reserved_3y,no_upfront,1.554813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:36.181885 +AWS,us-east-2,c5n.metal,reserved_3y,partial_upfront,1.554813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:35.738653 +AWS,us-east-2,c5n.metal,spot,NA,1.070067,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544985 +AWS,us-east-2,c5n.xlarge,on_demand,NA,0.216,USD,AWS Pricing API,2025-11-30T08:52:20.460896 +AWS,us-east-2,c5n.xlarge,reserved_1y,all_upfront,0.144904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:52.395938 +AWS,us-east-2,c5n.xlarge,reserved_1y,no_upfront,0.144904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:29.133019 +AWS,us-east-2,c5n.xlarge,reserved_1y,partial_upfront,0.144904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:19.545760 +AWS,us-east-2,c5n.xlarge,reserved_3y,all_upfront,0.072301,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:01.124020 +AWS,us-east-2,c5n.xlarge,reserved_3y,no_upfront,0.072301,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:29.631872 +AWS,us-east-2,c5n.xlarge,reserved_3y,partial_upfront,0.072301,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:30.340462 +AWS,us-east-2,c5n.xlarge,spot,NA,0.097848,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547522 +AWS,us-east-2,c6g.12xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T08:51:31.768619 +AWS,us-east-2,c6g.12xlarge,reserved_1y,all_upfront,2.131279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:04.203463 +AWS,us-east-2,c6g.12xlarge,reserved_1y,no_upfront,2.131279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:40.462121 +AWS,us-east-2,c6g.12xlarge,reserved_1y,partial_upfront,2.131279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:31.572404 +AWS,us-east-2,c6g.12xlarge,reserved_3y,all_upfront,0.710426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:13.195281 +AWS,us-east-2,c6g.12xlarge,reserved_3y,no_upfront,0.710426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:41.484341 +AWS,us-east-2,c6g.12xlarge,reserved_3y,partial_upfront,0.710426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:41.150980 +AWS,us-east-2,c6g.12xlarge,spot,NA,0.674468,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545236 +AWS,us-east-2,c6g.16xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:51:50.053602 +AWS,us-east-2,c6g.16xlarge,reserved_1y,all_upfront,1.6012,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:22.018150 +AWS,us-east-2,c6g.16xlarge,reserved_1y,no_upfront,1.6012,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:58.696722 +AWS,us-east-2,c6g.16xlarge,reserved_1y,partial_upfront,1.6012,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:49.519477 +AWS,us-east-2,c6g.16xlarge,reserved_3y,all_upfront,1.6012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:31.122504 +AWS,us-east-2,c6g.16xlarge,reserved_3y,no_upfront,1.6012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:59.367379 +AWS,us-east-2,c6g.16xlarge,reserved_3y,partial_upfront,1.6012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:59.567240 +AWS,us-east-2,c6g.16xlarge,spot,NA,0.841823,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545990 +AWS,us-east-2,c6g.2xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T08:52:02.260380 +AWS,us-east-2,c6g.2xlarge,reserved_1y,all_upfront,0.2001,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:34.298754 +AWS,us-east-2,c6g.2xlarge,reserved_1y,no_upfront,0.2001,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:10.940718 +AWS,us-east-2,c6g.2xlarge,reserved_1y,partial_upfront,0.2001,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:01.588004 +AWS,us-east-2,c6g.2xlarge,reserved_3y,all_upfront,0.2001,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:43.139146 +AWS,us-east-2,c6g.2xlarge,reserved_3y,no_upfront,0.2001,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:11.510960 +AWS,us-east-2,c6g.2xlarge,reserved_3y,partial_upfront,0.2001,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:11.909891 +AWS,us-east-2,c6g.2xlarge,spot,NA,0.111116,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546618 +AWS,us-east-2,c6g.4xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T08:52:21.273198 +AWS,us-east-2,c6g.4xlarge,reserved_1y,all_upfront,0.326442,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:53.209509 +AWS,us-east-2,c6g.4xlarge,reserved_1y,no_upfront,0.326442,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:29.953043 +AWS,us-east-2,c6g.4xlarge,reserved_1y,partial_upfront,0.326442,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:20.364157 +AWS,us-east-2,c6g.4xlarge,reserved_3y,all_upfront,0.217614,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:01.965093 +AWS,us-east-2,c6g.4xlarge,reserved_3y,no_upfront,0.217614,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:30.441681 +AWS,us-east-2,c6g.4xlarge,reserved_3y,partial_upfront,0.217614,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:31.186270 +AWS,us-east-2,c6g.4xlarge,spot,NA,0.239692,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547495 +AWS,us-east-2,c6g.8xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T08:51:48.407131 +AWS,us-east-2,c6g.8xlarge,reserved_1y,all_upfront,0.639726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:20.407987 +AWS,us-east-2,c6g.8xlarge,reserved_1y,no_upfront,0.639726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:57.048782 +AWS,us-east-2,c6g.8xlarge,reserved_1y,partial_upfront,0.639726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:47.896199 +AWS,us-east-2,c6g.8xlarge,reserved_3y,all_upfront,0.213242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:29.478687 +AWS,us-east-2,c6g.8xlarge,reserved_3y,no_upfront,0.213242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:57.736579 +AWS,us-east-2,c6g.8xlarge,reserved_3y,partial_upfront,0.213242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:57.896283 +AWS,us-east-2,c6g.8xlarge,spot,NA,0.697442,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545936 +AWS,us-east-2,c6g.xlarge,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T08:52:26.739698 +AWS,us-east-2,c6g.xlarge,reserved_1y,all_upfront,0.108821,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:58.618366 +AWS,us-east-2,c6g.xlarge,reserved_1y,no_upfront,0.108821,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:35.426561 +AWS,us-east-2,c6g.xlarge,reserved_1y,partial_upfront,0.108821,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:25.813016 +AWS,us-east-2,c6g.xlarge,reserved_3y,all_upfront,0.054407,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:07.368792 +AWS,us-east-2,c6g.xlarge,reserved_3y,no_upfront,0.054407,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:35.870787 +AWS,us-east-2,c6g.xlarge,reserved_3y,partial_upfront,0.054407,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:36.706280 +AWS,us-east-2,c6g.xlarge,spot,NA,0.054509,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547769 +AWS,us-east-2,c6gd.12xlarge,on_demand,NA,1.8432,USD,AWS Pricing API,2025-11-30T08:51:26.551180 +AWS,us-east-2,c6gd.12xlarge,reserved_1y,all_upfront,1.248174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:59.051018 +AWS,us-east-2,c6gd.12xlarge,reserved_1y,no_upfront,1.248174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:35.255354 +AWS,us-east-2,c6gd.12xlarge,reserved_1y,partial_upfront,1.248174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:26.392115 +AWS,us-east-2,c6gd.12xlarge,reserved_3y,all_upfront,0.416058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:08.053247 +AWS,us-east-2,c6gd.12xlarge,reserved_3y,no_upfront,0.416058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:36.317036 +AWS,us-east-2,c6gd.12xlarge,reserved_3y,partial_upfront,0.416058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:35.875954 +AWS,us-east-2,c6gd.12xlarge,spot,NA,0.466585,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545004 +AWS,us-east-2,c6gd.16xlarge,on_demand,NA,2.4576,USD,AWS Pricing API,2025-11-30T08:52:05.448466 +AWS,us-east-2,c6gd.16xlarge,reserved_1y,all_upfront,1.7831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:37.422617 +AWS,us-east-2,c6gd.16xlarge,reserved_1y,no_upfront,1.7831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:14.087074 +AWS,us-east-2,c6gd.16xlarge,reserved_1y,partial_upfront,1.7831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:04.706265 +AWS,us-east-2,c6gd.16xlarge,reserved_3y,all_upfront,1.7831,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:46.264643 +AWS,us-east-2,c6gd.16xlarge,reserved_3y,no_upfront,1.7831,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:14.659916 +AWS,us-east-2,c6gd.16xlarge,reserved_3y,partial_upfront,1.7831,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:15.088048 +AWS,us-east-2,c6gd.16xlarge,spot,NA,0.596336,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546815 +AWS,us-east-2,c6gd.2xlarge,on_demand,NA,0.3072,USD,AWS Pricing API,2025-11-30T08:52:15.834701 +AWS,us-east-2,c6gd.2xlarge,reserved_1y,all_upfront,0.346575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:47.793965 +AWS,us-east-2,c6gd.2xlarge,reserved_1y,no_upfront,0.346575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:24.498457 +AWS,us-east-2,c6gd.2xlarge,reserved_1y,partial_upfront,0.346575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:14.968048 +AWS,us-east-2,c6gd.2xlarge,reserved_3y,all_upfront,0.115525,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:56.517280 +AWS,us-east-2,c6gd.2xlarge,reserved_3y,no_upfront,0.115525,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:25.027648 +AWS,us-east-2,c6gd.2xlarge,reserved_3y,partial_upfront,0.115525,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:25.647886 +AWS,us-east-2,c6gd.2xlarge,spot,NA,0.080791,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547294 +AWS,us-east-2,c6gd.4xlarge,on_demand,NA,0.6144,USD,AWS Pricing API,2025-11-30T08:51:55.125286 +AWS,us-east-2,c6gd.4xlarge,reserved_1y,all_upfront,0.424629,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:27.223955 +AWS,us-east-2,c6gd.4xlarge,reserved_1y,no_upfront,0.424629,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:03.792619 +AWS,us-east-2,c6gd.4xlarge,reserved_1y,partial_upfront,0.424629,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:54.560048 +AWS,us-east-2,c6gd.4xlarge,reserved_3y,all_upfront,0.283076,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:36.111159 +AWS,us-east-2,c6gd.4xlarge,reserved_3y,no_upfront,0.283076,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:04.462501 +AWS,us-east-2,c6gd.4xlarge,reserved_3y,partial_upfront,0.283076,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:04.715465 +AWS,us-east-2,c6gd.4xlarge,spot,NA,0.288976,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546307 +AWS,us-east-2,c6gd.8xlarge,on_demand,NA,1.2288,USD,AWS Pricing API,2025-11-30T08:52:24.144712 +AWS,us-east-2,c6gd.8xlarge,reserved_1y,all_upfront,0.722489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:56.057623 +AWS,us-east-2,c6gd.8xlarge,reserved_1y,no_upfront,0.722489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:32.836466 +AWS,us-east-2,c6gd.8xlarge,reserved_1y,partial_upfront,0.722489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:23.219160 +AWS,us-east-2,c6gd.8xlarge,reserved_3y,all_upfront,0.24083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:04.805778 +AWS,us-east-2,c6gd.8xlarge,reserved_3y,no_upfront,0.24083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:33.301491 +AWS,us-east-2,c6gd.8xlarge,reserved_3y,partial_upfront,0.24083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:34.083200 +AWS,us-east-2,c6gd.8xlarge,spot,NA,0.406158,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547628 +AWS,us-east-2,c6gd.xlarge,on_demand,NA,0.1536,USD,AWS Pricing API,2025-11-30T08:52:15.155865 +AWS,us-east-2,c6gd.xlarge,reserved_1y,all_upfront,0.103995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:47.113988 +AWS,us-east-2,c6gd.xlarge,reserved_1y,no_upfront,0.103995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:23.806143 +AWS,us-east-2,c6gd.xlarge,reserved_1y,partial_upfront,0.103995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:14.294332 +AWS,us-east-2,c6gd.xlarge,reserved_3y,all_upfront,0.034665,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:55.836801 +AWS,us-east-2,c6gd.xlarge,reserved_3y,no_upfront,0.034665,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:24.351158 +AWS,us-east-2,c6gd.xlarge,reserved_3y,partial_upfront,0.034665,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:24.964720 +AWS,us-east-2,c6gd.xlarge,spot,NA,0.056088,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547271 +AWS,us-east-2,c6i.12xlarge,on_demand,NA,2.04,USD,AWS Pricing API,2025-11-30T08:52:15.014519 +AWS,us-east-2,c6i.12xlarge,reserved_1y,all_upfront,1.375913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:46.977335 +AWS,us-east-2,c6i.12xlarge,reserved_1y,no_upfront,1.375913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:23.667955 +AWS,us-east-2,c6i.12xlarge,reserved_1y,partial_upfront,1.375913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:14.159432 +AWS,us-east-2,c6i.12xlarge,reserved_3y,all_upfront,0.458638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:55.701610 +AWS,us-east-2,c6i.12xlarge,reserved_3y,no_upfront,0.458638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:24.216781 +AWS,us-east-2,c6i.12xlarge,reserved_3y,partial_upfront,0.458638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:24.826092 +AWS,us-east-2,c6i.12xlarge,spot,NA,0.650913,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547245 +AWS,us-east-2,c6i.16xlarge,on_demand,NA,2.72,USD,AWS Pricing API,2025-11-30T08:51:49.643764 +AWS,us-east-2,c6i.16xlarge,reserved_1y,all_upfront,2.217642,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:21.612059 +AWS,us-east-2,c6i.16xlarge,reserved_1y,no_upfront,2.217642,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:58.282650 +AWS,us-east-2,c6i.16xlarge,reserved_1y,partial_upfront,2.217642,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:49.108416 +AWS,us-east-2,c6i.16xlarge,reserved_3y,all_upfront,1.108814,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:30.714716 +AWS,us-east-2,c6i.16xlarge,reserved_3y,no_upfront,1.108814,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:58.954213 +AWS,us-east-2,c6i.16xlarge,reserved_3y,partial_upfront,1.108814,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:59.135337 +AWS,us-east-2,c6i.16xlarge,spot,NA,0.927896,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546015 +AWS,us-east-2,c6i.24xlarge,on_demand,NA,4.08,USD,AWS Pricing API,2025-11-30T08:51:44.265324 +AWS,us-east-2,c6i.24xlarge,reserved_1y,all_upfront,2.51895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:16.343256 +AWS,us-east-2,c6i.24xlarge,reserved_1y,no_upfront,2.51895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:52.933440 +AWS,us-east-2,c6i.24xlarge,reserved_1y,partial_upfront,2.51895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:43.814915 +AWS,us-east-2,c6i.24xlarge,reserved_3y,all_upfront,0.83965,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:25.407846 +AWS,us-east-2,c6i.24xlarge,reserved_3y,no_upfront,0.83965,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:53.685949 +AWS,us-east-2,c6i.24xlarge,reserved_3y,partial_upfront,0.83965,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:53.747184 +AWS,us-east-2,c6i.24xlarge,spot,NA,1.307357,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545750 +AWS,us-east-2,c6i.2xlarge,on_demand,NA,0.34,USD,AWS Pricing API,2025-11-30T08:51:27.783333 +AWS,us-east-2,c6i.2xlarge,reserved_1y,all_upfront,0.214178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:00.268576 +AWS,us-east-2,c6i.2xlarge,reserved_1y,no_upfront,0.214178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:36.495810 +AWS,us-east-2,c6i.2xlarge,reserved_1y,partial_upfront,0.214178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:27.614685 +AWS,us-east-2,c6i.2xlarge,reserved_3y,all_upfront,0.142793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:09.266413 +AWS,us-east-2,c6i.2xlarge,reserved_3y,no_upfront,0.142793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:37.543388 +AWS,us-east-2,c6i.2xlarge,reserved_3y,partial_upfront,0.142793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:37.127505 +AWS,us-east-2,c6i.2xlarge,spot,NA,0.140728,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545042 +AWS,us-east-2,c6i.32xlarge,on_demand,NA,5.44,USD,AWS Pricing API,2025-11-30T08:52:19.774815 +AWS,us-east-2,c6i.32xlarge,reserved_1y,all_upfront,3.9312,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:51.713787 +AWS,us-east-2,c6i.32xlarge,reserved_1y,no_upfront,3.9312,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:28.448895 +AWS,us-east-2,c6i.32xlarge,reserved_1y,partial_upfront,3.9312,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:18.869838 +AWS,us-east-2,c6i.32xlarge,reserved_3y,all_upfront,3.9312,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:00.435415 +AWS,us-east-2,c6i.32xlarge,reserved_3y,no_upfront,3.9312,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:28.959610 +AWS,us-east-2,c6i.32xlarge,reserved_3y,partial_upfront,3.9312,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:29.646075 +AWS,us-east-2,c6i.32xlarge,spot,NA,1.540198,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547431 +AWS,us-east-2,c6i.4xlarge,on_demand,NA,0.68,USD,AWS Pricing API,2025-11-30T08:51:23.829260 +AWS,us-east-2,c6i.4xlarge,reserved_1y,all_upfront,0.468018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:56.335323 +AWS,us-east-2,c6i.4xlarge,reserved_1y,no_upfront,0.468018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:32.512358 +AWS,us-east-2,c6i.4xlarge,reserved_1y,partial_upfront,0.468018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:23.673627 +AWS,us-east-2,c6i.4xlarge,reserved_3y,all_upfront,0.312006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:05.341081 +AWS,us-east-2,c6i.4xlarge,reserved_3y,no_upfront,0.312006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:33.600575 +AWS,us-east-2,c6i.4xlarge,reserved_3y,partial_upfront,0.312006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:33.113323 +AWS,us-east-2,c6i.4xlarge,spot,NA,0.261239,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544857 +AWS,us-east-2,c6i.8xlarge,on_demand,NA,1.36,USD,AWS Pricing API,2025-11-30T08:51:37.698932 +AWS,us-east-2,c6i.8xlarge,reserved_1y,all_upfront,1.108821,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:10.000050 +AWS,us-east-2,c6i.8xlarge,reserved_1y,no_upfront,1.108821,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:46.356601 +AWS,us-east-2,c6i.8xlarge,reserved_1y,partial_upfront,1.108821,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:37.423722 +AWS,us-east-2,c6i.8xlarge,reserved_3y,all_upfront,0.554407,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:19.073099 +AWS,us-east-2,c6i.8xlarge,reserved_3y,no_upfront,0.554407,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:47.313380 +AWS,us-east-2,c6i.8xlarge,reserved_3y,partial_upfront,0.554407,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:47.147006 +AWS,us-east-2,c6i.8xlarge,spot,NA,0.459096,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545550 +AWS,us-east-2,c6i.xlarge,on_demand,NA,0.17,USD,AWS Pricing API,2025-11-30T08:51:42.042749 +AWS,us-east-2,c6i.xlarge,reserved_1y,all_upfront,0.107089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:14.183974 +AWS,us-east-2,c6i.xlarge,reserved_1y,no_upfront,0.107089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:50.674392 +AWS,us-east-2,c6i.xlarge,reserved_1y,partial_upfront,0.107089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:41.638746 +AWS,us-east-2,c6i.xlarge,reserved_3y,all_upfront,0.071396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:23.250811 +AWS,us-east-2,c6i.xlarge,reserved_3y,no_upfront,0.071396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:51.519872 +AWS,us-east-2,c6i.xlarge,reserved_3y,partial_upfront,0.071396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:51.517290 +AWS,us-east-2,c6i.xlarge,spot,NA,0.071096,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545702 +AWS,us-east-2,c6id.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:52:10.778805 +AWS,us-east-2,c6id.12xlarge,reserved_1y,all_upfront,1.422945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:42.751895 +AWS,us-east-2,c6id.12xlarge,reserved_1y,no_upfront,1.422945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:19.431076 +AWS,us-east-2,c6id.12xlarge,reserved_1y,partial_upfront,1.422945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:09.967036 +AWS,us-east-2,c6id.12xlarge,reserved_3y,all_upfront,0.474315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:51.530543 +AWS,us-east-2,c6id.12xlarge,reserved_3y,no_upfront,0.474315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:19.985473 +AWS,us-east-2,c6id.12xlarge,reserved_3y,partial_upfront,0.474315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:20.511079 +AWS,us-east-2,c6id.12xlarge,spot,NA,0.741747,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547095 +AWS,us-east-2,c6id.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:52:20.322213 +AWS,us-east-2,c6id.16xlarge,reserved_1y,all_upfront,2.21759,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:52.261228 +AWS,us-east-2,c6id.16xlarge,reserved_1y,no_upfront,2.21759,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:28.995428 +AWS,us-east-2,c6id.16xlarge,reserved_1y,partial_upfront,2.21759,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:19.409965 +AWS,us-east-2,c6id.16xlarge,reserved_3y,all_upfront,1.478397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:00.990257 +AWS,us-east-2,c6id.16xlarge,reserved_3y,no_upfront,1.478397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:29.499381 +AWS,us-east-2,c6id.16xlarge,reserved_3y,partial_upfront,1.478397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:30.203334 +AWS,us-east-2,c6id.16xlarge,spot,NA,0.92033,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547502 +AWS,us-east-2,c6id.24xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:51:38.116651 +AWS,us-east-2,c6id.24xlarge,reserved_1y,all_upfront,4.334399,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:10.403437 +AWS,us-east-2,c6id.24xlarge,reserved_1y,no_upfront,4.334399,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:46.770686 +AWS,us-east-2,c6id.24xlarge,reserved_1y,partial_upfront,4.334399,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:37.829499 +AWS,us-east-2,c6id.24xlarge,reserved_3y,all_upfront,2.1672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:19.486015 +AWS,us-east-2,c6id.24xlarge,reserved_3y,no_upfront,2.1672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:47.718819 +AWS,us-east-2,c6id.24xlarge,reserved_3y,partial_upfront,2.1672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:47.561489 +AWS,us-east-2,c6id.24xlarge,spot,NA,1.392841,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545526 +AWS,us-east-2,c6id.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:52:30.752357 +AWS,us-east-2,c6id.2xlarge,reserved_1y,all_upfront,0.530936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:02.626975 +AWS,us-east-2,c6id.2xlarge,reserved_1y,no_upfront,0.530936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:39.425852 +AWS,us-east-2,c6id.2xlarge,reserved_1y,partial_upfront,0.530936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:29.732148 +AWS,us-east-2,c6id.2xlarge,reserved_3y,all_upfront,0.176979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:11.288167 +AWS,us-east-2,c6id.2xlarge,reserved_3y,no_upfront,0.176979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:39.793559 +AWS,us-east-2,c6id.2xlarge,reserved_3y,partial_upfront,0.176979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:40.736662 +AWS,us-east-2,c6id.2xlarge,spot,NA,0.122036,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547935 +AWS,us-east-2,c6id.32xlarge,on_demand,NA,6.4512,USD,AWS Pricing API,2025-11-30T08:51:25.869565 +AWS,us-east-2,c6id.32xlarge,reserved_1y,all_upfront,4.65696,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:58.368334 +AWS,us-east-2,c6id.32xlarge,reserved_1y,no_upfront,4.65696,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:34.568764 +AWS,us-east-2,c6id.32xlarge,reserved_1y,partial_upfront,4.65696,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:25.703524 +AWS,us-east-2,c6id.32xlarge,reserved_3y,all_upfront,4.65696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:07.364603 +AWS,us-east-2,c6id.32xlarge,reserved_3y,no_upfront,4.65696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:35.643441 +AWS,us-east-2,c6id.32xlarge,reserved_3y,partial_upfront,4.65696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:35.186209 +AWS,us-east-2,c6id.32xlarge,spot,NA,1.802879,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544958 +AWS,us-east-2,c6id.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:51:32.996970 +AWS,us-east-2,c6id.4xlarge,reserved_1y,all_upfront,0.879795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:05.424981 +AWS,us-east-2,c6id.4xlarge,reserved_1y,no_upfront,0.879795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:41.692416 +AWS,us-east-2,c6id.4xlarge,reserved_1y,partial_upfront,0.879795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:32.801135 +AWS,us-east-2,c6id.4xlarge,reserved_3y,all_upfront,0.293265,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:14.483080 +AWS,us-east-2,c6id.4xlarge,reserved_3y,no_upfront,0.293265,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:42.711283 +AWS,us-east-2,c6id.4xlarge,reserved_3y,partial_upfront,0.293265,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:42.412173 +AWS,us-east-2,c6id.4xlarge,spot,NA,0.267088,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545304 +AWS,us-east-2,c6id.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:52:06.669976 +AWS,us-east-2,c6id.8xlarge,reserved_1y,all_upfront,1.086644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:38.645193 +AWS,us-east-2,c6id.8xlarge,reserved_1y,no_upfront,1.086644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:15.322868 +AWS,us-east-2,c6id.8xlarge,reserved_1y,partial_upfront,1.086644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:05.927570 +AWS,us-east-2,c6id.8xlarge,reserved_3y,all_upfront,0.362215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:47.492929 +AWS,us-east-2,c6id.8xlarge,reserved_3y,no_upfront,0.362215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:15.875249 +AWS,us-east-2,c6id.8xlarge,reserved_3y,partial_upfront,0.362215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:16.330927 +AWS,us-east-2,c6id.8xlarge,spot,NA,0.556761,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546904 +AWS,us-east-2,c6id.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:52:25.500449 +AWS,us-east-2,c6id.xlarge,reserved_1y,all_upfront,0.118607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:57.407434 +AWS,us-east-2,c6id.xlarge,reserved_1y,no_upfront,0.118607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:34.192717 +AWS,us-east-2,c6id.xlarge,reserved_1y,partial_upfront,0.118607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:24.581724 +AWS,us-east-2,c6id.xlarge,reserved_3y,all_upfront,0.039536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:06.154140 +AWS,us-east-2,c6id.xlarge,reserved_3y,no_upfront,0.039536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:34.652440 +AWS,us-east-2,c6id.xlarge,reserved_3y,partial_upfront,0.039536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:35.458903 +AWS,us-east-2,c6id.xlarge,spot,NA,0.0667,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547704 +AWS,us-east-2,c6in.12xlarge,on_demand,NA,2.7216,USD,AWS Pricing API,2025-11-30T08:51:31.352073 +AWS,us-east-2,c6in.12xlarge,reserved_1y,all_upfront,1.829989,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:03.795937 +AWS,us-east-2,c6in.12xlarge,reserved_1y,no_upfront,1.829989,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:40.047183 +AWS,us-east-2,c6in.12xlarge,reserved_1y,partial_upfront,1.829989,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:31.160610 +AWS,us-east-2,c6in.12xlarge,reserved_3y,all_upfront,0.914996,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:12.790296 +AWS,us-east-2,c6in.12xlarge,reserved_3y,no_upfront,0.914996,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:41.079767 +AWS,us-east-2,c6in.12xlarge,reserved_3y,partial_upfront,0.914996,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:40.736403 +AWS,us-east-2,c6in.12xlarge,spot,NA,0.940867,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545249 +AWS,us-east-2,c6in.16xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T08:51:43.009773 +AWS,us-east-2,c6in.16xlarge,reserved_1y,all_upfront,2.440023,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:15.126923 +AWS,us-east-2,c6in.16xlarge,reserved_1y,no_upfront,2.440023,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:51.669187 +AWS,us-east-2,c6in.16xlarge,reserved_1y,partial_upfront,2.440023,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:42.589823 +AWS,us-east-2,c6in.16xlarge,reserved_3y,all_upfront,1.220008,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:24.195980 +AWS,us-east-2,c6in.16xlarge,reserved_3y,no_upfront,1.220008,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:52.465306 +AWS,us-east-2,c6in.16xlarge,reserved_3y,partial_upfront,1.220008,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:52.495397 +AWS,us-east-2,c6in.16xlarge,spot,NA,1.206435,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545691 +AWS,us-east-2,c6in.24xlarge,on_demand,NA,5.4432,USD,AWS Pricing API,2025-11-30T08:51:52.680448 +AWS,us-east-2,c6in.24xlarge,reserved_1y,all_upfront,3.659977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:24.586991 +AWS,us-east-2,c6in.24xlarge,reserved_1y,no_upfront,3.659977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:01.308543 +AWS,us-east-2,c6in.24xlarge,reserved_1y,partial_upfront,3.659977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:52.115492 +AWS,us-east-2,c6in.24xlarge,reserved_3y,all_upfront,1.829992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:33.689850 +AWS,us-east-2,c6in.24xlarge,reserved_3y,no_upfront,1.829992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:01.987444 +AWS,us-east-2,c6in.24xlarge,reserved_3y,partial_upfront,1.829992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:02.210726 +AWS,us-east-2,c6in.24xlarge,spot,NA,1.762634,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546173 +AWS,us-east-2,c6in.2xlarge,on_demand,NA,0.4536,USD,AWS Pricing API,2025-11-30T08:51:56.344628 +AWS,us-east-2,c6in.2xlarge,reserved_1y,all_upfront,0.305017,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:28.459626 +AWS,us-east-2,c6in.2xlarge,reserved_1y,no_upfront,0.305017,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:05.020443 +AWS,us-east-2,c6in.2xlarge,reserved_1y,partial_upfront,0.305017,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:55.765518 +AWS,us-east-2,c6in.2xlarge,reserved_3y,all_upfront,0.152506,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:37.321796 +AWS,us-east-2,c6in.2xlarge,reserved_3y,no_upfront,0.152506,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:05.689276 +AWS,us-east-2,c6in.2xlarge,reserved_3y,partial_upfront,0.152506,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:05.954150 +AWS,us-east-2,c6in.2xlarge,spot,NA,0.184489,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546333 +AWS,us-east-2,c6in.32xlarge,on_demand,NA,7.2576,USD,AWS Pricing API,2025-11-30T08:52:30.896051 +AWS,us-east-2,c6in.32xlarge,reserved_1y,all_upfront,4.57229,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:02.761808 +AWS,us-east-2,c6in.32xlarge,reserved_1y,no_upfront,4.57229,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:39.566212 +AWS,us-east-2,c6in.32xlarge,reserved_1y,partial_upfront,4.57229,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:29.866410 +AWS,us-east-2,c6in.32xlarge,reserved_3y,all_upfront,4.57229,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:11.423821 +AWS,us-east-2,c6in.32xlarge,reserved_3y,no_upfront,4.57229,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:39.929307 +AWS,us-east-2,c6in.32xlarge,reserved_3y,partial_upfront,4.57229,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:40.874778 +AWS,us-east-2,c6in.32xlarge,spot,NA,2.012945,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547941 +AWS,us-east-2,c6in.4xlarge,on_demand,NA,0.9072,USD,AWS Pricing API,2025-11-30T08:51:30.394293 +AWS,us-east-2,c6in.4xlarge,reserved_1y,all_upfront,1.032763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:02.845589 +AWS,us-east-2,c6in.4xlarge,reserved_1y,no_upfront,1.032763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:39.086404 +AWS,us-east-2,c6in.4xlarge,reserved_1y,partial_upfront,1.032763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:30.208616 +AWS,us-east-2,c6in.4xlarge,reserved_3y,all_upfront,0.344254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:11.842380 +AWS,us-east-2,c6in.4xlarge,reserved_3y,no_upfront,0.344254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:40.116315 +AWS,us-east-2,c6in.4xlarge,reserved_3y,partial_upfront,0.344254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:39.765346 +AWS,us-east-2,c6in.4xlarge,spot,NA,0.389351,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545168 +AWS,us-east-2,c6in.8xlarge,on_demand,NA,1.8144,USD,AWS Pricing API,2025-11-30T08:52:00.876332 +AWS,us-east-2,c6in.8xlarge,reserved_1y,all_upfront,2.065411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:32.949474 +AWS,us-east-2,c6in.8xlarge,reserved_1y,no_upfront,2.065411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:09.564430 +AWS,us-east-2,c6in.8xlarge,reserved_1y,partial_upfront,2.065411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:00.233755 +AWS,us-east-2,c6in.8xlarge,reserved_3y,all_upfront,0.68847,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:41.787976 +AWS,us-east-2,c6in.8xlarge,reserved_3y,no_upfront,0.68847,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:10.155641 +AWS,us-east-2,c6in.8xlarge,reserved_3y,partial_upfront,0.68847,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:10.532423 +AWS,us-east-2,c6in.8xlarge,spot,NA,0.701308,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546552 +AWS,us-east-2,c6in.xlarge,on_demand,NA,0.2268,USD,AWS Pricing API,2025-11-30T08:51:48.548272 +AWS,us-east-2,c6in.xlarge,reserved_1y,all_upfront,0.16432,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:20.541151 +AWS,us-east-2,c6in.xlarge,reserved_1y,no_upfront,0.16432,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:57.186670 +AWS,us-east-2,c6in.xlarge,reserved_1y,partial_upfront,0.16432,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:48.031498 +AWS,us-east-2,c6in.xlarge,reserved_3y,all_upfront,0.16432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:29.620532 +AWS,us-east-2,c6in.xlarge,reserved_3y,no_upfront,0.16432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:57.880518 +AWS,us-east-2,c6in.xlarge,reserved_3y,partial_upfront,0.16432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:58.034255 +AWS,us-east-2,c6in.xlarge,spot,NA,0.075055,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545972 +AWS,us-east-2,c7a.12xlarge,on_demand,NA,2.46336,USD,AWS Pricing API,2025-11-30T08:52:15.970481 +AWS,us-east-2,c7a.12xlarge,reserved_1y,all_upfront,1.551873,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:47.928863 +AWS,us-east-2,c7a.12xlarge,reserved_1y,no_upfront,1.551873,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:24.634360 +AWS,us-east-2,c7a.12xlarge,reserved_1y,partial_upfront,1.551873,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:15.101679 +AWS,us-east-2,c7a.12xlarge,reserved_3y,all_upfront,1.034598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:56.649552 +AWS,us-east-2,c7a.12xlarge,reserved_3y,no_upfront,1.034598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:25.163866 +AWS,us-east-2,c7a.12xlarge,reserved_3y,partial_upfront,1.034598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:25.787415 +AWS,us-east-2,c7a.12xlarge,spot,NA,0.839353,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547251 +AWS,us-east-2,c7a.16xlarge,on_demand,NA,3.28448,USD,AWS Pricing API,2025-11-30T08:51:46.327010 +AWS,us-east-2,c7a.16xlarge,reserved_1y,all_upfront,2.260511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:18.383890 +AWS,us-east-2,c7a.16xlarge,reserved_1y,no_upfront,2.260511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:55.004383 +AWS,us-east-2,c7a.16xlarge,reserved_1y,partial_upfront,2.260511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:45.853131 +AWS,us-east-2,c7a.16xlarge,reserved_3y,all_upfront,1.50701,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:27.445463 +AWS,us-east-2,c7a.16xlarge,reserved_3y,no_upfront,1.50701,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:55.711211 +AWS,us-east-2,c7a.16xlarge,reserved_3y,partial_upfront,1.50701,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:55.830115 +AWS,us-east-2,c7a.16xlarge,spot,NA,1.153726,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545892 +AWS,us-east-2,c7a.24xlarge,on_demand,NA,4.92672,USD,AWS Pricing API,2025-11-30T08:52:26.047136 +AWS,us-east-2,c7a.24xlarge,reserved_1y,all_upfront,4.016747,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:57.946610 +AWS,us-east-2,c7a.24xlarge,reserved_1y,no_upfront,4.016747,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:34.736961 +AWS,us-east-2,c7a.24xlarge,reserved_1y,partial_upfront,4.016747,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:25.139111 +AWS,us-east-2,c7a.24xlarge,reserved_3y,all_upfront,2.008376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:06.698591 +AWS,us-east-2,c7a.24xlarge,reserved_3y,no_upfront,2.008376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:35.195532 +AWS,us-east-2,c7a.24xlarge,reserved_3y,partial_upfront,2.008376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:36.011843 +AWS,us-east-2,c7a.24xlarge,spot,NA,1.717102,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547736 +AWS,us-east-2,c7a.2xlarge,on_demand,NA,0.41056,USD,AWS Pricing API,2025-11-30T08:51:27.239630 +AWS,us-east-2,c7a.2xlarge,reserved_1y,all_upfront,0.29669,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:59.725630 +AWS,us-east-2,c7a.2xlarge,reserved_1y,no_upfront,0.29669,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:35.943150 +AWS,us-east-2,c7a.2xlarge,reserved_1y,partial_upfront,0.29669,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:27.068475 +AWS,us-east-2,c7a.2xlarge,reserved_3y,all_upfront,0.29669,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:08.723020 +AWS,us-east-2,c7a.2xlarge,reserved_3y,no_upfront,0.29669,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:37.003075 +AWS,us-east-2,c7a.2xlarge,reserved_3y,partial_upfront,0.29669,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:36.569188 +AWS,us-east-2,c7a.2xlarge,spot,NA,0.156806,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545055 +AWS,us-east-2,c7a.32xlarge,on_demand,NA,6.56896,USD,AWS Pricing API,2025-11-30T08:52:02.536660 +AWS,us-east-2,c7a.32xlarge,reserved_1y,all_upfront,4.74707,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:34.569185 +AWS,us-east-2,c7a.32xlarge,reserved_1y,no_upfront,4.74707,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:11.213841 +AWS,us-east-2,c7a.32xlarge,reserved_1y,partial_upfront,4.74707,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:01.860574 +AWS,us-east-2,c7a.32xlarge,reserved_3y,all_upfront,4.74707,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:43.406955 +AWS,us-east-2,c7a.32xlarge,reserved_3y,no_upfront,4.74707,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:11.783586 +AWS,us-east-2,c7a.32xlarge,reserved_3y,partial_upfront,4.74707,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:12.181952 +AWS,us-east-2,c7a.32xlarge,spot,NA,2.143484,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546702 +AWS,us-east-2,c7a.48xlarge,on_demand,NA,9.85344,USD,AWS Pricing API,2025-11-30T08:51:21.773867 +AWS,us-east-2,c7a.48xlarge,reserved_1y,all_upfront,6.781523,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:54.313226 +AWS,us-east-2,c7a.48xlarge,reserved_1y,no_upfront,6.781523,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:30.456990 +AWS,us-east-2,c7a.48xlarge,reserved_1y,partial_upfront,6.781523,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:21.647073 +AWS,us-east-2,c7a.48xlarge,reserved_3y,all_upfront,4.521021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:03.299071 +AWS,us-east-2,c7a.48xlarge,reserved_3y,no_upfront,4.521021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:31.555461 +AWS,us-east-2,c7a.48xlarge,reserved_3y,partial_upfront,4.521021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:31.041074 +AWS,us-east-2,c7a.48xlarge,spot,NA,2.633422,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544767 +AWS,us-east-2,c7a.4xlarge,on_demand,NA,0.82112,USD,AWS Pricing API,2025-11-30T08:52:03.642249 +AWS,us-east-2,c7a.4xlarge,reserved_1y,all_upfront,0.59338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:35.663083 +AWS,us-east-2,c7a.4xlarge,reserved_1y,no_upfront,0.59338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:12.300107 +AWS,us-east-2,c7a.4xlarge,reserved_1y,partial_upfront,0.59338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:02.950129 +AWS,us-east-2,c7a.4xlarge,reserved_3y,all_upfront,0.59338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:44.498690 +AWS,us-east-2,c7a.4xlarge,reserved_3y,no_upfront,0.59338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:12.886566 +AWS,us-east-2,c7a.4xlarge,reserved_3y,partial_upfront,0.59338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:13.281423 +AWS,us-east-2,c7a.4xlarge,spot,NA,0.337396,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546695 +AWS,us-east-2,c7a.8xlarge,on_demand,NA,1.64224,USD,AWS Pricing API,2025-11-30T08:51:19.174371 +AWS,us-east-2,c7a.8xlarge,reserved_1y,all_upfront,1.130313,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:51.722596 +AWS,us-east-2,c7a.8xlarge,reserved_1y,no_upfront,1.130313,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:27.871583 +AWS,us-east-2,c7a.8xlarge,reserved_1y,partial_upfront,1.130313,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:19.081075 +AWS,us-east-2,c7a.8xlarge,reserved_3y,all_upfront,0.753524,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:00.702263 +AWS,us-east-2,c7a.8xlarge,reserved_3y,no_upfront,0.753524,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:28.968683 +AWS,us-east-2,c7a.8xlarge,reserved_3y,partial_upfront,0.753524,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:28.409175 +AWS,us-east-2,c7a.8xlarge,spot,NA,0.600181,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544680 +AWS,us-east-2,c7a.xlarge,on_demand,NA,0.20528,USD,AWS Pricing API,2025-11-30T08:51:54.581575 +AWS,us-east-2,c7a.xlarge,reserved_1y,all_upfront,0.126712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:26.502323 +AWS,us-east-2,c7a.xlarge,reserved_1y,no_upfront,0.126712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:03.247733 +AWS,us-east-2,c7a.xlarge,reserved_1y,partial_upfront,0.126712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:54.019780 +AWS,us-east-2,c7a.xlarge,reserved_3y,all_upfront,0.042237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:35.570343 +AWS,us-east-2,c7a.xlarge,reserved_3y,no_upfront,0.042237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:03.901995 +AWS,us-east-2,c7a.xlarge,reserved_3y,partial_upfront,0.042237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:04.160881 +AWS,us-east-2,c7a.xlarge,spot,NA,0.097931,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546327 +AWS,us-east-2,c7g.12xlarge,on_demand,NA,1.7342,USD,AWS Pricing API,2025-11-30T08:51:58.677144 +AWS,us-east-2,c7g.12xlarge,reserved_1y,all_upfront,1.193604,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:30.777985 +AWS,us-east-2,c7g.12xlarge,reserved_1y,no_upfront,1.193604,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:07.373467 +AWS,us-east-2,c7g.12xlarge,reserved_1y,partial_upfront,1.193604,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:58.069093 +AWS,us-east-2,c7g.12xlarge,reserved_3y,all_upfront,0.795735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:39.609854 +AWS,us-east-2,c7g.12xlarge,reserved_3y,no_upfront,0.795735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:07.992458 +AWS,us-east-2,c7g.12xlarge,reserved_3y,partial_upfront,0.795735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:08.306439 +AWS,us-east-2,c7g.12xlarge,spot,NA,0.603944,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546486 +AWS,us-east-2,c7g.16xlarge,on_demand,NA,2.3123,USD,AWS Pricing API,2025-11-30T08:52:08.451237 +AWS,us-east-2,c7g.16xlarge,reserved_1y,all_upfront,1.5296,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:40.440033 +AWS,us-east-2,c7g.16xlarge,reserved_1y,no_upfront,1.5296,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:17.102417 +AWS,us-east-2,c7g.16xlarge,reserved_1y,partial_upfront,1.5296,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:07.676475 +AWS,us-east-2,c7g.16xlarge,reserved_3y,all_upfront,1.5296,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:49.235269 +AWS,us-east-2,c7g.16xlarge,reserved_3y,no_upfront,1.5296,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:17.637669 +AWS,us-east-2,c7g.16xlarge,reserved_3y,partial_upfront,1.5296,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:18.134421 +AWS,us-east-2,c7g.16xlarge,spot,NA,0.765722,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546955 +AWS,us-east-2,c7g.2xlarge,on_demand,NA,0.289,USD,AWS Pricing API,2025-11-30T08:52:27.281947 +AWS,us-east-2,c7g.2xlarge,reserved_1y,all_upfront,0.379909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:59.156641 +AWS,us-east-2,c7g.2xlarge,reserved_1y,no_upfront,0.379909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:35.966998 +AWS,us-east-2,c7g.2xlarge,reserved_1y,partial_upfront,0.379909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:26.358932 +AWS,us-east-2,c7g.2xlarge,reserved_3y,all_upfront,0.126636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:07.905846 +AWS,us-east-2,c7g.2xlarge,reserved_3y,no_upfront,0.126636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:36.406910 +AWS,us-east-2,c7g.2xlarge,reserved_3y,partial_upfront,0.126636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:37.269256 +AWS,us-east-2,c7g.2xlarge,spot,NA,0.10502,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547807 +AWS,us-east-2,c7g.4xlarge,on_demand,NA,0.5781,USD,AWS Pricing API,2025-11-30T08:51:43.700730 +AWS,us-east-2,c7g.4xlarge,reserved_1y,all_upfront,0.759817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:15.806492 +AWS,us-east-2,c7g.4xlarge,reserved_1y,no_upfront,0.759817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:52.373099 +AWS,us-east-2,c7g.4xlarge,reserved_1y,partial_upfront,0.759817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:43.274256 +AWS,us-east-2,c7g.4xlarge,reserved_3y,all_upfront,0.253272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:24.867446 +AWS,us-east-2,c7g.4xlarge,reserved_3y,no_upfront,0.253272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:53.142858 +AWS,us-east-2,c7g.4xlarge,reserved_3y,partial_upfront,0.253272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:53.193000 +AWS,us-east-2,c7g.4xlarge,spot,NA,0.265242,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545793 +AWS,us-east-2,c7g.8xlarge,on_demand,NA,1.1562,USD,AWS Pricing API,2025-11-30T08:51:54.852021 +AWS,us-east-2,c7g.8xlarge,reserved_1y,all_upfront,0.942663,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:26.772594 +AWS,us-east-2,c7g.8xlarge,reserved_1y,no_upfront,0.942663,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:03.520298 +AWS,us-east-2,c7g.8xlarge,reserved_1y,partial_upfront,0.942663,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:54.292928 +AWS,us-east-2,c7g.8xlarge,reserved_3y,all_upfront,0.471354,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:35.838679 +AWS,us-east-2,c7g.8xlarge,reserved_3y,no_upfront,0.471354,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:04.183866 +AWS,us-east-2,c7g.8xlarge,reserved_3y,partial_upfront,0.471354,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:04.436437 +AWS,us-east-2,c7g.8xlarge,spot,NA,0.432568,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546281 +AWS,us-east-2,c7g.xlarge,on_demand,NA,0.1445,USD,AWS Pricing API,2025-11-30T08:51:41.777634 +AWS,us-east-2,c7g.xlarge,reserved_1y,all_upfront,0.117856,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:13.915043 +AWS,us-east-2,c7g.xlarge,reserved_1y,no_upfront,0.117856,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:50.402980 +AWS,us-east-2,c7g.xlarge,reserved_1y,partial_upfront,0.117856,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:41.361973 +AWS,us-east-2,c7g.xlarge,reserved_3y,all_upfront,0.058952,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:22.982933 +AWS,us-east-2,c7g.xlarge,reserved_3y,no_upfront,0.058952,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:51.251188 +AWS,us-east-2,c7g.xlarge,reserved_3y,partial_upfront,0.058952,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:51.237289 +AWS,us-east-2,c7g.xlarge,spot,NA,0.061504,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545657 +AWS,us-east-2,c7gd.12xlarge,on_demand,NA,2.1773,USD,AWS Pricing API,2025-11-30T08:51:52.818671 +AWS,us-east-2,c7gd.12xlarge,reserved_1y,all_upfront,1.280708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:24.719520 +AWS,us-east-2,c7gd.12xlarge,reserved_1y,no_upfront,1.280708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:01.445833 +AWS,us-east-2,c7gd.12xlarge,reserved_1y,partial_upfront,1.280708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:52.250261 +AWS,us-east-2,c7gd.12xlarge,reserved_3y,all_upfront,0.426903,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:33.822423 +AWS,us-east-2,c7gd.12xlarge,reserved_3y,no_upfront,0.426903,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:02.127183 +AWS,us-east-2,c7gd.12xlarge,reserved_3y,partial_upfront,0.426903,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:02.351742 +AWS,us-east-2,c7gd.12xlarge,spot,NA,0.8158,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546192 +AWS,us-east-2,c7gd.16xlarge,on_demand,NA,2.903,USD,AWS Pricing API,2025-11-30T08:51:38.540458 +AWS,us-east-2,c7gd.16xlarge,reserved_1y,all_upfront,1.707534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:10.809200 +AWS,us-east-2,c7gd.16xlarge,reserved_1y,no_upfront,1.707534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:47.190584 +AWS,us-east-2,c7gd.16xlarge,reserved_1y,partial_upfront,1.707534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:38.247440 +AWS,us-east-2,c7gd.16xlarge,reserved_3y,all_upfront,0.569178,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:19.885793 +AWS,us-east-2,c7gd.16xlarge,reserved_3y,no_upfront,0.569178,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:48.124124 +AWS,us-east-2,c7gd.16xlarge,reserved_3y,partial_upfront,0.569178,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:47.974537 +AWS,us-east-2,c7gd.16xlarge,spot,NA,0.765999,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545538 +AWS,us-east-2,c7gd.2xlarge,on_demand,NA,0.3629,USD,AWS Pricing API,2025-11-30T08:52:08.315303 +AWS,us-east-2,c7gd.2xlarge,reserved_1y,all_upfront,0.21347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:40.302541 +AWS,us-east-2,c7gd.2xlarge,reserved_1y,no_upfront,0.21347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:16.965435 +AWS,us-east-2,c7gd.2xlarge,reserved_1y,partial_upfront,0.21347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:07.542510 +AWS,us-east-2,c7gd.2xlarge,reserved_3y,all_upfront,0.071157,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:49.100964 +AWS,us-east-2,c7gd.2xlarge,reserved_3y,no_upfront,0.071157,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:17.497441 +AWS,us-east-2,c7gd.2xlarge,reserved_3y,partial_upfront,0.071157,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:17.994279 +AWS,us-east-2,c7gd.2xlarge,spot,NA,0.132129,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546923 +AWS,us-east-2,c7gd.4xlarge,on_demand,NA,0.7258,USD,AWS Pricing API,2025-11-30T08:51:55.527511 +AWS,us-east-2,c7gd.4xlarge,reserved_1y,all_upfront,0.435608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:27.627809 +AWS,us-east-2,c7gd.4xlarge,reserved_1y,no_upfront,0.435608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:04.205189 +AWS,us-east-2,c7gd.4xlarge,reserved_1y,partial_upfront,0.435608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:54.962294 +AWS,us-east-2,c7gd.4xlarge,reserved_3y,all_upfront,0.290403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:36.515590 +AWS,us-east-2,c7gd.4xlarge,reserved_3y,no_upfront,0.290403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:04.871198 +AWS,us-east-2,c7gd.4xlarge,reserved_3y,partial_upfront,0.290403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:05.125340 +AWS,us-east-2,c7gd.4xlarge,spot,NA,0.5492,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546320 +AWS,us-east-2,c7gd.8xlarge,on_demand,NA,1.4515,USD,AWS Pricing API,2025-11-30T08:51:47.014957 +AWS,us-east-2,c7gd.8xlarge,reserved_1y,all_upfront,0.853767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:19.067208 +AWS,us-east-2,c7gd.8xlarge,reserved_1y,no_upfront,0.853767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:55.681379 +AWS,us-east-2,c7gd.8xlarge,reserved_1y,partial_upfront,0.853767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:46.531763 +AWS,us-east-2,c7gd.8xlarge,reserved_3y,all_upfront,0.284589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:28.117391 +AWS,us-east-2,c7gd.8xlarge,reserved_3y,no_upfront,0.284589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:56.386230 +AWS,us-east-2,c7gd.8xlarge,reserved_3y,partial_upfront,0.284589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:56.522555 +AWS,us-east-2,c7gd.8xlarge,spot,NA,0.563879,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545880 +AWS,us-east-2,c7gd.xlarge,on_demand,NA,0.1814,USD,AWS Pricing API,2025-11-30T08:52:26.602125 +AWS,us-east-2,c7gd.xlarge,reserved_1y,all_upfront,0.106735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:58.484282 +AWS,us-east-2,c7gd.xlarge,reserved_1y,no_upfront,0.106735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:35.290123 +AWS,us-east-2,c7gd.xlarge,reserved_1y,partial_upfront,0.106735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:25.676749 +AWS,us-east-2,c7gd.xlarge,reserved_3y,all_upfront,0.035578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:07.235717 +AWS,us-east-2,c7gd.xlarge,reserved_3y,no_upfront,0.035578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:35.735124 +AWS,us-east-2,c7gd.xlarge,reserved_3y,partial_upfront,0.035578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:36.568765 +AWS,us-east-2,c7gd.xlarge,spot,NA,0.075955,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547729 +AWS,us-east-2,c7i.12xlarge,on_demand,NA,2.142,USD,AWS Pricing API,2025-11-30T08:51:47.287375 +AWS,us-east-2,c7i.12xlarge,reserved_1y,all_upfront,0.94304,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:19.334116 +AWS,us-east-2,c7i.12xlarge,reserved_1y,no_upfront,0.94304,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:55.953254 +AWS,us-east-2,c7i.12xlarge,reserved_1y,partial_upfront,0.94304,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:46.805904 +AWS,us-east-2,c7i.12xlarge,reserved_3y,all_upfront,0.94304,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:28.396495 +AWS,us-east-2,c7i.12xlarge,reserved_3y,no_upfront,0.94304,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:56.657543 +AWS,us-east-2,c7i.12xlarge,reserved_3y,partial_upfront,0.94304,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:56.800636 +AWS,us-east-2,c7i.12xlarge,spot,NA,0.797907,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545923 +AWS,us-east-2,c7i.16xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T08:52:24.823106 +AWS,us-east-2,c7i.16xlarge,reserved_1y,all_upfront,1.763242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:56.733889 +AWS,us-east-2,c7i.16xlarge,reserved_1y,no_upfront,1.763242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:33.516882 +AWS,us-east-2,c7i.16xlarge,reserved_1y,partial_upfront,1.763242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:23.897435 +AWS,us-east-2,c7i.16xlarge,reserved_3y,all_upfront,0.587747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:05.483354 +AWS,us-east-2,c7i.16xlarge,reserved_3y,no_upfront,0.587747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:33.972720 +AWS,us-east-2,c7i.16xlarge,reserved_3y,partial_upfront,0.587747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:34.766927 +AWS,us-east-2,c7i.16xlarge,spot,NA,1.005887,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547711 +AWS,us-east-2,c7i.24xlarge,on_demand,NA,4.284,USD,AWS Pricing API,2025-11-30T08:51:58.265388 +AWS,us-east-2,c7i.24xlarge,reserved_1y,all_upfront,2.698889,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:30.361320 +AWS,us-east-2,c7i.24xlarge,reserved_1y,no_upfront,2.698889,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:06.965146 +AWS,us-east-2,c7i.24xlarge,reserved_1y,partial_upfront,2.698889,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:57.664026 +AWS,us-east-2,c7i.24xlarge,reserved_3y,all_upfront,1.79927,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:39.212099 +AWS,us-east-2,c7i.24xlarge,reserved_3y,no_upfront,1.79927,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:07.587818 +AWS,us-east-2,c7i.24xlarge,reserved_3y,partial_upfront,1.79927,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:07.890251 +AWS,us-east-2,c7i.24xlarge,spot,NA,1.524743,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546410 +AWS,us-east-2,c7i.2xlarge,on_demand,NA,0.357,USD,AWS Pricing API,2025-11-30T08:52:13.112655 +AWS,us-east-2,c7i.2xlarge,reserved_1y,all_upfront,0.224903,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:45.059267 +AWS,us-east-2,c7i.2xlarge,reserved_1y,no_upfront,0.224903,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:21.760075 +AWS,us-east-2,c7i.2xlarge,reserved_1y,partial_upfront,0.224903,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:12.262406 +AWS,us-east-2,c7i.2xlarge,reserved_3y,all_upfront,0.149941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:53.831397 +AWS,us-east-2,c7i.2xlarge,reserved_3y,no_upfront,0.149941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:22.319936 +AWS,us-east-2,c7i.2xlarge,reserved_3y,partial_upfront,0.149941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:22.876951 +AWS,us-east-2,c7i.2xlarge,spot,NA,0.128201,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547152 +AWS,us-east-2,c7i.48xlarge,on_demand,NA,8.568,USD,AWS Pricing API,2025-11-30T08:51:40.652622 +AWS,us-east-2,c7i.48xlarge,reserved_1y,all_upfront,5.778881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:12.837161 +AWS,us-east-2,c7i.48xlarge,reserved_1y,no_upfront,5.778881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:49.286736 +AWS,us-east-2,c7i.48xlarge,reserved_1y,partial_upfront,5.778881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:40.282124 +AWS,us-east-2,c7i.48xlarge,reserved_3y,all_upfront,1.926294,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:21.922455 +AWS,us-east-2,c7i.48xlarge,reserved_3y,no_upfront,1.926294,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:50.173504 +AWS,us-east-2,c7i.48xlarge,reserved_3y,partial_upfront,1.926294,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:50.148179 +AWS,us-east-2,c7i.48xlarge,spot,NA,2.686905,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545639 +AWS,us-east-2,c7i.4xlarge,on_demand,NA,0.714,USD,AWS Pricing API,2025-11-30T08:51:53.898410 +AWS,us-east-2,c7i.4xlarge,reserved_1y,all_upfront,0.47231,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:25.815692 +AWS,us-east-2,c7i.4xlarge,reserved_1y,no_upfront,0.47231,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:02.563701 +AWS,us-east-2,c7i.4xlarge,reserved_1y,partial_upfront,0.47231,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:53.349819 +AWS,us-east-2,c7i.4xlarge,reserved_3y,all_upfront,0.47231,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:34.896932 +AWS,us-east-2,c7i.4xlarge,reserved_3y,no_upfront,0.47231,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:03.220127 +AWS,us-east-2,c7i.4xlarge,reserved_3y,partial_upfront,0.47231,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:03.466337 +AWS,us-east-2,c7i.4xlarge,spot,NA,0.259512,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546224 +AWS,us-east-2,c7i.8xlarge,on_demand,NA,1.428,USD,AWS Pricing API,2025-11-30T08:51:25.314507 +AWS,us-east-2,c7i.8xlarge,reserved_1y,all_upfront,1.03195,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:57.831495 +AWS,us-east-2,c7i.8xlarge,reserved_1y,no_upfront,1.03195,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:34.019098 +AWS,us-east-2,c7i.8xlarge,reserved_1y,partial_upfront,1.03195,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:25.157388 +AWS,us-east-2,c7i.8xlarge,reserved_3y,all_upfront,1.03195,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:06.817258 +AWS,us-east-2,c7i.8xlarge,reserved_3y,no_upfront,1.03195,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:35.101638 +AWS,us-east-2,c7i.8xlarge,reserved_3y,partial_upfront,1.03195,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:34.636458 +AWS,us-east-2,c7i.8xlarge,spot,NA,0.484113,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544992 +AWS,us-east-2,c7i.large,on_demand,NA,0.08925,USD,AWS Pricing API,2025-11-30T08:52:12.569112 +AWS,us-east-2,c7i.large,reserved_1y,all_upfront,0.055137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:44.518218 +AWS,us-east-2,c7i.large,reserved_1y,no_upfront,0.055137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:21.207876 +AWS,us-east-2,c7i.large,reserved_1y,partial_upfront,0.055137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:11.723345 +AWS,us-east-2,c7i.large,reserved_3y,all_upfront,0.018379,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:53.285390 +AWS,us-east-2,c7i.large,reserved_3y,no_upfront,0.018379,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:21.780923 +AWS,us-east-2,c7i.large,reserved_3y,partial_upfront,0.018379,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:22.322971 +AWS,us-east-2,c7i.large,spot,NA,0.02662,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547170 +AWS,us-east-2,c7i.metal-24xl,on_demand,NA,4.284,USD,AWS Pricing API,2025-11-30T08:51:41.505395 +AWS,us-east-2,c7i.metal-24xl,reserved_1y,all_upfront,3.09584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:13.647637 +AWS,us-east-2,c7i.metal-24xl,reserved_1y,no_upfront,3.09584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:50.129672 +AWS,us-east-2,c7i.metal-24xl,reserved_1y,partial_upfront,3.09584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:41.091684 +AWS,us-east-2,c7i.metal-24xl,reserved_3y,all_upfront,3.09584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:22.713645 +AWS,us-east-2,c7i.metal-24xl,reserved_3y,no_upfront,3.09584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:50.979397 +AWS,us-east-2,c7i.metal-24xl,reserved_3y,partial_upfront,3.09584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:50.964204 +AWS,us-east-2,c7i.metal-24xl,spot,NA,1.092251,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545626 +AWS,us-east-2,c7i.metal-48xl,on_demand,NA,8.568,USD,AWS Pricing API,2025-11-30T08:51:29.435241 +AWS,us-east-2,c7i.metal-48xl,reserved_1y,all_upfront,5.28984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:01.898333 +AWS,us-east-2,c7i.metal-48xl,reserved_1y,no_upfront,5.28984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:38.135857 +AWS,us-east-2,c7i.metal-48xl,reserved_1y,partial_upfront,5.28984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:29.269963 +AWS,us-east-2,c7i.metal-48xl,reserved_3y,all_upfront,1.76328,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:10.893368 +AWS,us-east-2,c7i.metal-48xl,reserved_3y,no_upfront,1.76328,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:39.159911 +AWS,us-east-2,c7i.metal-48xl,reserved_3y,partial_upfront,1.76328,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:38.792983 +AWS,us-east-2,c7i.metal-48xl,spot,NA,1.696239,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545137 +AWS,us-east-2,c7i.xlarge,on_demand,NA,0.1785,USD,AWS Pricing API,2025-11-30T08:52:23.871568 +AWS,us-east-2,c7i.xlarge,reserved_1y,all_upfront,0.120434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:55.786945 +AWS,us-east-2,c7i.xlarge,reserved_1y,no_upfront,0.120434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:32.564568 +AWS,us-east-2,c7i.xlarge,reserved_1y,partial_upfront,0.120434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:22.952453 +AWS,us-east-2,c7i.xlarge,reserved_3y,all_upfront,0.040145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:04.538349 +AWS,us-east-2,c7i.xlarge,reserved_3y,no_upfront,0.040145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:33.032685 +AWS,us-east-2,c7i.xlarge,reserved_3y,partial_upfront,0.040145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:33.805343 +AWS,us-east-2,c7i.xlarge,spot,NA,0.064555,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547640 +AWS,us-east-2,c8g.12xlarge,on_demand,NA,1.90752,USD,AWS Pricing API,2025-11-30T08:52:21.414355 +AWS,us-east-2,c8g.12xlarge,reserved_1y,all_upfront,1.555238,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:53.345889 +AWS,us-east-2,c8g.12xlarge,reserved_1y,no_upfront,1.555238,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:30.090207 +AWS,us-east-2,c8g.12xlarge,reserved_1y,partial_upfront,1.555238,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:20.504903 +AWS,us-east-2,c8g.12xlarge,reserved_3y,all_upfront,0.777613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:02.102565 +AWS,us-east-2,c8g.12xlarge,reserved_3y,no_upfront,0.777613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:30.578886 +AWS,us-east-2,c8g.12xlarge,reserved_3y,partial_upfront,0.777613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:31.326971 +AWS,us-east-2,c8g.12xlarge,spot,NA,0.655792,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547528 +AWS,us-east-2,c8g.16xlarge,on_demand,NA,2.54336,USD,AWS Pricing API,2025-11-30T08:51:24.234202 +AWS,us-east-2,c8g.16xlarge,reserved_1y,all_upfront,2.073537,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:56.737002 +AWS,us-east-2,c8g.16xlarge,reserved_1y,no_upfront,2.073537,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:32.925747 +AWS,us-east-2,c8g.16xlarge,reserved_1y,partial_upfront,2.073537,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:24.076704 +AWS,us-east-2,c8g.16xlarge,reserved_3y,all_upfront,1.036779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:05.747432 +AWS,us-east-2,c8g.16xlarge,reserved_3y,no_upfront,1.036779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:34.016323 +AWS,us-east-2,c8g.16xlarge,reserved_3y,partial_upfront,1.036779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:33.537491 +AWS,us-east-2,c8g.16xlarge,spot,NA,0.897939,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544907 +AWS,us-east-2,c8g.24xlarge,on_demand,NA,3.81504,USD,AWS Pricing API,2025-11-30T08:52:11.323357 +AWS,us-east-2,c8g.24xlarge,reserved_1y,all_upfront,2.625605,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:43.291086 +AWS,us-east-2,c8g.24xlarge,reserved_1y,no_upfront,2.625605,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:19.975684 +AWS,us-east-2,c8g.24xlarge,reserved_1y,partial_upfront,2.625605,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:10.513019 +AWS,us-east-2,c8g.24xlarge,reserved_3y,all_upfront,1.750415,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:52.070695 +AWS,us-east-2,c8g.24xlarge,reserved_3y,no_upfront,1.750415,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:20.544564 +AWS,us-east-2,c8g.24xlarge,reserved_3y,partial_upfront,1.750415,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:21.059852 +AWS,us-east-2,c8g.24xlarge,spot,NA,1.108539,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547050 +AWS,us-east-2,c8g.2xlarge,on_demand,NA,0.31792,USD,AWS Pricing API,2025-11-30T08:51:36.466870 +AWS,us-east-2,c8g.2xlarge,reserved_1y,all_upfront,0.259206,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:08.792346 +AWS,us-east-2,c8g.2xlarge,reserved_1y,no_upfront,0.259206,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:45.127221 +AWS,us-east-2,c8g.2xlarge,reserved_1y,partial_upfront,0.259206,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:36.200850 +AWS,us-east-2,c8g.2xlarge,reserved_3y,all_upfront,0.129602,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:17.853588 +AWS,us-east-2,c8g.2xlarge,reserved_3y,no_upfront,0.129602,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:46.094263 +AWS,us-east-2,c8g.2xlarge,reserved_3y,partial_upfront,0.129602,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:45.896373 +AWS,us-east-2,c8g.2xlarge,spot,NA,0.125004,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545470 +AWS,us-east-2,c8g.48xlarge,on_demand,NA,7.63008,USD,AWS Pricing API,2025-11-30T08:52:30.327459 +AWS,us-east-2,c8g.48xlarge,reserved_1y,all_upfront,5.0473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:02.210188 +AWS,us-east-2,c8g.48xlarge,reserved_1y,no_upfront,5.0473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:39.008822 +AWS,us-east-2,c8g.48xlarge,reserved_1y,partial_upfront,5.0473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:29.329202 +AWS,us-east-2,c8g.48xlarge,reserved_3y,all_upfront,5.0473,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:10.886651 +AWS,us-east-2,c8g.48xlarge,reserved_3y,no_upfront,5.0473,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:39.386986 +AWS,us-east-2,c8g.48xlarge,reserved_3y,partial_upfront,5.0473,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:40.323582 +AWS,us-east-2,c8g.48xlarge,spot,NA,2.034912,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547973 +AWS,us-east-2,c8g.4xlarge,on_demand,NA,0.63584,USD,AWS Pricing API,2025-11-30T08:51:38.955454 +AWS,us-east-2,c8g.4xlarge,reserved_1y,all_upfront,0.42061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:11.218505 +AWS,us-east-2,c8g.4xlarge,reserved_1y,no_upfront,0.42061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:47.610782 +AWS,us-east-2,c8g.4xlarge,reserved_1y,partial_upfront,0.42061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:38.649850 +AWS,us-east-2,c8g.4xlarge,reserved_3y,all_upfront,0.42061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:20.291609 +AWS,us-east-2,c8g.4xlarge,reserved_3y,no_upfront,0.42061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:48.529334 +AWS,us-east-2,c8g.4xlarge,reserved_3y,partial_upfront,0.42061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:48.394310 +AWS,us-east-2,c8g.4xlarge,spot,NA,0.328911,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545544 +AWS,us-east-2,c8g.8xlarge,on_demand,NA,1.27168,USD,AWS Pricing API,2025-11-30T08:51:42.594917 +AWS,us-east-2,c8g.8xlarge,reserved_1y,all_upfront,0.875167,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:14.728523 +AWS,us-east-2,c8g.8xlarge,reserved_1y,no_upfront,0.875167,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:51.227936 +AWS,us-east-2,c8g.8xlarge,reserved_1y,partial_upfront,0.875167,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:42.178161 +AWS,us-east-2,c8g.8xlarge,reserved_3y,all_upfront,0.583462,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:23.787655 +AWS,us-east-2,c8g.8xlarge,reserved_3y,no_upfront,0.583462,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:52.056072 +AWS,us-east-2,c8g.8xlarge,reserved_3y,partial_upfront,0.583462,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:52.081843 +AWS,us-east-2,c8g.8xlarge,spot,NA,0.526752,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545732 +AWS,us-east-2,c8g.large,on_demand,NA,0.07948,USD,AWS Pricing API,2025-11-30T08:52:24.552899 +AWS,us-east-2,c8g.large,reserved_1y,all_upfront,0.049087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:56.461628 +AWS,us-east-2,c8g.large,reserved_1y,no_upfront,0.049087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:33.243920 +AWS,us-east-2,c8g.large,reserved_1y,partial_upfront,0.049087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:23.621364 +AWS,us-east-2,c8g.large,reserved_3y,all_upfront,0.016362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:05.216434 +AWS,us-east-2,c8g.large,reserved_3y,no_upfront,0.016362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:33.703416 +AWS,us-east-2,c8g.large,reserved_3y,partial_upfront,0.016362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:34.493327 +AWS,us-east-2,c8g.large,spot,NA,0.028123,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547685 +AWS,us-east-2,c8g.medium,on_demand,NA,0.03974,USD,AWS Pricing API,2025-11-30T08:52:09.134911 +AWS,us-east-2,c8g.medium,reserved_1y,all_upfront,0.024543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:41.122095 +AWS,us-east-2,c8g.medium,reserved_1y,no_upfront,0.024543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:17.784392 +AWS,us-east-2,c8g.medium,reserved_1y,partial_upfront,0.024543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:08.349483 +AWS,us-east-2,c8g.medium,reserved_3y,all_upfront,0.008181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:49.908837 +AWS,us-east-2,c8g.medium,reserved_3y,no_upfront,0.008181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:18.360232 +AWS,us-east-2,c8g.medium,reserved_3y,partial_upfront,0.008181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:18.842866 +AWS,us-east-2,c8g.medium,spot,NA,0.012376,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546980 +AWS,us-east-2,c8g.xlarge,on_demand,NA,0.15896,USD,AWS Pricing API,2025-11-30T08:51:32.588394 +AWS,us-east-2,c8g.xlarge,reserved_1y,all_upfront,0.098174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:05.018788 +AWS,us-east-2,c8g.xlarge,reserved_1y,no_upfront,0.098174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:41.284754 +AWS,us-east-2,c8g.xlarge,reserved_1y,partial_upfront,0.098174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:32.382524 +AWS,us-east-2,c8g.xlarge,reserved_3y,all_upfront,0.032725,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:14.072286 +AWS,us-east-2,c8g.xlarge,reserved_3y,no_upfront,0.032725,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:42.305096 +AWS,us-east-2,c8g.xlarge,reserved_3y,partial_upfront,0.032725,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:41.980899 +AWS,us-east-2,c8g.xlarge,spot,NA,0.063529,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545280 +AWS,us-east-2,c8gd.12xlarge,on_demand,NA,2.35152,USD,AWS Pricing API,2025-11-30T08:52:06.805119 +AWS,us-east-2,c8gd.12xlarge,spot,NA,0.807706,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546860 +AWS,us-east-2,c8gd.16xlarge,on_demand,NA,3.13536,USD,AWS Pricing API,2025-11-30T08:52:31.175301 +AWS,us-east-2,c8gd.16xlarge,spot,NA,1.043961,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547967 +AWS,us-east-2,c8gd.24xlarge,on_demand,NA,4.70304,USD,AWS Pricing API,2025-11-30T08:52:17.462240 +AWS,us-east-2,c8gd.24xlarge,spot,NA,1.294827,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547312 +AWS,us-east-2,c8gd.2xlarge,on_demand,NA,0.39192,USD,AWS Pricing API,2025-11-30T08:52:01.423639 +AWS,us-east-2,c8gd.2xlarge,spot,NA,0.19653,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546670 +AWS,us-east-2,c8gd.48xlarge,on_demand,NA,9.40608,USD,AWS Pricing API,2025-11-30T08:51:49.098160 +AWS,us-east-2,c8gd.48xlarge,spot,NA,2.298084,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546009 +AWS,us-east-2,c8gd.4xlarge,on_demand,NA,0.78384,USD,AWS Pricing API,2025-11-30T08:51:34.089299 +AWS,us-east-2,c8gd.4xlarge,spot,NA,0.371258,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545371 +AWS,us-east-2,c8gd.8xlarge,on_demand,NA,1.56768,USD,AWS Pricing API,2025-11-30T08:51:57.031859 +AWS,us-east-2,c8gd.8xlarge,spot,NA,0.654608,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546429 +AWS,us-east-2,c8gd.large,on_demand,NA,0.09798,USD,AWS Pricing API,2025-11-30T08:52:22.916964 +AWS,us-east-2,c8gd.large,spot,NA,0.033376,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547602 +AWS,us-east-2,c8gd.xlarge,on_demand,NA,0.19596,USD,AWS Pricing API,2025-11-30T08:51:45.241000 +AWS,us-east-2,c8gd.xlarge,spot,NA,0.079469,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545805 +AWS,us-east-2,d3.2xlarge,on_demand,NA,0.999,USD,AWS Pricing API,2025-11-30T08:51:58.958480 +AWS,us-east-2,d3.2xlarge,reserved_1y,all_upfront,0.719589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:31.045565 +AWS,us-east-2,d3.2xlarge,reserved_1y,no_upfront,0.719589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:07.643146 +AWS,us-east-2,d3.2xlarge,reserved_1y,partial_upfront,0.719589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:58.334604 +AWS,us-east-2,d3.2xlarge,reserved_3y,all_upfront,0.479863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:39.881127 +AWS,us-east-2,d3.2xlarge,reserved_3y,no_upfront,0.479863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:08.258638 +AWS,us-east-2,d3.2xlarge,reserved_3y,partial_upfront,0.479863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:08.588078 +AWS,us-east-2,d3.2xlarge,spot,NA,0.357323,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546460 +AWS,us-east-2,d3.4xlarge,on_demand,NA,1.998,USD,AWS Pricing API,2025-11-30T08:52:26.194230 +AWS,us-east-2,d3.4xlarge,reserved_1y,all_upfront,1.174658,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:58.080965 +AWS,us-east-2,d3.4xlarge,reserved_1y,no_upfront,1.174658,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:34.871931 +AWS,us-east-2,d3.4xlarge,reserved_1y,partial_upfront,1.174658,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:25.272149 +AWS,us-east-2,d3.4xlarge,reserved_3y,all_upfront,0.391553,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:06.831176 +AWS,us-east-2,d3.4xlarge,reserved_3y,no_upfront,0.391553,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:35.330471 +AWS,us-east-2,d3.4xlarge,reserved_3y,partial_upfront,0.391553,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:36.149579 +AWS,us-east-2,d3.4xlarge,spot,NA,0.931342,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547781 +AWS,us-east-2,d3.8xlarge,on_demand,NA,3.99552,USD,AWS Pricing API,2025-11-30T08:51:28.891299 +AWS,us-east-2,d3.8xlarge,reserved_1y,all_upfront,2.51718,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:01.357658 +AWS,us-east-2,d3.8xlarge,reserved_1y,no_upfront,2.51718,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:37.589135 +AWS,us-east-2,d3.8xlarge,reserved_1y,partial_upfront,2.51718,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:28.717129 +AWS,us-east-2,d3.8xlarge,reserved_3y,all_upfront,2.51718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:10.355978 +AWS,us-east-2,d3.8xlarge,reserved_3y,no_upfront,2.51718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:38.622325 +AWS,us-east-2,d3.8xlarge,reserved_3y,partial_upfront,2.51718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:38.240246 +AWS,us-east-2,d3.8xlarge,spot,NA,1.638056,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545106 +AWS,us-east-2,d3.xlarge,on_demand,NA,0.499,USD,AWS Pricing API,2025-11-30T08:51:26.278610 +AWS,us-east-2,d3.xlarge,reserved_1y,all_upfront,0.479589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:58.773897 +AWS,us-east-2,d3.xlarge,reserved_1y,no_upfront,0.479589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:34.976936 +AWS,us-east-2,d3.xlarge,reserved_1y,partial_upfront,0.479589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:26.118486 +AWS,us-east-2,d3.xlarge,reserved_3y,all_upfront,0.239863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:07.782292 +AWS,us-east-2,d3.xlarge,reserved_3y,no_upfront,0.239863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:36.047325 +AWS,us-east-2,d3.xlarge,reserved_3y,partial_upfront,0.239863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:35.603029 +AWS,us-east-2,d3.xlarge,spot,NA,0.169071,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544971 +AWS,us-east-2,g4dn.12xlarge,on_demand,NA,3.912,USD,AWS Pricing API,2025-11-30T08:51:29.299753 +AWS,us-east-2,g4dn.12xlarge,reserved_1y,all_upfront,2.834,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:01.763019 +AWS,us-east-2,g4dn.12xlarge,reserved_1y,no_upfront,2.834,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:37.999014 +AWS,us-east-2,g4dn.12xlarge,reserved_1y,partial_upfront,2.834,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:29.127429 +AWS,us-east-2,g4dn.12xlarge,reserved_3y,all_upfront,2.834,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:10.759586 +AWS,us-east-2,g4dn.12xlarge,reserved_3y,no_upfront,2.834,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:39.023680 +AWS,us-east-2,g4dn.12xlarge,reserved_3y,partial_upfront,2.834,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:38.655560 +AWS,us-east-2,g4dn.12xlarge,spot,NA,1.238929,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545130 +AWS,us-east-2,g4dn.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T08:51:35.592189 +AWS,us-east-2,g4dn.16xlarge,reserved_1y,all_upfront,2.942808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:07.979992 +AWS,us-east-2,g4dn.16xlarge,reserved_1y,no_upfront,2.942808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:44.302930 +AWS,us-east-2,g4dn.16xlarge,reserved_1y,partial_upfront,2.942808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:35.390363 +AWS,us-east-2,g4dn.16xlarge,reserved_3y,all_upfront,0.980936,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:17.048975 +AWS,us-east-2,g4dn.16xlarge,reserved_3y,no_upfront,0.980936,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:45.282781 +AWS,us-east-2,g4dn.16xlarge,reserved_3y,partial_upfront,0.980936,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:45.043455 +AWS,us-east-2,g4dn.16xlarge,spot,NA,0.953945,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545389 +AWS,us-east-2,g4dn.2xlarge,on_demand,NA,0.752,USD,AWS Pricing API,2025-11-30T08:52:10.099870 +AWS,us-east-2,g4dn.2xlarge,reserved_1y,all_upfront,0.451571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:42.074891 +AWS,us-east-2,g4dn.2xlarge,reserved_1y,no_upfront,0.451571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:18.748233 +AWS,us-east-2,g4dn.2xlarge,reserved_1y,partial_upfront,0.451571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:09.287318 +AWS,us-east-2,g4dn.2xlarge,reserved_3y,all_upfront,0.30119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:50.859341 +AWS,us-east-2,g4dn.2xlarge,reserved_3y,no_upfront,0.30119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:19.302954 +AWS,us-east-2,g4dn.2xlarge,reserved_3y,partial_upfront,0.30119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:19.815227 +AWS,us-east-2,g4dn.2xlarge,spot,NA,0.260467,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547037 +AWS,us-east-2,g4dn.4xlarge,on_demand,NA,1.204,USD,AWS Pricing API,2025-11-30T08:51:50.462570 +AWS,us-east-2,g4dn.4xlarge,reserved_1y,all_upfront,0.759,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:22.429663 +AWS,us-east-2,g4dn.4xlarge,reserved_1y,no_upfront,0.759,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:59.107425 +AWS,us-east-2,g4dn.4xlarge,reserved_1y,partial_upfront,0.759,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:49.931100 +AWS,us-east-2,g4dn.4xlarge,reserved_3y,all_upfront,0.759,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:31.537630 +AWS,us-east-2,g4dn.4xlarge,reserved_3y,no_upfront,0.759,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:59.769242 +AWS,us-east-2,g4dn.4xlarge,reserved_3y,partial_upfront,0.759,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:59.984626 +AWS,us-east-2,g4dn.4xlarge,spot,NA,0.452719,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546112 +AWS,us-east-2,g4dn.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:51:53.222759 +AWS,us-east-2,g4dn.8xlarge,reserved_1y,all_upfront,1.279452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:25.137266 +AWS,us-east-2,g4dn.8xlarge,reserved_1y,no_upfront,1.279452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:01.870825 +AWS,us-east-2,g4dn.8xlarge,reserved_1y,partial_upfront,1.279452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:52.654633 +AWS,us-east-2,g4dn.8xlarge,reserved_3y,all_upfront,0.426484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:34.227331 +AWS,us-east-2,g4dn.8xlarge,reserved_3y,no_upfront,0.426484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:02.538489 +AWS,us-east-2,g4dn.8xlarge,reserved_3y,partial_upfront,0.426484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:02.763351 +AWS,us-east-2,g4dn.8xlarge,spot,NA,0.824777,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546262 +AWS,us-east-2,g4dn.xlarge,on_demand,NA,0.526,USD,AWS Pricing API,2025-11-30T08:52:16.782171 +AWS,us-east-2,g4dn.xlarge,reserved_1y,all_upfront,0.273,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:48.750405 +AWS,us-east-2,g4dn.xlarge,reserved_1y,no_upfront,0.273,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:25.454605 +AWS,us-east-2,g4dn.xlarge,reserved_1y,partial_upfront,0.273,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:15.906006 +AWS,us-east-2,g4dn.xlarge,reserved_3y,all_upfront,0.273,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:57.455924 +AWS,us-east-2,g4dn.xlarge,reserved_3y,no_upfront,0.273,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:25.973326 +AWS,us-east-2,g4dn.xlarge,reserved_3y,partial_upfront,0.273,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:26.615264 +AWS,us-east-2,g4dn.xlarge,spot,NA,0.19567,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547301 +AWS,us-east-2,g5.12xlarge,on_demand,NA,5.672,USD,AWS Pricing API,2025-11-30T08:51:14.526006 +AWS,us-east-2,g5.12xlarge,reserved_1y,all_upfront,5.671995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:47.130649 +AWS,us-east-2,g5.12xlarge,reserved_1y,no_upfront,5.671995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:23.209617 +AWS,us-east-2,g5.12xlarge,reserved_1y,partial_upfront,5.671995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:14.484357 +AWS,us-east-2,g5.12xlarge,reserved_3y,all_upfront,2.835998,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:56.088657 +AWS,us-east-2,g5.12xlarge,reserved_3y,no_upfront,2.835998,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:24.310834 +AWS,us-east-2,g5.12xlarge,reserved_3y,partial_upfront,2.835998,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:23.677004 +AWS,us-east-2,g5.12xlarge,spot,NA,2.227707,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544441 +AWS,us-east-2,g5.16xlarge,on_demand,NA,4.096,USD,AWS Pricing API,2025-11-30T08:51:16.567201 +AWS,us-east-2,g5.16xlarge,reserved_1y,all_upfront,2.58048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:49.161711 +AWS,us-east-2,g5.16xlarge,reserved_1y,no_upfront,2.58048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:25.266595 +AWS,us-east-2,g5.16xlarge,reserved_1y,partial_upfront,2.58048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:16.505050 +AWS,us-east-2,g5.16xlarge,reserved_3y,all_upfront,2.58048,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:58.130740 +AWS,us-east-2,g5.16xlarge,reserved_3y,no_upfront,2.58048,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:26.376902 +AWS,us-east-2,g5.16xlarge,reserved_3y,partial_upfront,2.58048,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:25.802262 +AWS,us-east-2,g5.16xlarge,spot,NA,1.009979,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544541 +AWS,us-east-2,g5.24xlarge,on_demand,NA,8.144,USD,AWS Pricing API,2025-11-30T08:51:15.475125 +AWS,us-east-2,g5.24xlarge,reserved_1y,all_upfront,5.13072,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:48.079019 +AWS,us-east-2,g5.24xlarge,reserved_1y,no_upfront,5.13072,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:24.171168 +AWS,us-east-2,g5.24xlarge,reserved_1y,partial_upfront,5.13072,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:15.433105 +AWS,us-east-2,g5.24xlarge,reserved_3y,all_upfront,5.13072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:57.043905 +AWS,us-east-2,g5.24xlarge,reserved_3y,no_upfront,5.13072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:25.276795 +AWS,us-east-2,g5.24xlarge,reserved_3y,partial_upfront,5.13072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:24.670659 +AWS,us-east-2,g5.24xlarge,spot,NA,2.948185,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544475 +AWS,us-east-2,g5.2xlarge,on_demand,NA,1.212,USD,AWS Pricing API,2025-11-30T08:51:32.723709 +AWS,us-east-2,g5.2xlarge,reserved_1y,all_upfront,0.76356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:05.153692 +AWS,us-east-2,g5.2xlarge,reserved_1y,no_upfront,0.76356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:41.420999 +AWS,us-east-2,g5.2xlarge,reserved_1y,partial_upfront,0.76356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:32.516104 +AWS,us-east-2,g5.2xlarge,reserved_3y,all_upfront,0.76356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:14.213184 +AWS,us-east-2,g5.2xlarge,reserved_3y,no_upfront,0.76356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:42.440029 +AWS,us-east-2,g5.2xlarge,reserved_3y,partial_upfront,0.76356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:42.127457 +AWS,us-east-2,g5.2xlarge,spot,NA,0.406268,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545298 +AWS,us-east-2,g5.48xlarge,on_demand,NA,16.288,USD,AWS Pricing API,2025-11-30T08:51:17.253870 +AWS,us-east-2,g5.48xlarge,reserved_1y,all_upfront,11.971689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:49.836531 +AWS,us-east-2,g5.48xlarge,reserved_1y,no_upfront,11.971689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:25.955207 +AWS,us-east-2,g5.48xlarge,reserved_1y,partial_upfront,11.971689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:17.187106 +AWS,us-east-2,g5.48xlarge,reserved_3y,all_upfront,3.990563,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:58.809672 +AWS,us-east-2,g5.48xlarge,reserved_3y,no_upfront,3.990563,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:27.059310 +AWS,us-east-2,g5.48xlarge,reserved_3y,partial_upfront,3.990563,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:26.490408 +AWS,us-east-2,g5.48xlarge,spot,NA,5.148064,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544593 +AWS,us-east-2,g5.4xlarge,on_demand,NA,1.624,USD,AWS Pricing API,2025-11-30T08:51:26.828459 +AWS,us-east-2,g5.4xlarge,reserved_1y,all_upfront,1.2789,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:59.322993 +AWS,us-east-2,g5.4xlarge,reserved_1y,no_upfront,1.2789,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:35.528575 +AWS,us-east-2,g5.4xlarge,reserved_1y,partial_upfront,1.2789,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:26.665664 +AWS,us-east-2,g5.4xlarge,reserved_3y,all_upfront,1.2789,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:08.321576 +AWS,us-east-2,g5.4xlarge,reserved_3y,no_upfront,1.2789,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:36.587130 +AWS,us-east-2,g5.4xlarge,reserved_3y,partial_upfront,1.2789,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:36.154094 +AWS,us-east-2,g5.4xlarge,spot,NA,0.689535,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545049 +AWS,us-east-2,g5.8xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T08:51:34.638167 +AWS,us-east-2,g5.8xlarge,reserved_1y,all_upfront,1.468761,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:07.038985 +AWS,us-east-2,g5.8xlarge,reserved_1y,no_upfront,1.468761,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:43.343900 +AWS,us-east-2,g5.8xlarge,reserved_1y,partial_upfront,1.468761,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:34.441175 +AWS,us-east-2,g5.8xlarge,reserved_3y,all_upfront,0.979187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:16.103517 +AWS,us-east-2,g5.8xlarge,reserved_3y,no_upfront,0.979187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:44.331305 +AWS,us-east-2,g5.8xlarge,reserved_3y,partial_upfront,0.979187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:44.065596 +AWS,us-east-2,g5.8xlarge,spot,NA,0.89878,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545377 +AWS,us-east-2,g5.xlarge,on_demand,NA,1.006,USD,AWS Pricing API,2025-11-30T08:52:22.370940 +AWS,us-east-2,g5.xlarge,reserved_1y,all_upfront,0.804853,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:54.301226 +AWS,us-east-2,g5.xlarge,reserved_1y,no_upfront,0.804853,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:31.059738 +AWS,us-east-2,g5.xlarge,reserved_1y,partial_upfront,0.804853,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:21.455692 +AWS,us-east-2,g5.xlarge,reserved_3y,all_upfront,0.402418,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:03.050328 +AWS,us-east-2,g5.xlarge,reserved_3y,no_upfront,0.402418,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:31.536250 +AWS,us-east-2,g5.xlarge,reserved_3y,partial_upfront,0.402418,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:32.296885 +AWS,us-east-2,g5.xlarge,spot,NA,0.412853,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547546 +AWS,us-east-2,g6.12xlarge,on_demand,NA,4.6016,USD,AWS Pricing API,2025-11-30T08:51:17.946948 +AWS,us-east-2,g6.12xlarge,reserved_1y,all_upfront,2.64017,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:50.505956 +AWS,us-east-2,g6.12xlarge,reserved_1y,no_upfront,2.64017,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:26.635570 +AWS,us-east-2,g6.12xlarge,reserved_1y,partial_upfront,2.64017,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:17.870173 +AWS,us-east-2,g6.12xlarge,reserved_3y,all_upfront,2.64017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:59.489838 +AWS,us-east-2,g6.12xlarge,reserved_3y,no_upfront,2.64017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:27.748171 +AWS,us-east-2,g6.12xlarge,reserved_3y,partial_upfront,2.64017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:27.181170 +AWS,us-east-2,g6.12xlarge,spot,NA,1.667763,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544574 +AWS,us-east-2,g6.16xlarge,on_demand,NA,3.3968,USD,AWS Pricing API,2025-11-30T08:51:15.204510 +AWS,us-east-2,g6.16xlarge,reserved_1y,all_upfront,4.071119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:47.808250 +AWS,us-east-2,g6.16xlarge,reserved_1y,no_upfront,4.071119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:23.894599 +AWS,us-east-2,g6.16xlarge,reserved_1y,partial_upfront,4.071119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:15.162557 +AWS,us-east-2,g6.16xlarge,reserved_3y,all_upfront,1.35704,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:56.774614 +AWS,us-east-2,g6.16xlarge,reserved_3y,no_upfront,1.35704,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:25.002230 +AWS,us-east-2,g6.16xlarge,reserved_3y,partial_upfront,1.35704,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:24.386336 +AWS,us-east-2,g6.16xlarge,spot,NA,1.142057,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544448 +AWS,us-east-2,g6.24xlarge,on_demand,NA,6.6752,USD,AWS Pricing API,2025-11-30T08:51:15.341048 +AWS,us-east-2,g6.24xlarge,reserved_1y,all_upfront,5.069863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:47.944772 +AWS,us-east-2,g6.24xlarge,reserved_1y,no_upfront,5.069863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:24.032344 +AWS,us-east-2,g6.24xlarge,reserved_1y,partial_upfront,5.069863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:15.300331 +AWS,us-east-2,g6.24xlarge,reserved_3y,all_upfront,1.689954,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:56.907776 +AWS,us-east-2,g6.24xlarge,reserved_3y,no_upfront,1.689954,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:25.136118 +AWS,us-east-2,g6.24xlarge,reserved_3y,partial_upfront,1.689954,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:24.524651 +AWS,us-east-2,g6.24xlarge,spot,NA,2.707526,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544420 +AWS,us-east-2,g6.2xlarge,on_demand,NA,0.9776,USD,AWS Pricing API,2025-11-30T08:51:16.981815 +AWS,us-east-2,g6.2xlarge,reserved_1y,all_upfront,0.79552,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:49.570478 +AWS,us-east-2,g6.2xlarge,reserved_1y,no_upfront,0.79552,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:25.681172 +AWS,us-east-2,g6.2xlarge,reserved_1y,partial_upfront,0.79552,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:16.915621 +AWS,us-east-2,g6.2xlarge,reserved_3y,all_upfront,0.79552,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:58.532622 +AWS,us-east-2,g6.2xlarge,reserved_3y,no_upfront,0.79552,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:26.789669 +AWS,us-east-2,g6.2xlarge,reserved_3y,partial_upfront,0.79552,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:26.215652 +AWS,us-east-2,g6.2xlarge,spot,NA,0.308298,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544509 +AWS,us-east-2,g6.48xlarge,on_demand,NA,13.3504,USD,AWS Pricing API,2025-11-30T08:51:14.796121 +AWS,us-east-2,g6.48xlarge,reserved_1y,all_upfront,8.69111,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:47.402972 +AWS,us-east-2,g6.48xlarge,reserved_1y,no_upfront,8.69111,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:23.482678 +AWS,us-east-2,g6.48xlarge,reserved_1y,partial_upfront,8.69111,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:14.758105 +AWS,us-east-2,g6.48xlarge,reserved_3y,all_upfront,8.69111,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:56.361233 +AWS,us-east-2,g6.48xlarge,reserved_3y,no_upfront,8.69111,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:24.580658 +AWS,us-east-2,g6.48xlarge,reserved_3y,partial_upfront,8.69111,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:23.953727 +AWS,us-east-2,g6.48xlarge,spot,NA,2.479247,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544462 +AWS,us-east-2,g6.4xlarge,on_demand,NA,1.3232,USD,AWS Pricing API,2025-11-30T08:51:15.615955 +AWS,us-east-2,g6.4xlarge,reserved_1y,all_upfront,0.82035,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:48.215497 +AWS,us-east-2,g6.4xlarge,reserved_1y,no_upfront,0.82035,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:24.309295 +AWS,us-east-2,g6.4xlarge,reserved_1y,partial_upfront,0.82035,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:15.569386 +AWS,us-east-2,g6.4xlarge,reserved_3y,all_upfront,0.54691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:57.178078 +AWS,us-east-2,g6.4xlarge,reserved_3y,no_upfront,0.54691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:25.412092 +AWS,us-east-2,g6.4xlarge,reserved_3y,partial_upfront,0.54691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:24.810369 +AWS,us-east-2,g6.4xlarge,spot,NA,0.470509,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544481 +AWS,us-east-2,g6.8xlarge,on_demand,NA,2.0144,USD,AWS Pricing API,2025-11-30T08:51:16.431929 +AWS,us-east-2,g6.8xlarge,reserved_1y,all_upfront,1.712192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:49.028105 +AWS,us-east-2,g6.8xlarge,reserved_1y,no_upfront,1.712192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:25.129123 +AWS,us-east-2,g6.8xlarge,reserved_1y,partial_upfront,1.712192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:16.371108 +AWS,us-east-2,g6.8xlarge,reserved_3y,all_upfront,0.856104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:57.995606 +AWS,us-east-2,g6.8xlarge,reserved_3y,no_upfront,0.856104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:26.231941 +AWS,us-east-2,g6.8xlarge,reserved_3y,partial_upfront,0.856104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:25.665984 +AWS,us-east-2,g6.8xlarge,spot,NA,0.723759,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544522 +AWS,us-east-2,g6.xlarge,on_demand,NA,0.8048,USD,AWS Pricing API,2025-11-30T08:51:14.932101 +AWS,us-east-2,g6.xlarge,reserved_1y,all_upfront,0.489041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:47.539572 +AWS,us-east-2,g6.xlarge,reserved_1y,no_upfront,0.489041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:23.621109 +AWS,us-east-2,g6.xlarge,reserved_1y,partial_upfront,0.489041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:14.891535 +AWS,us-east-2,g6.xlarge,reserved_3y,all_upfront,0.163014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:56.509533 +AWS,us-east-2,g6.xlarge,reserved_3y,no_upfront,0.163014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:24.717360 +AWS,us-east-2,g6.xlarge,reserved_3y,partial_upfront,0.163014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:24.111164 +AWS,us-east-2,g6.xlarge,spot,NA,0.259186,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544455 +AWS,us-east-2,g6e.12xlarge,on_demand,NA,10.49264,USD,AWS Pricing API,2025-11-30T08:51:17.533688 +AWS,us-east-2,g6e.12xlarge,reserved_1y,all_upfront,6.169635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:50.102493 +AWS,us-east-2,g6e.12xlarge,reserved_1y,no_upfront,6.169635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:26.228224 +AWS,us-east-2,g6e.12xlarge,reserved_1y,partial_upfront,6.169635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:17.469472 +AWS,us-east-2,g6e.12xlarge,reserved_3y,all_upfront,2.056545,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:59.082700 +AWS,us-east-2,g6e.12xlarge,reserved_3y,no_upfront,2.056545,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:27.331944 +AWS,us-east-2,g6e.12xlarge,reserved_3y,partial_upfront,2.056545,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:26.768247 +AWS,us-east-2,g6e.12xlarge,spot,NA,3.024254,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544606 +AWS,us-east-2,g6e.16xlarge,on_demand,NA,7.57719,USD,AWS Pricing API,2025-11-30T08:51:16.157231 +AWS,us-east-2,g6e.16xlarge,reserved_1y,all_upfront,5.45553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:48.750208 +AWS,us-east-2,g6e.16xlarge,reserved_1y,no_upfront,5.45553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:24.855035 +AWS,us-east-2,g6e.16xlarge,reserved_1y,partial_upfront,5.45553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:16.102734 +AWS,us-east-2,g6e.16xlarge,reserved_3y,all_upfront,3.637037,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:57.728341 +AWS,us-east-2,g6e.16xlarge,reserved_3y,no_upfront,3.637037,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:25.963028 +AWS,us-east-2,g6e.16xlarge,reserved_3y,partial_upfront,3.637037,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:25.377305 +AWS,us-east-2,g6e.16xlarge,spot,NA,1.898499,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544554 +AWS,us-east-2,g6e.24xlarge,on_demand,NA,15.06559,USD,AWS Pricing API,2025-11-30T08:51:16.023072 +AWS,us-east-2,g6e.24xlarge,reserved_1y,all_upfront,9.49132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:48.616288 +AWS,us-east-2,g6e.24xlarge,reserved_1y,no_upfront,9.49132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:24.719126 +AWS,us-east-2,g6e.24xlarge,reserved_1y,partial_upfront,9.49132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:15.968400 +AWS,us-east-2,g6e.24xlarge,reserved_3y,all_upfront,9.49132,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:57.594647 +AWS,us-east-2,g6e.24xlarge,reserved_3y,no_upfront,9.49132,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:25.818968 +AWS,us-east-2,g6e.24xlarge,reserved_3y,partial_upfront,9.49132,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:25.239773 +AWS,us-east-2,g6e.24xlarge,spot,NA,3.338871,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544516 +AWS,us-east-2,g6e.2xlarge,on_demand,NA,2.24208,USD,AWS Pricing API,2025-11-30T08:51:15.753736 +AWS,us-east-2,g6e.2xlarge,reserved_1y,all_upfront,1.614342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:48.349744 +AWS,us-east-2,g6e.2xlarge,reserved_1y,no_upfront,1.614342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:24.445381 +AWS,us-east-2,g6e.2xlarge,reserved_1y,partial_upfront,1.614342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:15.704077 +AWS,us-east-2,g6e.2xlarge,reserved_3y,all_upfront,1.076214,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:57.314779 +AWS,us-east-2,g6e.2xlarge,reserved_3y,no_upfront,1.076214,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:25.546764 +AWS,us-east-2,g6e.2xlarge,reserved_3y,partial_upfront,1.076214,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:24.948456 +AWS,us-east-2,g6e.2xlarge,spot,NA,0.797186,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544548 +AWS,us-east-2,g6e.48xlarge,on_demand,NA,30.13118,USD,AWS Pricing API,2025-11-30T08:51:15.067510 +AWS,us-east-2,g6e.48xlarge,reserved_1y,all_upfront,17.717123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:47.673106 +AWS,us-east-2,g6e.48xlarge,reserved_1y,no_upfront,17.717123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:23.756151 +AWS,us-east-2,g6e.48xlarge,reserved_1y,partial_upfront,17.717123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:15.029351 +AWS,us-east-2,g6e.48xlarge,reserved_3y,all_upfront,5.905708,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:56.642854 +AWS,us-east-2,g6e.48xlarge,reserved_3y,no_upfront,5.905708,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:24.865115 +AWS,us-east-2,g6e.48xlarge,reserved_3y,partial_upfront,5.905708,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:24.248459 +AWS,us-east-2,g6e.48xlarge,spot,NA,5.791583,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544490 +AWS,us-east-2,g6e.4xlarge,on_demand,NA,3.00424,USD,AWS Pricing API,2025-11-30T08:51:15.887478 +AWS,us-east-2,g6e.4xlarge,reserved_1y,all_upfront,1.766438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:48.482588 +AWS,us-east-2,g6e.4xlarge,reserved_1y,no_upfront,1.766438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:24.581255 +AWS,us-east-2,g6e.4xlarge,reserved_1y,partial_upfront,1.766438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:15.836872 +AWS,us-east-2,g6e.4xlarge,reserved_3y,all_upfront,0.588813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:57.449253 +AWS,us-east-2,g6e.4xlarge,reserved_3y,no_upfront,0.588813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:25.683203 +AWS,us-east-2,g6e.4xlarge,reserved_3y,partial_upfront,0.588813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:25.085321 +AWS,us-east-2,g6e.4xlarge,spot,NA,0.898971,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544503 +AWS,us-east-2,g6e.8xlarge,on_demand,NA,4.52856,USD,AWS Pricing API,2025-11-30T08:51:14.662674 +AWS,us-east-2,g6e.8xlarge,reserved_1y,all_upfront,2.3476,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:47.266157 +AWS,us-east-2,g6e.8xlarge,reserved_1y,no_upfront,2.3476,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:23.346225 +AWS,us-east-2,g6e.8xlarge,reserved_1y,partial_upfront,2.3476,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:14.619348 +AWS,us-east-2,g6e.8xlarge,reserved_3y,all_upfront,2.3476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:56.223448 +AWS,us-east-2,g6e.8xlarge,reserved_3y,no_upfront,2.3476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:24.445091 +AWS,us-east-2,g6e.8xlarge,reserved_3y,partial_upfront,2.3476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:23.815660 +AWS,us-east-2,g6e.8xlarge,spot,NA,1.170595,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544468 +AWS,us-east-2,g6e.xlarge,on_demand,NA,1.861,USD,AWS Pricing API,2025-11-30T08:51:17.395505 +AWS,us-east-2,g6e.xlarge,reserved_1y,all_upfront,1.313128,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:49.970157 +AWS,us-east-2,g6e.xlarge,reserved_1y,no_upfront,1.313128,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:26.092194 +AWS,us-east-2,g6e.xlarge,reserved_1y,partial_upfront,1.313128,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:17.330477 +AWS,us-east-2,g6e.xlarge,reserved_3y,all_upfront,0.437709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:58.947478 +AWS,us-east-2,g6e.xlarge,reserved_3y,no_upfront,0.437709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:27.197773 +AWS,us-east-2,g6e.xlarge,reserved_3y,partial_upfront,0.437709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:26.628349 +AWS,us-east-2,g6e.xlarge,spot,NA,0.541004,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544600 +AWS,us-east-2,gr6.4xlarge,on_demand,NA,1.5392,USD,AWS Pricing API,2025-11-30T08:51:16.295627 +AWS,us-east-2,gr6.4xlarge,reserved_1y,all_upfront,1.169064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:48.893168 +AWS,us-east-2,gr6.4xlarge,reserved_1y,no_upfront,1.169064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:24.992608 +AWS,us-east-2,gr6.4xlarge,reserved_1y,partial_upfront,1.169064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:16.237507 +AWS,us-east-2,gr6.4xlarge,reserved_3y,all_upfront,0.389688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:57.862473 +AWS,us-east-2,gr6.4xlarge,reserved_3y,no_upfront,0.389688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:26.097105 +AWS,us-east-2,gr6.4xlarge,reserved_3y,partial_upfront,0.389688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:25.513610 +AWS,us-east-2,gr6.4xlarge,spot,NA,0.438551,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544535 +AWS,us-east-2,gr6.8xlarge,on_demand,NA,2.4464,USD,AWS Pricing API,2025-11-30T08:51:17.671473 +AWS,us-east-2,gr6.8xlarge,reserved_1y,all_upfront,1.486416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:50.238795 +AWS,us-east-2,gr6.8xlarge,reserved_1y,no_upfront,1.486416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:26.362946 +AWS,us-east-2,gr6.8xlarge,reserved_1y,partial_upfront,1.486416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:17.604094 +AWS,us-east-2,gr6.8xlarge,reserved_3y,all_upfront,0.495472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:59.218006 +AWS,us-east-2,gr6.8xlarge,reserved_3y,no_upfront,0.495472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:27.476267 +AWS,us-east-2,gr6.8xlarge,reserved_3y,partial_upfront,0.495472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:26.904968 +AWS,us-east-2,gr6.8xlarge,spot,NA,0.610443,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544613 +AWS,us-east-2,i2.2xlarge,on_demand,NA,1.705,USD,AWS Pricing API,2025-11-30T08:52:04.325601 +AWS,us-east-2,i2.2xlarge,reserved_1y,all_upfront,0.726525,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:36.338531 +AWS,us-east-2,i2.2xlarge,reserved_1y,no_upfront,0.726525,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:12.995417 +AWS,us-east-2,i2.2xlarge,reserved_1y,partial_upfront,0.726525,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:03.625298 +AWS,us-east-2,i2.2xlarge,reserved_3y,all_upfront,0.449508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:45.183712 +AWS,us-east-2,i2.2xlarge,reserved_3y,no_upfront,0.449508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:13.570889 +AWS,us-east-2,i2.2xlarge,reserved_3y,partial_upfront,0.449508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:13.973319 +AWS,us-east-2,i2.2xlarge,spot,NA,0.295944,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546766 +AWS,us-east-2,i2.4xlarge,on_demand,NA,3.41,USD,AWS Pricing API,2025-11-30T08:52:00.192946 +AWS,us-east-2,i2.4xlarge,reserved_1y,all_upfront,1.422945,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:32.271917 +AWS,us-east-2,i2.4xlarge,reserved_1y,no_upfront,1.422945,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:08.875031 +AWS,us-east-2,i2.4xlarge,reserved_1y,partial_upfront,1.422945,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:59.560888 +AWS,us-east-2,i2.4xlarge,reserved_3y,all_upfront,0.474315,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:41.106902 +AWS,us-east-2,i2.4xlarge,reserved_3y,no_upfront,0.474315,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:09.476579 +AWS,us-east-2,i2.4xlarge,reserved_3y,partial_upfront,0.474315,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:09.836955 +AWS,us-east-2,i2.4xlarge,spot,NA,0.640867,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546515 +AWS,us-east-2,i2.8xlarge,on_demand,NA,6.82,USD,AWS Pricing API,2025-11-30T08:52:06.944535 +AWS,us-east-2,i2.8xlarge,reserved_1y,all_upfront,2.9041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:38.926597 +AWS,us-east-2,i2.8xlarge,reserved_1y,no_upfront,2.9041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:15.597287 +AWS,us-east-2,i2.8xlarge,reserved_1y,partial_upfront,2.9041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:06.195605 +AWS,us-east-2,i2.8xlarge,reserved_3y,all_upfront,1.796033,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:47.761677 +AWS,us-east-2,i2.8xlarge,reserved_3y,no_upfront,1.796033,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:16.138733 +AWS,us-east-2,i2.8xlarge,reserved_3y,partial_upfront,1.796033,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:16.615496 +AWS,us-east-2,i2.8xlarge,spot,NA,0.883422,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546910 +AWS,us-east-2,i2.xlarge,on_demand,NA,0.853,USD,AWS Pricing API,2025-11-30T08:52:07.492311 +AWS,us-east-2,i2.xlarge,reserved_1y,all_upfront,0.438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:39.486848 +AWS,us-east-2,i2.xlarge,reserved_1y,no_upfront,0.438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:16.150298 +AWS,us-east-2,i2.xlarge,reserved_1y,partial_upfront,0.438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:06.730136 +AWS,us-east-2,i2.xlarge,reserved_3y,all_upfront,0.438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:48.297021 +AWS,us-east-2,i2.xlarge,reserved_3y,no_upfront,0.438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:16.689543 +AWS,us-east-2,i2.xlarge,reserved_3y,partial_upfront,0.438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:17.162585 +AWS,us-east-2,i2.xlarge,spot,NA,0.119417,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546878 +AWS,us-east-2,i3.16xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T08:52:13.788366 +AWS,us-east-2,i3.16xlarge,reserved_1y,all_upfront,3.941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:45.743777 +AWS,us-east-2,i3.16xlarge,reserved_1y,no_upfront,3.941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:22.439099 +AWS,us-east-2,i3.16xlarge,reserved_1y,partial_upfront,3.941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:12.944187 +AWS,us-east-2,i3.16xlarge,reserved_3y,all_upfront,3.941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:54.496428 +AWS,us-east-2,i3.16xlarge,reserved_3y,no_upfront,3.941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:22.991268 +AWS,us-east-2,i3.16xlarge,reserved_3y,partial_upfront,3.941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:23.570172 +AWS,us-east-2,i3.16xlarge,spot,NA,1.281397,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547196 +AWS,us-east-2,i3.2xlarge,on_demand,NA,0.624,USD,AWS Pricing API,2025-11-30T08:51:32.862012 +AWS,us-east-2,i3.2xlarge,reserved_1y,all_upfront,0.405854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:05.288586 +AWS,us-east-2,i3.2xlarge,reserved_1y,no_upfront,0.405854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:41.556201 +AWS,us-east-2,i3.2xlarge,reserved_1y,partial_upfront,0.405854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:32.655105 +AWS,us-east-2,i3.2xlarge,reserved_3y,all_upfront,0.270618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:14.348845 +AWS,us-east-2,i3.2xlarge,reserved_3y,no_upfront,0.270618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:42.575940 +AWS,us-east-2,i3.2xlarge,reserved_3y,partial_upfront,0.270618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:42.268614 +AWS,us-east-2,i3.2xlarge,spot,NA,0.245578,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545310 +AWS,us-east-2,i3.4xlarge,on_demand,NA,1.248,USD,AWS Pricing API,2025-11-30T08:51:34.368933 +AWS,us-east-2,i3.4xlarge,reserved_1y,all_upfront,0.811594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:06.769329 +AWS,us-east-2,i3.4xlarge,reserved_1y,no_upfront,0.811594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:43.071844 +AWS,us-east-2,i3.4xlarge,reserved_1y,partial_upfront,0.811594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:34.164099 +AWS,us-east-2,i3.4xlarge,reserved_3y,all_upfront,0.541198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:15.837606 +AWS,us-east-2,i3.4xlarge,reserved_3y,no_upfront,0.541198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:44.062293 +AWS,us-east-2,i3.4xlarge,reserved_3y,partial_upfront,0.541198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:43.792695 +AWS,us-east-2,i3.4xlarge,spot,NA,0.462269,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545340 +AWS,us-east-2,i3.8xlarge,on_demand,NA,2.496,USD,AWS Pricing API,2025-11-30T08:51:28.467491 +AWS,us-east-2,i3.8xlarge,reserved_1y,all_upfront,2.246817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:00.941594 +AWS,us-east-2,i3.8xlarge,reserved_1y,no_upfront,2.246817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:37.176298 +AWS,us-east-2,i3.8xlarge,reserved_1y,partial_upfront,2.246817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:28.308236 +AWS,us-east-2,i3.8xlarge,reserved_3y,all_upfront,1.123606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:09.937411 +AWS,us-east-2,i3.8xlarge,reserved_3y,no_upfront,1.123606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:38.216753 +AWS,us-east-2,i3.8xlarge,reserved_3y,partial_upfront,1.123606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:37.818821 +AWS,us-east-2,i3.8xlarge,spot,NA,0.587216,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545080 +AWS,us-east-2,i3.large,on_demand,NA,0.156,USD,AWS Pricing API,2025-11-30T08:51:33.547499 +AWS,us-east-2,i3.large,reserved_1y,all_upfront,0.140251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:05.963645 +AWS,us-east-2,i3.large,reserved_1y,no_upfront,0.140251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:42.251359 +AWS,us-east-2,i3.large,reserved_1y,partial_upfront,0.140251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:33.341836 +AWS,us-east-2,i3.large,reserved_3y,all_upfront,0.070084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:15.024993 +AWS,us-east-2,i3.large,reserved_3y,no_upfront,0.070084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:43.251794 +AWS,us-east-2,i3.large,reserved_3y,partial_upfront,0.070084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:42.969868 +AWS,us-east-2,i3.large,spot,NA,0.038101,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545346 +AWS,us-east-2,i3.xlarge,on_demand,NA,0.312,USD,AWS Pricing API,2025-11-30T08:51:59.367446 +AWS,us-east-2,i3.xlarge,reserved_1y,all_upfront,0.20237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:31.451314 +AWS,us-east-2,i3.xlarge,reserved_1y,no_upfront,0.20237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:08.054455 +AWS,us-east-2,i3.xlarge,reserved_1y,partial_upfront,0.20237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:58.744985 +AWS,us-east-2,i3.xlarge,reserved_3y,all_upfront,0.13479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:40.281507 +AWS,us-east-2,i3.xlarge,reserved_3y,no_upfront,0.13479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:08.665675 +AWS,us-east-2,i3.xlarge,reserved_3y,partial_upfront,0.13479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:09.005698 +AWS,us-east-2,i3.xlarge,spot,NA,0.098593,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546480 +AWS,us-east-2,i3en.12xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:51:30.534561 +AWS,us-east-2,i3en.12xlarge,reserved_1y,all_upfront,2.719,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:02.982381 +AWS,us-east-2,i3en.12xlarge,reserved_1y,no_upfront,2.719,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:39.224783 +AWS,us-east-2,i3en.12xlarge,reserved_1y,partial_upfront,2.719,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:30.343393 +AWS,us-east-2,i3en.12xlarge,reserved_3y,all_upfront,2.719,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:11.978936 +AWS,us-east-2,i3en.12xlarge,reserved_3y,no_upfront,2.719,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:40.256037 +AWS,us-east-2,i3en.12xlarge,reserved_3y,partial_upfront,2.719,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:39.906024 +AWS,us-east-2,i3en.12xlarge,spot,NA,1.73883,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545156 +AWS,us-east-2,i3en.24xlarge,on_demand,NA,10.848,USD,AWS Pricing API,2025-11-30T08:51:35.866409 +AWS,us-east-2,i3en.24xlarge,reserved_1y,all_upfront,5.438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:08.252622 +AWS,us-east-2,i3en.24xlarge,reserved_1y,no_upfront,5.438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:44.580465 +AWS,us-east-2,i3en.24xlarge,reserved_1y,partial_upfront,5.438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:35.662917 +AWS,us-east-2,i3en.24xlarge,reserved_3y,all_upfront,5.438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:17.317424 +AWS,us-east-2,i3en.24xlarge,reserved_3y,no_upfront,5.438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:45.552030 +AWS,us-east-2,i3en.24xlarge,reserved_3y,partial_upfront,5.438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:45.325850 +AWS,us-east-2,i3en.24xlarge,spot,NA,2.932144,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545408 +AWS,us-east-2,i3en.2xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:51:25.588445 +AWS,us-east-2,i3en.2xlarge,reserved_1y,all_upfront,0.839338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:58.098218 +AWS,us-east-2,i3en.2xlarge,reserved_1y,no_upfront,0.839338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:34.293591 +AWS,us-east-2,i3en.2xlarge,reserved_1y,partial_upfront,0.839338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:25.431815 +AWS,us-east-2,i3en.2xlarge,reserved_3y,all_upfront,0.419779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:07.095019 +AWS,us-east-2,i3en.2xlarge,reserved_3y,no_upfront,0.419779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:35.371162 +AWS,us-east-2,i3en.2xlarge,reserved_3y,partial_upfront,0.419779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:34.909913 +AWS,us-east-2,i3en.2xlarge,spot,NA,0.32026,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545010 +AWS,us-east-2,i3en.3xlarge,on_demand,NA,1.356,USD,AWS Pricing API,2025-11-30T08:52:21.001986 +AWS,us-east-2,i3en.3xlarge,reserved_1y,all_upfront,0.924,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:52.937929 +AWS,us-east-2,i3en.3xlarge,reserved_1y,no_upfront,0.924,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:29.681315 +AWS,us-east-2,i3en.3xlarge,reserved_1y,partial_upfront,0.924,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:20.091241 +AWS,us-east-2,i3en.3xlarge,reserved_3y,all_upfront,0.924,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:01.670819 +AWS,us-east-2,i3en.3xlarge,reserved_3y,no_upfront,0.924,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:30.171621 +AWS,us-east-2,i3en.3xlarge,reserved_3y,partial_upfront,0.924,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:30.905200 +AWS,us-east-2,i3en.3xlarge,spot,NA,0.366977,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547534 +AWS,us-east-2,i3en.6xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:52:12.289443 +AWS,us-east-2,i3en.6xlarge,reserved_1y,all_upfront,1.18,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:44.246713 +AWS,us-east-2,i3en.6xlarge,reserved_1y,no_upfront,1.18,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:20.932627 +AWS,us-east-2,i3en.6xlarge,reserved_1y,partial_upfront,1.18,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:11.455113 +AWS,us-east-2,i3en.6xlarge,reserved_3y,all_upfront,1.18,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:53.006218 +AWS,us-east-2,i3en.6xlarge,reserved_3y,no_upfront,1.18,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:21.511944 +AWS,us-east-2,i3en.6xlarge,reserved_3y,partial_upfront,1.18,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:22.042748 +AWS,us-east-2,i3en.6xlarge,spot,NA,0.726465,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547158 +AWS,us-east-2,i3en.large,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:51:44.679051 +AWS,us-east-2,i3en.large,reserved_1y,all_upfront,0.143607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:16.750292 +AWS,us-east-2,i3en.large,reserved_1y,no_upfront,0.143607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:53.346272 +AWS,us-east-2,i3en.large,reserved_1y,partial_upfront,0.143607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:44.220964 +AWS,us-east-2,i3en.large,reserved_3y,all_upfront,0.047869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:25.813491 +AWS,us-east-2,i3en.large,reserved_3y,no_upfront,0.047869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:54.087167 +AWS,us-east-2,i3en.large,reserved_3y,partial_upfront,0.047869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:54.168734 +AWS,us-east-2,i3en.large,spot,NA,0.053351,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545836 +AWS,us-east-2,i3en.xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:51:43.986409 +AWS,us-east-2,i3en.xlarge,reserved_1y,all_upfront,0.356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:16.075058 +AWS,us-east-2,i3en.xlarge,reserved_1y,no_upfront,0.356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:52.647105 +AWS,us-east-2,i3en.xlarge,reserved_1y,partial_upfront,0.356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:43.543427 +AWS,us-east-2,i3en.xlarge,reserved_3y,all_upfront,0.356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:25.140346 +AWS,us-east-2,i3en.xlarge,reserved_3y,no_upfront,0.356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:53.417102 +AWS,us-east-2,i3en.xlarge,reserved_3y,partial_upfront,0.356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:53.467598 +AWS,us-east-2,i3en.xlarge,spot,NA,0.160493,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545775 +AWS,us-east-2,i4g.16xlarge,on_demand,NA,4.94208,USD,AWS Pricing API,2025-11-30T08:52:01.288327 +AWS,us-east-2,i4g.16xlarge,reserved_1y,all_upfront,3.84821,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:33.353986 +AWS,us-east-2,i4g.16xlarge,reserved_1y,no_upfront,3.84821,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:09.981936 +AWS,us-east-2,i4g.16xlarge,reserved_1y,partial_upfront,3.84821,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:00.633523 +AWS,us-east-2,i4g.16xlarge,reserved_3y,all_upfront,3.84821,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:42.193990 +AWS,us-east-2,i4g.16xlarge,reserved_3y,no_upfront,3.84821,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:10.564537 +AWS,us-east-2,i4g.16xlarge,reserved_3y,partial_upfront,3.84821,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:10.945194 +AWS,us-east-2,i4g.16xlarge,spot,NA,1.208443,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546599 +AWS,us-east-2,i4g.2xlarge,on_demand,NA,0.61776,USD,AWS Pricing API,2025-11-30T08:52:15.427233 +AWS,us-east-2,i4g.2xlarge,reserved_1y,all_upfront,0.746119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:47.384320 +AWS,us-east-2,i4g.2xlarge,reserved_1y,no_upfront,0.746119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:24.084100 +AWS,us-east-2,i4g.2xlarge,reserved_1y,partial_upfront,0.746119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:14.561955 +AWS,us-east-2,i4g.2xlarge,reserved_3y,all_upfront,0.248706,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:56.110927 +AWS,us-east-2,i4g.2xlarge,reserved_3y,no_upfront,0.248706,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:24.621484 +AWS,us-east-2,i4g.2xlarge,reserved_3y,partial_upfront,0.248706,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:25.239015 +AWS,us-east-2,i4g.2xlarge,spot,NA,0.196027,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547239 +AWS,us-east-2,i4g.4xlarge,on_demand,NA,1.23552,USD,AWS Pricing API,2025-11-30T08:52:14.334523 +AWS,us-east-2,i4g.4xlarge,reserved_1y,all_upfront,0.748288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:46.288106 +AWS,us-east-2,i4g.4xlarge,reserved_1y,no_upfront,0.748288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:22.980574 +AWS,us-east-2,i4g.4xlarge,reserved_1y,partial_upfront,0.748288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:13.484957 +AWS,us-east-2,i4g.4xlarge,reserved_3y,all_upfront,0.249429,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:55.030595 +AWS,us-east-2,i4g.4xlarge,reserved_3y,no_upfront,0.249429,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:23.544982 +AWS,us-east-2,i4g.4xlarge,reserved_3y,partial_upfront,0.249429,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:24.135126 +AWS,us-east-2,i4g.4xlarge,spot,NA,0.350149,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547176 +AWS,us-east-2,i4g.8xlarge,on_demand,NA,2.47104,USD,AWS Pricing API,2025-11-30T08:52:01.560964 +AWS,us-east-2,i4g.8xlarge,reserved_1y,all_upfront,1.795776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:33.625304 +AWS,us-east-2,i4g.8xlarge,reserved_1y,no_upfront,1.795776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:10.251653 +AWS,us-east-2,i4g.8xlarge,reserved_1y,partial_upfront,1.795776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:00.901559 +AWS,us-east-2,i4g.8xlarge,reserved_3y,all_upfront,0.598592,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:42.465965 +AWS,us-east-2,i4g.8xlarge,reserved_3y,no_upfront,0.598592,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:10.834258 +AWS,us-east-2,i4g.8xlarge,reserved_3y,partial_upfront,0.598592,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:11.221696 +AWS,us-east-2,i4g.8xlarge,spot,NA,0.72245,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546611 +AWS,us-east-2,i4g.large,on_demand,NA,0.15444,USD,AWS Pricing API,2025-11-30T08:51:34.910031 +AWS,us-east-2,i4g.large,reserved_1y,all_upfront,0.08573,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:07.309635 +AWS,us-east-2,i4g.large,reserved_1y,no_upfront,0.08573,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:43.619081 +AWS,us-east-2,i4g.large,reserved_1y,partial_upfront,0.08573,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:34.713747 +AWS,us-east-2,i4g.large,reserved_3y,all_upfront,0.08573,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:16.379822 +AWS,us-east-2,i4g.large,reserved_3y,no_upfront,0.08573,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:44.603563 +AWS,us-east-2,i4g.large,reserved_3y,partial_upfront,0.08573,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:44.342777 +AWS,us-east-2,i4g.large,spot,NA,0.043689,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545383 +AWS,us-east-2,i4g.xlarge,on_demand,NA,0.30888,USD,AWS Pricing API,2025-11-30T08:51:58.128537 +AWS,us-east-2,i4g.xlarge,reserved_1y,all_upfront,0.190884,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:30.228215 +AWS,us-east-2,i4g.xlarge,reserved_1y,no_upfront,0.190884,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:06.824887 +AWS,us-east-2,i4g.xlarge,reserved_1y,partial_upfront,0.190884,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:57.529065 +AWS,us-east-2,i4g.xlarge,reserved_3y,all_upfront,0.127261,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:39.078675 +AWS,us-east-2,i4g.xlarge,reserved_3y,no_upfront,0.127261,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:07.452887 +AWS,us-east-2,i4g.xlarge,reserved_3y,partial_upfront,0.127261,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:07.754779 +AWS,us-east-2,i4g.xlarge,spot,NA,0.107535,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546441 +AWS,us-east-2,i4i.16xlarge,on_demand,NA,5.491,USD,AWS Pricing API,2025-11-30T08:51:48.960646 +AWS,us-east-2,i4i.16xlarge,reserved_1y,all_upfront,8.297831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:20.946166 +AWS,us-east-2,i4i.16xlarge,reserved_1y,no_upfront,8.297831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:57.603755 +AWS,us-east-2,i4i.16xlarge,reserved_1y,partial_upfront,8.297831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:48.434944 +AWS,us-east-2,i4i.16xlarge,reserved_3y,all_upfront,2.765944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:30.035643 +AWS,us-east-2,i4i.16xlarge,reserved_3y,no_upfront,2.765944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:58.280162 +AWS,us-east-2,i4i.16xlarge,reserved_3y,partial_upfront,2.765944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:58.448055 +AWS,us-east-2,i4i.16xlarge,spot,NA,1.877343,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546021 +AWS,us-east-2,i4i.2xlarge,on_demand,NA,0.686,USD,AWS Pricing API,2025-11-30T08:52:05.182195 +AWS,us-east-2,i4i.2xlarge,reserved_1y,all_upfront,0.82911,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:37.153282 +AWS,us-east-2,i4i.2xlarge,reserved_1y,no_upfront,0.82911,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:13.818145 +AWS,us-east-2,i4i.2xlarge,reserved_1y,partial_upfront,0.82911,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:04.435370 +AWS,us-east-2,i4i.2xlarge,reserved_3y,all_upfront,0.27637,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:45.998220 +AWS,us-east-2,i4i.2xlarge,reserved_3y,no_upfront,0.27637,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:14.388137 +AWS,us-east-2,i4i.2xlarge,reserved_3y,partial_upfront,0.27637,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:14.803983 +AWS,us-east-2,i4i.2xlarge,spot,NA,0.276108,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546759 +AWS,us-east-2,i4i.32xlarge,on_demand,NA,10.9824,USD,AWS Pricing API,2025-11-30T08:52:17.598312 +AWS,us-east-2,i4i.32xlarge,reserved_1y,all_upfront,8.55187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:49.563355 +AWS,us-east-2,i4i.32xlarge,reserved_1y,no_upfront,8.55187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:26.269063 +AWS,us-east-2,i4i.32xlarge,reserved_1y,partial_upfront,8.55187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:16.716781 +AWS,us-east-2,i4i.32xlarge,reserved_3y,all_upfront,8.55187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:58.267382 +AWS,us-east-2,i4i.32xlarge,reserved_3y,no_upfront,8.55187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:26.777783 +AWS,us-east-2,i4i.32xlarge,reserved_3y,partial_upfront,8.55187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:27.434835 +AWS,us-east-2,i4i.32xlarge,spot,NA,3.587687,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547384 +AWS,us-east-2,i4i.4xlarge,on_demand,NA,1.373,USD,AWS Pricing API,2025-11-30T08:51:53.493388 +AWS,us-east-2,i4i.4xlarge,reserved_1y,all_upfront,1.018018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:25.408484 +AWS,us-east-2,i4i.4xlarge,reserved_1y,no_upfront,1.018018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:02.148789 +AWS,us-east-2,i4i.4xlarge,reserved_1y,partial_upfront,1.018018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:52.931533 +AWS,us-east-2,i4i.4xlarge,reserved_3y,all_upfront,0.678673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:34.494667 +AWS,us-east-2,i4i.4xlarge,reserved_3y,no_upfront,0.678673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:02.809908 +AWS,us-east-2,i4i.4xlarge,reserved_3y,partial_upfront,0.678673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:03.036562 +AWS,us-east-2,i4i.4xlarge,spot,NA,0.476747,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546218 +AWS,us-east-2,i4i.8xlarge,on_demand,NA,2.746,USD,AWS Pricing API,2025-11-30T08:51:56.482943 +AWS,us-east-2,i4i.8xlarge,reserved_1y,all_upfront,1.27,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:28.596770 +AWS,us-east-2,i4i.8xlarge,reserved_1y,no_upfront,1.27,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:05.158401 +AWS,us-east-2,i4i.8xlarge,reserved_1y,partial_upfront,1.27,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:55.901594 +AWS,us-east-2,i4i.8xlarge,reserved_3y,all_upfront,1.27,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:37.455820 +AWS,us-east-2,i4i.8xlarge,reserved_3y,no_upfront,1.27,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:05.822377 +AWS,us-east-2,i4i.8xlarge,reserved_3y,partial_upfront,1.27,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:06.092549 +AWS,us-east-2,i4i.8xlarge,spot,NA,0.839622,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546364 +AWS,us-east-2,i4i.large,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:52:22.233197 +AWS,us-east-2,i4i.large,reserved_1y,all_upfront,0.095,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:54.167729 +AWS,us-east-2,i4i.large,reserved_1y,no_upfront,0.095,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:30.924833 +AWS,us-east-2,i4i.large,reserved_1y,partial_upfront,0.095,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:21.322457 +AWS,us-east-2,i4i.large,reserved_3y,all_upfront,0.095,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:02.916384 +AWS,us-east-2,i4i.large,reserved_3y,no_upfront,0.095,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:31.404673 +AWS,us-east-2,i4i.large,reserved_3y,partial_upfront,0.095,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:32.159089 +AWS,us-east-2,i4i.large,spot,NA,0.041997,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547583 +AWS,us-east-2,i4i.xlarge,on_demand,NA,0.343,USD,AWS Pricing API,2025-11-30T08:52:03.506013 +AWS,us-east-2,i4i.xlarge,reserved_1y,all_upfront,0.294548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:35.529685 +AWS,us-east-2,i4i.xlarge,reserved_1y,no_upfront,0.294548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:12.164820 +AWS,us-east-2,i4i.xlarge,reserved_1y,partial_upfront,0.294548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:02.813605 +AWS,us-east-2,i4i.xlarge,reserved_3y,all_upfront,0.147516,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:44.356563 +AWS,us-east-2,i4i.xlarge,reserved_3y,no_upfront,0.147516,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:12.750539 +AWS,us-east-2,i4i.xlarge,reserved_3y,partial_upfront,0.147516,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:13.143509 +AWS,us-east-2,i4i.xlarge,spot,NA,0.105119,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546677 +AWS,us-east-2,i7i.12xlarge,on_demand,NA,4.5302,USD,AWS Pricing API,2025-11-30T08:51:41.357360 +AWS,us-east-2,i7i.12xlarge,spot,NA,1.372034,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545651 +AWS,us-east-2,i7i.16xlarge,on_demand,NA,6.0403,USD,AWS Pricing API,2025-11-30T08:52:27.555920 +AWS,us-east-2,i7i.16xlarge,spot,NA,1.748242,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547813 +AWS,us-east-2,i7i.24xlarge,on_demand,NA,9.0605,USD,AWS Pricing API,2025-11-30T08:51:21.910303 +AWS,us-east-2,i7i.24xlarge,spot,NA,2.671624,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544799 +AWS,us-east-2,i7i.2xlarge,on_demand,NA,0.755,USD,AWS Pricing API,2025-11-30T08:51:19.035650 +AWS,us-east-2,i7i.2xlarge,spot,NA,0.255348,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544674 +AWS,us-east-2,i7i.48xlarge,on_demand,NA,18.121,USD,AWS Pricing API,2025-11-30T08:51:20.806912 +AWS,us-east-2,i7i.48xlarge,spot,NA,5.99113,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544726 +AWS,us-east-2,i7i.4xlarge,on_demand,NA,1.5101,USD,AWS Pricing API,2025-11-30T08:52:24.416544 +AWS,us-east-2,i7i.4xlarge,spot,NA,0.49755,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547692 +AWS,us-east-2,i7i.8xlarge,on_demand,NA,3.0202,USD,AWS Pricing API,2025-11-30T08:51:54.177585 +AWS,us-east-2,i7i.8xlarge,spot,NA,1.075314,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546255 +AWS,us-east-2,i7i.large,on_demand,NA,0.1888,USD,AWS Pricing API,2025-11-30T08:51:37.428048 +AWS,us-east-2,i7i.large,spot,NA,0.041699,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545501 +AWS,us-east-2,i7i.xlarge,on_demand,NA,0.3775,USD,AWS Pricing API,2025-11-30T08:51:46.056115 +AWS,us-east-2,i7i.xlarge,spot,NA,0.111546,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545904 +AWS,us-east-2,i8g.12xlarge,on_demand,NA,4.1184,USD,AWS Pricing API,2025-11-30T08:52:17.868802 +AWS,us-east-2,i8g.12xlarge,spot,NA,0.83875,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547404 +AWS,us-east-2,i8g.16xlarge,on_demand,NA,5.4912,USD,AWS Pricing API,2025-11-30T08:52:14.877764 +AWS,us-east-2,i8g.16xlarge,spot,NA,1.122022,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547283 +AWS,us-east-2,i8g.24xlarge,on_demand,NA,8.2368,USD,AWS Pricing API,2025-11-30T08:52:17.325714 +AWS,us-east-2,i8g.24xlarge,spot,NA,1.379611,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547319 +AWS,us-east-2,i8g.2xlarge,on_demand,NA,0.6864,USD,AWS Pricing API,2025-11-30T08:51:44.123105 +AWS,us-east-2,i8g.2xlarge,spot,NA,0.159528,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545744 +AWS,us-east-2,i8g.48xlarge,on_demand,NA,16.4736,USD,AWS Pricing API,2025-11-30T08:51:24.368750 +AWS,us-east-2,i8g.48xlarge,spot,NA,2.179153,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544913 +AWS,us-east-2,i8g.4xlarge,on_demand,NA,1.3728,USD,AWS Pricing API,2025-11-30T08:52:12.016589 +AWS,us-east-2,i8g.4xlarge,spot,NA,0.370045,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547062 +AWS,us-east-2,i8g.8xlarge,on_demand,NA,2.7456,USD,AWS Pricing API,2025-11-30T08:52:31.310492 +AWS,us-east-2,i8g.8xlarge,spot,NA,0.681353,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547980 +AWS,us-east-2,i8g.large,on_demand,NA,0.1716,USD,AWS Pricing API,2025-11-30T08:51:48.682647 +AWS,us-east-2,i8g.large,spot,NA,0.032278,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545978 +AWS,us-east-2,i8g.xlarge,on_demand,NA,0.3432,USD,AWS Pricing API,2025-11-30T08:51:40.509092 +AWS,us-east-2,i8g.xlarge,spot,NA,0.079534,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545633 +AWS,us-east-2,im4gn.16xlarge,on_demand,NA,5.82067,USD,AWS Pricing API,2025-11-30T08:51:47.714776 +AWS,us-east-2,im4gn.16xlarge,reserved_1y,all_upfront,4.266225,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:19.736785 +AWS,us-east-2,im4gn.16xlarge,reserved_1y,no_upfront,4.266225,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:56.360869 +AWS,us-east-2,im4gn.16xlarge,reserved_1y,partial_upfront,4.266225,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:47.221149 +AWS,us-east-2,im4gn.16xlarge,reserved_3y,all_upfront,2.844155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:28.800757 +AWS,us-east-2,im4gn.16xlarge,reserved_3y,no_upfront,2.844155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:57.064313 +AWS,us-east-2,im4gn.16xlarge,reserved_3y,partial_upfront,2.844155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:57.214605 +AWS,us-east-2,im4gn.16xlarge,spot,NA,1.730445,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545966 +AWS,us-east-2,im4gn.2xlarge,on_demand,NA,0.72758,USD,AWS Pricing API,2025-11-30T08:51:45.377827 +AWS,us-east-2,im4gn.2xlarge,reserved_1y,all_upfront,0.435502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:17.416292 +AWS,us-east-2,im4gn.2xlarge,reserved_1y,no_upfront,0.435502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:54.041797 +AWS,us-east-2,im4gn.2xlarge,reserved_1y,partial_upfront,0.435502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:44.900628 +AWS,us-east-2,im4gn.2xlarge,reserved_3y,all_upfront,0.145167,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:26.504894 +AWS,us-east-2,im4gn.2xlarge,reserved_3y,no_upfront,0.145167,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:54.768005 +AWS,us-east-2,im4gn.2xlarge,reserved_3y,partial_upfront,0.145167,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:54.848837 +AWS,us-east-2,im4gn.2xlarge,spot,NA,0.158791,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545812 +AWS,us-east-2,im4gn.4xlarge,on_demand,NA,1.45517,USD,AWS Pricing API,2025-11-30T08:51:39.952834 +AWS,us-east-2,im4gn.4xlarge,reserved_1y,all_upfront,1.045205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:12.156149 +AWS,us-east-2,im4gn.4xlarge,reserved_1y,no_upfront,1.045205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:48.604455 +AWS,us-east-2,im4gn.4xlarge,reserved_1y,partial_upfront,1.045205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:39.592336 +AWS,us-east-2,im4gn.4xlarge,reserved_3y,all_upfront,0.348402,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:21.232406 +AWS,us-east-2,im4gn.4xlarge,reserved_3y,no_upfront,0.348402,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:49.476343 +AWS,us-east-2,im4gn.4xlarge,reserved_3y,partial_upfront,0.348402,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:49.458700 +AWS,us-east-2,im4gn.4xlarge,spot,NA,0.324165,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545574 +AWS,us-east-2,im4gn.8xlarge,on_demand,NA,2.91034,USD,AWS Pricing API,2025-11-30T08:51:40.363180 +AWS,us-east-2,im4gn.8xlarge,reserved_1y,all_upfront,1.777613,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:12.572959 +AWS,us-east-2,im4gn.8xlarge,reserved_1y,no_upfront,1.777613,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:49.013850 +AWS,us-east-2,im4gn.8xlarge,reserved_1y,partial_upfront,1.777613,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:40.017389 +AWS,us-east-2,im4gn.8xlarge,reserved_3y,all_upfront,1.185071,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:21.646850 +AWS,us-east-2,im4gn.8xlarge,reserved_3y,no_upfront,1.185071,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:49.879556 +AWS,us-east-2,im4gn.8xlarge,reserved_3y,partial_upfront,1.185071,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:49.876786 +AWS,us-east-2,im4gn.8xlarge,spot,NA,0.818209,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545586 +AWS,us-east-2,im4gn.large,on_demand,NA,0.1819,USD,AWS Pricing API,2025-11-30T08:51:41.073800 +AWS,us-east-2,im4gn.large,reserved_1y,all_upfront,0.111144,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:13.247802 +AWS,us-east-2,im4gn.large,reserved_1y,no_upfront,0.111144,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:49.699264 +AWS,us-east-2,im4gn.large,reserved_1y,partial_upfront,0.111144,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:40.684584 +AWS,us-east-2,im4gn.large,reserved_3y,all_upfront,0.074081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:22.316474 +AWS,us-east-2,im4gn.large,reserved_3y,no_upfront,0.074081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:50.577275 +AWS,us-east-2,im4gn.large,reserved_3y,partial_upfront,0.074081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:50.555671 +AWS,us-east-2,im4gn.large,spot,NA,0.03955,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545670 +AWS,us-east-2,im4gn.xlarge,on_demand,NA,0.36379,USD,AWS Pricing API,2025-11-30T08:52:29.640796 +AWS,us-east-2,im4gn.xlarge,reserved_1y,all_upfront,0.16632,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:01.480332 +AWS,us-east-2,im4gn.xlarge,reserved_1y,no_upfront,0.16632,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:38.297179 +AWS,us-east-2,im4gn.xlarge,reserved_1y,partial_upfront,0.16632,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:28.639290 +AWS,us-east-2,im4gn.xlarge,reserved_3y,all_upfront,0.16632,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:10.202268 +AWS,us-east-2,im4gn.xlarge,reserved_3y,no_upfront,0.16632,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:38.710413 +AWS,us-east-2,im4gn.xlarge,reserved_3y,partial_upfront,0.16632,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:39.635928 +AWS,us-east-2,im4gn.xlarge,spot,NA,0.095093,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547865 +AWS,us-east-2,is4gen.2xlarge,on_demand,NA,1.1526,USD,AWS Pricing API,2025-11-30T08:51:38.251994 +AWS,us-east-2,is4gen.2xlarge,reserved_1y,all_upfront,0.748655,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:10.537220 +AWS,us-east-2,is4gen.2xlarge,reserved_1y,no_upfront,0.748655,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:46.908214 +AWS,us-east-2,is4gen.2xlarge,reserved_1y,partial_upfront,0.748655,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:37.963371 +AWS,us-east-2,is4gen.2xlarge,reserved_3y,all_upfront,0.499112,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:19.619767 +AWS,us-east-2,is4gen.2xlarge,reserved_3y,no_upfront,0.499112,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:47.854299 +AWS,us-east-2,is4gen.2xlarge,reserved_3y,partial_upfront,0.499112,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:47.698540 +AWS,us-east-2,is4gen.2xlarge,spot,NA,0.247398,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545519 +AWS,us-east-2,is4gen.4xlarge,on_demand,NA,2.3052,USD,AWS Pricing API,2025-11-30T08:52:21.959633 +AWS,us-east-2,is4gen.4xlarge,reserved_1y,all_upfront,1.467466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:53.879151 +AWS,us-east-2,is4gen.4xlarge,reserved_1y,no_upfront,1.467466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:30.635665 +AWS,us-east-2,is4gen.4xlarge,reserved_1y,partial_upfront,1.467466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:21.050336 +AWS,us-east-2,is4gen.4xlarge,reserved_3y,all_upfront,0.489155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:02.645338 +AWS,us-east-2,is4gen.4xlarge,reserved_3y,no_upfront,0.489155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:31.121315 +AWS,us-east-2,is4gen.4xlarge,reserved_3y,partial_upfront,0.489155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:31.881799 +AWS,us-east-2,is4gen.4xlarge,spot,NA,0.496759,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547559 +AWS,us-east-2,is4gen.8xlarge,on_demand,NA,4.6104,USD,AWS Pricing API,2025-11-30T08:51:19.988276 +AWS,us-east-2,is4gen.8xlarge,reserved_1y,all_upfront,2.994734,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:52.537418 +AWS,us-east-2,is4gen.8xlarge,reserved_1y,no_upfront,2.994734,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:28.684710 +AWS,us-east-2,is4gen.8xlarge,reserved_1y,partial_upfront,2.994734,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:19.886840 +AWS,us-east-2,is4gen.8xlarge,reserved_3y,all_upfront,1.996485,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:01.525104 +AWS,us-east-2,is4gen.8xlarge,reserved_3y,no_upfront,1.996485,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:29.786452 +AWS,us-east-2,is4gen.8xlarge,reserved_3y,partial_upfront,1.996485,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:29.247356 +AWS,us-east-2,is4gen.8xlarge,spot,NA,1.088363,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544746 +AWS,us-east-2,is4gen.large,on_demand,NA,0.28815,USD,AWS Pricing API,2025-11-30T08:52:01.978390 +AWS,us-east-2,is4gen.large,reserved_1y,all_upfront,0.183447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:34.031132 +AWS,us-east-2,is4gen.large,reserved_1y,no_upfront,0.183447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:10.662755 +AWS,us-east-2,is4gen.large,reserved_1y,partial_upfront,0.183447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:01.314748 +AWS,us-east-2,is4gen.large,reserved_3y,all_upfront,0.061149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:42.867473 +AWS,us-east-2,is4gen.large,reserved_3y,no_upfront,0.061149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:11.241286 +AWS,us-east-2,is4gen.large,reserved_3y,partial_upfront,0.061149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:11.634988 +AWS,us-east-2,is4gen.large,spot,NA,0.052967,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546624 +AWS,us-east-2,is4gen.xlarge,on_demand,NA,0.5763,USD,AWS Pricing API,2025-11-30T08:51:46.191009 +AWS,us-east-2,is4gen.xlarge,reserved_1y,all_upfront,0.818721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:18.244782 +AWS,us-east-2,is4gen.xlarge,reserved_1y,no_upfront,0.818721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:54.856862 +AWS,us-east-2,is4gen.xlarge,reserved_1y,partial_upfront,0.818721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:45.716691 +AWS,us-east-2,is4gen.xlarge,reserved_3y,all_upfront,0.272907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:27.308728 +AWS,us-east-2,is4gen.xlarge,reserved_3y,no_upfront,0.272907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:55.572122 +AWS,us-east-2,is4gen.xlarge,reserved_3y,partial_upfront,0.272907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:55.691241 +AWS,us-east-2,is4gen.xlarge,spot,NA,0.14956,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545874 +AWS,us-east-2,m4.10xlarge,on_demand,NA,2.0,USD,AWS Pricing API,2025-11-30T08:51:51.427698 +AWS,us-east-2,m4.10xlarge,reserved_1y,all_upfront,1.179954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:23.372178 +AWS,us-east-2,m4.10xlarge,reserved_1y,no_upfront,1.179954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:00.077765 +AWS,us-east-2,m4.10xlarge,reserved_1y,partial_upfront,1.179954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:50.894267 +AWS,us-east-2,m4.10xlarge,reserved_3y,all_upfront,0.786651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:32.484554 +AWS,us-east-2,m4.10xlarge,reserved_3y,no_upfront,0.786651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:00.737996 +AWS,us-east-2,m4.10xlarge,reserved_3y,partial_upfront,0.786651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:00.952471 +AWS,us-east-2,m4.10xlarge,spot,NA,0.776557,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546081 +AWS,us-east-2,m4.16xlarge,on_demand,NA,3.2,USD,AWS Pricing API,2025-11-30T08:51:56.617984 +AWS,us-east-2,m4.16xlarge,reserved_1y,all_upfront,2.12774,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:28.734987 +AWS,us-east-2,m4.16xlarge,reserved_1y,no_upfront,2.12774,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:05.294848 +AWS,us-east-2,m4.16xlarge,reserved_1y,partial_upfront,2.12774,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:56.036375 +AWS,us-east-2,m4.16xlarge,reserved_3y,all_upfront,0.709247,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:37.590780 +AWS,us-east-2,m4.16xlarge,reserved_3y,no_upfront,0.709247,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:05.958669 +AWS,us-east-2,m4.16xlarge,reserved_3y,partial_upfront,0.709247,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:06.230696 +AWS,us-east-2,m4.16xlarge,spot,NA,0.91235,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546371 +AWS,us-east-2,m4.2xlarge,on_demand,NA,0.4,USD,AWS Pricing API,2025-11-30T08:51:37.835867 +AWS,us-east-2,m4.2xlarge,reserved_1y,all_upfront,0.236037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:10.133091 +AWS,us-east-2,m4.2xlarge,reserved_1y,no_upfront,0.236037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:46.495033 +AWS,us-east-2,m4.2xlarge,reserved_1y,partial_upfront,0.236037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:37.559663 +AWS,us-east-2,m4.2xlarge,reserved_3y,all_upfront,0.157346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:19.215335 +AWS,us-east-2,m4.2xlarge,reserved_3y,no_upfront,0.157346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:47.448019 +AWS,us-east-2,m4.2xlarge,reserved_3y,partial_upfront,0.157346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:47.286391 +AWS,us-east-2,m4.2xlarge,spot,NA,0.188917,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545513 +AWS,us-east-2,m4.4xlarge,on_demand,NA,0.8,USD,AWS Pricing API,2025-11-30T08:52:12.704047 +AWS,us-east-2,m4.4xlarge,reserved_1y,all_upfront,0.542747,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:44.653263 +AWS,us-east-2,m4.4xlarge,reserved_1y,no_upfront,0.542747,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:21.345597 +AWS,us-east-2,m4.4xlarge,reserved_1y,partial_upfront,0.542747,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:11.857537 +AWS,us-east-2,m4.4xlarge,reserved_3y,all_upfront,0.361849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:53.417938 +AWS,us-east-2,m4.4xlarge,reserved_3y,no_upfront,0.361849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:21.915886 +AWS,us-east-2,m4.4xlarge,reserved_3y,partial_upfront,0.361849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:22.461671 +AWS,us-east-2,m4.4xlarge,spot,NA,0.405859,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547164 +AWS,us-east-2,m4.large,on_demand,NA,0.1,USD,AWS Pricing API,2025-11-30T08:51:19.579689 +AWS,us-east-2,m4.large,reserved_1y,all_upfront,0.057877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:52.124624 +AWS,us-east-2,m4.large,reserved_1y,no_upfront,0.057877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:28.277650 +AWS,us-east-2,m4.large,reserved_1y,partial_upfront,0.057877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:19.484486 +AWS,us-east-2,m4.large,reserved_3y,all_upfront,0.019292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:01.117567 +AWS,us-east-2,m4.large,reserved_3y,no_upfront,0.019292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:29.373611 +AWS,us-east-2,m4.large,reserved_3y,partial_upfront,0.019292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:28.834992 +AWS,us-east-2,m4.large,spot,NA,0.045424,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544686 +AWS,us-east-2,m4.xlarge,on_demand,NA,0.2,USD,AWS Pricing API,2025-11-30T08:52:01.012718 +AWS,us-east-2,m4.xlarge,reserved_1y,all_upfront,0.135708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:33.084880 +AWS,us-east-2,m4.xlarge,reserved_1y,no_upfront,0.135708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:09.700167 +AWS,us-east-2,m4.xlarge,reserved_1y,partial_upfront,0.135708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:00.367445 +AWS,us-east-2,m4.xlarge,reserved_3y,all_upfront,0.090503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:41.921952 +AWS,us-east-2,m4.xlarge,reserved_3y,no_upfront,0.090503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:10.289136 +AWS,us-east-2,m4.xlarge,reserved_3y,partial_upfront,0.090503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:10.669636 +AWS,us-east-2,m4.xlarge,spot,NA,0.085826,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546572 +AWS,us-east-2,m5.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:51:37.971792 +AWS,us-east-2,m5.12xlarge,reserved_1y,all_upfront,1.61205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:10.270145 +AWS,us-east-2,m5.12xlarge,reserved_1y,no_upfront,1.61205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:46.631505 +AWS,us-east-2,m5.12xlarge,reserved_1y,partial_upfront,1.61205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:37.695361 +AWS,us-east-2,m5.12xlarge,reserved_3y,all_upfront,1.074683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:19.349934 +AWS,us-east-2,m5.12xlarge,reserved_3y,no_upfront,1.074683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:47.584691 +AWS,us-east-2,m5.12xlarge,reserved_3y,partial_upfront,1.074683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:47.423418 +AWS,us-east-2,m5.12xlarge,spot,NA,0.807051,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545532 +AWS,us-east-2,m5.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:52:11.048666 +AWS,us-east-2,m5.16xlarge,reserved_1y,all_upfront,2.106507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:43.019075 +AWS,us-east-2,m5.16xlarge,reserved_1y,no_upfront,2.106507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:19.704138 +AWS,us-east-2,m5.16xlarge,reserved_1y,partial_upfront,2.106507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:10.242961 +AWS,us-east-2,m5.16xlarge,reserved_3y,all_upfront,0.702169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:51.800428 +AWS,us-east-2,m5.16xlarge,reserved_3y,no_upfront,0.702169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:20.266157 +AWS,us-east-2,m5.16xlarge,reserved_3y,partial_upfront,0.702169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:20.786557 +AWS,us-east-2,m5.16xlarge,spot,NA,0.935719,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547101 +AWS,us-east-2,m5.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:52:22.505858 +AWS,us-east-2,m5.24xlarge,reserved_1y,all_upfront,3.68684,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:54.434865 +AWS,us-east-2,m5.24xlarge,reserved_1y,no_upfront,3.68684,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:31.198398 +AWS,us-east-2,m5.24xlarge,reserved_1y,partial_upfront,3.68684,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:21.590227 +AWS,us-east-2,m5.24xlarge,reserved_3y,all_upfront,1.843613,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:03.184792 +AWS,us-east-2,m5.24xlarge,reserved_3y,no_upfront,1.843613,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:31.674348 +AWS,us-east-2,m5.24xlarge,reserved_3y,partial_upfront,1.843613,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:32.434167 +AWS,us-east-2,m5.24xlarge,spot,NA,1.479259,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547565 +AWS,us-east-2,m5.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:51:54.312353 +AWS,us-east-2,m5.2xlarge,reserved_1y,all_upfront,0.263356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:26.233266 +AWS,us-east-2,m5.2xlarge,reserved_1y,no_upfront,0.263356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:02.973148 +AWS,us-east-2,m5.2xlarge,reserved_1y,partial_upfront,0.263356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:53.750528 +AWS,us-east-2,m5.2xlarge,reserved_3y,all_upfront,0.087785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:35.302611 +AWS,us-east-2,m5.2xlarge,reserved_3y,no_upfront,0.087785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:03.631759 +AWS,us-east-2,m5.2xlarge,reserved_3y,partial_upfront,0.087785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:03.884503 +AWS,us-east-2,m5.2xlarge,spot,NA,0.152014,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546268 +AWS,us-east-2,m5.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:52:03.776163 +AWS,us-east-2,m5.4xlarge,reserved_1y,all_upfront,0.564,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:35.797228 +AWS,us-east-2,m5.4xlarge,reserved_1y,no_upfront,0.564,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:12.444898 +AWS,us-east-2,m5.4xlarge,reserved_1y,partial_upfront,0.564,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:03.084460 +AWS,us-east-2,m5.4xlarge,reserved_3y,all_upfront,0.564,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:44.636133 +AWS,us-east-2,m5.4xlarge,reserved_3y,no_upfront,0.564,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:13.019338 +AWS,us-east-2,m5.4xlarge,reserved_3y,partial_upfront,0.564,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:13.416452 +AWS,us-east-2,m5.4xlarge,spot,NA,0.326296,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546683 +AWS,us-east-2,m5.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:52:30.606337 +AWS,us-east-2,m5.8xlarge,reserved_1y,all_upfront,2.120548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:02.489301 +AWS,us-east-2,m5.8xlarge,reserved_1y,no_upfront,2.120548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:39.287576 +AWS,us-east-2,m5.8xlarge,reserved_1y,partial_upfront,2.120548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:29.598699 +AWS,us-east-2,m5.8xlarge,reserved_3y,all_upfront,0.706849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:11.154081 +AWS,us-east-2,m5.8xlarge,reserved_3y,no_upfront,0.706849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:39.656825 +AWS,us-east-2,m5.8xlarge,reserved_3y,partial_upfront,0.706849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:40.599539 +AWS,us-east-2,m5.8xlarge,spot,NA,0.523615,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547954 +AWS,us-east-2,m5.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T08:51:54.717294 +AWS,us-east-2,m5.large,reserved_1y,all_upfront,0.108333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:26.639574 +AWS,us-east-2,m5.large,reserved_1y,no_upfront,0.108333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:03.384276 +AWS,us-east-2,m5.large,reserved_1y,partial_upfront,0.108333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:54.155732 +AWS,us-east-2,m5.large,reserved_3y,all_upfront,0.036111,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:35.704865 +AWS,us-east-2,m5.large,reserved_3y,no_upfront,0.036111,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:04.038122 +AWS,us-east-2,m5.large,reserved_3y,partial_upfront,0.036111,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:04.297539 +AWS,us-east-2,m5.large,spot,NA,0.041992,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546294 +AWS,us-east-2,m5.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:52:28.392300 +AWS,us-east-2,m5.xlarge,reserved_1y,all_upfront,0.083,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:00.240217 +AWS,us-east-2,m5.xlarge,reserved_1y,no_upfront,0.083,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:37.059774 +AWS,us-east-2,m5.xlarge,reserved_1y,partial_upfront,0.083,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:27.434292 +AWS,us-east-2,m5.xlarge,reserved_3y,all_upfront,0.083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:08.991193 +AWS,us-east-2,m5.xlarge,reserved_3y,no_upfront,0.083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:37.485397 +AWS,us-east-2,m5.xlarge,reserved_3y,partial_upfront,0.083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:38.369859 +AWS,us-east-2,m5.xlarge,spot,NA,0.062443,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547801 +AWS,us-east-2,m5a.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T08:51:55.259066 +AWS,us-east-2,m5a.12xlarge,reserved_1y,all_upfront,2.839954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:27.359051 +AWS,us-east-2,m5a.12xlarge,reserved_1y,no_upfront,2.839954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:03.929393 +AWS,us-east-2,m5a.12xlarge,reserved_1y,partial_upfront,2.839954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:54.696568 +AWS,us-east-2,m5a.12xlarge,reserved_3y,all_upfront,0.946651,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:36.247003 +AWS,us-east-2,m5a.12xlarge,reserved_3y,no_upfront,0.946651,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:04.599391 +AWS,us-east-2,m5a.12xlarge,reserved_3y,partial_upfront,0.946651,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:04.850992 +AWS,us-east-2,m5a.12xlarge,spot,NA,0.77546,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546275 +AWS,us-east-2,m5a.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T08:52:12.840043 +AWS,us-east-2,m5a.16xlarge,reserved_1y,all_upfront,1.734,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:44.787719 +AWS,us-east-2,m5a.16xlarge,reserved_1y,no_upfront,1.734,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:21.484324 +AWS,us-east-2,m5a.16xlarge,reserved_1y,partial_upfront,1.734,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:11.992641 +AWS,us-east-2,m5a.16xlarge,reserved_3y,all_upfront,1.734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:53.551443 +AWS,us-east-2,m5a.16xlarge,reserved_3y,no_upfront,1.734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:22.051113 +AWS,us-east-2,m5a.16xlarge,reserved_3y,partial_upfront,1.734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:22.597996 +AWS,us-east-2,m5a.16xlarge,spot,NA,1.102991,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547146 +AWS,us-east-2,m5a.24xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T08:51:47.862929 +AWS,us-east-2,m5a.24xlarge,reserved_1y,all_upfront,2.601,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:19.872268 +AWS,us-east-2,m5a.24xlarge,reserved_1y,no_upfront,2.601,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:56.507973 +AWS,us-east-2,m5a.24xlarge,reserved_1y,partial_upfront,2.601,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:47.354966 +AWS,us-east-2,m5a.24xlarge,reserved_3y,all_upfront,2.601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:28.936518 +AWS,us-east-2,m5a.24xlarge,reserved_3y,no_upfront,2.601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:57.198869 +AWS,us-east-2,m5a.24xlarge,reserved_3y,partial_upfront,2.601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:57.352062 +AWS,us-east-2,m5a.24xlarge,spot,NA,1.391312,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545984 +AWS,us-east-2,m5a.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T08:51:40.227798 +AWS,us-east-2,m5a.2xlarge,reserved_1y,all_upfront,0.206196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:12.438395 +AWS,us-east-2,m5a.2xlarge,reserved_1y,no_upfront,0.206196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:48.877731 +AWS,us-east-2,m5a.2xlarge,reserved_1y,partial_upfront,0.206196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:39.873254 +AWS,us-east-2,m5a.2xlarge,reserved_3y,all_upfront,0.137399,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:21.512147 +AWS,us-east-2,m5a.2xlarge,reserved_3y,no_upfront,0.137399,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:49.746771 +AWS,us-east-2,m5a.2xlarge,reserved_3y,partial_upfront,0.137399,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:49.737432 +AWS,us-east-2,m5a.2xlarge,spot,NA,0.158946,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545614 +AWS,us-east-2,m5a.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T08:52:21.137686 +AWS,us-east-2,m5a.4xlarge,reserved_1y,all_upfront,0.433,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:53.074681 +AWS,us-east-2,m5a.4xlarge,reserved_1y,no_upfront,0.433,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:29.817278 +AWS,us-east-2,m5a.4xlarge,reserved_1y,partial_upfront,0.433,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:20.228549 +AWS,us-east-2,m5a.4xlarge,reserved_3y,all_upfront,0.433,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:01.810192 +AWS,us-east-2,m5a.4xlarge,reserved_3y,no_upfront,0.433,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:30.306821 +AWS,us-east-2,m5a.4xlarge,reserved_3y,partial_upfront,0.433,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:31.048617 +AWS,us-east-2,m5a.4xlarge,spot,NA,0.330358,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547508 +AWS,us-east-2,m5a.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T08:51:31.076375 +AWS,us-east-2,m5a.8xlarge,reserved_1y,all_upfront,0.809132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:03.524499 +AWS,us-east-2,m5a.8xlarge,reserved_1y,no_upfront,0.809132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:39.774772 +AWS,us-east-2,m5a.8xlarge,reserved_1y,partial_upfront,0.809132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:30.887389 +AWS,us-east-2,m5a.8xlarge,reserved_3y,all_upfront,0.269711,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:12.519982 +AWS,us-east-2,m5a.8xlarge,reserved_3y,no_upfront,0.269711,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:40.806886 +AWS,us-east-2,m5a.8xlarge,reserved_3y,partial_upfront,0.269711,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:40.459371 +AWS,us-east-2,m5a.8xlarge,spot,NA,0.503533,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545241 +AWS,us-east-2,m5a.large,on_demand,NA,0.086,USD,AWS Pricing API,2025-11-30T08:51:50.324648 +AWS,us-east-2,m5a.large,reserved_1y,all_upfront,0.118379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:22.286791 +AWS,us-east-2,m5a.large,reserved_1y,no_upfront,0.118379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:58.969695 +AWS,us-east-2,m5a.large,reserved_1y,partial_upfront,0.118379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:49.795033 +AWS,us-east-2,m5a.large,reserved_3y,all_upfront,0.03946,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:31.402442 +AWS,us-east-2,m5a.large,reserved_3y,no_upfront,0.03946,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:59.635952 +AWS,us-east-2,m5a.large,reserved_3y,partial_upfront,0.03946,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:59.840149 +AWS,us-east-2,m5a.large,spot,NA,0.041506,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546093 +AWS,us-east-2,m5a.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:51:52.389217 +AWS,us-east-2,m5a.xlarge,reserved_1y,all_upfront,0.117466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:24.318940 +AWS,us-east-2,m5a.xlarge,reserved_1y,no_upfront,0.117466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:01.034619 +AWS,us-east-2,m5a.xlarge,reserved_1y,partial_upfront,0.117466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:51.844238 +AWS,us-east-2,m5a.xlarge,reserved_3y,all_upfront,0.039155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:33.424247 +AWS,us-east-2,m5a.xlarge,reserved_3y,no_upfront,0.039155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:01.711921 +AWS,us-east-2,m5a.xlarge,reserved_3y,partial_upfront,0.039155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:01.928020 +AWS,us-east-2,m5a.xlarge,spot,NA,0.083881,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546143 +AWS,us-east-2,m5d.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:51:22.320222 +AWS,us-east-2,m5d.12xlarge,reserved_1y,all_upfront,2.169169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:54.848490 +AWS,us-east-2,m5d.12xlarge,reserved_1y,no_upfront,2.169169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:31.005621 +AWS,us-east-2,m5d.12xlarge,reserved_1y,partial_upfront,2.169169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:22.190570 +AWS,us-east-2,m5d.12xlarge,reserved_3y,all_upfront,1.08439,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:03.840703 +AWS,us-east-2,m5d.12xlarge,reserved_3y,no_upfront,1.08439,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:32.096050 +AWS,us-east-2,m5d.12xlarge,reserved_3y,partial_upfront,1.08439,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:31.588714 +AWS,us-east-2,m5d.12xlarge,spot,NA,0.973795,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544826 +AWS,us-east-2,m5d.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T08:52:07.903206 +AWS,us-east-2,m5d.16xlarge,reserved_1y,all_upfront,2.648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:39.894067 +AWS,us-east-2,m5d.16xlarge,reserved_1y,no_upfront,2.648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:16.557581 +AWS,us-east-2,m5d.16xlarge,reserved_1y,partial_upfront,2.648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:07.132249 +AWS,us-east-2,m5d.16xlarge,reserved_3y,all_upfront,2.648,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:48.697829 +AWS,us-east-2,m5d.16xlarge,reserved_3y,no_upfront,2.648,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:17.091297 +AWS,us-east-2,m5d.16xlarge,reserved_3y,partial_upfront,2.648,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:17.576389 +AWS,us-east-2,m5d.16xlarge,spot,NA,1.14698,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546891 +AWS,us-east-2,m5d.24xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:51:51.291456 +AWS,us-east-2,m5d.24xlarge,reserved_1y,all_upfront,3.254169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:23.237015 +AWS,us-east-2,m5d.24xlarge,reserved_1y,no_upfront,3.254169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:59.940400 +AWS,us-east-2,m5d.24xlarge,reserved_1y,partial_upfront,3.254169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:50.759954 +AWS,us-east-2,m5d.24xlarge,reserved_3y,all_upfront,2.16939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:32.349965 +AWS,us-east-2,m5d.24xlarge,reserved_3y,no_upfront,2.16939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:00.601519 +AWS,us-east-2,m5d.24xlarge,reserved_3y,partial_upfront,2.16939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:00.815141 +AWS,us-east-2,m5d.24xlarge,spot,NA,1.939849,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546074 +AWS,us-east-2,m5d.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:51:35.320513 +AWS,us-east-2,m5d.2xlarge,reserved_1y,all_upfront,0.271616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:07.713541 +AWS,us-east-2,m5d.2xlarge,reserved_1y,no_upfront,0.271616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:44.029575 +AWS,us-east-2,m5d.2xlarge,reserved_1y,partial_upfront,0.271616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:35.117185 +AWS,us-east-2,m5d.2xlarge,reserved_3y,all_upfront,0.181205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:16.779634 +AWS,us-east-2,m5d.2xlarge,reserved_3y,no_upfront,0.181205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:45.013971 +AWS,us-east-2,m5d.2xlarge,reserved_3y,partial_upfront,0.181205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:44.757411 +AWS,us-east-2,m5d.2xlarge,spot,NA,0.203291,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545434 +AWS,us-east-2,m5d.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:51:46.738552 +AWS,us-east-2,m5d.4xlarge,reserved_1y,all_upfront,0.531507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:18.799491 +AWS,us-east-2,m5d.4xlarge,reserved_1y,no_upfront,0.531507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:55.413629 +AWS,us-east-2,m5d.4xlarge,reserved_1y,partial_upfront,0.531507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:46.260216 +AWS,us-east-2,m5d.4xlarge,reserved_3y,all_upfront,0.177169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:27.847835 +AWS,us-east-2,m5d.4xlarge,reserved_3y,no_upfront,0.177169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:56.118581 +AWS,us-east-2,m5d.4xlarge,reserved_3y,partial_upfront,0.177169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:56.242310 +AWS,us-east-2,m5d.4xlarge,spot,NA,0.370438,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545917 +AWS,us-east-2,m5d.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T08:52:30.462461 +AWS,us-east-2,m5d.8xlarge,reserved_1y,all_upfront,1.260479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:02.350150 +AWS,us-east-2,m5d.8xlarge,reserved_1y,no_upfront,1.260479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:39.148958 +AWS,us-east-2,m5d.8xlarge,reserved_1y,partial_upfront,1.260479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:29.462615 +AWS,us-east-2,m5d.8xlarge,reserved_3y,all_upfront,0.84016,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:11.019966 +AWS,us-east-2,m5d.8xlarge,reserved_3y,no_upfront,0.84016,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:39.521433 +AWS,us-east-2,m5d.8xlarge,reserved_3y,partial_upfront,0.84016,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:40.462632 +AWS,us-east-2,m5d.8xlarge,spot,NA,0.748498,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547928 +AWS,us-east-2,m5d.large,on_demand,NA,0.113,USD,AWS Pricing API,2025-11-30T08:51:26.143972 +AWS,us-east-2,m5d.large,reserved_1y,all_upfront,0.067904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:58.639292 +AWS,us-east-2,m5d.large,reserved_1y,no_upfront,0.067904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:34.840274 +AWS,us-east-2,m5d.large,reserved_1y,partial_upfront,0.067904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:25.974959 +AWS,us-east-2,m5d.large,reserved_3y,all_upfront,0.045301,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:07.642386 +AWS,us-east-2,m5d.large,reserved_3y,no_upfront,0.045301,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:35.912563 +AWS,us-east-2,m5d.large,reserved_3y,partial_upfront,0.045301,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:35.465584 +AWS,us-east-2,m5d.large,spot,NA,0.051058,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544998 +AWS,us-east-2,m5d.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:51:42.456725 +AWS,us-east-2,m5d.xlarge,reserved_1y,all_upfront,0.135808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:14.593924 +AWS,us-east-2,m5d.xlarge,reserved_1y,no_upfront,0.135808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:51.084901 +AWS,us-east-2,m5d.xlarge,reserved_1y,partial_upfront,0.135808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:42.042929 +AWS,us-east-2,m5d.xlarge,reserved_3y,all_upfront,0.090603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:23.653924 +AWS,us-east-2,m5d.xlarge,reserved_3y,no_upfront,0.090603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:51.919989 +AWS,us-east-2,m5d.xlarge,reserved_3y,partial_upfront,0.090603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:51.944820 +AWS,us-east-2,m5d.xlarge,spot,NA,0.073309,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545725 +AWS,us-east-2,m5dn.12xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T08:51:24.505547 +AWS,us-east-2,m5dn.12xlarge,reserved_1y,all_upfront,1.919178,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:57.019740 +AWS,us-east-2,m5dn.12xlarge,reserved_1y,no_upfront,1.919178,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:33.198951 +AWS,us-east-2,m5dn.12xlarge,reserved_1y,partial_upfront,1.919178,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:24.343387 +AWS,us-east-2,m5dn.12xlarge,reserved_3y,all_upfront,0.639726,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:06.012608 +AWS,us-east-2,m5dn.12xlarge,reserved_3y,no_upfront,0.639726,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:34.282481 +AWS,us-east-2,m5dn.12xlarge,reserved_3y,partial_upfront,0.639726,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:33.810026 +AWS,us-east-2,m5dn.12xlarge,spot,NA,1.536308,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544920 +AWS,us-east-2,m5dn.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T08:51:59.092681 +AWS,us-east-2,m5dn.16xlarge,reserved_1y,all_upfront,5.297032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:31.178393 +AWS,us-east-2,m5dn.16xlarge,reserved_1y,no_upfront,5.297032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:07.780115 +AWS,us-east-2,m5dn.16xlarge,reserved_1y,partial_upfront,5.297032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:58.475332 +AWS,us-east-2,m5dn.16xlarge,reserved_3y,all_upfront,1.765677,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:40.014714 +AWS,us-east-2,m5dn.16xlarge,reserved_3y,no_upfront,1.765677,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:08.396040 +AWS,us-east-2,m5dn.16xlarge,reserved_3y,partial_upfront,1.765677,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:08.727068 +AWS,us-east-2,m5dn.16xlarge,spot,NA,1.870746,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546492 +AWS,us-east-2,m5dn.24xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T08:52:23.596293 +AWS,us-east-2,m5dn.24xlarge,reserved_1y,all_upfront,2.919,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:55.512459 +AWS,us-east-2,m5dn.24xlarge,reserved_1y,no_upfront,2.919,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:32.289425 +AWS,us-east-2,m5dn.24xlarge,reserved_1y,partial_upfront,2.919,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:22.682377 +AWS,us-east-2,m5dn.24xlarge,reserved_3y,all_upfront,2.919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:04.265021 +AWS,us-east-2,m5dn.24xlarge,reserved_3y,no_upfront,2.919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:32.762994 +AWS,us-east-2,m5dn.24xlarge,reserved_3y,partial_upfront,2.919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:33.533433 +AWS,us-east-2,m5dn.24xlarge,spot,NA,2.665389,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547615 +AWS,us-east-2,m5dn.2xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T08:51:21.364530 +AWS,us-east-2,m5dn.2xlarge,reserved_1y,all_upfront,0.398,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:53.892221 +AWS,us-east-2,m5dn.2xlarge,reserved_1y,no_upfront,0.398,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:30.052019 +AWS,us-east-2,m5dn.2xlarge,reserved_1y,partial_upfront,0.398,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:21.245139 +AWS,us-east-2,m5dn.2xlarge,reserved_3y,all_upfront,0.398,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:02.894531 +AWS,us-east-2,m5dn.2xlarge,reserved_3y,no_upfront,0.398,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:31.150982 +AWS,us-east-2,m5dn.2xlarge,reserved_3y,partial_upfront,0.398,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:30.624198 +AWS,us-east-2,m5dn.2xlarge,spot,NA,0.253109,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544812 +AWS,us-east-2,m5dn.4xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T08:52:01.839002 +AWS,us-east-2,m5dn.4xlarge,reserved_1y,all_upfront,0.742123,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:33.897125 +AWS,us-east-2,m5dn.4xlarge,reserved_1y,no_upfront,0.742123,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:10.525127 +AWS,us-east-2,m5dn.4xlarge,reserved_1y,partial_upfront,0.742123,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:01.171883 +AWS,us-east-2,m5dn.4xlarge,reserved_3y,all_upfront,0.247374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:42.732969 +AWS,us-east-2,m5dn.4xlarge,reserved_3y,no_upfront,0.247374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:11.106380 +AWS,us-east-2,m5dn.4xlarge,reserved_3y,partial_upfront,0.247374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:11.497807 +AWS,us-east-2,m5dn.4xlarge,spot,NA,0.503989,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546592 +AWS,us-east-2,m5dn.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:51:22.459962 +AWS,us-east-2,m5dn.8xlarge,reserved_1y,all_upfront,1.484247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:54.981455 +AWS,us-east-2,m5dn.8xlarge,reserved_1y,no_upfront,1.484247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:31.144123 +AWS,us-east-2,m5dn.8xlarge,reserved_1y,partial_upfront,1.484247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:22.325371 +AWS,us-east-2,m5dn.8xlarge,reserved_3y,all_upfront,0.494749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:03.974877 +AWS,us-east-2,m5dn.8xlarge,reserved_3y,no_upfront,0.494749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:32.230778 +AWS,us-east-2,m5dn.8xlarge,reserved_3y,partial_upfront,0.494749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:31.725629 +AWS,us-east-2,m5dn.8xlarge,spot,NA,0.896361,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544819 +AWS,us-east-2,m5dn.large,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T08:52:17.191950 +AWS,us-east-2,m5dn.large,reserved_1y,all_upfront,0.086,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:49.158417 +AWS,us-east-2,m5dn.large,reserved_1y,no_upfront,0.086,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:25.864198 +AWS,us-east-2,m5dn.large,reserved_1y,partial_upfront,0.086,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:16.313397 +AWS,us-east-2,m5dn.large,reserved_3y,all_upfront,0.086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:57.859551 +AWS,us-east-2,m5dn.large,reserved_3y,no_upfront,0.086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:26.377305 +AWS,us-east-2,m5dn.large,reserved_3y,partial_upfront,0.086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:27.028327 +AWS,us-east-2,m5dn.large,spot,NA,0.051079,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547333 +AWS,us-east-2,m5dn.metal,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T08:52:28.527502 +AWS,us-east-2,m5dn.metal,reserved_1y,all_upfront,4.771,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:00.373627 +AWS,us-east-2,m5dn.metal,reserved_1y,no_upfront,4.771,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:37.202638 +AWS,us-east-2,m5dn.metal,reserved_1y,partial_upfront,4.771,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:27.570208 +AWS,us-east-2,m5dn.metal,reserved_3y,all_upfront,4.771,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:09.126506 +AWS,us-east-2,m5dn.metal,reserved_3y,no_upfront,4.771,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:37.621136 +AWS,us-east-2,m5dn.metal,reserved_3y,partial_upfront,4.771,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:38.513133 +AWS,us-east-2,m5dn.metal,spot,NA,2.334907,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547903 +AWS,us-east-2,m5dn.xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T08:51:20.123972 +AWS,us-east-2,m5dn.xlarge,reserved_1y,all_upfront,0.171,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:52.671869 +AWS,us-east-2,m5dn.xlarge,reserved_1y,no_upfront,0.171,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:28.822602 +AWS,us-east-2,m5dn.xlarge,reserved_1y,partial_upfront,0.171,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:20.019164 +AWS,us-east-2,m5dn.xlarge,reserved_3y,all_upfront,0.171,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:01.661835 +AWS,us-east-2,m5dn.xlarge,reserved_3y,no_upfront,0.171,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:29.922151 +AWS,us-east-2,m5dn.xlarge,reserved_3y,partial_upfront,0.171,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:29.384033 +AWS,us-east-2,m5dn.xlarge,spot,NA,0.128239,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544720 +AWS,us-east-2,m5n.12xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T08:51:42.178739 +AWS,us-east-2,m5n.12xlarge,reserved_1y,all_upfront,1.679338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:14.323217 +AWS,us-east-2,m5n.12xlarge,reserved_1y,no_upfront,1.679338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:50.811740 +AWS,us-east-2,m5n.12xlarge,reserved_1y,partial_upfront,1.679338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:41.776293 +AWS,us-east-2,m5n.12xlarge,reserved_3y,all_upfront,0.559779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:23.385394 +AWS,us-east-2,m5n.12xlarge,reserved_3y,no_upfront,0.559779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:51.652485 +AWS,us-east-2,m5n.12xlarge,reserved_3y,partial_upfront,0.559779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:51.656278 +AWS,us-east-2,m5n.12xlarge,spot,NA,1.253778,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545697 +AWS,us-east-2,m5n.16xlarge,on_demand,NA,3.808,USD,AWS Pricing API,2025-11-30T08:51:39.655522 +AWS,us-east-2,m5n.16xlarge,reserved_1y,all_upfront,2.593607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:11.887341 +AWS,us-east-2,m5n.16xlarge,reserved_1y,no_upfront,2.593607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:48.320271 +AWS,us-east-2,m5n.16xlarge,reserved_1y,partial_upfront,2.593607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:39.325403 +AWS,us-east-2,m5n.16xlarge,reserved_3y,all_upfront,0.864536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:20.960801 +AWS,us-east-2,m5n.16xlarge,reserved_3y,no_upfront,0.864536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:49.203795 +AWS,us-east-2,m5n.16xlarge,reserved_3y,partial_upfront,0.864536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:49.171998 +AWS,us-east-2,m5n.16xlarge,spot,NA,1.819371,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545596 +AWS,us-east-2,m5n.24xlarge,on_demand,NA,5.712,USD,AWS Pricing API,2025-11-30T08:51:20.945459 +AWS,us-east-2,m5n.24xlarge,reserved_1y,all_upfront,2.529,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:53.484495 +AWS,us-east-2,m5n.24xlarge,reserved_1y,no_upfront,2.529,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:29.643694 +AWS,us-east-2,m5n.24xlarge,reserved_1y,partial_upfront,2.529,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:20.827068 +AWS,us-east-2,m5n.24xlarge,reserved_3y,all_upfront,2.529,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:02.478896 +AWS,us-east-2,m5n.24xlarge,reserved_3y,no_upfront,2.529,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:30.745793 +AWS,us-east-2,m5n.24xlarge,reserved_3y,partial_upfront,2.529,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:30.212236 +AWS,us-east-2,m5n.24xlarge,spot,NA,2.349763,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544713 +AWS,us-east-2,m5n.2xlarge,on_demand,NA,0.476,USD,AWS Pricing API,2025-11-30T08:51:53.626360 +AWS,us-east-2,m5n.2xlarge,reserved_1y,all_upfront,0.3,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:25.544329 +AWS,us-east-2,m5n.2xlarge,reserved_1y,no_upfront,0.3,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:02.289227 +AWS,us-east-2,m5n.2xlarge,reserved_1y,partial_upfront,0.3,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:53.067709 +AWS,us-east-2,m5n.2xlarge,reserved_3y,all_upfront,0.3,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:34.630121 +AWS,us-east-2,m5n.2xlarge,reserved_3y,no_upfront,0.3,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:02.945625 +AWS,us-east-2,m5n.2xlarge,reserved_3y,partial_upfront,0.3,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:03.185804 +AWS,us-east-2,m5n.2xlarge,spot,NA,0.243845,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546237 +AWS,us-east-2,m5n.4xlarge,on_demand,NA,0.952,USD,AWS Pricing API,2025-11-30T08:52:16.372715 +AWS,us-east-2,m5n.4xlarge,reserved_1y,all_upfront,0.559817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:48.337059 +AWS,us-east-2,m5n.4xlarge,reserved_1y,no_upfront,0.559817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:25.044354 +AWS,us-east-2,m5n.4xlarge,reserved_1y,partial_upfront,0.559817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:15.503338 +AWS,us-east-2,m5n.4xlarge,reserved_3y,all_upfront,0.186606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:57.056899 +AWS,us-east-2,m5n.4xlarge,reserved_3y,no_upfront,0.186606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:25.567224 +AWS,us-east-2,m5n.4xlarge,reserved_3y,partial_upfront,0.186606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:26.198378 +AWS,us-east-2,m5n.4xlarge,spot,NA,0.469126,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547325 +AWS,us-east-2,m5n.8xlarge,on_demand,NA,1.904,USD,AWS Pricing API,2025-11-30T08:51:41.641238 +AWS,us-east-2,m5n.8xlarge,reserved_1y,all_upfront,1.323644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:13.781762 +AWS,us-east-2,m5n.8xlarge,reserved_1y,no_upfront,1.323644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:50.266405 +AWS,us-east-2,m5n.8xlarge,reserved_1y,partial_upfront,1.323644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:41.226555 +AWS,us-east-2,m5n.8xlarge,reserved_3y,all_upfront,0.882548,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:22.847681 +AWS,us-east-2,m5n.8xlarge,reserved_3y,no_upfront,0.882548,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:51.115569 +AWS,us-east-2,m5n.8xlarge,reserved_3y,partial_upfront,0.882548,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:51.101638 +AWS,us-east-2,m5n.8xlarge,spot,NA,0.861531,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545676 +AWS,us-east-2,m5n.large,on_demand,NA,0.119,USD,AWS Pricing API,2025-11-30T08:51:33.817395 +AWS,us-east-2,m5n.large,reserved_1y,all_upfront,0.053,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:06.231615 +AWS,us-east-2,m5n.large,reserved_1y,no_upfront,0.053,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:42.531204 +AWS,us-east-2,m5n.large,reserved_1y,partial_upfront,0.053,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:33.616069 +AWS,us-east-2,m5n.large,reserved_3y,all_upfront,0.053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:15.289622 +AWS,us-east-2,m5n.large,reserved_3y,no_upfront,0.053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:43.521295 +AWS,us-east-2,m5n.large,reserved_3y,partial_upfront,0.053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:43.243682 +AWS,us-east-2,m5n.large,spot,NA,0.047628,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545358 +AWS,us-east-2,m5n.metal,on_demand,NA,5.712,USD,AWS Pricing API,2025-11-30T08:51:58.402430 +AWS,us-east-2,m5n.metal,reserved_1y,all_upfront,4.168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:30.497047 +AWS,us-east-2,m5n.metal,reserved_1y,no_upfront,4.168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:07.103127 +AWS,us-east-2,m5n.metal,reserved_1y,partial_upfront,4.168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:57.800505 +AWS,us-east-2,m5n.metal,reserved_3y,all_upfront,4.168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:39.344807 +AWS,us-east-2,m5n.metal,reserved_3y,no_upfront,4.168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:07.721338 +AWS,us-east-2,m5n.metal,reserved_3y,partial_upfront,4.168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:08.032274 +AWS,us-east-2,m5n.metal,spot,NA,1.860681,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546499 +AWS,us-east-2,m5n.xlarge,on_demand,NA,0.238,USD,AWS Pricing API,2025-11-30T08:51:53.359081 +AWS,us-east-2,m5n.xlarge,reserved_1y,all_upfront,0.174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:25.273729 +AWS,us-east-2,m5n.xlarge,reserved_1y,no_upfront,0.174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:02.009714 +AWS,us-east-2,m5n.xlarge,reserved_1y,partial_upfront,0.174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:52.795757 +AWS,us-east-2,m5n.xlarge,reserved_3y,all_upfront,0.174,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:34.361646 +AWS,us-east-2,m5n.xlarge,reserved_3y,no_upfront,0.174,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:02.673454 +AWS,us-east-2,m5n.xlarge,reserved_3y,partial_upfront,0.174,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:02.900541 +AWS,us-east-2,m5n.xlarge,spot,NA,0.11257,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546198 +AWS,us-east-2,m5zn.12xlarge,on_demand,NA,3.9641,USD,AWS Pricing API,2025-11-30T08:51:58.540418 +AWS,us-east-2,m5zn.12xlarge,reserved_1y,all_upfront,2.797032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:30.633036 +AWS,us-east-2,m5zn.12xlarge,reserved_1y,no_upfront,2.797032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:07.238438 +AWS,us-east-2,m5zn.12xlarge,reserved_1y,partial_upfront,2.797032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:57.934881 +AWS,us-east-2,m5zn.12xlarge,reserved_3y,all_upfront,0.932344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:39.475685 +AWS,us-east-2,m5zn.12xlarge,reserved_3y,no_upfront,0.932344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:07.855995 +AWS,us-east-2,m5zn.12xlarge,reserved_3y,partial_upfront,0.932344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:08.169596 +AWS,us-east-2,m5zn.12xlarge,spot,NA,1.722677,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546467 +AWS,us-east-2,m5zn.2xlarge,on_demand,NA,0.6607,USD,AWS Pricing API,2025-11-30T08:51:27.509816 +AWS,us-east-2,m5zn.2xlarge,reserved_1y,all_upfront,0.4995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:00.000397 +AWS,us-east-2,m5zn.2xlarge,reserved_1y,no_upfront,0.4995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:36.220119 +AWS,us-east-2,m5zn.2xlarge,reserved_1y,partial_upfront,0.4995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:27.335583 +AWS,us-east-2,m5zn.2xlarge,reserved_3y,all_upfront,0.4995,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:08.997501 +AWS,us-east-2,m5zn.2xlarge,reserved_3y,no_upfront,0.4995,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:37.273257 +AWS,us-east-2,m5zn.2xlarge,reserved_3y,partial_upfront,0.4995,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:36.846548 +AWS,us-east-2,m5zn.2xlarge,spot,NA,0.333034,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545022 +AWS,us-east-2,m5zn.3xlarge,on_demand,NA,0.991,USD,AWS Pricing API,2025-11-30T08:52:02.119634 +AWS,us-east-2,m5zn.3xlarge,reserved_1y,all_upfront,0.582763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:34.163333 +AWS,us-east-2,m5zn.3xlarge,reserved_1y,no_upfront,0.582763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:10.798112 +AWS,us-east-2,m5zn.3xlarge,reserved_1y,partial_upfront,0.582763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:01.452068 +AWS,us-east-2,m5zn.3xlarge,reserved_3y,all_upfront,0.194254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:43.002390 +AWS,us-east-2,m5zn.3xlarge,reserved_3y,no_upfront,0.194254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:11.375143 +AWS,us-east-2,m5zn.3xlarge,reserved_3y,partial_upfront,0.194254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:11.773029 +AWS,us-east-2,m5zn.3xlarge,spot,NA,0.430174,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546585 +AWS,us-east-2,m5zn.6xlarge,on_demand,NA,1.982,USD,AWS Pricing API,2025-11-30T08:51:21.637266 +AWS,us-east-2,m5zn.6xlarge,reserved_1y,all_upfront,1.427084,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:54.169637 +AWS,us-east-2,m5zn.6xlarge,reserved_1y,no_upfront,1.427084,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:30.320572 +AWS,us-east-2,m5zn.6xlarge,reserved_1y,partial_upfront,1.427084,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:21.513513 +AWS,us-east-2,m5zn.6xlarge,reserved_3y,all_upfront,0.951361,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:03.165625 +AWS,us-east-2,m5zn.6xlarge,reserved_3y,no_upfront,0.951361,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:31.418961 +AWS,us-east-2,m5zn.6xlarge,reserved_3y,partial_upfront,0.951361,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:30.897260 +AWS,us-east-2,m5zn.6xlarge,spot,NA,0.823168,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544785 +AWS,us-east-2,m5zn.large,on_demand,NA,0.1652,USD,AWS Pricing API,2025-11-30T08:51:51.711681 +AWS,us-east-2,m5zn.large,reserved_1y,all_upfront,0.233105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:23.644791 +AWS,us-east-2,m5zn.large,reserved_1y,no_upfront,0.233105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:00.351515 +AWS,us-east-2,m5zn.large,reserved_1y,partial_upfront,0.233105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:51.167505 +AWS,us-east-2,m5zn.large,reserved_3y,all_upfront,0.077702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:32.753593 +AWS,us-east-2,m5zn.large,reserved_3y,no_upfront,0.077702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:01.012812 +AWS,us-east-2,m5zn.large,reserved_3y,partial_upfront,0.077702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:01.231928 +AWS,us-east-2,m5zn.large,spot,NA,0.061535,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546180 +AWS,us-east-2,m5zn.metal,on_demand,NA,3.9641,USD,AWS Pricing API,2025-11-30T08:52:29.096230 +AWS,us-east-2,m5zn.metal,reserved_1y,all_upfront,2.330936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:00.914516 +AWS,us-east-2,m5zn.metal,reserved_1y,no_upfront,2.330936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:37.753861 +AWS,us-east-2,m5zn.metal,reserved_1y,partial_upfront,2.330936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:28.107058 +AWS,us-east-2,m5zn.metal,reserved_3y,all_upfront,0.776979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:09.669077 +AWS,us-east-2,m5zn.metal,reserved_3y,no_upfront,0.776979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:38.172011 +AWS,us-east-2,m5zn.metal,reserved_3y,partial_upfront,0.776979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:39.082471 +AWS,us-east-2,m5zn.metal,spot,NA,1.068173,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547852 +AWS,us-east-2,m5zn.xlarge,on_demand,NA,0.3303,USD,AWS Pricing API,2025-11-30T08:51:26.691790 +AWS,us-east-2,m5zn.xlarge,reserved_1y,all_upfront,0.1712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:59.188185 +AWS,us-east-2,m5zn.xlarge,reserved_1y,no_upfront,0.1712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:35.391477 +AWS,us-east-2,m5zn.xlarge,reserved_1y,partial_upfront,0.1712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:26.532442 +AWS,us-east-2,m5zn.xlarge,reserved_3y,all_upfront,0.1712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:08.188702 +AWS,us-east-2,m5zn.xlarge,reserved_3y,no_upfront,0.1712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:36.452312 +AWS,us-east-2,m5zn.xlarge,reserved_3y,partial_upfront,0.1712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:36.014016 +AWS,us-east-2,m5zn.xlarge,spot,NA,0.144326,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545074 +AWS,us-east-2,m6g.12xlarge,on_demand,NA,1.848,USD,AWS Pricing API,2025-11-30T08:51:36.617476 +AWS,us-east-2,m6g.12xlarge,reserved_1y,all_upfront,1.081963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:08.925782 +AWS,us-east-2,m6g.12xlarge,reserved_1y,no_upfront,1.081963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:45.263030 +AWS,us-east-2,m6g.12xlarge,reserved_1y,partial_upfront,1.081963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:36.341549 +AWS,us-east-2,m6g.12xlarge,reserved_3y,all_upfront,0.360654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:17.986631 +AWS,us-east-2,m6g.12xlarge,reserved_3y,no_upfront,0.360654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:46.234530 +AWS,us-east-2,m6g.12xlarge,reserved_3y,partial_upfront,0.360654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:46.035401 +AWS,us-east-2,m6g.12xlarge,spot,NA,0.730183,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545489 +AWS,us-east-2,m6g.16xlarge,on_demand,NA,2.464,USD,AWS Pricing API,2025-11-30T08:51:31.905259 +AWS,us-east-2,m6g.16xlarge,reserved_1y,all_upfront,1.44258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:04.343013 +AWS,us-east-2,m6g.16xlarge,reserved_1y,no_upfront,1.44258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:40.599484 +AWS,us-east-2,m6g.16xlarge,reserved_1y,partial_upfront,1.44258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:31.706461 +AWS,us-east-2,m6g.16xlarge,reserved_3y,all_upfront,0.48086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:13.330990 +AWS,us-east-2,m6g.16xlarge,reserved_3y,no_upfront,0.48086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:41.621278 +AWS,us-east-2,m6g.16xlarge,reserved_3y,partial_upfront,0.48086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:41.290769 +AWS,us-east-2,m6g.16xlarge,spot,NA,0.801443,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545206 +AWS,us-east-2,m6g.2xlarge,on_demand,NA,0.308,USD,AWS Pricing API,2025-11-30T08:51:52.953257 +AWS,us-east-2,m6g.2xlarge,reserved_1y,all_upfront,0.184009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:24.863017 +AWS,us-east-2,m6g.2xlarge,reserved_1y,no_upfront,0.184009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:01.594296 +AWS,us-east-2,m6g.2xlarge,reserved_1y,partial_upfront,0.184009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:52.386618 +AWS,us-east-2,m6g.2xlarge,reserved_3y,all_upfront,0.12267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:33.956956 +AWS,us-east-2,m6g.2xlarge,reserved_3y,no_upfront,0.12267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:02.263777 +AWS,us-east-2,m6g.2xlarge,reserved_3y,partial_upfront,0.12267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:02.489687 +AWS,us-east-2,m6g.2xlarge,spot,NA,0.108188,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546211 +AWS,us-east-2,m6g.4xlarge,on_demand,NA,0.616,USD,AWS Pricing API,2025-11-30T08:52:19.640281 +AWS,us-east-2,m6g.4xlarge,reserved_1y,all_upfront,0.368018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:51.578826 +AWS,us-east-2,m6g.4xlarge,reserved_1y,no_upfront,0.368018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:28.311338 +AWS,us-east-2,m6g.4xlarge,reserved_1y,partial_upfront,0.368018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:18.734634 +AWS,us-east-2,m6g.4xlarge,reserved_3y,all_upfront,0.245339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:00.301704 +AWS,us-east-2,m6g.4xlarge,reserved_3y,no_upfront,0.245339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:28.824875 +AWS,us-east-2,m6g.4xlarge,reserved_3y,partial_upfront,0.245339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:29.499636 +AWS,us-east-2,m6g.4xlarge,spot,NA,0.282653,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547450 +AWS,us-east-2,m6g.8xlarge,on_demand,NA,1.232,USD,AWS Pricing API,2025-11-30T08:52:00.468417 +AWS,us-east-2,m6g.8xlarge,reserved_1y,all_upfront,0.721233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:32.545880 +AWS,us-east-2,m6g.8xlarge,reserved_1y,no_upfront,0.721233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:09.154186 +AWS,us-east-2,m6g.8xlarge,reserved_1y,partial_upfront,0.721233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:59.831298 +AWS,us-east-2,m6g.8xlarge,reserved_3y,all_upfront,0.240411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:41.385099 +AWS,us-east-2,m6g.8xlarge,reserved_3y,no_upfront,0.240411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:09.750398 +AWS,us-east-2,m6g.8xlarge,reserved_3y,partial_upfront,0.240411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:10.113921 +AWS,us-east-2,m6g.8xlarge,spot,NA,0.667105,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546534 +AWS,us-east-2,m6g.large,on_demand,NA,0.077,USD,AWS Pricing API,2025-11-30T08:51:37.157852 +AWS,us-east-2,m6g.large,reserved_1y,all_upfront,0.053941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:09.468725 +AWS,us-east-2,m6g.large,reserved_1y,no_upfront,0.053941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:45.813007 +AWS,us-east-2,m6g.large,reserved_1y,partial_upfront,0.053941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:36.882409 +AWS,us-east-2,m6g.large,reserved_3y,all_upfront,0.03598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:18.518783 +AWS,us-east-2,m6g.large,reserved_3y,no_upfront,0.03598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:46.778912 +AWS,us-east-2,m6g.large,reserved_3y,partial_upfront,0.03598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:46.589908 +AWS,us-east-2,m6g.large,spot,NA,0.026186,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545482 +AWS,us-east-2,m6g.xlarge,on_demand,NA,0.154,USD,AWS Pricing API,2025-11-30T08:51:51.150528 +AWS,us-east-2,m6g.xlarge,reserved_1y,all_upfront,0.1134,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:23.103049 +AWS,us-east-2,m6g.xlarge,reserved_1y,no_upfront,0.1134,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:59.791610 +AWS,us-east-2,m6g.xlarge,reserved_1y,partial_upfront,0.1134,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:50.623277 +AWS,us-east-2,m6g.xlarge,reserved_3y,all_upfront,0.1134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:32.211142 +AWS,us-east-2,m6g.xlarge,reserved_3y,no_upfront,0.1134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:00.464810 +AWS,us-east-2,m6g.xlarge,reserved_3y,partial_upfront,0.1134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:00.677400 +AWS,us-east-2,m6g.xlarge,spot,NA,0.041788,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546131 +AWS,us-east-2,m6gd.12xlarge,on_demand,NA,2.1696,USD,AWS Pricing API,2025-11-30T08:52:09.270387 +AWS,us-east-2,m6gd.12xlarge,reserved_1y,all_upfront,2.953995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:41.259382 +AWS,us-east-2,m6gd.12xlarge,reserved_1y,no_upfront,2.953995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:17.921888 +AWS,us-east-2,m6gd.12xlarge,reserved_1y,partial_upfront,2.953995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:08.484931 +AWS,us-east-2,m6gd.12xlarge,reserved_3y,all_upfront,0.984665,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:50.043056 +AWS,us-east-2,m6gd.12xlarge,reserved_3y,no_upfront,0.984665,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:18.494654 +AWS,us-east-2,m6gd.12xlarge,reserved_3y,partial_upfront,0.984665,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:18.981362 +AWS,us-east-2,m6gd.12xlarge,spot,NA,0.659023,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546930 +AWS,us-east-2,m6gd.16xlarge,on_demand,NA,2.8928,USD,AWS Pricing API,2025-11-30T08:52:11.596623 +AWS,us-east-2,m6gd.16xlarge,reserved_1y,all_upfront,3.938584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:43.560688 +AWS,us-east-2,m6gd.16xlarge,reserved_1y,no_upfront,3.938584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:20.250760 +AWS,us-east-2,m6gd.16xlarge,reserved_1y,partial_upfront,3.938584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:10.781332 +AWS,us-east-2,m6gd.16xlarge,reserved_3y,all_upfront,1.312861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:52.337970 +AWS,us-east-2,m6gd.16xlarge,reserved_3y,no_upfront,1.312861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:20.814640 +AWS,us-east-2,m6gd.16xlarge,reserved_3y,partial_upfront,1.312861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:21.335933 +AWS,us-east-2,m6gd.16xlarge,spot,NA,0.703664,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547056 +AWS,us-east-2,m6gd.2xlarge,on_demand,NA,0.3616,USD,AWS Pricing API,2025-11-30T08:51:39.374403 +AWS,us-east-2,m6gd.2xlarge,reserved_1y,all_upfront,0.492352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:11.620122 +AWS,us-east-2,m6gd.2xlarge,reserved_1y,no_upfront,0.492352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:48.047694 +AWS,us-east-2,m6gd.2xlarge,reserved_1y,partial_upfront,0.492352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:39.053829 +AWS,us-east-2,m6gd.2xlarge,reserved_3y,all_upfront,0.164117,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:20.691587 +AWS,us-east-2,m6gd.2xlarge,reserved_3y,no_upfront,0.164117,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:48.932519 +AWS,us-east-2,m6gd.2xlarge,reserved_3y,partial_upfront,0.164117,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:48.811629 +AWS,us-east-2,m6gd.2xlarge,spot,NA,0.148576,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545580 +AWS,us-east-2,m6gd.4xlarge,on_demand,NA,0.7232,USD,AWS Pricing API,2025-11-30T08:52:06.395527 +AWS,us-east-2,m6gd.4xlarge,reserved_1y,all_upfront,0.4556,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:38.373469 +AWS,us-east-2,m6gd.4xlarge,reserved_1y,no_upfront,0.4556,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:15.047841 +AWS,us-east-2,m6gd.4xlarge,reserved_1y,partial_upfront,0.4556,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:05.657574 +AWS,us-east-2,m6gd.4xlarge,reserved_3y,all_upfront,0.4556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:47.223281 +AWS,us-east-2,m6gd.4xlarge,reserved_3y,no_upfront,0.4556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:15.602482 +AWS,us-east-2,m6gd.4xlarge,reserved_3y,partial_upfront,0.4556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:16.053410 +AWS,us-east-2,m6gd.4xlarge,spot,NA,0.26082,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546822 +AWS,us-east-2,m6gd.8xlarge,on_demand,NA,1.4464,USD,AWS Pricing API,2025-11-30T08:51:27.917409 +AWS,us-east-2,m6gd.8xlarge,reserved_1y,all_upfront,0.9112,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:00.402288 +AWS,us-east-2,m6gd.8xlarge,reserved_1y,no_upfront,0.9112,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:36.632741 +AWS,us-east-2,m6gd.8xlarge,reserved_1y,partial_upfront,0.9112,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:27.748973 +AWS,us-east-2,m6gd.8xlarge,reserved_3y,all_upfront,0.9112,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:09.401433 +AWS,us-east-2,m6gd.8xlarge,reserved_3y,no_upfront,0.9112,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:37.679334 +AWS,us-east-2,m6gd.8xlarge,reserved_3y,partial_upfront,0.9112,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:37.264834 +AWS,us-east-2,m6gd.8xlarge,spot,NA,0.460761,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545062 +AWS,us-east-2,m6gd.large,on_demand,NA,0.0904,USD,AWS Pricing API,2025-11-30T08:51:49.778640 +AWS,us-east-2,m6gd.large,reserved_1y,all_upfront,0.061416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:21.747227 +AWS,us-east-2,m6gd.large,reserved_1y,no_upfront,0.061416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:58.419415 +AWS,us-east-2,m6gd.large,reserved_1y,partial_upfront,0.061416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:49.242158 +AWS,us-east-2,m6gd.large,reserved_3y,all_upfront,0.020472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:30.847106 +AWS,us-east-2,m6gd.large,reserved_3y,no_upfront,0.020472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:59.089523 +AWS,us-east-2,m6gd.large,reserved_3y,partial_upfront,0.020472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:59.275932 +AWS,us-east-2,m6gd.large,spot,NA,0.031857,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546003 +AWS,us-east-2,m6gd.xlarge,on_demand,NA,0.1808,USD,AWS Pricing API,2025-11-30T08:51:42.868147 +AWS,us-east-2,m6gd.xlarge,reserved_1y,all_upfront,0.0781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:14.995584 +AWS,us-east-2,m6gd.xlarge,reserved_1y,no_upfront,0.0781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:51.523456 +AWS,us-east-2,m6gd.xlarge,reserved_1y,partial_upfront,0.0781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:42.446260 +AWS,us-east-2,m6gd.xlarge,reserved_3y,all_upfront,0.0781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:24.060897 +AWS,us-east-2,m6gd.xlarge,reserved_3y,no_upfront,0.0781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:52.330839 +AWS,us-east-2,m6gd.xlarge,reserved_3y,partial_upfront,0.0781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:52.357767 +AWS,us-east-2,m6gd.xlarge,spot,NA,0.067395,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545708 +AWS,us-east-2,m6i.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:51:28.754610 +AWS,us-east-2,m6i.12xlarge,reserved_1y,all_upfront,1.422489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:01.220436 +AWS,us-east-2,m6i.12xlarge,reserved_1y,no_upfront,1.422489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:37.451713 +AWS,us-east-2,m6i.12xlarge,reserved_1y,partial_upfront,1.422489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:28.579609 +AWS,us-east-2,m6i.12xlarge,reserved_3y,all_upfront,0.474163,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:10.215400 +AWS,us-east-2,m6i.12xlarge,reserved_3y,no_upfront,0.474163,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:38.486286 +AWS,us-east-2,m6i.12xlarge,reserved_3y,partial_upfront,0.474163,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:38.102994 +AWS,us-east-2,m6i.12xlarge,spot,NA,0.863913,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545118 +AWS,us-east-2,m6i.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:51:43.564092 +AWS,us-east-2,m6i.16xlarge,reserved_1y,all_upfront,2.149512,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:15.673377 +AWS,us-east-2,m6i.16xlarge,reserved_1y,no_upfront,2.149512,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:52.234928 +AWS,us-east-2,m6i.16xlarge,reserved_1y,partial_upfront,2.149512,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:43.134377 +AWS,us-east-2,m6i.16xlarge,reserved_3y,all_upfront,1.432997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:24.734341 +AWS,us-east-2,m6i.16xlarge,reserved_3y,no_upfront,1.432997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:53.010043 +AWS,us-east-2,m6i.16xlarge,reserved_3y,partial_upfront,1.432997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:53.053728 +AWS,us-east-2,m6i.16xlarge,spot,NA,1.123888,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545787 +AWS,us-east-2,m6i.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:51:45.088764 +AWS,us-east-2,m6i.24xlarge,reserved_1y,all_upfront,3.22422,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:17.150287 +AWS,us-east-2,m6i.24xlarge,reserved_1y,no_upfront,3.22422,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:53.763360 +AWS,us-east-2,m6i.24xlarge,reserved_1y,partial_upfront,3.22422,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:44.630012 +AWS,us-east-2,m6i.24xlarge,reserved_3y,all_upfront,2.149487,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:26.227211 +AWS,us-east-2,m6i.24xlarge,reserved_3y,no_upfront,2.149487,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:54.499452 +AWS,us-east-2,m6i.24xlarge,reserved_3y,partial_upfront,2.149487,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:54.578750 +AWS,us-east-2,m6i.24xlarge,spot,NA,1.899978,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545861 +AWS,us-east-2,m6i.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:52:04.186512 +AWS,us-east-2,m6i.2xlarge,reserved_1y,all_upfront,0.263356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:36.203207 +AWS,us-east-2,m6i.2xlarge,reserved_1y,no_upfront,0.263356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:12.858833 +AWS,us-east-2,m6i.2xlarge,reserved_1y,partial_upfront,0.263356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:03.491729 +AWS,us-east-2,m6i.2xlarge,reserved_3y,all_upfront,0.087785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:45.048987 +AWS,us-east-2,m6i.2xlarge,reserved_3y,no_upfront,0.087785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:13.428447 +AWS,us-east-2,m6i.2xlarge,reserved_3y,partial_upfront,0.087785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:13.832491 +AWS,us-east-2,m6i.2xlarge,spot,NA,0.150041,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546772 +AWS,us-east-2,m6i.32xlarge,on_demand,NA,6.144,USD,AWS Pricing API,2025-11-30T08:52:20.864682 +AWS,us-east-2,m6i.32xlarge,reserved_1y,all_upfront,3.870748,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:52.803776 +AWS,us-east-2,m6i.32xlarge,reserved_1y,no_upfront,3.870748,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:29.546239 +AWS,us-east-2,m6i.32xlarge,reserved_1y,partial_upfront,3.870748,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:19.955562 +AWS,us-east-2,m6i.32xlarge,reserved_3y,all_upfront,2.580489,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:01.534933 +AWS,us-east-2,m6i.32xlarge,reserved_3y,no_upfront,2.580489,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:30.037321 +AWS,us-east-2,m6i.32xlarge,reserved_3y,partial_upfront,2.580489,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:30.768990 +AWS,us-east-2,m6i.32xlarge,spot,NA,1.952675,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547515 +AWS,us-east-2,m6i.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:51:30.941672 +AWS,us-east-2,m6i.4xlarge,reserved_1y,all_upfront,0.474201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:03.383598 +AWS,us-east-2,m6i.4xlarge,reserved_1y,no_upfront,0.474201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:39.635839 +AWS,us-east-2,m6i.4xlarge,reserved_1y,partial_upfront,0.474201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:30.745369 +AWS,us-east-2,m6i.4xlarge,reserved_3y,all_upfront,0.158067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:12.385446 +AWS,us-east-2,m6i.4xlarge,reserved_3y,no_upfront,0.158067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:40.662131 +AWS,us-east-2,m6i.4xlarge,reserved_3y,partial_upfront,0.158067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:40.322098 +AWS,us-east-2,m6i.4xlarge,spot,NA,0.278615,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545199 +AWS,us-east-2,m6i.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:51:35.729090 +AWS,us-east-2,m6i.8xlarge,reserved_1y,all_upfront,2.120548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:08.116720 +AWS,us-east-2,m6i.8xlarge,reserved_1y,no_upfront,2.120548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:44.440829 +AWS,us-east-2,m6i.8xlarge,reserved_1y,partial_upfront,2.120548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:35.523946 +AWS,us-east-2,m6i.8xlarge,reserved_3y,all_upfront,0.706849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:17.184070 +AWS,us-east-2,m6i.8xlarge,reserved_3y,no_upfront,0.706849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:45.417432 +AWS,us-east-2,m6i.8xlarge,reserved_3y,partial_upfront,0.706849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:45.184667 +AWS,us-east-2,m6i.8xlarge,spot,NA,0.540331,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545420 +AWS,us-east-2,m6i.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T08:51:46.600756 +AWS,us-east-2,m6i.large,reserved_1y,all_upfront,0.060491,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:18.666115 +AWS,us-east-2,m6i.large,reserved_1y,no_upfront,0.060491,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:55.276870 +AWS,us-east-2,m6i.large,reserved_1y,partial_upfront,0.060491,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:46.123706 +AWS,us-east-2,m6i.large,reserved_3y,all_upfront,0.040324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:27.711071 +AWS,us-east-2,m6i.large,reserved_3y,no_upfront,0.040324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:55.982253 +AWS,us-east-2,m6i.large,reserved_3y,partial_upfront,0.040324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:56.106111 +AWS,us-east-2,m6i.large,spot,NA,0.038495,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545886 +AWS,us-east-2,m6i.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:51:22.181622 +AWS,us-east-2,m6i.xlarge,reserved_1y,all_upfront,0.265068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:54.714196 +AWS,us-east-2,m6i.xlarge,reserved_1y,no_upfront,0.265068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:30.868233 +AWS,us-east-2,m6i.xlarge,reserved_1y,partial_upfront,0.265068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:22.051178 +AWS,us-east-2,m6i.xlarge,reserved_3y,all_upfront,0.088356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:03.703902 +AWS,us-east-2,m6i.xlarge,reserved_3y,no_upfront,0.088356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:31.960033 +AWS,us-east-2,m6i.xlarge,reserved_3y,partial_upfront,0.088356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:31.452254 +AWS,us-east-2,m6i.xlarge,spot,NA,0.07709,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544805 +AWS,us-east-2,m6id.12xlarge,on_demand,NA,2.8476,USD,AWS Pricing API,2025-11-30T08:52:00.604153 +AWS,us-east-2,m6id.12xlarge,reserved_1y,all_upfront,2.278082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:32.681114 +AWS,us-east-2,m6id.12xlarge,reserved_1y,no_upfront,2.278082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:09.291851 +AWS,us-east-2,m6id.12xlarge,reserved_1y,partial_upfront,2.278082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:59.964624 +AWS,us-east-2,m6id.12xlarge,reserved_3y,all_upfront,1.139041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:41.517846 +AWS,us-east-2,m6id.12xlarge,reserved_3y,no_upfront,1.139041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:09.885236 +AWS,us-east-2,m6id.12xlarge,reserved_3y,partial_upfront,1.139041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:10.253355 +AWS,us-east-2,m6id.12xlarge,spot,NA,0.837665,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546528 +AWS,us-east-2,m6id.16xlarge,on_demand,NA,3.7968,USD,AWS Pricing API,2025-11-30T08:51:27.375413 +AWS,us-east-2,m6id.16xlarge,reserved_1y,all_upfront,2.278081,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:59.863300 +AWS,us-east-2,m6id.16xlarge,reserved_1y,no_upfront,2.278081,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:36.084780 +AWS,us-east-2,m6id.16xlarge,reserved_1y,partial_upfront,2.278081,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:27.203558 +AWS,us-east-2,m6id.16xlarge,reserved_3y,all_upfront,1.51872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:08.856895 +AWS,us-east-2,m6id.16xlarge,reserved_3y,no_upfront,1.51872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:37.137911 +AWS,us-east-2,m6id.16xlarge,reserved_3y,partial_upfront,1.51872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:36.707586 +AWS,us-east-2,m6id.16xlarge,spot,NA,0.950135,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545016 +AWS,us-east-2,m6id.24xlarge,on_demand,NA,5.6952,USD,AWS Pricing API,2025-11-30T08:51:31.625583 +AWS,us-east-2,m6id.24xlarge,reserved_1y,all_upfront,2.86639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:04.067064 +AWS,us-east-2,m6id.24xlarge,reserved_1y,no_upfront,2.86639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:40.325164 +AWS,us-east-2,m6id.24xlarge,reserved_1y,partial_upfront,2.86639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:31.438985 +AWS,us-east-2,m6id.24xlarge,reserved_3y,all_upfront,2.86639,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:13.057751 +AWS,us-east-2,m6id.24xlarge,reserved_3y,no_upfront,2.86639,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:41.349294 +AWS,us-east-2,m6id.24xlarge,reserved_3y,partial_upfront,2.86639,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:41.012113 +AWS,us-east-2,m6id.24xlarge,spot,NA,1.641429,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545255 +AWS,us-east-2,m6id.2xlarge,on_demand,NA,0.4746,USD,AWS Pricing API,2025-11-30T08:51:23.963773 +AWS,us-east-2,m6id.2xlarge,reserved_1y,all_upfront,0.442325,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:56.470032 +AWS,us-east-2,m6id.2xlarge,reserved_1y,no_upfront,0.442325,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:32.648699 +AWS,us-east-2,m6id.2xlarge,reserved_1y,partial_upfront,0.442325,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:23.807070 +AWS,us-east-2,m6id.2xlarge,reserved_3y,all_upfront,0.221168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:05.476100 +AWS,us-east-2,m6id.2xlarge,reserved_3y,no_upfront,0.221168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:33.735140 +AWS,us-east-2,m6id.2xlarge,reserved_3y,partial_upfront,0.221168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:33.254080 +AWS,us-east-2,m6id.2xlarge,spot,NA,0.176377,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544945 +AWS,us-east-2,m6id.32xlarge,on_demand,NA,7.5936,USD,AWS Pricing API,2025-11-30T08:52:04.463039 +AWS,us-east-2,m6id.32xlarge,reserved_1y,all_upfront,6.074884,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:36.473972 +AWS,us-east-2,m6id.32xlarge,reserved_1y,no_upfront,6.074884,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:13.131902 +AWS,us-east-2,m6id.32xlarge,reserved_1y,partial_upfront,6.074884,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:03.759445 +AWS,us-east-2,m6id.32xlarge,reserved_3y,all_upfront,3.037441,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:45.319205 +AWS,us-east-2,m6id.32xlarge,reserved_3y,no_upfront,3.037441,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:13.711319 +AWS,us-east-2,m6id.32xlarge,reserved_3y,partial_upfront,3.037441,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:14.110297 +AWS,us-east-2,m6id.32xlarge,spot,NA,2.470131,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546778 +AWS,us-east-2,m6id.4xlarge,on_demand,NA,0.9492,USD,AWS Pricing API,2025-11-30T08:52:27.008524 +AWS,us-east-2,m6id.4xlarge,reserved_1y,all_upfront,0.759361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:58.887365 +AWS,us-east-2,m6id.4xlarge,reserved_1y,no_upfront,0.759361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:35.697006 +AWS,us-east-2,m6id.4xlarge,reserved_1y,partial_upfront,0.759361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:26.085169 +AWS,us-east-2,m6id.4xlarge,reserved_3y,all_upfront,0.37968,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:07.634770 +AWS,us-east-2,m6id.4xlarge,reserved_3y,no_upfront,0.37968,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:36.139235 +AWS,us-east-2,m6id.4xlarge,reserved_3y,partial_upfront,0.37968,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:36.983469 +AWS,us-east-2,m6id.4xlarge,spot,NA,0.283842,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547775 +AWS,us-east-2,m6id.8xlarge,on_demand,NA,1.8984,USD,AWS Pricing API,2025-11-30T08:51:59.229141 +AWS,us-east-2,m6id.8xlarge,reserved_1y,all_upfront,1.19599,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:31.314867 +AWS,us-east-2,m6id.8xlarge,reserved_1y,no_upfront,1.19599,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:07.915815 +AWS,us-east-2,m6id.8xlarge,reserved_1y,partial_upfront,1.19599,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:58.609580 +AWS,us-east-2,m6id.8xlarge,reserved_3y,all_upfront,1.19599,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:40.148633 +AWS,us-east-2,m6id.8xlarge,reserved_3y,no_upfront,1.19599,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:08.531788 +AWS,us-east-2,m6id.8xlarge,reserved_3y,partial_upfront,1.19599,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:08.864696 +AWS,us-east-2,m6id.8xlarge,spot,NA,0.581586,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546510 +AWS,us-east-2,m6id.large,on_demand,NA,0.11865,USD,AWS Pricing API,2025-11-30T08:52:28.105728 +AWS,us-east-2,m6id.large,reserved_1y,all_upfront,0.08105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:59.967071 +AWS,us-east-2,m6id.large,reserved_1y,no_upfront,0.08105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:36.787655 +AWS,us-east-2,m6id.large,reserved_1y,partial_upfront,0.08105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:27.163344 +AWS,us-east-2,m6id.large,reserved_3y,all_upfront,0.027017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:08.724664 +AWS,us-east-2,m6id.large,reserved_3y,no_upfront,0.027017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:37.216205 +AWS,us-east-2,m6id.large,reserved_3y,partial_upfront,0.027017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:38.093339 +AWS,us-east-2,m6id.large,spot,NA,0.042288,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547845 +AWS,us-east-2,m6id.xlarge,on_demand,NA,0.2373,USD,AWS Pricing API,2025-11-30T08:51:30.669432 +AWS,us-east-2,m6id.xlarge,reserved_1y,all_upfront,0.325114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:03.115988 +AWS,us-east-2,m6id.xlarge,reserved_1y,no_upfront,0.325114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:39.362035 +AWS,us-east-2,m6id.xlarge,reserved_1y,partial_upfront,0.325114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:30.477146 +AWS,us-east-2,m6id.xlarge,reserved_3y,all_upfront,0.108371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:12.114311 +AWS,us-east-2,m6id.xlarge,reserved_3y,no_upfront,0.108371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:40.392239 +AWS,us-east-2,m6id.xlarge,reserved_3y,partial_upfront,0.108371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:40.044240 +AWS,us-east-2,m6id.xlarge,spot,NA,0.069554,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545174 +AWS,us-east-2,m6idn.12xlarge,on_demand,NA,3.81888,USD,AWS Pricing API,2025-11-30T08:51:50.873008 +AWS,us-east-2,m6idn.12xlarge,reserved_1y,all_upfront,4.647032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:22.830822 +AWS,us-east-2,m6idn.12xlarge,reserved_1y,no_upfront,4.647032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:59.518445 +AWS,us-east-2,m6idn.12xlarge,reserved_1y,partial_upfront,4.647032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:50.353213 +AWS,us-east-2,m6idn.12xlarge,reserved_3y,all_upfront,1.549011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:31.944434 +AWS,us-east-2,m6idn.12xlarge,reserved_3y,no_upfront,1.549011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:00.175820 +AWS,us-east-2,m6idn.12xlarge,reserved_3y,partial_upfront,1.549011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:00.400186 +AWS,us-east-2,m6idn.12xlarge,spot,NA,1.122596,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546118 +AWS,us-east-2,m6idn.16xlarge,on_demand,NA,5.09184,USD,AWS Pricing API,2025-11-30T08:52:14.198033 +AWS,us-east-2,m6idn.16xlarge,reserved_1y,all_upfront,2.99395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:46.147265 +AWS,us-east-2,m6idn.16xlarge,reserved_1y,no_upfront,2.99395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:22.845036 +AWS,us-east-2,m6idn.16xlarge,reserved_1y,partial_upfront,2.99395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:13.351678 +AWS,us-east-2,m6idn.16xlarge,reserved_3y,all_upfront,0.997983,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:54.896594 +AWS,us-east-2,m6idn.16xlarge,reserved_3y,no_upfront,0.997983,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:23.409732 +AWS,us-east-2,m6idn.16xlarge,reserved_3y,partial_upfront,0.997983,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:23.995083 +AWS,us-east-2,m6idn.16xlarge,spot,NA,1.41216,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547189 +AWS,us-east-2,m6idn.24xlarge,on_demand,NA,7.63776,USD,AWS Pricing API,2025-11-30T08:51:56.754534 +AWS,us-east-2,m6idn.24xlarge,reserved_1y,all_upfront,5.58168,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:28.873569 +AWS,us-east-2,m6idn.24xlarge,reserved_1y,no_upfront,5.58168,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:05.430377 +AWS,us-east-2,m6idn.24xlarge,reserved_1y,partial_upfront,5.58168,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:56.168653 +AWS,us-east-2,m6idn.24xlarge,reserved_3y,all_upfront,5.58168,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:37.727594 +AWS,us-east-2,m6idn.24xlarge,reserved_3y,no_upfront,5.58168,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:06.093545 +AWS,us-east-2,m6idn.24xlarge,reserved_3y,partial_upfront,5.58168,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:06.376092 +AWS,us-east-2,m6idn.24xlarge,spot,NA,2.462189,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546358 +AWS,us-east-2,m6idn.2xlarge,on_demand,NA,0.63648,USD,AWS Pricing API,2025-11-30T08:51:36.885387 +AWS,us-east-2,m6idn.2xlarge,reserved_1y,all_upfront,0.442961,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:09.195190 +AWS,us-east-2,m6idn.2xlarge,reserved_1y,no_upfront,0.442961,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:45.539612 +AWS,us-east-2,m6idn.2xlarge,reserved_1y,partial_upfront,0.442961,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:36.612173 +AWS,us-east-2,m6idn.2xlarge,reserved_3y,all_upfront,0.29532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:18.252526 +AWS,us-east-2,m6idn.2xlarge,reserved_3y,no_upfront,0.29532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:46.508238 +AWS,us-east-2,m6idn.2xlarge,reserved_3y,partial_upfront,0.29532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:46.311395 +AWS,us-east-2,m6idn.2xlarge,spot,NA,0.243561,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545458 +AWS,us-east-2,m6idn.32xlarge,on_demand,NA,10.18368,USD,AWS Pricing API,2025-11-30T08:51:57.587440 +AWS,us-east-2,m6idn.32xlarge,reserved_1y,all_upfront,7.332261,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:29.681001 +AWS,us-east-2,m6idn.32xlarge,reserved_1y,no_upfront,7.332261,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:06.279161 +AWS,us-east-2,m6idn.32xlarge,reserved_1y,partial_upfront,7.332261,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:56.984550 +AWS,us-east-2,m6idn.32xlarge,reserved_3y,all_upfront,3.666127,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:38.538745 +AWS,us-east-2,m6idn.32xlarge,reserved_3y,no_upfront,3.666127,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:06.909717 +AWS,us-east-2,m6idn.32xlarge,reserved_3y,partial_upfront,3.666127,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:07.204823 +AWS,us-east-2,m6idn.32xlarge,spot,NA,3.268135,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546435 +AWS,us-east-2,m6idn.4xlarge,on_demand,NA,1.27296,USD,AWS Pricing API,2025-11-30T08:51:53.763299 +AWS,us-east-2,m6idn.4xlarge,reserved_1y,all_upfront,0.868265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:25.680877 +AWS,us-east-2,m6idn.4xlarge,reserved_1y,no_upfront,0.868265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:02.427098 +AWS,us-east-2,m6idn.4xlarge,reserved_1y,partial_upfront,0.868265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:53.211573 +AWS,us-east-2,m6idn.4xlarge,reserved_3y,all_upfront,0.289422,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:34.764777 +AWS,us-east-2,m6idn.4xlarge,reserved_3y,no_upfront,0.289422,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:03.082397 +AWS,us-east-2,m6idn.4xlarge,reserved_3y,partial_upfront,0.289422,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:03.325865 +AWS,us-east-2,m6idn.4xlarge,spot,NA,0.46087,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546243 +AWS,us-east-2,m6idn.8xlarge,on_demand,NA,2.54592,USD,AWS Pricing API,2025-11-30T08:51:21.501971 +AWS,us-east-2,m6idn.8xlarge,reserved_1y,all_upfront,1.771939,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:54.035503 +AWS,us-east-2,m6idn.8xlarge,reserved_1y,no_upfront,1.771939,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:30.185657 +AWS,us-east-2,m6idn.8xlarge,reserved_1y,partial_upfront,1.771939,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:21.377957 +AWS,us-east-2,m6idn.8xlarge,reserved_3y,all_upfront,1.1813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:03.030684 +AWS,us-east-2,m6idn.8xlarge,reserved_3y,no_upfront,1.1813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:31.284099 +AWS,us-east-2,m6idn.8xlarge,reserved_3y,partial_upfront,1.1813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:30.759495 +AWS,us-east-2,m6idn.8xlarge,spot,NA,0.772199,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544779 +AWS,us-east-2,m6idn.large,on_demand,NA,0.15912,USD,AWS Pricing API,2025-11-30T08:52:08.179161 +AWS,us-east-2,m6idn.large,reserved_1y,all_upfront,0.193607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:40.166790 +AWS,us-east-2,m6idn.large,reserved_1y,no_upfront,0.193607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:16.829884 +AWS,us-east-2,m6idn.large,reserved_1y,partial_upfront,0.193607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:07.408930 +AWS,us-east-2,m6idn.large,reserved_3y,all_upfront,0.064536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:48.965902 +AWS,us-east-2,m6idn.large,reserved_3y,no_upfront,0.064536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:17.362282 +AWS,us-east-2,m6idn.large,reserved_3y,partial_upfront,0.064536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:17.853223 +AWS,us-east-2,m6idn.large,spot,NA,0.047501,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546973 +AWS,us-east-2,m6idn.xlarge,on_demand,NA,0.31824,USD,AWS Pricing API,2025-11-30T08:51:51.011561 +AWS,us-east-2,m6idn.xlarge,reserved_1y,all_upfront,0.190904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:22.964414 +AWS,us-east-2,m6idn.xlarge,reserved_1y,no_upfront,0.190904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:59.654027 +AWS,us-east-2,m6idn.xlarge,reserved_1y,partial_upfront,0.190904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:50.488879 +AWS,us-east-2,m6idn.xlarge,reserved_3y,all_upfront,0.127281,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:32.077060 +AWS,us-east-2,m6idn.xlarge,reserved_3y,no_upfront,0.127281,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:00.327637 +AWS,us-east-2,m6idn.xlarge,reserved_3y,partial_upfront,0.127281,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:00.536499 +AWS,us-east-2,m6idn.xlarge,spot,NA,0.090545,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546099 +AWS,us-east-2,m6in.12xlarge,on_demand,NA,3.34152,USD,AWS Pricing API,2025-11-30T08:51:18.626691 +AWS,us-east-2,m6in.12xlarge,reserved_1y,all_upfront,1.96484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:51.179703 +AWS,us-east-2,m6in.12xlarge,reserved_1y,no_upfront,1.96484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:27.324087 +AWS,us-east-2,m6in.12xlarge,reserved_1y,partial_upfront,1.96484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:18.543325 +AWS,us-east-2,m6in.12xlarge,reserved_3y,all_upfront,0.654947,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:00.164327 +AWS,us-east-2,m6in.12xlarge,reserved_3y,no_upfront,0.654947,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:28.422739 +AWS,us-east-2,m6in.12xlarge,reserved_3y,partial_upfront,0.654947,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:27.865388 +AWS,us-east-2,m6in.12xlarge,spot,NA,1.168018,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544641 +AWS,us-east-2,m6in.16xlarge,on_demand,NA,4.45536,USD,AWS Pricing API,2025-11-30T08:51:28.606690 +AWS,us-east-2,m6in.16xlarge,reserved_1y,all_upfront,3.25083,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:01.084871 +AWS,us-east-2,m6in.16xlarge,reserved_1y,no_upfront,3.25083,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:37.313748 +AWS,us-east-2,m6in.16xlarge,reserved_1y,partial_upfront,3.25083,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:28.444878 +AWS,us-east-2,m6in.16xlarge,reserved_3y,all_upfront,3.25083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:10.072742 +AWS,us-east-2,m6in.16xlarge,reserved_3y,no_upfront,3.25083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:38.351878 +AWS,us-east-2,m6in.16xlarge,reserved_3y,partial_upfront,3.25083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:37.959068 +AWS,us-east-2,m6in.16xlarge,spot,NA,1.372493,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545099 +AWS,us-east-2,m6in.24xlarge,on_demand,NA,6.68304,USD,AWS Pricing API,2025-11-30T08:52:10.645847 +AWS,us-east-2,m6in.24xlarge,reserved_1y,all_upfront,4.009819,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:42.615445 +AWS,us-east-2,m6in.24xlarge,reserved_1y,no_upfront,4.009819,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:19.296005 +AWS,us-east-2,m6in.24xlarge,reserved_1y,partial_upfront,4.009819,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:09.830031 +AWS,us-east-2,m6in.24xlarge,reserved_3y,all_upfront,2.673213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:51.395200 +AWS,us-east-2,m6in.24xlarge,reserved_3y,no_upfront,2.673213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:19.851000 +AWS,us-east-2,m6in.24xlarge,reserved_3y,partial_upfront,2.673213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:20.368662 +AWS,us-east-2,m6in.24xlarge,spot,NA,2.41583,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546999 +AWS,us-east-2,m6in.2xlarge,on_demand,NA,0.55692,USD,AWS Pricing API,2025-11-30T08:51:35.454744 +AWS,us-east-2,m6in.2xlarge,reserved_1y,all_upfront,0.21467,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:07.845583 +AWS,us-east-2,m6in.2xlarge,reserved_1y,no_upfront,0.21467,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:44.166584 +AWS,us-east-2,m6in.2xlarge,reserved_1y,partial_upfront,0.21467,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:35.253364 +AWS,us-east-2,m6in.2xlarge,reserved_3y,all_upfront,0.21467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:16.913539 +AWS,us-east-2,m6in.2xlarge,reserved_3y,no_upfront,0.21467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:45.147701 +AWS,us-east-2,m6in.2xlarge,reserved_3y,partial_upfront,0.21467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:44.903586 +AWS,us-east-2,m6in.2xlarge,spot,NA,0.231868,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545440 +AWS,us-east-2,m6in.32xlarge,on_demand,NA,8.91072,USD,AWS Pricing API,2025-11-30T08:51:24.098503 +AWS,us-east-2,m6in.32xlarge,reserved_1y,all_upfront,6.36044,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:56.603533 +AWS,us-east-2,m6in.32xlarge,reserved_1y,no_upfront,6.36044,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:32.788420 +AWS,us-east-2,m6in.32xlarge,reserved_1y,partial_upfront,6.36044,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:23.941217 +AWS,us-east-2,m6in.32xlarge,reserved_3y,all_upfront,3.180227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:05.612641 +AWS,us-east-2,m6in.32xlarge,reserved_3y,no_upfront,3.180227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:33.870483 +AWS,us-east-2,m6in.32xlarge,reserved_3y,partial_upfront,3.180227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:33.399155 +AWS,us-east-2,m6in.32xlarge,spot,NA,2.725796,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544951 +AWS,us-east-2,m6in.4xlarge,on_demand,NA,1.11384,USD,AWS Pricing API,2025-11-30T08:51:34.231933 +AWS,us-east-2,m6in.4xlarge,reserved_1y,all_upfront,0.668282,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:06.633740 +AWS,us-east-2,m6in.4xlarge,reserved_1y,no_upfront,0.668282,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:42.937434 +AWS,us-east-2,m6in.4xlarge,reserved_1y,partial_upfront,0.668282,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:34.029456 +AWS,us-east-2,m6in.4xlarge,reserved_3y,all_upfront,0.445527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:15.702926 +AWS,us-east-2,m6in.4xlarge,reserved_3y,no_upfront,0.445527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:43.925176 +AWS,us-east-2,m6in.4xlarge,reserved_3y,partial_upfront,0.445527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:43.656073 +AWS,us-east-2,m6in.4xlarge,spot,NA,0.44391,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545352 +AWS,us-east-2,m6in.8xlarge,on_demand,NA,2.22768,USD,AWS Pricing API,2025-11-30T08:51:32.315272 +AWS,us-east-2,m6in.8xlarge,reserved_1y,all_upfront,1.517009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:04.748273 +AWS,us-east-2,m6in.8xlarge,reserved_1y,no_upfront,1.517009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:41.010614 +AWS,us-east-2,m6in.8xlarge,reserved_1y,partial_upfront,1.517009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:32.111196 +AWS,us-east-2,m6in.8xlarge,reserved_3y,all_upfront,0.50567,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:13.802355 +AWS,us-east-2,m6in.8xlarge,reserved_3y,no_upfront,0.50567,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:42.035461 +AWS,us-east-2,m6in.8xlarge,reserved_3y,partial_upfront,0.50567,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:41.704501 +AWS,us-east-2,m6in.8xlarge,spot,NA,0.765605,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545261 +AWS,us-east-2,m6in.large,on_demand,NA,0.13923,USD,AWS Pricing API,2025-11-30T08:51:52.253900 +AWS,us-east-2,m6in.large,reserved_1y,all_upfront,0.096782,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:24.181892 +AWS,us-east-2,m6in.large,reserved_1y,no_upfront,0.096782,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:00.899086 +AWS,us-east-2,m6in.large,reserved_1y,partial_upfront,0.096782,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:51.706715 +AWS,us-east-2,m6in.large,reserved_3y,all_upfront,0.064514,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:33.289524 +AWS,us-east-2,m6in.large,reserved_3y,no_upfront,0.064514,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:01.577338 +AWS,us-east-2,m6in.large,reserved_3y,partial_upfront,0.064514,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:01.789474 +AWS,us-east-2,m6in.large,spot,NA,0.047544,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546186 +AWS,us-east-2,m6in.xlarge,on_demand,NA,0.27846,USD,AWS Pricing API,2025-11-30T08:52:06.532080 +AWS,us-east-2,m6in.xlarge,reserved_1y,all_upfront,0.280251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:38.508271 +AWS,us-east-2,m6in.xlarge,reserved_1y,no_upfront,0.280251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:15.185388 +AWS,us-east-2,m6in.xlarge,reserved_1y,partial_upfront,0.280251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:05.791675 +AWS,us-east-2,m6in.xlarge,reserved_3y,all_upfront,0.093417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:47.355616 +AWS,us-east-2,m6in.xlarge,reserved_3y,no_upfront,0.093417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:15.736749 +AWS,us-east-2,m6in.xlarge,reserved_3y,partial_upfront,0.093417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:16.192426 +AWS,us-east-2,m6in.xlarge,spot,NA,0.101755,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546809 +AWS,us-east-2,m7a.12xlarge,on_demand,NA,2.78208,USD,AWS Pricing API,2025-11-30T08:51:54.987736 +AWS,us-east-2,m7a.12xlarge,reserved_1y,all_upfront,1.717694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:27.088917 +AWS,us-east-2,m7a.12xlarge,reserved_1y,no_upfront,1.717694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:03.657351 +AWS,us-east-2,m7a.12xlarge,reserved_1y,partial_upfront,1.717694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:54.426780 +AWS,us-east-2,m7a.12xlarge,reserved_3y,all_upfront,0.572565,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:35.974884 +AWS,us-east-2,m7a.12xlarge,reserved_3y,no_upfront,0.572565,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:04.319570 +AWS,us-east-2,m7a.12xlarge,reserved_3y,partial_upfront,0.572565,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:04.573464 +AWS,us-east-2,m7a.12xlarge,spot,NA,0.950807,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546300 +AWS,us-east-2,m7a.16xlarge,on_demand,NA,3.70944,USD,AWS Pricing API,2025-11-30T08:52:11.186762 +AWS,us-east-2,m7a.16xlarge,reserved_1y,all_upfront,4.393493,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:43.155121 +AWS,us-east-2,m7a.16xlarge,reserved_1y,no_upfront,4.393493,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:19.840625 +AWS,us-east-2,m7a.16xlarge,reserved_1y,partial_upfront,4.393493,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:10.378519 +AWS,us-east-2,m7a.16xlarge,reserved_3y,all_upfront,1.464498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:51.936633 +AWS,us-east-2,m7a.16xlarge,reserved_3y,no_upfront,1.464498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:20.400149 +AWS,us-east-2,m7a.16xlarge,reserved_3y,partial_upfront,1.464498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:20.922395 +AWS,us-east-2,m7a.16xlarge,spot,NA,1.379502,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547069 +AWS,us-east-2,m7a.24xlarge,on_demand,NA,5.56416,USD,AWS Pricing API,2025-11-30T08:52:24.008566 +AWS,us-east-2,m7a.24xlarge,reserved_1y,all_upfront,4.673835,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:55.922899 +AWS,us-east-2,m7a.24xlarge,reserved_1y,no_upfront,4.673835,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:32.700265 +AWS,us-east-2,m7a.24xlarge,reserved_1y,partial_upfront,4.673835,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:23.086164 +AWS,us-east-2,m7a.24xlarge,reserved_3y,all_upfront,2.336925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:04.672605 +AWS,us-east-2,m7a.24xlarge,reserved_3y,no_upfront,2.336925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:33.166193 +AWS,us-east-2,m7a.24xlarge,reserved_3y,partial_upfront,2.336925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:33.948391 +AWS,us-east-2,m7a.24xlarge,spot,NA,1.764621,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547653 +AWS,us-east-2,m7a.2xlarge,on_demand,NA,0.46368,USD,AWS Pricing API,2025-11-30T08:51:30.258406 +AWS,us-east-2,m7a.2xlarge,reserved_1y,all_upfront,0.34066,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:02.711026 +AWS,us-east-2,m7a.2xlarge,reserved_1y,no_upfront,0.34066,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:38.949764 +AWS,us-east-2,m7a.2xlarge,reserved_1y,partial_upfront,0.34066,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:30.073568 +AWS,us-east-2,m7a.2xlarge,reserved_3y,all_upfront,0.34066,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:11.704567 +AWS,us-east-2,m7a.2xlarge,reserved_3y,no_upfront,0.34066,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:39.981765 +AWS,us-east-2,m7a.2xlarge,reserved_3y,partial_upfront,0.34066,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:39.627974 +AWS,us-east-2,m7a.2xlarge,spot,NA,0.16836,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545150 +AWS,us-east-2,m7a.32xlarge,on_demand,NA,7.41888,USD,AWS Pricing API,2025-11-30T08:52:13.517185 +AWS,us-east-2,m7a.32xlarge,reserved_1y,all_upfront,5.45054,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:45.464261 +AWS,us-east-2,m7a.32xlarge,reserved_1y,no_upfront,5.45054,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:22.167130 +AWS,us-east-2,m7a.32xlarge,reserved_1y,partial_upfront,5.45054,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:12.674967 +AWS,us-east-2,m7a.32xlarge,reserved_3y,all_upfront,5.45054,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:54.232232 +AWS,us-east-2,m7a.32xlarge,reserved_3y,no_upfront,5.45054,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:22.724816 +AWS,us-east-2,m7a.32xlarge,reserved_3y,partial_upfront,5.45054,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:23.296699 +AWS,us-east-2,m7a.32xlarge,spot,NA,2.310583,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547214 +AWS,us-east-2,m7a.48xlarge,on_demand,NA,11.12832,USD,AWS Pricing API,2025-11-30T08:51:23.279567 +AWS,us-east-2,m7a.48xlarge,reserved_1y,all_upfront,6.870662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:55.782409 +AWS,us-east-2,m7a.48xlarge,reserved_1y,no_upfront,6.870662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:31.959847 +AWS,us-east-2,m7a.48xlarge,reserved_1y,partial_upfront,6.870662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:23.138304 +AWS,us-east-2,m7a.48xlarge,reserved_3y,all_upfront,2.290221,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:04.801317 +AWS,us-east-2,m7a.48xlarge,reserved_3y,no_upfront,2.290221,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:33.050811 +AWS,us-east-2,m7a.48xlarge,reserved_3y,partial_upfront,2.290221,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:32.546561 +AWS,us-east-2,m7a.48xlarge,spot,NA,2.775803,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544832 +AWS,us-east-2,m7a.4xlarge,on_demand,NA,0.92736,USD,AWS Pricing API,2025-11-30T08:51:56.895816 +AWS,us-east-2,m7a.4xlarge,reserved_1y,all_upfront,0.572603,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:29.008590 +AWS,us-east-2,m7a.4xlarge,reserved_1y,no_upfront,0.572603,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:05.587473 +AWS,us-east-2,m7a.4xlarge,reserved_1y,partial_upfront,0.572603,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:56.302251 +AWS,us-east-2,m7a.4xlarge,reserved_3y,all_upfront,0.190868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:37.860903 +AWS,us-east-2,m7a.4xlarge,reserved_3y,no_upfront,0.190868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:06.228905 +AWS,us-east-2,m7a.4xlarge,reserved_3y,partial_upfront,0.190868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:06.512424 +AWS,us-east-2,m7a.4xlarge,spot,NA,0.380289,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546352 +AWS,us-east-2,m7a.8xlarge,on_demand,NA,1.85472,USD,AWS Pricing API,2025-11-30T08:52:01.151065 +AWS,us-east-2,m7a.8xlarge,reserved_1y,all_upfront,1.168487,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:33.219823 +AWS,us-east-2,m7a.8xlarge,reserved_1y,no_upfront,1.168487,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:09.840179 +AWS,us-east-2,m7a.8xlarge,reserved_1y,partial_upfront,1.168487,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:00.500006 +AWS,us-east-2,m7a.8xlarge,reserved_3y,all_upfront,0.778989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:42.057220 +AWS,us-east-2,m7a.8xlarge,reserved_3y,no_upfront,0.778989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:10.423866 +AWS,us-east-2,m7a.8xlarge,reserved_3y,partial_upfront,0.778989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:10.806875 +AWS,us-east-2,m7a.8xlarge,spot,NA,0.663389,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546663 +AWS,us-east-2,m7a.xlarge,on_demand,NA,0.23184,USD,AWS Pricing API,2025-11-30T08:51:22.868602 +AWS,us-east-2,m7a.xlarge,reserved_1y,all_upfront,0.146089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:55.379611 +AWS,us-east-2,m7a.xlarge,reserved_1y,no_upfront,0.146089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:31.550674 +AWS,us-east-2,m7a.xlarge,reserved_1y,partial_upfront,0.146089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:22.726314 +AWS,us-east-2,m7a.xlarge,reserved_3y,all_upfront,0.097383,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:04.384795 +AWS,us-east-2,m7a.xlarge,reserved_3y,no_upfront,0.097383,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:32.645596 +AWS,us-east-2,m7a.xlarge,reserved_3y,partial_upfront,0.097383,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:32.136550 +AWS,us-east-2,m7a.xlarge,spot,NA,0.089721,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544845 +AWS,us-east-2,m7g.12xlarge,on_demand,NA,1.9584,USD,AWS Pricing API,2025-11-30T08:51:39.789778 +AWS,us-east-2,m7g.12xlarge,reserved_1y,all_upfront,1.233795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:12.022004 +AWS,us-east-2,m7g.12xlarge,reserved_1y,no_upfront,1.233795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:48.457876 +AWS,us-east-2,m7g.12xlarge,reserved_1y,partial_upfront,1.233795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:39.460049 +AWS,us-east-2,m7g.12xlarge,reserved_3y,all_upfront,0.822532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:21.096178 +AWS,us-east-2,m7g.12xlarge,reserved_3y,no_upfront,0.822532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:49.340198 +AWS,us-east-2,m7g.12xlarge,reserved_3y,partial_upfront,0.822532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:49.318870 +AWS,us-east-2,m7g.12xlarge,spot,NA,0.648543,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545602 +AWS,us-east-2,m7g.16xlarge,on_demand,NA,2.6112,USD,AWS Pricing API,2025-11-30T08:52:08.998864 +AWS,us-east-2,m7g.16xlarge,reserved_1y,all_upfront,1.644989,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:40.985096 +AWS,us-east-2,m7g.16xlarge,reserved_1y,no_upfront,1.644989,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:17.647925 +AWS,us-east-2,m7g.16xlarge,reserved_1y,partial_upfront,1.644989,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:08.213890 +AWS,us-east-2,m7g.16xlarge,reserved_3y,all_upfront,1.096663,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:49.775044 +AWS,us-east-2,m7g.16xlarge,reserved_3y,no_upfront,1.096663,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:18.225611 +AWS,us-east-2,m7g.16xlarge,reserved_3y,partial_upfront,1.096663,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:18.696299 +AWS,us-east-2,m7g.16xlarge,spot,NA,0.783744,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546961 +AWS,us-east-2,m7g.2xlarge,on_demand,NA,0.3264,USD,AWS Pricing API,2025-11-30T08:51:31.487037 +AWS,us-east-2,m7g.2xlarge,reserved_1y,all_upfront,0.1481,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:03.931787 +AWS,us-east-2,m7g.2xlarge,reserved_1y,no_upfront,0.1481,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:40.184351 +AWS,us-east-2,m7g.2xlarge,reserved_1y,partial_upfront,0.1481,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:31.304621 +AWS,us-east-2,m7g.2xlarge,reserved_3y,all_upfront,0.1481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:12.923613 +AWS,us-east-2,m7g.2xlarge,reserved_3y,no_upfront,0.1481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:41.213084 +AWS,us-east-2,m7g.2xlarge,reserved_3y,partial_upfront,0.1481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:40.873133 +AWS,us-east-2,m7g.2xlarge,spot,NA,0.122918,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545212 +AWS,us-east-2,m7g.4xlarge,on_demand,NA,0.6528,USD,AWS Pricing API,2025-11-30T08:52:28.665260 +AWS,us-east-2,m7g.4xlarge,reserved_1y,all_upfront,0.411194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:00.510726 +AWS,us-east-2,m7g.4xlarge,reserved_1y,no_upfront,0.411194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:37.340135 +AWS,us-east-2,m7g.4xlarge,reserved_1y,partial_upfront,0.411194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:27.703087 +AWS,us-east-2,m7g.4xlarge,reserved_3y,all_upfront,0.274131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:09.260747 +AWS,us-east-2,m7g.4xlarge,reserved_3y,no_upfront,0.274131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:37.760304 +AWS,us-east-2,m7g.4xlarge,reserved_3y,partial_upfront,0.274131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:38.659111 +AWS,us-east-2,m7g.4xlarge,spot,NA,0.304452,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547890 +AWS,us-east-2,m7g.8xlarge,on_demand,NA,1.3056,USD,AWS Pricing API,2025-11-30T08:51:22.594373 +AWS,us-east-2,m7g.8xlarge,reserved_1y,all_upfront,0.822601,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:55.115353 +AWS,us-east-2,m7g.8xlarge,reserved_1y,no_upfront,0.822601,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:31.279349 +AWS,us-east-2,m7g.8xlarge,reserved_1y,partial_upfront,0.822601,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:22.459904 +AWS,us-east-2,m7g.8xlarge,reserved_3y,all_upfront,0.5484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:04.111988 +AWS,us-east-2,m7g.8xlarge,reserved_3y,no_upfront,0.5484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:32.365391 +AWS,us-east-2,m7g.8xlarge,reserved_3y,partial_upfront,0.5484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:31.861451 +AWS,us-east-2,m7g.8xlarge,spot,NA,0.463414,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544838 +AWS,us-east-2,m7g.large,on_demand,NA,0.0816,USD,AWS Pricing API,2025-11-30T08:51:50.597525 +AWS,us-east-2,m7g.large,reserved_1y,all_upfront,0.112671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:22.564959 +AWS,us-east-2,m7g.large,reserved_1y,no_upfront,0.112671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:59.245779 +AWS,us-east-2,m7g.large,reserved_1y,partial_upfront,0.112671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:50.079692 +AWS,us-east-2,m7g.large,reserved_3y,all_upfront,0.037557,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:31.676340 +AWS,us-east-2,m7g.large,reserved_3y,no_upfront,0.037557,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:59.903987 +AWS,us-east-2,m7g.large,reserved_3y,partial_upfront,0.037557,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:00.121980 +AWS,us-east-2,m7g.large,spot,NA,0.03513,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546124 +AWS,us-east-2,m7g.xlarge,on_demand,NA,0.1632,USD,AWS Pricing API,2025-11-30T08:51:57.451993 +AWS,us-east-2,m7g.xlarge,reserved_1y,all_upfront,0.1199,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:29.546658 +AWS,us-east-2,m7g.xlarge,reserved_1y,no_upfront,0.1199,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:06.142351 +AWS,us-east-2,m7g.xlarge,reserved_1y,partial_upfront,0.1199,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:56.848792 +AWS,us-east-2,m7g.xlarge,reserved_3y,all_upfront,0.1199,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:38.404505 +AWS,us-east-2,m7g.xlarge,reserved_3y,no_upfront,0.1199,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:06.773572 +AWS,us-east-2,m7g.xlarge,reserved_3y,partial_upfront,0.1199,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:07.068709 +AWS,us-east-2,m7g.xlarge,spot,NA,0.057127,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546448 +AWS,us-east-2,m7gd.12xlarge,on_demand,NA,2.5628,USD,AWS Pricing API,2025-11-30T08:51:30.805630 +AWS,us-east-2,m7gd.12xlarge,reserved_1y,all_upfront,1.2899,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:03.249810 +AWS,us-east-2,m7gd.12xlarge,reserved_1y,no_upfront,1.2899,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:39.499317 +AWS,us-east-2,m7gd.12xlarge,reserved_1y,partial_upfront,1.2899,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:30.611222 +AWS,us-east-2,m7gd.12xlarge,reserved_3y,all_upfront,1.2899,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:12.248934 +AWS,us-east-2,m7gd.12xlarge,reserved_3y,no_upfront,1.2899,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:40.526016 +AWS,us-east-2,m7gd.12xlarge,reserved_3y,partial_upfront,1.2899,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:40.180823 +AWS,us-east-2,m7gd.12xlarge,spot,NA,0.856303,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545230 +AWS,us-east-2,m7gd.16xlarge,on_demand,NA,3.4171,USD,AWS Pricing API,2025-11-30T08:51:48.269452 +AWS,us-east-2,m7gd.16xlarge,reserved_1y,all_upfront,4.681735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:20.273204 +AWS,us-east-2,m7gd.16xlarge,reserved_1y,no_upfront,4.681735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:56.913296 +AWS,us-east-2,m7gd.16xlarge,reserved_1y,partial_upfront,4.681735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:47.760551 +AWS,us-east-2,m7gd.16xlarge,reserved_3y,all_upfront,1.560578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:29.344061 +AWS,us-east-2,m7gd.16xlarge,reserved_3y,no_upfront,1.560578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:57.602211 +AWS,us-east-2,m7gd.16xlarge,reserved_3y,partial_upfront,1.560578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:57.758250 +AWS,us-east-2,m7gd.16xlarge,spot,NA,1.065571,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545960 +AWS,us-east-2,m7gd.2xlarge,on_demand,NA,0.4271,USD,AWS Pricing API,2025-11-30T08:52:04.051092 +AWS,us-east-2,m7gd.2xlarge,reserved_1y,all_upfront,0.2691,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:36.066675 +AWS,us-east-2,m7gd.2xlarge,reserved_1y,no_upfront,0.2691,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:12.716590 +AWS,us-east-2,m7gd.2xlarge,reserved_1y,partial_upfront,0.2691,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:03.355052 +AWS,us-east-2,m7gd.2xlarge,reserved_3y,all_upfront,0.2691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:44.906410 +AWS,us-east-2,m7gd.2xlarge,reserved_3y,no_upfront,0.2691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:13.288900 +AWS,us-east-2,m7gd.2xlarge,reserved_3y,partial_upfront,0.2691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:13.695559 +AWS,us-east-2,m7gd.2xlarge,spot,NA,0.14545,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546746 +AWS,us-east-2,m7gd.4xlarge,on_demand,NA,0.8543,USD,AWS Pricing API,2025-11-30T08:52:21.684799 +AWS,us-east-2,m7gd.4xlarge,reserved_1y,all_upfront,0.43,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:53.613568 +AWS,us-east-2,m7gd.4xlarge,reserved_1y,no_upfront,0.43,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:30.364757 +AWS,us-east-2,m7gd.4xlarge,reserved_1y,partial_upfront,0.43,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:20.773511 +AWS,us-east-2,m7gd.4xlarge,reserved_3y,all_upfront,0.43,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:02.374760 +AWS,us-east-2,m7gd.4xlarge,reserved_3y,no_upfront,0.43,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:30.850094 +AWS,us-east-2,m7gd.4xlarge,reserved_3y,partial_upfront,0.43,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:31.605985 +AWS,us-east-2,m7gd.4xlarge,spot,NA,0.344773,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547571 +AWS,us-east-2,m7gd.8xlarge,on_demand,NA,1.7086,USD,AWS Pricing API,2025-11-30T08:52:01.698801 +AWS,us-east-2,m7gd.8xlarge,reserved_1y,all_upfront,1.025157,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:33.761052 +AWS,us-east-2,m7gd.8xlarge,reserved_1y,no_upfront,1.025157,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:10.388053 +AWS,us-east-2,m7gd.8xlarge,reserved_1y,partial_upfront,1.025157,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:01.035875 +AWS,us-east-2,m7gd.8xlarge,reserved_3y,all_upfront,0.683452,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:42.599404 +AWS,us-east-2,m7gd.8xlarge,reserved_3y,no_upfront,0.683452,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:10.970226 +AWS,us-east-2,m7gd.8xlarge,reserved_3y,partial_upfront,0.683452,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:11.360083 +AWS,us-east-2,m7gd.8xlarge,spot,NA,0.578502,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546605 +AWS,us-east-2,m7gd.large,on_demand,NA,0.1068,USD,AWS Pricing API,2025-11-30T08:51:59.504171 +AWS,us-east-2,m7gd.large,reserved_1y,all_upfront,0.062785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:31.585269 +AWS,us-east-2,m7gd.large,reserved_1y,no_upfront,0.062785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:08.191801 +AWS,us-east-2,m7gd.large,reserved_1y,partial_upfront,0.062785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:58.884612 +AWS,us-east-2,m7gd.large,reserved_3y,all_upfront,0.020928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:40.415086 +AWS,us-east-2,m7gd.large,reserved_3y,no_upfront,0.020928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:08.799981 +AWS,us-east-2,m7gd.large,reserved_3y,partial_upfront,0.020928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:09.145566 +AWS,us-east-2,m7gd.large,spot,NA,0.033703,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546473 +AWS,us-east-2,m7gd.xlarge,on_demand,NA,0.2136,USD,AWS Pricing API,2025-11-30T08:52:05.718843 +AWS,us-east-2,m7gd.xlarge,reserved_1y,all_upfront,0.29258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:37.695807 +AWS,us-east-2,m7gd.xlarge,reserved_1y,no_upfront,0.29258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:14.363776 +AWS,us-east-2,m7gd.xlarge,reserved_1y,partial_upfront,0.29258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:04.978460 +AWS,us-east-2,m7gd.xlarge,reserved_3y,all_upfront,0.097527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:46.535823 +AWS,us-east-2,m7gd.xlarge,reserved_3y,no_upfront,0.097527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:14.930928 +AWS,us-east-2,m7gd.xlarge,reserved_3y,partial_upfront,0.097527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:15.362258 +AWS,us-east-2,m7gd.xlarge,spot,NA,0.075289,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546854 +AWS,us-east-2,m7i.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:51:37.020293 +AWS,us-east-2,m7i.12xlarge,reserved_1y,all_upfront,1.52415,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:09.331611 +AWS,us-east-2,m7i.12xlarge,reserved_1y,no_upfront,1.52415,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:45.675837 +AWS,us-east-2,m7i.12xlarge,reserved_1y,partial_upfront,1.52415,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:36.749636 +AWS,us-east-2,m7i.12xlarge,reserved_3y,all_upfront,1.016083,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:18.384796 +AWS,us-east-2,m7i.12xlarge,reserved_3y,no_upfront,1.016083,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:46.644348 +AWS,us-east-2,m7i.12xlarge,reserved_3y,partial_upfront,1.016083,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:46.447607 +AWS,us-east-2,m7i.12xlarge,spot,NA,0.898398,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545495 +AWS,us-east-2,m7i.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:52:14.471555 +AWS,us-east-2,m7i.16xlarge,reserved_1y,all_upfront,2.709458,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:46.432800 +AWS,us-east-2,m7i.16xlarge,reserved_1y,no_upfront,2.709458,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:23.119771 +AWS,us-east-2,m7i.16xlarge,reserved_1y,partial_upfront,2.709458,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:13.619909 +AWS,us-east-2,m7i.16xlarge,reserved_3y,all_upfront,1.354739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:55.165641 +AWS,us-east-2,m7i.16xlarge,reserved_3y,no_upfront,1.354739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:23.678905 +AWS,us-east-2,m7i.16xlarge,reserved_3y,partial_upfront,1.354739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:24.276028 +AWS,us-east-2,m7i.16xlarge,spot,NA,1.264053,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547202 +AWS,us-east-2,m7i.24xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:52:20.594341 +AWS,us-east-2,m7i.24xlarge,reserved_1y,all_upfront,3.317694,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:52.532208 +AWS,us-east-2,m7i.24xlarge,reserved_1y,no_upfront,3.317694,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:29.267250 +AWS,us-east-2,m7i.24xlarge,reserved_1y,partial_upfront,3.317694,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:19.683082 +AWS,us-east-2,m7i.24xlarge,reserved_3y,all_upfront,1.105898,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:01.263623 +AWS,us-east-2,m7i.24xlarge,reserved_3y,no_upfront,1.105898,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:29.767818 +AWS,us-east-2,m7i.24xlarge,reserved_3y,partial_upfront,1.105898,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:30.481684 +AWS,us-east-2,m7i.24xlarge,spot,NA,1.702545,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547482 +AWS,us-east-2,m7i.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:51:55.662267 +AWS,us-east-2,m7i.2xlarge,reserved_1y,all_upfront,0.18289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:27.769123 +AWS,us-east-2,m7i.2xlarge,reserved_1y,no_upfront,0.18289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:04.340584 +AWS,us-east-2,m7i.2xlarge,reserved_1y,partial_upfront,0.18289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:55.097337 +AWS,us-east-2,m7i.2xlarge,reserved_3y,all_upfront,0.18289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:36.653082 +AWS,us-east-2,m7i.2xlarge,reserved_3y,no_upfront,0.18289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:05.018752 +AWS,us-east-2,m7i.2xlarge,reserved_3y,partial_upfront,0.18289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:05.266260 +AWS,us-east-2,m7i.2xlarge,spot,NA,0.169738,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546390 +AWS,us-east-2,m7i.48xlarge,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:51:18.218996 +AWS,us-east-2,m7i.48xlarge,reserved_1y,all_upfront,4.90755,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:50.773645 +AWS,us-east-2,m7i.48xlarge,reserved_1y,no_upfront,4.90755,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:26.909603 +AWS,us-east-2,m7i.48xlarge,reserved_1y,partial_upfront,4.90755,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:18.141150 +AWS,us-east-2,m7i.48xlarge,reserved_3y,all_upfront,4.90755,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:59.758763 +AWS,us-east-2,m7i.48xlarge,reserved_3y,no_upfront,4.90755,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:28.019584 +AWS,us-east-2,m7i.48xlarge,reserved_3y,partial_upfront,4.90755,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:27.454190 +AWS,us-east-2,m7i.48xlarge,spot,NA,2.716897,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544621 +AWS,us-east-2,m7i.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:51:32.180078 +AWS,us-east-2,m7i.4xlarge,reserved_1y,all_upfront,0.564198,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:04.612891 +AWS,us-east-2,m7i.4xlarge,reserved_1y,no_upfront,0.564198,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:40.873497 +AWS,us-east-2,m7i.4xlarge,reserved_1y,partial_upfront,0.564198,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:31.974975 +AWS,us-east-2,m7i.4xlarge,reserved_3y,all_upfront,0.376146,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:13.662924 +AWS,us-east-2,m7i.4xlarge,reserved_3y,no_upfront,0.376146,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:41.895690 +AWS,us-east-2,m7i.4xlarge,reserved_3y,partial_upfront,0.376146,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:41.568224 +AWS,us-east-2,m7i.4xlarge,spot,NA,0.329451,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545268 +AWS,us-east-2,m7i.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:52:10.235720 +AWS,us-east-2,m7i.8xlarge,reserved_1y,all_upfront,1.105936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:42.210865 +AWS,us-east-2,m7i.8xlarge,reserved_1y,no_upfront,1.105936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:18.883172 +AWS,us-east-2,m7i.8xlarge,reserved_1y,partial_upfront,1.105936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:09.421213 +AWS,us-east-2,m7i.8xlarge,reserved_3y,all_upfront,0.368645,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:50.993492 +AWS,us-east-2,m7i.8xlarge,reserved_3y,no_upfront,0.368645,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:19.437555 +AWS,us-east-2,m7i.8xlarge,reserved_3y,partial_upfront,0.368645,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:19.952103 +AWS,us-east-2,m7i.8xlarge,spot,NA,0.661025,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547018 +AWS,us-east-2,m7i.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T08:51:35.185175 +AWS,us-east-2,m7i.large,reserved_1y,all_upfront,0.069064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:07.580904 +AWS,us-east-2,m7i.large,reserved_1y,no_upfront,0.069064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:43.892015 +AWS,us-east-2,m7i.large,reserved_1y,partial_upfront,0.069064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:34.980165 +AWS,us-east-2,m7i.large,reserved_3y,all_upfront,0.023021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:16.645232 +AWS,us-east-2,m7i.large,reserved_3y,no_upfront,0.023021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:44.880806 +AWS,us-east-2,m7i.large,reserved_3y,partial_upfront,0.023021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:44.620383 +AWS,us-east-2,m7i.large,spot,NA,0.04811,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545428 +AWS,us-east-2,m7i.metal-24xl,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:51:18.355521 +AWS,us-east-2,m7i.metal-24xl,reserved_1y,all_upfront,6.67968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:50.908190 +AWS,us-east-2,m7i.metal-24xl,reserved_1y,no_upfront,6.67968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:27.049237 +AWS,us-east-2,m7i.metal-24xl,reserved_1y,partial_upfront,6.67968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:18.275456 +AWS,us-east-2,m7i.metal-24xl,reserved_3y,all_upfront,2.22656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:59.892086 +AWS,us-east-2,m7i.metal-24xl,reserved_3y,no_upfront,2.22656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:28.153440 +AWS,us-east-2,m7i.metal-24xl,reserved_3y,partial_upfront,2.22656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:27.589603 +AWS,us-east-2,m7i.metal-24xl,spot,NA,1.523068,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544567 +AWS,us-east-2,m7i.metal-48xl,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:51:59.914549 +AWS,us-east-2,m7i.metal-48xl,reserved_1y,all_upfront,11.461187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:32.000583 +AWS,us-east-2,m7i.metal-48xl,reserved_1y,no_upfront,11.461187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:08.598032 +AWS,us-east-2,m7i.metal-48xl,reserved_1y,partial_upfront,11.461187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:59.290921 +AWS,us-east-2,m7i.metal-48xl,reserved_3y,all_upfront,3.820396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:40.829889 +AWS,us-east-2,m7i.metal-48xl,reserved_3y,no_upfront,3.820396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:09.206699 +AWS,us-east-2,m7i.metal-48xl,reserved_3y,partial_upfront,3.820396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:09.559695 +AWS,us-east-2,m7i.metal-48xl,spot,NA,2.305948,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546565 +AWS,us-east-2,m7i.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:52:22.094854 +AWS,us-east-2,m7i.xlarge,reserved_1y,all_upfront,0.13336,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:54.031353 +AWS,us-east-2,m7i.xlarge,reserved_1y,no_upfront,0.13336,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:30.770992 +AWS,us-east-2,m7i.xlarge,reserved_1y,partial_upfront,0.13336,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:21.187834 +AWS,us-east-2,m7i.xlarge,reserved_3y,all_upfront,0.13336,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:02.779742 +AWS,us-east-2,m7i.xlarge,reserved_3y,no_upfront,0.13336,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:31.267162 +AWS,us-east-2,m7i.xlarge,reserved_3y,partial_upfront,0.13336,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:32.020547 +AWS,us-east-2,m7i.xlarge,spot,NA,0.084877,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547589 +AWS,us-east-2,m8g.12xlarge,on_demand,NA,2.15424,USD,AWS Pricing API,2025-11-30T08:52:06.125690 +AWS,us-east-2,m8g.12xlarge,reserved_1y,all_upfront,1.58266,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:38.104002 +AWS,us-east-2,m8g.12xlarge,reserved_1y,no_upfront,1.58266,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:14.775870 +AWS,us-east-2,m8g.12xlarge,reserved_1y,partial_upfront,1.58266,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:05.385054 +AWS,us-east-2,m8g.12xlarge,reserved_3y,all_upfront,1.58266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:46.939504 +AWS,us-east-2,m8g.12xlarge,reserved_3y,no_upfront,1.58266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:15.334810 +AWS,us-east-2,m8g.12xlarge,reserved_3y,partial_upfront,1.58266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:15.772171 +AWS,us-east-2,m8g.12xlarge,spot,NA,0.772834,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546835 +AWS,us-east-2,m8g.16xlarge,on_demand,NA,2.87232,USD,AWS Pricing API,2025-11-30T08:51:18.764153 +AWS,us-east-2,m8g.16xlarge,reserved_1y,all_upfront,1.773402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:51.315453 +AWS,us-east-2,m8g.16xlarge,reserved_1y,no_upfront,1.773402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:27.460524 +AWS,us-east-2,m8g.16xlarge,reserved_1y,partial_upfront,1.773402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:18.676282 +AWS,us-east-2,m8g.16xlarge,reserved_3y,all_upfront,0.591134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:00.297354 +AWS,us-east-2,m8g.16xlarge,reserved_3y,no_upfront,0.591134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:28.565830 +AWS,us-east-2,m8g.16xlarge,reserved_3y,partial_upfront,0.591134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:27.999842 +AWS,us-east-2,m8g.16xlarge,spot,NA,0.828495,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544668 +AWS,us-east-2,m8g.24xlarge,on_demand,NA,4.30848,USD,AWS Pricing API,2025-11-30T08:52:27.418614 +AWS,us-east-2,m8g.24xlarge,reserved_1y,all_upfront,2.954338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:59.293965 +AWS,us-east-2,m8g.24xlarge,reserved_1y,no_upfront,2.954338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:36.106538 +AWS,us-east-2,m8g.24xlarge,reserved_1y,partial_upfront,2.954338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:26.494210 +AWS,us-east-2,m8g.24xlarge,reserved_3y,all_upfront,0.984779,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:08.043153 +AWS,us-east-2,m8g.24xlarge,reserved_3y,no_upfront,0.984779,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:36.540581 +AWS,us-east-2,m8g.24xlarge,reserved_3y,partial_upfront,0.984779,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:37.405645 +AWS,us-east-2,m8g.24xlarge,spot,NA,1.259425,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547833 +AWS,us-east-2,m8g.2xlarge,on_demand,NA,0.35904,USD,AWS Pricing API,2025-11-30T08:52:18.958749 +AWS,us-east-2,m8g.2xlarge,reserved_1y,all_upfront,0.495662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:50.910210 +AWS,us-east-2,m8g.2xlarge,reserved_1y,no_upfront,0.495662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:27.632554 +AWS,us-east-2,m8g.2xlarge,reserved_1y,partial_upfront,0.495662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:18.063253 +AWS,us-east-2,m8g.2xlarge,reserved_3y,all_upfront,0.165221,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:59.618370 +AWS,us-east-2,m8g.2xlarge,reserved_3y,no_upfront,0.165221,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:28.152298 +AWS,us-east-2,m8g.2xlarge,reserved_3y,partial_upfront,0.165221,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:28.805882 +AWS,us-east-2,m8g.2xlarge,spot,NA,0.168598,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547457 +AWS,us-east-2,m8g.48xlarge,on_demand,NA,8.61696,USD,AWS Pricing API,2025-11-30T08:51:51.844718 +AWS,us-east-2,m8g.48xlarge,reserved_1y,all_upfront,6.029202,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:23.776602 +AWS,us-east-2,m8g.48xlarge,reserved_1y,no_upfront,6.029202,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:00.486963 +AWS,us-east-2,m8g.48xlarge,reserved_1y,partial_upfront,6.029202,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:51.304315 +AWS,us-east-2,m8g.48xlarge,reserved_3y,all_upfront,4.019461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:32.888262 +AWS,us-east-2,m8g.48xlarge,reserved_3y,no_upfront,4.019461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:01.147073 +AWS,us-east-2,m8g.48xlarge,reserved_3y,partial_upfront,4.019461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:01.371236 +AWS,us-east-2,m8g.48xlarge,spot,NA,2.781661,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546149 +AWS,us-east-2,m8g.4xlarge,on_demand,NA,0.71808,USD,AWS Pricing API,2025-11-30T08:52:08.857232 +AWS,us-east-2,m8g.4xlarge,reserved_1y,all_upfront,0.443379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:40.851694 +AWS,us-east-2,m8g.4xlarge,reserved_1y,no_upfront,0.443379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:17.510924 +AWS,us-east-2,m8g.4xlarge,reserved_1y,partial_upfront,0.443379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:08.080775 +AWS,us-east-2,m8g.4xlarge,reserved_3y,all_upfront,0.147793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:49.639731 +AWS,us-east-2,m8g.4xlarge,reserved_3y,no_upfront,0.147793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:18.088724 +AWS,us-east-2,m8g.4xlarge,reserved_3y,partial_upfront,0.147793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:18.559421 +AWS,us-east-2,m8g.4xlarge,spot,NA,0.391571,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546936 +AWS,us-east-2,m8g.8xlarge,on_demand,NA,1.43616,USD,AWS Pricing API,2025-11-30T08:51:40.088975 +AWS,us-east-2,m8g.8xlarge,reserved_1y,all_upfront,0.984817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:12.300104 +AWS,us-east-2,m8g.8xlarge,reserved_1y,no_upfront,0.984817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:48.741438 +AWS,us-east-2,m8g.8xlarge,reserved_1y,partial_upfront,0.984817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:39.729527 +AWS,us-east-2,m8g.8xlarge,reserved_3y,all_upfront,0.328272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:21.367798 +AWS,us-east-2,m8g.8xlarge,reserved_3y,no_upfront,0.328272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:49.611052 +AWS,us-east-2,m8g.8xlarge,reserved_3y,partial_upfront,0.328272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:49.596952 +AWS,us-east-2,m8g.8xlarge,spot,NA,0.532761,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545620 +AWS,us-east-2,m8g.large,on_demand,NA,0.08976,USD,AWS Pricing API,2025-11-30T08:52:29.504872 +AWS,us-east-2,m8g.large,reserved_1y,all_upfront,0.06153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:01.333081 +AWS,us-east-2,m8g.large,reserved_1y,no_upfront,0.06153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:38.160549 +AWS,us-east-2,m8g.large,reserved_1y,partial_upfront,0.06153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:28.506270 +AWS,us-east-2,m8g.large,reserved_3y,all_upfront,0.02051,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:10.070030 +AWS,us-east-2,m8g.large,reserved_3y,no_upfront,0.02051,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:38.574023 +AWS,us-east-2,m8g.large,reserved_3y,partial_upfront,0.02051,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:39.497891 +AWS,us-east-2,m8g.large,spot,NA,0.03662,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547878 +AWS,us-east-2,m8g.medium,on_demand,NA,0.04488,USD,AWS Pricing API,2025-11-30T08:52:31.455919 +AWS,us-east-2,m8g.medium,reserved_1y,all_upfront,0.02969,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:03.303078 +AWS,us-east-2,m8g.medium,reserved_1y,no_upfront,0.02969,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:40.139543 +AWS,us-east-2,m8g.medium,reserved_1y,partial_upfront,0.02969,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:30.424481 +AWS,us-east-2,m8g.medium,reserved_3y,all_upfront,0.02969,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:11.972886 +AWS,us-east-2,m8g.medium,reserved_3y,no_upfront,0.02969,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:40.465211 +AWS,us-east-2,m8g.medium,reserved_3y,partial_upfront,0.02969,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:41.434235 +AWS,us-east-2,m8g.medium,spot,NA,0.011506,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547986 +AWS,us-east-2,m8g.xlarge,on_demand,NA,0.17952,USD,AWS Pricing API,2025-11-30T08:51:49.506211 +AWS,us-east-2,m8g.xlarge,reserved_1y,all_upfront,0.11875,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:21.475618 +AWS,us-east-2,m8g.xlarge,reserved_1y,no_upfront,0.11875,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:58.147383 +AWS,us-east-2,m8g.xlarge,reserved_1y,partial_upfront,0.11875,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:48.971897 +AWS,us-east-2,m8g.xlarge,reserved_3y,all_upfront,0.11875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:30.581435 +AWS,us-east-2,m8g.xlarge,reserved_3y,no_upfront,0.11875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:58.816592 +AWS,us-east-2,m8g.xlarge,reserved_3y,partial_upfront,0.11875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:58.995928 +AWS,us-east-2,m8g.xlarge,spot,NA,0.07825,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546027 +AWS,us-east-2,m8gd.12xlarge,on_demand,NA,2.76768,USD,AWS Pricing API,2025-11-30T08:52:30.050930 +AWS,us-east-2,m8gd.12xlarge,spot,NA,0.832814,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547922 +AWS,us-east-2,m8gd.16xlarge,on_demand,NA,3.69024,USD,AWS Pricing API,2025-11-30T08:52:22.642471 +AWS,us-east-2,m8gd.16xlarge,spot,NA,1.134656,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547595 +AWS,us-east-2,m8gd.24xlarge,on_demand,NA,5.53536,USD,AWS Pricing API,2025-11-30T08:51:47.996577 +AWS,us-east-2,m8gd.24xlarge,spot,NA,1.4718,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545942 +AWS,us-east-2,m8gd.2xlarge,on_demand,NA,0.46128,USD,AWS Pricing API,2025-11-30T08:52:29.231113 +AWS,us-east-2,m8gd.2xlarge,spot,NA,0.188169,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547871 +AWS,us-east-2,m8gd.48xlarge,on_demand,NA,11.07072,USD,AWS Pricing API,2025-11-30T08:52:25.092099 +AWS,us-east-2,m8gd.48xlarge,spot,NA,3.092542,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547723 +AWS,us-east-2,m8gd.4xlarge,on_demand,NA,0.92256,USD,AWS Pricing API,2025-11-30T08:51:55.393381 +AWS,us-east-2,m8gd.4xlarge,spot,NA,0.40329,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546313 +AWS,us-east-2,m8gd.8xlarge,on_demand,NA,1.84512,USD,AWS Pricing API,2025-11-30T08:51:19.445227 +AWS,us-east-2,m8gd.8xlarge,spot,NA,0.613552,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544662 +AWS,us-east-2,m8gd.large,on_demand,NA,0.11532,USD,AWS Pricing API,2025-11-30T08:52:04.734367 +AWS,us-east-2,m8gd.large,spot,NA,0.033479,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546797 +AWS,us-east-2,m8gd.xlarge,on_demand,NA,0.23064,USD,AWS Pricing API,2025-11-30T08:51:56.071405 +AWS,us-east-2,m8gd.xlarge,spot,NA,0.080801,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546384 +AWS,us-east-2,m8i.12xlarge,on_demand,NA,2.54016,USD,AWS Pricing API,2025-11-30T08:52:18.693400 +AWS,us-east-2,m8i.12xlarge,spot,NA,0.732227,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547371 +AWS,us-east-2,m8i.16xlarge,on_demand,NA,3.38688,USD,AWS Pricing API,2025-11-30T08:51:46.877466 +AWS,us-east-2,m8i.16xlarge,spot,NA,0.929484,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545898 +AWS,us-east-2,m8i.24xlarge,on_demand,NA,5.08032,USD,AWS Pricing API,2025-11-30T08:52:14.058865 +AWS,us-east-2,m8i.24xlarge,spot,NA,1.36894,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547208 +AWS,us-east-2,m8i.2xlarge,on_demand,NA,0.42336,USD,AWS Pricing API,2025-11-30T08:51:28.333148 +AWS,us-east-2,m8i.2xlarge,spot,NA,0.125181,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545124 +AWS,us-east-2,m8i.48xlarge,on_demand,NA,10.16064,USD,AWS Pricing API,2025-11-30T08:51:58.821289 +AWS,us-east-2,m8i.48xlarge,spot,NA,2.472809,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546454 +AWS,us-east-2,m8i.4xlarge,on_demand,NA,0.84672,USD,AWS Pricing API,2025-11-30T08:51:23.691975 +AWS,us-east-2,m8i.4xlarge,spot,NA,0.261358,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544881 +AWS,us-east-2,m8i.8xlarge,on_demand,NA,1.69344,USD,AWS Pricing API,2025-11-30T08:51:37.292686 +AWS,us-east-2,m8i.8xlarge,spot,NA,0.50376,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545452 +AWS,us-east-2,m8i.large,on_demand,NA,0.10584,USD,AWS Pricing API,2025-11-30T08:51:39.092065 +AWS,us-east-2,m8i.large,spot,NA,0.026527,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545568 +AWS,us-east-2,m8i.xlarge,on_demand,NA,0.21168,USD,AWS Pricing API,2025-11-30T08:51:30.123251 +AWS,us-east-2,m8i.xlarge,spot,NA,0.06035,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545192 +AWS,us-east-2,p2.16xlarge,on_demand,NA,14.4,USD,AWS Pricing API,2025-11-30T08:51:25.451964 +AWS,us-east-2,p2.8xlarge,on_demand,NA,7.2,USD,AWS Pricing API,2025-11-30T08:52:24.956870 +AWS,us-east-2,p2.xlarge,on_demand,NA,0.9,USD,AWS Pricing API,2025-11-30T08:51:29.027011 +AWS,us-east-2,p3.16xlarge,on_demand,NA,24.48,USD,AWS Pricing API,2025-11-30T08:51:44.539157 +AWS,us-east-2,p3.16xlarge,spot,NA,6.055833,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545781 +AWS,us-east-2,p3.2xlarge,on_demand,NA,3.06,USD,AWS Pricing API,2025-11-30T08:52:15.561540 +AWS,us-east-2,p3.2xlarge,spot,NA,0.438232,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547265 +AWS,us-east-2,p3.8xlarge,on_demand,NA,12.24,USD,AWS Pricing API,2025-11-30T08:51:25.042695 +AWS,us-east-2,p3.8xlarge,spot,NA,2.175339,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544939 +AWS,us-east-2,p4d.24xlarge,reserved_1y,all_upfront,16.705311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:57.696116 +AWS,us-east-2,p4d.24xlarge,reserved_1y,no_upfront,16.705311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:33.882223 +AWS,us-east-2,p4d.24xlarge,reserved_1y,partial_upfront,16.705311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:25.023128 +AWS,us-east-2,p4d.24xlarge,reserved_3y,all_upfront,16.705311,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:06.683639 +AWS,us-east-2,p4d.24xlarge,reserved_3y,no_upfront,16.705311,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:34.967600 +AWS,us-east-2,p4d.24xlarge,reserved_3y,partial_upfront,16.705311,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:34.496277 +AWS,us-east-2,p4d.24xlarge,spot,NA,8.057545,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544900 +AWS,us-east-2,p5.48xlarge,on_demand,NA,55.04,USD,AWS Pricing API,2025-11-30T08:52:15.289115 +AWS,us-east-2,p5.48xlarge,reserved_1y,all_upfront,40.454452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:47.251753 +AWS,us-east-2,p5.48xlarge,reserved_1y,no_upfront,40.454452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:23.946608 +AWS,us-east-2,p5.48xlarge,reserved_1y,partial_upfront,40.454452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:14.427474 +AWS,us-east-2,p5.48xlarge,reserved_3y,all_upfront,13.484817,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:55.975894 +AWS,us-east-2,p5.48xlarge,reserved_3y,no_upfront,13.484817,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:24.486910 +AWS,us-east-2,p5.48xlarge,reserved_3y,partial_upfront,13.484817,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:25.101943 +AWS,us-east-2,p5.48xlarge,spot,NA,13.864338,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547258 +AWS,us-east-2,r4.16xlarge,on_demand,NA,4.256,USD,AWS Pricing API,2025-11-30T08:52:18.004732 +AWS,us-east-2,r4.16xlarge,reserved_1y,all_upfront,2.944032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:49.968058 +AWS,us-east-2,r4.16xlarge,reserved_1y,no_upfront,2.944032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:26.677194 +AWS,us-east-2,r4.16xlarge,reserved_1y,partial_upfront,2.944032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:17.124395 +AWS,us-east-2,r4.16xlarge,reserved_3y,all_upfront,1.962677,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:58.668696 +AWS,us-east-2,r4.16xlarge,reserved_3y,no_upfront,1.962677,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:27.193507 +AWS,us-east-2,r4.16xlarge,reserved_3y,partial_upfront,1.962677,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:27.846909 +AWS,us-east-2,r4.16xlarge,spot,NA,1.444965,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547359 +AWS,us-east-2,r5.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:51:18.491760 +AWS,us-east-2,r5.12xlarge,reserved_1y,all_upfront,1.778082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:51.043671 +AWS,us-east-2,r5.12xlarge,reserved_1y,no_upfront,1.778082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:27.187057 +AWS,us-east-2,r5.12xlarge,reserved_1y,partial_upfront,1.778082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:18.409033 +AWS,us-east-2,r5.12xlarge,reserved_3y,all_upfront,0.592694,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:00.031365 +AWS,us-east-2,r5.12xlarge,reserved_3y,no_upfront,0.592694,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:28.287785 +AWS,us-east-2,r5.12xlarge,reserved_3y,partial_upfront,0.592694,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:27.726462 +AWS,us-east-2,r5.12xlarge,spot,NA,1.032065,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544649 +AWS,us-east-2,r5.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:51:51.980526 +AWS,us-east-2,r5.16xlarge,reserved_1y,all_upfront,2.419589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:23.912221 +AWS,us-east-2,r5.16xlarge,reserved_1y,no_upfront,2.419589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:00.629563 +AWS,us-east-2,r5.16xlarge,reserved_1y,partial_upfront,2.419589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:51.438294 +AWS,us-east-2,r5.16xlarge,reserved_3y,all_upfront,1.613196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:33.021356 +AWS,us-east-2,r5.16xlarge,reserved_3y,no_upfront,1.613196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:01.306684 +AWS,us-east-2,r5.16xlarge,reserved_3y,partial_upfront,1.613196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:01.511417 +AWS,us-east-2,r5.16xlarge,spot,NA,1.3994,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546167 +AWS,us-east-2,r5.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:51:33.952009 +AWS,us-east-2,r5.24xlarge,reserved_1y,all_upfront,4.382,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:06.366291 +AWS,us-east-2,r5.24xlarge,reserved_1y,no_upfront,4.382,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:42.665498 +AWS,us-east-2,r5.24xlarge,reserved_1y,partial_upfront,4.382,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:33.759685 +AWS,us-east-2,r5.24xlarge,reserved_3y,all_upfront,4.382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:15.432558 +AWS,us-east-2,r5.24xlarge,reserved_3y,no_upfront,4.382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:43.655120 +AWS,us-east-2,r5.24xlarge,reserved_3y,partial_upfront,4.382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:43.381687 +AWS,us-east-2,r5.24xlarge,spot,NA,1.864877,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545334 +AWS,us-east-2,r5.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T12:52:28.963848 +AWS,us-east-2,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:28.964008 +AWS,us-east-2,r5.2xlarge,reserved_1y_no_upfront,NA,0.318,USD,AWS Pricing API,2025-11-30T12:52:28.963971 +AWS,us-east-2,r5.2xlarge,reserved_1y_partial_upfront,NA,0.151,USD,AWS Pricing API,2025-11-30T12:52:28.963995 +AWS,us-east-2,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:28.964032 +AWS,us-east-2,r5.2xlarge,reserved_3y_no_upfront,NA,0.218,USD,AWS Pricing API,2025-11-30T12:52:28.964021 +AWS,us-east-2,r5.2xlarge,reserved_3y_partial_upfront,NA,0.122,USD,AWS Pricing API,2025-11-30T12:52:28.963915 +AWS,us-east-2,r5.2xlarge,spot,NA,0.19774,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:30.939584 +AWS,us-east-2,r5.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:52:27.145916 +AWS,us-east-2,r5.4xlarge,reserved_1y,all_upfront,1.431393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:59.020792 +AWS,us-east-2,r5.4xlarge,reserved_1y,no_upfront,1.431393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:35.832058 +AWS,us-east-2,r5.4xlarge,reserved_1y,partial_upfront,1.431393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:26.221349 +AWS,us-east-2,r5.4xlarge,reserved_3y,all_upfront,0.477131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:07.770215 +AWS,us-east-2,r5.4xlarge,reserved_3y,no_upfront,0.477131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:36.272326 +AWS,us-east-2,r5.4xlarge,reserved_3y,partial_upfront,0.477131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:37.131145 +AWS,us-east-2,r5.4xlarge,spot,NA,0.382429,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547788 +AWS,us-east-2,r5.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:52:09.959360 +AWS,us-east-2,r5.8xlarge,reserved_1y,all_upfront,1.27,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:41.935912 +AWS,us-east-2,r5.8xlarge,reserved_1y,no_upfront,1.27,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:18.609949 +AWS,us-east-2,r5.8xlarge,reserved_1y,partial_upfront,1.27,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:09.153822 +AWS,us-east-2,r5.8xlarge,reserved_3y,all_upfront,1.27,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:50.727064 +AWS,us-east-2,r5.8xlarge,reserved_3y,no_upfront,1.27,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:19.168344 +AWS,us-east-2,r5.8xlarge,reserved_3y,partial_upfront,1.27,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:19.678799 +AWS,us-east-2,r5.8xlarge,spot,NA,0.70263,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547024 +AWS,us-east-2,r5.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:51:45.785771 +AWS,us-east-2,r5.large,reserved_1y,all_upfront,0.08516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:17.825129 +AWS,us-east-2,r5.large,reserved_1y,no_upfront,0.08516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:54.451127 +AWS,us-east-2,r5.large,reserved_1y,partial_upfront,0.08516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:45.314582 +AWS,us-east-2,r5.large,reserved_3y,all_upfront,0.028387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:26.908939 +AWS,us-east-2,r5.large,reserved_3y,no_upfront,0.028387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:55.170893 +AWS,us-east-2,r5.large,reserved_3y,partial_upfront,0.028387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:55.272908 +AWS,us-east-2,r5.large,spot,NA,0.047809,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545855 +AWS,us-east-2,r5.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T08:51:22.733022 +AWS,us-east-2,r5.xlarge,reserved_1y,all_upfront,0.151571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:55.247228 +AWS,us-east-2,r5.xlarge,reserved_1y,no_upfront,0.151571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:31.415535 +AWS,us-east-2,r5.xlarge,reserved_1y,partial_upfront,0.151571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:22.592671 +AWS,us-east-2,r5.xlarge,reserved_3y,all_upfront,0.10119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:04.248790 +AWS,us-east-2,r5.xlarge,reserved_3y,no_upfront,0.10119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:32.501633 +AWS,us-east-2,r5.xlarge,reserved_3y,partial_upfront,0.10119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:31.998097 +AWS,us-east-2,r5.xlarge,spot,NA,0.087033,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544869 +AWS,us-east-2,r5a.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:52:18.140900 +AWS,us-east-2,r5a.12xlarge,reserved_1y,all_upfront,1.594635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:50.101700 +AWS,us-east-2,r5a.12xlarge,reserved_1y,no_upfront,1.594635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:26.813801 +AWS,us-east-2,r5a.12xlarge,reserved_1y,partial_upfront,1.594635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:17.260282 +AWS,us-east-2,r5a.12xlarge,reserved_3y,all_upfront,0.531545,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:58.802082 +AWS,us-east-2,r5a.12xlarge,reserved_3y,no_upfront,0.531545,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:27.337860 +AWS,us-east-2,r5a.12xlarge,reserved_3y,partial_upfront,0.531545,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:27.984749 +AWS,us-east-2,r5a.12xlarge,spot,NA,1.072166,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547390 +AWS,us-east-2,r5a.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T08:52:26.328856 +AWS,us-east-2,r5a.16xlarge,reserved_1y,all_upfront,3.492749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:58.217948 +AWS,us-east-2,r5a.16xlarge,reserved_1y,no_upfront,3.492749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:35.017680 +AWS,us-east-2,r5a.16xlarge,reserved_1y,partial_upfront,3.492749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:25.405379 +AWS,us-east-2,r5a.16xlarge,reserved_3y,all_upfront,1.74625,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:06.965715 +AWS,us-east-2,r5a.16xlarge,reserved_3y,no_upfront,1.74625,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:35.465355 +AWS,us-east-2,r5a.16xlarge,reserved_3y,partial_upfront,1.74625,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:36.295559 +AWS,us-east-2,r5a.16xlarge,spot,NA,1.463091,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547742 +AWS,us-east-2,r5a.24xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:52:20.183354 +AWS,us-east-2,r5a.24xlarge,reserved_1y,all_upfront,3.189269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:52.125086 +AWS,us-east-2,r5a.24xlarge,reserved_1y,no_upfront,3.189269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:28.859872 +AWS,us-east-2,r5a.24xlarge,reserved_1y,partial_upfront,3.189269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:19.276852 +AWS,us-east-2,r5a.24xlarge,reserved_3y,all_upfront,1.06309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:00.854275 +AWS,us-east-2,r5a.24xlarge,reserved_3y,no_upfront,1.06309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:29.363371 +AWS,us-east-2,r5a.24xlarge,reserved_3y,partial_upfront,1.06309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:30.066955 +AWS,us-east-2,r5a.24xlarge,spot,NA,2.005437,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547476 +AWS,us-east-2,r5a.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:52:31.040008 +AWS,us-east-2,r5a.2xlarge,reserved_1y,all_upfront,0.306507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:02.899073 +AWS,us-east-2,r5a.2xlarge,reserved_1y,no_upfront,0.306507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:39.711890 +AWS,us-east-2,r5a.2xlarge,reserved_1y,partial_upfront,0.306507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:30.001377 +AWS,us-east-2,r5a.2xlarge,reserved_3y,all_upfront,0.102169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:11.557060 +AWS,us-east-2,r5a.2xlarge,reserved_3y,no_upfront,0.102169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:40.067919 +AWS,us-east-2,r5a.2xlarge,reserved_3y,partial_upfront,0.102169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:41.013103 +AWS,us-east-2,r5a.2xlarge,spot,NA,0.172135,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547948 +AWS,us-east-2,r5a.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:52:10.912802 +AWS,us-east-2,r5a.4xlarge,reserved_1y,all_upfront,0.657,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:42.884733 +AWS,us-east-2,r5a.4xlarge,reserved_1y,no_upfront,0.657,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:19.567474 +AWS,us-east-2,r5a.4xlarge,reserved_1y,partial_upfront,0.657,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:10.106932 +AWS,us-east-2,r5a.4xlarge,reserved_3y,all_upfront,0.657,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:51.664628 +AWS,us-east-2,r5a.4xlarge,reserved_3y,no_upfront,0.657,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:20.120985 +AWS,us-east-2,r5a.4xlarge,reserved_3y,partial_upfront,0.657,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:20.649163 +AWS,us-east-2,r5a.4xlarge,spot,NA,0.354628,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547108 +AWS,us-east-2,r5a.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T08:51:53.088633 +AWS,us-east-2,r5a.8xlarge,reserved_1y,all_upfront,1.139,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:24.998969 +AWS,us-east-2,r5a.8xlarge,reserved_1y,no_upfront,1.139,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:01.731657 +AWS,us-east-2,r5a.8xlarge,reserved_1y,partial_upfront,1.139,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:52.520913 +AWS,us-east-2,r5a.8xlarge,reserved_3y,all_upfront,1.139,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:34.092859 +AWS,us-east-2,r5a.8xlarge,reserved_3y,no_upfront,1.139,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:02.400594 +AWS,us-east-2,r5a.8xlarge,reserved_3y,partial_upfront,1.139,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:02.625659 +AWS,us-east-2,r5a.8xlarge,spot,NA,0.779714,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546249 +AWS,us-east-2,r5a.large,on_demand,NA,0.113,USD,AWS Pricing API,2025-11-30T08:51:59.641750 +AWS,us-east-2,r5a.large,reserved_1y,all_upfront,0.160502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:31.721229 +AWS,us-east-2,r5a.large,reserved_1y,no_upfront,0.160502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:08.326740 +AWS,us-east-2,r5a.large,reserved_1y,partial_upfront,0.160502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:59.021156 +AWS,us-east-2,r5a.large,reserved_3y,all_upfront,0.053501,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:40.550895 +AWS,us-east-2,r5a.large,reserved_3y,no_upfront,0.053501,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:08.937254 +AWS,us-east-2,r5a.large,reserved_3y,partial_upfront,0.053501,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:09.282955 +AWS,us-east-2,r5a.large,spot,NA,0.044087,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546504 +AWS,us-east-2,r5a.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:52:10.372002 +AWS,us-east-2,r5a.xlarge,reserved_1y,all_upfront,0.132877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:42.346193 +AWS,us-east-2,r5a.xlarge,reserved_1y,no_upfront,0.132877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:19.019879 +AWS,us-east-2,r5a.xlarge,reserved_1y,partial_upfront,0.132877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:09.563496 +AWS,us-east-2,r5a.xlarge,reserved_3y,all_upfront,0.044292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:51.127833 +AWS,us-east-2,r5a.xlarge,reserved_3y,no_upfront,0.044292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:19.573803 +AWS,us-east-2,r5a.xlarge,reserved_3y,partial_upfront,0.044292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:20.092216 +AWS,us-east-2,r5a.xlarge,spot,NA,0.100195,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547012 +AWS,us-east-2,r5d.12xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T08:52:23.737421 +AWS,us-east-2,r5d.12xlarge,reserved_1y,all_upfront,2.508,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:55.652465 +AWS,us-east-2,r5d.12xlarge,reserved_1y,no_upfront,2.508,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:32.428922 +AWS,us-east-2,r5d.12xlarge,reserved_1y,partial_upfront,2.508,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:22.816986 +AWS,us-east-2,r5d.12xlarge,reserved_3y,all_upfront,2.508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:04.400747 +AWS,us-east-2,r5d.12xlarge,reserved_3y,no_upfront,2.508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:32.898108 +AWS,us-east-2,r5d.12xlarge,reserved_3y,partial_upfront,2.508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:33.668695 +AWS,us-east-2,r5d.12xlarge,spot,NA,1.461788,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547634 +AWS,us-east-2,r5d.16xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:51:48.134785 +AWS,us-east-2,r5d.16xlarge,reserved_1y,all_upfront,3.18558,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:20.139488 +AWS,us-east-2,r5d.16xlarge,reserved_1y,no_upfront,3.18558,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:56.777959 +AWS,us-east-2,r5d.16xlarge,reserved_1y,partial_upfront,3.18558,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:47.626833 +AWS,us-east-2,r5d.16xlarge,reserved_3y,all_upfront,2.12386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:29.205236 +AWS,us-east-2,r5d.16xlarge,reserved_3y,no_upfront,2.12386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:57.466088 +AWS,us-east-2,r5d.16xlarge,reserved_3y,partial_upfront,2.12386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:57.623431 +AWS,us-east-2,r5d.16xlarge,spot,NA,1.877555,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545954 +AWS,us-east-2,r5d.24xlarge,on_demand,NA,6.912,USD,AWS Pricing API,2025-11-30T08:52:18.277351 +AWS,us-east-2,r5d.24xlarge,reserved_1y,all_upfront,4.355,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:50.235651 +AWS,us-east-2,r5d.24xlarge,reserved_1y,no_upfront,4.355,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:26.953198 +AWS,us-east-2,r5d.24xlarge,reserved_1y,partial_upfront,4.355,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:17.396494 +AWS,us-east-2,r5d.24xlarge,reserved_3y,all_upfront,4.355,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:58.947865 +AWS,us-east-2,r5d.24xlarge,reserved_3y,no_upfront,4.355,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:27.473495 +AWS,us-east-2,r5d.24xlarge,reserved_3y,partial_upfront,4.355,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:28.122385 +AWS,us-east-2,r5d.24xlarge,spot,NA,2.600698,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547397 +AWS,us-east-2,r5d.2xlarge,on_demand,NA,0.576,USD,AWS Pricing API,2025-11-30T08:52:16.921403 +AWS,us-east-2,r5d.2xlarge,reserved_1y,all_upfront,0.548986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:48.884763 +AWS,us-east-2,r5d.2xlarge,reserved_1y,no_upfront,0.548986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:25.590790 +AWS,us-east-2,r5d.2xlarge,reserved_1y,partial_upfront,0.548986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:16.044635 +AWS,us-east-2,r5d.2xlarge,reserved_3y,all_upfront,0.274329,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:57.592531 +AWS,us-east-2,r5d.2xlarge,reserved_3y,no_upfront,0.274329,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:26.109306 +AWS,us-east-2,r5d.2xlarge,reserved_3y,partial_upfront,0.274329,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:26.752046 +AWS,us-east-2,r5d.2xlarge,spot,NA,0.262164,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547346 +AWS,us-east-2,r5d.4xlarge,on_demand,NA,1.152,USD,AWS Pricing API,2025-11-30T08:51:47.567891 +AWS,us-east-2,r5d.4xlarge,reserved_1y,all_upfront,0.677397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:19.602468 +AWS,us-east-2,r5d.4xlarge,reserved_1y,no_upfront,0.677397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:56.226105 +AWS,us-east-2,r5d.4xlarge,reserved_1y,partial_upfront,0.677397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:47.087585 +AWS,us-east-2,r5d.4xlarge,reserved_3y,all_upfront,0.225799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:28.665291 +AWS,us-east-2,r5d.4xlarge,reserved_3y,no_upfront,0.225799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:56.932274 +AWS,us-east-2,r5d.4xlarge,reserved_3y,partial_upfront,0.225799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:57.078677 +AWS,us-east-2,r5d.4xlarge,spot,NA,0.458053,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545948 +AWS,us-east-2,r5d.8xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:51:47.151443 +AWS,us-east-2,r5d.8xlarge,reserved_1y,all_upfront,1.672,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:19.201663 +AWS,us-east-2,r5d.8xlarge,reserved_1y,no_upfront,1.672,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:55.816054 +AWS,us-east-2,r5d.8xlarge,reserved_1y,partial_upfront,1.672,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:46.666139 +AWS,us-east-2,r5d.8xlarge,reserved_3y,all_upfront,1.672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:28.251671 +AWS,us-east-2,r5d.8xlarge,reserved_3y,no_upfront,1.672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:56.522943 +AWS,us-east-2,r5d.8xlarge,reserved_3y,partial_upfront,1.672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:56.662035 +AWS,us-east-2,r5d.8xlarge,spot,NA,0.965483,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545910 +AWS,us-east-2,r5d.large,on_demand,NA,0.144,USD,AWS Pricing API,2025-11-30T08:52:12.154426 +AWS,us-east-2,r5d.large,reserved_1y,all_upfront,0.091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:44.112766 +AWS,us-east-2,r5d.large,reserved_1y,no_upfront,0.091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:20.796174 +AWS,us-east-2,r5d.large,reserved_1y,partial_upfront,0.091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:11.319814 +AWS,us-east-2,r5d.large,reserved_3y,all_upfront,0.091,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:52.872406 +AWS,us-east-2,r5d.large,reserved_3y,no_upfront,0.091,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:21.376280 +AWS,us-east-2,r5d.large,reserved_3y,partial_upfront,0.091,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:21.905187 +AWS,us-east-2,r5d.large,spot,NA,0.05485,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547121 +AWS,us-east-2,r5d.xlarge,on_demand,NA,0.288,USD,AWS Pricing API,2025-11-30T08:51:29.164475 +AWS,us-east-2,r5d.xlarge,reserved_1y,all_upfront,0.209,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:01.625988 +AWS,us-east-2,r5d.xlarge,reserved_1y,no_upfront,0.209,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:37.859796 +AWS,us-east-2,r5d.xlarge,reserved_1y,partial_upfront,0.209,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:28.992611 +AWS,us-east-2,r5d.xlarge,reserved_3y,all_upfront,0.209,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:10.624858 +AWS,us-east-2,r5d.xlarge,reserved_3y,no_upfront,0.209,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:38.889937 +AWS,us-east-2,r5d.xlarge,reserved_3y,partial_upfront,0.209,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:38.515278 +AWS,us-east-2,r5d.xlarge,spot,NA,0.135144,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545112 +AWS,us-east-2,r5dn.12xlarge,on_demand,NA,4.008,USD,AWS Pricing API,2025-11-30T08:51:32.042675 +AWS,us-east-2,r5dn.12xlarge,reserved_1y,all_upfront,2.356735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:04.478291 +AWS,us-east-2,r5dn.12xlarge,reserved_1y,no_upfront,2.356735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:40.735523 +AWS,us-east-2,r5dn.12xlarge,reserved_1y,partial_upfront,2.356735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:31.840461 +AWS,us-east-2,r5dn.12xlarge,reserved_3y,all_upfront,0.785578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:13.528580 +AWS,us-east-2,r5dn.12xlarge,reserved_3y,no_upfront,0.785578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:41.761740 +AWS,us-east-2,r5dn.12xlarge,reserved_3y,partial_upfront,0.785578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:41.429790 +AWS,us-east-2,r5dn.12xlarge,spot,NA,1.665557,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545218 +AWS,us-east-2,r5dn.16xlarge,on_demand,NA,5.344,USD,AWS Pricing API,2025-11-30T08:51:42.730490 +AWS,us-east-2,r5dn.16xlarge,reserved_1y,all_upfront,3.687721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:14.861338 +AWS,us-east-2,r5dn.16xlarge,reserved_1y,no_upfront,3.687721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:51.374674 +AWS,us-east-2,r5dn.16xlarge,reserved_1y,partial_upfront,3.687721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:42.310253 +AWS,us-east-2,r5dn.16xlarge,reserved_3y,all_upfront,2.458574,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:23.920912 +AWS,us-east-2,r5dn.16xlarge,reserved_3y,no_upfront,2.458574,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:52.191514 +AWS,us-east-2,r5dn.16xlarge,reserved_3y,partial_upfront,2.458574,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:52.218430 +AWS,us-east-2,r5dn.16xlarge,spot,NA,2.221359,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545714 +AWS,us-east-2,r5dn.24xlarge,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T08:51:54.445254 +AWS,us-east-2,r5dn.24xlarge,reserved_1y,all_upfront,10.204566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:26.367361 +AWS,us-east-2,r5dn.24xlarge,reserved_1y,no_upfront,10.204566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:03.109348 +AWS,us-east-2,r5dn.24xlarge,reserved_1y,partial_upfront,10.204566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:53.883997 +AWS,us-east-2,r5dn.24xlarge,reserved_3y,all_upfront,3.401522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:35.434636 +AWS,us-east-2,r5dn.24xlarge,reserved_3y,no_upfront,3.401522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:03.766043 +AWS,us-east-2,r5dn.24xlarge,reserved_3y,partial_upfront,3.401522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:04.023165 +AWS,us-east-2,r5dn.24xlarge,spot,NA,3.124365,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546287 +AWS,us-east-2,r5dn.2xlarge,on_demand,NA,0.668,USD,AWS Pricing API,2025-11-30T08:51:59.777724 +AWS,us-east-2,r5dn.2xlarge,reserved_1y,all_upfront,0.451712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:31.854224 +AWS,us-east-2,r5dn.2xlarge,reserved_1y,no_upfront,0.451712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:08.461454 +AWS,us-east-2,r5dn.2xlarge,reserved_1y,partial_upfront,0.451712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:59.155510 +AWS,us-east-2,r5dn.2xlarge,reserved_3y,all_upfront,0.150571,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:40.686975 +AWS,us-east-2,r5dn.2xlarge,reserved_3y,no_upfront,0.150571,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:09.071665 +AWS,us-east-2,r5dn.2xlarge,reserved_3y,partial_upfront,0.150571,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:09.421165 +AWS,us-east-2,r5dn.2xlarge,spot,NA,0.364546,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546540 +AWS,us-east-2,r5dn.4xlarge,on_demand,NA,1.336,USD,AWS Pricing API,2025-11-30T08:51:23.419854 +AWS,us-east-2,r5dn.4xlarge,reserved_1y,all_upfront,0.842,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:55.924895 +AWS,us-east-2,r5dn.4xlarge,reserved_1y,no_upfront,0.842,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:32.097381 +AWS,us-east-2,r5dn.4xlarge,reserved_1y,partial_upfront,0.842,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:23.271128 +AWS,us-east-2,r5dn.4xlarge,reserved_3y,all_upfront,0.842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:04.936811 +AWS,us-east-2,r5dn.4xlarge,reserved_3y,no_upfront,0.842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:33.188282 +AWS,us-east-2,r5dn.4xlarge,reserved_3y,partial_upfront,0.842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:32.685591 +AWS,us-east-2,r5dn.4xlarge,spot,NA,0.551848,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544851 +AWS,us-east-2,r5dn.8xlarge,on_demand,NA,2.672,USD,AWS Pricing API,2025-11-30T08:52:23.462392 +AWS,us-east-2,r5dn.8xlarge,reserved_1y,all_upfront,1.843804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:55.377692 +AWS,us-east-2,r5dn.8xlarge,reserved_1y,no_upfront,1.843804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:32.151634 +AWS,us-east-2,r5dn.8xlarge,reserved_1y,partial_upfront,1.843804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:22.546381 +AWS,us-east-2,r5dn.8xlarge,reserved_3y,all_upfront,1.229268,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:04.129643 +AWS,us-east-2,r5dn.8xlarge,reserved_3y,no_upfront,1.229268,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:32.628206 +AWS,us-east-2,r5dn.8xlarge,reserved_3y,partial_upfront,1.229268,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:33.395674 +AWS,us-east-2,r5dn.8xlarge,spot,NA,1.15109,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547621 +AWS,us-east-2,r5dn.large,on_demand,NA,0.167,USD,AWS Pricing API,2025-11-30T08:51:33.135688 +AWS,us-east-2,r5dn.large,reserved_1y,all_upfront,0.121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:05.558650 +AWS,us-east-2,r5dn.large,reserved_1y,no_upfront,0.121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:41.827593 +AWS,us-east-2,r5dn.large,reserved_1y,partial_upfront,0.121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:32.934521 +AWS,us-east-2,r5dn.large,reserved_3y,all_upfront,0.121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:14.622705 +AWS,us-east-2,r5dn.large,reserved_3y,no_upfront,0.121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:42.846714 +AWS,us-east-2,r5dn.large,reserved_3y,partial_upfront,0.121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:42.551476 +AWS,us-east-2,r5dn.large,spot,NA,0.051464,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545292 +AWS,us-east-2,r5dn.metal,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T08:51:21.082045 +AWS,us-east-2,r5dn.metal,reserved_1y,all_upfront,5.808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:53.619779 +AWS,us-east-2,r5dn.metal,reserved_1y,no_upfront,5.808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:29.778724 +AWS,us-east-2,r5dn.metal,reserved_1y,partial_upfront,5.808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:20.962885 +AWS,us-east-2,r5dn.metal,reserved_3y,all_upfront,5.808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:02.615265 +AWS,us-east-2,r5dn.metal,reserved_3y,no_upfront,5.808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:30.880903 +AWS,us-east-2,r5dn.metal,reserved_3y,partial_upfront,5.808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:30.348255 +AWS,us-east-2,r5dn.metal,spot,NA,2.339836,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544706 +AWS,us-east-2,r5dn.xlarge,on_demand,NA,0.334,USD,AWS Pricing API,2025-11-30T08:51:44.816776 +AWS,us-east-2,r5dn.xlarge,reserved_1y,all_upfront,0.230183,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:16.884071 +AWS,us-east-2,r5dn.xlarge,reserved_1y,no_upfront,0.230183,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:53.483823 +AWS,us-east-2,r5dn.xlarge,reserved_1y,partial_upfront,0.230183,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:44.354886 +AWS,us-east-2,r5dn.xlarge,reserved_3y,all_upfront,0.153394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:25.957960 +AWS,us-east-2,r5dn.xlarge,reserved_3y,no_upfront,0.153394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:54.222531 +AWS,us-east-2,r5dn.xlarge,reserved_3y,partial_upfront,0.153394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:54.306353 +AWS,us-east-2,r5dn.xlarge,spot,NA,0.174756,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545830 +AWS,us-east-2,r5n.12xlarge,on_demand,NA,3.576,USD,AWS Pricing API,2025-11-30T08:52:07.765984 +AWS,us-east-2,r5n.12xlarge,reserved_1y,all_upfront,2.10274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:39.757460 +AWS,us-east-2,r5n.12xlarge,reserved_1y,no_upfront,2.10274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:16.422916 +AWS,us-east-2,r5n.12xlarge,reserved_1y,partial_upfront,2.10274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:06.997898 +AWS,us-east-2,r5n.12xlarge,reserved_3y,all_upfront,0.700913,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:48.561677 +AWS,us-east-2,r5n.12xlarge,reserved_3y,no_upfront,0.700913,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:16.958194 +AWS,us-east-2,r5n.12xlarge,reserved_3y,partial_upfront,0.700913,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:17.440526 +AWS,us-east-2,r5n.12xlarge,spot,NA,1.432635,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546897 +AWS,us-east-2,r5n.16xlarge,on_demand,NA,4.768,USD,AWS Pricing API,2025-11-30T08:52:23.053001 +AWS,us-east-2,r5n.16xlarge,reserved_1y,all_upfront,3.575963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:54.969812 +AWS,us-east-2,r5n.16xlarge,reserved_1y,no_upfront,3.575963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:31.741135 +AWS,us-east-2,r5n.16xlarge,reserved_1y,partial_upfront,3.575963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:22.142011 +AWS,us-east-2,r5n.16xlarge,reserved_3y,all_upfront,1.787988,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:03.724277 +AWS,us-east-2,r5n.16xlarge,reserved_3y,no_upfront,1.787988,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:32.220871 +AWS,us-east-2,r5n.16xlarge,reserved_3y,partial_upfront,1.787988,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:32.981026 +AWS,us-east-2,r5n.16xlarge,spot,NA,1.867073,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547608 +AWS,us-east-2,r5n.24xlarge,on_demand,NA,7.152,USD,AWS Pricing API,2025-11-30T08:51:44.404278 +AWS,us-east-2,r5n.24xlarge,reserved_1y,all_upfront,5.182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:16.480323 +AWS,us-east-2,r5n.24xlarge,reserved_1y,no_upfront,5.182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:53.071852 +AWS,us-east-2,r5n.24xlarge,reserved_1y,partial_upfront,5.182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:43.948345 +AWS,us-east-2,r5n.24xlarge,reserved_3y,all_upfront,5.182,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:25.542817 +AWS,us-east-2,r5n.24xlarge,reserved_3y,no_upfront,5.182,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:53.820528 +AWS,us-east-2,r5n.24xlarge,reserved_3y,partial_upfront,5.182,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:53.887093 +AWS,us-east-2,r5n.24xlarge,spot,NA,2.986984,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545769 +AWS,us-east-2,r5n.2xlarge,on_demand,NA,0.596,USD,AWS Pricing API,2025-11-30T08:51:24.908279 +AWS,us-east-2,r5n.2xlarge,reserved_1y,all_upfront,0.411594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:57.427322 +AWS,us-east-2,r5n.2xlarge,reserved_1y,no_upfront,0.411594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:33.611076 +AWS,us-east-2,r5n.2xlarge,reserved_1y,partial_upfront,0.411594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:24.751553 +AWS,us-east-2,r5n.2xlarge,reserved_3y,all_upfront,0.274531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:06.416632 +AWS,us-east-2,r5n.2xlarge,reserved_3y,no_upfront,0.274531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:34.693046 +AWS,us-east-2,r5n.2xlarge,reserved_3y,partial_upfront,0.274531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:34.225194 +AWS,us-east-2,r5n.2xlarge,spot,NA,0.273158,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544926 +AWS,us-east-2,r5n.4xlarge,on_demand,NA,1.192,USD,AWS Pricing API,2025-11-30T08:52:21.549671 +AWS,us-east-2,r5n.4xlarge,reserved_1y,all_upfront,1.513927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:53.478155 +AWS,us-east-2,r5n.4xlarge,reserved_1y,no_upfront,1.513927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:30.225791 +AWS,us-east-2,r5n.4xlarge,reserved_1y,partial_upfront,1.513927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:20.640204 +AWS,us-east-2,r5n.4xlarge,reserved_3y,all_upfront,0.504642,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:02.240019 +AWS,us-east-2,r5n.4xlarge,reserved_3y,no_upfront,0.504642,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:30.713694 +AWS,us-east-2,r5n.4xlarge,reserved_3y,partial_upfront,0.504642,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:31.463989 +AWS,us-east-2,r5n.4xlarge,spot,NA,0.506598,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547540 +AWS,us-east-2,r5n.8xlarge,on_demand,NA,2.384,USD,AWS Pricing API,2025-11-30T08:52:07.626986 +AWS,us-east-2,r5n.8xlarge,reserved_1y,all_upfront,1.401826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:39.621088 +AWS,us-east-2,r5n.8xlarge,reserved_1y,no_upfront,1.401826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:16.286918 +AWS,us-east-2,r5n.8xlarge,reserved_1y,partial_upfront,1.401826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:06.865326 +AWS,us-east-2,r5n.8xlarge,reserved_3y,all_upfront,0.467275,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:48.428827 +AWS,us-east-2,r5n.8xlarge,reserved_3y,no_upfront,0.467275,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:16.823858 +AWS,us-east-2,r5n.8xlarge,reserved_3y,partial_upfront,0.467275,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:17.300961 +AWS,us-east-2,r5n.8xlarge,spot,NA,0.870698,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546884 +AWS,us-east-2,r5n.large,on_demand,NA,0.149,USD,AWS Pricing API,2025-11-30T08:52:28.947962 +AWS,us-east-2,r5n.large,reserved_1y,all_upfront,0.108,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:00.779195 +AWS,us-east-2,r5n.large,reserved_1y,no_upfront,0.108,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:37.613839 +AWS,us-east-2,r5n.large,reserved_1y,partial_upfront,0.108,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:27.972536 +AWS,us-east-2,r5n.large,reserved_3y,all_upfront,0.108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:09.532113 +AWS,us-east-2,r5n.large,reserved_3y,no_upfront,0.108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:38.035909 +AWS,us-east-2,r5n.large,reserved_3y,partial_upfront,0.108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:38.946034 +AWS,us-east-2,r5n.large,spot,NA,0.053859,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547859 +AWS,us-east-2,r5n.metal,on_demand,NA,7.152,USD,AWS Pricing API,2025-11-30T08:52:08.586222 +AWS,us-east-2,r5n.metal,reserved_1y,all_upfront,3.337,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:40.574589 +AWS,us-east-2,r5n.metal,reserved_1y,no_upfront,3.337,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:17.238880 +AWS,us-east-2,r5n.metal,reserved_1y,partial_upfront,3.337,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:07.812225 +AWS,us-east-2,r5n.metal,reserved_3y,all_upfront,3.337,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:49.369868 +AWS,us-east-2,r5n.metal,reserved_3y,no_upfront,3.337,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:17.775217 +AWS,us-east-2,r5n.metal,reserved_3y,partial_upfront,3.337,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:18.281999 +AWS,us-east-2,r5n.metal,spot,NA,2.305121,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546943 +AWS,us-east-2,r5n.xlarge,on_demand,NA,0.298,USD,AWS Pricing API,2025-11-30T08:51:46.464645 +AWS,us-east-2,r5n.xlarge,reserved_1y,all_upfront,0.188,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:18.529412 +AWS,us-east-2,r5n.xlarge,reserved_1y,no_upfront,0.188,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:55.140594 +AWS,us-east-2,r5n.xlarge,reserved_1y,partial_upfront,0.188,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:45.988690 +AWS,us-east-2,r5n.xlarge,reserved_3y,all_upfront,0.188,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:27.578862 +AWS,us-east-2,r5n.xlarge,reserved_3y,no_upfront,0.188,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:55.844615 +AWS,us-east-2,r5n.xlarge,reserved_3y,partial_upfront,0.188,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:55.967943 +AWS,us-east-2,r5n.xlarge,spot,NA,0.152178,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545868 +AWS,us-east-2,r6g.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:51:39.520216 +AWS,us-east-2,r6g.12xlarge,reserved_1y,all_upfront,1.422489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:11.753564 +AWS,us-east-2,r6g.12xlarge,reserved_1y,no_upfront,1.422489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:48.184736 +AWS,us-east-2,r6g.12xlarge,reserved_1y,partial_upfront,1.422489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:39.188504 +AWS,us-east-2,r6g.12xlarge,reserved_3y,all_upfront,0.474163,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:20.826010 +AWS,us-east-2,r6g.12xlarge,reserved_3y,no_upfront,0.474163,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:49.068337 +AWS,us-east-2,r6g.12xlarge,reserved_3y,partial_upfront,0.474163,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:49.035625 +AWS,us-east-2,r6g.12xlarge,spot,NA,0.676841,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545591 +AWS,us-east-2,r6g.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:51:36.331129 +AWS,us-east-2,r6g.16xlarge,reserved_1y,all_upfront,1.896689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:08.657831 +AWS,us-east-2,r6g.16xlarge,reserved_1y,no_upfront,1.896689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:44.990348 +AWS,us-east-2,r6g.16xlarge,reserved_1y,partial_upfront,1.896689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:36.064989 +AWS,us-east-2,r6g.16xlarge,reserved_3y,all_upfront,0.63223,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:17.719795 +AWS,us-east-2,r6g.16xlarge,reserved_3y,no_upfront,0.63223,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:45.959615 +AWS,us-east-2,r6g.16xlarge,reserved_3y,partial_upfront,0.63223,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:45.750471 +AWS,us-east-2,r6g.16xlarge,spot,NA,0.901148,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545446 +AWS,us-east-2,r6g.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:52:29.913718 +AWS,us-east-2,r6g.2xlarge,reserved_1y,all_upfront,0.254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:01.774314 +AWS,us-east-2,r6g.2xlarge,reserved_1y,no_upfront,0.254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:38.569764 +AWS,us-east-2,r6g.2xlarge,reserved_1y,partial_upfront,0.254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:28.922707 +AWS,us-east-2,r6g.2xlarge,reserved_3y,all_upfront,0.254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:10.470018 +AWS,us-east-2,r6g.2xlarge,reserved_3y,no_upfront,0.254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:38.982437 +AWS,us-east-2,r6g.2xlarge,reserved_3y,partial_upfront,0.254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:39.909363 +AWS,us-east-2,r6g.2xlarge,spot,NA,0.147376,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547916 +AWS,us-east-2,r6g.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:51:26.005514 +AWS,us-east-2,r6g.4xlarge,reserved_1y,all_upfront,0.553626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:58.504094 +AWS,us-east-2,r6g.4xlarge,reserved_1y,no_upfront,0.553626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:34.704758 +AWS,us-east-2,r6g.4xlarge,reserved_1y,partial_upfront,0.553626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:25.839700 +AWS,us-east-2,r6g.4xlarge,reserved_3y,all_upfront,0.369075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:07.496952 +AWS,us-east-2,r6g.4xlarge,reserved_3y,no_upfront,0.369075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:35.779849 +AWS,us-east-2,r6g.4xlarge,reserved_3y,partial_upfront,0.369075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:35.325551 +AWS,us-east-2,r6g.4xlarge,spot,NA,0.339648,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544964 +AWS,us-east-2,r6g.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:52:05.583544 +AWS,us-east-2,r6g.8xlarge,reserved_1y,all_upfront,1.1625,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:37.557693 +AWS,us-east-2,r6g.8xlarge,reserved_1y,no_upfront,1.1625,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:14.227180 +AWS,us-east-2,r6g.8xlarge,reserved_1y,partial_upfront,1.1625,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:04.841001 +AWS,us-east-2,r6g.8xlarge,reserved_3y,all_upfront,1.1625,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:46.398386 +AWS,us-east-2,r6g.8xlarge,reserved_3y,no_upfront,1.1625,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:14.795064 +AWS,us-east-2,r6g.8xlarge,reserved_3y,partial_upfront,1.1625,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:15.223441 +AWS,us-east-2,r6g.8xlarge,spot,NA,0.525055,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546841 +AWS,us-east-2,r6g.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T08:51:43.849891 +AWS,us-east-2,r6g.large,reserved_1y,all_upfront,0.0727,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:15.939024 +AWS,us-east-2,r6g.large,reserved_1y,no_upfront,0.0727,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:52.510525 +AWS,us-east-2,r6g.large,reserved_1y,partial_upfront,0.0727,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:43.409516 +AWS,us-east-2,r6g.large,reserved_3y,all_upfront,0.0727,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:25.003585 +AWS,us-east-2,r6g.large,reserved_3y,no_upfront,0.0727,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:53.283408 +AWS,us-east-2,r6g.large,reserved_3y,partial_upfront,0.0727,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:53.328741 +AWS,us-east-2,r6g.large,spot,NA,0.034862,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545799 +AWS,us-east-2,r6g.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:51:18.900292 +AWS,us-east-2,r6g.xlarge,reserved_1y,all_upfront,0.284361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:51.454667 +AWS,us-east-2,r6g.xlarge,reserved_1y,no_upfront,0.284361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:27.598905 +AWS,us-east-2,r6g.xlarge,reserved_1y,partial_upfront,0.284361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:18.812419 +AWS,us-east-2,r6g.xlarge,reserved_3y,all_upfront,0.094787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:00.435212 +AWS,us-east-2,r6g.xlarge,reserved_3y,no_upfront,0.094787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:28.700768 +AWS,us-east-2,r6g.xlarge,reserved_3y,partial_upfront,0.094787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:28.137043 +AWS,us-east-2,r6g.xlarge,spot,NA,0.0708,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544634 +AWS,us-east-2,r6gd.12xlarge,on_demand,NA,2.7648,USD,AWS Pricing API,2025-11-30T08:52:16.106362 +AWS,us-east-2,r6gd.12xlarge,reserved_1y,all_upfront,1.915777,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:48.067947 +AWS,us-east-2,r6gd.12xlarge,reserved_1y,no_upfront,1.915777,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:24.768612 +AWS,us-east-2,r6gd.12xlarge,reserved_1y,partial_upfront,1.915777,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:15.238891 +AWS,us-east-2,r6gd.12xlarge,reserved_3y,all_upfront,1.277192,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:56.784146 +AWS,us-east-2,r6gd.12xlarge,reserved_3y,no_upfront,1.277192,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:25.298449 +AWS,us-east-2,r6gd.12xlarge,reserved_3y,partial_upfront,1.277192,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:25.925967 +AWS,us-east-2,r6gd.12xlarge,spot,NA,0.815394,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547289 +AWS,us-east-2,r6gd.16xlarge,on_demand,NA,3.6864,USD,AWS Pricing API,2025-11-30T08:51:42.322203 +AWS,us-east-2,r6gd.16xlarge,reserved_1y,all_upfront,2.949172,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:14.456761 +AWS,us-east-2,r6gd.16xlarge,reserved_1y,no_upfront,2.949172,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:50.947798 +AWS,us-east-2,r6gd.16xlarge,reserved_1y,partial_upfront,2.949172,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:41.909988 +AWS,us-east-2,r6gd.16xlarge,reserved_3y,all_upfront,1.474591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:23.521371 +AWS,us-east-2,r6gd.16xlarge,reserved_3y,no_upfront,1.474591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:51.785429 +AWS,us-east-2,r6gd.16xlarge,reserved_3y,partial_upfront,1.474591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:51.806492 +AWS,us-east-2,r6gd.16xlarge,spot,NA,0.890595,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545738 +AWS,us-east-2,r6gd.2xlarge,on_demand,NA,0.4608,USD,AWS Pricing API,2025-11-30T08:51:20.398669 +AWS,us-east-2,r6gd.2xlarge,reserved_1y,all_upfront,0.3353,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:52.948467 +AWS,us-east-2,r6gd.2xlarge,reserved_1y,no_upfront,0.3353,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:29.097709 +AWS,us-east-2,r6gd.2xlarge,reserved_1y,partial_upfront,0.3353,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:20.290009 +AWS,us-east-2,r6gd.2xlarge,reserved_3y,all_upfront,0.3353,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:01.937675 +AWS,us-east-2,r6gd.2xlarge,reserved_3y,no_upfront,0.3353,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:30.196302 +AWS,us-east-2,r6gd.2xlarge,reserved_3y,partial_upfront,0.3353,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:29.659510 +AWS,us-east-2,r6gd.2xlarge,spot,NA,0.157684,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544753 +AWS,us-east-2,r6gd.4xlarge,on_demand,NA,0.9216,USD,AWS Pricing API,2025-11-30T08:51:26.967044 +AWS,us-east-2,r6gd.4xlarge,reserved_1y,all_upfront,0.541895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:59.456673 +AWS,us-east-2,r6gd.4xlarge,reserved_1y,no_upfront,0.541895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:35.666003 +AWS,us-east-2,r6gd.4xlarge,reserved_1y,partial_upfront,0.541895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:26.799506 +AWS,us-east-2,r6gd.4xlarge,reserved_3y,all_upfront,0.180632,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:08.454502 +AWS,us-east-2,r6gd.4xlarge,reserved_3y,no_upfront,0.180632,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:36.724604 +AWS,us-east-2,r6gd.4xlarge,reserved_3y,partial_upfront,0.180632,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:36.291220 +AWS,us-east-2,r6gd.4xlarge,spot,NA,0.313368,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545036 +AWS,us-east-2,r6gd.8xlarge,on_demand,NA,1.8432,USD,AWS Pricing API,2025-11-30T08:51:21.228047 +AWS,us-east-2,r6gd.8xlarge,reserved_1y,all_upfront,1.341,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:53.755301 +AWS,us-east-2,r6gd.8xlarge,reserved_1y,no_upfront,1.341,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:29.913296 +AWS,us-east-2,r6gd.8xlarge,reserved_1y,partial_upfront,1.341,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:21.109890 +AWS,us-east-2,r6gd.8xlarge,reserved_3y,all_upfront,1.341,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:02.760316 +AWS,us-east-2,r6gd.8xlarge,reserved_3y,no_upfront,1.341,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:31.017798 +AWS,us-east-2,r6gd.8xlarge,reserved_3y,partial_upfront,1.341,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:30.485422 +AWS,us-east-2,r6gd.8xlarge,spot,NA,0.546841,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544793 +AWS,us-east-2,r6gd.large,on_demand,NA,0.1152,USD,AWS Pricing API,2025-11-30T08:51:57.317015 +AWS,us-east-2,r6gd.large,reserved_1y,all_upfront,0.0838,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:29.413498 +AWS,us-east-2,r6gd.large,reserved_1y,no_upfront,0.0838,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:06.002352 +AWS,us-east-2,r6gd.large,reserved_1y,partial_upfront,0.0838,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:56.713451 +AWS,us-east-2,r6gd.large,reserved_3y,all_upfront,0.0838,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:38.269751 +AWS,us-east-2,r6gd.large,reserved_3y,no_upfront,0.0838,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:06.639871 +AWS,us-east-2,r6gd.large,reserved_3y,partial_upfront,0.0838,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:06.928201 +AWS,us-east-2,r6gd.large,spot,NA,0.039272,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546422 +AWS,us-east-2,r6gd.xlarge,on_demand,NA,0.2304,USD,AWS Pricing API,2025-11-30T08:51:41.214873 +AWS,us-east-2,r6gd.xlarge,reserved_1y,all_upfront,0.1676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:13.380527 +AWS,us-east-2,r6gd.xlarge,reserved_1y,no_upfront,0.1676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:49.847170 +AWS,us-east-2,r6gd.xlarge,reserved_1y,partial_upfront,0.1676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:40.820454 +AWS,us-east-2,r6gd.xlarge,reserved_3y,all_upfront,0.1676,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:22.449730 +AWS,us-east-2,r6gd.xlarge,reserved_3y,no_upfront,0.1676,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:50.712114 +AWS,us-east-2,r6gd.xlarge,reserved_3y,partial_upfront,0.1676,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:50.691461 +AWS,us-east-2,r6gd.xlarge,spot,NA,0.083686,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545664 +AWS,us-east-2,r6i.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:52:21.822738 +AWS,us-east-2,r6i.12xlarge,reserved_1y,all_upfront,2.19089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:53.747423 +AWS,us-east-2,r6i.12xlarge,reserved_1y,no_upfront,2.19089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:30.500116 +AWS,us-east-2,r6i.12xlarge,reserved_1y,partial_upfront,2.19089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:20.907712 +AWS,us-east-2,r6i.12xlarge,reserved_3y,all_upfront,2.19089,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:02.510403 +AWS,us-east-2,r6i.12xlarge,reserved_3y,no_upfront,2.19089,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:30.985547 +AWS,us-east-2,r6i.12xlarge,reserved_3y,partial_upfront,2.19089,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:31.743194 +AWS,us-east-2,r6i.12xlarge,spot,NA,1.044971,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547553 +AWS,us-east-2,r6i.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:51:29.714726 +AWS,us-east-2,r6i.16xlarge,reserved_1y,all_upfront,2.782136,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:02.171914 +AWS,us-east-2,r6i.16xlarge,reserved_1y,no_upfront,2.782136,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:38.407932 +AWS,us-east-2,r6i.16xlarge,reserved_1y,partial_upfront,2.782136,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:29.538862 +AWS,us-east-2,r6i.16xlarge,reserved_3y,all_upfront,1.854739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:11.162749 +AWS,us-east-2,r6i.16xlarge,reserved_3y,no_upfront,1.854739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:39.446733 +AWS,us-east-2,r6i.16xlarge,reserved_3y,partial_upfront,1.854739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:39.076133 +AWS,us-east-2,r6i.16xlarge,spot,NA,1.478004,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545180 +AWS,us-east-2,r6i.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:51:36.196254 +AWS,us-east-2,r6i.24xlarge,reserved_1y,all_upfront,4.17309,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:08.523745 +AWS,us-east-2,r6i.24xlarge,reserved_1y,no_upfront,4.17309,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:44.853969 +AWS,us-east-2,r6i.24xlarge,reserved_1y,partial_upfront,4.17309,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:35.930249 +AWS,us-east-2,r6i.24xlarge,reserved_3y,all_upfront,2.78207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:17.587852 +AWS,us-east-2,r6i.24xlarge,reserved_3y,no_upfront,2.78207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:45.823862 +AWS,us-east-2,r6i.24xlarge,reserved_3y,partial_upfront,2.78207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:45.610411 +AWS,us-east-2,r6i.24xlarge,spot,NA,1.897602,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545414 +AWS,us-east-2,r6i.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T08:52:25.365629 +AWS,us-east-2,r6i.2xlarge,reserved_1y,all_upfront,0.715639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:57.272198 +AWS,us-east-2,r6i.2xlarge,reserved_1y,no_upfront,0.715639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:34.056538 +AWS,us-east-2,r6i.2xlarge,reserved_1y,partial_upfront,0.715639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:24.435990 +AWS,us-east-2,r6i.2xlarge,reserved_3y,all_upfront,0.238546,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:06.020856 +AWS,us-east-2,r6i.2xlarge,reserved_3y,no_upfront,0.238546,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:34.515660 +AWS,us-east-2,r6i.2xlarge,reserved_3y,partial_upfront,0.238546,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:35.322352 +AWS,us-east-2,r6i.2xlarge,spot,NA,0.220815,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547717 +AWS,us-east-2,r6i.32xlarge,on_demand,NA,8.064,USD,AWS Pricing API,2025-11-30T08:51:29.850125 +AWS,us-east-2,r6i.32xlarge,reserved_1y,all_upfront,5.84237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:02.308940 +AWS,us-east-2,r6i.32xlarge,reserved_1y,no_upfront,5.84237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:38.545600 +AWS,us-east-2,r6i.32xlarge,reserved_1y,partial_upfront,5.84237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:29.673411 +AWS,us-east-2,r6i.32xlarge,reserved_3y,all_upfront,5.84237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:11.298359 +AWS,us-east-2,r6i.32xlarge,reserved_3y,no_upfront,5.84237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:39.582442 +AWS,us-east-2,r6i.32xlarge,reserved_3y,partial_upfront,5.84237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:39.213190 +AWS,us-east-2,r6i.32xlarge,spot,NA,2.567754,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545162 +AWS,us-east-2,r6i.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:51:51.565329 +AWS,us-east-2,r6i.4xlarge,reserved_1y,all_upfront,0.634986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:23.509011 +AWS,us-east-2,r6i.4xlarge,reserved_1y,no_upfront,0.634986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:00.216954 +AWS,us-east-2,r6i.4xlarge,reserved_1y,partial_upfront,0.634986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:51.030869 +AWS,us-east-2,r6i.4xlarge,reserved_3y,all_upfront,0.423342,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:32.618984 +AWS,us-east-2,r6i.4xlarge,reserved_3y,no_upfront,0.423342,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:00.875342 +AWS,us-east-2,r6i.4xlarge,reserved_3y,partial_upfront,0.423342,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:01.091887 +AWS,us-east-2,r6i.4xlarge,spot,NA,0.368547,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546161 +AWS,us-east-2,r6i.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:51:55.935145 +AWS,us-east-2,r6i.8xlarge,reserved_1y,all_upfront,1.05163,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:28.042616 +AWS,us-east-2,r6i.8xlarge,reserved_1y,no_upfront,1.05163,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:04.611442 +AWS,us-east-2,r6i.8xlarge,reserved_1y,partial_upfront,1.05163,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:55.362512 +AWS,us-east-2,r6i.8xlarge,reserved_3y,all_upfront,1.05163,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:36.921970 +AWS,us-east-2,r6i.8xlarge,reserved_3y,no_upfront,1.05163,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:05.287903 +AWS,us-east-2,r6i.8xlarge,reserved_3y,partial_upfront,1.05163,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:05.542893 +AWS,us-east-2,r6i.8xlarge,spot,NA,0.7045,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546346 +AWS,us-east-2,r6i.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:52:11.880019 +AWS,us-east-2,r6i.large,reserved_1y,all_upfront,0.105798,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:43.831723 +AWS,us-east-2,r6i.large,reserved_1y,no_upfront,0.105798,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:20.524786 +AWS,us-east-2,r6i.large,reserved_1y,partial_upfront,0.105798,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:11.049077 +AWS,us-east-2,r6i.large,reserved_3y,all_upfront,0.052906,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:52.608601 +AWS,us-east-2,r6i.large,reserved_3y,no_upfront,0.052906,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:21.094147 +AWS,us-east-2,r6i.large,reserved_3y,partial_upfront,0.052906,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:21.618636 +AWS,us-east-2,r6i.large,spot,NA,0.054006,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547088 +AWS,us-east-2,r6i.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T08:51:33.274955 +AWS,us-east-2,r6i.xlarge,reserved_1y,all_upfront,0.170434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:05.691871 +AWS,us-east-2,r6i.xlarge,reserved_1y,no_upfront,0.170434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:41.964526 +AWS,us-east-2,r6i.xlarge,reserved_1y,partial_upfront,0.170434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:33.068331 +AWS,us-east-2,r6i.xlarge,reserved_3y,all_upfront,0.056811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:14.754669 +AWS,us-east-2,r6i.xlarge,reserved_3y,no_upfront,0.056811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:42.978619 +AWS,us-east-2,r6i.xlarge,reserved_3y,partial_upfront,0.056811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:42.690589 +AWS,us-east-2,r6i.xlarge,spot,NA,0.105872,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545316 +AWS,us-east-2,r6id.12xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T08:52:25.772054 +AWS,us-east-2,r6id.12xlarge,reserved_1y,all_upfront,2.507353,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:57.676713 +AWS,us-east-2,r6id.12xlarge,reserved_1y,no_upfront,2.507353,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:34.466170 +AWS,us-east-2,r6id.12xlarge,reserved_1y,partial_upfront,2.507353,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:24.869477 +AWS,us-east-2,r6id.12xlarge,reserved_3y,all_upfront,1.671584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:06.429172 +AWS,us-east-2,r6id.12xlarge,reserved_3y,no_upfront,1.671584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:34.920904 +AWS,us-east-2,r6id.12xlarge,reserved_3y,partial_upfront,1.671584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:35.736135 +AWS,us-east-2,r6id.12xlarge,spot,NA,1.338221,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547762 +AWS,us-east-2,r6id.16xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:52:08.720741 +AWS,us-east-2,r6id.16xlarge,reserved_1y,all_upfront,6.766667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:40.712677 +AWS,us-east-2,r6id.16xlarge,reserved_1y,no_upfront,6.766667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:17.374028 +AWS,us-east-2,r6id.16xlarge,reserved_1y,partial_upfront,6.766667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:07.947205 +AWS,us-east-2,r6id.16xlarge,reserved_3y,all_upfront,2.255556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:49.505166 +AWS,us-east-2,r6id.16xlarge,reserved_3y,no_upfront,2.255556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:17.954076 +AWS,us-east-2,r6id.16xlarge,reserved_3y,partial_upfront,2.255556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:18.422579 +AWS,us-east-2,r6id.16xlarge,spot,NA,1.554313,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546949 +AWS,us-east-2,r6id.24xlarge,on_demand,NA,7.2576,USD,AWS Pricing API,2025-11-30T08:51:20.669811 +AWS,us-east-2,r6id.24xlarge,reserved_1y,all_upfront,5.01482,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:53.216707 +AWS,us-east-2,r6id.24xlarge,reserved_1y,no_upfront,5.01482,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:29.371154 +AWS,us-east-2,r6id.24xlarge,reserved_1y,partial_upfront,5.01482,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:20.558338 +AWS,us-east-2,r6id.24xlarge,reserved_3y,all_upfront,3.343207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:02.208357 +AWS,us-east-2,r6id.24xlarge,reserved_3y,no_upfront,3.343207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:30.477949 +AWS,us-east-2,r6id.24xlarge,reserved_3y,partial_upfront,3.343207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:29.937707 +AWS,us-east-2,r6id.24xlarge,spot,NA,2.325781,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544700 +AWS,us-east-2,r6id.2xlarge,on_demand,NA,0.6048,USD,AWS Pricing API,2025-11-30T08:52:11.461996 +AWS,us-east-2,r6id.2xlarge,reserved_1y,all_upfront,0.484014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:43.426508 +AWS,us-east-2,r6id.2xlarge,reserved_1y,no_upfront,0.484014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:20.112295 +AWS,us-east-2,r6id.2xlarge,reserved_1y,partial_upfront,0.484014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:10.647067 +AWS,us-east-2,r6id.2xlarge,reserved_3y,all_upfront,0.242005,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:52.204611 +AWS,us-east-2,r6id.2xlarge,reserved_3y,no_upfront,0.242005,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:20.678621 +AWS,us-east-2,r6id.2xlarge,reserved_3y,partial_upfront,0.242005,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:21.196372 +AWS,us-east-2,r6id.2xlarge,spot,NA,0.251927,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547082 +AWS,us-east-2,r6id.32xlarge,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:52:03.232923 +AWS,us-east-2,r6id.32xlarge,reserved_1y,all_upfront,13.533447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:35.258904 +AWS,us-east-2,r6id.32xlarge,reserved_1y,no_upfront,13.533447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:11.892483 +AWS,us-east-2,r6id.32xlarge,reserved_1y,partial_upfront,13.533447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:02.542262 +AWS,us-east-2,r6id.32xlarge,reserved_3y,all_upfront,4.511149,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:44.088376 +AWS,us-east-2,r6id.32xlarge,reserved_3y,no_upfront,4.511149,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:12.474205 +AWS,us-east-2,r6id.32xlarge,reserved_3y,partial_upfront,4.511149,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:12.868749 +AWS,us-east-2,r6id.32xlarge,spot,NA,3.630525,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546721 +AWS,us-east-2,r6id.4xlarge,on_demand,NA,1.2096,USD,AWS Pricing API,2025-11-30T08:51:57.854458 +AWS,us-east-2,r6id.4xlarge,reserved_1y,all_upfront,0.819064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:29.958479 +AWS,us-east-2,r6id.4xlarge,reserved_1y,no_upfront,0.819064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:06.554167 +AWS,us-east-2,r6id.4xlarge,reserved_1y,partial_upfront,0.819064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:57.258437 +AWS,us-east-2,r6id.4xlarge,reserved_3y,all_upfront,0.273021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:38.811390 +AWS,us-east-2,r6id.4xlarge,reserved_3y,no_upfront,0.273021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:07.179734 +AWS,us-east-2,r6id.4xlarge,reserved_3y,partial_upfront,0.273021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:07.477021 +AWS,us-east-2,r6id.4xlarge,spot,NA,0.511145,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546416 +AWS,us-east-2,r6id.8xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:51:20.262499 +AWS,us-east-2,r6id.8xlarge,reserved_1y,all_upfront,1.75518,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:52.808251 +AWS,us-east-2,r6id.8xlarge,reserved_1y,no_upfront,1.75518,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:28.959051 +AWS,us-east-2,r6id.8xlarge,reserved_1y,partial_upfront,1.75518,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:20.154930 +AWS,us-east-2,r6id.8xlarge,reserved_3y,all_upfront,1.75518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:01.799563 +AWS,us-east-2,r6id.8xlarge,reserved_3y,no_upfront,1.75518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:30.063603 +AWS,us-east-2,r6id.8xlarge,reserved_3y,partial_upfront,1.75518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:29.522073 +AWS,us-east-2,r6id.8xlarge,spot,NA,0.869139,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544759 +AWS,us-east-2,r6id.large,on_demand,NA,0.1512,USD,AWS Pricing API,2025-11-30T08:51:45.650830 +AWS,us-east-2,r6id.large,reserved_1y,all_upfront,0.211416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:17.692548 +AWS,us-east-2,r6id.large,reserved_1y,no_upfront,0.211416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:54.316108 +AWS,us-east-2,r6id.large,reserved_1y,partial_upfront,0.211416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:45.168705 +AWS,us-east-2,r6id.large,reserved_3y,all_upfront,0.070472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:26.775990 +AWS,us-east-2,r6id.large,reserved_3y,no_upfront,0.070472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:55.037693 +AWS,us-east-2,r6id.large,reserved_3y,partial_upfront,0.070472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:55.132875 +AWS,us-east-2,r6id.large,spot,NA,0.050839,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545848 +AWS,us-east-2,r6id.xlarge,on_demand,NA,0.3024,USD,AWS Pricing API,2025-11-30T08:52:23.189833 +AWS,us-east-2,r6id.xlarge,reserved_1y,all_upfront,0.2194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:55.109580 +AWS,us-east-2,r6id.xlarge,reserved_1y,no_upfront,0.2194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:31.878191 +AWS,us-east-2,r6id.xlarge,reserved_1y,partial_upfront,0.2194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:22.275974 +AWS,us-east-2,r6id.xlarge,reserved_3y,all_upfront,0.2194,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:03.858916 +AWS,us-east-2,r6id.xlarge,reserved_3y,no_upfront,0.2194,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:32.357526 +AWS,us-east-2,r6id.xlarge,reserved_3y,partial_upfront,0.2194,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:33.119317 +AWS,us-east-2,r6id.xlarge,spot,NA,0.123922,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547660 +AWS,us-east-2,r6idn.12xlarge,on_demand,NA,4.68936,USD,AWS Pricing API,2025-11-30T08:51:43.425351 +AWS,us-east-2,r6idn.12xlarge,reserved_1y,all_upfront,2.9543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:15.539838 +AWS,us-east-2,r6idn.12xlarge,reserved_1y,no_upfront,2.9543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:52.098761 +AWS,us-east-2,r6idn.12xlarge,reserved_1y,partial_upfront,2.9543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:42.999916 +AWS,us-east-2,r6idn.12xlarge,reserved_3y,all_upfront,2.9543,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:24.598233 +AWS,us-east-2,r6idn.12xlarge,reserved_3y,no_upfront,2.9543,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:52.871748 +AWS,us-east-2,r6idn.12xlarge,reserved_3y,partial_upfront,2.9543,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:52.916273 +AWS,us-east-2,r6idn.12xlarge,spot,NA,1.953081,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545756 +AWS,us-east-2,r6idn.16xlarge,on_demand,NA,6.25248,USD,AWS Pricing API,2025-11-30T08:51:23.006996 +AWS,us-east-2,r6idn.16xlarge,reserved_1y,all_upfront,7.957648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:55.514747 +AWS,us-east-2,r6idn.16xlarge,reserved_1y,no_upfront,7.957648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:31.685742 +AWS,us-east-2,r6idn.16xlarge,reserved_1y,partial_upfront,7.957648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:22.867377 +AWS,us-east-2,r6idn.16xlarge,reserved_3y,all_upfront,2.652549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:04.520912 +AWS,us-east-2,r6idn.16xlarge,reserved_3y,no_upfront,2.652549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:32.779862 +AWS,us-east-2,r6idn.16xlarge,reserved_3y,partial_upfront,2.652549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:32.272414 +AWS,us-east-2,r6idn.16xlarge,spot,NA,2.415955,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544863 +AWS,us-east-2,r6idn.24xlarge,on_demand,NA,9.37872,USD,AWS Pricing API,2025-11-30T08:51:50.739357 +AWS,us-east-2,r6idn.24xlarge,reserved_1y,all_upfront,5.514726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:22.698343 +AWS,us-east-2,r6idn.24xlarge,reserved_1y,no_upfront,5.514726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:59.382092 +AWS,us-east-2,r6idn.24xlarge,reserved_1y,partial_upfront,5.514726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:50.214310 +AWS,us-east-2,r6idn.24xlarge,reserved_3y,all_upfront,1.838242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:31.807686 +AWS,us-east-2,r6idn.24xlarge,reserved_3y,no_upfront,1.838242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:00.040031 +AWS,us-east-2,r6idn.24xlarge,reserved_3y,partial_upfront,1.838242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:00.259351 +AWS,us-east-2,r6idn.24xlarge,spot,NA,3.525785,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546087 +AWS,us-east-2,r6idn.2xlarge,on_demand,NA,0.78156,USD,AWS Pricing API,2025-11-30T08:51:50.187639 +AWS,us-east-2,r6idn.2xlarge,reserved_1y,all_upfront,0.459589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:22.151352 +AWS,us-east-2,r6idn.2xlarge,reserved_1y,no_upfront,0.459589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:58.833017 +AWS,us-east-2,r6idn.2xlarge,reserved_1y,partial_upfront,0.459589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:49.657354 +AWS,us-east-2,r6idn.2xlarge,reserved_3y,all_upfront,0.153196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:31.267084 +AWS,us-east-2,r6idn.2xlarge,reserved_3y,no_upfront,0.153196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:59.499547 +AWS,us-east-2,r6idn.2xlarge,reserved_3y,partial_upfront,0.153196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:59.704221 +AWS,us-east-2,r6idn.2xlarge,spot,NA,0.360721,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546105 +AWS,us-east-2,r6idn.32xlarge,on_demand,NA,12.50496,USD,AWS Pricing API,2025-11-30T08:52:20.729231 +AWS,us-east-2,r6idn.32xlarge,reserved_1y,all_upfront,8.628365,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:52.668432 +AWS,us-east-2,r6idn.32xlarge,reserved_1y,no_upfront,8.628365,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:29.407510 +AWS,us-east-2,r6idn.32xlarge,reserved_1y,partial_upfront,8.628365,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:19.820665 +AWS,us-east-2,r6idn.32xlarge,reserved_3y,all_upfront,5.752262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:01.398865 +AWS,us-east-2,r6idn.32xlarge,reserved_3y,no_upfront,5.752262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:29.902931 +AWS,us-east-2,r6idn.32xlarge,reserved_3y,partial_upfront,5.752262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:30.628032 +AWS,us-east-2,r6idn.32xlarge,spot,NA,4.711897,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547489 +AWS,us-east-2,r6idn.4xlarge,on_demand,NA,1.56312,USD,AWS Pricing API,2025-11-30T08:51:23.556333 +AWS,us-east-2,r6idn.4xlarge,reserved_1y,all_upfront,1.989384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:56.059282 +AWS,us-east-2,r6idn.4xlarge,reserved_1y,no_upfront,1.989384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:32.234538 +AWS,us-east-2,r6idn.4xlarge,reserved_1y,partial_upfront,1.989384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:23.405582 +AWS,us-east-2,r6idn.4xlarge,reserved_3y,all_upfront,0.663128,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:05.074511 +AWS,us-east-2,r6idn.4xlarge,reserved_3y,no_upfront,0.663128,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:33.324693 +AWS,us-east-2,r6idn.4xlarge,reserved_3y,partial_upfront,0.663128,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:32.825302 +AWS,us-east-2,r6idn.4xlarge,spot,NA,0.622688,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544875 +AWS,us-east-2,r6idn.8xlarge,on_demand,NA,3.12624,USD,AWS Pricing API,2025-11-30T08:52:11.744880 +AWS,us-east-2,r6idn.8xlarge,reserved_1y,all_upfront,1.838242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:43.697163 +AWS,us-east-2,r6idn.8xlarge,reserved_1y,no_upfront,1.838242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:20.386862 +AWS,us-east-2,r6idn.8xlarge,reserved_1y,partial_upfront,1.838242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:10.914801 +AWS,us-east-2,r6idn.8xlarge,reserved_3y,all_upfront,0.612747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:52.472518 +AWS,us-east-2,r6idn.8xlarge,reserved_3y,no_upfront,0.612747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:20.950297 +AWS,us-east-2,r6idn.8xlarge,reserved_3y,partial_upfront,0.612747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:21.473284 +AWS,us-east-2,r6idn.8xlarge,spot,NA,1.159468,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547075 +AWS,us-east-2,r6idn.large,on_demand,NA,0.19539,USD,AWS Pricing API,2025-11-30T08:51:43.282165 +AWS,us-east-2,r6idn.large,reserved_1y,all_upfront,0.132078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:15.406294 +AWS,us-east-2,r6idn.large,reserved_1y,no_upfront,0.132078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:51.950992 +AWS,us-east-2,r6idn.large,reserved_1y,partial_upfront,0.132078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:42.862653 +AWS,us-east-2,r6idn.large,reserved_3y,all_upfront,0.044026,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:24.463889 +AWS,us-east-2,r6idn.large,reserved_3y,no_upfront,0.044026,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:52.736152 +AWS,us-east-2,r6idn.large,reserved_3y,partial_upfront,0.044026,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:52.777062 +AWS,us-east-2,r6idn.large,spot,NA,0.053868,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545762 +AWS,us-east-2,r6idn.xlarge,on_demand,NA,0.39078,USD,AWS Pricing API,2025-11-30T08:51:35.049048 +AWS,us-east-2,r6idn.xlarge,reserved_1y,all_upfront,0.497374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:07.444468 +AWS,us-east-2,r6idn.xlarge,reserved_1y,no_upfront,0.497374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:43.756200 +AWS,us-east-2,r6idn.xlarge,reserved_1y,partial_upfront,0.497374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:34.846760 +AWS,us-east-2,r6idn.xlarge,reserved_3y,all_upfront,0.165791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:16.511903 +AWS,us-east-2,r6idn.xlarge,reserved_3y,no_upfront,0.165791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:44.741472 +AWS,us-east-2,r6idn.xlarge,reserved_3y,partial_upfront,0.165791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:44.482146 +AWS,us-east-2,r6idn.xlarge,spot,NA,0.165676,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545402 +AWS,us-east-2,r6in.12xlarge,on_demand,NA,4.18392,USD,AWS Pricing API,2025-11-30T08:51:27.647476 +AWS,us-east-2,r6in.12xlarge,reserved_1y,all_upfront,3.03125,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:00.134357 +AWS,us-east-2,r6in.12xlarge,reserved_1y,no_upfront,3.03125,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:36.356222 +AWS,us-east-2,r6in.12xlarge,reserved_1y,partial_upfront,3.03125,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:27.477024 +AWS,us-east-2,r6in.12xlarge,reserved_3y,all_upfront,3.03125,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:09.132006 +AWS,us-east-2,r6in.12xlarge,reserved_3y,no_upfront,3.03125,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:37.408618 +AWS,us-east-2,r6in.12xlarge,reserved_3y,partial_upfront,3.03125,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:36.988055 +AWS,us-east-2,r6in.12xlarge,spot,NA,1.704434,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545029 +AWS,us-east-2,r6in.16xlarge,on_demand,NA,5.57856,USD,AWS Pricing API,2025-11-30T08:51:19.310256 +AWS,us-east-2,r6in.16xlarge,reserved_1y,all_upfront,3.51449,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:51.858259 +AWS,us-east-2,r6in.16xlarge,reserved_1y,no_upfront,3.51449,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:28.006839 +AWS,us-east-2,r6in.16xlarge,reserved_1y,partial_upfront,3.51449,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:19.217170 +AWS,us-east-2,r6in.16xlarge,reserved_3y,all_upfront,3.51449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:00.841535 +AWS,us-east-2,r6in.16xlarge,reserved_3y,no_upfront,3.51449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:29.103746 +AWS,us-east-2,r6in.16xlarge,reserved_3y,partial_upfront,3.51449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:28.555367 +AWS,us-east-2,r6in.16xlarge,spot,NA,2.008481,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544655 +AWS,us-east-2,r6in.24xlarge,on_demand,NA,8.36784,USD,AWS Pricing API,2025-11-30T08:52:19.910953 +AWS,us-east-2,r6in.24xlarge,reserved_1y,all_upfront,6.0625,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:51.849188 +AWS,us-east-2,r6in.24xlarge,reserved_1y,no_upfront,6.0625,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:28.583729 +AWS,us-east-2,r6in.24xlarge,reserved_1y,partial_upfront,6.0625,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:19.007110 +AWS,us-east-2,r6in.24xlarge,reserved_3y,all_upfront,6.0625,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:00.568660 +AWS,us-east-2,r6in.24xlarge,reserved_3y,no_upfront,6.0625,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:29.093520 +AWS,us-east-2,r6in.24xlarge,reserved_3y,partial_upfront,6.0625,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:29.781304 +AWS,us-east-2,r6in.24xlarge,spot,NA,3.144438,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547416 +AWS,us-east-2,r6in.2xlarge,on_demand,NA,0.69732,USD,AWS Pricing API,2025-11-30T08:52:22.780631 +AWS,us-east-2,r6in.2xlarge,reserved_1y,all_upfront,0.885616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:54.700586 +AWS,us-east-2,r6in.2xlarge,reserved_1y,no_upfront,0.885616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:31.468070 +AWS,us-east-2,r6in.2xlarge,reserved_1y,partial_upfront,0.885616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:21.856797 +AWS,us-east-2,r6in.2xlarge,reserved_3y,all_upfront,0.295205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:03.459757 +AWS,us-east-2,r6in.2xlarge,reserved_3y,no_upfront,0.295205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:31.951444 +AWS,us-east-2,r6in.2xlarge,reserved_3y,partial_upfront,0.295205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:32.704861 +AWS,us-east-2,r6in.2xlarge,spot,NA,0.253458,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547577 +AWS,us-east-2,r6in.32xlarge,on_demand,NA,11.15712,USD,AWS Pricing API,2025-11-30T08:52:02.952893 +AWS,us-east-2,r6in.32xlarge,reserved_1y,all_upfront,7.02899,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:34.986553 +AWS,us-east-2,r6in.32xlarge,reserved_1y,no_upfront,7.02899,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:11.622025 +AWS,us-east-2,r6in.32xlarge,reserved_1y,partial_upfront,7.02899,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:02.269469 +AWS,us-east-2,r6in.32xlarge,reserved_3y,all_upfront,7.02899,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:43.820287 +AWS,us-east-2,r6in.32xlarge,reserved_3y,no_upfront,7.02899,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:12.195226 +AWS,us-east-2,r6in.32xlarge,reserved_3y,partial_upfront,7.02899,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:12.590372 +AWS,us-east-2,r6in.32xlarge,spot,NA,3.59269,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546689 +AWS,us-east-2,r6in.4xlarge,on_demand,NA,1.39464,USD,AWS Pricing API,2025-11-30T08:52:25.229059 +AWS,us-east-2,r6in.4xlarge,reserved_1y,all_upfront,0.820091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:57.136979 +AWS,us-east-2,r6in.4xlarge,reserved_1y,no_upfront,0.820091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:33.919916 +AWS,us-east-2,r6in.4xlarge,reserved_1y,partial_upfront,0.820091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:24.300709 +AWS,us-east-2,r6in.4xlarge,reserved_3y,all_upfront,0.273364,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:05.885024 +AWS,us-east-2,r6in.4xlarge,reserved_3y,no_upfront,0.273364,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:34.381199 +AWS,us-east-2,r6in.4xlarge,reserved_3y,partial_upfront,0.273364,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:35.185419 +AWS,us-east-2,r6in.4xlarge,spot,NA,0.463146,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547698 +AWS,us-east-2,r6in.8xlarge,on_demand,NA,2.78928,USD,AWS Pricing API,2025-11-30T08:52:13.247999 +AWS,us-east-2,r6in.8xlarge,reserved_1y,all_upfront,2.091457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:45.197267 +AWS,us-east-2,r6in.8xlarge,reserved_1y,no_upfront,2.091457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:21.895960 +AWS,us-east-2,r6in.8xlarge,reserved_1y,partial_upfront,2.091457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:12.395916 +AWS,us-east-2,r6in.8xlarge,reserved_3y,all_upfront,1.045719,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:53.965948 +AWS,us-east-2,r6in.8xlarge,reserved_3y,no_upfront,1.045719,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:22.455577 +AWS,us-east-2,r6in.8xlarge,reserved_3y,partial_upfront,1.045719,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:23.016529 +AWS,us-east-2,r6in.8xlarge,spot,NA,0.914451,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547114 +AWS,us-east-2,r6in.large,on_demand,NA,0.17433,USD,AWS Pricing API,2025-11-30T08:52:27.970147 +AWS,us-east-2,r6in.large,reserved_1y,all_upfront,0.117922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:59.829618 +AWS,us-east-2,r6in.large,reserved_1y,no_upfront,0.117922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:36.650152 +AWS,us-east-2,r6in.large,reserved_1y,partial_upfront,0.117922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:27.028094 +AWS,us-east-2,r6in.large,reserved_3y,all_upfront,0.039307,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:08.590128 +AWS,us-east-2,r6in.large,reserved_3y,no_upfront,0.039307,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:37.076474 +AWS,us-east-2,r6in.large,reserved_3y,partial_upfront,0.039307,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:37.956607 +AWS,us-east-2,r6in.large,spot,NA,0.027025,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547839 +AWS,us-east-2,r6in.xlarge,on_demand,NA,0.34866,USD,AWS Pricing API,2025-11-30T08:52:25.637260 +AWS,us-east-2,r6in.xlarge,reserved_1y,all_upfront,0.442808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:57.542588 +AWS,us-east-2,r6in.xlarge,reserved_1y,no_upfront,0.442808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:34.330587 +AWS,us-east-2,r6in.xlarge,reserved_1y,partial_upfront,0.442808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:24.725670 +AWS,us-east-2,r6in.xlarge,reserved_3y,all_upfront,0.147603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:06.290228 +AWS,us-east-2,r6in.xlarge,reserved_3y,no_upfront,0.147603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:34.786353 +AWS,us-east-2,r6in.xlarge,reserved_3y,partial_upfront,0.147603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:35.597523 +AWS,us-east-2,r6in.xlarge,spot,NA,0.112821,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547672 +AWS,us-east-2,r7a.48xlarge,on_demand,NA,14.6064,USD,AWS Pricing API,2025-11-30T08:51:25.730218 +AWS,us-east-2,r7a.48xlarge,reserved_1y,all_upfront,10.58234,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:58.233426 +AWS,us-east-2,r7a.48xlarge,reserved_1y,no_upfront,10.58234,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:34.431688 +AWS,us-east-2,r7a.48xlarge,reserved_1y,partial_upfront,10.58234,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:25.568379 +AWS,us-east-2,r7a.48xlarge,reserved_3y,all_upfront,10.58234,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:07.230272 +AWS,us-east-2,r7a.48xlarge,reserved_3y,no_upfront,10.58234,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:35.507750 +AWS,us-east-2,r7a.48xlarge,reserved_3y,partial_upfront,10.58234,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:35.048977 +AWS,us-east-2,r7a.48xlarge,spot,NA,3.809927,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544978 +AWS,us-east-2,r7g.12xlarge,on_demand,NA,2.5704,USD,AWS Pricing API,2025-11-30T08:51:49.914811 +AWS,us-east-2,r7g.12xlarge,reserved_1y,all_upfront,2.483129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:21.882193 +AWS,us-east-2,r7g.12xlarge,reserved_1y,no_upfront,2.483129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:58.560313 +AWS,us-east-2,r7g.12xlarge,reserved_1y,partial_upfront,2.483129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:49.386228 +AWS,us-east-2,r7g.12xlarge,reserved_3y,all_upfront,1.241576,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:30.988147 +AWS,us-east-2,r7g.12xlarge,reserved_3y,no_upfront,1.241576,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:59.224597 +AWS,us-east-2,r7g.12xlarge,reserved_3y,partial_upfront,1.241576,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:59.430019 +AWS,us-east-2,r7g.12xlarge,spot,NA,0.778156,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546033 +AWS,us-east-2,r7g.16xlarge,on_demand,NA,3.4272,USD,AWS Pricing API,2025-11-30T08:51:34.774093 +AWS,us-east-2,r7g.16xlarge,reserved_1y,all_upfront,2.483,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:07.173993 +AWS,us-east-2,r7g.16xlarge,reserved_1y,no_upfront,2.483,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:43.479505 +AWS,us-east-2,r7g.16xlarge,reserved_1y,partial_upfront,2.483,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:34.580758 +AWS,us-east-2,r7g.16xlarge,reserved_3y,all_upfront,2.483,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:16.239570 +AWS,us-east-2,r7g.16xlarge,reserved_3y,no_upfront,2.483,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:44.468172 +AWS,us-east-2,r7g.16xlarge,reserved_3y,partial_upfront,2.483,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:44.205095 +AWS,us-east-2,r7g.16xlarge,spot,NA,0.975585,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545328 +AWS,us-east-2,r7g.2xlarge,on_demand,NA,0.4284,USD,AWS Pricing API,2025-11-30T08:51:43.145225 +AWS,us-east-2,r7g.2xlarge,reserved_1y,all_upfront,0.3104,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:15.261496 +AWS,us-east-2,r7g.2xlarge,reserved_1y,no_upfront,0.3104,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:51.805458 +AWS,us-east-2,r7g.2xlarge,reserved_1y,partial_upfront,0.3104,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:42.724033 +AWS,us-east-2,r7g.2xlarge,reserved_3y,all_upfront,0.3104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:24.330041 +AWS,us-east-2,r7g.2xlarge,reserved_3y,no_upfront,0.3104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:52.601410 +AWS,us-east-2,r7g.2xlarge,reserved_3y,partial_upfront,0.3104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:52.631330 +AWS,us-east-2,r7g.2xlarge,spot,NA,0.155605,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545720 +AWS,us-east-2,r7g.4xlarge,on_demand,NA,0.8568,USD,AWS Pricing API,2025-11-30T08:51:33.411830 +AWS,us-east-2,r7g.4xlarge,reserved_1y,all_upfront,0.591148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:05.826897 +AWS,us-east-2,r7g.4xlarge,reserved_1y,no_upfront,0.591148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:42.107273 +AWS,us-east-2,r7g.4xlarge,reserved_1y,partial_upfront,0.591148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:33.202956 +AWS,us-east-2,r7g.4xlarge,reserved_3y,all_upfront,0.394116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:14.889654 +AWS,us-east-2,r7g.4xlarge,reserved_3y,no_upfront,0.394116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:43.114256 +AWS,us-east-2,r7g.4xlarge,reserved_3y,partial_upfront,0.394116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:42.828939 +AWS,us-east-2,r7g.4xlarge,spot,NA,0.387778,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545286 +AWS,us-east-2,r7g.8xlarge,on_demand,NA,1.7136,USD,AWS Pricing API,2025-11-30T08:52:05.988806 +AWS,us-east-2,r7g.8xlarge,reserved_1y,all_upfront,1.2415,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:37.965570 +AWS,us-east-2,r7g.8xlarge,reserved_1y,no_upfront,1.2415,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:14.638119 +AWS,us-east-2,r7g.8xlarge,reserved_1y,partial_upfront,1.2415,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:05.248217 +AWS,us-east-2,r7g.8xlarge,reserved_3y,all_upfront,1.2415,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:46.804034 +AWS,us-east-2,r7g.8xlarge,reserved_3y,no_upfront,1.2415,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:15.199365 +AWS,us-east-2,r7g.8xlarge,reserved_3y,partial_upfront,1.2415,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:15.633680 +AWS,us-east-2,r7g.8xlarge,spot,NA,0.632898,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546828 +AWS,us-east-2,r7g.large,on_demand,NA,0.1071,USD,AWS Pricing API,2025-11-30T08:52:00.330250 +AWS,us-east-2,r7g.large,reserved_1y,all_upfront,0.0559,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:32.409324 +AWS,us-east-2,r7g.large,reserved_1y,no_upfront,0.0559,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:09.015018 +AWS,us-east-2,r7g.large,reserved_1y,partial_upfront,0.0559,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:59.697593 +AWS,us-east-2,r7g.large,reserved_3y,all_upfront,0.0559,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:41.250174 +AWS,us-east-2,r7g.large,reserved_3y,no_upfront,0.0559,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:09.613728 +AWS,us-east-2,r7g.large,reserved_3y,partial_upfront,0.0559,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:09.976093 +AWS,us-east-2,r7g.large,spot,NA,0.035604,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546559 +AWS,us-east-2,r7g.xlarge,on_demand,NA,0.2142,USD,AWS Pricing API,2025-11-30T08:52:02.808417 +AWS,us-east-2,r7g.xlarge,reserved_1y,all_upfront,0.147758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:34.847168 +AWS,us-east-2,r7g.xlarge,reserved_1y,no_upfront,0.147758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:11.484976 +AWS,us-east-2,r7g.xlarge,reserved_1y,partial_upfront,0.147758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:02.132529 +AWS,us-east-2,r7g.xlarge,reserved_3y,all_upfront,0.098519,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:43.686870 +AWS,us-east-2,r7g.xlarge,reserved_3y,no_upfront,0.098519,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:12.058168 +AWS,us-east-2,r7g.xlarge,reserved_3y,partial_upfront,0.098519,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:12.453444 +AWS,us-east-2,r7g.xlarge,spot,NA,0.076521,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546733 +AWS,us-east-2,r7gd.12xlarge,on_demand,NA,3.2659,USD,AWS Pricing API,2025-11-30T08:52:24.688024 +AWS,us-east-2,r7gd.12xlarge,reserved_1y,all_upfront,2.61356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:56.596814 +AWS,us-east-2,r7gd.12xlarge,reserved_1y,no_upfront,2.61356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:33.379939 +AWS,us-east-2,r7gd.12xlarge,reserved_1y,partial_upfront,2.61356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:23.757157 +AWS,us-east-2,r7gd.12xlarge,reserved_3y,all_upfront,1.306787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:05.349778 +AWS,us-east-2,r7gd.12xlarge,reserved_3y,no_upfront,1.306787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:33.838102 +AWS,us-east-2,r7gd.12xlarge,reserved_3y,partial_upfront,1.306787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:34.630964 +AWS,us-east-2,r7gd.12xlarge,spot,NA,0.925966,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547679 +AWS,us-east-2,r7gd.16xlarge,on_demand,NA,4.3546,USD,AWS Pricing API,2025-11-30T08:52:20.046624 +AWS,us-east-2,r7gd.16xlarge,reserved_1y,all_upfront,2.948744,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:51.982089 +AWS,us-east-2,r7gd.16xlarge,reserved_1y,no_upfront,2.948744,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:28.722806 +AWS,us-east-2,r7gd.16xlarge,reserved_1y,partial_upfront,2.948744,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:19.141377 +AWS,us-east-2,r7gd.16xlarge,reserved_3y,all_upfront,0.982915,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:00.711337 +AWS,us-east-2,r7gd.16xlarge,reserved_3y,no_upfront,0.982915,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:29.228905 +AWS,us-east-2,r7gd.16xlarge,reserved_3y,partial_upfront,0.982915,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:29.919234 +AWS,us-east-2,r7gd.16xlarge,spot,NA,1.030842,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547424 +AWS,us-east-2,r7gd.2xlarge,on_demand,NA,0.5443,USD,AWS Pricing API,2025-11-30T08:51:48.822318 +AWS,us-east-2,r7gd.2xlarge,reserved_1y,all_upfront,0.368607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:20.809549 +AWS,us-east-2,r7gd.2xlarge,reserved_1y,no_upfront,0.368607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:57.465984 +AWS,us-east-2,r7gd.2xlarge,reserved_1y,partial_upfront,0.368607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:48.299849 +AWS,us-east-2,r7gd.2xlarge,reserved_3y,all_upfront,0.122869,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:29.900026 +AWS,us-east-2,r7gd.2xlarge,reserved_3y,no_upfront,0.122869,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:58.145429 +AWS,us-east-2,r7gd.2xlarge,reserved_3y,partial_upfront,0.122869,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:58.311567 +AWS,us-east-2,r7gd.2xlarge,spot,NA,0.25405,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545996 +AWS,us-east-2,r7gd.4xlarge,on_demand,NA,1.0886,USD,AWS Pricing API,2025-11-30T08:52:09.409071 +AWS,us-east-2,r7gd.4xlarge,reserved_1y,all_upfront,0.7898,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:41.396651 +AWS,us-east-2,r7gd.4xlarge,reserved_1y,no_upfront,0.7898,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:18.058160 +AWS,us-east-2,r7gd.4xlarge,reserved_1y,partial_upfront,0.7898,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:08.617337 +AWS,us-east-2,r7gd.4xlarge,reserved_3y,all_upfront,0.7898,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:50.179186 +AWS,us-east-2,r7gd.4xlarge,reserved_3y,no_upfront,0.7898,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:18.630659 +AWS,us-east-2,r7gd.4xlarge,reserved_3y,partial_upfront,0.7898,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:19.120951 +AWS,us-east-2,r7gd.4xlarge,spot,NA,0.486266,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546992 +AWS,us-east-2,r7gd.8xlarge,on_demand,NA,2.1773,USD,AWS Pricing API,2025-11-30T08:52:03.368352 +AWS,us-east-2,r7gd.8xlarge,reserved_1y,all_upfront,1.5797,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:35.394171 +AWS,us-east-2,r7gd.8xlarge,reserved_1y,no_upfront,1.5797,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:12.028469 +AWS,us-east-2,r7gd.8xlarge,reserved_1y,partial_upfront,1.5797,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:02.677021 +AWS,us-east-2,r7gd.8xlarge,reserved_3y,all_upfront,1.5797,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:44.222300 +AWS,us-east-2,r7gd.8xlarge,reserved_3y,no_upfront,1.5797,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:12.614160 +AWS,us-east-2,r7gd.8xlarge,reserved_3y,partial_upfront,1.5797,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:13.005477 +AWS,us-east-2,r7gd.8xlarge,spot,NA,0.774226,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546708 +AWS,us-east-2,r7gd.large,on_demand,NA,0.1361,USD,AWS Pricing API,2025-11-30T08:51:27.103690 +AWS,us-east-2,r7gd.large,reserved_1y,all_upfront,0.190297,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:59.591618 +AWS,us-east-2,r7gd.large,reserved_1y,no_upfront,0.190297,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:35.801795 +AWS,us-east-2,r7gd.large,reserved_1y,partial_upfront,0.190297,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:26.934801 +AWS,us-east-2,r7gd.large,reserved_3y,all_upfront,0.063432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:08.588217 +AWS,us-east-2,r7gd.large,reserved_3y,no_upfront,0.063432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:36.869192 +AWS,us-east-2,r7gd.large,reserved_3y,partial_upfront,0.063432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:36.430256 +AWS,us-east-2,r7gd.large,spot,NA,0.037027,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545068 +AWS,us-east-2,r7gd.xlarge,on_demand,NA,0.2722,USD,AWS Pricing API,2025-11-30T08:51:36.752041 +AWS,us-east-2,r7gd.xlarge,reserved_1y,all_upfront,0.159589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:09.061440 +AWS,us-east-2,r7gd.xlarge,reserved_1y,no_upfront,0.159589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:45.402871 +AWS,us-east-2,r7gd.xlarge,reserved_1y,partial_upfront,0.159589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:36.477410 +AWS,us-east-2,r7gd.xlarge,reserved_3y,all_upfront,0.053196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:18.120842 +AWS,us-east-2,r7gd.xlarge,reserved_3y,no_upfront,0.053196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:46.370647 +AWS,us-east-2,r7gd.xlarge,reserved_3y,partial_upfront,0.053196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:46.173501 +AWS,us-east-2,r7gd.xlarge,spot,NA,0.092752,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545476 +AWS,us-east-2,r7i.12xlarge,on_demand,NA,3.1752,USD,AWS Pricing API,2025-11-30T08:52:12.425556 +AWS,us-east-2,r7i.12xlarge,reserved_1y,all_upfront,2.000418,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:44.382348 +AWS,us-east-2,r7i.12xlarge,reserved_1y,no_upfront,2.000418,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:21.068383 +AWS,us-east-2,r7i.12xlarge,reserved_1y,partial_upfront,2.000418,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:11.589799 +AWS,us-east-2,r7i.12xlarge,reserved_3y,all_upfront,1.333599,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:53.150395 +AWS,us-east-2,r7i.12xlarge,reserved_3y,no_upfront,1.333599,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:21.646869 +AWS,us-east-2,r7i.12xlarge,reserved_3y,partial_upfront,1.333599,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:22.182995 +AWS,us-east-2,r7i.12xlarge,spot,NA,1.212718,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547140 +AWS,us-east-2,r7i.16xlarge,on_demand,NA,4.2336,USD,AWS Pricing API,2025-11-30T08:52:10.509640 +AWS,us-east-2,r7i.16xlarge,reserved_1y,all_upfront,6.011758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:42.479540 +AWS,us-east-2,r7i.16xlarge,reserved_1y,no_upfront,6.011758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:19.159158 +AWS,us-east-2,r7i.16xlarge,reserved_1y,partial_upfront,6.011758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:09.696605 +AWS,us-east-2,r7i.16xlarge,reserved_3y,all_upfront,2.003919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:51.261940 +AWS,us-east-2,r7i.16xlarge,reserved_3y,no_upfront,2.003919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:19.717642 +AWS,us-east-2,r7i.16xlarge,reserved_3y,partial_upfront,2.003919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:20.229226 +AWS,us-east-2,r7i.16xlarge,spot,NA,1.520356,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546986 +AWS,us-east-2,r7i.24xlarge,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T08:52:07.219717 +AWS,us-east-2,r7i.24xlarge,reserved_1y,all_upfront,4.20079,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:39.218186 +AWS,us-east-2,r7i.24xlarge,reserved_1y,no_upfront,4.20079,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:15.870160 +AWS,us-east-2,r7i.24xlarge,reserved_1y,partial_upfront,4.20079,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:06.463385 +AWS,us-east-2,r7i.24xlarge,reserved_3y,all_upfront,4.20079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:48.028819 +AWS,us-east-2,r7i.24xlarge,reserved_3y,no_upfront,4.20079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:16.410944 +AWS,us-east-2,r7i.24xlarge,reserved_3y,partial_upfront,4.20079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:16.890559 +AWS,us-east-2,r7i.24xlarge,spot,NA,1.95798,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546872 +AWS,us-east-2,r7i.2xlarge,on_demand,NA,0.5292,USD,AWS Pricing API,2025-11-30T08:52:09.544375 +AWS,us-east-2,r7i.2xlarge,reserved_1y,all_upfront,0.38341,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:41.530827 +AWS,us-east-2,r7i.2xlarge,reserved_1y,no_upfront,0.38341,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:18.197059 +AWS,us-east-2,r7i.2xlarge,reserved_1y,partial_upfront,0.38341,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:08.749999 +AWS,us-east-2,r7i.2xlarge,reserved_3y,all_upfront,0.38341,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:50.312984 +AWS,us-east-2,r7i.2xlarge,reserved_3y,no_upfront,0.38341,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:18.767635 +AWS,us-east-2,r7i.2xlarge,reserved_3y,partial_upfront,0.38341,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:19.260796 +AWS,us-east-2,r7i.2xlarge,spot,NA,0.232689,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547005 +AWS,us-east-2,r7i.48xlarge,on_demand,NA,12.7008,USD,AWS Pricing API,2025-11-30T08:52:30.190268 +AWS,us-east-2,r7i.48xlarge,reserved_1y,all_upfront,9.20173,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:02.071081 +AWS,us-east-2,r7i.48xlarge,reserved_1y,no_upfront,9.20173,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:38.859880 +AWS,us-east-2,r7i.48xlarge,reserved_1y,partial_upfront,9.20173,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:29.195044 +AWS,us-east-2,r7i.48xlarge,reserved_3y,all_upfront,9.20173,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:10.751681 +AWS,us-east-2,r7i.48xlarge,reserved_3y,no_upfront,9.20173,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:39.253946 +AWS,us-east-2,r7i.48xlarge,reserved_3y,partial_upfront,9.20173,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:40.184399 +AWS,us-east-2,r7i.48xlarge,spot,NA,3.750948,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547961 +AWS,us-east-2,r7i.4xlarge,on_demand,NA,1.0584,USD,AWS Pricing API,2025-11-30T08:52:07.082762 +AWS,us-east-2,r7i.4xlarge,reserved_1y,all_upfront,0.653425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:39.069460 +AWS,us-east-2,r7i.4xlarge,reserved_1y,no_upfront,0.653425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:15.735948 +AWS,us-east-2,r7i.4xlarge,reserved_1y,partial_upfront,0.653425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:06.330604 +AWS,us-east-2,r7i.4xlarge,reserved_3y,all_upfront,0.217808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:47.895107 +AWS,us-east-2,r7i.4xlarge,reserved_3y,no_upfront,0.217808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:16.274578 +AWS,us-east-2,r7i.4xlarge,reserved_3y,partial_upfront,0.217808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:16.753794 +AWS,us-east-2,r7i.4xlarge,spot,NA,0.400098,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546917 +AWS,us-east-2,r7i.8xlarge,on_demand,NA,2.1168,USD,AWS Pricing API,2025-11-30T08:51:23.142403 +AWS,us-east-2,r7i.8xlarge,reserved_1y,all_upfront,1.306963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:55.649431 +AWS,us-east-2,r7i.8xlarge,reserved_1y,no_upfront,1.306963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:31.823200 +AWS,us-east-2,r7i.8xlarge,reserved_1y,partial_upfront,1.306963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:23.002870 +AWS,us-east-2,r7i.8xlarge,reserved_3y,all_upfront,0.435654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:04.656114 +AWS,us-east-2,r7i.8xlarge,reserved_3y,no_upfront,0.435654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:32.915655 +AWS,us-east-2,r7i.8xlarge,reserved_3y,partial_upfront,0.435654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:32.411166 +AWS,us-east-2,r7i.8xlarge,spot,NA,0.777592,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544887 +AWS,us-east-2,r7i.large,on_demand,NA,0.1323,USD,AWS Pricing API,2025-11-30T08:51:37.563977 +AWS,us-east-2,r7i.large,reserved_1y,all_upfront,0.089498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:09.866315 +AWS,us-east-2,r7i.large,reserved_1y,no_upfront,0.089498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:46.219111 +AWS,us-east-2,r7i.large,reserved_1y,partial_upfront,0.089498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:37.286974 +AWS,us-east-2,r7i.large,reserved_3y,all_upfront,0.029833,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:18.932906 +AWS,us-east-2,r7i.large,reserved_3y,no_upfront,0.029833,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:47.178234 +AWS,us-east-2,r7i.large,reserved_3y,partial_upfront,0.029833,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:47.011033 +AWS,us-east-2,r7i.large,spot,NA,0.03957,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545464 +AWS,us-east-2,r7i.metal-24xl,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T08:51:54.040214 +AWS,us-east-2,r7i.metal-24xl,reserved_1y,all_upfront,5.334379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:25.955402 +AWS,us-east-2,r7i.metal-24xl,reserved_1y,no_upfront,5.334379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:02.701230 +AWS,us-east-2,r7i.metal-24xl,reserved_1y,partial_upfront,5.334379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:53.483687 +AWS,us-east-2,r7i.metal-24xl,reserved_3y,all_upfront,2.66718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:35.032133 +AWS,us-east-2,r7i.metal-24xl,reserved_3y,no_upfront,2.66718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:03.355504 +AWS,us-east-2,r7i.metal-24xl,reserved_3y,partial_upfront,2.66718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:03.604502 +AWS,us-east-2,r7i.metal-24xl,spot,NA,1.949471,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546205 +AWS,us-east-2,r7i.metal-48xl,on_demand,NA,12.7008,USD,AWS Pricing API,2025-11-30T08:52:13.923068 +AWS,us-east-2,r7i.metal-48xl,reserved_1y,all_upfront,8.763515,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:45.878795 +AWS,us-east-2,r7i.metal-48xl,reserved_1y,no_upfront,8.763515,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:22.574989 +AWS,us-east-2,r7i.metal-48xl,reserved_1y,partial_upfront,8.763515,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:13.077617 +AWS,us-east-2,r7i.metal-48xl,reserved_3y,all_upfront,5.842358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:54.630834 +AWS,us-east-2,r7i.metal-48xl,reserved_3y,no_upfront,5.842358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:23.132478 +AWS,us-east-2,r7i.metal-48xl,reserved_3y,partial_upfront,5.842358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:23.720862 +AWS,us-east-2,r7i.metal-48xl,spot,NA,3.312632,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547226 +AWS,us-east-2,r7i.xlarge,on_demand,NA,0.2646,USD,AWS Pricing API,2025-11-30T08:51:49.367044 +AWS,us-east-2,r7i.xlarge,reserved_1y,all_upfront,0.17503,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:21.343816 +AWS,us-east-2,r7i.xlarge,reserved_1y,no_upfront,0.17503,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:58.008790 +AWS,us-east-2,r7i.xlarge,reserved_1y,partial_upfront,0.17503,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:48.837057 +AWS,us-east-2,r7i.xlarge,reserved_3y,all_upfront,0.17503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:30.445723 +AWS,us-east-2,r7i.xlarge,reserved_3y,no_upfront,0.17503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:58.681669 +AWS,us-east-2,r7i.xlarge,reserved_3y,partial_upfront,0.17503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:58.856578 +AWS,us-east-2,r7i.xlarge,spot,NA,0.100773,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546040 +AWS,us-east-2,r7iz.12xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:52:05.045670 +AWS,us-east-2,r7iz.12xlarge,reserved_1y,all_upfront,3.92784,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:37.016746 +AWS,us-east-2,r7iz.12xlarge,reserved_1y,no_upfront,3.92784,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:13.679002 +AWS,us-east-2,r7iz.12xlarge,reserved_1y,partial_upfront,3.92784,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:04.301285 +AWS,us-east-2,r7iz.12xlarge,reserved_3y,all_upfront,1.963913,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:45.856990 +AWS,us-east-2,r7iz.12xlarge,reserved_3y,no_upfront,1.963913,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:14.252417 +AWS,us-east-2,r7iz.12xlarge,reserved_3y,partial_upfront,1.963913,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:14.667792 +AWS,us-east-2,r7iz.12xlarge,spot,NA,1.847682,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546740 +AWS,us-east-2,r7iz.16xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T08:52:29.776136 +AWS,us-east-2,r7iz.16xlarge,reserved_1y,all_upfront,2.45446,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:01.614532 +AWS,us-east-2,r7iz.16xlarge,reserved_1y,no_upfront,2.45446,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:38.433928 +AWS,us-east-2,r7iz.16xlarge,reserved_1y,partial_upfront,2.45446,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:28.789167 +AWS,us-east-2,r7iz.16xlarge,reserved_3y,all_upfront,2.45446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:10.337116 +AWS,us-east-2,r7iz.16xlarge,reserved_3y,no_upfront,2.45446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:38.845959 +AWS,us-east-2,r7iz.16xlarge,reserved_3y,partial_upfront,2.45446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:39.774171 +AWS,us-east-2,r7iz.16xlarge,spot,NA,2.525933,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547897 +AWS,us-east-2,r7iz.2xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T08:52:09.688178 +AWS,us-east-2,r7iz.2xlarge,reserved_1y,all_upfront,0.446374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:41.666753 +AWS,us-east-2,r7iz.2xlarge,reserved_1y,no_upfront,0.446374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:18.331784 +AWS,us-east-2,r7iz.2xlarge,reserved_1y,partial_upfront,0.446374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:08.885587 +AWS,us-east-2,r7iz.2xlarge,reserved_3y,all_upfront,0.297591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:50.460311 +AWS,us-east-2,r7iz.2xlarge,reserved_3y,no_upfront,0.297591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:18.901443 +AWS,us-east-2,r7iz.2xlarge,reserved_3y,partial_upfront,0.297591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:19.399651 +AWS,us-east-2,r7iz.2xlarge,spot,NA,0.33496,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547043 +AWS,us-east-2,r7iz.32xlarge,on_demand,NA,11.904,USD,AWS Pricing API,2025-11-30T08:52:27.834263 +AWS,us-east-2,r7iz.32xlarge,reserved_1y,all_upfront,7.142433,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:59.694184 +AWS,us-east-2,r7iz.32xlarge,reserved_1y,no_upfront,7.142433,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:36.516107 +AWS,us-east-2,r7iz.32xlarge,reserved_1y,partial_upfront,7.142433,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:26.894820 +AWS,us-east-2,r7iz.32xlarge,reserved_3y,all_upfront,4.761611,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:08.455490 +AWS,us-east-2,r7iz.32xlarge,reserved_3y,no_upfront,4.761611,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:36.941223 +AWS,us-east-2,r7iz.32xlarge,reserved_3y,partial_upfront,4.761611,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:37.816009 +AWS,us-east-2,r7iz.32xlarge,spot,NA,3.987967,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547794 +AWS,us-east-2,r7iz.4xlarge,on_demand,NA,1.488,USD,AWS Pricing API,2025-11-30T08:52:25.910107 +AWS,us-east-2,r7iz.4xlarge,reserved_1y,all_upfront,0.875,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:57.812150 +AWS,us-east-2,r7iz.4xlarge,reserved_1y,no_upfront,0.875,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:34.600541 +AWS,us-east-2,r7iz.4xlarge,reserved_1y,partial_upfront,0.875,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:25.004059 +AWS,us-east-2,r7iz.4xlarge,reserved_3y,all_upfront,0.291667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:06.564333 +AWS,us-east-2,r7iz.4xlarge,reserved_3y,no_upfront,0.291667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:35.058965 +AWS,us-east-2,r7iz.4xlarge,reserved_3y,partial_upfront,0.291667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:35.873692 +AWS,us-east-2,r7iz.4xlarge,spot,NA,0.575549,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547755 +AWS,us-east-2,r7iz.8xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T08:51:28.197508 +AWS,us-east-2,r7iz.8xlarge,reserved_1y,all_upfront,3.204452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:00.671784 +AWS,us-east-2,r7iz.8xlarge,reserved_1y,no_upfront,3.204452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:36.906267 +AWS,us-east-2,r7iz.8xlarge,reserved_1y,partial_upfront,3.204452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:28.026575 +AWS,us-east-2,r7iz.8xlarge,reserved_3y,all_upfront,1.068151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:09.670977 +AWS,us-east-2,r7iz.8xlarge,reserved_3y,no_upfront,1.068151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:37.948550 +AWS,us-east-2,r7iz.8xlarge,reserved_3y,partial_upfront,1.068151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:37.540161 +AWS,us-east-2,r7iz.8xlarge,spot,NA,1.191928,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545093 +AWS,us-east-2,r7iz.xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T08:52:14.606781 +AWS,us-east-2,r7iz.xlarge,reserved_1y,all_upfront,0.223244,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:46.569982 +AWS,us-east-2,r7iz.xlarge,reserved_1y,no_upfront,0.223244,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:23.257816 +AWS,us-east-2,r7iz.xlarge,reserved_1y,partial_upfront,0.223244,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:13.753530 +AWS,us-east-2,r7iz.xlarge,reserved_3y,all_upfront,0.148815,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:55.299390 +AWS,us-east-2,r7iz.xlarge,reserved_3y,no_upfront,0.148815,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:23.811476 +AWS,us-east-2,r7iz.xlarge,reserved_3y,partial_upfront,0.148815,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:24.413780 +AWS,us-east-2,r7iz.xlarge,spot,NA,0.143106,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547220 +AWS,us-east-2,r8g.12xlarge,on_demand,NA,2.82768,USD,AWS Pricing API,2025-11-30T08:51:56.210319 +AWS,us-east-2,r8g.12xlarge,reserved_1y,all_upfront,1.781473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:28.324520 +AWS,us-east-2,r8g.12xlarge,reserved_1y,no_upfront,1.781473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:04.882385 +AWS,us-east-2,r8g.12xlarge,reserved_1y,partial_upfront,1.781473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:55.628832 +AWS,us-east-2,r8g.12xlarge,reserved_3y,all_upfront,1.187638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:37.187078 +AWS,us-east-2,r8g.12xlarge,reserved_3y,no_upfront,1.187638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:05.555138 +AWS,us-east-2,r8g.12xlarge,reserved_3y,partial_upfront,1.187638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:05.815469 +AWS,us-east-2,r8g.12xlarge,spot,NA,0.935486,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546340 +AWS,us-east-2,r8g.16xlarge,on_demand,NA,3.77024,USD,AWS Pricing API,2025-11-30T08:52:19.505795 +AWS,us-east-2,r8g.16xlarge,reserved_1y,all_upfront,1.96677,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:51.445151 +AWS,us-east-2,r8g.16xlarge,reserved_1y,no_upfront,1.96677,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:28.173905 +AWS,us-east-2,r8g.16xlarge,reserved_1y,partial_upfront,1.96677,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:18.598385 +AWS,us-east-2,r8g.16xlarge,reserved_3y,all_upfront,1.96677,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:00.165757 +AWS,us-east-2,r8g.16xlarge,reserved_3y,no_upfront,1.96677,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:28.689124 +AWS,us-east-2,r8g.16xlarge,reserved_3y,partial_upfront,1.96677,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:29.359493 +AWS,us-east-2,r8g.16xlarge,spot,NA,1.245801,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547437 +AWS,us-east-2,r8g.24xlarge,on_demand,NA,5.65536,USD,AWS Pricing API,2025-11-30T08:51:47.425006 +AWS,us-east-2,r8g.24xlarge,reserved_1y,all_upfront,3.902242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:19.467595 +AWS,us-east-2,r8g.24xlarge,reserved_1y,no_upfront,3.902242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:56.090610 +AWS,us-east-2,r8g.24xlarge,reserved_1y,partial_upfront,3.902242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:46.950348 +AWS,us-east-2,r8g.24xlarge,reserved_3y,all_upfront,2.601481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:28.529654 +AWS,us-east-2,r8g.24xlarge,reserved_3y,no_upfront,2.601481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:56.797394 +AWS,us-east-2,r8g.24xlarge,reserved_3y,partial_upfront,2.601481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:56.938540 +AWS,us-east-2,r8g.24xlarge,spot,NA,1.384948,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545929 +AWS,us-east-2,r8g.2xlarge,on_demand,NA,0.47128,USD,AWS Pricing API,2025-11-30T08:52:00.056108 +AWS,us-east-2,r8g.2xlarge,reserved_1y,all_upfront,0.325147,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:32.137405 +AWS,us-east-2,r8g.2xlarge,reserved_1y,no_upfront,0.325147,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:08.734381 +AWS,us-east-2,r8g.2xlarge,reserved_1y,partial_upfront,0.325147,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:59.425337 +AWS,us-east-2,r8g.2xlarge,reserved_3y,all_upfront,0.216776,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:40.964501 +AWS,us-east-2,r8g.2xlarge,reserved_3y,no_upfront,0.216776,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:09.341050 +AWS,us-east-2,r8g.2xlarge,reserved_3y,partial_upfront,0.216776,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:09.697855 +AWS,us-east-2,r8g.2xlarge,spot,NA,0.183289,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546546 +AWS,us-east-2,r8g.48xlarge,on_demand,NA,11.31072,USD,AWS Pricing API,2025-11-30T08:51:45.921209 +AWS,us-east-2,r8g.48xlarge,reserved_1y,all_upfront,7.804369,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:17.959979 +AWS,us-east-2,r8g.48xlarge,reserved_1y,no_upfront,7.804369,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:54.587922 +AWS,us-east-2,r8g.48xlarge,reserved_1y,partial_upfront,7.804369,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:45.448013 +AWS,us-east-2,r8g.48xlarge,reserved_3y,all_upfront,5.202923,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:27.042801 +AWS,us-east-2,r8g.48xlarge,reserved_3y,no_upfront,5.202923,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:55.306168 +AWS,us-east-2,r8g.48xlarge,reserved_3y,partial_upfront,5.202923,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:55.418003 +AWS,us-east-2,r8g.48xlarge,spot,NA,3.021917,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545842 +AWS,us-east-2,r8g.4xlarge,on_demand,NA,0.94256,USD,AWS Pricing API,2025-11-30T08:52:04.599230 +AWS,us-east-2,r8g.4xlarge,reserved_1y,all_upfront,0.68288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:36.608209 +AWS,us-east-2,r8g.4xlarge,reserved_1y,no_upfront,0.68288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:13.269694 +AWS,us-east-2,r8g.4xlarge,reserved_1y,partial_upfront,0.68288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:03.892113 +AWS,us-east-2,r8g.4xlarge,reserved_3y,all_upfront,0.68288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:45.453740 +AWS,us-east-2,r8g.4xlarge,reserved_3y,no_upfront,0.68288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:13.846154 +AWS,us-east-2,r8g.4xlarge,reserved_3y,partial_upfront,0.68288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:14.255321 +AWS,us-east-2,r8g.4xlarge,spot,NA,0.505756,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546784 +AWS,us-east-2,r8g.8xlarge,on_demand,NA,1.88512,USD,AWS Pricing API,2025-11-30T08:51:24.640034 +AWS,us-east-2,r8g.8xlarge,reserved_1y,all_upfront,1.36577,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:57.153804 +AWS,us-east-2,r8g.8xlarge,reserved_1y,no_upfront,1.36577,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:33.336419 +AWS,us-east-2,r8g.8xlarge,reserved_1y,partial_upfront,1.36577,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:24.478304 +AWS,us-east-2,r8g.8xlarge,reserved_3y,all_upfront,1.36577,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:06.145231 +AWS,us-east-2,r8g.8xlarge,reserved_3y,no_upfront,1.36577,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:34.416980 +AWS,us-east-2,r8g.8xlarge,reserved_3y,partial_upfront,1.36577,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:33.950180 +AWS,us-east-2,r8g.8xlarge,spot,NA,0.738838,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544932 +AWS,us-east-2,r8g.large,on_demand,NA,0.11782,USD,AWS Pricing API,2025-11-30T08:52:03.089964 +AWS,us-east-2,r8g.large,reserved_1y,all_upfront,0.08536,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:35.122132 +AWS,us-east-2,r8g.large,reserved_1y,no_upfront,0.08536,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:11.757691 +AWS,us-east-2,r8g.large,reserved_1y,partial_upfront,0.08536,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:02.406604 +AWS,us-east-2,r8g.large,reserved_3y,all_upfront,0.08536,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:43.954225 +AWS,us-east-2,r8g.large,reserved_3y,no_upfront,0.08536,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:12.338456 +AWS,us-east-2,r8g.large,reserved_3y,partial_upfront,0.08536,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:12.728106 +AWS,us-east-2,r8g.large,spot,NA,0.035489,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546727 +AWS,us-east-2,r8g.xlarge,on_demand,NA,0.23564,USD,AWS Pricing API,2025-11-30T08:51:45.514286 +AWS,us-east-2,r8g.xlarge,reserved_1y,all_upfront,0.17072,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:17.554165 +AWS,us-east-2,r8g.xlarge,reserved_1y,no_upfront,0.17072,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:54.178605 +AWS,us-east-2,r8g.xlarge,reserved_1y,partial_upfront,0.17072,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:45.034320 +AWS,us-east-2,r8g.xlarge,reserved_3y,all_upfront,0.17072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:26.638492 +AWS,us-east-2,r8g.xlarge,reserved_3y,no_upfront,0.17072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:54.902475 +AWS,us-east-2,r8g.xlarge,reserved_3y,partial_upfront,0.17072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:54.985526 +AWS,us-east-2,r8g.xlarge,spot,NA,0.092367,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545818 +AWS,us-east-2,r8gd.12xlarge,on_demand,NA,3.52704,USD,AWS Pricing API,2025-11-30T08:52:03.910933 +AWS,us-east-2,r8gd.12xlarge,spot,NA,0.936358,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546753 +AWS,us-east-2,r8gd.16xlarge,on_demand,NA,4.70272,USD,AWS Pricing API,2025-11-30T08:51:52.117455 +AWS,us-east-2,r8gd.16xlarge,spot,NA,1.220073,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546155 +AWS,us-east-2,r8gd.24xlarge,on_demand,NA,7.05408,USD,AWS Pricing API,2025-11-30T08:51:39.227641 +AWS,us-east-2,r8gd.24xlarge,spot,NA,1.273476,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545608 +AWS,us-east-2,r8gd.2xlarge,on_demand,NA,0.58784,USD,AWS Pricing API,2025-11-30T08:51:44.953482 +AWS,us-east-2,r8gd.2xlarge,spot,NA,0.173884,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545824 +AWS,us-east-2,r8gd.48xlarge,on_demand,NA,14.10816,USD,AWS Pricing API,2025-11-30T08:52:19.234506 +AWS,us-east-2,r8gd.48xlarge,spot,NA,4.363722,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547469 +AWS,us-east-2,r8gd.4xlarge,on_demand,NA,1.17568,USD,AWS Pricing API,2025-11-30T08:52:13.652409 +AWS,us-east-2,r8gd.4xlarge,spot,NA,0.371473,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547233 +AWS,us-east-2,r8gd.8xlarge,on_demand,NA,2.35136,USD,AWS Pricing API,2025-11-30T08:51:40.925246 +AWS,us-east-2,r8gd.8xlarge,spot,NA,0.737868,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545645 +AWS,us-east-2,r8gd.large,on_demand,NA,0.14696,USD,AWS Pricing API,2025-11-30T08:51:33.679908 +AWS,us-east-2,r8gd.large,spot,NA,0.034984,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545365 +AWS,us-east-2,r8gd.xlarge,on_demand,NA,0.29392,USD,AWS Pricing API,2025-11-30T08:51:34.502781 +AWS,us-east-2,r8gd.xlarge,spot,NA,0.077246,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545322 +AWS,us-east-2,r8i.12xlarge,on_demand,NA,3.33408,USD,AWS Pricing API,2025-11-30T08:51:40.787978 +AWS,us-east-2,r8i.12xlarge,spot,NA,0.925205,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545683 +AWS,us-east-2,r8i.16xlarge,on_demand,NA,4.44544,USD,AWS Pricing API,2025-11-30T08:52:13.381320 +AWS,us-east-2,r8i.16xlarge,spot,NA,1.223479,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547127 +AWS,us-east-2,r8i.24xlarge,on_demand,NA,6.66816,USD,AWS Pricing API,2025-11-30T08:52:19.099287 +AWS,us-east-2,r8i.24xlarge,spot,NA,1.734639,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547463 +AWS,us-east-2,r8i.2xlarge,on_demand,NA,0.55568,USD,AWS Pricing API,2025-11-30T08:52:07.356690 +AWS,us-east-2,r8i.2xlarge,spot,NA,0.17046,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546866 +AWS,us-east-2,r8i.48xlarge,on_demand,NA,13.33632,USD,AWS Pricing API,2025-11-30T08:52:26.465454 +AWS,us-east-2,r8i.48xlarge,spot,NA,3.195578,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547749 +AWS,us-east-2,r8i.4xlarge,on_demand,NA,1.11136,USD,AWS Pricing API,2025-11-30T08:52:02.674901 +AWS,us-east-2,r8i.4xlarge,spot,NA,0.319836,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546714 +AWS,us-east-2,r8i.8xlarge,on_demand,NA,2.22272,USD,AWS Pricing API,2025-11-30T08:51:55.798812 +AWS,us-east-2,r8i.8xlarge,spot,NA,0.594075,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546377 +AWS,us-east-2,r8i.large,on_demand,NA,0.13892,USD,AWS Pricing API,2025-11-30T08:51:19.714506 +AWS,us-east-2,r8i.large,spot,NA,0.030585,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544694 +AWS,us-east-2,r8i.xlarge,on_demand,NA,0.27784,USD,AWS Pricing API,2025-11-30T08:51:29.985910 +AWS,us-east-2,r8i.xlarge,spot,NA,0.071209,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545144 +AWS,us-east-2,x2gd.12xlarge,on_demand,NA,4.008,USD,AWS Pricing API,2025-11-30T08:52:05.852835 +AWS,us-east-2,x2gd.12xlarge,reserved_1y,all_upfront,2.305251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:37.829623 +AWS,us-east-2,x2gd.12xlarge,reserved_1y,no_upfront,2.305251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:14.501230 +AWS,us-east-2,x2gd.12xlarge,reserved_1y,partial_upfront,2.305251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:05.113269 +AWS,us-east-2,x2gd.12xlarge,reserved_3y,all_upfront,0.768417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:46.671158 +AWS,us-east-2,x2gd.12xlarge,reserved_3y,no_upfront,0.768417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:15.067803 +AWS,us-east-2,x2gd.12xlarge,reserved_3y,partial_upfront,0.768417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:15.497942 +AWS,us-east-2,x2gd.12xlarge,spot,NA,1.266711,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546803 +AWS,us-east-2,x2gd.16xlarge,on_demand,NA,5.344,USD,AWS Pricing API,2025-11-30T08:52:14.741706 +AWS,us-east-2,x2gd.16xlarge,reserved_1y,all_upfront,3.2932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:46.705527 +AWS,us-east-2,x2gd.16xlarge,reserved_1y,no_upfront,3.2932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:23.393770 +AWS,us-east-2,x2gd.16xlarge,reserved_1y,partial_upfront,3.2932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:13.887162 +AWS,us-east-2,x2gd.16xlarge,reserved_3y,all_upfront,3.2932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:55.433084 +AWS,us-east-2,x2gd.16xlarge,reserved_3y,no_upfront,3.2932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:23.946015 +AWS,us-east-2,x2gd.16xlarge,reserved_3y,partial_upfront,3.2932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:24.553447 +AWS,us-east-2,x2gd.16xlarge,spot,NA,1.897113,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547183 +AWS,us-east-2,x2gd.2xlarge,on_demand,NA,0.668,USD,AWS Pricing API,2025-11-30T08:51:57.170161 +AWS,us-east-2,x2gd.2xlarge,reserved_1y,all_upfront,0.494,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:29.279326 +AWS,us-east-2,x2gd.2xlarge,reserved_1y,no_upfront,0.494,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:05.865557 +AWS,us-east-2,x2gd.2xlarge,reserved_1y,partial_upfront,0.494,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:56.576466 +AWS,us-east-2,x2gd.2xlarge,reserved_3y,all_upfront,0.494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:38.137153 +AWS,us-east-2,x2gd.2xlarge,reserved_3y,no_upfront,0.494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:06.505320 +AWS,us-east-2,x2gd.2xlarge,reserved_3y,partial_upfront,0.494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:06.789397 +AWS,us-east-2,x2gd.2xlarge,spot,NA,0.201786,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.546403 +AWS,us-east-2,x2gd.4xlarge,on_demand,NA,1.336,USD,AWS Pricing API,2025-11-30T08:52:24.281306 +AWS,us-east-2,x2gd.4xlarge,reserved_1y,all_upfront,0.922146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:56.194231 +AWS,us-east-2,x2gd.4xlarge,reserved_1y,no_upfront,0.922146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:32.971836 +AWS,us-east-2,x2gd.4xlarge,reserved_1y,partial_upfront,0.922146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:23.353565 +AWS,us-east-2,x2gd.4xlarge,reserved_3y,all_upfront,0.307382,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:04.940280 +AWS,us-east-2,x2gd.4xlarge,reserved_3y,no_upfront,0.307382,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:33.435441 +AWS,us-east-2,x2gd.4xlarge,reserved_3y,partial_upfront,0.307382,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:34.218842 +AWS,us-east-2,x2gd.4xlarge,spot,NA,0.481485,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547666 +AWS,us-east-2,x2gd.8xlarge,on_demand,NA,2.672,USD,AWS Pricing API,2025-11-30T08:52:15.698576 +AWS,us-east-2,x2gd.8xlarge,reserved_1y,all_upfront,1.690294,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:47.655013 +AWS,us-east-2,x2gd.8xlarge,reserved_1y,no_upfront,1.690294,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:24.360261 +AWS,us-east-2,x2gd.8xlarge,reserved_1y,partial_upfront,1.690294,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:14.831213 +AWS,us-east-2,x2gd.8xlarge,reserved_3y,all_upfront,0.845165,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:56.382801 +AWS,us-east-2,x2gd.8xlarge,reserved_3y,no_upfront,0.845165,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:24.890810 +AWS,us-east-2,x2gd.8xlarge,reserved_3y,partial_upfront,0.845165,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:25.510847 +AWS,us-east-2,x2gd.8xlarge,spot,NA,0.914149,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547277 +AWS,us-east-2,x2gd.large,on_demand,NA,0.167,USD,AWS Pricing API,2025-11-30T08:52:16.645843 +AWS,us-east-2,x2gd.large,reserved_1y,all_upfront,0.0685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:48.605579 +AWS,us-east-2,x2gd.large,reserved_1y,no_upfront,0.0685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:25.316080 +AWS,us-east-2,x2gd.large,reserved_1y,partial_upfront,0.0685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:15.771230 +AWS,us-east-2,x2gd.large,reserved_3y,all_upfront,0.0685,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:57.322666 +AWS,us-east-2,x2gd.large,reserved_3y,no_upfront,0.0685,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:25.836912 +AWS,us-east-2,x2gd.large,reserved_3y,partial_upfront,0.0685,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:26.476026 +AWS,us-east-2,x2gd.large,spot,NA,0.039419,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.547352 +AWS,us-east-2,x2gd.xlarge,on_demand,NA,0.334,USD,AWS Pricing API,2025-11-30T08:51:29.571635 +AWS,us-east-2,x2gd.xlarge,reserved_1y,all_upfront,0.247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:49:02.035154 +AWS,us-east-2,x2gd.xlarge,reserved_1y,no_upfront,0.247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:38.273034 +AWS,us-east-2,x2gd.xlarge,reserved_1y,partial_upfront,0.247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:29.403766 +AWS,us-east-2,x2gd.xlarge,reserved_3y,all_upfront,0.247,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:54:11.029081 +AWS,us-east-2,x2gd.xlarge,reserved_3y,no_upfront,0.247,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:39.309830 +AWS,us-east-2,x2gd.xlarge,reserved_3y,partial_upfront,0.247,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:38.939868 +AWS,us-east-2,x2gd.xlarge,spot,NA,0.121543,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.545186 +AWS,us-east-2,z1d.12xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:51:14.390514 +AWS,us-east-2,z1d.12xlarge,reserved_1y,all_upfront,2.812,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:46.993463 +AWS,us-east-2,z1d.12xlarge,reserved_1y,no_upfront,2.812,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:23.070291 +AWS,us-east-2,z1d.12xlarge,reserved_1y,partial_upfront,2.812,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:14.350200 +AWS,us-east-2,z1d.12xlarge,reserved_3y,all_upfront,2.812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:55.957248 +AWS,us-east-2,z1d.12xlarge,reserved_3y,no_upfront,2.812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:24.175671 +AWS,us-east-2,z1d.12xlarge,reserved_3y,partial_upfront,2.812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:23.537339 +AWS,us-east-2,z1d.12xlarge,spot,NA,1.178907,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544496 +AWS,us-east-2,z1d.2xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T08:51:17.811429 +AWS,us-east-2,z1d.2xlarge,reserved_1y,all_upfront,0.568142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:50.372908 +AWS,us-east-2,z1d.2xlarge,reserved_1y,no_upfront,0.568142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:26.499463 +AWS,us-east-2,z1d.2xlarge,reserved_1y,partial_upfront,0.568142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:17.737367 +AWS,us-east-2,z1d.2xlarge,reserved_3y,all_upfront,0.284047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:59.354422 +AWS,us-east-2,z1d.2xlarge,reserved_3y,no_upfront,0.284047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:27.612092 +AWS,us-east-2,z1d.2xlarge,reserved_3y,partial_upfront,0.284047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:27.043457 +AWS,us-east-2,z1d.2xlarge,spot,NA,0.294269,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544586 +AWS,us-east-2,z1d.3xlarge,on_demand,NA,1.116,USD,AWS Pricing API,2025-11-30T08:51:16.710895 +AWS,us-east-2,z1d.3xlarge,reserved_1y,all_upfront,0.812,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:49.299107 +AWS,us-east-2,z1d.3xlarge,reserved_1y,no_upfront,0.812,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:25.407136 +AWS,us-east-2,z1d.3xlarge,reserved_1y,partial_upfront,0.812,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:16.640389 +AWS,us-east-2,z1d.3xlarge,reserved_3y,all_upfront,0.812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:58.266182 +AWS,us-east-2,z1d.3xlarge,reserved_3y,no_upfront,0.812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:26.519417 +AWS,us-east-2,z1d.3xlarge,reserved_3y,partial_upfront,0.812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:25.941373 +AWS,us-east-2,z1d.3xlarge,spot,NA,0.390375,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544528 +AWS,us-east-2,z1d.6xlarge,on_demand,NA,2.232,USD,AWS Pricing API,2025-11-30T08:51:16.847926 +AWS,us-east-2,z1d.6xlarge,reserved_1y,all_upfront,1.406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:49.437079 +AWS,us-east-2,z1d.6xlarge,reserved_1y,no_upfront,1.406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:25.545886 +AWS,us-east-2,z1d.6xlarge,reserved_1y,partial_upfront,1.406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:16.782351 +AWS,us-east-2,z1d.6xlarge,reserved_3y,all_upfront,1.406,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:58.398595 +AWS,us-east-2,z1d.6xlarge,reserved_3y,no_upfront,1.406,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:26.654783 +AWS,us-east-2,z1d.6xlarge,reserved_3y,partial_upfront,1.406,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:26.078806 +AWS,us-east-2,z1d.6xlarge,spot,NA,0.619079,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544561 +AWS,us-east-2,z1d.large,on_demand,NA,0.186,USD,AWS Pricing API,2025-11-30T08:51:17.116908 +AWS,us-east-2,z1d.large,reserved_1y,all_upfront,0.117,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:49.703349 +AWS,us-east-2,z1d.large,reserved_1y,no_upfront,0.117,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:25.818512 +AWS,us-east-2,z1d.large,reserved_1y,partial_upfront,0.117,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:17.053747 +AWS,us-east-2,z1d.large,reserved_3y,all_upfront,0.117,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:58.675307 +AWS,us-east-2,z1d.large,reserved_3y,no_upfront,0.117,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:26.925169 +AWS,us-east-2,z1d.large,reserved_3y,partial_upfront,0.117,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:26.352743 +AWS,us-east-2,z1d.large,spot,NA,0.048475,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544627 +AWS,us-east-2,z1d.xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T08:51:18.084087 +AWS,us-east-2,z1d.xlarge,reserved_1y,all_upfront,0.218721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:48:50.640855 +AWS,us-east-2,z1d.xlarge,reserved_1y,no_upfront,0.218721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:05:26.771946 +AWS,us-east-2,z1d.xlarge,reserved_1y,partial_upfront,0.218721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:27:18.004811 +AWS,us-east-2,z1d.xlarge,reserved_3y,all_upfront,0.072907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:53:59.623902 +AWS,us-east-2,z1d.xlarge,reserved_3y,no_upfront,0.072907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:10:27.883166 +AWS,us-east-2,z1d.xlarge,reserved_3y,partial_upfront,0.072907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:32:27.317032 +AWS,us-east-2,z1d.xlarge,spot,NA,0.122603,USD,AWS EC2 API (90-day avg),2025-11-30T09:20:29.544580 +AWS,us-west-1,c5.12xlarge,on_demand,NA,2.544,USD,AWS Pricing API,2025-11-30T08:54:41.738843 +AWS,us-west-1,c5.12xlarge,reserved_1y,all_upfront,1.099,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:12.687668 +AWS,us-west-1,c5.12xlarge,reserved_1y,no_upfront,1.099,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:51.044104 +AWS,us-west-1,c5.12xlarge,reserved_1y,partial_upfront,1.099,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:39.741346 +AWS,us-west-1,c5.12xlarge,reserved_3y,all_upfront,1.099,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:20.511344 +AWS,us-west-1,c5.12xlarge,reserved_3y,no_upfront,1.099,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:51.722734 +AWS,us-west-1,c5.12xlarge,reserved_3y,partial_upfront,1.099,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:52.202620 +AWS,us-west-1,c5.12xlarge,spot,NA,0.7361,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395745 +AWS,us-west-1,c5.18xlarge,on_demand,NA,3.816,USD,AWS Pricing API,2025-11-30T08:54:50.116733 +AWS,us-west-1,c5.18xlarge,reserved_1y,all_upfront,2.243836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:21.054861 +AWS,us-west-1,c5.18xlarge,reserved_1y,no_upfront,2.243836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:59.444331 +AWS,us-west-1,c5.18xlarge,reserved_1y,partial_upfront,2.243836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:48.104876 +AWS,us-west-1,c5.18xlarge,reserved_3y,all_upfront,0.747945,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:28.832476 +AWS,us-west-1,c5.18xlarge,reserved_3y,no_upfront,0.747945,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:00.236458 +AWS,us-west-1,c5.18xlarge,reserved_3y,partial_upfront,0.747945,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:00.562247 +AWS,us-west-1,c5.18xlarge,spot,NA,0.855554,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395892 +AWS,us-west-1,c5.24xlarge,on_demand,NA,5.088,USD,AWS Pricing API,2025-11-30T08:53:54.991631 +AWS,us-west-1,c5.24xlarge,reserved_1y,all_upfront,4.070854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:26.029022 +AWS,us-west-1,c5.24xlarge,reserved_1y,no_upfront,4.070854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:03.893542 +AWS,us-west-1,c5.24xlarge,reserved_1y,partial_upfront,4.070854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:52.915173 +AWS,us-west-1,c5.24xlarge,reserved_3y,all_upfront,2.035618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:34.272181 +AWS,us-west-1,c5.24xlarge,reserved_3y,no_upfront,2.035618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:04.354648 +AWS,us-west-1,c5.24xlarge,reserved_3y,partial_upfront,2.035618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:05.934177 +AWS,us-west-1,c5.24xlarge,spot,NA,1.113775,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394788 +AWS,us-west-1,c5.4xlarge,on_demand,NA,0.848,USD,AWS Pricing API,2025-11-30T08:54:34.633645 +AWS,us-west-1,c5.4xlarge,reserved_1y,all_upfront,0.623174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:05.545912 +AWS,us-west-1,c5.4xlarge,reserved_1y,no_upfront,0.623174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:43.833918 +AWS,us-west-1,c5.4xlarge,reserved_1y,partial_upfront,0.623174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:32.623115 +AWS,us-west-1,c5.4xlarge,reserved_3y,all_upfront,0.207725,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:13.432758 +AWS,us-west-1,c5.4xlarge,reserved_3y,no_upfront,0.207725,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:44.464218 +AWS,us-west-1,c5.4xlarge,reserved_3y,partial_upfront,0.207725,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:45.103683 +AWS,us-west-1,c5.4xlarge,spot,NA,0.343116,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395580 +AWS,us-west-1,c5.9xlarge,on_demand,NA,1.908,USD,AWS Pricing API,2025-11-30T08:53:54.336119 +AWS,us-west-1,c5.9xlarge,reserved_1y,all_upfront,1.430411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:25.359157 +AWS,us-west-1,c5.9xlarge,reserved_1y,no_upfront,1.430411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:03.212860 +AWS,us-west-1,c5.9xlarge,reserved_1y,partial_upfront,1.430411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:52.239099 +AWS,us-west-1,c5.9xlarge,reserved_3y,all_upfront,0.95347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:33.591020 +AWS,us-west-1,c5.9xlarge,reserved_3y,no_upfront,0.95347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:03.666140 +AWS,us-west-1,c5.9xlarge,reserved_3y,partial_upfront,0.95347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:05.264032 +AWS,us-west-1,c5.9xlarge,spot,NA,1.07618,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394784 +AWS,us-west-1,c5a.12xlarge,on_demand,NA,2.28,USD,AWS Pricing API,2025-11-30T08:54:50.650714 +AWS,us-west-1,c5a.12xlarge,reserved_1y,all_upfront,1.703598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:21.588940 +AWS,us-west-1,c5a.12xlarge,reserved_1y,no_upfront,1.703598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:59.987652 +AWS,us-west-1,c5a.12xlarge,reserved_1y,partial_upfront,1.703598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:48.642771 +AWS,us-west-1,c5a.12xlarge,reserved_3y,all_upfront,1.135866,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:29.539115 +AWS,us-west-1,c5a.12xlarge,reserved_3y,no_upfront,1.135866,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:00.783243 +AWS,us-west-1,c5a.12xlarge,reserved_3y,partial_upfront,1.135866,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:01.105159 +AWS,us-west-1,c5a.12xlarge,spot,NA,0.980872,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395895 +AWS,us-west-1,c5a.16xlarge,on_demand,NA,3.04,USD,AWS Pricing API,2025-11-30T08:54:10.248778 +AWS,us-west-1,c5a.16xlarge,reserved_1y,all_upfront,4.39726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:41.401318 +AWS,us-west-1,c5a.16xlarge,reserved_1y,no_upfront,4.39726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:19.256383 +AWS,us-west-1,c5a.16xlarge,reserved_1y,partial_upfront,4.39726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:08.270710 +AWS,us-west-1,c5a.16xlarge,reserved_3y,all_upfront,1.465753,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:49.425242 +AWS,us-west-1,c5a.16xlarge,reserved_3y,no_upfront,1.465753,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:19.830179 +AWS,us-west-1,c5a.16xlarge,reserved_3y,partial_upfront,1.465753,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:21.030520 +AWS,us-west-1,c5a.16xlarge,spot,NA,1.204091,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395069 +AWS,us-west-1,c5a.24xlarge,on_demand,NA,4.56,USD,AWS Pricing API,2025-11-30T08:54:56.833631 +AWS,us-west-1,c5a.24xlarge,reserved_1y,all_upfront,2.681279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:27.775495 +AWS,us-west-1,c5a.24xlarge,reserved_1y,no_upfront,2.681279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:06.257269 +AWS,us-west-1,c5a.24xlarge,reserved_1y,partial_upfront,2.681279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:54.805512 +AWS,us-west-1,c5a.24xlarge,reserved_3y,all_upfront,0.89376,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:35.626019 +AWS,us-west-1,c5a.24xlarge,reserved_3y,no_upfront,0.89376,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:07.111202 +AWS,us-west-1,c5a.24xlarge,reserved_3y,partial_upfront,0.89376,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:07.285976 +AWS,us-west-1,c5a.24xlarge,spot,NA,1.285038,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396048 +AWS,us-west-1,c5a.2xlarge,on_demand,NA,0.38,USD,AWS Pricing API,2025-11-30T08:54:39.977139 +AWS,us-west-1,c5a.2xlarge,reserved_1y,all_upfront,0.223402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:10.932798 +AWS,us-west-1,c5a.2xlarge,reserved_1y,no_upfront,0.223402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:49.270791 +AWS,us-west-1,c5a.2xlarge,reserved_1y,partial_upfront,0.223402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:37.985389 +AWS,us-west-1,c5a.2xlarge,reserved_3y,all_upfront,0.074467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:18.777127 +AWS,us-west-1,c5a.2xlarge,reserved_3y,no_upfront,0.074467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:49.936573 +AWS,us-west-1,c5a.2xlarge,reserved_3y,partial_upfront,0.074467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:50.468256 +AWS,us-west-1,c5a.2xlarge,spot,NA,0.163883,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395680 +AWS,us-west-1,c5a.4xlarge,on_demand,NA,0.76,USD,AWS Pricing API,2025-11-30T08:54:12.842152 +AWS,us-west-1,c5a.4xlarge,reserved_1y,all_upfront,0.479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:43.957234 +AWS,us-west-1,c5a.4xlarge,reserved_1y,no_upfront,0.479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:21.890532 +AWS,us-west-1,c5a.4xlarge,reserved_1y,partial_upfront,0.479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:10.837329 +AWS,us-west-1,c5a.4xlarge,reserved_3y,all_upfront,0.479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:51.978036 +AWS,us-west-1,c5a.4xlarge,reserved_3y,no_upfront,0.479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:22.413350 +AWS,us-west-1,c5a.4xlarge,reserved_3y,partial_upfront,0.479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:23.574731 +AWS,us-west-1,c5a.4xlarge,spot,NA,0.301126,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395141 +AWS,us-west-1,c5a.8xlarge,on_demand,NA,1.52,USD,AWS Pricing API,2025-11-30T08:54:05.516397 +AWS,us-west-1,c5a.8xlarge,reserved_1y,all_upfront,2.19863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:36.624839 +AWS,us-west-1,c5a.8xlarge,reserved_1y,no_upfront,2.19863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:14.500860 +AWS,us-west-1,c5a.8xlarge,reserved_1y,partial_upfront,2.19863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:03.519986 +AWS,us-west-1,c5a.8xlarge,reserved_3y,all_upfront,0.732877,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:44.730744 +AWS,us-west-1,c5a.8xlarge,reserved_3y,no_upfront,0.732877,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:15.015849 +AWS,us-west-1,c5a.8xlarge,reserved_3y,partial_upfront,0.732877,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:16.343909 +AWS,us-west-1,c5a.8xlarge,spot,NA,0.628517,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394984 +AWS,us-west-1,c5a.xlarge,on_demand,NA,0.19,USD,AWS Pricing API,2025-11-30T08:53:56.459289 +AWS,us-west-1,c5a.xlarge,reserved_1y,all_upfront,0.111758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:27.556114 +AWS,us-west-1,c5a.xlarge,reserved_1y,no_upfront,0.111758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:05.375248 +AWS,us-west-1,c5a.xlarge,reserved_1y,partial_upfront,0.111758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:54.412896 +AWS,us-west-1,c5a.xlarge,reserved_3y,all_upfront,0.037253,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:35.742074 +AWS,us-west-1,c5a.xlarge,reserved_3y,no_upfront,0.037253,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:05.852313 +AWS,us-west-1,c5a.xlarge,reserved_3y,partial_upfront,0.037253,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:07.397416 +AWS,us-west-1,c5a.xlarge,spot,NA,0.089431,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394819 +AWS,us-west-1,c5d.12xlarge,on_demand,NA,2.88,USD,AWS Pricing API,2025-11-30T08:55:02.737132 +AWS,us-west-1,c5d.12xlarge,reserved_1y,all_upfront,2.164078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:33.650218 +AWS,us-west-1,c5d.12xlarge,reserved_1y,no_upfront,2.164078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:12.213531 +AWS,us-west-1,c5d.12xlarge,reserved_1y,partial_upfront,2.164078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:00.770687 +AWS,us-west-1,c5d.12xlarge,reserved_3y,all_upfront,1.442693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:41.431172 +AWS,us-west-1,c5d.12xlarge,reserved_3y,no_upfront,1.442693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:13.110536 +AWS,us-west-1,c5d.12xlarge,reserved_3y,partial_upfront,1.442693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:13.147290 +AWS,us-west-1,c5d.12xlarge,spot,NA,0.798386,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396118 +AWS,us-west-1,c5d.18xlarge,on_demand,NA,4.32,USD,AWS Pricing API,2025-11-30T08:54:26.559767 +AWS,us-west-1,c5d.18xlarge,reserved_1y,all_upfront,3.408,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:57.420524 +AWS,us-west-1,c5d.18xlarge,reserved_1y,no_upfront,3.408,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:35.646551 +AWS,us-west-1,c5d.18xlarge,reserved_1y,partial_upfront,3.408,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:24.499618 +AWS,us-west-1,c5d.18xlarge,reserved_3y,all_upfront,3.408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:05.436277 +AWS,us-west-1,c5d.18xlarge,reserved_3y,no_upfront,3.408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:36.201303 +AWS,us-west-1,c5d.18xlarge,reserved_3y,partial_upfront,3.408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:37.044234 +AWS,us-west-1,c5d.18xlarge,spot,NA,0.974951,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395393 +AWS,us-west-1,c5d.24xlarge,on_demand,NA,5.76,USD,AWS Pricing API,2025-11-30T08:53:59.129456 +AWS,us-west-1,c5d.24xlarge,reserved_1y,all_upfront,4.328041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:30.289123 +AWS,us-west-1,c5d.24xlarge,reserved_1y,no_upfront,4.328041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:08.091998 +AWS,us-west-1,c5d.24xlarge,reserved_1y,partial_upfront,4.328041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:57.098018 +AWS,us-west-1,c5d.24xlarge,reserved_3y,all_upfront,2.885347,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:38.397961 +AWS,us-west-1,c5d.24xlarge,reserved_3y,no_upfront,2.885347,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:08.598810 +AWS,us-west-1,c5d.24xlarge,reserved_3y,partial_upfront,2.885347,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:10.073743 +AWS,us-west-1,c5d.24xlarge,spot,NA,1.580579,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394852 +AWS,us-west-1,c5d.2xlarge,on_demand,NA,0.48,USD,AWS Pricing API,2025-11-30T08:54:46.609756 +AWS,us-west-1,c5d.2xlarge,reserved_1y,all_upfront,0.302,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:17.552269 +AWS,us-west-1,c5d.2xlarge,reserved_1y,no_upfront,0.302,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:55.931687 +AWS,us-west-1,c5d.2xlarge,reserved_1y,partial_upfront,0.302,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:44.585985 +AWS,us-west-1,c5d.2xlarge,reserved_3y,all_upfront,0.302,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:25.348777 +AWS,us-west-1,c5d.2xlarge,reserved_3y,no_upfront,0.302,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:56.675088 +AWS,us-west-1,c5d.2xlarge,reserved_3y,partial_upfront,0.302,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:57.077532 +AWS,us-west-1,c5d.2xlarge,spot,NA,0.184609,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395819 +AWS,us-west-1,c5d.4xlarge,on_demand,NA,0.96,USD,AWS Pricing API,2025-11-30T08:54:06.738566 +AWS,us-west-1,c5d.4xlarge,reserved_1y,all_upfront,0.564498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:37.832942 +AWS,us-west-1,c5d.4xlarge,reserved_1y,no_upfront,0.564498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:15.733107 +AWS,us-west-1,c5d.4xlarge,reserved_1y,partial_upfront,0.564498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:04.758109 +AWS,us-west-1,c5d.4xlarge,reserved_3y,all_upfront,0.188166,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:45.932662 +AWS,us-west-1,c5d.4xlarge,reserved_3y,no_upfront,0.188166,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:16.257416 +AWS,us-west-1,c5d.4xlarge,reserved_3y,partial_upfront,0.188166,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:17.544833 +AWS,us-west-1,c5d.4xlarge,spot,NA,0.299078,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395032 +AWS,us-west-1,c5d.9xlarge,on_demand,NA,2.16,USD,AWS Pricing API,2025-11-30T08:54:36.225630 +AWS,us-west-1,c5d.9xlarge,reserved_1y,all_upfront,1.62353,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:07.158635 +AWS,us-west-1,c5d.9xlarge,reserved_1y,no_upfront,1.62353,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:45.460876 +AWS,us-west-1,c5d.9xlarge,reserved_1y,partial_upfront,1.62353,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:34.220155 +AWS,us-west-1,c5d.9xlarge,reserved_3y,all_upfront,1.08251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:15.039420 +AWS,us-west-1,c5d.9xlarge,reserved_3y,no_upfront,1.08251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:46.095462 +AWS,us-west-1,c5d.9xlarge,reserved_3y,partial_upfront,1.08251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:46.715777 +AWS,us-west-1,c5d.9xlarge,spot,NA,0.79879,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395602 +AWS,us-west-1,c5d.xlarge,on_demand,NA,0.24,USD,AWS Pricing API,2025-11-30T08:54:31.937798 +AWS,us-west-1,c5d.xlarge,reserved_1y,all_upfront,0.151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:02.835661 +AWS,us-west-1,c5d.xlarge,reserved_1y,no_upfront,0.151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:41.092607 +AWS,us-west-1,c5d.xlarge,reserved_1y,partial_upfront,0.151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:29.927740 +AWS,us-west-1,c5d.xlarge,reserved_3y,all_upfront,0.151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:10.764101 +AWS,us-west-1,c5d.xlarge,reserved_3y,no_upfront,0.151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:41.735502 +AWS,us-west-1,c5d.xlarge,reserved_3y,partial_upfront,0.151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:42.416290 +AWS,us-west-1,c5d.xlarge,spot,NA,0.098645,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395497 +AWS,us-west-1,c5n.18xlarge,on_demand,NA,4.86,USD,AWS Pricing API,2025-11-30T08:54:52.120031 +AWS,us-west-1,c5n.18xlarge,reserved_1y,all_upfront,3.572146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:23.062529 +AWS,us-west-1,c5n.18xlarge,reserved_1y,no_upfront,3.572146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:01.484177 +AWS,us-west-1,c5n.18xlarge,reserved_1y,partial_upfront,3.572146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:50.112437 +AWS,us-west-1,c5n.18xlarge,reserved_3y,all_upfront,1.190715,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:30.993773 +AWS,us-west-1,c5n.18xlarge,reserved_3y,no_upfront,1.190715,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:02.294082 +AWS,us-west-1,c5n.18xlarge,reserved_3y,partial_upfront,1.190715,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:02.578674 +AWS,us-west-1,c5n.18xlarge,spot,NA,0.986134,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395907 +AWS,us-west-1,c5n.2xlarge,on_demand,NA,0.54,USD,AWS Pricing API,2025-11-30T08:55:02.190321 +AWS,us-west-1,c5n.2xlarge,reserved_1y,all_upfront,0.425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:33.116950 +AWS,us-west-1,c5n.2xlarge,reserved_1y,no_upfront,0.425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:11.667863 +AWS,us-west-1,c5n.2xlarge,reserved_1y,partial_upfront,0.425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:00.229870 +AWS,us-west-1,c5n.2xlarge,reserved_3y,all_upfront,0.425,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:40.900199 +AWS,us-west-1,c5n.2xlarge,reserved_3y,no_upfront,0.425,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:12.561604 +AWS,us-west-1,c5n.2xlarge,reserved_3y,partial_upfront,0.425,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:12.615177 +AWS,us-west-1,c5n.2xlarge,spot,NA,0.164359,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396114 +AWS,us-west-1,c5n.4xlarge,on_demand,NA,1.08,USD,AWS Pricing API,2025-11-30T08:54:38.637209 +AWS,us-west-1,c5n.4xlarge,reserved_1y,all_upfront,1.357763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:09.580631 +AWS,us-west-1,c5n.4xlarge,reserved_1y,no_upfront,1.357763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:47.914869 +AWS,us-west-1,c5n.4xlarge,reserved_1y,partial_upfront,1.357763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:36.640612 +AWS,us-west-1,c5n.4xlarge,reserved_3y,all_upfront,0.452588,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:17.449526 +AWS,us-west-1,c5n.4xlarge,reserved_3y,no_upfront,0.452588,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:48.562640 +AWS,us-west-1,c5n.4xlarge,reserved_3y,partial_upfront,0.452588,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:49.136632 +AWS,us-west-1,c5n.4xlarge,spot,NA,0.315817,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395641 +AWS,us-west-1,c5n.9xlarge,on_demand,NA,2.43,USD,AWS Pricing API,2025-11-30T08:54:51.984311 +AWS,us-west-1,c5n.9xlarge,reserved_1y,all_upfront,1.531,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:22.927248 +AWS,us-west-1,c5n.9xlarge,reserved_1y,no_upfront,1.531,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:01.347038 +AWS,us-west-1,c5n.9xlarge,reserved_1y,partial_upfront,1.531,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:49.975401 +AWS,us-west-1,c5n.9xlarge,reserved_3y,all_upfront,1.531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:30.862731 +AWS,us-west-1,c5n.9xlarge,reserved_3y,no_upfront,1.531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:02.156904 +AWS,us-west-1,c5n.9xlarge,reserved_3y,partial_upfront,1.531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:02.443293 +AWS,us-west-1,c5n.9xlarge,spot,NA,0.680831,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395932 +AWS,us-west-1,c5n.metal,on_demand,NA,4.86,USD,AWS Pricing API,2025-11-30T08:54:00.730768 +AWS,us-west-1,c5n.metal,reserved_1y,all_upfront,1.952,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:31.898898 +AWS,us-west-1,c5n.metal,reserved_1y,no_upfront,1.952,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:09.734882 +AWS,us-west-1,c5n.metal,reserved_1y,partial_upfront,1.952,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:58.694550 +AWS,us-west-1,c5n.metal,reserved_3y,all_upfront,1.952,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:40.010497 +AWS,us-west-1,c5n.metal,reserved_3y,no_upfront,1.952,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:10.229508 +AWS,us-west-1,c5n.metal,reserved_3y,partial_upfront,1.952,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:11.671334 +AWS,us-west-1,c5n.metal,spot,NA,1.072191,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394864 +AWS,us-west-1,c5n.xlarge,on_demand,NA,0.27,USD,AWS Pricing API,2025-11-30T08:54:54.016617 +AWS,us-west-1,c5n.xlarge,reserved_1y,all_upfront,0.108,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:24.955722 +AWS,us-west-1,c5n.xlarge,reserved_1y,no_upfront,0.108,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:03.390336 +AWS,us-west-1,c5n.xlarge,reserved_1y,partial_upfront,0.108,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:51.987084 +AWS,us-west-1,c5n.xlarge,reserved_3y,all_upfront,0.108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:32.840545 +AWS,us-west-1,c5n.xlarge,reserved_3y,no_upfront,0.108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:04.223162 +AWS,us-west-1,c5n.xlarge,reserved_3y,partial_upfront,0.108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:04.472661 +AWS,us-west-1,c5n.xlarge,spot,NA,0.111903,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395985 +AWS,us-west-1,c6g.12xlarge,on_demand,NA,2.0352,USD,AWS Pricing API,2025-11-30T08:54:06.064946 +AWS,us-west-1,c6g.12xlarge,reserved_1y,all_upfront,1.196689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:37.163370 +AWS,us-west-1,c6g.12xlarge,reserved_1y,no_upfront,1.196689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:15.051646 +AWS,us-west-1,c6g.12xlarge,reserved_1y,partial_upfront,1.196689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:04.079159 +AWS,us-west-1,c6g.12xlarge,reserved_3y,all_upfront,0.398896,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:45.266546 +AWS,us-west-1,c6g.12xlarge,reserved_3y,no_upfront,0.398896,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:15.573446 +AWS,us-west-1,c6g.12xlarge,reserved_3y,partial_upfront,0.398896,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:16.879290 +AWS,us-west-1,c6g.12xlarge,spot,NA,0.598997,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394972 +AWS,us-west-1,c6g.16xlarge,on_demand,NA,2.7136,USD,AWS Pricing API,2025-11-30T08:54:24.120741 +AWS,us-west-1,c6g.16xlarge,reserved_1y,all_upfront,1.7096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:54.995374 +AWS,us-west-1,c6g.16xlarge,reserved_1y,no_upfront,1.7096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:33.178934 +AWS,us-west-1,c6g.16xlarge,reserved_1y,partial_upfront,1.7096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:21.963079 +AWS,us-west-1,c6g.16xlarge,reserved_3y,all_upfront,1.7096,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:02.984775 +AWS,us-west-1,c6g.16xlarge,reserved_3y,no_upfront,1.7096,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:33.699780 +AWS,us-west-1,c6g.16xlarge,reserved_3y,partial_upfront,1.7096,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:34.550874 +AWS,us-west-1,c6g.16xlarge,spot,NA,0.750494,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395318 +AWS,us-west-1,c6g.2xlarge,on_demand,NA,0.3392,USD,AWS Pricing API,2025-11-30T08:54:36.088441 +AWS,us-west-1,c6g.2xlarge,reserved_1y,all_upfront,0.199429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:07.025157 +AWS,us-west-1,c6g.2xlarge,reserved_1y,no_upfront,0.199429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:45.322496 +AWS,us-west-1,c6g.2xlarge,reserved_1y,partial_upfront,0.199429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:34.086584 +AWS,us-west-1,c6g.2xlarge,reserved_3y,all_upfront,0.066476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:14.907193 +AWS,us-west-1,c6g.2xlarge,reserved_3y,no_upfront,0.066476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:45.958035 +AWS,us-west-1,c6g.2xlarge,reserved_3y,partial_upfront,0.066476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:46.583242 +AWS,us-west-1,c6g.2xlarge,spot,NA,0.126937,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395606 +AWS,us-west-1,c6g.4xlarge,on_demand,NA,0.6784,USD,AWS Pricing API,2025-11-30T08:54:54.829277 +AWS,us-west-1,c6g.4xlarge,reserved_1y,all_upfront,0.398858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:25.756387 +AWS,us-west-1,c6g.4xlarge,reserved_1y,no_upfront,0.398858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:04.208325 +AWS,us-west-1,c6g.4xlarge,reserved_1y,partial_upfront,0.398858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:52.792715 +AWS,us-west-1,c6g.4xlarge,reserved_3y,all_upfront,0.132953,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:33.658805 +AWS,us-west-1,c6g.4xlarge,reserved_3y,no_upfront,0.132953,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:05.056490 +AWS,us-west-1,c6g.4xlarge,reserved_3y,partial_upfront,0.132953,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:05.268954 +AWS,us-west-1,c6g.4xlarge,spot,NA,0.236954,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396005 +AWS,us-west-1,c6g.8xlarge,on_demand,NA,1.3568,USD,AWS Pricing API,2025-11-30T08:54:22.428316 +AWS,us-west-1,c6g.8xlarge,reserved_1y,all_upfront,0.797831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:53.373573 +AWS,us-west-1,c6g.8xlarge,reserved_1y,no_upfront,0.797831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:31.556837 +AWS,us-west-1,c6g.8xlarge,reserved_1y,partial_upfront,0.797831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:20.327499 +AWS,us-west-1,c6g.8xlarge,reserved_3y,all_upfront,0.265944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:01.367587 +AWS,us-west-1,c6g.8xlarge,reserved_3y,no_upfront,0.265944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:32.062948 +AWS,us-west-1,c6g.8xlarge,reserved_3y,partial_upfront,0.265944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:32.944616 +AWS,us-west-1,c6g.8xlarge,spot,NA,0.503966,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395295 +AWS,us-west-1,c6g.xlarge,on_demand,NA,0.1696,USD,AWS Pricing API,2025-11-30T08:55:00.157339 +AWS,us-west-1,c6g.xlarge,reserved_1y,all_upfront,0.0902,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:31.120397 +AWS,us-west-1,c6g.xlarge,reserved_1y,no_upfront,0.0902,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:09.633731 +AWS,us-west-1,c6g.xlarge,reserved_1y,partial_upfront,0.0902,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:58.219510 +AWS,us-west-1,c6g.xlarge,reserved_3y,all_upfront,0.0902,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:38.918645 +AWS,us-west-1,c6g.xlarge,reserved_3y,no_upfront,0.0902,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:10.514774 +AWS,us-west-1,c6g.xlarge,reserved_3y,partial_upfront,0.0902,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:10.602532 +AWS,us-west-1,c6g.xlarge,spot,NA,0.073249,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396082 +AWS,us-west-1,c6gd.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:54:00.866975 +AWS,us-west-1,c6gd.12xlarge,reserved_1y,all_upfront,1.392005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:32.032285 +AWS,us-west-1,c6gd.12xlarge,reserved_1y,no_upfront,1.392005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:09.871130 +AWS,us-west-1,c6gd.12xlarge,reserved_1y,partial_upfront,1.392005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:58.827708 +AWS,us-west-1,c6gd.12xlarge,reserved_3y,all_upfront,0.928002,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:40.144221 +AWS,us-west-1,c6gd.12xlarge,reserved_3y,no_upfront,0.928002,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:10.365709 +AWS,us-west-1,c6gd.12xlarge,reserved_3y,partial_upfront,0.928002,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:11.804314 +AWS,us-west-1,c6gd.12xlarge,spot,NA,0.763695,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394880 +AWS,us-west-1,c6gd.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:54:39.168935 +AWS,us-west-1,c6gd.16xlarge,reserved_1y,all_upfront,1.856182,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:10.123570 +AWS,us-west-1,c6gd.16xlarge,reserved_1y,no_upfront,1.856182,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:48.455565 +AWS,us-west-1,c6gd.16xlarge,reserved_1y,partial_upfront,1.856182,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:37.176659 +AWS,us-west-1,c6gd.16xlarge,reserved_3y,all_upfront,1.237461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:17.980032 +AWS,us-west-1,c6gd.16xlarge,reserved_3y,no_upfront,1.237461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:49.107990 +AWS,us-west-1,c6gd.16xlarge,reserved_3y,partial_upfront,1.237461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:49.666447 +AWS,us-west-1,c6gd.16xlarge,spot,NA,0.968712,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395664 +AWS,us-west-1,c6gd.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:54:49.459323 +AWS,us-west-1,c6gd.2xlarge,reserved_1y,all_upfront,0.2436,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:20.381335 +AWS,us-west-1,c6gd.2xlarge,reserved_1y,no_upfront,0.2436,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:58.767024 +AWS,us-west-1,c6gd.2xlarge,reserved_1y,partial_upfront,0.2436,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:47.436937 +AWS,us-west-1,c6gd.2xlarge,reserved_3y,all_upfront,0.2436,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:28.166987 +AWS,us-west-1,c6gd.2xlarge,reserved_3y,no_upfront,0.2436,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:59.556798 +AWS,us-west-1,c6gd.2xlarge,reserved_3y,partial_upfront,0.2436,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:59.892547 +AWS,us-west-1,c6gd.2xlarge,spot,NA,0.131535,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395876 +AWS,us-west-1,c6gd.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:54:29.116968 +AWS,us-west-1,c6gd.4xlarge,reserved_1y,all_upfront,0.607936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:59.973148 +AWS,us-west-1,c6gd.4xlarge,reserved_1y,no_upfront,0.607936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:38.243597 +AWS,us-west-1,c6gd.4xlarge,reserved_1y,partial_upfront,0.607936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:27.131892 +AWS,us-west-1,c6gd.4xlarge,reserved_3y,all_upfront,0.303979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:07.966111 +AWS,us-west-1,c6gd.4xlarge,reserved_3y,no_upfront,0.303979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:38.818523 +AWS,us-west-1,c6gd.4xlarge,reserved_3y,partial_upfront,0.303979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:39.588385 +AWS,us-west-1,c6gd.4xlarge,spot,NA,0.293221,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395455 +AWS,us-west-1,c6gd.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:54:57.632053 +AWS,us-west-1,c6gd.8xlarge,reserved_1y,all_upfront,1.152027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:28.579476 +AWS,us-west-1,c6gd.8xlarge,reserved_1y,no_upfront,1.152027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:07.070757 +AWS,us-west-1,c6gd.8xlarge,reserved_1y,partial_upfront,1.152027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:55.605518 +AWS,us-west-1,c6gd.8xlarge,reserved_3y,all_upfront,0.768009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:36.419648 +AWS,us-west-1,c6gd.8xlarge,reserved_3y,no_upfront,0.768009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:07.926586 +AWS,us-west-1,c6gd.8xlarge,reserved_3y,partial_upfront,0.768009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:08.078859 +AWS,us-west-1,c6gd.8xlarge,spot,NA,0.539317,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396040 +AWS,us-west-1,c6gd.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:54:48.784806 +AWS,us-west-1,c6gd.xlarge,reserved_1y,all_upfront,0.152041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:19.697553 +AWS,us-west-1,c6gd.xlarge,reserved_1y,no_upfront,0.152041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:58.091311 +AWS,us-west-1,c6gd.xlarge,reserved_1y,partial_upfront,0.152041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:46.771417 +AWS,us-west-1,c6gd.xlarge,reserved_3y,all_upfront,0.076014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:27.507633 +AWS,us-west-1,c6gd.xlarge,reserved_3y,no_upfront,0.076014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:58.865652 +AWS,us-west-1,c6gd.xlarge,reserved_3y,partial_upfront,0.076014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:59.226768 +AWS,us-west-1,c6gd.xlarge,spot,NA,0.056704,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395870 +AWS,us-west-1,c6i.12xlarge,on_demand,NA,2.544,USD,AWS Pricing API,2025-11-30T08:54:48.647421 +AWS,us-west-1,c6i.12xlarge,reserved_1y,all_upfront,1.811644,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:19.563534 +AWS,us-west-1,c6i.12xlarge,reserved_1y,no_upfront,1.811644,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:57.955547 +AWS,us-west-1,c6i.12xlarge,reserved_1y,partial_upfront,1.811644,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:46.637509 +AWS,us-west-1,c6i.12xlarge,reserved_3y,all_upfront,0.603881,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:27.364963 +AWS,us-west-1,c6i.12xlarge,reserved_3y,no_upfront,0.603881,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:58.728578 +AWS,us-west-1,c6i.12xlarge,reserved_3y,partial_upfront,0.603881,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:59.091075 +AWS,us-west-1,c6i.12xlarge,spot,NA,0.968653,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395880 +AWS,us-west-1,c6i.16xlarge,on_demand,NA,3.392,USD,AWS Pricing API,2025-11-30T08:54:23.707104 +AWS,us-west-1,c6i.16xlarge,reserved_1y,all_upfront,2.090982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:54.589500 +AWS,us-west-1,c6i.16xlarge,reserved_1y,no_upfront,2.090982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:32.774250 +AWS,us-west-1,c6i.16xlarge,reserved_1y,partial_upfront,2.090982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:21.558000 +AWS,us-west-1,c6i.16xlarge,reserved_3y,all_upfront,0.696994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:02.577046 +AWS,us-west-1,c6i.16xlarge,reserved_3y,no_upfront,0.696994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:33.287847 +AWS,us-west-1,c6i.16xlarge,reserved_3y,partial_upfront,0.696994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:34.145248 +AWS,us-west-1,c6i.16xlarge,spot,NA,1.270041,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395330 +AWS,us-west-1,c6i.24xlarge,on_demand,NA,5.088,USD,AWS Pricing API,2025-11-30T08:54:18.362343 +AWS,us-west-1,c6i.24xlarge,reserved_1y,all_upfront,3.200428,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:49.328463 +AWS,us-west-1,c6i.24xlarge,reserved_1y,no_upfront,3.200428,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:27.410603 +AWS,us-west-1,c6i.24xlarge,reserved_1y,partial_upfront,3.200428,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:16.210935 +AWS,us-west-1,c6i.24xlarge,reserved_3y,all_upfront,2.133609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:57.324915 +AWS,us-west-1,c6i.24xlarge,reserved_3y,no_upfront,2.133609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:27.873760 +AWS,us-west-1,c6i.24xlarge,reserved_3y,partial_upfront,2.133609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:28.893149 +AWS,us-west-1,c6i.24xlarge,spot,NA,1.349982,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395242 +AWS,us-west-1,c6i.2xlarge,on_demand,NA,0.424,USD,AWS Pricing API,2025-11-30T08:54:02.084784 +AWS,us-west-1,c6i.2xlarge,reserved_1y,all_upfront,0.606963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:33.251473 +AWS,us-west-1,c6i.2xlarge,reserved_1y,no_upfront,0.606963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:11.104891 +AWS,us-west-1,c6i.2xlarge,reserved_1y,partial_upfront,0.606963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:00.036780 +AWS,us-west-1,c6i.2xlarge,reserved_3y,all_upfront,0.202321,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:41.351142 +AWS,us-west-1,c6i.2xlarge,reserved_3y,no_upfront,0.202321,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:11.599596 +AWS,us-west-1,c6i.2xlarge,reserved_3y,partial_upfront,0.202321,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:13.000840 +AWS,us-west-1,c6i.2xlarge,spot,NA,0.151194,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394891 +AWS,us-west-1,c6i.32xlarge,on_demand,NA,6.784,USD,AWS Pricing API,2025-11-30T08:54:53.346508 +AWS,us-west-1,c6i.32xlarge,reserved_1y,all_upfront,5.17621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:24.271186 +AWS,us-west-1,c6i.32xlarge,reserved_1y,no_upfront,5.17621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:02.704726 +AWS,us-west-1,c6i.32xlarge,reserved_1y,partial_upfront,5.17621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:51.324305 +AWS,us-west-1,c6i.32xlarge,reserved_3y,all_upfront,5.17621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:32.180536 +AWS,us-west-1,c6i.32xlarge,reserved_3y,no_upfront,5.17621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:03.534481 +AWS,us-west-1,c6i.32xlarge,reserved_3y,partial_upfront,5.17621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:03.796504 +AWS,us-west-1,c6i.32xlarge,spot,NA,1.811387,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395969 +AWS,us-west-1,c6i.4xlarge,on_demand,NA,0.848,USD,AWS Pricing API,2025-11-30T08:53:58.189641 +AWS,us-west-1,c6i.4xlarge,reserved_1y,all_upfront,0.825856,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:29.305145 +AWS,us-west-1,c6i.4xlarge,reserved_1y,no_upfront,0.825856,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:07.138557 +AWS,us-west-1,c6i.4xlarge,reserved_1y,partial_upfront,0.825856,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:56.160752 +AWS,us-west-1,c6i.4xlarge,reserved_3y,all_upfront,0.412919,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:37.464375 +AWS,us-west-1,c6i.4xlarge,reserved_3y,no_upfront,0.412919,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:07.645700 +AWS,us-west-1,c6i.4xlarge,reserved_3y,partial_upfront,0.412919,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:09.137063 +AWS,us-west-1,c6i.4xlarge,spot,NA,0.367467,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394836 +AWS,us-west-1,c6i.8xlarge,on_demand,NA,1.696,USD,AWS Pricing API,2025-11-30T08:54:11.887301 +AWS,us-west-1,c6i.8xlarge,reserved_1y,all_upfront,1.12014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:43.014600 +AWS,us-west-1,c6i.8xlarge,reserved_1y,no_upfront,1.12014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:20.934657 +AWS,us-west-1,c6i.8xlarge,reserved_1y,partial_upfront,1.12014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:09.897005 +AWS,us-west-1,c6i.8xlarge,reserved_3y,all_upfront,1.12014,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:51.038348 +AWS,us-west-1,c6i.8xlarge,reserved_3y,no_upfront,1.12014,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:21.462932 +AWS,us-west-1,c6i.8xlarge,reserved_3y,partial_upfront,1.12014,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:22.631581 +AWS,us-west-1,c6i.8xlarge,spot,NA,0.69754,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395137 +AWS,us-west-1,c6i.xlarge,on_demand,NA,0.212,USD,AWS Pricing API,2025-11-30T08:54:16.165139 +AWS,us-west-1,c6i.xlarge,reserved_1y,all_upfront,0.151027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:47.175699 +AWS,us-west-1,c6i.xlarge,reserved_1y,no_upfront,0.151027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:25.192881 +AWS,us-west-1,c6i.xlarge,reserved_1y,partial_upfront,0.151027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:14.074483 +AWS,us-west-1,c6i.xlarge,reserved_3y,all_upfront,0.050342,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:55.197534 +AWS,us-west-1,c6i.xlarge,reserved_3y,no_upfront,0.050342,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:25.687348 +AWS,us-west-1,c6i.xlarge,reserved_3y,partial_upfront,0.050342,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:26.765945 +AWS,us-west-1,c6i.xlarge,spot,NA,0.092231,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395206 +AWS,us-west-1,c6in.12xlarge,on_demand,NA,3.402,USD,AWS Pricing API,2025-11-30T08:54:05.651969 +AWS,us-west-1,c6in.12xlarge,reserved_1y,all_upfront,2.000342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:36.760102 +AWS,us-west-1,c6in.12xlarge,reserved_1y,no_upfront,2.000342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:14.636868 +AWS,us-west-1,c6in.12xlarge,reserved_1y,partial_upfront,2.000342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:03.667078 +AWS,us-west-1,c6in.12xlarge,reserved_3y,all_upfront,0.666781,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:44.865039 +AWS,us-west-1,c6in.12xlarge,reserved_3y,no_upfront,0.666781,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:15.163072 +AWS,us-west-1,c6in.12xlarge,reserved_3y,partial_upfront,0.666781,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:16.478617 +AWS,us-west-1,c6in.12xlarge,spot,NA,1.291626,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395000 +AWS,us-west-1,c6in.16xlarge,on_demand,NA,4.536,USD,AWS Pricing API,2025-11-30T08:54:17.142342 +AWS,us-west-1,c6in.16xlarge,reserved_1y,all_upfront,2.85768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:48.119492 +AWS,us-west-1,c6in.16xlarge,reserved_1y,no_upfront,2.85768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:26.165046 +AWS,us-west-1,c6in.16xlarge,reserved_1y,partial_upfront,2.85768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:15.008071 +AWS,us-west-1,c6in.16xlarge,reserved_3y,all_upfront,2.85768,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:56.127052 +AWS,us-west-1,c6in.16xlarge,reserved_3y,no_upfront,2.85768,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:26.648546 +AWS,us-west-1,c6in.16xlarge,reserved_3y,partial_upfront,2.85768,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:27.696833 +AWS,us-west-1,c6in.16xlarge,spot,NA,1.580798,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395202 +AWS,us-west-1,c6in.24xlarge,on_demand,NA,6.804,USD,AWS Pricing API,2025-11-30T08:54:26.696117 +AWS,us-west-1,c6in.24xlarge,reserved_1y,all_upfront,4.08241,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:57.555040 +AWS,us-west-1,c6in.24xlarge,reserved_1y,no_upfront,4.08241,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:35.793402 +AWS,us-west-1,c6in.24xlarge,reserved_1y,partial_upfront,4.08241,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:24.633967 +AWS,us-west-1,c6in.24xlarge,reserved_3y,all_upfront,2.721603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:05.571181 +AWS,us-west-1,c6in.24xlarge,reserved_3y,no_upfront,2.721603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:36.344615 +AWS,us-west-1,c6in.24xlarge,reserved_3y,partial_upfront,2.721603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:37.177361 +AWS,us-west-1,c6in.24xlarge,spot,NA,1.685342,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395389 +AWS,us-west-1,c6in.2xlarge,on_demand,NA,0.567,USD,AWS Pricing API,2025-11-30T08:54:30.342966 +AWS,us-west-1,c6in.2xlarge,reserved_1y,all_upfront,0.421476,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:01.201685 +AWS,us-west-1,c6in.2xlarge,reserved_1y,no_upfront,0.421476,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:39.468520 +AWS,us-west-1,c6in.2xlarge,reserved_1y,partial_upfront,0.421476,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:28.326515 +AWS,us-west-1,c6in.2xlarge,reserved_3y,all_upfront,0.210745,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:09.170870 +AWS,us-west-1,c6in.2xlarge,reserved_3y,no_upfront,0.210745,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:40.071586 +AWS,us-west-1,c6in.2xlarge,reserved_3y,partial_upfront,0.210745,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:40.784257 +AWS,us-west-1,c6in.2xlarge,spot,NA,0.193722,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395493 +AWS,us-west-1,c6in.32xlarge,on_demand,NA,9.072,USD,AWS Pricing API,2025-11-30T08:55:04.226687 +AWS,us-west-1,c6in.32xlarge,reserved_1y,all_upfront,6.744135,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:35.124457 +AWS,us-west-1,c6in.32xlarge,reserved_1y,no_upfront,6.744135,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:13.724210 +AWS,us-west-1,c6in.32xlarge,reserved_1y,partial_upfront,6.744135,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:02.283891 +AWS,us-west-1,c6in.32xlarge,reserved_3y,all_upfront,3.372065,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:42.886236 +AWS,us-west-1,c6in.32xlarge,reserved_3y,no_upfront,3.372065,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:14.608543 +AWS,us-west-1,c6in.32xlarge,reserved_3y,partial_upfront,3.372065,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:14.625967 +AWS,us-west-1,c6in.32xlarge,spot,NA,1.957041,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396141 +AWS,us-west-1,c6in.4xlarge,on_demand,NA,1.134,USD,AWS Pricing API,2025-11-30T08:54:04.641761 +AWS,us-west-1,c6in.4xlarge,reserved_1y,all_upfront,0.680383,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:35.809182 +AWS,us-west-1,c6in.4xlarge,reserved_1y,no_upfront,0.680383,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:13.680285 +AWS,us-west-1,c6in.4xlarge,reserved_1y,partial_upfront,0.680383,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:02.707255 +AWS,us-west-1,c6in.4xlarge,reserved_3y,all_upfront,0.453594,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:43.913863 +AWS,us-west-1,c6in.4xlarge,reserved_3y,no_upfront,0.453594,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:14.190993 +AWS,us-west-1,c6in.4xlarge,reserved_3y,partial_upfront,0.453594,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:15.540035 +AWS,us-west-1,c6in.4xlarge,spot,NA,0.347572,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394964 +AWS,us-west-1,c6in.8xlarge,on_demand,NA,2.268,USD,AWS Pricing API,2025-11-30T08:54:34.768375 +AWS,us-west-1,c6in.8xlarge,reserved_1y,all_upfront,1.78605,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:05.690401 +AWS,us-west-1,c6in.8xlarge,reserved_1y,no_upfront,1.78605,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:43.967717 +AWS,us-west-1,c6in.8xlarge,reserved_1y,partial_upfront,1.78605,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:32.756505 +AWS,us-west-1,c6in.8xlarge,reserved_3y,all_upfront,1.78605,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:13.567126 +AWS,us-west-1,c6in.8xlarge,reserved_3y,no_upfront,1.78605,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:44.601105 +AWS,us-west-1,c6in.8xlarge,reserved_3y,partial_upfront,1.78605,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:45.237919 +AWS,us-west-1,c6in.8xlarge,spot,NA,0.834517,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395570 +AWS,us-west-1,c6in.xlarge,on_demand,NA,0.2835,USD,AWS Pricing API,2025-11-30T08:54:22.563813 +AWS,us-west-1,c6in.xlarge,reserved_1y,all_upfront,0.212589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:53.515915 +AWS,us-west-1,c6in.xlarge,reserved_1y,no_upfront,0.212589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:31.693018 +AWS,us-west-1,c6in.xlarge,reserved_1y,partial_upfront,0.212589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:20.472983 +AWS,us-west-1,c6in.xlarge,reserved_3y,all_upfront,0.141736,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:01.504443 +AWS,us-west-1,c6in.xlarge,reserved_3y,no_upfront,0.141736,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:32.199510 +AWS,us-west-1,c6in.xlarge,reserved_3y,partial_upfront,0.141736,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:33.079256 +AWS,us-west-1,c6in.xlarge,spot,NA,0.095438,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395311 +AWS,us-west-1,c7g.12xlarge,on_demand,NA,2.1624,USD,AWS Pricing API,2025-11-30T08:54:32.610821 +AWS,us-west-1,c7g.12xlarge,reserved_1y,all_upfront,3.095434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:03.507018 +AWS,us-west-1,c7g.12xlarge,reserved_1y,no_upfront,3.095434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:41.774496 +AWS,us-west-1,c7g.12xlarge,reserved_1y,partial_upfront,3.095434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:30.595662 +AWS,us-west-1,c7g.12xlarge,reserved_3y,all_upfront,1.031811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:11.433428 +AWS,us-west-1,c7g.12xlarge,reserved_3y,no_upfront,1.031811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:42.413024 +AWS,us-west-1,c7g.12xlarge,reserved_3y,partial_upfront,1.031811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:43.097283 +AWS,us-west-1,c7g.12xlarge,spot,NA,0.797433,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395523 +AWS,us-west-1,c7g.16xlarge,on_demand,NA,2.8832,USD,AWS Pricing API,2025-11-30T08:54:42.146156 +AWS,us-west-1,c7g.16xlarge,reserved_1y,all_upfront,2.42789,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:13.088422 +AWS,us-west-1,c7g.16xlarge,reserved_1y,no_upfront,2.42789,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:51.449628 +AWS,us-west-1,c7g.16xlarge,reserved_1y,partial_upfront,2.42789,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:40.142351 +AWS,us-west-1,c7g.16xlarge,reserved_3y,all_upfront,1.213963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:20.917076 +AWS,us-west-1,c7g.16xlarge,reserved_3y,no_upfront,1.213963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:52.130749 +AWS,us-west-1,c7g.16xlarge,reserved_3y,partial_upfront,1.213963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:52.603093 +AWS,us-west-1,c7g.16xlarge,spot,NA,0.992552,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395730 +AWS,us-west-1,c7g.2xlarge,on_demand,NA,0.3604,USD,AWS Pricing API,2025-11-30T08:55:00.690287 +AWS,us-west-1,c7g.2xlarge,reserved_1y,all_upfront,0.256621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:31.657948 +AWS,us-west-1,c7g.2xlarge,reserved_1y,no_upfront,0.256621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:10.176251 +AWS,us-west-1,c7g.2xlarge,reserved_1y,partial_upfront,0.256621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:58.757085 +AWS,us-west-1,c7g.2xlarge,reserved_3y,all_upfront,0.08554,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:39.446735 +AWS,us-west-1,c7g.2xlarge,reserved_3y,no_upfront,0.08554,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:11.059693 +AWS,us-west-1,c7g.2xlarge,reserved_3y,partial_upfront,0.08554,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:11.136658 +AWS,us-west-1,c7g.2xlarge,spot,NA,0.144489,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396106 +AWS,us-west-1,c7g.4xlarge,on_demand,NA,0.7208,USD,AWS Pricing API,2025-11-30T08:54:17.821282 +AWS,us-west-1,c7g.4xlarge,reserved_1y,all_upfront,0.70187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:48.791059 +AWS,us-west-1,c7g.4xlarge,reserved_1y,no_upfront,0.70187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:26.861641 +AWS,us-west-1,c7g.4xlarge,reserved_1y,partial_upfront,0.70187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:15.677948 +AWS,us-west-1,c7g.4xlarge,reserved_3y,all_upfront,0.350957,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:56.790189 +AWS,us-west-1,c7g.4xlarge,reserved_3y,no_upfront,0.350957,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:27.327288 +AWS,us-west-1,c7g.4xlarge,reserved_3y,partial_upfront,0.350957,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:28.362900 +AWS,us-west-1,c7g.4xlarge,spot,NA,0.252774,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395234 +AWS,us-west-1,c7g.8xlarge,on_demand,NA,1.4416,USD,AWS Pricing API,2025-11-30T08:54:28.849212 +AWS,us-west-1,c7g.8xlarge,reserved_1y,all_upfront,1.026712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:59.708605 +AWS,us-west-1,c7g.8xlarge,reserved_1y,no_upfront,1.026712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:37.973509 +AWS,us-west-1,c7g.8xlarge,reserved_1y,partial_upfront,1.026712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:26.862535 +AWS,us-west-1,c7g.8xlarge,reserved_3y,all_upfront,0.342237,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:07.698382 +AWS,us-west-1,c7g.8xlarge,reserved_3y,no_upfront,0.342237,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:38.546618 +AWS,us-west-1,c7g.8xlarge,reserved_3y,partial_upfront,0.342237,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:39.322933 +AWS,us-west-1,c7g.8xlarge,spot,NA,0.529645,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395451 +AWS,us-west-1,c7g.xlarge,on_demand,NA,0.1802,USD,AWS Pricing API,2025-11-30T08:54:15.884200 +AWS,us-west-1,c7g.xlarge,reserved_1y,all_upfront,0.119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:46.901699 +AWS,us-west-1,c7g.xlarge,reserved_1y,no_upfront,0.119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:24.914375 +AWS,us-west-1,c7g.xlarge,reserved_1y,partial_upfront,0.119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:13.805331 +AWS,us-west-1,c7g.xlarge,reserved_3y,all_upfront,0.119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:54.924175 +AWS,us-west-1,c7g.xlarge,reserved_3y,no_upfront,0.119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:25.413336 +AWS,us-west-1,c7g.xlarge,reserved_3y,partial_upfront,0.119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:26.500739 +AWS,us-west-1,c7g.xlarge,spot,NA,0.073943,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395190 +AWS,us-west-1,c7gd.12xlarge,on_demand,NA,2.7216,USD,AWS Pricing API,2025-11-30T08:54:26.832016 +AWS,us-west-1,c7gd.12xlarge,reserved_1y,all_upfront,1.600342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:57.693298 +AWS,us-west-1,c7gd.12xlarge,reserved_1y,no_upfront,1.600342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:35.929196 +AWS,us-west-1,c7gd.12xlarge,reserved_1y,partial_upfront,1.600342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:24.769458 +AWS,us-west-1,c7gd.12xlarge,reserved_3y,all_upfront,0.533447,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:05.704660 +AWS,us-west-1,c7gd.12xlarge,reserved_3y,no_upfront,0.533447,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:36.480046 +AWS,us-west-1,c7gd.12xlarge,reserved_3y,partial_upfront,0.533447,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:37.310411 +AWS,us-west-1,c7gd.12xlarge,spot,NA,0.854175,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395405 +AWS,us-west-1,c7gd.16xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T08:54:12.697389 +AWS,us-west-1,c7gd.16xlarge,reserved_1y,all_upfront,5.275685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:43.822013 +AWS,us-west-1,c7gd.16xlarge,reserved_1y,no_upfront,5.275685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:21.744698 +AWS,us-west-1,c7gd.16xlarge,reserved_1y,partial_upfront,5.275685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:10.702004 +AWS,us-west-1,c7gd.16xlarge,reserved_3y,all_upfront,1.758562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:51.842672 +AWS,us-west-1,c7gd.16xlarge,reserved_3y,no_upfront,1.758562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:22.276664 +AWS,us-west-1,c7gd.16xlarge,reserved_3y,partial_upfront,1.758562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:23.439325 +AWS,us-west-1,c7gd.16xlarge,spot,NA,1.14369,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395129 +AWS,us-west-1,c7gd.2xlarge,on_demand,NA,0.4536,USD,AWS Pricing API,2025-11-30T08:54:42.010401 +AWS,us-west-1,c7gd.2xlarge,reserved_1y,all_upfront,0.2858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:12.955108 +AWS,us-west-1,c7gd.2xlarge,reserved_1y,no_upfront,0.2858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:51.314925 +AWS,us-west-1,c7gd.2xlarge,reserved_1y,partial_upfront,0.2858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:40.007680 +AWS,us-west-1,c7gd.2xlarge,reserved_3y,all_upfront,0.2858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:20.783447 +AWS,us-west-1,c7gd.2xlarge,reserved_3y,no_upfront,0.2858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:51.994865 +AWS,us-west-1,c7gd.2xlarge,reserved_3y,partial_upfront,0.2858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:52.469315 +AWS,us-west-1,c7gd.2xlarge,spot,NA,0.142292,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395734 +AWS,us-west-1,c7gd.4xlarge,on_demand,NA,0.9072,USD,AWS Pricing API,2025-11-30T08:54:29.521849 +AWS,us-west-1,c7gd.4xlarge,reserved_1y,all_upfront,0.681668,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:00.380531 +AWS,us-west-1,c7gd.4xlarge,reserved_1y,no_upfront,0.681668,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:38.654401 +AWS,us-west-1,c7gd.4xlarge,reserved_1y,partial_upfront,0.681668,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:27.528884 +AWS,us-west-1,c7gd.4xlarge,reserved_3y,all_upfront,0.454423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:08.368516 +AWS,us-west-1,c7gd.4xlarge,reserved_3y,no_upfront,0.454423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:39.243446 +AWS,us-west-1,c7gd.4xlarge,reserved_3y,partial_upfront,0.454423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:39.986683 +AWS,us-west-1,c7gd.4xlarge,spot,NA,0.358475,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395447 +AWS,us-west-1,c7gd.8xlarge,on_demand,NA,1.8144,USD,AWS Pricing API,2025-11-30T08:54:21.057365 +AWS,us-west-1,c7gd.8xlarge,reserved_1y,all_upfront,1.336073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:52.026808 +AWS,us-west-1,c7gd.8xlarge,reserved_1y,no_upfront,1.336073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:30.191012 +AWS,us-west-1,c7gd.8xlarge,reserved_1y,partial_upfront,1.336073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:18.983659 +AWS,us-west-1,c7gd.8xlarge,reserved_3y,all_upfront,0.445358,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:00.024118 +AWS,us-west-1,c7gd.8xlarge,reserved_3y,no_upfront,0.445358,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:30.603723 +AWS,us-west-1,c7gd.8xlarge,reserved_3y,partial_upfront,0.445358,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:31.595134 +AWS,us-west-1,c7gd.8xlarge,spot,NA,0.619319,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395267 +AWS,us-west-1,c7gd.xlarge,on_demand,NA,0.2268,USD,AWS Pricing API,2025-11-30T08:55:00.021510 +AWS,us-west-1,c7gd.xlarge,reserved_1y,all_upfront,0.17036,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:30.989045 +AWS,us-west-1,c7gd.xlarge,reserved_1y,no_upfront,0.17036,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:09.499730 +AWS,us-west-1,c7gd.xlarge,reserved_1y,partial_upfront,0.17036,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:58.084353 +AWS,us-west-1,c7gd.xlarge,reserved_3y,all_upfront,0.113587,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:38.786037 +AWS,us-west-1,c7gd.xlarge,reserved_3y,no_upfront,0.113587,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:10.378451 +AWS,us-west-1,c7gd.xlarge,reserved_3y,partial_upfront,0.113587,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:10.468435 +AWS,us-west-1,c7gd.xlarge,spot,NA,0.062449,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396075 +AWS,us-west-1,c7i.12xlarge,on_demand,NA,2.6712,USD,AWS Pricing API,2025-11-30T08:54:21.335119 +AWS,us-west-1,c7i.12xlarge,reserved_1y,all_upfront,1.646575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:52.296880 +AWS,us-west-1,c7i.12xlarge,reserved_1y,no_upfront,1.646575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:30.462653 +AWS,us-west-1,c7i.12xlarge,reserved_1y,partial_upfront,1.646575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:19.255960 +AWS,us-west-1,c7i.12xlarge,reserved_3y,all_upfront,0.548858,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:00.293417 +AWS,us-west-1,c7i.12xlarge,reserved_3y,no_upfront,0.548858,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:30.877971 +AWS,us-west-1,c7i.12xlarge,reserved_3y,partial_upfront,0.548858,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:31.864689 +AWS,us-west-1,c7i.12xlarge,spot,NA,0.943619,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395271 +AWS,us-west-1,c7i.16xlarge,on_demand,NA,3.5616,USD,AWS Pricing API,2025-11-30T08:54:58.301538 +AWS,us-west-1,c7i.16xlarge,reserved_1y,all_upfront,2.536301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:29.252033 +AWS,us-west-1,c7i.16xlarge,reserved_1y,no_upfront,2.536301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:07.743994 +AWS,us-west-1,c7i.16xlarge,reserved_1y,partial_upfront,2.536301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:56.277948 +AWS,us-west-1,c7i.16xlarge,reserved_3y,all_upfront,0.845434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:37.075925 +AWS,us-west-1,c7i.16xlarge,reserved_3y,no_upfront,0.845434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:08.621840 +AWS,us-west-1,c7i.16xlarge,reserved_3y,partial_upfront,0.845434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:08.743621 +AWS,us-west-1,c7i.16xlarge,spot,NA,1.16839,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396063 +AWS,us-west-1,c7i.24xlarge,on_demand,NA,5.3424,USD,AWS Pricing API,2025-11-30T08:54:32.210793 +AWS,us-west-1,c7i.24xlarge,reserved_1y,all_upfront,3.52844,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:03.105613 +AWS,us-west-1,c7i.24xlarge,reserved_1y,no_upfront,3.52844,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:41.365848 +AWS,us-west-1,c7i.24xlarge,reserved_1y,partial_upfront,3.52844,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:30.196932 +AWS,us-west-1,c7i.24xlarge,reserved_3y,all_upfront,3.52844,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:11.031221 +AWS,us-west-1,c7i.24xlarge,reserved_3y,no_upfront,3.52844,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:42.005739 +AWS,us-west-1,c7i.24xlarge,reserved_3y,partial_upfront,3.52844,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:42.683016 +AWS,us-west-1,c7i.24xlarge,spot,NA,1.305553,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395501 +AWS,us-west-1,c7i.2xlarge,on_demand,NA,0.4452,USD,AWS Pricing API,2025-11-30T08:54:46.744120 +AWS,us-west-1,c7i.2xlarge,reserved_1y,all_upfront,0.29404,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:17.685956 +AWS,us-west-1,c7i.2xlarge,reserved_1y,no_upfront,0.29404,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:56.067208 +AWS,us-west-1,c7i.2xlarge,reserved_1y,partial_upfront,0.29404,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:44.719276 +AWS,us-west-1,c7i.2xlarge,reserved_3y,all_upfront,0.29404,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:25.485210 +AWS,us-west-1,c7i.2xlarge,reserved_3y,no_upfront,0.29404,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:56.812637 +AWS,us-west-1,c7i.2xlarge,reserved_3y,partial_upfront,0.29404,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:57.217443 +AWS,us-west-1,c7i.2xlarge,spot,NA,0.171822,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395842 +AWS,us-west-1,c7i.48xlarge,on_demand,NA,10.6848,USD,AWS Pricing API,2025-11-30T08:54:14.810526 +AWS,us-west-1,c7i.48xlarge,reserved_1y,all_upfront,6.720808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:45.835719 +AWS,us-west-1,c7i.48xlarge,reserved_1y,no_upfront,6.720808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:23.832366 +AWS,us-west-1,c7i.48xlarge,reserved_1y,partial_upfront,6.720808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:12.714387 +AWS,us-west-1,c7i.48xlarge,reserved_3y,all_upfront,4.480549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:53.852492 +AWS,us-west-1,c7i.48xlarge,reserved_3y,no_upfront,4.480549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:24.326329 +AWS,us-west-1,c7i.48xlarge,reserved_3y,partial_upfront,4.480549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:25.441896 +AWS,us-west-1,c7i.48xlarge,spot,NA,2.009399,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395178 +AWS,us-west-1,c7i.4xlarge,on_demand,NA,0.8904,USD,AWS Pricing API,2025-11-30T08:54:27.907994 +AWS,us-west-1,c7i.4xlarge,reserved_1y,all_upfront,0.634132,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:58.765049 +AWS,us-west-1,c7i.4xlarge,reserved_1y,no_upfront,0.634132,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:37.016150 +AWS,us-west-1,c7i.4xlarge,reserved_1y,partial_upfront,0.634132,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:25.857736 +AWS,us-west-1,c7i.4xlarge,reserved_3y,all_upfront,0.211377,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:06.769417 +AWS,us-west-1,c7i.4xlarge,reserved_3y,no_upfront,0.211377,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:37.577212 +AWS,us-west-1,c7i.4xlarge,reserved_3y,partial_upfront,0.211377,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:38.384167 +AWS,us-west-1,c7i.4xlarge,spot,NA,0.300683,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395440 +AWS,us-west-1,c7i.8xlarge,on_demand,NA,1.7808,USD,AWS Pricing API,2025-11-30T08:53:59.661950 +AWS,us-west-1,c7i.8xlarge,reserved_1y,all_upfront,0.93646,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:30.831632 +AWS,us-west-1,c7i.8xlarge,reserved_1y,no_upfront,0.93646,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:08.636919 +AWS,us-west-1,c7i.8xlarge,reserved_1y,partial_upfront,0.93646,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:57.627884 +AWS,us-west-1,c7i.8xlarge,reserved_3y,all_upfront,0.93646,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:38.934616 +AWS,us-west-1,c7i.8xlarge,reserved_3y,no_upfront,0.93646,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:09.141449 +AWS,us-west-1,c7i.8xlarge,reserved_3y,partial_upfront,0.93646,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:10.610947 +AWS,us-west-1,c7i.8xlarge,spot,NA,0.67321,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394885 +AWS,us-west-1,c7i.large,on_demand,NA,0.1113,USD,AWS Pricing API,2025-11-30T08:54:46.202570 +AWS,us-west-1,c7i.large,reserved_1y,all_upfront,0.108379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:17.148514 +AWS,us-west-1,c7i.large,reserved_1y,no_upfront,0.108379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:55.522891 +AWS,us-west-1,c7i.large,reserved_1y,partial_upfront,0.108379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:44.175377 +AWS,us-west-1,c7i.large,reserved_3y,all_upfront,0.054193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:24.948056 +AWS,us-west-1,c7i.large,reserved_3y,no_upfront,0.054193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:56.256484 +AWS,us-west-1,c7i.large,reserved_3y,partial_upfront,0.054193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:56.674657 +AWS,us-west-1,c7i.large,spot,NA,0.033345,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395845 +AWS,us-west-1,c7i.metal-24xl,on_demand,NA,5.3424,USD,AWS Pricing API,2025-11-30T08:54:15.609377 +AWS,us-west-1,c7i.metal-24xl,reserved_1y,all_upfront,2.42902,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:46.633445 +AWS,us-west-1,c7i.metal-24xl,reserved_1y,no_upfront,2.42902,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:24.643801 +AWS,us-west-1,c7i.metal-24xl,reserved_1y,partial_upfront,2.42902,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:13.537217 +AWS,us-west-1,c7i.metal-24xl,reserved_3y,all_upfront,2.42902,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:54.654298 +AWS,us-west-1,c7i.metal-24xl,reserved_3y,no_upfront,2.42902,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:25.137847 +AWS,us-west-1,c7i.metal-24xl,reserved_3y,partial_upfront,2.42902,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:26.236431 +AWS,us-west-1,c7i.metal-24xl,spot,NA,1.296884,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395174 +AWS,us-west-1,c7i.metal-48xl,on_demand,NA,10.6848,USD,AWS Pricing API,2025-11-30T08:54:03.703365 +AWS,us-west-1,c7i.metal-48xl,reserved_1y,all_upfront,8.15254,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:34.877464 +AWS,us-west-1,c7i.metal-48xl,reserved_1y,no_upfront,8.15254,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:12.732317 +AWS,us-west-1,c7i.metal-48xl,reserved_1y,partial_upfront,8.15254,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:01.673896 +AWS,us-west-1,c7i.metal-48xl,reserved_3y,all_upfront,8.15254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:42.980709 +AWS,us-west-1,c7i.metal-48xl,reserved_3y,no_upfront,8.15254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:13.235667 +AWS,us-west-1,c7i.metal-48xl,reserved_3y,partial_upfront,8.15254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:14.600389 +AWS,us-west-1,c7i.metal-48xl,spot,NA,1.901761,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394947 +AWS,us-west-1,c7i.xlarge,on_demand,NA,0.2226,USD,AWS Pricing API,2025-11-30T08:54:57.367931 +AWS,us-west-1,c7i.xlarge,reserved_1y,all_upfront,0.14702,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:28.312914 +AWS,us-west-1,c7i.xlarge,reserved_1y,no_upfront,0.14702,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:06.796704 +AWS,us-west-1,c7i.xlarge,reserved_1y,partial_upfront,0.14702,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:55.339053 +AWS,us-west-1,c7i.xlarge,reserved_3y,all_upfront,0.14702,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:36.147867 +AWS,us-west-1,c7i.xlarge,reserved_3y,no_upfront,0.14702,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:07.651850 +AWS,us-west-1,c7i.xlarge,reserved_3y,partial_upfront,0.14702,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:07.814928 +AWS,us-west-1,c7i.xlarge,spot,NA,0.090559,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396051 +AWS,us-west-1,c8g.12xlarge,on_demand,NA,2.37888,USD,AWS Pricing API,2025-11-30T08:54:54.967460 +AWS,us-west-1,c8g.12xlarge,reserved_1y,all_upfront,1.81517,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:25.900943 +AWS,us-west-1,c8g.12xlarge,reserved_1y,no_upfront,1.81517,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:04.345137 +AWS,us-west-1,c8g.12xlarge,reserved_1y,partial_upfront,1.81517,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:52.929547 +AWS,us-west-1,c8g.12xlarge,reserved_3y,all_upfront,1.81517,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:33.791188 +AWS,us-west-1,c8g.12xlarge,reserved_3y,no_upfront,1.81517,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:05.193124 +AWS,us-west-1,c8g.12xlarge,reserved_3y,partial_upfront,1.81517,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:05.403525 +AWS,us-west-1,c8g.12xlarge,spot,NA,0.799657,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395997 +AWS,us-west-1,c8g.16xlarge,on_demand,NA,3.17184,USD,AWS Pricing API,2025-11-30T08:53:58.596351 +AWS,us-west-1,c8g.16xlarge,reserved_1y,all_upfront,2.09471,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:29.738473 +AWS,us-west-1,c8g.16xlarge,reserved_1y,no_upfront,2.09471,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:07.553066 +AWS,us-west-1,c8g.16xlarge,reserved_1y,partial_upfront,2.09471,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:56.564486 +AWS,us-west-1,c8g.16xlarge,reserved_3y,all_upfront,2.09471,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:37.867623 +AWS,us-west-1,c8g.16xlarge,reserved_3y,no_upfront,2.09471,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:08.057004 +AWS,us-west-1,c8g.16xlarge,reserved_3y,partial_upfront,2.09471,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:09.541917 +AWS,us-west-1,c8g.16xlarge,spot,NA,1.206994,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394840 +AWS,us-west-1,c8g.24xlarge,on_demand,NA,4.75776,USD,AWS Pricing API,2025-11-30T08:54:44.982012 +AWS,us-west-1,c8g.24xlarge,reserved_1y,all_upfront,4.006395,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:15.932243 +AWS,us-west-1,c8g.24xlarge,reserved_1y,no_upfront,4.006395,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:54.303280 +AWS,us-west-1,c8g.24xlarge,reserved_1y,partial_upfront,4.006395,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:42.967279 +AWS,us-west-1,c8g.24xlarge,reserved_3y,all_upfront,2.003198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:23.731046 +AWS,us-west-1,c8g.24xlarge,reserved_3y,no_upfront,2.003198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:55.014316 +AWS,us-west-1,c8g.24xlarge,reserved_3y,partial_upfront,2.003198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:55.472351 +AWS,us-west-1,c8g.24xlarge,spot,NA,1.307212,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395807 +AWS,us-west-1,c8g.2xlarge,on_demand,NA,0.39648,USD,AWS Pricing API,2025-11-30T08:54:10.660393 +AWS,us-west-1,c8g.2xlarge,reserved_1y,all_upfront,0.244406,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:41.813354 +AWS,us-west-1,c8g.2xlarge,reserved_1y,no_upfront,0.244406,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:19.664605 +AWS,us-west-1,c8g.2xlarge,reserved_1y,partial_upfront,0.244406,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:08.672120 +AWS,us-west-1,c8g.2xlarge,reserved_3y,all_upfront,0.081469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:49.829691 +AWS,us-west-1,c8g.2xlarge,reserved_3y,no_upfront,0.081469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:20.238205 +AWS,us-west-1,c8g.2xlarge,reserved_3y,partial_upfront,0.081469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:21.432485 +AWS,us-west-1,c8g.2xlarge,spot,NA,0.102,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395122 +AWS,us-west-1,c8g.48xlarge,on_demand,NA,9.51552,USD,AWS Pricing API,2025-11-30T08:55:03.681397 +AWS,us-west-1,c8g.48xlarge,reserved_1y,all_upfront,7.26067,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:34.587719 +AWS,us-west-1,c8g.48xlarge,reserved_1y,no_upfront,7.26067,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:13.164831 +AWS,us-west-1,c8g.48xlarge,reserved_1y,partial_upfront,7.26067,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:01.746034 +AWS,us-west-1,c8g.48xlarge,reserved_3y,all_upfront,7.26067,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:42.350784 +AWS,us-west-1,c8g.48xlarge,reserved_3y,no_upfront,7.26067,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:14.059742 +AWS,us-west-1,c8g.48xlarge,reserved_3y,partial_upfront,7.26067,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:14.094277 +AWS,us-west-1,c8g.48xlarge,spot,NA,2.058798,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396148 +AWS,us-west-1,c8g.4xlarge,on_demand,NA,0.79296,USD,AWS Pricing API,2025-11-30T08:54:13.113059 +AWS,us-west-1,c8g.4xlarge,reserved_1y,all_upfront,0.564726,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:44.228765 +AWS,us-west-1,c8g.4xlarge,reserved_1y,no_upfront,0.564726,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:22.165853 +AWS,us-west-1,c8g.4xlarge,reserved_1y,partial_upfront,0.564726,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:11.103138 +AWS,us-west-1,c8g.4xlarge,reserved_3y,all_upfront,0.188242,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:52.250520 +AWS,us-west-1,c8g.4xlarge,reserved_3y,no_upfront,0.188242,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:22.683176 +AWS,us-west-1,c8g.4xlarge,reserved_3y,partial_upfront,0.188242,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:23.839561 +AWS,us-west-1,c8g.4xlarge,spot,NA,0.188966,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395133 +AWS,us-west-1,c8g.8xlarge,on_demand,NA,1.58592,USD,AWS Pricing API,2025-11-30T08:54:16.727518 +AWS,us-west-1,c8g.8xlarge,reserved_1y,all_upfront,0.83394,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:47.716163 +AWS,us-west-1,c8g.8xlarge,reserved_1y,no_upfront,0.83394,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:25.731226 +AWS,us-west-1,c8g.8xlarge,reserved_1y,partial_upfront,0.83394,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:14.608483 +AWS,us-west-1,c8g.8xlarge,reserved_3y,all_upfront,0.83394,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:55.731798 +AWS,us-west-1,c8g.8xlarge,reserved_3y,no_upfront,0.83394,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:26.238855 +AWS,us-west-1,c8g.8xlarge,reserved_3y,partial_upfront,0.83394,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:27.297084 +AWS,us-west-1,c8g.8xlarge,spot,NA,1.513569,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395194 +AWS,us-west-1,c8g.large,on_demand,NA,0.09912,USD,AWS Pricing API,2025-11-30T08:54:58.030686 +AWS,us-west-1,c8g.large,reserved_1y,all_upfront,0.062334,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:28.978937 +AWS,us-west-1,c8g.large,reserved_1y,no_upfront,0.062334,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:07.473674 +AWS,us-west-1,c8g.large,reserved_1y,partial_upfront,0.062334,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:56.012196 +AWS,us-west-1,c8g.large,reserved_3y,all_upfront,0.041558,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:36.813091 +AWS,us-west-1,c8g.large,reserved_3y,no_upfront,0.041558,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:08.343965 +AWS,us-west-1,c8g.large,reserved_3y,partial_upfront,0.041558,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:08.473727 +AWS,us-west-1,c8g.large,spot,NA,0.02416,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396059 +AWS,us-west-1,c8g.medium,on_demand,NA,0.04956,USD,AWS Pricing API,2025-11-30T08:54:42.814675 +AWS,us-west-1,c8g.medium,reserved_1y,all_upfront,0.05879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:13.773596 +AWS,us-west-1,c8g.medium,reserved_1y,no_upfront,0.05879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:52.130011 +AWS,us-west-1,c8g.medium,reserved_1y,partial_upfront,0.05879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:40.807723 +AWS,us-west-1,c8g.medium,reserved_3y,all_upfront,0.019597,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:21.583685 +AWS,us-west-1,c8g.medium,reserved_3y,no_upfront,0.019597,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:52.809538 +AWS,us-west-1,c8g.medium,reserved_3y,partial_upfront,0.019597,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:53.318955 +AWS,us-west-1,c8g.medium,spot,NA,0.012527,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395757 +AWS,us-west-1,c8g.xlarge,on_demand,NA,0.19824,USD,AWS Pricing API,2025-11-30T08:54:06.874292 +AWS,us-west-1,c8g.xlarge,reserved_1y,all_upfront,0.124669,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:37.965919 +AWS,us-west-1,c8g.xlarge,reserved_1y,no_upfront,0.124669,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:15.868946 +AWS,us-west-1,c8g.xlarge,reserved_1y,partial_upfront,0.124669,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:04.891171 +AWS,us-west-1,c8g.xlarge,reserved_3y,all_upfront,0.083116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:46.083454 +AWS,us-west-1,c8g.xlarge,reserved_3y,no_upfront,0.083116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:16.393485 +AWS,us-west-1,c8g.xlarge,reserved_3y,partial_upfront,0.083116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:17.677596 +AWS,us-west-1,c8g.xlarge,spot,NA,0.081907,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395024 +AWS,us-west-1,g4dn.12xlarge,on_demand,NA,4.694,USD,AWS Pricing API,2025-11-30T08:54:03.565255 +AWS,us-west-1,g4dn.12xlarge,reserved_1y,all_upfront,4.224721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:34.738743 +AWS,us-west-1,g4dn.12xlarge,reserved_1y,no_upfront,4.224721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:12.594669 +AWS,us-west-1,g4dn.12xlarge,reserved_1y,partial_upfront,4.224721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:01.538652 +AWS,us-west-1,g4dn.12xlarge,reserved_3y,all_upfront,2.11224,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:42.834498 +AWS,us-west-1,g4dn.12xlarge,reserved_3y,no_upfront,2.11224,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:13.096382 +AWS,us-west-1,g4dn.12xlarge,reserved_3y,partial_upfront,2.11224,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:14.467154 +AWS,us-west-1,g4dn.12xlarge,spot,NA,1.555964,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394927 +AWS,us-west-1,g4dn.16xlarge,on_demand,NA,5.222,USD,AWS Pricing API,2025-11-30T08:54:09.837528 +AWS,us-west-1,g4dn.16xlarge,reserved_1y,all_upfront,5.640137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:40.933678 +AWS,us-west-1,g4dn.16xlarge,reserved_1y,no_upfront,5.640137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:18.844462 +AWS,us-west-1,g4dn.16xlarge,reserved_1y,partial_upfront,5.640137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:07.869243 +AWS,us-west-1,g4dn.16xlarge,reserved_3y,all_upfront,2.820046,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:49.021258 +AWS,us-west-1,g4dn.16xlarge,reserved_3y,no_upfront,2.820046,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:19.409390 +AWS,us-west-1,g4dn.16xlarge,reserved_3y,partial_upfront,2.820046,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:20.621356 +AWS,us-west-1,g4dn.16xlarge,spot,NA,1.140819,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395081 +AWS,us-west-1,g4dn.2xlarge,on_demand,NA,0.902,USD,AWS Pricing API,2025-11-30T08:54:43.755729 +AWS,us-west-1,g4dn.2xlarge,reserved_1y,all_upfront,1.432648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:14.722907 +AWS,us-west-1,g4dn.2xlarge,reserved_1y,no_upfront,1.432648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:53.085169 +AWS,us-west-1,g4dn.2xlarge,reserved_1y,partial_upfront,1.432648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:41.744447 +AWS,us-west-1,g4dn.2xlarge,reserved_3y,all_upfront,0.477549,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:22.516178 +AWS,us-west-1,g4dn.2xlarge,reserved_3y,no_upfront,0.477549,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:53.771409 +AWS,us-west-1,g4dn.2xlarge,reserved_3y,partial_upfront,0.477549,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:54.257094 +AWS,us-west-1,g4dn.2xlarge,spot,NA,0.435152,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395761 +AWS,us-west-1,g4dn.4xlarge,on_demand,NA,1.445,USD,AWS Pricing API,2025-11-30T08:54:24.522939 +AWS,us-west-1,g4dn.4xlarge,reserved_1y,all_upfront,2.293721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:55.395045 +AWS,us-west-1,g4dn.4xlarge,reserved_1y,no_upfront,2.293721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:33.585721 +AWS,us-west-1,g4dn.4xlarge,reserved_1y,partial_upfront,2.293721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:22.374706 +AWS,us-west-1,g4dn.4xlarge,reserved_3y,all_upfront,0.764574,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:03.385308 +AWS,us-west-1,g4dn.4xlarge,reserved_3y,no_upfront,0.764574,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:34.115806 +AWS,us-west-1,g4dn.4xlarge,reserved_3y,partial_upfront,0.764574,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:34.963596 +AWS,us-west-1,g4dn.4xlarge,spot,NA,0.727264,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395354 +AWS,us-west-1,g4dn.8xlarge,on_demand,NA,2.611,USD,AWS Pricing API,2025-11-30T08:54:27.243490 +AWS,us-west-1,g4dn.8xlarge,reserved_1y,all_upfront,1.714498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:58.096267 +AWS,us-west-1,g4dn.8xlarge,reserved_1y,no_upfront,1.714498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:36.340428 +AWS,us-west-1,g4dn.8xlarge,reserved_1y,partial_upfront,1.714498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:25.181724 +AWS,us-west-1,g4dn.8xlarge,reserved_3y,all_upfront,0.571499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:06.106158 +AWS,us-west-1,g4dn.8xlarge,reserved_3y,no_upfront,0.571499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:36.888985 +AWS,us-west-1,g4dn.8xlarge,reserved_3y,partial_upfront,0.571499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:37.715892 +AWS,us-west-1,g4dn.8xlarge,spot,NA,0.515748,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395421 +AWS,us-west-1,g4dn.xlarge,on_demand,NA,0.631,USD,AWS Pricing API,2025-11-30T08:54:50.380004 +AWS,us-west-1,g4dn.xlarge,reserved_1y,all_upfront,0.444,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:21.323846 +AWS,us-west-1,g4dn.xlarge,reserved_1y,no_upfront,0.444,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:59.713697 +AWS,us-west-1,g4dn.xlarge,reserved_1y,partial_upfront,0.444,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:48.374128 +AWS,us-west-1,g4dn.xlarge,reserved_3y,all_upfront,0.444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:29.097727 +AWS,us-west-1,g4dn.xlarge,reserved_3y,no_upfront,0.444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:00.508663 +AWS,us-west-1,g4dn.xlarge,reserved_3y,partial_upfront,0.444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:00.835473 +AWS,us-west-1,g4dn.xlarge,spot,NA,0.315121,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395903 +AWS,us-west-1,i2.2xlarge,on_demand,NA,1.876,USD,AWS Pricing API,2025-11-30T08:54:38.097874 +AWS,us-west-1,i2.2xlarge,reserved_1y,all_upfront,1.013963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:09.046268 +AWS,us-west-1,i2.2xlarge,reserved_1y,no_upfront,1.013963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:47.369886 +AWS,us-west-1,i2.2xlarge,reserved_1y,partial_upfront,1.013963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:36.105017 +AWS,us-west-1,i2.2xlarge,reserved_3y,all_upfront,0.675988,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:16.910142 +AWS,us-west-1,i2.2xlarge,reserved_3y,no_upfront,0.675988,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:47.998918 +AWS,us-west-1,i2.2xlarge,reserved_3y,partial_upfront,0.675988,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:48.587162 +AWS,us-west-1,i2.2xlarge,spot,NA,0.330212,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395660 +AWS,us-west-1,i2.4xlarge,on_demand,NA,3.751,USD,AWS Pricing API,2025-11-30T08:54:34.085223 +AWS,us-west-1,i2.4xlarge,reserved_1y,all_upfront,1.993142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:04.994684 +AWS,us-west-1,i2.4xlarge,reserved_1y,no_upfront,1.993142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:43.293613 +AWS,us-west-1,i2.4xlarge,reserved_1y,partial_upfront,1.993142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:32.070411 +AWS,us-west-1,i2.4xlarge,reserved_3y,all_upfront,1.159047,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:12.895770 +AWS,us-west-1,i2.4xlarge,reserved_3y,no_upfront,1.159047,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:43.914750 +AWS,us-west-1,i2.4xlarge,reserved_3y,partial_upfront,1.159047,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:44.571323 +AWS,us-west-1,i2.4xlarge,spot,NA,0.649309,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395565 +AWS,us-west-1,i2.8xlarge,on_demand,NA,7.502,USD,AWS Pricing API,2025-11-30T08:54:40.646982 +AWS,us-west-1,i2.8xlarge,reserved_1y,all_upfront,4.055626,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:11.602205 +AWS,us-west-1,i2.8xlarge,reserved_1y,no_upfront,4.055626,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:49.942498 +AWS,us-west-1,i2.8xlarge,reserved_1y,partial_upfront,4.055626,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:38.656801 +AWS,us-west-1,i2.8xlarge,reserved_3y,all_upfront,2.703875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:19.439435 +AWS,us-west-1,i2.8xlarge,reserved_3y,no_upfront,2.703875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:50.621695 +AWS,us-west-1,i2.8xlarge,reserved_3y,partial_upfront,2.703875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:51.135541 +AWS,us-west-1,i2.8xlarge,spot,NA,1.294224,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395722 +AWS,us-west-1,i2.xlarge,on_demand,NA,0.938,USD,AWS Pricing API,2025-11-30T08:54:41.188109 +AWS,us-west-1,i2.xlarge,reserved_1y,all_upfront,0.496804,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:12.149997 +AWS,us-west-1,i2.xlarge,reserved_1y,no_upfront,0.496804,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:50.499121 +AWS,us-west-1,i2.xlarge,reserved_1y,partial_upfront,0.496804,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:39.197515 +AWS,us-west-1,i2.xlarge,reserved_3y,all_upfront,0.165601,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:19.978847 +AWS,us-west-1,i2.xlarge,reserved_3y,no_upfront,0.165601,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:51.164171 +AWS,us-west-1,i2.xlarge,reserved_3y,partial_upfront,0.165601,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:51.667935 +AWS,us-west-1,i2.xlarge,spot,NA,0.197584,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395703 +AWS,us-west-1,i3.16xlarge,on_demand,NA,5.504,USD,AWS Pricing API,2025-11-30T08:54:47.400673 +AWS,us-west-1,i3.16xlarge,reserved_1y,all_upfront,8.438927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:18.348713 +AWS,us-west-1,i3.16xlarge,reserved_1y,no_upfront,8.438927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:56.737575 +AWS,us-west-1,i3.16xlarge,reserved_1y,partial_upfront,8.438927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:45.390087 +AWS,us-west-1,i3.16xlarge,reserved_3y,all_upfront,2.812976,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:26.148480 +AWS,us-west-1,i3.16xlarge,reserved_3y,no_upfront,2.812976,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:57.495116 +AWS,us-west-1,i3.16xlarge,reserved_3y,partial_upfront,2.812976,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:57.880426 +AWS,us-west-1,i3.16xlarge,spot,NA,2.194393,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395858 +AWS,us-west-1,i3.2xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T08:54:07.143539 +AWS,us-west-1,i3.2xlarge,reserved_1y,all_upfront,0.504909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:38.248683 +AWS,us-west-1,i3.2xlarge,reserved_1y,no_upfront,0.504909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:16.140132 +AWS,us-west-1,i3.2xlarge,reserved_1y,partial_upfront,0.504909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:05.166771 +AWS,us-west-1,i3.2xlarge,reserved_3y,all_upfront,0.168303,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:46.351443 +AWS,us-west-1,i3.2xlarge,reserved_3y,no_upfront,0.168303,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:16.666220 +AWS,us-west-1,i3.2xlarge,reserved_3y,partial_upfront,0.168303,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:17.941213 +AWS,us-west-1,i3.2xlarge,spot,NA,0.269169,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395016 +AWS,us-west-1,i3.4xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T08:54:08.617743 +AWS,us-west-1,i3.4xlarge,reserved_1y,all_upfront,0.876484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:39.716863 +AWS,us-west-1,i3.4xlarge,reserved_1y,no_upfront,0.876484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:17.626586 +AWS,us-west-1,i3.4xlarge,reserved_1y,partial_upfront,0.876484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:06.648766 +AWS,us-west-1,i3.4xlarge,reserved_3y,all_upfront,0.292161,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:47.809591 +AWS,us-west-1,i3.4xlarge,reserved_3y,no_upfront,0.292161,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:18.185882 +AWS,us-west-1,i3.4xlarge,reserved_3y,partial_upfront,0.292161,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:19.410947 +AWS,us-west-1,i3.4xlarge,spot,NA,0.563019,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395040 +AWS,us-west-1,i3.8xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T08:54:02.753478 +AWS,us-west-1,i3.8xlarge,reserved_1y,all_upfront,1.882,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:33.916022 +AWS,us-west-1,i3.8xlarge,reserved_1y,no_upfront,1.882,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:11.779578 +AWS,us-west-1,i3.8xlarge,reserved_1y,partial_upfront,1.882,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:00.711058 +AWS,us-west-1,i3.8xlarge,reserved_3y,all_upfront,1.882,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:42.034515 +AWS,us-west-1,i3.8xlarge,reserved_3y,no_upfront,1.882,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:12.280087 +AWS,us-west-1,i3.8xlarge,reserved_3y,partial_upfront,1.882,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:13.667347 +AWS,us-west-1,i3.8xlarge,spot,NA,0.781989,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394931 +AWS,us-west-1,i3.large,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:54:07.816451 +AWS,us-west-1,i3.large,reserved_1y,all_upfront,0.111936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:38.917535 +AWS,us-west-1,i3.large,reserved_1y,no_upfront,0.111936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:16.820420 +AWS,us-west-1,i3.large,reserved_1y,partial_upfront,0.111936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:05.847279 +AWS,us-west-1,i3.large,reserved_3y,all_upfront,0.074645,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:47.016006 +AWS,us-west-1,i3.large,reserved_3y,no_upfront,0.074645,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:17.345071 +AWS,us-west-1,i3.large,reserved_3y,partial_upfront,0.074645,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:18.608348 +AWS,us-west-1,i3.large,spot,NA,0.041924,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395044 +AWS,us-west-1,i3.xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T08:54:33.270890 +AWS,us-west-1,i3.xlarge,reserved_1y,all_upfront,0.257767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:04.176203 +AWS,us-west-1,i3.xlarge,reserved_1y,no_upfront,0.257767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:42.452448 +AWS,us-west-1,i3.xlarge,reserved_1y,partial_upfront,0.257767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:31.261519 +AWS,us-west-1,i3.xlarge,reserved_3y,all_upfront,0.171922,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:12.095020 +AWS,us-west-1,i3.xlarge,reserved_3y,no_upfront,0.171922,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:43.092080 +AWS,us-west-1,i3.xlarge,reserved_3y,partial_upfront,0.171922,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:43.763324 +AWS,us-west-1,i3.xlarge,spot,NA,0.117338,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395519 +AWS,us-west-1,i3en.12xlarge,on_demand,NA,6.0,USD,AWS Pricing API,2025-11-30T08:54:04.778809 +AWS,us-west-1,i3en.12xlarge,reserved_1y,all_upfront,4.098,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:35.943198 +AWS,us-west-1,i3en.12xlarge,reserved_1y,no_upfront,4.098,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:13.814890 +AWS,us-west-1,i3en.12xlarge,reserved_1y,partial_upfront,4.098,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:02.842407 +AWS,us-west-1,i3en.12xlarge,reserved_3y,all_upfront,4.098,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:44.049855 +AWS,us-west-1,i3en.12xlarge,reserved_3y,no_upfront,4.098,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:14.328960 +AWS,us-west-1,i3en.12xlarge,reserved_3y,partial_upfront,4.098,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:15.672966 +AWS,us-west-1,i3en.12xlarge,spot,NA,1.352742,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394968 +AWS,us-west-1,i3en.24xlarge,on_demand,NA,12.0,USD,AWS Pricing API,2025-11-30T08:54:10.109979 +AWS,us-west-1,i3en.24xlarge,reserved_1y,all_upfront,16.522032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:41.257352 +AWS,us-west-1,i3en.24xlarge,reserved_1y,no_upfront,16.522032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:19.119072 +AWS,us-west-1,i3en.24xlarge,reserved_1y,partial_upfront,16.522032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:08.136423 +AWS,us-west-1,i3en.24xlarge,reserved_3y,all_upfront,5.507344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:49.290932 +AWS,us-west-1,i3en.24xlarge,reserved_3y,no_upfront,5.507344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:19.695101 +AWS,us-west-1,i3en.24xlarge,reserved_3y,partial_upfront,5.507344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:20.887478 +AWS,us-west-1,i3en.24xlarge,spot,NA,2.048537,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395073 +AWS,us-west-1,i3en.2xlarge,on_demand,NA,1.0,USD,AWS Pricing API,2025-11-30T08:53:59.928989 +AWS,us-west-1,i3en.2xlarge,reserved_1y,all_upfront,0.683,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:31.101774 +AWS,us-west-1,i3en.2xlarge,reserved_1y,no_upfront,0.683,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:08.912583 +AWS,us-west-1,i3en.2xlarge,reserved_1y,partial_upfront,0.683,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:57.894897 +AWS,us-west-1,i3en.2xlarge,reserved_3y,all_upfront,0.683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:39.200729 +AWS,us-west-1,i3en.2xlarge,reserved_3y,no_upfront,0.683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:09.413225 +AWS,us-west-1,i3en.2xlarge,reserved_3y,partial_upfront,0.683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:10.876638 +AWS,us-west-1,i3en.2xlarge,spot,NA,0.291086,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394872 +AWS,us-west-1,i3en.3xlarge,on_demand,NA,1.5,USD,AWS Pricing API,2025-11-30T08:54:54.560608 +AWS,us-west-1,i3en.3xlarge,reserved_1y,all_upfront,1.123986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:25.490959 +AWS,us-west-1,i3en.3xlarge,reserved_1y,no_upfront,1.123986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:03.936637 +AWS,us-west-1,i3en.3xlarge,reserved_1y,partial_upfront,1.123986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:52.522121 +AWS,us-west-1,i3en.3xlarge,reserved_3y,all_upfront,0.749329,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:33.396242 +AWS,us-west-1,i3en.3xlarge,reserved_3y,no_upfront,0.749329,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:04.780281 +AWS,us-west-1,i3en.3xlarge,reserved_3y,partial_upfront,0.749329,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:05.002431 +AWS,us-west-1,i3en.3xlarge,spot,NA,0.329107,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395993 +AWS,us-west-1,i3en.6xlarge,on_demand,NA,3.0,USD,AWS Pricing API,2025-11-30T08:54:45.926991 +AWS,us-west-1,i3en.6xlarge,reserved_1y,all_upfront,1.951685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:16.870358 +AWS,us-west-1,i3en.6xlarge,reserved_1y,no_upfront,1.951685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:55.252518 +AWS,us-west-1,i3en.6xlarge,reserved_1y,partial_upfront,1.951685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:43.905649 +AWS,us-west-1,i3en.6xlarge,reserved_3y,all_upfront,1.301228,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:24.674161 +AWS,us-west-1,i3en.6xlarge,reserved_3y,no_upfront,1.301228,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:55.972630 +AWS,us-west-1,i3en.6xlarge,reserved_3y,partial_upfront,1.301228,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:56.404916 +AWS,us-west-1,i3en.6xlarge,spot,NA,0.542979,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395815 +AWS,us-west-1,i3en.large,on_demand,NA,0.25,USD,AWS Pricing API,2025-11-30T08:54:18.771263 +AWS,us-west-1,i3en.large,reserved_1y,all_upfront,0.187721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:49.734838 +AWS,us-west-1,i3en.large,reserved_1y,no_upfront,0.187721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:27.830795 +AWS,us-west-1,i3en.large,reserved_1y,partial_upfront,0.187721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:16.611428 +AWS,us-west-1,i3en.large,reserved_3y,all_upfront,0.12524,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:57.735236 +AWS,us-west-1,i3en.large,reserved_3y,no_upfront,0.12524,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:28.283264 +AWS,us-west-1,i3en.large,reserved_3y,partial_upfront,0.12524,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:29.305743 +AWS,us-west-1,i3en.large,spot,NA,0.051519,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395251 +AWS,us-west-1,i3en.xlarge,on_demand,NA,0.5,USD,AWS Pricing API,2025-11-30T08:54:18.090422 +AWS,us-west-1,i3en.xlarge,reserved_1y,all_upfront,0.341,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:49.059751 +AWS,us-west-1,i3en.xlarge,reserved_1y,no_upfront,0.341,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:27.141682 +AWS,us-west-1,i3en.xlarge,reserved_1y,partial_upfront,0.341,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:15.945154 +AWS,us-west-1,i3en.xlarge,reserved_3y,all_upfront,0.341,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:57.060354 +AWS,us-west-1,i3en.xlarge,reserved_3y,no_upfront,0.341,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:27.602941 +AWS,us-west-1,i3en.xlarge,reserved_3y,partial_upfront,0.341,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:28.631312 +AWS,us-west-1,i3en.xlarge,spot,NA,0.145884,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395226 +AWS,us-west-1,i4i.16xlarge,on_demand,NA,6.054,USD,AWS Pricing API,2025-11-30T08:54:23.015068 +AWS,us-west-1,i4i.16xlarge,reserved_1y,all_upfront,2.794,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:53.917715 +AWS,us-west-1,i4i.16xlarge,reserved_1y,no_upfront,2.794,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:32.099884 +AWS,us-west-1,i4i.16xlarge,reserved_1y,partial_upfront,2.794,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:20.874529 +AWS,us-west-1,i4i.16xlarge,reserved_3y,all_upfront,2.794,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:01.911534 +AWS,us-west-1,i4i.16xlarge,reserved_3y,no_upfront,2.794,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:32.607537 +AWS,us-west-1,i4i.16xlarge,reserved_3y,partial_upfront,2.794,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:33.479735 +AWS,us-west-1,i4i.16xlarge,spot,NA,1.249685,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395334 +AWS,us-west-1,i4i.2xlarge,on_demand,NA,0.757,USD,AWS Pricing API,2025-11-30T08:54:38.903771 +AWS,us-west-1,i4i.2xlarge,reserved_1y,all_upfront,0.470046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:09.851354 +AWS,us-west-1,i4i.2xlarge,reserved_1y,no_upfront,0.470046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:48.184865 +AWS,us-west-1,i4i.2xlarge,reserved_1y,partial_upfront,0.470046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:36.908405 +AWS,us-west-1,i4i.2xlarge,reserved_3y,all_upfront,0.313349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:17.715350 +AWS,us-west-1,i4i.2xlarge,reserved_3y,no_upfront,0.313349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:48.832903 +AWS,us-west-1,i4i.2xlarge,reserved_3y,partial_upfront,0.313349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:49.402116 +AWS,us-west-1,i4i.2xlarge,spot,NA,0.224356,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395645 +AWS,us-west-1,i4i.32xlarge,on_demand,NA,12.1088,USD,AWS Pricing API,2025-11-30T08:54:51.177502 +AWS,us-west-1,i4i.32xlarge,reserved_1y,all_upfront,8.97304,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:22.125710 +AWS,us-west-1,i4i.32xlarge,reserved_1y,no_upfront,8.97304,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:00.527591 +AWS,us-west-1,i4i.32xlarge,reserved_1y,partial_upfront,8.97304,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:49.170802 +AWS,us-west-1,i4i.32xlarge,reserved_3y,all_upfront,5.98202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:30.063675 +AWS,us-west-1,i4i.32xlarge,reserved_3y,no_upfront,5.98202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:01.325963 +AWS,us-west-1,i4i.32xlarge,reserved_3y,partial_upfront,5.98202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:01.639830 +AWS,us-west-1,i4i.32xlarge,spot,NA,2.111873,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395949 +AWS,us-west-1,i4i.4xlarge,on_demand,NA,1.514,USD,AWS Pricing API,2025-11-30T08:54:27.507371 +AWS,us-west-1,i4i.4xlarge,reserved_1y,all_upfront,2.308219,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:58.363421 +AWS,us-west-1,i4i.4xlarge,reserved_1y,no_upfront,2.308219,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:36.608058 +AWS,us-west-1,i4i.4xlarge,reserved_1y,partial_upfront,2.308219,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:25.448430 +AWS,us-west-1,i4i.4xlarge,reserved_3y,all_upfront,0.769406,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:06.371536 +AWS,us-west-1,i4i.4xlarge,reserved_3y,no_upfront,0.769406,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:37.159842 +AWS,us-west-1,i4i.4xlarge,reserved_3y,partial_upfront,0.769406,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:37.980408 +AWS,us-west-1,i4i.4xlarge,spot,NA,0.407761,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395417 +AWS,us-west-1,i4i.8xlarge,on_demand,NA,3.027,USD,AWS Pricing API,2025-11-30T08:54:30.476892 +AWS,us-west-1,i4i.8xlarge,reserved_1y,all_upfront,4.616438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:01.335897 +AWS,us-west-1,i4i.8xlarge,reserved_1y,no_upfront,4.616438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:39.604055 +AWS,us-west-1,i4i.8xlarge,reserved_1y,partial_upfront,4.616438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:28.459567 +AWS,us-west-1,i4i.8xlarge,reserved_3y,all_upfront,1.538813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:09.306828 +AWS,us-west-1,i4i.8xlarge,reserved_3y,no_upfront,1.538813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:40.207892 +AWS,us-west-1,i4i.8xlarge,reserved_3y,partial_upfront,1.538813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:40.921306 +AWS,us-west-1,i4i.8xlarge,spot,NA,0.769443,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395489 +AWS,us-west-1,i4i.large,on_demand,NA,0.189,USD,AWS Pricing API,2025-11-30T08:54:55.775868 +AWS,us-west-1,i4i.large,reserved_1y,all_upfront,0.227968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:26.709561 +AWS,us-west-1,i4i.large,reserved_1y,no_upfront,0.227968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:05.172935 +AWS,us-west-1,i4i.large,reserved_1y,partial_upfront,0.227968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:53.728074 +AWS,us-west-1,i4i.large,reserved_3y,all_upfront,0.075989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:34.580928 +AWS,us-west-1,i4i.large,reserved_3y,no_upfront,0.075989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:06.016255 +AWS,us-west-1,i4i.large,reserved_3y,partial_upfront,0.075989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:06.213810 +AWS,us-west-1,i4i.large,spot,NA,0.042219,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396025 +AWS,us-west-1,i4i.xlarge,on_demand,NA,0.378,USD,AWS Pricing API,2025-11-30T08:54:37.295858 +AWS,us-west-1,i4i.xlarge,reserved_1y,all_upfront,0.294,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:08.247395 +AWS,us-west-1,i4i.xlarge,reserved_1y,no_upfront,0.294,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:46.539509 +AWS,us-west-1,i4i.xlarge,reserved_1y,partial_upfront,0.294,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:35.296600 +AWS,us-west-1,i4i.xlarge,reserved_3y,all_upfront,0.294,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:16.103180 +AWS,us-west-1,i4i.xlarge,reserved_3y,no_upfront,0.294,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:47.179326 +AWS,us-west-1,i4i.xlarge,reserved_3y,partial_upfront,0.294,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:47.778180 +AWS,us-west-1,i4i.xlarge,spot,NA,0.124226,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395614 +AWS,us-west-1,i7i.12xlarge,on_demand,NA,4.9949,USD,AWS Pricing API,2025-11-30T08:54:15.474555 +AWS,us-west-1,i7i.16xlarge,on_demand,NA,6.6598,USD,AWS Pricing API,2025-11-30T08:55:00.961715 +AWS,us-west-1,i7i.24xlarge,on_demand,NA,9.9898,USD,AWS Pricing API,2025-11-30T08:53:56.322349 +AWS,us-west-1,i7i.2xlarge,on_demand,NA,0.8325,USD,AWS Pricing API,2025-11-30T08:53:53.533231 +AWS,us-west-1,i7i.48xlarge,on_demand,NA,19.9795,USD,AWS Pricing API,2025-11-30T08:53:55.262914 +AWS,us-west-1,i7i.4xlarge,on_demand,NA,1.665,USD,AWS Pricing API,2025-11-30T08:54:57.894504 +AWS,us-west-1,i7i.8xlarge,on_demand,NA,3.3299,USD,AWS Pricing API,2025-11-30T08:54:28.180091 +AWS,us-west-1,i7i.large,on_demand,NA,0.2081,USD,AWS Pricing API,2025-11-30T08:54:11.615432 +AWS,us-west-1,i7i.xlarge,on_demand,NA,0.4162,USD,AWS Pricing API,2025-11-30T08:54:20.109474 +AWS,us-west-1,m4.10xlarge,on_demand,NA,2.34,USD,AWS Pricing API,2025-11-30T08:54:25.466394 +AWS,us-west-1,m4.10xlarge,reserved_1y,all_upfront,1.825799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:56.352059 +AWS,us-west-1,m4.10xlarge,reserved_1y,no_upfront,1.825799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:34.537596 +AWS,us-west-1,m4.10xlarge,reserved_1y,partial_upfront,1.825799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:23.331793 +AWS,us-west-1,m4.10xlarge,reserved_3y,all_upfront,0.6086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:04.337832 +AWS,us-west-1,m4.10xlarge,reserved_3y,no_upfront,0.6086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:35.089942 +AWS,us-west-1,m4.10xlarge,reserved_3y,partial_upfront,0.6086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:35.975639 +AWS,us-west-1,m4.10xlarge,spot,NA,0.713754,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395358 +AWS,us-west-1,m4.16xlarge,on_demand,NA,3.744,USD,AWS Pricing API,2025-11-30T08:54:30.612514 +AWS,us-west-1,m4.16xlarge,reserved_1y,all_upfront,3.456009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:01.471855 +AWS,us-west-1,m4.16xlarge,reserved_1y,no_upfront,3.456009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:39.739973 +AWS,us-west-1,m4.16xlarge,reserved_1y,partial_upfront,3.456009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:28.593166 +AWS,us-west-1,m4.16xlarge,reserved_3y,all_upfront,1.728003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:09.439173 +AWS,us-west-1,m4.16xlarge,reserved_3y,no_upfront,1.728003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:40.347366 +AWS,us-west-1,m4.16xlarge,reserved_3y,partial_upfront,1.728003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:41.052934 +AWS,us-west-1,m4.16xlarge,spot,NA,0.824046,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395478 +AWS,us-west-1,m4.2xlarge,on_demand,NA,0.468,USD,AWS Pricing API,2025-11-30T08:54:12.022608 +AWS,us-west-1,m4.2xlarge,reserved_1y,all_upfront,0.3912,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:43.147274 +AWS,us-west-1,m4.2xlarge,reserved_1y,no_upfront,0.3912,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:21.073960 +AWS,us-west-1,m4.2xlarge,reserved_1y,partial_upfront,0.3912,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:10.029656 +AWS,us-west-1,m4.2xlarge,reserved_3y,all_upfront,0.3912,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:51.170577 +AWS,us-west-1,m4.2xlarge,reserved_3y,no_upfront,0.3912,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:21.598919 +AWS,us-west-1,m4.2xlarge,reserved_3y,partial_upfront,0.3912,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:22.764638 +AWS,us-west-1,m4.2xlarge,spot,NA,0.184919,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395149 +AWS,us-west-1,m4.4xlarge,on_demand,NA,0.936,USD,AWS Pricing API,2025-11-30T08:54:46.338957 +AWS,us-west-1,m4.4xlarge,reserved_1y,all_upfront,1.460616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:17.282025 +AWS,us-west-1,m4.4xlarge,reserved_1y,no_upfront,1.460616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:55.659675 +AWS,us-west-1,m4.4xlarge,reserved_1y,partial_upfront,1.460616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:44.316644 +AWS,us-west-1,m4.4xlarge,reserved_3y,all_upfront,0.486872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:25.080631 +AWS,us-west-1,m4.4xlarge,reserved_3y,no_upfront,0.486872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:56.392113 +AWS,us-west-1,m4.4xlarge,reserved_3y,partial_upfront,0.486872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:56.809621 +AWS,us-west-1,m4.4xlarge,spot,NA,0.305709,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395823 +AWS,us-west-1,m4.large,on_demand,NA,0.117,USD,AWS Pricing API,2025-11-30T08:53:54.064148 +AWS,us-west-1,m4.large,reserved_1y,all_upfront,0.091324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:25.092607 +AWS,us-west-1,m4.large,reserved_1y,no_upfront,0.091324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:02.941911 +AWS,us-west-1,m4.large,reserved_1y,partial_upfront,0.091324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:51.973486 +AWS,us-west-1,m4.large,reserved_3y,all_upfront,0.030441,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:33.314609 +AWS,us-west-1,m4.large,reserved_3y,no_upfront,0.030441,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:03.394072 +AWS,us-west-1,m4.large,reserved_3y,partial_upfront,0.030441,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:04.994744 +AWS,us-west-1,m4.large,spot,NA,0.05423,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394763 +AWS,us-west-1,m4.xlarge,on_demand,NA,0.234,USD,AWS Pricing API,2025-11-30T08:54:34.902727 +AWS,us-west-1,m4.xlarge,reserved_1y,all_upfront,0.304566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:05.824158 +AWS,us-west-1,m4.xlarge,reserved_1y,no_upfront,0.304566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:44.101905 +AWS,us-west-1,m4.xlarge,reserved_1y,partial_upfront,0.304566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:32.895185 +AWS,us-west-1,m4.xlarge,reserved_3y,all_upfront,0.101522,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:13.701282 +AWS,us-west-1,m4.xlarge,reserved_3y,no_upfront,0.101522,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:44.739465 +AWS,us-west-1,m4.xlarge,reserved_3y,partial_upfront,0.101522,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:45.371238 +AWS,us-west-1,m4.xlarge,spot,NA,0.107424,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395585 +AWS,us-west-1,m5.12xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T08:54:12.156574 +AWS,us-west-1,m5.12xlarge,reserved_1y,all_upfront,4.282078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:43.285455 +AWS,us-west-1,m5.12xlarge,reserved_1y,no_upfront,4.282078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:21.210312 +AWS,us-west-1,m5.12xlarge,reserved_1y,partial_upfront,4.282078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:10.164941 +AWS,us-west-1,m5.12xlarge,reserved_3y,all_upfront,1.427359,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:51.304120 +AWS,us-west-1,m5.12xlarge,reserved_3y,no_upfront,1.427359,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:21.734595 +AWS,us-west-1,m5.12xlarge,reserved_3y,partial_upfront,1.427359,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:22.906543 +AWS,us-west-1,m5.12xlarge,spot,NA,0.615267,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395145 +AWS,us-west-1,m5.16xlarge,on_demand,NA,3.584,USD,AWS Pricing API,2025-11-30T08:54:44.717078 +AWS,us-west-1,m5.16xlarge,reserved_1y,all_upfront,3.089,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:15.664228 +AWS,us-west-1,m5.16xlarge,reserved_1y,no_upfront,3.089,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:54.032989 +AWS,us-west-1,m5.16xlarge,reserved_1y,partial_upfront,3.089,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:42.697558 +AWS,us-west-1,m5.16xlarge,reserved_3y,all_upfront,3.089,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:23.462556 +AWS,us-west-1,m5.16xlarge,reserved_3y,no_upfront,3.089,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:54.743268 +AWS,us-west-1,m5.16xlarge,reserved_3y,partial_upfront,3.089,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:55.205499 +AWS,us-west-1,m5.16xlarge,spot,NA,0.852925,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395795 +AWS,us-west-1,m5.24xlarge,on_demand,NA,5.376,USD,AWS Pricing API,2025-11-30T08:54:56.042781 +AWS,us-west-1,m5.24xlarge,reserved_1y,all_upfront,3.161073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:26.976655 +AWS,us-west-1,m5.24xlarge,reserved_1y,no_upfront,3.161073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:05.442609 +AWS,us-west-1,m5.24xlarge,reserved_1y,partial_upfront,3.161073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:53.992633 +AWS,us-west-1,m5.24xlarge,reserved_3y,all_upfront,1.053691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:34.840625 +AWS,us-west-1,m5.24xlarge,reserved_3y,no_upfront,1.053691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:06.287669 +AWS,us-west-1,m5.24xlarge,reserved_3y,partial_upfront,1.053691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:06.489593 +AWS,us-west-1,m5.24xlarge,spot,NA,1.170802,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396017 +AWS,us-west-1,m5.2xlarge,on_demand,NA,0.448,USD,AWS Pricing API,2025-11-30T08:54:28.316176 +AWS,us-west-1,m5.2xlarge,reserved_1y,all_upfront,0.26347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:59.168216 +AWS,us-west-1,m5.2xlarge,reserved_1y,no_upfront,0.26347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:37.430769 +AWS,us-west-1,m5.2xlarge,reserved_1y,partial_upfront,0.26347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:26.258747 +AWS,us-west-1,m5.2xlarge,reserved_3y,all_upfront,0.087823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:07.168530 +AWS,us-west-1,m5.2xlarge,reserved_3y,no_upfront,0.087823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:37.989941 +AWS,us-west-1,m5.2xlarge,reserved_3y,partial_upfront,0.087823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:38.784036 +AWS,us-west-1,m5.2xlarge,spot,NA,0.135787,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395463 +AWS,us-west-1,m5.4xlarge,on_demand,NA,0.896,USD,AWS Pricing API,2025-11-30T08:54:37.560842 +AWS,us-west-1,m5.4xlarge,reserved_1y,all_upfront,0.716557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:08.511866 +AWS,us-west-1,m5.4xlarge,reserved_1y,no_upfront,0.716557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:46.814834 +AWS,us-west-1,m5.4xlarge,reserved_1y,partial_upfront,0.716557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:35.563209 +AWS,us-west-1,m5.4xlarge,reserved_3y,all_upfront,0.358186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:16.368904 +AWS,us-west-1,m5.4xlarge,reserved_3y,no_upfront,0.358186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:47.453638 +AWS,us-west-1,m5.4xlarge,reserved_3y,partial_upfront,0.358186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:48.053919 +AWS,us-west-1,m5.4xlarge,spot,NA,0.285643,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395626 +AWS,us-west-1,m5.8xlarge,on_demand,NA,1.792,USD,AWS Pricing API,2025-11-30T08:55:03.960398 +AWS,us-west-1,m5.8xlarge,reserved_1y,all_upfront,1.129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:34.853466 +AWS,us-west-1,m5.8xlarge,reserved_1y,no_upfront,1.129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:13.445666 +AWS,us-west-1,m5.8xlarge,reserved_1y,partial_upfront,1.129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:02.016601 +AWS,us-west-1,m5.8xlarge,reserved_3y,all_upfront,1.129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:42.624802 +AWS,us-west-1,m5.8xlarge,reserved_3y,no_upfront,1.129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:14.337355 +AWS,us-west-1,m5.8xlarge,reserved_3y,partial_upfront,1.129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:14.361760 +AWS,us-west-1,m5.8xlarge,spot,NA,0.384143,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396156 +AWS,us-west-1,m5.large,on_demand,NA,0.112,USD,AWS Pricing API,2025-11-30T08:54:28.712677 +AWS,us-west-1,m5.large,reserved_1y,all_upfront,0.097,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:59.572902 +AWS,us-west-1,m5.large,reserved_1y,no_upfront,0.097,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:37.836218 +AWS,us-west-1,m5.large,reserved_1y,partial_upfront,0.097,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:26.666521 +AWS,us-west-1,m5.large,reserved_3y,all_upfront,0.097,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:07.564299 +AWS,us-west-1,m5.large,reserved_3y,no_upfront,0.097,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:38.408549 +AWS,us-west-1,m5.large,reserved_3y,partial_upfront,0.097,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:39.188827 +AWS,us-west-1,m5.large,spot,NA,0.038825,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395459 +AWS,us-west-1,m5.xlarge,on_demand,NA,0.224,USD,AWS Pricing API,2025-11-30T08:55:01.773502 +AWS,us-west-1,m5.xlarge,reserved_1y,all_upfront,0.356849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:32.719055 +AWS,us-west-1,m5.xlarge,reserved_1y,no_upfront,0.356849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:11.264731 +AWS,us-west-1,m5.xlarge,reserved_1y,partial_upfront,0.356849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:59.830526 +AWS,us-west-1,m5.xlarge,reserved_3y,all_upfront,0.11895,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:40.504348 +AWS,us-west-1,m5.xlarge,reserved_3y,no_upfront,0.11895,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:12.151568 +AWS,us-west-1,m5.xlarge,reserved_3y,partial_upfront,0.11895,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:12.211219 +AWS,us-west-1,m5.xlarge,spot,NA,0.070414,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396102 +AWS,us-west-1,m5a.12xlarge,on_demand,NA,2.424,USD,AWS Pricing API,2025-11-30T08:54:29.253837 +AWS,us-west-1,m5a.12xlarge,reserved_1y,all_upfront,1.939452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:00.108906 +AWS,us-west-1,m5a.12xlarge,reserved_1y,no_upfront,1.939452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:38.384445 +AWS,us-west-1,m5a.12xlarge,reserved_1y,partial_upfront,1.939452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:27.262759 +AWS,us-west-1,m5a.12xlarge,reserved_3y,all_upfront,0.969817,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:08.101238 +AWS,us-west-1,m5a.12xlarge,reserved_3y,no_upfront,0.969817,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:38.954643 +AWS,us-west-1,m5a.12xlarge,reserved_3y,partial_upfront,0.969817,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:39.722214 +AWS,us-west-1,m5a.12xlarge,spot,NA,0.90853,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395443 +AWS,us-west-1,m5a.16xlarge,on_demand,NA,3.232,USD,AWS Pricing API,2025-11-30T08:54:46.474700 +AWS,us-west-1,m5a.16xlarge,reserved_1y,all_upfront,5.159589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:17.416818 +AWS,us-west-1,m5a.16xlarge,reserved_1y,no_upfront,5.159589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:55.796123 +AWS,us-west-1,m5a.16xlarge,reserved_1y,partial_upfront,5.159589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:44.451024 +AWS,us-west-1,m5a.16xlarge,reserved_3y,all_upfront,1.719863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:25.214830 +AWS,us-west-1,m5a.16xlarge,reserved_3y,no_upfront,1.719863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:56.527835 +AWS,us-west-1,m5a.16xlarge,reserved_3y,partial_upfront,1.719863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:56.943434 +AWS,us-west-1,m5a.16xlarge,spot,NA,0.986252,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395834 +AWS,us-west-1,m5a.24xlarge,on_demand,NA,4.848,USD,AWS Pricing API,2025-11-30T08:54:21.880291 +AWS,us-west-1,m5a.24xlarge,reserved_1y,all_upfront,2.850571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:52.838416 +AWS,us-west-1,m5a.24xlarge,reserved_1y,no_upfront,2.850571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:31.010422 +AWS,us-west-1,m5a.24xlarge,reserved_1y,partial_upfront,2.850571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:19.792447 +AWS,us-west-1,m5a.24xlarge,reserved_3y,all_upfront,0.95019,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:00.831541 +AWS,us-west-1,m5a.24xlarge,reserved_3y,no_upfront,0.95019,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:31.425291 +AWS,us-west-1,m5a.24xlarge,reserved_3y,partial_upfront,0.95019,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:32.407080 +AWS,us-west-1,m5a.24xlarge,spot,NA,1.17258,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395299 +AWS,us-west-1,m5a.2xlarge,on_demand,NA,0.404,USD,AWS Pricing API,2025-11-30T08:54:14.418699 +AWS,us-west-1,m5a.2xlarge,reserved_1y,all_upfront,0.644977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:45.435387 +AWS,us-west-1,m5a.2xlarge,reserved_1y,no_upfront,0.644977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:23.422743 +AWS,us-west-1,m5a.2xlarge,reserved_1y,partial_upfront,0.644977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:12.312383 +AWS,us-west-1,m5a.2xlarge,reserved_3y,all_upfront,0.214992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:53.452250 +AWS,us-west-1,m5a.2xlarge,reserved_3y,no_upfront,0.214992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:23.911751 +AWS,us-west-1,m5a.2xlarge,reserved_3y,partial_upfront,0.214992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:25.036430 +AWS,us-west-1,m5a.2xlarge,spot,NA,0.188024,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395169 +AWS,us-west-1,m5a.4xlarge,on_demand,NA,0.808,USD,AWS Pricing API,2025-11-30T08:54:54.694011 +AWS,us-west-1,m5a.4xlarge,reserved_1y,all_upfront,0.650114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:25.623214 +AWS,us-west-1,m5a.4xlarge,reserved_1y,no_upfront,0.650114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:04.073401 +AWS,us-west-1,m5a.4xlarge,reserved_1y,partial_upfront,0.650114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:52.656281 +AWS,us-west-1,m5a.4xlarge,reserved_3y,all_upfront,0.216705,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:33.528368 +AWS,us-west-1,m5a.4xlarge,reserved_3y,no_upfront,0.216705,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:04.918158 +AWS,us-west-1,m5a.4xlarge,reserved_3y,partial_upfront,0.216705,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:05.135003 +AWS,us-west-1,m5a.4xlarge,spot,NA,0.30495,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395989 +AWS,us-west-1,m5a.8xlarge,on_demand,NA,1.616,USD,AWS Pricing API,2025-11-30T08:54:05.381783 +AWS,us-west-1,m5a.8xlarge,reserved_1y,all_upfront,0.969817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:36.481608 +AWS,us-west-1,m5a.8xlarge,reserved_1y,no_upfront,0.969817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:14.365119 +AWS,us-west-1,m5a.8xlarge,reserved_1y,partial_upfront,0.969817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:03.386827 +AWS,us-west-1,m5a.8xlarge,reserved_3y,all_upfront,0.646606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:44.597015 +AWS,us-west-1,m5a.8xlarge,reserved_3y,no_upfront,0.646606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:14.877157 +AWS,us-west-1,m5a.8xlarge,reserved_3y,partial_upfront,0.646606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:16.210453 +AWS,us-west-1,m5a.8xlarge,spot,NA,0.74147,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394992 +AWS,us-west-1,m5a.large,on_demand,NA,0.101,USD,AWS Pricing API,2025-11-30T08:54:24.386000 +AWS,us-west-1,m5a.large,reserved_1y,all_upfront,0.059361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:55.261346 +AWS,us-west-1,m5a.large,reserved_1y,no_upfront,0.059361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:33.450233 +AWS,us-west-1,m5a.large,reserved_1y,partial_upfront,0.059361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:22.231035 +AWS,us-west-1,m5a.large,reserved_3y,all_upfront,0.019787,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:03.252140 +AWS,us-west-1,m5a.large,reserved_3y,no_upfront,0.019787,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:33.969313 +AWS,us-west-1,m5a.large,reserved_3y,partial_upfront,0.019787,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:34.827306 +AWS,us-west-1,m5a.large,spot,NA,0.039288,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395377 +AWS,us-west-1,m5a.xlarge,on_demand,NA,0.202,USD,AWS Pricing API,2025-11-30T08:54:26.414490 +AWS,us-west-1,m5a.xlarge,reserved_1y,all_upfront,0.162557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:57.285881 +AWS,us-west-1,m5a.xlarge,reserved_1y,no_upfront,0.162557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:35.507162 +AWS,us-west-1,m5a.xlarge,reserved_1y,partial_upfront,0.162557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:24.363002 +AWS,us-west-1,m5a.xlarge,reserved_3y,all_upfront,0.054186,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:05.295407 +AWS,us-west-1,m5a.xlarge,reserved_3y,no_upfront,0.054186,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:36.061792 +AWS,us-west-1,m5a.xlarge,reserved_3y,partial_upfront,0.054186,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:36.909673 +AWS,us-west-1,m5a.xlarge,spot,NA,0.096558,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395397 +AWS,us-west-1,m5d.12xlarge,on_demand,NA,3.192,USD,AWS Pricing API,2025-11-30T08:53:56.729042 +AWS,us-west-1,m5d.12xlarge,reserved_1y,all_upfront,2.011,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:27.824313 +AWS,us-west-1,m5d.12xlarge,reserved_1y,no_upfront,2.011,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:05.649406 +AWS,us-west-1,m5d.12xlarge,reserved_1y,partial_upfront,2.011,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:54.683130 +AWS,us-west-1,m5d.12xlarge,reserved_3y,all_upfront,2.011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:36.008756 +AWS,us-west-1,m5d.12xlarge,reserved_3y,no_upfront,2.011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:06.133401 +AWS,us-west-1,m5d.12xlarge,reserved_3y,partial_upfront,2.011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:07.664060 +AWS,us-west-1,m5d.12xlarge,spot,NA,1.165413,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394792 +AWS,us-west-1,m5d.16xlarge,on_demand,NA,4.256,USD,AWS Pricing API,2025-11-30T08:54:41.601192 +AWS,us-west-1,m5d.16xlarge,reserved_1y,all_upfront,2.502511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:12.553448 +AWS,us-west-1,m5d.16xlarge,reserved_1y,no_upfront,2.502511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:50.909426 +AWS,us-west-1,m5d.16xlarge,reserved_1y,partial_upfront,2.502511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:39.606269 +AWS,us-west-1,m5d.16xlarge,reserved_3y,all_upfront,0.83417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:20.380924 +AWS,us-west-1,m5d.16xlarge,reserved_3y,no_upfront,0.83417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:51.583430 +AWS,us-west-1,m5d.16xlarge,reserved_3y,partial_upfront,0.83417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:52.067952 +AWS,us-west-1,m5d.16xlarge,spot,NA,1.511214,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395699 +AWS,us-west-1,m5d.24xlarge,on_demand,NA,6.384,USD,AWS Pricing API,2025-11-30T08:54:25.330546 +AWS,us-west-1,m5d.24xlarge,reserved_1y,all_upfront,7.201142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:56.217882 +AWS,us-west-1,m5d.24xlarge,reserved_1y,no_upfront,7.201142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:34.401151 +AWS,us-west-1,m5d.24xlarge,reserved_1y,partial_upfront,7.201142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:23.188345 +AWS,us-west-1,m5d.24xlarge,reserved_3y,all_upfront,2.400381,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:04.201447 +AWS,us-west-1,m5d.24xlarge,reserved_3y,no_upfront,2.400381,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:34.953533 +AWS,us-west-1,m5d.24xlarge,reserved_3y,partial_upfront,2.400381,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:35.841912 +AWS,us-west-1,m5d.24xlarge,spot,NA,2.201003,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395369 +AWS,us-west-1,m5d.2xlarge,on_demand,NA,0.532,USD,AWS Pricing API,2025-11-30T08:54:09.567147 +AWS,us-west-1,m5d.2xlarge,reserved_1y,all_upfront,0.432096,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:40.661484 +AWS,us-west-1,m5d.2xlarge,reserved_1y,no_upfront,0.432096,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:18.572913 +AWS,us-west-1,m5d.2xlarge,reserved_1y,partial_upfront,0.432096,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:07.594640 +AWS,us-west-1,m5d.2xlarge,reserved_3y,all_upfront,0.288032,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:48.751940 +AWS,us-west-1,m5d.2xlarge,reserved_3y,no_upfront,0.288032,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:19.136588 +AWS,us-west-1,m5d.2xlarge,reserved_3y,partial_upfront,0.288032,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:20.343776 +AWS,us-west-1,m5d.2xlarge,spot,NA,0.189666,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395061 +AWS,us-west-1,m5d.4xlarge,on_demand,NA,1.064,USD,AWS Pricing API,2025-11-30T08:54:20.779041 +AWS,us-west-1,m5d.4xlarge,reserved_1y,all_upfront,0.908,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:51.750924 +AWS,us-west-1,m5d.4xlarge,reserved_1y,no_upfront,0.908,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:29.899236 +AWS,us-west-1,m5d.4xlarge,reserved_1y,partial_upfront,0.908,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:18.618605 +AWS,us-west-1,m5d.4xlarge,reserved_3y,all_upfront,0.908,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:59.757525 +AWS,us-west-1,m5d.4xlarge,reserved_3y,no_upfront,0.908,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:30.318705 +AWS,us-west-1,m5d.4xlarge,reserved_3y,partial_upfront,0.908,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:31.325370 +AWS,us-west-1,m5d.4xlarge,spot,NA,0.357485,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395287 +AWS,us-west-1,m5d.8xlarge,on_demand,NA,2.128,USD,AWS Pricing API,2025-11-30T08:55:03.818632 +AWS,us-west-1,m5d.8xlarge,reserved_1y,all_upfront,1.276356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:34.720996 +AWS,us-west-1,m5d.8xlarge,reserved_1y,no_upfront,1.276356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:13.299900 +AWS,us-west-1,m5d.8xlarge,reserved_1y,partial_upfront,1.276356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:01.881689 +AWS,us-west-1,m5d.8xlarge,reserved_3y,all_upfront,0.850785,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:42.484824 +AWS,us-west-1,m5d.8xlarge,reserved_3y,no_upfront,0.850785,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:14.199816 +AWS,us-west-1,m5d.8xlarge,reserved_3y,partial_upfront,0.850785,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:14.229592 +AWS,us-west-1,m5d.8xlarge,spot,NA,0.706934,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396144 +AWS,us-west-1,m5d.large,on_demand,NA,0.133,USD,AWS Pricing API,2025-11-30T08:54:00.464244 +AWS,us-west-1,m5d.large,reserved_1y,all_upfront,0.079954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:31.633332 +AWS,us-west-1,m5d.large,reserved_1y,no_upfront,0.079954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:09.458627 +AWS,us-west-1,m5d.large,reserved_1y,partial_upfront,0.079954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:58.426468 +AWS,us-west-1,m5d.large,reserved_3y,all_upfront,0.053318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:39.744853 +AWS,us-west-1,m5d.large,reserved_3y,no_upfront,0.053318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:09.957586 +AWS,us-west-1,m5d.large,reserved_3y,partial_upfront,0.053318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:11.407365 +AWS,us-west-1,m5d.large,spot,NA,0.0567,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394868 +AWS,us-west-1,m5d.xlarge,on_demand,NA,0.266,USD,AWS Pricing API,2025-11-30T08:54:16.579150 +AWS,us-west-1,m5d.xlarge,reserved_1y,all_upfront,0.212589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:47.573879 +AWS,us-west-1,m5d.xlarge,reserved_1y,no_upfront,0.212589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:25.597455 +AWS,us-west-1,m5d.xlarge,reserved_1y,partial_upfront,0.212589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:14.472248 +AWS,us-west-1,m5d.xlarge,reserved_3y,all_upfront,0.106196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:55.599934 +AWS,us-west-1,m5d.xlarge,reserved_3y,no_upfront,0.106196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:26.098409 +AWS,us-west-1,m5d.xlarge,reserved_3y,partial_upfront,0.106196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:27.164417 +AWS,us-west-1,m5d.xlarge,spot,NA,0.081161,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395198 +AWS,us-west-1,m5zn.12xlarge,on_demand,NA,4.6248,USD,AWS Pricing API,2025-11-30T08:54:32.475245 +AWS,us-west-1,m5zn.12xlarge,reserved_1y,all_upfront,2.8988,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:03.372275 +AWS,us-west-1,m5zn.12xlarge,reserved_1y,no_upfront,2.8988,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:41.636621 +AWS,us-west-1,m5zn.12xlarge,reserved_1y,partial_upfront,2.8988,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:30.461768 +AWS,us-west-1,m5zn.12xlarge,reserved_3y,all_upfront,2.8988,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:11.300057 +AWS,us-west-1,m5zn.12xlarge,reserved_3y,no_upfront,2.8988,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:42.277495 +AWS,us-west-1,m5zn.12xlarge,reserved_3y,partial_upfront,2.8988,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:42.963421 +AWS,us-west-1,m5zn.12xlarge,spot,NA,1.861567,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395516 +AWS,us-west-1,m5zn.2xlarge,on_demand,NA,0.7708,USD,AWS Pricing API,2025-11-30T08:54:01.818071 +AWS,us-west-1,m5zn.2xlarge,reserved_1y,all_upfront,0.875913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:32.985785 +AWS,us-west-1,m5zn.2xlarge,reserved_1y,no_upfront,0.875913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:10.835291 +AWS,us-west-1,m5zn.2xlarge,reserved_1y,partial_upfront,0.875913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:59.768473 +AWS,us-west-1,m5zn.2xlarge,reserved_3y,all_upfront,0.291971,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:41.082410 +AWS,us-west-1,m5zn.2xlarge,reserved_3y,no_upfront,0.291971,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:11.328440 +AWS,us-west-1,m5zn.2xlarge,reserved_3y,partial_upfront,0.291971,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:12.734769 +AWS,us-west-1,m5zn.2xlarge,spot,NA,0.276206,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394903 +AWS,us-west-1,m5zn.3xlarge,on_demand,NA,1.1562,USD,AWS Pricing API,2025-11-30T08:54:35.950883 +AWS,us-west-1,m5zn.3xlarge,reserved_1y,all_upfront,1.313813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:06.892099 +AWS,us-west-1,m5zn.3xlarge,reserved_1y,no_upfront,1.313813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:45.188614 +AWS,us-west-1,m5zn.3xlarge,reserved_1y,partial_upfront,1.313813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:33.953954 +AWS,us-west-1,m5zn.3xlarge,reserved_3y,all_upfront,0.437938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:14.774732 +AWS,us-west-1,m5zn.3xlarge,reserved_3y,no_upfront,0.437938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:45.821654 +AWS,us-west-1,m5zn.3xlarge,reserved_3y,partial_upfront,0.437938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:46.450090 +AWS,us-west-1,m5zn.3xlarge,spot,NA,0.33048,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395596 +AWS,us-west-1,m5zn.6xlarge,on_demand,NA,2.3124,USD,AWS Pricing API,2025-11-30T08:53:56.057714 +AWS,us-west-1,m5zn.6xlarge,reserved_1y,all_upfront,1.4494,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:27.114559 +AWS,us-west-1,m5zn.6xlarge,reserved_1y,no_upfront,1.4494,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:04.973859 +AWS,us-west-1,m5zn.6xlarge,reserved_1y,partial_upfront,1.4494,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:54.013118 +AWS,us-west-1,m5zn.6xlarge,reserved_3y,all_upfront,1.4494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:35.342005 +AWS,us-west-1,m5zn.6xlarge,reserved_3y,no_upfront,1.4494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:05.442533 +AWS,us-west-1,m5zn.6xlarge,reserved_3y,partial_upfront,1.4494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:07.002347 +AWS,us-west-1,m5zn.6xlarge,spot,NA,0.704977,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394815 +AWS,us-west-1,m5zn.large,on_demand,NA,0.1927,USD,AWS Pricing API,2025-11-30T08:54:25.739078 +AWS,us-west-1,m5zn.large,reserved_1y,all_upfront,0.1208,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:56.620468 +AWS,us-west-1,m5zn.large,reserved_1y,no_upfront,0.1208,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:34.815818 +AWS,us-west-1,m5zn.large,reserved_1y,partial_upfront,0.1208,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:23.597902 +AWS,us-west-1,m5zn.large,reserved_3y,all_upfront,0.1208,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:04.624102 +AWS,us-west-1,m5zn.large,reserved_3y,no_upfront,0.1208,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:35.365418 +AWS,us-west-1,m5zn.large,reserved_3y,partial_upfront,0.1208,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:36.243068 +AWS,us-west-1,m5zn.large,spot,NA,0.048868,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395409 +AWS,us-west-1,m5zn.metal,on_demand,NA,4.6248,USD,AWS Pricing API,2025-11-30T08:55:02.468355 +AWS,us-west-1,m5zn.metal,reserved_1y,all_upfront,2.705594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:33.383537 +AWS,us-west-1,m5zn.metal,reserved_1y,no_upfront,2.705594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:11.937158 +AWS,us-west-1,m5zn.metal,reserved_1y,partial_upfront,2.705594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:00.503435 +AWS,us-west-1,m5zn.metal,reserved_3y,all_upfront,0.901865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:41.169290 +AWS,us-west-1,m5zn.metal,reserved_3y,no_upfront,0.901865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:12.835731 +AWS,us-west-1,m5zn.metal,reserved_3y,partial_upfront,0.901865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:12.881296 +AWS,us-west-1,m5zn.metal,spot,NA,0.985406,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396110 +AWS,us-west-1,m5zn.xlarge,on_demand,NA,0.3854,USD,AWS Pricing API,2025-11-30T08:54:01.002441 +AWS,us-west-1,m5zn.xlarge,reserved_1y,all_upfront,0.230068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:32.165790 +AWS,us-west-1,m5zn.xlarge,reserved_1y,no_upfront,0.230068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:10.018403 +AWS,us-west-1,m5zn.xlarge,reserved_1y,partial_upfront,0.230068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:58.961610 +AWS,us-west-1,m5zn.xlarge,reserved_3y,all_upfront,0.153356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:40.280017 +AWS,us-west-1,m5zn.xlarge,reserved_3y,no_upfront,0.153356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:10.507044 +AWS,us-west-1,m5zn.xlarge,reserved_3y,partial_upfront,0.153356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:11.938673 +AWS,us-west-1,m5zn.xlarge,spot,NA,0.142,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394897 +AWS,us-west-1,m6g.12xlarge,on_demand,NA,2.1504,USD,AWS Pricing API,2025-11-30T08:54:10.801091 +AWS,us-west-1,m6g.12xlarge,reserved_1y,all_upfront,1.290191,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:41.947571 +AWS,us-west-1,m6g.12xlarge,reserved_1y,no_upfront,1.290191,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:19.837696 +AWS,us-west-1,m6g.12xlarge,reserved_1y,partial_upfront,1.290191,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:08.811286 +AWS,us-west-1,m6g.12xlarge,reserved_3y,all_upfront,0.86013,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:49.971066 +AWS,us-west-1,m6g.12xlarge,reserved_3y,no_upfront,0.86013,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:20.373119 +AWS,us-west-1,m6g.12xlarge,reserved_3y,partial_upfront,0.86013,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:21.566673 +AWS,us-west-1,m6g.12xlarge,spot,NA,0.566976,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395116 +AWS,us-west-1,m6g.16xlarge,on_demand,NA,2.8672,USD,AWS Pricing API,2025-11-30T08:54:06.199482 +AWS,us-west-1,m6g.16xlarge,reserved_1y,all_upfront,2.29372,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:37.298351 +AWS,us-west-1,m6g.16xlarge,reserved_1y,no_upfront,2.29372,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:15.188591 +AWS,us-west-1,m6g.16xlarge,reserved_1y,partial_upfront,2.29372,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:04.215223 +AWS,us-west-1,m6g.16xlarge,reserved_3y,all_upfront,1.14684,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:45.401537 +AWS,us-west-1,m6g.16xlarge,reserved_3y,no_upfront,1.14684,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:15.710813 +AWS,us-west-1,m6g.16xlarge,reserved_3y,partial_upfront,1.14684,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:17.012433 +AWS,us-west-1,m6g.16xlarge,spot,NA,0.751333,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394980 +AWS,us-west-1,m6g.2xlarge,on_demand,NA,0.3584,USD,AWS Pricing API,2025-11-30T08:54:26.967023 +AWS,us-west-1,m6g.2xlarge,reserved_1y,all_upfront,0.286768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:57.826155 +AWS,us-west-1,m6g.2xlarge,reserved_1y,no_upfront,0.286768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:36.065274 +AWS,us-west-1,m6g.2xlarge,reserved_1y,partial_upfront,0.286768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:24.904888 +AWS,us-west-1,m6g.2xlarge,reserved_3y,all_upfront,0.143389,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:05.839064 +AWS,us-west-1,m6g.2xlarge,reserved_3y,no_upfront,0.143389,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:36.615626 +AWS,us-west-1,m6g.2xlarge,reserved_3y,partial_upfront,0.143389,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:37.445061 +AWS,us-west-1,m6g.2xlarge,spot,NA,0.111602,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395424 +AWS,us-west-1,m6g.4xlarge,on_demand,NA,0.7168,USD,AWS Pricing API,2025-11-30T08:54:53.209780 +AWS,us-west-1,m6g.4xlarge,reserved_1y,all_upfront,0.509018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:24.137619 +AWS,us-west-1,m6g.4xlarge,reserved_1y,no_upfront,0.509018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:02.568805 +AWS,us-west-1,m6g.4xlarge,reserved_1y,partial_upfront,0.509018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:51.187734 +AWS,us-west-1,m6g.4xlarge,reserved_3y,all_upfront,0.169673,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:32.040788 +AWS,us-west-1,m6g.4xlarge,reserved_3y,no_upfront,0.169673,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:03.397052 +AWS,us-west-1,m6g.4xlarge,reserved_3y,partial_upfront,0.169673,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:03.662847 +AWS,us-west-1,m6g.4xlarge,spot,NA,0.219517,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395981 +AWS,us-west-1,m6g.8xlarge,on_demand,NA,1.4336,USD,AWS Pricing API,2025-11-30T08:54:34.362142 +AWS,us-west-1,m6g.8xlarge,reserved_1y,all_upfront,2.035959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:05.271120 +AWS,us-west-1,m6g.8xlarge,reserved_1y,no_upfront,2.035959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:43.565282 +AWS,us-west-1,m6g.8xlarge,reserved_1y,partial_upfront,2.035959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:32.355523 +AWS,us-west-1,m6g.8xlarge,reserved_3y,all_upfront,0.678653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:13.161529 +AWS,us-west-1,m6g.8xlarge,reserved_3y,no_upfront,0.678653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:44.189549 +AWS,us-west-1,m6g.8xlarge,reserved_3y,partial_upfront,0.678653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:44.836929 +AWS,us-west-1,m6g.8xlarge,spot,NA,0.478041,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395553 +AWS,us-west-1,m6g.large,on_demand,NA,0.0896,USD,AWS Pricing API,2025-11-30T08:54:11.349641 +AWS,us-west-1,m6g.large,reserved_1y,all_upfront,0.071667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:42.484534 +AWS,us-west-1,m6g.large,reserved_1y,no_upfront,0.071667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:20.385857 +AWS,us-west-1,m6g.large,reserved_1y,partial_upfront,0.071667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:09.361428 +AWS,us-west-1,m6g.large,reserved_3y,all_upfront,0.035822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:50.508015 +AWS,us-west-1,m6g.large,reserved_3y,no_upfront,0.035822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:20.917708 +AWS,us-west-1,m6g.large,reserved_3y,partial_upfront,0.035822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:22.099601 +AWS,us-west-1,m6g.large,spot,NA,0.039901,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395105 +AWS,us-west-1,m6g.xlarge,on_demand,NA,0.1792,USD,AWS Pricing API,2025-11-30T08:54:25.194919 +AWS,us-west-1,m6g.xlarge,reserved_1y,all_upfront,0.107567,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:56.080634 +AWS,us-west-1,m6g.xlarge,reserved_1y,no_upfront,0.107567,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:34.264488 +AWS,us-west-1,m6g.xlarge,reserved_1y,partial_upfront,0.107567,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:23.054560 +AWS,us-west-1,m6g.xlarge,reserved_3y,all_upfront,0.071722,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:04.067297 +AWS,us-west-1,m6g.xlarge,reserved_3y,no_upfront,0.071722,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:34.818275 +AWS,us-west-1,m6g.xlarge,reserved_3y,partial_upfront,0.071722,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:35.708570 +AWS,us-west-1,m6g.xlarge,spot,NA,0.049672,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395362 +AWS,us-west-1,m6gd.12xlarge,on_demand,NA,2.544,USD,AWS Pricing API,2025-11-30T08:54:42.950630 +AWS,us-west-1,m6gd.12xlarge,reserved_1y,all_upfront,2.1671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:13.907509 +AWS,us-west-1,m6gd.12xlarge,reserved_1y,no_upfront,2.1671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:52.264965 +AWS,us-west-1,m6gd.12xlarge,reserved_1y,partial_upfront,2.1671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:40.941066 +AWS,us-west-1,m6gd.12xlarge,reserved_3y,all_upfront,2.1671,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:21.717322 +AWS,us-west-1,m6gd.12xlarge,reserved_3y,no_upfront,2.1671,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:52.945494 +AWS,us-west-1,m6gd.12xlarge,reserved_3y,partial_upfront,2.1671,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:53.453518 +AWS,us-west-1,m6gd.12xlarge,spot,NA,0.719345,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395726 +AWS,us-west-1,m6gd.16xlarge,on_demand,NA,3.392,USD,AWS Pricing API,2025-11-30T08:54:45.247847 +AWS,us-west-1,m6gd.16xlarge,reserved_1y,all_upfront,2.752255,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:16.205712 +AWS,us-west-1,m6gd.16xlarge,reserved_1y,no_upfront,2.752255,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:54.571445 +AWS,us-west-1,m6gd.16xlarge,reserved_1y,partial_upfront,2.752255,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:43.233380 +AWS,us-west-1,m6gd.16xlarge,reserved_3y,all_upfront,1.376152,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:23.996541 +AWS,us-west-1,m6gd.16xlarge,reserved_3y,no_upfront,1.376152,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:55.286734 +AWS,us-west-1,m6gd.16xlarge,reserved_3y,partial_upfront,1.376152,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:55.740493 +AWS,us-west-1,m6gd.16xlarge,spot,NA,0.722278,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395799 +AWS,us-west-1,m6gd.2xlarge,on_demand,NA,0.424,USD,AWS Pricing API,2025-11-30T08:54:13.504831 +AWS,us-west-1,m6gd.2xlarge,reserved_1y,all_upfront,0.255968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:44.630568 +AWS,us-west-1,m6gd.2xlarge,reserved_1y,no_upfront,0.255968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:22.590340 +AWS,us-west-1,m6gd.2xlarge,reserved_1y,partial_upfront,0.255968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:11.500009 +AWS,us-west-1,m6gd.2xlarge,reserved_3y,all_upfront,0.170656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:52.646647 +AWS,us-west-1,m6gd.2xlarge,reserved_3y,no_upfront,0.170656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:23.091745 +AWS,us-west-1,m6gd.2xlarge,reserved_3y,partial_upfront,0.170656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:24.234515 +AWS,us-west-1,m6gd.2xlarge,spot,NA,0.127386,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395165 +AWS,us-west-1,m6gd.4xlarge,on_demand,NA,0.848,USD,AWS Pricing API,2025-11-30T08:54:40.115060 +AWS,us-west-1,m6gd.4xlarge,reserved_1y,all_upfront,0.68795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:11.065192 +AWS,us-west-1,m6gd.4xlarge,reserved_1y,no_upfront,0.68795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:49.407448 +AWS,us-west-1,m6gd.4xlarge,reserved_1y,partial_upfront,0.68795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:38.122158 +AWS,us-west-1,m6gd.4xlarge,reserved_3y,all_upfront,0.45865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:18.909830 +AWS,us-west-1,m6gd.4xlarge,reserved_3y,no_upfront,0.45865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:50.073788 +AWS,us-west-1,m6gd.4xlarge,reserved_3y,partial_upfront,0.45865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:50.604464 +AWS,us-west-1,m6gd.4xlarge,spot,NA,0.338349,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395676 +AWS,us-west-1,m6gd.8xlarge,on_demand,NA,1.696,USD,AWS Pricing API,2025-11-30T08:54:02.224393 +AWS,us-west-1,m6gd.8xlarge,reserved_1y,all_upfront,1.823922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:33.384892 +AWS,us-west-1,m6gd.8xlarge,reserved_1y,no_upfront,1.823922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:11.242720 +AWS,us-west-1,m6gd.8xlarge,reserved_1y,partial_upfront,1.823922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:00.173966 +AWS,us-west-1,m6gd.8xlarge,reserved_3y,all_upfront,0.911974,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:41.486416 +AWS,us-west-1,m6gd.8xlarge,reserved_3y,no_upfront,0.911974,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:11.736234 +AWS,us-west-1,m6gd.8xlarge,reserved_3y,partial_upfront,0.911974,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:13.133031 +AWS,us-west-1,m6gd.8xlarge,spot,NA,0.518083,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394911 +AWS,us-west-1,m6gd.large,on_demand,NA,0.106,USD,AWS Pricing API,2025-11-30T08:54:23.842033 +AWS,us-west-1,m6gd.large,reserved_1y,all_upfront,0.085998,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:54.726268 +AWS,us-west-1,m6gd.large,reserved_1y,no_upfront,0.085998,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:32.909332 +AWS,us-west-1,m6gd.large,reserved_1y,partial_upfront,0.085998,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:21.690992 +AWS,us-west-1,m6gd.large,reserved_3y,all_upfront,0.042999,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:02.712178 +AWS,us-west-1,m6gd.large,reserved_3y,no_upfront,0.042999,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:33.425615 +AWS,us-west-1,m6gd.large,reserved_3y,partial_upfront,0.042999,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:34.276301 +AWS,us-west-1,m6gd.large,spot,NA,0.040203,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395346 +AWS,us-west-1,m6gd.xlarge,on_demand,NA,0.212,USD,AWS Pricing API,2025-11-30T08:54:17.006885 +AWS,us-west-1,m6gd.xlarge,reserved_1y,all_upfront,0.168607,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:47.986962 +AWS,us-west-1,m6gd.xlarge,reserved_1y,no_upfront,0.168607,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:26.012342 +AWS,us-west-1,m6gd.xlarge,reserved_1y,partial_upfront,0.168607,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:14.874592 +AWS,us-west-1,m6gd.xlarge,reserved_3y,all_upfront,0.056202,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:55.994390 +AWS,us-west-1,m6gd.xlarge,reserved_3y,no_upfront,0.056202,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:26.514603 +AWS,us-west-1,m6gd.xlarge,reserved_3y,partial_upfront,0.056202,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:27.565323 +AWS,us-west-1,m6gd.xlarge,spot,NA,0.061691,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395218 +AWS,us-west-1,m6i.12xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T08:54:03.031354 +AWS,us-west-1,m6i.12xlarge,reserved_1y,all_upfront,1.688378,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:34.190744 +AWS,us-west-1,m6i.12xlarge,reserved_1y,no_upfront,1.688378,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:12.056740 +AWS,us-west-1,m6i.12xlarge,reserved_1y,partial_upfront,1.688378,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:00.987270 +AWS,us-west-1,m6i.12xlarge,reserved_3y,all_upfront,1.125593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:42.300162 +AWS,us-west-1,m6i.12xlarge,reserved_3y,no_upfront,1.125593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:12.551760 +AWS,us-west-1,m6i.12xlarge,reserved_3y,partial_upfront,1.125593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:13.936507 +AWS,us-west-1,m6i.12xlarge,spot,NA,0.938311,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394923 +AWS,us-west-1,m6i.16xlarge,on_demand,NA,3.584,USD,AWS Pricing API,2025-11-30T08:54:17.686153 +AWS,us-west-1,m6i.16xlarge,reserved_1y,all_upfront,2.206164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:48.656500 +AWS,us-west-1,m6i.16xlarge,reserved_1y,no_upfront,2.206164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:26.725256 +AWS,us-west-1,m6i.16xlarge,reserved_1y,partial_upfront,2.206164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:15.543526 +AWS,us-west-1,m6i.16xlarge,reserved_3y,all_upfront,0.735388,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:56.655962 +AWS,us-west-1,m6i.16xlarge,reserved_3y,no_upfront,0.735388,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:27.189684 +AWS,us-west-1,m6i.16xlarge,reserved_3y,partial_upfront,0.735388,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:28.228843 +AWS,us-west-1,m6i.16xlarge,spot,NA,1.251624,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395222 +AWS,us-west-1,m6i.24xlarge,on_demand,NA,5.376,USD,AWS Pricing API,2025-11-30T08:54:19.171657 +AWS,us-west-1,m6i.24xlarge,reserved_1y,all_upfront,4.08996,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:50.138835 +AWS,us-west-1,m6i.24xlarge,reserved_1y,no_upfront,4.08996,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:28.237803 +AWS,us-west-1,m6i.24xlarge,reserved_1y,partial_upfront,4.08996,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:17.011082 +AWS,us-west-1,m6i.24xlarge,reserved_3y,all_upfront,4.08996,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:58.141757 +AWS,us-west-1,m6i.24xlarge,reserved_3y,no_upfront,4.08996,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:28.691274 +AWS,us-west-1,m6i.24xlarge,reserved_3y,partial_upfront,4.08996,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:29.701828 +AWS,us-west-1,m6i.24xlarge,spot,NA,1.670034,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395255 +AWS,us-west-1,m6i.2xlarge,on_demand,NA,0.448,USD,AWS Pricing API,2025-11-30T08:54:37.963990 +AWS,us-west-1,m6i.2xlarge,reserved_1y,all_upfront,0.281453,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:08.912686 +AWS,us-west-1,m6i.2xlarge,reserved_1y,no_upfront,0.281453,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:47.232448 +AWS,us-west-1,m6i.2xlarge,reserved_1y,partial_upfront,0.281453,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:35.967153 +AWS,us-west-1,m6i.2xlarge,reserved_3y,all_upfront,0.187618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:16.778766 +AWS,us-west-1,m6i.2xlarge,reserved_3y,no_upfront,0.187618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:47.863704 +AWS,us-west-1,m6i.2xlarge,reserved_3y,partial_upfront,0.187618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:48.455128 +AWS,us-west-1,m6i.2xlarge,spot,NA,0.193944,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395652 +AWS,us-west-1,m6i.32xlarge,on_demand,NA,7.168,USD,AWS Pricing API,2025-11-30T08:54:54.424601 +AWS,us-west-1,m6i.32xlarge,reserved_1y,all_upfront,4.412329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:25.357157 +AWS,us-west-1,m6i.32xlarge,reserved_1y,no_upfront,4.412329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:03.797127 +AWS,us-west-1,m6i.32xlarge,reserved_1y,partial_upfront,4.412329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:52.387893 +AWS,us-west-1,m6i.32xlarge,reserved_3y,all_upfront,1.470776,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:33.264231 +AWS,us-west-1,m6i.32xlarge,reserved_3y,no_upfront,1.470776,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:04.642371 +AWS,us-west-1,m6i.32xlarge,reserved_3y,partial_upfront,1.470776,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:04.870656 +AWS,us-west-1,m6i.32xlarge,spot,NA,1.939587,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396009 +AWS,us-west-1,m6i.4xlarge,on_demand,NA,0.896,USD,AWS Pricing API,2025-11-30T08:54:05.231877 +AWS,us-west-1,m6i.4xlarge,reserved_1y,all_upfront,1.272489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:36.346811 +AWS,us-west-1,m6i.4xlarge,reserved_1y,no_upfront,1.272489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:14.224283 +AWS,us-west-1,m6i.4xlarge,reserved_1y,partial_upfront,1.272489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:03.253587 +AWS,us-west-1,m6i.4xlarge,reserved_3y,all_upfront,0.424163,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:44.463731 +AWS,us-west-1,m6i.4xlarge,reserved_3y,no_upfront,0.424163,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:14.739666 +AWS,us-west-1,m6i.4xlarge,reserved_3y,partial_upfront,0.424163,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:16.078254 +AWS,us-west-1,m6i.4xlarge,spot,NA,0.324299,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394976 +AWS,us-west-1,m6i.8xlarge,on_demand,NA,1.792,USD,AWS Pricing API,2025-11-30T08:54:09.972003 +AWS,us-west-1,m6i.8xlarge,reserved_1y,all_upfront,1.512018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:41.122218 +AWS,us-west-1,m6i.8xlarge,reserved_1y,no_upfront,1.512018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:18.978728 +AWS,us-west-1,m6i.8xlarge,reserved_1y,partial_upfront,1.512018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:08.004327 +AWS,us-west-1,m6i.8xlarge,reserved_3y,all_upfront,0.756006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:49.154874 +AWS,us-west-1,m6i.8xlarge,reserved_3y,no_upfront,0.756006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:19.559873 +AWS,us-west-1,m6i.8xlarge,reserved_3y,partial_upfront,0.756006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:20.754684 +AWS,us-west-1,m6i.8xlarge,spot,NA,0.900442,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395077 +AWS,us-west-1,m6i.large,on_demand,NA,0.112,USD,AWS Pricing API,2025-11-30T08:54:20.639860 +AWS,us-west-1,m6i.large,reserved_1y,all_upfront,0.07034,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:51.614757 +AWS,us-west-1,m6i.large,reserved_1y,no_upfront,0.07034,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:29.762848 +AWS,us-west-1,m6i.large,reserved_1y,partial_upfront,0.07034,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:18.485039 +AWS,us-west-1,m6i.large,reserved_3y,all_upfront,0.0469,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:59.614284 +AWS,us-west-1,m6i.large,reserved_3y,no_upfront,0.0469,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:30.181161 +AWS,us-west-1,m6i.large,reserved_3y,partial_upfront,0.0469,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:31.190512 +AWS,us-west-1,m6i.large,spot,NA,0.037172,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395275 +AWS,us-west-1,m6i.xlarge,on_demand,NA,0.224,USD,AWS Pricing API,2025-11-30T08:53:56.593004 +AWS,us-west-1,m6i.xlarge,reserved_1y,all_upfront,0.17041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:27.691341 +AWS,us-west-1,m6i.xlarge,reserved_1y,no_upfront,0.17041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:05.513605 +AWS,us-west-1,m6i.xlarge,reserved_1y,partial_upfront,0.17041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:54.549533 +AWS,us-west-1,m6i.xlarge,reserved_3y,all_upfront,0.17041,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:35.874855 +AWS,us-west-1,m6i.xlarge,reserved_3y,no_upfront,0.17041,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:05.988354 +AWS,us-west-1,m6i.xlarge,reserved_3y,partial_upfront,0.17041,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:07.529984 +AWS,us-west-1,m6i.xlarge,spot,NA,0.089154,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394803 +AWS,us-west-1,m6id.12xlarge,on_demand,NA,3.3516,USD,AWS Pricing API,2025-11-30T08:54:34.498955 +AWS,us-west-1,m6id.12xlarge,reserved_1y,all_upfront,2.11151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:05.410093 +AWS,us-west-1,m6id.12xlarge,reserved_1y,no_upfront,2.11151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:43.700293 +AWS,us-west-1,m6id.12xlarge,reserved_1y,partial_upfront,2.11151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:32.489060 +AWS,us-west-1,m6id.12xlarge,reserved_3y,all_upfront,2.11151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:13.296360 +AWS,us-west-1,m6id.12xlarge,reserved_3y,no_upfront,2.11151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:44.326892 +AWS,us-west-1,m6id.12xlarge,reserved_3y,partial_upfront,2.11151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:44.970728 +AWS,us-west-1,m6id.12xlarge,spot,NA,1.097725,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395591 +AWS,us-west-1,m6id.16xlarge,on_demand,NA,4.4688,USD,AWS Pricing API,2025-11-30T08:54:01.679754 +AWS,us-west-1,m6id.16xlarge,reserved_1y,all_upfront,2.81534,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:32.849253 +AWS,us-west-1,m6id.16xlarge,reserved_1y,no_upfront,2.81534,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:10.698471 +AWS,us-west-1,m6id.16xlarge,reserved_1y,partial_upfront,2.81534,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:59.634269 +AWS,us-west-1,m6id.16xlarge,reserved_3y,all_upfront,2.81534,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:40.948358 +AWS,us-west-1,m6id.16xlarge,reserved_3y,no_upfront,2.81534,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:11.190913 +AWS,us-west-1,m6id.16xlarge,reserved_3y,partial_upfront,2.81534,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:12.601092 +AWS,us-west-1,m6id.16xlarge,spot,NA,1.475295,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394907 +AWS,us-west-1,m6id.24xlarge,on_demand,NA,6.7032,USD,AWS Pricing API,2025-11-30T08:54:05.926384 +AWS,us-west-1,m6id.24xlarge,reserved_1y,all_upfront,5.33653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:37.029959 +AWS,us-west-1,m6id.24xlarge,reserved_1y,no_upfront,5.33653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:14.915811 +AWS,us-west-1,m6id.24xlarge,reserved_1y,partial_upfront,5.33653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:03.944469 +AWS,us-west-1,m6id.24xlarge,reserved_3y,all_upfront,1.778843,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:45.133495 +AWS,us-west-1,m6id.24xlarge,reserved_3y,no_upfront,1.778843,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:15.438086 +AWS,us-west-1,m6id.24xlarge,reserved_3y,partial_upfront,1.778843,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:16.747521 +AWS,us-west-1,m6id.24xlarge,spot,NA,2.644282,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394996 +AWS,us-west-1,m6id.2xlarge,on_demand,NA,0.5586,USD,AWS Pricing API,2025-11-30T08:53:58.326228 +AWS,us-west-1,m6id.2xlarge,reserved_1y,all_upfront,0.33516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:29.444012 +AWS,us-west-1,m6id.2xlarge,reserved_1y,no_upfront,0.33516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:07.275180 +AWS,us-west-1,m6id.2xlarge,reserved_1y,partial_upfront,0.33516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:56.297208 +AWS,us-west-1,m6id.2xlarge,reserved_3y,all_upfront,0.22344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:37.600033 +AWS,us-west-1,m6id.2xlarge,reserved_3y,no_upfront,0.22344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:07.781479 +AWS,us-west-1,m6id.2xlarge,reserved_3y,partial_upfront,0.22344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:09.270885 +AWS,us-west-1,m6id.2xlarge,spot,NA,0.169193,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394844 +AWS,us-west-1,m6id.32xlarge,on_demand,NA,8.9376,USD,AWS Pricing API,2025-11-30T08:54:38.234037 +AWS,us-west-1,m6id.32xlarge,reserved_1y,all_upfront,5.362559,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:09.180423 +AWS,us-west-1,m6id.32xlarge,reserved_1y,no_upfront,5.362559,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:47.505722 +AWS,us-west-1,m6id.32xlarge,reserved_1y,partial_upfront,5.362559,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:36.240318 +AWS,us-west-1,m6id.32xlarge,reserved_3y,all_upfront,3.57504,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:17.042261 +AWS,us-west-1,m6id.32xlarge,reserved_3y,no_upfront,3.57504,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:48.135760 +AWS,us-west-1,m6id.32xlarge,reserved_3y,partial_upfront,3.57504,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:48.724979 +AWS,us-west-1,m6id.32xlarge,spot,NA,3.530545,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395637 +AWS,us-west-1,m6id.4xlarge,on_demand,NA,1.1172,USD,AWS Pricing API,2025-11-30T08:55:00.419280 +AWS,us-west-1,m6id.4xlarge,reserved_1y,all_upfront,0.67032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:31.389751 +AWS,us-west-1,m6id.4xlarge,reserved_1y,no_upfront,0.67032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:09.903885 +AWS,us-west-1,m6id.4xlarge,reserved_1y,partial_upfront,0.67032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:58.487450 +AWS,us-west-1,m6id.4xlarge,reserved_3y,all_upfront,0.44688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:39.182575 +AWS,us-west-1,m6id.4xlarge,reserved_3y,no_upfront,0.44688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:10.786071 +AWS,us-west-1,m6id.4xlarge,reserved_3y,partial_upfront,0.44688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:10.868333 +AWS,us-west-1,m6id.4xlarge,spot,NA,0.372791,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396086 +AWS,us-west-1,m6id.8xlarge,on_demand,NA,2.2344,USD,AWS Pricing API,2025-11-30T08:54:33.132267 +AWS,us-west-1,m6id.8xlarge,reserved_1y,all_upfront,1.29416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:04.043277 +AWS,us-west-1,m6id.8xlarge,reserved_1y,no_upfront,1.29416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:42.310442 +AWS,us-west-1,m6id.8xlarge,reserved_1y,partial_upfront,1.29416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:31.127566 +AWS,us-west-1,m6id.8xlarge,reserved_3y,all_upfront,1.29416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:11.961736 +AWS,us-west-1,m6id.8xlarge,reserved_3y,no_upfront,1.29416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:42.955974 +AWS,us-west-1,m6id.8xlarge,reserved_3y,partial_upfront,1.29416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:43.628513 +AWS,us-west-1,m6id.8xlarge,spot,NA,0.602019,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395531 +AWS,us-west-1,m6id.large,on_demand,NA,0.13965,USD,AWS Pricing API,2025-11-30T08:55:01.498835 +AWS,us-west-1,m6id.large,reserved_1y,all_upfront,0.11912,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:32.452316 +AWS,us-west-1,m6id.large,reserved_1y,no_upfront,0.11912,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:10.993623 +AWS,us-west-1,m6id.large,reserved_1y,partial_upfront,0.11912,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:59.559404 +AWS,us-west-1,m6id.large,reserved_3y,all_upfront,0.11912,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:40.244220 +AWS,us-west-1,m6id.large,reserved_3y,no_upfront,0.11912,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:11.875361 +AWS,us-west-1,m6id.large,reserved_3y,partial_upfront,0.11912,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:11.938486 +AWS,us-west-1,m6id.large,spot,NA,0.038251,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396098 +AWS,us-west-1,m6id.xlarge,on_demand,NA,0.2793,USD,AWS Pricing API,2025-11-30T08:54:04.914672 +AWS,us-west-1,m6id.xlarge,reserved_1y,all_upfront,0.17596,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:36.075705 +AWS,us-west-1,m6id.xlarge,reserved_1y,no_upfront,0.17596,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:13.951852 +AWS,us-west-1,m6id.xlarge,reserved_1y,partial_upfront,0.17596,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:02.978767 +AWS,us-west-1,m6id.xlarge,reserved_3y,all_upfront,0.17596,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:44.185339 +AWS,us-west-1,m6id.xlarge,reserved_3y,no_upfront,0.17596,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:14.466039 +AWS,us-west-1,m6id.xlarge,reserved_3y,partial_upfront,0.17596,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:15.808298 +AWS,us-west-1,m6id.xlarge,spot,NA,0.082212,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394960 +AWS,us-west-1,m6idn.12xlarge,on_demand,NA,4.40256,USD,AWS Pricing API,2025-11-30T08:54:24.923138 +AWS,us-west-1,m6idn.12xlarge,reserved_1y,all_upfront,2.588699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:55.807689 +AWS,us-west-1,m6idn.12xlarge,reserved_1y,no_upfront,2.588699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:33.989802 +AWS,us-west-1,m6idn.12xlarge,reserved_1y,partial_upfront,2.588699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:22.777583 +AWS,us-west-1,m6idn.12xlarge,reserved_3y,all_upfront,0.8629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:03.795008 +AWS,us-west-1,m6idn.12xlarge,reserved_3y,no_upfront,0.8629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:34.531924 +AWS,us-west-1,m6idn.12xlarge,reserved_3y,partial_upfront,0.8629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:35.441679 +AWS,us-west-1,m6idn.12xlarge,spot,NA,1.723069,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395350 +AWS,us-west-1,m6idn.16xlarge,on_demand,NA,5.87008,USD,AWS Pricing API,2025-11-30T08:54:47.802381 +AWS,us-west-1,m6idn.16xlarge,reserved_1y,all_upfront,2.26263,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:18.756880 +AWS,us-west-1,m6idn.16xlarge,reserved_1y,no_upfront,2.26263,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:57.150742 +AWS,us-west-1,m6idn.16xlarge,reserved_1y,partial_upfront,2.26263,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:45.794326 +AWS,us-west-1,m6idn.16xlarge,reserved_3y,all_upfront,2.26263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:26.561231 +AWS,us-west-1,m6idn.16xlarge,reserved_3y,no_upfront,2.26263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:57.914579 +AWS,us-west-1,m6idn.16xlarge,reserved_3y,partial_upfront,2.26263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:58.293093 +AWS,us-west-1,m6idn.16xlarge,spot,NA,2.258392,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395853 +AWS,us-west-1,m6idn.24xlarge,on_demand,NA,8.80512,USD,AWS Pricing API,2025-11-30T08:54:30.746843 +AWS,us-west-1,m6idn.24xlarge,reserved_1y,all_upfront,7.53776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:01.611098 +AWS,us-west-1,m6idn.24xlarge,reserved_1y,no_upfront,7.53776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:39.875081 +AWS,us-west-1,m6idn.24xlarge,reserved_1y,partial_upfront,7.53776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:28.728768 +AWS,us-west-1,m6idn.24xlarge,reserved_3y,all_upfront,7.53776,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:09.572467 +AWS,us-west-1,m6idn.24xlarge,reserved_3y,no_upfront,7.53776,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:40.486735 +AWS,us-west-1,m6idn.24xlarge,reserved_3y,partial_upfront,7.53776,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:41.189819 +AWS,us-west-1,m6idn.24xlarge,spot,NA,2.664415,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395485 +AWS,us-west-1,m6idn.2xlarge,on_demand,NA,0.73376,USD,AWS Pricing API,2025-11-30T08:54:11.072266 +AWS,us-west-1,m6idn.2xlarge,reserved_1y,all_upfront,0.523748,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:42.216957 +AWS,us-west-1,m6idn.2xlarge,reserved_1y,no_upfront,0.523748,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:20.111454 +AWS,us-west-1,m6idn.2xlarge,reserved_1y,partial_upfront,0.523748,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:09.092486 +AWS,us-west-1,m6idn.2xlarge,reserved_3y,all_upfront,0.261876,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:50.239996 +AWS,us-west-1,m6idn.2xlarge,reserved_3y,no_upfront,0.261876,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:20.643909 +AWS,us-west-1,m6idn.2xlarge,reserved_3y,partial_upfront,0.261876,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:21.833260 +AWS,us-west-1,m6idn.2xlarge,spot,NA,0.200945,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395100 +AWS,us-west-1,m6idn.32xlarge,on_demand,NA,11.74016,USD,AWS Pricing API,2025-11-30T08:54:31.542172 +AWS,us-west-1,m6idn.32xlarge,reserved_1y,all_upfront,7.044082,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:02.421746 +AWS,us-west-1,m6idn.32xlarge,reserved_1y,no_upfront,7.044082,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:40.683784 +AWS,us-west-1,m6idn.32xlarge,reserved_1y,partial_upfront,7.044082,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:29.526410 +AWS,us-west-1,m6idn.32xlarge,reserved_3y,all_upfront,4.696061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:10.365971 +AWS,us-west-1,m6idn.32xlarge,reserved_3y,no_upfront,4.696061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:41.323806 +AWS,us-west-1,m6idn.32xlarge,reserved_3y,partial_upfront,4.696061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:42.003202 +AWS,us-west-1,m6idn.32xlarge,spot,NA,3.677473,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395508 +AWS,us-west-1,m6idn.4xlarge,on_demand,NA,1.46752,USD,AWS Pricing API,2025-11-30T08:54:27.769585 +AWS,us-west-1,m6idn.4xlarge,reserved_1y,all_upfront,0.92454,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:58.626832 +AWS,us-west-1,m6idn.4xlarge,reserved_1y,no_upfront,0.92454,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:36.879745 +AWS,us-west-1,m6idn.4xlarge,reserved_1y,partial_upfront,0.92454,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:25.724272 +AWS,us-west-1,m6idn.4xlarge,reserved_3y,all_upfront,0.92454,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:06.635908 +AWS,us-west-1,m6idn.4xlarge,reserved_3y,no_upfront,0.92454,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:37.430142 +AWS,us-west-1,m6idn.4xlarge,reserved_3y,partial_upfront,0.92454,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:38.250727 +AWS,us-west-1,m6idn.4xlarge,spot,NA,0.635855,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395428 +AWS,us-west-1,m6idn.8xlarge,on_demand,NA,2.93504,USD,AWS Pricing API,2025-11-30T08:53:55.919380 +AWS,us-west-1,m6idn.8xlarge,reserved_1y,all_upfront,2.51259,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:26.980504 +AWS,us-west-1,m6idn.8xlarge,reserved_1y,no_upfront,2.51259,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:04.836233 +AWS,us-west-1,m6idn.8xlarge,reserved_1y,partial_upfront,2.51259,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:53.870153 +AWS,us-west-1,m6idn.8xlarge,reserved_3y,all_upfront,2.51259,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:35.208150 +AWS,us-west-1,m6idn.8xlarge,reserved_3y,no_upfront,2.51259,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:05.304061 +AWS,us-west-1,m6idn.8xlarge,reserved_3y,partial_upfront,2.51259,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:06.867417 +AWS,us-west-1,m6idn.8xlarge,spot,NA,0.934433,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394797 +AWS,us-west-1,m6idn.large,on_demand,NA,0.18344,USD,AWS Pricing API,2025-11-30T08:54:41.873639 +AWS,us-west-1,m6idn.large,reserved_1y,all_upfront,0.255137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:12.821097 +AWS,us-west-1,m6idn.large,reserved_1y,no_upfront,0.255137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:51.180232 +AWS,us-west-1,m6idn.large,reserved_1y,partial_upfront,0.255137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:39.873711 +AWS,us-west-1,m6idn.large,reserved_3y,all_upfront,0.085046,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:20.647025 +AWS,us-west-1,m6idn.large,reserved_3y,no_upfront,0.085046,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:51.858584 +AWS,us-west-1,m6idn.large,reserved_3y,partial_upfront,0.085046,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:52.335790 +AWS,us-west-1,m6idn.large,spot,NA,0.048646,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395749 +AWS,us-west-1,m6idn.xlarge,on_demand,NA,0.36688,USD,AWS Pricing API,2025-11-30T08:54:25.057884 +AWS,us-west-1,m6idn.xlarge,reserved_1y,all_upfront,0.31407,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:55.944350 +AWS,us-west-1,m6idn.xlarge,reserved_1y,no_upfront,0.31407,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:34.127205 +AWS,us-west-1,m6idn.xlarge,reserved_1y,partial_upfront,0.31407,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:22.910711 +AWS,us-west-1,m6idn.xlarge,reserved_3y,all_upfront,0.31407,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:03.931321 +AWS,us-west-1,m6idn.xlarge,reserved_3y,no_upfront,0.31407,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:34.676940 +AWS,us-west-1,m6idn.xlarge,reserved_3y,partial_upfront,0.31407,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:35.575371 +AWS,us-west-1,m6idn.xlarge,spot,NA,0.09995,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395365 +AWS,us-west-1,m6in.12xlarge,on_demand,NA,3.89856,USD,AWS Pricing API,2025-11-30T08:53:53.111333 +AWS,us-west-1,m6in.12xlarge,reserved_1y,all_upfront,3.114954,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:24.156513 +AWS,us-west-1,m6in.12xlarge,reserved_1y,no_upfront,3.114954,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:01.986687 +AWS,us-west-1,m6in.12xlarge,reserved_1y,partial_upfront,3.114954,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:51.045230 +AWS,us-west-1,m6in.12xlarge,reserved_3y,all_upfront,1.038318,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:32.386239 +AWS,us-west-1,m6in.12xlarge,reserved_3y,no_upfront,1.038318,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:02.415376 +AWS,us-west-1,m6in.12xlarge,reserved_3y,partial_upfront,1.038318,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:04.035610 +AWS,us-west-1,m6in.12xlarge,spot,NA,1.491627,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394754 +AWS,us-west-1,m6in.16xlarge,on_demand,NA,5.19808,USD,AWS Pricing API,2025-11-30T08:54:02.891177 +AWS,us-west-1,m6in.16xlarge,reserved_1y,all_upfront,7.230137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:34.053646 +AWS,us-west-1,m6in.16xlarge,reserved_1y,no_upfront,7.230137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:11.917217 +AWS,us-west-1,m6in.16xlarge,reserved_1y,partial_upfront,7.230137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:00.846229 +AWS,us-west-1,m6in.16xlarge,reserved_3y,all_upfront,2.410046,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:42.167338 +AWS,us-west-1,m6in.16xlarge,reserved_3y,no_upfront,2.410046,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:12.417206 +AWS,us-west-1,m6in.16xlarge,reserved_3y,partial_upfront,2.410046,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:13.800451 +AWS,us-west-1,m6in.16xlarge,spot,NA,1.836336,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394935 +AWS,us-west-1,m6in.24xlarge,on_demand,NA,7.79712,USD,AWS Pricing API,2025-11-30T08:54:44.315531 +AWS,us-west-1,m6in.24xlarge,reserved_1y,all_upfront,10.845091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:15.266381 +AWS,us-west-1,m6in.24xlarge,reserved_1y,no_upfront,10.845091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:53.630230 +AWS,us-west-1,m6in.24xlarge,reserved_1y,partial_upfront,10.845091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:42.292232 +AWS,us-west-1,m6in.24xlarge,reserved_3y,all_upfront,3.61503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:23.055696 +AWS,us-west-1,m6in.24xlarge,reserved_3y,no_upfront,3.61503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:54.328851 +AWS,us-west-1,m6in.24xlarge,reserved_3y,partial_upfront,3.61503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:54.800739 +AWS,us-west-1,m6in.24xlarge,spot,NA,2.026841,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395765 +AWS,us-west-1,m6in.2xlarge,on_demand,NA,0.64976,USD,AWS Pricing API,2025-11-30T08:54:09.700806 +AWS,us-west-1,m6in.2xlarge,reserved_1y,all_upfront,0.463781,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:40.796766 +AWS,us-west-1,m6in.2xlarge,reserved_1y,no_upfront,0.463781,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:18.708752 +AWS,us-west-1,m6in.2xlarge,reserved_1y,partial_upfront,0.463781,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:07.730036 +AWS,us-west-1,m6in.2xlarge,reserved_3y,all_upfront,0.231894,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:48.885008 +AWS,us-west-1,m6in.2xlarge,reserved_3y,no_upfront,0.231894,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:19.273143 +AWS,us-west-1,m6in.2xlarge,reserved_3y,partial_upfront,0.231894,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:20.477291 +AWS,us-west-1,m6in.2xlarge,spot,NA,0.180252,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395085 +AWS,us-west-1,m6in.32xlarge,on_demand,NA,10.39616,USD,AWS Pricing API,2025-11-30T08:53:58.463674 +AWS,us-west-1,m6in.32xlarge,reserved_1y,all_upfront,8.89979,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:29.579231 +AWS,us-west-1,m6in.32xlarge,reserved_1y,no_upfront,8.89979,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:07.413636 +AWS,us-west-1,m6in.32xlarge,reserved_1y,partial_upfront,8.89979,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:56.431512 +AWS,us-west-1,m6in.32xlarge,reserved_3y,all_upfront,8.89979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:37.733577 +AWS,us-west-1,m6in.32xlarge,reserved_3y,no_upfront,8.89979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:07.917083 +AWS,us-west-1,m6in.32xlarge,reserved_3y,partial_upfront,8.89979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:09.406783 +AWS,us-west-1,m6in.32xlarge,spot,NA,2.363281,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394856 +AWS,us-west-1,m6in.4xlarge,on_demand,NA,1.29952,USD,AWS Pricing API,2025-11-30T08:54:08.482514 +AWS,us-west-1,m6in.4xlarge,reserved_1y,all_upfront,1.11247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:39.583179 +AWS,us-west-1,m6in.4xlarge,reserved_1y,no_upfront,1.11247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:17.489384 +AWS,us-west-1,m6in.4xlarge,reserved_1y,partial_upfront,1.11247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:06.517135 +AWS,us-west-1,m6in.4xlarge,reserved_3y,all_upfront,1.11247,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:47.677295 +AWS,us-west-1,m6in.4xlarge,reserved_3y,no_upfront,1.11247,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:18.040080 +AWS,us-west-1,m6in.4xlarge,reserved_3y,partial_upfront,1.11247,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:19.275681 +AWS,us-west-1,m6in.4xlarge,spot,NA,0.344165,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395052 +AWS,us-west-1,m6in.8xlarge,on_demand,NA,2.59904,USD,AWS Pricing API,2025-11-30T08:54:06.601160 +AWS,us-west-1,m6in.8xlarge,reserved_1y,all_upfront,1.6374,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:37.700524 +AWS,us-west-1,m6in.8xlarge,reserved_1y,no_upfront,1.6374,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:15.596815 +AWS,us-west-1,m6in.8xlarge,reserved_1y,partial_upfront,1.6374,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:04.624509 +AWS,us-west-1,m6in.8xlarge,reserved_3y,all_upfront,1.6374,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:45.799838 +AWS,us-west-1,m6in.8xlarge,reserved_3y,no_upfront,1.6374,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:16.120823 +AWS,us-west-1,m6in.8xlarge,reserved_3y,partial_upfront,1.6374,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:17.412059 +AWS,us-west-1,m6in.8xlarge,spot,NA,0.899977,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395028 +AWS,us-west-1,m6in.large,on_demand,NA,0.16244,USD,AWS Pricing API,2025-11-30T08:54:26.278830 +AWS,us-west-1,m6in.large,reserved_1y,all_upfront,0.095548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:57.153456 +AWS,us-west-1,m6in.large,reserved_1y,no_upfront,0.095548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:35.367061 +AWS,us-west-1,m6in.large,reserved_1y,partial_upfront,0.095548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:24.229965 +AWS,us-west-1,m6in.large,reserved_3y,all_upfront,0.031849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:05.161894 +AWS,us-west-1,m6in.large,reserved_3y,no_upfront,0.031849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:35.923110 +AWS,us-west-1,m6in.large,reserved_3y,partial_upfront,0.031849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:36.775323 +AWS,us-west-1,m6in.large,spot,NA,0.049768,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395385 +AWS,us-west-1,m6in.xlarge,on_demand,NA,0.32488,USD,AWS Pricing API,2025-11-30T08:54:40.252363 +AWS,us-west-1,m6in.xlarge,reserved_1y,all_upfront,0.12523,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:11.200800 +AWS,us-west-1,m6in.xlarge,reserved_1y,no_upfront,0.12523,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:49.542686 +AWS,us-west-1,m6in.xlarge,reserved_1y,partial_upfront,0.12523,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:38.254347 +AWS,us-west-1,m6in.xlarge,reserved_3y,all_upfront,0.12523,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:19.041940 +AWS,us-west-1,m6in.xlarge,reserved_3y,no_upfront,0.12523,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:50.210440 +AWS,us-west-1,m6in.xlarge,reserved_3y,partial_upfront,0.12523,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:50.740111 +AWS,us-west-1,m6in.xlarge,spot,NA,0.080919,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395684 +AWS,us-west-1,m7g.12xlarge,on_demand,NA,2.2848,USD,AWS Pricing API,2025-11-30T08:54:13.917402 +AWS,us-west-1,m7g.12xlarge,reserved_1y,all_upfront,1.5068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:45.032929 +AWS,us-west-1,m7g.12xlarge,reserved_1y,no_upfront,1.5068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:23.017270 +AWS,us-west-1,m7g.12xlarge,reserved_1y,partial_upfront,1.5068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:11.906974 +AWS,us-west-1,m7g.12xlarge,reserved_3y,all_upfront,1.5068,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:53.047275 +AWS,us-west-1,m7g.12xlarge,reserved_3y,no_upfront,1.5068,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:23.497557 +AWS,us-west-1,m7g.12xlarge,reserved_3y,partial_upfront,1.5068,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:24.633494 +AWS,us-west-1,m7g.12xlarge,spot,NA,0.712063,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395161 +AWS,us-west-1,m7g.16xlarge,on_demand,NA,3.0464,USD,AWS Pricing API,2025-11-30T08:54:42.679396 +AWS,us-west-1,m7g.16xlarge,reserved_1y,all_upfront,1.913435,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:13.639539 +AWS,us-west-1,m7g.16xlarge,reserved_1y,no_upfront,1.913435,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:51.994484 +AWS,us-west-1,m7g.16xlarge,reserved_1y,partial_upfront,1.913435,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:40.673758 +AWS,us-west-1,m7g.16xlarge,reserved_3y,all_upfront,1.275612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:21.448916 +AWS,us-west-1,m7g.16xlarge,reserved_3y,no_upfront,1.275612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:52.675212 +AWS,us-west-1,m7g.16xlarge,reserved_3y,partial_upfront,1.275612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:53.184959 +AWS,us-west-1,m7g.16xlarge,spot,NA,0.865161,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395741 +AWS,us-west-1,m7g.2xlarge,on_demand,NA,0.3808,USD,AWS Pricing API,2025-11-30T08:54:05.789938 +AWS,us-west-1,m7g.2xlarge,reserved_1y,all_upfront,0.234361,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:36.895455 +AWS,us-west-1,m7g.2xlarge,reserved_1y,no_upfront,0.234361,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:14.773179 +AWS,us-west-1,m7g.2xlarge,reserved_1y,partial_upfront,0.234361,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:03.809592 +AWS,us-west-1,m7g.2xlarge,reserved_3y,all_upfront,0.07812,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:45.000398 +AWS,us-west-1,m7g.2xlarge,reserved_3y,no_upfront,0.07812,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:15.300559 +AWS,us-west-1,m7g.2xlarge,reserved_3y,partial_upfront,0.07812,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:16.612037 +AWS,us-west-1,m7g.2xlarge,spot,NA,0.114412,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394988 +AWS,us-west-1,m7g.4xlarge,on_demand,NA,0.7616,USD,AWS Pricing API,2025-11-30T08:55:02.046873 +AWS,us-west-1,m7g.4xlarge,reserved_1y,all_upfront,0.5794,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:32.984212 +AWS,us-west-1,m7g.4xlarge,reserved_1y,no_upfront,0.5794,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:11.533275 +AWS,us-west-1,m7g.4xlarge,reserved_1y,partial_upfront,0.5794,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:00.095657 +AWS,us-west-1,m7g.4xlarge,reserved_3y,all_upfront,0.5794,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:40.767953 +AWS,us-west-1,m7g.4xlarge,reserved_3y,no_upfront,0.5794,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:12.423079 +AWS,us-west-1,m7g.4xlarge,reserved_3y,partial_upfront,0.5794,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:12.479867 +AWS,us-west-1,m7g.4xlarge,spot,NA,0.24053,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396125 +AWS,us-west-1,m7g.8xlarge,on_demand,NA,1.5232,USD,AWS Pricing API,2025-11-30T08:53:56.999396 +AWS,us-west-1,m7g.8xlarge,reserved_1y,all_upfront,2.162557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:28.089281 +AWS,us-west-1,m7g.8xlarge,reserved_1y,no_upfront,2.162557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:05.919448 +AWS,us-west-1,m7g.8xlarge,reserved_1y,partial_upfront,2.162557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:54.949775 +AWS,us-west-1,m7g.8xlarge,reserved_3y,all_upfront,0.720852,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:36.274919 +AWS,us-west-1,m7g.8xlarge,reserved_3y,no_upfront,0.720852,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:06.409597 +AWS,us-west-1,m7g.8xlarge,reserved_3y,partial_upfront,0.720852,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:07.929859 +AWS,us-west-1,m7g.8xlarge,spot,NA,0.518874,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394824 +AWS,us-west-1,m7g.large,on_demand,NA,0.0952,USD,AWS Pricing API,2025-11-30T08:54:24.656793 +AWS,us-west-1,m7g.large,reserved_1y,all_upfront,0.0628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:55.529404 +AWS,us-west-1,m7g.large,reserved_1y,no_upfront,0.0628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:33.722141 +AWS,us-west-1,m7g.large,reserved_1y,partial_upfront,0.0628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:22.509652 +AWS,us-west-1,m7g.large,reserved_3y,all_upfront,0.0628,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:03.527597 +AWS,us-west-1,m7g.large,reserved_3y,no_upfront,0.0628,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:34.254898 +AWS,us-west-1,m7g.large,reserved_3y,partial_upfront,0.0628,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:35.097562 +AWS,us-west-1,m7g.large,spot,NA,0.038992,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395373 +AWS,us-west-1,m7g.xlarge,on_demand,NA,0.1904,USD,AWS Pricing API,2025-11-30T08:54:31.402814 +AWS,us-west-1,m7g.xlarge,reserved_1y,all_upfront,0.119617,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:02.285952 +AWS,us-west-1,m7g.xlarge,reserved_1y,no_upfront,0.119617,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:40.548332 +AWS,us-west-1,m7g.xlarge,reserved_1y,partial_upfront,0.119617,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:29.389884 +AWS,us-west-1,m7g.xlarge,reserved_3y,all_upfront,0.079739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:10.232429 +AWS,us-west-1,m7g.xlarge,reserved_3y,no_upfront,0.079739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:41.178554 +AWS,us-west-1,m7g.xlarge,reserved_3y,partial_upfront,0.079739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:41.859695 +AWS,us-west-1,m7g.xlarge,spot,NA,0.062343,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395512 +AWS,us-west-1,m7gd.12xlarge,on_demand,NA,3.0164,USD,AWS Pricing API,2025-11-30T08:54:05.097075 +AWS,us-west-1,m7gd.12xlarge,reserved_1y,all_upfront,2.401598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:36.209313 +AWS,us-west-1,m7gd.12xlarge,reserved_1y,no_upfront,2.401598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:14.086514 +AWS,us-west-1,m7gd.12xlarge,reserved_1y,partial_upfront,2.401598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:03.119407 +AWS,us-west-1,m7gd.12xlarge,reserved_3y,all_upfront,0.800533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:44.318918 +AWS,us-west-1,m7gd.12xlarge,reserved_3y,no_upfront,0.800533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:14.601437 +AWS,us-west-1,m7gd.12xlarge,reserved_3y,partial_upfront,0.800533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:15.943596 +AWS,us-west-1,m7gd.12xlarge,spot,NA,1.010244,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395004 +AWS,us-west-1,m7gd.16xlarge,on_demand,NA,4.0219,USD,AWS Pricing API,2025-11-30T08:54:22.292781 +AWS,us-west-1,m7gd.16xlarge,reserved_1y,all_upfront,2.413221,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:53.242041 +AWS,us-west-1,m7gd.16xlarge,reserved_1y,no_upfront,2.413221,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:31.416988 +AWS,us-west-1,m7gd.16xlarge,reserved_1y,partial_upfront,2.413221,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:20.193708 +AWS,us-west-1,m7gd.16xlarge,reserved_3y,all_upfront,1.608807,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:01.233241 +AWS,us-west-1,m7gd.16xlarge,reserved_3y,no_upfront,1.608807,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:31.833563 +AWS,us-west-1,m7gd.16xlarge,reserved_3y,partial_upfront,1.608807,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:32.811563 +AWS,us-west-1,m7gd.16xlarge,spot,NA,1.071084,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395307 +AWS,us-west-1,m7gd.2xlarge,on_demand,NA,0.5027,USD,AWS Pricing API,2025-11-30T08:54:37.829022 +AWS,us-west-1,m7gd.2xlarge,reserved_1y,all_upfront,0.4289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:08.777509 +AWS,us-west-1,m7gd.2xlarge,reserved_1y,no_upfront,0.4289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:47.090415 +AWS,us-west-1,m7gd.2xlarge,reserved_1y,partial_upfront,0.4289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:35.833452 +AWS,us-west-1,m7gd.2xlarge,reserved_3y,all_upfront,0.4289,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:16.645432 +AWS,us-west-1,m7gd.2xlarge,reserved_3y,no_upfront,0.4289,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:47.728133 +AWS,us-west-1,m7gd.2xlarge,reserved_3y,partial_upfront,0.4289,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:48.320904 +AWS,us-west-1,m7gd.2xlarge,spot,NA,0.128722,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395649 +AWS,us-west-1,m7gd.4xlarge,on_demand,NA,1.0055,USD,AWS Pricing API,2025-11-30T08:54:55.243344 +AWS,us-west-1,m7gd.4xlarge,reserved_1y,all_upfront,0.6335,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:26.170995 +AWS,us-west-1,m7gd.4xlarge,reserved_1y,no_upfront,0.6335,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:04.619860 +AWS,us-west-1,m7gd.4xlarge,reserved_1y,partial_upfront,0.6335,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:53.196794 +AWS,us-west-1,m7gd.4xlarge,reserved_3y,all_upfront,0.6335,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:34.052635 +AWS,us-west-1,m7gd.4xlarge,reserved_3y,no_upfront,0.6335,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:05.468525 +AWS,us-west-1,m7gd.4xlarge,reserved_3y,partial_upfront,0.6335,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:05.675848 +AWS,us-west-1,m7gd.4xlarge,spot,NA,0.358224,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396021 +AWS,us-west-1,m7gd.8xlarge,on_demand,NA,2.011,USD,AWS Pricing API,2025-11-30T08:54:35.556246 +AWS,us-west-1,m7gd.8xlarge,reserved_1y,all_upfront,2.268379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:06.494308 +AWS,us-west-1,m7gd.8xlarge,reserved_1y,no_upfront,2.268379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:44.785048 +AWS,us-west-1,m7gd.8xlarge,reserved_1y,partial_upfront,2.268379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:33.556881 +AWS,us-west-1,m7gd.8xlarge,reserved_3y,all_upfront,0.756126,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:14.370373 +AWS,us-west-1,m7gd.8xlarge,reserved_3y,no_upfront,0.756126,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:45.411650 +AWS,us-west-1,m7gd.8xlarge,reserved_3y,partial_upfront,0.756126,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:46.042564 +AWS,us-west-1,m7gd.8xlarge,spot,NA,0.638009,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395610 +AWS,us-west-1,m7gd.large,on_demand,NA,0.1257,USD,AWS Pricing API,2025-11-30T08:54:33.406401 +AWS,us-west-1,m7gd.large,reserved_1y,all_upfront,0.100114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:04.310836 +AWS,us-west-1,m7gd.large,reserved_1y,no_upfront,0.100114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:42.589086 +AWS,us-west-1,m7gd.large,reserved_1y,partial_upfront,0.100114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:31.396491 +AWS,us-west-1,m7gd.large,reserved_3y,all_upfront,0.033371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:12.227581 +AWS,us-west-1,m7gd.large,reserved_3y,no_upfront,0.033371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:43.229099 +AWS,us-west-1,m7gd.large,reserved_3y,partial_upfront,0.033371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:43.898320 +AWS,us-west-1,m7gd.large,spot,NA,0.039145,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395527 +AWS,us-west-1,m7gd.xlarge,on_demand,NA,0.2514,USD,AWS Pricing API,2025-11-30T08:54:39.442747 +AWS,us-west-1,m7gd.xlarge,reserved_1y,all_upfront,0.2144,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:10.391157 +AWS,us-west-1,m7gd.xlarge,reserved_1y,no_upfront,0.2144,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:48.729284 +AWS,us-west-1,m7gd.xlarge,reserved_1y,partial_upfront,0.2144,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:37.445291 +AWS,us-west-1,m7gd.xlarge,reserved_3y,all_upfront,0.2144,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:18.246135 +AWS,us-west-1,m7gd.xlarge,reserved_3y,no_upfront,0.2144,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:49.381217 +AWS,us-west-1,m7gd.xlarge,reserved_3y,partial_upfront,0.2144,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:49.932222 +AWS,us-west-1,m7gd.xlarge,spot,NA,0.064752,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395672 +AWS,us-west-1,m7i.12xlarge,on_demand,NA,2.8224,USD,AWS Pricing API,2025-11-30T08:54:11.214981 +AWS,us-west-1,m7i.12xlarge,reserved_1y,all_upfront,2.044969,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:42.350027 +AWS,us-west-1,m7i.12xlarge,reserved_1y,no_upfront,2.044969,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:20.249110 +AWS,us-west-1,m7i.12xlarge,reserved_1y,partial_upfront,2.044969,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:09.225301 +AWS,us-west-1,m7i.12xlarge,reserved_3y,all_upfront,1.36331,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:50.373041 +AWS,us-west-1,m7i.12xlarge,reserved_3y,no_upfront,1.36331,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:20.780631 +AWS,us-west-1,m7i.12xlarge,reserved_3y,partial_upfront,1.36331,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:21.967137 +AWS,us-west-1,m7i.12xlarge,spot,NA,1.005702,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395111 +AWS,us-west-1,m7i.16xlarge,on_demand,NA,3.7632,USD,AWS Pricing API,2025-11-30T08:54:48.064942 +AWS,us-west-1,m7i.16xlarge,reserved_1y,all_upfront,2.86296,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:19.027508 +AWS,us-west-1,m7i.16xlarge,reserved_1y,no_upfront,2.86296,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:57.420809 +AWS,us-west-1,m7i.16xlarge,reserved_1y,partial_upfront,2.86296,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:46.069027 +AWS,us-west-1,m7i.16xlarge,reserved_3y,all_upfront,2.86296,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:26.831935 +AWS,us-west-1,m7i.16xlarge,reserved_3y,no_upfront,2.86296,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:58.188373 +AWS,us-west-1,m7i.16xlarge,reserved_3y,partial_upfront,2.86296,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:58.557985 +AWS,us-west-1,m7i.16xlarge,spot,NA,1.259942,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395849 +AWS,us-west-1,m7i.24xlarge,on_demand,NA,5.6448,USD,AWS Pricing API,2025-11-30T08:54:54.156883 +AWS,us-west-1,m7i.24xlarge,reserved_1y,all_upfront,3.545661,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:25.092601 +AWS,us-west-1,m7i.24xlarge,reserved_1y,no_upfront,3.545661,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:03.527997 +AWS,us-west-1,m7i.24xlarge,reserved_1y,partial_upfront,3.545661,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:52.123167 +AWS,us-west-1,m7i.24xlarge,reserved_3y,all_upfront,2.363774,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:32.975159 +AWS,us-west-1,m7i.24xlarge,reserved_3y,no_upfront,2.363774,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:04.363099 +AWS,us-west-1,m7i.24xlarge,reserved_3y,partial_upfront,2.363774,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:04.606325 +AWS,us-west-1,m7i.24xlarge,spot,NA,1.426162,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396001 +AWS,us-west-1,m7i.2xlarge,on_demand,NA,0.4704,USD,AWS Pricing API,2025-11-30T08:54:29.656844 +AWS,us-west-1,m7i.2xlarge,reserved_1y,all_upfront,0.454478,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:00.524653 +AWS,us-west-1,m7i.2xlarge,reserved_1y,no_upfront,0.454478,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:38.790333 +AWS,us-west-1,m7i.2xlarge,reserved_1y,partial_upfront,0.454478,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:27.662676 +AWS,us-west-1,m7i.2xlarge,reserved_3y,all_upfront,0.227233,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:08.503707 +AWS,us-west-1,m7i.2xlarge,reserved_3y,no_upfront,0.227233,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:39.383366 +AWS,us-west-1,m7i.2xlarge,reserved_3y,partial_upfront,0.227233,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:40.119679 +AWS,us-west-1,m7i.2xlarge,spot,NA,0.196092,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395474 +AWS,us-west-1,m7i.48xlarge,on_demand,NA,11.2896,USD,AWS Pricing API,2025-11-30T08:53:52.698533 +AWS,us-west-1,m7i.48xlarge,reserved_1y,all_upfront,9.525722,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:23.753176 +AWS,us-west-1,m7i.48xlarge,reserved_1y,no_upfront,9.525722,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:01.544434 +AWS,us-west-1,m7i.48xlarge,reserved_1y,partial_upfront,9.525722,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:50.642941 +AWS,us-west-1,m7i.48xlarge,reserved_3y,all_upfront,4.762861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:31.982885 +AWS,us-west-1,m7i.48xlarge,reserved_3y,no_upfront,4.762861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:02.004087 +AWS,us-west-1,m7i.48xlarge,reserved_3y,partial_upfront,4.762861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:03.595969 +AWS,us-west-1,m7i.48xlarge,spot,NA,2.881672,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394719 +AWS,us-west-1,m7i.4xlarge,on_demand,NA,0.9408,USD,AWS Pricing API,2025-11-30T08:54:06.463107 +AWS,us-west-1,m7i.4xlarge,reserved_1y,all_upfront,0.57911,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:37.567322 +AWS,us-west-1,m7i.4xlarge,reserved_1y,no_upfront,0.57911,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:15.460664 +AWS,us-west-1,m7i.4xlarge,reserved_1y,partial_upfront,0.57911,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:04.490650 +AWS,us-west-1,m7i.4xlarge,reserved_3y,all_upfront,0.193037,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:45.666439 +AWS,us-west-1,m7i.4xlarge,reserved_3y,no_upfront,0.193037,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:15.984670 +AWS,us-west-1,m7i.4xlarge,reserved_3y,partial_upfront,0.193037,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:17.277928 +AWS,us-west-1,m7i.4xlarge,spot,NA,0.347534,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395012 +AWS,us-west-1,m7i.8xlarge,on_demand,NA,1.8816,USD,AWS Pricing API,2025-11-30T08:54:43.893447 +AWS,us-west-1,m7i.8xlarge,reserved_1y,all_upfront,1.43148,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:14.858623 +AWS,us-west-1,m7i.8xlarge,reserved_1y,no_upfront,1.43148,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:53.220265 +AWS,us-west-1,m7i.8xlarge,reserved_1y,partial_upfront,1.43148,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:41.877845 +AWS,us-west-1,m7i.8xlarge,reserved_3y,all_upfront,1.43148,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:22.649286 +AWS,us-west-1,m7i.8xlarge,reserved_3y,no_upfront,1.43148,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:53.909882 +AWS,us-west-1,m7i.8xlarge,reserved_3y,partial_upfront,1.43148,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:54.392082 +AWS,us-west-1,m7i.8xlarge,spot,NA,0.962595,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395768 +AWS,us-west-1,m7i.large,on_demand,NA,0.1176,USD,AWS Pricing API,2025-11-30T08:54:09.420161 +AWS,us-west-1,m7i.large,reserved_1y,all_upfront,0.083447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:40.524029 +AWS,us-west-1,m7i.large,reserved_1y,no_upfront,0.083447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:18.439193 +AWS,us-west-1,m7i.large,reserved_1y,partial_upfront,0.083447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:07.458824 +AWS,us-west-1,m7i.large,reserved_3y,all_upfront,0.027816,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:48.615835 +AWS,us-west-1,m7i.large,reserved_3y,no_upfront,0.027816,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:19.000184 +AWS,us-west-1,m7i.large,reserved_3y,partial_upfront,0.027816,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:20.208470 +AWS,us-west-1,m7i.large,spot,NA,0.038157,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395057 +AWS,us-west-1,m7i.metal-24xl,on_demand,NA,5.6448,USD,AWS Pricing API,2025-11-30T08:53:52.837023 +AWS,us-west-1,m7i.metal-24xl,reserved_1y,all_upfront,3.545661,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:23.886945 +AWS,us-west-1,m7i.metal-24xl,reserved_1y,no_upfront,3.545661,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:01.712283 +AWS,us-west-1,m7i.metal-24xl,reserved_1y,partial_upfront,3.545661,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:50.778310 +AWS,us-west-1,m7i.metal-24xl,reserved_3y,all_upfront,2.363774,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:32.118956 +AWS,us-west-1,m7i.metal-24xl,reserved_3y,no_upfront,2.363774,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:02.141349 +AWS,us-west-1,m7i.metal-24xl,reserved_3y,partial_upfront,2.363774,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:03.733645 +AWS,us-west-1,m7i.metal-24xl,spot,NA,1.443476,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394742 +AWS,us-west-1,m7i.metal-48xl,on_demand,NA,11.2896,USD,AWS Pricing API,2025-11-30T08:54:33.805798 +AWS,us-west-1,m7i.metal-48xl,reserved_1y,all_upfront,8.179894,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:04.716149 +AWS,us-west-1,m7i.metal-48xl,reserved_1y,no_upfront,8.179894,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:42.990622 +AWS,us-west-1,m7i.metal-48xl,reserved_1y,partial_upfront,8.179894,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:31.801287 +AWS,us-west-1,m7i.metal-48xl,reserved_3y,all_upfront,5.453258,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:12.626850 +AWS,us-west-1,m7i.metal-48xl,reserved_3y,no_upfront,5.453258,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:43.639874 +AWS,us-west-1,m7i.metal-48xl,reserved_3y,partial_upfront,5.453258,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:44.304923 +AWS,us-west-1,m7i.metal-48xl,spot,NA,2.099724,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395559 +AWS,us-west-1,m7i.xlarge,on_demand,NA,0.2352,USD,AWS Pricing API,2025-11-30T08:54:55.641183 +AWS,us-west-1,m7i.xlarge,reserved_1y,all_upfront,0.334018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:26.572087 +AWS,us-west-1,m7i.xlarge,reserved_1y,no_upfront,0.334018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:05.030908 +AWS,us-west-1,m7i.xlarge,reserved_1y,partial_upfront,0.334018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:53.593292 +AWS,us-west-1,m7i.xlarge,reserved_3y,all_upfront,0.111339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:34.448622 +AWS,us-west-1,m7i.xlarge,reserved_3y,no_upfront,0.111339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:05.877347 +AWS,us-west-1,m7i.xlarge,reserved_3y,partial_upfront,0.111339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:06.079774 +AWS,us-west-1,m7i.xlarge,spot,NA,0.093313,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396032 +AWS,us-west-1,m8g.12xlarge,on_demand,NA,2.51328,USD,AWS Pricing API,2025-11-30T08:54:39.840513 +AWS,us-west-1,m8g.12xlarge,reserved_1y,all_upfront,1.547032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:10.799150 +AWS,us-west-1,m8g.12xlarge,reserved_1y,no_upfront,1.547032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:49.134963 +AWS,us-west-1,m8g.12xlarge,reserved_1y,partial_upfront,1.547032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:37.847402 +AWS,us-west-1,m8g.12xlarge,reserved_3y,all_upfront,0.515677,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:18.644635 +AWS,us-west-1,m8g.12xlarge,reserved_3y,no_upfront,0.515677,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:49.792945 +AWS,us-west-1,m8g.12xlarge,reserved_3y,partial_upfront,0.515677,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:50.334571 +AWS,us-west-1,m8g.12xlarge,spot,NA,0.912461,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395687 +AWS,us-west-1,m8g.16xlarge,on_demand,NA,3.35104,USD,AWS Pricing API,2025-11-30T08:53:53.246117 +AWS,us-west-1,m8g.16xlarge,reserved_1y,all_upfront,2.379224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:24.292214 +AWS,us-west-1,m8g.16xlarge,reserved_1y,no_upfront,2.379224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:02.123576 +AWS,us-west-1,m8g.16xlarge,reserved_1y,partial_upfront,2.379224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:51.180319 +AWS,us-west-1,m8g.16xlarge,reserved_3y,all_upfront,0.793075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:32.520249 +AWS,us-west-1,m8g.16xlarge,reserved_3y,no_upfront,0.793075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:02.552284 +AWS,us-west-1,m8g.16xlarge,reserved_3y,partial_upfront,0.793075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:04.179127 +AWS,us-west-1,m8g.16xlarge,spot,NA,1.238453,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394767 +AWS,us-west-1,m8g.24xlarge,on_demand,NA,5.02656,USD,AWS Pricing API,2025-11-30T08:55:00.826792 +AWS,us-west-1,m8g.24xlarge,reserved_1y,all_upfront,2.29036,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:31.791022 +AWS,us-west-1,m8g.24xlarge,reserved_1y,no_upfront,2.29036,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:10.313588 +AWS,us-west-1,m8g.24xlarge,reserved_1y,partial_upfront,2.29036,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:58.892526 +AWS,us-west-1,m8g.24xlarge,reserved_3y,all_upfront,2.29036,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:39.583168 +AWS,us-west-1,m8g.24xlarge,reserved_3y,no_upfront,2.29036,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:11.198812 +AWS,us-west-1,m8g.24xlarge,reserved_3y,partial_upfront,2.29036,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:11.271465 +AWS,us-west-1,m8g.24xlarge,spot,NA,1.60792,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396094 +AWS,us-west-1,m8g.2xlarge,on_demand,NA,0.41888,USD,AWS Pricing API,2025-11-30T08:54:52.515309 +AWS,us-west-1,m8g.2xlarge,reserved_1y,all_upfront,0.498402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:23.472210 +AWS,us-west-1,m8g.2xlarge,reserved_1y,no_upfront,0.498402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:01.892100 +AWS,us-west-1,m8g.2xlarge,reserved_1y,partial_upfront,0.498402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:50.513175 +AWS,us-west-1,m8g.2xlarge,reserved_3y,all_upfront,0.166134,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:31.388875 +AWS,us-west-1,m8g.2xlarge,reserved_3y,no_upfront,0.166134,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:02.706388 +AWS,us-west-1,m8g.2xlarge,reserved_3y,partial_upfront,0.166134,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:02.988702 +AWS,us-west-1,m8g.2xlarge,spot,NA,0.124734,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395962 +AWS,us-west-1,m8g.48xlarge,on_demand,NA,10.05312,USD,AWS Pricing API,2025-11-30T08:54:25.875994 +AWS,us-west-1,m8g.48xlarge,reserved_1y,all_upfront,7.283521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:56.754567 +AWS,us-west-1,m8g.48xlarge,reserved_1y,no_upfront,7.283521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:34.953700 +AWS,us-west-1,m8g.48xlarge,reserved_1y,partial_upfront,7.283521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:23.824644 +AWS,us-west-1,m8g.48xlarge,reserved_3y,all_upfront,4.855667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:04.759483 +AWS,us-west-1,m8g.48xlarge,reserved_3y,no_upfront,4.855667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:35.502442 +AWS,us-west-1,m8g.48xlarge,reserved_3y,partial_upfront,4.855667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:36.374586 +AWS,us-west-1,m8g.48xlarge,spot,NA,2.672523,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395401 +AWS,us-west-1,m8g.4xlarge,on_demand,NA,0.83776,USD,AWS Pricing API,2025-11-30T08:54:42.541470 +AWS,us-west-1,m8g.4xlarge,reserved_1y,all_upfront,0.515639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:13.501560 +AWS,us-west-1,m8g.4xlarge,reserved_1y,no_upfront,0.515639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:51.857453 +AWS,us-west-1,m8g.4xlarge,reserved_1y,partial_upfront,0.515639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:40.539192 +AWS,us-west-1,m8g.4xlarge,reserved_3y,all_upfront,0.17188,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:21.316415 +AWS,us-west-1,m8g.4xlarge,reserved_3y,no_upfront,0.17188,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:52.537251 +AWS,us-west-1,m8g.4xlarge,reserved_3y,partial_upfront,0.17188,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:53.052381 +AWS,us-west-1,m8g.4xlarge,spot,NA,0.235321,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395737 +AWS,us-west-1,m8g.8xlarge,on_demand,NA,1.67552,USD,AWS Pricing API,2025-11-30T08:54:14.282150 +AWS,us-west-1,m8g.8xlarge,reserved_1y,all_upfront,1.618249,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:45.299239 +AWS,us-west-1,m8g.8xlarge,reserved_1y,no_upfront,1.618249,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:23.286155 +AWS,us-west-1,m8g.8xlarge,reserved_1y,partial_upfront,1.618249,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:12.179379 +AWS,us-west-1,m8g.8xlarge,reserved_3y,all_upfront,0.809116,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:53.316729 +AWS,us-west-1,m8g.8xlarge,reserved_3y,no_upfront,0.809116,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:23.774828 +AWS,us-west-1,m8g.8xlarge,reserved_3y,partial_upfront,0.809116,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:24.903187 +AWS,us-west-1,m8g.8xlarge,spot,NA,0.589194,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395157 +AWS,us-west-1,m8g.large,on_demand,NA,0.10472,USD,AWS Pricing API,2025-11-30T08:55:02.877133 +AWS,us-west-1,m8g.large,reserved_1y,all_upfront,0.064498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:33.783771 +AWS,us-west-1,m8g.large,reserved_1y,no_upfront,0.064498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:12.351440 +AWS,us-west-1,m8g.large,reserved_1y,partial_upfront,0.064498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:00.917275 +AWS,us-west-1,m8g.large,reserved_3y,all_upfront,0.021499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:41.563296 +AWS,us-west-1,m8g.large,reserved_3y,no_upfront,0.021499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:13.247207 +AWS,us-west-1,m8g.large,reserved_3y,partial_upfront,0.021499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:13.282799 +AWS,us-west-1,m8g.large,spot,NA,0.040946,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396129 +AWS,us-west-1,m8g.medium,on_demand,NA,0.05236,USD,AWS Pricing API,2025-11-30T08:55:04.763163 +AWS,us-west-1,m8g.medium,reserved_1y,all_upfront,0.044155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:35.674574 +AWS,us-west-1,m8g.medium,reserved_1y,no_upfront,0.044155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:14.269356 +AWS,us-west-1,m8g.medium,reserved_1y,partial_upfront,0.044155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:02.819001 +AWS,us-west-1,m8g.medium,reserved_3y,all_upfront,0.022085,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:43.422722 +AWS,us-west-1,m8g.medium,reserved_3y,no_upfront,0.022085,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:15.156913 +AWS,us-west-1,m8g.medium,reserved_3y,partial_upfront,0.022085,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:15.167826 +AWS,us-west-1,m8g.medium,spot,NA,0.013441,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396160 +AWS,us-west-1,m8g.xlarge,on_demand,NA,0.20944,USD,AWS Pricing API,2025-11-30T08:54:23.563018 +AWS,us-west-1,m8g.xlarge,reserved_1y,all_upfront,0.151783,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:54.456865 +AWS,us-west-1,m8g.xlarge,reserved_1y,no_upfront,0.151783,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:32.637743 +AWS,us-west-1,m8g.xlarge,reserved_1y,partial_upfront,0.151783,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:21.420022 +AWS,us-west-1,m8g.xlarge,reserved_3y,all_upfront,0.101174,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:02.443305 +AWS,us-west-1,m8g.xlarge,reserved_3y,no_upfront,0.101174,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:33.150662 +AWS,us-west-1,m8g.xlarge,reserved_3y,partial_upfront,0.101174,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:34.011522 +AWS,us-west-1,m8g.xlarge,spot,NA,0.088466,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395322 +AWS,us-west-1,p5.48xlarge,on_demand,NA,68.8,USD,AWS Pricing API,2025-11-30T08:54:48.920619 +AWS,us-west-1,p5.48xlarge,reserved_1y,all_upfront,50.52672,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:19.834187 +AWS,us-west-1,p5.48xlarge,reserved_1y,no_upfront,50.52672,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:58.227912 +AWS,us-west-1,p5.48xlarge,reserved_1y,partial_upfront,50.52672,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:46.905709 +AWS,us-west-1,p5.48xlarge,reserved_3y,all_upfront,50.52672,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:27.640625 +AWS,us-west-1,p5.48xlarge,reserved_3y,no_upfront,50.52672,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:59.001486 +AWS,us-west-1,p5.48xlarge,reserved_3y,partial_upfront,50.52672,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:59.359177 +AWS,us-west-1,p5.48xlarge,spot,NA,19.253119,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395888 +AWS,us-west-1,r4.16xlarge,on_demand,NA,4.7424,USD,AWS Pricing API,2025-11-30T08:54:51.576512 +AWS,us-west-1,r4.16xlarge,reserved_1y,all_upfront,6.383333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:22.524086 +AWS,us-west-1,r4.16xlarge,reserved_1y,no_upfront,6.383333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:00.932805 +AWS,us-west-1,r4.16xlarge,reserved_1y,partial_upfront,6.383333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:49.569863 +AWS,us-west-1,r4.16xlarge,reserved_3y,all_upfront,2.127778,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:30.458200 +AWS,us-west-1,r4.16xlarge,reserved_3y,no_upfront,2.127778,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:01.737656 +AWS,us-west-1,r4.16xlarge,reserved_3y,partial_upfront,2.127778,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:02.040044 +AWS,us-west-1,r4.16xlarge,spot,NA,1.378,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395939 +AWS,us-west-1,r5.12xlarge,on_demand,NA,3.36,USD,AWS Pricing API,2025-11-30T08:53:52.973407 +AWS,us-west-1,r5.12xlarge,reserved_1y,all_upfront,1.975685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:24.022851 +AWS,us-west-1,r5.12xlarge,reserved_1y,no_upfront,1.975685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:01.850030 +AWS,us-west-1,r5.12xlarge,reserved_1y,partial_upfront,1.975685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:50.911260 +AWS,us-west-1,r5.12xlarge,reserved_3y,all_upfront,0.658562,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:32.251455 +AWS,us-west-1,r5.12xlarge,reserved_3y,no_upfront,0.658562,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:02.277535 +AWS,us-west-1,r5.12xlarge,reserved_3y,partial_upfront,0.658562,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:03.870133 +AWS,us-west-1,r5.12xlarge,spot,NA,0.709523,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394771 +AWS,us-west-1,r5.16xlarge,on_demand,NA,4.48,USD,AWS Pricing API,2025-11-30T08:54:26.010718 +AWS,us-west-1,r5.16xlarge,reserved_1y,all_upfront,2.634247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:56.889219 +AWS,us-west-1,r5.16xlarge,reserved_1y,no_upfront,2.634247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:35.092627 +AWS,us-west-1,r5.16xlarge,reserved_1y,partial_upfront,2.634247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:23.959770 +AWS,us-west-1,r5.16xlarge,reserved_3y,all_upfront,0.878082,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:04.893430 +AWS,us-west-1,r5.16xlarge,reserved_3y,no_upfront,0.878082,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:35.648154 +AWS,us-west-1,r5.16xlarge,reserved_3y,partial_upfront,0.878082,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:36.508520 +AWS,us-west-1,r5.16xlarge,spot,NA,0.977883,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395413 +AWS,us-west-1,r5.24xlarge,on_demand,NA,6.72,USD,AWS Pricing API,2025-11-30T08:54:08.217075 +AWS,us-west-1,r5.24xlarge,reserved_1y,all_upfront,9.54258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:39.319285 +AWS,us-west-1,r5.24xlarge,reserved_1y,no_upfront,9.54258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:17.221406 +AWS,us-west-1,r5.24xlarge,reserved_1y,partial_upfront,9.54258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:06.252281 +AWS,us-west-1,r5.24xlarge,reserved_3y,all_upfront,3.18086,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:47.413235 +AWS,us-west-1,r5.24xlarge,reserved_3y,no_upfront,3.18086,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:17.758720 +AWS,us-west-1,r5.24xlarge,reserved_3y,partial_upfront,3.18086,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:19.007334 +AWS,us-west-1,r5.24xlarge,spot,NA,1.434154,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395036 +AWS,us-west-1,r5.2xlarge,on_demand,NA,0.56,USD,AWS Pricing API,2025-11-30T12:52:29.059708 +AWS,us-west-1,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.059792 +AWS,us-west-1,r5.2xlarge,reserved_1y_no_upfront,NA,0.406,USD,AWS Pricing API,2025-11-30T12:52:29.059866 +AWS,us-west-1,r5.2xlarge,reserved_1y_partial_upfront,NA,0.193,USD,AWS Pricing API,2025-11-30T12:52:29.059878 +AWS,us-west-1,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.059853 +AWS,us-west-1,r5.2xlarge,reserved_3y_no_upfront,NA,0.242,USD,AWS Pricing API,2025-11-30T12:52:29.059831 +AWS,us-west-1,r5.2xlarge,reserved_3y_partial_upfront,NA,0.135,USD,AWS Pricing API,2025-11-30T12:52:29.059818 +AWS,us-west-1,r5.2xlarge,spot,NA,0.174875,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:31.128031 +AWS,us-west-1,r5.4xlarge,on_demand,NA,1.12,USD,AWS Pricing API,2025-11-30T08:55:00.555994 +AWS,us-west-1,r5.4xlarge,reserved_1y,all_upfront,0.706,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:31.523266 +AWS,us-west-1,r5.4xlarge,reserved_1y,no_upfront,0.706,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:10.039152 +AWS,us-west-1,r5.4xlarge,reserved_1y,partial_upfront,0.706,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:58.621980 +AWS,us-west-1,r5.4xlarge,reserved_3y,all_upfront,0.706,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:39.316009 +AWS,us-west-1,r5.4xlarge,reserved_3y,no_upfront,0.706,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:10.923843 +AWS,us-west-1,r5.4xlarge,reserved_3y,partial_upfront,0.706,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:11.004101 +AWS,us-west-1,r5.4xlarge,spot,NA,0.303469,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396090 +AWS,us-west-1,r5.8xlarge,on_demand,NA,2.24,USD,AWS Pricing API,2025-11-30T08:54:43.620082 +AWS,us-west-1,r5.8xlarge,reserved_1y,all_upfront,1.344032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:14.587497 +AWS,us-west-1,r5.8xlarge,reserved_1y,no_upfront,1.344032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:52.948306 +AWS,us-west-1,r5.8xlarge,reserved_1y,partial_upfront,1.344032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:41.612065 +AWS,us-west-1,r5.8xlarge,reserved_3y,all_upfront,0.896011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:22.384607 +AWS,us-west-1,r5.8xlarge,reserved_3y,no_upfront,0.896011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:53.630831 +AWS,us-west-1,r5.8xlarge,reserved_3y,partial_upfront,0.896011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:54.124709 +AWS,us-west-1,r5.8xlarge,spot,NA,0.474694,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395776 +AWS,us-west-1,r5.large,on_demand,NA,0.14,USD,AWS Pricing API,2025-11-30T08:54:19.840100 +AWS,us-west-1,r5.large,reserved_1y,all_upfront,0.073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:50.801637 +AWS,us-west-1,r5.large,reserved_1y,no_upfront,0.073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:28.915590 +AWS,us-west-1,r5.large,reserved_1y,partial_upfront,0.073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:17.683232 +AWS,us-west-1,r5.large,reserved_3y,all_upfront,0.073,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:58.805348 +AWS,us-west-1,r5.large,reserved_3y,no_upfront,0.073,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:29.368562 +AWS,us-west-1,r5.large,reserved_3y,partial_upfront,0.073,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:30.391920 +AWS,us-west-1,r5.large,spot,NA,0.042204,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395263 +AWS,us-west-1,r5.xlarge,on_demand,NA,0.28,USD,AWS Pricing API,2025-11-30T08:53:57.136406 +AWS,us-west-1,r5.xlarge,reserved_1y,all_upfront,0.203,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:28.225092 +AWS,us-west-1,r5.xlarge,reserved_1y,no_upfront,0.203,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:06.054168 +AWS,us-west-1,r5.xlarge,reserved_1y,partial_upfront,0.203,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:55.090694 +AWS,us-west-1,r5.xlarge,reserved_3y,all_upfront,0.203,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:36.408776 +AWS,us-west-1,r5.xlarge,reserved_3y,no_upfront,0.203,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:06.547764 +AWS,us-west-1,r5.xlarge,reserved_3y,partial_upfront,0.203,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:08.079988 +AWS,us-west-1,r5.xlarge,spot,NA,0.084732,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394828 +AWS,us-west-1,r5a.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:54:51.711221 +AWS,us-west-1,r5a.12xlarge,reserved_1y,all_upfront,2.2,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:22.660554 +AWS,us-west-1,r5a.12xlarge,reserved_1y,no_upfront,2.2,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:01.071382 +AWS,us-west-1,r5a.12xlarge,reserved_1y,partial_upfront,2.2,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:49.703500 +AWS,us-west-1,r5a.12xlarge,reserved_3y,all_upfront,2.2,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:30.588889 +AWS,us-west-1,r5a.12xlarge,reserved_3y,no_upfront,2.2,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:01.879517 +AWS,us-west-1,r5a.12xlarge,reserved_3y,partial_upfront,2.2,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:02.174935 +AWS,us-west-1,r5a.12xlarge,spot,NA,1.476131,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395935 +AWS,us-west-1,r5a.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:54:59.749369 +AWS,us-west-1,r5a.16xlarge,reserved_1y,all_upfront,2.370776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:30.719173 +AWS,us-west-1,r5a.16xlarge,reserved_1y,no_upfront,2.370776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:09.227213 +AWS,us-west-1,r5a.16xlarge,reserved_1y,partial_upfront,2.370776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:57.808780 +AWS,us-west-1,r5a.16xlarge,reserved_3y,all_upfront,0.790259,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:38.517477 +AWS,us-west-1,r5a.16xlarge,reserved_3y,no_upfront,0.790259,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:10.108248 +AWS,us-west-1,r5a.16xlarge,reserved_3y,partial_upfront,0.790259,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:10.202566 +AWS,us-west-1,r5a.16xlarge,spot,NA,1.465479,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396078 +AWS,us-west-1,r5a.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:54:53.745780 +AWS,us-west-1,r5a.24xlarge,reserved_1y,all_upfront,5.866886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:24.678522 +AWS,us-west-1,r5a.24xlarge,reserved_1y,no_upfront,5.866886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:03.118524 +AWS,us-west-1,r5a.24xlarge,reserved_1y,partial_upfront,5.866886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:51.721834 +AWS,us-west-1,r5a.24xlarge,reserved_3y,all_upfront,2.933629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:32.576503 +AWS,us-west-1,r5a.24xlarge,reserved_3y,no_upfront,2.933629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:03.949744 +AWS,us-west-1,r5a.24xlarge,reserved_3y,partial_upfront,2.933629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:04.205241 +AWS,us-west-1,r5a.24xlarge,spot,NA,1.921886,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395955 +AWS,us-west-1,r5a.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T08:55:04.363280 +AWS,us-west-1,r5a.2xlarge,reserved_1y,all_upfront,0.296347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:35.259463 +AWS,us-west-1,r5a.2xlarge,reserved_1y,no_upfront,0.296347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:13.862812 +AWS,us-west-1,r5a.2xlarge,reserved_1y,partial_upfront,0.296347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:02.420162 +AWS,us-west-1,r5a.2xlarge,reserved_3y,all_upfront,0.098782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:43.026832 +AWS,us-west-1,r5a.2xlarge,reserved_3y,no_upfront,0.098782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:14.746521 +AWS,us-west-1,r5a.2xlarge,reserved_3y,partial_upfront,0.098782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:14.759306 +AWS,us-west-1,r5a.2xlarge,spot,NA,0.215705,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396152 +AWS,us-west-1,r5a.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:54:44.581201 +AWS,us-west-1,r5a.4xlarge,reserved_1y,all_upfront,0.604397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:15.529013 +AWS,us-west-1,r5a.4xlarge,reserved_1y,no_upfront,0.604397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:53.898124 +AWS,us-west-1,r5a.4xlarge,reserved_1y,partial_upfront,0.604397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:42.560527 +AWS,us-west-1,r5a.4xlarge,reserved_3y,all_upfront,0.402799,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:23.329283 +AWS,us-west-1,r5a.4xlarge,reserved_3y,no_upfront,0.402799,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:54.605351 +AWS,us-west-1,r5a.4xlarge,reserved_3y,partial_upfront,0.402799,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:55.072506 +AWS,us-west-1,r5a.4xlarge,spot,NA,0.392544,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395803 +AWS,us-west-1,r5a.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:54:27.105986 +AWS,us-west-1,r5a.8xlarge,reserved_1y,all_upfront,1.612589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:57.960238 +AWS,us-west-1,r5a.8xlarge,reserved_1y,no_upfront,1.612589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:36.205508 +AWS,us-west-1,r5a.8xlarge,reserved_1y,partial_upfront,1.612589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:25.037657 +AWS,us-west-1,r5a.8xlarge,reserved_3y,all_upfront,0.806196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:05.974868 +AWS,us-west-1,r5a.8xlarge,reserved_3y,no_upfront,0.806196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:36.751973 +AWS,us-west-1,r5a.8xlarge,reserved_3y,partial_upfront,0.806196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:37.583743 +AWS,us-west-1,r5a.8xlarge,spot,NA,0.922394,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395436 +AWS,us-west-1,r5a.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:54:33.542042 +AWS,us-west-1,r5a.large,reserved_1y,all_upfront,0.079,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:04.444489 +AWS,us-west-1,r5a.large,reserved_1y,no_upfront,0.079,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:42.723171 +AWS,us-west-1,r5a.large,reserved_1y,partial_upfront,0.079,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:31.529278 +AWS,us-west-1,r5a.large,reserved_3y,all_upfront,0.079,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:12.358664 +AWS,us-west-1,r5a.large,reserved_3y,no_upfront,0.079,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:43.365509 +AWS,us-west-1,r5a.large,reserved_3y,partial_upfront,0.079,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:44.031187 +AWS,us-west-1,r5a.large,spot,NA,0.046633,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395545 +AWS,us-west-1,r5a.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T08:54:44.036304 +AWS,us-west-1,r5a.xlarge,reserved_1y,all_upfront,0.201256,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:14.994964 +AWS,us-west-1,r5a.xlarge,reserved_1y,no_upfront,0.201256,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:53.357042 +AWS,us-west-1,r5a.xlarge,reserved_1y,partial_upfront,0.201256,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:42.013322 +AWS,us-west-1,r5a.xlarge,reserved_3y,all_upfront,0.100419,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:22.783731 +AWS,us-west-1,r5a.xlarge,reserved_3y,no_upfront,0.100419,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:54.045314 +AWS,us-west-1,r5a.xlarge,reserved_3y,partial_upfront,0.100419,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:54.525700 +AWS,us-west-1,r5a.xlarge,spot,NA,0.098734,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395780 +AWS,us-west-1,r5d.12xlarge,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:54:57.231457 +AWS,us-west-1,r5d.12xlarge,reserved_1y,all_upfront,2.721616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:28.173018 +AWS,us-west-1,r5d.12xlarge,reserved_1y,no_upfront,2.721616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:06.660247 +AWS,us-west-1,r5d.12xlarge,reserved_1y,partial_upfront,2.721616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:55.205418 +AWS,us-west-1,r5d.12xlarge,reserved_3y,all_upfront,1.814539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:36.015401 +AWS,us-west-1,r5d.12xlarge,reserved_3y,no_upfront,1.814539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:07.515556 +AWS,us-west-1,r5d.12xlarge,reserved_3y,partial_upfront,1.814539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:07.681753 +AWS,us-west-1,r5d.12xlarge,spot,NA,0.944944,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396044 +AWS,us-west-1,r5d.16xlarge,on_demand,NA,5.184,USD,AWS Pricing API,2025-11-30T08:54:22.154768 +AWS,us-west-1,r5d.16xlarge,reserved_1y,all_upfront,3.266,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:53.103887 +AWS,us-west-1,r5d.16xlarge,reserved_1y,no_upfront,3.266,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:31.279935 +AWS,us-west-1,r5d.16xlarge,reserved_1y,partial_upfront,3.266,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:20.059753 +AWS,us-west-1,r5d.16xlarge,reserved_3y,all_upfront,3.266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:01.097334 +AWS,us-west-1,r5d.16xlarge,reserved_3y,no_upfront,3.266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:31.696801 +AWS,us-west-1,r5d.16xlarge,reserved_3y,partial_upfront,3.266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:32.677813 +AWS,us-west-1,r5d.16xlarge,spot,NA,1.375534,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395303 +AWS,us-west-1,r5d.24xlarge,on_demand,NA,7.776,USD,AWS Pricing API,2025-11-30T08:54:51.848502 +AWS,us-west-1,r5d.24xlarge,reserved_1y,all_upfront,5.333676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:22.793544 +AWS,us-west-1,r5d.24xlarge,reserved_1y,no_upfront,5.333676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:01.210459 +AWS,us-west-1,r5d.24xlarge,reserved_1y,partial_upfront,5.333676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:49.837705 +AWS,us-west-1,r5d.24xlarge,reserved_3y,all_upfront,1.777892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:30.729130 +AWS,us-west-1,r5d.24xlarge,reserved_3y,no_upfront,1.777892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:02.017868 +AWS,us-west-1,r5d.24xlarge,reserved_3y,partial_upfront,1.777892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:02.308448 +AWS,us-west-1,r5d.24xlarge,spot,NA,1.75294,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395943 +AWS,us-west-1,r5d.2xlarge,on_demand,NA,0.648,USD,AWS Pricing API,2025-11-30T08:54:50.515302 +AWS,us-west-1,r5d.2xlarge,reserved_1y,all_upfront,0.453826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:21.458003 +AWS,us-west-1,r5d.2xlarge,reserved_1y,no_upfront,0.453826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:59.850883 +AWS,us-west-1,r5d.2xlarge,reserved_1y,partial_upfront,0.453826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:48.507964 +AWS,us-west-1,r5d.2xlarge,reserved_3y,all_upfront,0.302609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:29.232839 +AWS,us-west-1,r5d.2xlarge,reserved_3y,no_upfront,0.302609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:00.645782 +AWS,us-west-1,r5d.2xlarge,reserved_3y,partial_upfront,0.302609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:00.969749 +AWS,us-west-1,r5d.2xlarge,spot,NA,0.283028,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395899 +AWS,us-west-1,r5d.4xlarge,on_demand,NA,1.296,USD,AWS Pricing API,2025-11-30T08:54:21.609237 +AWS,us-west-1,r5d.4xlarge,reserved_1y,all_upfront,0.777813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:52.574501 +AWS,us-west-1,r5d.4xlarge,reserved_1y,no_upfront,0.777813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:30.732695 +AWS,us-west-1,r5d.4xlarge,reserved_1y,partial_upfront,0.777813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:19.523818 +AWS,us-west-1,r5d.4xlarge,reserved_3y,all_upfront,0.518604,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:00.562347 +AWS,us-west-1,r5d.4xlarge,reserved_3y,no_upfront,0.518604,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:31.152291 +AWS,us-west-1,r5d.4xlarge,reserved_3y,partial_upfront,0.518604,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:32.132421 +AWS,us-west-1,r5d.4xlarge,spot,NA,0.657898,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395291 +AWS,us-west-1,r5d.8xlarge,on_demand,NA,2.592,USD,AWS Pricing API,2025-11-30T08:54:21.196596 +AWS,us-west-1,r5d.8xlarge,reserved_1y,all_upfront,2.507822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:52.162168 +AWS,us-west-1,r5d.8xlarge,reserved_1y,no_upfront,2.507822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:30.325837 +AWS,us-west-1,r5d.8xlarge,reserved_1y,partial_upfront,2.507822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:19.119326 +AWS,us-west-1,r5d.8xlarge,reserved_3y,all_upfront,1.253941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:00.159302 +AWS,us-west-1,r5d.8xlarge,reserved_3y,no_upfront,1.253941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:30.740700 +AWS,us-west-1,r5d.8xlarge,reserved_3y,partial_upfront,1.253941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:31.729051 +AWS,us-west-1,r5d.8xlarge,spot,NA,1.016609,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395279 +AWS,us-west-1,r5d.large,on_demand,NA,0.162,USD,AWS Pricing API,2025-11-30T08:54:45.788316 +AWS,us-west-1,r5d.large,reserved_1y,all_upfront,0.095205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:16.737744 +AWS,us-west-1,r5d.large,reserved_1y,no_upfront,0.095205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:55.117894 +AWS,us-west-1,r5d.large,reserved_1y,partial_upfront,0.095205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:43.769572 +AWS,us-west-1,r5d.large,reserved_3y,all_upfront,0.031735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:24.539168 +AWS,us-west-1,r5d.large,reserved_3y,no_upfront,0.031735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:55.835591 +AWS,us-west-1,r5d.large,reserved_3y,partial_upfront,0.031735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:56.270587 +AWS,us-west-1,r5d.large,spot,NA,0.051226,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395838 +AWS,us-west-1,r5d.xlarge,on_demand,NA,0.324,USD,AWS Pricing API,2025-11-30T08:54:03.429863 +AWS,us-west-1,r5d.xlarge,reserved_1y,all_upfront,0.313046,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:34.603343 +AWS,us-west-1,r5d.xlarge,reserved_1y,no_upfront,0.313046,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:12.459202 +AWS,us-west-1,r5d.xlarge,reserved_1y,partial_upfront,0.313046,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:01.402979 +AWS,us-west-1,r5d.xlarge,reserved_3y,all_upfront,0.156349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:42.699338 +AWS,us-west-1,r5d.xlarge,reserved_3y,no_upfront,0.156349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:12.957844 +AWS,us-west-1,r5d.xlarge,reserved_3y,partial_upfront,0.156349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:14.334616 +AWS,us-west-1,r5d.xlarge,spot,NA,0.152886,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394939 +AWS,us-west-1,r5n.12xlarge,on_demand,NA,4.056,USD,AWS Pricing API,2025-11-30T08:54:41.467838 +AWS,us-west-1,r5n.12xlarge,reserved_1y,all_upfront,2.388927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:12.420862 +AWS,us-west-1,r5n.12xlarge,reserved_1y,no_upfront,2.388927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:50.770781 +AWS,us-west-1,r5n.12xlarge,reserved_1y,partial_upfront,2.388927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:39.473257 +AWS,us-west-1,r5n.12xlarge,reserved_3y,all_upfront,0.796309,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:20.248802 +AWS,us-west-1,r5n.12xlarge,reserved_3y,no_upfront,0.796309,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:51.437126 +AWS,us-west-1,r5n.12xlarge,reserved_3y,partial_upfront,0.796309,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:51.934876 +AWS,us-west-1,r5n.12xlarge,spot,NA,1.920033,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395695 +AWS,us-west-1,r5n.16xlarge,on_demand,NA,5.408,USD,AWS Pricing API,2025-11-30T08:54:56.565906 +AWS,us-west-1,r5n.16xlarge,reserved_1y,all_upfront,3.982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:27.509728 +AWS,us-west-1,r5n.16xlarge,reserved_1y,no_upfront,3.982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:05.986361 +AWS,us-west-1,r5n.16xlarge,reserved_1y,partial_upfront,3.982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:54.531097 +AWS,us-west-1,r5n.16xlarge,reserved_3y,all_upfront,3.982,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:35.362918 +AWS,us-west-1,r5n.16xlarge,reserved_3y,no_upfront,3.982,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:06.834371 +AWS,us-west-1,r5n.16xlarge,reserved_3y,partial_upfront,3.982,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:07.019669 +AWS,us-west-1,r5n.16xlarge,spot,NA,1.953426,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396036 +AWS,us-west-1,r5n.24xlarge,on_demand,NA,8.112,USD,AWS Pricing API,2025-11-30T08:54:18.496669 +AWS,us-west-1,r5n.24xlarge,reserved_1y,all_upfront,5.973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:49.462151 +AWS,us-west-1,r5n.24xlarge,reserved_1y,no_upfront,5.973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:27.562017 +AWS,us-west-1,r5n.24xlarge,reserved_1y,partial_upfront,5.973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:16.345658 +AWS,us-west-1,r5n.24xlarge,reserved_3y,all_upfront,5.973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:57.460596 +AWS,us-west-1,r5n.24xlarge,reserved_3y,no_upfront,5.973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:28.011019 +AWS,us-west-1,r5n.24xlarge,reserved_3y,partial_upfront,5.973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:29.027714 +AWS,us-west-1,r5n.24xlarge,spot,NA,2.358673,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395238 +AWS,us-west-1,r5n.2xlarge,on_demand,NA,0.676,USD,AWS Pricing API,2025-11-30T08:53:59.267991 +AWS,us-west-1,r5n.2xlarge,reserved_1y,all_upfront,0.398174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:30.426924 +AWS,us-west-1,r5n.2xlarge,reserved_1y,no_upfront,0.398174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:08.227032 +AWS,us-west-1,r5n.2xlarge,reserved_1y,partial_upfront,0.398174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:57.231513 +AWS,us-west-1,r5n.2xlarge,reserved_3y,all_upfront,0.132725,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:38.533446 +AWS,us-west-1,r5n.2xlarge,reserved_3y,no_upfront,0.132725,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:08.733879 +AWS,us-west-1,r5n.2xlarge,reserved_3y,partial_upfront,0.132725,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:10.208320 +AWS,us-west-1,r5n.2xlarge,spot,NA,0.264492,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394848 +AWS,us-west-1,r5n.4xlarge,on_demand,NA,1.352,USD,AWS Pricing API,2025-11-30T08:54:55.104884 +AWS,us-west-1,r5n.4xlarge,reserved_1y,all_upfront,0.812279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:26.033980 +AWS,us-west-1,r5n.4xlarge,reserved_1y,no_upfront,0.812279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:04.481669 +AWS,us-west-1,r5n.4xlarge,reserved_1y,partial_upfront,0.812279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:53.062538 +AWS,us-west-1,r5n.4xlarge,reserved_3y,all_upfront,0.541426,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:33.921802 +AWS,us-west-1,r5n.4xlarge,reserved_3y,no_upfront,0.541426,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:05.329372 +AWS,us-west-1,r5n.4xlarge,reserved_3y,partial_upfront,0.541426,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:05.539883 +AWS,us-west-1,r5n.4xlarge,spot,NA,0.555572,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396013 +AWS,us-west-1,r5n.8xlarge,on_demand,NA,2.704,USD,AWS Pricing API,2025-11-30T08:54:41.325225 +AWS,us-west-1,r5n.8xlarge,reserved_1y,all_upfront,2.047959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:12.286843 +AWS,us-west-1,r5n.8xlarge,reserved_1y,no_upfront,2.047959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:50.634947 +AWS,us-west-1,r5n.8xlarge,reserved_1y,partial_upfront,2.047959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:39.331079 +AWS,us-west-1,r5n.8xlarge,reserved_3y,all_upfront,1.023986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:20.113421 +AWS,us-west-1,r5n.8xlarge,reserved_3y,no_upfront,1.023986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:51.299410 +AWS,us-west-1,r5n.8xlarge,reserved_3y,partial_upfront,1.023986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:51.801862 +AWS,us-west-1,r5n.8xlarge,spot,NA,1.526684,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395710 +AWS,us-west-1,r5n.large,on_demand,NA,0.169,USD,AWS Pricing API,2025-11-30T08:55:02.330429 +AWS,us-west-1,r5n.large,reserved_1y,all_upfront,0.101799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:33.250764 +AWS,us-west-1,r5n.large,reserved_1y,no_upfront,0.101799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:11.804478 +AWS,us-west-1,r5n.large,reserved_1y,partial_upfront,0.101799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:00.363757 +AWS,us-west-1,r5n.large,reserved_3y,all_upfront,0.067933,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:41.036302 +AWS,us-west-1,r5n.large,reserved_3y,no_upfront,0.067933,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:12.700130 +AWS,us-west-1,r5n.large,reserved_3y,partial_upfront,0.067933,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:12.746959 +AWS,us-west-1,r5n.large,spot,NA,0.045529,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396121 +AWS,us-west-1,r5n.metal,on_demand,NA,8.112,USD,AWS Pricing API,2025-11-30T08:54:42.279775 +AWS,us-west-1,r5n.metal,reserved_1y,all_upfront,6.143991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:13.224833 +AWS,us-west-1,r5n.metal,reserved_1y,no_upfront,6.143991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:51.584383 +AWS,us-west-1,r5n.metal,reserved_1y,partial_upfront,6.143991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:40.275278 +AWS,us-west-1,r5n.metal,reserved_3y,all_upfront,3.071997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:21.051000 +AWS,us-west-1,r5n.metal,reserved_3y,no_upfront,3.071997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:52.266533 +AWS,us-west-1,r5n.metal,reserved_3y,partial_upfront,3.071997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:52.741113 +AWS,us-west-1,r5n.metal,spot,NA,1.727679,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395753 +AWS,us-west-1,r5n.xlarge,on_demand,NA,0.338,USD,AWS Pricing API,2025-11-30T08:54:20.504283 +AWS,us-west-1,r5n.xlarge,reserved_1y,all_upfront,0.213,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:51.481435 +AWS,us-west-1,r5n.xlarge,reserved_1y,no_upfront,0.213,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:29.623175 +AWS,us-west-1,r5n.xlarge,reserved_1y,partial_upfront,0.213,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:18.353078 +AWS,us-west-1,r5n.xlarge,reserved_3y,all_upfront,0.213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:59.479447 +AWS,us-west-1,r5n.xlarge,reserved_3y,no_upfront,0.213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:30.043900 +AWS,us-west-1,r5n.xlarge,reserved_3y,partial_upfront,0.213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:31.057096 +AWS,us-west-1,r5n.xlarge,spot,NA,0.144296,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395283 +AWS,us-west-1,r6g.12xlarge,on_demand,NA,2.688,USD,AWS Pricing API,2025-11-30T08:54:13.650585 +AWS,us-west-1,r6g.12xlarge,reserved_1y,all_upfront,1.9412,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:44.766795 +AWS,us-west-1,r6g.12xlarge,reserved_1y,no_upfront,1.9412,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:22.737721 +AWS,us-west-1,r6g.12xlarge,reserved_1y,partial_upfront,1.9412,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:11.634989 +AWS,us-west-1,r6g.12xlarge,reserved_3y,all_upfront,1.9412,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:52.783570 +AWS,us-west-1,r6g.12xlarge,reserved_3y,no_upfront,1.9412,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:23.226341 +AWS,us-west-1,r6g.12xlarge,reserved_3y,partial_upfront,1.9412,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:24.368296 +AWS,us-west-1,r6g.12xlarge,spot,NA,0.631805,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395153 +AWS,us-west-1,r6g.16xlarge,on_demand,NA,3.584,USD,AWS Pricing API,2025-11-30T08:54:10.523462 +AWS,us-west-1,r6g.16xlarge,reserved_1y,all_upfront,5.105137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:41.673105 +AWS,us-west-1,r6g.16xlarge,reserved_1y,no_upfront,5.105137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:19.530161 +AWS,us-west-1,r6g.16xlarge,reserved_1y,partial_upfront,5.105137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:08.538647 +AWS,us-west-1,r6g.16xlarge,reserved_3y,all_upfront,1.701712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:49.696612 +AWS,us-west-1,r6g.16xlarge,reserved_3y,no_upfront,1.701712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:20.099866 +AWS,us-west-1,r6g.16xlarge,reserved_3y,partial_upfront,1.701712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:21.298097 +AWS,us-west-1,r6g.16xlarge,spot,NA,0.902679,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395093 +AWS,us-west-1,r6g.2xlarge,on_demand,NA,0.448,USD,AWS Pricing API,2025-11-30T08:55:03.279816 +AWS,us-west-1,r6g.2xlarge,reserved_1y,all_upfront,0.268761,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:34.189202 +AWS,us-west-1,r6g.2xlarge,reserved_1y,no_upfront,0.268761,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:12.759360 +AWS,us-west-1,r6g.2xlarge,reserved_1y,partial_upfront,0.268761,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:01.320860 +AWS,us-west-1,r6g.2xlarge,reserved_3y,all_upfront,0.179187,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:41.957392 +AWS,us-west-1,r6g.2xlarge,reserved_3y,no_upfront,0.179187,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:13.652817 +AWS,us-west-1,r6g.2xlarge,reserved_3y,partial_upfront,0.179187,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:13.692612 +AWS,us-west-1,r6g.2xlarge,spot,NA,0.11839,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396133 +AWS,us-west-1,r6g.4xlarge,on_demand,NA,0.896,USD,AWS Pricing API,2025-11-30T08:54:00.327047 +AWS,us-west-1,r6g.4xlarge,reserved_1y,all_upfront,0.5645,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:31.500300 +AWS,us-west-1,r6g.4xlarge,reserved_1y,no_upfront,0.5645,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:09.320981 +AWS,us-west-1,r6g.4xlarge,reserved_1y,partial_upfront,0.5645,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:58.293379 +AWS,us-west-1,r6g.4xlarge,reserved_3y,all_upfront,0.5645,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:39.604863 +AWS,us-west-1,r6g.4xlarge,reserved_3y,no_upfront,0.5645,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:09.821870 +AWS,us-west-1,r6g.4xlarge,reserved_3y,partial_upfront,0.5645,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:11.272599 +AWS,us-west-1,r6g.4xlarge,spot,NA,0.283048,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394876 +AWS,us-west-1,r6g.8xlarge,on_demand,NA,1.792,USD,AWS Pricing API,2025-11-30T08:54:39.307102 +AWS,us-west-1,r6g.8xlarge,reserved_1y,all_upfront,1.433628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:10.256954 +AWS,us-west-1,r6g.8xlarge,reserved_1y,no_upfront,1.433628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:48.592357 +AWS,us-west-1,r6g.8xlarge,reserved_1y,partial_upfront,1.433628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:37.311281 +AWS,us-west-1,r6g.8xlarge,reserved_3y,all_upfront,0.716809,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:18.112143 +AWS,us-west-1,r6g.8xlarge,reserved_3y,no_upfront,0.716809,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:49.242323 +AWS,us-west-1,r6g.8xlarge,reserved_3y,partial_upfront,0.716809,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:49.800048 +AWS,us-west-1,r6g.8xlarge,spot,NA,0.410035,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395691 +AWS,us-west-1,r6g.large,on_demand,NA,0.112,USD,AWS Pricing API,2025-11-30T08:54:17.954253 +AWS,us-west-1,r6g.large,reserved_1y,all_upfront,0.065868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:48.924303 +AWS,us-west-1,r6g.large,reserved_1y,no_upfront,0.065868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:26.996015 +AWS,us-west-1,r6g.large,reserved_1y,partial_upfront,0.065868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:15.811199 +AWS,us-west-1,r6g.large,reserved_3y,all_upfront,0.021956,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:56.925107 +AWS,us-west-1,r6g.large,reserved_3y,no_upfront,0.021956,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:27.463902 +AWS,us-west-1,r6g.large,reserved_3y,partial_upfront,0.021956,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:28.495434 +AWS,us-west-1,r6g.large,spot,NA,0.042091,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395230 +AWS,us-west-1,r6g.xlarge,on_demand,NA,0.224,USD,AWS Pricing API,2025-11-30T08:53:53.392097 +AWS,us-west-1,r6g.xlarge,reserved_1y,all_upfront,0.134437,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:24.427921 +AWS,us-west-1,r6g.xlarge,reserved_1y,no_upfront,0.134437,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:02.259287 +AWS,us-west-1,r6g.xlarge,reserved_1y,partial_upfront,0.134437,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:51.314369 +AWS,us-west-1,r6g.xlarge,reserved_3y,all_upfront,0.089612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:32.655191 +AWS,us-west-1,r6g.xlarge,reserved_3y,no_upfront,0.089612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:02.690282 +AWS,us-west-1,r6g.xlarge,reserved_3y,partial_upfront,0.089612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:04.312472 +AWS,us-west-1,r6g.xlarge,spot,NA,0.063464,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394775 +AWS,us-west-1,r6gd.12xlarge,on_demand,NA,3.12,USD,AWS Pricing API,2025-11-30T08:54:49.723476 +AWS,us-west-1,r6gd.12xlarge,reserved_1y,all_upfront,2.2932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:20.654573 +AWS,us-west-1,r6gd.12xlarge,reserved_1y,no_upfront,2.2932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:59.038861 +AWS,us-west-1,r6gd.12xlarge,reserved_1y,partial_upfront,2.2932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:47.704303 +AWS,us-west-1,r6gd.12xlarge,reserved_3y,all_upfront,2.2932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:28.432663 +AWS,us-west-1,r6gd.12xlarge,reserved_3y,no_upfront,2.2932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:59.829550 +AWS,us-west-1,r6gd.12xlarge,reserved_3y,partial_upfront,2.2932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:00.162107 +AWS,us-west-1,r6gd.12xlarge,spot,NA,0.779552,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395884 +AWS,us-west-1,r6gd.16xlarge,on_demand,NA,4.16,USD,AWS Pricing API,2025-11-30T08:54:16.431052 +AWS,us-west-1,r6gd.16xlarge,reserved_1y,all_upfront,2.446119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:47.441751 +AWS,us-west-1,r6gd.16xlarge,reserved_1y,no_upfront,2.446119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:25.463480 +AWS,us-west-1,r6gd.16xlarge,reserved_1y,partial_upfront,2.446119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:14.338573 +AWS,us-west-1,r6gd.16xlarge,reserved_3y,all_upfront,0.815373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:55.463727 +AWS,us-west-1,r6gd.16xlarge,reserved_3y,no_upfront,0.815373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:25.962924 +AWS,us-west-1,r6gd.16xlarge,reserved_3y,partial_upfront,0.815373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:27.031433 +AWS,us-west-1,r6gd.16xlarge,spot,NA,1.362949,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395214 +AWS,us-west-1,r6gd.2xlarge,on_demand,NA,0.52,USD,AWS Pricing API,2025-11-30T08:53:54.853631 +AWS,us-west-1,r6gd.2xlarge,reserved_1y,all_upfront,0.305708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:25.893903 +AWS,us-west-1,r6gd.2xlarge,reserved_1y,no_upfront,0.305708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:03.758553 +AWS,us-west-1,r6gd.2xlarge,reserved_1y,partial_upfront,0.305708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:52.773811 +AWS,us-west-1,r6gd.2xlarge,reserved_3y,all_upfront,0.101903,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:34.138391 +AWS,us-west-1,r6gd.2xlarge,reserved_3y,no_upfront,0.101903,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:04.217892 +AWS,us-west-1,r6gd.2xlarge,reserved_3y,partial_upfront,0.101903,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:05.799615 +AWS,us-west-1,r6gd.2xlarge,spot,NA,0.218411,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394779 +AWS,us-west-1,r6gd.4xlarge,on_demand,NA,1.04,USD,AWS Pricing API,2025-11-30T08:54:01.267526 +AWS,us-west-1,r6gd.4xlarge,reserved_1y,all_upfront,1.007936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:32.436208 +AWS,us-west-1,r6gd.4xlarge,reserved_1y,no_upfront,1.007936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:10.287888 +AWS,us-west-1,r6gd.4xlarge,reserved_1y,partial_upfront,1.007936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:59.229274 +AWS,us-west-1,r6gd.4xlarge,reserved_3y,all_upfront,0.503979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:40.545627 +AWS,us-west-1,r6gd.4xlarge,reserved_3y,no_upfront,0.503979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:10.779651 +AWS,us-west-1,r6gd.4xlarge,reserved_3y,partial_upfront,0.503979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:12.203728 +AWS,us-west-1,r6gd.4xlarge,spot,NA,0.258862,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394919 +AWS,us-west-1,r6gd.8xlarge,on_demand,NA,2.08,USD,AWS Pricing API,2025-11-30T08:53:55.656402 +AWS,us-west-1,r6gd.8xlarge,reserved_1y,all_upfront,1.426826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:26.713288 +AWS,us-west-1,r6gd.8xlarge,reserved_1y,no_upfront,1.426826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:04.567269 +AWS,us-west-1,r6gd.8xlarge,reserved_1y,partial_upfront,1.426826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:53.595403 +AWS,us-west-1,r6gd.8xlarge,reserved_3y,all_upfront,0.475609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:34.936264 +AWS,us-west-1,r6gd.8xlarge,reserved_3y,no_upfront,0.475609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:05.032854 +AWS,us-west-1,r6gd.8xlarge,reserved_3y,partial_upfront,0.475609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:06.592613 +AWS,us-west-1,r6gd.8xlarge,spot,NA,0.491553,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394809 +AWS,us-west-1,r6gd.large,on_demand,NA,0.13,USD,AWS Pricing API,2025-11-30T08:54:31.267884 +AWS,us-west-1,r6gd.large,reserved_1y,all_upfront,0.068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:02.148525 +AWS,us-west-1,r6gd.large,reserved_1y,no_upfront,0.068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:40.414449 +AWS,us-west-1,r6gd.large,reserved_1y,partial_upfront,0.068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:29.256311 +AWS,us-west-1,r6gd.large,reserved_3y,all_upfront,0.068,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:10.099643 +AWS,us-west-1,r6gd.large,reserved_3y,no_upfront,0.068,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:41.041750 +AWS,us-west-1,r6gd.large,reserved_3y,partial_upfront,0.068,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:41.717950 +AWS,us-west-1,r6gd.large,spot,NA,0.040591,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395504 +AWS,us-west-1,r6gd.xlarge,on_demand,NA,0.26,USD,AWS Pricing API,2025-11-30T08:54:15.340146 +AWS,us-west-1,r6gd.xlarge,reserved_1y,all_upfront,0.1638,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:46.369675 +AWS,us-west-1,r6gd.xlarge,reserved_1y,no_upfront,0.1638,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:24.371937 +AWS,us-west-1,r6gd.xlarge,reserved_1y,partial_upfront,0.1638,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:13.262953 +AWS,us-west-1,r6gd.xlarge,reserved_3y,all_upfront,0.1638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:54.388462 +AWS,us-west-1,r6gd.xlarge,reserved_3y,no_upfront,0.1638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:24.864392 +AWS,us-west-1,r6gd.xlarge,reserved_3y,partial_upfront,0.1638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:25.974141 +AWS,us-west-1,r6gd.xlarge,spot,NA,0.100011,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395182 +AWS,us-west-1,r6i.12xlarge,on_demand,NA,3.36,USD,AWS Pricing API,2025-11-30T08:54:55.379422 +AWS,us-west-1,r6i.12xlarge,reserved_1y,all_upfront,2.22264,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:26.305528 +AWS,us-west-1,r6i.12xlarge,reserved_1y,no_upfront,2.22264,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:04.757876 +AWS,us-west-1,r6i.12xlarge,reserved_1y,partial_upfront,2.22264,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:53.329735 +AWS,us-west-1,r6i.12xlarge,reserved_3y,all_upfront,2.22264,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:34.187881 +AWS,us-west-1,r6i.12xlarge,reserved_3y,no_upfront,2.22264,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:05.605092 +AWS,us-west-1,r6i.12xlarge,reserved_3y,partial_upfront,2.22264,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:05.809475 +AWS,us-west-1,r6i.12xlarge,spot,NA,1.020496,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396029 +AWS,us-west-1,r6i.16xlarge,on_demand,NA,4.48,USD,AWS Pricing API,2025-11-30T08:54:03.979950 +AWS,us-west-1,r6i.16xlarge,reserved_1y,all_upfront,2.765982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:35.144433 +AWS,us-west-1,r6i.16xlarge,reserved_1y,no_upfront,2.765982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:13.005417 +AWS,us-west-1,r6i.16xlarge,reserved_1y,partial_upfront,2.765982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:01.987347 +AWS,us-west-1,r6i.16xlarge,reserved_3y,all_upfront,0.921994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:43.248652 +AWS,us-west-1,r6i.16xlarge,reserved_3y,no_upfront,0.921994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:13.509164 +AWS,us-west-1,r6i.16xlarge,reserved_3y,partial_upfront,0.921994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:14.864872 +AWS,us-west-1,r6i.16xlarge,spot,NA,1.25966,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394951 +AWS,us-west-1,r6i.24xlarge,on_demand,NA,6.72,USD,AWS Pricing API,2025-11-30T08:54:10.385259 +AWS,us-west-1,r6i.24xlarge,reserved_1y,all_upfront,5.644762,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:41.539904 +AWS,us-west-1,r6i.24xlarge,reserved_1y,no_upfront,5.644762,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:19.393056 +AWS,us-west-1,r6i.24xlarge,reserved_1y,partial_upfront,5.644762,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:08.405085 +AWS,us-west-1,r6i.24xlarge,reserved_3y,all_upfront,2.822387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:49.560723 +AWS,us-west-1,r6i.24xlarge,reserved_3y,no_upfront,2.822387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:19.965196 +AWS,us-west-1,r6i.24xlarge,reserved_3y,partial_upfront,2.822387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:21.163053 +AWS,us-west-1,r6i.24xlarge,spot,NA,1.681458,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395065 +AWS,us-west-1,r6i.2xlarge,on_demand,NA,0.56,USD,AWS Pricing API,2025-11-30T08:54:58.829223 +AWS,us-west-1,r6i.2xlarge,reserved_1y,all_upfront,0.378653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:29.786286 +AWS,us-west-1,r6i.2xlarge,reserved_1y,no_upfront,0.378653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:08.288007 +AWS,us-west-1,r6i.2xlarge,reserved_1y,partial_upfront,0.378653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:56.828326 +AWS,us-west-1,r6i.2xlarge,reserved_3y,all_upfront,0.126218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:37.607524 +AWS,us-west-1,r6i.2xlarge,reserved_3y,no_upfront,0.126218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:09.164770 +AWS,us-west-1,r6i.2xlarge,reserved_3y,partial_upfront,0.126218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:09.276753 +AWS,us-west-1,r6i.2xlarge,spot,NA,0.198467,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396067 +AWS,us-west-1,r6i.32xlarge,on_demand,NA,8.96,USD,AWS Pricing API,2025-11-30T08:54:04.116775 +AWS,us-west-1,r6i.32xlarge,reserved_1y,all_upfront,7.526349,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:35.278980 +AWS,us-west-1,r6i.32xlarge,reserved_1y,no_upfront,7.526349,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:13.143336 +AWS,us-west-1,r6i.32xlarge,reserved_1y,partial_upfront,7.526349,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:02.147559 +AWS,us-west-1,r6i.32xlarge,reserved_3y,all_upfront,3.763183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:43.381289 +AWS,us-west-1,r6i.32xlarge,reserved_3y,no_upfront,3.763183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:13.645214 +AWS,us-west-1,r6i.32xlarge,reserved_3y,partial_upfront,3.763183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:14.996507 +AWS,us-west-1,r6i.32xlarge,spot,NA,1.923718,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394956 +AWS,us-west-1,r6i.4xlarge,on_demand,NA,1.12,USD,AWS Pricing API,2025-11-30T08:54:25.602121 +AWS,us-west-1,r6i.4xlarge,reserved_1y,all_upfront,0.81144,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:56.486538 +AWS,us-west-1,r6i.4xlarge,reserved_1y,no_upfront,0.81144,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:34.678275 +AWS,us-west-1,r6i.4xlarge,reserved_1y,partial_upfront,0.81144,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:23.465701 +AWS,us-west-1,r6i.4xlarge,reserved_3y,all_upfront,0.81144,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:04.479436 +AWS,us-west-1,r6i.4xlarge,reserved_3y,no_upfront,0.81144,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:35.229492 +AWS,us-west-1,r6i.4xlarge,reserved_3y,partial_upfront,0.81144,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:36.109004 +AWS,us-west-1,r6i.4xlarge,spot,NA,0.354817,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395381 +AWS,us-west-1,r6i.8xlarge,on_demand,NA,2.24,USD,AWS Pricing API,2025-11-30T08:54:29.924602 +AWS,us-west-1,r6i.8xlarge,reserved_1y,all_upfront,1.62288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:00.793808 +AWS,us-west-1,r6i.8xlarge,reserved_1y,no_upfront,1.62288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:39.060469 +AWS,us-west-1,r6i.8xlarge,reserved_1y,partial_upfront,1.62288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:27.927166 +AWS,us-west-1,r6i.8xlarge,reserved_3y,all_upfront,1.62288,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:08.770346 +AWS,us-west-1,r6i.8xlarge,reserved_3y,no_upfront,1.62288,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:39.656412 +AWS,us-west-1,r6i.8xlarge,reserved_3y,partial_upfront,1.62288,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:40.384942 +AWS,us-west-1,r6i.8xlarge,spot,NA,1.154956,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395482 +AWS,us-west-1,r6i.large,on_demand,NA,0.14,USD,AWS Pricing API,2025-11-30T08:54:45.518909 +AWS,us-west-1,r6i.large,reserved_1y,all_upfront,0.198858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:16.471033 +AWS,us-west-1,r6i.large,reserved_1y,no_upfront,0.198858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:54.845765 +AWS,us-west-1,r6i.large,reserved_1y,partial_upfront,0.198858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:43.502933 +AWS,us-west-1,r6i.large,reserved_3y,all_upfront,0.066286,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:24.272153 +AWS,us-west-1,r6i.large,reserved_3y,no_upfront,0.066286,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:55.558626 +AWS,us-west-1,r6i.large,reserved_3y,partial_upfront,0.066286,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:56.004727 +AWS,us-west-1,r6i.large,spot,NA,0.042785,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395811 +AWS,us-west-1,r6i.xlarge,on_demand,NA,0.28,USD,AWS Pricing API,2025-11-30T08:54:07.539358 +AWS,us-west-1,r6i.xlarge,reserved_1y,all_upfront,0.20286,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:38.646338 +AWS,us-west-1,r6i.xlarge,reserved_1y,no_upfront,0.20286,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:16.548972 +AWS,us-west-1,r6i.xlarge,reserved_1y,partial_upfront,0.20286,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:05.569194 +AWS,us-west-1,r6i.xlarge,reserved_3y,all_upfront,0.20286,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:46.747556 +AWS,us-west-1,r6i.xlarge,reserved_3y,no_upfront,0.20286,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:17.073454 +AWS,us-west-1,r6i.xlarge,reserved_3y,partial_upfront,0.20286,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:18.339395 +AWS,us-west-1,r6i.xlarge,spot,NA,0.092185,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395020 +AWS,us-west-1,r7g.12xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T08:54:23.985190 +AWS,us-west-1,r7g.12xlarge,reserved_1y,all_upfront,2.0692,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:54.860742 +AWS,us-west-1,r7g.12xlarge,reserved_1y,no_upfront,2.0692,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:33.043737 +AWS,us-west-1,r7g.12xlarge,reserved_1y,partial_upfront,2.0692,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:21.826911 +AWS,us-west-1,r7g.12xlarge,reserved_3y,all_upfront,2.0692,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:02.846661 +AWS,us-west-1,r7g.12xlarge,reserved_3y,no_upfront,2.0692,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:33.563150 +AWS,us-west-1,r7g.12xlarge,reserved_3y,partial_upfront,2.0692,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:34.417908 +AWS,us-west-1,r7g.12xlarge,spot,NA,0.791342,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395338 +AWS,us-west-1,r7g.16xlarge,on_demand,NA,3.808,USD,AWS Pricing API,2025-11-30T08:54:09.021608 +AWS,us-west-1,r7g.16xlarge,reserved_1y,all_upfront,2.575,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:40.119057 +AWS,us-west-1,r7g.16xlarge,reserved_1y,no_upfront,2.575,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:18.031504 +AWS,us-west-1,r7g.16xlarge,reserved_1y,partial_upfront,2.575,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:07.049737 +AWS,us-west-1,r7g.16xlarge,reserved_3y,all_upfront,0.858333,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:48.209135 +AWS,us-west-1,r7g.16xlarge,reserved_3y,no_upfront,0.858333,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:18.594304 +AWS,us-west-1,r7g.16xlarge,reserved_3y,partial_upfront,0.858333,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:19.808471 +AWS,us-west-1,r7g.16xlarge,spot,NA,0.978688,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395048 +AWS,us-west-1,r7g.2xlarge,on_demand,NA,0.476,USD,AWS Pricing API,2025-11-30T08:54:17.277051 +AWS,us-west-1,r7g.2xlarge,reserved_1y,all_upfront,0.328469,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:48.253608 +AWS,us-west-1,r7g.2xlarge,reserved_1y,no_upfront,0.328469,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:26.308048 +AWS,us-west-1,r7g.2xlarge,reserved_1y,partial_upfront,0.328469,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:15.142876 +AWS,us-west-1,r7g.2xlarge,reserved_3y,all_upfront,0.218956,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:56.259363 +AWS,us-west-1,r7g.2xlarge,reserved_3y,no_upfront,0.218956,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:26.783038 +AWS,us-west-1,r7g.2xlarge,reserved_3y,partial_upfront,0.218956,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:27.829456 +AWS,us-west-1,r7g.2xlarge,spot,NA,0.133347,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395210 +AWS,us-west-1,r7g.4xlarge,on_demand,NA,0.952,USD,AWS Pricing API,2025-11-30T08:54:07.680189 +AWS,us-west-1,r7g.4xlarge,reserved_1y,all_upfront,0.587785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:38.780986 +AWS,us-west-1,r7g.4xlarge,reserved_1y,no_upfront,0.587785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:16.685249 +AWS,us-west-1,r7g.4xlarge,reserved_1y,partial_upfront,0.587785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:05.702794 +AWS,us-west-1,r7g.4xlarge,reserved_3y,all_upfront,0.195928,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:46.881282 +AWS,us-west-1,r7g.4xlarge,reserved_3y,no_upfront,0.195928,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:17.209385 +AWS,us-west-1,r7g.4xlarge,reserved_3y,partial_upfront,0.195928,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:18.472562 +AWS,us-west-1,r7g.4xlarge,spot,NA,0.256305,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395008 +AWS,us-west-1,r7g.8xlarge,on_demand,NA,1.904,USD,AWS Pricing API,2025-11-30T08:54:39.706115 +AWS,us-west-1,r7g.8xlarge,reserved_1y,all_upfront,1.199572,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:10.664685 +AWS,us-west-1,r7g.8xlarge,reserved_1y,no_upfront,1.199572,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:48.999694 +AWS,us-west-1,r7g.8xlarge,reserved_1y,partial_upfront,1.199572,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:37.712982 +AWS,us-west-1,r7g.8xlarge,reserved_3y,all_upfront,0.799724,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:18.511963 +AWS,us-west-1,r7g.8xlarge,reserved_3y,no_upfront,0.799724,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:49.654653 +AWS,us-west-1,r7g.8xlarge,reserved_3y,partial_upfront,0.799724,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:50.199129 +AWS,us-west-1,r7g.8xlarge,spot,NA,0.461554,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395668 +AWS,us-west-1,r7g.large,on_demand,NA,0.119,USD,AWS Pricing API,2025-11-30T08:54:34.221438 +AWS,us-west-1,r7g.large,reserved_1y,all_upfront,0.0862,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:05.129199 +AWS,us-west-1,r7g.large,reserved_1y,no_upfront,0.0862,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:43.428853 +AWS,us-west-1,r7g.large,reserved_1y,partial_upfront,0.0862,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:32.223121 +AWS,us-west-1,r7g.large,reserved_3y,all_upfront,0.0862,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:13.029232 +AWS,us-west-1,r7g.large,reserved_3y,no_upfront,0.0862,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:44.053624 +AWS,us-west-1,r7g.large,reserved_3y,partial_upfront,0.0862,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:44.705527 +AWS,us-west-1,r7g.large,spot,NA,0.045241,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395549 +AWS,us-west-1,r7g.xlarge,on_demand,NA,0.238,USD,AWS Pricing API,2025-11-30T08:54:36.623731 +AWS,us-west-1,r7g.xlarge,reserved_1y,all_upfront,0.146918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:07.561915 +AWS,us-west-1,r7g.xlarge,reserved_1y,no_upfront,0.146918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:45.865774 +AWS,us-west-1,r7g.xlarge,reserved_1y,partial_upfront,0.146918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:34.624182 +AWS,us-west-1,r7g.xlarge,reserved_3y,all_upfront,0.048973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:15.437536 +AWS,us-west-1,r7g.xlarge,reserved_3y,no_upfront,0.048973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:46.500895 +AWS,us-west-1,r7g.xlarge,reserved_3y,partial_upfront,0.048973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:47.117136 +AWS,us-west-1,r7g.xlarge,spot,NA,0.068627,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395633 +AWS,us-west-1,r7gd.12xlarge,on_demand,NA,3.6742,USD,AWS Pricing API,2025-11-30T08:54:58.167732 +AWS,us-west-1,r7gd.12xlarge,reserved_1y,all_upfront,2.520205,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:29.115382 +AWS,us-west-1,r7gd.12xlarge,reserved_1y,no_upfront,2.520205,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:07.608316 +AWS,us-west-1,r7gd.12xlarge,reserved_1y,partial_upfront,2.520205,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:56.143662 +AWS,us-west-1,r7gd.12xlarge,reserved_3y,all_upfront,0.840068,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:36.946106 +AWS,us-west-1,r7gd.12xlarge,reserved_3y,no_upfront,0.840068,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:08.482459 +AWS,us-west-1,r7gd.12xlarge,reserved_3y,partial_upfront,0.840068,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:08.608612 +AWS,us-west-1,r7gd.12xlarge,spot,NA,0.847459,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396055 +AWS,us-west-1,r7gd.16xlarge,on_demand,NA,4.8989,USD,AWS Pricing API,2025-11-30T08:54:53.610290 +AWS,us-west-1,r7gd.16xlarge,reserved_1y,all_upfront,2.5595,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:24.537368 +AWS,us-west-1,r7gd.16xlarge,reserved_1y,no_upfront,2.5595,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:02.975979 +AWS,us-west-1,r7gd.16xlarge,reserved_1y,partial_upfront,2.5595,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:51.588937 +AWS,us-west-1,r7gd.16xlarge,reserved_3y,all_upfront,2.5595,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:32.443938 +AWS,us-west-1,r7gd.16xlarge,reserved_3y,no_upfront,2.5595,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:03.810412 +AWS,us-west-1,r7gd.16xlarge,reserved_3y,partial_upfront,2.5595,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:04.067351 +AWS,us-west-1,r7gd.16xlarge,spot,NA,1.5746,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395973 +AWS,us-west-1,r7gd.2xlarge,on_demand,NA,0.6124,USD,AWS Pricing API,2025-11-30T08:54:22.841063 +AWS,us-west-1,r7gd.2xlarge,reserved_1y,all_upfront,0.690753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:53.781541 +AWS,us-west-1,r7gd.2xlarge,reserved_1y,no_upfront,0.690753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:31.963912 +AWS,us-west-1,r7gd.2xlarge,reserved_1y,partial_upfront,0.690753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:20.741478 +AWS,us-west-1,r7gd.2xlarge,reserved_3y,all_upfront,0.230251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:01.777216 +AWS,us-west-1,r7gd.2xlarge,reserved_3y,no_upfront,0.230251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:32.472204 +AWS,us-west-1,r7gd.2xlarge,reserved_3y,partial_upfront,0.230251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:33.349023 +AWS,us-west-1,r7gd.2xlarge,spot,NA,0.218679,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395326 +AWS,us-west-1,r7gd.4xlarge,on_demand,NA,1.2247,USD,AWS Pricing API,2025-11-30T08:54:43.086289 +AWS,us-west-1,r7gd.4xlarge,reserved_1y,all_upfront,0.9001,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:14.041420 +AWS,us-west-1,r7gd.4xlarge,reserved_1y,no_upfront,0.9001,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:52.401241 +AWS,us-west-1,r7gd.4xlarge,reserved_1y,partial_upfront,0.9001,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:41.074082 +AWS,us-west-1,r7gd.4xlarge,reserved_3y,all_upfront,0.9001,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:21.852899 +AWS,us-west-1,r7gd.4xlarge,reserved_3y,no_upfront,0.9001,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:53.084805 +AWS,us-west-1,r7gd.4xlarge,reserved_3y,partial_upfront,0.9001,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:53.590333 +AWS,us-west-1,r7gd.4xlarge,spot,NA,0.313579,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395792 +AWS,us-west-1,r7gd.8xlarge,on_demand,NA,2.4494,USD,AWS Pricing API,2025-11-30T08:54:37.159028 +AWS,us-west-1,r7gd.8xlarge,reserved_1y,all_upfront,3.48379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:08.109483 +AWS,us-west-1,r7gd.8xlarge,reserved_1y,no_upfront,3.48379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:46.401425 +AWS,us-west-1,r7gd.8xlarge,reserved_1y,partial_upfront,3.48379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:35.159032 +AWS,us-west-1,r7gd.8xlarge,reserved_3y,all_upfront,1.161263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:15.968897 +AWS,us-west-1,r7gd.8xlarge,reserved_3y,no_upfront,1.161263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:47.043651 +AWS,us-west-1,r7gd.8xlarge,reserved_3y,partial_upfront,1.161263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:47.646263 +AWS,us-west-1,r7gd.8xlarge,spot,NA,0.668594,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395629 +AWS,us-west-1,r7gd.large,on_demand,NA,0.1531,USD,AWS Pricing API,2025-11-30T08:54:01.406214 +AWS,us-west-1,r7gd.large,reserved_1y,all_upfront,0.107139,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:32.568209 +AWS,us-west-1,r7gd.large,reserved_1y,no_upfront,0.107139,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:10.425751 +AWS,us-west-1,r7gd.large,reserved_1y,partial_upfront,0.107139,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:59.364613 +AWS,us-west-1,r7gd.large,reserved_3y,all_upfront,0.071446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:40.680550 +AWS,us-west-1,r7gd.large,reserved_3y,no_upfront,0.071446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:10.915052 +AWS,us-west-1,r7gd.large,reserved_3y,partial_upfront,0.071446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:12.338800 +AWS,us-west-1,r7gd.large,spot,NA,0.04182,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394915 +AWS,us-west-1,r7gd.xlarge,on_demand,NA,0.3062,USD,AWS Pricing API,2025-11-30T08:54:10.934696 +AWS,us-west-1,r7gd.xlarge,reserved_1y,all_upfront,0.435502,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:42.082741 +AWS,us-west-1,r7gd.xlarge,reserved_1y,no_upfront,0.435502,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:19.974092 +AWS,us-west-1,r7gd.xlarge,reserved_1y,partial_upfront,0.435502,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:08.957783 +AWS,us-west-1,r7gd.xlarge,reserved_3y,all_upfront,0.145167,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:50.108849 +AWS,us-west-1,r7gd.xlarge,reserved_3y,no_upfront,0.145167,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:20.509140 +AWS,us-west-1,r7gd.xlarge,reserved_3y,partial_upfront,0.145167,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:21.700915 +AWS,us-west-1,r7gd.xlarge,spot,NA,0.146754,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395089 +AWS,us-west-1,r7i.12xlarge,on_demand,NA,3.528,USD,AWS Pricing API,2025-11-30T08:54:46.065243 +AWS,us-west-1,r7i.12xlarge,reserved_1y,all_upfront,1.6003,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:17.004887 +AWS,us-west-1,r7i.12xlarge,reserved_1y,no_upfront,1.6003,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:55.386002 +AWS,us-west-1,r7i.12xlarge,reserved_1y,partial_upfront,1.6003,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:44.040013 +AWS,us-west-1,r7i.12xlarge,reserved_3y,all_upfront,1.6003,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:24.805515 +AWS,us-west-1,r7i.12xlarge,reserved_3y,no_upfront,1.6003,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:56.119401 +AWS,us-west-1,r7i.12xlarge,reserved_3y,partial_upfront,1.6003,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:56.540056 +AWS,us-west-1,r7i.12xlarge,spot,NA,1.114738,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395830 +AWS,us-west-1,r7i.16xlarge,on_demand,NA,4.704,USD,AWS Pricing API,2025-11-30T08:54:44.172015 +AWS,us-west-1,r7i.16xlarge,reserved_1y,all_upfront,2.904224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:15.131468 +AWS,us-west-1,r7i.16xlarge,reserved_1y,no_upfront,2.904224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:53.494761 +AWS,us-west-1,r7i.16xlarge,reserved_1y,partial_upfront,2.904224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:42.158325 +AWS,us-west-1,r7i.16xlarge,reserved_3y,all_upfront,0.968075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:22.917302 +AWS,us-west-1,r7i.16xlarge,reserved_3y,no_upfront,0.968075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:54.191998 +AWS,us-west-1,r7i.16xlarge,reserved_3y,partial_upfront,0.968075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:54.657989 +AWS,us-west-1,r7i.16xlarge,spot,NA,1.399323,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395784 +AWS,us-west-1,r7i.24xlarge,on_demand,NA,7.056,USD,AWS Pricing API,2025-11-30T08:54:40.918994 +AWS,us-west-1,r7i.24xlarge,reserved_1y,all_upfront,4.868681,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:11.883509 +AWS,us-west-1,r7i.24xlarge,reserved_1y,no_upfront,4.868681,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:50.220773 +AWS,us-west-1,r7i.24xlarge,reserved_1y,partial_upfront,4.868681,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:38.926268 +AWS,us-west-1,r7i.24xlarge,reserved_3y,all_upfront,3.245774,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:19.707912 +AWS,us-west-1,r7i.24xlarge,reserved_3y,no_upfront,3.245774,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:50.895160 +AWS,us-west-1,r7i.24xlarge,reserved_3y,partial_upfront,3.245774,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:51.403498 +AWS,us-west-1,r7i.24xlarge,spot,NA,1.550284,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395707 +AWS,us-west-1,r7i.2xlarge,on_demand,NA,0.588,USD,AWS Pricing API,2025-11-30T08:54:43.221710 +AWS,us-west-1,r7i.2xlarge,reserved_1y,all_upfront,0.405714,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:14.186542 +AWS,us-west-1,r7i.2xlarge,reserved_1y,no_upfront,0.405714,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:52.538957 +AWS,us-west-1,r7i.2xlarge,reserved_1y,partial_upfront,0.405714,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:41.212500 +AWS,us-west-1,r7i.2xlarge,reserved_3y,all_upfront,0.270478,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:21.984798 +AWS,us-west-1,r7i.2xlarge,reserved_3y,no_upfront,0.270478,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:53.223864 +AWS,us-west-1,r7i.2xlarge,reserved_3y,partial_upfront,0.270478,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:53.724417 +AWS,us-west-1,r7i.2xlarge,spot,NA,0.181155,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395772 +AWS,us-west-1,r7i.48xlarge,on_demand,NA,14.112,USD,AWS Pricing API,2025-11-30T08:55:03.545767 +AWS,us-west-1,r7i.48xlarge,reserved_1y,all_upfront,16.714269,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:34.453871 +AWS,us-west-1,r7i.48xlarge,reserved_1y,no_upfront,16.714269,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:13.029416 +AWS,us-west-1,r7i.48xlarge,reserved_1y,partial_upfront,16.714269,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:31:01.602008 +AWS,us-west-1,r7i.48xlarge,reserved_3y,all_upfront,5.571423,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:42.218977 +AWS,us-west-1,r7i.48xlarge,reserved_3y,no_upfront,5.571423,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:13.923458 +AWS,us-west-1,r7i.48xlarge,reserved_3y,partial_upfront,5.571423,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:13.958178 +AWS,us-west-1,r7i.48xlarge,spot,NA,2.558311,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396137 +AWS,us-west-1,r7i.4xlarge,on_demand,NA,1.176,USD,AWS Pricing API,2025-11-30T08:54:40.783274 +AWS,us-west-1,r7i.4xlarge,reserved_1y,all_upfront,0.726027,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:11.750516 +AWS,us-west-1,r7i.4xlarge,reserved_1y,no_upfront,0.726027,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:50.079513 +AWS,us-west-1,r7i.4xlarge,reserved_1y,partial_upfront,0.726027,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:38.791682 +AWS,us-west-1,r7i.4xlarge,reserved_3y,all_upfront,0.242009,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:19.573263 +AWS,us-west-1,r7i.4xlarge,reserved_3y,no_upfront,0.242009,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:50.757830 +AWS,us-west-1,r7i.4xlarge,reserved_3y,partial_upfront,0.242009,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:51.270856 +AWS,us-west-1,r7i.4xlarge,spot,NA,0.367282,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395714 +AWS,us-west-1,r7i.8xlarge,on_demand,NA,2.352,USD,AWS Pricing API,2025-11-30T08:53:57.528465 +AWS,us-west-1,r7i.8xlarge,reserved_1y,all_upfront,1.70402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:28.622749 +AWS,us-west-1,r7i.8xlarge,reserved_1y,no_upfront,1.70402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:06.462925 +AWS,us-west-1,r7i.8xlarge,reserved_1y,partial_upfront,1.70402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:55.491893 +AWS,us-west-1,r7i.8xlarge,reserved_3y,all_upfront,1.70402,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:36.803883 +AWS,us-west-1,r7i.8xlarge,reserved_3y,no_upfront,1.70402,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:06.956743 +AWS,us-west-1,r7i.8xlarge,reserved_3y,partial_upfront,1.70402,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:08.477783 +AWS,us-west-1,r7i.8xlarge,spot,NA,1.232339,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394832 +AWS,us-west-1,r7i.large,on_demand,NA,0.147,USD,AWS Pricing API,2025-11-30T08:54:11.749141 +AWS,us-west-1,r7i.large,reserved_1y,all_upfront,0.099429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:42.882096 +AWS,us-west-1,r7i.large,reserved_1y,no_upfront,0.099429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:20.798985 +AWS,us-west-1,r7i.large,reserved_1y,partial_upfront,0.099429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:09.760036 +AWS,us-west-1,r7i.large,reserved_3y,all_upfront,0.033143,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:50.903247 +AWS,us-west-1,r7i.large,reserved_3y,no_upfront,0.033143,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:21.326273 +AWS,us-west-1,r7i.large,reserved_3y,partial_upfront,0.033143,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:22.498430 +AWS,us-west-1,r7i.large,spot,NA,0.040261,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395097 +AWS,us-west-1,r7i.metal-24xl,on_demand,NA,7.056,USD,AWS Pricing API,2025-11-30T08:54:28.044457 +AWS,us-west-1,r7i.metal-24xl,reserved_1y,all_upfront,4.445243,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:58.900563 +AWS,us-west-1,r7i.metal-24xl,reserved_1y,no_upfront,4.445243,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:37.151782 +AWS,us-west-1,r7i.metal-24xl,reserved_1y,partial_upfront,4.445243,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:25.990801 +AWS,us-west-1,r7i.metal-24xl,reserved_3y,all_upfront,2.963508,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:06.903061 +AWS,us-west-1,r7i.metal-24xl,reserved_3y,no_upfront,2.963508,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:37.715861 +AWS,us-west-1,r7i.metal-24xl,reserved_3y,partial_upfront,2.963508,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:38.520186 +AWS,us-west-1,r7i.metal-24xl,spot,NA,1.713253,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395432 +AWS,us-west-1,r7i.metal-48xl,on_demand,NA,14.112,USD,AWS Pricing API,2025-11-30T08:54:47.538083 +AWS,us-west-1,r7i.metal-48xl,reserved_1y,all_upfront,8.8906,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:18.482895 +AWS,us-west-1,r7i.metal-48xl,reserved_1y,no_upfront,8.8906,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:56.878361 +AWS,us-west-1,r7i.metal-48xl,reserved_1y,partial_upfront,8.8906,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:45.527222 +AWS,us-west-1,r7i.metal-48xl,reserved_3y,all_upfront,5.927053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:26.284225 +AWS,us-west-1,r7i.metal-48xl,reserved_3y,no_upfront,5.927053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:57.633286 +AWS,us-west-1,r7i.metal-48xl,reserved_3y,partial_upfront,5.927053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:58.014338 +AWS,us-west-1,r7i.metal-48xl,spot,NA,2.61368,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395864 +AWS,us-west-1,r7i.xlarge,on_demand,NA,0.294,USD,AWS Pricing API,2025-11-30T08:54:23.423598 +AWS,us-west-1,r7i.xlarge,reserved_1y,all_upfront,0.247014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:54.321318 +AWS,us-west-1,r7i.xlarge,reserved_1y,no_upfront,0.247014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:32.504989 +AWS,us-west-1,r7i.xlarge,reserved_1y,partial_upfront,0.247014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:21.277124 +AWS,us-west-1,r7i.xlarge,reserved_3y,all_upfront,0.123498,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:02.310324 +AWS,us-west-1,r7i.xlarge,reserved_3y,no_upfront,0.123498,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:33.014105 +AWS,us-west-1,r7i.xlarge,reserved_3y,partial_upfront,0.123498,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:33.877836 +AWS,us-west-1,r7i.xlarge,spot,NA,0.098654,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395342 +AWS,us-west-1,r8g.12xlarge,on_demand,NA,3.1416,USD,AWS Pricing API,2025-11-30T08:54:30.203002 +AWS,us-west-1,r8g.12xlarge,reserved_1y,all_upfront,2.27609,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:01.066341 +AWS,us-west-1,r8g.12xlarge,reserved_1y,no_upfront,2.27609,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:39.332862 +AWS,us-west-1,r8g.12xlarge,reserved_1y,partial_upfront,2.27609,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:28.192778 +AWS,us-west-1,r8g.12xlarge,reserved_3y,all_upfront,2.27609,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:09.034890 +AWS,us-west-1,r8g.12xlarge,reserved_3y,no_upfront,2.27609,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:39.934193 +AWS,us-west-1,r8g.12xlarge,reserved_3y,partial_upfront,2.27609,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:40.650100 +AWS,us-west-1,r8g.12xlarge,spot,NA,0.931391,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395466 +AWS,us-west-1,r8g.16xlarge,on_demand,NA,4.1888,USD,AWS Pricing API,2025-11-30T08:54:53.061945 +AWS,us-west-1,r8g.16xlarge,reserved_1y,all_upfront,2.890231,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:24.002094 +AWS,us-west-1,r8g.16xlarge,reserved_1y,no_upfront,2.890231,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:09:02.433119 +AWS,us-west-1,r8g.16xlarge,reserved_1y,partial_upfront,2.890231,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:51.052135 +AWS,us-west-1,r8g.16xlarge,reserved_3y,all_upfront,1.926837,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:31.910586 +AWS,us-west-1,r8g.16xlarge,reserved_3y,no_upfront,1.926837,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:14:03.259173 +AWS,us-west-1,r8g.16xlarge,reserved_3y,partial_upfront,1.926837,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:36:03.530352 +AWS,us-west-1,r8g.16xlarge,spot,NA,1.321671,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395977 +AWS,us-west-1,r8g.24xlarge,on_demand,NA,6.2832,USD,AWS Pricing API,2025-11-30T08:54:21.470148 +AWS,us-west-1,r8g.24xlarge,reserved_1y,all_upfront,3.27757,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:52.440692 +AWS,us-west-1,r8g.24xlarge,reserved_1y,no_upfront,3.27757,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:30.598306 +AWS,us-west-1,r8g.24xlarge,reserved_1y,partial_upfront,3.27757,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:19.388201 +AWS,us-west-1,r8g.24xlarge,reserved_3y,all_upfront,3.27757,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:00.427617 +AWS,us-west-1,r8g.24xlarge,reserved_3y,no_upfront,3.27757,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:31.014396 +AWS,us-west-1,r8g.24xlarge,reserved_3y,partial_upfront,3.27757,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:31.998142 +AWS,us-west-1,r8g.24xlarge,spot,NA,1.784606,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395314 +AWS,us-west-1,r8g.2xlarge,on_demand,NA,0.5236,USD,AWS Pricing API,2025-11-30T08:54:33.941787 +AWS,us-west-1,r8g.2xlarge,reserved_1y,all_upfront,0.361234,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:04.853374 +AWS,us-west-1,r8g.2xlarge,reserved_1y,no_upfront,0.361234,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:43.157846 +AWS,us-west-1,r8g.2xlarge,reserved_1y,partial_upfront,0.361234,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:31.935074 +AWS,us-west-1,r8g.2xlarge,reserved_3y,all_upfront,0.240838,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:12.759794 +AWS,us-west-1,r8g.2xlarge,reserved_3y,no_upfront,0.240838,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:43.776863 +AWS,us-west-1,r8g.2xlarge,reserved_3y,partial_upfront,0.240838,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:44.436759 +AWS,us-west-1,r8g.2xlarge,spot,NA,0.172263,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395575 +AWS,us-west-1,r8g.48xlarge,on_demand,NA,12.5664,USD,AWS Pricing API,2025-11-30T08:54:19.974545 +AWS,us-west-1,r8g.48xlarge,reserved_1y,all_upfront,14.883676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:50.935597 +AWS,us-west-1,r8g.48xlarge,reserved_1y,no_upfront,14.883676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:29.053579 +AWS,us-west-1,r8g.48xlarge,reserved_1y,partial_upfront,14.883676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:17.816477 +AWS,us-west-1,r8g.48xlarge,reserved_3y,all_upfront,4.961225,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:58.939825 +AWS,us-west-1,r8g.48xlarge,reserved_3y,no_upfront,4.961225,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:29.508086 +AWS,us-west-1,r8g.48xlarge,reserved_3y,partial_upfront,4.961225,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:30.526265 +AWS,us-west-1,r8g.48xlarge,spot,NA,2.855955,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395246 +AWS,us-west-1,r8g.4xlarge,on_demand,NA,1.0472,USD,AWS Pricing API,2025-11-30T08:54:38.372267 +AWS,us-west-1,r8g.4xlarge,reserved_1y,all_upfront,0.7587,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:09.317123 +AWS,us-west-1,r8g.4xlarge,reserved_1y,no_upfront,0.7587,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:47.644681 +AWS,us-west-1,r8g.4xlarge,reserved_1y,partial_upfront,0.7587,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:36.373790 +AWS,us-west-1,r8g.4xlarge,reserved_3y,all_upfront,0.7587,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:17.177805 +AWS,us-west-1,r8g.4xlarge,reserved_3y,no_upfront,0.7587,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:48.281709 +AWS,us-west-1,r8g.4xlarge,reserved_3y,partial_upfront,0.7587,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:48.871761 +AWS,us-west-1,r8g.4xlarge,spot,NA,0.292574,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395656 +AWS,us-west-1,r8g.8xlarge,on_demand,NA,2.0944,USD,AWS Pricing API,2025-11-30T08:53:58.991402 +AWS,us-west-1,r8g.8xlarge,reserved_1y,all_upfront,1.51739,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:30.144238 +AWS,us-west-1,r8g.8xlarge,reserved_1y,no_upfront,1.51739,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:07.955703 +AWS,us-west-1,r8g.8xlarge,reserved_1y,partial_upfront,1.51739,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:56.964063 +AWS,us-west-1,r8g.8xlarge,reserved_3y,all_upfront,1.51739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:38.265828 +AWS,us-west-1,r8g.8xlarge,reserved_3y,no_upfront,1.51739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:08.462753 +AWS,us-west-1,r8g.8xlarge,reserved_3y,partial_upfront,1.51739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:09.939620 +AWS,us-west-1,r8g.8xlarge,spot,NA,0.640075,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394860 +AWS,us-west-1,r8g.large,on_demand,NA,0.1309,USD,AWS Pricing API,2025-11-30T08:54:36.894232 +AWS,us-west-1,r8g.large,reserved_1y,all_upfront,0.08244,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:52:07.829877 +AWS,us-west-1,r8g.large,reserved_1y,no_upfront,0.08244,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:46.133498 +AWS,us-west-1,r8g.large,reserved_1y,partial_upfront,0.08244,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:34.893025 +AWS,us-west-1,r8g.large,reserved_3y,all_upfront,0.054967,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:57:15.700427 +AWS,us-west-1,r8g.large,reserved_3y,no_upfront,0.054967,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:46.771325 +AWS,us-west-1,r8g.large,reserved_3y,partial_upfront,0.054967,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:47.381424 +AWS,us-west-1,r8g.large,spot,NA,0.042961,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395618 +AWS,us-west-1,r8g.xlarge,on_demand,NA,0.2618,USD,AWS Pricing API,2025-11-30T08:54:19.568654 +AWS,us-west-1,r8g.xlarge,reserved_1y,all_upfront,0.16489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:50.535452 +AWS,us-west-1,r8g.xlarge,reserved_1y,no_upfront,0.16489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:28.637067 +AWS,us-west-1,r8g.xlarge,reserved_1y,partial_upfront,0.16489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:30:17.413204 +AWS,us-west-1,r8g.xlarge,reserved_3y,all_upfront,0.109943,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:58.537106 +AWS,us-west-1,r8g.xlarge,reserved_3y,no_upfront,0.109943,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:29.097425 +AWS,us-west-1,r8g.xlarge,reserved_3y,partial_upfront,0.109943,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:30.115641 +AWS,us-west-1,r8g.xlarge,spot,NA,0.086083,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395259 +AWS,us-west-1,r8i.12xlarge,on_demand,NA,3.7044,USD,AWS Pricing API,2025-11-30T08:54:14.945793 +AWS,us-west-1,r8i.12xlarge,spot,NA,1.435816,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395186 +AWS,us-west-1,r8i.16xlarge,on_demand,NA,4.9392,USD,AWS Pricing API,2025-11-30T08:54:47.008059 +AWS,us-west-1,r8i.16xlarge,spot,NA,1.953596,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395826 +AWS,us-west-1,r8i.24xlarge,on_demand,NA,7.4088,USD,AWS Pricing API,2025-11-30T08:54:52.649681 +AWS,us-west-1,r8i.24xlarge,spot,NA,2.848328,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395965 +AWS,us-west-1,r8i.2xlarge,on_demand,NA,0.6174,USD,AWS Pricing API,2025-11-30T08:54:41.054624 +AWS,us-west-1,r8i.2xlarge,spot,NA,0.243825,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395718 +AWS,us-west-1,r8i.48xlarge,on_demand,NA,14.8176,USD,AWS Pricing API,2025-11-30T08:54:59.884088 +AWS,us-west-1,r8i.48xlarge,spot,NA,5.664051,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.396071 +AWS,us-west-1,r8i.4xlarge,on_demand,NA,1.2348,USD,AWS Pricing API,2025-11-30T08:54:36.487254 +AWS,us-west-1,r8i.4xlarge,spot,NA,0.502961,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395622 +AWS,us-west-1,r8i.8xlarge,on_demand,NA,2.4696,USD,AWS Pricing API,2025-11-30T08:54:29.789340 +AWS,us-west-1,r8i.8xlarge,spot,NA,0.979466,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.395470 +AWS,us-west-1,r8i.large,on_demand,NA,0.15435,USD,AWS Pricing API,2025-11-30T08:53:54.199732 +AWS,us-west-1,r8i.large,spot,NA,0.061644,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394759 +AWS,us-west-1,r8i.xlarge,on_demand,NA,0.3087,USD,AWS Pricing API,2025-11-30T08:54:04.250551 +AWS,us-west-1,r8i.xlarge,spot,NA,0.118644,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394943 +AWS,us-west-1,z1d.12xlarge,on_demand,NA,5.064,USD,AWS Pricing API,2025-11-30T08:53:49.012779 +AWS,us-west-1,z1d.12xlarge,reserved_1y,all_upfront,3.738,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:20.009332 +AWS,us-west-1,z1d.12xlarge,reserved_1y,no_upfront,3.738,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:57.737319 +AWS,us-west-1,z1d.12xlarge,reserved_1y,partial_upfront,3.738,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:46.907584 +AWS,us-west-1,z1d.12xlarge,reserved_3y,all_upfront,3.738,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:28.260100 +AWS,us-west-1,z1d.12xlarge,reserved_3y,no_upfront,3.738,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:58.163200 +AWS,us-west-1,z1d.12xlarge,reserved_3y,partial_upfront,3.738,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:59.577387 +AWS,us-west-1,z1d.12xlarge,spot,NA,0.963548,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394695 +AWS,us-west-1,z1d.2xlarge,on_demand,NA,0.844,USD,AWS Pricing API,2025-11-30T08:53:52.294720 +AWS,us-west-1,z1d.2xlarge,reserved_1y,all_upfront,0.593689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:23.350445 +AWS,us-west-1,z1d.2xlarge,reserved_1y,no_upfront,0.593689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:01.127922 +AWS,us-west-1,z1d.2xlarge,reserved_1y,partial_upfront,0.593689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:50.241565 +AWS,us-west-1,z1d.2xlarge,reserved_3y,all_upfront,0.395896,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:31.582436 +AWS,us-west-1,z1d.2xlarge,reserved_3y,no_upfront,0.395896,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:01.588376 +AWS,us-west-1,z1d.2xlarge,reserved_3y,partial_upfront,0.395896,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:03.016507 +AWS,us-west-1,z1d.2xlarge,spot,NA,0.25517,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394748 +AWS,us-west-1,z1d.3xlarge,on_demand,NA,1.266,USD,AWS Pricing API,2025-11-30T08:53:51.228119 +AWS,us-west-1,z1d.3xlarge,reserved_1y,all_upfront,0.872146,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:22.271138 +AWS,us-west-1,z1d.3xlarge,reserved_1y,no_upfront,0.872146,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:00.031343 +AWS,us-west-1,z1d.3xlarge,reserved_1y,partial_upfront,0.872146,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:49.167668 +AWS,us-west-1,z1d.3xlarge,reserved_3y,all_upfront,0.290715,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:30.522648 +AWS,us-west-1,z1d.3xlarge,reserved_3y,no_upfront,0.290715,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:00.488700 +AWS,us-west-1,z1d.3xlarge,reserved_3y,partial_upfront,0.290715,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:01.902546 +AWS,us-west-1,z1d.3xlarge,spot,NA,0.309621,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394711 +AWS,us-west-1,z1d.6xlarge,on_demand,NA,2.532,USD,AWS Pricing API,2025-11-30T08:53:51.363634 +AWS,us-west-1,z1d.6xlarge,reserved_1y,all_upfront,2.85605,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:22.406357 +AWS,us-west-1,z1d.6xlarge,reserved_1y,no_upfront,2.85605,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:00.166997 +AWS,us-west-1,z1d.6xlarge,reserved_1y,partial_upfront,2.85605,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:49.303068 +AWS,us-west-1,z1d.6xlarge,reserved_3y,all_upfront,0.952017,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:30.654928 +AWS,us-west-1,z1d.6xlarge,reserved_3y,no_upfront,0.952017,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:00.626877 +AWS,us-west-1,z1d.6xlarge,reserved_3y,partial_upfront,0.952017,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:02.044762 +AWS,us-west-1,z1d.6xlarge,spot,NA,0.481643,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394707 +AWS,us-west-1,z1d.large,on_demand,NA,0.211,USD,AWS Pricing API,2025-11-30T08:53:51.639218 +AWS,us-west-1,z1d.large,reserved_1y,all_upfront,0.126356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:22.673825 +AWS,us-west-1,z1d.large,reserved_1y,no_upfront,0.126356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:00.452906 +AWS,us-west-1,z1d.large,reserved_1y,partial_upfront,0.126356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:49.578187 +AWS,us-west-1,z1d.large,reserved_3y,all_upfront,0.084119,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:30.917545 +AWS,us-west-1,z1d.large,reserved_3y,no_upfront,0.084119,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:00.908012 +AWS,us-west-1,z1d.large,reserved_3y,partial_upfront,0.084119,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:02.332786 +AWS,us-west-1,z1d.large,spot,NA,0.045728,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394715 +AWS,us-west-1,z1d.xlarge,on_demand,NA,0.422,USD,AWS Pricing API,2025-11-30T08:53:52.562957 +AWS,us-west-1,z1d.xlarge,reserved_1y,all_upfront,0.296288,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:23.616601 +AWS,us-west-1,z1d.xlarge,reserved_1y,no_upfront,0.296288,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:08:01.402800 +AWS,us-west-1,z1d.xlarge,reserved_1y,partial_upfront,0.296288,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:50.506278 +AWS,us-west-1,z1d.xlarge,reserved_3y,all_upfront,0.197429,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:31.850275 +AWS,us-west-1,z1d.xlarge,reserved_3y,no_upfront,0.197429,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:13:01.865980 +AWS,us-west-1,z1d.xlarge,reserved_3y,partial_upfront,0.197429,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:35:03.460168 +AWS,us-west-1,z1d.xlarge,spot,NA,0.122765,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:55.394723 +AWS,us-west-2,c5.12xlarge,on_demand,NA,2.04,USD,AWS Pricing API,2025-11-30T08:53:25.190609 +AWS,us-west-2,c5.12xlarge,reserved_1y,all_upfront,1.407767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:56.468242 +AWS,us-west-2,c5.12xlarge,reserved_1y,no_upfront,1.407767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:33.969866 +AWS,us-west-2,c5.12xlarge,reserved_1y,partial_upfront,1.407767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:23.474038 +AWS,us-west-2,c5.12xlarge,reserved_3y,all_upfront,0.938589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:04.929051 +AWS,us-west-2,c5.12xlarge,reserved_3y,no_upfront,0.938589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:34.272692 +AWS,us-west-2,c5.12xlarge,reserved_3y,partial_upfront,0.938589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:35.569764 +AWS,us-west-2,c5.12xlarge,spot,NA,0.768176,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843790 +AWS,us-west-2,c5.18xlarge,on_demand,NA,3.06,USD,AWS Pricing API,2025-11-30T08:53:33.741053 +AWS,us-west-2,c5.18xlarge,reserved_1y,all_upfront,3.348174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:04.933598 +AWS,us-west-2,c5.18xlarge,reserved_1y,no_upfront,3.348174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:42.539196 +AWS,us-west-2,c5.18xlarge,reserved_1y,partial_upfront,3.348174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:31.914364 +AWS,us-west-2,c5.18xlarge,reserved_3y,all_upfront,1.116058,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:13.296110 +AWS,us-west-2,c5.18xlarge,reserved_3y,no_upfront,1.116058,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:42.830373 +AWS,us-west-2,c5.18xlarge,reserved_3y,partial_upfront,1.116058,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:44.211995 +AWS,us-west-2,c5.18xlarge,spot,NA,1.127483,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843995 +AWS,us-west-2,c5.24xlarge,on_demand,NA,4.08,USD,AWS Pricing API,2025-11-30T08:52:37.936923 +AWS,us-west-2,c5.24xlarge,reserved_1y,all_upfront,2.815648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:09.741555 +AWS,us-west-2,c5.24xlarge,reserved_1y,no_upfront,2.815648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:46.704345 +AWS,us-west-2,c5.24xlarge,reserved_1y,partial_upfront,2.815648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:36.764203 +AWS,us-west-2,c5.24xlarge,reserved_3y,all_upfront,1.877216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:18.290911 +AWS,us-west-2,c5.24xlarge,reserved_3y,no_upfront,1.877216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:46.829367 +AWS,us-west-2,c5.24xlarge,reserved_3y,partial_upfront,1.877216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:47.919471 +AWS,us-west-2,c5.24xlarge,spot,NA,1.598512,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842366 +AWS,us-west-2,c5.4xlarge,on_demand,NA,0.68,USD,AWS Pricing API,2025-11-30T08:53:17.896679 +AWS,us-west-2,c5.4xlarge,reserved_1y,all_upfront,0.459817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:49.318872 +AWS,us-west-2,c5.4xlarge,reserved_1y,no_upfront,0.459817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:26.681483 +AWS,us-west-2,c5.4xlarge,reserved_1y,partial_upfront,0.459817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:16.291267 +AWS,us-west-2,c5.4xlarge,reserved_3y,all_upfront,0.153272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:57.737613 +AWS,us-west-2,c5.4xlarge,reserved_3y,no_upfront,0.153272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:26.975832 +AWS,us-west-2,c5.4xlarge,reserved_3y,partial_upfront,0.153272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:28.253637 +AWS,us-west-2,c5.4xlarge,spot,NA,0.26421,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843545 +AWS,us-west-2,c5.9xlarge,on_demand,NA,1.53,USD,AWS Pricing API,2025-11-30T08:52:37.260410 +AWS,us-west-2,c5.9xlarge,reserved_1y,all_upfront,0.918018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:09.053583 +AWS,us-west-2,c5.9xlarge,reserved_1y,no_upfront,0.918018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:46.010592 +AWS,us-west-2,c5.9xlarge,reserved_1y,partial_upfront,0.918018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:36.086823 +AWS,us-west-2,c5.9xlarge,reserved_3y,all_upfront,0.612006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:17.623730 +AWS,us-west-2,c5.9xlarge,reserved_3y,no_upfront,0.612006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:46.141926 +AWS,us-west-2,c5.9xlarge,reserved_3y,partial_upfront,0.612006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:47.218860 +AWS,us-west-2,c5.9xlarge,spot,NA,0.640142,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842338 +AWS,us-west-2,c5a.12xlarge,on_demand,NA,1.848,USD,AWS Pricing API,2025-11-30T08:53:34.299727 +AWS,us-west-2,c5a.12xlarge,reserved_1y,all_upfront,2.084589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:05.470145 +AWS,us-west-2,c5a.12xlarge,reserved_1y,no_upfront,2.084589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:43.084250 +AWS,us-west-2,c5a.12xlarge,reserved_1y,partial_upfront,2.084589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:32.459067 +AWS,us-west-2,c5a.12xlarge,reserved_3y,all_upfront,0.694863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:13.843489 +AWS,us-west-2,c5a.12xlarge,reserved_3y,no_upfront,0.694863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:43.388433 +AWS,us-west-2,c5a.12xlarge,reserved_3y,partial_upfront,0.694863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:44.765684 +AWS,us-west-2,c5a.12xlarge,spot,NA,0.845763,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843999 +AWS,us-west-2,c5a.16xlarge,on_demand,NA,2.464,USD,AWS Pricing API,2025-11-30T08:52:53.410031 +AWS,us-west-2,c5a.16xlarge,reserved_1y,all_upfront,1.552,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:25.066276 +AWS,us-west-2,c5a.16xlarge,reserved_1y,no_upfront,1.552,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:02.169473 +AWS,us-west-2,c5a.16xlarge,reserved_1y,partial_upfront,1.552,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:52.039300 +AWS,us-west-2,c5a.16xlarge,reserved_3y,all_upfront,1.552,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:33.522673 +AWS,us-west-2,c5a.16xlarge,reserved_3y,no_upfront,1.552,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:02.144312 +AWS,us-west-2,c5a.16xlarge,reserved_3y,partial_upfront,1.552,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:03.508923 +AWS,us-west-2,c5a.16xlarge,spot,NA,1.033461,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842814 +AWS,us-west-2,c5a.24xlarge,on_demand,NA,3.696,USD,AWS Pricing API,2025-11-30T08:53:40.625367 +AWS,us-west-2,c5a.24xlarge,reserved_1y,all_upfront,2.686,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:11.760189 +AWS,us-west-2,c5a.24xlarge,reserved_1y,no_upfront,2.686,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:49.417462 +AWS,us-west-2,c5a.24xlarge,reserved_1y,partial_upfront,2.686,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:38.651125 +AWS,us-west-2,c5a.24xlarge,reserved_3y,all_upfront,2.686,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:20.012580 +AWS,us-west-2,c5a.24xlarge,reserved_3y,no_upfront,2.686,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:49.749254 +AWS,us-west-2,c5a.24xlarge,reserved_3y,partial_upfront,2.686,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:51.139588 +AWS,us-west-2,c5a.24xlarge,spot,NA,1.601194,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844226 +AWS,us-west-2,c5a.2xlarge,on_demand,NA,0.308,USD,AWS Pricing API,2025-11-30T08:53:23.390998 +AWS,us-west-2,c5a.2xlarge,reserved_1y,all_upfront,0.208904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:54.720780 +AWS,us-west-2,c5a.2xlarge,reserved_1y,no_upfront,0.208904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:32.187452 +AWS,us-west-2,c5a.2xlarge,reserved_1y,partial_upfront,0.208904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:21.725561 +AWS,us-west-2,c5a.2xlarge,reserved_3y,all_upfront,0.069635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:03.177445 +AWS,us-west-2,c5a.2xlarge,reserved_3y,no_upfront,0.069635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:32.486470 +AWS,us-west-2,c5a.2xlarge,reserved_3y,partial_upfront,0.069635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:33.775127 +AWS,us-west-2,c5a.2xlarge,spot,NA,0.14481,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843700 +AWS,us-west-2,c5a.4xlarge,on_demand,NA,0.616,USD,AWS Pricing API,2025-11-30T08:52:56.003082 +AWS,us-west-2,c5a.4xlarge,reserved_1y,all_upfront,0.369817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:27.646324 +AWS,us-west-2,c5a.4xlarge,reserved_1y,no_upfront,0.369817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:04.765335 +AWS,us-west-2,c5a.4xlarge,reserved_1y,partial_upfront,0.369817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:54.595801 +AWS,us-west-2,c5a.4xlarge,reserved_3y,all_upfront,0.246606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:36.098709 +AWS,us-west-2,c5a.4xlarge,reserved_3y,no_upfront,0.246606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:04.948000 +AWS,us-west-2,c5a.4xlarge,reserved_3y,partial_upfront,0.246606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:06.145273 +AWS,us-west-2,c5a.4xlarge,spot,NA,0.308326,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842888 +AWS,us-west-2,c5a.8xlarge,on_demand,NA,1.232,USD,AWS Pricing API,2025-11-30T08:52:48.608268 +AWS,us-west-2,c5a.8xlarge,reserved_1y,all_upfront,0.895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:20.314669 +AWS,us-west-2,c5a.8xlarge,reserved_1y,no_upfront,0.895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:57.373115 +AWS,us-west-2,c5a.8xlarge,reserved_1y,partial_upfront,0.895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:47.320153 +AWS,us-west-2,c5a.8xlarge,reserved_3y,all_upfront,0.895,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:28.807052 +AWS,us-west-2,c5a.8xlarge,reserved_3y,no_upfront,0.895,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:57.401588 +AWS,us-west-2,c5a.8xlarge,reserved_3y,partial_upfront,0.895,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:58.671111 +AWS,us-west-2,c5a.8xlarge,spot,NA,0.520331,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842676 +AWS,us-west-2,c5a.xlarge,on_demand,NA,0.154,USD,AWS Pricing API,2025-11-30T08:52:39.457562 +AWS,us-west-2,c5a.xlarge,reserved_1y,all_upfront,0.202397,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:11.237057 +AWS,us-west-2,c5a.xlarge,reserved_1y,no_upfront,0.202397,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:48.212149 +AWS,us-west-2,c5a.xlarge,reserved_1y,partial_upfront,0.202397,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:38.258440 +AWS,us-west-2,c5a.xlarge,reserved_3y,all_upfront,0.067466,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:19.773514 +AWS,us-west-2,c5a.xlarge,reserved_3y,no_upfront,0.067466,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:48.306867 +AWS,us-west-2,c5a.xlarge,reserved_3y,partial_upfront,0.067466,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:49.457763 +AWS,us-west-2,c5a.xlarge,spot,NA,0.075522,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842385 +AWS,us-west-2,c5ad.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T08:53:45.038396 +AWS,us-west-2,c5ad.12xlarge,reserved_1y,all_upfront,1.213584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:16.087879 +AWS,us-west-2,c5ad.12xlarge,reserved_1y,no_upfront,1.213584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:53.773795 +AWS,us-west-2,c5ad.12xlarge,reserved_1y,partial_upfront,1.213584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:42.991128 +AWS,us-west-2,c5ad.12xlarge,reserved_3y,all_upfront,0.404528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:24.348824 +AWS,us-west-2,c5ad.12xlarge,reserved_3y,no_upfront,0.404528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:54.165683 +AWS,us-west-2,c5ad.12xlarge,reserved_3y,partial_upfront,0.404528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:55.570415 +AWS,us-west-2,c5ad.12xlarge,spot,NA,0.89918,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844324 +AWS,us-west-2,c5ad.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T08:53:36.678019 +AWS,us-west-2,c5ad.16xlarge,reserved_1y,all_upfront,1.991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:07.758687 +AWS,us-west-2,c5ad.16xlarge,reserved_1y,no_upfront,1.991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:45.414735 +AWS,us-west-2,c5ad.16xlarge,reserved_1y,partial_upfront,1.991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:34.745585 +AWS,us-west-2,c5ad.16xlarge,reserved_3y,all_upfront,1.991,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:16.142027 +AWS,us-west-2,c5ad.16xlarge,reserved_3y,no_upfront,1.991,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:45.718593 +AWS,us-west-2,c5ad.16xlarge,reserved_3y,partial_upfront,1.991,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:47.107805 +AWS,us-west-2,c5ad.16xlarge,spot,NA,1.175098,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844105 +AWS,us-west-2,c5ad.24xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T08:52:56.137315 +AWS,us-west-2,c5ad.24xlarge,reserved_1y,all_upfront,2.986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:27.779772 +AWS,us-west-2,c5ad.24xlarge,reserved_1y,no_upfront,2.986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:04.903966 +AWS,us-west-2,c5ad.24xlarge,reserved_1y,partial_upfront,2.986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:54.730680 +AWS,us-west-2,c5ad.24xlarge,reserved_3y,all_upfront,2.986,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:36.232113 +AWS,us-west-2,c5ad.24xlarge,reserved_3y,no_upfront,2.986,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:05.087237 +AWS,us-west-2,c5ad.24xlarge,reserved_3y,partial_upfront,2.986,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:06.281544 +AWS,us-west-2,c5ad.24xlarge,spot,NA,1.783348,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842865 +AWS,us-west-2,c5ad.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T08:52:45.482608 +AWS,us-west-2,c5ad.2xlarge,reserved_1y,all_upfront,0.232306,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:17.199397 +AWS,us-west-2,c5ad.2xlarge,reserved_1y,no_upfront,0.232306,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:54.250951 +AWS,us-west-2,c5ad.2xlarge,reserved_1y,partial_upfront,0.232306,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:44.219409 +AWS,us-west-2,c5ad.2xlarge,reserved_3y,all_upfront,0.077435,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:25.723490 +AWS,us-west-2,c5ad.2xlarge,reserved_3y,no_upfront,0.077435,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:54.262483 +AWS,us-west-2,c5ad.2xlarge,reserved_3y,partial_upfront,0.077435,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:55.508576 +AWS,us-west-2,c5ad.2xlarge,spot,NA,0.142539,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842608 +AWS,us-west-2,c5ad.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T08:53:45.588323 +AWS,us-west-2,c5ad.4xlarge,reserved_1y,all_upfront,0.464498,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:16.626287 +AWS,us-west-2,c5ad.4xlarge,reserved_1y,no_upfront,0.464498,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:54.318188 +AWS,us-west-2,c5ad.4xlarge,reserved_1y,partial_upfront,0.464498,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:43.529864 +AWS,us-west-2,c5ad.4xlarge,reserved_3y,all_upfront,0.154833,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:24.898344 +AWS,us-west-2,c5ad.4xlarge,reserved_3y,no_upfront,0.154833,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:54.724273 +AWS,us-west-2,c5ad.4xlarge,reserved_3y,partial_upfront,0.154833,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:56.121413 +AWS,us-west-2,c5ad.4xlarge,spot,NA,0.333599,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844337 +AWS,us-west-2,c5ad.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T08:52:55.733120 +AWS,us-west-2,c5ad.8xlarge,reserved_1y,all_upfront,0.995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:27.374342 +AWS,us-west-2,c5ad.8xlarge,reserved_1y,no_upfront,0.995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:04.494924 +AWS,us-west-2,c5ad.8xlarge,reserved_1y,partial_upfront,0.995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:54.327224 +AWS,us-west-2,c5ad.8xlarge,reserved_3y,all_upfront,0.995,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:35.829861 +AWS,us-west-2,c5ad.8xlarge,reserved_3y,no_upfront,0.995,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:04.671936 +AWS,us-west-2,c5ad.8xlarge,reserved_3y,partial_upfront,0.995,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:05.864858 +AWS,us-west-2,c5ad.8xlarge,spot,NA,0.577845,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842896 +AWS,us-west-2,c5ad.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:53:35.031119 +AWS,us-west-2,c5ad.xlarge,reserved_1y,all_upfront,0.124,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:06.140718 +AWS,us-west-2,c5ad.xlarge,reserved_1y,no_upfront,0.124,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:43.763693 +AWS,us-west-2,c5ad.xlarge,reserved_1y,partial_upfront,0.124,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:33.124436 +AWS,us-west-2,c5ad.xlarge,reserved_3y,all_upfront,0.124,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:14.530777 +AWS,us-west-2,c5ad.xlarge,reserved_3y,no_upfront,0.124,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:44.073770 +AWS,us-west-2,c5ad.xlarge,reserved_3y,partial_upfront,0.124,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:45.457885 +AWS,us-west-2,c5ad.xlarge,spot,NA,0.071968,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844067 +AWS,us-west-2,c5d.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:53:46.693202 +AWS,us-west-2,c5d.12xlarge,reserved_1y,all_upfront,1.559817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:17.713918 +AWS,us-west-2,c5d.12xlarge,reserved_1y,no_upfront,1.559817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:55.416533 +AWS,us-west-2,c5d.12xlarge,reserved_1y,partial_upfront,1.559817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:44.606886 +AWS,us-west-2,c5d.12xlarge,reserved_3y,all_upfront,0.519939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:25.970966 +AWS,us-west-2,c5d.12xlarge,reserved_3y,no_upfront,0.519939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:55.822575 +AWS,us-west-2,c5d.12xlarge,reserved_3y,partial_upfront,0.519939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:57.224612 +AWS,us-west-2,c5d.12xlarge,spot,NA,0.840245,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844376 +AWS,us-west-2,c5d.18xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T08:53:09.686529 +AWS,us-west-2,c5d.18xlarge,reserved_1y,all_upfront,2.032078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:41.207322 +AWS,us-west-2,c5d.18xlarge,reserved_1y,no_upfront,2.032078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:18.471338 +AWS,us-west-2,c5d.18xlarge,reserved_1y,partial_upfront,2.032078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:08.093739 +AWS,us-west-2,c5d.18xlarge,reserved_3y,all_upfront,0.677359,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:49.551262 +AWS,us-west-2,c5d.18xlarge,reserved_3y,no_upfront,0.677359,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:18.733460 +AWS,us-west-2,c5d.18xlarge,reserved_3y,partial_upfront,0.677359,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:19.971113 +AWS,us-west-2,c5d.18xlarge,spot,NA,1.382726,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843290 +AWS,us-west-2,c5d.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:52:42.190377 +AWS,us-west-2,c5d.24xlarge,reserved_1y,all_upfront,3.119635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:13.954175 +AWS,us-west-2,c5d.24xlarge,reserved_1y,no_upfront,3.119635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:50.948716 +AWS,us-west-2,c5d.24xlarge,reserved_1y,partial_upfront,3.119635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:40.975158 +AWS,us-west-2,c5d.24xlarge,reserved_3y,all_upfront,1.039878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:22.486605 +AWS,us-west-2,c5d.24xlarge,reserved_3y,no_upfront,1.039878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:51.012125 +AWS,us-west-2,c5d.24xlarge,reserved_3y,partial_upfront,1.039878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:52.214510 +AWS,us-west-2,c5d.24xlarge,spot,NA,1.774846,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842479 +AWS,us-west-2,c5d.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:53:30.185842 +AWS,us-west-2,c5d.2xlarge,reserved_1y,all_upfront,0.279,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:01.393398 +AWS,us-west-2,c5d.2xlarge,reserved_1y,no_upfront,0.279,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:39.013098 +AWS,us-west-2,c5d.2xlarge,reserved_1y,partial_upfront,0.279,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:28.346865 +AWS,us-west-2,c5d.2xlarge,reserved_3y,all_upfront,0.279,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:09.809741 +AWS,us-west-2,c5d.2xlarge,reserved_3y,no_upfront,0.279,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:39.224228 +AWS,us-west-2,c5d.2xlarge,reserved_3y,partial_upfront,0.279,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:40.597409 +AWS,us-west-2,c5d.2xlarge,spot,NA,0.154027,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843907 +AWS,us-west-2,c5d.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:52:49.841105 +AWS,us-west-2,c5d.4xlarge,reserved_1y,all_upfront,0.557,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:21.527408 +AWS,us-west-2,c5d.4xlarge,reserved_1y,no_upfront,0.557,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:58.602598 +AWS,us-west-2,c5d.4xlarge,reserved_1y,partial_upfront,0.557,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:48.534768 +AWS,us-west-2,c5d.4xlarge,reserved_3y,all_upfront,0.557,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:30.013587 +AWS,us-west-2,c5d.4xlarge,reserved_3y,no_upfront,0.557,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:58.612707 +AWS,us-west-2,c5d.4xlarge,reserved_3y,partial_upfront,0.557,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:59.916994 +AWS,us-west-2,c5d.4xlarge,spot,NA,0.3607,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842741 +AWS,us-west-2,c5d.9xlarge,on_demand,NA,1.728,USD,AWS Pricing API,2025-11-30T08:53:19.546939 +AWS,us-west-2,c5d.9xlarge,reserved_1y,all_upfront,1.193918,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:50.933929 +AWS,us-west-2,c5d.9xlarge,reserved_1y,no_upfront,1.193918,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:28.313715 +AWS,us-west-2,c5d.9xlarge,reserved_1y,partial_upfront,1.193918,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:17.906378 +AWS,us-west-2,c5d.9xlarge,reserved_3y,all_upfront,0.795973,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:59.352657 +AWS,us-west-2,c5d.9xlarge,reserved_3y,no_upfront,0.795973,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:28.627088 +AWS,us-west-2,c5d.9xlarge,reserved_3y,partial_upfront,0.795973,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:29.910553 +AWS,us-west-2,c5d.9xlarge,spot,NA,0.748798,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843557 +AWS,us-west-2,c5d.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:53:15.153435 +AWS,us-west-2,c5d.xlarge,reserved_1y,all_upfront,0.115648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:46.609295 +AWS,us-west-2,c5d.xlarge,reserved_1y,no_upfront,0.115648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:23.938145 +AWS,us-west-2,c5d.xlarge,reserved_1y,partial_upfront,0.115648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:13.539430 +AWS,us-west-2,c5d.xlarge,reserved_3y,all_upfront,0.077216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:55.036547 +AWS,us-west-2,c5d.xlarge,reserved_3y,no_upfront,0.077216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:24.233538 +AWS,us-west-2,c5d.xlarge,reserved_3y,partial_upfront,0.077216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:25.486774 +AWS,us-west-2,c5d.xlarge,spot,NA,0.075062,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843434 +AWS,us-west-2,c5n.18xlarge,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:53:35.861297 +AWS,us-west-2,c5n.18xlarge,reserved_1y,all_upfront,2.332438,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:06.955519 +AWS,us-west-2,c5n.18xlarge,reserved_1y,no_upfront,2.332438,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:44.602866 +AWS,us-west-2,c5n.18xlarge,reserved_1y,partial_upfront,2.332438,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:33.937570 +AWS,us-west-2,c5n.18xlarge,reserved_3y,all_upfront,1.554813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:15.339430 +AWS,us-west-2,c5n.18xlarge,reserved_3y,no_upfront,1.554813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:44.905249 +AWS,us-west-2,c5n.18xlarge,reserved_3y,partial_upfront,1.554813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:46.289079 +AWS,us-west-2,c5n.18xlarge,spot,NA,1.586219,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844059 +AWS,us-west-2,c5n.2xlarge,on_demand,NA,0.432,USD,AWS Pricing API,2025-11-30T08:53:46.135303 +AWS,us-west-2,c5n.2xlarge,reserved_1y,all_upfront,0.290808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:17.174977 +AWS,us-west-2,c5n.2xlarge,reserved_1y,no_upfront,0.290808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:54.867485 +AWS,us-west-2,c5n.2xlarge,reserved_1y,partial_upfront,0.290808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:44.072572 +AWS,us-west-2,c5n.2xlarge,reserved_3y,all_upfront,0.145603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:25.439035 +AWS,us-west-2,c5n.2xlarge,reserved_3y,no_upfront,0.145603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:55.272690 +AWS,us-west-2,c5n.2xlarge,reserved_3y,partial_upfront,0.145603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:56.681666 +AWS,us-west-2,c5n.2xlarge,spot,NA,0.215653,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844372 +AWS,us-west-2,c5n.4xlarge,on_demand,NA,0.864,USD,AWS Pricing API,2025-11-30T08:53:22.004994 +AWS,us-west-2,c5n.4xlarge,reserved_1y,all_upfront,0.518247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:53.372056 +AWS,us-west-2,c5n.4xlarge,reserved_1y,no_upfront,0.518247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:30.798911 +AWS,us-west-2,c5n.4xlarge,reserved_1y,partial_upfront,0.518247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:20.362804 +AWS,us-west-2,c5n.4xlarge,reserved_3y,all_upfront,0.345416,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:01.813730 +AWS,us-west-2,c5n.4xlarge,reserved_3y,no_upfront,0.345416,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:31.113207 +AWS,us-west-2,c5n.4xlarge,reserved_3y,partial_upfront,0.345416,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:32.406430 +AWS,us-west-2,c5n.4xlarge,spot,NA,0.372849,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843672 +AWS,us-west-2,c5n.9xlarge,on_demand,NA,1.944,USD,AWS Pricing API,2025-11-30T08:53:35.723105 +AWS,us-west-2,c5n.9xlarge,reserved_1y,all_upfront,0.813,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:06.820085 +AWS,us-west-2,c5n.9xlarge,reserved_1y,no_upfront,0.813,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:44.466587 +AWS,us-west-2,c5n.9xlarge,reserved_1y,partial_upfront,0.813,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:33.802967 +AWS,us-west-2,c5n.9xlarge,reserved_3y,all_upfront,0.813,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:15.207061 +AWS,us-west-2,c5n.9xlarge,reserved_3y,no_upfront,0.813,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:44.769872 +AWS,us-west-2,c5n.9xlarge,reserved_3y,partial_upfront,0.813,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:46.150509 +AWS,us-west-2,c5n.9xlarge,spot,NA,0.731945,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844040 +AWS,us-west-2,c5n.metal,on_demand,NA,3.888,USD,AWS Pricing API,2025-11-30T08:52:43.841798 +AWS,us-west-2,c5n.metal,reserved_1y,all_upfront,2.817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:15.566798 +AWS,us-west-2,c5n.metal,reserved_1y,no_upfront,2.817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:52.584199 +AWS,us-west-2,c5n.metal,reserved_1y,partial_upfront,2.817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:42.601803 +AWS,us-west-2,c5n.metal,reserved_3y,all_upfront,2.817,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:24.103176 +AWS,us-west-2,c5n.metal,reserved_3y,no_upfront,2.817,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:52.636617 +AWS,us-west-2,c5n.metal,reserved_3y,partial_upfront,2.817,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:53.851996 +AWS,us-west-2,c5n.metal,spot,NA,1.372881,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842520 +AWS,us-west-2,c5n.xlarge,on_demand,NA,0.216,USD,AWS Pricing API,2025-11-30T08:53:37.766915 +AWS,us-west-2,c5n.xlarge,reserved_1y,all_upfront,0.157,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:08.882931 +AWS,us-west-2,c5n.xlarge,reserved_1y,no_upfront,0.157,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:46.538180 +AWS,us-west-2,c5n.xlarge,reserved_1y,partial_upfront,0.157,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:35.823995 +AWS,us-west-2,c5n.xlarge,reserved_3y,all_upfront,0.157,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:17.214989 +AWS,us-west-2,c5n.xlarge,reserved_3y,no_upfront,0.157,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:46.831443 +AWS,us-west-2,c5n.xlarge,reserved_3y,partial_upfront,0.157,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:48.236619 +AWS,us-west-2,c5n.xlarge,spot,NA,0.09175,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844132 +AWS,us-west-2,c6g.12xlarge,on_demand,NA,1.632,USD,AWS Pricing API,2025-11-30T08:52:49.153843 +AWS,us-west-2,c6g.12xlarge,reserved_1y,all_upfront,0.705,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:20.860113 +AWS,us-west-2,c6g.12xlarge,reserved_1y,no_upfront,0.705,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:57.921694 +AWS,us-west-2,c6g.12xlarge,reserved_1y,partial_upfront,0.705,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:47.859979 +AWS,us-west-2,c6g.12xlarge,reserved_3y,all_upfront,0.705,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:29.344964 +AWS,us-west-2,c6g.12xlarge,reserved_3y,no_upfront,0.705,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:57.939106 +AWS,us-west-2,c6g.12xlarge,reserved_3y,partial_upfront,0.705,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:59.230515 +AWS,us-west-2,c6g.12xlarge,spot,NA,0.731062,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842668 +AWS,us-west-2,c6g.16xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:53:07.232132 +AWS,us-west-2,c6g.16xlarge,reserved_1y,all_upfront,1.5681,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:38.747019 +AWS,us-west-2,c6g.16xlarge,reserved_1y,no_upfront,1.5681,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:16.001844 +AWS,us-west-2,c6g.16xlarge,reserved_1y,partial_upfront,1.5681,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:05.661661 +AWS,us-west-2,c6g.16xlarge,reserved_3y,all_upfront,1.5681,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:47.129601 +AWS,us-west-2,c6g.16xlarge,reserved_3y,no_upfront,1.5681,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:16.257634 +AWS,us-west-2,c6g.16xlarge,reserved_3y,partial_upfront,1.5681,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:17.486860 +AWS,us-west-2,c6g.16xlarge,spot,NA,0.814365,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843222 +AWS,us-west-2,c6g.2xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T08:53:19.400107 +AWS,us-west-2,c6g.2xlarge,reserved_1y,all_upfront,0.196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:50.796306 +AWS,us-west-2,c6g.2xlarge,reserved_1y,no_upfront,0.196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:28.177597 +AWS,us-west-2,c6g.2xlarge,reserved_1y,partial_upfront,0.196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:17.773276 +AWS,us-west-2,c6g.2xlarge,reserved_3y,all_upfront,0.196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:59.217221 +AWS,us-west-2,c6g.2xlarge,reserved_3y,no_upfront,0.196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:28.491845 +AWS,us-west-2,c6g.2xlarge,reserved_3y,partial_upfront,0.196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:29.773916 +AWS,us-west-2,c6g.2xlarge,spot,NA,0.108549,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843591 +AWS,us-west-2,c6g.4xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T08:53:38.586286 +AWS,us-west-2,c6g.4xlarge,reserved_1y,all_upfront,0.365868,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:09.728060 +AWS,us-west-2,c6g.4xlarge,reserved_1y,no_upfront,0.365868,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:47.360919 +AWS,us-west-2,c6g.4xlarge,reserved_1y,partial_upfront,0.365868,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:36.631619 +AWS,us-west-2,c6g.4xlarge,reserved_3y,all_upfront,0.121956,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:18.013517 +AWS,us-west-2,c6g.4xlarge,reserved_3y,no_upfront,0.121956,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:47.674367 +AWS,us-west-2,c6g.4xlarge,reserved_3y,partial_upfront,0.121956,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:49.059225 +AWS,us-west-2,c6g.4xlarge,spot,NA,0.213591,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844136 +AWS,us-west-2,c6g.8xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T08:53:05.597887 +AWS,us-west-2,c6g.8xlarge,reserved_1y,all_upfront,0.6854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:37.116964 +AWS,us-west-2,c6g.8xlarge,reserved_1y,no_upfront,0.6854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:14.361977 +AWS,us-west-2,c6g.8xlarge,reserved_1y,partial_upfront,0.6854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:04.054766 +AWS,us-west-2,c6g.8xlarge,reserved_3y,all_upfront,0.6854,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:45.521653 +AWS,us-west-2,c6g.8xlarge,reserved_3y,no_upfront,0.6854,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:14.618787 +AWS,us-west-2,c6g.8xlarge,reserved_3y,partial_upfront,0.6854,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:15.821927 +AWS,us-west-2,c6g.8xlarge,spot,NA,0.455163,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843175 +AWS,us-west-2,c6g.xlarge,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T08:53:44.080777 +AWS,us-west-2,c6g.xlarge,reserved_1y,all_upfront,0.0656,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:15.128588 +AWS,us-west-2,c6g.xlarge,reserved_1y,no_upfront,0.0656,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:52.814470 +AWS,us-west-2,c6g.xlarge,reserved_1y,partial_upfront,0.0656,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:42.041469 +AWS,us-west-2,c6g.xlarge,reserved_3y,all_upfront,0.0656,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:23.401758 +AWS,us-west-2,c6g.xlarge,reserved_3y,no_upfront,0.0656,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:53.204048 +AWS,us-west-2,c6g.xlarge,reserved_3y,partial_upfront,0.0656,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:54.573378 +AWS,us-west-2,c6g.xlarge,spot,NA,0.06379,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844285 +AWS,us-west-2,c6gd.12xlarge,on_demand,NA,1.8432,USD,AWS Pricing API,2025-11-30T08:52:43.977878 +AWS,us-west-2,c6gd.12xlarge,reserved_1y,all_upfront,1.3327,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:15.701092 +AWS,us-west-2,c6gd.12xlarge,reserved_1y,no_upfront,1.3327,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:52.718572 +AWS,us-west-2,c6gd.12xlarge,reserved_1y,partial_upfront,1.3327,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:42.737020 +AWS,us-west-2,c6gd.12xlarge,reserved_3y,all_upfront,1.3327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:24.236863 +AWS,us-west-2,c6gd.12xlarge,reserved_3y,no_upfront,1.3327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:52.771252 +AWS,us-west-2,c6gd.12xlarge,reserved_3y,partial_upfront,1.3327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:53.990039 +AWS,us-west-2,c6gd.12xlarge,spot,NA,0.666835,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842516 +AWS,us-west-2,c6gd.16xlarge,on_demand,NA,2.4576,USD,AWS Pricing API,2025-11-30T08:53:22.560155 +AWS,us-west-2,c6gd.16xlarge,reserved_1y,all_upfront,2.173979,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:53.911405 +AWS,us-west-2,c6gd.16xlarge,reserved_1y,no_upfront,2.173979,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:31.350021 +AWS,us-west-2,c6gd.16xlarge,reserved_1y,partial_upfront,2.173979,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:20.911976 +AWS,us-west-2,c6gd.16xlarge,reserved_3y,all_upfront,1.086993,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:02.372482 +AWS,us-west-2,c6gd.16xlarge,reserved_3y,no_upfront,1.086993,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:31.662905 +AWS,us-west-2,c6gd.16xlarge,reserved_3y,partial_upfront,1.086993,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:32.954403 +AWS,us-west-2,c6gd.16xlarge,spot,NA,0.853984,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843692 +AWS,us-west-2,c6gd.2xlarge,on_demand,NA,0.3072,USD,AWS Pricing API,2025-11-30T08:53:33.056439 +AWS,us-west-2,c6gd.2xlarge,reserved_1y,all_upfront,0.2221,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:04.255700 +AWS,us-west-2,c6gd.2xlarge,reserved_1y,no_upfront,0.2221,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:41.860159 +AWS,us-west-2,c6gd.2xlarge,reserved_1y,partial_upfront,0.2221,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:31.239945 +AWS,us-west-2,c6gd.2xlarge,reserved_3y,all_upfront,0.2221,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:12.616675 +AWS,us-west-2,c6gd.2xlarge,reserved_3y,no_upfront,0.2221,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:42.116423 +AWS,us-west-2,c6gd.2xlarge,reserved_3y,partial_upfront,0.2221,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:43.506279 +AWS,us-west-2,c6gd.2xlarge,spot,NA,0.113479,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843953 +AWS,us-west-2,c6gd.4xlarge,on_demand,NA,0.6144,USD,AWS Pricing API,2025-11-30T08:53:12.291964 +AWS,us-west-2,c6gd.4xlarge,reserved_1y,all_upfront,0.2935,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:43.776130 +AWS,us-west-2,c6gd.4xlarge,reserved_1y,no_upfront,0.2935,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:21.077289 +AWS,us-west-2,c6gd.4xlarge,reserved_1y,partial_upfront,0.2935,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:10.688428 +AWS,us-west-2,c6gd.4xlarge,reserved_3y,all_upfront,0.2935,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:52.201105 +AWS,us-west-2,c6gd.4xlarge,reserved_3y,no_upfront,0.2935,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:21.335608 +AWS,us-west-2,c6gd.4xlarge,reserved_3y,partial_upfront,0.2935,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:22.596893 +AWS,us-west-2,c6gd.4xlarge,spot,NA,0.237983,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843391 +AWS,us-west-2,c6gd.8xlarge,on_demand,NA,1.2288,USD,AWS Pricing API,2025-11-30T08:53:41.471214 +AWS,us-west-2,c6gd.8xlarge,reserved_1y,all_upfront,0.8885,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:12.567005 +AWS,us-west-2,c6gd.8xlarge,reserved_1y,no_upfront,0.8885,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:50.235069 +AWS,us-west-2,c6gd.8xlarge,reserved_1y,partial_upfront,0.8885,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:39.459054 +AWS,us-west-2,c6gd.8xlarge,reserved_3y,all_upfront,0.8885,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:20.824588 +AWS,us-west-2,c6gd.8xlarge,reserved_3y,no_upfront,0.8885,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:50.577711 +AWS,us-west-2,c6gd.8xlarge,reserved_3y,partial_upfront,0.8885,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:51.962937 +AWS,us-west-2,c6gd.8xlarge,spot,NA,0.440813,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844210 +AWS,us-west-2,c6gd.xlarge,on_demand,NA,0.1536,USD,AWS Pricing API,2025-11-30T08:53:32.372861 +AWS,us-west-2,c6gd.xlarge,reserved_1y,all_upfront,0.122823,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:03.584176 +AWS,us-west-2,c6gd.xlarge,reserved_1y,no_upfront,0.122823,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:41.182751 +AWS,us-west-2,c6gd.xlarge,reserved_1y,partial_upfront,0.122823,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:30.571414 +AWS,us-west-2,c6gd.xlarge,reserved_3y,all_upfront,0.061408,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:11.950709 +AWS,us-west-2,c6gd.xlarge,reserved_3y,no_upfront,0.061408,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:41.424647 +AWS,us-west-2,c6gd.xlarge,reserved_3y,partial_upfront,0.061408,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:42.800748 +AWS,us-west-2,c6gd.xlarge,spot,NA,0.074623,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843984 +AWS,us-west-2,c6i.12xlarge,on_demand,NA,2.04,USD,AWS Pricing API,2025-11-30T08:53:32.237007 +AWS,us-west-2,c6i.12xlarge,reserved_1y,all_upfront,1.28518,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:03.450294 +AWS,us-west-2,c6i.12xlarge,reserved_1y,no_upfront,1.28518,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:41.045905 +AWS,us-west-2,c6i.12xlarge,reserved_1y,partial_upfront,1.28518,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:30.426927 +AWS,us-west-2,c6i.12xlarge,reserved_3y,all_upfront,0.856793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:11.816264 +AWS,us-west-2,c6i.12xlarge,reserved_3y,no_upfront,0.856793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:41.288746 +AWS,us-west-2,c6i.12xlarge,reserved_3y,partial_upfront,0.856793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:42.665490 +AWS,us-west-2,c6i.12xlarge,spot,NA,0.769411,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843965 +AWS,us-west-2,c6i.16xlarge,on_demand,NA,2.72,USD,AWS Pricing API,2025-11-30T08:53:06.825172 +AWS,us-west-2,c6i.16xlarge,reserved_1y,all_upfront,2.217642,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:38.335710 +AWS,us-west-2,c6i.16xlarge,reserved_1y,no_upfront,2.217642,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:15.587238 +AWS,us-west-2,c6i.16xlarge,reserved_1y,partial_upfront,2.217642,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:05.258361 +AWS,us-west-2,c6i.16xlarge,reserved_3y,all_upfront,1.108814,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:46.729152 +AWS,us-west-2,c6i.16xlarge,reserved_3y,no_upfront,1.108814,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:15.847808 +AWS,us-west-2,c6i.16xlarge,reserved_3y,partial_upfront,1.108814,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:17.071915 +AWS,us-west-2,c6i.16xlarge,spot,NA,1.044367,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843194 +AWS,us-west-2,c6i.24xlarge,on_demand,NA,4.08,USD,AWS Pricing API,2025-11-30T08:53:01.492262 +AWS,us-west-2,c6i.24xlarge,reserved_1y,all_upfront,2.807995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:33.044675 +AWS,us-west-2,c6i.24xlarge,reserved_1y,no_upfront,2.807995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:10.284814 +AWS,us-west-2,c6i.24xlarge,reserved_1y,partial_upfront,2.807995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:59.985182 +AWS,us-west-2,c6i.24xlarge,reserved_3y,all_upfront,1.871998,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:41.486508 +AWS,us-west-2,c6i.24xlarge,reserved_3y,no_upfront,1.871998,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:10.446296 +AWS,us-west-2,c6i.24xlarge,reserved_3y,partial_upfront,1.871998,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:11.657910 +AWS,us-west-2,c6i.24xlarge,spot,NA,1.542287,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843050 +AWS,us-west-2,c6i.2xlarge,on_demand,NA,0.34,USD,AWS Pricing API,2025-11-30T08:52:45.213292 +AWS,us-west-2,c6i.2xlarge,reserved_1y,all_upfront,0.229338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:16.921504 +AWS,us-west-2,c6i.2xlarge,reserved_1y,no_upfront,0.229338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:53.979851 +AWS,us-west-2,c6i.2xlarge,reserved_1y,partial_upfront,0.229338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:43.940939 +AWS,us-west-2,c6i.2xlarge,reserved_3y,all_upfront,0.076446,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:25.455758 +AWS,us-west-2,c6i.2xlarge,reserved_3y,no_upfront,0.076446,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:53.989494 +AWS,us-west-2,c6i.2xlarge,reserved_3y,partial_upfront,0.076446,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:55.233129 +AWS,us-west-2,c6i.2xlarge,spot,NA,0.144252,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842552 +AWS,us-west-2,c6i.32xlarge,on_demand,NA,5.44,USD,AWS Pricing API,2025-11-30T08:53:37.087065 +AWS,us-west-2,c6i.32xlarge,reserved_1y,all_upfront,7.150114,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:08.161533 +AWS,us-west-2,c6i.32xlarge,reserved_1y,no_upfront,7.150114,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:45.853557 +AWS,us-west-2,c6i.32xlarge,reserved_1y,partial_upfront,7.150114,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:35.150869 +AWS,us-west-2,c6i.32xlarge,reserved_3y,all_upfront,2.383371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:16.543878 +AWS,us-west-2,c6i.32xlarge,reserved_3y,no_upfront,2.383371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:46.139148 +AWS,us-west-2,c6i.32xlarge,reserved_3y,partial_upfront,2.383371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:47.547101 +AWS,us-west-2,c6i.32xlarge,spot,NA,2.048436,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844082 +AWS,us-west-2,c6i.4xlarge,on_demand,NA,0.68,USD,AWS Pricing API,2025-11-30T08:52:41.232660 +AWS,us-west-2,c6i.4xlarge,reserved_1y,all_upfront,0.458676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:12.999115 +AWS,us-west-2,c6i.4xlarge,reserved_1y,no_upfront,0.458676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:49.988146 +AWS,us-west-2,c6i.4xlarge,reserved_1y,partial_upfront,0.458676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:40.025470 +AWS,us-west-2,c6i.4xlarge,reserved_3y,all_upfront,0.152892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:21.546035 +AWS,us-west-2,c6i.4xlarge,reserved_3y,no_upfront,0.152892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:50.053741 +AWS,us-west-2,c6i.4xlarge,reserved_3y,partial_upfront,0.152892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:51.255773 +AWS,us-west-2,c6i.4xlarge,spot,NA,0.290418,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842435 +AWS,us-west-2,c6i.8xlarge,on_demand,NA,1.36,USD,AWS Pricing API,2025-11-30T08:52:55.046870 +AWS,us-west-2,c6i.8xlarge,reserved_1y,all_upfront,0.839612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:26.692009 +AWS,us-west-2,c6i.8xlarge,reserved_1y,no_upfront,0.839612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:03.813451 +AWS,us-west-2,c6i.8xlarge,reserved_1y,partial_upfront,0.839612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:53.654552 +AWS,us-west-2,c6i.8xlarge,reserved_3y,all_upfront,0.279871,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:35.146981 +AWS,us-west-2,c6i.8xlarge,reserved_3y,no_upfront,0.279871,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:03.968976 +AWS,us-west-2,c6i.8xlarge,reserved_3y,partial_upfront,0.279871,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:05.182582 +AWS,us-west-2,c6i.8xlarge,spot,NA,0.53187,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842892 +AWS,us-west-2,c6i.xlarge,on_demand,NA,0.17,USD,AWS Pricing API,2025-11-30T08:52:59.289639 +AWS,us-west-2,c6i.xlarge,reserved_1y,all_upfront,0.104909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:30.880005 +AWS,us-west-2,c6i.xlarge,reserved_1y,no_upfront,0.104909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:08.109855 +AWS,us-west-2,c6i.xlarge,reserved_1y,partial_upfront,0.104909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:57.818226 +AWS,us-west-2,c6i.xlarge,reserved_3y,all_upfront,0.03497,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:39.333476 +AWS,us-west-2,c6i.xlarge,reserved_3y,no_upfront,0.03497,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:08.231836 +AWS,us-west-2,c6i.xlarge,reserved_3y,partial_upfront,0.03497,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:09.443781 +AWS,us-west-2,c6i.xlarge,spot,NA,0.073117,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842999 +AWS,us-west-2,c6id.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:53:27.985705 +AWS,us-west-2,c6id.12xlarge,reserved_1y,all_upfront,1.74636,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:59.200026 +AWS,us-west-2,c6id.12xlarge,reserved_1y,no_upfront,1.74636,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:36.794794 +AWS,us-west-2,c6id.12xlarge,reserved_1y,partial_upfront,1.74636,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:26.187424 +AWS,us-west-2,c6id.12xlarge,reserved_3y,all_upfront,1.74636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:07.634761 +AWS,us-west-2,c6id.12xlarge,reserved_3y,no_upfront,1.74636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:37.020947 +AWS,us-west-2,c6id.12xlarge,reserved_3y,partial_upfront,1.74636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:38.376967 +AWS,us-west-2,c6id.12xlarge,spot,NA,0.930848,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843868 +AWS,us-west-2,c6id.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:53:37.631728 +AWS,us-west-2,c6id.16xlarge,reserved_1y,all_upfront,2.496032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:08.706814 +AWS,us-west-2,c6id.16xlarge,reserved_1y,no_upfront,2.496032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:46.402716 +AWS,us-west-2,c6id.16xlarge,reserved_1y,partial_upfront,2.496032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:35.689084 +AWS,us-west-2,c6id.16xlarge,reserved_3y,all_upfront,1.248011,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:17.082045 +AWS,us-west-2,c6id.16xlarge,reserved_3y,no_upfront,1.248011,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:46.693038 +AWS,us-west-2,c6id.16xlarge,reserved_3y,partial_upfront,1.248011,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:48.099282 +AWS,us-west-2,c6id.16xlarge,spot,NA,1.202517,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844152 +AWS,us-west-2,c6id.24xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:52:55.459192 +AWS,us-west-2,c6id.24xlarge,reserved_1y,all_upfront,3.259817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:27.100242 +AWS,us-west-2,c6id.24xlarge,reserved_1y,no_upfront,3.259817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:04.222120 +AWS,us-west-2,c6id.24xlarge,reserved_1y,partial_upfront,3.259817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:54.059636 +AWS,us-west-2,c6id.24xlarge,reserved_3y,all_upfront,1.086606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:35.557625 +AWS,us-west-2,c6id.24xlarge,reserved_3y,no_upfront,1.086606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:04.389151 +AWS,us-west-2,c6id.24xlarge,reserved_3y,partial_upfront,1.086606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:05.593226 +AWS,us-west-2,c6id.24xlarge,spot,NA,1.810476,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842877 +AWS,us-west-2,c6id.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:53:48.053569 +AWS,us-west-2,c6id.2xlarge,reserved_1y,all_upfront,0.271689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:19.072157 +AWS,us-west-2,c6id.2xlarge,reserved_1y,no_upfront,0.271689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:56.788143 +AWS,us-west-2,c6id.2xlarge,reserved_1y,partial_upfront,0.271689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:45.967967 +AWS,us-west-2,c6id.2xlarge,reserved_3y,all_upfront,0.090563,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:27.323770 +AWS,us-west-2,c6id.2xlarge,reserved_3y,no_upfront,0.090563,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:57.189455 +AWS,us-west-2,c6id.2xlarge,reserved_3y,partial_upfront,0.090563,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:58.613369 +AWS,us-west-2,c6id.2xlarge,spot,NA,0.147886,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844403 +AWS,us-west-2,c6id.32xlarge,on_demand,NA,6.4512,USD,AWS Pricing API,2025-11-30T08:52:43.299808 +AWS,us-west-2,c6id.32xlarge,reserved_1y,all_upfront,3.794521,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:15.032970 +AWS,us-west-2,c6id.32xlarge,reserved_1y,no_upfront,3.794521,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:52.039662 +AWS,us-west-2,c6id.32xlarge,reserved_1y,partial_upfront,3.794521,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:42.055555 +AWS,us-west-2,c6id.32xlarge,reserved_3y,all_upfront,1.26484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:23.553712 +AWS,us-west-2,c6id.32xlarge,reserved_3y,no_upfront,1.26484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:52.097528 +AWS,us-west-2,c6id.32xlarge,reserved_3y,partial_upfront,1.26484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:53.308367 +AWS,us-west-2,c6id.32xlarge,spot,NA,2.565974,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842531 +AWS,us-west-2,c6id.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:52:50.386916 +AWS,us-west-2,c6id.4xlarge,reserved_1y,all_upfront,0.3901,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:22.076494 +AWS,us-west-2,c6id.4xlarge,reserved_1y,no_upfront,0.3901,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:59.151307 +AWS,us-west-2,c6id.4xlarge,reserved_1y,partial_upfront,0.3901,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:49.081159 +AWS,us-west-2,c6id.4xlarge,reserved_3y,all_upfront,0.3901,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:30.558498 +AWS,us-west-2,c6id.4xlarge,reserved_3y,no_upfront,0.3901,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:59.166509 +AWS,us-west-2,c6id.4xlarge,reserved_3y,partial_upfront,0.3901,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:00.468356 +AWS,us-west-2,c6id.4xlarge,spot,NA,0.317481,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842712 +AWS,us-west-2,c6id.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:53:23.793227 +AWS,us-west-2,c6id.8xlarge,reserved_1y,all_upfront,0.94863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:55.125123 +AWS,us-west-2,c6id.8xlarge,reserved_1y,no_upfront,0.94863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:32.605147 +AWS,us-west-2,c6id.8xlarge,reserved_1y,partial_upfront,0.94863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:22.127689 +AWS,us-west-2,c6id.8xlarge,reserved_3y,all_upfront,0.31621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:03.591012 +AWS,us-west-2,c6id.8xlarge,reserved_3y,no_upfront,0.31621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:32.896979 +AWS,us-west-2,c6id.8xlarge,reserved_3y,partial_upfront,0.31621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:34.191412 +AWS,us-west-2,c6id.8xlarge,spot,NA,0.612483,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843747 +AWS,us-west-2,c6id.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:53:42.844094 +AWS,us-west-2,c6id.xlarge,reserved_1y,all_upfront,0.135845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:13.910605 +AWS,us-west-2,c6id.xlarge,reserved_1y,no_upfront,0.135845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:51.591854 +AWS,us-west-2,c6id.xlarge,reserved_1y,partial_upfront,0.135845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:40.830660 +AWS,us-west-2,c6id.xlarge,reserved_3y,all_upfront,0.045282,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:22.172960 +AWS,us-west-2,c6id.xlarge,reserved_3y,no_upfront,0.045282,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:51.950676 +AWS,us-west-2,c6id.xlarge,reserved_3y,partial_upfront,0.045282,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:53.334537 +AWS,us-west-2,c6id.xlarge,spot,NA,0.078467,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844234 +AWS,us-west-2,c6in.12xlarge,on_demand,NA,2.7216,USD,AWS Pricing API,2025-11-30T08:52:48.745310 +AWS,us-west-2,c6in.12xlarge,reserved_1y,all_upfront,3.098174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:20.447842 +AWS,us-west-2,c6in.12xlarge,reserved_1y,no_upfront,3.098174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:57.511458 +AWS,us-west-2,c6in.12xlarge,reserved_1y,partial_upfront,3.098174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:47.455761 +AWS,us-west-2,c6in.12xlarge,reserved_3y,all_upfront,1.032725,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:28.939683 +AWS,us-west-2,c6in.12xlarge,reserved_3y,no_upfront,1.032725,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:57.535812 +AWS,us-west-2,c6in.12xlarge,reserved_3y,partial_upfront,1.032725,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:58.808121 +AWS,us-west-2,c6in.12xlarge,spot,NA,1.259713,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842700 +AWS,us-west-2,c6in.16xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T08:53:00.253935 +AWS,us-west-2,c6in.16xlarge,reserved_1y,all_upfront,2.13379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:31.830861 +AWS,us-west-2,c6in.16xlarge,reserved_1y,no_upfront,2.13379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:09.064806 +AWS,us-west-2,c6in.16xlarge,reserved_1y,partial_upfront,2.13379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:58.776963 +AWS,us-west-2,c6in.16xlarge,reserved_3y,all_upfront,0.711263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:40.273653 +AWS,us-west-2,c6in.16xlarge,reserved_3y,no_upfront,0.711263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:09.205123 +AWS,us-west-2,c6in.16xlarge,reserved_3y,partial_upfront,0.711263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:10.420802 +AWS,us-west-2,c6in.16xlarge,spot,NA,1.636029,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843003 +AWS,us-west-2,c6in.24xlarge,on_demand,NA,5.4432,USD,AWS Pricing API,2025-11-30T08:53:09.823015 +AWS,us-west-2,c6in.24xlarge,reserved_1y,all_upfront,3.659977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:41.343451 +AWS,us-west-2,c6in.24xlarge,reserved_1y,no_upfront,3.659977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:18.610743 +AWS,us-west-2,c6in.24xlarge,reserved_1y,partial_upfront,3.659977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:08.236580 +AWS,us-west-2,c6in.24xlarge,reserved_3y,all_upfront,1.829992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:49.690455 +AWS,us-west-2,c6in.24xlarge,reserved_3y,no_upfront,1.829992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:18.869120 +AWS,us-west-2,c6in.24xlarge,reserved_3y,partial_upfront,1.829992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:20.108683 +AWS,us-west-2,c6in.24xlarge,spot,NA,2.226261,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843313 +AWS,us-west-2,c6in.2xlarge,on_demand,NA,0.4536,USD,AWS Pricing API,2025-11-30T08:53:13.508209 +AWS,us-west-2,c6in.2xlarge,reserved_1y,all_upfront,0.272153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:44.991846 +AWS,us-west-2,c6in.2xlarge,reserved_1y,no_upfront,0.272153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:22.303091 +AWS,us-west-2,c6in.2xlarge,reserved_1y,partial_upfront,0.272153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:11.896395 +AWS,us-west-2,c6in.2xlarge,reserved_3y,all_upfront,0.181438,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:53.410289 +AWS,us-west-2,c6in.2xlarge,reserved_3y,no_upfront,0.181438,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:22.571830 +AWS,us-west-2,c6in.2xlarge,reserved_3y,partial_upfront,0.181438,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:23.831848 +AWS,us-west-2,c6in.2xlarge,spot,NA,0.186388,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843394 +AWS,us-west-2,c6in.32xlarge,on_demand,NA,7.2576,USD,AWS Pricing API,2025-11-30T08:53:48.190386 +AWS,us-west-2,c6in.32xlarge,reserved_1y,all_upfront,4.57229,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:19.206541 +AWS,us-west-2,c6in.32xlarge,reserved_1y,no_upfront,4.57229,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:56.925846 +AWS,us-west-2,c6in.32xlarge,reserved_1y,partial_upfront,4.57229,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:46.108065 +AWS,us-west-2,c6in.32xlarge,reserved_3y,all_upfront,4.57229,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:27.457583 +AWS,us-west-2,c6in.32xlarge,reserved_3y,no_upfront,4.57229,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:57.325894 +AWS,us-west-2,c6in.32xlarge,reserved_3y,partial_upfront,4.57229,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:58.750750 +AWS,us-west-2,c6in.32xlarge,spot,NA,2.948591,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844426 +AWS,us-west-2,c6in.4xlarge,on_demand,NA,0.9072,USD,AWS Pricing API,2025-11-30T08:52:47.799440 +AWS,us-west-2,c6in.4xlarge,reserved_1y,all_upfront,1.032763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:19.496444 +AWS,us-west-2,c6in.4xlarge,reserved_1y,no_upfront,1.032763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:56.554512 +AWS,us-west-2,c6in.4xlarge,reserved_1y,partial_upfront,1.032763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:46.516847 +AWS,us-west-2,c6in.4xlarge,reserved_3y,all_upfront,0.344254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:28.002524 +AWS,us-west-2,c6in.4xlarge,reserved_3y,no_upfront,0.344254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:56.591144 +AWS,us-west-2,c6in.4xlarge,reserved_3y,partial_upfront,0.344254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:57.841873 +AWS,us-west-2,c6in.4xlarge,spot,NA,0.406451,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842656 +AWS,us-west-2,c6in.8xlarge,on_demand,NA,1.8144,USD,AWS Pricing API,2025-11-30T08:53:18.031374 +AWS,us-west-2,c6in.8xlarge,reserved_1y,all_upfront,1.226941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:49.450759 +AWS,us-west-2,c6in.8xlarge,reserved_1y,no_upfront,1.226941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:26.818873 +AWS,us-west-2,c6in.8xlarge,reserved_1y,partial_upfront,1.226941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:16.425831 +AWS,us-west-2,c6in.8xlarge,reserved_3y,all_upfront,0.40898,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:57.871043 +AWS,us-west-2,c6in.8xlarge,reserved_3y,no_upfront,0.40898,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:27.112399 +AWS,us-west-2,c6in.8xlarge,reserved_3y,partial_upfront,0.40898,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:28.391622 +AWS,us-west-2,c6in.8xlarge,spot,NA,0.784569,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843549 +AWS,us-west-2,c6in.xlarge,on_demand,NA,0.2268,USD,AWS Pricing API,2025-11-30T08:53:05.731850 +AWS,us-west-2,c6in.xlarge,reserved_1y,all_upfront,0.16432,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:37.252099 +AWS,us-west-2,c6in.xlarge,reserved_1y,no_upfront,0.16432,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:14.499700 +AWS,us-west-2,c6in.xlarge,reserved_1y,partial_upfront,0.16432,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:04.187998 +AWS,us-west-2,c6in.xlarge,reserved_3y,all_upfront,0.16432,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:45.655957 +AWS,us-west-2,c6in.xlarge,reserved_3y,no_upfront,0.16432,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:14.753864 +AWS,us-west-2,c6in.xlarge,reserved_3y,partial_upfront,0.16432,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:15.959604 +AWS,us-west-2,c6in.xlarge,spot,NA,0.095021,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843163 +AWS,us-west-2,c7a.12xlarge,on_demand,NA,2.46336,USD,AWS Pricing API,2025-11-30T08:53:33.191850 +AWS,us-west-2,c7a.12xlarge,reserved_1y,all_upfront,1.66153,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:04.391798 +AWS,us-west-2,c7a.12xlarge,reserved_1y,no_upfront,1.66153,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:41.996694 +AWS,us-west-2,c7a.12xlarge,reserved_1y,partial_upfront,1.66153,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:31.375169 +AWS,us-west-2,c7a.12xlarge,reserved_3y,all_upfront,0.553843,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:12.752013 +AWS,us-west-2,c7a.12xlarge,reserved_3y,no_upfront,0.553843,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:42.252647 +AWS,us-west-2,c7a.12xlarge,reserved_3y,partial_upfront,0.553843,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:43.652986 +AWS,us-west-2,c7a.12xlarge,spot,NA,1.02051,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843961 +AWS,us-west-2,c7a.16xlarge,on_demand,NA,3.28448,USD,AWS Pricing API,2025-11-30T08:53:03.559820 +AWS,us-west-2,c7a.16xlarge,reserved_1y,all_upfront,2.677793,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:35.082871 +AWS,us-west-2,c7a.16xlarge,reserved_1y,no_upfront,2.677793,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:12.323416 +AWS,us-west-2,c7a.16xlarge,reserved_1y,partial_upfront,2.677793,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:02.026798 +AWS,us-west-2,c7a.16xlarge,reserved_3y,all_upfront,1.338904,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:43.496230 +AWS,us-west-2,c7a.16xlarge,reserved_3y,no_upfront,1.338904,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:12.513994 +AWS,us-west-2,c7a.16xlarge,reserved_3y,partial_upfront,1.338904,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:13.734264 +AWS,us-west-2,c7a.16xlarge,spot,NA,1.254977,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843132 +AWS,us-west-2,c7a.24xlarge,on_demand,NA,4.92672,USD,AWS Pricing API,2025-11-30T08:53:43.394845 +AWS,us-west-2,c7a.24xlarge,reserved_1y,all_upfront,3.390814,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:14.459531 +AWS,us-west-2,c7a.24xlarge,reserved_1y,no_upfront,3.390814,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:52.138743 +AWS,us-west-2,c7a.24xlarge,reserved_1y,partial_upfront,3.390814,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:41.373918 +AWS,us-west-2,c7a.24xlarge,reserved_3y,all_upfront,2.260525,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:22.718121 +AWS,us-west-2,c7a.24xlarge,reserved_3y,no_upfront,2.260525,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:52.515083 +AWS,us-west-2,c7a.24xlarge,reserved_3y,partial_upfront,2.260525,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:53.888084 +AWS,us-west-2,c7a.24xlarge,spot,NA,1.986498,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844296 +AWS,us-west-2,c7a.2xlarge,on_demand,NA,0.41056,USD,AWS Pricing API,2025-11-30T08:52:44.665105 +AWS,us-west-2,c7a.2xlarge,reserved_1y,all_upfront,0.258668,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:16.377662 +AWS,us-west-2,c7a.2xlarge,reserved_1y,no_upfront,0.258668,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:53.405496 +AWS,us-west-2,c7a.2xlarge,reserved_1y,partial_upfront,0.258668,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:43.403880 +AWS,us-west-2,c7a.2xlarge,reserved_3y,all_upfront,0.172443,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:24.915981 +AWS,us-west-2,c7a.2xlarge,reserved_3y,no_upfront,0.172443,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:53.448672 +AWS,us-west-2,c7a.2xlarge,reserved_3y,partial_upfront,0.172443,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:54.682641 +AWS,us-west-2,c7a.2xlarge,spot,NA,0.17488,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842535 +AWS,us-west-2,c7a.32xlarge,on_demand,NA,6.56896,USD,AWS Pricing API,2025-11-30T08:53:19.681795 +AWS,us-west-2,c7a.32xlarge,reserved_1y,all_upfront,4.430594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:51.069267 +AWS,us-west-2,c7a.32xlarge,reserved_1y,no_upfront,4.430594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:28.448441 +AWS,us-west-2,c7a.32xlarge,reserved_1y,partial_upfront,4.430594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:18.041295 +AWS,us-west-2,c7a.32xlarge,reserved_3y,all_upfront,1.476865,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:59.486864 +AWS,us-west-2,c7a.32xlarge,reserved_3y,no_upfront,1.476865,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:28.765636 +AWS,us-west-2,c7a.32xlarge,reserved_3y,partial_upfront,1.476865,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:30.049230 +AWS,us-west-2,c7a.32xlarge,spot,NA,2.498729,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843637 +AWS,us-west-2,c7a.48xlarge,on_demand,NA,9.85344,USD,AWS Pricing API,2025-11-30T08:52:39.185839 +AWS,us-west-2,c7a.48xlarge,reserved_1y,all_upfront,6.51805,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:10.966871 +AWS,us-west-2,c7a.48xlarge,reserved_1y,no_upfront,6.51805,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:47.941514 +AWS,us-west-2,c7a.48xlarge,reserved_1y,partial_upfront,6.51805,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:37.989473 +AWS,us-west-2,c7a.48xlarge,reserved_3y,all_upfront,6.51805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:19.505971 +AWS,us-west-2,c7a.48xlarge,reserved_3y,no_upfront,6.51805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:48.043583 +AWS,us-west-2,c7a.48xlarge,reserved_3y,partial_upfront,6.51805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:49.185806 +AWS,us-west-2,c7a.48xlarge,spot,NA,3.540745,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842397 +AWS,us-west-2,c7a.4xlarge,on_demand,NA,0.82112,USD,AWS Pricing API,2025-11-30T08:53:20.788555 +AWS,us-west-2,c7a.4xlarge,reserved_1y,all_upfront,0.59338,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:52.159809 +AWS,us-west-2,c7a.4xlarge,reserved_1y,no_upfront,0.59338,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:29.548947 +AWS,us-west-2,c7a.4xlarge,reserved_1y,partial_upfront,0.59338,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:19.148293 +AWS,us-west-2,c7a.4xlarge,reserved_3y,all_upfront,0.59338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:00.587067 +AWS,us-west-2,c7a.4xlarge,reserved_3y,no_upfront,0.59338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:29.878965 +AWS,us-west-2,c7a.4xlarge,reserved_3y,partial_upfront,0.59338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:31.158044 +AWS,us-west-2,c7a.4xlarge,spot,NA,0.375094,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843595 +AWS,us-west-2,c7a.8xlarge,on_demand,NA,1.64224,USD,AWS Pricing API,2025-11-30T08:52:36.565802 +AWS,us-west-2,c7a.8xlarge,reserved_1y,all_upfront,1.8879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:08.369907 +AWS,us-west-2,c7a.8xlarge,reserved_1y,no_upfront,1.8879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:45.305666 +AWS,us-west-2,c7a.8xlarge,reserved_1y,partial_upfront,1.8879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:35.421781 +AWS,us-west-2,c7a.8xlarge,reserved_3y,all_upfront,0.6293,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:16.951141 +AWS,us-west-2,c7a.8xlarge,reserved_3y,no_upfront,0.6293,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:45.463367 +AWS,us-west-2,c7a.8xlarge,reserved_3y,partial_upfront,0.6293,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:46.523723 +AWS,us-west-2,c7a.8xlarge,spot,NA,0.659935,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842302 +AWS,us-west-2,c7a.xlarge,on_demand,NA,0.20528,USD,AWS Pricing API,2025-11-30T08:53:11.741408 +AWS,us-west-2,c7a.xlarge,reserved_1y,all_upfront,0.13579,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:43.234564 +AWS,us-west-2,c7a.xlarge,reserved_1y,no_upfront,0.13579,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:20.525212 +AWS,us-west-2,c7a.xlarge,reserved_1y,partial_upfront,0.13579,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:10.124244 +AWS,us-west-2,c7a.xlarge,reserved_3y,all_upfront,0.13579,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:51.586027 +AWS,us-west-2,c7a.xlarge,reserved_3y,no_upfront,0.13579,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:20.786115 +AWS,us-west-2,c7a.xlarge,reserved_3y,partial_upfront,0.13579,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:22.034093 +AWS,us-west-2,c7a.xlarge,spot,NA,0.088199,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843375 +AWS,us-west-2,c7g.12xlarge,on_demand,NA,1.74,USD,AWS Pricing API,2025-11-30T08:53:15.837227 +AWS,us-west-2,c7g.12xlarge,reserved_1y,all_upfront,1.559977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:47.282894 +AWS,us-west-2,c7g.12xlarge,reserved_1y,no_upfront,1.559977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:24.626393 +AWS,us-west-2,c7g.12xlarge,reserved_1y,partial_upfront,1.559977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:14.223953 +AWS,us-west-2,c7g.12xlarge,reserved_3y,all_upfront,0.779992,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:55.712429 +AWS,us-west-2,c7g.12xlarge,reserved_3y,no_upfront,0.779992,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:24.919425 +AWS,us-west-2,c7g.12xlarge,reserved_3y,partial_upfront,0.779992,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:26.176091 +AWS,us-west-2,c7g.12xlarge,spot,NA,0.678185,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843472 +AWS,us-west-2,c7g.16xlarge,on_demand,NA,2.32,USD,AWS Pricing API,2025-11-30T08:53:25.599075 +AWS,us-west-2,c7g.16xlarge,reserved_1y,all_upfront,3.057648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:56.873980 +AWS,us-west-2,c7g.16xlarge,reserved_1y,no_upfront,3.057648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:34.417730 +AWS,us-west-2,c7g.16xlarge,reserved_1y,partial_upfront,3.057648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:23.877454 +AWS,us-west-2,c7g.16xlarge,reserved_3y,all_upfront,1.019216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:05.336599 +AWS,us-west-2,c7g.16xlarge,reserved_3y,no_upfront,1.019216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:34.684119 +AWS,us-west-2,c7g.16xlarge,reserved_3y,partial_upfront,1.019216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:35.983992 +AWS,us-west-2,c7g.16xlarge,spot,NA,0.85283,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843759 +AWS,us-west-2,c7g.2xlarge,on_demand,NA,0.29,USD,AWS Pricing API,2025-11-30T08:53:44.627408 +AWS,us-west-2,c7g.2xlarge,reserved_1y,all_upfront,0.178311,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:15.688378 +AWS,us-west-2,c7g.2xlarge,reserved_1y,no_upfront,0.178311,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:53.365592 +AWS,us-west-2,c7g.2xlarge,reserved_1y,partial_upfront,0.178311,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:42.588000 +AWS,us-west-2,c7g.2xlarge,reserved_3y,all_upfront,0.059437,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:23.938345 +AWS,us-west-2,c7g.2xlarge,reserved_3y,no_upfront,0.059437,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:53.755660 +AWS,us-west-2,c7g.2xlarge,reserved_3y,partial_upfront,0.059437,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:55.148064 +AWS,us-west-2,c7g.2xlarge,spot,NA,0.122396,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844319 +AWS,us-west-2,c7g.4xlarge,on_demand,NA,0.58,USD,AWS Pricing API,2025-11-30T08:53:00.942182 +AWS,us-west-2,c7g.4xlarge,reserved_1y,all_upfront,0.363963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:32.509854 +AWS,us-west-2,c7g.4xlarge,reserved_1y,no_upfront,0.363963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:09.744597 +AWS,us-west-2,c7g.4xlarge,reserved_1y,partial_upfront,0.363963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:59.450196 +AWS,us-west-2,c7g.4xlarge,reserved_3y,all_upfront,0.242654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:40.944947 +AWS,us-west-2,c7g.4xlarge,reserved_3y,no_upfront,0.242654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:09.899123 +AWS,us-west-2,c7g.4xlarge,reserved_3y,partial_upfront,0.242654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:11.110910 +AWS,us-west-2,c7g.4xlarge,spot,NA,0.226419,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843038 +AWS,us-west-2,c7g.8xlarge,on_demand,NA,1.16,USD,AWS Pricing API,2025-11-30T08:53:12.013057 +AWS,us-west-2,c7g.8xlarge,reserved_1y,all_upfront,0.71347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:43.508173 +AWS,us-west-2,c7g.8xlarge,reserved_1y,no_upfront,0.71347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:20.802621 +AWS,us-west-2,c7g.8xlarge,reserved_1y,partial_upfront,0.71347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:10.398350 +AWS,us-west-2,c7g.8xlarge,reserved_3y,all_upfront,0.237823,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:51.934236 +AWS,us-west-2,c7g.8xlarge,reserved_3y,no_upfront,0.237823,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:21.063018 +AWS,us-west-2,c7g.8xlarge,reserved_3y,partial_upfront,0.237823,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:22.310954 +AWS,us-west-2,c7g.8xlarge,spot,NA,0.506153,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843367 +AWS,us-west-2,c7g.xlarge,on_demand,NA,0.145,USD,AWS Pricing API,2025-11-30T08:52:59.018314 +AWS,us-west-2,c7g.xlarge,reserved_1y,all_upfront,0.097032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:30.609505 +AWS,us-west-2,c7g.xlarge,reserved_1y,no_upfront,0.097032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:07.835148 +AWS,us-west-2,c7g.xlarge,reserved_1y,partial_upfront,0.097032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:57.552479 +AWS,us-west-2,c7g.xlarge,reserved_3y,all_upfront,0.032344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:39.056150 +AWS,us-west-2,c7g.xlarge,reserved_3y,no_upfront,0.032344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:07.960621 +AWS,us-west-2,c7g.xlarge,reserved_3y,partial_upfront,0.032344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:09.168900 +AWS,us-west-2,c7g.xlarge,spot,NA,0.068493,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842970 +AWS,us-west-2,c7gd.12xlarge,on_demand,NA,2.1773,USD,AWS Pricing API,2025-11-30T08:53:09.965774 +AWS,us-west-2,c7gd.12xlarge,reserved_1y,all_upfront,1.3721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:41.479929 +AWS,us-west-2,c7gd.12xlarge,reserved_1y,no_upfront,1.3721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:18.749244 +AWS,us-west-2,c7gd.12xlarge,reserved_1y,partial_upfront,1.3721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:08.370986 +AWS,us-west-2,c7gd.12xlarge,reserved_3y,all_upfront,1.3721,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:49.821940 +AWS,us-west-2,c7gd.12xlarge,reserved_3y,no_upfront,1.3721,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:19.006752 +AWS,us-west-2,c7gd.12xlarge,reserved_3y,partial_upfront,1.3721,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:20.244840 +AWS,us-west-2,c7gd.12xlarge,spot,NA,0.822282,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843276 +AWS,us-west-2,c7gd.16xlarge,on_demand,NA,2.903,USD,AWS Pricing API,2025-11-30T08:52:55.867756 +AWS,us-west-2,c7gd.16xlarge,reserved_1y,all_upfront,1.955936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:27.509651 +AWS,us-west-2,c7gd.16xlarge,reserved_1y,no_upfront,1.955936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:04.631699 +AWS,us-west-2,c7gd.16xlarge,reserved_1y,partial_upfront,1.955936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:54.462776 +AWS,us-west-2,c7gd.16xlarge,reserved_3y,all_upfront,0.651979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:35.964178 +AWS,us-west-2,c7gd.16xlarge,reserved_3y,no_upfront,0.651979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:04.809858 +AWS,us-west-2,c7gd.16xlarge,reserved_3y,partial_upfront,0.651979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:06.007151 +AWS,us-west-2,c7gd.16xlarge,spot,NA,1.059604,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842880 +AWS,us-west-2,c7gd.2xlarge,on_demand,NA,0.3629,USD,AWS Pricing API,2025-11-30T08:53:25.461878 +AWS,us-west-2,c7gd.2xlarge,reserved_1y,all_upfront,0.21347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:56.739041 +AWS,us-west-2,c7gd.2xlarge,reserved_1y,no_upfront,0.21347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:34.273255 +AWS,us-west-2,c7gd.2xlarge,reserved_1y,partial_upfront,0.21347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:23.743902 +AWS,us-west-2,c7gd.2xlarge,reserved_3y,all_upfront,0.071157,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:05.197256 +AWS,us-west-2,c7gd.2xlarge,reserved_3y,no_upfront,0.071157,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:34.546643 +AWS,us-west-2,c7gd.2xlarge,reserved_3y,partial_upfront,0.071157,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:35.847193 +AWS,us-west-2,c7gd.2xlarge,spot,NA,0.135261,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843783 +AWS,us-west-2,c7gd.4xlarge,on_demand,NA,0.7258,USD,AWS Pricing API,2025-11-30T08:53:12.695680 +AWS,us-west-2,c7gd.4xlarge,reserved_1y,all_upfront,0.3511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:44.178416 +AWS,us-west-2,c7gd.4xlarge,reserved_1y,no_upfront,0.3511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:21.487063 +AWS,us-west-2,c7gd.4xlarge,reserved_1y,partial_upfront,0.3511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:11.089652 +AWS,us-west-2,c7gd.4xlarge,reserved_3y,all_upfront,0.3511,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:52.605830 +AWS,us-west-2,c7gd.4xlarge,reserved_3y,no_upfront,0.3511,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:21.744858 +AWS,us-west-2,c7gd.4xlarge,reserved_3y,partial_upfront,0.3511,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:23.009426 +AWS,us-west-2,c7gd.4xlarge,spot,NA,0.296014,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843387 +AWS,us-west-2,c7gd.8xlarge,on_demand,NA,1.4515,USD,AWS Pricing API,2025-11-30T08:53:04.242802 +AWS,us-west-2,c7gd.8xlarge,reserved_1y,all_upfront,1.583676,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:35.753284 +AWS,us-west-2,c7gd.8xlarge,reserved_1y,no_upfront,1.583676,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:12.998998 +AWS,us-west-2,c7gd.8xlarge,reserved_1y,partial_upfront,1.583676,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:02.706525 +AWS,us-west-2,c7gd.8xlarge,reserved_3y,all_upfront,0.527892,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:44.166610 +AWS,us-west-2,c7gd.8xlarge,reserved_3y,no_upfront,0.527892,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:13.215108 +AWS,us-west-2,c7gd.8xlarge,reserved_3y,partial_upfront,0.527892,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:14.441407 +AWS,us-west-2,c7gd.8xlarge,spot,NA,0.610771,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843116 +AWS,us-west-2,c7gd.xlarge,on_demand,NA,0.1814,USD,AWS Pricing API,2025-11-30T08:53:43.945508 +AWS,us-west-2,c7gd.xlarge,reserved_1y,all_upfront,0.106735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:14.995010 +AWS,us-west-2,c7gd.xlarge,reserved_1y,no_upfront,0.106735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:52.679797 +AWS,us-west-2,c7gd.xlarge,reserved_1y,partial_upfront,0.106735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:41.909055 +AWS,us-west-2,c7gd.xlarge,reserved_3y,all_upfront,0.035578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:23.266576 +AWS,us-west-2,c7gd.xlarge,reserved_3y,no_upfront,0.035578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:53.066789 +AWS,us-west-2,c7gd.xlarge,reserved_3y,partial_upfront,0.035578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:54.435670 +AWS,us-west-2,c7gd.xlarge,spot,NA,0.078447,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844300 +AWS,us-west-2,c7i.12xlarge,on_demand,NA,2.142,USD,AWS Pricing API,2025-11-30T08:53:04.514622 +AWS,us-west-2,c7i.12xlarge,reserved_1y,all_upfront,1.746407,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:36.032272 +AWS,us-west-2,c7i.12xlarge,reserved_1y,no_upfront,1.746407,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:13.273848 +AWS,us-west-2,c7i.12xlarge,reserved_1y,partial_upfront,1.746407,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:02.977163 +AWS,us-west-2,c7i.12xlarge,reserved_3y,all_upfront,0.873196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:44.434620 +AWS,us-west-2,c7i.12xlarge,reserved_3y,no_upfront,0.873196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:13.492456 +AWS,us-west-2,c7i.12xlarge,reserved_3y,partial_upfront,0.873196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:14.716486 +AWS,us-west-2,c7i.12xlarge,spot,NA,0.818762,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843124 +AWS,us-west-2,c7i.16xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T08:53:42.164604 +AWS,us-west-2,c7i.16xlarge,reserved_1y,all_upfront,2.328467,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:13.243550 +AWS,us-west-2,c7i.16xlarge,reserved_1y,no_upfront,2.328467,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:50.911326 +AWS,us-west-2,c7i.16xlarge,reserved_1y,partial_upfront,2.328467,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:40.133376 +AWS,us-west-2,c7i.16xlarge,reserved_3y,all_upfront,1.164236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:21.494926 +AWS,us-west-2,c7i.16xlarge,reserved_3y,no_upfront,1.164236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:51.263631 +AWS,us-west-2,c7i.16xlarge,reserved_3y,partial_upfront,1.164236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:52.647912 +AWS,us-west-2,c7i.16xlarge,spot,NA,1.131107,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844242 +AWS,us-west-2,c7i.24xlarge,on_demand,NA,4.284,USD,AWS Pricing API,2025-11-30T08:53:15.431094 +AWS,us-west-2,c7i.24xlarge,reserved_1y,all_upfront,3.492711,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:46.876598 +AWS,us-west-2,c7i.24xlarge,reserved_1y,no_upfront,3.492711,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:24.212212 +AWS,us-west-2,c7i.24xlarge,reserved_1y,partial_upfront,3.492711,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:13.807738 +AWS,us-west-2,c7i.24xlarge,reserved_3y,all_upfront,1.746364,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:55.310482 +AWS,us-west-2,c7i.24xlarge,reserved_3y,no_upfront,1.746364,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:24.507854 +AWS,us-west-2,c7i.24xlarge,reserved_3y,partial_upfront,1.746364,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:25.765358 +AWS,us-west-2,c7i.24xlarge,spot,NA,1.635823,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843445 +AWS,us-west-2,c7i.2xlarge,on_demand,NA,0.357,USD,AWS Pricing API,2025-11-30T08:53:30.322207 +AWS,us-west-2,c7i.2xlarge,reserved_1y,all_upfront,0.291035,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:01.530705 +AWS,us-west-2,c7i.2xlarge,reserved_1y,no_upfront,0.291035,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:39.149981 +AWS,us-west-2,c7i.2xlarge,reserved_1y,partial_upfront,0.291035,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:28.480176 +AWS,us-west-2,c7i.2xlarge,reserved_3y,all_upfront,0.145525,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:09.944193 +AWS,us-west-2,c7i.2xlarge,reserved_3y,no_upfront,0.145525,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:39.362410 +AWS,us-west-2,c7i.2xlarge,reserved_3y,partial_upfront,0.145525,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:40.734567 +AWS,us-west-2,c7i.2xlarge,spot,NA,0.14711,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843891 +AWS,us-west-2,c7i.48xlarge,on_demand,NA,8.568,USD,AWS Pricing API,2025-11-30T08:52:57.920140 +AWS,us-west-2,c7i.48xlarge,reserved_1y,all_upfront,5.397893,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:29.527306 +AWS,us-west-2,c7i.48xlarge,reserved_1y,no_upfront,5.397893,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:06.682546 +AWS,us-west-2,c7i.48xlarge,reserved_1y,partial_upfront,5.397893,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:56.478094 +AWS,us-west-2,c7i.48xlarge,reserved_3y,all_upfront,3.598578,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:37.983381 +AWS,us-west-2,c7i.48xlarge,reserved_3y,no_upfront,3.598578,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:06.869873 +AWS,us-west-2,c7i.48xlarge,reserved_3y,partial_upfront,3.598578,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:08.072065 +AWS,us-west-2,c7i.48xlarge,spot,NA,3.591052,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842966 +AWS,us-west-2,c7i.4xlarge,on_demand,NA,0.714,USD,AWS Pricing API,2025-11-30T08:53:11.058275 +AWS,us-west-2,c7i.4xlarge,reserved_1y,all_upfront,0.491362,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:42.558661 +AWS,us-west-2,c7i.4xlarge,reserved_1y,no_upfront,0.491362,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:19.838886 +AWS,us-west-2,c7i.4xlarge,reserved_1y,partial_upfront,0.491362,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:09.445921 +AWS,us-west-2,c7i.4xlarge,reserved_3y,all_upfront,0.327587,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:50.904983 +AWS,us-west-2,c7i.4xlarge,reserved_3y,no_upfront,0.327587,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:20.105030 +AWS,us-west-2,c7i.4xlarge,reserved_3y,partial_upfront,0.327587,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:21.351293 +AWS,us-west-2,c7i.4xlarge,spot,NA,0.303976,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843333 +AWS,us-west-2,c7i.8xlarge,on_demand,NA,1.428,USD,AWS Pricing API,2025-11-30T08:52:42.733972 +AWS,us-west-2,c7i.8xlarge,reserved_1y,all_upfront,0.94462,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:14.492377 +AWS,us-west-2,c7i.8xlarge,reserved_1y,no_upfront,0.94462,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:51.496015 +AWS,us-west-2,c7i.8xlarge,reserved_1y,partial_upfront,0.94462,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:41.518486 +AWS,us-west-2,c7i.8xlarge,reserved_3y,all_upfront,0.94462,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:23.018135 +AWS,us-west-2,c7i.8xlarge,reserved_3y,no_upfront,0.94462,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:51.563015 +AWS,us-west-2,c7i.8xlarge,reserved_3y,partial_upfront,0.94462,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:52.765842 +AWS,us-west-2,c7i.8xlarge,spot,NA,0.574639,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842507 +AWS,us-west-2,c7i.large,on_demand,NA,0.08925,USD,AWS Pricing API,2025-11-30T08:53:29.782159 +AWS,us-west-2,c7i.large,reserved_1y,all_upfront,0.056192,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:00.981403 +AWS,us-west-2,c7i.large,reserved_1y,no_upfront,0.056192,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:38.599486 +AWS,us-west-2,c7i.large,reserved_1y,partial_upfront,0.056192,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:27.947837 +AWS,us-west-2,c7i.large,reserved_3y,all_upfront,0.037471,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:09.408439 +AWS,us-west-2,c7i.large,reserved_3y,no_upfront,0.037471,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:38.811066 +AWS,us-west-2,c7i.large,reserved_3y,partial_upfront,0.037471,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:40.182499 +AWS,us-west-2,c7i.large,spot,NA,0.035148,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843887 +AWS,us-west-2,c7i.metal-24xl,on_demand,NA,4.284,USD,AWS Pricing API,2025-11-30T08:52:58.739992 +AWS,us-west-2,c7i.metal-24xl,reserved_1y,all_upfront,3.09584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:30.340265 +AWS,us-west-2,c7i.metal-24xl,reserved_1y,no_upfront,3.09584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:07.566155 +AWS,us-west-2,c7i.metal-24xl,reserved_1y,partial_upfront,3.09584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:57.283301 +AWS,us-west-2,c7i.metal-24xl,reserved_3y,all_upfront,3.09584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:38.779630 +AWS,us-west-2,c7i.metal-24xl,reserved_3y,no_upfront,3.09584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:07.684691 +AWS,us-west-2,c7i.metal-24xl,reserved_3y,partial_upfront,3.09584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:08.891984 +AWS,us-west-2,c7i.metal-24xl,spot,NA,1.542171,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842945 +AWS,us-west-2,c7i.metal-48xl,on_demand,NA,8.568,USD,AWS Pricing API,2025-11-30T08:52:46.847728 +AWS,us-west-2,c7i.metal-48xl,reserved_1y,all_upfront,11.261416,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:18.536826 +AWS,us-west-2,c7i.metal-48xl,reserved_1y,no_upfront,11.261416,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:55.609546 +AWS,us-west-2,c7i.metal-48xl,reserved_1y,partial_upfront,11.261416,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:45.567161 +AWS,us-west-2,c7i.metal-48xl,reserved_3y,all_upfront,3.753805,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:27.064526 +AWS,us-west-2,c7i.metal-48xl,reserved_3y,no_upfront,3.753805,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:55.643775 +AWS,us-west-2,c7i.metal-48xl,reserved_3y,partial_upfront,3.753805,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:56.879622 +AWS,us-west-2,c7i.metal-48xl,spot,NA,2.98582,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842643 +AWS,us-west-2,c7i.xlarge,on_demand,NA,0.1785,USD,AWS Pricing API,2025-11-30T08:53:41.186337 +AWS,us-west-2,c7i.xlarge,reserved_1y,all_upfront,0.11808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:12.299202 +AWS,us-west-2,c7i.xlarge,reserved_1y,no_upfront,0.11808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:49.960869 +AWS,us-west-2,c7i.xlarge,reserved_1y,partial_upfront,0.11808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:39.187288 +AWS,us-west-2,c7i.xlarge,reserved_3y,all_upfront,0.11808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:20.552653 +AWS,us-west-2,c7i.xlarge,reserved_3y,no_upfront,0.11808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:50.299342 +AWS,us-west-2,c7i.xlarge,reserved_3y,partial_upfront,0.11808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:51.688287 +AWS,us-west-2,c7i.xlarge,spot,NA,0.074222,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844214 +AWS,us-west-2,c8g.12xlarge,on_demand,NA,1.91424,USD,AWS Pricing API,2025-11-30T08:53:38.722254 +AWS,us-west-2,c8g.12xlarge,reserved_1y,all_upfront,1.557829,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:09.862009 +AWS,us-west-2,c8g.12xlarge,reserved_1y,no_upfront,1.557829,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:47.496090 +AWS,us-west-2,c8g.12xlarge,reserved_1y,partial_upfront,1.557829,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:36.768721 +AWS,us-west-2,c8g.12xlarge,reserved_3y,all_upfront,0.77891,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:18.148649 +AWS,us-west-2,c8g.12xlarge,reserved_3y,no_upfront,0.77891,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:47.813873 +AWS,us-west-2,c8g.12xlarge,reserved_3y,partial_upfront,0.77891,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:49.204976 +AWS,us-west-2,c8g.12xlarge,spot,NA,0.736519,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844129 +AWS,us-west-2,c8g.16xlarge,on_demand,NA,2.55232,USD,AWS Pricing API,2025-11-30T08:52:41.642031 +AWS,us-west-2,c8g.16xlarge,reserved_1y,all_upfront,1.82975,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:13.407033 +AWS,us-west-2,c8g.16xlarge,reserved_1y,no_upfront,1.82975,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:50.397637 +AWS,us-west-2,c8g.16xlarge,reserved_1y,partial_upfront,1.82975,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:40.438870 +AWS,us-west-2,c8g.16xlarge,reserved_3y,all_upfront,1.82975,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:21.948895 +AWS,us-west-2,c8g.16xlarge,reserved_3y,no_upfront,1.82975,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:50.457414 +AWS,us-west-2,c8g.16xlarge,reserved_3y,partial_upfront,1.82975,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:51.664465 +AWS,us-west-2,c8g.16xlarge,spot,NA,0.950978,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842487 +AWS,us-west-2,c8g.24xlarge,on_demand,NA,3.82848,USD,AWS Pricing API,2025-11-30T08:53:28.528108 +AWS,us-west-2,c8g.24xlarge,reserved_1y,all_upfront,2.74463,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:59.741440 +AWS,us-west-2,c8g.24xlarge,reserved_1y,no_upfront,2.74463,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:37.347033 +AWS,us-west-2,c8g.24xlarge,reserved_1y,partial_upfront,2.74463,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:26.725084 +AWS,us-west-2,c8g.24xlarge,reserved_3y,all_upfront,2.74463,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:08.185427 +AWS,us-west-2,c8g.24xlarge,reserved_3y,no_upfront,2.74463,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:37.579097 +AWS,us-west-2,c8g.24xlarge,reserved_3y,partial_upfront,2.74463,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:38.933580 +AWS,us-west-2,c8g.24xlarge,spot,NA,1.423318,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843845 +AWS,us-west-2,c8g.2xlarge,on_demand,NA,0.31904,USD,AWS Pricing API,2025-11-30T08:52:53.821030 +AWS,us-west-2,c8g.2xlarge,reserved_1y,all_upfront,0.22872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:25.480813 +AWS,us-west-2,c8g.2xlarge,reserved_1y,no_upfront,0.22872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:02.580344 +AWS,us-west-2,c8g.2xlarge,reserved_1y,partial_upfront,0.22872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:52.443047 +AWS,us-west-2,c8g.2xlarge,reserved_3y,all_upfront,0.22872,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:33.927885 +AWS,us-west-2,c8g.2xlarge,reserved_3y,no_upfront,0.22872,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:02.733185 +AWS,us-west-2,c8g.2xlarge,reserved_3y,partial_upfront,0.22872,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:03.937765 +AWS,us-west-2,c8g.2xlarge,spot,NA,0.1241,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842861 +AWS,us-west-2,c8g.48xlarge,on_demand,NA,7.65696,USD,AWS Pricing API,2025-11-30T08:53:47.644815 +AWS,us-west-2,c8g.48xlarge,reserved_1y,all_upfront,10.091324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:18.665436 +AWS,us-west-2,c8g.48xlarge,reserved_1y,no_upfront,10.091324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:56.377736 +AWS,us-west-2,c8g.48xlarge,reserved_1y,partial_upfront,10.091324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:45.567762 +AWS,us-west-2,c8g.48xlarge,reserved_3y,all_upfront,3.363775,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:26.909244 +AWS,us-west-2,c8g.48xlarge,reserved_3y,no_upfront,3.363775,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:56.781022 +AWS,us-west-2,c8g.48xlarge,reserved_3y,partial_upfront,3.363775,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:58.190073 +AWS,us-west-2,c8g.48xlarge,spot,NA,2.77016,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844414 +AWS,us-west-2,c8g.4xlarge,on_demand,NA,0.63808,USD,AWS Pricing API,2025-11-30T08:52:56.273660 +AWS,us-west-2,c8g.4xlarge,reserved_1y,all_upfront,0.519318,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:27.915538 +AWS,us-west-2,c8g.4xlarge,reserved_1y,no_upfront,0.519318,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:05.046649 +AWS,us-west-2,c8g.4xlarge,reserved_1y,partial_upfront,0.519318,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:54.863492 +AWS,us-west-2,c8g.4xlarge,reserved_3y,all_upfront,0.259653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:36.366163 +AWS,us-west-2,c8g.4xlarge,reserved_3y,no_upfront,0.259653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:05.227706 +AWS,us-west-2,c8g.4xlarge,reserved_3y,partial_upfront,0.259653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:06.419733 +AWS,us-west-2,c8g.4xlarge,spot,NA,0.257563,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842884 +AWS,us-west-2,c8g.8xlarge,on_demand,NA,1.27616,USD,AWS Pricing API,2025-11-30T08:52:59.841070 +AWS,us-west-2,c8g.8xlarge,reserved_1y,all_upfront,0.871266,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:31.416654 +AWS,us-west-2,c8g.8xlarge,reserved_1y,no_upfront,0.871266,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:08.655866 +AWS,us-west-2,c8g.8xlarge,reserved_1y,partial_upfront,0.871266,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:58.363864 +AWS,us-west-2,c8g.8xlarge,reserved_3y,all_upfront,0.580855,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:39.870494 +AWS,us-west-2,c8g.8xlarge,reserved_3y,no_upfront,0.580855,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:08.787076 +AWS,us-west-2,c8g.8xlarge,reserved_3y,partial_upfront,0.580855,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:09.995358 +AWS,us-west-2,c8g.8xlarge,spot,NA,0.612847,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843019 +AWS,us-west-2,c8g.large,on_demand,NA,0.07976,USD,AWS Pricing API,2025-11-30T08:53:41.877189 +AWS,us-west-2,c8g.large,reserved_1y,all_upfront,0.053425,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:12.967513 +AWS,us-west-2,c8g.large,reserved_1y,no_upfront,0.053425,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:50.639601 +AWS,us-west-2,c8g.large,reserved_1y,partial_upfront,0.053425,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:39.858543 +AWS,us-west-2,c8g.large,reserved_3y,all_upfront,0.017808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:21.223243 +AWS,us-west-2,c8g.large,reserved_3y,no_upfront,0.017808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:50.990885 +AWS,us-west-2,c8g.large,reserved_3y,partial_upfront,0.017808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:52.373337 +AWS,us-west-2,c8g.large,spot,NA,0.033132,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844265 +AWS,us-west-2,c8g.medium,on_demand,NA,0.03988,USD,AWS Pricing API,2025-11-30T08:53:26.314709 +AWS,us-west-2,c8g.medium,reserved_1y,all_upfront,0.024543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:57.559405 +AWS,us-west-2,c8g.medium,reserved_1y,no_upfront,0.024543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:35.107565 +AWS,us-west-2,c8g.medium,reserved_1y,partial_upfront,0.024543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:24.559839 +AWS,us-west-2,c8g.medium,reserved_3y,all_upfront,0.008181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:06.004089 +AWS,us-west-2,c8g.medium,reserved_3y,no_upfront,0.008181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:35.371381 +AWS,us-west-2,c8g.medium,reserved_3y,partial_upfront,0.008181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:36.692270 +AWS,us-west-2,c8g.medium,spot,NA,0.014428,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843794 +AWS,us-west-2,c8g.xlarge,on_demand,NA,0.15952,USD,AWS Pricing API,2025-11-30T08:52:49.976256 +AWS,us-west-2,c8g.xlarge,reserved_1y,all_upfront,0.11436,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:21.660028 +AWS,us-west-2,c8g.xlarge,reserved_1y,no_upfront,0.11436,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:58.741621 +AWS,us-west-2,c8g.xlarge,reserved_1y,partial_upfront,0.11436,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:48.677661 +AWS,us-west-2,c8g.xlarge,reserved_3y,all_upfront,0.11436,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:30.147890 +AWS,us-west-2,c8g.xlarge,reserved_3y,no_upfront,0.11436,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:58.751491 +AWS,us-west-2,c8g.xlarge,reserved_3y,partial_upfront,0.11436,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:00.056979 +AWS,us-west-2,c8g.xlarge,spot,NA,0.067759,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842737 +AWS,us-west-2,c8gd.12xlarge,on_demand,NA,2.35152,USD,AWS Pricing API,2025-11-30T08:53:23.926220 +AWS,us-west-2,c8gd.12xlarge,spot,NA,0.9104,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843755 +AWS,us-west-2,c8gd.16xlarge,on_demand,NA,3.13536,USD,AWS Pricing API,2025-11-30T08:53:48.465807 +AWS,us-west-2,c8gd.16xlarge,spot,NA,1.143027,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844407 +AWS,us-west-2,c8gd.24xlarge,on_demand,NA,4.70304,USD,AWS Pricing API,2025-11-30T08:53:34.749830 +AWS,us-west-2,c8gd.24xlarge,spot,NA,1.82921,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844020 +AWS,us-west-2,c8gd.2xlarge,on_demand,NA,0.39192,USD,AWS Pricing API,2025-11-30T08:53:18.579205 +AWS,us-west-2,c8gd.2xlarge,spot,NA,0.145507,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843580 +AWS,us-west-2,c8gd.48xlarge,on_demand,NA,9.40608,USD,AWS Pricing API,2025-11-30T08:53:06.277153 +AWS,us-west-2,c8gd.48xlarge,spot,NA,3.400422,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843214 +AWS,us-west-2,c8gd.4xlarge,on_demand,NA,0.78384,USD,AWS Pricing API,2025-11-30T08:52:51.485152 +AWS,us-west-2,c8gd.4xlarge,spot,NA,0.33578,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842746 +AWS,us-west-2,c8gd.8xlarge,on_demand,NA,1.56768,USD,AWS Pricing API,2025-11-30T08:53:14.192097 +AWS,us-west-2,c8gd.8xlarge,spot,NA,0.737632,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843441 +AWS,us-west-2,c8gd.large,on_demand,NA,0.09798,USD,AWS Pricing API,2025-11-30T08:53:40.216251 +AWS,us-west-2,c8gd.large,spot,NA,0.039807,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844163 +AWS,us-west-2,c8gd.xlarge,on_demand,NA,0.19596,USD,AWS Pricing API,2025-11-30T08:53:02.459703 +AWS,us-west-2,c8gd.xlarge,spot,NA,0.091562,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843073 +AWS,us-west-2,d3.2xlarge,on_demand,NA,0.999,USD,AWS Pricing API,2025-11-30T08:53:16.109436 +AWS,us-west-2,d3.2xlarge,reserved_1y,all_upfront,0.629,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:47.553344 +AWS,us-west-2,d3.2xlarge,reserved_1y,no_upfront,0.629,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:24.898689 +AWS,us-west-2,d3.2xlarge,reserved_1y,partial_upfront,0.629,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:14.491756 +AWS,us-west-2,d3.2xlarge,reserved_3y,all_upfront,0.629,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:55.978699 +AWS,us-west-2,d3.2xlarge,reserved_3y,no_upfront,0.629,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:25.190636 +AWS,us-west-2,d3.2xlarge,reserved_3y,partial_upfront,0.629,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:26.449514 +AWS,us-west-2,d3.2xlarge,spot,NA,0.409828,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843488 +AWS,us-west-2,d3.4xlarge,on_demand,NA,1.998,USD,AWS Pricing API,2025-11-30T08:53:43.535428 +AWS,us-west-2,d3.4xlarge,reserved_1y,all_upfront,1.259,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:14.594404 +AWS,us-west-2,d3.4xlarge,reserved_1y,no_upfront,1.259,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:52.274857 +AWS,us-west-2,d3.4xlarge,reserved_1y,partial_upfront,1.259,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:41.506790 +AWS,us-west-2,d3.4xlarge,reserved_3y,all_upfront,1.259,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:22.862083 +AWS,us-west-2,d3.4xlarge,reserved_3y,no_upfront,1.259,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:52.652906 +AWS,us-west-2,d3.4xlarge,reserved_3y,partial_upfront,1.259,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:54.024927 +AWS,us-west-2,d3.4xlarge,spot,NA,0.749526,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844292 +AWS,us-west-2,d3.8xlarge,on_demand,NA,3.99552,USD,AWS Pricing API,2025-11-30T08:52:46.303845 +AWS,us-west-2,d3.8xlarge,reserved_1y,all_upfront,2.39729,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:17.998985 +AWS,us-west-2,d3.8xlarge,reserved_1y,no_upfront,2.39729,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:55.062136 +AWS,us-west-2,d3.8xlarge,reserved_1y,partial_upfront,2.39729,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:45.029548 +AWS,us-west-2,d3.8xlarge,reserved_3y,all_upfront,1.598203,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:26.526495 +AWS,us-west-2,d3.8xlarge,reserved_3y,no_upfront,1.598203,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:55.075367 +AWS,us-west-2,d3.8xlarge,reserved_3y,partial_upfront,1.598203,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:56.327711 +AWS,us-west-2,d3.8xlarge,spot,NA,1.501259,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842604 +AWS,us-west-2,d3.xlarge,on_demand,NA,0.499,USD,AWS Pricing API,2025-11-30T08:52:43.708762 +AWS,us-west-2,d3.xlarge,reserved_1y,all_upfront,0.479589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:15.432577 +AWS,us-west-2,d3.xlarge,reserved_1y,no_upfront,0.479589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:52.447651 +AWS,us-west-2,d3.xlarge,reserved_1y,partial_upfront,0.479589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:42.469404 +AWS,us-west-2,d3.xlarge,reserved_3y,all_upfront,0.239863,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:23.967022 +AWS,us-west-2,d3.xlarge,reserved_3y,no_upfront,0.239863,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:52.500944 +AWS,us-west-2,d3.xlarge,reserved_3y,partial_upfront,0.239863,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:53.715057 +AWS,us-west-2,d3.xlarge,spot,NA,0.199874,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842527 +AWS,us-west-2,d3en.12xlarge,on_demand,NA,6.30864,USD,AWS Pricing API,2025-11-30T08:53:36.134604 +AWS,us-west-2,d3en.12xlarge,reserved_1y,all_upfront,3.2704,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:07.222099 +AWS,us-west-2,d3en.12xlarge,reserved_1y,no_upfront,3.2704,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:44.874162 +AWS,us-west-2,d3en.12xlarge,reserved_1y,partial_upfront,3.2704,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:34.214091 +AWS,us-west-2,d3en.12xlarge,reserved_3y,all_upfront,3.2704,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:15.604275 +AWS,us-west-2,d3en.12xlarge,reserved_3y,no_upfront,3.2704,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:45.175313 +AWS,us-west-2,d3en.12xlarge,reserved_3y,partial_upfront,3.2704,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:46.562319 +AWS,us-west-2,d3en.12xlarge,spot,NA,2.747037,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844051 +AWS,us-west-2,d3en.2xlarge,on_demand,NA,1.051,USD,AWS Pricing API,2025-11-30T08:53:14.881272 +AWS,us-west-2,d3en.2xlarge,reserved_1y,all_upfront,0.840822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:46.335665 +AWS,us-west-2,d3en.2xlarge,reserved_1y,no_upfront,0.840822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:23.665285 +AWS,us-west-2,d3en.2xlarge,reserved_1y,partial_upfront,0.840822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:13.273237 +AWS,us-west-2,d3en.2xlarge,reserved_3y,all_upfront,0.420274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:54.767399 +AWS,us-west-2,d3en.2xlarge,reserved_3y,no_upfront,0.420274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:23.960152 +AWS,us-west-2,d3en.2xlarge,reserved_3y,partial_upfront,0.420274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:25.209838 +AWS,us-west-2,d3en.2xlarge,spot,NA,0.383411,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843453 +AWS,us-west-2,d3en.4xlarge,on_demand,NA,2.103,USD,AWS Pricing API,2025-11-30T08:53:22.426945 +AWS,us-west-2,d3en.4xlarge,reserved_1y,all_upfront,1.09,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:53.777092 +AWS,us-west-2,d3en.4xlarge,reserved_1y,no_upfront,1.09,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:31.215101 +AWS,us-west-2,d3en.4xlarge,reserved_1y,partial_upfront,1.09,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:20.778327 +AWS,us-west-2,d3en.4xlarge,reserved_3y,all_upfront,1.09,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:02.231694 +AWS,us-west-2,d3en.4xlarge,reserved_3y,no_upfront,1.09,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:31.526558 +AWS,us-west-2,d3en.4xlarge,reserved_3y,partial_upfront,1.09,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:32.818379 +AWS,us-west-2,d3en.4xlarge,spot,NA,0.795076,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843681 +AWS,us-west-2,d3en.6xlarge,on_demand,NA,3.154,USD,AWS Pricing API,2025-11-30T08:53:48.876802 +AWS,us-west-2,d3en.6xlarge,reserved_1y,all_upfront,1.892347,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:19.874020 +AWS,us-west-2,d3en.6xlarge,reserved_1y,no_upfront,1.892347,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:57.601448 +AWS,us-west-2,d3en.6xlarge,reserved_1y,partial_upfront,1.892347,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:46.774893 +AWS,us-west-2,d3en.6xlarge,reserved_3y,all_upfront,1.261449,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:28.123525 +AWS,us-west-2,d3en.6xlarge,reserved_3y,no_upfront,1.261449,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:58.015214 +AWS,us-west-2,d3en.6xlarge,reserved_3y,partial_upfront,1.261449,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:59.436699 +AWS,us-west-2,d3en.6xlarge,spot,NA,1.19742,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844441 +AWS,us-west-2,d3en.8xlarge,on_demand,NA,4.20576,USD,AWS Pricing API,2025-11-30T08:53:44.215802 +AWS,us-west-2,d3en.8xlarge,reserved_1y,all_upfront,2.96758,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:15.267895 +AWS,us-west-2,d3en.8xlarge,reserved_1y,no_upfront,2.96758,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:52.950890 +AWS,us-west-2,d3en.8xlarge,reserved_1y,partial_upfront,2.96758,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:42.179174 +AWS,us-west-2,d3en.8xlarge,reserved_3y,all_upfront,0.989193,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:23.538388 +AWS,us-west-2,d3en.8xlarge,reserved_3y,no_upfront,0.989193,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:53.341047 +AWS,us-west-2,d3en.8xlarge,reserved_3y,partial_upfront,0.989193,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:54.708531 +AWS,us-west-2,d3en.8xlarge,spot,NA,1.796786,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844288 +AWS,us-west-2,d3en.xlarge,on_demand,NA,0.526,USD,AWS Pricing API,2025-11-30T08:52:59.153274 +AWS,us-west-2,d3en.xlarge,reserved_1y,all_upfront,0.420411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:30.745378 +AWS,us-west-2,d3en.xlarge,reserved_1y,no_upfront,0.420411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:07.971067 +AWS,us-west-2,d3en.xlarge,reserved_1y,partial_upfront,0.420411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:57.685057 +AWS,us-west-2,d3en.xlarge,reserved_3y,all_upfront,0.210137,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:39.199238 +AWS,us-west-2,d3en.xlarge,reserved_3y,no_upfront,0.210137,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:08.096046 +AWS,us-west-2,d3en.xlarge,reserved_3y,partial_upfront,0.210137,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:09.307233 +AWS,us-west-2,d3en.xlarge,spot,NA,0.223773,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842995 +AWS,us-west-2,g4dn.12xlarge,on_demand,NA,3.912,USD,AWS Pricing API,2025-11-30T08:52:46.711945 +AWS,us-west-2,g4dn.12xlarge,reserved_1y,all_upfront,2.64532,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:18.401098 +AWS,us-west-2,g4dn.12xlarge,reserved_1y,no_upfront,2.64532,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:55.470395 +AWS,us-west-2,g4dn.12xlarge,reserved_1y,partial_upfront,2.64532,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:45.431418 +AWS,us-west-2,g4dn.12xlarge,reserved_3y,all_upfront,0.881773,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:26.928354 +AWS,us-west-2,g4dn.12xlarge,reserved_3y,no_upfront,0.881773,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:55.510487 +AWS,us-west-2,g4dn.12xlarge,reserved_3y,partial_upfront,0.881773,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:56.742489 +AWS,us-west-2,g4dn.12xlarge,spot,NA,1.612387,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842588 +AWS,us-west-2,g4dn.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T08:52:53.003787 +AWS,us-west-2,g4dn.16xlarge,reserved_1y,all_upfront,3.002484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:24.648738 +AWS,us-west-2,g4dn.16xlarge,reserved_1y,no_upfront,3.002484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:01.752368 +AWS,us-west-2,g4dn.16xlarge,reserved_1y,partial_upfront,3.002484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:51.635090 +AWS,us-west-2,g4dn.16xlarge,reserved_3y,all_upfront,2.001495,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:33.121791 +AWS,us-west-2,g4dn.16xlarge,reserved_3y,no_upfront,2.001495,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:01.732327 +AWS,us-west-2,g4dn.16xlarge,reserved_3y,partial_upfront,2.001495,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:03.096470 +AWS,us-west-2,g4dn.16xlarge,spot,NA,1.58574,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842799 +AWS,us-west-2,g4dn.2xlarge,on_demand,NA,0.752,USD,AWS Pricing API,2025-11-30T08:53:27.298080 +AWS,us-west-2,g4dn.2xlarge,reserved_1y,all_upfront,0.508447,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:58.517310 +AWS,us-west-2,g4dn.2xlarge,reserved_1y,no_upfront,0.508447,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:36.098606 +AWS,us-west-2,g4dn.2xlarge,reserved_1y,partial_upfront,0.508447,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:25.514848 +AWS,us-west-2,g4dn.2xlarge,reserved_3y,all_upfront,0.169482,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:06.945919 +AWS,us-west-2,g4dn.2xlarge,reserved_3y,no_upfront,0.169482,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:36.334153 +AWS,us-west-2,g4dn.2xlarge,reserved_3y,partial_upfront,0.169482,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:37.658904 +AWS,us-west-2,g4dn.2xlarge,spot,NA,0.351103,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843798 +AWS,us-west-2,g4dn.4xlarge,on_demand,NA,1.204,USD,AWS Pricing API,2025-11-30T08:53:07.644017 +AWS,us-west-2,g4dn.4xlarge,reserved_1y,all_upfront,0.759,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:39.156929 +AWS,us-west-2,g4dn.4xlarge,reserved_1y,no_upfront,0.759,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:16.420087 +AWS,us-west-2,g4dn.4xlarge,reserved_1y,partial_upfront,0.759,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:06.065573 +AWS,us-west-2,g4dn.4xlarge,reserved_3y,all_upfront,0.759,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:47.531719 +AWS,us-west-2,g4dn.4xlarge,reserved_3y,no_upfront,0.759,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:16.674163 +AWS,us-west-2,g4dn.4xlarge,reserved_3y,partial_upfront,0.759,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:17.903583 +AWS,us-west-2,g4dn.4xlarge,spot,NA,0.439189,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843253 +AWS,us-west-2,g4dn.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:53:10.379048 +AWS,us-west-2,g4dn.8xlarge,reserved_1y,all_upfront,1.371,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:41.883237 +AWS,us-west-2,g4dn.8xlarge,reserved_1y,no_upfront,1.371,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:19.158784 +AWS,us-west-2,g4dn.8xlarge,reserved_1y,partial_upfront,1.371,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:08.776032 +AWS,us-west-2,g4dn.8xlarge,reserved_3y,all_upfront,1.371,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:50.228050 +AWS,us-west-2,g4dn.8xlarge,reserved_3y,no_upfront,1.371,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:19.416600 +AWS,us-west-2,g4dn.8xlarge,reserved_3y,partial_upfront,1.371,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:20.656147 +AWS,us-west-2,g4dn.8xlarge,spot,NA,0.814741,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843344 +AWS,us-west-2,g4dn.xlarge,on_demand,NA,0.526,USD,AWS Pricing API,2025-11-30T08:53:34.028773 +AWS,us-west-2,g4dn.xlarge,reserved_1y,all_upfront,0.593379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:05.201657 +AWS,us-west-2,g4dn.xlarge,reserved_1y,no_upfront,0.593379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:42.809719 +AWS,us-west-2,g4dn.xlarge,reserved_1y,partial_upfront,0.593379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:32.183864 +AWS,us-west-2,g4dn.xlarge,reserved_3y,all_upfront,0.197793,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:13.574569 +AWS,us-west-2,g4dn.xlarge,reserved_3y,no_upfront,0.197793,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:43.112359 +AWS,us-west-2,g4dn.xlarge,reserved_3y,partial_upfront,0.197793,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:44.490498 +AWS,us-west-2,g4dn.xlarge,spot,NA,0.252053,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844013 +AWS,us-west-2,g5.12xlarge,on_demand,NA,5.672,USD,AWS Pricing API,2025-11-30T08:52:31.857441 +AWS,us-west-2,g5.12xlarge,reserved_1y,all_upfront,4.4667,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:03.714768 +AWS,us-west-2,g5.12xlarge,reserved_1y,no_upfront,4.4667,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:40.557931 +AWS,us-west-2,g5.12xlarge,reserved_1y,partial_upfront,4.4667,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:30.828454 +AWS,us-west-2,g5.12xlarge,reserved_3y,all_upfront,4.4667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:12.375866 +AWS,us-west-2,g5.12xlarge,reserved_3y,no_upfront,4.4667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:40.868873 +AWS,us-west-2,g5.12xlarge,reserved_3y,partial_upfront,4.4667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:41.842958 +AWS,us-west-2,g5.12xlarge,spot,NA,2.444998,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842172 +AWS,us-west-2,g5.16xlarge,on_demand,NA,4.096,USD,AWS Pricing API,2025-11-30T08:52:33.937071 +AWS,us-west-2,g5.16xlarge,reserved_1y,all_upfront,3.010616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:05.788512 +AWS,us-west-2,g5.16xlarge,reserved_1y,no_upfront,3.010616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:42.646115 +AWS,us-west-2,g5.16xlarge,reserved_1y,partial_upfront,3.010616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:32.864108 +AWS,us-west-2,g5.16xlarge,reserved_3y,all_upfront,1.003539,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:14.388752 +AWS,us-west-2,g5.16xlarge,reserved_3y,no_upfront,1.003539,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:42.894165 +AWS,us-west-2,g5.16xlarge,reserved_3y,partial_upfront,1.003539,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:43.910472 +AWS,us-west-2,g5.16xlarge,spot,NA,1.763777,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842233 +AWS,us-west-2,g5.24xlarge,on_demand,NA,8.144,USD,AWS Pricing API,2025-11-30T08:52:32.823521 +AWS,us-west-2,g5.24xlarge,reserved_1y,all_upfront,11.971689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:04.690737 +AWS,us-west-2,g5.24xlarge,reserved_1y,no_upfront,11.971689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:41.524995 +AWS,us-west-2,g5.24xlarge,reserved_1y,partial_upfront,11.971689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:31.788558 +AWS,us-west-2,g5.24xlarge,reserved_3y,all_upfront,3.990563,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:13.318117 +AWS,us-west-2,g5.24xlarge,reserved_3y,no_upfront,3.990563,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:41.817110 +AWS,us-west-2,g5.24xlarge,reserved_3y,partial_upfront,3.990563,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:42.805578 +AWS,us-west-2,g5.24xlarge,spot,NA,3.277714,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842164 +AWS,us-west-2,g5.2xlarge,on_demand,NA,1.212,USD,AWS Pricing API,2025-11-30T08:52:50.113447 +AWS,us-west-2,g5.2xlarge,reserved_1y,all_upfront,0.969569,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:21.797508 +AWS,us-west-2,g5.2xlarge,reserved_1y,no_upfront,0.969569,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:58.877709 +AWS,us-west-2,g5.2xlarge,reserved_1y,partial_upfront,0.969569,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:48.811387 +AWS,us-west-2,g5.2xlarge,reserved_3y,all_upfront,0.48479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:30.289386 +AWS,us-west-2,g5.2xlarge,reserved_3y,no_upfront,0.48479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:58.884001 +AWS,us-west-2,g5.2xlarge,reserved_3y,partial_upfront,0.48479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:00.193886 +AWS,us-west-2,g5.2xlarge,spot,NA,0.517212,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842728 +AWS,us-west-2,g5.48xlarge,on_demand,NA,16.288,USD,AWS Pricing API,2025-11-30T08:52:34.632325 +AWS,us-west-2,g5.48xlarge,reserved_1y,all_upfront,9.772816,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:06.467224 +AWS,us-west-2,g5.48xlarge,reserved_1y,no_upfront,9.772816,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:43.345809 +AWS,us-west-2,g5.48xlarge,reserved_1y,partial_upfront,9.772816,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:33.532762 +AWS,us-west-2,g5.48xlarge,reserved_3y,all_upfront,6.515205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:15.059167 +AWS,us-west-2,g5.48xlarge,reserved_3y,no_upfront,6.515205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:43.568257 +AWS,us-west-2,g5.48xlarge,reserved_3y,partial_upfront,6.515205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:44.597419 +AWS,us-west-2,g5.48xlarge,spot,NA,6.266601,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842260 +AWS,us-west-2,g5.4xlarge,on_demand,NA,1.624,USD,AWS Pricing API,2025-11-30T08:52:44.257339 +AWS,us-west-2,g5.4xlarge,reserved_1y,all_upfront,2.387329,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:15.968083 +AWS,us-west-2,g5.4xlarge,reserved_1y,no_upfront,2.387329,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:52.996130 +AWS,us-west-2,g5.4xlarge,reserved_1y,partial_upfront,2.387329,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:43.005452 +AWS,us-west-2,g5.4xlarge,reserved_3y,all_upfront,0.795776,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:24.514552 +AWS,us-west-2,g5.4xlarge,reserved_3y,no_upfront,0.795776,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:53.043332 +AWS,us-west-2,g5.4xlarge,reserved_3y,partial_upfront,0.795776,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:54.269770 +AWS,us-west-2,g5.4xlarge,spot,NA,0.612423,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842580 +AWS,us-west-2,g5.8xlarge,on_demand,NA,2.448,USD,AWS Pricing API,2025-11-30T08:52:52.040190 +AWS,us-west-2,g5.8xlarge,reserved_1y,all_upfront,1.54224,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:23.701952 +AWS,us-west-2,g5.8xlarge,reserved_1y,no_upfront,1.54224,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:00.787996 +AWS,us-west-2,g5.8xlarge,reserved_1y,partial_upfront,1.54224,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:50.691520 +AWS,us-west-2,g5.8xlarge,reserved_3y,all_upfront,1.54224,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:32.172681 +AWS,us-west-2,g5.8xlarge,reserved_3y,no_upfront,1.54224,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:00.782925 +AWS,us-west-2,g5.8xlarge,reserved_3y,partial_upfront,1.54224,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:02.134037 +AWS,us-west-2,g5.8xlarge,spot,NA,0.901188,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842754 +AWS,us-west-2,g5.xlarge,on_demand,NA,1.006,USD,AWS Pricing API,2025-11-30T08:53:39.672643 +AWS,us-west-2,g5.xlarge,reserved_1y,all_upfront,0.63378,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:10.811798 +AWS,us-west-2,g5.xlarge,reserved_1y,no_upfront,0.63378,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:48.455910 +AWS,us-west-2,g5.xlarge,reserved_1y,partial_upfront,0.63378,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:37.717755 +AWS,us-west-2,g5.xlarge,reserved_3y,all_upfront,0.63378,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:19.083352 +AWS,us-west-2,g5.xlarge,reserved_3y,no_upfront,0.63378,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:48.793261 +AWS,us-west-2,g5.xlarge,reserved_3y,partial_upfront,0.63378,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:50.169353 +AWS,us-west-2,g5.xlarge,spot,NA,0.537306,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844187 +AWS,us-west-2,g6.12xlarge,on_demand,NA,4.6016,USD,AWS Pricing API,2025-11-30T08:52:35.326021 +AWS,us-west-2,g6.12xlarge,reserved_1y,all_upfront,2.79589,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:07.153414 +AWS,us-west-2,g6.12xlarge,reserved_1y,no_upfront,2.79589,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:44.034795 +AWS,us-west-2,g6.12xlarge,reserved_1y,partial_upfront,2.79589,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:34.205167 +AWS,us-west-2,g6.12xlarge,reserved_3y,all_upfront,0.931963,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:15.730915 +AWS,us-west-2,g6.12xlarge,reserved_3y,no_upfront,0.931963,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:44.244865 +AWS,us-west-2,g6.12xlarge,reserved_3y,partial_upfront,0.931963,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:45.287309 +AWS,us-west-2,g6.12xlarge,spot,NA,2.188917,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842277 +AWS,us-west-2,g6.16xlarge,on_demand,NA,3.3968,USD,AWS Pricing API,2025-11-30T08:52:32.544135 +AWS,us-west-2,g6.16xlarge,reserved_1y,all_upfront,2.105978,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:04.417856 +AWS,us-west-2,g6.16xlarge,reserved_1y,no_upfront,2.105978,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:41.250939 +AWS,us-west-2,g6.16xlarge,reserved_1y,partial_upfront,2.105978,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:31.518692 +AWS,us-west-2,g6.16xlarge,reserved_3y,all_upfront,1.403999,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:13.048747 +AWS,us-west-2,g6.16xlarge,reserved_3y,no_upfront,1.403999,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:41.542840 +AWS,us-west-2,g6.16xlarge,reserved_3y,partial_upfront,1.403999,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:42.533477 +AWS,us-west-2,g6.16xlarge,spot,NA,1.654762,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842152 +AWS,us-west-2,g6.24xlarge,on_demand,NA,6.6752,USD,AWS Pricing API,2025-11-30T08:52:32.678558 +AWS,us-west-2,g6.24xlarge,reserved_1y,all_upfront,4.055822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:04.556782 +AWS,us-west-2,g6.24xlarge,reserved_1y,no_upfront,4.055822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:41.387078 +AWS,us-west-2,g6.24xlarge,reserved_1y,partial_upfront,4.055822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:31.654454 +AWS,us-west-2,g6.24xlarge,reserved_3y,all_upfront,1.351941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:13.183873 +AWS,us-west-2,g6.24xlarge,reserved_3y,no_upfront,1.351941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:41.676902 +AWS,us-west-2,g6.24xlarge,reserved_3y,partial_upfront,1.351941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:42.669908 +AWS,us-west-2,g6.24xlarge,spot,NA,2.913588,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842160 +AWS,us-west-2,g6.2xlarge,on_demand,NA,0.9776,USD,AWS Pricing API,2025-11-30T08:52:34.353207 +AWS,us-west-2,g6.2xlarge,reserved_1y,all_upfront,0.742466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:06.198603 +AWS,us-west-2,g6.2xlarge,reserved_1y,no_upfront,0.742466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:43.072068 +AWS,us-west-2,g6.2xlarge,reserved_1y,partial_upfront,0.742466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:33.266644 +AWS,us-west-2,g6.2xlarge,reserved_3y,all_upfront,0.247489,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:14.789512 +AWS,us-west-2,g6.2xlarge,reserved_3y,no_upfront,0.247489,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:43.299605 +AWS,us-west-2,g6.2xlarge,reserved_3y,partial_upfront,0.247489,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:44.324449 +AWS,us-west-2,g6.2xlarge,spot,NA,0.595162,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842221 +AWS,us-west-2,g6.48xlarge,on_demand,NA,13.3504,USD,AWS Pricing API,2025-11-30T08:52:32.128878 +AWS,us-west-2,g6.48xlarge,reserved_1y,all_upfront,16.000457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:04.012142 +AWS,us-west-2,g6.48xlarge,reserved_1y,no_upfront,16.000457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:40.830962 +AWS,us-west-2,g6.48xlarge,reserved_1y,partial_upfront,16.000457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:31.098778 +AWS,us-west-2,g6.48xlarge,reserved_3y,all_upfront,5.333486,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:12.645301 +AWS,us-west-2,g6.48xlarge,reserved_3y,no_upfront,5.333486,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:41.137765 +AWS,us-west-2,g6.48xlarge,reserved_3y,partial_upfront,5.333486,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:42.115222 +AWS,us-west-2,g6.48xlarge,spot,NA,5.001002,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842168 +AWS,us-west-2,g6.4xlarge,on_demand,NA,1.3232,USD,AWS Pricing API,2025-11-30T08:52:32.958118 +AWS,us-west-2,g6.4xlarge,reserved_1y,all_upfront,0.60735,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:04.827391 +AWS,us-west-2,g6.4xlarge,reserved_1y,no_upfront,0.60735,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:41.662330 +AWS,us-west-2,g6.4xlarge,reserved_1y,partial_upfront,0.60735,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:31.920687 +AWS,us-west-2,g6.4xlarge,reserved_3y,all_upfront,0.60735,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:13.451576 +AWS,us-west-2,g6.4xlarge,reserved_3y,no_upfront,0.60735,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:41.951713 +AWS,us-west-2,g6.4xlarge,reserved_3y,partial_upfront,0.60735,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:42.947085 +AWS,us-west-2,g6.4xlarge,spot,NA,0.720187,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842134 +AWS,us-west-2,g6.8xlarge,on_demand,NA,2.0144,USD,AWS Pricing API,2025-11-30T08:52:33.801769 +AWS,us-west-2,g6.8xlarge,reserved_1y,all_upfront,2.140321,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:05.640927 +AWS,us-west-2,g6.8xlarge,reserved_1y,no_upfront,2.140321,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:42.508342 +AWS,us-west-2,g6.8xlarge,reserved_1y,partial_upfront,2.140321,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:32.728623 +AWS,us-west-2,g6.8xlarge,reserved_3y,all_upfront,1.070154,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:14.251164 +AWS,us-west-2,g6.8xlarge,reserved_3y,no_upfront,1.070154,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:42.760220 +AWS,us-west-2,g6.8xlarge,reserved_3y,partial_upfront,1.070154,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:43.774360 +AWS,us-west-2,g6.8xlarge,spot,NA,1.040965,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842201 +AWS,us-west-2,g6.xlarge,on_demand,NA,0.8048,USD,AWS Pricing API,2025-11-30T08:52:32.273100 +AWS,us-west-2,g6.xlarge,reserved_1y,all_upfront,0.499033,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:04.147956 +AWS,us-west-2,g6.xlarge,reserved_1y,no_upfront,0.499033,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:40.976552 +AWS,us-west-2,g6.xlarge,reserved_1y,partial_upfront,0.499033,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:31.249795 +AWS,us-west-2,g6.xlarge,reserved_3y,all_upfront,0.332671,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:12.779551 +AWS,us-west-2,g6.xlarge,reserved_3y,no_upfront,0.332671,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:41.269640 +AWS,us-west-2,g6.xlarge,reserved_3y,partial_upfront,0.332671,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:42.252419 +AWS,us-west-2,g6.xlarge,spot,NA,0.44658,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842180 +AWS,us-west-2,g6e.12xlarge,on_demand,NA,10.49264,USD,AWS Pricing API,2025-11-30T08:52:34.912331 +AWS,us-west-2,g6e.12xlarge,reserved_1y,all_upfront,5.43938,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:06.747278 +AWS,us-west-2,g6e.12xlarge,reserved_1y,no_upfront,5.43938,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:43.616093 +AWS,us-west-2,g6e.12xlarge,reserved_1y,partial_upfront,5.43938,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:33.801820 +AWS,us-west-2,g6e.12xlarge,reserved_3y,all_upfront,5.43938,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:15.327040 +AWS,us-west-2,g6e.12xlarge,reserved_3y,no_upfront,5.43938,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:43.838718 +AWS,us-west-2,g6e.12xlarge,reserved_3y,partial_upfront,5.43938,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:44.871639 +AWS,us-west-2,g6e.12xlarge,spot,NA,4.495996,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842256 +AWS,us-west-2,g6e.16xlarge,on_demand,NA,7.57719,USD,AWS Pricing API,2025-11-30T08:52:33.521068 +AWS,us-west-2,g6e.16xlarge,reserved_1y,all_upfront,5.72836,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:05.369146 +AWS,us-west-2,g6e.16xlarge,reserved_1y,no_upfront,5.72836,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:42.234649 +AWS,us-west-2,g6e.16xlarge,reserved_1y,partial_upfront,5.72836,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:32.453294 +AWS,us-west-2,g6e.16xlarge,reserved_3y,all_upfront,5.72836,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:13.984605 +AWS,us-west-2,g6e.16xlarge,reserved_3y,no_upfront,5.72836,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:42.491980 +AWS,us-west-2,g6e.16xlarge,reserved_3y,partial_upfront,5.72836,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:43.499712 +AWS,us-west-2,g6e.16xlarge,spot,NA,3.06774,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842195 +AWS,us-west-2,g6e.24xlarge,on_demand,NA,15.06559,USD,AWS Pricing API,2025-11-30T08:52:33.368483 +AWS,us-west-2,g6e.24xlarge,reserved_1y,all_upfront,14.463,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:05.233920 +AWS,us-west-2,g6e.24xlarge,reserved_1y,no_upfront,14.463,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:42.086748 +AWS,us-west-2,g6e.24xlarge,reserved_1y,partial_upfront,14.463,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:32.320547 +AWS,us-west-2,g6e.24xlarge,reserved_3y,all_upfront,7.231493,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:13.850953 +AWS,us-west-2,g6e.24xlarge,reserved_3y,no_upfront,7.231493,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:42.356437 +AWS,us-west-2,g6e.24xlarge,reserved_3y,partial_upfront,7.231493,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:43.363464 +AWS,us-west-2,g6e.24xlarge,spot,NA,6.054593,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842189 +AWS,us-west-2,g6e.2xlarge,on_demand,NA,2.24208,USD,AWS Pricing API,2025-11-30T08:52:33.092219 +AWS,us-west-2,g6e.2xlarge,reserved_1y,all_upfront,3.164041,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:04.963316 +AWS,us-west-2,g6e.2xlarge,reserved_1y,no_upfront,3.164041,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:41.798415 +AWS,us-west-2,g6e.2xlarge,reserved_1y,partial_upfront,3.164041,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:32.054108 +AWS,us-west-2,g6e.2xlarge,reserved_3y,all_upfront,1.05468,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:13.583996 +AWS,us-west-2,g6e.2xlarge,reserved_3y,no_upfront,1.05468,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:42.086966 +AWS,us-west-2,g6e.2xlarge,reserved_3y,partial_upfront,1.05468,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:43.082981 +AWS,us-west-2,g6e.2xlarge,spot,NA,1.176542,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842225 +AWS,us-west-2,g6e.48xlarge,on_demand,NA,30.13118,USD,AWS Pricing API,2025-11-30T08:52:32.409242 +AWS,us-west-2,g6e.48xlarge,reserved_1y,all_upfront,33.988014,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:04.281849 +AWS,us-west-2,g6e.48xlarge,reserved_1y,no_upfront,33.988014,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:41.112733 +AWS,us-west-2,g6e.48xlarge,reserved_1y,partial_upfront,33.988014,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:31.383799 +AWS,us-west-2,g6e.48xlarge,reserved_3y,all_upfront,11.329338,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:12.915333 +AWS,us-west-2,g6e.48xlarge,reserved_3y,no_upfront,11.329338,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:41.408203 +AWS,us-west-2,g6e.48xlarge,reserved_3y,partial_upfront,11.329338,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:42.397244 +AWS,us-west-2,g6e.48xlarge,spot,NA,11.65332,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842176 +AWS,us-west-2,g6e.4xlarge,on_demand,NA,3.00424,USD,AWS Pricing API,2025-11-30T08:52:33.232319 +AWS,us-west-2,g6e.4xlarge,reserved_1y,all_upfront,1.89267,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:05.096678 +AWS,us-west-2,g6e.4xlarge,reserved_1y,no_upfront,1.89267,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:41.936382 +AWS,us-west-2,g6e.4xlarge,reserved_1y,partial_upfront,1.89267,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:32.188195 +AWS,us-west-2,g6e.4xlarge,reserved_3y,all_upfront,1.89267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:13.720133 +AWS,us-west-2,g6e.4xlarge,reserved_3y,no_upfront,1.89267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:42.223924 +AWS,us-west-2,g6e.4xlarge,reserved_3y,partial_upfront,1.89267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:43.219783 +AWS,us-west-2,g6e.4xlarge,spot,NA,1.339916,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842184 +AWS,us-west-2,g6e.8xlarge,on_demand,NA,4.52856,USD,AWS Pricing API,2025-11-30T08:52:31.992505 +AWS,us-west-2,g6e.8xlarge,reserved_1y,all_upfront,3.622833,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:03.853153 +AWS,us-west-2,g6e.8xlarge,reserved_1y,no_upfront,3.622833,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:40.695557 +AWS,us-west-2,g6e.8xlarge,reserved_1y,partial_upfront,3.622833,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:30.962189 +AWS,us-west-2,g6e.8xlarge,reserved_3y,all_upfront,1.811418,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:12.510977 +AWS,us-west-2,g6e.8xlarge,reserved_3y,no_upfront,1.811418,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:41.002944 +AWS,us-west-2,g6e.8xlarge,reserved_3y,partial_upfront,1.811418,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:41.979264 +AWS,us-west-2,g6e.8xlarge,spot,NA,1.664192,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842147 +AWS,us-west-2,g6e.xlarge,on_demand,NA,1.861,USD,AWS Pricing API,2025-11-30T08:52:34.770976 +AWS,us-west-2,g6e.xlarge,reserved_1y,all_upfront,1.094292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:06.613205 +AWS,us-west-2,g6e.xlarge,reserved_1y,no_upfront,1.094292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:43.479897 +AWS,us-west-2,g6e.xlarge,reserved_1y,partial_upfront,1.094292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:33.666974 +AWS,us-west-2,g6e.xlarge,reserved_3y,all_upfront,0.364764,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:15.194112 +AWS,us-west-2,g6e.xlarge,reserved_3y,no_upfront,0.364764,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:43.702625 +AWS,us-west-2,g6e.xlarge,reserved_3y,partial_upfront,0.364764,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:44.733630 +AWS,us-west-2,g6e.xlarge,spot,NA,0.792785,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842273 +AWS,us-west-2,gr6.4xlarge,on_demand,NA,1.5392,USD,AWS Pricing API,2025-11-30T08:52:33.660797 +AWS,us-west-2,gr6.4xlarge,reserved_1y,all_upfront,1.169064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:05.504140 +AWS,us-west-2,gr6.4xlarge,reserved_1y,no_upfront,1.169064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:42.370890 +AWS,us-west-2,gr6.4xlarge,reserved_1y,partial_upfront,1.169064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:32.587876 +AWS,us-west-2,gr6.4xlarge,reserved_3y,all_upfront,0.389688,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:14.118218 +AWS,us-west-2,gr6.4xlarge,reserved_3y,no_upfront,0.389688,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:42.624708 +AWS,us-west-2,gr6.4xlarge,reserved_3y,partial_upfront,0.389688,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:43.639141 +AWS,us-west-2,gr6.4xlarge,spot,NA,0.602735,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842215 +AWS,us-west-2,gr6.8xlarge,on_demand,NA,2.4464,USD,AWS Pricing API,2025-11-30T08:52:35.049346 +AWS,us-west-2,gr6.8xlarge,reserved_1y,all_upfront,1.59261,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:06.881157 +AWS,us-west-2,gr6.8xlarge,reserved_1y,no_upfront,1.59261,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:43.762885 +AWS,us-west-2,gr6.8xlarge,reserved_1y,partial_upfront,1.59261,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:33.935321 +AWS,us-west-2,gr6.8xlarge,reserved_3y,all_upfront,1.59261,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:15.461037 +AWS,us-west-2,gr6.8xlarge,reserved_3y,no_upfront,1.59261,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:43.972625 +AWS,us-west-2,gr6.8xlarge,reserved_3y,partial_upfront,1.59261,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:45.011508 +AWS,us-west-2,gr6.8xlarge,spot,NA,1.098355,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842237 +AWS,us-west-2,i2.2xlarge,on_demand,NA,1.705,USD,AWS Pricing API,2025-11-30T08:53:21.462551 +AWS,us-west-2,i2.2xlarge,reserved_1y,all_upfront,0.763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:52.833128 +AWS,us-west-2,i2.2xlarge,reserved_1y,no_upfront,0.763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:30.232824 +AWS,us-west-2,i2.2xlarge,reserved_1y,partial_upfront,0.763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:19.817740 +AWS,us-west-2,i2.2xlarge,reserved_3y,all_upfront,0.763,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:01.257470 +AWS,us-west-2,i2.2xlarge,reserved_3y,no_upfront,0.763,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:30.568400 +AWS,us-west-2,i2.2xlarge,reserved_3y,partial_upfront,0.763,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:31.846596 +AWS,us-west-2,i2.2xlarge,spot,NA,0.566172,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843664 +AWS,us-west-2,i2.4xlarge,on_demand,NA,3.41,USD,AWS Pricing API,2025-11-30T08:53:17.345826 +AWS,us-west-2,i2.4xlarge,reserved_1y,all_upfront,1.668475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:48.776915 +AWS,us-west-2,i2.4xlarge,reserved_1y,no_upfront,1.668475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:26.135823 +AWS,us-west-2,i2.4xlarge,reserved_1y,partial_upfront,1.668475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:15.744484 +AWS,us-west-2,i2.4xlarge,reserved_3y,all_upfront,1.112158,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:57.203312 +AWS,us-west-2,i2.4xlarge,reserved_3y,no_upfront,1.112158,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:26.423684 +AWS,us-west-2,i2.4xlarge,reserved_3y,partial_upfront,1.112158,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:27.694284 +AWS,us-west-2,i2.4xlarge,spot,NA,1.250586,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843553 +AWS,us-west-2,i2.8xlarge,on_demand,NA,6.82,USD,AWS Pricing API,2025-11-30T08:53:24.060829 +AWS,us-west-2,i2.8xlarge,reserved_1y,all_upfront,3.271005,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:55.391197 +AWS,us-west-2,i2.8xlarge,reserved_1y,no_upfront,3.271005,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:32.882593 +AWS,us-west-2,i2.8xlarge,reserved_1y,partial_upfront,3.271005,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:22.398760 +AWS,us-west-2,i2.8xlarge,reserved_3y,all_upfront,1.090335,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:03.858342 +AWS,us-west-2,i2.8xlarge,reserved_3y,no_upfront,1.090335,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:33.169232 +AWS,us-west-2,i2.8xlarge,reserved_3y,partial_upfront,1.090335,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:34.465071 +AWS,us-west-2,i2.8xlarge,spot,NA,2.336244,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843751 +AWS,us-west-2,i2.xlarge,on_demand,NA,0.853,USD,AWS Pricing API,2025-11-30T08:53:24.621386 +AWS,us-west-2,i2.xlarge,reserved_1y,all_upfront,0.408904,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:55.927767 +AWS,us-west-2,i2.xlarge,reserved_1y,no_upfront,0.408904,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:33.424800 +AWS,us-west-2,i2.xlarge,reserved_1y,partial_upfront,0.408904,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:22.936806 +AWS,us-west-2,i2.xlarge,reserved_3y,all_upfront,0.136301,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:04.389957 +AWS,us-west-2,i2.xlarge,reserved_3y,no_upfront,0.136301,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:33.716337 +AWS,us-west-2,i2.xlarge,reserved_3y,partial_upfront,0.136301,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:35.019839 +AWS,us-west-2,i2.xlarge,spot,NA,0.286129,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843724 +AWS,us-west-2,i3.16xlarge,on_demand,NA,4.992,USD,AWS Pricing API,2025-11-30T08:53:31.024211 +AWS,us-west-2,i3.16xlarge,reserved_1y,all_upfront,3.941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:02.210875 +AWS,us-west-2,i3.16xlarge,reserved_1y,no_upfront,3.941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:39.826509 +AWS,us-west-2,i3.16xlarge,reserved_1y,partial_upfront,3.941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:29.165001 +AWS,us-west-2,i3.16xlarge,reserved_3y,all_upfront,3.941,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:10.614881 +AWS,us-west-2,i3.16xlarge,reserved_3y,no_upfront,3.941,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:40.049080 +AWS,us-west-2,i3.16xlarge,reserved_3y,partial_upfront,3.941,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:41.421355 +AWS,us-west-2,i3.16xlarge,spot,NA,1.884729,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843922 +AWS,us-west-2,i3.2xlarge,on_demand,NA,0.624,USD,AWS Pricing API,2025-11-30T08:52:50.249318 +AWS,us-west-2,i3.2xlarge,reserved_1y,all_upfront,0.348,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:21.940542 +AWS,us-west-2,i3.2xlarge,reserved_1y,no_upfront,0.348,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:59.014733 +AWS,us-west-2,i3.2xlarge,reserved_1y,partial_upfront,0.348,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:48.944209 +AWS,us-west-2,i3.2xlarge,reserved_3y,all_upfront,0.348,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:30.424808 +AWS,us-west-2,i3.2xlarge,reserved_3y,no_upfront,0.348,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:59.025159 +AWS,us-west-2,i3.2xlarge,reserved_3y,partial_upfront,0.348,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:00.332098 +AWS,us-west-2,i3.2xlarge,spot,NA,0.291333,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842716 +AWS,us-west-2,i3.4xlarge,on_demand,NA,1.248,USD,AWS Pricing API,2025-11-30T08:52:51.767915 +AWS,us-west-2,i3.4xlarge,reserved_1y,all_upfront,0.985,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:23.435138 +AWS,us-west-2,i3.4xlarge,reserved_1y,no_upfront,0.985,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:00.516993 +AWS,us-west-2,i3.4xlarge,reserved_1y,partial_upfront,0.985,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:50.426722 +AWS,us-west-2,i3.4xlarge,reserved_3y,all_upfront,0.985,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:31.902860 +AWS,us-west-2,i3.4xlarge,reserved_3y,no_upfront,0.985,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:00.515797 +AWS,us-west-2,i3.4xlarge,reserved_3y,partial_upfront,0.985,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:01.858020 +AWS,us-west-2,i3.4xlarge,spot,NA,0.55105,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842774 +AWS,us-west-2,i3.8xlarge,on_demand,NA,2.496,USD,AWS Pricing API,2025-11-30T08:52:45.892874 +AWS,us-west-2,i3.8xlarge,reserved_1y,all_upfront,2.246817,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:17.598094 +AWS,us-west-2,i3.8xlarge,reserved_1y,no_upfront,2.246817,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:54.653266 +AWS,us-west-2,i3.8xlarge,reserved_1y,partial_upfront,2.246817,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:44.622660 +AWS,us-west-2,i3.8xlarge,reserved_3y,all_upfront,1.123606,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:26.126327 +AWS,us-west-2,i3.8xlarge,reserved_3y,no_upfront,1.123606,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:54.671059 +AWS,us-west-2,i3.8xlarge,reserved_3y,partial_upfront,1.123606,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:55.918976 +AWS,us-west-2,i3.8xlarge,spot,NA,0.958258,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842596 +AWS,us-west-2,i3.large,on_demand,NA,0.156,USD,AWS Pricing API,2025-11-30T08:52:50.930509 +AWS,us-west-2,i3.large,reserved_1y,all_upfront,0.140251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:22.623081 +AWS,us-west-2,i3.large,reserved_1y,no_upfront,0.140251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:59.695781 +AWS,us-west-2,i3.large,reserved_1y,partial_upfront,0.140251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:49.619490 +AWS,us-west-2,i3.large,reserved_3y,all_upfront,0.070084,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:31.094192 +AWS,us-west-2,i3.large,reserved_3y,no_upfront,0.070084,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:59.711041 +AWS,us-west-2,i3.large,reserved_3y,partial_upfront,0.070084,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:01.017970 +AWS,us-west-2,i3.large,spot,NA,0.053835,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842782 +AWS,us-west-2,i3.xlarge,on_demand,NA,0.312,USD,AWS Pricing API,2025-11-30T08:53:16.520431 +AWS,us-west-2,i3.xlarge,reserved_1y,all_upfront,0.20237,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:47.964617 +AWS,us-west-2,i3.xlarge,reserved_1y,no_upfront,0.20237,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:25.310465 +AWS,us-west-2,i3.xlarge,reserved_1y,partial_upfront,0.20237,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:14.902986 +AWS,us-west-2,i3.xlarge,reserved_3y,all_upfront,0.13479,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:56.380855 +AWS,us-west-2,i3.xlarge,reserved_3y,no_upfront,0.13479,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:25.600946 +AWS,us-west-2,i3.xlarge,reserved_3y,partial_upfront,0.13479,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:26.861266 +AWS,us-west-2,i3.xlarge,spot,NA,0.126241,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843495 +AWS,us-west-2,i3en.12xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:52:47.934649 +AWS,us-west-2,i3en.12xlarge,reserved_1y,all_upfront,4.278,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:19.630786 +AWS,us-west-2,i3en.12xlarge,reserved_1y,no_upfront,4.278,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:56.689341 +AWS,us-west-2,i3en.12xlarge,reserved_1y,partial_upfront,4.278,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:46.650785 +AWS,us-west-2,i3en.12xlarge,reserved_3y,all_upfront,4.278,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:28.135681 +AWS,us-west-2,i3en.12xlarge,reserved_3y,no_upfront,4.278,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:56.725445 +AWS,us-west-2,i3en.12xlarge,reserved_3y,partial_upfront,4.278,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:57.980151 +AWS,us-west-2,i3en.12xlarge,spot,NA,2.193493,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842621 +AWS,us-west-2,i3en.24xlarge,on_demand,NA,10.848,USD,AWS Pricing API,2025-11-30T08:52:53.273008 +AWS,us-west-2,i3en.24xlarge,reserved_1y,all_upfront,8.556,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:24.932112 +AWS,us-west-2,i3en.24xlarge,reserved_1y,no_upfront,8.556,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:02.032078 +AWS,us-west-2,i3en.24xlarge,reserved_1y,partial_upfront,8.556,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:51.904094 +AWS,us-west-2,i3en.24xlarge,reserved_3y,all_upfront,8.556,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:33.388529 +AWS,us-west-2,i3en.24xlarge,reserved_3y,no_upfront,8.556,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:02.009037 +AWS,us-west-2,i3en.24xlarge,reserved_3y,partial_upfront,8.556,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:03.371413 +AWS,us-west-2,i3en.24xlarge,spot,NA,4.715426,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842795 +AWS,us-west-2,i3en.2xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:52:43.013171 +AWS,us-west-2,i3en.2xlarge,reserved_1y,all_upfront,0.616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:14.761914 +AWS,us-west-2,i3en.2xlarge,reserved_1y,no_upfront,0.616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:51.764502 +AWS,us-west-2,i3en.2xlarge,reserved_1y,partial_upfront,0.616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:41.786836 +AWS,us-west-2,i3en.2xlarge,reserved_3y,all_upfront,0.616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:23.284478 +AWS,us-west-2,i3en.2xlarge,reserved_3y,no_upfront,0.616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:51.829602 +AWS,us-west-2,i3en.2xlarge,reserved_3y,partial_upfront,0.616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:53.037755 +AWS,us-west-2,i3en.2xlarge,spot,NA,0.388858,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842504 +AWS,us-west-2,i3en.3xlarge,on_demand,NA,1.356,USD,AWS Pricing API,2025-11-30T08:53:38.314327 +AWS,us-west-2,i3en.3xlarge,reserved_1y,all_upfront,0.998174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:09.440965 +AWS,us-west-2,i3en.3xlarge,reserved_1y,no_upfront,0.998174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:47.088209 +AWS,us-west-2,i3en.3xlarge,reserved_1y,partial_upfront,0.998174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:36.363236 +AWS,us-west-2,i3en.3xlarge,reserved_3y,all_upfront,0.332725,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:17.747374 +AWS,us-west-2,i3en.3xlarge,reserved_3y,no_upfront,0.332725,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:47.385919 +AWS,us-west-2,i3en.3xlarge,reserved_3y,partial_upfront,0.332725,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:48.784472 +AWS,us-west-2,i3en.3xlarge,spot,NA,0.499086,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844148 +AWS,us-west-2,i3en.6xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:53:29.502430 +AWS,us-west-2,i3en.6xlarge,reserved_1y,all_upfront,1.723858,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:00.699418 +AWS,us-west-2,i3en.6xlarge,reserved_1y,no_upfront,1.723858,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:38.328625 +AWS,us-west-2,i3en.6xlarge,reserved_1y,partial_upfront,1.723858,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:27.678791 +AWS,us-west-2,i3en.6xlarge,reserved_3y,all_upfront,0.574619,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:09.133249 +AWS,us-west-2,i3en.6xlarge,reserved_3y,no_upfront,0.574619,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:38.538035 +AWS,us-west-2,i3en.6xlarge,reserved_3y,partial_upfront,0.574619,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:39.905475 +AWS,us-west-2,i3en.6xlarge,spot,NA,1.014151,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843903 +AWS,us-west-2,i3en.large,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:53:01.907638 +AWS,us-west-2,i3en.large,reserved_1y,all_upfront,0.18253,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:33.446834 +AWS,us-west-2,i3en.large,reserved_1y,no_upfront,0.18253,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:10.693280 +AWS,us-west-2,i3en.large,reserved_1y,partial_upfront,0.18253,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:00.393390 +AWS,us-west-2,i3en.large,reserved_3y,all_upfront,0.09151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:41.887791 +AWS,us-west-2,i3en.large,reserved_3y,no_upfront,0.09151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:10.856229 +AWS,us-west-2,i3en.large,reserved_3y,partial_upfront,0.09151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:12.078042 +AWS,us-west-2,i3en.large,spot,NA,0.078918,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843105 +AWS,us-west-2,i3en.xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:53:01.217861 +AWS,us-west-2,i3en.xlarge,reserved_1y,all_upfront,0.227,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:32.777756 +AWS,us-west-2,i3en.xlarge,reserved_1y,no_upfront,0.227,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:10.017190 +AWS,us-west-2,i3en.xlarge,reserved_1y,partial_upfront,0.227,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:59.720046 +AWS,us-west-2,i3en.xlarge,reserved_3y,all_upfront,0.227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:41.220384 +AWS,us-west-2,i3en.xlarge,reserved_3y,no_upfront,0.227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:10.173257 +AWS,us-west-2,i3en.xlarge,reserved_3y,partial_upfront,0.227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:11.384466 +AWS,us-west-2,i3en.xlarge,spot,NA,0.163071,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843042 +AWS,us-west-2,i4g.16xlarge,on_demand,NA,4.94208,USD,AWS Pricing API,2025-11-30T08:53:18.441152 +AWS,us-west-2,i4g.16xlarge,reserved_1y,all_upfront,3.20712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:49.856133 +AWS,us-west-2,i4g.16xlarge,reserved_1y,no_upfront,3.20712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:27.228836 +AWS,us-west-2,i4g.16xlarge,reserved_1y,partial_upfront,3.20712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:16.834597 +AWS,us-west-2,i4g.16xlarge,reserved_3y,all_upfront,3.20712,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:58.272879 +AWS,us-west-2,i4g.16xlarge,reserved_3y,no_upfront,3.20712,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:27.523263 +AWS,us-west-2,i4g.16xlarge,reserved_3y,partial_upfront,3.20712,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:28.803363 +AWS,us-west-2,i4g.16xlarge,spot,NA,1.762173,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843587 +AWS,us-west-2,i4g.2xlarge,on_demand,NA,0.61776,USD,AWS Pricing API,2025-11-30T08:53:32.648693 +AWS,us-west-2,i4g.2xlarge,reserved_1y,all_upfront,0.381768,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:03.854577 +AWS,us-west-2,i4g.2xlarge,reserved_1y,no_upfront,0.381768,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:41.455059 +AWS,us-west-2,i4g.2xlarge,reserved_1y,partial_upfront,0.381768,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:30.841487 +AWS,us-west-2,i4g.2xlarge,reserved_3y,all_upfront,0.254523,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:12.220473 +AWS,us-west-2,i4g.2xlarge,reserved_3y,no_upfront,0.254523,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:41.697655 +AWS,us-west-2,i4g.2xlarge,reserved_3y,partial_upfront,0.254523,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:43.076654 +AWS,us-west-2,i4g.2xlarge,spot,NA,0.228292,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843969 +AWS,us-west-2,i4g.4xlarge,on_demand,NA,1.23552,USD,AWS Pricing API,2025-11-30T08:53:31.562397 +AWS,us-west-2,i4g.4xlarge,reserved_1y,all_upfront,0.916225,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:02.757599 +AWS,us-west-2,i4g.4xlarge,reserved_1y,no_upfront,0.916225,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:40.369818 +AWS,us-west-2,i4g.4xlarge,reserved_1y,partial_upfront,0.916225,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:29.746495 +AWS,us-west-2,i4g.4xlarge,reserved_3y,all_upfront,0.610822,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:11.147587 +AWS,us-west-2,i4g.4xlarge,reserved_3y,no_upfront,0.610822,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:40.600393 +AWS,us-west-2,i4g.4xlarge,reserved_3y,partial_upfront,0.610822,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:41.981370 +AWS,us-west-2,i4g.4xlarge,spot,NA,0.449513,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843934 +AWS,us-west-2,i4g.8xlarge,on_demand,NA,2.47104,USD,AWS Pricing API,2025-11-30T08:53:18.716275 +AWS,us-west-2,i4g.8xlarge,reserved_1y,all_upfront,1.60356,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:50.124440 +AWS,us-west-2,i4g.8xlarge,reserved_1y,no_upfront,1.60356,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:27.495129 +AWS,us-west-2,i4g.8xlarge,reserved_1y,partial_upfront,1.60356,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:17.101401 +AWS,us-west-2,i4g.8xlarge,reserved_3y,all_upfront,1.60356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:58.537469 +AWS,us-west-2,i4g.8xlarge,reserved_3y,no_upfront,1.60356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:27.804275 +AWS,us-west-2,i4g.8xlarge,reserved_3y,partial_upfront,1.60356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:29.080659 +AWS,us-west-2,i4g.8xlarge,spot,NA,1.000232,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843572 +AWS,us-west-2,i4g.large,on_demand,NA,0.15444,USD,AWS Pricing API,2025-11-30T08:52:52.309783 +AWS,us-west-2,i4g.large,reserved_1y,all_upfront,0.114566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:23.974961 +AWS,us-west-2,i4g.large,reserved_1y,no_upfront,0.114566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:01.057254 +AWS,us-west-2,i4g.large,reserved_1y,partial_upfront,0.114566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:50.963921 +AWS,us-west-2,i4g.large,reserved_3y,all_upfront,0.076362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:32.440077 +AWS,us-west-2,i4g.large,reserved_3y,no_upfront,0.076362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:01.050838 +AWS,us-west-2,i4g.large,reserved_3y,partial_upfront,0.076362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:02.410001 +AWS,us-west-2,i4g.large,spot,NA,0.054933,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842787 +AWS,us-west-2,i4g.xlarge,on_demand,NA,0.30888,USD,AWS Pricing API,2025-11-30T08:53:15.292072 +AWS,us-west-2,i4g.xlarge,reserved_1y,all_upfront,0.1871,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:46.742997 +AWS,us-west-2,i4g.xlarge,reserved_1y,no_upfront,0.1871,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:24.076121 +AWS,us-west-2,i4g.xlarge,reserved_1y,partial_upfront,0.1871,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:13.673975 +AWS,us-west-2,i4g.xlarge,reserved_3y,all_upfront,0.062367,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:55.171117 +AWS,us-west-2,i4g.xlarge,reserved_3y,no_upfront,0.062367,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:24.370967 +AWS,us-west-2,i4g.xlarge,reserved_3y,partial_upfront,0.062367,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:25.628798 +AWS,us-west-2,i4g.xlarge,spot,NA,0.118402,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843468 +AWS,us-west-2,i4i.16xlarge,on_demand,NA,5.491,USD,AWS Pricing API,2025-11-30T08:53:06.143076 +AWS,us-west-2,i4i.16xlarge,reserved_1y,all_upfront,4.072187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:37.656324 +AWS,us-west-2,i4i.16xlarge,reserved_1y,no_upfront,4.072187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:14.904017 +AWS,us-west-2,i4i.16xlarge,reserved_1y,partial_upfront,4.072187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:04.588404 +AWS,us-west-2,i4i.16xlarge,reserved_3y,all_upfront,2.714729,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:46.057766 +AWS,us-west-2,i4i.16xlarge,reserved_3y,no_upfront,2.714729,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:15.159377 +AWS,us-west-2,i4i.16xlarge,reserved_3y,partial_upfront,2.714729,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:16.380446 +AWS,us-west-2,i4i.16xlarge,spot,NA,2.192975,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843190 +AWS,us-west-2,i4i.2xlarge,on_demand,NA,0.686,USD,AWS Pricing API,2025-11-30T08:53:22.290798 +AWS,us-west-2,i4i.2xlarge,reserved_1y,all_upfront,0.381,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:53.640614 +AWS,us-west-2,i4i.2xlarge,reserved_1y,no_upfront,0.381,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:31.076951 +AWS,us-west-2,i4i.2xlarge,reserved_1y,partial_upfront,0.381,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:20.643980 +AWS,us-west-2,i4i.2xlarge,reserved_3y,all_upfront,0.381,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:02.096620 +AWS,us-west-2,i4i.2xlarge,reserved_3y,no_upfront,0.381,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:31.386235 +AWS,us-west-2,i4i.2xlarge,reserved_3y,partial_upfront,0.381,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:32.680562 +AWS,us-west-2,i4i.2xlarge,spot,NA,0.358003,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843653 +AWS,us-west-2,i4i.32xlarge,on_demand,NA,10.9824,USD,AWS Pricing API,2025-11-30T08:53:34.890623 +AWS,us-west-2,i4i.32xlarge,reserved_1y,all_upfront,6.651484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:06.006691 +AWS,us-west-2,i4i.32xlarge,reserved_1y,no_upfront,6.651484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:43.627679 +AWS,us-west-2,i4i.32xlarge,reserved_1y,partial_upfront,6.651484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:32.989318 +AWS,us-west-2,i4i.32xlarge,reserved_3y,all_upfront,2.217161,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:14.392450 +AWS,us-west-2,i4i.32xlarge,reserved_3y,no_upfront,2.217161,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:43.938357 +AWS,us-west-2,i4i.32xlarge,reserved_3y,partial_upfront,2.217161,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:45.318200 +AWS,us-west-2,i4i.32xlarge,spot,NA,4.287758,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844063 +AWS,us-west-2,i4i.4xlarge,on_demand,NA,1.373,USD,AWS Pricing API,2025-11-30T08:53:10.650370 +AWS,us-west-2,i4i.4xlarge,reserved_1y,all_upfront,0.831393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:42.152387 +AWS,us-west-2,i4i.4xlarge,reserved_1y,no_upfront,0.831393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:19.431834 +AWS,us-west-2,i4i.4xlarge,reserved_1y,partial_upfront,0.831393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:09.043198 +AWS,us-west-2,i4i.4xlarge,reserved_3y,all_upfront,0.277131,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:50.502598 +AWS,us-west-2,i4i.4xlarge,reserved_3y,no_upfront,0.277131,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:19.692316 +AWS,us-west-2,i4i.4xlarge,reserved_3y,partial_upfront,0.277131,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:20.930307 +AWS,us-west-2,i4i.4xlarge,spot,NA,0.57654,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843329 +AWS,us-west-2,i4i.8xlarge,on_demand,NA,2.746,USD,AWS Pricing API,2025-11-30T08:53:13.644318 +AWS,us-west-2,i4i.8xlarge,reserved_1y,all_upfront,1.782,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:45.126002 +AWS,us-west-2,i4i.8xlarge,reserved_1y,no_upfront,1.782,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:22.441329 +AWS,us-west-2,i4i.8xlarge,reserved_1y,partial_upfront,1.782,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:12.032495 +AWS,us-west-2,i4i.8xlarge,reserved_3y,all_upfront,1.782,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:53.551051 +AWS,us-west-2,i4i.8xlarge,reserved_3y,no_upfront,1.782,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:22.709066 +AWS,us-west-2,i4i.8xlarge,reserved_3y,partial_upfront,1.782,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:23.968636 +AWS,us-west-2,i4i.8xlarge,spot,NA,1.14014,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843398 +AWS,us-west-2,i4i.large,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:53:39.536695 +AWS,us-west-2,i4i.large,reserved_1y,all_upfront,0.147274,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:10.668883 +AWS,us-west-2,i4i.large,reserved_1y,no_upfront,0.147274,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:48.318816 +AWS,us-west-2,i4i.large,reserved_1y,partial_upfront,0.147274,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:37.585106 +AWS,us-west-2,i4i.large,reserved_3y,all_upfront,0.073758,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:18.951363 +AWS,us-west-2,i4i.large,reserved_3y,no_upfront,0.073758,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:48.645511 +AWS,us-west-2,i4i.large,reserved_3y,partial_upfront,0.073758,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:50.030504 +AWS,us-west-2,i4i.large,spot,NA,0.060742,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844179 +AWS,us-west-2,i4i.xlarge,on_demand,NA,0.343,USD,AWS Pricing API,2025-11-30T08:53:20.644226 +AWS,us-west-2,i4i.xlarge,reserved_1y,all_upfront,0.267,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:52.025253 +AWS,us-west-2,i4i.xlarge,reserved_1y,no_upfront,0.267,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:29.412922 +AWS,us-west-2,i4i.xlarge,reserved_1y,partial_upfront,0.267,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:19.011519 +AWS,us-west-2,i4i.xlarge,reserved_3y,all_upfront,0.267,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:00.453469 +AWS,us-west-2,i4i.xlarge,reserved_3y,no_upfront,0.267,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:29.741242 +AWS,us-west-2,i4i.xlarge,reserved_3y,partial_upfront,0.267,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:31.021507 +AWS,us-west-2,i4i.xlarge,spot,NA,0.128016,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843621 +AWS,us-west-2,i7i.12xlarge,on_demand,NA,4.5302,USD,AWS Pricing API,2025-11-30T08:52:58.603716 +AWS,us-west-2,i7i.12xlarge,spot,NA,1.828046,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842975 +AWS,us-west-2,i7i.16xlarge,on_demand,NA,6.0403,USD,AWS Pricing API,2025-11-30T08:53:44.900050 +AWS,us-west-2,i7i.16xlarge,spot,NA,2.225787,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844315 +AWS,us-west-2,i7i.24xlarge,on_demand,NA,9.0605,USD,AWS Pricing API,2025-11-30T08:52:39.320878 +AWS,us-west-2,i7i.24xlarge,spot,NA,3.342245,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842401 +AWS,us-west-2,i7i.2xlarge,on_demand,NA,0.755,USD,AWS Pricing API,2025-11-30T08:52:36.429799 +AWS,us-west-2,i7i.2xlarge,spot,NA,0.299196,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842326 +AWS,us-west-2,i7i.48xlarge,on_demand,NA,18.121,USD,AWS Pricing API,2025-11-30T08:52:38.208039 +AWS,us-west-2,i7i.48xlarge,spot,NA,6.359527,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842362 +AWS,us-west-2,i7i.4xlarge,on_demand,NA,1.5101,USD,AWS Pricing API,2025-11-30T08:53:41.741788 +AWS,us-west-2,i7i.4xlarge,spot,NA,0.642942,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844257 +AWS,us-west-2,i7i.8xlarge,on_demand,NA,3.0202,USD,AWS Pricing API,2025-11-30T08:53:11.333346 +AWS,us-west-2,i7i.8xlarge,spot,NA,1.149311,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843352 +AWS,us-west-2,i7i.large,on_demand,NA,0.1888,USD,AWS Pricing API,2025-11-30T08:52:54.771146 +AWS,us-west-2,i7i.large,spot,NA,0.065532,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842834 +AWS,us-west-2,i7i.xlarge,on_demand,NA,0.3775,USD,AWS Pricing API,2025-11-30T08:53:03.279123 +AWS,us-west-2,i7i.xlarge,spot,NA,0.132966,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843144 +AWS,us-west-2,i8g.12xlarge,on_demand,NA,4.1184,USD,AWS Pricing API,2025-11-30T08:53:35.168084 +AWS,us-west-2,i8g.12xlarge,spot,NA,1.807489,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844044 +AWS,us-west-2,i8g.16xlarge,on_demand,NA,5.4912,USD,AWS Pricing API,2025-11-30T08:53:32.102573 +AWS,us-west-2,i8g.16xlarge,spot,NA,2.327761,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843980 +AWS,us-west-2,i8g.24xlarge,on_demand,NA,8.2368,USD,AWS Pricing API,2025-11-30T08:53:34.614226 +AWS,us-west-2,i8g.24xlarge,spot,NA,3.609985,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844003 +AWS,us-west-2,i8g.2xlarge,on_demand,NA,0.6864,USD,AWS Pricing API,2025-11-30T08:53:01.356848 +AWS,us-west-2,i8g.2xlarge,spot,NA,0.308695,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843065 +AWS,us-west-2,i8g.48xlarge,on_demand,NA,16.4736,USD,AWS Pricing API,2025-11-30T08:52:41.777948 +AWS,us-west-2,i8g.48xlarge,spot,NA,6.989906,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842467 +AWS,us-west-2,i8g.4xlarge,on_demand,NA,1.3728,USD,AWS Pricing API,2025-11-30T08:53:29.216709 +AWS,us-west-2,i8g.4xlarge,spot,NA,0.600066,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843857 +AWS,us-west-2,i8g.8xlarge,on_demand,NA,2.7456,USD,AWS Pricing API,2025-11-30T08:53:48.602377 +AWS,us-west-2,i8g.8xlarge,spot,NA,1.227907,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844437 +AWS,us-west-2,i8g.large,on_demand,NA,0.1716,USD,AWS Pricing API,2025-11-30T08:53:05.868667 +AWS,us-west-2,i8g.large,spot,NA,0.068515,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843151 +AWS,us-west-2,i8g.xlarge,on_demand,NA,0.3432,USD,AWS Pricing API,2025-11-30T08:52:57.767069 +AWS,us-west-2,i8g.xlarge,spot,NA,0.137598,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842979 +AWS,us-west-2,im4gn.16xlarge,on_demand,NA,5.82067,USD,AWS Pricing API,2025-11-30T08:53:04.921033 +AWS,us-west-2,im4gn.16xlarge,reserved_1y,all_upfront,3.19334,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:36.441784 +AWS,us-west-2,im4gn.16xlarge,reserved_1y,no_upfront,3.19334,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:13.685928 +AWS,us-west-2,im4gn.16xlarge,reserved_1y,partial_upfront,3.19334,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:03.381115 +AWS,us-west-2,im4gn.16xlarge,reserved_3y,all_upfront,3.19334,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:44.850558 +AWS,us-west-2,im4gn.16xlarge,reserved_3y,no_upfront,3.19334,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:13.927080 +AWS,us-west-2,im4gn.16xlarge,reserved_3y,partial_upfront,3.19334,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:15.130280 +AWS,us-west-2,im4gn.16xlarge,spot,NA,2.560176,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843182 +AWS,us-west-2,im4gn.2xlarge,on_demand,NA,0.72758,USD,AWS Pricing API,2025-11-30T08:53:02.597055 +AWS,us-west-2,im4gn.2xlarge,reserved_1y,all_upfront,0.615986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:34.121525 +AWS,us-west-2,im4gn.2xlarge,reserved_1y,no_upfront,0.615986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:11.373310 +AWS,us-west-2,im4gn.2xlarge,reserved_1y,partial_upfront,0.615986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:01.061136 +AWS,us-west-2,im4gn.2xlarge,reserved_3y,all_upfront,0.307995,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:42.560266 +AWS,us-west-2,im4gn.2xlarge,reserved_3y,no_upfront,0.307995,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:11.539337 +AWS,us-west-2,im4gn.2xlarge,reserved_3y,partial_upfront,0.307995,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:12.774691 +AWS,us-west-2,im4gn.2xlarge,spot,NA,0.24621,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843097 +AWS,us-west-2,im4gn.4xlarge,on_demand,NA,1.45517,USD,AWS Pricing API,2025-11-30T08:52:57.227860 +AWS,us-west-2,im4gn.4xlarge,reserved_1y,all_upfront,1.11989,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:28.856291 +AWS,us-west-2,im4gn.4xlarge,reserved_1y,no_upfront,1.11989,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:06.003005 +AWS,us-west-2,im4gn.4xlarge,reserved_1y,partial_upfront,1.11989,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:55.804694 +AWS,us-west-2,im4gn.4xlarge,reserved_3y,all_upfront,1.11989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:37.318876 +AWS,us-west-2,im4gn.4xlarge,reserved_3y,no_upfront,1.11989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:06.181614 +AWS,us-west-2,im4gn.4xlarge,reserved_3y,partial_upfront,1.11989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:07.377878 +AWS,us-west-2,im4gn.4xlarge,spot,NA,0.515346,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842939 +AWS,us-west-2,im4gn.8xlarge,on_demand,NA,2.91034,USD,AWS Pricing API,2025-11-30T08:52:57.632146 +AWS,us-west-2,im4gn.8xlarge,reserved_1y,all_upfront,1.777613,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:29.259426 +AWS,us-west-2,im4gn.8xlarge,reserved_1y,no_upfront,1.777613,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:06.411093 +AWS,us-west-2,im4gn.8xlarge,reserved_1y,partial_upfront,1.777613,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:56.210478 +AWS,us-west-2,im4gn.8xlarge,reserved_3y,all_upfront,1.185071,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:37.716645 +AWS,us-west-2,im4gn.8xlarge,reserved_3y,no_upfront,1.185071,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:06.597348 +AWS,us-west-2,im4gn.8xlarge,reserved_3y,partial_upfront,1.185071,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:07.797744 +AWS,us-west-2,im4gn.8xlarge,spot,NA,1.088159,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842904 +AWS,us-west-2,im4gn.large,on_demand,NA,0.1819,USD,AWS Pricing API,2025-11-30T08:52:58.334031 +AWS,us-west-2,im4gn.large,reserved_1y,all_upfront,0.111144,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:29.926428 +AWS,us-west-2,im4gn.large,reserved_1y,no_upfront,0.111144,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:07.087286 +AWS,us-west-2,im4gn.large,reserved_1y,partial_upfront,0.111144,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:56.878727 +AWS,us-west-2,im4gn.large,reserved_3y,all_upfront,0.074081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:38.383673 +AWS,us-west-2,im4gn.large,reserved_3y,no_upfront,0.074081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:07.278587 +AWS,us-west-2,im4gn.large,reserved_3y,partial_upfront,0.074081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:08.480493 +AWS,us-west-2,im4gn.large,spot,NA,0.069378,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842991 +AWS,us-west-2,im4gn.xlarge,on_demand,NA,0.36379,USD,AWS Pricing API,2025-11-30T08:53:46.964774 +AWS,us-west-2,im4gn.xlarge,reserved_1y,all_upfront,0.217808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:17.982132 +AWS,us-west-2,im4gn.xlarge,reserved_1y,no_upfront,0.217808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:55.692752 +AWS,us-west-2,im4gn.xlarge,reserved_1y,partial_upfront,0.217808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:44.873831 +AWS,us-west-2,im4gn.xlarge,reserved_3y,all_upfront,0.072603,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:26.240098 +AWS,us-west-2,im4gn.xlarge,reserved_3y,no_upfront,0.072603,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:56.096435 +AWS,us-west-2,im4gn.xlarge,reserved_3y,partial_upfront,0.072603,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:57.500930 +AWS,us-west-2,im4gn.xlarge,spot,NA,0.133951,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844368 +AWS,us-west-2,is4gen.2xlarge,on_demand,NA,1.1526,USD,AWS Pricing API,2025-11-30T08:52:55.597807 +AWS,us-west-2,is4gen.2xlarge,reserved_1y,all_upfront,0.78611,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:27.237251 +AWS,us-west-2,is4gen.2xlarge,reserved_1y,no_upfront,0.78611,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:04.358460 +AWS,us-west-2,is4gen.2xlarge,reserved_1y,partial_upfront,0.78611,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:54.192648 +AWS,us-west-2,is4gen.2xlarge,reserved_3y,all_upfront,0.78611,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:35.695986 +AWS,us-west-2,is4gen.2xlarge,reserved_3y,no_upfront,0.78611,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:04.527547 +AWS,us-west-2,is4gen.2xlarge,reserved_3y,partial_upfront,0.78611,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:05.729556 +AWS,us-west-2,is4gen.2xlarge,spot,NA,0.435145,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842873 +AWS,us-west-2,is4gen.4xlarge,on_demand,NA,2.3052,USD,AWS Pricing API,2025-11-30T08:53:39.267608 +AWS,us-west-2,is4gen.4xlarge,reserved_1y,all_upfront,1.467466,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:10.400071 +AWS,us-west-2,is4gen.4xlarge,reserved_1y,no_upfront,1.467466,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:48.044011 +AWS,us-west-2,is4gen.4xlarge,reserved_1y,partial_upfront,1.467466,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:37.317715 +AWS,us-west-2,is4gen.4xlarge,reserved_3y,all_upfront,0.489155,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:18.681787 +AWS,us-west-2,is4gen.4xlarge,reserved_3y,no_upfront,0.489155,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:48.370915 +AWS,us-west-2,is4gen.4xlarge,reserved_3y,partial_upfront,0.489155,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:49.754739 +AWS,us-west-2,is4gen.4xlarge,spot,NA,0.840811,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844191 +AWS,us-west-2,is4gen.8xlarge,on_demand,NA,4.6104,USD,AWS Pricing API,2025-11-30T08:52:37.394499 +AWS,us-west-2,is4gen.8xlarge,reserved_1y,all_upfront,3.712789,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:09.199427 +AWS,us-west-2,is4gen.8xlarge,reserved_1y,no_upfront,3.712789,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:46.148191 +AWS,us-west-2,is4gen.8xlarge,reserved_1y,partial_upfront,3.712789,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:36.221732 +AWS,us-west-2,is4gen.8xlarge,reserved_3y,all_upfront,1.856396,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:17.756087 +AWS,us-west-2,is4gen.8xlarge,reserved_3y,no_upfront,1.856396,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:46.278307 +AWS,us-west-2,is4gen.8xlarge,reserved_3y,partial_upfront,1.856396,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:47.356485 +AWS,us-west-2,is4gen.8xlarge,spot,NA,2.068303,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842358 +AWS,us-west-2,is4gen.large,on_demand,NA,0.28815,USD,AWS Pricing API,2025-11-30T08:53:19.129041 +AWS,us-west-2,is4gen.large,reserved_1y,all_upfront,0.23583,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:50.529383 +AWS,us-west-2,is4gen.large,reserved_1y,no_upfront,0.23583,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:27.903041 +AWS,us-west-2,is4gen.large,reserved_1y,partial_upfront,0.23583,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:17.506831 +AWS,us-west-2,is4gen.large,reserved_3y,all_upfront,0.23583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:58.950173 +AWS,us-west-2,is4gen.large,reserved_3y,no_upfront,0.23583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:28.218468 +AWS,us-west-2,is4gen.large,reserved_3y,partial_upfront,0.23583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:29.498422 +AWS,us-west-2,is4gen.large,spot,NA,0.109837,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843561 +AWS,us-west-2,is4gen.xlarge,on_demand,NA,0.5763,USD,AWS Pricing API,2025-11-30T08:53:03.418202 +AWS,us-west-2,is4gen.xlarge,reserved_1y,all_upfront,0.366895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:34.939872 +AWS,us-west-2,is4gen.xlarge,reserved_1y,no_upfront,0.366895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:12.189479 +AWS,us-west-2,is4gen.xlarge,reserved_1y,partial_upfront,0.366895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:01.879257 +AWS,us-west-2,is4gen.xlarge,reserved_3y,all_upfront,0.122298,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:43.361879 +AWS,us-west-2,is4gen.xlarge,reserved_3y,no_upfront,0.122298,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:12.374417 +AWS,us-west-2,is4gen.xlarge,reserved_3y,partial_upfront,0.122298,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:13.596872 +AWS,us-west-2,is4gen.xlarge,spot,NA,0.202472,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843128 +AWS,us-west-2,m4.10xlarge,on_demand,NA,2.0,USD,AWS Pricing API,2025-11-30T08:53:08.598137 +AWS,us-west-2,m4.10xlarge,reserved_1y,all_upfront,1.357039,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:40.110410 +AWS,us-west-2,m4.10xlarge,reserved_1y,no_upfront,1.357039,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:17.382596 +AWS,us-west-2,m4.10xlarge,reserved_1y,partial_upfront,1.357039,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:07.009118 +AWS,us-west-2,m4.10xlarge,reserved_3y,all_upfront,0.90468,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:48.479954 +AWS,us-west-2,m4.10xlarge,reserved_3y,no_upfront,0.90468,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:17.632942 +AWS,us-west-2,m4.10xlarge,reserved_3y,partial_upfront,0.90468,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:18.865081 +AWS,us-west-2,m4.10xlarge,spot,NA,0.768735,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843241 +AWS,us-west-2,m4.16xlarge,on_demand,NA,3.2,USD,AWS Pricing API,2025-11-30T08:53:13.780051 +AWS,us-west-2,m4.16xlarge,reserved_1y,all_upfront,2.171216,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:45.260616 +AWS,us-west-2,m4.16xlarge,reserved_1y,no_upfront,2.171216,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:22.577964 +AWS,us-west-2,m4.16xlarge,reserved_1y,partial_upfront,2.171216,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:12.176099 +AWS,us-west-2,m4.16xlarge,reserved_3y,all_upfront,1.447472,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:53.685713 +AWS,us-west-2,m4.16xlarge,reserved_3y,no_upfront,1.447472,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:22.847975 +AWS,us-west-2,m4.16xlarge,reserved_3y,partial_upfront,1.447472,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:24.106188 +AWS,us-west-2,m4.16xlarge,spot,NA,1.227114,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843402 +AWS,us-west-2,m4.2xlarge,on_demand,NA,0.4,USD,AWS Pricing API,2025-11-30T08:52:55.181628 +AWS,us-west-2,m4.2xlarge,reserved_1y,all_upfront,0.271431,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:26.826844 +AWS,us-west-2,m4.2xlarge,reserved_1y,no_upfront,0.271431,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:03.950399 +AWS,us-west-2,m4.2xlarge,reserved_1y,partial_upfront,0.271431,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:53.788773 +AWS,us-west-2,m4.2xlarge,reserved_3y,all_upfront,0.180944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:35.283680 +AWS,us-west-2,m4.2xlarge,reserved_3y,no_upfront,0.180944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:04.105244 +AWS,us-west-2,m4.2xlarge,reserved_3y,partial_upfront,0.180944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:05.318214 +AWS,us-west-2,m4.2xlarge,spot,NA,0.188973,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842900 +AWS,us-west-2,m4.4xlarge,on_demand,NA,0.8,USD,AWS Pricing API,2025-11-30T08:53:29.916143 +AWS,us-west-2,m4.4xlarge,reserved_1y,all_upfront,0.5699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:01.115526 +AWS,us-west-2,m4.4xlarge,reserved_1y,no_upfront,0.5699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:38.742779 +AWS,us-west-2,m4.4xlarge,reserved_1y,partial_upfront,0.5699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:28.079930 +AWS,us-west-2,m4.4xlarge,reserved_3y,all_upfront,0.5699,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:09.542478 +AWS,us-west-2,m4.4xlarge,reserved_3y,no_upfront,0.5699,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:38.949831 +AWS,us-west-2,m4.4xlarge,reserved_3y,partial_upfront,0.5699,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:40.320268 +AWS,us-west-2,m4.4xlarge,spot,NA,0.441399,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843895 +AWS,us-west-2,m4.large,on_demand,NA,0.1,USD,AWS Pricing API,2025-11-30T08:52:36.988387 +AWS,us-west-2,m4.large,reserved_1y,all_upfront,0.057877,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:08.775433 +AWS,us-west-2,m4.large,reserved_1y,no_upfront,0.057877,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:45.722182 +AWS,us-west-2,m4.large,reserved_1y,partial_upfront,0.057877,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:35.819612 +AWS,us-west-2,m4.large,reserved_3y,all_upfront,0.019292,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:17.350311 +AWS,us-west-2,m4.large,reserved_3y,no_upfront,0.019292,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:45.876235 +AWS,us-west-2,m4.large,reserved_3y,partial_upfront,0.019292,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:46.945883 +AWS,us-west-2,m4.large,spot,NA,0.040618,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842322 +AWS,us-west-2,m4.xlarge,on_demand,NA,0.2,USD,AWS Pricing API,2025-11-30T08:53:18.168281 +AWS,us-west-2,m4.xlarge,reserved_1y,all_upfront,0.270434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:49.584536 +AWS,us-west-2,m4.xlarge,reserved_1y,no_upfront,0.270434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:26.957609 +AWS,us-west-2,m4.xlarge,reserved_1y,partial_upfront,0.270434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:16.561111 +AWS,us-west-2,m4.xlarge,reserved_3y,all_upfront,0.090145,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:58.004061 +AWS,us-west-2,m4.xlarge,reserved_3y,no_upfront,0.090145,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:27.250416 +AWS,us-west-2,m4.xlarge,reserved_3y,partial_upfront,0.090145,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:28.529044 +AWS,us-west-2,m4.xlarge,spot,NA,0.09145,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843518 +AWS,us-west-2,m5.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:52:55.320800 +AWS,us-west-2,m5.12xlarge,reserved_1y,all_upfront,1.579909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:26.963929 +AWS,us-west-2,m5.12xlarge,reserved_1y,no_upfront,1.579909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:04.085940 +AWS,us-west-2,m5.12xlarge,reserved_1y,partial_upfront,1.579909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:53.925713 +AWS,us-west-2,m5.12xlarge,reserved_3y,all_upfront,0.526636,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:35.418159 +AWS,us-west-2,m5.12xlarge,reserved_3y,no_upfront,0.526636,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:04.242165 +AWS,us-west-2,m5.12xlarge,reserved_3y,partial_upfront,0.526636,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:05.455476 +AWS,us-west-2,m5.12xlarge,spot,NA,0.861946,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842869 +AWS,us-west-2,m5.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:53:28.254317 +AWS,us-west-2,m5.16xlarge,reserved_1y,all_upfront,2.149772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:59.469119 +AWS,us-west-2,m5.16xlarge,reserved_1y,no_upfront,2.149772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:37.078844 +AWS,us-west-2,m5.16xlarge,reserved_1y,partial_upfront,2.149772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:26.457053 +AWS,us-west-2,m5.16xlarge,reserved_3y,all_upfront,1.433257,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:07.905836 +AWS,us-west-2,m5.16xlarge,reserved_3y,no_upfront,1.433257,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:37.297711 +AWS,us-west-2,m5.16xlarge,reserved_3y,partial_upfront,1.433257,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:38.661175 +AWS,us-west-2,m5.16xlarge,spot,NA,1.195075,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843864 +AWS,us-west-2,m5.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:53:39.806947 +AWS,us-west-2,m5.24xlarge,reserved_1y,all_upfront,2.903,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:10.944974 +AWS,us-west-2,m5.24xlarge,reserved_1y,no_upfront,2.903,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:48.592274 +AWS,us-west-2,m5.24xlarge,reserved_1y,partial_upfront,2.903,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:37.851410 +AWS,us-west-2,m5.24xlarge,reserved_3y,all_upfront,2.903,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:19.218615 +AWS,us-west-2,m5.24xlarge,reserved_3y,no_upfront,2.903,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:48.931274 +AWS,us-west-2,m5.24xlarge,reserved_3y,partial_upfront,2.903,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:50.308715 +AWS,us-west-2,m5.24xlarge,spot,NA,1.882416,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844167 +AWS,us-west-2,m5.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:53:11.469072 +AWS,us-west-2,m5.2xlarge,reserved_1y,all_upfront,0.225799,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:42.962659 +AWS,us-west-2,m5.2xlarge,reserved_1y,no_upfront,0.225799,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:20.251406 +AWS,us-west-2,m5.2xlarge,reserved_1y,partial_upfront,0.225799,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:09.848362 +AWS,us-west-2,m5.2xlarge,reserved_3y,all_upfront,0.075266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:51.319019 +AWS,us-west-2,m5.2xlarge,reserved_3y,no_upfront,0.075266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:20.512498 +AWS,us-west-2,m5.2xlarge,reserved_3y,partial_upfront,0.075266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:21.757500 +AWS,us-west-2,m5.2xlarge,spot,NA,0.15716,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843364 +AWS,us-west-2,m5.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:53:20.924368 +AWS,us-west-2,m5.4xlarge,reserved_1y,all_upfront,0.484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:52.293580 +AWS,us-west-2,m5.4xlarge,reserved_1y,no_upfront,0.484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:29.684267 +AWS,us-west-2,m5.4xlarge,reserved_1y,partial_upfront,0.484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:19.281628 +AWS,us-west-2,m5.4xlarge,reserved_3y,all_upfront,0.484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:00.721342 +AWS,us-west-2,m5.4xlarge,reserved_3y,no_upfront,0.484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:30.017971 +AWS,us-west-2,m5.4xlarge,reserved_3y,partial_upfront,0.484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:31.294805 +AWS,us-west-2,m5.4xlarge,spot,NA,0.342077,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843615 +AWS,us-west-2,m5.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:53:47.913851 +AWS,us-west-2,m5.8xlarge,reserved_1y,all_upfront,0.921845,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:18.937467 +AWS,us-west-2,m5.8xlarge,reserved_1y,no_upfront,0.921845,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:56.653424 +AWS,us-west-2,m5.8xlarge,reserved_1y,partial_upfront,0.921845,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:45.835881 +AWS,us-west-2,m5.8xlarge,reserved_3y,all_upfront,0.614615,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:27.184821 +AWS,us-west-2,m5.8xlarge,reserved_3y,no_upfront,0.614615,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:57.052190 +AWS,us-west-2,m5.8xlarge,reserved_3y,partial_upfront,0.614615,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:58.475288 +AWS,us-west-2,m5.8xlarge,spot,NA,0.571748,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844395 +AWS,us-west-2,m5.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T08:53:11.875878 +AWS,us-west-2,m5.large,reserved_1y,all_upfront,0.057767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:43.373812 +AWS,us-west-2,m5.large,reserved_1y,no_upfront,0.057767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:20.663660 +AWS,us-west-2,m5.large,reserved_1y,partial_upfront,0.057767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:10.263397 +AWS,us-west-2,m5.large,reserved_3y,all_upfront,0.038589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:51.801595 +AWS,us-west-2,m5.large,reserved_3y,no_upfront,0.038589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:20.922837 +AWS,us-west-2,m5.large,reserved_3y,partial_upfront,0.038589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:22.173610 +AWS,us-west-2,m5.large,spot,NA,0.041944,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843383 +AWS,us-west-2,m5.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:53:45.722692 +AWS,us-west-2,m5.xlarge,reserved_1y,all_upfront,0.115648,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:16.760397 +AWS,us-west-2,m5.xlarge,reserved_1y,no_upfront,0.115648,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:54.454114 +AWS,us-west-2,m5.xlarge,reserved_1y,partial_upfront,0.115648,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:43.664636 +AWS,us-west-2,m5.xlarge,reserved_3y,all_upfront,0.077216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:25.032736 +AWS,us-west-2,m5.xlarge,reserved_3y,no_upfront,0.077216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:54.861122 +AWS,us-west-2,m5.xlarge,reserved_3y,partial_upfront,0.077216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:56.258954 +AWS,us-west-2,m5.xlarge,spot,NA,0.073033,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844353 +AWS,us-west-2,m5a.12xlarge,on_demand,NA,2.064,USD,AWS Pricing API,2025-11-30T08:53:12.426494 +AWS,us-west-2,m5a.12xlarge,reserved_1y,all_upfront,1.213584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:43.910116 +AWS,us-west-2,m5a.12xlarge,reserved_1y,no_upfront,1.213584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:21.212984 +AWS,us-west-2,m5a.12xlarge,reserved_1y,partial_upfront,1.213584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:10.823232 +AWS,us-west-2,m5a.12xlarge,reserved_3y,all_upfront,0.404528,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:52.338243 +AWS,us-west-2,m5a.12xlarge,reserved_3y,no_upfront,0.404528,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:21.471645 +AWS,us-west-2,m5a.12xlarge,reserved_3y,partial_upfront,0.404528,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:22.734978 +AWS,us-west-2,m5a.12xlarge,spot,NA,0.844917,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843360 +AWS,us-west-2,m5a.16xlarge,on_demand,NA,2.752,USD,AWS Pricing API,2025-11-30T08:53:30.051291 +AWS,us-west-2,m5a.16xlarge,reserved_1y,all_upfront,1.618151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:01.250860 +AWS,us-west-2,m5a.16xlarge,reserved_1y,no_upfront,1.618151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:38.879199 +AWS,us-west-2,m5a.16xlarge,reserved_1y,partial_upfront,1.618151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:28.214991 +AWS,us-west-2,m5a.16xlarge,reserved_3y,all_upfront,0.539384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:09.677017 +AWS,us-west-2,m5a.16xlarge,reserved_3y,no_upfront,0.539384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:39.085293 +AWS,us-west-2,m5a.16xlarge,reserved_3y,partial_upfront,0.539384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:40.458719 +AWS,us-west-2,m5a.16xlarge,spot,NA,1.14417,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843884 +AWS,us-west-2,m5a.24xlarge,on_demand,NA,4.128,USD,AWS Pricing API,2025-11-30T08:53:05.056450 +AWS,us-west-2,m5a.24xlarge,reserved_1y,all_upfront,3.863831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:36.575110 +AWS,us-west-2,m5a.24xlarge,reserved_1y,no_upfront,3.863831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:13.820554 +AWS,us-west-2,m5a.24xlarge,reserved_1y,partial_upfront,3.863831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:03.517130 +AWS,us-west-2,m5a.24xlarge,reserved_3y,all_upfront,1.931944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:44.984338 +AWS,us-west-2,m5a.24xlarge,reserved_3y,no_upfront,1.931944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:14.073759 +AWS,us-west-2,m5a.24xlarge,reserved_3y,partial_upfront,1.931944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:15.268131 +AWS,us-west-2,m5a.24xlarge,spot,NA,1.775741,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843179 +AWS,us-west-2,m5a.2xlarge,on_demand,NA,0.344,USD,AWS Pricing API,2025-11-30T08:52:57.499411 +AWS,us-west-2,m5a.2xlarge,reserved_1y,all_upfront,0.252,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:29.125500 +AWS,us-west-2,m5a.2xlarge,reserved_1y,no_upfront,0.252,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:06.274006 +AWS,us-west-2,m5a.2xlarge,reserved_1y,partial_upfront,0.252,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:56.074548 +AWS,us-west-2,m5a.2xlarge,reserved_3y,all_upfront,0.252,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:37.583525 +AWS,us-west-2,m5a.2xlarge,reserved_3y,no_upfront,0.252,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:06.461107 +AWS,us-west-2,m5a.2xlarge,reserved_3y,partial_upfront,0.252,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:07.650640 +AWS,us-west-2,m5a.2xlarge,spot,NA,0.16047,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842919 +AWS,us-west-2,m5a.4xlarge,on_demand,NA,0.688,USD,AWS Pricing API,2025-11-30T08:53:38.450261 +AWS,us-west-2,m5a.4xlarge,reserved_1y,all_upfront,0.946689,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:09.582112 +AWS,us-west-2,m5a.4xlarge,reserved_1y,no_upfront,0.946689,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:47.224983 +AWS,us-west-2,m5a.4xlarge,reserved_1y,partial_upfront,0.946689,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:36.497837 +AWS,us-west-2,m5a.4xlarge,reserved_3y,all_upfront,0.315563,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:17.880947 +AWS,us-west-2,m5a.4xlarge,reserved_3y,no_upfront,0.315563,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:47.534226 +AWS,us-west-2,m5a.4xlarge,reserved_3y,partial_upfront,0.315563,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:48.922721 +AWS,us-west-2,m5a.4xlarge,spot,NA,0.333642,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844121 +AWS,us-west-2,m5a.8xlarge,on_demand,NA,1.376,USD,AWS Pricing API,2025-11-30T08:52:48.473748 +AWS,us-west-2,m5a.8xlarge,reserved_1y,all_upfront,1.893265,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:20.181080 +AWS,us-west-2,m5a.8xlarge,reserved_1y,no_upfront,1.893265,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:57.237052 +AWS,us-west-2,m5a.8xlarge,reserved_1y,partial_upfront,1.893265,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:47.187433 +AWS,us-west-2,m5a.8xlarge,reserved_3y,all_upfront,0.631088,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:28.674357 +AWS,us-west-2,m5a.8xlarge,reserved_3y,no_upfront,0.631088,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:57.266518 +AWS,us-west-2,m5a.8xlarge,reserved_3y,partial_upfront,0.631088,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:58.533398 +AWS,us-west-2,m5a.8xlarge,spot,NA,0.582365,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842680 +AWS,us-west-2,m5a.large,on_demand,NA,0.086,USD,AWS Pricing API,2025-11-30T08:53:07.505292 +AWS,us-west-2,m5a.large,reserved_1y,all_upfront,0.054,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:39.016059 +AWS,us-west-2,m5a.large,reserved_1y,no_upfront,0.054,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:16.273294 +AWS,us-west-2,m5a.large,reserved_1y,partial_upfront,0.054,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:05.930585 +AWS,us-west-2,m5a.large,reserved_3y,all_upfront,0.054,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:47.399014 +AWS,us-west-2,m5a.large,reserved_3y,no_upfront,0.054,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:16.537860 +AWS,us-west-2,m5a.large,reserved_3y,partial_upfront,0.054,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:17.767951 +AWS,us-west-2,m5a.large,spot,NA,0.033677,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843268 +AWS,us-west-2,m5a.xlarge,on_demand,NA,0.172,USD,AWS Pricing API,2025-11-30T08:53:09.551251 +AWS,us-west-2,m5a.xlarge,reserved_1y,all_upfront,0.108,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:41.069660 +AWS,us-west-2,m5a.xlarge,reserved_1y,no_upfront,0.108,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:18.335812 +AWS,us-west-2,m5a.xlarge,reserved_1y,partial_upfront,0.108,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:07.951749 +AWS,us-west-2,m5a.xlarge,reserved_3y,all_upfront,0.108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:49.418785 +AWS,us-west-2,m5a.xlarge,reserved_3y,no_upfront,0.108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:18.596187 +AWS,us-west-2,m5a.xlarge,reserved_3y,partial_upfront,0.108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:19.834594 +AWS,us-west-2,m5a.xlarge,spot,NA,0.0835,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843306 +AWS,us-west-2,m5d.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:52:39.730782 +AWS,us-west-2,m5d.12xlarge,reserved_1y,all_upfront,1.709,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:11.509148 +AWS,us-west-2,m5d.12xlarge,reserved_1y,no_upfront,1.709,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:48.484941 +AWS,us-west-2,m5d.12xlarge,reserved_1y,partial_upfront,1.709,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:38.531528 +AWS,us-west-2,m5d.12xlarge,reserved_3y,all_upfront,1.709,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:20.045516 +AWS,us-west-2,m5d.12xlarge,reserved_3y,no_upfront,1.709,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:48.572623 +AWS,us-west-2,m5d.12xlarge,reserved_3y,partial_upfront,1.709,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:49.744106 +AWS,us-west-2,m5d.12xlarge,spot,NA,1.018235,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842370 +AWS,us-west-2,m5d.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T08:53:25.055817 +AWS,us-west-2,m5d.16xlarge,reserved_1y,all_upfront,2.892635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:56.334888 +AWS,us-west-2,m5d.16xlarge,reserved_1y,no_upfront,2.892635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:33.835211 +AWS,us-west-2,m5d.16xlarge,reserved_1y,partial_upfront,2.892635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:23.338472 +AWS,us-west-2,m5d.16xlarge,reserved_3y,all_upfront,1.446212,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:04.793979 +AWS,us-west-2,m5d.16xlarge,reserved_3y,no_upfront,1.446212,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:34.127905 +AWS,us-west-2,m5d.16xlarge,reserved_3y,partial_upfront,1.446212,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:35.433750 +AWS,us-west-2,m5d.16xlarge,spot,NA,1.343973,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843736 +AWS,us-west-2,m5d.24xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:53:08.461628 +AWS,us-west-2,m5d.24xlarge,reserved_1y,all_upfront,3.417,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:39.975291 +AWS,us-west-2,m5d.24xlarge,reserved_1y,no_upfront,3.417,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:17.247761 +AWS,us-west-2,m5d.24xlarge,reserved_1y,partial_upfront,3.417,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:06.872612 +AWS,us-west-2,m5d.24xlarge,reserved_3y,all_upfront,3.417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:48.338575 +AWS,us-west-2,m5d.24xlarge,reserved_3y,no_upfront,3.417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:17.497653 +AWS,us-west-2,m5d.24xlarge,reserved_3y,partial_upfront,3.417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:18.727598 +AWS,us-west-2,m5d.24xlarge,spot,NA,2.316297,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843230 +AWS,us-west-2,m5d.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:52:52.720142 +AWS,us-west-2,m5d.2xlarge,reserved_1y,all_upfront,0.271616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:24.378990 +AWS,us-west-2,m5d.2xlarge,reserved_1y,no_upfront,0.271616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:01.473829 +AWS,us-west-2,m5d.2xlarge,reserved_1y,partial_upfront,0.271616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:51.365457 +AWS,us-west-2,m5d.2xlarge,reserved_3y,all_upfront,0.181205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:32.848578 +AWS,us-west-2,m5d.2xlarge,reserved_3y,no_upfront,0.181205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:01.454940 +AWS,us-west-2,m5d.2xlarge,reserved_3y,partial_upfront,0.181205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:02.820356 +AWS,us-west-2,m5d.2xlarge,spot,NA,0.175603,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842791 +AWS,us-west-2,m5d.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:53:03.971304 +AWS,us-west-2,m5d.4xlarge,reserved_1y,all_upfront,0.531507,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:35.485358 +AWS,us-west-2,m5d.4xlarge,reserved_1y,no_upfront,0.531507,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:12.730402 +AWS,us-west-2,m5d.4xlarge,reserved_1y,partial_upfront,0.531507,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:02.437859 +AWS,us-west-2,m5d.4xlarge,reserved_3y,all_upfront,0.177169,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:43.902298 +AWS,us-west-2,m5d.4xlarge,reserved_3y,no_upfront,0.177169,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:12.934572 +AWS,us-west-2,m5d.4xlarge,reserved_3y,partial_upfront,0.177169,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:14.156791 +AWS,us-west-2,m5d.4xlarge,spot,NA,0.403533,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843120 +AWS,us-west-2,m5d.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T08:53:47.779902 +AWS,us-west-2,m5d.8xlarge,reserved_1y,all_upfront,1.260479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:18.801954 +AWS,us-west-2,m5d.8xlarge,reserved_1y,no_upfront,1.260479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:56.517526 +AWS,us-west-2,m5d.8xlarge,reserved_1y,partial_upfront,1.260479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:45.702886 +AWS,us-west-2,m5d.8xlarge,reserved_3y,all_upfront,0.84016,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:27.051475 +AWS,us-west-2,m5d.8xlarge,reserved_3y,no_upfront,0.84016,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:56.916574 +AWS,us-west-2,m5d.8xlarge,reserved_3y,partial_upfront,0.84016,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:58.338396 +AWS,us-west-2,m5d.8xlarge,spot,NA,0.783192,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844418 +AWS,us-west-2,m5d.large,on_demand,NA,0.113,USD,AWS Pricing API,2025-11-30T08:52:43.573053 +AWS,us-west-2,m5d.large,reserved_1y,all_upfront,0.104995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:15.299280 +AWS,us-west-2,m5d.large,reserved_1y,no_upfront,0.104995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:52.311132 +AWS,us-west-2,m5d.large,reserved_1y,partial_upfront,0.104995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:42.335425 +AWS,us-west-2,m5d.large,reserved_3y,all_upfront,0.052332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:23.830961 +AWS,us-west-2,m5d.large,reserved_3y,no_upfront,0.052332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:52.368404 +AWS,us-west-2,m5d.large,reserved_3y,partial_upfront,0.052332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:53.580266 +AWS,us-west-2,m5d.large,spot,NA,0.048847,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842511 +AWS,us-west-2,m5d.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:52:59.698741 +AWS,us-west-2,m5d.xlarge,reserved_1y,all_upfront,0.154452,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:31.282368 +AWS,us-west-2,m5d.xlarge,reserved_1y,no_upfront,0.154452,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:08.520325 +AWS,us-west-2,m5d.xlarge,reserved_1y,partial_upfront,0.154452,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:58.226464 +AWS,us-west-2,m5d.xlarge,reserved_3y,all_upfront,0.051484,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:39.735183 +AWS,us-west-2,m5d.xlarge,reserved_3y,no_upfront,0.051484,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:08.648746 +AWS,us-west-2,m5d.xlarge,reserved_3y,partial_upfront,0.051484,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:09.856177 +AWS,us-west-2,m5d.xlarge,spot,NA,0.094237,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843023 +AWS,us-west-2,m5dn.12xlarge,on_demand,NA,3.264,USD,AWS Pricing API,2025-11-30T08:52:41.917569 +AWS,us-west-2,m5dn.12xlarge,reserved_1y,all_upfront,2.702941,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:13.675793 +AWS,us-west-2,m5dn.12xlarge,reserved_1y,no_upfront,2.702941,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:50.674807 +AWS,us-west-2,m5dn.12xlarge,reserved_1y,partial_upfront,2.702941,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:40.707740 +AWS,us-west-2,m5dn.12xlarge,reserved_3y,all_upfront,1.351647,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:22.217686 +AWS,us-west-2,m5dn.12xlarge,reserved_3y,no_upfront,1.351647,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:50.743003 +AWS,us-west-2,m5dn.12xlarge,reserved_3y,partial_upfront,1.351647,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:51.936440 +AWS,us-west-2,m5dn.12xlarge,spot,NA,1.278312,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842471 +AWS,us-west-2,m5dn.16xlarge,on_demand,NA,4.352,USD,AWS Pricing API,2025-11-30T08:53:16.244019 +AWS,us-west-2,m5dn.16xlarge,reserved_1y,all_upfront,2.968379,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:47.693462 +AWS,us-west-2,m5dn.16xlarge,reserved_1y,no_upfront,2.968379,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:25.036658 +AWS,us-west-2,m5dn.16xlarge,reserved_1y,partial_upfront,2.968379,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:14.626419 +AWS,us-west-2,m5dn.16xlarge,reserved_3y,all_upfront,0.98946,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:56.112464 +AWS,us-west-2,m5dn.16xlarge,reserved_3y,no_upfront,0.98946,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:25.326902 +AWS,us-west-2,m5dn.16xlarge,reserved_3y,partial_upfront,0.98946,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:26.585496 +AWS,us-west-2,m5dn.16xlarge,spot,NA,1.611544,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843512 +AWS,us-west-2,m5dn.24xlarge,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T08:53:40.902874 +AWS,us-west-2,m5dn.24xlarge,reserved_1y,all_upfront,4.771,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:12.029337 +AWS,us-west-2,m5dn.24xlarge,reserved_1y,no_upfront,4.771,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:49.686659 +AWS,us-west-2,m5dn.24xlarge,reserved_1y,partial_upfront,4.771,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:38.919947 +AWS,us-west-2,m5dn.24xlarge,reserved_3y,all_upfront,4.771,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:20.283248 +AWS,us-west-2,m5dn.24xlarge,reserved_3y,no_upfront,4.771,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:50.024016 +AWS,us-west-2,m5dn.24xlarge,reserved_3y,partial_upfront,4.771,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:51.414314 +AWS,us-west-2,m5dn.24xlarge,spot,NA,2.547297,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844222 +AWS,us-west-2,m5dn.2xlarge,on_demand,NA,0.544,USD,AWS Pricing API,2025-11-30T08:52:38.775194 +AWS,us-west-2,m5dn.2xlarge,reserved_1y,all_upfront,0.391721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:10.563058 +AWS,us-west-2,m5dn.2xlarge,reserved_1y,no_upfront,0.391721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:47.532845 +AWS,us-west-2,m5dn.2xlarge,reserved_1y,partial_upfront,0.391721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:37.577166 +AWS,us-west-2,m5dn.2xlarge,reserved_3y,all_upfront,0.195907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:19.098122 +AWS,us-west-2,m5dn.2xlarge,reserved_3y,no_upfront,0.195907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:47.637305 +AWS,us-west-2,m5dn.2xlarge,reserved_3y,partial_upfront,0.195907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:48.751235 +AWS,us-west-2,m5dn.2xlarge,spot,NA,0.273231,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842381 +AWS,us-west-2,m5dn.4xlarge,on_demand,NA,1.088,USD,AWS Pricing API,2025-11-30T08:53:18.991664 +AWS,us-west-2,m5dn.4xlarge,reserved_1y,all_upfront,0.486,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:50.394996 +AWS,us-west-2,m5dn.4xlarge,reserved_1y,no_upfront,0.486,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:27.765778 +AWS,us-west-2,m5dn.4xlarge,reserved_1y,partial_upfront,0.486,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:17.373184 +AWS,us-west-2,m5dn.4xlarge,reserved_3y,all_upfront,0.486,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:58.814489 +AWS,us-west-2,m5dn.4xlarge,reserved_3y,no_upfront,0.486,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:28.081024 +AWS,us-west-2,m5dn.4xlarge,reserved_3y,partial_upfront,0.486,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:29.356092 +AWS,us-west-2,m5dn.4xlarge,spot,NA,0.515266,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843583 +AWS,us-west-2,m5dn.8xlarge,on_demand,NA,2.176,USD,AWS Pricing API,2025-11-30T08:52:39.867924 +AWS,us-west-2,m5dn.8xlarge,reserved_1y,all_upfront,1.305854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:11.643478 +AWS,us-west-2,m5dn.8xlarge,reserved_1y,no_upfront,1.305854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:48.621022 +AWS,us-west-2,m5dn.8xlarge,reserved_1y,partial_upfront,1.305854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:38.665303 +AWS,us-west-2,m5dn.8xlarge,reserved_3y,all_upfront,0.870618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:20.178315 +AWS,us-west-2,m5dn.8xlarge,reserved_3y,no_upfront,0.870618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:48.704883 +AWS,us-west-2,m5dn.8xlarge,reserved_3y,partial_upfront,0.870618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:49.880541 +AWS,us-west-2,m5dn.8xlarge,spot,NA,0.94732,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842389 +AWS,us-west-2,m5dn.large,on_demand,NA,0.136,USD,AWS Pricing API,2025-11-30T08:53:34.442159 +AWS,us-west-2,m5dn.large,reserved_1y,all_upfront,0.097402,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:05.607486 +AWS,us-west-2,m5dn.large,reserved_1y,no_upfront,0.097402,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:43.219532 +AWS,us-west-2,m5dn.large,reserved_1y,partial_upfront,0.097402,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:32.593409 +AWS,us-west-2,m5dn.large,reserved_3y,all_upfront,0.048467,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:13.990533 +AWS,us-west-2,m5dn.large,reserved_3y,no_upfront,0.048467,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:43.526972 +AWS,us-west-2,m5dn.large,reserved_3y,partial_upfront,0.048467,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:44.903198 +AWS,us-west-2,m5dn.large,spot,NA,0.055475,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843992 +AWS,us-west-2,m5dn.metal,on_demand,NA,6.528,USD,AWS Pricing API,2025-11-30T08:53:45.859747 +AWS,us-west-2,m5dn.metal,reserved_1y,all_upfront,3.83847,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:16.895731 +AWS,us-west-2,m5dn.metal,reserved_1y,no_upfront,3.83847,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:54.593768 +AWS,us-west-2,m5dn.metal,reserved_1y,partial_upfront,3.83847,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:43.797762 +AWS,us-west-2,m5dn.metal,reserved_3y,all_upfront,1.27949,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:25.167875 +AWS,us-west-2,m5dn.metal,reserved_3y,no_upfront,1.27949,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:54.997578 +AWS,us-west-2,m5dn.metal,reserved_3y,partial_upfront,1.27949,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:56.404165 +AWS,us-west-2,m5dn.metal,spot,NA,2.384083,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844380 +AWS,us-west-2,m5dn.xlarge,on_demand,NA,0.272,USD,AWS Pricing API,2025-11-30T08:52:37.529170 +AWS,us-west-2,m5dn.xlarge,reserved_1y,all_upfront,0.33105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:09.336689 +AWS,us-west-2,m5dn.xlarge,reserved_1y,no_upfront,0.33105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:46.284420 +AWS,us-west-2,m5dn.xlarge,reserved_1y,partial_upfront,0.33105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:36.356280 +AWS,us-west-2,m5dn.xlarge,reserved_3y,all_upfront,0.11035,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:17.889142 +AWS,us-west-2,m5dn.xlarge,reserved_3y,no_upfront,0.11035,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:46.422939 +AWS,us-west-2,m5dn.xlarge,reserved_3y,partial_upfront,0.11035,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:47.497008 +AWS,us-west-2,m5dn.xlarge,spot,NA,0.124472,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842343 +AWS,us-west-2,m5n.12xlarge,on_demand,NA,2.856,USD,AWS Pricing API,2025-11-30T08:52:59.426687 +AWS,us-west-2,m5n.12xlarge,reserved_1y,all_upfront,1.713849,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:31.013697 +AWS,us-west-2,m5n.12xlarge,reserved_1y,no_upfront,1.713849,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:08.246981 +AWS,us-west-2,m5n.12xlarge,reserved_1y,partial_upfront,1.713849,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:57.956355 +AWS,us-west-2,m5n.12xlarge,reserved_3y,all_upfront,1.142616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:39.468117 +AWS,us-west-2,m5n.12xlarge,reserved_3y,no_upfront,1.142616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:08.369839 +AWS,us-west-2,m5n.12xlarge,reserved_3y,partial_upfront,1.142616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:09.580393 +AWS,us-west-2,m5n.12xlarge,spot,NA,1.223459,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843006 +AWS,us-west-2,m5n.16xlarge,on_demand,NA,3.808,USD,AWS Pricing API,2025-11-30T08:52:56.955983 +AWS,us-west-2,m5n.16xlarge,reserved_1y,all_upfront,2.719155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:28.584336 +AWS,us-west-2,m5n.16xlarge,reserved_1y,no_upfront,2.719155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:05.725899 +AWS,us-west-2,m5n.16xlarge,reserved_1y,partial_upfront,2.719155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:55.535035 +AWS,us-west-2,m5n.16xlarge,reserved_3y,all_upfront,1.359718,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:37.048064 +AWS,us-west-2,m5n.16xlarge,reserved_3y,no_upfront,1.359718,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:05.907338 +AWS,us-west-2,m5n.16xlarge,reserved_3y,partial_upfront,1.359718,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:07.100947 +AWS,us-west-2,m5n.16xlarge,spot,NA,1.558909,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842915 +AWS,us-west-2,m5n.24xlarge,on_demand,NA,5.712,USD,AWS Pricing API,2025-11-30T08:52:38.349460 +AWS,us-west-2,m5n.24xlarge,reserved_1y,all_upfront,3.969932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:10.146284 +AWS,us-west-2,m5n.24xlarge,reserved_1y,no_upfront,3.969932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:47.111093 +AWS,us-west-2,m5n.24xlarge,reserved_1y,partial_upfront,3.969932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:37.170143 +AWS,us-west-2,m5n.24xlarge,reserved_3y,all_upfront,2.646644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:18.696663 +AWS,us-west-2,m5n.24xlarge,reserved_3y,no_upfront,2.646644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:47.231882 +AWS,us-west-2,m5n.24xlarge,reserved_3y,partial_upfront,2.646644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:48.340853 +AWS,us-west-2,m5n.24xlarge,spot,NA,2.550229,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842351 +AWS,us-west-2,m5n.2xlarge,on_demand,NA,0.476,USD,AWS Pricing API,2025-11-30T08:53:10.787973 +AWS,us-west-2,m5n.2xlarge,reserved_1y,all_upfront,0.279909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:42.286260 +AWS,us-west-2,m5n.2xlarge,reserved_1y,no_upfront,0.279909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:19.568914 +AWS,us-west-2,m5n.2xlarge,reserved_1y,partial_upfront,0.279909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:09.177812 +AWS,us-west-2,m5n.2xlarge,reserved_3y,all_upfront,0.093303,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:50.636794 +AWS,us-west-2,m5n.2xlarge,reserved_3y,no_upfront,0.093303,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:19.829820 +AWS,us-west-2,m5n.2xlarge,reserved_3y,partial_upfront,0.093303,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:21.074975 +AWS,us-west-2,m5n.2xlarge,spot,NA,0.235621,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843321 +AWS,us-west-2,m5n.4xlarge,on_demand,NA,0.952,USD,AWS Pricing API,2025-11-30T08:53:33.597589 +AWS,us-west-2,m5n.4xlarge,reserved_1y,all_upfront,0.571616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:04.797378 +AWS,us-west-2,m5n.4xlarge,reserved_1y,no_upfront,0.571616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:42.404987 +AWS,us-west-2,m5n.4xlarge,reserved_1y,partial_upfront,0.571616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:31.781283 +AWS,us-west-2,m5n.4xlarge,reserved_3y,all_upfront,0.381205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:13.162030 +AWS,us-west-2,m5n.4xlarge,reserved_3y,no_upfront,0.381205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:42.673536 +AWS,us-west-2,m5n.4xlarge,reserved_3y,partial_upfront,0.381205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:44.074935 +AWS,us-west-2,m5n.4xlarge,spot,NA,0.417149,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844032 +AWS,us-west-2,m5n.8xlarge,on_demand,NA,1.904,USD,AWS Pricing API,2025-11-30T08:52:58.877393 +AWS,us-west-2,m5n.8xlarge,reserved_1y,all_upfront,0.734,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:30.476084 +AWS,us-west-2,m5n.8xlarge,reserved_1y,no_upfront,0.734,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:07.700616 +AWS,us-west-2,m5n.8xlarge,reserved_1y,partial_upfront,0.734,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:57.418447 +AWS,us-west-2,m5n.8xlarge,reserved_3y,all_upfront,0.734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:38.914914 +AWS,us-west-2,m5n.8xlarge,reserved_3y,no_upfront,0.734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:07.823398 +AWS,us-west-2,m5n.8xlarge,reserved_3y,partial_upfront,0.734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:09.032379 +AWS,us-west-2,m5n.8xlarge,spot,NA,0.803074,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842983 +AWS,us-west-2,m5n.large,on_demand,NA,0.119,USD,AWS Pricing API,2025-11-30T08:52:51.211897 +AWS,us-west-2,m5n.large,reserved_1y,all_upfront,0.069977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:22.892738 +AWS,us-west-2,m5n.large,reserved_1y,no_upfront,0.069977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:59.969349 +AWS,us-west-2,m5n.large,reserved_1y,partial_upfront,0.069977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:49.888109 +AWS,us-west-2,m5n.large,reserved_3y,all_upfront,0.023326,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:31.367812 +AWS,us-west-2,m5n.large,reserved_3y,no_upfront,0.023326,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:59.976793 +AWS,us-west-2,m5n.large,reserved_3y,partial_upfront,0.023326,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:01.296062 +AWS,us-west-2,m5n.large,spot,NA,0.057775,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842778 +AWS,us-west-2,m5n.metal,on_demand,NA,5.712,USD,AWS Pricing API,2025-11-30T08:53:15.566739 +AWS,us-west-2,m5n.metal,reserved_1y,all_upfront,4.6839,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:47.011903 +AWS,us-west-2,m5n.metal,reserved_1y,no_upfront,4.6839,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:24.353367 +AWS,us-west-2,m5n.metal,reserved_1y,partial_upfront,4.6839,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:13.953489 +AWS,us-west-2,m5n.metal,reserved_3y,all_upfront,2.341967,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:55.445071 +AWS,us-west-2,m5n.metal,reserved_3y,no_upfront,2.341967,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:24.643839 +AWS,us-west-2,m5n.metal,reserved_3y,partial_upfront,2.341967,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:25.902398 +AWS,us-west-2,m5n.metal,spot,NA,2.066365,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843480 +AWS,us-west-2,m5n.xlarge,on_demand,NA,0.238,USD,AWS Pricing API,2025-11-30T08:53:10.514409 +AWS,us-west-2,m5n.xlarge,reserved_1y,all_upfront,0.174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:42.017103 +AWS,us-west-2,m5n.xlarge,reserved_1y,no_upfront,0.174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:19.295083 +AWS,us-west-2,m5n.xlarge,reserved_1y,partial_upfront,0.174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:08.909363 +AWS,us-west-2,m5n.xlarge,reserved_3y,all_upfront,0.174,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:50.360485 +AWS,us-west-2,m5n.xlarge,reserved_3y,no_upfront,0.174,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:19.554586 +AWS,us-west-2,m5n.xlarge,reserved_3y,partial_upfront,0.174,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:20.790719 +AWS,us-west-2,m5n.xlarge,spot,NA,0.105464,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843348 +AWS,us-west-2,m5zn.12xlarge,on_demand,NA,3.9641,USD,AWS Pricing API,2025-11-30T08:53:15.703066 +AWS,us-west-2,m5zn.12xlarge,reserved_1y,all_upfront,2.797032,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:47.147581 +AWS,us-west-2,m5zn.12xlarge,reserved_1y,no_upfront,2.797032,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:24.491500 +AWS,us-west-2,m5zn.12xlarge,reserved_1y,partial_upfront,2.797032,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:14.087241 +AWS,us-west-2,m5zn.12xlarge,reserved_3y,all_upfront,0.932344,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:55.577083 +AWS,us-west-2,m5zn.12xlarge,reserved_3y,no_upfront,0.932344,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:24.781001 +AWS,us-west-2,m5zn.12xlarge,reserved_3y,partial_upfront,0.932344,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:26.040582 +AWS,us-west-2,m5zn.12xlarge,spot,NA,1.870309,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843476 +AWS,us-west-2,m5zn.2xlarge,on_demand,NA,0.6607,USD,AWS Pricing API,2025-11-30T08:52:44.938045 +AWS,us-west-2,m5zn.2xlarge,reserved_1y,all_upfront,0.46621,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:16.651132 +AWS,us-west-2,m5zn.2xlarge,reserved_1y,no_upfront,0.46621,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:53.709547 +AWS,us-west-2,m5zn.2xlarge,reserved_1y,partial_upfront,0.46621,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:43.675099 +AWS,us-west-2,m5zn.2xlarge,reserved_3y,all_upfront,0.155403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:25.186452 +AWS,us-west-2,m5zn.2xlarge,reserved_3y,no_upfront,0.155403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:53.718886 +AWS,us-west-2,m5zn.2xlarge,reserved_3y,partial_upfront,0.155403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:54.955541 +AWS,us-west-2,m5zn.2xlarge,spot,NA,0.312567,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842547 +AWS,us-west-2,m5zn.3xlarge,on_demand,NA,0.991,USD,AWS Pricing API,2025-11-30T08:53:19.265364 +AWS,us-west-2,m5zn.3xlarge,reserved_1y,all_upfront,0.582763,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:50.663629 +AWS,us-west-2,m5zn.3xlarge,reserved_1y,no_upfront,0.582763,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:28.038853 +AWS,us-west-2,m5zn.3xlarge,reserved_1y,partial_upfront,0.582763,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:17.639794 +AWS,us-west-2,m5zn.3xlarge,reserved_3y,all_upfront,0.194254,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:59.084647 +AWS,us-west-2,m5zn.3xlarge,reserved_3y,no_upfront,0.194254,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:28.354801 +AWS,us-west-2,m5zn.3xlarge,reserved_3y,partial_upfront,0.194254,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:29.636561 +AWS,us-west-2,m5zn.3xlarge,spot,NA,0.56349,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843568 +AWS,us-west-2,m5zn.6xlarge,on_demand,NA,1.982,USD,AWS Pricing API,2025-11-30T08:52:39.049299 +AWS,us-west-2,m5zn.6xlarge,reserved_1y,all_upfront,1.427084,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:10.831290 +AWS,us-west-2,m5zn.6xlarge,reserved_1y,no_upfront,1.427084,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:47.806550 +AWS,us-west-2,m5zn.6xlarge,reserved_1y,partial_upfront,1.427084,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:37.846282 +AWS,us-west-2,m5zn.6xlarge,reserved_3y,all_upfront,0.951361,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:19.372874 +AWS,us-west-2,m5zn.6xlarge,reserved_3y,no_upfront,0.951361,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:47.905928 +AWS,us-west-2,m5zn.6xlarge,reserved_3y,partial_upfront,0.951361,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:49.037102 +AWS,us-west-2,m5zn.6xlarge,spot,NA,0.996824,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842406 +AWS,us-west-2,m5zn.large,on_demand,NA,0.1652,USD,AWS Pricing API,2025-11-30T08:53:08.865912 +AWS,us-west-2,m5zn.large,reserved_1y,all_upfront,0.186301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:40.380147 +AWS,us-west-2,m5zn.large,reserved_1y,no_upfront,0.186301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:17.654936 +AWS,us-west-2,m5zn.large,reserved_1y,partial_upfront,0.186301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:07.278164 +AWS,us-west-2,m5zn.large,reserved_3y,all_upfront,0.0621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:48.748389 +AWS,us-west-2,m5zn.large,reserved_3y,no_upfront,0.0621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:17.908937 +AWS,us-west-2,m5zn.large,reserved_3y,partial_upfront,0.0621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:19.143446 +AWS,us-west-2,m5zn.large,spot,NA,0.063105,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843282 +AWS,us-west-2,m5zn.metal,on_demand,NA,3.9641,USD,AWS Pricing API,2025-11-30T08:53:46.412131 +AWS,us-west-2,m5zn.metal,reserved_1y,all_upfront,2.330936,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:17.442935 +AWS,us-west-2,m5zn.metal,reserved_1y,no_upfront,2.330936,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:55.141628 +AWS,us-west-2,m5zn.metal,reserved_1y,partial_upfront,2.330936,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:44.340019 +AWS,us-west-2,m5zn.metal,reserved_3y,all_upfront,0.776979,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:25.707194 +AWS,us-west-2,m5zn.metal,reserved_3y,no_upfront,0.776979,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:55.547147 +AWS,us-west-2,m5zn.metal,reserved_3y,partial_upfront,0.776979,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:56.954622 +AWS,us-west-2,m5zn.metal,spot,NA,1.460776,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844356 +AWS,us-west-2,m5zn.xlarge,on_demand,NA,0.3303,USD,AWS Pricing API,2025-11-30T08:52:44.121716 +AWS,us-west-2,m5zn.xlarge,reserved_1y,all_upfront,0.2497,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:15.833559 +AWS,us-west-2,m5zn.xlarge,reserved_1y,no_upfront,0.2497,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:52.853958 +AWS,us-west-2,m5zn.xlarge,reserved_1y,partial_upfront,0.2497,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:42.872032 +AWS,us-west-2,m5zn.xlarge,reserved_3y,all_upfront,0.2497,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:24.379461 +AWS,us-west-2,m5zn.xlarge,reserved_3y,no_upfront,0.2497,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:52.906864 +AWS,us-west-2,m5zn.xlarge,reserved_3y,partial_upfront,0.2497,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:54.133806 +AWS,us-west-2,m5zn.xlarge,spot,NA,0.1478,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842571 +AWS,us-west-2,m6g.12xlarge,on_demand,NA,1.848,USD,AWS Pricing API,2025-11-30T08:52:53.956258 +AWS,us-west-2,m6g.12xlarge,reserved_1y,all_upfront,1.487653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:25.613873 +AWS,us-west-2,m6g.12xlarge,reserved_1y,no_upfront,1.487653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:02.721277 +AWS,us-west-2,m6g.12xlarge,reserved_1y,partial_upfront,1.487653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:52.583752 +AWS,us-west-2,m6g.12xlarge,reserved_3y,all_upfront,0.743818,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:34.072812 +AWS,us-west-2,m6g.12xlarge,reserved_3y,no_upfront,0.743818,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:02.870882 +AWS,us-west-2,m6g.12xlarge,reserved_3y,partial_upfront,0.743818,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:04.074709 +AWS,us-west-2,m6g.12xlarge,spot,NA,0.733439,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842845 +AWS,us-west-2,m6g.16xlarge,on_demand,NA,2.464,USD,AWS Pricing API,2025-11-30T08:52:49.293189 +AWS,us-west-2,m6g.16xlarge,reserved_1y,all_upfront,1.693151,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:20.993095 +AWS,us-west-2,m6g.16xlarge,reserved_1y,no_upfront,1.693151,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:58.056458 +AWS,us-west-2,m6g.16xlarge,reserved_1y,partial_upfront,1.693151,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:47.992490 +AWS,us-west-2,m6g.16xlarge,reserved_3y,all_upfront,0.564384,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:29.477378 +AWS,us-west-2,m6g.16xlarge,reserved_3y,no_upfront,0.564384,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:58.072930 +AWS,us-west-2,m6g.16xlarge,reserved_3y,partial_upfront,0.564384,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:59.368294 +AWS,us-west-2,m6g.16xlarge,spot,NA,0.890619,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842689 +AWS,us-west-2,m6g.2xlarge,on_demand,NA,0.308,USD,AWS Pricing API,2025-11-30T08:53:10.105600 +AWS,us-west-2,m6g.2xlarge,reserved_1y,all_upfront,0.287982,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:41.616242 +AWS,us-west-2,m6g.2xlarge,reserved_1y,no_upfront,0.287982,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:18.887791 +AWS,us-west-2,m6g.2xlarge,reserved_1y,partial_upfront,0.287982,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:08.505154 +AWS,us-west-2,m6g.2xlarge,reserved_3y,all_upfront,0.143994,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:49.955904 +AWS,us-west-2,m6g.2xlarge,reserved_3y,no_upfront,0.143994,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:19.144190 +AWS,us-west-2,m6g.2xlarge,reserved_3y,partial_upfront,0.143994,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:20.380797 +AWS,us-west-2,m6g.2xlarge,spot,NA,0.119135,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843317 +AWS,us-west-2,m6g.4xlarge,on_demand,NA,0.616,USD,AWS Pricing API,2025-11-30T08:53:36.952205 +AWS,us-west-2,m6g.4xlarge,reserved_1y,all_upfront,0.368018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:08.027048 +AWS,us-west-2,m6g.4xlarge,reserved_1y,no_upfront,0.368018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:45.696756 +AWS,us-west-2,m6g.4xlarge,reserved_1y,partial_upfront,0.368018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:35.016907 +AWS,us-west-2,m6g.4xlarge,reserved_3y,all_upfront,0.245339,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:16.408841 +AWS,us-west-2,m6g.4xlarge,reserved_3y,no_upfront,0.245339,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:45.994128 +AWS,us-west-2,m6g.4xlarge,reserved_3y,partial_upfront,0.245339,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:47.411195 +AWS,us-west-2,m6g.4xlarge,spot,NA,0.226466,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844098 +AWS,us-west-2,m6g.8xlarge,on_demand,NA,1.232,USD,AWS Pricing API,2025-11-30T08:53:17.614994 +AWS,us-west-2,m6g.8xlarge,reserved_1y,all_upfront,0.736037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:49.049577 +AWS,us-west-2,m6g.8xlarge,reserved_1y,no_upfront,0.736037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:26.408855 +AWS,us-west-2,m6g.8xlarge,reserved_1y,partial_upfront,0.736037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:16.021468 +AWS,us-west-2,m6g.8xlarge,reserved_3y,all_upfront,0.490679,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:57.468572 +AWS,us-west-2,m6g.8xlarge,reserved_3y,no_upfront,0.490679,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:26.699971 +AWS,us-west-2,m6g.8xlarge,reserved_3y,partial_upfront,0.490679,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:27.978673 +AWS,us-west-2,m6g.8xlarge,spot,NA,0.506486,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843534 +AWS,us-west-2,m6g.large,on_demand,NA,0.077,USD,AWS Pricing API,2025-11-30T08:52:54.504029 +AWS,us-west-2,m6g.large,reserved_1y,all_upfront,0.105822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:26.152468 +AWS,us-west-2,m6g.large,reserved_1y,no_upfront,0.105822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:03.269839 +AWS,us-west-2,m6g.large,reserved_1y,partial_upfront,0.105822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:53.123315 +AWS,us-west-2,m6g.large,reserved_3y,all_upfront,0.035274,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:34.604331 +AWS,us-west-2,m6g.large,reserved_3y,no_upfront,0.035274,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:03.422586 +AWS,us-west-2,m6g.large,reserved_3y,partial_upfront,0.035274,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:04.629137 +AWS,us-west-2,m6g.large,spot,NA,0.034818,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842837 +AWS,us-west-2,m6g.xlarge,on_demand,NA,0.154,USD,AWS Pricing API,2025-11-30T08:53:08.326833 +AWS,us-west-2,m6g.xlarge,reserved_1y,all_upfront,0.0966,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:39.832747 +AWS,us-west-2,m6g.xlarge,reserved_1y,no_upfront,0.0966,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:17.109788 +AWS,us-west-2,m6g.xlarge,reserved_1y,partial_upfront,0.0966,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:06.738858 +AWS,us-west-2,m6g.xlarge,reserved_3y,all_upfront,0.0966,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:48.204799 +AWS,us-west-2,m6g.xlarge,reserved_3y,no_upfront,0.0966,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:17.361691 +AWS,us-west-2,m6g.xlarge,reserved_3y,partial_upfront,0.0966,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:18.590877 +AWS,us-west-2,m6g.xlarge,spot,NA,0.060628,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843233 +AWS,us-west-2,m6gd.12xlarge,on_demand,NA,2.1696,USD,AWS Pricing API,2025-11-30T08:53:26.459693 +AWS,us-west-2,m6gd.12xlarge,reserved_1y,all_upfront,1.735612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:57.690514 +AWS,us-west-2,m6gd.12xlarge,reserved_1y,no_upfront,1.735612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:35.246732 +AWS,us-west-2,m6gd.12xlarge,reserved_1y,partial_upfront,1.735612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:24.697641 +AWS,us-west-2,m6gd.12xlarge,reserved_3y,all_upfront,0.867804,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:06.137268 +AWS,us-west-2,m6gd.12xlarge,reserved_3y,no_upfront,0.867804,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:35.508473 +AWS,us-west-2,m6gd.12xlarge,reserved_3y,partial_upfront,0.867804,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:36.828614 +AWS,us-west-2,m6gd.12xlarge,spot,NA,0.757731,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843786 +AWS,us-west-2,m6gd.16xlarge,on_demand,NA,2.8928,USD,AWS Pricing API,2025-11-30T08:53:28.806322 +AWS,us-west-2,m6gd.16xlarge,reserved_1y,all_upfront,1.966553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:00.025232 +AWS,us-west-2,m6gd.16xlarge,reserved_1y,no_upfront,1.966553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:37.632773 +AWS,us-west-2,m6gd.16xlarge,reserved_1y,partial_upfront,1.966553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:26.999034 +AWS,us-west-2,m6gd.16xlarge,reserved_3y,all_upfront,0.655518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:08.458886 +AWS,us-west-2,m6gd.16xlarge,reserved_3y,no_upfront,0.655518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:37.853894 +AWS,us-west-2,m6gd.16xlarge,reserved_3y,partial_upfront,0.655518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:39.218113 +AWS,us-west-2,m6gd.16xlarge,spot,NA,1.025959,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843841 +AWS,us-west-2,m6gd.2xlarge,on_demand,NA,0.3616,USD,AWS Pricing API,2025-11-30T08:52:56.680176 +AWS,us-west-2,m6gd.2xlarge,reserved_1y,all_upfront,0.212671,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:28.315080 +AWS,us-west-2,m6gd.2xlarge,reserved_1y,no_upfront,0.212671,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:05.451537 +AWS,us-west-2,m6gd.2xlarge,reserved_1y,partial_upfront,0.212671,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:55.265195 +AWS,us-west-2,m6gd.2xlarge,reserved_3y,all_upfront,0.07089,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:36.773685 +AWS,us-west-2,m6gd.2xlarge,reserved_3y,no_upfront,0.07089,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:05.634852 +AWS,us-west-2,m6gd.2xlarge,reserved_3y,partial_upfront,0.07089,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:06.826676 +AWS,us-west-2,m6gd.2xlarge,spot,NA,0.172986,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842908 +AWS,us-west-2,m6gd.4xlarge,on_demand,NA,0.7232,USD,AWS Pricing API,2025-11-30T08:53:23.525422 +AWS,us-west-2,m6gd.4xlarge,reserved_1y,all_upfront,0.434009,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:54.853212 +AWS,us-west-2,m6gd.4xlarge,reserved_1y,no_upfront,0.434009,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:32.321252 +AWS,us-west-2,m6gd.4xlarge,reserved_1y,partial_upfront,0.434009,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:21.859039 +AWS,us-west-2,m6gd.4xlarge,reserved_3y,all_upfront,0.289336,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:03.310975 +AWS,us-west-2,m6gd.4xlarge,reserved_3y,no_upfront,0.289336,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:32.622784 +AWS,us-west-2,m6gd.4xlarge,reserved_3y,partial_upfront,0.289336,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:33.912283 +AWS,us-west-2,m6gd.4xlarge,spot,NA,0.287901,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843688 +AWS,us-west-2,m6gd.8xlarge,on_demand,NA,1.4464,USD,AWS Pricing API,2025-11-30T08:52:45.347513 +AWS,us-west-2,m6gd.8xlarge,reserved_1y,all_upfront,1.0535,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:17.064020 +AWS,us-west-2,m6gd.8xlarge,reserved_1y,no_upfront,1.0535,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:54.115395 +AWS,us-west-2,m6gd.8xlarge,reserved_1y,partial_upfront,1.0535,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:44.080302 +AWS,us-west-2,m6gd.8xlarge,reserved_3y,all_upfront,1.0535,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:25.590460 +AWS,us-west-2,m6gd.8xlarge,reserved_3y,no_upfront,1.0535,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:54.128278 +AWS,us-west-2,m6gd.8xlarge,reserved_3y,partial_upfront,1.0535,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:55.369214 +AWS,us-west-2,m6gd.8xlarge,spot,NA,0.585008,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842559 +AWS,us-west-2,m6gd.large,on_demand,NA,0.0904,USD,AWS Pricing API,2025-11-30T08:53:06.960310 +AWS,us-west-2,m6gd.large,reserved_1y,all_upfront,0.062793,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:38.469263 +AWS,us-west-2,m6gd.large,reserved_1y,no_upfront,0.062793,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:15.725090 +AWS,us-west-2,m6gd.large,reserved_1y,partial_upfront,0.062793,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:05.391527 +AWS,us-west-2,m6gd.large,reserved_3y,all_upfront,0.041864,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:46.864393 +AWS,us-west-2,m6gd.large,reserved_3y,no_upfront,0.041864,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:15.983651 +AWS,us-west-2,m6gd.large,reserved_3y,partial_upfront,0.041864,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:17.207312 +AWS,us-west-2,m6gd.large,spot,NA,0.050856,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843218 +AWS,us-west-2,m6gd.xlarge,on_demand,NA,0.1808,USD,AWS Pricing API,2025-11-30T08:53:00.116734 +AWS,us-west-2,m6gd.xlarge,reserved_1y,all_upfront,0.144647,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:31.694843 +AWS,us-west-2,m6gd.xlarge,reserved_1y,no_upfront,0.144647,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:08.927567 +AWS,us-west-2,m6gd.xlarge,reserved_1y,partial_upfront,0.144647,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:58.642766 +AWS,us-west-2,m6gd.xlarge,reserved_3y,all_upfront,0.072349,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:40.140250 +AWS,us-west-2,m6gd.xlarge,reserved_3y,no_upfront,0.072349,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:09.069843 +AWS,us-west-2,m6gd.xlarge,reserved_3y,partial_upfront,0.072349,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:10.280979 +AWS,us-west-2,m6gd.xlarge,spot,NA,0.087746,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843011 +AWS,us-west-2,m6i.12xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:52:46.166574 +AWS,us-west-2,m6i.12xlarge,reserved_1y,all_upfront,1.69272,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:17.865512 +AWS,us-west-2,m6i.12xlarge,reserved_1y,no_upfront,1.69272,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:54.925453 +AWS,us-west-2,m6i.12xlarge,reserved_1y,partial_upfront,1.69272,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:44.894270 +AWS,us-west-2,m6i.12xlarge,reserved_3y,all_upfront,1.69272,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:26.392099 +AWS,us-west-2,m6i.12xlarge,reserved_3y,no_upfront,1.69272,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:54.940238 +AWS,us-west-2,m6i.12xlarge,reserved_3y,partial_upfront,1.69272,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:56.191984 +AWS,us-west-2,m6i.12xlarge,spot,NA,0.906882,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842592 +AWS,us-west-2,m6i.16xlarge,on_demand,NA,3.072,USD,AWS Pricing API,2025-11-30T08:53:00.804849 +AWS,us-west-2,m6i.16xlarge,reserved_1y,all_upfront,2.03213,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:32.373591 +AWS,us-west-2,m6i.16xlarge,reserved_1y,no_upfront,2.03213,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:09.608322 +AWS,us-west-2,m6i.16xlarge,reserved_1y,partial_upfront,2.03213,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:59.315444 +AWS,us-west-2,m6i.16xlarge,reserved_3y,all_upfront,2.03213,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:40.811780 +AWS,us-west-2,m6i.16xlarge,reserved_3y,no_upfront,2.03213,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:09.763615 +AWS,us-west-2,m6i.16xlarge,reserved_3y,partial_upfront,2.03213,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:10.970993 +AWS,us-west-2,m6i.16xlarge,spot,NA,1.261334,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843034 +AWS,us-west-2,m6i.24xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:53:02.322464 +AWS,us-west-2,m6i.24xlarge,reserved_1y,all_upfront,2.844977,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:33.851224 +AWS,us-west-2,m6i.24xlarge,reserved_1y,no_upfront,2.844977,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:11.100975 +AWS,us-west-2,m6i.24xlarge,reserved_1y,partial_upfront,2.844977,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:00.793001 +AWS,us-west-2,m6i.24xlarge,reserved_3y,all_upfront,0.948326,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:42.286246 +AWS,us-west-2,m6i.24xlarge,reserved_3y,no_upfront,0.948326,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:11.269341 +AWS,us-west-2,m6i.24xlarge,reserved_3y,partial_upfront,0.948326,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:12.500243 +AWS,us-west-2,m6i.24xlarge,spot,NA,1.88396,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843081 +AWS,us-west-2,m6i.2xlarge,on_demand,NA,0.384,USD,AWS Pricing API,2025-11-30T08:53:21.327213 +AWS,us-west-2,m6i.2xlarge,reserved_1y,all_upfront,0.454795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:52.699686 +AWS,us-west-2,m6i.2xlarge,reserved_1y,no_upfront,0.454795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:30.096644 +AWS,us-west-2,m6i.2xlarge,reserved_1y,partial_upfront,0.454795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:19.684013 +AWS,us-west-2,m6i.2xlarge,reserved_3y,all_upfront,0.151598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:01.122877 +AWS,us-west-2,m6i.2xlarge,reserved_3y,no_upfront,0.151598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:30.430014 +AWS,us-west-2,m6i.2xlarge,reserved_3y,partial_upfront,0.151598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:31.706537 +AWS,us-west-2,m6i.2xlarge,spot,NA,0.152138,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843676 +AWS,us-west-2,m6i.32xlarge,on_demand,NA,6.144,USD,AWS Pricing API,2025-11-30T08:53:38.173398 +AWS,us-west-2,m6i.32xlarge,reserved_1y,all_upfront,4.299033,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:09.302180 +AWS,us-west-2,m6i.32xlarge,reserved_1y,no_upfront,4.299033,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:46.951837 +AWS,us-west-2,m6i.32xlarge,reserved_1y,partial_upfront,4.299033,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:36.227582 +AWS,us-west-2,m6i.32xlarge,reserved_3y,all_upfront,2.866004,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:17.613578 +AWS,us-west-2,m6i.32xlarge,reserved_3y,no_upfront,2.866004,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:47.247240 +AWS,us-west-2,m6i.32xlarge,reserved_3y,partial_upfront,2.866004,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:48.647031 +AWS,us-west-2,m6i.32xlarge,spot,NA,2.282163,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844140 +AWS,us-west-2,m6i.4xlarge,on_demand,NA,0.768,USD,AWS Pricing API,2025-11-30T08:52:48.337767 +AWS,us-west-2,m6i.4xlarge,reserved_1y,all_upfront,0.483815,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:20.035703 +AWS,us-west-2,m6i.4xlarge,reserved_1y,no_upfront,0.483815,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:57.099442 +AWS,us-west-2,m6i.4xlarge,reserved_1y,partial_upfront,0.483815,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:47.055308 +AWS,us-west-2,m6i.4xlarge,reserved_3y,all_upfront,0.322552,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:28.539297 +AWS,us-west-2,m6i.4xlarge,reserved_3y,no_upfront,0.322552,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:57.132060 +AWS,us-west-2,m6i.4xlarge,reserved_3y,partial_upfront,0.322552,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:58.397292 +AWS,us-west-2,m6i.4xlarge,spot,NA,0.318535,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842696 +AWS,us-west-2,m6i.8xlarge,on_demand,NA,1.536,USD,AWS Pricing API,2025-11-30T08:52:53.138133 +AWS,us-west-2,m6i.8xlarge,reserved_1y,all_upfront,1.053196,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:24.795352 +AWS,us-west-2,m6i.8xlarge,reserved_1y,no_upfront,1.053196,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:01.891424 +AWS,us-west-2,m6i.8xlarge,reserved_1y,partial_upfront,1.053196,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:51.769191 +AWS,us-west-2,m6i.8xlarge,reserved_3y,all_upfront,0.351065,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:33.256276 +AWS,us-west-2,m6i.8xlarge,reserved_3y,no_upfront,0.351065,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:01.866207 +AWS,us-west-2,m6i.8xlarge,reserved_3y,partial_upfront,0.351065,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:03.234413 +AWS,us-west-2,m6i.8xlarge,spot,NA,0.578865,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842818 +AWS,us-west-2,m6i.large,on_demand,NA,0.096,USD,AWS Pricing API,2025-11-30T08:53:03.834045 +AWS,us-west-2,m6i.large,reserved_1y,all_upfront,0.080662,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:35.351050 +AWS,us-west-2,m6i.large,reserved_1y,no_upfront,0.080662,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:12.595232 +AWS,us-west-2,m6i.large,reserved_1y,partial_upfront,0.080662,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:02.301322 +AWS,us-west-2,m6i.large,reserved_3y,all_upfront,0.040327,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:43.766211 +AWS,us-west-2,m6i.large,reserved_3y,no_upfront,0.040327,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:12.797912 +AWS,us-west-2,m6i.large,reserved_3y,partial_upfront,0.040327,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:14.011681 +AWS,us-west-2,m6i.large,spot,NA,0.040634,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843147 +AWS,us-west-2,m6i.xlarge,on_demand,NA,0.192,USD,AWS Pricing API,2025-11-30T08:52:39.592310 +AWS,us-west-2,m6i.xlarge,reserved_1y,all_upfront,0.161325,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:11.373739 +AWS,us-west-2,m6i.xlarge,reserved_1y,no_upfront,0.161325,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:48.348631 +AWS,us-west-2,m6i.xlarge,reserved_1y,partial_upfront,0.161325,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:38.393800 +AWS,us-west-2,m6i.xlarge,reserved_3y,all_upfront,0.080655,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:19.908869 +AWS,us-west-2,m6i.xlarge,reserved_3y,no_upfront,0.080655,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:48.438452 +AWS,us-west-2,m6i.xlarge,reserved_3y,partial_upfront,0.080655,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:49.593987 +AWS,us-west-2,m6i.xlarge,spot,NA,0.080295,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842374 +AWS,us-west-2,m6id.12xlarge,on_demand,NA,2.8476,USD,AWS Pricing API,2025-11-30T08:53:17.755815 +AWS,us-west-2,m6id.12xlarge,reserved_1y,all_upfront,3.2121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:49.183781 +AWS,us-west-2,m6id.12xlarge,reserved_1y,no_upfront,3.2121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:26.544796 +AWS,us-west-2,m6id.12xlarge,reserved_1y,partial_upfront,3.2121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:16.156435 +AWS,us-west-2,m6id.12xlarge,reserved_3y,all_upfront,1.0707,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:57.603667 +AWS,us-west-2,m6id.12xlarge,reserved_3y,no_upfront,1.0707,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:26.837181 +AWS,us-west-2,m6id.12xlarge,reserved_3y,partial_upfront,1.0707,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:28.116065 +AWS,us-west-2,m6id.12xlarge,spot,NA,1.071049,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843530 +AWS,us-west-2,m6id.16xlarge,on_demand,NA,3.7968,USD,AWS Pricing API,2025-11-30T08:52:44.802490 +AWS,us-west-2,m6id.16xlarge,reserved_1y,all_upfront,2.39198,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:16.515533 +AWS,us-west-2,m6id.16xlarge,reserved_1y,no_upfront,2.39198,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:53.539544 +AWS,us-west-2,m6id.16xlarge,reserved_1y,partial_upfront,2.39198,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:43.539935 +AWS,us-west-2,m6id.16xlarge,reserved_3y,all_upfront,2.39198,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:25.050438 +AWS,us-west-2,m6id.16xlarge,reserved_3y,no_upfront,2.39198,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:53.584054 +AWS,us-west-2,m6id.16xlarge,reserved_3y,partial_upfront,2.39198,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:54.818194 +AWS,us-west-2,m6id.16xlarge,spot,NA,1.380218,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842539 +AWS,us-west-2,m6id.24xlarge,on_demand,NA,5.6952,USD,AWS Pricing API,2025-11-30T08:52:49.017785 +AWS,us-west-2,m6id.24xlarge,reserved_1y,all_upfront,3.89258,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:20.726164 +AWS,us-west-2,m6id.24xlarge,reserved_1y,no_upfront,3.89258,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:57.785720 +AWS,us-west-2,m6id.24xlarge,reserved_1y,partial_upfront,3.89258,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:47.724776 +AWS,us-west-2,m6id.24xlarge,reserved_3y,all_upfront,1.297527,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:29.209069 +AWS,us-west-2,m6id.24xlarge,reserved_3y,no_upfront,1.297527,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:57.806542 +AWS,us-west-2,m6id.24xlarge,reserved_3y,partial_upfront,1.297527,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:59.091057 +AWS,us-west-2,m6id.24xlarge,spot,NA,2.136334,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842692 +AWS,us-west-2,m6id.2xlarge,on_demand,NA,0.4746,USD,AWS Pricing API,2025-11-30T08:52:41.369861 +AWS,us-west-2,m6id.2xlarge,reserved_1y,all_upfront,0.324429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:13.134697 +AWS,us-west-2,m6id.2xlarge,reserved_1y,no_upfront,0.324429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:50.124761 +AWS,us-west-2,m6id.2xlarge,reserved_1y,partial_upfront,0.324429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:40.160340 +AWS,us-west-2,m6id.2xlarge,reserved_3y,all_upfront,0.108143,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:21.680051 +AWS,us-west-2,m6id.2xlarge,reserved_3y,no_upfront,0.108143,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:50.187038 +AWS,us-west-2,m6id.2xlarge,reserved_3y,partial_upfront,0.108143,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:51.392616 +AWS,us-west-2,m6id.2xlarge,spot,NA,0.18005,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842491 +AWS,us-west-2,m6id.32xlarge,on_demand,NA,7.5936,USD,AWS Pricing API,2025-11-30T08:53:21.599590 +AWS,us-west-2,m6id.32xlarge,reserved_1y,all_upfront,4.465068,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:52.968325 +AWS,us-west-2,m6id.32xlarge,reserved_1y,no_upfront,4.465068,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:30.369984 +AWS,us-west-2,m6id.32xlarge,reserved_1y,partial_upfront,4.465068,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:19.954014 +AWS,us-west-2,m6id.32xlarge,reserved_3y,all_upfront,1.488356,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:01.398680 +AWS,us-west-2,m6id.32xlarge,reserved_3y,no_upfront,1.488356,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:30.704616 +AWS,us-west-2,m6id.32xlarge,reserved_3y,partial_upfront,1.488356,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:31.995635 +AWS,us-west-2,m6id.32xlarge,spot,NA,3.030763,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843641 +AWS,us-west-2,m6id.4xlarge,on_demand,NA,0.9492,USD,AWS Pricing API,2025-11-30T08:53:44.352639 +AWS,us-west-2,m6id.4xlarge,reserved_1y,all_upfront,0.569463,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:15.402535 +AWS,us-west-2,m6id.4xlarge,reserved_1y,no_upfront,0.569463,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:53.089733 +AWS,us-west-2,m6id.4xlarge,reserved_1y,partial_upfront,0.569463,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:42.313098 +AWS,us-west-2,m6id.4xlarge,reserved_3y,all_upfront,0.379661,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:23.671909 +AWS,us-west-2,m6id.4xlarge,reserved_3y,no_upfront,0.379661,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:53.479047 +AWS,us-west-2,m6id.4xlarge,reserved_3y,partial_upfront,0.379661,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:54.846717 +AWS,us-west-2,m6id.4xlarge,spot,NA,0.376659,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844273 +AWS,us-west-2,m6id.8xlarge,on_demand,NA,1.8984,USD,AWS Pricing API,2025-11-30T08:53:16.382381 +AWS,us-west-2,m6id.8xlarge,reserved_1y,all_upfront,1.297489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:47.827357 +AWS,us-west-2,m6id.8xlarge,reserved_1y,no_upfront,1.297489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:25.176312 +AWS,us-west-2,m6id.8xlarge,reserved_1y,partial_upfront,1.297489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:14.759046 +AWS,us-west-2,m6id.8xlarge,reserved_3y,all_upfront,0.432496,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:56.247353 +AWS,us-west-2,m6id.8xlarge,reserved_3y,no_upfront,0.432496,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:25.463732 +AWS,us-west-2,m6id.8xlarge,reserved_3y,partial_upfront,0.432496,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:26.723072 +AWS,us-west-2,m6id.8xlarge,spot,NA,0.888292,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843500 +AWS,us-west-2,m6id.large,on_demand,NA,0.11865,USD,AWS Pricing API,2025-11-30T08:53:45.453365 +AWS,us-west-2,m6id.large,reserved_1y,all_upfront,0.094963,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:16.493842 +AWS,us-west-2,m6id.large,reserved_1y,no_upfront,0.094963,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:54.183016 +AWS,us-west-2,m6id.large,reserved_1y,partial_upfront,0.094963,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:43.394587 +AWS,us-west-2,m6id.large,reserved_3y,all_upfront,0.047474,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:24.765416 +AWS,us-west-2,m6id.large,reserved_3y,no_upfront,0.047474,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:54.586972 +AWS,us-west-2,m6id.large,reserved_3y,partial_upfront,0.047474,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:55.986542 +AWS,us-west-2,m6id.large,spot,NA,0.044802,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844345 +AWS,us-west-2,m6id.xlarge,on_demand,NA,0.2373,USD,AWS Pricing API,2025-11-30T08:52:48.068942 +AWS,us-west-2,m6id.xlarge,reserved_1y,all_upfront,0.162215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:19.764859 +AWS,us-west-2,m6id.xlarge,reserved_1y,no_upfront,0.162215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:56.824581 +AWS,us-west-2,m6id.xlarge,reserved_1y,partial_upfront,0.162215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:46.784195 +AWS,us-west-2,m6id.xlarge,reserved_3y,all_upfront,0.054072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:28.269928 +AWS,us-west-2,m6id.xlarge,reserved_3y,no_upfront,0.054072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:56.862364 +AWS,us-west-2,m6id.xlarge,reserved_3y,partial_upfront,0.054072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:58.120829 +AWS,us-west-2,m6id.xlarge,spot,NA,0.090085,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842660 +AWS,us-west-2,m6idn.12xlarge,on_demand,NA,3.81888,USD,AWS Pricing API,2025-11-30T08:53:08.054606 +AWS,us-west-2,m6idn.12xlarge,reserved_1y,all_upfront,2.604795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:39.562800 +AWS,us-west-2,m6idn.12xlarge,reserved_1y,no_upfront,2.604795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:16.829604 +AWS,us-west-2,m6idn.12xlarge,reserved_1y,partial_upfront,2.604795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:06.469043 +AWS,us-west-2,m6idn.12xlarge,reserved_3y,all_upfront,0.868265,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:47.937832 +AWS,us-west-2,m6idn.12xlarge,reserved_3y,no_upfront,0.868265,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:17.088221 +AWS,us-west-2,m6idn.12xlarge,reserved_3y,partial_upfront,0.868265,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:18.316301 +AWS,us-west-2,m6idn.12xlarge,spot,NA,1.449552,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843237 +AWS,us-west-2,m6idn.16xlarge,on_demand,NA,5.09184,USD,AWS Pricing API,2025-11-30T08:53:31.427140 +AWS,us-west-2,m6idn.16xlarge,reserved_1y,all_upfront,3.543878,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:02.617505 +AWS,us-west-2,m6idn.16xlarge,reserved_1y,no_upfront,3.543878,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:40.234483 +AWS,us-west-2,m6idn.16xlarge,reserved_1y,partial_upfront,3.543878,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:29.611222 +AWS,us-west-2,m6idn.16xlarge,reserved_3y,all_upfront,2.362599,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:11.014155 +AWS,us-west-2,m6idn.16xlarge,reserved_3y,no_upfront,2.362599,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:40.462736 +AWS,us-west-2,m6idn.16xlarge,reserved_3y,partial_upfront,2.362599,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:41.842738 +AWS,us-west-2,m6idn.16xlarge,spot,NA,1.908903,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843918 +AWS,us-west-2,m6idn.24xlarge,on_demand,NA,7.63776,USD,AWS Pricing API,2025-11-30T08:53:13.918969 +AWS,us-west-2,m6idn.24xlarge,reserved_1y,all_upfront,4.81179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:45.396454 +AWS,us-west-2,m6idn.24xlarge,reserved_1y,no_upfront,4.81179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:22.713572 +AWS,us-west-2,m6idn.24xlarge,reserved_1y,partial_upfront,4.81179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:12.309575 +AWS,us-west-2,m6idn.24xlarge,reserved_3y,all_upfront,4.81179,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:53.824574 +AWS,us-west-2,m6idn.24xlarge,reserved_3y,no_upfront,4.81179,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:22.987064 +AWS,us-west-2,m6idn.24xlarge,reserved_3y,partial_upfront,4.81179,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:24.243747 +AWS,us-west-2,m6idn.24xlarge,spot,NA,2.874861,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843414 +AWS,us-west-2,m6idn.2xlarge,on_demand,NA,0.63648,USD,AWS Pricing API,2025-11-30T08:52:54.232051 +AWS,us-west-2,m6idn.2xlarge,reserved_1y,all_upfront,0.774543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:25.883108 +AWS,us-west-2,m6idn.2xlarge,reserved_1y,no_upfront,0.774543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:02.995033 +AWS,us-west-2,m6idn.2xlarge,reserved_1y,partial_upfront,0.774543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:52.852710 +AWS,us-west-2,m6idn.2xlarge,reserved_3y,all_upfront,0.258181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:34.339792 +AWS,us-west-2,m6idn.2xlarge,reserved_3y,no_upfront,0.258181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:03.146205 +AWS,us-west-2,m6idn.2xlarge,reserved_3y,partial_upfront,0.258181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:04.353750 +AWS,us-west-2,m6idn.2xlarge,spot,NA,0.243715,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842849 +AWS,us-west-2,m6idn.32xlarge,on_demand,NA,10.18368,USD,AWS Pricing API,2025-11-30T08:53:14.744077 +AWS,us-west-2,m6idn.32xlarge,reserved_1y,all_upfront,6.41572,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:46.198442 +AWS,us-west-2,m6idn.32xlarge,reserved_1y,no_upfront,6.41572,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:23.529942 +AWS,us-west-2,m6idn.32xlarge,reserved_1y,partial_upfront,6.41572,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:13.139864 +AWS,us-west-2,m6idn.32xlarge,reserved_3y,all_upfront,6.41572,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:54.633481 +AWS,us-west-2,m6idn.32xlarge,reserved_3y,no_upfront,6.41572,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:23.822231 +AWS,us-west-2,m6idn.32xlarge,reserved_3y,partial_upfront,6.41572,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:25.073617 +AWS,us-west-2,m6idn.32xlarge,spot,NA,4.005812,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843465 +AWS,us-west-2,m6idn.4xlarge,on_demand,NA,1.27296,USD,AWS Pricing API,2025-11-30T08:53:10.922620 +AWS,us-west-2,m6idn.4xlarge,reserved_1y,all_upfront,0.748516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:42.422543 +AWS,us-west-2,m6idn.4xlarge,reserved_1y,no_upfront,0.748516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:19.703388 +AWS,us-west-2,m6idn.4xlarge,reserved_1y,partial_upfront,0.748516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:09.312260 +AWS,us-west-2,m6idn.4xlarge,reserved_3y,all_upfront,0.249505,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:50.770544 +AWS,us-west-2,m6idn.4xlarge,reserved_3y,no_upfront,0.249505,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:19.967784 +AWS,us-west-2,m6idn.4xlarge,reserved_3y,partial_upfront,0.249505,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:21.215070 +AWS,us-west-2,m6idn.4xlarge,spot,NA,0.48496,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843341 +AWS,us-west-2,m6idn.8xlarge,on_demand,NA,2.54592,USD,AWS Pricing API,2025-11-30T08:52:38.911069 +AWS,us-west-2,m6idn.8xlarge,reserved_1y,all_upfront,1.60393,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:10.695903 +AWS,us-west-2,m6idn.8xlarge,reserved_1y,no_upfront,1.60393,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:47.667653 +AWS,us-west-2,m6idn.8xlarge,reserved_1y,partial_upfront,1.60393,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:37.711929 +AWS,us-west-2,m6idn.8xlarge,reserved_3y,all_upfront,1.60393,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:19.240511 +AWS,us-west-2,m6idn.8xlarge,reserved_3y,no_upfront,1.60393,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:47.771925 +AWS,us-west-2,m6idn.8xlarge,reserved_3y,partial_upfront,1.60393,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:48.899441 +AWS,us-west-2,m6idn.8xlarge,spot,NA,1.238269,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842377 +AWS,us-west-2,m6idn.large,on_demand,NA,0.15912,USD,AWS Pricing API,2025-11-30T08:53:25.324498 +AWS,us-west-2,m6idn.large,reserved_1y,all_upfront,0.11628,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:56.602956 +AWS,us-west-2,m6idn.large,reserved_1y,no_upfront,0.11628,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:34.125382 +AWS,us-west-2,m6idn.large,reserved_1y,partial_upfront,0.11628,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:23.611056 +AWS,us-west-2,m6idn.large,reserved_3y,all_upfront,0.11628,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:05.061866 +AWS,us-west-2,m6idn.large,reserved_3y,no_upfront,0.11628,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:34.410595 +AWS,us-west-2,m6idn.large,reserved_3y,partial_upfront,0.11628,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:35.708559 +AWS,us-west-2,m6idn.large,spot,NA,0.058432,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843771 +AWS,us-west-2,m6idn.xlarge,on_demand,NA,0.31824,USD,AWS Pricing API,2025-11-30T08:53:08.192334 +AWS,us-west-2,m6idn.xlarge,reserved_1y,all_upfront,0.20049,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:39.696213 +AWS,us-west-2,m6idn.xlarge,reserved_1y,no_upfront,0.20049,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:16.972669 +AWS,us-west-2,m6idn.xlarge,reserved_1y,partial_upfront,0.20049,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:06.605687 +AWS,us-west-2,m6idn.xlarge,reserved_3y,all_upfront,0.20049,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:48.071037 +AWS,us-west-2,m6idn.xlarge,reserved_3y,no_upfront,0.20049,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:17.224670 +AWS,us-west-2,m6idn.xlarge,reserved_3y,partial_upfront,0.20049,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:18.453876 +AWS,us-west-2,m6idn.xlarge,spot,NA,0.116179,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843262 +AWS,us-west-2,m6in.12xlarge,on_demand,NA,3.34152,USD,AWS Pricing API,2025-11-30T08:52:36.016893 +AWS,us-west-2,m6in.12xlarge,reserved_1y,all_upfront,2.275571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:07.826185 +AWS,us-west-2,m6in.12xlarge,reserved_1y,no_upfront,2.275571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:44.749511 +AWS,us-west-2,m6in.12xlarge,reserved_1y,partial_upfront,2.275571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:34.887670 +AWS,us-west-2,m6in.12xlarge,reserved_3y,all_upfront,0.758524,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:16.417091 +AWS,us-west-2,m6in.12xlarge,reserved_3y,no_upfront,0.758524,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:44.928081 +AWS,us-west-2,m6in.12xlarge,reserved_3y,partial_upfront,0.758524,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:45.976836 +AWS,us-west-2,m6in.12xlarge,spot,NA,1.389095,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842294 +AWS,us-west-2,m6in.16xlarge,on_demand,NA,4.45536,USD,AWS Pricing API,2025-11-30T08:52:46.030983 +AWS,us-west-2,m6in.16xlarge,reserved_1y,all_upfront,2.619749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:17.731567 +AWS,us-west-2,m6in.16xlarge,reserved_1y,no_upfront,2.619749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:54.790240 +AWS,us-west-2,m6in.16xlarge,reserved_1y,partial_upfront,2.619749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:44.758571 +AWS,us-west-2,m6in.16xlarge,reserved_3y,all_upfront,0.87325,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:26.260236 +AWS,us-west-2,m6in.16xlarge,reserved_3y,no_upfront,0.87325,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:54.805352 +AWS,us-west-2,m6in.16xlarge,reserved_3y,partial_upfront,0.87325,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:56.054302 +AWS,us-west-2,m6in.16xlarge,spot,NA,1.887474,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842600 +AWS,us-west-2,m6in.24xlarge,on_demand,NA,6.68304,USD,AWS Pricing API,2025-11-30T08:53:27.847135 +AWS,us-west-2,m6in.24xlarge,reserved_1y,all_upfront,8.055708,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:59.066540 +AWS,us-west-2,m6in.24xlarge,reserved_1y,no_upfront,8.055708,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:36.647246 +AWS,us-west-2,m6in.24xlarge,reserved_1y,partial_upfront,8.055708,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:26.053811 +AWS,us-west-2,m6in.24xlarge,reserved_3y,all_upfront,2.685236,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:07.502192 +AWS,us-west-2,m6in.24xlarge,reserved_3y,no_upfront,2.685236,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:36.883428 +AWS,us-west-2,m6in.24xlarge,reserved_3y,partial_upfront,2.685236,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:38.241565 +AWS,us-west-2,m6in.24xlarge,spot,NA,2.741317,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843806 +AWS,us-west-2,m6in.2xlarge,on_demand,NA,0.55692,USD,AWS Pricing API,2025-11-30T08:52:52.869229 +AWS,us-west-2,m6in.2xlarge,reserved_1y,all_upfront,0.40635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:24.514498 +AWS,us-west-2,m6in.2xlarge,reserved_1y,no_upfront,0.40635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:01.612145 +AWS,us-west-2,m6in.2xlarge,reserved_1y,partial_upfront,0.40635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:51.502222 +AWS,us-west-2,m6in.2xlarge,reserved_3y,all_upfront,0.40635,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:32.985689 +AWS,us-west-2,m6in.2xlarge,reserved_3y,no_upfront,0.40635,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:01.593608 +AWS,us-west-2,m6in.2xlarge,reserved_3y,partial_upfront,0.40635,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:02.959900 +AWS,us-west-2,m6in.2xlarge,spot,NA,0.245029,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842810 +AWS,us-west-2,m6in.32xlarge,on_demand,NA,8.91072,USD,AWS Pricing API,2025-11-30T08:52:41.508148 +AWS,us-west-2,m6in.32xlarge,reserved_1y,all_upfront,6.36044,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:13.270704 +AWS,us-west-2,m6in.32xlarge,reserved_1y,no_upfront,6.36044,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:50.261627 +AWS,us-west-2,m6in.32xlarge,reserved_1y,partial_upfront,6.36044,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:40.294432 +AWS,us-west-2,m6in.32xlarge,reserved_3y,all_upfront,3.180227,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:21.814753 +AWS,us-west-2,m6in.32xlarge,reserved_3y,no_upfront,3.180227,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:50.322565 +AWS,us-west-2,m6in.32xlarge,reserved_3y,partial_upfront,3.180227,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:51.528309 +AWS,us-west-2,m6in.32xlarge,spot,NA,3.594706,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842483 +AWS,us-west-2,m6in.4xlarge,on_demand,NA,1.11384,USD,AWS Pricing API,2025-11-30T08:52:51.620160 +AWS,us-west-2,m6in.4xlarge,reserved_1y,all_upfront,0.654909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:23.298843 +AWS,us-west-2,m6in.4xlarge,reserved_1y,no_upfront,0.654909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:00.374517 +AWS,us-west-2,m6in.4xlarge,reserved_1y,partial_upfront,0.654909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:50.291481 +AWS,us-west-2,m6in.4xlarge,reserved_3y,all_upfront,0.218303,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:31.768471 +AWS,us-west-2,m6in.4xlarge,reserved_3y,no_upfront,0.218303,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:00.380025 +AWS,us-west-2,m6in.4xlarge,reserved_3y,partial_upfront,0.218303,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:01.717988 +AWS,us-west-2,m6in.4xlarge,spot,NA,0.479127,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842762 +AWS,us-west-2,m6in.8xlarge,on_demand,NA,2.22768,USD,AWS Pricing API,2025-11-30T08:52:49.705021 +AWS,us-west-2,m6in.8xlarge,reserved_1y,all_upfront,1.309932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:21.392568 +AWS,us-west-2,m6in.8xlarge,reserved_1y,no_upfront,1.309932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:58.467517 +AWS,us-west-2,m6in.8xlarge,reserved_1y,partial_upfront,1.309932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:48.400983 +AWS,us-west-2,m6in.8xlarge,reserved_3y,all_upfront,0.436644,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:29.878192 +AWS,us-west-2,m6in.8xlarge,reserved_3y,no_upfront,0.436644,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:58.479472 +AWS,us-west-2,m6in.8xlarge,reserved_3y,partial_upfront,0.436644,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:59.778476 +AWS,us-west-2,m6in.8xlarge,spot,NA,0.874848,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842732 +AWS,us-west-2,m6in.large,on_demand,NA,0.13923,USD,AWS Pricing API,2025-11-30T08:53:09.417377 +AWS,us-west-2,m6in.large,reserved_1y,all_upfront,0.08771,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:40.935046 +AWS,us-west-2,m6in.large,reserved_1y,no_upfront,0.08771,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:18.198008 +AWS,us-west-2,m6in.large,reserved_1y,partial_upfront,0.08771,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:07.816779 +AWS,us-west-2,m6in.large,reserved_3y,all_upfront,0.08771,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:49.284329 +AWS,us-west-2,m6in.large,reserved_3y,no_upfront,0.08771,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:18.459548 +AWS,us-west-2,m6in.large,reserved_3y,partial_upfront,0.08771,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:19.698398 +AWS,us-west-2,m6in.large,spot,NA,0.054159,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843294 +AWS,us-west-2,m6in.xlarge,on_demand,NA,0.27846,USD,AWS Pricing API,2025-11-30T08:53:23.658919 +AWS,us-west-2,m6in.xlarge,reserved_1y,all_upfront,0.189612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:54.987930 +AWS,us-west-2,m6in.xlarge,reserved_1y,no_upfront,0.189612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:32.458862 +AWS,us-west-2,m6in.xlarge,reserved_1y,partial_upfront,0.189612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:21.992617 +AWS,us-west-2,m6in.xlarge,reserved_3y,all_upfront,0.063204,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:03.455892 +AWS,us-west-2,m6in.xlarge,reserved_3y,no_upfront,0.063204,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:32.759922 +AWS,us-west-2,m6in.xlarge,reserved_3y,partial_upfront,0.063204,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:34.054023 +AWS,us-west-2,m6in.xlarge,spot,NA,0.121209,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843716 +AWS,us-west-2,m7a.12xlarge,on_demand,NA,2.78208,USD,AWS Pricing API,2025-11-30T08:53:12.150992 +AWS,us-west-2,m7a.12xlarge,reserved_1y,all_upfront,1.946598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:43.640995 +AWS,us-west-2,m7a.12xlarge,reserved_1y,no_upfront,1.946598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:20.940401 +AWS,us-west-2,m7a.12xlarge,reserved_1y,partial_upfront,1.946598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:10.535181 +AWS,us-west-2,m7a.12xlarge,reserved_3y,all_upfront,1.297739,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:52.068083 +AWS,us-west-2,m7a.12xlarge,reserved_3y,no_upfront,1.297739,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:21.197671 +AWS,us-west-2,m7a.12xlarge,reserved_3y,partial_upfront,1.297739,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:22.453762 +AWS,us-west-2,m7a.12xlarge,spot,NA,1.122336,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843371 +AWS,us-west-2,m7a.16xlarge,on_demand,NA,3.70944,USD,AWS Pricing API,2025-11-30T08:53:28.391055 +AWS,us-west-2,m7a.16xlarge,reserved_1y,all_upfront,2.595467,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:59.603770 +AWS,us-west-2,m7a.16xlarge,reserved_1y,no_upfront,2.595467,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:37.212816 +AWS,us-west-2,m7a.16xlarge,reserved_1y,partial_upfront,2.595467,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:26.590834 +AWS,us-west-2,m7a.16xlarge,reserved_3y,all_upfront,1.730322,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:08.040102 +AWS,us-west-2,m7a.16xlarge,reserved_3y,no_upfront,1.730322,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:37.432246 +AWS,us-west-2,m7a.16xlarge,reserved_3y,partial_upfront,1.730322,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:38.796857 +AWS,us-west-2,m7a.16xlarge,spot,NA,1.430405,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843849 +AWS,us-west-2,m7a.24xlarge,on_demand,NA,5.56416,USD,AWS Pricing API,2025-11-30T08:53:41.332548 +AWS,us-west-2,m7a.24xlarge,reserved_1y,all_upfront,2.82184,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:12.432520 +AWS,us-west-2,m7a.24xlarge,reserved_1y,no_upfront,2.82184,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:50.096335 +AWS,us-west-2,m7a.24xlarge,reserved_1y,partial_upfront,2.82184,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:39.324521 +AWS,us-west-2,m7a.24xlarge,reserved_3y,all_upfront,2.82184,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:20.687121 +AWS,us-west-2,m7a.24xlarge,reserved_3y,no_upfront,2.82184,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:50.437026 +AWS,us-west-2,m7a.24xlarge,reserved_3y,partial_upfront,2.82184,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:51.825776 +AWS,us-west-2,m7a.24xlarge,spot,NA,2.160107,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844206 +AWS,us-west-2,m7a.2xlarge,on_demand,NA,0.46368,USD,AWS Pricing API,2025-11-30T08:52:47.666271 +AWS,us-west-2,m7a.2xlarge,reserved_1y,all_upfront,0.286301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:19.363842 +AWS,us-west-2,m7a.2xlarge,reserved_1y,no_upfront,0.286301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:56.420771 +AWS,us-west-2,m7a.2xlarge,reserved_1y,partial_upfront,0.286301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:46.383312 +AWS,us-west-2,m7a.2xlarge,reserved_3y,all_upfront,0.095434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:27.868481 +AWS,us-west-2,m7a.2xlarge,reserved_3y,no_upfront,0.095434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:56.455069 +AWS,us-west-2,m7a.2xlarge,reserved_3y,partial_upfront,0.095434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:57.704826 +AWS,us-west-2,m7a.2xlarge,spot,NA,0.194194,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842652 +AWS,us-west-2,m7a.32xlarge,on_demand,NA,7.41888,USD,AWS Pricing API,2025-11-30T08:53:30.743458 +AWS,us-west-2,m7a.32xlarge,reserved_1y,all_upfront,5.191048,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:01.934218 +AWS,us-west-2,m7a.32xlarge,reserved_1y,no_upfront,5.191048,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:39.556185 +AWS,us-west-2,m7a.32xlarge,reserved_1y,partial_upfront,5.191048,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:28.890733 +AWS,us-west-2,m7a.32xlarge,reserved_3y,all_upfront,3.460683,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:10.346844 +AWS,us-west-2,m7a.32xlarge,reserved_3y,no_upfront,3.460683,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:39.774776 +AWS,us-west-2,m7a.32xlarge,reserved_3y,partial_upfront,3.460683,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:41.147172 +AWS,us-west-2,m7a.32xlarge,spot,NA,2.914716,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843949 +AWS,us-west-2,m7a.48xlarge,on_demand,NA,11.12832,USD,AWS Pricing API,2025-11-30T08:52:40.684219 +AWS,us-west-2,m7a.48xlarge,reserved_1y,all_upfront,7.010785,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:12.464233 +AWS,us-west-2,m7a.48xlarge,reserved_1y,no_upfront,7.010785,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:49.444400 +AWS,us-west-2,m7a.48xlarge,reserved_1y,partial_upfront,7.010785,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:39.488563 +AWS,us-west-2,m7a.48xlarge,reserved_3y,all_upfront,4.673875,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:20.987085 +AWS,us-west-2,m7a.48xlarge,reserved_3y,no_upfront,4.673875,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:49.519021 +AWS,us-west-2,m7a.48xlarge,reserved_3y,partial_upfront,4.673875,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:50.704648 +AWS,us-west-2,m7a.48xlarge,spot,NA,4.038725,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842426 +AWS,us-west-2,m7a.4xlarge,on_demand,NA,0.92736,USD,AWS Pricing API,2025-11-30T08:53:14.055023 +AWS,us-west-2,m7a.4xlarge,reserved_1y,all_upfront,0.584243,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:45.529123 +AWS,us-west-2,m7a.4xlarge,reserved_1y,no_upfront,0.584243,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:22.850574 +AWS,us-west-2,m7a.4xlarge,reserved_1y,partial_upfront,0.584243,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:12.445279 +AWS,us-west-2,m7a.4xlarge,reserved_3y,all_upfront,0.389494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:53.958457 +AWS,us-west-2,m7a.4xlarge,reserved_3y,no_upfront,0.389494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:23.122971 +AWS,us-west-2,m7a.4xlarge,reserved_3y,partial_upfront,0.389494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:24.384116 +AWS,us-west-2,m7a.4xlarge,spot,NA,0.400101,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843426 +AWS,us-west-2,m7a.8xlarge,on_demand,NA,1.85472,USD,AWS Pricing API,2025-11-30T08:53:18.304647 +AWS,us-west-2,m7a.8xlarge,reserved_1y,all_upfront,0.94061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:49.718840 +AWS,us-west-2,m7a.8xlarge,reserved_1y,no_upfront,0.94061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:27.091227 +AWS,us-west-2,m7a.8xlarge,reserved_1y,partial_upfront,0.94061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:16.699779 +AWS,us-west-2,m7a.8xlarge,reserved_3y,all_upfront,0.94061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:58.138183 +AWS,us-west-2,m7a.8xlarge,reserved_3y,no_upfront,0.94061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:27.387216 +AWS,us-west-2,m7a.8xlarge,reserved_3y,partial_upfront,0.94061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:28.668379 +AWS,us-west-2,m7a.8xlarge,spot,NA,0.772873,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843564 +AWS,us-west-2,m7a.xlarge,on_demand,NA,0.23184,USD,AWS Pricing API,2025-11-30T08:52:40.279247 +AWS,us-west-2,m7a.xlarge,reserved_1y,all_upfront,0.159018,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:12.047906 +AWS,us-west-2,m7a.xlarge,reserved_1y,no_upfront,0.159018,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:49.031995 +AWS,us-west-2,m7a.xlarge,reserved_1y,partial_upfront,0.159018,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:39.072560 +AWS,us-west-2,m7a.xlarge,reserved_3y,all_upfront,0.053006,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:20.577732 +AWS,us-west-2,m7a.xlarge,reserved_3y,no_upfront,0.053006,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:49.108757 +AWS,us-west-2,m7a.xlarge,reserved_3y,partial_upfront,0.053006,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:50.291974 +AWS,us-west-2,m7a.xlarge,spot,NA,0.089794,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842430 +AWS,us-west-2,m7g.12xlarge,on_demand,NA,1.9584,USD,AWS Pricing API,2025-11-30T08:52:57.091995 +AWS,us-west-2,m7g.12xlarge,reserved_1y,all_upfront,1.2955,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:28.719279 +AWS,us-west-2,m7g.12xlarge,reserved_1y,no_upfront,1.2955,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:05.863826 +AWS,us-west-2,m7g.12xlarge,reserved_1y,partial_upfront,1.2955,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:55.668816 +AWS,us-west-2,m7g.12xlarge,reserved_3y,all_upfront,1.2955,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:37.184226 +AWS,us-west-2,m7g.12xlarge,reserved_3y,no_upfront,1.2955,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:06.044721 +AWS,us-west-2,m7g.12xlarge,reserved_3y,partial_upfront,1.2955,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:07.238251 +AWS,us-west-2,m7g.12xlarge,spot,NA,0.716208,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842935 +AWS,us-west-2,m7g.16xlarge,on_demand,NA,2.6112,USD,AWS Pricing API,2025-11-30T08:53:26.176928 +AWS,us-west-2,m7g.16xlarge,reserved_1y,all_upfront,1.7273,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:57.426641 +AWS,us-west-2,m7g.16xlarge,reserved_1y,no_upfront,1.7273,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:34.965559 +AWS,us-west-2,m7g.16xlarge,reserved_1y,partial_upfront,1.7273,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:24.424670 +AWS,us-west-2,m7g.16xlarge,reserved_3y,all_upfront,1.7273,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:05.871272 +AWS,us-west-2,m7g.16xlarge,reserved_3y,no_upfront,1.7273,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:35.234216 +AWS,us-west-2,m7g.16xlarge,reserved_3y,partial_upfront,1.7273,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:36.557679 +AWS,us-west-2,m7g.16xlarge,spot,NA,0.965227,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843778 +AWS,us-west-2,m7g.2xlarge,on_demand,NA,0.3264,USD,AWS Pricing API,2025-11-30T08:52:48.880917 +AWS,us-west-2,m7g.2xlarge,reserved_1y,all_upfront,0.2159,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:20.583473 +AWS,us-west-2,m7g.2xlarge,reserved_1y,no_upfront,0.2159,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:57.648393 +AWS,us-west-2,m7g.2xlarge,reserved_1y,partial_upfront,0.2159,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:47.589401 +AWS,us-west-2,m7g.2xlarge,reserved_3y,all_upfront,0.2159,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:29.076251 +AWS,us-west-2,m7g.2xlarge,reserved_3y,no_upfront,0.2159,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:57.670390 +AWS,us-west-2,m7g.2xlarge,reserved_3y,partial_upfront,0.2159,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:58.945078 +AWS,us-west-2,m7g.2xlarge,spot,NA,0.1291,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842664 +AWS,us-west-2,m7g.4xlarge,on_demand,NA,0.6528,USD,AWS Pricing API,2025-11-30T08:53:45.999683 +AWS,us-west-2,m7g.4xlarge,reserved_1y,all_upfront,0.4796,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:17.041044 +AWS,us-west-2,m7g.4xlarge,reserved_1y,no_upfront,0.4796,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:54.730180 +AWS,us-west-2,m7g.4xlarge,reserved_1y,partial_upfront,0.4796,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:43.937865 +AWS,us-west-2,m7g.4xlarge,reserved_3y,all_upfront,0.4796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:25.304289 +AWS,us-west-2,m7g.4xlarge,reserved_3y,no_upfront,0.4796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:55.133456 +AWS,us-west-2,m7g.4xlarge,reserved_3y,partial_upfront,0.4796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:56.544900 +AWS,us-west-2,m7g.4xlarge,spot,NA,0.264938,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844383 +AWS,us-west-2,m7g.8xlarge,on_demand,NA,1.3056,USD,AWS Pricing API,2025-11-30T08:52:40.005014 +AWS,us-west-2,m7g.8xlarge,reserved_1y,all_upfront,0.5922,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:11.776714 +AWS,us-west-2,m7g.8xlarge,reserved_1y,no_upfront,0.5922,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:48.758987 +AWS,us-west-2,m7g.8xlarge,reserved_1y,partial_upfront,0.5922,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:38.802100 +AWS,us-west-2,m7g.8xlarge,reserved_3y,all_upfront,0.5922,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:20.311665 +AWS,us-west-2,m7g.8xlarge,reserved_3y,no_upfront,0.5922,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:48.838365 +AWS,us-west-2,m7g.8xlarge,reserved_3y,partial_upfront,0.5922,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:50.016102 +AWS,us-west-2,m7g.8xlarge,spot,NA,0.543626,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842452 +AWS,us-west-2,m7g.large,on_demand,NA,0.0816,USD,AWS Pricing API,2025-11-30T08:53:07.779317 +AWS,us-west-2,m7g.large,reserved_1y,all_upfront,0.051385,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:39.289790 +AWS,us-west-2,m7g.large,reserved_1y,no_upfront,0.051385,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:16.554870 +AWS,us-west-2,m7g.large,reserved_1y,partial_upfront,0.051385,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:06.198538 +AWS,us-west-2,m7g.large,reserved_3y,all_upfront,0.034262,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:47.663185 +AWS,us-west-2,m7g.large,reserved_3y,no_upfront,0.034262,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:16.811630 +AWS,us-west-2,m7g.large,reserved_3y,partial_upfront,0.034262,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:18.041532 +AWS,us-west-2,m7g.large,spot,NA,0.032724,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843245 +AWS,us-west-2,m7g.xlarge,on_demand,NA,0.1632,USD,AWS Pricing API,2025-11-30T08:53:14.608017 +AWS,us-west-2,m7g.xlarge,reserved_1y,all_upfront,0.137154,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:46.064338 +AWS,us-west-2,m7g.xlarge,reserved_1y,no_upfront,0.137154,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:23.393084 +AWS,us-west-2,m7g.xlarge,reserved_1y,partial_upfront,0.137154,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:12.991933 +AWS,us-west-2,m7g.xlarge,reserved_3y,all_upfront,0.068585,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:54.498960 +AWS,us-west-2,m7g.xlarge,reserved_3y,no_upfront,0.068585,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:23.685513 +AWS,us-west-2,m7g.xlarge,reserved_3y,partial_upfront,0.068585,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:24.936834 +AWS,us-west-2,m7g.xlarge,spot,NA,0.069354,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843449 +AWS,us-west-2,m7gd.12xlarge,on_demand,NA,2.5628,USD,AWS Pricing API,2025-11-30T08:52:48.202900 +AWS,us-west-2,m7gd.12xlarge,reserved_1y,all_upfront,3.511301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:19.902819 +AWS,us-west-2,m7gd.12xlarge,reserved_1y,no_upfront,3.511301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:56.964461 +AWS,us-west-2,m7gd.12xlarge,reserved_1y,partial_upfront,3.511301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:46.918425 +AWS,us-west-2,m7gd.12xlarge,reserved_3y,all_upfront,1.170434,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:28.405569 +AWS,us-west-2,m7gd.12xlarge,reserved_3y,no_upfront,1.170434,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:56.997435 +AWS,us-west-2,m7gd.12xlarge,reserved_3y,partial_upfront,1.170434,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:58.258158 +AWS,us-west-2,m7gd.12xlarge,spot,NA,0.979746,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842684 +AWS,us-west-2,m7gd.16xlarge,on_demand,NA,3.4171,USD,AWS Pricing API,2025-11-30T08:53:05.462593 +AWS,us-west-2,m7gd.16xlarge,reserved_1y,all_upfront,3.184899,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:36.982982 +AWS,us-west-2,m7gd.16xlarge,reserved_1y,no_upfront,3.184899,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:14.225587 +AWS,us-west-2,m7gd.16xlarge,reserved_1y,partial_upfront,3.184899,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:03.918831 +AWS,us-west-2,m7gd.16xlarge,reserved_3y,all_upfront,1.592433,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:45.387973 +AWS,us-west-2,m7gd.16xlarge,reserved_3y,no_upfront,1.592433,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:14.481773 +AWS,us-west-2,m7gd.16xlarge,reserved_3y,partial_upfront,1.592433,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:15.684800 +AWS,us-west-2,m7gd.16xlarge,spot,NA,1.220688,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843155 +AWS,us-west-2,m7gd.2xlarge,on_demand,NA,0.4271,USD,AWS Pricing API,2025-11-30T08:53:21.194040 +AWS,us-west-2,m7gd.2xlarge,reserved_1y,all_upfront,0.291895,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:52.567640 +AWS,us-west-2,m7gd.2xlarge,reserved_1y,no_upfront,0.291895,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:29.957944 +AWS,us-west-2,m7gd.2xlarge,reserved_1y,partial_upfront,0.291895,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:19.550589 +AWS,us-west-2,m7gd.2xlarge,reserved_3y,all_upfront,0.097298,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:00.986961 +AWS,us-west-2,m7gd.2xlarge,reserved_3y,no_upfront,0.097298,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:30.290530 +AWS,us-west-2,m7gd.2xlarge,reserved_3y,partial_upfront,0.097298,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:31.568905 +AWS,us-west-2,m7gd.2xlarge,spot,NA,0.156716,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843649 +AWS,us-west-2,m7gd.4xlarge,on_demand,NA,0.8543,USD,AWS Pricing API,2025-11-30T08:53:38.994621 +AWS,us-west-2,m7gd.4xlarge,reserved_1y,all_upfront,0.683457,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:10.133144 +AWS,us-west-2,m7gd.4xlarge,reserved_1y,no_upfront,0.683457,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:47.769630 +AWS,us-west-2,m7gd.4xlarge,reserved_1y,partial_upfront,0.683457,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:37.051822 +AWS,us-west-2,m7gd.4xlarge,reserved_3y,all_upfront,0.341752,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:18.415707 +AWS,us-west-2,m7gd.4xlarge,reserved_3y,no_upfront,0.341752,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:48.086093 +AWS,us-west-2,m7gd.4xlarge,reserved_3y,partial_upfront,0.341752,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:49.477162 +AWS,us-west-2,m7gd.4xlarge,spot,NA,0.322062,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844183 +AWS,us-west-2,m7gd.8xlarge,on_demand,NA,1.7086,USD,AWS Pricing API,2025-11-30T08:53:18.853172 +AWS,us-west-2,m7gd.8xlarge,reserved_1y,all_upfront,1.0764,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:50.261297 +AWS,us-west-2,m7gd.8xlarge,reserved_1y,no_upfront,1.0764,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:27.631275 +AWS,us-west-2,m7gd.8xlarge,reserved_1y,partial_upfront,1.0764,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:17.239318 +AWS,us-west-2,m7gd.8xlarge,reserved_3y,all_upfront,1.0764,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:58.681147 +AWS,us-west-2,m7gd.8xlarge,reserved_3y,no_upfront,1.0764,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:27.943765 +AWS,us-west-2,m7gd.8xlarge,reserved_3y,partial_upfront,1.0764,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:29.218939 +AWS,us-west-2,m7gd.8xlarge,spot,NA,0.683369,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843576 +AWS,us-west-2,m7gd.large,on_demand,NA,0.1068,USD,AWS Pricing API,2025-11-30T08:53:16.657421 +AWS,us-west-2,m7gd.large,reserved_1y,all_upfront,0.064078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:48.097073 +AWS,us-west-2,m7gd.large,reserved_1y,no_upfront,0.064078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:25.443464 +AWS,us-west-2,m7gd.large,reserved_1y,partial_upfront,0.064078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:15.039311 +AWS,us-west-2,m7gd.large,reserved_3y,all_upfront,0.042693,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:56.520272 +AWS,us-west-2,m7gd.large,reserved_3y,no_upfront,0.042693,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:25.737959 +AWS,us-west-2,m7gd.large,reserved_3y,partial_upfront,0.042693,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:26.998021 +AWS,us-west-2,m7gd.large,spot,NA,0.039825,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843484 +AWS,us-west-2,m7gd.xlarge,on_demand,NA,0.2136,USD,AWS Pricing API,2025-11-30T08:53:22.836425 +AWS,us-west-2,m7gd.xlarge,reserved_1y,all_upfront,0.125571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:54.182043 +AWS,us-west-2,m7gd.xlarge,reserved_1y,no_upfront,0.125571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:31.631101 +AWS,us-west-2,m7gd.xlarge,reserved_1y,partial_upfront,0.125571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:21.179920 +AWS,us-west-2,m7gd.xlarge,reserved_3y,all_upfront,0.041857,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:02.641054 +AWS,us-west-2,m7gd.xlarge,reserved_3y,no_upfront,0.041857,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:31.935747 +AWS,us-west-2,m7gd.xlarge,reserved_3y,partial_upfront,0.041857,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:33.229584 +AWS,us-west-2,m7gd.xlarge,spot,NA,0.096834,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843708 +AWS,us-west-2,m7i.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:52:54.366746 +AWS,us-west-2,m7i.12xlarge,reserved_1y,all_upfront,3.33984,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:26.016592 +AWS,us-west-2,m7i.12xlarge,reserved_1y,no_upfront,3.33984,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:03.132261 +AWS,us-west-2,m7i.12xlarge,reserved_1y,partial_upfront,3.33984,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:52.987690 +AWS,us-west-2,m7i.12xlarge,reserved_3y,all_upfront,1.11328,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:34.470603 +AWS,us-west-2,m7i.12xlarge,reserved_3y,no_upfront,1.11328,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:03.284560 +AWS,us-west-2,m7i.12xlarge,reserved_3y,partial_upfront,1.11328,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:04.492681 +AWS,us-west-2,m7i.12xlarge,spot,NA,0.933865,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842857 +AWS,us-west-2,m7i.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:53:31.698889 +AWS,us-west-2,m7i.16xlarge,reserved_1y,all_upfront,2.13373,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:02.894397 +AWS,us-west-2,m7i.16xlarge,reserved_1y,no_upfront,2.13373,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:40.504887 +AWS,us-west-2,m7i.16xlarge,reserved_1y,partial_upfront,2.13373,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:29.878525 +AWS,us-west-2,m7i.16xlarge,reserved_3y,all_upfront,2.13373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:11.281005 +AWS,us-west-2,m7i.16xlarge,reserved_3y,no_upfront,2.13373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:40.738436 +AWS,us-west-2,m7i.16xlarge,reserved_3y,partial_upfront,2.13373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:42.116965 +AWS,us-west-2,m7i.16xlarge,spot,NA,1.305138,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843930 +AWS,us-west-2,m7i.24xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:53:37.903242 +AWS,us-west-2,m7i.24xlarge,reserved_1y,all_upfront,3.5547,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:09.019003 +AWS,us-west-2,m7i.24xlarge,reserved_1y,no_upfront,3.5547,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:46.678629 +AWS,us-west-2,m7i.24xlarge,reserved_1y,partial_upfront,3.5547,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:35.956457 +AWS,us-west-2,m7i.24xlarge,reserved_3y,all_upfront,3.5547,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:17.349227 +AWS,us-west-2,m7i.24xlarge,reserved_3y,no_upfront,3.5547,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:46.970553 +AWS,us-west-2,m7i.24xlarge,reserved_3y,partial_upfront,3.5547,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:48.373027 +AWS,us-west-2,m7i.24xlarge,spot,NA,1.831607,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844117 +AWS,us-west-2,m7i.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:53:12.831004 +AWS,us-west-2,m7i.2xlarge,reserved_1y,all_upfront,0.254065,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:44.314970 +AWS,us-west-2,m7i.2xlarge,reserved_1y,no_upfront,0.254065,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:21.621999 +AWS,us-west-2,m7i.2xlarge,reserved_1y,partial_upfront,0.254065,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:11.226644 +AWS,us-west-2,m7i.2xlarge,reserved_3y,all_upfront,0.169362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:52.739779 +AWS,us-west-2,m7i.2xlarge,reserved_3y,no_upfront,0.169362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:21.880962 +AWS,us-west-2,m7i.2xlarge,reserved_3y,partial_upfront,0.169362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:23.146326 +AWS,us-west-2,m7i.2xlarge,spot,NA,0.18249,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843429 +AWS,us-west-2,m7i.48xlarge,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:52:35.597100 +AWS,us-west-2,m7i.48xlarge,reserved_1y,all_upfront,5.974429,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:07.422383 +AWS,us-west-2,m7i.48xlarge,reserved_1y,no_upfront,5.974429,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:44.320654 +AWS,us-west-2,m7i.48xlarge,reserved_1y,partial_upfront,5.974429,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:34.475596 +AWS,us-west-2,m7i.48xlarge,reserved_3y,all_upfront,1.991476,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:16.012928 +AWS,us-west-2,m7i.48xlarge,reserved_3y,no_upfront,1.991476,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:44.515899 +AWS,us-west-2,m7i.48xlarge,reserved_3y,partial_upfront,1.991476,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:45.567093 +AWS,us-west-2,m7i.48xlarge,spot,NA,4.214057,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842264 +AWS,us-west-2,m7i.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:52:49.571409 +AWS,us-west-2,m7i.4xlarge,reserved_1y,all_upfront,0.497831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:21.260776 +AWS,us-west-2,m7i.4xlarge,reserved_1y,no_upfront,0.497831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:58.330312 +AWS,us-west-2,m7i.4xlarge,reserved_1y,partial_upfront,0.497831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:48.267358 +AWS,us-west-2,m7i.4xlarge,reserved_3y,all_upfront,0.165944,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:29.741580 +AWS,us-west-2,m7i.4xlarge,reserved_3y,no_upfront,0.165944,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:58.342988 +AWS,us-west-2,m7i.4xlarge,reserved_3y,partial_upfront,0.165944,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:59.641154 +AWS,us-west-2,m7i.4xlarge,spot,NA,0.361995,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842704 +AWS,us-west-2,m7i.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:53:27.431542 +AWS,us-west-2,m7i.8xlarge,reserved_1y,all_upfront,1.06687,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:58.657255 +AWS,us-west-2,m7i.8xlarge,reserved_1y,no_upfront,1.06687,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:36.235448 +AWS,us-west-2,m7i.8xlarge,reserved_1y,partial_upfront,1.06687,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:25.647973 +AWS,us-west-2,m7i.8xlarge,reserved_3y,all_upfront,1.06687,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:07.081326 +AWS,us-west-2,m7i.8xlarge,reserved_3y,no_upfront,1.06687,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:36.472823 +AWS,us-west-2,m7i.8xlarge,reserved_3y,partial_upfront,1.06687,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:37.796794 +AWS,us-west-2,m7i.8xlarge,spot,NA,0.703563,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843814 +AWS,us-west-2,m7i.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T08:52:52.581743 +AWS,us-west-2,m7i.large,reserved_1y,all_upfront,0.069064,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:24.245973 +AWS,us-west-2,m7i.large,reserved_1y,no_upfront,0.069064,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:01.332909 +AWS,us-west-2,m7i.large,reserved_1y,partial_upfront,0.069064,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:51.231579 +AWS,us-west-2,m7i.large,reserved_3y,all_upfront,0.023021,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:32.714600 +AWS,us-west-2,m7i.large,reserved_3y,no_upfront,0.023021,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:01.319231 +AWS,us-west-2,m7i.large,reserved_3y,partial_upfront,0.023021,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:02.683265 +AWS,us-west-2,m7i.large,spot,NA,0.042412,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842802 +AWS,us-west-2,m7i.metal-24xl,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:52:35.743601 +AWS,us-west-2,m7i.metal-24xl,reserved_1y,all_upfront,2.987215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:07.555426 +AWS,us-west-2,m7i.metal-24xl,reserved_1y,no_upfront,2.987215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:44.470183 +AWS,us-west-2,m7i.metal-24xl,reserved_1y,partial_upfront,2.987215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:34.618977 +AWS,us-west-2,m7i.metal-24xl,reserved_3y,all_upfront,0.995738,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:16.148406 +AWS,us-west-2,m7i.metal-24xl,reserved_3y,no_upfront,0.995738,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:44.651097 +AWS,us-west-2,m7i.metal-24xl,reserved_3y,partial_upfront,0.995738,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:45.703596 +AWS,us-west-2,m7i.metal-24xl,spot,NA,1.811095,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842281 +AWS,us-west-2,m7i.metal-48xl,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:53:17.071985 +AWS,us-west-2,m7i.metal-48xl,reserved_1y,all_upfront,13.359475,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:48.506479 +AWS,us-west-2,m7i.metal-48xl,reserved_1y,no_upfront,13.359475,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:25.854957 +AWS,us-west-2,m7i.metal-48xl,reserved_1y,partial_upfront,13.359475,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:15.472307 +AWS,us-west-2,m7i.metal-48xl,reserved_3y,all_upfront,4.453158,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:56.925459 +AWS,us-west-2,m7i.metal-48xl,reserved_3y,no_upfront,4.453158,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:26.147910 +AWS,us-west-2,m7i.metal-48xl,reserved_3y,partial_upfront,4.453158,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:27.420806 +AWS,us-west-2,m7i.metal-48xl,spot,NA,3.475127,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843541 +AWS,us-west-2,m7i.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:53:39.402440 +AWS,us-west-2,m7i.xlarge,reserved_1y,all_upfront,0.138242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:10.533795 +AWS,us-west-2,m7i.xlarge,reserved_1y,no_upfront,0.138242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:48.181793 +AWS,us-west-2,m7i.xlarge,reserved_1y,partial_upfront,0.138242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:37.451830 +AWS,us-west-2,m7i.xlarge,reserved_3y,all_upfront,0.046081,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:18.816562 +AWS,us-west-2,m7i.xlarge,reserved_3y,no_upfront,0.046081,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:48.507613 +AWS,us-west-2,m7i.xlarge,reserved_3y,partial_upfront,0.046081,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:49.892283 +AWS,us-west-2,m7i.xlarge,spot,NA,0.081383,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844159 +AWS,us-west-2,m8g.12xlarge,on_demand,NA,2.15424,USD,AWS Pricing API,2025-11-30T08:53:23.257502 +AWS,us-west-2,m8g.12xlarge,reserved_1y,all_upfront,1.58266,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:54.586646 +AWS,us-west-2,m8g.12xlarge,reserved_1y,no_upfront,1.58266,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:32.043131 +AWS,us-west-2,m8g.12xlarge,reserved_1y,partial_upfront,1.58266,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:21.587676 +AWS,us-west-2,m8g.12xlarge,reserved_3y,all_upfront,1.58266,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:03.045186 +AWS,us-west-2,m8g.12xlarge,reserved_3y,no_upfront,1.58266,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:32.348801 +AWS,us-west-2,m8g.12xlarge,reserved_3y,partial_upfront,1.58266,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:33.637669 +AWS,us-west-2,m8g.12xlarge,spot,NA,0.860663,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843704 +AWS,us-west-2,m8g.16xlarge,on_demand,NA,2.87232,USD,AWS Pricing API,2025-11-30T08:52:36.152718 +AWS,us-west-2,m8g.16xlarge,reserved_1y,all_upfront,2.697574,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:07.960247 +AWS,us-west-2,m8g.16xlarge,reserved_1y,no_upfront,2.697574,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:44.890630 +AWS,us-west-2,m8g.16xlarge,reserved_1y,partial_upfront,2.697574,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:35.021572 +AWS,us-west-2,m8g.16xlarge,reserved_3y,all_upfront,1.348791,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:16.550830 +AWS,us-west-2,m8g.16xlarge,reserved_3y,no_upfront,1.348791,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:45.060710 +AWS,us-west-2,m8g.16xlarge,reserved_3y,partial_upfront,1.348791,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:46.113494 +AWS,us-west-2,m8g.16xlarge,spot,NA,1.042712,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842290 +AWS,us-west-2,m8g.24xlarge,on_demand,NA,4.30848,USD,AWS Pricing API,2025-11-30T08:53:44.763008 +AWS,us-west-2,m8g.24xlarge,reserved_1y,all_upfront,3.619164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:15.822198 +AWS,us-west-2,m8g.24xlarge,reserved_1y,no_upfront,3.619164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:53.504469 +AWS,us-west-2,m8g.24xlarge,reserved_1y,partial_upfront,3.619164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:42.725037 +AWS,us-west-2,m8g.24xlarge,reserved_3y,all_upfront,1.809575,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:24.081795 +AWS,us-west-2,m8g.24xlarge,reserved_3y,no_upfront,1.809575,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:53.892145 +AWS,us-west-2,m8g.24xlarge,reserved_3y,partial_upfront,1.809575,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:55.286849 +AWS,us-west-2,m8g.24xlarge,spot,NA,1.569063,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844349 +AWS,us-west-2,m8g.2xlarge,on_demand,NA,0.35904,USD,AWS Pricing API,2025-11-30T08:53:36.270137 +AWS,us-west-2,m8g.2xlarge,reserved_1y,all_upfront,0.2375,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:07.356983 +AWS,us-west-2,m8g.2xlarge,reserved_1y,no_upfront,0.2375,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:45.010002 +AWS,us-west-2,m8g.2xlarge,reserved_1y,partial_upfront,0.2375,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:34.346757 +AWS,us-west-2,m8g.2xlarge,reserved_3y,all_upfront,0.2375,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:15.744669 +AWS,us-west-2,m8g.2xlarge,reserved_3y,no_upfront,0.2375,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:45.312952 +AWS,us-west-2,m8g.2xlarge,reserved_3y,partial_upfront,0.2375,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:46.699171 +AWS,us-west-2,m8g.2xlarge,spot,NA,0.145205,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844113 +AWS,us-west-2,m8g.48xlarge,on_demand,NA,8.61696,USD,AWS Pricing API,2025-11-30T08:53:09.004811 +AWS,us-west-2,m8g.48xlarge,reserved_1y,all_upfront,6.029202,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:40.524733 +AWS,us-west-2,m8g.48xlarge,reserved_1y,no_upfront,6.029202,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:17.790865 +AWS,us-west-2,m8g.48xlarge,reserved_1y,partial_upfront,6.029202,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:07.411921 +AWS,us-west-2,m8g.48xlarge,reserved_3y,all_upfront,4.019461,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:48.882522 +AWS,us-west-2,m8g.48xlarge,reserved_3y,no_upfront,4.019461,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:18.046845 +AWS,us-west-2,m8g.48xlarge,reserved_3y,partial_upfront,4.019461,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:19.280841 +AWS,us-west-2,m8g.48xlarge,spot,NA,3.229995,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843310 +AWS,us-west-2,m8g.4xlarge,on_demand,NA,0.71808,USD,AWS Pricing API,2025-11-30T08:53:26.037552 +AWS,us-west-2,m8g.4xlarge,reserved_1y,all_upfront,0.452342,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:57.291684 +AWS,us-west-2,m8g.4xlarge,reserved_1y,no_upfront,0.452342,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:34.826123 +AWS,us-west-2,m8g.4xlarge,reserved_1y,partial_upfront,0.452342,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:24.286074 +AWS,us-west-2,m8g.4xlarge,reserved_3y,all_upfront,0.301581,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:05.736771 +AWS,us-west-2,m8g.4xlarge,reserved_3y,no_upfront,0.301581,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:35.098820 +AWS,us-west-2,m8g.4xlarge,reserved_3y,partial_upfront,0.301581,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:36.400352 +AWS,us-west-2,m8g.4xlarge,spot,NA,0.284368,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843767 +AWS,us-west-2,m8g.8xlarge,on_demand,NA,1.43616,USD,AWS Pricing API,2025-11-30T08:52:57.362791 +AWS,us-west-2,m8g.8xlarge,reserved_1y,all_upfront,0.72835,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:28.989184 +AWS,us-west-2,m8g.8xlarge,reserved_1y,no_upfront,0.72835,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:06.138950 +AWS,us-west-2,m8g.8xlarge,reserved_1y,partial_upfront,0.72835,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:55.938976 +AWS,us-west-2,m8g.8xlarge,reserved_3y,all_upfront,0.72835,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:37.450715 +AWS,us-west-2,m8g.8xlarge,reserved_3y,no_upfront,0.72835,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:06.318518 +AWS,us-west-2,m8g.8xlarge,reserved_3y,partial_upfront,0.72835,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:07.512534 +AWS,us-west-2,m8g.8xlarge,spot,NA,0.653905,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842912 +AWS,us-west-2,m8g.large,on_demand,NA,0.08976,USD,AWS Pricing API,2025-11-30T08:53:46.828017 +AWS,us-west-2,m8g.large,reserved_1y,all_upfront,0.06594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:17.847220 +AWS,us-west-2,m8g.large,reserved_1y,no_upfront,0.06594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:55.553990 +AWS,us-west-2,m8g.large,reserved_1y,partial_upfront,0.06594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:44.740180 +AWS,us-west-2,m8g.large,reserved_3y,all_upfront,0.06594,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:26.104564 +AWS,us-west-2,m8g.large,reserved_3y,no_upfront,0.06594,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:55.958558 +AWS,us-west-2,m8g.large,reserved_3y,partial_upfront,0.06594,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:57.362495 +AWS,us-west-2,m8g.large,spot,NA,0.04091,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844364 +AWS,us-west-2,m8g.medium,on_demand,NA,0.04488,USD,AWS Pricing API,2025-11-30T08:53:48.739048 +AWS,us-west-2,m8g.medium,reserved_1y,all_upfront,0.02969,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:19.737940 +AWS,us-west-2,m8g.medium,reserved_1y,no_upfront,0.02969,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:57.464348 +AWS,us-west-2,m8g.medium,reserved_1y,partial_upfront,0.02969,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:46.639376 +AWS,us-west-2,m8g.medium,reserved_3y,all_upfront,0.02969,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:27.988690 +AWS,us-west-2,m8g.medium,reserved_3y,no_upfront,0.02969,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:57.878810 +AWS,us-west-2,m8g.medium,reserved_3y,partial_upfront,0.02969,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:59.300613 +AWS,us-west-2,m8g.medium,spot,NA,0.018194,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844434 +AWS,us-west-2,m8g.xlarge,on_demand,NA,0.17952,USD,AWS Pricing API,2025-11-30T08:53:06.685226 +AWS,us-west-2,m8g.xlarge,reserved_1y,all_upfront,0.168634,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:38.201041 +AWS,us-west-2,m8g.xlarge,reserved_1y,no_upfront,0.168634,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:15.449487 +AWS,us-west-2,m8g.xlarge,reserved_1y,partial_upfront,0.168634,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:05.121165 +AWS,us-west-2,m8g.xlarge,reserved_3y,all_upfront,0.084311,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:46.594204 +AWS,us-west-2,m8g.xlarge,reserved_3y,no_upfront,0.084311,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:15.707773 +AWS,us-west-2,m8g.xlarge,reserved_3y,partial_upfront,0.084311,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:16.922133 +AWS,us-west-2,m8g.xlarge,spot,NA,0.07127,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843226 +AWS,us-west-2,m8gd.12xlarge,on_demand,NA,2.76768,USD,AWS Pricing API,2025-11-30T08:53:47.373065 +AWS,us-west-2,m8gd.12xlarge,spot,NA,1.137494,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844411 +AWS,us-west-2,m8gd.16xlarge,on_demand,NA,3.69024,USD,AWS Pricing API,2025-11-30T08:53:39.943701 +AWS,us-west-2,m8gd.16xlarge,spot,NA,1.380985,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844175 +AWS,us-west-2,m8gd.24xlarge,on_demand,NA,5.53536,USD,AWS Pricing API,2025-11-30T08:53:05.189004 +AWS,us-west-2,m8gd.24xlarge,spot,NA,2.018369,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843159 +AWS,us-west-2,m8gd.2xlarge,on_demand,NA,0.46128,USD,AWS Pricing API,2025-11-30T08:53:46.545689 +AWS,us-west-2,m8gd.2xlarge,spot,NA,0.162547,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844387 +AWS,us-west-2,m8gd.48xlarge,on_demand,NA,11.07072,USD,AWS Pricing API,2025-11-30T08:53:42.436695 +AWS,us-west-2,m8gd.48xlarge,spot,NA,4.090292,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844246 +AWS,us-west-2,m8gd.4xlarge,on_demand,NA,0.92256,USD,AWS Pricing API,2025-11-30T08:53:12.560636 +AWS,us-west-2,m8gd.4xlarge,spot,NA,0.376665,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843356 +AWS,us-west-2,m8gd.8xlarge,on_demand,NA,1.84512,USD,AWS Pricing API,2025-11-30T08:52:36.849547 +AWS,us-west-2,m8gd.8xlarge,spot,NA,0.854088,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842306 +AWS,us-west-2,m8gd.large,on_demand,NA,0.11532,USD,AWS Pricing API,2025-11-30T08:53:21.870277 +AWS,us-west-2,m8gd.large,spot,NA,0.042706,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843660 +AWS,us-west-2,m8gd.xlarge,on_demand,NA,0.23064,USD,AWS Pricing API,2025-11-30T08:53:13.235904 +AWS,us-west-2,m8gd.xlarge,spot,NA,0.088832,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843418 +AWS,us-west-2,m8i.12xlarge,on_demand,NA,2.54016,USD,AWS Pricing API,2025-11-30T08:53:35.999910 +AWS,us-west-2,m8i.12xlarge,spot,NA,0.893919,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844048 +AWS,us-west-2,m8i.16xlarge,on_demand,NA,3.38688,USD,AWS Pricing API,2025-11-30T08:53:04.107752 +AWS,us-west-2,m8i.16xlarge,spot,NA,1.187682,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843136 +AWS,us-west-2,m8i.24xlarge,on_demand,NA,5.08032,USD,AWS Pricing API,2025-11-30T08:53:31.293333 +AWS,us-west-2,m8i.24xlarge,spot,NA,1.78409,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843938 +AWS,us-west-2,m8i.2xlarge,on_demand,NA,0.42336,USD,AWS Pricing API,2025-11-30T08:52:45.754646 +AWS,us-west-2,m8i.2xlarge,spot,NA,0.159566,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842612 +AWS,us-west-2,m8i.48xlarge,on_demand,NA,10.16064,USD,AWS Pricing API,2025-11-30T08:53:15.970276 +AWS,us-west-2,m8i.48xlarge,spot,NA,3.160869,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843506 +AWS,us-west-2,m8i.4xlarge,on_demand,NA,0.84672,USD,AWS Pricing API,2025-11-30T08:52:41.095744 +AWS,us-west-2,m8i.4xlarge,spot,NA,0.335865,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842441 +AWS,us-west-2,m8i.8xlarge,on_demand,NA,1.69344,USD,AWS Pricing API,2025-11-30T08:52:54.638417 +AWS,us-west-2,m8i.8xlarge,spot,NA,0.654966,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842826 +AWS,us-west-2,m8i.large,on_demand,NA,0.10584,USD,AWS Pricing API,2025-11-30T08:52:56.408552 +AWS,us-west-2,m8i.large,spot,NA,0.035775,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842927 +AWS,us-west-2,m8i.xlarge,on_demand,NA,0.21168,USD,AWS Pricing API,2025-11-30T08:52:47.530456 +AWS,us-west-2,m8i.xlarge,spot,NA,0.073869,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842647 +AWS,us-west-2,p2.16xlarge,on_demand,NA,14.4,USD,AWS Pricing API,2025-11-30T08:52:42.870318 +AWS,us-west-2,p2.8xlarge,on_demand,NA,7.2,USD,AWS Pricing API,2025-11-30T08:53:42.300998 +AWS,us-west-2,p2.xlarge,on_demand,NA,0.9,USD,AWS Pricing API,2025-11-30T08:52:46.438934 +AWS,us-west-2,p3.16xlarge,on_demand,NA,24.48,USD,AWS Pricing API,2025-11-30T08:53:01.770798 +AWS,us-west-2,p3.16xlarge,spot,NA,9.00407,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843061 +AWS,us-west-2,p3.2xlarge,on_demand,NA,3.06,USD,AWS Pricing API,2025-11-30T08:53:32.783386 +AWS,us-west-2,p3.2xlarge,spot,NA,1.088193,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843988 +AWS,us-west-2,p3.8xlarge,on_demand,NA,12.24,USD,AWS Pricing API,2025-11-30T08:52:42.461571 +AWS,us-west-2,p3.8xlarge,spot,NA,4.510703,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842462 +AWS,us-west-2,p3dn.24xlarge,on_demand,NA,31.212,USD,AWS Pricing API,2025-11-30T08:53:33.461346 +AWS,us-west-2,p3dn.24xlarge,reserved_1y,all_upfront,19.215,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:04.661654 +AWS,us-west-2,p3dn.24xlarge,reserved_1y,no_upfront,19.215,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:42.269394 +AWS,us-west-2,p3dn.24xlarge,reserved_1y,partial_upfront,19.215,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:31.649766 +AWS,us-west-2,p3dn.24xlarge,reserved_3y,all_upfront,19.215,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:13.027506 +AWS,us-west-2,p3dn.24xlarge,reserved_3y,no_upfront,19.215,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:42.538115 +AWS,us-west-2,p3dn.24xlarge,reserved_3y,partial_upfront,19.215,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:43.929222 +AWS,us-west-2,p3dn.24xlarge,spot,NA,11.129932,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844036 +AWS,us-west-2,p4d.24xlarge,on_demand,NA,21.95764,USD,AWS Pricing API,2025-11-30T08:52:42.597598 +AWS,us-west-2,p4d.24xlarge,reserved_1y,all_upfront,40.829909,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:14.357153 +AWS,us-west-2,p4d.24xlarge,reserved_1y,no_upfront,40.829909,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:51.356346 +AWS,us-west-2,p4d.24xlarge,reserved_1y,partial_upfront,40.829909,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:41.381736 +AWS,us-west-2,p4d.24xlarge,reserved_3y,all_upfront,13.60997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:22.886296 +AWS,us-west-2,p4d.24xlarge,reserved_3y,no_upfront,13.60997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:51.426794 +AWS,us-west-2,p4d.24xlarge,reserved_3y,partial_upfront,13.60997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:52.623851 +AWS,us-west-2,p4d.24xlarge,spot,NA,9.798624,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842495 +AWS,us-west-2,p4de.24xlarge,on_demand,NA,27.44705,USD,AWS Pricing API,2025-11-30T08:53:06.415380 +AWS,us-west-2,p4de.24xlarge,reserved_1y,all_upfront,20.881639,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:37.922864 +AWS,us-west-2,p4de.24xlarge,reserved_1y,no_upfront,20.881639,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:15.176984 +AWS,us-west-2,p4de.24xlarge,reserved_1y,partial_upfront,20.881639,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:04.852374 +AWS,us-west-2,p4de.24xlarge,reserved_3y,all_upfront,20.881639,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:46.325365 +AWS,us-west-2,p4de.24xlarge,reserved_3y,no_upfront,20.881639,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:15.432963 +AWS,us-west-2,p4de.24xlarge,reserved_3y,partial_upfront,20.881639,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:16.650419 +AWS,us-west-2,p4de.24xlarge,spot,NA,13.683508,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843202 +AWS,us-west-2,p5.48xlarge,on_demand,NA,55.04,USD,AWS Pricing API,2025-11-30T08:53:32.511331 +AWS,us-west-2,p5.48xlarge,reserved_1y,all_upfront,110.035959,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:03.717507 +AWS,us-west-2,p5.48xlarge,reserved_1y,no_upfront,110.035959,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:41.319758 +AWS,us-west-2,p5.48xlarge,reserved_1y,partial_upfront,110.035959,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:30.706279 +AWS,us-west-2,p5.48xlarge,reserved_3y,all_upfront,36.678653,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:12.086779 +AWS,us-west-2,p5.48xlarge,reserved_3y,no_upfront,36.678653,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:41.560638 +AWS,us-west-2,p5.48xlarge,reserved_3y,partial_upfront,36.678653,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:42.938400 +AWS,us-west-2,p5.48xlarge,spot,NA,20.02959,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843973 +AWS,us-west-2,r4.16xlarge,on_demand,NA,4.256,USD,AWS Pricing API,2025-11-30T08:53:35.304031 +AWS,us-west-2,r4.16xlarge,reserved_1y,all_upfront,3.404653,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:06.413002 +AWS,us-west-2,r4.16xlarge,reserved_1y,no_upfront,3.404653,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:44.051743 +AWS,us-west-2,r4.16xlarge,reserved_1y,partial_upfront,3.404653,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:33.392820 +AWS,us-west-2,r4.16xlarge,reserved_3y,all_upfront,1.702218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:14.801892 +AWS,us-west-2,r4.16xlarge,reserved_3y,no_upfront,1.702218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:44.348642 +AWS,us-west-2,r4.16xlarge,reserved_3y,partial_upfront,1.702218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:45.735355 +AWS,us-west-2,r4.16xlarge,spot,NA,1.747204,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844075 +AWS,us-west-2,r5.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:52:35.879735 +AWS,us-west-2,r5.12xlarge,reserved_1y,all_upfront,1.905,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:07.691251 +AWS,us-west-2,r5.12xlarge,reserved_1y,no_upfront,1.905,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:44.605709 +AWS,us-west-2,r5.12xlarge,reserved_1y,partial_upfront,1.905,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:34.755844 +AWS,us-west-2,r5.12xlarge,reserved_3y,all_upfront,1.905,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:16.281592 +AWS,us-west-2,r5.12xlarge,reserved_3y,no_upfront,1.905,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:44.791445 +AWS,us-west-2,r5.12xlarge,reserved_3y,partial_upfront,1.905,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:45.839237 +AWS,us-west-2,r5.12xlarge,spot,NA,1.156889,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842315 +AWS,us-west-2,r5.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:53:09.139015 +AWS,us-west-2,r5.16xlarge,reserved_1y,all_upfront,5.725571,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:40.663844 +AWS,us-west-2,r5.16xlarge,reserved_1y,no_upfront,5.725571,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:17.929380 +AWS,us-west-2,r5.16xlarge,reserved_1y,partial_upfront,5.725571,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:07.550722 +AWS,us-west-2,r5.16xlarge,reserved_3y,all_upfront,1.908524,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:49.018378 +AWS,us-west-2,r5.16xlarge,reserved_3y,no_upfront,1.908524,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:18.184926 +AWS,us-west-2,r5.16xlarge,reserved_3y,partial_upfront,1.908524,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:19.416799 +AWS,us-west-2,r5.16xlarge,spot,NA,1.529218,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843302 +AWS,us-west-2,r5.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:52:51.349548 +AWS,us-west-2,r5.24xlarge,reserved_1y,all_upfront,4.838767,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:23.027728 +AWS,us-west-2,r5.24xlarge,reserved_1y,no_upfront,4.838767,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:00.105285 +AWS,us-west-2,r5.24xlarge,reserved_1y,partial_upfront,4.838767,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:50.022694 +AWS,us-west-2,r5.24xlarge,reserved_3y,all_upfront,2.419589,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:31.503099 +AWS,us-west-2,r5.24xlarge,reserved_3y,no_upfront,2.419589,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:00.108956 +AWS,us-west-2,r5.24xlarge,reserved_3y,partial_upfront,2.419589,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:01.436054 +AWS,us-west-2,r5.24xlarge,spot,NA,2.403563,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842750 +AWS,us-west-2,r5.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T12:52:29.155246 +AWS,us-west-2,r5.2xlarge,reserved_1y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.155364 +AWS,us-west-2,r5.2xlarge,reserved_1y_no_upfront,NA,0.365,USD,AWS Pricing API,2025-11-30T12:52:29.155416 +AWS,us-west-2,r5.2xlarge,reserved_1y_partial_upfront,NA,0.174,USD,AWS Pricing API,2025-11-30T12:52:29.155404 +AWS,us-west-2,r5.2xlarge,reserved_3y_all_upfront,NA,0.0,USD,AWS Pricing API,2025-11-30T12:52:29.155330 +AWS,us-west-2,r5.2xlarge,reserved_3y_no_upfront,NA,0.218,USD,AWS Pricing API,2025-11-30T12:52:29.155343 +AWS,us-west-2,r5.2xlarge,reserved_3y_partial_upfront,NA,0.122,USD,AWS Pricing API,2025-11-30T12:52:29.155390 +AWS,us-west-2,r5.2xlarge,spot,NA,0.22049,USD,AWS EC2 Spot API (24h avg),2025-11-30T12:52:31.231941 +AWS,us-west-2,r5.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:53:44.489154 +AWS,us-west-2,r5.4xlarge,reserved_1y,all_upfront,0.73,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:15.554401 +AWS,us-west-2,r5.4xlarge,reserved_1y,no_upfront,0.73,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:53.228518 +AWS,us-west-2,r5.4xlarge,reserved_1y,partial_upfront,0.73,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:42.446188 +AWS,us-west-2,r5.4xlarge,reserved_3y,all_upfront,0.73,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:23.804934 +AWS,us-west-2,r5.4xlarge,reserved_3y,no_upfront,0.73,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:53.616805 +AWS,us-west-2,r5.4xlarge,reserved_3y,partial_upfront,0.73,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:54.985502 +AWS,us-west-2,r5.4xlarge,spot,NA,0.400256,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844330 +AWS,us-west-2,r5.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:53:27.152397 +AWS,us-west-2,r5.8xlarge,reserved_1y,all_upfront,1.391548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:58.384651 +AWS,us-west-2,r5.8xlarge,reserved_1y,no_upfront,1.391548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:35.953428 +AWS,us-west-2,r5.8xlarge,reserved_1y,partial_upfront,1.391548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:25.381444 +AWS,us-west-2,r5.8xlarge,reserved_3y,all_upfront,0.927849,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:06.810824 +AWS,us-west-2,r5.8xlarge,reserved_3y,no_upfront,0.927849,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:36.198694 +AWS,us-west-2,r5.8xlarge,reserved_3y,partial_upfront,0.927849,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:37.519675 +AWS,us-west-2,r5.8xlarge,spot,NA,0.820104,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843810 +AWS,us-west-2,r5.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:53:03.006812 +AWS,us-west-2,r5.large,reserved_1y,all_upfront,0.178881,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:34.524610 +AWS,us-west-2,r5.large,reserved_1y,no_upfront,0.178881,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:11.784876 +AWS,us-west-2,r5.large,reserved_1y,partial_upfront,0.178881,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:01.467777 +AWS,us-west-2,r5.large,reserved_3y,all_upfront,0.059627,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:42.964057 +AWS,us-west-2,r5.large,reserved_3y,no_upfront,0.059627,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:11.950729 +AWS,us-west-2,r5.large,reserved_3y,partial_upfront,0.059627,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:13.187037 +AWS,us-west-2,r5.large,spot,NA,0.046871,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843101 +AWS,us-west-2,r5.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T08:52:40.142412 +AWS,us-west-2,r5.xlarge,reserved_1y,all_upfront,0.170434,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:11.909858 +AWS,us-west-2,r5.xlarge,reserved_1y,no_upfront,0.170434,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:48.895500 +AWS,us-west-2,r5.xlarge,reserved_1y,partial_upfront,0.170434,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:38.937319 +AWS,us-west-2,r5.xlarge,reserved_3y,all_upfront,0.056811,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:20.443148 +AWS,us-west-2,r5.xlarge,reserved_3y,no_upfront,0.056811,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:48.972787 +AWS,us-west-2,r5.xlarge,reserved_3y,partial_upfront,0.056811,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:50.155715 +AWS,us-west-2,r5.xlarge,spot,NA,0.092103,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842422 +AWS,us-west-2,r5a.12xlarge,on_demand,NA,2.712,USD,AWS Pricing API,2025-11-30T08:53:35.448422 +AWS,us-west-2,r5a.12xlarge,reserved_1y,all_upfront,1.594635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:06.550531 +AWS,us-west-2,r5a.12xlarge,reserved_1y,no_upfront,1.594635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:44.189988 +AWS,us-west-2,r5a.12xlarge,reserved_1y,partial_upfront,1.594635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:33.527485 +AWS,us-west-2,r5a.12xlarge,reserved_3y,all_upfront,0.531545,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:14.933992 +AWS,us-west-2,r5a.12xlarge,reserved_3y,no_upfront,0.531545,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:44.485637 +AWS,us-west-2,r5a.12xlarge,reserved_3y,partial_upfront,0.531545,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:45.873669 +AWS,us-west-2,r5a.12xlarge,spot,NA,1.050471,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844071 +AWS,us-west-2,r5a.16xlarge,on_demand,NA,3.616,USD,AWS Pricing API,2025-11-30T08:53:43.669409 +AWS,us-west-2,r5a.16xlarge,reserved_1y,all_upfront,2.452283,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:14.727790 +AWS,us-west-2,r5a.16xlarge,reserved_1y,no_upfront,2.452283,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:52.409842 +AWS,us-west-2,r5a.16xlarge,reserved_1y,partial_upfront,2.452283,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:41.639453 +AWS,us-west-2,r5a.16xlarge,reserved_3y,all_upfront,0.817428,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:22.996493 +AWS,us-west-2,r5a.16xlarge,reserved_3y,no_upfront,0.817428,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:52.794860 +AWS,us-west-2,r5a.16xlarge,reserved_3y,partial_upfront,0.817428,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:54.161801 +AWS,us-west-2,r5a.16xlarge,spot,NA,1.409393,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844277 +AWS,us-west-2,r5a.24xlarge,on_demand,NA,5.424,USD,AWS Pricing API,2025-11-30T08:53:37.491618 +AWS,us-west-2,r5a.24xlarge,reserved_1y,all_upfront,3.254169,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:08.572565 +AWS,us-west-2,r5a.24xlarge,reserved_1y,no_upfront,3.254169,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:46.266028 +AWS,us-west-2,r5a.24xlarge,reserved_1y,partial_upfront,3.254169,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:35.553860 +AWS,us-west-2,r5a.24xlarge,reserved_3y,all_upfront,2.16939,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:16.947672 +AWS,us-west-2,r5a.24xlarge,reserved_3y,no_upfront,2.16939,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:46.553233 +AWS,us-west-2,r5a.24xlarge,reserved_3y,partial_upfront,2.16939,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:47.960768 +AWS,us-west-2,r5a.24xlarge,spot,NA,2.201267,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844090 +AWS,us-west-2,r5a.2xlarge,on_demand,NA,0.452,USD,AWS Pricing API,2025-11-30T08:53:48.329901 +AWS,us-west-2,r5a.2xlarge,reserved_1y,all_upfront,0.265753,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:19.339401 +AWS,us-west-2,r5a.2xlarge,reserved_1y,no_upfront,0.265753,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:57.062278 +AWS,us-west-2,r5a.2xlarge,reserved_1y,partial_upfront,0.265753,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:46.243395 +AWS,us-west-2,r5a.2xlarge,reserved_3y,all_upfront,0.088584,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:27.591059 +AWS,us-west-2,r5a.2xlarge,reserved_3y,no_upfront,0.088584,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:57.464985 +AWS,us-west-2,r5a.2xlarge,reserved_3y,partial_upfront,0.088584,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:58.890119 +AWS,us-west-2,r5a.2xlarge,spot,NA,0.214992,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844399 +AWS,us-west-2,r5a.4xlarge,on_demand,NA,0.904,USD,AWS Pricing API,2025-11-30T08:53:28.119924 +AWS,us-west-2,r5a.4xlarge,reserved_1y,all_upfront,0.723352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:59.335062 +AWS,us-west-2,r5a.4xlarge,reserved_1y,no_upfront,0.723352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:36.940779 +AWS,us-west-2,r5a.4xlarge,reserved_1y,partial_upfront,0.723352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:26.322633 +AWS,us-west-2,r5a.4xlarge,reserved_3y,all_upfront,0.361784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:07.770975 +AWS,us-west-2,r5a.4xlarge,reserved_3y,no_upfront,0.361784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:37.159811 +AWS,us-west-2,r5a.4xlarge,reserved_3y,partial_upfront,0.361784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:38.523201 +AWS,us-west-2,r5a.4xlarge,spot,NA,0.397032,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843860 +AWS,us-west-2,r5a.8xlarge,on_demand,NA,1.808,USD,AWS Pricing API,2025-11-30T08:53:10.241665 +AWS,us-west-2,r5a.8xlarge,reserved_1y,all_upfront,2.567352,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:41.749372 +AWS,us-west-2,r5a.8xlarge,reserved_1y,no_upfront,2.567352,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:19.024881 +AWS,us-west-2,r5a.8xlarge,reserved_1y,partial_upfront,2.567352,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:08.640137 +AWS,us-west-2,r5a.8xlarge,reserved_3y,all_upfront,0.855784,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:50.091547 +AWS,us-west-2,r5a.8xlarge,reserved_3y,no_upfront,0.855784,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:19.279337 +AWS,us-west-2,r5a.8xlarge,reserved_3y,partial_upfront,0.855784,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:20.517950 +AWS,us-west-2,r5a.8xlarge,spot,NA,0.749679,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843337 +AWS,us-west-2,r5a.large,on_demand,NA,0.113,USD,AWS Pricing API,2025-11-30T08:53:16.796244 +AWS,us-west-2,r5a.large,reserved_1y,all_upfront,0.076598,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:48.231408 +AWS,us-west-2,r5a.large,reserved_1y,no_upfront,0.076598,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:25.579309 +AWS,us-west-2,r5a.large,reserved_1y,partial_upfront,0.076598,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:15.187209 +AWS,us-west-2,r5a.large,reserved_3y,all_upfront,0.025533,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:56.654943 +AWS,us-west-2,r5a.large,reserved_3y,no_upfront,0.025533,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:25.875176 +AWS,us-west-2,r5a.large,reserved_3y,partial_upfront,0.025533,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:27.143949 +AWS,us-west-2,r5a.large,spot,NA,0.052098,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843492 +AWS,us-west-2,r5a.xlarge,on_demand,NA,0.226,USD,AWS Pricing API,2025-11-30T08:53:27.569558 +AWS,us-west-2,r5a.xlarge,reserved_1y,all_upfront,0.180616,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:58.791890 +AWS,us-west-2,r5a.xlarge,reserved_1y,no_upfront,0.180616,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:36.373060 +AWS,us-west-2,r5a.xlarge,reserved_1y,partial_upfront,0.180616,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:25.783207 +AWS,us-west-2,r5a.xlarge,reserved_3y,all_upfront,0.090205,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:07.233412 +AWS,us-west-2,r5a.xlarge,reserved_3y,no_upfront,0.090205,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:36.610749 +AWS,us-west-2,r5a.xlarge,reserved_3y,partial_upfront,0.090205,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:37.935769 +AWS,us-west-2,r5a.xlarge,spot,NA,0.102385,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843826 +AWS,us-west-2,r5d.12xlarge,on_demand,NA,3.456,USD,AWS Pricing API,2025-11-30T08:53:41.051569 +AWS,us-west-2,r5d.12xlarge,reserved_1y,all_upfront,4.844749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:12.164398 +AWS,us-west-2,r5d.12xlarge,reserved_1y,no_upfront,4.844749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:49.823420 +AWS,us-west-2,r5d.12xlarge,reserved_1y,partial_upfront,4.844749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:39.053440 +AWS,us-west-2,r5d.12xlarge,reserved_3y,all_upfront,1.614916,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:20.417494 +AWS,us-west-2,r5d.12xlarge,reserved_3y,no_upfront,1.614916,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:50.161633 +AWS,us-west-2,r5d.12xlarge,reserved_3y,partial_upfront,1.614916,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:51.551447 +AWS,us-west-2,r5d.12xlarge,spot,NA,1.464779,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844202 +AWS,us-west-2,r5d.16xlarge,on_demand,NA,4.608,USD,AWS Pricing API,2025-11-30T08:53:05.328222 +AWS,us-west-2,r5d.16xlarge,reserved_1y,all_upfront,3.18558,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:36.848725 +AWS,us-west-2,r5d.16xlarge,reserved_1y,no_upfront,3.18558,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:14.088157 +AWS,us-west-2,r5d.16xlarge,reserved_1y,partial_upfront,3.18558,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:03.784892 +AWS,us-west-2,r5d.16xlarge,reserved_3y,all_upfront,2.12386,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:45.251329 +AWS,us-west-2,r5d.16xlarge,reserved_3y,no_upfront,2.12386,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:14.344511 +AWS,us-west-2,r5d.16xlarge,reserved_3y,partial_upfront,2.12386,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:15.545966 +AWS,us-west-2,r5d.16xlarge,spot,NA,1.893594,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843186 +AWS,us-west-2,r5d.24xlarge,on_demand,NA,6.912,USD,AWS Pricing API,2025-11-30T08:53:35.585672 +AWS,us-west-2,r5d.24xlarge,reserved_1y,all_upfront,6.591721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:06.685039 +AWS,us-west-2,r5d.24xlarge,reserved_1y,no_upfront,6.591721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:44.330569 +AWS,us-west-2,r5d.24xlarge,reserved_1y,partial_upfront,6.591721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:33.662603 +AWS,us-west-2,r5d.24xlarge,reserved_3y,all_upfront,3.295907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:15.070755 +AWS,us-west-2,r5d.24xlarge,reserved_3y,no_upfront,3.295907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:44.621208 +AWS,us-west-2,r5d.24xlarge,reserved_3y,partial_upfront,3.295907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:46.013144 +AWS,us-west-2,r5d.24xlarge,spot,NA,2.804592,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844055 +AWS,us-west-2,r5d.2xlarge,on_demand,NA,0.576,USD,AWS Pricing API,2025-11-30T08:53:34.164658 +AWS,us-west-2,r5d.2xlarge,reserved_1y,all_upfront,0.338699,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:05.335366 +AWS,us-west-2,r5d.2xlarge,reserved_1y,no_upfront,0.338699,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:42.948540 +AWS,us-west-2,r5d.2xlarge,reserved_1y,partial_upfront,0.338699,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:32.326141 +AWS,us-west-2,r5d.2xlarge,reserved_3y,all_upfront,0.1129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:13.710413 +AWS,us-west-2,r5d.2xlarge,reserved_3y,no_upfront,0.1129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:43.250550 +AWS,us-west-2,r5d.2xlarge,reserved_3y,partial_upfront,0.1129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:44.629348 +AWS,us-west-2,r5d.2xlarge,spot,NA,0.28831,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844027 +AWS,us-west-2,r5d.4xlarge,on_demand,NA,1.152,USD,AWS Pricing API,2025-11-30T08:53:04.785220 +AWS,us-west-2,r5d.4xlarge,reserved_1y,all_upfront,0.92121,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:36.301995 +AWS,us-west-2,r5d.4xlarge,reserved_1y,no_upfront,0.92121,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:13.550936 +AWS,us-west-2,r5d.4xlarge,reserved_1y,partial_upfront,0.92121,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:03.244020 +AWS,us-west-2,r5d.4xlarge,reserved_3y,all_upfront,0.460403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:44.718039 +AWS,us-west-2,r5d.4xlarge,reserved_3y,no_upfront,0.460403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:13.765333 +AWS,us-west-2,r5d.4xlarge,reserved_3y,partial_upfront,0.460403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:14.991481 +AWS,us-west-2,r5d.4xlarge,spot,NA,0.583451,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843167 +AWS,us-west-2,r5d.8xlarge,on_demand,NA,2.304,USD,AWS Pricing API,2025-11-30T08:53:04.379065 +AWS,us-west-2,r5d.8xlarge,reserved_1y,all_upfront,1.560731,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:35.888214 +AWS,us-west-2,r5d.8xlarge,reserved_1y,no_upfront,1.560731,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:13.137437 +AWS,us-west-2,r5d.8xlarge,reserved_1y,partial_upfront,1.560731,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:02.843211 +AWS,us-west-2,r5d.8xlarge,reserved_3y,all_upfront,0.520244,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:44.298920 +AWS,us-west-2,r5d.8xlarge,reserved_3y,no_upfront,0.520244,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:13.353460 +AWS,us-west-2,r5d.8xlarge,reserved_3y,partial_upfront,0.520244,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:14.580692 +AWS,us-west-2,r5d.8xlarge,spot,NA,1.100211,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843112 +AWS,us-west-2,r5d.large,on_demand,NA,0.144,USD,AWS Pricing API,2025-11-30T08:53:29.355540 +AWS,us-west-2,r5d.large,reserved_1y,all_upfront,0.097489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:00.565077 +AWS,us-west-2,r5d.large,reserved_1y,no_upfront,0.097489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:38.183573 +AWS,us-west-2,r5d.large,reserved_1y,partial_upfront,0.097489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:27.543178 +AWS,us-west-2,r5d.large,reserved_3y,all_upfront,0.032496,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:08.998362 +AWS,us-west-2,r5d.large,reserved_3y,no_upfront,0.032496,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:38.401409 +AWS,us-west-2,r5d.large,reserved_3y,partial_upfront,0.032496,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:39.767519 +AWS,us-west-2,r5d.large,spot,NA,0.065512,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843880 +AWS,us-west-2,r5d.xlarge,on_demand,NA,0.288,USD,AWS Pricing API,2025-11-30T08:52:46.575256 +AWS,us-west-2,r5d.xlarge,reserved_1y,all_upfront,0.195091,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:18.266498 +AWS,us-west-2,r5d.xlarge,reserved_1y,no_upfront,0.195091,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:55.332489 +AWS,us-west-2,r5d.xlarge,reserved_1y,partial_upfront,0.195091,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:45.297306 +AWS,us-west-2,r5d.xlarge,reserved_3y,all_upfront,0.06503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:26.793118 +AWS,us-west-2,r5d.xlarge,reserved_3y,no_upfront,0.06503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:55.364067 +AWS,us-west-2,r5d.xlarge,reserved_3y,partial_upfront,0.06503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:56.606265 +AWS,us-west-2,r5d.xlarge,spot,NA,0.15285,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842617 +AWS,us-west-2,r5dn.12xlarge,on_demand,NA,4.008,USD,AWS Pricing API,2025-11-30T08:52:49.435934 +AWS,us-west-2,r5dn.12xlarge,reserved_1y,all_upfront,3.022553,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:21.127085 +AWS,us-west-2,r5dn.12xlarge,reserved_1y,no_upfront,3.022553,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:58.192668 +AWS,us-west-2,r5dn.12xlarge,reserved_1y,partial_upfront,3.022553,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:48.133471 +AWS,us-west-2,r5dn.12xlarge,reserved_3y,all_upfront,1.511518,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:29.609176 +AWS,us-west-2,r5dn.12xlarge,reserved_3y,no_upfront,1.511518,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:58.209316 +AWS,us-west-2,r5dn.12xlarge,reserved_3y,partial_upfront,1.511518,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:59.504369 +AWS,us-west-2,r5dn.12xlarge,spot,NA,1.790781,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842672 +AWS,us-west-2,r5dn.16xlarge,on_demand,NA,5.344,USD,AWS Pricing API,2025-11-30T08:52:59.978622 +AWS,us-west-2,r5dn.16xlarge,reserved_1y,all_upfront,2.499,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:31.561489 +AWS,us-west-2,r5dn.16xlarge,reserved_1y,no_upfront,2.499,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:08.793287 +AWS,us-west-2,r5dn.16xlarge,reserved_1y,partial_upfront,2.499,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:58.498483 +AWS,us-west-2,r5dn.16xlarge,reserved_3y,all_upfront,2.499,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:40.005296 +AWS,us-west-2,r5dn.16xlarge,reserved_3y,no_upfront,2.499,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:08.930920 +AWS,us-west-2,r5dn.16xlarge,reserved_3y,partial_upfront,2.499,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:10.140967 +AWS,us-west-2,r5dn.16xlarge,spot,NA,2.462652,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843015 +AWS,us-west-2,r5dn.24xlarge,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T08:53:11.605658 +AWS,us-west-2,r5dn.24xlarge,reserved_1y,all_upfront,6.044105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:43.099499 +AWS,us-west-2,r5dn.24xlarge,reserved_1y,no_upfront,6.044105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:20.389333 +AWS,us-west-2,r5dn.24xlarge,reserved_1y,partial_upfront,6.044105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:09.988480 +AWS,us-west-2,r5dn.24xlarge,reserved_3y,all_upfront,3.022035,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:51.452783 +AWS,us-west-2,r5dn.24xlarge,reserved_3y,no_upfront,3.022035,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:20.649667 +AWS,us-west-2,r5dn.24xlarge,reserved_3y,partial_upfront,3.022035,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:21.897318 +AWS,us-west-2,r5dn.24xlarge,spot,NA,3.464316,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843379 +AWS,us-west-2,r5dn.2xlarge,on_demand,NA,0.668,USD,AWS Pricing API,2025-11-30T08:53:16.933235 +AWS,us-west-2,r5dn.2xlarge,reserved_1y,all_upfront,0.460479,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:48.371514 +AWS,us-west-2,r5dn.2xlarge,reserved_1y,no_upfront,0.460479,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:25.716806 +AWS,us-west-2,r5dn.2xlarge,reserved_1y,partial_upfront,0.460479,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:15.334446 +AWS,us-west-2,r5dn.2xlarge,reserved_3y,all_upfront,0.306826,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:56.787449 +AWS,us-west-2,r5dn.2xlarge,reserved_3y,no_upfront,0.306826,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:26.011446 +AWS,us-west-2,r5dn.2xlarge,reserved_3y,partial_upfront,0.306826,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:27.284051 +AWS,us-west-2,r5dn.2xlarge,spot,NA,0.411887,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843522 +AWS,us-west-2,r5dn.4xlarge,on_demand,NA,1.336,USD,AWS Pricing API,2025-11-30T08:52:40.817815 +AWS,us-west-2,r5dn.4xlarge,reserved_1y,all_upfront,0.842,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:12.597811 +AWS,us-west-2,r5dn.4xlarge,reserved_1y,no_upfront,0.842,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:49.582537 +AWS,us-west-2,r5dn.4xlarge,reserved_1y,partial_upfront,0.842,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:39.623210 +AWS,us-west-2,r5dn.4xlarge,reserved_3y,all_upfront,0.842,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:21.122621 +AWS,us-west-2,r5dn.4xlarge,reserved_3y,no_upfront,0.842,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:49.653017 +AWS,us-west-2,r5dn.4xlarge,reserved_3y,partial_upfront,0.842,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:50.842118 +AWS,us-west-2,r5dn.4xlarge,spot,NA,0.619457,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842446 +AWS,us-west-2,r5dn.8xlarge,on_demand,NA,2.672,USD,AWS Pricing API,2025-11-30T08:53:40.764136 +AWS,us-west-2,r5dn.8xlarge,reserved_1y,all_upfront,3.401484,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:11.896440 +AWS,us-west-2,r5dn.8xlarge,reserved_1y,no_upfront,3.401484,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:49.551580 +AWS,us-west-2,r5dn.8xlarge,reserved_1y,partial_upfront,3.401484,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:38.785503 +AWS,us-west-2,r5dn.8xlarge,reserved_3y,all_upfront,1.133828,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:20.146950 +AWS,us-west-2,r5dn.8xlarge,reserved_3y,no_upfront,1.133828,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:49.886385 +AWS,us-west-2,r5dn.8xlarge,reserved_3y,partial_upfront,1.133828,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:51.276823 +AWS,us-west-2,r5dn.8xlarge,spot,NA,1.30646,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844218 +AWS,us-west-2,r5dn.large,on_demand,NA,0.167,USD,AWS Pricing API,2025-11-30T08:52:50.523891 +AWS,us-west-2,r5dn.large,reserved_1y,all_upfront,0.098174,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:22.211472 +AWS,us-west-2,r5dn.large,reserved_1y,no_upfront,0.098174,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:59.287204 +AWS,us-west-2,r5dn.large,reserved_1y,partial_upfront,0.098174,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:49.214953 +AWS,us-west-2,r5dn.large,reserved_3y,all_upfront,0.032725,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:30.690859 +AWS,us-west-2,r5dn.large,reserved_3y,no_upfront,0.032725,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:59.300672 +AWS,us-west-2,r5dn.large,reserved_3y,partial_upfront,0.032725,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:00.606967 +AWS,us-west-2,r5dn.large,spot,NA,0.063847,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842720 +AWS,us-west-2,r5dn.metal,on_demand,NA,8.016,USD,AWS Pricing API,2025-11-30T08:52:38.486523 +AWS,us-west-2,r5dn.metal,reserved_1y,all_upfront,5.808,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:10.282751 +AWS,us-west-2,r5dn.metal,reserved_1y,no_upfront,5.808,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:47.247702 +AWS,us-west-2,r5dn.metal,reserved_1y,partial_upfront,5.808,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:37.307892 +AWS,us-west-2,r5dn.metal,reserved_3y,all_upfront,5.808,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:18.831122 +AWS,us-west-2,r5dn.metal,reserved_3y,no_upfront,5.808,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:47.367675 +AWS,us-west-2,r5dn.metal,reserved_3y,partial_upfront,5.808,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:48.477141 +AWS,us-west-2,r5dn.metal,spot,NA,3.191112,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842354 +AWS,us-west-2,r5dn.xlarge,on_demand,NA,0.334,USD,AWS Pricing API,2025-11-30T08:53:02.047037 +AWS,us-west-2,r5dn.xlarge,reserved_1y,all_upfront,0.21,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:33.583272 +AWS,us-west-2,r5dn.xlarge,reserved_1y,no_upfront,0.21,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:10.830627 +AWS,us-west-2,r5dn.xlarge,reserved_1y,partial_upfront,0.21,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:00.527635 +AWS,us-west-2,r5dn.xlarge,reserved_3y,all_upfront,0.21,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:42.021827 +AWS,us-west-2,r5dn.xlarge,reserved_3y,no_upfront,0.21,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:10.994095 +AWS,us-west-2,r5dn.xlarge,reserved_3y,partial_upfront,0.21,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:12.218186 +AWS,us-west-2,r5dn.xlarge,spot,NA,0.182956,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843085 +AWS,us-west-2,r5n.12xlarge,on_demand,NA,3.576,USD,AWS Pricing API,2025-11-30T08:53:24.920517 +AWS,us-west-2,r5n.12xlarge,reserved_1y,all_upfront,2.145831,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:56.199970 +AWS,us-west-2,r5n.12xlarge,reserved_1y,no_upfront,2.145831,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:33.699436 +AWS,us-west-2,r5n.12xlarge,reserved_1y,partial_upfront,2.145831,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:23.204118 +AWS,us-west-2,r5n.12xlarge,reserved_3y,all_upfront,1.43061,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:04.657292 +AWS,us-west-2,r5n.12xlarge,reserved_3y,no_upfront,1.43061,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:33.990888 +AWS,us-west-2,r5n.12xlarge,reserved_3y,partial_upfront,1.43061,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:35.297281 +AWS,us-west-2,r5n.12xlarge,spot,NA,1.623884,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843732 +AWS,us-west-2,r5n.16xlarge,on_demand,NA,4.768,USD,AWS Pricing API,2025-11-30T08:53:40.352518 +AWS,us-west-2,r5n.16xlarge,reserved_1y,all_upfront,3.224087,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:11.485062 +AWS,us-west-2,r5n.16xlarge,reserved_1y,no_upfront,3.224087,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:49.146567 +AWS,us-west-2,r5n.16xlarge,reserved_1y,partial_upfront,3.224087,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:38.381552 +AWS,us-west-2,r5n.16xlarge,reserved_3y,all_upfront,1.074696,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:19.746811 +AWS,us-west-2,r5n.16xlarge,reserved_3y,no_upfront,1.074696,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:49.478792 +AWS,us-west-2,r5n.16xlarge,reserved_3y,partial_upfront,1.074696,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:50.862501 +AWS,us-west-2,r5n.16xlarge,spot,NA,2.007997,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844195 +AWS,us-west-2,r5n.24xlarge,on_demand,NA,7.152,USD,AWS Pricing API,2025-11-30T08:53:01.629891 +AWS,us-west-2,r5n.24xlarge,reserved_1y,all_upfront,4.291548,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:33.179594 +AWS,us-west-2,r5n.24xlarge,reserved_1y,no_upfront,4.291548,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:10.421271 +AWS,us-west-2,r5n.24xlarge,reserved_1y,partial_upfront,4.291548,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:00.124995 +AWS,us-west-2,r5n.24xlarge,reserved_3y,all_upfront,2.861183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:41.619853 +AWS,us-west-2,r5n.24xlarge,reserved_3y,no_upfront,2.861183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:10.583177 +AWS,us-west-2,r5n.24xlarge,reserved_3y,partial_upfront,2.861183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:11.796194 +AWS,us-west-2,r5n.24xlarge,spot,NA,2.923331,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843058 +AWS,us-west-2,r5n.2xlarge,on_demand,NA,0.596,USD,AWS Pricing API,2025-11-30T08:52:42.327140 +AWS,us-west-2,r5n.2xlarge,reserved_1y,all_upfront,0.411594,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:14.087529 +AWS,us-west-2,r5n.2xlarge,reserved_1y,no_upfront,0.411594,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:51.083990 +AWS,us-west-2,r5n.2xlarge,reserved_1y,partial_upfront,0.411594,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:41.110653 +AWS,us-west-2,r5n.2xlarge,reserved_3y,all_upfront,0.274531,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:22.620526 +AWS,us-west-2,r5n.2xlarge,reserved_3y,no_upfront,0.274531,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:51.158095 +AWS,us-west-2,r5n.2xlarge,reserved_3y,partial_upfront,0.274531,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:52.351227 +AWS,us-west-2,r5n.2xlarge,spot,NA,0.318997,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842475 +AWS,us-west-2,r5n.4xlarge,on_demand,NA,1.192,USD,AWS Pricing API,2025-11-30T08:53:38.857669 +AWS,us-west-2,r5n.4xlarge,reserved_1y,all_upfront,0.700913,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:09.999213 +AWS,us-west-2,r5n.4xlarge,reserved_1y,no_upfront,0.700913,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:47.635142 +AWS,us-west-2,r5n.4xlarge,reserved_1y,partial_upfront,0.700913,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:36.903371 +AWS,us-west-2,r5n.4xlarge,reserved_3y,all_upfront,0.233638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:18.283252 +AWS,us-west-2,r5n.4xlarge,reserved_3y,no_upfront,0.233638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:47.950450 +AWS,us-west-2,r5n.4xlarge,reserved_3y,partial_upfront,0.233638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:49.341179 +AWS,us-west-2,r5n.4xlarge,spot,NA,0.60901,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844144 +AWS,us-west-2,r5n.8xlarge,on_demand,NA,2.384,USD,AWS Pricing API,2025-11-30T08:53:24.771924 +AWS,us-west-2,r5n.8xlarge,reserved_1y,all_upfront,2.521119,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:56.063031 +AWS,us-west-2,r5n.8xlarge,reserved_1y,no_upfront,2.521119,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:33.562402 +AWS,us-west-2,r5n.8xlarge,reserved_1y,partial_upfront,2.521119,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:23.071276 +AWS,us-west-2,r5n.8xlarge,reserved_3y,all_upfront,0.840373,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:04.523625 +AWS,us-west-2,r5n.8xlarge,reserved_3y,no_upfront,0.840373,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:33.852915 +AWS,us-west-2,r5n.8xlarge,reserved_3y,partial_upfront,0.840373,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:35.159206 +AWS,us-west-2,r5n.8xlarge,spot,NA,1.211205,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843728 +AWS,us-west-2,r5n.large,on_demand,NA,0.149,USD,AWS Pricing API,2025-11-30T08:53:46.273231 +AWS,us-west-2,r5n.large,reserved_1y,all_upfront,0.11179,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:17.308708 +AWS,us-west-2,r5n.large,reserved_1y,no_upfront,0.11179,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:55.005532 +AWS,us-west-2,r5n.large,reserved_1y,partial_upfront,0.11179,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:44.207122 +AWS,us-west-2,r5n.large,reserved_3y,all_upfront,0.05593,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:25.572470 +AWS,us-west-2,r5n.large,reserved_3y,no_upfront,0.05593,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:55.410757 +AWS,us-west-2,r5n.large,reserved_3y,partial_upfront,0.05593,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:56.817945 +AWS,us-west-2,r5n.large,spot,NA,0.075194,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844391 +AWS,us-west-2,r5n.metal,on_demand,NA,7.152,USD,AWS Pricing API,2025-11-30T08:53:25.745506 +AWS,us-west-2,r5n.metal,reserved_1y,all_upfront,9.083562,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:57.020193 +AWS,us-west-2,r5n.metal,reserved_1y,no_upfront,9.083562,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:34.553130 +AWS,us-west-2,r5n.metal,reserved_1y,partial_upfront,9.083562,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:24.013521 +AWS,us-west-2,r5n.metal,reserved_3y,all_upfront,3.027854,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:05.471015 +AWS,us-west-2,r5n.metal,reserved_3y,no_upfront,3.027854,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:34.820286 +AWS,us-west-2,r5n.metal,reserved_3y,partial_upfront,3.027854,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:36.121401 +AWS,us-west-2,r5n.metal,spot,NA,2.788176,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843775 +AWS,us-west-2,r5n.xlarge,on_demand,NA,0.298,USD,AWS Pricing API,2025-11-30T08:53:03.698095 +AWS,us-west-2,r5n.xlarge,reserved_1y,all_upfront,0.178384,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:35.215633 +AWS,us-west-2,r5n.xlarge,reserved_1y,no_upfront,0.178384,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:12.460732 +AWS,us-west-2,r5n.xlarge,reserved_1y,partial_upfront,0.178384,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:02.164683 +AWS,us-west-2,r5n.xlarge,reserved_3y,all_upfront,0.118795,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:43.632103 +AWS,us-west-2,r5n.xlarge,reserved_3y,no_upfront,0.118795,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:12.659504 +AWS,us-west-2,r5n.xlarge,reserved_3y,partial_upfront,0.118795,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:13.869621 +AWS,us-west-2,r5n.xlarge,spot,NA,0.149735,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843140 +AWS,us-west-2,r6g.12xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:52:56.817172 +AWS,us-west-2,r6g.12xlarge,reserved_1y,all_upfront,3.411872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:28.448642 +AWS,us-west-2,r6g.12xlarge,reserved_1y,no_upfront,3.411872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:05.589317 +AWS,us-west-2,r6g.12xlarge,reserved_1y,partial_upfront,3.411872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:55.401881 +AWS,us-west-2,r6g.12xlarge,reserved_3y,all_upfront,1.137291,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:36.911990 +AWS,us-west-2,r6g.12xlarge,reserved_3y,no_upfront,1.137291,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:05.772295 +AWS,us-west-2,r6g.12xlarge,reserved_3y,partial_upfront,1.137291,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:06.963430 +AWS,us-west-2,r6g.12xlarge,spot,NA,0.870508,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842931 +AWS,us-west-2,r6g.16xlarge,on_demand,NA,3.2256,USD,AWS Pricing API,2025-11-30T08:52:53.684174 +AWS,us-west-2,r6g.16xlarge,reserved_1y,all_upfront,2.3251,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:25.347631 +AWS,us-west-2,r6g.16xlarge,reserved_1y,no_upfront,2.3251,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:02.443815 +AWS,us-west-2,r6g.16xlarge,reserved_1y,partial_upfront,2.3251,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:52.309806 +AWS,us-west-2,r6g.16xlarge,reserved_3y,all_upfront,2.3251,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:33.792228 +AWS,us-west-2,r6g.16xlarge,reserved_3y,no_upfront,2.3251,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:02.413688 +AWS,us-west-2,r6g.16xlarge,reserved_3y,partial_upfront,2.3251,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:03.799061 +AWS,us-west-2,r6g.16xlarge,spot,NA,1.18049,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842830 +AWS,us-west-2,r6g.2xlarge,on_demand,NA,0.4032,USD,AWS Pricing API,2025-11-30T08:53:47.237016 +AWS,us-west-2,r6g.2xlarge,reserved_1y,all_upfront,0.271233,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:18.263373 +AWS,us-west-2,r6g.2xlarge,reserved_1y,no_upfront,0.271233,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:55.965536 +AWS,us-west-2,r6g.2xlarge,reserved_1y,partial_upfront,0.271233,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:45.165391 +AWS,us-west-2,r6g.2xlarge,reserved_3y,all_upfront,0.090411,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:26.507631 +AWS,us-west-2,r6g.2xlarge,reserved_3y,no_upfront,0.090411,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:56.370791 +AWS,us-west-2,r6g.2xlarge,reserved_3y,partial_upfront,0.090411,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:57.775856 +AWS,us-west-2,r6g.2xlarge,spot,NA,0.151118,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844422 +AWS,us-west-2,r6g.4xlarge,on_demand,NA,0.8064,USD,AWS Pricing API,2025-11-30T08:52:43.437577 +AWS,us-west-2,r6g.4xlarge,reserved_1y,all_upfront,0.483795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:15.165120 +AWS,us-west-2,r6g.4xlarge,reserved_1y,no_upfront,0.483795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:52.176184 +AWS,us-west-2,r6g.4xlarge,reserved_1y,partial_upfront,0.483795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:42.199889 +AWS,us-west-2,r6g.4xlarge,reserved_3y,all_upfront,0.322532,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:23.691372 +AWS,us-west-2,r6g.4xlarge,reserved_3y,no_upfront,0.322532,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:52.234310 +AWS,us-west-2,r6g.4xlarge,reserved_3y,partial_upfront,0.322532,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:53.444540 +AWS,us-west-2,r6g.4xlarge,spot,NA,0.302589,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842523 +AWS,us-west-2,r6g.8xlarge,on_demand,NA,1.6128,USD,AWS Pricing API,2025-11-30T08:53:22.700876 +AWS,us-west-2,r6g.8xlarge,reserved_1y,all_upfront,2.274543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:54.046443 +AWS,us-west-2,r6g.8xlarge,reserved_1y,no_upfront,2.274543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:31.486552 +AWS,us-west-2,r6g.8xlarge,reserved_1y,partial_upfront,2.274543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:21.044541 +AWS,us-west-2,r6g.8xlarge,reserved_3y,all_upfront,0.758181,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:02.508290 +AWS,us-west-2,r6g.8xlarge,reserved_3y,no_upfront,0.758181,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:31.798713 +AWS,us-west-2,r6g.8xlarge,reserved_3y,partial_upfront,0.758181,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:33.091106 +AWS,us-west-2,r6g.8xlarge,spot,NA,0.597437,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843696 +AWS,us-west-2,r6g.large,on_demand,NA,0.1008,USD,AWS Pricing API,2025-11-30T08:53:01.079318 +AWS,us-west-2,r6g.large,reserved_1y,all_upfront,0.059247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:32.642874 +AWS,us-west-2,r6g.large,reserved_1y,no_upfront,0.059247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:09.880547 +AWS,us-west-2,r6g.large,reserved_1y,partial_upfront,0.059247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:59.583335 +AWS,us-west-2,r6g.large,reserved_3y,all_upfront,0.019749,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:41.078108 +AWS,us-west-2,r6g.large,reserved_3y,no_upfront,0.019749,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:10.036373 +AWS,us-west-2,r6g.large,reserved_3y,partial_upfront,0.019749,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:11.247450 +AWS,us-west-2,r6g.large,spot,NA,0.041065,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843054 +AWS,us-west-2,r6g.xlarge,on_demand,NA,0.2016,USD,AWS Pricing API,2025-11-30T08:52:36.295411 +AWS,us-west-2,r6g.xlarge,reserved_1y,all_upfront,0.1453,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:08.094367 +AWS,us-west-2,r6g.xlarge,reserved_1y,no_upfront,0.1453,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:45.026531 +AWS,us-west-2,r6g.xlarge,reserved_1y,partial_upfront,0.1453,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:35.155202 +AWS,us-west-2,r6g.xlarge,reserved_3y,all_upfront,0.1453,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:16.684928 +AWS,us-west-2,r6g.xlarge,reserved_3y,no_upfront,0.1453,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:45.197840 +AWS,us-west-2,r6g.xlarge,reserved_3y,partial_upfront,0.1453,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:46.251044 +AWS,us-west-2,r6g.xlarge,spot,NA,0.079216,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842311 +AWS,us-west-2,r6gd.12xlarge,on_demand,NA,2.7648,USD,AWS Pricing API,2025-11-30T08:53:33.328166 +AWS,us-west-2,r6gd.12xlarge,reserved_1y,all_upfront,1.625685,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:04.526951 +AWS,us-west-2,r6gd.12xlarge,reserved_1y,no_upfront,1.625685,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:42.132649 +AWS,us-west-2,r6gd.12xlarge,reserved_1y,partial_upfront,1.625685,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:31.509345 +AWS,us-west-2,r6gd.12xlarge,reserved_3y,all_upfront,0.541895,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:12.892943 +AWS,us-west-2,r6gd.12xlarge,reserved_3y,no_upfront,0.541895,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:42.399736 +AWS,us-west-2,r6gd.12xlarge,reserved_3y,partial_upfront,0.541895,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:43.791046 +AWS,us-west-2,r6gd.12xlarge,spot,NA,1.244408,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843957 +AWS,us-west-2,r6gd.16xlarge,on_demand,NA,3.6864,USD,AWS Pricing API,2025-11-30T08:52:59.559945 +AWS,us-west-2,r6gd.16xlarge,reserved_1y,all_upfront,2.949172,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:31.148479 +AWS,us-west-2,r6gd.16xlarge,reserved_1y,no_upfront,2.949172,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:08.382171 +AWS,us-west-2,r6gd.16xlarge,reserved_1y,partial_upfront,2.949172,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:58.094781 +AWS,us-west-2,r6gd.16xlarge,reserved_3y,all_upfront,1.474591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:39.601371 +AWS,us-west-2,r6gd.16xlarge,reserved_3y,no_upfront,1.474591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:08.509184 +AWS,us-west-2,r6gd.16xlarge,reserved_3y,partial_upfront,1.474591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:09.718761 +AWS,us-west-2,r6gd.16xlarge,spot,NA,1.56022,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843030 +AWS,us-west-2,r6gd.2xlarge,on_demand,NA,0.4608,USD,AWS Pricing API,2025-11-30T08:52:37.801211 +AWS,us-west-2,r6gd.2xlarge,reserved_1y,all_upfront,0.319189,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:09.609571 +AWS,us-west-2,r6gd.2xlarge,reserved_1y,no_upfront,0.319189,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:46.559712 +AWS,us-west-2,r6gd.2xlarge,reserved_1y,partial_upfront,0.319189,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:36.630775 +AWS,us-west-2,r6gd.2xlarge,reserved_3y,all_upfront,0.212796,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:18.158605 +AWS,us-west-2,r6gd.2xlarge,reserved_3y,no_upfront,0.212796,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:46.693399 +AWS,us-west-2,r6gd.2xlarge,reserved_3y,partial_upfront,0.212796,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:47.770422 +AWS,us-west-2,r6gd.2xlarge,spot,NA,0.247801,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842347 +AWS,us-west-2,r6gd.4xlarge,on_demand,NA,0.9216,USD,AWS Pricing API,2025-11-30T08:52:44.394989 +AWS,us-west-2,r6gd.4xlarge,reserved_1y,all_upfront,0.4723,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:16.104326 +AWS,us-west-2,r6gd.4xlarge,reserved_1y,no_upfront,0.4723,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:53.133295 +AWS,us-west-2,r6gd.4xlarge,reserved_1y,partial_upfront,0.4723,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:43.139571 +AWS,us-west-2,r6gd.4xlarge,reserved_3y,all_upfront,0.4723,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:24.648380 +AWS,us-west-2,r6gd.4xlarge,reserved_3y,no_upfront,0.4723,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:53.176599 +AWS,us-west-2,r6gd.4xlarge,reserved_3y,partial_upfront,0.4723,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:54.408113 +AWS,us-west-2,r6gd.4xlarge,spot,NA,0.589582,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842565 +AWS,us-west-2,r6gd.8xlarge,on_demand,NA,1.8432,USD,AWS Pricing API,2025-11-30T08:52:38.631854 +AWS,us-west-2,r6gd.8xlarge,reserved_1y,all_upfront,1.105968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:10.417096 +AWS,us-west-2,r6gd.8xlarge,reserved_1y,no_upfront,1.105968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:47.395115 +AWS,us-west-2,r6gd.8xlarge,reserved_1y,partial_upfront,1.105968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:37.441973 +AWS,us-west-2,r6gd.8xlarge,reserved_3y,all_upfront,0.737323,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:18.964707 +AWS,us-west-2,r6gd.8xlarge,reserved_3y,no_upfront,0.737323,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:47.503524 +AWS,us-west-2,r6gd.8xlarge,reserved_3y,partial_upfront,0.737323,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:48.616660 +AWS,us-west-2,r6gd.8xlarge,spot,NA,0.939827,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842393 +AWS,us-west-2,r6gd.large,on_demand,NA,0.1152,USD,AWS Pricing API,2025-11-30T08:53:14.470909 +AWS,us-west-2,r6gd.large,reserved_1y,all_upfront,0.079854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:45.929552 +AWS,us-west-2,r6gd.large,reserved_1y,no_upfront,0.079854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:23.258218 +AWS,us-west-2,r6gd.large,reserved_1y,partial_upfront,0.079854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:12.849865 +AWS,us-west-2,r6gd.large,reserved_3y,all_upfront,0.053218,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:54.366208 +AWS,us-west-2,r6gd.large,reserved_3y,no_upfront,0.053218,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:23.542205 +AWS,us-west-2,r6gd.large,reserved_3y,partial_upfront,0.053218,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:24.800529 +AWS,us-west-2,r6gd.large,spot,NA,0.046236,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843461 +AWS,us-west-2,r6gd.xlarge,on_demand,NA,0.2304,USD,AWS Pricing API,2025-11-30T08:52:58.468360 +AWS,us-west-2,r6gd.xlarge,reserved_1y,all_upfront,0.138164,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:30.073433 +AWS,us-west-2,r6gd.xlarge,reserved_1y,no_upfront,0.138164,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:07.223655 +AWS,us-west-2,r6gd.xlarge,reserved_1y,partial_upfront,0.138164,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:57.014427 +AWS,us-west-2,r6gd.xlarge,reserved_3y,all_upfront,0.092121,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:38.515829 +AWS,us-west-2,r6gd.xlarge,reserved_3y,no_upfront,0.092121,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:07.412844 +AWS,us-west-2,r6gd.xlarge,reserved_3y,partial_upfront,0.092121,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:08.619142 +AWS,us-west-2,r6gd.xlarge,spot,NA,0.154833,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842987 +AWS,us-west-2,r6i.12xlarge,on_demand,NA,3.024,USD,AWS Pricing API,2025-11-30T08:53:39.131858 +AWS,us-west-2,r6i.12xlarge,reserved_1y,all_upfront,2.044863,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:10.265138 +AWS,us-west-2,r6i.12xlarge,reserved_1y,no_upfront,2.044863,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:47.907108 +AWS,us-west-2,r6i.12xlarge,reserved_1y,partial_upfront,2.044863,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:37.184582 +AWS,us-west-2,r6i.12xlarge,reserved_3y,all_upfront,0.681621,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:18.548717 +AWS,us-west-2,r6i.12xlarge,reserved_3y,no_upfront,0.681621,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:48.233597 +AWS,us-west-2,r6i.12xlarge,reserved_3y,partial_upfront,0.681621,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:49.616533 +AWS,us-west-2,r6i.12xlarge,spot,NA,1.152603,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844171 +AWS,us-west-2,r6i.16xlarge,on_demand,NA,4.032,USD,AWS Pricing API,2025-11-30T08:52:47.119551 +AWS,us-west-2,r6i.16xlarge,reserved_1y,all_upfront,2.540171,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:18.815358 +AWS,us-west-2,r6i.16xlarge,reserved_1y,no_upfront,2.540171,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:55.878926 +AWS,us-west-2,r6i.16xlarge,reserved_1y,partial_upfront,2.540171,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:45.837698 +AWS,us-west-2,r6i.16xlarge,reserved_3y,all_upfront,1.693444,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:27.333302 +AWS,us-west-2,r6i.16xlarge,reserved_3y,no_upfront,1.693444,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:55.912542 +AWS,us-west-2,r6i.16xlarge,reserved_3y,partial_upfront,1.693444,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:57.160405 +AWS,us-west-2,r6i.16xlarge,spot,NA,1.515396,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842625 +AWS,us-west-2,r6i.24xlarge,on_demand,NA,6.048,USD,AWS Pricing API,2025-11-30T08:52:53.546917 +AWS,us-west-2,r6i.24xlarge,reserved_1y,all_upfront,4.00075,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:25.200312 +AWS,us-west-2,r6i.24xlarge,reserved_1y,no_upfront,4.00075,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:02.307408 +AWS,us-west-2,r6i.24xlarge,reserved_1y,partial_upfront,4.00075,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:52.175957 +AWS,us-west-2,r6i.24xlarge,reserved_3y,all_upfront,4.00075,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:33.658355 +AWS,us-west-2,r6i.24xlarge,reserved_3y,no_upfront,4.00075,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:02.279273 +AWS,us-west-2,r6i.24xlarge,reserved_3y,partial_upfront,4.00075,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:03.659487 +AWS,us-west-2,r6i.24xlarge,spot,NA,2.301845,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842806 +AWS,us-west-2,r6i.2xlarge,on_demand,NA,0.504,USD,AWS Pricing API,2025-11-30T08:53:42.707299 +AWS,us-west-2,r6i.2xlarge,reserved_1y,all_upfront,0.486903,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:13.776299 +AWS,us-west-2,r6i.2xlarge,reserved_1y,no_upfront,0.486903,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:51.457146 +AWS,us-west-2,r6i.2xlarge,reserved_1y,partial_upfront,0.486903,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:40.694430 +AWS,us-west-2,r6i.2xlarge,reserved_3y,all_upfront,0.243448,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:22.035874 +AWS,us-west-2,r6i.2xlarge,reserved_3y,no_upfront,0.243448,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:51.812875 +AWS,us-west-2,r6i.2xlarge,reserved_3y,partial_upfront,0.243448,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:53.192330 +AWS,us-west-2,r6i.2xlarge,spot,NA,0.239696,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844250 +AWS,us-west-2,r6i.32xlarge,on_demand,NA,8.064,USD,AWS Pricing API,2025-11-30T08:52:47.259232 +AWS,us-west-2,r6i.32xlarge,reserved_1y,all_upfront,5.452854,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:18.960659 +AWS,us-west-2,r6i.32xlarge,reserved_1y,no_upfront,5.452854,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:56.016736 +AWS,us-west-2,r6i.32xlarge,reserved_1y,partial_upfront,5.452854,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:45.971943 +AWS,us-west-2,r6i.32xlarge,reserved_3y,all_upfront,1.817618,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:27.467176 +AWS,us-west-2,r6i.32xlarge,reserved_3y,no_upfront,1.817618,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:56.050761 +AWS,us-west-2,r6i.32xlarge,reserved_3y,partial_upfront,1.817618,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:57.296913 +AWS,us-west-2,r6i.32xlarge,spot,NA,3.026495,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842633 +AWS,us-west-2,r6i.4xlarge,on_demand,NA,1.008,USD,AWS Pricing API,2025-11-30T08:53:08.731198 +AWS,us-west-2,r6i.4xlarge,reserved_1y,all_upfront,0.634986,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:40.245161 +AWS,us-west-2,r6i.4xlarge,reserved_1y,no_upfront,0.634986,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:17.519183 +AWS,us-west-2,r6i.4xlarge,reserved_1y,partial_upfront,0.634986,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:07.144542 +AWS,us-west-2,r6i.4xlarge,reserved_3y,all_upfront,0.423342,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:48.612904 +AWS,us-west-2,r6i.4xlarge,reserved_3y,no_upfront,0.423342,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:17.769437 +AWS,us-west-2,r6i.4xlarge,reserved_3y,partial_upfront,0.423342,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:19.000915 +AWS,us-west-2,r6i.4xlarge,spot,NA,0.441998,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843298 +AWS,us-west-2,r6i.8xlarge,on_demand,NA,2.016,USD,AWS Pricing API,2025-11-30T08:53:13.102396 +AWS,us-west-2,r6i.8xlarge,reserved_1y,all_upfront,1.244635,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:44.584209 +AWS,us-west-2,r6i.8xlarge,reserved_1y,no_upfront,1.244635,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:21.894035 +AWS,us-west-2,r6i.8xlarge,reserved_1y,partial_upfront,1.244635,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:11.490624 +AWS,us-west-2,r6i.8xlarge,reserved_3y,all_upfront,0.414878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:53.009645 +AWS,us-west-2,r6i.8xlarge,reserved_3y,no_upfront,0.414878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:22.155639 +AWS,us-west-2,r6i.8xlarge,reserved_3y,partial_upfront,0.414878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:23.420243 +AWS,us-west-2,r6i.8xlarge,spot,NA,0.780969,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843422 +AWS,us-west-2,r6i.large,on_demand,NA,0.126,USD,AWS Pricing API,2025-11-30T08:53:29.082752 +AWS,us-west-2,r6i.large,reserved_1y,all_upfront,0.09129,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:00.294254 +AWS,us-west-2,r6i.large,reserved_1y,no_upfront,0.09129,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:37.912639 +AWS,us-west-2,r6i.large,reserved_1y,partial_upfront,0.09129,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:27.278472 +AWS,us-west-2,r6i.large,reserved_3y,all_upfront,0.09129,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:08.728717 +AWS,us-west-2,r6i.large,reserved_3y,no_upfront,0.09129,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:38.129191 +AWS,us-west-2,r6i.large,reserved_3y,partial_upfront,0.09129,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:39.493883 +AWS,us-west-2,r6i.large,spot,NA,0.050278,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843853 +AWS,us-west-2,r6i.xlarge,on_demand,NA,0.252,USD,AWS Pricing API,2025-11-30T08:52:50.659024 +AWS,us-west-2,r6i.xlarge,reserved_1y,all_upfront,0.243394,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:22.345826 +AWS,us-west-2,r6i.xlarge,reserved_1y,no_upfront,0.243394,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:59.425216 +AWS,us-west-2,r6i.xlarge,reserved_1y,partial_upfront,0.243394,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:49.349968 +AWS,us-west-2,r6i.xlarge,reserved_3y,all_upfront,0.121705,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:30.825837 +AWS,us-west-2,r6i.xlarge,reserved_3y,no_upfront,0.121705,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:59.442665 +AWS,us-west-2,r6i.xlarge,reserved_3y,partial_upfront,0.121705,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:00.744816 +AWS,us-west-2,r6i.xlarge,spot,NA,0.120567,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842724 +AWS,us-west-2,r6id.12xlarge,on_demand,NA,3.6288,USD,AWS Pricing API,2025-11-30T08:53:43.119985 +AWS,us-west-2,r6id.12xlarge,reserved_1y,all_upfront,2.903968,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:14.181404 +AWS,us-west-2,r6id.12xlarge,reserved_1y,no_upfront,2.903968,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:51.866761 +AWS,us-west-2,r6id.12xlarge,reserved_1y,partial_upfront,2.903968,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:41.101987 +AWS,us-west-2,r6id.12xlarge,reserved_3y,all_upfront,1.451989,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:22.445889 +AWS,us-west-2,r6id.12xlarge,reserved_3y,no_upfront,1.451989,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:52.233407 +AWS,us-west-2,r6id.12xlarge,reserved_3y,partial_upfront,1.451989,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:53.615084 +AWS,us-west-2,r6id.12xlarge,spot,NA,1.435017,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844304 +AWS,us-west-2,r6id.16xlarge,on_demand,NA,4.8384,USD,AWS Pricing API,2025-11-30T08:53:25.890613 +AWS,us-west-2,r6id.16xlarge,reserved_1y,all_upfront,3.343175,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:57.157371 +AWS,us-west-2,r6id.16xlarge,reserved_1y,no_upfront,3.343175,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:34.688640 +AWS,us-west-2,r6id.16xlarge,reserved_1y,partial_upfront,3.343175,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:24.152949 +AWS,us-west-2,r6id.16xlarge,reserved_3y,all_upfront,2.228792,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:05.604808 +AWS,us-west-2,r6id.16xlarge,reserved_3y,no_upfront,2.228792,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:34.960234 +AWS,us-west-2,r6id.16xlarge,reserved_3y,partial_upfront,2.228792,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:36.261689 +AWS,us-west-2,r6id.16xlarge,spot,NA,1.809701,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843763 +AWS,us-west-2,r6id.24xlarge,on_demand,NA,7.2576,USD,AWS Pricing API,2025-11-30T08:52:38.071596 +AWS,us-west-2,r6id.24xlarge,reserved_1y,all_upfront,4.5612,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:09.875925 +AWS,us-west-2,r6id.24xlarge,reserved_1y,no_upfront,4.5612,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:46.841325 +AWS,us-west-2,r6id.24xlarge,reserved_1y,partial_upfront,4.5612,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:36.903418 +AWS,us-west-2,r6id.24xlarge,reserved_3y,all_upfront,4.5612,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:18.428929 +AWS,us-west-2,r6id.24xlarge,reserved_3y,no_upfront,4.5612,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:46.963774 +AWS,us-west-2,r6id.24xlarge,reserved_3y,partial_upfront,4.5612,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:48.059477 +AWS,us-west-2,r6id.24xlarge,spot,NA,2.892294,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842330 +AWS,us-west-2,r6id.2xlarge,on_demand,NA,0.6048,USD,AWS Pricing API,2025-11-30T08:53:28.662159 +AWS,us-west-2,r6id.2xlarge,reserved_1y,all_upfront,0.31072,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:59.889635 +AWS,us-west-2,r6id.2xlarge,reserved_1y,no_upfront,0.31072,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:37.496690 +AWS,us-west-2,r6id.2xlarge,reserved_1y,partial_upfront,0.31072,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:26.862038 +AWS,us-west-2,r6id.2xlarge,reserved_3y,all_upfront,0.31072,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:08.320433 +AWS,us-west-2,r6id.2xlarge,reserved_3y,no_upfront,0.31072,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:37.717589 +AWS,us-west-2,r6id.2xlarge,reserved_3y,partial_upfront,0.31072,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:39.070124 +AWS,us-west-2,r6id.2xlarge,spot,NA,0.28153,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843872 +AWS,us-west-2,r6id.32xlarge,on_demand,NA,9.6768,USD,AWS Pricing API,2025-11-30T08:53:20.371374 +AWS,us-west-2,r6id.32xlarge,reserved_1y,all_upfront,7.743991,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:51.749367 +AWS,us-west-2,r6id.32xlarge,reserved_1y,no_upfront,7.743991,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:29.136947 +AWS,us-west-2,r6id.32xlarge,reserved_1y,partial_upfront,7.743991,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:18.744196 +AWS,us-west-2,r6id.32xlarge,reserved_3y,all_upfront,3.871997,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:00.178895 +AWS,us-west-2,r6id.32xlarge,reserved_3y,no_upfront,3.871997,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:29.460709 +AWS,us-west-2,r6id.32xlarge,reserved_3y,partial_upfront,3.871997,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:30.750098 +AWS,us-west-2,r6id.32xlarge,spot,NA,4.160728,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843603 +AWS,us-west-2,r6id.4xlarge,on_demand,NA,1.2096,USD,AWS Pricing API,2025-11-30T08:53:15.016343 +AWS,us-west-2,r6id.4xlarge,reserved_1y,all_upfront,0.835822,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:46.476040 +AWS,us-west-2,r6id.4xlarge,reserved_1y,no_upfront,0.835822,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:23.801251 +AWS,us-west-2,r6id.4xlarge,reserved_1y,partial_upfront,0.835822,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:13.407564 +AWS,us-west-2,r6id.4xlarge,reserved_3y,all_upfront,0.557207,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:54.900874 +AWS,us-west-2,r6id.4xlarge,reserved_3y,no_upfront,0.557207,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:24.097353 +AWS,us-west-2,r6id.4xlarge,reserved_3y,partial_upfront,0.557207,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:25.347509 +AWS,us-west-2,r6id.4xlarge,spot,NA,0.501015,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843457 +AWS,us-west-2,r6id.8xlarge,on_demand,NA,2.4192,USD,AWS Pricing API,2025-11-30T08:52:37.667876 +AWS,us-west-2,r6id.8xlarge,reserved_1y,all_upfront,1.447973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:09.471193 +AWS,us-west-2,r6id.8xlarge,reserved_1y,no_upfront,1.447973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:46.423216 +AWS,us-west-2,r6id.8xlarge,reserved_1y,partial_upfront,1.447973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:36.491713 +AWS,us-west-2,r6id.8xlarge,reserved_3y,all_upfront,0.965324,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:18.024310 +AWS,us-west-2,r6id.8xlarge,reserved_3y,no_upfront,0.965324,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:46.560189 +AWS,us-west-2,r6id.8xlarge,reserved_3y,partial_upfront,0.965324,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:47.633456 +AWS,us-west-2,r6id.8xlarge,spot,NA,1.153137,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842334 +AWS,us-west-2,r6id.large,on_demand,NA,0.1512,USD,AWS Pricing API,2025-11-30T08:53:02.866709 +AWS,us-west-2,r6id.large,reserved_1y,all_upfront,0.121003,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:34.389362 +AWS,us-west-2,r6id.large,reserved_1y,no_upfront,0.121003,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:11.647987 +AWS,us-west-2,r6id.large,reserved_1y,partial_upfront,0.121003,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:01.329971 +AWS,us-west-2,r6id.large,reserved_3y,all_upfront,0.060501,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:42.829255 +AWS,us-west-2,r6id.large,reserved_3y,no_upfront,0.060501,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:11.813841 +AWS,us-west-2,r6id.large,reserved_3y,partial_upfront,0.060501,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:13.049659 +AWS,us-west-2,r6id.large,spot,NA,0.05799,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843077 +AWS,us-west-2,r6id.xlarge,on_demand,NA,0.3024,USD,AWS Pricing API,2025-11-30T08:53:40.489881 +AWS,us-west-2,r6id.xlarge,reserved_1y,all_upfront,0.2194,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:11.618902 +AWS,us-west-2,r6id.xlarge,reserved_1y,no_upfront,0.2194,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:49.282008 +AWS,us-west-2,r6id.xlarge,reserved_1y,partial_upfront,0.2194,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:38.515324 +AWS,us-west-2,r6id.xlarge,reserved_3y,all_upfront,0.2194,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:19.879373 +AWS,us-west-2,r6id.xlarge,reserved_3y,no_upfront,0.2194,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:49.614766 +AWS,us-west-2,r6id.xlarge,reserved_3y,partial_upfront,0.2194,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:51.000725 +AWS,us-west-2,r6id.xlarge,spot,NA,0.15547,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844198 +AWS,us-west-2,r6idn.12xlarge,on_demand,NA,4.68936,USD,AWS Pricing API,2025-11-30T08:53:00.668889 +AWS,us-west-2,r6idn.12xlarge,reserved_1y,all_upfront,3.535766,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:32.237411 +AWS,us-west-2,r6idn.12xlarge,reserved_1y,no_upfront,3.535766,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:09.472294 +AWS,us-west-2,r6idn.12xlarge,reserved_1y,partial_upfront,3.535766,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:59.181724 +AWS,us-west-2,r6idn.12xlarge,reserved_3y,all_upfront,1.767882,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:40.677689 +AWS,us-west-2,r6idn.12xlarge,reserved_3y,no_upfront,1.767882,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:09.626769 +AWS,us-west-2,r6idn.12xlarge,reserved_3y,partial_upfront,1.767882,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:10.832876 +AWS,us-west-2,r6idn.12xlarge,spot,NA,1.946212,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843069 +AWS,us-west-2,r6idn.16xlarge,on_demand,NA,6.25248,USD,AWS Pricing API,2025-11-30T08:52:40.414968 +AWS,us-west-2,r6idn.16xlarge,reserved_1y,all_upfront,4.714321,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:12.182428 +AWS,us-west-2,r6idn.16xlarge,reserved_1y,no_upfront,4.714321,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:49.168606 +AWS,us-west-2,r6idn.16xlarge,reserved_1y,partial_upfront,4.714321,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:39.216878 +AWS,us-west-2,r6idn.16xlarge,reserved_3y,all_upfront,2.357167,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:20.712743 +AWS,us-west-2,r6idn.16xlarge,reserved_3y,no_upfront,2.357167,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:49.243811 +AWS,us-west-2,r6idn.16xlarge,reserved_3y,partial_upfront,2.357167,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:50.430901 +AWS,us-west-2,r6idn.16xlarge,spot,NA,2.396916,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842414 +AWS,us-west-2,r6idn.24xlarge,on_demand,NA,9.37872,USD,AWS Pricing API,2025-11-30T08:53:07.917895 +AWS,us-west-2,r6idn.24xlarge,reserved_1y,all_upfront,7.071543,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:39.427218 +AWS,us-west-2,r6idn.24xlarge,reserved_1y,no_upfront,7.071543,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:16.692266 +AWS,us-west-2,r6idn.24xlarge,reserved_1y,partial_upfront,7.071543,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:06.333102 +AWS,us-west-2,r6idn.24xlarge,reserved_3y,all_upfront,3.535774,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:47.800047 +AWS,us-west-2,r6idn.24xlarge,reserved_3y,no_upfront,3.535774,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:16.949569 +AWS,us-west-2,r6idn.24xlarge,reserved_3y,partial_upfront,3.535774,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:18.179480 +AWS,us-west-2,r6idn.24xlarge,spot,NA,3.642702,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843249 +AWS,us-west-2,r6idn.2xlarge,on_demand,NA,0.78156,USD,AWS Pricing API,2025-11-30T08:53:07.370453 +AWS,us-west-2,r6idn.2xlarge,reserved_1y,all_upfront,0.994749,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:38.881182 +AWS,us-west-2,r6idn.2xlarge,reserved_1y,no_upfront,0.994749,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:16.137140 +AWS,us-west-2,r6idn.2xlarge,reserved_1y,partial_upfront,0.994749,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:05.796821 +AWS,us-west-2,r6idn.2xlarge,reserved_3y,all_upfront,0.331583,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:47.265628 +AWS,us-west-2,r6idn.2xlarge,reserved_3y,no_upfront,0.331583,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:16.398890 +AWS,us-west-2,r6idn.2xlarge,reserved_3y,partial_upfront,0.331583,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:17.626208 +AWS,us-west-2,r6idn.2xlarge,spot,NA,0.404928,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843256 +AWS,us-west-2,r6idn.32xlarge,on_demand,NA,12.50496,USD,AWS Pricing API,2025-11-30T08:53:38.038878 +AWS,us-west-2,r6idn.32xlarge,reserved_1y,all_upfront,15.915411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:09.156917 +AWS,us-west-2,r6idn.32xlarge,reserved_1y,no_upfront,15.915411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:46.814757 +AWS,us-west-2,r6idn.32xlarge,reserved_1y,partial_upfront,15.915411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:36.092983 +AWS,us-west-2,r6idn.32xlarge,reserved_3y,all_upfront,5.305137,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:17.481383 +AWS,us-west-2,r6idn.32xlarge,reserved_3y,no_upfront,5.305137,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:47.109092 +AWS,us-west-2,r6idn.32xlarge,reserved_3y,partial_upfront,5.305137,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:48.509414 +AWS,us-west-2,r6idn.32xlarge,spot,NA,5.192783,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844125 +AWS,us-west-2,r6idn.4xlarge,on_demand,NA,1.56312,USD,AWS Pricing API,2025-11-30T08:52:40.954991 +AWS,us-west-2,r6idn.4xlarge,reserved_1y,all_upfront,1.078549,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:12.731679 +AWS,us-west-2,r6idn.4xlarge,reserved_1y,no_upfront,1.078549,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:49.718337 +AWS,us-west-2,r6idn.4xlarge,reserved_1y,partial_upfront,1.078549,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:39.757421 +AWS,us-west-2,r6idn.4xlarge,reserved_3y,all_upfront,0.719036,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:21.258715 +AWS,us-west-2,r6idn.4xlarge,reserved_3y,no_upfront,0.719036,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:49.786786 +AWS,us-west-2,r6idn.4xlarge,reserved_3y,partial_upfront,0.719036,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:50.978874 +AWS,us-west-2,r6idn.4xlarge,spot,NA,0.786069,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842418 +AWS,us-west-2,r6idn.8xlarge,on_demand,NA,3.12624,USD,AWS Pricing API,2025-11-30T08:53:28.939926 +AWS,us-west-2,r6idn.8xlarge,reserved_1y,all_upfront,2.113927,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:00.160379 +AWS,us-west-2,r6idn.8xlarge,reserved_1y,no_upfront,2.113927,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:37.778153 +AWS,us-west-2,r6idn.8xlarge,reserved_1y,partial_upfront,2.113927,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:27.143181 +AWS,us-west-2,r6idn.8xlarge,reserved_3y,all_upfront,0.704642,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:08.592317 +AWS,us-west-2,r6idn.8xlarge,reserved_3y,no_upfront,0.704642,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:37.990970 +AWS,us-west-2,r6idn.8xlarge,reserved_3y,partial_upfront,0.704642,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:39.356238 +AWS,us-west-2,r6idn.8xlarge,spot,NA,1.563197,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843837 +AWS,us-west-2,r6idn.large,on_demand,NA,0.19539,USD,AWS Pricing API,2025-11-30T08:53:00.529717 +AWS,us-west-2,r6idn.large,reserved_1y,all_upfront,0.132078,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:32.101856 +AWS,us-west-2,r6idn.large,reserved_1y,no_upfront,0.132078,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:09.335842 +AWS,us-west-2,r6idn.large,reserved_1y,partial_upfront,0.132078,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:59.045403 +AWS,us-west-2,r6idn.large,reserved_3y,all_upfront,0.044026,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:40.544254 +AWS,us-west-2,r6idn.large,reserved_3y,no_upfront,0.044026,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:09.482611 +AWS,us-west-2,r6idn.large,reserved_3y,partial_upfront,0.044026,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:10.694917 +AWS,us-west-2,r6idn.large,spot,NA,0.071802,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843046 +AWS,us-west-2,r6idn.xlarge,on_demand,NA,0.39078,USD,AWS Pricing API,2025-11-30T08:52:52.445507 +AWS,us-west-2,r6idn.xlarge,reserved_1y,all_upfront,0.229795,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:24.110148 +AWS,us-west-2,r6idn.xlarge,reserved_1y,no_upfront,0.229795,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:01.194006 +AWS,us-west-2,r6idn.xlarge,reserved_1y,partial_upfront,0.229795,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:51.097001 +AWS,us-west-2,r6idn.xlarge,reserved_3y,all_upfront,0.076598,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:32.574852 +AWS,us-west-2,r6idn.xlarge,reserved_3y,no_upfront,0.076598,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:01.185225 +AWS,us-west-2,r6idn.xlarge,reserved_3y,partial_upfront,0.076598,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:02.546919 +AWS,us-west-2,r6idn.xlarge,spot,NA,0.187289,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842822 +AWS,us-west-2,r6in.12xlarge,on_demand,NA,4.18392,USD,AWS Pricing API,2025-11-30T08:52:45.075086 +AWS,us-west-2,r6in.12xlarge,reserved_1y,all_upfront,2.46016,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:16.785360 +AWS,us-west-2,r6in.12xlarge,reserved_1y,no_upfront,2.46016,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:53.844420 +AWS,us-west-2,r6in.12xlarge,reserved_1y,partial_upfront,2.46016,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:43.808719 +AWS,us-west-2,r6in.12xlarge,reserved_3y,all_upfront,0.820053,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:25.322490 +AWS,us-west-2,r6in.12xlarge,reserved_3y,no_upfront,0.820053,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:53.854347 +AWS,us-west-2,r6in.12xlarge,reserved_3y,partial_upfront,0.820053,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:55.093299 +AWS,us-west-2,r6in.12xlarge,spot,NA,1.774272,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842543 +AWS,us-west-2,r6in.16xlarge,on_demand,NA,5.57856,USD,AWS Pricing API,2025-11-30T08:52:36.702623 +AWS,us-west-2,r6in.16xlarge,reserved_1y,all_upfront,3.77226,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:08.506692 +AWS,us-west-2,r6in.16xlarge,reserved_1y,no_upfront,3.77226,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:45.440504 +AWS,us-west-2,r6in.16xlarge,reserved_1y,partial_upfront,3.77226,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:35.555253 +AWS,us-west-2,r6in.16xlarge,reserved_3y,all_upfront,1.25742,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:17.085549 +AWS,us-west-2,r6in.16xlarge,reserved_3y,no_upfront,1.25742,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:45.604080 +AWS,us-west-2,r6in.16xlarge,reserved_3y,partial_upfront,1.25742,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:46.663848 +AWS,us-west-2,r6in.16xlarge,spot,NA,2.120664,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842319 +AWS,us-west-2,r6in.24xlarge,on_demand,NA,8.36784,USD,AWS Pricing API,2025-11-30T08:53:37.222664 +AWS,us-west-2,r6in.24xlarge,reserved_1y,all_upfront,6.0625,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:08.298728 +AWS,us-west-2,r6in.24xlarge,reserved_1y,no_upfront,6.0625,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:45.991176 +AWS,us-west-2,r6in.24xlarge,reserved_1y,partial_upfront,6.0625,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:35.286131 +AWS,us-west-2,r6in.24xlarge,reserved_3y,all_upfront,6.0625,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:16.678010 +AWS,us-west-2,r6in.24xlarge,reserved_3y,no_upfront,6.0625,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:46.276194 +AWS,us-west-2,r6in.24xlarge,reserved_3y,partial_upfront,6.0625,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:47.685702 +AWS,us-west-2,r6in.24xlarge,spot,NA,3.399699,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844109 +AWS,us-west-2,r6in.2xlarge,on_demand,NA,0.69732,USD,AWS Pricing API,2025-11-30T08:53:40.080000 +AWS,us-west-2,r6in.2xlarge,reserved_1y,all_upfront,0.481105,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:11.212839 +AWS,us-west-2,r6in.2xlarge,reserved_1y,no_upfront,0.481105,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:48.867731 +AWS,us-west-2,r6in.2xlarge,reserved_1y,partial_upfront,0.481105,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:38.118209 +AWS,us-west-2,r6in.2xlarge,reserved_3y,all_upfront,0.320755,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:19.481285 +AWS,us-west-2,r6in.2xlarge,reserved_3y,no_upfront,0.320755,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:49.206112 +AWS,us-west-2,r6in.2xlarge,reserved_3y,partial_upfront,0.320755,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:50.582534 +AWS,us-west-2,r6in.2xlarge,spot,NA,0.356204,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844156 +AWS,us-west-2,r6in.32xlarge,on_demand,NA,11.15712,USD,AWS Pricing API,2025-11-30T08:53:20.089400 +AWS,us-west-2,r6in.32xlarge,reserved_1y,all_upfront,7.698411,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:51.473848 +AWS,us-west-2,r6in.32xlarge,reserved_1y,no_upfront,7.698411,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:28.864512 +AWS,us-west-2,r6in.32xlarge,reserved_1y,partial_upfront,7.698411,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:18.470905 +AWS,us-west-2,r6in.32xlarge,reserved_3y,all_upfront,5.132277,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:59.899043 +AWS,us-west-2,r6in.32xlarge,reserved_3y,no_upfront,5.132277,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:29.171970 +AWS,us-west-2,r6in.32xlarge,reserved_3y,partial_upfront,5.132277,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:30.472860 +AWS,us-west-2,r6in.32xlarge,spot,NA,4.818367,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843628 +AWS,us-west-2,r6in.4xlarge,on_demand,NA,1.39464,USD,AWS Pricing API,2025-11-30T08:53:42.572308 +AWS,us-west-2,r6in.4xlarge,reserved_1y,all_upfront,0.943037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:13.644478 +AWS,us-west-2,r6in.4xlarge,reserved_1y,no_upfront,0.943037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:51.320449 +AWS,us-west-2,r6in.4xlarge,reserved_1y,partial_upfront,0.943037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:40.558900 +AWS,us-west-2,r6in.4xlarge,reserved_3y,all_upfront,0.314346,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:21.892286 +AWS,us-west-2,r6in.4xlarge,reserved_3y,no_upfront,0.314346,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:51.674383 +AWS,us-west-2,r6in.4xlarge,reserved_3y,partial_upfront,0.314346,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:53.055789 +AWS,us-west-2,r6in.4xlarge,spot,NA,0.570584,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844254 +AWS,us-west-2,r6in.8xlarge,on_demand,NA,2.78928,USD,AWS Pricing API,2025-11-30T08:53:30.460234 +AWS,us-west-2,r6in.8xlarge,reserved_1y,all_upfront,1.886073,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:01.667032 +AWS,us-west-2,r6in.8xlarge,reserved_1y,no_upfront,1.886073,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:39.285836 +AWS,us-west-2,r6in.8xlarge,reserved_1y,partial_upfront,1.886073,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:28.623995 +AWS,us-west-2,r6in.8xlarge,reserved_3y,all_upfront,0.628691,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:10.078163 +AWS,us-west-2,r6in.8xlarge,reserved_3y,no_upfront,0.628691,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:39.501330 +AWS,us-west-2,r6in.8xlarge,reserved_3y,partial_upfront,0.628691,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:40.873960 +AWS,us-west-2,r6in.8xlarge,spot,NA,1.148399,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843899 +AWS,us-west-2,r6in.large,on_demand,NA,0.17433,USD,AWS Pricing API,2025-11-30T08:53:45.315438 +AWS,us-west-2,r6in.large,reserved_1y,all_upfront,0.102511,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:16.357611 +AWS,us-west-2,r6in.large,reserved_1y,no_upfront,0.102511,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:54.048226 +AWS,us-west-2,r6in.large,reserved_1y,partial_upfront,0.102511,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:43.257012 +AWS,us-west-2,r6in.large,reserved_3y,all_upfront,0.03417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:24.618925 +AWS,us-west-2,r6in.large,reserved_3y,no_upfront,0.03417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:54.438502 +AWS,us-west-2,r6in.large,reserved_3y,partial_upfront,0.03417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:55.848223 +AWS,us-west-2,r6in.large,spot,NA,0.058341,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844308 +AWS,us-west-2,r6in.xlarge,on_demand,NA,0.34866,USD,AWS Pricing API,2025-11-30T08:53:42.983057 +AWS,us-west-2,r6in.xlarge,reserved_1y,all_upfront,0.24061,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:14.046688 +AWS,us-west-2,r6in.xlarge,reserved_1y,no_upfront,0.24061,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:51.729814 +AWS,us-west-2,r6in.xlarge,reserved_1y,partial_upfront,0.24061,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:40.966322 +AWS,us-west-2,r6in.xlarge,reserved_3y,all_upfront,0.160397,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:22.310530 +AWS,us-west-2,r6in.xlarge,reserved_3y,no_upfront,0.160397,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:52.090274 +AWS,us-west-2,r6in.xlarge,reserved_3y,partial_upfront,0.160397,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:53.472099 +AWS,us-west-2,r6in.xlarge,spot,NA,0.154674,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844261 +AWS,us-west-2,r7a.48xlarge,on_demand,NA,14.6064,USD,AWS Pricing API,2025-11-30T08:52:43.160768 +AWS,us-west-2,r7a.48xlarge,reserved_1y,all_upfront,9.018037,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:14.896355 +AWS,us-west-2,r7a.48xlarge,reserved_1y,no_upfront,9.018037,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:51.901211 +AWS,us-west-2,r7a.48xlarge,reserved_1y,partial_upfront,9.018037,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:41.920043 +AWS,us-west-2,r7a.48xlarge,reserved_3y,all_upfront,3.006012,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:23.419087 +AWS,us-west-2,r7a.48xlarge,reserved_3y,no_upfront,3.006012,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:51.964311 +AWS,us-west-2,r7a.48xlarge,reserved_3y,partial_upfront,3.006012,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:53.171540 +AWS,us-west-2,r7a.48xlarge,spot,NA,5.361829,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842499 +AWS,us-west-2,r7g.12xlarge,on_demand,NA,2.5704,USD,AWS Pricing API,2025-11-30T08:53:07.097435 +AWS,us-west-2,r7g.12xlarge,reserved_1y,all_upfront,1.8623,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:38.604860 +AWS,us-west-2,r7g.12xlarge,reserved_1y,no_upfront,1.8623,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:15.864473 +AWS,us-west-2,r7g.12xlarge,reserved_1y,partial_upfront,1.8623,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:05.525460 +AWS,us-west-2,r7g.12xlarge,reserved_3y,all_upfront,1.8623,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:46.997902 +AWS,us-west-2,r7g.12xlarge,reserved_3y,no_upfront,1.8623,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:16.121263 +AWS,us-west-2,r7g.12xlarge,reserved_3y,partial_upfront,1.8623,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:17.346777 +AWS,us-west-2,r7g.12xlarge,spot,NA,0.961597,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843198 +AWS,us-west-2,r7g.16xlarge,on_demand,NA,3.4272,USD,AWS Pricing API,2025-11-30T08:52:52.176533 +AWS,us-west-2,r7g.16xlarge,reserved_1y,all_upfront,2.36482,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:23.839456 +AWS,us-west-2,r7g.16xlarge,reserved_1y,no_upfront,2.36482,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:00.923676 +AWS,us-west-2,r7g.16xlarge,reserved_1y,partial_upfront,2.36482,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:50.828621 +AWS,us-west-2,r7g.16xlarge,reserved_3y,all_upfront,1.57654,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:32.308606 +AWS,us-west-2,r7g.16xlarge,reserved_3y,no_upfront,1.57654,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:00.916453 +AWS,us-west-2,r7g.16xlarge,reserved_3y,partial_upfront,1.57654,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:02.273896 +AWS,us-west-2,r7g.16xlarge,spot,NA,1.256143,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842770 +AWS,us-west-2,r7g.2xlarge,on_demand,NA,0.4284,USD,AWS Pricing API,2025-11-30T08:53:00.394146 +AWS,us-west-2,r7g.2xlarge,reserved_1y,all_upfront,0.3104,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:31.964422 +AWS,us-west-2,r7g.2xlarge,reserved_1y,no_upfront,0.3104,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:09.200713 +AWS,us-west-2,r7g.2xlarge,reserved_1y,partial_upfront,0.3104,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:58.910857 +AWS,us-west-2,r7g.2xlarge,reserved_3y,all_upfront,0.3104,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:40.409015 +AWS,us-west-2,r7g.2xlarge,reserved_3y,no_upfront,0.3104,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:09.342519 +AWS,us-west-2,r7g.2xlarge,reserved_3y,partial_upfront,0.3104,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:10.558445 +AWS,us-west-2,r7g.2xlarge,spot,NA,0.164779,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843026 +AWS,us-west-2,r7g.4xlarge,on_demand,NA,0.8568,USD,AWS Pricing API,2025-11-30T08:52:50.795157 +AWS,us-west-2,r7g.4xlarge,reserved_1y,all_upfront,0.528995,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:22.486209 +AWS,us-west-2,r7g.4xlarge,reserved_1y,no_upfront,0.528995,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:59.559529 +AWS,us-west-2,r7g.4xlarge,reserved_1y,partial_upfront,0.528995,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:49.485645 +AWS,us-west-2,r7g.4xlarge,reserved_3y,all_upfront,0.176332,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:30.957939 +AWS,us-west-2,r7g.4xlarge,reserved_3y,no_upfront,0.176332,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:59.576625 +AWS,us-west-2,r7g.4xlarge,reserved_3y,partial_upfront,0.176332,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:00.880601 +AWS,us-west-2,r7g.4xlarge,spot,NA,0.321386,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842708 +AWS,us-west-2,r7g.8xlarge,on_demand,NA,1.7136,USD,AWS Pricing API,2025-11-30T08:53:23.118916 +AWS,us-west-2,r7g.8xlarge,reserved_1y,all_upfront,1.15879,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:54.449223 +AWS,us-west-2,r7g.8xlarge,reserved_1y,no_upfront,1.15879,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:31.906547 +AWS,us-west-2,r7g.8xlarge,reserved_1y,partial_upfront,1.15879,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:21.456806 +AWS,us-west-2,r7g.8xlarge,reserved_3y,all_upfront,0.386263,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:02.912308 +AWS,us-west-2,r7g.8xlarge,reserved_3y,no_upfront,0.386263,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:32.209296 +AWS,us-west-2,r7g.8xlarge,reserved_3y,partial_upfront,0.386263,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:33.502259 +AWS,us-west-2,r7g.8xlarge,spot,NA,0.671491,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843712 +AWS,us-west-2,r7g.large,on_demand,NA,0.1071,USD,AWS Pricing API,2025-11-30T08:53:17.481950 +AWS,us-west-2,r7g.large,reserved_1y,all_upfront,0.126826,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:48.914792 +AWS,us-west-2,r7g.large,reserved_1y,no_upfront,0.126826,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:26.273061 +AWS,us-west-2,r7g.large,reserved_1y,partial_upfront,0.126826,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:15.877951 +AWS,us-west-2,r7g.large,reserved_3y,all_upfront,0.042275,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:57.335895 +AWS,us-west-2,r7g.large,reserved_3y,no_upfront,0.042275,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:26.560160 +AWS,us-west-2,r7g.large,reserved_3y,partial_upfront,0.042275,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:27.830408 +AWS,us-west-2,r7g.large,spot,NA,0.04396,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843538 +AWS,us-west-2,r7g.xlarge,on_demand,NA,0.2142,USD,AWS Pricing API,2025-11-30T08:53:19.951525 +AWS,us-west-2,r7g.xlarge,reserved_1y,all_upfront,0.1417,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:51.336979 +AWS,us-west-2,r7g.xlarge,reserved_1y,no_upfront,0.1417,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:28.725649 +AWS,us-west-2,r7g.xlarge,reserved_1y,partial_upfront,0.1417,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:18.312975 +AWS,us-west-2,r7g.xlarge,reserved_3y,all_upfront,0.1417,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:59.763419 +AWS,us-west-2,r7g.xlarge,reserved_3y,no_upfront,0.1417,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:29.035493 +AWS,us-west-2,r7g.xlarge,reserved_3y,partial_upfront,0.1417,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:30.336140 +AWS,us-west-2,r7g.xlarge,spot,NA,0.079103,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843633 +AWS,us-west-2,r7gd.12xlarge,on_demand,NA,3.2659,USD,AWS Pricing API,2025-11-30T08:53:42.021000 +AWS,us-west-2,r7gd.12xlarge,reserved_1y,all_upfront,3.68516,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:13.108425 +AWS,us-west-2,r7gd.12xlarge,reserved_1y,no_upfront,3.68516,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:50.776669 +AWS,us-west-2,r7gd.12xlarge,reserved_1y,partial_upfront,3.68516,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:39.998535 +AWS,us-west-2,r7gd.12xlarge,reserved_3y,all_upfront,1.228387,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:21.359705 +AWS,us-west-2,r7gd.12xlarge,reserved_3y,no_upfront,1.228387,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:51.127436 +AWS,us-west-2,r7gd.12xlarge,reserved_3y,partial_upfront,1.228387,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:52.509204 +AWS,us-west-2,r7gd.12xlarge,spot,NA,1.229083,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844238 +AWS,us-west-2,r7gd.16xlarge,on_demand,NA,4.3546,USD,AWS Pricing API,2025-11-30T08:53:37.357193 +AWS,us-west-2,r7gd.16xlarge,reserved_1y,all_upfront,3.008852,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:08.433269 +AWS,us-west-2,r7gd.16xlarge,reserved_1y,no_upfront,3.008852,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:46.129134 +AWS,us-west-2,r7gd.16xlarge,reserved_1y,partial_upfront,3.008852,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:35.418351 +AWS,us-west-2,r7gd.16xlarge,reserved_3y,all_upfront,2.005884,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:16.813613 +AWS,us-west-2,r7gd.16xlarge,reserved_3y,no_upfront,2.005884,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:46.413396 +AWS,us-west-2,r7gd.16xlarge,reserved_3y,partial_upfront,2.005884,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:47.823823 +AWS,us-west-2,r7gd.16xlarge,spot,NA,1.534178,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844102 +AWS,us-west-2,r7gd.2xlarge,on_demand,NA,0.5443,USD,AWS Pricing API,2025-11-30T08:53:06.006960 +AWS,us-west-2,r7gd.2xlarge,reserved_1y,all_upfront,0.319292,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:37.521864 +AWS,us-west-2,r7gd.2xlarge,reserved_1y,no_upfront,0.319292,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:14.768160 +AWS,us-west-2,r7gd.2xlarge,reserved_1y,partial_upfront,0.319292,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:04.454848 +AWS,us-west-2,r7gd.2xlarge,reserved_3y,all_upfront,0.106431,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:45.924864 +AWS,us-west-2,r7gd.2xlarge,reserved_3y,no_upfront,0.106431,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:15.021717 +AWS,us-west-2,r7gd.2xlarge,reserved_3y,partial_upfront,0.106431,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:16.235933 +AWS,us-west-2,r7gd.2xlarge,spot,NA,0.241335,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843206 +AWS,us-west-2,r7gd.4xlarge,on_demand,NA,1.0886,USD,AWS Pricing API,2025-11-30T08:53:26.596526 +AWS,us-west-2,r7gd.4xlarge,reserved_1y,all_upfront,0.638584,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:57.824062 +AWS,us-west-2,r7gd.4xlarge,reserved_1y,no_upfront,0.638584,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:35.392687 +AWS,us-west-2,r7gd.4xlarge,reserved_1y,partial_upfront,0.638584,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:24.831295 +AWS,us-west-2,r7gd.4xlarge,reserved_3y,all_upfront,0.212861,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:06.273550 +AWS,us-west-2,r7gd.4xlarge,reserved_3y,no_upfront,0.212861,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:35.645038 +AWS,us-west-2,r7gd.4xlarge,reserved_3y,partial_upfront,0.212861,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:36.969407 +AWS,us-west-2,r7gd.4xlarge,spot,NA,0.468637,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843833 +AWS,us-west-2,r7gd.8xlarge,on_demand,NA,2.1773,USD,AWS Pricing API,2025-11-30T08:53:20.508694 +AWS,us-west-2,r7gd.8xlarge,reserved_1y,all_upfront,1.742449,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:51.889750 +AWS,us-west-2,r7gd.8xlarge,reserved_1y,no_upfront,1.742449,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:29.275293 +AWS,us-west-2,r7gd.8xlarge,reserved_1y,partial_upfront,1.742449,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:18.877785 +AWS,us-west-2,r7gd.8xlarge,reserved_3y,all_upfront,0.871216,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:00.317345 +AWS,us-west-2,r7gd.8xlarge,reserved_3y,no_upfront,0.871216,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:29.599548 +AWS,us-west-2,r7gd.8xlarge,reserved_3y,partial_upfront,0.871216,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:30.885913 +AWS,us-west-2,r7gd.8xlarge,spot,NA,0.951024,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843607 +AWS,us-west-2,r7gd.large,on_demand,NA,0.1361,USD,AWS Pricing API,2025-11-30T08:52:44.529992 +AWS,us-west-2,r7gd.large,reserved_1y,all_upfront,0.0987,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:16.239852 +AWS,us-west-2,r7gd.large,reserved_1y,no_upfront,0.0987,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:53.270354 +AWS,us-west-2,r7gd.large,reserved_1y,partial_upfront,0.0987,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:43.271065 +AWS,us-west-2,r7gd.large,reserved_3y,all_upfront,0.0987,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:24.782197 +AWS,us-west-2,r7gd.large,reserved_3y,no_upfront,0.0987,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:53.314466 +AWS,us-west-2,r7gd.large,reserved_3y,partial_upfront,0.0987,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:54.545991 +AWS,us-west-2,r7gd.large,spot,NA,0.051065,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842575 +AWS,us-west-2,r7gd.xlarge,on_demand,NA,0.2722,USD,AWS Pricing API,2025-11-30T08:52:54.094697 +AWS,us-west-2,r7gd.xlarge,reserved_1y,all_upfront,0.1176,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:25.749872 +AWS,us-west-2,r7gd.xlarge,reserved_1y,no_upfront,0.1176,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:02.858468 +AWS,us-west-2,r7gd.xlarge,reserved_1y,partial_upfront,0.1176,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:52.719996 +AWS,us-west-2,r7gd.xlarge,reserved_3y,all_upfront,0.1176,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:34.205260 +AWS,us-west-2,r7gd.xlarge,reserved_3y,no_upfront,0.1176,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:03.008740 +AWS,us-west-2,r7gd.xlarge,reserved_3y,partial_upfront,0.1176,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:04.213272 +AWS,us-west-2,r7gd.xlarge,spot,NA,0.142353,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842841 +AWS,us-west-2,r7i.12xlarge,on_demand,NA,3.1752,USD,AWS Pricing API,2025-11-30T08:53:29.638122 +AWS,us-west-2,r7i.12xlarge,reserved_1y,all_upfront,2.30043,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:00.842041 +AWS,us-west-2,r7i.12xlarge,reserved_1y,no_upfront,2.30043,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:38.463401 +AWS,us-west-2,r7i.12xlarge,reserved_1y,partial_upfront,2.30043,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:27.812325 +AWS,us-west-2,r7i.12xlarge,reserved_3y,all_upfront,2.30043,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:09.275629 +AWS,us-west-2,r7i.12xlarge,reserved_3y,no_upfront,2.30043,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:38.674722 +AWS,us-west-2,r7i.12xlarge,reserved_3y,partial_upfront,2.30043,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:40.041552 +AWS,us-west-2,r7i.12xlarge,spot,NA,1.206623,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843911 +AWS,us-west-2,r7i.16xlarge,on_demand,NA,4.2336,USD,AWS Pricing API,2025-11-30T08:53:27.707330 +AWS,us-west-2,r7i.16xlarge,reserved_1y,all_upfront,2.667142,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:58.931047 +AWS,us-west-2,r7i.16xlarge,reserved_1y,no_upfront,2.667142,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:36.510564 +AWS,us-west-2,r7i.16xlarge,reserved_1y,partial_upfront,2.667142,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:25.920012 +AWS,us-west-2,r7i.16xlarge,reserved_3y,all_upfront,1.778101,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:07.367972 +AWS,us-west-2,r7i.16xlarge,reserved_3y,no_upfront,1.778101,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:36.746334 +AWS,us-west-2,r7i.16xlarge,reserved_3y,partial_upfront,1.778101,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:38.101669 +AWS,us-west-2,r7i.16xlarge,spot,NA,1.678647,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843802 +AWS,us-west-2,r7i.24xlarge,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T08:53:24.338656 +AWS,us-west-2,r7i.24xlarge,reserved_1y,all_upfront,3.920776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:55.661665 +AWS,us-west-2,r7i.24xlarge,reserved_1y,no_upfront,3.920776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:33.156384 +AWS,us-west-2,r7i.24xlarge,reserved_1y,partial_upfront,3.920776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:22.666924 +AWS,us-west-2,r7i.24xlarge,reserved_3y,all_upfront,1.306925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:04.124784 +AWS,us-west-2,r7i.24xlarge,reserved_3y,no_upfront,1.306925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:33.441171 +AWS,us-west-2,r7i.24xlarge,reserved_3y,partial_upfront,1.306925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:34.746139 +AWS,us-west-2,r7i.24xlarge,spot,NA,2.690078,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843739 +AWS,us-west-2,r7i.2xlarge,on_demand,NA,0.5292,USD,AWS Pricing API,2025-11-30T08:53:26.731117 +AWS,us-west-2,r7i.2xlarge,reserved_1y,all_upfront,0.326712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:57.958171 +AWS,us-west-2,r7i.2xlarge,reserved_1y,no_upfront,0.326712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:35.533167 +AWS,us-west-2,r7i.2xlarge,reserved_1y,partial_upfront,0.326712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:24.980523 +AWS,us-west-2,r7i.2xlarge,reserved_3y,all_upfront,0.108904,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:06.407478 +AWS,us-west-2,r7i.2xlarge,reserved_3y,no_upfront,0.108904,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:35.781586 +AWS,us-west-2,r7i.2xlarge,reserved_3y,partial_upfront,0.108904,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:37.108310 +AWS,us-west-2,r7i.2xlarge,spot,NA,0.232943,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843818 +AWS,us-west-2,r7i.48xlarge,on_demand,NA,12.7008,USD,AWS Pricing API,2025-11-30T08:53:47.509344 +AWS,us-west-2,r7i.48xlarge,reserved_1y,all_upfront,8.588242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:18.532466 +AWS,us-west-2,r7i.48xlarge,reserved_1y,no_upfront,8.588242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:56.239597 +AWS,us-west-2,r7i.48xlarge,reserved_1y,partial_upfront,8.588242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:45.435387 +AWS,us-west-2,r7i.48xlarge,reserved_3y,all_upfront,2.862747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:26.772036 +AWS,us-west-2,r7i.48xlarge,reserved_3y,no_upfront,2.862747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:56.642688 +AWS,us-west-2,r7i.48xlarge,reserved_3y,partial_upfront,2.862747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:58.050141 +AWS,us-west-2,r7i.48xlarge,spot,NA,4.810657,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844430 +AWS,us-west-2,r7i.4xlarge,on_demand,NA,1.0584,USD,AWS Pricing API,2025-11-30T08:53:24.198253 +AWS,us-west-2,r7i.4xlarge,reserved_1y,all_upfront,0.730333,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:55.527693 +AWS,us-west-2,r7i.4xlarge,reserved_1y,no_upfront,0.730333,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:33.019967 +AWS,us-west-2,r7i.4xlarge,reserved_1y,partial_upfront,0.730333,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:22.532214 +AWS,us-west-2,r7i.4xlarge,reserved_3y,all_upfront,0.486878,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:03.992248 +AWS,us-west-2,r7i.4xlarge,reserved_3y,no_upfront,0.486878,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:33.304124 +AWS,us-west-2,r7i.4xlarge,reserved_3y,partial_upfront,0.486878,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:34.609918 +AWS,us-west-2,r7i.4xlarge,spot,NA,0.445257,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843720 +AWS,us-west-2,r7i.8xlarge,on_demand,NA,2.1168,USD,AWS Pricing API,2025-11-30T08:52:40.548840 +AWS,us-west-2,r7i.8xlarge,reserved_1y,all_upfront,1.53362,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:12.318645 +AWS,us-west-2,r7i.8xlarge,reserved_1y,no_upfront,1.53362,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:49.308657 +AWS,us-west-2,r7i.8xlarge,reserved_1y,partial_upfront,1.53362,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:39.353570 +AWS,us-west-2,r7i.8xlarge,reserved_3y,all_upfront,1.53362,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:20.846477 +AWS,us-west-2,r7i.8xlarge,reserved_3y,no_upfront,1.53362,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:49.384755 +AWS,us-west-2,r7i.8xlarge,reserved_3y,partial_upfront,1.53362,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:50.568730 +AWS,us-west-2,r7i.8xlarge,spot,NA,0.839001,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842410 +AWS,us-west-2,r7i.large,on_demand,NA,0.1323,USD,AWS Pricing API,2025-11-30T08:52:54.910628 +AWS,us-west-2,r7i.large,reserved_1y,all_upfront,0.09585,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:26.558605 +AWS,us-west-2,r7i.large,reserved_1y,no_upfront,0.09585,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:03.675513 +AWS,us-west-2,r7i.large,reserved_1y,partial_upfront,0.09585,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:53.522589 +AWS,us-west-2,r7i.large,reserved_3y,all_upfront,0.09585,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:35.003154 +AWS,us-west-2,r7i.large,reserved_3y,no_upfront,0.09585,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:03.831207 +AWS,us-west-2,r7i.large,reserved_3y,partial_upfront,0.09585,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:05.044919 +AWS,us-west-2,r7i.large,spot,NA,0.049005,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842853 +AWS,us-west-2,r7i.metal-24xl,on_demand,NA,6.3504,USD,AWS Pricing API,2025-11-30T08:53:11.197680 +AWS,us-west-2,r7i.metal-24xl,reserved_1y,all_upfront,3.920776,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:42.694398 +AWS,us-west-2,r7i.metal-24xl,reserved_1y,no_upfront,3.920776,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:19.981633 +AWS,us-west-2,r7i.metal-24xl,reserved_1y,partial_upfront,3.920776,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:09.579062 +AWS,us-west-2,r7i.metal-24xl,reserved_3y,all_upfront,1.306925,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:51.049009 +AWS,us-west-2,r7i.metal-24xl,reserved_3y,no_upfront,1.306925,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:20.241210 +AWS,us-west-2,r7i.metal-24xl,reserved_3y,partial_upfront,1.306925,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:21.486659 +AWS,us-west-2,r7i.metal-24xl,spot,NA,2.506173,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843325 +AWS,us-west-2,r7i.metal-48xl,on_demand,NA,12.7008,USD,AWS Pricing API,2025-11-30T08:53:31.160914 +AWS,us-west-2,r7i.metal-48xl,reserved_1y,all_upfront,8.588242,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:02.347375 +AWS,us-west-2,r7i.metal-48xl,reserved_1y,no_upfront,8.588242,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:39.961525 +AWS,us-west-2,r7i.metal-48xl,reserved_1y,partial_upfront,8.588242,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:29.345707 +AWS,us-west-2,r7i.metal-48xl,reserved_3y,all_upfront,2.862747,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:10.747975 +AWS,us-west-2,r7i.metal-48xl,reserved_3y,no_upfront,2.862747,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:40.187587 +AWS,us-west-2,r7i.metal-48xl,reserved_3y,partial_upfront,2.862747,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:41.557752 +AWS,us-west-2,r7i.metal-48xl,spot,NA,4.307791,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843915 +AWS,us-west-2,r7i.xlarge,on_demand,NA,0.2646,USD,AWS Pricing API,2025-11-30T08:53:06.550164 +AWS,us-west-2,r7i.xlarge,reserved_1y,all_upfront,0.17503,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:38.061303 +AWS,us-west-2,r7i.xlarge,reserved_1y,no_upfront,0.17503,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:15.314518 +AWS,us-west-2,r7i.xlarge,reserved_1y,partial_upfront,0.17503,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:04.986621 +AWS,us-west-2,r7i.xlarge,reserved_3y,all_upfront,0.17503,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:46.460688 +AWS,us-west-2,r7i.xlarge,reserved_3y,no_upfront,0.17503,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:15.570192 +AWS,us-west-2,r7i.xlarge,reserved_3y,partial_upfront,0.17503,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:16.786482 +AWS,us-west-2,r7i.xlarge,spot,NA,0.111178,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843210 +AWS,us-west-2,r7iz.12xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:53:22.152095 +AWS,us-west-2,r7iz.12xlarge,reserved_1y,all_upfront,2.624886,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:53.505090 +AWS,us-west-2,r7iz.12xlarge,reserved_1y,no_upfront,2.624886,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:30.933683 +AWS,us-west-2,r7iz.12xlarge,reserved_1y,partial_upfront,2.624886,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:20.509315 +AWS,us-west-2,r7iz.12xlarge,reserved_3y,all_upfront,0.874962,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:01.950300 +AWS,us-west-2,r7iz.12xlarge,reserved_3y,no_upfront,0.874962,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:31.250957 +AWS,us-west-2,r7iz.12xlarge,reserved_3y,partial_upfront,0.874962,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:32.543928 +AWS,us-west-2,r7iz.12xlarge,spot,NA,1.804444,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843645 +AWS,us-west-2,r7iz.16xlarge,on_demand,NA,5.952,USD,AWS Pricing API,2025-11-30T08:53:47.100729 +AWS,us-west-2,r7iz.16xlarge,reserved_1y,all_upfront,3.499772,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:18.122181 +AWS,us-west-2,r7iz.16xlarge,reserved_1y,no_upfront,3.499772,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:55.828922 +AWS,us-west-2,r7iz.16xlarge,reserved_1y,partial_upfront,3.499772,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:45.028903 +AWS,us-west-2,r7iz.16xlarge,reserved_3y,all_upfront,1.166591,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:26.373545 +AWS,us-west-2,r7iz.16xlarge,reserved_3y,no_upfront,1.166591,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:56.232794 +AWS,us-west-2,r7iz.16xlarge,reserved_3y,partial_upfront,1.166591,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:57.638204 +AWS,us-west-2,r7iz.16xlarge,spot,NA,2.512384,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844360 +AWS,us-west-2,r7iz.2xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T08:53:26.868235 +AWS,us-west-2,r7iz.2xlarge,reserved_1y,all_upfront,0.504566,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:58.104074 +AWS,us-west-2,r7iz.2xlarge,reserved_1y,no_upfront,0.504566,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:35.668665 +AWS,us-west-2,r7iz.2xlarge,reserved_1y,partial_upfront,0.504566,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:25.113363 +AWS,us-west-2,r7iz.2xlarge,reserved_3y,all_upfront,0.168189,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:06.543227 +AWS,us-west-2,r7iz.2xlarge,reserved_3y,no_upfront,0.168189,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:35.919587 +AWS,us-west-2,r7iz.2xlarge,reserved_3y,partial_upfront,0.168189,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:37.245041 +AWS,us-west-2,r7iz.2xlarge,spot,NA,0.316841,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843829 +AWS,us-west-2,r7iz.32xlarge,on_demand,NA,11.904,USD,AWS Pricing API,2025-11-30T08:53:45.175920 +AWS,us-west-2,r7iz.32xlarge,reserved_1y,all_upfront,10.451743,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:16.222909 +AWS,us-west-2,r7iz.32xlarge,reserved_1y,no_upfront,10.451743,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:53.910599 +AWS,us-west-2,r7iz.32xlarge,reserved_1y,partial_upfront,10.451743,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:43.124848 +AWS,us-west-2,r7iz.32xlarge,reserved_3y,all_upfront,5.225868,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:24.481799 +AWS,us-west-2,r7iz.32xlarge,reserved_3y,no_upfront,5.225868,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:54.302748 +AWS,us-west-2,r7iz.32xlarge,reserved_3y,partial_upfront,5.225868,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:55.708855 +AWS,us-west-2,r7iz.32xlarge,spot,NA,5.658875,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844312 +AWS,us-west-2,r7iz.4xlarge,on_demand,NA,1.488,USD,AWS Pricing API,2025-11-30T08:53:43.259025 +AWS,us-west-2,r7iz.4xlarge,reserved_1y,all_upfront,0.875,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:14.323813 +AWS,us-west-2,r7iz.4xlarge,reserved_1y,no_upfront,0.875,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:52.003231 +AWS,us-west-2,r7iz.4xlarge,reserved_1y,partial_upfront,0.875,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:41.239157 +AWS,us-west-2,r7iz.4xlarge,reserved_3y,all_upfront,0.291667,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:22.585680 +AWS,us-west-2,r7iz.4xlarge,reserved_3y,no_upfront,0.291667,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:52.377674 +AWS,us-west-2,r7iz.4xlarge,reserved_3y,partial_upfront,0.291667,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:53.751525 +AWS,us-west-2,r7iz.4xlarge,spot,NA,0.653841,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844269 +AWS,us-west-2,r7iz.8xlarge,on_demand,NA,2.976,USD,AWS Pricing API,2025-11-30T08:52:45.618103 +AWS,us-west-2,r7iz.8xlarge,reserved_1y,all_upfront,1.785608,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:17.332312 +AWS,us-west-2,r7iz.8xlarge,reserved_1y,no_upfront,1.785608,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:54.385523 +AWS,us-west-2,r7iz.8xlarge,reserved_1y,partial_upfront,1.785608,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:44.353813 +AWS,us-west-2,r7iz.8xlarge,reserved_3y,all_upfront,1.190403,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:25.858341 +AWS,us-west-2,r7iz.8xlarge,reserved_3y,no_upfront,1.190403,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:54.395938 +AWS,us-west-2,r7iz.8xlarge,reserved_3y,partial_upfront,1.190403,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:55.643953 +AWS,us-west-2,r7iz.8xlarge,spot,NA,1.388055,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842584 +AWS,us-west-2,r7iz.xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T08:53:31.833719 +AWS,us-west-2,r7iz.xlarge,reserved_1y,all_upfront,0.480137,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:03.028626 +AWS,us-west-2,r7iz.xlarge,reserved_1y,no_upfront,0.480137,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:40.640734 +AWS,us-west-2,r7iz.xlarge,reserved_1y,partial_upfront,0.480137,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:30.013679 +AWS,us-west-2,r7iz.xlarge,reserved_3y,all_upfront,0.160046,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:11.417678 +AWS,us-west-2,r7iz.xlarge,reserved_3y,no_upfront,0.160046,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:40.877668 +AWS,us-west-2,r7iz.xlarge,reserved_3y,partial_upfront,0.160046,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:42.258218 +AWS,us-west-2,r7iz.xlarge,spot,NA,0.151082,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843942 +AWS,us-west-2,r8g.12xlarge,on_demand,NA,2.82768,USD,AWS Pricing API,2025-11-30T08:53:13.371276 +AWS,us-west-2,r8g.12xlarge,reserved_1y,all_upfront,1.781473,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:44.855626 +AWS,us-west-2,r8g.12xlarge,reserved_1y,no_upfront,1.781473,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:22.165153 +AWS,us-west-2,r8g.12xlarge,reserved_1y,partial_upfront,1.781473,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:11.758836 +AWS,us-west-2,r8g.12xlarge,reserved_3y,all_upfront,1.187638,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:53.273518 +AWS,us-west-2,r8g.12xlarge,reserved_3y,no_upfront,1.187638,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:22.429511 +AWS,us-west-2,r8g.12xlarge,reserved_3y,partial_upfront,1.187638,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:23.693033 +AWS,us-west-2,r8g.12xlarge,spot,NA,1.067187,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843406 +AWS,us-west-2,r8g.16xlarge,on_demand,NA,3.77024,USD,AWS Pricing API,2025-11-30T08:53:36.815237 +AWS,us-west-2,r8g.16xlarge,reserved_1y,all_upfront,2.375301,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:07.892866 +AWS,us-west-2,r8g.16xlarge,reserved_1y,no_upfront,2.375301,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:45.558584 +AWS,us-west-2,r8g.16xlarge,reserved_1y,partial_upfront,2.375301,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:34.881147 +AWS,us-west-2,r8g.16xlarge,reserved_3y,all_upfront,1.58352,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:16.275106 +AWS,us-west-2,r8g.16xlarge,reserved_3y,no_upfront,1.58352,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:45.856961 +AWS,us-west-2,r8g.16xlarge,reserved_3y,partial_upfront,1.58352,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:47.274723 +AWS,us-west-2,r8g.16xlarge,spot,NA,1.490252,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844078 +AWS,us-west-2,r8g.24xlarge,on_demand,NA,5.65536,USD,AWS Pricing API,2025-11-30T08:53:04.651085 +AWS,us-west-2,r8g.24xlarge,reserved_1y,all_upfront,3.824201,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:36.166832 +AWS,us-west-2,r8g.24xlarge,reserved_1y,no_upfront,3.824201,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:13.412852 +AWS,us-west-2,r8g.24xlarge,reserved_1y,partial_upfront,3.824201,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:03.110254 +AWS,us-west-2,r8g.24xlarge,reserved_3y,all_upfront,1.274734,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:44.573283 +AWS,us-west-2,r8g.24xlarge,reserved_3y,no_upfront,1.274734,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:13.629430 +AWS,us-west-2,r8g.24xlarge,reserved_3y,partial_upfront,1.274734,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:14.853029 +AWS,us-west-2,r8g.24xlarge,spot,NA,2.076825,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843171 +AWS,us-west-2,r8g.2xlarge,on_demand,NA,0.47128,USD,AWS Pricing API,2025-11-30T08:53:17.210323 +AWS,us-west-2,r8g.2xlarge,reserved_1y,all_upfront,0.21377,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:48.639998 +AWS,us-west-2,r8g.2xlarge,reserved_1y,no_upfront,0.21377,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:25.996591 +AWS,us-west-2,r8g.2xlarge,reserved_1y,partial_upfront,0.21377,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:15.608611 +AWS,us-west-2,r8g.2xlarge,reserved_3y,all_upfront,0.21377,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:57.069993 +AWS,us-west-2,r8g.2xlarge,reserved_3y,no_upfront,0.21377,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:26.285657 +AWS,us-west-2,r8g.2xlarge,reserved_3y,partial_upfront,0.21377,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:27.558163 +AWS,us-west-2,r8g.2xlarge,spot,NA,0.186913,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843526 +AWS,us-west-2,r8g.48xlarge,on_demand,NA,11.31072,USD,AWS Pricing API,2025-11-30T08:53:03.142252 +AWS,us-west-2,r8g.48xlarge,reserved_1y,all_upfront,7.12578,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:34.658878 +AWS,us-west-2,r8g.48xlarge,reserved_1y,no_upfront,7.12578,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:11.922345 +AWS,us-west-2,r8g.48xlarge,reserved_1y,partial_upfront,7.12578,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:01.607211 +AWS,us-west-2,r8g.48xlarge,reserved_3y,all_upfront,4.750513,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:43.097640 +AWS,us-west-2,r8g.48xlarge,reserved_3y,no_upfront,4.750513,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:12.089070 +AWS,us-west-2,r8g.48xlarge,reserved_3y,partial_upfront,4.750513,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:13.324561 +AWS,us-west-2,r8g.48xlarge,spot,NA,4.105461,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843093 +AWS,us-west-2,r8g.4xlarge,on_demand,NA,0.94256,USD,AWS Pricing API,2025-11-30T08:53:21.735319 +AWS,us-west-2,r8g.4xlarge,reserved_1y,all_upfront,1.116324,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:53.104546 +AWS,us-west-2,r8g.4xlarge,reserved_1y,no_upfront,1.116324,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:30.515976 +AWS,us-west-2,r8g.4xlarge,reserved_1y,partial_upfront,1.116324,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:20.089371 +AWS,us-west-2,r8g.4xlarge,reserved_3y,all_upfront,0.372108,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:01.537181 +AWS,us-west-2,r8g.4xlarge,reserved_3y,no_upfront,0.372108,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:30.839825 +AWS,us-west-2,r8g.4xlarge,reserved_3y,partial_upfront,0.372108,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:32.135292 +AWS,us-west-2,r8g.4xlarge,spot,NA,0.374264,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843656 +AWS,us-west-2,r8g.8xlarge,on_demand,NA,1.88512,USD,AWS Pricing API,2025-11-30T08:52:42.054978 +AWS,us-west-2,r8g.8xlarge,reserved_1y,all_upfront,1.300712,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:13.811890 +AWS,us-west-2,r8g.8xlarge,reserved_1y,no_upfront,1.300712,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:50.812857 +AWS,us-west-2,r8g.8xlarge,reserved_1y,partial_upfront,1.300712,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:40.841450 +AWS,us-west-2,r8g.8xlarge,reserved_3y,all_upfront,0.867151,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:22.352056 +AWS,us-west-2,r8g.8xlarge,reserved_3y,no_upfront,0.867151,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:50.878264 +AWS,us-west-2,r8g.8xlarge,reserved_3y,partial_upfront,0.867151,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:52.076596 +AWS,us-west-2,r8g.8xlarge,spot,NA,0.768369,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842458 +AWS,us-west-2,r8g.large,on_demand,NA,0.11782,USD,AWS Pricing API,2025-11-30T08:53:20.231364 +AWS,us-west-2,r8g.large,reserved_1y,all_upfront,0.081289,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:51.614476 +AWS,us-west-2,r8g.large,reserved_1y,no_upfront,0.081289,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:29.001622 +AWS,us-west-2,r8g.large,reserved_1y,partial_upfront,0.081289,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:18.606925 +AWS,us-west-2,r8g.large,reserved_3y,all_upfront,0.054196,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:00.039883 +AWS,us-west-2,r8g.large,reserved_3y,no_upfront,0.054196,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:29.309809 +AWS,us-west-2,r8g.large,reserved_3y,partial_upfront,0.054196,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:30.612266 +AWS,us-west-2,r8g.large,spot,NA,0.047623,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843599 +AWS,us-west-2,r8g.xlarge,on_demand,NA,0.23564,USD,AWS Pricing API,2025-11-30T08:53:02.730452 +AWS,us-west-2,r8g.xlarge,reserved_1y,all_upfront,0.148431,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:34.255577 +AWS,us-west-2,r8g.xlarge,reserved_1y,no_upfront,0.148431,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:11.510313 +AWS,us-west-2,r8g.xlarge,reserved_1y,partial_upfront,0.148431,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:01.194139 +AWS,us-west-2,r8g.xlarge,reserved_3y,all_upfront,0.098964,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:42.696103 +AWS,us-west-2,r8g.xlarge,reserved_3y,no_upfront,0.098964,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:11.676210 +AWS,us-west-2,r8g.xlarge,reserved_3y,partial_upfront,0.098964,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:12.913212 +AWS,us-west-2,r8g.xlarge,spot,NA,0.085702,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843108 +AWS,us-west-2,r8gd.12xlarge,on_demand,NA,3.52704,USD,AWS Pricing API,2025-11-30T08:53:21.059410 +AWS,us-west-2,r8gd.12xlarge,spot,NA,1.363436,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843668 +AWS,us-west-2,r8gd.16xlarge,on_demand,NA,4.70272,USD,AWS Pricing API,2025-11-30T08:53:09.281360 +AWS,us-west-2,r8gd.16xlarge,spot,NA,1.700046,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843286 +AWS,us-west-2,r8gd.24xlarge,on_demand,NA,7.05408,USD,AWS Pricing API,2025-11-30T08:52:56.546278 +AWS,us-west-2,r8gd.24xlarge,spot,NA,2.675771,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842923 +AWS,us-west-2,r8gd.2xlarge,on_demand,NA,0.58784,USD,AWS Pricing API,2025-11-30T08:53:02.183078 +AWS,us-west-2,r8gd.2xlarge,spot,NA,0.224482,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843089 +AWS,us-west-2,r8gd.48xlarge,on_demand,NA,14.10816,USD,AWS Pricing API,2025-11-30T08:53:36.542155 +AWS,us-west-2,r8gd.48xlarge,spot,NA,6.360234,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844086 +AWS,us-west-2,r8gd.4xlarge,on_demand,NA,1.17568,USD,AWS Pricing API,2025-11-30T08:53:30.887916 +AWS,us-west-2,r8gd.4xlarge,spot,NA,0.461066,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843945 +AWS,us-west-2,r8gd.8xlarge,on_demand,NA,2.35136,USD,AWS Pricing API,2025-11-30T08:52:58.194338 +AWS,us-west-2,r8gd.8xlarge,spot,NA,0.999708,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842959 +AWS,us-west-2,r8gd.large,on_demand,NA,0.14696,USD,AWS Pricing API,2025-11-30T08:52:51.069476 +AWS,us-west-2,r8gd.large,spot,NA,0.052845,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842766 +AWS,us-west-2,r8gd.xlarge,on_demand,NA,0.29392,USD,AWS Pricing API,2025-11-30T08:52:51.904144 +AWS,us-west-2,r8gd.xlarge,spot,NA,0.11078,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842758 +AWS,us-west-2,r8i.12xlarge,on_demand,NA,3.33408,USD,AWS Pricing API,2025-11-30T08:52:58.056660 +AWS,us-west-2,r8i.12xlarge,spot,NA,1.266948,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842951 +AWS,us-west-2,r8i.16xlarge,on_demand,NA,4.44544,USD,AWS Pricing API,2025-11-30T08:53:30.597382 +AWS,us-west-2,r8i.16xlarge,spot,NA,1.675669,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843876 +AWS,us-west-2,r8i.24xlarge,on_demand,NA,6.66816,USD,AWS Pricing API,2025-11-30T08:53:36.406010 +AWS,us-west-2,r8i.24xlarge,spot,NA,2.388453,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844094 +AWS,us-west-2,r8i.2xlarge,on_demand,NA,0.55568,USD,AWS Pricing API,2025-11-30T08:53:24.473724 +AWS,us-west-2,r8i.2xlarge,spot,NA,0.224703,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843743 +AWS,us-west-2,r8i.48xlarge,on_demand,NA,13.33632,USD,AWS Pricing API,2025-11-30T08:53:43.809453 +AWS,us-west-2,r8i.48xlarge,spot,NA,4.699752,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844281 +AWS,us-west-2,r8i.4xlarge,on_demand,NA,1.11136,USD,AWS Pricing API,2025-11-30T08:53:19.814505 +AWS,us-west-2,r8i.4xlarge,spot,NA,0.448544,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843610 +AWS,us-west-2,r8i.8xlarge,on_demand,NA,2.22272,USD,AWS Pricing API,2025-11-30T08:53:12.967696 +AWS,us-west-2,r8i.8xlarge,spot,NA,0.902525,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843410 +AWS,us-west-2,r8i.large,on_demand,NA,0.13892,USD,AWS Pricing API,2025-11-30T08:52:37.124338 +AWS,us-west-2,r8i.large,spot,NA,0.047529,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842298 +AWS,us-west-2,r8i.xlarge,on_demand,NA,0.27784,USD,AWS Pricing API,2025-11-30T08:52:47.393696 +AWS,us-west-2,r8i.xlarge,spot,NA,0.100953,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842639 +AWS,us-west-2,x2gd.12xlarge,on_demand,NA,4.008,USD,AWS Pricing API,2025-11-30T08:53:22.972067 +AWS,us-west-2,x2gd.12xlarge,reserved_1y,all_upfront,4.473059,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:54.315383 +AWS,us-west-2,x2gd.12xlarge,reserved_1y,no_upfront,4.473059,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:31.768341 +AWS,us-west-2,x2gd.12xlarge,reserved_1y,partial_upfront,4.473059,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:21.324509 +AWS,us-west-2,x2gd.12xlarge,reserved_3y,all_upfront,1.49102,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:02.774755 +AWS,us-west-2,x2gd.12xlarge,reserved_3y,no_upfront,1.49102,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:32.073340 +AWS,us-west-2,x2gd.12xlarge,reserved_3y,partial_upfront,1.49102,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:33.364555 +AWS,us-west-2,x2gd.12xlarge,spot,NA,1.482794,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843685 +AWS,us-west-2,x2gd.16xlarge,on_demand,NA,5.344,USD,AWS Pricing API,2025-11-30T08:53:31.969090 +AWS,us-west-2,x2gd.16xlarge,reserved_1y,all_upfront,3.2932,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:03.166575 +AWS,us-west-2,x2gd.16xlarge,reserved_1y,no_upfront,3.2932,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:40.775383 +AWS,us-west-2,x2gd.16xlarge,reserved_1y,partial_upfront,3.2932,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:30.147322 +AWS,us-west-2,x2gd.16xlarge,reserved_3y,all_upfront,3.2932,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:11.551002 +AWS,us-west-2,x2gd.16xlarge,reserved_3y,no_upfront,3.2932,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:41.014984 +AWS,us-west-2,x2gd.16xlarge,reserved_3y,partial_upfront,3.2932,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:42.394787 +AWS,us-west-2,x2gd.16xlarge,spot,NA,1.874045,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843926 +AWS,us-west-2,x2gd.2xlarge,on_demand,NA,0.668,USD,AWS Pricing API,2025-11-30T08:53:14.328884 +AWS,us-west-2,x2gd.2xlarge,reserved_1y,all_upfront,0.494,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:45.795794 +AWS,us-west-2,x2gd.2xlarge,reserved_1y,no_upfront,0.494,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:23.121544 +AWS,us-west-2,x2gd.2xlarge,reserved_1y,partial_upfront,0.494,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:12.712844 +AWS,us-west-2,x2gd.2xlarge,reserved_3y,all_upfront,0.494,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:54.230709 +AWS,us-west-2,x2gd.2xlarge,reserved_3y,no_upfront,0.494,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:23.405935 +AWS,us-west-2,x2gd.2xlarge,reserved_3y,partial_upfront,0.494,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:24.659443 +AWS,us-west-2,x2gd.2xlarge,spot,NA,0.258581,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843437 +AWS,us-west-2,x2gd.4xlarge,on_demand,NA,1.336,USD,AWS Pricing API,2025-11-30T08:53:41.605930 +AWS,us-west-2,x2gd.4xlarge,reserved_1y,all_upfront,1.014331,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:12.699763 +AWS,us-west-2,x2gd.4xlarge,reserved_1y,no_upfront,1.014331,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:50.369847 +AWS,us-west-2,x2gd.4xlarge,reserved_1y,partial_upfront,1.014331,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:39.592265 +AWS,us-west-2,x2gd.4xlarge,reserved_3y,all_upfront,0.507177,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:20.959409 +AWS,us-west-2,x2gd.4xlarge,reserved_3y,no_upfront,0.507177,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:50.716502 +AWS,us-west-2,x2gd.4xlarge,reserved_3y,partial_upfront,0.507177,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:52.098769 +AWS,us-west-2,x2gd.4xlarge,spot,NA,0.504193,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844230 +AWS,us-west-2,x2gd.8xlarge,on_demand,NA,2.672,USD,AWS Pricing API,2025-11-30T08:53:32.919870 +AWS,us-west-2,x2gd.8xlarge,reserved_1y,all_upfront,1.536872,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:04.121801 +AWS,us-west-2,x2gd.8xlarge,reserved_1y,no_upfront,1.536872,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:41.724913 +AWS,us-west-2,x2gd.8xlarge,reserved_1y,partial_upfront,1.536872,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:31.106743 +AWS,us-west-2,x2gd.8xlarge,reserved_3y,all_upfront,0.512291,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:12.483406 +AWS,us-west-2,x2gd.8xlarge,reserved_3y,no_upfront,0.512291,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:41.980335 +AWS,us-west-2,x2gd.8xlarge,reserved_3y,partial_upfront,0.512291,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:43.350820 +AWS,us-west-2,x2gd.8xlarge,spot,NA,1.018933,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.843976 +AWS,us-west-2,x2gd.large,on_demand,NA,0.167,USD,AWS Pricing API,2025-11-30T08:53:33.890581 +AWS,us-west-2,x2gd.large,reserved_1y,all_upfront,0.148973,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:51:05.067111 +AWS,us-west-2,x2gd.large,reserved_1y,no_upfront,0.148973,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:07:42.674269 +AWS,us-west-2,x2gd.large,reserved_1y,partial_upfront,0.148973,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:29:32.049823 +AWS,us-west-2,x2gd.large,reserved_3y,all_upfront,0.049658,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:56:13.440723 +AWS,us-west-2,x2gd.large,reserved_3y,no_upfront,0.049658,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:12:42.965650 +AWS,us-west-2,x2gd.large,reserved_3y,partial_upfront,0.049658,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:34:44.351278 +AWS,us-west-2,x2gd.large,spot,NA,0.058926,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.844007 +AWS,us-west-2,x2gd.xlarge,on_demand,NA,0.334,USD,AWS Pricing API,2025-11-30T08:52:46.981973 +AWS,us-west-2,x2gd.xlarge,reserved_1y,all_upfront,0.211247,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:18.670308 +AWS,us-west-2,x2gd.xlarge,reserved_1y,no_upfront,0.211247,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:55.743978 +AWS,us-west-2,x2gd.xlarge,reserved_1y,partial_upfront,0.211247,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:45.705601 +AWS,us-west-2,x2gd.xlarge,reserved_3y,all_upfront,0.105616,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:27.199058 +AWS,us-west-2,x2gd.xlarge,reserved_3y,no_upfront,0.105616,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:55.777894 +AWS,us-west-2,x2gd.xlarge,reserved_3y,partial_upfront,0.105616,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:57.022137 +AWS,us-west-2,x2gd.xlarge,spot,NA,0.129298,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842629 +AWS,us-west-2,z1d.12xlarge,on_demand,NA,4.464,USD,AWS Pricing API,2025-11-30T08:52:31.720086 +AWS,us-west-2,z1d.12xlarge,reserved_1y,all_upfront,2.678155,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:03.577281 +AWS,us-west-2,z1d.12xlarge,reserved_1y,no_upfront,2.678155,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:40.421777 +AWS,us-west-2,z1d.12xlarge,reserved_1y,partial_upfront,2.678155,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:30.691523 +AWS,us-west-2,z1d.12xlarge,reserved_3y,all_upfront,1.785385,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:12.240422 +AWS,us-west-2,z1d.12xlarge,reserved_3y,no_upfront,1.785385,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:40.734557 +AWS,us-west-2,z1d.12xlarge,reserved_3y,partial_upfront,1.785385,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:41.706429 +AWS,us-west-2,z1d.12xlarge,spot,NA,1.760304,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842156 +AWS,us-west-2,z1d.2xlarge,on_demand,NA,0.744,USD,AWS Pricing API,2025-11-30T08:52:35.187079 +AWS,us-west-2,z1d.2xlarge,reserved_1y,all_upfront,0.541,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:07.017903 +AWS,us-west-2,z1d.2xlarge,reserved_1y,no_upfront,0.541,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:43.899014 +AWS,us-west-2,z1d.2xlarge,reserved_1y,partial_upfront,0.541,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:34.070170 +AWS,us-west-2,z1d.2xlarge,reserved_3y,all_upfront,0.541,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:15.598284 +AWS,us-west-2,z1d.2xlarge,reserved_3y,no_upfront,0.541,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:44.108457 +AWS,us-west-2,z1d.2xlarge,reserved_3y,partial_upfront,0.541,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:45.149385 +AWS,us-west-2,z1d.2xlarge,spot,NA,0.351395,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842268 +AWS,us-west-2,z1d.3xlarge,on_demand,NA,1.116,USD,AWS Pricing API,2025-11-30T08:52:34.072431 +AWS,us-west-2,z1d.3xlarge,reserved_1y,all_upfront,0.772187,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:05.924585 +AWS,us-west-2,z1d.3xlarge,reserved_1y,no_upfront,0.772187,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:42.782184 +AWS,us-west-2,z1d.3xlarge,reserved_1y,partial_upfront,0.772187,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:32.998002 +AWS,us-west-2,z1d.3xlarge,reserved_3y,all_upfront,0.514729,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:14.522623 +AWS,us-west-2,z1d.3xlarge,reserved_3y,no_upfront,0.514729,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:43.027952 +AWS,us-west-2,z1d.3xlarge,reserved_3y,partial_upfront,0.514729,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:44.049378 +AWS,us-west-2,z1d.3xlarge,spot,NA,0.493084,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842229 +AWS,us-west-2,z1d.6xlarge,on_demand,NA,2.232,USD,AWS Pricing API,2025-11-30T08:52:34.217436 +AWS,us-west-2,z1d.6xlarge,reserved_1y,all_upfront,1.312443,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:06.061780 +AWS,us-west-2,z1d.6xlarge,reserved_1y,no_upfront,1.312443,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:42.937448 +AWS,us-west-2,z1d.6xlarge,reserved_1y,partial_upfront,1.312443,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:33.132551 +AWS,us-west-2,z1d.6xlarge,reserved_3y,all_upfront,0.437481,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:14.657235 +AWS,us-west-2,z1d.6xlarge,reserved_3y,no_upfront,0.437481,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:43.163821 +AWS,us-west-2,z1d.6xlarge,reserved_3y,partial_upfront,0.437481,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:44.187185 +AWS,us-west-2,z1d.6xlarge,spot,NA,0.891831,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842208 +AWS,us-west-2,z1d.large,on_demand,NA,0.186,USD,AWS Pricing API,2025-11-30T08:52:34.496708 +AWS,us-west-2,z1d.large,reserved_1y,all_upfront,0.163489,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:06.331334 +AWS,us-west-2,z1d.large,reserved_1y,no_upfront,0.163489,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:43.208165 +AWS,us-west-2,z1d.large,reserved_1y,partial_upfront,0.163489,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:33.400113 +AWS,us-west-2,z1d.large,reserved_3y,all_upfront,0.08183,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:14.924737 +AWS,us-west-2,z1d.large,reserved_3y,no_upfront,0.08183,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:43.435019 +AWS,us-west-2,z1d.large,reserved_3y,partial_upfront,0.08183,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:44.461135 +AWS,us-west-2,z1d.large,spot,NA,0.067675,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842286 +AWS,us-west-2,z1d.xlarge,on_demand,NA,0.372,USD,AWS Pricing API,2025-11-30T08:52:35.461652 +AWS,us-west-2,z1d.xlarge,reserved_1y,all_upfront,0.218721,USD,AWS Pricing API (1yr All Upfront),2025-11-30T10:50:07.287490 +AWS,us-west-2,z1d.xlarge,reserved_1y,no_upfront,0.218721,USD,AWS Pricing API (1yr No Upfront),2025-11-30T10:06:44.185138 +AWS,us-west-2,z1d.xlarge,reserved_1y,partial_upfront,0.218721,USD,AWS Pricing API (1yr Partial Upfront),2025-11-30T10:28:34.340622 +AWS,us-west-2,z1d.xlarge,reserved_3y,all_upfront,0.072907,USD,AWS Pricing API (3yr All Upfront),2025-11-30T11:55:15.865498 +AWS,us-west-2,z1d.xlarge,reserved_3y,no_upfront,0.072907,USD,AWS Pricing API (3yr No Upfront),2025-11-30T11:11:44.381001 +AWS,us-west-2,z1d.xlarge,reserved_3y,partial_upfront,0.072907,USD,AWS Pricing API (3yr Partial Upfront),2025-11-30T11:33:45.426396 +AWS,us-west-2,z1d.xlarge,spot,NA,0.141359,USD,AWS EC2 API (90-day avg),2025-11-30T09:23:03.842252 +AZURE,australiacentral,Standard_D128ds_v6,on_demand,NA,9.967,USD,Azure Retail Prices API,2025-12-18T04:46:30.804285 +AZURE,australiacentral,Standard_D128ds_v6,reserved_1y,NA,6.179795,USD,Azure Retail Prices API,2025-12-18T04:46:31.751684 +AZURE,australiacentral,Standard_D128ds_v6,reserved_3y,NA,3.887253,USD,Azure Retail Prices API,2025-12-18T04:46:31.751689 +AZURE,australiacentral,Standard_D128ds_v6,spot,NA,1.841902,USD,Azure Retail Prices API,2025-12-18T04:46:30.803863 +AZURE,australiacentral,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488559 +AZURE,australiacentral,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488567 +AZURE,australiacentral,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488571 +AZURE,australiacentral,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488563 +AZURE,australiacentral,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489362 +AZURE,australiacentral,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489374 +AZURE,australiacentral,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489378 +AZURE,australiacentral,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489368 +AZURE,australiacentral,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490438 +AZURE,australiacentral,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490448 +AZURE,australiacentral,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490452 +AZURE,australiacentral,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490444 +AZURE,australiacentral,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491192 +AZURE,australiacentral,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491201 +AZURE,australiacentral,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491205 +AZURE,australiacentral,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491197 +AZURE,australiacentral,Standard_D16_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:30.804171 +AZURE,australiacentral,Standard_D16_v3,reserved_1y,NA,0.627169,USD,Azure Retail Prices API,2025-12-18T04:46:31.751491 +AZURE,australiacentral,Standard_D16_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:31.751496 +AZURE,australiacentral,Standard_D16_v3,spot,NA,0.1848,USD,Azure Retail Prices API,2025-12-18T04:46:30.803906 +AZURE,australiacentral,Standard_D16a_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:30.803914 +AZURE,australiacentral,Standard_D16a_v4,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:31.750753 +AZURE,australiacentral,Standard_D16a_v4,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:46:31.750759 +AZURE,australiacentral,Standard_D16a_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:30.804226 +AZURE,australiacentral,Standard_D16ads_v5,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:46:30.803668 +AZURE,australiacentral,Standard_D16ads_v5,reserved_1y,NA,0.613584,USD,Azure Retail Prices API,2025-12-18T04:46:31.750453 +AZURE,australiacentral,Standard_D16ads_v5,reserved_3y,NA,0.395205,USD,Azure Retail Prices API,2025-12-18T04:46:31.750458 +AZURE,australiacentral,Standard_D16ads_v5,spot,NA,0.192192,USD,Azure Retail Prices API,2025-12-18T04:46:30.804784 +AZURE,australiacentral,Standard_D16ads_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:46:30.804200 +AZURE,australiacentral,Standard_D16ads_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:46:31.751535 +AZURE,australiacentral,Standard_D16ads_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:46:31.751540 +AZURE,australiacentral,Standard_D16ads_v6,spot,NA,0.211781,USD,Azure Retail Prices API,2025-12-18T04:46:30.803829 +AZURE,australiacentral,Standard_D16as_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:30.804778 +AZURE,australiacentral,Standard_D16as_v4,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:31.752615 +AZURE,australiacentral,Standard_D16as_v4,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:46:31.752620 +AZURE,australiacentral,Standard_D16as_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:30.804044 +AZURE,australiacentral,Standard_D16as_v5,on_demand,NA,0.864,USD,Azure Retail Prices API,2025-12-18T04:46:30.804252 +AZURE,australiacentral,Standard_D16as_v5,reserved_1y,NA,0.509703,USD,Azure Retail Prices API,2025-12-18T04:46:31.751632 +AZURE,australiacentral,Standard_D16as_v5,reserved_3y,NA,0.328311,USD,Azure Retail Prices API,2025-12-18T04:46:31.751637 +AZURE,australiacentral,Standard_D16as_v5,spot,NA,0.159667,USD,Azure Retail Prices API,2025-12-18T04:46:30.803987 +AZURE,australiacentral,Standard_D16d_v4,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:30.804509 +AZURE,australiacentral,Standard_D16d_v4,reserved_1y,NA,0.667922,USD,Azure Retail Prices API,2025-12-18T04:46:31.752062 +AZURE,australiacentral,Standard_D16d_v4,reserved_3y,NA,0.427131,USD,Azure Retail Prices API,2025-12-18T04:46:31.752067 +AZURE,australiacentral,Standard_D16d_v4,spot,NA,0.209933,USD,Azure Retail Prices API,2025-12-18T04:46:30.804192 +AZURE,australiacentral,Standard_D16ds_v4,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:30.803681 +AZURE,australiacentral,Standard_D16ds_v4,reserved_1y,NA,0.667922,USD,Azure Retail Prices API,2025-12-18T04:46:31.750284 +AZURE,australiacentral,Standard_D16ds_v4,reserved_3y,NA,0.427131,USD,Azure Retail Prices API,2025-12-18T04:46:31.750289 +AZURE,australiacentral,Standard_D16ds_v4,spot,NA,0.209933,USD,Azure Retail Prices API,2025-12-18T04:46:30.803607 +AZURE,australiacentral,Standard_D16ds_v5,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:30.803820 +AZURE,australiacentral,Standard_D16ds_v5,reserved_1y,NA,0.670205,USD,Azure Retail Prices API,2025-12-18T04:46:31.750552 +AZURE,australiacentral,Standard_D16ds_v5,reserved_3y,NA,0.431697,USD,Azure Retail Prices API,2025-12-18T04:46:31.750558 +AZURE,australiacentral,Standard_D16ds_v5,spot,NA,0.209933,USD,Azure Retail Prices API,2025-12-18T04:46:30.803610 +AZURE,australiacentral,Standard_D16ds_v6,on_demand,NA,1.246,USD,Azure Retail Prices API,2025-12-18T04:46:30.803727 +AZURE,australiacentral,Standard_D16ds_v6,reserved_1y,NA,0.772489,USD,Azure Retail Prices API,2025-12-18T04:46:31.750338 +AZURE,australiacentral,Standard_D16ds_v6,reserved_3y,NA,0.485921,USD,Azure Retail Prices API,2025-12-18T04:46:31.750343 +AZURE,australiacentral,Standard_D16ds_v6,spot,NA,0.230261,USD,Azure Retail Prices API,2025-12-18T04:46:30.803965 +AZURE,australiacentral,Standard_D16s_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:30.803469 +AZURE,australiacentral,Standard_D16s_v3,reserved_1y,NA,0.627169,USD,Azure Retail Prices API,2025-12-18T04:46:31.749623 +AZURE,australiacentral,Standard_D16s_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:31.749628 +AZURE,australiacentral,Standard_D16s_v3,spot,NA,0.1848,USD,Azure Retail Prices API,2025-12-18T04:46:30.803956 +AZURE,australiacentral,Standard_D16s_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:30.804642 +AZURE,australiacentral,Standard_D16s_v4,reserved_1y,NA,0.564498,USD,Azure Retail Prices API,2025-12-18T04:46:31.752371 +AZURE,australiacentral,Standard_D16s_v4,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:31.752376 +AZURE,australiacentral,Standard_D16s_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:30.803684 +AZURE,australiacentral,Standard_D16s_v5,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:30.804423 +AZURE,australiacentral,Standard_D16s_v5,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:31.751905 +AZURE,australiacentral,Standard_D16s_v5,reserved_3y,NA,0.355213,USD,Azure Retail Prices API,2025-12-18T04:46:31.751910 +AZURE,australiacentral,Standard_D16s_v5,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:30.803638 +AZURE,australiacentral,Standard_D2ads_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:30.804254 +AZURE,australiacentral,Standard_D2ads_v6,reserved_1y,NA,0.084475,USD,Azure Retail Prices API,2025-12-18T04:46:31.751642 +AZURE,australiacentral,Standard_D2ads_v6,reserved_3y,NA,0.054414,USD,Azure Retail Prices API,2025-12-18T04:46:31.751647 +AZURE,australiacentral,Standard_D2ads_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:46:30.803883 +AZURE,australiacentral,Standard_D2ds_v6,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:46:30.804575 +AZURE,australiacentral,Standard_D2ds_v6,reserved_1y,NA,0.096575,USD,Azure Retail Prices API,2025-12-18T04:46:31.752193 +AZURE,australiacentral,Standard_D2ds_v6,reserved_3y,NA,0.060731,USD,Azure Retail Prices API,2025-12-18T04:46:31.752199 +AZURE,australiacentral,Standard_D2ds_v6,spot,NA,0.028829,USD,Azure Retail Prices API,2025-12-18T04:46:30.804316 +AZURE,australiacentral,Standard_D32_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:30.804104 +AZURE,australiacentral,Standard_D32_v3,reserved_1y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:31.751349 +AZURE,australiacentral,Standard_D32_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:31.751354 +AZURE,australiacentral,Standard_D32_v3,spot,NA,0.3696,USD,Azure Retail Prices API,2025-12-18T04:46:30.804344 +AZURE,australiacentral,Standard_D32a_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:30.804272 +AZURE,australiacentral,Standard_D32a_v4,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:31.751673 +AZURE,australiacentral,Standard_D32a_v4,reserved_3y,NA,0.729604,USD,Azure Retail Prices API,2025-12-18T04:46:31.751679 +AZURE,australiacentral,Standard_D32a_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:30.804377 +AZURE,australiacentral,Standard_D32ads_v5,on_demand,NA,2.08,USD,Azure Retail Prices API,2025-12-18T04:46:30.803878 +AZURE,australiacentral,Standard_D32ads_v5,reserved_1y,NA,1.227169,USD,Azure Retail Prices API,2025-12-18T04:46:31.750714 +AZURE,australiacentral,Standard_D32ads_v5,reserved_3y,NA,0.790411,USD,Azure Retail Prices API,2025-12-18T04:46:31.750720 +AZURE,australiacentral,Standard_D32ads_v5,spot,NA,0.384384,USD,Azure Retail Prices API,2025-12-18T04:46:30.804524 +AZURE,australiacentral,Standard_D32ads_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:30.804507 +AZURE,australiacentral,Standard_D32ads_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:46:31.752052 +AZURE,australiacentral,Standard_D32ads_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:46:31.752057 +AZURE,australiacentral,Standard_D32ads_v6,spot,NA,0.423377,USD,Azure Retail Prices API,2025-12-18T04:46:30.803694 +AZURE,australiacentral,Standard_D32as_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:30.804036 +AZURE,australiacentral,Standard_D32as_v4,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:31.751021 +AZURE,australiacentral,Standard_D32as_v4,reserved_3y,NA,0.729604,USD,Azure Retail Prices API,2025-12-18T04:46:31.751027 +AZURE,australiacentral,Standard_D32as_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:30.804183 +AZURE,australiacentral,Standard_D32as_v5,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:46:30.804553 +AZURE,australiacentral,Standard_D32as_v5,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:46:31.752149 +AZURE,australiacentral,Standard_D32as_v5,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:46:31.752155 +AZURE,australiacentral,Standard_D32as_v5,spot,NA,0.319334,USD,Azure Retail Prices API,2025-12-18T04:46:30.803998 +AZURE,australiacentral,Standard_D32d_v4,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:30.803563 +AZURE,australiacentral,Standard_D32d_v4,reserved_1y,NA,1.335959,USD,Azure Retail Prices API,2025-12-18T04:46:31.750088 +AZURE,australiacentral,Standard_D32d_v4,reserved_3y,NA,0.854262,USD,Azure Retail Prices API,2025-12-18T04:46:31.750093 +AZURE,australiacentral,Standard_D32d_v4,spot,NA,0.419866,USD,Azure Retail Prices API,2025-12-18T04:46:30.804174 +AZURE,australiacentral,Standard_D32ds_v4,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:30.804119 +AZURE,australiacentral,Standard_D32ds_v4,reserved_1y,NA,1.335959,USD,Azure Retail Prices API,2025-12-18T04:46:31.751395 +AZURE,australiacentral,Standard_D32ds_v4,reserved_3y,NA,0.854262,USD,Azure Retail Prices API,2025-12-18T04:46:31.751400 +AZURE,australiacentral,Standard_D32ds_v4,spot,NA,0.419866,USD,Azure Retail Prices API,2025-12-18T04:46:30.804767 +AZURE,australiacentral,Standard_D32ds_v5,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:30.804588 +AZURE,australiacentral,Standard_D32ds_v5,reserved_1y,NA,1.340525,USD,Azure Retail Prices API,2025-12-18T04:46:31.752235 +AZURE,australiacentral,Standard_D32ds_v5,reserved_3y,NA,0.863356,USD,Azure Retail Prices API,2025-12-18T04:46:31.752240 +AZURE,australiacentral,Standard_D32ds_v5,spot,NA,0.419866,USD,Azure Retail Prices API,2025-12-18T04:46:30.804180 +AZURE,australiacentral,Standard_D32ds_v6,on_demand,NA,2.492,USD,Azure Retail Prices API,2025-12-18T04:46:30.803516 +AZURE,australiacentral,Standard_D32ds_v6,reserved_1y,NA,1.544977,USD,Azure Retail Prices API,2025-12-18T04:46:31.749731 +AZURE,australiacentral,Standard_D32ds_v6,reserved_3y,NA,0.971804,USD,Azure Retail Prices API,2025-12-18T04:46:31.749736 +AZURE,australiacentral,Standard_D32ds_v6,spot,NA,0.460522,USD,Azure Retail Prices API,2025-12-18T04:46:30.804719 +AZURE,australiacentral,Standard_D32s_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:30.803959 +AZURE,australiacentral,Standard_D32s_v3,reserved_1y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:31.750870 +AZURE,australiacentral,Standard_D32s_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:31.750877 +AZURE,australiacentral,Standard_D32s_v3,spot,NA,0.3696,USD,Azure Retail Prices API,2025-12-18T04:46:30.804050 +AZURE,australiacentral,Standard_D32s_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:30.804504 +AZURE,australiacentral,Standard_D32s_v4,reserved_1y,NA,1.128995,USD,Azure Retail Prices API,2025-12-18T04:46:31.752042 +AZURE,australiacentral,Standard_D32s_v4,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:31.752047 +AZURE,australiacentral,Standard_D32s_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:30.803995 +AZURE,australiacentral,Standard_D32s_v5,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:30.804446 +AZURE,australiacentral,Standard_D32s_v5,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:31.751977 +AZURE,australiacentral,Standard_D32s_v5,reserved_3y,NA,0.710388,USD,Azure Retail Prices API,2025-12-18T04:46:31.751982 +AZURE,australiacentral,Standard_D32s_v5,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:30.804614 +AZURE,australiacentral,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485665 +AZURE,australiacentral,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485678 +AZURE,australiacentral,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485682 +AZURE,australiacentral,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485673 +AZURE,australiacentral,Standard_D48a_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:30.804716 +AZURE,australiacentral,Standard_D48a_v4,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:31.752488 +AZURE,australiacentral,Standard_D48a_v4,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:31.752492 +AZURE,australiacentral,Standard_D48a_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:30.803894 +AZURE,australiacentral,Standard_D48ads_v5,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:46:30.803540 +AZURE,australiacentral,Standard_D48ads_v5,reserved_1y,NA,1.840753,USD,Azure Retail Prices API,2025-12-18T04:46:31.749774 +AZURE,australiacentral,Standard_D48ads_v5,reserved_3y,NA,1.185616,USD,Azure Retail Prices API,2025-12-18T04:46:31.749779 +AZURE,australiacentral,Standard_D48ads_v5,spot,NA,0.576576,USD,Azure Retail Prices API,2025-12-18T04:46:30.803809 +AZURE,australiacentral,Standard_D48ads_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:46:30.804763 +AZURE,australiacentral,Standard_D48ads_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:46:31.752594 +AZURE,australiacentral,Standard_D48ads_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:46:31.752601 +AZURE,australiacentral,Standard_D48ads_v6,spot,NA,0.635158,USD,Azure Retail Prices API,2025-12-18T04:46:30.804710 +AZURE,australiacentral,Standard_D48as_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:30.803492 +AZURE,australiacentral,Standard_D48as_v4,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:31.749678 +AZURE,australiacentral,Standard_D48as_v4,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:31.749683 +AZURE,australiacentral,Standard_D48as_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:30.804288 +AZURE,australiacentral,Standard_D48as_v5,on_demand,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:46:30.804093 +AZURE,australiacentral,Standard_D48as_v5,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:46:31.752363 +AZURE,australiacentral,Standard_D48as_v5,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:46:31.752367 +AZURE,australiacentral,Standard_D48as_v5,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:46:30.804521 +AZURE,australiacentral,Standard_D48d_v4,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:30.803826 +AZURE,australiacentral,Standard_D48d_v4,reserved_1y,NA,2.003881,USD,Azure Retail Prices API,2025-12-18T04:46:31.750564 +AZURE,australiacentral,Standard_D48d_v4,reserved_3y,NA,1.281393,USD,Azure Retail Prices API,2025-12-18T04:46:31.750571 +AZURE,australiacentral,Standard_D48d_v4,spot,NA,0.629798,USD,Azure Retail Prices API,2025-12-18T04:46:30.804690 +AZURE,australiacentral,Standard_D48ds_v4,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:30.803720 +AZURE,australiacentral,Standard_D48ds_v4,reserved_1y,NA,2.003881,USD,Azure Retail Prices API,2025-12-18T04:46:31.750327 +AZURE,australiacentral,Standard_D48ds_v4,reserved_3y,NA,1.281393,USD,Azure Retail Prices API,2025-12-18T04:46:31.750332 +AZURE,australiacentral,Standard_D48ds_v4,spot,NA,0.629798,USD,Azure Retail Prices API,2025-12-18T04:46:30.804249 +AZURE,australiacentral,Standard_D48ds_v5,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:30.803954 +AZURE,australiacentral,Standard_D48ds_v5,reserved_1y,NA,2.010731,USD,Azure Retail Prices API,2025-12-18T04:46:31.750857 +AZURE,australiacentral,Standard_D48ds_v5,reserved_3y,NA,1.295053,USD,Azure Retail Prices API,2025-12-18T04:46:31.750863 +AZURE,australiacentral,Standard_D48ds_v5,spot,NA,0.629798,USD,Azure Retail Prices API,2025-12-18T04:46:30.803823 +AZURE,australiacentral,Standard_D48ds_v6,on_demand,NA,3.738,USD,Azure Retail Prices API,2025-12-18T04:46:30.803662 +AZURE,australiacentral,Standard_D48ds_v6,reserved_1y,NA,2.317466,USD,Azure Retail Prices API,2025-12-18T04:46:31.750261 +AZURE,australiacentral,Standard_D48ds_v6,reserved_3y,NA,1.457725,USD,Azure Retail Prices API,2025-12-18T04:46:31.750267 +AZURE,australiacentral,Standard_D48ds_v6,spot,NA,0.690782,USD,Azure Retail Prices API,2025-12-18T04:46:30.804645 +AZURE,australiacentral,Standard_D48s_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:30.803689 +AZURE,australiacentral,Standard_D48s_v4,reserved_1y,NA,1.693493,USD,Azure Retail Prices API,2025-12-18T04:46:31.750294 +AZURE,australiacentral,Standard_D48s_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:31.750300 +AZURE,australiacentral,Standard_D48s_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:30.804293 +AZURE,australiacentral,Standard_D48s_v5,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:30.804197 +AZURE,australiacentral,Standard_D48s_v5,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:31.751524 +AZURE,australiacentral,Standard_D48s_v5,reserved_3y,NA,1.065601,USD,Azure Retail Prices API,2025-12-18T04:46:31.751530 +AZURE,australiacentral,Standard_D48s_v5,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:30.804113 +AZURE,australiacentral,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486471 +AZURE,australiacentral,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486484 +AZURE,australiacentral,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486490 +AZURE,australiacentral,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486478 +AZURE,australiacentral,Standard_D4a_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:30.803962 +AZURE,australiacentral,Standard_D4a_v4,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:46:31.750883 +AZURE,australiacentral,Standard_D4a_v4,reserved_3y,NA,0.09121,USD,Azure Retail Prices API,2025-12-18T04:46:31.750890 +AZURE,australiacentral,Standard_D4a_v4,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:30.803699 +AZURE,australiacentral,Standard_D4ads_v5,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:46:30.803783 +AZURE,australiacentral,Standard_D4ads_v5,reserved_1y,NA,0.153425,USD,Azure Retail Prices API,2025-12-18T04:46:31.752313 +AZURE,australiacentral,Standard_D4ads_v5,reserved_3y,NA,0.098782,USD,Azure Retail Prices API,2025-12-18T04:46:31.752346 +AZURE,australiacentral,Standard_D4ads_v5,spot,NA,0.048048,USD,Azure Retail Prices API,2025-12-18T04:46:30.803886 +AZURE,australiacentral,Standard_D4ads_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:30.803710 +AZURE,australiacentral,Standard_D4ads_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:46:31.750316 +AZURE,australiacentral,Standard_D4ads_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:46:31.750322 +AZURE,australiacentral,Standard_D4ads_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:46:30.803911 +AZURE,australiacentral,Standard_D4as_v5,on_demand,NA,0.216,USD,Azure Retail Prices API,2025-12-18T04:46:30.804195 +AZURE,australiacentral,Standard_D4as_v5,reserved_1y,NA,0.127397,USD,Azure Retail Prices API,2025-12-18T04:46:31.751514 +AZURE,australiacentral,Standard_D4as_v5,reserved_3y,NA,0.082078,USD,Azure Retail Prices API,2025-12-18T04:46:31.751519 +AZURE,australiacentral,Standard_D4as_v5,spot,NA,0.039917,USD,Azure Retail Prices API,2025-12-18T04:46:30.804427 +AZURE,australiacentral,Standard_D4d_v4,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:30.804461 +AZURE,australiacentral,Standard_D4d_v4,reserved_1y,NA,0.167009,USD,Azure Retail Prices API,2025-12-18T04:46:31.751987 +AZURE,australiacentral,Standard_D4d_v4,reserved_3y,NA,0.106773,USD,Azure Retail Prices API,2025-12-18T04:46:31.751992 +AZURE,australiacentral,Standard_D4d_v4,spot,NA,0.052483,USD,Azure Retail Prices API,2025-12-18T04:46:30.803831 +AZURE,australiacentral,Standard_D4ds_v4,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:30.803566 +AZURE,australiacentral,Standard_D4ds_v4,reserved_1y,NA,0.167009,USD,Azure Retail Prices API,2025-12-18T04:46:31.750099 +AZURE,australiacentral,Standard_D4ds_v4,reserved_3y,NA,0.106773,USD,Azure Retail Prices API,2025-12-18T04:46:31.750104 +AZURE,australiacentral,Standard_D4ds_v4,spot,NA,0.052483,USD,Azure Retail Prices API,2025-12-18T04:46:30.803472 +AZURE,australiacentral,Standard_D4ds_v5,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:30.804024 +AZURE,australiacentral,Standard_D4ds_v5,reserved_1y,NA,0.16758,USD,Azure Retail Prices API,2025-12-18T04:46:31.751006 +AZURE,australiacentral,Standard_D4ds_v5,reserved_3y,NA,0.107915,USD,Azure Retail Prices API,2025-12-18T04:46:31.751013 +AZURE,australiacentral,Standard_D4ds_v5,spot,NA,0.052483,USD,Azure Retail Prices API,2025-12-18T04:46:30.804212 +AZURE,australiacentral,Standard_D4ds_v6,on_demand,NA,0.311,USD,Azure Retail Prices API,2025-12-18T04:46:30.803984 +AZURE,australiacentral,Standard_D4ds_v6,reserved_1y,NA,0.193151,USD,Azure Retail Prices API,2025-12-18T04:46:31.750924 +AZURE,australiacentral,Standard_D4ds_v6,reserved_3y,NA,0.121461,USD,Azure Retail Prices API,2025-12-18T04:46:31.750933 +AZURE,australiacentral,Standard_D4ds_v6,spot,NA,0.057473,USD,Azure Retail Prices API,2025-12-18T04:46:30.804597 +AZURE,australiacentral,Standard_D4s_v3,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:46:30.803800 +AZURE,australiacentral,Standard_D4s_v3,reserved_1y,NA,0.156849,USD,Azure Retail Prices API,2025-12-18T04:46:31.750509 +AZURE,australiacentral,Standard_D4s_v3,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:46:31.750514 +AZURE,australiacentral,Standard_D4s_v3,spot,NA,0.0462,USD,Azure Retail Prices API,2025-12-18T04:46:30.804567 +AZURE,australiacentral,Standard_D4s_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:30.803789 +AZURE,australiacentral,Standard_D4s_v4,reserved_1y,NA,0.141096,USD,Azure Retail Prices API,2025-12-18T04:46:31.750475 +AZURE,australiacentral,Standard_D4s_v4,reserved_3y,NA,0.090259,USD,Azure Retail Prices API,2025-12-18T04:46:31.750480 +AZURE,australiacentral,Standard_D4s_v4,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:30.803891 +AZURE,australiacentral,Standard_D4s_v5,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:30.804611 +AZURE,australiacentral,Standard_D4s_v5,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:46:31.752273 +AZURE,australiacentral,Standard_D4s_v5,reserved_3y,NA,0.088813,USD,Azure Retail Prices API,2025-12-18T04:46:31.752278 +AZURE,australiacentral,Standard_D4s_v5,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:30.804487 +AZURE,australiacentral,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487791 +AZURE,australiacentral,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487799 +AZURE,australiacentral,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487804 +AZURE,australiacentral,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487795 +AZURE,australiacentral,Standard_D64_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:30.804441 +AZURE,australiacentral,Standard_D64_v3,reserved_1y,NA,2.508676,USD,Azure Retail Prices API,2025-12-18T04:46:31.751965 +AZURE,australiacentral,Standard_D64_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:31.751971 +AZURE,australiacentral,Standard_D64_v3,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:46:30.804366 +AZURE,australiacentral,Standard_D64a_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:30.803437 +AZURE,australiacentral,Standard_D64a_v4,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:31.749560 +AZURE,australiacentral,Standard_D64a_v4,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:46:31.749565 +AZURE,australiacentral,Standard_D64a_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:30.804282 +AZURE,australiacentral,Standard_D64ads_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:46:30.803453 +AZURE,australiacentral,Standard_D64ads_v5,reserved_1y,NA,2.454452,USD,Azure Retail Prices API,2025-12-18T04:46:31.750485 +AZURE,australiacentral,Standard_D64ads_v5,reserved_3y,NA,1.580784,USD,Azure Retail Prices API,2025-12-18T04:46:31.750491 +AZURE,australiacentral,Standard_D64ads_v5,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:46:30.804139 +AZURE,australiacentral,Standard_D64ads_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:46:30.804535 +AZURE,australiacentral,Standard_D64ads_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:46:31.752118 +AZURE,australiacentral,Standard_D64ads_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:46:31.752123 +AZURE,australiacentral,Standard_D64ads_v6,spot,NA,0.846754,USD,Azure Retail Prices API,2025-12-18T04:46:30.804077 +AZURE,australiacentral,Standard_D64as_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:30.803447 +AZURE,australiacentral,Standard_D64as_v4,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:31.749581 +AZURE,australiacentral,Standard_D64as_v4,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:46:31.749586 +AZURE,australiacentral,Standard_D64as_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:30.803797 +AZURE,australiacentral,Standard_D64as_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:46:30.804110 +AZURE,australiacentral,Standard_D64as_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:46:31.751360 +AZURE,australiacentral,Standard_D64as_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:46:31.751369 +AZURE,australiacentral,Standard_D64as_v5,spot,NA,0.638669,USD,Azure Retail Prices API,2025-12-18T04:46:30.803926 +AZURE,australiacentral,Standard_D64d_v4,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:30.803431 +AZURE,australiacentral,Standard_D64d_v4,reserved_1y,NA,2.671918,USD,Azure Retail Prices API,2025-12-18T04:46:31.749538 +AZURE,australiacentral,Standard_D64d_v4,reserved_3y,NA,1.708562,USD,Azure Retail Prices API,2025-12-18T04:46:31.749543 +AZURE,australiacentral,Standard_D64d_v4,spot,NA,0.839731,USD,Azure Retail Prices API,2025-12-18T04:46:30.804330 +AZURE,australiacentral,Standard_D64ds_v4,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:30.804542 +AZURE,australiacentral,Standard_D64ds_v4,reserved_1y,NA,2.671918,USD,Azure Retail Prices API,2025-12-18T04:46:31.752139 +AZURE,australiacentral,Standard_D64ds_v4,reserved_3y,NA,1.708562,USD,Azure Retail Prices API,2025-12-18T04:46:31.752144 +AZURE,australiacentral,Standard_D64ds_v4,spot,NA,0.839731,USD,Azure Retail Prices API,2025-12-18T04:46:30.804639 +AZURE,australiacentral,Standard_D64ds_v5,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:30.804438 +AZURE,australiacentral,Standard_D64ds_v5,reserved_1y,NA,2.680936,USD,Azure Retail Prices API,2025-12-18T04:46:31.751926 +AZURE,australiacentral,Standard_D64ds_v5,reserved_3y,NA,1.726712,USD,Azure Retail Prices API,2025-12-18T04:46:31.751931 +AZURE,australiacentral,Standard_D64ds_v5,spot,NA,0.839731,USD,Azure Retail Prices API,2025-12-18T04:46:30.804449 +AZURE,australiacentral,Standard_D64ds_v6,on_demand,NA,4.984,USD,Azure Retail Prices API,2025-12-18T04:46:30.803849 +AZURE,australiacentral,Standard_D64ds_v6,reserved_1y,NA,3.08984,USD,Azure Retail Prices API,2025-12-18T04:46:31.750620 +AZURE,australiacentral,Standard_D64ds_v6,reserved_3y,NA,1.943645,USD,Azure Retail Prices API,2025-12-18T04:46:31.750626 +AZURE,australiacentral,Standard_D64ds_v6,spot,NA,0.921043,USD,Azure Retail Prices API,2025-12-18T04:46:30.803568 +AZURE,australiacentral,Standard_D64s_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:30.804409 +AZURE,australiacentral,Standard_D64s_v3,reserved_1y,NA,2.508676,USD,Azure Retail Prices API,2025-12-18T04:46:31.751884 +AZURE,australiacentral,Standard_D64s_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:31.751889 +AZURE,australiacentral,Standard_D64s_v3,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:46:30.804693 +AZURE,australiacentral,Standard_D64s_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:30.803754 +AZURE,australiacentral,Standard_D64s_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:46:31.750403 +AZURE,australiacentral,Standard_D64s_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:31.750409 +AZURE,australiacentral,Standard_D64s_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:30.804351 +AZURE,australiacentral,Standard_D64s_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:30.803869 +AZURE,australiacentral,Standard_D64s_v5,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:31.750686 +AZURE,australiacentral,Standard_D64s_v5,reserved_3y,NA,1.420814,USD,Azure Retail Prices API,2025-12-18T04:46:31.750693 +AZURE,australiacentral,Standard_D64s_v5,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:30.804600 +AZURE,australiacentral,Standard_D8_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:30.804556 +AZURE,australiacentral,Standard_D8_v3,reserved_1y,NA,0.313584,USD,Azure Retail Prices API,2025-12-18T04:46:31.752160 +AZURE,australiacentral,Standard_D8_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:31.752165 +AZURE,australiacentral,Standard_D8_v3,spot,NA,0.0924,USD,Azure Retail Prices API,2025-12-18T04:46:30.803872 +AZURE,australiacentral,Standard_D8a_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:30.803742 +AZURE,australiacentral,Standard_D8a_v4,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:31.750370 +AZURE,australiacentral,Standard_D8a_v4,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:46:31.750376 +AZURE,australiacentral,Standard_D8a_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:30.804372 +AZURE,australiacentral,Standard_D8ads_v5,on_demand,NA,0.52,USD,Azure Retail Prices API,2025-12-18T04:46:30.803595 +AZURE,australiacentral,Standard_D8ads_v5,reserved_1y,NA,0.306849,USD,Azure Retail Prices API,2025-12-18T04:46:31.750132 +AZURE,australiacentral,Standard_D8ads_v5,reserved_3y,NA,0.197603,USD,Azure Retail Prices API,2025-12-18T04:46:31.750137 +AZURE,australiacentral,Standard_D8ads_v5,spot,NA,0.096096,USD,Azure Retail Prices API,2025-12-18T04:46:30.803990 +AZURE,australiacentral,Standard_D8ads_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:46:30.804313 +AZURE,australiacentral,Standard_D8ads_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:46:31.751728 +AZURE,australiacentral,Standard_D8ads_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:46:31.751733 +AZURE,australiacentral,Standard_D8ads_v6,spot,NA,0.10589,USD,Azure Retail Prices API,2025-12-18T04:46:30.803659 +AZURE,australiacentral,Standard_D8as_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:30.804432 +AZURE,australiacentral,Standard_D8as_v4,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:31.751915 +AZURE,australiacentral,Standard_D8as_v4,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:46:31.751921 +AZURE,australiacentral,Standard_D8as_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:30.804069 +AZURE,australiacentral,Standard_D8as_v5,on_demand,NA,0.432,USD,Azure Retail Prices API,2025-12-18T04:46:30.803483 +AZURE,australiacentral,Standard_D8as_v5,reserved_1y,NA,0.254909,USD,Azure Retail Prices API,2025-12-18T04:46:31.749667 +AZURE,australiacentral,Standard_D8as_v5,reserved_3y,NA,0.164155,USD,Azure Retail Prices API,2025-12-18T04:46:31.749673 +AZURE,australiacentral,Standard_D8as_v5,spot,NA,0.079834,USD,Azure Retail Prices API,2025-12-18T04:46:30.803554 +AZURE,australiacentral,Standard_D8d_v4,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:30.804055 +AZURE,australiacentral,Standard_D8d_v4,reserved_1y,NA,0.334018,USD,Azure Retail Prices API,2025-12-18T04:46:31.751047 +AZURE,australiacentral,Standard_D8d_v4,reserved_3y,NA,0.213584,USD,Azure Retail Prices API,2025-12-18T04:46:31.751053 +AZURE,australiacentral,Standard_D8d_v4,spot,NA,0.104966,USD,Azure Retail Prices API,2025-12-18T04:46:30.804501 +AZURE,australiacentral,Standard_D8ds_v4,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:30.803504 +AZURE,australiacentral,Standard_D8ds_v4,reserved_1y,NA,0.334018,USD,Azure Retail Prices API,2025-12-18T04:46:31.749710 +AZURE,australiacentral,Standard_D8ds_v4,reserved_3y,NA,0.213584,USD,Azure Retail Prices API,2025-12-18T04:46:31.749715 +AZURE,australiacentral,Standard_D8ds_v4,spot,NA,0.104966,USD,Azure Retail Prices API,2025-12-18T04:46:30.804697 +AZURE,australiacentral,Standard_D8ds_v5,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:30.804145 +AZURE,australiacentral,Standard_D8ds_v5,reserved_1y,NA,0.33516,USD,Azure Retail Prices API,2025-12-18T04:46:31.751426 +AZURE,australiacentral,Standard_D8ds_v5,reserved_3y,NA,0.21583,USD,Azure Retail Prices API,2025-12-18T04:46:31.751431 +AZURE,australiacentral,Standard_D8ds_v5,spot,NA,0.104966,USD,Azure Retail Prices API,2025-12-18T04:46:30.803501 +AZURE,australiacentral,Standard_D8ds_v6,on_demand,NA,0.623,USD,Azure Retail Prices API,2025-12-18T04:46:30.804579 +AZURE,australiacentral,Standard_D8ds_v6,reserved_1y,NA,0.386187,USD,Azure Retail Prices API,2025-12-18T04:46:31.752204 +AZURE,australiacentral,Standard_D8ds_v6,reserved_3y,NA,0.24296,USD,Azure Retail Prices API,2025-12-18T04:46:31.752209 +AZURE,australiacentral,Standard_D8ds_v6,spot,NA,0.11513,USD,Azure Retail Prices API,2025-12-18T04:46:30.803834 +AZURE,australiacentral,Standard_D8s_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:30.804633 +AZURE,australiacentral,Standard_D8s_v3,reserved_1y,NA,0.313584,USD,Azure Retail Prices API,2025-12-18T04:46:31.752353 +AZURE,australiacentral,Standard_D8s_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:31.752358 +AZURE,australiacentral,Standard_D8s_v3,spot,NA,0.0924,USD,Azure Retail Prices API,2025-12-18T04:46:30.804515 +AZURE,australiacentral,Standard_D8s_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:30.804243 +AZURE,australiacentral,Standard_D8s_v4,reserved_1y,NA,0.282192,USD,Azure Retail Prices API,2025-12-18T04:46:31.751621 +AZURE,australiacentral,Standard_D8s_v4,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:31.751626 +AZURE,australiacentral,Standard_D8s_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:30.804107 +AZURE,australiacentral,Standard_D8s_v5,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:30.804527 +AZURE,australiacentral,Standard_D8s_v5,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:31.752092 +AZURE,australiacentral,Standard_D8s_v5,reserved_3y,NA,0.177588,USD,Azure Retail Prices API,2025-12-18T04:46:31.752098 +AZURE,australiacentral,Standard_D8s_v5,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:30.804369 +AZURE,australiacentral,Standard_D96a_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:30.804235 +AZURE,australiacentral,Standard_D96a_v4,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:31.751611 +AZURE,australiacentral,Standard_D96a_v4,reserved_3y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:31.751616 +AZURE,australiacentral,Standard_D96a_v4,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:46:30.804274 +AZURE,australiacentral,Standard_D96ads_v5,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:46:30.803465 +AZURE,australiacentral,Standard_D96ads_v5,reserved_1y,NA,3.681621,USD,Azure Retail Prices API,2025-12-18T04:46:31.749612 +AZURE,australiacentral,Standard_D96ads_v5,reserved_3y,NA,2.371195,USD,Azure Retail Prices API,2025-12-18T04:46:31.749617 +AZURE,australiacentral,Standard_D96ads_v5,spot,NA,1.153152,USD,Azure Retail Prices API,2025-12-18T04:46:30.803522 +AZURE,australiacentral,Standard_D96ads_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:46:30.804209 +AZURE,australiacentral,Standard_D96ads_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:46:31.751546 +AZURE,australiacentral,Standard_D96ads_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:46:31.751551 +AZURE,australiacentral,Standard_D96ads_v6,spot,NA,1.270315,USD,Azure Retail Prices API,2025-12-18T04:46:30.804548 +AZURE,australiacentral,Standard_D96as_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:30.803760 +AZURE,australiacentral,Standard_D96as_v4,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:31.750414 +AZURE,australiacentral,Standard_D96as_v4,reserved_3y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:31.750426 +AZURE,australiacentral,Standard_D96as_v4,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:46:30.804033 +AZURE,australiacentral,Standard_D96as_v5,on_demand,NA,9.6,USD,Azure Retail Prices API,2025-12-18T04:46:30.804012 +AZURE,australiacentral,Standard_D96as_v5,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:46:31.751385 +AZURE,australiacentral,Standard_D96as_v5,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:46:31.751390 +AZURE,australiacentral,Standard_D96as_v5,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:46:30.804472 +AZURE,australiacentral,Standard_D96ds_v5,on_demand,NA,6.816,USD,Azure Retail Prices API,2025-12-18T04:46:30.803843 +AZURE,australiacentral,Standard_D96ds_v5,reserved_1y,NA,4.021461,USD,Azure Retail Prices API,2025-12-18T04:46:31.750592 +AZURE,australiacentral,Standard_D96ds_v5,reserved_3y,NA,2.590068,USD,Azure Retail Prices API,2025-12-18T04:46:31.750599 +AZURE,australiacentral,Standard_D96ds_v5,spot,NA,1.259597,USD,Azure Retail Prices API,2025-12-18T04:46:30.804009 +AZURE,australiacentral,Standard_D96ds_v6,on_demand,NA,7.476,USD,Azure Retail Prices API,2025-12-18T04:46:30.803641 +AZURE,australiacentral,Standard_D96ds_v6,reserved_1y,NA,4.634817,USD,Azure Retail Prices API,2025-12-18T04:46:31.750206 +AZURE,australiacentral,Standard_D96ds_v6,reserved_3y,NA,2.915449,USD,Azure Retail Prices API,2025-12-18T04:46:31.750211 +AZURE,australiacentral,Standard_D96ds_v6,spot,NA,1.381565,USD,Azure Retail Prices API,2025-12-18T04:46:30.803976 +AZURE,australiacentral,Standard_D96s_v5,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:30.804321 +AZURE,australiacentral,Standard_D96s_v5,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:31.751738 +AZURE,australiacentral,Standard_D96s_v5,reserved_3y,NA,2.131202,USD,Azure Retail Prices API,2025-12-18T04:46:31.751744 +AZURE,australiacentral,Standard_D96s_v5,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:46:30.804327 +AZURE,australiacentral,Standard_DC16ads_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:46:30.804116 +AZURE,australiacentral,Standard_DC16ads_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:46:31.751374 +AZURE,australiacentral,Standard_DC16ads_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:46:31.751379 +AZURE,australiacentral,Standard_DC16ads_v6,spot,NA,0.211781,USD,Azure Retail Prices API,2025-12-18T04:46:30.803486 +AZURE,australiacentral,Standard_DC2ads_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:30.803459 +AZURE,australiacentral,Standard_DC2ads_v6,reserved_1y,NA,0.084475,USD,Azure Retail Prices API,2025-12-18T04:46:31.749602 +AZURE,australiacentral,Standard_DC2ads_v6,reserved_3y,NA,0.054414,USD,Azure Retail Prices API,2025-12-18T04:46:31.749607 +AZURE,australiacentral,Standard_DC2ads_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:46:30.803551 +AZURE,australiacentral,Standard_DC32ads_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:30.804518 +AZURE,australiacentral,Standard_DC32ads_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:46:31.752082 +AZURE,australiacentral,Standard_DC32ads_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:46:31.752087 +AZURE,australiacentral,Standard_DC32ads_v6,spot,NA,0.423377,USD,Azure Retail Prices API,2025-12-18T04:46:30.804064 +AZURE,australiacentral,Standard_DC48ads_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:46:30.803851 +AZURE,australiacentral,Standard_DC48ads_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:46:31.750633 +AZURE,australiacentral,Standard_DC48ads_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:46:31.750639 +AZURE,australiacentral,Standard_DC48ads_v6,spot,NA,0.635158,USD,Azure Retail Prices API,2025-12-18T04:46:30.803411 +AZURE,australiacentral,Standard_DC4ads_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:30.804737 +AZURE,australiacentral,Standard_DC4ads_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:46:31.752525 +AZURE,australiacentral,Standard_DC4ads_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:46:31.752532 +AZURE,australiacentral,Standard_DC4ads_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:46:30.804058 +AZURE,australiacentral,Standard_DC64ads_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:46:30.804591 +AZURE,australiacentral,Standard_DC64ads_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:46:31.752246 +AZURE,australiacentral,Standard_DC64ads_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:46:31.752250 +AZURE,australiacentral,Standard_DC64ads_v6,spot,NA,0.846754,USD,Azure Retail Prices API,2025-12-18T04:46:30.803981 +AZURE,australiacentral,Standard_DC8ads_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:46:30.804324 +AZURE,australiacentral,Standard_DC8ads_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:46:31.751749 +AZURE,australiacentral,Standard_DC8ads_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:46:31.751754 +AZURE,australiacentral,Standard_DC8ads_v6,spot,NA,0.10589,USD,Azure Retail Prices API,2025-12-18T04:46:30.804395 +AZURE,australiacentral,Standard_DC96ads_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:46:30.803970 +AZURE,australiacentral,Standard_DC96ads_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:46:31.750897 +AZURE,australiacentral,Standard_DC96ads_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:46:31.750903 +AZURE,australiacentral,Standard_DC96ads_v6,spot,NA,1.270315,USD,Azure Retail Prices API,2025-12-18T04:46:30.803771 +AZURE,australiacentral,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495558 +AZURE,australiacentral,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495567 +AZURE,australiacentral,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495571 +AZURE,australiacentral,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495562 +AZURE,australiacentral,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496446 +AZURE,australiacentral,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496461 +AZURE,australiacentral,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496469 +AZURE,australiacentral,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496453 +AZURE,australiacentral,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497272 +AZURE,australiacentral,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497284 +AZURE,australiacentral,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497293 +AZURE,australiacentral,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497278 +AZURE,australiacentral,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498086 +AZURE,australiacentral,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498094 +AZURE,australiacentral,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498098 +AZURE,australiacentral,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498090 +AZURE,australiacentral,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491917 +AZURE,australiacentral,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491925 +AZURE,australiacentral,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491930 +AZURE,australiacentral,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491921 +AZURE,australiacentral,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492640 +AZURE,australiacentral,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492649 +AZURE,australiacentral,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492653 +AZURE,australiacentral,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492645 +AZURE,australiacentral,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493376 +AZURE,australiacentral,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493384 +AZURE,australiacentral,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493388 +AZURE,australiacentral,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493380 +AZURE,australiacentral,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494074 +AZURE,australiacentral,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494082 +AZURE,australiacentral,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494086 +AZURE,australiacentral,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494078 +AZURE,australiacentral,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494788 +AZURE,australiacentral,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494796 +AZURE,australiacentral,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494800 +AZURE,australiacentral,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494792 +AZURE,australiacentral,Standard_E128ds_v6,on_demand,NA,12.541,USD,Azure Retail Prices API,2025-12-18T04:46:30.804417 +AZURE,australiacentral,Standard_E128ds_v6,reserved_1y,NA,7.775685,USD,Azure Retail Prices API,2025-12-18T04:46:31.751894 +AZURE,australiacentral,Standard_E128ds_v6,reserved_3y,NA,4.891172,USD,Azure Retail Prices API,2025-12-18T04:46:31.751900 +AZURE,australiacentral,Standard_E128ds_v6,spot,NA,2.317577,USD,Azure Retail Prices API,2025-12-18T04:46:30.803548 +AZURE,australiacentral,Standard_E16_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:30.804660 +AZURE,australiacentral,Standard_E16_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:46:31.752381 +AZURE,australiacentral,Standard_E16_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:46:31.752385 +AZURE,australiacentral,Standard_E16_v3,spot,NA,0.23599,USD,Azure Retail Prices API,2025-12-18T04:46:30.803588 +AZURE,australiacentral,Standard_E16a_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:30.804756 +AZURE,australiacentral,Standard_E16a_v4,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:46:31.752585 +AZURE,australiacentral,Standard_E16a_v4,reserved_3y,NA,0.459056,USD,Azure Retail Prices API,2025-12-18T04:46:31.752590 +AZURE,australiacentral,Standard_E16a_v4,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:30.804241 +AZURE,australiacentral,Standard_E16ads_v5,on_demand,NA,1.272,USD,Azure Retail Prices API,2025-12-18T04:46:30.803650 +AZURE,australiacentral,Standard_E16ads_v5,reserved_1y,NA,0.750457,USD,Azure Retail Prices API,2025-12-18T04:46:31.750227 +AZURE,australiacentral,Standard_E16ads_v5,reserved_3y,NA,0.483371,USD,Azure Retail Prices API,2025-12-18T04:46:31.750233 +AZURE,australiacentral,Standard_E16ads_v5,spot,NA,0.235066,USD,Azure Retail Prices API,2025-12-18T04:46:30.804335 +AZURE,australiacentral,Standard_E16ads_v6,on_demand,NA,1.458,USD,Azure Retail Prices API,2025-12-18T04:46:30.804727 +AZURE,australiacentral,Standard_E16ads_v6,reserved_1y,NA,0.859932,USD,Azure Retail Prices API,2025-12-18T04:46:31.752506 +AZURE,australiacentral,Standard_E16ads_v6,reserved_3y,NA,0.553881,USD,Azure Retail Prices API,2025-12-18T04:46:31.752511 +AZURE,australiacentral,Standard_E16ads_v6,spot,NA,0.269438,USD,Azure Retail Prices API,2025-12-18T04:46:30.804157 +AZURE,australiacentral,Standard_E16as_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:30.804047 +AZURE,australiacentral,Standard_E16as_v4,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:46:31.751034 +AZURE,australiacentral,Standard_E16as_v4,reserved_3y,NA,0.459056,USD,Azure Retail Prices API,2025-12-18T04:46:31.751040 +AZURE,australiacentral,Standard_E16as_v4,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:30.804148 +AZURE,australiacentral,Standard_E16as_v5,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:46:30.804412 +AZURE,australiacentral,Standard_E16as_v5,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:46:31.752565 +AZURE,australiacentral,Standard_E16as_v5,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:46:31.752570 +AZURE,australiacentral,Standard_E16as_v5,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:46:30.803531 +AZURE,australiacentral,Standard_E16d_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:30.803653 +AZURE,australiacentral,Standard_E16d_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:31.750238 +AZURE,australiacentral,Standard_E16d_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:31.750244 +AZURE,australiacentral,Standard_E16d_v4,spot,NA,0.257242,USD,Azure Retail Prices API,2025-12-18T04:46:30.804263 +AZURE,australiacentral,Standard_E16ds_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:30.804663 +AZURE,australiacentral,Standard_E16ds_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:31.752390 +AZURE,australiacentral,Standard_E16ds_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:31.752394 +AZURE,australiacentral,Standard_E16ds_v4,spot,NA,0.257242,USD,Azure Retail Prices API,2025-12-18T04:46:30.804101 +AZURE,australiacentral,Standard_E16ds_v5,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:30.804699 +AZURE,australiacentral,Standard_E16ds_v5,reserved_1y,NA,0.821233,USD,Azure Retail Prices API,2025-12-18T04:46:31.752449 +AZURE,australiacentral,Standard_E16ds_v5,reserved_3y,NA,0.528957,USD,Azure Retail Prices API,2025-12-18T04:46:31.752454 +AZURE,australiacentral,Standard_E16ds_v5,spot,NA,0.257242,USD,Azure Retail Prices API,2025-12-18T04:46:30.804392 +AZURE,australiacentral,Standard_E16ds_v6,on_demand,NA,1.568,USD,Azure Retail Prices API,2025-12-18T04:46:30.803441 +AZURE,australiacentral,Standard_E16ds_v6,reserved_1y,NA,0.971918,USD,Azure Retail Prices API,2025-12-18T04:46:31.749571 +AZURE,australiacentral,Standard_E16ds_v6,reserved_3y,NA,0.611377,USD,Azure Retail Prices API,2025-12-18T04:46:31.749576 +AZURE,australiacentral,Standard_E16ds_v6,spot,NA,0.289766,USD,Azure Retail Prices API,2025-12-18T04:46:30.804550 +AZURE,australiacentral,Standard_E16s_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:30.804724 +AZURE,australiacentral,Standard_E16s_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:46:31.752497 +AZURE,australiacentral,Standard_E16s_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:46:31.752502 +AZURE,australiacentral,Standard_E16s_v3,spot,NA,0.23599,USD,Azure Retail Prices API,2025-12-18T04:46:30.803777 +AZURE,australiacentral,Standard_E16s_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:30.803745 +AZURE,australiacentral,Standard_E16s_v4,reserved_1y,NA,0.710274,USD,Azure Retail Prices API,2025-12-18T04:46:31.750381 +AZURE,australiacentral,Standard_E16s_v4,reserved_3y,NA,0.454224,USD,Azure Retail Prices API,2025-12-18T04:46:31.750387 +AZURE,australiacentral,Standard_E16s_v4,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:30.803450 +AZURE,australiacentral,Standard_E16s_v5,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:30.804389 +AZURE,australiacentral,Standard_E16s_v5,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:46:31.751860 +AZURE,australiacentral,Standard_E16s_v5,reserved_3y,NA,0.446956,USD,Azure Retail Prices API,2025-12-18T04:46:31.751866 +AZURE,australiacentral,Standard_E16s_v5,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:30.803665 +AZURE,australiacentral,Standard_E20a_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:30.803768 +AZURE,australiacentral,Standard_E20a_v4,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:46:31.750442 +AZURE,australiacentral,Standard_E20a_v4,reserved_3y,NA,0.573782,USD,Azure Retail Prices API,2025-12-18T04:46:31.750447 +AZURE,australiacentral,Standard_E20a_v4,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:30.804682 +AZURE,australiacentral,Standard_E20ads_v5,on_demand,NA,1.59,USD,Azure Retail Prices API,2025-12-18T04:46:30.803557 +AZURE,australiacentral,Standard_E20ads_v5,reserved_1y,NA,0.938128,USD,Azure Retail Prices API,2025-12-18T04:46:31.750062 +AZURE,australiacentral,Standard_E20ads_v5,reserved_3y,NA,0.604186,USD,Azure Retail Prices API,2025-12-18T04:46:31.750071 +AZURE,australiacentral,Standard_E20ads_v5,spot,NA,0.293832,USD,Azure Retail Prices API,2025-12-18T04:46:30.804564 +AZURE,australiacentral,Standard_E20ads_v6,on_demand,NA,1.822,USD,Azure Retail Prices API,2025-12-18T04:46:30.804747 +AZURE,australiacentral,Standard_E20ads_v6,reserved_1y,NA,1.075,USD,Azure Retail Prices API,2025-12-18T04:46:31.752575 +AZURE,australiacentral,Standard_E20ads_v6,reserved_3y,NA,0.692352,USD,Azure Retail Prices API,2025-12-18T04:46:31.752580 +AZURE,australiacentral,Standard_E20ads_v6,spot,NA,0.336706,USD,Azure Retail Prices API,2025-12-18T04:46:30.804435 +AZURE,australiacentral,Standard_E20as_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:30.803635 +AZURE,australiacentral,Standard_E20as_v4,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:46:31.750195 +AZURE,australiacentral,Standard_E20as_v4,reserved_3y,NA,0.573782,USD,Azure Retail Prices API,2025-12-18T04:46:31.750201 +AZURE,australiacentral,Standard_E20as_v4,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:30.804647 +AZURE,australiacentral,Standard_E20as_v5,on_demand,NA,1.36,USD,Azure Retail Prices API,2025-12-18T04:46:30.804708 +AZURE,australiacentral,Standard_E20as_v5,reserved_1y,NA,0.802397,USD,Azure Retail Prices API,2025-12-18T04:46:31.752479 +AZURE,australiacentral,Standard_E20as_v5,reserved_3y,NA,0.516819,USD,Azure Retail Prices API,2025-12-18T04:46:31.752483 +AZURE,australiacentral,Standard_E20as_v5,spot,NA,0.251328,USD,Azure Retail Prices API,2025-12-18T04:46:30.803900 +AZURE,australiacentral,Standard_E20d_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:30.803703 +AZURE,australiacentral,Standard_E20d_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:31.750305 +AZURE,australiacentral,Standard_E20d_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:31.750311 +AZURE,australiacentral,Standard_E20d_v4,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:46:30.803757 +AZURE,australiacentral,Standard_E20ds_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:30.804490 +AZURE,australiacentral,Standard_E20ds_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:31.752019 +AZURE,australiacentral,Standard_E20ds_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:31.752024 +AZURE,australiacentral,Standard_E20ds_v4,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:46:30.804142 +AZURE,australiacentral,Standard_E20ds_v5,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:30.803571 +AZURE,australiacentral,Standard_E20ds_v5,reserved_1y,NA,1.026598,USD,Azure Retail Prices API,2025-12-18T04:46:31.750110 +AZURE,australiacentral,Standard_E20ds_v5,reserved_3y,NA,0.661187,USD,Azure Retail Prices API,2025-12-18T04:46:31.750115 +AZURE,australiacentral,Standard_E20ds_v5,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:46:30.804443 +AZURE,australiacentral,Standard_E20ds_v6,on_demand,NA,1.96,USD,Azure Retail Prices API,2025-12-18T04:46:30.804594 +AZURE,australiacentral,Standard_E20ds_v6,reserved_1y,NA,1.214954,USD,Azure Retail Prices API,2025-12-18T04:46:31.752255 +AZURE,australiacentral,Standard_E20ds_v6,reserved_3y,NA,0.764231,USD,Azure Retail Prices API,2025-12-18T04:46:31.752260 +AZURE,australiacentral,Standard_E20ds_v6,spot,NA,0.362208,USD,Azure Retail Prices API,2025-12-18T04:46:30.804072 +AZURE,australiacentral,Standard_E20s_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:30.804220 +AZURE,australiacentral,Standard_E20s_v4,reserved_1y,NA,0.888128,USD,Azure Retail Prices API,2025-12-18T04:46:31.751577 +AZURE,australiacentral,Standard_E20s_v4,reserved_3y,NA,0.567732,USD,Azure Retail Prices API,2025-12-18T04:46:31.751584 +AZURE,australiacentral,Standard_E20s_v4,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:30.804375 +AZURE,australiacentral,Standard_E20s_v5,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:30.803942 +AZURE,australiacentral,Standard_E20s_v5,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:46:31.750804 +AZURE,australiacentral,Standard_E20s_v5,reserved_3y,NA,0.558714,USD,Azure Retail Prices API,2025-12-18T04:46:31.750810 +AZURE,australiacentral,Standard_E20s_v5,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:30.804266 +AZURE,australiacentral,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:46:30.804529 +AZURE,australiacentral,Standard_E2_v3,reserved_1y,NA,0.093836,USD,Azure Retail Prices API,2025-12-18T04:46:31.752108 +AZURE,australiacentral,Standard_E2_v3,reserved_3y,NA,0.060008,USD,Azure Retail Prices API,2025-12-18T04:46:31.752113 +AZURE,australiacentral,Standard_E2_v3,spot,NA,0.029568,USD,Azure Retail Prices API,2025-12-18T04:46:30.803792 +AZURE,australiacentral,Standard_E2ads_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:30.804339 +AZURE,australiacentral,Standard_E2ads_v6,reserved_1y,NA,0.107534,USD,Azure Retail Prices API,2025-12-18T04:46:31.751771 +AZURE,australiacentral,Standard_E2ads_v6,reserved_3y,NA,0.069254,USD,Azure Retail Prices API,2025-12-18T04:46:31.751776 +AZURE,australiacentral,Standard_E2ads_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:46:30.803632 +AZURE,australiacentral,Standard_E2ds_v5,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:30.803622 +AZURE,australiacentral,Standard_E2ds_v5,reserved_1y,NA,0.102626,USD,Azure Retail Prices API,2025-12-18T04:46:31.750174 +AZURE,australiacentral,Standard_E2ds_v5,reserved_3y,NA,0.066134,USD,Azure Retail Prices API,2025-12-18T04:46:31.750180 +AZURE,australiacentral,Standard_E2ds_v5,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:46:30.804380 +AZURE,australiacentral,Standard_E2ds_v6,on_demand,NA,0.196,USD,Azure Retail Prices API,2025-12-18T04:46:30.804169 +AZURE,australiacentral,Standard_E2ds_v6,reserved_1y,NA,0.121461,USD,Azure Retail Prices API,2025-12-18T04:46:31.751480 +AZURE,australiacentral,Standard_E2ds_v6,reserved_3y,NA,0.076408,USD,Azure Retail Prices API,2025-12-18T04:46:31.751485 +AZURE,australiacentral,Standard_E2ds_v6,spot,NA,0.036221,USD,Azure Retail Prices API,2025-12-18T04:46:30.804246 +AZURE,australiacentral,Standard_E32_v3,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:46:30.803592 +AZURE,australiacentral,Standard_E32_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:46:31.750121 +AZURE,australiacentral,Standard_E32_v3,reserved_3y,NA,0.96016,USD,Azure Retail Prices API,2025-12-18T04:46:31.750126 +AZURE,australiacentral,Standard_E32_v3,spot,NA,0.471979,USD,Azure Retail Prices API,2025-12-18T04:46:30.803534 +AZURE,australiacentral,Standard_E32a_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:30.803765 +AZURE,australiacentral,Standard_E32a_v4,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:46:31.750431 +AZURE,australiacentral,Standard_E32a_v4,reserved_3y,NA,0.918075,USD,Azure Retail Prices API,2025-12-18T04:46:31.750436 +AZURE,australiacentral,Standard_E32a_v4,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:30.803780 +AZURE,australiacentral,Standard_E32ads_v5,on_demand,NA,4.016,USD,Azure Retail Prices API,2025-12-18T04:46:30.803462 +AZURE,australiacentral,Standard_E32ads_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:31.751838 +AZURE,australiacentral,Standard_E32ads_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:31.751844 +AZURE,australiacentral,Standard_E32ads_v5,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:30.804464 +AZURE,australiacentral,Standard_E32ads_v6,on_demand,NA,2.915,USD,Azure Retail Prices API,2025-12-18T04:46:30.804229 +AZURE,australiacentral,Standard_E32ads_v6,reserved_1y,NA,1.719977,USD,Azure Retail Prices API,2025-12-18T04:46:31.751590 +AZURE,australiacentral,Standard_E32ads_v6,reserved_3y,NA,1.107763,USD,Azure Retail Prices API,2025-12-18T04:46:31.751595 +AZURE,australiacentral,Standard_E32ads_v6,spot,NA,0.538692,USD,Azure Retail Prices API,2025-12-18T04:46:30.804223 +AZURE,australiacentral,Standard_E32as_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:30.803794 +AZURE,australiacentral,Standard_E32as_v4,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:46:31.750496 +AZURE,australiacentral,Standard_E32as_v4,reserved_3y,NA,0.918075,USD,Azure Retail Prices API,2025-12-18T04:46:31.750503 +AZURE,australiacentral,Standard_E32as_v4,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:30.803748 +AZURE,australiacentral,Standard_E32as_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:30.803917 +AZURE,australiacentral,Standard_E32as_v5,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:46:31.751937 +AZURE,australiacentral,Standard_E32as_v5,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:46:31.751943 +AZURE,australiacentral,Standard_E32as_v5,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:46:30.803644 +AZURE,australiacentral,Standard_E32d_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:30.804671 +AZURE,australiacentral,Standard_E32d_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:31.752421 +AZURE,australiacentral,Standard_E32d_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:31.752426 +AZURE,australiacentral,Standard_E32d_v4,spot,NA,0.514483,USD,Azure Retail Prices API,2025-12-18T04:46:30.804750 +AZURE,australiacentral,Standard_E32ds_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:30.804130 +AZURE,australiacentral,Standard_E32ds_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:31.751416 +AZURE,australiacentral,Standard_E32ds_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:31.751421 +AZURE,australiacentral,Standard_E32ds_v4,spot,NA,0.514483,USD,Azure Retail Prices API,2025-12-18T04:46:30.804745 +AZURE,australiacentral,Standard_E32ds_v5,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:30.804739 +AZURE,australiacentral,Standard_E32ds_v5,reserved_1y,NA,1.64258,USD,Azure Retail Prices API,2025-12-18T04:46:31.752546 +AZURE,australiacentral,Standard_E32ds_v5,reserved_3y,NA,1.057915,USD,Azure Retail Prices API,2025-12-18T04:46:31.752551 +AZURE,australiacentral,Standard_E32ds_v5,spot,NA,0.514483,USD,Azure Retail Prices API,2025-12-18T04:46:30.804061 +AZURE,australiacentral,Standard_E32ds_v6,on_demand,NA,3.135,USD,Azure Retail Prices API,2025-12-18T04:46:30.804269 +AZURE,australiacentral,Standard_E32ds_v6,reserved_1y,NA,1.94395,USD,Azure Retail Prices API,2025-12-18T04:46:31.751663 +AZURE,australiacentral,Standard_E32ds_v6,reserved_3y,NA,1.222793,USD,Azure Retail Prices API,2025-12-18T04:46:31.751668 +AZURE,australiacentral,Standard_E32ds_v6,spot,NA,0.579348,USD,Azure Retail Prices API,2025-12-18T04:46:30.803837 +AZURE,australiacentral,Standard_E32s_v3,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:46:30.804585 +AZURE,australiacentral,Standard_E32s_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:46:31.752225 +AZURE,australiacentral,Standard_E32s_v3,reserved_3y,NA,0.96016,USD,Azure Retail Prices API,2025-12-18T04:46:31.752230 +AZURE,australiacentral,Standard_E32s_v3,spot,NA,0.471979,USD,Azure Retail Prices API,2025-12-18T04:46:30.803489 +AZURE,australiacentral,Standard_E32s_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:30.803739 +AZURE,australiacentral,Standard_E32s_v4,reserved_1y,NA,1.420662,USD,Azure Retail Prices API,2025-12-18T04:46:31.750360 +AZURE,australiacentral,Standard_E32s_v4,reserved_3y,NA,0.908409,USD,Azure Retail Prices API,2025-12-18T04:46:31.750365 +AZURE,australiacentral,Standard_E32s_v4,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:30.804753 +AZURE,australiacentral,Standard_E32s_v5,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:30.803498 +AZURE,australiacentral,Standard_E32s_v5,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:46:31.749699 +AZURE,australiacentral,Standard_E32s_v5,reserved_3y,NA,0.893912,USD,Azure Retail Prices API,2025-12-18T04:46:31.749704 +AZURE,australiacentral,Standard_E32s_v5,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:30.804452 +AZURE,australiacentral,Standard_E48a_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:30.804398 +AZURE,australiacentral,Standard_E48a_v4,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:46:31.751873 +AZURE,australiacentral,Standard_E48a_v4,reserved_3y,NA,1.377131,USD,Azure Retail Prices API,2025-12-18T04:46:31.751878 +AZURE,australiacentral,Standard_E48a_v4,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:30.804310 +AZURE,australiacentral,Standard_E48ads_v5,on_demand,NA,3.816,USD,Azure Retail Prices API,2025-12-18T04:46:30.803613 +AZURE,australiacentral,Standard_E48ads_v5,reserved_1y,NA,2.251484,USD,Azure Retail Prices API,2025-12-18T04:46:31.750153 +AZURE,australiacentral,Standard_E48ads_v5,reserved_3y,NA,1.450076,USD,Azure Retail Prices API,2025-12-18T04:46:31.750159 +AZURE,australiacentral,Standard_E48ads_v5,spot,NA,0.705197,USD,Azure Retail Prices API,2025-12-18T04:46:30.804280 +AZURE,australiacentral,Standard_E48ads_v6,on_demand,NA,4.373,USD,Azure Retail Prices API,2025-12-18T04:46:30.804166 +AZURE,australiacentral,Standard_E48ads_v6,reserved_1y,NA,2.579909,USD,Azure Retail Prices API,2025-12-18T04:46:31.751470 +AZURE,australiacentral,Standard_E48ads_v6,reserved_3y,NA,1.661682,USD,Azure Retail Prices API,2025-12-18T04:46:31.751475 +AZURE,australiacentral,Standard_E48ads_v6,spot,NA,0.80813,USD,Azure Retail Prices API,2025-12-18T04:46:30.803625 +AZURE,australiacentral,Standard_E48as_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:30.803543 +AZURE,australiacentral,Standard_E48as_v4,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:46:31.749784 +AZURE,australiacentral,Standard_E48as_v4,reserved_3y,NA,1.377131,USD,Azure Retail Prices API,2025-12-18T04:46:31.749789 +AZURE,australiacentral,Standard_E48as_v4,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:30.804650 +AZURE,australiacentral,Standard_E48as_v5,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:46:30.804630 +AZURE,australiacentral,Standard_E48as_v5,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:31.752536 +AZURE,australiacentral,Standard_E48as_v5,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:46:31.752541 +AZURE,australiacentral,Standard_E48as_v5,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:30.804319 +AZURE,australiacentral,Standard_E48d_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:30.803513 +AZURE,australiacentral,Standard_E48d_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:31.749720 +AZURE,australiacentral,Standard_E48d_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:31.749726 +AZURE,australiacentral,Standard_E48d_v4,spot,NA,0.771725,USD,Azure Retail Prices API,2025-12-18T04:46:30.803812 +AZURE,australiacentral,Standard_E48ds_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:30.804217 +AZURE,australiacentral,Standard_E48ds_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:31.751566 +AZURE,australiacentral,Standard_E48ds_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:31.751572 +AZURE,australiacentral,Standard_E48ds_v4,spot,NA,0.771725,USD,Azure Retail Prices API,2025-12-18T04:46:30.804038 +AZURE,australiacentral,Standard_E48ds_v5,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:30.803537 +AZURE,australiacentral,Standard_E48ds_v5,reserved_1y,NA,2.463813,USD,Azure Retail Prices API,2025-12-18T04:46:31.749763 +AZURE,australiacentral,Standard_E48ds_v5,reserved_3y,NA,1.586872,USD,Azure Retail Prices API,2025-12-18T04:46:31.749769 +AZURE,australiacentral,Standard_E48ds_v5,spot,NA,0.771725,USD,Azure Retail Prices API,2025-12-18T04:46:30.803908 +AZURE,australiacentral,Standard_E48ds_v6,on_demand,NA,4.703,USD,Azure Retail Prices API,2025-12-18T04:46:30.804357 +AZURE,australiacentral,Standard_E48ds_v6,reserved_1y,NA,2.915868,USD,Azure Retail Prices API,2025-12-18T04:46:31.751817 +AZURE,australiacentral,Standard_E48ds_v6,reserved_3y,NA,1.83417,USD,Azure Retail Prices API,2025-12-18T04:46:31.751822 +AZURE,australiacentral,Standard_E48ds_v6,spot,NA,0.869114,USD,Azure Retail Prices API,2025-12-18T04:46:30.804066 +AZURE,australiacentral,Standard_E48s_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:30.804006 +AZURE,australiacentral,Standard_E48s_v4,reserved_1y,NA,2.130936,USD,Azure Retail Prices API,2025-12-18T04:46:31.750979 +AZURE,australiacentral,Standard_E48s_v4,reserved_3y,NA,1.362633,USD,Azure Retail Prices API,2025-12-18T04:46:31.750985 +AZURE,australiacentral,Standard_E48s_v4,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:30.804455 +AZURE,australiacentral,Standard_E48s_v5,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:30.803598 +AZURE,australiacentral,Standard_E48s_v5,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:46:31.750142 +AZURE,australiacentral,Standard_E48s_v5,reserved_3y,NA,1.340868,USD,Azure Retail Prices API,2025-12-18T04:46:31.750148 +AZURE,australiacentral,Standard_E48s_v5,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:30.804627 +AZURE,australiacentral,Standard_E4_v3,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:46:30.804341 +AZURE,australiacentral,Standard_E4_v3,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:31.751781 +AZURE,australiacentral,Standard_E4_v3,reserved_3y,NA,0.120015,USD,Azure Retail Prices API,2025-12-18T04:46:31.751787 +AZURE,australiacentral,Standard_E4_v3,spot,NA,0.058951,USD,Azure Retail Prices API,2025-12-18T04:46:30.804406 +AZURE,australiacentral,Standard_E4a_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:30.804214 +AZURE,australiacentral,Standard_E4a_v4,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:46:31.751556 +AZURE,australiacentral,Standard_E4a_v4,reserved_3y,NA,0.114764,USD,Azure Retail Prices API,2025-12-18T04:46:31.751561 +AZURE,australiacentral,Standard_E4a_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:30.804467 +AZURE,australiacentral,Standard_E4ads_v5,on_demand,NA,0.318,USD,Azure Retail Prices API,2025-12-18T04:46:30.804605 +AZURE,australiacentral,Standard_E4ads_v5,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:31.752264 +AZURE,australiacentral,Standard_E4ads_v5,reserved_3y,NA,0.120852,USD,Azure Retail Prices API,2025-12-18T04:46:31.752269 +AZURE,australiacentral,Standard_E4ads_v5,spot,NA,0.058766,USD,Azure Retail Prices API,2025-12-18T04:46:30.804636 +AZURE,australiacentral,Standard_E4ads_v6,on_demand,NA,0.364,USD,Azure Retail Prices API,2025-12-18T04:46:30.803434 +AZURE,australiacentral,Standard_E4ads_v6,reserved_1y,NA,0.214954,USD,Azure Retail Prices API,2025-12-18T04:46:31.749549 +AZURE,australiacentral,Standard_E4ads_v6,reserved_3y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:31.749554 +AZURE,australiacentral,Standard_E4ads_v6,spot,NA,0.067267,USD,Azure Retail Prices API,2025-12-18T04:46:30.804496 +AZURE,australiacentral,Standard_E4as_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:30.804537 +AZURE,australiacentral,Standard_E4as_v4,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:46:31.752128 +AZURE,australiacentral,Standard_E4as_v4,reserved_3y,NA,0.114764,USD,Azure Retail Prices API,2025-12-18T04:46:31.752133 +AZURE,australiacentral,Standard_E4as_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:30.803967 +AZURE,australiacentral,Standard_E4as_v5,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:46:30.803923 +AZURE,australiacentral,Standard_E4as_v5,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:46:31.750765 +AZURE,australiacentral,Standard_E4as_v5,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:46:31.750771 +AZURE,australiacentral,Standard_E4as_v5,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:46:30.804277 +AZURE,australiacentral,Standard_E4d_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:30.803973 +AZURE,australiacentral,Standard_E4d_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:31.750909 +AZURE,australiacentral,Standard_E4d_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:31.750917 +AZURE,australiacentral,Standard_E4d_v4,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:46:30.804027 +AZURE,australiacentral,Standard_E4ds_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:30.804088 +AZURE,australiacentral,Standard_E4ds_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:31.751338 +AZURE,australiacentral,Standard_E4ds_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:31.751343 +AZURE,australiacentral,Standard_E4ds_v4,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:46:30.804676 +AZURE,australiacentral,Standard_E4ds_v5,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:30.804354 +AZURE,australiacentral,Standard_E4ds_v5,reserved_1y,NA,0.205365,USD,Azure Retail Prices API,2025-12-18T04:46:31.751806 +AZURE,australiacentral,Standard_E4ds_v5,reserved_3y,NA,0.13223,USD,Azure Retail Prices API,2025-12-18T04:46:31.751812 +AZURE,australiacentral,Standard_E4ds_v5,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:46:30.804136 +AZURE,australiacentral,Standard_E4ds_v6,on_demand,NA,0.392,USD,Azure Retail Prices API,2025-12-18T04:46:30.804127 +AZURE,australiacentral,Standard_E4ds_v6,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:46:31.751405 +AZURE,australiacentral,Standard_E4ds_v6,reserved_3y,NA,0.152854,USD,Azure Retail Prices API,2025-12-18T04:46:31.751411 +AZURE,australiacentral,Standard_E4ds_v6,spot,NA,0.072442,USD,Azure Retail Prices API,2025-12-18T04:46:30.804021 +AZURE,australiacentral,Standard_E4s_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:30.803951 +AZURE,australiacentral,Standard_E4s_v4,reserved_1y,NA,0.177626,USD,Azure Retail Prices API,2025-12-18T04:46:31.750845 +AZURE,australiacentral,Standard_E4s_v4,reserved_3y,NA,0.113546,USD,Azure Retail Prices API,2025-12-18T04:46:31.750850 +AZURE,australiacentral,Standard_E4s_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:30.804260 +AZURE,australiacentral,Standard_E4s_v5,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:30.803993 +AZURE,australiacentral,Standard_E4s_v5,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:46:31.750940 +AZURE,australiacentral,Standard_E4s_v5,reserved_3y,NA,0.111758,USD,Azure Retail Prices API,2025-12-18T04:46:31.750946 +AZURE,australiacentral,Standard_E4s_v5,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:30.804291 +AZURE,australiacentral,Standard_E64_v3,on_demand,NA,4.347,USD,Azure Retail Prices API,2025-12-18T04:46:30.803629 +AZURE,australiacentral,Standard_E64_v3,reserved_1y,NA,2.830365,USD,Azure Retail Prices API,2025-12-18T04:46:31.750185 +AZURE,australiacentral,Standard_E64_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:46:31.750190 +AZURE,australiacentral,Standard_E64_v3,spot,NA,0.803326,USD,Azure Retail Prices API,2025-12-18T04:46:30.804619 +AZURE,australiacentral,Standard_E64a_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:30.804772 +AZURE,australiacentral,Standard_E64a_v4,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:46:31.752606 +AZURE,australiacentral,Standard_E64a_v4,reserved_3y,NA,1.836149,USD,Azure Retail Prices API,2025-12-18T04:46:31.752610 +AZURE,australiacentral,Standard_E64a_v4,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:30.804657 +AZURE,australiacentral,Standard_E64ads_v5,on_demand,NA,8.032,USD,Azure Retail Prices API,2025-12-18T04:46:30.803903 +AZURE,australiacentral,Standard_E64ads_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:31.751654 +AZURE,australiacentral,Standard_E64ads_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:31.751659 +AZURE,australiacentral,Standard_E64ads_v5,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:30.804674 +AZURE,australiacentral,Standard_E64ads_v6,on_demand,NA,5.83,USD,Azure Retail Prices API,2025-12-18T04:46:30.804559 +AZURE,australiacentral,Standard_E64ads_v6,reserved_1y,NA,3.439954,USD,Azure Retail Prices API,2025-12-18T04:46:31.752171 +AZURE,australiacentral,Standard_E64ads_v6,reserved_3y,NA,2.215563,USD,Azure Retail Prices API,2025-12-18T04:46:31.752178 +AZURE,australiacentral,Standard_E64ads_v6,spot,NA,1.077384,USD,Azure Retail Prices API,2025-12-18T04:46:30.804122 +AZURE,australiacentral,Standard_E64as_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:30.804624 +AZURE,australiacentral,Standard_E64as_v4,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:46:31.752291 +AZURE,australiacentral,Standard_E64as_v4,reserved_3y,NA,1.836149,USD,Azure Retail Prices API,2025-12-18T04:46:31.752296 +AZURE,australiacentral,Standard_E64as_v4,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:30.803545 +AZURE,australiacentral,Standard_E64as_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:30.804570 +AZURE,australiacentral,Standard_E64as_v5,reserved_1y,NA,2.567694,USD,Azure Retail Prices API,2025-12-18T04:46:31.752556 +AZURE,australiacentral,Standard_E64as_v5,reserved_3y,NA,1.653767,USD,Azure Retail Prices API,2025-12-18T04:46:31.752560 +AZURE,australiacentral,Standard_E64as_v5,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:46:30.803525 +AZURE,australiacentral,Standard_E64d_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:30.803934 +AZURE,australiacentral,Standard_E64d_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:31.750791 +AZURE,australiacentral,Standard_E64d_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:31.750798 +AZURE,australiacentral,Standard_E64d_v4,spot,NA,1.028966,USD,Azure Retail Prices API,2025-12-18T04:46:30.803510 +AZURE,australiacentral,Standard_E64ds_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:30.803560 +AZURE,australiacentral,Standard_E64ds_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:31.750077 +AZURE,australiacentral,Standard_E64ds_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:31.750082 +AZURE,australiacentral,Standard_E64ds_v4,spot,NA,1.028966,USD,Azure Retail Prices API,2025-12-18T04:46:30.803428 +AZURE,australiacentral,Standard_E64ds_v5,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:30.803840 +AZURE,australiacentral,Standard_E64ds_v5,reserved_1y,NA,3.28516,USD,Azure Retail Prices API,2025-12-18T04:46:31.750579 +AZURE,australiacentral,Standard_E64ds_v5,reserved_3y,NA,2.11583,USD,Azure Retail Prices API,2025-12-18T04:46:31.750586 +AZURE,australiacentral,Standard_E64ds_v5,spot,NA,1.028966,USD,Azure Retail Prices API,2025-12-18T04:46:30.803724 +AZURE,australiacentral,Standard_E64ds_v6,on_demand,NA,6.271,USD,Azure Retail Prices API,2025-12-18T04:46:30.803932 +AZURE,australiacentral,Standard_E64ds_v6,reserved_1y,NA,3.8879,USD,Azure Retail Prices API,2025-12-18T04:46:31.750777 +AZURE,australiacentral,Standard_E64ds_v6,reserved_3y,NA,2.445586,USD,Azure Retail Prices API,2025-12-18T04:46:31.750784 +AZURE,australiacentral,Standard_E64ds_v6,spot,NA,1.158881,USD,Azure Retail Prices API,2025-12-18T04:46:30.803774 +AZURE,australiacentral,Standard_E64s_v3,on_demand,NA,4.347,USD,Azure Retail Prices API,2025-12-18T04:46:30.803897 +AZURE,australiacentral,Standard_E64s_v3,reserved_1y,NA,2.830365,USD,Azure Retail Prices API,2025-12-18T04:46:31.750739 +AZURE,australiacentral,Standard_E64s_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:46:31.750746 +AZURE,australiacentral,Standard_E64s_v3,spot,NA,0.803326,USD,Azure Retail Prices API,2025-12-18T04:46:30.803763 +AZURE,australiacentral,Standard_E64s_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:30.803616 +AZURE,australiacentral,Standard_E64s_v4,reserved_1y,NA,2.84121,USD,Azure Retail Prices API,2025-12-18T04:46:31.750164 +AZURE,australiacentral,Standard_E64s_v4,reserved_3y,NA,1.816819,USD,Azure Retail Prices API,2025-12-18T04:46:31.750169 +AZURE,australiacentral,Standard_E64s_v4,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:30.804125 +AZURE,australiacentral,Standard_E64s_v5,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:30.804001 +AZURE,australiacentral,Standard_E64s_v5,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:46:31.750953 +AZURE,australiacentral,Standard_E64s_v5,reserved_3y,NA,1.787823,USD,Azure Retail Prices API,2025-12-18T04:46:31.750961 +AZURE,australiacentral,Standard_E64s_v5,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:30.803444 +AZURE,australiacentral,Standard_E80ids_v4,on_demand,NA,6.96,USD,Azure Retail Prices API,2025-12-18T04:46:30.804621 +AZURE,australiacentral,Standard_E80ids_v4,reserved_1y,NA,4.093607,USD,Azure Retail Prices API,2025-12-18T04:46:31.752282 +AZURE,australiacentral,Standard_E80ids_v4,reserved_3y,NA,2.617199,USD,Azure Retail Prices API,2025-12-18T04:46:31.752287 +AZURE,australiacentral,Standard_E80ids_v4,spot,NA,1.286208,USD,Azure Retail Prices API,2025-12-18T04:46:30.803678 +AZURE,australiacentral,Standard_E80is_v4,on_demand,NA,6.04,USD,Azure Retail Prices API,2025-12-18T04:46:30.804705 +AZURE,australiacentral,Standard_E80is_v4,reserved_1y,NA,3.552511,USD,Azure Retail Prices API,2025-12-18T04:46:31.752470 +AZURE,australiacentral,Standard_E80is_v4,reserved_3y,NA,2.270928,USD,Azure Retail Prices API,2025-12-18T04:46:31.752474 +AZURE,australiacentral,Standard_E80is_v4,spot,NA,1.116192,USD,Azure Retail Prices API,2025-12-18T04:46:30.804721 +AZURE,australiacentral,Standard_E8_v3,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:30.803817 +AZURE,australiacentral,Standard_E8_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:46:31.750541 +AZURE,australiacentral,Standard_E8_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:46:31.750546 +AZURE,australiacentral,Standard_E8_v3,spot,NA,0.117902,USD,Azure Retail Prices API,2025-12-18T04:46:30.804475 +AZURE,australiacentral,Standard_E8a_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:30.803881 +AZURE,australiacentral,Standard_E8a_v4,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:46:31.750726 +AZURE,australiacentral,Standard_E8a_v4,reserved_3y,NA,0.229528,USD,Azure Retail Prices API,2025-12-18T04:46:31.750732 +AZURE,australiacentral,Standard_E8a_v4,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:30.804730 +AZURE,australiacentral,Standard_E8ads_v5,on_demand,NA,0.636,USD,Azure Retail Prices API,2025-12-18T04:46:30.803786 +AZURE,australiacentral,Standard_E8ads_v5,reserved_1y,NA,0.375228,USD,Azure Retail Prices API,2025-12-18T04:46:31.750464 +AZURE,australiacentral,Standard_E8ads_v5,reserved_3y,NA,0.241667,USD,Azure Retail Prices API,2025-12-18T04:46:31.750470 +AZURE,australiacentral,Standard_E8ads_v5,spot,NA,0.117533,USD,Azure Retail Prices API,2025-12-18T04:46:30.804687 +AZURE,australiacentral,Standard_E8ads_v6,on_demand,NA,0.729,USD,Azure Retail Prices API,2025-12-18T04:46:30.803948 +AZURE,australiacentral,Standard_E8ads_v6,reserved_1y,NA,0.430023,USD,Azure Retail Prices API,2025-12-18T04:46:31.750831 +AZURE,australiacentral,Standard_E8ads_v6,reserved_3y,NA,0.276941,USD,Azure Retail Prices API,2025-12-18T04:46:31.750838 +AZURE,australiacentral,Standard_E8ads_v6,spot,NA,0.134719,USD,Azure Retail Prices API,2025-12-18T04:46:30.803889 +AZURE,australiacentral,Standard_E8as_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:30.804383 +AZURE,australiacentral,Standard_E8as_v4,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:46:31.751850 +AZURE,australiacentral,Standard_E8as_v4,reserved_3y,NA,0.229528,USD,Azure Retail Prices API,2025-12-18T04:46:31.751855 +AZURE,australiacentral,Standard_E8as_v4,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:30.804041 +AZURE,australiacentral,Standard_E8as_v5,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:46:30.804403 +AZURE,australiacentral,Standard_E8as_v5,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:46:31.752301 +AZURE,australiacentral,Standard_E8as_v5,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:46:31.752306 +AZURE,australiacentral,Standard_E8as_v5,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:46:30.804742 +AZURE,australiacentral,Standard_E8d_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:30.803495 +AZURE,australiacentral,Standard_E8d_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:31.749688 +AZURE,australiacentral,Standard_E8d_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:31.749694 +AZURE,australiacentral,Standard_E8d_v4,spot,NA,0.128621,USD,Azure Retail Prices API,2025-12-18T04:46:30.803929 +AZURE,australiacentral,Standard_E8ds_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:30.804348 +AZURE,australiacentral,Standard_E8ds_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:31.751793 +AZURE,australiacentral,Standard_E8ds_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:31.751801 +AZURE,australiacentral,Standard_E8ds_v4,spot,NA,0.128621,USD,Azure Retail Prices API,2025-12-18T04:46:30.803806 +AZURE,australiacentral,Standard_E8ds_v5,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:30.803519 +AZURE,australiacentral,Standard_E8ds_v5,reserved_1y,NA,0.410616,USD,Azure Retail Prices API,2025-12-18T04:46:31.749742 +AZURE,australiacentral,Standard_E8ds_v5,reserved_3y,NA,0.264498,USD,Azure Retail Prices API,2025-12-18T04:46:31.749747 +AZURE,australiacentral,Standard_E8ds_v5,spot,NA,0.128621,USD,Azure Retail Prices API,2025-12-18T04:46:30.804415 +AZURE,australiacentral,Standard_E8ds_v6,on_demand,NA,0.784,USD,Azure Retail Prices API,2025-12-18T04:46:30.803528 +AZURE,australiacentral,Standard_E8ds_v6,reserved_1y,NA,0.485959,USD,Azure Retail Prices API,2025-12-18T04:46:31.749752 +AZURE,australiacentral,Standard_E8ds_v6,reserved_3y,NA,0.305708,USD,Azure Retail Prices API,2025-12-18T04:46:31.749758 +AZURE,australiacentral,Standard_E8ds_v6,spot,NA,0.144883,USD,Azure Retail Prices API,2025-12-18T04:46:30.803920 +AZURE,australiacentral,Standard_E8s_v3,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:30.804333 +AZURE,australiacentral,Standard_E8s_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:46:31.751760 +AZURE,australiacentral,Standard_E8s_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:46:31.751765 +AZURE,australiacentral,Standard_E8s_v3,spot,NA,0.117902,USD,Azure Retail Prices API,2025-12-18T04:46:30.803480 +AZURE,australiacentral,Standard_E8s_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:30.804305 +AZURE,australiacentral,Standard_E8s_v4,reserved_1y,NA,0.355137,USD,Azure Retail Prices API,2025-12-18T04:46:31.751716 +AZURE,australiacentral,Standard_E8s_v4,reserved_3y,NA,0.227093,USD,Azure Retail Prices API,2025-12-18T04:46:31.751721 +AZURE,australiacentral,Standard_E8s_v4,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:30.804400 +AZURE,australiacentral,Standard_E8s_v5,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:30.804470 +AZURE,australiacentral,Standard_E8s_v5,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:46:31.751998 +AZURE,australiacentral,Standard_E8s_v5,reserved_3y,NA,0.223478,USD,Azure Retail Prices API,2025-12-18T04:46:31.752003 +AZURE,australiacentral,Standard_E8s_v5,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:30.804099 +AZURE,australiacentral,Standard_E96a_v4,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:30.804478 +AZURE,australiacentral,Standard_E96a_v4,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:46:31.752008 +AZURE,australiacentral,Standard_E96a_v4,reserved_3y,NA,2.754224,USD,Azure Retail Prices API,2025-12-18T04:46:31.752014 +AZURE,australiacentral,Standard_E96a_v4,spot,NA,1.33943,USD,Azure Retail Prices API,2025-12-18T04:46:30.804307 +AZURE,australiacentral,Standard_E96ads_v5,on_demand,NA,7.632,USD,Azure Retail Prices API,2025-12-18T04:46:30.803803 +AZURE,australiacentral,Standard_E96ads_v5,reserved_1y,NA,4.502854,USD,Azure Retail Prices API,2025-12-18T04:46:31.750519 +AZURE,australiacentral,Standard_E96ads_v5,reserved_3y,NA,2.900152,USD,Azure Retail Prices API,2025-12-18T04:46:31.750525 +AZURE,australiacentral,Standard_E96ads_v5,spot,NA,1.410394,USD,Azure Retail Prices API,2025-12-18T04:46:30.804189 +AZURE,australiacentral,Standard_E96ads_v6,on_demand,NA,8.746,USD,Azure Retail Prices API,2025-12-18T04:46:30.804790 +AZURE,australiacentral,Standard_E96ads_v6,reserved_1y,NA,5.159932,USD,Azure Retail Prices API,2025-12-18T04:46:31.752624 +AZURE,australiacentral,Standard_E96ads_v6,reserved_3y,NA,3.323326,USD,Azure Retail Prices API,2025-12-18T04:46:31.752629 +AZURE,australiacentral,Standard_E96ads_v6,spot,NA,1.616261,USD,Azure Retail Prices API,2025-12-18T04:46:30.803730 +AZURE,australiacentral,Standard_E96as_v4,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:30.804512 +AZURE,australiacentral,Standard_E96as_v4,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:46:31.752072 +AZURE,australiacentral,Standard_E96as_v4,reserved_3y,NA,2.754224,USD,Azure Retail Prices API,2025-12-18T04:46:31.752077 +AZURE,australiacentral,Standard_E96as_v4,spot,NA,1.33943,USD,Azure Retail Prices API,2025-12-18T04:46:30.804206 +AZURE,australiacentral,Standard_E96as_v5,on_demand,NA,6.528,USD,Azure Retail Prices API,2025-12-18T04:46:30.803474 +AZURE,australiacentral,Standard_E96as_v5,reserved_1y,NA,3.851484,USD,Azure Retail Prices API,2025-12-18T04:46:31.749634 +AZURE,australiacentral,Standard_E96as_v5,reserved_3y,NA,2.480632,USD,Azure Retail Prices API,2025-12-18T04:46:31.749651 +AZURE,australiacentral,Standard_E96as_v5,spot,NA,1.206374,USD,Azure Retail Prices API,2025-12-18T04:46:30.803619 +AZURE,australiacentral,Standard_E96ds_v5,on_demand,NA,8.352,USD,Azure Retail Prices API,2025-12-18T04:46:30.803860 +AZURE,australiacentral,Standard_E96ds_v5,reserved_1y,NA,4.927626,USD,Azure Retail Prices API,2025-12-18T04:46:31.750659 +AZURE,australiacentral,Standard_E96ds_v5,reserved_3y,NA,3.173744,USD,Azure Retail Prices API,2025-12-18T04:46:31.750667 +AZURE,australiacentral,Standard_E96ds_v5,spot,NA,1.54345,USD,Azure Retail Prices API,2025-12-18T04:46:30.803675 +AZURE,australiacentral,Standard_E96ds_v6,on_demand,NA,9.406,USD,Azure Retail Prices API,2025-12-18T04:46:30.803647 +AZURE,australiacentral,Standard_E96ds_v6,reserved_1y,NA,5.831735,USD,Azure Retail Prices API,2025-12-18T04:46:31.750217 +AZURE,australiacentral,Standard_E96ds_v6,reserved_3y,NA,3.668379,USD,Azure Retail Prices API,2025-12-18T04:46:31.750222 +AZURE,australiacentral,Standard_E96ds_v6,spot,NA,1.738229,USD,Azure Retail Prices API,2025-12-18T04:46:30.803937 +AZURE,australiacentral,Standard_E96s_v5,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:30.803424 +AZURE,australiacentral,Standard_E96s_v5,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:46:31.749514 +AZURE,australiacentral,Standard_E96s_v5,reserved_3y,NA,2.681773,USD,Azure Retail Prices API,2025-12-18T04:46:31.749532 +AZURE,australiacentral,Standard_E96s_v5,spot,NA,1.33943,USD,Azure Retail Prices API,2025-12-18T04:46:30.803737 +AZURE,australiacentral,Standard_EC16ads_v6,on_demand,NA,1.458,USD,Azure Retail Prices API,2025-12-18T04:46:30.804702 +AZURE,australiacentral,Standard_EC16ads_v6,reserved_1y,NA,0.859932,USD,Azure Retail Prices API,2025-12-18T04:46:31.752459 +AZURE,australiacentral,Standard_EC16ads_v6,reserved_3y,NA,0.553881,USD,Azure Retail Prices API,2025-12-18T04:46:31.752463 +AZURE,australiacentral,Standard_EC16ads_v6,spot,NA,0.269438,USD,Azure Retail Prices API,2025-12-18T04:46:30.804653 +AZURE,australiacentral,Standard_EC16as_v6,on_demand,NA,1.198,USD,Azure Retail Prices API,2025-12-18T04:46:30.804163 +AZURE,australiacentral,Standard_EC16as_v6,reserved_1y,NA,0.707078,USD,Azure Retail Prices API,2025-12-18T04:46:31.751459 +AZURE,australiacentral,Standard_EC16as_v6,reserved_3y,NA,0.455403,USD,Azure Retail Prices API,2025-12-18T04:46:31.751464 +AZURE,australiacentral,Standard_EC16as_v6,spot,NA,0.22139,USD,Azure Retail Prices API,2025-12-18T04:46:30.803978 +AZURE,australiacentral,Standard_EC2ads_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:30.804679 +AZURE,australiacentral,Standard_EC2ads_v6,reserved_1y,NA,0.107534,USD,Azure Retail Prices API,2025-12-18T04:46:31.752431 +AZURE,australiacentral,Standard_EC2ads_v6,reserved_3y,NA,0.069254,USD,Azure Retail Prices API,2025-12-18T04:46:31.752435 +AZURE,australiacentral,Standard_EC2ads_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:46:30.804545 +AZURE,australiacentral,Standard_EC2as_v6,on_demand,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:46:30.803477 +AZURE,australiacentral,Standard_EC2as_v6,reserved_1y,NA,0.088356,USD,Azure Retail Prices API,2025-12-18T04:46:31.749656 +AZURE,australiacentral,Standard_EC2as_v6,reserved_3y,NA,0.056925,USD,Azure Retail Prices API,2025-12-18T04:46:31.749662 +AZURE,australiacentral,Standard_EC2as_v6,spot,NA,0.02772,USD,Azure Retail Prices API,2025-12-18T04:46:30.804257 +AZURE,australiacentral,Standard_EC32ads_v6,on_demand,NA,2.915,USD,Azure Retail Prices API,2025-12-18T04:46:30.803846 +AZURE,australiacentral,Standard_EC32ads_v6,reserved_1y,NA,1.719977,USD,Azure Retail Prices API,2025-12-18T04:46:31.750605 +AZURE,australiacentral,Standard_EC32ads_v6,reserved_3y,NA,1.107763,USD,Azure Retail Prices API,2025-12-18T04:46:31.750613 +AZURE,australiacentral,Standard_EC32ads_v6,spot,NA,0.538692,USD,Azure Retail Prices API,2025-12-18T04:46:30.804532 +AZURE,australiacentral,Standard_EC32as_v6,on_demand,NA,2.397,USD,Azure Retail Prices API,2025-12-18T04:46:30.804003 +AZURE,australiacentral,Standard_EC32as_v6,reserved_1y,NA,1.414155,USD,Azure Retail Prices API,2025-12-18T04:46:31.750967 +AZURE,australiacentral,Standard_EC32as_v6,reserved_3y,NA,0.910769,USD,Azure Retail Prices API,2025-12-18T04:46:31.750973 +AZURE,australiacentral,Standard_EC32as_v6,spot,NA,0.442966,USD,Azure Retail Prices API,2025-12-18T04:46:30.804603 +AZURE,australiacentral,Standard_EC48ads_v6,on_demand,NA,4.373,USD,Azure Retail Prices API,2025-12-18T04:46:30.804082 +AZURE,australiacentral,Standard_EC48ads_v6,reserved_1y,NA,2.579909,USD,Azure Retail Prices API,2025-12-18T04:46:31.751317 +AZURE,australiacentral,Standard_EC48ads_v6,reserved_3y,NA,1.661682,USD,Azure Retail Prices API,2025-12-18T04:46:31.751332 +AZURE,australiacentral,Standard_EC48ads_v6,spot,NA,0.80813,USD,Azure Retail Prices API,2025-12-18T04:46:30.804203 +AZURE,australiacentral,Standard_EC48as_v6,on_demand,NA,3.595,USD,Azure Retail Prices API,2025-12-18T04:46:30.804299 +AZURE,australiacentral,Standard_EC48as_v6,reserved_1y,NA,2.121119,USD,Azure Retail Prices API,2025-12-18T04:46:31.751694 +AZURE,australiacentral,Standard_EC48as_v6,reserved_3y,NA,1.366172,USD,Azure Retail Prices API,2025-12-18T04:46:31.751699 +AZURE,australiacentral,Standard_EC48as_v6,spot,NA,0.664356,USD,Azure Retail Prices API,2025-12-18T04:46:30.804363 +AZURE,australiacentral,Standard_EC4ads_v6,on_demand,NA,0.364,USD,Azure Retail Prices API,2025-12-18T04:46:30.804018 +AZURE,australiacentral,Standard_EC4ads_v6,reserved_1y,NA,0.214954,USD,Azure Retail Prices API,2025-12-18T04:46:31.750992 +AZURE,australiacentral,Standard_EC4ads_v6,reserved_3y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:31.750999 +AZURE,australiacentral,Standard_EC4ads_v6,spot,NA,0.067267,USD,Azure Retail Prices API,2025-12-18T04:46:30.804795 +AZURE,australiacentral,Standard_EC4as_v6,on_demand,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:46:30.804302 +AZURE,australiacentral,Standard_EC4as_v6,reserved_1y,NA,0.176712,USD,Azure Retail Prices API,2025-12-18T04:46:31.751705 +AZURE,australiacentral,Standard_EC4as_v6,reserved_3y,NA,0.113851,USD,Azure Retail Prices API,2025-12-18T04:46:31.751710 +AZURE,australiacentral,Standard_EC4as_v6,spot,NA,0.05544,USD,Azure Retail Prices API,2025-12-18T04:46:30.803507 +AZURE,australiacentral,Standard_EC64ads_v6,on_demand,NA,5.83,USD,Azure Retail Prices API,2025-12-18T04:46:30.803456 +AZURE,australiacentral,Standard_EC64ads_v6,reserved_1y,NA,3.439954,USD,Azure Retail Prices API,2025-12-18T04:46:31.749592 +AZURE,australiacentral,Standard_EC64ads_v6,reserved_3y,NA,2.215563,USD,Azure Retail Prices API,2025-12-18T04:46:31.749597 +AZURE,australiacentral,Standard_EC64ads_v6,spot,NA,1.077384,USD,Azure Retail Prices API,2025-12-18T04:46:30.804052 +AZURE,australiacentral,Standard_EC64as_v6,on_demand,NA,4.794,USD,Azure Retail Prices API,2025-12-18T04:46:30.804154 +AZURE,australiacentral,Standard_EC64as_v6,reserved_1y,NA,2.828196,USD,Azure Retail Prices API,2025-12-18T04:46:31.751436 +AZURE,australiacentral,Standard_EC64as_v6,reserved_3y,NA,1.821575,USD,Azure Retail Prices API,2025-12-18T04:46:31.751443 +AZURE,australiacentral,Standard_EC64as_v6,spot,NA,0.885931,USD,Azure Retail Prices API,2025-12-18T04:46:30.804030 +AZURE,australiacentral,Standard_EC8ads_v6,on_demand,NA,0.729,USD,Azure Retail Prices API,2025-12-18T04:46:30.804668 +AZURE,australiacentral,Standard_EC8ads_v6,reserved_1y,NA,0.430023,USD,Azure Retail Prices API,2025-12-18T04:46:31.752411 +AZURE,australiacentral,Standard_EC8ads_v6,reserved_3y,NA,0.276941,USD,Azure Retail Prices API,2025-12-18T04:46:31.752416 +AZURE,australiacentral,Standard_EC8ads_v6,spot,NA,0.134719,USD,Azure Retail Prices API,2025-12-18T04:46:30.804713 +AZURE,australiacentral,Standard_EC8as_v6,on_demand,NA,0.599,USD,Azure Retail Prices API,2025-12-18T04:46:30.803945 +AZURE,australiacentral,Standard_EC8as_v6,reserved_1y,NA,0.353539,USD,Azure Retail Prices API,2025-12-18T04:46:31.750817 +AZURE,australiacentral,Standard_EC8as_v6,reserved_3y,NA,0.227702,USD,Azure Retail Prices API,2025-12-18T04:46:31.750823 +AZURE,australiacentral,Standard_EC8as_v6,spot,NA,0.110695,USD,Azure Retail Prices API,2025-12-18T04:46:30.804151 +AZURE,australiacentral,Standard_EC96ads_v6,on_demand,NA,8.746,USD,Azure Retail Prices API,2025-12-18T04:46:30.804734 +AZURE,australiacentral,Standard_EC96ads_v6,reserved_1y,NA,5.159932,USD,Azure Retail Prices API,2025-12-18T04:46:31.752516 +AZURE,australiacentral,Standard_EC96ads_v6,reserved_3y,NA,3.323326,USD,Azure Retail Prices API,2025-12-18T04:46:31.752521 +AZURE,australiacentral,Standard_EC96ads_v6,spot,NA,1.616261,USD,Azure Retail Prices API,2025-12-18T04:46:30.804015 +AZURE,australiacentral,Standard_EC96as_v6,on_demand,NA,7.19,USD,Azure Retail Prices API,2025-12-18T04:46:30.804360 +AZURE,australiacentral,Standard_EC96as_v6,reserved_1y,NA,4.242352,USD,Azure Retail Prices API,2025-12-18T04:46:31.751827 +AZURE,australiacentral,Standard_EC96as_v6,reserved_3y,NA,2.732344,USD,Azure Retail Prices API,2025-12-18T04:46:31.751833 +AZURE,australiacentral,Standard_EC96as_v6,spot,NA,1.328712,USD,Azure Retail Prices API,2025-12-18T04:46:30.804386 +AZURE,australiacentral,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379678 +AZURE,australiacentral,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379687 +AZURE,australiacentral,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379691 +AZURE,australiacentral,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379682 +AZURE,australiacentral,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381985 +AZURE,australiacentral,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381996 +AZURE,australiacentral,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382001 +AZURE,australiacentral,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381992 +AZURE,australiacentral,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384725 +AZURE,australiacentral,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384734 +AZURE,australiacentral,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384738 +AZURE,australiacentral,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384730 +AZURE,australiacentral,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385569 +AZURE,australiacentral,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385577 +AZURE,australiacentral,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385584 +AZURE,australiacentral,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385573 +AZURE,australiacentral,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378153 +AZURE,australiacentral,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378161 +AZURE,australiacentral,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378165 +AZURE,australiacentral,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378158 +AZURE,australiacentral,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386316 +AZURE,australiacentral,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386329 +AZURE,australiacentral,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386333 +AZURE,australiacentral,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386322 +AZURE,australiacentral,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380442 +AZURE,australiacentral,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380450 +AZURE,australiacentral,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380454 +AZURE,australiacentral,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380446 +AZURE,australiacentral,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383109 +AZURE,australiacentral,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383123 +AZURE,australiacentral,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383129 +AZURE,australiacentral,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383116 +AZURE,australiacentral,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387100 +AZURE,australiacentral,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387109 +AZURE,australiacentral,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387115 +AZURE,australiacentral,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387104 +AZURE,australiacentral,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388294 +AZURE,australiacentral,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388303 +AZURE,australiacentral,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388307 +AZURE,australiacentral,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388298 +AZURE,australiacentral,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378890 +AZURE,australiacentral,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378903 +AZURE,australiacentral,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378908 +AZURE,australiacentral,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378896 +AZURE,australiacentral,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381181 +AZURE,australiacentral,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381189 +AZURE,australiacentral,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381194 +AZURE,australiacentral,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381185 +AZURE,australiacentral,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383907 +AZURE,australiacentral,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383917 +AZURE,australiacentral,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383922 +AZURE,australiacentral,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383911 +AZURE,australiacentral,Standard_L16as_v3,on_demand,NA,1.496,USD,Azure Retail Prices API,2025-12-18T04:46:30.804186 +AZURE,australiacentral,Standard_L16as_v3,reserved_1y,NA,0.95742,USD,Azure Retail Prices API,2025-12-18T04:46:31.751501 +AZURE,australiacentral,Standard_L16as_v3,reserved_3y,NA,0.628311,USD,Azure Retail Prices API,2025-12-18T04:46:31.751507 +AZURE,australiacentral,Standard_L16as_v3,spot,NA,0.276461,USD,Azure Retail Prices API,2025-12-18T04:46:30.804238 +AZURE,australiacentral,Standard_L16s_v3,on_demand,NA,1.672,USD,Azure Retail Prices API,2025-12-18T04:46:30.804685 +AZURE,australiacentral,Standard_L16s_v3,reserved_1y,NA,1.070091,USD,Azure Retail Prices API,2025-12-18T04:46:31.752440 +AZURE,australiacentral,Standard_L16s_v3,reserved_3y,NA,0.702245,USD,Azure Retail Prices API,2025-12-18T04:46:31.752444 +AZURE,australiacentral,Standard_L16s_v3,spot,NA,0.308986,USD,Azure Retail Prices API,2025-12-18T04:46:30.804133 +AZURE,australiacentral,Standard_L32as_v3,on_demand,NA,2.992,USD,Azure Retail Prices API,2025-12-18T04:46:30.803857 +AZURE,australiacentral,Standard_L32as_v3,reserved_1y,NA,1.91484,USD,Azure Retail Prices API,2025-12-18T04:46:31.750645 +AZURE,australiacentral,Standard_L32as_v3,reserved_3y,NA,1.256621,USD,Azure Retail Prices API,2025-12-18T04:46:31.750652 +AZURE,australiacentral,Standard_L32as_v3,spot,NA,0.552922,USD,Azure Retail Prices API,2025-12-18T04:46:30.803601 +AZURE,australiacentral,Standard_L32s_v3,on_demand,NA,3.344,USD,Azure Retail Prices API,2025-12-18T04:46:30.803866 +AZURE,australiacentral,Standard_L32s_v3,reserved_1y,NA,2.140183,USD,Azure Retail Prices API,2025-12-18T04:46:31.750674 +AZURE,australiacentral,Standard_L32s_v3,reserved_3y,NA,1.40449,USD,Azure Retail Prices API,2025-12-18T04:46:31.750680 +AZURE,australiacentral,Standard_L32s_v3,spot,NA,0.617971,USD,Azure Retail Prices API,2025-12-18T04:46:30.804759 +AZURE,australiacentral,Standard_L48as_v3,on_demand,NA,4.488,USD,Azure Retail Prices API,2025-12-18T04:46:30.803875 +AZURE,australiacentral,Standard_L48as_v3,reserved_1y,NA,2.872374,USD,Azure Retail Prices API,2025-12-18T04:46:31.750700 +AZURE,australiacentral,Standard_L48as_v3,reserved_3y,NA,1.88497,USD,Azure Retail Prices API,2025-12-18T04:46:31.750707 +AZURE,australiacentral,Standard_L48as_v3,spot,NA,0.829382,USD,Azure Retail Prices API,2025-12-18T04:46:30.803940 +AZURE,australiacentral,Standard_L48s_v3,on_demand,NA,5.016,USD,Azure Retail Prices API,2025-12-18T04:46:30.804582 +AZURE,australiacentral,Standard_L48s_v3,reserved_1y,NA,3.210274,USD,Azure Retail Prices API,2025-12-18T04:46:31.752214 +AZURE,australiacentral,Standard_L48s_v3,reserved_3y,NA,2.106735,USD,Azure Retail Prices API,2025-12-18T04:46:31.752219 +AZURE,australiacentral,Standard_L48s_v3,spot,NA,0.926957,USD,Azure Retail Prices API,2025-12-18T04:46:30.804429 +AZURE,australiacentral,Standard_L64as_v3,on_demand,NA,5.984,USD,Azure Retail Prices API,2025-12-18T04:46:30.803656 +AZURE,australiacentral,Standard_L64as_v3,reserved_1y,NA,3.829795,USD,Azure Retail Prices API,2025-12-18T04:46:31.750249 +AZURE,australiacentral,Standard_L64as_v3,reserved_3y,NA,2.51328,USD,Azure Retail Prices API,2025-12-18T04:46:31.750255 +AZURE,australiacentral,Standard_L64as_v3,spot,NA,1.105843,USD,Azure Retail Prices API,2025-12-18T04:46:30.803604 +AZURE,australiacentral,Standard_L64s_v3,on_demand,NA,6.688,USD,Azure Retail Prices API,2025-12-18T04:46:30.803751 +AZURE,australiacentral,Standard_L64s_v3,reserved_1y,NA,4.280365,USD,Azure Retail Prices API,2025-12-18T04:46:31.750393 +AZURE,australiacentral,Standard_L64s_v3,reserved_3y,NA,2.808942,USD,Azure Retail Prices API,2025-12-18T04:46:31.750398 +AZURE,australiacentral,Standard_L64s_v3,spot,NA,1.235942,USD,Azure Retail Prices API,2025-12-18T04:46:30.804296 +AZURE,australiacentral,Standard_L80as_v3,on_demand,NA,7.48,USD,Azure Retail Prices API,2025-12-18T04:46:30.804572 +AZURE,australiacentral,Standard_L80as_v3,reserved_1y,NA,4.787215,USD,Azure Retail Prices API,2025-12-18T04:46:31.752183 +AZURE,australiacentral,Standard_L80as_v3,reserved_3y,NA,3.141591,USD,Azure Retail Prices API,2025-12-18T04:46:31.752188 +AZURE,australiacentral,Standard_L80as_v3,spot,NA,1.382304,USD,Azure Retail Prices API,2025-12-18T04:46:30.804420 +AZURE,australiacentral,Standard_L80s_v3,on_demand,NA,8.36,USD,Azure Retail Prices API,2025-12-18T04:46:30.804232 +AZURE,australiacentral,Standard_L80s_v3,reserved_1y,NA,5.350457,USD,Azure Retail Prices API,2025-12-18T04:46:31.751600 +AZURE,australiacentral,Standard_L80s_v3,reserved_3y,NA,3.511187,USD,Azure Retail Prices API,2025-12-18T04:46:31.751606 +AZURE,australiacentral,Standard_L80s_v3,spot,NA,1.544928,USD,Azure Retail Prices API,2025-12-18T04:46:30.803715 +AZURE,australiacentral,Standard_L8as_v3,on_demand,NA,0.748,USD,Azure Retail Prices API,2025-12-18T04:46:30.804160 +AZURE,australiacentral,Standard_L8as_v3,reserved_1y,NA,0.478767,USD,Azure Retail Prices API,2025-12-18T04:46:31.751449 +AZURE,australiacentral,Standard_L8as_v3,reserved_3y,NA,0.314155,USD,Azure Retail Prices API,2025-12-18T04:46:31.751454 +AZURE,australiacentral,Standard_L8as_v3,spot,NA,0.13823,USD,Azure Retail Prices API,2025-12-18T04:46:30.803854 +AZURE,australiacentral,Standard_L8s_v3,on_demand,NA,0.836,USD,Azure Retail Prices API,2025-12-18T04:46:30.803672 +AZURE,australiacentral,Standard_L8s_v3,reserved_1y,NA,0.535046,USD,Azure Retail Prices API,2025-12-18T04:46:31.750272 +AZURE,australiacentral,Standard_L8s_v3,reserved_3y,NA,0.351104,USD,Azure Retail Prices API,2025-12-18T04:46:31.750278 +AZURE,australiacentral,Standard_L8s_v3,spot,NA,0.154493,USD,Azure Retail Prices API,2025-12-18T04:46:30.804177 +AZURE,australiacentral,Standard_NC16as_T4_v3,on_demand,NA,1.565,USD,Azure Retail Prices API,2025-12-18T04:46:30.803815 +AZURE,australiacentral,Standard_NC16as_T4_v3,reserved_1y,NA,0.923059,USD,Azure Retail Prices API,2025-12-18T04:46:31.750530 +AZURE,australiacentral,Standard_NC16as_T4_v3,reserved_3y,NA,0.657116,USD,Azure Retail Prices API,2025-12-18T04:46:31.750536 +AZURE,australiacentral,Standard_NC16as_T4_v3,spot,NA,0.45385,USD,Azure Retail Prices API,2025-12-18T04:46:30.804562 +AZURE,australiacentral,Standard_NC4as_T4_v3,on_demand,NA,0.684,USD,Azure Retail Prices API,2025-12-18T04:46:30.804666 +AZURE,australiacentral,Standard_NC4as_T4_v3,reserved_1y,NA,0.403425,USD,Azure Retail Prices API,2025-12-18T04:46:31.752399 +AZURE,australiacentral,Standard_NC4as_T4_v3,reserved_3y,NA,0.287215,USD,Azure Retail Prices API,2025-12-18T04:46:31.752406 +AZURE,australiacentral,Standard_NC4as_T4_v3,spot,NA,0.19836,USD,Azure Retail Prices API,2025-12-18T04:46:30.804608 +AZURE,australiacentral,Standard_NC64as_T4_v3,on_demand,NA,5.645,USD,Azure Retail Prices API,2025-12-18T04:46:30.803734 +AZURE,australiacentral,Standard_NC64as_T4_v3,reserved_1y,NA,3.330822,USD,Azure Retail Prices API,2025-12-18T04:46:31.750349 +AZURE,australiacentral,Standard_NC64as_T4_v3,reserved_3y,NA,2.371081,USD,Azure Retail Prices API,2025-12-18T04:46:31.750355 +AZURE,australiacentral,Standard_NC64as_T4_v3,spot,NA,1.63705,USD,Azure Retail Prices API,2025-12-18T04:46:30.804485 +AZURE,australiacentral,Standard_NC8as_T4_v3,on_demand,NA,0.977,USD,Azure Retail Prices API,2025-12-18T04:46:30.804493 +AZURE,australiacentral,Standard_NC8as_T4_v3,reserved_1y,NA,0.576256,USD,Azure Retail Prices API,2025-12-18T04:46:31.752029 +AZURE,australiacentral,Standard_NC8as_T4_v3,reserved_3y,NA,0.410236,USD,Azure Retail Prices API,2025-12-18T04:46:31.752037 +AZURE,australiacentral,Standard_NC8as_T4_v3,spot,NA,0.28333,USD,Azure Retail Prices API,2025-12-18T04:46:30.804482 +AZURE,australiacentral2,Standard_D128ds_v6,on_demand,NA,9.967,USD,Azure Retail Prices API,2025-12-18T04:46:33.502041 +AZURE,australiacentral2,Standard_D128ds_v6,reserved_1y,NA,6.179795,USD,Azure Retail Prices API,2025-12-18T04:46:34.423268 +AZURE,australiacentral2,Standard_D128ds_v6,reserved_3y,NA,3.887253,USD,Azure Retail Prices API,2025-12-18T04:46:34.423273 +AZURE,australiacentral2,Standard_D128ds_v6,spot,NA,0.9967,USD,Azure Retail Prices API,2025-12-18T04:46:33.501740 +AZURE,australiacentral2,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488577 +AZURE,australiacentral2,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488585 +AZURE,australiacentral2,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488589 +AZURE,australiacentral2,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488581 +AZURE,australiacentral2,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489383 +AZURE,australiacentral2,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489391 +AZURE,australiacentral2,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489396 +AZURE,australiacentral2,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489387 +AZURE,australiacentral2,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490458 +AZURE,australiacentral2,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490466 +AZURE,australiacentral2,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490470 +AZURE,australiacentral2,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490462 +AZURE,australiacentral2,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491210 +AZURE,australiacentral2,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491218 +AZURE,australiacentral2,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491222 +AZURE,australiacentral2,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491214 +AZURE,australiacentral2,Standard_D16_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:33.501147 +AZURE,australiacentral2,Standard_D16_v3,reserved_1y,NA,0.627169,USD,Azure Retail Prices API,2025-12-18T04:46:34.422047 +AZURE,australiacentral2,Standard_D16_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:34.422049 +AZURE,australiacentral2,Standard_D16_v3,spot,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:46:33.501970 +AZURE,australiacentral2,Standard_D16a_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:33.502327 +AZURE,australiacentral2,Standard_D16a_v4,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:34.423816 +AZURE,australiacentral2,Standard_D16a_v4,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:46:34.423821 +AZURE,australiacentral2,Standard_D16a_v4,spot,NA,0.096,USD,Azure Retail Prices API,2025-12-18T04:46:33.501024 +AZURE,australiacentral2,Standard_D16ads_v5,on_demand,NA,1.04,USD,Azure Retail Prices API,2025-12-18T04:46:33.501037 +AZURE,australiacentral2,Standard_D16ads_v5,reserved_1y,NA,0.613584,USD,Azure Retail Prices API,2025-12-18T04:46:34.421959 +AZURE,australiacentral2,Standard_D16ads_v5,reserved_3y,NA,0.395205,USD,Azure Retail Prices API,2025-12-18T04:46:34.421963 +AZURE,australiacentral2,Standard_D16ads_v5,spot,NA,0.104,USD,Azure Retail Prices API,2025-12-18T04:46:33.501857 +AZURE,australiacentral2,Standard_D16ads_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:46:33.501570 +AZURE,australiacentral2,Standard_D16ads_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:46:34.422386 +AZURE,australiacentral2,Standard_D16ads_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:46:34.422390 +AZURE,australiacentral2,Standard_D16ads_v6,spot,NA,0.1146,USD,Azure Retail Prices API,2025-12-18T04:46:33.501932 +AZURE,australiacentral2,Standard_D16as_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:33.501910 +AZURE,australiacentral2,Standard_D16as_v4,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:34.422987 +AZURE,australiacentral2,Standard_D16as_v4,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:46:34.422992 +AZURE,australiacentral2,Standard_D16as_v4,spot,NA,0.096,USD,Azure Retail Prices API,2025-12-18T04:46:33.502136 +AZURE,australiacentral2,Standard_D16as_v5,on_demand,NA,0.864,USD,Azure Retail Prices API,2025-12-18T04:46:33.501880 +AZURE,australiacentral2,Standard_D16as_v5,reserved_1y,NA,0.509703,USD,Azure Retail Prices API,2025-12-18T04:46:34.422912 +AZURE,australiacentral2,Standard_D16as_v5,reserved_3y,NA,0.328311,USD,Azure Retail Prices API,2025-12-18T04:46:34.422918 +AZURE,australiacentral2,Standard_D16as_v5,spot,NA,0.0864,USD,Azure Retail Prices API,2025-12-18T04:46:33.501872 +AZURE,australiacentral2,Standard_D16d_v4,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:33.502390 +AZURE,australiacentral2,Standard_D16d_v4,reserved_1y,NA,0.667922,USD,Azure Retail Prices API,2025-12-18T04:46:34.423914 +AZURE,australiacentral2,Standard_D16d_v4,reserved_3y,NA,0.427131,USD,Azure Retail Prices API,2025-12-18T04:46:34.423917 +AZURE,australiacentral2,Standard_D16d_v4,spot,NA,0.1136,USD,Azure Retail Prices API,2025-12-18T04:46:33.502050 +AZURE,australiacentral2,Standard_D16ds_v4,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:33.501894 +AZURE,australiacentral2,Standard_D16ds_v4,reserved_1y,NA,0.667922,USD,Azure Retail Prices API,2025-12-18T04:46:34.422954 +AZURE,australiacentral2,Standard_D16ds_v4,reserved_3y,NA,0.427131,USD,Azure Retail Prices API,2025-12-18T04:46:34.422959 +AZURE,australiacentral2,Standard_D16ds_v4,spot,NA,0.1136,USD,Azure Retail Prices API,2025-12-18T04:46:33.501323 +AZURE,australiacentral2,Standard_D16ds_v5,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:33.502341 +AZURE,australiacentral2,Standard_D16ds_v5,reserved_1y,NA,0.670205,USD,Azure Retail Prices API,2025-12-18T04:46:34.423852 +AZURE,australiacentral2,Standard_D16ds_v5,reserved_3y,NA,0.431697,USD,Azure Retail Prices API,2025-12-18T04:46:34.423857 +AZURE,australiacentral2,Standard_D16ds_v5,spot,NA,0.1136,USD,Azure Retail Prices API,2025-12-18T04:46:33.502153 +AZURE,australiacentral2,Standard_D16ds_v6,on_demand,NA,1.246,USD,Azure Retail Prices API,2025-12-18T04:46:33.501897 +AZURE,australiacentral2,Standard_D16ds_v6,reserved_1y,NA,0.772489,USD,Azure Retail Prices API,2025-12-18T04:46:34.422965 +AZURE,australiacentral2,Standard_D16ds_v6,reserved_3y,NA,0.485921,USD,Azure Retail Prices API,2025-12-18T04:46:34.422969 +AZURE,australiacentral2,Standard_D16ds_v6,spot,NA,0.1246,USD,Azure Retail Prices API,2025-12-18T04:46:33.501211 +AZURE,australiacentral2,Standard_D16s_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:33.501538 +AZURE,australiacentral2,Standard_D16s_v3,reserved_1y,NA,0.627169,USD,Azure Retail Prices API,2025-12-18T04:46:34.422343 +AZURE,australiacentral2,Standard_D16s_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:34.422347 +AZURE,australiacentral2,Standard_D16s_v3,spot,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:46:33.502072 +AZURE,australiacentral2,Standard_D16s_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:33.501017 +AZURE,australiacentral2,Standard_D16s_v4,reserved_1y,NA,0.564498,USD,Azure Retail Prices API,2025-12-18T04:46:34.421940 +AZURE,australiacentral2,Standard_D16s_v4,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:34.421944 +AZURE,australiacentral2,Standard_D16s_v4,spot,NA,0.096,USD,Azure Retail Prices API,2025-12-18T04:46:33.501364 +AZURE,australiacentral2,Standard_D16s_v5,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:33.501773 +AZURE,australiacentral2,Standard_D16s_v5,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:34.422733 +AZURE,australiacentral2,Standard_D16s_v5,reserved_3y,NA,0.355213,USD,Azure Retail Prices API,2025-12-18T04:46:34.422741 +AZURE,australiacentral2,Standard_D16s_v5,spot,NA,0.096,USD,Azure Retail Prices API,2025-12-18T04:46:33.501987 +AZURE,australiacentral2,Standard_D2ads_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:33.502370 +AZURE,australiacentral2,Standard_D2ads_v6,reserved_1y,NA,0.084475,USD,Azure Retail Prices API,2025-12-18T04:46:34.423896 +AZURE,australiacentral2,Standard_D2ads_v6,reserved_3y,NA,0.054414,USD,Azure Retail Prices API,2025-12-18T04:46:34.423900 +AZURE,australiacentral2,Standard_D2ads_v6,spot,NA,0.0143,USD,Azure Retail Prices API,2025-12-18T04:46:33.501694 +AZURE,australiacentral2,Standard_D2ds_v6,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:46:33.500995 +AZURE,australiacentral2,Standard_D2ds_v6,reserved_1y,NA,0.096575,USD,Azure Retail Prices API,2025-12-18T04:46:34.421916 +AZURE,australiacentral2,Standard_D2ds_v6,reserved_3y,NA,0.060731,USD,Azure Retail Prices API,2025-12-18T04:46:34.421919 +AZURE,australiacentral2,Standard_D2ds_v6,spot,NA,0.0156,USD,Azure Retail Prices API,2025-12-18T04:46:33.501509 +AZURE,australiacentral2,Standard_D32_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:33.501629 +AZURE,australiacentral2,Standard_D32_v3,reserved_1y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:34.422517 +AZURE,australiacentral2,Standard_D32_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:34.422522 +AZURE,australiacentral2,Standard_D32_v3,spot,NA,0.2,USD,Azure Retail Prices API,2025-12-18T04:46:33.502279 +AZURE,australiacentral2,Standard_D32a_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:33.501861 +AZURE,australiacentral2,Standard_D32a_v4,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:34.422892 +AZURE,australiacentral2,Standard_D32a_v4,reserved_3y,NA,0.729604,USD,Azure Retail Prices API,2025-12-18T04:46:34.422897 +AZURE,australiacentral2,Standard_D32a_v4,spot,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:46:33.502128 +AZURE,australiacentral2,Standard_D32ads_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:46:33.501138 +AZURE,australiacentral2,Standard_D32ads_v5,reserved_1y,NA,1.227169,USD,Azure Retail Prices API,2025-12-18T04:46:34.422102 +AZURE,australiacentral2,Standard_D32ads_v5,reserved_3y,NA,0.790411,USD,Azure Retail Prices API,2025-12-18T04:46:34.422105 +AZURE,australiacentral2,Standard_D32ads_v5,spot,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:46:33.501687 +AZURE,australiacentral2,Standard_D32ads_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:33.502293 +AZURE,australiacentral2,Standard_D32ads_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:46:34.423715 +AZURE,australiacentral2,Standard_D32ads_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:46:34.423720 +AZURE,australiacentral2,Standard_D32ads_v6,spot,NA,0.2291,USD,Azure Retail Prices API,2025-12-18T04:46:33.501902 +AZURE,australiacentral2,Standard_D32as_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:33.501132 +AZURE,australiacentral2,Standard_D32as_v4,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:34.422036 +AZURE,australiacentral2,Standard_D32as_v4,reserved_3y,NA,0.729604,USD,Azure Retail Prices API,2025-12-18T04:46:34.422038 +AZURE,australiacentral2,Standard_D32as_v4,spot,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:46:33.501421 +AZURE,australiacentral2,Standard_D32as_v5,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:46:33.501709 +AZURE,australiacentral2,Standard_D32as_v5,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:46:34.423675 +AZURE,australiacentral2,Standard_D32as_v5,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:46:34.423680 +AZURE,australiacentral2,Standard_D32as_v5,spot,NA,0.1728,USD,Azure Retail Prices API,2025-12-18T04:46:33.502011 +AZURE,australiacentral2,Standard_D32d_v4,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:33.501788 +AZURE,australiacentral2,Standard_D32d_v4,reserved_1y,NA,1.335959,USD,Azure Retail Prices API,2025-12-18T04:46:34.422756 +AZURE,australiacentral2,Standard_D32d_v4,reserved_3y,NA,0.854262,USD,Azure Retail Prices API,2025-12-18T04:46:34.422761 +AZURE,australiacentral2,Standard_D32d_v4,spot,NA,0.2272,USD,Azure Retail Prices API,2025-12-18T04:46:33.502381 +AZURE,australiacentral2,Standard_D32ds_v4,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:33.501796 +AZURE,australiacentral2,Standard_D32ds_v4,reserved_1y,NA,1.335959,USD,Azure Retail Prices API,2025-12-18T04:46:34.422776 +AZURE,australiacentral2,Standard_D32ds_v4,reserved_3y,NA,0.854262,USD,Azure Retail Prices API,2025-12-18T04:46:34.422781 +AZURE,australiacentral2,Standard_D32ds_v4,spot,NA,0.2272,USD,Azure Retail Prices API,2025-12-18T04:46:33.501998 +AZURE,australiacentral2,Standard_D32ds_v5,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:33.502361 +AZURE,australiacentral2,Standard_D32ds_v5,reserved_1y,NA,1.340525,USD,Azure Retail Prices API,2025-12-18T04:46:34.423890 +AZURE,australiacentral2,Standard_D32ds_v5,reserved_3y,NA,0.863356,USD,Azure Retail Prices API,2025-12-18T04:46:34.423892 +AZURE,australiacentral2,Standard_D32ds_v5,spot,NA,0.2272,USD,Azure Retail Prices API,2025-12-18T04:46:33.501755 +AZURE,australiacentral2,Standard_D32ds_v6,on_demand,NA,2.492,USD,Azure Retail Prices API,2025-12-18T04:46:33.501599 +AZURE,australiacentral2,Standard_D32ds_v6,reserved_1y,NA,1.544977,USD,Azure Retail Prices API,2025-12-18T04:46:34.422458 +AZURE,australiacentral2,Standard_D32ds_v6,reserved_3y,NA,0.971804,USD,Azure Retail Prices API,2025-12-18T04:46:34.422462 +AZURE,australiacentral2,Standard_D32ds_v6,spot,NA,0.2492,USD,Azure Retail Prices API,2025-12-18T04:46:33.501779 +AZURE,australiacentral2,Standard_D32s_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:33.501093 +AZURE,australiacentral2,Standard_D32s_v3,reserved_1y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:34.422007 +AZURE,australiacentral2,Standard_D32s_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:34.422010 +AZURE,australiacentral2,Standard_D32s_v3,spot,NA,0.2,USD,Azure Retail Prices API,2025-12-18T04:46:33.501981 +AZURE,australiacentral2,Standard_D32s_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:33.501103 +AZURE,australiacentral2,Standard_D32s_v4,reserved_1y,NA,1.128995,USD,Azure Retail Prices API,2025-12-18T04:46:34.422018 +AZURE,australiacentral2,Standard_D32s_v4,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:34.422021 +AZURE,australiacentral2,Standard_D32s_v4,spot,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:46:33.501989 +AZURE,australiacentral2,Standard_D32s_v5,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:33.502384 +AZURE,australiacentral2,Standard_D32s_v5,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:34.423909 +AZURE,australiacentral2,Standard_D32s_v5,reserved_3y,NA,0.710388,USD,Azure Retail Prices API,2025-12-18T04:46:34.423912 +AZURE,australiacentral2,Standard_D32s_v5,spot,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:46:33.502097 +AZURE,australiacentral2,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485688 +AZURE,australiacentral2,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485696 +AZURE,australiacentral2,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485700 +AZURE,australiacentral2,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485692 +AZURE,australiacentral2,Standard_D48a_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:33.501171 +AZURE,australiacentral2,Standard_D48a_v4,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:34.422063 +AZURE,australiacentral2,Standard_D48a_v4,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:34.422066 +AZURE,australiacentral2,Standard_D48a_v4,spot,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:46:33.501746 +AZURE,australiacentral2,Standard_D48ads_v5,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:46:33.501573 +AZURE,australiacentral2,Standard_D48ads_v5,reserved_1y,NA,1.840753,USD,Azure Retail Prices API,2025-12-18T04:46:34.422395 +AZURE,australiacentral2,Standard_D48ads_v5,reserved_3y,NA,1.185616,USD,Azure Retail Prices API,2025-12-18T04:46:34.422399 +AZURE,australiacentral2,Standard_D48ads_v5,spot,NA,0.312,USD,Azure Retail Prices API,2025-12-18T04:46:33.501431 +AZURE,australiacentral2,Standard_D48ads_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:46:33.501837 +AZURE,australiacentral2,Standard_D48ads_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:46:34.422841 +AZURE,australiacentral2,Standard_D48ads_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:46:34.422846 +AZURE,australiacentral2,Standard_D48ads_v6,spot,NA,0.3437,USD,Azure Retail Prices API,2025-12-18T04:46:33.502299 +AZURE,australiacentral2,Standard_D48as_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:33.501639 +AZURE,australiacentral2,Standard_D48as_v4,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:34.422527 +AZURE,australiacentral2,Standard_D48as_v4,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:34.422532 +AZURE,australiacentral2,Standard_D48as_v4,spot,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:46:33.502006 +AZURE,australiacentral2,Standard_D48as_v5,on_demand,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:46:33.501541 +AZURE,australiacentral2,Standard_D48as_v5,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:46:34.423320 +AZURE,australiacentral2,Standard_D48as_v5,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:46:34.423325 +AZURE,australiacentral2,Standard_D48as_v5,spot,NA,0.2592,USD,Azure Retail Prices API,2025-12-18T04:46:33.501441 +AZURE,australiacentral2,Standard_D48d_v4,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:33.501799 +AZURE,australiacentral2,Standard_D48d_v4,reserved_1y,NA,2.003881,USD,Azure Retail Prices API,2025-12-18T04:46:34.422787 +AZURE,australiacentral2,Standard_D48d_v4,reserved_3y,NA,1.281393,USD,Azure Retail Prices API,2025-12-18T04:46:34.422792 +AZURE,australiacentral2,Standard_D48d_v4,spot,NA,0.3408,USD,Azure Retail Prices API,2025-12-18T04:46:33.501489 +AZURE,australiacentral2,Standard_D48ds_v4,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:33.502225 +AZURE,australiacentral2,Standard_D48ds_v4,reserved_1y,NA,2.003881,USD,Azure Retail Prices API,2025-12-18T04:46:34.423582 +AZURE,australiacentral2,Standard_D48ds_v4,reserved_3y,NA,1.281393,USD,Azure Retail Prices API,2025-12-18T04:46:34.423587 +AZURE,australiacentral2,Standard_D48ds_v4,spot,NA,0.3408,USD,Azure Retail Prices API,2025-12-18T04:46:33.501954 +AZURE,australiacentral2,Standard_D48ds_v5,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:33.502296 +AZURE,australiacentral2,Standard_D48ds_v5,reserved_1y,NA,2.010731,USD,Azure Retail Prices API,2025-12-18T04:46:34.423725 +AZURE,australiacentral2,Standard_D48ds_v5,reserved_3y,NA,1.295053,USD,Azure Retail Prices API,2025-12-18T04:46:34.423733 +AZURE,australiacentral2,Standard_D48ds_v5,spot,NA,0.3408,USD,Azure Retail Prices API,2025-12-18T04:46:33.501162 +AZURE,australiacentral2,Standard_D48ds_v6,on_demand,NA,3.738,USD,Azure Retail Prices API,2025-12-18T04:46:33.501877 +AZURE,australiacentral2,Standard_D48ds_v6,reserved_1y,NA,2.317466,USD,Azure Retail Prices API,2025-12-18T04:46:34.422901 +AZURE,australiacentral2,Standard_D48ds_v6,reserved_3y,NA,1.457725,USD,Azure Retail Prices API,2025-12-18T04:46:34.422907 +AZURE,australiacentral2,Standard_D48ds_v6,spot,NA,0.3738,USD,Azure Retail Prices API,2025-12-18T04:46:33.501411 +AZURE,australiacentral2,Standard_D48s_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:33.501522 +AZURE,australiacentral2,Standard_D48s_v4,reserved_1y,NA,1.693493,USD,Azure Retail Prices API,2025-12-18T04:46:34.422319 +AZURE,australiacentral2,Standard_D48s_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:34.422322 +AZURE,australiacentral2,Standard_D48s_v4,spot,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:46:33.502108 +AZURE,australiacentral2,Standard_D48s_v5,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:33.501916 +AZURE,australiacentral2,Standard_D48s_v5,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:34.422997 +AZURE,australiacentral2,Standard_D48s_v5,reserved_3y,NA,1.065601,USD,Azure Retail Prices API,2025-12-18T04:46:34.423002 +AZURE,australiacentral2,Standard_D48s_v5,spot,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:46:33.501493 +AZURE,australiacentral2,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486499 +AZURE,australiacentral2,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486511 +AZURE,australiacentral2,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486518 +AZURE,australiacentral2,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486505 +AZURE,australiacentral2,Standard_D4a_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:33.502260 +AZURE,australiacentral2,Standard_D4a_v4,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:46:34.423632 +AZURE,australiacentral2,Standard_D4a_v4,reserved_3y,NA,0.09121,USD,Azure Retail Prices API,2025-12-18T04:46:34.423638 +AZURE,australiacentral2,Standard_D4a_v4,spot,NA,0.024,USD,Azure Retail Prices API,2025-12-18T04:46:33.501072 +AZURE,australiacentral2,Standard_D4ads_v5,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:46:33.502180 +AZURE,australiacentral2,Standard_D4ads_v5,reserved_1y,NA,0.153425,USD,Azure Retail Prices API,2025-12-18T04:46:34.423860 +AZURE,australiacentral2,Standard_D4ads_v5,reserved_3y,NA,0.098782,USD,Azure Retail Prices API,2025-12-18T04:46:34.423863 +AZURE,australiacentral2,Standard_D4ads_v5,spot,NA,0.026,USD,Azure Retail Prices API,2025-12-18T04:46:33.502166 +AZURE,australiacentral2,Standard_D4ads_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:33.502030 +AZURE,australiacentral2,Standard_D4ads_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:46:34.423226 +AZURE,australiacentral2,Standard_D4ads_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:46:34.423231 +AZURE,australiacentral2,Standard_D4ads_v6,spot,NA,0.0286,USD,Azure Retail Prices API,2025-12-18T04:46:33.501661 +AZURE,australiacentral2,Standard_D4as_v5,on_demand,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:46:33.501177 +AZURE,australiacentral2,Standard_D4as_v5,reserved_1y,NA,0.127397,USD,Azure Retail Prices API,2025-12-18T04:46:34.423040 +AZURE,australiacentral2,Standard_D4as_v5,reserved_3y,NA,0.082078,USD,Azure Retail Prices API,2025-12-18T04:46:34.423045 +AZURE,australiacentral2,Standard_D4as_v5,spot,NA,0.0216,USD,Azure Retail Prices API,2025-12-18T04:46:33.501913 +AZURE,australiacentral2,Standard_D4d_v4,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:33.501888 +AZURE,australiacentral2,Standard_D4d_v4,reserved_1y,NA,0.167009,USD,Azure Retail Prices API,2025-12-18T04:46:34.422933 +AZURE,australiacentral2,Standard_D4d_v4,reserved_3y,NA,0.106773,USD,Azure Retail Prices API,2025-12-18T04:46:34.422937 +AZURE,australiacentral2,Standard_D4d_v4,spot,NA,0.0284,USD,Azure Retail Prices API,2025-12-18T04:46:33.501467 +AZURE,australiacentral2,Standard_D4ds_v4,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:33.501480 +AZURE,australiacentral2,Standard_D4ds_v4,reserved_1y,NA,0.167009,USD,Azure Retail Prices API,2025-12-18T04:46:34.422289 +AZURE,australiacentral2,Standard_D4ds_v4,reserved_3y,NA,0.106773,USD,Azure Retail Prices API,2025-12-18T04:46:34.422293 +AZURE,australiacentral2,Standard_D4ds_v4,spot,NA,0.0284,USD,Azure Retail Prices API,2025-12-18T04:46:33.501077 +AZURE,australiacentral2,Standard_D4ds_v5,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:33.501644 +AZURE,australiacentral2,Standard_D4ds_v5,reserved_1y,NA,0.16758,USD,Azure Retail Prices API,2025-12-18T04:46:34.422537 +AZURE,australiacentral2,Standard_D4ds_v5,reserved_3y,NA,0.107915,USD,Azure Retail Prices API,2025-12-18T04:46:34.422543 +AZURE,australiacentral2,Standard_D4ds_v5,spot,NA,0.0284,USD,Azure Retail Prices API,2025-12-18T04:46:33.501317 +AZURE,australiacentral2,Standard_D4ds_v6,on_demand,NA,0.311,USD,Azure Retail Prices API,2025-12-18T04:46:33.501722 +AZURE,australiacentral2,Standard_D4ds_v6,reserved_1y,NA,0.193151,USD,Azure Retail Prices API,2025-12-18T04:46:34.422635 +AZURE,australiacentral2,Standard_D4ds_v6,reserved_3y,NA,0.121461,USD,Azure Retail Prices API,2025-12-18T04:46:34.422639 +AZURE,australiacentral2,Standard_D4ds_v6,spot,NA,0.0311,USD,Azure Retail Prices API,2025-12-18T04:46:33.502161 +AZURE,australiacentral2,Standard_D4s_v3,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:46:33.501267 +AZURE,australiacentral2,Standard_D4s_v3,reserved_1y,NA,0.156849,USD,Azure Retail Prices API,2025-12-18T04:46:34.422136 +AZURE,australiacentral2,Standard_D4s_v3,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:46:34.422139 +AZURE,australiacentral2,Standard_D4s_v3,spot,NA,0.025,USD,Azure Retail Prices API,2025-12-18T04:46:33.501875 +AZURE,australiacentral2,Standard_D4s_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:33.501621 +AZURE,australiacentral2,Standard_D4s_v4,reserved_1y,NA,0.141096,USD,Azure Retail Prices API,2025-12-18T04:46:34.422497 +AZURE,australiacentral2,Standard_D4s_v4,reserved_3y,NA,0.090259,USD,Azure Retail Prices API,2025-12-18T04:46:34.422503 +AZURE,australiacentral2,Standard_D4s_v4,spot,NA,0.024,USD,Azure Retail Prices API,2025-12-18T04:46:33.500998 +AZURE,australiacentral2,Standard_D4s_v5,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:33.501551 +AZURE,australiacentral2,Standard_D4s_v5,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:46:34.422360 +AZURE,australiacentral2,Standard_D4s_v5,reserved_3y,NA,0.088813,USD,Azure Retail Prices API,2025-12-18T04:46:34.422364 +AZURE,australiacentral2,Standard_D4s_v5,spot,NA,0.024,USD,Azure Retail Prices API,2025-12-18T04:46:33.501264 +AZURE,australiacentral2,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487810 +AZURE,australiacentral2,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487818 +AZURE,australiacentral2,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487822 +AZURE,australiacentral2,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487814 +AZURE,australiacentral2,Standard_D64_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:33.501743 +AZURE,australiacentral2,Standard_D64_v3,reserved_1y,NA,2.508676,USD,Azure Retail Prices API,2025-12-18T04:46:34.422684 +AZURE,australiacentral2,Standard_D64_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:34.422689 +AZURE,australiacentral2,Standard_D64_v3,spot,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:46:33.501391 +AZURE,australiacentral2,Standard_D64a_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:33.501243 +AZURE,australiacentral2,Standard_D64a_v4,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:34.422113 +AZURE,australiacentral2,Standard_D64a_v4,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:46:34.422116 +AZURE,australiacentral2,Standard_D64a_v4,spot,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:46:33.501976 +AZURE,australiacentral2,Standard_D64ads_v5,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:46:33.501398 +AZURE,australiacentral2,Standard_D64ads_v5,reserved_1y,NA,2.454452,USD,Azure Retail Prices API,2025-12-18T04:46:34.422232 +AZURE,australiacentral2,Standard_D64ads_v5,reserved_3y,NA,1.580784,USD,Azure Retail Prices API,2025-12-18T04:46:34.422234 +AZURE,australiacentral2,Standard_D64ads_v5,spot,NA,0.416,USD,Azure Retail Prices API,2025-12-18T04:46:33.502130 +AZURE,australiacentral2,Standard_D64ads_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:46:33.502302 +AZURE,australiacentral2,Standard_D64ads_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:46:34.423738 +AZURE,australiacentral2,Standard_D64ads_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:46:34.423744 +AZURE,australiacentral2,Standard_D64ads_v6,spot,NA,0.4582,USD,Azure Retail Prices API,2025-12-18T04:46:33.501605 +AZURE,australiacentral2,Standard_D64as_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:33.502217 +AZURE,australiacentral2,Standard_D64as_v4,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:34.423571 +AZURE,australiacentral2,Standard_D64as_v4,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:46:34.423576 +AZURE,australiacentral2,Standard_D64as_v4,spot,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:46:33.501192 +AZURE,australiacentral2,Standard_D64as_v5,on_demand,NA,6.4,USD,Azure Retail Prices API,2025-12-18T04:46:33.501608 +AZURE,australiacentral2,Standard_D64as_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:46:34.422508 +AZURE,australiacentral2,Standard_D64as_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:46:34.422513 +AZURE,australiacentral2,Standard_D64as_v5,spot,NA,0.3456,USD,Azure Retail Prices API,2025-12-18T04:46:33.501654 +AZURE,australiacentral2,Standard_D64d_v4,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:33.502014 +AZURE,australiacentral2,Standard_D64d_v4,reserved_1y,NA,2.671918,USD,Azure Retail Prices API,2025-12-18T04:46:34.423188 +AZURE,australiacentral2,Standard_D64d_v4,reserved_3y,NA,1.708562,USD,Azure Retail Prices API,2025-12-18T04:46:34.423192 +AZURE,australiacentral2,Standard_D64d_v4,spot,NA,0.4544,USD,Azure Retail Prices API,2025-12-18T04:46:33.501158 +AZURE,australiacentral2,Standard_D64ds_v4,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:33.501758 +AZURE,australiacentral2,Standard_D64ds_v4,reserved_1y,NA,2.671918,USD,Azure Retail Prices API,2025-12-18T04:46:34.422704 +AZURE,australiacentral2,Standard_D64ds_v4,reserved_3y,NA,1.708562,USD,Azure Retail Prices API,2025-12-18T04:46:34.422709 +AZURE,australiacentral2,Standard_D64ds_v4,spot,NA,0.4544,USD,Azure Retail Prices API,2025-12-18T04:46:33.502220 +AZURE,australiacentral2,Standard_D64ds_v5,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:33.501979 +AZURE,australiacentral2,Standard_D64ds_v5,reserved_1y,NA,2.680936,USD,Azure Retail Prices API,2025-12-18T04:46:34.423148 +AZURE,australiacentral2,Standard_D64ds_v5,reserved_3y,NA,1.726712,USD,Azure Retail Prices API,2025-12-18T04:46:34.423153 +AZURE,australiacentral2,Standard_D64ds_v5,spot,NA,0.4544,USD,Azure Retail Prices API,2025-12-18T04:46:33.502177 +AZURE,australiacentral2,Standard_D64ds_v6,on_demand,NA,4.984,USD,Azure Retail Prices API,2025-12-18T04:46:33.501388 +AZURE,australiacentral2,Standard_D64ds_v6,reserved_1y,NA,3.08984,USD,Azure Retail Prices API,2025-12-18T04:46:34.422225 +AZURE,australiacentral2,Standard_D64ds_v6,reserved_3y,NA,1.943645,USD,Azure Retail Prices API,2025-12-18T04:46:34.422228 +AZURE,australiacentral2,Standard_D64ds_v6,spot,NA,0.4984,USD,Azure Retail Prices API,2025-12-18T04:46:33.501030 +AZURE,australiacentral2,Standard_D64s_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:33.502339 +AZURE,australiacentral2,Standard_D64s_v3,reserved_1y,NA,2.508676,USD,Azure Retail Prices API,2025-12-18T04:46:34.423846 +AZURE,australiacentral2,Standard_D64s_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:34.423849 +AZURE,australiacentral2,Standard_D64s_v3,spot,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:46:33.502206 +AZURE,australiacentral2,Standard_D64s_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:33.501451 +AZURE,australiacentral2,Standard_D64s_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:46:34.422261 +AZURE,australiacentral2,Standard_D64s_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:34.422264 +AZURE,australiacentral2,Standard_D64s_v4,spot,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:46:33.501458 +AZURE,australiacentral2,Standard_D64s_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:33.501793 +AZURE,australiacentral2,Standard_D64s_v5,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:34.422766 +AZURE,australiacentral2,Standard_D64s_v5,reserved_3y,NA,1.420814,USD,Azure Retail Prices API,2025-12-18T04:46:34.422771 +AZURE,australiacentral2,Standard_D64s_v5,spot,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:46:33.501515 +AZURE,australiacentral2,Standard_D8_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:33.502198 +AZURE,australiacentral2,Standard_D8_v3,reserved_1y,NA,0.313584,USD,Azure Retail Prices API,2025-12-18T04:46:34.423550 +AZURE,australiacentral2,Standard_D8_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:34.423555 +AZURE,australiacentral2,Standard_D8_v3,spot,NA,0.05,USD,Azure Retail Prices API,2025-12-18T04:46:33.501296 +AZURE,australiacentral2,Standard_D8a_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:33.502147 +AZURE,australiacentral2,Standard_D8a_v4,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:34.423442 +AZURE,australiacentral2,Standard_D8a_v4,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:46:34.423448 +AZURE,australiacentral2,Standard_D8a_v4,spot,NA,0.048,USD,Azure Retail Prices API,2025-12-18T04:46:33.502266 +AZURE,australiacentral2,Standard_D8ads_v5,on_demand,NA,0.52,USD,Azure Retail Prices API,2025-12-18T04:46:33.501834 +AZURE,australiacentral2,Standard_D8ads_v5,reserved_1y,NA,0.306849,USD,Azure Retail Prices API,2025-12-18T04:46:34.422831 +AZURE,australiacentral2,Standard_D8ads_v5,reserved_3y,NA,0.197603,USD,Azure Retail Prices API,2025-12-18T04:46:34.422836 +AZURE,australiacentral2,Standard_D8ads_v5,spot,NA,0.052,USD,Azure Retail Prices API,2025-12-18T04:46:33.501046 +AZURE,australiacentral2,Standard_D8ads_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:46:33.501014 +AZURE,australiacentral2,Standard_D8ads_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:46:34.421934 +AZURE,australiacentral2,Standard_D8ads_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:46:34.421937 +AZURE,australiacentral2,Standard_D8ads_v6,spot,NA,0.0573,USD,Azure Retail Prices API,2025-12-18T04:46:33.502078 +AZURE,australiacentral2,Standard_D8as_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:33.501548 +AZURE,australiacentral2,Standard_D8as_v4,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:34.422351 +AZURE,australiacentral2,Standard_D8as_v4,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:46:34.422355 +AZURE,australiacentral2,Standard_D8as_v4,spot,NA,0.048,USD,Azure Retail Prices API,2025-12-18T04:46:33.501418 +AZURE,australiacentral2,Standard_D8as_v5,on_demand,NA,0.432,USD,Azure Retail Prices API,2025-12-18T04:46:33.501040 +AZURE,australiacentral2,Standard_D8as_v5,reserved_1y,NA,0.254909,USD,Azure Retail Prices API,2025-12-18T04:46:34.421966 +AZURE,australiacentral2,Standard_D8as_v5,reserved_3y,NA,0.164155,USD,Azure Retail Prices API,2025-12-18T04:46:34.421968 +AZURE,australiacentral2,Standard_D8as_v5,spot,NA,0.0432,USD,Azure Retail Prices API,2025-12-18T04:46:33.502376 +AZURE,australiacentral2,Standard_D8d_v4,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501582 +AZURE,australiacentral2,Standard_D8d_v4,reserved_1y,NA,0.334018,USD,Azure Retail Prices API,2025-12-18T04:46:34.422413 +AZURE,australiacentral2,Standard_D8d_v4,reserved_3y,NA,0.213584,USD,Azure Retail Prices API,2025-12-18T04:46:34.422435 +AZURE,australiacentral2,Standard_D8d_v4,spot,NA,0.0568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501063 +AZURE,australiacentral2,Standard_D8ds_v4,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501665 +AZURE,australiacentral2,Standard_D8ds_v4,reserved_1y,NA,0.334018,USD,Azure Retail Prices API,2025-12-18T04:46:34.422560 +AZURE,australiacentral2,Standard_D8ds_v4,reserved_3y,NA,0.213584,USD,Azure Retail Prices API,2025-12-18T04:46:34.422564 +AZURE,australiacentral2,Standard_D8ds_v4,spot,NA,0.0568,USD,Azure Retail Prices API,2025-12-18T04:46:33.502099 +AZURE,australiacentral2,Standard_D8ds_v5,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501360 +AZURE,australiacentral2,Standard_D8ds_v5,reserved_1y,NA,0.33516,USD,Azure Retail Prices API,2025-12-18T04:46:34.422219 +AZURE,australiacentral2,Standard_D8ds_v5,reserved_3y,NA,0.21583,USD,Azure Retail Prices API,2025-12-18T04:46:34.422222 +AZURE,australiacentral2,Standard_D8ds_v5,spot,NA,0.0568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501973 +AZURE,australiacentral2,Standard_D8ds_v6,on_demand,NA,0.623,USD,Azure Retail Prices API,2025-12-18T04:46:33.500975 +AZURE,australiacentral2,Standard_D8ds_v6,reserved_1y,NA,0.386187,USD,Azure Retail Prices API,2025-12-18T04:46:34.421892 +AZURE,australiacentral2,Standard_D8ds_v6,reserved_3y,NA,0.24296,USD,Azure Retail Prices API,2025-12-18T04:46:34.421905 +AZURE,australiacentral2,Standard_D8ds_v6,spot,NA,0.0623,USD,Azure Retail Prices API,2025-12-18T04:46:33.501168 +AZURE,australiacentral2,Standard_D8s_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:33.502025 +AZURE,australiacentral2,Standard_D8s_v3,reserved_1y,NA,0.313584,USD,Azure Retail Prices API,2025-12-18T04:46:34.423216 +AZURE,australiacentral2,Standard_D8s_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:34.423221 +AZURE,australiacentral2,Standard_D8s_v3,spot,NA,0.05,USD,Azure Retail Prices API,2025-12-18T04:46:33.501592 +AZURE,australiacentral2,Standard_D8s_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:33.501529 +AZURE,australiacentral2,Standard_D8s_v4,reserved_1y,NA,0.282192,USD,Azure Retail Prices API,2025-12-18T04:46:34.422325 +AZURE,australiacentral2,Standard_D8s_v4,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:34.422329 +AZURE,australiacentral2,Standard_D8s_v4,spot,NA,0.048,USD,Azure Retail Prices API,2025-12-18T04:46:33.501700 +AZURE,australiacentral2,Standard_D8s_v5,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:33.502155 +AZURE,australiacentral2,Standard_D8s_v5,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:34.423466 +AZURE,australiacentral2,Standard_D8s_v5,reserved_3y,NA,0.177588,USD,Azure Retail Prices API,2025-12-18T04:46:34.423471 +AZURE,australiacentral2,Standard_D8s_v5,spot,NA,0.048,USD,Azure Retail Prices API,2025-12-18T04:46:33.501560 +AZURE,australiacentral2,Standard_D96a_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:33.501165 +AZURE,australiacentral2,Standard_D96a_v4,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:34.422057 +AZURE,australiacentral2,Standard_D96a_v4,reserved_3y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:34.422060 +AZURE,australiacentral2,Standard_D96a_v4,spot,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:46:33.502387 +AZURE,australiacentral2,Standard_D96ads_v5,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:46:33.502052 +AZURE,australiacentral2,Standard_D96ads_v5,reserved_1y,NA,3.681621,USD,Azure Retail Prices API,2025-12-18T04:46:34.423288 +AZURE,australiacentral2,Standard_D96ads_v5,reserved_3y,NA,2.371195,USD,Azure Retail Prices API,2025-12-18T04:46:34.423292 +AZURE,australiacentral2,Standard_D96ads_v5,spot,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:46:33.501337 +AZURE,australiacentral2,Standard_D96ads_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:46:33.502060 +AZURE,australiacentral2,Standard_D96ads_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:46:34.423298 +AZURE,australiacentral2,Standard_D96ads_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:46:34.423303 +AZURE,australiacentral2,Standard_D96ads_v6,spot,NA,0.6874,USD,Azure Retail Prices API,2025-12-18T04:46:33.502350 +AZURE,australiacentral2,Standard_D96as_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:33.501311 +AZURE,australiacentral2,Standard_D96as_v4,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:34.422196 +AZURE,australiacentral2,Standard_D96as_v4,reserved_3y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:34.422201 +AZURE,australiacentral2,Standard_D96as_v4,spot,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:46:33.501308 +AZURE,australiacentral2,Standard_D96as_v5,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:46:33.501231 +AZURE,australiacentral2,Standard_D96as_v5,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:46:34.422097 +AZURE,australiacentral2,Standard_D96as_v5,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:46:34.422100 +AZURE,australiacentral2,Standard_D96as_v5,spot,NA,0.5184,USD,Azure Retail Prices API,2025-12-18T04:46:33.501112 +AZURE,australiacentral2,Standard_D96ds_v5,on_demand,NA,6.816,USD,Azure Retail Prices API,2025-12-18T04:46:33.502335 +AZURE,australiacentral2,Standard_D96ds_v5,reserved_1y,NA,4.021461,USD,Azure Retail Prices API,2025-12-18T04:46:34.423840 +AZURE,australiacentral2,Standard_D96ds_v5,reserved_3y,NA,2.590068,USD,Azure Retail Prices API,2025-12-18T04:46:34.423843 +AZURE,australiacentral2,Standard_D96ds_v5,spot,NA,0.6816,USD,Azure Retail Prices API,2025-12-18T04:46:33.502359 +AZURE,australiacentral2,Standard_D96ds_v6,on_demand,NA,7.476,USD,Azure Retail Prices API,2025-12-18T04:46:33.501968 +AZURE,australiacentral2,Standard_D96ds_v6,reserved_1y,NA,4.634817,USD,Azure Retail Prices API,2025-12-18T04:46:34.423138 +AZURE,australiacentral2,Standard_D96ds_v6,reserved_3y,NA,2.915449,USD,Azure Retail Prices API,2025-12-18T04:46:34.423143 +AZURE,australiacentral2,Standard_D96ds_v6,spot,NA,0.7476,USD,Azure Retail Prices API,2025-12-18T04:46:33.502201 +AZURE,australiacentral2,Standard_D96s_v5,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:33.501276 +AZURE,australiacentral2,Standard_D96s_v5,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:34.422150 +AZURE,australiacentral2,Standard_D96s_v5,reserved_3y,NA,2.131202,USD,Azure Retail Prices API,2025-12-18T04:46:34.422155 +AZURE,australiacentral2,Standard_D96s_v5,spot,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:46:33.502344 +AZURE,australiacentral2,Standard_DC16ads_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:46:33.502172 +AZURE,australiacentral2,Standard_DC16ads_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:46:34.423497 +AZURE,australiacentral2,Standard_DC16ads_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:46:34.423502 +AZURE,australiacentral2,Standard_DC16ads_v6,spot,NA,0.1146,USD,Azure Retail Prices API,2025-12-18T04:46:33.502133 +AZURE,australiacentral2,Standard_DC2ads_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:33.501535 +AZURE,australiacentral2,Standard_DC2ads_v6,reserved_1y,NA,0.084475,USD,Azure Retail Prices API,2025-12-18T04:46:34.422334 +AZURE,australiacentral2,Standard_DC2ads_v6,reserved_3y,NA,0.054414,USD,Azure Retail Prices API,2025-12-18T04:46:34.422339 +AZURE,australiacentral2,Standard_DC2ads_v6,spot,NA,0.0143,USD,Azure Retail Prices API,2025-12-18T04:46:33.501615 +AZURE,australiacentral2,Standard_DC32ads_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:33.502313 +AZURE,australiacentral2,Standard_DC32ads_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:46:34.423780 +AZURE,australiacentral2,Standard_DC32ads_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:46:34.423786 +AZURE,australiacentral2,Standard_DC32ads_v6,spot,NA,0.2291,USD,Azure Retail Prices API,2025-12-18T04:46:33.501486 +AZURE,australiacentral2,Standard_DC48ads_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:46:33.501027 +AZURE,australiacentral2,Standard_DC48ads_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:46:34.421953 +AZURE,australiacentral2,Standard_DC48ads_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:46:34.421956 +AZURE,australiacentral2,Standard_DC48ads_v6,spot,NA,0.3437,USD,Azure Retail Prices API,2025-12-18T04:46:33.501216 +AZURE,australiacentral2,Standard_DC4ads_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:33.502308 +AZURE,australiacentral2,Standard_DC4ads_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:46:34.423770 +AZURE,australiacentral2,Standard_DC4ads_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:46:34.423775 +AZURE,australiacentral2,Standard_DC4ads_v6,spot,NA,0.0286,USD,Azure Retail Prices API,2025-12-18T04:46:33.501760 +AZURE,australiacentral2,Standard_DC64ads_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:46:33.502094 +AZURE,australiacentral2,Standard_DC64ads_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:46:34.423350 +AZURE,australiacentral2,Standard_DC64ads_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:46:34.423356 +AZURE,australiacentral2,Standard_DC64ads_v6,spot,NA,0.4582,USD,Azure Retail Prices API,2025-12-18T04:46:33.502271 +AZURE,australiacentral2,Standard_DC8ads_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:46:33.501602 +AZURE,australiacentral2,Standard_DC8ads_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:46:34.422468 +AZURE,australiacentral2,Standard_DC8ads_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:46:34.422473 +AZURE,australiacentral2,Standard_DC8ads_v6,spot,NA,0.0573,USD,Azure Retail Prices API,2025-12-18T04:46:33.501776 +AZURE,australiacentral2,Standard_DC96ads_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:46:33.502144 +AZURE,australiacentral2,Standard_DC96ads_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:46:34.423433 +AZURE,australiacentral2,Standard_DC96ads_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:46:34.423437 +AZURE,australiacentral2,Standard_DC96ads_v6,spot,NA,0.6874,USD,Azure Retail Prices API,2025-12-18T04:46:33.502183 +AZURE,australiacentral2,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495576 +AZURE,australiacentral2,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495585 +AZURE,australiacentral2,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495589 +AZURE,australiacentral2,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495580 +AZURE,australiacentral2,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496476 +AZURE,australiacentral2,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496486 +AZURE,australiacentral2,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496490 +AZURE,australiacentral2,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496482 +AZURE,australiacentral2,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497302 +AZURE,australiacentral2,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497313 +AZURE,australiacentral2,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497317 +AZURE,australiacentral2,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497309 +AZURE,australiacentral2,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498104 +AZURE,australiacentral2,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498113 +AZURE,australiacentral2,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498117 +AZURE,australiacentral2,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498108 +AZURE,australiacentral2,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491936 +AZURE,australiacentral2,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491944 +AZURE,australiacentral2,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491948 +AZURE,australiacentral2,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491940 +AZURE,australiacentral2,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492659 +AZURE,australiacentral2,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492667 +AZURE,australiacentral2,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492671 +AZURE,australiacentral2,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492663 +AZURE,australiacentral2,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493394 +AZURE,australiacentral2,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493402 +AZURE,australiacentral2,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493407 +AZURE,australiacentral2,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493398 +AZURE,australiacentral2,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494092 +AZURE,australiacentral2,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494100 +AZURE,australiacentral2,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494104 +AZURE,australiacentral2,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494096 +AZURE,australiacentral2,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494805 +AZURE,australiacentral2,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494825 +AZURE,australiacentral2,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494829 +AZURE,australiacentral2,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494821 +AZURE,australiacentral2,Standard_E128ds_v6,on_demand,NA,12.541,USD,Azure Retail Prices API,2025-12-18T04:46:33.501831 +AZURE,australiacentral2,Standard_E128ds_v6,reserved_1y,NA,7.775685,USD,Azure Retail Prices API,2025-12-18T04:46:34.422820 +AZURE,australiacentral2,Standard_E128ds_v6,reserved_3y,NA,4.891172,USD,Azure Retail Prices API,2025-12-18T04:46:34.422825 +AZURE,australiacentral2,Standard_E128ds_v6,spot,NA,1.2541,USD,Azure Retail Prices API,2025-12-18T04:46:33.501960 +AZURE,australiacentral2,Standard_E16_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:33.501056 +AZURE,australiacentral2,Standard_E16_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:46:34.421989 +AZURE,australiacentral2,Standard_E16_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:46:34.421992 +AZURE,australiacentral2,Standard_E16_v3,spot,NA,0.1277,USD,Azure Retail Prices API,2025-12-18T04:46:33.501305 +AZURE,australiacentral2,Standard_E16a_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:33.502268 +AZURE,australiacentral2,Standard_E16a_v4,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:46:34.423643 +AZURE,australiacentral2,Standard_E16a_v4,reserved_3y,NA,0.459056,USD,Azure Retail Prices API,2025-12-18T04:46:34.423648 +AZURE,australiacentral2,Standard_E16a_v4,spot,NA,0.1208,USD,Azure Retail Prices API,2025-12-18T04:46:33.501252 +AZURE,australiacentral2,Standard_E16ads_v5,on_demand,NA,2.008,USD,Azure Retail Prices API,2025-12-18T04:46:33.501228 +AZURE,australiacentral2,Standard_E16ads_v5,reserved_1y,NA,0.750457,USD,Azure Retail Prices API,2025-12-18T04:46:34.422478 +AZURE,australiacentral2,Standard_E16ads_v5,reserved_3y,NA,0.483371,USD,Azure Retail Prices API,2025-12-18T04:46:34.422483 +AZURE,australiacentral2,Standard_E16ads_v5,spot,NA,0.1272,USD,Azure Retail Prices API,2025-12-18T04:46:33.501869 +AZURE,australiacentral2,Standard_E16ads_v6,on_demand,NA,1.458,USD,Azure Retail Prices API,2025-12-18T04:46:33.501174 +AZURE,australiacentral2,Standard_E16ads_v6,reserved_1y,NA,0.859932,USD,Azure Retail Prices API,2025-12-18T04:46:34.422069 +AZURE,australiacentral2,Standard_E16ads_v6,reserved_3y,NA,0.553881,USD,Azure Retail Prices API,2025-12-18T04:46:34.422072 +AZURE,australiacentral2,Standard_E16ads_v6,spot,NA,0.1458,USD,Azure Retail Prices API,2025-12-18T04:46:33.501395 +AZURE,australiacentral2,Standard_E16as_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:33.501141 +AZURE,australiacentral2,Standard_E16as_v4,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:46:34.422041 +AZURE,australiacentral2,Standard_E16as_v4,reserved_3y,NA,0.459056,USD,Azure Retail Prices API,2025-12-18T04:46:34.422044 +AZURE,australiacentral2,Standard_E16as_v4,spot,NA,0.1208,USD,Azure Retail Prices API,2025-12-18T04:46:33.501506 +AZURE,australiacentral2,Standard_E16as_v5,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:46:33.501828 +AZURE,australiacentral2,Standard_E16as_v5,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:46:34.423873 +AZURE,australiacentral2,Standard_E16as_v5,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:46:34.423876 +AZURE,australiacentral2,Standard_E16as_v5,spot,NA,0.1088,USD,Azure Retail Prices API,2025-12-18T04:46:33.502009 +AZURE,australiacentral2,Standard_E16d_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:33.501840 +AZURE,australiacentral2,Standard_E16d_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:34.422850 +AZURE,australiacentral2,Standard_E16d_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:34.422855 +AZURE,australiacentral2,Standard_E16d_v4,spot,NA,0.1392,USD,Azure Retail Prices API,2025-12-18T04:46:33.502212 +AZURE,australiacentral2,Standard_E16ds_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:33.501852 +AZURE,australiacentral2,Standard_E16ds_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:34.422881 +AZURE,australiacentral2,Standard_E16ds_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:34.422886 +AZURE,australiacentral2,Standard_E16ds_v4,spot,NA,0.1392,USD,Azure Retail Prices API,2025-12-18T04:46:33.501995 +AZURE,australiacentral2,Standard_E16ds_v5,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:33.502330 +AZURE,australiacentral2,Standard_E16ds_v5,reserved_1y,NA,0.821233,USD,Azure Retail Prices API,2025-12-18T04:46:34.423825 +AZURE,australiacentral2,Standard_E16ds_v5,reserved_3y,NA,0.528957,USD,Azure Retail Prices API,2025-12-18T04:46:34.423829 +AZURE,australiacentral2,Standard_E16ds_v5,spot,NA,0.1392,USD,Azure Retail Prices API,2025-12-18T04:46:33.501811 +AZURE,australiacentral2,Standard_E16ds_v6,on_demand,NA,1.568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501943 +AZURE,australiacentral2,Standard_E16ds_v6,reserved_1y,NA,0.971918,USD,Azure Retail Prices API,2025-12-18T04:46:34.423082 +AZURE,australiacentral2,Standard_E16ds_v6,reserved_3y,NA,0.611377,USD,Azure Retail Prices API,2025-12-18T04:46:34.423088 +AZURE,australiacentral2,Standard_E16ds_v6,spot,NA,0.1568,USD,Azure Retail Prices API,2025-12-18T04:46:33.502175 +AZURE,australiacentral2,Standard_E16s_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:33.502288 +AZURE,australiacentral2,Standard_E16s_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:46:34.423696 +AZURE,australiacentral2,Standard_E16s_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:46:34.423700 +AZURE,australiacentral2,Standard_E16s_v3,spot,NA,0.1277,USD,Azure Retail Prices API,2025-12-18T04:46:33.501225 +AZURE,australiacentral2,Standard_E16s_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:33.501938 +AZURE,australiacentral2,Standard_E16s_v4,reserved_1y,NA,0.710274,USD,Azure Retail Prices API,2025-12-18T04:46:34.423029 +AZURE,australiacentral2,Standard_E16s_v4,reserved_3y,NA,0.454224,USD,Azure Retail Prices API,2025-12-18T04:46:34.423034 +AZURE,australiacentral2,Standard_E16s_v4,spot,NA,0.1208,USD,Azure Retail Prices API,2025-12-18T04:46:33.501962 +AZURE,australiacentral2,Standard_E16s_v5,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:33.502356 +AZURE,australiacentral2,Standard_E16s_v5,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:46:34.423884 +AZURE,australiacentral2,Standard_E16s_v5,reserved_3y,NA,0.446956,USD,Azure Retail Prices API,2025-12-18T04:46:34.423887 +AZURE,australiacentral2,Standard_E16s_v5,spot,NA,0.1208,USD,Azure Retail Prices API,2025-12-18T04:46:33.501706 +AZURE,australiacentral2,Standard_E20a_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:33.501885 +AZURE,australiacentral2,Standard_E20a_v4,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:46:34.422923 +AZURE,australiacentral2,Standard_E20a_v4,reserved_3y,NA,0.573782,USD,Azure Retail Prices API,2025-12-18T04:46:34.422928 +AZURE,australiacentral2,Standard_E20a_v4,spot,NA,0.151,USD,Azure Retail Prices API,2025-12-18T04:46:33.502316 +AZURE,australiacentral2,Standard_E20ads_v5,on_demand,NA,2.51,USD,Azure Retail Prices API,2025-12-18T04:46:33.501314 +AZURE,australiacentral2,Standard_E20ads_v5,reserved_1y,NA,0.938128,USD,Azure Retail Prices API,2025-12-18T04:46:34.422614 +AZURE,australiacentral2,Standard_E20ads_v5,reserved_3y,NA,0.604186,USD,Azure Retail Prices API,2025-12-18T04:46:34.422620 +AZURE,australiacentral2,Standard_E20ads_v5,spot,NA,0.159,USD,Azure Retail Prices API,2025-12-18T04:46:33.501198 +AZURE,australiacentral2,Standard_E20ads_v6,on_demand,NA,1.822,USD,Azure Retail Prices API,2025-12-18T04:46:33.502234 +AZURE,australiacentral2,Standard_E20ads_v6,reserved_1y,NA,1.075,USD,Azure Retail Prices API,2025-12-18T04:46:34.423594 +AZURE,australiacentral2,Standard_E20ads_v6,reserved_3y,NA,0.692352,USD,Azure Retail Prices API,2025-12-18T04:46:34.423599 +AZURE,australiacentral2,Standard_E20ads_v6,spot,NA,0.1822,USD,Azure Retail Prices API,2025-12-18T04:46:33.502069 +AZURE,australiacentral2,Standard_E20as_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:33.502353 +AZURE,australiacentral2,Standard_E20as_v4,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:46:34.423878 +AZURE,australiacentral2,Standard_E20as_v4,reserved_3y,NA,0.573782,USD,Azure Retail Prices API,2025-12-18T04:46:34.423881 +AZURE,australiacentral2,Standard_E20as_v4,spot,NA,0.151,USD,Azure Retail Prices API,2025-12-18T04:46:33.501425 +AZURE,australiacentral2,Standard_E20as_v5,on_demand,NA,1.36,USD,Azure Retail Prices API,2025-12-18T04:46:33.501434 +AZURE,australiacentral2,Standard_E20as_v5,reserved_1y,NA,0.802397,USD,Azure Retail Prices API,2025-12-18T04:46:34.422237 +AZURE,australiacentral2,Standard_E20as_v5,reserved_3y,NA,0.516819,USD,Azure Retail Prices API,2025-12-18T04:46:34.422240 +AZURE,australiacentral2,Standard_E20as_v5,spot,NA,0.136,USD,Azure Retail Prices API,2025-12-18T04:46:33.501258 +AZURE,australiacentral2,Standard_E20d_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:33.502290 +AZURE,australiacentral2,Standard_E20d_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:34.423705 +AZURE,australiacentral2,Standard_E20d_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:34.423710 +AZURE,australiacentral2,Standard_E20d_v4,spot,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:33.501649 +AZURE,australiacentral2,Standard_E20ds_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:33.502044 +AZURE,australiacentral2,Standard_E20ds_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:34.423278 +AZURE,australiacentral2,Standard_E20ds_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:34.423283 +AZURE,australiacentral2,Standard_E20ds_v4,spot,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:33.502111 +AZURE,australiacentral2,Standard_E20ds_v5,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:33.501106 +AZURE,australiacentral2,Standard_E20ds_v5,reserved_1y,NA,1.026598,USD,Azure Retail Prices API,2025-12-18T04:46:34.422024 +AZURE,australiacentral2,Standard_E20ds_v5,reserved_3y,NA,0.661187,USD,Azure Retail Prices API,2025-12-18T04:46:34.422027 +AZURE,australiacentral2,Standard_E20ds_v5,spot,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:33.501282 +AZURE,australiacentral2,Standard_E20ds_v6,on_demand,NA,1.96,USD,Azure Retail Prices API,2025-12-18T04:46:33.501053 +AZURE,australiacentral2,Standard_E20ds_v6,reserved_1y,NA,1.214954,USD,Azure Retail Prices API,2025-12-18T04:46:34.421983 +AZURE,australiacentral2,Standard_E20ds_v6,reserved_3y,NA,0.764231,USD,Azure Retail Prices API,2025-12-18T04:46:34.421986 +AZURE,australiacentral2,Standard_E20ds_v6,spot,NA,0.196,USD,Azure Retail Prices API,2025-12-18T04:46:33.501033 +AZURE,australiacentral2,Standard_E20s_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:33.501342 +AZURE,australiacentral2,Standard_E20s_v4,reserved_1y,NA,0.888128,USD,Azure Retail Prices API,2025-12-18T04:46:34.422214 +AZURE,australiacentral2,Standard_E20s_v4,reserved_3y,NA,0.567732,USD,Azure Retail Prices API,2025-12-18T04:46:34.422217 +AZURE,australiacentral2,Standard_E20s_v4,spot,NA,0.151,USD,Azure Retail Prices API,2025-12-18T04:46:33.501790 +AZURE,australiacentral2,Standard_E20s_v5,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:33.501899 +AZURE,australiacentral2,Standard_E20s_v5,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:46:34.422975 +AZURE,australiacentral2,Standard_E20s_v5,reserved_3y,NA,0.558714,USD,Azure Retail Prices API,2025-12-18T04:46:34.422980 +AZURE,australiacentral2,Standard_E20s_v5,spot,NA,0.151,USD,Azure Retail Prices API,2025-12-18T04:46:33.501905 +AZURE,australiacentral2,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:46:33.501444 +AZURE,australiacentral2,Standard_E2_v3,reserved_1y,NA,0.093836,USD,Azure Retail Prices API,2025-12-18T04:46:34.422256 +AZURE,australiacentral2,Standard_E2_v3,reserved_3y,NA,0.060008,USD,Azure Retail Prices API,2025-12-18T04:46:34.422259 +AZURE,australiacentral2,Standard_E2_v3,spot,NA,0.016,USD,Azure Retail Prices API,2025-12-18T04:46:33.502223 +AZURE,australiacentral2,Standard_E2ads_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:33.502102 +AZURE,australiacentral2,Standard_E2ads_v6,reserved_1y,NA,0.107534,USD,Azure Retail Prices API,2025-12-18T04:46:34.423360 +AZURE,australiacentral2,Standard_E2ads_v6,reserved_3y,NA,0.069254,USD,Azure Retail Prices API,2025-12-18T04:46:34.423365 +AZURE,australiacentral2,Standard_E2ads_v6,spot,NA,0.0182,USD,Azure Retail Prices API,2025-12-18T04:46:33.501866 +AZURE,australiacentral2,Standard_E2ds_v5,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:33.501519 +AZURE,australiacentral2,Standard_E2ds_v5,reserved_1y,NA,0.102626,USD,Azure Retail Prices API,2025-12-18T04:46:34.422314 +AZURE,australiacentral2,Standard_E2ds_v5,reserved_3y,NA,0.066134,USD,Azure Retail Prices API,2025-12-18T04:46:34.422316 +AZURE,australiacentral2,Standard_E2ds_v5,spot,NA,0.0174,USD,Azure Retail Prices API,2025-12-18T04:46:33.501525 +AZURE,australiacentral2,Standard_E2ds_v6,on_demand,NA,0.196,USD,Azure Retail Prices API,2025-12-18T04:46:33.501237 +AZURE,australiacentral2,Standard_E2ds_v6,reserved_1y,NA,0.121461,USD,Azure Retail Prices API,2025-12-18T04:46:34.422108 +AZURE,australiacentral2,Standard_E2ds_v6,reserved_3y,NA,0.076408,USD,Azure Retail Prices API,2025-12-18T04:46:34.422110 +AZURE,australiacentral2,Standard_E2ds_v6,spot,NA,0.0196,USD,Azure Retail Prices API,2025-12-18T04:46:33.501532 +AZURE,australiacentral2,Standard_E32_v3,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:46:33.501940 +AZURE,australiacentral2,Standard_E32_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:46:34.423051 +AZURE,australiacentral2,Standard_E32_v3,reserved_3y,NA,0.96016,USD,Azure Retail Prices API,2025-12-18T04:46:34.423056 +AZURE,australiacentral2,Standard_E32_v3,spot,NA,0.2554,USD,Azure Retail Prices API,2025-12-18T04:46:33.501004 +AZURE,australiacentral2,Standard_E32a_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:33.502086 +AZURE,australiacentral2,Standard_E32a_v4,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:46:34.423339 +AZURE,australiacentral2,Standard_E32a_v4,reserved_3y,NA,0.918075,USD,Azure Retail Prices API,2025-12-18T04:46:34.423345 +AZURE,australiacentral2,Standard_E32a_v4,spot,NA,0.2416,USD,Azure Retail Prices API,2025-12-18T04:46:33.502028 +AZURE,australiacentral2,Standard_E32ads_v5,on_demand,NA,4.016,USD,Azure Retail Prices API,2025-12-18T04:46:33.502058 +AZURE,australiacentral2,Standard_E32ads_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:34.423685 +AZURE,australiacentral2,Standard_E32ads_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:34.423690 +AZURE,australiacentral2,Standard_E32ads_v5,spot,NA,0.2544,USD,Azure Retail Prices API,2025-12-18T04:46:33.501356 +AZURE,australiacentral2,Standard_E32ads_v6,on_demand,NA,2.915,USD,Azure Retail Prices API,2025-12-18T04:46:33.502392 +AZURE,australiacentral2,Standard_E32ads_v6,reserved_1y,NA,1.719977,USD,Azure Retail Prices API,2025-12-18T04:46:34.423926 +AZURE,australiacentral2,Standard_E32ads_v6,reserved_3y,NA,1.107763,USD,Azure Retail Prices API,2025-12-18T04:46:34.423929 +AZURE,australiacentral2,Standard_E32ads_v6,spot,NA,0.2915,USD,Azure Retail Prices API,2025-12-18T04:46:33.501240 +AZURE,australiacentral2,Standard_E32as_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:33.501279 +AZURE,australiacentral2,Standard_E32as_v4,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:46:34.422161 +AZURE,australiacentral2,Standard_E32as_v4,reserved_3y,NA,0.918075,USD,Azure Retail Prices API,2025-12-18T04:46:34.422166 +AZURE,australiacentral2,Standard_E32as_v4,spot,NA,0.2416,USD,Azure Retail Prices API,2025-12-18T04:46:33.501907 +AZURE,australiacentral2,Standard_E32as_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:33.501328 +AZURE,australiacentral2,Standard_E32as_v5,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:46:34.423920 +AZURE,australiacentral2,Standard_E32as_v5,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:46:34.423923 +AZURE,australiacentral2,Standard_E32as_v5,spot,NA,0.2176,USD,Azure Retail Prices API,2025-12-18T04:46:33.502089 +AZURE,australiacentral2,Standard_E32d_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:33.501725 +AZURE,australiacentral2,Standard_E32d_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:34.422644 +AZURE,australiacentral2,Standard_E32d_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:34.422650 +AZURE,australiacentral2,Standard_E32d_v4,spot,NA,0.2784,USD,Azure Retail Prices API,2025-12-18T04:46:33.501697 +AZURE,australiacentral2,Standard_E32ds_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:33.501825 +AZURE,australiacentral2,Standard_E32ds_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:34.422808 +AZURE,australiacentral2,Standard_E32ds_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:34.422815 +AZURE,australiacentral2,Standard_E32ds_v4,spot,NA,0.2784,USD,Azure Retail Prices API,2025-12-18T04:46:33.502245 +AZURE,australiacentral2,Standard_E32ds_v5,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:33.502033 +AZURE,australiacentral2,Standard_E32ds_v5,reserved_1y,NA,1.64258,USD,Azure Retail Prices API,2025-12-18T04:46:34.423236 +AZURE,australiacentral2,Standard_E32ds_v5,reserved_3y,NA,1.057915,USD,Azure Retail Prices API,2025-12-18T04:46:34.423240 +AZURE,australiacentral2,Standard_E32ds_v5,spot,NA,0.2784,USD,Azure Retail Prices API,2025-12-18T04:46:33.502203 +AZURE,australiacentral2,Standard_E32ds_v6,on_demand,NA,3.135,USD,Azure Retail Prices API,2025-12-18T04:46:33.501255 +AZURE,australiacentral2,Standard_E32ds_v6,reserved_1y,NA,1.94395,USD,Azure Retail Prices API,2025-12-18T04:46:34.422124 +AZURE,australiacentral2,Standard_E32ds_v6,reserved_3y,NA,1.222793,USD,Azure Retail Prices API,2025-12-18T04:46:34.422127 +AZURE,australiacentral2,Standard_E32ds_v6,spot,NA,0.3135,USD,Azure Retail Prices API,2025-12-18T04:46:33.501213 +AZURE,australiacentral2,Standard_E32s_v3,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:46:33.501848 +AZURE,australiacentral2,Standard_E32s_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:46:34.422869 +AZURE,australiacentral2,Standard_E32s_v3,reserved_3y,NA,0.96016,USD,Azure Retail Prices API,2025-12-18T04:46:34.422874 +AZURE,australiacentral2,Standard_E32s_v3,spot,NA,0.2554,USD,Azure Retail Prices API,2025-12-18T04:46:33.501273 +AZURE,australiacentral2,Standard_E32s_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:33.501764 +AZURE,australiacentral2,Standard_E32s_v4,reserved_1y,NA,1.420662,USD,Azure Retail Prices API,2025-12-18T04:46:34.422714 +AZURE,australiacentral2,Standard_E32s_v4,reserved_3y,NA,0.908409,USD,Azure Retail Prices API,2025-12-18T04:46:34.422718 +AZURE,australiacentral2,Standard_E32s_v4,spot,NA,0.2416,USD,Azure Retail Prices API,2025-12-18T04:46:33.501375 +AZURE,australiacentral2,Standard_E32s_v5,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:33.501554 +AZURE,australiacentral2,Standard_E32s_v5,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:46:34.422368 +AZURE,australiacentral2,Standard_E32s_v5,reserved_3y,NA,0.893912,USD,Azure Retail Prices API,2025-12-18T04:46:34.422372 +AZURE,australiacentral2,Standard_E32s_v5,spot,NA,0.2416,USD,Azure Retail Prices API,2025-12-18T04:46:33.501512 +AZURE,australiacentral2,Standard_E48a_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:33.501948 +AZURE,australiacentral2,Standard_E48a_v4,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:46:34.423093 +AZURE,australiacentral2,Standard_E48a_v4,reserved_3y,NA,1.377131,USD,Azure Retail Prices API,2025-12-18T04:46:34.423098 +AZURE,australiacentral2,Standard_E48a_v4,spot,NA,0.3624,USD,Azure Retail Prices API,2025-12-18T04:46:33.501677 +AZURE,australiacentral2,Standard_E48ads_v5,on_demand,NA,3.816,USD,Azure Retail Prices API,2025-12-18T04:46:33.501718 +AZURE,australiacentral2,Standard_E48ads_v5,reserved_1y,NA,2.251484,USD,Azure Retail Prices API,2025-12-18T04:46:34.422625 +AZURE,australiacentral2,Standard_E48ads_v5,reserved_3y,NA,1.450076,USD,Azure Retail Prices API,2025-12-18T04:46:34.422630 +AZURE,australiacentral2,Standard_E48ads_v5,spot,NA,0.3816,USD,Azure Retail Prices API,2025-12-18T04:46:33.501946 +AZURE,australiacentral2,Standard_E48ads_v6,on_demand,NA,4.373,USD,Azure Retail Prices API,2025-12-18T04:46:33.502063 +AZURE,australiacentral2,Standard_E48ads_v6,reserved_1y,NA,2.579909,USD,Azure Retail Prices API,2025-12-18T04:46:34.423308 +AZURE,australiacentral2,Standard_E48ads_v6,reserved_3y,NA,1.661682,USD,Azure Retail Prices API,2025-12-18T04:46:34.423315 +AZURE,australiacentral2,Standard_E48ads_v6,spot,NA,0.4373,USD,Azure Retail Prices API,2025-12-18T04:46:33.502001 +AZURE,australiacentral2,Standard_E48as_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:33.502372 +AZURE,australiacentral2,Standard_E48as_v4,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:46:34.423903 +AZURE,australiacentral2,Standard_E48as_v4,reserved_3y,NA,1.377131,USD,Azure Retail Prices API,2025-12-18T04:46:34.423906 +AZURE,australiacentral2,Standard_E48as_v4,spot,NA,0.3624,USD,Azure Retail Prices API,2025-12-18T04:46:33.501207 +AZURE,australiacentral2,Standard_E48as_v5,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:46:33.501109 +AZURE,australiacentral2,Standard_E48as_v5,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:34.423518 +AZURE,australiacentral2,Standard_E48as_v5,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:46:34.423525 +AZURE,australiacentral2,Standard_E48as_v5,spot,NA,0.3264,USD,Azure Retail Prices API,2025-12-18T04:46:33.502192 +AZURE,australiacentral2,Standard_E48d_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:33.502257 +AZURE,australiacentral2,Standard_E48d_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:34.423623 +AZURE,australiacentral2,Standard_E48d_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:34.423628 +AZURE,australiacentral2,Standard_E48d_v4,spot,NA,0.4176,USD,Azure Retail Prices API,2025-12-18T04:46:33.501152 +AZURE,australiacentral2,Standard_E48ds_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:33.502117 +AZURE,australiacentral2,Standard_E48ds_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:34.423393 +AZURE,australiacentral2,Standard_E48ds_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:34.423398 +AZURE,australiacentral2,Standard_E48ds_v4,spot,NA,0.4176,USD,Azure Retail Prices API,2025-12-18T04:46:33.501246 +AZURE,australiacentral2,Standard_E48ds_v5,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:33.502150 +AZURE,australiacentral2,Standard_E48ds_v5,reserved_1y,NA,2.463813,USD,Azure Retail Prices API,2025-12-18T04:46:34.423455 +AZURE,australiacentral2,Standard_E48ds_v5,reserved_3y,NA,1.586872,USD,Azure Retail Prices API,2025-12-18T04:46:34.423460 +AZURE,australiacentral2,Standard_E48ds_v5,spot,NA,0.4176,USD,Azure Retail Prices API,2025-12-18T04:46:33.501447 +AZURE,australiacentral2,Standard_E48ds_v6,on_demand,NA,4.703,USD,Azure Retail Prices API,2025-12-18T04:46:33.502164 +AZURE,australiacentral2,Standard_E48ds_v6,reserved_1y,NA,2.915868,USD,Azure Retail Prices API,2025-12-18T04:46:34.423487 +AZURE,australiacentral2,Standard_E48ds_v6,reserved_3y,NA,1.83417,USD,Azure Retail Prices API,2025-12-18T04:46:34.423492 +AZURE,australiacentral2,Standard_E48ds_v6,spot,NA,0.4703,USD,Azure Retail Prices API,2025-12-18T04:46:33.501563 +AZURE,australiacentral2,Standard_E48s_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:33.501065 +AZURE,australiacentral2,Standard_E48s_v4,reserved_1y,NA,2.130936,USD,Azure Retail Prices API,2025-12-18T04:46:34.421995 +AZURE,australiacentral2,Standard_E48s_v4,reserved_3y,NA,1.362633,USD,Azure Retail Prices API,2025-12-18T04:46:34.421998 +AZURE,australiacentral2,Standard_E48s_v4,spot,NA,0.3624,USD,Azure Retail Prices API,2025-12-18T04:46:33.501579 +AZURE,australiacentral2,Standard_E48s_v5,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:33.502189 +AZURE,australiacentral2,Standard_E48s_v5,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:46:34.423530 +AZURE,australiacentral2,Standard_E48s_v5,reserved_3y,NA,1.340868,USD,Azure Retail Prices API,2025-12-18T04:46:34.423535 +AZURE,australiacentral2,Standard_E48s_v5,spot,NA,0.3624,USD,Azure Retail Prices API,2025-12-18T04:46:33.500988 +AZURE,australiacentral2,Standard_E4_v3,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:46:33.501782 +AZURE,australiacentral2,Standard_E4_v3,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:34.422746 +AZURE,australiacentral2,Standard_E4_v3,reserved_3y,NA,0.120015,USD,Azure Retail Prices API,2025-12-18T04:46:34.422751 +AZURE,australiacentral2,Standard_E4_v3,spot,NA,0.0319,USD,Azure Retail Prices API,2025-12-18T04:46:33.501378 +AZURE,australiacentral2,Standard_E4a_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:33.501586 +AZURE,australiacentral2,Standard_E4a_v4,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:46:34.422440 +AZURE,australiacentral2,Standard_E4a_v4,reserved_3y,NA,0.114764,USD,Azure Retail Prices API,2025-12-18T04:46:34.422444 +AZURE,australiacentral2,Standard_E4a_v4,spot,NA,0.0302,USD,Azure Retail Prices API,2025-12-18T04:46:33.501589 +AZURE,australiacentral2,Standard_E4ads_v5,on_demand,NA,0.502,USD,Azure Retail Prices API,2025-12-18T04:46:33.501785 +AZURE,australiacentral2,Standard_E4ads_v5,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:34.422798 +AZURE,australiacentral2,Standard_E4ads_v5,reserved_3y,NA,0.120852,USD,Azure Retail Prices API,2025-12-18T04:46:34.422803 +AZURE,australiacentral2,Standard_E4ads_v5,spot,NA,0.0318,USD,Azure Retail Prices API,2025-12-18T04:46:33.501545 +AZURE,australiacentral2,Standard_E4ads_v6,on_demand,NA,0.364,USD,Azure Retail Prices API,2025-12-18T04:46:33.501992 +AZURE,australiacentral2,Standard_E4ads_v6,reserved_1y,NA,0.214954,USD,Azure Retail Prices API,2025-12-18T04:46:34.423166 +AZURE,australiacentral2,Standard_E4ads_v6,reserved_3y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:34.423171 +AZURE,australiacentral2,Standard_E4ads_v6,spot,NA,0.0364,USD,Azure Retail Prices API,2025-12-18T04:46:33.501180 +AZURE,australiacentral2,Standard_E4as_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:33.501595 +AZURE,australiacentral2,Standard_E4as_v4,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:46:34.422449 +AZURE,australiacentral2,Standard_E4as_v4,reserved_3y,NA,0.114764,USD,Azure Retail Prices API,2025-12-18T04:46:34.422453 +AZURE,australiacentral2,Standard_E4as_v4,spot,NA,0.0302,USD,Azure Retail Prices API,2025-12-18T04:46:33.501930 +AZURE,australiacentral2,Standard_E4as_v5,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:46:33.501819 +AZURE,australiacentral2,Standard_E4as_v5,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:46:34.423749 +AZURE,australiacentral2,Standard_E4as_v5,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:46:34.423755 +AZURE,australiacentral2,Standard_E4as_v5,spot,NA,0.0272,USD,Azure Retail Prices API,2025-12-18T04:46:33.501081 +AZURE,australiacentral2,Standard_E4d_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:33.501483 +AZURE,australiacentral2,Standard_E4d_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:34.422296 +AZURE,australiacentral2,Standard_E4d_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:34.422299 +AZURE,australiacentral2,Standard_E4d_v4,spot,NA,0.0348,USD,Azure Retail Prices API,2025-12-18T04:46:33.502022 +AZURE,australiacentral2,Standard_E4ds_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:33.502347 +AZURE,australiacentral2,Standard_E4ds_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:34.423867 +AZURE,australiacentral2,Standard_E4ds_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:34.423870 +AZURE,australiacentral2,Standard_E4ds_v4,spot,NA,0.0348,USD,Azure Retail Prices API,2025-12-18T04:46:33.501381 +AZURE,australiacentral2,Standard_E4ds_v5,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:33.501074 +AZURE,australiacentral2,Standard_E4ds_v5,reserved_1y,NA,0.205365,USD,Azure Retail Prices API,2025-12-18T04:46:34.422001 +AZURE,australiacentral2,Standard_E4ds_v5,reserved_3y,NA,0.13223,USD,Azure Retail Prices API,2025-12-18T04:46:34.422004 +AZURE,australiacentral2,Standard_E4ds_v5,spot,NA,0.0348,USD,Azure Retail Prices API,2025-12-18T04:46:33.501734 +AZURE,australiacentral2,Standard_E4ds_v6,on_demand,NA,0.392,USD,Azure Retail Prices API,2025-12-18T04:46:33.501043 +AZURE,australiacentral2,Standard_E4ds_v6,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:46:34.421971 +AZURE,australiacentral2,Standard_E4ds_v6,reserved_3y,NA,0.152854,USD,Azure Retail Prices API,2025-12-18T04:46:34.421974 +AZURE,australiacentral2,Standard_E4ds_v6,spot,NA,0.0392,USD,Azure Retail Prices API,2025-12-18T04:46:33.501408 +AZURE,australiacentral2,Standard_E4s_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:33.502114 +AZURE,australiacentral2,Standard_E4s_v4,reserved_1y,NA,0.177626,USD,Azure Retail Prices API,2025-12-18T04:46:34.423381 +AZURE,australiacentral2,Standard_E4s_v4,reserved_3y,NA,0.113546,USD,Azure Retail Prices API,2025-12-18T04:46:34.423388 +AZURE,australiacentral2,Standard_E4s_v4,spot,NA,0.0302,USD,Azure Retail Prices API,2025-12-18T04:46:33.501470 +AZURE,australiacentral2,Standard_E4s_v5,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:33.501155 +AZURE,australiacentral2,Standard_E4s_v5,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:46:34.422052 +AZURE,australiacentral2,Standard_E4s_v5,reserved_3y,NA,0.111758,USD,Azure Retail Prices API,2025-12-18T04:46:34.422055 +AZURE,australiacentral2,Standard_E4s_v5,spot,NA,0.0302,USD,Azure Retail Prices API,2025-12-18T04:46:33.501285 +AZURE,australiacentral2,Standard_E64_v3,on_demand,NA,4.347,USD,Azure Retail Prices API,2025-12-18T04:46:33.502305 +AZURE,australiacentral2,Standard_E64_v3,reserved_1y,NA,2.830365,USD,Azure Retail Prices API,2025-12-18T04:46:34.423760 +AZURE,australiacentral2,Standard_E64_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:46:34.423765 +AZURE,australiacentral2,Standard_E64_v3,spot,NA,0.4347,USD,Azure Retail Prices API,2025-12-18T04:46:33.501401 +AZURE,australiacentral2,Standard_E64a_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:33.501186 +AZURE,australiacentral2,Standard_E64a_v4,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:46:34.422081 +AZURE,australiacentral2,Standard_E64a_v4,reserved_3y,NA,1.836149,USD,Azure Retail Prices API,2025-12-18T04:46:34.422083 +AZURE,australiacentral2,Standard_E64a_v4,spot,NA,0.4832,USD,Azure Retail Prices API,2025-12-18T04:46:33.502214 +AZURE,australiacentral2,Standard_E64ads_v5,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:33.501299 +AZURE,australiacentral2,Standard_E64ads_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:34.422187 +AZURE,australiacentral2,Standard_E64ads_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:34.422192 +AZURE,australiacentral2,Standard_E64ads_v5,spot,NA,0.5088,USD,Azure Retail Prices API,2025-12-18T04:46:33.502254 +AZURE,australiacentral2,Standard_E64ads_v6,on_demand,NA,5.83,USD,Azure Retail Prices API,2025-12-18T04:46:33.501728 +AZURE,australiacentral2,Standard_E64ads_v6,reserved_1y,NA,3.439954,USD,Azure Retail Prices API,2025-12-18T04:46:34.422654 +AZURE,australiacentral2,Standard_E64ads_v6,reserved_3y,NA,2.215563,USD,Azure Retail Prices API,2025-12-18T04:46:34.422658 +AZURE,australiacentral2,Standard_E64ads_v6,spot,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:46:33.501369 +AZURE,australiacentral2,Standard_E64as_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:33.501674 +AZURE,australiacentral2,Standard_E64as_v4,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:46:34.422580 +AZURE,australiacentral2,Standard_E64as_v4,reserved_3y,NA,1.836149,USD,Azure Retail Prices API,2025-12-18T04:46:34.422585 +AZURE,australiacentral2,Standard_E64as_v4,spot,NA,0.4832,USD,Azure Retail Prices API,2025-12-18T04:46:33.501405 +AZURE,australiacentral2,Standard_E64as_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:33.501135 +AZURE,australiacentral2,Standard_E64as_v5,reserved_1y,NA,2.567694,USD,Azure Retail Prices API,2025-12-18T04:46:34.423206 +AZURE,australiacentral2,Standard_E64as_v5,reserved_3y,NA,1.653767,USD,Azure Retail Prices API,2025-12-18T04:46:34.423211 +AZURE,australiacentral2,Standard_E64as_v5,spot,NA,0.4352,USD,Azure Retail Prices API,2025-12-18T04:46:33.501671 +AZURE,australiacentral2,Standard_E64d_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501050 +AZURE,australiacentral2,Standard_E64d_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:34.421978 +AZURE,australiacentral2,Standard_E64d_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:34.421980 +AZURE,australiacentral2,Standard_E64d_v4,spot,NA,0.5568,USD,Azure Retail Prices API,2025-12-18T04:46:33.502251 +AZURE,australiacentral2,Standard_E64ds_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:33.502324 +AZURE,australiacentral2,Standard_E64ds_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:34.423804 +AZURE,australiacentral2,Standard_E64ds_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:34.423809 +AZURE,australiacentral2,Standard_E64ds_v4,spot,NA,0.5568,USD,Azure Retail Prices API,2025-12-18T04:46:33.502231 +AZURE,australiacentral2,Standard_E64ds_v5,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501965 +AZURE,australiacentral2,Standard_E64ds_v5,reserved_1y,NA,3.28516,USD,Azure Retail Prices API,2025-12-18T04:46:34.423129 +AZURE,australiacentral2,Standard_E64ds_v5,reserved_3y,NA,2.11583,USD,Azure Retail Prices API,2025-12-18T04:46:34.423134 +AZURE,australiacentral2,Standard_E64ds_v5,spot,NA,0.5568,USD,Azure Retail Prices API,2025-12-18T04:46:33.501477 +AZURE,australiacentral2,Standard_E64ds_v6,on_demand,NA,6.271,USD,Azure Retail Prices API,2025-12-18T04:46:33.501473 +AZURE,australiacentral2,Standard_E64ds_v6,reserved_1y,NA,3.8879,USD,Azure Retail Prices API,2025-12-18T04:46:34.422284 +AZURE,australiacentral2,Standard_E64ds_v6,reserved_3y,NA,2.445586,USD,Azure Retail Prices API,2025-12-18T04:46:34.422286 +AZURE,australiacentral2,Standard_E64ds_v6,spot,NA,0.6271,USD,Azure Retail Prices API,2025-12-18T04:46:33.501770 +AZURE,australiacentral2,Standard_E64s_v3,on_demand,NA,4.347,USD,Azure Retail Prices API,2025-12-18T04:46:33.501007 +AZURE,australiacentral2,Standard_E64s_v3,reserved_1y,NA,2.830365,USD,Azure Retail Prices API,2025-12-18T04:46:34.421929 +AZURE,australiacentral2,Standard_E64s_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:46:34.421932 +AZURE,australiacentral2,Standard_E64s_v3,spot,NA,0.4347,USD,Azure Retail Prices API,2025-12-18T04:46:33.501624 +AZURE,australiacentral2,Standard_E64s_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:33.502141 +AZURE,australiacentral2,Standard_E64s_v4,reserved_1y,NA,2.84121,USD,Azure Retail Prices API,2025-12-18T04:46:34.423423 +AZURE,australiacentral2,Standard_E64s_v4,reserved_3y,NA,1.816819,USD,Azure Retail Prices API,2025-12-18T04:46:34.423428 +AZURE,australiacentral2,Standard_E64s_v4,spot,NA,0.4832,USD,Azure Retail Prices API,2025-12-18T04:46:33.502003 +AZURE,australiacentral2,Standard_E64s_v5,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:33.502240 +AZURE,australiacentral2,Standard_E64s_v5,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:46:34.423614 +AZURE,australiacentral2,Standard_E64s_v5,reserved_3y,NA,1.787823,USD,Azure Retail Prices API,2025-12-18T04:46:34.423618 +AZURE,australiacentral2,Standard_E64s_v5,spot,NA,0.4832,USD,Azure Retail Prices API,2025-12-18T04:46:33.502379 +AZURE,australiacentral2,Standard_E80ids_v4,on_demand,NA,6.96,USD,Azure Retail Prices API,2025-12-18T04:46:33.501502 +AZURE,australiacentral2,Standard_E80ids_v4,reserved_1y,NA,4.093607,USD,Azure Retail Prices API,2025-12-18T04:46:34.422308 +AZURE,australiacentral2,Standard_E80ids_v4,reserved_3y,NA,2.617199,USD,Azure Retail Prices API,2025-12-18T04:46:34.422311 +AZURE,australiacentral2,Standard_E80ids_v4,spot,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:33.502263 +AZURE,australiacentral2,Standard_E80is_v4,on_demand,NA,6.04,USD,Azure Retail Prices API,2025-12-18T04:46:33.501461 +AZURE,australiacentral2,Standard_E80is_v4,reserved_1y,NA,3.552511,USD,Azure Retail Prices API,2025-12-18T04:46:34.422272 +AZURE,australiacentral2,Standard_E80is_v4,reserved_3y,NA,2.270928,USD,Azure Retail Prices API,2025-12-18T04:46:34.422275 +AZURE,australiacentral2,Standard_E80is_v4,spot,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:33.502020 +AZURE,australiacentral2,Standard_E8_v3,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:33.501183 +AZURE,australiacentral2,Standard_E8_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:46:34.422075 +AZURE,australiacentral2,Standard_E8_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:46:34.422078 +AZURE,australiacentral2,Standard_E8_v3,spot,NA,0.0638,USD,Azure Retail Prices API,2025-12-18T04:46:33.501935 +AZURE,australiacentral2,Standard_E8a_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:33.500992 +AZURE,australiacentral2,Standard_E8a_v4,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:46:34.421909 +AZURE,australiacentral2,Standard_E8a_v4,reserved_3y,NA,0.229528,USD,Azure Retail Prices API,2025-12-18T04:46:34.421912 +AZURE,australiacentral2,Standard_E8a_v4,spot,NA,0.0604,USD,Azure Retail Prices API,2025-12-18T04:46:33.502311 +AZURE,australiacentral2,Standard_E8ads_v5,on_demand,NA,1.004,USD,Azure Retail Prices API,2025-12-18T04:46:33.501096 +AZURE,australiacentral2,Standard_E8ads_v5,reserved_1y,NA,0.375228,USD,Azure Retail Prices API,2025-12-18T04:46:34.422119 +AZURE,australiacentral2,Standard_E8ads_v5,reserved_3y,NA,0.241667,USD,Azure Retail Prices API,2025-12-18T04:46:34.422122 +AZURE,australiacentral2,Standard_E8ads_v5,spot,NA,0.0636,USD,Azure Retail Prices API,2025-12-18T04:46:33.501219 +AZURE,australiacentral2,Standard_E8ads_v6,on_demand,NA,0.729,USD,Azure Retail Prices API,2025-12-18T04:46:33.502158 +AZURE,australiacentral2,Standard_E8ads_v6,reserved_1y,NA,0.430023,USD,Azure Retail Prices API,2025-12-18T04:46:34.423477 +AZURE,australiacentral2,Standard_E8ads_v6,reserved_3y,NA,0.276941,USD,Azure Retail Prices API,2025-12-18T04:46:34.423482 +AZURE,australiacentral2,Standard_E8ads_v6,spot,NA,0.0729,USD,Azure Retail Prices API,2025-12-18T04:46:33.502319 +AZURE,australiacentral2,Standard_E8as_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:33.502321 +AZURE,australiacentral2,Standard_E8as_v4,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:46:34.423791 +AZURE,australiacentral2,Standard_E8as_v4,reserved_3y,NA,0.229528,USD,Azure Retail Prices API,2025-12-18T04:46:34.423796 +AZURE,australiacentral2,Standard_E8as_v4,spot,NA,0.0604,USD,Azure Retail Prices API,2025-12-18T04:46:33.502066 +AZURE,australiacentral2,Standard_E8as_v5,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:46:33.501059 +AZURE,australiacentral2,Standard_E8as_v5,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:46:34.423175 +AZURE,australiacentral2,Standard_E8as_v5,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:46:34.423183 +AZURE,australiacentral2,Standard_E8as_v5,spot,NA,0.0544,USD,Azure Retail Prices API,2025-12-18T04:46:33.501883 +AZURE,australiacentral2,Standard_E8d_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:33.501270 +AZURE,australiacentral2,Standard_E8d_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:34.422142 +AZURE,australiacentral2,Standard_E8d_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:34.422145 +AZURE,australiacentral2,Standard_E8d_v4,spot,NA,0.0696,USD,Azure Retail Prices API,2025-12-18T04:46:33.501201 +AZURE,australiacentral2,Standard_E8ds_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:33.502017 +AZURE,australiacentral2,Standard_E8ds_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:34.423197 +AZURE,australiacentral2,Standard_E8ds_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:34.423202 +AZURE,australiacentral2,Standard_E8ds_v4,spot,NA,0.0696,USD,Azure Retail Prices API,2025-12-18T04:46:33.501222 +AZURE,australiacentral2,Standard_E8ds_v5,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:33.502036 +AZURE,australiacentral2,Standard_E8ds_v5,reserved_1y,NA,0.410616,USD,Azure Retail Prices API,2025-12-18T04:46:34.423247 +AZURE,australiacentral2,Standard_E8ds_v5,reserved_3y,NA,0.264498,USD,Azure Retail Prices API,2025-12-18T04:46:34.423252 +AZURE,australiacentral2,Standard_E8ds_v5,spot,NA,0.0696,USD,Azure Retail Prices API,2025-12-18T04:46:33.502248 +AZURE,australiacentral2,Standard_E8ds_v6,on_demand,NA,0.784,USD,Azure Retail Prices API,2025-12-18T04:46:33.502039 +AZURE,australiacentral2,Standard_E8ds_v6,reserved_1y,NA,0.485959,USD,Azure Retail Prices API,2025-12-18T04:46:34.423256 +AZURE,australiacentral2,Standard_E8ds_v6,reserved_3y,NA,0.305708,USD,Azure Retail Prices API,2025-12-18T04:46:34.423264 +AZURE,australiacentral2,Standard_E8ds_v6,spot,NA,0.0784,USD,Azure Retail Prices API,2025-12-18T04:46:33.502228 +AZURE,australiacentral2,Standard_E8s_v3,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:33.501668 +AZURE,australiacentral2,Standard_E8s_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:46:34.422569 +AZURE,australiacentral2,Standard_E8s_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:46:34.422575 +AZURE,australiacentral2,Standard_E8s_v3,spot,NA,0.0638,USD,Azure Retail Prices API,2025-12-18T04:46:33.501351 +AZURE,australiacentral2,Standard_E8s_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:33.501261 +AZURE,australiacentral2,Standard_E8s_v4,reserved_1y,NA,0.355137,USD,Azure Retail Prices API,2025-12-18T04:46:34.422130 +AZURE,australiacentral2,Standard_E8s_v4,reserved_3y,NA,0.227093,USD,Azure Retail Prices API,2025-12-18T04:46:34.422133 +AZURE,australiacentral2,Standard_E8s_v4,spot,NA,0.0604,USD,Azure Retail Prices API,2025-12-18T04:46:33.501805 +AZURE,australiacentral2,Standard_E8s_v5,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:33.501918 +AZURE,australiacentral2,Standard_E8s_v5,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:46:34.423007 +AZURE,australiacentral2,Standard_E8s_v5,reserved_3y,NA,0.223478,USD,Azure Retail Prices API,2025-12-18T04:46:34.423012 +AZURE,australiacentral2,Standard_E8s_v5,spot,NA,0.0604,USD,Azure Retail Prices API,2025-12-18T04:46:33.502091 +AZURE,australiacentral2,Standard_E96a_v4,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:33.501690 +AZURE,australiacentral2,Standard_E96a_v4,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:46:34.422601 +AZURE,australiacentral2,Standard_E96a_v4,reserved_3y,NA,2.754224,USD,Azure Retail Prices API,2025-12-18T04:46:34.422609 +AZURE,australiacentral2,Standard_E96a_v4,spot,NA,0.7248,USD,Azure Retail Prices API,2025-12-18T04:46:33.501234 +AZURE,australiacentral2,Standard_E96ads_v5,on_demand,NA,12.048,USD,Azure Retail Prices API,2025-12-18T04:46:33.501011 +AZURE,australiacentral2,Standard_E96ads_v5,reserved_1y,NA,4.502854,USD,Azure Retail Prices API,2025-12-18T04:46:34.422029 +AZURE,australiacentral2,Standard_E96ads_v5,reserved_3y,NA,2.900152,USD,Azure Retail Prices API,2025-12-18T04:46:34.422032 +AZURE,australiacentral2,Standard_E96ads_v5,spot,NA,0.7632,USD,Azure Retail Prices API,2025-12-18T04:46:33.501749 +AZURE,australiacentral2,Standard_E96ads_v6,on_demand,NA,8.746,USD,Azure Retail Prices API,2025-12-18T04:46:33.501557 +AZURE,australiacentral2,Standard_E96ads_v6,reserved_1y,NA,5.159932,USD,Azure Retail Prices API,2025-12-18T04:46:34.422377 +AZURE,australiacentral2,Standard_E96ads_v6,reserved_3y,NA,3.323326,USD,Azure Retail Prices API,2025-12-18T04:46:34.422381 +AZURE,australiacentral2,Standard_E96ads_v6,spot,NA,0.8746,USD,Azure Retail Prices API,2025-12-18T04:46:33.501611 +AZURE,australiacentral2,Standard_E96as_v4,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:33.502187 +AZURE,australiacentral2,Standard_E96as_v4,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:46:34.423508 +AZURE,australiacentral2,Standard_E96as_v4,reserved_3y,NA,2.754224,USD,Azure Retail Prices API,2025-12-18T04:46:34.423513 +AZURE,australiacentral2,Standard_E96as_v4,spot,NA,0.7248,USD,Azure Retail Prices API,2025-12-18T04:46:33.502242 +AZURE,australiacentral2,Standard_E96as_v5,on_demand,NA,6.528,USD,Azure Retail Prices API,2025-12-18T04:46:33.502122 +AZURE,australiacentral2,Standard_E96as_v5,reserved_1y,NA,3.851484,USD,Azure Retail Prices API,2025-12-18T04:46:34.423403 +AZURE,australiacentral2,Standard_E96as_v5,reserved_3y,NA,2.480632,USD,Azure Retail Prices API,2025-12-18T04:46:34.423408 +AZURE,australiacentral2,Standard_E96as_v5,spot,NA,0.6528,USD,Azure Retail Prices API,2025-12-18T04:46:33.502282 +AZURE,australiacentral2,Standard_E96ds_v5,on_demand,NA,8.352,USD,Azure Retail Prices API,2025-12-18T04:46:33.502209 +AZURE,australiacentral2,Standard_E96ds_v5,reserved_1y,NA,4.927626,USD,Azure Retail Prices API,2025-12-18T04:46:34.423561 +AZURE,australiacentral2,Standard_E96ds_v5,reserved_3y,NA,3.173744,USD,Azure Retail Prices API,2025-12-18T04:46:34.423565 +AZURE,australiacentral2,Standard_E96ds_v5,spot,NA,0.8352,USD,Azure Retail Prices API,2025-12-18T04:46:33.502119 +AZURE,australiacentral2,Standard_E96ds_v6,on_demand,NA,9.406,USD,Azure Retail Prices API,2025-12-18T04:46:33.501767 +AZURE,australiacentral2,Standard_E96ds_v6,reserved_1y,NA,5.831735,USD,Azure Retail Prices API,2025-12-18T04:46:34.422723 +AZURE,australiacentral2,Standard_E96ds_v6,reserved_3y,NA,3.668379,USD,Azure Retail Prices API,2025-12-18T04:46:34.422728 +AZURE,australiacentral2,Standard_E96ds_v6,spot,NA,0.9406,USD,Azure Retail Prices API,2025-12-18T04:46:33.501927 +AZURE,australiacentral2,Standard_E96s_v5,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:33.501290 +AZURE,australiacentral2,Standard_E96s_v5,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:46:34.422179 +AZURE,australiacentral2,Standard_E96s_v5,reserved_3y,NA,2.681773,USD,Azure Retail Prices API,2025-12-18T04:46:34.422183 +AZURE,australiacentral2,Standard_E96s_v5,spot,NA,0.7248,USD,Azure Retail Prices API,2025-12-18T04:46:33.501068 +AZURE,australiacentral2,Standard_EC16ads_v6,on_demand,NA,1.458,USD,Azure Retail Prices API,2025-12-18T04:46:33.501951 +AZURE,australiacentral2,Standard_EC16ads_v6,reserved_1y,NA,0.859932,USD,Azure Retail Prices API,2025-12-18T04:46:34.423103 +AZURE,australiacentral2,Standard_EC16ads_v6,reserved_3y,NA,0.553881,USD,Azure Retail Prices API,2025-12-18T04:46:34.423108 +AZURE,australiacentral2,Standard_EC16ads_v6,spot,NA,0.1458,USD,Azure Retail Prices API,2025-12-18T04:46:33.501415 +AZURE,australiacentral2,Standard_EC16as_v6,on_demand,NA,1.198,USD,Azure Retail Prices API,2025-12-18T04:46:33.501454 +AZURE,australiacentral2,Standard_EC16as_v6,reserved_1y,NA,0.707078,USD,Azure Retail Prices API,2025-12-18T04:46:34.422267 +AZURE,australiacentral2,Standard_EC16as_v6,reserved_3y,NA,0.455403,USD,Azure Retail Prices API,2025-12-18T04:46:34.422270 +AZURE,australiacentral2,Standard_EC16as_v6,spot,NA,0.1198,USD,Azure Retail Prices API,2025-12-18T04:46:33.501302 +AZURE,australiacentral2,Standard_EC2ads_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:33.501984 +AZURE,australiacentral2,Standard_EC2ads_v6,reserved_1y,NA,0.107534,USD,Azure Retail Prices API,2025-12-18T04:46:34.423157 +AZURE,australiacentral2,Standard_EC2ads_v6,reserved_3y,NA,0.069254,USD,Azure Retail Prices API,2025-12-18T04:46:34.423162 +AZURE,australiacentral2,Standard_EC2ads_v6,spot,NA,0.0182,USD,Azure Retail Prices API,2025-12-18T04:46:33.501144 +AZURE,australiacentral2,Standard_EC2as_v6,on_demand,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:46:33.501737 +AZURE,australiacentral2,Standard_EC2as_v6,reserved_1y,NA,0.088356,USD,Azure Retail Prices API,2025-12-18T04:46:34.422674 +AZURE,australiacentral2,Standard_EC2as_v6,reserved_3y,NA,0.056925,USD,Azure Retail Prices API,2025-12-18T04:46:34.422679 +AZURE,australiacentral2,Standard_EC2as_v6,spot,NA,0.015,USD,Azure Retail Prices API,2025-12-18T04:46:33.501129 +AZURE,australiacentral2,Standard_EC32ads_v6,on_demand,NA,2.915,USD,Azure Retail Prices API,2025-12-18T04:46:33.501496 +AZURE,australiacentral2,Standard_EC32ads_v6,reserved_1y,NA,1.719977,USD,Azure Retail Prices API,2025-12-18T04:46:34.422302 +AZURE,australiacentral2,Standard_EC32ads_v6,reserved_3y,NA,1.107763,USD,Azure Retail Prices API,2025-12-18T04:46:34.422305 +AZURE,australiacentral2,Standard_EC32ads_v6,spot,NA,0.2915,USD,Azure Retail Prices API,2025-12-18T04:46:33.502364 +AZURE,australiacentral2,Standard_EC32as_v6,on_demand,NA,2.397,USD,Azure Retail Prices API,2025-12-18T04:46:33.501731 +AZURE,australiacentral2,Standard_EC32as_v6,reserved_1y,NA,1.414155,USD,Azure Retail Prices API,2025-12-18T04:46:34.422663 +AZURE,australiacentral2,Standard_EC32as_v6,reserved_3y,NA,0.910769,USD,Azure Retail Prices API,2025-12-18T04:46:34.422667 +AZURE,australiacentral2,Standard_EC32as_v6,spot,NA,0.2397,USD,Azure Retail Prices API,2025-12-18T04:46:33.501205 +AZURE,australiacentral2,Standard_EC48ads_v6,on_demand,NA,4.373,USD,Azure Retail Prices API,2025-12-18T04:46:33.501658 +AZURE,australiacentral2,Standard_EC48ads_v6,reserved_1y,NA,2.579909,USD,Azure Retail Prices API,2025-12-18T04:46:34.422550 +AZURE,australiacentral2,Standard_EC48ads_v6,reserved_3y,NA,1.661682,USD,Azure Retail Prices API,2025-12-18T04:46:34.422554 +AZURE,australiacentral2,Standard_EC48ads_v6,spot,NA,0.4373,USD,Azure Retail Prices API,2025-12-18T04:46:33.501347 +AZURE,australiacentral2,Standard_EC48as_v6,on_demand,NA,3.595,USD,Azure Retail Prices API,2025-12-18T04:46:33.501438 +AZURE,australiacentral2,Standard_EC48as_v6,reserved_1y,NA,2.121119,USD,Azure Retail Prices API,2025-12-18T04:46:34.422243 +AZURE,australiacentral2,Standard_EC48as_v6,reserved_3y,NA,1.366172,USD,Azure Retail Prices API,2025-12-18T04:46:34.422253 +AZURE,australiacentral2,Standard_EC48as_v6,spot,NA,0.3595,USD,Azure Retail Prices API,2025-12-18T04:46:33.501814 +AZURE,australiacentral2,Standard_EC4ads_v6,on_demand,NA,0.364,USD,Azure Retail Prices API,2025-12-18T04:46:33.501681 +AZURE,australiacentral2,Standard_EC4ads_v6,reserved_1y,NA,0.214954,USD,Azure Retail Prices API,2025-12-18T04:46:34.422591 +AZURE,australiacentral2,Standard_EC4ads_v6,reserved_3y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:34.422595 +AZURE,australiacentral2,Standard_EC4ads_v6,spot,NA,0.0364,USD,Azure Retail Prices API,2025-12-18T04:46:33.501428 +AZURE,australiacentral2,Standard_EC4as_v6,on_demand,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:46:33.502125 +AZURE,australiacentral2,Standard_EC4as_v6,reserved_1y,NA,0.176712,USD,Azure Retail Prices API,2025-12-18T04:46:34.423413 +AZURE,australiacentral2,Standard_EC4as_v6,reserved_3y,NA,0.113851,USD,Azure Retail Prices API,2025-12-18T04:46:34.423418 +AZURE,australiacentral2,Standard_EC4as_v6,spot,NA,0.03,USD,Azure Retail Prices API,2025-12-18T04:46:33.501816 +AZURE,australiacentral2,Standard_EC64ads_v6,on_demand,NA,5.83,USD,Azure Retail Prices API,2025-12-18T04:46:33.501843 +AZURE,australiacentral2,Standard_EC64ads_v6,reserved_1y,NA,3.439954,USD,Azure Retail Prices API,2025-12-18T04:46:34.422860 +AZURE,australiacentral2,Standard_EC64ads_v6,reserved_3y,NA,2.215563,USD,Azure Retail Prices API,2025-12-18T04:46:34.422864 +AZURE,australiacentral2,Standard_EC64ads_v6,spot,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:46:33.501802 +AZURE,australiacentral2,Standard_EC64as_v6,on_demand,NA,4.794,USD,Azure Retail Prices API,2025-12-18T04:46:33.501189 +AZURE,australiacentral2,Standard_EC64as_v6,reserved_1y,NA,2.828196,USD,Azure Retail Prices API,2025-12-18T04:46:34.422086 +AZURE,australiacentral2,Standard_EC64as_v6,reserved_3y,NA,1.821575,USD,Azure Retail Prices API,2025-12-18T04:46:34.422089 +AZURE,australiacentral2,Standard_EC64as_v6,spot,NA,0.4794,USD,Azure Retail Prices API,2025-12-18T04:46:33.502367 +AZURE,australiacentral2,Standard_EC8ads_v6,on_demand,NA,0.729,USD,Azure Retail Prices API,2025-12-18T04:46:33.501921 +AZURE,australiacentral2,Standard_EC8ads_v6,reserved_1y,NA,0.430023,USD,Azure Retail Prices API,2025-12-18T04:46:34.423019 +AZURE,australiacentral2,Standard_EC8ads_v6,reserved_3y,NA,0.276941,USD,Azure Retail Prices API,2025-12-18T04:46:34.423024 +AZURE,australiacentral2,Standard_EC8ads_v6,spot,NA,0.0729,USD,Azure Retail Prices API,2025-12-18T04:46:33.502138 +AZURE,australiacentral2,Standard_EC8as_v6,on_demand,NA,0.599,USD,Azure Retail Prices API,2025-12-18T04:46:33.501020 +AZURE,australiacentral2,Standard_EC8as_v6,reserved_1y,NA,0.353539,USD,Azure Retail Prices API,2025-12-18T04:46:34.421947 +AZURE,australiacentral2,Standard_EC8as_v6,reserved_3y,NA,0.227702,USD,Azure Retail Prices API,2025-12-18T04:46:34.421949 +AZURE,australiacentral2,Standard_EC8as_v6,spot,NA,0.0599,USD,Azure Retail Prices API,2025-12-18T04:46:33.501715 +AZURE,australiacentral2,Standard_EC96ads_v6,on_demand,NA,8.746,USD,Azure Retail Prices API,2025-12-18T04:46:33.501752 +AZURE,australiacentral2,Standard_EC96ads_v6,reserved_1y,NA,5.159932,USD,Azure Retail Prices API,2025-12-18T04:46:34.422694 +AZURE,australiacentral2,Standard_EC96ads_v6,reserved_3y,NA,3.323326,USD,Azure Retail Prices API,2025-12-18T04:46:34.422699 +AZURE,australiacentral2,Standard_EC96ads_v6,spot,NA,0.8746,USD,Azure Retail Prices API,2025-12-18T04:46:33.502055 +AZURE,australiacentral2,Standard_EC96as_v6,on_demand,NA,7.19,USD,Azure Retail Prices API,2025-12-18T04:46:33.501001 +AZURE,australiacentral2,Standard_EC96as_v6,reserved_1y,NA,4.242352,USD,Azure Retail Prices API,2025-12-18T04:46:34.421922 +AZURE,australiacentral2,Standard_EC96as_v6,reserved_3y,NA,2.732344,USD,Azure Retail Prices API,2025-12-18T04:46:34.421925 +AZURE,australiacentral2,Standard_EC96as_v6,spot,NA,0.719,USD,Azure Retail Prices API,2025-12-18T04:46:33.501712 +AZURE,australiacentral2,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379697 +AZURE,australiacentral2,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379705 +AZURE,australiacentral2,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379710 +AZURE,australiacentral2,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379701 +AZURE,australiacentral2,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382006 +AZURE,australiacentral2,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382018 +AZURE,australiacentral2,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382025 +AZURE,australiacentral2,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382012 +AZURE,australiacentral2,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384744 +AZURE,australiacentral2,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384753 +AZURE,australiacentral2,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384757 +AZURE,australiacentral2,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384749 +AZURE,australiacentral2,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385590 +AZURE,australiacentral2,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385598 +AZURE,australiacentral2,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385602 +AZURE,australiacentral2,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385594 +AZURE,australiacentral2,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378171 +AZURE,australiacentral2,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378180 +AZURE,australiacentral2,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378184 +AZURE,australiacentral2,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378175 +AZURE,australiacentral2,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386339 +AZURE,australiacentral2,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386347 +AZURE,australiacentral2,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386351 +AZURE,australiacentral2,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386343 +AZURE,australiacentral2,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380460 +AZURE,australiacentral2,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380468 +AZURE,australiacentral2,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380472 +AZURE,australiacentral2,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380464 +AZURE,australiacentral2,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383135 +AZURE,australiacentral2,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383144 +AZURE,australiacentral2,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383149 +AZURE,australiacentral2,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383140 +AZURE,australiacentral2,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387121 +AZURE,australiacentral2,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387130 +AZURE,australiacentral2,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387135 +AZURE,australiacentral2,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387126 +AZURE,australiacentral2,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388313 +AZURE,australiacentral2,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388321 +AZURE,australiacentral2,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388325 +AZURE,australiacentral2,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388317 +AZURE,australiacentral2,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378914 +AZURE,australiacentral2,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378922 +AZURE,australiacentral2,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378927 +AZURE,australiacentral2,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378918 +AZURE,australiacentral2,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381200 +AZURE,australiacentral2,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381210 +AZURE,australiacentral2,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381216 +AZURE,australiacentral2,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381204 +AZURE,australiacentral2,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383927 +AZURE,australiacentral2,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383936 +AZURE,australiacentral2,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383940 +AZURE,australiacentral2,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383931 +AZURE,australiacentral2,Standard_L16as_v3,on_demand,NA,1.496,USD,Azure Retail Prices API,2025-12-18T04:46:33.502333 +AZURE,australiacentral2,Standard_L16as_v3,reserved_1y,NA,0.95742,USD,Azure Retail Prices API,2025-12-18T04:46:34.423834 +AZURE,australiacentral2,Standard_L16as_v3,reserved_3y,NA,0.628311,USD,Azure Retail Prices API,2025-12-18T04:46:34.423837 +AZURE,australiacentral2,Standard_L16as_v3,spot,NA,0.1496,USD,Azure Retail Prices API,2025-12-18T04:46:33.502285 +AZURE,australiacentral2,Standard_L16s_v3,on_demand,NA,1.672,USD,Azure Retail Prices API,2025-12-18T04:46:33.501195 +AZURE,australiacentral2,Standard_L16s_v3,reserved_1y,NA,1.070091,USD,Azure Retail Prices API,2025-12-18T04:46:34.422091 +AZURE,australiacentral2,Standard_L16s_v3,reserved_3y,NA,0.702245,USD,Azure Retail Prices API,2025-12-18T04:46:34.422094 +AZURE,australiacentral2,Standard_L16s_v3,spot,NA,0.1672,USD,Azure Retail Prices API,2025-12-18T04:46:33.501499 +AZURE,australiacentral2,Standard_L32as_v3,on_demand,NA,2.992,USD,Azure Retail Prices API,2025-12-18T04:46:33.501100 +AZURE,australiacentral2,Standard_L32as_v3,reserved_1y,NA,1.91484,USD,Azure Retail Prices API,2025-12-18T04:46:34.422012 +AZURE,australiacentral2,Standard_L32as_v3,reserved_3y,NA,1.256621,USD,Azure Retail Prices API,2025-12-18T04:46:34.422015 +AZURE,australiacentral2,Standard_L32as_v3,spot,NA,0.2992,USD,Azure Retail Prices API,2025-12-18T04:46:33.501684 +AZURE,australiacentral2,Standard_L32s_v3,on_demand,NA,3.344,USD,Azure Retail Prices API,2025-12-18T04:46:33.502195 +AZURE,australiacentral2,Standard_L32s_v3,reserved_1y,NA,2.140183,USD,Azure Retail Prices API,2025-12-18T04:46:34.423540 +AZURE,australiacentral2,Standard_L32s_v3,reserved_3y,NA,1.40449,USD,Azure Retail Prices API,2025-12-18T04:46:34.423545 +AZURE,australiacentral2,Standard_L32s_v3,spot,NA,0.3344,USD,Azure Retail Prices API,2025-12-18T04:46:33.501634 +AZURE,australiacentral2,Standard_L48as_v3,on_demand,NA,4.488,USD,Azure Retail Prices API,2025-12-18T04:46:33.501576 +AZURE,australiacentral2,Standard_L48as_v3,reserved_1y,NA,2.872374,USD,Azure Retail Prices API,2025-12-18T04:46:34.422404 +AZURE,australiacentral2,Standard_L48as_v3,reserved_3y,NA,1.88497,USD,Azure Retail Prices API,2025-12-18T04:46:34.422408 +AZURE,australiacentral2,Standard_L48as_v3,spot,NA,0.4488,USD,Azure Retail Prices API,2025-12-18T04:46:33.501385 +AZURE,australiacentral2,Standard_L48s_v3,on_demand,NA,5.016,USD,Azure Retail Prices API,2025-12-18T04:46:33.501464 +AZURE,australiacentral2,Standard_L48s_v3,reserved_1y,NA,3.210274,USD,Azure Retail Prices API,2025-12-18T04:46:34.422278 +AZURE,australiacentral2,Standard_L48s_v3,reserved_3y,NA,2.106735,USD,Azure Retail Prices API,2025-12-18T04:46:34.422281 +AZURE,australiacentral2,Standard_L48s_v3,spot,NA,0.5016,USD,Azure Retail Prices API,2025-12-18T04:46:33.502047 +AZURE,australiacentral2,Standard_L64as_v3,on_demand,NA,5.984,USD,Azure Retail Prices API,2025-12-18T04:46:33.502277 +AZURE,australiacentral2,Standard_L64as_v3,reserved_1y,NA,3.829795,USD,Azure Retail Prices API,2025-12-18T04:46:34.423665 +AZURE,australiacentral2,Standard_L64as_v3,reserved_3y,NA,2.51328,USD,Azure Retail Prices API,2025-12-18T04:46:34.423670 +AZURE,australiacentral2,Standard_L64as_v3,spot,NA,0.5984,USD,Azure Retail Prices API,2025-12-18T04:46:33.502083 +AZURE,australiacentral2,Standard_L64s_v3,on_demand,NA,6.688,USD,Azure Retail Prices API,2025-12-18T04:46:33.501891 +AZURE,australiacentral2,Standard_L64s_v3,reserved_1y,NA,4.280365,USD,Azure Retail Prices API,2025-12-18T04:46:34.422942 +AZURE,australiacentral2,Standard_L64s_v3,reserved_3y,NA,2.808942,USD,Azure Retail Prices API,2025-12-18T04:46:34.422949 +AZURE,australiacentral2,Standard_L64s_v3,spot,NA,0.6688,USD,Azure Retail Prices API,2025-12-18T04:46:33.501294 +AZURE,australiacentral2,Standard_L80as_v3,on_demand,NA,7.48,USD,Azure Retail Prices API,2025-12-18T04:46:33.501333 +AZURE,australiacentral2,Standard_L80as_v3,reserved_1y,NA,4.787215,USD,Azure Retail Prices API,2025-12-18T04:46:34.422206 +AZURE,australiacentral2,Standard_L80as_v3,reserved_3y,NA,3.141591,USD,Azure Retail Prices API,2025-12-18T04:46:34.422210 +AZURE,australiacentral2,Standard_L80as_v3,spot,NA,0.748,USD,Azure Retail Prices API,2025-12-18T04:46:33.502169 +AZURE,australiacentral2,Standard_L80s_v3,on_demand,NA,8.36,USD,Azure Retail Prices API,2025-12-18T04:46:33.502274 +AZURE,australiacentral2,Standard_L80s_v3,reserved_1y,NA,5.350457,USD,Azure Retail Prices API,2025-12-18T04:46:34.423653 +AZURE,australiacentral2,Standard_L80s_v3,reserved_3y,NA,3.511187,USD,Azure Retail Prices API,2025-12-18T04:46:34.423658 +AZURE,australiacentral2,Standard_L80s_v3,spot,NA,0.836,USD,Azure Retail Prices API,2025-12-18T04:46:33.502075 +AZURE,australiacentral2,Standard_L8as_v3,on_demand,NA,0.748,USD,Azure Retail Prices API,2025-12-18T04:46:33.501957 +AZURE,australiacentral2,Standard_L8as_v3,reserved_1y,NA,0.478767,USD,Azure Retail Prices API,2025-12-18T04:46:34.423119 +AZURE,australiacentral2,Standard_L8as_v3,reserved_3y,NA,0.314155,USD,Azure Retail Prices API,2025-12-18T04:46:34.423124 +AZURE,australiacentral2,Standard_L8as_v3,spot,NA,0.0748,USD,Azure Retail Prices API,2025-12-18T04:46:33.501703 +AZURE,australiacentral2,Standard_L8s_v3,on_demand,NA,0.836,USD,Azure Retail Prices API,2025-12-18T04:46:33.502105 +AZURE,australiacentral2,Standard_L8s_v3,reserved_1y,NA,0.535046,USD,Azure Retail Prices API,2025-12-18T04:46:34.423370 +AZURE,australiacentral2,Standard_L8s_v3,reserved_3y,NA,0.351104,USD,Azure Retail Prices API,2025-12-18T04:46:34.423375 +AZURE,australiacentral2,Standard_L8s_v3,spot,NA,0.0836,USD,Azure Retail Prices API,2025-12-18T04:46:33.501567 +AZURE,australiacentral2,Standard_NC16as_T4_v3,on_demand,NA,1.565,USD,Azure Retail Prices API,2025-12-18T04:46:33.502081 +AZURE,australiacentral2,Standard_NC16as_T4_v3,reserved_1y,NA,0.923059,USD,Azure Retail Prices API,2025-12-18T04:46:34.423330 +AZURE,australiacentral2,Standard_NC16as_T4_v3,reserved_3y,NA,0.657116,USD,Azure Retail Prices API,2025-12-18T04:46:34.423335 +AZURE,australiacentral2,Standard_NC16as_T4_v3,spot,NA,0.1565,USD,Azure Retail Prices API,2025-12-18T04:46:33.501249 +AZURE,australiacentral2,Standard_NC4as_T4_v3,on_demand,NA,0.684,USD,Azure Retail Prices API,2025-12-18T04:46:33.501288 +AZURE,australiacentral2,Standard_NC4as_T4_v3,reserved_1y,NA,0.403425,USD,Azure Retail Prices API,2025-12-18T04:46:34.422170 +AZURE,australiacentral2,Standard_NC4as_T4_v3,reserved_3y,NA,0.287215,USD,Azure Retail Prices API,2025-12-18T04:46:34.422175 +AZURE,australiacentral2,Standard_NC4as_T4_v3,spot,NA,0.0684,USD,Azure Retail Prices API,2025-12-18T04:46:33.501822 +AZURE,australiacentral2,Standard_NC64as_T4_v3,on_demand,NA,5.645,USD,Azure Retail Prices API,2025-12-18T04:46:33.501618 +AZURE,australiacentral2,Standard_NC64as_T4_v3,reserved_1y,NA,3.330822,USD,Azure Retail Prices API,2025-12-18T04:46:34.422487 +AZURE,australiacentral2,Standard_NC64as_T4_v3,reserved_3y,NA,2.371081,USD,Azure Retail Prices API,2025-12-18T04:46:34.422492 +AZURE,australiacentral2,Standard_NC64as_T4_v3,spot,NA,0.5645,USD,Azure Retail Prices API,2025-12-18T04:46:33.501924 +AZURE,australiacentral2,Standard_NC8as_T4_v3,on_demand,NA,0.977,USD,Azure Retail Prices API,2025-12-18T04:46:33.502237 +AZURE,australiacentral2,Standard_NC8as_T4_v3,reserved_1y,NA,0.576256,USD,Azure Retail Prices API,2025-12-18T04:46:34.423604 +AZURE,australiacentral2,Standard_NC8as_T4_v3,reserved_3y,NA,0.410236,USD,Azure Retail Prices API,2025-12-18T04:46:34.423609 +AZURE,australiacentral2,Standard_NC8as_T4_v3,spot,NA,0.0977,USD,Azure Retail Prices API,2025-12-18T04:46:33.501808 +AZURE,australiaeast,Standard_D128ds_v6,on_demand,NA,9.967,USD,Azure Retail Prices API,2025-12-18T04:46:23.707292 +AZURE,australiaeast,Standard_D128ds_v6,reserved_1y,NA,6.179795,USD,Azure Retail Prices API,2025-12-18T04:46:25.559562 +AZURE,australiaeast,Standard_D128ds_v6,reserved_3y,NA,3.887253,USD,Azure Retail Prices API,2025-12-18T04:46:25.559565 +AZURE,australiaeast,Standard_D128ds_v6,spot,NA,1.841902,USD,Azure Retail Prices API,2025-12-18T04:46:23.707642 +AZURE,australiaeast,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488524 +AZURE,australiaeast,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488532 +AZURE,australiaeast,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488536 +AZURE,australiaeast,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488528 +AZURE,australiaeast,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489304 +AZURE,australiaeast,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489312 +AZURE,australiaeast,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489316 +AZURE,australiaeast,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489308 +AZURE,australiaeast,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490403 +AZURE,australiaeast,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490411 +AZURE,australiaeast,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490415 +AZURE,australiaeast,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490407 +AZURE,australiaeast,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491157 +AZURE,australiaeast,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491165 +AZURE,australiaeast,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491169 +AZURE,australiaeast,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491161 +AZURE,australiaeast,Standard_D16_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:23.708355 +AZURE,australiaeast,Standard_D16_v3,reserved_1y,NA,0.627169,USD,Azure Retail Prices API,2025-12-18T04:46:25.560602 +AZURE,australiaeast,Standard_D16_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:25.560605 +AZURE,australiaeast,Standard_D16_v3,spot,NA,0.2139,USD,Azure Retail Prices API,2025-12-18T04:46:23.707968 +AZURE,australiaeast,Standard_D16a_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:23.708490 +AZURE,australiaeast,Standard_D16a_v4,reserved_1y,NA,0.564498,USD,Azure Retail Prices API,2025-12-18T04:46:25.560759 +AZURE,australiaeast,Standard_D16a_v4,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:25.560762 +AZURE,australiaeast,Standard_D16a_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:23.708116 +AZURE,australiaeast,Standard_D16ads_v5,on_demand,NA,1.04,USD,Azure Retail Prices API,2025-12-18T04:46:23.708179 +AZURE,australiaeast,Standard_D16ads_v5,reserved_1y,NA,0.613584,USD,Azure Retail Prices API,2025-12-18T04:46:25.560373 +AZURE,australiaeast,Standard_D16ads_v5,reserved_3y,NA,0.395205,USD,Azure Retail Prices API,2025-12-18T04:46:25.560376 +AZURE,australiaeast,Standard_D16ads_v5,spot,NA,0.192192,USD,Azure Retail Prices API,2025-12-18T04:46:23.708235 +AZURE,australiaeast,Standard_D16ads_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:46:23.707944 +AZURE,australiaeast,Standard_D16ads_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:46:25.560161 +AZURE,australiaeast,Standard_D16ads_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:46:25.560164 +AZURE,australiaeast,Standard_D16ads_v6,spot,NA,0.211781,USD,Azure Retail Prices API,2025-12-18T04:46:23.707233 +AZURE,australiaeast,Standard_D16as_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:23.708506 +AZURE,australiaeast,Standard_D16as_v4,reserved_1y,NA,0.564498,USD,Azure Retail Prices API,2025-12-18T04:46:25.560770 +AZURE,australiaeast,Standard_D16as_v4,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:25.560774 +AZURE,australiaeast,Standard_D16as_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:23.708406 +AZURE,australiaeast,Standard_D16as_v5,on_demand,NA,0.864,USD,Azure Retail Prices API,2025-12-18T04:46:23.707789 +AZURE,australiaeast,Standard_D16as_v5,reserved_1y,NA,0.509703,USD,Azure Retail Prices API,2025-12-18T04:46:25.560038 +AZURE,australiaeast,Standard_D16as_v5,reserved_3y,NA,0.328311,USD,Azure Retail Prices API,2025-12-18T04:46:25.560041 +AZURE,australiaeast,Standard_D16as_v5,spot,NA,0.159667,USD,Azure Retail Prices API,2025-12-18T04:46:23.707239 +AZURE,australiaeast,Standard_D16d_v4,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:23.707520 +AZURE,australiaeast,Standard_D16d_v4,reserved_1y,NA,0.667922,USD,Azure Retail Prices API,2025-12-18T04:46:25.559808 +AZURE,australiaeast,Standard_D16d_v4,reserved_3y,NA,0.427131,USD,Azure Retail Prices API,2025-12-18T04:46:25.559811 +AZURE,australiaeast,Standard_D16d_v4,spot,NA,0.320693,USD,Azure Retail Prices API,2025-12-18T04:46:23.708069 +AZURE,australiaeast,Standard_D16ds_v4,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:23.707471 +AZURE,australiaeast,Standard_D16ds_v4,reserved_1y,NA,0.667922,USD,Azure Retail Prices API,2025-12-18T04:46:25.559717 +AZURE,australiaeast,Standard_D16ds_v4,reserved_3y,NA,0.427131,USD,Azure Retail Prices API,2025-12-18T04:46:25.559720 +AZURE,australiaeast,Standard_D16ds_v4,spot,NA,0.320693,USD,Azure Retail Prices API,2025-12-18T04:46:23.707451 +AZURE,australiaeast,Standard_D16ds_v5,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:23.708274 +AZURE,australiaeast,Standard_D16ds_v5,reserved_1y,NA,0.670205,USD,Azure Retail Prices API,2025-12-18T04:46:25.560491 +AZURE,australiaeast,Standard_D16ds_v5,reserved_3y,NA,0.431697,USD,Azure Retail Prices API,2025-12-18T04:46:25.560494 +AZURE,australiaeast,Standard_D16ds_v5,spot,NA,0.368859,USD,Azure Retail Prices API,2025-12-18T04:46:23.707289 +AZURE,australiaeast,Standard_D16ds_v6,on_demand,NA,1.246,USD,Azure Retail Prices API,2025-12-18T04:46:23.707457 +AZURE,australiaeast,Standard_D16ds_v6,reserved_1y,NA,0.772489,USD,Azure Retail Prices API,2025-12-18T04:46:25.559701 +AZURE,australiaeast,Standard_D16ds_v6,reserved_3y,NA,0.485921,USD,Azure Retail Prices API,2025-12-18T04:46:25.559703 +AZURE,australiaeast,Standard_D16ds_v6,spot,NA,0.230261,USD,Azure Retail Prices API,2025-12-18T04:46:23.708381 +AZURE,australiaeast,Standard_D16pds_v6,on_demand,NA,0.915,USD,Azure Retail Prices API,2025-12-18T04:46:23.707227 +AZURE,australiaeast,Standard_D16pds_v6,reserved_1y,NA,0.539954,USD,Azure Retail Prices API,2025-12-18T04:46:25.559505 +AZURE,australiaeast,Standard_D16pds_v6,reserved_3y,NA,0.347793,USD,Azure Retail Prices API,2025-12-18T04:46:25.559508 +AZURE,australiaeast,Standard_D16pds_v6,spot,NA,0.169092,USD,Azure Retail Prices API,2025-12-18T04:46:23.707402 +AZURE,australiaeast,Standard_D16ps_v6,on_demand,NA,0.699,USD,Azure Retail Prices API,2025-12-18T04:46:23.708788 +AZURE,australiaeast,Standard_D16ps_v6,reserved_1y,NA,0.412557,USD,Azure Retail Prices API,2025-12-18T04:46:25.561049 +AZURE,australiaeast,Standard_D16ps_v6,reserved_3y,NA,0.265677,USD,Azure Retail Prices API,2025-12-18T04:46:25.561052 +AZURE,australiaeast,Standard_D16ps_v6,spot,NA,0.129175,USD,Azure Retail Prices API,2025-12-18T04:46:23.707836 +AZURE,australiaeast,Standard_D16s_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:23.708342 +AZURE,australiaeast,Standard_D16s_v3,reserved_1y,NA,0.627169,USD,Azure Retail Prices API,2025-12-18T04:46:25.560573 +AZURE,australiaeast,Standard_D16s_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:25.560576 +AZURE,australiaeast,Standard_D16s_v3,spot,NA,0.2139,USD,Azure Retail Prices API,2025-12-18T04:46:23.707714 +AZURE,australiaeast,Standard_D16s_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:23.707808 +AZURE,australiaeast,Standard_D16s_v4,reserved_1y,NA,0.564498,USD,Azure Retail Prices API,2025-12-18T04:46:25.560050 +AZURE,australiaeast,Standard_D16s_v4,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:25.560053 +AZURE,australiaeast,Standard_D16s_v4,spot,NA,0.246912,USD,Azure Retail Prices API,2025-12-18T04:46:23.708753 +AZURE,australiaeast,Standard_D16s_v5,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:23.708327 +AZURE,australiaeast,Standard_D16s_v5,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:25.560555 +AZURE,australiaeast,Standard_D16s_v5,reserved_3y,NA,0.355213,USD,Azure Retail Prices API,2025-12-18T04:46:25.560557 +AZURE,australiaeast,Standard_D16s_v5,spot,NA,0.328032,USD,Azure Retail Prices API,2025-12-18T04:46:23.708477 +AZURE,australiaeast,Standard_D2ads_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:23.708432 +AZURE,australiaeast,Standard_D2ads_v6,reserved_1y,NA,0.084475,USD,Azure Retail Prices API,2025-12-18T04:46:25.560688 +AZURE,australiaeast,Standard_D2ads_v6,reserved_3y,NA,0.054414,USD,Azure Retail Prices API,2025-12-18T04:46:25.560691 +AZURE,australiaeast,Standard_D2ads_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:46:23.707886 +AZURE,australiaeast,Standard_D2ds_v6,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:46:23.707483 +AZURE,australiaeast,Standard_D2ds_v6,reserved_1y,NA,0.096575,USD,Azure Retail Prices API,2025-12-18T04:46:25.559748 +AZURE,australiaeast,Standard_D2ds_v6,reserved_3y,NA,0.060731,USD,Azure Retail Prices API,2025-12-18T04:46:25.559752 +AZURE,australiaeast,Standard_D2ds_v6,spot,NA,0.028829,USD,Azure Retail Prices API,2025-12-18T04:46:23.707414 +AZURE,australiaeast,Standard_D32_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:23.708581 +AZURE,australiaeast,Standard_D32_v3,reserved_1y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:25.560829 +AZURE,australiaeast,Standard_D32_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:25.560832 +AZURE,australiaeast,Standard_D32_v3,spot,NA,0.4278,USD,Azure Retail Prices API,2025-12-18T04:46:23.708224 +AZURE,australiaeast,Standard_D32a_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:23.708655 +AZURE,australiaeast,Standard_D32a_v4,reserved_1y,NA,1.128995,USD,Azure Retail Prices API,2025-12-18T04:46:25.560913 +AZURE,australiaeast,Standard_D32a_v4,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:25.560916 +AZURE,australiaeast,Standard_D32a_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:23.708153 +AZURE,australiaeast,Standard_D32ads_v5,on_demand,NA,2.08,USD,Azure Retail Prices API,2025-12-18T04:46:23.707405 +AZURE,australiaeast,Standard_D32ads_v5,reserved_1y,NA,1.227169,USD,Azure Retail Prices API,2025-12-18T04:46:25.559651 +AZURE,australiaeast,Standard_D32ads_v5,reserved_3y,NA,0.790411,USD,Azure Retail Prices API,2025-12-18T04:46:25.559656 +AZURE,australiaeast,Standard_D32ads_v5,spot,NA,0.384384,USD,Azure Retail Prices API,2025-12-18T04:46:23.708866 +AZURE,australiaeast,Standard_D32ads_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:23.707324 +AZURE,australiaeast,Standard_D32ads_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:46:25.559598 +AZURE,australiaeast,Standard_D32ads_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:46:25.559601 +AZURE,australiaeast,Standard_D32ads_v6,spot,NA,0.423377,USD,Azure Retail Prices API,2025-12-18T04:46:23.708863 +AZURE,australiaeast,Standard_D32as_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:23.708670 +AZURE,australiaeast,Standard_D32as_v4,reserved_1y,NA,1.128995,USD,Azure Retail Prices API,2025-12-18T04:46:25.560919 +AZURE,australiaeast,Standard_D32as_v4,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:25.560922 +AZURE,australiaeast,Standard_D32as_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:23.708815 +AZURE,australiaeast,Standard_D32as_v5,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:46:23.707408 +AZURE,australiaeast,Standard_D32as_v5,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:46:25.560350 +AZURE,australiaeast,Standard_D32as_v5,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:46:25.560352 +AZURE,australiaeast,Standard_D32as_v5,spot,NA,0.319334,USD,Azure Retail Prices API,2025-12-18T04:46:23.708897 +AZURE,australiaeast,Standard_D32d_v4,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:23.708560 +AZURE,australiaeast,Standard_D32d_v4,reserved_1y,NA,1.335959,USD,Azure Retail Prices API,2025-12-18T04:46:25.560812 +AZURE,australiaeast,Standard_D32d_v4,reserved_3y,NA,0.854262,USD,Azure Retail Prices API,2025-12-18T04:46:25.560815 +AZURE,australiaeast,Standard_D32d_v4,spot,NA,0.641386,USD,Azure Retail Prices API,2025-12-18T04:46:23.708785 +AZURE,australiaeast,Standard_D32ds_v4,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:23.707668 +AZURE,australiaeast,Standard_D32ds_v4,reserved_1y,NA,1.335959,USD,Azure Retail Prices API,2025-12-18T04:46:25.559943 +AZURE,australiaeast,Standard_D32ds_v4,reserved_3y,NA,0.854262,USD,Azure Retail Prices API,2025-12-18T04:46:25.559946 +AZURE,australiaeast,Standard_D32ds_v4,spot,NA,0.641386,USD,Azure Retail Prices API,2025-12-18T04:46:23.708400 +AZURE,australiaeast,Standard_D32ds_v5,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:23.708384 +AZURE,australiaeast,Standard_D32ds_v5,reserved_1y,NA,1.340525,USD,Azure Retail Prices API,2025-12-18T04:46:25.560625 +AZURE,australiaeast,Standard_D32ds_v5,reserved_3y,NA,0.863356,USD,Azure Retail Prices API,2025-12-18T04:46:25.560630 +AZURE,australiaeast,Standard_D32ds_v5,spot,NA,0.737718,USD,Azure Retail Prices API,2025-12-18T04:46:23.707873 +AZURE,australiaeast,Standard_D32ds_v6,on_demand,NA,2.492,USD,Azure Retail Prices API,2025-12-18T04:46:23.708120 +AZURE,australiaeast,Standard_D32ds_v6,reserved_1y,NA,1.544977,USD,Azure Retail Prices API,2025-12-18T04:46:25.560332 +AZURE,australiaeast,Standard_D32ds_v6,reserved_3y,NA,0.971804,USD,Azure Retail Prices API,2025-12-18T04:46:25.560335 +AZURE,australiaeast,Standard_D32ds_v6,spot,NA,0.460522,USD,Azure Retail Prices API,2025-12-18T04:46:23.708496 +AZURE,australiaeast,Standard_D32pds_v6,on_demand,NA,1.83,USD,Azure Retail Prices API,2025-12-18T04:46:23.707656 +AZURE,australiaeast,Standard_D32pds_v6,reserved_1y,NA,1.079909,USD,Azure Retail Prices API,2025-12-18T04:46:25.559920 +AZURE,australiaeast,Standard_D32pds_v6,reserved_3y,NA,0.695548,USD,Azure Retail Prices API,2025-12-18T04:46:25.559922 +AZURE,australiaeast,Standard_D32pds_v6,spot,NA,0.338184,USD,Azure Retail Prices API,2025-12-18T04:46:23.707811 +AZURE,australiaeast,Standard_D32ps_v6,on_demand,NA,1.398,USD,Azure Retail Prices API,2025-12-18T04:46:23.708830 +AZURE,australiaeast,Standard_D32ps_v6,reserved_1y,NA,0.825,USD,Azure Retail Prices API,2025-12-18T04:46:25.561110 +AZURE,australiaeast,Standard_D32ps_v6,reserved_3y,NA,0.531393,USD,Azure Retail Prices API,2025-12-18T04:46:25.561113 +AZURE,australiaeast,Standard_D32ps_v6,spot,NA,0.25835,USD,Azure Retail Prices API,2025-12-18T04:46:23.708531 +AZURE,australiaeast,Standard_D32s_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:23.708065 +AZURE,australiaeast,Standard_D32s_v3,reserved_1y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:25.560286 +AZURE,australiaeast,Standard_D32s_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:25.560288 +AZURE,australiaeast,Standard_D32s_v3,spot,NA,0.4278,USD,Azure Retail Prices API,2025-12-18T04:46:23.708428 +AZURE,australiaeast,Standard_D32s_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:23.708014 +AZURE,australiaeast,Standard_D32s_v4,reserved_1y,NA,1.128995,USD,Azure Retail Prices API,2025-12-18T04:46:25.560230 +AZURE,australiaeast,Standard_D32s_v4,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:25.560235 +AZURE,australiaeast,Standard_D32s_v4,spot,NA,0.493824,USD,Azure Retail Prices API,2025-12-18T04:46:23.707269 +AZURE,australiaeast,Standard_D32s_v5,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:23.707393 +AZURE,australiaeast,Standard_D32s_v5,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:25.559643 +AZURE,australiaeast,Standard_D32s_v5,reserved_3y,NA,0.710388,USD,Azure Retail Prices API,2025-12-18T04:46:25.559646 +AZURE,australiaeast,Standard_D32s_v5,spot,NA,0.656064,USD,Azure Retail Prices API,2025-12-18T04:46:23.707500 +AZURE,australiaeast,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485601 +AZURE,australiaeast,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485616 +AZURE,australiaeast,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485624 +AZURE,australiaeast,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485608 +AZURE,australiaeast,Standard_D48a_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:23.707977 +AZURE,australiaeast,Standard_D48a_v4,reserved_1y,NA,1.693493,USD,Azure Retail Prices API,2025-12-18T04:46:25.560177 +AZURE,australiaeast,Standard_D48a_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:25.560182 +AZURE,australiaeast,Standard_D48a_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:23.707870 +AZURE,australiaeast,Standard_D48ads_v5,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:46:23.707919 +AZURE,australiaeast,Standard_D48ads_v5,reserved_1y,NA,1.840753,USD,Azure Retail Prices API,2025-12-18T04:46:25.560150 +AZURE,australiaeast,Standard_D48ads_v5,reserved_3y,NA,1.185616,USD,Azure Retail Prices API,2025-12-18T04:46:25.560152 +AZURE,australiaeast,Standard_D48ads_v5,spot,NA,0.576576,USD,Azure Retail Prices API,2025-12-18T04:46:23.708840 +AZURE,australiaeast,Standard_D48ads_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:46:23.708632 +AZURE,australiaeast,Standard_D48ads_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:46:25.560881 +AZURE,australiaeast,Standard_D48ads_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:46:25.560884 +AZURE,australiaeast,Standard_D48ads_v6,spot,NA,0.635158,USD,Azure Retail Prices API,2025-12-18T04:46:23.707554 +AZURE,australiaeast,Standard_D48as_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:23.708352 +AZURE,australiaeast,Standard_D48as_v4,reserved_1y,NA,1.693493,USD,Azure Retail Prices API,2025-12-18T04:46:25.560594 +AZURE,australiaeast,Standard_D48as_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:25.560597 +AZURE,australiaeast,Standard_D48as_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:23.708059 +AZURE,australiaeast,Standard_D48as_v5,on_demand,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:46:23.707620 +AZURE,australiaeast,Standard_D48as_v5,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:46:25.560589 +AZURE,australiaeast,Standard_D48as_v5,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:46:25.560592 +AZURE,australiaeast,Standard_D48as_v5,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:46:23.708613 +AZURE,australiaeast,Standard_D48d_v4,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:23.708107 +AZURE,australiaeast,Standard_D48d_v4,reserved_1y,NA,2.003881,USD,Azure Retail Prices API,2025-12-18T04:46:25.560314 +AZURE,australiaeast,Standard_D48d_v4,reserved_3y,NA,1.281393,USD,Azure Retail Prices API,2025-12-18T04:46:25.560317 +AZURE,australiaeast,Standard_D48d_v4,spot,NA,0.962078,USD,Azure Retail Prices API,2025-12-18T04:46:23.707251 +AZURE,australiaeast,Standard_D48ds_v4,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:23.708001 +AZURE,australiaeast,Standard_D48ds_v4,reserved_1y,NA,2.003881,USD,Azure Retail Prices API,2025-12-18T04:46:25.560205 +AZURE,australiaeast,Standard_D48ds_v4,reserved_3y,NA,1.281393,USD,Azure Retail Prices API,2025-12-18T04:46:25.560208 +AZURE,australiaeast,Standard_D48ds_v4,spot,NA,0.962078,USD,Azure Retail Prices API,2025-12-18T04:46:23.708895 +AZURE,australiaeast,Standard_D48ds_v5,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:23.708480 +AZURE,australiaeast,Standard_D48ds_v5,reserved_1y,NA,2.010731,USD,Azure Retail Prices API,2025-12-18T04:46:25.560742 +AZURE,australiaeast,Standard_D48ds_v5,reserved_3y,NA,1.295053,USD,Azure Retail Prices API,2025-12-18T04:46:25.560744 +AZURE,australiaeast,Standard_D48ds_v5,spot,NA,1.106578,USD,Azure Retail Prices API,2025-12-18T04:46:23.707748 +AZURE,australiaeast,Standard_D48ds_v6,on_demand,NA,3.738,USD,Azure Retail Prices API,2025-12-18T04:46:23.707780 +AZURE,australiaeast,Standard_D48ds_v6,reserved_1y,NA,2.317466,USD,Azure Retail Prices API,2025-12-18T04:46:25.560028 +AZURE,australiaeast,Standard_D48ds_v6,reserved_3y,NA,1.457725,USD,Azure Retail Prices API,2025-12-18T04:46:25.560033 +AZURE,australiaeast,Standard_D48ds_v6,spot,NA,0.690782,USD,Azure Retail Prices API,2025-12-18T04:46:23.708779 +AZURE,australiaeast,Standard_D48pds_v6,on_demand,NA,2.746,USD,Azure Retail Prices API,2025-12-18T04:46:23.707488 +AZURE,australiaeast,Standard_D48pds_v6,reserved_1y,NA,1.619863,USD,Azure Retail Prices API,2025-12-18T04:46:25.559765 +AZURE,australiaeast,Standard_D48pds_v6,reserved_3y,NA,1.043341,USD,Azure Retail Prices API,2025-12-18T04:46:25.559770 +AZURE,australiaeast,Standard_D48pds_v6,spot,NA,0.507461,USD,Azure Retail Prices API,2025-12-18T04:46:23.707320 +AZURE,australiaeast,Standard_D48ps_v6,on_demand,NA,2.098,USD,Azure Retail Prices API,2025-12-18T04:46:23.708743 +AZURE,australiaeast,Standard_D48ps_v6,reserved_1y,NA,1.237557,USD,Azure Retail Prices API,2025-12-18T04:46:25.561000 +AZURE,australiaeast,Standard_D48ps_v6,reserved_3y,NA,0.79707,USD,Azure Retail Prices API,2025-12-18T04:46:25.561003 +AZURE,australiaeast,Standard_D48ps_v6,spot,NA,0.38771,USD,Azure Retail Prices API,2025-12-18T04:46:23.707508 +AZURE,australiaeast,Standard_D48s_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:23.707298 +AZURE,australiaeast,Standard_D48s_v4,reserved_1y,NA,1.693493,USD,Azure Retail Prices API,2025-12-18T04:46:25.559574 +AZURE,australiaeast,Standard_D48s_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:25.559576 +AZURE,australiaeast,Standard_D48s_v4,spot,NA,0.740736,USD,Azure Retail Prices API,2025-12-18T04:46:23.708737 +AZURE,australiaeast,Standard_D48s_v5,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:23.708683 +AZURE,australiaeast,Standard_D48s_v5,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:25.560941 +AZURE,australiaeast,Standard_D48s_v5,reserved_3y,NA,1.065601,USD,Azure Retail Prices API,2025-12-18T04:46:25.560944 +AZURE,australiaeast,Standard_D48s_v5,spot,NA,0.984096,USD,Azure Retail Prices API,2025-12-18T04:46:23.707785 +AZURE,australiaeast,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486393 +AZURE,australiaeast,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486425 +AZURE,australiaeast,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486432 +AZURE,australiaeast,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486419 +AZURE,australiaeast,Standard_D4a_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:23.707610 +AZURE,australiaeast,Standard_D4a_v4,reserved_1y,NA,0.141096,USD,Azure Retail Prices API,2025-12-18T04:46:25.559868 +AZURE,australiaeast,Standard_D4a_v4,reserved_3y,NA,0.090259,USD,Azure Retail Prices API,2025-12-18T04:46:25.559871 +AZURE,australiaeast,Standard_D4a_v4,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:23.707312 +AZURE,australiaeast,Standard_D4ads_v5,on_demand,NA,0.26,USD,Azure Retail Prices API,2025-12-18T04:46:23.707410 +AZURE,australiaeast,Standard_D4ads_v5,reserved_1y,NA,0.153425,USD,Azure Retail Prices API,2025-12-18T04:46:25.559660 +AZURE,australiaeast,Standard_D4ads_v5,reserved_3y,NA,0.098782,USD,Azure Retail Prices API,2025-12-18T04:46:25.559664 +AZURE,australiaeast,Standard_D4ads_v5,spot,NA,0.048048,USD,Azure Retail Prices API,2025-12-18T04:46:23.707814 +AZURE,australiaeast,Standard_D4ads_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:23.707832 +AZURE,australiaeast,Standard_D4ads_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:46:25.560073 +AZURE,australiaeast,Standard_D4ads_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:46:25.560075 +AZURE,australiaeast,Standard_D4ads_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:46:23.708176 +AZURE,australiaeast,Standard_D4as_v5,on_demand,NA,0.216,USD,Azure Retail Prices API,2025-12-18T04:46:23.707636 +AZURE,australiaeast,Standard_D4as_v5,reserved_1y,NA,0.127397,USD,Azure Retail Prices API,2025-12-18T04:46:25.559891 +AZURE,australiaeast,Standard_D4as_v5,reserved_3y,NA,0.082078,USD,Azure Retail Prices API,2025-12-18T04:46:25.559894 +AZURE,australiaeast,Standard_D4as_v5,spot,NA,0.039917,USD,Azure Retail Prices API,2025-12-18T04:46:23.708522 +AZURE,australiaeast,Standard_D4d_v4,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:23.708629 +AZURE,australiaeast,Standard_D4d_v4,reserved_1y,NA,0.167009,USD,Azure Retail Prices API,2025-12-18T04:46:25.560875 +AZURE,australiaeast,Standard_D4d_v4,reserved_3y,NA,0.106773,USD,Azure Retail Prices API,2025-12-18T04:46:25.560878 +AZURE,australiaeast,Standard_D4d_v4,spot,NA,0.080173,USD,Azure Retail Prices API,2025-12-18T04:46:23.708577 +AZURE,australiaeast,Standard_D4ds_v4,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:23.708011 +AZURE,australiaeast,Standard_D4ds_v4,reserved_1y,NA,0.167009,USD,Azure Retail Prices API,2025-12-18T04:46:25.560219 +AZURE,australiaeast,Standard_D4ds_v4,reserved_3y,NA,0.106773,USD,Azure Retail Prices API,2025-12-18T04:46:25.560224 +AZURE,australiaeast,Standard_D4ds_v4,spot,NA,0.080173,USD,Azure Retail Prices API,2025-12-18T04:46:23.708076 +AZURE,australiaeast,Standard_D4ds_v5,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:23.708707 +AZURE,australiaeast,Standard_D4ds_v5,reserved_1y,NA,0.16758,USD,Azure Retail Prices API,2025-12-18T04:46:25.560962 +AZURE,australiaeast,Standard_D4ds_v5,reserved_3y,NA,0.107915,USD,Azure Retail Prices API,2025-12-18T04:46:25.560965 +AZURE,australiaeast,Standard_D4ds_v5,spot,NA,0.092215,USD,Azure Retail Prices API,2025-12-18T04:46:23.708535 +AZURE,australiaeast,Standard_D4ds_v6,on_demand,NA,0.311,USD,Azure Retail Prices API,2025-12-18T04:46:23.708587 +AZURE,australiaeast,Standard_D4ds_v6,reserved_1y,NA,0.193151,USD,Azure Retail Prices API,2025-12-18T04:46:25.560834 +AZURE,australiaeast,Standard_D4ds_v6,reserved_3y,NA,0.121461,USD,Azure Retail Prices API,2025-12-18T04:46:25.560837 +AZURE,australiaeast,Standard_D4ds_v6,spot,NA,0.057473,USD,Azure Retail Prices API,2025-12-18T04:46:23.708725 +AZURE,australiaeast,Standard_D4pds_v6,on_demand,NA,0.229,USD,Azure Retail Prices API,2025-12-18T04:46:23.708826 +AZURE,australiaeast,Standard_D4pds_v6,reserved_1y,NA,0.135046,USD,Azure Retail Prices API,2025-12-18T04:46:25.561105 +AZURE,australiaeast,Standard_D4pds_v6,reserved_3y,NA,0.086948,USD,Azure Retail Prices API,2025-12-18T04:46:25.561107 +AZURE,australiaeast,Standard_D4pds_v6,spot,NA,0.042319,USD,Azure Retail Prices API,2025-12-18T04:46:23.707930 +AZURE,australiaeast,Standard_D4ps_v6,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:46:23.708349 +AZURE,australiaeast,Standard_D4ps_v6,reserved_1y,NA,0.103082,USD,Azure Retail Prices API,2025-12-18T04:46:25.560584 +AZURE,australiaeast,Standard_D4ps_v6,reserved_3y,NA,0.066438,USD,Azure Retail Prices API,2025-12-18T04:46:25.560586 +AZURE,australiaeast,Standard_D4ps_v6,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:46:23.708083 +AZURE,australiaeast,Standard_D4s_v3,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:46:23.707939 +AZURE,australiaeast,Standard_D4s_v3,reserved_1y,NA,0.156849,USD,Azure Retail Prices API,2025-12-18T04:46:25.560155 +AZURE,australiaeast,Standard_D4s_v3,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:46:25.560158 +AZURE,australiaeast,Standard_D4s_v3,spot,NA,0.053475,USD,Azure Retail Prices API,2025-12-18T04:46:23.707855 +AZURE,australiaeast,Standard_D4s_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:23.708393 +AZURE,australiaeast,Standard_D4s_v4,reserved_1y,NA,0.141096,USD,Azure Retail Prices API,2025-12-18T04:46:25.560645 +AZURE,australiaeast,Standard_D4s_v4,reserved_3y,NA,0.090259,USD,Azure Retail Prices API,2025-12-18T04:46:25.560649 +AZURE,australiaeast,Standard_D4s_v4,spot,NA,0.061728,USD,Azure Retail Prices API,2025-12-18T04:46:23.708487 +AZURE,australiaeast,Standard_D4s_v5,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:23.708095 +AZURE,australiaeast,Standard_D4s_v5,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:46:25.560297 +AZURE,australiaeast,Standard_D4s_v5,reserved_3y,NA,0.088813,USD,Azure Retail Prices API,2025-12-18T04:46:25.560300 +AZURE,australiaeast,Standard_D4s_v5,spot,NA,0.082008,USD,Azure Retail Prices API,2025-12-18T04:46:23.708807 +AZURE,australiaeast,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487721 +AZURE,australiaeast,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487735 +AZURE,australiaeast,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487742 +AZURE,australiaeast,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487728 +AZURE,australiaeast,Standard_D64_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:23.707901 +AZURE,australiaeast,Standard_D64_v3,reserved_1y,NA,2.508676,USD,Azure Retail Prices API,2025-12-18T04:46:25.560133 +AZURE,australiaeast,Standard_D64_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:25.560135 +AZURE,australiaeast,Standard_D64_v3,spot,NA,0.8556,USD,Azure Retail Prices API,2025-12-18T04:46:23.708756 +AZURE,australiaeast,Standard_D64a_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:23.707474 +AZURE,australiaeast,Standard_D64a_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:46:25.559723 +AZURE,australiaeast,Standard_D64a_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:25.559725 +AZURE,australiaeast,Standard_D64a_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:23.707557 +AZURE,australiaeast,Standard_D64ads_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:46:23.707705 +AZURE,australiaeast,Standard_D64ads_v5,reserved_1y,NA,2.454452,USD,Azure Retail Prices API,2025-12-18T04:46:25.561060 +AZURE,australiaeast,Standard_D64ads_v5,reserved_3y,NA,1.580784,USD,Azure Retail Prices API,2025-12-18T04:46:25.561062 +AZURE,australiaeast,Standard_D64ads_v5,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:46:23.708722 +AZURE,australiaeast,Standard_D64ads_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:46:23.707995 +AZURE,australiaeast,Standard_D64ads_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:46:25.560194 +AZURE,australiaeast,Standard_D64ads_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:46:25.560197 +AZURE,australiaeast,Standard_D64ads_v6,spot,NA,0.846754,USD,Azure Retail Prices API,2025-12-18T04:46:23.708018 +AZURE,australiaeast,Standard_D64as_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:23.708710 +AZURE,australiaeast,Standard_D64as_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:46:25.560968 +AZURE,australiaeast,Standard_D64as_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:25.560970 +AZURE,australiaeast,Standard_D64as_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:23.707867 +AZURE,australiaeast,Standard_D64as_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:46:23.708188 +AZURE,australiaeast,Standard_D64as_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:46:25.560384 +AZURE,australiaeast,Standard_D64as_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:46:25.560387 +AZURE,australiaeast,Standard_D64as_v5,spot,NA,0.638669,USD,Azure Retail Prices API,2025-12-18T04:46:23.708886 +AZURE,australiaeast,Standard_D64d_v4,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:23.708525 +AZURE,australiaeast,Standard_D64d_v4,reserved_1y,NA,2.671918,USD,Azure Retail Prices API,2025-12-18T04:46:25.560788 +AZURE,australiaeast,Standard_D64d_v4,reserved_3y,NA,1.708562,USD,Azure Retail Prices API,2025-12-18T04:46:25.560791 +AZURE,australiaeast,Standard_D64d_v4,spot,NA,1.282771,USD,Azure Retail Prices API,2025-12-18T04:46:23.707454 +AZURE,australiaeast,Standard_D64ds_v4,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:23.707286 +AZURE,australiaeast,Standard_D64ds_v4,reserved_1y,NA,2.671918,USD,Azure Retail Prices API,2025-12-18T04:46:25.559556 +AZURE,australiaeast,Standard_D64ds_v4,reserved_3y,NA,1.708562,USD,Azure Retail Prices API,2025-12-18T04:46:25.559559 +AZURE,australiaeast,Standard_D64ds_v4,spot,NA,1.282771,USD,Azure Retail Prices API,2025-12-18T04:46:23.708493 +AZURE,australiaeast,Standard_D64ds_v5,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:23.707691 +AZURE,australiaeast,Standard_D64ds_v5,reserved_1y,NA,2.680936,USD,Azure Retail Prices API,2025-12-18T04:46:25.559960 +AZURE,australiaeast,Standard_D64ds_v5,reserved_3y,NA,1.726712,USD,Azure Retail Prices API,2025-12-18T04:46:25.559963 +AZURE,australiaeast,Standard_D64ds_v5,spot,NA,1.475437,USD,Azure Retail Prices API,2025-12-18T04:46:23.708623 +AZURE,australiaeast,Standard_D64ds_v6,on_demand,NA,4.984,USD,Azure Retail Prices API,2025-12-18T04:46:23.707671 +AZURE,australiaeast,Standard_D64ds_v6,reserved_1y,NA,3.08984,USD,Azure Retail Prices API,2025-12-18T04:46:25.559949 +AZURE,australiaeast,Standard_D64ds_v6,reserved_3y,NA,1.943645,USD,Azure Retail Prices API,2025-12-18T04:46:25.559951 +AZURE,australiaeast,Standard_D64ds_v6,spot,NA,0.921043,USD,Azure Retail Prices API,2025-12-18T04:46:23.708033 +AZURE,australiaeast,Standard_D64pds_v6,on_demand,NA,3.661,USD,Azure Retail Prices API,2025-12-18T04:46:23.708790 +AZURE,australiaeast,Standard_D64pds_v6,reserved_1y,NA,2.159817,USD,Azure Retail Prices API,2025-12-18T04:46:25.561054 +AZURE,australiaeast,Standard_D64pds_v6,reserved_3y,NA,1.391096,USD,Azure Retail Prices API,2025-12-18T04:46:25.561057 +AZURE,australiaeast,Standard_D64pds_v6,spot,NA,0.676553,USD,Azure Retail Prices API,2025-12-18T04:46:23.707586 +AZURE,australiaeast,Standard_D64ps_v6,on_demand,NA,2.797,USD,Azure Retail Prices API,2025-12-18T04:46:23.708921 +AZURE,australiaeast,Standard_D64ps_v6,reserved_1y,NA,1.650114,USD,Azure Retail Prices API,2025-12-18T04:46:25.561155 +AZURE,australiaeast,Standard_D64ps_v6,reserved_3y,NA,1.062785,USD,Azure Retail Prices API,2025-12-18T04:46:25.561158 +AZURE,australiaeast,Standard_D64ps_v6,spot,NA,0.516886,USD,Azure Retail Prices API,2025-12-18T04:46:23.708818 +AZURE,australiaeast,Standard_D64s_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:23.708137 +AZURE,australiaeast,Standard_D64s_v3,reserved_1y,NA,2.508676,USD,Azure Retail Prices API,2025-12-18T04:46:25.560344 +AZURE,australiaeast,Standard_D64s_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:25.560347 +AZURE,australiaeast,Standard_D64s_v3,spot,NA,0.8556,USD,Azure Retail Prices API,2025-12-18T04:46:23.707245 +AZURE,australiaeast,Standard_D64s_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:23.708284 +AZURE,australiaeast,Standard_D64s_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:46:25.560507 +AZURE,australiaeast,Standard_D64s_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:25.560510 +AZURE,australiaeast,Standard_D64s_v4,spot,NA,0.987648,USD,Azure Retail Prices API,2025-12-18T04:46:23.708664 +AZURE,australiaeast,Standard_D64s_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:23.708008 +AZURE,australiaeast,Standard_D64s_v5,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:25.560210 +AZURE,australiaeast,Standard_D64s_v5,reserved_3y,NA,1.420814,USD,Azure Retail Prices API,2025-12-18T04:46:25.560214 +AZURE,australiaeast,Standard_D64s_v5,spot,NA,1.312128,USD,Azure Retail Prices API,2025-12-18T04:46:23.707526 +AZURE,australiaeast,Standard_D8_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:23.708686 +AZURE,australiaeast,Standard_D8_v3,reserved_1y,NA,0.313584,USD,Azure Retail Prices API,2025-12-18T04:46:25.560952 +AZURE,australiaeast,Standard_D8_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:25.560954 +AZURE,australiaeast,Standard_D8_v3,spot,NA,0.10695,USD,Azure Retail Prices API,2025-12-18T04:46:23.707546 +AZURE,australiaeast,Standard_D8a_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:23.708361 +AZURE,australiaeast,Standard_D8a_v4,reserved_1y,NA,0.282192,USD,Azure Retail Prices API,2025-12-18T04:46:25.560607 +AZURE,australiaeast,Standard_D8a_v4,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:25.560610 +AZURE,australiaeast,Standard_D8a_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:23.708547 +AZURE,australiaeast,Standard_D8ads_v5,on_demand,NA,0.52,USD,Azure Retail Prices API,2025-12-18T04:46:23.708262 +AZURE,australiaeast,Standard_D8ads_v5,reserved_1y,NA,0.306849,USD,Azure Retail Prices API,2025-12-18T04:46:25.560466 +AZURE,australiaeast,Standard_D8ads_v5,reserved_3y,NA,0.197603,USD,Azure Retail Prices API,2025-12-18T04:46:25.560471 +AZURE,australiaeast,Standard_D8ads_v5,spot,NA,0.096096,USD,Azure Retail Prices API,2025-12-18T04:46:23.707465 +AZURE,australiaeast,Standard_D8ads_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:46:23.708390 +AZURE,australiaeast,Standard_D8ads_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:46:25.560635 +AZURE,australiaeast,Standard_D8ads_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:46:25.560640 +AZURE,australiaeast,Standard_D8ads_v6,spot,NA,0.10589,USD,Azure Retail Prices API,2025-12-18T04:46:23.708716 +AZURE,australiaeast,Standard_D8as_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:23.707532 +AZURE,australiaeast,Standard_D8as_v4,reserved_1y,NA,0.282192,USD,Azure Retail Prices API,2025-12-18T04:46:25.559820 +AZURE,australiaeast,Standard_D8as_v4,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:25.559824 +AZURE,australiaeast,Standard_D8as_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:23.708636 +AZURE,australiaeast,Standard_D8as_v5,on_demand,NA,0.432,USD,Azure Retail Prices API,2025-12-18T04:46:23.708336 +AZURE,australiaeast,Standard_D8as_v5,reserved_1y,NA,0.254909,USD,Azure Retail Prices API,2025-12-18T04:46:25.560567 +AZURE,australiaeast,Standard_D8as_v5,reserved_3y,NA,0.164155,USD,Azure Retail Prices API,2025-12-18T04:46:25.560570 +AZURE,australiaeast,Standard_D8as_v5,spot,NA,0.079834,USD,Azure Retail Prices API,2025-12-18T04:46:23.708801 +AZURE,australiaeast,Standard_D8d_v4,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:23.707653 +AZURE,australiaeast,Standard_D8d_v4,reserved_1y,NA,0.334018,USD,Azure Retail Prices API,2025-12-18T04:46:25.559914 +AZURE,australiaeast,Standard_D8d_v4,reserved_3y,NA,0.213584,USD,Azure Retail Prices API,2025-12-18T04:46:25.559917 +AZURE,australiaeast,Standard_D8d_v4,spot,NA,0.160346,USD,Azure Retail Prices API,2025-12-18T04:46:23.708750 +AZURE,australiaeast,Standard_D8ds_v4,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:23.707514 +AZURE,australiaeast,Standard_D8ds_v4,reserved_1y,NA,0.334018,USD,Azure Retail Prices API,2025-12-18T04:46:25.559802 +AZURE,australiaeast,Standard_D8ds_v4,reserved_3y,NA,0.213584,USD,Azure Retail Prices API,2025-12-18T04:46:25.559805 +AZURE,australiaeast,Standard_D8ds_v4,spot,NA,0.160346,USD,Azure Retail Prices API,2025-12-18T04:46:23.708858 +AZURE,australiaeast,Standard_D8ds_v5,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:23.708570 +AZURE,australiaeast,Standard_D8ds_v5,reserved_1y,NA,0.33516,USD,Azure Retail Prices API,2025-12-18T04:46:25.560823 +AZURE,australiaeast,Standard_D8ds_v5,reserved_3y,NA,0.21583,USD,Azure Retail Prices API,2025-12-18T04:46:25.560826 +AZURE,australiaeast,Standard_D8ds_v5,spot,NA,0.18443,USD,Azure Retail Prices API,2025-12-18T04:46:23.708728 +AZURE,australiaeast,Standard_D8ds_v6,on_demand,NA,0.623,USD,Azure Retail Prices API,2025-12-18T04:46:23.708435 +AZURE,australiaeast,Standard_D8ds_v6,reserved_1y,NA,0.386187,USD,Azure Retail Prices API,2025-12-18T04:46:25.560693 +AZURE,australiaeast,Standard_D8ds_v6,reserved_3y,NA,0.24296,USD,Azure Retail Prices API,2025-12-18T04:46:25.560696 +AZURE,australiaeast,Standard_D8ds_v6,spot,NA,0.11513,USD,Azure Retail Prices API,2025-12-18T04:46:23.708452 +AZURE,australiaeast,Standard_D8pds_v6,on_demand,NA,0.458,USD,Azure Retail Prices API,2025-12-18T04:46:23.707634 +AZURE,australiaeast,Standard_D8pds_v6,reserved_1y,NA,0.269977,USD,Azure Retail Prices API,2025-12-18T04:46:25.559885 +AZURE,australiaeast,Standard_D8pds_v6,reserved_3y,NA,0.173896,USD,Azure Retail Prices API,2025-12-18T04:46:25.559888 +AZURE,australiaeast,Standard_D8pds_v6,spot,NA,0.084638,USD,Azure Retail Prices API,2025-12-18T04:46:23.707266 +AZURE,australiaeast,Standard_D8ps_v6,on_demand,NA,0.35,USD,Azure Retail Prices API,2025-12-18T04:46:23.707892 +AZURE,australiaeast,Standard_D8ps_v6,reserved_1y,NA,0.206279,USD,Azure Retail Prices API,2025-12-18T04:46:25.560122 +AZURE,australiaeast,Standard_D8ps_v6,reserved_3y,NA,0.132839,USD,Azure Retail Prices API,2025-12-18T04:46:25.560125 +AZURE,australiaeast,Standard_D8ps_v6,spot,NA,0.06468,USD,Azure Retail Prices API,2025-12-18T04:46:23.708092 +AZURE,australiaeast,Standard_D8s_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:23.708455 +AZURE,australiaeast,Standard_D8s_v3,reserved_1y,NA,0.313584,USD,Azure Retail Prices API,2025-12-18T04:46:25.560716 +AZURE,australiaeast,Standard_D8s_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:25.560719 +AZURE,australiaeast,Standard_D8s_v3,spot,NA,0.10695,USD,Azure Retail Prices API,2025-12-18T04:46:23.707895 +AZURE,australiaeast,Standard_D8s_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:23.708768 +AZURE,australiaeast,Standard_D8s_v4,reserved_1y,NA,0.282192,USD,Azure Retail Prices API,2025-12-18T04:46:25.561027 +AZURE,australiaeast,Standard_D8s_v4,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:25.561030 +AZURE,australiaeast,Standard_D8s_v4,spot,NA,0.123456,USD,Azure Retail Prices API,2025-12-18T04:46:23.708409 +AZURE,australiaeast,Standard_D8s_v5,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:23.708651 +AZURE,australiaeast,Standard_D8s_v5,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:25.560908 +AZURE,australiaeast,Standard_D8s_v5,reserved_3y,NA,0.177588,USD,Azure Retail Prices API,2025-12-18T04:46:25.560911 +AZURE,australiaeast,Standard_D8s_v5,spot,NA,0.164016,USD,Azure Retail Prices API,2025-12-18T04:46:23.707445 +AZURE,australiaeast,Standard_D96a_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:23.708483 +AZURE,australiaeast,Standard_D96a_v4,reserved_1y,NA,3.386872,USD,Azure Retail Prices API,2025-12-18T04:46:25.560753 +AZURE,australiaeast,Standard_D96a_v4,reserved_3y,NA,2.165753,USD,Azure Retail Prices API,2025-12-18T04:46:25.560756 +AZURE,australiaeast,Standard_D96a_v4,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:46:23.708256 +AZURE,australiaeast,Standard_D96ads_v5,on_demand,NA,10.656,USD,Azure Retail Prices API,2025-12-18T04:46:23.707306 +AZURE,australiaeast,Standard_D96ads_v5,reserved_1y,NA,3.681621,USD,Azure Retail Prices API,2025-12-18T04:46:25.560902 +AZURE,australiaeast,Standard_D96ads_v5,reserved_3y,NA,2.371195,USD,Azure Retail Prices API,2025-12-18T04:46:25.560905 +AZURE,australiaeast,Standard_D96ads_v5,spot,NA,1.153152,USD,Azure Retail Prices API,2025-12-18T04:46:23.708089 +AZURE,australiaeast,Standard_D96ads_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:46:23.708312 +AZURE,australiaeast,Standard_D96ads_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:46:25.560544 +AZURE,australiaeast,Standard_D96ads_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:46:25.560547 +AZURE,australiaeast,Standard_D96ads_v6,spot,NA,1.270315,USD,Azure Retail Prices API,2025-12-18T04:46:23.707597 +AZURE,australiaeast,Standard_D96as_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:23.708309 +AZURE,australiaeast,Standard_D96as_v4,reserved_1y,NA,3.386872,USD,Azure Retail Prices API,2025-12-18T04:46:25.560538 +AZURE,australiaeast,Standard_D96as_v4,reserved_3y,NA,2.165753,USD,Azure Retail Prices API,2025-12-18T04:46:25.560541 +AZURE,australiaeast,Standard_D96as_v4,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:46:23.708072 +AZURE,australiaeast,Standard_D96as_v5,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:46:23.708680 +AZURE,australiaeast,Standard_D96as_v5,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:46:25.560935 +AZURE,australiaeast,Standard_D96as_v5,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:46:25.560938 +AZURE,australiaeast,Standard_D96as_v5,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:46:23.707416 +AZURE,australiaeast,Standard_D96ds_v5,on_demand,NA,6.816,USD,Azure Retail Prices API,2025-12-18T04:46:23.708915 +AZURE,australiaeast,Standard_D96ds_v5,reserved_1y,NA,4.021461,USD,Azure Retail Prices API,2025-12-18T04:46:25.561144 +AZURE,australiaeast,Standard_D96ds_v5,reserved_3y,NA,2.590068,USD,Azure Retail Prices API,2025-12-18T04:46:25.561147 +AZURE,australiaeast,Standard_D96ds_v5,spot,NA,2.213155,USD,Azure Retail Prices API,2025-12-18T04:46:23.707434 +AZURE,australiaeast,Standard_D96ds_v6,on_demand,NA,7.476,USD,Azure Retail Prices API,2025-12-18T04:46:23.708438 +AZURE,australiaeast,Standard_D96ds_v6,reserved_1y,NA,4.634817,USD,Azure Retail Prices API,2025-12-18T04:46:25.560699 +AZURE,australiaeast,Standard_D96ds_v6,reserved_3y,NA,2.915449,USD,Azure Retail Prices API,2025-12-18T04:46:25.560702 +AZURE,australiaeast,Standard_D96ds_v6,spot,NA,1.381565,USD,Azure Retail Prices API,2025-12-18T04:46:23.708658 +AZURE,australiaeast,Standard_D96pds_v6,on_demand,NA,5.491,USD,Azure Retail Prices API,2025-12-18T04:46:23.708445 +AZURE,australiaeast,Standard_D96pds_v6,reserved_1y,NA,3.23984,USD,Azure Retail Prices API,2025-12-18T04:46:25.560705 +AZURE,australiaeast,Standard_D96pds_v6,reserved_3y,NA,2.086644,USD,Azure Retail Prices API,2025-12-18T04:46:25.560708 +AZURE,australiaeast,Standard_D96pds_v6,spot,NA,1.014737,USD,Azure Retail Prices API,2025-12-18T04:46:23.707722 +AZURE,australiaeast,Standard_D96ps_v6,on_demand,NA,4.195,USD,Azure Retail Prices API,2025-12-18T04:46:23.708824 +AZURE,australiaeast,Standard_D96ps_v6,reserved_1y,NA,2.475114,USD,Azure Retail Prices API,2025-12-18T04:46:25.561096 +AZURE,australiaeast,Standard_D96ps_v6,reserved_3y,NA,1.594178,USD,Azure Retail Prices API,2025-12-18T04:46:25.561102 +AZURE,australiaeast,Standard_D96ps_v6,spot,NA,0.775236,USD,Azure Retail Prices API,2025-12-18T04:46:23.707275 +AZURE,australiaeast,Standard_D96s_v5,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:23.708306 +AZURE,australiaeast,Standard_D96s_v5,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:25.560533 +AZURE,australiaeast,Standard_D96s_v5,reserved_3y,NA,2.131202,USD,Azure Retail Prices API,2025-12-18T04:46:25.560535 +AZURE,australiaeast,Standard_D96s_v5,spot,NA,1.968192,USD,Azure Retail Prices API,2025-12-18T04:46:23.707927 +AZURE,australiaeast,Standard_DC16ads_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:46:23.708297 +AZURE,australiaeast,Standard_DC16ads_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:46:25.560527 +AZURE,australiaeast,Standard_DC16ads_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:46:25.560530 +AZURE,australiaeast,Standard_DC16ads_v6,spot,NA,0.211781,USD,Azure Retail Prices API,2025-12-18T04:46:23.707248 +AZURE,australiaeast,Standard_DC2ads_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:23.707659 +AZURE,australiaeast,Standard_DC2ads_v6,reserved_1y,NA,0.084475,USD,Azure Retail Prices API,2025-12-18T04:46:25.559925 +AZURE,australiaeast,Standard_DC2ads_v6,reserved_3y,NA,0.054414,USD,Azure Retail Prices API,2025-12-18T04:46:25.559928 +AZURE,australiaeast,Standard_DC2ads_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:46:23.708516 +AZURE,australiaeast,Standard_DC32ads_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:23.708419 +AZURE,australiaeast,Standard_DC32ads_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:46:25.560676 +AZURE,australiaeast,Standard_DC32ads_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:46:25.560679 +AZURE,australiaeast,Standard_DC32ads_v6,spot,NA,0.423377,USD,Azure Retail Prices API,2025-12-18T04:46:23.708620 +AZURE,australiaeast,Standard_DC48ads_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:46:23.708158 +AZURE,australiaeast,Standard_DC48ads_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:46:25.560367 +AZURE,australiaeast,Standard_DC48ads_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:46:25.560370 +AZURE,australiaeast,Standard_DC48ads_v6,spot,NA,0.635158,USD,Azure Retail Prices API,2025-12-18T04:46:23.708642 +AZURE,australiaeast,Standard_DC4ads_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:23.707578 +AZURE,australiaeast,Standard_DC4ads_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:46:25.559855 +AZURE,australiaeast,Standard_DC4ads_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:46:25.559859 +AZURE,australiaeast,Standard_DC4ads_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:46:23.708698 +AZURE,australiaeast,Standard_DC64ads_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:46:23.707839 +AZURE,australiaeast,Standard_DC64ads_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:46:25.560078 +AZURE,australiaeast,Standard_DC64ads_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:46:25.560081 +AZURE,australiaeast,Standard_DC64ads_v6,spot,NA,0.846754,USD,Azure Retail Prices API,2025-12-18T04:46:23.708290 +AZURE,australiaeast,Standard_DC8ads_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:46:23.708835 +AZURE,australiaeast,Standard_DC8ads_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:46:25.561127 +AZURE,australiaeast,Standard_DC8ads_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:46:25.561130 +AZURE,australiaeast,Standard_DC8ads_v6,spot,NA,0.10589,USD,Azure Retail Prices API,2025-12-18T04:46:23.708036 +AZURE,australiaeast,Standard_DC96ads_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:46:23.707980 +AZURE,australiaeast,Standard_DC96ads_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:46:25.560188 +AZURE,australiaeast,Standard_DC96ads_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:46:25.560191 +AZURE,australiaeast,Standard_DC96ads_v6,spot,NA,1.270315,USD,Azure Retail Prices API,2025-12-18T04:46:23.707327 +AZURE,australiaeast,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495521 +AZURE,australiaeast,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495529 +AZURE,australiaeast,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495534 +AZURE,australiaeast,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495525 +AZURE,australiaeast,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496409 +AZURE,australiaeast,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496417 +AZURE,australiaeast,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496421 +AZURE,australiaeast,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496413 +AZURE,australiaeast,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497214 +AZURE,australiaeast,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497226 +AZURE,australiaeast,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497233 +AZURE,australiaeast,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497220 +AZURE,australiaeast,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498048 +AZURE,australiaeast,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498058 +AZURE,australiaeast,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498062 +AZURE,australiaeast,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498053 +AZURE,australiaeast,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491882 +AZURE,australiaeast,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491890 +AZURE,australiaeast,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491894 +AZURE,australiaeast,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491886 +AZURE,australiaeast,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492604 +AZURE,australiaeast,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492612 +AZURE,australiaeast,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492616 +AZURE,australiaeast,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492608 +AZURE,australiaeast,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493337 +AZURE,australiaeast,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493346 +AZURE,australiaeast,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493350 +AZURE,australiaeast,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493342 +AZURE,australiaeast,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494038 +AZURE,australiaeast,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494047 +AZURE,australiaeast,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494051 +AZURE,australiaeast,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494042 +AZURE,australiaeast,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494753 +AZURE,australiaeast,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494761 +AZURE,australiaeast,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494765 +AZURE,australiaeast,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494757 +AZURE,australiaeast,Standard_E128ds_v6,on_demand,NA,12.541,USD,Azure Retail Prices API,2025-12-18T04:46:23.708123 +AZURE,australiaeast,Standard_E128ds_v6,reserved_1y,NA,7.775685,USD,Azure Retail Prices API,2025-12-18T04:46:25.560338 +AZURE,australiaeast,Standard_E128ds_v6,reserved_3y,NA,4.891172,USD,Azure Retail Prices API,2025-12-18T04:46:25.560341 +AZURE,australiaeast,Standard_E128ds_v6,spot,NA,2.317577,USD,Azure Retail Prices API,2025-12-18T04:46:23.707753 +AZURE,australiaeast,Standard_E16_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:23.707431 +AZURE,australiaeast,Standard_E16_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:46:25.559683 +AZURE,australiaeast,Standard_E16_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:46:25.559686 +AZURE,australiaeast,Standard_E16_v3,spot,NA,0.27315,USD,Azure Retail Prices API,2025-12-18T04:46:23.707566 +AZURE,australiaeast,Standard_E16a_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:23.708238 +AZURE,australiaeast,Standard_E16a_v4,reserved_1y,NA,0.710274,USD,Azure Retail Prices API,2025-12-18T04:46:25.560435 +AZURE,australiaeast,Standard_E16a_v4,reserved_3y,NA,0.454224,USD,Azure Retail Prices API,2025-12-18T04:46:25.560438 +AZURE,australiaeast,Standard_E16a_v4,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:23.707650 +AZURE,australiaeast,Standard_E16ads_v5,on_demand,NA,1.272,USD,Azure Retail Prices API,2025-12-18T04:46:23.707309 +AZURE,australiaeast,Standard_E16ads_v5,reserved_1y,NA,0.750457,USD,Azure Retail Prices API,2025-12-18T04:46:25.559585 +AZURE,australiaeast,Standard_E16ads_v5,reserved_3y,NA,0.483371,USD,Azure Retail Prices API,2025-12-18T04:46:25.559588 +AZURE,australiaeast,Standard_E16ads_v5,spot,NA,0.235066,USD,Azure Retail Prices API,2025-12-18T04:46:23.707676 +AZURE,australiaeast,Standard_E16ads_v6,on_demand,NA,1.458,USD,Azure Retail Prices API,2025-12-18T04:46:23.707356 +AZURE,australiaeast,Standard_E16ads_v6,reserved_1y,NA,0.859932,USD,Azure Retail Prices API,2025-12-18T04:46:25.559626 +AZURE,australiaeast,Standard_E16ads_v6,reserved_3y,NA,0.553881,USD,Azure Retail Prices API,2025-12-18T04:46:25.559629 +AZURE,australiaeast,Standard_E16ads_v6,spot,NA,0.269438,USD,Azure Retail Prices API,2025-12-18T04:46:23.707877 +AZURE,australiaeast,Standard_E16as_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:23.708212 +AZURE,australiaeast,Standard_E16as_v4,reserved_1y,NA,0.710274,USD,Azure Retail Prices API,2025-12-18T04:46:25.560412 +AZURE,australiaeast,Standard_E16as_v4,reserved_3y,NA,0.454224,USD,Azure Retail Prices API,2025-12-18T04:46:25.560415 +AZURE,australiaeast,Standard_E16as_v4,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:23.707263 +AZURE,australiaeast,Standard_E16as_v5,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:46:23.708294 +AZURE,australiaeast,Standard_E16as_v5,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:46:25.560518 +AZURE,australiaeast,Standard_E16as_v5,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:46:25.560524 +AZURE,australiaeast,Standard_E16as_v5,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:46:23.707549 +AZURE,australiaeast,Standard_E16d_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:23.707350 +AZURE,australiaeast,Standard_E16d_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:25.559620 +AZURE,australiaeast,Standard_E16d_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:25.559623 +AZURE,australiaeast,Standard_E16d_v4,spot,NA,0.375144,USD,Azure Retail Prices API,2025-12-18T04:46:23.707230 +AZURE,australiaeast,Standard_E16ds_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:23.707852 +AZURE,australiaeast,Standard_E16ds_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:25.560094 +AZURE,australiaeast,Standard_E16ds_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:25.560097 +AZURE,australiaeast,Standard_E16ds_v4,spot,NA,0.375144,USD,Azure Retail Prices API,2025-12-18T04:46:23.707817 +AZURE,australiaeast,Standard_E16ds_v5,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:23.707772 +AZURE,australiaeast,Standard_E16ds_v5,reserved_1y,NA,0.821233,USD,Azure Retail Prices API,2025-12-18T04:46:25.560006 +AZURE,australiaeast,Standard_E16ds_v5,reserved_3y,NA,0.528957,USD,Azure Retail Prices API,2025-12-18T04:46:25.560011 +AZURE,australiaeast,Standard_E16ds_v5,spot,NA,0.431381,USD,Azure Retail Prices API,2025-12-18T04:46:23.708719 +AZURE,australiaeast,Standard_E16ds_v6,on_demand,NA,1.568,USD,Azure Retail Prices API,2025-12-18T04:46:23.708741 +AZURE,australiaeast,Standard_E16ds_v6,reserved_1y,NA,0.971918,USD,Azure Retail Prices API,2025-12-18T04:46:25.560989 +AZURE,australiaeast,Standard_E16ds_v6,reserved_3y,NA,0.611377,USD,Azure Retail Prices API,2025-12-18T04:46:25.560992 +AZURE,australiaeast,Standard_E16ds_v6,spot,NA,0.289766,USD,Azure Retail Prices API,2025-12-18T04:46:23.707986 +AZURE,australiaeast,Standard_E16pds_v6,on_demand,NA,1.166,USD,Azure Retail Prices API,2025-12-18T04:46:23.707223 +AZURE,australiaeast,Standard_E16pds_v6,reserved_1y,NA,0.688128,USD,Azure Retail Prices API,2025-12-18T04:46:25.559498 +AZURE,australiaeast,Standard_E16pds_v6,reserved_3y,NA,0.443227,USD,Azure Retail Prices API,2025-12-18T04:46:25.559501 +AZURE,australiaeast,Standard_E16pds_v6,spot,NA,0.217342,USD,Azure Retail Prices API,2025-12-18T04:46:23.707529 +AZURE,australiaeast,Standard_E16ps_v6,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:46:23.708462 +AZURE,australiaeast,Standard_E16ps_v6,reserved_1y,NA,0.542808,USD,Azure Retail Prices API,2025-12-18T04:46:25.560722 +AZURE,australiaeast,Standard_E16ps_v6,reserved_3y,NA,0.349581,USD,Azure Retail Prices API,2025-12-18T04:46:25.560725 +AZURE,australiaeast,Standard_E16ps_v6,spot,NA,0.171488,USD,Azure Retail Prices API,2025-12-18T04:46:23.708924 +AZURE,australiaeast,Standard_E16s_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:23.707511 +AZURE,australiaeast,Standard_E16s_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:46:25.559792 +AZURE,australiaeast,Standard_E16s_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:46:25.559798 +AZURE,australiaeast,Standard_E16s_v3,spot,NA,0.27315,USD,Azure Retail Prices API,2025-12-18T04:46:23.708441 +AZURE,australiaeast,Standard_E16s_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:23.707277 +AZURE,australiaeast,Standard_E16s_v4,reserved_1y,NA,0.710274,USD,Azure Retail Prices API,2025-12-18T04:46:25.559536 +AZURE,australiaeast,Standard_E16s_v4,reserved_3y,NA,0.454224,USD,Azure Retail Prices API,2025-12-18T04:46:25.559538 +AZURE,australiaeast,Standard_E16s_v4,spot,NA,0.287262,USD,Azure Retail Prices API,2025-12-18T04:46:23.708500 +AZURE,australiaeast,Standard_E16s_v5,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:23.708804 +AZURE,australiaeast,Standard_E16s_v5,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:46:25.561070 +AZURE,australiaeast,Standard_E16s_v5,reserved_3y,NA,0.446956,USD,Azure Retail Prices API,2025-12-18T04:46:25.561073 +AZURE,australiaeast,Standard_E16s_v5,spot,NA,0.398398,USD,Azure Retail Prices API,2025-12-18T04:46:23.708191 +AZURE,australiaeast,Standard_E20a_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:23.708241 +AZURE,australiaeast,Standard_E20a_v4,reserved_1y,NA,0.888128,USD,Azure Retail Prices API,2025-12-18T04:46:25.560441 +AZURE,australiaeast,Standard_E20a_v4,reserved_3y,NA,0.567732,USD,Azure Retail Prices API,2025-12-18T04:46:25.560443 +AZURE,australiaeast,Standard_E20a_v4,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:23.708795 +AZURE,australiaeast,Standard_E20ads_v5,on_demand,NA,2.51,USD,Azure Retail Prices API,2025-12-18T04:46:23.708039 +AZURE,australiaeast,Standard_E20ads_v5,reserved_1y,NA,0.938128,USD,Azure Retail Prices API,2025-12-18T04:46:25.560979 +AZURE,australiaeast,Standard_E20ads_v5,reserved_3y,NA,0.604186,USD,Azure Retail Prices API,2025-12-18T04:46:25.560981 +AZURE,australiaeast,Standard_E20ads_v5,spot,NA,0.293832,USD,Azure Retail Prices API,2025-12-18T04:46:23.708221 +AZURE,australiaeast,Standard_E20ads_v6,on_demand,NA,1.822,USD,Azure Retail Prices API,2025-12-18T04:46:23.708503 +AZURE,australiaeast,Standard_E20ads_v6,reserved_1y,NA,1.075,USD,Azure Retail Prices API,2025-12-18T04:46:25.560765 +AZURE,australiaeast,Standard_E20ads_v6,reserved_3y,NA,0.692352,USD,Azure Retail Prices API,2025-12-18T04:46:25.560767 +AZURE,australiaeast,Standard_E20ads_v6,spot,NA,0.336706,USD,Azure Retail Prices API,2025-12-18T04:46:23.708170 +AZURE,australiaeast,Standard_E20as_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:23.707645 +AZURE,australiaeast,Standard_E20as_v4,reserved_1y,NA,0.888128,USD,Azure Retail Prices API,2025-12-18T04:46:25.559903 +AZURE,australiaeast,Standard_E20as_v4,reserved_3y,NA,0.567732,USD,Azure Retail Prices API,2025-12-18T04:46:25.559906 +AZURE,australiaeast,Standard_E20as_v4,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:23.708458 +AZURE,australiaeast,Standard_E20as_v5,on_demand,NA,2.28,USD,Azure Retail Prices API,2025-12-18T04:46:23.708135 +AZURE,australiaeast,Standard_E20as_v5,reserved_1y,NA,0.802397,USD,Azure Retail Prices API,2025-12-18T04:46:25.560994 +AZURE,australiaeast,Standard_E20as_v5,reserved_3y,NA,0.516819,USD,Azure Retail Prices API,2025-12-18T04:46:25.560997 +AZURE,australiaeast,Standard_E20as_v5,spot,NA,0.251328,USD,Azure Retail Prices API,2025-12-18T04:46:23.707954 +AZURE,australiaeast,Standard_E20d_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:23.708345 +AZURE,australiaeast,Standard_E20d_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:25.560578 +AZURE,australiaeast,Standard_E20d_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:25.560581 +AZURE,australiaeast,Standard_E20d_v4,spot,NA,0.46893,USD,Azure Retail Prices API,2025-12-18T04:46:23.708927 +AZURE,australiaeast,Standard_E20ds_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:23.707342 +AZURE,australiaeast,Standard_E20ds_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:25.559615 +AZURE,australiaeast,Standard_E20ds_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:25.559618 +AZURE,australiaeast,Standard_E20ds_v4,spot,NA,0.46893,USD,Azure Retail Prices API,2025-12-18T04:46:23.707361 +AZURE,australiaeast,Standard_E20ds_v5,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:23.707503 +AZURE,australiaeast,Standard_E20ds_v5,reserved_1y,NA,1.026598,USD,Azure Retail Prices API,2025-12-18T04:46:25.559783 +AZURE,australiaeast,Standard_E20ds_v5,reserved_3y,NA,0.661187,USD,Azure Retail Prices API,2025-12-18T04:46:25.559788 +AZURE,australiaeast,Standard_E20ds_v5,spot,NA,0.539226,USD,Azure Retail Prices API,2025-12-18T04:46:23.708321 +AZURE,australiaeast,Standard_E20ds_v6,on_demand,NA,1.96,USD,Azure Retail Prices API,2025-12-18T04:46:23.708713 +AZURE,australiaeast,Standard_E20ds_v6,reserved_1y,NA,1.214954,USD,Azure Retail Prices API,2025-12-18T04:46:25.560973 +AZURE,australiaeast,Standard_E20ds_v6,reserved_3y,NA,0.764231,USD,Azure Retail Prices API,2025-12-18T04:46:25.560976 +AZURE,australiaeast,Standard_E20ds_v6,spot,NA,0.362208,USD,Azure Retail Prices API,2025-12-18T04:46:23.707448 +AZURE,australiaeast,Standard_E20s_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:23.707272 +AZURE,australiaeast,Standard_E20s_v4,reserved_1y,NA,0.888128,USD,Azure Retail Prices API,2025-12-18T04:46:25.559530 +AZURE,australiaeast,Standard_E20s_v4,reserved_3y,NA,0.567732,USD,Azure Retail Prices API,2025-12-18T04:46:25.559533 +AZURE,australiaeast,Standard_E20s_v4,spot,NA,0.359078,USD,Azure Retail Prices API,2025-12-18T04:46:23.708773 +AZURE,australiaeast,Standard_E20s_v5,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:23.708645 +AZURE,australiaeast,Standard_E20s_v5,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:46:25.560896 +AZURE,australiaeast,Standard_E20s_v5,reserved_3y,NA,0.558714,USD,Azure Retail Prices API,2025-12-18T04:46:25.560899 +AZURE,australiaeast,Standard_E20s_v5,spot,NA,0.497998,USD,Azure Retail Prices API,2025-12-18T04:46:23.708197 +AZURE,australiaeast,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:46:23.707485 +AZURE,australiaeast,Standard_E2_v3,reserved_1y,NA,0.093836,USD,Azure Retail Prices API,2025-12-18T04:46:25.559756 +AZURE,australiaeast,Standard_E2_v3,reserved_3y,NA,0.060008,USD,Azure Retail Prices API,2025-12-18T04:46:25.559761 +AZURE,australiaeast,Standard_E2_v3,spot,NA,0.034224,USD,Azure Retail Prices API,2025-12-18T04:46:23.707373 +AZURE,australiaeast,Standard_E2ads_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:23.708021 +AZURE,australiaeast,Standard_E2ads_v6,reserved_1y,NA,0.107534,USD,Azure Retail Prices API,2025-12-18T04:46:25.560239 +AZURE,australiaeast,Standard_E2ads_v6,reserved_3y,NA,0.069254,USD,Azure Retail Prices API,2025-12-18T04:46:25.560243 +AZURE,australiaeast,Standard_E2ads_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:46:23.708185 +AZURE,australiaeast,Standard_E2ds_v5,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:23.708200 +AZURE,australiaeast,Standard_E2ds_v5,reserved_1y,NA,0.102626,USD,Azure Retail Prices API,2025-12-18T04:46:25.560396 +AZURE,australiaeast,Standard_E2ds_v5,reserved_3y,NA,0.066134,USD,Azure Retail Prices API,2025-12-18T04:46:25.560399 +AZURE,australiaeast,Standard_E2ds_v5,spot,NA,0.053923,USD,Azure Retail Prices API,2025-12-18T04:46:23.708232 +AZURE,australiaeast,Standard_E2ds_v6,on_demand,NA,0.196,USD,Azure Retail Prices API,2025-12-18T04:46:23.708113 +AZURE,australiaeast,Standard_E2ds_v6,reserved_1y,NA,0.121461,USD,Azure Retail Prices API,2025-12-18T04:46:25.560320 +AZURE,australiaeast,Standard_E2ds_v6,reserved_3y,NA,0.076408,USD,Azure Retail Prices API,2025-12-18T04:46:25.560323 +AZURE,australiaeast,Standard_E2ds_v6,spot,NA,0.036221,USD,Azure Retail Prices API,2025-12-18T04:46:23.708339 +AZURE,australiaeast,Standard_E2pds_v6,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:46:23.707523 +AZURE,australiaeast,Standard_E2pds_v6,reserved_1y,NA,0.086073,USD,Azure Retail Prices API,2025-12-18T04:46:25.559814 +AZURE,australiaeast,Standard_E2pds_v6,reserved_3y,NA,0.055403,USD,Azure Retail Prices API,2025-12-18T04:46:25.559817 +AZURE,australiaeast,Standard_E2pds_v6,spot,NA,0.027214,USD,Azure Retail Prices API,2025-12-18T04:46:23.708704 +AZURE,australiaeast,Standard_E32_v3,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:46:23.707639 +AZURE,australiaeast,Standard_E32_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:46:25.559897 +AZURE,australiaeast,Standard_E32_v3,reserved_3y,NA,0.96016,USD,Azure Retail Prices API,2025-12-18T04:46:25.559900 +AZURE,australiaeast,Standard_E32_v3,spot,NA,0.546301,USD,Azure Retail Prices API,2025-12-18T04:46:23.707370 +AZURE,australiaeast,Standard_E32a_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:23.708318 +AZURE,australiaeast,Standard_E32a_v4,reserved_1y,NA,1.420662,USD,Azure Retail Prices API,2025-12-18T04:46:25.560549 +AZURE,australiaeast,Standard_E32a_v4,reserved_3y,NA,0.908409,USD,Azure Retail Prices API,2025-12-18T04:46:25.560552 +AZURE,australiaeast,Standard_E32a_v4,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:23.708425 +AZURE,australiaeast,Standard_E32ads_v5,on_demand,NA,4.016,USD,Azure Retail Prices API,2025-12-18T04:46:23.707242 +AZURE,australiaeast,Standard_E32ads_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:25.560061 +AZURE,australiaeast,Standard_E32ads_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:25.560064 +AZURE,australiaeast,Standard_E32ads_v5,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:23.707376 +AZURE,australiaeast,Standard_E32ads_v6,on_demand,NA,2.915,USD,Azure Retail Prices API,2025-12-18T04:46:23.708101 +AZURE,australiaeast,Standard_E32ads_v6,reserved_1y,NA,1.719977,USD,Azure Retail Prices API,2025-12-18T04:46:25.560308 +AZURE,australiaeast,Standard_E32ads_v6,reserved_3y,NA,1.107763,USD,Azure Retail Prices API,2025-12-18T04:46:25.560311 +AZURE,australiaeast,Standard_E32ads_v6,spot,NA,0.538692,USD,Azure Retail Prices API,2025-12-18T04:46:23.708889 +AZURE,australiaeast,Standard_E32as_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:23.707628 +AZURE,australiaeast,Standard_E32as_v4,reserved_1y,NA,1.420662,USD,Azure Retail Prices API,2025-12-18T04:46:25.559874 +AZURE,australiaeast,Standard_E32as_v4,reserved_3y,NA,0.908409,USD,Azure Retail Prices API,2025-12-18T04:46:25.559877 +AZURE,australiaeast,Standard_E32as_v4,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:23.708333 +AZURE,australiaeast,Standard_E32as_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:23.707353 +AZURE,australiaeast,Standard_E32as_v5,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:46:25.560613 +AZURE,australiaeast,Standard_E32as_v5,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:46:25.560616 +AZURE,australiaeast,Standard_E32as_v5,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:46:23.708247 +AZURE,australiaeast,Standard_E32d_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:23.707776 +AZURE,australiaeast,Standard_E32d_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:25.560016 +AZURE,australiaeast,Standard_E32d_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:25.560021 +AZURE,australiaeast,Standard_E32d_v4,spot,NA,0.750288,USD,Azure Retail Prices API,2025-12-18T04:46:23.707802 +AZURE,australiaeast,Standard_E32ds_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:23.707665 +AZURE,australiaeast,Standard_E32ds_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:25.559937 +AZURE,australiaeast,Standard_E32ds_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:25.559940 +AZURE,australiaeast,Standard_E32ds_v4,spot,NA,0.750288,USD,Azure Retail Prices API,2025-12-18T04:46:23.708397 +AZURE,australiaeast,Standard_E32ds_v5,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:23.707477 +AZURE,australiaeast,Standard_E32ds_v5,reserved_1y,NA,1.64258,USD,Azure Retail Prices API,2025-12-18T04:46:25.559728 +AZURE,australiaeast,Standard_E32ds_v5,reserved_3y,NA,1.057915,USD,Azure Retail Prices API,2025-12-18T04:46:25.559731 +AZURE,australiaeast,Standard_E32ds_v5,spot,NA,0.862762,USD,Azure Retail Prices API,2025-12-18T04:46:23.708387 +AZURE,australiaeast,Standard_E32ds_v6,on_demand,NA,3.135,USD,Azure Retail Prices API,2025-12-18T04:46:23.707762 +AZURE,australiaeast,Standard_E32ds_v6,reserved_1y,NA,1.94395,USD,Azure Retail Prices API,2025-12-18T04:46:25.559995 +AZURE,australiaeast,Standard_E32ds_v6,reserved_3y,NA,1.222793,USD,Azure Retail Prices API,2025-12-18T04:46:25.559998 +AZURE,australiaeast,Standard_E32ds_v6,spot,NA,0.579348,USD,Azure Retail Prices API,2025-12-18T04:46:23.707257 +AZURE,australiaeast,Standard_E32pds_v6,on_demand,NA,2.333,USD,Azure Retail Prices API,2025-12-18T04:46:23.708771 +AZURE,australiaeast,Standard_E32pds_v6,reserved_1y,NA,1.37637,USD,Azure Retail Prices API,2025-12-18T04:46:25.561032 +AZURE,australiaeast,Standard_E32pds_v6,reserved_3y,NA,0.886454,USD,Azure Retail Prices API,2025-12-18T04:46:25.561035 +AZURE,australiaeast,Standard_E32pds_v6,spot,NA,0.434871,USD,Azure Retail Prices API,2025-12-18T04:46:23.708005 +AZURE,australiaeast,Standard_E32ps_v6,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:46:23.708600 +AZURE,australiaeast,Standard_E32ps_v6,reserved_1y,NA,1.085616,USD,Azure Retail Prices API,2025-12-18T04:46:25.560851 +AZURE,australiaeast,Standard_E32ps_v6,reserved_3y,NA,0.699201,USD,Azure Retail Prices API,2025-12-18T04:46:25.560856 +AZURE,australiaeast,Standard_E32ps_v6,spot,NA,0.342976,USD,Azure Retail Prices API,2025-12-18T04:46:23.708544 +AZURE,australiaeast,Standard_E32s_v3,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:46:23.707758 +AZURE,australiaeast,Standard_E32s_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:46:25.559989 +AZURE,australiaeast,Standard_E32s_v3,reserved_3y,NA,0.96016,USD,Azure Retail Prices API,2025-12-18T04:46:25.559992 +AZURE,australiaeast,Standard_E32s_v3,spot,NA,0.546301,USD,Azure Retail Prices API,2025-12-18T04:46:23.707921 +AZURE,australiaeast,Standard_E32s_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:23.707647 +AZURE,australiaeast,Standard_E32s_v4,reserved_1y,NA,1.420662,USD,Azure Retail Prices API,2025-12-18T04:46:25.559909 +AZURE,australiaeast,Standard_E32s_v4,reserved_3y,NA,0.908409,USD,Azure Retail Prices API,2025-12-18T04:46:25.559911 +AZURE,australiaeast,Standard_E32s_v4,spot,NA,0.574525,USD,Azure Retail Prices API,2025-12-18T04:46:23.707463 +AZURE,australiaeast,Standard_E32s_v5,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:23.707543 +AZURE,australiaeast,Standard_E32s_v5,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:46:25.559833 +AZURE,australiaeast,Standard_E32s_v5,reserved_3y,NA,0.893912,USD,Azure Retail Prices API,2025-12-18T04:46:25.559836 +AZURE,australiaeast,Standard_E32s_v5,spot,NA,0.796797,USD,Azure Retail Prices API,2025-12-18T04:46:23.707398 +AZURE,australiaeast,Standard_E48a_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:23.707254 +AZURE,australiaeast,Standard_E48a_v4,reserved_1y,NA,2.130936,USD,Azure Retail Prices API,2025-12-18T04:46:25.559517 +AZURE,australiaeast,Standard_E48a_v4,reserved_3y,NA,1.362633,USD,Azure Retail Prices API,2025-12-18T04:46:25.559520 +AZURE,australiaeast,Standard_E48a_v4,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:23.707358 +AZURE,australiaeast,Standard_E48ads_v5,on_demand,NA,3.816,USD,Azure Retail Prices API,2025-12-18T04:46:23.708268 +AZURE,australiaeast,Standard_E48ads_v5,reserved_1y,NA,2.251484,USD,Azure Retail Prices API,2025-12-18T04:46:25.560484 +AZURE,australiaeast,Standard_E48ads_v5,reserved_3y,NA,1.450076,USD,Azure Retail Prices API,2025-12-18T04:46:25.560488 +AZURE,australiaeast,Standard_E48ads_v5,spot,NA,0.705197,USD,Azure Retail Prices API,2025-12-18T04:46:23.707883 +AZURE,australiaeast,Standard_E48ads_v6,on_demand,NA,4.373,USD,Azure Retail Prices API,2025-12-18T04:46:23.708230 +AZURE,australiaeast,Standard_E48ads_v6,reserved_1y,NA,2.579909,USD,Azure Retail Prices API,2025-12-18T04:46:25.560429 +AZURE,australiaeast,Standard_E48ads_v6,reserved_3y,NA,1.661682,USD,Azure Retail Prices API,2025-12-18T04:46:25.560432 +AZURE,australiaeast,Standard_E48ads_v6,spot,NA,0.80813,USD,Azure Retail Prices API,2025-12-18T04:46:23.708892 +AZURE,australiaeast,Standard_E48as_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:23.707364 +AZURE,australiaeast,Standard_E48as_v4,reserved_1y,NA,2.130936,USD,Azure Retail Prices API,2025-12-18T04:46:25.559632 +AZURE,australiaeast,Standard_E48as_v4,reserved_3y,NA,1.362633,USD,Azure Retail Prices API,2025-12-18T04:46:25.559635 +AZURE,australiaeast,Standard_E48as_v4,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:23.707315 +AZURE,australiaeast,Standard_E48as_v5,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:46:23.707540 +AZURE,australiaeast,Standard_E48as_v5,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:25.559827 +AZURE,australiaeast,Standard_E48as_v5,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:46:25.559830 +AZURE,australiaeast,Standard_E48as_v5,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:23.708872 +AZURE,australiaeast,Standard_E48d_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:23.707849 +AZURE,australiaeast,Standard_E48d_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:25.560089 +AZURE,australiaeast,Standard_E48d_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:25.560092 +AZURE,australiaeast,Standard_E48d_v4,spot,NA,1.125432,USD,Azure Retail Prices API,2025-12-18T04:46:23.708913 +AZURE,australiaeast,Standard_E48ds_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:23.707734 +AZURE,australiaeast,Standard_E48ds_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:25.559984 +AZURE,australiaeast,Standard_E48ds_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:25.559987 +AZURE,australiaeast,Standard_E48ds_v4,spot,NA,1.125432,USD,Azure Retail Prices API,2025-12-18T04:46:23.708324 +AZURE,australiaeast,Standard_E48ds_v5,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:23.707823 +AZURE,australiaeast,Standard_E48ds_v5,reserved_1y,NA,2.463813,USD,Azure Retail Prices API,2025-12-18T04:46:25.560055 +AZURE,australiaeast,Standard_E48ds_v5,reserved_3y,NA,1.586872,USD,Azure Retail Prices API,2025-12-18T04:46:25.560058 +AZURE,australiaeast,Standard_E48ds_v5,spot,NA,1.294142,USD,Azure Retail Prices API,2025-12-18T04:46:23.707725 +AZURE,australiaeast,Standard_E48ds_v6,on_demand,NA,4.703,USD,Azure Retail Prices API,2025-12-18T04:46:23.707708 +AZURE,australiaeast,Standard_E48ds_v6,reserved_1y,NA,2.915868,USD,Azure Retail Prices API,2025-12-18T04:46:25.559972 +AZURE,australiaeast,Standard_E48ds_v6,reserved_3y,NA,1.83417,USD,Azure Retail Prices API,2025-12-18T04:46:25.559975 +AZURE,australiaeast,Standard_E48ds_v6,spot,NA,0.869114,USD,Azure Retail Prices API,2025-12-18T04:46:23.708253 +AZURE,australiaeast,Standard_E48pds_v6,on_demand,NA,3.499,USD,Azure Retail Prices API,2025-12-18T04:46:23.708194 +AZURE,australiaeast,Standard_E48pds_v6,reserved_1y,NA,2.064498,USD,Azure Retail Prices API,2025-12-18T04:46:25.560390 +AZURE,australiaeast,Standard_E48pds_v6,reserved_3y,NA,1.32968,USD,Azure Retail Prices API,2025-12-18T04:46:25.560393 +AZURE,australiaeast,Standard_E48pds_v6,spot,NA,0.646615,USD,Azure Retail Prices API,2025-12-18T04:46:23.707688 +AZURE,australiaeast,Standard_E48ps_v6,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:46:23.708465 +AZURE,australiaeast,Standard_E48ps_v6,reserved_1y,NA,1.628425,USD,Azure Retail Prices API,2025-12-18T04:46:25.560728 +AZURE,australiaeast,Standard_E48ps_v6,reserved_3y,NA,1.048782,USD,Azure Retail Prices API,2025-12-18T04:46:25.560732 +AZURE,australiaeast,Standard_E48ps_v6,spot,NA,0.510048,USD,Azure Retail Prices API,2025-12-18T04:46:23.707907 +AZURE,australiaeast,Standard_E48s_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:23.708330 +AZURE,australiaeast,Standard_E48s_v4,reserved_1y,NA,2.130936,USD,Azure Retail Prices API,2025-12-18T04:46:25.560562 +AZURE,australiaeast,Standard_E48s_v4,reserved_3y,NA,1.362633,USD,Azure Retail Prices API,2025-12-18T04:46:25.560564 +AZURE,australiaeast,Standard_E48s_v4,spot,NA,0.861787,USD,Azure Retail Prices API,2025-12-18T04:46:23.707535 +AZURE,australiaeast,Standard_E48s_v5,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:23.708900 +AZURE,australiaeast,Standard_E48s_v5,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:46:25.561138 +AZURE,australiaeast,Standard_E48s_v5,reserved_3y,NA,1.340868,USD,Azure Retail Prices API,2025-12-18T04:46:25.561141 +AZURE,australiaeast,Standard_E48s_v5,spot,NA,1.195195,USD,Azure Retail Prices API,2025-12-18T04:46:23.707963 +AZURE,australiaeast,Standard_E4_v3,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:46:23.707916 +AZURE,australiaeast,Standard_E4_v3,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:25.560144 +AZURE,australiaeast,Standard_E4_v3,reserved_3y,NA,0.120015,USD,Azure Retail Prices API,2025-12-18T04:46:25.560147 +AZURE,australiaeast,Standard_E4_v3,spot,NA,0.068234,USD,Azure Retail Prices API,2025-12-18T04:46:23.707378 +AZURE,australiaeast,Standard_E4a_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:23.708265 +AZURE,australiaeast,Standard_E4a_v4,reserved_1y,NA,0.177626,USD,Azure Retail Prices API,2025-12-18T04:46:25.560475 +AZURE,australiaeast,Standard_E4a_v4,reserved_3y,NA,0.113546,USD,Azure Retail Prices API,2025-12-18T04:46:25.560479 +AZURE,australiaeast,Standard_E4a_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:23.707347 +AZURE,australiaeast,Standard_E4ads_v5,on_demand,NA,0.502,USD,Azure Retail Prices API,2025-12-18T04:46:23.707505 +AZURE,australiaeast,Standard_E4ads_v5,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:25.560280 +AZURE,australiaeast,Standard_E4ads_v5,reserved_3y,NA,0.120852,USD,Azure Retail Prices API,2025-12-18T04:46:25.560283 +AZURE,australiaeast,Standard_E4ads_v5,spot,NA,0.058766,USD,Azure Retail Prices API,2025-12-18T04:46:23.708695 +AZURE,australiaeast,Standard_E4ads_v6,on_demand,NA,0.364,USD,Azure Retail Prices API,2025-12-18T04:46:23.708182 +AZURE,australiaeast,Standard_E4ads_v6,reserved_1y,NA,0.214954,USD,Azure Retail Prices API,2025-12-18T04:46:25.560379 +AZURE,australiaeast,Standard_E4ads_v6,reserved_3y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:25.560381 +AZURE,australiaeast,Standard_E4ads_v6,spot,NA,0.067267,USD,Azure Retail Prices API,2025-12-18T04:46:23.708086 +AZURE,australiaeast,Standard_E4as_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:23.708422 +AZURE,australiaeast,Standard_E4as_v4,reserved_1y,NA,0.177626,USD,Azure Retail Prices API,2025-12-18T04:46:25.560682 +AZURE,australiaeast,Standard_E4as_v4,reserved_3y,NA,0.113546,USD,Azure Retail Prices API,2025-12-18T04:46:25.560685 +AZURE,australiaeast,Standard_E4as_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:23.707538 +AZURE,australiaeast,Standard_E4as_v5,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:46:23.707864 +AZURE,australiaeast,Standard_E4as_v5,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:46:25.560111 +AZURE,australiaeast,Standard_E4as_v5,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:46:25.560114 +AZURE,australiaeast,Standard_E4as_v5,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:46:23.708375 +AZURE,australiaeast,Standard_E4d_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:23.708509 +AZURE,australiaeast,Standard_E4d_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:25.560777 +AZURE,australiaeast,Standard_E4d_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:25.560780 +AZURE,australiaeast,Standard_E4d_v4,spot,NA,0.093786,USD,Azure Retail Prices API,2025-12-18T04:46:23.707387 +AZURE,australiaeast,Standard_E4ds_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:23.707491 +AZURE,australiaeast,Standard_E4ds_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:25.559774 +AZURE,australiaeast,Standard_E4ds_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:25.559779 +AZURE,australiaeast,Standard_E4ds_v4,spot,NA,0.093786,USD,Azure Retail Prices API,2025-12-18T04:46:23.707795 +AZURE,australiaeast,Standard_E4ds_v5,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:23.708259 +AZURE,australiaeast,Standard_E4ds_v5,reserved_1y,NA,0.205365,USD,Azure Retail Prices API,2025-12-18T04:46:25.560454 +AZURE,australiaeast,Standard_E4ds_v5,reserved_3y,NA,0.13223,USD,Azure Retail Prices API,2025-12-18T04:46:25.560459 +AZURE,australiaeast,Standard_E4ds_v5,spot,NA,0.107845,USD,Azure Retail Prices API,2025-12-18T04:46:23.708564 +AZURE,australiaeast,Standard_E4ds_v6,on_demand,NA,0.392,USD,Azure Retail Prices API,2025-12-18T04:46:23.708626 +AZURE,australiaeast,Standard_E4ds_v6,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:46:25.560870 +AZURE,australiaeast,Standard_E4ds_v6,reserved_3y,NA,0.152854,USD,Azure Retail Prices API,2025-12-18T04:46:25.560873 +AZURE,australiaeast,Standard_E4ds_v6,spot,NA,0.072442,USD,Azure Retail Prices API,2025-12-18T04:46:23.707625 +AZURE,australiaeast,Standard_E4pds_v6,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:23.708746 +AZURE,australiaeast,Standard_E4pds_v6,reserved_1y,NA,0.172032,USD,Azure Retail Prices API,2025-12-18T04:46:25.561005 +AZURE,australiaeast,Standard_E4pds_v6,reserved_3y,NA,0.110807,USD,Azure Retail Prices API,2025-12-18T04:46:25.561008 +AZURE,australiaeast,Standard_E4pds_v6,spot,NA,0.054429,USD,Azure Retail Prices API,2025-12-18T04:46:23.708689 +AZURE,australiaeast,Standard_E4ps_v6,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:46:23.708610 +AZURE,australiaeast,Standard_E4ps_v6,reserved_1y,NA,0.135731,USD,Azure Retail Prices API,2025-12-18T04:46:25.560864 +AZURE,australiaeast,Standard_E4ps_v6,reserved_3y,NA,0.087405,USD,Azure Retail Prices API,2025-12-18T04:46:25.560867 +AZURE,australiaeast,Standard_E4ps_v6,spot,NA,0.042872,USD,Azure Retail Prices API,2025-12-18T04:46:23.707497 +AZURE,australiaeast,Standard_E4s_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:23.708244 +AZURE,australiaeast,Standard_E4s_v4,reserved_1y,NA,0.177626,USD,Azure Retail Prices API,2025-12-18T04:46:25.560446 +AZURE,australiaeast,Standard_E4s_v4,reserved_3y,NA,0.113546,USD,Azure Retail Prices API,2025-12-18T04:46:25.560449 +AZURE,australiaeast,Standard_E4s_v4,spot,NA,0.071816,USD,Azure Retail Prices API,2025-12-18T04:46:23.708880 +AZURE,australiaeast,Standard_E4s_v5,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:23.707260 +AZURE,australiaeast,Standard_E4s_v5,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:46:25.559523 +AZURE,australiaeast,Standard_E4s_v5,reserved_3y,NA,0.111758,USD,Azure Retail Prices API,2025-12-18T04:46:25.559527 +AZURE,australiaeast,Standard_E4s_v5,spot,NA,0.0996,USD,Azure Retail Prices API,2025-12-18T04:46:23.707703 +AZURE,australiaeast,Standard_E64_v3,on_demand,NA,4.347,USD,Azure Retail Prices API,2025-12-18T04:46:23.707717 +AZURE,australiaeast,Standard_E64_v3,reserved_1y,NA,2.830365,USD,Azure Retail Prices API,2025-12-18T04:46:25.559978 +AZURE,australiaeast,Standard_E64_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:46:25.559981 +AZURE,australiaeast,Standard_E64_v3,spot,NA,0.929823,USD,Azure Retail Prices API,2025-12-18T04:46:23.708849 +AZURE,australiaeast,Standard_E64a_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:23.707295 +AZURE,australiaeast,Standard_E64a_v4,reserved_1y,NA,2.84121,USD,Azure Retail Prices API,2025-12-18T04:46:25.559568 +AZURE,australiaeast,Standard_E64a_v4,reserved_3y,NA,1.816819,USD,Azure Retail Prices API,2025-12-18T04:46:25.559571 +AZURE,australiaeast,Standard_E64a_v4,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:23.707679 +AZURE,australiaeast,Standard_E64ads_v5,on_demand,NA,8.032,USD,Azure Retail Prices API,2025-12-18T04:46:23.707563 +AZURE,australiaeast,Standard_E64ads_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:25.560326 +AZURE,australiaeast,Standard_E64ads_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:25.560329 +AZURE,australiaeast,Standard_E64ads_v5,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:23.708368 +AZURE,australiaeast,Standard_E64ads_v6,on_demand,NA,5.83,USD,Azure Retail Prices API,2025-12-18T04:46:23.708759 +AZURE,australiaeast,Standard_E64ads_v6,reserved_1y,NA,3.439954,USD,Azure Retail Prices API,2025-12-18T04:46:25.561011 +AZURE,australiaeast,Standard_E64ads_v6,reserved_3y,NA,2.215563,USD,Azure Retail Prices API,2025-12-18T04:46:25.561014 +AZURE,australiaeast,Standard_E64ads_v6,spot,NA,1.077384,USD,Azure Retail Prices API,2025-12-18T04:46:23.707936 +AZURE,australiaeast,Standard_E64as_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:23.707330 +AZURE,australiaeast,Standard_E64as_v4,reserved_1y,NA,2.84121,USD,Azure Retail Prices API,2025-12-18T04:46:25.559604 +AZURE,australiaeast,Standard_E64as_v4,reserved_3y,NA,1.816819,USD,Azure Retail Prices API,2025-12-18T04:46:25.559607 +AZURE,australiaeast,Standard_E64as_v4,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:23.708300 +AZURE,australiaeast,Standard_E64as_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:23.708250 +AZURE,australiaeast,Standard_E64as_v5,reserved_1y,NA,2.567694,USD,Azure Retail Prices API,2025-12-18T04:46:25.560747 +AZURE,australiaeast,Standard_E64as_v5,reserved_3y,NA,1.653767,USD,Azure Retail Prices API,2025-12-18T04:46:25.560750 +AZURE,australiaeast,Standard_E64as_v5,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:46:23.708513 +AZURE,australiaeast,Standard_E64d_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:23.708215 +AZURE,australiaeast,Standard_E64d_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:25.560418 +AZURE,australiaeast,Standard_E64d_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:25.560421 +AZURE,australiaeast,Standard_E64d_v4,spot,NA,1.500576,USD,Azure Retail Prices API,2025-12-18T04:46:23.707739 +AZURE,australiaeast,Standard_E64ds_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:23.708416 +AZURE,australiaeast,Standard_E64ds_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:25.560670 +AZURE,australiaeast,Standard_E64ds_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:25.560673 +AZURE,australiaeast,Standard_E64ds_v4,spot,NA,1.500576,USD,Azure Retail Prices API,2025-12-18T04:46:23.707805 +AZURE,australiaeast,Standard_E64ds_v5,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:23.707697 +AZURE,australiaeast,Standard_E64ds_v5,reserved_1y,NA,3.28516,USD,Azure Retail Prices API,2025-12-18T04:46:25.559966 +AZURE,australiaeast,Standard_E64ds_v5,reserved_3y,NA,2.11583,USD,Azure Retail Prices API,2025-12-18T04:46:25.559969 +AZURE,australiaeast,Standard_E64ds_v5,spot,NA,1.725523,USD,Azure Retail Prices API,2025-12-18T04:46:23.707396 +AZURE,australiaeast,Standard_E64ds_v6,on_demand,NA,6.271,USD,Azure Retail Prices API,2025-12-18T04:46:23.708765 +AZURE,australiaeast,Standard_E64ds_v6,reserved_1y,NA,3.8879,USD,Azure Retail Prices API,2025-12-18T04:46:25.561022 +AZURE,australiaeast,Standard_E64ds_v6,reserved_3y,NA,2.445586,USD,Azure Retail Prices API,2025-12-18T04:46:25.561025 +AZURE,australiaeast,Standard_E64ds_v6,spot,NA,1.158881,USD,Azure Retail Prices API,2025-12-18T04:46:23.708365 +AZURE,australiaeast,Standard_E64pds_v6,on_demand,NA,4.666,USD,Azure Retail Prices API,2025-12-18T04:46:23.708676 +AZURE,australiaeast,Standard_E64pds_v6,reserved_1y,NA,2.75274,USD,Azure Retail Prices API,2025-12-18T04:46:25.560930 +AZURE,australiaeast,Standard_E64pds_v6,reserved_3y,NA,1.772945,USD,Azure Retail Prices API,2025-12-18T04:46:25.560933 +AZURE,australiaeast,Standard_E64pds_v6,spot,NA,0.862277,USD,Azure Retail Prices API,2025-12-18T04:46:23.707983 +AZURE,australiaeast,Standard_E64ps_v6,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:46:23.708144 +AZURE,australiaeast,Standard_E64ps_v6,reserved_1y,NA,2.171233,USD,Azure Retail Prices API,2025-12-18T04:46:25.560361 +AZURE,australiaeast,Standard_E64ps_v6,reserved_3y,NA,1.398402,USD,Azure Retail Prices API,2025-12-18T04:46:25.560364 +AZURE,australiaeast,Standard_E64ps_v6,spot,NA,0.685952,USD,Azure Retail Prices API,2025-12-18T04:46:23.708303 +AZURE,australiaeast,Standard_E64s_v3,on_demand,NA,4.347,USD,Azure Retail Prices API,2025-12-18T04:46:23.707210 +AZURE,australiaeast,Standard_E64s_v3,reserved_1y,NA,2.830365,USD,Azure Retail Prices API,2025-12-18T04:46:25.559483 +AZURE,australiaeast,Standard_E64s_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:46:25.559495 +AZURE,australiaeast,Standard_E64s_v3,spot,NA,0.929823,USD,Azure Retail Prices API,2025-12-18T04:46:23.707615 +AZURE,australiaeast,Standard_E64s_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:23.707858 +AZURE,australiaeast,Standard_E64s_v4,reserved_1y,NA,2.84121,USD,Azure Retail Prices API,2025-12-18T04:46:25.560100 +AZURE,australiaeast,Standard_E64s_v4,reserved_3y,NA,1.816819,USD,Azure Retail Prices API,2025-12-18T04:46:25.560103 +AZURE,australiaeast,Standard_E64s_v4,spot,NA,1.14905,USD,Azure Retail Prices API,2025-12-18T04:46:23.708371 +AZURE,australiaeast,Standard_E64s_v5,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:23.708673 +AZURE,australiaeast,Standard_E64s_v5,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:46:25.560925 +AZURE,australiaeast,Standard_E64s_v5,reserved_3y,NA,1.787823,USD,Azure Retail Prices API,2025-12-18T04:46:25.560927 +AZURE,australiaeast,Standard_E64s_v5,spot,NA,1.593594,USD,Azure Retail Prices API,2025-12-18T04:46:23.708731 +AZURE,australiaeast,Standard_E80ids_v4,on_demand,NA,6.96,USD,Azure Retail Prices API,2025-12-18T04:46:23.708024 +AZURE,australiaeast,Standard_E80ids_v4,reserved_1y,NA,4.093607,USD,Azure Retail Prices API,2025-12-18T04:46:25.560247 +AZURE,australiaeast,Standard_E80ids_v4,reserved_3y,NA,2.617199,USD,Azure Retail Prices API,2025-12-18T04:46:25.560251 +AZURE,australiaeast,Standard_E80ids_v4,spot,NA,1.87572,USD,Azure Retail Prices API,2025-12-18T04:46:23.708110 +AZURE,australiaeast,Standard_E80is_v4,on_demand,NA,6.04,USD,Azure Retail Prices API,2025-12-18T04:46:23.707829 +AZURE,australiaeast,Standard_E80is_v4,reserved_1y,NA,3.552511,USD,Azure Retail Prices API,2025-12-18T04:46:25.560067 +AZURE,australiaeast,Standard_E80is_v4,reserved_3y,NA,2.270928,USD,Azure Retail Prices API,2025-12-18T04:46:25.560070 +AZURE,australiaeast,Standard_E80is_v4,spot,NA,1.436312,USD,Azure Retail Prices API,2025-12-18T04:46:23.707606 +AZURE,australiaeast,Standard_E8_v3,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:23.707575 +AZURE,australiaeast,Standard_E8_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:46:25.559850 +AZURE,australiaeast,Standard_E8_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:46:25.559853 +AZURE,australiaeast,Standard_E8_v3,spot,NA,0.136468,USD,Azure Retail Prices API,2025-12-18T04:46:23.708692 +AZURE,australiaeast,Standard_E8a_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:23.708449 +AZURE,australiaeast,Standard_E8a_v4,reserved_1y,NA,0.355137,USD,Azure Retail Prices API,2025-12-18T04:46:25.560711 +AZURE,australiaeast,Standard_E8a_v4,reserved_3y,NA,0.227093,USD,Azure Retail Prices API,2025-12-18T04:46:25.560713 +AZURE,australiaeast,Standard_E8a_v4,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:23.708528 +AZURE,australiaeast,Standard_E8ads_v5,on_demand,NA,0.636,USD,Azure Retail Prices API,2025-12-18T04:46:23.707301 +AZURE,australiaeast,Standard_E8ads_v5,reserved_1y,NA,0.375228,USD,Azure Retail Prices API,2025-12-18T04:46:25.559579 +AZURE,australiaeast,Standard_E8ads_v5,reserved_3y,NA,0.241667,USD,Azure Retail Prices API,2025-12-18T04:46:25.559582 +AZURE,australiaeast,Standard_E8ads_v5,spot,NA,0.117533,USD,Azure Retail Prices API,2025-12-18T04:46:23.707560 +AZURE,australiaeast,Standard_E8ads_v6,on_demand,NA,0.729,USD,Azure Retail Prices API,2025-12-18T04:46:23.708821 +AZURE,australiaeast,Standard_E8ads_v6,reserved_1y,NA,0.430023,USD,Azure Retail Prices API,2025-12-18T04:46:25.561085 +AZURE,australiaeast,Standard_E8ads_v6,reserved_3y,NA,0.276941,USD,Azure Retail Prices API,2025-12-18T04:46:25.561090 +AZURE,australiaeast,Standard_E8ads_v6,spot,NA,0.134719,USD,Azure Retail Prices API,2025-12-18T04:46:23.708468 +AZURE,australiaeast,Standard_E8as_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:23.708762 +AZURE,australiaeast,Standard_E8as_v4,reserved_1y,NA,0.355137,USD,Azure Retail Prices API,2025-12-18T04:46:25.561017 +AZURE,australiaeast,Standard_E8as_v4,reserved_3y,NA,0.227093,USD,Azure Retail Prices API,2025-12-18T04:46:25.561019 +AZURE,australiaeast,Standard_E8as_v4,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:23.708271 +AZURE,australiaeast,Standard_E8as_v5,on_demand,NA,0.544,USD,Azure Retail Prices API,2025-12-18T04:46:23.707443 +AZURE,australiaeast,Standard_E8as_v5,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:46:25.559695 +AZURE,australiaeast,Standard_E8as_v5,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:46:25.559698 +AZURE,australiaeast,Standard_E8as_v5,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:46:23.708617 +AZURE,australiaeast,Standard_E8d_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:23.707674 +AZURE,australiaeast,Standard_E8d_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:25.559954 +AZURE,australiaeast,Standard_E8d_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:25.559957 +AZURE,australiaeast,Standard_E8d_v4,spot,NA,0.187572,USD,Azure Retail Prices API,2025-12-18T04:46:23.707336 +AZURE,australiaeast,Standard_E8ds_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:23.708538 +AZURE,australiaeast,Standard_E8ds_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:25.560794 +AZURE,australiaeast,Standard_E8ds_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:25.560798 +AZURE,australiaeast,Standard_E8ds_v4,spot,NA,0.187572,USD,Azure Retail Prices API,2025-12-18T04:46:23.708129 +AZURE,australiaeast,Standard_E8ds_v5,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:23.708471 +AZURE,australiaeast,Standard_E8ds_v5,reserved_1y,NA,0.410616,USD,Azure Retail Prices API,2025-12-18T04:46:25.560736 +AZURE,australiaeast,Standard_E8ds_v5,reserved_3y,NA,0.264498,USD,Azure Retail Prices API,2025-12-18T04:46:25.560739 +AZURE,australiaeast,Standard_E8ds_v5,spot,NA,0.21569,USD,Azure Retail Prices API,2025-12-18T04:46:23.707880 +AZURE,australiaeast,Standard_E8ds_v6,on_demand,NA,0.784,USD,Azure Retail Prices API,2025-12-18T04:46:23.708883 +AZURE,australiaeast,Standard_E8ds_v6,reserved_1y,NA,0.485959,USD,Azure Retail Prices API,2025-12-18T04:46:25.561132 +AZURE,australiaeast,Standard_E8ds_v6,reserved_3y,NA,0.305708,USD,Azure Retail Prices API,2025-12-18T04:46:25.561135 +AZURE,australiaeast,Standard_E8ds_v6,spot,NA,0.144883,USD,Azure Retail Prices API,2025-12-18T04:46:23.707719 +AZURE,australiaeast,Standard_E8pds_v6,on_demand,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:46:23.708227 +AZURE,australiaeast,Standard_E8pds_v6,reserved_1y,NA,0.344064,USD,Azure Retail Prices API,2025-12-18T04:46:25.560424 +AZURE,australiaeast,Standard_E8pds_v6,reserved_3y,NA,0.221613,USD,Azure Retail Prices API,2025-12-18T04:46:25.560426 +AZURE,australiaeast,Standard_E8pds_v6,spot,NA,0.108671,USD,Azure Retail Prices API,2025-12-18T04:46:23.707904 +AZURE,australiaeast,Standard_E8ps_v6,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:46:23.707280 +AZURE,australiaeast,Standard_E8ps_v6,reserved_1y,NA,0.271347,USD,Azure Retail Prices API,2025-12-18T04:46:25.559550 +AZURE,australiaeast,Standard_E8ps_v6,reserved_3y,NA,0.17481,USD,Azure Retail Prices API,2025-12-18T04:46:25.559553 +AZURE,australiaeast,Standard_E8ps_v6,spot,NA,0.085744,USD,Azure Retail Prices API,2025-12-18T04:46:23.707440 +AZURE,australiaeast,Standard_E8s_v3,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:23.707437 +AZURE,australiaeast,Standard_E8s_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:46:25.559689 +AZURE,australiaeast,Standard_E8s_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:46:25.559692 +AZURE,australiaeast,Standard_E8s_v3,spot,NA,0.136468,USD,Azure Retail Prices API,2025-12-18T04:46:23.708541 +AZURE,australiaeast,Standard_E8s_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:23.708550 +AZURE,australiaeast,Standard_E8s_v4,reserved_1y,NA,0.355137,USD,Azure Retail Prices API,2025-12-18T04:46:25.560803 +AZURE,australiaeast,Standard_E8s_v4,reserved_3y,NA,0.227093,USD,Azure Retail Prices API,2025-12-18T04:46:25.560807 +AZURE,australiaeast,Standard_E8s_v4,spot,NA,0.143631,USD,Azure Retail Prices API,2025-12-18T04:46:23.707728 +AZURE,australiaeast,Standard_E8s_v5,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:23.707552 +AZURE,australiaeast,Standard_E8s_v5,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:46:25.559838 +AZURE,australiaeast,Standard_E8s_v5,reserved_3y,NA,0.223478,USD,Azure Retail Prices API,2025-12-18T04:46:25.559841 +AZURE,australiaeast,Standard_E8s_v5,spot,NA,0.199199,USD,Azure Retail Prices API,2025-12-18T04:46:23.708875 +AZURE,australiaeast,Standard_E96a_v4,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:23.708782 +AZURE,australiaeast,Standard_E96a_v4,reserved_1y,NA,4.261872,USD,Azure Retail Prices API,2025-12-18T04:46:25.561043 +AZURE,australiaeast,Standard_E96a_v4,reserved_3y,NA,2.725266,USD,Azure Retail Prices API,2025-12-18T04:46:25.561046 +AZURE,australiaeast,Standard_E96a_v4,spot,NA,1.33943,USD,Azure Retail Prices API,2025-12-18T04:46:23.707845 +AZURE,australiaeast,Standard_E96ads_v5,on_demand,NA,7.632,USD,Azure Retail Prices API,2025-12-18T04:46:23.707898 +AZURE,australiaeast,Standard_E96ads_v5,reserved_1y,NA,4.502854,USD,Azure Retail Prices API,2025-12-18T04:46:25.560127 +AZURE,australiaeast,Standard_E96ads_v5,reserved_3y,NA,2.900152,USD,Azure Retail Prices API,2025-12-18T04:46:25.560130 +AZURE,australiaeast,Standard_E96ads_v5,spot,NA,1.410394,USD,Azure Retail Prices API,2025-12-18T04:46:23.707344 +AZURE,australiaeast,Standard_E96ads_v6,on_demand,NA,8.746,USD,Azure Retail Prices API,2025-12-18T04:46:23.707480 +AZURE,australiaeast,Standard_E96ads_v6,reserved_1y,NA,5.159932,USD,Azure Retail Prices API,2025-12-18T04:46:25.559736 +AZURE,australiaeast,Standard_E96ads_v6,reserved_3y,NA,3.323326,USD,Azure Retail Prices API,2025-12-18T04:46:25.559742 +AZURE,australiaeast,Standard_E96ads_v6,spot,NA,1.616261,USD,Azure Retail Prices API,2025-12-18T04:46:23.708596 +AZURE,australiaeast,Standard_E96as_v4,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:23.707842 +AZURE,australiaeast,Standard_E96as_v4,reserved_1y,NA,4.261872,USD,Azure Retail Prices API,2025-12-18T04:46:25.560084 +AZURE,australiaeast,Standard_E96as_v4,reserved_3y,NA,2.725266,USD,Azure Retail Prices API,2025-12-18T04:46:25.560086 +AZURE,australiaeast,Standard_E96as_v4,spot,NA,1.33943,USD,Azure Retail Prices API,2025-12-18T04:46:23.707685 +AZURE,australiaeast,Standard_E96as_v5,on_demand,NA,10.944,USD,Azure Retail Prices API,2025-12-18T04:46:23.708315 +AZURE,australiaeast,Standard_E96as_v5,reserved_1y,NA,3.851484,USD,Azure Retail Prices API,2025-12-18T04:46:25.560946 +AZURE,australiaeast,Standard_E96as_v5,reserved_3y,NA,2.480632,USD,Azure Retail Prices API,2025-12-18T04:46:25.560949 +AZURE,australiaeast,Standard_E96as_v5,spot,NA,1.206374,USD,Azure Retail Prices API,2025-12-18T04:46:23.707959 +AZURE,australiaeast,Standard_E96ds_v5,on_demand,NA,8.352,USD,Azure Retail Prices API,2025-12-18T04:46:23.708776 +AZURE,australiaeast,Standard_E96ds_v5,reserved_1y,NA,4.927626,USD,Azure Retail Prices API,2025-12-18T04:46:25.561038 +AZURE,australiaeast,Standard_E96ds_v5,reserved_3y,NA,3.173744,USD,Azure Retail Prices API,2025-12-18T04:46:25.561041 +AZURE,australiaeast,Standard_E96ds_v5,spot,NA,2.588285,USD,Azure Retail Prices API,2025-12-18T04:46:23.708648 +AZURE,australiaeast,Standard_E96ds_v6,on_demand,NA,9.406,USD,Azure Retail Prices API,2025-12-18T04:46:23.707799 +AZURE,australiaeast,Standard_E96ds_v6,reserved_1y,NA,5.831735,USD,Azure Retail Prices API,2025-12-18T04:46:25.560044 +AZURE,australiaeast,Standard_E96ds_v6,reserved_3y,NA,3.668379,USD,Azure Retail Prices API,2025-12-18T04:46:25.560047 +AZURE,australiaeast,Standard_E96ds_v6,spot,NA,1.738229,USD,Azure Retail Prices API,2025-12-18T04:46:23.708878 +AZURE,australiaeast,Standard_E96pds_v6,on_demand,NA,6.998,USD,Azure Retail Prices API,2025-12-18T04:46:23.708080 +AZURE,australiaeast,Standard_E96pds_v6,reserved_1y,NA,4.12911,USD,Azure Retail Prices API,2025-12-18T04:46:25.560291 +AZURE,australiaeast,Standard_E96pds_v6,reserved_3y,NA,2.659399,USD,Azure Retail Prices API,2025-12-18T04:46:25.560294 +AZURE,australiaeast,Standard_E96pds_v6,spot,NA,1.304427,USD,Azure Retail Prices API,2025-12-18T04:46:23.708148 +AZURE,australiaeast,Standard_E96ps_v6,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:46:23.708287 +AZURE,australiaeast,Standard_E96ps_v6,reserved_1y,NA,3.256849,USD,Azure Retail Prices API,2025-12-18T04:46:25.560513 +AZURE,australiaeast,Standard_E96ps_v6,reserved_3y,NA,2.097603,USD,Azure Retail Prices API,2025-12-18T04:46:25.560515 +AZURE,australiaeast,Standard_E96ps_v6,spot,NA,1.020096,USD,Azure Retail Prices API,2025-12-18T04:46:23.707820 +AZURE,australiaeast,Standard_E96s_v5,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:23.707591 +AZURE,australiaeast,Standard_E96s_v5,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:46:25.559862 +AZURE,australiaeast,Standard_E96s_v5,reserved_3y,NA,2.681773,USD,Azure Retail Prices API,2025-12-18T04:46:25.559865 +AZURE,australiaeast,Standard_E96s_v5,spot,NA,2.39039,USD,Azure Retail Prices API,2025-12-18T04:46:23.707517 +AZURE,australiaeast,Standard_EC16ads_v6,on_demand,NA,1.458,USD,Azure Retail Prices API,2025-12-18T04:46:23.708052 +AZURE,australiaeast,Standard_EC16ads_v6,reserved_1y,NA,0.859932,USD,Azure Retail Prices API,2025-12-18T04:46:25.560274 +AZURE,australiaeast,Standard_EC16ads_v6,reserved_3y,NA,0.553881,USD,Azure Retail Prices API,2025-12-18T04:46:25.560277 +AZURE,australiaeast,Standard_EC16ads_v6,spot,NA,0.269438,USD,Azure Retail Prices API,2025-12-18T04:46:23.707737 +AZURE,australiaeast,Standard_EC16as_v6,on_demand,NA,1.198,USD,Azure Retail Prices API,2025-12-18T04:46:23.707468 +AZURE,australiaeast,Standard_EC16as_v6,reserved_1y,NA,0.707078,USD,Azure Retail Prices API,2025-12-18T04:46:25.559712 +AZURE,australiaeast,Standard_EC16as_v6,reserved_3y,NA,0.455403,USD,Azure Retail Prices API,2025-12-18T04:46:25.559714 +AZURE,australiaeast,Standard_EC16as_v6,spot,NA,0.22139,USD,Azure Retail Prices API,2025-12-18T04:46:23.707731 +AZURE,australiaeast,Standard_EC2ads_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:23.708203 +AZURE,australiaeast,Standard_EC2ads_v6,reserved_1y,NA,0.107534,USD,Azure Retail Prices API,2025-12-18T04:46:25.560401 +AZURE,australiaeast,Standard_EC2ads_v6,reserved_3y,NA,0.069254,USD,Azure Retail Prices API,2025-12-18T04:46:25.560404 +AZURE,australiaeast,Standard_EC2ads_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:46:23.707743 +AZURE,australiaeast,Standard_EC2as_v6,on_demand,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:46:23.707318 +AZURE,australiaeast,Standard_EC2as_v6,reserved_1y,NA,0.088356,USD,Azure Retail Prices API,2025-12-18T04:46:25.559592 +AZURE,australiaeast,Standard_EC2as_v6,reserved_3y,NA,0.056925,USD,Azure Retail Prices API,2025-12-18T04:46:25.559595 +AZURE,australiaeast,Standard_EC2as_v6,spot,NA,0.02772,USD,Azure Retail Prices API,2025-12-18T04:46:23.707694 +AZURE,australiaeast,Standard_EC32ads_v6,on_demand,NA,2.915,USD,Azure Retail Prices API,2025-12-18T04:46:23.708567 +AZURE,australiaeast,Standard_EC32ads_v6,reserved_1y,NA,1.719977,USD,Azure Retail Prices API,2025-12-18T04:46:25.560818 +AZURE,australiaeast,Standard_EC32ads_v6,reserved_3y,NA,1.107763,USD,Azure Retail Prices API,2025-12-18T04:46:25.560821 +AZURE,australiaeast,Standard_EC32ads_v6,spot,NA,0.538692,USD,Azure Retail Prices API,2025-12-18T04:46:23.707283 +AZURE,australiaeast,Standard_EC32as_v6,on_demand,NA,2.397,USD,Azure Retail Prices API,2025-12-18T04:46:23.708798 +AZURE,australiaeast,Standard_EC32as_v6,reserved_1y,NA,1.414155,USD,Azure Retail Prices API,2025-12-18T04:46:25.561065 +AZURE,australiaeast,Standard_EC32as_v6,reserved_3y,NA,0.910769,USD,Azure Retail Prices API,2025-12-18T04:46:25.561068 +AZURE,australiaeast,Standard_EC32as_v6,spot,NA,0.442966,USD,Azure Retail Prices API,2025-12-18T04:46:23.708844 +AZURE,australiaeast,Standard_EC48ads_v6,on_demand,NA,4.373,USD,Azure Retail Prices API,2025-12-18T04:46:23.707631 +AZURE,australiaeast,Standard_EC48ads_v6,reserved_1y,NA,2.579909,USD,Azure Retail Prices API,2025-12-18T04:46:25.559880 +AZURE,australiaeast,Standard_EC48ads_v6,reserved_3y,NA,1.661682,USD,Azure Retail Prices API,2025-12-18T04:46:25.559882 +AZURE,australiaeast,Standard_EC48ads_v6,spot,NA,0.80813,USD,Azure Retail Prices API,2025-12-18T04:46:23.708855 +AZURE,australiaeast,Standard_EC48as_v6,on_demand,NA,3.595,USD,Azure Retail Prices API,2025-12-18T04:46:23.708701 +AZURE,australiaeast,Standard_EC48as_v6,reserved_1y,NA,2.121119,USD,Azure Retail Prices API,2025-12-18T04:46:25.560957 +AZURE,australiaeast,Standard_EC48as_v6,reserved_3y,NA,1.366172,USD,Azure Retail Prices API,2025-12-18T04:46:25.560960 +AZURE,australiaeast,Standard_EC48as_v6,spot,NA,0.664356,USD,Azure Retail Prices API,2025-12-18T04:46:23.708860 +AZURE,australiaeast,Standard_EC4ads_v6,on_demand,NA,0.364,USD,Azure Retail Prices API,2025-12-18T04:46:23.707419 +AZURE,australiaeast,Standard_EC4ads_v6,reserved_1y,NA,0.214954,USD,Azure Retail Prices API,2025-12-18T04:46:25.559669 +AZURE,australiaeast,Standard_EC4ads_v6,reserved_3y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:25.559674 +AZURE,australiaeast,Standard_EC4ads_v6,spot,NA,0.067267,USD,Azure Retail Prices API,2025-12-18T04:46:23.707425 +AZURE,australiaeast,Standard_EC4as_v6,on_demand,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:46:23.707569 +AZURE,australiaeast,Standard_EC4as_v6,reserved_1y,NA,0.176712,USD,Azure Retail Prices API,2025-12-18T04:46:25.559844 +AZURE,australiaeast,Standard_EC4as_v6,reserved_3y,NA,0.113851,USD,Azure Retail Prices API,2025-12-18T04:46:25.559847 +AZURE,australiaeast,Standard_EC4as_v6,spot,NA,0.05544,USD,Azure Retail Prices API,2025-12-18T04:46:23.708132 +AZURE,australiaeast,Standard_EC64ads_v6,on_demand,NA,5.83,USD,Azure Retail Prices API,2025-12-18T04:46:23.708590 +AZURE,australiaeast,Standard_EC64ads_v6,reserved_1y,NA,3.439954,USD,Azure Retail Prices API,2025-12-18T04:46:25.560842 +AZURE,australiaeast,Standard_EC64ads_v6,reserved_3y,NA,2.215563,USD,Azure Retail Prices API,2025-12-18T04:46:25.560846 +AZURE,australiaeast,Standard_EC64ads_v6,spot,NA,1.077384,USD,Azure Retail Prices API,2025-12-18T04:46:23.708869 +AZURE,australiaeast,Standard_EC64as_v6,on_demand,NA,4.794,USD,Azure Retail Prices API,2025-12-18T04:46:23.707889 +AZURE,australiaeast,Standard_EC64as_v6,reserved_1y,NA,2.828196,USD,Azure Retail Prices API,2025-12-18T04:46:25.560116 +AZURE,australiaeast,Standard_EC64as_v6,reserved_3y,NA,1.821575,USD,Azure Retail Prices API,2025-12-18T04:46:25.560119 +AZURE,australiaeast,Standard_EC64as_v6,spot,NA,0.885931,USD,Azure Retail Prices API,2025-12-18T04:46:23.707428 +AZURE,australiaeast,Standard_EC8ads_v6,on_demand,NA,0.729,USD,Azure Retail Prices API,2025-12-18T04:46:23.707861 +AZURE,australiaeast,Standard_EC8ads_v6,reserved_1y,NA,0.430023,USD,Azure Retail Prices API,2025-12-18T04:46:25.560105 +AZURE,australiaeast,Standard_EC8ads_v6,reserved_3y,NA,0.276941,USD,Azure Retail Prices API,2025-12-18T04:46:25.560108 +AZURE,australiaeast,Standard_EC8ads_v6,spot,NA,0.134719,USD,Azure Retail Prices API,2025-12-18T04:46:23.707933 +AZURE,australiaeast,Standard_EC8as_v6,on_demand,NA,0.599,USD,Azure Retail Prices API,2025-12-18T04:46:23.707460 +AZURE,australiaeast,Standard_EC8as_v6,reserved_1y,NA,0.353539,USD,Azure Retail Prices API,2025-12-18T04:46:25.559706 +AZURE,australiaeast,Standard_EC8as_v6,reserved_3y,NA,0.227702,USD,Azure Retail Prices API,2025-12-18T04:46:25.559709 +AZURE,australiaeast,Standard_EC8as_v6,spot,NA,0.110695,USD,Azure Retail Prices API,2025-12-18T04:46:23.708126 +AZURE,australiaeast,Standard_EC96ads_v6,on_demand,NA,8.746,USD,Azure Retail Prices API,2025-12-18T04:46:23.708734 +AZURE,australiaeast,Standard_EC96ads_v6,reserved_1y,NA,5.159932,USD,Azure Retail Prices API,2025-12-18T04:46:25.560984 +AZURE,australiaeast,Standard_EC96ads_v6,reserved_3y,NA,3.323326,USD,Azure Retail Prices API,2025-12-18T04:46:25.560986 +AZURE,australiaeast,Standard_EC96ads_v6,spot,NA,1.616261,USD,Azure Retail Prices API,2025-12-18T04:46:23.707303 +AZURE,australiaeast,Standard_EC96as_v6,on_demand,NA,7.19,USD,Azure Retail Prices API,2025-12-18T04:46:23.707390 +AZURE,australiaeast,Standard_EC96as_v6,reserved_1y,NA,4.242352,USD,Azure Retail Prices API,2025-12-18T04:46:25.559638 +AZURE,australiaeast,Standard_EC96as_v6,reserved_3y,NA,2.732344,USD,Azure Retail Prices API,2025-12-18T04:46:25.559640 +AZURE,australiaeast,Standard_EC96as_v6,spot,NA,1.328712,USD,Azure Retail Prices API,2025-12-18T04:46:23.708557 +AZURE,australiaeast,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379640 +AZURE,australiaeast,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379649 +AZURE,australiaeast,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379653 +AZURE,australiaeast,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379644 +AZURE,australiaeast,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381948 +AZURE,australiaeast,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381956 +AZURE,australiaeast,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381960 +AZURE,australiaeast,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381952 +AZURE,australiaeast,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384686 +AZURE,australiaeast,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384695 +AZURE,australiaeast,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384699 +AZURE,australiaeast,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384691 +AZURE,australiaeast,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385531 +AZURE,australiaeast,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385540 +AZURE,australiaeast,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385544 +AZURE,australiaeast,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385535 +AZURE,australiaeast,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378115 +AZURE,australiaeast,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378125 +AZURE,australiaeast,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378130 +AZURE,australiaeast,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378120 +AZURE,australiaeast,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386271 +AZURE,australiaeast,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386279 +AZURE,australiaeast,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386283 +AZURE,australiaeast,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386275 +AZURE,australiaeast,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380406 +AZURE,australiaeast,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380415 +AZURE,australiaeast,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380419 +AZURE,australiaeast,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380411 +AZURE,australiaeast,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383021 +AZURE,australiaeast,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383030 +AZURE,australiaeast,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383035 +AZURE,australiaeast,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383026 +AZURE,australiaeast,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387040 +AZURE,australiaeast,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387048 +AZURE,australiaeast,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387052 +AZURE,australiaeast,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387044 +AZURE,australiaeast,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388254 +AZURE,australiaeast,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388262 +AZURE,australiaeast,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388267 +AZURE,australiaeast,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388258 +AZURE,australiaeast,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378837 +AZURE,australiaeast,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378850 +AZURE,australiaeast,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378856 +AZURE,australiaeast,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378844 +AZURE,australiaeast,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381145 +AZURE,australiaeast,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381153 +AZURE,australiaeast,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381158 +AZURE,australiaeast,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381149 +AZURE,australiaeast,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383868 +AZURE,australiaeast,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383879 +AZURE,australiaeast,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383883 +AZURE,australiaeast,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383875 +AZURE,australiaeast,Standard_H16,on_demand,NA,2.369,USD,Azure Retail Prices API,2025-12-18T04:46:23.708163 +AZURE,australiaeast,Standard_H16,spot,NA,0.437791,USD,Azure Retail Prices API,2025-12-18T04:46:23.707949 +AZURE,australiaeast,Standard_H8,on_demand,NA,1.185,USD,Azure Retail Prices API,2025-12-18T04:46:23.707924 +AZURE,australiaeast,Standard_H8,spot,NA,0.218988,USD,Azure Retail Prices API,2025-12-18T04:46:23.708104 +AZURE,australiaeast,Standard_L16as_v3,on_demand,NA,1.496,USD,Azure Retail Prices API,2025-12-18T04:46:23.708047 +AZURE,australiaeast,Standard_L16as_v3,reserved_1y,NA,0.95742,USD,Azure Retail Prices API,2025-12-18T04:46:25.560268 +AZURE,australiaeast,Standard_L16as_v3,reserved_3y,NA,0.628311,USD,Azure Retail Prices API,2025-12-18T04:46:25.560271 +AZURE,australiaeast,Standard_L16as_v3,spot,NA,0.276461,USD,Azure Retail Prices API,2025-12-18T04:46:23.707381 +AZURE,australiaeast,Standard_L16s_v3,on_demand,NA,1.672,USD,Azure Retail Prices API,2025-12-18T04:46:23.707998 +AZURE,australiaeast,Standard_L16s_v3,reserved_1y,NA,1.070091,USD,Azure Retail Prices API,2025-12-18T04:46:25.560199 +AZURE,australiaeast,Standard_L16s_v3,reserved_3y,NA,0.702245,USD,Azure Retail Prices API,2025-12-18T04:46:25.560202 +AZURE,australiaeast,Standard_L16s_v3,spot,NA,0.577007,USD,Azure Retail Prices API,2025-12-18T04:46:23.707700 +AZURE,australiaeast,Standard_L32as_v3,on_demand,NA,2.992,USD,Azure Retail Prices API,2025-12-18T04:46:23.708812 +AZURE,australiaeast,Standard_L32as_v3,reserved_1y,NA,1.91484,USD,Azure Retail Prices API,2025-12-18T04:46:25.561076 +AZURE,australiaeast,Standard_L32as_v3,reserved_3y,NA,1.256621,USD,Azure Retail Prices API,2025-12-18T04:46:25.561079 +AZURE,australiaeast,Standard_L32as_v3,spot,NA,0.552922,USD,Azure Retail Prices API,2025-12-18T04:46:23.708218 +AZURE,australiaeast,Standard_L32s_v3,on_demand,NA,3.344,USD,Azure Retail Prices API,2025-12-18T04:46:23.707422 +AZURE,australiaeast,Standard_L32s_v3,reserved_1y,NA,2.140183,USD,Azure Retail Prices API,2025-12-18T04:46:25.559677 +AZURE,australiaeast,Standard_L32s_v3,reserved_3y,NA,1.40449,USD,Azure Retail Prices API,2025-12-18T04:46:25.559680 +AZURE,australiaeast,Standard_L32s_v3,spot,NA,1.154014,USD,Azure Retail Prices API,2025-12-18T04:46:23.707682 +AZURE,australiaeast,Standard_L48as_v3,on_demand,NA,4.488,USD,Azure Retail Prices API,2025-12-18T04:46:23.707338 +AZURE,australiaeast,Standard_L48as_v3,reserved_1y,NA,2.872374,USD,Azure Retail Prices API,2025-12-18T04:46:25.559609 +AZURE,australiaeast,Standard_L48as_v3,reserved_3y,NA,1.88497,USD,Azure Retail Prices API,2025-12-18T04:46:25.559612 +AZURE,australiaeast,Standard_L48as_v3,spot,NA,0.829382,USD,Azure Retail Prices API,2025-12-18T04:46:23.707384 +AZURE,australiaeast,Standard_L48s_v3,on_demand,NA,5.016,USD,Azure Retail Prices API,2025-12-18T04:46:23.708378 +AZURE,australiaeast,Standard_L48s_v3,reserved_1y,NA,3.210274,USD,Azure Retail Prices API,2025-12-18T04:46:25.560619 +AZURE,australiaeast,Standard_L48s_v3,reserved_3y,NA,2.106735,USD,Azure Retail Prices API,2025-12-18T04:46:25.560622 +AZURE,australiaeast,Standard_L48s_v3,spot,NA,1.731022,USD,Azure Retail Prices API,2025-12-18T04:46:23.708910 +AZURE,australiaeast,Standard_L64as_v3,on_demand,NA,5.984,USD,Azure Retail Prices API,2025-12-18T04:46:23.708412 +AZURE,australiaeast,Standard_L64as_v3,reserved_1y,NA,3.829795,USD,Azure Retail Prices API,2025-12-18T04:46:25.560661 +AZURE,australiaeast,Standard_L64as_v3,reserved_3y,NA,2.51328,USD,Azure Retail Prices API,2025-12-18T04:46:25.560666 +AZURE,australiaeast,Standard_L64as_v3,spot,NA,1.105843,USD,Azure Retail Prices API,2025-12-18T04:46:23.707993 +AZURE,australiaeast,Standard_L64s_v3,on_demand,NA,6.688,USD,Azure Retail Prices API,2025-12-18T04:46:23.708519 +AZURE,australiaeast,Standard_L64s_v3,reserved_1y,NA,4.280365,USD,Azure Retail Prices API,2025-12-18T04:46:25.560783 +AZURE,australiaeast,Standard_L64s_v3,reserved_3y,NA,2.808942,USD,Azure Retail Prices API,2025-12-18T04:46:25.560785 +AZURE,australiaeast,Standard_L64s_v3,spot,NA,2.308029,USD,Azure Retail Prices API,2025-12-18T04:46:23.707826 +AZURE,australiaeast,Standard_L80as_v3,on_demand,NA,7.48,USD,Azure Retail Prices API,2025-12-18T04:46:23.707662 +AZURE,australiaeast,Standard_L80as_v3,reserved_1y,NA,4.787215,USD,Azure Retail Prices API,2025-12-18T04:46:25.559931 +AZURE,australiaeast,Standard_L80as_v3,reserved_3y,NA,3.141591,USD,Azure Retail Prices API,2025-12-18T04:46:25.559934 +AZURE,australiaeast,Standard_L80as_v3,spot,NA,1.382304,USD,Azure Retail Prices API,2025-12-18T04:46:23.708810 +AZURE,australiaeast,Standard_L80s_v3,on_demand,NA,8.36,USD,Azure Retail Prices API,2025-12-18T04:46:23.707973 +AZURE,australiaeast,Standard_L80s_v3,reserved_1y,NA,5.350457,USD,Azure Retail Prices API,2025-12-18T04:46:25.560167 +AZURE,australiaeast,Standard_L80s_v3,reserved_3y,NA,3.511187,USD,Azure Retail Prices API,2025-12-18T04:46:25.560172 +AZURE,australiaeast,Standard_L80s_v3,spot,NA,2.885036,USD,Azure Retail Prices API,2025-12-18T04:46:23.707581 +AZURE,australiaeast,Standard_L8as_v3,on_demand,NA,0.748,USD,Azure Retail Prices API,2025-12-18T04:46:23.708281 +AZURE,australiaeast,Standard_L8as_v3,reserved_1y,NA,0.478767,USD,Azure Retail Prices API,2025-12-18T04:46:25.560502 +AZURE,australiaeast,Standard_L8as_v3,reserved_3y,NA,0.314155,USD,Azure Retail Prices API,2025-12-18T04:46:25.560505 +AZURE,australiaeast,Standard_L8as_v3,spot,NA,0.13823,USD,Azure Retail Prices API,2025-12-18T04:46:23.708474 +AZURE,australiaeast,Standard_L8s_v3,on_demand,NA,0.836,USD,Azure Retail Prices API,2025-12-18T04:46:23.707767 +AZURE,australiaeast,Standard_L8s_v3,reserved_1y,NA,0.535046,USD,Azure Retail Prices API,2025-12-18T04:46:25.560001 +AZURE,australiaeast,Standard_L8s_v3,reserved_3y,NA,0.351104,USD,Azure Retail Prices API,2025-12-18T04:46:25.560003 +AZURE,australiaeast,Standard_L8s_v3,spot,NA,0.288504,USD,Azure Retail Prices API,2025-12-18T04:46:23.707711 +AZURE,australiaeast,Standard_NC12s_v3,on_demand,NA,8.468,USD,Azure Retail Prices API,2025-12-18T04:46:23.708667 +AZURE,australiaeast,Standard_NC12s_v3,spot,NA,1.564886,USD,Azure Retail Prices API,2025-12-18T04:46:23.708584 +AZURE,australiaeast,Standard_NC16as_T4_v3,on_demand,NA,1.565,USD,Azure Retail Prices API,2025-12-18T04:46:23.708403 +AZURE,australiaeast,Standard_NC16as_T4_v3,reserved_1y,NA,0.920662,USD,Azure Retail Prices API,2025-12-18T04:46:25.560653 +AZURE,australiaeast,Standard_NC16as_T4_v3,reserved_3y,NA,0.594787,USD,Azure Retail Prices API,2025-12-18T04:46:25.560657 +AZURE,australiaeast,Standard_NC16as_T4_v3,spot,NA,0.693452,USD,Azure Retail Prices API,2025-12-18T04:46:23.708793 +AZURE,australiaeast,Standard_NC24ads_A100_v4,on_demand,NA,5.326,USD,Azure Retail Prices API,2025-12-18T04:46:23.708030 +AZURE,australiaeast,Standard_NC24ads_A100_v4,reserved_1y,NA,3.481507,USD,Azure Retail Prices API,2025-12-18T04:46:25.560256 +AZURE,australiaeast,Standard_NC24ads_A100_v4,reserved_3y,NA,1.976408,USD,Azure Retail Prices API,2025-12-18T04:46:25.560260 +AZURE,australiaeast,Standard_NC24ads_A100_v4,spot,NA,0.984245,USD,Azure Retail Prices API,2025-12-18T04:46:23.708661 +AZURE,australiaeast,Standard_NC24s_v3,on_demand,NA,16.936,USD,Azure Retail Prices API,2025-12-18T04:46:23.707990 +AZURE,australiaeast,Standard_NC24s_v3,spot,NA,3.129773,USD,Azure Retail Prices API,2025-12-18T04:46:23.708027 +AZURE,australiaeast,Standard_NC40ads_H100_v5,on_demand,NA,10.121,USD,Azure Retail Prices API,2025-12-18T04:46:23.708098 +AZURE,australiaeast,Standard_NC40ads_H100_v5,reserved_1y,NA,7.590753,USD,Azure Retail Prices API,2025-12-18T04:46:25.560303 +AZURE,australiaeast,Standard_NC40ads_H100_v5,reserved_3y,NA,5.566553,USD,Azure Retail Prices API,2025-12-18T04:46:25.560305 +AZURE,australiaeast,Standard_NC40ads_H100_v5,spot,NA,9.1089,USD,Azure Retail Prices API,2025-12-18T04:46:23.708604 +AZURE,australiaeast,Standard_NC48ads_A100_v4,on_demand,NA,10.652,USD,Azure Retail Prices API,2025-12-18T04:46:23.708141 +AZURE,australiaeast,Standard_NC48ads_A100_v4,reserved_1y,NA,6.963014,USD,Azure Retail Prices API,2025-12-18T04:46:25.560355 +AZURE,australiaeast,Standard_NC48ads_A100_v4,reserved_3y,NA,3.952854,USD,Azure Retail Prices API,2025-12-18T04:46:25.560358 +AZURE,australiaeast,Standard_NC48ads_A100_v4,spot,NA,1.96849,USD,Azure Retail Prices API,2025-12-18T04:46:23.707333 +AZURE,australiaeast,Standard_NC4as_T4_v3,on_demand,NA,0.684,USD,Azure Retail Prices API,2025-12-18T04:46:23.708210 +AZURE,australiaeast,Standard_NC4as_T4_v3,reserved_1y,NA,0.402169,USD,Azure Retail Prices API,2025-12-18T04:46:25.560407 +AZURE,australiaeast,Standard_NC4as_T4_v3,reserved_3y,NA,0.259855,USD,Azure Retail Prices API,2025-12-18T04:46:25.560410 +AZURE,australiaeast,Standard_NC4as_T4_v3,spot,NA,0.30308,USD,Azure Retail Prices API,2025-12-18T04:46:23.707572 +AZURE,australiaeast,Standard_NC64as_T4_v3,on_demand,NA,5.658,USD,Azure Retail Prices API,2025-12-18T04:46:23.708042 +AZURE,australiaeast,Standard_NC64as_T4_v3,reserved_1y,NA,3.327626,USD,Azure Retail Prices API,2025-12-18T04:46:25.560263 +AZURE,australiaeast,Standard_NC64as_T4_v3,reserved_3y,NA,2.149886,USD,Azure Retail Prices API,2025-12-18T04:46:25.560266 +AZURE,australiaeast,Standard_NC64as_T4_v3,spot,NA,2.50706,USD,Azure Retail Prices API,2025-12-18T04:46:23.708574 +AZURE,australiaeast,Standard_NC6s_v3,on_demand,NA,4.234,USD,Azure Retail Prices API,2025-12-18T04:46:23.707494 +AZURE,australiaeast,Standard_NC6s_v3,spot,NA,0.782443,USD,Azure Retail Prices API,2025-12-18T04:46:23.708358 +AZURE,australiaeast,Standard_NC8as_T4_v3,on_demand,NA,0.978,USD,Azure Retail Prices API,2025-12-18T04:46:23.707236 +AZURE,australiaeast,Standard_NC8as_T4_v3,reserved_1y,NA,0.575,USD,Azure Retail Prices API,2025-12-18T04:46:25.559511 +AZURE,australiaeast,Standard_NC8as_T4_v3,reserved_3y,NA,0.371499,USD,Azure Retail Prices API,2025-12-18T04:46:25.559514 +AZURE,australiaeast,Standard_NC8as_T4_v3,spot,NA,0.433352,USD,Azure Retail Prices API,2025-12-18T04:46:23.708593 +AZURE,australiaeast,Standard_NC96ads_A100_v4,on_demand,NA,21.303,USD,Azure Retail Prices API,2025-12-18T04:46:23.708918 +AZURE,australiaeast,Standard_NC96ads_A100_v4,reserved_1y,NA,13.926027,USD,Azure Retail Prices API,2025-12-18T04:46:25.561149 +AZURE,australiaeast,Standard_NC96ads_A100_v4,reserved_3y,NA,7.905708,USD,Azure Retail Prices API,2025-12-18T04:46:25.561152 +AZURE,australiaeast,Standard_NC96ads_A100_v4,spot,NA,3.936794,USD,Azure Retail Prices API,2025-12-18T04:46:23.707913 +AZURE,australiaeast,Standard_ND96isr_H100_v5,on_demand,NA,142.6,USD,Azure Retail Prices API,2025-12-18T04:46:23.708639 +AZURE,australiaeast,Standard_ND96isr_H100_v5,reserved_1y,NA,91.264041,USD,Azure Retail Prices API,2025-12-18T04:46:25.560887 +AZURE,australiaeast,Standard_ND96isr_H100_v5,reserved_3y,NA,62.601408,USD,Azure Retail Prices API,2025-12-18T04:46:25.560890 +AZURE,australiaeast,Standard_ND96isr_H100_v5,spot,NA,26.35248,USD,Azure Retail Prices API,2025-12-18T04:46:23.707602 +AZURE,australiaeast,Standard_NV36adms_A10_v5,on_demand,NA,6.554,USD,Azure Retail Prices API,2025-12-18T04:46:23.708607 +AZURE,australiaeast,Standard_NV36adms_A10_v5,reserved_1y,NA,4.194521,USD,Azure Retail Prices API,2025-12-18T04:46:25.560859 +AZURE,australiaeast,Standard_NV36adms_A10_v5,reserved_3y,NA,2.883752,USD,Azure Retail Prices API,2025-12-18T04:46:25.560862 +AZURE,australiaeast,Standard_NV36adms_A10_v5,spot,NA,1.211179,USD,Azure Retail Prices API,2025-12-18T04:46:23.708207 +AZURE,australiaeast,Standard_NV36ads_A10_v5,on_demand,NA,4.64,USD,Azure Retail Prices API,2025-12-18T04:46:23.707910 +AZURE,australiaeast,Standard_NV36ads_A10_v5,reserved_1y,NA,2.969635,USD,Azure Retail Prices API,2025-12-18T04:46:25.560138 +AZURE,australiaeast,Standard_NV36ads_A10_v5,reserved_3y,NA,2.041591,USD,Azure Retail Prices API,2025-12-18T04:46:25.560141 +AZURE,australiaeast,Standard_NV36ads_A10_v5,spot,NA,0.857472,USD,Azure Retail Prices API,2025-12-18T04:46:23.708553 +AZURE,australiaeast,Standard_NV72ads_A10_v5,on_demand,NA,9.454,USD,Azure Retail Prices API,2025-12-18T04:46:23.708277 +AZURE,australiaeast,Standard_NV72ads_A10_v5,reserved_1y,NA,6.050571,USD,Azure Retail Prices API,2025-12-18T04:46:25.560496 +AZURE,australiaeast,Standard_NV72ads_A10_v5,reserved_3y,NA,4.159741,USD,Azure Retail Prices API,2025-12-18T04:46:25.560499 +AZURE,australiaeast,Standard_NV72ads_A10_v5,spot,NA,1.747099,USD,Azure Retail Prices API,2025-12-18T04:46:23.707367 +AZURE,australiasoutheast,Standard_D128ds_v6,on_demand,NA,10.365,USD,Azure Retail Prices API,2025-12-18T04:46:27.528743 +AZURE,australiasoutheast,Standard_D128ds_v6,reserved_1y,NA,6.426598,USD,Azure Retail Prices API,2025-12-18T04:46:28.759238 +AZURE,australiasoutheast,Standard_D128ds_v6,reserved_3y,NA,4.042504,USD,Azure Retail Prices API,2025-12-18T04:46:28.759244 +AZURE,australiasoutheast,Standard_D128ds_v6,spot,NA,1.915452,USD,Azure Retail Prices API,2025-12-18T04:46:27.529360 +AZURE,australiasoutheast,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488541 +AZURE,australiasoutheast,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488549 +AZURE,australiasoutheast,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488553 +AZURE,australiasoutheast,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488545 +AZURE,australiasoutheast,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489322 +AZURE,australiasoutheast,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489347 +AZURE,australiasoutheast,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489353 +AZURE,australiasoutheast,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489326 +AZURE,australiasoutheast,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490421 +AZURE,australiasoutheast,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490429 +AZURE,australiasoutheast,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490433 +AZURE,australiasoutheast,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490425 +AZURE,australiasoutheast,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491174 +AZURE,australiasoutheast,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491183 +AZURE,australiasoutheast,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491187 +AZURE,australiasoutheast,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491179 +AZURE,australiasoutheast,Standard_D16_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:27.529159 +AZURE,australiasoutheast,Standard_D16_v3,reserved_1y,NA,0.627169,USD,Azure Retail Prices API,2025-12-18T04:46:28.759926 +AZURE,australiasoutheast,Standard_D16_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:28.759931 +AZURE,australiasoutheast,Standard_D16_v3,spot,NA,0.1848,USD,Azure Retail Prices API,2025-12-18T04:46:27.528375 +AZURE,australiasoutheast,Standard_D16a_v4,on_demand,NA,0.998,USD,Azure Retail Prices API,2025-12-18T04:46:27.529008 +AZURE,australiasoutheast,Standard_D16a_v4,reserved_1y,NA,0.599087,USD,Azure Retail Prices API,2025-12-18T04:46:28.759658 +AZURE,australiasoutheast,Standard_D16a_v4,reserved_3y,NA,0.399353,USD,Azure Retail Prices API,2025-12-18T04:46:28.759664 +AZURE,australiasoutheast,Standard_D16a_v4,spot,NA,0.18443,USD,Azure Retail Prices API,2025-12-18T04:46:27.529227 +AZURE,australiasoutheast,Standard_D16ads_v5,on_demand,NA,1.807,USD,Azure Retail Prices API,2025-12-18T04:46:27.528699 +AZURE,australiasoutheast,Standard_D16ads_v5,reserved_1y,NA,0.631963,USD,Azure Retail Prices API,2025-12-18T04:46:28.759283 +AZURE,australiasoutheast,Standard_D16ads_v5,reserved_3y,NA,0.40704,USD,Azure Retail Prices API,2025-12-18T04:46:28.759288 +AZURE,australiasoutheast,Standard_D16ads_v5,spot,NA,0.197921,USD,Azure Retail Prices API,2025-12-18T04:46:27.529462 +AZURE,australiasoutheast,Standard_D16ads_v6,on_demand,NA,1.189,USD,Azure Retail Prices API,2025-12-18T04:46:27.529698 +AZURE,australiasoutheast,Standard_D16ads_v6,reserved_1y,NA,0.70137,USD,Azure Retail Prices API,2025-12-18T04:46:28.760545 +AZURE,australiasoutheast,Standard_D16ads_v6,reserved_3y,NA,0.45175,USD,Azure Retail Prices API,2025-12-18T04:46:28.760551 +AZURE,australiasoutheast,Standard_D16ads_v6,spot,NA,0.219727,USD,Azure Retail Prices API,2025-12-18T04:46:27.529584 +AZURE,australiasoutheast,Standard_D16as_v4,on_demand,NA,0.998,USD,Azure Retail Prices API,2025-12-18T04:46:27.528922 +AZURE,australiasoutheast,Standard_D16as_v4,reserved_1y,NA,0.599087,USD,Azure Retail Prices API,2025-12-18T04:46:28.759525 +AZURE,australiasoutheast,Standard_D16as_v4,reserved_3y,NA,0.399353,USD,Azure Retail Prices API,2025-12-18T04:46:28.759531 +AZURE,australiasoutheast,Standard_D16as_v4,spot,NA,0.18443,USD,Azure Retail Prices API,2025-12-18T04:46:27.528426 +AZURE,australiasoutheast,Standard_D16as_v5,on_demand,NA,1.63,USD,Azure Retail Prices API,2025-12-18T04:46:27.528546 +AZURE,australiasoutheast,Standard_D16as_v5,reserved_1y,NA,0.52774,USD,Azure Retail Prices API,2025-12-18T04:46:28.759029 +AZURE,australiasoutheast,Standard_D16as_v5,reserved_3y,NA,0.339878,USD,Azure Retail Prices API,2025-12-18T04:46:28.759034 +AZURE,australiasoutheast,Standard_D16as_v5,spot,NA,0.165211,USD,Azure Retail Prices API,2025-12-18T04:46:27.529203 +AZURE,australiasoutheast,Standard_D16d_v4,on_demand,NA,1.085,USD,Azure Retail Prices API,2025-12-18T04:46:27.528897 +AZURE,australiasoutheast,Standard_D16d_v4,reserved_1y,NA,0.640068,USD,Azure Retail Prices API,2025-12-18T04:46:28.759458 +AZURE,australiasoutheast,Standard_D16d_v4,reserved_3y,NA,0.412215,USD,Azure Retail Prices API,2025-12-18T04:46:28.759464 +AZURE,australiasoutheast,Standard_D16d_v4,spot,NA,0.200508,USD,Azure Retail Prices API,2025-12-18T04:46:27.529533 +AZURE,australiasoutheast,Standard_D16ds_v4,on_demand,NA,1.085,USD,Azure Retail Prices API,2025-12-18T04:46:27.528249 +AZURE,australiasoutheast,Standard_D16ds_v4,reserved_1y,NA,0.640068,USD,Azure Retail Prices API,2025-12-18T04:46:28.758416 +AZURE,australiasoutheast,Standard_D16ds_v4,reserved_3y,NA,0.412215,USD,Azure Retail Prices API,2025-12-18T04:46:28.758422 +AZURE,australiasoutheast,Standard_D16ds_v4,spot,NA,0.200508,USD,Azure Retail Prices API,2025-12-18T04:46:27.529413 +AZURE,australiasoutheast,Standard_D16ds_v5,on_demand,NA,1.175,USD,Azure Retail Prices API,2025-12-18T04:46:27.529832 +AZURE,australiasoutheast,Standard_D16ds_v5,reserved_1y,NA,0.693379,USD,Azure Retail Prices API,2025-12-18T04:46:28.760672 +AZURE,australiasoutheast,Standard_D16ds_v5,reserved_3y,NA,0.446575,USD,Azure Retail Prices API,2025-12-18T04:46:28.760678 +AZURE,australiasoutheast,Standard_D16ds_v5,spot,NA,0.21714,USD,Azure Retail Prices API,2025-12-18T04:46:27.529649 +AZURE,australiasoutheast,Standard_D16ds_v6,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:46:27.528408 +AZURE,australiasoutheast,Standard_D16ds_v6,reserved_1y,NA,0.803311,USD,Azure Retail Prices API,2025-12-18T04:46:28.758679 +AZURE,australiasoutheast,Standard_D16ds_v6,reserved_3y,NA,0.505327,USD,Azure Retail Prices API,2025-12-18T04:46:28.758683 +AZURE,australiasoutheast,Standard_D16ds_v6,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:46:27.528486 +AZURE,australiasoutheast,Standard_D16pds_v6,on_demand,NA,0.955,USD,Azure Retail Prices API,2025-12-18T04:46:27.529066 +AZURE,australiasoutheast,Standard_D16pds_v6,reserved_1y,NA,0.563584,USD,Azure Retail Prices API,2025-12-18T04:46:28.759780 +AZURE,australiasoutheast,Standard_D16pds_v6,reserved_3y,NA,0.362976,USD,Azure Retail Prices API,2025-12-18T04:46:28.759785 +AZURE,australiasoutheast,Standard_D16pds_v6,spot,NA,0.176484,USD,Azure Retail Prices API,2025-12-18T04:46:27.529248 +AZURE,australiasoutheast,Standard_D16ps_v6,on_demand,NA,0.73,USD,Azure Retail Prices API,2025-12-18T04:46:27.529684 +AZURE,australiasoutheast,Standard_D16ps_v6,reserved_1y,NA,0.430479,USD,Azure Retail Prices API,2025-12-18T04:46:28.760523 +AZURE,australiasoutheast,Standard_D16ps_v6,reserved_3y,NA,0.277245,USD,Azure Retail Prices API,2025-12-18T04:46:28.760528 +AZURE,australiasoutheast,Standard_D16ps_v6,spot,NA,0.134904,USD,Azure Retail Prices API,2025-12-18T04:46:27.528668 +AZURE,australiasoutheast,Standard_D16s_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:27.528114 +AZURE,australiasoutheast,Standard_D16s_v3,reserved_1y,NA,0.627169,USD,Azure Retail Prices API,2025-12-18T04:46:28.758179 +AZURE,australiasoutheast,Standard_D16s_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:28.758184 +AZURE,australiasoutheast,Standard_D16s_v3,spot,NA,0.1848,USD,Azure Retail Prices API,2025-12-18T04:46:27.528096 +AZURE,australiasoutheast,Standard_D16s_v4,on_demand,NA,0.998,USD,Azure Retail Prices API,2025-12-18T04:46:27.529920 +AZURE,australiasoutheast,Standard_D16s_v4,reserved_1y,NA,0.589041,USD,Azure Retail Prices API,2025-12-18T04:46:28.760775 +AZURE,australiasoutheast,Standard_D16s_v4,reserved_3y,NA,0.379376,USD,Azure Retail Prices API,2025-12-18T04:46:28.760781 +AZURE,australiasoutheast,Standard_D16s_v4,spot,NA,0.18443,USD,Azure Retail Prices API,2025-12-18T04:46:27.528748 +AZURE,australiasoutheast,Standard_D16s_v5,on_demand,NA,0.998,USD,Azure Retail Prices API,2025-12-18T04:46:27.528411 +AZURE,australiasoutheast,Standard_D16s_v5,reserved_1y,NA,0.589041,USD,Azure Retail Prices API,2025-12-18T04:46:28.758689 +AZURE,australiasoutheast,Standard_D16s_v5,reserved_3y,NA,0.369406,USD,Azure Retail Prices API,2025-12-18T04:46:28.758694 +AZURE,australiasoutheast,Standard_D16s_v5,spot,NA,0.18443,USD,Azure Retail Prices API,2025-12-18T04:46:27.528925 +AZURE,australiasoutheast,Standard_D2ads_v6,on_demand,NA,0.149,USD,Azure Retail Prices API,2025-12-18T04:46:27.528500 +AZURE,australiasoutheast,Standard_D2ads_v6,reserved_1y,NA,0.087671,USD,Azure Retail Prices API,2025-12-18T04:46:28.758814 +AZURE,australiasoutheast,Standard_D2ads_v6,reserved_3y,NA,0.056469,USD,Azure Retail Prices API,2025-12-18T04:46:28.758820 +AZURE,australiasoutheast,Standard_D2ads_v6,spot,NA,0.027535,USD,Azure Retail Prices API,2025-12-18T04:46:27.529044 +AZURE,australiasoutheast,Standard_D2ds_v6,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:46:27.529332 +AZURE,australiasoutheast,Standard_D2ds_v6,reserved_1y,NA,0.100457,USD,Azure Retail Prices API,2025-12-18T04:46:28.760155 +AZURE,australiasoutheast,Standard_D2ds_v6,reserved_3y,NA,0.063166,USD,Azure Retail Prices API,2025-12-18T04:46:28.760159 +AZURE,australiasoutheast,Standard_D2ds_v6,spot,NA,0.029938,USD,Azure Retail Prices API,2025-12-18T04:46:27.528589 +AZURE,australiasoutheast,Standard_D32_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:27.528497 +AZURE,australiasoutheast,Standard_D32_v3,reserved_1y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:28.758804 +AZURE,australiasoutheast,Standard_D32_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:28.758809 +AZURE,australiasoutheast,Standard_D32_v3,spot,NA,0.3696,USD,Azure Retail Prices API,2025-12-18T04:46:27.529990 +AZURE,australiasoutheast,Standard_D32a_v4,on_demand,NA,1.997,USD,Azure Retail Prices API,2025-12-18T04:46:27.528882 +AZURE,australiasoutheast,Standard_D32a_v4,reserved_1y,NA,1.198059,USD,Azure Retail Prices API,2025-12-18T04:46:28.759402 +AZURE,australiasoutheast,Standard_D32a_v4,reserved_3y,NA,0.798706,USD,Azure Retail Prices API,2025-12-18T04:46:28.759407 +AZURE,australiasoutheast,Standard_D32a_v4,spot,NA,0.369046,USD,Azure Retail Prices API,2025-12-18T04:46:27.528946 +AZURE,australiasoutheast,Standard_D32ads_v5,on_demand,NA,2.142,USD,Azure Retail Prices API,2025-12-18T04:46:27.528081 +AZURE,australiasoutheast,Standard_D32ads_v5,reserved_1y,NA,1.264041,USD,Azure Retail Prices API,2025-12-18T04:46:28.758101 +AZURE,australiasoutheast,Standard_D32ads_v5,reserved_3y,NA,0.814117,USD,Azure Retail Prices API,2025-12-18T04:46:28.758108 +AZURE,australiasoutheast,Standard_D32ads_v5,spot,NA,0.395842,USD,Azure Retail Prices API,2025-12-18T04:46:27.529473 +AZURE,australiasoutheast,Standard_D32ads_v6,on_demand,NA,2.378,USD,Azure Retail Prices API,2025-12-18T04:46:27.528866 +AZURE,australiasoutheast,Standard_D32ads_v6,reserved_1y,NA,1.40274,USD,Azure Retail Prices API,2025-12-18T04:46:28.759379 +AZURE,australiasoutheast,Standard_D32ads_v6,reserved_3y,NA,0.903501,USD,Azure Retail Prices API,2025-12-18T04:46:28.759384 +AZURE,australiasoutheast,Standard_D32ads_v6,spot,NA,0.439454,USD,Azure Retail Prices API,2025-12-18T04:46:27.528583 +AZURE,australiasoutheast,Standard_D32as_v4,on_demand,NA,1.997,USD,Azure Retail Prices API,2025-12-18T04:46:27.528665 +AZURE,australiasoutheast,Standard_D32as_v4,reserved_1y,NA,1.198059,USD,Azure Retail Prices API,2025-12-18T04:46:28.759124 +AZURE,australiasoutheast,Standard_D32as_v4,reserved_3y,NA,0.798706,USD,Azure Retail Prices API,2025-12-18T04:46:28.759128 +AZURE,australiasoutheast,Standard_D32as_v4,spot,NA,0.369046,USD,Azure Retail Prices API,2025-12-18T04:46:27.529467 +AZURE,australiasoutheast,Standard_D32as_v5,on_demand,NA,3.261,USD,Azure Retail Prices API,2025-12-18T04:46:27.528704 +AZURE,australiasoutheast,Standard_D32as_v5,reserved_1y,NA,1.055365,USD,Azure Retail Prices API,2025-12-18T04:46:28.759859 +AZURE,australiasoutheast,Standard_D32as_v5,reserved_3y,NA,0.679756,USD,Azure Retail Prices API,2025-12-18T04:46:28.759864 +AZURE,australiasoutheast,Standard_D32as_v5,spot,NA,0.330607,USD,Azure Retail Prices API,2025-12-18T04:46:27.529842 +AZURE,australiasoutheast,Standard_D32d_v4,on_demand,NA,2.17,USD,Azure Retail Prices API,2025-12-18T04:46:27.528610 +AZURE,australiasoutheast,Standard_D32d_v4,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:46:28.759009 +AZURE,australiasoutheast,Standard_D32d_v4,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:46:28.759014 +AZURE,australiasoutheast,Standard_D32d_v4,spot,NA,0.401016,USD,Azure Retail Prices API,2025-12-18T04:46:27.529169 +AZURE,australiasoutheast,Standard_D32ds_v4,on_demand,NA,2.17,USD,Azure Retail Prices API,2025-12-18T04:46:27.528891 +AZURE,australiasoutheast,Standard_D32ds_v4,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:46:28.759436 +AZURE,australiasoutheast,Standard_D32ds_v4,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:46:28.759441 +AZURE,australiasoutheast,Standard_D32ds_v4,spot,NA,0.401016,USD,Azure Retail Prices API,2025-12-18T04:46:27.529088 +AZURE,australiasoutheast,Standard_D32ds_v5,on_demand,NA,2.35,USD,Azure Retail Prices API,2025-12-18T04:46:27.528366 +AZURE,australiasoutheast,Standard_D32ds_v5,reserved_1y,NA,1.386758,USD,Azure Retail Prices API,2025-12-18T04:46:28.758617 +AZURE,australiasoutheast,Standard_D32ds_v5,reserved_3y,NA,0.893151,USD,Azure Retail Prices API,2025-12-18T04:46:28.758622 +AZURE,australiasoutheast,Standard_D32ds_v5,spot,NA,0.43428,USD,Azure Retail Prices API,2025-12-18T04:46:27.529141 +AZURE,australiasoutheast,Standard_D32ds_v6,on_demand,NA,2.591,USD,Azure Retail Prices API,2025-12-18T04:46:27.528363 +AZURE,australiasoutheast,Standard_D32ds_v6,reserved_1y,NA,1.606621,USD,Azure Retail Prices API,2025-12-18T04:46:28.758607 +AZURE,australiasoutheast,Standard_D32ds_v6,reserved_3y,NA,1.010616,USD,Azure Retail Prices API,2025-12-18T04:46:28.758612 +AZURE,australiasoutheast,Standard_D32ds_v6,spot,NA,0.478817,USD,Azure Retail Prices API,2025-12-18T04:46:27.528217 +AZURE,australiasoutheast,Standard_D32pds_v6,on_demand,NA,1.91,USD,Azure Retail Prices API,2025-12-18T04:46:27.529423 +AZURE,australiasoutheast,Standard_D32pds_v6,reserved_1y,NA,1.127169,USD,Azure Retail Prices API,2025-12-18T04:46:28.760282 +AZURE,australiasoutheast,Standard_D32pds_v6,reserved_3y,NA,0.725951,USD,Azure Retail Prices API,2025-12-18T04:46:28.760287 +AZURE,australiasoutheast,Standard_D32pds_v6,spot,NA,0.352968,USD,Azure Retail Prices API,2025-12-18T04:46:27.528328 +AZURE,australiasoutheast,Standard_D32ps_v6,on_demand,NA,1.459,USD,Azure Retail Prices API,2025-12-18T04:46:27.528552 +AZURE,australiasoutheast,Standard_D32ps_v6,reserved_1y,NA,0.860959,USD,Azure Retail Prices API,2025-12-18T04:46:28.758898 +AZURE,australiasoutheast,Standard_D32ps_v6,reserved_3y,NA,0.55449,USD,Azure Retail Prices API,2025-12-18T04:46:28.758903 +AZURE,australiasoutheast,Standard_D32ps_v6,spot,NA,0.269623,USD,Azure Retail Prices API,2025-12-18T04:46:27.528123 +AZURE,australiasoutheast,Standard_D32s_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:27.529955 +AZURE,australiasoutheast,Standard_D32s_v3,reserved_1y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:28.760833 +AZURE,australiasoutheast,Standard_D32s_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:28.760839 +AZURE,australiasoutheast,Standard_D32s_v3,spot,NA,0.3696,USD,Azure Retail Prices API,2025-12-18T04:46:27.529975 +AZURE,australiasoutheast,Standard_D32s_v4,on_demand,NA,1.997,USD,Azure Retail Prices API,2025-12-18T04:46:27.529094 +AZURE,australiasoutheast,Standard_D32s_v4,reserved_1y,NA,1.178082,USD,Azure Retail Prices API,2025-12-18T04:46:28.759825 +AZURE,australiasoutheast,Standard_D32s_v4,reserved_3y,NA,0.75879,USD,Azure Retail Prices API,2025-12-18T04:46:28.759830 +AZURE,australiasoutheast,Standard_D32s_v4,spot,NA,0.369046,USD,Azure Retail Prices API,2025-12-18T04:46:27.528940 +AZURE,australiasoutheast,Standard_D32s_v5,on_demand,NA,1.997,USD,Azure Retail Prices API,2025-12-18T04:46:27.529985 +AZURE,australiasoutheast,Standard_D32s_v5,reserved_1y,NA,1.178082,USD,Azure Retail Prices API,2025-12-18T04:46:28.760868 +AZURE,australiasoutheast,Standard_D32s_v5,reserved_3y,NA,0.738813,USD,Azure Retail Prices API,2025-12-18T04:46:28.760873 +AZURE,australiasoutheast,Standard_D32s_v5,spot,NA,0.369046,USD,Azure Retail Prices API,2025-12-18T04:46:27.529181 +AZURE,australiasoutheast,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485634 +AZURE,australiasoutheast,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485650 +AZURE,australiasoutheast,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485656 +AZURE,australiasoutheast,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485642 +AZURE,australiasoutheast,Standard_D48a_v4,on_demand,NA,2.995,USD,Azure Retail Prices API,2025-12-18T04:46:27.529035 +AZURE,australiasoutheast,Standard_D48a_v4,reserved_1y,NA,1.797146,USD,Azure Retail Prices API,2025-12-18T04:46:28.759735 +AZURE,australiasoutheast,Standard_D48a_v4,reserved_3y,NA,1.198097,USD,Azure Retail Prices API,2025-12-18T04:46:28.759741 +AZURE,australiasoutheast,Standard_D48a_v4,spot,NA,0.553476,USD,Azure Retail Prices API,2025-12-18T04:46:27.528943 +AZURE,australiasoutheast,Standard_D48ads_v5,on_demand,NA,3.214,USD,Azure Retail Prices API,2025-12-18T04:46:27.528722 +AZURE,australiasoutheast,Standard_D48ads_v5,reserved_1y,NA,1.896005,USD,Azure Retail Prices API,2025-12-18T04:46:28.759204 +AZURE,australiasoutheast,Standard_D48ads_v5,reserved_3y,NA,1.221157,USD,Azure Retail Prices API,2025-12-18T04:46:28.759210 +AZURE,australiasoutheast,Standard_D48ads_v5,spot,NA,0.593947,USD,Azure Retail Prices API,2025-12-18T04:46:27.529134 +AZURE,australiasoutheast,Standard_D48ads_v6,on_demand,NA,3.566,USD,Azure Retail Prices API,2025-12-18T04:46:27.528105 +AZURE,australiasoutheast,Standard_D48ads_v6,reserved_1y,NA,2.104224,USD,Azure Retail Prices API,2025-12-18T04:46:28.758157 +AZURE,australiasoutheast,Standard_D48ads_v6,reserved_3y,NA,1.355213,USD,Azure Retail Prices API,2025-12-18T04:46:28.758163 +AZURE,australiasoutheast,Standard_D48ads_v6,spot,NA,0.658997,USD,Azure Retail Prices API,2025-12-18T04:46:27.528954 +AZURE,australiasoutheast,Standard_D48as_v4,on_demand,NA,2.995,USD,Azure Retail Prices API,2025-12-18T04:46:27.529355 +AZURE,australiasoutheast,Standard_D48as_v4,reserved_1y,NA,1.797146,USD,Azure Retail Prices API,2025-12-18T04:46:28.760176 +AZURE,australiasoutheast,Standard_D48as_v4,reserved_3y,NA,1.198097,USD,Azure Retail Prices API,2025-12-18T04:46:28.760181 +AZURE,australiasoutheast,Standard_D48as_v4,spot,NA,0.553476,USD,Azure Retail Prices API,2025-12-18T04:46:27.529379 +AZURE,australiasoutheast,Standard_D48as_v5,on_demand,NA,4.891,USD,Azure Retail Prices API,2025-12-18T04:46:27.528108 +AZURE,australiasoutheast,Standard_D48as_v5,reserved_1y,NA,1.583105,USD,Azure Retail Prices API,2025-12-18T04:46:28.758385 +AZURE,australiasoutheast,Standard_D48as_v5,reserved_3y,NA,1.019635,USD,Azure Retail Prices API,2025-12-18T04:46:28.758390 +AZURE,australiasoutheast,Standard_D48as_v5,spot,NA,0.495818,USD,Azure Retail Prices API,2025-12-18T04:46:27.529402 +AZURE,australiasoutheast,Standard_D48d_v4,on_demand,NA,3.254,USD,Azure Retail Prices API,2025-12-18T04:46:27.529518 +AZURE,australiasoutheast,Standard_D48d_v4,reserved_1y,NA,1.920091,USD,Azure Retail Prices API,2025-12-18T04:46:28.760395 +AZURE,australiasoutheast,Standard_D48d_v4,reserved_3y,NA,1.236682,USD,Azure Retail Prices API,2025-12-18T04:46:28.760401 +AZURE,australiasoutheast,Standard_D48d_v4,spot,NA,0.601339,USD,Azure Retail Prices API,2025-12-18T04:46:27.528195 +AZURE,australiasoutheast,Standard_D48ds_v4,on_demand,NA,3.254,USD,Azure Retail Prices API,2025-12-18T04:46:27.529691 +AZURE,australiasoutheast,Standard_D48ds_v4,reserved_1y,NA,1.920091,USD,Azure Retail Prices API,2025-12-18T04:46:28.760534 +AZURE,australiasoutheast,Standard_D48ds_v4,reserved_3y,NA,1.236682,USD,Azure Retail Prices API,2025-12-18T04:46:28.760539 +AZURE,australiasoutheast,Standard_D48ds_v4,spot,NA,0.601339,USD,Azure Retail Prices API,2025-12-18T04:46:27.529274 +AZURE,australiasoutheast,Standard_D48ds_v5,on_demand,NA,3.526,USD,Azure Retail Prices API,2025-12-18T04:46:27.529670 +AZURE,australiasoutheast,Standard_D48ds_v5,reserved_1y,NA,2.080137,USD,Azure Retail Prices API,2025-12-18T04:46:28.760512 +AZURE,australiasoutheast,Standard_D48ds_v5,reserved_3y,NA,1.339726,USD,Azure Retail Prices API,2025-12-18T04:46:28.760517 +AZURE,australiasoutheast,Standard_D48ds_v5,spot,NA,0.651605,USD,Azure Retail Prices API,2025-12-18T04:46:27.529443 +AZURE,australiasoutheast,Standard_D48ds_v6,on_demand,NA,3.887,USD,Azure Retail Prices API,2025-12-18T04:46:27.529329 +AZURE,australiasoutheast,Standard_D48ds_v6,reserved_1y,NA,2.409932,USD,Azure Retail Prices API,2025-12-18T04:46:28.760144 +AZURE,australiasoutheast,Standard_D48ds_v6,reserved_3y,NA,1.515944,USD,Azure Retail Prices API,2025-12-18T04:46:28.760150 +AZURE,australiasoutheast,Standard_D48ds_v6,spot,NA,0.718318,USD,Azure Retail Prices API,2025-12-18T04:46:27.529606 +AZURE,australiasoutheast,Standard_D48pds_v6,on_demand,NA,2.866,USD,Azure Retail Prices API,2025-12-18T04:46:27.529289 +AZURE,australiasoutheast,Standard_D48pds_v6,reserved_1y,NA,1.690753,USD,Azure Retail Prices API,2025-12-18T04:46:28.760078 +AZURE,australiasoutheast,Standard_D48pds_v6,reserved_3y,NA,1.088927,USD,Azure Retail Prices API,2025-12-18T04:46:28.760083 +AZURE,australiasoutheast,Standard_D48pds_v6,spot,NA,0.529637,USD,Azure Retail Prices API,2025-12-18T04:46:27.528707 +AZURE,australiasoutheast,Standard_D48ps_v6,on_demand,NA,2.189,USD,Azure Retail Prices API,2025-12-18T04:46:27.528763 +AZURE,australiasoutheast,Standard_D48ps_v6,reserved_1y,NA,1.291438,USD,Azure Retail Prices API,2025-12-18T04:46:28.759294 +AZURE,australiasoutheast,Standard_D48ps_v6,reserved_3y,NA,0.831735,USD,Azure Retail Prices API,2025-12-18T04:46:28.759299 +AZURE,australiasoutheast,Standard_D48ps_v6,spot,NA,0.404527,USD,Azure Retail Prices API,2025-12-18T04:46:27.528131 +AZURE,australiasoutheast,Standard_D48s_v4,on_demand,NA,2.995,USD,Azure Retail Prices API,2025-12-18T04:46:27.528914 +AZURE,australiasoutheast,Standard_D48s_v4,reserved_1y,NA,1.767123,USD,Azure Retail Prices API,2025-12-18T04:46:28.759492 +AZURE,australiasoutheast,Standard_D48s_v4,reserved_3y,NA,1.138166,USD,Azure Retail Prices API,2025-12-18T04:46:28.759497 +AZURE,australiasoutheast,Standard_D48s_v4,spot,NA,0.553476,USD,Azure Retail Prices API,2025-12-18T04:46:27.529495 +AZURE,australiasoutheast,Standard_D48s_v5,on_demand,NA,2.995,USD,Azure Retail Prices API,2025-12-18T04:46:27.528137 +AZURE,australiasoutheast,Standard_D48s_v5,reserved_1y,NA,1.767123,USD,Azure Retail Prices API,2025-12-18T04:46:28.758239 +AZURE,australiasoutheast,Standard_D48s_v5,reserved_3y,NA,1.108219,USD,Azure Retail Prices API,2025-12-18T04:46:28.758244 +AZURE,australiasoutheast,Standard_D48s_v5,spot,NA,0.553476,USD,Azure Retail Prices API,2025-12-18T04:46:27.528601 +AZURE,australiasoutheast,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486441 +AZURE,australiasoutheast,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486455 +AZURE,australiasoutheast,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486461 +AZURE,australiasoutheast,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486449 +AZURE,australiasoutheast,Standard_D4a_v4,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:46:27.529309 +AZURE,australiasoutheast,Standard_D4a_v4,reserved_1y,NA,0.149772,USD,Azure Retail Prices API,2025-12-18T04:46:28.760109 +AZURE,australiasoutheast,Standard_D4a_v4,reserved_3y,NA,0.099848,USD,Azure Retail Prices API,2025-12-18T04:46:28.760114 +AZURE,australiasoutheast,Standard_D4a_v4,spot,NA,0.0462,USD,Azure Retail Prices API,2025-12-18T04:46:27.529457 +AZURE,australiasoutheast,Standard_D4ads_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:46:27.528322 +AZURE,australiasoutheast,Standard_D4ads_v5,reserved_1y,NA,0.157991,USD,Azure Retail Prices API,2025-12-18T04:46:28.759103 +AZURE,australiasoutheast,Standard_D4ads_v5,reserved_3y,NA,0.10175,USD,Azure Retail Prices API,2025-12-18T04:46:28.759108 +AZURE,australiasoutheast,Standard_D4ads_v5,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:46:27.528084 +AZURE,australiasoutheast,Standard_D4ads_v6,on_demand,NA,0.297,USD,Azure Retail Prices API,2025-12-18T04:46:27.529506 +AZURE,australiasoutheast,Standard_D4ads_v6,reserved_1y,NA,0.175342,USD,Azure Retail Prices API,2025-12-18T04:46:28.760373 +AZURE,australiasoutheast,Standard_D4ads_v6,reserved_3y,NA,0.112938,USD,Azure Retail Prices API,2025-12-18T04:46:28.760379 +AZURE,australiasoutheast,Standard_D4ads_v6,spot,NA,0.054886,USD,Azure Retail Prices API,2025-12-18T04:46:27.529851 +AZURE,australiasoutheast,Standard_D4as_v5,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:27.528820 +AZURE,australiasoutheast,Standard_D4as_v5,reserved_1y,NA,0.131963,USD,Azure Retail Prices API,2025-12-18T04:46:28.760822 +AZURE,australiasoutheast,Standard_D4as_v5,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:46:28.760828 +AZURE,australiasoutheast,Standard_D4as_v5,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:46:27.529208 +AZURE,australiasoutheast,Standard_D4d_v4,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:46:27.528504 +AZURE,australiasoutheast,Standard_D4d_v4,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:46:28.758825 +AZURE,australiasoutheast,Standard_D4d_v4,reserved_3y,NA,0.103044,USD,Azure Retail Prices API,2025-12-18T04:46:28.758830 +AZURE,australiasoutheast,Standard_D4d_v4,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:46:27.529131 +AZURE,australiasoutheast,Standard_D4ds_v4,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:46:27.529299 +AZURE,australiasoutheast,Standard_D4ds_v4,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:46:28.760089 +AZURE,australiasoutheast,Standard_D4ds_v4,reserved_3y,NA,0.103044,USD,Azure Retail Prices API,2025-12-18T04:46:28.760094 +AZURE,australiasoutheast,Standard_D4ds_v4,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:46:27.528641 +AZURE,australiasoutheast,Standard_D4ds_v5,on_demand,NA,0.294,USD,Azure Retail Prices API,2025-12-18T04:46:27.528682 +AZURE,australiasoutheast,Standard_D4ds_v5,reserved_1y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:46:28.759151 +AZURE,australiasoutheast,Standard_D4ds_v5,reserved_3y,NA,0.111644,USD,Azure Retail Prices API,2025-12-18T04:46:28.759155 +AZURE,australiasoutheast,Standard_D4ds_v5,spot,NA,0.054331,USD,Azure Retail Prices API,2025-12-18T04:46:27.528316 +AZURE,australiasoutheast,Standard_D4ds_v6,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:46:27.528674 +AZURE,australiasoutheast,Standard_D4ds_v6,reserved_1y,NA,0.200799,USD,Azure Retail Prices API,2025-12-18T04:46:28.759132 +AZURE,australiasoutheast,Standard_D4ds_v6,reserved_3y,NA,0.126332,USD,Azure Retail Prices API,2025-12-18T04:46:28.759137 +AZURE,australiasoutheast,Standard_D4ds_v6,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:46:27.529341 +AZURE,australiasoutheast,Standard_D4pds_v6,on_demand,NA,0.239,USD,Azure Retail Prices API,2025-12-18T04:46:27.528725 +AZURE,australiasoutheast,Standard_D4pds_v6,reserved_1y,NA,0.140868,USD,Azure Retail Prices API,2025-12-18T04:46:28.759216 +AZURE,australiasoutheast,Standard_D4pds_v6,reserved_3y,NA,0.090753,USD,Azure Retail Prices API,2025-12-18T04:46:28.759221 +AZURE,australiasoutheast,Standard_D4pds_v6,spot,NA,0.044167,USD,Azure Retail Prices API,2025-12-18T04:46:27.528072 +AZURE,australiasoutheast,Standard_D4ps_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:27.528331 +AZURE,australiasoutheast,Standard_D4ps_v6,reserved_1y,NA,0.107648,USD,Azure Retail Prices API,2025-12-18T04:46:28.758564 +AZURE,australiasoutheast,Standard_D4ps_v6,reserved_3y,NA,0.06933,USD,Azure Retail Prices API,2025-12-18T04:46:28.758570 +AZURE,australiasoutheast,Standard_D4ps_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:46:27.528873 +AZURE,australiasoutheast,Standard_D4s_v3,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:46:27.529448 +AZURE,australiasoutheast,Standard_D4s_v3,reserved_1y,NA,0.156849,USD,Azure Retail Prices API,2025-12-18T04:46:28.760293 +AZURE,australiasoutheast,Standard_D4s_v3,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:46:28.760299 +AZURE,australiasoutheast,Standard_D4s_v3,spot,NA,0.0462,USD,Azure Retail Prices API,2025-12-18T04:46:27.528976 +AZURE,australiasoutheast,Standard_D4s_v4,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:46:27.529613 +AZURE,australiasoutheast,Standard_D4s_v4,reserved_1y,NA,0.14726,USD,Azure Retail Prices API,2025-12-18T04:46:28.760487 +AZURE,australiasoutheast,Standard_D4s_v4,reserved_3y,NA,0.094863,USD,Azure Retail Prices API,2025-12-18T04:46:28.760492 +AZURE,australiasoutheast,Standard_D4s_v4,spot,NA,0.0462,USD,Azure Retail Prices API,2025-12-18T04:46:27.528569 +AZURE,australiasoutheast,Standard_D4s_v5,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:46:27.529910 +AZURE,australiasoutheast,Standard_D4s_v5,reserved_1y,NA,0.14726,USD,Azure Retail Prices API,2025-12-18T04:46:28.760752 +AZURE,australiasoutheast,Standard_D4s_v5,reserved_3y,NA,0.092352,USD,Azure Retail Prices API,2025-12-18T04:46:28.760758 +AZURE,australiasoutheast,Standard_D4s_v5,spot,NA,0.0462,USD,Azure Retail Prices API,2025-12-18T04:46:27.528796 +AZURE,australiasoutheast,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487754 +AZURE,australiasoutheast,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487775 +AZURE,australiasoutheast,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487781 +AZURE,australiasoutheast,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487766 +AZURE,australiasoutheast,Standard_D64_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:27.528238 +AZURE,australiasoutheast,Standard_D64_v3,reserved_1y,NA,2.508676,USD,Azure Retail Prices API,2025-12-18T04:46:28.758395 +AZURE,australiasoutheast,Standard_D64_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:28.758400 +AZURE,australiasoutheast,Standard_D64_v3,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:46:27.528870 +AZURE,australiasoutheast,Standard_D64a_v4,on_demand,NA,3.994,USD,Azure Retail Prices API,2025-12-18T04:46:27.528649 +AZURE,australiasoutheast,Standard_D64a_v4,reserved_1y,NA,2.396119,USD,Azure Retail Prices API,2025-12-18T04:46:28.759092 +AZURE,australiasoutheast,Standard_D64a_v4,reserved_3y,NA,1.597451,USD,Azure Retail Prices API,2025-12-18T04:46:28.759098 +AZURE,australiasoutheast,Standard_D64a_v4,spot,NA,0.738091,USD,Azure Retail Prices API,2025-12-18T04:46:27.528655 +AZURE,australiasoutheast,Standard_D64ads_v5,on_demand,NA,7.229,USD,Azure Retail Prices API,2025-12-18T04:46:27.528160 +AZURE,australiasoutheast,Standard_D64ads_v5,reserved_1y,NA,2.528082,USD,Azure Retail Prices API,2025-12-18T04:46:28.758332 +AZURE,australiasoutheast,Standard_D64ads_v5,reserved_3y,NA,1.628234,USD,Azure Retail Prices API,2025-12-18T04:46:28.758337 +AZURE,australiasoutheast,Standard_D64ads_v5,spot,NA,0.791868,USD,Azure Retail Prices API,2025-12-18T04:46:27.528162 +AZURE,australiasoutheast,Standard_D64ads_v6,on_demand,NA,4.755,USD,Azure Retail Prices API,2025-12-18T04:46:27.528334 +AZURE,australiasoutheast,Standard_D64ads_v6,reserved_1y,NA,2.805594,USD,Azure Retail Prices API,2025-12-18T04:46:28.758575 +AZURE,australiasoutheast,Standard_D64ads_v6,reserved_3y,NA,1.806963,USD,Azure Retail Prices API,2025-12-18T04:46:28.758580 +AZURE,australiasoutheast,Standard_D64ads_v6,spot,NA,0.878724,USD,Azure Retail Prices API,2025-12-18T04:46:27.528184 +AZURE,australiasoutheast,Standard_D64as_v4,on_demand,NA,3.994,USD,Azure Retail Prices API,2025-12-18T04:46:27.529394 +AZURE,australiasoutheast,Standard_D64as_v4,reserved_1y,NA,2.396119,USD,Azure Retail Prices API,2025-12-18T04:46:28.760245 +AZURE,australiasoutheast,Standard_D64as_v4,reserved_3y,NA,1.597451,USD,Azure Retail Prices API,2025-12-18T04:46:28.760251 +AZURE,australiasoutheast,Standard_D64as_v4,spot,NA,0.738091,USD,Azure Retail Prices API,2025-12-18T04:46:27.528212 +AZURE,australiasoutheast,Standard_D64as_v5,on_demand,NA,3.578,USD,Azure Retail Prices API,2025-12-18T04:46:27.528129 +AZURE,australiasoutheast,Standard_D64as_v5,reserved_1y,NA,2.110731,USD,Azure Retail Prices API,2025-12-18T04:46:28.758211 +AZURE,australiasoutheast,Standard_D64as_v5,reserved_3y,NA,1.359475,USD,Azure Retail Prices API,2025-12-18T04:46:28.758217 +AZURE,australiasoutheast,Standard_D64as_v5,spot,NA,0.661214,USD,Azure Retail Prices API,2025-12-18T04:46:27.528181 +AZURE,australiasoutheast,Standard_D64d_v4,on_demand,NA,4.339,USD,Azure Retail Prices API,2025-12-18T04:46:27.528919 +AZURE,australiasoutheast,Standard_D64d_v4,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:46:28.759513 +AZURE,australiasoutheast,Standard_D64d_v4,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:46:28.759519 +AZURE,australiasoutheast,Standard_D64d_v4,spot,NA,0.801847,USD,Azure Retail Prices API,2025-12-18T04:46:27.528757 +AZURE,australiasoutheast,Standard_D64ds_v4,on_demand,NA,4.339,USD,Azure Retail Prices API,2025-12-18T04:46:27.529147 +AZURE,australiasoutheast,Standard_D64ds_v4,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:46:28.759892 +AZURE,australiasoutheast,Standard_D64ds_v4,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:46:28.759897 +AZURE,australiasoutheast,Standard_D64ds_v4,spot,NA,0.801847,USD,Azure Retail Prices API,2025-12-18T04:46:27.528607 +AZURE,australiasoutheast,Standard_D64ds_v5,on_demand,NA,4.701,USD,Azure Retail Prices API,2025-12-18T04:46:27.529074 +AZURE,australiasoutheast,Standard_D64ds_v5,reserved_1y,NA,2.773516,USD,Azure Retail Prices API,2025-12-18T04:46:28.759791 +AZURE,australiasoutheast,Standard_D64ds_v5,reserved_3y,NA,1.786301,USD,Azure Retail Prices API,2025-12-18T04:46:28.759797 +AZURE,australiasoutheast,Standard_D64ds_v5,spot,NA,0.868745,USD,Azure Retail Prices API,2025-12-18T04:46:27.528876 +AZURE,australiasoutheast,Standard_D64ds_v6,on_demand,NA,5.183,USD,Azure Retail Prices API,2025-12-18T04:46:27.528186 +AZURE,australiasoutheast,Standard_D64ds_v6,reserved_1y,NA,3.213242,USD,Azure Retail Prices API,2025-12-18T04:46:28.758321 +AZURE,australiasoutheast,Standard_D64ds_v6,reserved_3y,NA,2.021271,USD,Azure Retail Prices API,2025-12-18T04:46:28.758327 +AZURE,australiasoutheast,Standard_D64ds_v6,spot,NA,0.957818,USD,Azure Retail Prices API,2025-12-18T04:46:27.528713 +AZURE,australiasoutheast,Standard_D64pds_v6,on_demand,NA,3.821,USD,Azure Retail Prices API,2025-12-18T04:46:27.529312 +AZURE,australiasoutheast,Standard_D64pds_v6,reserved_1y,NA,2.254224,USD,Azure Retail Prices API,2025-12-18T04:46:28.760122 +AZURE,australiasoutheast,Standard_D64pds_v6,reserved_3y,NA,1.451903,USD,Azure Retail Prices API,2025-12-18T04:46:28.760127 +AZURE,australiasoutheast,Standard_D64pds_v6,spot,NA,0.706121,USD,Azure Retail Prices API,2025-12-18T04:46:27.529062 +AZURE,australiasoutheast,Standard_D64ps_v6,on_demand,NA,2.918,USD,Azure Retail Prices API,2025-12-18T04:46:27.528566 +AZURE,australiasoutheast,Standard_D64ps_v6,reserved_1y,NA,1.721804,USD,Azure Retail Prices API,2025-12-18T04:46:28.758938 +AZURE,australiasoutheast,Standard_D64ps_v6,reserved_3y,NA,1.10898,USD,Azure Retail Prices API,2025-12-18T04:46:28.758943 +AZURE,australiasoutheast,Standard_D64ps_v6,spot,NA,0.539246,USD,Azure Retail Prices API,2025-12-18T04:46:27.529871 +AZURE,australiasoutheast,Standard_D64s_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:27.529233 +AZURE,australiasoutheast,Standard_D64s_v3,reserved_1y,NA,2.508676,USD,Azure Retail Prices API,2025-12-18T04:46:28.760008 +AZURE,australiasoutheast,Standard_D64s_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:28.760013 +AZURE,australiasoutheast,Standard_D64s_v3,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:46:27.528247 +AZURE,australiasoutheast,Standard_D64s_v4,on_demand,NA,3.994,USD,Azure Retail Prices API,2025-12-18T04:46:27.528931 +AZURE,australiasoutheast,Standard_D64s_v4,reserved_1y,NA,2.356279,USD,Azure Retail Prices API,2025-12-18T04:46:28.759547 +AZURE,australiasoutheast,Standard_D64s_v4,reserved_3y,NA,1.51758,USD,Azure Retail Prices API,2025-12-18T04:46:28.759553 +AZURE,australiasoutheast,Standard_D64s_v4,spot,NA,0.738091,USD,Azure Retail Prices API,2025-12-18T04:46:27.528449 +AZURE,australiasoutheast,Standard_D64s_v5,on_demand,NA,3.994,USD,Azure Retail Prices API,2025-12-18T04:46:27.529589 +AZURE,australiasoutheast,Standard_D64s_v5,reserved_1y,NA,2.356279,USD,Azure Retail Prices API,2025-12-18T04:46:28.760453 +AZURE,australiasoutheast,Standard_D64s_v5,reserved_3y,NA,1.477626,USD,Azure Retail Prices API,2025-12-18T04:46:28.760459 +AZURE,australiasoutheast,Standard_D64s_v5,spot,NA,0.738091,USD,Azure Retail Prices API,2025-12-18T04:46:27.528521 +AZURE,australiasoutheast,Standard_D8_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:27.529153 +AZURE,australiasoutheast,Standard_D8_v3,reserved_1y,NA,0.313584,USD,Azure Retail Prices API,2025-12-18T04:46:28.759914 +AZURE,australiasoutheast,Standard_D8_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:28.759920 +AZURE,australiasoutheast,Standard_D8_v3,spot,NA,0.0924,USD,Azure Retail Prices API,2025-12-18T04:46:27.529241 +AZURE,australiasoutheast,Standard_D8a_v4,on_demand,NA,0.499,USD,Azure Retail Prices API,2025-12-18T04:46:27.528613 +AZURE,australiasoutheast,Standard_D8a_v4,reserved_1y,NA,0.299543,USD,Azure Retail Prices API,2025-12-18T04:46:28.759019 +AZURE,australiasoutheast,Standard_D8a_v4,reserved_3y,NA,0.199696,USD,Azure Retail Prices API,2025-12-18T04:46:28.759024 +AZURE,australiasoutheast,Standard_D8a_v4,spot,NA,0.092215,USD,Azure Retail Prices API,2025-12-18T04:46:27.528342 +AZURE,australiasoutheast,Standard_D8ads_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:46:27.529163 +AZURE,australiasoutheast,Standard_D8ads_v5,reserved_1y,NA,0.315982,USD,Azure Retail Prices API,2025-12-18T04:46:28.760648 +AZURE,australiasoutheast,Standard_D8ads_v5,reserved_3y,NA,0.203539,USD,Azure Retail Prices API,2025-12-18T04:46:28.760656 +AZURE,australiasoutheast,Standard_D8ads_v5,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:27.529795 +AZURE,australiasoutheast,Standard_D8ads_v6,on_demand,NA,0.594,USD,Azure Retail Prices API,2025-12-18T04:46:27.528134 +AZURE,australiasoutheast,Standard_D8ads_v6,reserved_1y,NA,0.350685,USD,Azure Retail Prices API,2025-12-18T04:46:28.758222 +AZURE,australiasoutheast,Standard_D8ads_v6,reserved_3y,NA,0.225875,USD,Azure Retail Prices API,2025-12-18T04:46:28.758228 +AZURE,australiasoutheast,Standard_D8ads_v6,spot,NA,0.109771,USD,Azure Retail Prices API,2025-12-18T04:46:27.528619 +AZURE,australiasoutheast,Standard_D8as_v4,on_demand,NA,0.499,USD,Azure Retail Prices API,2025-12-18T04:46:27.529099 +AZURE,australiasoutheast,Standard_D8as_v4,reserved_1y,NA,0.299543,USD,Azure Retail Prices API,2025-12-18T04:46:28.759847 +AZURE,australiasoutheast,Standard_D8as_v4,reserved_3y,NA,0.199696,USD,Azure Retail Prices API,2025-12-18T04:46:28.759853 +AZURE,australiasoutheast,Standard_D8as_v4,spot,NA,0.092215,USD,Azure Retail Prices API,2025-12-18T04:46:27.529166 +AZURE,australiasoutheast,Standard_D8as_v5,on_demand,NA,0.815,USD,Azure Retail Prices API,2025-12-18T04:46:27.528646 +AZURE,australiasoutheast,Standard_D8as_v5,reserved_1y,NA,0.263813,USD,Azure Retail Prices API,2025-12-18T04:46:28.759425 +AZURE,australiasoutheast,Standard_D8as_v5,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:46:28.759430 +AZURE,australiasoutheast,Standard_D8as_v5,spot,NA,0.082606,USD,Azure Retail Prices API,2025-12-18T04:46:27.528771 +AZURE,australiasoutheast,Standard_D8d_v4,on_demand,NA,0.542,USD,Azure Retail Prices API,2025-12-18T04:46:27.528928 +AZURE,australiasoutheast,Standard_D8d_v4,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:46:28.759536 +AZURE,australiasoutheast,Standard_D8d_v4,reserved_3y,NA,0.206126,USD,Azure Retail Prices API,2025-12-18T04:46:28.759542 +AZURE,australiasoutheast,Standard_D8d_v4,spot,NA,0.100162,USD,Azure Retail Prices API,2025-12-18T04:46:27.528360 +AZURE,australiasoutheast,Standard_D8ds_v4,on_demand,NA,0.542,USD,Azure Retail Prices API,2025-12-18T04:46:27.529005 +AZURE,australiasoutheast,Standard_D8ds_v4,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:46:28.759648 +AZURE,australiasoutheast,Standard_D8ds_v4,reserved_3y,NA,0.206126,USD,Azure Retail Prices API,2025-12-18T04:46:28.759653 +AZURE,australiasoutheast,Standard_D8ds_v4,spot,NA,0.100162,USD,Azure Retail Prices API,2025-12-18T04:46:27.529655 +AZURE,australiasoutheast,Standard_D8ds_v5,on_demand,NA,0.588,USD,Azure Retail Prices API,2025-12-18T04:46:27.529856 +AZURE,australiasoutheast,Standard_D8ds_v5,reserved_1y,NA,0.346689,USD,Azure Retail Prices API,2025-12-18T04:46:28.760706 +AZURE,australiasoutheast,Standard_D8ds_v5,reserved_3y,NA,0.223288,USD,Azure Retail Prices API,2025-12-18T04:46:28.760711 +AZURE,australiasoutheast,Standard_D8ds_v5,spot,NA,0.108662,USD,Azure Retail Prices API,2025-12-18T04:46:27.528824 +AZURE,australiasoutheast,Standard_D8ds_v6,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:46:27.528258 +AZURE,australiasoutheast,Standard_D8ds_v6,reserved_1y,NA,0.401712,USD,Azure Retail Prices API,2025-12-18T04:46:28.758448 +AZURE,australiasoutheast,Standard_D8ds_v6,reserved_3y,NA,0.252664,USD,Azure Retail Prices API,2025-12-18T04:46:28.758454 +AZURE,australiasoutheast,Standard_D8ds_v6,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:46:27.528719 +AZURE,australiasoutheast,Standard_D8pds_v6,on_demand,NA,0.478,USD,Azure Retail Prices API,2025-12-18T04:46:27.528780 +AZURE,australiasoutheast,Standard_D8pds_v6,reserved_1y,NA,0.281735,USD,Azure Retail Prices API,2025-12-18T04:46:28.759337 +AZURE,australiasoutheast,Standard_D8pds_v6,reserved_3y,NA,0.181507,USD,Azure Retail Prices API,2025-12-18T04:46:28.759341 +AZURE,australiasoutheast,Standard_D8pds_v6,spot,NA,0.088334,USD,Azure Retail Prices API,2025-12-18T04:46:27.528451 +AZURE,australiasoutheast,Standard_D8ps_v6,on_demand,NA,0.365,USD,Azure Retail Prices API,2025-12-18T04:46:27.528226 +AZURE,australiasoutheast,Standard_D8ps_v6,reserved_1y,NA,0.215183,USD,Azure Retail Prices API,2025-12-18T04:46:28.758374 +AZURE,australiasoutheast,Standard_D8ps_v6,reserved_3y,NA,0.138623,USD,Azure Retail Prices API,2025-12-18T04:46:28.758380 +AZURE,australiasoutheast,Standard_D8ps_v6,spot,NA,0.067452,USD,Azure Retail Prices API,2025-12-18T04:46:27.528473 +AZURE,australiasoutheast,Standard_D8s_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:27.529032 +AZURE,australiasoutheast,Standard_D8s_v3,reserved_1y,NA,0.313584,USD,Azure Retail Prices API,2025-12-18T04:46:28.759725 +AZURE,australiasoutheast,Standard_D8s_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:28.759730 +AZURE,australiasoutheast,Standard_D8s_v3,spot,NA,0.0924,USD,Azure Retail Prices API,2025-12-18T04:46:27.528783 +AZURE,australiasoutheast,Standard_D8s_v4,on_demand,NA,0.499,USD,Azure Retail Prices API,2025-12-18T04:46:27.528884 +AZURE,australiasoutheast,Standard_D8s_v4,reserved_1y,NA,0.294521,USD,Azure Retail Prices API,2025-12-18T04:46:28.759413 +AZURE,australiasoutheast,Standard_D8s_v4,reserved_3y,NA,0.189688,USD,Azure Retail Prices API,2025-12-18T04:46:28.759419 +AZURE,australiasoutheast,Standard_D8s_v4,spot,NA,0.092215,USD,Azure Retail Prices API,2025-12-18T04:46:27.528378 +AZURE,australiasoutheast,Standard_D8s_v5,on_demand,NA,0.499,USD,Azure Retail Prices API,2025-12-18T04:46:27.529946 +AZURE,australiasoutheast,Standard_D8s_v5,reserved_1y,NA,0.294521,USD,Azure Retail Prices API,2025-12-18T04:46:28.760798 +AZURE,australiasoutheast,Standard_D8s_v5,reserved_3y,NA,0.184703,USD,Azure Retail Prices API,2025-12-18T04:46:28.760805 +AZURE,australiasoutheast,Standard_D8s_v5,spot,NA,0.092215,USD,Azure Retail Prices API,2025-12-18T04:46:27.529438 +AZURE,australiasoutheast,Standard_D96a_v4,on_demand,NA,5.99,USD,Azure Retail Prices API,2025-12-18T04:46:27.528117 +AZURE,australiasoutheast,Standard_D96a_v4,reserved_1y,NA,3.594292,USD,Azure Retail Prices API,2025-12-18T04:46:28.758190 +AZURE,australiasoutheast,Standard_D96a_v4,reserved_3y,NA,2.396157,USD,Azure Retail Prices API,2025-12-18T04:46:28.758196 +AZURE,australiasoutheast,Standard_D96a_v4,spot,NA,1.106952,USD,Azure Retail Prices API,2025-12-18T04:46:27.528861 +AZURE,australiasoutheast,Standard_D96ads_v5,on_demand,NA,6.427,USD,Azure Retail Prices API,2025-12-18T04:46:27.529175 +AZURE,australiasoutheast,Standard_D96ads_v5,reserved_1y,NA,3.792009,USD,Azure Retail Prices API,2025-12-18T04:46:28.759936 +AZURE,australiasoutheast,Standard_D96ads_v5,reserved_3y,NA,2.442352,USD,Azure Retail Prices API,2025-12-18T04:46:28.759942 +AZURE,australiasoutheast,Standard_D96ads_v5,spot,NA,1.18771,USD,Azure Retail Prices API,2025-12-18T04:46:27.528856 +AZURE,australiasoutheast,Standard_D96ads_v6,on_demand,NA,7.133,USD,Azure Retail Prices API,2025-12-18T04:46:27.529876 +AZURE,australiasoutheast,Standard_D96ads_v6,reserved_1y,NA,4.208333,USD,Azure Retail Prices API,2025-12-18T04:46:28.760730 +AZURE,australiasoutheast,Standard_D96ads_v6,reserved_3y,NA,2.710464,USD,Azure Retail Prices API,2025-12-18T04:46:28.760735 +AZURE,australiasoutheast,Standard_D96ads_v6,spot,NA,1.318178,USD,Azure Retail Prices API,2025-12-18T04:46:27.528592 +AZURE,australiasoutheast,Standard_D96as_v4,on_demand,NA,5.99,USD,Azure Retail Prices API,2025-12-18T04:46:27.529079 +AZURE,australiasoutheast,Standard_D96as_v4,reserved_1y,NA,3.594292,USD,Azure Retail Prices API,2025-12-18T04:46:28.759802 +AZURE,australiasoutheast,Standard_D96as_v4,reserved_3y,NA,2.396157,USD,Azure Retail Prices API,2025-12-18T04:46:28.759807 +AZURE,australiasoutheast,Standard_D96as_v4,spot,NA,1.106952,USD,Azure Retail Prices API,2025-12-18T04:46:27.529433 +AZURE,australiasoutheast,Standard_D96as_v5,on_demand,NA,5.366,USD,Azure Retail Prices API,2025-12-18T04:46:27.528266 +AZURE,australiasoutheast,Standard_D96as_v5,reserved_1y,NA,3.16621,USD,Azure Retail Prices API,2025-12-18T04:46:28.758459 +AZURE,australiasoutheast,Standard_D96as_v5,reserved_3y,NA,2.039231,USD,Azure Retail Prices API,2025-12-18T04:46:28.758464 +AZURE,australiasoutheast,Standard_D96as_v5,spot,NA,0.991637,USD,Azure Retail Prices API,2025-12-18T04:46:27.529565 +AZURE,australiasoutheast,Standard_D96ds_v5,on_demand,NA,7.051,USD,Azure Retail Prices API,2025-12-18T04:46:27.529041 +AZURE,australiasoutheast,Standard_D96ds_v5,reserved_1y,NA,4.16016,USD,Azure Retail Prices API,2025-12-18T04:46:28.759758 +AZURE,australiasoutheast,Standard_D96ds_v5,reserved_3y,NA,2.679452,USD,Azure Retail Prices API,2025-12-18T04:46:28.759764 +AZURE,australiasoutheast,Standard_D96ds_v5,spot,NA,1.303025,USD,Azure Retail Prices API,2025-12-18T04:46:27.529482 +AZURE,australiasoutheast,Standard_D96ds_v6,on_demand,NA,7.774,USD,Azure Retail Prices API,2025-12-18T04:46:27.528395 +AZURE,australiasoutheast,Standard_D96ds_v6,reserved_1y,NA,4.819977,USD,Azure Retail Prices API,2025-12-18T04:46:28.758668 +AZURE,australiasoutheast,Standard_D96ds_v6,reserved_3y,NA,3.031887,USD,Azure Retail Prices API,2025-12-18T04:46:28.758674 +AZURE,australiasoutheast,Standard_D96ds_v6,spot,NA,1.436635,USD,Azure Retail Prices API,2025-12-18T04:46:27.529970 +AZURE,australiasoutheast,Standard_D96pds_v6,on_demand,NA,5.731,USD,Azure Retail Prices API,2025-12-18T04:46:27.529771 +AZURE,australiasoutheast,Standard_D96pds_v6,reserved_1y,NA,3.381393,USD,Azure Retail Prices API,2025-12-18T04:46:28.760594 +AZURE,australiasoutheast,Standard_D96pds_v6,reserved_3y,NA,2.177854,USD,Azure Retail Prices API,2025-12-18T04:46:28.760599 +AZURE,australiasoutheast,Standard_D96pds_v6,spot,NA,1.059089,USD,Azure Retail Prices API,2025-12-18T04:46:27.528694 +AZURE,australiasoutheast,Standard_D96ps_v6,on_demand,NA,4.378,USD,Azure Retail Prices API,2025-12-18T04:46:27.529222 +AZURE,australiasoutheast,Standard_D96ps_v6,reserved_1y,NA,2.582763,USD,Azure Retail Prices API,2025-12-18T04:46:28.759997 +AZURE,australiasoutheast,Standard_D96ps_v6,reserved_3y,NA,1.66347,USD,Azure Retail Prices API,2025-12-18T04:46:28.760002 +AZURE,australiasoutheast,Standard_D96ps_v6,spot,NA,0.809054,USD,Azure Retail Prices API,2025-12-18T04:46:27.529816 +AZURE,australiasoutheast,Standard_D96s_v5,on_demand,NA,5.99,USD,Azure Retail Prices API,2025-12-18T04:46:27.529732 +AZURE,australiasoutheast,Standard_D96s_v5,reserved_1y,NA,3.534361,USD,Azure Retail Prices API,2025-12-18T04:46:28.760567 +AZURE,australiasoutheast,Standard_D96s_v5,reserved_3y,NA,2.216438,USD,Azure Retail Prices API,2025-12-18T04:46:28.760572 +AZURE,australiasoutheast,Standard_D96s_v5,spot,NA,1.106952,USD,Azure Retail Prices API,2025-12-18T04:46:27.529781 +AZURE,australiasoutheast,Standard_DC16ads_v6,on_demand,NA,1.189,USD,Azure Retail Prices API,2025-12-18T04:46:27.528192 +AZURE,australiasoutheast,Standard_DC16ads_v6,reserved_1y,NA,0.70137,USD,Azure Retail Prices API,2025-12-18T04:46:28.758342 +AZURE,australiasoutheast,Standard_DC16ads_v6,reserved_3y,NA,0.45175,USD,Azure Retail Prices API,2025-12-18T04:46:28.758347 +AZURE,australiasoutheast,Standard_DC16ads_v6,spot,NA,0.219727,USD,Azure Retail Prices API,2025-12-18T04:46:27.528176 +AZURE,australiasoutheast,Standard_DC2ads_v6,on_demand,NA,0.149,USD,Azure Retail Prices API,2025-12-18T04:46:27.528968 +AZURE,australiasoutheast,Standard_DC2ads_v6,reserved_1y,NA,0.087671,USD,Azure Retail Prices API,2025-12-18T04:46:28.759570 +AZURE,australiasoutheast,Standard_DC2ads_v6,reserved_3y,NA,0.056469,USD,Azure Retail Prices API,2025-12-18T04:46:28.759576 +AZURE,australiasoutheast,Standard_DC2ads_v6,spot,NA,0.027535,USD,Azure Retail Prices API,2025-12-18T04:46:27.529156 +AZURE,australiasoutheast,Standard_DC32ads_v6,on_demand,NA,2.378,USD,Azure Retail Prices API,2025-12-18T04:46:27.528277 +AZURE,australiasoutheast,Standard_DC32ads_v6,reserved_1y,NA,1.40274,USD,Azure Retail Prices API,2025-12-18T04:46:28.758480 +AZURE,australiasoutheast,Standard_DC32ads_v6,reserved_3y,NA,0.903501,USD,Azure Retail Prices API,2025-12-18T04:46:28.758485 +AZURE,australiasoutheast,Standard_DC32ads_v6,spot,NA,0.439454,USD,Azure Retail Prices API,2025-12-18T04:46:27.528201 +AZURE,australiasoutheast,Standard_DC48ads_v6,on_demand,NA,3.566,USD,Azure Retail Prices API,2025-12-18T04:46:27.528972 +AZURE,australiasoutheast,Standard_DC48ads_v6,reserved_1y,NA,2.104224,USD,Azure Retail Prices API,2025-12-18T04:46:28.759582 +AZURE,australiasoutheast,Standard_DC48ads_v6,reserved_3y,NA,1.355213,USD,Azure Retail Prices API,2025-12-18T04:46:28.759587 +AZURE,australiasoutheast,Standard_DC48ads_v6,spot,NA,0.658997,USD,Azure Retail Prices API,2025-12-18T04:46:27.528244 +AZURE,australiasoutheast,Standard_DC4ads_v6,on_demand,NA,0.297,USD,Azure Retail Prices API,2025-12-18T04:46:27.529017 +AZURE,australiasoutheast,Standard_DC4ads_v6,reserved_1y,NA,0.175342,USD,Azure Retail Prices API,2025-12-18T04:46:28.759691 +AZURE,australiasoutheast,Standard_DC4ads_v6,reserved_3y,NA,0.112938,USD,Azure Retail Prices API,2025-12-18T04:46:28.759697 +AZURE,australiasoutheast,Standard_DC4ads_v6,spot,NA,0.054886,USD,Azure Retail Prices API,2025-12-18T04:46:27.528168 +AZURE,australiasoutheast,Standard_DC64ads_v6,on_demand,NA,4.755,USD,Azure Retail Prices API,2025-12-18T04:46:27.528298 +AZURE,australiasoutheast,Standard_DC64ads_v6,reserved_1y,NA,2.805594,USD,Azure Retail Prices API,2025-12-18T04:46:28.758522 +AZURE,australiasoutheast,Standard_DC64ads_v6,reserved_3y,NA,1.806963,USD,Azure Retail Prices API,2025-12-18T04:46:28.758527 +AZURE,australiasoutheast,Standard_DC64ads_v6,spot,NA,0.878724,USD,Azure Retail Prices API,2025-12-18T04:46:27.528230 +AZURE,australiasoutheast,Standard_DC8ads_v6,on_demand,NA,0.594,USD,Azure Retail Prices API,2025-12-18T04:46:27.529916 +AZURE,australiasoutheast,Standard_DC8ads_v6,reserved_1y,NA,0.350685,USD,Azure Retail Prices API,2025-12-18T04:46:28.760764 +AZURE,australiasoutheast,Standard_DC8ads_v6,reserved_3y,NA,0.225875,USD,Azure Retail Prices API,2025-12-18T04:46:28.760770 +AZURE,australiasoutheast,Standard_DC8ads_v6,spot,NA,0.109771,USD,Azure Retail Prices API,2025-12-18T04:46:27.528625 +AZURE,australiasoutheast,Standard_DC96ads_v6,on_demand,NA,7.133,USD,Azure Retail Prices API,2025-12-18T04:46:27.529950 +AZURE,australiasoutheast,Standard_DC96ads_v6,reserved_1y,NA,4.208333,USD,Azure Retail Prices API,2025-12-18T04:46:28.760811 +AZURE,australiasoutheast,Standard_DC96ads_v6,reserved_3y,NA,2.710464,USD,Azure Retail Prices API,2025-12-18T04:46:28.760816 +AZURE,australiasoutheast,Standard_DC96ads_v6,spot,NA,1.318178,USD,Azure Retail Prices API,2025-12-18T04:46:27.529933 +AZURE,australiasoutheast,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495539 +AZURE,australiasoutheast,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495549 +AZURE,australiasoutheast,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495553 +AZURE,australiasoutheast,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495544 +AZURE,australiasoutheast,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496427 +AZURE,australiasoutheast,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496437 +AZURE,australiasoutheast,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496441 +AZURE,australiasoutheast,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496433 +AZURE,australiasoutheast,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497241 +AZURE,australiasoutheast,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497255 +AZURE,australiasoutheast,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497263 +AZURE,australiasoutheast,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497249 +AZURE,australiasoutheast,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498067 +AZURE,australiasoutheast,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498077 +AZURE,australiasoutheast,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498081 +AZURE,australiasoutheast,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498071 +AZURE,australiasoutheast,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491900 +AZURE,australiasoutheast,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491908 +AZURE,australiasoutheast,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491912 +AZURE,australiasoutheast,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491904 +AZURE,australiasoutheast,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492622 +AZURE,australiasoutheast,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492631 +AZURE,australiasoutheast,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492635 +AZURE,australiasoutheast,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492626 +AZURE,australiasoutheast,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493356 +AZURE,australiasoutheast,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493364 +AZURE,australiasoutheast,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493368 +AZURE,australiasoutheast,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493360 +AZURE,australiasoutheast,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494056 +AZURE,australiasoutheast,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494065 +AZURE,australiasoutheast,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494069 +AZURE,australiasoutheast,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494060 +AZURE,australiasoutheast,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494770 +AZURE,australiasoutheast,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494778 +AZURE,australiasoutheast,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494782 +AZURE,australiasoutheast,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494774 +AZURE,australiasoutheast,Standard_E128ds_v6,on_demand,NA,13.605,USD,Azure Retail Prices API,2025-12-18T04:46:27.529389 +AZURE,australiasoutheast,Standard_E128ds_v6,reserved_1y,NA,8.43516,USD,Azure Retail Prices API,2025-12-18T04:46:28.760223 +AZURE,australiasoutheast,Standard_E128ds_v6,reserved_3y,NA,5.306012,USD,Azure Retail Prices API,2025-12-18T04:46:28.760228 +AZURE,australiasoutheast,Standard_E128ds_v6,spot,NA,2.514204,USD,Azure Retail Prices API,2025-12-18T04:46:27.529786 +AZURE,australiasoutheast,Standard_E16_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:27.528595 +AZURE,australiasoutheast,Standard_E16_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:46:28.758980 +AZURE,australiasoutheast,Standard_E16_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:46:28.758985 +AZURE,australiasoutheast,Standard_E16_v3,spot,NA,0.23599,USD,Azure Retail Prices API,2025-12-18T04:46:27.529929 +AZURE,australiasoutheast,Standard_E16a_v4,on_demand,NA,1.31,USD,Azure Retail Prices API,2025-12-18T04:46:27.528754 +AZURE,australiasoutheast,Standard_E16a_v4,reserved_1y,NA,0.786187,USD,Azure Retail Prices API,2025-12-18T04:46:28.759272 +AZURE,australiasoutheast,Standard_E16a_v4,reserved_3y,NA,0.524163,USD,Azure Retail Prices API,2025-12-18T04:46:28.759277 +AZURE,australiasoutheast,Standard_E16a_v4,spot,NA,0.242088,USD,Azure Retail Prices API,2025-12-18T04:46:27.529187 +AZURE,australiasoutheast,Standard_E16ads_v5,on_demand,NA,2.098,USD,Azure Retail Prices API,2025-12-18T04:46:27.528204 +AZURE,australiasoutheast,Standard_E16ads_v5,reserved_1y,NA,0.803767,USD,Azure Retail Prices API,2025-12-18T04:46:28.760316 +AZURE,australiasoutheast,Standard_E16ads_v5,reserved_3y,NA,0.517694,USD,Azure Retail Prices API,2025-12-18T04:46:28.760321 +AZURE,australiasoutheast,Standard_E16ads_v5,spot,NA,0.251698,USD,Azure Retail Prices API,2025-12-18T04:46:27.528437 +AZURE,australiasoutheast,Standard_E16ads_v6,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:46:27.529365 +AZURE,australiasoutheast,Standard_E16ads_v6,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:46:28.760187 +AZURE,australiasoutheast,Standard_E16ads_v6,reserved_3y,NA,0.574543,USD,Azure Retail Prices API,2025-12-18T04:46:28.760194 +AZURE,australiasoutheast,Standard_E16ads_v6,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:46:27.529085 +AZURE,australiasoutheast,Standard_E16as_v4,on_demand,NA,1.31,USD,Azure Retail Prices API,2025-12-18T04:46:27.529500 +AZURE,australiasoutheast,Standard_E16as_v4,reserved_1y,NA,0.786187,USD,Azure Retail Prices API,2025-12-18T04:46:28.760362 +AZURE,australiasoutheast,Standard_E16as_v4,reserved_3y,NA,0.524163,USD,Azure Retail Prices API,2025-12-18T04:46:28.760367 +AZURE,australiasoutheast,Standard_E16as_v4,spot,NA,0.242088,USD,Azure Retail Prices API,2025-12-18T04:46:27.529866 +AZURE,australiasoutheast,Standard_E16as_v5,on_demand,NA,1.911,USD,Azure Retail Prices API,2025-12-18T04:46:27.528535 +AZURE,australiasoutheast,Standard_E16as_v5,reserved_1y,NA,0.693379,USD,Azure Retail Prices API,2025-12-18T04:46:28.759305 +AZURE,australiasoutheast,Standard_E16as_v5,reserved_3y,NA,0.446575,USD,Azure Retail Prices API,2025-12-18T04:46:28.759311 +AZURE,australiasoutheast,Standard_E16as_v5,spot,NA,0.21714,USD,Azure Retail Prices API,2025-12-18T04:46:27.528760 +AZURE,australiasoutheast,Standard_E16d_v4,on_demand,NA,1.382,USD,Azure Retail Prices API,2025-12-18T04:46:27.528460 +AZURE,australiasoutheast,Standard_E16d_v4,reserved_1y,NA,0.815639,USD,Azure Retail Prices API,2025-12-18T04:46:28.758752 +AZURE,australiasoutheast,Standard_E16d_v4,reserved_3y,NA,0.525304,USD,Azure Retail Prices API,2025-12-18T04:46:28.758757 +AZURE,australiasoutheast,Standard_E16d_v4,spot,NA,0.255394,USD,Azure Retail Prices API,2025-12-18T04:46:27.528577 +AZURE,australiasoutheast,Standard_E16ds_v4,on_demand,NA,1.382,USD,Azure Retail Prices API,2025-12-18T04:46:27.528801 +AZURE,australiasoutheast,Standard_E16ds_v4,reserved_1y,NA,0.815639,USD,Azure Retail Prices API,2025-12-18T04:46:28.759357 +AZURE,australiasoutheast,Standard_E16ds_v4,reserved_3y,NA,0.525304,USD,Azure Retail Prices API,2025-12-18T04:46:28.759362 +AZURE,australiasoutheast,Standard_E16ds_v4,spot,NA,0.255394,USD,Azure Retail Prices API,2025-12-18T04:46:27.529303 +AZURE,australiasoutheast,Standard_E16ds_v5,on_demand,NA,1.498,USD,Azure Retail Prices API,2025-12-18T04:46:27.528902 +AZURE,australiasoutheast,Standard_E16ds_v5,reserved_1y,NA,0.883562,USD,Azure Retail Prices API,2025-12-18T04:46:28.759470 +AZURE,australiasoutheast,Standard_E16ds_v5,reserved_3y,NA,0.569102,USD,Azure Retail Prices API,2025-12-18T04:46:28.759475 +AZURE,australiasoutheast,Standard_E16ds_v5,spot,NA,0.27683,USD,Azure Retail Prices API,2025-12-18T04:46:27.529627 +AZURE,australiasoutheast,Standard_E16ds_v6,on_demand,NA,1.701,USD,Azure Retail Prices API,2025-12-18T04:46:27.528638 +AZURE,australiasoutheast,Standard_E16ds_v6,reserved_1y,NA,1.054452,USD,Azure Retail Prices API,2025-12-18T04:46:28.759050 +AZURE,australiasoutheast,Standard_E16ds_v6,reserved_3y,NA,0.663242,USD,Azure Retail Prices API,2025-12-18T04:46:28.759055 +AZURE,australiasoutheast,Standard_E16ds_v6,spot,NA,0.314345,USD,Azure Retail Prices API,2025-12-18T04:46:27.529477 +AZURE,australiasoutheast,Standard_E16pds_v6,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:27.528491 +AZURE,australiasoutheast,Standard_E16pds_v6,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:28.758793 +AZURE,australiasoutheast,Standard_E16pds_v6,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:46:28.758799 +AZURE,australiasoutheast,Standard_E16pds_v6,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:27.529677 +AZURE,australiasoutheast,Standard_E16ps_v6,on_demand,NA,0.958,USD,Azure Retail Prices API,2025-12-18T04:46:27.528728 +AZURE,australiasoutheast,Standard_E16ps_v6,reserved_1y,NA,0.565411,USD,Azure Retail Prices API,2025-12-18T04:46:28.759227 +AZURE,australiasoutheast,Standard_E16ps_v6,reserved_3y,NA,0.364193,USD,Azure Retail Prices API,2025-12-18T04:46:28.759233 +AZURE,australiasoutheast,Standard_E16ps_v6,spot,NA,0.177038,USD,Azure Retail Prices API,2025-12-18T04:46:27.529029 +AZURE,australiasoutheast,Standard_E16s_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:27.528389 +AZURE,australiasoutheast,Standard_E16s_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:46:28.758658 +AZURE,australiasoutheast,Standard_E16s_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:46:28.758663 +AZURE,australiasoutheast,Standard_E16s_v3,spot,NA,0.23599,USD,Azure Retail Prices API,2025-12-18T04:46:27.528616 +AZURE,australiasoutheast,Standard_E16s_v4,on_demand,NA,1.31,USD,Azure Retail Prices API,2025-12-18T04:46:27.528981 +AZURE,australiasoutheast,Standard_E16s_v4,reserved_1y,NA,0.773174,USD,Azure Retail Prices API,2025-12-18T04:46:28.759593 +AZURE,australiasoutheast,Standard_E16s_v4,reserved_3y,NA,0.497945,USD,Azure Retail Prices API,2025-12-18T04:46:28.759599 +AZURE,australiasoutheast,Standard_E16s_v4,spot,NA,0.242088,USD,Azure Retail Prices API,2025-12-18T04:46:27.529111 +AZURE,australiasoutheast,Standard_E16s_v5,on_demand,NA,1.31,USD,Azure Retail Prices API,2025-12-18T04:46:27.529790 +AZURE,australiasoutheast,Standard_E16s_v5,reserved_1y,NA,0.773174,USD,Azure Retail Prices API,2025-12-18T04:46:28.760616 +AZURE,australiasoutheast,Standard_E16s_v5,reserved_3y,NA,0.484855,USD,Azure Retail Prices API,2025-12-18T04:46:28.760621 +AZURE,australiasoutheast,Standard_E16s_v5,spot,NA,0.242088,USD,Azure Retail Prices API,2025-12-18T04:46:27.529251 +AZURE,australiasoutheast,Standard_E20a_v4,on_demand,NA,1.638,USD,Azure Retail Prices API,2025-12-18T04:46:27.529137 +AZURE,australiasoutheast,Standard_E20a_v4,reserved_1y,NA,0.982763,USD,Azure Retail Prices API,2025-12-18T04:46:28.759881 +AZURE,australiasoutheast,Standard_E20a_v4,reserved_3y,NA,0.655213,USD,Azure Retail Prices API,2025-12-18T04:46:28.759886 +AZURE,australiasoutheast,Standard_E20a_v4,spot,NA,0.302702,USD,Azure Retail Prices API,2025-12-18T04:46:27.528580 +AZURE,australiasoutheast,Standard_E20ads_v5,on_demand,NA,1.703,USD,Azure Retail Prices API,2025-12-18T04:46:27.528571 +AZURE,australiasoutheast,Standard_E20ads_v5,reserved_1y,NA,1.004795,USD,Azure Retail Prices API,2025-12-18T04:46:28.758949 +AZURE,australiasoutheast,Standard_E20ads_v5,reserved_3y,NA,0.647146,USD,Azure Retail Prices API,2025-12-18T04:46:28.758954 +AZURE,australiasoutheast,Standard_E20ads_v5,spot,NA,0.314714,USD,Azure Retail Prices API,2025-12-18T04:46:27.528287 +AZURE,australiasoutheast,Standard_E20ads_v6,on_demand,NA,1.89,USD,Azure Retail Prices API,2025-12-18T04:46:27.528372 +AZURE,australiasoutheast,Standard_E20ads_v6,reserved_1y,NA,1.115068,USD,Azure Retail Prices API,2025-12-18T04:46:28.758638 +AZURE,australiasoutheast,Standard_E20ads_v6,reserved_3y,NA,0.718189,USD,Azure Retail Prices API,2025-12-18T04:46:28.758643 +AZURE,australiasoutheast,Standard_E20ads_v6,spot,NA,0.349272,USD,Azure Retail Prices API,2025-12-18T04:46:27.528173 +AZURE,australiasoutheast,Standard_E20as_v4,on_demand,NA,1.638,USD,Azure Retail Prices API,2025-12-18T04:46:27.529038 +AZURE,australiasoutheast,Standard_E20as_v4,reserved_1y,NA,0.982763,USD,Azure Retail Prices API,2025-12-18T04:46:28.759747 +AZURE,australiasoutheast,Standard_E20as_v4,reserved_3y,NA,0.655213,USD,Azure Retail Prices API,2025-12-18T04:46:28.759753 +AZURE,australiasoutheast,Standard_E20as_v4,spot,NA,0.302702,USD,Azure Retail Prices API,2025-12-18T04:46:27.528888 +AZURE,australiasoutheast,Standard_E20as_v5,on_demand,NA,2.389,USD,Azure Retail Prices API,2025-12-18T04:46:27.529091 +AZURE,australiasoutheast,Standard_E20as_v5,reserved_1y,NA,0.866667,USD,Azure Retail Prices API,2025-12-18T04:46:28.760100 +AZURE,australiasoutheast,Standard_E20as_v5,reserved_3y,NA,0.558219,USD,Azure Retail Prices API,2025-12-18T04:46:28.760104 +AZURE,australiasoutheast,Standard_E20as_v5,spot,NA,0.271471,USD,Azure Retail Prices API,2025-12-18T04:46:27.529184 +AZURE,australiasoutheast,Standard_E20d_v4,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:46:27.528751 +AZURE,australiasoutheast,Standard_E20d_v4,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:46:28.759260 +AZURE,australiasoutheast,Standard_E20d_v4,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:46:28.759266 +AZURE,australiasoutheast,Standard_E20d_v4,spot,NA,0.319334,USD,Azure Retail Prices API,2025-12-18T04:46:27.529595 +AZURE,australiasoutheast,Standard_E20ds_v4,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:46:27.529014 +AZURE,australiasoutheast,Standard_E20ds_v4,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:46:28.759680 +AZURE,australiasoutheast,Standard_E20ds_v4,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:46:28.759686 +AZURE,australiasoutheast,Standard_E20ds_v4,spot,NA,0.319334,USD,Azure Retail Prices API,2025-12-18T04:46:27.529197 +AZURE,australiasoutheast,Standard_E20ds_v5,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:46:27.529335 +AZURE,australiasoutheast,Standard_E20ds_v5,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:46:28.760164 +AZURE,australiasoutheast,Standard_E20ds_v5,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:46:28.760170 +AZURE,australiasoutheast,Standard_E20ds_v5,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:46:27.529574 +AZURE,australiasoutheast,Standard_E20ds_v6,on_demand,NA,2.126,USD,Azure Retail Prices API,2025-12-18T04:46:27.528995 +AZURE,australiasoutheast,Standard_E20ds_v6,reserved_1y,NA,1.318037,USD,Azure Retail Prices API,2025-12-18T04:46:28.759626 +AZURE,australiasoutheast,Standard_E20ds_v6,reserved_3y,NA,0.829072,USD,Azure Retail Prices API,2025-12-18T04:46:28.759631 +AZURE,australiasoutheast,Standard_E20ds_v6,spot,NA,0.392885,USD,Azure Retail Prices API,2025-12-18T04:46:27.529546 +AZURE,australiasoutheast,Standard_E20s_v4,on_demand,NA,1.638,USD,Azure Retail Prices API,2025-12-18T04:46:27.529961 +AZURE,australiasoutheast,Standard_E20s_v4,reserved_1y,NA,0.966438,USD,Azure Retail Prices API,2025-12-18T04:46:28.760845 +AZURE,australiasoutheast,Standard_E20s_v4,reserved_3y,NA,0.622451,USD,Azure Retail Prices API,2025-12-18T04:46:28.760850 +AZURE,australiasoutheast,Standard_E20s_v4,spot,NA,0.302702,USD,Azure Retail Prices API,2025-12-18T04:46:27.528052 +AZURE,australiasoutheast,Standard_E20s_v5,on_demand,NA,1.638,USD,Azure Retail Prices API,2025-12-18T04:46:27.529937 +AZURE,australiasoutheast,Standard_E20s_v5,reserved_1y,NA,0.966438,USD,Azure Retail Prices API,2025-12-18T04:46:28.760787 +AZURE,australiasoutheast,Standard_E20s_v5,reserved_3y,NA,0.60605,USD,Azure Retail Prices API,2025-12-18T04:46:28.760792 +AZURE,australiasoutheast,Standard_E20s_v5,spot,NA,0.302702,USD,Azure Retail Prices API,2025-12-18T04:46:27.528911 +AZURE,australiasoutheast,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:46:27.528307 +AZURE,australiasoutheast,Standard_E2_v3,reserved_1y,NA,0.093836,USD,Azure Retail Prices API,2025-12-18T04:46:28.758543 +AZURE,australiasoutheast,Standard_E2_v3,reserved_3y,NA,0.060008,USD,Azure Retail Prices API,2025-12-18T04:46:28.758548 +AZURE,australiasoutheast,Standard_E2_v3,spot,NA,0.029568,USD,Azure Retail Prices API,2025-12-18T04:46:27.528432 +AZURE,australiasoutheast,Standard_E2ads_v6,on_demand,NA,0.189,USD,Azure Retail Prices API,2025-12-18T04:46:27.528142 +AZURE,australiasoutheast,Standard_E2ads_v6,reserved_1y,NA,0.11153,USD,Azure Retail Prices API,2025-12-18T04:46:28.758259 +AZURE,australiasoutheast,Standard_E2ads_v6,reserved_3y,NA,0.071804,USD,Azure Retail Prices API,2025-12-18T04:46:28.758264 +AZURE,australiasoutheast,Standard_E2ads_v6,spot,NA,0.034927,USD,Azure Retail Prices API,2025-12-18T04:46:27.528622 +AZURE,australiasoutheast,Standard_E2ds_v5,on_demand,NA,0.187,USD,Azure Retail Prices API,2025-12-18T04:46:27.528481 +AZURE,australiasoutheast,Standard_E2ds_v5,reserved_1y,NA,0.110502,USD,Azure Retail Prices API,2025-12-18T04:46:28.758783 +AZURE,australiasoutheast,Standard_E2ds_v5,reserved_3y,NA,0.071119,USD,Azure Retail Prices API,2025-12-18T04:46:28.758788 +AZURE,australiasoutheast,Standard_E2ds_v5,spot,NA,0.034558,USD,Azure Retail Prices API,2025-12-18T04:46:27.528688 +AZURE,australiasoutheast,Standard_E2ds_v6,on_demand,NA,0.213,USD,Azure Retail Prices API,2025-12-18T04:46:27.528292 +AZURE,australiasoutheast,Standard_E2ds_v6,reserved_1y,NA,0.131849,USD,Azure Retail Prices API,2025-12-18T04:46:28.758500 +AZURE,australiasoutheast,Standard_E2ds_v6,reserved_3y,NA,0.082915,USD,Azure Retail Prices API,2025-12-18T04:46:28.758505 +AZURE,australiasoutheast,Standard_E2ds_v6,spot,NA,0.039362,USD,Azure Retail Prices API,2025-12-18T04:46:27.528841 +AZURE,australiasoutheast,Standard_E2pds_v6,on_demand,NA,0.152,USD,Azure Retail Prices API,2025-12-18T04:46:27.528414 +AZURE,australiasoutheast,Standard_E2pds_v6,reserved_1y,NA,0.089726,USD,Azure Retail Prices API,2025-12-18T04:46:28.758699 +AZURE,australiasoutheast,Standard_E2pds_v6,reserved_3y,NA,0.057763,USD,Azure Retail Prices API,2025-12-18T04:46:28.758704 +AZURE,australiasoutheast,Standard_E2pds_v6,spot,NA,0.02809,USD,Azure Retail Prices API,2025-12-18T04:46:27.529178 +AZURE,australiasoutheast,Standard_E32_v3,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:46:27.529103 +AZURE,australiasoutheast,Standard_E32_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:46:28.759870 +AZURE,australiasoutheast,Standard_E32_v3,reserved_3y,NA,0.96016,USD,Azure Retail Prices API,2025-12-18T04:46:28.759875 +AZURE,australiasoutheast,Standard_E32_v3,spot,NA,0.471979,USD,Azure Retail Prices API,2025-12-18T04:46:27.529712 +AZURE,australiasoutheast,Standard_E32a_v4,on_demand,NA,2.621,USD,Azure Retail Prices API,2025-12-18T04:46:27.528878 +AZURE,australiasoutheast,Standard_E32a_v4,reserved_1y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:46:28.759390 +AZURE,australiasoutheast,Standard_E32a_v4,reserved_3y,NA,1.048326,USD,Azure Retail Prices API,2025-12-18T04:46:28.759396 +AZURE,australiasoutheast,Standard_E32a_v4,spot,NA,0.484361,USD,Azure Retail Prices API,2025-12-18T04:46:27.529641 +AZURE,australiasoutheast,Standard_E32ads_v5,on_demand,NA,2.725,USD,Azure Retail Prices API,2025-12-18T04:46:27.528560 +AZURE,australiasoutheast,Standard_E32ads_v5,reserved_1y,NA,1.607648,USD,Azure Retail Prices API,2025-12-18T04:46:28.758918 +AZURE,australiasoutheast,Standard_E32ads_v5,reserved_3y,NA,1.035426,USD,Azure Retail Prices API,2025-12-18T04:46:28.758922 +AZURE,australiasoutheast,Standard_E32ads_v5,spot,NA,0.50358,USD,Azure Retail Prices API,2025-12-18T04:46:27.529294 +AZURE,australiasoutheast,Standard_E32ads_v6,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:46:27.528557 +AZURE,australiasoutheast,Standard_E32ads_v6,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:46:28.758908 +AZURE,australiasoutheast,Standard_E32ads_v6,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:46:28.758913 +AZURE,australiasoutheast,Standard_E32ads_v6,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:46:27.528509 +AZURE,australiasoutheast,Standard_E32as_v4,on_demand,NA,2.621,USD,Azure Retail Prices API,2025-12-18T04:46:27.528541 +AZURE,australiasoutheast,Standard_E32as_v4,reserved_1y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:46:28.758877 +AZURE,australiasoutheast,Standard_E32as_v4,reserved_3y,NA,1.048326,USD,Azure Retail Prices API,2025-12-18T04:46:28.758882 +AZURE,australiasoutheast,Standard_E32as_v4,spot,NA,0.484361,USD,Azure Retail Prices API,2025-12-18T04:46:27.529020 +AZURE,australiasoutheast,Standard_E32as_v5,on_demand,NA,3.822,USD,Azure Retail Prices API,2025-12-18T04:46:27.528464 +AZURE,australiasoutheast,Standard_E32as_v5,reserved_1y,NA,1.386758,USD,Azure Retail Prices API,2025-12-18T04:46:28.760385 +AZURE,australiasoutheast,Standard_E32as_v5,reserved_3y,NA,0.893151,USD,Azure Retail Prices API,2025-12-18T04:46:28.760390 +AZURE,australiasoutheast,Standard_E32as_v5,spot,NA,0.43428,USD,Azure Retail Prices API,2025-12-18T04:46:27.528737 +AZURE,australiasoutheast,Standard_E32d_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:46:27.528563 +AZURE,australiasoutheast,Standard_E32d_v4,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:46:28.758928 +AZURE,australiasoutheast,Standard_E32d_v4,reserved_3y,NA,1.050609,USD,Azure Retail Prices API,2025-12-18T04:46:28.758933 +AZURE,australiasoutheast,Standard_E32d_v4,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:46:27.528846 +AZURE,australiasoutheast,Standard_E32ds_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:46:27.528111 +AZURE,australiasoutheast,Standard_E32ds_v4,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:46:28.758168 +AZURE,australiasoutheast,Standard_E32ds_v4,reserved_3y,NA,1.050609,USD,Azure Retail Prices API,2025-12-18T04:46:28.758173 +AZURE,australiasoutheast,Standard_E32ds_v4,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:46:27.529620 +AZURE,australiasoutheast,Standard_E32ds_v5,on_demand,NA,2.995,USD,Azure Retail Prices API,2025-12-18T04:46:27.529213 +AZURE,australiasoutheast,Standard_E32ds_v5,reserved_1y,NA,1.767123,USD,Azure Retail Prices API,2025-12-18T04:46:28.759975 +AZURE,australiasoutheast,Standard_E32ds_v5,reserved_3y,NA,1.138166,USD,Azure Retail Prices API,2025-12-18T04:46:28.759981 +AZURE,australiasoutheast,Standard_E32ds_v5,spot,NA,0.553476,USD,Azure Retail Prices API,2025-12-18T04:46:27.528731 +AZURE,australiasoutheast,Standard_E32ds_v6,on_demand,NA,3.401,USD,Azure Retail Prices API,2025-12-18T04:46:27.529053 +AZURE,australiasoutheast,Standard_E32ds_v6,reserved_1y,NA,2.10879,USD,Azure Retail Prices API,2025-12-18T04:46:28.759769 +AZURE,australiasoutheast,Standard_E32ds_v6,reserved_3y,NA,1.326484,USD,Azure Retail Prices API,2025-12-18T04:46:28.759774 +AZURE,australiasoutheast,Standard_E32ds_v6,spot,NA,0.628505,USD,Azure Retail Prices API,2025-12-18T04:46:27.528635 +AZURE,australiasoutheast,Standard_E32pds_v6,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:27.529096 +AZURE,australiasoutheast,Standard_E32pds_v6,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:28.759836 +AZURE,australiasoutheast,Standard_E32pds_v6,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:46:28.759842 +AZURE,australiasoutheast,Standard_E32pds_v6,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:27.529338 +AZURE,australiasoutheast,Standard_E32ps_v6,on_demand,NA,1.917,USD,Azure Retail Prices API,2025-12-18T04:46:27.529663 +AZURE,australiasoutheast,Standard_E32ps_v6,reserved_1y,NA,1.130936,USD,Azure Retail Prices API,2025-12-18T04:46:28.760501 +AZURE,australiasoutheast,Standard_E32ps_v6,reserved_3y,NA,0.728387,USD,Azure Retail Prices API,2025-12-18T04:46:28.760506 +AZURE,australiasoutheast,Standard_E32ps_v6,spot,NA,0.354262,USD,Azure Retail Prices API,2025-12-18T04:46:27.529128 +AZURE,australiasoutheast,Standard_E32s_v3,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:46:27.529150 +AZURE,australiasoutheast,Standard_E32s_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:46:28.759903 +AZURE,australiasoutheast,Standard_E32s_v3,reserved_3y,NA,0.96016,USD,Azure Retail Prices API,2025-12-18T04:46:28.759909 +AZURE,australiasoutheast,Standard_E32s_v3,spot,NA,0.471979,USD,Azure Retail Prices API,2025-12-18T04:46:27.528313 +AZURE,australiasoutheast,Standard_E32s_v4,on_demand,NA,2.621,USD,Azure Retail Prices API,2025-12-18T04:46:27.529261 +AZURE,australiasoutheast,Standard_E32s_v4,reserved_1y,NA,1.546233,USD,Azure Retail Prices API,2025-12-18T04:46:28.760042 +AZURE,australiasoutheast,Standard_E32s_v4,reserved_3y,NA,0.99589,USD,Azure Retail Prices API,2025-12-18T04:46:28.760050 +AZURE,australiasoutheast,Standard_E32s_v4,spot,NA,0.484361,USD,Azure Retail Prices API,2025-12-18T04:46:27.528090 +AZURE,australiasoutheast,Standard_E32s_v5,on_demand,NA,2.621,USD,Azure Retail Prices API,2025-12-18T04:46:27.528087 +AZURE,australiasoutheast,Standard_E32s_v5,reserved_1y,NA,1.546233,USD,Azure Retail Prices API,2025-12-18T04:46:28.758113 +AZURE,australiasoutheast,Standard_E32s_v5,reserved_3y,NA,0.969711,USD,Azure Retail Prices API,2025-12-18T04:46:28.758119 +AZURE,australiasoutheast,Standard_E32s_v5,spot,NA,0.484361,USD,Azure Retail Prices API,2025-12-18T04:46:27.528392 +AZURE,australiasoutheast,Standard_E48a_v4,on_demand,NA,3.931,USD,Azure Retail Prices API,2025-12-18T04:46:27.529398 +AZURE,australiasoutheast,Standard_E48a_v4,reserved_1y,NA,2.358676,USD,Azure Retail Prices API,2025-12-18T04:46:28.760257 +AZURE,australiasoutheast,Standard_E48a_v4,reserved_3y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:46:28.760262 +AZURE,australiasoutheast,Standard_E48a_v4,spot,NA,0.726449,USD,Azure Retail Prices API,2025-12-18T04:46:27.528357 +AZURE,australiasoutheast,Standard_E48ads_v5,on_demand,NA,4.087,USD,Azure Retail Prices API,2025-12-18T04:46:27.529026 +AZURE,australiasoutheast,Standard_E48ads_v5,reserved_1y,NA,2.411416,USD,Azure Retail Prices API,2025-12-18T04:46:28.759713 +AZURE,australiasoutheast,Standard_E48ads_v5,reserved_3y,NA,1.55312,USD,Azure Retail Prices API,2025-12-18T04:46:28.759719 +AZURE,australiasoutheast,Standard_E48ads_v5,spot,NA,0.755278,USD,Azure Retail Prices API,2025-12-18T04:46:27.529560 +AZURE,australiasoutheast,Standard_E48ads_v6,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:46:27.528999 +AZURE,australiasoutheast,Standard_E48ads_v6,reserved_1y,NA,2.676256,USD,Azure Retail Prices API,2025-12-18T04:46:28.759637 +AZURE,australiasoutheast,Standard_E48ads_v6,reserved_3y,NA,1.723668,USD,Azure Retail Prices API,2025-12-18T04:46:28.759642 +AZURE,australiasoutheast,Standard_E48ads_v6,spot,NA,0.838253,USD,Azure Retail Prices API,2025-12-18T04:46:27.529891 +AZURE,australiasoutheast,Standard_E48as_v4,on_demand,NA,3.931,USD,Azure Retail Prices API,2025-12-18T04:46:27.529776 +AZURE,australiasoutheast,Standard_E48as_v4,reserved_1y,NA,2.358676,USD,Azure Retail Prices API,2025-12-18T04:46:28.760605 +AZURE,australiasoutheast,Standard_E48as_v4,reserved_3y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:46:28.760610 +AZURE,australiasoutheast,Standard_E48as_v4,spot,NA,0.726449,USD,Azure Retail Prices API,2025-12-18T04:46:27.528631 +AZURE,australiasoutheast,Standard_E48as_v5,on_demand,NA,5.734,USD,Azure Retail Prices API,2025-12-18T04:46:27.528337 +AZURE,australiasoutheast,Standard_E48as_v5,reserved_1y,NA,2.080137,USD,Azure Retail Prices API,2025-12-18T04:46:28.759040 +AZURE,australiasoutheast,Standard_E48as_v5,reserved_3y,NA,1.339726,USD,Azure Retail Prices API,2025-12-18T04:46:28.759045 +AZURE,australiasoutheast,Standard_E48as_v5,spot,NA,0.651605,USD,Azure Retail Prices API,2025-12-18T04:46:27.528269 +AZURE,australiasoutheast,Standard_E48d_v4,on_demand,NA,4.147,USD,Azure Retail Prices API,2025-12-18T04:46:27.529486 +AZURE,australiasoutheast,Standard_E48d_v4,reserved_1y,NA,2.446804,USD,Azure Retail Prices API,2025-12-18T04:46:28.760338 +AZURE,australiasoutheast,Standard_E48d_v4,reserved_3y,NA,1.575951,USD,Azure Retail Prices API,2025-12-18T04:46:28.760343 +AZURE,australiasoutheast,Standard_E48d_v4,spot,NA,0.766366,USD,Azure Retail Prices API,2025-12-18T04:46:27.529886 +AZURE,australiasoutheast,Standard_E48ds_v4,on_demand,NA,4.147,USD,Azure Retail Prices API,2025-12-18T04:46:27.528894 +AZURE,australiasoutheast,Standard_E48ds_v4,reserved_1y,NA,2.446804,USD,Azure Retail Prices API,2025-12-18T04:46:28.759446 +AZURE,australiasoutheast,Standard_E48ds_v4,reserved_3y,NA,1.575951,USD,Azure Retail Prices API,2025-12-18T04:46:28.759453 +AZURE,australiasoutheast,Standard_E48ds_v4,spot,NA,0.766366,USD,Azure Retail Prices API,2025-12-18T04:46:27.528934 +AZURE,australiasoutheast,Standard_E48ds_v5,on_demand,NA,4.493,USD,Azure Retail Prices API,2025-12-18T04:46:27.528792 +AZURE,australiasoutheast,Standard_E48ds_v5,reserved_1y,NA,2.650799,USD,Azure Retail Prices API,2025-12-18T04:46:28.759346 +AZURE,australiasoutheast,Standard_E48ds_v5,reserved_3y,NA,1.707268,USD,Azure Retail Prices API,2025-12-18T04:46:28.759351 +AZURE,australiasoutheast,Standard_E48ds_v5,spot,NA,0.830306,USD,Azure Retail Prices API,2025-12-18T04:46:27.529634 +AZURE,australiasoutheast,Standard_E48ds_v6,on_demand,NA,5.102,USD,Azure Retail Prices API,2025-12-18T04:46:27.528310 +AZURE,australiasoutheast,Standard_E48ds_v6,reserved_1y,NA,3.163242,USD,Azure Retail Prices API,2025-12-18T04:46:28.758553 +AZURE,australiasoutheast,Standard_E48ds_v6,reserved_3y,NA,1.989764,USD,Azure Retail Prices API,2025-12-18T04:46:28.758559 +AZURE,australiasoutheast,Standard_E48ds_v6,spot,NA,0.94285,USD,Azure Retail Prices API,2025-12-18T04:46:27.528805 +AZURE,australiasoutheast,Standard_E48pds_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:27.529271 +AZURE,australiasoutheast,Standard_E48pds_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:28.760055 +AZURE,australiasoutheast,Standard_E48pds_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:46:28.760061 +AZURE,australiasoutheast,Standard_E48pds_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:27.528319 +AZURE,australiasoutheast,Standard_E48ps_v6,on_demand,NA,2.875,USD,Azure Retail Prices API,2025-12-18T04:46:27.528178 +AZURE,australiasoutheast,Standard_E48ps_v6,reserved_1y,NA,1.696347,USD,Azure Retail Prices API,2025-12-18T04:46:28.758311 +AZURE,australiasoutheast,Standard_E48ps_v6,reserved_3y,NA,1.09258,USD,Azure Retail Prices API,2025-12-18T04:46:28.758316 +AZURE,australiasoutheast,Standard_E48ps_v6,spot,NA,0.5313,USD,Azure Retail Prices API,2025-12-18T04:46:27.529728 +AZURE,australiasoutheast,Standard_E48s_v4,on_demand,NA,3.931,USD,Azure Retail Prices API,2025-12-18T04:46:27.528810 +AZURE,australiasoutheast,Standard_E48s_v4,reserved_1y,NA,2.319406,USD,Azure Retail Prices API,2025-12-18T04:46:28.759368 +AZURE,australiasoutheast,Standard_E48s_v4,reserved_3y,NA,1.493874,USD,Azure Retail Prices API,2025-12-18T04:46:28.759373 +AZURE,australiasoutheast,Standard_E48s_v4,spot,NA,0.726449,USD,Azure Retail Prices API,2025-12-18T04:46:27.529741 +AZURE,australiasoutheast,Standard_E48s_v5,on_demand,NA,3.931,USD,Azure Retail Prices API,2025-12-18T04:46:27.528908 +AZURE,australiasoutheast,Standard_E48s_v5,reserved_1y,NA,2.319406,USD,Azure Retail Prices API,2025-12-18T04:46:28.759481 +AZURE,australiasoutheast,Standard_E48s_v5,reserved_3y,NA,1.454528,USD,Azure Retail Prices API,2025-12-18T04:46:28.759486 +AZURE,australiasoutheast,Standard_E48s_v5,spot,NA,0.726449,USD,Azure Retail Prices API,2025-12-18T04:46:27.528740 +AZURE,australiasoutheast,Standard_E4_v3,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:46:27.528598 +AZURE,australiasoutheast,Standard_E4_v3,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:28.758989 +AZURE,australiasoutheast,Standard_E4_v3,reserved_3y,NA,0.120015,USD,Azure Retail Prices API,2025-12-18T04:46:28.758994 +AZURE,australiasoutheast,Standard_E4_v3,spot,NA,0.058951,USD,Azure Retail Prices API,2025-12-18T04:46:27.528526 +AZURE,australiasoutheast,Standard_E4a_v4,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:46:27.528120 +AZURE,australiasoutheast,Standard_E4a_v4,reserved_1y,NA,0.196575,USD,Azure Retail Prices API,2025-12-18T04:46:28.758201 +AZURE,australiasoutheast,Standard_E4a_v4,reserved_3y,NA,0.13105,USD,Azure Retail Prices API,2025-12-18T04:46:28.758206 +AZURE,australiasoutheast,Standard_E4a_v4,spot,NA,0.060614,USD,Azure Retail Prices API,2025-12-18T04:46:27.529513 +AZURE,australiasoutheast,Standard_E4ads_v5,on_demand,NA,0.341,USD,Azure Retail Prices API,2025-12-18T04:46:27.528524 +AZURE,australiasoutheast,Standard_E4ads_v5,reserved_1y,NA,0.200913,USD,Azure Retail Prices API,2025-12-18T04:46:28.758846 +AZURE,australiasoutheast,Standard_E4ads_v5,reserved_3y,NA,0.129414,USD,Azure Retail Prices API,2025-12-18T04:46:28.758851 +AZURE,australiasoutheast,Standard_E4ads_v5,spot,NA,0.063017,USD,Azure Retail Prices API,2025-12-18T04:46:27.529108 +AZURE,australiasoutheast,Standard_E4ads_v6,on_demand,NA,0.378,USD,Azure Retail Prices API,2025-12-18T04:46:27.528348 +AZURE,australiasoutheast,Standard_E4ads_v6,reserved_1y,NA,0.223059,USD,Azure Retail Prices API,2025-12-18T04:46:28.758586 +AZURE,australiasoutheast,Standard_E4ads_v6,reserved_3y,NA,0.143645,USD,Azure Retail Prices API,2025-12-18T04:46:28.758592 +AZURE,australiasoutheast,Standard_E4ads_v6,spot,NA,0.069854,USD,Azure Retail Prices API,2025-12-18T04:46:27.528494 +AZURE,australiasoutheast,Standard_E4as_v4,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:46:27.528102 +AZURE,australiasoutheast,Standard_E4as_v4,reserved_1y,NA,0.196575,USD,Azure Retail Prices API,2025-12-18T04:46:28.758146 +AZURE,australiasoutheast,Standard_E4as_v4,reserved_3y,NA,0.13105,USD,Azure Retail Prices API,2025-12-18T04:46:28.758152 +AZURE,australiasoutheast,Standard_E4as_v4,spot,NA,0.060614,USD,Azure Retail Prices API,2025-12-18T04:46:27.528786 +AZURE,australiasoutheast,Standard_E4as_v5,on_demand,NA,0.478,USD,Azure Retail Prices API,2025-12-18T04:46:27.528417 +AZURE,australiasoutheast,Standard_E4as_v5,reserved_1y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:46:28.760465 +AZURE,australiasoutheast,Standard_E4as_v5,reserved_3y,NA,0.111644,USD,Azure Retail Prices API,2025-12-18T04:46:28.760470 +AZURE,australiasoutheast,Standard_E4as_v5,spot,NA,0.054331,USD,Azure Retail Prices API,2025-12-18T04:46:27.529325 +AZURE,australiasoutheast,Standard_E4d_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:46:27.528301 +AZURE,australiasoutheast,Standard_E4d_v4,reserved_1y,NA,0.203881,USD,Azure Retail Prices API,2025-12-18T04:46:28.758533 +AZURE,australiasoutheast,Standard_E4d_v4,reserved_3y,NA,0.131317,USD,Azure Retail Prices API,2025-12-18T04:46:28.758538 +AZURE,australiasoutheast,Standard_E4d_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:46:27.529255 +AZURE,australiasoutheast,Standard_E4ds_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:46:27.528154 +AZURE,australiasoutheast,Standard_E4ds_v4,reserved_1y,NA,0.203881,USD,Azure Retail Prices API,2025-12-18T04:46:28.758280 +AZURE,australiasoutheast,Standard_E4ds_v4,reserved_3y,NA,0.131317,USD,Azure Retail Prices API,2025-12-18T04:46:28.758285 +AZURE,australiasoutheast,Standard_E4ds_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:46:27.528325 +AZURE,australiasoutheast,Standard_E4ds_v5,on_demand,NA,0.374,USD,Azure Retail Prices API,2025-12-18T04:46:27.529023 +AZURE,australiasoutheast,Standard_E4ds_v5,reserved_1y,NA,0.22089,USD,Azure Retail Prices API,2025-12-18T04:46:28.759702 +AZURE,australiasoutheast,Standard_E4ds_v5,reserved_3y,NA,0.142275,USD,Azure Retail Prices API,2025-12-18T04:46:28.759708 +AZURE,australiasoutheast,Standard_E4ds_v5,spot,NA,0.069115,USD,Azure Retail Prices API,2025-12-18T04:46:27.528964 +AZURE,australiasoutheast,Standard_E4ds_v6,on_demand,NA,0.425,USD,Azure Retail Prices API,2025-12-18T04:46:27.529528 +AZURE,australiasoutheast,Standard_E4ds_v6,reserved_1y,NA,0.263584,USD,Azure Retail Prices API,2025-12-18T04:46:28.760417 +AZURE,australiasoutheast,Standard_E4ds_v6,reserved_3y,NA,0.16583,USD,Azure Retail Prices API,2025-12-18T04:46:28.760426 +AZURE,australiasoutheast,Standard_E4ds_v6,spot,NA,0.07854,USD,Azure Retail Prices API,2025-12-18T04:46:27.528280 +AZURE,australiasoutheast,Standard_E4pds_v6,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:27.529980 +AZURE,australiasoutheast,Standard_E4pds_v6,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:28.760856 +AZURE,australiasoutheast,Standard_E4pds_v6,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:46:28.760862 +AZURE,australiasoutheast,Standard_E4pds_v6,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:27.529905 +AZURE,australiasoutheast,Standard_E4ps_v6,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:27.529279 +AZURE,australiasoutheast,Standard_E4ps_v6,reserved_1y,NA,0.141324,USD,Azure Retail Prices API,2025-12-18T04:46:28.760066 +AZURE,australiasoutheast,Standard_E4ps_v6,reserved_3y,NA,0.091058,USD,Azure Retail Prices API,2025-12-18T04:46:28.760072 +AZURE,australiasoutheast,Standard_E4ps_v6,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:27.529284 +AZURE,australiasoutheast,Standard_E4s_v4,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:46:27.529258 +AZURE,australiasoutheast,Standard_E4s_v4,reserved_1y,NA,0.193265,USD,Azure Retail Prices API,2025-12-18T04:46:28.760030 +AZURE,australiasoutheast,Standard_E4s_v4,reserved_3y,NA,0.124505,USD,Azure Retail Prices API,2025-12-18T04:46:28.760036 +AZURE,australiasoutheast,Standard_E4s_v4,spot,NA,0.060614,USD,Azure Retail Prices API,2025-12-18T04:46:27.528899 +AZURE,australiasoutheast,Standard_E4s_v5,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:46:27.528275 +AZURE,australiasoutheast,Standard_E4s_v5,reserved_1y,NA,0.193265,USD,Azure Retail Prices API,2025-12-18T04:46:28.758470 +AZURE,australiasoutheast,Standard_E4s_v5,reserved_3y,NA,0.121195,USD,Azure Retail Prices API,2025-12-18T04:46:28.758475 +AZURE,australiasoutheast,Standard_E4s_v5,spot,NA,0.060614,USD,Azure Retail Prices API,2025-12-18T04:46:27.528260 +AZURE,australiasoutheast,Standard_E64_v3,on_demand,NA,4.347,USD,Azure Retail Prices API,2025-12-18T04:46:27.528529 +AZURE,australiasoutheast,Standard_E64_v3,reserved_1y,NA,2.830365,USD,Azure Retail Prices API,2025-12-18T04:46:28.758856 +AZURE,australiasoutheast,Standard_E64_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:46:28.758862 +AZURE,australiasoutheast,Standard_E64_v3,spot,NA,0.803326,USD,Azure Retail Prices API,2025-12-18T04:46:27.529245 +AZURE,australiasoutheast,Standard_E64a_v4,on_demand,NA,5.242,USD,Azure Retail Prices API,2025-12-18T04:46:27.528586 +AZURE,australiasoutheast,Standard_E64a_v4,reserved_1y,NA,3.144977,USD,Azure Retail Prices API,2025-12-18T04:46:28.758969 +AZURE,australiasoutheast,Standard_E64a_v4,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:46:28.758974 +AZURE,australiasoutheast,Standard_E64a_v4,spot,NA,0.968722,USD,Azure Retail Prices API,2025-12-18T04:46:27.528959 +AZURE,australiasoutheast,Standard_E64ads_v5,on_demand,NA,8.394,USD,Azure Retail Prices API,2025-12-18T04:46:27.529082 +AZURE,australiasoutheast,Standard_E64ads_v5,reserved_1y,NA,3.215297,USD,Azure Retail Prices API,2025-12-18T04:46:28.759813 +AZURE,australiasoutheast,Standard_E64ads_v5,reserved_3y,NA,2.070852,USD,Azure Retail Prices API,2025-12-18T04:46:28.759819 +AZURE,australiasoutheast,Standard_E64ads_v5,spot,NA,1.00716,USD,Azure Retail Prices API,2025-12-18T04:46:27.528283 +AZURE,australiasoutheast,Standard_E64ads_v6,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:46:27.529837 +AZURE,australiasoutheast,Standard_E64ads_v6,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:46:28.760694 +AZURE,australiasoutheast,Standard_E64ads_v6,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:46:28.760700 +AZURE,australiasoutheast,Standard_E64ads_v6,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:46:27.529070 +AZURE,australiasoutheast,Standard_E64as_v4,on_demand,NA,5.242,USD,Azure Retail Prices API,2025-12-18T04:46:27.528680 +AZURE,australiasoutheast,Standard_E64as_v4,reserved_1y,NA,3.144977,USD,Azure Retail Prices API,2025-12-18T04:46:28.759142 +AZURE,australiasoutheast,Standard_E64as_v4,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:46:28.759146 +AZURE,australiasoutheast,Standard_E64as_v4,spot,NA,0.968722,USD,Azure Retail Prices API,2025-12-18T04:46:27.528455 +AZURE,australiasoutheast,Standard_E64as_v5,on_demand,NA,4.701,USD,Azure Retail Prices API,2025-12-18T04:46:27.528198 +AZURE,australiasoutheast,Standard_E64as_v5,reserved_1y,NA,2.773516,USD,Azure Retail Prices API,2025-12-18T04:46:28.758353 +AZURE,australiasoutheast,Standard_E64as_v5,reserved_3y,NA,1.786301,USD,Azure Retail Prices API,2025-12-18T04:46:28.758358 +AZURE,australiasoutheast,Standard_E64as_v5,spot,NA,0.868745,USD,Azure Retail Prices API,2025-12-18T04:46:27.528766 +AZURE,australiasoutheast,Standard_E64d_v4,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:46:27.529194 +AZURE,australiasoutheast,Standard_E64d_v4,reserved_1y,NA,3.262443,USD,Azure Retail Prices API,2025-12-18T04:46:28.759958 +AZURE,australiasoutheast,Standard_E64d_v4,reserved_3y,NA,2.101256,USD,Azure Retail Prices API,2025-12-18T04:46:28.759964 +AZURE,australiasoutheast,Standard_E64d_v4,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:46:27.528532 +AZURE,australiasoutheast,Standard_E64ds_v4,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:46:27.528716 +AZURE,australiasoutheast,Standard_E64ds_v4,reserved_1y,NA,3.262443,USD,Azure Retail Prices API,2025-12-18T04:46:28.759193 +AZURE,australiasoutheast,Standard_E64ds_v4,reserved_3y,NA,2.101256,USD,Azure Retail Prices API,2025-12-18T04:46:28.759199 +AZURE,australiasoutheast,Standard_E64ds_v4,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:46:27.529827 +AZURE,australiasoutheast,Standard_E64ds_v5,on_demand,NA,5.99,USD,Azure Retail Prices API,2025-12-18T04:46:27.528140 +AZURE,australiasoutheast,Standard_E64ds_v5,reserved_1y,NA,3.534361,USD,Azure Retail Prices API,2025-12-18T04:46:28.758249 +AZURE,australiasoutheast,Standard_E64ds_v5,reserved_3y,NA,2.27637,USD,Azure Retail Prices API,2025-12-18T04:46:28.758254 +AZURE,australiasoutheast,Standard_E64ds_v5,spot,NA,1.106952,USD,Azure Retail Prices API,2025-12-18T04:46:27.529723 +AZURE,australiasoutheast,Standard_E64ds_v6,on_demand,NA,6.803,USD,Azure Retail Prices API,2025-12-18T04:46:27.529801 +AZURE,australiasoutheast,Standard_E64ds_v6,reserved_1y,NA,4.21758,USD,Azure Retail Prices API,2025-12-18T04:46:28.760626 +AZURE,australiasoutheast,Standard_E64ds_v6,reserved_3y,NA,2.653006,USD,Azure Retail Prices API,2025-12-18T04:46:28.760632 +AZURE,australiasoutheast,Standard_E64ds_v6,spot,NA,1.257194,USD,Azure Retail Prices API,2025-12-18T04:46:27.528386 +AZURE,australiasoutheast,Standard_E64pds_v6,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:27.528549 +AZURE,australiasoutheast,Standard_E64pds_v6,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:28.758888 +AZURE,australiasoutheast,Standard_E64pds_v6,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:46:28.758893 +AZURE,australiasoutheast,Standard_E64pds_v6,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:27.528170 +AZURE,australiasoutheast,Standard_E64ps_v6,on_demand,NA,3.834,USD,Azure Retail Prices API,2025-12-18T04:46:27.529736 +AZURE,australiasoutheast,Standard_E64ps_v6,reserved_1y,NA,2.261872,USD,Azure Retail Prices API,2025-12-18T04:46:28.760583 +AZURE,australiasoutheast,Standard_E64ps_v6,reserved_3y,NA,1.456773,USD,Azure Retail Prices API,2025-12-18T04:46:28.760588 +AZURE,australiasoutheast,Standard_E64ps_v6,spot,NA,0.708523,USD,Azure Retail Prices API,2025-12-18T04:46:27.528339 +AZURE,australiasoutheast,Standard_E64s_v3,on_demand,NA,4.347,USD,Azure Retail Prices API,2025-12-18T04:46:27.528289 +AZURE,australiasoutheast,Standard_E64s_v3,reserved_1y,NA,2.830365,USD,Azure Retail Prices API,2025-12-18T04:46:28.758490 +AZURE,australiasoutheast,Standard_E64s_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:46:28.758495 +AZURE,australiasoutheast,Standard_E64s_v3,spot,NA,0.803326,USD,Azure Retail Prices API,2025-12-18T04:46:27.529049 +AZURE,australiasoutheast,Standard_E64s_v4,on_demand,NA,5.242,USD,Azure Retail Prices API,2025-12-18T04:46:27.528477 +AZURE,australiasoutheast,Standard_E64s_v4,reserved_1y,NA,3.09258,USD,Azure Retail Prices API,2025-12-18T04:46:28.758772 +AZURE,australiasoutheast,Standard_E64s_v4,reserved_3y,NA,1.991819,USD,Azure Retail Prices API,2025-12-18T04:46:28.758778 +AZURE,australiasoutheast,Standard_E64s_v4,spot,NA,0.968722,USD,Azure Retail Prices API,2025-12-18T04:46:27.528518 +AZURE,australiasoutheast,Standard_E64s_v5,on_demand,NA,5.242,USD,Azure Retail Prices API,2025-12-18T04:46:27.528662 +AZURE,australiasoutheast,Standard_E64s_v5,reserved_1y,NA,3.09258,USD,Azure Retail Prices API,2025-12-18T04:46:28.759114 +AZURE,australiasoutheast,Standard_E64s_v5,reserved_3y,NA,1.939384,USD,Azure Retail Prices API,2025-12-18T04:46:28.759119 +AZURE,australiasoutheast,Standard_E64s_v5,spot,NA,0.968722,USD,Azure Retail Prices API,2025-12-18T04:46:27.529428 +AZURE,australiasoutheast,Standard_E80ids_v4,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:46:27.528241 +AZURE,australiasoutheast,Standard_E80ids_v4,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:46:28.758406 +AZURE,australiasoutheast,Standard_E80ids_v4,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:46:28.758411 +AZURE,australiasoutheast,Standard_E80ids_v4,spot,NA,1.277338,USD,Azure Retail Prices API,2025-12-18T04:46:27.529306 +AZURE,australiasoutheast,Standard_E80is_v4,on_demand,NA,6.552,USD,Azure Retail Prices API,2025-12-18T04:46:27.529537 +AZURE,australiasoutheast,Standard_E80is_v4,reserved_1y,NA,3.865639,USD,Azure Retail Prices API,2025-12-18T04:46:28.760431 +AZURE,australiasoutheast,Standard_E80is_v4,reserved_3y,NA,2.489764,USD,Azure Retail Prices API,2025-12-18T04:46:28.760437 +AZURE,australiasoutheast,Standard_E80is_v4,spot,NA,1.21081,USD,Azure Retail Prices API,2025-12-18T04:46:27.528354 +AZURE,australiasoutheast,Standard_E8_v3,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:27.529453 +AZURE,australiasoutheast,Standard_E8_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:46:28.760304 +AZURE,australiasoutheast,Standard_E8_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:46:28.760310 +AZURE,australiasoutheast,Standard_E8_v3,spot,NA,0.117902,USD,Azure Retail Prices API,2025-12-18T04:46:27.529995 +AZURE,australiasoutheast,Standard_E8a_v4,on_demand,NA,0.655,USD,Azure Retail Prices API,2025-12-18T04:46:27.528252 +AZURE,australiasoutheast,Standard_E8a_v4,reserved_1y,NA,0.393151,USD,Azure Retail Prices API,2025-12-18T04:46:28.758427 +AZURE,australiasoutheast,Standard_E8a_v4,reserved_3y,NA,0.262062,USD,Azure Retail Prices API,2025-12-18T04:46:28.758432 +AZURE,australiasoutheast,Standard_E8a_v4,spot,NA,0.121044,USD,Azure Retail Prices API,2025-12-18T04:46:27.528905 +AZURE,australiasoutheast,Standard_E8ads_v5,on_demand,NA,1.049,USD,Azure Retail Prices API,2025-12-18T04:46:27.529348 +AZURE,australiasoutheast,Standard_E8ads_v5,reserved_1y,NA,0.401941,USD,Azure Retail Prices API,2025-12-18T04:46:28.760327 +AZURE,australiasoutheast,Standard_E8ads_v5,reserved_3y,NA,0.258866,USD,Azure Retail Prices API,2025-12-18T04:46:28.760332 +AZURE,australiasoutheast,Standard_E8ads_v5,spot,NA,0.125849,USD,Azure Retail Prices API,2025-12-18T04:46:27.528304 +AZURE,australiasoutheast,Standard_E8ads_v6,on_demand,NA,0.756,USD,Azure Retail Prices API,2025-12-18T04:46:27.528093 +AZURE,australiasoutheast,Standard_E8ads_v6,reserved_1y,NA,0.446005,USD,Azure Retail Prices API,2025-12-18T04:46:28.758125 +AZURE,australiasoutheast,Standard_E8ads_v6,reserved_3y,NA,0.287291,USD,Azure Retail Prices API,2025-12-18T04:46:28.758130 +AZURE,australiasoutheast,Standard_E8ads_v6,spot,NA,0.139709,USD,Azure Retail Prices API,2025-12-18T04:46:27.529542 +AZURE,australiasoutheast,Standard_E8as_v4,on_demand,NA,0.655,USD,Azure Retail Prices API,2025-12-18T04:46:27.528065 +AZURE,australiasoutheast,Standard_E8as_v4,reserved_1y,NA,0.393151,USD,Azure Retail Prices API,2025-12-18T04:46:28.758076 +AZURE,australiasoutheast,Standard_E8as_v4,reserved_3y,NA,0.262062,USD,Azure Retail Prices API,2025-12-18T04:46:28.758095 +AZURE,australiasoutheast,Standard_E8as_v4,spot,NA,0.121044,USD,Azure Retail Prices API,2025-12-18T04:46:27.529555 +AZURE,australiasoutheast,Standard_E8as_v5,on_demand,NA,0.588,USD,Azure Retail Prices API,2025-12-18T04:46:27.528469 +AZURE,australiasoutheast,Standard_E8as_v5,reserved_1y,NA,0.346689,USD,Azure Retail Prices API,2025-12-18T04:46:28.758762 +AZURE,australiasoutheast,Standard_E8as_v5,reserved_3y,NA,0.223288,USD,Azure Retail Prices API,2025-12-18T04:46:28.758767 +AZURE,australiasoutheast,Standard_E8as_v5,spot,NA,0.108662,USD,Azure Retail Prices API,2025-12-18T04:46:27.529172 +AZURE,australiasoutheast,Standard_E8d_v4,on_demand,NA,0.691,USD,Azure Retail Prices API,2025-12-18T04:46:27.529407 +AZURE,australiasoutheast,Standard_E8d_v4,reserved_1y,NA,0.407763,USD,Azure Retail Prices API,2025-12-18T04:46:28.760268 +AZURE,australiasoutheast,Standard_E8d_v4,reserved_3y,NA,0.262671,USD,Azure Retail Prices API,2025-12-18T04:46:28.760276 +AZURE,australiasoutheast,Standard_E8d_v4,spot,NA,0.127697,USD,Azure Retail Prices API,2025-12-18T04:46:27.528691 +AZURE,australiasoutheast,Standard_E8ds_v4,on_demand,NA,0.691,USD,Azure Retail Prices API,2025-12-18T04:46:27.528937 +AZURE,australiasoutheast,Standard_E8ds_v4,reserved_1y,NA,0.407763,USD,Azure Retail Prices API,2025-12-18T04:46:28.759558 +AZURE,australiasoutheast,Standard_E8ds_v4,reserved_3y,NA,0.262671,USD,Azure Retail Prices API,2025-12-18T04:46:28.759564 +AZURE,australiasoutheast,Standard_E8ds_v4,spot,NA,0.127697,USD,Azure Retail Prices API,2025-12-18T04:46:27.529058 +AZURE,australiasoutheast,Standard_E8ds_v5,on_demand,NA,0.749,USD,Azure Retail Prices API,2025-12-18T04:46:27.529881 +AZURE,australiasoutheast,Standard_E8ds_v5,reserved_1y,NA,0.441781,USD,Azure Retail Prices API,2025-12-18T04:46:28.760741 +AZURE,australiasoutheast,Standard_E8ds_v5,reserved_3y,NA,0.284551,USD,Azure Retail Prices API,2025-12-18T04:46:28.760747 +AZURE,australiasoutheast,Standard_E8ds_v5,spot,NA,0.138415,USD,Azure Retail Prices API,2025-12-18T04:46:27.529705 +AZURE,australiasoutheast,Standard_E8ds_v6,on_demand,NA,0.85,USD,Azure Retail Prices API,2025-12-18T04:46:27.528440 +AZURE,australiasoutheast,Standard_E8ds_v6,reserved_1y,NA,0.527169,USD,Azure Retail Prices API,2025-12-18T04:46:28.758731 +AZURE,australiasoutheast,Standard_E8ds_v6,reserved_3y,NA,0.331621,USD,Azure Retail Prices API,2025-12-18T04:46:28.758736 +AZURE,australiasoutheast,Standard_E8ds_v6,spot,NA,0.15708,USD,Azure Retail Prices API,2025-12-18T04:46:27.529002 +AZURE,australiasoutheast,Standard_E8pds_v6,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:27.528099 +AZURE,australiasoutheast,Standard_E8pds_v6,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:28.758136 +AZURE,australiasoutheast,Standard_E8pds_v6,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:46:28.758141 +AZURE,australiasoutheast,Standard_E8pds_v6,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:27.528145 +AZURE,australiasoutheast,Standard_E8ps_v6,on_demand,NA,0.479,USD,Azure Retail Prices API,2025-12-18T04:46:27.529523 +AZURE,australiasoutheast,Standard_E8ps_v6,reserved_1y,NA,0.282763,USD,Azure Retail Prices API,2025-12-18T04:46:28.760407 +AZURE,australiasoutheast,Standard_E8ps_v6,reserved_3y,NA,0.182078,USD,Azure Retail Prices API,2025-12-18T04:46:28.760412 +AZURE,australiasoutheast,Standard_E8ps_v6,spot,NA,0.088519,USD,Azure Retail Prices API,2025-12-18T04:46:27.529821 +AZURE,australiasoutheast,Standard_E8s_v3,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:27.528777 +AZURE,australiasoutheast,Standard_E8s_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:46:28.759327 +AZURE,australiasoutheast,Standard_E8s_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:46:28.759332 +AZURE,australiasoutheast,Standard_E8s_v3,spot,NA,0.117902,USD,Azure Retail Prices API,2025-12-18T04:46:27.528272 +AZURE,australiasoutheast,Standard_E8s_v4,on_demand,NA,0.655,USD,Azure Retail Prices API,2025-12-18T04:46:27.528537 +AZURE,australiasoutheast,Standard_E8s_v4,reserved_1y,NA,0.38653,USD,Azure Retail Prices API,2025-12-18T04:46:28.758867 +AZURE,australiasoutheast,Standard_E8s_v4,reserved_3y,NA,0.248973,USD,Azure Retail Prices API,2025-12-18T04:46:28.758872 +AZURE,australiasoutheast,Standard_E8s_v4,spot,NA,0.121044,USD,Azure Retail Prices API,2025-12-18T04:46:27.528643 +AZURE,australiasoutheast,Standard_E8s_v5,on_demand,NA,0.655,USD,Azure Retail Prices API,2025-12-18T04:46:27.528351 +AZURE,australiasoutheast,Standard_E8s_v5,reserved_1y,NA,0.38653,USD,Azure Retail Prices API,2025-12-18T04:46:28.758597 +AZURE,australiasoutheast,Standard_E8s_v5,reserved_3y,NA,0.242428,USD,Azure Retail Prices API,2025-12-18T04:46:28.758602 +AZURE,australiasoutheast,Standard_E8s_v5,spot,NA,0.121044,USD,Azure Retail Prices API,2025-12-18T04:46:27.529384 +AZURE,australiasoutheast,Standard_E96a_v4,on_demand,NA,7.862,USD,Azure Retail Prices API,2025-12-18T04:46:27.528574 +AZURE,australiasoutheast,Standard_E96a_v4,reserved_1y,NA,4.717466,USD,Azure Retail Prices API,2025-12-18T04:46:28.758959 +AZURE,australiasoutheast,Standard_E96a_v4,reserved_3y,NA,3.144977,USD,Azure Retail Prices API,2025-12-18T04:46:28.758964 +AZURE,australiasoutheast,Standard_E96a_v4,spot,NA,1.452898,USD,Azure Retail Prices API,2025-12-18T04:46:27.528768 +AZURE,australiasoutheast,Standard_E96ads_v5,on_demand,NA,12.59,USD,Azure Retail Prices API,2025-12-18T04:46:27.528345 +AZURE,australiasoutheast,Standard_E96ads_v5,reserved_1y,NA,4.822945,USD,Azure Retail Prices API,2025-12-18T04:46:28.760683 +AZURE,australiasoutheast,Standard_E96ads_v5,reserved_3y,NA,3.106279,USD,Azure Retail Prices API,2025-12-18T04:46:28.760689 +AZURE,australiasoutheast,Standard_E96ads_v5,spot,NA,1.510555,USD,Azure Retail Prices API,2025-12-18T04:46:27.529264 +AZURE,australiasoutheast,Standard_E96ads_v6,on_demand,NA,9.072,USD,Azure Retail Prices API,2025-12-18T04:46:27.528165 +AZURE,australiasoutheast,Standard_E96ads_v6,reserved_1y,NA,5.352511,USD,Azure Retail Prices API,2025-12-18T04:46:28.758300 +AZURE,australiasoutheast,Standard_E96ads_v6,reserved_3y,NA,3.447374,USD,Azure Retail Prices API,2025-12-18T04:46:28.758305 +AZURE,australiasoutheast,Standard_E96ads_v6,spot,NA,1.676506,USD,Azure Retail Prices API,2025-12-18T04:46:27.528190 +AZURE,australiasoutheast,Standard_E96as_v4,on_demand,NA,7.862,USD,Azure Retail Prices API,2025-12-18T04:46:27.529861 +AZURE,australiasoutheast,Standard_E96as_v4,reserved_1y,NA,4.717466,USD,Azure Retail Prices API,2025-12-18T04:46:28.760716 +AZURE,australiasoutheast,Standard_E96as_v4,reserved_3y,NA,3.144977,USD,Azure Retail Prices API,2025-12-18T04:46:28.760722 +AZURE,australiasoutheast,Standard_E96as_v4,spot,NA,1.452898,USD,Azure Retail Prices API,2025-12-18T04:46:27.529569 +AZURE,australiasoutheast,Standard_E96as_v5,on_demand,NA,11.467,USD,Azure Retail Prices API,2025-12-18T04:46:27.528126 +AZURE,australiasoutheast,Standard_E96as_v5,reserved_1y,NA,4.16016,USD,Azure Retail Prices API,2025-12-18T04:46:28.760234 +AZURE,australiasoutheast,Standard_E96as_v5,reserved_3y,NA,2.679452,USD,Azure Retail Prices API,2025-12-18T04:46:28.760240 +AZURE,australiasoutheast,Standard_E96as_v5,spot,NA,1.303025,USD,Azure Retail Prices API,2025-12-18T04:46:27.529268 +AZURE,australiasoutheast,Standard_E96ds_v5,on_demand,NA,8.986,USD,Azure Retail Prices API,2025-12-18T04:46:27.528515 +AZURE,australiasoutheast,Standard_E96ds_v5,reserved_1y,NA,5.301484,USD,Azure Retail Prices API,2025-12-18T04:46:28.758835 +AZURE,australiasoutheast,Standard_E96ds_v5,reserved_3y,NA,3.414536,USD,Azure Retail Prices API,2025-12-18T04:46:28.758840 +AZURE,australiasoutheast,Standard_E96ds_v5,spot,NA,1.660613,USD,Azure Retail Prices API,2025-12-18T04:46:27.529105 +AZURE,australiasoutheast,Standard_E96ds_v6,on_demand,NA,10.204,USD,Azure Retail Prices API,2025-12-18T04:46:27.529369 +AZURE,australiasoutheast,Standard_E96ds_v6,reserved_1y,NA,6.32637,USD,Azure Retail Prices API,2025-12-18T04:46:28.760200 +AZURE,australiasoutheast,Standard_E96ds_v6,reserved_3y,NA,3.97949,USD,Azure Retail Prices API,2025-12-18T04:46:28.760206 +AZURE,australiasoutheast,Standard_E96ds_v6,spot,NA,1.885699,USD,Azure Retail Prices API,2025-12-18T04:46:27.528078 +AZURE,australiasoutheast,Standard_E96pds_v6,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:27.528986 +AZURE,australiasoutheast,Standard_E96pds_v6,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:46:28.759604 +AZURE,australiasoutheast,Standard_E96pds_v6,reserved_3y,NA,2.772489,USD,Azure Retail Prices API,2025-12-18T04:46:28.759610 +AZURE,australiasoutheast,Standard_E96pds_v6,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:27.528544 +AZURE,australiasoutheast,Standard_E96ps_v6,on_demand,NA,5.75,USD,Azure Retail Prices API,2025-12-18T04:46:27.528746 +AZURE,australiasoutheast,Standard_E96ps_v6,reserved_1y,NA,3.392694,USD,Azure Retail Prices API,2025-12-18T04:46:28.759250 +AZURE,australiasoutheast,Standard_E96ps_v6,reserved_3y,NA,2.18516,USD,Azure Retail Prices API,2025-12-18T04:46:28.759255 +AZURE,australiasoutheast,Standard_E96ps_v6,spot,NA,1.0626,USD,Azure Retail Prices API,2025-12-18T04:46:27.528671 +AZURE,australiasoutheast,Standard_E96s_v5,on_demand,NA,7.862,USD,Azure Retail Prices API,2025-12-18T04:46:27.528148 +AZURE,australiasoutheast,Standard_E96s_v5,reserved_1y,NA,4.638813,USD,Azure Retail Prices API,2025-12-18T04:46:28.758269 +AZURE,australiasoutheast,Standard_E96s_v5,reserved_3y,NA,2.909094,USD,Azure Retail Prices API,2025-12-18T04:46:28.758275 +AZURE,australiasoutheast,Standard_E96s_v5,spot,NA,1.452898,USD,Azure Retail Prices API,2025-12-18T04:46:27.528949 +AZURE,australiasoutheast,Standard_EC16ads_v6,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:46:27.529316 +AZURE,australiasoutheast,Standard_EC16ads_v6,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:46:28.760133 +AZURE,australiasoutheast,Standard_EC16ads_v6,reserved_3y,NA,0.574543,USD,Azure Retail Prices API,2025-12-18T04:46:28.760139 +AZURE,australiasoutheast,Standard_EC16ads_v6,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:46:27.528263 +AZURE,australiasoutheast,Standard_EC16as_v6,on_demand,NA,1.242,USD,Azure Retail Prices API,2025-12-18T04:46:27.528295 +AZURE,australiasoutheast,Standard_EC16as_v6,reserved_1y,NA,0.732534,USD,Azure Retail Prices API,2025-12-18T04:46:28.758511 +AZURE,australiasoutheast,Standard_EC16as_v6,reserved_3y,NA,0.471804,USD,Azure Retail Prices API,2025-12-18T04:46:28.758516 +AZURE,australiasoutheast,Standard_EC16as_v6,spot,NA,0.229522,USD,Azure Retail Prices API,2025-12-18T04:46:27.528677 +AZURE,australiasoutheast,Standard_EC2ads_v6,on_demand,NA,0.189,USD,Azure Retail Prices API,2025-12-18T04:46:27.528369 +AZURE,australiasoutheast,Standard_EC2ads_v6,reserved_1y,NA,0.11153,USD,Azure Retail Prices API,2025-12-18T04:46:28.758627 +AZURE,australiasoutheast,Standard_EC2ads_v6,reserved_3y,NA,0.071804,USD,Azure Retail Prices API,2025-12-18T04:46:28.758632 +AZURE,australiasoutheast,Standard_EC2ads_v6,spot,NA,0.034927,USD,Azure Retail Prices API,2025-12-18T04:46:27.528851 +AZURE,australiasoutheast,Standard_EC2as_v6,on_demand,NA,0.155,USD,Azure Retail Prices API,2025-12-18T04:46:27.529217 +AZURE,australiasoutheast,Standard_EC2as_v6,reserved_1y,NA,0.091553,USD,Azure Retail Prices API,2025-12-18T04:46:28.759986 +AZURE,australiasoutheast,Standard_EC2as_v6,reserved_3y,NA,0.05898,USD,Azure Retail Prices API,2025-12-18T04:46:28.759992 +AZURE,australiasoutheast,Standard_EC2as_v6,spot,NA,0.028644,USD,Azure Retail Prices API,2025-12-18T04:46:27.528628 +AZURE,australiasoutheast,Standard_EC32ads_v6,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:46:27.528381 +AZURE,australiasoutheast,Standard_EC32ads_v6,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:46:28.758648 +AZURE,australiasoutheast,Standard_EC32ads_v6,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:46:28.758653 +AZURE,australiasoutheast,Standard_EC32ads_v6,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:46:27.529322 +AZURE,australiasoutheast,Standard_EC32as_v6,on_demand,NA,2.483,USD,Azure Retail Prices API,2025-12-18T04:46:27.528221 +AZURE,australiasoutheast,Standard_EC32as_v6,reserved_1y,NA,1.465068,USD,Azure Retail Prices API,2025-12-18T04:46:28.758364 +AZURE,australiasoutheast,Standard_EC32as_v6,reserved_3y,NA,0.943607,USD,Azure Retail Prices API,2025-12-18T04:46:28.758369 +AZURE,australiasoutheast,Standard_EC32as_v6,spot,NA,0.458858,USD,Azure Retail Prices API,2025-12-18T04:46:27.528734 +AZURE,australiasoutheast,Standard_EC48ads_v6,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:46:27.528255 +AZURE,australiasoutheast,Standard_EC48ads_v6,reserved_1y,NA,2.676256,USD,Azure Retail Prices API,2025-12-18T04:46:28.758438 +AZURE,australiasoutheast,Standard_EC48ads_v6,reserved_3y,NA,1.723668,USD,Azure Retail Prices API,2025-12-18T04:46:28.758443 +AZURE,australiasoutheast,Standard_EC48ads_v6,spot,NA,0.838253,USD,Azure Retail Prices API,2025-12-18T04:46:27.528555 +AZURE,australiasoutheast,Standard_EC48as_v6,on_demand,NA,3.725,USD,Azure Retail Prices API,2025-12-18T04:46:27.528443 +AZURE,australiasoutheast,Standard_EC48as_v6,reserved_1y,NA,2.197603,USD,Azure Retail Prices API,2025-12-18T04:46:28.758741 +AZURE,australiasoutheast,Standard_EC48as_v6,reserved_3y,NA,1.415411,USD,Azure Retail Prices API,2025-12-18T04:46:28.758747 +AZURE,australiasoutheast,Standard_EC48as_v6,spot,NA,0.68838,USD,Azure Retail Prices API,2025-12-18T04:46:27.528815 +AZURE,australiasoutheast,Standard_EC4ads_v6,on_demand,NA,0.378,USD,Azure Retail Prices API,2025-12-18T04:46:27.529719 +AZURE,australiasoutheast,Standard_EC4ads_v6,reserved_1y,NA,0.223059,USD,Azure Retail Prices API,2025-12-18T04:46:28.760556 +AZURE,australiasoutheast,Standard_EC4ads_v6,reserved_3y,NA,0.143645,USD,Azure Retail Prices API,2025-12-18T04:46:28.760561 +AZURE,australiasoutheast,Standard_EC4ads_v6,spot,NA,0.069854,USD,Azure Retail Prices API,2025-12-18T04:46:27.529579 +AZURE,australiasoutheast,Standard_EC4as_v6,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:27.528710 +AZURE,australiasoutheast,Standard_EC4as_v6,reserved_1y,NA,0.183105,USD,Azure Retail Prices API,2025-12-18T04:46:28.759181 +AZURE,australiasoutheast,Standard_EC4as_v6,reserved_3y,NA,0.11796,USD,Azure Retail Prices API,2025-12-18T04:46:28.759187 +AZURE,australiasoutheast,Standard_EC4as_v6,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:27.528507 +AZURE,australiasoutheast,Standard_EC64ads_v6,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:46:27.528916 +AZURE,australiasoutheast,Standard_EC64ads_v6,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:46:28.759503 +AZURE,australiasoutheast,Standard_EC64ads_v6,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:46:28.759508 +AZURE,australiasoutheast,Standard_EC64ads_v6,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:46:27.529418 +AZURE,australiasoutheast,Standard_EC64as_v6,on_demand,NA,4.966,USD,Azure Retail Prices API,2025-12-18T04:46:27.529806 +AZURE,australiasoutheast,Standard_EC64as_v6,reserved_1y,NA,2.930137,USD,Azure Retail Prices API,2025-12-18T04:46:28.760637 +AZURE,australiasoutheast,Standard_EC64as_v6,reserved_3y,NA,1.887215,USD,Azure Retail Prices API,2025-12-18T04:46:28.760643 +AZURE,australiasoutheast,Standard_EC64as_v6,spot,NA,0.917717,USD,Azure Retail Prices API,2025-12-18T04:46:27.528652 +AZURE,australiasoutheast,Standard_EC8ads_v6,on_demand,NA,0.756,USD,Azure Retail Prices API,2025-12-18T04:46:27.528990 +AZURE,australiasoutheast,Standard_EC8ads_v6,reserved_1y,NA,0.446005,USD,Azure Retail Prices API,2025-12-18T04:46:28.759615 +AZURE,australiasoutheast,Standard_EC8ads_v6,reserved_3y,NA,0.287291,USD,Azure Retail Prices API,2025-12-18T04:46:28.759621 +AZURE,australiasoutheast,Standard_EC8ads_v6,spot,NA,0.139709,USD,Azure Retail Prices API,2025-12-18T04:46:27.528069 +AZURE,australiasoutheast,Standard_EC8as_v6,on_demand,NA,0.621,USD,Azure Retail Prices API,2025-12-18T04:46:27.528604 +AZURE,australiasoutheast,Standard_EC8as_v6,reserved_1y,NA,0.366324,USD,Azure Retail Prices API,2025-12-18T04:46:28.758999 +AZURE,australiasoutheast,Standard_EC8as_v6,reserved_3y,NA,0.235921,USD,Azure Retail Prices API,2025-12-18T04:46:28.759004 +AZURE,australiasoutheast,Standard_EC8as_v6,spot,NA,0.114761,USD,Azure Retail Prices API,2025-12-18T04:46:27.528423 +AZURE,australiasoutheast,Standard_EC96ads_v6,on_demand,NA,9.072,USD,Azure Retail Prices API,2025-12-18T04:46:27.529011 +AZURE,australiasoutheast,Standard_EC96ads_v6,reserved_1y,NA,5.352511,USD,Azure Retail Prices API,2025-12-18T04:46:28.759669 +AZURE,australiasoutheast,Standard_EC96ads_v6,reserved_3y,NA,3.447374,USD,Azure Retail Prices API,2025-12-18T04:46:28.759675 +AZURE,australiasoutheast,Standard_EC96ads_v6,spot,NA,1.676506,USD,Azure Retail Prices API,2025-12-18T04:46:27.528429 +AZURE,australiasoutheast,Standard_EC96as_v6,on_demand,NA,7.45,USD,Azure Retail Prices API,2025-12-18T04:46:27.529550 +AZURE,australiasoutheast,Standard_EC96as_v6,reserved_1y,NA,4.39532,USD,Azure Retail Prices API,2025-12-18T04:46:28.760442 +AZURE,australiasoutheast,Standard_EC96as_v6,reserved_3y,NA,2.83086,USD,Azure Retail Prices API,2025-12-18T04:46:28.760448 +AZURE,australiasoutheast,Standard_EC96as_v6,spot,NA,1.37676,USD,Azure Retail Prices API,2025-12-18T04:46:27.528151 +AZURE,australiasoutheast,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379658 +AZURE,australiasoutheast,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379668 +AZURE,australiasoutheast,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379672 +AZURE,australiasoutheast,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379664 +AZURE,australiasoutheast,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381966 +AZURE,australiasoutheast,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381975 +AZURE,australiasoutheast,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381979 +AZURE,australiasoutheast,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381971 +AZURE,australiasoutheast,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384707 +AZURE,australiasoutheast,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384715 +AZURE,australiasoutheast,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384719 +AZURE,australiasoutheast,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384711 +AZURE,australiasoutheast,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385550 +AZURE,australiasoutheast,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385559 +AZURE,australiasoutheast,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385563 +AZURE,australiasoutheast,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385554 +AZURE,australiasoutheast,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378135 +AZURE,australiasoutheast,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378143 +AZURE,australiasoutheast,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378147 +AZURE,australiasoutheast,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378139 +AZURE,australiasoutheast,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386291 +AZURE,australiasoutheast,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386299 +AZURE,australiasoutheast,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386306 +AZURE,australiasoutheast,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386295 +AZURE,australiasoutheast,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380424 +AZURE,australiasoutheast,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380432 +AZURE,australiasoutheast,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380436 +AZURE,australiasoutheast,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380428 +AZURE,australiasoutheast,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383041 +AZURE,australiasoutheast,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383051 +AZURE,australiasoutheast,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383055 +AZURE,australiasoutheast,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383046 +AZURE,australiasoutheast,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387058 +AZURE,australiasoutheast,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387090 +AZURE,australiasoutheast,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387094 +AZURE,australiasoutheast,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387085 +AZURE,australiasoutheast,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388273 +AZURE,australiasoutheast,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388284 +AZURE,australiasoutheast,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388288 +AZURE,australiasoutheast,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388279 +AZURE,australiasoutheast,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378864 +AZURE,australiasoutheast,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378875 +AZURE,australiasoutheast,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378881 +AZURE,australiasoutheast,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378869 +AZURE,australiasoutheast,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381163 +AZURE,australiasoutheast,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381171 +AZURE,australiasoutheast,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381175 +AZURE,australiasoutheast,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381167 +AZURE,australiasoutheast,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383889 +AZURE,australiasoutheast,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383897 +AZURE,australiasoutheast,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383902 +AZURE,australiasoutheast,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383893 +AZURE,australiasoutheast,Standard_L16as_v3,on_demand,NA,1.622,USD,Azure Retail Prices API,2025-12-18T04:46:27.529238 +AZURE,australiasoutheast,Standard_L16as_v3,reserved_1y,NA,1.038356,USD,Azure Retail Prices API,2025-12-18T04:46:28.760019 +AZURE,australiasoutheast,Standard_L16as_v3,reserved_3y,NA,0.681393,USD,Azure Retail Prices API,2025-12-18T04:46:28.760025 +AZURE,australiasoutheast,Standard_L16as_v3,spot,NA,0.299746,USD,Azure Retail Prices API,2025-12-18T04:46:27.528512 +AZURE,australiasoutheast,Standard_L16s_v3,on_demand,NA,1.815,USD,Azure Retail Prices API,2025-12-18T04:46:27.529374 +AZURE,australiasoutheast,Standard_L16s_v3,reserved_1y,NA,1.161416,USD,Azure Retail Prices API,2025-12-18T04:46:28.760212 +AZURE,australiasoutheast,Standard_L16s_v3,reserved_3y,NA,0.762215,USD,Azure Retail Prices API,2025-12-18T04:46:28.760217 +AZURE,australiasoutheast,Standard_L16s_v3,spot,NA,0.335412,USD,Azure Retail Prices API,2025-12-18T04:46:27.528207 +AZURE,australiasoutheast,Standard_L32as_v3,on_demand,NA,3.245,USD,Azure Retail Prices API,2025-12-18T04:46:27.528685 +AZURE,australiasoutheast,Standard_L32as_v3,reserved_1y,NA,2.076712,USD,Azure Retail Prices API,2025-12-18T04:46:28.759160 +AZURE,australiasoutheast,Standard_L32as_v3,reserved_3y,NA,1.362823,USD,Azure Retail Prices API,2025-12-18T04:46:28.759165 +AZURE,australiasoutheast,Standard_L32as_v3,spot,NA,0.599676,USD,Azure Retail Prices API,2025-12-18T04:46:27.529924 +AZURE,australiasoutheast,Standard_L32s_v3,on_demand,NA,3.63,USD,Azure Retail Prices API,2025-12-18T04:46:27.528420 +AZURE,australiasoutheast,Standard_L32s_v3,reserved_1y,NA,2.322945,USD,Azure Retail Prices API,2025-12-18T04:46:28.758709 +AZURE,australiasoutheast,Standard_L32s_v3,reserved_3y,NA,1.524429,USD,Azure Retail Prices API,2025-12-18T04:46:28.758714 +AZURE,australiasoutheast,Standard_L32s_v3,spot,NA,0.670824,USD,Azure Retail Prices API,2025-12-18T04:46:27.528075 +AZURE,australiasoutheast,Standard_L48as_v3,on_demand,NA,4.867,USD,Azure Retail Prices API,2025-12-18T04:46:27.528434 +AZURE,australiasoutheast,Standard_L48as_v3,reserved_1y,NA,3.114954,USD,Azure Retail Prices API,2025-12-18T04:46:28.758719 +AZURE,australiasoutheast,Standard_L48as_v3,reserved_3y,NA,2.044216,USD,Azure Retail Prices API,2025-12-18T04:46:28.758725 +AZURE,australiasoutheast,Standard_L48as_v3,spot,NA,0.899422,USD,Azure Retail Prices API,2025-12-18T04:46:27.529941 +AZURE,australiasoutheast,Standard_L48s_v3,on_demand,NA,5.444,USD,Azure Retail Prices API,2025-12-18T04:46:27.529600 +AZURE,australiasoutheast,Standard_L48s_v3,reserved_1y,NA,3.484361,USD,Azure Retail Prices API,2025-12-18T04:46:28.760476 +AZURE,australiasoutheast,Standard_L48s_v3,reserved_3y,NA,2.286644,USD,Azure Retail Prices API,2025-12-18T04:46:28.760481 +AZURE,australiasoutheast,Standard_L48s_v3,spot,NA,1.006051,USD,Azure Retail Prices API,2025-12-18T04:46:27.528696 +AZURE,australiasoutheast,Standard_L64as_v3,on_demand,NA,6.49,USD,Azure Retail Prices API,2025-12-18T04:46:27.529491 +AZURE,australiasoutheast,Standard_L64as_v3,reserved_1y,NA,4.153311,USD,Azure Retail Prices API,2025-12-18T04:46:28.760351 +AZURE,australiasoutheast,Standard_L64as_v3,reserved_3y,NA,2.725647,USD,Azure Retail Prices API,2025-12-18T04:46:28.760356 +AZURE,australiasoutheast,Standard_L64as_v3,spot,NA,1.199352,USD,Azure Retail Prices API,2025-12-18T04:46:27.529319 +AZURE,australiasoutheast,Standard_L64s_v3,on_demand,NA,7.259,USD,Azure Retail Prices API,2025-12-18T04:46:27.529811 +AZURE,australiasoutheast,Standard_L64s_v3,reserved_1y,NA,4.64589,USD,Azure Retail Prices API,2025-12-18T04:46:28.760661 +AZURE,australiasoutheast,Standard_L64s_v3,reserved_3y,NA,3.048858,USD,Azure Retail Prices API,2025-12-18T04:46:28.760667 +AZURE,australiasoutheast,Standard_L64s_v3,spot,NA,1.341463,USD,Azure Retail Prices API,2025-12-18T04:46:27.528659 +AZURE,australiasoutheast,Standard_L80as_v3,on_demand,NA,8.112,USD,Azure Retail Prices API,2025-12-18T04:46:27.529191 +AZURE,australiasoutheast,Standard_L80as_v3,reserved_1y,NA,5.191667,USD,Azure Retail Prices API,2025-12-18T04:46:28.759947 +AZURE,australiasoutheast,Standard_L80as_v3,reserved_3y,NA,3.40704,USD,Azure Retail Prices API,2025-12-18T04:46:28.759953 +AZURE,australiasoutheast,Standard_L80as_v3,spot,NA,1.499098,USD,Azure Retail Prices API,2025-12-18T04:46:27.528384 +AZURE,australiasoutheast,Standard_L80s_v3,on_demand,NA,9.074,USD,Azure Retail Prices API,2025-12-18T04:46:27.528702 +AZURE,australiasoutheast,Standard_L80s_v3,reserved_1y,NA,5.807306,USD,Azure Retail Prices API,2025-12-18T04:46:28.759171 +AZURE,australiasoutheast,Standard_L80s_v3,reserved_3y,NA,3.811073,USD,Azure Retail Prices API,2025-12-18T04:46:28.759176 +AZURE,australiasoutheast,Standard_L80s_v3,spot,NA,1.676875,USD,Azure Retail Prices API,2025-12-18T04:46:27.528234 +AZURE,australiasoutheast,Standard_L8as_v3,on_demand,NA,0.811,USD,Azure Retail Prices API,2025-12-18T04:46:27.528774 +AZURE,australiasoutheast,Standard_L8as_v3,reserved_1y,NA,0.519178,USD,Azure Retail Prices API,2025-12-18T04:46:28.759316 +AZURE,australiasoutheast,Standard_L8as_v3,reserved_3y,NA,0.340715,USD,Azure Retail Prices API,2025-12-18T04:46:28.759322 +AZURE,australiasoutheast,Standard_L8as_v3,spot,NA,0.149873,USD,Azure Retail Prices API,2025-12-18T04:46:27.529144 +AZURE,australiasoutheast,Standard_L8s_v3,on_demand,NA,0.907,USD,Azure Retail Prices API,2025-12-18T04:46:27.528157 +AZURE,australiasoutheast,Standard_L8s_v3,reserved_1y,NA,0.580708,USD,Azure Retail Prices API,2025-12-18T04:46:28.758290 +AZURE,australiasoutheast,Standard_L8s_v3,reserved_3y,NA,0.381126,USD,Azure Retail Prices API,2025-12-18T04:46:28.758295 +AZURE,australiasoutheast,Standard_L8s_v3,spot,NA,0.167614,USD,Azure Retail Prices API,2025-12-18T04:46:27.529846 +AZURE,brazilsouth,Standard_D128ds_v6,on_demand,NA,12.708,USD,Azure Retail Prices API,2025-12-18T04:46:56.081352 +AZURE,brazilsouth,Standard_D128ds_v6,reserved_1y,NA,7.878881,USD,Azure Retail Prices API,2025-12-18T04:46:57.522133 +AZURE,brazilsouth,Standard_D128ds_v6,reserved_3y,NA,4.95605,USD,Azure Retail Prices API,2025-12-18T04:46:57.522141 +AZURE,brazilsouth,Standard_D128ds_v6,spot,NA,2.348438,USD,Azure Retail Prices API,2025-12-18T04:46:56.081245 +AZURE,brazilsouth,Standard_D12_v2,on_demand,NA,0.46375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488715 +AZURE,brazilsouth,Standard_D12_v2,reserved_1y,NA,0.27825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488729 +AZURE,brazilsouth,Standard_D12_v2,reserved_3y,NA,0.1855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488733 +AZURE,brazilsouth,Standard_D12_v2,spot,NA,0.139125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488719 +AZURE,brazilsouth,Standard_D13_v2,on_demand,NA,0.92625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489536 +AZURE,brazilsouth,Standard_D13_v2,reserved_1y,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489544 +AZURE,brazilsouth,Standard_D13_v2,reserved_3y,NA,0.3705,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489548 +AZURE,brazilsouth,Standard_D13_v2,spot,NA,0.277875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489540 +AZURE,brazilsouth,Standard_D14_v2,on_demand,NA,1.8525,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490585 +AZURE,brazilsouth,Standard_D14_v2,reserved_1y,NA,1.1115,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490593 +AZURE,brazilsouth,Standard_D14_v2,reserved_3y,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490597 +AZURE,brazilsouth,Standard_D14_v2,spot,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490589 +AZURE,brazilsouth,Standard_D15_v2,on_demand,NA,2.31625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491335 +AZURE,brazilsouth,Standard_D15_v2,reserved_1y,NA,1.38975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491343 +AZURE,brazilsouth,Standard_D15_v2,reserved_3y,NA,0.9265,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491347 +AZURE,brazilsouth,Standard_D15_v2,spot,NA,0.694875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491339 +AZURE,brazilsouth,Standard_D16_v3,on_demand,NA,1.272,USD,Azure Retail Prices API,2025-12-18T04:46:56.081587 +AZURE,brazilsouth,Standard_D16_v3,reserved_1y,NA,0.674201,USD,Azure Retail Prices API,2025-12-18T04:46:57.522621 +AZURE,brazilsouth,Standard_D16_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:57.522627 +AZURE,brazilsouth,Standard_D16_v3,spot,NA,0.235066,USD,Azure Retail Prices API,2025-12-18T04:46:56.081777 +AZURE,brazilsouth,Standard_D16a_v4,on_demand,NA,1.224,USD,Azure Retail Prices API,2025-12-18T04:46:56.082002 +AZURE,brazilsouth,Standard_D16a_v4,reserved_1y,NA,0.673174,USD,Azure Retail Prices API,2025-12-18T04:46:57.523377 +AZURE,brazilsouth,Standard_D16a_v4,reserved_3y,NA,0.460236,USD,Azure Retail Prices API,2025-12-18T04:46:57.523381 +AZURE,brazilsouth,Standard_D16a_v4,spot,NA,0.22693,USD,Azure Retail Prices API,2025-12-18T04:46:56.082090 +AZURE,brazilsouth,Standard_D16ads_v5,on_demand,NA,1.32,USD,Azure Retail Prices API,2025-12-18T04:46:56.080636 +AZURE,brazilsouth,Standard_D16ads_v5,reserved_1y,NA,0.778767,USD,Azure Retail Prices API,2025-12-18T04:46:57.520960 +AZURE,brazilsouth,Standard_D16ads_v5,reserved_3y,NA,0.501598,USD,Azure Retail Prices API,2025-12-18T04:46:57.520965 +AZURE,brazilsouth,Standard_D16ads_v5,spot,NA,0.244728,USD,Azure Retail Prices API,2025-12-18T04:46:56.081728 +AZURE,brazilsouth,Standard_D16ads_v6,on_demand,NA,1.464,USD,Azure Retail Prices API,2025-12-18T04:46:56.081011 +AZURE,brazilsouth,Standard_D16ads_v6,reserved_1y,NA,0.863813,USD,Azure Retail Prices API,2025-12-18T04:46:57.521591 +AZURE,brazilsouth,Standard_D16ads_v6,reserved_3y,NA,0.556317,USD,Azure Retail Prices API,2025-12-18T04:46:57.521596 +AZURE,brazilsouth,Standard_D16ads_v6,spot,NA,0.270547,USD,Azure Retail Prices API,2025-12-18T04:46:56.081977 +AZURE,brazilsouth,Standard_D16as_v4,on_demand,NA,1.224,USD,Azure Retail Prices API,2025-12-18T04:46:56.080614 +AZURE,brazilsouth,Standard_D16as_v4,reserved_1y,NA,0.673174,USD,Azure Retail Prices API,2025-12-18T04:46:57.520931 +AZURE,brazilsouth,Standard_D16as_v4,reserved_3y,NA,0.460236,USD,Azure Retail Prices API,2025-12-18T04:46:57.520936 +AZURE,brazilsouth,Standard_D16as_v4,spot,NA,0.22693,USD,Azure Retail Prices API,2025-12-18T04:46:56.081367 +AZURE,brazilsouth,Standard_D16as_v5,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:46:56.080882 +AZURE,brazilsouth,Standard_D16as_v5,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:46:57.522963 +AZURE,brazilsouth,Standard_D16as_v5,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:46:57.522968 +AZURE,brazilsouth,Standard_D16as_v5,spot,NA,0.204682,USD,Azure Retail Prices API,2025-12-18T04:46:56.080997 +AZURE,brazilsouth,Standard_D16d_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:46:56.081516 +AZURE,brazilsouth,Standard_D16d_v4,reserved_1y,NA,0.814384,USD,Azure Retail Prices API,2025-12-18T04:46:57.522497 +AZURE,brazilsouth,Standard_D16d_v4,reserved_3y,NA,0.541438,USD,Azure Retail Prices API,2025-12-18T04:46:57.522502 +AZURE,brazilsouth,Standard_D16d_v4,spot,NA,0.27936,USD,Azure Retail Prices API,2025-12-18T04:46:56.082008 +AZURE,brazilsouth,Standard_D16ds_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:46:56.081969 +AZURE,brazilsouth,Standard_D16ds_v4,reserved_1y,NA,0.814384,USD,Azure Retail Prices API,2025-12-18T04:46:57.523309 +AZURE,brazilsouth,Standard_D16ds_v4,reserved_3y,NA,0.541438,USD,Azure Retail Prices API,2025-12-18T04:46:57.523315 +AZURE,brazilsouth,Standard_D16ds_v4,spot,NA,0.27936,USD,Azure Retail Prices API,2025-12-18T04:46:56.082010 +AZURE,brazilsouth,Standard_D16ds_v5,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:46:56.081296 +AZURE,brazilsouth,Standard_D16ds_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:46:57.522069 +AZURE,brazilsouth,Standard_D16ds_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:46:57.522074 +AZURE,brazilsouth,Standard_D16ds_v5,spot,NA,0.27936,USD,Azure Retail Prices API,2025-12-18T04:46:56.082051 +AZURE,brazilsouth,Standard_D16ds_v6,on_demand,NA,1.588,USD,Azure Retail Prices API,2025-12-18T04:46:56.081398 +AZURE,brazilsouth,Standard_D16ds_v6,reserved_1y,NA,0.984817,USD,Azure Retail Prices API,2025-12-18T04:46:57.522230 +AZURE,brazilsouth,Standard_D16ds_v6,reserved_3y,NA,0.619521,USD,Azure Retail Prices API,2025-12-18T04:46:57.522237 +AZURE,brazilsouth,Standard_D16ds_v6,spot,NA,0.293462,USD,Azure Retail Prices API,2025-12-18T04:46:56.080828 +AZURE,brazilsouth,Standard_D16pds_v6,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:46:56.080831 +AZURE,brazilsouth,Standard_D16pds_v6,reserved_1y,NA,0.689155,USD,Azure Retail Prices API,2025-12-18T04:46:57.521245 +AZURE,brazilsouth,Standard_D16pds_v6,reserved_3y,NA,0.443836,USD,Azure Retail Prices API,2025-12-18T04:46:57.521250 +AZURE,brazilsouth,Standard_D16pds_v6,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:46:56.081922 +AZURE,brazilsouth,Standard_D16ps_v6,on_demand,NA,0.893,USD,Azure Retail Prices API,2025-12-18T04:46:56.081537 +AZURE,brazilsouth,Standard_D16ps_v6,reserved_1y,NA,0.526712,USD,Azure Retail Prices API,2025-12-18T04:46:57.522549 +AZURE,brazilsouth,Standard_D16ps_v6,reserved_3y,NA,0.339269,USD,Azure Retail Prices API,2025-12-18T04:46:57.522554 +AZURE,brazilsouth,Standard_D16ps_v6,spot,NA,0.165026,USD,Azure Retail Prices API,2025-12-18T04:46:56.082057 +AZURE,brazilsouth,Standard_D16s_v3,on_demand,NA,1.272,USD,Azure Retail Prices API,2025-12-18T04:46:56.081646 +AZURE,brazilsouth,Standard_D16s_v3,reserved_1y,NA,0.674201,USD,Azure Retail Prices API,2025-12-18T04:46:57.522735 +AZURE,brazilsouth,Standard_D16s_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:57.522740 +AZURE,brazilsouth,Standard_D16s_v3,spot,NA,0.235066,USD,Azure Retail Prices API,2025-12-18T04:46:56.081251 +AZURE,brazilsouth,Standard_D16s_v4,on_demand,NA,1.224,USD,Azure Retail Prices API,2025-12-18T04:46:56.081999 +AZURE,brazilsouth,Standard_D16s_v4,reserved_1y,NA,0.674201,USD,Azure Retail Prices API,2025-12-18T04:46:57.523368 +AZURE,brazilsouth,Standard_D16s_v4,reserved_3y,NA,0.460236,USD,Azure Retail Prices API,2025-12-18T04:46:57.523372 +AZURE,brazilsouth,Standard_D16s_v4,spot,NA,0.237456,USD,Azure Retail Prices API,2025-12-18T04:46:56.081082 +AZURE,brazilsouth,Standard_D16s_v5,on_demand,NA,1.224,USD,Azure Retail Prices API,2025-12-18T04:46:56.081265 +AZURE,brazilsouth,Standard_D16s_v5,reserved_1y,NA,0.722146,USD,Azure Retail Prices API,2025-12-18T04:46:57.522014 +AZURE,brazilsouth,Standard_D16s_v5,reserved_3y,NA,0.452892,USD,Azure Retail Prices API,2025-12-18T04:46:57.522019 +AZURE,brazilsouth,Standard_D16s_v5,spot,NA,0.237456,USD,Azure Retail Prices API,2025-12-18T04:46:56.080692 +AZURE,brazilsouth,Standard_D2ads_v6,on_demand,NA,0.183,USD,Azure Retail Prices API,2025-12-18T04:46:56.081649 +AZURE,brazilsouth,Standard_D2ads_v6,reserved_1y,NA,0.107991,USD,Azure Retail Prices API,2025-12-18T04:46:57.522745 +AZURE,brazilsouth,Standard_D2ads_v6,reserved_3y,NA,0.069559,USD,Azure Retail Prices API,2025-12-18T04:46:57.522751 +AZURE,brazilsouth,Standard_D2ads_v6,spot,NA,0.033818,USD,Azure Retail Prices API,2025-12-18T04:46:56.081480 +AZURE,brazilsouth,Standard_D2ds_v6,on_demand,NA,0.199,USD,Azure Retail Prices API,2025-12-18T04:46:56.081103 +AZURE,brazilsouth,Standard_D2ds_v6,reserved_1y,NA,0.123059,USD,Azure Retail Prices API,2025-12-18T04:46:57.521758 +AZURE,brazilsouth,Standard_D2ds_v6,reserved_3y,NA,0.077435,USD,Azure Retail Prices API,2025-12-18T04:46:57.521763 +AZURE,brazilsouth,Standard_D2ds_v6,spot,NA,0.036775,USD,Azure Retail Prices API,2025-12-18T04:46:56.080986 +AZURE,brazilsouth,Standard_D32_v3,on_demand,NA,2.544,USD,Azure Retail Prices API,2025-12-18T04:46:56.082014 +AZURE,brazilsouth,Standard_D32_v3,reserved_1y,NA,1.348402,USD,Azure Retail Prices API,2025-12-18T04:46:57.523386 +AZURE,brazilsouth,Standard_D32_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:57.523391 +AZURE,brazilsouth,Standard_D32_v3,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:56.081369 +AZURE,brazilsouth,Standard_D32a_v4,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:46:56.081307 +AZURE,brazilsouth,Standard_D32a_v4,reserved_1y,NA,1.346347,USD,Azure Retail Prices API,2025-12-18T04:46:57.522079 +AZURE,brazilsouth,Standard_D32a_v4,reserved_3y,NA,0.920434,USD,Azure Retail Prices API,2025-12-18T04:46:57.522085 +AZURE,brazilsouth,Standard_D32a_v4,spot,NA,0.453859,USD,Azure Retail Prices API,2025-12-18T04:46:56.081881 +AZURE,brazilsouth,Standard_D32ads_v5,on_demand,NA,4.112,USD,Azure Retail Prices API,2025-12-18T04:46:56.080672 +AZURE,brazilsouth,Standard_D32ads_v5,reserved_1y,NA,1.557648,USD,Azure Retail Prices API,2025-12-18T04:46:57.522003 +AZURE,brazilsouth,Standard_D32ads_v5,reserved_3y,NA,1.003196,USD,Azure Retail Prices API,2025-12-18T04:46:57.522009 +AZURE,brazilsouth,Standard_D32ads_v5,spot,NA,0.489456,USD,Azure Retail Prices API,2025-12-18T04:46:56.081411 +AZURE,brazilsouth,Standard_D32ads_v6,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:56.081866 +AZURE,brazilsouth,Standard_D32ads_v6,reserved_1y,NA,1.727511,USD,Azure Retail Prices API,2025-12-18T04:46:57.523175 +AZURE,brazilsouth,Standard_D32ads_v6,reserved_3y,NA,1.112633,USD,Azure Retail Prices API,2025-12-18T04:46:57.523180 +AZURE,brazilsouth,Standard_D32ads_v6,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:56.080648 +AZURE,brazilsouth,Standard_D32as_v4,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:46:56.080725 +AZURE,brazilsouth,Standard_D32as_v4,reserved_1y,NA,1.346347,USD,Azure Retail Prices API,2025-12-18T04:46:57.521059 +AZURE,brazilsouth,Standard_D32as_v4,reserved_3y,NA,0.920434,USD,Azure Retail Prices API,2025-12-18T04:46:57.521064 +AZURE,brazilsouth,Standard_D32as_v4,spot,NA,0.453859,USD,Azure Retail Prices API,2025-12-18T04:46:56.080758 +AZURE,brazilsouth,Standard_D32as_v5,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:46:56.080901 +AZURE,brazilsouth,Standard_D32as_v5,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:46:57.522916 +AZURE,brazilsouth,Standard_D32as_v5,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:46:57.522920 +AZURE,brazilsouth,Standard_D32as_v5,spot,NA,0.409363,USD,Azure Retail Prices API,2025-12-18T04:46:56.081687 +AZURE,brazilsouth,Standard_D32d_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:56.080701 +AZURE,brazilsouth,Standard_D32d_v4,reserved_1y,NA,1.628767,USD,Azure Retail Prices API,2025-12-18T04:46:57.521039 +AZURE,brazilsouth,Standard_D32d_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:57.521044 +AZURE,brazilsouth,Standard_D32d_v4,spot,NA,0.55872,USD,Azure Retail Prices API,2025-12-18T04:46:56.080746 +AZURE,brazilsouth,Standard_D32ds_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:56.081215 +AZURE,brazilsouth,Standard_D32ds_v4,reserved_1y,NA,1.628767,USD,Azure Retail Prices API,2025-12-18T04:46:57.521910 +AZURE,brazilsouth,Standard_D32ds_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:57.521915 +AZURE,brazilsouth,Standard_D32ds_v4,spot,NA,0.55872,USD,Azure Retail Prices API,2025-12-18T04:46:56.080972 +AZURE,brazilsouth,Standard_D32ds_v5,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:56.081271 +AZURE,brazilsouth,Standard_D32ds_v5,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:57.522025 +AZURE,brazilsouth,Standard_D32ds_v5,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:57.522031 +AZURE,brazilsouth,Standard_D32ds_v5,spot,NA,0.55872,USD,Azure Retail Prices API,2025-12-18T04:46:56.081191 +AZURE,brazilsouth,Standard_D32ds_v6,on_demand,NA,3.177,USD,Azure Retail Prices API,2025-12-18T04:46:56.080907 +AZURE,brazilsouth,Standard_D32ds_v6,reserved_1y,NA,1.969749,USD,Azure Retail Prices API,2025-12-18T04:46:57.521401 +AZURE,brazilsouth,Standard_D32ds_v6,reserved_3y,NA,1.239003,USD,Azure Retail Prices API,2025-12-18T04:46:57.521408 +AZURE,brazilsouth,Standard_D32ds_v6,spot,NA,0.58711,USD,Azure Retail Prices API,2025-12-18T04:46:56.080806 +AZURE,brazilsouth,Standard_D32pds_v6,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:46:56.081581 +AZURE,brazilsouth,Standard_D32pds_v6,reserved_1y,NA,1.378196,USD,Azure Retail Prices API,2025-12-18T04:46:57.522611 +AZURE,brazilsouth,Standard_D32pds_v6,reserved_3y,NA,0.887671,USD,Azure Retail Prices API,2025-12-18T04:46:57.522616 +AZURE,brazilsouth,Standard_D32pds_v6,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:46:56.081248 +AZURE,brazilsouth,Standard_D32ps_v6,on_demand,NA,1.786,USD,Azure Retail Prices API,2025-12-18T04:46:56.080743 +AZURE,brazilsouth,Standard_D32ps_v6,reserved_1y,NA,1.053539,USD,Azure Retail Prices API,2025-12-18T04:46:57.521108 +AZURE,brazilsouth,Standard_D32ps_v6,reserved_3y,NA,0.678539,USD,Azure Retail Prices API,2025-12-18T04:46:57.521128 +AZURE,brazilsouth,Standard_D32ps_v6,spot,NA,0.330053,USD,Azure Retail Prices API,2025-12-18T04:46:56.081508 +AZURE,brazilsouth,Standard_D32s_v3,on_demand,NA,2.544,USD,Azure Retail Prices API,2025-12-18T04:46:56.081825 +AZURE,brazilsouth,Standard_D32s_v3,reserved_1y,NA,1.348402,USD,Azure Retail Prices API,2025-12-18T04:46:57.523114 +AZURE,brazilsouth,Standard_D32s_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:57.523118 +AZURE,brazilsouth,Standard_D32s_v3,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:56.082076 +AZURE,brazilsouth,Standard_D32s_v4,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:46:56.082048 +AZURE,brazilsouth,Standard_D32s_v4,reserved_1y,NA,1.348516,USD,Azure Retail Prices API,2025-12-18T04:46:57.523454 +AZURE,brazilsouth,Standard_D32s_v4,reserved_3y,NA,0.920434,USD,Azure Retail Prices API,2025-12-18T04:46:57.523458 +AZURE,brazilsouth,Standard_D32s_v4,spot,NA,0.474912,USD,Azure Retail Prices API,2025-12-18T04:46:56.081005 +AZURE,brazilsouth,Standard_D32s_v5,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:46:56.081494 +AZURE,brazilsouth,Standard_D32s_v5,reserved_1y,NA,1.444292,USD,Azure Retail Prices API,2025-12-18T04:46:57.522453 +AZURE,brazilsouth,Standard_D32s_v5,reserved_3y,NA,0.905746,USD,Azure Retail Prices API,2025-12-18T04:46:57.522458 +AZURE,brazilsouth,Standard_D32s_v5,spot,NA,0.474912,USD,Azure Retail Prices API,2025-12-18T04:46:56.081765 +AZURE,brazilsouth,Standard_D3_v2,on_demand,NA,0.36625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485830 +AZURE,brazilsouth,Standard_D3_v2,reserved_1y,NA,0.21975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485844 +AZURE,brazilsouth,Standard_D3_v2,reserved_3y,NA,0.1465,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485848 +AZURE,brazilsouth,Standard_D3_v2,spot,NA,0.109875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485840 +AZURE,brazilsouth,Standard_D48a_v4,on_demand,NA,3.672,USD,Azure Retail Prices API,2025-12-18T04:46:56.081710 +AZURE,brazilsouth,Standard_D48a_v4,reserved_1y,NA,2.019635,USD,Azure Retail Prices API,2025-12-18T04:46:57.522877 +AZURE,brazilsouth,Standard_D48a_v4,reserved_3y,NA,1.38067,USD,Azure Retail Prices API,2025-12-18T04:46:57.522883 +AZURE,brazilsouth,Standard_D48a_v4,spot,NA,0.680789,USD,Azure Retail Prices API,2025-12-18T04:46:56.081634 +AZURE,brazilsouth,Standard_D48ads_v5,on_demand,NA,6.168,USD,Azure Retail Prices API,2025-12-18T04:46:56.081033 +AZURE,brazilsouth,Standard_D48ads_v5,reserved_1y,NA,2.336416,USD,Azure Retail Prices API,2025-12-18T04:46:57.522518 +AZURE,brazilsouth,Standard_D48ads_v5,reserved_3y,NA,1.504795,USD,Azure Retail Prices API,2025-12-18T04:46:57.522523 +AZURE,brazilsouth,Standard_D48ads_v5,spot,NA,0.734184,USD,Azure Retail Prices API,2025-12-18T04:46:56.080625 +AZURE,brazilsouth,Standard_D48ads_v6,on_demand,NA,4.392,USD,Azure Retail Prices API,2025-12-18T04:46:56.081666 +AZURE,brazilsouth,Standard_D48ads_v6,reserved_1y,NA,2.591324,USD,Azure Retail Prices API,2025-12-18T04:46:57.522795 +AZURE,brazilsouth,Standard_D48ads_v6,reserved_3y,NA,1.66895,USD,Azure Retail Prices API,2025-12-18T04:46:57.522800 +AZURE,brazilsouth,Standard_D48ads_v6,spot,NA,0.811642,USD,Azure Retail Prices API,2025-12-18T04:46:56.081290 +AZURE,brazilsouth,Standard_D48as_v4,on_demand,NA,3.672,USD,Azure Retail Prices API,2025-12-18T04:46:56.081447 +AZURE,brazilsouth,Standard_D48as_v4,reserved_1y,NA,2.019635,USD,Azure Retail Prices API,2025-12-18T04:46:57.522348 +AZURE,brazilsouth,Standard_D48as_v4,reserved_3y,NA,1.38067,USD,Azure Retail Prices API,2025-12-18T04:46:57.522355 +AZURE,brazilsouth,Standard_D48as_v4,spot,NA,0.680789,USD,Azure Retail Prices API,2025-12-18T04:46:56.081849 +AZURE,brazilsouth,Standard_D48as_v5,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:46:56.080534 +AZURE,brazilsouth,Standard_D48as_v5,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:46:57.521010 +AZURE,brazilsouth,Standard_D48as_v5,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:46:57.521015 +AZURE,brazilsouth,Standard_D48as_v5,spot,NA,0.614045,USD,Azure Retail Prices API,2025-12-18T04:46:56.080839 +AZURE,brazilsouth,Standard_D48d_v4,on_demand,NA,4.32,USD,Azure Retail Prices API,2025-12-18T04:46:56.081972 +AZURE,brazilsouth,Standard_D48d_v4,reserved_1y,NA,2.443151,USD,Azure Retail Prices API,2025-12-18T04:46:57.523320 +AZURE,brazilsouth,Standard_D48d_v4,reserved_3y,NA,1.624315,USD,Azure Retail Prices API,2025-12-18T04:46:57.523324 +AZURE,brazilsouth,Standard_D48d_v4,spot,NA,0.83808,USD,Azure Retail Prices API,2025-12-18T04:46:56.081525 +AZURE,brazilsouth,Standard_D48ds_v4,on_demand,NA,4.32,USD,Azure Retail Prices API,2025-12-18T04:46:56.081025 +AZURE,brazilsouth,Standard_D48ds_v4,reserved_1y,NA,2.443151,USD,Azure Retail Prices API,2025-12-18T04:46:57.521610 +AZURE,brazilsouth,Standard_D48ds_v4,reserved_3y,NA,1.624315,USD,Azure Retail Prices API,2025-12-18T04:46:57.521615 +AZURE,brazilsouth,Standard_D48ds_v4,spot,NA,0.83808,USD,Azure Retail Prices API,2025-12-18T04:46:56.080522 +AZURE,brazilsouth,Standard_D48ds_v5,on_demand,NA,4.32,USD,Azure Retail Prices API,2025-12-18T04:46:56.080494 +AZURE,brazilsouth,Standard_D48ds_v5,reserved_1y,NA,2.548744,USD,Azure Retail Prices API,2025-12-18T04:46:57.520736 +AZURE,brazilsouth,Standard_D48ds_v5,reserved_3y,NA,1.641591,USD,Azure Retail Prices API,2025-12-18T04:46:57.520741 +AZURE,brazilsouth,Standard_D48ds_v5,spot,NA,0.83808,USD,Azure Retail Prices API,2025-12-18T04:46:56.081955 +AZURE,brazilsouth,Standard_D48ds_v6,on_demand,NA,4.765,USD,Azure Retail Prices API,2025-12-18T04:46:56.081914 +AZURE,brazilsouth,Standard_D48ds_v6,reserved_1y,NA,2.954566,USD,Azure Retail Prices API,2025-12-18T04:46:57.523223 +AZURE,brazilsouth,Standard_D48ds_v6,reserved_3y,NA,1.858524,USD,Azure Retail Prices API,2025-12-18T04:46:57.523228 +AZURE,brazilsouth,Standard_D48ds_v6,spot,NA,0.880572,USD,Azure Retail Prices API,2025-12-18T04:46:56.080611 +AZURE,brazilsouth,Standard_D48pds_v6,on_demand,NA,3.504,USD,Azure Retail Prices API,2025-12-18T04:46:56.081663 +AZURE,brazilsouth,Standard_D48pds_v6,reserved_1y,NA,2.067352,USD,Azure Retail Prices API,2025-12-18T04:46:57.522786 +AZURE,brazilsouth,Standard_D48pds_v6,reserved_3y,NA,1.331507,USD,Azure Retail Prices API,2025-12-18T04:46:57.522790 +AZURE,brazilsouth,Standard_D48pds_v6,spot,NA,0.647539,USD,Azure Retail Prices API,2025-12-18T04:46:56.081206 +AZURE,brazilsouth,Standard_D48ps_v6,on_demand,NA,2.678,USD,Azure Retail Prices API,2025-12-18T04:46:56.081800 +AZURE,brazilsouth,Standard_D48ps_v6,reserved_1y,NA,1.580251,USD,Azure Retail Prices API,2025-12-18T04:46:57.523039 +AZURE,brazilsouth,Standard_D48ps_v6,reserved_3y,NA,1.017808,USD,Azure Retail Prices API,2025-12-18T04:46:57.523043 +AZURE,brazilsouth,Standard_D48ps_v6,spot,NA,0.494894,USD,Azure Retail Prices API,2025-12-18T04:46:56.080568 +AZURE,brazilsouth,Standard_D48s_v4,on_demand,NA,3.672,USD,Azure Retail Prices API,2025-12-18T04:46:56.081907 +AZURE,brazilsouth,Standard_D48s_v4,reserved_1y,NA,2.022717,USD,Azure Retail Prices API,2025-12-18T04:46:57.523204 +AZURE,brazilsouth,Standard_D48s_v4,reserved_3y,NA,1.38067,USD,Azure Retail Prices API,2025-12-18T04:46:57.523209 +AZURE,brazilsouth,Standard_D48s_v4,spot,NA,0.712368,USD,Azure Retail Prices API,2025-12-18T04:46:56.081522 +AZURE,brazilsouth,Standard_D48s_v5,on_demand,NA,3.672,USD,Azure Retail Prices API,2025-12-18T04:46:56.081019 +AZURE,brazilsouth,Standard_D48s_v5,reserved_1y,NA,2.166438,USD,Azure Retail Prices API,2025-12-18T04:46:57.521600 +AZURE,brazilsouth,Standard_D48s_v5,reserved_3y,NA,1.358638,USD,Azure Retail Prices API,2025-12-18T04:46:57.521605 +AZURE,brazilsouth,Standard_D48s_v5,spot,NA,0.712368,USD,Azure Retail Prices API,2025-12-18T04:46:56.081310 +AZURE,brazilsouth,Standard_D4_v2,on_demand,NA,0.73125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486703 +AZURE,brazilsouth,Standard_D4_v2,reserved_1y,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486715 +AZURE,brazilsouth,Standard_D4_v2,reserved_3y,NA,0.2925,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486722 +AZURE,brazilsouth,Standard_D4_v2,spot,NA,0.219375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486709 +AZURE,brazilsouth,Standard_D4a_v4,on_demand,NA,0.306,USD,Azure Retail Prices API,2025-12-18T04:46:56.080586 +AZURE,brazilsouth,Standard_D4a_v4,reserved_1y,NA,0.168265,USD,Azure Retail Prices API,2025-12-18T04:46:57.520884 +AZURE,brazilsouth,Standard_D4a_v4,reserved_3y,NA,0.115068,USD,Azure Retail Prices API,2025-12-18T04:46:57.520888 +AZURE,brazilsouth,Standard_D4a_v4,spot,NA,0.056732,USD,Azure Retail Prices API,2025-12-18T04:46:56.080885 +AZURE,brazilsouth,Standard_D4ads_v5,on_demand,NA,0.514,USD,Azure Retail Prices API,2025-12-18T04:46:56.080718 +AZURE,brazilsouth,Standard_D4ads_v5,reserved_1y,NA,0.194749,USD,Azure Retail Prices API,2025-12-18T04:46:57.521549 +AZURE,brazilsouth,Standard_D4ads_v5,reserved_3y,NA,0.125419,USD,Azure Retail Prices API,2025-12-18T04:46:57.521554 +AZURE,brazilsouth,Standard_D4ads_v5,spot,NA,0.061182,USD,Azure Retail Prices API,2025-12-18T04:46:56.081062 +AZURE,brazilsouth,Standard_D4ads_v6,on_demand,NA,0.366,USD,Azure Retail Prices API,2025-12-18T04:46:56.081100 +AZURE,brazilsouth,Standard_D4ads_v6,reserved_1y,NA,0.215982,USD,Azure Retail Prices API,2025-12-18T04:46:57.521748 +AZURE,brazilsouth,Standard_D4ads_v6,reserved_3y,NA,0.139079,USD,Azure Retail Prices API,2025-12-18T04:46:57.521753 +AZURE,brazilsouth,Standard_D4ads_v6,spot,NA,0.067637,USD,Azure Retail Prices API,2025-12-18T04:46:56.081878 +AZURE,brazilsouth,Standard_D4as_v5,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:46:56.080617 +AZURE,brazilsouth,Standard_D4as_v5,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:46:57.521920 +AZURE,brazilsouth,Standard_D4as_v5,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:46:57.521925 +AZURE,brazilsouth,Standard_D4as_v5,spot,NA,0.05117,USD,Azure Retail Prices API,2025-12-18T04:46:56.081904 +AZURE,brazilsouth,Standard_D4d_v4,on_demand,NA,0.36,USD,Azure Retail Prices API,2025-12-18T04:46:56.081988 +AZURE,brazilsouth,Standard_D4d_v4,reserved_1y,NA,0.203539,USD,Azure Retail Prices API,2025-12-18T04:46:57.523348 +AZURE,brazilsouth,Standard_D4d_v4,reserved_3y,NA,0.13535,USD,Azure Retail Prices API,2025-12-18T04:46:57.523353 +AZURE,brazilsouth,Standard_D4d_v4,spot,NA,0.06984,USD,Azure Retail Prices API,2025-12-18T04:46:56.081457 +AZURE,brazilsouth,Standard_D4ds_v4,on_demand,NA,0.36,USD,Azure Retail Prices API,2025-12-18T04:46:56.081514 +AZURE,brazilsouth,Standard_D4ds_v4,reserved_1y,NA,0.203539,USD,Azure Retail Prices API,2025-12-18T04:46:57.522486 +AZURE,brazilsouth,Standard_D4ds_v4,reserved_3y,NA,0.13535,USD,Azure Retail Prices API,2025-12-18T04:46:57.522491 +AZURE,brazilsouth,Standard_D4ds_v4,spot,NA,0.06984,USD,Azure Retail Prices API,2025-12-18T04:46:56.082087 +AZURE,brazilsouth,Standard_D4ds_v5,on_demand,NA,0.36,USD,Azure Retail Prices API,2025-12-18T04:46:56.080542 +AZURE,brazilsouth,Standard_D4ds_v5,reserved_1y,NA,0.212443,USD,Azure Retail Prices API,2025-12-18T04:46:57.520824 +AZURE,brazilsouth,Standard_D4ds_v5,reserved_3y,NA,0.136796,USD,Azure Retail Prices API,2025-12-18T04:46:57.520829 +AZURE,brazilsouth,Standard_D4ds_v5,spot,NA,0.06984,USD,Azure Retail Prices API,2025-12-18T04:46:56.080608 +AZURE,brazilsouth,Standard_D4ds_v6,on_demand,NA,0.397,USD,Azure Retail Prices API,2025-12-18T04:46:56.081742 +AZURE,brazilsouth,Standard_D4ds_v6,reserved_1y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:46:57.522944 +AZURE,brazilsouth,Standard_D4ds_v6,reserved_3y,NA,0.154871,USD,Azure Retail Prices API,2025-12-18T04:46:57.522949 +AZURE,brazilsouth,Standard_D4ds_v6,spot,NA,0.073366,USD,Azure Retail Prices API,2025-12-18T04:46:56.081430 +AZURE,brazilsouth,Standard_D4pds_v6,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:56.081677 +AZURE,brazilsouth,Standard_D4pds_v6,reserved_1y,NA,0.17226,USD,Azure Retail Prices API,2025-12-18T04:46:57.522816 +AZURE,brazilsouth,Standard_D4pds_v6,reserved_3y,NA,0.110959,USD,Azure Retail Prices API,2025-12-18T04:46:57.522821 +AZURE,brazilsouth,Standard_D4pds_v6,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:46:56.081320 +AZURE,brazilsouth,Standard_D4ps_v6,on_demand,NA,0.223,USD,Azure Retail Prices API,2025-12-18T04:46:56.080580 +AZURE,brazilsouth,Standard_D4ps_v6,reserved_1y,NA,0.131735,USD,Azure Retail Prices API,2025-12-18T04:46:57.520874 +AZURE,brazilsouth,Standard_D4ps_v6,reserved_3y,NA,0.084817,USD,Azure Retail Prices API,2025-12-18T04:46:57.520879 +AZURE,brazilsouth,Standard_D4ps_v6,spot,NA,0.04121,USD,Azure Retail Prices API,2025-12-18T04:46:56.080857 +AZURE,brazilsouth,Standard_D4s_v3,on_demand,NA,0.318,USD,Azure Retail Prices API,2025-12-18T04:46:56.080589 +AZURE,brazilsouth,Standard_D4s_v3,reserved_1y,NA,0.168607,USD,Azure Retail Prices API,2025-12-18T04:46:57.520893 +AZURE,brazilsouth,Standard_D4s_v3,reserved_3y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:46:57.520898 +AZURE,brazilsouth,Standard_D4s_v3,spot,NA,0.058766,USD,Azure Retail Prices API,2025-12-18T04:46:56.081156 +AZURE,brazilsouth,Standard_D4s_v4,on_demand,NA,0.306,USD,Azure Retail Prices API,2025-12-18T04:46:56.080910 +AZURE,brazilsouth,Standard_D4s_v4,reserved_1y,NA,0.168607,USD,Azure Retail Prices API,2025-12-18T04:46:57.521413 +AZURE,brazilsouth,Standard_D4s_v4,reserved_3y,NA,0.115068,USD,Azure Retail Prices API,2025-12-18T04:46:57.521419 +AZURE,brazilsouth,Standard_D4s_v4,spot,NA,0.059364,USD,Azure Retail Prices API,2025-12-18T04:46:56.080952 +AZURE,brazilsouth,Standard_D4s_v5,on_demand,NA,0.306,USD,Azure Retail Prices API,2025-12-18T04:46:56.081141 +AZURE,brazilsouth,Standard_D4s_v5,reserved_1y,NA,0.180594,USD,Azure Retail Prices API,2025-12-18T04:46:57.521809 +AZURE,brazilsouth,Standard_D4s_v5,reserved_3y,NA,0.113204,USD,Azure Retail Prices API,2025-12-18T04:46:57.521814 +AZURE,brazilsouth,Standard_D4s_v5,spot,NA,0.059364,USD,Azure Retail Prices API,2025-12-18T04:46:56.081036 +AZURE,brazilsouth,Standard_D5_v2,on_demand,NA,1.4625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487938 +AZURE,brazilsouth,Standard_D5_v2,reserved_1y,NA,0.8775,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487952 +AZURE,brazilsouth,Standard_D5_v2,reserved_3y,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487959 +AZURE,brazilsouth,Standard_D5_v2,spot,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487945 +AZURE,brazilsouth,Standard_D64_v3,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:56.081540 +AZURE,brazilsouth,Standard_D64_v3,reserved_1y,NA,2.696804,USD,Azure Retail Prices API,2025-12-18T04:46:57.522558 +AZURE,brazilsouth,Standard_D64_v3,reserved_3y,NA,1.925114,USD,Azure Retail Prices API,2025-12-18T04:46:57.522564 +AZURE,brazilsouth,Standard_D64_v3,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:56.081159 +AZURE,brazilsouth,Standard_D64a_v4,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:46:56.081209 +AZURE,brazilsouth,Standard_D64a_v4,reserved_1y,NA,2.692808,USD,Azure Retail Prices API,2025-12-18T04:46:57.521900 +AZURE,brazilsouth,Standard_D64a_v4,reserved_3y,NA,1.840906,USD,Azure Retail Prices API,2025-12-18T04:46:57.521905 +AZURE,brazilsouth,Standard_D64a_v4,spot,NA,0.907718,USD,Azure Retail Prices API,2025-12-18T04:46:56.081779 +AZURE,brazilsouth,Standard_D64ads_v5,on_demand,NA,8.224,USD,Azure Retail Prices API,2025-12-18T04:46:56.080776 +AZURE,brazilsouth,Standard_D64ads_v5,reserved_1y,NA,3.115183,USD,Azure Retail Prices API,2025-12-18T04:46:57.521654 +AZURE,brazilsouth,Standard_D64ads_v5,reserved_3y,NA,2.006393,USD,Azure Retail Prices API,2025-12-18T04:46:57.521659 +AZURE,brazilsouth,Standard_D64ads_v5,spot,NA,0.978912,USD,Azure Retail Prices API,2025-12-18T04:46:56.081028 +AZURE,brazilsouth,Standard_D64ads_v6,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:46:56.081185 +AZURE,brazilsouth,Standard_D64ads_v6,reserved_1y,NA,3.455023,USD,Azure Retail Prices API,2025-12-18T04:46:57.521859 +AZURE,brazilsouth,Standard_D64ads_v6,reserved_3y,NA,2.225266,USD,Azure Retail Prices API,2025-12-18T04:46:57.521865 +AZURE,brazilsouth,Standard_D64ads_v6,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:46:56.081381 +AZURE,brazilsouth,Standard_D64as_v4,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:46:56.080782 +AZURE,brazilsouth,Standard_D64as_v4,reserved_1y,NA,2.692808,USD,Azure Retail Prices API,2025-12-18T04:46:57.521183 +AZURE,brazilsouth,Standard_D64as_v4,reserved_3y,NA,1.840906,USD,Azure Retail Prices API,2025-12-18T04:46:57.521188 +AZURE,brazilsouth,Standard_D64as_v4,spot,NA,0.907718,USD,Azure Retail Prices API,2025-12-18T04:46:56.080868 +AZURE,brazilsouth,Standard_D64as_v5,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:46:56.081774 +AZURE,brazilsouth,Standard_D64as_v5,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:46:57.523010 +AZURE,brazilsouth,Standard_D64as_v5,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:46:57.523015 +AZURE,brazilsouth,Standard_D64as_v5,spot,NA,0.818726,USD,Azure Retail Prices API,2025-12-18T04:46:56.081277 +AZURE,brazilsouth,Standard_D64d_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:56.081572 +AZURE,brazilsouth,Standard_D64d_v4,reserved_1y,NA,3.257534,USD,Azure Retail Prices API,2025-12-18T04:46:57.522580 +AZURE,brazilsouth,Standard_D64d_v4,reserved_3y,NA,2.165753,USD,Azure Retail Prices API,2025-12-18T04:46:57.522585 +AZURE,brazilsouth,Standard_D64d_v4,spot,NA,1.11744,USD,Azure Retail Prices API,2025-12-18T04:46:56.081068 +AZURE,brazilsouth,Standard_D64ds_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:56.081415 +AZURE,brazilsouth,Standard_D64ds_v4,reserved_1y,NA,3.257534,USD,Azure Retail Prices API,2025-12-18T04:46:57.522243 +AZURE,brazilsouth,Standard_D64ds_v4,reserved_3y,NA,2.165753,USD,Azure Retail Prices API,2025-12-18T04:46:57.522251 +AZURE,brazilsouth,Standard_D64ds_v4,spot,NA,1.11744,USD,Azure Retail Prices API,2025-12-18T04:46:56.081828 +AZURE,brazilsouth,Standard_D64ds_v5,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:56.080817 +AZURE,brazilsouth,Standard_D64ds_v5,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:57.521235 +AZURE,brazilsouth,Standard_D64ds_v5,reserved_3y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:57.521240 +AZURE,brazilsouth,Standard_D64ds_v5,spot,NA,1.11744,USD,Azure Retail Prices API,2025-12-18T04:46:56.081316 +AZURE,brazilsouth,Standard_D64ds_v6,on_demand,NA,6.354,USD,Azure Retail Prices API,2025-12-18T04:46:56.080689 +AZURE,brazilsouth,Standard_D64ds_v6,reserved_1y,NA,3.939384,USD,Azure Retail Prices API,2025-12-18T04:46:57.521020 +AZURE,brazilsouth,Standard_D64ds_v6,reserved_3y,NA,2.478044,USD,Azure Retail Prices API,2025-12-18T04:46:57.521024 +AZURE,brazilsouth,Standard_D64ds_v6,spot,NA,1.174219,USD,Azure Retail Prices API,2025-12-18T04:46:56.080707 +AZURE,brazilsouth,Standard_D64pds_v6,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:46:56.081375 +AZURE,brazilsouth,Standard_D64pds_v6,reserved_1y,NA,2.756507,USD,Azure Retail Prices API,2025-12-18T04:46:57.522190 +AZURE,brazilsouth,Standard_D64pds_v6,reserved_3y,NA,1.775342,USD,Azure Retail Prices API,2025-12-18T04:46:57.522196 +AZURE,brazilsouth,Standard_D64pds_v6,spot,NA,0.863386,USD,Azure Retail Prices API,2025-12-18T04:46:56.081993 +AZURE,brazilsouth,Standard_D64ps_v6,on_demand,NA,3.571,USD,Azure Retail Prices API,2025-12-18T04:46:56.081418 +AZURE,brazilsouth,Standard_D64ps_v6,reserved_1y,NA,2.106963,USD,Azure Retail Prices API,2025-12-18T04:46:57.522259 +AZURE,brazilsouth,Standard_D64ps_v6,reserved_3y,NA,1.35704,USD,Azure Retail Prices API,2025-12-18T04:46:57.522267 +AZURE,brazilsouth,Standard_D64ps_v6,spot,NA,0.659921,USD,Azure Retail Prices API,2025-12-18T04:46:56.080793 +AZURE,brazilsouth,Standard_D64s_v3,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:56.081699 +AZURE,brazilsouth,Standard_D64s_v3,reserved_1y,NA,2.696804,USD,Azure Retail Prices API,2025-12-18T04:46:57.522836 +AZURE,brazilsouth,Standard_D64s_v3,reserved_3y,NA,1.925114,USD,Azure Retail Prices API,2025-12-18T04:46:57.522841 +AZURE,brazilsouth,Standard_D64s_v3,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:56.080710 +AZURE,brazilsouth,Standard_D64s_v4,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:46:56.081833 +AZURE,brazilsouth,Standard_D64s_v4,reserved_1y,NA,2.696918,USD,Azure Retail Prices API,2025-12-18T04:46:57.523132 +AZURE,brazilsouth,Standard_D64s_v4,reserved_3y,NA,1.840906,USD,Azure Retail Prices API,2025-12-18T04:46:57.523151 +AZURE,brazilsouth,Standard_D64s_v4,spot,NA,0.949824,USD,Azure Retail Prices API,2025-12-18T04:46:56.082025 +AZURE,brazilsouth,Standard_D64s_v5,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:46:56.081074 +AZURE,brazilsouth,Standard_D64s_v5,reserved_1y,NA,2.888584,USD,Azure Retail Prices API,2025-12-18T04:46:57.521707 +AZURE,brazilsouth,Standard_D64s_v5,reserved_3y,NA,1.81153,USD,Azure Retail Prices API,2025-12-18T04:46:57.521712 +AZURE,brazilsouth,Standard_D64s_v5,spot,NA,0.949824,USD,Azure Retail Prices API,2025-12-18T04:46:56.081056 +AZURE,brazilsouth,Standard_D8_v3,on_demand,NA,0.636,USD,Azure Retail Prices API,2025-12-18T04:46:56.081598 +AZURE,brazilsouth,Standard_D8_v3,reserved_1y,NA,0.3371,USD,Azure Retail Prices API,2025-12-18T04:46:57.522642 +AZURE,brazilsouth,Standard_D8_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:57.522648 +AZURE,brazilsouth,Standard_D8_v3,spot,NA,0.117533,USD,Azure Retail Prices API,2025-12-18T04:46:56.080989 +AZURE,brazilsouth,Standard_D8a_v4,on_demand,NA,0.612,USD,Azure Retail Prices API,2025-12-18T04:46:56.082040 +AZURE,brazilsouth,Standard_D8a_v4,reserved_1y,NA,0.336644,USD,Azure Retail Prices API,2025-12-18T04:46:57.523424 +AZURE,brazilsouth,Standard_D8a_v4,reserved_3y,NA,0.230099,USD,Azure Retail Prices API,2025-12-18T04:46:57.523429 +AZURE,brazilsouth,Standard_D8a_v4,spot,NA,0.113465,USD,Azure Retail Prices API,2025-12-18T04:46:56.080788 +AZURE,brazilsouth,Standard_D8ads_v5,on_demand,NA,0.66,USD,Azure Retail Prices API,2025-12-18T04:46:56.080790 +AZURE,brazilsouth,Standard_D8ads_v5,reserved_1y,NA,0.389384,USD,Azure Retail Prices API,2025-12-18T04:46:57.521193 +AZURE,brazilsouth,Standard_D8ads_v5,reserved_3y,NA,0.250799,USD,Azure Retail Prices API,2025-12-18T04:46:57.521198 +AZURE,brazilsouth,Standard_D8ads_v5,spot,NA,0.122364,USD,Azure Retail Prices API,2025-12-18T04:46:56.081690 +AZURE,brazilsouth,Standard_D8ads_v6,on_demand,NA,0.732,USD,Azure Retail Prices API,2025-12-18T04:46:56.081623 +AZURE,brazilsouth,Standard_D8ads_v6,reserved_1y,NA,0.431849,USD,Azure Retail Prices API,2025-12-18T04:46:57.522725 +AZURE,brazilsouth,Standard_D8ads_v6,reserved_3y,NA,0.278158,USD,Azure Retail Prices API,2025-12-18T04:46:57.522730 +AZURE,brazilsouth,Standard_D8ads_v6,spot,NA,0.135274,USD,Azure Retail Prices API,2025-12-18T04:46:56.080674 +AZURE,brazilsouth,Standard_D8as_v4,on_demand,NA,0.612,USD,Azure Retail Prices API,2025-12-18T04:46:56.081996 +AZURE,brazilsouth,Standard_D8as_v4,reserved_1y,NA,0.336644,USD,Azure Retail Prices API,2025-12-18T04:46:57.523358 +AZURE,brazilsouth,Standard_D8as_v4,reserved_3y,NA,0.230099,USD,Azure Retail Prices API,2025-12-18T04:46:57.523363 +AZURE,brazilsouth,Standard_D8as_v4,spot,NA,0.113465,USD,Azure Retail Prices API,2025-12-18T04:46:56.081424 +AZURE,brazilsouth,Standard_D8as_v5,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:46:56.080677 +AZURE,brazilsouth,Standard_D8as_v5,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:46:57.521172 +AZURE,brazilsouth,Standard_D8as_v5,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:46:57.521177 +AZURE,brazilsouth,Standard_D8as_v5,spot,NA,0.102341,USD,Azure Retail Prices API,2025-12-18T04:46:56.081817 +AZURE,brazilsouth,Standard_D8d_v4,on_demand,NA,0.72,USD,Azure Retail Prices API,2025-12-18T04:46:56.081884 +AZURE,brazilsouth,Standard_D8d_v4,reserved_1y,NA,0.407192,USD,Azure Retail Prices API,2025-12-18T04:46:57.523186 +AZURE,brazilsouth,Standard_D8d_v4,reserved_3y,NA,0.270738,USD,Azure Retail Prices API,2025-12-18T04:46:57.523190 +AZURE,brazilsouth,Standard_D8d_v4,spot,NA,0.13968,USD,Azure Retail Prices API,2025-12-18T04:46:56.080622 +AZURE,brazilsouth,Standard_D8ds_v4,on_demand,NA,0.72,USD,Azure Retail Prices API,2025-12-18T04:46:56.081470 +AZURE,brazilsouth,Standard_D8ds_v4,reserved_1y,NA,0.407192,USD,Azure Retail Prices API,2025-12-18T04:46:57.522429 +AZURE,brazilsouth,Standard_D8ds_v4,reserved_3y,NA,0.270738,USD,Azure Retail Prices API,2025-12-18T04:46:57.522435 +AZURE,brazilsouth,Standard_D8ds_v4,spot,NA,0.13968,USD,Azure Retail Prices API,2025-12-18T04:46:56.082095 +AZURE,brazilsouth,Standard_D8ds_v5,on_demand,NA,0.72,USD,Azure Retail Prices API,2025-12-18T04:46:56.080949 +AZURE,brazilsouth,Standard_D8ds_v5,reserved_1y,NA,0.424772,USD,Azure Retail Prices API,2025-12-18T04:46:57.521488 +AZURE,brazilsouth,Standard_D8ds_v5,reserved_3y,NA,0.273592,USD,Azure Retail Prices API,2025-12-18T04:46:57.521494 +AZURE,brazilsouth,Standard_D8ds_v5,spot,NA,0.13968,USD,Azure Retail Prices API,2025-12-18T04:46:56.081760 +AZURE,brazilsouth,Standard_D8ds_v6,on_demand,NA,0.794,USD,Azure Retail Prices API,2025-12-18T04:46:56.080916 +AZURE,brazilsouth,Standard_D8ds_v6,reserved_1y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:46:57.521424 +AZURE,brazilsouth,Standard_D8ds_v6,reserved_3y,NA,0.309741,USD,Azure Retail Prices API,2025-12-18T04:46:57.521430 +AZURE,brazilsouth,Standard_D8ds_v6,spot,NA,0.146731,USD,Azure Retail Prices API,2025-12-18T04:46:56.081982 +AZURE,brazilsouth,Standard_D8pds_v6,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:46:56.080575 +AZURE,brazilsouth,Standard_D8pds_v6,reserved_1y,NA,0.344521,USD,Azure Retail Prices API,2025-12-18T04:46:57.520864 +AZURE,brazilsouth,Standard_D8pds_v6,reserved_3y,NA,0.221918,USD,Azure Retail Prices API,2025-12-18T04:46:57.520869 +AZURE,brazilsouth,Standard_D8pds_v6,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:46:56.080565 +AZURE,brazilsouth,Standard_D8ps_v6,on_demand,NA,0.446,USD,Azure Retail Prices API,2025-12-18T04:46:56.080554 +AZURE,brazilsouth,Standard_D8ps_v6,reserved_1y,NA,0.263356,USD,Azure Retail Prices API,2025-12-18T04:46:57.520854 +AZURE,brazilsouth,Standard_D8ps_v6,reserved_3y,NA,0.169635,USD,Azure Retail Prices API,2025-12-18T04:46:57.520859 +AZURE,brazilsouth,Standard_D8ps_v6,spot,NA,0.082421,USD,Azure Retail Prices API,2025-12-18T04:46:56.080509 +AZURE,brazilsouth,Standard_D8s_v3,on_demand,NA,0.636,USD,Azure Retail Prices API,2025-12-18T04:46:56.081593 +AZURE,brazilsouth,Standard_D8s_v3,reserved_1y,NA,0.3371,USD,Azure Retail Prices API,2025-12-18T04:46:57.522632 +AZURE,brazilsouth,Standard_D8s_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:57.522637 +AZURE,brazilsouth,Standard_D8s_v3,spot,NA,0.117533,USD,Azure Retail Prices API,2025-12-18T04:46:56.080859 +AZURE,brazilsouth,Standard_D8s_v4,on_demand,NA,0.612,USD,Azure Retail Prices API,2025-12-18T04:46:56.081485 +AZURE,brazilsouth,Standard_D8s_v4,reserved_1y,NA,0.3371,USD,Azure Retail Prices API,2025-12-18T04:46:57.522441 +AZURE,brazilsouth,Standard_D8s_v4,reserved_3y,NA,0.230099,USD,Azure Retail Prices API,2025-12-18T04:46:57.522446 +AZURE,brazilsouth,Standard_D8s_v4,spot,NA,0.118728,USD,Azure Retail Prices API,2025-12-18T04:46:56.080820 +AZURE,brazilsouth,Standard_D8s_v5,on_demand,NA,0.612,USD,Azure Retail Prices API,2025-12-18T04:46:56.080871 +AZURE,brazilsouth,Standard_D8s_v5,reserved_1y,NA,0.361073,USD,Azure Retail Prices API,2025-12-18T04:46:57.521315 +AZURE,brazilsouth,Standard_D8s_v5,reserved_3y,NA,0.226446,USD,Azure Retail Prices API,2025-12-18T04:46:57.521321 +AZURE,brazilsouth,Standard_D8s_v5,spot,NA,0.118728,USD,Azure Retail Prices API,2025-12-18T04:46:56.081016 +AZURE,brazilsouth,Standard_D96a_v4,on_demand,NA,7.344,USD,Azure Retail Prices API,2025-12-18T04:46:56.081950 +AZURE,brazilsouth,Standard_D96a_v4,reserved_1y,NA,4.039155,USD,Azure Retail Prices API,2025-12-18T04:46:57.523290 +AZURE,brazilsouth,Standard_D96a_v4,reserved_3y,NA,2.761339,USD,Azure Retail Prices API,2025-12-18T04:46:57.523294 +AZURE,brazilsouth,Standard_D96a_v4,spot,NA,1.361578,USD,Azure Retail Prices API,2025-12-18T04:46:56.081332 +AZURE,brazilsouth,Standard_D96ads_v5,on_demand,NA,7.92,USD,Azure Retail Prices API,2025-12-18T04:46:56.081047 +AZURE,brazilsouth,Standard_D96ads_v5,reserved_1y,NA,4.672831,USD,Azure Retail Prices API,2025-12-18T04:46:57.521665 +AZURE,brazilsouth,Standard_D96ads_v5,reserved_3y,NA,3.009589,USD,Azure Retail Prices API,2025-12-18T04:46:57.521670 +AZURE,brazilsouth,Standard_D96ads_v5,spot,NA,1.468368,USD,Azure Retail Prices API,2025-12-18T04:46:56.080890 +AZURE,brazilsouth,Standard_D96ads_v6,on_demand,NA,8.784,USD,Azure Retail Prices API,2025-12-18T04:46:56.081427 +AZURE,brazilsouth,Standard_D96ads_v6,reserved_1y,NA,5.182534,USD,Azure Retail Prices API,2025-12-18T04:46:57.522289 +AZURE,brazilsouth,Standard_D96ads_v6,reserved_3y,NA,3.337938,USD,Azure Retail Prices API,2025-12-18T04:46:57.522297 +AZURE,brazilsouth,Standard_D96ads_v6,spot,NA,1.623283,USD,Azure Retail Prices API,2025-12-18T04:46:56.080728 +AZURE,brazilsouth,Standard_D96as_v4,on_demand,NA,7.344,USD,Azure Retail Prices API,2025-12-18T04:46:56.081671 +AZURE,brazilsouth,Standard_D96as_v4,reserved_1y,NA,4.039155,USD,Azure Retail Prices API,2025-12-18T04:46:57.522806 +AZURE,brazilsouth,Standard_D96as_v4,reserved_3y,NA,2.761339,USD,Azure Retail Prices API,2025-12-18T04:46:57.522811 +AZURE,brazilsouth,Standard_D96as_v4,spot,NA,1.361578,USD,Azure Retail Prices API,2025-12-18T04:46:56.080583 +AZURE,brazilsouth,Standard_D96as_v5,on_demand,NA,11.04,USD,Azure Retail Prices API,2025-12-18T04:46:56.081328 +AZURE,brazilsouth,Standard_D96as_v5,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:46:57.522925 +AZURE,brazilsouth,Standard_D96as_v5,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:46:57.522930 +AZURE,brazilsouth,Standard_D96as_v5,spot,NA,1.22809,USD,Azure Retail Prices API,2025-12-18T04:46:56.081384 +AZURE,brazilsouth,Standard_D96ds_v5,on_demand,NA,8.64,USD,Azure Retail Prices API,2025-12-18T04:46:56.080659 +AZURE,brazilsouth,Standard_D96ds_v5,reserved_1y,NA,5.097603,USD,Azure Retail Prices API,2025-12-18T04:46:57.520989 +AZURE,brazilsouth,Standard_D96ds_v5,reserved_3y,NA,3.283181,USD,Azure Retail Prices API,2025-12-18T04:46:57.520994 +AZURE,brazilsouth,Standard_D96ds_v5,spot,NA,1.67616,USD,Azure Retail Prices API,2025-12-18T04:46:56.081014 +AZURE,brazilsouth,Standard_D96ds_v6,on_demand,NA,9.531,USD,Azure Retail Prices API,2025-12-18T04:46:56.080983 +AZURE,brazilsouth,Standard_D96ds_v6,reserved_1y,NA,5.909132,USD,Azure Retail Prices API,2025-12-18T04:46:57.521537 +AZURE,brazilsouth,Standard_D96ds_v6,reserved_3y,NA,3.717047,USD,Azure Retail Prices API,2025-12-18T04:46:57.521543 +AZURE,brazilsouth,Standard_D96ds_v6,spot,NA,1.761329,USD,Azure Retail Prices API,2025-12-18T04:46:56.081768 +AZURE,brazilsouth,Standard_D96pds_v6,on_demand,NA,7.008,USD,Azure Retail Prices API,2025-12-18T04:46:56.080837 +AZURE,brazilsouth,Standard_D96pds_v6,reserved_1y,NA,4.134703,USD,Azure Retail Prices API,2025-12-18T04:46:57.521266 +AZURE,brazilsouth,Standard_D96pds_v6,reserved_3y,NA,2.663052,USD,Azure Retail Prices API,2025-12-18T04:46:57.521270 +AZURE,brazilsouth,Standard_D96pds_v6,spot,NA,1.295078,USD,Azure Retail Prices API,2025-12-18T04:46:56.080936 +AZURE,brazilsouth,Standard_D96ps_v6,on_demand,NA,5.357,USD,Azure Retail Prices API,2025-12-18T04:46:56.081227 +AZURE,brazilsouth,Standard_D96ps_v6,reserved_1y,NA,3.160502,USD,Azure Retail Prices API,2025-12-18T04:46:57.521940 +AZURE,brazilsouth,Standard_D96ps_v6,reserved_3y,NA,2.035578,USD,Azure Retail Prices API,2025-12-18T04:46:57.521945 +AZURE,brazilsouth,Standard_D96ps_v6,spot,NA,0.989974,USD,Azure Retail Prices API,2025-12-18T04:46:56.082066 +AZURE,brazilsouth,Standard_D96s_v5,on_demand,NA,7.344,USD,Azure Retail Prices API,2025-12-18T04:46:56.081841 +AZURE,brazilsouth,Standard_D96s_v5,reserved_1y,NA,4.332991,USD,Azure Retail Prices API,2025-12-18T04:46:57.523156 +AZURE,brazilsouth,Standard_D96s_v5,reserved_3y,NA,2.717275,USD,Azure Retail Prices API,2025-12-18T04:46:57.523161 +AZURE,brazilsouth,Standard_D96s_v5,spot,NA,1.424736,USD,Azure Retail Prices API,2025-12-18T04:46:56.081162 +AZURE,brazilsouth,Standard_DC16ads_v6,on_demand,NA,1.464,USD,Azure Retail Prices API,2025-12-18T04:46:56.080876 +AZURE,brazilsouth,Standard_DC16ads_v6,reserved_1y,NA,0.863813,USD,Azure Retail Prices API,2025-12-18T04:46:57.521336 +AZURE,brazilsouth,Standard_DC16ads_v6,reserved_3y,NA,0.556317,USD,Azure Retail Prices API,2025-12-18T04:46:57.521342 +AZURE,brazilsouth,Standard_DC16ads_v6,spot,NA,0.270547,USD,Azure Retail Prices API,2025-12-18T04:46:56.080656 +AZURE,brazilsouth,Standard_DC2ads_v6,on_demand,NA,0.183,USD,Azure Retail Prices API,2025-12-18T04:46:56.081230 +AZURE,brazilsouth,Standard_DC2ads_v6,reserved_1y,NA,0.107991,USD,Azure Retail Prices API,2025-12-18T04:46:57.521951 +AZURE,brazilsouth,Standard_DC2ads_v6,reserved_3y,NA,0.069559,USD,Azure Retail Prices API,2025-12-18T04:46:57.521956 +AZURE,brazilsouth,Standard_DC2ads_v6,spot,NA,0.033818,USD,Azure Retail Prices API,2025-12-18T04:46:56.082037 +AZURE,brazilsouth,Standard_DC32ads_v6,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:56.081618 +AZURE,brazilsouth,Standard_DC32ads_v6,reserved_1y,NA,1.727511,USD,Azure Retail Prices API,2025-12-18T04:46:57.522704 +AZURE,brazilsouth,Standard_DC32ads_v6,reserved_3y,NA,1.112633,USD,Azure Retail Prices API,2025-12-18T04:46:57.522709 +AZURE,brazilsouth,Standard_DC32ads_v6,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:56.081669 +AZURE,brazilsouth,Standard_DC48ads_v6,on_demand,NA,4.392,USD,Azure Retail Prices API,2025-12-18T04:46:56.080734 +AZURE,brazilsouth,Standard_DC48ads_v6,reserved_1y,NA,2.591324,USD,Azure Retail Prices API,2025-12-18T04:46:57.521079 +AZURE,brazilsouth,Standard_DC48ads_v6,reserved_3y,NA,1.66895,USD,Azure Retail Prices API,2025-12-18T04:46:57.521084 +AZURE,brazilsouth,Standard_DC48ads_v6,spot,NA,0.811642,USD,Azure Retail Prices API,2025-12-18T04:46:56.080898 +AZURE,brazilsouth,Standard_DC4ads_v6,on_demand,NA,0.366,USD,Azure Retail Prices API,2025-12-18T04:46:56.081831 +AZURE,brazilsouth,Standard_DC4ads_v6,reserved_1y,NA,0.215982,USD,Azure Retail Prices API,2025-12-18T04:46:57.523123 +AZURE,brazilsouth,Standard_DC4ads_v6,reserved_3y,NA,0.139079,USD,Azure Retail Prices API,2025-12-18T04:46:57.523127 +AZURE,brazilsouth,Standard_DC4ads_v6,spot,NA,0.067637,USD,Azure Retail Prices API,2025-12-18T04:46:56.081433 +AZURE,brazilsouth,Standard_DC64ads_v6,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:46:56.081126 +AZURE,brazilsouth,Standard_DC64ads_v6,reserved_1y,NA,3.455023,USD,Azure Retail Prices API,2025-12-18T04:46:57.521788 +AZURE,brazilsouth,Standard_DC64ads_v6,reserved_3y,NA,2.225266,USD,Azure Retail Prices API,2025-12-18T04:46:57.521793 +AZURE,brazilsouth,Standard_DC64ads_v6,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:46:56.081242 +AZURE,brazilsouth,Standard_DC8ads_v6,on_demand,NA,0.732,USD,Azure Retail Prices API,2025-12-18T04:46:56.081934 +AZURE,brazilsouth,Standard_DC8ads_v6,reserved_1y,NA,0.431849,USD,Azure Retail Prices API,2025-12-18T04:46:57.523262 +AZURE,brazilsouth,Standard_DC8ads_v6,reserved_3y,NA,0.278158,USD,Azure Retail Prices API,2025-12-18T04:46:57.523266 +AZURE,brazilsouth,Standard_DC8ads_v6,spot,NA,0.135274,USD,Azure Retail Prices API,2025-12-18T04:46:56.080634 +AZURE,brazilsouth,Standard_DC96ads_v6,on_demand,NA,8.784,USD,Azure Retail Prices API,2025-12-18T04:46:56.080941 +AZURE,brazilsouth,Standard_DC96ads_v6,reserved_1y,NA,5.182534,USD,Azure Retail Prices API,2025-12-18T04:46:57.521477 +AZURE,brazilsouth,Standard_DC96ads_v6,reserved_3y,NA,3.337938,USD,Azure Retail Prices API,2025-12-18T04:46:57.521482 +AZURE,brazilsouth,Standard_DC96ads_v6,spot,NA,1.623283,USD,Azure Retail Prices API,2025-12-18T04:46:56.081393 +AZURE,brazilsouth,Standard_DS12_v2,on_demand,NA,0.46375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495719 +AZURE,brazilsouth,Standard_DS12_v2,reserved_1y,NA,0.27825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495727 +AZURE,brazilsouth,Standard_DS12_v2,reserved_3y,NA,0.1855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495731 +AZURE,brazilsouth,Standard_DS12_v2,spot,NA,0.139125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495723 +AZURE,brazilsouth,Standard_DS13_v2,on_demand,NA,0.92625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496610 +AZURE,brazilsouth,Standard_DS13_v2,reserved_1y,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496618 +AZURE,brazilsouth,Standard_DS13_v2,reserved_3y,NA,0.3705,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496622 +AZURE,brazilsouth,Standard_DS13_v2,spot,NA,0.277875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496614 +AZURE,brazilsouth,Standard_DS14_v2,on_demand,NA,1.8525,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497466 +AZURE,brazilsouth,Standard_DS14_v2,reserved_1y,NA,1.1115,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497475 +AZURE,brazilsouth,Standard_DS14_v2,reserved_3y,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497479 +AZURE,brazilsouth,Standard_DS14_v2,spot,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497471 +AZURE,brazilsouth,Standard_DS15_v2,on_demand,NA,2.31625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498231 +AZURE,brazilsouth,Standard_DS15_v2,reserved_1y,NA,1.38975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498242 +AZURE,brazilsouth,Standard_DS15_v2,reserved_3y,NA,0.9265,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498246 +AZURE,brazilsouth,Standard_DS15_v2,spot,NA,0.694875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498238 +AZURE,brazilsouth,Standard_DS1_v2,on_demand,NA,0.09125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492075 +AZURE,brazilsouth,Standard_DS1_v2,reserved_1y,NA,0.05475,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492084 +AZURE,brazilsouth,Standard_DS1_v2,reserved_3y,NA,0.0365,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492088 +AZURE,brazilsouth,Standard_DS1_v2,spot,NA,0.027375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492079 +AZURE,brazilsouth,Standard_DS2_v2,on_demand,NA,0.1825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492787 +AZURE,brazilsouth,Standard_DS2_v2,reserved_1y,NA,0.1095,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492795 +AZURE,brazilsouth,Standard_DS2_v2,reserved_3y,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492799 +AZURE,brazilsouth,Standard_DS2_v2,spot,NA,0.05475,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492791 +AZURE,brazilsouth,Standard_DS3_v2,on_demand,NA,0.36625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493520 +AZURE,brazilsouth,Standard_DS3_v2,reserved_1y,NA,0.21975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493529 +AZURE,brazilsouth,Standard_DS3_v2,reserved_3y,NA,0.1465,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493533 +AZURE,brazilsouth,Standard_DS3_v2,spot,NA,0.109875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493525 +AZURE,brazilsouth,Standard_DS4_v2,on_demand,NA,0.73125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494233 +AZURE,brazilsouth,Standard_DS4_v2,reserved_1y,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494241 +AZURE,brazilsouth,Standard_DS4_v2,reserved_3y,NA,0.2925,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494245 +AZURE,brazilsouth,Standard_DS4_v2,spot,NA,0.219375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494237 +AZURE,brazilsouth,Standard_DS5_v2,on_demand,NA,1.4625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494943 +AZURE,brazilsouth,Standard_DS5_v2,reserved_1y,NA,0.8775,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494951 +AZURE,brazilsouth,Standard_DS5_v2,reserved_3y,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494955 +AZURE,brazilsouth,Standard_DS5_v2,spot,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494947 +AZURE,brazilsouth,Standard_E128ds_v6,on_demand,NA,16.695,USD,Azure Retail Prices API,2025-12-18T04:46:56.082022 +AZURE,brazilsouth,Standard_E128ds_v6,reserved_1y,NA,10.350913,USD,Azure Retail Prices API,2025-12-18T04:46:57.523405 +AZURE,brazilsouth,Standard_E128ds_v6,reserved_3y,NA,6.511073,USD,Azure Retail Prices API,2025-12-18T04:46:57.523409 +AZURE,brazilsouth,Standard_E128ds_v6,spot,NA,3.085236,USD,Azure Retail Prices API,2025-12-18T04:46:56.081147 +AZURE,brazilsouth,Standard_E16_v3,on_demand,NA,1.879,USD,Azure Retail Prices API,2025-12-18T04:46:56.080796 +AZURE,brazilsouth,Standard_E16_v3,reserved_1y,NA,1.317123,USD,Azure Retail Prices API,2025-12-18T04:46:57.521204 +AZURE,brazilsouth,Standard_E16_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:57.521209 +AZURE,brazilsouth,Standard_E16_v3,spot,NA,0.347239,USD,Azure Retail Prices API,2025-12-18T04:46:56.082070 +AZURE,brazilsouth,Standard_E16a_v4,on_demand,NA,1.608,USD,Azure Retail Prices API,2025-12-18T04:46:56.081094 +AZURE,brazilsouth,Standard_E16a_v4,reserved_1y,NA,0.945548,USD,Azure Retail Prices API,2025-12-18T04:46:57.521738 +AZURE,brazilsouth,Standard_E16a_v4,reserved_3y,NA,0.604604,USD,Azure Retail Prices API,2025-12-18T04:46:57.521742 +AZURE,brazilsouth,Standard_E16a_v4,spot,NA,0.297158,USD,Azure Retail Prices API,2025-12-18T04:46:56.080814 +AZURE,brazilsouth,Standard_E16ads_v5,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:46:56.080811 +AZURE,brazilsouth,Standard_E16ads_v5,reserved_1y,NA,0.981735,USD,Azure Retail Prices API,2025-12-18T04:46:57.521225 +AZURE,brazilsouth,Standard_E16ads_v5,reserved_3y,NA,0.632306,USD,Azure Retail Prices API,2025-12-18T04:46:57.521229 +AZURE,brazilsouth,Standard_E16ads_v5,spot,NA,0.307507,USD,Azure Retail Prices API,2025-12-18T04:46:56.081476 +AZURE,brazilsouth,Standard_E16ads_v6,on_demand,NA,1.862,USD,Azure Retail Prices API,2025-12-18T04:46:56.081361 +AZURE,brazilsouth,Standard_E16ads_v6,reserved_1y,NA,1.098858,USD,Azure Retail Prices API,2025-12-18T04:46:57.522162 +AZURE,brazilsouth,Standard_E16ads_v6,reserved_3y,NA,0.707725,USD,Azure Retail Prices API,2025-12-18T04:46:57.522169 +AZURE,brazilsouth,Standard_E16ads_v6,spot,NA,0.344098,USD,Azure Retail Prices API,2025-12-18T04:46:56.081372 +AZURE,brazilsouth,Standard_E16as_v4,on_demand,NA,1.608,USD,Azure Retail Prices API,2025-12-18T04:46:56.081722 +AZURE,brazilsouth,Standard_E16as_v4,reserved_1y,NA,0.945548,USD,Azure Retail Prices API,2025-12-18T04:46:57.522906 +AZURE,brazilsouth,Standard_E16as_v4,reserved_3y,NA,0.604604,USD,Azure Retail Prices API,2025-12-18T04:46:57.522911 +AZURE,brazilsouth,Standard_E16as_v4,spot,NA,0.297158,USD,Azure Retail Prices API,2025-12-18T04:46:56.081203 +AZURE,brazilsouth,Standard_E16as_v5,on_demand,NA,1.448,USD,Azure Retail Prices API,2025-12-18T04:46:56.081039 +AZURE,brazilsouth,Standard_E16as_v5,reserved_1y,NA,0.854338,USD,Azure Retail Prices API,2025-12-18T04:46:57.521621 +AZURE,brazilsouth,Standard_E16as_v5,reserved_3y,NA,0.550228,USD,Azure Retail Prices API,2025-12-18T04:46:57.521627 +AZURE,brazilsouth,Standard_E16as_v5,spot,NA,0.26759,USD,Azure Retail Prices API,2025-12-18T04:46:56.081892 +AZURE,brazilsouth,Standard_E16d_v4,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:46:56.081378 +AZURE,brazilsouth,Standard_E16d_v4,reserved_1y,NA,1.072489,USD,Azure Retail Prices API,2025-12-18T04:46:57.522203 +AZURE,brazilsouth,Standard_E16d_v4,reserved_3y,NA,0.685807,USD,Azure Retail Prices API,2025-12-18T04:46:57.522210 +AZURE,brazilsouth,Standard_E16d_v4,spot,NA,0.353856,USD,Azure Retail Prices API,2025-12-18T04:46:56.081863 +AZURE,brazilsouth,Standard_E16ds_v4,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:46:56.080802 +AZURE,brazilsouth,Standard_E16ds_v4,reserved_1y,NA,1.072489,USD,Azure Retail Prices API,2025-12-18T04:46:57.521214 +AZURE,brazilsouth,Standard_E16ds_v4,reserved_3y,NA,0.685807,USD,Azure Retail Prices API,2025-12-18T04:46:57.521220 +AZURE,brazilsouth,Standard_E16ds_v4,spot,NA,0.353856,USD,Azure Retail Prices API,2025-12-18T04:46:56.080977 +AZURE,brazilsouth,Standard_E16ds_v5,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:46:56.081788 +AZURE,brazilsouth,Standard_E16ds_v5,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:46:57.523020 +AZURE,brazilsouth,Standard_E16ds_v5,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:46:57.523024 +AZURE,brazilsouth,Standard_E16ds_v5,spot,NA,0.353856,USD,Azure Retail Prices API,2025-12-18T04:46:56.080512 +AZURE,brazilsouth,Standard_E16ds_v6,on_demand,NA,2.087,USD,Azure Retail Prices API,2025-12-18T04:46:56.081980 +AZURE,brazilsouth,Standard_E16ds_v6,reserved_1y,NA,1.293836,USD,Azure Retail Prices API,2025-12-18T04:46:57.523329 +AZURE,brazilsouth,Standard_E16ds_v6,reserved_3y,NA,0.813889,USD,Azure Retail Prices API,2025-12-18T04:46:57.523334 +AZURE,brazilsouth,Standard_E16ds_v6,spot,NA,0.385678,USD,Azure Retail Prices API,2025-12-18T04:46:56.080557 +AZURE,brazilsouth,Standard_E16pds_v6,on_demand,NA,1.486,USD,Azure Retail Prices API,2025-12-18T04:46:56.081713 +AZURE,brazilsouth,Standard_E16pds_v6,reserved_1y,NA,0.876941,USD,Azure Retail Prices API,2025-12-18T04:46:57.522887 +AZURE,brazilsouth,Standard_E16pds_v6,reserved_3y,NA,0.56484,USD,Azure Retail Prices API,2025-12-18T04:46:57.522892 +AZURE,brazilsouth,Standard_E16pds_v6,spot,NA,0.274613,USD,Azure Retail Prices API,2025-12-18T04:46:56.080754 +AZURE,brazilsouth,Standard_E16ps_v6,on_demand,NA,1.173,USD,Azure Retail Prices API,2025-12-18T04:46:56.082043 +AZURE,brazilsouth,Standard_E16ps_v6,reserved_1y,NA,0.691895,USD,Azure Retail Prices API,2025-12-18T04:46:57.523434 +AZURE,brazilsouth,Standard_E16ps_v6,reserved_3y,NA,0.445662,USD,Azure Retail Prices API,2025-12-18T04:46:57.523439 +AZURE,brazilsouth,Standard_E16ps_v6,spot,NA,0.21677,USD,Azure Retail Prices API,2025-12-18T04:46:56.080779 +AZURE,brazilsouth,Standard_E16s_v3,on_demand,NA,1.879,USD,Azure Retail Prices API,2025-12-18T04:46:56.081501 +AZURE,brazilsouth,Standard_E16s_v3,reserved_1y,NA,1.317123,USD,Azure Retail Prices API,2025-12-18T04:46:57.522466 +AZURE,brazilsouth,Standard_E16s_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:46:57.522472 +AZURE,brazilsouth,Standard_E16s_v3,spot,NA,0.347239,USD,Azure Retail Prices API,2025-12-18T04:46:56.081626 +AZURE,brazilsouth,Standard_E16s_v4,on_demand,NA,1.608,USD,Azure Retail Prices API,2025-12-18T04:46:56.081693 +AZURE,brazilsouth,Standard_E16s_v4,reserved_1y,NA,0.945548,USD,Azure Retail Prices API,2025-12-18T04:46:57.522826 +AZURE,brazilsouth,Standard_E16s_v4,reserved_3y,NA,0.604604,USD,Azure Retail Prices API,2025-12-18T04:46:57.522831 +AZURE,brazilsouth,Standard_E16s_v4,spot,NA,0.297158,USD,Azure Retail Prices API,2025-12-18T04:46:56.081237 +AZURE,brazilsouth,Standard_E16s_v5,on_demand,NA,1.608,USD,Azure Retail Prices API,2025-12-18T04:46:56.080548 +AZURE,brazilsouth,Standard_E16s_v5,reserved_1y,NA,0.948744,USD,Azure Retail Prices API,2025-12-18T04:46:57.520844 +AZURE,brazilsouth,Standard_E16s_v5,reserved_3y,NA,0.594977,USD,Azure Retail Prices API,2025-12-18T04:46:57.520849 +AZURE,brazilsouth,Standard_E16s_v5,spot,NA,0.297158,USD,Azure Retail Prices API,2025-12-18T04:46:56.080924 +AZURE,brazilsouth,Standard_E20a_v4,on_demand,NA,2.01,USD,Azure Retail Prices API,2025-12-18T04:46:56.081601 +AZURE,brazilsouth,Standard_E20a_v4,reserved_1y,NA,1.182078,USD,Azure Retail Prices API,2025-12-18T04:46:57.522653 +AZURE,brazilsouth,Standard_E20a_v4,reserved_3y,NA,0.755708,USD,Azure Retail Prices API,2025-12-18T04:46:57.522658 +AZURE,brazilsouth,Standard_E20a_v4,spot,NA,0.371448,USD,Azure Retail Prices API,2025-12-18T04:46:56.080808 +AZURE,brazilsouth,Standard_E20ads_v5,on_demand,NA,2.08,USD,Azure Retail Prices API,2025-12-18T04:46:56.081985 +AZURE,brazilsouth,Standard_E20ads_v5,reserved_1y,NA,1.227169,USD,Azure Retail Prices API,2025-12-18T04:46:57.523339 +AZURE,brazilsouth,Standard_E20ads_v5,reserved_3y,NA,0.790411,USD,Azure Retail Prices API,2025-12-18T04:46:57.523344 +AZURE,brazilsouth,Standard_E20ads_v5,spot,NA,0.384384,USD,Azure Retail Prices API,2025-12-18T04:46:56.080497 +AZURE,brazilsouth,Standard_E20ads_v6,on_demand,NA,2.328,USD,Azure Retail Prices API,2025-12-18T04:46:56.081519 +AZURE,brazilsouth,Standard_E20ads_v6,reserved_1y,NA,1.373516,USD,Azure Retail Prices API,2025-12-18T04:46:57.522506 +AZURE,brazilsouth,Standard_E20ads_v6,reserved_3y,NA,0.884627,USD,Azure Retail Prices API,2025-12-18T04:46:57.522512 +AZURE,brazilsouth,Standard_E20ads_v6,spot,NA,0.430214,USD,Azure Retail Prices API,2025-12-18T04:46:56.081389 +AZURE,brazilsouth,Standard_E20as_v4,on_demand,NA,2.01,USD,Azure Retail Prices API,2025-12-18T04:46:56.081925 +AZURE,brazilsouth,Standard_E20as_v4,reserved_1y,NA,1.182078,USD,Azure Retail Prices API,2025-12-18T04:46:57.523232 +AZURE,brazilsouth,Standard_E20as_v4,reserved_3y,NA,0.755708,USD,Azure Retail Prices API,2025-12-18T04:46:57.523237 +AZURE,brazilsouth,Standard_E20as_v4,spot,NA,0.371448,USD,Azure Retail Prices API,2025-12-18T04:46:56.081168 +AZURE,brazilsouth,Standard_E20as_v5,on_demand,NA,1.81,USD,Azure Retail Prices API,2025-12-18T04:46:56.081753 +AZURE,brazilsouth,Standard_E20as_v5,reserved_1y,NA,1.067922,USD,Azure Retail Prices API,2025-12-18T04:46:57.522982 +AZURE,brazilsouth,Standard_E20as_v5,reserved_3y,NA,0.687785,USD,Azure Retail Prices API,2025-12-18T04:46:57.522987 +AZURE,brazilsouth,Standard_E20as_v5,spot,NA,0.334488,USD,Azure Retail Prices API,2025-12-18T04:46:56.080964 +AZURE,brazilsouth,Standard_E20d_v4,on_demand,NA,2.28,USD,Azure Retail Prices API,2025-12-18T04:46:56.080879 +AZURE,brazilsouth,Standard_E20d_v4,reserved_1y,NA,1.340753,USD,Azure Retail Prices API,2025-12-18T04:46:57.521347 +AZURE,brazilsouth,Standard_E20d_v4,reserved_3y,NA,0.857306,USD,Azure Retail Prices API,2025-12-18T04:46:57.521352 +AZURE,brazilsouth,Standard_E20d_v4,spot,NA,0.44232,USD,Azure Retail Prices API,2025-12-18T04:46:56.081132 +AZURE,brazilsouth,Standard_E20ds_v4,on_demand,NA,2.28,USD,Azure Retail Prices API,2025-12-18T04:46:56.081860 +AZURE,brazilsouth,Standard_E20ds_v4,reserved_1y,NA,1.340753,USD,Azure Retail Prices API,2025-12-18T04:46:57.523165 +AZURE,brazilsouth,Standard_E20ds_v4,reserved_3y,NA,0.857306,USD,Azure Retail Prices API,2025-12-18T04:46:57.523171 +AZURE,brazilsouth,Standard_E20ds_v4,spot,NA,0.44232,USD,Azure Retail Prices API,2025-12-18T04:46:56.080825 +AZURE,brazilsouth,Standard_E20ds_v5,on_demand,NA,2.28,USD,Azure Retail Prices API,2025-12-18T04:46:56.080749 +AZURE,brazilsouth,Standard_E20ds_v5,reserved_1y,NA,1.345205,USD,Azure Retail Prices API,2025-12-18T04:46:57.521133 +AZURE,brazilsouth,Standard_E20ds_v5,reserved_3y,NA,0.8664,USD,Azure Retail Prices API,2025-12-18T04:46:57.521138 +AZURE,brazilsouth,Standard_E20ds_v5,spot,NA,0.44232,USD,Azure Retail Prices API,2025-12-18T04:46:56.081731 +AZURE,brazilsouth,Standard_E20ds_v6,on_demand,NA,2.609,USD,Azure Retail Prices API,2025-12-18T04:46:56.081806 +AZURE,brazilsouth,Standard_E20ds_v6,reserved_1y,NA,1.617352,USD,Azure Retail Prices API,2025-12-18T04:46:57.523048 +AZURE,brazilsouth,Standard_E20ds_v6,reserved_3y,NA,1.017352,USD,Azure Retail Prices API,2025-12-18T04:46:57.523052 +AZURE,brazilsouth,Standard_E20ds_v6,spot,NA,0.482143,USD,Azure Retail Prices API,2025-12-18T04:46:56.082032 +AZURE,brazilsouth,Standard_E20s_v4,on_demand,NA,2.01,USD,Azure Retail Prices API,2025-12-18T04:46:56.081707 +AZURE,brazilsouth,Standard_E20s_v4,reserved_1y,NA,1.182078,USD,Azure Retail Prices API,2025-12-18T04:46:57.522866 +AZURE,brazilsouth,Standard_E20s_v4,reserved_3y,NA,0.755708,USD,Azure Retail Prices API,2025-12-18T04:46:57.522872 +AZURE,brazilsouth,Standard_E20s_v4,spot,NA,0.371448,USD,Azure Retail Prices API,2025-12-18T04:46:56.080991 +AZURE,brazilsouth,Standard_E20s_v5,on_demand,NA,2.01,USD,Azure Retail Prices API,2025-12-18T04:46:56.081560 +AZURE,brazilsouth,Standard_E20s_v5,reserved_1y,NA,1.185845,USD,Azure Retail Prices API,2025-12-18T04:46:57.522569 +AZURE,brazilsouth,Standard_E20s_v5,reserved_3y,NA,0.743683,USD,Azure Retail Prices API,2025-12-18T04:46:57.522575 +AZURE,brazilsouth,Standard_E20s_v5,spot,NA,0.371448,USD,Azure Retail Prices API,2025-12-18T04:46:56.081180 +AZURE,brazilsouth,Standard_E2_v3,on_demand,NA,0.235,USD,Azure Retail Prices API,2025-12-18T04:46:56.081436 +AZURE,brazilsouth,Standard_E2_v3,reserved_1y,NA,0.164612,USD,Azure Retail Prices API,2025-12-18T04:46:57.522304 +AZURE,brazilsouth,Standard_E2_v3,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:46:57.522312 +AZURE,brazilsouth,Standard_E2_v3,spot,NA,0.043428,USD,Azure Retail Prices API,2025-12-18T04:46:56.080662 +AZURE,brazilsouth,Standard_E2ads_v6,on_demand,NA,0.233,USD,Azure Retail Prices API,2025-12-18T04:46:56.080893 +AZURE,brazilsouth,Standard_E2ads_v6,reserved_1y,NA,0.137329,USD,Azure Retail Prices API,2025-12-18T04:46:57.521371 +AZURE,brazilsouth,Standard_E2ads_v6,reserved_3y,NA,0.08847,USD,Azure Retail Prices API,2025-12-18T04:46:57.521378 +AZURE,brazilsouth,Standard_E2ads_v6,spot,NA,0.043058,USD,Azure Retail Prices API,2025-12-18T04:46:56.080848 +AZURE,brazilsouth,Standard_E2ds_v5,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:46:56.081939 +AZURE,brazilsouth,Standard_E2ds_v5,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:46:57.523271 +AZURE,brazilsouth,Standard_E2ds_v5,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:46:57.523276 +AZURE,brazilsouth,Standard_E2ds_v5,spot,NA,0.044232,USD,Azure Retail Prices API,2025-12-18T04:46:56.080930 +AZURE,brazilsouth,Standard_E2ds_v6,on_demand,NA,0.261,USD,Azure Retail Prices API,2025-12-18T04:46:56.081814 +AZURE,brazilsouth,Standard_E2ds_v6,reserved_1y,NA,0.161758,USD,Azure Retail Prices API,2025-12-18T04:46:57.523105 +AZURE,brazilsouth,Standard_E2ds_v6,reserved_3y,NA,0.10175,USD,Azure Retail Prices API,2025-12-18T04:46:57.523109 +AZURE,brazilsouth,Standard_E2ds_v6,spot,NA,0.048233,USD,Azure Retail Prices API,2025-12-18T04:46:56.081960 +AZURE,brazilsouth,Standard_E2pds_v6,on_demand,NA,0.186,USD,Azure Retail Prices API,2025-12-18T04:46:56.080740 +AZURE,brazilsouth,Standard_E2pds_v6,reserved_1y,NA,0.109589,USD,Azure Retail Prices API,2025-12-18T04:46:57.521098 +AZURE,brazilsouth,Standard_E2pds_v6,reserved_3y,NA,0.070586,USD,Azure Retail Prices API,2025-12-18T04:46:57.521103 +AZURE,brazilsouth,Standard_E2pds_v6,spot,NA,0.034373,USD,Azure Retail Prices API,2025-12-18T04:46:56.081696 +AZURE,brazilsouth,Standard_E32_v3,on_demand,NA,3.758,USD,Azure Retail Prices API,2025-12-18T04:46:56.080773 +AZURE,brazilsouth,Standard_E32_v3,reserved_1y,NA,2.634247,USD,Azure Retail Prices API,2025-12-18T04:46:57.521162 +AZURE,brazilsouth,Standard_E32_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:57.521167 +AZURE,brazilsouth,Standard_E32_v3,spot,NA,0.694478,USD,Azure Retail Prices API,2025-12-18T04:46:56.081528 +AZURE,brazilsouth,Standard_E32a_v4,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:56.080651 +AZURE,brazilsouth,Standard_E32a_v4,reserved_1y,NA,1.890982,USD,Azure Retail Prices API,2025-12-18T04:46:57.520969 +AZURE,brazilsouth,Standard_E32a_v4,reserved_3y,NA,1.209209,USD,Azure Retail Prices API,2025-12-18T04:46:57.520974 +AZURE,brazilsouth,Standard_E32a_v4,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:56.081843 +AZURE,brazilsouth,Standard_E32ads_v5,on_demand,NA,3.328,USD,Azure Retail Prices API,2025-12-18T04:46:56.081171 +AZURE,brazilsouth,Standard_E32ads_v5,reserved_1y,NA,1.96347,USD,Azure Retail Prices API,2025-12-18T04:46:57.521819 +AZURE,brazilsouth,Standard_E32ads_v5,reserved_3y,NA,1.26465,USD,Azure Retail Prices API,2025-12-18T04:46:57.521824 +AZURE,brazilsouth,Standard_E32ads_v5,spot,NA,0.615014,USD,Azure Retail Prices API,2025-12-18T04:46:56.080752 +AZURE,brazilsouth,Standard_E32ads_v6,on_demand,NA,3.725,USD,Azure Retail Prices API,2025-12-18T04:46:56.080506 +AZURE,brazilsouth,Standard_E32ads_v6,reserved_1y,NA,2.197603,USD,Azure Retail Prices API,2025-12-18T04:46:57.520756 +AZURE,brazilsouth,Standard_E32ads_v6,reserved_3y,NA,1.415411,USD,Azure Retail Prices API,2025-12-18T04:46:57.520762 +AZURE,brazilsouth,Standard_E32ads_v6,spot,NA,0.68838,USD,Azure Retail Prices API,2025-12-18T04:46:56.080913 +AZURE,brazilsouth,Standard_E32as_v4,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:56.081263 +AZURE,brazilsouth,Standard_E32as_v4,reserved_1y,NA,1.890982,USD,Azure Retail Prices API,2025-12-18T04:46:57.521993 +AZURE,brazilsouth,Standard_E32as_v4,reserved_3y,NA,1.209209,USD,Azure Retail Prices API,2025-12-18T04:46:57.521998 +AZURE,brazilsouth,Standard_E32as_v4,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:56.081974 +AZURE,brazilsouth,Standard_E32as_v5,on_demand,NA,4.368,USD,Azure Retail Prices API,2025-12-18T04:46:56.080799 +AZURE,brazilsouth,Standard_E32as_v5,reserved_1y,NA,1.708676,USD,Azure Retail Prices API,2025-12-18T04:46:57.522059 +AZURE,brazilsouth,Standard_E32as_v5,reserved_3y,NA,1.100495,USD,Azure Retail Prices API,2025-12-18T04:46:57.522064 +AZURE,brazilsouth,Standard_E32as_v5,spot,NA,0.535181,USD,Azure Retail Prices API,2025-12-18T04:46:56.081302 +AZURE,brazilsouth,Standard_E32d_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:56.081763 +AZURE,brazilsouth,Standard_E32d_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:57.523001 +AZURE,brazilsouth,Standard_E32d_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:57.523005 +AZURE,brazilsouth,Standard_E32d_v4,spot,NA,0.707712,USD,Azure Retail Prices API,2025-12-18T04:46:56.081876 +AZURE,brazilsouth,Standard_E32ds_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:56.081364 +AZURE,brazilsouth,Standard_E32ds_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:57.522176 +AZURE,brazilsouth,Standard_E32ds_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:57.522182 +AZURE,brazilsouth,Standard_E32ds_v4,spot,NA,0.707712,USD,Azure Retail Prices API,2025-12-18T04:46:56.081221 +AZURE,brazilsouth,Standard_E32ds_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:56.081739 +AZURE,brazilsouth,Standard_E32ds_v5,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:57.522935 +AZURE,brazilsouth,Standard_E32ds_v5,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:46:57.522939 +AZURE,brazilsouth,Standard_E32ds_v5,spot,NA,0.707712,USD,Azure Retail Prices API,2025-12-18T04:46:56.081129 +AZURE,brazilsouth,Standard_E32ds_v6,on_demand,NA,4.174,USD,Azure Retail Prices API,2025-12-18T04:46:56.082028 +AZURE,brazilsouth,Standard_E32ds_v6,reserved_1y,NA,2.587785,USD,Azure Retail Prices API,2025-12-18T04:46:57.523414 +AZURE,brazilsouth,Standard_E32ds_v6,reserved_3y,NA,1.627778,USD,Azure Retail Prices API,2025-12-18T04:46:57.523419 +AZURE,brazilsouth,Standard_E32ds_v6,spot,NA,0.771355,USD,Azure Retail Prices API,2025-12-18T04:46:56.080645 +AZURE,brazilsouth,Standard_E32pds_v6,on_demand,NA,2.973,USD,Azure Retail Prices API,2025-12-18T04:46:56.080874 +AZURE,brazilsouth,Standard_E32pds_v6,reserved_1y,NA,1.753995,USD,Azure Retail Prices API,2025-12-18T04:46:57.521327 +AZURE,brazilsouth,Standard_E32pds_v6,reserved_3y,NA,1.12968,USD,Azure Retail Prices API,2025-12-18T04:46:57.521332 +AZURE,brazilsouth,Standard_E32pds_v6,spot,NA,0.54941,USD,Azure Retail Prices API,2025-12-18T04:46:56.081917 +AZURE,brazilsouth,Standard_E32ps_v6,on_demand,NA,2.346,USD,Azure Retail Prices API,2025-12-18T04:46:56.082073 +AZURE,brazilsouth,Standard_E32ps_v6,reserved_1y,NA,1.383904,USD,Azure Retail Prices API,2025-12-18T04:46:57.523482 +AZURE,brazilsouth,Standard_E32ps_v6,reserved_3y,NA,0.891324,USD,Azure Retail Prices API,2025-12-18T04:46:57.523486 +AZURE,brazilsouth,Standard_E32ps_v6,spot,NA,0.433541,USD,Azure Retail Prices API,2025-12-18T04:46:56.080559 +AZURE,brazilsouth,Standard_E32s_v3,on_demand,NA,3.758,USD,Azure Retail Prices API,2025-12-18T04:46:56.080531 +AZURE,brazilsouth,Standard_E32s_v3,reserved_1y,NA,2.634247,USD,Azure Retail Prices API,2025-12-18T04:46:57.520797 +AZURE,brazilsouth,Standard_E32s_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:46:57.520801 +AZURE,brazilsouth,Standard_E32s_v3,spot,NA,0.694478,USD,Azure Retail Prices API,2025-12-18T04:46:56.080761 +AZURE,brazilsouth,Standard_E32s_v4,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:56.081578 +AZURE,brazilsouth,Standard_E32s_v4,reserved_1y,NA,1.890982,USD,Azure Retail Prices API,2025-12-18T04:46:57.522600 +AZURE,brazilsouth,Standard_E32s_v4,reserved_3y,NA,1.209209,USD,Azure Retail Prices API,2025-12-18T04:46:57.522606 +AZURE,brazilsouth,Standard_E32s_v4,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:56.080961 +AZURE,brazilsouth,Standard_E32s_v5,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:56.081944 +AZURE,brazilsouth,Standard_E32s_v5,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:46:57.523281 +AZURE,brazilsouth,Standard_E32s_v5,reserved_3y,NA,1.189916,USD,Azure Retail Prices API,2025-12-18T04:46:57.523285 +AZURE,brazilsouth,Standard_E32s_v5,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:56.080500 +AZURE,brazilsouth,Standard_E48a_v4,on_demand,NA,4.824,USD,Azure Retail Prices API,2025-12-18T04:46:56.081575 +AZURE,brazilsouth,Standard_E48a_v4,reserved_1y,NA,2.83653,USD,Azure Retail Prices API,2025-12-18T04:46:57.522590 +AZURE,brazilsouth,Standard_E48a_v4,reserved_3y,NA,1.813813,USD,Azure Retail Prices API,2025-12-18T04:46:57.522595 +AZURE,brazilsouth,Standard_E48a_v4,spot,NA,0.891475,USD,Azure Retail Prices API,2025-12-18T04:46:56.081569 +AZURE,brazilsouth,Standard_E48ads_v5,on_demand,NA,7.2,USD,Azure Retail Prices API,2025-12-18T04:46:56.081091 +AZURE,brazilsouth,Standard_E48ads_v5,reserved_1y,NA,2.94532,USD,Azure Retail Prices API,2025-12-18T04:46:57.521840 +AZURE,brazilsouth,Standard_E48ads_v5,reserved_3y,NA,1.896956,USD,Azure Retail Prices API,2025-12-18T04:46:57.521844 +AZURE,brazilsouth,Standard_E48ads_v5,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:46:56.080904 +AZURE,brazilsouth,Standard_E48ads_v6,on_demand,NA,5.587,USD,Azure Retail Prices API,2025-12-18T04:46:56.081704 +AZURE,brazilsouth,Standard_E48ads_v6,reserved_1y,NA,3.296461,USD,Azure Retail Prices API,2025-12-18T04:46:57.522856 +AZURE,brazilsouth,Standard_E48ads_v6,reserved_3y,NA,2.123135,USD,Azure Retail Prices API,2025-12-18T04:46:57.522861 +AZURE,brazilsouth,Standard_E48ads_v6,spot,NA,1.032478,USD,Azure Retail Prices API,2025-12-18T04:46:56.081153 +AZURE,brazilsouth,Standard_E48as_v4,on_demand,NA,4.824,USD,Azure Retail Prices API,2025-12-18T04:46:56.082084 +AZURE,brazilsouth,Standard_E48as_v4,reserved_1y,NA,2.83653,USD,Azure Retail Prices API,2025-12-18T04:46:57.523501 +AZURE,brazilsouth,Standard_E48as_v4,reserved_3y,NA,1.813813,USD,Azure Retail Prices API,2025-12-18T04:46:57.523506 +AZURE,brazilsouth,Standard_E48as_v4,spot,NA,0.891475,USD,Azure Retail Prices API,2025-12-18T04:46:56.082063 +AZURE,brazilsouth,Standard_E48as_v5,on_demand,NA,6.552,USD,Azure Retail Prices API,2025-12-18T04:46:56.081077 +AZURE,brazilsouth,Standard_E48as_v5,reserved_1y,NA,2.563014,USD,Azure Retail Prices API,2025-12-18T04:46:57.523242 +AZURE,brazilsouth,Standard_E48as_v5,reserved_3y,NA,1.650723,USD,Azure Retail Prices API,2025-12-18T04:46:57.523248 +AZURE,brazilsouth,Standard_E48as_v5,spot,NA,0.802771,USD,Azure Retail Prices API,2025-12-18T04:46:56.082092 +AZURE,brazilsouth,Standard_E48d_v4,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:46:56.080525 +AZURE,brazilsouth,Standard_E48d_v4,reserved_1y,NA,3.21758,USD,Azure Retail Prices API,2025-12-18T04:46:57.520787 +AZURE,brazilsouth,Standard_E48d_v4,reserved_3y,NA,2.057458,USD,Azure Retail Prices API,2025-12-18T04:46:57.520792 +AZURE,brazilsouth,Standard_E48d_v4,spot,NA,1.061568,USD,Azure Retail Prices API,2025-12-18T04:46:56.080551 +AZURE,brazilsouth,Standard_E48ds_v4,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:46:56.081604 +AZURE,brazilsouth,Standard_E48ds_v4,reserved_1y,NA,3.21758,USD,Azure Retail Prices API,2025-12-18T04:46:57.522663 +AZURE,brazilsouth,Standard_E48ds_v4,reserved_3y,NA,2.057458,USD,Azure Retail Prices API,2025-12-18T04:46:57.522668 +AZURE,brazilsouth,Standard_E48ds_v4,spot,NA,1.061568,USD,Azure Retail Prices API,2025-12-18T04:46:56.081281 +AZURE,brazilsouth,Standard_E48ds_v5,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:46:56.081466 +AZURE,brazilsouth,Standard_E48ds_v5,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:46:57.522418 +AZURE,brazilsouth,Standard_E48ds_v5,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:46:57.522423 +AZURE,brazilsouth,Standard_E48ds_v5,spot,NA,1.061568,USD,Azure Retail Prices API,2025-12-18T04:46:56.082035 +AZURE,brazilsouth,Standard_E48ds_v6,on_demand,NA,6.261,USD,Azure Retail Prices API,2025-12-18T04:46:56.081123 +AZURE,brazilsouth,Standard_E48ds_v6,reserved_1y,NA,3.881621,USD,Azure Retail Prices API,2025-12-18T04:46:57.521778 +AZURE,brazilsouth,Standard_E48ds_v6,reserved_3y,NA,2.441667,USD,Azure Retail Prices API,2025-12-18T04:46:57.521783 +AZURE,brazilsouth,Standard_E48ds_v6,spot,NA,1.157033,USD,Azure Retail Prices API,2025-12-18T04:46:56.081326 +AZURE,brazilsouth,Standard_E48pds_v6,on_demand,NA,4.459,USD,Azure Retail Prices API,2025-12-18T04:46:56.081620 +AZURE,brazilsouth,Standard_E48pds_v6,reserved_1y,NA,2.630936,USD,Azure Retail Prices API,2025-12-18T04:46:57.522714 +AZURE,brazilsouth,Standard_E48pds_v6,reserved_3y,NA,1.694482,USD,Azure Retail Prices API,2025-12-18T04:46:57.522720 +AZURE,brazilsouth,Standard_E48pds_v6,spot,NA,0.824023,USD,Azure Retail Prices API,2025-12-18T04:46:56.081857 +AZURE,brazilsouth,Standard_E48ps_v6,on_demand,NA,3.518,USD,Azure Retail Prices API,2025-12-18T04:46:56.080537 +AZURE,brazilsouth,Standard_E48ps_v6,reserved_1y,NA,2.075799,USD,Azure Retail Prices API,2025-12-18T04:46:57.520806 +AZURE,brazilsouth,Standard_E48ps_v6,reserved_3y,NA,1.336986,USD,Azure Retail Prices API,2025-12-18T04:46:57.520810 +AZURE,brazilsouth,Standard_E48ps_v6,spot,NA,0.650126,USD,Azure Retail Prices API,2025-12-18T04:46:56.080572 +AZURE,brazilsouth,Standard_E48s_v4,on_demand,NA,4.824,USD,Azure Retail Prices API,2025-12-18T04:46:56.081059 +AZURE,brazilsouth,Standard_E48s_v4,reserved_1y,NA,2.83653,USD,Azure Retail Prices API,2025-12-18T04:46:57.521686 +AZURE,brazilsouth,Standard_E48s_v4,reserved_3y,NA,1.813813,USD,Azure Retail Prices API,2025-12-18T04:46:57.521691 +AZURE,brazilsouth,Standard_E48s_v4,spot,NA,0.891475,USD,Azure Retail Prices API,2025-12-18T04:46:56.080639 +AZURE,brazilsouth,Standard_E48s_v5,on_demand,NA,4.824,USD,Azure Retail Prices API,2025-12-18T04:46:56.081106 +AZURE,brazilsouth,Standard_E48s_v5,reserved_1y,NA,2.846119,USD,Azure Retail Prices API,2025-12-18T04:46:57.521768 +AZURE,brazilsouth,Standard_E48s_v5,reserved_3y,NA,1.784893,USD,Azure Retail Prices API,2025-12-18T04:46:57.521773 +AZURE,brazilsouth,Standard_E48s_v5,spot,NA,0.891475,USD,Azure Retail Prices API,2025-12-18T04:46:56.081257 +AZURE,brazilsouth,Standard_E4_v3,on_demand,NA,0.47,USD,Azure Retail Prices API,2025-12-18T04:46:56.080896 +AZURE,brazilsouth,Standard_E4_v3,reserved_1y,NA,0.329224,USD,Azure Retail Prices API,2025-12-18T04:46:57.521385 +AZURE,brazilsouth,Standard_E4_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:46:57.521393 +AZURE,brazilsouth,Standard_E4_v3,spot,NA,0.086856,USD,Azure Retail Prices API,2025-12-18T04:46:56.081403 +AZURE,brazilsouth,Standard_E4a_v4,on_demand,NA,0.402,USD,Azure Retail Prices API,2025-12-18T04:46:56.082054 +AZURE,brazilsouth,Standard_E4a_v4,reserved_1y,NA,0.236416,USD,Azure Retail Prices API,2025-12-18T04:46:57.523463 +AZURE,brazilsouth,Standard_E4a_v4,reserved_3y,NA,0.151142,USD,Azure Retail Prices API,2025-12-18T04:46:57.523468 +AZURE,brazilsouth,Standard_E4a_v4,spot,NA,0.07429,USD,Azure Retail Prices API,2025-12-18T04:46:56.081890 +AZURE,brazilsouth,Standard_E4ads_v5,on_demand,NA,0.416,USD,Azure Retail Prices API,2025-12-18T04:46:56.080519 +AZURE,brazilsouth,Standard_E4ads_v5,reserved_1y,NA,0.245434,USD,Azure Retail Prices API,2025-12-18T04:46:57.520776 +AZURE,brazilsouth,Standard_E4ads_v5,reserved_3y,NA,0.158067,USD,Azure Retail Prices API,2025-12-18T04:46:57.520781 +AZURE,brazilsouth,Standard_E4ads_v5,spot,NA,0.076877,USD,Azure Retail Prices API,2025-12-18T04:46:56.080767 +AZURE,brazilsouth,Standard_E4ads_v6,on_demand,NA,0.466,USD,Azure Retail Prices API,2025-12-18T04:46:56.081088 +AZURE,brazilsouth,Standard_E4ads_v6,reserved_1y,NA,0.274658,USD,Azure Retail Prices API,2025-12-18T04:46:57.521728 +AZURE,brazilsouth,Standard_E4ads_v6,reserved_3y,NA,0.176941,USD,Azure Retail Prices API,2025-12-18T04:46:57.521733 +AZURE,brazilsouth,Standard_E4ads_v6,spot,NA,0.086117,USD,Azure Retail Prices API,2025-12-18T04:46:56.081838 +AZURE,brazilsouth,Standard_E4as_v4,on_demand,NA,0.402,USD,Azure Retail Prices API,2025-12-18T04:46:56.081183 +AZURE,brazilsouth,Standard_E4as_v4,reserved_1y,NA,0.236416,USD,Azure Retail Prices API,2025-12-18T04:46:57.521849 +AZURE,brazilsouth,Standard_E4as_v4,reserved_3y,NA,0.151142,USD,Azure Retail Prices API,2025-12-18T04:46:57.521854 +AZURE,brazilsouth,Standard_E4as_v4,spot,NA,0.07429,USD,Azure Retail Prices API,2025-12-18T04:46:56.080946 +AZURE,brazilsouth,Standard_E4as_v5,on_demand,NA,0.546,USD,Azure Retail Prices API,2025-12-18T04:46:56.080933 +AZURE,brazilsouth,Standard_E4as_v5,reserved_1y,NA,0.213584,USD,Azure Retail Prices API,2025-12-18T04:46:57.521971 +AZURE,brazilsouth,Standard_E4as_v5,reserved_3y,NA,0.137557,USD,Azure Retail Prices API,2025-12-18T04:46:57.521976 +AZURE,brazilsouth,Standard_E4as_v5,spot,NA,0.066898,USD,Azure Retail Prices API,2025-12-18T04:46:56.081165 +AZURE,brazilsouth,Standard_E4d_v4,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:46:56.081796 +AZURE,brazilsouth,Standard_E4d_v4,reserved_1y,NA,0.268151,USD,Azure Retail Prices API,2025-12-18T04:46:57.523029 +AZURE,brazilsouth,Standard_E4d_v4,reserved_3y,NA,0.171461,USD,Azure Retail Prices API,2025-12-18T04:46:57.523034 +AZURE,brazilsouth,Standard_E4d_v4,spot,NA,0.088464,USD,Azure Retail Prices API,2025-12-18T04:46:56.080681 +AZURE,brazilsouth,Standard_E4ds_v4,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:46:56.081657 +AZURE,brazilsouth,Standard_E4ds_v4,reserved_1y,NA,0.268151,USD,Azure Retail Prices API,2025-12-18T04:46:57.522766 +AZURE,brazilsouth,Standard_E4ds_v4,reserved_3y,NA,0.171461,USD,Azure Retail Prices API,2025-12-18T04:46:57.522771 +AZURE,brazilsouth,Standard_E4ds_v4,spot,NA,0.088464,USD,Azure Retail Prices API,2025-12-18T04:46:56.081715 +AZURE,brazilsouth,Standard_E4ds_v5,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:46:56.081701 +AZURE,brazilsouth,Standard_E4ds_v5,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:46:57.522846 +AZURE,brazilsouth,Standard_E4ds_v5,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:46:57.522851 +AZURE,brazilsouth,Standard_E4ds_v5,spot,NA,0.088464,USD,Azure Retail Prices API,2025-12-18T04:46:56.080944 +AZURE,brazilsouth,Standard_E4ds_v6,on_demand,NA,0.522,USD,Azure Retail Prices API,2025-12-18T04:46:56.081224 +AZURE,brazilsouth,Standard_E4ds_v6,reserved_1y,NA,0.323516,USD,Azure Retail Prices API,2025-12-18T04:46:57.521931 +AZURE,brazilsouth,Standard_E4ds_v6,reserved_3y,NA,0.203463,USD,Azure Retail Prices API,2025-12-18T04:46:57.521935 +AZURE,brazilsouth,Standard_E4ds_v6,spot,NA,0.096466,USD,Azure Retail Prices API,2025-12-18T04:46:56.082081 +AZURE,brazilsouth,Standard_E4pds_v6,on_demand,NA,0.372,USD,Azure Retail Prices API,2025-12-18T04:46:56.081451 +AZURE,brazilsouth,Standard_E4pds_v6,reserved_1y,NA,0.219292,USD,Azure Retail Prices API,2025-12-18T04:46:57.522363 +AZURE,brazilsouth,Standard_E4pds_v6,reserved_3y,NA,0.14121,USD,Azure Retail Prices API,2025-12-18T04:46:57.522370 +AZURE,brazilsouth,Standard_E4pds_v6,spot,NA,0.068746,USD,Azure Retail Prices API,2025-12-18T04:46:56.081803 +AZURE,brazilsouth,Standard_E4ps_v6,on_demand,NA,0.293,USD,Azure Retail Prices API,2025-12-18T04:46:56.080927 +AZURE,brazilsouth,Standard_E4ps_v6,reserved_1y,NA,0.172945,USD,Azure Retail Prices API,2025-12-18T04:46:57.521456 +AZURE,brazilsouth,Standard_E4ps_v6,reserved_3y,NA,0.111416,USD,Azure Retail Prices API,2025-12-18T04:46:57.521461 +AZURE,brazilsouth,Standard_E4ps_v6,spot,NA,0.054146,USD,Azure Retail Prices API,2025-12-18T04:46:56.081855 +AZURE,brazilsouth,Standard_E4s_v4,on_demand,NA,0.402,USD,Azure Retail Prices API,2025-12-18T04:46:56.080969 +AZURE,brazilsouth,Standard_E4s_v4,reserved_1y,NA,0.236416,USD,Azure Retail Prices API,2025-12-18T04:46:57.521511 +AZURE,brazilsouth,Standard_E4s_v4,reserved_3y,NA,0.151142,USD,Azure Retail Prices API,2025-12-18T04:46:57.521517 +AZURE,brazilsouth,Standard_E4s_v4,spot,NA,0.07429,USD,Azure Retail Prices API,2025-12-18T04:46:56.081966 +AZURE,brazilsouth,Standard_E4s_v5,on_demand,NA,0.402,USD,Azure Retail Prices API,2025-12-18T04:46:56.082019 +AZURE,brazilsouth,Standard_E4s_v5,reserved_1y,NA,0.237215,USD,Azure Retail Prices API,2025-12-18T04:46:57.523395 +AZURE,brazilsouth,Standard_E4s_v5,reserved_3y,NA,0.148744,USD,Azure Retail Prices API,2025-12-18T04:46:57.523400 +AZURE,brazilsouth,Standard_E4s_v5,spot,NA,0.07429,USD,Azure Retail Prices API,2025-12-18T04:46:56.081680 +AZURE,brazilsouth,Standard_E64_v3,on_demand,NA,6.764,USD,Azure Retail Prices API,2025-12-18T04:46:56.080503 +AZURE,brazilsouth,Standard_E64_v3,reserved_1y,NA,4.965525,USD,Azure Retail Prices API,2025-12-18T04:46:57.520747 +AZURE,brazilsouth,Standard_E64_v3,reserved_3y,NA,3.175228,USD,Azure Retail Prices API,2025-12-18T04:46:57.520751 +AZURE,brazilsouth,Standard_E64_v3,spot,NA,1.249987,USD,Azure Retail Prices API,2025-12-18T04:46:56.080606 +AZURE,brazilsouth,Standard_E64a_v4,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:56.081895 +AZURE,brazilsouth,Standard_E64a_v4,reserved_1y,NA,3.781963,USD,Azure Retail Prices API,2025-12-18T04:46:57.523195 +AZURE,brazilsouth,Standard_E64a_v4,reserved_3y,NA,2.418417,USD,Azure Retail Prices API,2025-12-18T04:46:57.523200 +AZURE,brazilsouth,Standard_E64a_v4,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:56.080770 +AZURE,brazilsouth,Standard_E64ads_v5,on_demand,NA,6.656,USD,Azure Retail Prices API,2025-12-18T04:46:56.080704 +AZURE,brazilsouth,Standard_E64ads_v5,reserved_1y,NA,3.927055,USD,Azure Retail Prices API,2025-12-18T04:46:57.521049 +AZURE,brazilsouth,Standard_E64ads_v5,reserved_3y,NA,2.529262,USD,Azure Retail Prices API,2025-12-18T04:46:57.521054 +AZURE,brazilsouth,Standard_E64ads_v5,spot,NA,1.230029,USD,Azure Retail Prices API,2025-12-18T04:46:56.081785 +AZURE,brazilsouth,Standard_E64ads_v6,on_demand,NA,7.45,USD,Azure Retail Prices API,2025-12-18T04:46:56.080654 +AZURE,brazilsouth,Standard_E64ads_v6,reserved_1y,NA,4.39532,USD,Azure Retail Prices API,2025-12-18T04:46:57.520979 +AZURE,brazilsouth,Standard_E64ads_v6,reserved_3y,NA,2.83086,USD,Azure Retail Prices API,2025-12-18T04:46:57.520984 +AZURE,brazilsouth,Standard_E64ads_v6,spot,NA,1.37676,USD,Azure Retail Prices API,2025-12-18T04:46:56.080715 +AZURE,brazilsouth,Standard_E64as_v4,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:56.081286 +AZURE,brazilsouth,Standard_E64as_v4,reserved_1y,NA,3.781963,USD,Azure Retail Prices API,2025-12-18T04:46:57.522048 +AZURE,brazilsouth,Standard_E64as_v4,reserved_3y,NA,2.418417,USD,Azure Retail Prices API,2025-12-18T04:46:57.522054 +AZURE,brazilsouth,Standard_E64as_v4,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:56.080528 +AZURE,brazilsouth,Standard_E64as_v5,on_demand,NA,8.736,USD,Azure Retail Prices API,2025-12-18T04:46:56.080487 +AZURE,brazilsouth,Standard_E64as_v5,reserved_1y,NA,3.417237,USD,Azure Retail Prices API,2025-12-18T04:46:57.521152 +AZURE,brazilsouth,Standard_E64as_v5,reserved_3y,NA,2.200951,USD,Azure Retail Prices API,2025-12-18T04:46:57.521157 +AZURE,brazilsouth,Standard_E64as_v5,spot,NA,1.070362,USD,Azure Retail Prices API,2025-12-18T04:46:56.080695 +AZURE,brazilsouth,Standard_E64d_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:56.080980 +AZURE,brazilsouth,Standard_E64d_v4,reserved_1y,NA,4.290068,USD,Azure Retail Prices API,2025-12-18T04:46:57.521525 +AZURE,brazilsouth,Standard_E64d_v4,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:57.521531 +AZURE,brazilsouth,Standard_E64d_v4,spot,NA,1.415424,USD,Azure Retail Prices API,2025-12-18T04:46:56.081177 +AZURE,brazilsouth,Standard_E64ds_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:56.080854 +AZURE,brazilsouth,Standard_E64ds_v4,reserved_1y,NA,4.290068,USD,Azure Retail Prices API,2025-12-18T04:46:57.521294 +AZURE,brazilsouth,Standard_E64ds_v4,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:57.521299 +AZURE,brazilsouth,Standard_E64ds_v4,spot,NA,1.415424,USD,Azure Retail Prices API,2025-12-18T04:46:56.081343 +AZURE,brazilsouth,Standard_E64ds_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:56.081444 +AZURE,brazilsouth,Standard_E64ds_v5,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:46:57.522333 +AZURE,brazilsouth,Standard_E64ds_v5,reserved_3y,NA,2.772489,USD,Azure Retail Prices API,2025-12-18T04:46:57.522341 +AZURE,brazilsouth,Standard_E64ds_v5,spot,NA,1.415424,USD,Azure Retail Prices API,2025-12-18T04:46:56.082016 +AZURE,brazilsouth,Standard_E64ds_v6,on_demand,NA,8.348,USD,Azure Retail Prices API,2025-12-18T04:46:56.081612 +AZURE,brazilsouth,Standard_E64ds_v6,reserved_1y,NA,5.175457,USD,Azure Retail Prices API,2025-12-18T04:46:57.522684 +AZURE,brazilsouth,Standard_E64ds_v6,reserved_3y,NA,3.255518,USD,Azure Retail Prices API,2025-12-18T04:46:57.522689 +AZURE,brazilsouth,Standard_E64ds_v6,spot,NA,1.54271,USD,Azure Retail Prices API,2025-12-18T04:46:56.081439 +AZURE,brazilsouth,Standard_E64pds_v6,on_demand,NA,5.946,USD,Azure Retail Prices API,2025-12-18T04:46:56.081174 +AZURE,brazilsouth,Standard_E64pds_v6,reserved_1y,NA,3.507877,USD,Azure Retail Prices API,2025-12-18T04:46:57.521829 +AZURE,brazilsouth,Standard_E64pds_v6,reserved_3y,NA,2.259323,USD,Azure Retail Prices API,2025-12-18T04:46:57.521834 +AZURE,brazilsouth,Standard_E64pds_v6,spot,NA,1.098821,USD,Azure Retail Prices API,2025-12-18T04:46:56.081254 +AZURE,brazilsouth,Standard_E64ps_v6,on_demand,NA,4.691,USD,Azure Retail Prices API,2025-12-18T04:46:56.081233 +AZURE,brazilsouth,Standard_E64ps_v6,reserved_1y,NA,2.767808,USD,Azure Retail Prices API,2025-12-18T04:46:57.521961 +AZURE,brazilsouth,Standard_E64ps_v6,reserved_3y,NA,1.782648,USD,Azure Retail Prices API,2025-12-18T04:46:57.521966 +AZURE,brazilsouth,Standard_E64ps_v6,spot,NA,0.866897,USD,Azure Retail Prices API,2025-12-18T04:46:56.081274 +AZURE,brazilsouth,Standard_E64s_v3,on_demand,NA,6.764,USD,Azure Retail Prices API,2025-12-18T04:46:56.081138 +AZURE,brazilsouth,Standard_E64s_v3,reserved_1y,NA,4.965525,USD,Azure Retail Prices API,2025-12-18T04:46:57.521798 +AZURE,brazilsouth,Standard_E64s_v3,reserved_3y,NA,3.175228,USD,Azure Retail Prices API,2025-12-18T04:46:57.521804 +AZURE,brazilsouth,Standard_E64s_v3,spot,NA,1.249987,USD,Azure Retail Prices API,2025-12-18T04:46:56.080669 +AZURE,brazilsouth,Standard_E64s_v4,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:56.081386 +AZURE,brazilsouth,Standard_E64s_v4,reserved_1y,NA,3.781963,USD,Azure Retail Prices API,2025-12-18T04:46:57.522216 +AZURE,brazilsouth,Standard_E64s_v4,reserved_3y,NA,2.418417,USD,Azure Retail Prices API,2025-12-18T04:46:57.522223 +AZURE,brazilsouth,Standard_E64s_v4,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:56.081355 +AZURE,brazilsouth,Standard_E64s_v5,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:56.082078 +AZURE,brazilsouth,Standard_E64s_v5,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:46:57.523491 +AZURE,brazilsouth,Standard_E64s_v5,reserved_3y,NA,2.379833,USD,Azure Retail Prices API,2025-12-18T04:46:57.523496 +AZURE,brazilsouth,Standard_E64s_v5,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:56.081109 +AZURE,brazilsouth,Standard_E80ids_v4,on_demand,NA,9.12,USD,Azure Retail Prices API,2025-12-18T04:46:56.081050 +AZURE,brazilsouth,Standard_E80ids_v4,reserved_1y,NA,5.363014,USD,Azure Retail Prices API,2025-12-18T04:46:57.521675 +AZURE,brazilsouth,Standard_E80ids_v4,reserved_3y,NA,3.429224,USD,Azure Retail Prices API,2025-12-18T04:46:57.521680 +AZURE,brazilsouth,Standard_E80ids_v4,spot,NA,1.76928,USD,Azure Retail Prices API,2025-12-18T04:46:56.081808 +AZURE,brazilsouth,Standard_E80is_v4,on_demand,NA,8.04,USD,Azure Retail Prices API,2025-12-18T04:46:56.082046 +AZURE,brazilsouth,Standard_E80is_v4,reserved_1y,NA,4.728311,USD,Azure Retail Prices API,2025-12-18T04:46:57.523444 +AZURE,brazilsouth,Standard_E80is_v4,reserved_3y,NA,3.022831,USD,Azure Retail Prices API,2025-12-18T04:46:57.523449 +AZURE,brazilsouth,Standard_E80is_v4,spot,NA,1.485792,USD,Azure Retail Prices API,2025-12-18T04:46:56.080722 +AZURE,brazilsouth,Standard_E8_v3,on_demand,NA,0.94,USD,Azure Retail Prices API,2025-12-18T04:46:56.081660 +AZURE,brazilsouth,Standard_E8_v3,reserved_1y,NA,0.658562,USD,Azure Retail Prices API,2025-12-18T04:46:57.522776 +AZURE,brazilsouth,Standard_E8_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:57.522781 +AZURE,brazilsouth,Standard_E8_v3,spot,NA,0.173712,USD,Azure Retail Prices API,2025-12-18T04:46:56.081454 +AZURE,brazilsouth,Standard_E8a_v4,on_demand,NA,0.804,USD,Azure Retail Prices API,2025-12-18T04:46:56.080516 +AZURE,brazilsouth,Standard_E8a_v4,reserved_1y,NA,0.472717,USD,Azure Retail Prices API,2025-12-18T04:46:57.520766 +AZURE,brazilsouth,Standard_E8a_v4,reserved_3y,NA,0.302321,USD,Azure Retail Prices API,2025-12-18T04:46:57.520771 +AZURE,brazilsouth,Standard_E8a_v4,spot,NA,0.148579,USD,Azure Retail Prices API,2025-12-18T04:46:56.080631 +AZURE,brazilsouth,Standard_E8ads_v5,on_demand,NA,0.832,USD,Azure Retail Prices API,2025-12-18T04:46:56.081200 +AZURE,brazilsouth,Standard_E8ads_v5,reserved_1y,NA,0.490868,USD,Azure Retail Prices API,2025-12-18T04:46:57.521889 +AZURE,brazilsouth,Standard_E8ads_v5,reserved_3y,NA,0.316172,USD,Azure Retail Prices API,2025-12-18T04:46:57.521895 +AZURE,brazilsouth,Standard_E8ads_v5,spot,NA,0.153754,USD,Azure Retail Prices API,2025-12-18T04:46:56.081097 +AZURE,brazilsouth,Standard_E8ads_v6,on_demand,NA,0.931,USD,Azure Retail Prices API,2025-12-18T04:46:56.080600 +AZURE,brazilsouth,Standard_E8ads_v6,reserved_1y,NA,0.549429,USD,Azure Retail Prices API,2025-12-18T04:46:57.520922 +AZURE,brazilsouth,Standard_E8ads_v6,reserved_3y,NA,0.353843,USD,Azure Retail Prices API,2025-12-18T04:46:57.520926 +AZURE,brazilsouth,Standard_E8ads_v6,spot,NA,0.172049,USD,Azure Retail Prices API,2025-12-18T04:46:56.080597 +AZURE,brazilsouth,Standard_E8as_v4,on_demand,NA,0.804,USD,Azure Retail Prices API,2025-12-18T04:46:56.081460 +AZURE,brazilsouth,Standard_E8as_v4,reserved_1y,NA,0.472717,USD,Azure Retail Prices API,2025-12-18T04:46:57.522397 +AZURE,brazilsouth,Standard_E8as_v4,reserved_3y,NA,0.302321,USD,Azure Retail Prices API,2025-12-18T04:46:57.522403 +AZURE,brazilsouth,Standard_E8as_v4,spot,NA,0.148579,USD,Azure Retail Prices API,2025-12-18T04:46:56.080684 +AZURE,brazilsouth,Standard_E8as_v5,on_demand,NA,0.724,USD,Azure Retail Prices API,2025-12-18T04:46:56.080619 +AZURE,brazilsouth,Standard_E8as_v5,reserved_1y,NA,0.427169,USD,Azure Retail Prices API,2025-12-18T04:46:57.520941 +AZURE,brazilsouth,Standard_E8as_v5,reserved_3y,NA,0.275114,USD,Azure Retail Prices API,2025-12-18T04:46:57.520945 +AZURE,brazilsouth,Standard_E8as_v5,spot,NA,0.133795,USD,Azure Retail Prices API,2025-12-18T04:46:56.081819 +AZURE,brazilsouth,Standard_E8d_v4,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:46:56.080731 +AZURE,brazilsouth,Standard_E8d_v4,reserved_1y,NA,0.536301,USD,Azure Retail Prices API,2025-12-18T04:46:57.521069 +AZURE,brazilsouth,Standard_E8d_v4,reserved_3y,NA,0.342922,USD,Azure Retail Prices API,2025-12-18T04:46:57.521073 +AZURE,brazilsouth,Standard_E8d_v4,spot,NA,0.176928,USD,Azure Retail Prices API,2025-12-18T04:46:56.081920 +AZURE,brazilsouth,Standard_E8ds_v4,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:46:56.080958 +AZURE,brazilsouth,Standard_E8ds_v4,reserved_1y,NA,0.536301,USD,Azure Retail Prices API,2025-12-18T04:46:57.521499 +AZURE,brazilsouth,Standard_E8ds_v4,reserved_3y,NA,0.342922,USD,Azure Retail Prices API,2025-12-18T04:46:57.521506 +AZURE,brazilsouth,Standard_E8ds_v4,spot,NA,0.176928,USD,Azure Retail Prices API,2025-12-18T04:46:56.081144 +AZURE,brazilsouth,Standard_E8ds_v5,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:46:56.081718 +AZURE,brazilsouth,Standard_E8ds_v5,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:46:57.522897 +AZURE,brazilsouth,Standard_E8ds_v5,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:46:57.522902 +AZURE,brazilsouth,Standard_E8ds_v5,spot,NA,0.176928,USD,Azure Retail Prices API,2025-12-18T04:46:56.081869 +AZURE,brazilsouth,Standard_E8ds_v6,on_demand,NA,1.043,USD,Azure Retail Prices API,2025-12-18T04:46:56.080845 +AZURE,brazilsouth,Standard_E8ds_v6,reserved_1y,NA,0.646918,USD,Azure Retail Prices API,2025-12-18T04:46:57.521285 +AZURE,brazilsouth,Standard_E8ds_v6,reserved_3y,NA,0.406925,USD,Azure Retail Prices API,2025-12-18T04:46:57.521289 +AZURE,brazilsouth,Standard_E8ds_v6,spot,NA,0.192746,USD,Azure Retail Prices API,2025-12-18T04:46:56.081942 +AZURE,brazilsouth,Standard_E8pds_v6,on_demand,NA,0.743,USD,Azure Retail Prices API,2025-12-18T04:46:56.081042 +AZURE,brazilsouth,Standard_E8pds_v6,reserved_1y,NA,0.43847,USD,Azure Retail Prices API,2025-12-18T04:46:57.521633 +AZURE,brazilsouth,Standard_E8pds_v6,reserved_3y,NA,0.28242,USD,Azure Retail Prices API,2025-12-18T04:46:57.521638 +AZURE,brazilsouth,Standard_E8pds_v6,spot,NA,0.137306,USD,Azure Retail Prices API,2025-12-18T04:46:56.081563 +AZURE,brazilsouth,Standard_E8ps_v6,on_demand,NA,0.586,USD,Azure Retail Prices API,2025-12-18T04:46:56.081079 +AZURE,brazilsouth,Standard_E8ps_v6,reserved_1y,NA,0.346005,USD,Azure Retail Prices API,2025-12-18T04:46:57.521717 +AZURE,brazilsouth,Standard_E8ps_v6,reserved_3y,NA,0.222831,USD,Azure Retail Prices API,2025-12-18T04:46:57.521723 +AZURE,brazilsouth,Standard_E8ps_v6,spot,NA,0.108293,USD,Azure Retail Prices API,2025-12-18T04:46:56.080642 +AZURE,brazilsouth,Standard_E8s_v3,on_demand,NA,0.94,USD,Azure Retail Prices API,2025-12-18T04:46:56.080483 +AZURE,brazilsouth,Standard_E8s_v3,reserved_1y,NA,0.658562,USD,Azure Retail Prices API,2025-12-18T04:46:57.520717 +AZURE,brazilsouth,Standard_E8s_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:46:57.520721 +AZURE,brazilsouth,Standard_E8s_v3,spot,NA,0.173712,USD,Azure Retail Prices API,2025-12-18T04:46:56.081031 +AZURE,brazilsouth,Standard_E8s_v4,on_demand,NA,0.804,USD,Azure Retail Prices API,2025-12-18T04:46:56.080545 +AZURE,brazilsouth,Standard_E8s_v4,reserved_1y,NA,0.472717,USD,Azure Retail Prices API,2025-12-18T04:46:57.520834 +AZURE,brazilsouth,Standard_E8s_v4,reserved_3y,NA,0.302321,USD,Azure Retail Prices API,2025-12-18T04:46:57.520839 +AZURE,brazilsouth,Standard_E8s_v4,spot,NA,0.148579,USD,Azure Retail Prices API,2025-12-18T04:46:56.081022 +AZURE,brazilsouth,Standard_E8s_v5,on_demand,NA,0.804,USD,Azure Retail Prices API,2025-12-18T04:46:56.081811 +AZURE,brazilsouth,Standard_E8s_v5,reserved_1y,NA,0.474315,USD,Azure Retail Prices API,2025-12-18T04:46:57.523057 +AZURE,brazilsouth,Standard_E8s_v5,reserved_3y,NA,0.297489,USD,Azure Retail Prices API,2025-12-18T04:46:57.523100 +AZURE,brazilsouth,Standard_E8s_v5,spot,NA,0.148579,USD,Azure Retail Prices API,2025-12-18T04:46:56.081003 +AZURE,brazilsouth,Standard_E96a_v4,on_demand,NA,9.648,USD,Azure Retail Prices API,2025-12-18T04:46:56.080540 +AZURE,brazilsouth,Standard_E96a_v4,reserved_1y,NA,5.673059,USD,Azure Retail Prices API,2025-12-18T04:46:57.520815 +AZURE,brazilsouth,Standard_E96a_v4,reserved_3y,NA,3.627664,USD,Azure Retail Prices API,2025-12-18T04:46:57.520820 +AZURE,brazilsouth,Standard_E96a_v4,spot,NA,1.78295,USD,Azure Retail Prices API,2025-12-18T04:46:56.081340 +AZURE,brazilsouth,Standard_E96ads_v5,on_demand,NA,14.4,USD,Azure Retail Prices API,2025-12-18T04:46:56.080562 +AZURE,brazilsouth,Standard_E96ads_v5,reserved_1y,NA,5.890525,USD,Azure Retail Prices API,2025-12-18T04:46:57.522386 +AZURE,brazilsouth,Standard_E96ads_v5,reserved_3y,NA,3.793912,USD,Azure Retail Prices API,2025-12-18T04:46:57.522391 +AZURE,brazilsouth,Standard_E96ads_v5,spot,NA,1.845043,USD,Azure Retail Prices API,2025-12-18T04:46:56.081338 +AZURE,brazilsouth,Standard_E96ads_v6,on_demand,NA,11.174,USD,Azure Retail Prices API,2025-12-18T04:46:56.081323 +AZURE,brazilsouth,Standard_E96ads_v6,reserved_1y,NA,6.592922,USD,Azure Retail Prices API,2025-12-18T04:46:57.522090 +AZURE,brazilsouth,Standard_E96ads_v6,reserved_3y,NA,4.246271,USD,Azure Retail Prices API,2025-12-18T04:46:57.522095 +AZURE,brazilsouth,Standard_E96ads_v6,spot,NA,2.064955,USD,Azure Retail Prices API,2025-12-18T04:46:56.081150 +AZURE,brazilsouth,Standard_E96as_v4,on_demand,NA,9.648,USD,Azure Retail Prices API,2025-12-18T04:46:56.080887 +AZURE,brazilsouth,Standard_E96as_v4,reserved_1y,NA,5.673059,USD,Azure Retail Prices API,2025-12-18T04:46:57.521359 +AZURE,brazilsouth,Standard_E96as_v4,reserved_3y,NA,3.627664,USD,Azure Retail Prices API,2025-12-18T04:46:57.521365 +AZURE,brazilsouth,Standard_E96as_v4,spot,NA,1.78295,USD,Azure Retail Prices API,2025-12-18T04:46:56.081852 +AZURE,brazilsouth,Standard_E96as_v5,on_demand,NA,13.104,USD,Azure Retail Prices API,2025-12-18T04:46:56.081218 +AZURE,brazilsouth,Standard_E96as_v5,reserved_1y,NA,5.125913,USD,Azure Retail Prices API,2025-12-18T04:46:57.522037 +AZURE,brazilsouth,Standard_E96as_v5,reserved_3y,NA,3.301446,USD,Azure Retail Prices API,2025-12-18T04:46:57.522042 +AZURE,brazilsouth,Standard_E96as_v5,spot,NA,1.605542,USD,Azure Retail Prices API,2025-12-18T04:46:56.080785 +AZURE,brazilsouth,Standard_E96ds_v5,on_demand,NA,10.944,USD,Azure Retail Prices API,2025-12-18T04:46:56.080592 +AZURE,brazilsouth,Standard_E96ds_v5,reserved_1y,NA,6.456963,USD,Azure Retail Prices API,2025-12-18T04:46:57.520902 +AZURE,brazilsouth,Standard_E96ds_v5,reserved_3y,NA,4.158714,USD,Azure Retail Prices API,2025-12-18T04:46:57.520907 +AZURE,brazilsouth,Standard_E96ds_v5,spot,NA,2.123136,USD,Azure Retail Prices API,2025-12-18T04:46:56.081053 +AZURE,brazilsouth,Standard_E96ds_v6,on_demand,NA,12.521,USD,Azure Retail Prices API,2025-12-18T04:46:56.081534 +AZURE,brazilsouth,Standard_E96ds_v6,reserved_1y,NA,7.763242,USD,Azure Retail Prices API,2025-12-18T04:46:57.522538 +AZURE,brazilsouth,Standard_E96ds_v6,reserved_3y,NA,4.883295,USD,Azure Retail Prices API,2025-12-18T04:46:57.522544 +AZURE,brazilsouth,Standard_E96ds_v6,spot,NA,2.313881,USD,Azure Retail Prices API,2025-12-18T04:46:56.081958 +AZURE,brazilsouth,Standard_E96pds_v6,on_demand,NA,8.918,USD,Azure Retail Prices API,2025-12-18T04:46:56.081358 +AZURE,brazilsouth,Standard_E96pds_v6,reserved_1y,NA,5.261872,USD,Azure Retail Prices API,2025-12-18T04:46:57.522148 +AZURE,brazilsouth,Standard_E96pds_v6,reserved_3y,NA,3.389003,USD,Azure Retail Prices API,2025-12-18T04:46:57.522155 +AZURE,brazilsouth,Standard_E96pds_v6,spot,NA,1.648046,USD,Azure Retail Prices API,2025-12-18T04:46:56.081745 +AZURE,brazilsouth,Standard_E96ps_v6,on_demand,NA,7.037,USD,Azure Retail Prices API,2025-12-18T04:46:56.080833 +AZURE,brazilsouth,Standard_E96ps_v6,reserved_1y,NA,4.151712,USD,Azure Retail Prices API,2025-12-18T04:46:57.521255 +AZURE,brazilsouth,Standard_E96ps_v6,reserved_3y,NA,2.673973,USD,Azure Retail Prices API,2025-12-18T04:46:57.521260 +AZURE,brazilsouth,Standard_E96ps_v6,spot,NA,1.300438,USD,Azure Retail Prices API,2025-12-18T04:46:56.081566 +AZURE,brazilsouth,Standard_E96s_v5,on_demand,NA,9.648,USD,Azure Retail Prices API,2025-12-18T04:46:56.080698 +AZURE,brazilsouth,Standard_E96s_v5,reserved_1y,NA,5.692352,USD,Azure Retail Prices API,2025-12-18T04:46:57.521029 +AZURE,brazilsouth,Standard_E96s_v5,reserved_3y,NA,3.569749,USD,Azure Retail Prices API,2025-12-18T04:46:57.521034 +AZURE,brazilsouth,Standard_E96s_v5,spot,NA,1.78295,USD,Azure Retail Prices API,2025-12-18T04:46:56.080865 +AZURE,brazilsouth,Standard_EC16ads_v6,on_demand,NA,1.862,USD,Azure Retail Prices API,2025-12-18T04:46:56.081346 +AZURE,brazilsouth,Standard_EC16ads_v6,reserved_1y,NA,1.098858,USD,Azure Retail Prices API,2025-12-18T04:46:57.522111 +AZURE,brazilsouth,Standard_EC16ads_v6,reserved_3y,NA,0.707725,USD,Azure Retail Prices API,2025-12-18T04:46:57.522116 +AZURE,brazilsouth,Standard_EC16ads_v6,spot,NA,0.344098,USD,Azure Retail Prices API,2025-12-18T04:46:56.081782 +AZURE,brazilsouth,Standard_EC16as_v6,on_demand,NA,1.531,USD,Azure Retail Prices API,2025-12-18T04:46:56.081188 +AZURE,brazilsouth,Standard_EC16as_v6,reserved_1y,NA,0.903425,USD,Azure Retail Prices API,2025-12-18T04:46:57.521870 +AZURE,brazilsouth,Standard_EC16as_v6,reserved_3y,NA,0.581849,USD,Azure Retail Prices API,2025-12-18T04:46:57.521875 +AZURE,brazilsouth,Standard_EC16as_v6,spot,NA,0.282929,USD,Azure Retail Prices API,2025-12-18T04:46:56.081901 +AZURE,brazilsouth,Standard_EC2ads_v6,on_demand,NA,0.233,USD,Azure Retail Prices API,2025-12-18T04:46:56.080922 +AZURE,brazilsouth,Standard_EC2ads_v6,reserved_1y,NA,0.137329,USD,Azure Retail Prices API,2025-12-18T04:46:57.521445 +AZURE,brazilsouth,Standard_EC2ads_v6,reserved_3y,NA,0.08847,USD,Azure Retail Prices API,2025-12-18T04:46:57.521452 +AZURE,brazilsouth,Standard_EC2ads_v6,spot,NA,0.043058,USD,Azure Retail Prices API,2025-12-18T04:46:56.081584 +AZURE,brazilsouth,Standard_EC2as_v6,on_demand,NA,0.191,USD,Azure Retail Prices API,2025-12-18T04:46:56.081963 +AZURE,brazilsouth,Standard_EC2as_v6,reserved_1y,NA,0.1129,USD,Azure Retail Prices API,2025-12-18T04:46:57.523300 +AZURE,brazilsouth,Standard_EC2as_v6,reserved_3y,NA,0.072717,USD,Azure Retail Prices API,2025-12-18T04:46:57.523304 +AZURE,brazilsouth,Standard_EC2as_v6,spot,NA,0.035297,USD,Azure Retail Prices API,2025-12-18T04:46:56.081198 +AZURE,brazilsouth,Standard_EC32ads_v6,on_demand,NA,3.725,USD,Azure Retail Prices API,2025-12-18T04:46:56.081008 +AZURE,brazilsouth,Standard_EC32ads_v6,reserved_1y,NA,2.197603,USD,Azure Retail Prices API,2025-12-18T04:46:57.521580 +AZURE,brazilsouth,Standard_EC32ads_v6,reserved_3y,NA,1.415411,USD,Azure Retail Prices API,2025-12-18T04:46:57.521586 +AZURE,brazilsouth,Standard_EC32ads_v6,spot,NA,0.68838,USD,Azure Retail Prices API,2025-12-18T04:46:56.081590 +AZURE,brazilsouth,Standard_EC32as_v6,on_demand,NA,3.062,USD,Azure Retail Prices API,2025-12-18T04:46:56.081615 +AZURE,brazilsouth,Standard_EC32as_v6,reserved_1y,NA,1.806849,USD,Azure Retail Prices API,2025-12-18T04:46:57.522694 +AZURE,brazilsouth,Standard_EC32as_v6,reserved_3y,NA,1.163699,USD,Azure Retail Prices API,2025-12-18T04:46:57.522699 +AZURE,brazilsouth,Standard_EC32as_v6,spot,NA,0.565858,USD,Azure Retail Prices API,2025-12-18T04:46:56.080975 +AZURE,brazilsouth,Standard_EC48ads_v6,on_demand,NA,5.587,USD,Azure Retail Prices API,2025-12-18T04:46:56.080999 +AZURE,brazilsouth,Standard_EC48ads_v6,reserved_1y,NA,3.296461,USD,Azure Retail Prices API,2025-12-18T04:46:57.521570 +AZURE,brazilsouth,Standard_EC48ads_v6,reserved_3y,NA,2.123135,USD,Azure Retail Prices API,2025-12-18T04:46:57.521575 +AZURE,brazilsouth,Standard_EC48ads_v6,spot,NA,1.032478,USD,Azure Retail Prices API,2025-12-18T04:46:56.081793 +AZURE,brazilsouth,Standard_EC48as_v6,on_demand,NA,4.594,USD,Azure Retail Prices API,2025-12-18T04:46:56.081511 +AZURE,brazilsouth,Standard_EC48as_v6,reserved_1y,NA,2.710274,USD,Azure Retail Prices API,2025-12-18T04:46:57.522477 +AZURE,brazilsouth,Standard_EC48as_v6,reserved_3y,NA,1.745586,USD,Azure Retail Prices API,2025-12-18T04:46:57.522481 +AZURE,brazilsouth,Standard_EC48as_v6,spot,NA,0.848971,USD,Azure Retail Prices API,2025-12-18T04:46:56.081928 +AZURE,brazilsouth,Standard_EC4ads_v6,on_demand,NA,0.466,USD,Azure Retail Prices API,2025-12-18T04:46:56.081910 +AZURE,brazilsouth,Standard_EC4ads_v6,reserved_1y,NA,0.274658,USD,Azure Retail Prices API,2025-12-18T04:46:57.523214 +AZURE,brazilsouth,Standard_EC4ads_v6,reserved_3y,NA,0.176941,USD,Azure Retail Prices API,2025-12-18T04:46:57.523219 +AZURE,brazilsouth,Standard_EC4ads_v6,spot,NA,0.086117,USD,Azure Retail Prices API,2025-12-18T04:46:56.081734 +AZURE,brazilsouth,Standard_EC4as_v6,on_demand,NA,0.383,USD,Azure Retail Prices API,2025-12-18T04:46:56.080938 +AZURE,brazilsouth,Standard_EC4as_v6,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:46:57.521466 +AZURE,brazilsouth,Standard_EC4as_v6,reserved_3y,NA,0.145472,USD,Azure Retail Prices API,2025-12-18T04:46:57.521471 +AZURE,brazilsouth,Standard_EC4as_v6,spot,NA,0.070778,USD,Azure Retail Prices API,2025-12-18T04:46:56.081887 +AZURE,brazilsouth,Standard_EC64ads_v6,on_demand,NA,7.45,USD,Azure Retail Prices API,2025-12-18T04:46:56.081045 +AZURE,brazilsouth,Standard_EC64ads_v6,reserved_1y,NA,4.39532,USD,Azure Retail Prices API,2025-12-18T04:46:57.521644 +AZURE,brazilsouth,Standard_EC64ads_v6,reserved_3y,NA,2.83086,USD,Azure Retail Prices API,2025-12-18T04:46:57.521649 +AZURE,brazilsouth,Standard_EC64ads_v6,spot,NA,1.37676,USD,Azure Retail Prices API,2025-12-18T04:46:56.080665 +AZURE,brazilsouth,Standard_EC64as_v6,on_demand,NA,6.125,USD,Azure Retail Prices API,2025-12-18T04:46:56.082060 +AZURE,brazilsouth,Standard_EC64as_v6,reserved_1y,NA,3.613584,USD,Azure Retail Prices API,2025-12-18T04:46:57.523473 +AZURE,brazilsouth,Standard_EC64as_v6,reserved_3y,NA,2.327435,USD,Azure Retail Prices API,2025-12-18T04:46:57.523477 +AZURE,brazilsouth,Standard_EC64as_v6,spot,NA,1.1319,USD,Azure Retail Prices API,2025-12-18T04:46:56.081212 +AZURE,brazilsouth,Standard_EC8ads_v6,on_demand,NA,0.931,USD,Azure Retail Prices API,2025-12-18T04:46:56.081756 +AZURE,brazilsouth,Standard_EC8ads_v6,reserved_1y,NA,0.549429,USD,Azure Retail Prices API,2025-12-18T04:46:57.522991 +AZURE,brazilsouth,Standard_EC8ads_v6,reserved_3y,NA,0.353843,USD,Azure Retail Prices API,2025-12-18T04:46:57.522996 +AZURE,brazilsouth,Standard_EC8ads_v6,spot,NA,0.172049,USD,Azure Retail Prices API,2025-12-18T04:46:56.080822 +AZURE,brazilsouth,Standard_EC8as_v6,on_demand,NA,0.766,USD,Azure Retail Prices API,2025-12-18T04:46:56.081931 +AZURE,brazilsouth,Standard_EC8as_v6,reserved_1y,NA,0.451712,USD,Azure Retail Prices API,2025-12-18T04:46:57.523252 +AZURE,brazilsouth,Standard_EC8as_v6,reserved_3y,NA,0.290944,USD,Azure Retail Prices API,2025-12-18T04:46:57.523257 +AZURE,brazilsouth,Standard_EC8as_v6,spot,NA,0.141557,USD,Azure Retail Prices API,2025-12-18T04:46:56.081771 +AZURE,brazilsouth,Standard_EC96ads_v6,on_demand,NA,11.174,USD,Azure Retail Prices API,2025-12-18T04:46:56.081335 +AZURE,brazilsouth,Standard_EC96ads_v6,reserved_1y,NA,6.592922,USD,Azure Retail Prices API,2025-12-18T04:46:57.522100 +AZURE,brazilsouth,Standard_EC96ads_v6,reserved_3y,NA,4.246271,USD,Azure Retail Prices API,2025-12-18T04:46:57.522105 +AZURE,brazilsouth,Standard_EC96ads_v6,spot,NA,2.064955,USD,Azure Retail Prices API,2025-12-18T04:46:56.081737 +AZURE,brazilsouth,Standard_EC96as_v6,on_demand,NA,9.187,USD,Azure Retail Prices API,2025-12-18T04:46:56.080842 +AZURE,brazilsouth,Standard_EC96as_v6,reserved_1y,NA,5.420434,USD,Azure Retail Prices API,2025-12-18T04:46:57.521276 +AZURE,brazilsouth,Standard_EC96as_v6,reserved_3y,NA,3.491134,USD,Azure Retail Prices API,2025-12-18T04:46:57.521280 +AZURE,brazilsouth,Standard_EC96as_v6,spot,NA,1.697758,USD,Azure Retail Prices API,2025-12-18T04:46:56.080603 +AZURE,brazilsouth,Standard_F16,on_demand,NA,1.155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379850 +AZURE,brazilsouth,Standard_F16,reserved_1y,NA,0.693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379859 +AZURE,brazilsouth,Standard_F16,reserved_3y,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379865 +AZURE,brazilsouth,Standard_F16,spot,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379854 +AZURE,brazilsouth,Standard_F16s,on_demand,NA,1.155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382150 +AZURE,brazilsouth,Standard_F16s,reserved_1y,NA,0.693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382158 +AZURE,brazilsouth,Standard_F16s,reserved_3y,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382162 +AZURE,brazilsouth,Standard_F16s,spot,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382154 +AZURE,brazilsouth,Standard_F16s_v2,on_demand,NA,0.98,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384882 +AZURE,brazilsouth,Standard_F16s_v2,reserved_1y,NA,0.588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384890 +AZURE,brazilsouth,Standard_F16s_v2,reserved_3y,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384896 +AZURE,brazilsouth,Standard_F16s_v2,spot,NA,0.294,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384886 +AZURE,brazilsouth,Standard_F32s_v2,on_demand,NA,1.96,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385722 +AZURE,brazilsouth,Standard_F32s_v2,reserved_1y,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385731 +AZURE,brazilsouth,Standard_F32s_v2,reserved_3y,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385735 +AZURE,brazilsouth,Standard_F32s_v2,spot,NA,0.588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385727 +AZURE,brazilsouth,Standard_F4,on_demand,NA,0.28875,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378304 +AZURE,brazilsouth,Standard_F4,reserved_1y,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378313 +AZURE,brazilsouth,Standard_F4,reserved_3y,NA,0.1155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378317 +AZURE,brazilsouth,Standard_F4,spot,NA,0.086625,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378309 +AZURE,brazilsouth,Standard_F48s_v2,on_demand,NA,2.94,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386496 +AZURE,brazilsouth,Standard_F48s_v2,reserved_1y,NA,1.764,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386504 +AZURE,brazilsouth,Standard_F48s_v2,reserved_3y,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386508 +AZURE,brazilsouth,Standard_F48s_v2,spot,NA,0.882,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386500 +AZURE,brazilsouth,Standard_F4s,on_demand,NA,0.28875,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380585 +AZURE,brazilsouth,Standard_F4s,reserved_1y,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380594 +AZURE,brazilsouth,Standard_F4s,reserved_3y,NA,0.1155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380598 +AZURE,brazilsouth,Standard_F4s,spot,NA,0.086625,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380590 +AZURE,brazilsouth,Standard_F4s_v2,on_demand,NA,0.245,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383288 +AZURE,brazilsouth,Standard_F4s_v2,reserved_1y,NA,0.147,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383297 +AZURE,brazilsouth,Standard_F4s_v2,reserved_3y,NA,0.098,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383302 +AZURE,brazilsouth,Standard_F4s_v2,spot,NA,0.0735,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383293 +AZURE,brazilsouth,Standard_F64s_v2,on_demand,NA,3.92,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387268 +AZURE,brazilsouth,Standard_F64s_v2,reserved_1y,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387276 +AZURE,brazilsouth,Standard_F64s_v2,reserved_3y,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387281 +AZURE,brazilsouth,Standard_F64s_v2,spot,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387272 +AZURE,brazilsouth,Standard_F72s_v2,on_demand,NA,4.41,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388459 +AZURE,brazilsouth,Standard_F72s_v2,reserved_1y,NA,2.646,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388475 +AZURE,brazilsouth,Standard_F72s_v2,reserved_3y,NA,1.764,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388486 +AZURE,brazilsouth,Standard_F72s_v2,spot,NA,1.323,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388467 +AZURE,brazilsouth,Standard_F8,on_demand,NA,0.5775,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379107 +AZURE,brazilsouth,Standard_F8,reserved_1y,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379116 +AZURE,brazilsouth,Standard_F8,reserved_3y,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379120 +AZURE,brazilsouth,Standard_F8,spot,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379112 +AZURE,brazilsouth,Standard_F8s,on_demand,NA,0.5775,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381348 +AZURE,brazilsouth,Standard_F8s,reserved_1y,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381362 +AZURE,brazilsouth,Standard_F8s,reserved_3y,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381368 +AZURE,brazilsouth,Standard_F8s,spot,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381355 +AZURE,brazilsouth,Standard_F8s_v2,on_demand,NA,0.49,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384081 +AZURE,brazilsouth,Standard_F8s_v2,reserved_1y,NA,0.294,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384090 +AZURE,brazilsouth,Standard_F8s_v2,reserved_3y,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384094 +AZURE,brazilsouth,Standard_F8s_v2,spot,NA,0.147,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384086 +AZURE,brazilsouth,Standard_L16as_v3,on_demand,NA,1.992,USD,Azure Retail Prices API,2025-12-18T04:46:56.080594 +AZURE,brazilsouth,Standard_L16as_v3,reserved_1y,NA,1.274886,USD,Azure Retail Prices API,2025-12-18T04:46:57.520912 +AZURE,brazilsouth,Standard_L16as_v3,reserved_3y,NA,0.836644,USD,Azure Retail Prices API,2025-12-18T04:46:57.520917 +AZURE,brazilsouth,Standard_L16as_v3,spot,NA,0.368122,USD,Azure Retail Prices API,2025-12-18T04:46:56.081085 +AZURE,brazilsouth,Standard_L16s_v3,on_demand,NA,2.224,USD,Azure Retail Prices API,2025-12-18T04:46:56.081441 +AZURE,brazilsouth,Standard_L16s_v3,reserved_1y,NA,1.423402,USD,Azure Retail Prices API,2025-12-18T04:46:57.522319 +AZURE,brazilsouth,Standard_L16s_v3,reserved_3y,NA,0.934094,USD,Azure Retail Prices API,2025-12-18T04:46:57.522326 +AZURE,brazilsouth,Standard_L16s_v3,spot,NA,0.431456,USD,Azure Retail Prices API,2025-12-18T04:46:56.081557 +AZURE,brazilsouth,Standard_L32as_v3,on_demand,NA,3.984,USD,Azure Retail Prices API,2025-12-18T04:46:56.081609 +AZURE,brazilsouth,Standard_L32as_v3,reserved_1y,NA,2.549772,USD,Azure Retail Prices API,2025-12-18T04:46:57.522673 +AZURE,brazilsouth,Standard_L32as_v3,reserved_3y,NA,1.673288,USD,Azure Retail Prices API,2025-12-18T04:46:57.522679 +AZURE,brazilsouth,Standard_L32as_v3,spot,NA,0.736243,USD,Azure Retail Prices API,2025-12-18T04:46:56.081790 +AZURE,brazilsouth,Standard_L32s_v3,on_demand,NA,4.448,USD,Azure Retail Prices API,2025-12-18T04:46:56.080994 +AZURE,brazilsouth,Standard_L32s_v3,reserved_1y,NA,2.846689,USD,Azure Retail Prices API,2025-12-18T04:46:57.521560 +AZURE,brazilsouth,Standard_L32s_v3,reserved_3y,NA,1.868151,USD,Azure Retail Prices API,2025-12-18T04:46:57.521565 +AZURE,brazilsouth,Standard_L32s_v3,spot,NA,0.862912,USD,Azure Retail Prices API,2025-12-18T04:46:56.080966 +AZURE,brazilsouth,Standard_L48as_v3,on_demand,NA,5.976,USD,Azure Retail Prices API,2025-12-18T04:46:56.081747 +AZURE,brazilsouth,Standard_L48as_v3,reserved_1y,NA,3.824658,USD,Azure Retail Prices API,2025-12-18T04:46:57.522954 +AZURE,brazilsouth,Standard_L48as_v3,reserved_3y,NA,2.509932,USD,Azure Retail Prices API,2025-12-18T04:46:57.522958 +AZURE,brazilsouth,Standard_L48as_v3,spot,NA,1.104365,USD,Azure Retail Prices API,2025-12-18T04:46:56.081490 +AZURE,brazilsouth,Standard_L48s_v3,on_demand,NA,6.672,USD,Azure Retail Prices API,2025-12-18T04:46:56.080862 +AZURE,brazilsouth,Standard_L48s_v3,reserved_1y,NA,4.270091,USD,Azure Retail Prices API,2025-12-18T04:46:57.521305 +AZURE,brazilsouth,Standard_L48s_v3,reserved_3y,NA,2.802245,USD,Azure Retail Prices API,2025-12-18T04:46:57.521310 +AZURE,brazilsouth,Standard_L48s_v3,spot,NA,1.294368,USD,Azure Retail Prices API,2025-12-18T04:46:56.081936 +AZURE,brazilsouth,Standard_L64as_v3,on_demand,NA,7.968,USD,Azure Retail Prices API,2025-12-18T04:46:56.080628 +AZURE,brazilsouth,Standard_L64as_v3,reserved_1y,NA,5.099543,USD,Azure Retail Prices API,2025-12-18T04:46:57.520950 +AZURE,brazilsouth,Standard_L64as_v3,reserved_3y,NA,3.346575,USD,Azure Retail Prices API,2025-12-18T04:46:57.520955 +AZURE,brazilsouth,Standard_L64as_v3,spot,NA,1.472486,USD,Azure Retail Prices API,2025-12-18T04:46:56.080712 +AZURE,brazilsouth,Standard_L64s_v3,on_demand,NA,8.896,USD,Azure Retail Prices API,2025-12-18T04:46:56.081750 +AZURE,brazilsouth,Standard_L64s_v3,reserved_1y,NA,5.693493,USD,Azure Retail Prices API,2025-12-18T04:46:57.522973 +AZURE,brazilsouth,Standard_L64s_v3,reserved_3y,NA,3.736301,USD,Azure Retail Prices API,2025-12-18T04:46:57.522978 +AZURE,brazilsouth,Standard_L64s_v3,spot,NA,1.725824,USD,Azure Retail Prices API,2025-12-18T04:46:56.081898 +AZURE,brazilsouth,Standard_L80as_v3,on_demand,NA,9.96,USD,Azure Retail Prices API,2025-12-18T04:46:56.080919 +AZURE,brazilsouth,Standard_L80as_v3,reserved_1y,NA,6.374429,USD,Azure Retail Prices API,2025-12-18T04:46:57.521436 +AZURE,brazilsouth,Standard_L80as_v3,reserved_3y,NA,4.183181,USD,Azure Retail Prices API,2025-12-18T04:46:57.521441 +AZURE,brazilsouth,Standard_L80as_v3,spot,NA,1.840608,USD,Azure Retail Prices API,2025-12-18T04:46:56.081135 +AZURE,brazilsouth,Standard_L80s_v3,on_demand,NA,11.12,USD,Azure Retail Prices API,2025-12-18T04:46:56.080470 +AZURE,brazilsouth,Standard_L80s_v3,reserved_1y,NA,7.116781,USD,Azure Retail Prices API,2025-12-18T04:46:57.520694 +AZURE,brazilsouth,Standard_L80s_v3,reserved_3y,NA,4.670396,USD,Azure Retail Prices API,2025-12-18T04:46:57.520712 +AZURE,brazilsouth,Standard_L80s_v3,spot,NA,2.15728,USD,Azure Retail Prices API,2025-12-18T04:46:56.081071 +AZURE,brazilsouth,Standard_L8as_v3,on_demand,NA,0.996,USD,Azure Retail Prices API,2025-12-18T04:46:56.080490 +AZURE,brazilsouth,Standard_L8as_v3,reserved_1y,NA,0.637443,USD,Azure Retail Prices API,2025-12-18T04:46:57.520726 +AZURE,brazilsouth,Standard_L8as_v3,reserved_3y,NA,0.418303,USD,Azure Retail Prices API,2025-12-18T04:46:57.520731 +AZURE,brazilsouth,Standard_L8as_v3,spot,NA,0.184061,USD,Azure Retail Prices API,2025-12-18T04:46:56.081652 +AZURE,brazilsouth,Standard_L8s_v3,on_demand,NA,1.112,USD,Azure Retail Prices API,2025-12-18T04:46:56.081421 +AZURE,brazilsouth,Standard_L8s_v3,reserved_1y,NA,0.711644,USD,Azure Retail Prices API,2025-12-18T04:46:57.522274 +AZURE,brazilsouth,Standard_L8s_v3,reserved_3y,NA,0.467047,USD,Azure Retail Prices API,2025-12-18T04:46:57.522281 +AZURE,brazilsouth,Standard_L8s_v3,spot,NA,0.215728,USD,Azure Retail Prices API,2025-12-18T04:46:56.081606 +AZURE,brazilsouth,Standard_NC12s_v3,on_demand,NA,12.24,USD,Azure Retail Prices API,2025-12-18T04:46:56.081240 +AZURE,brazilsouth,Standard_NC12s_v3,spot,NA,2.261952,USD,Azure Retail Prices API,2025-12-18T04:46:56.081674 +AZURE,brazilsouth,Standard_NC16as_T4_v3,on_demand,NA,2.046,USD,Azure Retail Prices API,2025-12-18T04:46:56.080687 +AZURE,brazilsouth,Standard_NC16as_T4_v3,reserved_1y,NA,1.207078,USD,Azure Retail Prices API,2025-12-18T04:46:57.520999 +AZURE,brazilsouth,Standard_NC16as_T4_v3,reserved_3y,NA,0.777435,USD,Azure Retail Prices API,2025-12-18T04:46:57.521005 +AZURE,brazilsouth,Standard_NC16as_T4_v3,spot,NA,0.59334,USD,Azure Retail Prices API,2025-12-18T04:46:56.080851 +AZURE,brazilsouth,Standard_NC24ads_A100_v4,on_demand,NA,7.346,USD,Azure Retail Prices API,2025-12-18T04:46:56.081655 +AZURE,brazilsouth,Standard_NC24ads_A100_v4,reserved_1y,NA,4.802055,USD,Azure Retail Prices API,2025-12-18T04:46:57.522756 +AZURE,brazilsouth,Standard_NC24ads_A100_v4,reserved_3y,NA,2.726104,USD,Azure Retail Prices API,2025-12-18T04:46:57.522761 +AZURE,brazilsouth,Standard_NC24ads_A100_v4,spot,NA,1.357541,USD,Azure Retail Prices API,2025-12-18T04:46:56.081313 +AZURE,brazilsouth,Standard_NC24s_v3,on_demand,NA,24.48,USD,Azure Retail Prices API,2025-12-18T04:46:56.080578 +AZURE,brazilsouth,Standard_NC24s_v3,spot,NA,4.523904,USD,Azure Retail Prices API,2025-12-18T04:46:56.081871 +AZURE,brazilsouth,Standard_NC48ads_A100_v4,on_demand,NA,14.692,USD,Azure Retail Prices API,2025-12-18T04:46:56.080737 +AZURE,brazilsouth,Standard_NC48ads_A100_v4,reserved_1y,NA,9.60411,USD,Azure Retail Prices API,2025-12-18T04:46:57.521089 +AZURE,brazilsouth,Standard_NC48ads_A100_v4,reserved_3y,NA,5.452207,USD,Azure Retail Prices API,2025-12-18T04:46:57.521093 +AZURE,brazilsouth,Standard_NC48ads_A100_v4,spot,NA,2.715082,USD,Azure Retail Prices API,2025-12-18T04:46:56.081631 +AZURE,brazilsouth,Standard_NC4as_T4_v3,on_demand,NA,0.894,USD,Azure Retail Prices API,2025-12-18T04:46:56.081065 +AZURE,brazilsouth,Standard_NC4as_T4_v3,reserved_1y,NA,0.527626,USD,Azure Retail Prices API,2025-12-18T04:46:57.521696 +AZURE,brazilsouth,Standard_NC4as_T4_v3,reserved_3y,NA,0.339802,USD,Azure Retail Prices API,2025-12-18T04:46:57.521702 +AZURE,brazilsouth,Standard_NC4as_T4_v3,spot,NA,0.25926,USD,Azure Retail Prices API,2025-12-18T04:46:56.081629 +AZURE,brazilsouth,Standard_NC64as_T4_v3,on_demand,NA,7.383,USD,Azure Retail Prices API,2025-12-18T04:46:56.081349 +AZURE,brazilsouth,Standard_NC64as_T4_v3,reserved_1y,NA,4.355708,USD,Azure Retail Prices API,2025-12-18T04:46:57.522120 +AZURE,brazilsouth,Standard_NC64as_T4_v3,reserved_3y,NA,2.805365,USD,Azure Retail Prices API,2025-12-18T04:46:57.522125 +AZURE,brazilsouth,Standard_NC64as_T4_v3,spot,NA,2.14107,USD,Azure Retail Prices API,2025-12-18T04:46:56.080955 +AZURE,brazilsouth,Standard_NC6s_v3,on_demand,NA,6.12,USD,Azure Retail Prices API,2025-12-18T04:46:56.081947 +AZURE,brazilsouth,Standard_NC6s_v3,spot,NA,1.130976,USD,Azure Retail Prices API,2025-12-18T04:46:56.081268 +AZURE,brazilsouth,Standard_NC8as_T4_v3,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:46:56.081531 +AZURE,brazilsouth,Standard_NC8as_T4_v3,reserved_1y,NA,0.753539,USD,Azure Retail Prices API,2025-12-18T04:46:57.522528 +AZURE,brazilsouth,Standard_NC8as_T4_v3,reserved_3y,NA,0.48535,USD,Azure Retail Prices API,2025-12-18T04:46:57.522533 +AZURE,brazilsouth,Standard_NC8as_T4_v3,spot,NA,0.37033,USD,Azure Retail Prices API,2025-12-18T04:46:56.081822 +AZURE,brazilsouth,Standard_NC96ads_A100_v4,on_demand,NA,29.384,USD,Azure Retail Prices API,2025-12-18T04:46:56.081260 +AZURE,brazilsouth,Standard_NC96ads_A100_v4,reserved_1y,NA,19.208333,USD,Azure Retail Prices API,2025-12-18T04:46:57.521982 +AZURE,brazilsouth,Standard_NC96ads_A100_v4,reserved_3y,NA,10.904414,USD,Azure Retail Prices API,2025-12-18T04:46:57.521988 +AZURE,brazilsouth,Standard_NC96ads_A100_v4,spot,NA,5.430163,USD,Azure Retail Prices API,2025-12-18T04:46:56.081846 +AZURE,brazilsouth,Standard_NV36adms_A10_v5,on_demand,NA,9.04,USD,Azure Retail Prices API,2025-12-18T04:46:56.081194 +AZURE,brazilsouth,Standard_NV36adms_A10_v5,reserved_1y,NA,5.785616,USD,Azure Retail Prices API,2025-12-18T04:46:57.521880 +AZURE,brazilsouth,Standard_NV36adms_A10_v5,reserved_3y,NA,3.977588,USD,Azure Retail Prices API,2025-12-18T04:46:57.521885 +AZURE,brazilsouth,Standard_NV36adms_A10_v5,spot,NA,1.670592,USD,Azure Retail Prices API,2025-12-18T04:46:56.082005 +AZURE,brazilsouth,Standard_NV36ads_A10_v5,on_demand,NA,6.4,USD,Azure Retail Prices API,2025-12-18T04:46:56.081463 +AZURE,brazilsouth,Standard_NV36ads_A10_v5,reserved_1y,NA,4.096005,USD,Azure Retail Prices API,2025-12-18T04:46:57.522407 +AZURE,brazilsouth,Standard_NV36ads_A10_v5,reserved_3y,NA,2.815982,USD,Azure Retail Prices API,2025-12-18T04:46:57.522413 +AZURE,brazilsouth,Standard_NV36ads_A10_v5,spot,NA,1.18272,USD,Azure Retail Prices API,2025-12-18T04:46:56.081725 +AZURE,brazilsouth,Standard_NV72ads_A10_v5,on_demand,NA,13.04,USD,Azure Retail Prices API,2025-12-18T04:46:56.080764 +AZURE,brazilsouth,Standard_NV72ads_A10_v5,reserved_1y,NA,8.345548,USD,Azure Retail Prices API,2025-12-18T04:46:57.521142 +AZURE,brazilsouth,Standard_NV72ads_A10_v5,reserved_3y,NA,5.737595,USD,Azure Retail Prices API,2025-12-18T04:46:57.521147 +AZURE,brazilsouth,Standard_NV72ads_A10_v5,spot,NA,2.409792,USD,Azure Retail Prices API,2025-12-18T04:46:56.081685 +AZURE,canadacentral,Standard_D128ds_v6,on_demand,NA,8.887,USD,Azure Retail Prices API,2025-12-18T04:47:05.510707 +AZURE,canadacentral,Standard_D128ds_v6,reserved_1y,NA,5.509932,USD,Azure Retail Prices API,2025-12-18T04:47:06.785100 +AZURE,canadacentral,Standard_D128ds_v6,reserved_3y,NA,3.465944,USD,Azure Retail Prices API,2025-12-18T04:47:06.785104 +AZURE,canadacentral,Standard_D128ds_v6,spot,NA,1.642318,USD,Azure Retail Prices API,2025-12-18T04:47:05.510682 +AZURE,canadacentral,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488778 +AZURE,canadacentral,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488787 +AZURE,canadacentral,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488795 +AZURE,canadacentral,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488782 +AZURE,canadacentral,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489589 +AZURE,canadacentral,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489597 +AZURE,canadacentral,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489603 +AZURE,canadacentral,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489593 +AZURE,canadacentral,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490639 +AZURE,canadacentral,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490647 +AZURE,canadacentral,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490651 +AZURE,canadacentral,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490643 +AZURE,canadacentral,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491390 +AZURE,canadacentral,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491398 +AZURE,canadacentral,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491402 +AZURE,canadacentral,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491394 +AZURE,canadacentral,Standard_D16_v3,on_demand,NA,0.888,USD,Azure Retail Prices API,2025-12-18T04:47:05.510536 +AZURE,canadacentral,Standard_D16_v3,reserved_1y,NA,0.509589,USD,Azure Retail Prices API,2025-12-18T04:47:06.784886 +AZURE,canadacentral,Standard_D16_v3,reserved_3y,NA,0.330898,USD,Azure Retail Prices API,2025-12-18T04:47:06.784891 +AZURE,canadacentral,Standard_D16_v3,spot,NA,0.23381,USD,Azure Retail Prices API,2025-12-18T04:47:05.510588 +AZURE,canadacentral,Standard_D16a_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:47:05.509696 +AZURE,canadacentral,Standard_D16a_v4,reserved_1y,NA,0.505023,USD,Azure Retail Prices API,2025-12-18T04:47:06.784017 +AZURE,canadacentral,Standard_D16a_v4,reserved_3y,NA,0.325266,USD,Azure Retail Prices API,2025-12-18T04:47:06.784020 +AZURE,canadacentral,Standard_D16a_v4,spot,NA,0.158189,USD,Azure Retail Prices API,2025-12-18T04:47:05.511021 +AZURE,canadacentral,Standard_D16ads_v5,on_demand,NA,1.656,USD,Azure Retail Prices API,2025-12-18T04:47:05.510530 +AZURE,canadacentral,Standard_D16ads_v5,reserved_1y,NA,0.542808,USD,Azure Retail Prices API,2025-12-18T04:47:06.785152 +AZURE,canadacentral,Standard_D16ads_v5,reserved_3y,NA,0.349581,USD,Azure Retail Prices API,2025-12-18T04:47:06.785156 +AZURE,canadacentral,Standard_D16ads_v5,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:47:05.510854 +AZURE,canadacentral,Standard_D16ads_v6,on_demand,NA,1.019,USD,Azure Retail Prices API,2025-12-18T04:47:05.509662 +AZURE,canadacentral,Standard_D16ads_v6,reserved_1y,NA,0.60137,USD,Azure Retail Prices API,2025-12-18T04:47:06.783963 +AZURE,canadacentral,Standard_D16ads_v6,reserved_3y,NA,0.387291,USD,Azure Retail Prices API,2025-12-18T04:47:06.783966 +AZURE,canadacentral,Standard_D16ads_v6,spot,NA,0.188311,USD,Azure Retail Prices API,2025-12-18T04:47:05.510200 +AZURE,canadacentral,Standard_D16as_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:47:05.510062 +AZURE,canadacentral,Standard_D16as_v4,reserved_1y,NA,0.505023,USD,Azure Retail Prices API,2025-12-18T04:47:06.784354 +AZURE,canadacentral,Standard_D16as_v4,reserved_3y,NA,0.325266,USD,Azure Retail Prices API,2025-12-18T04:47:06.784357 +AZURE,canadacentral,Standard_D16as_v4,spot,NA,0.158189,USD,Azure Retail Prices API,2025-12-18T04:47:05.510825 +AZURE,canadacentral,Standard_D16as_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:47:05.509524 +AZURE,canadacentral,Standard_D16as_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:47:06.783864 +AZURE,canadacentral,Standard_D16as_v5,reserved_3y,NA,0.291857,USD,Azure Retail Prices API,2025-12-18T04:47:06.783866 +AZURE,canadacentral,Standard_D16as_v5,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:47:05.510519 +AZURE,canadacentral,Standard_D16d_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:47:05.510823 +AZURE,canadacentral,Standard_D16d_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:47:06.785236 +AZURE,canadacentral,Standard_D16d_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:47:06.785240 +AZURE,canadacentral,Standard_D16d_v4,spot,NA,0.252101,USD,Azure Retail Prices API,2025-12-18T04:47:05.509630 +AZURE,canadacentral,Standard_D16ds_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:47:05.510556 +AZURE,canadacentral,Standard_D16ds_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:47:06.784914 +AZURE,canadacentral,Standard_D16ds_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:47:06.784918 +AZURE,canadacentral,Standard_D16ds_v4,spot,NA,0.252101,USD,Azure Retail Prices API,2025-12-18T04:47:05.510579 +AZURE,canadacentral,Standard_D16ds_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:47:05.511031 +AZURE,canadacentral,Standard_D16ds_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:47:06.785426 +AZURE,canadacentral,Standard_D16ds_v5,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:47:06.785429 +AZURE,canadacentral,Standard_D16ds_v5,spot,NA,0.295747,USD,Azure Retail Prices API,2025-12-18T04:47:05.510576 +AZURE,canadacentral,Standard_D16ds_v6,on_demand,NA,1.111,USD,Azure Retail Prices API,2025-12-18T04:47:05.510762 +AZURE,canadacentral,Standard_D16ds_v6,reserved_1y,NA,0.688699,USD,Azure Retail Prices API,2025-12-18T04:47:06.785178 +AZURE,canadacentral,Standard_D16ds_v6,reserved_3y,NA,0.433257,USD,Azure Retail Prices API,2025-12-18T04:47:06.785182 +AZURE,canadacentral,Standard_D16ds_v6,spot,NA,0.205313,USD,Azure Retail Prices API,2025-12-18T04:47:05.510337 +AZURE,canadacentral,Standard_D16pds_v6,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:47:05.510106 +AZURE,canadacentral,Standard_D16pds_v6,reserved_1y,NA,0.481393,USD,Azure Retail Prices API,2025-12-18T04:47:06.784392 +AZURE,canadacentral,Standard_D16pds_v6,reserved_3y,NA,0.310084,USD,Azure Retail Prices API,2025-12-18T04:47:06.784395 +AZURE,canadacentral,Standard_D16pds_v6,spot,NA,0.150797,USD,Azure Retail Prices API,2025-12-18T04:47:05.509950 +AZURE,canadacentral,Standard_D16ps_v6,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:47:05.510128 +AZURE,canadacentral,Standard_D16ps_v6,reserved_1y,NA,0.368151,USD,Azure Retail Prices API,2025-12-18T04:47:06.784408 +AZURE,canadacentral,Standard_D16ps_v6,reserved_3y,NA,0.237139,USD,Azure Retail Prices API,2025-12-18T04:47:06.784412 +AZURE,canadacentral,Standard_D16ps_v6,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:47:05.509800 +AZURE,canadacentral,Standard_D16s_v3,on_demand,NA,0.888,USD,Azure Retail Prices API,2025-12-18T04:47:05.510857 +AZURE,canadacentral,Standard_D16s_v3,reserved_1y,NA,0.509589,USD,Azure Retail Prices API,2025-12-18T04:47:06.785274 +AZURE,canadacentral,Standard_D16s_v3,reserved_3y,NA,0.330898,USD,Azure Retail Prices API,2025-12-18T04:47:06.785277 +AZURE,canadacentral,Standard_D16s_v3,spot,NA,0.23381,USD,Azure Retail Prices API,2025-12-18T04:47:05.510476 +AZURE,canadacentral,Standard_D16s_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:47:05.510071 +AZURE,canadacentral,Standard_D16s_v4,reserved_1y,NA,0.503311,USD,Azure Retail Prices API,2025-12-18T04:47:06.784360 +AZURE,canadacentral,Standard_D16s_v4,reserved_3y,NA,0.321842,USD,Azure Retail Prices API,2025-12-18T04:47:06.784363 +AZURE,canadacentral,Standard_D16s_v4,spot,NA,0.223673,USD,Azure Retail Prices API,2025-12-18T04:47:05.510907 +AZURE,canadacentral,Standard_D16s_v5,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:47:05.509940 +AZURE,canadacentral,Standard_D16s_v5,reserved_1y,NA,0.505023,USD,Azure Retail Prices API,2025-12-18T04:47:06.784254 +AZURE,canadacentral,Standard_D16s_v5,reserved_3y,NA,0.316705,USD,Azure Retail Prices API,2025-12-18T04:47:06.784257 +AZURE,canadacentral,Standard_D16s_v5,spot,NA,0.263905,USD,Azure Retail Prices API,2025-12-18T04:47:05.510910 +AZURE,canadacentral,Standard_D2ads_v6,on_demand,NA,0.127,USD,Azure Retail Prices API,2025-12-18T04:47:05.510479 +AZURE,canadacentral,Standard_D2ads_v6,reserved_1y,NA,0.075114,USD,Azure Retail Prices API,2025-12-18T04:47:06.784779 +AZURE,canadacentral,Standard_D2ads_v6,reserved_3y,NA,0.048402,USD,Azure Retail Prices API,2025-12-18T04:47:06.784783 +AZURE,canadacentral,Standard_D2ads_v6,spot,NA,0.02347,USD,Azure Retail Prices API,2025-12-18T04:47:05.510206 +AZURE,canadacentral,Standard_D2ds_v6,on_demand,NA,0.139,USD,Azure Retail Prices API,2025-12-18T04:47:05.509982 +AZURE,canadacentral,Standard_D2ds_v6,reserved_1y,NA,0.086073,USD,Azure Retail Prices API,2025-12-18T04:47:06.784289 +AZURE,canadacentral,Standard_D2ds_v6,reserved_3y,NA,0.054148,USD,Azure Retail Prices API,2025-12-18T04:47:06.784292 +AZURE,canadacentral,Standard_D2ds_v6,spot,NA,0.025687,USD,Azure Retail Prices API,2025-12-18T04:47:05.509989 +AZURE,canadacentral,Standard_D32_v3,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:47:05.510710 +AZURE,canadacentral,Standard_D32_v3,reserved_1y,NA,1.019178,USD,Azure Retail Prices API,2025-12-18T04:47:06.785107 +AZURE,canadacentral,Standard_D32_v3,reserved_3y,NA,0.661796,USD,Azure Retail Prices API,2025-12-18T04:47:06.785123 +AZURE,canadacentral,Standard_D32_v3,spot,NA,0.467621,USD,Azure Retail Prices API,2025-12-18T04:47:05.510991 +AZURE,canadacentral,Standard_D32a_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:47:05.510941 +AZURE,canadacentral,Standard_D32a_v4,reserved_1y,NA,1.010046,USD,Azure Retail Prices API,2025-12-18T04:47:06.785337 +AZURE,canadacentral,Standard_D32a_v4,reserved_3y,NA,0.650571,USD,Azure Retail Prices API,2025-12-18T04:47:06.785340 +AZURE,canadacentral,Standard_D32a_v4,spot,NA,0.316378,USD,Azure Retail Prices API,2025-12-18T04:47:05.510785 +AZURE,canadacentral,Standard_D32ads_v5,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:47:05.509964 +AZURE,canadacentral,Standard_D32ads_v5,reserved_1y,NA,1.085616,USD,Azure Retail Prices API,2025-12-18T04:47:06.784271 +AZURE,canadacentral,Standard_D32ads_v5,reserved_3y,NA,0.699201,USD,Azure Retail Prices API,2025-12-18T04:47:06.784274 +AZURE,canadacentral,Standard_D32ads_v5,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:47:05.509813 +AZURE,canadacentral,Standard_D32ads_v6,on_demand,NA,2.038,USD,Azure Retail Prices API,2025-12-18T04:47:05.510351 +AZURE,canadacentral,Standard_D32ads_v6,reserved_1y,NA,1.202626,USD,Azure Retail Prices API,2025-12-18T04:47:06.784598 +AZURE,canadacentral,Standard_D32ads_v6,reserved_3y,NA,0.774581,USD,Azure Retail Prices API,2025-12-18T04:47:06.784602 +AZURE,canadacentral,Standard_D32ads_v6,spot,NA,0.376622,USD,Azure Retail Prices API,2025-12-18T04:47:05.510050 +AZURE,canadacentral,Standard_D32as_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:47:05.510047 +AZURE,canadacentral,Standard_D32as_v4,reserved_1y,NA,1.010046,USD,Azure Retail Prices API,2025-12-18T04:47:06.784343 +AZURE,canadacentral,Standard_D32as_v4,reserved_3y,NA,0.650571,USD,Azure Retail Prices API,2025-12-18T04:47:06.784346 +AZURE,canadacentral,Standard_D32as_v4,spot,NA,0.316378,USD,Azure Retail Prices API,2025-12-18T04:47:05.510231 +AZURE,canadacentral,Standard_D32as_v5,on_demand,NA,3.008,USD,Azure Retail Prices API,2025-12-18T04:47:05.510273 +AZURE,canadacentral,Standard_D32as_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:47:06.784654 +AZURE,canadacentral,Standard_D32as_v5,reserved_3y,NA,0.583676,USD,Azure Retail Prices API,2025-12-18T04:47:06.784656 +AZURE,canadacentral,Standard_D32as_v5,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:47:05.509897 +AZURE,canadacentral,Standard_D32d_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:47:05.510629 +AZURE,canadacentral,Standard_D32d_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:47:06.785013 +AZURE,canadacentral,Standard_D32d_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:47:06.785016 +AZURE,canadacentral,Standard_D32d_v4,spot,NA,0.504202,USD,Azure Retail Prices API,2025-12-18T04:47:05.510264 +AZURE,canadacentral,Standard_D32ds_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:47:05.510340 +AZURE,canadacentral,Standard_D32ds_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:47:06.784587 +AZURE,canadacentral,Standard_D32ds_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:47:06.784590 +AZURE,canadacentral,Standard_D32ds_v4,spot,NA,0.504202,USD,Azure Retail Prices API,2025-12-18T04:47:05.510308 +AZURE,canadacentral,Standard_D32ds_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:47:05.511007 +AZURE,canadacentral,Standard_D32ds_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:47:06.785404 +AZURE,canadacentral,Standard_D32ds_v5,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:47:06.785407 +AZURE,canadacentral,Standard_D32ds_v5,spot,NA,0.591494,USD,Azure Retail Prices API,2025-12-18T04:47:05.510357 +AZURE,canadacentral,Standard_D32ds_v6,on_demand,NA,2.222,USD,Azure Retail Prices API,2025-12-18T04:47:05.509688 +AZURE,canadacentral,Standard_D32ds_v6,reserved_1y,NA,1.377511,USD,Azure Retail Prices API,2025-12-18T04:47:06.783994 +AZURE,canadacentral,Standard_D32ds_v6,reserved_3y,NA,0.866476,USD,Azure Retail Prices API,2025-12-18T04:47:06.783998 +AZURE,canadacentral,Standard_D32ds_v6,spot,NA,0.410626,USD,Azure Retail Prices API,2025-12-18T04:47:05.509561 +AZURE,canadacentral,Standard_D32pds_v6,on_demand,NA,1.632,USD,Azure Retail Prices API,2025-12-18T04:47:05.510562 +AZURE,canadacentral,Standard_D32pds_v6,reserved_1y,NA,0.9629,USD,Azure Retail Prices API,2025-12-18T04:47:06.784927 +AZURE,canadacentral,Standard_D32pds_v6,reserved_3y,NA,0.620167,USD,Azure Retail Prices API,2025-12-18T04:47:06.784931 +AZURE,canadacentral,Standard_D32pds_v6,spot,NA,0.301594,USD,Azure Retail Prices API,2025-12-18T04:47:05.510933 +AZURE,canadacentral,Standard_D32ps_v6,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:47:05.510148 +AZURE,canadacentral,Standard_D32ps_v6,reserved_1y,NA,0.736301,USD,Azure Retail Prices API,2025-12-18T04:47:06.784426 +AZURE,canadacentral,Standard_D32ps_v6,reserved_3y,NA,0.474239,USD,Azure Retail Prices API,2025-12-18T04:47:06.784429 +AZURE,canadacentral,Standard_D32ps_v6,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:47:05.510008 +AZURE,canadacentral,Standard_D32s_v3,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:47:05.510765 +AZURE,canadacentral,Standard_D32s_v3,reserved_1y,NA,1.019178,USD,Azure Retail Prices API,2025-12-18T04:47:06.785185 +AZURE,canadacentral,Standard_D32s_v3,reserved_3y,NA,0.661796,USD,Azure Retail Prices API,2025-12-18T04:47:06.785188 +AZURE,canadacentral,Standard_D32s_v3,spot,NA,0.467621,USD,Azure Retail Prices API,2025-12-18T04:47:05.510139 +AZURE,canadacentral,Standard_D32s_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:47:05.510982 +AZURE,canadacentral,Standard_D32s_v4,reserved_1y,NA,1.006621,USD,Azure Retail Prices API,2025-12-18T04:47:06.785388 +AZURE,canadacentral,Standard_D32s_v4,reserved_3y,NA,0.643721,USD,Azure Retail Prices API,2025-12-18T04:47:06.785391 +AZURE,canadacentral,Standard_D32s_v4,spot,NA,0.447346,USD,Azure Retail Prices API,2025-12-18T04:47:05.509749 +AZURE,canadacentral,Standard_D32s_v5,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:47:05.510748 +AZURE,canadacentral,Standard_D32s_v5,reserved_1y,NA,1.010046,USD,Azure Retail Prices API,2025-12-18T04:47:06.785159 +AZURE,canadacentral,Standard_D32s_v5,reserved_3y,NA,0.633447,USD,Azure Retail Prices API,2025-12-18T04:47:06.785162 +AZURE,canadacentral,Standard_D32s_v5,spot,NA,0.52781,USD,Azure Retail Prices API,2025-12-18T04:47:05.510091 +AZURE,canadacentral,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485890 +AZURE,canadacentral,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485899 +AZURE,canadacentral,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485903 +AZURE,canadacentral,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485895 +AZURE,canadacentral,Standard_D48a_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:47:05.509917 +AZURE,canadacentral,Standard_D48a_v4,reserved_1y,NA,1.515068,USD,Azure Retail Prices API,2025-12-18T04:47:06.784237 +AZURE,canadacentral,Standard_D48a_v4,reserved_3y,NA,0.975837,USD,Azure Retail Prices API,2025-12-18T04:47:06.784240 +AZURE,canadacentral,Standard_D48a_v4,spot,NA,0.474566,USD,Azure Retail Prices API,2025-12-18T04:47:05.509685 +AZURE,canadacentral,Standard_D48ads_v5,on_demand,NA,4.968,USD,Azure Retail Prices API,2025-12-18T04:47:05.509556 +AZURE,canadacentral,Standard_D48ads_v5,reserved_1y,NA,1.628425,USD,Azure Retail Prices API,2025-12-18T04:47:06.784831 +AZURE,canadacentral,Standard_D48ads_v5,reserved_3y,NA,1.048782,USD,Azure Retail Prices API,2025-12-18T04:47:06.784834 +AZURE,canadacentral,Standard_D48ads_v5,spot,NA,0.510048,USD,Azure Retail Prices API,2025-12-18T04:47:05.510217 +AZURE,canadacentral,Standard_D48ads_v6,on_demand,NA,3.058,USD,Azure Retail Prices API,2025-12-18T04:47:05.510249 +AZURE,canadacentral,Standard_D48ads_v6,reserved_1y,NA,1.803995,USD,Azure Retail Prices API,2025-12-18T04:47:06.784499 +AZURE,canadacentral,Standard_D48ads_v6,reserved_3y,NA,1.161872,USD,Azure Retail Prices API,2025-12-18T04:47:06.784501 +AZURE,canadacentral,Standard_D48ads_v6,spot,NA,0.565118,USD,Azure Retail Prices API,2025-12-18T04:47:05.510972 +AZURE,canadacentral,Standard_D48as_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:47:05.509577 +AZURE,canadacentral,Standard_D48as_v4,reserved_1y,NA,1.515068,USD,Azure Retail Prices API,2025-12-18T04:47:06.783895 +AZURE,canadacentral,Standard_D48as_v4,reserved_3y,NA,0.975837,USD,Azure Retail Prices API,2025-12-18T04:47:06.783898 +AZURE,canadacentral,Standard_D48as_v4,spot,NA,0.474566,USD,Azure Retail Prices API,2025-12-18T04:47:05.510508 +AZURE,canadacentral,Standard_D48as_v5,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:47:05.510380 +AZURE,canadacentral,Standard_D48as_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:47:06.785267 +AZURE,canadacentral,Standard_D48as_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:47:06.785271 +AZURE,canadacentral,Standard_D48as_v5,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:47:05.509728 +AZURE,canadacentral,Standard_D48d_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:47:05.510591 +AZURE,canadacentral,Standard_D48d_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:47:06.784947 +AZURE,canadacentral,Standard_D48d_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:47:06.784950 +AZURE,canadacentral,Standard_D48d_v4,spot,NA,0.756302,USD,Azure Retail Prices API,2025-12-18T04:47:05.510955 +AZURE,canadacentral,Standard_D48ds_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:47:05.509837 +AZURE,canadacentral,Standard_D48ds_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:47:06.784143 +AZURE,canadacentral,Standard_D48ds_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:47:06.784147 +AZURE,canadacentral,Standard_D48ds_v4,spot,NA,0.756302,USD,Azure Retail Prices API,2025-12-18T04:47:05.509716 +AZURE,canadacentral,Standard_D48ds_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:47:05.510704 +AZURE,canadacentral,Standard_D48ds_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:47:06.785094 +AZURE,canadacentral,Standard_D48ds_v5,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:47:06.785097 +AZURE,canadacentral,Standard_D48ds_v5,spot,NA,0.887242,USD,Azure Retail Prices API,2025-12-18T04:47:05.510811 +AZURE,canadacentral,Standard_D48ds_v6,on_demand,NA,3.333,USD,Azure Retail Prices API,2025-12-18T04:47:05.510544 +AZURE,canadacentral,Standard_D48ds_v6,reserved_1y,NA,2.06621,USD,Azure Retail Prices API,2025-12-18T04:47:06.784901 +AZURE,canadacentral,Standard_D48ds_v6,reserved_3y,NA,1.299734,USD,Azure Retail Prices API,2025-12-18T04:47:06.784904 +AZURE,canadacentral,Standard_D48ds_v6,spot,NA,0.615938,USD,Azure Retail Prices API,2025-12-18T04:47:05.509779 +AZURE,canadacentral,Standard_D48pds_v6,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:47:05.509574 +AZURE,canadacentral,Standard_D48pds_v6,reserved_1y,NA,1.444292,USD,Azure Retail Prices API,2025-12-18T04:47:06.783888 +AZURE,canadacentral,Standard_D48pds_v6,reserved_3y,NA,0.930251,USD,Azure Retail Prices API,2025-12-18T04:47:06.783891 +AZURE,canadacentral,Standard_D48pds_v6,spot,NA,0.45239,USD,Azure Retail Prices API,2025-12-18T04:47:05.510122 +AZURE,canadacentral,Standard_D48ps_v6,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:47:05.510757 +AZURE,canadacentral,Standard_D48ps_v6,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:47:06.785165 +AZURE,canadacentral,Standard_D48ps_v6,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:47:06.785169 +AZURE,canadacentral,Standard_D48ps_v6,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:47:05.510635 +AZURE,canadacentral,Standard_D48s_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:47:05.509736 +AZURE,canadacentral,Standard_D48s_v4,reserved_1y,NA,1.509932,USD,Azure Retail Prices API,2025-12-18T04:47:06.784052 +AZURE,canadacentral,Standard_D48s_v4,reserved_3y,NA,0.965563,USD,Azure Retail Prices API,2025-12-18T04:47:06.784056 +AZURE,canadacentral,Standard_D48s_v4,spot,NA,0.671018,USD,Azure Retail Prices API,2025-12-18T04:47:05.509515 +AZURE,canadacentral,Standard_D48s_v5,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:47:05.510513 +AZURE,canadacentral,Standard_D48s_v5,reserved_1y,NA,1.515068,USD,Azure Retail Prices API,2025-12-18T04:47:06.784838 +AZURE,canadacentral,Standard_D48s_v5,reserved_3y,NA,0.950152,USD,Azure Retail Prices API,2025-12-18T04:47:06.784841 +AZURE,canadacentral,Standard_D48s_v5,spot,NA,0.791714,USD,Azure Retail Prices API,2025-12-18T04:47:05.509882 +AZURE,canadacentral,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486793 +AZURE,canadacentral,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486808 +AZURE,canadacentral,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486816 +AZURE,canadacentral,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486801 +AZURE,canadacentral,Standard_D4a_v4,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:47:05.509613 +AZURE,canadacentral,Standard_D4a_v4,reserved_1y,NA,0.126256,USD,Azure Retail Prices API,2025-12-18T04:47:06.783935 +AZURE,canadacentral,Standard_D4a_v4,reserved_3y,NA,0.081317,USD,Azure Retail Prices API,2025-12-18T04:47:06.783938 +AZURE,canadacentral,Standard_D4a_v4,spot,NA,0.039547,USD,Azure Retail Prices API,2025-12-18T04:47:05.510111 +AZURE,canadacentral,Standard_D4ads_v5,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:47:05.509509 +AZURE,canadacentral,Standard_D4ads_v5,reserved_1y,NA,0.135731,USD,Azure Retail Prices API,2025-12-18T04:47:06.783834 +AZURE,canadacentral,Standard_D4ads_v5,reserved_3y,NA,0.087405,USD,Azure Retail Prices API,2025-12-18T04:47:06.783837 +AZURE,canadacentral,Standard_D4ads_v5,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:47:05.510892 +AZURE,canadacentral,Standard_D4ads_v6,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:47:05.509911 +AZURE,canadacentral,Standard_D4ads_v6,reserved_1y,NA,0.150342,USD,Azure Retail Prices API,2025-12-18T04:47:06.784231 +AZURE,canadacentral,Standard_D4ads_v6,reserved_3y,NA,0.096842,USD,Azure Retail Prices API,2025-12-18T04:47:06.784234 +AZURE,canadacentral,Standard_D4ads_v6,spot,NA,0.047124,USD,Azure Retail Prices API,2025-12-18T04:47:05.509624 +AZURE,canadacentral,Standard_D4as_v5,on_demand,NA,0.376,USD,Azure Retail Prices API,2025-12-18T04:47:05.510011 +AZURE,canadacentral,Standard_D4as_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:47:06.784825 +AZURE,canadacentral,Standard_D4as_v5,reserved_3y,NA,0.072945,USD,Azure Retail Prices API,2025-12-18T04:47:06.784828 +AZURE,canadacentral,Standard_D4as_v5,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:47:05.510059 +AZURE,canadacentral,Standard_D4d_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:47:05.510035 +AZURE,canadacentral,Standard_D4d_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:47:06.784331 +AZURE,canadacentral,Standard_D4d_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:47:06.784334 +AZURE,canadacentral,Standard_D4d_v4,spot,NA,0.063025,USD,Azure Retail Prices API,2025-12-18T04:47:05.510405 +AZURE,canadacentral,Standard_D4ds_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:47:05.509874 +AZURE,canadacentral,Standard_D4ds_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:47:06.784185 +AZURE,canadacentral,Standard_D4ds_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:47:06.784188 +AZURE,canadacentral,Standard_D4ds_v4,spot,NA,0.063025,USD,Azure Retail Prices API,2025-12-18T04:47:05.510097 +AZURE,canadacentral,Standard_D4ds_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:47:05.510834 +AZURE,canadacentral,Standard_D4ds_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:47:06.785249 +AZURE,canadacentral,Standard_D4ds_v5,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:47:06.785252 +AZURE,canadacentral,Standard_D4ds_v5,spot,NA,0.073937,USD,Azure Retail Prices API,2025-12-18T04:47:05.510754 +AZURE,canadacentral,Standard_D4ds_v6,on_demand,NA,0.278,USD,Azure Retail Prices API,2025-12-18T04:47:05.510524 +AZURE,canadacentral,Standard_D4ds_v6,reserved_1y,NA,0.172146,USD,Azure Retail Prices API,2025-12-18T04:47:06.784864 +AZURE,canadacentral,Standard_D4ds_v6,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:47:06.784868 +AZURE,canadacentral,Standard_D4ds_v6,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:47:05.510788 +AZURE,canadacentral,Standard_D4pds_v6,on_demand,NA,0.204,USD,Azure Retail Prices API,2025-12-18T04:47:05.509906 +AZURE,canadacentral,Standard_D4pds_v6,reserved_1y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:47:06.784220 +AZURE,canadacentral,Standard_D4pds_v6,reserved_3y,NA,0.077511,USD,Azure Retail Prices API,2025-12-18T04:47:06.784223 +AZURE,canadacentral,Standard_D4pds_v6,spot,NA,0.037699,USD,Azure Retail Prices API,2025-12-18T04:47:05.510203 +AZURE,canadacentral,Standard_D4ps_v6,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:47:05.510234 +AZURE,canadacentral,Standard_D4ps_v6,reserved_1y,NA,0.092009,USD,Azure Retail Prices API,2025-12-18T04:47:06.784487 +AZURE,canadacentral,Standard_D4ps_v6,reserved_3y,NA,0.059285,USD,Azure Retail Prices API,2025-12-18T04:47:06.784490 +AZURE,canadacentral,Standard_D4ps_v6,spot,NA,0.028829,USD,Azure Retail Prices API,2025-12-18T04:47:05.509558 +AZURE,canadacentral,Standard_D4s_v3,on_demand,NA,0.222,USD,Azure Retail Prices API,2025-12-18T04:47:05.510448 +AZURE,canadacentral,Standard_D4s_v3,reserved_1y,NA,0.127397,USD,Azure Retail Prices API,2025-12-18T04:47:06.784734 +AZURE,canadacentral,Standard_D4s_v3,reserved_3y,NA,0.082725,USD,Azure Retail Prices API,2025-12-18T04:47:06.784737 +AZURE,canadacentral,Standard_D4s_v3,spot,NA,0.058453,USD,Azure Retail Prices API,2025-12-18T04:47:05.510861 +AZURE,canadacentral,Standard_D4s_v4,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:47:05.510000 +AZURE,canadacentral,Standard_D4s_v4,reserved_1y,NA,0.125799,USD,Azure Retail Prices API,2025-12-18T04:47:06.784301 +AZURE,canadacentral,Standard_D4s_v4,reserved_3y,NA,0.080479,USD,Azure Retail Prices API,2025-12-18T04:47:06.784304 +AZURE,canadacentral,Standard_D4s_v4,spot,NA,0.055918,USD,Azure Retail Prices API,2025-12-18T04:47:05.510876 +AZURE,canadacentral,Standard_D4s_v5,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:47:05.510302 +AZURE,canadacentral,Standard_D4s_v5,reserved_1y,NA,0.126256,USD,Azure Retail Prices API,2025-12-18T04:47:06.784527 +AZURE,canadacentral,Standard_D4s_v5,reserved_3y,NA,0.079186,USD,Azure Retail Prices API,2025-12-18T04:47:06.784531 +AZURE,canadacentral,Standard_D4s_v5,spot,NA,0.065976,USD,Azure Retail Prices API,2025-12-18T04:47:05.510996 +AZURE,canadacentral,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488001 +AZURE,canadacentral,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488009 +AZURE,canadacentral,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488013 +AZURE,canadacentral,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488005 +AZURE,canadacentral,Standard_D64_v3,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:47:05.509592 +AZURE,canadacentral,Standard_D64_v3,reserved_1y,NA,2.038356,USD,Azure Retail Prices API,2025-12-18T04:47:06.783906 +AZURE,canadacentral,Standard_D64_v3,reserved_3y,NA,1.323592,USD,Azure Retail Prices API,2025-12-18T04:47:06.783909 +AZURE,canadacentral,Standard_D64_v3,spot,NA,0.935242,USD,Azure Retail Prices API,2025-12-18T04:47:05.509611 +AZURE,canadacentral,Standard_D64a_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:47:05.510267 +AZURE,canadacentral,Standard_D64a_v4,reserved_1y,NA,2.020205,USD,Azure Retail Prices API,2025-12-18T04:47:06.784510 +AZURE,canadacentral,Standard_D64a_v4,reserved_3y,NA,1.301104,USD,Azure Retail Prices API,2025-12-18T04:47:06.784513 +AZURE,canadacentral,Standard_D64a_v4,spot,NA,0.632755,USD,Azure Retail Prices API,2025-12-18T04:47:05.509589 +AZURE,canadacentral,Standard_D64ads_v5,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:47:05.509598 +AZURE,canadacentral,Standard_D64ads_v5,reserved_1y,NA,2.171233,USD,Azure Retail Prices API,2025-12-18T04:47:06.783912 +AZURE,canadacentral,Standard_D64ads_v5,reserved_3y,NA,1.398402,USD,Azure Retail Prices API,2025-12-18T04:47:06.783915 +AZURE,canadacentral,Standard_D64ads_v5,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:47:05.510654 +AZURE,canadacentral,Standard_D64ads_v6,on_demand,NA,4.077,USD,Azure Retail Prices API,2025-12-18T04:47:05.509534 +AZURE,canadacentral,Standard_D64ads_v6,reserved_1y,NA,2.405365,USD,Azure Retail Prices API,2025-12-18T04:47:06.783875 +AZURE,canadacentral,Standard_D64ads_v6,reserved_3y,NA,1.549201,USD,Azure Retail Prices API,2025-12-18T04:47:06.783878 +AZURE,canadacentral,Standard_D64ads_v6,spot,NA,0.75343,USD,Azure Retail Prices API,2025-12-18T04:47:05.510482 +AZURE,canadacentral,Standard_D64as_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:47:05.509694 +AZURE,canadacentral,Standard_D64as_v4,reserved_1y,NA,2.020205,USD,Azure Retail Prices API,2025-12-18T04:47:06.784011 +AZURE,canadacentral,Standard_D64as_v4,reserved_3y,NA,1.301104,USD,Azure Retail Prices API,2025-12-18T04:47:06.784014 +AZURE,canadacentral,Standard_D64as_v4,spot,NA,0.632755,USD,Azure Retail Prices API,2025-12-18T04:47:05.510195 +AZURE,canadacentral,Standard_D64as_v5,on_demand,NA,6.016,USD,Azure Retail Prices API,2025-12-18T04:47:05.510873 +AZURE,canadacentral,Standard_D64as_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:47:06.785359 +AZURE,canadacentral,Standard_D64as_v5,reserved_3y,NA,1.167352,USD,Azure Retail Prices API,2025-12-18T04:47:06.785362 +AZURE,canadacentral,Standard_D64as_v5,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:47:05.510568 +AZURE,canadacentral,Standard_D64d_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:47:05.510499 +AZURE,canadacentral,Standard_D64d_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:47:06.784812 +AZURE,canadacentral,Standard_D64d_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:47:06.784815 +AZURE,canadacentral,Standard_D64d_v4,spot,NA,1.008403,USD,Azure Retail Prices API,2025-12-18T04:47:05.509796 +AZURE,canadacentral,Standard_D64ds_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:47:05.510685 +AZURE,canadacentral,Standard_D64ds_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:47:06.785076 +AZURE,canadacentral,Standard_D64ds_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:47:06.785079 +AZURE,canadacentral,Standard_D64ds_v4,spot,NA,1.008403,USD,Azure Retail Prices API,2025-12-18T04:47:05.510800 +AZURE,canadacentral,Standard_D64ds_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:47:05.509992 +AZURE,canadacentral,Standard_D64ds_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:47:06.784295 +AZURE,canadacentral,Standard_D64ds_v5,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:47:06.784298 +AZURE,canadacentral,Standard_D64ds_v5,spot,NA,1.182989,USD,Azure Retail Prices API,2025-12-18T04:47:05.509528 +AZURE,canadacentral,Standard_D64ds_v6,on_demand,NA,4.444,USD,Azure Retail Prices API,2025-12-18T04:47:05.510737 +AZURE,canadacentral,Standard_D64ds_v6,reserved_1y,NA,2.755023,USD,Azure Retail Prices API,2025-12-18T04:47:06.785145 +AZURE,canadacentral,Standard_D64ds_v6,reserved_3y,NA,1.732991,USD,Azure Retail Prices API,2025-12-18T04:47:06.785149 +AZURE,canadacentral,Standard_D64ds_v6,spot,NA,0.821251,USD,Azure Retail Prices API,2025-12-18T04:47:05.509586 +AZURE,canadacentral,Standard_D64pds_v6,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:47:05.510898 +AZURE,canadacentral,Standard_D64pds_v6,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:47:06.785309 +AZURE,canadacentral,Standard_D64pds_v6,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:47:06.785312 +AZURE,canadacentral,Standard_D64pds_v6,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:47:05.510659 +AZURE,canadacentral,Standard_D64ps_v6,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:47:05.510521 +AZURE,canadacentral,Standard_D64ps_v6,reserved_1y,NA,1.472603,USD,Azure Retail Prices API,2025-12-18T04:47:06.784857 +AZURE,canadacentral,Standard_D64ps_v6,reserved_3y,NA,0.948478,USD,Azure Retail Prices API,2025-12-18T04:47:06.784861 +AZURE,canadacentral,Standard_D64ps_v6,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:47:05.510255 +AZURE,canadacentral,Standard_D64s_v3,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:47:05.510620 +AZURE,canadacentral,Standard_D64s_v3,reserved_1y,NA,2.038356,USD,Azure Retail Prices API,2025-12-18T04:47:06.784993 +AZURE,canadacentral,Standard_D64s_v3,reserved_3y,NA,1.323592,USD,Azure Retail Prices API,2025-12-18T04:47:06.784997 +AZURE,canadacentral,Standard_D64s_v3,spot,NA,0.935242,USD,Azure Retail Prices API,2025-12-18T04:47:05.510988 +AZURE,canadacentral,Standard_D64s_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:47:05.510252 +AZURE,canadacentral,Standard_D64s_v4,reserved_1y,NA,2.013356,USD,Azure Retail Prices API,2025-12-18T04:47:06.784505 +AZURE,canadacentral,Standard_D64s_v4,reserved_3y,NA,1.287443,USD,Azure Retail Prices API,2025-12-18T04:47:06.784507 +AZURE,canadacentral,Standard_D64s_v4,spot,NA,0.894691,USD,Azure Retail Prices API,2025-12-18T04:47:05.509580 +AZURE,canadacentral,Standard_D64s_v5,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:47:05.509707 +AZURE,canadacentral,Standard_D64s_v5,reserved_1y,NA,2.020205,USD,Azure Retail Prices API,2025-12-18T04:47:06.784029 +AZURE,canadacentral,Standard_D64s_v5,reserved_3y,NA,1.266895,USD,Azure Retail Prices API,2025-12-18T04:47:06.784032 +AZURE,canadacentral,Standard_D64s_v5,spot,NA,1.055619,USD,Azure Retail Prices API,2025-12-18T04:47:05.510246 +AZURE,canadacentral,Standard_D8_v3,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:47:05.510648 +AZURE,canadacentral,Standard_D8_v3,reserved_1y,NA,0.254795,USD,Azure Retail Prices API,2025-12-18T04:47:06.785038 +AZURE,canadacentral,Standard_D8_v3,reserved_3y,NA,0.165449,USD,Azure Retail Prices API,2025-12-18T04:47:06.785041 +AZURE,canadacentral,Standard_D8_v3,spot,NA,0.116905,USD,Azure Retail Prices API,2025-12-18T04:47:05.510606 +AZURE,canadacentral,Standard_D8a_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:47:05.510623 +AZURE,canadacentral,Standard_D8a_v4,reserved_1y,NA,0.252511,USD,Azure Retail Prices API,2025-12-18T04:47:06.785000 +AZURE,canadacentral,Standard_D8a_v4,reserved_3y,NA,0.162633,USD,Azure Retail Prices API,2025-12-18T04:47:06.785003 +AZURE,canadacentral,Standard_D8a_v4,spot,NA,0.079094,USD,Azure Retail Prices API,2025-12-18T04:47:05.509641 +AZURE,canadacentral,Standard_D8ads_v5,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:47:05.510668 +AZURE,canadacentral,Standard_D8ads_v5,reserved_1y,NA,0.271347,USD,Azure Retail Prices API,2025-12-18T04:47:06.785063 +AZURE,canadacentral,Standard_D8ads_v5,reserved_3y,NA,0.17481,USD,Azure Retail Prices API,2025-12-18T04:47:06.785066 +AZURE,canadacentral,Standard_D8ads_v5,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:47:05.510679 +AZURE,canadacentral,Standard_D8ads_v6,on_demand,NA,0.51,USD,Azure Retail Prices API,2025-12-18T04:47:05.510553 +AZURE,canadacentral,Standard_D8ads_v6,reserved_1y,NA,0.300685,USD,Azure Retail Prices API,2025-12-18T04:47:06.784907 +AZURE,canadacentral,Standard_D8ads_v6,reserved_3y,NA,0.193645,USD,Azure Retail Prices API,2025-12-18T04:47:06.784910 +AZURE,canadacentral,Standard_D8ads_v6,spot,NA,0.094248,USD,Azure Retail Prices API,2025-12-18T04:47:05.510270 +AZURE,canadacentral,Standard_D8as_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:47:05.510958 +AZURE,canadacentral,Standard_D8as_v4,reserved_1y,NA,0.252511,USD,Azure Retail Prices API,2025-12-18T04:47:06.785353 +AZURE,canadacentral,Standard_D8as_v4,reserved_3y,NA,0.162633,USD,Azure Retail Prices API,2025-12-18T04:47:06.785356 +AZURE,canadacentral,Standard_D8as_v4,spot,NA,0.079094,USD,Azure Retail Prices API,2025-12-18T04:47:05.510688 +AZURE,canadacentral,Standard_D8as_v5,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:47:05.509891 +AZURE,canadacentral,Standard_D8as_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:47:06.784203 +AZURE,canadacentral,Standard_D8as_v5,reserved_3y,NA,0.145928,USD,Azure Retail Prices API,2025-12-18T04:47:06.784205 +AZURE,canadacentral,Standard_D8as_v5,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:47:05.509627 +AZURE,canadacentral,Standard_D8d_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:47:05.509848 +AZURE,canadacentral,Standard_D8d_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:47:06.784162 +AZURE,canadacentral,Standard_D8d_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:47:06.784165 +AZURE,canadacentral,Standard_D8d_v4,spot,NA,0.12605,USD,Azure Retail Prices API,2025-12-18T04:47:05.509876 +AZURE,canadacentral,Standard_D8ds_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:47:05.509676 +AZURE,canadacentral,Standard_D8ds_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:47:06.783976 +AZURE,canadacentral,Standard_D8ds_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:47:06.783980 +AZURE,canadacentral,Standard_D8ds_v4,spot,NA,0.12605,USD,Azure Retail Prices API,2025-12-18T04:47:05.510006 +AZURE,canadacentral,Standard_D8ds_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:47:05.510791 +AZURE,canadacentral,Standard_D8ds_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:47:06.785211 +AZURE,canadacentral,Standard_D8ds_v5,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:47:06.785214 +AZURE,canadacentral,Standard_D8ds_v5,spot,NA,0.147874,USD,Azure Retail Prices API,2025-12-18T04:47:05.510420 +AZURE,canadacentral,Standard_D8ds_v6,on_demand,NA,0.555,USD,Azure Retail Prices API,2025-12-18T04:47:05.509834 +AZURE,canadacentral,Standard_D8ds_v6,reserved_1y,NA,0.344406,USD,Azure Retail Prices API,2025-12-18T04:47:06.784137 +AZURE,canadacentral,Standard_D8ds_v6,reserved_3y,NA,0.216629,USD,Azure Retail Prices API,2025-12-18T04:47:06.784140 +AZURE,canadacentral,Standard_D8ds_v6,spot,NA,0.102564,USD,Azure Retail Prices API,2025-12-18T04:47:05.511005 +AZURE,canadacentral,Standard_D8pds_v6,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:47:05.510371 +AZURE,canadacentral,Standard_D8pds_v6,reserved_1y,NA,0.240753,USD,Azure Retail Prices API,2025-12-18T04:47:06.784625 +AZURE,canadacentral,Standard_D8pds_v6,reserved_3y,NA,0.155023,USD,Azure Retail Prices API,2025-12-18T04:47:06.784627 +AZURE,canadacentral,Standard_D8pds_v6,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:47:05.510296 +AZURE,canadacentral,Standard_D8ps_v6,on_demand,NA,0.312,USD,Azure Retail Prices API,2025-12-18T04:47:05.509763 +AZURE,canadacentral,Standard_D8ps_v6,reserved_1y,NA,0.184132,USD,Azure Retail Prices API,2025-12-18T04:47:06.784101 +AZURE,canadacentral,Standard_D8ps_v6,reserved_3y,NA,0.118569,USD,Azure Retail Prices API,2025-12-18T04:47:06.784104 +AZURE,canadacentral,Standard_D8ps_v6,spot,NA,0.057658,USD,Azure Retail Prices API,2025-12-18T04:47:05.510434 +AZURE,canadacentral,Standard_D8s_v3,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:47:05.510074 +AZURE,canadacentral,Standard_D8s_v3,reserved_1y,NA,0.254795,USD,Azure Retail Prices API,2025-12-18T04:47:06.784366 +AZURE,canadacentral,Standard_D8s_v3,reserved_3y,NA,0.165449,USD,Azure Retail Prices API,2025-12-18T04:47:06.784368 +AZURE,canadacentral,Standard_D8s_v3,spot,NA,0.116905,USD,Azure Retail Prices API,2025-12-18T04:47:05.510922 +AZURE,canadacentral,Standard_D8s_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:47:05.510820 +AZURE,canadacentral,Standard_D8s_v4,reserved_1y,NA,0.251712,USD,Azure Retail Prices API,2025-12-18T04:47:06.785230 +AZURE,canadacentral,Standard_D8s_v4,reserved_3y,NA,0.160921,USD,Azure Retail Prices API,2025-12-18T04:47:06.785233 +AZURE,canadacentral,Standard_D8s_v4,spot,NA,0.111836,USD,Azure Retail Prices API,2025-12-18T04:47:05.510385 +AZURE,canadacentral,Standard_D8s_v5,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:47:05.510782 +AZURE,canadacentral,Standard_D8s_v5,reserved_1y,NA,0.252511,USD,Azure Retail Prices API,2025-12-18T04:47:06.785204 +AZURE,canadacentral,Standard_D8s_v5,reserved_3y,NA,0.158371,USD,Azure Retail Prices API,2025-12-18T04:47:06.785208 +AZURE,canadacentral,Standard_D8s_v5,spot,NA,0.131952,USD,Azure Retail Prices API,2025-12-18T04:47:05.510103 +AZURE,canadacentral,Standard_D96a_v4,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:47:05.510936 +AZURE,canadacentral,Standard_D96a_v4,reserved_1y,NA,3.030251,USD,Azure Retail Prices API,2025-12-18T04:47:06.785332 +AZURE,canadacentral,Standard_D96a_v4,reserved_3y,NA,1.951674,USD,Azure Retail Prices API,2025-12-18T04:47:06.785334 +AZURE,canadacentral,Standard_D96a_v4,spot,NA,0.949133,USD,Azure Retail Prices API,2025-12-18T04:47:05.510162 +AZURE,canadacentral,Standard_D96ads_v5,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:47:05.509486 +AZURE,canadacentral,Standard_D96ads_v5,reserved_1y,NA,3.256849,USD,Azure Retail Prices API,2025-12-18T04:47:06.783806 +AZURE,canadacentral,Standard_D96ads_v5,reserved_3y,NA,2.097603,USD,Azure Retail Prices API,2025-12-18T04:47:06.783811 +AZURE,canadacentral,Standard_D96ads_v5,spot,NA,1.020096,USD,Azure Retail Prices API,2025-12-18T04:47:05.510639 +AZURE,canadacentral,Standard_D96ads_v6,on_demand,NA,6.115,USD,Azure Retail Prices API,2025-12-18T04:47:05.510494 +AZURE,canadacentral,Standard_D96ads_v6,reserved_1y,NA,3.607991,USD,Azure Retail Prices API,2025-12-18T04:47:06.784799 +AZURE,canadacentral,Standard_D96ads_v6,reserved_3y,NA,2.323782,USD,Azure Retail Prices API,2025-12-18T04:47:06.784803 +AZURE,canadacentral,Standard_D96ads_v6,spot,NA,1.130052,USD,Azure Retail Prices API,2025-12-18T04:47:05.510881 +AZURE,canadacentral,Standard_D96as_v4,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:47:05.511033 +AZURE,canadacentral,Standard_D96as_v4,reserved_1y,NA,3.030251,USD,Azure Retail Prices API,2025-12-18T04:47:06.785431 +AZURE,canadacentral,Standard_D96as_v4,reserved_3y,NA,1.951674,USD,Azure Retail Prices API,2025-12-18T04:47:06.785434 +AZURE,canadacentral,Standard_D96as_v4,spot,NA,0.949133,USD,Azure Retail Prices API,2025-12-18T04:47:05.510632 +AZURE,canadacentral,Standard_D96as_v5,on_demand,NA,9.024,USD,Azure Retail Prices API,2025-12-18T04:47:05.509979 +AZURE,canadacentral,Standard_D96as_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:47:06.785243 +AZURE,canadacentral,Standard_D96as_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:47:06.785246 +AZURE,canadacentral,Standard_D96as_v5,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:47:05.510615 +AZURE,canadacentral,Standard_D96ds_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:47:05.510325 +AZURE,canadacentral,Standard_D96ds_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:47:06.784563 +AZURE,canadacentral,Standard_D96ds_v5,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:47:06.784566 +AZURE,canadacentral,Standard_D96ds_v5,spot,NA,1.774483,USD,Azure Retail Prices API,2025-12-18T04:47:05.510134 +AZURE,canadacentral,Standard_D96ds_v6,on_demand,NA,6.665,USD,Azure Retail Prices API,2025-12-18T04:47:05.509845 +AZURE,canadacentral,Standard_D96ds_v6,reserved_1y,NA,4.13242,USD,Azure Retail Prices API,2025-12-18T04:47:06.784156 +AZURE,canadacentral,Standard_D96ds_v6,reserved_3y,NA,2.599467,USD,Azure Retail Prices API,2025-12-18T04:47:06.784159 +AZURE,canadacentral,Standard_D96ds_v6,spot,NA,1.231692,USD,Azure Retail Prices API,2025-12-18T04:47:05.509500 +AZURE,canadacentral,Standard_D96pds_v6,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:47:05.510411 +AZURE,canadacentral,Standard_D96pds_v6,reserved_1y,NA,2.888584,USD,Azure Retail Prices API,2025-12-18T04:47:06.784666 +AZURE,canadacentral,Standard_D96pds_v6,reserved_3y,NA,1.860464,USD,Azure Retail Prices API,2025-12-18T04:47:06.784669 +AZURE,canadacentral,Standard_D96pds_v6,spot,NA,0.904781,USD,Azure Retail Prices API,2025-12-18T04:47:05.510214 +AZURE,canadacentral,Standard_D96ps_v6,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:47:05.510290 +AZURE,canadacentral,Standard_D96ps_v6,reserved_1y,NA,2.208904,USD,Azure Retail Prices API,2025-12-18T04:47:06.784516 +AZURE,canadacentral,Standard_D96ps_v6,reserved_3y,NA,1.422717,USD,Azure Retail Prices API,2025-12-18T04:47:06.784519 +AZURE,canadacentral,Standard_D96ps_v6,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:47:05.510848 +AZURE,canadacentral,Standard_D96s_v5,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:47:05.510662 +AZURE,canadacentral,Standard_D96s_v5,reserved_1y,NA,3.030251,USD,Azure Retail Prices API,2025-12-18T04:47:06.785050 +AZURE,canadacentral,Standard_D96s_v5,reserved_3y,NA,1.900304,USD,Azure Retail Prices API,2025-12-18T04:47:06.785053 +AZURE,canadacentral,Standard_D96s_v5,spot,NA,1.583429,USD,Azure Retail Prices API,2025-12-18T04:47:05.510261 +AZURE,canadacentral,Standard_DC16ads_v6,on_demand,NA,1.019,USD,Azure Retail Prices API,2025-12-18T04:47:05.510597 +AZURE,canadacentral,Standard_DC16ads_v6,reserved_1y,NA,0.60137,USD,Azure Retail Prices API,2025-12-18T04:47:06.784961 +AZURE,canadacentral,Standard_DC16ads_v6,reserved_3y,NA,0.387291,USD,Azure Retail Prices API,2025-12-18T04:47:06.784964 +AZURE,canadacentral,Standard_DC16ads_v6,spot,NA,0.188311,USD,Azure Retail Prices API,2025-12-18T04:47:05.509679 +AZURE,canadacentral,Standard_DC2ads_v6,on_demand,NA,0.127,USD,Azure Retail Prices API,2025-12-18T04:47:05.509900 +AZURE,canadacentral,Standard_DC2ads_v6,reserved_1y,NA,0.075114,USD,Azure Retail Prices API,2025-12-18T04:47:06.784208 +AZURE,canadacentral,Standard_DC2ads_v6,reserved_3y,NA,0.048402,USD,Azure Retail Prices API,2025-12-18T04:47:06.784211 +AZURE,canadacentral,Standard_DC2ads_v6,spot,NA,0.02347,USD,Azure Retail Prices API,2025-12-18T04:47:05.510751 +AZURE,canadacentral,Standard_DC32ads_v6,on_demand,NA,2.038,USD,Azure Retail Prices API,2025-12-18T04:47:05.510884 +AZURE,canadacentral,Standard_DC32ads_v6,reserved_1y,NA,1.202626,USD,Azure Retail Prices API,2025-12-18T04:47:06.785298 +AZURE,canadacentral,Standard_DC32ads_v6,reserved_3y,NA,0.774581,USD,Azure Retail Prices API,2025-12-18T04:47:06.785300 +AZURE,canadacentral,Standard_DC32ads_v6,spot,NA,0.376622,USD,Azure Retail Prices API,2025-12-18T04:47:05.509543 +AZURE,canadacentral,Standard_DC48ads_v6,on_demand,NA,3.058,USD,Azure Retail Prices API,2025-12-18T04:47:05.509885 +AZURE,canadacentral,Standard_DC48ads_v6,reserved_1y,NA,1.803995,USD,Azure Retail Prices API,2025-12-18T04:47:06.784197 +AZURE,canadacentral,Standard_DC48ads_v6,reserved_3y,NA,1.161872,USD,Azure Retail Prices API,2025-12-18T04:47:06.784200 +AZURE,canadacentral,Standard_DC48ads_v6,spot,NA,0.565118,USD,Azure Retail Prices API,2025-12-18T04:47:05.510913 +AZURE,canadacentral,Standard_DC4ads_v6,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:47:05.510089 +AZURE,canadacentral,Standard_DC4ads_v6,reserved_1y,NA,0.150342,USD,Azure Retail Prices API,2025-12-18T04:47:06.784380 +AZURE,canadacentral,Standard_DC4ads_v6,reserved_3y,NA,0.096842,USD,Azure Retail Prices API,2025-12-18T04:47:06.784383 +AZURE,canadacentral,Standard_DC4ads_v6,spot,NA,0.047124,USD,Azure Retail Prices API,2025-12-18T04:47:05.510609 +AZURE,canadacentral,Standard_DC64ads_v6,on_demand,NA,4.077,USD,Azure Retail Prices API,2025-12-18T04:47:05.509653 +AZURE,canadacentral,Standard_DC64ads_v6,reserved_1y,NA,2.405365,USD,Azure Retail Prices API,2025-12-18T04:47:06.783952 +AZURE,canadacentral,Standard_DC64ads_v6,reserved_3y,NA,1.549201,USD,Azure Retail Prices API,2025-12-18T04:47:06.783955 +AZURE,canadacentral,Standard_DC64ads_v6,spot,NA,0.75343,USD,Azure Retail Prices API,2025-12-18T04:47:05.510670 +AZURE,canadacentral,Standard_DC8ads_v6,on_demand,NA,0.51,USD,Azure Retail Prices API,2025-12-18T04:47:05.510442 +AZURE,canadacentral,Standard_DC8ads_v6,reserved_1y,NA,0.300685,USD,Azure Retail Prices API,2025-12-18T04:47:06.784712 +AZURE,canadacentral,Standard_DC8ads_v6,reserved_3y,NA,0.193645,USD,Azure Retail Prices API,2025-12-18T04:47:06.784717 +AZURE,canadacentral,Standard_DC8ads_v6,spot,NA,0.094248,USD,Azure Retail Prices API,2025-12-18T04:47:05.510582 +AZURE,canadacentral,Standard_DC96ads_v6,on_demand,NA,6.115,USD,Azure Retail Prices API,2025-12-18T04:47:05.510471 +AZURE,canadacentral,Standard_DC96ads_v6,reserved_1y,NA,3.607991,USD,Azure Retail Prices API,2025-12-18T04:47:06.784766 +AZURE,canadacentral,Standard_DC96ads_v6,reserved_3y,NA,2.323782,USD,Azure Retail Prices API,2025-12-18T04:47:06.784769 +AZURE,canadacentral,Standard_DC96ads_v6,spot,NA,1.130052,USD,Azure Retail Prices API,2025-12-18T04:47:05.510065 +AZURE,canadacentral,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495774 +AZURE,canadacentral,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495784 +AZURE,canadacentral,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495788 +AZURE,canadacentral,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495778 +AZURE,canadacentral,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496665 +AZURE,canadacentral,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496674 +AZURE,canadacentral,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496680 +AZURE,canadacentral,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496670 +AZURE,canadacentral,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497539 +AZURE,canadacentral,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497548 +AZURE,canadacentral,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497552 +AZURE,canadacentral,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497544 +AZURE,canadacentral,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498287 +AZURE,canadacentral,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498297 +AZURE,canadacentral,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498301 +AZURE,canadacentral,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498292 +AZURE,canadacentral,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492135 +AZURE,canadacentral,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492144 +AZURE,canadacentral,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492148 +AZURE,canadacentral,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492139 +AZURE,canadacentral,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492842 +AZURE,canadacentral,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492850 +AZURE,canadacentral,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492854 +AZURE,canadacentral,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492846 +AZURE,canadacentral,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493574 +AZURE,canadacentral,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493584 +AZURE,canadacentral,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493592 +AZURE,canadacentral,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493579 +AZURE,canadacentral,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494288 +AZURE,canadacentral,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494296 +AZURE,canadacentral,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494300 +AZURE,canadacentral,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494292 +AZURE,canadacentral,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494998 +AZURE,canadacentral,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495006 +AZURE,canadacentral,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495011 +AZURE,canadacentral,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495002 +AZURE,canadacentral,Standard_E128ds_v6,on_demand,NA,11.462,USD,Azure Retail Prices API,2025-12-18T04:47:05.510220 +AZURE,canadacentral,Standard_E128ds_v6,reserved_1y,NA,7.106735,USD,Azure Retail Prices API,2025-12-18T04:47:06.784471 +AZURE,canadacentral,Standard_E128ds_v6,reserved_3y,NA,4.47032,USD,Azure Retail Prices API,2025-12-18T04:47:06.784474 +AZURE,canadacentral,Standard_E128ds_v6,spot,NA,2.118178,USD,Azure Retail Prices API,2025-12-18T04:47:05.510198 +AZURE,canadacentral,Standard_E16_v3,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:47:05.510314 +AZURE,canadacentral,Standard_E16_v3,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:47:06.784540 +AZURE,canadacentral,Standard_E16_v3,reserved_3y,NA,0.439155,USD,Azure Retail Prices API,2025-12-18T04:47:06.784543 +AZURE,canadacentral,Standard_E16_v3,spot,NA,0.307534,USD,Azure Retail Prices API,2025-12-18T04:47:05.510284 +AZURE,canadacentral,Standard_E16a_v4,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:47:05.510776 +AZURE,canadacentral,Standard_E16a_v4,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:47:06.785191 +AZURE,canadacentral,Standard_E16a_v4,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:47:06.785194 +AZURE,canadacentral,Standard_E16a_v4,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:47:05.510864 +AZURE,canadacentral,Standard_E16ads_v5,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:47:05.509670 +AZURE,canadacentral,Standard_E16ads_v5,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:47:06.783969 +AZURE,canadacentral,Standard_E16ads_v5,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:47:06.783972 +AZURE,canadacentral,Standard_E16ads_v5,spot,NA,0.21289,USD,Azure Retail Prices API,2025-12-18T04:47:05.510365 +AZURE,canadacentral,Standard_E16ads_v6,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:47:05.509970 +AZURE,canadacentral,Standard_E16ads_v6,reserved_1y,NA,0.764612,USD,Azure Retail Prices API,2025-12-18T04:47:06.784277 +AZURE,canadacentral,Standard_E16ads_v6,reserved_3y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:47:06.784280 +AZURE,canadacentral,Standard_E16ads_v6,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:47:05.509995 +AZURE,canadacentral,Standard_E16as_v4,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:47:05.510533 +AZURE,canadacentral,Standard_E16as_v4,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:47:06.784873 +AZURE,canadacentral,Standard_E16as_v4,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:47:06.784878 +AZURE,canadacentral,Standard_E16as_v4,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:47:05.510109 +AZURE,canadacentral,Standard_E16as_v5,on_demand,NA,0.992,USD,Azure Retail Prices API,2025-12-18T04:47:05.510735 +AZURE,canadacentral,Standard_E16as_v5,reserved_1y,NA,0.585274,USD,Azure Retail Prices API,2025-12-18T04:47:06.785139 +AZURE,canadacentral,Standard_E16as_v5,reserved_3y,NA,0.376979,USD,Azure Retail Prices API,2025-12-18T04:47:06.785142 +AZURE,canadacentral,Standard_E16as_v5,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:47:05.509490 +AZURE,canadacentral,Standard_E16d_v4,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:47:05.510895 +AZURE,canadacentral,Standard_E16d_v4,reserved_1y,NA,0.743265,USD,Azure Retail Prices API,2025-12-18T04:47:06.785303 +AZURE,canadacentral,Standard_E16d_v4,reserved_3y,NA,0.475266,USD,Azure Retail Prices API,2025-12-18T04:47:06.785306 +AZURE,canadacentral,Standard_E16d_v4,spot,NA,0.330662,USD,Azure Retail Prices API,2025-12-18T04:47:05.510947 +AZURE,canadacentral,Standard_E16ds_v4,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:47:05.509691 +AZURE,canadacentral,Standard_E16ds_v4,reserved_1y,NA,0.743265,USD,Azure Retail Prices API,2025-12-18T04:47:06.784003 +AZURE,canadacentral,Standard_E16ds_v4,reserved_3y,NA,0.475266,USD,Azure Retail Prices API,2025-12-18T04:47:06.784008 +AZURE,canadacentral,Standard_E16ds_v4,spot,NA,0.330662,USD,Azure Retail Prices API,2025-12-18T04:47:05.510773 +AZURE,canadacentral,Standard_E16ds_v5,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:47:05.509493 +AZURE,canadacentral,Standard_E16ds_v5,reserved_1y,NA,0.745776,USD,Azure Retail Prices API,2025-12-18T04:47:06.783818 +AZURE,canadacentral,Standard_E16ds_v5,reserved_3y,NA,0.480327,USD,Azure Retail Prices API,2025-12-18T04:47:06.783823 +AZURE,canadacentral,Standard_E16ds_v5,spot,NA,0.346336,USD,Azure Retail Prices API,2025-12-18T04:47:05.510080 +AZURE,canadacentral,Standard_E16ds_v6,on_demand,NA,1.433,USD,Azure Retail Prices API,2025-12-18T04:47:05.509497 +AZURE,canadacentral,Standard_E16ds_v6,reserved_1y,NA,0.888356,USD,Azure Retail Prices API,2025-12-18T04:47:06.783827 +AZURE,canadacentral,Standard_E16ds_v6,reserved_3y,NA,0.55879,USD,Azure Retail Prices API,2025-12-18T04:47:06.783831 +AZURE,canadacentral,Standard_E16ds_v6,spot,NA,0.264818,USD,Azure Retail Prices API,2025-12-18T04:47:05.510408 +AZURE,canadacentral,Standard_E16pds_v6,on_demand,NA,1.04,USD,Azure Retail Prices API,2025-12-18T04:47:05.510348 +AZURE,canadacentral,Standard_E16pds_v6,reserved_1y,NA,0.613584,USD,Azure Retail Prices API,2025-12-18T04:47:06.784593 +AZURE,canadacentral,Standard_E16pds_v6,reserved_3y,NA,0.395205,USD,Azure Retail Prices API,2025-12-18T04:47:06.784596 +AZURE,canadacentral,Standard_E16pds_v6,spot,NA,0.192192,USD,Azure Retail Prices API,2025-12-18T04:47:05.509633 +AZURE,canadacentral,Standard_E16ps_v6,on_demand,NA,0.819,USD,Azure Retail Prices API,2025-12-18T04:47:05.510759 +AZURE,canadacentral,Standard_E16ps_v6,reserved_1y,NA,0.483333,USD,Azure Retail Prices API,2025-12-18T04:47:06.785172 +AZURE,canadacentral,Standard_E16ps_v6,reserved_3y,NA,0.311301,USD,Azure Retail Prices API,2025-12-18T04:47:06.785175 +AZURE,canadacentral,Standard_E16ps_v6,spot,NA,0.151351,USD,Azure Retail Prices API,2025-12-18T04:47:05.510999 +AZURE,canadacentral,Standard_E16s_v3,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:47:05.510870 +AZURE,canadacentral,Standard_E16s_v3,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:47:06.785286 +AZURE,canadacentral,Standard_E16s_v3,reserved_3y,NA,0.439155,USD,Azure Retail Prices API,2025-12-18T04:47:06.785290 +AZURE,canadacentral,Standard_E16s_v3,spot,NA,0.307534,USD,Azure Retail Prices API,2025-12-18T04:47:05.509868 +AZURE,canadacentral,Standard_E16s_v4,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:47:05.509831 +AZURE,canadacentral,Standard_E16s_v4,reserved_1y,NA,0.649201,USD,Azure Retail Prices API,2025-12-18T04:47:06.784132 +AZURE,canadacentral,Standard_E16s_v4,reserved_3y,NA,0.415107,USD,Azure Retail Prices API,2025-12-18T04:47:06.784135 +AZURE,canadacentral,Standard_E16s_v4,spot,NA,0.263635,USD,Azure Retail Prices API,2025-12-18T04:47:05.509664 +AZURE,canadacentral,Standard_E16s_v5,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:47:05.510317 +AZURE,canadacentral,Standard_E16s_v5,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:47:06.784546 +AZURE,canadacentral,Standard_E16s_v5,reserved_3y,NA,0.408486,USD,Azure Retail Prices API,2025-12-18T04:47:06.784549 +AZURE,canadacentral,Standard_E16s_v5,spot,NA,0.319498,USD,Azure Retail Prices API,2025-12-18T04:47:05.509730 +AZURE,canadacentral,Standard_E20a_v4,on_demand,NA,1.38,USD,Azure Retail Prices API,2025-12-18T04:47:05.510485 +AZURE,canadacentral,Standard_E20a_v4,reserved_1y,NA,0.814155,USD,Azure Retail Prices API,2025-12-18T04:47:06.784786 +AZURE,canadacentral,Standard_E20a_v4,reserved_3y,NA,0.524391,USD,Azure Retail Prices API,2025-12-18T04:47:06.784789 +AZURE,canadacentral,Standard_E20a_v4,spot,NA,0.255024,USD,Azure Retail Prices API,2025-12-18T04:47:05.510014 +AZURE,canadacentral,Standard_E20ads_v5,on_demand,NA,2.36,USD,Azure Retail Prices API,2025-12-18T04:47:05.509571 +AZURE,canadacentral,Standard_E20ads_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:47:06.784844 +AZURE,canadacentral,Standard_E20ads_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:47:06.784847 +AZURE,canadacentral,Standard_E20ads_v5,spot,NA,0.266112,USD,Azure Retail Prices API,2025-12-18T04:47:05.509955 +AZURE,canadacentral,Standard_E20ads_v6,on_demand,NA,1.62,USD,Azure Retail Prices API,2025-12-18T04:47:05.510585 +AZURE,canadacentral,Standard_E20ads_v6,reserved_1y,NA,0.955822,USD,Azure Retail Prices API,2025-12-18T04:47:06.784941 +AZURE,canadacentral,Standard_E20ads_v6,reserved_3y,NA,0.615601,USD,Azure Retail Prices API,2025-12-18T04:47:06.784944 +AZURE,canadacentral,Standard_E20ads_v6,spot,NA,0.299376,USD,Azure Retail Prices API,2025-12-18T04:47:05.510890 +AZURE,canadacentral,Standard_E20as_v4,on_demand,NA,1.38,USD,Azure Retail Prices API,2025-12-18T04:47:05.510970 +AZURE,canadacentral,Standard_E20as_v4,reserved_1y,NA,0.814155,USD,Azure Retail Prices API,2025-12-18T04:47:06.785371 +AZURE,canadacentral,Standard_E20as_v4,reserved_3y,NA,0.524391,USD,Azure Retail Prices API,2025-12-18T04:47:06.785374 +AZURE,canadacentral,Standard_E20as_v4,spot,NA,0.255024,USD,Azure Retail Prices API,2025-12-18T04:47:05.510282 +AZURE,canadacentral,Standard_E20as_v5,on_demand,NA,1.24,USD,Azure Retail Prices API,2025-12-18T04:47:05.510331 +AZURE,canadacentral,Standard_E20as_v5,reserved_1y,NA,0.731621,USD,Azure Retail Prices API,2025-12-18T04:47:06.784575 +AZURE,canadacentral,Standard_E20as_v5,reserved_3y,NA,0.471195,USD,Azure Retail Prices API,2025-12-18T04:47:06.784578 +AZURE,canadacentral,Standard_E20as_v5,spot,NA,0.229152,USD,Azure Retail Prices API,2025-12-18T04:47:05.510550 +AZURE,canadacentral,Standard_E20d_v4,on_demand,NA,1.58,USD,Azure Retail Prices API,2025-12-18T04:47:05.510428 +AZURE,canadacentral,Standard_E20d_v4,reserved_1y,NA,0.929224,USD,Azure Retail Prices API,2025-12-18T04:47:06.784691 +AZURE,canadacentral,Standard_E20d_v4,reserved_3y,NA,0.593988,USD,Azure Retail Prices API,2025-12-18T04:47:06.784694 +AZURE,canadacentral,Standard_E20d_v4,spot,NA,0.413328,USD,Azure Retail Prices API,2025-12-18T04:47:05.510944 +AZURE,canadacentral,Standard_E20ds_v4,on_demand,NA,1.58,USD,Azure Retail Prices API,2025-12-18T04:47:05.510837 +AZURE,canadacentral,Standard_E20ds_v4,reserved_1y,NA,0.929224,USD,Azure Retail Prices API,2025-12-18T04:47:06.785255 +AZURE,canadacentral,Standard_E20ds_v4,reserved_3y,NA,0.593988,USD,Azure Retail Prices API,2025-12-18T04:47:06.785258 +AZURE,canadacentral,Standard_E20ds_v4,spot,NA,0.413328,USD,Azure Retail Prices API,2025-12-18T04:47:05.510131 +AZURE,canadacentral,Standard_E20ds_v5,on_demand,NA,1.58,USD,Azure Retail Prices API,2025-12-18T04:47:05.510226 +AZURE,canadacentral,Standard_E20ds_v5,reserved_1y,NA,0.932192,USD,Azure Retail Prices API,2025-12-18T04:47:06.784476 +AZURE,canadacentral,Standard_E20ds_v5,reserved_3y,NA,0.600419,USD,Azure Retail Prices API,2025-12-18T04:47:06.784479 +AZURE,canadacentral,Standard_E20ds_v5,spot,NA,0.43292,USD,Azure Retail Prices API,2025-12-18T04:47:05.510025 +AZURE,canadacentral,Standard_E20ds_v6,on_demand,NA,1.791,USD,Azure Retail Prices API,2025-12-18T04:47:05.509607 +AZURE,canadacentral,Standard_E20ds_v6,reserved_1y,NA,1.110388,USD,Azure Retail Prices API,2025-12-18T04:47:06.783929 +AZURE,canadacentral,Standard_E20ds_v6,reserved_3y,NA,0.698478,USD,Azure Retail Prices API,2025-12-18T04:47:06.783932 +AZURE,canadacentral,Standard_E20ds_v6,spot,NA,0.330977,USD,Azure Retail Prices API,2025-12-18T04:47:05.510794 +AZURE,canadacentral,Standard_E20s_v4,on_demand,NA,1.38,USD,Azure Retail Prices API,2025-12-18T04:47:05.510600 +AZURE,canadacentral,Standard_E20s_v4,reserved_1y,NA,0.811644,USD,Azure Retail Prices API,2025-12-18T04:47:06.784967 +AZURE,canadacentral,Standard_E20s_v4,reserved_3y,NA,0.518836,USD,Azure Retail Prices API,2025-12-18T04:47:06.784970 +AZURE,canadacentral,Standard_E20s_v4,spot,NA,0.329544,USD,Azure Retail Prices API,2025-12-18T04:47:05.510359 +AZURE,canadacentral,Standard_E20s_v5,on_demand,NA,1.38,USD,Azure Retail Prices API,2025-12-18T04:47:05.509521 +AZURE,canadacentral,Standard_E20s_v5,reserved_1y,NA,0.814155,USD,Azure Retail Prices API,2025-12-18T04:47:06.783858 +AZURE,canadacentral,Standard_E20s_v5,reserved_3y,NA,0.510616,USD,Azure Retail Prices API,2025-12-18T04:47:06.783861 +AZURE,canadacentral,Standard_E20s_v5,spot,NA,0.399372,USD,Azure Retail Prices API,2025-12-18T04:47:05.509636 +AZURE,canadacentral,Standard_E2_v3,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:47:05.510497 +AZURE,canadacentral,Standard_E2_v3,reserved_1y,NA,0.085845,USD,Azure Retail Prices API,2025-12-18T04:47:06.784806 +AZURE,canadacentral,Standard_E2_v3,reserved_3y,NA,0.054909,USD,Azure Retail Prices API,2025-12-18T04:47:06.784809 +AZURE,canadacentral,Standard_E2_v3,spot,NA,0.038442,USD,Azure Retail Prices API,2025-12-18T04:47:05.510094 +AZURE,canadacentral,Standard_E2ads_v6,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:47:05.510402 +AZURE,canadacentral,Standard_E2ads_v6,reserved_1y,NA,0.095548,USD,Azure Retail Prices API,2025-12-18T04:47:06.784660 +AZURE,canadacentral,Standard_E2ads_v6,reserved_3y,NA,0.061568,USD,Azure Retail Prices API,2025-12-18T04:47:06.784663 +AZURE,canadacentral,Standard_E2ads_v6,spot,NA,0.029938,USD,Azure Retail Prices API,2025-12-18T04:47:05.509702 +AZURE,canadacentral,Standard_E2ds_v5,on_demand,NA,0.158,USD,Azure Retail Prices API,2025-12-18T04:47:05.510693 +AZURE,canadacentral,Standard_E2ds_v5,reserved_1y,NA,0.093265,USD,Azure Retail Prices API,2025-12-18T04:47:06.785088 +AZURE,canadacentral,Standard_E2ds_v5,reserved_3y,NA,0.060046,USD,Azure Retail Prices API,2025-12-18T04:47:06.785091 +AZURE,canadacentral,Standard_E2ds_v5,spot,NA,0.043292,USD,Azure Retail Prices API,2025-12-18T04:47:05.509622 +AZURE,canadacentral,Standard_E2ds_v6,on_demand,NA,0.179,USD,Azure Retail Prices API,2025-12-18T04:47:05.509943 +AZURE,canadacentral,Standard_E2ds_v6,reserved_1y,NA,0.111073,USD,Azure Retail Prices API,2025-12-18T04:47:06.784260 +AZURE,canadacentral,Standard_E2ds_v6,reserved_3y,NA,0.069863,USD,Azure Retail Prices API,2025-12-18T04:47:06.784262 +AZURE,canadacentral,Standard_E2ds_v6,spot,NA,0.033079,USD,Azure Retail Prices API,2025-12-18T04:47:05.510305 +AZURE,canadacentral,Standard_E2pds_v6,on_demand,NA,0.13,USD,Azure Retail Prices API,2025-12-18T04:47:05.510925 +AZURE,canadacentral,Standard_E2pds_v6,reserved_1y,NA,0.076712,USD,Azure Retail Prices API,2025-12-18T04:47:06.785326 +AZURE,canadacentral,Standard_E2pds_v6,reserved_3y,NA,0.049391,USD,Azure Retail Prices API,2025-12-18T04:47:06.785329 +AZURE,canadacentral,Standard_E2pds_v6,spot,NA,0.024024,USD,Azure Retail Prices API,2025-12-18T04:47:05.509842 +AZURE,canadacentral,Standard_E32_v3,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:47:05.509583 +AZURE,canadacentral,Standard_E32_v3,reserved_1y,NA,1.373516,USD,Azure Retail Prices API,2025-12-18T04:47:06.783900 +AZURE,canadacentral,Standard_E32_v3,reserved_3y,NA,0.878349,USD,Azure Retail Prices API,2025-12-18T04:47:06.783903 +AZURE,canadacentral,Standard_E32_v3,spot,NA,0.615069,USD,Azure Retail Prices API,2025-12-18T04:47:05.509546 +AZURE,canadacentral,Standard_E32a_v4,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:47:05.510502 +AZURE,canadacentral,Standard_E32a_v4,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:47:06.784818 +AZURE,canadacentral,Standard_E32a_v4,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:47:06.784822 +AZURE,canadacentral,Standard_E32a_v4,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:47:05.510699 +AZURE,canadacentral,Standard_E32ads_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:47:05.510229 +AZURE,canadacentral,Standard_E32ads_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:47:06.784482 +AZURE,canadacentral,Standard_E32ads_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:47:06.784485 +AZURE,canadacentral,Standard_E32ads_v5,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:47:05.510696 +AZURE,canadacentral,Standard_E32ads_v6,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:47:05.510029 +AZURE,canadacentral,Standard_E32ads_v6,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:47:06.784325 +AZURE,canadacentral,Standard_E32ads_v6,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:47:06.784328 +AZURE,canadacentral,Standard_E32ads_v6,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:47:05.510964 +AZURE,canadacentral,Standard_E32as_v4,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:47:05.509644 +AZURE,canadacentral,Standard_E32as_v4,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:47:06.783941 +AZURE,canadacentral,Standard_E32as_v4,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:47:06.783944 +AZURE,canadacentral,Standard_E32as_v4,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:47:05.510814 +AZURE,canadacentral,Standard_E32as_v5,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:47:05.510311 +AZURE,canadacentral,Standard_E32as_v5,reserved_1y,NA,1.170548,USD,Azure Retail Prices API,2025-12-18T04:47:06.784534 +AZURE,canadacentral,Standard_E32as_v5,reserved_3y,NA,0.753919,USD,Azure Retail Prices API,2025-12-18T04:47:06.784537 +AZURE,canadacentral,Standard_E32as_v5,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:47:05.510491 +AZURE,canadacentral,Standard_E32d_v4,on_demand,NA,2.528,USD,Azure Retail Prices API,2025-12-18T04:47:05.510180 +AZURE,canadacentral,Standard_E32d_v4,reserved_1y,NA,1.486416,USD,Azure Retail Prices API,2025-12-18T04:47:06.784448 +AZURE,canadacentral,Standard_E32d_v4,reserved_3y,NA,0.950533,USD,Azure Retail Prices API,2025-12-18T04:47:06.784451 +AZURE,canadacentral,Standard_E32d_v4,spot,NA,0.661325,USD,Azure Retail Prices API,2025-12-18T04:47:05.509856 +AZURE,canadacentral,Standard_E32ds_v4,on_demand,NA,2.528,USD,Azure Retail Prices API,2025-12-18T04:47:05.509647 +AZURE,canadacentral,Standard_E32ds_v4,reserved_1y,NA,1.486416,USD,Azure Retail Prices API,2025-12-18T04:47:06.783946 +AZURE,canadacentral,Standard_E32ds_v4,reserved_3y,NA,0.950533,USD,Azure Retail Prices API,2025-12-18T04:47:06.783949 +AZURE,canadacentral,Standard_E32ds_v4,spot,NA,0.661325,USD,Azure Retail Prices API,2025-12-18T04:47:05.510462 +AZURE,canadacentral,Standard_E32ds_v5,on_demand,NA,2.528,USD,Azure Retail Prices API,2025-12-18T04:47:05.510136 +AZURE,canadacentral,Standard_E32ds_v5,reserved_1y,NA,1.491553,USD,Azure Retail Prices API,2025-12-18T04:47:06.784414 +AZURE,canadacentral,Standard_E32ds_v5,reserved_3y,NA,0.960654,USD,Azure Retail Prices API,2025-12-18T04:47:06.784417 +AZURE,canadacentral,Standard_E32ds_v5,spot,NA,0.692672,USD,Azure Retail Prices API,2025-12-18T04:47:05.510396 +AZURE,canadacentral,Standard_E32ds_v6,on_demand,NA,2.866,USD,Azure Retail Prices API,2025-12-18T04:47:05.510019 +AZURE,canadacentral,Standard_E32ds_v6,reserved_1y,NA,1.776712,USD,Azure Retail Prices API,2025-12-18T04:47:06.784313 +AZURE,canadacentral,Standard_E32ds_v6,reserved_3y,NA,1.11758,USD,Azure Retail Prices API,2025-12-18T04:47:06.784316 +AZURE,canadacentral,Standard_E32ds_v6,spot,NA,0.529637,USD,Azure Retail Prices API,2025-12-18T04:47:05.510887 +AZURE,canadacentral,Standard_E32pds_v6,on_demand,NA,2.08,USD,Azure Retail Prices API,2025-12-18T04:47:05.510559 +AZURE,canadacentral,Standard_E32pds_v6,reserved_1y,NA,1.227169,USD,Azure Retail Prices API,2025-12-18T04:47:06.784921 +AZURE,canadacentral,Standard_E32pds_v6,reserved_3y,NA,0.790411,USD,Azure Retail Prices API,2025-12-18T04:47:06.784924 +AZURE,canadacentral,Standard_E32pds_v6,spot,NA,0.384384,USD,Azure Retail Prices API,2025-12-18T04:47:05.510120 +AZURE,canadacentral,Standard_E32ps_v6,on_demand,NA,1.638,USD,Azure Retail Prices API,2025-12-18T04:47:05.510299 +AZURE,canadacentral,Standard_E32ps_v6,reserved_1y,NA,0.966667,USD,Azure Retail Prices API,2025-12-18T04:47:06.784522 +AZURE,canadacentral,Standard_E32ps_v6,reserved_3y,NA,0.622603,USD,Azure Retail Prices API,2025-12-18T04:47:06.784525 +AZURE,canadacentral,Standard_E32ps_v6,spot,NA,0.302702,USD,Azure Retail Prices API,2025-12-18T04:47:05.509792 +AZURE,canadacentral,Standard_E32s_v3,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:47:05.509853 +AZURE,canadacentral,Standard_E32s_v3,reserved_1y,NA,1.373516,USD,Azure Retail Prices API,2025-12-18T04:47:06.784168 +AZURE,canadacentral,Standard_E32s_v3,reserved_3y,NA,0.878349,USD,Azure Retail Prices API,2025-12-18T04:47:06.784170 +AZURE,canadacentral,Standard_E32s_v3,spot,NA,0.615069,USD,Azure Retail Prices API,2025-12-18T04:47:05.510505 +AZURE,canadacentral,Standard_E32s_v4,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:47:05.509925 +AZURE,canadacentral,Standard_E32s_v4,reserved_1y,NA,1.298288,USD,Azure Retail Prices API,2025-12-18T04:47:06.784248 +AZURE,canadacentral,Standard_E32s_v4,reserved_3y,NA,0.830213,USD,Azure Retail Prices API,2025-12-18T04:47:06.784251 +AZURE,canadacentral,Standard_E32s_v4,spot,NA,0.52727,USD,Azure Retail Prices API,2025-12-18T04:47:05.510032 +AZURE,canadacentral,Standard_E32s_v5,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:47:05.510779 +AZURE,canadacentral,Standard_E32s_v5,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:47:06.785198 +AZURE,canadacentral,Standard_E32s_v5,reserved_3y,NA,0.816971,USD,Azure Retail Prices API,2025-12-18T04:47:06.785201 +AZURE,canadacentral,Standard_E32s_v5,spot,NA,0.638995,USD,Azure Retail Prices API,2025-12-18T04:47:05.510168 +AZURE,canadacentral,Standard_E48a_v4,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:05.510237 +AZURE,canadacentral,Standard_E48a_v4,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:47:06.784493 +AZURE,canadacentral,Standard_E48a_v4,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:47:06.784496 +AZURE,canadacentral,Standard_E48a_v4,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:47:05.509765 +AZURE,canadacentral,Standard_E48ads_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:47:05.509804 +AZURE,canadacentral,Standard_E48ads_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:47:06.784120 +AZURE,canadacentral,Standard_E48ads_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:47:06.784123 +AZURE,canadacentral,Standard_E48ads_v5,spot,NA,0.638669,USD,Azure Retail Prices API,2025-12-18T04:47:05.510808 +AZURE,canadacentral,Standard_E48ads_v6,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:47:05.510516 +AZURE,canadacentral,Standard_E48ads_v6,reserved_1y,NA,2.29395,USD,Azure Retail Prices API,2025-12-18T04:47:06.784851 +AZURE,canadacentral,Standard_E48ads_v6,reserved_3y,NA,1.477435,USD,Azure Retail Prices API,2025-12-18T04:47:06.784854 +AZURE,canadacentral,Standard_E48ads_v6,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:47:05.509537 +AZURE,canadacentral,Standard_E48as_v4,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:05.510967 +AZURE,canadacentral,Standard_E48as_v4,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:47:06.785365 +AZURE,canadacentral,Standard_E48as_v4,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:47:06.785368 +AZURE,canadacentral,Standard_E48as_v4,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:47:05.510117 +AZURE,canadacentral,Standard_E48as_v5,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:47:05.509744 +AZURE,canadacentral,Standard_E48as_v5,reserved_1y,NA,1.755822,USD,Azure Retail Prices API,2025-12-18T04:47:06.784070 +AZURE,canadacentral,Standard_E48as_v5,reserved_3y,NA,1.130898,USD,Azure Retail Prices API,2025-12-18T04:47:06.784074 +AZURE,canadacentral,Standard_E48as_v5,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:47:05.510740 +AZURE,canadacentral,Standard_E48d_v4,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:47:05.510867 +AZURE,canadacentral,Standard_E48d_v4,reserved_1y,NA,2.22968,USD,Azure Retail Prices API,2025-12-18T04:47:06.785280 +AZURE,canadacentral,Standard_E48d_v4,reserved_3y,NA,1.425799,USD,Azure Retail Prices API,2025-12-18T04:47:06.785283 +AZURE,canadacentral,Standard_E48d_v4,spot,NA,0.991987,USD,Azure Retail Prices API,2025-12-18T04:47:05.509888 +AZURE,canadacentral,Standard_E48ds_v4,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:47:05.510017 +AZURE,canadacentral,Standard_E48ds_v4,reserved_1y,NA,2.22968,USD,Azure Retail Prices API,2025-12-18T04:47:06.784307 +AZURE,canadacentral,Standard_E48ds_v4,reserved_3y,NA,1.425799,USD,Azure Retail Prices API,2025-12-18T04:47:06.784310 +AZURE,canadacentral,Standard_E48ds_v4,spot,NA,0.991987,USD,Azure Retail Prices API,2025-12-18T04:47:05.510279 +AZURE,canadacentral,Standard_E48ds_v5,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:47:05.510617 +AZURE,canadacentral,Standard_E48ds_v5,reserved_1y,NA,2.237329,USD,Azure Retail Prices API,2025-12-18T04:47:06.784987 +AZURE,canadacentral,Standard_E48ds_v5,reserved_3y,NA,1.440944,USD,Azure Retail Prices API,2025-12-18T04:47:06.784990 +AZURE,canadacentral,Standard_E48ds_v5,spot,NA,1.039008,USD,Azure Retail Prices API,2025-12-18T04:47:05.509553 +AZURE,canadacentral,Standard_E48ds_v6,on_demand,NA,4.298,USD,Azure Retail Prices API,2025-12-18T04:47:05.510171 +AZURE,canadacentral,Standard_E48ds_v6,reserved_1y,NA,2.664954,USD,Azure Retail Prices API,2025-12-18T04:47:06.784437 +AZURE,canadacentral,Standard_E48ds_v6,reserved_3y,NA,1.67637,USD,Azure Retail Prices API,2025-12-18T04:47:06.784440 +AZURE,canadacentral,Standard_E48ds_v6,spot,NA,0.79427,USD,Azure Retail Prices API,2025-12-18T04:47:05.509673 +AZURE,canadacentral,Standard_E48pds_v6,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:47:05.509784 +AZURE,canadacentral,Standard_E48pds_v6,reserved_1y,NA,1.840753,USD,Azure Retail Prices API,2025-12-18T04:47:06.784114 +AZURE,canadacentral,Standard_E48pds_v6,reserved_3y,NA,1.185616,USD,Azure Retail Prices API,2025-12-18T04:47:06.784117 +AZURE,canadacentral,Standard_E48pds_v6,spot,NA,0.576576,USD,Azure Retail Prices API,2025-12-18T04:47:05.510457 +AZURE,canadacentral,Standard_E48ps_v6,on_demand,NA,2.458,USD,Azure Retail Prices API,2025-12-18T04:47:05.511028 +AZURE,canadacentral,Standard_E48ps_v6,reserved_1y,NA,1.45,USD,Azure Retail Prices API,2025-12-18T04:47:06.785420 +AZURE,canadacentral,Standard_E48ps_v6,reserved_3y,NA,0.933904,USD,Azure Retail Prices API,2025-12-18T04:47:06.785423 +AZURE,canadacentral,Standard_E48ps_v6,spot,NA,0.454238,USD,Azure Retail Prices API,2025-12-18T04:47:05.510165 +AZURE,canadacentral,Standard_E48s_v4,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:05.510642 +AZURE,canadacentral,Standard_E48s_v4,reserved_1y,NA,1.947489,USD,Azure Retail Prices API,2025-12-18T04:47:06.785031 +AZURE,canadacentral,Standard_E48s_v4,reserved_3y,NA,1.24532,USD,Azure Retail Prices API,2025-12-18T04:47:06.785034 +AZURE,canadacentral,Standard_E48s_v4,spot,NA,0.790906,USD,Azure Retail Prices API,2025-12-18T04:47:05.509865 +AZURE,canadacentral,Standard_E48s_v5,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:05.510362 +AZURE,canadacentral,Standard_E48s_v5,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:47:06.784613 +AZURE,canadacentral,Standard_E48s_v5,reserved_3y,NA,1.225457,USD,Azure Retail Prices API,2025-12-18T04:47:06.784616 +AZURE,canadacentral,Standard_E48s_v5,spot,NA,0.958493,USD,Azure Retail Prices API,2025-12-18T04:47:05.509818 +AZURE,canadacentral,Standard_E4_v3,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:47:05.509474 +AZURE,canadacentral,Standard_E4_v3,reserved_1y,NA,0.171689,USD,Azure Retail Prices API,2025-12-18T04:47:06.783786 +AZURE,canadacentral,Standard_E4_v3,reserved_3y,NA,0.109779,USD,Azure Retail Prices API,2025-12-18T04:47:06.783799 +AZURE,canadacentral,Standard_E4_v3,spot,NA,0.076884,USD,Azure Retail Prices API,2025-12-18T04:47:05.509923 +AZURE,canadacentral,Standard_E4a_v4,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:47:05.510044 +AZURE,canadacentral,Standard_E4a_v4,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:47:06.784336 +AZURE,canadacentral,Standard_E4a_v4,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:47:06.784339 +AZURE,canadacentral,Standard_E4a_v4,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:47:05.509788 +AZURE,canadacentral,Standard_E4ads_v5,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:47:05.510840 +AZURE,canadacentral,Standard_E4ads_v5,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:47:06.785315 +AZURE,canadacentral,Standard_E4ads_v5,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:47:06.785317 +AZURE,canadacentral,Standard_E4ads_v5,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:47:05.509760 +AZURE,canadacentral,Standard_E4ads_v6,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:47:05.510125 +AZURE,canadacentral,Standard_E4ads_v6,reserved_1y,NA,0.19121,USD,Azure Retail Prices API,2025-12-18T04:47:06.784403 +AZURE,canadacentral,Standard_E4ads_v6,reserved_3y,NA,0.123135,USD,Azure Retail Prices API,2025-12-18T04:47:06.784406 +AZURE,canadacentral,Standard_E4ads_v6,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:47:05.510828 +AZURE,canadacentral,Standard_E4as_v4,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:47:05.511082 +AZURE,canadacentral,Standard_E4as_v4,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:47:06.785454 +AZURE,canadacentral,Standard_E4as_v4,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:47:06.785456 +AZURE,canadacentral,Standard_E4as_v4,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:47:05.509862 +AZURE,canadacentral,Standard_E4as_v5,on_demand,NA,0.432,USD,Azure Retail Prices API,2025-12-18T04:47:05.509741 +AZURE,canadacentral,Standard_E4as_v5,reserved_1y,NA,0.146347,USD,Azure Retail Prices API,2025-12-18T04:47:06.785415 +AZURE,canadacentral,Standard_E4as_v5,reserved_3y,NA,0.094254,USD,Azure Retail Prices API,2025-12-18T04:47:06.785418 +AZURE,canadacentral,Standard_E4as_v5,spot,NA,0.04583,USD,Azure Retail Prices API,2025-12-18T04:47:05.510817 +AZURE,canadacentral,Standard_E4d_v4,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:47:05.510431 +AZURE,canadacentral,Standard_E4d_v4,reserved_1y,NA,0.185845,USD,Azure Retail Prices API,2025-12-18T04:47:06.784697 +AZURE,canadacentral,Standard_E4d_v4,reserved_3y,NA,0.118798,USD,Azure Retail Prices API,2025-12-18T04:47:06.784700 +AZURE,canadacentral,Standard_E4d_v4,spot,NA,0.082666,USD,Azure Retail Prices API,2025-12-18T04:47:05.510056 +AZURE,canadacentral,Standard_E4ds_v4,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:47:05.509840 +AZURE,canadacentral,Standard_E4ds_v4,reserved_1y,NA,0.185845,USD,Azure Retail Prices API,2025-12-18T04:47:06.784150 +AZURE,canadacentral,Standard_E4ds_v4,reserved_3y,NA,0.118798,USD,Azure Retail Prices API,2025-12-18T04:47:06.784153 +AZURE,canadacentral,Standard_E4ds_v4,spot,NA,0.082666,USD,Azure Retail Prices API,2025-12-18T04:47:05.510930 +AZURE,canadacentral,Standard_E4ds_v5,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:47:05.510177 +AZURE,canadacentral,Standard_E4ds_v5,reserved_1y,NA,0.186416,USD,Azure Retail Prices API,2025-12-18T04:47:06.784443 +AZURE,canadacentral,Standard_E4ds_v5,reserved_3y,NA,0.120091,USD,Azure Retail Prices API,2025-12-18T04:47:06.784445 +AZURE,canadacentral,Standard_E4ds_v5,spot,NA,0.086584,USD,Azure Retail Prices API,2025-12-18T04:47:05.510743 +AZURE,canadacentral,Standard_E4ds_v6,on_demand,NA,0.358,USD,Azure Retail Prices API,2025-12-18T04:47:05.510846 +AZURE,canadacentral,Standard_E4ds_v6,reserved_1y,NA,0.222032,USD,Azure Retail Prices API,2025-12-18T04:47:06.785261 +AZURE,canadacentral,Standard_E4ds_v6,reserved_3y,NA,0.139688,USD,Azure Retail Prices API,2025-12-18T04:47:06.785264 +AZURE,canadacentral,Standard_E4ds_v6,spot,NA,0.066158,USD,Azure Retail Prices API,2025-12-18T04:47:05.510721 +AZURE,canadacentral,Standard_E4pds_v6,on_demand,NA,0.26,USD,Azure Retail Prices API,2025-12-18T04:47:05.510322 +AZURE,canadacentral,Standard_E4pds_v6,reserved_1y,NA,0.153425,USD,Azure Retail Prices API,2025-12-18T04:47:06.784557 +AZURE,canadacentral,Standard_E4pds_v6,reserved_3y,NA,0.098782,USD,Azure Retail Prices API,2025-12-18T04:47:06.784560 +AZURE,canadacentral,Standard_E4pds_v6,spot,NA,0.048048,USD,Azure Retail Prices API,2025-12-18T04:47:05.510068 +AZURE,canadacentral,Standard_E4ps_v6,on_demand,NA,0.205,USD,Azure Retail Prices API,2025-12-18T04:47:05.510657 +AZURE,canadacentral,Standard_E4ps_v6,reserved_1y,NA,0.120776,USD,Azure Retail Prices API,2025-12-18T04:47:06.785044 +AZURE,canadacentral,Standard_E4ps_v6,reserved_3y,NA,0.077816,USD,Azure Retail Prices API,2025-12-18T04:47:06.785047 +AZURE,canadacentral,Standard_E4ps_v6,spot,NA,0.037884,USD,Azure Retail Prices API,2025-12-18T04:47:05.510042 +AZURE,canadacentral,Standard_E4s_v4,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:47:05.509903 +AZURE,canadacentral,Standard_E4s_v4,reserved_1y,NA,0.162329,USD,Azure Retail Prices API,2025-12-18T04:47:06.784214 +AZURE,canadacentral,Standard_E4s_v4,reserved_3y,NA,0.103767,USD,Azure Retail Prices API,2025-12-18T04:47:06.784217 +AZURE,canadacentral,Standard_E4s_v4,spot,NA,0.065909,USD,Azure Retail Prices API,2025-12-18T04:47:05.510077 +AZURE,canadacentral,Standard_E4s_v5,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:47:05.510454 +AZURE,canadacentral,Standard_E4s_v5,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:47:06.784747 +AZURE,canadacentral,Standard_E4s_v5,reserved_3y,NA,0.102131,USD,Azure Retail Prices API,2025-12-18T04:47:06.784750 +AZURE,canadacentral,Standard_E4s_v5,spot,NA,0.079874,USD,Azure Retail Prices API,2025-12-18T04:47:05.510565 +AZURE,canadacentral,Standard_E64_v3,on_demand,NA,3.974,USD,Azure Retail Prices API,2025-12-18T04:47:05.511041 +AZURE,canadacentral,Standard_E64_v3,reserved_1y,NA,2.589155,USD,Azure Retail Prices API,2025-12-18T04:47:06.785437 +AZURE,canadacentral,Standard_E64_v3,reserved_3y,NA,1.655632,USD,Azure Retail Prices API,2025-12-18T04:47:06.785440 +AZURE,canadacentral,Standard_E64_v3,spot,NA,1.046354,USD,Azure Retail Prices API,2025-12-18T04:47:05.509638 +AZURE,canadacentral,Standard_E64a_v4,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:47:05.510414 +AZURE,canadacentral,Standard_E64a_v4,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:47:06.784672 +AZURE,canadacentral,Standard_E64a_v4,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:47:06.784675 +AZURE,canadacentral,Standard_E64a_v4,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:47:05.510439 +AZURE,canadacentral,Standard_E64ads_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:47:05.509531 +AZURE,canadacentral,Standard_E64ads_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:47:06.783870 +AZURE,canadacentral,Standard_E64ads_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:47:06.783872 +AZURE,canadacentral,Standard_E64ads_v5,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:47:05.510938 +AZURE,canadacentral,Standard_E64ads_v6,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:47:05.510145 +AZURE,canadacentral,Standard_E64ads_v6,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:47:06.784420 +AZURE,canadacentral,Standard_E64ads_v6,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:47:06.784423 +AZURE,canadacentral,Standard_E64ads_v6,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:47:05.510186 +AZURE,canadacentral,Standard_E64as_v4,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:47:05.511096 +AZURE,canadacentral,Standard_E64as_v4,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:47:06.785459 +AZURE,canadacentral,Standard_E64as_v4,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:47:06.785462 +AZURE,canadacentral,Standard_E64as_v4,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:47:05.510713 +AZURE,canadacentral,Standard_E64as_v5,on_demand,NA,3.968,USD,Azure Retail Prices API,2025-12-18T04:47:05.509512 +AZURE,canadacentral,Standard_E64as_v5,reserved_1y,NA,2.341096,USD,Azure Retail Prices API,2025-12-18T04:47:06.783852 +AZURE,canadacentral,Standard_E64as_v5,reserved_3y,NA,1.507839,USD,Azure Retail Prices API,2025-12-18T04:47:06.783855 +AZURE,canadacentral,Standard_E64as_v5,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:47:05.510770 +AZURE,canadacentral,Standard_E64d_v4,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:47:05.510114 +AZURE,canadacentral,Standard_E64d_v4,reserved_1y,NA,2.972945,USD,Azure Retail Prices API,2025-12-18T04:47:06.784397 +AZURE,canadacentral,Standard_E64d_v4,reserved_3y,NA,1.901065,USD,Azure Retail Prices API,2025-12-18T04:47:06.784400 +AZURE,canadacentral,Standard_E64d_v4,spot,NA,1.32265,USD,Azure Retail Prices API,2025-12-18T04:47:05.510701 +AZURE,canadacentral,Standard_E64ds_v4,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:47:05.510459 +AZURE,canadacentral,Standard_E64ds_v4,reserved_1y,NA,2.972945,USD,Azure Retail Prices API,2025-12-18T04:47:06.784753 +AZURE,canadacentral,Standard_E64ds_v4,reserved_3y,NA,1.901065,USD,Azure Retail Prices API,2025-12-18T04:47:06.784756 +AZURE,canadacentral,Standard_E64ds_v4,spot,NA,1.32265,USD,Azure Retail Prices API,2025-12-18T04:47:05.510802 +AZURE,canadacentral,Standard_E64ds_v5,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:47:05.511002 +AZURE,canadacentral,Standard_E64ds_v5,reserved_1y,NA,2.982991,USD,Azure Retail Prices API,2025-12-18T04:47:06.785399 +AZURE,canadacentral,Standard_E64ds_v5,reserved_3y,NA,1.921271,USD,Azure Retail Prices API,2025-12-18T04:47:06.785401 +AZURE,canadacentral,Standard_E64ds_v5,spot,NA,1.385344,USD,Azure Retail Prices API,2025-12-18T04:47:05.511100 +AZURE,canadacentral,Standard_E64ds_v6,on_demand,NA,5.731,USD,Azure Retail Prices API,2025-12-18T04:47:05.510417 +AZURE,canadacentral,Standard_E64ds_v6,reserved_1y,NA,3.553311,USD,Azure Retail Prices API,2025-12-18T04:47:06.784678 +AZURE,canadacentral,Standard_E64ds_v6,reserved_3y,NA,2.23516,USD,Azure Retail Prices API,2025-12-18T04:47:06.784681 +AZURE,canadacentral,Standard_E64ds_v6,spot,NA,1.059089,USD,Azure Retail Prices API,2025-12-18T04:47:05.510843 +AZURE,canadacentral,Standard_E64pds_v6,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:47:05.510209 +AZURE,canadacentral,Standard_E64pds_v6,reserved_1y,NA,2.454452,USD,Azure Retail Prices API,2025-12-18T04:47:06.784465 +AZURE,canadacentral,Standard_E64pds_v6,reserved_3y,NA,1.580784,USD,Azure Retail Prices API,2025-12-18T04:47:06.784468 +AZURE,canadacentral,Standard_E64pds_v6,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:47:05.510342 +AZURE,canadacentral,Standard_E64ps_v6,on_demand,NA,3.277,USD,Azure Retail Prices API,2025-12-18T04:47:05.510320 +AZURE,canadacentral,Standard_E64ps_v6,reserved_1y,NA,1.933333,USD,Azure Retail Prices API,2025-12-18T04:47:06.784552 +AZURE,canadacentral,Standard_E64ps_v6,reserved_3y,NA,1.245167,USD,Azure Retail Prices API,2025-12-18T04:47:06.784555 +AZURE,canadacentral,Standard_E64ps_v6,spot,NA,0.60559,USD,Azure Retail Prices API,2025-12-18T04:47:05.509518 +AZURE,canadacentral,Standard_E64s_v3,on_demand,NA,3.974,USD,Azure Retail Prices API,2025-12-18T04:47:05.510423 +AZURE,canadacentral,Standard_E64s_v3,reserved_1y,NA,2.589155,USD,Azure Retail Prices API,2025-12-18T04:47:06.784684 +AZURE,canadacentral,Standard_E64s_v3,reserved_3y,NA,1.655632,USD,Azure Retail Prices API,2025-12-18T04:47:06.784688 +AZURE,canadacentral,Standard_E64s_v3,spot,NA,1.046354,USD,Azure Retail Prices API,2025-12-18T04:47:05.509984 +AZURE,canadacentral,Standard_E64s_v4,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:47:05.510377 +AZURE,canadacentral,Standard_E64s_v4,reserved_1y,NA,2.596575,USD,Azure Retail Prices API,2025-12-18T04:47:06.784636 +AZURE,canadacentral,Standard_E64s_v4,reserved_3y,NA,1.660426,USD,Azure Retail Prices API,2025-12-18T04:47:06.784638 +AZURE,canadacentral,Standard_E64s_v4,spot,NA,1.054541,USD,Azure Retail Prices API,2025-12-18T04:47:05.509616 +AZURE,canadacentral,Standard_E64s_v5,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:47:05.510796 +AZURE,canadacentral,Standard_E64s_v5,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:47:06.785217 +AZURE,canadacentral,Standard_E64s_v5,reserved_3y,NA,1.633904,USD,Azure Retail Prices API,2025-12-18T04:47:06.785221 +AZURE,canadacentral,Standard_E64s_v5,spot,NA,1.27799,USD,Azure Retail Prices API,2025-12-18T04:47:05.509828 +AZURE,canadacentral,Standard_E80ids_v4,on_demand,NA,6.32,USD,Azure Retail Prices API,2025-12-18T04:47:05.510953 +AZURE,canadacentral,Standard_E80ids_v4,reserved_1y,NA,3.716895,USD,Azure Retail Prices API,2025-12-18T04:47:06.785348 +AZURE,canadacentral,Standard_E80ids_v4,reserved_3y,NA,2.375951,USD,Azure Retail Prices API,2025-12-18T04:47:06.785351 +AZURE,canadacentral,Standard_E80ids_v4,spot,NA,1.653312,USD,Azure Retail Prices API,2025-12-18T04:47:05.510916 +AZURE,canadacentral,Standard_E80is_v4,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:47:05.510022 +AZURE,canadacentral,Standard_E80is_v4,reserved_1y,NA,3.246575,USD,Azure Retail Prices API,2025-12-18T04:47:06.784319 +AZURE,canadacentral,Standard_E80is_v4,reserved_3y,NA,2.075342,USD,Azure Retail Prices API,2025-12-18T04:47:06.784322 +AZURE,canadacentral,Standard_E80is_v4,spot,NA,1.318176,USD,Azure Retail Prices API,2025-12-18T04:47:05.509914 +AZURE,canadacentral,Standard_E8_v3,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:47:05.510805 +AZURE,canadacentral,Standard_E8_v3,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:47:06.785224 +AZURE,canadacentral,Standard_E8_v3,reserved_3y,NA,0.219597,USD,Azure Retail Prices API,2025-12-18T04:47:06.785227 +AZURE,canadacentral,Standard_E8_v3,spot,NA,0.153767,USD,Azure Retail Prices API,2025-12-18T04:47:05.509851 +AZURE,canadacentral,Standard_E8a_v4,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:47:05.509770 +AZURE,canadacentral,Standard_E8a_v4,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:47:06.784107 +AZURE,canadacentral,Standard_E8a_v4,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:47:06.784111 +AZURE,canadacentral,Standard_E8a_v4,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:47:05.511045 +AZURE,canadacentral,Standard_E8ads_v5,on_demand,NA,0.944,USD,Azure Retail Prices API,2025-12-18T04:47:05.509894 +AZURE,canadacentral,Standard_E8ads_v5,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:47:06.785025 +AZURE,canadacentral,Standard_E8ads_v5,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:47:06.785028 +AZURE,canadacentral,Standard_E8ads_v5,spot,NA,0.106445,USD,Azure Retail Prices API,2025-12-18T04:47:05.509998 +AZURE,canadacentral,Standard_E8ads_v6,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:47:05.510978 +AZURE,canadacentral,Standard_E8ads_v6,reserved_1y,NA,0.382306,USD,Azure Retail Prices API,2025-12-18T04:47:06.785382 +AZURE,canadacentral,Standard_E8ads_v6,reserved_3y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:47:06.785385 +AZURE,canadacentral,Standard_E8ads_v6,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:47:05.510212 +AZURE,canadacentral,Standard_E8as_v4,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:47:05.510626 +AZURE,canadacentral,Standard_E8as_v4,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:47:06.785006 +AZURE,canadacentral,Standard_E8as_v4,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:47:06.785009 +AZURE,canadacentral,Standard_E8as_v4,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:47:05.510240 +AZURE,canadacentral,Standard_E8as_v5,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:47:05.509976 +AZURE,canadacentral,Standard_E8as_v5,reserved_1y,NA,0.292694,USD,Azure Retail Prices API,2025-12-18T04:47:06.784283 +AZURE,canadacentral,Standard_E8as_v5,reserved_3y,NA,0.18847,USD,Azure Retail Prices API,2025-12-18T04:47:06.784286 +AZURE,canadacentral,Standard_E8as_v5,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:47:05.510425 +AZURE,canadacentral,Standard_E8d_v4,on_demand,NA,0.632,USD,Azure Retail Prices API,2025-12-18T04:47:05.510729 +AZURE,canadacentral,Standard_E8d_v4,reserved_1y,NA,0.371575,USD,Azure Retail Prices API,2025-12-18T04:47:06.785133 +AZURE,canadacentral,Standard_E8d_v4,reserved_3y,NA,0.237633,USD,Azure Retail Prices API,2025-12-18T04:47:06.785136 +AZURE,canadacentral,Standard_E8d_v4,spot,NA,0.165331,USD,Azure Retail Prices API,2025-12-18T04:47:05.510928 +AZURE,canadacentral,Standard_E8ds_v4,on_demand,NA,0.632,USD,Azure Retail Prices API,2025-12-18T04:47:05.510451 +AZURE,canadacentral,Standard_E8ds_v4,reserved_1y,NA,0.371575,USD,Azure Retail Prices API,2025-12-18T04:47:06.784740 +AZURE,canadacentral,Standard_E8ds_v4,reserved_3y,NA,0.237633,USD,Azure Retail Prices API,2025-12-18T04:47:06.784743 +AZURE,canadacentral,Standard_E8ds_v4,spot,NA,0.165331,USD,Azure Retail Prices API,2025-12-18T04:47:05.510223 +AZURE,canadacentral,Standard_E8ds_v5,on_demand,NA,0.632,USD,Azure Retail Prices API,2025-12-18T04:47:05.510603 +AZURE,canadacentral,Standard_E8ds_v5,reserved_1y,NA,0.372831,USD,Azure Retail Prices API,2025-12-18T04:47:06.784973 +AZURE,canadacentral,Standard_E8ds_v5,reserved_3y,NA,0.240145,USD,Azure Retail Prices API,2025-12-18T04:47:06.784977 +AZURE,canadacentral,Standard_E8ds_v5,spot,NA,0.173168,USD,Azure Retail Prices API,2025-12-18T04:47:05.510399 +AZURE,canadacentral,Standard_E8ds_v6,on_demand,NA,0.716,USD,Azure Retail Prices API,2025-12-18T04:47:05.509722 +AZURE,canadacentral,Standard_E8ds_v6,reserved_1y,NA,0.444178,USD,Azure Retail Prices API,2025-12-18T04:47:06.784040 +AZURE,canadacentral,Standard_E8ds_v6,reserved_3y,NA,0.279414,USD,Azure Retail Prices API,2025-12-18T04:47:06.784043 +AZURE,canadacentral,Standard_E8ds_v6,spot,NA,0.132317,USD,Azure Retail Prices API,2025-12-18T04:47:05.510083 +AZURE,canadacentral,Standard_E8pds_v6,on_demand,NA,0.52,USD,Azure Retail Prices API,2025-12-18T04:47:05.509870 +AZURE,canadacentral,Standard_E8pds_v6,reserved_1y,NA,0.306849,USD,Azure Retail Prices API,2025-12-18T04:47:06.784179 +AZURE,canadacentral,Standard_E8pds_v6,reserved_3y,NA,0.197603,USD,Azure Retail Prices API,2025-12-18T04:47:06.784182 +AZURE,canadacentral,Standard_E8pds_v6,spot,NA,0.096096,USD,Azure Retail Prices API,2025-12-18T04:47:05.510831 +AZURE,canadacentral,Standard_E8ps_v6,on_demand,NA,0.41,USD,Azure Retail Prices API,2025-12-18T04:47:05.510383 +AZURE,canadacentral,Standard_E8ps_v6,reserved_1y,NA,0.241667,USD,Azure Retail Prices API,2025-12-18T04:47:06.784641 +AZURE,canadacentral,Standard_E8ps_v6,reserved_3y,NA,0.155632,USD,Azure Retail Prices API,2025-12-18T04:47:06.784644 +AZURE,canadacentral,Standard_E8ps_v6,spot,NA,0.075768,USD,Azure Retail Prices API,2025-12-18T04:47:05.510345 +AZURE,canadacentral,Standard_E8s_v3,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:47:05.510100 +AZURE,canadacentral,Standard_E8s_v3,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:47:06.784386 +AZURE,canadacentral,Standard_E8s_v3,reserved_3y,NA,0.219597,USD,Azure Retail Prices API,2025-12-18T04:47:06.784389 +AZURE,canadacentral,Standard_E8s_v3,spot,NA,0.153767,USD,Azure Retail Prices API,2025-12-18T04:47:05.510904 +AZURE,canadacentral,Standard_E8s_v4,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:47:05.509879 +AZURE,canadacentral,Standard_E8s_v4,reserved_1y,NA,0.324543,USD,Azure Retail Prices API,2025-12-18T04:47:06.784191 +AZURE,canadacentral,Standard_E8s_v4,reserved_3y,NA,0.207534,USD,Azure Retail Prices API,2025-12-18T04:47:06.784194 +AZURE,canadacentral,Standard_E8s_v4,spot,NA,0.131818,USD,Azure Retail Prices API,2025-12-18T04:47:05.509705 +AZURE,canadacentral,Standard_E8s_v5,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:47:05.509920 +AZURE,canadacentral,Standard_E8s_v5,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:47:06.784243 +AZURE,canadacentral,Standard_E8s_v5,reserved_3y,NA,0.204224,USD,Azure Retail Prices API,2025-12-18T04:47:06.784246 +AZURE,canadacentral,Standard_E8s_v5,spot,NA,0.159749,USD,Azure Retail Prices API,2025-12-18T04:47:05.510394 +AZURE,canadacentral,Standard_E96a_v4,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:47:05.510594 +AZURE,canadacentral,Standard_E96a_v4,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:47:06.784954 +AZURE,canadacentral,Standard_E96a_v4,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:47:06.784957 +AZURE,canadacentral,Standard_E96a_v4,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:47:05.510527 +AZURE,canadacentral,Standard_E96ads_v5,on_demand,NA,11.328,USD,Azure Retail Prices API,2025-12-18T04:47:05.510156 +AZURE,canadacentral,Standard_E96ads_v5,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:47:06.785019 +AZURE,canadacentral,Standard_E96ads_v5,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:47:06.785022 +AZURE,canadacentral,Standard_E96ads_v5,spot,NA,1.277338,USD,Azure Retail Prices API,2025-12-18T04:47:05.509564 +AZURE,canadacentral,Standard_E96ads_v6,on_demand,NA,7.776,USD,Azure Retail Prices API,2025-12-18T04:47:05.509751 +AZURE,canadacentral,Standard_E96ads_v6,reserved_1y,NA,4.587785,USD,Azure Retail Prices API,2025-12-18T04:47:06.784078 +AZURE,canadacentral,Standard_E96ads_v6,reserved_3y,NA,2.954871,USD,Azure Retail Prices API,2025-12-18T04:47:06.784083 +AZURE,canadacentral,Standard_E96ads_v6,spot,NA,1.437005,USD,Azure Retail Prices API,2025-12-18T04:47:05.510901 +AZURE,canadacentral,Standard_E96as_v4,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:47:05.509738 +AZURE,canadacentral,Standard_E96as_v4,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:47:06.784060 +AZURE,canadacentral,Standard_E96as_v4,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:47:06.784065 +AZURE,canadacentral,Standard_E96as_v4,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:47:05.510151 +AZURE,canadacentral,Standard_E96as_v5,on_demand,NA,10.368,USD,Azure Retail Prices API,2025-12-18T04:47:05.510673 +AZURE,canadacentral,Standard_E96as_v5,reserved_1y,NA,3.511644,USD,Azure Retail Prices API,2025-12-18T04:47:06.785070 +AZURE,canadacentral,Standard_E96as_v5,reserved_3y,NA,2.261758,USD,Azure Retail Prices API,2025-12-18T04:47:06.785073 +AZURE,canadacentral,Standard_E96as_v5,spot,NA,1.09993,USD,Azure Retail Prices API,2025-12-18T04:47:05.510276 +AZURE,canadacentral,Standard_E96ds_v5,on_demand,NA,7.584,USD,Azure Retail Prices API,2025-12-18T04:47:05.510374 +AZURE,canadacentral,Standard_E96ds_v5,reserved_1y,NA,4.474543,USD,Azure Retail Prices API,2025-12-18T04:47:06.784630 +AZURE,canadacentral,Standard_E96ds_v5,reserved_3y,NA,2.881925,USD,Azure Retail Prices API,2025-12-18T04:47:06.784633 +AZURE,canadacentral,Standard_E96ds_v5,spot,NA,2.078016,USD,Azure Retail Prices API,2025-12-18T04:47:05.511086 +AZURE,canadacentral,Standard_E96ds_v6,on_demand,NA,8.597,USD,Azure Retail Prices API,2025-12-18T04:47:05.509725 +AZURE,canadacentral,Standard_E96ds_v6,reserved_1y,NA,5.330023,USD,Azure Retail Prices API,2025-12-18T04:47:06.784046 +AZURE,canadacentral,Standard_E96ds_v6,reserved_3y,NA,3.35274,USD,Azure Retail Prices API,2025-12-18T04:47:06.784049 +AZURE,canadacentral,Standard_E96ds_v6,spot,NA,1.588726,USD,Azure Retail Prices API,2025-12-18T04:47:05.510391 +AZURE,canadacentral,Standard_E96pds_v6,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:47:05.510879 +AZURE,canadacentral,Standard_E96pds_v6,reserved_1y,NA,3.681621,USD,Azure Retail Prices API,2025-12-18T04:47:06.785292 +AZURE,canadacentral,Standard_E96pds_v6,reserved_3y,NA,2.371195,USD,Azure Retail Prices API,2025-12-18T04:47:06.785295 +AZURE,canadacentral,Standard_E96pds_v6,spot,NA,1.153152,USD,Azure Retail Prices API,2025-12-18T04:47:05.510645 +AZURE,canadacentral,Standard_E96ps_v6,on_demand,NA,4.915,USD,Azure Retail Prices API,2025-12-18T04:47:05.510665 +AZURE,canadacentral,Standard_E96ps_v6,reserved_1y,NA,2.9,USD,Azure Retail Prices API,2025-12-18T04:47:06.785057 +AZURE,canadacentral,Standard_E96ps_v6,reserved_3y,NA,1.86777,USD,Azure Retail Prices API,2025-12-18T04:47:06.785060 +AZURE,canadacentral,Standard_E96ps_v6,spot,NA,0.908292,USD,Azure Retail Prices API,2025-12-18T04:47:05.510142 +AZURE,canadacentral,Standard_E96s_v5,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:47:05.511056 +AZURE,canadacentral,Standard_E96s_v5,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:47:06.785448 +AZURE,canadacentral,Standard_E96s_v5,reserved_3y,NA,2.450875,USD,Azure Retail Prices API,2025-12-18T04:47:06.785451 +AZURE,canadacentral,Standard_E96s_v5,spot,NA,1.916986,USD,Azure Retail Prices API,2025-12-18T04:47:05.510465 +AZURE,canadacentral,Standard_EC16ads_v6,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:47:05.510538 +AZURE,canadacentral,Standard_EC16ads_v6,reserved_1y,NA,0.764612,USD,Azure Retail Prices API,2025-12-18T04:47:06.784895 +AZURE,canadacentral,Standard_EC16ads_v6,reserved_3y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:47:06.784898 +AZURE,canadacentral,Standard_EC16ads_v6,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:47:05.510038 +AZURE,canadacentral,Standard_EC16as_v6,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:47:05.510919 +AZURE,canadacentral,Standard_EC16as_v6,reserved_1y,NA,0.62774,USD,Azure Retail Prices API,2025-12-18T04:47:06.785320 +AZURE,canadacentral,Standard_EC16as_v6,reserved_3y,NA,0.404338,USD,Azure Retail Prices API,2025-12-18T04:47:06.785323 +AZURE,canadacentral,Standard_EC16as_v6,spot,NA,0.196627,USD,Azure Retail Prices API,2025-12-18T04:47:05.509659 +AZURE,canadacentral,Standard_EC2ads_v6,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:47:05.509604 +AZURE,canadacentral,Standard_EC2ads_v6,reserved_1y,NA,0.095548,USD,Azure Retail Prices API,2025-12-18T04:47:06.783923 +AZURE,canadacentral,Standard_EC2ads_v6,reserved_3y,NA,0.061568,USD,Azure Retail Prices API,2025-12-18T04:47:06.783926 +AZURE,canadacentral,Standard_EC2ads_v6,spot,NA,0.029938,USD,Azure Retail Prices API,2025-12-18T04:47:05.510851 +AZURE,canadacentral,Standard_EC2as_v6,on_demand,NA,0.133,USD,Azure Retail Prices API,2025-12-18T04:47:05.510715 +AZURE,canadacentral,Standard_EC2as_v6,reserved_1y,NA,0.078425,USD,Azure Retail Prices API,2025-12-18T04:47:06.785126 +AZURE,canadacentral,Standard_EC2as_v6,reserved_3y,NA,0.050533,USD,Azure Retail Prices API,2025-12-18T04:47:06.785129 +AZURE,canadacentral,Standard_EC2as_v6,spot,NA,0.024578,USD,Azure Retail Prices API,2025-12-18T04:47:05.510547 +AZURE,canadacentral,Standard_EC32ads_v6,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:47:05.511051 +AZURE,canadacentral,Standard_EC32ads_v6,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:47:06.785443 +AZURE,canadacentral,Standard_EC32ads_v6,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:47:06.785445 +AZURE,canadacentral,Standard_EC32ads_v6,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:47:05.510746 +AZURE,canadacentral,Standard_EC32as_v6,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:47:05.510388 +AZURE,canadacentral,Standard_EC32as_v6,reserved_1y,NA,1.255479,USD,Azure Retail Prices API,2025-12-18T04:47:06.784647 +AZURE,canadacentral,Standard_EC32as_v6,reserved_3y,NA,0.808638,USD,Azure Retail Prices API,2025-12-18T04:47:06.784649 +AZURE,canadacentral,Standard_EC32as_v6,spot,NA,0.393254,USD,Azure Retail Prices API,2025-12-18T04:47:05.510287 +AZURE,canadacentral,Standard_EC48ads_v6,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:47:05.509713 +AZURE,canadacentral,Standard_EC48ads_v6,reserved_1y,NA,2.29395,USD,Azure Retail Prices API,2025-12-18T04:47:06.784035 +AZURE,canadacentral,Standard_EC48ads_v6,reserved_3y,NA,1.477435,USD,Azure Retail Prices API,2025-12-18T04:47:06.784037 +AZURE,canadacentral,Standard_EC48ads_v6,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:47:05.509619 +AZURE,canadacentral,Standard_EC48as_v6,on_demand,NA,3.192,USD,Azure Retail Prices API,2025-12-18T04:47:05.509959 +AZURE,canadacentral,Standard_EC48as_v6,reserved_1y,NA,1.883333,USD,Azure Retail Prices API,2025-12-18T04:47:06.784266 +AZURE,canadacentral,Standard_EC48as_v6,reserved_3y,NA,1.212976,USD,Azure Retail Prices API,2025-12-18T04:47:06.784269 +AZURE,canadacentral,Standard_EC48as_v6,spot,NA,0.589882,USD,Azure Retail Prices API,2025-12-18T04:47:05.510160 +AZURE,canadacentral,Standard_EC4ads_v6,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:47:05.510690 +AZURE,canadacentral,Standard_EC4ads_v6,reserved_1y,NA,0.19121,USD,Azure Retail Prices API,2025-12-18T04:47:06.785082 +AZURE,canadacentral,Standard_EC4ads_v6,reserved_3y,NA,0.123135,USD,Azure Retail Prices API,2025-12-18T04:47:06.785085 +AZURE,canadacentral,Standard_EC4ads_v6,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:47:05.510961 +AZURE,canadacentral,Standard_EC4as_v6,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:47:05.509601 +AZURE,canadacentral,Standard_EC4as_v6,reserved_1y,NA,0.156963,USD,Azure Retail Prices API,2025-12-18T04:47:06.783917 +AZURE,canadacentral,Standard_EC4as_v6,reserved_3y,NA,0.101065,USD,Azure Retail Prices API,2025-12-18T04:47:06.783920 +AZURE,canadacentral,Standard_EC4as_v6,spot,NA,0.049157,USD,Azure Retail Prices API,2025-12-18T04:47:05.510724 +AZURE,canadacentral,Standard_EC64ads_v6,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:47:05.509909 +AZURE,canadacentral,Standard_EC64ads_v6,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:47:06.784225 +AZURE,canadacentral,Standard_EC64ads_v6,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:47:06.784228 +AZURE,canadacentral,Standard_EC64ads_v6,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:47:05.510574 +AZURE,canadacentral,Standard_EC64as_v6,on_demand,NA,4.256,USD,Azure Retail Prices API,2025-12-18T04:47:05.511011 +AZURE,canadacentral,Standard_EC64as_v6,reserved_1y,NA,2.511073,USD,Azure Retail Prices API,2025-12-18T04:47:06.785410 +AZURE,canadacentral,Standard_EC64as_v6,reserved_3y,NA,1.617275,USD,Azure Retail Prices API,2025-12-18T04:47:06.785412 +AZURE,canadacentral,Standard_EC64as_v6,spot,NA,0.786509,USD,Azure Retail Prices API,2025-12-18T04:47:05.510985 +AZURE,canadacentral,Standard_EC8ads_v6,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:47:05.510993 +AZURE,canadacentral,Standard_EC8ads_v6,reserved_1y,NA,0.382306,USD,Azure Retail Prices API,2025-12-18T04:47:06.785393 +AZURE,canadacentral,Standard_EC8ads_v6,reserved_3y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:47:06.785396 +AZURE,canadacentral,Standard_EC8ads_v6,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:47:05.509808 +AZURE,canadacentral,Standard_EC8as_v6,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:47:05.510950 +AZURE,canadacentral,Standard_EC8as_v6,reserved_1y,NA,0.313927,USD,Azure Retail Prices API,2025-12-18T04:47:06.785343 +AZURE,canadacentral,Standard_EC8as_v6,reserved_3y,NA,0.202169,USD,Azure Retail Prices API,2025-12-18T04:47:06.785345 +AZURE,canadacentral,Standard_EC8as_v6,spot,NA,0.098314,USD,Azure Retail Prices API,2025-12-18T04:47:05.509973 +AZURE,canadacentral,Standard_EC96ads_v6,on_demand,NA,7.776,USD,Azure Retail Prices API,2025-12-18T04:47:05.510474 +AZURE,canadacentral,Standard_EC96ads_v6,reserved_1y,NA,4.587785,USD,Azure Retail Prices API,2025-12-18T04:47:06.784772 +AZURE,canadacentral,Standard_EC96ads_v6,reserved_3y,NA,2.954871,USD,Azure Retail Prices API,2025-12-18T04:47:06.784776 +AZURE,canadacentral,Standard_EC96ads_v6,spot,NA,1.437005,USD,Azure Retail Prices API,2025-12-18T04:47:05.510003 +AZURE,canadacentral,Standard_EC96as_v6,on_demand,NA,6.384,USD,Azure Retail Prices API,2025-12-18T04:47:05.510192 +AZURE,canadacentral,Standard_EC96as_v6,reserved_1y,NA,3.766553,USD,Azure Retail Prices API,2025-12-18T04:47:06.784460 +AZURE,canadacentral,Standard_EC96as_v6,reserved_3y,NA,2.425913,USD,Azure Retail Prices API,2025-12-18T04:47:06.784463 +AZURE,canadacentral,Standard_EC96as_v6,spot,NA,1.179763,USD,Azure Retail Prices API,2025-12-18T04:47:05.511036 +AZURE,canadacentral,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379918 +AZURE,canadacentral,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379927 +AZURE,canadacentral,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379931 +AZURE,canadacentral,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379922 +AZURE,canadacentral,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382227 +AZURE,canadacentral,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382241 +AZURE,canadacentral,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382245 +AZURE,canadacentral,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382234 +AZURE,canadacentral,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384940 +AZURE,canadacentral,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384948 +AZURE,canadacentral,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384954 +AZURE,canadacentral,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384944 +AZURE,canadacentral,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385779 +AZURE,canadacentral,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385788 +AZURE,canadacentral,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385792 +AZURE,canadacentral,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385783 +AZURE,canadacentral,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378361 +AZURE,canadacentral,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378369 +AZURE,canadacentral,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378374 +AZURE,canadacentral,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378365 +AZURE,canadacentral,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386556 +AZURE,canadacentral,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386572 +AZURE,canadacentral,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386579 +AZURE,canadacentral,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386563 +AZURE,canadacentral,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380641 +AZURE,canadacentral,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380649 +AZURE,canadacentral,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380653 +AZURE,canadacentral,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380645 +AZURE,canadacentral,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383351 +AZURE,canadacentral,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383367 +AZURE,canadacentral,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383374 +AZURE,canadacentral,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383360 +AZURE,canadacentral,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387327 +AZURE,canadacentral,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387337 +AZURE,canadacentral,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387341 +AZURE,canadacentral,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387332 +AZURE,canadacentral,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388550 +AZURE,canadacentral,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388559 +AZURE,canadacentral,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388564 +AZURE,canadacentral,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388555 +AZURE,canadacentral,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379163 +AZURE,canadacentral,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379171 +AZURE,canadacentral,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379175 +AZURE,canadacentral,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379167 +AZURE,canadacentral,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381429 +AZURE,canadacentral,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381443 +AZURE,canadacentral,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381447 +AZURE,canadacentral,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381436 +AZURE,canadacentral,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384153 +AZURE,canadacentral,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384162 +AZURE,canadacentral,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384169 +AZURE,canadacentral,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384157 +AZURE,canadacentral,Standard_L16as_v3,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:47:05.510468 +AZURE,canadacentral,Standard_L16as_v3,reserved_1y,NA,0.880594,USD,Azure Retail Prices API,2025-12-18T04:47:06.784759 +AZURE,canadacentral,Standard_L16as_v3,reserved_3y,NA,0.57793,USD,Azure Retail Prices API,2025-12-18T04:47:06.784763 +AZURE,canadacentral,Standard_L16as_v3,spot,NA,0.254285,USD,Azure Retail Prices API,2025-12-18T04:47:05.510510 +AZURE,canadacentral,Standard_L16s_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:47:05.510445 +AZURE,canadacentral,Standard_L16s_v3,reserved_1y,NA,0.982991,USD,Azure Retail Prices API,2025-12-18T04:47:06.784724 +AZURE,canadacentral,Standard_L16s_v3,reserved_3y,NA,0.645129,USD,Azure Retail Prices API,2025-12-18T04:47:06.784729 +AZURE,canadacentral,Standard_L16s_v3,spot,NA,0.420864,USD,Azure Retail Prices API,2025-12-18T04:47:05.509506 +AZURE,canadacentral,Standard_L32as_v3,on_demand,NA,2.752,USD,Azure Retail Prices API,2025-12-18T04:47:05.509754 +AZURE,canadacentral,Standard_L32as_v3,reserved_1y,NA,1.761301,USD,Azure Retail Prices API,2025-12-18T04:47:06.784089 +AZURE,canadacentral,Standard_L32as_v3,reserved_3y,NA,1.155822,USD,Azure Retail Prices API,2025-12-18T04:47:06.784092 +AZURE,canadacentral,Standard_L32as_v3,spot,NA,0.50857,USD,Azure Retail Prices API,2025-12-18T04:47:05.511091 +AZURE,canadacentral,Standard_L32s_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:47:05.509822 +AZURE,canadacentral,Standard_L32s_v3,reserved_1y,NA,1.966096,USD,Azure Retail Prices API,2025-12-18T04:47:06.784126 +AZURE,canadacentral,Standard_L32s_v3,reserved_3y,NA,1.290259,USD,Azure Retail Prices API,2025-12-18T04:47:06.784129 +AZURE,canadacentral,Standard_L32s_v3,spot,NA,0.841728,USD,Azure Retail Prices API,2025-12-18T04:47:05.510293 +AZURE,canadacentral,Standard_L48as_v3,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:47:05.509656 +AZURE,canadacentral,Standard_L48as_v3,reserved_1y,NA,2.641895,USD,Azure Retail Prices API,2025-12-18T04:47:06.783957 +AZURE,canadacentral,Standard_L48as_v3,reserved_3y,NA,1.733752,USD,Azure Retail Prices API,2025-12-18T04:47:06.783960 +AZURE,canadacentral,Standard_L48as_v3,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:47:05.509746 +AZURE,canadacentral,Standard_L48s_v3,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:47:05.509757 +AZURE,canadacentral,Standard_L48s_v3,reserved_1y,NA,2.949087,USD,Azure Retail Prices API,2025-12-18T04:47:06.784095 +AZURE,canadacentral,Standard_L48s_v3,reserved_3y,NA,1.93535,USD,Azure Retail Prices API,2025-12-18T04:47:06.784098 +AZURE,canadacentral,Standard_L48s_v3,spot,NA,1.262592,USD,Azure Retail Prices API,2025-12-18T04:47:05.510183 +AZURE,canadacentral,Standard_L64as_v3,on_demand,NA,5.504,USD,Azure Retail Prices API,2025-12-18T04:47:05.510975 +AZURE,canadacentral,Standard_L64as_v3,reserved_1y,NA,3.522603,USD,Azure Retail Prices API,2025-12-18T04:47:06.785376 +AZURE,canadacentral,Standard_L64as_v3,reserved_3y,NA,2.311682,USD,Azure Retail Prices API,2025-12-18T04:47:06.785379 +AZURE,canadacentral,Standard_L64as_v3,spot,NA,1.017139,USD,Azure Retail Prices API,2025-12-18T04:47:05.509733 +AZURE,canadacentral,Standard_L64s_v3,on_demand,NA,6.144,USD,Azure Retail Prices API,2025-12-18T04:47:05.510153 +AZURE,canadacentral,Standard_L64s_v3,reserved_1y,NA,3.932192,USD,Azure Retail Prices API,2025-12-18T04:47:06.784432 +AZURE,canadacentral,Standard_L64s_v3,reserved_3y,NA,2.580479,USD,Azure Retail Prices API,2025-12-18T04:47:06.784434 +AZURE,canadacentral,Standard_L64s_v3,spot,NA,1.683456,USD,Azure Retail Prices API,2025-12-18T04:47:05.510651 +AZURE,canadacentral,Standard_L80as_v3,on_demand,NA,6.88,USD,Azure Retail Prices API,2025-12-18T04:47:05.510612 +AZURE,canadacentral,Standard_L80as_v3,reserved_1y,NA,4.403196,USD,Azure Retail Prices API,2025-12-18T04:47:06.784981 +AZURE,canadacentral,Standard_L80as_v3,reserved_3y,NA,2.889612,USD,Azure Retail Prices API,2025-12-18T04:47:06.784984 +AZURE,canadacentral,Standard_L80as_v3,spot,NA,1.271424,USD,Azure Retail Prices API,2025-12-18T04:47:05.510718 +AZURE,canadacentral,Standard_L80s_v3,on_demand,NA,7.68,USD,Azure Retail Prices API,2025-12-18T04:47:05.510189 +AZURE,canadacentral,Standard_L80s_v3,reserved_1y,NA,4.915183,USD,Azure Retail Prices API,2025-12-18T04:47:06.784454 +AZURE,canadacentral,Standard_L80s_v3,reserved_3y,NA,3.225609,USD,Azure Retail Prices API,2025-12-18T04:47:06.784457 +AZURE,canadacentral,Standard_L80s_v3,spot,NA,2.10432,USD,Azure Retail Prices API,2025-12-18T04:47:05.509650 +AZURE,canadacentral,Standard_L8as_v3,on_demand,NA,0.688,USD,Azure Retail Prices API,2025-12-18T04:47:05.510368 +AZURE,canadacentral,Standard_L8as_v3,reserved_1y,NA,0.440297,USD,Azure Retail Prices API,2025-12-18T04:47:06.784619 +AZURE,canadacentral,Standard_L8as_v3,reserved_3y,NA,0.288965,USD,Azure Retail Prices API,2025-12-18T04:47:06.784622 +AZURE,canadacentral,Standard_L8as_v3,spot,NA,0.127142,USD,Azure Retail Prices API,2025-12-18T04:47:05.509503 +AZURE,canadacentral,Standard_L8s_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:47:05.510488 +AZURE,canadacentral,Standard_L8s_v3,reserved_1y,NA,0.491553,USD,Azure Retail Prices API,2025-12-18T04:47:06.784793 +AZURE,canadacentral,Standard_L8s_v3,reserved_3y,NA,0.322565,USD,Azure Retail Prices API,2025-12-18T04:47:06.784796 +AZURE,canadacentral,Standard_L8s_v3,spot,NA,0.210432,USD,Azure Retail Prices API,2025-12-18T04:47:05.510258 +AZURE,canadacentral,Standard_NC12s_v3,on_demand,NA,6.732,USD,Azure Retail Prices API,2025-12-18T04:47:05.510541 +AZURE,canadacentral,Standard_NC12s_v3,spot,NA,1.244074,USD,Azure Retail Prices API,2025-12-18T04:47:05.509541 +AZURE,canadacentral,Standard_NC16as_T4_v3,on_demand,NA,1.336,USD,Azure Retail Prices API,2025-12-18T04:47:05.510328 +AZURE,canadacentral,Standard_NC16as_T4_v3,reserved_1y,NA,0.788128,USD,Azure Retail Prices API,2025-12-18T04:47:06.784569 +AZURE,canadacentral,Standard_NC16as_T4_v3,reserved_3y,NA,0.507648,USD,Azure Retail Prices API,2025-12-18T04:47:06.784572 +AZURE,canadacentral,Standard_NC16as_T4_v3,spot,NA,0.38744,USD,Azure Retail Prices API,2025-12-18T04:47:05.511016 +AZURE,canadacentral,Standard_NC24ads_A100_v4,on_demand,NA,4.408,USD,Azure Retail Prices API,2025-12-18T04:47:05.510053 +AZURE,canadacentral,Standard_NC24ads_A100_v4,reserved_1y,NA,2.881279,USD,Azure Retail Prices API,2025-12-18T04:47:06.784349 +AZURE,canadacentral,Standard_NC24ads_A100_v4,reserved_3y,NA,1.635654,USD,Azure Retail Prices API,2025-12-18T04:47:06.784352 +AZURE,canadacentral,Standard_NC24ads_A100_v4,spot,NA,1.022215,USD,Azure Retail Prices API,2025-12-18T04:47:05.509775 +AZURE,canadacentral,Standard_NC24s_v3,on_demand,NA,13.464,USD,Azure Retail Prices API,2025-12-18T04:47:05.510243 +AZURE,canadacentral,Standard_NC24s_v3,spot,NA,2.488147,USD,Azure Retail Prices API,2025-12-18T04:47:05.510768 +AZURE,canadacentral,Standard_NC48ads_A100_v4,on_demand,NA,8.815,USD,Azure Retail Prices API,2025-12-18T04:47:05.510334 +AZURE,canadacentral,Standard_NC48ads_A100_v4,reserved_1y,NA,5.762443,USD,Azure Retail Prices API,2025-12-18T04:47:06.784581 +AZURE,canadacentral,Standard_NC48ads_A100_v4,reserved_3y,NA,3.271309,USD,Azure Retail Prices API,2025-12-18T04:47:06.784584 +AZURE,canadacentral,Standard_NC48ads_A100_v4,spot,NA,2.044198,USD,Azure Retail Prices API,2025-12-18T04:47:05.509710 +AZURE,canadacentral,Standard_NC4as_T4_v3,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:47:05.510437 +AZURE,canadacentral,Standard_NC4as_T4_v3,reserved_1y,NA,0.344521,USD,Azure Retail Prices API,2025-12-18T04:47:06.784703 +AZURE,canadacentral,Standard_NC4as_T4_v3,reserved_3y,NA,0.22188,USD,Azure Retail Prices API,2025-12-18T04:47:06.784707 +AZURE,canadacentral,Standard_NC4as_T4_v3,spot,NA,0.16936,USD,Azure Retail Prices API,2025-12-18T04:47:05.509568 +AZURE,canadacentral,Standard_NC64as_T4_v3,on_demand,NA,4.82,USD,Azure Retail Prices API,2025-12-18T04:47:05.509699 +AZURE,canadacentral,Standard_NC64as_T4_v3,reserved_1y,NA,2.84395,USD,Azure Retail Prices API,2025-12-18T04:47:06.784023 +AZURE,canadacentral,Standard_NC64as_T4_v3,reserved_3y,NA,1.831735,USD,Azure Retail Prices API,2025-12-18T04:47:06.784026 +AZURE,canadacentral,Standard_NC64as_T4_v3,spot,NA,1.3978,USD,Azure Retail Prices API,2025-12-18T04:47:05.510732 +AZURE,canadacentral,Standard_NC6s_v3,on_demand,NA,3.366,USD,Azure Retail Prices API,2025-12-18T04:47:05.509719 +AZURE,canadacentral,Standard_NC6s_v3,spot,NA,0.622037,USD,Azure Retail Prices API,2025-12-18T04:47:05.509595 +AZURE,canadacentral,Standard_NC8as_T4_v3,on_demand,NA,0.834,USD,Azure Retail Prices API,2025-12-18T04:47:05.509682 +AZURE,canadacentral,Standard_NC8as_T4_v3,reserved_1y,NA,0.492009,USD,Azure Retail Prices API,2025-12-18T04:47:06.783985 +AZURE,canadacentral,Standard_NC8as_T4_v3,reserved_3y,NA,0.316933,USD,Azure Retail Prices API,2025-12-18T04:47:06.783990 +AZURE,canadacentral,Standard_NC8as_T4_v3,spot,NA,0.24186,USD,Azure Retail Prices API,2025-12-18T04:47:05.510676 +AZURE,canadacentral,Standard_NC96ads_A100_v4,on_demand,NA,17.63,USD,Azure Retail Prices API,2025-12-18T04:47:05.510571 +AZURE,canadacentral,Standard_NC96ads_A100_v4,reserved_1y,NA,11.525,USD,Azure Retail Prices API,2025-12-18T04:47:06.784934 +AZURE,canadacentral,Standard_NC96ads_A100_v4,reserved_3y,NA,6.542656,USD,Azure Retail Prices API,2025-12-18T04:47:06.784938 +AZURE,canadacentral,Standard_NC96ads_A100_v4,spot,NA,4.088397,USD,Azure Retail Prices API,2025-12-18T04:47:05.510726 +AZURE,canadacentral,Standard_ND96isr_H100_v5,on_demand,NA,117.984,USD,Azure Retail Prices API,2025-12-18T04:47:05.510086 +AZURE,canadacentral,Standard_ND96isr_H100_v5,reserved_1y,NA,75.509703,USD,Azure Retail Prices API,2025-12-18T04:47:06.784371 +AZURE,canadacentral,Standard_ND96isr_H100_v5,reserved_3y,NA,51.794977,USD,Azure Retail Prices API,2025-12-18T04:47:06.784374 +AZURE,canadacentral,Standard_ND96isr_H100_v5,spot,NA,21.803443,USD,Azure Retail Prices API,2025-12-18T04:47:05.509667 +AZURE,canadacentral,Standard_NV36adms_A10_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:47:05.509549 +AZURE,canadacentral,Standard_NV36adms_A10_v5,reserved_1y,NA,3.471347,USD,Azure Retail Prices API,2025-12-18T04:47:06.783882 +AZURE,canadacentral,Standard_NV36adms_A10_v5,reserved_3y,NA,2.386568,USD,Azure Retail Prices API,2025-12-18T04:47:06.783885 +AZURE,canadacentral,Standard_NV36adms_A10_v5,spot,NA,1.002355,USD,Azure Retail Prices API,2025-12-18T04:47:05.510174 +AZURE,canadacentral,Standard_NV36ads_A10_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:47:05.510354 +AZURE,canadacentral,Standard_NV36ads_A10_v5,reserved_1y,NA,2.457648,USD,Azure Retail Prices API,2025-12-18T04:47:06.784605 +AZURE,canadacentral,Standard_NV36ads_A10_v5,reserved_3y,NA,1.689612,USD,Azure Retail Prices API,2025-12-18T04:47:06.784607 +AZURE,canadacentral,Standard_NV36ads_A10_v5,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:47:05.509945 +AZURE,canadacentral,Standard_NV72ads_A10_v5,on_demand,NA,7.824,USD,Azure Retail Prices API,2025-12-18T04:47:05.509859 +AZURE,canadacentral,Standard_NV72ads_A10_v5,reserved_1y,NA,5.007306,USD,Azure Retail Prices API,2025-12-18T04:47:06.784173 +AZURE,canadacentral,Standard_NV72ads_A10_v5,reserved_3y,NA,3.442542,USD,Azure Retail Prices API,2025-12-18T04:47:06.784176 +AZURE,canadacentral,Standard_NV72ads_A10_v5,spot,NA,1.445875,USD,Azure Retail Prices API,2025-12-18T04:47:05.509825 +AZURE,canadaeast,Standard_D128ds_v6,on_demand,NA,8.887,USD,Azure Retail Prices API,2025-12-18T04:47:08.337246 +AZURE,canadaeast,Standard_D128ds_v6,reserved_1y,NA,5.509932,USD,Azure Retail Prices API,2025-12-18T04:47:09.250760 +AZURE,canadaeast,Standard_D128ds_v6,reserved_3y,NA,3.465944,USD,Azure Retail Prices API,2025-12-18T04:47:09.250763 +AZURE,canadaeast,Standard_D128ds_v6,spot,NA,1.642318,USD,Azure Retail Prices API,2025-12-18T04:47:08.336793 +AZURE,canadaeast,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488805 +AZURE,canadaeast,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488821 +AZURE,canadaeast,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488843 +AZURE,canadaeast,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488812 +AZURE,canadaeast,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489867 +AZURE,canadaeast,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489892 +AZURE,canadaeast,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489896 +AZURE,canadaeast,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489884 +AZURE,canadaeast,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490657 +AZURE,canadaeast,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490665 +AZURE,canadaeast,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490669 +AZURE,canadaeast,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490661 +AZURE,canadaeast,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491408 +AZURE,canadaeast,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491416 +AZURE,canadaeast,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491421 +AZURE,canadaeast,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491412 +AZURE,canadaeast,Standard_D16_v3,on_demand,NA,0.888,USD,Azure Retail Prices API,2025-12-18T04:47:08.336929 +AZURE,canadaeast,Standard_D16_v3,reserved_1y,NA,0.509589,USD,Azure Retail Prices API,2025-12-18T04:47:09.250492 +AZURE,canadaeast,Standard_D16_v3,reserved_3y,NA,0.330898,USD,Azure Retail Prices API,2025-12-18T04:47:09.250495 +AZURE,canadaeast,Standard_D16_v3,spot,NA,0.164102,USD,Azure Retail Prices API,2025-12-18T04:47:08.336983 +AZURE,canadaeast,Standard_D16a_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:47:08.337046 +AZURE,canadaeast,Standard_D16a_v4,reserved_1y,NA,0.505023,USD,Azure Retail Prices API,2025-12-18T04:47:09.250609 +AZURE,canadaeast,Standard_D16a_v4,reserved_3y,NA,0.325266,USD,Azure Retail Prices API,2025-12-18T04:47:09.250612 +AZURE,canadaeast,Standard_D16a_v4,spot,NA,0.158702,USD,Azure Retail Prices API,2025-12-18T04:47:08.336799 +AZURE,canadaeast,Standard_D16ads_v5,on_demand,NA,1.656,USD,Azure Retail Prices API,2025-12-18T04:47:08.336045 +AZURE,canadaeast,Standard_D16ads_v5,reserved_1y,NA,0.542808,USD,Azure Retail Prices API,2025-12-18T04:47:09.249926 +AZURE,canadaeast,Standard_D16ads_v5,reserved_3y,NA,0.349581,USD,Azure Retail Prices API,2025-12-18T04:47:09.249929 +AZURE,canadaeast,Standard_D16ads_v5,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:47:08.336380 +AZURE,canadaeast,Standard_D16ads_v6,on_demand,NA,1.019,USD,Azure Retail Prices API,2025-12-18T04:47:08.337496 +AZURE,canadaeast,Standard_D16ads_v6,reserved_1y,NA,0.60137,USD,Azure Retail Prices API,2025-12-18T04:47:09.251025 +AZURE,canadaeast,Standard_D16ads_v6,reserved_3y,NA,0.387291,USD,Azure Retail Prices API,2025-12-18T04:47:09.251028 +AZURE,canadaeast,Standard_D16ads_v6,spot,NA,0.188311,USD,Azure Retail Prices API,2025-12-18T04:47:08.336396 +AZURE,canadaeast,Standard_D16as_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:47:08.336065 +AZURE,canadaeast,Standard_D16as_v4,reserved_1y,NA,0.505023,USD,Azure Retail Prices API,2025-12-18T04:47:09.249638 +AZURE,canadaeast,Standard_D16as_v4,reserved_3y,NA,0.325266,USD,Azure Retail Prices API,2025-12-18T04:47:09.249642 +AZURE,canadaeast,Standard_D16as_v4,spot,NA,0.158702,USD,Azure Retail Prices API,2025-12-18T04:47:08.336706 +AZURE,canadaeast,Standard_D16as_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:47:08.336325 +AZURE,canadaeast,Standard_D16as_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:47:09.249916 +AZURE,canadaeast,Standard_D16as_v5,reserved_3y,NA,0.291857,USD,Azure Retail Prices API,2025-12-18T04:47:09.249918 +AZURE,canadaeast,Standard_D16as_v5,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:47:08.336513 +AZURE,canadaeast,Standard_D16d_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:47:08.337346 +AZURE,canadaeast,Standard_D16d_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:47:09.250866 +AZURE,canadaeast,Standard_D16d_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:47:09.250869 +AZURE,canadaeast,Standard_D16d_v4,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:47:08.336456 +AZURE,canadaeast,Standard_D16ds_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:47:08.336402 +AZURE,canadaeast,Standard_D16ds_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:47:09.249981 +AZURE,canadaeast,Standard_D16ds_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:47:09.249984 +AZURE,canadaeast,Standard_D16ds_v4,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:47:08.336018 +AZURE,canadaeast,Standard_D16ds_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:47:08.336663 +AZURE,canadaeast,Standard_D16ds_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:47:09.250227 +AZURE,canadaeast,Standard_D16ds_v5,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:47:09.250230 +AZURE,canadaeast,Standard_D16ds_v5,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:47:08.336892 +AZURE,canadaeast,Standard_D16ds_v6,on_demand,NA,1.111,USD,Azure Retail Prices API,2025-12-18T04:47:08.336938 +AZURE,canadaeast,Standard_D16ds_v6,reserved_1y,NA,0.688699,USD,Azure Retail Prices API,2025-12-18T04:47:09.250503 +AZURE,canadaeast,Standard_D16ds_v6,reserved_3y,NA,0.433257,USD,Azure Retail Prices API,2025-12-18T04:47:09.250506 +AZURE,canadaeast,Standard_D16ds_v6,spot,NA,0.205313,USD,Azure Retail Prices API,2025-12-18T04:47:08.336740 +AZURE,canadaeast,Standard_D16pds_v6,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:47:08.336317 +AZURE,canadaeast,Standard_D16pds_v6,reserved_1y,NA,0.481393,USD,Azure Retail Prices API,2025-12-18T04:47:09.249904 +AZURE,canadaeast,Standard_D16pds_v6,reserved_3y,NA,0.310084,USD,Azure Retail Prices API,2025-12-18T04:47:09.249907 +AZURE,canadaeast,Standard_D16pds_v6,spot,NA,0.150797,USD,Azure Retail Prices API,2025-12-18T04:47:08.336781 +AZURE,canadaeast,Standard_D16ps_v6,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:47:08.336589 +AZURE,canadaeast,Standard_D16ps_v6,reserved_1y,NA,0.368151,USD,Azure Retail Prices API,2025-12-18T04:47:09.250154 +AZURE,canadaeast,Standard_D16ps_v6,reserved_3y,NA,0.237139,USD,Azure Retail Prices API,2025-12-18T04:47:09.250157 +AZURE,canadaeast,Standard_D16ps_v6,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:47:08.337361 +AZURE,canadaeast,Standard_D16s_v3,on_demand,NA,0.888,USD,Azure Retail Prices API,2025-12-18T04:47:08.336099 +AZURE,canadaeast,Standard_D16s_v3,reserved_1y,NA,0.509589,USD,Azure Retail Prices API,2025-12-18T04:47:09.249686 +AZURE,canadaeast,Standard_D16s_v3,reserved_3y,NA,0.330898,USD,Azure Retail Prices API,2025-12-18T04:47:09.249689 +AZURE,canadaeast,Standard_D16s_v3,spot,NA,0.164102,USD,Azure Retail Prices API,2025-12-18T04:47:08.336068 +AZURE,canadaeast,Standard_D16s_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:47:08.336709 +AZURE,canadaeast,Standard_D16s_v4,reserved_1y,NA,0.503311,USD,Azure Retail Prices API,2025-12-18T04:47:09.250272 +AZURE,canadaeast,Standard_D16s_v4,reserved_3y,NA,0.321842,USD,Azure Retail Prices API,2025-12-18T04:47:09.250275 +AZURE,canadaeast,Standard_D16s_v4,spot,NA,0.158189,USD,Azure Retail Prices API,2025-12-18T04:47:08.336203 +AZURE,canadaeast,Standard_D16s_v5,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:47:08.336073 +AZURE,canadaeast,Standard_D16s_v5,reserved_1y,NA,0.505023,USD,Azure Retail Prices API,2025-12-18T04:47:09.249651 +AZURE,canadaeast,Standard_D16s_v5,reserved_3y,NA,0.316705,USD,Azure Retail Prices API,2025-12-18T04:47:09.249653 +AZURE,canadaeast,Standard_D16s_v5,spot,NA,0.158189,USD,Azure Retail Prices API,2025-12-18T04:47:08.337177 +AZURE,canadaeast,Standard_D2ads_v6,on_demand,NA,0.127,USD,Azure Retail Prices API,2025-12-18T04:47:08.336224 +AZURE,canadaeast,Standard_D2ads_v6,reserved_1y,NA,0.075114,USD,Azure Retail Prices API,2025-12-18T04:47:09.249818 +AZURE,canadaeast,Standard_D2ads_v6,reserved_3y,NA,0.048402,USD,Azure Retail Prices API,2025-12-18T04:47:09.249821 +AZURE,canadaeast,Standard_D2ads_v6,spot,NA,0.02347,USD,Azure Retail Prices API,2025-12-18T04:47:08.336944 +AZURE,canadaeast,Standard_D2ds_v6,on_demand,NA,0.139,USD,Azure Retail Prices API,2025-12-18T04:47:08.336637 +AZURE,canadaeast,Standard_D2ds_v6,reserved_1y,NA,0.086073,USD,Azure Retail Prices API,2025-12-18T04:47:09.250199 +AZURE,canadaeast,Standard_D2ds_v6,reserved_3y,NA,0.054148,USD,Azure Retail Prices API,2025-12-18T04:47:09.250202 +AZURE,canadaeast,Standard_D2ds_v6,spot,NA,0.025687,USD,Azure Retail Prices API,2025-12-18T04:47:08.336855 +AZURE,canadaeast,Standard_D32_v3,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:47:08.336236 +AZURE,canadaeast,Standard_D32_v3,reserved_1y,NA,1.019178,USD,Azure Retail Prices API,2025-12-18T04:47:09.249836 +AZURE,canadaeast,Standard_D32_v3,reserved_3y,NA,0.661796,USD,Azure Retail Prices API,2025-12-18T04:47:09.249838 +AZURE,canadaeast,Standard_D32_v3,spot,NA,0.328205,USD,Azure Retail Prices API,2025-12-18T04:47:08.336297 +AZURE,canadaeast,Standard_D32a_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:47:08.337043 +AZURE,canadaeast,Standard_D32a_v4,reserved_1y,NA,1.010046,USD,Azure Retail Prices API,2025-12-18T04:47:09.250603 +AZURE,canadaeast,Standard_D32a_v4,reserved_3y,NA,0.650571,USD,Azure Retail Prices API,2025-12-18T04:47:09.250606 +AZURE,canadaeast,Standard_D32a_v4,spot,NA,0.317405,USD,Azure Retail Prices API,2025-12-18T04:47:08.337087 +AZURE,canadaeast,Standard_D32ads_v5,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:08.337455 +AZURE,canadaeast,Standard_D32ads_v5,reserved_1y,NA,1.085616,USD,Azure Retail Prices API,2025-12-18T04:47:09.251001 +AZURE,canadaeast,Standard_D32ads_v5,reserved_3y,NA,0.699201,USD,Azure Retail Prices API,2025-12-18T04:47:09.251004 +AZURE,canadaeast,Standard_D32ads_v5,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:47:08.336215 +AZURE,canadaeast,Standard_D32ads_v6,on_demand,NA,2.038,USD,Azure Retail Prices API,2025-12-18T04:47:08.337444 +AZURE,canadaeast,Standard_D32ads_v6,reserved_1y,NA,1.202626,USD,Azure Retail Prices API,2025-12-18T04:47:09.250990 +AZURE,canadaeast,Standard_D32ads_v6,reserved_3y,NA,0.774581,USD,Azure Retail Prices API,2025-12-18T04:47:09.250993 +AZURE,canadaeast,Standard_D32ads_v6,spot,NA,0.376622,USD,Azure Retail Prices API,2025-12-18T04:47:08.337526 +AZURE,canadaeast,Standard_D32as_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:47:08.336476 +AZURE,canadaeast,Standard_D32as_v4,reserved_1y,NA,1.010046,USD,Azure Retail Prices API,2025-12-18T04:47:09.250058 +AZURE,canadaeast,Standard_D32as_v4,reserved_3y,NA,0.650571,USD,Azure Retail Prices API,2025-12-18T04:47:09.250061 +AZURE,canadaeast,Standard_D32as_v4,spot,NA,0.317405,USD,Azure Retail Prices API,2025-12-18T04:47:08.337303 +AZURE,canadaeast,Standard_D32as_v5,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:47:08.336941 +AZURE,canadaeast,Standard_D32as_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:47:09.250509 +AZURE,canadaeast,Standard_D32as_v5,reserved_3y,NA,0.583676,USD,Azure Retail Prices API,2025-12-18T04:47:09.250511 +AZURE,canadaeast,Standard_D32as_v5,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:47:08.337013 +AZURE,canadaeast,Standard_D32d_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:47:08.337321 +AZURE,canadaeast,Standard_D32d_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:47:09.250833 +AZURE,canadaeast,Standard_D32d_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:47:09.250837 +AZURE,canadaeast,Standard_D32d_v4,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:47:08.336328 +AZURE,canadaeast,Standard_D32ds_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:47:08.336209 +AZURE,canadaeast,Standard_D32ds_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:47:09.249799 +AZURE,canadaeast,Standard_D32ds_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:47:09.249802 +AZURE,canadaeast,Standard_D32ds_v4,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:47:08.336039 +AZURE,canadaeast,Standard_D32ds_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:47:08.337200 +AZURE,canadaeast,Standard_D32ds_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:47:09.250714 +AZURE,canadaeast,Standard_D32ds_v5,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:47:09.250717 +AZURE,canadaeast,Standard_D32ds_v5,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:47:08.337168 +AZURE,canadaeast,Standard_D32ds_v6,on_demand,NA,2.222,USD,Azure Retail Prices API,2025-12-18T04:47:08.336820 +AZURE,canadaeast,Standard_D32ds_v6,reserved_1y,NA,1.377511,USD,Azure Retail Prices API,2025-12-18T04:47:09.250372 +AZURE,canadaeast,Standard_D32ds_v6,reserved_3y,NA,0.866476,USD,Azure Retail Prices API,2025-12-18T04:47:09.250375 +AZURE,canadaeast,Standard_D32ds_v6,spot,NA,0.410626,USD,Azure Retail Prices API,2025-12-18T04:47:08.336206 +AZURE,canadaeast,Standard_D32pds_v6,on_demand,NA,1.632,USD,Azure Retail Prices API,2025-12-18T04:47:08.337331 +AZURE,canadaeast,Standard_D32pds_v6,reserved_1y,NA,0.9629,USD,Azure Retail Prices API,2025-12-18T04:47:09.250843 +AZURE,canadaeast,Standard_D32pds_v6,reserved_3y,NA,0.620167,USD,Azure Retail Prices API,2025-12-18T04:47:09.250849 +AZURE,canadaeast,Standard_D32pds_v6,spot,NA,0.301594,USD,Azure Retail Prices API,2025-12-18T04:47:08.336499 +AZURE,canadaeast,Standard_D32ps_v6,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:47:08.337194 +AZURE,canadaeast,Standard_D32ps_v6,reserved_1y,NA,0.736301,USD,Azure Retail Prices API,2025-12-18T04:47:09.250703 +AZURE,canadaeast,Standard_D32ps_v6,reserved_3y,NA,0.474239,USD,Azure Retail Prices API,2025-12-18T04:47:09.250706 +AZURE,canadaeast,Standard_D32ps_v6,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:47:08.337508 +AZURE,canadaeast,Standard_D32s_v3,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:47:08.337182 +AZURE,canadaeast,Standard_D32s_v3,reserved_1y,NA,1.019178,USD,Azure Retail Prices API,2025-12-18T04:47:09.250684 +AZURE,canadaeast,Standard_D32s_v3,reserved_3y,NA,0.661796,USD,Azure Retail Prices API,2025-12-18T04:47:09.250687 +AZURE,canadaeast,Standard_D32s_v3,spot,NA,0.328205,USD,Azure Retail Prices API,2025-12-18T04:47:08.336383 +AZURE,canadaeast,Standard_D32s_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:47:08.336522 +AZURE,canadaeast,Standard_D32s_v4,reserved_1y,NA,1.006621,USD,Azure Retail Prices API,2025-12-18T04:47:09.250090 +AZURE,canadaeast,Standard_D32s_v4,reserved_3y,NA,0.643721,USD,Azure Retail Prices API,2025-12-18T04:47:09.250093 +AZURE,canadaeast,Standard_D32s_v4,spot,NA,0.316378,USD,Azure Retail Prices API,2025-12-18T04:47:08.336487 +AZURE,canadaeast,Standard_D32s_v5,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:47:08.337093 +AZURE,canadaeast,Standard_D32s_v5,reserved_1y,NA,1.010046,USD,Azure Retail Prices API,2025-12-18T04:47:09.250644 +AZURE,canadaeast,Standard_D32s_v5,reserved_3y,NA,0.633447,USD,Azure Retail Prices API,2025-12-18T04:47:09.250647 +AZURE,canadaeast,Standard_D32s_v5,spot,NA,0.316378,USD,Azure Retail Prices API,2025-12-18T04:47:08.337037 +AZURE,canadaeast,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485909 +AZURE,canadaeast,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485918 +AZURE,canadaeast,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485922 +AZURE,canadaeast,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485914 +AZURE,canadaeast,Standard_D48a_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:47:08.336447 +AZURE,canadaeast,Standard_D48a_v4,reserved_1y,NA,1.515068,USD,Azure Retail Prices API,2025-12-18T04:47:09.250026 +AZURE,canadaeast,Standard_D48a_v4,reserved_3y,NA,0.975837,USD,Azure Retail Prices API,2025-12-18T04:47:09.250029 +AZURE,canadaeast,Standard_D48a_v4,spot,NA,0.476107,USD,Azure Retail Prices API,2025-12-18T04:47:08.336502 +AZURE,canadaeast,Standard_D48ads_v5,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:47:08.336300 +AZURE,canadaeast,Standard_D48ads_v5,reserved_1y,NA,1.628425,USD,Azure Retail Prices API,2025-12-18T04:47:09.249882 +AZURE,canadaeast,Standard_D48ads_v5,reserved_3y,NA,1.048782,USD,Azure Retail Prices API,2025-12-18T04:47:09.249885 +AZURE,canadaeast,Standard_D48ads_v5,spot,NA,0.510048,USD,Azure Retail Prices API,2025-12-18T04:47:08.336956 +AZURE,canadaeast,Standard_D48ads_v6,on_demand,NA,3.058,USD,Azure Retail Prices API,2025-12-18T04:47:08.336393 +AZURE,canadaeast,Standard_D48ads_v6,reserved_1y,NA,1.803995,USD,Azure Retail Prices API,2025-12-18T04:47:09.249970 +AZURE,canadaeast,Standard_D48ads_v6,reserved_3y,NA,1.161872,USD,Azure Retail Prices API,2025-12-18T04:47:09.249973 +AZURE,canadaeast,Standard_D48ads_v6,spot,NA,0.565118,USD,Azure Retail Prices API,2025-12-18T04:47:08.337518 +AZURE,canadaeast,Standard_D48as_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:47:08.337251 +AZURE,canadaeast,Standard_D48as_v4,reserved_1y,NA,1.515068,USD,Azure Retail Prices API,2025-12-18T04:47:09.250766 +AZURE,canadaeast,Standard_D48as_v4,reserved_3y,NA,0.975837,USD,Azure Retail Prices API,2025-12-18T04:47:09.250769 +AZURE,canadaeast,Standard_D48as_v4,spot,NA,0.476107,USD,Azure Retail Prices API,2025-12-18T04:47:08.336889 +AZURE,canadaeast,Standard_D48as_v5,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:47:08.336265 +AZURE,canadaeast,Standard_D48as_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:47:09.250925 +AZURE,canadaeast,Standard_D48as_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:47:09.250928 +AZURE,canadaeast,Standard_D48as_v5,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:47:08.336519 +AZURE,canadaeast,Standard_D48d_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:47:08.337138 +AZURE,canadaeast,Standard_D48d_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:47:09.250661 +AZURE,canadaeast,Standard_D48d_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:47:09.250664 +AZURE,canadaeast,Standard_D48d_v4,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:47:08.337406 +AZURE,canadaeast,Standard_D48ds_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:47:08.336070 +AZURE,canadaeast,Standard_D48ds_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:47:09.249645 +AZURE,canadaeast,Standard_D48ds_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:47:09.249648 +AZURE,canadaeast,Standard_D48ds_v4,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:47:08.337022 +AZURE,canadaeast,Standard_D48ds_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:47:08.336962 +AZURE,canadaeast,Standard_D48ds_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:47:09.250545 +AZURE,canadaeast,Standard_D48ds_v5,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:47:09.250548 +AZURE,canadaeast,Standard_D48ds_v5,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:47:08.337069 +AZURE,canadaeast,Standard_D48ds_v6,on_demand,NA,3.333,USD,Azure Retail Prices API,2025-12-18T04:47:08.337081 +AZURE,canadaeast,Standard_D48ds_v6,reserved_1y,NA,2.06621,USD,Azure Retail Prices API,2025-12-18T04:47:09.250639 +AZURE,canadaeast,Standard_D48ds_v6,reserved_3y,NA,1.299734,USD,Azure Retail Prices API,2025-12-18T04:47:09.250641 +AZURE,canadaeast,Standard_D48ds_v6,spot,NA,0.615938,USD,Azure Retail Prices API,2025-12-18T04:47:08.336390 +AZURE,canadaeast,Standard_D48pds_v6,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:47:08.337218 +AZURE,canadaeast,Standard_D48pds_v6,reserved_1y,NA,1.444292,USD,Azure Retail Prices API,2025-12-18T04:47:09.250725 +AZURE,canadaeast,Standard_D48pds_v6,reserved_3y,NA,0.930251,USD,Azure Retail Prices API,2025-12-18T04:47:09.250728 +AZURE,canadaeast,Standard_D48pds_v6,spot,NA,0.45239,USD,Azure Retail Prices API,2025-12-18T04:47:08.336365 +AZURE,canadaeast,Standard_D48ps_v6,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:47:08.336056 +AZURE,canadaeast,Standard_D48ps_v6,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:47:09.249626 +AZURE,canadaeast,Standard_D48ps_v6,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:47:09.249629 +AZURE,canadaeast,Standard_D48ps_v6,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:47:08.337546 +AZURE,canadaeast,Standard_D48s_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:47:08.337543 +AZURE,canadaeast,Standard_D48s_v4,reserved_1y,NA,1.509932,USD,Azure Retail Prices API,2025-12-18T04:47:09.251096 +AZURE,canadaeast,Standard_D48s_v4,reserved_3y,NA,0.965563,USD,Azure Retail Prices API,2025-12-18T04:47:09.251101 +AZURE,canadaeast,Standard_D48s_v4,spot,NA,0.474566,USD,Azure Retail Prices API,2025-12-18T04:47:08.337450 +AZURE,canadaeast,Standard_D48s_v5,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:47:08.336227 +AZURE,canadaeast,Standard_D48s_v5,reserved_1y,NA,1.515068,USD,Azure Retail Prices API,2025-12-18T04:47:09.249824 +AZURE,canadaeast,Standard_D48s_v5,reserved_3y,NA,0.950152,USD,Azure Retail Prices API,2025-12-18T04:47:09.249827 +AZURE,canadaeast,Standard_D48s_v5,spot,NA,0.474566,USD,Azure Retail Prices API,2025-12-18T04:47:08.337482 +AZURE,canadaeast,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486825 +AZURE,canadaeast,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486839 +AZURE,canadaeast,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486846 +AZURE,canadaeast,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486832 +AZURE,canadaeast,Standard_D4a_v4,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:47:08.336090 +AZURE,canadaeast,Standard_D4a_v4,reserved_1y,NA,0.126256,USD,Azure Retail Prices API,2025-12-18T04:47:09.249673 +AZURE,canadaeast,Standard_D4a_v4,reserved_3y,NA,0.081317,USD,Azure Retail Prices API,2025-12-18T04:47:09.249676 +AZURE,canadaeast,Standard_D4a_v4,spot,NA,0.039676,USD,Azure Retail Prices API,2025-12-18T04:47:08.336154 +AZURE,canadaeast,Standard_D4ads_v5,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:47:08.336212 +AZURE,canadaeast,Standard_D4ads_v5,reserved_1y,NA,0.135731,USD,Azure Retail Prices API,2025-12-18T04:47:09.249805 +AZURE,canadaeast,Standard_D4ads_v5,reserved_3y,NA,0.087405,USD,Azure Retail Prices API,2025-12-18T04:47:09.249808 +AZURE,canadaeast,Standard_D4ads_v5,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:47:08.336753 +AZURE,canadaeast,Standard_D4ads_v6,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:47:08.336105 +AZURE,canadaeast,Standard_D4ads_v6,reserved_1y,NA,0.150342,USD,Azure Retail Prices API,2025-12-18T04:47:09.249697 +AZURE,canadaeast,Standard_D4ads_v6,reserved_3y,NA,0.096842,USD,Azure Retail Prices API,2025-12-18T04:47:09.249700 +AZURE,canadaeast,Standard_D4ads_v6,spot,NA,0.047124,USD,Azure Retail Prices API,2025-12-18T04:47:08.337309 +AZURE,canadaeast,Standard_D4as_v5,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:47:08.336003 +AZURE,canadaeast,Standard_D4as_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:47:09.249576 +AZURE,canadaeast,Standard_D4as_v5,reserved_3y,NA,0.072945,USD,Azure Retail Prices API,2025-12-18T04:47:09.249580 +AZURE,canadaeast,Standard_D4as_v5,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:47:08.336510 +AZURE,canadaeast,Standard_D4d_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:47:08.336482 +AZURE,canadaeast,Standard_D4d_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:47:09.250063 +AZURE,canadaeast,Standard_D4d_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:47:09.250066 +AZURE,canadaeast,Standard_D4d_v4,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:47:08.336768 +AZURE,canadaeast,Standard_D4ds_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:47:08.337237 +AZURE,canadaeast,Standard_D4ds_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:47:09.250749 +AZURE,canadaeast,Standard_D4ds_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:47:09.250752 +AZURE,canadaeast,Standard_D4ds_v4,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:47:08.336696 +AZURE,canadaeast,Standard_D4ds_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:47:08.337367 +AZURE,canadaeast,Standard_D4ds_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:47:09.250895 +AZURE,canadaeast,Standard_D4ds_v5,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:47:09.250898 +AZURE,canadaeast,Standard_D4ds_v5,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:47:08.337257 +AZURE,canadaeast,Standard_D4ds_v6,on_demand,NA,0.278,USD,Azure Retail Prices API,2025-12-18T04:47:08.336120 +AZURE,canadaeast,Standard_D4ds_v6,reserved_1y,NA,0.172146,USD,Azure Retail Prices API,2025-12-18T04:47:09.249708 +AZURE,canadaeast,Standard_D4ds_v6,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:47:09.249711 +AZURE,canadaeast,Standard_D4ds_v6,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:47:08.335973 +AZURE,canadaeast,Standard_D4pds_v6,on_demand,NA,0.204,USD,Azure Retail Prices API,2025-12-18T04:47:08.336814 +AZURE,canadaeast,Standard_D4pds_v6,reserved_1y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:47:09.250355 +AZURE,canadaeast,Standard_D4pds_v6,reserved_3y,NA,0.077511,USD,Azure Retail Prices API,2025-12-18T04:47:09.250358 +AZURE,canadaeast,Standard_D4pds_v6,spot,NA,0.037699,USD,Azure Retail Prices API,2025-12-18T04:47:08.336775 +AZURE,canadaeast,Standard_D4ps_v6,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:47:08.337574 +AZURE,canadaeast,Standard_D4ps_v6,reserved_1y,NA,0.092009,USD,Azure Retail Prices API,2025-12-18T04:47:09.251126 +AZURE,canadaeast,Standard_D4ps_v6,reserved_3y,NA,0.059285,USD,Azure Retail Prices API,2025-12-18T04:47:09.251128 +AZURE,canadaeast,Standard_D4ps_v6,spot,NA,0.028829,USD,Azure Retail Prices API,2025-12-18T04:47:08.336968 +AZURE,canadaeast,Standard_D4s_v3,on_demand,NA,0.222,USD,Azure Retail Prices API,2025-12-18T04:47:08.336151 +AZURE,canadaeast,Standard_D4s_v3,reserved_1y,NA,0.127397,USD,Azure Retail Prices API,2025-12-18T04:47:09.249741 +AZURE,canadaeast,Standard_D4s_v3,reserved_3y,NA,0.082725,USD,Azure Retail Prices API,2025-12-18T04:47:09.249744 +AZURE,canadaeast,Standard_D4s_v3,spot,NA,0.041026,USD,Azure Retail Prices API,2025-12-18T04:47:08.336277 +AZURE,canadaeast,Standard_D4s_v4,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:47:08.337499 +AZURE,canadaeast,Standard_D4s_v4,reserved_1y,NA,0.125799,USD,Azure Retail Prices API,2025-12-18T04:47:09.251031 +AZURE,canadaeast,Standard_D4s_v4,reserved_3y,NA,0.080479,USD,Azure Retail Prices API,2025-12-18T04:47:09.251034 +AZURE,canadaeast,Standard_D4s_v4,spot,NA,0.039547,USD,Azure Retail Prices API,2025-12-18T04:47:08.336832 +AZURE,canadaeast,Standard_D4s_v5,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:47:08.336218 +AZURE,canadaeast,Standard_D4s_v5,reserved_1y,NA,0.126256,USD,Azure Retail Prices API,2025-12-18T04:47:09.249811 +AZURE,canadaeast,Standard_D4s_v5,reserved_3y,NA,0.079186,USD,Azure Retail Prices API,2025-12-18T04:47:09.249815 +AZURE,canadaeast,Standard_D4s_v5,spot,NA,0.039547,USD,Azure Retail Prices API,2025-12-18T04:47:08.337473 +AZURE,canadaeast,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488019 +AZURE,canadaeast,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488026 +AZURE,canadaeast,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488030 +AZURE,canadaeast,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488023 +AZURE,canadaeast,Standard_D64_v3,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:47:08.336256 +AZURE,canadaeast,Standard_D64_v3,reserved_1y,NA,2.038356,USD,Azure Retail Prices API,2025-12-18T04:47:09.249847 +AZURE,canadaeast,Standard_D64_v3,reserved_3y,NA,1.323592,USD,Azure Retail Prices API,2025-12-18T04:47:09.249850 +AZURE,canadaeast,Standard_D64_v3,spot,NA,0.65641,USD,Azure Retail Prices API,2025-12-18T04:47:08.337134 +AZURE,canadaeast,Standard_D64a_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:47:08.337524 +AZURE,canadaeast,Standard_D64a_v4,reserved_1y,NA,2.020205,USD,Azure Retail Prices API,2025-12-18T04:47:09.251053 +AZURE,canadaeast,Standard_D64a_v4,reserved_3y,NA,1.301104,USD,Azure Retail Prices API,2025-12-18T04:47:09.251057 +AZURE,canadaeast,Standard_D64a_v4,spot,NA,0.63481,USD,Azure Retail Prices API,2025-12-18T04:47:08.336251 +AZURE,canadaeast,Standard_D64ads_v5,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:47:08.336331 +AZURE,canadaeast,Standard_D64ads_v5,reserved_1y,NA,2.171233,USD,Azure Retail Prices API,2025-12-18T04:47:09.250852 +AZURE,canadaeast,Standard_D64ads_v5,reserved_3y,NA,1.398402,USD,Azure Retail Prices API,2025-12-18T04:47:09.250855 +AZURE,canadaeast,Standard_D64ads_v5,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:47:08.336516 +AZURE,canadaeast,Standard_D64ads_v6,on_demand,NA,4.077,USD,Azure Retail Prices API,2025-12-18T04:47:08.336620 +AZURE,canadaeast,Standard_D64ads_v6,reserved_1y,NA,2.405365,USD,Azure Retail Prices API,2025-12-18T04:47:09.250188 +AZURE,canadaeast,Standard_D64ads_v6,reserved_3y,NA,1.549201,USD,Azure Retail Prices API,2025-12-18T04:47:09.250191 +AZURE,canadaeast,Standard_D64ads_v6,spot,NA,0.75343,USD,Azure Retail Prices API,2025-12-18T04:47:08.336715 +AZURE,canadaeast,Standard_D64as_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:47:08.337001 +AZURE,canadaeast,Standard_D64as_v4,reserved_1y,NA,2.020205,USD,Azure Retail Prices API,2025-12-18T04:47:09.250562 +AZURE,canadaeast,Standard_D64as_v4,reserved_3y,NA,1.301104,USD,Azure Retail Prices API,2025-12-18T04:47:09.250564 +AZURE,canadaeast,Standard_D64as_v4,spot,NA,0.63481,USD,Azure Retail Prices API,2025-12-18T04:47:08.336429 +AZURE,canadaeast,Standard_D64as_v5,on_demand,NA,6.016,USD,Azure Retail Prices API,2025-12-18T04:47:08.336730 +AZURE,canadaeast,Standard_D64as_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:47:09.250458 +AZURE,canadaeast,Standard_D64as_v5,reserved_3y,NA,1.167352,USD,Azure Retail Prices API,2025-12-18T04:47:09.250461 +AZURE,canadaeast,Standard_D64as_v5,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:47:08.337215 +AZURE,canadaeast,Standard_D64d_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:47:08.336432 +AZURE,canadaeast,Standard_D64d_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:47:09.250014 +AZURE,canadaeast,Standard_D64d_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:47:09.250018 +AZURE,canadaeast,Standard_D64d_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:47:08.336971 +AZURE,canadaeast,Standard_D64ds_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:47:08.336386 +AZURE,canadaeast,Standard_D64ds_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:47:09.249965 +AZURE,canadaeast,Standard_D64ds_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:47:09.249968 +AZURE,canadaeast,Standard_D64ds_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:47:08.337413 +AZURE,canadaeast,Standard_D64ds_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:47:08.336493 +AZURE,canadaeast,Standard_D64ds_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:47:09.250074 +AZURE,canadaeast,Standard_D64ds_v5,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:47:09.250077 +AZURE,canadaeast,Standard_D64ds_v5,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:47:08.336681 +AZURE,canadaeast,Standard_D64ds_v6,on_demand,NA,4.444,USD,Azure Retail Prices API,2025-12-18T04:47:08.336323 +AZURE,canadaeast,Standard_D64ds_v6,reserved_1y,NA,2.755023,USD,Azure Retail Prices API,2025-12-18T04:47:09.249910 +AZURE,canadaeast,Standard_D64ds_v6,reserved_3y,NA,1.732991,USD,Azure Retail Prices API,2025-12-18T04:47:09.249913 +AZURE,canadaeast,Standard_D64ds_v6,spot,NA,0.821251,USD,Azure Retail Prices API,2025-12-18T04:47:08.336242 +AZURE,canadaeast,Standard_D64pds_v6,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:47:08.337191 +AZURE,canadaeast,Standard_D64pds_v6,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:47:09.250697 +AZURE,canadaeast,Standard_D64pds_v6,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:47:09.250700 +AZURE,canadaeast,Standard_D64pds_v6,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:47:08.337461 +AZURE,canadaeast,Standard_D64ps_v6,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:47:08.337060 +AZURE,canadaeast,Standard_D64ps_v6,reserved_1y,NA,1.472603,USD,Azure Retail Prices API,2025-12-18T04:47:09.250615 +AZURE,canadaeast,Standard_D64ps_v6,reserved_3y,NA,0.948478,USD,Azure Retail Prices API,2025-12-18T04:47:09.250619 +AZURE,canadaeast,Standard_D64ps_v6,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:47:08.336000 +AZURE,canadaeast,Standard_D64s_v3,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:47:08.336876 +AZURE,canadaeast,Standard_D64s_v3,reserved_1y,NA,2.038356,USD,Azure Retail Prices API,2025-12-18T04:47:09.250423 +AZURE,canadaeast,Standard_D64s_v3,reserved_3y,NA,1.323592,USD,Azure Retail Prices API,2025-12-18T04:47:09.250426 +AZURE,canadaeast,Standard_D64s_v3,spot,NA,0.65641,USD,Azure Retail Prices API,2025-12-18T04:47:08.336950 +AZURE,canadaeast,Standard_D64s_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:47:08.337489 +AZURE,canadaeast,Standard_D64s_v4,reserved_1y,NA,2.013356,USD,Azure Retail Prices API,2025-12-18T04:47:09.251019 +AZURE,canadaeast,Standard_D64s_v4,reserved_3y,NA,1.287443,USD,Azure Retail Prices API,2025-12-18T04:47:09.251022 +AZURE,canadaeast,Standard_D64s_v4,spot,NA,0.632755,USD,Azure Retail Prices API,2025-12-18T04:47:08.336230 +AZURE,canadaeast,Standard_D64s_v5,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:47:08.337034 +AZURE,canadaeast,Standard_D64s_v5,reserved_1y,NA,2.020205,USD,Azure Retail Prices API,2025-12-18T04:47:09.250597 +AZURE,canadaeast,Standard_D64s_v5,reserved_3y,NA,1.266895,USD,Azure Retail Prices API,2025-12-18T04:47:09.250600 +AZURE,canadaeast,Standard_D64s_v5,spot,NA,0.632755,USD,Azure Retail Prices API,2025-12-18T04:47:08.337004 +AZURE,canadaeast,Standard_D8_v3,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:47:08.337409 +AZURE,canadaeast,Standard_D8_v3,reserved_1y,NA,0.254795,USD,Azure Retail Prices API,2025-12-18T04:47:09.250949 +AZURE,canadaeast,Standard_D8_v3,reserved_3y,NA,0.165449,USD,Azure Retail Prices API,2025-12-18T04:47:09.250952 +AZURE,canadaeast,Standard_D8_v3,spot,NA,0.082051,USD,Azure Retail Prices API,2025-12-18T04:47:08.336357 +AZURE,canadaeast,Standard_D8a_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:47:08.337188 +AZURE,canadaeast,Standard_D8a_v4,reserved_1y,NA,0.252511,USD,Azure Retail Prices API,2025-12-18T04:47:09.250690 +AZURE,canadaeast,Standard_D8a_v4,reserved_3y,NA,0.162633,USD,Azure Retail Prices API,2025-12-18T04:47:09.250693 +AZURE,canadaeast,Standard_D8a_v4,spot,NA,0.079351,USD,Azure Retail Prices API,2025-12-18T04:47:08.336062 +AZURE,canadaeast,Standard_D8ads_v5,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:47:08.336726 +AZURE,canadaeast,Standard_D8ads_v5,reserved_1y,NA,0.271347,USD,Azure Retail Prices API,2025-12-18T04:47:09.250288 +AZURE,canadaeast,Standard_D8ads_v5,reserved_3y,NA,0.17481,USD,Azure Retail Prices API,2025-12-18T04:47:09.250291 +AZURE,canadaeast,Standard_D8ads_v5,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:47:08.337335 +AZURE,canadaeast,Standard_D8ads_v6,on_demand,NA,0.51,USD,Azure Retail Prices API,2025-12-18T04:47:08.336128 +AZURE,canadaeast,Standard_D8ads_v6,reserved_1y,NA,0.300685,USD,Azure Retail Prices API,2025-12-18T04:47:09.249725 +AZURE,canadaeast,Standard_D8ads_v6,reserved_3y,NA,0.193645,USD,Azure Retail Prices API,2025-12-18T04:47:09.249728 +AZURE,canadaeast,Standard_D8ads_v6,spot,NA,0.094248,USD,Azure Retail Prices API,2025-12-18T04:47:08.336245 +AZURE,canadaeast,Standard_D8as_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:47:08.337124 +AZURE,canadaeast,Standard_D8as_v4,reserved_1y,NA,0.252511,USD,Azure Retail Prices API,2025-12-18T04:47:09.250655 +AZURE,canadaeast,Standard_D8as_v4,reserved_3y,NA,0.162633,USD,Azure Retail Prices API,2025-12-18T04:47:09.250659 +AZURE,canadaeast,Standard_D8as_v4,spot,NA,0.079351,USD,Azure Retail Prices API,2025-12-18T04:47:08.336320 +AZURE,canadaeast,Standard_D8as_v5,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:47:08.336160 +AZURE,canadaeast,Standard_D8as_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:47:09.249747 +AZURE,canadaeast,Standard_D8as_v5,reserved_3y,NA,0.145928,USD,Azure Retail Prices API,2025-12-18T04:47:09.249749 +AZURE,canadaeast,Standard_D8as_v5,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:47:08.336998 +AZURE,canadaeast,Standard_D8d_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:47:08.336906 +AZURE,canadaeast,Standard_D8d_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:47:09.250463 +AZURE,canadaeast,Standard_D8d_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:47:09.250466 +AZURE,canadaeast,Standard_D8d_v4,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:47:08.337275 +AZURE,canadaeast,Standard_D8ds_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:47:08.336167 +AZURE,canadaeast,Standard_D8ds_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:47:09.249753 +AZURE,canadaeast,Standard_D8ds_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:47:09.249758 +AZURE,canadaeast,Standard_D8ds_v4,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:47:08.336408 +AZURE,canadaeast,Standard_D8ds_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:47:08.337400 +AZURE,canadaeast,Standard_D8ds_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:47:09.250944 +AZURE,canadaeast,Standard_D8ds_v5,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:47:09.250946 +AZURE,canadaeast,Standard_D8ds_v5,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:47:08.336974 +AZURE,canadaeast,Standard_D8ds_v6,on_demand,NA,0.555,USD,Azure Retail Prices API,2025-12-18T04:47:08.336560 +AZURE,canadaeast,Standard_D8ds_v6,reserved_1y,NA,0.344406,USD,Azure Retail Prices API,2025-12-18T04:47:09.250119 +AZURE,canadaeast,Standard_D8ds_v6,reserved_3y,NA,0.216629,USD,Azure Retail Prices API,2025-12-18T04:47:09.250122 +AZURE,canadaeast,Standard_D8ds_v6,spot,NA,0.102564,USD,Azure Retail Prices API,2025-12-18T04:47:08.336591 +AZURE,canadaeast,Standard_D8pds_v6,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:47:08.336645 +AZURE,canadaeast,Standard_D8pds_v6,reserved_1y,NA,0.240753,USD,Azure Retail Prices API,2025-12-18T04:47:09.250211 +AZURE,canadaeast,Standard_D8pds_v6,reserved_3y,NA,0.155023,USD,Azure Retail Prices API,2025-12-18T04:47:09.250213 +AZURE,canadaeast,Standard_D8pds_v6,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:47:08.336114 +AZURE,canadaeast,Standard_D8ps_v6,on_demand,NA,0.312,USD,Azure Retail Prices API,2025-12-18T04:47:08.337558 +AZURE,canadaeast,Standard_D8ps_v6,reserved_1y,NA,0.184132,USD,Azure Retail Prices API,2025-12-18T04:47:09.251104 +AZURE,canadaeast,Standard_D8ps_v6,reserved_3y,NA,0.118569,USD,Azure Retail Prices API,2025-12-18T04:47:09.251106 +AZURE,canadaeast,Standard_D8ps_v6,spot,NA,0.057658,USD,Azure Retail Prices API,2025-12-18T04:47:08.336053 +AZURE,canadaeast,Standard_D8s_v3,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:47:08.337425 +AZURE,canadaeast,Standard_D8s_v3,reserved_1y,NA,0.254795,USD,Azure Retail Prices API,2025-12-18T04:47:09.250961 +AZURE,canadaeast,Standard_D8s_v3,reserved_3y,NA,0.165449,USD,Azure Retail Prices API,2025-12-18T04:47:09.250963 +AZURE,canadaeast,Standard_D8s_v3,spot,NA,0.082051,USD,Azure Retail Prices API,2025-12-18T04:47:08.337386 +AZURE,canadaeast,Standard_D8s_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:47:08.336306 +AZURE,canadaeast,Standard_D8s_v4,reserved_1y,NA,0.251712,USD,Azure Retail Prices API,2025-12-18T04:47:09.249887 +AZURE,canadaeast,Standard_D8s_v4,reserved_3y,NA,0.160921,USD,Azure Retail Prices API,2025-12-18T04:47:09.249890 +AZURE,canadaeast,Standard_D8s_v4,spot,NA,0.079094,USD,Azure Retail Prices API,2025-12-18T04:47:08.337485 +AZURE,canadaeast,Standard_D8s_v5,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:47:08.336641 +AZURE,canadaeast,Standard_D8s_v5,reserved_1y,NA,0.252511,USD,Azure Retail Prices API,2025-12-18T04:47:09.250205 +AZURE,canadaeast,Standard_D8s_v5,reserved_3y,NA,0.158371,USD,Azure Retail Prices API,2025-12-18T04:47:09.250208 +AZURE,canadaeast,Standard_D8s_v5,spot,NA,0.079094,USD,Azure Retail Prices API,2025-12-18T04:47:08.336033 +AZURE,canadaeast,Standard_D96a_v4,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:47:08.336790 +AZURE,canadaeast,Standard_D96a_v4,reserved_1y,NA,3.030251,USD,Azure Retail Prices API,2025-12-18T04:47:09.250321 +AZURE,canadaeast,Standard_D96a_v4,reserved_3y,NA,1.951674,USD,Azure Retail Prices API,2025-12-18T04:47:09.250323 +AZURE,canadaeast,Standard_D96a_v4,spot,NA,0.952214,USD,Azure Retail Prices API,2025-12-18T04:47:08.336024 +AZURE,canadaeast,Standard_D96ads_v5,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:47:08.337383 +AZURE,canadaeast,Standard_D96ads_v5,reserved_1y,NA,3.256849,USD,Azure Retail Prices API,2025-12-18T04:47:09.250919 +AZURE,canadaeast,Standard_D96ads_v5,reserved_3y,NA,2.097603,USD,Azure Retail Prices API,2025-12-18T04:47:09.250922 +AZURE,canadaeast,Standard_D96ads_v5,spot,NA,1.020096,USD,Azure Retail Prices API,2025-12-18T04:47:08.337172 +AZURE,canadaeast,Standard_D96ads_v6,on_demand,NA,6.115,USD,Azure Retail Prices API,2025-12-18T04:47:08.336597 +AZURE,canadaeast,Standard_D96ads_v6,reserved_1y,NA,3.607991,USD,Azure Retail Prices API,2025-12-18T04:47:09.250165 +AZURE,canadaeast,Standard_D96ads_v6,reserved_3y,NA,2.323782,USD,Azure Retail Prices API,2025-12-18T04:47:09.250168 +AZURE,canadaeast,Standard_D96ads_v6,spot,NA,1.130052,USD,Azure Retail Prices API,2025-12-18T04:47:08.336864 +AZURE,canadaeast,Standard_D96as_v4,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:47:08.337260 +AZURE,canadaeast,Standard_D96as_v4,reserved_1y,NA,3.030251,USD,Azure Retail Prices API,2025-12-18T04:47:09.250779 +AZURE,canadaeast,Standard_D96as_v4,reserved_3y,NA,1.951674,USD,Azure Retail Prices API,2025-12-18T04:47:09.250781 +AZURE,canadaeast,Standard_D96as_v4,spot,NA,0.952214,USD,Azure Retail Prices API,2025-12-18T04:47:08.336015 +AZURE,canadaeast,Standard_D96as_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:47:08.336528 +AZURE,canadaeast,Standard_D96as_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:47:09.250096 +AZURE,canadaeast,Standard_D96as_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:47:09.250099 +AZURE,canadaeast,Standard_D96as_v5,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:47:08.336835 +AZURE,canadaeast,Standard_D96ds_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:47:08.336699 +AZURE,canadaeast,Standard_D96ds_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:47:09.250256 +AZURE,canadaeast,Standard_D96ds_v5,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:47:09.250259 +AZURE,canadaeast,Standard_D96ds_v5,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:47:08.337028 +AZURE,canadaeast,Standard_D96ds_v6,on_demand,NA,6.665,USD,Azure Retail Prices API,2025-12-18T04:47:08.336259 +AZURE,canadaeast,Standard_D96ds_v6,reserved_1y,NA,4.13242,USD,Azure Retail Prices API,2025-12-18T04:47:09.249853 +AZURE,canadaeast,Standard_D96ds_v6,reserved_3y,NA,2.599467,USD,Azure Retail Prices API,2025-12-18T04:47:09.249856 +AZURE,canadaeast,Standard_D96ds_v6,spot,NA,1.231692,USD,Azure Retail Prices API,2025-12-18T04:47:08.336275 +AZURE,canadaeast,Standard_D96pds_v6,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:47:08.336286 +AZURE,canadaeast,Standard_D96pds_v6,reserved_1y,NA,2.888584,USD,Azure Retail Prices API,2025-12-18T04:47:09.249877 +AZURE,canadaeast,Standard_D96pds_v6,reserved_3y,NA,1.860464,USD,Azure Retail Prices API,2025-12-18T04:47:09.249879 +AZURE,canadaeast,Standard_D96pds_v6,spot,NA,0.904781,USD,Azure Retail Prices API,2025-12-18T04:47:08.337281 +AZURE,canadaeast,Standard_D96ps_v6,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:47:08.336426 +AZURE,canadaeast,Standard_D96ps_v6,reserved_1y,NA,2.208904,USD,Azure Retail Prices API,2025-12-18T04:47:09.250005 +AZURE,canadaeast,Standard_D96ps_v6,reserved_3y,NA,1.422717,USD,Azure Retail Prices API,2025-12-18T04:47:09.250009 +AZURE,canadaeast,Standard_D96ps_v6,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:47:08.336608 +AZURE,canadaeast,Standard_D96s_v5,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:47:08.336309 +AZURE,canadaeast,Standard_D96s_v5,reserved_1y,NA,3.030251,USD,Azure Retail Prices API,2025-12-18T04:47:09.249893 +AZURE,canadaeast,Standard_D96s_v5,reserved_3y,NA,1.900304,USD,Azure Retail Prices API,2025-12-18T04:47:09.249896 +AZURE,canadaeast,Standard_D96s_v5,spot,NA,0.949133,USD,Azure Retail Prices API,2025-12-18T04:47:08.336303 +AZURE,canadaeast,Standard_DC16ads_v6,on_demand,NA,1.019,USD,Azure Retail Prices API,2025-12-18T04:47:08.336850 +AZURE,canadaeast,Standard_DC16ads_v6,reserved_1y,NA,0.60137,USD,Azure Retail Prices API,2025-12-18T04:47:09.250395 +AZURE,canadaeast,Standard_DC16ads_v6,reserved_3y,NA,0.387291,USD,Azure Retail Prices API,2025-12-18T04:47:09.250398 +AZURE,canadaeast,Standard_DC16ads_v6,spot,NA,0.188311,USD,Azure Retail Prices API,2025-12-18T04:47:08.336583 +AZURE,canadaeast,Standard_DC2ads_v6,on_demand,NA,0.127,USD,Azure Retail Prices API,2025-12-18T04:47:08.336470 +AZURE,canadaeast,Standard_DC2ads_v6,reserved_1y,NA,0.075114,USD,Azure Retail Prices API,2025-12-18T04:47:09.250052 +AZURE,canadaeast,Standard_DC2ads_v6,reserved_3y,NA,0.048402,USD,Azure Retail Prices API,2025-12-18T04:47:09.250055 +AZURE,canadaeast,Standard_DC2ads_v6,spot,NA,0.02347,USD,Azure Retail Prices API,2025-12-18T04:47:08.337105 +AZURE,canadaeast,Standard_DC32ads_v6,on_demand,NA,2.038,USD,Azure Retail Prices API,2025-12-18T04:47:08.337422 +AZURE,canadaeast,Standard_DC32ads_v6,reserved_1y,NA,1.202626,USD,Azure Retail Prices API,2025-12-18T04:47:09.250955 +AZURE,canadaeast,Standard_DC32ads_v6,reserved_3y,NA,0.774581,USD,Azure Retail Prices API,2025-12-18T04:47:09.250958 +AZURE,canadaeast,Standard_DC32ads_v6,spot,NA,0.376622,USD,Azure Retail Prices API,2025-12-18T04:47:08.337084 +AZURE,canadaeast,Standard_DC48ads_v6,on_demand,NA,3.058,USD,Azure Retail Prices API,2025-12-18T04:47:08.336606 +AZURE,canadaeast,Standard_DC48ads_v6,reserved_1y,NA,1.803995,USD,Azure Retail Prices API,2025-12-18T04:47:09.250177 +AZURE,canadaeast,Standard_DC48ads_v6,reserved_3y,NA,1.161872,USD,Azure Retail Prices API,2025-12-18T04:47:09.250180 +AZURE,canadaeast,Standard_DC48ads_v6,spot,NA,0.565118,USD,Azure Retail Prices API,2025-12-18T04:47:08.336757 +AZURE,canadaeast,Standard_DC4ads_v6,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:47:08.337063 +AZURE,canadaeast,Standard_DC4ads_v6,reserved_1y,NA,0.150342,USD,Azure Retail Prices API,2025-12-18T04:47:09.250622 +AZURE,canadaeast,Standard_DC4ads_v6,reserved_3y,NA,0.096842,USD,Azure Retail Prices API,2025-12-18T04:47:09.250625 +AZURE,canadaeast,Standard_DC4ads_v6,spot,NA,0.047124,USD,Azure Retail Prices API,2025-12-18T04:47:08.337049 +AZURE,canadaeast,Standard_DC64ads_v6,on_demand,NA,4.077,USD,Azure Retail Prices API,2025-12-18T04:47:08.335993 +AZURE,canadaeast,Standard_DC64ads_v6,reserved_1y,NA,2.405365,USD,Azure Retail Prices API,2025-12-18T04:47:09.249563 +AZURE,canadaeast,Standard_DC64ads_v6,reserved_3y,NA,1.549201,USD,Azure Retail Prices API,2025-12-18T04:47:09.249567 +AZURE,canadaeast,Standard_DC64ads_v6,spot,NA,0.75343,USD,Azure Retail Prices API,2025-12-18T04:47:08.336980 +AZURE,canadaeast,Standard_DC8ads_v6,on_demand,NA,0.51,USD,Azure Retail Prices API,2025-12-18T04:47:08.337352 +AZURE,canadaeast,Standard_DC8ads_v6,reserved_1y,NA,0.300685,USD,Azure Retail Prices API,2025-12-18T04:47:09.250872 +AZURE,canadaeast,Standard_DC8ads_v6,reserved_3y,NA,0.193645,USD,Azure Retail Prices API,2025-12-18T04:47:09.250874 +AZURE,canadaeast,Standard_DC8ads_v6,spot,NA,0.094248,USD,Azure Retail Prices API,2025-12-18T04:47:08.337502 +AZURE,canadaeast,Standard_DC96ads_v6,on_demand,NA,6.115,USD,Azure Retail Prices API,2025-12-18T04:47:08.336079 +AZURE,canadaeast,Standard_DC96ads_v6,reserved_1y,NA,3.607991,USD,Azure Retail Prices API,2025-12-18T04:47:09.249662 +AZURE,canadaeast,Standard_DC96ads_v6,reserved_3y,NA,2.323782,USD,Azure Retail Prices API,2025-12-18T04:47:09.249665 +AZURE,canadaeast,Standard_DC96ads_v6,spot,NA,1.130052,USD,Azure Retail Prices API,2025-12-18T04:47:08.336802 +AZURE,canadaeast,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495793 +AZURE,canadaeast,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495802 +AZURE,canadaeast,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495815 +AZURE,canadaeast,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495797 +AZURE,canadaeast,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496686 +AZURE,canadaeast,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496694 +AZURE,canadaeast,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496698 +AZURE,canadaeast,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496690 +AZURE,canadaeast,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497558 +AZURE,canadaeast,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497568 +AZURE,canadaeast,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497572 +AZURE,canadaeast,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497564 +AZURE,canadaeast,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498307 +AZURE,canadaeast,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498316 +AZURE,canadaeast,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498320 +AZURE,canadaeast,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498312 +AZURE,canadaeast,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492153 +AZURE,canadaeast,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492162 +AZURE,canadaeast,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492166 +AZURE,canadaeast,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492158 +AZURE,canadaeast,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492860 +AZURE,canadaeast,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492868 +AZURE,canadaeast,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492872 +AZURE,canadaeast,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492864 +AZURE,canadaeast,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493601 +AZURE,canadaeast,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493613 +AZURE,canadaeast,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493617 +AZURE,canadaeast,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493609 +AZURE,canadaeast,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494306 +AZURE,canadaeast,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494314 +AZURE,canadaeast,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494320 +AZURE,canadaeast,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494310 +AZURE,canadaeast,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495017 +AZURE,canadaeast,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495025 +AZURE,canadaeast,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495029 +AZURE,canadaeast,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495021 +AZURE,canadaeast,Standard_E128ds_v6,on_demand,NA,11.462,USD,Azure Retail Prices API,2025-12-18T04:47:08.336233 +AZURE,canadaeast,Standard_E128ds_v6,reserved_1y,NA,7.106735,USD,Azure Retail Prices API,2025-12-18T04:47:09.249830 +AZURE,canadaeast,Standard_E128ds_v6,reserved_3y,NA,4.47032,USD,Azure Retail Prices API,2025-12-18T04:47:09.249832 +AZURE,canadaeast,Standard_E128ds_v6,spot,NA,2.118178,USD,Azure Retail Prices API,2025-12-18T04:47:08.336467 +AZURE,canadaeast,Standard_E16_v3,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:47:08.336947 +AZURE,canadaeast,Standard_E16_v3,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:47:09.250515 +AZURE,canadaeast,Standard_E16_v3,reserved_3y,NA,0.439155,USD,Azure Retail Prices API,2025-12-18T04:47:09.250527 +AZURE,canadaeast,Standard_E16_v3,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:47:08.337291 +AZURE,canadaeast,Standard_E16a_v4,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:47:08.337240 +AZURE,canadaeast,Standard_E16a_v4,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:47:09.250755 +AZURE,canadaeast,Standard_E16a_v4,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:47:09.250757 +AZURE,canadaeast,Standard_E16a_v4,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:47:08.337129 +AZURE,canadaeast,Standard_E16ads_v5,on_demand,NA,1.888,USD,Azure Retail Prices API,2025-12-18T04:47:08.336354 +AZURE,canadaeast,Standard_E16ads_v5,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:47:09.250440 +AZURE,canadaeast,Standard_E16ads_v5,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:47:09.250443 +AZURE,canadaeast,Standard_E16ads_v5,spot,NA,0.21289,USD,Azure Retail Prices API,2025-12-18T04:47:08.337143 +AZURE,canadaeast,Standard_E16ads_v6,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:47:08.336505 +AZURE,canadaeast,Standard_E16ads_v6,reserved_1y,NA,0.764612,USD,Azure Retail Prices API,2025-12-18T04:47:09.250080 +AZURE,canadaeast,Standard_E16ads_v6,reserved_3y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:47:09.250082 +AZURE,canadaeast,Standard_E16ads_v6,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:47:08.336188 +AZURE,canadaeast,Standard_E16as_v4,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:47:08.336036 +AZURE,canadaeast,Standard_E16as_v4,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:47:09.249607 +AZURE,canadaeast,Standard_E16as_v4,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:47:09.249610 +AZURE,canadaeast,Standard_E16as_v4,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:47:08.337185 +AZURE,canadaeast,Standard_E16as_v5,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:47:08.336921 +AZURE,canadaeast,Standard_E16as_v5,reserved_1y,NA,0.585274,USD,Azure Retail Prices API,2025-12-18T04:47:09.250995 +AZURE,canadaeast,Standard_E16as_v5,reserved_3y,NA,0.376979,USD,Azure Retail Prices API,2025-12-18T04:47:09.250998 +AZURE,canadaeast,Standard_E16as_v5,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:47:08.336179 +AZURE,canadaeast,Standard_E16d_v4,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:47:08.336563 +AZURE,canadaeast,Standard_E16d_v4,reserved_1y,NA,0.743265,USD,Azure Retail Prices API,2025-12-18T04:47:09.250125 +AZURE,canadaeast,Standard_E16d_v4,reserved_3y,NA,0.475266,USD,Azure Retail Prices API,2025-12-18T04:47:09.250127 +AZURE,canadaeast,Standard_E16d_v4,spot,NA,0.233587,USD,Azure Retail Prices API,2025-12-18T04:47:08.336082 +AZURE,canadaeast,Standard_E16ds_v4,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:47:08.337374 +AZURE,canadaeast,Standard_E16ds_v4,reserved_1y,NA,0.743265,USD,Azure Retail Prices API,2025-12-18T04:47:09.250908 +AZURE,canadaeast,Standard_E16ds_v4,reserved_3y,NA,0.475266,USD,Azure Retail Prices API,2025-12-18T04:47:09.250910 +AZURE,canadaeast,Standard_E16ds_v4,spot,NA,0.233587,USD,Azure Retail Prices API,2025-12-18T04:47:08.336405 +AZURE,canadaeast,Standard_E16ds_v5,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:47:08.336744 +AZURE,canadaeast,Standard_E16ds_v5,reserved_1y,NA,0.745776,USD,Azure Retail Prices API,2025-12-18T04:47:09.250294 +AZURE,canadaeast,Standard_E16ds_v5,reserved_3y,NA,0.480327,USD,Azure Retail Prices API,2025-12-18T04:47:09.250297 +AZURE,canadaeast,Standard_E16ds_v5,spot,NA,0.233587,USD,Azure Retail Prices API,2025-12-18T04:47:08.337222 +AZURE,canadaeast,Standard_E16ds_v6,on_demand,NA,1.433,USD,Azure Retail Prices API,2025-12-18T04:47:08.337066 +AZURE,canadaeast,Standard_E16ds_v6,reserved_1y,NA,0.888356,USD,Azure Retail Prices API,2025-12-18T04:47:09.250627 +AZURE,canadaeast,Standard_E16ds_v6,reserved_3y,NA,0.55879,USD,Azure Retail Prices API,2025-12-18T04:47:09.250630 +AZURE,canadaeast,Standard_E16ds_v6,spot,NA,0.264818,USD,Azure Retail Prices API,2025-12-18T04:47:08.336723 +AZURE,canadaeast,Standard_E16pds_v6,on_demand,NA,1.04,USD,Azure Retail Prices API,2025-12-18T04:47:08.336720 +AZURE,canadaeast,Standard_E16pds_v6,reserved_1y,NA,0.613584,USD,Azure Retail Prices API,2025-12-18T04:47:09.250283 +AZURE,canadaeast,Standard_E16pds_v6,reserved_3y,NA,0.395205,USD,Azure Retail Prices API,2025-12-18T04:47:09.250286 +AZURE,canadaeast,Standard_E16pds_v6,spot,NA,0.192192,USD,Azure Retail Prices API,2025-12-18T04:47:08.336337 +AZURE,canadaeast,Standard_E16ps_v6,on_demand,NA,0.819,USD,Azure Retail Prices API,2025-12-18T04:47:08.336360 +AZURE,canadaeast,Standard_E16ps_v6,reserved_1y,NA,0.483333,USD,Azure Retail Prices API,2025-12-18T04:47:09.249943 +AZURE,canadaeast,Standard_E16ps_v6,reserved_3y,NA,0.311301,USD,Azure Retail Prices API,2025-12-18T04:47:09.249946 +AZURE,canadaeast,Standard_E16ps_v6,spot,NA,0.151351,USD,Azure Retail Prices API,2025-12-18T04:47:08.337467 +AZURE,canadaeast,Standard_E16s_v3,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:47:08.336363 +AZURE,canadaeast,Standard_E16s_v3,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:47:09.249948 +AZURE,canadaeast,Standard_E16s_v3,reserved_3y,NA,0.439155,USD,Azure Retail Prices API,2025-12-18T04:47:09.249951 +AZURE,canadaeast,Standard_E16s_v3,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:47:08.336374 +AZURE,canadaeast,Standard_E16s_v4,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:47:08.337561 +AZURE,canadaeast,Standard_E16s_v4,reserved_1y,NA,0.649201,USD,Azure Retail Prices API,2025-12-18T04:47:09.251109 +AZURE,canadaeast,Standard_E16s_v4,reserved_3y,NA,0.415107,USD,Azure Retail Prices API,2025-12-18T04:47:09.251112 +AZURE,canadaeast,Standard_E16s_v4,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:47:08.336847 +AZURE,canadaeast,Standard_E16s_v5,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:47:08.336690 +AZURE,canadaeast,Standard_E16s_v5,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:47:09.250250 +AZURE,canadaeast,Standard_E16s_v5,reserved_3y,NA,0.408486,USD,Azure Retail Prices API,2025-12-18T04:47:09.250253 +AZURE,canadaeast,Standard_E16s_v5,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:47:08.336461 +AZURE,canadaeast,Standard_E20a_v4,on_demand,NA,1.38,USD,Azure Retail Prices API,2025-12-18T04:47:08.336784 +AZURE,canadaeast,Standard_E20a_v4,reserved_1y,NA,0.814155,USD,Azure Retail Prices API,2025-12-18T04:47:09.250310 +AZURE,canadaeast,Standard_E20a_v4,reserved_3y,NA,0.524391,USD,Azure Retail Prices API,2025-12-18T04:47:09.250313 +AZURE,canadaeast,Standard_E20a_v4,spot,NA,0.255024,USD,Azure Retail Prices API,2025-12-18T04:47:08.336414 +AZURE,canadaeast,Standard_E20ads_v5,on_demand,NA,2.36,USD,Azure Retail Prices API,2025-12-18T04:47:08.337054 +AZURE,canadaeast,Standard_E20ads_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:47:09.251006 +AZURE,canadaeast,Standard_E20ads_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:47:09.251009 +AZURE,canadaeast,Standard_E20ads_v5,spot,NA,0.266112,USD,Azure Retail Prices API,2025-12-18T04:47:08.337549 +AZURE,canadaeast,Standard_E20ads_v6,on_demand,NA,1.62,USD,Azure Retail Prices API,2025-12-18T04:47:08.336676 +AZURE,canadaeast,Standard_E20ads_v6,reserved_1y,NA,0.955822,USD,Azure Retail Prices API,2025-12-18T04:47:09.250239 +AZURE,canadaeast,Standard_E20ads_v6,reserved_3y,NA,0.615601,USD,Azure Retail Prices API,2025-12-18T04:47:09.250241 +AZURE,canadaeast,Standard_E20ads_v6,spot,NA,0.299376,USD,Azure Retail Prices API,2025-12-18T04:47:08.337051 +AZURE,canadaeast,Standard_E20as_v4,on_demand,NA,1.38,USD,Azure Retail Prices API,2025-12-18T04:47:08.336796 +AZURE,canadaeast,Standard_E20as_v4,reserved_1y,NA,0.814155,USD,Azure Retail Prices API,2025-12-18T04:47:09.250326 +AZURE,canadaeast,Standard_E20as_v4,reserved_3y,NA,0.524391,USD,Azure Retail Prices API,2025-12-18T04:47:09.250328 +AZURE,canadaeast,Standard_E20as_v4,spot,NA,0.255024,USD,Azure Retail Prices API,2025-12-18T04:47:08.336173 +AZURE,canadaeast,Standard_E20as_v5,on_demand,NA,2.16,USD,Azure Retail Prices API,2025-12-18T04:47:08.336870 +AZURE,canadaeast,Standard_E20as_v5,reserved_1y,NA,0.731621,USD,Azure Retail Prices API,2025-12-18T04:47:09.250550 +AZURE,canadaeast,Standard_E20as_v5,reserved_3y,NA,0.471195,USD,Azure Retail Prices API,2025-12-18T04:47:09.250553 +AZURE,canadaeast,Standard_E20as_v5,spot,NA,0.229152,USD,Azure Retail Prices API,2025-12-18T04:47:08.336932 +AZURE,canadaeast,Standard_E20d_v4,on_demand,NA,1.58,USD,Azure Retail Prices API,2025-12-18T04:47:08.337231 +AZURE,canadaeast,Standard_E20d_v4,reserved_1y,NA,0.929224,USD,Azure Retail Prices API,2025-12-18T04:47:09.250743 +AZURE,canadaeast,Standard_E20d_v4,reserved_3y,NA,0.593988,USD,Azure Retail Prices API,2025-12-18T04:47:09.250746 +AZURE,canadaeast,Standard_E20d_v4,spot,NA,0.291984,USD,Azure Retail Prices API,2025-12-18T04:47:08.337243 +AZURE,canadaeast,Standard_E20ds_v4,on_demand,NA,1.58,USD,Azure Retail Prices API,2025-12-18T04:47:08.336198 +AZURE,canadaeast,Standard_E20ds_v4,reserved_1y,NA,0.929224,USD,Azure Retail Prices API,2025-12-18T04:47:09.249788 +AZURE,canadaeast,Standard_E20ds_v4,reserved_3y,NA,0.593988,USD,Azure Retail Prices API,2025-12-18T04:47:09.249791 +AZURE,canadaeast,Standard_E20ds_v4,spot,NA,0.291984,USD,Azure Retail Prices API,2025-12-18T04:47:08.336673 +AZURE,canadaeast,Standard_E20ds_v5,on_demand,NA,1.58,USD,Azure Retail Prices API,2025-12-18T04:47:08.336858 +AZURE,canadaeast,Standard_E20ds_v5,reserved_1y,NA,0.932192,USD,Azure Retail Prices API,2025-12-18T04:47:09.250400 +AZURE,canadaeast,Standard_E20ds_v5,reserved_3y,NA,0.600419,USD,Azure Retail Prices API,2025-12-18T04:47:09.250404 +AZURE,canadaeast,Standard_E20ds_v5,spot,NA,0.291984,USD,Azure Retail Prices API,2025-12-18T04:47:08.336334 +AZURE,canadaeast,Standard_E20ds_v6,on_demand,NA,1.791,USD,Azure Retail Prices API,2025-12-18T04:47:08.337225 +AZURE,canadaeast,Standard_E20ds_v6,reserved_1y,NA,1.110388,USD,Azure Retail Prices API,2025-12-18T04:47:09.250730 +AZURE,canadaeast,Standard_E20ds_v6,reserved_3y,NA,0.698478,USD,Azure Retail Prices API,2025-12-18T04:47:09.250735 +AZURE,canadaeast,Standard_E20ds_v6,spot,NA,0.330977,USD,Azure Retail Prices API,2025-12-18T04:47:08.337529 +AZURE,canadaeast,Standard_E20s_v4,on_demand,NA,1.38,USD,Azure Retail Prices API,2025-12-18T04:47:08.336551 +AZURE,canadaeast,Standard_E20s_v4,reserved_1y,NA,0.811644,USD,Azure Retail Prices API,2025-12-18T04:47:09.250113 +AZURE,canadaeast,Standard_E20s_v4,reserved_3y,NA,0.518836,USD,Azure Retail Prices API,2025-12-18T04:47:09.250116 +AZURE,canadaeast,Standard_E20s_v4,spot,NA,0.255024,USD,Azure Retail Prices API,2025-12-18T04:47:08.337205 +AZURE,canadaeast,Standard_E20s_v5,on_demand,NA,1.38,USD,Azure Retail Prices API,2025-12-18T04:47:08.337397 +AZURE,canadaeast,Standard_E20s_v5,reserved_1y,NA,0.814155,USD,Azure Retail Prices API,2025-12-18T04:47:09.250936 +AZURE,canadaeast,Standard_E20s_v5,reserved_3y,NA,0.510616,USD,Azure Retail Prices API,2025-12-18T04:47:09.250941 +AZURE,canadaeast,Standard_E20s_v5,spot,NA,0.255024,USD,Azure Retail Prices API,2025-12-18T04:47:08.337492 +AZURE,canadaeast,Standard_E2_v3,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:47:08.336030 +AZURE,canadaeast,Standard_E2_v3,reserved_1y,NA,0.085845,USD,Azure Retail Prices API,2025-12-18T04:47:09.249601 +AZURE,canadaeast,Standard_E2_v3,reserved_3y,NA,0.054909,USD,Azure Retail Prices API,2025-12-18T04:47:09.249604 +AZURE,canadaeast,Standard_E2_v3,spot,NA,0.026981,USD,Azure Retail Prices API,2025-12-18T04:47:08.337377 +AZURE,canadaeast,Standard_E2ads_v6,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:47:08.336918 +AZURE,canadaeast,Standard_E2ads_v6,reserved_1y,NA,0.095548,USD,Azure Retail Prices API,2025-12-18T04:47:09.250474 +AZURE,canadaeast,Standard_E2ads_v6,reserved_3y,NA,0.061568,USD,Azure Retail Prices API,2025-12-18T04:47:09.250477 +AZURE,canadaeast,Standard_E2ads_v6,spot,NA,0.029938,USD,Azure Retail Prices API,2025-12-18T04:47:08.336603 +AZURE,canadaeast,Standard_E2ds_v5,on_demand,NA,0.158,USD,Azure Retail Prices API,2025-12-18T04:47:08.336490 +AZURE,canadaeast,Standard_E2ds_v5,reserved_1y,NA,0.093265,USD,Azure Retail Prices API,2025-12-18T04:47:09.250069 +AZURE,canadaeast,Standard_E2ds_v5,reserved_3y,NA,0.060046,USD,Azure Retail Prices API,2025-12-18T04:47:09.250072 +AZURE,canadaeast,Standard_E2ds_v5,spot,NA,0.029198,USD,Azure Retail Prices API,2025-12-18T04:47:08.336093 +AZURE,canadaeast,Standard_E2ds_v6,on_demand,NA,0.179,USD,Azure Retail Prices API,2025-12-18T04:47:08.336450 +AZURE,canadaeast,Standard_E2ds_v6,reserved_1y,NA,0.111073,USD,Azure Retail Prices API,2025-12-18T04:47:09.250032 +AZURE,canadaeast,Standard_E2ds_v6,reserved_3y,NA,0.069863,USD,Azure Retail Prices API,2025-12-18T04:47:09.250049 +AZURE,canadaeast,Standard_E2ds_v6,spot,NA,0.033079,USD,Azure Retail Prices API,2025-12-18T04:47:08.336977 +AZURE,canadaeast,Standard_E2pds_v6,on_demand,NA,0.13,USD,Azure Retail Prices API,2025-12-18T04:47:08.336148 +AZURE,canadaeast,Standard_E2pds_v6,reserved_1y,NA,0.076712,USD,Azure Retail Prices API,2025-12-18T04:47:09.249736 +AZURE,canadaeast,Standard_E2pds_v6,reserved_3y,NA,0.049391,USD,Azure Retail Prices API,2025-12-18T04:47:09.249738 +AZURE,canadaeast,Standard_E2pds_v6,spot,NA,0.024024,USD,Azure Retail Prices API,2025-12-18T04:47:08.337552 +AZURE,canadaeast,Standard_E32_v3,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:47:08.337163 +AZURE,canadaeast,Standard_E32_v3,reserved_1y,NA,1.373516,USD,Azure Retail Prices API,2025-12-18T04:47:09.250678 +AZURE,canadaeast,Standard_E32_v3,reserved_3y,NA,0.878349,USD,Azure Retail Prices API,2025-12-18T04:47:09.250681 +AZURE,canadaeast,Standard_E32_v3,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:47:08.337464 +AZURE,canadaeast,Standard_E32a_v4,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:47:08.336441 +AZURE,canadaeast,Standard_E32a_v4,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:47:09.250021 +AZURE,canadaeast,Standard_E32a_v4,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:47:09.250024 +AZURE,canadaeast,Standard_E32a_v4,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:47:08.336473 +AZURE,canadaeast,Standard_E32ads_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:47:08.336349 +AZURE,canadaeast,Standard_E32ads_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:47:09.249932 +AZURE,canadaeast,Standard_E32ads_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:47:09.249935 +AZURE,canadaeast,Standard_E32ads_v5,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:47:08.336464 +AZURE,canadaeast,Standard_E32ads_v6,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:47:08.336262 +AZURE,canadaeast,Standard_E32ads_v6,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:47:09.249859 +AZURE,canadaeast,Standard_E32ads_v6,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:47:09.249862 +AZURE,canadaeast,Standard_E32ads_v6,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:47:08.336693 +AZURE,canadaeast,Standard_E32as_v4,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:47:08.336617 +AZURE,canadaeast,Standard_E32as_v4,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:47:09.250183 +AZURE,canadaeast,Standard_E32as_v4,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:47:09.250186 +AZURE,canadaeast,Standard_E32as_v4,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:47:08.336050 +AZURE,canadaeast,Standard_E32as_v5,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:47:08.336986 +AZURE,canadaeast,Standard_E32as_v5,reserved_1y,NA,1.170548,USD,Azure Retail Prices API,2025-12-18T04:47:09.250556 +AZURE,canadaeast,Standard_E32as_v5,reserved_3y,NA,0.753919,USD,Azure Retail Prices API,2025-12-18T04:47:09.250559 +AZURE,canadaeast,Standard_E32as_v5,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:47:08.337403 +AZURE,canadaeast,Standard_E32d_v4,on_demand,NA,2.528,USD,Azure Retail Prices API,2025-12-18T04:47:08.336047 +AZURE,canadaeast,Standard_E32d_v4,reserved_1y,NA,1.486416,USD,Azure Retail Prices API,2025-12-18T04:47:09.249619 +AZURE,canadaeast,Standard_E32d_v4,reserved_3y,NA,0.950533,USD,Azure Retail Prices API,2025-12-18T04:47:09.249622 +AZURE,canadaeast,Standard_E32d_v4,spot,NA,0.467174,USD,Azure Retail Prices API,2025-12-18T04:47:08.336423 +AZURE,canadaeast,Standard_E32ds_v4,on_demand,NA,2.528,USD,Azure Retail Prices API,2025-12-18T04:47:08.337272 +AZURE,canadaeast,Standard_E32ds_v4,reserved_1y,NA,1.486416,USD,Azure Retail Prices API,2025-12-18T04:47:09.250795 +AZURE,canadaeast,Standard_E32ds_v4,reserved_3y,NA,0.950533,USD,Azure Retail Prices API,2025-12-18T04:47:09.250798 +AZURE,canadaeast,Standard_E32ds_v4,spot,NA,0.467174,USD,Azure Retail Prices API,2025-12-18T04:47:08.337210 +AZURE,canadaeast,Standard_E32ds_v5,on_demand,NA,2.528,USD,Azure Retail Prices API,2025-12-18T04:47:08.336895 +AZURE,canadaeast,Standard_E32ds_v5,reserved_1y,NA,1.491553,USD,Azure Retail Prices API,2025-12-18T04:47:09.250429 +AZURE,canadaeast,Standard_E32ds_v5,reserved_3y,NA,0.960654,USD,Azure Retail Prices API,2025-12-18T04:47:09.250432 +AZURE,canadaeast,Standard_E32ds_v5,spot,NA,0.467174,USD,Azure Retail Prices API,2025-12-18T04:47:08.336852 +AZURE,canadaeast,Standard_E32ds_v6,on_demand,NA,2.866,USD,Azure Retail Prices API,2025-12-18T04:47:08.337571 +AZURE,canadaeast,Standard_E32ds_v6,reserved_1y,NA,1.776712,USD,Azure Retail Prices API,2025-12-18T04:47:09.251120 +AZURE,canadaeast,Standard_E32ds_v6,reserved_3y,NA,1.11758,USD,Azure Retail Prices API,2025-12-18T04:47:09.251123 +AZURE,canadaeast,Standard_E32ds_v6,spot,NA,0.529637,USD,Azure Retail Prices API,2025-12-18T04:47:08.336995 +AZURE,canadaeast,Standard_E32pds_v6,on_demand,NA,2.08,USD,Azure Retail Prices API,2025-12-18T04:47:08.336096 +AZURE,canadaeast,Standard_E32pds_v6,reserved_1y,NA,1.227169,USD,Azure Retail Prices API,2025-12-18T04:47:09.249679 +AZURE,canadaeast,Standard_E32pds_v6,reserved_3y,NA,0.790411,USD,Azure Retail Prices API,2025-12-18T04:47:09.249683 +AZURE,canadaeast,Standard_E32pds_v6,spot,NA,0.384384,USD,Azure Retail Prices API,2025-12-18T04:47:08.336557 +AZURE,canadaeast,Standard_E32ps_v6,on_demand,NA,1.638,USD,Azure Retail Prices API,2025-12-18T04:47:08.336912 +AZURE,canadaeast,Standard_E32ps_v6,reserved_1y,NA,0.966667,USD,Azure Retail Prices API,2025-12-18T04:47:09.250469 +AZURE,canadaeast,Standard_E32ps_v6,reserved_3y,NA,0.622603,USD,Azure Retail Prices API,2025-12-18T04:47:09.250472 +AZURE,canadaeast,Standard_E32ps_v6,spot,NA,0.302702,USD,Azure Retail Prices API,2025-12-18T04:47:08.336294 +AZURE,canadaeast,Standard_E32s_v3,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:47:08.336838 +AZURE,canadaeast,Standard_E32s_v3,reserved_1y,NA,1.373516,USD,Azure Retail Prices API,2025-12-18T04:47:09.250384 +AZURE,canadaeast,Standard_E32s_v3,reserved_3y,NA,0.878349,USD,Azure Retail Prices API,2025-12-18T04:47:09.250387 +AZURE,canadaeast,Standard_E32s_v3,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:47:08.336829 +AZURE,canadaeast,Standard_E32s_v4,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:47:08.336131 +AZURE,canadaeast,Standard_E32s_v4,reserved_1y,NA,1.298288,USD,Azure Retail Prices API,2025-12-18T04:47:09.249730 +AZURE,canadaeast,Standard_E32s_v4,reserved_3y,NA,0.830213,USD,Azure Retail Prices API,2025-12-18T04:47:09.249733 +AZURE,canadaeast,Standard_E32s_v4,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:47:08.336886 +AZURE,canadaeast,Standard_E32s_v5,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:47:08.337505 +AZURE,canadaeast,Standard_E32s_v5,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:47:09.251036 +AZURE,canadaeast,Standard_E32s_v5,reserved_3y,NA,0.816971,USD,Azure Retail Prices API,2025-12-18T04:47:09.251039 +AZURE,canadaeast,Standard_E32s_v5,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:47:08.336666 +AZURE,canadaeast,Standard_E48a_v4,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:08.336508 +AZURE,canadaeast,Standard_E48a_v4,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:47:09.250085 +AZURE,canadaeast,Standard_E48a_v4,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:47:09.250088 +AZURE,canadaeast,Standard_E48a_v4,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:47:08.336444 +AZURE,canadaeast,Standard_E48ads_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:47:08.336200 +AZURE,canadaeast,Standard_E48ads_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:47:09.249794 +AZURE,canadaeast,Standard_E48ads_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:47:09.249797 +AZURE,canadaeast,Standard_E48ads_v5,spot,NA,0.638669,USD,Azure Retail Prices API,2025-12-18T04:47:08.336420 +AZURE,canadaeast,Standard_E48ads_v6,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:47:08.337476 +AZURE,canadaeast,Standard_E48ads_v6,reserved_1y,NA,2.29395,USD,Azure Retail Prices API,2025-12-18T04:47:09.251012 +AZURE,canadaeast,Standard_E48ads_v6,reserved_3y,NA,1.477435,USD,Azure Retail Prices API,2025-12-18T04:47:09.251015 +AZURE,canadaeast,Standard_E48ads_v6,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:47:08.336748 +AZURE,canadaeast,Standard_E48as_v4,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:08.336371 +AZURE,canadaeast,Standard_E48as_v4,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:47:09.249959 +AZURE,canadaeast,Standard_E48as_v4,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:47:09.249962 +AZURE,canadaeast,Standard_E48as_v4,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:47:08.337148 +AZURE,canadaeast,Standard_E48as_v5,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:47:08.336254 +AZURE,canadaeast,Standard_E48as_v5,reserved_1y,NA,1.755822,USD,Azure Retail Prices API,2025-12-18T04:47:09.249841 +AZURE,canadaeast,Standard_E48as_v5,reserved_3y,NA,1.130898,USD,Azure Retail Prices API,2025-12-18T04:47:09.249844 +AZURE,canadaeast,Standard_E48as_v5,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:47:08.336239 +AZURE,canadaeast,Standard_E48d_v4,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:47:08.336548 +AZURE,canadaeast,Standard_E48d_v4,reserved_1y,NA,2.22968,USD,Azure Retail Prices API,2025-12-18T04:47:09.250108 +AZURE,canadaeast,Standard_E48d_v4,reserved_3y,NA,1.425799,USD,Azure Retail Prices API,2025-12-18T04:47:09.250110 +AZURE,canadaeast,Standard_E48d_v4,spot,NA,0.700762,USD,Azure Retail Prices API,2025-12-18T04:47:08.337431 +AZURE,canadaeast,Standard_E48ds_v4,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:47:08.336600 +AZURE,canadaeast,Standard_E48ds_v4,reserved_1y,NA,2.22968,USD,Azure Retail Prices API,2025-12-18T04:47:09.250172 +AZURE,canadaeast,Standard_E48ds_v4,reserved_3y,NA,1.425799,USD,Azure Retail Prices API,2025-12-18T04:47:09.250175 +AZURE,canadaeast,Standard_E48ds_v4,spot,NA,0.700762,USD,Azure Retail Prices API,2025-12-18T04:47:08.337532 +AZURE,canadaeast,Standard_E48ds_v5,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:47:08.337228 +AZURE,canadaeast,Standard_E48ds_v5,reserved_1y,NA,2.237329,USD,Azure Retail Prices API,2025-12-18T04:47:09.250738 +AZURE,canadaeast,Standard_E48ds_v5,reserved_3y,NA,1.440944,USD,Azure Retail Prices API,2025-12-18T04:47:09.250740 +AZURE,canadaeast,Standard_E48ds_v5,spot,NA,0.700762,USD,Azure Retail Prices API,2025-12-18T04:47:08.336221 +AZURE,canadaeast,Standard_E48ds_v6,on_demand,NA,4.298,USD,Azure Retail Prices API,2025-12-18T04:47:08.337297 +AZURE,canadaeast,Standard_E48ds_v6,reserved_1y,NA,2.664954,USD,Azure Retail Prices API,2025-12-18T04:47:09.250814 +AZURE,canadaeast,Standard_E48ds_v6,reserved_3y,NA,1.67637,USD,Azure Retail Prices API,2025-12-18T04:47:09.250816 +AZURE,canadaeast,Standard_E48ds_v6,spot,NA,0.79427,USD,Azure Retail Prices API,2025-12-18T04:47:08.337419 +AZURE,canadaeast,Standard_E48pds_v6,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:47:08.336580 +AZURE,canadaeast,Standard_E48pds_v6,reserved_1y,NA,1.840753,USD,Azure Retail Prices API,2025-12-18T04:47:09.250143 +AZURE,canadaeast,Standard_E48pds_v6,reserved_3y,NA,1.185616,USD,Azure Retail Prices API,2025-12-18T04:47:09.250146 +AZURE,canadaeast,Standard_E48pds_v6,spot,NA,0.576576,USD,Azure Retail Prices API,2025-12-18T04:47:08.336626 +AZURE,canadaeast,Standard_E48ps_v6,on_demand,NA,2.458,USD,Azure Retail Prices API,2025-12-18T04:47:08.336574 +AZURE,canadaeast,Standard_E48ps_v6,reserved_1y,NA,1.45,USD,Azure Retail Prices API,2025-12-18T04:47:09.250138 +AZURE,canadaeast,Standard_E48ps_v6,reserved_3y,NA,0.933904,USD,Azure Retail Prices API,2025-12-18T04:47:09.250141 +AZURE,canadaeast,Standard_E48ps_v6,spot,NA,0.454238,USD,Azure Retail Prices API,2025-12-18T04:47:08.337338 +AZURE,canadaeast,Standard_E48s_v4,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:08.336903 +AZURE,canadaeast,Standard_E48s_v4,reserved_1y,NA,1.947489,USD,Azure Retail Prices API,2025-12-18T04:47:09.250452 +AZURE,canadaeast,Standard_E48s_v4,reserved_3y,NA,1.24532,USD,Azure Retail Prices API,2025-12-18T04:47:09.250455 +AZURE,canadaeast,Standard_E48s_v4,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:47:08.336880 +AZURE,canadaeast,Standard_E48s_v5,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:47:08.337010 +AZURE,canadaeast,Standard_E48s_v5,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:47:09.250569 +AZURE,canadaeast,Standard_E48s_v5,reserved_3y,NA,1.225457,USD,Azure Retail Prices API,2025-12-18T04:47:09.250572 +AZURE,canadaeast,Standard_E48s_v5,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:47:08.336009 +AZURE,canadaeast,Standard_E4_v3,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:47:08.337358 +AZURE,canadaeast,Standard_E4_v3,reserved_1y,NA,0.171689,USD,Azure Retail Prices API,2025-12-18T04:47:09.250882 +AZURE,canadaeast,Standard_E4_v3,reserved_3y,NA,0.109779,USD,Azure Retail Prices API,2025-12-18T04:47:09.250886 +AZURE,canadaeast,Standard_E4_v3,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:47:08.336679 +AZURE,canadaeast,Standard_E4a_v4,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:47:08.337278 +AZURE,canadaeast,Standard_E4a_v4,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:47:09.250801 +AZURE,canadaeast,Standard_E4a_v4,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:47:09.250804 +AZURE,canadaeast,Standard_E4a_v4,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:47:08.336718 +AZURE,canadaeast,Standard_E4ads_v5,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:47:08.336012 +AZURE,canadaeast,Standard_E4ads_v5,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:47:09.249937 +AZURE,canadaeast,Standard_E4ads_v5,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:47:09.249940 +AZURE,canadaeast,Standard_E4ads_v5,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:47:08.336525 +AZURE,canadaeast,Standard_E4ads_v6,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:47:08.337440 +AZURE,canadaeast,Standard_E4ads_v6,reserved_1y,NA,0.19121,USD,Azure Retail Prices API,2025-12-18T04:47:09.250984 +AZURE,canadaeast,Standard_E4ads_v6,reserved_3y,NA,0.123135,USD,Azure Retail Prices API,2025-12-18T04:47:09.250987 +AZURE,canadaeast,Standard_E4ads_v6,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:47:08.336163 +AZURE,canadaeast,Standard_E4as_v4,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:47:08.336900 +AZURE,canadaeast,Standard_E4as_v4,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:47:09.250446 +AZURE,canadaeast,Standard_E4as_v4,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:47:09.250449 +AZURE,canadaeast,Standard_E4as_v4,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:47:08.336192 +AZURE,canadaeast,Standard_E4as_v5,on_demand,NA,0.248,USD,Azure Retail Prices API,2025-12-18T04:47:08.336586 +AZURE,canadaeast,Standard_E4as_v5,reserved_1y,NA,0.146347,USD,Azure Retail Prices API,2025-12-18T04:47:09.250149 +AZURE,canadaeast,Standard_E4as_v5,reserved_3y,NA,0.094254,USD,Azure Retail Prices API,2025-12-18T04:47:09.250152 +AZURE,canadaeast,Standard_E4as_v5,spot,NA,0.04583,USD,Azure Retail Prices API,2025-12-18T04:47:08.337263 +AZURE,canadaeast,Standard_E4d_v4,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:47:08.336027 +AZURE,canadaeast,Standard_E4d_v4,reserved_1y,NA,0.185845,USD,Azure Retail Prices API,2025-12-18T04:47:09.249583 +AZURE,canadaeast,Standard_E4d_v4,reserved_3y,NA,0.118798,USD,Azure Retail Prices API,2025-12-18T04:47:09.249586 +AZURE,canadaeast,Standard_E4d_v4,spot,NA,0.058397,USD,Azure Retail Prices API,2025-12-18T04:47:08.337324 +AZURE,canadaeast,Standard_E4ds_v4,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:47:08.336924 +AZURE,canadaeast,Standard_E4ds_v4,reserved_1y,NA,0.185845,USD,Azure Retail Prices API,2025-12-18T04:47:09.250480 +AZURE,canadaeast,Standard_E4ds_v4,reserved_3y,NA,0.118798,USD,Azure Retail Prices API,2025-12-18T04:47:09.250483 +AZURE,canadaeast,Standard_E4ds_v4,spot,NA,0.058397,USD,Azure Retail Prices API,2025-12-18T04:47:08.336351 +AZURE,canadaeast,Standard_E4ds_v5,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:47:08.337341 +AZURE,canadaeast,Standard_E4ds_v5,reserved_1y,NA,0.186416,USD,Azure Retail Prices API,2025-12-18T04:47:09.250858 +AZURE,canadaeast,Standard_E4ds_v5,reserved_3y,NA,0.120091,USD,Azure Retail Prices API,2025-12-18T04:47:09.250863 +AZURE,canadaeast,Standard_E4ds_v5,spot,NA,0.058397,USD,Azure Retail Prices API,2025-12-18T04:47:08.337392 +AZURE,canadaeast,Standard_E4ds_v6,on_demand,NA,0.358,USD,Azure Retail Prices API,2025-12-18T04:47:08.336123 +AZURE,canadaeast,Standard_E4ds_v6,reserved_1y,NA,0.222032,USD,Azure Retail Prices API,2025-12-18T04:47:09.249714 +AZURE,canadaeast,Standard_E4ds_v6,reserved_3y,NA,0.139688,USD,Azure Retail Prices API,2025-12-18T04:47:09.249717 +AZURE,canadaeast,Standard_E4ds_v6,spot,NA,0.066158,USD,Azure Retail Prices API,2025-12-18T04:47:08.336989 +AZURE,canadaeast,Standard_E4pds_v6,on_demand,NA,0.26,USD,Azure Retail Prices API,2025-12-18T04:47:08.336762 +AZURE,canadaeast,Standard_E4pds_v6,reserved_1y,NA,0.153425,USD,Azure Retail Prices API,2025-12-18T04:47:09.250299 +AZURE,canadaeast,Standard_E4pds_v6,reserved_3y,NA,0.098782,USD,Azure Retail Prices API,2025-12-18T04:47:09.250302 +AZURE,canadaeast,Standard_E4pds_v6,spot,NA,0.048048,USD,Azure Retail Prices API,2025-12-18T04:47:08.336545 +AZURE,canadaeast,Standard_E4ps_v6,on_demand,NA,0.205,USD,Azure Retail Prices API,2025-12-18T04:47:08.336778 +AZURE,canadaeast,Standard_E4ps_v6,reserved_1y,NA,0.120776,USD,Azure Retail Prices API,2025-12-18T04:47:09.250305 +AZURE,canadaeast,Standard_E4ps_v6,reserved_3y,NA,0.077816,USD,Azure Retail Prices API,2025-12-18T04:47:09.250307 +AZURE,canadaeast,Standard_E4ps_v6,spot,NA,0.037884,USD,Azure Retail Prices API,2025-12-18T04:47:08.336611 +AZURE,canadaeast,Standard_E4s_v4,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:47:08.336170 +AZURE,canadaeast,Standard_E4s_v4,reserved_1y,NA,0.162329,USD,Azure Retail Prices API,2025-12-18T04:47:09.249762 +AZURE,canadaeast,Standard_E4s_v4,reserved_3y,NA,0.103767,USD,Azure Retail Prices API,2025-12-18T04:47:09.249767 +AZURE,canadaeast,Standard_E4s_v4,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:47:08.337007 +AZURE,canadaeast,Standard_E4s_v5,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:47:08.336844 +AZURE,canadaeast,Standard_E4s_v5,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:47:09.250390 +AZURE,canadaeast,Standard_E4s_v5,reserved_3y,NA,0.102131,USD,Azure Retail Prices API,2025-12-18T04:47:09.250392 +AZURE,canadaeast,Standard_E4s_v5,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:47:08.336283 +AZURE,canadaeast,Standard_E64_v3,on_demand,NA,3.974,USD,Azure Retail Prices API,2025-12-18T04:47:08.335986 +AZURE,canadaeast,Standard_E64_v3,reserved_1y,NA,2.589155,USD,Azure Retail Prices API,2025-12-18T04:47:09.249539 +AZURE,canadaeast,Standard_E64_v3,reserved_3y,NA,1.655632,USD,Azure Retail Prices API,2025-12-18T04:47:09.249554 +AZURE,canadaeast,Standard_E64_v3,spot,NA,0.734395,USD,Azure Retail Prices API,2025-12-18T04:47:08.336735 +AZURE,canadaeast,Standard_E64a_v4,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:47:08.337364 +AZURE,canadaeast,Standard_E64a_v4,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:47:09.250889 +AZURE,canadaeast,Standard_E64a_v4,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:47:09.250892 +AZURE,canadaeast,Standard_E64a_v4,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:47:08.337349 +AZURE,canadaeast,Standard_E64ads_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:47:08.337016 +AZURE,canadaeast,Standard_E64ads_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:47:09.250576 +AZURE,canadaeast,Standard_E64ads_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:47:09.250582 +AZURE,canadaeast,Standard_E64ads_v5,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:47:08.336085 +AZURE,canadaeast,Standard_E64ads_v6,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:47:08.336411 +AZURE,canadaeast,Standard_E64ads_v6,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:47:09.249987 +AZURE,canadaeast,Standard_E64ads_v6,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:47:09.249991 +AZURE,canadaeast,Standard_E64ads_v6,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:47:08.336435 +AZURE,canadaeast,Standard_E64as_v4,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:47:08.337428 +AZURE,canadaeast,Standard_E64as_v4,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:47:09.250966 +AZURE,canadaeast,Standard_E64as_v4,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:47:09.250969 +AZURE,canadaeast,Standard_E64as_v4,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:47:08.336572 +AZURE,canadaeast,Standard_E64as_v5,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:47:08.336108 +AZURE,canadaeast,Standard_E64as_v5,reserved_1y,NA,2.341096,USD,Azure Retail Prices API,2025-12-18T04:47:09.250531 +AZURE,canadaeast,Standard_E64as_v5,reserved_3y,NA,1.507839,USD,Azure Retail Prices API,2025-12-18T04:47:09.250536 +AZURE,canadaeast,Standard_E64as_v5,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:47:08.336660 +AZURE,canadaeast,Standard_E64d_v4,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:47:08.337315 +AZURE,canadaeast,Standard_E64d_v4,reserved_1y,NA,2.972945,USD,Azure Retail Prices API,2025-12-18T04:47:09.250824 +AZURE,canadaeast,Standard_E64d_v4,reserved_3y,NA,1.901065,USD,Azure Retail Prices API,2025-12-18T04:47:09.250828 +AZURE,canadaeast,Standard_E64d_v4,spot,NA,0.934349,USD,Azure Retail Prices API,2025-12-18T04:47:08.336554 +AZURE,canadaeast,Standard_E64ds_v4,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:47:08.336076 +AZURE,canadaeast,Standard_E64ds_v4,reserved_1y,NA,2.972945,USD,Azure Retail Prices API,2025-12-18T04:47:09.249656 +AZURE,canadaeast,Standard_E64ds_v4,reserved_3y,NA,1.901065,USD,Azure Retail Prices API,2025-12-18T04:47:09.249659 +AZURE,canadaeast,Standard_E64ds_v4,spot,NA,0.934349,USD,Azure Retail Prices API,2025-12-18T04:47:08.337447 +AZURE,canadaeast,Standard_E64ds_v5,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:47:08.336314 +AZURE,canadaeast,Standard_E64ds_v5,reserved_1y,NA,2.982991,USD,Azure Retail Prices API,2025-12-18T04:47:09.249899 +AZURE,canadaeast,Standard_E64ds_v5,reserved_3y,NA,1.921271,USD,Azure Retail Prices API,2025-12-18T04:47:09.249902 +AZURE,canadaeast,Standard_E64ds_v5,spot,NA,0.934349,USD,Azure Retail Prices API,2025-12-18T04:47:08.337540 +AZURE,canadaeast,Standard_E64ds_v6,on_demand,NA,5.731,USD,Azure Retail Prices API,2025-12-18T04:47:08.336805 +AZURE,canadaeast,Standard_E64ds_v6,reserved_1y,NA,3.553311,USD,Azure Retail Prices API,2025-12-18T04:47:09.250331 +AZURE,canadaeast,Standard_E64ds_v6,reserved_3y,NA,2.23516,USD,Azure Retail Prices API,2025-12-18T04:47:09.250334 +AZURE,canadaeast,Standard_E64ds_v6,spot,NA,1.059089,USD,Azure Retail Prices API,2025-12-18T04:47:08.336340 +AZURE,canadaeast,Standard_E64pds_v6,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:47:08.336271 +AZURE,canadaeast,Standard_E64pds_v6,reserved_1y,NA,2.454452,USD,Azure Retail Prices API,2025-12-18T04:47:09.249871 +AZURE,canadaeast,Standard_E64pds_v6,reserved_3y,NA,1.580784,USD,Azure Retail Prices API,2025-12-18T04:47:09.249874 +AZURE,canadaeast,Standard_E64pds_v6,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:47:08.336288 +AZURE,canadaeast,Standard_E64ps_v6,on_demand,NA,3.277,USD,Azure Retail Prices API,2025-12-18T04:47:08.336417 +AZURE,canadaeast,Standard_E64ps_v6,reserved_1y,NA,1.933333,USD,Azure Retail Prices API,2025-12-18T04:47:09.249996 +AZURE,canadaeast,Standard_E64ps_v6,reserved_3y,NA,1.245167,USD,Azure Retail Prices API,2025-12-18T04:47:09.250000 +AZURE,canadaeast,Standard_E64ps_v6,spot,NA,0.60559,USD,Azure Retail Prices API,2025-12-18T04:47:08.337213 +AZURE,canadaeast,Standard_E64s_v3,on_demand,NA,3.974,USD,Azure Retail Prices API,2025-12-18T04:47:08.336059 +AZURE,canadaeast,Standard_E64s_v3,reserved_1y,NA,2.589155,USD,Azure Retail Prices API,2025-12-18T04:47:09.249632 +AZURE,canadaeast,Standard_E64s_v3,reserved_3y,NA,1.655632,USD,Azure Retail Prices API,2025-12-18T04:47:09.249634 +AZURE,canadaeast,Standard_E64s_v3,spot,NA,0.734395,USD,Azure Retail Prices API,2025-12-18T04:47:08.337535 +AZURE,canadaeast,Standard_E64s_v4,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:47:08.337159 +AZURE,canadaeast,Standard_E64s_v4,reserved_1y,NA,2.596575,USD,Azure Retail Prices API,2025-12-18T04:47:09.250672 +AZURE,canadaeast,Standard_E64s_v4,reserved_3y,NA,1.660426,USD,Azure Retail Prices API,2025-12-18T04:47:09.250675 +AZURE,canadaeast,Standard_E64s_v4,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:47:08.336485 +AZURE,canadaeast,Standard_E64s_v5,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:47:08.336195 +AZURE,canadaeast,Standard_E64s_v5,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:47:09.249782 +AZURE,canadaeast,Standard_E64s_v5,reserved_3y,NA,1.633904,USD,Azure Retail Prices API,2025-12-18T04:47:09.249786 +AZURE,canadaeast,Standard_E64s_v5,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:47:08.337395 +AZURE,canadaeast,Standard_E80ids_v4,on_demand,NA,6.32,USD,Azure Retail Prices API,2025-12-18T04:47:08.336185 +AZURE,canadaeast,Standard_E80ids_v4,reserved_1y,NA,3.716895,USD,Azure Retail Prices API,2025-12-18T04:47:09.249773 +AZURE,canadaeast,Standard_E80ids_v4,reserved_3y,NA,2.375951,USD,Azure Retail Prices API,2025-12-18T04:47:09.249777 +AZURE,canadaeast,Standard_E80ids_v4,spot,NA,1.167936,USD,Azure Retail Prices API,2025-12-18T04:47:08.336006 +AZURE,canadaeast,Standard_E80is_v4,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:47:08.337437 +AZURE,canadaeast,Standard_E80is_v4,reserved_1y,NA,3.246575,USD,Azure Retail Prices API,2025-12-18T04:47:09.250977 +AZURE,canadaeast,Standard_E80is_v4,reserved_3y,NA,2.075342,USD,Azure Retail Prices API,2025-12-18T04:47:09.250982 +AZURE,canadaeast,Standard_E80is_v4,spot,NA,1.020096,USD,Azure Retail Prices API,2025-12-18T04:47:08.336569 +AZURE,canadaeast,Standard_E8_v3,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:47:08.337152 +AZURE,canadaeast,Standard_E8_v3,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:47:09.250667 +AZURE,canadaeast,Standard_E8_v3,reserved_3y,NA,0.219597,USD,Azure Retail Prices API,2025-12-18T04:47:09.250670 +AZURE,canadaeast,Standard_E8_v3,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:47:08.336577 +AZURE,canadaeast,Standard_E8a_v4,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:47:08.336632 +AZURE,canadaeast,Standard_E8a_v4,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:47:09.250194 +AZURE,canadaeast,Standard_E8a_v4,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:47:09.250196 +AZURE,canadaeast,Standard_E8a_v4,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:47:08.336176 +AZURE,canadaeast,Standard_E8ads_v5,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:47:08.336808 +AZURE,canadaeast,Standard_E8ads_v5,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:47:09.250337 +AZURE,canadaeast,Standard_E8ads_v5,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:47:09.250341 +AZURE,canadaeast,Standard_E8ads_v5,spot,NA,0.106445,USD,Azure Retail Prices API,2025-12-18T04:47:08.336280 +AZURE,canadaeast,Standard_E8ads_v6,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:47:08.336088 +AZURE,canadaeast,Standard_E8ads_v6,reserved_1y,NA,0.382306,USD,Azure Retail Prices API,2025-12-18T04:47:09.249668 +AZURE,canadaeast,Standard_E8ads_v6,reserved_3y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:47:09.249670 +AZURE,canadaeast,Standard_E8ads_v6,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:47:08.337019 +AZURE,canadaeast,Standard_E8as_v4,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:47:08.336594 +AZURE,canadaeast,Standard_E8as_v4,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:47:09.250160 +AZURE,canadaeast,Standard_E8as_v4,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:47:09.250163 +AZURE,canadaeast,Standard_E8as_v4,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:47:08.337343 +AZURE,canadaeast,Standard_E8as_v5,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:47:08.336873 +AZURE,canadaeast,Standard_E8as_v5,reserved_1y,NA,0.292694,USD,Azure Retail Prices API,2025-12-18T04:47:09.250418 +AZURE,canadaeast,Standard_E8as_v5,reserved_3y,NA,0.18847,USD,Azure Retail Prices API,2025-12-18T04:47:09.250420 +AZURE,canadaeast,Standard_E8as_v5,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:47:08.336157 +AZURE,canadaeast,Standard_E8d_v4,on_demand,NA,0.632,USD,Azure Retail Prices API,2025-12-18T04:47:08.337512 +AZURE,canadaeast,Standard_E8d_v4,reserved_1y,NA,0.371575,USD,Azure Retail Prices API,2025-12-18T04:47:09.251042 +AZURE,canadaeast,Standard_E8d_v4,reserved_3y,NA,0.237633,USD,Azure Retail Prices API,2025-12-18T04:47:09.251045 +AZURE,canadaeast,Standard_E8d_v4,spot,NA,0.116794,USD,Azure Retail Prices API,2025-12-18T04:47:08.336823 +AZURE,canadaeast,Standard_E8ds_v4,on_demand,NA,0.632,USD,Azure Retail Prices API,2025-12-18T04:47:08.336670 +AZURE,canadaeast,Standard_E8ds_v4,reserved_1y,NA,0.371575,USD,Azure Retail Prices API,2025-12-18T04:47:09.250233 +AZURE,canadaeast,Standard_E8ds_v4,reserved_3y,NA,0.237633,USD,Azure Retail Prices API,2025-12-18T04:47:09.250236 +AZURE,canadaeast,Standard_E8ds_v4,spot,NA,0.116794,USD,Azure Retail Prices API,2025-12-18T04:47:08.336248 +AZURE,canadaeast,Standard_E8ds_v5,on_demand,NA,0.632,USD,Azure Retail Prices API,2025-12-18T04:47:08.336342 +AZURE,canadaeast,Standard_E8ds_v5,reserved_1y,NA,0.372831,USD,Azure Retail Prices API,2025-12-18T04:47:09.249921 +AZURE,canadaeast,Standard_E8ds_v5,reserved_3y,NA,0.240145,USD,Azure Retail Prices API,2025-12-18T04:47:09.249924 +AZURE,canadaeast,Standard_E8ds_v5,spot,NA,0.116794,USD,Azure Retail Prices API,2025-12-18T04:47:08.337555 +AZURE,canadaeast,Standard_E8ds_v6,on_demand,NA,0.716,USD,Azure Retail Prices API,2025-12-18T04:47:08.337203 +AZURE,canadaeast,Standard_E8ds_v6,reserved_1y,NA,0.444178,USD,Azure Retail Prices API,2025-12-18T04:47:09.250719 +AZURE,canadaeast,Standard_E8ds_v6,reserved_3y,NA,0.279414,USD,Azure Retail Prices API,2025-12-18T04:47:09.250722 +AZURE,canadaeast,Standard_E8ds_v6,spot,NA,0.132317,USD,Azure Retail Prices API,2025-12-18T04:47:08.337284 +AZURE,canadaeast,Standard_E8pds_v6,on_demand,NA,0.52,USD,Azure Retail Prices API,2025-12-18T04:47:08.336898 +AZURE,canadaeast,Standard_E8pds_v6,reserved_1y,NA,0.306849,USD,Azure Retail Prices API,2025-12-18T04:47:09.250434 +AZURE,canadaeast,Standard_E8pds_v6,reserved_3y,NA,0.197603,USD,Azure Retail Prices API,2025-12-18T04:47:09.250437 +AZURE,canadaeast,Standard_E8pds_v6,spot,NA,0.096096,USD,Azure Retail Prices API,2025-12-18T04:47:08.336312 +AZURE,canadaeast,Standard_E8ps_v6,on_demand,NA,0.41,USD,Azure Retail Prices API,2025-12-18T04:47:08.336534 +AZURE,canadaeast,Standard_E8ps_v6,reserved_1y,NA,0.241667,USD,Azure Retail Prices API,2025-12-18T04:47:09.250102 +AZURE,canadaeast,Standard_E8ps_v6,reserved_3y,NA,0.155632,USD,Azure Retail Prices API,2025-12-18T04:47:09.250105 +AZURE,canadaeast,Standard_E8ps_v6,spot,NA,0.075768,USD,Azure Retail Prices API,2025-12-18T04:47:08.337234 +AZURE,canadaeast,Standard_E8s_v3,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:47:08.336811 +AZURE,canadaeast,Standard_E8s_v3,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:47:09.250345 +AZURE,canadaeast,Standard_E8s_v3,reserved_3y,NA,0.219597,USD,Azure Retail Prices API,2025-12-18T04:47:09.250350 +AZURE,canadaeast,Standard_E8s_v3,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:47:08.337040 +AZURE,canadaeast,Standard_E8s_v4,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:47:08.336399 +AZURE,canadaeast,Standard_E8s_v4,reserved_1y,NA,0.324543,USD,Azure Retail Prices API,2025-12-18T04:47:09.249976 +AZURE,canadaeast,Standard_E8s_v4,reserved_3y,NA,0.207534,USD,Azure Retail Prices API,2025-12-18T04:47:09.249978 +AZURE,canadaeast,Standard_E8s_v4,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:47:08.337327 +AZURE,canadaeast,Standard_E8s_v5,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:47:08.336867 +AZURE,canadaeast,Standard_E8s_v5,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:47:09.250412 +AZURE,canadaeast,Standard_E8s_v5,reserved_3y,NA,0.204224,USD,Azure Retail Prices API,2025-12-18T04:47:09.250415 +AZURE,canadaeast,Standard_E8s_v5,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:47:08.336687 +AZURE,canadaeast,Standard_E96a_v4,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:47:08.336861 +AZURE,canadaeast,Standard_E96a_v4,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:47:09.250407 +AZURE,canadaeast,Standard_E96a_v4,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:47:09.250409 +AZURE,canadaeast,Standard_E96a_v4,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:47:08.336453 +AZURE,canadaeast,Standard_E96ads_v5,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:47:08.336650 +AZURE,canadaeast,Standard_E96ads_v5,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:47:09.250216 +AZURE,canadaeast,Standard_E96ads_v5,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:47:09.250219 +AZURE,canadaeast,Standard_E96ads_v5,spot,NA,1.277338,USD,Azure Retail Prices API,2025-12-18T04:47:08.337567 +AZURE,canadaeast,Standard_E96ads_v6,on_demand,NA,7.776,USD,Azure Retail Prices API,2025-12-18T04:47:08.337514 +AZURE,canadaeast,Standard_E96ads_v6,reserved_1y,NA,4.587785,USD,Azure Retail Prices API,2025-12-18T04:47:09.251048 +AZURE,canadaeast,Standard_E96ads_v6,reserved_3y,NA,2.954871,USD,Azure Retail Prices API,2025-12-18T04:47:09.251050 +AZURE,canadaeast,Standard_E96ads_v6,spot,NA,1.437005,USD,Azure Retail Prices API,2025-12-18T04:47:08.336658 +AZURE,canadaeast,Standard_E96as_v4,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:47:08.336817 +AZURE,canadaeast,Standard_E96as_v4,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:47:09.250363 +AZURE,canadaeast,Standard_E96as_v4,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:47:09.250367 +AZURE,canadaeast,Standard_E96as_v4,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:47:08.336965 +AZURE,canadaeast,Standard_E96as_v5,on_demand,NA,10.368,USD,Azure Retail Prices API,2025-12-18T04:47:08.336536 +AZURE,canadaeast,Standard_E96as_v5,reserved_1y,NA,3.511644,USD,Azure Retail Prices API,2025-12-18T04:47:09.250261 +AZURE,canadaeast,Standard_E96as_v5,reserved_3y,NA,2.261758,USD,Azure Retail Prices API,2025-12-18T04:47:09.250264 +AZURE,canadaeast,Standard_E96as_v5,spot,NA,1.09993,USD,Azure Retail Prices API,2025-12-18T04:47:08.336496 +AZURE,canadaeast,Standard_E96ds_v5,on_demand,NA,7.584,USD,Azure Retail Prices API,2025-12-18T04:47:08.336935 +AZURE,canadaeast,Standard_E96ds_v5,reserved_1y,NA,4.474543,USD,Azure Retail Prices API,2025-12-18T04:47:09.250498 +AZURE,canadaeast,Standard_E96ds_v5,reserved_3y,NA,2.881925,USD,Azure Retail Prices API,2025-12-18T04:47:09.250500 +AZURE,canadaeast,Standard_E96ds_v5,spot,NA,1.401523,USD,Azure Retail Prices API,2025-12-18T04:47:08.336883 +AZURE,canadaeast,Standard_E96ds_v6,on_demand,NA,8.597,USD,Azure Retail Prices API,2025-12-18T04:47:08.335990 +AZURE,canadaeast,Standard_E96ds_v6,reserved_1y,NA,5.330023,USD,Azure Retail Prices API,2025-12-18T04:47:09.249557 +AZURE,canadaeast,Standard_E96ds_v6,reserved_3y,NA,3.35274,USD,Azure Retail Prices API,2025-12-18T04:47:09.249560 +AZURE,canadaeast,Standard_E96ds_v6,spot,NA,1.588726,USD,Azure Retail Prices API,2025-12-18T04:47:08.336458 +AZURE,canadaeast,Standard_E96pds_v6,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:47:08.337370 +AZURE,canadaeast,Standard_E96pds_v6,reserved_1y,NA,3.681621,USD,Azure Retail Prices API,2025-12-18T04:47:09.250902 +AZURE,canadaeast,Standard_E96pds_v6,reserved_3y,NA,2.371195,USD,Azure Retail Prices API,2025-12-18T04:47:09.250905 +AZURE,canadaeast,Standard_E96pds_v6,spot,NA,1.153152,USD,Azure Retail Prices API,2025-12-18T04:47:08.337287 +AZURE,canadaeast,Standard_E96ps_v6,on_demand,NA,4.915,USD,Azure Retail Prices API,2025-12-18T04:47:08.336712 +AZURE,canadaeast,Standard_E96ps_v6,reserved_1y,NA,2.9,USD,Azure Retail Prices API,2025-12-18T04:47:09.250278 +AZURE,canadaeast,Standard_E96ps_v6,reserved_3y,NA,1.86777,USD,Azure Retail Prices API,2025-12-18T04:47:09.250280 +AZURE,canadaeast,Standard_E96ps_v6,spot,NA,0.908292,USD,Azure Retail Prices API,2025-12-18T04:47:08.336291 +AZURE,canadaeast,Standard_E96s_v5,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:47:08.336125 +AZURE,canadaeast,Standard_E96s_v5,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:47:09.249720 +AZURE,canadaeast,Standard_E96s_v5,reserved_3y,NA,2.450875,USD,Azure Retail Prices API,2025-12-18T04:47:09.249722 +AZURE,canadaeast,Standard_E96s_v5,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:47:08.336772 +AZURE,canadaeast,Standard_EC16ads_v6,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:47:08.337389 +AZURE,canadaeast,Standard_EC16ads_v6,reserved_1y,NA,0.764612,USD,Azure Retail Prices API,2025-12-18T04:47:09.250931 +AZURE,canadaeast,Standard_EC16ads_v6,reserved_3y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:47:09.250934 +AZURE,canadaeast,Standard_EC16ads_v6,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:47:08.337470 +AZURE,canadaeast,Standard_EC16as_v6,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:47:08.336959 +AZURE,canadaeast,Standard_EC16as_v6,reserved_1y,NA,0.62774,USD,Azure Retail Prices API,2025-12-18T04:47:09.250539 +AZURE,canadaeast,Standard_EC16as_v6,reserved_3y,NA,0.404338,USD,Azure Retail Prices API,2025-12-18T04:47:09.250542 +AZURE,canadaeast,Standard_EC16as_v6,spot,NA,0.196627,USD,Azure Retail Prices API,2025-12-18T04:47:08.337521 +AZURE,canadaeast,Standard_EC2ads_v6,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:47:08.335997 +AZURE,canadaeast,Standard_EC2ads_v6,reserved_1y,NA,0.095548,USD,Azure Retail Prices API,2025-12-18T04:47:09.249570 +AZURE,canadaeast,Standard_EC2ads_v6,reserved_3y,NA,0.061568,USD,Azure Retail Prices API,2025-12-18T04:47:09.249573 +AZURE,canadaeast,Standard_EC2ads_v6,spot,NA,0.029938,USD,Azure Retail Prices API,2025-12-18T04:47:08.336992 +AZURE,canadaeast,Standard_EC2as_v6,on_demand,NA,0.133,USD,Azure Retail Prices API,2025-12-18T04:47:08.337100 +AZURE,canadaeast,Standard_EC2as_v6,reserved_1y,NA,0.078425,USD,Azure Retail Prices API,2025-12-18T04:47:09.250649 +AZURE,canadaeast,Standard_EC2as_v6,reserved_3y,NA,0.050533,USD,Azure Retail Prices API,2025-12-18T04:47:09.250652 +AZURE,canadaeast,Standard_EC2as_v6,spot,NA,0.024578,USD,Azure Retail Prices API,2025-12-18T04:47:08.337306 +AZURE,canadaeast,Standard_EC32ads_v6,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:47:08.337380 +AZURE,canadaeast,Standard_EC32ads_v6,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:47:09.250914 +AZURE,canadaeast,Standard_EC32ads_v6,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:47:09.250916 +AZURE,canadaeast,Standard_EC32ads_v6,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:47:08.337479 +AZURE,canadaeast,Standard_EC32as_v6,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:47:08.336268 +AZURE,canadaeast,Standard_EC32as_v6,reserved_1y,NA,1.255479,USD,Azure Retail Prices API,2025-12-18T04:47:09.249865 +AZURE,canadaeast,Standard_EC32as_v6,reserved_3y,NA,0.808638,USD,Azure Retail Prices API,2025-12-18T04:47:09.249868 +AZURE,canadaeast,Standard_EC32as_v6,spot,NA,0.393254,USD,Azure Retail Prices API,2025-12-18T04:47:08.336377 +AZURE,canadaeast,Standard_EC48ads_v6,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:47:08.336826 +AZURE,canadaeast,Standard_EC48ads_v6,reserved_1y,NA,2.29395,USD,Azure Retail Prices API,2025-12-18T04:47:09.250378 +AZURE,canadaeast,Standard_EC48ads_v6,reserved_3y,NA,1.477435,USD,Azure Retail Prices API,2025-12-18T04:47:09.250381 +AZURE,canadaeast,Standard_EC48ads_v6,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:47:08.336614 +AZURE,canadaeast,Standard_EC48as_v6,on_demand,NA,3.192,USD,Azure Retail Prices API,2025-12-18T04:47:08.337435 +AZURE,canadaeast,Standard_EC48as_v6,reserved_1y,NA,1.883333,USD,Azure Retail Prices API,2025-12-18T04:47:09.250972 +AZURE,canadaeast,Standard_EC48as_v6,reserved_3y,NA,1.212976,USD,Azure Retail Prices API,2025-12-18T04:47:09.250975 +AZURE,canadaeast,Standard_EC48as_v6,spot,NA,0.589882,USD,Azure Retail Prices API,2025-12-18T04:47:08.336542 +AZURE,canadaeast,Standard_EC4ads_v6,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:47:08.337294 +AZURE,canadaeast,Standard_EC4ads_v6,reserved_1y,NA,0.19121,USD,Azure Retail Prices API,2025-12-18T04:47:09.250806 +AZURE,canadaeast,Standard_EC4ads_v6,reserved_3y,NA,0.123135,USD,Azure Retail Prices API,2025-12-18T04:47:09.250809 +AZURE,canadaeast,Standard_EC4ads_v6,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:47:08.336953 +AZURE,canadaeast,Standard_EC4as_v6,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:47:08.336702 +AZURE,canadaeast,Standard_EC4as_v6,reserved_1y,NA,0.156963,USD,Azure Retail Prices API,2025-12-18T04:47:09.250267 +AZURE,canadaeast,Standard_EC4as_v6,reserved_3y,NA,0.101065,USD,Azure Retail Prices API,2025-12-18T04:47:09.250269 +AZURE,canadaeast,Standard_EC4as_v6,spot,NA,0.049157,USD,Azure Retail Prices API,2025-12-18T04:47:08.336479 +AZURE,canadaeast,Standard_EC64ads_v6,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:47:08.337300 +AZURE,canadaeast,Standard_EC64ads_v6,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:47:09.250819 +AZURE,canadaeast,Standard_EC64ads_v6,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:47:09.250822 +AZURE,canadaeast,Standard_EC64ads_v6,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:47:08.336623 +AZURE,canadaeast,Standard_EC64as_v6,on_demand,NA,4.256,USD,Azure Retail Prices API,2025-12-18T04:47:08.337564 +AZURE,canadaeast,Standard_EC64as_v6,reserved_1y,NA,2.511073,USD,Azure Retail Prices API,2025-12-18T04:47:09.251115 +AZURE,canadaeast,Standard_EC64as_v6,reserved_3y,NA,1.617275,USD,Azure Retail Prices API,2025-12-18T04:47:09.251118 +AZURE,canadaeast,Standard_EC64as_v6,spot,NA,0.786509,USD,Azure Retail Prices API,2025-12-18T04:47:08.336135 +AZURE,canadaeast,Standard_EC8ads_v6,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:47:08.337197 +AZURE,canadaeast,Standard_EC8ads_v6,reserved_1y,NA,0.382306,USD,Azure Retail Prices API,2025-12-18T04:47:09.250708 +AZURE,canadaeast,Standard_EC8ads_v6,reserved_3y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:47:09.250711 +AZURE,canadaeast,Standard_EC8ads_v6,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:47:08.336539 +AZURE,canadaeast,Standard_EC8as_v6,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:47:08.337025 +AZURE,canadaeast,Standard_EC8as_v6,reserved_1y,NA,0.313927,USD,Azure Retail Prices API,2025-12-18T04:47:09.250588 +AZURE,canadaeast,Standard_EC8as_v6,reserved_3y,NA,0.202169,USD,Azure Retail Prices API,2025-12-18T04:47:09.250594 +AZURE,canadaeast,Standard_EC8as_v6,spot,NA,0.098314,USD,Azure Retail Prices API,2025-12-18T04:47:08.337318 +AZURE,canadaeast,Standard_EC96ads_v6,on_demand,NA,7.776,USD,Azure Retail Prices API,2025-12-18T04:47:08.337072 +AZURE,canadaeast,Standard_EC96ads_v6,reserved_1y,NA,4.587785,USD,Azure Retail Prices API,2025-12-18T04:47:09.250633 +AZURE,canadaeast,Standard_EC96ads_v6,reserved_3y,NA,2.954871,USD,Azure Retail Prices API,2025-12-18T04:47:09.250636 +AZURE,canadaeast,Standard_EC96ads_v6,spot,NA,1.437005,USD,Azure Retail Prices API,2025-12-18T04:47:08.336531 +AZURE,canadaeast,Standard_EC96as_v6,on_demand,NA,6.384,USD,Azure Retail Prices API,2025-12-18T04:47:08.337355 +AZURE,canadaeast,Standard_EC96as_v6,reserved_1y,NA,3.766553,USD,Azure Retail Prices API,2025-12-18T04:47:09.250877 +AZURE,canadaeast,Standard_EC96as_v6,reserved_3y,NA,2.425913,USD,Azure Retail Prices API,2025-12-18T04:47:09.250880 +AZURE,canadaeast,Standard_EC96as_v6,spot,NA,1.179763,USD,Azure Retail Prices API,2025-12-18T04:47:08.337312 +AZURE,canadaeast,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379937 +AZURE,canadaeast,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379945 +AZURE,canadaeast,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379949 +AZURE,canadaeast,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379941 +AZURE,canadaeast,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382250 +AZURE,canadaeast,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382258 +AZURE,canadaeast,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382262 +AZURE,canadaeast,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382254 +AZURE,canadaeast,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384960 +AZURE,canadaeast,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384970 +AZURE,canadaeast,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384974 +AZURE,canadaeast,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384966 +AZURE,canadaeast,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385798 +AZURE,canadaeast,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385806 +AZURE,canadaeast,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385810 +AZURE,canadaeast,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385802 +AZURE,canadaeast,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378380 +AZURE,canadaeast,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378390 +AZURE,canadaeast,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378394 +AZURE,canadaeast,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378386 +AZURE,canadaeast,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386586 +AZURE,canadaeast,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386598 +AZURE,canadaeast,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386602 +AZURE,canadaeast,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386593 +AZURE,canadaeast,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380659 +AZURE,canadaeast,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380667 +AZURE,canadaeast,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380671 +AZURE,canadaeast,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380663 +AZURE,canadaeast,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383385 +AZURE,canadaeast,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383394 +AZURE,canadaeast,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383399 +AZURE,canadaeast,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383390 +AZURE,canadaeast,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387347 +AZURE,canadaeast,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387356 +AZURE,canadaeast,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387360 +AZURE,canadaeast,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387351 +AZURE,canadaeast,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388588 +AZURE,canadaeast,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388602 +AZURE,canadaeast,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388607 +AZURE,canadaeast,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388595 +AZURE,canadaeast,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379181 +AZURE,canadaeast,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379190 +AZURE,canadaeast,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379194 +AZURE,canadaeast,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379185 +AZURE,canadaeast,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381453 +AZURE,canadaeast,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381461 +AZURE,canadaeast,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381465 +AZURE,canadaeast,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381457 +AZURE,canadaeast,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384178 +AZURE,canadaeast,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384190 +AZURE,canadaeast,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384195 +AZURE,canadaeast,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384185 +AZURE,canadaeast,Standard_L16as_v3,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:47:08.336787 +AZURE,canadaeast,Standard_L16as_v3,reserved_1y,NA,0.880594,USD,Azure Retail Prices API,2025-12-18T04:47:09.250315 +AZURE,canadaeast,Standard_L16as_v3,reserved_3y,NA,0.57793,USD,Azure Retail Prices API,2025-12-18T04:47:09.250318 +AZURE,canadaeast,Standard_L16as_v3,spot,NA,0.254285,USD,Azure Retail Prices API,2025-12-18T04:47:08.336915 +AZURE,canadaeast,Standard_L16s_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:47:08.337269 +AZURE,canadaeast,Standard_L16s_v3,reserved_1y,NA,0.982991,USD,Azure Retail Prices API,2025-12-18T04:47:09.250790 +AZURE,canadaeast,Standard_L16s_v3,reserved_3y,NA,0.645129,USD,Azure Retail Prices API,2025-12-18T04:47:09.250793 +AZURE,canadaeast,Standard_L16s_v3,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:47:08.336438 +AZURE,canadaeast,Standard_L32as_v3,on_demand,NA,2.752,USD,Azure Retail Prices API,2025-12-18T04:47:08.336655 +AZURE,canadaeast,Standard_L32as_v3,reserved_1y,NA,1.761301,USD,Azure Retail Prices API,2025-12-18T04:47:09.250221 +AZURE,canadaeast,Standard_L32as_v3,reserved_3y,NA,1.155822,USD,Azure Retail Prices API,2025-12-18T04:47:09.250224 +AZURE,canadaeast,Standard_L32as_v3,spot,NA,0.50857,USD,Azure Retail Prices API,2025-12-18T04:47:08.337416 +AZURE,canadaeast,Standard_L32s_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:47:08.336042 +AZURE,canadaeast,Standard_L32s_v3,reserved_1y,NA,1.966096,USD,Azure Retail Prices API,2025-12-18T04:47:09.249613 +AZURE,canadaeast,Standard_L32s_v3,reserved_3y,NA,1.290259,USD,Azure Retail Prices API,2025-12-18T04:47:09.249616 +AZURE,canadaeast,Standard_L32s_v3,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:47:08.337031 +AZURE,canadaeast,Standard_L48as_v3,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:47:08.337266 +AZURE,canadaeast,Standard_L48as_v3,reserved_1y,NA,2.641895,USD,Azure Retail Prices API,2025-12-18T04:47:09.250785 +AZURE,canadaeast,Standard_L48as_v3,reserved_3y,NA,1.733752,USD,Azure Retail Prices API,2025-12-18T04:47:09.250787 +AZURE,canadaeast,Standard_L48as_v3,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:47:08.336909 +AZURE,canadaeast,Standard_L48s_v3,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:47:08.336369 +AZURE,canadaeast,Standard_L48s_v3,reserved_1y,NA,2.949087,USD,Azure Retail Prices API,2025-12-18T04:47:09.249954 +AZURE,canadaeast,Standard_L48s_v3,reserved_3y,NA,1.93535,USD,Azure Retail Prices API,2025-12-18T04:47:09.249956 +AZURE,canadaeast,Standard_L48s_v3,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:47:08.336117 +AZURE,canadaeast,Standard_L64as_v3,on_demand,NA,5.504,USD,Azure Retail Prices API,2025-12-18T04:47:08.336926 +AZURE,canadaeast,Standard_L64as_v3,reserved_1y,NA,3.522603,USD,Azure Retail Prices API,2025-12-18T04:47:09.250486 +AZURE,canadaeast,Standard_L64as_v3,reserved_3y,NA,2.311682,USD,Azure Retail Prices API,2025-12-18T04:47:09.250489 +AZURE,canadaeast,Standard_L64as_v3,spot,NA,1.017139,USD,Azure Retail Prices API,2025-12-18T04:47:08.336021 +AZURE,canadaeast,Standard_L64s_v3,on_demand,NA,6.144,USD,Azure Retail Prices API,2025-12-18T04:47:08.336684 +AZURE,canadaeast,Standard_L64s_v3,reserved_1y,NA,3.932192,USD,Azure Retail Prices API,2025-12-18T04:47:09.250244 +AZURE,canadaeast,Standard_L64s_v3,reserved_3y,NA,2.580479,USD,Azure Retail Prices API,2025-12-18T04:47:09.250247 +AZURE,canadaeast,Standard_L64s_v3,spot,NA,1.135411,USD,Azure Retail Prices API,2025-12-18T04:47:08.336841 +AZURE,canadaeast,Standard_L80as_v3,on_demand,NA,6.88,USD,Azure Retail Prices API,2025-12-18T04:47:08.336102 +AZURE,canadaeast,Standard_L80as_v3,reserved_1y,NA,4.403196,USD,Azure Retail Prices API,2025-12-18T04:47:09.249691 +AZURE,canadaeast,Standard_L80as_v3,reserved_3y,NA,2.889612,USD,Azure Retail Prices API,2025-12-18T04:47:09.249694 +AZURE,canadaeast,Standard_L80as_v3,spot,NA,1.271424,USD,Azure Retail Prices API,2025-12-18T04:47:08.336182 +AZURE,canadaeast,Standard_L80s_v3,on_demand,NA,7.68,USD,Azure Retail Prices API,2025-12-18T04:47:08.337254 +AZURE,canadaeast,Standard_L80s_v3,reserved_1y,NA,4.915183,USD,Azure Retail Prices API,2025-12-18T04:47:09.250773 +AZURE,canadaeast,Standard_L80s_v3,reserved_3y,NA,3.225609,USD,Azure Retail Prices API,2025-12-18T04:47:09.250776 +AZURE,canadaeast,Standard_L80s_v3,spot,NA,1.419264,USD,Azure Retail Prices API,2025-12-18T04:47:08.336346 +AZURE,canadaeast,Standard_L8as_v3,on_demand,NA,0.688,USD,Azure Retail Prices API,2025-12-18T04:47:08.336111 +AZURE,canadaeast,Standard_L8as_v3,reserved_1y,NA,0.440297,USD,Azure Retail Prices API,2025-12-18T04:47:09.249703 +AZURE,canadaeast,Standard_L8as_v3,reserved_3y,NA,0.288965,USD,Azure Retail Prices API,2025-12-18T04:47:09.249706 +AZURE,canadaeast,Standard_L8as_v3,spot,NA,0.127142,USD,Azure Retail Prices API,2025-12-18T04:47:08.337458 +AZURE,canadaeast,Standard_L8s_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:47:08.336566 +AZURE,canadaeast,Standard_L8s_v3,reserved_1y,NA,0.491553,USD,Azure Retail Prices API,2025-12-18T04:47:09.250132 +AZURE,canadaeast,Standard_L8s_v3,reserved_3y,NA,0.322565,USD,Azure Retail Prices API,2025-12-18T04:47:09.250135 +AZURE,canadaeast,Standard_L8s_v3,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:47:08.337057 +AZURE,centralindia,Standard_D128ds_v6,on_demand,NA,8.389,USD,Azure Retail Prices API,2025-12-18T04:46:47.689376 +AZURE,centralindia,Standard_D128ds_v6,reserved_1y,NA,5.201256,USD,Azure Retail Prices API,2025-12-18T04:46:49.224460 +AZURE,centralindia,Standard_D128ds_v6,reserved_3y,NA,3.271766,USD,Azure Retail Prices API,2025-12-18T04:46:49.224464 +AZURE,centralindia,Standard_D128ds_v6,spot,NA,1.550287,USD,Azure Retail Prices API,2025-12-18T04:46:47.689523 +AZURE,centralindia,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488647 +AZURE,centralindia,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488655 +AZURE,centralindia,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488660 +AZURE,centralindia,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488651 +AZURE,centralindia,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489481 +AZURE,centralindia,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489490 +AZURE,centralindia,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489494 +AZURE,centralindia,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489486 +AZURE,centralindia,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490531 +AZURE,centralindia,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490539 +AZURE,centralindia,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490543 +AZURE,centralindia,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490535 +AZURE,centralindia,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491281 +AZURE,centralindia,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491289 +AZURE,centralindia,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491293 +AZURE,centralindia,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491285 +AZURE,centralindia,Standard_D16_v3,on_demand,NA,0.84,USD,Azure Retail Prices API,2025-12-18T04:46:47.688424 +AZURE,centralindia,Standard_D16_v3,reserved_1y,NA,0.488584,USD,Azure Retail Prices API,2025-12-18T04:46:49.222878 +AZURE,centralindia,Standard_D16_v3,reserved_3y,NA,0.308143,USD,Azure Retail Prices API,2025-12-18T04:46:49.222884 +AZURE,centralindia,Standard_D16_v3,spot,NA,0.155232,USD,Azure Retail Prices API,2025-12-18T04:46:47.689083 +AZURE,centralindia,Standard_D16a_v4,on_demand,NA,0.493,USD,Azure Retail Prices API,2025-12-18T04:46:47.690296 +AZURE,centralindia,Standard_D16a_v4,reserved_1y,NA,0.291096,USD,Azure Retail Prices API,2025-12-18T04:46:49.225864 +AZURE,centralindia,Standard_D16a_v4,reserved_3y,NA,0.187443,USD,Azure Retail Prices API,2025-12-18T04:46:49.225870 +AZURE,centralindia,Standard_D16a_v4,spot,NA,0.091106,USD,Azure Retail Prices API,2025-12-18T04:46:47.689107 +AZURE,centralindia,Standard_D16ads_v5,on_demand,NA,0.537,USD,Azure Retail Prices API,2025-12-18T04:46:47.688840 +AZURE,centralindia,Standard_D16ads_v5,reserved_1y,NA,0.316667,USD,Azure Retail Prices API,2025-12-18T04:46:49.223710 +AZURE,centralindia,Standard_D16ads_v5,reserved_3y,NA,0.203995,USD,Azure Retail Prices API,2025-12-18T04:46:49.223715 +AZURE,centralindia,Standard_D16ads_v5,spot,NA,0.09956,USD,Azure Retail Prices API,2025-12-18T04:46:47.689299 +AZURE,centralindia,Standard_D16ads_v6,on_demand,NA,0.59,USD,Azure Retail Prices API,2025-12-18T04:46:47.688978 +AZURE,centralindia,Standard_D16ads_v6,reserved_1y,NA,0.348288,USD,Azure Retail Prices API,2025-12-18T04:46:49.223901 +AZURE,centralindia,Standard_D16ads_v6,reserved_3y,NA,0.224353,USD,Azure Retail Prices API,2025-12-18T04:46:49.223906 +AZURE,centralindia,Standard_D16ads_v6,spot,NA,0.109032,USD,Azure Retail Prices API,2025-12-18T04:46:47.689952 +AZURE,centralindia,Standard_D16as_v4,on_demand,NA,0.493,USD,Azure Retail Prices API,2025-12-18T04:46:47.688527 +AZURE,centralindia,Standard_D16as_v4,reserved_1y,NA,0.291096,USD,Azure Retail Prices API,2025-12-18T04:46:49.223141 +AZURE,centralindia,Standard_D16as_v4,reserved_3y,NA,0.187443,USD,Azure Retail Prices API,2025-12-18T04:46:49.223146 +AZURE,centralindia,Standard_D16as_v4,spot,NA,0.091106,USD,Azure Retail Prices API,2025-12-18T04:46:47.689190 +AZURE,centralindia,Standard_D16as_v5,on_demand,NA,1.18,USD,Azure Retail Prices API,2025-12-18T04:46:47.688631 +AZURE,centralindia,Standard_D16as_v5,reserved_1y,NA,0.262215,USD,Azure Retail Prices API,2025-12-18T04:46:49.224816 +AZURE,centralindia,Standard_D16as_v5,reserved_3y,NA,0.168874,USD,Azure Retail Prices API,2025-12-18T04:46:49.224822 +AZURE,centralindia,Standard_D16as_v5,spot,NA,0.082318,USD,Azure Retail Prices API,2025-12-18T04:46:47.689943 +AZURE,centralindia,Standard_D16d_v4,on_demand,NA,0.976,USD,Azure Retail Prices API,2025-12-18T04:46:47.688486 +AZURE,centralindia,Standard_D16d_v4,reserved_1y,NA,0.573858,USD,Azure Retail Prices API,2025-12-18T04:46:49.223034 +AZURE,centralindia,Standard_D16d_v4,reserved_3y,NA,0.366971,USD,Azure Retail Prices API,2025-12-18T04:46:49.223039 +AZURE,centralindia,Standard_D16d_v4,spot,NA,0.180365,USD,Azure Retail Prices API,2025-12-18T04:46:47.689005 +AZURE,centralindia,Standard_D16ds_v4,on_demand,NA,0.976,USD,Azure Retail Prices API,2025-12-18T04:46:47.688754 +AZURE,centralindia,Standard_D16ds_v4,reserved_1y,NA,0.573858,USD,Azure Retail Prices API,2025-12-18T04:46:49.223570 +AZURE,centralindia,Standard_D16ds_v4,reserved_3y,NA,0.366971,USD,Azure Retail Prices API,2025-12-18T04:46:49.223575 +AZURE,centralindia,Standard_D16ds_v4,spot,NA,0.180365,USD,Azure Retail Prices API,2025-12-18T04:46:47.689488 +AZURE,centralindia,Standard_D16ds_v5,on_demand,NA,0.976,USD,Azure Retail Prices API,2025-12-18T04:46:47.688665 +AZURE,centralindia,Standard_D16ds_v5,reserved_1y,NA,0.575799,USD,Azure Retail Prices API,2025-12-18T04:46:49.223397 +AZURE,centralindia,Standard_D16ds_v5,reserved_3y,NA,0.37089,USD,Azure Retail Prices API,2025-12-18T04:46:49.223402 +AZURE,centralindia,Standard_D16ds_v5,spot,NA,0.180365,USD,Azure Retail Prices API,2025-12-18T04:46:47.689180 +AZURE,centralindia,Standard_D16ds_v6,on_demand,NA,1.049,USD,Azure Retail Prices API,2025-12-18T04:46:47.688401 +AZURE,centralindia,Standard_D16ds_v6,reserved_1y,NA,0.650114,USD,Azure Retail Prices API,2025-12-18T04:46:49.222813 +AZURE,centralindia,Standard_D16ds_v6,reserved_3y,NA,0.40898,USD,Azure Retail Prices API,2025-12-18T04:46:49.222818 +AZURE,centralindia,Standard_D16ds_v6,spot,NA,0.193855,USD,Azure Retail Prices API,2025-12-18T04:46:47.689350 +AZURE,centralindia,Standard_D16pds_v6,on_demand,NA,0.483,USD,Azure Retail Prices API,2025-12-18T04:46:47.688651 +AZURE,centralindia,Standard_D16pds_v6,reserved_1y,NA,0.285046,USD,Azure Retail Prices API,2025-12-18T04:46:49.223364 +AZURE,centralindia,Standard_D16pds_v6,reserved_3y,NA,0.1836,USD,Azure Retail Prices API,2025-12-18T04:46:49.223369 +AZURE,centralindia,Standard_D16pds_v6,spot,NA,0.089258,USD,Azure Retail Prices API,2025-12-18T04:46:47.688837 +AZURE,centralindia,Standard_D16ps_v6,on_demand,NA,0.37,USD,Azure Retail Prices API,2025-12-18T04:46:47.689892 +AZURE,centralindia,Standard_D16ps_v6,reserved_1y,NA,0.218037,USD,Azure Retail Prices API,2025-12-18T04:46:49.225258 +AZURE,centralindia,Standard_D16ps_v6,reserved_3y,NA,0.140449,USD,Azure Retail Prices API,2025-12-18T04:46:49.225263 +AZURE,centralindia,Standard_D16ps_v6,spot,NA,0.068376,USD,Azure Retail Prices API,2025-12-18T04:46:47.688800 +AZURE,centralindia,Standard_D16s_v3,on_demand,NA,0.84,USD,Azure Retail Prices API,2025-12-18T04:46:47.688759 +AZURE,centralindia,Standard_D16s_v3,reserved_1y,NA,0.488584,USD,Azure Retail Prices API,2025-12-18T04:46:49.223581 +AZURE,centralindia,Standard_D16s_v3,reserved_3y,NA,0.308143,USD,Azure Retail Prices API,2025-12-18T04:46:49.223586 +AZURE,centralindia,Standard_D16s_v3,spot,NA,0.155232,USD,Azure Retail Prices API,2025-12-18T04:46:47.689077 +AZURE,centralindia,Standard_D16s_v4,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:46:47.690049 +AZURE,centralindia,Standard_D16s_v4,reserved_1y,NA,0.475114,USD,Azure Retail Prices API,2025-12-18T04:46:49.225497 +AZURE,centralindia,Standard_D16s_v4,reserved_3y,NA,0.303805,USD,Azure Retail Prices API,2025-12-18T04:46:49.225502 +AZURE,centralindia,Standard_D16s_v4,spot,NA,0.149318,USD,Azure Retail Prices API,2025-12-18T04:46:47.688740 +AZURE,centralindia,Standard_D16s_v5,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:46:47.689480 +AZURE,centralindia,Standard_D16s_v5,reserved_1y,NA,0.476712,USD,Azure Retail Prices API,2025-12-18T04:46:49.224568 +AZURE,centralindia,Standard_D16s_v5,reserved_3y,NA,0.298973,USD,Azure Retail Prices API,2025-12-18T04:46:49.224574 +AZURE,centralindia,Standard_D16s_v5,spot,NA,0.149318,USD,Azure Retail Prices API,2025-12-18T04:46:47.689418 +AZURE,centralindia,Standard_D2ads_v6,on_demand,NA,0.0738,USD,Azure Retail Prices API,2025-12-18T04:46:47.689220 +AZURE,centralindia,Standard_D2ads_v6,reserved_1y,NA,0.043493,USD,Azure Retail Prices API,2025-12-18T04:46:49.224188 +AZURE,centralindia,Standard_D2ads_v6,reserved_3y,NA,0.028044,USD,Azure Retail Prices API,2025-12-18T04:46:49.224194 +AZURE,centralindia,Standard_D2ads_v6,spot,NA,0.013638,USD,Azure Retail Prices API,2025-12-18T04:46:47.688591 +AZURE,centralindia,Standard_D2ds_v6,on_demand,NA,0.131,USD,Azure Retail Prices API,2025-12-18T04:46:47.689293 +AZURE,centralindia,Standard_D2ds_v6,reserved_1y,NA,0.081279,USD,Azure Retail Prices API,2025-12-18T04:46:49.224296 +AZURE,centralindia,Standard_D2ds_v6,reserved_3y,NA,0.051104,USD,Azure Retail Prices API,2025-12-18T04:46:49.224302 +AZURE,centralindia,Standard_D2ds_v6,spot,NA,0.024209,USD,Azure Retail Prices API,2025-12-18T04:46:47.689857 +AZURE,centralindia,Standard_D32_v3,on_demand,NA,1.68,USD,Azure Retail Prices API,2025-12-18T04:46:47.688668 +AZURE,centralindia,Standard_D32_v3,reserved_1y,NA,0.977169,USD,Azure Retail Prices API,2025-12-18T04:46:49.223407 +AZURE,centralindia,Standard_D32_v3,reserved_3y,NA,0.616286,USD,Azure Retail Prices API,2025-12-18T04:46:49.223412 +AZURE,centralindia,Standard_D32_v3,spot,NA,0.310464,USD,Azure Retail Prices API,2025-12-18T04:46:47.689474 +AZURE,centralindia,Standard_D32a_v4,on_demand,NA,0.987,USD,Azure Retail Prices API,2025-12-18T04:46:47.689354 +AZURE,centralindia,Standard_D32a_v4,reserved_1y,NA,0.582763,USD,Azure Retail Prices API,2025-12-18T04:46:49.224439 +AZURE,centralindia,Standard_D32a_v4,reserved_3y,NA,0.375381,USD,Azure Retail Prices API,2025-12-18T04:46:49.224444 +AZURE,centralindia,Standard_D32a_v4,spot,NA,0.182398,USD,Azure Retail Prices API,2025-12-18T04:46:47.688905 +AZURE,centralindia,Standard_D32ads_v5,on_demand,NA,2.546,USD,Azure Retail Prices API,2025-12-18T04:46:47.689156 +AZURE,centralindia,Standard_D32ads_v5,reserved_1y,NA,0.633447,USD,Azure Retail Prices API,2025-12-18T04:46:49.225539 +AZURE,centralindia,Standard_D32ads_v5,reserved_3y,NA,0.407953,USD,Azure Retail Prices API,2025-12-18T04:46:49.225544 +AZURE,centralindia,Standard_D32ads_v5,spot,NA,0.19912,USD,Azure Retail Prices API,2025-12-18T04:46:47.688689 +AZURE,centralindia,Standard_D32ads_v6,on_demand,NA,1.181,USD,Azure Retail Prices API,2025-12-18T04:46:47.689602 +AZURE,centralindia,Standard_D32ads_v6,reserved_1y,NA,0.696689,USD,Azure Retail Prices API,2025-12-18T04:46:49.224782 +AZURE,centralindia,Standard_D32ads_v6,reserved_3y,NA,0.448706,USD,Azure Retail Prices API,2025-12-18T04:46:49.224787 +AZURE,centralindia,Standard_D32ads_v6,spot,NA,0.218249,USD,Azure Retail Prices API,2025-12-18T04:46:47.688961 +AZURE,centralindia,Standard_D32as_v4,on_demand,NA,0.987,USD,Azure Retail Prices API,2025-12-18T04:46:47.689187 +AZURE,centralindia,Standard_D32as_v4,reserved_1y,NA,0.582763,USD,Azure Retail Prices API,2025-12-18T04:46:49.224178 +AZURE,centralindia,Standard_D32as_v4,reserved_3y,NA,0.375381,USD,Azure Retail Prices API,2025-12-18T04:46:49.224183 +AZURE,centralindia,Standard_D32as_v4,spot,NA,0.182398,USD,Azure Retail Prices API,2025-12-18T04:46:47.688779 +AZURE,centralindia,Standard_D32as_v5,on_demand,NA,0.889,USD,Azure Retail Prices API,2025-12-18T04:46:47.688941 +AZURE,centralindia,Standard_D32as_v5,reserved_1y,NA,0.524429,USD,Azure Retail Prices API,2025-12-18T04:46:49.223826 +AZURE,centralindia,Standard_D32as_v5,reserved_3y,NA,0.337747,USD,Azure Retail Prices API,2025-12-18T04:46:49.223832 +AZURE,centralindia,Standard_D32as_v5,spot,NA,0.164821,USD,Azure Retail Prices API,2025-12-18T04:46:47.688622 +AZURE,centralindia,Standard_D32d_v4,on_demand,NA,1.952,USD,Azure Retail Prices API,2025-12-18T04:46:47.688659 +AZURE,centralindia,Standard_D32d_v4,reserved_1y,NA,1.147831,USD,Azure Retail Prices API,2025-12-18T04:46:49.223386 +AZURE,centralindia,Standard_D32d_v4,reserved_3y,NA,0.733942,USD,Azure Retail Prices API,2025-12-18T04:46:49.223392 +AZURE,centralindia,Standard_D32d_v4,spot,NA,0.36073,USD,Azure Retail Prices API,2025-12-18T04:46:47.689086 +AZURE,centralindia,Standard_D32ds_v4,on_demand,NA,1.952,USD,Azure Retail Prices API,2025-12-18T04:46:47.688732 +AZURE,centralindia,Standard_D32ds_v4,reserved_1y,NA,1.147831,USD,Azure Retail Prices API,2025-12-18T04:46:49.223538 +AZURE,centralindia,Standard_D32ds_v4,reserved_3y,NA,0.733942,USD,Azure Retail Prices API,2025-12-18T04:46:49.223543 +AZURE,centralindia,Standard_D32ds_v4,spot,NA,0.36073,USD,Azure Retail Prices API,2025-12-18T04:46:47.689230 +AZURE,centralindia,Standard_D32ds_v5,on_demand,NA,1.952,USD,Azure Retail Prices API,2025-12-18T04:46:47.690018 +AZURE,centralindia,Standard_D32ds_v5,reserved_1y,NA,1.151712,USD,Azure Retail Prices API,2025-12-18T04:46:49.225434 +AZURE,centralindia,Standard_D32ds_v5,reserved_3y,NA,0.741743,USD,Azure Retail Prices API,2025-12-18T04:46:49.225439 +AZURE,centralindia,Standard_D32ds_v5,spot,NA,0.36073,USD,Azure Retail Prices API,2025-12-18T04:46:47.689309 +AZURE,centralindia,Standard_D32ds_v6,on_demand,NA,2.097,USD,Azure Retail Prices API,2025-12-18T04:46:47.689737 +AZURE,centralindia,Standard_D32ds_v6,reserved_1y,NA,1.300342,USD,Azure Retail Prices API,2025-12-18T04:46:49.224961 +AZURE,centralindia,Standard_D32ds_v6,reserved_3y,NA,0.817922,USD,Azure Retail Prices API,2025-12-18T04:46:49.224966 +AZURE,centralindia,Standard_D32ds_v6,spot,NA,0.387526,USD,Azure Retail Prices API,2025-12-18T04:46:47.688395 +AZURE,centralindia,Standard_D32pds_v6,on_demand,NA,0.966,USD,Azure Retail Prices API,2025-12-18T04:46:47.688887 +AZURE,centralindia,Standard_D32pds_v6,reserved_1y,NA,0.570205,USD,Azure Retail Prices API,2025-12-18T04:46:49.223763 +AZURE,centralindia,Standard_D32pds_v6,reserved_3y,NA,0.367237,USD,Azure Retail Prices API,2025-12-18T04:46:49.223768 +AZURE,centralindia,Standard_D32pds_v6,spot,NA,0.178517,USD,Azure Retail Prices API,2025-12-18T04:46:47.688662 +AZURE,centralindia,Standard_D32ps_v6,on_demand,NA,0.739,USD,Azure Retail Prices API,2025-12-18T04:46:47.688785 +AZURE,centralindia,Standard_D32ps_v6,reserved_1y,NA,0.436073,USD,Azure Retail Prices API,2025-12-18T04:46:49.223602 +AZURE,centralindia,Standard_D32ps_v6,reserved_3y,NA,0.280898,USD,Azure Retail Prices API,2025-12-18T04:46:49.223608 +AZURE,centralindia,Standard_D32ps_v6,spot,NA,0.136567,USD,Azure Retail Prices API,2025-12-18T04:46:47.689980 +AZURE,centralindia,Standard_D32s_v3,on_demand,NA,1.68,USD,Azure Retail Prices API,2025-12-18T04:46:47.689719 +AZURE,centralindia,Standard_D32s_v3,reserved_1y,NA,0.977169,USD,Azure Retail Prices API,2025-12-18T04:46:49.224929 +AZURE,centralindia,Standard_D32s_v3,reserved_3y,NA,0.616286,USD,Azure Retail Prices API,2025-12-18T04:46:49.224934 +AZURE,centralindia,Standard_D32s_v3,spot,NA,0.310464,USD,Azure Retail Prices API,2025-12-18T04:46:47.689640 +AZURE,centralindia,Standard_D32s_v4,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:46:47.688944 +AZURE,centralindia,Standard_D32s_v4,reserved_1y,NA,0.950228,USD,Azure Retail Prices API,2025-12-18T04:46:49.223837 +AZURE,centralindia,Standard_D32s_v4,reserved_3y,NA,0.60761,USD,Azure Retail Prices API,2025-12-18T04:46:49.223842 +AZURE,centralindia,Standard_D32s_v4,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:46:47.689445 +AZURE,centralindia,Standard_D32s_v5,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:46:47.690214 +AZURE,centralindia,Standard_D32s_v5,reserved_1y,NA,0.953425,USD,Azure Retail Prices API,2025-12-18T04:46:49.225707 +AZURE,centralindia,Standard_D32s_v5,reserved_3y,NA,0.597907,USD,Azure Retail Prices API,2025-12-18T04:46:49.225713 +AZURE,centralindia,Standard_D32s_v5,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:46:47.688981 +AZURE,centralindia,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485765 +AZURE,centralindia,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485779 +AZURE,centralindia,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485785 +AZURE,centralindia,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485772 +AZURE,centralindia,Standard_D48a_v4,on_demand,NA,1.481,USD,Azure Retail Prices API,2025-12-18T04:46:47.689503 +AZURE,centralindia,Standard_D48a_v4,reserved_1y,NA,0.873858,USD,Azure Retail Prices API,2025-12-18T04:46:49.224625 +AZURE,centralindia,Standard_D48a_v4,reserved_3y,NA,0.562823,USD,Azure Retail Prices API,2025-12-18T04:46:49.224630 +AZURE,centralindia,Standard_D48a_v4,spot,NA,0.273689,USD,Azure Retail Prices API,2025-12-18T04:46:47.689335 +AZURE,centralindia,Standard_D48ads_v5,on_demand,NA,3.818,USD,Azure Retail Prices API,2025-12-18T04:46:47.689143 +AZURE,centralindia,Standard_D48ads_v5,reserved_1y,NA,0.950114,USD,Azure Retail Prices API,2025-12-18T04:46:49.225227 +AZURE,centralindia,Standard_D48ads_v5,reserved_3y,NA,0.611948,USD,Azure Retail Prices API,2025-12-18T04:46:49.225232 +AZURE,centralindia,Standard_D48ads_v5,spot,NA,0.298494,USD,Azure Retail Prices API,2025-12-18T04:46:47.689071 +AZURE,centralindia,Standard_D48ads_v6,on_demand,NA,1.771,USD,Azure Retail Prices API,2025-12-18T04:46:47.688708 +AZURE,centralindia,Standard_D48ads_v6,reserved_1y,NA,1.044977,USD,Azure Retail Prices API,2025-12-18T04:46:49.223484 +AZURE,centralindia,Standard_D48ads_v6,reserved_3y,NA,0.673059,USD,Azure Retail Prices API,2025-12-18T04:46:49.223489 +AZURE,centralindia,Standard_D48ads_v6,spot,NA,0.327281,USD,Azure Retail Prices API,2025-12-18T04:46:47.689442 +AZURE,centralindia,Standard_D48as_v4,on_demand,NA,1.481,USD,Azure Retail Prices API,2025-12-18T04:46:47.688935 +AZURE,centralindia,Standard_D48as_v4,reserved_1y,NA,0.873858,USD,Azure Retail Prices API,2025-12-18T04:46:49.223816 +AZURE,centralindia,Standard_D48as_v4,reserved_3y,NA,0.562823,USD,Azure Retail Prices API,2025-12-18T04:46:49.223821 +AZURE,centralindia,Standard_D48as_v4,spot,NA,0.273689,USD,Azure Retail Prices API,2025-12-18T04:46:47.689069 +AZURE,centralindia,Standard_D48as_v5,on_demand,NA,3.541,USD,Azure Retail Prices API,2025-12-18T04:46:47.688427 +AZURE,centralindia,Standard_D48as_v5,reserved_1y,NA,0.786644,USD,Azure Retail Prices API,2025-12-18T04:46:49.223527 +AZURE,centralindia,Standard_D48as_v5,reserved_3y,NA,0.506621,USD,Azure Retail Prices API,2025-12-18T04:46:49.223532 +AZURE,centralindia,Standard_D48as_v5,spot,NA,0.247138,USD,Azure Retail Prices API,2025-12-18T04:46:47.689645 +AZURE,centralindia,Standard_D48d_v4,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:47.690123 +AZURE,centralindia,Standard_D48d_v4,reserved_1y,NA,1.721689,USD,Azure Retail Prices API,2025-12-18T04:46:49.225602 +AZURE,centralindia,Standard_D48d_v4,reserved_3y,NA,1.100913,USD,Azure Retail Prices API,2025-12-18T04:46:49.225607 +AZURE,centralindia,Standard_D48d_v4,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:47.689671 +AZURE,centralindia,Standard_D48ds_v4,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:47.689345 +AZURE,centralindia,Standard_D48ds_v4,reserved_1y,NA,1.721689,USD,Azure Retail Prices API,2025-12-18T04:46:49.224404 +AZURE,centralindia,Standard_D48ds_v4,reserved_3y,NA,1.100913,USD,Azure Retail Prices API,2025-12-18T04:46:49.224409 +AZURE,centralindia,Standard_D48ds_v4,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:47.689986 +AZURE,centralindia,Standard_D48ds_v5,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:47.689690 +AZURE,centralindia,Standard_D48ds_v5,reserved_1y,NA,1.727511,USD,Azure Retail Prices API,2025-12-18T04:46:49.224861 +AZURE,centralindia,Standard_D48ds_v5,reserved_3y,NA,1.112633,USD,Azure Retail Prices API,2025-12-18T04:46:49.224867 +AZURE,centralindia,Standard_D48ds_v5,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:47.688902 +AZURE,centralindia,Standard_D48ds_v6,on_demand,NA,3.146,USD,Azure Retail Prices API,2025-12-18T04:46:47.689899 +AZURE,centralindia,Standard_D48ds_v6,reserved_1y,NA,1.950457,USD,Azure Retail Prices API,2025-12-18T04:46:49.225269 +AZURE,centralindia,Standard_D48ds_v6,reserved_3y,NA,1.226903,USD,Azure Retail Prices API,2025-12-18T04:46:49.225274 +AZURE,centralindia,Standard_D48ds_v6,spot,NA,0.581381,USD,Azure Retail Prices API,2025-12-18T04:46:47.689491 +AZURE,centralindia,Standard_D48pds_v6,on_demand,NA,1.45,USD,Azure Retail Prices API,2025-12-18T04:46:47.689436 +AZURE,centralindia,Standard_D48pds_v6,reserved_1y,NA,0.855251,USD,Azure Retail Prices API,2025-12-18T04:46:49.224523 +AZURE,centralindia,Standard_D48pds_v6,reserved_3y,NA,0.550837,USD,Azure Retail Prices API,2025-12-18T04:46:49.224529 +AZURE,centralindia,Standard_D48pds_v6,spot,NA,0.26796,USD,Azure Retail Prices API,2025-12-18T04:46:47.690191 +AZURE,centralindia,Standard_D48ps_v6,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:46:47.689832 +AZURE,centralindia,Standard_D48ps_v6,reserved_1y,NA,0.654224,USD,Azure Retail Prices API,2025-12-18T04:46:49.225161 +AZURE,centralindia,Standard_D48ps_v6,reserved_3y,NA,0.421347,USD,Azure Retail Prices API,2025-12-18T04:46:49.225166 +AZURE,centralindia,Standard_D48ps_v6,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:46:47.688811 +AZURE,centralindia,Standard_D48s_v4,on_demand,NA,2.424,USD,Azure Retail Prices API,2025-12-18T04:46:47.690246 +AZURE,centralindia,Standard_D48s_v4,reserved_1y,NA,1.425342,USD,Azure Retail Prices API,2025-12-18T04:46:49.225791 +AZURE,centralindia,Standard_D48s_v4,reserved_3y,NA,0.911416,USD,Azure Retail Prices API,2025-12-18T04:46:49.225796 +AZURE,centralindia,Standard_D48s_v4,spot,NA,0.447955,USD,Azure Retail Prices API,2025-12-18T04:46:47.689089 +AZURE,centralindia,Standard_D48s_v5,on_demand,NA,2.424,USD,Azure Retail Prices API,2025-12-18T04:46:47.689882 +AZURE,centralindia,Standard_D48s_v5,reserved_1y,NA,1.430137,USD,Azure Retail Prices API,2025-12-18T04:46:49.225237 +AZURE,centralindia,Standard_D48s_v5,reserved_3y,NA,0.89688,USD,Azure Retail Prices API,2025-12-18T04:46:49.225242 +AZURE,centralindia,Standard_D48s_v5,spot,NA,0.447955,USD,Azure Retail Prices API,2025-12-18T04:46:47.689636 +AZURE,centralindia,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486615 +AZURE,centralindia,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486629 +AZURE,centralindia,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486636 +AZURE,centralindia,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486622 +AZURE,centralindia,Standard_D4a_v4,on_demand,NA,0.123,USD,Azure Retail Prices API,2025-12-18T04:46:47.690100 +AZURE,centralindia,Standard_D4a_v4,reserved_1y,NA,0.072717,USD,Azure Retail Prices API,2025-12-18T04:46:49.225581 +AZURE,centralindia,Standard_D4a_v4,reserved_3y,NA,0.046842,USD,Azure Retail Prices API,2025-12-18T04:46:49.225586 +AZURE,centralindia,Standard_D4a_v4,spot,NA,0.02273,USD,Azure Retail Prices API,2025-12-18T04:46:47.690028 +AZURE,centralindia,Standard_D4ads_v5,on_demand,NA,0.134,USD,Azure Retail Prices API,2025-12-18T04:46:47.688912 +AZURE,centralindia,Standard_D4ads_v5,reserved_1y,NA,0.079224,USD,Azure Retail Prices API,2025-12-18T04:46:49.223785 +AZURE,centralindia,Standard_D4ads_v5,reserved_3y,NA,0.050989,USD,Azure Retail Prices API,2025-12-18T04:46:49.223790 +AZURE,centralindia,Standard_D4ads_v5,spot,NA,0.024844,USD,Azure Retail Prices API,2025-12-18T04:46:47.689902 +AZURE,centralindia,Standard_D4ads_v6,on_demand,NA,0.148,USD,Azure Retail Prices API,2025-12-18T04:46:47.688414 +AZURE,centralindia,Standard_D4ads_v6,reserved_1y,NA,0.0871,USD,Azure Retail Prices API,2025-12-18T04:46:49.222857 +AZURE,centralindia,Standard_D4ads_v6,reserved_3y,NA,0.056088,USD,Azure Retail Prices API,2025-12-18T04:46:49.222862 +AZURE,centralindia,Standard_D4ads_v6,spot,NA,0.02735,USD,Azure Retail Prices API,2025-12-18T04:46:47.688498 +AZURE,centralindia,Standard_D4as_v5,on_demand,NA,0.111,USD,Azure Retail Prices API,2025-12-18T04:46:47.689465 +AZURE,centralindia,Standard_D4as_v5,reserved_1y,NA,0.065525,USD,Azure Retail Prices API,2025-12-18T04:46:49.224545 +AZURE,centralindia,Standard_D4as_v5,reserved_3y,NA,0.042199,USD,Azure Retail Prices API,2025-12-18T04:46:49.224551 +AZURE,centralindia,Standard_D4as_v5,spot,NA,0.020579,USD,Azure Retail Prices API,2025-12-18T04:46:47.689916 +AZURE,centralindia,Standard_D4d_v4,on_demand,NA,0.244,USD,Azure Retail Prices API,2025-12-18T04:46:47.689051 +AZURE,centralindia,Standard_D4d_v4,reserved_1y,NA,0.143493,USD,Azure Retail Prices API,2025-12-18T04:46:49.224038 +AZURE,centralindia,Standard_D4d_v4,reserved_3y,NA,0.091743,USD,Azure Retail Prices API,2025-12-18T04:46:49.224044 +AZURE,centralindia,Standard_D4d_v4,spot,NA,0.045091,USD,Azure Retail Prices API,2025-12-18T04:46:47.689957 +AZURE,centralindia,Standard_D4ds_v4,on_demand,NA,0.244,USD,Azure Retail Prices API,2025-12-18T04:46:47.690242 +AZURE,centralindia,Standard_D4ds_v4,reserved_1y,NA,0.143493,USD,Azure Retail Prices API,2025-12-18T04:46:49.225780 +AZURE,centralindia,Standard_D4ds_v4,reserved_3y,NA,0.091743,USD,Azure Retail Prices API,2025-12-18T04:46:49.225785 +AZURE,centralindia,Standard_D4ds_v4,spot,NA,0.045091,USD,Azure Retail Prices API,2025-12-18T04:46:47.688923 +AZURE,centralindia,Standard_D4ds_v5,on_demand,NA,0.244,USD,Azure Retail Prices API,2025-12-18T04:46:47.688522 +AZURE,centralindia,Standard_D4ds_v5,reserved_1y,NA,0.14395,USD,Azure Retail Prices API,2025-12-18T04:46:49.223131 +AZURE,centralindia,Standard_D4ds_v5,reserved_3y,NA,0.092732,USD,Azure Retail Prices API,2025-12-18T04:46:49.223136 +AZURE,centralindia,Standard_D4ds_v5,spot,NA,0.045091,USD,Azure Retail Prices API,2025-12-18T04:46:47.688516 +AZURE,centralindia,Standard_D4ds_v6,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:46:47.688389 +AZURE,centralindia,Standard_D4ds_v6,reserved_1y,NA,0.162557,USD,Azure Retail Prices API,2025-12-18T04:46:49.222765 +AZURE,centralindia,Standard_D4ds_v6,reserved_3y,NA,0.102245,USD,Azure Retail Prices API,2025-12-18T04:46:49.222783 +AZURE,centralindia,Standard_D4ds_v6,spot,NA,0.048418,USD,Azure Retail Prices API,2025-12-18T04:46:47.689612 +AZURE,centralindia,Standard_D4pds_v6,on_demand,NA,0.121,USD,Azure Retail Prices API,2025-12-18T04:46:47.688453 +AZURE,centralindia,Standard_D4pds_v6,reserved_1y,NA,0.071233,USD,Azure Retail Prices API,2025-12-18T04:46:49.222956 +AZURE,centralindia,Standard_D4pds_v6,reserved_3y,NA,0.04589,USD,Azure Retail Prices API,2025-12-18T04:46:49.222962 +AZURE,centralindia,Standard_D4pds_v6,spot,NA,0.022361,USD,Azure Retail Prices API,2025-12-18T04:46:47.689385 +AZURE,centralindia,Standard_D4ps_v6,on_demand,NA,0.0924,USD,Azure Retail Prices API,2025-12-18T04:46:47.690317 +AZURE,centralindia,Standard_D4ps_v6,reserved_1y,NA,0.054566,USD,Azure Retail Prices API,2025-12-18T04:46:49.225927 +AZURE,centralindia,Standard_D4ps_v6,reserved_3y,NA,0.035122,USD,Azure Retail Prices API,2025-12-18T04:46:49.225932 +AZURE,centralindia,Standard_D4ps_v6,spot,NA,0.017076,USD,Azure Retail Prices API,2025-12-18T04:46:47.690079 +AZURE,centralindia,Standard_D4s_v3,on_demand,NA,0.21,USD,Azure Retail Prices API,2025-12-18T04:46:47.689949 +AZURE,centralindia,Standard_D4s_v3,reserved_1y,NA,0.122146,USD,Azure Retail Prices API,2025-12-18T04:46:49.225342 +AZURE,centralindia,Standard_D4s_v3,reserved_3y,NA,0.077017,USD,Azure Retail Prices API,2025-12-18T04:46:49.225346 +AZURE,centralindia,Standard_D4s_v3,spot,NA,0.038808,USD,Azure Retail Prices API,2025-12-18T04:46:47.688386 +AZURE,centralindia,Standard_D4s_v4,on_demand,NA,0.202,USD,Azure Retail Prices API,2025-12-18T04:46:47.689239 +AZURE,centralindia,Standard_D4s_v4,reserved_1y,NA,0.118721,USD,Azure Retail Prices API,2025-12-18T04:46:49.224216 +AZURE,centralindia,Standard_D4s_v4,reserved_3y,NA,0.075951,USD,Azure Retail Prices API,2025-12-18T04:46:49.224221 +AZURE,centralindia,Standard_D4s_v4,spot,NA,0.03733,USD,Azure Retail Prices API,2025-12-18T04:46:47.689939 +AZURE,centralindia,Standard_D4s_v5,on_demand,NA,0.202,USD,Azure Retail Prices API,2025-12-18T04:46:47.688634 +AZURE,centralindia,Standard_D4s_v5,reserved_1y,NA,0.119178,USD,Azure Retail Prices API,2025-12-18T04:46:49.223322 +AZURE,centralindia,Standard_D4s_v5,reserved_3y,NA,0.074734,USD,Azure Retail Prices API,2025-12-18T04:46:49.223327 +AZURE,centralindia,Standard_D4s_v5,spot,NA,0.03733,USD,Azure Retail Prices API,2025-12-18T04:46:47.689869 +AZURE,centralindia,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487882 +AZURE,centralindia,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487891 +AZURE,centralindia,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487895 +AZURE,centralindia,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487886 +AZURE,centralindia,Standard_D64_v3,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:46:47.689777 +AZURE,centralindia,Standard_D64_v3,reserved_1y,NA,1.954338,USD,Azure Retail Prices API,2025-12-18T04:46:49.225038 +AZURE,centralindia,Standard_D64_v3,reserved_3y,NA,1.232572,USD,Azure Retail Prices API,2025-12-18T04:46:49.225044 +AZURE,centralindia,Standard_D64_v3,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:46:47.688882 +AZURE,centralindia,Standard_D64a_v4,on_demand,NA,1.975,USD,Azure Retail Prices API,2025-12-18T04:46:47.689252 +AZURE,centralindia,Standard_D64a_v4,reserved_1y,NA,1.165639,USD,Azure Retail Prices API,2025-12-18T04:46:49.224238 +AZURE,centralindia,Standard_D64a_v4,reserved_3y,NA,0.750723,USD,Azure Retail Prices API,2025-12-18T04:46:49.224243 +AZURE,centralindia,Standard_D64a_v4,spot,NA,0.36498,USD,Azure Retail Prices API,2025-12-18T04:46:47.689560 +AZURE,centralindia,Standard_D64ads_v5,on_demand,NA,5.091,USD,Azure Retail Prices API,2025-12-18T04:46:47.689848 +AZURE,centralindia,Standard_D64ads_v5,reserved_1y,NA,1.266895,USD,Azure Retail Prices API,2025-12-18T04:46:49.225886 +AZURE,centralindia,Standard_D64ads_v5,reserved_3y,NA,0.815944,USD,Azure Retail Prices API,2025-12-18T04:46:49.225892 +AZURE,centralindia,Standard_D64ads_v5,spot,NA,0.398054,USD,Azure Retail Prices API,2025-12-18T04:46:47.689873 +AZURE,centralindia,Standard_D64ads_v6,on_demand,NA,2.362,USD,Azure Retail Prices API,2025-12-18T04:46:47.688985 +AZURE,centralindia,Standard_D64ads_v6,reserved_1y,NA,1.393379,USD,Azure Retail Prices API,2025-12-18T04:46:49.223912 +AZURE,centralindia,Standard_D64ads_v6,reserved_3y,NA,0.897412,USD,Azure Retail Prices API,2025-12-18T04:46:49.223917 +AZURE,centralindia,Standard_D64ads_v6,spot,NA,0.436498,USD,Azure Retail Prices API,2025-12-18T04:46:47.688475 +AZURE,centralindia,Standard_D64as_v4,on_demand,NA,1.975,USD,Azure Retail Prices API,2025-12-18T04:46:47.690015 +AZURE,centralindia,Standard_D64as_v4,reserved_1y,NA,1.165639,USD,Azure Retail Prices API,2025-12-18T04:46:49.225424 +AZURE,centralindia,Standard_D64as_v4,reserved_3y,NA,0.750723,USD,Azure Retail Prices API,2025-12-18T04:46:49.225429 +AZURE,centralindia,Standard_D64as_v4,spot,NA,0.36498,USD,Azure Retail Prices API,2025-12-18T04:46:47.688773 +AZURE,centralindia,Standard_D64as_v5,on_demand,NA,1.778,USD,Azure Retail Prices API,2025-12-18T04:46:47.689622 +AZURE,centralindia,Standard_D64as_v5,reserved_1y,NA,1.048744,USD,Azure Retail Prices API,2025-12-18T04:46:49.224805 +AZURE,centralindia,Standard_D64as_v5,reserved_3y,NA,0.675495,USD,Azure Retail Prices API,2025-12-18T04:46:49.224811 +AZURE,centralindia,Standard_D64as_v5,spot,NA,0.329641,USD,Azure Retail Prices API,2025-12-18T04:46:47.688435 +AZURE,centralindia,Standard_D64d_v4,on_demand,NA,3.904,USD,Azure Retail Prices API,2025-12-18T04:46:47.688955 +AZURE,centralindia,Standard_D64d_v4,reserved_1y,NA,2.295548,USD,Azure Retail Prices API,2025-12-18T04:46:49.223847 +AZURE,centralindia,Standard_D64d_v4,reserved_3y,NA,1.467922,USD,Azure Retail Prices API,2025-12-18T04:46:49.223853 +AZURE,centralindia,Standard_D64d_v4,spot,NA,0.721459,USD,Azure Retail Prices API,2025-12-18T04:46:47.689520 +AZURE,centralindia,Standard_D64ds_v4,on_demand,NA,3.904,USD,Azure Retail Prices API,2025-12-18T04:46:47.689854 +AZURE,centralindia,Standard_D64ds_v4,reserved_1y,NA,2.295548,USD,Azure Retail Prices API,2025-12-18T04:46:49.225172 +AZURE,centralindia,Standard_D64ds_v4,reserved_3y,NA,1.467922,USD,Azure Retail Prices API,2025-12-18T04:46:49.225178 +AZURE,centralindia,Standard_D64ds_v4,spot,NA,0.721459,USD,Azure Retail Prices API,2025-12-18T04:46:47.688677 +AZURE,centralindia,Standard_D64ds_v5,on_demand,NA,3.904,USD,Azure Retail Prices API,2025-12-18T04:46:47.689766 +AZURE,centralindia,Standard_D64ds_v5,reserved_1y,NA,2.303311,USD,Azure Retail Prices API,2025-12-18T04:46:49.225016 +AZURE,centralindia,Standard_D64ds_v5,reserved_3y,NA,1.483524,USD,Azure Retail Prices API,2025-12-18T04:46:49.225021 +AZURE,centralindia,Standard_D64ds_v5,spot,NA,0.721459,USD,Azure Retail Prices API,2025-12-18T04:46:47.689650 +AZURE,centralindia,Standard_D64ds_v6,on_demand,NA,4.195,USD,Azure Retail Prices API,2025-12-18T04:46:47.688438 +AZURE,centralindia,Standard_D64ds_v6,reserved_1y,NA,2.600571,USD,Azure Retail Prices API,2025-12-18T04:46:49.222912 +AZURE,centralindia,Standard_D64ds_v6,reserved_3y,NA,1.635883,USD,Azure Retail Prices API,2025-12-18T04:46:49.222917 +AZURE,centralindia,Standard_D64ds_v6,spot,NA,0.775236,USD,Azure Retail Prices API,2025-12-18T04:46:47.688587 +AZURE,centralindia,Standard_D64pds_v6,on_demand,NA,1.933,USD,Azure Retail Prices API,2025-12-18T04:46:47.689074 +AZURE,centralindia,Standard_D64pds_v6,reserved_1y,NA,1.140297,USD,Azure Retail Prices API,2025-12-18T04:46:49.224065 +AZURE,centralindia,Standard_D64pds_v6,reserved_3y,NA,0.734475,USD,Azure Retail Prices API,2025-12-18T04:46:49.224069 +AZURE,centralindia,Standard_D64pds_v6,spot,NA,0.357218,USD,Azure Retail Prices API,2025-12-18T04:46:47.689879 +AZURE,centralindia,Standard_D64ps_v6,on_demand,NA,1.478,USD,Azure Retail Prices API,2025-12-18T04:46:47.689989 +AZURE,centralindia,Standard_D64ps_v6,reserved_1y,NA,0.87226,USD,Azure Retail Prices API,2025-12-18T04:46:49.225381 +AZURE,centralindia,Standard_D64ps_v6,reserved_3y,NA,0.561796,USD,Azure Retail Prices API,2025-12-18T04:46:49.225386 +AZURE,centralindia,Standard_D64ps_v6,spot,NA,0.273134,USD,Azure Retail Prices API,2025-12-18T04:46:47.689889 +AZURE,centralindia,Standard_D64s_v3,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:46:47.688441 +AZURE,centralindia,Standard_D64s_v3,reserved_1y,NA,1.954338,USD,Azure Retail Prices API,2025-12-18T04:46:49.222922 +AZURE,centralindia,Standard_D64s_v3,reserved_3y,NA,1.232572,USD,Azure Retail Prices API,2025-12-18T04:46:49.222931 +AZURE,centralindia,Standard_D64s_v3,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:46:47.689983 +AZURE,centralindia,Standard_D64s_v4,on_demand,NA,3.232,USD,Azure Retail Prices API,2025-12-18T04:46:47.689494 +AZURE,centralindia,Standard_D64s_v4,reserved_1y,NA,1.900457,USD,Azure Retail Prices API,2025-12-18T04:46:49.224592 +AZURE,centralindia,Standard_D64s_v4,reserved_3y,NA,1.215221,USD,Azure Retail Prices API,2025-12-18T04:46:49.224597 +AZURE,centralindia,Standard_D64s_v4,spot,NA,0.597274,USD,Azure Retail Prices API,2025-12-18T04:46:47.689725 +AZURE,centralindia,Standard_D64s_v5,on_demand,NA,3.232,USD,Azure Retail Prices API,2025-12-18T04:46:47.688648 +AZURE,centralindia,Standard_D64s_v5,reserved_1y,NA,1.906849,USD,Azure Retail Prices API,2025-12-18T04:46:49.223353 +AZURE,centralindia,Standard_D64s_v5,reserved_3y,NA,1.195852,USD,Azure Retail Prices API,2025-12-18T04:46:49.223358 +AZURE,centralindia,Standard_D64s_v5,spot,NA,0.597274,USD,Azure Retail Prices API,2025-12-18T04:46:47.689400 +AZURE,centralindia,Standard_D8_v3,on_demand,NA,0.42,USD,Azure Retail Prices API,2025-12-18T04:46:47.690155 +AZURE,centralindia,Standard_D8_v3,reserved_1y,NA,0.244292,USD,Azure Retail Prices API,2025-12-18T04:46:49.225634 +AZURE,centralindia,Standard_D8_v3,reserved_3y,NA,0.154072,USD,Azure Retail Prices API,2025-12-18T04:46:49.225639 +AZURE,centralindia,Standard_D8_v3,spot,NA,0.077616,USD,Azure Retail Prices API,2025-12-18T04:46:47.688548 +AZURE,centralindia,Standard_D8a_v4,on_demand,NA,0.246,USD,Azure Retail Prices API,2025-12-18T04:46:47.689886 +AZURE,centralindia,Standard_D8a_v4,reserved_1y,NA,0.145548,USD,Azure Retail Prices API,2025-12-18T04:46:49.225247 +AZURE,centralindia,Standard_D8a_v4,reserved_3y,NA,0.09376,USD,Azure Retail Prices API,2025-12-18T04:46:49.225253 +AZURE,centralindia,Standard_D8a_v4,spot,NA,0.045461,USD,Azure Retail Prices API,2025-12-18T04:46:47.688628 +AZURE,centralindia,Standard_D8ads_v5,on_demand,NA,0.636,USD,Azure Retail Prices API,2025-12-18T04:46:47.688625 +AZURE,centralindia,Standard_D8ads_v5,reserved_1y,NA,0.158333,USD,Azure Retail Prices API,2025-12-18T04:46:49.223461 +AZURE,centralindia,Standard_D8ads_v5,reserved_3y,NA,0.101979,USD,Azure Retail Prices API,2025-12-18T04:46:49.223467 +AZURE,centralindia,Standard_D8ads_v5,spot,NA,0.049687,USD,Azure Retail Prices API,2025-12-18T04:46:47.689963 +AZURE,centralindia,Standard_D8ads_v6,on_demand,NA,0.295,USD,Azure Retail Prices API,2025-12-18T04:46:47.689526 +AZURE,centralindia,Standard_D8ads_v6,reserved_1y,NA,0.174201,USD,Azure Retail Prices API,2025-12-18T04:46:49.224670 +AZURE,centralindia,Standard_D8ads_v6,reserved_3y,NA,0.112177,USD,Azure Retail Prices API,2025-12-18T04:46:49.224675 +AZURE,centralindia,Standard_D8ads_v6,spot,NA,0.054516,USD,Azure Retail Prices API,2025-12-18T04:46:47.688539 +AZURE,centralindia,Standard_D8as_v4,on_demand,NA,0.246,USD,Azure Retail Prices API,2025-12-18T04:46:47.688466 +AZURE,centralindia,Standard_D8as_v4,reserved_1y,NA,0.145548,USD,Azure Retail Prices API,2025-12-18T04:46:49.222977 +AZURE,centralindia,Standard_D8as_v4,reserved_3y,NA,0.09376,USD,Azure Retail Prices API,2025-12-18T04:46:49.222983 +AZURE,centralindia,Standard_D8as_v4,spot,NA,0.045461,USD,Azure Retail Prices API,2025-12-18T04:46:47.688530 +AZURE,centralindia,Standard_D8as_v5,on_demand,NA,0.59,USD,Azure Retail Prices API,2025-12-18T04:46:47.688834 +AZURE,centralindia,Standard_D8as_v5,reserved_1y,NA,0.13105,USD,Azure Retail Prices API,2025-12-18T04:46:49.224827 +AZURE,centralindia,Standard_D8as_v5,reserved_3y,NA,0.084437,USD,Azure Retail Prices API,2025-12-18T04:46:49.224833 +AZURE,centralindia,Standard_D8as_v5,spot,NA,0.041159,USD,Azure Retail Prices API,2025-12-18T04:46:47.689599 +AZURE,centralindia,Standard_D8d_v4,on_demand,NA,0.488,USD,Azure Retail Prices API,2025-12-18T04:46:47.688566 +AZURE,centralindia,Standard_D8d_v4,reserved_1y,NA,0.286986,USD,Azure Retail Prices API,2025-12-18T04:46:49.223237 +AZURE,centralindia,Standard_D8d_v4,reserved_3y,NA,0.183486,USD,Azure Retail Prices API,2025-12-18T04:46:49.223242 +AZURE,centralindia,Standard_D8d_v4,spot,NA,0.090182,USD,Azure Retail Prices API,2025-12-18T04:46:47.688524 +AZURE,centralindia,Standard_D8ds_v4,on_demand,NA,0.488,USD,Azure Retail Prices API,2025-12-18T04:46:47.690056 +AZURE,centralindia,Standard_D8ds_v4,reserved_1y,NA,0.286986,USD,Azure Retail Prices API,2025-12-18T04:46:49.225507 +AZURE,centralindia,Standard_D8ds_v4,reserved_3y,NA,0.183486,USD,Azure Retail Prices API,2025-12-18T04:46:49.225512 +AZURE,centralindia,Standard_D8ds_v4,spot,NA,0.090182,USD,Azure Retail Prices API,2025-12-18T04:46:47.689681 +AZURE,centralindia,Standard_D8ds_v5,on_demand,NA,0.488,USD,Azure Retail Prices API,2025-12-18T04:46:47.689506 +AZURE,centralindia,Standard_D8ds_v5,reserved_1y,NA,0.2879,USD,Azure Retail Prices API,2025-12-18T04:46:49.224636 +AZURE,centralindia,Standard_D8ds_v5,reserved_3y,NA,0.185426,USD,Azure Retail Prices API,2025-12-18T04:46:49.224642 +AZURE,centralindia,Standard_D8ds_v5,spot,NA,0.090182,USD,Azure Retail Prices API,2025-12-18T04:46:47.688480 +AZURE,centralindia,Standard_D8ds_v6,on_demand,NA,0.524,USD,Azure Retail Prices API,2025-12-18T04:46:47.688802 +AZURE,centralindia,Standard_D8ds_v6,reserved_1y,NA,0.325114,USD,Azure Retail Prices API,2025-12-18T04:46:49.223645 +AZURE,centralindia,Standard_D8ds_v6,reserved_3y,NA,0.20449,USD,Azure Retail Prices API,2025-12-18T04:46:49.223650 +AZURE,centralindia,Standard_D8ds_v6,spot,NA,0.096835,USD,Azure Retail Prices API,2025-12-18T04:46:47.689277 +AZURE,centralindia,Standard_D8pds_v6,on_demand,NA,0.242,USD,Azure Retail Prices API,2025-12-18T04:46:47.690255 +AZURE,centralindia,Standard_D8pds_v6,reserved_1y,NA,0.14258,USD,Azure Retail Prices API,2025-12-18T04:46:49.225812 +AZURE,centralindia,Standard_D8pds_v6,reserved_3y,NA,0.091819,USD,Azure Retail Prices API,2025-12-18T04:46:49.225818 +AZURE,centralindia,Standard_D8pds_v6,spot,NA,0.044722,USD,Azure Retail Prices API,2025-12-18T04:46:47.688645 +AZURE,centralindia,Standard_D8ps_v6,on_demand,NA,0.185,USD,Azure Retail Prices API,2025-12-18T04:46:47.688671 +AZURE,centralindia,Standard_D8ps_v6,reserved_1y,NA,0.109018,USD,Azure Retail Prices API,2025-12-18T04:46:49.223417 +AZURE,centralindia,Standard_D8ps_v6,reserved_3y,NA,0.070205,USD,Azure Retail Prices API,2025-12-18T04:46:49.223422 +AZURE,centralindia,Standard_D8ps_v6,spot,NA,0.034188,USD,Azure Retail Prices API,2025-12-18T04:46:47.689060 +AZURE,centralindia,Standard_D8s_v3,on_demand,NA,0.42,USD,Azure Retail Prices API,2025-12-18T04:46:47.688429 +AZURE,centralindia,Standard_D8s_v3,reserved_1y,NA,0.244292,USD,Azure Retail Prices API,2025-12-18T04:46:49.222889 +AZURE,centralindia,Standard_D8s_v3,reserved_3y,NA,0.154072,USD,Azure Retail Prices API,2025-12-18T04:46:49.222895 +AZURE,centralindia,Standard_D8s_v3,spot,NA,0.077616,USD,Azure Retail Prices API,2025-12-18T04:46:47.689448 +AZURE,centralindia,Standard_D8s_v4,on_demand,NA,0.404,USD,Azure Retail Prices API,2025-12-18T04:46:47.688831 +AZURE,centralindia,Standard_D8s_v4,reserved_1y,NA,0.237557,USD,Azure Retail Prices API,2025-12-18T04:46:49.223699 +AZURE,centralindia,Standard_D8s_v4,reserved_3y,NA,0.151903,USD,Azure Retail Prices API,2025-12-18T04:46:49.223704 +AZURE,centralindia,Standard_D8s_v4,spot,NA,0.074659,USD,Azure Retail Prices API,2025-12-18T04:46:47.688875 +AZURE,centralindia,Standard_D8s_v5,on_demand,NA,0.404,USD,Azure Retail Prices API,2025-12-18T04:46:47.688457 +AZURE,centralindia,Standard_D8s_v5,reserved_1y,NA,0.238356,USD,Azure Retail Prices API,2025-12-18T04:46:49.222967 +AZURE,centralindia,Standard_D8s_v5,reserved_3y,NA,0.149467,USD,Azure Retail Prices API,2025-12-18T04:46:49.222972 +AZURE,centralindia,Standard_D8s_v5,spot,NA,0.074659,USD,Azure Retail Prices API,2025-12-18T04:46:47.689341 +AZURE,centralindia,Standard_D96a_v4,on_demand,NA,2.962,USD,Azure Retail Prices API,2025-12-18T04:46:47.689960 +AZURE,centralindia,Standard_D96a_v4,reserved_1y,NA,1.747717,USD,Azure Retail Prices API,2025-12-18T04:46:49.225351 +AZURE,centralindia,Standard_D96a_v4,reserved_3y,NA,1.125647,USD,Azure Retail Prices API,2025-12-18T04:46:49.225355 +AZURE,centralindia,Standard_D96a_v4,spot,NA,0.547378,USD,Azure Retail Prices API,2025-12-18T04:46:47.689814 +AZURE,centralindia,Standard_D96ads_v5,on_demand,NA,3.221,USD,Azure Retail Prices API,2025-12-18T04:46:47.688489 +AZURE,centralindia,Standard_D96ads_v5,reserved_1y,NA,1.900228,USD,Azure Retail Prices API,2025-12-18T04:46:49.223044 +AZURE,centralindia,Standard_D96ads_v5,reserved_3y,NA,1.223896,USD,Azure Retail Prices API,2025-12-18T04:46:49.223049 +AZURE,centralindia,Standard_D96ads_v5,spot,NA,0.597173,USD,Azure Retail Prices API,2025-12-18T04:46:47.689913 +AZURE,centralindia,Standard_D96ads_v6,on_demand,NA,3.542,USD,Azure Retail Prices API,2025-12-18T04:46:47.689137 +AZURE,centralindia,Standard_D96ads_v6,reserved_1y,NA,2.090068,USD,Azure Retail Prices API,2025-12-18T04:46:49.224113 +AZURE,centralindia,Standard_D96ads_v6,reserved_3y,NA,1.346119,USD,Azure Retail Prices API,2025-12-18T04:46:49.224118 +AZURE,centralindia,Standard_D96ads_v6,spot,NA,0.654562,USD,Azure Retail Prices API,2025-12-18T04:46:47.690159 +AZURE,centralindia,Standard_D96as_v4,on_demand,NA,2.962,USD,Azure Retail Prices API,2025-12-18T04:46:47.689876 +AZURE,centralindia,Standard_D96as_v4,reserved_1y,NA,1.747717,USD,Azure Retail Prices API,2025-12-18T04:46:49.225216 +AZURE,centralindia,Standard_D96as_v4,reserved_3y,NA,1.125647,USD,Azure Retail Prices API,2025-12-18T04:46:49.225222 +AZURE,centralindia,Standard_D96as_v4,spot,NA,0.547378,USD,Azure Retail Prices API,2025-12-18T04:46:47.689970 +AZURE,centralindia,Standard_D96as_v5,on_demand,NA,2.666,USD,Azure Retail Prices API,2025-12-18T04:46:47.688975 +AZURE,centralindia,Standard_D96as_v5,reserved_1y,NA,1.573174,USD,Azure Retail Prices API,2025-12-18T04:46:49.223891 +AZURE,centralindia,Standard_D96as_v5,reserved_3y,NA,1.013242,USD,Azure Retail Prices API,2025-12-18T04:46:49.223896 +AZURE,centralindia,Standard_D96as_v5,spot,NA,0.494276,USD,Azure Retail Prices API,2025-12-18T04:46:47.688519 +AZURE,centralindia,Standard_D96ds_v5,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:46:47.690172 +AZURE,centralindia,Standard_D96ds_v5,reserved_1y,NA,3.455023,USD,Azure Retail Prices API,2025-12-18T04:46:49.225655 +AZURE,centralindia,Standard_D96ds_v5,reserved_3y,NA,2.225266,USD,Azure Retail Prices API,2025-12-18T04:46:49.225660 +AZURE,centralindia,Standard_D96ds_v5,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:46:47.689838 +AZURE,centralindia,Standard_D96ds_v6,on_demand,NA,6.292,USD,Azure Retail Prices API,2025-12-18T04:46:47.690034 +AZURE,centralindia,Standard_D96ds_v6,reserved_1y,NA,3.900913,USD,Azure Retail Prices API,2025-12-18T04:46:49.225466 +AZURE,centralindia,Standard_D96ds_v6,reserved_3y,NA,2.453805,USD,Azure Retail Prices API,2025-12-18T04:46:49.225471 +AZURE,centralindia,Standard_D96ds_v6,spot,NA,1.162762,USD,Azure Retail Prices API,2025-12-18T04:46:47.689596 +AZURE,centralindia,Standard_D96pds_v6,on_demand,NA,2.899,USD,Azure Retail Prices API,2025-12-18T04:46:47.689234 +AZURE,centralindia,Standard_D96pds_v6,reserved_1y,NA,1.710502,USD,Azure Retail Prices API,2025-12-18T04:46:49.224207 +AZURE,centralindia,Standard_D96pds_v6,reserved_3y,NA,1.101712,USD,Azure Retail Prices API,2025-12-18T04:46:49.224212 +AZURE,centralindia,Standard_D96pds_v6,spot,NA,0.535735,USD,Azure Retail Prices API,2025-12-18T04:46:47.690005 +AZURE,centralindia,Standard_D96ps_v6,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:46:47.688551 +AZURE,centralindia,Standard_D96ps_v6,reserved_1y,NA,1.308333,USD,Azure Retail Prices API,2025-12-18T04:46:49.223184 +AZURE,centralindia,Standard_D96ps_v6,reserved_3y,NA,0.842694,USD,Azure Retail Prices API,2025-12-18T04:46:49.223189 +AZURE,centralindia,Standard_D96ps_v6,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:46:47.690177 +AZURE,centralindia,Standard_D96s_v5,on_demand,NA,4.848,USD,Azure Retail Prices API,2025-12-18T04:46:47.690309 +AZURE,centralindia,Standard_D96s_v5,reserved_1y,NA,2.860274,USD,Azure Retail Prices API,2025-12-18T04:46:49.225907 +AZURE,centralindia,Standard_D96s_v5,reserved_3y,NA,1.79376,USD,Azure Retail Prices API,2025-12-18T04:46:49.225912 +AZURE,centralindia,Standard_D96s_v5,spot,NA,0.89591,USD,Azure Retail Prices API,2025-12-18T04:46:47.689314 +AZURE,centralindia,Standard_DC16ads_v5,on_demand,NA,0.537,USD,Azure Retail Prices API,2025-12-18T04:46:47.689529 +AZURE,centralindia,Standard_DC16ads_v5,reserved_1y,NA,0.429452,USD,Azure Retail Prices API,2025-12-18T04:46:49.224681 +AZURE,centralindia,Standard_DC16ads_v5,reserved_3y,NA,0.32207,USD,Azure Retail Prices API,2025-12-18T04:46:49.224687 +AZURE,centralindia,Standard_DC16ads_v5,spot,NA,0.101332,USD,Azure Retail Prices API,2025-12-18T04:46:47.689268 +AZURE,centralindia,Standard_DC16ads_v6,on_demand,NA,0.59,USD,Azure Retail Prices API,2025-12-18T04:46:47.689223 +AZURE,centralindia,Standard_DC16ads_v6,reserved_1y,NA,0.348288,USD,Azure Retail Prices API,2025-12-18T04:46:49.224199 +AZURE,centralindia,Standard_DC16ads_v6,reserved_3y,NA,0.224353,USD,Azure Retail Prices API,2025-12-18T04:46:49.224203 +AZURE,centralindia,Standard_DC16ads_v6,spot,NA,0.109032,USD,Azure Retail Prices API,2025-12-18T04:46:47.688595 +AZURE,centralindia,Standard_DC16as_v5,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:46:47.689439 +AZURE,centralindia,Standard_DC16as_v5,reserved_1y,NA,0.355479,USD,Azure Retail Prices API,2025-12-18T04:46:49.224534 +AZURE,centralindia,Standard_DC16as_v5,reserved_3y,NA,0.266629,USD,Azure Retail Prices API,2025-12-18T04:46:49.224540 +AZURE,centralindia,Standard_DC16as_v5,spot,NA,0.083783,USD,Azure Retail Prices API,2025-12-18T04:46:47.690131 +AZURE,centralindia,Standard_DC2ads_v6,on_demand,NA,0.0738,USD,Azure Retail Prices API,2025-12-18T04:46:47.689046 +AZURE,centralindia,Standard_DC2ads_v6,reserved_1y,NA,0.043493,USD,Azure Retail Prices API,2025-12-18T04:46:49.224028 +AZURE,centralindia,Standard_DC2ads_v6,reserved_3y,NA,0.028044,USD,Azure Retail Prices API,2025-12-18T04:46:49.224033 +AZURE,centralindia,Standard_DC2ads_v6,spot,NA,0.013638,USD,Azure Retail Prices API,2025-12-18T04:46:47.690273 +AZURE,centralindia,Standard_DC32ads_v5,on_demand,NA,1.074,USD,Azure Retail Prices API,2025-12-18T04:46:47.688797 +AZURE,centralindia,Standard_DC32ads_v5,reserved_1y,NA,0.858904,USD,Azure Retail Prices API,2025-12-18T04:46:49.223634 +AZURE,centralindia,Standard_DC32ads_v5,reserved_3y,NA,0.644178,USD,Azure Retail Prices API,2025-12-18T04:46:49.223640 +AZURE,centralindia,Standard_DC32ads_v5,spot,NA,0.202664,USD,Azure Retail Prices API,2025-12-18T04:46:47.688947 +AZURE,centralindia,Standard_DC32ads_v6,on_demand,NA,1.181,USD,Azure Retail Prices API,2025-12-18T04:46:47.688920 +AZURE,centralindia,Standard_DC32ads_v6,reserved_1y,NA,0.696689,USD,Azure Retail Prices API,2025-12-18T04:46:49.223805 +AZURE,centralindia,Standard_DC32ads_v6,reserved_3y,NA,0.448706,USD,Azure Retail Prices API,2025-12-18T04:46:49.223810 +AZURE,centralindia,Standard_DC32ads_v6,spot,NA,0.218249,USD,Azure Retail Prices API,2025-12-18T04:46:47.690228 +AZURE,centralindia,Standard_DC32as_v5,on_demand,NA,0.889,USD,Azure Retail Prices API,2025-12-18T04:46:47.689124 +AZURE,centralindia,Standard_DC32as_v5,reserved_1y,NA,0.711073,USD,Azure Retail Prices API,2025-12-18T04:46:49.224092 +AZURE,centralindia,Standard_DC32as_v5,reserved_3y,NA,0.533295,USD,Azure Retail Prices API,2025-12-18T04:46:49.224097 +AZURE,centralindia,Standard_DC32as_v5,spot,NA,0.167754,USD,Azure Retail Prices API,2025-12-18T04:46:47.690044 +AZURE,centralindia,Standard_DC48ads_v5,on_demand,NA,1.61,USD,Azure Retail Prices API,2025-12-18T04:46:47.689927 +AZURE,centralindia,Standard_DC48ads_v5,reserved_1y,NA,1.288356,USD,Azure Retail Prices API,2025-12-18T04:46:49.225312 +AZURE,centralindia,Standard_DC48ads_v5,reserved_3y,NA,0.966248,USD,Azure Retail Prices API,2025-12-18T04:46:49.225317 +AZURE,centralindia,Standard_DC48ads_v5,spot,NA,0.303807,USD,Azure Retail Prices API,2025-12-18T04:46:47.689826 +AZURE,centralindia,Standard_DC48ads_v6,on_demand,NA,1.771,USD,Azure Retail Prices API,2025-12-18T04:46:47.688536 +AZURE,centralindia,Standard_DC48ads_v6,reserved_1y,NA,1.044977,USD,Azure Retail Prices API,2025-12-18T04:46:49.223162 +AZURE,centralindia,Standard_DC48ads_v6,reserved_3y,NA,0.673059,USD,Azure Retail Prices API,2025-12-18T04:46:49.223167 +AZURE,centralindia,Standard_DC48ads_v6,spot,NA,0.327281,USD,Azure Retail Prices API,2025-12-18T04:46:47.690257 +AZURE,centralindia,Standard_DC48as_v5,on_demand,NA,1.333,USD,Azure Retail Prices API,2025-12-18T04:46:47.690264 +AZURE,centralindia,Standard_DC48as_v5,reserved_1y,NA,1.066553,USD,Azure Retail Prices API,2025-12-18T04:46:49.225833 +AZURE,centralindia,Standard_DC48as_v5,reserved_3y,NA,0.799924,USD,Azure Retail Prices API,2025-12-18T04:46:49.225838 +AZURE,centralindia,Standard_DC48as_v5,spot,NA,0.251537,USD,Azure Retail Prices API,2025-12-18T04:46:47.689557 +AZURE,centralindia,Standard_DC4ads_v5,on_demand,NA,0.134,USD,Azure Retail Prices API,2025-12-18T04:46:47.689667 +AZURE,centralindia,Standard_DC4ads_v5,reserved_1y,NA,0.107306,USD,Azure Retail Prices API,2025-12-18T04:46:49.224839 +AZURE,centralindia,Standard_DC4ads_v5,reserved_3y,NA,0.080518,USD,Azure Retail Prices API,2025-12-18T04:46:49.224844 +AZURE,centralindia,Standard_DC4ads_v5,spot,NA,0.025286,USD,Azure Retail Prices API,2025-12-18T04:46:47.689320 +AZURE,centralindia,Standard_DC4ads_v6,on_demand,NA,0.148,USD,Azure Retail Prices API,2025-12-18T04:46:47.688582 +AZURE,centralindia,Standard_DC4ads_v6,reserved_1y,NA,0.0871,USD,Azure Retail Prices API,2025-12-18T04:46:49.223248 +AZURE,centralindia,Standard_DC4ads_v6,reserved_3y,NA,0.056088,USD,Azure Retail Prices API,2025-12-18T04:46:49.223253 +AZURE,centralindia,Standard_DC4ads_v6,spot,NA,0.02735,USD,Azure Retail Prices API,2025-12-18T04:46:47.688851 +AZURE,centralindia,Standard_DC4as_v5,on_demand,NA,0.111,USD,Azure Retail Prices API,2025-12-18T04:46:47.689098 +AZURE,centralindia,Standard_DC4as_v5,reserved_1y,NA,0.088927,USD,Azure Retail Prices API,2025-12-18T04:46:49.224073 +AZURE,centralindia,Standard_DC4as_v5,reserved_3y,NA,0.066667,USD,Azure Retail Prices API,2025-12-18T04:46:49.224078 +AZURE,centralindia,Standard_DC4as_v5,spot,NA,0.020946,USD,Azure Retail Prices API,2025-12-18T04:46:47.688897 +AZURE,centralindia,Standard_DC64ads_v5,on_demand,NA,2.147,USD,Azure Retail Prices API,2025-12-18T04:46:47.689165 +AZURE,centralindia,Standard_DC64ads_v5,reserved_1y,NA,1.717808,USD,Azure Retail Prices API,2025-12-18T04:46:49.224167 +AZURE,centralindia,Standard_DC64ads_v5,reserved_3y,NA,1.288318,USD,Azure Retail Prices API,2025-12-18T04:46:49.224172 +AZURE,centralindia,Standard_DC64ads_v5,spot,NA,0.405139,USD,Azure Retail Prices API,2025-12-18T04:46:47.689403 +AZURE,centralindia,Standard_DC64ads_v6,on_demand,NA,2.362,USD,Azure Retail Prices API,2025-12-18T04:46:47.688848 +AZURE,centralindia,Standard_DC64ads_v6,reserved_1y,NA,1.393379,USD,Azure Retail Prices API,2025-12-18T04:46:49.223720 +AZURE,centralindia,Standard_DC64ads_v6,reserved_3y,NA,0.897412,USD,Azure Retail Prices API,2025-12-18T04:46:49.223725 +AZURE,centralindia,Standard_DC64ads_v6,spot,NA,0.436498,USD,Azure Retail Prices API,2025-12-18T04:46:47.689485 +AZURE,centralindia,Standard_DC64as_v5,on_demand,NA,1.778,USD,Azure Retail Prices API,2025-12-18T04:46:47.690225 +AZURE,centralindia,Standard_DC64as_v5,reserved_1y,NA,1.422032,USD,Azure Retail Prices API,2025-12-18T04:46:49.225729 +AZURE,centralindia,Standard_DC64as_v5,reserved_3y,NA,1.066553,USD,Azure Retail Prices API,2025-12-18T04:46:49.225734 +AZURE,centralindia,Standard_DC64as_v5,spot,NA,0.335509,USD,Azure Retail Prices API,2025-12-18T04:46:47.689367 +AZURE,centralindia,Standard_DC8ads_v5,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:46:47.689567 +AZURE,centralindia,Standard_DC8ads_v5,reserved_1y,NA,0.214726,USD,Azure Retail Prices API,2025-12-18T04:46:49.224750 +AZURE,centralindia,Standard_DC8ads_v5,reserved_3y,NA,0.161035,USD,Azure Retail Prices API,2025-12-18T04:46:49.224755 +AZURE,centralindia,Standard_DC8ads_v5,spot,NA,0.050572,USD,Azure Retail Prices API,2025-12-18T04:46:47.688495 +AZURE,centralindia,Standard_DC8ads_v6,on_demand,NA,0.295,USD,Azure Retail Prices API,2025-12-18T04:46:47.689329 +AZURE,centralindia,Standard_DC8ads_v6,reserved_1y,NA,0.174201,USD,Azure Retail Prices API,2025-12-18T04:46:49.224393 +AZURE,centralindia,Standard_DC8ads_v6,reserved_3y,NA,0.112177,USD,Azure Retail Prices API,2025-12-18T04:46:49.224398 +AZURE,centralindia,Standard_DC8ads_v6,spot,NA,0.054516,USD,Azure Retail Prices API,2025-12-18T04:46:47.688860 +AZURE,centralindia,Standard_DC8as_v5,on_demand,NA,0.222,USD,Azure Retail Prices API,2025-12-18T04:46:47.689609 +AZURE,centralindia,Standard_DC8as_v5,reserved_1y,NA,0.17774,USD,Azure Retail Prices API,2025-12-18T04:46:49.224793 +AZURE,centralindia,Standard_DC8as_v5,reserved_3y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:46:49.224799 +AZURE,centralindia,Standard_DC8as_v5,spot,NA,0.041891,USD,Azure Retail Prices API,2025-12-18T04:46:47.688899 +AZURE,centralindia,Standard_DC96ads_v5,on_demand,NA,3.221,USD,Azure Retail Prices API,2025-12-18T04:46:47.690168 +AZURE,centralindia,Standard_DC96ads_v5,reserved_1y,NA,2.576598,USD,Azure Retail Prices API,2025-12-18T04:46:49.225644 +AZURE,centralindia,Standard_DC96ads_v5,reserved_3y,NA,1.932496,USD,Azure Retail Prices API,2025-12-18T04:46:49.225649 +AZURE,centralindia,Standard_DC96ads_v5,spot,NA,0.607803,USD,Azure Retail Prices API,2025-12-18T04:46:47.688999 +AZURE,centralindia,Standard_DC96ads_v6,on_demand,NA,3.542,USD,Azure Retail Prices API,2025-12-18T04:46:47.688788 +AZURE,centralindia,Standard_DC96ads_v6,reserved_1y,NA,2.090068,USD,Azure Retail Prices API,2025-12-18T04:46:49.223613 +AZURE,centralindia,Standard_DC96ads_v6,reserved_3y,NA,1.346119,USD,Azure Retail Prices API,2025-12-18T04:46:49.223618 +AZURE,centralindia,Standard_DC96ads_v6,spot,NA,0.654562,USD,Azure Retail Prices API,2025-12-18T04:46:47.689462 +AZURE,centralindia,Standard_DC96as_v5,on_demand,NA,2.666,USD,Azure Retail Prices API,2025-12-18T04:46:47.689063 +AZURE,centralindia,Standard_DC96as_v5,reserved_1y,NA,2.133105,USD,Azure Retail Prices API,2025-12-18T04:46:49.224057 +AZURE,centralindia,Standard_DC96as_v5,reserved_3y,NA,1.599848,USD,Azure Retail Prices API,2025-12-18T04:46:49.224061 +AZURE,centralindia,Standard_DC96as_v5,spot,NA,0.503074,USD,Azure Retail Prices API,2025-12-18T04:46:47.689210 +AZURE,centralindia,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495649 +AZURE,centralindia,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495662 +AZURE,centralindia,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495669 +AZURE,centralindia,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495655 +AZURE,centralindia,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496553 +AZURE,centralindia,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496561 +AZURE,centralindia,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496566 +AZURE,centralindia,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496557 +AZURE,centralindia,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497410 +AZURE,centralindia,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497418 +AZURE,centralindia,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497422 +AZURE,centralindia,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497414 +AZURE,centralindia,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498177 +AZURE,centralindia,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498185 +AZURE,centralindia,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498189 +AZURE,centralindia,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498181 +AZURE,centralindia,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492019 +AZURE,centralindia,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492028 +AZURE,centralindia,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492032 +AZURE,centralindia,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492024 +AZURE,centralindia,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492731 +AZURE,centralindia,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492739 +AZURE,centralindia,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492743 +AZURE,centralindia,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492735 +AZURE,centralindia,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493465 +AZURE,centralindia,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493474 +AZURE,centralindia,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493478 +AZURE,centralindia,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493470 +AZURE,centralindia,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494177 +AZURE,centralindia,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494186 +AZURE,centralindia,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494190 +AZURE,centralindia,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494181 +AZURE,centralindia,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494890 +AZURE,centralindia,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494898 +AZURE,centralindia,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494902 +AZURE,centralindia,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494894 +AZURE,centralindia,Standard_E128ds_v6,on_demand,NA,10.798,USD,Azure Retail Prices API,2025-12-18T04:46:47.690223 +AZURE,centralindia,Standard_E128ds_v6,reserved_1y,NA,6.694863,USD,Azure Retail Prices API,2025-12-18T04:46:49.225718 +AZURE,centralindia,Standard_E128ds_v6,reserved_3y,NA,4.211263,USD,Azure Retail Prices API,2025-12-18T04:46:49.225723 +AZURE,centralindia,Standard_E128ds_v6,spot,NA,1.99547,USD,Azure Retail Prices API,2025-12-18T04:46:47.688950 +AZURE,centralindia,Standard_E16_v3,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:46:47.690234 +AZURE,centralindia,Standard_E16_v3,reserved_1y,NA,0.643037,USD,Azure Retail Prices API,2025-12-18T04:46:49.225749 +AZURE,centralindia,Standard_E16_v3,reserved_3y,NA,0.41347,USD,Azure Retail Prices API,2025-12-18T04:46:49.225754 +AZURE,centralindia,Standard_E16_v3,spot,NA,0.202541,USD,Azure Retail Prices API,2025-12-18T04:46:47.688636 +AZURE,centralindia,Standard_E16a_v4,on_demand,NA,0.635,USD,Azure Retail Prices API,2025-12-18T04:46:47.689016 +AZURE,centralindia,Standard_E16a_v4,reserved_1y,NA,0.375,USD,Azure Retail Prices API,2025-12-18T04:46:49.223976 +AZURE,centralindia,Standard_E16a_v4,reserved_3y,NA,0.241514,USD,Azure Retail Prices API,2025-12-18T04:46:49.223981 +AZURE,centralindia,Standard_E16a_v4,spot,NA,0.117348,USD,Azure Retail Prices API,2025-12-18T04:46:47.688576 +AZURE,centralindia,Standard_E16ads_v5,on_demand,NA,0.664,USD,Azure Retail Prices API,2025-12-18T04:46:47.690037 +AZURE,centralindia,Standard_E16ads_v5,reserved_1y,NA,0.392009,USD,Azure Retail Prices API,2025-12-18T04:46:49.225477 +AZURE,centralindia,Standard_E16ads_v5,reserved_3y,NA,0.252473,USD,Azure Retail Prices API,2025-12-18T04:46:49.225482 +AZURE,centralindia,Standard_E16ads_v5,spot,NA,0.122707,USD,Azure Retail Prices API,2025-12-18T04:46:47.689845 +AZURE,centralindia,Standard_E16ads_v6,on_demand,NA,0.75,USD,Azure Retail Prices API,2025-12-18T04:46:47.689264 +AZURE,centralindia,Standard_E16ads_v6,reserved_1y,NA,0.442694,USD,Azure Retail Prices API,2025-12-18T04:46:49.224249 +AZURE,centralindia,Standard_E16ads_v6,reserved_3y,NA,0.28516,USD,Azure Retail Prices API,2025-12-18T04:46:49.224253 +AZURE,centralindia,Standard_E16ads_v6,spot,NA,0.1386,USD,Azure Retail Prices API,2025-12-18T04:46:47.690306 +AZURE,centralindia,Standard_E16as_v4,on_demand,NA,0.635,USD,Azure Retail Prices API,2025-12-18T04:46:47.689993 +AZURE,centralindia,Standard_E16as_v4,reserved_1y,NA,0.375,USD,Azure Retail Prices API,2025-12-18T04:46:49.225392 +AZURE,centralindia,Standard_E16as_v4,reserved_3y,NA,0.241514,USD,Azure Retail Prices API,2025-12-18T04:46:49.225397 +AZURE,centralindia,Standard_E16as_v4,spot,NA,0.117348,USD,Azure Retail Prices API,2025-12-18T04:46:47.690186 +AZURE,centralindia,Standard_E16as_v5,on_demand,NA,1.308,USD,Azure Retail Prices API,2025-12-18T04:46:47.689057 +AZURE,centralindia,Standard_E16as_v5,reserved_1y,NA,0.337443,USD,Azure Retail Prices API,2025-12-18T04:46:49.224337 +AZURE,centralindia,Standard_E16as_v5,reserved_3y,NA,0.217352,USD,Azure Retail Prices API,2025-12-18T04:46:49.224342 +AZURE,centralindia,Standard_E16as_v5,spot,NA,0.105706,USD,Azure Retail Prices API,2025-12-18T04:46:47.690104 +AZURE,centralindia,Standard_E16d_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:47.689783 +AZURE,centralindia,Standard_E16d_v4,reserved_1y,NA,0.710274,USD,Azure Retail Prices API,2025-12-18T04:46:49.225060 +AZURE,centralindia,Standard_E16d_v4,reserved_3y,NA,0.454224,USD,Azure Retail Prices API,2025-12-18T04:46:49.225066 +AZURE,centralindia,Standard_E16d_v4,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:47.689547 +AZURE,centralindia,Standard_E16ds_v4,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:47.690073 +AZURE,centralindia,Standard_E16ds_v4,reserved_1y,NA,0.710274,USD,Azure Retail Prices API,2025-12-18T04:46:49.225549 +AZURE,centralindia,Standard_E16ds_v4,reserved_3y,NA,0.454224,USD,Azure Retail Prices API,2025-12-18T04:46:49.225555 +AZURE,centralindia,Standard_E16ds_v4,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:47.689200 +AZURE,centralindia,Standard_E16ds_v5,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:46:47.690181 +AZURE,centralindia,Standard_E16ds_v5,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:46:49.225666 +AZURE,centralindia,Standard_E16ds_v5,reserved_3y,NA,0.459056,USD,Azure Retail Prices API,2025-12-18T04:46:49.225671 +AZURE,centralindia,Standard_E16ds_v5,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:47.689095 +AZURE,centralindia,Standard_E16ds_v6,on_demand,NA,1.35,USD,Azure Retail Prices API,2025-12-18T04:46:47.688729 +AZURE,centralindia,Standard_E16ds_v6,reserved_1y,NA,0.836872,USD,Azure Retail Prices API,2025-12-18T04:46:49.223516 +AZURE,centralindia,Standard_E16ds_v6,reserved_3y,NA,0.526408,USD,Azure Retail Prices API,2025-12-18T04:46:49.223521 +AZURE,centralindia,Standard_E16ds_v6,spot,NA,0.24948,USD,Azure Retail Prices API,2025-12-18T04:46:47.688805 +AZURE,centralindia,Standard_E16pds_v6,on_demand,NA,0.614,USD,Azure Retail Prices API,2025-12-18T04:46:47.689592 +AZURE,centralindia,Standard_E16pds_v6,reserved_1y,NA,0.362443,USD,Azure Retail Prices API,2025-12-18T04:46:49.224771 +AZURE,centralindia,Standard_E16pds_v6,reserved_3y,NA,0.233486,USD,Azure Retail Prices API,2025-12-18T04:46:49.224776 +AZURE,centralindia,Standard_E16pds_v6,spot,NA,0.113467,USD,Azure Retail Prices API,2025-12-18T04:46:47.689905 +AZURE,centralindia,Standard_E16ps_v6,on_demand,NA,0.485,USD,Azure Retail Prices API,2025-12-18T04:46:47.689756 +AZURE,centralindia,Standard_E16ps_v6,reserved_1y,NA,0.286073,USD,Azure Retail Prices API,2025-12-18T04:46:49.224993 +AZURE,centralindia,Standard_E16ps_v6,reserved_3y,NA,0.184209,USD,Azure Retail Prices API,2025-12-18T04:46:49.224999 +AZURE,centralindia,Standard_E16ps_v6,spot,NA,0.089628,USD,Azure Retail Prices API,2025-12-18T04:46:47.689392 +AZURE,centralindia,Standard_E16s_v3,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:46:47.689482 +AZURE,centralindia,Standard_E16s_v3,reserved_1y,NA,0.643037,USD,Azure Retail Prices API,2025-12-18T04:46:49.224580 +AZURE,centralindia,Standard_E16s_v3,reserved_3y,NA,0.41347,USD,Azure Retail Prices API,2025-12-18T04:46:49.224586 +AZURE,centralindia,Standard_E16s_v3,spot,NA,0.202541,USD,Azure Retail Prices API,2025-12-18T04:46:47.690326 +AZURE,centralindia,Standard_E16s_v4,on_demand,NA,1.04,USD,Azure Retail Prices API,2025-12-18T04:46:47.690025 +AZURE,centralindia,Standard_E16s_v4,reserved_1y,NA,0.608447,USD,Azure Retail Prices API,2025-12-18T04:46:49.225455 +AZURE,centralindia,Standard_E16s_v4,reserved_3y,NA,0.391058,USD,Azure Retail Prices API,2025-12-18T04:46:49.225461 +AZURE,centralindia,Standard_E16s_v4,spot,NA,0.192192,USD,Azure Retail Prices API,2025-12-18T04:46:47.688683 +AZURE,centralindia,Standard_E16s_v5,on_demand,NA,1.04,USD,Azure Retail Prices API,2025-12-18T04:46:47.689153 +AZURE,centralindia,Standard_E16s_v5,reserved_1y,NA,0.613584,USD,Azure Retail Prices API,2025-12-18T04:46:49.224134 +AZURE,centralindia,Standard_E16s_v5,reserved_3y,NA,0.384817,USD,Azure Retail Prices API,2025-12-18T04:46:49.224139 +AZURE,centralindia,Standard_E16s_v5,spot,NA,0.192192,USD,Azure Retail Prices API,2025-12-18T04:46:47.689421 +AZURE,centralindia,Standard_E20a_v4,on_demand,NA,0.794,USD,Azure Retail Prices API,2025-12-18T04:46:47.689162 +AZURE,centralindia,Standard_E20a_v4,reserved_1y,NA,0.468721,USD,Azure Retail Prices API,2025-12-18T04:46:49.224156 +AZURE,centralindia,Standard_E20a_v4,reserved_3y,NA,0.301903,USD,Azure Retail Prices API,2025-12-18T04:46:49.224162 +AZURE,centralindia,Standard_E20a_v4,spot,NA,0.146731,USD,Azure Retail Prices API,2025-12-18T04:46:47.690119 +AZURE,centralindia,Standard_E20ads_v5,on_demand,NA,1.751,USD,Azure Retail Prices API,2025-12-18T04:46:47.688734 +AZURE,centralindia,Standard_E20ads_v5,reserved_1y,NA,0.489954,USD,Azure Retail Prices API,2025-12-18T04:46:49.224427 +AZURE,centralindia,Standard_E20ads_v5,reserved_3y,NA,0.315601,USD,Azure Retail Prices API,2025-12-18T04:46:49.224433 +AZURE,centralindia,Standard_E20ads_v5,spot,NA,0.153384,USD,Azure Retail Prices API,2025-12-18T04:46:47.688953 +AZURE,centralindia,Standard_E20ads_v6,on_demand,NA,0.938,USD,Azure Retail Prices API,2025-12-18T04:46:47.689740 +AZURE,centralindia,Standard_E20ads_v6,reserved_1y,NA,0.553425,USD,Azure Retail Prices API,2025-12-18T04:46:49.224971 +AZURE,centralindia,Standard_E20ads_v6,reserved_3y,NA,0.356431,USD,Azure Retail Prices API,2025-12-18T04:46:49.224977 +AZURE,centralindia,Standard_E20ads_v6,spot,NA,0.173342,USD,Azure Retail Prices API,2025-12-18T04:46:47.688915 +AZURE,centralindia,Standard_E20as_v4,on_demand,NA,0.794,USD,Azure Retail Prices API,2025-12-18T04:46:47.688447 +AZURE,centralindia,Standard_E20as_v4,reserved_1y,NA,0.468721,USD,Azure Retail Prices API,2025-12-18T04:46:49.222937 +AZURE,centralindia,Standard_E20as_v4,reserved_3y,NA,0.301903,USD,Azure Retail Prices API,2025-12-18T04:46:49.222942 +AZURE,centralindia,Standard_E20as_v4,spot,NA,0.146731,USD,Azure Retail Prices API,2025-12-18T04:46:47.689625 +AZURE,centralindia,Standard_E20as_v5,on_demand,NA,0.715,USD,Azure Retail Prices API,2025-12-18T04:46:47.689769 +AZURE,centralindia,Standard_E20as_v5,reserved_1y,NA,0.421804,USD,Azure Retail Prices API,2025-12-18T04:46:49.225027 +AZURE,centralindia,Standard_E20as_v5,reserved_3y,NA,0.271689,USD,Azure Retail Prices API,2025-12-18T04:46:49.225033 +AZURE,centralindia,Standard_E20as_v5,spot,NA,0.132132,USD,Azure Retail Prices API,2025-12-18T04:46:47.688382 +AZURE,centralindia,Standard_E20d_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:47.688996 +AZURE,centralindia,Standard_E20d_v4,reserved_1y,NA,0.888128,USD,Azure Retail Prices API,2025-12-18T04:46:49.223933 +AZURE,centralindia,Standard_E20d_v4,reserved_3y,NA,0.567732,USD,Azure Retail Prices API,2025-12-18T04:46:49.223938 +AZURE,centralindia,Standard_E20d_v4,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:47.689373 +AZURE,centralindia,Standard_E20ds_v4,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:47.689398 +AZURE,centralindia,Standard_E20ds_v4,reserved_1y,NA,0.888128,USD,Azure Retail Prices API,2025-12-18T04:46:49.224479 +AZURE,centralindia,Standard_E20ds_v4,reserved_3y,NA,0.567732,USD,Azure Retail Prices API,2025-12-18T04:46:49.224484 +AZURE,centralindia,Standard_E20ds_v4,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:47.689800 +AZURE,centralindia,Standard_E20ds_v5,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:47.689497 +AZURE,centralindia,Standard_E20ds_v5,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:46:49.224603 +AZURE,centralindia,Standard_E20ds_v5,reserved_3y,NA,0.573782,USD,Azure Retail Prices API,2025-12-18T04:46:49.224608 +AZURE,centralindia,Standard_E20ds_v5,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:47.690031 +AZURE,centralindia,Standard_E20ds_v6,on_demand,NA,1.687,USD,Azure Retail Prices API,2025-12-18T04:46:47.688972 +AZURE,centralindia,Standard_E20ds_v6,reserved_1y,NA,1.046119,USD,Azure Retail Prices API,2025-12-18T04:46:49.223880 +AZURE,centralindia,Standard_E20ds_v6,reserved_3y,NA,0.657991,USD,Azure Retail Prices API,2025-12-18T04:46:49.223886 +AZURE,centralindia,Standard_E20ds_v6,spot,NA,0.311758,USD,Azure Retail Prices API,2025-12-18T04:46:47.690291 +AZURE,centralindia,Standard_E20s_v4,on_demand,NA,1.3,USD,Azure Retail Prices API,2025-12-18T04:46:47.690287 +AZURE,centralindia,Standard_E20s_v4,reserved_1y,NA,0.760845,USD,Azure Retail Prices API,2025-12-18T04:46:49.225854 +AZURE,centralindia,Standard_E20s_v4,reserved_3y,NA,0.488775,USD,Azure Retail Prices API,2025-12-18T04:46:49.225859 +AZURE,centralindia,Standard_E20s_v4,spot,NA,0.24024,USD,Azure Retail Prices API,2025-12-18T04:46:47.689866 +AZURE,centralindia,Standard_E20s_v5,on_demand,NA,1.3,USD,Azure Retail Prices API,2025-12-18T04:46:47.689923 +AZURE,centralindia,Standard_E20s_v5,reserved_1y,NA,0.767009,USD,Azure Retail Prices API,2025-12-18T04:46:49.225301 +AZURE,centralindia,Standard_E20s_v5,reserved_3y,NA,0.481012,USD,Azure Retail Prices API,2025-12-18T04:46:49.225307 +AZURE,centralindia,Standard_E20s_v5,spot,NA,0.24024,USD,Azure Retail Prices API,2025-12-18T04:46:47.689257 +AZURE,centralindia,Standard_E2_v3,on_demand,NA,0.137,USD,Azure Retail Prices API,2025-12-18T04:46:47.689822 +AZURE,centralindia,Standard_E2_v3,reserved_1y,NA,0.080365,USD,Azure Retail Prices API,2025-12-18T04:46:49.225152 +AZURE,centralindia,Standard_E2_v3,reserved_3y,NA,0.051674,USD,Azure Retail Prices API,2025-12-18T04:46:49.225156 +AZURE,centralindia,Standard_E2_v3,spot,NA,0.025318,USD,Azure Retail Prices API,2025-12-18T04:46:47.689261 +AZURE,centralindia,Standard_E2ads_v6,on_demand,NA,0.0938,USD,Azure Retail Prices API,2025-12-18T04:46:47.688680 +AZURE,centralindia,Standard_E2ads_v6,reserved_1y,NA,0.055365,USD,Azure Retail Prices API,2025-12-18T04:46:49.223438 +AZURE,centralindia,Standard_E2ads_v6,reserved_3y,NA,0.035654,USD,Azure Retail Prices API,2025-12-18T04:46:49.223444 +AZURE,centralindia,Standard_E2ads_v6,spot,NA,0.017334,USD,Azure Retail Prices API,2025-12-18T04:46:47.690329 +AZURE,centralindia,Standard_E2ds_v5,on_demand,NA,0.151,USD,Azure Retail Prices API,2025-12-18T04:46:47.689471 +AZURE,centralindia,Standard_E2ds_v5,reserved_1y,NA,0.089041,USD,Azure Retail Prices API,2025-12-18T04:46:49.224557 +AZURE,centralindia,Standard_E2ds_v5,reserved_3y,NA,0.057382,USD,Azure Retail Prices API,2025-12-18T04:46:49.224562 +AZURE,centralindia,Standard_E2ds_v5,spot,NA,0.027905,USD,Azure Retail Prices API,2025-12-18T04:46:47.690088 +AZURE,centralindia,Standard_E2ds_v6,on_demand,NA,0.169,USD,Azure Retail Prices API,2025-12-18T04:46:47.688908 +AZURE,centralindia,Standard_E2ds_v6,reserved_1y,NA,0.104566,USD,Azure Retail Prices API,2025-12-18T04:46:49.223774 +AZURE,centralindia,Standard_E2ds_v6,reserved_3y,NA,0.065791,USD,Azure Retail Prices API,2025-12-18T04:46:49.223779 +AZURE,centralindia,Standard_E2ds_v6,spot,NA,0.031231,USD,Azure Retail Prices API,2025-12-18T04:46:47.690220 +AZURE,centralindia,Standard_E2pds_v6,on_demand,NA,0.0768,USD,Azure Retail Prices API,2025-12-18T04:46:47.689150 +AZURE,centralindia,Standard_E2pds_v6,reserved_1y,NA,0.04532,USD,Azure Retail Prices API,2025-12-18T04:46:49.224123 +AZURE,centralindia,Standard_E2pds_v6,reserved_3y,NA,0.029186,USD,Azure Retail Prices API,2025-12-18T04:46:49.224129 +AZURE,centralindia,Standard_E2pds_v6,spot,NA,0.014193,USD,Azure Retail Prices API,2025-12-18T04:46:47.688967 +AZURE,centralindia,Standard_E32_v3,on_demand,NA,2.192,USD,Azure Retail Prices API,2025-12-18T04:46:47.689317 +AZURE,centralindia,Standard_E32_v3,reserved_1y,NA,1.286073,USD,Azure Retail Prices API,2025-12-18T04:46:49.224360 +AZURE,centralindia,Standard_E32_v3,reserved_3y,NA,0.808067,USD,Azure Retail Prices API,2025-12-18T04:46:49.224365 +AZURE,centralindia,Standard_E32_v3,spot,NA,0.405082,USD,Azure Retail Prices API,2025-12-18T04:46:47.689586 +AZURE,centralindia,Standard_E32a_v4,on_demand,NA,1.271,USD,Azure Retail Prices API,2025-12-18T04:46:47.690097 +AZURE,centralindia,Standard_E32a_v4,reserved_1y,NA,0.75,USD,Azure Retail Prices API,2025-12-18T04:46:49.225571 +AZURE,centralindia,Standard_E32a_v4,reserved_3y,NA,0.483029,USD,Azure Retail Prices API,2025-12-18T04:46:49.225576 +AZURE,centralindia,Standard_E32a_v4,spot,NA,0.234881,USD,Azure Retail Prices API,2025-12-18T04:46:47.689589 +AZURE,centralindia,Standard_E32ads_v5,on_demand,NA,2.801,USD,Azure Retail Prices API,2025-12-18T04:46:47.689538 +AZURE,centralindia,Standard_E32ads_v5,reserved_1y,NA,0.784018,USD,Azure Retail Prices API,2025-12-18T04:46:49.225205 +AZURE,centralindia,Standard_E32ads_v5,reserved_3y,NA,0.504947,USD,Azure Retail Prices API,2025-12-18T04:46:49.225211 +AZURE,centralindia,Standard_E32ads_v5,spot,NA,0.245599,USD,Azure Retail Prices API,2025-12-18T04:46:47.688420 +AZURE,centralindia,Standard_E32ads_v6,on_demand,NA,1.501,USD,Azure Retail Prices API,2025-12-18T04:46:47.689289 +AZURE,centralindia,Standard_E32ads_v6,reserved_1y,NA,0.885502,USD,Azure Retail Prices API,2025-12-18T04:46:49.224287 +AZURE,centralindia,Standard_E32ads_v6,reserved_3y,NA,0.57032,USD,Azure Retail Prices API,2025-12-18T04:46:49.224292 +AZURE,centralindia,Standard_E32ads_v6,spot,NA,0.277385,USD,Azure Retail Prices API,2025-12-18T04:46:47.689171 +AZURE,centralindia,Standard_E32as_v4,on_demand,NA,1.271,USD,Azure Retail Prices API,2025-12-18T04:46:47.689946 +AZURE,centralindia,Standard_E32as_v4,reserved_1y,NA,0.75,USD,Azure Retail Prices API,2025-12-18T04:46:49.225332 +AZURE,centralindia,Standard_E32as_v4,reserved_3y,NA,0.483029,USD,Azure Retail Prices API,2025-12-18T04:46:49.225337 +AZURE,centralindia,Standard_E32as_v4,spot,NA,0.234881,USD,Azure Retail Prices API,2025-12-18T04:46:47.688463 +AZURE,centralindia,Standard_E32as_v5,on_demand,NA,1.144,USD,Azure Retail Prices API,2025-12-18T04:46:47.688392 +AZURE,centralindia,Standard_E32as_v5,reserved_1y,NA,0.675,USD,Azure Retail Prices API,2025-12-18T04:46:49.222790 +AZURE,centralindia,Standard_E32as_v5,reserved_3y,NA,0.434703,USD,Azure Retail Prices API,2025-12-18T04:46:49.222796 +AZURE,centralindia,Standard_E32as_v5,spot,NA,0.211411,USD,Azure Retail Prices API,2025-12-18T04:46:47.690164 +AZURE,centralindia,Standard_E32d_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:47.689909 +AZURE,centralindia,Standard_E32d_v4,reserved_1y,NA,1.420662,USD,Azure Retail Prices API,2025-12-18T04:46:49.225279 +AZURE,centralindia,Standard_E32d_v4,reserved_3y,NA,0.908409,USD,Azure Retail Prices API,2025-12-18T04:46:49.225285 +AZURE,centralindia,Standard_E32d_v4,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:47.688991 +AZURE,centralindia,Standard_E32ds_v4,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:47.689296 +AZURE,centralindia,Standard_E32ds_v4,reserved_1y,NA,1.420662,USD,Azure Retail Prices API,2025-12-18T04:46:49.224306 +AZURE,centralindia,Standard_E32ds_v4,reserved_3y,NA,0.908409,USD,Azure Retail Prices API,2025-12-18T04:46:49.224311 +AZURE,centralindia,Standard_E32ds_v4,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:47.689453 +AZURE,centralindia,Standard_E32ds_v5,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:47.688854 +AZURE,centralindia,Standard_E32ds_v5,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:46:49.223731 +AZURE,centralindia,Standard_E32ds_v5,reserved_3y,NA,0.918075,USD,Azure Retail Prices API,2025-12-18T04:46:49.223736 +AZURE,centralindia,Standard_E32ds_v5,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:47.689675 +AZURE,centralindia,Standard_E32ds_v6,on_demand,NA,2.7,USD,Azure Retail Prices API,2025-12-18T04:46:47.688477 +AZURE,centralindia,Standard_E32ds_v6,reserved_1y,NA,1.673744,USD,Azure Retail Prices API,2025-12-18T04:46:49.223012 +AZURE,centralindia,Standard_E32ds_v6,reserved_3y,NA,1.052816,USD,Azure Retail Prices API,2025-12-18T04:46:49.223017 +AZURE,centralindia,Standard_E32ds_v6,spot,NA,0.49896,USD,Azure Retail Prices API,2025-12-18T04:46:47.690311 +AZURE,centralindia,Standard_E32pds_v6,on_demand,NA,1.229,USD,Azure Retail Prices API,2025-12-18T04:46:47.689780 +AZURE,centralindia,Standard_E32pds_v6,reserved_1y,NA,0.725,USD,Azure Retail Prices API,2025-12-18T04:46:49.225049 +AZURE,centralindia,Standard_E32pds_v6,reserved_3y,NA,0.466933,USD,Azure Retail Prices API,2025-12-18T04:46:49.225055 +AZURE,centralindia,Standard_E32pds_v6,spot,NA,0.227119,USD,Azure Retail Prices API,2025-12-18T04:46:47.689851 +AZURE,centralindia,Standard_E32ps_v6,on_demand,NA,0.97,USD,Azure Retail Prices API,2025-12-18T04:46:47.689499 +AZURE,centralindia,Standard_E32ps_v6,reserved_1y,NA,0.572032,USD,Azure Retail Prices API,2025-12-18T04:46:49.224613 +AZURE,centralindia,Standard_E32ps_v6,reserved_3y,NA,0.368455,USD,Azure Retail Prices API,2025-12-18T04:46:49.224619 +AZURE,centralindia,Standard_E32ps_v6,spot,NA,0.179256,USD,Azure Retail Prices API,2025-12-18T04:46:47.690145 +AZURE,centralindia,Standard_E32s_v3,on_demand,NA,2.192,USD,Azure Retail Prices API,2025-12-18T04:46:47.688828 +AZURE,centralindia,Standard_E32s_v3,reserved_1y,NA,1.286073,USD,Azure Retail Prices API,2025-12-18T04:46:49.223689 +AZURE,centralindia,Standard_E32s_v3,reserved_3y,NA,0.808067,USD,Azure Retail Prices API,2025-12-18T04:46:49.223694 +AZURE,centralindia,Standard_E32s_v3,spot,NA,0.405082,USD,Azure Retail Prices API,2025-12-18T04:46:47.690063 +AZURE,centralindia,Standard_E32s_v4,on_demand,NA,2.08,USD,Azure Retail Prices API,2025-12-18T04:46:47.688748 +AZURE,centralindia,Standard_E32s_v4,reserved_1y,NA,1.216895,USD,Azure Retail Prices API,2025-12-18T04:46:49.223559 +AZURE,centralindia,Standard_E32s_v4,reserved_3y,NA,0.782078,USD,Azure Retail Prices API,2025-12-18T04:46:49.223565 +AZURE,centralindia,Standard_E32s_v4,spot,NA,0.384384,USD,Azure Retail Prices API,2025-12-18T04:46:47.689896 +AZURE,centralindia,Standard_E32s_v5,on_demand,NA,2.08,USD,Azure Retail Prices API,2025-12-18T04:46:47.689550 +AZURE,centralindia,Standard_E32s_v5,reserved_1y,NA,1.227169,USD,Azure Retail Prices API,2025-12-18T04:46:49.224738 +AZURE,centralindia,Standard_E32s_v5,reserved_3y,NA,0.769597,USD,Azure Retail Prices API,2025-12-18T04:46:49.224744 +AZURE,centralindia,Standard_E32s_v5,spot,NA,0.384384,USD,Azure Retail Prices API,2025-12-18T04:46:47.689168 +AZURE,centralindia,Standard_E48a_v4,on_demand,NA,1.906,USD,Azure Retail Prices API,2025-12-18T04:46:47.689514 +AZURE,centralindia,Standard_E48a_v4,reserved_1y,NA,1.125,USD,Azure Retail Prices API,2025-12-18T04:46:49.224648 +AZURE,centralindia,Standard_E48a_v4,reserved_3y,NA,0.724543,USD,Azure Retail Prices API,2025-12-18T04:46:49.224654 +AZURE,centralindia,Standard_E48a_v4,spot,NA,0.352229,USD,Azure Retail Prices API,2025-12-18T04:46:47.689174 +AZURE,centralindia,Standard_E48ads_v5,on_demand,NA,1.993,USD,Azure Retail Prices API,2025-12-18T04:46:47.688404 +AZURE,centralindia,Standard_E48ads_v5,reserved_1y,NA,1.176027,USD,Azure Retail Prices API,2025-12-18T04:46:49.222824 +AZURE,centralindia,Standard_E48ads_v5,reserved_3y,NA,0.75742,USD,Azure Retail Prices API,2025-12-18T04:46:49.222830 +AZURE,centralindia,Standard_E48ads_v5,spot,NA,0.368306,USD,Azure Retail Prices API,2025-12-18T04:46:47.689749 +AZURE,centralindia,Standard_E48ads_v6,on_demand,NA,2.251,USD,Azure Retail Prices API,2025-12-18T04:46:47.688492 +AZURE,centralindia,Standard_E48ads_v6,reserved_1y,NA,1.328196,USD,Azure Retail Prices API,2025-12-18T04:46:49.223054 +AZURE,centralindia,Standard_E48ads_v6,reserved_3y,NA,0.855441,USD,Azure Retail Prices API,2025-12-18T04:46:49.223083 +AZURE,centralindia,Standard_E48ads_v6,spot,NA,0.415985,USD,Azure Retail Prices API,2025-12-18T04:46:47.689615 +AZURE,centralindia,Standard_E48as_v4,on_demand,NA,1.906,USD,Azure Retail Prices API,2025-12-18T04:46:47.688808 +AZURE,centralindia,Standard_E48as_v4,reserved_1y,NA,1.125,USD,Azure Retail Prices API,2025-12-18T04:46:49.223667 +AZURE,centralindia,Standard_E48as_v4,reserved_3y,NA,0.724543,USD,Azure Retail Prices API,2025-12-18T04:46:49.223673 +AZURE,centralindia,Standard_E48as_v4,spot,NA,0.352229,USD,Azure Retail Prices API,2025-12-18T04:46:47.690136 +AZURE,centralindia,Standard_E48as_v5,on_demand,NA,1.716,USD,Azure Retail Prices API,2025-12-18T04:46:47.689286 +AZURE,centralindia,Standard_E48as_v5,reserved_1y,NA,1.012443,USD,Azure Retail Prices API,2025-12-18T04:46:49.224277 +AZURE,centralindia,Standard_E48as_v5,reserved_3y,NA,0.652093,USD,Azure Retail Prices API,2025-12-18T04:46:49.224282 +AZURE,centralindia,Standard_E48as_v5,spot,NA,0.317117,USD,Azure Retail Prices API,2025-12-18T04:46:47.689338 +AZURE,centralindia,Standard_E48d_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:47.688469 +AZURE,centralindia,Standard_E48d_v4,reserved_1y,NA,2.130936,USD,Azure Retail Prices API,2025-12-18T04:46:49.222989 +AZURE,centralindia,Standard_E48d_v4,reserved_3y,NA,1.362633,USD,Azure Retail Prices API,2025-12-18T04:46:49.222994 +AZURE,centralindia,Standard_E48d_v4,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:47.688444 +AZURE,centralindia,Standard_E48ds_v4,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:47.690197 +AZURE,centralindia,Standard_E48ds_v4,reserved_1y,NA,2.130936,USD,Azure Retail Prices API,2025-12-18T04:46:49.225676 +AZURE,centralindia,Standard_E48ds_v4,reserved_3y,NA,1.362633,USD,Azure Retail Prices API,2025-12-18T04:46:49.225680 +AZURE,centralindia,Standard_E48ds_v4,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:47.688929 +AZURE,centralindia,Standard_E48ds_v5,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:47.689540 +AZURE,centralindia,Standard_E48ds_v5,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:46:49.224715 +AZURE,centralindia,Standard_E48ds_v5,reserved_3y,NA,1.377131,USD,Azure Retail Prices API,2025-12-18T04:46:49.224721 +AZURE,centralindia,Standard_E48ds_v5,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:47.689409 +AZURE,centralindia,Standard_E48ds_v6,on_demand,NA,4.049,USD,Azure Retail Prices API,2025-12-18T04:46:47.688398 +AZURE,centralindia,Standard_E48ds_v6,reserved_1y,NA,2.510502,USD,Azure Retail Prices API,2025-12-18T04:46:49.222802 +AZURE,centralindia,Standard_E48ds_v6,reserved_3y,NA,1.579224,USD,Azure Retail Prices API,2025-12-18T04:46:49.222807 +AZURE,centralindia,Standard_E48ds_v6,spot,NA,0.748255,USD,Azure Retail Prices API,2025-12-18T04:46:47.689227 +AZURE,centralindia,Standard_E48pds_v6,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:46:47.689019 +AZURE,centralindia,Standard_E48pds_v6,reserved_1y,NA,1.087443,USD,Azure Retail Prices API,2025-12-18T04:46:49.223986 +AZURE,centralindia,Standard_E48pds_v6,reserved_3y,NA,0.700419,USD,Azure Retail Prices API,2025-12-18T04:46:49.223991 +AZURE,centralindia,Standard_E48pds_v6,spot,NA,0.340586,USD,Azure Retail Prices API,2025-12-18T04:46:47.688545 +AZURE,centralindia,Standard_E48ps_v6,on_demand,NA,1.454,USD,Azure Retail Prices API,2025-12-18T04:46:47.688674 +AZURE,centralindia,Standard_E48ps_v6,reserved_1y,NA,0.858105,USD,Azure Retail Prices API,2025-12-18T04:46:49.223428 +AZURE,centralindia,Standard_E48ps_v6,reserved_3y,NA,0.552664,USD,Azure Retail Prices API,2025-12-18T04:46:49.223433 +AZURE,centralindia,Standard_E48ps_v6,spot,NA,0.268699,USD,Azure Retail Prices API,2025-12-18T04:46:47.689451 +AZURE,centralindia,Standard_E48s_v4,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:46:47.689703 +AZURE,centralindia,Standard_E48s_v4,reserved_1y,NA,1.825342,USD,Azure Retail Prices API,2025-12-18T04:46:49.224883 +AZURE,centralindia,Standard_E48s_v4,reserved_3y,NA,1.173135,USD,Azure Retail Prices API,2025-12-18T04:46:49.224889 +AZURE,centralindia,Standard_E48s_v4,spot,NA,0.576576,USD,Azure Retail Prices API,2025-12-18T04:46:47.690282 +AZURE,centralindia,Standard_E48s_v5,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:46:47.688417 +AZURE,centralindia,Standard_E48s_v5,reserved_1y,NA,1.840753,USD,Azure Retail Prices API,2025-12-18T04:46:49.222868 +AZURE,centralindia,Standard_E48s_v5,reserved_3y,NA,1.154414,USD,Azure Retail Prices API,2025-12-18T04:46:49.222873 +AZURE,centralindia,Standard_E48s_v5,spot,NA,0.576576,USD,Azure Retail Prices API,2025-12-18T04:46:47.688600 +AZURE,centralindia,Standard_E4_v3,on_demand,NA,0.274,USD,Azure Retail Prices API,2025-12-18T04:46:47.690041 +AZURE,centralindia,Standard_E4_v3,reserved_1y,NA,0.160731,USD,Azure Retail Prices API,2025-12-18T04:46:49.225487 +AZURE,centralindia,Standard_E4_v3,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:46:49.225493 +AZURE,centralindia,Standard_E4_v3,spot,NA,0.050635,USD,Azure Retail Prices API,2025-12-18T04:46:47.688857 +AZURE,centralindia,Standard_E4a_v4,on_demand,NA,0.158,USD,Azure Retail Prices API,2025-12-18T04:46:47.688866 +AZURE,centralindia,Standard_E4a_v4,reserved_1y,NA,0.093721,USD,Azure Retail Prices API,2025-12-18T04:46:49.223742 +AZURE,centralindia,Standard_E4a_v4,reserved_3y,NA,0.060388,USD,Azure Retail Prices API,2025-12-18T04:46:49.223747 +AZURE,centralindia,Standard_E4a_v4,spot,NA,0.029198,USD,Azure Retail Prices API,2025-12-18T04:46:47.689363 +AZURE,centralindia,Standard_E4ads_v5,on_demand,NA,0.35,USD,Azure Retail Prices API,2025-12-18T04:46:47.688743 +AZURE,centralindia,Standard_E4ads_v5,reserved_1y,NA,0.097945,USD,Azure Retail Prices API,2025-12-18T04:46:49.223922 +AZURE,centralindia,Standard_E4ads_v5,reserved_3y,NA,0.063128,USD,Azure Retail Prices API,2025-12-18T04:46:49.223928 +AZURE,centralindia,Standard_E4ads_v5,spot,NA,0.030677,USD,Azure Retail Prices API,2025-12-18T04:46:47.689066 +AZURE,centralindia,Standard_E4ads_v6,on_demand,NA,0.188,USD,Azure Retail Prices API,2025-12-18T04:46:47.689573 +AZURE,centralindia,Standard_E4ads_v6,reserved_1y,NA,0.110731,USD,Azure Retail Prices API,2025-12-18T04:46:49.224760 +AZURE,centralindia,Standard_E4ads_v6,reserved_3y,NA,0.071271,USD,Azure Retail Prices API,2025-12-18T04:46:49.224765 +AZURE,centralindia,Standard_E4ads_v6,spot,NA,0.034742,USD,Azure Retail Prices API,2025-12-18T04:46:47.689370 +AZURE,centralindia,Standard_E4as_v4,on_demand,NA,0.158,USD,Azure Retail Prices API,2025-12-18T04:46:47.689743 +AZURE,centralindia,Standard_E4as_v4,reserved_1y,NA,0.093721,USD,Azure Retail Prices API,2025-12-18T04:46:49.224982 +AZURE,centralindia,Standard_E4as_v4,reserved_3y,NA,0.060388,USD,Azure Retail Prices API,2025-12-18T04:46:49.224987 +AZURE,centralindia,Standard_E4as_v4,spot,NA,0.029198,USD,Azure Retail Prices API,2025-12-18T04:46:47.688513 +AZURE,centralindia,Standard_E4as_v5,on_demand,NA,0.327,USD,Azure Retail Prices API,2025-12-18T04:46:47.689835 +AZURE,centralindia,Standard_E4as_v5,reserved_1y,NA,0.084361,USD,Azure Retail Prices API,2025-12-18T04:46:49.225194 +AZURE,centralindia,Standard_E4as_v5,reserved_3y,NA,0.054338,USD,Azure Retail Prices API,2025-12-18T04:46:49.225200 +AZURE,centralindia,Standard_E4as_v5,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:46:47.689936 +AZURE,centralindia,Standard_E4d_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:47.689406 +AZURE,centralindia,Standard_E4d_v4,reserved_1y,NA,0.177626,USD,Azure Retail Prices API,2025-12-18T04:46:49.224489 +AZURE,centralindia,Standard_E4d_v4,reserved_3y,NA,0.113546,USD,Azure Retail Prices API,2025-12-18T04:46:49.224495 +AZURE,centralindia,Standard_E4d_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:47.689110 +AZURE,centralindia,Standard_E4ds_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:47.688695 +AZURE,centralindia,Standard_E4ds_v4,reserved_1y,NA,0.177626,USD,Azure Retail Prices API,2025-12-18T04:46:49.223473 +AZURE,centralindia,Standard_E4ds_v4,reserved_3y,NA,0.113546,USD,Azure Retail Prices API,2025-12-18T04:46:49.223478 +AZURE,centralindia,Standard_E4ds_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:47.690249 +AZURE,centralindia,Standard_E4ds_v5,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:47.689271 +AZURE,centralindia,Standard_E4ds_v5,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:46:49.224257 +AZURE,centralindia,Standard_E4ds_v5,reserved_3y,NA,0.114764,USD,Azure Retail Prices API,2025-12-18T04:46:49.224262 +AZURE,centralindia,Standard_E4ds_v5,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:47.688460 +AZURE,centralindia,Standard_E4ds_v6,on_demand,NA,0.337,USD,Azure Retail Prices API,2025-12-18T04:46:47.689388 +AZURE,centralindia,Standard_E4ds_v6,reserved_1y,NA,0.209247,USD,Azure Retail Prices API,2025-12-18T04:46:49.224470 +AZURE,centralindia,Standard_E4ds_v6,reserved_3y,NA,0.131583,USD,Azure Retail Prices API,2025-12-18T04:46:49.224474 +AZURE,centralindia,Standard_E4ds_v6,spot,NA,0.062278,USD,Azure Retail Prices API,2025-12-18T04:46:47.688926 +AZURE,centralindia,Standard_E4pds_v6,on_demand,NA,0.154,USD,Azure Retail Prices API,2025-12-18T04:46:47.689794 +AZURE,centralindia,Standard_E4pds_v6,reserved_1y,NA,0.090639,USD,Azure Retail Prices API,2025-12-18T04:46:49.225083 +AZURE,centralindia,Standard_E4pds_v6,reserved_3y,NA,0.058371,USD,Azure Retail Prices API,2025-12-18T04:46:49.225089 +AZURE,centralindia,Standard_E4pds_v6,spot,NA,0.028459,USD,Azure Retail Prices API,2025-12-18T04:46:47.689147 +AZURE,centralindia,Standard_E4ps_v6,on_demand,NA,0.121,USD,Azure Retail Prices API,2025-12-18T04:46:47.690200 +AZURE,centralindia,Standard_E4ps_v6,reserved_1y,NA,0.071461,USD,Azure Retail Prices API,2025-12-18T04:46:49.225685 +AZURE,centralindia,Standard_E4ps_v6,reserved_3y,NA,0.046043,USD,Azure Retail Prices API,2025-12-18T04:46:49.225691 +AZURE,centralindia,Standard_E4ps_v6,spot,NA,0.022361,USD,Azure Retail Prices API,2025-12-18T04:46:47.688771 +AZURE,centralindia,Standard_E4s_v4,on_demand,NA,0.26,USD,Azure Retail Prices API,2025-12-18T04:46:47.688560 +AZURE,centralindia,Standard_E4s_v4,reserved_1y,NA,0.152169,USD,Azure Retail Prices API,2025-12-18T04:46:49.223216 +AZURE,centralindia,Standard_E4s_v4,reserved_3y,NA,0.097755,USD,Azure Retail Prices API,2025-12-18T04:46:49.223221 +AZURE,centralindia,Standard_E4s_v4,spot,NA,0.048048,USD,Azure Retail Prices API,2025-12-18T04:46:47.689606 +AZURE,centralindia,Standard_E4s_v5,on_demand,NA,0.26,USD,Azure Retail Prices API,2025-12-18T04:46:47.690021 +AZURE,centralindia,Standard_E4s_v5,reserved_1y,NA,0.153425,USD,Azure Retail Prices API,2025-12-18T04:46:49.225444 +AZURE,centralindia,Standard_E4s_v5,reserved_3y,NA,0.096195,USD,Azure Retail Prices API,2025-12-18T04:46:49.225450 +AZURE,centralindia,Standard_E4s_v5,spot,NA,0.048048,USD,Azure Retail Prices API,2025-12-18T04:46:47.689007 +AZURE,centralindia,Standard_E64_v3,on_demand,NA,3.937,USD,Azure Retail Prices API,2025-12-18T04:46:47.688554 +AZURE,centralindia,Standard_E64_v3,reserved_1y,NA,2.424201,USD,Azure Retail Prices API,2025-12-18T04:46:49.223195 +AZURE,centralindia,Standard_E64_v3,reserved_3y,NA,1.558714,USD,Azure Retail Prices API,2025-12-18T04:46:49.223200 +AZURE,centralindia,Standard_E64_v3,spot,NA,0.727558,USD,Azure Retail Prices API,2025-12-18T04:46:47.689807 +AZURE,centralindia,Standard_E64a_v4,on_demand,NA,2.542,USD,Azure Retail Prices API,2025-12-18T04:46:47.689327 +AZURE,centralindia,Standard_E64a_v4,reserved_1y,NA,1.499886,USD,Azure Retail Prices API,2025-12-18T04:46:49.224381 +AZURE,centralindia,Standard_E64a_v4,reserved_3y,NA,0.96602,USD,Azure Retail Prices API,2025-12-18T04:46:49.224387 +AZURE,centralindia,Standard_E64a_v4,spot,NA,0.469762,USD,Azure Retail Prices API,2025-12-18T04:46:47.689753 +AZURE,centralindia,Standard_E64ads_v5,on_demand,NA,2.658,USD,Azure Retail Prices API,2025-12-18T04:46:47.688611 +AZURE,centralindia,Standard_E64ads_v5,reserved_1y,NA,1.568037,USD,Azure Retail Prices API,2025-12-18T04:46:49.223282 +AZURE,centralindia,Standard_E64ads_v5,reserved_3y,NA,1.009893,USD,Azure Retail Prices API,2025-12-18T04:46:49.223287 +AZURE,centralindia,Standard_E64ads_v5,spot,NA,0.491198,USD,Azure Retail Prices API,2025-12-18T04:46:47.689790 +AZURE,centralindia,Standard_E64ads_v6,on_demand,NA,3.002,USD,Azure Retail Prices API,2025-12-18T04:46:47.688619 +AZURE,centralindia,Standard_E64ads_v6,reserved_1y,NA,1.77089,USD,Azure Retail Prices API,2025-12-18T04:46:49.223312 +AZURE,centralindia,Standard_E64ads_v6,reserved_3y,NA,1.140601,USD,Azure Retail Prices API,2025-12-18T04:46:49.223317 +AZURE,centralindia,Standard_E64ads_v6,spot,NA,0.55477,USD,Azure Retail Prices API,2025-12-18T04:46:47.689709 +AZURE,centralindia,Standard_E64as_v4,on_demand,NA,2.542,USD,Azure Retail Prices API,2025-12-18T04:46:47.690127 +AZURE,centralindia,Standard_E64as_v4,reserved_1y,NA,1.499886,USD,Azure Retail Prices API,2025-12-18T04:46:49.225612 +AZURE,centralindia,Standard_E64as_v4,reserved_3y,NA,0.96602,USD,Azure Retail Prices API,2025-12-18T04:46:49.225618 +AZURE,centralindia,Standard_E64as_v4,spot,NA,0.469762,USD,Azure Retail Prices API,2025-12-18T04:46:47.689468 +AZURE,centralindia,Standard_E64as_v5,on_demand,NA,2.288,USD,Azure Retail Prices API,2025-12-18T04:46:47.688472 +AZURE,centralindia,Standard_E64as_v5,reserved_1y,NA,1.349886,USD,Azure Retail Prices API,2025-12-18T04:46:49.222999 +AZURE,centralindia,Standard_E64as_v5,reserved_3y,NA,0.869444,USD,Azure Retail Prices API,2025-12-18T04:46:49.223007 +AZURE,centralindia,Standard_E64as_v5,spot,NA,0.422822,USD,Azure Retail Prices API,2025-12-18T04:46:47.689661 +AZURE,centralindia,Standard_E64d_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:47.688504 +AZURE,centralindia,Standard_E64d_v4,reserved_1y,NA,2.84121,USD,Azure Retail Prices API,2025-12-18T04:46:49.223100 +AZURE,centralindia,Standard_E64d_v4,reserved_3y,NA,1.816819,USD,Azure Retail Prices API,2025-12-18T04:46:49.223105 +AZURE,centralindia,Standard_E64d_v4,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:47.690203 +AZURE,centralindia,Standard_E64ds_v4,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:47.689360 +AZURE,centralindia,Standard_E64ds_v4,reserved_1y,NA,2.84121,USD,Azure Retail Prices API,2025-12-18T04:46:49.224449 +AZURE,centralindia,Standard_E64ds_v4,reserved_3y,NA,1.816819,USD,Azure Retail Prices API,2025-12-18T04:46:49.224454 +AZURE,centralindia,Standard_E64ds_v4,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:47.689977 +AZURE,centralindia,Standard_E64ds_v5,on_demand,NA,4.832,USD,Azure Retail Prices API,2025-12-18T04:46:47.689037 +AZURE,centralindia,Standard_E64ds_v5,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:46:49.223996 +AZURE,centralindia,Standard_E64ds_v5,reserved_3y,NA,1.836149,USD,Azure Retail Prices API,2025-12-18T04:46:49.224002 +AZURE,centralindia,Standard_E64ds_v5,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:47.689678 +AZURE,centralindia,Standard_E64ds_v6,on_demand,NA,5.399,USD,Azure Retail Prices API,2025-12-18T04:46:47.689415 +AZURE,centralindia,Standard_E64ds_v6,reserved_1y,NA,3.347374,USD,Azure Retail Prices API,2025-12-18T04:46:49.224501 +AZURE,centralindia,Standard_E64ds_v6,reserved_3y,NA,2.105632,USD,Azure Retail Prices API,2025-12-18T04:46:49.224507 +AZURE,centralindia,Standard_E64ds_v6,spot,NA,0.997735,USD,Azure Retail Prices API,2025-12-18T04:46:47.689633 +AZURE,centralindia,Standard_E64pds_v6,on_demand,NA,2.458,USD,Azure Retail Prices API,2025-12-18T04:46:47.689804 +AZURE,centralindia,Standard_E64pds_v6,reserved_1y,NA,1.45,USD,Azure Retail Prices API,2025-12-18T04:46:49.225105 +AZURE,centralindia,Standard_E64pds_v6,reserved_3y,NA,0.933904,USD,Azure Retail Prices API,2025-12-18T04:46:49.225111 +AZURE,centralindia,Standard_E64pds_v6,spot,NA,0.454238,USD,Azure Retail Prices API,2025-12-18T04:46:47.688932 +AZURE,centralindia,Standard_E64ps_v6,on_demand,NA,1.939,USD,Azure Retail Prices API,2025-12-18T04:46:47.689817 +AZURE,centralindia,Standard_E64ps_v6,reserved_1y,NA,1.144178,USD,Azure Retail Prices API,2025-12-18T04:46:49.225141 +AZURE,centralindia,Standard_E64ps_v6,reserved_3y,NA,0.73691,USD,Azure Retail Prices API,2025-12-18T04:46:49.225146 +AZURE,centralindia,Standard_E64ps_v6,spot,NA,0.358327,USD,Azure Retail Prices API,2025-12-18T04:46:47.688814 +AZURE,centralindia,Standard_E64s_v3,on_demand,NA,3.937,USD,Azure Retail Prices API,2025-12-18T04:46:47.688711 +AZURE,centralindia,Standard_E64s_v3,reserved_1y,NA,2.424201,USD,Azure Retail Prices API,2025-12-18T04:46:49.223495 +AZURE,centralindia,Standard_E64s_v3,reserved_3y,NA,1.558714,USD,Azure Retail Prices API,2025-12-18T04:46:49.223501 +AZURE,centralindia,Standard_E64s_v3,spot,NA,0.727558,USD,Azure Retail Prices API,2025-12-18T04:46:47.688879 +AZURE,centralindia,Standard_E64s_v4,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:46:47.689532 +AZURE,centralindia,Standard_E64s_v4,reserved_1y,NA,2.433904,USD,Azure Retail Prices API,2025-12-18T04:46:49.224692 +AZURE,centralindia,Standard_E64s_v4,reserved_3y,NA,1.564155,USD,Azure Retail Prices API,2025-12-18T04:46:49.224697 +AZURE,centralindia,Standard_E64s_v4,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:46:47.690278 +AZURE,centralindia,Standard_E64s_v5,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:46:47.689347 +AZURE,centralindia,Standard_E64s_v5,reserved_1y,NA,2.454452,USD,Azure Retail Prices API,2025-12-18T04:46:49.224415 +AZURE,centralindia,Standard_E64s_v5,reserved_3y,NA,1.539193,USD,Azure Retail Prices API,2025-12-18T04:46:49.224420 +AZURE,centralindia,Standard_E64s_v5,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:46:47.689829 +AZURE,centralindia,Standard_E80ids_v4,on_demand,NA,6.04,USD,Azure Retail Prices API,2025-12-18T04:46:47.690009 +AZURE,centralindia,Standard_E80ids_v4,reserved_1y,NA,3.552511,USD,Azure Retail Prices API,2025-12-18T04:46:49.225413 +AZURE,centralindia,Standard_E80ids_v4,reserved_3y,NA,2.270928,USD,Azure Retail Prices API,2025-12-18T04:46:49.225419 +AZURE,centralindia,Standard_E80ids_v4,spot,NA,1.116192,USD,Azure Retail Prices API,2025-12-18T04:46:47.688768 +AZURE,centralindia,Standard_E80is_v4,on_demand,NA,5.2,USD,Azure Retail Prices API,2025-12-18T04:46:47.688542 +AZURE,centralindia,Standard_E80is_v4,reserved_1y,NA,3.043379,USD,Azure Retail Prices API,2025-12-18T04:46:49.223173 +AZURE,centralindia,Standard_E80is_v4,reserved_3y,NA,1.955099,USD,Azure Retail Prices API,2025-12-18T04:46:49.223178 +AZURE,centralindia,Standard_E80is_v4,spot,NA,0.96096,USD,Azure Retail Prices API,2025-12-18T04:46:47.689456 +AZURE,centralindia,Standard_E8_v3,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:46:47.689424 +AZURE,centralindia,Standard_E8_v3,reserved_1y,NA,0.321461,USD,Azure Retail Prices API,2025-12-18T04:46:49.224512 +AZURE,centralindia,Standard_E8_v3,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:46:49.224518 +AZURE,centralindia,Standard_E8_v3,spot,NA,0.10127,USD,Azure Retail Prices API,2025-12-18T04:46:47.688608 +AZURE,centralindia,Standard_E8a_v4,on_demand,NA,0.317,USD,Azure Retail Prices API,2025-12-18T04:46:47.689920 +AZURE,centralindia,Standard_E8a_v4,reserved_1y,NA,0.187557,USD,Azure Retail Prices API,2025-12-18T04:46:49.225291 +AZURE,centralindia,Standard_E8a_v4,reserved_3y,NA,0.120776,USD,Azure Retail Prices API,2025-12-18T04:46:49.225296 +AZURE,centralindia,Standard_E8a_v4,spot,NA,0.058582,USD,Azure Retail Prices API,2025-12-18T04:46:47.689184 +AZURE,centralindia,Standard_E8ads_v5,on_demand,NA,0.332,USD,Azure Retail Prices API,2025-12-18T04:46:47.688639 +AZURE,centralindia,Standard_E8ads_v5,reserved_1y,NA,0.196005,USD,Azure Retail Prices API,2025-12-18T04:46:49.223332 +AZURE,centralindia,Standard_E8ads_v5,reserved_3y,NA,0.126218,USD,Azure Retail Prices API,2025-12-18T04:46:49.223337 +AZURE,centralindia,Standard_E8ads_v5,spot,NA,0.061354,USD,Azure Retail Prices API,2025-12-18T04:46:47.688723 +AZURE,centralindia,Standard_E8ads_v6,on_demand,NA,0.375,USD,Azure Retail Prices API,2025-12-18T04:46:47.689040 +AZURE,centralindia,Standard_E8ads_v6,reserved_1y,NA,0.221347,USD,Azure Retail Prices API,2025-12-18T04:46:49.224007 +AZURE,centralindia,Standard_E8ads_v6,reserved_3y,NA,0.14258,USD,Azure Retail Prices API,2025-12-18T04:46:49.224012 +AZURE,centralindia,Standard_E8ads_v6,spot,NA,0.0693,USD,Azure Retail Prices API,2025-12-18T04:46:47.690217 +AZURE,centralindia,Standard_E8as_v4,on_demand,NA,0.317,USD,Azure Retail Prices API,2025-12-18T04:46:47.688970 +AZURE,centralindia,Standard_E8as_v4,reserved_1y,NA,0.187557,USD,Azure Retail Prices API,2025-12-18T04:46:49.223869 +AZURE,centralindia,Standard_E8as_v4,reserved_3y,NA,0.120776,USD,Azure Retail Prices API,2025-12-18T04:46:49.223874 +AZURE,centralindia,Standard_E8as_v4,spot,NA,0.058582,USD,Azure Retail Prices API,2025-12-18T04:46:47.688701 +AZURE,centralindia,Standard_E8as_v5,on_demand,NA,0.654,USD,Azure Retail Prices API,2025-12-18T04:46:47.689193 +AZURE,centralindia,Standard_E8as_v5,reserved_1y,NA,0.168721,USD,Azure Retail Prices API,2025-12-18T04:46:49.225875 +AZURE,centralindia,Standard_E8as_v5,reserved_3y,NA,0.108676,USD,Azure Retail Prices API,2025-12-18T04:46:49.225881 +AZURE,centralindia,Standard_E8as_v5,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:46:47.689553 +AZURE,centralindia,Standard_E8d_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:47.689930 +AZURE,centralindia,Standard_E8d_v4,reserved_1y,NA,0.355137,USD,Azure Retail Prices API,2025-12-18T04:46:49.225322 +AZURE,centralindia,Standard_E8d_v4,reserved_3y,NA,0.227093,USD,Azure Retail Prices API,2025-12-18T04:46:49.225327 +AZURE,centralindia,Standard_E8d_v4,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:47.688845 +AZURE,centralindia,Standard_E8ds_v4,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:47.689013 +AZURE,centralindia,Standard_E8ds_v4,reserved_1y,NA,0.355137,USD,Azure Retail Prices API,2025-12-18T04:46:49.223965 +AZURE,centralindia,Standard_E8ds_v4,reserved_3y,NA,0.227093,USD,Azure Retail Prices API,2025-12-18T04:46:49.223971 +AZURE,centralindia,Standard_E8ds_v4,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:47.690115 +AZURE,centralindia,Standard_E8ds_v5,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:47.689043 +AZURE,centralindia,Standard_E8ds_v5,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:46:49.224017 +AZURE,centralindia,Standard_E8ds_v5,reserved_3y,NA,0.229528,USD,Azure Retail Prices API,2025-12-18T04:46:49.224023 +AZURE,centralindia,Standard_E8ds_v5,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:47.689477 +AZURE,centralindia,Standard_E8ds_v6,on_demand,NA,0.675,USD,Azure Retail Prices API,2025-12-18T04:46:47.689002 +AZURE,centralindia,Standard_E8ds_v6,reserved_1y,NA,0.418379,USD,Azure Retail Prices API,2025-12-18T04:46:49.223944 +AZURE,centralindia,Standard_E8ds_v6,reserved_3y,NA,0.263204,USD,Azure Retail Prices API,2025-12-18T04:46:49.223949 +AZURE,centralindia,Standard_E8ds_v6,spot,NA,0.12474,USD,Azure Retail Prices API,2025-12-18T04:46:47.688568 +AZURE,centralindia,Standard_E8pds_v6,on_demand,NA,0.307,USD,Azure Retail Prices API,2025-12-18T04:46:47.689706 +AZURE,centralindia,Standard_E8pds_v6,reserved_1y,NA,0.181279,USD,Azure Retail Prices API,2025-12-18T04:46:49.224895 +AZURE,centralindia,Standard_E8pds_v6,reserved_3y,NA,0.116743,USD,Azure Retail Prices API,2025-12-18T04:46:49.224900 +AZURE,centralindia,Standard_E8pds_v6,spot,NA,0.056734,USD,Azure Retail Prices API,2025-12-18T04:46:47.689022 +AZURE,centralindia,Standard_E8ps_v6,on_demand,NA,0.242,USD,Azure Retail Prices API,2025-12-18T04:46:47.689303 +AZURE,centralindia,Standard_E8ps_v6,reserved_1y,NA,0.143037,USD,Azure Retail Prices API,2025-12-18T04:46:49.224317 +AZURE,centralindia,Standard_E8ps_v6,reserved_3y,NA,0.092123,USD,Azure Retail Prices API,2025-12-18T04:46:49.224322 +AZURE,centralindia,Standard_E8ps_v6,spot,NA,0.044722,USD,Azure Retail Prices API,2025-12-18T04:46:47.689734 +AZURE,centralindia,Standard_E8s_v3,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:46:47.688794 +AZURE,centralindia,Standard_E8s_v3,reserved_1y,NA,0.321461,USD,Azure Retail Prices API,2025-12-18T04:46:49.223624 +AZURE,centralindia,Standard_E8s_v3,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:46:49.223629 +AZURE,centralindia,Standard_E8s_v3,spot,NA,0.10127,USD,Azure Retail Prices API,2025-12-18T04:46:47.688964 +AZURE,centralindia,Standard_E8s_v4,on_demand,NA,0.52,USD,Azure Retail Prices API,2025-12-18T04:46:47.689762 +AZURE,centralindia,Standard_E8s_v4,reserved_1y,NA,0.304224,USD,Azure Retail Prices API,2025-12-18T04:46:49.225004 +AZURE,centralindia,Standard_E8s_v4,reserved_3y,NA,0.19551,USD,Azure Retail Prices API,2025-12-18T04:46:49.225010 +AZURE,centralindia,Standard_E8s_v4,spot,NA,0.096096,USD,Azure Retail Prices API,2025-12-18T04:46:47.689379 +AZURE,centralindia,Standard_E8s_v5,on_demand,NA,0.52,USD,Azure Retail Prices API,2025-12-18T04:46:47.689787 +AZURE,centralindia,Standard_E8s_v5,reserved_1y,NA,0.306849,USD,Azure Retail Prices API,2025-12-18T04:46:49.225071 +AZURE,centralindia,Standard_E8s_v5,reserved_3y,NA,0.19239,USD,Azure Retail Prices API,2025-12-18T04:46:49.225077 +AZURE,centralindia,Standard_E8s_v5,spot,NA,0.096096,USD,Azure Retail Prices API,2025-12-18T04:46:47.689092 +AZURE,centralindia,Standard_E96a_v4,on_demand,NA,3.813,USD,Azure Retail Prices API,2025-12-18T04:46:47.689159 +AZURE,centralindia,Standard_E96a_v4,reserved_1y,NA,2.249886,USD,Azure Retail Prices API,2025-12-18T04:46:49.224145 +AZURE,centralindia,Standard_E96a_v4,reserved_3y,NA,1.449049,USD,Azure Retail Prices API,2025-12-18T04:46:49.224151 +AZURE,centralindia,Standard_E96a_v4,spot,NA,0.704642,USD,Azure Retail Prices API,2025-12-18T04:46:47.688686 +AZURE,centralindia,Standard_E96ads_v5,on_demand,NA,8.402,USD,Azure Retail Prices API,2025-12-18T04:46:47.688765 +AZURE,centralindia,Standard_E96ads_v5,reserved_1y,NA,2.351941,USD,Azure Retail Prices API,2025-12-18T04:46:49.223656 +AZURE,centralindia,Standard_E96ads_v5,reserved_3y,NA,1.51484,USD,Azure Retail Prices API,2025-12-18T04:46:49.223661 +AZURE,centralindia,Standard_E96ads_v5,spot,NA,0.736613,USD,Azure Retail Prices API,2025-12-18T04:46:47.688407 +AZURE,centralindia,Standard_E96ads_v6,on_demand,NA,4.502,USD,Azure Retail Prices API,2025-12-18T04:46:47.688917 +AZURE,centralindia,Standard_E96ads_v6,reserved_1y,NA,2.656393,USD,Azure Retail Prices API,2025-12-18T04:46:49.223795 +AZURE,centralindia,Standard_E96ads_v6,reserved_3y,NA,1.710921,USD,Azure Retail Prices API,2025-12-18T04:46:49.223800 +AZURE,centralindia,Standard_E96ads_v6,spot,NA,0.83197,USD,Azure Retail Prices API,2025-12-18T04:46:47.689382 +AZURE,centralindia,Standard_E96as_v4,on_demand,NA,3.813,USD,Azure Retail Prices API,2025-12-18T04:46:47.689127 +AZURE,centralindia,Standard_E96as_v4,reserved_1y,NA,2.249886,USD,Azure Retail Prices API,2025-12-18T04:46:49.224103 +AZURE,centralindia,Standard_E96as_v4,reserved_3y,NA,1.449049,USD,Azure Retail Prices API,2025-12-18T04:46:49.224108 +AZURE,centralindia,Standard_E96as_v4,spot,NA,0.704642,USD,Azure Retail Prices API,2025-12-18T04:46:47.689133 +AZURE,centralindia,Standard_E96as_v5,on_demand,NA,3.432,USD,Azure Retail Prices API,2025-12-18T04:46:47.688501 +AZURE,centralindia,Standard_E96as_v5,reserved_1y,NA,2.024886,USD,Azure Retail Prices API,2025-12-18T04:46:49.223089 +AZURE,centralindia,Standard_E96as_v5,reserved_3y,NA,1.304148,USD,Azure Retail Prices API,2025-12-18T04:46:49.223094 +AZURE,centralindia,Standard_E96as_v5,spot,NA,0.634234,USD,Azure Retail Prices API,2025-12-18T04:46:47.689140 +AZURE,centralindia,Standard_E96ds_v5,on_demand,NA,7.248,USD,Azure Retail Prices API,2025-12-18T04:46:47.689722 +AZURE,centralindia,Standard_E96ds_v5,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:46:49.224940 +AZURE,centralindia,Standard_E96ds_v5,reserved_3y,NA,2.754224,USD,Azure Retail Prices API,2025-12-18T04:46:49.224945 +AZURE,centralindia,Standard_E96ds_v5,spot,NA,1.33943,USD,Azure Retail Prices API,2025-12-18T04:46:47.689427 +AZURE,centralindia,Standard_E96ds_v6,on_demand,NA,8.099,USD,Azure Retail Prices API,2025-12-18T04:46:47.690237 +AZURE,centralindia,Standard_E96ds_v6,reserved_1y,NA,5.021119,USD,Azure Retail Prices API,2025-12-18T04:46:49.225759 +AZURE,centralindia,Standard_E96ds_v6,reserved_3y,NA,3.158447,USD,Azure Retail Prices API,2025-12-18T04:46:49.225764 +AZURE,centralindia,Standard_E96ds_v6,spot,NA,1.496695,USD,Azure Retail Prices API,2025-12-18T04:46:47.688379 +AZURE,centralindia,Standard_E96pds_v6,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:46:47.690320 +AZURE,centralindia,Standard_E96pds_v6,reserved_1y,NA,2.175,USD,Azure Retail Prices API,2025-12-18T04:46:49.225938 +AZURE,centralindia,Standard_E96pds_v6,reserved_3y,NA,1.400837,USD,Azure Retail Prices API,2025-12-18T04:46:49.225944 +AZURE,centralindia,Standard_E96pds_v6,spot,NA,0.681173,USD,Azure Retail Prices API,2025-12-18T04:46:47.690208 +AZURE,centralindia,Standard_E96ps_v6,on_demand,NA,2.909,USD,Azure Retail Prices API,2025-12-18T04:46:47.688820 +AZURE,centralindia,Standard_E96ps_v6,reserved_1y,NA,1.71621,USD,Azure Retail Prices API,2025-12-18T04:46:49.223678 +AZURE,centralindia,Standard_E96ps_v6,reserved_3y,NA,1.105327,USD,Azure Retail Prices API,2025-12-18T04:46:49.223684 +AZURE,centralindia,Standard_E96ps_v6,spot,NA,0.537583,USD,Azure Retail Prices API,2025-12-18T04:46:47.689028 +AZURE,centralindia,Standard_E96s_v5,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:46:47.688762 +AZURE,centralindia,Standard_E96s_v5,reserved_1y,NA,3.681621,USD,Azure Retail Prices API,2025-12-18T04:46:49.223592 +AZURE,centralindia,Standard_E96s_v5,reserved_3y,NA,2.30879,USD,Azure Retail Prices API,2025-12-18T04:46:49.223597 +AZURE,centralindia,Standard_E96s_v5,spot,NA,1.153152,USD,Azure Retail Prices API,2025-12-18T04:46:47.688572 +AZURE,centralindia,Standard_EC16ads_v5,on_demand,NA,0.664,USD,Azure Retail Prices API,2025-12-18T04:46:47.688507 +AZURE,centralindia,Standard_EC16ads_v5,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:46:49.223110 +AZURE,centralindia,Standard_EC16ads_v5,reserved_3y,NA,0.39863,USD,Azure Retail Prices API,2025-12-18T04:46:49.223116 +AZURE,centralindia,Standard_EC16ads_v5,spot,NA,0.125297,USD,Azure Retail Prices API,2025-12-18T04:46:47.688988 +AZURE,centralindia,Standard_EC16ads_v6,on_demand,NA,0.75,USD,Azure Retail Prices API,2025-12-18T04:46:47.689686 +AZURE,centralindia,Standard_EC16ads_v6,reserved_1y,NA,0.442694,USD,Azure Retail Prices API,2025-12-18T04:46:49.224850 +AZURE,centralindia,Standard_EC16ads_v6,reserved_3y,NA,0.28516,USD,Azure Retail Prices API,2025-12-18T04:46:49.224854 +AZURE,centralindia,Standard_EC16ads_v6,spot,NA,0.1386,USD,Azure Retail Prices API,2025-12-18T04:46:47.688757 +AZURE,centralindia,Standard_EC16as_v5,on_demand,NA,0.572,USD,Azure Retail Prices API,2025-12-18T04:46:47.688614 +AZURE,centralindia,Standard_EC16as_v5,reserved_1y,NA,0.457648,USD,Azure Retail Prices API,2025-12-18T04:46:49.223292 +AZURE,centralindia,Standard_EC16as_v5,reserved_3y,NA,0.343189,USD,Azure Retail Prices API,2025-12-18T04:46:49.223297 +AZURE,centralindia,Standard_EC16as_v5,spot,NA,0.107936,USD,Azure Retail Prices API,2025-12-18T04:46:47.689618 +AZURE,centralindia,Standard_EC16as_v6,on_demand,NA,0.616,USD,Azure Retail Prices API,2025-12-18T04:46:47.689810 +AZURE,centralindia,Standard_EC16as_v6,reserved_1y,NA,0.36347,USD,Azure Retail Prices API,2025-12-18T04:46:49.225130 +AZURE,centralindia,Standard_EC16as_v6,reserved_3y,NA,0.234094,USD,Azure Retail Prices API,2025-12-18T04:46:49.225136 +AZURE,centralindia,Standard_EC16as_v6,spot,NA,0.113837,USD,Azure Retail Prices API,2025-12-18T04:46:47.688737 +AZURE,centralindia,Standard_EC20ads_v5,on_demand,NA,0.831,USD,Azure Retail Prices API,2025-12-18T04:46:47.688557 +AZURE,centralindia,Standard_EC20ads_v5,reserved_1y,NA,0.664384,USD,Azure Retail Prices API,2025-12-18T04:46:49.223206 +AZURE,centralindia,Standard_EC20ads_v5,reserved_3y,NA,0.498288,USD,Azure Retail Prices API,2025-12-18T04:46:49.223211 +AZURE,centralindia,Standard_EC20ads_v5,spot,NA,0.15681,USD,Azure Retail Prices API,2025-12-18T04:46:47.689459 +AZURE,centralindia,Standard_EC20as_v5,on_demand,NA,0.715,USD,Azure Retail Prices API,2025-12-18T04:46:47.688432 +AZURE,centralindia,Standard_EC20as_v5,reserved_1y,NA,0.572032,USD,Azure Retail Prices API,2025-12-18T04:46:49.222900 +AZURE,centralindia,Standard_EC20as_v5,reserved_3y,NA,0.428995,USD,Azure Retail Prices API,2025-12-18T04:46:49.222906 +AZURE,centralindia,Standard_EC20as_v5,spot,NA,0.13492,USD,Azure Retail Prices API,2025-12-18T04:46:47.690085 +AZURE,centralindia,Standard_EC2ads_v6,on_demand,NA,0.0938,USD,Azure Retail Prices API,2025-12-18T04:46:47.688870 +AZURE,centralindia,Standard_EC2ads_v6,reserved_1y,NA,0.055365,USD,Azure Retail Prices API,2025-12-18T04:46:49.223752 +AZURE,centralindia,Standard_EC2ads_v6,reserved_3y,NA,0.035654,USD,Azure Retail Prices API,2025-12-18T04:46:49.223758 +AZURE,centralindia,Standard_EC2ads_v6,spot,NA,0.017334,USD,Azure Retail Prices API,2025-12-18T04:46:47.688717 +AZURE,centralindia,Standard_EC2as_v6,on_demand,NA,0.077,USD,Azure Retail Prices API,2025-12-18T04:46:47.688602 +AZURE,centralindia,Standard_EC2as_v6,reserved_1y,NA,0.045434,USD,Azure Retail Prices API,2025-12-18T04:46:49.223259 +AZURE,centralindia,Standard_EC2as_v6,reserved_3y,NA,0.029262,USD,Azure Retail Prices API,2025-12-18T04:46:49.223264 +AZURE,centralindia,Standard_EC2as_v6,spot,NA,0.01423,USD,Azure Retail Prices API,2025-12-18T04:46:47.688817 +AZURE,centralindia,Standard_EC32ads_v5,on_demand,NA,1.329,USD,Azure Retail Prices API,2025-12-18T04:46:47.689323 +AZURE,centralindia,Standard_EC32ads_v5,reserved_1y,NA,1.063014,USD,Azure Retail Prices API,2025-12-18T04:46:49.224371 +AZURE,centralindia,Standard_EC32ads_v5,reserved_3y,NA,0.797298,USD,Azure Retail Prices API,2025-12-18T04:46:49.224376 +AZURE,centralindia,Standard_EC32ads_v5,spot,NA,0.250782,USD,Azure Retail Prices API,2025-12-18T04:46:47.689430 +AZURE,centralindia,Standard_EC32ads_v6,on_demand,NA,1.501,USD,Azure Retail Prices API,2025-12-18T04:46:47.688411 +AZURE,centralindia,Standard_EC32ads_v6,reserved_1y,NA,0.885502,USD,Azure Retail Prices API,2025-12-18T04:46:49.222835 +AZURE,centralindia,Standard_EC32ads_v6,reserved_3y,NA,0.57032,USD,Azure Retail Prices API,2025-12-18T04:46:49.222841 +AZURE,centralindia,Standard_EC32ads_v6,spot,NA,0.277385,USD,Azure Retail Prices API,2025-12-18T04:46:47.690053 +AZURE,centralindia,Standard_EC32as_v5,on_demand,NA,1.144,USD,Azure Retail Prices API,2025-12-18T04:46:47.688745 +AZURE,centralindia,Standard_EC32as_v5,reserved_1y,NA,0.915183,USD,Azure Retail Prices API,2025-12-18T04:46:49.223548 +AZURE,centralindia,Standard_EC32as_v5,reserved_3y,NA,0.686416,USD,Azure Retail Prices API,2025-12-18T04:46:49.223554 +AZURE,centralindia,Standard_EC32as_v5,spot,NA,0.215873,USD,Azure Retail Prices API,2025-12-18T04:46:47.688698 +AZURE,centralindia,Standard_EC32as_v6,on_demand,NA,1.232,USD,Azure Retail Prices API,2025-12-18T04:46:47.689973 +AZURE,centralindia,Standard_EC32as_v6,reserved_1y,NA,0.726826,USD,Azure Retail Prices API,2025-12-18T04:46:49.225371 +AZURE,centralindia,Standard_EC32as_v6,reserved_3y,NA,0.468151,USD,Azure Retail Prices API,2025-12-18T04:46:49.225376 +AZURE,centralindia,Standard_EC32as_v6,spot,NA,0.227674,USD,Azure Retail Prices API,2025-12-18T04:46:47.689693 +AZURE,centralindia,Standard_EC48ads_v5,on_demand,NA,1.993,USD,Azure Retail Prices API,2025-12-18T04:46:47.689797 +AZURE,centralindia,Standard_EC48ads_v5,reserved_1y,NA,1.594521,USD,Azure Retail Prices API,2025-12-18T04:46:49.225094 +AZURE,centralindia,Standard_EC48ads_v5,reserved_3y,NA,1.195928,USD,Azure Retail Prices API,2025-12-18T04:46:49.225100 +AZURE,centralindia,Standard_EC48ads_v5,spot,NA,0.376079,USD,Azure Retail Prices API,2025-12-18T04:46:47.689933 +AZURE,centralindia,Standard_EC48ads_v6,on_demand,NA,2.251,USD,Azure Retail Prices API,2025-12-18T04:46:47.690239 +AZURE,centralindia,Standard_EC48ads_v6,reserved_1y,NA,1.328196,USD,Azure Retail Prices API,2025-12-18T04:46:49.225769 +AZURE,centralindia,Standard_EC48ads_v6,reserved_3y,NA,0.855441,USD,Azure Retail Prices API,2025-12-18T04:46:49.225774 +AZURE,centralindia,Standard_EC48ads_v6,spot,NA,0.415985,USD,Azure Retail Prices API,2025-12-18T04:46:47.689395 +AZURE,centralindia,Standard_EC48as_v5,on_demand,NA,1.716,USD,Azure Retail Prices API,2025-12-18T04:46:47.689010 +AZURE,centralindia,Standard_EC48as_v5,reserved_1y,NA,1.372831,USD,Azure Retail Prices API,2025-12-18T04:46:49.223955 +AZURE,centralindia,Standard_EC48as_v5,reserved_3y,NA,1.029604,USD,Azure Retail Prices API,2025-12-18T04:46:49.223960 +AZURE,centralindia,Standard_EC48as_v5,spot,NA,0.323809,USD,Azure Retail Prices API,2025-12-18T04:46:47.689283 +AZURE,centralindia,Standard_EC48as_v6,on_demand,NA,1.848,USD,Azure Retail Prices API,2025-12-18T04:46:47.690211 +AZURE,centralindia,Standard_EC48as_v6,reserved_1y,NA,1.090297,USD,Azure Retail Prices API,2025-12-18T04:46:49.225696 +AZURE,centralindia,Standard_EC48as_v6,reserved_3y,NA,0.702245,USD,Azure Retail Prices API,2025-12-18T04:46:49.225702 +AZURE,centralindia,Standard_EC48as_v6,spot,NA,0.34151,USD,Azure Retail Prices API,2025-12-18T04:46:47.689025 +AZURE,centralindia,Standard_EC4ads_v5,on_demand,NA,0.166,USD,Azure Retail Prices API,2025-12-18T04:46:47.688533 +AZURE,centralindia,Standard_EC4ads_v5,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:46:49.223151 +AZURE,centralindia,Standard_EC4ads_v5,reserved_3y,NA,0.099658,USD,Azure Retail Prices API,2025-12-18T04:46:49.223157 +AZURE,centralindia,Standard_EC4ads_v5,spot,NA,0.031324,USD,Azure Retail Prices API,2025-12-18T04:46:47.690069 +AZURE,centralindia,Standard_EC4ads_v6,on_demand,NA,0.188,USD,Azure Retail Prices API,2025-12-18T04:46:47.689861 +AZURE,centralindia,Standard_EC4ads_v6,reserved_1y,NA,0.110731,USD,Azure Retail Prices API,2025-12-18T04:46:49.225184 +AZURE,centralindia,Standard_EC4ads_v6,reserved_3y,NA,0.071271,USD,Azure Retail Prices API,2025-12-18T04:46:49.225189 +AZURE,centralindia,Standard_EC4ads_v6,spot,NA,0.034742,USD,Azure Retail Prices API,2025-12-18T04:46:47.689570 +AZURE,centralindia,Standard_EC4as_v5,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:47.690252 +AZURE,centralindia,Standard_EC4as_v5,reserved_1y,NA,0.114384,USD,Azure Retail Prices API,2025-12-18T04:46:49.225802 +AZURE,centralindia,Standard_EC4as_v5,reserved_3y,NA,0.085807,USD,Azure Retail Prices API,2025-12-18T04:46:49.225807 +AZURE,centralindia,Standard_EC4as_v5,spot,NA,0.026984,USD,Azure Retail Prices API,2025-12-18T04:46:47.688714 +AZURE,centralindia,Standard_EC4as_v6,on_demand,NA,0.154,USD,Azure Retail Prices API,2025-12-18T04:46:47.689274 +AZURE,centralindia,Standard_EC4as_v6,reserved_1y,NA,0.090868,USD,Azure Retail Prices API,2025-12-18T04:46:49.224266 +AZURE,centralindia,Standard_EC4as_v6,reserved_3y,NA,0.058524,USD,Azure Retail Prices API,2025-12-18T04:46:49.224272 +AZURE,centralindia,Standard_EC4as_v6,spot,NA,0.028459,USD,Azure Retail Prices API,2025-12-18T04:46:47.688776 +AZURE,centralindia,Standard_EC64ads_v5,on_demand,NA,2.658,USD,Azure Retail Prices API,2025-12-18T04:46:47.689535 +AZURE,centralindia,Standard_EC64ads_v5,reserved_1y,NA,2.126027,USD,Azure Retail Prices API,2025-12-18T04:46:49.224703 +AZURE,centralindia,Standard_EC64ads_v5,reserved_3y,NA,1.594559,USD,Azure Retail Prices API,2025-12-18T04:46:49.224709 +AZURE,centralindia,Standard_EC64ads_v5,spot,NA,0.501565,USD,Azure Retail Prices API,2025-12-18T04:46:47.689104 +AZURE,centralindia,Standard_EC64ads_v6,on_demand,NA,3.002,USD,Azure Retail Prices API,2025-12-18T04:46:47.689517 +AZURE,centralindia,Standard_EC64ads_v6,reserved_1y,NA,1.77089,USD,Azure Retail Prices API,2025-12-18T04:46:49.224659 +AZURE,centralindia,Standard_EC64ads_v6,reserved_3y,NA,1.140601,USD,Azure Retail Prices API,2025-12-18T04:46:49.224665 +AZURE,centralindia,Standard_EC64ads_v6,spot,NA,0.55477,USD,Azure Retail Prices API,2025-12-18T04:46:47.689357 +AZURE,centralindia,Standard_EC64as_v5,on_demand,NA,2.288,USD,Azure Retail Prices API,2025-12-18T04:46:47.688563 +AZURE,centralindia,Standard_EC64as_v5,reserved_1y,NA,1.830365,USD,Azure Retail Prices API,2025-12-18T04:46:49.223226 +AZURE,centralindia,Standard_EC64as_v5,reserved_3y,NA,1.372793,USD,Azure Retail Prices API,2025-12-18T04:46:49.223231 +AZURE,centralindia,Standard_EC64as_v5,spot,NA,0.431746,USD,Azure Retail Prices API,2025-12-18T04:46:47.690076 +AZURE,centralindia,Standard_EC64as_v6,on_demand,NA,2.464,USD,Azure Retail Prices API,2025-12-18T04:46:47.690082 +AZURE,centralindia,Standard_EC64as_v6,reserved_1y,NA,1.453767,USD,Azure Retail Prices API,2025-12-18T04:46:49.225560 +AZURE,centralindia,Standard_EC64as_v6,reserved_3y,NA,0.936301,USD,Azure Retail Prices API,2025-12-18T04:46:49.225565 +AZURE,centralindia,Standard_EC64as_v6,spot,NA,0.455347,USD,Azure Retail Prices API,2025-12-18T04:46:47.689130 +AZURE,centralindia,Standard_EC8ads_v5,on_demand,NA,0.332,USD,Azure Retail Prices API,2025-12-18T04:46:47.688642 +AZURE,centralindia,Standard_EC8ads_v5,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:46:49.223342 +AZURE,centralindia,Standard_EC8ads_v5,reserved_3y,NA,0.199315,USD,Azure Retail Prices API,2025-12-18T04:46:49.223347 +AZURE,centralindia,Standard_EC8ads_v5,spot,NA,0.062648,USD,Azure Retail Prices API,2025-12-18T04:46:47.688842 +AZURE,centralindia,Standard_EC8ads_v6,on_demand,NA,0.375,USD,Azure Retail Prices API,2025-12-18T04:46:47.690314 +AZURE,centralindia,Standard_EC8ads_v6,reserved_1y,NA,0.221347,USD,Azure Retail Prices API,2025-12-18T04:46:49.225918 +AZURE,centralindia,Standard_EC8ads_v6,reserved_3y,NA,0.14258,USD,Azure Retail Prices API,2025-12-18T04:46:49.225922 +AZURE,centralindia,Standard_EC8ads_v6,spot,NA,0.0693,USD,Azure Retail Prices API,2025-12-18T04:46:47.689177 +AZURE,centralindia,Standard_EC8as_v5,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:47.688450 +AZURE,centralindia,Standard_EC8as_v5,reserved_1y,NA,0.228767,USD,Azure Retail Prices API,2025-12-18T04:46:49.222946 +AZURE,centralindia,Standard_EC8as_v5,reserved_3y,NA,0.171613,USD,Azure Retail Prices API,2025-12-18T04:46:49.222951 +AZURE,centralindia,Standard_EC8as_v5,spot,NA,0.053968,USD,Azure Retail Prices API,2025-12-18T04:46:47.688720 +AZURE,centralindia,Standard_EC8as_v6,on_demand,NA,0.308,USD,Azure Retail Prices API,2025-12-18T04:46:47.690066 +AZURE,centralindia,Standard_EC8as_v6,reserved_1y,NA,0.181735,USD,Azure Retail Prices API,2025-12-18T04:46:49.225528 +AZURE,centralindia,Standard_EC8as_v6,reserved_3y,NA,0.117047,USD,Azure Retail Prices API,2025-12-18T04:46:49.225533 +AZURE,centralindia,Standard_EC8as_v6,spot,NA,0.056918,USD,Azure Retail Prices API,2025-12-18T04:46:47.689048 +AZURE,centralindia,Standard_EC96ads_v5,on_demand,NA,3.986,USD,Azure Retail Prices API,2025-12-18T04:46:47.688605 +AZURE,centralindia,Standard_EC96ads_v5,reserved_1y,NA,3.189155,USD,Azure Retail Prices API,2025-12-18T04:46:49.223270 +AZURE,centralindia,Standard_EC96ads_v5,reserved_3y,NA,2.391857,USD,Azure Retail Prices API,2025-12-18T04:46:49.223276 +AZURE,centralindia,Standard_EC96ads_v5,spot,NA,0.752158,USD,Azure Retail Prices API,2025-12-18T04:46:47.689699 +AZURE,centralindia,Standard_EC96ads_v6,on_demand,NA,4.502,USD,Azure Retail Prices API,2025-12-18T04:46:47.688617 +AZURE,centralindia,Standard_EC96ads_v6,reserved_1y,NA,2.656393,USD,Azure Retail Prices API,2025-12-18T04:46:49.223302 +AZURE,centralindia,Standard_EC96ads_v6,reserved_3y,NA,1.710921,USD,Azure Retail Prices API,2025-12-18T04:46:49.223307 +AZURE,centralindia,Standard_EC96ads_v6,spot,NA,0.83197,USD,Azure Retail Prices API,2025-12-18T04:46:47.689630 +AZURE,centralindia,Standard_EC96as_v5,on_demand,NA,3.432,USD,Azure Retail Prices API,2025-12-18T04:46:47.688692 +AZURE,centralindia,Standard_EC96as_v5,reserved_1y,NA,2.745548,USD,Azure Retail Prices API,2025-12-18T04:46:49.223450 +AZURE,centralindia,Standard_EC96as_v5,reserved_3y,NA,2.059209,USD,Azure Retail Prices API,2025-12-18T04:46:49.223456 +AZURE,centralindia,Standard_EC96as_v5,spot,NA,0.647618,USD,Azure Retail Prices API,2025-12-18T04:46:47.689759 +AZURE,centralindia,Standard_EC96as_v6,on_demand,NA,3.696,USD,Azure Retail Prices API,2025-12-18T04:46:47.688654 +AZURE,centralindia,Standard_EC96as_v6,reserved_1y,NA,2.180594,USD,Azure Retail Prices API,2025-12-18T04:46:49.223375 +AZURE,centralindia,Standard_EC96as_v6,reserved_3y,NA,1.40449,USD,Azure Retail Prices API,2025-12-18T04:46:49.223380 +AZURE,centralindia,Standard_EC96as_v6,spot,NA,0.683021,USD,Azure Retail Prices API,2025-12-18T04:46:47.690323 +AZURE,centralindia,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379770 +AZURE,centralindia,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379782 +AZURE,centralindia,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379788 +AZURE,centralindia,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379774 +AZURE,centralindia,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382093 +AZURE,centralindia,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382101 +AZURE,centralindia,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382105 +AZURE,centralindia,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382097 +AZURE,centralindia,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384823 +AZURE,centralindia,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384833 +AZURE,centralindia,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384837 +AZURE,centralindia,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384827 +AZURE,centralindia,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385663 +AZURE,centralindia,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385671 +AZURE,centralindia,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385675 +AZURE,centralindia,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385667 +AZURE,centralindia,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378246 +AZURE,centralindia,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378255 +AZURE,centralindia,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378259 +AZURE,centralindia,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378250 +AZURE,centralindia,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386426 +AZURE,centralindia,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386438 +AZURE,centralindia,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386449 +AZURE,centralindia,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386430 +AZURE,centralindia,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380530 +AZURE,centralindia,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380539 +AZURE,centralindia,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380543 +AZURE,centralindia,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380535 +AZURE,centralindia,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383213 +AZURE,centralindia,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383223 +AZURE,centralindia,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383228 +AZURE,centralindia,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383218 +AZURE,centralindia,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387207 +AZURE,centralindia,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387215 +AZURE,centralindia,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387220 +AZURE,centralindia,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387211 +AZURE,centralindia,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388387 +AZURE,centralindia,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388395 +AZURE,centralindia,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388399 +AZURE,centralindia,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388391 +AZURE,centralindia,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379004 +AZURE,centralindia,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379012 +AZURE,centralindia,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379017 +AZURE,centralindia,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379008 +AZURE,centralindia,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381288 +AZURE,centralindia,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381296 +AZURE,centralindia,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381301 +AZURE,centralindia,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381292 +AZURE,centralindia,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384010 +AZURE,centralindia,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384023 +AZURE,centralindia,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384030 +AZURE,centralindia,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384017 +AZURE,centralindia,Standard_H16,on_demand,NA,1.995,USD,Azure Retail Prices API,2025-12-18T04:46:47.688365 +AZURE,centralindia,Standard_H16,spot,NA,0.368676,USD,Azure Retail Prices API,2025-12-18T04:46:47.689332 +AZURE,centralindia,Standard_H8,on_demand,NA,0.998,USD,Azure Retail Prices API,2025-12-18T04:46:47.688994 +AZURE,centralindia,Standard_H8,spot,NA,0.18443,USD,Azure Retail Prices API,2025-12-18T04:46:47.689412 +AZURE,centralindia,Standard_L16as_v3,on_demand,NA,1.416,USD,Azure Retail Prices API,2025-12-18T04:46:47.689312 +AZURE,centralindia,Standard_L16as_v3,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:46:49.224348 +AZURE,centralindia,Standard_L16as_v3,reserved_3y,NA,0.594711,USD,Azure Retail Prices API,2025-12-18T04:46:49.224354 +AZURE,centralindia,Standard_L16as_v3,spot,NA,0.261677,USD,Azure Retail Prices API,2025-12-18T04:46:47.690300 +AZURE,centralindia,Standard_L16s_v3,on_demand,NA,1.584,USD,Azure Retail Prices API,2025-12-18T04:46:47.688483 +AZURE,centralindia,Standard_L16s_v3,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:46:49.223023 +AZURE,centralindia,Standard_L16s_v3,reserved_3y,NA,0.665297,USD,Azure Retail Prices API,2025-12-18T04:46:49.223029 +AZURE,centralindia,Standard_L16s_v3,spot,NA,0.292723,USD,Azure Retail Prices API,2025-12-18T04:46:47.690092 +AZURE,centralindia,Standard_L32as_v3,on_demand,NA,2.832,USD,Azure Retail Prices API,2025-12-18T04:46:47.690060 +AZURE,centralindia,Standard_L32as_v3,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:46:49.225518 +AZURE,centralindia,Standard_L32as_v3,reserved_3y,NA,1.189422,USD,Azure Retail Prices API,2025-12-18T04:46:49.225523 +AZURE,centralindia,Standard_L32as_v3,spot,NA,0.523354,USD,Azure Retail Prices API,2025-12-18T04:46:47.689034 +AZURE,centralindia,Standard_L32s_v3,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:46:47.689054 +AZURE,centralindia,Standard_L32s_v3,reserved_1y,NA,2.027511,USD,Azure Retail Prices API,2025-12-18T04:46:49.224049 +AZURE,centralindia,Standard_L32s_v3,reserved_3y,NA,1.330556,USD,Azure Retail Prices API,2025-12-18T04:46:49.224053 +AZURE,centralindia,Standard_L32s_v3,spot,NA,0.585446,USD,Azure Retail Prices API,2025-12-18T04:46:47.688825 +AZURE,centralindia,Standard_L48as_v3,on_demand,NA,4.248,USD,Azure Retail Prices API,2025-12-18T04:46:47.689306 +AZURE,centralindia,Standard_L48as_v3,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:46:49.224327 +AZURE,centralindia,Standard_L48as_v3,reserved_3y,NA,1.78417,USD,Azure Retail Prices API,2025-12-18T04:46:49.224332 +AZURE,centralindia,Standard_L48as_v3,spot,NA,0.78503,USD,Azure Retail Prices API,2025-12-18T04:46:47.689433 +AZURE,centralindia,Standard_L48s_v3,on_demand,NA,4.752,USD,Azure Retail Prices API,2025-12-18T04:46:47.689996 +AZURE,centralindia,Standard_L48s_v3,reserved_1y,NA,3.041324,USD,Azure Retail Prices API,2025-12-18T04:46:49.225403 +AZURE,centralindia,Standard_L48s_v3,reserved_3y,NA,1.995852,USD,Azure Retail Prices API,2025-12-18T04:46:49.225408 +AZURE,centralindia,Standard_L48s_v3,spot,NA,0.87817,USD,Azure Retail Prices API,2025-12-18T04:46:47.689280 +AZURE,centralindia,Standard_L64as_v3,on_demand,NA,5.664,USD,Azure Retail Prices API,2025-12-18T04:46:47.689544 +AZURE,centralindia,Standard_L64as_v3,reserved_1y,NA,3.625,USD,Azure Retail Prices API,2025-12-18T04:46:49.224727 +AZURE,centralindia,Standard_L64as_v3,reserved_3y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:46:49.224733 +AZURE,centralindia,Standard_L64as_v3,spot,NA,1.046707,USD,Azure Retail Prices API,2025-12-18T04:46:47.689205 +AZURE,centralindia,Standard_L64s_v3,on_demand,NA,6.336,USD,Azure Retail Prices API,2025-12-18T04:46:47.689696 +AZURE,centralindia,Standard_L64s_v3,reserved_1y,NA,4.055023,USD,Azure Retail Prices API,2025-12-18T04:46:49.224873 +AZURE,centralindia,Standard_L64s_v3,reserved_3y,NA,2.661111,USD,Azure Retail Prices API,2025-12-18T04:46:49.224878 +AZURE,centralindia,Standard_L64s_v3,spot,NA,1.170893,USD,Azure Retail Prices API,2025-12-18T04:46:47.689511 +AZURE,centralindia,Standard_L80as_v3,on_demand,NA,7.08,USD,Azure Retail Prices API,2025-12-18T04:46:47.690303 +AZURE,centralindia,Standard_L80as_v3,reserved_1y,NA,4.531164,USD,Azure Retail Prices API,2025-12-18T04:46:49.225897 +AZURE,centralindia,Standard_L80as_v3,reserved_3y,NA,2.973592,USD,Azure Retail Prices API,2025-12-18T04:46:49.225902 +AZURE,centralindia,Standard_L80as_v3,spot,NA,1.308384,USD,Azure Retail Prices API,2025-12-18T04:46:47.689746 +AZURE,centralindia,Standard_L80s_v3,on_demand,NA,7.92,USD,Azure Retail Prices API,2025-12-18T04:46:47.689728 +AZURE,centralindia,Standard_L80s_v3,reserved_1y,NA,5.068836,USD,Azure Retail Prices API,2025-12-18T04:46:49.224950 +AZURE,centralindia,Standard_L80s_v3,reserved_3y,NA,3.326408,USD,Azure Retail Prices API,2025-12-18T04:46:49.224955 +AZURE,centralindia,Standard_L80s_v3,spot,NA,1.463616,USD,Azure Retail Prices API,2025-12-18T04:46:47.688657 +AZURE,centralindia,Standard_L8as_v3,on_demand,NA,0.708,USD,Azure Retail Prices API,2025-12-18T04:46:47.689712 +AZURE,centralindia,Standard_L8as_v3,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:46:49.224906 +AZURE,centralindia,Standard_L8as_v3,reserved_3y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:46:49.224912 +AZURE,centralindia,Standard_L8as_v3,spot,NA,0.130838,USD,Azure Retail Prices API,2025-12-18T04:46:47.688823 +AZURE,centralindia,Standard_L8s_v3,on_demand,NA,0.792,USD,Azure Retail Prices API,2025-12-18T04:46:47.690110 +AZURE,centralindia,Standard_L8s_v3,reserved_1y,NA,0.506849,USD,Azure Retail Prices API,2025-12-18T04:46:49.225592 +AZURE,centralindia,Standard_L8s_v3,reserved_3y,NA,0.332648,USD,Azure Retail Prices API,2025-12-18T04:46:49.225597 +AZURE,centralindia,Standard_L8s_v3,spot,NA,0.146362,USD,Azure Retail Prices API,2025-12-18T04:46:47.688751 +AZURE,centralindia,Standard_NC12s_v3,on_demand,NA,8.468,USD,Azure Retail Prices API,2025-12-18T04:46:47.689031 +AZURE,centralindia,Standard_NC12s_v3,spot,NA,1.564886,USD,Azure Retail Prices API,2025-12-18T04:46:47.690149 +AZURE,centralindia,Standard_NC16as_T4_v3,on_demand,NA,1.324,USD,Azure Retail Prices API,2025-12-18T04:46:47.688510 +AZURE,centralindia,Standard_NC16as_T4_v3,reserved_1y,NA,0.779338,USD,Azure Retail Prices API,2025-12-18T04:46:49.223121 +AZURE,centralindia,Standard_NC16as_T4_v3,reserved_3y,NA,0.503272,USD,Azure Retail Prices API,2025-12-18T04:46:49.223126 +AZURE,centralindia,Standard_NC16as_T4_v3,spot,NA,0.38396,USD,Azure Retail Prices API,2025-12-18T04:46:47.688891 +AZURE,centralindia,Standard_NC24ads_A100_v4,on_demand,NA,5.142,USD,Azure Retail Prices API,2025-12-18T04:46:47.688958 +AZURE,centralindia,Standard_NC24ads_A100_v4,reserved_1y,NA,3.361416,USD,Azure Retail Prices API,2025-12-18T04:46:49.223858 +AZURE,centralindia,Standard_NC24ads_A100_v4,reserved_3y,NA,1.908257,USD,Azure Retail Prices API,2025-12-18T04:46:49.223864 +AZURE,centralindia,Standard_NC24ads_A100_v4,spot,NA,0.950242,USD,Azure Retail Prices API,2025-12-18T04:46:47.689215 +AZURE,centralindia,Standard_NC24s_v3,on_demand,NA,16.936,USD,Azure Retail Prices API,2025-12-18T04:46:47.689564 +AZURE,centralindia,Standard_NC24s_v3,spot,NA,3.129773,USD,Azure Retail Prices API,2025-12-18T04:46:47.689772 +AZURE,centralindia,Standard_NC40ads_H100_v5,on_demand,NA,9.772,USD,Azure Retail Prices API,2025-12-18T04:46:47.690269 +AZURE,centralindia,Standard_NC40ads_H100_v5,reserved_1y,NA,7.328995,USD,Azure Retail Prices API,2025-12-18T04:46:49.225843 +AZURE,centralindia,Standard_NC40ads_H100_v5,reserved_3y,NA,5.374581,USD,Azure Retail Prices API,2025-12-18T04:46:49.225849 +AZURE,centralindia,Standard_NC40ads_H100_v5,spot,NA,8.7948,USD,Azure Retail Prices API,2025-12-18T04:46:47.690012 +AZURE,centralindia,Standard_NC48ads_A100_v4,on_demand,NA,10.284,USD,Azure Retail Prices API,2025-12-18T04:46:47.689715 +AZURE,centralindia,Standard_NC48ads_A100_v4,reserved_1y,NA,6.722945,USD,Azure Retail Prices API,2025-12-18T04:46:49.224918 +AZURE,centralindia,Standard_NC48ads_A100_v4,reserved_3y,NA,3.816553,USD,Azure Retail Prices API,2025-12-18T04:46:49.224923 +AZURE,centralindia,Standard_NC48ads_A100_v4,spot,NA,1.900483,USD,Azure Retail Prices API,2025-12-18T04:46:47.689080 +AZURE,centralindia,Standard_NC4as_T4_v3,on_demand,NA,0.579,USD,Azure Retail Prices API,2025-12-18T04:46:47.689101 +AZURE,centralindia,Standard_NC4as_T4_v3,reserved_1y,NA,0.340411,USD,Azure Retail Prices API,2025-12-18T04:46:49.224083 +AZURE,centralindia,Standard_NC4as_T4_v3,reserved_3y,NA,0.219863,USD,Azure Retail Prices API,2025-12-18T04:46:49.224087 +AZURE,centralindia,Standard_NC4as_T4_v3,spot,NA,0.16791,USD,Azure Retail Prices API,2025-12-18T04:46:47.689655 +AZURE,centralindia,Standard_NC64as_T4_v3,on_demand,NA,4.787,USD,Azure Retail Prices API,2025-12-18T04:46:47.688726 +AZURE,centralindia,Standard_NC64as_T4_v3,reserved_1y,NA,2.816781,USD,Azure Retail Prices API,2025-12-18T04:46:49.223505 +AZURE,centralindia,Standard_NC64as_T4_v3,reserved_3y,NA,1.81914,USD,Azure Retail Prices API,2025-12-18T04:46:49.223511 +AZURE,centralindia,Standard_NC64as_T4_v3,spot,NA,1.38823,USD,Azure Retail Prices API,2025-12-18T04:46:47.689842 +AZURE,centralindia,Standard_NC6s_v3,on_demand,NA,4.234,USD,Azure Retail Prices API,2025-12-18T04:46:47.689196 +AZURE,centralindia,Standard_NC6s_v3,spot,NA,0.782443,USD,Azure Retail Prices API,2025-12-18T04:46:47.688791 +AZURE,centralindia,Standard_NC8as_T4_v3,on_demand,NA,0.827,USD,Azure Retail Prices API,2025-12-18T04:46:47.690231 +AZURE,centralindia,Standard_NC8as_T4_v3,reserved_1y,NA,0.486758,USD,Azure Retail Prices API,2025-12-18T04:46:49.225740 +AZURE,centralindia,Standard_NC8as_T4_v3,reserved_3y,NA,0.314346,USD,Azure Retail Prices API,2025-12-18T04:46:49.225744 +AZURE,centralindia,Standard_NC8as_T4_v3,spot,NA,0.23983,USD,Azure Retail Prices API,2025-12-18T04:46:47.689508 +AZURE,centralindia,Standard_NC96ads_A100_v4,on_demand,NA,20.569,USD,Azure Retail Prices API,2025-12-18T04:46:47.690260 +AZURE,centralindia,Standard_NC96ads_A100_v4,reserved_1y,NA,13.445776,USD,Azure Retail Prices API,2025-12-18T04:46:49.225823 +AZURE,centralindia,Standard_NC96ads_A100_v4,reserved_3y,NA,7.633067,USD,Azure Retail Prices API,2025-12-18T04:46:49.225828 +AZURE,centralindia,Standard_NC96ads_A100_v4,spot,NA,3.801151,USD,Azure Retail Prices API,2025-12-18T04:46:47.688938 +AZURE,centralindia,Standard_NV36adms_A10_v5,on_demand,NA,6.328,USD,Azure Retail Prices API,2025-12-18T04:46:47.690141 +AZURE,centralindia,Standard_NV36adms_A10_v5,reserved_1y,NA,4.049886,USD,Azure Retail Prices API,2025-12-18T04:46:49.225623 +AZURE,centralindia,Standard_NV36adms_A10_v5,reserved_3y,NA,2.784323,USD,Azure Retail Prices API,2025-12-18T04:46:49.225628 +AZURE,centralindia,Standard_NV36adms_A10_v5,spot,NA,1.169414,USD,Azure Retail Prices API,2025-12-18T04:46:47.688782 +AZURE,centralindia,Standard_NV36ads_A10_v5,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:46:47.689246 +AZURE,centralindia,Standard_NV36ads_A10_v5,reserved_1y,NA,2.867237,USD,Azure Retail Prices API,2025-12-18T04:46:49.224226 +AZURE,centralindia,Standard_NV36ads_A10_v5,reserved_3y,NA,1.971195,USD,Azure Retail Prices API,2025-12-18T04:46:49.224232 +AZURE,centralindia,Standard_NV36ads_A10_v5,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:46:47.690194 +AZURE,centralindia,Standard_NV72ads_A10_v5,on_demand,NA,9.128,USD,Azure Retail Prices API,2025-12-18T04:46:47.689967 +AZURE,centralindia,Standard_NV72ads_A10_v5,reserved_1y,NA,5.841895,USD,Azure Retail Prices API,2025-12-18T04:46:49.225361 +AZURE,centralindia,Standard_NV72ads_A10_v5,reserved_3y,NA,4.016324,USD,Azure Retail Prices API,2025-12-18T04:46:49.225366 +AZURE,centralindia,Standard_NV72ads_A10_v5,spot,NA,1.686854,USD,Azure Retail Prices API,2025-12-18T04:46:47.688705 +AZURE,centralus,Standard_D128ds_v6,on_demand,NA,9.01,USD,Azure Retail Prices API,2025-12-18T04:45:04.014983 +AZURE,centralus,Standard_D128ds_v6,reserved_1y,NA,4.943379,USD,Azure Retail Prices API,2025-12-18T04:45:05.594329 +AZURE,centralus,Standard_D128ds_v6,reserved_3y,NA,3.109513,USD,Azure Retail Prices API,2025-12-18T04:45:05.594332 +AZURE,centralus,Standard_D128ds_v6,spot,NA,1.665048,USD,Azure Retail Prices API,2025-12-18T04:45:04.012156 +AZURE,centralus,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488199 +AZURE,centralus,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488207 +AZURE,centralus,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488211 +AZURE,centralus,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488203 +AZURE,centralus,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488942 +AZURE,centralus,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488950 +AZURE,centralus,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488954 +AZURE,centralus,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488946 +AZURE,centralus,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490063 +AZURE,centralus,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490078 +AZURE,centralus,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490087 +AZURE,centralus,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490070 +AZURE,centralus,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490768 +AZURE,centralus,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490777 +AZURE,centralus,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490781 +AZURE,centralus,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490773 +AZURE,centralus,Standard_D16_v3,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:45:04.015833 +AZURE,centralus,Standard_D16_v3,reserved_1y,NA,0.555023,USD,Azure Retail Prices API,2025-12-18T04:45:05.594810 +AZURE,centralus,Standard_D16_v3,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:45:05.594813 +AZURE,centralus,Standard_D16_v3,spot,NA,0.143088,USD,Azure Retail Prices API,2025-12-18T04:45:04.015487 +AZURE,centralus,Standard_D16a_v4,on_demand,NA,0.868,USD,Azure Retail Prices API,2025-12-18T04:45:04.015166 +AZURE,centralus,Standard_D16a_v4,reserved_1y,NA,0.520662,USD,Azure Retail Prices API,2025-12-18T04:45:05.594430 +AZURE,centralus,Standard_D16a_v4,reserved_3y,NA,0.347146,USD,Azure Retail Prices API,2025-12-18T04:45:05.594434 +AZURE,centralus,Standard_D16a_v4,spot,NA,0.141831,USD,Azure Retail Prices API,2025-12-18T04:45:04.016108 +AZURE,centralus,Standard_D16ads_v5,on_demand,NA,1.667,USD,Azure Retail Prices API,2025-12-18T04:45:04.012171 +AZURE,centralus,Standard_D16ads_v5,reserved_1y,NA,0.486187,USD,Azure Retail Prices API,2025-12-18T04:45:05.594679 +AZURE,centralus,Standard_D16ads_v5,reserved_3y,NA,0.313128,USD,Azure Retail Prices API,2025-12-18T04:45:05.594683 +AZURE,centralus,Standard_D16ads_v5,spot,NA,0.152125,USD,Azure Retail Prices API,2025-12-18T04:45:04.012606 +AZURE,centralus,Standard_D16ads_v6,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:45:04.012335 +AZURE,centralus,Standard_D16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:45:05.593729 +AZURE,centralus,Standard_D16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:45:05.593732 +AZURE,centralus,Standard_D16ads_v6,spot,NA,0.168422,USD,Azure Retail Prices API,2025-12-18T04:45:04.012991 +AZURE,centralus,Standard_D16as_v4,on_demand,NA,0.868,USD,Azure Retail Prices API,2025-12-18T04:45:04.011720 +AZURE,centralus,Standard_D16as_v4,reserved_1y,NA,0.520662,USD,Azure Retail Prices API,2025-12-18T04:45:05.593359 +AZURE,centralus,Standard_D16as_v4,reserved_3y,NA,0.347146,USD,Azure Retail Prices API,2025-12-18T04:45:05.593362 +AZURE,centralus,Standard_D16as_v4,spot,NA,0.141831,USD,Azure Retail Prices API,2025-12-18T04:45:04.012656 +AZURE,centralus,Standard_D16as_v5,on_demand,NA,1.513,USD,Azure Retail Prices API,2025-12-18T04:45:04.011846 +AZURE,centralus,Standard_D16as_v5,reserved_1y,NA,0.405936,USD,Azure Retail Prices API,2025-12-18T04:45:05.594168 +AZURE,centralus,Standard_D16as_v5,reserved_3y,NA,0.261454,USD,Azure Retail Prices API,2025-12-18T04:45:05.594171 +AZURE,centralus,Standard_D16as_v5,spot,NA,0.12704,USD,Azure Retail Prices API,2025-12-18T04:45:04.015731 +AZURE,centralus,Standard_D16d_v4,on_demand,NA,1.022,USD,Azure Retail Prices API,2025-12-18T04:45:04.015564 +AZURE,centralus,Standard_D16d_v4,reserved_1y,NA,0.60274,USD,Azure Retail Prices API,2025-12-18T04:45:05.594650 +AZURE,centralus,Standard_D16d_v4,reserved_3y,NA,0.388166,USD,Azure Retail Prices API,2025-12-18T04:45:05.594653 +AZURE,centralus,Standard_D16d_v4,spot,NA,0.219117,USD,Azure Retail Prices API,2025-12-18T04:45:04.012306 +AZURE,centralus,Standard_D16ds_v4,on_demand,NA,1.022,USD,Azure Retail Prices API,2025-12-18T04:45:04.011868 +AZURE,centralus,Standard_D16ds_v4,reserved_1y,NA,0.60274,USD,Azure Retail Prices API,2025-12-18T04:45:05.593430 +AZURE,centralus,Standard_D16ds_v4,reserved_3y,NA,0.388166,USD,Azure Retail Prices API,2025-12-18T04:45:05.593433 +AZURE,centralus,Standard_D16ds_v4,spot,NA,0.219117,USD,Azure Retail Prices API,2025-12-18T04:45:04.015921 +AZURE,centralus,Standard_D16ds_v5,on_demand,NA,1.022,USD,Azure Retail Prices API,2025-12-18T04:45:04.014068 +AZURE,centralus,Standard_D16ds_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:45:05.594000 +AZURE,centralus,Standard_D16ds_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:45:05.594003 +AZURE,centralus,Standard_D16ds_v5,spot,NA,0.218197,USD,Azure Retail Prices API,2025-12-18T04:45:04.011697 +AZURE,centralus,Standard_D16ds_v6,on_demand,NA,1.126,USD,Azure Retail Prices API,2025-12-18T04:45:04.014517 +AZURE,centralus,Standard_D16ds_v6,reserved_1y,NA,0.617922,USD,Azure Retail Prices API,2025-12-18T04:45:05.594162 +AZURE,centralus,Standard_D16ds_v6,reserved_3y,NA,0.388699,USD,Azure Retail Prices API,2025-12-18T04:45:05.594165 +AZURE,centralus,Standard_D16ds_v6,spot,NA,0.208085,USD,Azure Retail Prices API,2025-12-18T04:45:04.012595 +AZURE,centralus,Standard_D16pds_v6,on_demand,NA,0.83,USD,Azure Retail Prices API,2025-12-18T04:45:04.014961 +AZURE,centralus,Standard_D16pds_v6,reserved_1y,NA,0.433333,USD,Azure Retail Prices API,2025-12-18T04:45:05.594312 +AZURE,centralus,Standard_D16pds_v6,reserved_3y,NA,0.279072,USD,Azure Retail Prices API,2025-12-18T04:45:05.594314 +AZURE,centralus,Standard_D16pds_v6,spot,NA,0.135622,USD,Azure Retail Prices API,2025-12-18T04:45:04.012931 +AZURE,centralus,Standard_D16ps_v6,on_demand,NA,0.634,USD,Azure Retail Prices API,2025-12-18T04:45:04.014482 +AZURE,centralus,Standard_D16ps_v6,reserved_1y,NA,0.331393,USD,Azure Retail Prices API,2025-12-18T04:45:05.594145 +AZURE,centralus,Standard_D16ps_v6,reserved_3y,NA,0.213394,USD,Azure Retail Prices API,2025-12-18T04:45:05.594148 +AZURE,centralus,Standard_D16ps_v6,spot,NA,0.103849,USD,Azure Retail Prices API,2025-12-18T04:45:04.011563 +AZURE,centralus,Standard_D16s_v3,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:45:04.015871 +AZURE,centralus,Standard_D16s_v3,reserved_1y,NA,0.555023,USD,Azure Retail Prices API,2025-12-18T04:45:05.594838 +AZURE,centralus,Standard_D16s_v3,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:45:05.594841 +AZURE,centralus,Standard_D16s_v3,spot,NA,0.143088,USD,Azure Retail Prices API,2025-12-18T04:45:04.015627 +AZURE,centralus,Standard_D16s_v4,on_demand,NA,0.868,USD,Azure Retail Prices API,2025-12-18T04:45:04.015640 +AZURE,centralus,Standard_D16s_v4,reserved_1y,NA,0.511986,USD,Azure Retail Prices API,2025-12-18T04:45:05.594688 +AZURE,centralus,Standard_D16s_v4,reserved_3y,NA,0.329795,USD,Azure Retail Prices API,2025-12-18T04:45:05.594693 +AZURE,centralus,Standard_D16s_v4,spot,NA,0.15381,USD,Azure Retail Prices API,2025-12-18T04:45:04.014216 +AZURE,centralus,Standard_D16s_v5,on_demand,NA,0.868,USD,Azure Retail Prices API,2025-12-18T04:45:04.012560 +AZURE,centralus,Standard_D16s_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:45:05.593745 +AZURE,centralus,Standard_D16s_v5,reserved_3y,NA,0.28417,USD,Azure Retail Prices API,2025-12-18T04:45:05.593748 +AZURE,centralus,Standard_D16s_v5,spot,NA,0.176725,USD,Azure Retail Prices API,2025-12-18T04:45:04.014945 +AZURE,centralus,Standard_D2ads_v6,on_demand,NA,0.129,USD,Azure Retail Prices API,2025-12-18T04:45:04.015246 +AZURE,centralus,Standard_D2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:45:05.594482 +AZURE,centralus,Standard_D2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:45:05.594484 +AZURE,centralus,Standard_D2ads_v6,spot,NA,0.021053,USD,Azure Retail Prices API,2025-12-18T04:45:04.012782 +AZURE,centralus,Standard_D2ds_v6,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:45:04.012830 +AZURE,centralus,Standard_D2ds_v6,reserved_1y,NA,0.077283,USD,Azure Retail Prices API,2025-12-18T04:45:05.593844 +AZURE,centralus,Standard_D2ds_v6,reserved_3y,NA,0.048592,USD,Azure Retail Prices API,2025-12-18T04:45:05.593847 +AZURE,centralus,Standard_D2ds_v6,spot,NA,0.026057,USD,Azure Retail Prices API,2025-12-18T04:45:04.012577 +AZURE,centralus,Standard_D32_v3,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:45:04.014803 +AZURE,centralus,Standard_D32_v3,reserved_1y,NA,1.110046,USD,Azure Retail Prices API,2025-12-18T04:45:05.594256 +AZURE,centralus,Standard_D32_v3,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:45:05.594258 +AZURE,centralus,Standard_D32_v3,spot,NA,0.286176,USD,Azure Retail Prices API,2025-12-18T04:45:04.011963 +AZURE,centralus,Standard_D32a_v4,on_demand,NA,1.736,USD,Azure Retail Prices API,2025-12-18T04:45:04.013991 +AZURE,centralus,Standard_D32a_v4,reserved_1y,NA,1.041438,USD,Azure Retail Prices API,2025-12-18T04:45:05.593931 +AZURE,centralus,Standard_D32a_v4,reserved_3y,NA,0.694254,USD,Azure Retail Prices API,2025-12-18T04:45:05.593934 +AZURE,centralus,Standard_D32a_v4,spot,NA,0.283662,USD,Azure Retail Prices API,2025-12-18T04:45:04.015864 +AZURE,centralus,Standard_D32ads_v5,on_demand,NA,1.862,USD,Azure Retail Prices API,2025-12-18T04:45:04.012718 +AZURE,centralus,Standard_D32ads_v5,reserved_1y,NA,0.972374,USD,Azure Retail Prices API,2025-12-18T04:45:05.593811 +AZURE,centralus,Standard_D32ads_v5,reserved_3y,NA,0.626256,USD,Azure Retail Prices API,2025-12-18T04:45:05.593814 +AZURE,centralus,Standard_D32ads_v5,spot,NA,0.304251,USD,Azure Retail Prices API,2025-12-18T04:45:04.012825 +AZURE,centralus,Standard_D32ads_v6,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:45:04.015119 +AZURE,centralus,Standard_D32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:45:05.594408 +AZURE,centralus,Standard_D32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:45:05.594411 +AZURE,centralus,Standard_D32ads_v6,spot,NA,0.336845,USD,Azure Retail Prices API,2025-12-18T04:45:04.016188 +AZURE,centralus,Standard_D32as_v4,on_demand,NA,1.736,USD,Azure Retail Prices API,2025-12-18T04:45:04.011857 +AZURE,centralus,Standard_D32as_v4,reserved_1y,NA,1.041438,USD,Azure Retail Prices API,2025-12-18T04:45:05.593424 +AZURE,centralus,Standard_D32as_v4,reserved_3y,NA,0.694254,USD,Azure Retail Prices API,2025-12-18T04:45:05.593427 +AZURE,centralus,Standard_D32as_v4,spot,NA,0.283662,USD,Azure Retail Prices API,2025-12-18T04:45:04.013005 +AZURE,centralus,Standard_D32as_v5,on_demand,NA,3.027,USD,Azure Retail Prices API,2025-12-18T04:45:04.014570 +AZURE,centralus,Standard_D32as_v5,reserved_1y,NA,0.811872,USD,Azure Retail Prices API,2025-12-18T04:45:05.594645 +AZURE,centralus,Standard_D32as_v5,reserved_3y,NA,0.522869,USD,Azure Retail Prices API,2025-12-18T04:45:05.594648 +AZURE,centralus,Standard_D32as_v5,spot,NA,0.254087,USD,Azure Retail Prices API,2025-12-18T04:45:04.015659 +AZURE,centralus,Standard_D32d_v4,on_demand,NA,2.043,USD,Azure Retail Prices API,2025-12-18T04:45:04.012792 +AZURE,centralus,Standard_D32d_v4,reserved_1y,NA,1.205365,USD,Azure Retail Prices API,2025-12-18T04:45:05.593833 +AZURE,centralus,Standard_D32d_v4,reserved_3y,NA,0.77637,USD,Azure Retail Prices API,2025-12-18T04:45:05.593836 +AZURE,centralus,Standard_D32d_v4,spot,NA,0.438019,USD,Azure Retail Prices API,2025-12-18T04:45:04.014476 +AZURE,centralus,Standard_D32ds_v4,on_demand,NA,2.043,USD,Azure Retail Prices API,2025-12-18T04:45:04.012166 +AZURE,centralus,Standard_D32ds_v4,reserved_1y,NA,1.205365,USD,Azure Retail Prices API,2025-12-18T04:45:05.593631 +AZURE,centralus,Standard_D32ds_v4,reserved_3y,NA,0.77637,USD,Azure Retail Prices API,2025-12-18T04:45:05.593634 +AZURE,centralus,Standard_D32ds_v4,spot,NA,0.438019,USD,Azure Retail Prices API,2025-12-18T04:45:04.012797 +AZURE,centralus,Standard_D32ds_v5,on_demand,NA,2.043,USD,Azure Retail Prices API,2025-12-18T04:45:04.015305 +AZURE,centralus,Standard_D32ds_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:45:05.594523 +AZURE,centralus,Standard_D32ds_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:45:05.594526 +AZURE,centralus,Standard_D32ds_v5,spot,NA,0.43618,USD,Azure Retail Prices API,2025-12-18T04:45:04.015293 +AZURE,centralus,Standard_D32ds_v6,on_demand,NA,2.252,USD,Azure Retail Prices API,2025-12-18T04:45:04.014084 +AZURE,centralus,Standard_D32ds_v6,reserved_1y,NA,1.235845,USD,Azure Retail Prices API,2025-12-18T04:45:05.594017 +AZURE,centralus,Standard_D32ds_v6,reserved_3y,NA,0.777397,USD,Azure Retail Prices API,2025-12-18T04:45:05.594019 +AZURE,centralus,Standard_D32ds_v6,spot,NA,0.41617,USD,Azure Retail Prices API,2025-12-18T04:45:04.012287 +AZURE,centralus,Standard_D32pds_v6,on_demand,NA,1.661,USD,Azure Retail Prices API,2025-12-18T04:45:04.014407 +AZURE,centralus,Standard_D32pds_v6,reserved_1y,NA,0.866553,USD,Azure Retail Prices API,2025-12-18T04:45:05.594112 +AZURE,centralus,Standard_D32pds_v6,reserved_3y,NA,0.558143,USD,Azure Retail Prices API,2025-12-18T04:45:05.594115 +AZURE,centralus,Standard_D32pds_v6,spot,NA,0.271407,USD,Azure Retail Prices API,2025-12-18T04:45:04.012230 +AZURE,centralus,Standard_D32ps_v6,on_demand,NA,1.267,USD,Azure Retail Prices API,2025-12-18T04:45:04.011974 +AZURE,centralus,Standard_D32ps_v6,reserved_1y,NA,0.662671,USD,Azure Retail Prices API,2025-12-18T04:45:05.593475 +AZURE,centralus,Standard_D32ps_v6,reserved_3y,NA,0.426826,USD,Azure Retail Prices API,2025-12-18T04:45:05.593478 +AZURE,centralus,Standard_D32ps_v6,spot,NA,0.207408,USD,Azure Retail Prices API,2025-12-18T04:45:04.015915 +AZURE,centralus,Standard_D32s_v3,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:45:04.015665 +AZURE,centralus,Standard_D32s_v3,reserved_1y,NA,1.110046,USD,Azure Retail Prices API,2025-12-18T04:45:05.594705 +AZURE,centralus,Standard_D32s_v3,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:45:05.594710 +AZURE,centralus,Standard_D32s_v3,spot,NA,0.286176,USD,Azure Retail Prices API,2025-12-18T04:45:04.014193 +AZURE,centralus,Standard_D32s_v4,on_demand,NA,1.736,USD,Azure Retail Prices API,2025-12-18T04:45:04.015281 +AZURE,centralus,Standard_D32s_v4,reserved_1y,NA,1.024087,USD,Azure Retail Prices API,2025-12-18T04:45:05.594517 +AZURE,centralus,Standard_D32s_v4,reserved_3y,NA,0.659551,USD,Azure Retail Prices API,2025-12-18T04:45:05.594520 +AZURE,centralus,Standard_D32s_v4,spot,NA,0.307619,USD,Azure Retail Prices API,2025-12-18T04:45:04.014538 +AZURE,centralus,Standard_D32s_v5,on_demand,NA,1.736,USD,Azure Retail Prices API,2025-12-18T04:45:04.012070 +AZURE,centralus,Standard_D32s_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:45:05.593566 +AZURE,centralus,Standard_D32s_v5,reserved_3y,NA,0.568303,USD,Azure Retail Prices API,2025-12-18T04:45:05.593571 +AZURE,centralus,Standard_D32s_v5,spot,NA,0.35345,USD,Azure Retail Prices API,2025-12-18T04:45:04.012787 +AZURE,centralus,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485165 +AZURE,centralus,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485193 +AZURE,centralus,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485198 +AZURE,centralus,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485185 +AZURE,centralus,Standard_D48a_v4,on_demand,NA,2.604,USD,Azure Retail Prices API,2025-12-18T04:45:04.012122 +AZURE,centralus,Standard_D48a_v4,reserved_1y,NA,1.5621,USD,Azure Retail Prices API,2025-12-18T04:45:05.593586 +AZURE,centralus,Standard_D48a_v4,reserved_3y,NA,1.0414,USD,Azure Retail Prices API,2025-12-18T04:45:05.593589 +AZURE,centralus,Standard_D48a_v4,spot,NA,0.425494,USD,Azure Retail Prices API,2025-12-18T04:45:04.016128 +AZURE,centralus,Standard_D48ads_v5,on_demand,NA,5.001,USD,Azure Retail Prices API,2025-12-18T04:45:04.012008 +AZURE,centralus,Standard_D48ads_v5,reserved_1y,NA,1.458447,USD,Azure Retail Prices API,2025-12-18T04:45:05.593557 +AZURE,centralus,Standard_D48ads_v5,reserved_3y,NA,0.939346,USD,Azure Retail Prices API,2025-12-18T04:45:05.593561 +AZURE,centralus,Standard_D48ads_v5,spot,NA,0.456376,USD,Azure Retail Prices API,2025-12-18T04:45:04.015347 +AZURE,centralus,Standard_D48ads_v6,on_demand,NA,3.096,USD,Azure Retail Prices API,2025-12-18T04:45:04.015037 +AZURE,centralus,Standard_D48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:45:05.594340 +AZURE,centralus,Standard_D48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:45:05.594343 +AZURE,centralus,Standard_D48ads_v6,spot,NA,0.505267,USD,Azure Retail Prices API,2025-12-18T04:45:04.014738 +AZURE,centralus,Standard_D48as_v4,on_demand,NA,2.604,USD,Azure Retail Prices API,2025-12-18T04:45:04.014468 +AZURE,centralus,Standard_D48as_v4,reserved_1y,NA,1.5621,USD,Azure Retail Prices API,2025-12-18T04:45:05.594140 +AZURE,centralus,Standard_D48as_v4,reserved_3y,NA,1.0414,USD,Azure Retail Prices API,2025-12-18T04:45:05.594143 +AZURE,centralus,Standard_D48as_v4,spot,NA,0.425494,USD,Azure Retail Prices API,2025-12-18T04:45:04.011569 +AZURE,centralus,Standard_D48as_v5,on_demand,NA,4.54,USD,Azure Retail Prices API,2025-12-18T04:45:04.011574 +AZURE,centralus,Standard_D48as_v5,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:45:05.594402 +AZURE,centralus,Standard_D48as_v5,reserved_3y,NA,0.784323,USD,Azure Retail Prices API,2025-12-18T04:45:05.594405 +AZURE,centralus,Standard_D48as_v5,spot,NA,0.381049,USD,Azure Retail Prices API,2025-12-18T04:45:04.014993 +AZURE,centralus,Standard_D48d_v4,on_demand,NA,3.065,USD,Azure Retail Prices API,2025-12-18T04:45:04.015809 +AZURE,centralus,Standard_D48d_v4,reserved_1y,NA,1.808105,USD,Azure Retail Prices API,2025-12-18T04:45:05.594798 +AZURE,centralus,Standard_D48d_v4,reserved_3y,NA,1.164536,USD,Azure Retail Prices API,2025-12-18T04:45:05.594801 +AZURE,centralus,Standard_D48d_v4,spot,NA,0.657136,USD,Azure Retail Prices API,2025-12-18T04:45:04.015212 +AZURE,centralus,Standard_D48ds_v4,on_demand,NA,3.065,USD,Azure Retail Prices API,2025-12-18T04:45:04.014113 +AZURE,centralus,Standard_D48ds_v4,reserved_1y,NA,1.808105,USD,Azure Retail Prices API,2025-12-18T04:45:05.594033 +AZURE,centralus,Standard_D48ds_v4,reserved_3y,NA,1.164536,USD,Azure Retail Prices API,2025-12-18T04:45:05.594036 +AZURE,centralus,Standard_D48ds_v4,spot,NA,0.657136,USD,Azure Retail Prices API,2025-12-18T04:45:04.014967 +AZURE,centralus,Standard_D48ds_v5,on_demand,NA,3.065,USD,Azure Retail Prices API,2025-12-18T04:45:04.015713 +AZURE,centralus,Standard_D48ds_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:45:05.594741 +AZURE,centralus,Standard_D48ds_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:45:05.594743 +AZURE,centralus,Standard_D48ds_v5,spot,NA,0.654378,USD,Azure Retail Prices API,2025-12-18T04:45:04.014941 +AZURE,centralus,Standard_D48ds_v6,on_demand,NA,3.379,USD,Azure Retail Prices API,2025-12-18T04:45:04.011714 +AZURE,centralus,Standard_D48ds_v6,reserved_1y,NA,1.853767,USD,Azure Retail Prices API,2025-12-18T04:45:05.593354 +AZURE,centralus,Standard_D48ds_v6,reserved_3y,NA,1.166058,USD,Azure Retail Prices API,2025-12-18T04:45:05.593356 +AZURE,centralus,Standard_D48ds_v6,spot,NA,0.624439,USD,Azure Retail Prices API,2025-12-18T04:45:04.011926 +AZURE,centralus,Standard_D48pds_v6,on_demand,NA,2.491,USD,Azure Retail Prices API,2025-12-18T04:45:04.014988 +AZURE,centralus,Standard_D48pds_v6,reserved_1y,NA,1.299886,USD,Azure Retail Prices API,2025-12-18T04:45:05.594334 +AZURE,centralus,Standard_D48pds_v6,reserved_3y,NA,0.837215,USD,Azure Retail Prices API,2025-12-18T04:45:05.594337 +AZURE,centralus,Standard_D48pds_v6,spot,NA,0.407029,USD,Azure Retail Prices API,2025-12-18T04:45:04.014676 +AZURE,centralus,Standard_D48ps_v6,on_demand,NA,1.901,USD,Azure Retail Prices API,2025-12-18T04:45:04.012639 +AZURE,centralus,Standard_D48ps_v6,reserved_1y,NA,0.994064,USD,Azure Retail Prices API,2025-12-18T04:45:05.593789 +AZURE,centralus,Standard_D48ps_v6,reserved_3y,NA,0.640221,USD,Azure Retail Prices API,2025-12-18T04:45:05.593792 +AZURE,centralus,Standard_D48ps_v6,spot,NA,0.311384,USD,Azure Retail Prices API,2025-12-18T04:45:04.011776 +AZURE,centralus,Standard_D48s_v4,on_demand,NA,2.604,USD,Azure Retail Prices API,2025-12-18T04:45:04.012206 +AZURE,centralus,Standard_D48s_v4,reserved_1y,NA,1.536073,USD,Azure Retail Prices API,2025-12-18T04:45:05.593661 +AZURE,centralus,Standard_D48s_v4,reserved_3y,NA,0.989346,USD,Azure Retail Prices API,2025-12-18T04:45:05.593664 +AZURE,centralus,Standard_D48s_v4,spot,NA,0.461429,USD,Azure Retail Prices API,2025-12-18T04:45:04.012770 +AZURE,centralus,Standard_D48s_v5,on_demand,NA,2.604,USD,Azure Retail Prices API,2025-12-18T04:45:04.012300 +AZURE,centralus,Standard_D48s_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:05.593701 +AZURE,centralus,Standard_D48s_v5,reserved_3y,NA,0.852473,USD,Azure Retail Prices API,2025-12-18T04:45:05.593703 +AZURE,centralus,Standard_D48s_v5,spot,NA,0.530174,USD,Azure Retail Prices API,2025-12-18T04:45:04.015311 +AZURE,centralus,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486031 +AZURE,centralus,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486041 +AZURE,centralus,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486045 +AZURE,centralus,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486036 +AZURE,centralus,Standard_D4a_v4,on_demand,NA,0.217,USD,Azure Retail Prices API,2025-12-18T04:45:04.014004 +AZURE,centralus,Standard_D4a_v4,reserved_1y,NA,0.130137,USD,Azure Retail Prices API,2025-12-18T04:45:05.593942 +AZURE,centralus,Standard_D4a_v4,reserved_3y,NA,0.086796,USD,Azure Retail Prices API,2025-12-18T04:45:05.593945 +AZURE,centralus,Standard_D4a_v4,spot,NA,0.035458,USD,Azure Retail Prices API,2025-12-18T04:45:04.011496 +AZURE,centralus,Standard_D4ads_v5,on_demand,NA,0.233,USD,Azure Retail Prices API,2025-12-18T04:45:04.011759 +AZURE,centralus,Standard_D4ads_v5,reserved_1y,NA,0.121575,USD,Azure Retail Prices API,2025-12-18T04:45:05.593382 +AZURE,centralus,Standard_D4ads_v5,reserved_3y,NA,0.078272,USD,Azure Retail Prices API,2025-12-18T04:45:05.593386 +AZURE,centralus,Standard_D4ads_v5,spot,NA,0.038026,USD,Azure Retail Prices API,2025-12-18T04:45:04.014205 +AZURE,centralus,Standard_D4ads_v6,on_demand,NA,0.258,USD,Azure Retail Prices API,2025-12-18T04:45:04.016134 +AZURE,centralus,Standard_D4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:45:05.594933 +AZURE,centralus,Standard_D4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:45:05.594936 +AZURE,centralus,Standard_D4ads_v6,spot,NA,0.042106,USD,Azure Retail Prices API,2025-12-18T04:45:04.014836 +AZURE,centralus,Standard_D4as_v5,on_demand,NA,0.194,USD,Azure Retail Prices API,2025-12-18T04:45:04.015257 +AZURE,centralus,Standard_D4as_v5,reserved_1y,NA,0.101484,USD,Azure Retail Prices API,2025-12-18T04:45:05.594492 +AZURE,centralus,Standard_D4as_v5,reserved_3y,NA,0.065373,USD,Azure Retail Prices API,2025-12-18T04:45:05.594495 +AZURE,centralus,Standard_D4as_v5,spot,NA,0.031758,USD,Azure Retail Prices API,2025-12-18T04:45:04.014576 +AZURE,centralus,Standard_D4d_v4,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:45:04.015646 +AZURE,centralus,Standard_D4d_v4,reserved_1y,NA,0.150685,USD,Azure Retail Prices API,2025-12-18T04:45:05.594697 +AZURE,centralus,Standard_D4d_v4,reserved_3y,NA,0.097032,USD,Azure Retail Prices API,2025-12-18T04:45:05.594701 +AZURE,centralus,Standard_D4d_v4,spot,NA,0.054672,USD,Azure Retail Prices API,2025-12-18T04:45:04.015161 +AZURE,centralus,Standard_D4ds_v4,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:45:04.015504 +AZURE,centralus,Standard_D4ds_v4,reserved_1y,NA,0.150685,USD,Azure Retail Prices API,2025-12-18T04:45:05.594623 +AZURE,centralus,Standard_D4ds_v4,reserved_3y,NA,0.097032,USD,Azure Retail Prices API,2025-12-18T04:45:05.594626 +AZURE,centralus,Standard_D4ds_v4,spot,NA,0.054672,USD,Azure Retail Prices API,2025-12-18T04:45:04.011863 +AZURE,centralus,Standard_D4ds_v5,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:45:04.015719 +AZURE,centralus,Standard_D4ds_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:45:05.594747 +AZURE,centralus,Standard_D4ds_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:45:05.594749 +AZURE,centralus,Standard_D4ds_v5,spot,NA,0.054442,USD,Azure Retail Prices API,2025-12-18T04:45:04.012274 +AZURE,centralus,Standard_D4ds_v6,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:45:04.014160 +AZURE,centralus,Standard_D4ds_v6,reserved_1y,NA,0.154452,USD,Azure Retail Prices API,2025-12-18T04:45:05.594062 +AZURE,centralus,Standard_D4ds_v6,reserved_3y,NA,0.097184,USD,Azure Retail Prices API,2025-12-18T04:45:05.594064 +AZURE,centralus,Standard_D4ds_v6,spot,NA,0.052114,USD,Azure Retail Prices API,2025-12-18T04:45:04.014382 +AZURE,centralus,Standard_D4pds_v6,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:04.015177 +AZURE,centralus,Standard_D4pds_v6,reserved_1y,NA,0.108333,USD,Azure Retail Prices API,2025-12-18T04:45:05.594437 +AZURE,centralus,Standard_D4pds_v6,reserved_3y,NA,0.069787,USD,Azure Retail Prices API,2025-12-18T04:45:05.594440 +AZURE,centralus,Standard_D4pds_v6,spot,NA,0.033987,USD,Azure Retail Prices API,2025-12-18T04:45:04.014062 +AZURE,centralus,Standard_D4ps_v6,on_demand,NA,0.158,USD,Azure Retail Prices API,2025-12-18T04:45:04.011590 +AZURE,centralus,Standard_D4ps_v6,reserved_1y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:45:05.593263 +AZURE,centralus,Standard_D4ps_v6,reserved_3y,NA,0.053349,USD,Azure Retail Prices API,2025-12-18T04:45:05.593266 +AZURE,centralus,Standard_D4ps_v6,spot,NA,0.025865,USD,Azure Retail Prices API,2025-12-18T04:45:04.015189 +AZURE,centralus,Standard_D4s_v3,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:04.011517 +AZURE,centralus,Standard_D4s_v3,reserved_1y,NA,0.138699,USD,Azure Retail Prices API,2025-12-18T04:45:05.593219 +AZURE,centralus,Standard_D4s_v3,reserved_3y,NA,0.090221,USD,Azure Retail Prices API,2025-12-18T04:45:05.593233 +AZURE,centralus,Standard_D4s_v3,spot,NA,0.035772,USD,Azure Retail Prices API,2025-12-18T04:45:04.011523 +AZURE,centralus,Standard_D4s_v4,on_demand,NA,0.217,USD,Azure Retail Prices API,2025-12-18T04:45:04.012852 +AZURE,centralus,Standard_D4s_v4,reserved_1y,NA,0.127968,USD,Azure Retail Prices API,2025-12-18T04:45:05.593849 +AZURE,centralus,Standard_D4s_v4,reserved_3y,NA,0.082458,USD,Azure Retail Prices API,2025-12-18T04:45:05.593852 +AZURE,centralus,Standard_D4s_v4,spot,NA,0.038452,USD,Azure Retail Prices API,2025-12-18T04:45:04.012736 +AZURE,centralus,Standard_D4s_v5,on_demand,NA,0.217,USD,Azure Retail Prices API,2025-12-18T04:45:04.014936 +AZURE,centralus,Standard_D4s_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:45:05.594306 +AZURE,centralus,Standard_D4s_v5,reserved_3y,NA,0.071043,USD,Azure Retail Prices API,2025-12-18T04:45:05.594309 +AZURE,centralus,Standard_D4s_v5,spot,NA,0.044181,USD,Azure Retail Prices API,2025-12-18T04:45:04.014798 +AZURE,centralus,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487019 +AZURE,centralus,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487033 +AZURE,centralus,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487040 +AZURE,centralus,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487025 +AZURE,centralus,Standard_D64_v3,on_demand,NA,3.52,USD,Azure Retail Prices API,2025-12-18T04:45:04.015224 +AZURE,centralus,Standard_D64_v3,reserved_1y,NA,2.220205,USD,Azure Retail Prices API,2025-12-18T04:45:05.594470 +AZURE,centralus,Standard_D64_v3,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:45:05.594473 +AZURE,centralus,Standard_D64_v3,spot,NA,0.572352,USD,Azure Retail Prices API,2025-12-18T04:45:04.011528 +AZURE,centralus,Standard_D64a_v4,on_demand,NA,3.471,USD,Azure Retail Prices API,2025-12-18T04:45:04.015782 +AZURE,centralus,Standard_D64a_v4,reserved_1y,NA,2.082763,USD,Azure Retail Prices API,2025-12-18T04:45:05.594781 +AZURE,centralus,Standard_D64a_v4,reserved_3y,NA,1.388546,USD,Azure Retail Prices API,2025-12-18T04:45:05.594784 +AZURE,centralus,Standard_D64a_v4,spot,NA,0.567161,USD,Azure Retail Prices API,2025-12-18T04:45:04.015411 +AZURE,centralus,Standard_D64ads_v5,on_demand,NA,6.668,USD,Azure Retail Prices API,2025-12-18T04:45:04.013052 +AZURE,centralus,Standard_D64ads_v5,reserved_1y,NA,1.944635,USD,Azure Retail Prices API,2025-12-18T04:45:05.594735 +AZURE,centralus,Standard_D64ads_v5,reserved_3y,NA,1.252473,USD,Azure Retail Prices API,2025-12-18T04:45:05.594738 +AZURE,centralus,Standard_D64ads_v5,spot,NA,0.608502,USD,Azure Retail Prices API,2025-12-18T04:45:04.014716 +AZURE,centralus,Standard_D64ads_v6,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:45:04.012916 +AZURE,centralus,Standard_D64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:05.593872 +AZURE,centralus,Standard_D64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:05.593875 +AZURE,centralus,Standard_D64ads_v6,spot,NA,0.67369,USD,Azure Retail Prices API,2025-12-18T04:45:04.011619 +AZURE,centralus,Standard_D64as_v4,on_demand,NA,3.471,USD,Azure Retail Prices API,2025-12-18T04:45:04.011835 +AZURE,centralus,Standard_D64as_v4,reserved_1y,NA,2.082763,USD,Azure Retail Prices API,2025-12-18T04:45:05.593407 +AZURE,centralus,Standard_D64as_v4,reserved_3y,NA,1.388546,USD,Azure Retail Prices API,2025-12-18T04:45:05.593410 +AZURE,centralus,Standard_D64as_v4,spot,NA,0.567161,USD,Azure Retail Prices API,2025-12-18T04:45:04.015132 +AZURE,centralus,Standard_D64as_v5,on_demand,NA,6.054,USD,Azure Retail Prices API,2025-12-18T04:45:04.011874 +AZURE,centralus,Standard_D64as_v5,reserved_1y,NA,1.62363,USD,Azure Retail Prices API,2025-12-18T04:45:05.594317 +AZURE,centralus,Standard_D64as_v5,reserved_3y,NA,1.045776,USD,Azure Retail Prices API,2025-12-18T04:45:05.594320 +AZURE,centralus,Standard_D64as_v5,spot,NA,0.508174,USD,Azure Retail Prices API,2025-12-18T04:45:04.012104 +AZURE,centralus,Standard_D64d_v4,on_demand,NA,4.086,USD,Azure Retail Prices API,2025-12-18T04:45:04.011840 +AZURE,centralus,Standard_D64d_v4,reserved_1y,NA,2.410731,USD,Azure Retail Prices API,2025-12-18T04:45:05.593412 +AZURE,centralus,Standard_D64d_v4,reserved_3y,NA,1.552702,USD,Azure Retail Prices API,2025-12-18T04:45:05.593415 +AZURE,centralus,Standard_D64d_v4,spot,NA,0.876038,USD,Azure Retail Prices API,2025-12-18T04:45:04.012549 +AZURE,centralus,Standard_D64ds_v4,on_demand,NA,4.086,USD,Azure Retail Prices API,2025-12-18T04:45:04.015429 +AZURE,centralus,Standard_D64ds_v4,reserved_1y,NA,2.410731,USD,Azure Retail Prices API,2025-12-18T04:45:05.594585 +AZURE,centralus,Standard_D64ds_v4,reserved_3y,NA,1.552702,USD,Azure Retail Prices API,2025-12-18T04:45:05.594588 +AZURE,centralus,Standard_D64ds_v4,spot,NA,0.876038,USD,Azure Retail Prices API,2025-12-18T04:45:04.015933 +AZURE,centralus,Standard_D64ds_v5,on_demand,NA,4.086,USD,Azure Retail Prices API,2025-12-18T04:45:04.014880 +AZURE,centralus,Standard_D64ds_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:45:05.594284 +AZURE,centralus,Standard_D64ds_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:45:05.594287 +AZURE,centralus,Standard_D64ds_v5,spot,NA,0.872361,USD,Azure Retail Prices API,2025-12-18T04:45:04.011558 +AZURE,centralus,Standard_D64ds_v6,on_demand,NA,4.505,USD,Azure Retail Prices API,2025-12-18T04:45:04.012725 +AZURE,centralus,Standard_D64ds_v6,reserved_1y,NA,2.471689,USD,Azure Retail Prices API,2025-12-18T04:45:05.593817 +AZURE,centralus,Standard_D64ds_v6,reserved_3y,NA,1.554756,USD,Azure Retail Prices API,2025-12-18T04:45:05.593819 +AZURE,centralus,Standard_D64ds_v6,spot,NA,0.832524,USD,Azure Retail Prices API,2025-12-18T04:45:04.011818 +AZURE,centralus,Standard_D64pds_v6,on_demand,NA,3.322,USD,Azure Retail Prices API,2025-12-18T04:45:04.015749 +AZURE,centralus,Standard_D64pds_v6,reserved_1y,NA,1.733219,USD,Azure Retail Prices API,2025-12-18T04:45:05.594758 +AZURE,centralus,Standard_D64pds_v6,reserved_3y,NA,1.116286,USD,Azure Retail Prices API,2025-12-18T04:45:05.594761 +AZURE,centralus,Standard_D64pds_v6,spot,NA,0.542815,USD,Azure Retail Prices API,2025-12-18T04:45:04.012315 +AZURE,centralus,Standard_D64ps_v6,on_demand,NA,2.534,USD,Azure Retail Prices API,2025-12-18T04:45:04.016091 +AZURE,centralus,Standard_D64ps_v6,reserved_1y,NA,1.325342,USD,Azure Retail Prices API,2025-12-18T04:45:05.594915 +AZURE,centralus,Standard_D64ps_v6,reserved_3y,NA,0.853615,USD,Azure Retail Prices API,2025-12-18T04:45:05.594918 +AZURE,centralus,Standard_D64ps_v6,spot,NA,0.414816,USD,Azure Retail Prices API,2025-12-18T04:45:04.016097 +AZURE,centralus,Standard_D64s_v3,on_demand,NA,3.52,USD,Azure Retail Prices API,2025-12-18T04:45:04.012866 +AZURE,centralus,Standard_D64s_v3,reserved_1y,NA,2.220205,USD,Azure Retail Prices API,2025-12-18T04:45:05.593855 +AZURE,centralus,Standard_D64s_v3,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:45:05.593857 +AZURE,centralus,Standard_D64s_v3,spot,NA,0.572352,USD,Azure Retail Prices API,2025-12-18T04:45:04.012857 +AZURE,centralus,Standard_D64s_v4,on_demand,NA,3.471,USD,Azure Retail Prices API,2025-12-18T04:45:04.015370 +AZURE,centralus,Standard_D64s_v4,reserved_1y,NA,2.048059,USD,Azure Retail Prices API,2025-12-18T04:45:05.594557 +AZURE,centralus,Standard_D64s_v4,reserved_3y,NA,1.319102,USD,Azure Retail Prices API,2025-12-18T04:45:05.594559 +AZURE,centralus,Standard_D64s_v4,spot,NA,0.615408,USD,Azure Retail Prices API,2025-12-18T04:45:04.015218 +AZURE,centralus,Standard_D64s_v5,on_demand,NA,3.471,USD,Azure Retail Prices API,2025-12-18T04:45:04.015458 +AZURE,centralus,Standard_D64s_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:45:05.594595 +AZURE,centralus,Standard_D64s_v5,reserved_3y,NA,1.136644,USD,Azure Retail Prices API,2025-12-18T04:45:05.594598 +AZURE,centralus,Standard_D64s_v5,spot,NA,0.706696,USD,Azure Retail Prices API,2025-12-18T04:45:04.015114 +AZURE,centralus,Standard_D8_v3,on_demand,NA,0.44,USD,Azure Retail Prices API,2025-12-18T04:45:04.012667 +AZURE,centralus,Standard_D8_v3,reserved_1y,NA,0.277511,USD,Azure Retail Prices API,2025-12-18T04:45:05.593795 +AZURE,centralus,Standard_D8_v3,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:45:05.593797 +AZURE,centralus,Standard_D8_v3,spot,NA,0.071544,USD,Azure Retail Prices API,2025-12-18T04:45:04.015043 +AZURE,centralus,Standard_D8a_v4,on_demand,NA,0.434,USD,Azure Retail Prices API,2025-12-18T04:45:04.012161 +AZURE,centralus,Standard_D8a_v4,reserved_1y,NA,0.260388,USD,Azure Retail Prices API,2025-12-18T04:45:05.593625 +AZURE,centralus,Standard_D8a_v4,reserved_3y,NA,0.173554,USD,Azure Retail Prices API,2025-12-18T04:45:05.593628 +AZURE,centralus,Standard_D8a_v4,spot,NA,0.070916,USD,Azure Retail Prices API,2025-12-18T04:45:04.015352 +AZURE,centralus,Standard_D8ads_v5,on_demand,NA,0.834,USD,Azure Retail Prices API,2025-12-18T04:45:04.012730 +AZURE,centralus,Standard_D8ads_v5,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:45:05.594562 +AZURE,centralus,Standard_D8ads_v5,reserved_3y,NA,0.156545,USD,Azure Retail Prices API,2025-12-18T04:45:05.594565 +AZURE,centralus,Standard_D8ads_v5,spot,NA,0.076051,USD,Azure Retail Prices API,2025-12-18T04:45:04.011795 +AZURE,centralus,Standard_D8ads_v6,on_demand,NA,0.516,USD,Azure Retail Prices API,2025-12-18T04:45:04.011911 +AZURE,centralus,Standard_D8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:45:05.593452 +AZURE,centralus,Standard_D8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:45:05.593455 +AZURE,centralus,Standard_D8ads_v6,spot,NA,0.084211,USD,Azure Retail Prices API,2025-12-18T04:45:04.014108 +AZURE,centralus,Standard_D8as_v4,on_demand,NA,0.434,USD,Azure Retail Prices API,2025-12-18T04:45:04.016169 +AZURE,centralus,Standard_D8as_v4,reserved_1y,NA,0.260388,USD,Azure Retail Prices API,2025-12-18T04:45:05.594963 +AZURE,centralus,Standard_D8as_v4,reserved_3y,NA,0.173554,USD,Azure Retail Prices API,2025-12-18T04:45:05.594966 +AZURE,centralus,Standard_D8as_v4,spot,NA,0.070916,USD,Azure Retail Prices API,2025-12-18T04:45:04.015589 +AZURE,centralus,Standard_D8as_v5,on_demand,NA,0.389,USD,Azure Retail Prices API,2025-12-18T04:45:04.012942 +AZURE,centralus,Standard_D8as_v5,reserved_1y,NA,0.202968,USD,Azure Retail Prices API,2025-12-18T04:45:05.593888 +AZURE,centralus,Standard_D8as_v5,reserved_3y,NA,0.130708,USD,Azure Retail Prices API,2025-12-18T04:45:05.593890 +AZURE,centralus,Standard_D8as_v5,spot,NA,0.063524,USD,Azure Retail Prices API,2025-12-18T04:45:04.015144 +AZURE,centralus,Standard_D8d_v4,on_demand,NA,0.511,USD,Azure Retail Prices API,2025-12-18T04:45:04.014852 +AZURE,centralus,Standard_D8d_v4,reserved_1y,NA,0.30137,USD,Azure Retail Prices API,2025-12-18T04:45:05.594267 +AZURE,centralus,Standard_D8d_v4,reserved_3y,NA,0.194102,USD,Azure Retail Prices API,2025-12-18T04:45:05.594270 +AZURE,centralus,Standard_D8d_v4,spot,NA,0.109558,USD,Azure Retail Prices API,2025-12-18T04:45:04.016176 +AZURE,centralus,Standard_D8ds_v4,on_demand,NA,0.511,USD,Azure Retail Prices API,2025-12-18T04:45:04.014533 +AZURE,centralus,Standard_D8ds_v4,reserved_1y,NA,0.30137,USD,Azure Retail Prices API,2025-12-18T04:45:05.594173 +AZURE,centralus,Standard_D8ds_v4,reserved_3y,NA,0.194102,USD,Azure Retail Prices API,2025-12-18T04:45:05.594176 +AZURE,centralus,Standard_D8ds_v4,spot,NA,0.109558,USD,Azure Retail Prices API,2025-12-18T04:45:04.014090 +AZURE,centralus,Standard_D8ds_v5,on_demand,NA,0.511,USD,Azure Retail Prices API,2025-12-18T04:45:04.012141 +AZURE,centralus,Standard_D8ds_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:45:05.593604 +AZURE,centralus,Standard_D8ds_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:45:05.593607 +AZURE,centralus,Standard_D8ds_v5,spot,NA,0.109098,USD,Azure Retail Prices API,2025-12-18T04:45:04.015481 +AZURE,centralus,Standard_D8ds_v6,on_demand,NA,0.563,USD,Azure Retail Prices API,2025-12-18T04:45:04.011584 +AZURE,centralus,Standard_D8ds_v6,reserved_1y,NA,0.308904,USD,Azure Retail Prices API,2025-12-18T04:45:05.593257 +AZURE,centralus,Standard_D8ds_v6,reserved_3y,NA,0.19433,USD,Azure Retail Prices API,2025-12-18T04:45:05.593260 +AZURE,centralus,Standard_D8ds_v6,spot,NA,0.104042,USD,Azure Retail Prices API,2025-12-18T04:45:04.015737 +AZURE,centralus,Standard_D8pds_v6,on_demand,NA,0.415,USD,Azure Retail Prices API,2025-12-18T04:45:04.014858 +AZURE,centralus,Standard_D8pds_v6,reserved_1y,NA,0.216667,USD,Azure Retail Prices API,2025-12-18T04:45:05.594273 +AZURE,centralus,Standard_D8pds_v6,reserved_3y,NA,0.139536,USD,Azure Retail Prices API,2025-12-18T04:45:05.594275 +AZURE,centralus,Standard_D8pds_v6,spot,NA,0.067811,USD,Azure Retail Prices API,2025-12-18T04:45:04.012674 +AZURE,centralus,Standard_D8ps_v6,on_demand,NA,0.317,USD,Azure Retail Prices API,2025-12-18T04:45:04.015559 +AZURE,centralus,Standard_D8ps_v6,reserved_1y,NA,0.165639,USD,Azure Retail Prices API,2025-12-18T04:45:05.594639 +AZURE,centralus,Standard_D8ps_v6,reserved_3y,NA,0.106697,USD,Azure Retail Prices API,2025-12-18T04:45:05.594642 +AZURE,centralus,Standard_D8ps_v6,spot,NA,0.051925,USD,Azure Retail Prices API,2025-12-18T04:45:04.013000 +AZURE,centralus,Standard_D8s_v3,on_demand,NA,0.44,USD,Azure Retail Prices API,2025-12-18T04:45:04.015195 +AZURE,centralus,Standard_D8s_v3,reserved_1y,NA,0.277511,USD,Azure Retail Prices API,2025-12-18T04:45:05.594453 +AZURE,centralus,Standard_D8s_v3,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:45:05.594456 +AZURE,centralus,Standard_D8s_v3,spot,NA,0.071544,USD,Azure Retail Prices API,2025-12-18T04:45:04.012038 +AZURE,centralus,Standard_D8s_v4,on_demand,NA,0.434,USD,Azure Retail Prices API,2025-12-18T04:45:04.014027 +AZURE,centralus,Standard_D8s_v4,reserved_1y,NA,0.25605,USD,Azure Retail Prices API,2025-12-18T04:45:05.593964 +AZURE,centralus,Standard_D8s_v4,reserved_3y,NA,0.164878,USD,Azure Retail Prices API,2025-12-18T04:45:05.593967 +AZURE,centralus,Standard_D8s_v4,spot,NA,0.076905,USD,Azure Retail Prices API,2025-12-18T04:45:04.012064 +AZURE,centralus,Standard_D8s_v5,on_demand,NA,0.434,USD,Azure Retail Prices API,2025-12-18T04:45:04.015689 +AZURE,centralus,Standard_D8s_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:45:05.594723 +AZURE,centralus,Standard_D8s_v5,reserved_3y,NA,0.142085,USD,Azure Retail Prices API,2025-12-18T04:45:05.594726 +AZURE,centralus,Standard_D8s_v5,spot,NA,0.088362,USD,Azure Retail Prices API,2025-12-18T04:45:04.015382 +AZURE,centralus,Standard_D96a_v4,on_demand,NA,5.207,USD,Azure Retail Prices API,2025-12-18T04:45:04.012960 +AZURE,centralus,Standard_D96a_v4,reserved_1y,NA,3.124201,USD,Azure Retail Prices API,2025-12-18T04:45:05.593893 +AZURE,centralus,Standard_D96a_v4,reserved_3y,NA,2.082801,USD,Azure Retail Prices API,2025-12-18T04:45:05.593896 +AZURE,centralus,Standard_D96a_v4,spot,NA,0.850824,USD,Azure Retail Prices API,2025-12-18T04:45:04.012742 +AZURE,centralus,Standard_D96ads_v5,on_demand,NA,5.587,USD,Azure Retail Prices API,2025-12-18T04:45:04.011980 +AZURE,centralus,Standard_D96ads_v5,reserved_1y,NA,2.917009,USD,Azure Retail Prices API,2025-12-18T04:45:05.593480 +AZURE,centralus,Standard_D96ads_v5,reserved_3y,NA,1.878729,USD,Azure Retail Prices API,2025-12-18T04:45:05.593483 +AZURE,centralus,Standard_D96ads_v5,spot,NA,0.912916,USD,Azure Retail Prices API,2025-12-18T04:45:04.012685 +AZURE,centralus,Standard_D96ads_v6,on_demand,NA,6.192,USD,Azure Retail Prices API,2025-12-18T04:45:04.015156 +AZURE,centralus,Standard_D96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:45:05.594425 +AZURE,centralus,Standard_D96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:45:05.594428 +AZURE,centralus,Standard_D96ads_v6,spot,NA,1.010534,USD,Azure Retail Prices API,2025-12-18T04:45:04.012847 +AZURE,centralus,Standard_D96as_v4,on_demand,NA,5.207,USD,Azure Retail Prices API,2025-12-18T04:45:04.011890 +AZURE,centralus,Standard_D96as_v4,reserved_1y,NA,3.124201,USD,Azure Retail Prices API,2025-12-18T04:45:05.593441 +AZURE,centralus,Standard_D96as_v4,reserved_3y,NA,2.082801,USD,Azure Retail Prices API,2025-12-18T04:45:05.593444 +AZURE,centralus,Standard_D96as_v4,spot,NA,0.850824,USD,Azure Retail Prices API,2025-12-18T04:45:04.012707 +AZURE,centralus,Standard_D96as_v5,on_demand,NA,4.665,USD,Azure Retail Prices API,2025-12-18T04:45:04.012003 +AZURE,centralus,Standard_D96as_v5,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:45:05.593497 +AZURE,centralus,Standard_D96as_v5,reserved_3y,NA,1.568645,USD,Azure Retail Prices API,2025-12-18T04:45:05.593500 +AZURE,centralus,Standard_D96as_v5,spot,NA,0.762261,USD,Azure Retail Prices API,2025-12-18T04:45:04.015960 +AZURE,centralus,Standard_D96ds_v5,on_demand,NA,6.129,USD,Azure Retail Prices API,2025-12-18T04:45:04.011997 +AZURE,centralus,Standard_D96ds_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:45:05.593492 +AZURE,centralus,Standard_D96ds_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:45:05.593494 +AZURE,centralus,Standard_D96ds_v5,spot,NA,1.308542,USD,Azure Retail Prices API,2025-12-18T04:45:04.014522 +AZURE,centralus,Standard_D96ds_v6,on_demand,NA,6.757,USD,Azure Retail Prices API,2025-12-18T04:45:04.012049 +AZURE,centralus,Standard_D96ds_v6,reserved_1y,NA,3.707534,USD,Azure Retail Prices API,2025-12-18T04:45:05.593548 +AZURE,centralus,Standard_D96ds_v6,reserved_3y,NA,2.332154,USD,Azure Retail Prices API,2025-12-18T04:45:05.593552 +AZURE,centralus,Standard_D96ds_v6,spot,NA,1.248694,USD,Azure Retail Prices API,2025-12-18T04:45:04.014125 +AZURE,centralus,Standard_D96pds_v6,on_demand,NA,4.982,USD,Azure Retail Prices API,2025-12-18T04:45:04.014973 +AZURE,centralus,Standard_D96pds_v6,reserved_1y,NA,2.599772,USD,Azure Retail Prices API,2025-12-18T04:45:05.594323 +AZURE,centralus,Standard_D96pds_v6,reserved_3y,NA,1.674429,USD,Azure Retail Prices API,2025-12-18T04:45:05.594326 +AZURE,centralus,Standard_D96pds_v6,spot,NA,0.814059,USD,Azure Retail Prices API,2025-12-18T04:45:04.012985 +AZURE,centralus,Standard_D96ps_v6,on_demand,NA,3.802,USD,Azure Retail Prices API,2025-12-18T04:45:04.011540 +AZURE,centralus,Standard_D96ps_v6,reserved_1y,NA,1.988014,USD,Azure Retail Prices API,2025-12-18T04:45:05.593243 +AZURE,centralus,Standard_D96ps_v6,reserved_3y,NA,1.280441,USD,Azure Retail Prices API,2025-12-18T04:45:05.593247 +AZURE,centralus,Standard_D96ps_v6,spot,NA,0.622768,USD,Azure Retail Prices API,2025-12-18T04:45:04.014149 +AZURE,centralus,Standard_D96s_v5,on_demand,NA,5.207,USD,Azure Retail Prices API,2025-12-18T04:45:04.011920 +AZURE,centralus,Standard_D96s_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:05.593458 +AZURE,centralus,Standard_D96s_v5,reserved_3y,NA,1.704947,USD,Azure Retail Prices API,2025-12-18T04:45:05.593461 +AZURE,centralus,Standard_D96s_v5,spot,NA,1.060145,USD,Azure Retail Prices API,2025-12-18T04:45:04.012862 +AZURE,centralus,Standard_DC16ads_v5,on_demand,NA,0.931,USD,Azure Retail Prices API,2025-12-18T04:45:04.015777 +AZURE,centralus,Standard_DC16ads_v5,reserved_1y,NA,0.659247,USD,Azure Retail Prices API,2025-12-18T04:45:05.594775 +AZURE,centralus,Standard_DC16ads_v5,reserved_3y,NA,0.494406,USD,Azure Retail Prices API,2025-12-18T04:45:05.594778 +AZURE,centralus,Standard_DC16ads_v5,spot,NA,0.155384,USD,Azure Retail Prices API,2025-12-18T04:45:04.013010 +AZURE,centralus,Standard_DC16ads_v6,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:45:04.014393 +AZURE,centralus,Standard_DC16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:45:05.594096 +AZURE,centralus,Standard_DC16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:45:05.594098 +AZURE,centralus,Standard_DC16ads_v6,spot,NA,0.168526,USD,Azure Retail Prices API,2025-12-18T04:45:04.011668 +AZURE,centralus,Standard_DC16as_v5,on_demand,NA,0.777,USD,Azure Retail Prices API,2025-12-18T04:45:04.015858 +AZURE,centralus,Standard_DC16as_v5,reserved_1y,NA,0.550457,USD,Azure Retail Prices API,2025-12-18T04:45:05.594827 +AZURE,centralus,Standard_DC16as_v5,reserved_3y,NA,0.412785,USD,Azure Retail Prices API,2025-12-18T04:45:05.594831 +AZURE,centralus,Standard_DC16as_v5,spot,NA,0.129759,USD,Azure Retail Prices API,2025-12-18T04:45:04.012650 +AZURE,centralus,Standard_DC2ads_v6,on_demand,NA,0.129,USD,Azure Retail Prices API,2025-12-18T04:45:04.013046 +AZURE,centralus,Standard_DC2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:45:05.593921 +AZURE,centralus,Standard_DC2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:45:05.593923 +AZURE,centralus,Standard_DC2ads_v6,spot,NA,0.021066,USD,Azure Retail Prices API,2025-12-18T04:45:04.012995 +AZURE,centralus,Standard_DC32ads_v5,on_demand,NA,1.862,USD,Azure Retail Prices API,2025-12-18T04:45:04.014009 +AZURE,centralus,Standard_DC32ads_v5,reserved_1y,NA,1.318379,USD,Azure Retail Prices API,2025-12-18T04:45:05.593948 +AZURE,centralus,Standard_DC32ads_v5,reserved_3y,NA,0.988813,USD,Azure Retail Prices API,2025-12-18T04:45:05.593950 +AZURE,centralus,Standard_DC32ads_v5,spot,NA,0.310768,USD,Azure Retail Prices API,2025-12-18T04:45:04.014689 +AZURE,centralus,Standard_DC32ads_v6,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:45:04.015364 +AZURE,centralus,Standard_DC32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:45:05.594551 +AZURE,centralus,Standard_DC32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:45:05.594554 +AZURE,centralus,Standard_DC32ads_v6,spot,NA,0.337051,USD,Azure Retail Prices API,2025-12-18T04:45:04.014911 +AZURE,centralus,Standard_DC32as_v5,on_demand,NA,1.555,USD,Azure Retail Prices API,2025-12-18T04:45:04.015695 +AZURE,centralus,Standard_DC32as_v5,reserved_1y,NA,1.100799,USD,Azure Retail Prices API,2025-12-18T04:45:05.594729 +AZURE,centralus,Standard_DC32as_v5,reserved_3y,NA,0.825609,USD,Azure Retail Prices API,2025-12-18T04:45:05.594732 +AZURE,centralus,Standard_DC32as_v5,spot,NA,0.259374,USD,Azure Retail Prices API,2025-12-18T04:45:04.012241 +AZURE,centralus,Standard_DC48ads_v5,on_demand,NA,2.793,USD,Azure Retail Prices API,2025-12-18T04:45:04.012294 +AZURE,centralus,Standard_DC48ads_v5,reserved_1y,NA,1.977626,USD,Azure Retail Prices API,2025-12-18T04:45:05.593695 +AZURE,centralus,Standard_DC48ads_v5,reserved_3y,NA,1.483181,USD,Azure Retail Prices API,2025-12-18T04:45:05.593698 +AZURE,centralus,Standard_DC48ads_v5,spot,NA,0.466152,USD,Azure Retail Prices API,2025-12-18T04:45:04.014661 +AZURE,centralus,Standard_DC48ads_v6,on_demand,NA,3.096,USD,Azure Retail Prices API,2025-12-18T04:45:04.015803 +AZURE,centralus,Standard_DC48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:45:05.594792 +AZURE,centralus,Standard_DC48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:45:05.594795 +AZURE,centralus,Standard_DC48ads_v6,spot,NA,0.505577,USD,Azure Retail Prices API,2025-12-18T04:45:04.011957 +AZURE,centralus,Standard_DC48as_v5,on_demand,NA,2.332,USD,Azure Retail Prices API,2025-12-18T04:45:04.015263 +AZURE,centralus,Standard_DC48as_v5,reserved_1y,NA,1.651256,USD,Azure Retail Prices API,2025-12-18T04:45:05.594504 +AZURE,centralus,Standard_DC48as_v5,reserved_3y,NA,1.238394,USD,Azure Retail Prices API,2025-12-18T04:45:05.594508 +AZURE,centralus,Standard_DC48as_v5,spot,NA,0.389211,USD,Azure Retail Prices API,2025-12-18T04:45:04.012803 +AZURE,centralus,Standard_DC4ads_v5,on_demand,NA,0.233,USD,Azure Retail Prices API,2025-12-18T04:45:04.012258 +AZURE,centralus,Standard_DC4ads_v5,reserved_1y,NA,0.16484,USD,Azure Retail Prices API,2025-12-18T04:45:05.593690 +AZURE,centralus,Standard_DC4ads_v5,reserved_3y,NA,0.123592,USD,Azure Retail Prices API,2025-12-18T04:45:05.593693 +AZURE,centralus,Standard_DC4ads_v5,spot,NA,0.038841,USD,Azure Retail Prices API,2025-12-18T04:45:04.015010 +AZURE,centralus,Standard_DC4ads_v6,on_demand,NA,0.258,USD,Azure Retail Prices API,2025-12-18T04:45:04.015102 +AZURE,centralus,Standard_DC4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:45:05.594384 +AZURE,centralus,Standard_DC4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:45:05.594388 +AZURE,centralus,Standard_DC4ads_v6,spot,NA,0.042131,USD,Azure Retail Prices API,2025-12-18T04:45:04.014666 +AZURE,centralus,Standard_DC4as_v5,on_demand,NA,0.194,USD,Azure Retail Prices API,2025-12-18T04:45:04.016140 +AZURE,centralus,Standard_DC4as_v5,reserved_1y,NA,0.137557,USD,Azure Retail Prices API,2025-12-18T04:45:05.594941 +AZURE,centralus,Standard_DC4as_v5,reserved_3y,NA,0.103196,USD,Azure Retail Prices API,2025-12-18T04:45:05.594944 +AZURE,centralus,Standard_DC4as_v5,spot,NA,0.032437,USD,Azure Retail Prices API,2025-12-18T04:45:04.012836 +AZURE,centralus,Standard_DC64ads_v5,on_demand,NA,3.724,USD,Azure Retail Prices API,2025-12-18T04:45:04.012566 +AZURE,centralus,Standard_DC64ads_v5,reserved_1y,NA,2.636758,USD,Azure Retail Prices API,2025-12-18T04:45:05.593751 +AZURE,centralus,Standard_DC64ads_v5,reserved_3y,NA,1.977588,USD,Azure Retail Prices API,2025-12-18T04:45:05.593754 +AZURE,centralus,Standard_DC64ads_v5,spot,NA,0.621536,USD,Azure Retail Prices API,2025-12-18T04:45:04.011579 +AZURE,centralus,Standard_DC64ads_v6,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:45:04.012921 +AZURE,centralus,Standard_DC64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:05.593877 +AZURE,centralus,Standard_DC64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:05.593880 +AZURE,centralus,Standard_DC64ads_v6,spot,NA,0.674102,USD,Azure Retail Prices API,2025-12-18T04:45:04.015434 +AZURE,centralus,Standard_DC64as_v5,on_demand,NA,3.11,USD,Azure Retail Prices API,2025-12-18T04:45:04.015108 +AZURE,centralus,Standard_DC64as_v5,reserved_1y,NA,2.201598,USD,Azure Retail Prices API,2025-12-18T04:45:05.594397 +AZURE,centralus,Standard_DC64as_v5,reserved_3y,NA,1.651218,USD,Azure Retail Prices API,2025-12-18T04:45:05.594400 +AZURE,centralus,Standard_DC64as_v5,spot,NA,0.518748,USD,Azure Retail Prices API,2025-12-18T04:45:04.011812 +AZURE,centralus,Standard_DC8ads_v5,on_demand,NA,0.466,USD,Azure Retail Prices API,2025-12-18T04:45:04.014425 +AZURE,centralus,Standard_DC8ads_v5,reserved_1y,NA,0.329566,USD,Azure Retail Prices API,2025-12-18T04:45:05.594129 +AZURE,centralus,Standard_DC8ads_v5,reserved_3y,NA,0.247184,USD,Azure Retail Prices API,2025-12-18T04:45:05.594132 +AZURE,centralus,Standard_DC8ads_v5,spot,NA,0.077682,USD,Azure Retail Prices API,2025-12-18T04:45:04.011725 +AZURE,centralus,Standard_DC8ads_v6,on_demand,NA,0.516,USD,Azure Retail Prices API,2025-12-18T04:45:04.015150 +AZURE,centralus,Standard_DC8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:45:05.594419 +AZURE,centralus,Standard_DC8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:45:05.594422 +AZURE,centralus,Standard_DC8ads_v6,spot,NA,0.084263,USD,Azure Retail Prices API,2025-12-18T04:45:04.014874 +AZURE,centralus,Standard_DC8as_v5,on_demand,NA,0.389,USD,Azure Retail Prices API,2025-12-18T04:45:04.015890 +AZURE,centralus,Standard_DC8as_v5,reserved_1y,NA,0.275228,USD,Azure Retail Prices API,2025-12-18T04:45:05.594844 +AZURE,centralus,Standard_DC8as_v5,reserved_3y,NA,0.206393,USD,Azure Retail Prices API,2025-12-18T04:45:05.594847 +AZURE,centralus,Standard_DC8as_v5,spot,NA,0.064846,USD,Azure Retail Prices API,2025-12-18T04:45:04.011597 +AZURE,centralus,Standard_DC96ads_v5,on_demand,NA,5.587,USD,Azure Retail Prices API,2025-12-18T04:45:04.012612 +AZURE,centralus,Standard_DC96ads_v5,reserved_1y,NA,3.955251,USD,Azure Retail Prices API,2025-12-18T04:45:05.593773 +AZURE,centralus,Standard_DC96ads_v5,reserved_3y,NA,2.9664,USD,Azure Retail Prices API,2025-12-18T04:45:05.593776 +AZURE,centralus,Standard_DC96ads_v5,spot,NA,0.93247,USD,Azure Retail Prices API,2025-12-18T04:45:04.014705 +AZURE,centralus,Standard_DC96ads_v6,on_demand,NA,6.192,USD,Azure Retail Prices API,2025-12-18T04:45:04.011692 +AZURE,centralus,Standard_DC96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:45:05.593348 +AZURE,centralus,Standard_DC96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:45:05.593351 +AZURE,centralus,Standard_DC96ads_v6,spot,NA,1.011154,USD,Azure Retail Prices API,2025-12-18T04:45:04.013028 +AZURE,centralus,Standard_DC96as_v5,on_demand,NA,4.665,USD,Azure Retail Prices API,2025-12-18T04:45:04.015827 +AZURE,centralus,Standard_DC96as_v5,reserved_1y,NA,3.302397,USD,Azure Retail Prices API,2025-12-18T04:45:05.594804 +AZURE,centralus,Standard_DC96as_v5,reserved_3y,NA,2.476788,USD,Azure Retail Prices API,2025-12-18T04:45:05.594807 +AZURE,centralus,Standard_DC96as_v5,spot,NA,0.778122,USD,Azure Retail Prices API,2025-12-18T04:45:04.015452 +AZURE,centralus,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495155 +AZURE,centralus,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495164 +AZURE,centralus,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495168 +AZURE,centralus,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495159 +AZURE,centralus,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495994 +AZURE,centralus,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496003 +AZURE,centralus,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496007 +AZURE,centralus,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495998 +AZURE,centralus,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496798 +AZURE,centralus,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496807 +AZURE,centralus,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496811 +AZURE,centralus,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496802 +AZURE,centralus,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497683 +AZURE,centralus,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497692 +AZURE,centralus,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497696 +AZURE,centralus,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497687 +AZURE,centralus,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491530 +AZURE,centralus,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491542 +AZURE,centralus,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491546 +AZURE,centralus,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491537 +AZURE,centralus,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492276 +AZURE,centralus,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492284 +AZURE,centralus,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492289 +AZURE,centralus,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492280 +AZURE,centralus,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492970 +AZURE,centralus,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492978 +AZURE,centralus,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492982 +AZURE,centralus,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492974 +AZURE,centralus,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493715 +AZURE,centralus,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493723 +AZURE,centralus,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493727 +AZURE,centralus,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493719 +AZURE,centralus,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494429 +AZURE,centralus,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494437 +AZURE,centralus,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494441 +AZURE,centralus,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494433 +AZURE,centralus,Standard_E128ds_v6,on_demand,NA,11.826,USD,Azure Retail Prices API,2025-12-18T04:45:04.012310 +AZURE,centralus,Standard_E128ds_v6,reserved_1y,NA,6.48847,USD,Azure Retail Prices API,2025-12-18T04:45:05.593706 +AZURE,centralus,Standard_E128ds_v6,reserved_3y,NA,4.081469,USD,Azure Retail Prices API,2025-12-18T04:45:05.593709 +AZURE,centralus,Standard_E128ds_v6,spot,NA,1.933551,USD,Azure Retail Prices API,2025-12-18T04:45:04.012949 +AZURE,centralus,Standard_E16_v3,on_demand,NA,1.167,USD,Azure Retail Prices API,2025-12-18T04:45:04.014222 +AZURE,centralus,Standard_E16_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:45:05.594073 +AZURE,centralus,Standard_E16_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:45:05.594076 +AZURE,centralus,Standard_E16_v3,spot,NA,0.189754,USD,Azure Retail Prices API,2025-12-18T04:45:04.011614 +AZURE,centralus,Standard_E16a_v4,on_demand,NA,1.139,USD,Azure Retail Prices API,2025-12-18T04:45:04.014761 +AZURE,centralus,Standard_E16a_v4,reserved_1y,NA,0.683447,USD,Azure Retail Prices API,2025-12-18T04:45:05.594227 +AZURE,centralus,Standard_E16a_v4,reserved_3y,NA,0.455632,USD,Azure Retail Prices API,2025-12-18T04:45:05.594229 +AZURE,centralus,Standard_E16a_v4,spot,NA,0.186113,USD,Azure Retail Prices API,2025-12-18T04:45:04.016009 +AZURE,centralus,Standard_E16ads_v5,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:45:04.014700 +AZURE,centralus,Standard_E16ads_v5,reserved_1y,NA,0.618265,USD,Azure Retail Prices API,2025-12-18T04:45:05.594250 +AZURE,centralus,Standard_E16ads_v5,reserved_3y,NA,0.39825,USD,Azure Retail Prices API,2025-12-18T04:45:05.594253 +AZURE,centralus,Standard_E16ads_v5,spot,NA,0.193584,USD,Azure Retail Prices API,2025-12-18T04:45:04.014199 +AZURE,centralus,Standard_E16ads_v6,on_demand,NA,1.312,USD,Azure Retail Prices API,2025-12-18T04:45:04.015499 +AZURE,centralus,Standard_E16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:45:05.594617 +AZURE,centralus,Standard_E16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:45:05.594620 +AZURE,centralus,Standard_E16ads_v6,spot,NA,0.214643,USD,Azure Retail Prices API,2025-12-18T04:45:04.012092 +AZURE,centralus,Standard_E16as_v4,on_demand,NA,1.139,USD,Azure Retail Prices API,2025-12-18T04:45:04.015546 +AZURE,centralus,Standard_E16as_v4,reserved_1y,NA,0.683447,USD,Azure Retail Prices API,2025-12-18T04:45:05.594634 +AZURE,centralus,Standard_E16as_v4,reserved_3y,NA,0.455632,USD,Azure Retail Prices API,2025-12-18T04:45:05.594637 +AZURE,centralus,Standard_E16as_v4,spot,NA,0.186113,USD,Azure Retail Prices API,2025-12-18T04:45:04.014930 +AZURE,centralus,Standard_E16as_v5,on_demand,NA,1.758,USD,Azure Retail Prices API,2025-12-18T04:45:04.012554 +AZURE,centralus,Standard_E16as_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:45:05.594833 +AZURE,centralus,Standard_E16as_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:45:05.594836 +AZURE,centralus,Standard_E16as_v5,spot,NA,0.166995,USD,Azure Retail Prices API,2025-12-18T04:45:04.011764 +AZURE,centralus,Standard_E16d_v4,on_demand,NA,1.302,USD,Azure Retail Prices API,2025-12-18T04:45:04.012601 +AZURE,centralus,Standard_E16d_v4,reserved_1y,NA,0.768037,USD,Azure Retail Prices API,2025-12-18T04:45:05.593767 +AZURE,centralus,Standard_E16d_v4,reserved_3y,NA,0.494673,USD,Azure Retail Prices API,2025-12-18T04:45:05.593770 +AZURE,centralus,Standard_E16d_v4,spot,NA,0.264957,USD,Azure Retail Prices API,2025-12-18T04:45:04.014711 +AZURE,centralus,Standard_E16ds_v4,on_demand,NA,1.302,USD,Azure Retail Prices API,2025-12-18T04:45:04.012320 +AZURE,centralus,Standard_E16ds_v4,reserved_1y,NA,0.768037,USD,Azure Retail Prices API,2025-12-18T04:45:05.593711 +AZURE,centralus,Standard_E16ds_v4,reserved_3y,NA,0.494673,USD,Azure Retail Prices API,2025-12-18T04:45:05.593714 +AZURE,centralus,Standard_E16ds_v4,spot,NA,0.264957,USD,Azure Retail Prices API,2025-12-18T04:45:04.011657 +AZURE,centralus,Standard_E16ds_v5,on_demand,NA,1.302,USD,Azure Retail Prices API,2025-12-18T04:45:04.015440 +AZURE,centralus,Standard_E16ds_v5,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:45:05.594590 +AZURE,centralus,Standard_E16ds_v5,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:45:05.594593 +AZURE,centralus,Standard_E16ds_v5,spot,NA,0.270425,USD,Azure Retail Prices API,2025-12-18T04:45:04.015004 +AZURE,centralus,Standard_E16ds_v6,on_demand,NA,1.478,USD,Azure Retail Prices API,2025-12-18T04:45:04.015755 +AZURE,centralus,Standard_E16ds_v6,reserved_1y,NA,0.811073,USD,Azure Retail Prices API,2025-12-18T04:45:05.594764 +AZURE,centralus,Standard_E16ds_v6,reserved_3y,NA,0.510198,USD,Azure Retail Prices API,2025-12-18T04:45:05.594766 +AZURE,centralus,Standard_E16ds_v6,spot,NA,0.241653,USD,Azure Retail Prices API,2025-12-18T04:45:04.014588 +AZURE,centralus,Standard_E16pds_v6,on_demand,NA,1.058,USD,Azure Retail Prices API,2025-12-18T04:45:04.014748 +AZURE,centralus,Standard_E16pds_v6,reserved_1y,NA,0.552283,USD,Azure Retail Prices API,2025-12-18T04:45:05.594221 +AZURE,centralus,Standard_E16pds_v6,reserved_3y,NA,0.35567,USD,Azure Retail Prices API,2025-12-18T04:45:05.594224 +AZURE,centralus,Standard_E16pds_v6,spot,NA,0.195307,USD,Azure Retail Prices API,2025-12-18T04:45:04.011747 +AZURE,centralus,Standard_E16ps_v6,on_demand,NA,0.834,USD,Azure Retail Prices API,2025-12-18T04:45:04.014130 +AZURE,centralus,Standard_E16ps_v6,reserved_1y,NA,0.43516,USD,Azure Retail Prices API,2025-12-18T04:45:05.594039 +AZURE,centralus,Standard_E16ps_v6,reserved_3y,NA,0.280289,USD,Azure Retail Prices API,2025-12-18T04:45:05.594042 +AZURE,centralus,Standard_E16ps_v6,spot,NA,0.153956,USD,Azure Retail Prices API,2025-12-18T04:45:04.016202 +AZURE,centralus,Standard_E16s_v3,on_demand,NA,1.167,USD,Azure Retail Prices API,2025-12-18T04:45:04.016146 +AZURE,centralus,Standard_E16s_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:45:05.594947 +AZURE,centralus,Standard_E16s_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:45:05.594950 +AZURE,centralus,Standard_E16s_v3,spot,NA,0.189754,USD,Azure Retail Prices API,2025-12-18T04:45:04.014640 +AZURE,centralus,Standard_E16s_v4,on_demand,NA,1.139,USD,Azure Retail Prices API,2025-12-18T04:45:04.013022 +AZURE,centralus,Standard_E16s_v4,reserved_1y,NA,0.672032,USD,Azure Retail Prices API,2025-12-18T04:45:05.593910 +AZURE,centralus,Standard_E16s_v4,reserved_3y,NA,0.432839,USD,Azure Retail Prices API,2025-12-18T04:45:05.593913 +AZURE,centralus,Standard_E16s_v4,spot,NA,0.24386,USD,Azure Retail Prices API,2025-12-18T04:45:04.014499 +AZURE,centralus,Standard_E16s_v5,on_demand,NA,1.139,USD,Azure Retail Prices API,2025-12-18T04:45:04.012224 +AZURE,centralus,Standard_E16s_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:45:05.593667 +AZURE,centralus,Standard_E16s_v5,reserved_3y,NA,0.372945,USD,Azure Retail Prices API,2025-12-18T04:45:05.593670 +AZURE,centralus,Standard_E16s_v5,spot,NA,0.243176,USD,Azure Retail Prices API,2025-12-18T04:45:04.015954 +AZURE,centralus,Standard_E20a_v4,on_demand,NA,1.424,USD,Azure Retail Prices API,2025-12-18T04:45:04.011895 +AZURE,centralus,Standard_E20a_v4,reserved_1y,NA,0.854224,USD,Azure Retail Prices API,2025-12-18T04:45:05.593447 +AZURE,centralus,Standard_E20a_v4,reserved_3y,NA,0.569521,USD,Azure Retail Prices API,2025-12-18T04:45:05.593449 +AZURE,centralus,Standard_E20a_v4,spot,NA,0.232682,USD,Azure Retail Prices API,2025-12-18T04:45:04.015405 +AZURE,centralus,Standard_E20ads_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:04.012151 +AZURE,centralus,Standard_E20ads_v5,reserved_1y,NA,0.772945,USD,Azure Retail Prices API,2025-12-18T04:45:05.593619 +AZURE,centralus,Standard_E20ads_v5,reserved_3y,NA,0.497793,USD,Azure Retail Prices API,2025-12-18T04:45:05.593622 +AZURE,centralus,Standard_E20ads_v5,spot,NA,0.24198,USD,Azure Retail Prices API,2025-12-18T04:45:04.014505 +AZURE,centralus,Standard_E20ads_v6,on_demand,NA,1.64,USD,Azure Retail Prices API,2025-12-18T04:45:04.014143 +AZURE,centralus,Standard_E20ads_v6,reserved_1y,NA,0.856735,USD,Azure Retail Prices API,2025-12-18T04:45:05.594050 +AZURE,centralus,Standard_E20ads_v6,reserved_3y,NA,0.55175,USD,Azure Retail Prices API,2025-12-18T04:45:05.594053 +AZURE,centralus,Standard_E20ads_v6,spot,NA,0.268304,USD,Azure Retail Prices API,2025-12-18T04:45:04.012116 +AZURE,centralus,Standard_E20as_v4,on_demand,NA,1.424,USD,Azure Retail Prices API,2025-12-18T04:45:04.015048 +AZURE,centralus,Standard_E20as_v4,reserved_1y,NA,0.854224,USD,Azure Retail Prices API,2025-12-18T04:45:05.594345 +AZURE,centralus,Standard_E20as_v4,reserved_3y,NA,0.569521,USD,Azure Retail Prices API,2025-12-18T04:45:05.594348 +AZURE,centralus,Standard_E20as_v4,spot,NA,0.232682,USD,Azure Retail Prices API,2025-12-18T04:45:04.012543 +AZURE,centralus,Standard_E20as_v5,on_demand,NA,2.197,USD,Azure Retail Prices API,2025-12-18T04:45:04.011969 +AZURE,centralus,Standard_E20as_v5,reserved_1y,NA,0.666667,USD,Azure Retail Prices API,2025-12-18T04:45:05.594205 +AZURE,centralus,Standard_E20as_v5,reserved_3y,NA,0.429414,USD,Azure Retail Prices API,2025-12-18T04:45:05.594208 +AZURE,centralus,Standard_E20as_v5,spot,NA,0.208662,USD,Azure Retail Prices API,2025-12-18T04:45:04.012617 +AZURE,centralus,Standard_E20d_v4,on_demand,NA,1.627,USD,Azure Retail Prices API,2025-12-18T04:45:04.012186 +AZURE,centralus,Standard_E20d_v4,reserved_1y,NA,0.960046,USD,Azure Retail Prices API,2025-12-18T04:45:05.593643 +AZURE,centralus,Standard_E20d_v4,reserved_3y,NA,0.618341,USD,Azure Retail Prices API,2025-12-18T04:45:05.593646 +AZURE,centralus,Standard_E20d_v4,spot,NA,0.331094,USD,Azure Retail Prices API,2025-12-18T04:45:04.012661 +AZURE,centralus,Standard_E20ds_v4,on_demand,NA,1.627,USD,Azure Retail Prices API,2025-12-18T04:45:04.015206 +AZURE,centralus,Standard_E20ds_v4,reserved_1y,NA,0.960046,USD,Azure Retail Prices API,2025-12-18T04:45:05.594464 +AZURE,centralus,Standard_E20ds_v4,reserved_3y,NA,0.618341,USD,Azure Retail Prices API,2025-12-18T04:45:05.594467 +AZURE,centralus,Standard_E20ds_v4,spot,NA,0.331094,USD,Azure Retail Prices API,2025-12-18T04:45:04.014732 +AZURE,centralus,Standard_E20ds_v5,on_demand,NA,1.627,USD,Azure Retail Prices API,2025-12-18T04:45:04.016114 +AZURE,centralus,Standard_E20ds_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:45:05.594927 +AZURE,centralus,Standard_E20ds_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:45:05.594929 +AZURE,centralus,Standard_E20ds_v5,spot,NA,0.338091,USD,Azure Retail Prices API,2025-12-18T04:45:04.011546 +AZURE,centralus,Standard_E20ds_v6,on_demand,NA,1.848,USD,Azure Retail Prices API,2025-12-18T04:45:04.014885 +AZURE,centralus,Standard_E20ds_v6,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:45:05.594289 +AZURE,centralus,Standard_E20ds_v6,reserved_3y,NA,0.637709,USD,Azure Retail Prices API,2025-12-18T04:45:05.594292 +AZURE,centralus,Standard_E20ds_v6,spot,NA,0.302148,USD,Azure Retail Prices API,2025-12-18T04:45:04.011662 +AZURE,centralus,Standard_E20s_v4,on_demand,NA,1.424,USD,Azure Retail Prices API,2025-12-18T04:45:04.012235 +AZURE,centralus,Standard_E20s_v4,reserved_1y,NA,0.840068,USD,Azure Retail Prices API,2025-12-18T04:45:05.593672 +AZURE,centralus,Standard_E20s_v4,reserved_3y,NA,0.541058,USD,Azure Retail Prices API,2025-12-18T04:45:05.593675 +AZURE,centralus,Standard_E20s_v4,spot,NA,0.304878,USD,Azure Retail Prices API,2025-12-18T04:45:04.012937 +AZURE,centralus,Standard_E20s_v5,on_demand,NA,1.424,USD,Azure Retail Prices API,2025-12-18T04:45:04.016073 +AZURE,centralus,Standard_E20s_v5,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:45:05.594903 +AZURE,centralus,Standard_E20s_v5,reserved_3y,NA,0.46621,USD,Azure Retail Prices API,2025-12-18T04:45:05.594907 +AZURE,centralus,Standard_E20s_v5,spot,NA,0.304024,USD,Azure Retail Prices API,2025-12-18T04:45:04.014359 +AZURE,centralus,Standard_E2_v3,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:45:04.012043 +AZURE,centralus,Standard_E2_v3,reserved_1y,NA,0.093836,USD,Azure Retail Prices API,2025-12-18T04:45:05.593540 +AZURE,centralus,Standard_E2_v3,reserved_3y,NA,0.05997,USD,Azure Retail Prices API,2025-12-18T04:45:05.593544 +AZURE,centralus,Standard_E2_v3,spot,NA,0.02374,USD,Azure Retail Prices API,2025-12-18T04:45:04.012645 +AZURE,centralus,Standard_E2ads_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:45:04.016079 +AZURE,centralus,Standard_E2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:45:05.594910 +AZURE,centralus,Standard_E2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:45:05.594912 +AZURE,centralus,Standard_E2ads_v6,spot,NA,0.026781,USD,Azure Retail Prices API,2025-12-18T04:45:04.015677 +AZURE,centralus,Standard_E2ds_v5,on_demand,NA,0.163,USD,Azure Retail Prices API,2025-12-18T04:45:04.015946 +AZURE,centralus,Standard_E2ds_v5,reserved_1y,NA,0.084932,USD,Azure Retail Prices API,2025-12-18T04:45:05.594861 +AZURE,centralus,Standard_E2ds_v5,reserved_3y,NA,0.054718,USD,Azure Retail Prices API,2025-12-18T04:45:05.594864 +AZURE,centralus,Standard_E2ds_v5,spot,NA,0.033806,USD,Azure Retail Prices API,2025-12-18T04:45:04.014819 +AZURE,centralus,Standard_E2ds_v6,on_demand,NA,0.185,USD,Azure Retail Prices API,2025-12-18T04:45:04.011675 +AZURE,centralus,Standard_E2ds_v6,reserved_1y,NA,0.10137,USD,Azure Retail Prices API,2025-12-18T04:45:05.593323 +AZURE,centralus,Standard_E2ds_v6,reserved_3y,NA,0.063775,USD,Azure Retail Prices API,2025-12-18T04:45:05.593346 +AZURE,centralus,Standard_E2ds_v6,spot,NA,0.030303,USD,Azure Retail Prices API,2025-12-18T04:45:04.015015 +AZURE,centralus,Standard_E2pds_v6,on_demand,NA,0.132,USD,Azure Retail Prices API,2025-12-18T04:45:04.012014 +AZURE,centralus,Standard_E2pds_v6,reserved_1y,NA,0.069064,USD,Azure Retail Prices API,2025-12-18T04:45:05.593503 +AZURE,centralus,Standard_E2pds_v6,reserved_3y,NA,0.044444,USD,Azure Retail Prices API,2025-12-18T04:45:05.593505 +AZURE,centralus,Standard_E2pds_v6,spot,NA,0.024367,USD,Azure Retail Prices API,2025-12-18T04:45:04.013980 +AZURE,centralus,Standard_E32_v3,on_demand,NA,2.334,USD,Azure Retail Prices API,2025-12-18T04:45:04.011852 +AZURE,centralus,Standard_E32_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:45:05.593418 +AZURE,centralus,Standard_E32_v3,reserved_3y,NA,0.960122,USD,Azure Retail Prices API,2025-12-18T04:45:05.593421 +AZURE,centralus,Standard_E32_v3,spot,NA,0.379508,USD,Azure Retail Prices API,2025-12-18T04:45:04.014956 +AZURE,centralus,Standard_E32a_v4,on_demand,NA,2.278,USD,Azure Retail Prices API,2025-12-18T04:45:04.012538 +AZURE,centralus,Standard_E32a_v4,reserved_1y,NA,1.366895,USD,Azure Retail Prices API,2025-12-18T04:45:05.593740 +AZURE,centralus,Standard_E32a_v4,reserved_3y,NA,0.911225,USD,Azure Retail Prices API,2025-12-18T04:45:05.593742 +AZURE,centralus,Standard_E32a_v4,spot,NA,0.372225,USD,Azure Retail Prices API,2025-12-18T04:45:04.014119 +AZURE,centralus,Standard_E32ads_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:04.013034 +AZURE,centralus,Standard_E32ads_v5,reserved_1y,NA,1.236644,USD,Azure Retail Prices API,2025-12-18T04:45:05.594189 +AZURE,centralus,Standard_E32ads_v5,reserved_3y,NA,0.796461,USD,Azure Retail Prices API,2025-12-18T04:45:05.594192 +AZURE,centralus,Standard_E32ads_v5,spot,NA,0.387168,USD,Azure Retail Prices API,2025-12-18T04:45:04.016042 +AZURE,centralus,Standard_E32ads_v6,on_demand,NA,2.624,USD,Azure Retail Prices API,2025-12-18T04:45:04.015725 +AZURE,centralus,Standard_E32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:45:05.594752 +AZURE,centralus,Standard_E32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:45:05.594755 +AZURE,centralus,Standard_E32ads_v6,spot,NA,0.429286,USD,Azure Retail Prices API,2025-12-18T04:45:04.012841 +AZURE,centralus,Standard_E32as_v4,on_demand,NA,2.278,USD,Azure Retail Prices API,2025-12-18T04:45:04.014864 +AZURE,centralus,Standard_E32as_v4,reserved_1y,NA,1.366895,USD,Azure Retail Prices API,2025-12-18T04:45:05.594278 +AZURE,centralus,Standard_E32as_v4,reserved_3y,NA,0.911225,USD,Azure Retail Prices API,2025-12-18T04:45:05.594281 +AZURE,centralus,Standard_E32as_v4,spot,NA,0.372225,USD,Azure Retail Prices API,2025-12-18T04:45:04.011936 +AZURE,centralus,Standard_E32as_v5,on_demand,NA,2.043,USD,Azure Retail Prices API,2025-12-18T04:45:04.012753 +AZURE,centralus,Standard_E32as_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:45:05.593822 +AZURE,centralus,Standard_E32as_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:45:05.593825 +AZURE,centralus,Standard_E32as_v5,spot,NA,0.333826,USD,Azure Retail Prices API,2025-12-18T04:45:04.014599 +AZURE,centralus,Standard_E32d_v4,on_demand,NA,2.604,USD,Azure Retail Prices API,2025-12-18T04:45:04.012086 +AZURE,centralus,Standard_E32d_v4,reserved_1y,NA,1.536073,USD,Azure Retail Prices API,2025-12-18T04:45:05.593574 +AZURE,centralus,Standard_E32d_v4,reserved_3y,NA,0.989346,USD,Azure Retail Prices API,2025-12-18T04:45:05.593577 +AZURE,centralus,Standard_E32d_v4,spot,NA,0.529914,USD,Azure Retail Prices API,2025-12-18T04:45:04.012973 +AZURE,centralus,Standard_E32ds_v4,on_demand,NA,2.604,USD,Azure Retail Prices API,2025-12-18T04:45:04.015417 +AZURE,centralus,Standard_E32ds_v4,reserved_1y,NA,1.536073,USD,Azure Retail Prices API,2025-12-18T04:45:05.594579 +AZURE,centralus,Standard_E32ds_v4,reserved_3y,NA,0.989346,USD,Azure Retail Prices API,2025-12-18T04:45:05.594582 +AZURE,centralus,Standard_E32ds_v4,spot,NA,0.529914,USD,Azure Retail Prices API,2025-12-18T04:45:04.015172 +AZURE,centralus,Standard_E32ds_v5,on_demand,NA,2.604,USD,Azure Retail Prices API,2025-12-18T04:45:04.014096 +AZURE,centralus,Standard_E32ds_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:05.594022 +AZURE,centralus,Standard_E32ds_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:45:05.594025 +AZURE,centralus,Standard_E32ds_v5,spot,NA,0.540851,USD,Azure Retail Prices API,2025-12-18T04:45:04.016055 +AZURE,centralus,Standard_E32ds_v6,on_demand,NA,2.956,USD,Azure Retail Prices API,2025-12-18T04:45:04.014402 +AZURE,centralus,Standard_E32ds_v6,reserved_1y,NA,1.622146,USD,Azure Retail Prices API,2025-12-18T04:45:05.594107 +AZURE,centralus,Standard_E32ds_v6,reserved_3y,NA,1.020358,USD,Azure Retail Prices API,2025-12-18T04:45:05.594109 +AZURE,centralus,Standard_E32ds_v6,spot,NA,0.483306,USD,Azure Retail Prices API,2025-12-18T04:45:04.015707 +AZURE,centralus,Standard_E32pds_v6,on_demand,NA,2.115,USD,Azure Retail Prices API,2025-12-18T04:45:04.015851 +AZURE,centralus,Standard_E32pds_v6,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:45:05.594821 +AZURE,centralus,Standard_E32pds_v6,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:45:05.594824 +AZURE,centralus,Standard_E32pds_v6,spot,NA,0.390429,USD,Azure Retail Prices API,2025-12-18T04:45:04.012279 +AZURE,centralus,Standard_E32ps_v6,on_demand,NA,1.667,USD,Azure Retail Prices API,2025-12-18T04:45:04.011736 +AZURE,centralus,Standard_E32ps_v6,reserved_1y,NA,0.87032,USD,Azure Retail Prices API,2025-12-18T04:45:05.593365 +AZURE,centralus,Standard_E32ps_v6,reserved_3y,NA,0.560578,USD,Azure Retail Prices API,2025-12-18T04:45:05.593368 +AZURE,centralus,Standard_E32ps_v6,spot,NA,0.307728,USD,Azure Retail Prices API,2025-12-18T04:45:04.014187 +AZURE,centralus,Standard_E32s_v3,on_demand,NA,2.334,USD,Azure Retail Prices API,2025-12-18T04:45:04.015978 +AZURE,centralus,Standard_E32s_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:45:05.594873 +AZURE,centralus,Standard_E32s_v3,reserved_3y,NA,0.960122,USD,Azure Retail Prices API,2025-12-18T04:45:05.594876 +AZURE,centralus,Standard_E32s_v3,spot,NA,0.379508,USD,Azure Retail Prices API,2025-12-18T04:45:04.012809 +AZURE,centralus,Standard_E32s_v4,on_demand,NA,2.278,USD,Azure Retail Prices API,2025-12-18T04:45:04.012020 +AZURE,centralus,Standard_E32s_v4,reserved_1y,NA,1.344064,USD,Azure Retail Prices API,2025-12-18T04:45:05.593508 +AZURE,centralus,Standard_E32s_v4,reserved_3y,NA,0.865677,USD,Azure Retail Prices API,2025-12-18T04:45:05.593511 +AZURE,centralus,Standard_E32s_v4,spot,NA,0.48772,USD,Azure Retail Prices API,2025-12-18T04:45:04.015032 +AZURE,centralus,Standard_E32s_v5,on_demand,NA,2.278,USD,Azure Retail Prices API,2025-12-18T04:45:04.011807 +AZURE,centralus,Standard_E32s_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:45:05.593401 +AZURE,centralus,Standard_E32s_v5,reserved_3y,NA,0.745928,USD,Azure Retail Prices API,2025-12-18T04:45:05.593404 +AZURE,centralus,Standard_E32s_v5,spot,NA,0.486353,USD,Azure Retail Prices API,2025-12-18T04:45:04.012583 +AZURE,centralus,Standard_E48a_v4,on_demand,NA,3.417,USD,Azure Retail Prices API,2025-12-18T04:45:04.011625 +AZURE,centralus,Standard_E48a_v4,reserved_1y,NA,2.050228,USD,Azure Retail Prices API,2025-12-18T04:45:05.593285 +AZURE,centralus,Standard_E48a_v4,reserved_3y,NA,1.366857,USD,Azure Retail Prices API,2025-12-18T04:45:05.593290 +AZURE,centralus,Standard_E48a_v4,spot,NA,0.558338,USD,Azure Retail Prices API,2025-12-18T04:45:04.011681 +AZURE,centralus,Standard_E48ads_v5,on_demand,NA,5.761,USD,Azure Retail Prices API,2025-12-18T04:45:04.014978 +AZURE,centralus,Standard_E48ads_v5,reserved_1y,NA,1.854909,USD,Azure Retail Prices API,2025-12-18T04:45:05.594391 +AZURE,centralus,Standard_E48ads_v5,reserved_3y,NA,1.194711,USD,Azure Retail Prices API,2025-12-18T04:45:05.594394 +AZURE,centralus,Standard_E48ads_v5,spot,NA,0.58056,USD,Azure Retail Prices API,2025-12-18T04:45:04.015475 +AZURE,centralus,Standard_E48ads_v6,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:45:04.013016 +AZURE,centralus,Standard_E48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:45:05.593905 +AZURE,centralus,Standard_E48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:45:05.593907 +AZURE,centralus,Standard_E48ads_v6,spot,NA,0.64393,USD,Azure Retail Prices API,2025-12-18T04:45:04.015772 +AZURE,centralus,Standard_E48as_v4,on_demand,NA,3.417,USD,Azure Retail Prices API,2025-12-18T04:45:04.014787 +AZURE,centralus,Standard_E48as_v4,reserved_1y,NA,2.050228,USD,Azure Retail Prices API,2025-12-18T04:45:05.594244 +AZURE,centralus,Standard_E48as_v4,reserved_3y,NA,1.366857,USD,Azure Retail Prices API,2025-12-18T04:45:05.594247 +AZURE,centralus,Standard_E48as_v4,spot,NA,0.558338,USD,Azure Retail Prices API,2025-12-18T04:45:04.012175 +AZURE,centralus,Standard_E48as_v5,on_demand,NA,5.273,USD,Azure Retail Prices API,2025-12-18T04:45:04.011709 +AZURE,centralus,Standard_E48as_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:45:05.594498 +AZURE,centralus,Standard_E48as_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:45:05.594501 +AZURE,centralus,Standard_E48as_v5,spot,NA,0.500821,USD,Azure Retail Prices API,2025-12-18T04:45:04.014695 +AZURE,centralus,Standard_E48d_v4,on_demand,NA,3.905,USD,Azure Retail Prices API,2025-12-18T04:45:04.012758 +AZURE,centralus,Standard_E48d_v4,reserved_1y,NA,2.30411,USD,Azure Retail Prices API,2025-12-18T04:45:05.593828 +AZURE,centralus,Standard_E48d_v4,reserved_3y,NA,1.484018,USD,Azure Retail Prices API,2025-12-18T04:45:05.593831 +AZURE,centralus,Standard_E48d_v4,spot,NA,0.794668,USD,Azure Retail Prices API,2025-12-18T04:45:04.016067 +AZURE,centralus,Standard_E48ds_v4,on_demand,NA,3.905,USD,Azure Retail Prices API,2025-12-18T04:45:04.012701 +AZURE,centralus,Standard_E48ds_v4,reserved_1y,NA,2.30411,USD,Azure Retail Prices API,2025-12-18T04:45:05.593806 +AZURE,centralus,Standard_E48ds_v4,reserved_3y,NA,1.484018,USD,Azure Retail Prices API,2025-12-18T04:45:05.593809 +AZURE,centralus,Standard_E48ds_v4,spot,NA,0.794668,USD,Azure Retail Prices API,2025-12-18T04:45:04.015845 +AZURE,centralus,Standard_E48ds_v5,on_demand,NA,3.905,USD,Azure Retail Prices API,2025-12-18T04:45:04.015387 +AZURE,centralus,Standard_E48ds_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:45:05.594568 +AZURE,centralus,Standard_E48ds_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:45:05.594570 +AZURE,centralus,Standard_E48ds_v5,spot,NA,0.811459,USD,Azure Retail Prices API,2025-12-18T04:45:04.012901 +AZURE,centralus,Standard_E48ds_v6,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:45:04.012926 +AZURE,centralus,Standard_E48ds_v6,reserved_1y,NA,2.433219,USD,Azure Retail Prices API,2025-12-18T04:45:05.593882 +AZURE,centralus,Standard_E48ds_v6,reserved_3y,NA,1.530556,USD,Azure Retail Prices API,2025-12-18T04:45:05.593885 +AZURE,centralus,Standard_E48ds_v6,spot,NA,0.725122,USD,Azure Retail Prices API,2025-12-18T04:45:04.015570 +AZURE,centralus,Standard_E48pds_v6,on_demand,NA,3.173,USD,Azure Retail Prices API,2025-12-18T04:45:04.012906 +AZURE,centralus,Standard_E48pds_v6,reserved_1y,NA,1.656735,USD,Azure Retail Prices API,2025-12-18T04:45:05.593860 +AZURE,centralus,Standard_E48pds_v6,reserved_3y,NA,1.067047,USD,Azure Retail Prices API,2025-12-18T04:45:05.593863 +AZURE,centralus,Standard_E48pds_v6,spot,NA,0.585736,USD,Azure Retail Prices API,2025-12-18T04:45:04.012341 +AZURE,centralus,Standard_E48ps_v6,on_demand,NA,2.501,USD,Azure Retail Prices API,2025-12-18T04:45:04.016022 +AZURE,centralus,Standard_E48ps_v6,reserved_1y,NA,1.305594,USD,Azure Retail Prices API,2025-12-18T04:45:05.594897 +AZURE,centralus,Standard_E48ps_v6,reserved_3y,NA,0.840868,USD,Azure Retail Prices API,2025-12-18T04:45:05.594900 +AZURE,centralus,Standard_E48ps_v6,spot,NA,0.461685,USD,Azure Retail Prices API,2025-12-18T04:45:04.012696 +AZURE,centralus,Standard_E48s_v4,on_demand,NA,3.417,USD,Azure Retail Prices API,2025-12-18T04:45:04.012531 +AZURE,centralus,Standard_E48s_v4,reserved_1y,NA,2.016096,USD,Azure Retail Prices API,2025-12-18T04:45:05.593734 +AZURE,centralus,Standard_E48s_v4,reserved_3y,NA,1.298516,USD,Azure Retail Prices API,2025-12-18T04:45:05.593737 +AZURE,centralus,Standard_E48s_v4,spot,NA,0.73158,USD,Azure Retail Prices API,2025-12-18T04:45:04.014920 +AZURE,centralus,Standard_E48s_v5,on_demand,NA,3.417,USD,Azure Retail Prices API,2025-12-18T04:45:04.014543 +AZURE,centralus,Standard_E48s_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:45:05.594179 +AZURE,centralus,Standard_E48s_v5,reserved_3y,NA,1.118874,USD,Azure Retail Prices API,2025-12-18T04:45:05.594181 +AZURE,centralus,Standard_E48s_v5,spot,NA,0.72953,USD,Azure Retail Prices API,2025-12-18T04:45:04.014869 +AZURE,centralus,Standard_E4_v3,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:45:04.013040 +AZURE,centralus,Standard_E4_v3,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:45:05.593915 +AZURE,centralus,Standard_E4_v3,reserved_3y,NA,0.119977,USD,Azure Retail Prices API,2025-12-18T04:45:05.593918 +AZURE,centralus,Standard_E4_v3,spot,NA,0.047479,USD,Azure Retail Prices API,2025-12-18T04:45:04.011986 +AZURE,centralus,Standard_E4a_v4,on_demand,NA,0.285,USD,Azure Retail Prices API,2025-12-18T04:45:04.012129 +AZURE,centralus,Standard_E4a_v4,reserved_1y,NA,0.17089,USD,Azure Retail Prices API,2025-12-18T04:45:05.593592 +AZURE,centralus,Standard_E4a_v4,reserved_3y,NA,0.113889,USD,Azure Retail Prices API,2025-12-18T04:45:05.593595 +AZURE,centralus,Standard_E4a_v4,spot,NA,0.04654,USD,Azure Retail Prices API,2025-12-18T04:45:04.015446 +AZURE,centralus,Standard_E4ads_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:04.012027 +AZURE,centralus,Standard_E4ads_v5,reserved_1y,NA,0.154566,USD,Azure Retail Prices API,2025-12-18T04:45:05.593514 +AZURE,centralus,Standard_E4ads_v5,reserved_3y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:45:05.593516 +AZURE,centralus,Standard_E4ads_v5,spot,NA,0.048396,USD,Azure Retail Prices API,2025-12-18T04:45:04.015230 +AZURE,centralus,Standard_E4ads_v6,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:45:04.016157 +AZURE,centralus,Standard_E4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:45:05.594952 +AZURE,centralus,Standard_E4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:45:05.594955 +AZURE,centralus,Standard_E4ads_v6,spot,NA,0.053562,USD,Azure Retail Prices API,2025-12-18T04:45:04.012080 +AZURE,centralus,Standard_E4as_v4,on_demand,NA,0.285,USD,Azure Retail Prices API,2025-12-18T04:45:04.012110 +AZURE,centralus,Standard_E4as_v4,reserved_1y,NA,0.17089,USD,Azure Retail Prices API,2025-12-18T04:45:05.593580 +AZURE,centralus,Standard_E4as_v4,reserved_3y,NA,0.113889,USD,Azure Retail Prices API,2025-12-18T04:45:05.593583 +AZURE,centralus,Standard_E4as_v4,spot,NA,0.04654,USD,Azure Retail Prices API,2025-12-18T04:45:04.016048 +AZURE,centralus,Standard_E4as_v5,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:45:04.011647 +AZURE,centralus,Standard_E4as_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:45:05.593304 +AZURE,centralus,Standard_E4as_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:45:05.593309 +AZURE,centralus,Standard_E4as_v5,spot,NA,0.041744,USD,Azure Retail Prices API,2025-12-18T04:45:04.015701 +AZURE,centralus,Standard_E4d_v4,on_demand,NA,0.325,USD,Azure Retail Prices API,2025-12-18T04:45:04.014683 +AZURE,centralus,Standard_E4d_v4,reserved_1y,NA,0.192009,USD,Azure Retail Prices API,2025-12-18T04:45:05.594211 +AZURE,centralus,Standard_E4d_v4,reserved_3y,NA,0.123668,USD,Azure Retail Prices API,2025-12-18T04:45:05.594213 +AZURE,centralus,Standard_E4d_v4,spot,NA,0.066138,USD,Azure Retail Prices API,2025-12-18T04:45:04.016061 +AZURE,centralus,Standard_E4ds_v4,on_demand,NA,0.325,USD,Azure Retail Prices API,2025-12-18T04:45:04.012571 +AZURE,centralus,Standard_E4ds_v4,reserved_1y,NA,0.192009,USD,Azure Retail Prices API,2025-12-18T04:45:05.593757 +AZURE,centralus,Standard_E4ds_v4,reserved_3y,NA,0.123668,USD,Azure Retail Prices API,2025-12-18T04:45:05.593759 +AZURE,centralus,Standard_E4ds_v4,spot,NA,0.066138,USD,Azure Retail Prices API,2025-12-18T04:45:04.014372 +AZURE,centralus,Standard_E4ds_v5,on_demand,NA,0.325,USD,Azure Retail Prices API,2025-12-18T04:45:04.015340 +AZURE,centralus,Standard_E4ds_v5,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:45:05.594546 +AZURE,centralus,Standard_E4ds_v5,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:45:05.594549 +AZURE,centralus,Standard_E4ds_v5,spot,NA,0.0676,USD,Azure Retail Prices API,2025-12-18T04:45:04.012764 +AZURE,centralus,Standard_E4ds_v6,on_demand,NA,0.37,USD,Azure Retail Prices API,2025-12-18T04:45:04.014074 +AZURE,centralus,Standard_E4ds_v6,reserved_1y,NA,0.20274,USD,Azure Retail Prices API,2025-12-18T04:45:05.594005 +AZURE,centralus,Standard_E4ds_v6,reserved_3y,NA,0.127549,USD,Azure Retail Prices API,2025-12-18T04:45:05.594008 +AZURE,centralus,Standard_E4ds_v6,spot,NA,0.060421,USD,Azure Retail Prices API,2025-12-18T04:45:04.016152 +AZURE,centralus,Standard_E4pds_v6,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:45:04.012196 +AZURE,centralus,Standard_E4pds_v6,reserved_1y,NA,0.138014,USD,Azure Retail Prices API,2025-12-18T04:45:05.593649 +AZURE,centralus,Standard_E4pds_v6,reserved_3y,NA,0.088927,USD,Azure Retail Prices API,2025-12-18T04:45:05.593652 +AZURE,centralus,Standard_E4pds_v6,spot,NA,0.048734,USD,Azure Retail Prices API,2025-12-18T04:45:04.015054 +AZURE,centralus,Standard_E4ps_v6,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:04.016103 +AZURE,centralus,Standard_E4ps_v6,reserved_1y,NA,0.10879,USD,Azure Retail Prices API,2025-12-18T04:45:05.594921 +AZURE,centralus,Standard_E4ps_v6,reserved_3y,NA,0.070053,USD,Azure Retail Prices API,2025-12-18T04:45:05.594924 +AZURE,centralus,Standard_E4ps_v6,spot,NA,0.038397,USD,Azure Retail Prices API,2025-12-18T04:45:04.015683 +AZURE,centralus,Standard_E4s_v4,on_demand,NA,0.285,USD,Azure Retail Prices API,2025-12-18T04:45:04.014366 +AZURE,centralus,Standard_E4s_v4,reserved_1y,NA,0.168037,USD,Azure Retail Prices API,2025-12-18T04:45:05.594079 +AZURE,centralus,Standard_E4s_v4,reserved_3y,NA,0.108219,USD,Azure Retail Prices API,2025-12-18T04:45:05.594081 +AZURE,centralus,Standard_E4s_v4,spot,NA,0.061018,USD,Azure Retail Prices API,2025-12-18T04:45:04.015939 +AZURE,centralus,Standard_E4s_v5,on_demand,NA,0.285,USD,Azure Retail Prices API,2025-12-18T04:45:04.015761 +AZURE,centralus,Standard_E4s_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:45:05.594769 +AZURE,centralus,Standard_E4s_v5,reserved_3y,NA,0.093227,USD,Azure Retail Prices API,2025-12-18T04:45:05.594772 +AZURE,centralus,Standard_E4s_v5,spot,NA,0.060848,USD,Azure Retail Prices API,2025-12-18T04:45:04.011916 +AZURE,centralus,Standard_E64_v3,on_demand,NA,4.2,USD,Azure Retail Prices API,2025-12-18T04:45:04.015671 +AZURE,centralus,Standard_E64_v3,reserved_1y,NA,2.830251,USD,Azure Retail Prices API,2025-12-18T04:45:05.594714 +AZURE,centralus,Standard_E64_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:45:05.594718 +AZURE,centralus,Standard_E64_v3,spot,NA,0.68292,USD,Azure Retail Prices API,2025-12-18T04:45:04.012218 +AZURE,centralus,Standard_E64a_v4,on_demand,NA,4.556,USD,Azure Retail Prices API,2025-12-18T04:45:04.014842 +AZURE,centralus,Standard_E64a_v4,reserved_1y,NA,2.733676,USD,Azure Retail Prices API,2025-12-18T04:45:05.594261 +AZURE,centralus,Standard_E64a_v4,reserved_3y,NA,1.822451,USD,Azure Retail Prices API,2025-12-18T04:45:05.594264 +AZURE,centralus,Standard_E64a_v4,spot,NA,0.74445,USD,Azure Retail Prices API,2025-12-18T04:45:04.012679 +AZURE,centralus,Standard_E64ads_v5,on_demand,NA,4.737,USD,Azure Retail Prices API,2025-12-18T04:45:04.011535 +AZURE,centralus,Standard_E64ads_v5,reserved_1y,NA,2.473288,USD,Azure Retail Prices API,2025-12-18T04:45:05.593236 +AZURE,centralus,Standard_E64ads_v5,reserved_3y,NA,1.59296,USD,Azure Retail Prices API,2025-12-18T04:45:05.593240 +AZURE,centralus,Standard_E64ads_v5,spot,NA,0.774026,USD,Azure Retail Prices API,2025-12-18T04:45:04.011642 +AZURE,centralus,Standard_E64ads_v6,on_demand,NA,5.248,USD,Azure Retail Prices API,2025-12-18T04:45:04.014743 +AZURE,centralus,Standard_E64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:45:05.594216 +AZURE,centralus,Standard_E64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:45:05.594219 +AZURE,centralus,Standard_E64ads_v6,spot,NA,0.858573,USD,Azure Retail Prices API,2025-12-18T04:45:04.015317 +AZURE,centralus,Standard_E64as_v4,on_demand,NA,4.556,USD,Azure Retail Prices API,2025-12-18T04:45:04.014377 +AZURE,centralus,Standard_E64as_v4,reserved_1y,NA,2.733676,USD,Azure Retail Prices API,2025-12-18T04:45:05.594084 +AZURE,centralus,Standard_E64as_v4,reserved_3y,NA,1.822451,USD,Azure Retail Prices API,2025-12-18T04:45:05.594087 +AZURE,centralus,Standard_E64as_v4,spot,NA,0.74445,USD,Azure Retail Prices API,2025-12-18T04:45:04.015376 +AZURE,centralus,Standard_E64as_v5,on_demand,NA,4.086,USD,Azure Retail Prices API,2025-12-18T04:45:04.014015 +AZURE,centralus,Standard_E64as_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:45:05.593953 +AZURE,centralus,Standard_E64as_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:45:05.593956 +AZURE,centralus,Standard_E64as_v5,spot,NA,0.667652,USD,Azure Retail Prices API,2025-12-18T04:45:04.015399 +AZURE,centralus,Standard_E64d_v4,on_demand,NA,5.207,USD,Azure Retail Prices API,2025-12-18T04:45:04.012325 +AZURE,centralus,Standard_E64d_v4,reserved_1y,NA,3.072146,USD,Azure Retail Prices API,2025-12-18T04:45:05.593717 +AZURE,centralus,Standard_E64d_v4,reserved_3y,NA,1.978691,USD,Azure Retail Prices API,2025-12-18T04:45:05.593720 +AZURE,centralus,Standard_E64d_v4,spot,NA,1.059624,USD,Azure Retail Prices API,2025-12-18T04:45:04.012820 +AZURE,centralus,Standard_E64ds_v4,on_demand,NA,5.207,USD,Azure Retail Prices API,2025-12-18T04:45:04.015241 +AZURE,centralus,Standard_E64ds_v4,reserved_1y,NA,3.072146,USD,Azure Retail Prices API,2025-12-18T04:45:05.594476 +AZURE,centralus,Standard_E64ds_v4,reserved_3y,NA,1.978691,USD,Azure Retail Prices API,2025-12-18T04:45:05.594479 +AZURE,centralus,Standard_E64ds_v4,spot,NA,1.059624,USD,Azure Retail Prices API,2025-12-18T04:45:04.014792 +AZURE,centralus,Standard_E64ds_v5,on_demand,NA,5.207,USD,Azure Retail Prices API,2025-12-18T04:45:04.014906 +AZURE,centralus,Standard_E64ds_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:05.594295 +AZURE,centralus,Standard_E64ds_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:45:05.594298 +AZURE,centralus,Standard_E64ds_v5,spot,NA,1.082015,USD,Azure Retail Prices API,2025-12-18T04:45:04.012347 +AZURE,centralus,Standard_E64ds_v6,on_demand,NA,5.913,USD,Azure Retail Prices API,2025-12-18T04:45:04.015797 +AZURE,centralus,Standard_E64ds_v6,reserved_1y,NA,3.244292,USD,Azure Retail Prices API,2025-12-18T04:45:05.594787 +AZURE,centralus,Standard_E64ds_v6,reserved_3y,NA,2.040715,USD,Azure Retail Prices API,2025-12-18T04:45:05.594790 +AZURE,centralus,Standard_E64ds_v6,spot,NA,0.966776,USD,Azure Retail Prices API,2025-12-18T04:45:04.015576 +AZURE,centralus,Standard_E64pds_v6,on_demand,NA,4.23,USD,Azure Retail Prices API,2025-12-18T04:45:04.015079 +AZURE,centralus,Standard_E64pds_v6,reserved_1y,NA,2.208904,USD,Azure Retail Prices API,2025-12-18T04:45:05.594351 +AZURE,centralus,Standard_E64pds_v6,reserved_3y,NA,1.422717,USD,Azure Retail Prices API,2025-12-18T04:45:05.594354 +AZURE,centralus,Standard_E64pds_v6,spot,NA,0.780858,USD,Azure Retail Prices API,2025-12-18T04:45:04.015791 +AZURE,centralus,Standard_E64ps_v6,on_demand,NA,3.334,USD,Azure Retail Prices API,2025-12-18T04:45:04.014136 +AZURE,centralus,Standard_E64ps_v6,reserved_1y,NA,1.740753,USD,Azure Retail Prices API,2025-12-18T04:45:05.594044 +AZURE,centralus,Standard_E64ps_v6,reserved_3y,NA,1.121157,USD,Azure Retail Prices API,2025-12-18T04:45:05.594047 +AZURE,centralus,Standard_E64ps_v6,spot,NA,0.615456,USD,Azure Retail Prices API,2025-12-18T04:45:04.014825 +AZURE,centralus,Standard_E64s_v3,on_demand,NA,4.2,USD,Azure Retail Prices API,2025-12-18T04:45:04.014419 +AZURE,centralus,Standard_E64s_v3,reserved_1y,NA,2.830251,USD,Azure Retail Prices API,2025-12-18T04:45:05.594124 +AZURE,centralus,Standard_E64s_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:45:05.594126 +AZURE,centralus,Standard_E64s_v3,spot,NA,0.68292,USD,Azure Retail Prices API,2025-12-18T04:45:04.014488 +AZURE,centralus,Standard_E64s_v4,on_demand,NA,4.556,USD,Azure Retail Prices API,2025-12-18T04:45:04.016182 +AZURE,centralus,Standard_E64s_v4,reserved_1y,NA,2.688128,USD,Azure Retail Prices API,2025-12-18T04:45:05.594969 +AZURE,centralus,Standard_E64s_v4,reserved_3y,NA,1.731355,USD,Azure Retail Prices API,2025-12-18T04:45:05.594971 +AZURE,centralus,Standard_E64s_v4,spot,NA,0.97544,USD,Azure Retail Prices API,2025-12-18T04:45:04.012264 +AZURE,centralus,Standard_E64s_v5,on_demand,NA,4.556,USD,Azure Retail Prices API,2025-12-18T04:45:04.012252 +AZURE,centralus,Standard_E64s_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:45:05.593684 +AZURE,centralus,Standard_E64s_v5,reserved_3y,NA,1.491857,USD,Azure Retail Prices API,2025-12-18T04:45:05.593687 +AZURE,centralus,Standard_E64s_v5,spot,NA,0.972706,USD,Azure Retail Prices API,2025-12-18T04:45:04.015423 +AZURE,centralus,Standard_E80ids_v4,on_demand,NA,6.509,USD,Azure Retail Prices API,2025-12-18T04:45:04.014079 +AZURE,centralus,Standard_E80ids_v4,reserved_1y,NA,3.840183,USD,Azure Retail Prices API,2025-12-18T04:45:05.594011 +AZURE,centralus,Standard_E80ids_v4,reserved_3y,NA,2.473326,USD,Azure Retail Prices API,2025-12-18T04:45:05.594014 +AZURE,centralus,Standard_E80ids_v4,spot,NA,1.324582,USD,Azure Retail Prices API,2025-12-18T04:45:04.016218 +AZURE,centralus,Standard_E80is_v4,on_demand,NA,5.695,USD,Azure Retail Prices API,2025-12-18T04:45:04.015996 +AZURE,centralus,Standard_E80is_v4,reserved_1y,NA,3.36016,USD,Azure Retail Prices API,2025-12-18T04:45:05.594885 +AZURE,centralus,Standard_E80is_v4,reserved_3y,NA,2.164193,USD,Azure Retail Prices API,2025-12-18T04:45:05.594888 +AZURE,centralus,Standard_E80is_v4,spot,NA,1.2193,USD,Azure Retail Prices API,2025-12-18T04:45:04.011824 +AZURE,centralus,Standard_E8_v3,on_demand,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:45:04.012628 +AZURE,centralus,Standard_E8_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:45:05.593784 +AZURE,centralus,Standard_E8_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:45:05.593786 +AZURE,centralus,Standard_E8_v3,spot,NA,0.094796,USD,Azure Retail Prices API,2025-12-18T04:45:04.016028 +AZURE,centralus,Standard_E8a_v4,on_demand,NA,0.57,USD,Azure Retail Prices API,2025-12-18T04:45:04.012911 +AZURE,centralus,Standard_E8a_v4,reserved_1y,NA,0.341667,USD,Azure Retail Prices API,2025-12-18T04:45:05.593866 +AZURE,centralus,Standard_E8a_v4,reserved_3y,NA,0.227816,USD,Azure Retail Prices API,2025-12-18T04:45:05.593869 +AZURE,centralus,Standard_E8a_v4,spot,NA,0.093081,USD,Azure Retail Prices API,2025-12-18T04:45:04.011782 +AZURE,centralus,Standard_E8ads_v5,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:04.014032 +AZURE,centralus,Standard_E8ads_v5,reserved_1y,NA,0.309132,USD,Azure Retail Prices API,2025-12-18T04:45:05.593971 +AZURE,centralus,Standard_E8ads_v5,reserved_3y,NA,0.199125,USD,Azure Retail Prices API,2025-12-18T04:45:05.593974 +AZURE,centralus,Standard_E8ads_v5,spot,NA,0.096792,USD,Azure Retail Prices API,2025-12-18T04:45:04.014901 +AZURE,centralus,Standard_E8ads_v6,on_demand,NA,0.656,USD,Azure Retail Prices API,2025-12-18T04:45:04.014916 +AZURE,centralus,Standard_E8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:45:05.594301 +AZURE,centralus,Standard_E8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:45:05.594303 +AZURE,centralus,Standard_E8ads_v6,spot,NA,0.107322,USD,Azure Retail Prices API,2025-12-18T04:45:04.014782 +AZURE,centralus,Standard_E8as_v4,on_demand,NA,0.57,USD,Azure Retail Prices API,2025-12-18T04:45:04.014548 +AZURE,centralus,Standard_E8as_v4,reserved_1y,NA,0.341667,USD,Azure Retail Prices API,2025-12-18T04:45:05.594184 +AZURE,centralus,Standard_E8as_v4,reserved_3y,NA,0.227816,USD,Azure Retail Prices API,2025-12-18T04:45:05.594187 +AZURE,centralus,Standard_E8as_v4,spot,NA,0.093081,USD,Azure Retail Prices API,2025-12-18T04:45:04.012712 +AZURE,centralus,Standard_E8as_v5,on_demand,NA,0.511,USD,Azure Retail Prices API,2025-12-18T04:45:04.011636 +AZURE,centralus,Standard_E8as_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:45:05.593294 +AZURE,centralus,Standard_E8as_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:45:05.593299 +AZURE,centralus,Standard_E8as_v5,spot,NA,0.083497,USD,Azure Retail Prices API,2025-12-18T04:45:04.011884 +AZURE,centralus,Standard_E8d_v4,on_demand,NA,0.651,USD,Azure Retail Prices API,2025-12-18T04:45:04.014413 +AZURE,centralus,Standard_E8d_v4,reserved_1y,NA,0.384018,USD,Azure Retail Prices API,2025-12-18T04:45:05.594118 +AZURE,centralus,Standard_E8d_v4,reserved_3y,NA,0.247336,USD,Azure Retail Prices API,2025-12-18T04:45:05.594121 +AZURE,centralus,Standard_E8d_v4,spot,NA,0.132478,USD,Azure Retail Prices API,2025-12-18T04:45:04.015821 +AZURE,centralus,Standard_E8ds_v4,on_demand,NA,0.651,USD,Azure Retail Prices API,2025-12-18T04:45:04.011552 +AZURE,centralus,Standard_E8ds_v4,reserved_1y,NA,0.384018,USD,Azure Retail Prices API,2025-12-18T04:45:05.593250 +AZURE,centralus,Standard_E8ds_v4,reserved_3y,NA,0.247336,USD,Azure Retail Prices API,2025-12-18T04:45:05.593253 +AZURE,centralus,Standard_E8ds_v4,spot,NA,0.132478,USD,Azure Retail Prices API,2025-12-18T04:45:04.014951 +AZURE,centralus,Standard_E8ds_v5,on_demand,NA,0.651,USD,Azure Retail Prices API,2025-12-18T04:45:04.011992 +AZURE,centralus,Standard_E8ds_v5,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:45:05.593486 +AZURE,centralus,Standard_E8ds_v5,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:45:05.593489 +AZURE,centralus,Standard_E8ds_v5,spot,NA,0.135213,USD,Azure Retail Prices API,2025-12-18T04:45:04.014847 +AZURE,centralus,Standard_E8ds_v6,on_demand,NA,0.739,USD,Azure Retail Prices API,2025-12-18T04:45:04.011603 +AZURE,centralus,Standard_E8ds_v6,reserved_1y,NA,0.405479,USD,Azure Retail Prices API,2025-12-18T04:45:05.593270 +AZURE,centralus,Standard_E8ds_v6,reserved_3y,NA,0.255099,USD,Azure Retail Prices API,2025-12-18T04:45:05.593273 +AZURE,centralus,Standard_E8ds_v6,spot,NA,0.120826,USD,Azure Retail Prices API,2025-12-18T04:45:04.016015 +AZURE,centralus,Standard_E8pds_v6,on_demand,NA,0.529,USD,Azure Retail Prices API,2025-12-18T04:45:04.011789 +AZURE,centralus,Standard_E8pds_v6,reserved_1y,NA,0.276142,USD,Azure Retail Prices API,2025-12-18T04:45:05.593395 +AZURE,centralus,Standard_E8pds_v6,reserved_3y,NA,0.177854,USD,Azure Retail Prices API,2025-12-18T04:45:05.593398 +AZURE,centralus,Standard_E8pds_v6,spot,NA,0.097653,USD,Azure Retail Prices API,2025-12-18T04:45:04.011801 +AZURE,centralus,Standard_E8ps_v6,on_demand,NA,0.417,USD,Azure Retail Prices API,2025-12-18T04:45:04.015839 +AZURE,centralus,Standard_E8ps_v6,reserved_1y,NA,0.21758,USD,Azure Retail Prices API,2025-12-18T04:45:05.594815 +AZURE,centralus,Standard_E8ps_v6,reserved_3y,NA,0.140145,USD,Azure Retail Prices API,2025-12-18T04:45:05.594818 +AZURE,centralus,Standard_E8ps_v6,spot,NA,0.076978,USD,Azure Retail Prices API,2025-12-18T04:45:04.011946 +AZURE,centralus,Standard_E8s_v3,on_demand,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:45:04.015323 +AZURE,centralus,Standard_E8s_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:45:05.594528 +AZURE,centralus,Standard_E8s_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:45:05.594531 +AZURE,centralus,Standard_E8s_v3,spot,NA,0.094796,USD,Azure Retail Prices API,2025-12-18T04:45:04.012269 +AZURE,centralus,Standard_E8s_v4,on_demand,NA,0.57,USD,Azure Retail Prices API,2025-12-18T04:45:04.015614 +AZURE,centralus,Standard_E8s_v4,reserved_1y,NA,0.336073,USD,Azure Retail Prices API,2025-12-18T04:45:05.594667 +AZURE,centralus,Standard_E8s_v4,reserved_3y,NA,0.2164,USD,Azure Retail Prices API,2025-12-18T04:45:05.594670 +AZURE,centralus,Standard_E8s_v4,spot,NA,0.122037,USD,Azure Retail Prices API,2025-12-18T04:45:04.012059 +AZURE,centralus,Standard_E8s_v5,on_demand,NA,0.57,USD,Azure Retail Prices API,2025-12-18T04:45:04.015493 +AZURE,centralus,Standard_E8s_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:45:05.594612 +AZURE,centralus,Standard_E8s_v5,reserved_3y,NA,0.186492,USD,Azure Retail Prices API,2025-12-18T04:45:05.594614 +AZURE,centralus,Standard_E8s_v5,spot,NA,0.121695,USD,Azure Retail Prices API,2025-12-18T04:45:04.014177 +AZURE,centralus,Standard_E96a_v4,on_demand,NA,6.834,USD,Azure Retail Prices API,2025-12-18T04:45:04.014154 +AZURE,centralus,Standard_E96a_v4,reserved_1y,NA,4.100571,USD,Azure Retail Prices API,2025-12-18T04:45:05.594056 +AZURE,centralus,Standard_E96a_v4,reserved_3y,NA,2.733714,USD,Azure Retail Prices API,2025-12-18T04:45:05.594059 +AZURE,centralus,Standard_E96a_v4,spot,NA,1.116676,USD,Azure Retail Prices API,2025-12-18T04:45:04.012633 +AZURE,centralus,Standard_E96ads_v5,on_demand,NA,11.521,USD,Azure Retail Prices API,2025-12-18T04:45:04.014776 +AZURE,centralus,Standard_E96ads_v5,reserved_1y,NA,3.709932,USD,Azure Retail Prices API,2025-12-18T04:45:05.594442 +AZURE,centralus,Standard_E96ads_v5,reserved_3y,NA,2.389422,USD,Azure Retail Prices API,2025-12-18T04:45:05.594445 +AZURE,centralus,Standard_E96ads_v5,spot,NA,1.161668,USD,Azure Retail Prices API,2025-12-18T04:45:04.015743 +AZURE,centralus,Standard_E96ads_v6,on_demand,NA,7.872,USD,Azure Retail Prices API,2025-12-18T04:45:04.014594 +AZURE,centralus,Standard_E96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:45:05.594195 +AZURE,centralus,Standard_E96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:45:05.594198 +AZURE,centralus,Standard_E96ads_v6,spot,NA,1.287859,USD,Azure Retail Prices API,2025-12-18T04:45:04.014721 +AZURE,centralus,Standard_E96as_v4,on_demand,NA,6.834,USD,Azure Retail Prices API,2025-12-18T04:45:04.014102 +AZURE,centralus,Standard_E96as_v4,reserved_1y,NA,4.100571,USD,Azure Retail Prices API,2025-12-18T04:45:05.594028 +AZURE,centralus,Standard_E96as_v4,reserved_3y,NA,2.733714,USD,Azure Retail Prices API,2025-12-18T04:45:05.594031 +AZURE,centralus,Standard_E96as_v4,spot,NA,1.116676,USD,Azure Retail Prices API,2025-12-18T04:45:04.015990 +AZURE,centralus,Standard_E96as_v5,on_demand,NA,10.545,USD,Azure Retail Prices API,2025-12-18T04:45:04.014656 +AZURE,centralus,Standard_E96as_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:45:05.594601 +AZURE,centralus,Standard_E96as_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:45:05.594603 +AZURE,centralus,Standard_E96as_v5,spot,NA,1.001479,USD,Azure Retail Prices API,2025-12-18T04:45:04.012966 +AZURE,centralus,Standard_E96ds_v5,on_demand,NA,7.811,USD,Azure Retail Prices API,2025-12-18T04:45:04.015966 +AZURE,centralus,Standard_E96ds_v5,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:45:05.594867 +AZURE,centralus,Standard_E96ds_v5,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:45:05.594870 +AZURE,centralus,Standard_E96ds_v5,spot,NA,1.623126,USD,Azure Retail Prices API,2025-12-18T04:45:04.016222 +AZURE,centralus,Standard_E96ds_v6,on_demand,NA,8.869,USD,Azure Retail Prices API,2025-12-18T04:45:04.011652 +AZURE,centralus,Standard_E96ds_v6,reserved_1y,NA,4.866324,USD,Azure Retail Prices API,2025-12-18T04:45:05.593313 +AZURE,centralus,Standard_E96ds_v6,reserved_3y,NA,3.061111,USD,Azure Retail Prices API,2025-12-18T04:45:05.593317 +AZURE,centralus,Standard_E96ds_v6,spot,NA,1.450082,USD,Azure Retail Prices API,2025-12-18T04:45:04.015596 +AZURE,centralus,Standard_E96pds_v6,on_demand,NA,6.346,USD,Azure Retail Prices API,2025-12-18T04:45:04.016228 +AZURE,centralus,Standard_E96pds_v6,reserved_1y,NA,3.31347,USD,Azure Retail Prices API,2025-12-18T04:45:05.594986 +AZURE,centralus,Standard_E96pds_v6,reserved_3y,NA,2.134094,USD,Azure Retail Prices API,2025-12-18T04:45:05.594989 +AZURE,centralus,Standard_E96pds_v6,spot,NA,1.171472,USD,Azure Retail Prices API,2025-12-18T04:45:04.015766 +AZURE,centralus,Standard_E96ps_v6,on_demand,NA,5.002,USD,Azure Retail Prices API,2025-12-18T04:45:04.014387 +AZURE,centralus,Standard_E96ps_v6,reserved_1y,NA,2.611073,USD,Azure Retail Prices API,2025-12-18T04:45:05.594090 +AZURE,centralus,Standard_E96ps_v6,reserved_3y,NA,1.681735,USD,Azure Retail Prices API,2025-12-18T04:45:05.594093 +AZURE,centralus,Standard_E96ps_v6,spot,NA,0.923369,USD,Azure Retail Prices API,2025-12-18T04:45:04.012098 +AZURE,centralus,Standard_E96s_v5,on_demand,NA,6.834,USD,Azure Retail Prices API,2025-12-18T04:45:04.015201 +AZURE,centralus,Standard_E96s_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:05.594459 +AZURE,centralus,Standard_E96s_v5,reserved_3y,NA,2.237747,USD,Azure Retail Prices API,2025-12-18T04:45:05.594462 +AZURE,centralus,Standard_E96s_v5,spot,NA,1.459059,USD,Azure Retail Prices API,2025-12-18T04:45:04.015464 +AZURE,centralus,Standard_EC16ads_v5,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:04.016002 +AZURE,centralus,Standard_EC16ads_v5,reserved_1y,NA,0.838356,USD,Azure Retail Prices API,2025-12-18T04:45:05.594891 +AZURE,centralus,Standard_EC16ads_v5,reserved_3y,NA,0.628805,USD,Azure Retail Prices API,2025-12-18T04:45:05.594894 +AZURE,centralus,Standard_EC16ads_v5,spot,NA,0.19761,USD,Azure Retail Prices API,2025-12-18T04:45:04.011829 +AZURE,centralus,Standard_EC16ads_v6,on_demand,NA,1.312,USD,Azure Retail Prices API,2025-12-18T04:45:04.012589 +AZURE,centralus,Standard_EC16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:45:05.593762 +AZURE,centralus,Standard_EC16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:45:05.593765 +AZURE,centralus,Standard_EC16ads_v6,spot,NA,0.214643,USD,Azure Retail Prices API,2025-12-18T04:45:04.015653 +AZURE,centralus,Standard_EC16as_v5,on_demand,NA,1.022,USD,Azure Retail Prices API,2025-12-18T04:45:04.015096 +AZURE,centralus,Standard_EC16as_v5,reserved_1y,NA,0.723174,USD,Azure Retail Prices API,2025-12-18T04:45:05.594375 +AZURE,centralus,Standard_EC16as_v5,reserved_3y,NA,0.54239,USD,Azure Retail Prices API,2025-12-18T04:45:05.594380 +AZURE,centralus,Standard_EC16as_v5,spot,NA,0.17047,USD,Azure Retail Prices API,2025-12-18T04:45:04.014727 +AZURE,centralus,Standard_EC16as_v6,on_demand,NA,1.078,USD,Azure Retail Prices API,2025-12-18T04:45:04.016194 +AZURE,centralus,Standard_EC16as_v6,reserved_1y,NA,0.562671,USD,Azure Retail Prices API,2025-12-18T04:45:05.594974 +AZURE,centralus,Standard_EC16as_v6,reserved_3y,NA,0.362367,USD,Azure Retail Prices API,2025-12-18T04:45:05.594977 +AZURE,centralus,Standard_EC16as_v6,spot,NA,0.176253,USD,Azure Retail Prices API,2025-12-18T04:45:04.012191 +AZURE,centralus,Standard_EC20ads_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:04.015183 +AZURE,centralus,Standard_EC20ads_v5,reserved_1y,NA,1.047945,USD,Azure Retail Prices API,2025-12-18T04:45:05.594448 +AZURE,centralus,Standard_EC20ads_v5,reserved_3y,NA,0.785997,USD,Azure Retail Prices API,2025-12-18T04:45:05.594450 +AZURE,centralus,Standard_EC20ads_v5,spot,NA,0.247012,USD,Azure Retail Prices API,2025-12-18T04:45:04.014814 +AZURE,centralus,Standard_EC20as_v5,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:45:04.015090 +AZURE,centralus,Standard_EC20as_v5,reserved_1y,NA,0.903995,USD,Azure Retail Prices API,2025-12-18T04:45:05.594366 +AZURE,centralus,Standard_EC20as_v5,reserved_3y,NA,0.678006,USD,Azure Retail Prices API,2025-12-18T04:45:05.594371 +AZURE,centralus,Standard_EC20as_v5,spot,NA,0.213004,USD,Azure Retail Prices API,2025-12-18T04:45:04.015021 +AZURE,centralus,Standard_EC2ads_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:45:04.014766 +AZURE,centralus,Standard_EC2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:45:05.594232 +AZURE,centralus,Standard_EC2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:45:05.594235 +AZURE,centralus,Standard_EC2ads_v6,spot,NA,0.026781,USD,Azure Retail Prices API,2025-12-18T04:45:04.014671 +AZURE,centralus,Standard_EC2as_v6,on_demand,NA,0.135,USD,Azure Retail Prices API,2025-12-18T04:45:04.014039 +AZURE,centralus,Standard_EC2as_v6,reserved_1y,NA,0.07032,USD,Azure Retail Prices API,2025-12-18T04:45:05.593977 +AZURE,centralus,Standard_EC2as_v6,reserved_3y,NA,0.045282,USD,Azure Retail Prices API,2025-12-18T04:45:05.593980 +AZURE,centralus,Standard_EC2as_v6,spot,NA,0.021978,USD,Azure Retail Prices API,2025-12-18T04:45:04.011686 +AZURE,centralus,Standard_EC32ads_v5,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:04.013998 +AZURE,centralus,Standard_EC32ads_v5,reserved_1y,NA,1.676826,USD,Azure Retail Prices API,2025-12-18T04:45:05.593937 +AZURE,centralus,Standard_EC32ads_v5,reserved_3y,NA,1.25761,USD,Azure Retail Prices API,2025-12-18T04:45:05.593940 +AZURE,centralus,Standard_EC32ads_v5,spot,NA,0.395219,USD,Azure Retail Prices API,2025-12-18T04:45:04.011704 +AZURE,centralus,Standard_EC32ads_v6,on_demand,NA,2.624,USD,Azure Retail Prices API,2025-12-18T04:45:04.015085 +AZURE,centralus,Standard_EC32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:45:05.594357 +AZURE,centralus,Standard_EC32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:45:05.594362 +AZURE,centralus,Standard_EC32ads_v6,spot,NA,0.429286,USD,Azure Retail Prices API,2025-12-18T04:45:04.014431 +AZURE,centralus,Standard_EC32as_v5,on_demand,NA,2.043,USD,Azure Retail Prices API,2025-12-18T04:45:04.012135 +AZURE,centralus,Standard_EC32as_v5,reserved_1y,NA,1.446347,USD,Azure Retail Prices API,2025-12-18T04:45:05.593598 +AZURE,centralus,Standard_EC32as_v5,reserved_3y,NA,1.084817,USD,Azure Retail Prices API,2025-12-18T04:45:05.593601 +AZURE,centralus,Standard_EC32as_v5,spot,NA,0.340977,USD,Azure Retail Prices API,2025-12-18T04:45:04.012955 +AZURE,centralus,Standard_EC32as_v6,on_demand,NA,2.157,USD,Azure Retail Prices API,2025-12-18T04:45:04.015138 +AZURE,centralus,Standard_EC32as_v6,reserved_1y,NA,1.125228,USD,Azure Retail Prices API,2025-12-18T04:45:05.594413 +AZURE,centralus,Standard_EC32as_v6,reserved_3y,NA,0.724734,USD,Azure Retail Prices API,2025-12-18T04:45:05.594416 +AZURE,centralus,Standard_EC32as_v6,spot,NA,0.352238,USD,Azure Retail Prices API,2025-12-18T04:45:04.015126 +AZURE,centralus,Standard_EC48ads_v5,on_demand,NA,3.553,USD,Azure Retail Prices API,2025-12-18T04:45:04.014493 +AZURE,centralus,Standard_EC48ads_v5,reserved_1y,NA,2.515183,USD,Azure Retail Prices API,2025-12-18T04:45:05.594151 +AZURE,centralus,Standard_EC48ads_v5,reserved_3y,NA,1.886416,USD,Azure Retail Prices API,2025-12-18T04:45:05.594154 +AZURE,centralus,Standard_EC48ads_v5,spot,NA,0.59264,USD,Azure Retail Prices API,2025-12-18T04:45:04.012516 +AZURE,centralus,Standard_EC48ads_v6,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:45:04.015984 +AZURE,centralus,Standard_EC48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:45:05.594879 +AZURE,centralus,Standard_EC48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:45:05.594882 +AZURE,centralus,Standard_EC48ads_v6,spot,NA,0.64393,USD,Azure Retail Prices API,2025-12-18T04:45:04.014831 +AZURE,centralus,Standard_EC48as_v5,on_demand,NA,3.065,USD,Azure Retail Prices API,2025-12-18T04:45:04.015269 +AZURE,centralus,Standard_EC48as_v5,reserved_1y,NA,2.169635,USD,Azure Retail Prices API,2025-12-18T04:45:05.594511 +AZURE,centralus,Standard_EC48as_v5,reserved_3y,NA,1.627207,USD,Azure Retail Prices API,2025-12-18T04:45:05.594514 +AZURE,centralus,Standard_EC48as_v5,spot,NA,0.511242,USD,Azure Retail Prices API,2025-12-18T04:45:04.014809 +AZURE,centralus,Standard_EC48as_v6,on_demand,NA,3.235,USD,Azure Retail Prices API,2025-12-18T04:45:04.011753 +AZURE,centralus,Standard_EC48as_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:45:05.593376 +AZURE,centralus,Standard_EC48as_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:45:05.593379 +AZURE,centralus,Standard_EC48as_v6,spot,NA,0.528599,USD,Azure Retail Prices API,2025-12-18T04:45:04.015358 +AZURE,centralus,Standard_EC4ads_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:04.015927 +AZURE,centralus,Standard_EC4ads_v5,reserved_1y,NA,0.209589,USD,Azure Retail Prices API,2025-12-18T04:45:05.594855 +AZURE,centralus,Standard_EC4ads_v5,reserved_3y,NA,0.157192,USD,Azure Retail Prices API,2025-12-18T04:45:05.594858 +AZURE,centralus,Standard_EC4ads_v5,spot,NA,0.049402,USD,Azure Retail Prices API,2025-12-18T04:45:04.014890 +AZURE,centralus,Standard_EC4ads_v6,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:45:04.015602 +AZURE,centralus,Standard_EC4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:45:05.594656 +AZURE,centralus,Standard_EC4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:45:05.594659 +AZURE,centralus,Standard_EC4ads_v6,spot,NA,0.053562,USD,Azure Retail Prices API,2025-12-18T04:45:04.014528 +AZURE,centralus,Standard_EC4as_v5,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:45:04.012979 +AZURE,centralus,Standard_EC4as_v5,reserved_1y,NA,0.180822,USD,Azure Retail Prices API,2025-12-18T04:45:05.593899 +AZURE,centralus,Standard_EC4as_v5,reserved_3y,NA,0.135616,USD,Azure Retail Prices API,2025-12-18T04:45:05.593902 +AZURE,centralus,Standard_EC4as_v5,spot,NA,0.04261,USD,Azure Retail Prices API,2025-12-18T04:45:04.016085 +AZURE,centralus,Standard_EC4as_v6,on_demand,NA,0.27,USD,Azure Retail Prices API,2025-12-18T04:45:04.014051 +AZURE,centralus,Standard_EC4as_v6,reserved_1y,NA,0.140639,USD,Azure Retail Prices API,2025-12-18T04:45:05.593988 +AZURE,centralus,Standard_EC4as_v6,reserved_3y,NA,0.090601,USD,Azure Retail Prices API,2025-12-18T04:45:05.593991 +AZURE,centralus,Standard_EC4as_v6,spot,NA,0.043956,USD,Azure Retail Prices API,2025-12-18T04:45:04.015553 +AZURE,centralus,Standard_EC64ads_v5,on_demand,NA,4.737,USD,Azure Retail Prices API,2025-12-18T04:45:04.015335 +AZURE,centralus,Standard_EC64ads_v5,reserved_1y,NA,3.353653,USD,Azure Retail Prices API,2025-12-18T04:45:05.594539 +AZURE,centralus,Standard_EC64ads_v5,reserved_3y,NA,2.515183,USD,Azure Retail Prices API,2025-12-18T04:45:05.594542 +AZURE,centralus,Standard_EC64ads_v5,spot,NA,0.790605,USD,Azure Retail Prices API,2025-12-18T04:45:04.011731 +AZURE,centralus,Standard_EC64ads_v6,on_demand,NA,5.248,USD,Azure Retail Prices API,2025-12-18T04:45:04.015621 +AZURE,centralus,Standard_EC64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:45:05.594673 +AZURE,centralus,Standard_EC64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:45:05.594676 +AZURE,centralus,Standard_EC64ads_v6,spot,NA,0.858573,USD,Azure Retail Prices API,2025-12-18T04:45:04.015878 +AZURE,centralus,Standard_EC64as_v5,on_demand,NA,4.086,USD,Azure Retail Prices API,2025-12-18T04:45:04.014635 +AZURE,centralus,Standard_EC64as_v5,reserved_1y,NA,2.892808,USD,Azure Retail Prices API,2025-12-18T04:45:05.594200 +AZURE,centralus,Standard_EC64as_v5,reserved_3y,NA,2.169597,USD,Azure Retail Prices API,2025-12-18T04:45:05.594203 +AZURE,centralus,Standard_EC64as_v5,spot,NA,0.681953,USD,Azure Retail Prices API,2025-12-18T04:45:04.015275 +AZURE,centralus,Standard_EC64as_v6,on_demand,NA,4.314,USD,Azure Retail Prices API,2025-12-18T04:45:04.015329 +AZURE,centralus,Standard_EC64as_v6,reserved_1y,NA,2.250457,USD,Azure Retail Prices API,2025-12-18T04:45:05.594534 +AZURE,centralus,Standard_EC64as_v6,reserved_3y,NA,1.449467,USD,Azure Retail Prices API,2025-12-18T04:45:05.594537 +AZURE,centralus,Standard_EC64as_v6,spot,NA,0.704476,USD,Azure Retail Prices API,2025-12-18T04:45:04.015583 +AZURE,centralus,Standard_EC8ads_v5,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:04.015252 +AZURE,centralus,Standard_EC8ads_v5,reserved_1y,NA,0.419178,USD,Azure Retail Prices API,2025-12-18T04:45:05.594487 +AZURE,centralus,Standard_EC8ads_v5,reserved_3y,NA,0.314384,USD,Azure Retail Prices API,2025-12-18T04:45:05.594490 +AZURE,centralus,Standard_EC8ads_v5,spot,NA,0.098805,USD,Azure Retail Prices API,2025-12-18T04:45:04.012749 +AZURE,centralus,Standard_EC8ads_v6,on_demand,NA,0.656,USD,Azure Retail Prices API,2025-12-18T04:45:04.013058 +AZURE,centralus,Standard_EC8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:45:05.593926 +AZURE,centralus,Standard_EC8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:45:05.593929 +AZURE,centralus,Standard_EC8ads_v6,spot,NA,0.107322,USD,Azure Retail Prices API,2025-12-18T04:45:04.011630 +AZURE,centralus,Standard_EC8as_v5,on_demand,NA,0.511,USD,Azure Retail Prices API,2025-12-18T04:45:04.011952 +AZURE,centralus,Standard_EC8as_v5,reserved_1y,NA,0.361644,USD,Azure Retail Prices API,2025-12-18T04:45:05.593469 +AZURE,centralus,Standard_EC8as_v5,reserved_3y,NA,0.271195,USD,Azure Retail Prices API,2025-12-18T04:45:05.593472 +AZURE,centralus,Standard_EC8as_v5,spot,NA,0.085235,USD,Azure Retail Prices API,2025-12-18T04:45:04.015287 +AZURE,centralus,Standard_EC8as_v6,on_demand,NA,0.539,USD,Azure Retail Prices API,2025-12-18T04:45:04.015902 +AZURE,centralus,Standard_EC8as_v6,reserved_1y,NA,0.281279,USD,Azure Retail Prices API,2025-12-18T04:45:05.594850 +AZURE,centralus,Standard_EC8as_v6,reserved_3y,NA,0.181202,USD,Azure Retail Prices API,2025-12-18T04:45:05.594852 +AZURE,centralus,Standard_EC8as_v6,spot,NA,0.088126,USD,Azure Retail Prices API,2025-12-18T04:45:04.015026 +AZURE,centralus,Standard_EC96ads_v5,on_demand,NA,7.105,USD,Azure Retail Prices API,2025-12-18T04:45:04.015608 +AZURE,centralus,Standard_EC96ads_v5,reserved_1y,NA,5.030365,USD,Azure Retail Prices API,2025-12-18T04:45:05.594662 +AZURE,centralus,Standard_EC96ads_v5,reserved_3y,NA,3.772793,USD,Azure Retail Prices API,2025-12-18T04:45:05.594665 +AZURE,centralus,Standard_EC96ads_v5,spot,NA,1.185824,USD,Azure Retail Prices API,2025-12-18T04:45:04.014351 +AZURE,centralus,Standard_EC96ads_v6,on_demand,NA,7.872,USD,Azure Retail Prices API,2025-12-18T04:45:04.012247 +AZURE,centralus,Standard_EC96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:45:05.593678 +AZURE,centralus,Standard_EC96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:45:05.593681 +AZURE,centralus,Standard_EC96ads_v6,spot,NA,1.287859,USD,Azure Retail Prices API,2025-12-18T04:45:04.014554 +AZURE,centralus,Standard_EC96as_v5,on_demand,NA,6.129,USD,Azure Retail Prices API,2025-12-18T04:45:04.011879 +AZURE,centralus,Standard_EC96as_v5,reserved_1y,NA,4.339155,USD,Azure Retail Prices API,2025-12-18T04:45:05.593436 +AZURE,centralus,Standard_EC96as_v5,reserved_3y,NA,3.254414,USD,Azure Retail Prices API,2025-12-18T04:45:05.593439 +AZURE,centralus,Standard_EC96as_v5,spot,NA,1.02293,USD,Azure Retail Prices API,2025-12-18T04:45:04.012075 +AZURE,centralus,Standard_EC96as_v6,on_demand,NA,6.47,USD,Azure Retail Prices API,2025-12-18T04:45:04.012180 +AZURE,centralus,Standard_EC96as_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:45:05.593637 +AZURE,centralus,Standard_EC96as_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:45:05.593640 +AZURE,centralus,Standard_EC96as_v6,spot,NA,1.057198,USD,Azure Retail Prices API,2025-12-18T04:45:04.014629 +AZURE,centralus,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379306 +AZURE,centralus,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379315 +AZURE,centralus,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379319 +AZURE,centralus,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379310 +AZURE,centralus,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381616 +AZURE,centralus,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381625 +AZURE,centralus,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381629 +AZURE,centralus,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381621 +AZURE,centralus,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384315 +AZURE,centralus,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384329 +AZURE,centralus,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384333 +AZURE,centralus,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384322 +AZURE,centralus,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385084 +AZURE,centralus,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385094 +AZURE,centralus,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385101 +AZURE,centralus,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385089 +AZURE,centralus,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377676 +AZURE,centralus,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377685 +AZURE,centralus,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377689 +AZURE,centralus,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377681 +AZURE,centralus,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385915 +AZURE,centralus,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385923 +AZURE,centralus,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385927 +AZURE,centralus,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385919 +AZURE,centralus,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380064 +AZURE,centralus,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380073 +AZURE,centralus,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380077 +AZURE,centralus,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380069 +AZURE,centralus,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382371 +AZURE,centralus,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382380 +AZURE,centralus,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382384 +AZURE,centralus,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382375 +AZURE,centralus,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386703 +AZURE,centralus,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386711 +AZURE,centralus,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386715 +AZURE,centralus,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386707 +AZURE,centralus,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387484 +AZURE,centralus,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387492 +AZURE,centralus,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387497 +AZURE,centralus,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387488 +AZURE,centralus,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378493 +AZURE,centralus,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378502 +AZURE,centralus,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378506 +AZURE,centralus,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378498 +AZURE,centralus,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380771 +AZURE,centralus,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380780 +AZURE,centralus,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380784 +AZURE,centralus,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380775 +AZURE,centralus,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383504 +AZURE,centralus,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383514 +AZURE,centralus,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383518 +AZURE,centralus,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383508 +AZURE,centralus,Standard_L16as_v3,on_demand,NA,1.41,USD,Azure Retail Prices API,2025-12-18T04:45:04.014045 +AZURE,centralus,Standard_L16as_v3,reserved_1y,NA,0.798744,USD,Azure Retail Prices API,2025-12-18T04:45:05.593983 +AZURE,centralus,Standard_L16as_v3,reserved_3y,NA,0.524163,USD,Azure Retail Prices API,2025-12-18T04:45:05.593985 +AZURE,centralus,Standard_L16as_v3,spot,NA,0.230394,USD,Azure Retail Prices API,2025-12-18T04:45:04.015541 +AZURE,centralus,Standard_L16s_v3,on_demand,NA,1.573,USD,Azure Retail Prices API,2025-12-18T04:45:04.011742 +AZURE,centralus,Standard_L16s_v3,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:45:05.593371 +AZURE,centralus,Standard_L16s_v3,reserved_3y,NA,0.584627,USD,Azure Retail Prices API,2025-12-18T04:45:05.593373 +AZURE,centralus,Standard_L16s_v3,spot,NA,0.335993,USD,Azure Retail Prices API,2025-12-18T04:45:04.011901 +AZURE,centralus,Standard_L32as_v3,on_demand,NA,2.82,USD,Azure Retail Prices API,2025-12-18T04:45:04.015470 +AZURE,centralus,Standard_L32as_v3,reserved_1y,NA,1.597489,USD,Azure Retail Prices API,2025-12-18T04:45:05.594606 +AZURE,centralus,Standard_L32as_v3,reserved_3y,NA,1.048326,USD,Azure Retail Prices API,2025-12-18T04:45:05.594609 +AZURE,centralus,Standard_L32as_v3,spot,NA,0.460788,USD,Azure Retail Prices API,2025-12-18T04:45:04.014998 +AZURE,centralus,Standard_L32s_v3,on_demand,NA,3.146,USD,Azure Retail Prices API,2025-12-18T04:45:04.014171 +AZURE,centralus,Standard_L32s_v3,reserved_1y,NA,1.781735,USD,Azure Retail Prices API,2025-12-18T04:45:05.594067 +AZURE,centralus,Standard_L32s_v3,reserved_3y,NA,1.169292,USD,Azure Retail Prices API,2025-12-18T04:45:05.594070 +AZURE,centralus,Standard_L32s_v3,spot,NA,0.671986,USD,Azure Retail Prices API,2025-12-18T04:45:04.015909 +AZURE,centralus,Standard_L48as_v3,on_demand,NA,4.231,USD,Azure Retail Prices API,2025-12-18T04:45:04.011770 +AZURE,centralus,Standard_L48as_v3,reserved_1y,NA,2.396119,USD,Azure Retail Prices API,2025-12-18T04:45:05.593389 +AZURE,centralus,Standard_L48as_v3,reserved_3y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:45:05.593392 +AZURE,centralus,Standard_L48as_v3,spot,NA,0.691345,USD,Azure Retail Prices API,2025-12-18T04:45:04.015633 +AZURE,centralus,Standard_L48s_v3,on_demand,NA,4.719,USD,Azure Retail Prices API,2025-12-18T04:45:04.011941 +AZURE,centralus,Standard_L48s_v3,reserved_1y,NA,2.672603,USD,Azure Retail Prices API,2025-12-18T04:45:05.593464 +AZURE,centralus,Standard_L48s_v3,reserved_3y,NA,1.753919,USD,Azure Retail Prices API,2025-12-18T04:45:05.593466 +AZURE,centralus,Standard_L48s_v3,spot,NA,1.007978,USD,Azure Retail Prices API,2025-12-18T04:45:04.014645 +AZURE,centralus,Standard_L64as_v3,on_demand,NA,5.641,USD,Azure Retail Prices API,2025-12-18T04:45:04.014460 +AZURE,centralus,Standard_L64as_v3,reserved_1y,NA,3.194863,USD,Azure Retail Prices API,2025-12-18T04:45:05.594135 +AZURE,centralus,Standard_L64as_v3,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:45:05.594137 +AZURE,centralus,Standard_L64as_v3,spot,NA,0.921739,USD,Azure Retail Prices API,2025-12-18T04:45:04.014895 +AZURE,centralus,Standard_L64s_v3,on_demand,NA,6.292,USD,Azure Retail Prices API,2025-12-18T04:45:04.015509 +AZURE,centralus,Standard_L64s_v3,reserved_1y,NA,3.56347,USD,Azure Retail Prices API,2025-12-18T04:45:05.594628 +AZURE,centralus,Standard_L64s_v3,reserved_3y,NA,2.338546,USD,Azure Retail Prices API,2025-12-18T04:45:05.594631 +AZURE,centralus,Standard_L64s_v3,spot,NA,1.343971,USD,Azure Retail Prices API,2025-12-18T04:45:04.015235 +AZURE,centralus,Standard_L80as_v3,on_demand,NA,7.051,USD,Azure Retail Prices API,2025-12-18T04:45:04.012201 +AZURE,centralus,Standard_L80as_v3,reserved_1y,NA,3.993607,USD,Azure Retail Prices API,2025-12-18T04:45:05.593655 +AZURE,centralus,Standard_L80as_v3,reserved_3y,NA,2.620814,USD,Azure Retail Prices API,2025-12-18T04:45:05.593657 +AZURE,centralus,Standard_L80as_v3,spot,NA,1.152133,USD,Azure Retail Prices API,2025-12-18T04:45:04.015884 +AZURE,centralus,Standard_L80s_v3,on_demand,NA,7.865,USD,Azure Retail Prices API,2025-12-18T04:45:04.012690 +AZURE,centralus,Standard_L80s_v3,reserved_1y,NA,4.454452,USD,Azure Retail Prices API,2025-12-18T04:45:05.593801 +AZURE,centralus,Standard_L80s_v3,reserved_3y,NA,2.923212,USD,Azure Retail Prices API,2025-12-18T04:45:05.593803 +AZURE,centralus,Standard_L80s_v3,spot,NA,1.679964,USD,Azure Retail Prices API,2025-12-18T04:45:04.015299 +AZURE,centralus,Standard_L8as_v3,on_demand,NA,0.705,USD,Azure Retail Prices API,2025-12-18T04:45:04.016163 +AZURE,centralus,Standard_L8as_v3,reserved_1y,NA,0.399315,USD,Azure Retail Prices API,2025-12-18T04:45:05.594958 +AZURE,centralus,Standard_L8as_v3,reserved_3y,NA,0.262062,USD,Azure Retail Prices API,2025-12-18T04:45:05.594961 +AZURE,centralus,Standard_L8as_v3,spot,NA,0.115197,USD,Azure Retail Prices API,2025-12-18T04:45:04.014559 +AZURE,centralus,Standard_L8s_v3,on_demand,NA,0.786,USD,Azure Retail Prices API,2025-12-18T04:45:04.014056 +AZURE,centralus,Standard_L8s_v3,reserved_1y,NA,0.445434,USD,Azure Retail Prices API,2025-12-18T04:45:05.593994 +AZURE,centralus,Standard_L8s_v3,reserved_3y,NA,0.292314,USD,Azure Retail Prices API,2025-12-18T04:45:05.593997 +AZURE,centralus,Standard_L8s_v3,spot,NA,0.16789,USD,Azure Retail Prices API,2025-12-18T04:45:04.016213 +AZURE,centralus,Standard_NC12s_v3,on_demand,NA,6.916,USD,Azure Retail Prices API,2025-12-18T04:45:04.012054 +AZURE,centralus,Standard_NC12s_v3,spot,NA,1.278077,USD,Azure Retail Prices API,2025-12-18T04:45:04.014165 +AZURE,centralus,Standard_NC16as_T4_v3,on_demand,NA,1.36,USD,Azure Retail Prices API,2025-12-18T04:45:04.015394 +AZURE,centralus,Standard_NC16as_T4_v3,reserved_1y,NA,0.802397,USD,Azure Retail Prices API,2025-12-18T04:45:05.594573 +AZURE,centralus,Standard_NC16as_T4_v3,reserved_3y,NA,0.516781,USD,Azure Retail Prices API,2025-12-18T04:45:05.594576 +AZURE,centralus,Standard_NC16as_T4_v3,spot,NA,0.501024,USD,Azure Retail Prices API,2025-12-18T04:45:04.016122 +AZURE,centralus,Standard_NC24ads_A100_v4,on_demand,NA,4.15,USD,Azure Retail Prices API,2025-12-18T04:45:04.012622 +AZURE,centralus,Standard_NC24ads_A100_v4,reserved_1y,NA,2.713128,USD,Azure Retail Prices API,2025-12-18T04:45:05.593778 +AZURE,centralus,Standard_NC24ads_A100_v4,reserved_3y,NA,1.540259,USD,Azure Retail Prices API,2025-12-18T04:45:05.593781 +AZURE,centralus,Standard_NC24ads_A100_v4,spot,NA,1.061155,USD,Azure Retail Prices API,2025-12-18T04:45:04.014651 +AZURE,centralus,Standard_NC24s_v3,on_demand,NA,13.831,USD,Azure Retail Prices API,2025-12-18T04:45:04.014211 +AZURE,centralus,Standard_NC24s_v3,spot,NA,2.555969,USD,Azure Retail Prices API,2025-12-18T04:45:04.015815 +AZURE,centralus,Standard_NC40ads_H100_v5,on_demand,NA,8.585,USD,Azure Retail Prices API,2025-12-18T04:45:04.014771 +AZURE,centralus,Standard_NC40ads_H100_v5,reserved_1y,NA,6.438699,USD,Azure Retail Prices API,2025-12-18T04:45:05.594238 +AZURE,centralus,Standard_NC40ads_H100_v5,reserved_3y,NA,4.721766,USD,Azure Retail Prices API,2025-12-18T04:45:05.594241 +AZURE,centralus,Standard_NC40ads_H100_v5,spot,NA,1.586508,USD,Azure Retail Prices API,2025-12-18T04:45:04.015972 +AZURE,centralus,Standard_NC48ads_A100_v4,on_demand,NA,8.301,USD,Azure Retail Prices API,2025-12-18T04:45:04.012330 +AZURE,centralus,Standard_NC48ads_A100_v4,reserved_1y,NA,5.42637,USD,Azure Retail Prices API,2025-12-18T04:45:05.593723 +AZURE,centralus,Standard_NC48ads_A100_v4,reserved_3y,NA,3.080479,USD,Azure Retail Prices API,2025-12-18T04:45:05.593726 +AZURE,centralus,Standard_NC48ads_A100_v4,spot,NA,2.122566,USD,Azure Retail Prices API,2025-12-18T04:45:04.012776 +AZURE,centralus,Standard_NC4as_T4_v3,on_demand,NA,0.594,USD,Azure Retail Prices API,2025-12-18T04:45:04.016207 +AZURE,centralus,Standard_NC4as_T4_v3,reserved_1y,NA,0.350685,USD,Azure Retail Prices API,2025-12-18T04:45:05.594980 +AZURE,centralus,Standard_NC4as_T4_v3,reserved_3y,NA,0.225875,USD,Azure Retail Prices API,2025-12-18T04:45:05.594983 +AZURE,centralus,Standard_NC4as_T4_v3,spot,NA,0.21883,USD,Azure Retail Prices API,2025-12-18T04:45:04.011906 +AZURE,centralus,Standard_NC64as_T4_v3,on_demand,NA,4.907,USD,Azure Retail Prices API,2025-12-18T04:45:04.014511 +AZURE,centralus,Standard_NC64as_T4_v3,reserved_1y,NA,2.895205,USD,Azure Retail Prices API,2025-12-18T04:45:05.594157 +AZURE,centralus,Standard_NC64as_T4_v3,reserved_3y,NA,1.864726,USD,Azure Retail Prices API,2025-12-18T04:45:05.594160 +AZURE,centralus,Standard_NC64as_T4_v3,spot,NA,1.807739,USD,Azure Retail Prices API,2025-12-18T04:45:04.014564 +AZURE,centralus,Standard_NC6s_v3,on_demand,NA,3.458,USD,Azure Retail Prices API,2025-12-18T04:45:04.014753 +AZURE,centralus,Standard_NC6s_v3,spot,NA,0.639038,USD,Azure Retail Prices API,2025-12-18T04:45:04.011931 +AZURE,centralus,Standard_NC8as_T4_v3,on_demand,NA,0.849,USD,Azure Retail Prices API,2025-12-18T04:45:04.011608 +AZURE,centralus,Standard_NC8as_T4_v3,reserved_1y,NA,0.500913,USD,Azure Retail Prices API,2025-12-18T04:45:05.593276 +AZURE,centralus,Standard_NC8as_T4_v3,reserved_3y,NA,0.322641,USD,Azure Retail Prices API,2025-12-18T04:45:05.593280 +AZURE,centralus,Standard_NC8as_T4_v3,spot,NA,0.312772,USD,Azure Retail Prices API,2025-12-18T04:45:04.014182 +AZURE,centralus,Standard_NC96ads_A100_v4,on_demand,NA,16.602,USD,Azure Retail Prices API,2025-12-18T04:45:04.014397 +AZURE,centralus,Standard_NC96ads_A100_v4,reserved_1y,NA,10.85274,USD,Azure Retail Prices API,2025-12-18T04:45:05.594101 +AZURE,centralus,Standard_NC96ads_A100_v4,reserved_3y,NA,6.160997,USD,Azure Retail Prices API,2025-12-18T04:45:05.594104 +AZURE,centralus,Standard_NC96ads_A100_v4,spot,NA,4.245131,USD,Azure Retail Prices API,2025-12-18T04:45:04.012212 +AZURE,centralus,Standard_ND96isr_H100_v5,on_demand,NA,120.934,USD,Azure Retail Prices API,2025-12-18T04:45:04.012146 +AZURE,centralus,Standard_ND96isr_H100_v5,reserved_1y,NA,77.397489,USD,Azure Retail Prices API,2025-12-18T04:45:05.593610 +AZURE,centralus,Standard_ND96isr_H100_v5,reserved_3y,NA,53.08984,USD,Azure Retail Prices API,2025-12-18T04:45:05.593613 +AZURE,centralus,Standard_ND96isr_H100_v5,spot,NA,22.348603,USD,Azure Retail Prices API,2025-12-18T04:45:04.012351 +AZURE,centralus,Standard_NV36adms_A10_v5,on_demand,NA,5.56,USD,Azure Retail Prices API,2025-12-18T04:45:04.012815 +AZURE,centralus,Standard_NV36adms_A10_v5,reserved_1y,NA,3.558105,USD,Azure Retail Prices API,2025-12-18T04:45:05.593839 +AZURE,centralus,Standard_NV36adms_A10_v5,reserved_3y,NA,2.446233,USD,Azure Retail Prices API,2025-12-18T04:45:05.593841 +AZURE,centralus,Standard_NV36adms_A10_v5,spot,NA,1.027488,USD,Azure Retail Prices API,2025-12-18T04:45:04.015896 +AZURE,centralus,Standard_NV36ads_A10_v5,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:45:04.014021 +AZURE,centralus,Standard_NV36ads_A10_v5,reserved_1y,NA,2.519064,USD,Azure Retail Prices API,2025-12-18T04:45:05.593959 +AZURE,centralus,Standard_NV36ads_A10_v5,reserved_3y,NA,1.731849,USD,Azure Retail Prices API,2025-12-18T04:45:05.593962 +AZURE,centralus,Standard_NV36ads_A10_v5,spot,NA,0.727373,USD,Azure Retail Prices API,2025-12-18T04:45:04.016034 +AZURE,centralus,Standard_NV72ads_A10_v5,on_demand,NA,8.02,USD,Azure Retail Prices API,2025-12-18T04:45:04.012032 +AZURE,centralus,Standard_NV72ads_A10_v5,reserved_1y,NA,5.132534,USD,Azure Retail Prices API,2025-12-18T04:45:05.593519 +AZURE,centralus,Standard_NV72ads_A10_v5,reserved_3y,NA,3.528615,USD,Azure Retail Prices API,2025-12-18T04:45:05.593521 +AZURE,centralus,Standard_NV72ads_A10_v5,spot,NA,1.482096,USD,Azure Retail Prices API,2025-12-18T04:45:04.014925 +AZURE,eastasia,Standard_D128ds_v6,on_demand,NA,10.963,USD,Azure Retail Prices API,2025-12-18T04:46:14.918072 +AZURE,eastasia,Standard_D128ds_v6,reserved_1y,NA,6.797146,USD,Azure Retail Prices API,2025-12-18T04:46:16.397320 +AZURE,eastasia,Standard_D128ds_v6,reserved_3y,NA,4.275647,USD,Azure Retail Prices API,2025-12-18T04:46:16.397325 +AZURE,eastasia,Standard_D128ds_v6,spot,NA,2.025962,USD,Azure Retail Prices API,2025-12-18T04:46:14.920149 +AZURE,eastasia,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488489 +AZURE,eastasia,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488497 +AZURE,eastasia,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488501 +AZURE,eastasia,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488493 +AZURE,eastasia,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489269 +AZURE,eastasia,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489277 +AZURE,eastasia,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489281 +AZURE,eastasia,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489273 +AZURE,eastasia,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490366 +AZURE,eastasia,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490374 +AZURE,eastasia,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490379 +AZURE,eastasia,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490370 +AZURE,eastasia,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491112 +AZURE,eastasia,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491120 +AZURE,eastasia,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491125 +AZURE,eastasia,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491116 +AZURE,eastasia,Standard_D16_v3,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:46:14.918931 +AZURE,eastasia,Standard_D16_v3,reserved_1y,NA,0.608904,USD,Azure Retail Prices API,2025-12-18T04:46:16.398182 +AZURE,eastasia,Standard_D16_v3,reserved_3y,NA,0.396005,USD,Azure Retail Prices API,2025-12-18T04:46:16.398187 +AZURE,eastasia,Standard_D16_v3,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:46:14.920109 +AZURE,eastasia,Standard_D16a_v4,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:46:14.917858 +AZURE,eastasia,Standard_D16a_v4,reserved_1y,NA,0.62089,USD,Azure Retail Prices API,2025-12-18T04:46:16.397072 +AZURE,eastasia,Standard_D16a_v4,reserved_3y,NA,0.39707,USD,Azure Retail Prices API,2025-12-18T04:46:16.397077 +AZURE,eastasia,Standard_D16a_v4,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:46:14.918217 +AZURE,eastasia,Standard_D16ads_v5,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:46:14.919942 +AZURE,eastasia,Standard_D16ads_v5,reserved_1y,NA,0.670205,USD,Azure Retail Prices API,2025-12-18T04:46:16.399320 +AZURE,eastasia,Standard_D16ads_v5,reserved_3y,NA,0.431697,USD,Azure Retail Prices API,2025-12-18T04:46:16.399325 +AZURE,eastasia,Standard_D16ads_v5,spot,NA,0.209933,USD,Azure Retail Prices API,2025-12-18T04:46:14.918012 +AZURE,eastasia,Standard_D16ads_v6,on_demand,NA,1.262,USD,Azure Retail Prices API,2025-12-18T04:46:14.918001 +AZURE,eastasia,Standard_D16ads_v6,reserved_1y,NA,0.744863,USD,Azure Retail Prices API,2025-12-18T04:46:16.397255 +AZURE,eastasia,Standard_D16ads_v6,reserved_3y,NA,0.479718,USD,Azure Retail Prices API,2025-12-18T04:46:16.397261 +AZURE,eastasia,Standard_D16ads_v6,spot,NA,0.233218,USD,Azure Retail Prices API,2025-12-18T04:46:14.919579 +AZURE,eastasia,Standard_D16as_v4,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:46:14.917621 +AZURE,eastasia,Standard_D16as_v4,reserved_1y,NA,0.62089,USD,Azure Retail Prices API,2025-12-18T04:46:16.396896 +AZURE,eastasia,Standard_D16as_v4,reserved_3y,NA,0.39707,USD,Azure Retail Prices API,2025-12-18T04:46:16.396901 +AZURE,eastasia,Standard_D16as_v4,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:46:14.919801 +AZURE,eastasia,Standard_D16as_v5,on_demand,NA,0.952,USD,Azure Retail Prices API,2025-12-18T04:46:14.918949 +AZURE,eastasia,Standard_D16as_v5,reserved_1y,NA,0.561644,USD,Azure Retail Prices API,2025-12-18T04:46:16.398202 +AZURE,eastasia,Standard_D16as_v5,reserved_3y,NA,0.361758,USD,Azure Retail Prices API,2025-12-18T04:46:16.398207 +AZURE,eastasia,Standard_D16as_v5,spot,NA,0.17593,USD,Azure Retail Prices API,2025-12-18T04:46:14.919402 +AZURE,eastasia,Standard_D16d_v4,on_demand,NA,1.24,USD,Azure Retail Prices API,2025-12-18T04:46:14.920233 +AZURE,eastasia,Standard_D16d_v4,reserved_1y,NA,0.72911,USD,Azure Retail Prices API,2025-12-18T04:46:16.399553 +AZURE,eastasia,Standard_D16d_v4,reserved_3y,NA,0.466248,USD,Azure Retail Prices API,2025-12-18T04:46:16.399559 +AZURE,eastasia,Standard_D16d_v4,spot,NA,0.229152,USD,Azure Retail Prices API,2025-12-18T04:46:14.917659 +AZURE,eastasia,Standard_D16ds_v4,on_demand,NA,1.24,USD,Azure Retail Prices API,2025-12-18T04:46:14.920033 +AZURE,eastasia,Standard_D16ds_v4,reserved_1y,NA,0.72911,USD,Azure Retail Prices API,2025-12-18T04:46:16.399394 +AZURE,eastasia,Standard_D16ds_v4,reserved_3y,NA,0.466248,USD,Azure Retail Prices API,2025-12-18T04:46:16.399397 +AZURE,eastasia,Standard_D16ds_v4,spot,NA,0.229152,USD,Azure Retail Prices API,2025-12-18T04:46:14.917452 +AZURE,eastasia,Standard_D16ds_v5,on_demand,NA,1.24,USD,Azure Retail Prices API,2025-12-18T04:46:14.919301 +AZURE,eastasia,Standard_D16ds_v5,reserved_1y,NA,0.731621,USD,Azure Retail Prices API,2025-12-18T04:46:16.398637 +AZURE,eastasia,Standard_D16ds_v5,reserved_3y,NA,0.471195,USD,Azure Retail Prices API,2025-12-18T04:46:16.398643 +AZURE,eastasia,Standard_D16ds_v5,spot,NA,0.229152,USD,Azure Retail Prices API,2025-12-18T04:46:14.918657 +AZURE,eastasia,Standard_D16ds_v6,on_demand,NA,1.37,USD,Azure Retail Prices API,2025-12-18T04:46:14.918861 +AZURE,eastasia,Standard_D16ds_v6,reserved_1y,NA,0.849658,USD,Azure Retail Prices API,2025-12-18T04:46:16.398120 +AZURE,eastasia,Standard_D16ds_v6,reserved_3y,NA,0.534475,USD,Azure Retail Prices API,2025-12-18T04:46:16.398125 +AZURE,eastasia,Standard_D16ds_v6,spot,NA,0.253176,USD,Azure Retail Prices API,2025-12-18T04:46:14.918985 +AZURE,eastasia,Standard_D16pds_v6,on_demand,NA,1.011,USD,Azure Retail Prices API,2025-12-18T04:46:14.918227 +AZURE,eastasia,Standard_D16pds_v6,reserved_1y,NA,0.596575,USD,Azure Retail Prices API,2025-12-18T04:46:16.397466 +AZURE,eastasia,Standard_D16pds_v6,reserved_3y,NA,0.384247,USD,Azure Retail Prices API,2025-12-18T04:46:16.397470 +AZURE,eastasia,Standard_D16pds_v6,spot,NA,0.186833,USD,Azure Retail Prices API,2025-12-18T04:46:14.918166 +AZURE,eastasia,Standard_D16ps_v6,on_demand,NA,0.773,USD,Azure Retail Prices API,2025-12-18T04:46:14.918707 +AZURE,eastasia,Standard_D16ps_v6,reserved_1y,NA,0.455936,USD,Azure Retail Prices API,2025-12-18T04:46:16.397941 +AZURE,eastasia,Standard_D16ps_v6,reserved_3y,NA,0.293645,USD,Azure Retail Prices API,2025-12-18T04:46:16.397946 +AZURE,eastasia,Standard_D16ps_v6,spot,NA,0.14285,USD,Azure Retail Prices API,2025-12-18T04:46:14.917467 +AZURE,eastasia,Standard_D16s_v3,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:46:14.918212 +AZURE,eastasia,Standard_D16s_v3,reserved_1y,NA,0.608904,USD,Azure Retail Prices API,2025-12-18T04:46:16.397456 +AZURE,eastasia,Standard_D16s_v3,reserved_3y,NA,0.396005,USD,Azure Retail Prices API,2025-12-18T04:46:16.397461 +AZURE,eastasia,Standard_D16s_v3,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:46:14.919441 +AZURE,eastasia,Standard_D16s_v4,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:46:14.919253 +AZURE,eastasia,Standard_D16s_v4,reserved_1y,NA,0.62089,USD,Azure Retail Prices API,2025-12-18T04:46:16.398607 +AZURE,eastasia,Standard_D16s_v4,reserved_3y,NA,0.39707,USD,Azure Retail Prices API,2025-12-18T04:46:16.398612 +AZURE,eastasia,Standard_D16s_v4,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:46:14.918693 +AZURE,eastasia,Standard_D16s_v5,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:46:14.920203 +AZURE,eastasia,Standard_D16s_v5,reserved_1y,NA,0.623059,USD,Azure Retail Prices API,2025-12-18T04:46:16.399521 +AZURE,eastasia,Standard_D16s_v5,reserved_3y,NA,0.390715,USD,Azure Retail Prices API,2025-12-18T04:46:16.399527 +AZURE,eastasia,Standard_D16s_v5,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:46:14.918142 +AZURE,eastasia,Standard_D2ads_v6,on_demand,NA,0.158,USD,Azure Retail Prices API,2025-12-18T04:46:14.917889 +AZURE,eastasia,Standard_D2ads_v6,reserved_1y,NA,0.093151,USD,Azure Retail Prices API,2025-12-18T04:46:16.397103 +AZURE,eastasia,Standard_D2ads_v6,reserved_3y,NA,0.05997,USD,Azure Retail Prices API,2025-12-18T04:46:16.397108 +AZURE,eastasia,Standard_D2ads_v6,spot,NA,0.029198,USD,Azure Retail Prices API,2025-12-18T04:46:14.920271 +AZURE,eastasia,Standard_D2ds_v6,on_demand,NA,0.171,USD,Azure Retail Prices API,2025-12-18T04:46:14.918077 +AZURE,eastasia,Standard_D2ds_v6,reserved_1y,NA,0.106164,USD,Azure Retail Prices API,2025-12-18T04:46:16.397330 +AZURE,eastasia,Standard_D2ds_v6,reserved_3y,NA,0.066819,USD,Azure Retail Prices API,2025-12-18T04:46:16.397335 +AZURE,eastasia,Standard_D2ds_v6,spot,NA,0.031601,USD,Azure Retail Prices API,2025-12-18T04:46:14.919436 +AZURE,eastasia,Standard_D32_v3,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:46:14.919910 +AZURE,eastasia,Standard_D32_v3,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:46:16.399256 +AZURE,eastasia,Standard_D32_v3,reserved_3y,NA,0.792009,USD,Azure Retail Prices API,2025-12-18T04:46:16.399261 +AZURE,eastasia,Standard_D32_v3,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:46:14.920180 +AZURE,eastasia,Standard_D32a_v4,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:46:14.919624 +AZURE,eastasia,Standard_D32a_v4,reserved_1y,NA,1.241895,USD,Azure Retail Prices API,2025-12-18T04:46:16.398930 +AZURE,eastasia,Standard_D32a_v4,reserved_3y,NA,0.794102,USD,Azure Retail Prices API,2025-12-18T04:46:16.398934 +AZURE,eastasia,Standard_D32a_v4,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:46:14.917555 +AZURE,eastasia,Standard_D32ads_v5,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:14.919360 +AZURE,eastasia,Standard_D32ads_v5,reserved_1y,NA,1.340525,USD,Azure Retail Prices API,2025-12-18T04:46:16.398713 +AZURE,eastasia,Standard_D32ads_v5,reserved_3y,NA,0.863356,USD,Azure Retail Prices API,2025-12-18T04:46:16.398718 +AZURE,eastasia,Standard_D32ads_v5,spot,NA,0.419866,USD,Azure Retail Prices API,2025-12-18T04:46:14.917476 +AZURE,eastasia,Standard_D32ads_v6,on_demand,NA,2.525,USD,Azure Retail Prices API,2025-12-18T04:46:14.919707 +AZURE,eastasia,Standard_D32ads_v6,reserved_1y,NA,1.489612,USD,Azure Retail Prices API,2025-12-18T04:46:16.398990 +AZURE,eastasia,Standard_D32ads_v6,reserved_3y,NA,0.959437,USD,Azure Retail Prices API,2025-12-18T04:46:16.398995 +AZURE,eastasia,Standard_D32ads_v6,spot,NA,0.46662,USD,Azure Retail Prices API,2025-12-18T04:46:14.919272 +AZURE,eastasia,Standard_D32as_v4,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:46:14.918647 +AZURE,eastasia,Standard_D32as_v4,reserved_1y,NA,1.241895,USD,Azure Retail Prices API,2025-12-18T04:46:16.397899 +AZURE,eastasia,Standard_D32as_v4,reserved_3y,NA,0.794102,USD,Azure Retail Prices API,2025-12-18T04:46:16.397904 +AZURE,eastasia,Standard_D32as_v4,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:46:14.918830 +AZURE,eastasia,Standard_D32as_v5,on_demand,NA,1.904,USD,Azure Retail Prices API,2025-12-18T04:46:14.917447 +AZURE,eastasia,Standard_D32as_v5,reserved_1y,NA,1.123402,USD,Azure Retail Prices API,2025-12-18T04:46:16.396803 +AZURE,eastasia,Standard_D32as_v5,reserved_3y,NA,0.723516,USD,Azure Retail Prices API,2025-12-18T04:46:16.396807 +AZURE,eastasia,Standard_D32as_v5,spot,NA,0.351859,USD,Azure Retail Prices API,2025-12-18T04:46:14.919914 +AZURE,eastasia,Standard_D32d_v4,on_demand,NA,2.48,USD,Azure Retail Prices API,2025-12-18T04:46:14.918727 +AZURE,eastasia,Standard_D32d_v4,reserved_1y,NA,1.458219,USD,Azure Retail Prices API,2025-12-18T04:46:16.397963 +AZURE,eastasia,Standard_D32d_v4,reserved_3y,NA,0.932496,USD,Azure Retail Prices API,2025-12-18T04:46:16.397968 +AZURE,eastasia,Standard_D32d_v4,spot,NA,0.458304,USD,Azure Retail Prices API,2025-12-18T04:46:14.920103 +AZURE,eastasia,Standard_D32ds_v4,on_demand,NA,2.48,USD,Azure Retail Prices API,2025-12-18T04:46:14.917418 +AZURE,eastasia,Standard_D32ds_v4,reserved_1y,NA,1.458219,USD,Azure Retail Prices API,2025-12-18T04:46:16.396771 +AZURE,eastasia,Standard_D32ds_v4,reserved_3y,NA,0.932496,USD,Azure Retail Prices API,2025-12-18T04:46:16.396776 +AZURE,eastasia,Standard_D32ds_v4,spot,NA,0.458304,USD,Azure Retail Prices API,2025-12-18T04:46:14.919796 +AZURE,eastasia,Standard_D32ds_v5,on_demand,NA,2.48,USD,Azure Retail Prices API,2025-12-18T04:46:14.918712 +AZURE,eastasia,Standard_D32ds_v5,reserved_1y,NA,1.463242,USD,Azure Retail Prices API,2025-12-18T04:46:16.397952 +AZURE,eastasia,Standard_D32ds_v5,reserved_3y,NA,0.94239,USD,Azure Retail Prices API,2025-12-18T04:46:16.397957 +AZURE,eastasia,Standard_D32ds_v5,spot,NA,0.458304,USD,Azure Retail Prices API,2025-12-18T04:46:14.917566 +AZURE,eastasia,Standard_D32ds_v6,on_demand,NA,2.741,USD,Azure Retail Prices API,2025-12-18T04:46:14.919505 +AZURE,eastasia,Standard_D32ds_v6,reserved_1y,NA,1.699315,USD,Azure Retail Prices API,2025-12-18T04:46:16.398822 +AZURE,eastasia,Standard_D32ds_v6,reserved_3y,NA,1.068912,USD,Azure Retail Prices API,2025-12-18T04:46:16.398827 +AZURE,eastasia,Standard_D32ds_v6,spot,NA,0.506537,USD,Azure Retail Prices API,2025-12-18T04:46:14.919515 +AZURE,eastasia,Standard_D32pds_v6,on_demand,NA,2.022,USD,Azure Retail Prices API,2025-12-18T04:46:14.917796 +AZURE,eastasia,Standard_D32pds_v6,reserved_1y,NA,1.193265,USD,Azure Retail Prices API,2025-12-18T04:46:16.397008 +AZURE,eastasia,Standard_D32pds_v6,reserved_3y,NA,0.768493,USD,Azure Retail Prices API,2025-12-18T04:46:16.397013 +AZURE,eastasia,Standard_D32pds_v6,spot,NA,0.373666,USD,Azure Retail Prices API,2025-12-18T04:46:14.917673 +AZURE,eastasia,Standard_D32ps_v6,on_demand,NA,1.546,USD,Azure Retail Prices API,2025-12-18T04:46:14.919095 +AZURE,eastasia,Standard_D32ps_v6,reserved_1y,NA,0.911872,USD,Azure Retail Prices API,2025-12-18T04:46:16.398350 +AZURE,eastasia,Standard_D32ps_v6,reserved_3y,NA,0.587329,USD,Azure Retail Prices API,2025-12-18T04:46:16.398353 +AZURE,eastasia,Standard_D32ps_v6,spot,NA,0.285701,USD,Azure Retail Prices API,2025-12-18T04:46:14.917806 +AZURE,eastasia,Standard_D32s_v3,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:46:14.919370 +AZURE,eastasia,Standard_D32s_v3,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:46:16.398723 +AZURE,eastasia,Standard_D32s_v3,reserved_3y,NA,0.792009,USD,Azure Retail Prices API,2025-12-18T04:46:16.398728 +AZURE,eastasia,Standard_D32s_v3,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:46:14.920194 +AZURE,eastasia,Standard_D32s_v4,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:46:14.920134 +AZURE,eastasia,Standard_D32s_v4,reserved_1y,NA,1.241895,USD,Azure Retail Prices API,2025-12-18T04:46:16.399465 +AZURE,eastasia,Standard_D32s_v4,reserved_3y,NA,0.794102,USD,Azure Retail Prices API,2025-12-18T04:46:16.399471 +AZURE,eastasia,Standard_D32s_v4,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:46:14.920325 +AZURE,eastasia,Standard_D32s_v5,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:46:14.918753 +AZURE,eastasia,Standard_D32s_v5,reserved_1y,NA,1.246119,USD,Azure Retail Prices API,2025-12-18T04:46:16.397996 +AZURE,eastasia,Standard_D32s_v5,reserved_3y,NA,0.781431,USD,Azure Retail Prices API,2025-12-18T04:46:16.398001 +AZURE,eastasia,Standard_D32s_v5,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:46:14.919688 +AZURE,eastasia,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485541 +AZURE,eastasia,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485556 +AZURE,eastasia,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485564 +AZURE,eastasia,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485549 +AZURE,eastasia,Standard_D48a_v4,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:46:14.919918 +AZURE,eastasia,Standard_D48a_v4,reserved_1y,NA,1.862785,USD,Azure Retail Prices API,2025-12-18T04:46:16.399266 +AZURE,eastasia,Standard_D48a_v4,reserved_3y,NA,1.191172,USD,Azure Retail Prices API,2025-12-18T04:46:16.399271 +AZURE,eastasia,Standard_D48a_v4,spot,NA,0.585446,USD,Azure Retail Prices API,2025-12-18T04:46:14.919720 +AZURE,eastasia,Standard_D48ads_v5,on_demand,NA,5.616,USD,Azure Retail Prices API,2025-12-18T04:46:14.918360 +AZURE,eastasia,Standard_D48ads_v5,reserved_1y,NA,2.010731,USD,Azure Retail Prices API,2025-12-18T04:46:16.399330 +AZURE,eastasia,Standard_D48ads_v5,reserved_3y,NA,1.295053,USD,Azure Retail Prices API,2025-12-18T04:46:16.399336 +AZURE,eastasia,Standard_D48ads_v5,spot,NA,0.629798,USD,Azure Retail Prices API,2025-12-18T04:46:14.918989 +AZURE,eastasia,Standard_D48ads_v6,on_demand,NA,3.787,USD,Azure Retail Prices API,2025-12-18T04:46:14.918473 +AZURE,eastasia,Standard_D48ads_v6,reserved_1y,NA,2.234475,USD,Azure Retail Prices API,2025-12-18T04:46:16.397702 +AZURE,eastasia,Standard_D48ads_v6,reserved_3y,NA,1.439117,USD,Azure Retail Prices API,2025-12-18T04:46:16.397705 +AZURE,eastasia,Standard_D48ads_v6,spot,NA,0.699838,USD,Azure Retail Prices API,2025-12-18T04:46:14.917816 +AZURE,eastasia,Standard_D48as_v4,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:46:14.919959 +AZURE,eastasia,Standard_D48as_v4,reserved_1y,NA,1.862785,USD,Azure Retail Prices API,2025-12-18T04:46:16.399298 +AZURE,eastasia,Standard_D48as_v4,reserved_3y,NA,1.191172,USD,Azure Retail Prices API,2025-12-18T04:46:16.399303 +AZURE,eastasia,Standard_D48as_v4,spot,NA,0.585446,USD,Azure Retail Prices API,2025-12-18T04:46:14.919014 +AZURE,eastasia,Standard_D48as_v5,on_demand,NA,5.064,USD,Azure Retail Prices API,2025-12-18T04:46:14.918498 +AZURE,eastasia,Standard_D48as_v5,reserved_1y,NA,1.685046,USD,Azure Retail Prices API,2025-12-18T04:46:16.397930 +AZURE,eastasia,Standard_D48as_v5,reserved_3y,NA,1.085274,USD,Azure Retail Prices API,2025-12-18T04:46:16.397935 +AZURE,eastasia,Standard_D48as_v5,spot,NA,0.527789,USD,Azure Retail Prices API,2025-12-18T04:46:14.919374 +AZURE,eastasia,Standard_D48d_v4,on_demand,NA,3.72,USD,Azure Retail Prices API,2025-12-18T04:46:14.918468 +AZURE,eastasia,Standard_D48d_v4,reserved_1y,NA,2.187329,USD,Azure Retail Prices API,2025-12-18T04:46:16.397695 +AZURE,eastasia,Standard_D48d_v4,reserved_3y,NA,1.398706,USD,Azure Retail Prices API,2025-12-18T04:46:16.397699 +AZURE,eastasia,Standard_D48d_v4,spot,NA,0.687456,USD,Azure Retail Prices API,2025-12-18T04:46:14.919634 +AZURE,eastasia,Standard_D48ds_v4,on_demand,NA,3.72,USD,Azure Retail Prices API,2025-12-18T04:46:14.917428 +AZURE,eastasia,Standard_D48ds_v4,reserved_1y,NA,2.187329,USD,Azure Retail Prices API,2025-12-18T04:46:16.396792 +AZURE,eastasia,Standard_D48ds_v4,reserved_3y,NA,1.398706,USD,Azure Retail Prices API,2025-12-18T04:46:16.396797 +AZURE,eastasia,Standard_D48ds_v4,spot,NA,0.687456,USD,Azure Retail Prices API,2025-12-18T04:46:14.917786 +AZURE,eastasia,Standard_D48ds_v5,on_demand,NA,3.72,USD,Azure Retail Prices API,2025-12-18T04:46:14.917791 +AZURE,eastasia,Standard_D48ds_v5,reserved_1y,NA,2.194749,USD,Azure Retail Prices API,2025-12-18T04:46:16.396998 +AZURE,eastasia,Standard_D48ds_v5,reserved_3y,NA,1.413584,USD,Azure Retail Prices API,2025-12-18T04:46:16.397003 +AZURE,eastasia,Standard_D48ds_v5,spot,NA,0.687456,USD,Azure Retail Prices API,2025-12-18T04:46:14.918579 +AZURE,eastasia,Standard_D48ds_v6,on_demand,NA,4.111,USD,Azure Retail Prices API,2025-12-18T04:46:14.919233 +AZURE,eastasia,Standard_D48ds_v6,reserved_1y,NA,2.548973,USD,Azure Retail Prices API,2025-12-18T04:46:16.398575 +AZURE,eastasia,Standard_D48ds_v6,reserved_3y,NA,1.603387,USD,Azure Retail Prices API,2025-12-18T04:46:16.398581 +AZURE,eastasia,Standard_D48ds_v6,spot,NA,0.759713,USD,Azure Retail Prices API,2025-12-18T04:46:14.920311 +AZURE,eastasia,Standard_D48pds_v6,on_demand,NA,3.034,USD,Azure Retail Prices API,2025-12-18T04:46:14.920238 +AZURE,eastasia,Standard_D48pds_v6,reserved_1y,NA,1.78984,USD,Azure Retail Prices API,2025-12-18T04:46:16.399563 +AZURE,eastasia,Standard_D48pds_v6,reserved_3y,NA,1.152778,USD,Azure Retail Prices API,2025-12-18T04:46:16.399569 +AZURE,eastasia,Standard_D48pds_v6,spot,NA,0.560683,USD,Azure Retail Prices API,2025-12-18T04:46:14.920088 +AZURE,eastasia,Standard_D48ps_v6,on_demand,NA,2.318,USD,Azure Retail Prices API,2025-12-18T04:46:14.919879 +AZURE,eastasia,Standard_D48ps_v6,reserved_1y,NA,1.367808,USD,Azure Retail Prices API,2025-12-18T04:46:16.399203 +AZURE,eastasia,Standard_D48ps_v6,reserved_3y,NA,0.880974,USD,Azure Retail Prices API,2025-12-18T04:46:16.399209 +AZURE,eastasia,Standard_D48ps_v6,spot,NA,0.428366,USD,Azure Retail Prices API,2025-12-18T04:46:14.918045 +AZURE,eastasia,Standard_D48s_v4,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:46:14.918192 +AZURE,eastasia,Standard_D48s_v4,reserved_1y,NA,1.862785,USD,Azure Retail Prices API,2025-12-18T04:46:16.397425 +AZURE,eastasia,Standard_D48s_v4,reserved_3y,NA,1.191172,USD,Azure Retail Prices API,2025-12-18T04:46:16.397430 +AZURE,eastasia,Standard_D48s_v4,spot,NA,0.585446,USD,Azure Retail Prices API,2025-12-18T04:46:14.918606 +AZURE,eastasia,Standard_D48s_v5,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:46:14.919348 +AZURE,eastasia,Standard_D48s_v5,reserved_1y,NA,1.869064,USD,Azure Retail Prices API,2025-12-18T04:46:16.398703 +AZURE,eastasia,Standard_D48s_v5,reserved_3y,NA,1.172146,USD,Azure Retail Prices API,2025-12-18T04:46:16.398708 +AZURE,eastasia,Standard_D48s_v5,spot,NA,0.585446,USD,Azure Retail Prices API,2025-12-18T04:46:14.917513 +AZURE,eastasia,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486357 +AZURE,eastasia,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486365 +AZURE,eastasia,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486369 +AZURE,eastasia,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486361 +AZURE,eastasia,Standard_D4a_v4,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:46:14.919109 +AZURE,eastasia,Standard_D4a_v4,reserved_1y,NA,0.155251,USD,Azure Retail Prices API,2025-12-18T04:46:16.398356 +AZURE,eastasia,Standard_D4a_v4,reserved_3y,NA,0.099277,USD,Azure Retail Prices API,2025-12-18T04:46:16.398359 +AZURE,eastasia,Standard_D4a_v4,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:46:14.919697 +AZURE,eastasia,Standard_D4ads_v5,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:14.917664 +AZURE,eastasia,Standard_D4ads_v5,reserved_1y,NA,0.16758,USD,Azure Retail Prices API,2025-12-18T04:46:16.396950 +AZURE,eastasia,Standard_D4ads_v5,reserved_3y,NA,0.107915,USD,Azure Retail Prices API,2025-12-18T04:46:16.396953 +AZURE,eastasia,Standard_D4ads_v5,spot,NA,0.052483,USD,Azure Retail Prices API,2025-12-18T04:46:14.918971 +AZURE,eastasia,Standard_D4ads_v6,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:46:14.917960 +AZURE,eastasia,Standard_D4ads_v6,reserved_1y,NA,0.186187,USD,Azure Retail Prices API,2025-12-18T04:46:16.397210 +AZURE,eastasia,Standard_D4ads_v6,reserved_3y,NA,0.119939,USD,Azure Retail Prices API,2025-12-18T04:46:16.397213 +AZURE,eastasia,Standard_D4ads_v6,spot,NA,0.058397,USD,Azure Retail Prices API,2025-12-18T04:46:14.920229 +AZURE,eastasia,Standard_D4as_v5,on_demand,NA,0.422,USD,Azure Retail Prices API,2025-12-18T04:46:14.918426 +AZURE,eastasia,Standard_D4as_v5,reserved_1y,NA,0.140411,USD,Azure Retail Prices API,2025-12-18T04:46:16.399181 +AZURE,eastasia,Standard_D4as_v5,reserved_3y,NA,0.090449,USD,Azure Retail Prices API,2025-12-18T04:46:16.399186 +AZURE,eastasia,Standard_D4as_v5,spot,NA,0.043982,USD,Azure Retail Prices API,2025-12-18T04:46:14.917950 +AZURE,eastasia,Standard_D4d_v4,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:14.920099 +AZURE,eastasia,Standard_D4d_v4,reserved_1y,NA,0.182306,USD,Azure Retail Prices API,2025-12-18T04:46:16.399445 +AZURE,eastasia,Standard_D4d_v4,reserved_3y,NA,0.116553,USD,Azure Retail Prices API,2025-12-18T04:46:16.399450 +AZURE,eastasia,Standard_D4d_v4,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:14.917826 +AZURE,eastasia,Standard_D4ds_v4,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:14.920012 +AZURE,eastasia,Standard_D4ds_v4,reserved_1y,NA,0.182306,USD,Azure Retail Prices API,2025-12-18T04:46:16.399374 +AZURE,eastasia,Standard_D4ds_v4,reserved_3y,NA,0.116553,USD,Azure Retail Prices API,2025-12-18T04:46:16.399378 +AZURE,eastasia,Standard_D4ds_v4,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:14.917724 +AZURE,eastasia,Standard_D4ds_v5,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:14.918197 +AZURE,eastasia,Standard_D4ds_v5,reserved_1y,NA,0.182877,USD,Azure Retail Prices API,2025-12-18T04:46:16.397435 +AZURE,eastasia,Standard_D4ds_v5,reserved_3y,NA,0.117808,USD,Azure Retail Prices API,2025-12-18T04:46:16.397441 +AZURE,eastasia,Standard_D4ds_v5,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:14.919450 +AZURE,eastasia,Standard_D4ds_v6,on_demand,NA,0.343,USD,Azure Retail Prices API,2025-12-18T04:46:14.918462 +AZURE,eastasia,Standard_D4ds_v6,reserved_1y,NA,0.212443,USD,Azure Retail Prices API,2025-12-18T04:46:16.397690 +AZURE,eastasia,Standard_D4ds_v6,reserved_3y,NA,0.1336,USD,Azure Retail Prices API,2025-12-18T04:46:16.397693 +AZURE,eastasia,Standard_D4ds_v6,spot,NA,0.063386,USD,Azure Retail Prices API,2025-12-18T04:46:14.917545 +AZURE,eastasia,Standard_D4pds_v6,on_demand,NA,0.253,USD,Azure Retail Prices API,2025-12-18T04:46:14.917970 +AZURE,eastasia,Standard_D4pds_v6,reserved_1y,NA,0.149201,USD,Azure Retail Prices API,2025-12-18T04:46:16.397225 +AZURE,eastasia,Standard_D4pds_v6,reserved_3y,NA,0.096081,USD,Azure Retail Prices API,2025-12-18T04:46:16.397229 +AZURE,eastasia,Standard_D4pds_v6,spot,NA,0.046754,USD,Azure Retail Prices API,2025-12-18T04:46:14.917616 +AZURE,eastasia,Standard_D4ps_v6,on_demand,NA,0.193,USD,Azure Retail Prices API,2025-12-18T04:46:14.919758 +AZURE,eastasia,Standard_D4ps_v6,reserved_1y,NA,0.114041,USD,Azure Retail Prices API,2025-12-18T04:46:16.399055 +AZURE,eastasia,Standard_D4ps_v6,reserved_3y,NA,0.073402,USD,Azure Retail Prices API,2025-12-18T04:46:16.399082 +AZURE,eastasia,Standard_D4ps_v6,spot,NA,0.035666,USD,Azure Retail Prices API,2025-12-18T04:46:14.919138 +AZURE,eastasia,Standard_D4s_v3,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:46:14.918777 +AZURE,eastasia,Standard_D4s_v3,reserved_1y,NA,0.152169,USD,Azure Retail Prices API,2025-12-18T04:46:16.398028 +AZURE,eastasia,Standard_D4s_v3,reserved_3y,NA,0.099011,USD,Azure Retail Prices API,2025-12-18T04:46:16.398033 +AZURE,eastasia,Standard_D4s_v3,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:46:14.917462 +AZURE,eastasia,Standard_D4s_v4,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:46:14.919900 +AZURE,eastasia,Standard_D4s_v4,reserved_1y,NA,0.155251,USD,Azure Retail Prices API,2025-12-18T04:46:16.399234 +AZURE,eastasia,Standard_D4s_v4,reserved_3y,NA,0.099277,USD,Azure Retail Prices API,2025-12-18T04:46:16.399240 +AZURE,eastasia,Standard_D4s_v4,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:46:14.919860 +AZURE,eastasia,Standard_D4s_v5,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:46:14.919169 +AZURE,eastasia,Standard_D4s_v5,reserved_1y,NA,0.155708,USD,Azure Retail Prices API,2025-12-18T04:46:16.398467 +AZURE,eastasia,Standard_D4s_v5,reserved_3y,NA,0.097679,USD,Azure Retail Prices API,2025-12-18T04:46:16.398472 +AZURE,eastasia,Standard_D4s_v5,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:46:14.917940 +AZURE,eastasia,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487655 +AZURE,eastasia,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487670 +AZURE,eastasia,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487678 +AZURE,eastasia,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487663 +AZURE,eastasia,Standard_D64_v3,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:14.918528 +AZURE,eastasia,Standard_D64_v3,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:46:16.397758 +AZURE,eastasia,Standard_D64_v3,reserved_3y,NA,1.584018,USD,Azure Retail Prices API,2025-12-18T04:46:16.397763 +AZURE,eastasia,Standard_D64_v3,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:14.918447 +AZURE,eastasia,Standard_D64a_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:14.919228 +AZURE,eastasia,Standard_D64a_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:46:16.398565 +AZURE,eastasia,Standard_D64a_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:46:16.398570 +AZURE,eastasia,Standard_D64a_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:14.917766 +AZURE,eastasia,Standard_D64ads_v5,on_demand,NA,7.488,USD,Azure Retail Prices API,2025-12-18T04:46:14.917413 +AZURE,eastasia,Standard_D64ads_v5,reserved_1y,NA,2.680936,USD,Azure Retail Prices API,2025-12-18T04:46:16.399510 +AZURE,eastasia,Standard_D64ads_v5,reserved_3y,NA,1.726712,USD,Azure Retail Prices API,2025-12-18T04:46:16.399516 +AZURE,eastasia,Standard_D64ads_v5,spot,NA,0.839731,USD,Azure Retail Prices API,2025-12-18T04:46:14.919612 +AZURE,eastasia,Standard_D64ads_v6,on_demand,NA,5.05,USD,Azure Retail Prices API,2025-12-18T04:46:14.917801 +AZURE,eastasia,Standard_D64ads_v6,reserved_1y,NA,2.979224,USD,Azure Retail Prices API,2025-12-18T04:46:16.397019 +AZURE,eastasia,Standard_D64ads_v6,reserved_3y,NA,1.918836,USD,Azure Retail Prices API,2025-12-18T04:46:16.397023 +AZURE,eastasia,Standard_D64ads_v6,spot,NA,0.93324,USD,Azure Retail Prices API,2025-12-18T04:46:14.918386 +AZURE,eastasia,Standard_D64as_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:14.918344 +AZURE,eastasia,Standard_D64as_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:46:16.397576 +AZURE,eastasia,Standard_D64as_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:46:16.397581 +AZURE,eastasia,Standard_D64as_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:14.920042 +AZURE,eastasia,Standard_D64as_v5,on_demand,NA,6.752,USD,Azure Retail Prices API,2025-12-18T04:46:14.918883 +AZURE,eastasia,Standard_D64as_v5,reserved_1y,NA,2.246689,USD,Azure Retail Prices API,2025-12-18T04:46:16.398971 +AZURE,eastasia,Standard_D64as_v5,reserved_3y,NA,1.447032,USD,Azure Retail Prices API,2025-12-18T04:46:16.398976 +AZURE,eastasia,Standard_D64as_v5,spot,NA,0.703718,USD,Azure Retail Prices API,2025-12-18T04:46:14.917997 +AZURE,eastasia,Standard_D64d_v4,on_demand,NA,4.96,USD,Azure Retail Prices API,2025-12-18T04:46:14.917472 +AZURE,eastasia,Standard_D64d_v4,reserved_1y,NA,2.916438,USD,Azure Retail Prices API,2025-12-18T04:46:16.396812 +AZURE,eastasia,Standard_D64d_v4,reserved_3y,NA,1.864954,USD,Azure Retail Prices API,2025-12-18T04:46:16.396817 +AZURE,eastasia,Standard_D64d_v4,spot,NA,0.916608,USD,Azure Retail Prices API,2025-12-18T04:46:14.917689 +AZURE,eastasia,Standard_D64ds_v4,on_demand,NA,4.96,USD,Azure Retail Prices API,2025-12-18T04:46:14.918672 +AZURE,eastasia,Standard_D64ds_v4,reserved_1y,NA,2.916438,USD,Azure Retail Prices API,2025-12-18T04:46:16.397919 +AZURE,eastasia,Standard_D64ds_v4,reserved_3y,NA,1.864954,USD,Azure Retail Prices API,2025-12-18T04:46:16.397924 +AZURE,eastasia,Standard_D64ds_v4,spot,NA,0.916608,USD,Azure Retail Prices API,2025-12-18T04:46:14.918207 +AZURE,eastasia,Standard_D64ds_v5,on_demand,NA,4.96,USD,Azure Retail Prices API,2025-12-18T04:46:14.919464 +AZURE,eastasia,Standard_D64ds_v5,reserved_1y,NA,2.92637,USD,Azure Retail Prices API,2025-12-18T04:46:16.398776 +AZURE,eastasia,Standard_D64ds_v5,reserved_3y,NA,1.884817,USD,Azure Retail Prices API,2025-12-18T04:46:16.398779 +AZURE,eastasia,Standard_D64ds_v5,spot,NA,0.916608,USD,Azure Retail Prices API,2025-12-18T04:46:14.919973 +AZURE,eastasia,Standard_D64ds_v6,on_demand,NA,5.482,USD,Azure Retail Prices API,2025-12-18T04:46:14.918616 +AZURE,eastasia,Standard_D64ds_v6,reserved_1y,NA,3.39863,USD,Azure Retail Prices API,2025-12-18T04:46:16.397849 +AZURE,eastasia,Standard_D64ds_v6,reserved_3y,NA,2.137823,USD,Azure Retail Prices API,2025-12-18T04:46:16.397854 +AZURE,eastasia,Standard_D64ds_v6,spot,NA,1.013074,USD,Azure Retail Prices API,2025-12-18T04:46:14.919043 +AZURE,eastasia,Standard_D64pds_v6,on_demand,NA,4.045,USD,Azure Retail Prices API,2025-12-18T04:46:14.918632 +AZURE,eastasia,Standard_D64pds_v6,reserved_1y,NA,2.386416,USD,Azure Retail Prices API,2025-12-18T04:46:16.397879 +AZURE,eastasia,Standard_D64pds_v6,reserved_3y,NA,1.537024,USD,Azure Retail Prices API,2025-12-18T04:46:16.397884 +AZURE,eastasia,Standard_D64pds_v6,spot,NA,0.747516,USD,Azure Retail Prices API,2025-12-18T04:46:14.919315 +AZURE,eastasia,Standard_D64ps_v6,on_demand,NA,3.091,USD,Azure Retail Prices API,2025-12-18T04:46:14.919588 +AZURE,eastasia,Standard_D64ps_v6,reserved_1y,NA,1.823858,USD,Azure Retail Prices API,2025-12-18T04:46:16.398897 +AZURE,eastasia,Standard_D64ps_v6,reserved_3y,NA,1.174658,USD,Azure Retail Prices API,2025-12-18T04:46:16.398902 +AZURE,eastasia,Standard_D64ps_v6,spot,NA,0.571217,USD,Azure Retail Prices API,2025-12-18T04:46:14.919384 +AZURE,eastasia,Standard_D64s_v3,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:14.918518 +AZURE,eastasia,Standard_D64s_v3,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:46:16.397739 +AZURE,eastasia,Standard_D64s_v3,reserved_3y,NA,1.584018,USD,Azure Retail Prices API,2025-12-18T04:46:16.397743 +AZURE,eastasia,Standard_D64s_v3,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:14.919355 +AZURE,eastasia,Standard_D64s_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:14.917906 +AZURE,eastasia,Standard_D64s_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:46:16.397147 +AZURE,eastasia,Standard_D64s_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:46:16.397152 +AZURE,eastasia,Standard_D64s_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:14.917402 +AZURE,eastasia,Standard_D64s_v5,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:14.919654 +AZURE,eastasia,Standard_D64s_v5,reserved_1y,NA,2.492123,USD,Azure Retail Prices API,2025-12-18T04:46:16.398961 +AZURE,eastasia,Standard_D64s_v5,reserved_3y,NA,1.562861,USD,Azure Retail Prices API,2025-12-18T04:46:16.398966 +AZURE,eastasia,Standard_D64s_v5,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:14.918915 +AZURE,eastasia,Standard_D8_v3,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:46:14.919851 +AZURE,eastasia,Standard_D8_v3,reserved_1y,NA,0.304452,USD,Azure Retail Prices API,2025-12-18T04:46:16.399146 +AZURE,eastasia,Standard_D8_v3,reserved_3y,NA,0.197983,USD,Azure Retail Prices API,2025-12-18T04:46:16.399151 +AZURE,eastasia,Standard_D8_v3,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:46:14.918252 +AZURE,eastasia,Standard_D8a_v4,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:46:14.919933 +AZURE,eastasia,Standard_D8a_v4,reserved_1y,NA,0.310502,USD,Azure Retail Prices API,2025-12-18T04:46:16.399286 +AZURE,eastasia,Standard_D8a_v4,reserved_3y,NA,0.198516,USD,Azure Retail Prices API,2025-12-18T04:46:16.399292 +AZURE,eastasia,Standard_D8a_v4,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:46:14.917873 +AZURE,eastasia,Standard_D8ads_v5,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:14.918055 +AZURE,eastasia,Standard_D8ads_v5,reserved_1y,NA,0.33516,USD,Azure Retail Prices API,2025-12-18T04:46:16.397299 +AZURE,eastasia,Standard_D8ads_v5,reserved_3y,NA,0.21583,USD,Azure Retail Prices API,2025-12-18T04:46:16.397305 +AZURE,eastasia,Standard_D8ads_v5,spot,NA,0.104966,USD,Azure Retail Prices API,2025-12-18T04:46:14.917863 +AZURE,eastasia,Standard_D8ads_v6,on_demand,NA,0.631,USD,Azure Retail Prices API,2025-12-18T04:46:14.917518 +AZURE,eastasia,Standard_D8ads_v6,reserved_1y,NA,0.372374,USD,Azure Retail Prices API,2025-12-18T04:46:16.396844 +AZURE,eastasia,Standard_D8ads_v6,reserved_3y,NA,0.23984,USD,Azure Retail Prices API,2025-12-18T04:46:16.396849 +AZURE,eastasia,Standard_D8ads_v6,spot,NA,0.116609,USD,Azure Retail Prices API,2025-12-18T04:46:14.917852 +AZURE,eastasia,Standard_D8as_v4,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:46:14.919379 +AZURE,eastasia,Standard_D8as_v4,reserved_1y,NA,0.310502,USD,Azure Retail Prices API,2025-12-18T04:46:16.398733 +AZURE,eastasia,Standard_D8as_v4,reserved_3y,NA,0.198516,USD,Azure Retail Prices API,2025-12-18T04:46:16.398738 +AZURE,eastasia,Standard_D8as_v4,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:46:14.919895 +AZURE,eastasia,Standard_D8as_v5,on_demand,NA,0.476,USD,Azure Retail Prices API,2025-12-18T04:46:14.917901 +AZURE,eastasia,Standard_D8as_v5,reserved_1y,NA,0.280822,USD,Azure Retail Prices API,2025-12-18T04:46:16.397136 +AZURE,eastasia,Standard_D8as_v5,reserved_3y,NA,0.180898,USD,Azure Retail Prices API,2025-12-18T04:46:16.397142 +AZURE,eastasia,Standard_D8as_v5,spot,NA,0.087965,USD,Azure Retail Prices API,2025-12-18T04:46:14.920289 +AZURE,eastasia,Standard_D8d_v4,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:14.918283 +AZURE,eastasia,Standard_D8d_v4,reserved_1y,NA,0.364612,USD,Azure Retail Prices API,2025-12-18T04:46:16.397505 +AZURE,eastasia,Standard_D8d_v4,reserved_3y,NA,0.233105,USD,Azure Retail Prices API,2025-12-18T04:46:16.397509 +AZURE,eastasia,Standard_D8d_v4,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:14.919469 +AZURE,eastasia,Standard_D8ds_v4,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:14.918867 +AZURE,eastasia,Standard_D8ds_v4,reserved_1y,NA,0.364612,USD,Azure Retail Prices API,2025-12-18T04:46:16.398130 +AZURE,eastasia,Standard_D8ds_v4,reserved_3y,NA,0.233105,USD,Azure Retail Prices API,2025-12-18T04:46:16.398135 +AZURE,eastasia,Standard_D8ds_v4,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:14.920208 +AZURE,eastasia,Standard_D8ds_v5,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:14.919292 +AZURE,eastasia,Standard_D8ds_v5,reserved_1y,NA,0.365753,USD,Azure Retail Prices API,2025-12-18T04:46:16.398627 +AZURE,eastasia,Standard_D8ds_v5,reserved_3y,NA,0.235616,USD,Azure Retail Prices API,2025-12-18T04:46:16.398633 +AZURE,eastasia,Standard_D8ds_v5,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:14.917561 +AZURE,eastasia,Standard_D8ds_v6,on_demand,NA,0.685,USD,Azure Retail Prices API,2025-12-18T04:46:14.919555 +AZURE,eastasia,Standard_D8ds_v6,reserved_1y,NA,0.424772,USD,Azure Retail Prices API,2025-12-18T04:46:16.398852 +AZURE,eastasia,Standard_D8ds_v6,reserved_3y,NA,0.267237,USD,Azure Retail Prices API,2025-12-18T04:46:16.398858 +AZURE,eastasia,Standard_D8ds_v6,spot,NA,0.126588,USD,Azure Retail Prices API,2025-12-18T04:46:14.917935 +AZURE,eastasia,Standard_D8pds_v6,on_demand,NA,0.506,USD,Azure Retail Prices API,2025-12-18T04:46:14.917923 +AZURE,eastasia,Standard_D8pds_v6,reserved_1y,NA,0.298288,USD,Azure Retail Prices API,2025-12-18T04:46:16.397180 +AZURE,eastasia,Standard_D8pds_v6,reserved_3y,NA,0.192123,USD,Azure Retail Prices API,2025-12-18T04:46:16.397184 +AZURE,eastasia,Standard_D8pds_v6,spot,NA,0.093509,USD,Azure Retail Prices API,2025-12-18T04:46:14.920162 +AZURE,eastasia,Standard_D8ps_v6,on_demand,NA,0.386,USD,Azure Retail Prices API,2025-12-18T04:46:14.917486 +AZURE,eastasia,Standard_D8ps_v6,reserved_1y,NA,0.227968,USD,Azure Retail Prices API,2025-12-18T04:46:16.396833 +AZURE,eastasia,Standard_D8ps_v6,reserved_3y,NA,0.146842,USD,Azure Retail Prices API,2025-12-18T04:46:16.396839 +AZURE,eastasia,Standard_D8ps_v6,spot,NA,0.071333,USD,Azure Retail Prices API,2025-12-18T04:46:14.918407 +AZURE,eastasia,Standard_D8s_v3,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:46:14.918840 +AZURE,eastasia,Standard_D8s_v3,reserved_1y,NA,0.304452,USD,Azure Retail Prices API,2025-12-18T04:46:16.398090 +AZURE,eastasia,Standard_D8s_v3,reserved_3y,NA,0.197983,USD,Azure Retail Prices API,2025-12-18T04:46:16.398094 +AZURE,eastasia,Standard_D8s_v3,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:46:14.919218 +AZURE,eastasia,Standard_D8s_v4,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:46:14.918523 +AZURE,eastasia,Standard_D8s_v4,reserved_1y,NA,0.310502,USD,Azure Retail Prices API,2025-12-18T04:46:16.397748 +AZURE,eastasia,Standard_D8s_v4,reserved_3y,NA,0.198516,USD,Azure Retail Prices API,2025-12-18T04:46:16.397753 +AZURE,eastasia,Standard_D8s_v4,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:46:14.917981 +AZURE,eastasia,Standard_D8s_v5,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:46:14.920185 +AZURE,eastasia,Standard_D8s_v5,reserved_1y,NA,0.31153,USD,Azure Retail Prices API,2025-12-18T04:46:16.399499 +AZURE,eastasia,Standard_D8s_v5,reserved_3y,NA,0.195358,USD,Azure Retail Prices API,2025-12-18T04:46:16.399504 +AZURE,eastasia,Standard_D8s_v5,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:46:14.918242 +AZURE,eastasia,Standard_D96a_v4,on_demand,NA,6.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.917626 +AZURE,eastasia,Standard_D96a_v4,reserved_1y,NA,3.725571,USD,Azure Retail Prices API,2025-12-18T04:46:16.396905 +AZURE,eastasia,Standard_D96a_v4,reserved_3y,NA,2.382344,USD,Azure Retail Prices API,2025-12-18T04:46:16.396910 +AZURE,eastasia,Standard_D96a_v4,spot,NA,1.170893,USD,Azure Retail Prices API,2025-12-18T04:46:14.917637 +AZURE,eastasia,Standard_D96ads_v5,on_demand,NA,11.232,USD,Azure Retail Prices API,2025-12-18T04:46:14.919740 +AZURE,eastasia,Standard_D96ads_v5,reserved_1y,NA,4.021461,USD,Azure Retail Prices API,2025-12-18T04:46:16.399224 +AZURE,eastasia,Standard_D96ads_v5,reserved_3y,NA,2.590068,USD,Azure Retail Prices API,2025-12-18T04:46:16.399229 +AZURE,eastasia,Standard_D96ads_v5,spot,NA,1.259597,USD,Azure Retail Prices API,2025-12-18T04:46:14.918421 +AZURE,eastasia,Standard_D96ads_v6,on_demand,NA,7.574,USD,Azure Retail Prices API,2025-12-18T04:46:14.919053 +AZURE,eastasia,Standard_D96ads_v6,reserved_1y,NA,4.46895,USD,Azure Retail Prices API,2025-12-18T04:46:16.398326 +AZURE,eastasia,Standard_D96ads_v6,reserved_3y,NA,2.878272,USD,Azure Retail Prices API,2025-12-18T04:46:16.398331 +AZURE,eastasia,Standard_D96ads_v6,spot,NA,1.399675,USD,Azure Retail Prices API,2025-12-18T04:46:14.917606 +AZURE,eastasia,Standard_D96as_v4,on_demand,NA,6.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.919473 +AZURE,eastasia,Standard_D96as_v4,reserved_1y,NA,3.725571,USD,Azure Retail Prices API,2025-12-18T04:46:16.398782 +AZURE,eastasia,Standard_D96as_v4,reserved_3y,NA,2.382344,USD,Azure Retail Prices API,2025-12-18T04:46:16.398785 +AZURE,eastasia,Standard_D96as_v4,spot,NA,1.170893,USD,Azure Retail Prices API,2025-12-18T04:46:14.919702 +AZURE,eastasia,Standard_D96as_v5,on_demand,NA,10.128,USD,Azure Retail Prices API,2025-12-18T04:46:14.917736 +AZURE,eastasia,Standard_D96as_v5,reserved_1y,NA,3.370091,USD,Azure Retail Prices API,2025-12-18T04:46:16.398616 +AZURE,eastasia,Standard_D96as_v5,reserved_3y,NA,2.170548,USD,Azure Retail Prices API,2025-12-18T04:46:16.398622 +AZURE,eastasia,Standard_D96as_v5,spot,NA,1.055578,USD,Azure Retail Prices API,2025-12-18T04:46:14.917821 +AZURE,eastasia,Standard_D96ds_v5,on_demand,NA,7.44,USD,Azure Retail Prices API,2025-12-18T04:46:14.919213 +AZURE,eastasia,Standard_D96ds_v5,reserved_1y,NA,4.389612,USD,Azure Retail Prices API,2025-12-18T04:46:16.398543 +AZURE,eastasia,Standard_D96ds_v5,reserved_3y,NA,2.827207,USD,Azure Retail Prices API,2025-12-18T04:46:16.398548 +AZURE,eastasia,Standard_D96ds_v5,spot,NA,1.374912,USD,Azure Retail Prices API,2025-12-18T04:46:14.917432 +AZURE,eastasia,Standard_D96ds_v6,on_demand,NA,8.222,USD,Azure Retail Prices API,2025-12-18T04:46:14.918544 +AZURE,eastasia,Standard_D96ds_v6,reserved_1y,NA,5.097831,USD,Azure Retail Prices API,2025-12-18T04:46:16.397777 +AZURE,eastasia,Standard_D96ds_v6,reserved_3y,NA,3.206735,USD,Azure Retail Prices API,2025-12-18T04:46:16.397782 +AZURE,eastasia,Standard_D96ds_v6,spot,NA,1.519426,USD,Azure Retail Prices API,2025-12-18T04:46:14.918737 +AZURE,eastasia,Standard_D96pds_v6,on_demand,NA,6.067,USD,Azure Retail Prices API,2025-12-18T04:46:14.917720 +AZURE,eastasia,Standard_D96pds_v6,reserved_1y,NA,3.57968,USD,Azure Retail Prices API,2025-12-18T04:46:16.396976 +AZURE,eastasia,Standard_D96pds_v6,reserved_3y,NA,2.305518,USD,Azure Retail Prices API,2025-12-18T04:46:16.396980 +AZURE,eastasia,Standard_D96pds_v6,spot,NA,1.121182,USD,Azure Retail Prices API,2025-12-18T04:46:14.918944 +AZURE,eastasia,Standard_D96ps_v6,on_demand,NA,4.637,USD,Azure Retail Prices API,2025-12-18T04:46:14.917481 +AZURE,eastasia,Standard_D96ps_v6,reserved_1y,NA,2.735731,USD,Azure Retail Prices API,2025-12-18T04:46:16.396822 +AZURE,eastasia,Standard_D96ps_v6,reserved_3y,NA,1.761986,USD,Azure Retail Prices API,2025-12-18T04:46:16.396828 +AZURE,eastasia,Standard_D96ps_v6,spot,NA,0.856918,USD,Azure Retail Prices API,2025-12-18T04:46:14.917684 +AZURE,eastasia,Standard_D96s_v5,on_demand,NA,6.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.918161 +AZURE,eastasia,Standard_D96s_v5,reserved_1y,NA,3.738242,USD,Azure Retail Prices API,2025-12-18T04:46:16.397407 +AZURE,eastasia,Standard_D96s_v5,reserved_3y,NA,2.34433,USD,Azure Retail Prices API,2025-12-18T04:46:16.397412 +AZURE,eastasia,Standard_D96s_v5,spot,NA,1.170893,USD,Azure Retail Prices API,2025-12-18T04:46:14.919545 +AZURE,eastasia,Standard_DC16ads_v5,on_demand,NA,1.136,USD,Azure Retail Prices API,2025-12-18T04:46:14.918297 +AZURE,eastasia,Standard_DC16ads_v5,reserved_1y,NA,0.90879,USD,Azure Retail Prices API,2025-12-18T04:46:16.397525 +AZURE,eastasia,Standard_DC16ads_v5,reserved_3y,NA,0.681583,USD,Azure Retail Prices API,2025-12-18T04:46:16.397529 +AZURE,eastasia,Standard_DC16ads_v5,spot,NA,0.214363,USD,Azure Retail Prices API,2025-12-18T04:46:14.919948 +AZURE,eastasia,Standard_DC16ads_v6,on_demand,NA,1.262,USD,Azure Retail Prices API,2025-12-18T04:46:14.919128 +AZURE,eastasia,Standard_DC16ads_v6,reserved_1y,NA,0.744863,USD,Azure Retail Prices API,2025-12-18T04:46:16.398395 +AZURE,eastasia,Standard_DC16ads_v6,reserved_3y,NA,0.479718,USD,Azure Retail Prices API,2025-12-18T04:46:16.398400 +AZURE,eastasia,Standard_DC16ads_v6,spot,NA,0.233218,USD,Azure Retail Prices API,2025-12-18T04:46:14.918667 +AZURE,eastasia,Standard_DC16as_v5,on_demand,NA,0.952,USD,Azure Retail Prices API,2025-12-18T04:46:14.919574 +AZURE,eastasia,Standard_DC16as_v5,reserved_1y,NA,0.761644,USD,Azure Retail Prices API,2025-12-18T04:46:16.398874 +AZURE,eastasia,Standard_DC16as_v5,reserved_3y,NA,0.571195,USD,Azure Retail Prices API,2025-12-18T04:46:16.398880 +AZURE,eastasia,Standard_DC16as_v5,spot,NA,0.179642,USD,Azure Retail Prices API,2025-12-18T04:46:14.918086 +AZURE,eastasia,Standard_DC2ads_v6,on_demand,NA,0.158,USD,Azure Retail Prices API,2025-12-18T04:46:14.919856 +AZURE,eastasia,Standard_DC2ads_v6,reserved_1y,NA,0.093151,USD,Azure Retail Prices API,2025-12-18T04:46:16.399156 +AZURE,eastasia,Standard_DC2ads_v6,reserved_3y,NA,0.05997,USD,Azure Retail Prices API,2025-12-18T04:46:16.399161 +AZURE,eastasia,Standard_DC2ads_v6,spot,NA,0.029198,USD,Azure Retail Prices API,2025-12-18T04:46:14.919173 +AZURE,eastasia,Standard_DC32ads_v5,on_demand,NA,2.272,USD,Azure Retail Prices API,2025-12-18T04:46:14.920124 +AZURE,eastasia,Standard_DC32ads_v5,reserved_1y,NA,1.81758,USD,Azure Retail Prices API,2025-12-18T04:46:16.399455 +AZURE,eastasia,Standard_DC32ads_v5,reserved_3y,NA,1.363204,USD,Azure Retail Prices API,2025-12-18T04:46:16.399460 +AZURE,eastasia,Standard_DC32ads_v5,spot,NA,0.428726,USD,Azure Retail Prices API,2025-12-18T04:46:14.919841 +AZURE,eastasia,Standard_DC32ads_v6,on_demand,NA,2.525,USD,Azure Retail Prices API,2025-12-18T04:46:14.918151 +AZURE,eastasia,Standard_DC32ads_v6,reserved_1y,NA,1.489612,USD,Azure Retail Prices API,2025-12-18T04:46:16.397385 +AZURE,eastasia,Standard_DC32ads_v6,reserved_3y,NA,0.959437,USD,Azure Retail Prices API,2025-12-18T04:46:16.397390 +AZURE,eastasia,Standard_DC32ads_v6,spot,NA,0.46662,USD,Azure Retail Prices API,2025-12-18T04:46:14.918107 +AZURE,eastasia,Standard_DC32as_v5,on_demand,NA,1.904,USD,Azure Retail Prices API,2025-12-18T04:46:14.917408 +AZURE,eastasia,Standard_DC32as_v5,reserved_1y,NA,1.523174,USD,Azure Retail Prices API,2025-12-18T04:46:16.396760 +AZURE,eastasia,Standard_DC32as_v5,reserved_3y,NA,1.14239,USD,Azure Retail Prices API,2025-12-18T04:46:16.396766 +AZURE,eastasia,Standard_DC32as_v5,spot,NA,0.359285,USD,Azure Retail Prices API,2025-12-18T04:46:14.918678 +AZURE,eastasia,Standard_DC48ads_v5,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:14.920047 +AZURE,eastasia,Standard_DC48ads_v5,reserved_1y,NA,2.72637,USD,Azure Retail Prices API,2025-12-18T04:46:16.399401 +AZURE,eastasia,Standard_DC48ads_v5,reserved_3y,NA,2.044787,USD,Azure Retail Prices API,2025-12-18T04:46:16.399404 +AZURE,eastasia,Standard_DC48ads_v5,spot,NA,0.64309,USD,Azure Retail Prices API,2025-12-18T04:46:14.917391 +AZURE,eastasia,Standard_DC48ads_v6,on_demand,NA,3.787,USD,Azure Retail Prices API,2025-12-18T04:46:14.918039 +AZURE,eastasia,Standard_DC48ads_v6,reserved_1y,NA,2.234475,USD,Azure Retail Prices API,2025-12-18T04:46:16.397276 +AZURE,eastasia,Standard_DC48ads_v6,reserved_3y,NA,1.439117,USD,Azure Retail Prices API,2025-12-18T04:46:16.397282 +AZURE,eastasia,Standard_DC48ads_v6,spot,NA,0.699838,USD,Azure Retail Prices API,2025-12-18T04:46:14.917714 +AZURE,eastasia,Standard_DC48as_v5,on_demand,NA,2.856,USD,Azure Retail Prices API,2025-12-18T04:46:14.919496 +AZURE,eastasia,Standard_DC48as_v5,reserved_1y,NA,2.284817,USD,Azure Retail Prices API,2025-12-18T04:46:16.398801 +AZURE,eastasia,Standard_DC48as_v5,reserved_3y,NA,1.713584,USD,Azure Retail Prices API,2025-12-18T04:46:16.398807 +AZURE,eastasia,Standard_DC48as_v5,spot,NA,0.538927,USD,Azure Retail Prices API,2025-12-18T04:46:14.918683 +AZURE,eastasia,Standard_DC4ads_v5,on_demand,NA,0.284,USD,Azure Retail Prices API,2025-12-18T04:46:14.918457 +AZURE,eastasia,Standard_DC4ads_v5,reserved_1y,NA,0.227169,USD,Azure Retail Prices API,2025-12-18T04:46:16.397683 +AZURE,eastasia,Standard_DC4ads_v5,reserved_3y,NA,0.170396,USD,Azure Retail Prices API,2025-12-18T04:46:16.397686 +AZURE,eastasia,Standard_DC4ads_v5,spot,NA,0.053591,USD,Azure Retail Prices API,2025-12-18T04:46:14.919806 +AZURE,eastasia,Standard_DC4ads_v6,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:46:14.918920 +AZURE,eastasia,Standard_DC4ads_v6,reserved_1y,NA,0.186187,USD,Azure Retail Prices API,2025-12-18T04:46:16.398171 +AZURE,eastasia,Standard_DC4ads_v6,reserved_3y,NA,0.119939,USD,Azure Retail Prices API,2025-12-18T04:46:16.398176 +AZURE,eastasia,Standard_DC4ads_v6,spot,NA,0.058397,USD,Azure Retail Prices API,2025-12-18T04:46:14.918375 +AZURE,eastasia,Standard_DC4as_v5,on_demand,NA,0.238,USD,Azure Retail Prices API,2025-12-18T04:46:14.919584 +AZURE,eastasia,Standard_DC4as_v5,reserved_1y,NA,0.190411,USD,Azure Retail Prices API,2025-12-18T04:46:16.398885 +AZURE,eastasia,Standard_DC4as_v5,reserved_3y,NA,0.142808,USD,Azure Retail Prices API,2025-12-18T04:46:16.398891 +AZURE,eastasia,Standard_DC4as_v5,spot,NA,0.044911,USD,Azure Retail Prices API,2025-12-18T04:46:14.919281 +AZURE,eastasia,Standard_DC64ads_v5,on_demand,NA,4.544,USD,Azure Retail Prices API,2025-12-18T04:46:14.917669 +AZURE,eastasia,Standard_DC64ads_v5,reserved_1y,NA,3.63516,USD,Azure Retail Prices API,2025-12-18T04:46:16.396956 +AZURE,eastasia,Standard_DC64ads_v5,reserved_3y,NA,2.726408,USD,Azure Retail Prices API,2025-12-18T04:46:16.396960 +AZURE,eastasia,Standard_DC64ads_v5,spot,NA,0.857453,USD,Azure Retail Prices API,2025-12-18T04:46:14.920176 +AZURE,eastasia,Standard_DC64ads_v6,on_demand,NA,5.05,USD,Azure Retail Prices API,2025-12-18T04:46:14.918339 +AZURE,eastasia,Standard_DC64ads_v6,reserved_1y,NA,2.979224,USD,Azure Retail Prices API,2025-12-18T04:46:16.397565 +AZURE,eastasia,Standard_DC64ads_v6,reserved_3y,NA,1.918836,USD,Azure Retail Prices API,2025-12-18T04:46:16.397571 +AZURE,eastasia,Standard_DC64ads_v6,spot,NA,0.93324,USD,Azure Retail Prices API,2025-12-18T04:46:14.919673 +AZURE,eastasia,Standard_DC64as_v5,on_demand,NA,3.808,USD,Azure Retail Prices API,2025-12-18T04:46:14.919143 +AZURE,eastasia,Standard_DC64as_v5,reserved_1y,NA,3.046347,USD,Azure Retail Prices API,2025-12-18T04:46:16.398425 +AZURE,eastasia,Standard_DC64as_v5,reserved_3y,NA,2.284817,USD,Azure Retail Prices API,2025-12-18T04:46:16.398430 +AZURE,eastasia,Standard_DC64as_v5,spot,NA,0.71857,USD,Azure Retail Prices API,2025-12-18T04:46:14.918182 +AZURE,eastasia,Standard_DC8ads_v5,on_demand,NA,0.568,USD,Azure Retail Prices API,2025-12-18T04:46:14.919593 +AZURE,eastasia,Standard_DC8ads_v5,reserved_1y,NA,0.454452,USD,Azure Retail Prices API,2025-12-18T04:46:16.398907 +AZURE,eastasia,Standard_DC8ads_v5,reserved_3y,NA,0.340791,USD,Azure Retail Prices API,2025-12-18T04:46:16.398913 +AZURE,eastasia,Standard_DC8ads_v5,spot,NA,0.107182,USD,Azure Retail Prices API,2025-12-18T04:46:14.919560 +AZURE,eastasia,Standard_DC8ads_v6,on_demand,NA,0.631,USD,Azure Retail Prices API,2025-12-18T04:46:14.918814 +AZURE,eastasia,Standard_DC8ads_v6,reserved_1y,NA,0.372374,USD,Azure Retail Prices API,2025-12-18T04:46:16.398069 +AZURE,eastasia,Standard_DC8ads_v6,reserved_3y,NA,0.23984,USD,Azure Retail Prices API,2025-12-18T04:46:16.398074 +AZURE,eastasia,Standard_DC8ads_v6,spot,NA,0.116609,USD,Azure Retail Prices API,2025-12-18T04:46:14.920281 +AZURE,eastasia,Standard_DC8as_v5,on_demand,NA,0.476,USD,Azure Retail Prices API,2025-12-18T04:46:14.917654 +AZURE,eastasia,Standard_DC8as_v5,reserved_1y,NA,0.380822,USD,Azure Retail Prices API,2025-12-18T04:46:16.396941 +AZURE,eastasia,Standard_DC8as_v5,reserved_3y,NA,0.285616,USD,Azure Retail Prices API,2025-12-18T04:46:16.396946 +AZURE,eastasia,Standard_DC8as_v5,spot,NA,0.089821,USD,Azure Retail Prices API,2025-12-18T04:46:14.919978 +AZURE,eastasia,Standard_DC96ads_v5,on_demand,NA,6.816,USD,Azure Retail Prices API,2025-12-18T04:46:14.919114 +AZURE,eastasia,Standard_DC96ads_v5,reserved_1y,NA,5.452854,USD,Azure Retail Prices API,2025-12-18T04:46:16.398363 +AZURE,eastasia,Standard_DC96ads_v5,reserved_3y,NA,4.089612,USD,Azure Retail Prices API,2025-12-18T04:46:16.398368 +AZURE,eastasia,Standard_DC96ads_v5,spot,NA,1.286179,USD,Azure Retail Prices API,2025-12-18T04:46:14.920129 +AZURE,eastasia,Standard_DC96ads_v6,on_demand,NA,7.574,USD,Azure Retail Prices API,2025-12-18T04:46:14.918533 +AZURE,eastasia,Standard_DC96ads_v6,reserved_1y,NA,4.46895,USD,Azure Retail Prices API,2025-12-18T04:46:16.397768 +AZURE,eastasia,Standard_DC96ads_v6,reserved_3y,NA,2.878272,USD,Azure Retail Prices API,2025-12-18T04:46:16.397772 +AZURE,eastasia,Standard_DC96ads_v6,spot,NA,1.399675,USD,Azure Retail Prices API,2025-12-18T04:46:14.919310 +AZURE,eastasia,Standard_DC96as_v5,on_demand,NA,5.712,USD,Azure Retail Prices API,2025-12-18T04:46:14.919924 +AZURE,eastasia,Standard_DC96as_v5,reserved_1y,NA,4.569635,USD,Azure Retail Prices API,2025-12-18T04:46:16.399276 +AZURE,eastasia,Standard_DC96as_v5,reserved_3y,NA,3.427207,USD,Azure Retail Prices API,2025-12-18T04:46:16.399281 +AZURE,eastasia,Standard_DC96as_v5,spot,NA,1.077854,USD,Azure Retail Prices API,2025-12-18T04:46:14.919993 +AZURE,eastasia,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495484 +AZURE,eastasia,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495493 +AZURE,eastasia,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495497 +AZURE,eastasia,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495489 +AZURE,eastasia,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496372 +AZURE,eastasia,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496380 +AZURE,eastasia,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496384 +AZURE,eastasia,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496376 +AZURE,eastasia,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497159 +AZURE,eastasia,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497173 +AZURE,eastasia,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497179 +AZURE,eastasia,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497165 +AZURE,eastasia,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498010 +AZURE,eastasia,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498021 +AZURE,eastasia,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498025 +AZURE,eastasia,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498017 +AZURE,eastasia,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491847 +AZURE,eastasia,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491855 +AZURE,eastasia,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491859 +AZURE,eastasia,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491851 +AZURE,eastasia,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492568 +AZURE,eastasia,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492577 +AZURE,eastasia,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492581 +AZURE,eastasia,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492573 +AZURE,eastasia,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493302 +AZURE,eastasia,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493310 +AZURE,eastasia,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493314 +AZURE,eastasia,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493306 +AZURE,eastasia,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494003 +AZURE,eastasia,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494011 +AZURE,eastasia,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494015 +AZURE,eastasia,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494007 +AZURE,eastasia,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494717 +AZURE,eastasia,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494725 +AZURE,eastasia,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494729 +AZURE,eastasia,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494721 +AZURE,eastasia,Standard_E128ds_v6,on_demand,NA,14.39,USD,Azure Retail Prices API,2025-12-18T04:46:14.920017 +AZURE,eastasia,Standard_E128ds_v6,reserved_1y,NA,8.921689,USD,Azure Retail Prices API,2025-12-18T04:46:16.399384 +AZURE,eastasia,Standard_E128ds_v6,reserved_3y,NA,5.612024,USD,Azure Retail Prices API,2025-12-18T04:46:16.399389 +AZURE,eastasia,Standard_E128ds_v6,spot,NA,2.659272,USD,Azure Retail Prices API,2025-12-18T04:46:14.918703 +AZURE,eastasia,Standard_E16_v3,on_demand,NA,1.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.918824 +AZURE,eastasia,Standard_E16_v3,reserved_1y,NA,0.785616,USD,Azure Retail Prices API,2025-12-18T04:46:16.398080 +AZURE,eastasia,Standard_E16_v3,reserved_3y,NA,0.527435,USD,Azure Retail Prices API,2025-12-18T04:46:16.398085 +AZURE,eastasia,Standard_E16_v3,spot,NA,0.246893,USD,Azure Retail Prices API,2025-12-18T04:46:14.919104 +AZURE,eastasia,Standard_E16a_v4,on_demand,NA,1.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.917991 +AZURE,eastasia,Standard_E16a_v4,reserved_1y,NA,0.785616,USD,Azure Retail Prices API,2025-12-18T04:46:16.397245 +AZURE,eastasia,Standard_E16a_v4,reserved_3y,NA,0.502321,USD,Azure Retail Prices API,2025-12-18T04:46:16.397250 +AZURE,eastasia,Standard_E16a_v4,spot,NA,0.246893,USD,Azure Retail Prices API,2025-12-18T04:46:14.920166 +AZURE,eastasia,Standard_E16ads_v5,on_demand,NA,2.124,USD,Azure Retail Prices API,2025-12-18T04:46:14.917437 +AZURE,eastasia,Standard_E16ads_v5,reserved_1y,NA,0.81895,USD,Azure Retail Prices API,2025-12-18T04:46:16.397729 +AZURE,eastasia,Standard_E16ads_v5,reserved_3y,NA,0.527435,USD,Azure Retail Prices API,2025-12-18T04:46:16.397734 +AZURE,eastasia,Standard_E16ads_v5,spot,NA,0.256502,USD,Azure Retail Prices API,2025-12-18T04:46:14.918489 +AZURE,eastasia,Standard_E16ads_v6,on_demand,NA,1.606,USD,Azure Retail Prices API,2025-12-18T04:46:14.918967 +AZURE,eastasia,Standard_E16ads_v6,reserved_1y,NA,0.947831,USD,Azure Retail Prices API,2025-12-18T04:46:16.398233 +AZURE,eastasia,Standard_E16ads_v6,reserved_3y,NA,0.610426,USD,Azure Retail Prices API,2025-12-18T04:46:16.398238 +AZURE,eastasia,Standard_E16ads_v6,spot,NA,0.296789,USD,Azure Retail Prices API,2025-12-18T04:46:14.918611 +AZURE,eastasia,Standard_E16as_v4,on_demand,NA,1.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.917535 +AZURE,eastasia,Standard_E16as_v4,reserved_1y,NA,0.785616,USD,Azure Retail Prices API,2025-12-18T04:46:16.396865 +AZURE,eastasia,Standard_E16as_v4,reserved_3y,NA,0.502321,USD,Azure Retail Prices API,2025-12-18T04:46:16.396870 +AZURE,eastasia,Standard_E16as_v4,spot,NA,0.246893,USD,Azure Retail Prices API,2025-12-18T04:46:14.918697 +AZURE,eastasia,Standard_E16as_v5,on_demand,NA,1.94,USD,Azure Retail Prices API,2025-12-18T04:46:14.918798 +AZURE,eastasia,Standard_E16as_v5,reserved_1y,NA,0.710388,USD,Azure Retail Prices API,2025-12-18T04:46:16.398659 +AZURE,eastasia,Standard_E16as_v5,reserved_3y,NA,0.457534,USD,Azure Retail Prices API,2025-12-18T04:46:16.398664 +AZURE,eastasia,Standard_E16as_v5,spot,NA,0.222499,USD,Azure Retail Prices API,2025-12-18T04:46:14.918018 +AZURE,eastasia,Standard_E16d_v4,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:46:14.917529 +AZURE,eastasia,Standard_E16d_v4,reserved_1y,NA,0.823174,USD,Azure Retail Prices API,2025-12-18T04:46:16.396854 +AZURE,eastasia,Standard_E16d_v4,reserved_3y,NA,0.526408,USD,Azure Retail Prices API,2025-12-18T04:46:16.396860 +AZURE,eastasia,Standard_E16d_v4,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:46:14.917589 +AZURE,eastasia,Standard_E16ds_v4,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:46:14.919729 +AZURE,eastasia,Standard_E16ds_v4,reserved_1y,NA,0.823174,USD,Azure Retail Prices API,2025-12-18T04:46:16.399022 +AZURE,eastasia,Standard_E16ds_v4,reserved_3y,NA,0.526408,USD,Azure Retail Prices API,2025-12-18T04:46:16.399027 +AZURE,eastasia,Standard_E16ds_v4,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:46:14.920058 +AZURE,eastasia,Standard_E16ds_v5,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:46:14.920267 +AZURE,eastasia,Standard_E16ds_v5,reserved_1y,NA,0.826027,USD,Azure Retail Prices API,2025-12-18T04:46:16.399617 +AZURE,eastasia,Standard_E16ds_v5,reserved_3y,NA,0.532002,USD,Azure Retail Prices API,2025-12-18T04:46:16.399623 +AZURE,eastasia,Standard_E16ds_v5,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:46:14.920189 +AZURE,eastasia,Standard_E16ds_v6,on_demand,NA,1.799,USD,Azure Retail Prices API,2025-12-18T04:46:14.918416 +AZURE,eastasia,Standard_E16ds_v6,reserved_1y,NA,1.115183,USD,Azure Retail Prices API,2025-12-18T04:46:16.397640 +AZURE,eastasia,Standard_E16ds_v6,reserved_3y,NA,0.701484,USD,Azure Retail Prices API,2025-12-18T04:46:16.397660 +AZURE,eastasia,Standard_E16ds_v6,spot,NA,0.332455,USD,Azure Retail Prices API,2025-12-18T04:46:14.918381 +AZURE,eastasia,Standard_E16pds_v6,on_demand,NA,1.288,USD,Azure Retail Prices API,2025-12-18T04:46:14.919490 +AZURE,eastasia,Standard_E16pds_v6,reserved_1y,NA,0.759932,USD,Azure Retail Prices API,2025-12-18T04:46:16.398795 +AZURE,eastasia,Standard_E16pds_v6,reserved_3y,NA,0.489422,USD,Azure Retail Prices API,2025-12-18T04:46:16.398798 +AZURE,eastasia,Standard_E16pds_v6,spot,NA,0.238022,USD,Azure Retail Prices API,2025-12-18T04:46:14.917503 +AZURE,eastasia,Standard_E16ps_v6,on_demand,NA,1.014,USD,Azure Retail Prices API,2025-12-18T04:46:14.919325 +AZURE,eastasia,Standard_E16ps_v6,reserved_1y,NA,0.598516,USD,Azure Retail Prices API,2025-12-18T04:46:16.398670 +AZURE,eastasia,Standard_E16ps_v6,reserved_3y,NA,0.385464,USD,Azure Retail Prices API,2025-12-18T04:46:16.398676 +AZURE,eastasia,Standard_E16ps_v6,spot,NA,0.187387,USD,Azure Retail Prices API,2025-12-18T04:46:14.920114 +AZURE,eastasia,Standard_E16s_v3,on_demand,NA,1.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.920243 +AZURE,eastasia,Standard_E16s_v3,reserved_1y,NA,0.785616,USD,Azure Retail Prices API,2025-12-18T04:46:16.399574 +AZURE,eastasia,Standard_E16s_v3,reserved_3y,NA,0.527435,USD,Azure Retail Prices API,2025-12-18T04:46:16.399579 +AZURE,eastasia,Standard_E16s_v3,spot,NA,0.246893,USD,Azure Retail Prices API,2025-12-18T04:46:14.918007 +AZURE,eastasia,Standard_E16s_v4,on_demand,NA,1.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.917374 +AZURE,eastasia,Standard_E16s_v4,reserved_1y,NA,0.785616,USD,Azure Retail Prices API,2025-12-18T04:46:16.396724 +AZURE,eastasia,Standard_E16s_v4,reserved_3y,NA,0.502321,USD,Azure Retail Prices API,2025-12-18T04:46:16.396741 +AZURE,eastasia,Standard_E16s_v4,spot,NA,0.246893,USD,Azure Retail Prices API,2025-12-18T04:46:14.920067 +AZURE,eastasia,Standard_E16s_v5,on_demand,NA,1.336,USD,Azure Retail Prices API,2025-12-18T04:46:14.920213 +AZURE,eastasia,Standard_E16s_v5,reserved_1y,NA,0.788242,USD,Azure Retail Prices API,2025-12-18T04:46:16.399532 +AZURE,eastasia,Standard_E16s_v5,reserved_3y,NA,0.49433,USD,Azure Retail Prices API,2025-12-18T04:46:16.399537 +AZURE,eastasia,Standard_E16s_v5,spot,NA,0.246893,USD,Azure Retail Prices API,2025-12-18T04:46:14.918029 +AZURE,eastasia,Standard_E20a_v4,on_demand,NA,1.67,USD,Azure Retail Prices API,2025-12-18T04:46:14.919197 +AZURE,eastasia,Standard_E20a_v4,reserved_1y,NA,0.981735,USD,Azure Retail Prices API,2025-12-18T04:46:16.398523 +AZURE,eastasia,Standard_E20a_v4,reserved_3y,NA,0.627854,USD,Azure Retail Prices API,2025-12-18T04:46:16.398528 +AZURE,eastasia,Standard_E20a_v4,spot,NA,0.308616,USD,Azure Retail Prices API,2025-12-18T04:46:14.917693 +AZURE,eastasia,Standard_E20ads_v5,on_demand,NA,1.735,USD,Azure Retail Prices API,2025-12-18T04:46:14.917578 +AZURE,eastasia,Standard_E20ads_v5,reserved_1y,NA,1.02363,USD,Azure Retail Prices API,2025-12-18T04:46:16.396875 +AZURE,eastasia,Standard_E20ads_v5,reserved_3y,NA,0.659285,USD,Azure Retail Prices API,2025-12-18T04:46:16.396880 +AZURE,eastasia,Standard_E20ads_v5,spot,NA,0.320628,USD,Azure Retail Prices API,2025-12-18T04:46:14.919248 +AZURE,eastasia,Standard_E20ads_v6,on_demand,NA,2.008,USD,Azure Retail Prices API,2025-12-18T04:46:14.917584 +AZURE,eastasia,Standard_E20ads_v6,reserved_1y,NA,1.184703,USD,Azure Retail Prices API,2025-12-18T04:46:16.396885 +AZURE,eastasia,Standard_E20ads_v6,reserved_3y,NA,0.763052,USD,Azure Retail Prices API,2025-12-18T04:46:16.396890 +AZURE,eastasia,Standard_E20ads_v6,spot,NA,0.371078,USD,Azure Retail Prices API,2025-12-18T04:46:14.918323 +AZURE,eastasia,Standard_E20as_v4,on_demand,NA,1.67,USD,Azure Retail Prices API,2025-12-18T04:46:14.920081 +AZURE,eastasia,Standard_E20as_v4,reserved_1y,NA,0.981735,USD,Azure Retail Prices API,2025-12-18T04:46:16.399426 +AZURE,eastasia,Standard_E20as_v4,reserved_3y,NA,0.627854,USD,Azure Retail Prices API,2025-12-18T04:46:16.399432 +AZURE,eastasia,Standard_E20as_v4,spot,NA,0.308616,USD,Azure Retail Prices API,2025-12-18T04:46:14.918835 +AZURE,eastasia,Standard_E20as_v5,on_demand,NA,2.425,USD,Azure Retail Prices API,2025-12-18T04:46:14.918354 +AZURE,eastasia,Standard_E20as_v5,reserved_1y,NA,0.8879,USD,Azure Retail Prices API,2025-12-18T04:46:16.399651 +AZURE,eastasia,Standard_E20as_v5,reserved_3y,NA,0.571918,USD,Azure Retail Prices API,2025-12-18T04:46:16.399656 +AZURE,eastasia,Standard_E20as_v5,spot,NA,0.278124,USD,Azure Retail Prices API,2025-12-18T04:46:14.917507 +AZURE,eastasia,Standard_E20d_v4,on_demand,NA,1.75,USD,Azure Retail Prices API,2025-12-18T04:46:14.920302 +AZURE,eastasia,Standard_E20d_v4,reserved_1y,NA,1.02911,USD,Azure Retail Prices API,2025-12-18T04:46:16.399640 +AZURE,eastasia,Standard_E20d_v4,reserved_3y,NA,0.657915,USD,Azure Retail Prices API,2025-12-18T04:46:16.399645 +AZURE,eastasia,Standard_E20d_v4,spot,NA,0.3234,USD,Azure Retail Prices API,2025-12-18T04:46:14.918117 +AZURE,eastasia,Standard_E20ds_v4,on_demand,NA,1.75,USD,Azure Retail Prices API,2025-12-18T04:46:14.918061 +AZURE,eastasia,Standard_E20ds_v4,reserved_1y,NA,1.02911,USD,Azure Retail Prices API,2025-12-18T04:46:16.397310 +AZURE,eastasia,Standard_E20ds_v4,reserved_3y,NA,0.657915,USD,Azure Retail Prices API,2025-12-18T04:46:16.397315 +AZURE,eastasia,Standard_E20ds_v4,spot,NA,0.3234,USD,Azure Retail Prices API,2025-12-18T04:46:14.917649 +AZURE,eastasia,Standard_E20ds_v5,on_demand,NA,1.75,USD,Azure Retail Prices API,2025-12-18T04:46:14.920139 +AZURE,eastasia,Standard_E20ds_v5,reserved_1y,NA,1.032534,USD,Azure Retail Prices API,2025-12-18T04:46:16.399477 +AZURE,eastasia,Standard_E20ds_v5,reserved_3y,NA,0.664992,USD,Azure Retail Prices API,2025-12-18T04:46:16.399483 +AZURE,eastasia,Standard_E20ds_v5,spot,NA,0.3234,USD,Azure Retail Prices API,2025-12-18T04:46:14.918132 +AZURE,eastasia,Standard_E20ds_v6,on_demand,NA,2.248,USD,Azure Retail Prices API,2025-12-18T04:46:14.920071 +AZURE,eastasia,Standard_E20ds_v6,reserved_1y,NA,1.394064,USD,Azure Retail Prices API,2025-12-18T04:46:16.399408 +AZURE,eastasia,Standard_E20ds_v6,reserved_3y,NA,0.876865,USD,Azure Retail Prices API,2025-12-18T04:46:16.399411 +AZURE,eastasia,Standard_E20ds_v6,spot,NA,0.41543,USD,Azure Retail Prices API,2025-12-18T04:46:14.918651 +AZURE,eastasia,Standard_E20s_v4,on_demand,NA,1.67,USD,Azure Retail Prices API,2025-12-18T04:46:14.918564 +AZURE,eastasia,Standard_E20s_v4,reserved_1y,NA,0.981735,USD,Azure Retail Prices API,2025-12-18T04:46:16.397798 +AZURE,eastasia,Standard_E20s_v4,reserved_3y,NA,0.627854,USD,Azure Retail Prices API,2025-12-18T04:46:16.397804 +AZURE,eastasia,Standard_E20s_v4,spot,NA,0.308616,USD,Azure Retail Prices API,2025-12-18T04:46:14.917751 +AZURE,eastasia,Standard_E20s_v5,on_demand,NA,1.67,USD,Azure Retail Prices API,2025-12-18T04:46:14.918938 +AZURE,eastasia,Standard_E20s_v5,reserved_1y,NA,0.985274,USD,Azure Retail Prices API,2025-12-18T04:46:16.398192 +AZURE,eastasia,Standard_E20s_v5,reserved_3y,NA,0.617884,USD,Azure Retail Prices API,2025-12-18T04:46:16.398197 +AZURE,eastasia,Standard_E20s_v5,spot,NA,0.308616,USD,Azure Retail Prices API,2025-12-18T04:46:14.919455 +AZURE,eastasia,Standard_E2_v3,on_demand,NA,0.167,USD,Azure Retail Prices API,2025-12-18T04:46:14.920224 +AZURE,eastasia,Standard_E2_v3,reserved_1y,NA,0.098174,USD,Azure Retail Prices API,2025-12-18T04:46:16.399543 +AZURE,eastasia,Standard_E2_v3,reserved_3y,NA,0.065944,USD,Azure Retail Prices API,2025-12-18T04:46:16.399548 +AZURE,eastasia,Standard_E2_v3,spot,NA,0.030862,USD,Azure Retail Prices API,2025-12-18T04:46:14.919344 +AZURE,eastasia,Standard_E2ads_v6,on_demand,NA,0.201,USD,Azure Retail Prices API,2025-12-18T04:46:14.919397 +AZURE,eastasia,Standard_E2ads_v6,reserved_1y,NA,0.118493,USD,Azure Retail Prices API,2025-12-18T04:46:16.398743 +AZURE,eastasia,Standard_E2ads_v6,reserved_3y,NA,0.076294,USD,Azure Retail Prices API,2025-12-18T04:46:16.398748 +AZURE,eastasia,Standard_E2ads_v6,spot,NA,0.037145,USD,Azure Retail Prices API,2025-12-18T04:46:14.918787 +AZURE,eastasia,Standard_E2ds_v5,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:46:14.919716 +AZURE,eastasia,Standard_E2ds_v5,reserved_1y,NA,0.103196,USD,Azure Retail Prices API,2025-12-18T04:46:16.399011 +AZURE,eastasia,Standard_E2ds_v5,reserved_3y,NA,0.066514,USD,Azure Retail Prices API,2025-12-18T04:46:16.399016 +AZURE,eastasia,Standard_E2ds_v5,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:46:14.918688 +AZURE,eastasia,Standard_E2ds_v6,on_demand,NA,0.225,USD,Azure Retail Prices API,2025-12-18T04:46:14.917945 +AZURE,eastasia,Standard_E2ds_v6,reserved_1y,NA,0.139384,USD,Azure Retail Prices API,2025-12-18T04:46:16.397194 +AZURE,eastasia,Standard_E2ds_v6,reserved_3y,NA,0.087671,USD,Azure Retail Prices API,2025-12-18T04:46:16.397198 +AZURE,eastasia,Standard_E2ds_v6,spot,NA,0.04158,USD,Azure Retail Prices API,2025-12-18T04:46:14.920157 +AZURE,eastasia,Standard_E2pds_v6,on_demand,NA,0.161,USD,Azure Retail Prices API,2025-12-18T04:46:14.918257 +AZURE,eastasia,Standard_E2pds_v6,reserved_1y,NA,0.094977,USD,Azure Retail Prices API,2025-12-18T04:46:16.397475 +AZURE,eastasia,Standard_E2pds_v6,reserved_3y,NA,0.061187,USD,Azure Retail Prices API,2025-12-18T04:46:16.397480 +AZURE,eastasia,Standard_E2pds_v6,spot,NA,0.029753,USD,Azure Retail Prices API,2025-12-18T04:46:14.917709 +AZURE,eastasia,Standard_E32_v3,on_demand,NA,2.672,USD,Azure Retail Prices API,2025-12-18T04:46:14.919619 +AZURE,eastasia,Standard_E32_v3,reserved_1y,NA,1.571119,USD,Azure Retail Prices API,2025-12-18T04:46:16.398919 +AZURE,eastasia,Standard_E32_v3,reserved_3y,NA,1.054909,USD,Azure Retail Prices API,2025-12-18T04:46:16.398924 +AZURE,eastasia,Standard_E32_v3,spot,NA,0.493786,USD,Azure Retail Prices API,2025-12-18T04:46:14.920028 +AZURE,eastasia,Standard_E32a_v4,on_demand,NA,2.672,USD,Azure Retail Prices API,2025-12-18T04:46:14.919415 +AZURE,eastasia,Standard_E32a_v4,reserved_1y,NA,1.571119,USD,Azure Retail Prices API,2025-12-18T04:46:16.398763 +AZURE,eastasia,Standard_E32a_v4,reserved_3y,NA,1.00468,USD,Azure Retail Prices API,2025-12-18T04:46:16.398766 +AZURE,eastasia,Standard_E32a_v4,spot,NA,0.493786,USD,Azure Retail Prices API,2025-12-18T04:46:14.918994 +AZURE,eastasia,Standard_E32ads_v5,on_demand,NA,2.776,USD,Azure Retail Prices API,2025-12-18T04:46:14.919501 +AZURE,eastasia,Standard_E32ads_v5,reserved_1y,NA,1.637785,USD,Azure Retail Prices API,2025-12-18T04:46:16.398813 +AZURE,eastasia,Standard_E32ads_v5,reserved_3y,NA,1.054871,USD,Azure Retail Prices API,2025-12-18T04:46:16.398817 +AZURE,eastasia,Standard_E32ads_v5,spot,NA,0.513005,USD,Azure Retail Prices API,2025-12-18T04:46:14.919192 +AZURE,eastasia,Standard_E32ads_v6,on_demand,NA,3.213,USD,Azure Retail Prices API,2025-12-18T04:46:14.919884 +AZURE,eastasia,Standard_E32ads_v6,reserved_1y,NA,1.895548,USD,Azure Retail Prices API,2025-12-18T04:46:16.399214 +AZURE,eastasia,Standard_E32ads_v6,reserved_3y,NA,1.220852,USD,Azure Retail Prices API,2025-12-18T04:46:16.399219 +AZURE,eastasia,Standard_E32ads_v6,spot,NA,0.593762,USD,Azure Retail Prices API,2025-12-18T04:46:14.917572 +AZURE,eastasia,Standard_E32as_v4,on_demand,NA,2.672,USD,Azure Retail Prices API,2025-12-18T04:46:14.917631 +AZURE,eastasia,Standard_E32as_v4,reserved_1y,NA,1.571119,USD,Azure Retail Prices API,2025-12-18T04:46:16.396924 +AZURE,eastasia,Standard_E32as_v4,reserved_3y,NA,1.00468,USD,Azure Retail Prices API,2025-12-18T04:46:16.396927 +AZURE,eastasia,Standard_E32as_v4,spot,NA,0.493786,USD,Azure Retail Prices API,2025-12-18T04:46:14.919668 +AZURE,eastasia,Standard_E32as_v5,on_demand,NA,2.408,USD,Azure Retail Prices API,2025-12-18T04:46:14.919825 +AZURE,eastasia,Standard_E32as_v5,reserved_1y,NA,1.420776,USD,Azure Retail Prices API,2025-12-18T04:46:16.399123 +AZURE,eastasia,Standard_E32as_v5,reserved_3y,NA,0.91503,USD,Azure Retail Prices API,2025-12-18T04:46:16.399128 +AZURE,eastasia,Standard_E32as_v5,spot,NA,0.444998,USD,Azure Retail Prices API,2025-12-18T04:46:14.919262 +AZURE,eastasia,Standard_E32d_v4,on_demand,NA,2.8,USD,Azure Retail Prices API,2025-12-18T04:46:14.919681 +AZURE,eastasia,Standard_E32d_v4,reserved_1y,NA,1.646347,USD,Azure Retail Prices API,2025-12-18T04:46:16.398981 +AZURE,eastasia,Standard_E32d_v4,reserved_3y,NA,1.052816,USD,Azure Retail Prices API,2025-12-18T04:46:16.398985 +AZURE,eastasia,Standard_E32d_v4,spot,NA,0.51744,USD,Azure Retail Prices API,2025-12-18T04:46:14.919659 +AZURE,eastasia,Standard_E32ds_v4,on_demand,NA,2.8,USD,Azure Retail Prices API,2025-12-18T04:46:14.917884 +AZURE,eastasia,Standard_E32ds_v4,reserved_1y,NA,1.646347,USD,Azure Retail Prices API,2025-12-18T04:46:16.397092 +AZURE,eastasia,Standard_E32ds_v4,reserved_3y,NA,1.052816,USD,Azure Retail Prices API,2025-12-18T04:46:16.397098 +AZURE,eastasia,Standard_E32ds_v4,spot,NA,0.51744,USD,Azure Retail Prices API,2025-12-18T04:46:14.919267 +AZURE,eastasia,Standard_E32ds_v5,on_demand,NA,2.8,USD,Azure Retail Prices API,2025-12-18T04:46:14.918627 +AZURE,eastasia,Standard_E32ds_v5,reserved_1y,NA,1.652055,USD,Azure Retail Prices API,2025-12-18T04:46:16.397869 +AZURE,eastasia,Standard_E32ds_v5,reserved_3y,NA,1.064003,USD,Azure Retail Prices API,2025-12-18T04:46:16.397874 +AZURE,eastasia,Standard_E32ds_v5,spot,NA,0.51744,USD,Azure Retail Prices API,2025-12-18T04:46:14.918091 +AZURE,eastasia,Standard_E32ds_v6,on_demand,NA,3.597,USD,Azure Retail Prices API,2025-12-18T04:46:14.918402 +AZURE,eastasia,Standard_E32ds_v6,reserved_1y,NA,2.230365,USD,Azure Retail Prices API,2025-12-18T04:46:16.397619 +AZURE,eastasia,Standard_E32ds_v6,reserved_3y,NA,1.403006,USD,Azure Retail Prices API,2025-12-18T04:46:16.397624 +AZURE,eastasia,Standard_E32ds_v6,spot,NA,0.664726,USD,Azure Retail Prices API,2025-12-18T04:46:14.919998 +AZURE,eastasia,Standard_E32pds_v6,on_demand,NA,2.576,USD,Azure Retail Prices API,2025-12-18T04:46:14.918432 +AZURE,eastasia,Standard_E32pds_v6,reserved_1y,NA,1.519863,USD,Azure Retail Prices API,2025-12-18T04:46:16.397664 +AZURE,eastasia,Standard_E32pds_v6,reserved_3y,NA,0.978881,USD,Azure Retail Prices API,2025-12-18T04:46:16.397668 +AZURE,eastasia,Standard_E32pds_v6,spot,NA,0.476045,USD,Azure Retail Prices API,2025-12-18T04:46:14.919520 +AZURE,eastasia,Standard_E32ps_v6,on_demand,NA,2.029,USD,Azure Retail Prices API,2025-12-18T04:46:14.919535 +AZURE,eastasia,Standard_E32ps_v6,reserved_1y,NA,1.197032,USD,Azure Retail Prices API,2025-12-18T04:46:16.398842 +AZURE,eastasia,Standard_E32ps_v6,reserved_3y,NA,0.770928,USD,Azure Retail Prices API,2025-12-18T04:46:16.398847 +AZURE,eastasia,Standard_E32ps_v6,spot,NA,0.374959,USD,Azure Retail Prices API,2025-12-18T04:46:14.918263 +AZURE,eastasia,Standard_E32s_v3,on_demand,NA,2.672,USD,Azure Retail Prices API,2025-12-18T04:46:14.919164 +AZURE,eastasia,Standard_E32s_v3,reserved_1y,NA,1.571119,USD,Azure Retail Prices API,2025-12-18T04:46:16.398456 +AZURE,eastasia,Standard_E32s_v3,reserved_3y,NA,1.054909,USD,Azure Retail Prices API,2025-12-18T04:46:16.398461 +AZURE,eastasia,Standard_E32s_v3,spot,NA,0.493786,USD,Azure Retail Prices API,2025-12-18T04:46:14.919817 +AZURE,eastasia,Standard_E32s_v4,on_demand,NA,2.672,USD,Azure Retail Prices API,2025-12-18T04:46:14.919158 +AZURE,eastasia,Standard_E32s_v4,reserved_1y,NA,1.571119,USD,Azure Retail Prices API,2025-12-18T04:46:16.398446 +AZURE,eastasia,Standard_E32s_v4,reserved_3y,NA,1.00468,USD,Azure Retail Prices API,2025-12-18T04:46:16.398451 +AZURE,eastasia,Standard_E32s_v4,spot,NA,0.493786,USD,Azure Retail Prices API,2025-12-18T04:46:14.919306 +AZURE,eastasia,Standard_E32s_v5,on_demand,NA,2.672,USD,Azure Retail Prices API,2025-12-18T04:46:14.919243 +AZURE,eastasia,Standard_E32s_v5,reserved_1y,NA,1.576484,USD,Azure Retail Prices API,2025-12-18T04:46:16.398596 +AZURE,eastasia,Standard_E32s_v5,reserved_3y,NA,0.988623,USD,Azure Retail Prices API,2025-12-18T04:46:16.398601 +AZURE,eastasia,Standard_E32s_v5,spot,NA,0.493786,USD,Azure Retail Prices API,2025-12-18T04:46:14.919836 +AZURE,eastasia,Standard_E48a_v4,on_demand,NA,4.008,USD,Azure Retail Prices API,2025-12-18T04:46:14.919650 +AZURE,eastasia,Standard_E48a_v4,reserved_1y,NA,2.356735,USD,Azure Retail Prices API,2025-12-18T04:46:16.398950 +AZURE,eastasia,Standard_E48a_v4,reserved_3y,NA,1.507002,USD,Azure Retail Prices API,2025-12-18T04:46:16.398955 +AZURE,eastasia,Standard_E48a_v4,spot,NA,0.740678,USD,Azure Retail Prices API,2025-12-18T04:46:14.918910 +AZURE,eastasia,Standard_E48ads_v5,on_demand,NA,6.372,USD,Azure Retail Prices API,2025-12-18T04:46:14.917698 +AZURE,eastasia,Standard_E48ads_v5,reserved_1y,NA,2.456735,USD,Azure Retail Prices API,2025-12-18T04:46:16.398753 +AZURE,eastasia,Standard_E48ads_v5,reserved_3y,NA,1.582306,USD,Azure Retail Prices API,2025-12-18T04:46:16.398758 +AZURE,eastasia,Standard_E48ads_v5,spot,NA,0.769507,USD,Azure Retail Prices API,2025-12-18T04:46:14.919202 +AZURE,eastasia,Standard_E48ads_v6,on_demand,NA,4.819,USD,Azure Retail Prices API,2025-12-18T04:46:14.917831 +AZURE,eastasia,Standard_E48ads_v6,reserved_1y,NA,2.843379,USD,Azure Retail Prices API,2025-12-18T04:46:16.397039 +AZURE,eastasia,Standard_E48ads_v6,reserved_3y,NA,1.831279,USD,Azure Retail Prices API,2025-12-18T04:46:16.397045 +AZURE,eastasia,Standard_E48ads_v6,spot,NA,0.890551,USD,Azure Retail Prices API,2025-12-18T04:46:14.918962 +AZURE,eastasia,Standard_E48as_v4,on_demand,NA,4.008,USD,Azure Retail Prices API,2025-12-18T04:46:14.920320 +AZURE,eastasia,Standard_E48as_v4,reserved_1y,NA,2.356735,USD,Azure Retail Prices API,2025-12-18T04:46:16.399662 +AZURE,eastasia,Standard_E48as_v4,reserved_3y,NA,1.507002,USD,Azure Retail Prices API,2025-12-18T04:46:16.399667 +AZURE,eastasia,Standard_E48as_v4,spot,NA,0.740678,USD,Azure Retail Prices API,2025-12-18T04:46:14.918113 +AZURE,eastasia,Standard_E48as_v5,on_demand,NA,3.612,USD,Azure Retail Prices API,2025-12-18T04:46:14.918137 +AZURE,eastasia,Standard_E48as_v5,reserved_1y,NA,2.13105,USD,Azure Retail Prices API,2025-12-18T04:46:16.397374 +AZURE,eastasia,Standard_E48as_v5,reserved_3y,NA,1.372565,USD,Azure Retail Prices API,2025-12-18T04:46:16.397379 +AZURE,eastasia,Standard_E48as_v5,spot,NA,0.667498,USD,Azure Retail Prices API,2025-12-18T04:46:14.918549 +AZURE,eastasia,Standard_E48d_v4,on_demand,NA,4.2,USD,Azure Retail Prices API,2025-12-18T04:46:14.919779 +AZURE,eastasia,Standard_E48d_v4,reserved_1y,NA,2.469635,USD,Azure Retail Prices API,2025-12-18T04:46:16.399088 +AZURE,eastasia,Standard_E48d_v4,reserved_3y,NA,1.579186,USD,Azure Retail Prices API,2025-12-18T04:46:16.399092 +AZURE,eastasia,Standard_E48d_v4,spot,NA,0.77616,USD,Azure Retail Prices API,2025-12-18T04:46:14.917524 +AZURE,eastasia,Standard_E48ds_v4,on_demand,NA,4.2,USD,Azure Retail Prices API,2025-12-18T04:46:14.919024 +AZURE,eastasia,Standard_E48ds_v4,reserved_1y,NA,2.469635,USD,Azure Retail Prices API,2025-12-18T04:46:16.398274 +AZURE,eastasia,Standard_E48ds_v4,reserved_3y,NA,1.579186,USD,Azure Retail Prices API,2025-12-18T04:46:16.398279 +AZURE,eastasia,Standard_E48ds_v4,spot,NA,0.77616,USD,Azure Retail Prices API,2025-12-18T04:46:14.918437 +AZURE,eastasia,Standard_E48ds_v5,on_demand,NA,4.2,USD,Azure Retail Prices API,2025-12-18T04:46:14.918808 +AZURE,eastasia,Standard_E48ds_v5,reserved_1y,NA,2.477968,USD,Azure Retail Prices API,2025-12-18T04:46:16.398059 +AZURE,eastasia,Standard_E48ds_v5,reserved_3y,NA,1.596005,USD,Azure Retail Prices API,2025-12-18T04:46:16.398064 +AZURE,eastasia,Standard_E48ds_v5,spot,NA,0.77616,USD,Azure Retail Prices API,2025-12-18T04:46:14.918819 +AZURE,eastasia,Standard_E48ds_v6,on_demand,NA,5.396,USD,Azure Retail Prices API,2025-12-18T04:46:14.917918 +AZURE,eastasia,Standard_E48ds_v6,reserved_1y,NA,3.345662,USD,Azure Retail Prices API,2025-12-18T04:46:16.397169 +AZURE,eastasia,Standard_E48ds_v6,reserved_3y,NA,2.10449,USD,Azure Retail Prices API,2025-12-18T04:46:16.397175 +AZURE,eastasia,Standard_E48ds_v6,spot,NA,0.997181,USD,Azure Retail Prices API,2025-12-18T04:46:14.917879 +AZURE,eastasia,Standard_E48pds_v6,on_demand,NA,3.864,USD,Azure Retail Prices API,2025-12-18T04:46:14.918748 +AZURE,eastasia,Standard_E48pds_v6,reserved_1y,NA,2.279795,USD,Azure Retail Prices API,2025-12-18T04:46:16.397985 +AZURE,eastasia,Standard_E48pds_v6,reserved_3y,NA,1.468303,USD,Azure Retail Prices API,2025-12-18T04:46:16.397991 +AZURE,eastasia,Standard_E48pds_v6,spot,NA,0.714067,USD,Azure Retail Prices API,2025-12-18T04:46:14.919276 +AZURE,eastasia,Standard_E48ps_v6,on_demand,NA,3.043,USD,Azure Retail Prices API,2025-12-18T04:46:14.918391 +AZURE,eastasia,Standard_E48ps_v6,reserved_1y,NA,1.795434,USD,Azure Retail Prices API,2025-12-18T04:46:16.397609 +AZURE,eastasia,Standard_E48ps_v6,reserved_3y,NA,1.156431,USD,Azure Retail Prices API,2025-12-18T04:46:16.397614 +AZURE,eastasia,Standard_E48ps_v6,spot,NA,0.562346,USD,Azure Retail Prices API,2025-12-18T04:46:14.919891 +AZURE,eastasia,Standard_E48s_v4,on_demand,NA,4.008,USD,Azure Retail Prices API,2025-12-18T04:46:14.917730 +AZURE,eastasia,Standard_E48s_v4,reserved_1y,NA,2.356735,USD,Azure Retail Prices API,2025-12-18T04:46:16.396988 +AZURE,eastasia,Standard_E48s_v4,reserved_3y,NA,1.507002,USD,Azure Retail Prices API,2025-12-18T04:46:16.396993 +AZURE,eastasia,Standard_E48s_v4,spot,NA,0.740678,USD,Azure Retail Prices API,2025-12-18T04:46:14.917443 +AZURE,eastasia,Standard_E48s_v5,on_demand,NA,4.008,USD,Azure Retail Prices API,2025-12-18T04:46:14.920258 +AZURE,eastasia,Standard_E48s_v5,reserved_1y,NA,2.364726,USD,Azure Retail Prices API,2025-12-18T04:46:16.399595 +AZURE,eastasia,Standard_E48s_v5,reserved_3y,NA,1.482953,USD,Azure Retail Prices API,2025-12-18T04:46:16.399601 +AZURE,eastasia,Standard_E48s_v5,spot,NA,0.740678,USD,Azure Retail Prices API,2025-12-18T04:46:14.918312 +AZURE,eastasia,Standard_E4_v3,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:14.919038 +AZURE,eastasia,Standard_E4_v3,reserved_1y,NA,0.196347,USD,Azure Retail Prices API,2025-12-18T04:46:16.398307 +AZURE,eastasia,Standard_E4_v3,reserved_3y,NA,0.131849,USD,Azure Retail Prices API,2025-12-18T04:46:16.398312 +AZURE,eastasia,Standard_E4_v3,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:14.919608 +AZURE,eastasia,Standard_E4a_v4,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:14.918412 +AZURE,eastasia,Standard_E4a_v4,reserved_1y,NA,0.196347,USD,Azure Retail Prices API,2025-12-18T04:46:16.397629 +AZURE,eastasia,Standard_E4a_v4,reserved_3y,NA,0.125571,USD,Azure Retail Prices API,2025-12-18T04:46:16.397634 +AZURE,eastasia,Standard_E4a_v4,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:14.919422 +AZURE,eastasia,Standard_E4ads_v5,on_demand,NA,0.531,USD,Azure Retail Prices API,2025-12-18T04:46:14.917782 +AZURE,eastasia,Standard_E4ads_v5,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:16.398648 +AZURE,eastasia,Standard_E4ads_v5,reserved_3y,NA,0.131849,USD,Azure Retail Prices API,2025-12-18T04:46:16.398654 +AZURE,eastasia,Standard_E4ads_v5,spot,NA,0.064126,USD,Azure Retail Prices API,2025-12-18T04:46:14.918147 +AZURE,eastasia,Standard_E4ads_v6,on_demand,NA,0.402,USD,Azure Retail Prices API,2025-12-18T04:46:14.918349 +AZURE,eastasia,Standard_E4ads_v6,reserved_1y,NA,0.236986,USD,Azure Retail Prices API,2025-12-18T04:46:16.397586 +AZURE,eastasia,Standard_E4ads_v6,reserved_3y,NA,0.152626,USD,Azure Retail Prices API,2025-12-18T04:46:16.397592 +AZURE,eastasia,Standard_E4ads_v6,spot,NA,0.07429,USD,Azure Retail Prices API,2025-12-18T04:46:14.918067 +AZURE,eastasia,Standard_E4as_v4,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:14.917423 +AZURE,eastasia,Standard_E4as_v4,reserved_1y,NA,0.196347,USD,Azure Retail Prices API,2025-12-18T04:46:16.396782 +AZURE,eastasia,Standard_E4as_v4,reserved_3y,NA,0.125571,USD,Azure Retail Prices API,2025-12-18T04:46:16.396787 +AZURE,eastasia,Standard_E4as_v4,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:14.919320 +AZURE,eastasia,Standard_E4as_v5,on_demand,NA,0.485,USD,Azure Retail Prices API,2025-12-18T04:46:14.919427 +AZURE,eastasia,Standard_E4as_v5,reserved_1y,NA,0.177626,USD,Azure Retail Prices API,2025-12-18T04:46:16.399585 +AZURE,eastasia,Standard_E4as_v5,reserved_3y,NA,0.114384,USD,Azure Retail Prices API,2025-12-18T04:46:16.399590 +AZURE,eastasia,Standard_E4as_v5,spot,NA,0.055625,USD,Azure Retail Prices API,2025-12-18T04:46:14.919257 +AZURE,eastasia,Standard_E4d_v4,on_demand,NA,0.35,USD,Azure Retail Prices API,2025-12-18T04:46:14.919988 +AZURE,eastasia,Standard_E4d_v4,reserved_1y,NA,0.205822,USD,Azure Retail Prices API,2025-12-18T04:46:16.399353 +AZURE,eastasia,Standard_E4d_v4,reserved_3y,NA,0.131583,USD,Azure Retail Prices API,2025-12-18T04:46:16.399358 +AZURE,eastasia,Standard_E4d_v4,spot,NA,0.06468,USD,Azure Retail Prices API,2025-12-18T04:46:14.919406 +AZURE,eastasia,Standard_E4ds_v4,on_demand,NA,0.35,USD,Azure Retail Prices API,2025-12-18T04:46:14.919187 +AZURE,eastasia,Standard_E4ds_v4,reserved_1y,NA,0.205822,USD,Azure Retail Prices API,2025-12-18T04:46:16.398512 +AZURE,eastasia,Standard_E4ds_v4,reserved_3y,NA,0.131583,USD,Azure Retail Prices API,2025-12-18T04:46:16.398517 +AZURE,eastasia,Standard_E4ds_v4,spot,NA,0.06468,USD,Azure Retail Prices API,2025-12-18T04:46:14.919388 +AZURE,eastasia,Standard_E4ds_v5,on_demand,NA,0.35,USD,Azure Retail Prices API,2025-12-18T04:46:14.918370 +AZURE,eastasia,Standard_E4ds_v5,reserved_1y,NA,0.206507,USD,Azure Retail Prices API,2025-12-18T04:46:16.397598 +AZURE,eastasia,Standard_E4ds_v5,reserved_3y,NA,0.132991,USD,Azure Retail Prices API,2025-12-18T04:46:16.397603 +AZURE,eastasia,Standard_E4ds_v5,spot,NA,0.06468,USD,Azure Retail Prices API,2025-12-18T04:46:14.918333 +AZURE,eastasia,Standard_E4ds_v6,on_demand,NA,0.45,USD,Azure Retail Prices API,2025-12-18T04:46:14.918900 +AZURE,eastasia,Standard_E4ds_v6,reserved_1y,NA,0.278767,USD,Azure Retail Prices API,2025-12-18T04:46:16.398150 +AZURE,eastasia,Standard_E4ds_v6,reserved_3y,NA,0.175381,USD,Azure Retail Prices API,2025-12-18T04:46:16.398155 +AZURE,eastasia,Standard_E4ds_v6,spot,NA,0.08316,USD,Azure Retail Prices API,2025-12-18T04:46:14.920119 +AZURE,eastasia,Standard_E4pds_v6,on_demand,NA,0.322,USD,Azure Retail Prices API,2025-12-18T04:46:14.919845 +AZURE,eastasia,Standard_E4pds_v6,reserved_1y,NA,0.189954,USD,Azure Retail Prices API,2025-12-18T04:46:16.399140 +AZURE,eastasia,Standard_E4pds_v6,reserved_3y,NA,0.122374,USD,Azure Retail Prices API,2025-12-18T04:46:16.399143 +AZURE,eastasia,Standard_E4pds_v6,spot,NA,0.059506,USD,Azure Retail Prices API,2025-12-18T04:46:14.918763 +AZURE,eastasia,Standard_E4ps_v6,on_demand,NA,0.254,USD,Azure Retail Prices API,2025-12-18T04:46:14.918097 +AZURE,eastasia,Standard_E4ps_v6,reserved_1y,NA,0.149658,USD,Azure Retail Prices API,2025-12-18T04:46:16.397341 +AZURE,eastasia,Standard_E4ps_v6,reserved_3y,NA,0.096385,USD,Azure Retail Prices API,2025-12-18T04:46:16.397346 +AZURE,eastasia,Standard_E4ps_v6,spot,NA,0.046939,USD,Azure Retail Prices API,2025-12-18T04:46:14.917771 +AZURE,eastasia,Standard_E4s_v4,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:14.917847 +AZURE,eastasia,Standard_E4s_v4,reserved_1y,NA,0.196347,USD,Azure Retail Prices API,2025-12-18T04:46:16.397062 +AZURE,eastasia,Standard_E4s_v4,reserved_3y,NA,0.125571,USD,Azure Retail Prices API,2025-12-18T04:46:16.397067 +AZURE,eastasia,Standard_E4s_v4,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:14.919677 +AZURE,eastasia,Standard_E4s_v5,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:14.919339 +AZURE,eastasia,Standard_E4s_v5,reserved_1y,NA,0.197032,USD,Azure Retail Prices API,2025-12-18T04:46:16.398693 +AZURE,eastasia,Standard_E4s_v5,reserved_3y,NA,0.123592,USD,Azure Retail Prices API,2025-12-18T04:46:16.398698 +AZURE,eastasia,Standard_E4s_v5,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:14.918792 +AZURE,eastasia,Standard_E64_v3,on_demand,NA,4.81,USD,Azure Retail Prices API,2025-12-18T04:46:14.919785 +AZURE,eastasia,Standard_E64_v3,reserved_1y,NA,2.828082,USD,Azure Retail Prices API,2025-12-18T04:46:16.399102 +AZURE,eastasia,Standard_E64_v3,reserved_3y,NA,1.89882,USD,Azure Retail Prices API,2025-12-18T04:46:16.399108 +AZURE,eastasia,Standard_E64_v3,spot,NA,0.888888,USD,Azure Retail Prices API,2025-12-18T04:46:14.919100 +AZURE,eastasia,Standard_E64a_v4,on_demand,NA,5.344,USD,Azure Retail Prices API,2025-12-18T04:46:14.918574 +AZURE,eastasia,Standard_E64a_v4,reserved_1y,NA,3.142237,USD,Azure Retail Prices API,2025-12-18T04:46:16.397820 +AZURE,eastasia,Standard_E64a_v4,reserved_3y,NA,2.009361,USD,Azure Retail Prices API,2025-12-18T04:46:16.397825 +AZURE,eastasia,Standard_E64a_v4,spot,NA,0.987571,USD,Azure Retail Prices API,2025-12-18T04:46:14.919629 +AZURE,eastasia,Standard_E64ads_v5,on_demand,NA,8.496,USD,Azure Retail Prices API,2025-12-18T04:46:14.918722 +AZURE,eastasia,Standard_E64ads_v5,reserved_1y,NA,3.275685,USD,Azure Retail Prices API,2025-12-18T04:46:16.398415 +AZURE,eastasia,Standard_E64ads_v5,reserved_3y,NA,2.109741,USD,Azure Retail Prices API,2025-12-18T04:46:16.398420 +AZURE,eastasia,Standard_E64ads_v5,spot,NA,1.02601,USD,Azure Retail Prices API,2025-12-18T04:46:14.917457 +AZURE,eastasia,Standard_E64ads_v6,on_demand,NA,6.426,USD,Azure Retail Prices API,2025-12-18T04:46:14.917912 +AZURE,eastasia,Standard_E64ads_v6,reserved_1y,NA,3.791096,USD,Azure Retail Prices API,2025-12-18T04:46:16.397158 +AZURE,eastasia,Standard_E64ads_v6,reserved_3y,NA,2.441743,USD,Azure Retail Prices API,2025-12-18T04:46:16.397164 +AZURE,eastasia,Standard_E64ads_v6,spot,NA,1.187525,USD,Azure Retail Prices API,2025-12-18T04:46:14.917986 +AZURE,eastasia,Standard_E64as_v4,on_demand,NA,5.344,USD,Azure Retail Prices API,2025-12-18T04:46:14.918202 +AZURE,eastasia,Standard_E64as_v4,reserved_1y,NA,3.142237,USD,Azure Retail Prices API,2025-12-18T04:46:16.397446 +AZURE,eastasia,Standard_E64as_v4,reserved_3y,NA,2.009361,USD,Azure Retail Prices API,2025-12-18T04:46:16.397450 +AZURE,eastasia,Standard_E64as_v4,spot,NA,0.987571,USD,Azure Retail Prices API,2025-12-18T04:46:14.919525 +AZURE,eastasia,Standard_E64as_v5,on_demand,NA,7.76,USD,Azure Retail Prices API,2025-12-18T04:46:14.917600 +AZURE,eastasia,Standard_E64as_v5,reserved_1y,NA,2.841438,USD,Azure Retail Prices API,2025-12-18T04:46:16.399191 +AZURE,eastasia,Standard_E64as_v5,reserved_3y,NA,1.830099,USD,Azure Retail Prices API,2025-12-18T04:46:16.399197 +AZURE,eastasia,Standard_E64as_v5,spot,NA,0.889997,USD,Azure Retail Prices API,2025-12-18T04:46:14.919004 +AZURE,eastasia,Standard_E64d_v4,on_demand,NA,5.6,USD,Azure Retail Prices API,2025-12-18T04:46:14.919178 +AZURE,eastasia,Standard_E64d_v4,reserved_1y,NA,3.292808,USD,Azure Retail Prices API,2025-12-18T04:46:16.398477 +AZURE,eastasia,Standard_E64d_v4,reserved_3y,NA,2.105594,USD,Azure Retail Prices API,2025-12-18T04:46:16.398482 +AZURE,eastasia,Standard_E64d_v4,spot,NA,1.03488,USD,Azure Retail Prices API,2025-12-18T04:46:14.918584 +AZURE,eastasia,Standard_E64ds_v4,on_demand,NA,5.6,USD,Azure Retail Prices API,2025-12-18T04:46:14.918743 +AZURE,eastasia,Standard_E64ds_v4,reserved_1y,NA,3.292808,USD,Azure Retail Prices API,2025-12-18T04:46:16.397974 +AZURE,eastasia,Standard_E64ds_v4,reserved_3y,NA,2.105594,USD,Azure Retail Prices API,2025-12-18T04:46:16.397979 +AZURE,eastasia,Standard_E64ds_v4,spot,NA,1.03488,USD,Azure Retail Prices API,2025-12-18T04:46:14.917679 +AZURE,eastasia,Standard_E64ds_v5,on_demand,NA,5.6,USD,Azure Retail Prices API,2025-12-18T04:46:14.919207 +AZURE,eastasia,Standard_E64ds_v5,reserved_1y,NA,3.303995,USD,Azure Retail Prices API,2025-12-18T04:46:16.398533 +AZURE,eastasia,Standard_E64ds_v5,reserved_3y,NA,2.128006,USD,Azure Retail Prices API,2025-12-18T04:46:16.398538 +AZURE,eastasia,Standard_E64ds_v5,spot,NA,1.03488,USD,Azure Retail Prices API,2025-12-18T04:46:14.920198 +AZURE,eastasia,Standard_E64ds_v6,on_demand,NA,7.195,USD,Azure Retail Prices API,2025-12-18T04:46:14.918278 +AZURE,eastasia,Standard_E64ds_v6,reserved_1y,NA,4.460845,USD,Azure Retail Prices API,2025-12-18T04:46:16.397495 +AZURE,eastasia,Standard_E64ds_v6,reserved_3y,NA,2.806012,USD,Azure Retail Prices API,2025-12-18T04:46:16.397500 +AZURE,eastasia,Standard_E64ds_v6,spot,NA,1.329636,USD,Azure Retail Prices API,2025-12-18T04:46:14.920293 +AZURE,eastasia,Standard_E64pds_v6,on_demand,NA,5.152,USD,Azure Retail Prices API,2025-12-18T04:46:14.918484 +AZURE,eastasia,Standard_E64pds_v6,reserved_1y,NA,3.039726,USD,Azure Retail Prices API,2025-12-18T04:46:16.397718 +AZURE,eastasia,Standard_E64pds_v6,reserved_3y,NA,1.957763,USD,Azure Retail Prices API,2025-12-18T04:46:16.397724 +AZURE,eastasia,Standard_E64pds_v6,spot,NA,0.95209,USD,Azure Retail Prices API,2025-12-18T04:46:14.920217 +AZURE,eastasia,Standard_E64ps_v6,on_demand,NA,4.058,USD,Azure Retail Prices API,2025-12-18T04:46:14.919058 +AZURE,eastasia,Standard_E64ps_v6,reserved_1y,NA,2.39395,USD,Azure Retail Prices API,2025-12-18T04:46:16.398336 +AZURE,eastasia,Standard_E64ps_v6,reserved_3y,NA,1.541895,USD,Azure Retail Prices API,2025-12-18T04:46:16.398339 +AZURE,eastasia,Standard_E64ps_v6,spot,NA,0.749918,USD,Azure Retail Prices API,2025-12-18T04:46:14.918292 +AZURE,eastasia,Standard_E64s_v3,on_demand,NA,4.81,USD,Azure Retail Prices API,2025-12-18T04:46:14.920007 +AZURE,eastasia,Standard_E64s_v3,reserved_1y,NA,2.828082,USD,Azure Retail Prices API,2025-12-18T04:46:16.399364 +AZURE,eastasia,Standard_E64s_v3,reserved_3y,NA,1.89882,USD,Azure Retail Prices API,2025-12-18T04:46:16.399369 +AZURE,eastasia,Standard_E64s_v3,spot,NA,0.888888,USD,Azure Retail Prices API,2025-12-18T04:46:14.919009 +AZURE,eastasia,Standard_E64s_v4,on_demand,NA,5.344,USD,Azure Retail Prices API,2025-12-18T04:46:14.918317 +AZURE,eastasia,Standard_E64s_v4,reserved_1y,NA,3.142237,USD,Azure Retail Prices API,2025-12-18T04:46:16.397555 +AZURE,eastasia,Standard_E64s_v4,reserved_3y,NA,2.009361,USD,Azure Retail Prices API,2025-12-18T04:46:16.397560 +AZURE,eastasia,Standard_E64s_v4,spot,NA,0.987571,USD,Azure Retail Prices API,2025-12-18T04:46:14.919365 +AZURE,eastasia,Standard_E64s_v5,on_demand,NA,5.344,USD,Azure Retail Prices API,2025-12-18T04:46:14.920262 +AZURE,eastasia,Standard_E64s_v5,reserved_1y,NA,3.152968,USD,Azure Retail Prices API,2025-12-18T04:46:16.399607 +AZURE,eastasia,Standard_E64s_v5,reserved_3y,NA,1.977283,USD,Azure Retail Prices API,2025-12-18T04:46:16.399612 +AZURE,eastasia,Standard_E64s_v5,spot,NA,0.987571,USD,Azure Retail Prices API,2025-12-18T04:46:14.918872 +AZURE,eastasia,Standard_E80ids_v4,on_demand,NA,7.0,USD,Azure Retail Prices API,2025-12-18T04:46:14.919133 +AZURE,eastasia,Standard_E80ids_v4,reserved_1y,NA,4.116438,USD,Azure Retail Prices API,2025-12-18T04:46:16.398405 +AZURE,eastasia,Standard_E80ids_v4,reserved_3y,NA,2.631659,USD,Azure Retail Prices API,2025-12-18T04:46:16.398410 +AZURE,eastasia,Standard_E80ids_v4,spot,NA,1.2936,USD,Azure Retail Prices API,2025-12-18T04:46:14.919664 +AZURE,eastasia,Standard_E80is_v4,on_demand,NA,6.68,USD,Azure Retail Prices API,2025-12-18T04:46:14.918569 +AZURE,eastasia,Standard_E80is_v4,reserved_1y,NA,3.926941,USD,Azure Retail Prices API,2025-12-18T04:46:16.397809 +AZURE,eastasia,Standard_E80is_v4,reserved_3y,NA,2.511416,USD,Azure Retail Prices API,2025-12-18T04:46:16.397814 +AZURE,eastasia,Standard_E80is_v4,spot,NA,1.234464,USD,Azure Retail Prices API,2025-12-18T04:46:14.919603 +AZURE,eastasia,Standard_E8_v3,on_demand,NA,0.668,USD,Azure Retail Prices API,2025-12-18T04:46:14.918302 +AZURE,eastasia,Standard_E8_v3,reserved_1y,NA,0.392808,USD,Azure Retail Prices API,2025-12-18T04:46:16.397535 +AZURE,eastasia,Standard_E8_v3,reserved_3y,NA,0.263737,USD,Azure Retail Prices API,2025-12-18T04:46:16.397540 +AZURE,eastasia,Standard_E8_v3,spot,NA,0.123446,USD,Azure Retail Prices API,2025-12-18T04:46:14.920038 +AZURE,eastasia,Standard_E8a_v4,on_demand,NA,0.668,USD,Azure Retail Prices API,2025-12-18T04:46:14.919183 +AZURE,eastasia,Standard_E8a_v4,reserved_1y,NA,0.392808,USD,Azure Retail Prices API,2025-12-18T04:46:16.398488 +AZURE,eastasia,Standard_E8a_v4,reserved_3y,NA,0.25118,USD,Azure Retail Prices API,2025-12-18T04:46:16.398493 +AZURE,eastasia,Standard_E8a_v4,spot,NA,0.123446,USD,Azure Retail Prices API,2025-12-18T04:46:14.918732 +AZURE,eastasia,Standard_E8ads_v5,on_demand,NA,1.062,USD,Azure Retail Prices API,2025-12-18T04:46:14.918642 +AZURE,eastasia,Standard_E8ads_v5,reserved_1y,NA,0.409475,USD,Azure Retail Prices API,2025-12-18T04:46:16.399415 +AZURE,eastasia,Standard_E8ads_v5,reserved_3y,NA,0.263737,USD,Azure Retail Prices API,2025-12-18T04:46:16.399421 +AZURE,eastasia,Standard_E8ads_v5,spot,NA,0.128251,USD,Azure Retail Prices API,2025-12-18T04:46:14.918888 +AZURE,eastasia,Standard_E8ads_v6,on_demand,NA,0.803,USD,Azure Retail Prices API,2025-12-18T04:46:14.918878 +AZURE,eastasia,Standard_E8ads_v6,reserved_1y,NA,0.473858,USD,Azure Retail Prices API,2025-12-18T04:46:16.398140 +AZURE,eastasia,Standard_E8ads_v6,reserved_3y,NA,0.305213,USD,Azure Retail Prices API,2025-12-18T04:46:16.398145 +AZURE,eastasia,Standard_E8ads_v6,spot,NA,0.148394,USD,Azure Retail Prices API,2025-12-18T04:46:14.919529 +AZURE,eastasia,Standard_E8as_v4,on_demand,NA,0.668,USD,Azure Retail Prices API,2025-12-18T04:46:14.918554 +AZURE,eastasia,Standard_E8as_v4,reserved_1y,NA,0.392808,USD,Azure Retail Prices API,2025-12-18T04:46:16.397787 +AZURE,eastasia,Standard_E8as_v4,reserved_3y,NA,0.25118,USD,Azure Retail Prices API,2025-12-18T04:46:16.397792 +AZURE,eastasia,Standard_E8as_v4,spot,NA,0.123446,USD,Azure Retail Prices API,2025-12-18T04:46:14.919753 +AZURE,eastasia,Standard_E8as_v5,on_demand,NA,0.602,USD,Azure Retail Prices API,2025-12-18T04:46:14.917895 +AZURE,eastasia,Standard_E8as_v5,reserved_1y,NA,0.355137,USD,Azure Retail Prices API,2025-12-18T04:46:16.397113 +AZURE,eastasia,Standard_E8as_v5,reserved_3y,NA,0.228767,USD,Azure Retail Prices API,2025-12-18T04:46:16.397131 +AZURE,eastasia,Standard_E8as_v5,spot,NA,0.11125,USD,Azure Retail Prices API,2025-12-18T04:46:14.918177 +AZURE,eastasia,Standard_E8d_v4,on_demand,NA,0.7,USD,Azure Retail Prices API,2025-12-18T04:46:14.919033 +AZURE,eastasia,Standard_E8d_v4,reserved_1y,NA,0.411644,USD,Azure Retail Prices API,2025-12-18T04:46:16.398296 +AZURE,eastasia,Standard_E8d_v4,reserved_3y,NA,0.263204,USD,Azure Retail Prices API,2025-12-18T04:46:16.398302 +AZURE,eastasia,Standard_E8d_v4,spot,NA,0.12936,USD,Azure Retail Prices API,2025-12-18T04:46:14.918894 +AZURE,eastasia,Standard_E8ds_v4,on_demand,NA,0.7,USD,Azure Retail Prices API,2025-12-18T04:46:14.919745 +AZURE,eastasia,Standard_E8ds_v4,reserved_1y,NA,0.411644,USD,Azure Retail Prices API,2025-12-18T04:46:16.399043 +AZURE,eastasia,Standard_E8ds_v4,reserved_3y,NA,0.263204,USD,Azure Retail Prices API,2025-12-18T04:46:16.399049 +AZURE,eastasia,Standard_E8ds_v4,spot,NA,0.12936,USD,Azure Retail Prices API,2025-12-18T04:46:14.917550 +AZURE,eastasia,Standard_E8ds_v5,on_demand,NA,0.7,USD,Azure Retail Prices API,2025-12-18T04:46:14.920144 +AZURE,eastasia,Standard_E8ds_v5,reserved_1y,NA,0.413014,USD,Azure Retail Prices API,2025-12-18T04:46:16.399488 +AZURE,eastasia,Standard_E8ds_v5,reserved_3y,NA,0.265982,USD,Azure Retail Prices API,2025-12-18T04:46:16.399494 +AZURE,eastasia,Standard_E8ds_v5,spot,NA,0.12936,USD,Azure Retail Prices API,2025-12-18T04:46:14.919869 +AZURE,eastasia,Standard_E8ds_v6,on_demand,NA,0.899,USD,Azure Retail Prices API,2025-12-18T04:46:14.918976 +AZURE,eastasia,Standard_E8ds_v6,reserved_1y,NA,0.557648,USD,Azure Retail Prices API,2025-12-18T04:46:16.398244 +AZURE,eastasia,Standard_E8ds_v6,reserved_3y,NA,0.350761,USD,Azure Retail Prices API,2025-12-18T04:46:16.398249 +AZURE,eastasia,Standard_E8ds_v6,spot,NA,0.166135,USD,Azure Retail Prices API,2025-12-18T04:46:14.917836 +AZURE,eastasia,Standard_E8pds_v6,on_demand,NA,0.644,USD,Azure Retail Prices API,2025-12-18T04:46:14.918637 +AZURE,eastasia,Standard_E8pds_v6,reserved_1y,NA,0.379909,USD,Azure Retail Prices API,2025-12-18T04:46:16.397889 +AZURE,eastasia,Standard_E8pds_v6,reserved_3y,NA,0.244711,USD,Azure Retail Prices API,2025-12-18T04:46:16.397894 +AZURE,eastasia,Standard_E8pds_v6,spot,NA,0.119011,USD,Azure Retail Prices API,2025-12-18T04:46:14.918601 +AZURE,eastasia,Standard_E8ps_v6,on_demand,NA,0.507,USD,Azure Retail Prices API,2025-12-18T04:46:14.919048 +AZURE,eastasia,Standard_E8ps_v6,reserved_1y,NA,0.299201,USD,Azure Retail Prices API,2025-12-18T04:46:16.398318 +AZURE,eastasia,Standard_E8ps_v6,reserved_3y,NA,0.192732,USD,Azure Retail Prices API,2025-12-18T04:46:16.398321 +AZURE,eastasia,Standard_E8ps_v6,spot,NA,0.093694,USD,Azure Retail Prices API,2025-12-18T04:46:14.919411 +AZURE,eastasia,Standard_E8s_v3,on_demand,NA,0.668,USD,Azure Retail Prices API,2025-12-18T04:46:14.919329 +AZURE,eastasia,Standard_E8s_v3,reserved_1y,NA,0.392808,USD,Azure Retail Prices API,2025-12-18T04:46:16.398681 +AZURE,eastasia,Standard_E8s_v3,reserved_3y,NA,0.263737,USD,Azure Retail Prices API,2025-12-18T04:46:16.398688 +AZURE,eastasia,Standard_E8s_v3,spot,NA,0.123446,USD,Azure Retail Prices API,2025-12-18T04:46:14.919725 +AZURE,eastasia,Standard_E8s_v4,on_demand,NA,0.668,USD,Azure Retail Prices API,2025-12-18T04:46:14.918102 +AZURE,eastasia,Standard_E8s_v4,reserved_1y,NA,0.392808,USD,Azure Retail Prices API,2025-12-18T04:46:16.397351 +AZURE,eastasia,Standard_E8s_v4,reserved_3y,NA,0.25118,USD,Azure Retail Prices API,2025-12-18T04:46:16.397357 +AZURE,eastasia,Standard_E8s_v4,spot,NA,0.123446,USD,Azure Retail Prices API,2025-12-18T04:46:14.918508 +AZURE,eastasia,Standard_E8s_v5,on_demand,NA,0.668,USD,Azure Retail Prices API,2025-12-18T04:46:14.919812 +AZURE,eastasia,Standard_E8s_v5,reserved_1y,NA,0.394064,USD,Azure Retail Prices API,2025-12-18T04:46:16.399113 +AZURE,eastasia,Standard_E8s_v5,reserved_3y,NA,0.247146,USD,Azure Retail Prices API,2025-12-18T04:46:16.399118 +AZURE,eastasia,Standard_E8s_v5,spot,NA,0.123446,USD,Azure Retail Prices API,2025-12-18T04:46:14.920330 +AZURE,eastasia,Standard_E96a_v4,on_demand,NA,8.016,USD,Azure Retail Prices API,2025-12-18T04:46:14.918589 +AZURE,eastasia,Standard_E96a_v4,reserved_1y,NA,4.713356,USD,Azure Retail Prices API,2025-12-18T04:46:16.397829 +AZURE,eastasia,Standard_E96a_v4,reserved_3y,NA,3.014003,USD,Azure Retail Prices API,2025-12-18T04:46:16.397834 +AZURE,eastasia,Standard_E96a_v4,spot,NA,1.481357,USD,Azure Retail Prices API,2025-12-18T04:46:14.919569 +AZURE,eastasia,Standard_E96ads_v5,on_demand,NA,8.328,USD,Azure Retail Prices API,2025-12-18T04:46:14.918595 +AZURE,eastasia,Standard_E96ads_v5,reserved_1y,NA,4.91347,USD,Azure Retail Prices API,2025-12-18T04:46:16.397839 +AZURE,eastasia,Standard_E96ads_v5,reserved_3y,NA,3.16465,USD,Azure Retail Prices API,2025-12-18T04:46:16.397844 +AZURE,eastasia,Standard_E96ads_v5,spot,NA,1.539014,USD,Azure Retail Prices API,2025-12-18T04:46:14.919334 +AZURE,eastasia,Standard_E96ads_v6,on_demand,NA,9.638,USD,Azure Retail Prices API,2025-12-18T04:46:14.919090 +AZURE,eastasia,Standard_E96ads_v6,reserved_1y,NA,5.686644,USD,Azure Retail Prices API,2025-12-18T04:46:16.398343 +AZURE,eastasia,Standard_E96ads_v6,reserved_3y,NA,3.662595,USD,Azure Retail Prices API,2025-12-18T04:46:16.398347 +AZURE,eastasia,Standard_E96ads_v6,spot,NA,1.781102,USD,Azure Retail Prices API,2025-12-18T04:46:14.918999 +AZURE,eastasia,Standard_E96as_v4,on_demand,NA,8.016,USD,Azure Retail Prices API,2025-12-18T04:46:14.917868 +AZURE,eastasia,Standard_E96as_v4,reserved_1y,NA,4.713356,USD,Azure Retail Prices API,2025-12-18T04:46:16.397082 +AZURE,eastasia,Standard_E96as_v4,reserved_3y,NA,3.014003,USD,Azure Retail Prices API,2025-12-18T04:46:16.397087 +AZURE,eastasia,Standard_E96as_v4,spot,NA,1.481357,USD,Azure Retail Prices API,2025-12-18T04:46:14.918925 +AZURE,eastasia,Standard_E96as_v5,on_demand,NA,7.224,USD,Azure Retail Prices API,2025-12-18T04:46:14.918452 +AZURE,eastasia,Standard_E96as_v5,reserved_1y,NA,4.262215,USD,Azure Retail Prices API,2025-12-18T04:46:16.397677 +AZURE,eastasia,Standard_E96as_v5,reserved_3y,NA,2.745129,USD,Azure Retail Prices API,2025-12-18T04:46:16.397680 +AZURE,eastasia,Standard_E96as_v5,spot,NA,1.334995,USD,Azure Retail Prices API,2025-12-18T04:46:14.918247 +AZURE,eastasia,Standard_E96ds_v5,on_demand,NA,8.4,USD,Azure Retail Prices API,2025-12-18T04:46:14.917955 +AZURE,eastasia,Standard_E96ds_v5,reserved_1y,NA,4.95605,USD,Azure Retail Prices API,2025-12-18T04:46:16.397202 +AZURE,eastasia,Standard_E96ds_v5,reserved_3y,NA,3.192009,USD,Azure Retail Prices API,2025-12-18T04:46:16.397207 +AZURE,eastasia,Standard_E96ds_v5,spot,NA,1.55232,USD,Azure Retail Prices API,2025-12-18T04:46:14.920077 +AZURE,eastasia,Standard_E96ds_v6,on_demand,NA,10.792,USD,Azure Retail Prices API,2025-12-18T04:46:14.919712 +AZURE,eastasia,Standard_E96ds_v6,reserved_1y,NA,6.69121,USD,Azure Retail Prices API,2025-12-18T04:46:16.399000 +AZURE,eastasia,Standard_E96ds_v6,reserved_3y,NA,4.209018,USD,Azure Retail Prices API,2025-12-18T04:46:16.399005 +AZURE,eastasia,Standard_E96ds_v6,spot,NA,1.994362,USD,Azure Retail Prices API,2025-12-18T04:46:14.918559 +AZURE,eastasia,Standard_E96pds_v6,on_demand,NA,7.728,USD,Azure Retail Prices API,2025-12-18T04:46:14.918127 +AZURE,eastasia,Standard_E96pds_v6,reserved_1y,NA,4.559475,USD,Azure Retail Prices API,2025-12-18T04:46:16.397363 +AZURE,eastasia,Standard_E96pds_v6,reserved_3y,NA,2.936644,USD,Azure Retail Prices API,2025-12-18T04:46:16.397368 +AZURE,eastasia,Standard_E96pds_v6,spot,NA,1.428134,USD,Azure Retail Prices API,2025-12-18T04:46:14.919874 +AZURE,eastasia,Standard_E96ps_v6,on_demand,NA,6.086,USD,Azure Retail Prices API,2025-12-18T04:46:14.919478 +AZURE,eastasia,Standard_E96ps_v6,reserved_1y,NA,3.590982,USD,Azure Retail Prices API,2025-12-18T04:46:16.398789 +AZURE,eastasia,Standard_E96ps_v6,reserved_3y,NA,2.312823,USD,Azure Retail Prices API,2025-12-18T04:46:16.398791 +AZURE,eastasia,Standard_E96ps_v6,spot,NA,1.124693,USD,Azure Retail Prices API,2025-12-18T04:46:14.920171 +AZURE,eastasia,Standard_E96s_v5,on_demand,NA,8.016,USD,Azure Retail Prices API,2025-12-18T04:46:14.918954 +AZURE,eastasia,Standard_E96s_v5,reserved_1y,NA,4.729452,USD,Azure Retail Prices API,2025-12-18T04:46:16.398213 +AZURE,eastasia,Standard_E96s_v5,reserved_3y,NA,2.965906,USD,Azure Retail Prices API,2025-12-18T04:46:16.398218 +AZURE,eastasia,Standard_E96s_v5,spot,NA,1.481357,USD,Azure Retail Prices API,2025-12-18T04:46:14.918539 +AZURE,eastasia,Standard_EC16ads_v5,on_demand,NA,1.388,USD,Azure Retail Prices API,2025-12-18T04:46:14.919446 +AZURE,eastasia,Standard_EC16ads_v5,reserved_1y,NA,1.110388,USD,Azure Retail Prices API,2025-12-18T04:46:16.398770 +AZURE,eastasia,Standard_EC16ads_v5,reserved_3y,NA,0.832801,USD,Azure Retail Prices API,2025-12-18T04:46:16.398773 +AZURE,eastasia,Standard_EC16ads_v5,spot,NA,0.261916,USD,Azure Retail Prices API,2025-12-18T04:46:14.918845 +AZURE,eastasia,Standard_EC16ads_v6,on_demand,NA,1.606,USD,Azure Retail Prices API,2025-12-18T04:46:14.918782 +AZURE,eastasia,Standard_EC16ads_v6,reserved_1y,NA,0.947831,USD,Azure Retail Prices API,2025-12-18T04:46:16.398038 +AZURE,eastasia,Standard_EC16ads_v6,reserved_3y,NA,0.610426,USD,Azure Retail Prices API,2025-12-18T04:46:16.398043 +AZURE,eastasia,Standard_EC16ads_v6,spot,NA,0.296789,USD,Azure Retail Prices API,2025-12-18T04:46:14.919938 +AZURE,eastasia,Standard_EC16as_v5,on_demand,NA,1.204,USD,Azure Retail Prices API,2025-12-18T04:46:14.920297 +AZURE,eastasia,Standard_EC16as_v5,reserved_1y,NA,0.963242,USD,Azure Retail Prices API,2025-12-18T04:46:16.399628 +AZURE,eastasia,Standard_EC16as_v5,reserved_3y,NA,0.722412,USD,Azure Retail Prices API,2025-12-18T04:46:16.399634 +AZURE,eastasia,Standard_EC16as_v5,spot,NA,0.227195,USD,Azure Retail Prices API,2025-12-18T04:46:14.919393 +AZURE,eastasia,Standard_EC16as_v6,on_demand,NA,1.32,USD,Azure Retail Prices API,2025-12-18T04:46:14.918662 +AZURE,eastasia,Standard_EC16as_v6,reserved_1y,NA,0.778767,USD,Azure Retail Prices API,2025-12-18T04:46:16.397909 +AZURE,eastasia,Standard_EC16as_v6,reserved_3y,NA,0.501598,USD,Azure Retail Prices API,2025-12-18T04:46:16.397914 +AZURE,eastasia,Standard_EC16as_v6,spot,NA,0.243936,USD,Azure Retail Prices API,2025-12-18T04:46:14.920062 +AZURE,eastasia,Standard_EC20ads_v5,on_demand,NA,1.735,USD,Azure Retail Prices API,2025-12-18T04:46:14.917841 +AZURE,eastasia,Standard_EC20ads_v5,reserved_1y,NA,1.388014,USD,Azure Retail Prices API,2025-12-18T04:46:16.397051 +AZURE,eastasia,Standard_EC20ads_v5,reserved_3y,NA,1.040982,USD,Azure Retail Prices API,2025-12-18T04:46:16.397056 +AZURE,eastasia,Standard_EC20ads_v5,spot,NA,0.327394,USD,Azure Retail Prices API,2025-12-18T04:46:14.917776 +AZURE,eastasia,Standard_EC20as_v5,on_demand,NA,1.505,USD,Azure Retail Prices API,2025-12-18T04:46:14.918050 +AZURE,eastasia,Standard_EC20as_v5,reserved_1y,NA,1.203995,USD,Azure Retail Prices API,2025-12-18T04:46:16.397288 +AZURE,eastasia,Standard_EC20as_v5,reserved_3y,NA,0.903006,USD,Azure Retail Prices API,2025-12-18T04:46:16.397294 +AZURE,eastasia,Standard_EC20as_v5,spot,NA,0.283994,USD,Azure Retail Prices API,2025-12-18T04:46:14.918237 +AZURE,eastasia,Standard_EC2ads_v6,on_demand,NA,0.201,USD,Azure Retail Prices API,2025-12-18T04:46:14.919153 +AZURE,eastasia,Standard_EC2ads_v6,reserved_1y,NA,0.118493,USD,Azure Retail Prices API,2025-12-18T04:46:16.398435 +AZURE,eastasia,Standard_EC2ads_v6,reserved_3y,NA,0.076294,USD,Azure Retail Prices API,2025-12-18T04:46:16.398441 +AZURE,eastasia,Standard_EC2ads_v6,spot,NA,0.037145,USD,Azure Retail Prices API,2025-12-18T04:46:14.917756 +AZURE,eastasia,Standard_EC2as_v6,on_demand,NA,0.165,USD,Azure Retail Prices API,2025-12-18T04:46:14.919864 +AZURE,eastasia,Standard_EC2as_v6,reserved_1y,NA,0.097374,USD,Azure Retail Prices API,2025-12-18T04:46:16.399169 +AZURE,eastasia,Standard_EC2as_v6,reserved_3y,NA,0.062709,USD,Azure Retail Prices API,2025-12-18T04:46:16.399175 +AZURE,eastasia,Standard_EC2as_v6,spot,NA,0.030492,USD,Azure Retail Prices API,2025-12-18T04:46:14.920315 +AZURE,eastasia,Standard_EC32ads_v5,on_demand,NA,2.776,USD,Azure Retail Prices API,2025-12-18T04:46:14.919565 +AZURE,eastasia,Standard_EC32ads_v5,reserved_1y,NA,2.220776,USD,Azure Retail Prices API,2025-12-18T04:46:16.398863 +AZURE,eastasia,Standard_EC32ads_v5,reserved_3y,NA,1.665601,USD,Azure Retail Prices API,2025-12-18T04:46:16.398868 +AZURE,eastasia,Standard_EC32ads_v5,spot,NA,0.523831,USD,Azure Retail Prices API,2025-12-18T04:46:14.918513 +AZURE,eastasia,Standard_EC32ads_v6,on_demand,NA,3.213,USD,Azure Retail Prices API,2025-12-18T04:46:14.919964 +AZURE,eastasia,Standard_EC32ads_v6,reserved_1y,NA,1.895548,USD,Azure Retail Prices API,2025-12-18T04:46:16.399309 +AZURE,eastasia,Standard_EC32ads_v6,reserved_3y,NA,1.220852,USD,Azure Retail Prices API,2025-12-18T04:46:16.399314 +AZURE,eastasia,Standard_EC32ads_v6,spot,NA,0.593762,USD,Azure Retail Prices API,2025-12-18T04:46:14.918365 +AZURE,eastasia,Standard_EC32as_v5,on_demand,NA,2.408,USD,Azure Retail Prices API,2025-12-18T04:46:14.918905 +AZURE,eastasia,Standard_EC32as_v5,reserved_1y,NA,1.92637,USD,Azure Retail Prices API,2025-12-18T04:46:16.398160 +AZURE,eastasia,Standard_EC32as_v5,reserved_3y,NA,1.444787,USD,Azure Retail Prices API,2025-12-18T04:46:16.398165 +AZURE,eastasia,Standard_EC32as_v5,spot,NA,0.45439,USD,Azure Retail Prices API,2025-12-18T04:46:14.920053 +AZURE,eastasia,Standard_EC32as_v6,on_demand,NA,2.64,USD,Azure Retail Prices API,2025-12-18T04:46:14.919124 +AZURE,eastasia,Standard_EC32as_v6,reserved_1y,NA,1.557648,USD,Azure Retail Prices API,2025-12-18T04:46:16.398384 +AZURE,eastasia,Standard_EC32as_v6,reserved_3y,NA,1.003196,USD,Azure Retail Prices API,2025-12-18T04:46:16.398389 +AZURE,eastasia,Standard_EC32as_v6,spot,NA,0.487872,USD,Azure Retail Prices API,2025-12-18T04:46:14.918024 +AZURE,eastasia,Standard_EC48ads_v5,on_demand,NA,4.164,USD,Azure Retail Prices API,2025-12-18T04:46:14.918268 +AZURE,eastasia,Standard_EC48ads_v5,reserved_1y,NA,3.331164,USD,Azure Retail Prices API,2025-12-18T04:46:16.397486 +AZURE,eastasia,Standard_EC48ads_v5,reserved_3y,NA,2.498402,USD,Azure Retail Prices API,2025-12-18T04:46:16.397490 +AZURE,eastasia,Standard_EC48ads_v5,spot,NA,0.785747,USD,Azure Retail Prices API,2025-12-18T04:46:14.918232 +AZURE,eastasia,Standard_EC48ads_v6,on_demand,NA,4.819,USD,Azure Retail Prices API,2025-12-18T04:46:14.919238 +AZURE,eastasia,Standard_EC48ads_v6,reserved_1y,NA,2.843379,USD,Azure Retail Prices API,2025-12-18T04:46:16.398586 +AZURE,eastasia,Standard_EC48ads_v6,reserved_3y,NA,1.831279,USD,Azure Retail Prices API,2025-12-18T04:46:16.398591 +AZURE,eastasia,Standard_EC48ads_v6,spot,NA,0.890551,USD,Azure Retail Prices API,2025-12-18T04:46:14.919485 +AZURE,eastasia,Standard_EC48as_v5,on_demand,NA,3.612,USD,Azure Retail Prices API,2025-12-18T04:46:14.918980 +AZURE,eastasia,Standard_EC48as_v5,reserved_1y,NA,2.889612,USD,Azure Retail Prices API,2025-12-18T04:46:16.398254 +AZURE,eastasia,Standard_EC48as_v5,reserved_3y,NA,2.167199,USD,Azure Retail Prices API,2025-12-18T04:46:16.398259 +AZURE,eastasia,Standard_EC48as_v5,spot,NA,0.681584,USD,Azure Retail Prices API,2025-12-18T04:46:14.917540 +AZURE,eastasia,Standard_EC48as_v6,on_demand,NA,3.96,USD,Azure Retail Prices API,2025-12-18T04:46:14.918958 +AZURE,eastasia,Standard_EC48as_v6,reserved_1y,NA,2.336416,USD,Azure Retail Prices API,2025-12-18T04:46:16.398223 +AZURE,eastasia,Standard_EC48as_v6,reserved_3y,NA,1.504795,USD,Azure Retail Prices API,2025-12-18T04:46:16.398228 +AZURE,eastasia,Standard_EC48as_v6,spot,NA,0.731808,USD,Azure Retail Prices API,2025-12-18T04:46:14.918397 +AZURE,eastasia,Standard_EC4ads_v5,on_demand,NA,0.347,USD,Azure Retail Prices API,2025-12-18T04:46:14.919510 +AZURE,eastasia,Standard_EC4ads_v5,reserved_1y,NA,0.277626,USD,Azure Retail Prices API,2025-12-18T04:46:16.398832 +AZURE,eastasia,Standard_EC4ads_v5,reserved_3y,NA,0.208181,USD,Azure Retail Prices API,2025-12-18T04:46:16.398837 +AZURE,eastasia,Standard_EC4ads_v5,spot,NA,0.065479,USD,Azure Retail Prices API,2025-12-18T04:46:14.920003 +AZURE,eastasia,Standard_EC4ads_v6,on_demand,NA,0.402,USD,Azure Retail Prices API,2025-12-18T04:46:14.919645 +AZURE,eastasia,Standard_EC4ads_v6,reserved_1y,NA,0.236986,USD,Azure Retail Prices API,2025-12-18T04:46:16.398940 +AZURE,eastasia,Standard_EC4ads_v6,reserved_3y,NA,0.152626,USD,Azure Retail Prices API,2025-12-18T04:46:16.398945 +AZURE,eastasia,Standard_EC4ads_v6,spot,NA,0.07429,USD,Azure Retail Prices API,2025-12-18T04:46:14.918122 +AZURE,eastasia,Standard_EC4as_v5,on_demand,NA,0.301,USD,Azure Retail Prices API,2025-12-18T04:46:14.919983 +AZURE,eastasia,Standard_EC4as_v5,reserved_1y,NA,0.240753,USD,Azure Retail Prices API,2025-12-18T04:46:16.399342 +AZURE,eastasia,Standard_EC4as_v5,reserved_3y,NA,0.180594,USD,Azure Retail Prices API,2025-12-18T04:46:16.399347 +AZURE,eastasia,Standard_EC4as_v5,spot,NA,0.056799,USD,Azure Retail Prices API,2025-12-18T04:46:14.920024 +AZURE,eastasia,Standard_EC4as_v6,on_demand,NA,0.33,USD,Azure Retail Prices API,2025-12-18T04:46:14.918803 +AZURE,eastasia,Standard_EC4as_v6,reserved_1y,NA,0.194749,USD,Azure Retail Prices API,2025-12-18T04:46:16.398049 +AZURE,eastasia,Standard_EC4as_v6,reserved_3y,NA,0.125419,USD,Azure Retail Prices API,2025-12-18T04:46:16.398054 +AZURE,eastasia,Standard_EC4as_v6,spot,NA,0.060984,USD,Azure Retail Prices API,2025-12-18T04:46:14.919148 +AZURE,eastasia,Standard_EC64ads_v5,on_demand,NA,5.552,USD,Azure Retail Prices API,2025-12-18T04:46:14.918307 +AZURE,eastasia,Standard_EC64ads_v5,reserved_1y,NA,4.441553,USD,Azure Retail Prices API,2025-12-18T04:46:16.397545 +AZURE,eastasia,Standard_EC64ads_v5,reserved_3y,NA,3.331202,USD,Azure Retail Prices API,2025-12-18T04:46:16.397550 +AZURE,eastasia,Standard_EC64ads_v5,spot,NA,1.047662,USD,Azure Retail Prices API,2025-12-18T04:46:14.920253 +AZURE,eastasia,Standard_EC64ads_v6,on_demand,NA,6.426,USD,Azure Retail Prices API,2025-12-18T04:46:14.917643 +AZURE,eastasia,Standard_EC64ads_v6,reserved_1y,NA,3.791096,USD,Azure Retail Prices API,2025-12-18T04:46:16.396931 +AZURE,eastasia,Standard_EC64ads_v6,reserved_3y,NA,2.441743,USD,Azure Retail Prices API,2025-12-18T04:46:16.396936 +AZURE,eastasia,Standard_EC64ads_v6,spot,NA,1.187525,USD,Azure Retail Prices API,2025-12-18T04:46:14.919774 +AZURE,eastasia,Standard_EC64as_v5,on_demand,NA,4.816,USD,Azure Retail Prices API,2025-12-18T04:46:14.918156 +AZURE,eastasia,Standard_EC64as_v5,reserved_1y,NA,3.852854,USD,Azure Retail Prices API,2025-12-18T04:46:16.397396 +AZURE,eastasia,Standard_EC64as_v5,reserved_3y,NA,2.889612,USD,Azure Retail Prices API,2025-12-18T04:46:16.397401 +AZURE,eastasia,Standard_EC64as_v5,spot,NA,0.908779,USD,Azure Retail Prices API,2025-12-18T04:46:14.917760 +AZURE,eastasia,Standard_EC64as_v6,on_demand,NA,5.28,USD,Azure Retail Prices API,2025-12-18T04:46:14.917397 +AZURE,eastasia,Standard_EC64as_v6,reserved_1y,NA,3.115183,USD,Azure Retail Prices API,2025-12-18T04:46:16.396748 +AZURE,eastasia,Standard_EC64as_v6,reserved_3y,NA,2.006393,USD,Azure Retail Prices API,2025-12-18T04:46:16.396754 +AZURE,eastasia,Standard_EC64as_v6,spot,NA,0.975744,USD,Azure Retail Prices API,2025-12-18T04:46:14.919768 +AZURE,eastasia,Standard_EC8ads_v5,on_demand,NA,0.694,USD,Azure Retail Prices API,2025-12-18T04:46:14.920094 +AZURE,eastasia,Standard_EC8ads_v5,reserved_1y,NA,0.555251,USD,Azure Retail Prices API,2025-12-18T04:46:16.399436 +AZURE,eastasia,Standard_EC8ads_v5,reserved_3y,NA,0.4164,USD,Azure Retail Prices API,2025-12-18T04:46:16.399440 +AZURE,eastasia,Standard_EC8ads_v5,spot,NA,0.130958,USD,Azure Retail Prices API,2025-12-18T04:46:14.917741 +AZURE,eastasia,Standard_EC8ads_v6,on_demand,NA,0.803,USD,Azure Retail Prices API,2025-12-18T04:46:14.919029 +AZURE,eastasia,Standard_EC8ads_v6,reserved_1y,NA,0.473858,USD,Azure Retail Prices API,2025-12-18T04:46:16.398284 +AZURE,eastasia,Standard_EC8ads_v6,reserved_3y,NA,0.305213,USD,Azure Retail Prices API,2025-12-18T04:46:16.398291 +AZURE,eastasia,Standard_EC8ads_v6,spot,NA,0.148394,USD,Azure Retail Prices API,2025-12-18T04:46:14.917595 +AZURE,eastasia,Standard_EC8as_v5,on_demand,NA,0.602,USD,Azure Retail Prices API,2025-12-18T04:46:14.918171 +AZURE,eastasia,Standard_EC8as_v5,reserved_1y,NA,0.481621,USD,Azure Retail Prices API,2025-12-18T04:46:16.397417 +AZURE,eastasia,Standard_EC8as_v5,reserved_3y,NA,0.361187,USD,Azure Retail Prices API,2025-12-18T04:46:16.397421 +AZURE,eastasia,Standard_EC8as_v5,spot,NA,0.113597,USD,Azure Retail Prices API,2025-12-18T04:46:14.919952 +AZURE,eastasia,Standard_EC8as_v6,on_demand,NA,0.66,USD,Azure Retail Prices API,2025-12-18T04:46:14.918856 +AZURE,eastasia,Standard_EC8as_v6,reserved_1y,NA,0.389384,USD,Azure Retail Prices API,2025-12-18T04:46:16.398110 +AZURE,eastasia,Standard_EC8as_v6,reserved_3y,NA,0.250799,USD,Azure Retail Prices API,2025-12-18T04:46:16.398116 +AZURE,eastasia,Standard_EC8as_v6,spot,NA,0.121968,USD,Azure Retail Prices API,2025-12-18T04:46:14.919598 +AZURE,eastasia,Standard_EC96ads_v5,on_demand,NA,8.328,USD,Azure Retail Prices API,2025-12-18T04:46:14.918034 +AZURE,eastasia,Standard_EC96ads_v5,reserved_1y,NA,6.662443,USD,Azure Retail Prices API,2025-12-18T04:46:16.397266 +AZURE,eastasia,Standard_EC96ads_v5,reserved_3y,NA,4.996804,USD,Azure Retail Prices API,2025-12-18T04:46:16.397271 +AZURE,eastasia,Standard_EC96ads_v5,spot,NA,1.571494,USD,Azure Retail Prices API,2025-12-18T04:46:14.919969 +AZURE,eastasia,Standard_EC96ads_v6,on_demand,NA,9.638,USD,Azure Retail Prices API,2025-12-18T04:46:14.918621 +AZURE,eastasia,Standard_EC96ads_v6,reserved_1y,NA,5.686644,USD,Azure Retail Prices API,2025-12-18T04:46:16.397859 +AZURE,eastasia,Standard_EC96ads_v6,reserved_3y,NA,3.662595,USD,Azure Retail Prices API,2025-12-18T04:46:16.397864 +AZURE,eastasia,Standard_EC96ads_v6,spot,NA,1.781102,USD,Azure Retail Prices API,2025-12-18T04:46:14.918758 +AZURE,eastasia,Standard_EC96as_v5,on_demand,NA,7.224,USD,Azure Retail Prices API,2025-12-18T04:46:14.918768 +AZURE,eastasia,Standard_EC96as_v5,reserved_1y,NA,5.779224,USD,Azure Retail Prices API,2025-12-18T04:46:16.398007 +AZURE,eastasia,Standard_EC96as_v5,reserved_3y,NA,4.334399,USD,Azure Retail Prices API,2025-12-18T04:46:16.398012 +AZURE,eastasia,Standard_EC96as_v5,spot,NA,1.363169,USD,Azure Retail Prices API,2025-12-18T04:46:14.919540 +AZURE,eastasia,Standard_EC96as_v6,on_demand,NA,7.92,USD,Azure Retail Prices API,2025-12-18T04:46:14.919223 +AZURE,eastasia,Standard_EC96as_v6,reserved_1y,NA,4.672831,USD,Azure Retail Prices API,2025-12-18T04:46:16.398553 +AZURE,eastasia,Standard_EC96as_v6,reserved_3y,NA,3.009589,USD,Azure Retail Prices API,2025-12-18T04:46:16.398559 +AZURE,eastasia,Standard_EC96as_v6,spot,NA,1.463616,USD,Azure Retail Prices API,2025-12-18T04:46:14.918493 +AZURE,eastasia,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379605 +AZURE,eastasia,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379613 +AZURE,eastasia,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379617 +AZURE,eastasia,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379609 +AZURE,eastasia,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381911 +AZURE,eastasia,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381919 +AZURE,eastasia,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381924 +AZURE,eastasia,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381915 +AZURE,eastasia,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384649 +AZURE,eastasia,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384657 +AZURE,eastasia,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384662 +AZURE,eastasia,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384653 +AZURE,eastasia,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385478 +AZURE,eastasia,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385492 +AZURE,eastasia,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385501 +AZURE,eastasia,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385485 +AZURE,eastasia,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378078 +AZURE,eastasia,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378087 +AZURE,eastasia,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378091 +AZURE,eastasia,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378083 +AZURE,eastasia,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386233 +AZURE,eastasia,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386242 +AZURE,eastasia,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386246 +AZURE,eastasia,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386238 +AZURE,eastasia,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380371 +AZURE,eastasia,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380379 +AZURE,eastasia,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380383 +AZURE,eastasia,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380375 +AZURE,eastasia,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382982 +AZURE,eastasia,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382991 +AZURE,eastasia,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382995 +AZURE,eastasia,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382986 +AZURE,eastasia,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387002 +AZURE,eastasia,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387010 +AZURE,eastasia,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387014 +AZURE,eastasia,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387006 +AZURE,eastasia,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388217 +AZURE,eastasia,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388225 +AZURE,eastasia,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388230 +AZURE,eastasia,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388221 +AZURE,eastasia,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378786 +AZURE,eastasia,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378794 +AZURE,eastasia,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378801 +AZURE,eastasia,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378790 +AZURE,eastasia,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381088 +AZURE,eastasia,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381096 +AZURE,eastasia,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381103 +AZURE,eastasia,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381092 +AZURE,eastasia,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383813 +AZURE,eastasia,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383825 +AZURE,eastasia,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383831 +AZURE,eastasia,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383819 +AZURE,eastasia,Standard_L16as_v3,on_demand,NA,1.648,USD,Azure Retail Prices API,2025-12-18T04:46:14.917929 +AZURE,eastasia,Standard_L16as_v3,reserved_1y,NA,1.05468,USD,Azure Retail Prices API,2025-12-18T04:46:16.397187 +AZURE,eastasia,Standard_L16as_v3,reserved_3y,NA,0.692161,USD,Azure Retail Prices API,2025-12-18T04:46:16.397191 +AZURE,eastasia,Standard_L16as_v3,spot,NA,0.30455,USD,Azure Retail Prices API,2025-12-18T04:46:14.919085 +AZURE,eastasia,Standard_L16s_v3,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:46:14.919830 +AZURE,eastasia,Standard_L16s_v3,reserved_1y,NA,1.177626,USD,Azure Retail Prices API,2025-12-18T04:46:16.399133 +AZURE,eastasia,Standard_L16s_v3,reserved_3y,NA,0.772793,USD,Azure Retail Prices API,2025-12-18T04:46:16.399137 +AZURE,eastasia,Standard_L16s_v3,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:46:14.918222 +AZURE,eastasia,Standard_L32as_v3,on_demand,NA,3.296,USD,Azure Retail Prices API,2025-12-18T04:46:14.919019 +AZURE,eastasia,Standard_L32as_v3,reserved_1y,NA,2.109475,USD,Azure Retail Prices API,2025-12-18T04:46:16.398264 +AZURE,eastasia,Standard_L32as_v3,reserved_3y,NA,1.384323,USD,Azure Retail Prices API,2025-12-18T04:46:16.398269 +AZURE,eastasia,Standard_L32as_v3,spot,NA,0.609101,USD,Azure Retail Prices API,2025-12-18T04:46:14.919297 +AZURE,eastasia,Standard_L32s_v3,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:46:14.918850 +AZURE,eastasia,Standard_L32s_v3,reserved_1y,NA,2.355251,USD,Azure Retail Prices API,2025-12-18T04:46:16.398100 +AZURE,eastasia,Standard_L32s_v3,reserved_3y,NA,1.545586,USD,Azure Retail Prices API,2025-12-18T04:46:16.398105 +AZURE,eastasia,Standard_L32s_v3,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:46:14.919460 +AZURE,eastasia,Standard_L48as_v3,on_demand,NA,4.944,USD,Azure Retail Prices API,2025-12-18T04:46:14.917965 +AZURE,eastasia,Standard_L48as_v3,reserved_1y,NA,3.164155,USD,Azure Retail Prices API,2025-12-18T04:46:16.397217 +AZURE,eastasia,Standard_L48as_v3,reserved_3y,NA,2.076484,USD,Azure Retail Prices API,2025-12-18T04:46:16.397221 +AZURE,eastasia,Standard_L48as_v3,spot,NA,0.913651,USD,Azure Retail Prices API,2025-12-18T04:46:14.917746 +AZURE,eastasia,Standard_L48s_v3,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:46:14.917975 +AZURE,eastasia,Standard_L48s_v3,reserved_1y,NA,3.532763,USD,Azure Retail Prices API,2025-12-18T04:46:16.397234 +AZURE,eastasia,Standard_L48s_v3,reserved_3y,NA,2.318417,USD,Azure Retail Prices API,2025-12-18T04:46:16.397240 +AZURE,eastasia,Standard_L48s_v3,spot,NA,1.020096,USD,Azure Retail Prices API,2025-12-18T04:46:14.920306 +AZURE,eastasia,Standard_L64as_v3,on_demand,NA,6.592,USD,Azure Retail Prices API,2025-12-18T04:46:14.918478 +AZURE,eastasia,Standard_L64as_v3,reserved_1y,NA,4.218836,USD,Azure Retail Prices API,2025-12-18T04:46:16.397709 +AZURE,eastasia,Standard_L64as_v3,reserved_3y,NA,2.768645,USD,Azure Retail Prices API,2025-12-18T04:46:16.397714 +AZURE,eastasia,Standard_L64as_v3,spot,NA,1.218202,USD,Azure Retail Prices API,2025-12-18T04:46:14.919640 +AZURE,eastasia,Standard_L64s_v3,on_demand,NA,7.36,USD,Azure Retail Prices API,2025-12-18T04:46:14.918442 +AZURE,eastasia,Standard_L64s_v3,reserved_1y,NA,4.710388,USD,Azure Retail Prices API,2025-12-18T04:46:16.397671 +AZURE,eastasia,Standard_L64s_v3,reserved_3y,NA,3.09121,USD,Azure Retail Prices API,2025-12-18T04:46:16.397674 +AZURE,eastasia,Standard_L64s_v3,spot,NA,1.360128,USD,Azure Retail Prices API,2025-12-18T04:46:14.918273 +AZURE,eastasia,Standard_L80as_v3,on_demand,NA,8.24,USD,Azure Retail Prices API,2025-12-18T04:46:14.918772 +AZURE,eastasia,Standard_L80as_v3,reserved_1y,NA,5.27363,USD,Azure Retail Prices API,2025-12-18T04:46:16.398017 +AZURE,eastasia,Standard_L80as_v3,reserved_3y,NA,3.460807,USD,Azure Retail Prices API,2025-12-18T04:46:16.398023 +AZURE,eastasia,Standard_L80as_v3,spot,NA,1.522752,USD,Azure Retail Prices API,2025-12-18T04:46:14.917611 +AZURE,eastasia,Standard_L80s_v3,on_demand,NA,9.2,USD,Azure Retail Prices API,2025-12-18T04:46:14.917703 +AZURE,eastasia,Standard_L80s_v3,reserved_1y,NA,5.888014,USD,Azure Retail Prices API,2025-12-18T04:46:16.396965 +AZURE,eastasia,Standard_L80s_v3,reserved_3y,NA,3.864003,USD,Azure Retail Prices API,2025-12-18T04:46:16.396971 +AZURE,eastasia,Standard_L80s_v3,spot,NA,1.70016,USD,Azure Retail Prices API,2025-12-18T04:46:14.919790 +AZURE,eastasia,Standard_L8as_v3,on_demand,NA,0.824,USD,Azure Retail Prices API,2025-12-18T04:46:14.919119 +AZURE,eastasia,Standard_L8as_v3,reserved_1y,NA,0.527397,USD,Azure Retail Prices API,2025-12-18T04:46:16.398374 +AZURE,eastasia,Standard_L8as_v3,reserved_3y,NA,0.346081,USD,Azure Retail Prices API,2025-12-18T04:46:16.398379 +AZURE,eastasia,Standard_L8as_v3,spot,NA,0.152275,USD,Azure Retail Prices API,2025-12-18T04:46:14.920276 +AZURE,eastasia,Standard_L8s_v3,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:46:14.919734 +AZURE,eastasia,Standard_L8s_v3,reserved_1y,NA,0.588813,USD,Azure Retail Prices API,2025-12-18T04:46:16.399032 +AZURE,eastasia,Standard_L8s_v3,reserved_3y,NA,0.386416,USD,Azure Retail Prices API,2025-12-18T04:46:16.399038 +AZURE,eastasia,Standard_L8s_v3,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:46:14.918187 +AZURE,eastasia,Standard_NC12s_v3,on_demand,NA,9.486,USD,Azure Retail Prices API,2025-12-18T04:46:14.919928 +AZURE,eastasia,Standard_NC12s_v3,spot,NA,1.753013,USD,Azure Retail Prices API,2025-12-18T04:46:14.919432 +AZURE,eastasia,Standard_NC24s_v3,on_demand,NA,18.972,USD,Azure Retail Prices API,2025-12-18T04:46:14.920248 +AZURE,eastasia,Standard_NC24s_v3,spot,NA,3.506026,USD,Azure Retail Prices API,2025-12-18T04:46:14.919692 +AZURE,eastasia,Standard_NC6s_v3,on_demand,NA,4.743,USD,Azure Retail Prices API,2025-12-18T04:46:14.918328 +AZURE,eastasia,Standard_NC6s_v3,spot,NA,0.876506,USD,Azure Retail Prices API,2025-12-18T04:46:14.918082 +AZURE,eastasia,Standard_NV36adms_A10_v5,on_demand,NA,7.006,USD,Azure Retail Prices API,2025-12-18T04:46:14.917811 +AZURE,eastasia,Standard_NV36adms_A10_v5,reserved_1y,NA,4.48379,USD,Azure Retail Prices API,2025-12-18T04:46:16.397029 +AZURE,eastasia,Standard_NV36adms_A10_v5,reserved_3y,NA,3.082648,USD,Azure Retail Prices API,2025-12-18T04:46:16.397034 +AZURE,eastasia,Standard_NV36adms_A10_v5,spot,NA,1.294709,USD,Azure Retail Prices API,2025-12-18T04:46:14.919763 +AZURE,eastasia,Standard_NV36ads_A10_v5,on_demand,NA,4.96,USD,Azure Retail Prices API,2025-12-18T04:46:14.919905 +AZURE,eastasia,Standard_NV36ads_A10_v5,reserved_1y,NA,3.174429,USD,Azure Retail Prices API,2025-12-18T04:46:16.399245 +AZURE,eastasia,Standard_NV36ads_A10_v5,reserved_3y,NA,2.182382,USD,Azure Retail Prices API,2025-12-18T04:46:16.399250 +AZURE,eastasia,Standard_NV36ads_A10_v5,spot,NA,0.916608,USD,Azure Retail Prices API,2025-12-18T04:46:14.918503 +AZURE,eastasia,Standard_NV72ads_A10_v5,on_demand,NA,10.106,USD,Azure Retail Prices API,2025-12-18T04:46:14.918287 +AZURE,eastasia,Standard_NV72ads_A10_v5,reserved_1y,NA,6.467808,USD,Azure Retail Prices API,2025-12-18T04:46:16.397515 +AZURE,eastasia,Standard_NV72ads_A10_v5,reserved_3y,NA,4.446651,USD,Azure Retail Prices API,2025-12-18T04:46:16.397520 +AZURE,eastasia,Standard_NV72ads_A10_v5,spot,NA,1.867589,USD,Azure Retail Prices API,2025-12-18T04:46:14.918717 +AZURE,eastus,Standard_D128ds_v6,on_demand,NA,7.973,USD,Azure Retail Prices API,2025-12-18T04:44:32.754212 +AZURE,eastus,Standard_D128ds_v6,reserved_1y,NA,4.943379,USD,Azure Retail Prices API,2025-12-18T04:44:35.770086 +AZURE,eastus,Standard_D128ds_v6,reserved_3y,NA,3.109513,USD,Azure Retail Prices API,2025-12-18T04:44:35.770089 +AZURE,eastus,Standard_D128ds_v6,spot,NA,1.962953,USD,Azure Retail Prices API,2025-12-18T04:44:32.756619 +AZURE,eastus,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488039 +AZURE,eastus,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488049 +AZURE,eastus,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488053 +AZURE,eastus,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488045 +AZURE,eastus,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488851 +AZURE,eastus,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488860 +AZURE,eastus,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488864 +AZURE,eastus,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488856 +AZURE,eastus,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489906 +AZURE,eastus,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489917 +AZURE,eastus,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489922 +AZURE,eastus,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489913 +AZURE,eastus,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490677 +AZURE,eastus,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490685 +AZURE,eastus,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490690 +AZURE,eastus,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490681 +AZURE,eastus,Standard_D16_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:32.756519 +AZURE,eastus,Standard_D16_v3,reserved_1y,NA,0.457991,USD,Azure Retail Prices API,2025-12-18T04:44:35.770600 +AZURE,eastus,Standard_D16_v3,reserved_3y,NA,0.294787,USD,Azure Retail Prices API,2025-12-18T04:44:35.770602 +AZURE,eastus,Standard_D16_v3,spot,NA,0.146381,USD,Azure Retail Prices API,2025-12-18T04:44:32.756256 +AZURE,eastus,Standard_D16a_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:32.757646 +AZURE,eastus,Standard_D16a_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:44:35.775359 +AZURE,eastus,Standard_D16a_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:44:35.775362 +AZURE,eastus,Standard_D16a_v4,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:32.755829 +AZURE,eastus,Standard_D16ads_v5,on_demand,NA,0.824,USD,Azure Retail Prices API,2025-12-18T04:44:32.757199 +AZURE,eastus,Standard_D16ads_v5,reserved_1y,NA,0.486187,USD,Azure Retail Prices API,2025-12-18T04:44:35.770996 +AZURE,eastus,Standard_D16ads_v5,reserved_3y,NA,0.313128,USD,Azure Retail Prices API,2025-12-18T04:44:35.770998 +AZURE,eastus,Standard_D16ads_v5,spot,NA,0.152275,USD,Azure Retail Prices API,2025-12-18T04:44:32.756012 +AZURE,eastus,Standard_D16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:44:32.754091 +AZURE,eastus,Standard_D16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:44:35.770022 +AZURE,eastus,Standard_D16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:44:35.770025 +AZURE,eastus,Standard_D16ads_v6,spot,NA,0.17784,USD,Azure Retail Prices API,2025-12-18T04:44:32.756408 +AZURE,eastus,Standard_D16as_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:32.753975 +AZURE,eastus,Standard_D16as_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:44:35.769984 +AZURE,eastus,Standard_D16as_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:44:35.769986 +AZURE,eastus,Standard_D16as_v4,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:32.756903 +AZURE,eastus,Standard_D16as_v5,on_demand,NA,0.688,USD,Azure Retail Prices API,2025-12-18T04:44:32.756334 +AZURE,eastus,Standard_D16as_v5,reserved_1y,NA,0.405936,USD,Azure Retail Prices API,2025-12-18T04:44:35.770477 +AZURE,eastus,Standard_D16as_v5,reserved_3y,NA,0.261454,USD,Azure Retail Prices API,2025-12-18T04:44:35.770480 +AZURE,eastus,Standard_D16as_v5,spot,NA,0.127142,USD,Azure Retail Prices API,2025-12-18T04:44:32.755919 +AZURE,eastus,Standard_D16d_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:32.756852 +AZURE,eastus,Standard_D16d_v4,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:44:35.770790 +AZURE,eastus,Standard_D16d_v4,reserved_3y,NA,0.339916,USD,Azure Retail Prices API,2025-12-18T04:44:35.770793 +AZURE,eastus,Standard_D16d_v4,spot,NA,0.230158,USD,Azure Retail Prices API,2025-12-18T04:44:32.757382 +AZURE,eastus,Standard_D16ds_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:32.757609 +AZURE,eastus,Standard_D16ds_v4,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:44:35.775340 +AZURE,eastus,Standard_D16ds_v4,reserved_3y,NA,0.339916,USD,Azure Retail Prices API,2025-12-18T04:44:35.775344 +AZURE,eastus,Standard_D16ds_v4,spot,NA,0.230158,USD,Azure Retail Prices API,2025-12-18T04:44:32.755604 +AZURE,eastus,Standard_D16ds_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:32.751383 +AZURE,eastus,Standard_D16ds_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:44:35.769873 +AZURE,eastus,Standard_D16ds_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:44:35.769879 +AZURE,eastus,Standard_D16ds_v5,spot,NA,0.228531,USD,Azure Retail Prices API,2025-12-18T04:44:32.753865 +AZURE,eastus,Standard_D16ds_v6,on_demand,NA,0.997,USD,Azure Retail Prices API,2025-12-18T04:44:32.756878 +AZURE,eastus,Standard_D16ds_v6,reserved_1y,NA,0.617922,USD,Azure Retail Prices API,2025-12-18T04:44:35.770801 +AZURE,eastus,Standard_D16ds_v6,reserved_3y,NA,0.388699,USD,Azure Retail Prices API,2025-12-18T04:44:35.770803 +AZURE,eastus,Standard_D16ds_v6,spot,NA,0.245461,USD,Azure Retail Prices API,2025-12-18T04:44:32.753882 +AZURE,eastus,Standard_D16pds_v6,on_demand,NA,0.734,USD,Azure Retail Prices API,2025-12-18T04:44:32.758206 +AZURE,eastus,Standard_D16pds_v6,reserved_1y,NA,0.433333,USD,Azure Retail Prices API,2025-12-18T04:44:35.775697 +AZURE,eastus,Standard_D16pds_v6,reserved_3y,NA,0.279072,USD,Azure Retail Prices API,2025-12-18T04:44:35.775700 +AZURE,eastus,Standard_D16pds_v6,spot,NA,0.135643,USD,Azure Retail Prices API,2025-12-18T04:44:32.757690 +AZURE,eastus,Standard_D16ps_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:44:32.758050 +AZURE,eastus,Standard_D16ps_v6,reserved_1y,NA,0.331393,USD,Azure Retail Prices API,2025-12-18T04:44:35.775590 +AZURE,eastus,Standard_D16ps_v6,reserved_3y,NA,0.213394,USD,Azure Retail Prices API,2025-12-18T04:44:35.775593 +AZURE,eastus,Standard_D16ps_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:44:32.756434 +AZURE,eastus,Standard_D16s_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:32.756565 +AZURE,eastus,Standard_D16s_v3,reserved_1y,NA,0.457991,USD,Azure Retail Prices API,2025-12-18T04:44:35.770629 +AZURE,eastus,Standard_D16s_v3,reserved_3y,NA,0.294787,USD,Azure Retail Prices API,2025-12-18T04:44:35.770632 +AZURE,eastus,Standard_D16s_v3,spot,NA,0.146381,USD,Azure Retail Prices API,2025-12-18T04:44:32.757769 +AZURE,eastus,Standard_D16s_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:32.757926 +AZURE,eastus,Standard_D16s_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:44:35.775517 +AZURE,eastus,Standard_D16s_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:44:35.775520 +AZURE,eastus,Standard_D16s_v4,spot,NA,0.153984,USD,Azure Retail Prices API,2025-12-18T04:44:32.757843 +AZURE,eastus,Standard_D16s_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:32.758211 +AZURE,eastus,Standard_D16s_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:44:35.775703 +AZURE,eastus,Standard_D16s_v5,reserved_3y,NA,0.28417,USD,Azure Retail Prices API,2025-12-18T04:44:35.775706 +AZURE,eastus,Standard_D16s_v5,spot,NA,0.176486,USD,Azure Retail Prices API,2025-12-18T04:44:32.756001 +AZURE,eastus,Standard_D2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:44:32.754288 +AZURE,eastus,Standard_D2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:44:35.770115 +AZURE,eastus,Standard_D2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:44:35.770118 +AZURE,eastus,Standard_D2ads_v6,spot,NA,0.02223,USD,Azure Retail Prices API,2025-12-18T04:44:32.756598 +AZURE,eastus,Standard_D2ds_v6,on_demand,NA,0.125,USD,Azure Retail Prices API,2025-12-18T04:44:32.756128 +AZURE,eastus,Standard_D2ds_v6,reserved_1y,NA,0.077283,USD,Azure Retail Prices API,2025-12-18T04:44:35.770395 +AZURE,eastus,Standard_D2ds_v6,reserved_3y,NA,0.048592,USD,Azure Retail Prices API,2025-12-18T04:44:35.770398 +AZURE,eastus,Standard_D2ds_v6,spot,NA,0.030775,USD,Azure Retail Prices API,2025-12-18T04:44:32.757387 +AZURE,eastus,Standard_D32_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:32.757488 +AZURE,eastus,Standard_D32_v3,reserved_1y,NA,0.915982,USD,Azure Retail Prices API,2025-12-18T04:44:35.775256 +AZURE,eastus,Standard_D32_v3,reserved_3y,NA,0.589574,USD,Azure Retail Prices API,2025-12-18T04:44:35.775259 +AZURE,eastus,Standard_D32_v3,spot,NA,0.292762,USD,Azure Retail Prices API,2025-12-18T04:44:32.756846 +AZURE,eastus,Standard_D32a_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:32.753939 +AZURE,eastus,Standard_D32a_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:44:35.769961 +AZURE,eastus,Standard_D32a_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:44:35.769964 +AZURE,eastus,Standard_D32a_v4,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:32.754168 +AZURE,eastus,Standard_D32ads_v5,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:44:32.754054 +AZURE,eastus,Standard_D32ads_v5,reserved_1y,NA,0.972374,USD,Azure Retail Prices API,2025-12-18T04:44:35.770968 +AZURE,eastus,Standard_D32ads_v5,reserved_3y,NA,0.626256,USD,Azure Retail Prices API,2025-12-18T04:44:35.770970 +AZURE,eastus,Standard_D32ads_v5,spot,NA,0.30455,USD,Azure Retail Prices API,2025-12-18T04:44:32.755996 +AZURE,eastus,Standard_D32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:44:32.755755 +AZURE,eastus,Standard_D32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:44:35.770212 +AZURE,eastus,Standard_D32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:44:35.770215 +AZURE,eastus,Standard_D32ads_v6,spot,NA,0.35568,USD,Azure Retail Prices API,2025-12-18T04:44:32.756643 +AZURE,eastus,Standard_D32as_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:32.757205 +AZURE,eastus,Standard_D32as_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:44:35.771001 +AZURE,eastus,Standard_D32as_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:44:35.771004 +AZURE,eastus,Standard_D32as_v4,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:32.756018 +AZURE,eastus,Standard_D32as_v5,on_demand,NA,2.848,USD,Azure Retail Prices API,2025-12-18T04:44:32.756123 +AZURE,eastus,Standard_D32as_v5,reserved_1y,NA,0.811872,USD,Azure Retail Prices API,2025-12-18T04:44:35.775237 +AZURE,eastus,Standard_D32as_v5,reserved_3y,NA,0.522869,USD,Azure Retail Prices API,2025-12-18T04:44:35.775240 +AZURE,eastus,Standard_D32as_v5,spot,NA,0.254285,USD,Azure Retail Prices API,2025-12-18T04:44:32.756236 +AZURE,eastus,Standard_D32d_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:32.758168 +AZURE,eastus,Standard_D32d_v4,reserved_1y,NA,1.063128,USD,Azure Retail Prices API,2025-12-18T04:44:35.775679 +AZURE,eastus,Standard_D32d_v4,reserved_3y,NA,0.679795,USD,Azure Retail Prices API,2025-12-18T04:44:35.775682 +AZURE,eastus,Standard_D32d_v4,spot,NA,0.460317,USD,Azure Retail Prices API,2025-12-18T04:44:32.756821 +AZURE,eastus,Standard_D32ds_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:32.757991 +AZURE,eastus,Standard_D32ds_v4,reserved_1y,NA,1.063128,USD,Azure Retail Prices API,2025-12-18T04:44:35.775553 +AZURE,eastus,Standard_D32ds_v4,reserved_3y,NA,0.679795,USD,Azure Retail Prices API,2025-12-18T04:44:35.775556 +AZURE,eastus,Standard_D32ds_v4,spot,NA,0.460317,USD,Azure Retail Prices API,2025-12-18T04:44:32.753905 +AZURE,eastus,Standard_D32ds_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:32.757975 +AZURE,eastus,Standard_D32ds_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:44:35.775541 +AZURE,eastus,Standard_D32ds_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:44:35.775544 +AZURE,eastus,Standard_D32ds_v5,spot,NA,0.457062,USD,Azure Retail Prices API,2025-12-18T04:44:32.757536 +AZURE,eastus,Standard_D32ds_v6,on_demand,NA,1.993,USD,Azure Retail Prices API,2025-12-18T04:44:32.758104 +AZURE,eastus,Standard_D32ds_v6,reserved_1y,NA,1.235845,USD,Azure Retail Prices API,2025-12-18T04:44:35.775638 +AZURE,eastus,Standard_D32ds_v6,reserved_3y,NA,0.777397,USD,Azure Retail Prices API,2025-12-18T04:44:35.775641 +AZURE,eastus,Standard_D32ds_v6,spot,NA,0.490677,USD,Azure Retail Prices API,2025-12-18T04:44:32.756370 +AZURE,eastus,Standard_D32pds_v6,on_demand,NA,1.469,USD,Azure Retail Prices API,2025-12-18T04:44:32.754338 +AZURE,eastus,Standard_D32pds_v6,reserved_1y,NA,0.866553,USD,Azure Retail Prices API,2025-12-18T04:44:35.770144 +AZURE,eastus,Standard_D32pds_v6,reserved_3y,NA,0.558143,USD,Azure Retail Prices API,2025-12-18T04:44:35.770146 +AZURE,eastus,Standard_D32pds_v6,spot,NA,0.271471,USD,Azure Retail Prices API,2025-12-18T04:44:32.756082 +AZURE,eastus,Standard_D32ps_v6,on_demand,NA,1.123,USD,Azure Retail Prices API,2025-12-18T04:44:32.757753 +AZURE,eastus,Standard_D32ps_v6,reserved_1y,NA,0.662671,USD,Azure Retail Prices API,2025-12-18T04:44:35.775409 +AZURE,eastus,Standard_D32ps_v6,reserved_3y,NA,0.426826,USD,Azure Retail Prices API,2025-12-18T04:44:35.775413 +AZURE,eastus,Standard_D32ps_v6,spot,NA,0.20753,USD,Azure Retail Prices API,2025-12-18T04:44:32.757305 +AZURE,eastus,Standard_D32s_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:32.757419 +AZURE,eastus,Standard_D32s_v3,reserved_1y,NA,0.915982,USD,Azure Retail Prices API,2025-12-18T04:44:35.775194 +AZURE,eastus,Standard_D32s_v3,reserved_3y,NA,0.589574,USD,Azure Retail Prices API,2025-12-18T04:44:35.775199 +AZURE,eastus,Standard_D32s_v3,spot,NA,0.292762,USD,Azure Retail Prices API,2025-12-18T04:44:32.757853 +AZURE,eastus,Standard_D32s_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:32.756801 +AZURE,eastus,Standard_D32s_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:44:35.770756 +AZURE,eastus,Standard_D32s_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:44:35.770759 +AZURE,eastus,Standard_D32s_v4,spot,NA,0.307968,USD,Azure Retail Prices API,2025-12-18T04:44:32.757163 +AZURE,eastus,Standard_D32s_v5,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:32.755615 +AZURE,eastus,Standard_D32s_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:44:35.770149 +AZURE,eastus,Standard_D32s_v5,reserved_3y,NA,0.568303,USD,Azure Retail Prices API,2025-12-18T04:44:35.770152 +AZURE,eastus,Standard_D32s_v5,spot,NA,0.352973,USD,Azure Retail Prices API,2025-12-18T04:44:32.756375 +AZURE,eastus,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485026 +AZURE,eastus,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485059 +AZURE,eastus,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485067 +AZURE,eastus,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485037 +AZURE,eastus,Standard_D48a_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:32.756675 +AZURE,eastus,Standard_D48a_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:35.770669 +AZURE,eastus,Standard_D48a_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:35.770672 +AZURE,eastus,Standard_D48a_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:44:32.753960 +AZURE,eastus,Standard_D48ads_v5,on_demand,NA,4.68,USD,Azure Retail Prices API,2025-12-18T04:44:32.756139 +AZURE,eastus,Standard_D48ads_v5,reserved_1y,NA,1.458447,USD,Azure Retail Prices API,2025-12-18T04:44:35.775672 +AZURE,eastus,Standard_D48ads_v5,reserved_3y,NA,0.939346,USD,Azure Retail Prices API,2025-12-18T04:44:35.775675 +AZURE,eastus,Standard_D48ads_v5,spot,NA,0.456826,USD,Azure Retail Prices API,2025-12-18T04:44:32.757360 +AZURE,eastus,Standard_D48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:44:32.757077 +AZURE,eastus,Standard_D48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:44:35.770934 +AZURE,eastus,Standard_D48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:44:35.770938 +AZURE,eastus,Standard_D48ads_v6,spot,NA,0.53352,USD,Azure Retail Prices API,2025-12-18T04:44:32.756550 +AZURE,eastus,Standard_D48as_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:32.756478 +AZURE,eastus,Standard_D48as_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:35.770571 +AZURE,eastus,Standard_D48as_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:35.770574 +AZURE,eastus,Standard_D48as_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:44:32.758123 +AZURE,eastus,Standard_D48as_v5,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:44:32.756841 +AZURE,eastus,Standard_D48as_v5,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:44:35.770785 +AZURE,eastus,Standard_D48as_v5,reserved_3y,NA,0.784323,USD,Azure Retail Prices API,2025-12-18T04:44:35.770787 +AZURE,eastus,Standard_D48as_v5,spot,NA,0.381427,USD,Azure Retail Prices API,2025-12-18T04:44:32.754283 +AZURE,eastus,Standard_D48d_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:32.756535 +AZURE,eastus,Standard_D48d_v4,reserved_1y,NA,1.594635,USD,Azure Retail Prices API,2025-12-18T04:44:35.770612 +AZURE,eastus,Standard_D48d_v4,reserved_3y,NA,1.019711,USD,Azure Retail Prices API,2025-12-18T04:44:35.770615 +AZURE,eastus,Standard_D48d_v4,spot,NA,0.690475,USD,Azure Retail Prices API,2025-12-18T04:44:32.756071 +AZURE,eastus,Standard_D48ds_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:32.757034 +AZURE,eastus,Standard_D48ds_v4,reserved_1y,NA,1.594635,USD,Azure Retail Prices API,2025-12-18T04:44:35.770901 +AZURE,eastus,Standard_D48ds_v4,reserved_3y,NA,1.019711,USD,Azure Retail Prices API,2025-12-18T04:44:35.770906 +AZURE,eastus,Standard_D48ds_v4,spot,NA,0.690475,USD,Azure Retail Prices API,2025-12-18T04:44:32.758028 +AZURE,eastus,Standard_D48ds_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:32.757809 +AZURE,eastus,Standard_D48ds_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:44:35.775440 +AZURE,eastus,Standard_D48ds_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:44:35.775442 +AZURE,eastus,Standard_D48ds_v5,spot,NA,0.685594,USD,Azure Retail Prices API,2025-12-18T04:44:32.751394 +AZURE,eastus,Standard_D48ds_v6,on_demand,NA,2.99,USD,Azure Retail Prices API,2025-12-18T04:44:32.758060 +AZURE,eastus,Standard_D48ds_v6,reserved_1y,NA,1.853767,USD,Azure Retail Prices API,2025-12-18T04:44:35.775597 +AZURE,eastus,Standard_D48ds_v6,reserved_3y,NA,1.166058,USD,Azure Retail Prices API,2025-12-18T04:44:35.775600 +AZURE,eastus,Standard_D48ds_v6,spot,NA,0.736138,USD,Azure Retail Prices API,2025-12-18T04:44:32.757898 +AZURE,eastus,Standard_D48pds_v6,on_demand,NA,2.203,USD,Azure Retail Prices API,2025-12-18T04:44:32.756295 +AZURE,eastus,Standard_D48pds_v6,reserved_1y,NA,1.299886,USD,Azure Retail Prices API,2025-12-18T04:44:35.770461 +AZURE,eastus,Standard_D48pds_v6,reserved_3y,NA,0.837215,USD,Azure Retail Prices API,2025-12-18T04:44:35.770464 +AZURE,eastus,Standard_D48pds_v6,spot,NA,0.407114,USD,Azure Retail Prices API,2025-12-18T04:44:32.756628 +AZURE,eastus,Standard_D48ps_v6,on_demand,NA,1.685,USD,Azure Retail Prices API,2025-12-18T04:44:32.757674 +AZURE,eastus,Standard_D48ps_v6,reserved_1y,NA,0.994064,USD,Azure Retail Prices API,2025-12-18T04:44:35.775372 +AZURE,eastus,Standard_D48ps_v6,reserved_3y,NA,0.640221,USD,Azure Retail Prices API,2025-12-18T04:44:35.775375 +AZURE,eastus,Standard_D48ps_v6,spot,NA,0.311388,USD,Azure Retail Prices API,2025-12-18T04:44:32.754260 +AZURE,eastus,Standard_D48s_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:32.758152 +AZURE,eastus,Standard_D48s_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:35.775660 +AZURE,eastus,Standard_D48s_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:35.775663 +AZURE,eastus,Standard_D48s_v4,spot,NA,0.461952,USD,Azure Retail Prices API,2025-12-18T04:44:32.756499 +AZURE,eastus,Standard_D48s_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:32.756429 +AZURE,eastus,Standard_D48s_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:35.770548 +AZURE,eastus,Standard_D48s_v5,reserved_3y,NA,0.852473,USD,Azure Retail Prices API,2025-12-18T04:44:35.770550 +AZURE,eastus,Standard_D48s_v5,spot,NA,0.529459,USD,Azure Retail Prices API,2025-12-18T04:44:32.758137 +AZURE,eastus,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485930 +AZURE,eastus,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485939 +AZURE,eastus,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485944 +AZURE,eastus,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485934 +AZURE,eastus,Standard_D4a_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:32.757965 +AZURE,eastus,Standard_D4a_v4,reserved_1y,NA,0.1129,USD,Azure Retail Prices API,2025-12-18T04:44:35.775535 +AZURE,eastus,Standard_D4a_v4,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:44:35.775538 +AZURE,eastus,Standard_D4a_v4,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:44:32.757299 +AZURE,eastus,Standard_D4ads_v5,on_demand,NA,0.206,USD,Azure Retail Prices API,2025-12-18T04:44:32.756391 +AZURE,eastus,Standard_D4ads_v5,reserved_1y,NA,0.121575,USD,Azure Retail Prices API,2025-12-18T04:44:35.770525 +AZURE,eastus,Standard_D4ads_v5,reserved_3y,NA,0.078272,USD,Azure Retail Prices API,2025-12-18T04:44:35.770528 +AZURE,eastus,Standard_D4ads_v5,spot,NA,0.038069,USD,Azure Retail Prices API,2025-12-18T04:44:32.754113 +AZURE,eastus,Standard_D4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:44:32.756023 +AZURE,eastus,Standard_D4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:44:35.770357 +AZURE,eastus,Standard_D4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:44:35.770359 +AZURE,eastus,Standard_D4ads_v6,spot,NA,0.04446,USD,Azure Retail Prices API,2025-12-18T04:44:32.754071 +AZURE,eastus,Standard_D4as_v5,on_demand,NA,0.356,USD,Azure Retail Prices API,2025-12-18T04:44:32.755930 +AZURE,eastus,Standard_D4as_v5,reserved_1y,NA,0.101484,USD,Azure Retail Prices API,2025-12-18T04:44:35.775649 +AZURE,eastus,Standard_D4as_v5,reserved_3y,NA,0.065373,USD,Azure Retail Prices API,2025-12-18T04:44:35.775652 +AZURE,eastus,Standard_D4as_v5,spot,NA,0.031786,USD,Azure Retail Prices API,2025-12-18T04:44:32.754239 +AZURE,eastus,Standard_D4d_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:32.753870 +AZURE,eastus,Standard_D4d_v4,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:44:35.769916 +AZURE,eastus,Standard_D4d_v4,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:44:35.769919 +AZURE,eastus,Standard_D4d_v4,spot,NA,0.05754,USD,Azure Retail Prices API,2025-12-18T04:44:32.756324 +AZURE,eastus,Standard_D4ds_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:32.757317 +AZURE,eastus,Standard_D4ds_v4,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:44:35.771040 +AZURE,eastus,Standard_D4ds_v4,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:44:35.771043 +AZURE,eastus,Standard_D4ds_v4,spot,NA,0.05754,USD,Azure Retail Prices API,2025-12-18T04:44:32.756770 +AZURE,eastus,Standard_D4ds_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:32.756958 +AZURE,eastus,Standard_D4ds_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:44:35.770845 +AZURE,eastus,Standard_D4ds_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:44:35.770848 +AZURE,eastus,Standard_D4ds_v5,spot,NA,0.057133,USD,Azure Retail Prices API,2025-12-18T04:44:32.757546 +AZURE,eastus,Standard_D4ds_v6,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:44:32.757614 +AZURE,eastus,Standard_D4ds_v6,reserved_1y,NA,0.154452,USD,Azure Retail Prices API,2025-12-18T04:44:35.775347 +AZURE,eastus,Standard_D4ds_v6,reserved_3y,NA,0.097184,USD,Azure Retail Prices API,2025-12-18T04:44:35.775350 +AZURE,eastus,Standard_D4ds_v6,spot,NA,0.061304,USD,Azure Retail Prices API,2025-12-18T04:44:32.757333 +AZURE,eastus,Standard_D4pds_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:44:32.751377 +AZURE,eastus,Standard_D4pds_v6,reserved_1y,NA,0.108333,USD,Azure Retail Prices API,2025-12-18T04:44:35.769865 +AZURE,eastus,Standard_D4pds_v6,reserved_3y,NA,0.069787,USD,Azure Retail Prices API,2025-12-18T04:44:35.769869 +AZURE,eastus,Standard_D4pds_v6,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:44:32.755598 +AZURE,eastus,Standard_D4ps_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:44:32.757980 +AZURE,eastus,Standard_D4ps_v6,reserved_1y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:44:35.775547 +AZURE,eastus,Standard_D4ps_v6,reserved_3y,NA,0.053349,USD,Azure Retail Prices API,2025-12-18T04:44:35.775550 +AZURE,eastus,Standard_D4ps_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:44:32.757282 +AZURE,eastus,Standard_D4s_v3,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:32.757567 +AZURE,eastus,Standard_D4s_v3,reserved_1y,NA,0.114498,USD,Azure Retail Prices API,2025-12-18T04:44:35.775317 +AZURE,eastus,Standard_D4s_v3,reserved_3y,NA,0.073706,USD,Azure Retail Prices API,2025-12-18T04:44:35.775320 +AZURE,eastus,Standard_D4s_v3,spot,NA,0.036595,USD,Azure Retail Prices API,2025-12-18T04:44:32.757685 +AZURE,eastus,Standard_D4s_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:32.756712 +AZURE,eastus,Standard_D4s_v4,reserved_1y,NA,0.1129,USD,Azure Retail Prices API,2025-12-18T04:44:35.770696 +AZURE,eastus,Standard_D4s_v4,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:44:35.770699 +AZURE,eastus,Standard_D4s_v4,spot,NA,0.038496,USD,Azure Retail Prices API,2025-12-18T04:44:32.753994 +AZURE,eastus,Standard_D4s_v5,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:32.757827 +AZURE,eastus,Standard_D4s_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:44:35.775466 +AZURE,eastus,Standard_D4s_v5,reserved_3y,NA,0.071043,USD,Azure Retail Prices API,2025-12-18T04:44:35.775471 +AZURE,eastus,Standard_D4s_v5,spot,NA,0.044122,USD,Azure Retail Prices API,2025-12-18T04:44:32.758007 +AZURE,eastus,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486861 +AZURE,eastus,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486875 +AZURE,eastus,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486881 +AZURE,eastus,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486868 +AZURE,eastus,Standard_D64_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:32.756785 +AZURE,eastus,Standard_D64_v3,reserved_1y,NA,1.831963,USD,Azure Retail Prices API,2025-12-18T04:44:35.770746 +AZURE,eastus,Standard_D64_v3,reserved_3y,NA,1.179148,USD,Azure Retail Prices API,2025-12-18T04:44:35.770748 +AZURE,eastus,Standard_D64_v3,spot,NA,0.585523,USD,Azure Retail Prices API,2025-12-18T04:44:32.755675 +AZURE,eastus,Standard_D64a_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:32.757996 +AZURE,eastus,Standard_D64a_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:44:35.775559 +AZURE,eastus,Standard_D64a_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:44:35.775562 +AZURE,eastus,Standard_D64a_v4,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:32.756087 +AZURE,eastus,Standard_D64ads_v5,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:44:32.757339 +AZURE,eastus,Standard_D64ads_v5,reserved_1y,NA,1.944635,USD,Azure Retail Prices API,2025-12-18T04:44:35.775298 +AZURE,eastus,Standard_D64ads_v5,reserved_3y,NA,1.252473,USD,Azure Retail Prices API,2025-12-18T04:44:35.775301 +AZURE,eastus,Standard_D64ads_v5,spot,NA,0.609101,USD,Azure Retail Prices API,2025-12-18T04:44:32.756796 +AZURE,eastus,Standard_D64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:44:32.756560 +AZURE,eastus,Standard_D64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:44:35.770623 +AZURE,eastus,Standard_D64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:44:35.770626 +AZURE,eastus,Standard_D64ads_v6,spot,NA,0.71136,USD,Azure Retail Prices API,2025-12-18T04:44:32.756983 +AZURE,eastus,Standard_D64as_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:32.756349 +AZURE,eastus,Standard_D64as_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:44:35.770493 +AZURE,eastus,Standard_D64as_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:44:35.770496 +AZURE,eastus,Standard_D64as_v4,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:32.757448 +AZURE,eastus,Standard_D64as_v5,on_demand,NA,5.696,USD,Azure Retail Prices API,2025-12-18T04:44:32.753894 +AZURE,eastus,Standard_D64as_v5,reserved_1y,NA,1.62363,USD,Azure Retail Prices API,2025-12-18T04:44:35.770103 +AZURE,eastus,Standard_D64as_v5,reserved_3y,NA,1.045776,USD,Azure Retail Prices API,2025-12-18T04:44:35.770106 +AZURE,eastus,Standard_D64as_v5,spot,NA,0.50857,USD,Azure Retail Prices API,2025-12-18T04:44:32.757397 +AZURE,eastus,Standard_D64d_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:32.756251 +AZURE,eastus,Standard_D64d_v4,reserved_1y,NA,2.126256,USD,Azure Retail Prices API,2025-12-18T04:44:35.770434 +AZURE,eastus,Standard_D64d_v4,reserved_3y,NA,1.359627,USD,Azure Retail Prices API,2025-12-18T04:44:35.770437 +AZURE,eastus,Standard_D64d_v4,spot,NA,0.920634,USD,Azure Retail Prices API,2025-12-18T04:44:32.757028 +AZURE,eastus,Standard_D64ds_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:32.757008 +AZURE,eastus,Standard_D64ds_v4,reserved_1y,NA,2.126256,USD,Azure Retail Prices API,2025-12-18T04:44:35.770873 +AZURE,eastus,Standard_D64ds_v4,reserved_3y,NA,1.359627,USD,Azure Retail Prices API,2025-12-18T04:44:35.770875 +AZURE,eastus,Standard_D64ds_v4,spot,NA,0.920634,USD,Azure Retail Prices API,2025-12-18T04:44:32.757620 +AZURE,eastus,Standard_D64ds_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:32.756680 +AZURE,eastus,Standard_D64ds_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:44:35.770674 +AZURE,eastus,Standard_D64ds_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:44:35.770677 +AZURE,eastus,Standard_D64ds_v5,spot,NA,0.914125,USD,Azure Retail Prices API,2025-12-18T04:44:32.757728 +AZURE,eastus,Standard_D64ds_v6,on_demand,NA,3.987,USD,Azure Retail Prices API,2025-12-18T04:44:32.756514 +AZURE,eastus,Standard_D64ds_v6,reserved_1y,NA,2.471689,USD,Azure Retail Prices API,2025-12-18T04:44:35.770594 +AZURE,eastus,Standard_D64ds_v6,reserved_3y,NA,1.554756,USD,Azure Retail Prices API,2025-12-18T04:44:35.770597 +AZURE,eastus,Standard_D64ds_v6,spot,NA,0.981599,USD,Azure Retail Prices API,2025-12-18T04:44:32.756232 +AZURE,eastus,Standard_D64pds_v6,on_demand,NA,2.938,USD,Azure Retail Prices API,2025-12-18T04:44:32.754315 +AZURE,eastus,Standard_D64pds_v6,reserved_1y,NA,1.733219,USD,Azure Retail Prices API,2025-12-18T04:44:35.770132 +AZURE,eastus,Standard_D64pds_v6,reserved_3y,NA,1.116286,USD,Azure Retail Prices API,2025-12-18T04:44:35.770135 +AZURE,eastus,Standard_D64pds_v6,spot,NA,0.542942,USD,Azure Retail Prices API,2025-12-18T04:44:32.756968 +AZURE,eastus,Standard_D64ps_v6,on_demand,NA,2.246,USD,Azure Retail Prices API,2025-12-18T04:44:32.755870 +AZURE,eastus,Standard_D64ps_v6,reserved_1y,NA,1.325342,USD,Azure Retail Prices API,2025-12-18T04:44:35.770286 +AZURE,eastus,Standard_D64ps_v6,reserved_3y,NA,0.853615,USD,Azure Retail Prices API,2025-12-18T04:44:35.770289 +AZURE,eastus,Standard_D64ps_v6,spot,NA,0.415061,USD,Azure Retail Prices API,2025-12-18T04:44:32.756445 +AZURE,eastus,Standard_D64s_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:32.755797 +AZURE,eastus,Standard_D64s_v3,reserved_1y,NA,1.831963,USD,Azure Retail Prices API,2025-12-18T04:44:35.770241 +AZURE,eastus,Standard_D64s_v3,reserved_3y,NA,1.179148,USD,Azure Retail Prices API,2025-12-18T04:44:35.770244 +AZURE,eastus,Standard_D64s_v3,spot,NA,0.585523,USD,Azure Retail Prices API,2025-12-18T04:44:32.756319 +AZURE,eastus,Standard_D64s_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:32.757631 +AZURE,eastus,Standard_D64s_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:44:35.775353 +AZURE,eastus,Standard_D64s_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:44:35.775356 +AZURE,eastus,Standard_D64s_v4,spot,NA,0.615936,USD,Azure Retail Prices API,2025-12-18T04:44:32.756930 +AZURE,eastus,Standard_D64s_v5,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:32.756286 +AZURE,eastus,Standard_D64s_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:44:35.770455 +AZURE,eastus,Standard_D64s_v5,reserved_3y,NA,1.136644,USD,Azure Retail Prices API,2025-12-18T04:44:35.770458 +AZURE,eastus,Standard_D64s_v5,spot,NA,0.705946,USD,Azure Retail Prices API,2025-12-18T04:44:32.757970 +AZURE,eastus,Standard_D8_v3,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:32.757848 +AZURE,eastus,Standard_D8_v3,reserved_1y,NA,0.228995,USD,Azure Retail Prices API,2025-12-18T04:44:35.775476 +AZURE,eastus,Standard_D8_v3,reserved_3y,NA,0.147374,USD,Azure Retail Prices API,2025-12-18T04:44:35.775480 +AZURE,eastus,Standard_D8_v3,spot,NA,0.07319,USD,Azure Retail Prices API,2025-12-18T04:44:32.755642 +AZURE,eastus,Standard_D8a_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:32.755739 +AZURE,eastus,Standard_D8a_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:44:35.770206 +AZURE,eastus,Standard_D8a_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:44:35.770209 +AZURE,eastus,Standard_D8a_v4,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:44:32.758018 +AZURE,eastus,Standard_D8ads_v5,on_demand,NA,0.412,USD,Azure Retail Prices API,2025-12-18T04:44:32.753848 +AZURE,eastus,Standard_D8ads_v5,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:44:35.769905 +AZURE,eastus,Standard_D8ads_v5,reserved_3y,NA,0.156545,USD,Azure Retail Prices API,2025-12-18T04:44:35.769908 +AZURE,eastus,Standard_D8ads_v5,spot,NA,0.076138,USD,Azure Retail Prices API,2025-12-18T04:44:32.757328 +AZURE,eastus,Standard_D8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:44:32.756944 +AZURE,eastus,Standard_D8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:44:35.770834 +AZURE,eastus,Standard_D8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:44:35.770837 +AZURE,eastus,Standard_D8ads_v6,spot,NA,0.08892,USD,Azure Retail Prices API,2025-12-18T04:44:32.757954 +AZURE,eastus,Standard_D8as_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:32.756723 +AZURE,eastus,Standard_D8as_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:44:35.770702 +AZURE,eastus,Standard_D8as_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:44:35.770705 +AZURE,eastus,Standard_D8as_v4,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:44:32.757526 +AZURE,eastus,Standard_D8as_v5,on_demand,NA,0.344,USD,Azure Retail Prices API,2025-12-18T04:44:32.753984 +AZURE,eastus,Standard_D8as_v5,reserved_1y,NA,0.202968,USD,Azure Retail Prices API,2025-12-18T04:44:35.769995 +AZURE,eastus,Standard_D8as_v5,reserved_3y,NA,0.130708,USD,Azure Retail Prices API,2025-12-18T04:44:35.769998 +AZURE,eastus,Standard_D8as_v5,spot,NA,0.063571,USD,Azure Retail Prices API,2025-12-18T04:44:32.757887 +AZURE,eastus,Standard_D8d_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:32.756093 +AZURE,eastus,Standard_D8d_v4,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:44:35.770384 +AZURE,eastus,Standard_D8d_v4,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:44:35.770387 +AZURE,eastus,Standard_D8d_v4,spot,NA,0.115079,USD,Azure Retail Prices API,2025-12-18T04:44:32.756603 +AZURE,eastus,Standard_D8ds_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:32.753955 +AZURE,eastus,Standard_D8ds_v4,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:44:35.769972 +AZURE,eastus,Standard_D8ds_v4,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:44:35.769975 +AZURE,eastus,Standard_D8ds_v4,spot,NA,0.115079,USD,Azure Retail Prices API,2025-12-18T04:44:32.757733 +AZURE,eastus,Standard_D8ds_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:32.756664 +AZURE,eastus,Standard_D8ds_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:44:35.770657 +AZURE,eastus,Standard_D8ds_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:44:35.770660 +AZURE,eastus,Standard_D8ds_v5,spot,NA,0.114266,USD,Azure Retail Prices API,2025-12-18T04:44:32.757588 +AZURE,eastus,Standard_D8ds_v6,on_demand,NA,0.498,USD,Azure Retail Prices API,2025-12-18T04:44:32.756749 +AZURE,eastus,Standard_D8ds_v6,reserved_1y,NA,0.308904,USD,Azure Retail Prices API,2025-12-18T04:44:35.770718 +AZURE,eastus,Standard_D8ds_v6,reserved_3y,NA,0.19433,USD,Azure Retail Prices API,2025-12-18T04:44:35.770721 +AZURE,eastus,Standard_D8ds_v6,spot,NA,0.122608,USD,Azure Retail Prices API,2025-12-18T04:44:32.757039 +AZURE,eastus,Standard_D8pds_v6,on_demand,NA,0.367,USD,Azure Retail Prices API,2025-12-18T04:44:32.757882 +AZURE,eastus,Standard_D8pds_v6,reserved_1y,NA,0.216667,USD,Azure Retail Prices API,2025-12-18T04:44:35.775499 +AZURE,eastus,Standard_D8pds_v6,reserved_3y,NA,0.139536,USD,Azure Retail Prices API,2025-12-18T04:44:35.775502 +AZURE,eastus,Standard_D8pds_v6,spot,NA,0.067822,USD,Azure Retail Prices API,2025-12-18T04:44:32.757859 +AZURE,eastus,Standard_D8ps_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:44:32.753888 +AZURE,eastus,Standard_D8ps_v6,reserved_1y,NA,0.165639,USD,Azure Retail Prices API,2025-12-18T04:44:35.769922 +AZURE,eastus,Standard_D8ps_v6,reserved_3y,NA,0.106697,USD,Azure Retail Prices API,2025-12-18T04:44:35.769925 +AZURE,eastus,Standard_D8ps_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:44:32.756007 +AZURE,eastus,Standard_D8s_v3,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:32.754332 +AZURE,eastus,Standard_D8s_v3,reserved_1y,NA,0.228995,USD,Azure Retail Prices API,2025-12-18T04:44:35.770138 +AZURE,eastus,Standard_D8s_v3,reserved_3y,NA,0.147374,USD,Azure Retail Prices API,2025-12-18T04:44:35.770141 +AZURE,eastus,Standard_D8s_v3,spot,NA,0.07319,USD,Azure Retail Prices API,2025-12-18T04:44:32.756744 +AZURE,eastus,Standard_D8s_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:32.751342 +AZURE,eastus,Standard_D8s_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:44:35.769842 +AZURE,eastus,Standard_D8s_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:44:35.769845 +AZURE,eastus,Standard_D8s_v4,spot,NA,0.076992,USD,Azure Retail Prices API,2025-12-18T04:44:32.757355 +AZURE,eastus,Standard_D8s_v5,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:32.754157 +AZURE,eastus,Standard_D8s_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:44:35.770057 +AZURE,eastus,Standard_D8s_v5,reserved_3y,NA,0.142085,USD,Azure Retail Prices API,2025-12-18T04:44:35.770059 +AZURE,eastus,Standard_D8s_v5,spot,NA,0.088243,USD,Azure Retail Prices API,2025-12-18T04:44:32.757253 +AZURE,eastus,Standard_D96a_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:32.757757 +AZURE,eastus,Standard_D96a_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:44:35.775415 +AZURE,eastus,Standard_D96a_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:44:35.775418 +AZURE,eastus,Standard_D96a_v4,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:44:32.754293 +AZURE,eastus,Standard_D96ads_v5,on_demand,NA,9.36,USD,Azure Retail Prices API,2025-12-18T04:44:32.755654 +AZURE,eastus,Standard_D96ads_v5,reserved_1y,NA,2.917009,USD,Azure Retail Prices API,2025-12-18T04:44:35.775505 +AZURE,eastus,Standard_D96ads_v5,reserved_3y,NA,1.878729,USD,Azure Retail Prices API,2025-12-18T04:44:35.775508 +AZURE,eastus,Standard_D96ads_v5,spot,NA,0.913651,USD,Azure Retail Prices API,2025-12-18T04:44:32.756954 +AZURE,eastus,Standard_D96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:44:32.754304 +AZURE,eastus,Standard_D96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:44:35.770121 +AZURE,eastus,Standard_D96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:44:35.770124 +AZURE,eastus,Standard_D96ads_v6,spot,NA,1.06704,USD,Azure Retail Prices API,2025-12-18T04:44:32.756218 +AZURE,eastus,Standard_D96as_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:32.756045 +AZURE,eastus,Standard_D96as_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:44:35.770373 +AZURE,eastus,Standard_D96as_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:44:35.770376 +AZURE,eastus,Standard_D96as_v4,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:44:32.756963 +AZURE,eastus,Standard_D96as_v5,on_demand,NA,8.544,USD,Azure Retail Prices API,2025-12-18T04:44:32.754271 +AZURE,eastus,Standard_D96as_v5,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:44:35.775217 +AZURE,eastus,Standard_D96as_v5,reserved_3y,NA,1.568645,USD,Azure Retail Prices API,2025-12-18T04:44:35.775220 +AZURE,eastus,Standard_D96as_v5,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:44:32.757663 +AZURE,eastus,Standard_D96ds_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:32.757604 +AZURE,eastus,Standard_D96ds_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:44:35.775334 +AZURE,eastus,Standard_D96ds_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:44:35.775337 +AZURE,eastus,Standard_D96ds_v5,spot,NA,1.371187,USD,Azure Retail Prices API,2025-12-18T04:44:32.755750 +AZURE,eastus,Standard_D96ds_v6,on_demand,NA,5.98,USD,Azure Retail Prices API,2025-12-18T04:44:32.757168 +AZURE,eastus,Standard_D96ds_v6,reserved_1y,NA,3.707534,USD,Azure Retail Prices API,2025-12-18T04:44:35.770978 +AZURE,eastus,Standard_D96ds_v6,reserved_3y,NA,2.332154,USD,Azure Retail Prices API,2025-12-18T04:44:35.770981 +AZURE,eastus,Standard_D96ds_v6,spot,NA,1.472276,USD,Azure Retail Prices API,2025-12-18T04:44:32.756359 +AZURE,eastus,Standard_D96pds_v6,on_demand,NA,4.406,USD,Azure Retail Prices API,2025-12-18T04:44:32.755903 +AZURE,eastus,Standard_D96pds_v6,reserved_1y,NA,2.599772,USD,Azure Retail Prices API,2025-12-18T04:44:35.770310 +AZURE,eastus,Standard_D96pds_v6,reserved_3y,NA,1.674429,USD,Azure Retail Prices API,2025-12-18T04:44:35.770313 +AZURE,eastus,Standard_D96pds_v6,spot,NA,0.814229,USD,Azure Retail Prices API,2025-12-18T04:44:32.756653 +AZURE,eastus,Standard_D96ps_v6,on_demand,NA,3.37,USD,Azure Retail Prices API,2025-12-18T04:44:32.756998 +AZURE,eastus,Standard_D96ps_v6,reserved_1y,NA,1.988014,USD,Azure Retail Prices API,2025-12-18T04:44:35.770862 +AZURE,eastus,Standard_D96ps_v6,reserved_3y,NA,1.280441,USD,Azure Retail Prices API,2025-12-18T04:44:35.770864 +AZURE,eastus,Standard_D96ps_v6,spot,NA,0.622776,USD,Azure Retail Prices API,2025-12-18T04:44:32.757783 +AZURE,eastus,Standard_D96s_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:32.757498 +AZURE,eastus,Standard_D96s_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:44:35.775262 +AZURE,eastus,Standard_D96s_v5,reserved_3y,NA,1.704947,USD,Azure Retail Prices API,2025-12-18T04:44:35.775266 +AZURE,eastus,Standard_D96s_v5,spot,NA,1.058918,USD,Azure Retail Prices API,2025-12-18T04:44:32.754217 +AZURE,eastus,Standard_DC16ads_v5,on_demand,NA,0.824,USD,Azure Retail Prices API,2025-12-18T04:44:32.756702 +AZURE,eastus,Standard_DC16ads_v5,reserved_1y,NA,0.659247,USD,Azure Retail Prices API,2025-12-18T04:44:35.770685 +AZURE,eastus,Standard_DC16ads_v5,reserved_3y,NA,0.494406,USD,Azure Retail Prices API,2025-12-18T04:44:35.770688 +AZURE,eastus,Standard_DC16ads_v5,spot,NA,0.155489,USD,Azure Retail Prices API,2025-12-18T04:44:32.757056 +AZURE,eastus,Standard_DC16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:44:32.751318 +AZURE,eastus,Standard_DC16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:44:35.769794 +AZURE,eastus,Standard_DC16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:44:35.769807 +AZURE,eastus,Standard_DC16ads_v6,spot,NA,0.168538,USD,Azure Retail Prices API,2025-12-18T04:44:32.757515 +AZURE,eastus,Standard_DC16as_v5,on_demand,NA,0.688,USD,Azure Retail Prices API,2025-12-18T04:44:32.757774 +AZURE,eastus,Standard_DC16as_v5,reserved_1y,NA,0.550457,USD,Azure Retail Prices API,2025-12-18T04:44:35.775421 +AZURE,eastus,Standard_DC16as_v5,reserved_3y,NA,0.412785,USD,Azure Retail Prices API,2025-12-18T04:44:35.775425 +AZURE,eastus,Standard_DC16as_v5,spot,NA,0.129826,USD,Azure Retail Prices API,2025-12-18T04:44:32.755724 +AZURE,eastus,Standard_DC2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:44:32.751330 +AZURE,eastus,Standard_DC2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:44:35.769824 +AZURE,eastus,Standard_DC2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:44:35.769830 +AZURE,eastus,Standard_DC2ads_v6,spot,NA,0.021067,USD,Azure Retail Prices API,2025-12-18T04:44:32.754179 +AZURE,eastus,Standard_DC32ads_v5,on_demand,NA,1.648,USD,Azure Retail Prices API,2025-12-18T04:44:32.757003 +AZURE,eastus,Standard_DC32ads_v5,reserved_1y,NA,1.318379,USD,Azure Retail Prices API,2025-12-18T04:44:35.770867 +AZURE,eastus,Standard_DC32ads_v5,reserved_3y,NA,0.988813,USD,Azure Retail Prices API,2025-12-18T04:44:35.770870 +AZURE,eastus,Standard_DC32ads_v5,spot,NA,0.310978,USD,Azure Retail Prices API,2025-12-18T04:44:32.758132 +AZURE,eastus,Standard_DC32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:44:32.756418 +AZURE,eastus,Standard_DC32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:44:35.770542 +AZURE,eastus,Standard_DC32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:44:35.770545 +AZURE,eastus,Standard_DC32ads_v6,spot,NA,0.337075,USD,Azure Retail Prices API,2025-12-18T04:44:32.753999 +AZURE,eastus,Standard_DC32as_v5,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:44:32.757531 +AZURE,eastus,Standard_DC32as_v5,reserved_1y,NA,1.100799,USD,Azure Retail Prices API,2025-12-18T04:44:35.775287 +AZURE,eastus,Standard_DC32as_v5,reserved_3y,NA,0.825609,USD,Azure Retail Prices API,2025-12-18T04:44:35.775290 +AZURE,eastus,Standard_DC32as_v5,spot,NA,0.259651,USD,Azure Retail Prices API,2025-12-18T04:44:32.757652 +AZURE,eastus,Standard_DC48ads_v5,on_demand,NA,2.472,USD,Azure Retail Prices API,2025-12-18T04:44:32.754119 +AZURE,eastus,Standard_DC48ads_v5,reserved_1y,NA,1.977626,USD,Azure Retail Prices API,2025-12-18T04:44:35.770039 +AZURE,eastus,Standard_DC48ads_v5,reserved_3y,NA,1.483181,USD,Azure Retail Prices API,2025-12-18T04:44:35.770042 +AZURE,eastus,Standard_DC48ads_v5,spot,NA,0.466466,USD,Azure Retail Prices API,2025-12-18T04:44:32.757158 +AZURE,eastus,Standard_DC48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:44:32.756780 +AZURE,eastus,Standard_DC48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:44:35.770740 +AZURE,eastus,Standard_DC48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:44:35.770743 +AZURE,eastus,Standard_DC48ads_v6,spot,NA,0.505613,USD,Azure Retail Prices API,2025-12-18T04:44:32.757183 +AZURE,eastus,Standard_DC48as_v5,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:44:32.755631 +AZURE,eastus,Standard_DC48as_v5,reserved_1y,NA,1.651256,USD,Azure Retail Prices API,2025-12-18T04:44:35.770162 +AZURE,eastus,Standard_DC48as_v5,reserved_3y,NA,1.238394,USD,Azure Retail Prices API,2025-12-18T04:44:35.770165 +AZURE,eastus,Standard_DC48as_v5,spot,NA,0.389477,USD,Azure Retail Prices API,2025-12-18T04:44:32.758147 +AZURE,eastus,Standard_DC4ads_v5,on_demand,NA,0.206,USD,Azure Retail Prices API,2025-12-18T04:44:32.757931 +AZURE,eastus,Standard_DC4ads_v5,reserved_1y,NA,0.16484,USD,Azure Retail Prices API,2025-12-18T04:44:35.775523 +AZURE,eastus,Standard_DC4ads_v5,reserved_3y,NA,0.123592,USD,Azure Retail Prices API,2025-12-18T04:44:35.775526 +AZURE,eastus,Standard_DC4ads_v5,spot,NA,0.038872,USD,Azure Retail Prices API,2025-12-18T04:44:32.756188 +AZURE,eastus,Standard_DC4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:44:32.756109 +AZURE,eastus,Standard_DC4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:44:35.770389 +AZURE,eastus,Standard_DC4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:44:35.770392 +AZURE,eastus,Standard_DC4ads_v6,spot,NA,0.042134,USD,Azure Retail Prices API,2025-12-18T04:44:32.755819 +AZURE,eastus,Standard_DC4as_v5,on_demand,NA,0.172,USD,Azure Retail Prices API,2025-12-18T04:44:32.754130 +AZURE,eastus,Standard_DC4as_v5,reserved_1y,NA,0.137557,USD,Azure Retail Prices API,2025-12-18T04:44:35.770051 +AZURE,eastus,Standard_DC4as_v5,reserved_3y,NA,0.103196,USD,Azure Retail Prices API,2025-12-18T04:44:35.770054 +AZURE,eastus,Standard_DC4as_v5,spot,NA,0.032456,USD,Azure Retail Prices API,2025-12-18T04:44:32.756305 +AZURE,eastus,Standard_DC64ads_v5,on_demand,NA,3.296,USD,Azure Retail Prices API,2025-12-18T04:44:32.754010 +AZURE,eastus,Standard_DC64ads_v5,reserved_1y,NA,2.636758,USD,Azure Retail Prices API,2025-12-18T04:44:35.770001 +AZURE,eastus,Standard_DC64ads_v5,reserved_3y,NA,1.977588,USD,Azure Retail Prices API,2025-12-18T04:44:35.770003 +AZURE,eastus,Standard_DC64ads_v5,spot,NA,0.621955,USD,Azure Retail Prices API,2025-12-18T04:44:32.756868 +AZURE,eastus,Standard_DC64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:44:32.753945 +AZURE,eastus,Standard_DC64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:44:35.769966 +AZURE,eastus,Standard_DC64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:44:35.769969 +AZURE,eastus,Standard_DC64ads_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:44:32.756613 +AZURE,eastus,Standard_DC64as_v5,on_demand,NA,2.752,USD,Azure Retail Prices API,2025-12-18T04:44:32.756386 +AZURE,eastus,Standard_DC64as_v5,reserved_1y,NA,2.201598,USD,Azure Retail Prices API,2025-12-18T04:44:35.770519 +AZURE,eastus,Standard_DC64as_v5,reserved_3y,NA,1.651218,USD,Azure Retail Prices API,2025-12-18T04:44:35.770522 +AZURE,eastus,Standard_DC64as_v5,spot,NA,0.519302,USD,Azure Retail Prices API,2025-12-18T04:44:32.756276 +AZURE,eastus,Standard_DC8ads_v5,on_demand,NA,0.412,USD,Azure Retail Prices API,2025-12-18T04:44:32.756040 +AZURE,eastus,Standard_DC8ads_v5,reserved_1y,NA,0.329566,USD,Azure Retail Prices API,2025-12-18T04:44:35.770368 +AZURE,eastus,Standard_DC8ads_v5,reserved_3y,NA,0.247184,USD,Azure Retail Prices API,2025-12-18T04:44:35.770371 +AZURE,eastus,Standard_DC8ads_v5,spot,NA,0.077744,USD,Azure Retail Prices API,2025-12-18T04:44:32.757778 +AZURE,eastus,Standard_DC8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:44:32.757504 +AZURE,eastus,Standard_DC8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:44:35.775269 +AZURE,eastus,Standard_DC8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:44:35.775272 +AZURE,eastus,Standard_DC8ads_v6,spot,NA,0.084269,USD,Azure Retail Prices API,2025-12-18T04:44:32.757442 +AZURE,eastus,Standard_DC8as_v5,on_demand,NA,0.344,USD,Azure Retail Prices API,2025-12-18T04:44:32.758216 +AZURE,eastus,Standard_DC8as_v5,reserved_1y,NA,0.275228,USD,Azure Retail Prices API,2025-12-18T04:44:35.775709 +AZURE,eastus,Standard_DC8as_v5,reserved_3y,NA,0.206393,USD,Azure Retail Prices API,2025-12-18T04:44:35.775712 +AZURE,eastus,Standard_DC8as_v5,spot,NA,0.064913,USD,Azure Retail Prices API,2025-12-18T04:44:32.757582 +AZURE,eastus,Standard_DC96ads_v5,on_demand,NA,4.944,USD,Azure Retail Prices API,2025-12-18T04:44:32.757023 +AZURE,eastus,Standard_DC96ads_v5,reserved_1y,NA,3.955251,USD,Azure Retail Prices API,2025-12-18T04:44:35.770889 +AZURE,eastus,Standard_DC96ads_v5,reserved_3y,NA,2.9664,USD,Azure Retail Prices API,2025-12-18T04:44:35.770895 +AZURE,eastus,Standard_DC96ads_v5,spot,NA,0.932933,USD,Azure Retail Prices API,2025-12-18T04:44:32.757657 +AZURE,eastus,Standard_DC96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:44:32.758094 +AZURE,eastus,Standard_DC96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:44:35.775626 +AZURE,eastus,Standard_DC96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:44:35.775629 +AZURE,eastus,Standard_DC96ads_v6,spot,NA,1.011226,USD,Azure Retail Prices API,2025-12-18T04:44:32.756076 +AZURE,eastus,Standard_DC96as_v5,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:44:32.751348 +AZURE,eastus,Standard_DC96as_v5,reserved_1y,NA,3.302397,USD,Azure Retail Prices API,2025-12-18T04:44:35.769848 +AZURE,eastus,Standard_DC96as_v5,reserved_3y,NA,2.476788,USD,Azure Retail Prices API,2025-12-18T04:44:35.769851 +AZURE,eastus,Standard_DC96as_v5,spot,NA,0.778954,USD,Azure Retail Prices API,2025-12-18T04:44:32.754102 +AZURE,eastus,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495037 +AZURE,eastus,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495045 +AZURE,eastus,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495049 +AZURE,eastus,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495041 +AZURE,eastus,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495827 +AZURE,eastus,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495840 +AZURE,eastus,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495845 +AZURE,eastus,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495833 +AZURE,eastus,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496706 +AZURE,eastus,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496714 +AZURE,eastus,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496719 +AZURE,eastus,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496710 +AZURE,eastus,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497582 +AZURE,eastus,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497591 +AZURE,eastus,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497595 +AZURE,eastus,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497587 +AZURE,eastus,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491429 +AZURE,eastus,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491437 +AZURE,eastus,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491442 +AZURE,eastus,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491433 +AZURE,eastus,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492174 +AZURE,eastus,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492182 +AZURE,eastus,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492186 +AZURE,eastus,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492178 +AZURE,eastus,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492880 +AZURE,eastus,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492888 +AZURE,eastus,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492893 +AZURE,eastus,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492884 +AZURE,eastus,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493625 +AZURE,eastus,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493633 +AZURE,eastus,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493637 +AZURE,eastus,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493629 +AZURE,eastus,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494335 +AZURE,eastus,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494346 +AZURE,eastus,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494350 +AZURE,eastus,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494342 +AZURE,eastus,Standard_E128ds_v6,on_demand,NA,10.465,USD,Azure Retail Prices API,2025-12-18T04:44:32.757045 +AZURE,eastus,Standard_E128ds_v6,reserved_1y,NA,6.48847,USD,Azure Retail Prices API,2025-12-18T04:44:35.770911 +AZURE,eastus,Standard_E128ds_v6,reserved_3y,NA,4.081469,USD,Azure Retail Prices API,2025-12-18T04:44:35.770917 +AZURE,eastus,Standard_E128ds_v6,spot,NA,1.933932,USD,Azure Retail Prices API,2025-12-18T04:44:32.757943 +AZURE,eastus,Standard_E16_v3,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:32.756582 +AZURE,eastus,Standard_E16_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:44:35.770635 +AZURE,eastus,Standard_E16_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:44:35.770638 +AZURE,eastus,Standard_E16_v3,spot,NA,0.192125,USD,Azure Retail Prices API,2025-12-18T04:44:32.757345 +AZURE,eastus,Standard_E16a_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:32.753933 +AZURE,eastus,Standard_E16a_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:44:35.769955 +AZURE,eastus,Standard_E16a_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:44:35.769958 +AZURE,eastus,Standard_E16a_v4,spot,NA,0.186379,USD,Azure Retail Prices API,2025-12-18T04:44:32.754326 +AZURE,eastus,Standard_E16ads_v5,on_demand,NA,1.784,USD,Azure Retail Prices API,2025-12-18T04:44:32.754147 +AZURE,eastus,Standard_E16ads_v5,reserved_1y,NA,0.618265,USD,Azure Retail Prices API,2025-12-18T04:44:35.775715 +AZURE,eastus,Standard_E16ads_v5,reserved_3y,NA,0.39825,USD,Azure Retail Prices API,2025-12-18T04:44:35.775718 +AZURE,eastus,Standard_E16ads_v5,spot,NA,0.193775,USD,Azure Retail Prices API,2025-12-18T04:44:32.757350 +AZURE,eastus,Standard_E16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:44:32.758077 +AZURE,eastus,Standard_E16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:44:35.775615 +AZURE,eastus,Standard_E16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:44:35.775618 +AZURE,eastus,Standard_E16ads_v6,spot,NA,0.216945,USD,Azure Retail Prices API,2025-12-18T04:44:32.757903 +AZURE,eastus,Standard_E16as_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:32.756339 +AZURE,eastus,Standard_E16as_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:44:35.770482 +AZURE,eastus,Standard_E16as_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:44:35.770485 +AZURE,eastus,Standard_E16as_v4,spot,NA,0.186379,USD,Azure Retail Prices API,2025-12-18T04:44:32.757093 +AZURE,eastus,Standard_E16as_v5,on_demand,NA,1.64,USD,Azure Retail Prices API,2025-12-18T04:44:32.756380 +AZURE,eastus,Standard_E16as_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:44:35.775632 +AZURE,eastus,Standard_E16as_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:44:35.775634 +AZURE,eastus,Standard_E16as_v5,spot,NA,0.16715,USD,Azure Retail Prices API,2025-12-18T04:44:32.757986 +AZURE,eastus,Standard_E16d_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:32.757470 +AZURE,eastus,Standard_E16d_v4,reserved_1y,NA,0.677397,USD,Azure Retail Prices API,2025-12-18T04:44:35.775243 +AZURE,eastus,Standard_E16d_v4,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:44:35.775246 +AZURE,eastus,Standard_E16d_v4,spot,NA,0.266803,USD,Azure Retail Prices API,2025-12-18T04:44:32.756056 +AZURE,eastus,Standard_E16ds_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:32.753853 +AZURE,eastus,Standard_E16ds_v4,reserved_1y,NA,0.677397,USD,Azure Retail Prices API,2025-12-18T04:44:35.769911 +AZURE,eastus,Standard_E16ds_v4,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:44:35.769914 +AZURE,eastus,Standard_E16ds_v4,spot,NA,0.266803,USD,Azure Retail Prices API,2025-12-18T04:44:32.757798 +AZURE,eastus,Standard_E16ds_v5,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:32.757712 +AZURE,eastus,Standard_E16ds_v5,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:44:35.775391 +AZURE,eastus,Standard_E16ds_v5,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:44:35.775394 +AZURE,eastus,Standard_E16ds_v5,spot,NA,0.270605,USD,Azure Retail Prices API,2025-12-18T04:44:32.757744 +AZURE,eastus,Standard_E16ds_v6,on_demand,NA,1.308,USD,Azure Retail Prices API,2025-12-18T04:44:32.757464 +AZURE,eastus,Standard_E16ds_v6,reserved_1y,NA,0.811073,USD,Azure Retail Prices API,2025-12-18T04:44:35.775230 +AZURE,eastus,Standard_E16ds_v6,reserved_3y,NA,0.510198,USD,Azure Retail Prices API,2025-12-18T04:44:35.775233 +AZURE,eastus,Standard_E16ds_v6,spot,NA,0.241718,USD,Azure Retail Prices API,2025-12-18T04:44:32.755824 +AZURE,eastus,Standard_E16pds_v6,on_demand,NA,0.936,USD,Azure Retail Prices API,2025-12-18T04:44:32.755980 +AZURE,eastus,Standard_E16pds_v6,reserved_1y,NA,0.552283,USD,Azure Retail Prices API,2025-12-18T04:44:35.770346 +AZURE,eastus,Standard_E16pds_v6,reserved_3y,NA,0.35567,USD,Azure Retail Prices API,2025-12-18T04:44:35.770348 +AZURE,eastus,Standard_E16pds_v6,spot,NA,0.201802,USD,Azure Retail Prices API,2025-12-18T04:44:32.756718 +AZURE,eastus,Standard_E16ps_v6,on_demand,NA,0.738,USD,Azure Retail Prices API,2025-12-18T04:44:32.756806 +AZURE,eastus,Standard_E16ps_v6,reserved_1y,NA,0.43516,USD,Azure Retail Prices API,2025-12-18T04:44:35.770762 +AZURE,eastus,Standard_E16ps_v6,reserved_3y,NA,0.280289,USD,Azure Retail Prices API,2025-12-18T04:44:35.770765 +AZURE,eastus,Standard_E16ps_v6,spot,NA,0.159113,USD,Azure Retail Prices API,2025-12-18T04:44:32.757765 +AZURE,eastus,Standard_E16s_v3,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:32.757749 +AZURE,eastus,Standard_E16s_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:44:35.775404 +AZURE,eastus,Standard_E16s_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:44:35.775407 +AZURE,eastus,Standard_E16s_v3,spot,NA,0.192125,USD,Azure Retail Prices API,2025-12-18T04:44:32.757793 +AZURE,eastus,Standard_E16s_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:32.756638 +AZURE,eastus,Standard_E16s_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:44:35.770646 +AZURE,eastus,Standard_E16s_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:44:35.770649 +AZURE,eastus,Standard_E16s_v4,spot,NA,0.263189,USD,Azure Retail Prices API,2025-12-18T04:44:32.757636 +AZURE,eastus,Standard_E16s_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:32.757668 +AZURE,eastus,Standard_E16s_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:44:35.775366 +AZURE,eastus,Standard_E16s_v5,reserved_3y,NA,0.372945,USD,Azure Retail Prices API,2025-12-18T04:44:35.775369 +AZURE,eastus,Standard_E16s_v5,spot,NA,0.261576,USD,Azure Retail Prices API,2025-12-18T04:44:32.754152 +AZURE,eastus,Standard_E20a_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:32.757552 +AZURE,eastus,Standard_E20a_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:44:35.775305 +AZURE,eastus,Standard_E20a_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:44:35.775308 +AZURE,eastus,Standard_E20a_v4,spot,NA,0.232974,USD,Azure Retail Prices API,2025-12-18T04:44:32.756857 +AZURE,eastus,Standard_E20ads_v5,on_demand,NA,2.23,USD,Azure Retail Prices API,2025-12-18T04:44:32.756261 +AZURE,eastus,Standard_E20ads_v5,reserved_1y,NA,0.772945,USD,Azure Retail Prices API,2025-12-18T04:44:35.775572 +AZURE,eastus,Standard_E20ads_v5,reserved_3y,NA,0.497793,USD,Azure Retail Prices API,2025-12-18T04:44:35.775575 +AZURE,eastus,Standard_E20ads_v5,spot,NA,0.242219,USD,Azure Retail Prices API,2025-12-18T04:44:32.756314 +AZURE,eastus,Standard_E20ads_v6,on_demand,NA,1.452,USD,Azure Retail Prices API,2025-12-18T04:44:32.758142 +AZURE,eastus,Standard_E20ads_v6,reserved_1y,NA,0.856735,USD,Azure Retail Prices API,2025-12-18T04:44:35.775655 +AZURE,eastus,Standard_E20ads_v6,reserved_3y,NA,0.55175,USD,Azure Retail Prices API,2025-12-18T04:44:35.775657 +AZURE,eastus,Standard_E20ads_v6,spot,NA,0.271088,USD,Azure Retail Prices API,2025-12-18T04:44:32.757220 +AZURE,eastus,Standard_E20as_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:32.755681 +AZURE,eastus,Standard_E20as_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:44:35.770178 +AZURE,eastus,Standard_E20as_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:44:35.770181 +AZURE,eastus,Standard_E20as_v4,spot,NA,0.232974,USD,Azure Retail Prices API,2025-12-18T04:44:32.757876 +AZURE,eastus,Standard_E20as_v5,on_demand,NA,2.05,USD,Azure Retail Prices API,2025-12-18T04:44:32.757109 +AZURE,eastus,Standard_E20as_v5,reserved_1y,NA,0.666667,USD,Azure Retail Prices API,2025-12-18T04:44:35.775281 +AZURE,eastus,Standard_E20as_v5,reserved_3y,NA,0.429414,USD,Azure Retail Prices API,2025-12-18T04:44:35.775284 +AZURE,eastus,Standard_E20as_v5,spot,NA,0.208937,USD,Azure Retail Prices API,2025-12-18T04:44:32.758128 +AZURE,eastus,Standard_E20d_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:32.757189 +AZURE,eastus,Standard_E20d_v4,reserved_1y,NA,0.846461,USD,Azure Retail Prices API,2025-12-18T04:44:35.770990 +AZURE,eastus,Standard_E20d_v4,reserved_3y,NA,0.541476,USD,Azure Retail Prices API,2025-12-18T04:44:35.770993 +AZURE,eastus,Standard_E20d_v4,spot,NA,0.333504,USD,Azure Retail Prices API,2025-12-18T04:44:32.757259 +AZURE,eastus,Standard_E20ds_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:32.757082 +AZURE,eastus,Standard_E20ds_v4,reserved_1y,NA,0.846461,USD,Azure Retail Prices API,2025-12-18T04:44:35.770944 +AZURE,eastus,Standard_E20ds_v4,reserved_3y,NA,0.541476,USD,Azure Retail Prices API,2025-12-18T04:44:35.770949 +AZURE,eastus,Standard_E20ds_v4,spot,NA,0.333504,USD,Azure Retail Prices API,2025-12-18T04:44:32.758114 +AZURE,eastus,Standard_E20ds_v5,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:32.756540 +AZURE,eastus,Standard_E20ds_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:44:35.770618 +AZURE,eastus,Standard_E20ds_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:44:35.770620 +AZURE,eastus,Standard_E20ds_v5,spot,NA,0.338256,USD,Azure Retail Prices API,2025-12-18T04:44:32.756504 +AZURE,eastus,Standard_E20ds_v6,on_demand,NA,1.635,USD,Azure Retail Prices API,2025-12-18T04:44:32.756760 +AZURE,eastus,Standard_E20ds_v6,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:44:35.770724 +AZURE,eastus,Standard_E20ds_v6,reserved_3y,NA,0.637709,USD,Azure Retail Prices API,2025-12-18T04:44:35.770726 +AZURE,eastus,Standard_E20ds_v6,spot,NA,0.302148,USD,Azure Retail Prices API,2025-12-18T04:44:32.755792 +AZURE,eastus,Standard_E20s_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:32.757562 +AZURE,eastus,Standard_E20s_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:44:35.775311 +AZURE,eastus,Standard_E20s_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:44:35.775314 +AZURE,eastus,Standard_E20s_v4,spot,NA,0.328986,USD,Azure Retail Prices API,2025-12-18T04:44:32.757194 +AZURE,eastus,Standard_E20s_v5,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:32.756466 +AZURE,eastus,Standard_E20s_v5,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:44:35.770565 +AZURE,eastus,Standard_E20s_v5,reserved_3y,NA,0.46621,USD,Azure Retail Prices API,2025-12-18T04:44:35.770568 +AZURE,eastus,Standard_E20s_v5,spot,NA,0.32697,USD,Azure Retail Prices API,2025-12-18T04:44:32.756545 +AZURE,eastus,Standard_E2_v3,on_demand,NA,0.126,USD,Azure Retail Prices API,2025-12-18T04:44:32.757366 +AZURE,eastus,Standard_E2_v3,reserved_1y,NA,0.078196,USD,Azure Retail Prices API,2025-12-18T04:44:35.771052 +AZURE,eastus,Standard_E2_v3,reserved_3y,NA,0.05,USD,Azure Retail Prices API,2025-12-18T04:44:35.771054 +AZURE,eastus,Standard_E2_v3,spot,NA,0.024016,USD,Azure Retail Prices API,2025-12-18T04:44:32.755729 +AZURE,eastus,Standard_E2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:32.756483 +AZURE,eastus,Standard_E2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:44:35.770576 +AZURE,eastus,Standard_E2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:44:35.770579 +AZURE,eastus,Standard_E2ads_v6,spot,NA,0.027072,USD,Azure Retail Prices API,2025-12-18T04:44:32.758195 +AZURE,eastus,Standard_E2ds_v5,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:44:32.755803 +AZURE,eastus,Standard_E2ds_v5,reserved_1y,NA,0.084932,USD,Azure Retail Prices API,2025-12-18T04:44:35.770247 +AZURE,eastus,Standard_E2ds_v5,reserved_3y,NA,0.054718,USD,Azure Retail Prices API,2025-12-18T04:44:35.770249 +AZURE,eastus,Standard_E2ds_v5,spot,NA,0.033826,USD,Azure Retail Prices API,2025-12-18T04:44:32.756494 +AZURE,eastus,Standard_E2ds_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:44:32.756029 +AZURE,eastus,Standard_E2ds_v6,reserved_1y,NA,0.10137,USD,Azure Retail Prices API,2025-12-18T04:44:35.770362 +AZURE,eastus,Standard_E2ds_v6,reserved_3y,NA,0.063775,USD,Azure Retail Prices API,2025-12-18T04:44:35.770365 +AZURE,eastus,Standard_E2ds_v6,spot,NA,0.030307,USD,Azure Retail Prices API,2025-12-18T04:44:32.756935 +AZURE,eastus,Standard_E2pds_v6,on_demand,NA,0.117,USD,Azure Retail Prices API,2025-12-18T04:44:32.756836 +AZURE,eastus,Standard_E2pds_v6,reserved_1y,NA,0.069064,USD,Azure Retail Prices API,2025-12-18T04:44:35.770779 +AZURE,eastus,Standard_E2pds_v6,reserved_3y,NA,0.044444,USD,Azure Retail Prices API,2025-12-18T04:44:35.770782 +AZURE,eastus,Standard_E2pds_v6,spot,NA,0.025225,USD,Azure Retail Prices API,2025-12-18T04:44:32.756241 +AZURE,eastus,Standard_E32_v3,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:32.756831 +AZURE,eastus,Standard_E32_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:44:35.770774 +AZURE,eastus,Standard_E32_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:44:35.770777 +AZURE,eastus,Standard_E32_v3,spot,NA,0.38425,USD,Azure Retail Prices API,2025-12-18T04:44:32.757599 +AZURE,eastus,Standard_E32a_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:32.757788 +AZURE,eastus,Standard_E32a_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:44:35.775428 +AZURE,eastus,Standard_E32a_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:44:35.775431 +AZURE,eastus,Standard_E32a_v4,spot,NA,0.372758,USD,Azure Retail Prices API,2025-12-18T04:44:32.757701 +AZURE,eastus,Standard_E32ads_v5,on_demand,NA,3.568,USD,Azure Retail Prices API,2025-12-18T04:44:32.755670 +AZURE,eastus,Standard_E32ads_v5,reserved_1y,NA,1.236644,USD,Azure Retail Prices API,2025-12-18T04:44:35.770582 +AZURE,eastus,Standard_E32ads_v5,reserved_3y,NA,0.796461,USD,Azure Retail Prices API,2025-12-18T04:44:35.770585 +AZURE,eastus,Standard_E32ads_v5,spot,NA,0.38755,USD,Azure Retail Prices API,2025-12-18T04:44:32.755898 +AZURE,eastus,Standard_E32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:44:32.755808 +AZURE,eastus,Standard_E32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:44:35.770252 +AZURE,eastus,Standard_E32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:44:35.770256 +AZURE,eastus,Standard_E32ads_v6,spot,NA,0.433704,USD,Azure Retail Prices API,2025-12-18T04:44:32.754207 +AZURE,eastus,Standard_E32as_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:32.754026 +AZURE,eastus,Standard_E32as_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:44:35.770006 +AZURE,eastus,Standard_E32as_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:44:35.770009 +AZURE,eastus,Standard_E32as_v4,spot,NA,0.372758,USD,Azure Retail Prices API,2025-12-18T04:44:32.757311 +AZURE,eastus,Standard_E32as_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:32.756978 +AZURE,eastus,Standard_E32as_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:44:35.770851 +AZURE,eastus,Standard_E32as_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:44:35.770853 +AZURE,eastus,Standard_E32as_v5,spot,NA,0.334299,USD,Azure Retail Prices API,2025-12-18T04:44:32.756883 +AZURE,eastus,Standard_E32d_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:32.755935 +AZURE,eastus,Standard_E32d_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:35.770323 +AZURE,eastus,Standard_E32d_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:35.770325 +AZURE,eastus,Standard_E32d_v4,spot,NA,0.533606,USD,Azure Retail Prices API,2025-12-18T04:44:32.758099 +AZURE,eastus,Standard_E32ds_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:32.757706 +AZURE,eastus,Standard_E32ds_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:35.775384 +AZURE,eastus,Standard_E32ds_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:35.775388 +AZURE,eastus,Standard_E32ds_v4,spot,NA,0.533606,USD,Azure Retail Prices API,2025-12-18T04:44:32.756246 +AZURE,eastus,Standard_E32ds_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:32.757865 +AZURE,eastus,Standard_E32ds_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:35.775485 +AZURE,eastus,Standard_E32ds_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:44:35.775490 +AZURE,eastus,Standard_E32ds_v5,spot,NA,0.54121,USD,Azure Retail Prices API,2025-12-18T04:44:32.757521 +AZURE,eastus,Standard_E32ds_v6,on_demand,NA,2.616,USD,Azure Retail Prices API,2025-12-18T04:44:32.758012 +AZURE,eastus,Standard_E32ds_v6,reserved_1y,NA,1.622146,USD,Azure Retail Prices API,2025-12-18T04:44:35.775566 +AZURE,eastus,Standard_E32ds_v6,reserved_3y,NA,1.020358,USD,Azure Retail Prices API,2025-12-18T04:44:35.775569 +AZURE,eastus,Standard_E32ds_v6,spot,NA,0.483437,USD,Azure Retail Prices API,2025-12-18T04:44:32.757178 +AZURE,eastus,Standard_E32pds_v6,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:44:32.751354 +AZURE,eastus,Standard_E32pds_v6,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:44:35.769854 +AZURE,eastus,Standard_E32pds_v6,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:44:35.769856 +AZURE,eastus,Standard_E32pds_v6,spot,NA,0.403603,USD,Azure Retail Prices API,2025-12-18T04:44:32.756940 +AZURE,eastus,Standard_E32ps_v6,on_demand,NA,1.475,USD,Azure Retail Prices API,2025-12-18T04:44:32.756222 +AZURE,eastus,Standard_E32ps_v6,reserved_1y,NA,0.87032,USD,Azure Retail Prices API,2025-12-18T04:44:35.770428 +AZURE,eastus,Standard_E32ps_v6,reserved_3y,NA,0.560578,USD,Azure Retail Prices API,2025-12-18T04:44:35.770431 +AZURE,eastus,Standard_E32ps_v6,spot,NA,0.31801,USD,Azure Retail Prices API,2025-12-18T04:44:32.756150 +AZURE,eastus,Standard_E32s_v3,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:32.756728 +AZURE,eastus,Standard_E32s_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:44:35.770707 +AZURE,eastus,Standard_E32s_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:44:35.770710 +AZURE,eastus,Standard_E32s_v3,spot,NA,0.38425,USD,Azure Retail Prices API,2025-12-18T04:44:32.754277 +AZURE,eastus,Standard_E32s_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:32.757541 +AZURE,eastus,Standard_E32s_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:44:35.775293 +AZURE,eastus,Standard_E32s_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:44:35.775296 +AZURE,eastus,Standard_E32s_v4,spot,NA,0.526378,USD,Azure Retail Prices API,2025-12-18T04:44:32.754005 +AZURE,eastus,Standard_E32s_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:32.754195 +AZURE,eastus,Standard_E32s_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:44:35.770074 +AZURE,eastus,Standard_E32s_v5,reserved_3y,NA,0.745928,USD,Azure Retail Prices API,2025-12-18T04:44:35.770076 +AZURE,eastus,Standard_E32s_v5,spot,NA,0.523152,USD,Azure Retail Prices API,2025-12-18T04:44:32.757493 +AZURE,eastus,Standard_E48a_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:32.756648 +AZURE,eastus,Standard_E48a_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:44:35.770652 +AZURE,eastus,Standard_E48a_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:44:35.770655 +AZURE,eastus,Standard_E48a_v4,spot,NA,0.559138,USD,Azure Retail Prices API,2025-12-18T04:44:32.751291 +AZURE,eastus,Standard_E48ads_v5,on_demand,NA,5.352,USD,Azure Retail Prices API,2025-12-18T04:44:32.756424 +AZURE,eastus,Standard_E48ads_v5,reserved_1y,NA,1.854909,USD,Azure Retail Prices API,2025-12-18T04:44:35.771046 +AZURE,eastus,Standard_E48ads_v5,reserved_3y,NA,1.194711,USD,Azure Retail Prices API,2025-12-18T04:44:35.771049 +AZURE,eastus,Standard_E48ads_v5,spot,NA,0.581326,USD,Azure Retail Prices API,2025-12-18T04:44:32.758033 +AZURE,eastus,Standard_E48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:44:32.756910 +AZURE,eastus,Standard_E48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:44:35.770818 +AZURE,eastus,Standard_E48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:44:35.770821 +AZURE,eastus,Standard_E48ads_v6,spot,NA,0.65065,USD,Azure Retail Prices API,2025-12-18T04:44:32.755766 +AZURE,eastus,Standard_E48as_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:32.754107 +AZURE,eastus,Standard_E48as_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:44:35.770034 +AZURE,eastus,Standard_E48as_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:44:35.770036 +AZURE,eastus,Standard_E48as_v4,spot,NA,0.559138,USD,Azure Retail Prices API,2025-12-18T04:44:32.755718 +AZURE,eastus,Standard_E48as_v5,on_demand,NA,4.92,USD,Azure Retail Prices API,2025-12-18T04:44:32.755991 +AZURE,eastus,Standard_E48as_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:44:35.770953 +AZURE,eastus,Standard_E48as_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:44:35.770959 +AZURE,eastus,Standard_E48as_v5,spot,NA,0.501449,USD,Azure Retail Prices API,2025-12-18T04:44:32.756329 +AZURE,eastus,Standard_E48d_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:32.756873 +AZURE,eastus,Standard_E48d_v4,reserved_1y,NA,2.032078,USD,Azure Retail Prices API,2025-12-18T04:44:35.770795 +AZURE,eastus,Standard_E48d_v4,reserved_3y,NA,1.299467,USD,Azure Retail Prices API,2025-12-18T04:44:35.770798 +AZURE,eastus,Standard_E48d_v4,spot,NA,0.80041,USD,Azure Retail Prices API,2025-12-18T04:44:32.755925 +AZURE,eastus,Standard_E48ds_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:32.756993 +AZURE,eastus,Standard_E48ds_v4,reserved_1y,NA,2.032078,USD,Azure Retail Prices API,2025-12-18T04:44:35.770856 +AZURE,eastus,Standard_E48ds_v4,reserved_3y,NA,1.299467,USD,Azure Retail Prices API,2025-12-18T04:44:35.770859 +AZURE,eastus,Standard_E48ds_v4,spot,NA,0.80041,USD,Azure Retail Prices API,2025-12-18T04:44:32.756816 +AZURE,eastus,Standard_E48ds_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:32.757459 +AZURE,eastus,Standard_E48ds_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:44:35.775224 +AZURE,eastus,Standard_E48ds_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:44:35.775227 +AZURE,eastus,Standard_E48ds_v5,spot,NA,0.811814,USD,Azure Retail Prices API,2025-12-18T04:44:32.756134 +AZURE,eastus,Standard_E48ds_v6,on_demand,NA,3.924,USD,Azure Retail Prices API,2025-12-18T04:44:32.756310 +AZURE,eastus,Standard_E48ds_v6,reserved_1y,NA,2.433219,USD,Azure Retail Prices API,2025-12-18T04:44:35.770472 +AZURE,eastus,Standard_E48ds_v6,reserved_3y,NA,1.530556,USD,Azure Retail Prices API,2025-12-18T04:44:35.770475 +AZURE,eastus,Standard_E48ds_v6,spot,NA,0.725155,USD,Azure Retail Prices API,2025-12-18T04:44:32.757920 +AZURE,eastus,Standard_E48pds_v6,on_demand,NA,2.808,USD,Azure Retail Prices API,2025-12-18T04:44:32.754265 +AZURE,eastus,Standard_E48pds_v6,reserved_1y,NA,1.656735,USD,Azure Retail Prices API,2025-12-18T04:44:35.770108 +AZURE,eastus,Standard_E48pds_v6,reserved_3y,NA,1.067047,USD,Azure Retail Prices API,2025-12-18T04:44:35.770112 +AZURE,eastus,Standard_E48pds_v6,spot,NA,0.605405,USD,Azure Retail Prices API,2025-12-18T04:44:32.757696 +AZURE,eastus,Standard_E48ps_v6,on_demand,NA,2.213,USD,Azure Retail Prices API,2025-12-18T04:44:32.756300 +AZURE,eastus,Standard_E48ps_v6,reserved_1y,NA,1.305594,USD,Azure Retail Prices API,2025-12-18T04:44:35.770467 +AZURE,eastus,Standard_E48ps_v6,reserved_3y,NA,0.840868,USD,Azure Retail Prices API,2025-12-18T04:44:35.770469 +AZURE,eastus,Standard_E48ps_v6,spot,NA,0.477123,USD,Azure Retail Prices API,2025-12-18T04:44:32.757641 +AZURE,eastus,Standard_E48s_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:32.754038 +AZURE,eastus,Standard_E48s_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:44:35.770012 +AZURE,eastus,Standard_E48s_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:44:35.770014 +AZURE,eastus,Standard_E48s_v4,spot,NA,0.789566,USD,Azure Retail Prices API,2025-12-18T04:44:32.757152 +AZURE,eastus,Standard_E48s_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:32.753927 +AZURE,eastus,Standard_E48s_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:44:35.769949 +AZURE,eastus,Standard_E48s_v5,reserved_3y,NA,1.118874,USD,Azure Retail Prices API,2025-12-18T04:44:35.769952 +AZURE,eastus,Standard_E48s_v5,spot,NA,0.784728,USD,Azure Retail Prices API,2025-12-18T04:44:32.758163 +AZURE,eastus,Standard_E4_v3,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:32.755974 +AZURE,eastus,Standard_E4_v3,reserved_1y,NA,0.156393,USD,Azure Retail Prices API,2025-12-18T04:44:35.770340 +AZURE,eastus,Standard_E4_v3,reserved_3y,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:44:35.770343 +AZURE,eastus,Standard_E4_v3,spot,NA,0.048031,USD,Azure Retail Prices API,2025-12-18T04:44:32.757225 +AZURE,eastus,Standard_E4a_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:32.755881 +AZURE,eastus,Standard_E4a_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:44:35.770298 +AZURE,eastus,Standard_E4a_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:44:35.770301 +AZURE,eastus,Standard_E4a_v4,spot,NA,0.046595,USD,Azure Retail Prices API,2025-12-18T04:44:32.753816 +AZURE,eastus,Standard_E4ads_v5,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:44:32.756633 +AZURE,eastus,Standard_E4ads_v5,reserved_1y,NA,0.154566,USD,Azure Retail Prices API,2025-12-18T04:44:35.770641 +AZURE,eastus,Standard_E4ads_v5,reserved_3y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:44:35.770643 +AZURE,eastus,Standard_E4ads_v5,spot,NA,0.048444,USD,Azure Retail Prices API,2025-12-18T04:44:32.755664 +AZURE,eastus,Standard_E4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:44:32.755864 +AZURE,eastus,Standard_E4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:44:35.770279 +AZURE,eastus,Standard_E4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:44:35.770283 +AZURE,eastus,Standard_E4ads_v6,spot,NA,0.054143,USD,Azure Retail Prices API,2025-12-18T04:44:32.756530 +AZURE,eastus,Standard_E4as_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:32.758088 +AZURE,eastus,Standard_E4as_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:44:35.775620 +AZURE,eastus,Standard_E4as_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:44:35.775623 +AZURE,eastus,Standard_E4as_v4,spot,NA,0.046595,USD,Azure Retail Prices API,2025-12-18T04:44:32.756592 +AZURE,eastus,Standard_E4as_v5,on_demand,NA,0.41,USD,Azure Retail Prices API,2025-12-18T04:44:32.754060 +AZURE,eastus,Standard_E4as_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:44:35.775434 +AZURE,eastus,Standard_E4as_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:44:35.775437 +AZURE,eastus,Standard_E4as_v5,spot,NA,0.041787,USD,Azure Retail Prices API,2025-12-18T04:44:32.757050 +AZURE,eastus,Standard_E4d_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:32.754223 +AZURE,eastus,Standard_E4d_v4,reserved_1y,NA,0.169292,USD,Azure Retail Prices API,2025-12-18T04:44:35.770091 +AZURE,eastus,Standard_E4d_v4,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:44:35.770094 +AZURE,eastus,Standard_E4d_v4,spot,NA,0.066701,USD,Azure Retail Prices API,2025-12-18T04:44:32.756291 +AZURE,eastus,Standard_E4ds_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:32.757018 +AZURE,eastus,Standard_E4ds_v4,reserved_1y,NA,0.169292,USD,Azure Retail Prices API,2025-12-18T04:44:35.770879 +AZURE,eastus,Standard_E4ds_v4,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:44:35.770884 +AZURE,eastus,Standard_E4ds_v4,spot,NA,0.066701,USD,Azure Retail Prices API,2025-12-18T04:44:32.755744 +AZURE,eastus,Standard_E4ds_v5,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:32.758158 +AZURE,eastus,Standard_E4ds_v5,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:44:35.775666 +AZURE,eastus,Standard_E4ds_v5,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:44:35.775669 +AZURE,eastus,Standard_E4ds_v5,spot,NA,0.067651,USD,Azure Retail Prices API,2025-12-18T04:44:32.756402 +AZURE,eastus,Standard_E4ds_v6,on_demand,NA,0.327,USD,Azure Retail Prices API,2025-12-18T04:44:32.756697 +AZURE,eastus,Standard_E4ds_v6,reserved_1y,NA,0.20274,USD,Azure Retail Prices API,2025-12-18T04:44:35.770680 +AZURE,eastus,Standard_E4ds_v6,reserved_3y,NA,0.127549,USD,Azure Retail Prices API,2025-12-18T04:44:35.770683 +AZURE,eastus,Standard_E4ds_v6,spot,NA,0.06043,USD,Azure Retail Prices API,2025-12-18T04:44:32.758039 +AZURE,eastus,Standard_E4pds_v6,on_demand,NA,0.234,USD,Azure Retail Prices API,2025-12-18T04:44:32.755887 +AZURE,eastus,Standard_E4pds_v6,reserved_1y,NA,0.138014,USD,Azure Retail Prices API,2025-12-18T04:44:35.770304 +AZURE,eastus,Standard_E4pds_v6,reserved_3y,NA,0.088927,USD,Azure Retail Prices API,2025-12-18T04:44:35.770307 +AZURE,eastus,Standard_E4pds_v6,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:44:32.754254 +AZURE,eastus,Standard_E4ps_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:44:32.757572 +AZURE,eastus,Standard_E4ps_v6,reserved_1y,NA,0.10879,USD,Azure Retail Prices API,2025-12-18T04:44:35.775323 +AZURE,eastus,Standard_E4ps_v6,reserved_3y,NA,0.070053,USD,Azure Retail Prices API,2025-12-18T04:44:35.775326 +AZURE,eastus,Standard_E4ps_v6,spot,NA,0.03967,USD,Azure Retail Prices API,2025-12-18T04:44:32.757288 +AZURE,eastus,Standard_E4s_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:32.757294 +AZURE,eastus,Standard_E4s_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:44:35.771035 +AZURE,eastus,Standard_E4s_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:44:35.771037 +AZURE,eastus,Standard_E4s_v4,spot,NA,0.065797,USD,Azure Retail Prices API,2025-12-18T04:44:32.756686 +AZURE,eastus,Standard_E4s_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:32.756172 +AZURE,eastus,Standard_E4s_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:44:35.770401 +AZURE,eastus,Standard_E4s_v5,reserved_3y,NA,0.093227,USD,Azure Retail Prices API,2025-12-18T04:44:35.770403 +AZURE,eastus,Standard_E4s_v5,spot,NA,0.065394,USD,Azure Retail Prices API,2025-12-18T04:44:32.751366 +AZURE,eastus,Standard_E64_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:44:32.757475 +AZURE,eastus,Standard_E64_v3,reserved_1y,NA,2.358562,USD,Azure Retail Prices API,2025-12-18T04:44:35.775249 +AZURE,eastus,Standard_E64_v3,reserved_3y,NA,1.508219,USD,Azure Retail Prices API,2025-12-18T04:44:35.775252 +AZURE,eastus,Standard_E64_v3,spot,NA,0.691687,USD,Azure Retail Prices API,2025-12-18T04:44:32.757625 +AZURE,eastus,Standard_E64a_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:32.756280 +AZURE,eastus,Standard_E64a_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:44:35.770450 +AZURE,eastus,Standard_E64a_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:44:35.770453 +AZURE,eastus,Standard_E64a_v4,spot,NA,0.745517,USD,Azure Retail Prices API,2025-12-18T04:44:32.756691 +AZURE,eastus,Standard_E64ads_v5,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:44:32.755697 +AZURE,eastus,Standard_E64ads_v5,reserved_1y,NA,2.473288,USD,Azure Retail Prices API,2025-12-18T04:44:35.770189 +AZURE,eastus,Standard_E64ads_v5,reserved_3y,NA,1.59296,USD,Azure Retail Prices API,2025-12-18T04:44:35.770192 +AZURE,eastus,Standard_E64ads_v5,spot,NA,0.775101,USD,Azure Retail Prices API,2025-12-18T04:44:32.756104 +AZURE,eastus,Standard_E64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:44:32.753900 +AZURE,eastus,Standard_E64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:44:35.769928 +AZURE,eastus,Standard_E64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:44:35.769931 +AZURE,eastus,Standard_E64ads_v6,spot,NA,0.867408,USD,Azure Retail Prices API,2025-12-18T04:44:32.755892 +AZURE,eastus,Standard_E64as_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:32.755782 +AZURE,eastus,Standard_E64as_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:44:35.770229 +AZURE,eastus,Standard_E64as_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:44:35.770232 +AZURE,eastus,Standard_E64as_v4,spot,NA,0.745517,USD,Azure Retail Prices API,2025-12-18T04:44:32.756472 +AZURE,eastus,Standard_E64as_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:32.755708 +AZURE,eastus,Standard_E64as_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:44:35.770195 +AZURE,eastus,Standard_E64as_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:44:35.770198 +AZURE,eastus,Standard_E64as_v5,spot,NA,0.668598,USD,Azure Retail Prices API,2025-12-18T04:44:32.756755 +AZURE,eastus,Standard_E64d_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:32.755985 +AZURE,eastus,Standard_E64d_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:44:35.770351 +AZURE,eastus,Standard_E64d_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:44:35.770354 +AZURE,eastus,Standard_E64d_v4,spot,NA,1.067213,USD,Azure Retail Prices API,2025-12-18T04:44:32.756456 +AZURE,eastus,Standard_E64ds_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:32.758023 +AZURE,eastus,Standard_E64ds_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:44:35.775578 +AZURE,eastus,Standard_E64ds_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:44:35.775581 +AZURE,eastus,Standard_E64ds_v4,spot,NA,1.067213,USD,Azure Retail Prices API,2025-12-18T04:44:32.756207 +AZURE,eastus,Standard_E64ds_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:32.756915 +AZURE,eastus,Standard_E64ds_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:44:35.770823 +AZURE,eastus,Standard_E64ds_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:44:35.770826 +AZURE,eastus,Standard_E64ds_v5,spot,NA,1.082419,USD,Azure Retail Prices API,2025-12-18T04:44:32.755945 +AZURE,eastus,Standard_E64ds_v6,on_demand,NA,5.233,USD,Azure Retail Prices API,2025-12-18T04:44:32.757173 +AZURE,eastus,Standard_E64ds_v6,reserved_1y,NA,3.244292,USD,Azure Retail Prices API,2025-12-18T04:44:35.770984 +AZURE,eastus,Standard_E64ds_v6,reserved_3y,NA,2.040715,USD,Azure Retail Prices API,2025-12-18T04:44:35.770987 +AZURE,eastus,Standard_E64ds_v6,spot,NA,0.967058,USD,Azure Retail Prices API,2025-12-18T04:44:32.756099 +AZURE,eastus,Standard_E64pds_v6,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:32.756892 +AZURE,eastus,Standard_E64pds_v6,reserved_1y,NA,2.208904,USD,Azure Retail Prices API,2025-12-18T04:44:35.770806 +AZURE,eastus,Standard_E64pds_v6,reserved_3y,NA,1.422717,USD,Azure Retail Prices API,2025-12-18T04:44:35.770809 +AZURE,eastus,Standard_E64pds_v6,spot,NA,0.807206,USD,Azure Retail Prices API,2025-12-18T04:44:32.755840 +AZURE,eastus,Standard_E64ps_v6,on_demand,NA,2.95,USD,Azure Retail Prices API,2025-12-18T04:44:32.757409 +AZURE,eastus,Standard_E64ps_v6,reserved_1y,NA,1.740753,USD,Azure Retail Prices API,2025-12-18T04:44:35.775184 +AZURE,eastus,Standard_E64ps_v6,reserved_3y,NA,1.121157,USD,Azure Retail Prices API,2025-12-18T04:44:35.775189 +AZURE,eastus,Standard_E64ps_v6,spot,NA,0.63602,USD,Azure Retail Prices API,2025-12-18T04:44:32.754321 +AZURE,eastus,Standard_E64s_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:44:32.755834 +AZURE,eastus,Standard_E64s_v3,reserved_1y,NA,2.358562,USD,Azure Retail Prices API,2025-12-18T04:44:35.770270 +AZURE,eastus,Standard_E64s_v3,reserved_3y,NA,1.508219,USD,Azure Retail Prices API,2025-12-18T04:44:35.770274 +AZURE,eastus,Standard_E64s_v3,spot,NA,0.691687,USD,Azure Retail Prices API,2025-12-18T04:44:32.757832 +AZURE,eastus,Standard_E64s_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:32.756707 +AZURE,eastus,Standard_E64s_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:44:35.770691 +AZURE,eastus,Standard_E64s_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:44:35.770693 +AZURE,eastus,Standard_E64s_v4,spot,NA,1.052755,USD,Azure Retail Prices API,2025-12-18T04:44:32.755859 +AZURE,eastus,Standard_E64s_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:32.755626 +AZURE,eastus,Standard_E64s_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:44:35.770155 +AZURE,eastus,Standard_E64s_v5,reserved_3y,NA,1.491857,USD,Azure Retail Prices API,2025-12-18T04:44:35.770159 +AZURE,eastus,Standard_E64s_v5,spot,NA,1.046304,USD,Azure Retail Prices API,2025-12-18T04:44:32.754228 +AZURE,eastus,Standard_E80ids_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:44:32.751360 +AZURE,eastus,Standard_E80ids_v4,reserved_1y,NA,3.385845,USD,Azure Retail Prices API,2025-12-18T04:44:35.769859 +AZURE,eastus,Standard_E80ids_v4,reserved_3y,NA,2.165906,USD,Azure Retail Prices API,2025-12-18T04:44:35.769862 +AZURE,eastus,Standard_E80ids_v4,spot,NA,1.334016,USD,Azure Retail Prices API,2025-12-18T04:44:32.757804 +AZURE,eastus,Standard_E80is_v4,on_demand,NA,5.04,USD,Azure Retail Prices API,2025-12-18T04:44:32.756790 +AZURE,eastus,Standard_E80is_v4,reserved_1y,NA,2.96347,USD,Azure Retail Prices API,2025-12-18T04:44:35.770751 +AZURE,eastus,Standard_E80is_v4,reserved_3y,NA,1.894977,USD,Azure Retail Prices API,2025-12-18T04:44:35.770754 +AZURE,eastus,Standard_E80is_v4,spot,NA,1.315944,USD,Azure Retail Prices API,2025-12-18T04:44:32.753859 +AZURE,eastus,Standard_E8_v3,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:32.755776 +AZURE,eastus,Standard_E8_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:44:35.770223 +AZURE,eastus,Standard_E8_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:44:35.770226 +AZURE,eastus,Standard_E8_v3,spot,NA,0.096062,USD,Azure Retail Prices API,2025-12-18T04:44:32.758190 +AZURE,eastus,Standard_E8a_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:32.756212 +AZURE,eastus,Standard_E8a_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:44:35.770423 +AZURE,eastus,Standard_E8a_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:44:35.770425 +AZURE,eastus,Standard_E8a_v4,spot,NA,0.09319,USD,Azure Retail Prices API,2025-12-18T04:44:32.758055 +AZURE,eastus,Standard_E8ads_v5,on_demand,NA,0.892,USD,Azure Retail Prices API,2025-12-18T04:44:32.756155 +AZURE,eastus,Standard_E8ads_v5,reserved_1y,NA,0.309132,USD,Azure Retail Prices API,2025-12-18T04:44:35.775445 +AZURE,eastus,Standard_E8ads_v5,reserved_3y,NA,0.199125,USD,Azure Retail Prices API,2025-12-18T04:44:35.775448 +AZURE,eastus,Standard_E8ads_v5,spot,NA,0.096888,USD,Azure Retail Prices API,2025-12-18T04:44:32.756988 +AZURE,eastus,Standard_E8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:32.753917 +AZURE,eastus,Standard_E8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:44:35.769939 +AZURE,eastus,Standard_E8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:44:35.769941 +AZURE,eastus,Standard_E8ads_v6,spot,NA,0.108473,USD,Azure Retail Prices API,2025-12-18T04:44:32.754348 +AZURE,eastus,Standard_E8as_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:32.756488 +AZURE,eastus,Standard_E8as_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:44:35.770588 +AZURE,eastus,Standard_E8as_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:44:35.770591 +AZURE,eastus,Standard_E8as_v4,spot,NA,0.09319,USD,Azure Retail Prices API,2025-12-18T04:44:32.757960 +AZURE,eastus,Standard_E8as_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:32.754174 +AZURE,eastus,Standard_E8as_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:44:35.770062 +AZURE,eastus,Standard_E8as_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:44:35.770065 +AZURE,eastus,Standard_E8as_v5,spot,NA,0.083575,USD,Azure Retail Prices API,2025-12-18T04:44:32.757277 +AZURE,eastus,Standard_E8d_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:32.757231 +AZURE,eastus,Standard_E8d_v4,reserved_1y,NA,0.338699,USD,Azure Retail Prices API,2025-12-18T04:44:35.771012 +AZURE,eastus,Standard_E8d_v4,reserved_3y,NA,0.216591,USD,Azure Retail Prices API,2025-12-18T04:44:35.771015 +AZURE,eastus,Standard_E8d_v4,spot,NA,0.133402,USD,Azure Retail Prices API,2025-12-18T04:44:32.756161 +AZURE,eastus,Standard_E8ds_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:32.757510 +AZURE,eastus,Standard_E8ds_v4,reserved_1y,NA,0.338699,USD,Azure Retail Prices API,2025-12-18T04:44:35.775275 +AZURE,eastus,Standard_E8ds_v4,reserved_3y,NA,0.216591,USD,Azure Retail Prices API,2025-12-18T04:44:35.775278 +AZURE,eastus,Standard_E8ds_v4,spot,NA,0.133402,USD,Azure Retail Prices API,2025-12-18T04:44:32.755963 +AZURE,eastus,Standard_E8ds_v5,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:32.753911 +AZURE,eastus,Standard_E8ds_v5,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:44:35.769933 +AZURE,eastus,Standard_E8ds_v5,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:44:35.769936 +AZURE,eastus,Standard_E8ds_v5,spot,NA,0.135302,USD,Azure Retail Prices API,2025-12-18T04:44:32.756587 +AZURE,eastus,Standard_E8ds_v6,on_demand,NA,0.654,USD,Azure Retail Prices API,2025-12-18T04:44:32.753842 +AZURE,eastus,Standard_E8ds_v6,reserved_1y,NA,0.405479,USD,Azure Retail Prices API,2025-12-18T04:44:35.769899 +AZURE,eastus,Standard_E8ds_v6,reserved_3y,NA,0.255099,USD,Azure Retail Prices API,2025-12-18T04:44:35.769902 +AZURE,eastus,Standard_E8ds_v6,spot,NA,0.120859,USD,Azure Retail Prices API,2025-12-18T04:44:32.756145 +AZURE,eastus,Standard_E8pds_v6,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:44:32.757061 +AZURE,eastus,Standard_E8pds_v6,reserved_1y,NA,0.276142,USD,Azure Retail Prices API,2025-12-18T04:44:35.770922 +AZURE,eastus,Standard_E8pds_v6,reserved_3y,NA,0.177854,USD,Azure Retail Prices API,2025-12-18T04:44:35.770926 +AZURE,eastus,Standard_E8pds_v6,spot,NA,0.100901,USD,Azure Retail Prices API,2025-12-18T04:44:32.754141 +AZURE,eastus,Standard_E8ps_v6,on_demand,NA,0.369,USD,Azure Retail Prices API,2025-12-18T04:44:32.757822 +AZURE,eastus,Standard_E8ps_v6,reserved_1y,NA,0.21758,USD,Azure Retail Prices API,2025-12-18T04:44:35.775460 +AZURE,eastus,Standard_E8ps_v6,reserved_3y,NA,0.140145,USD,Azure Retail Prices API,2025-12-18T04:44:35.775463 +AZURE,eastus,Standard_E8ps_v6,spot,NA,0.079556,USD,Azure Retail Prices API,2025-12-18T04:44:32.754244 +AZURE,eastus,Standard_E8s_v3,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:32.756775 +AZURE,eastus,Standard_E8s_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:44:35.770735 +AZURE,eastus,Standard_E8s_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:44:35.770737 +AZURE,eastus,Standard_E8s_v3,spot,NA,0.096062,USD,Azure Retail Prices API,2025-12-18T04:44:32.757414 +AZURE,eastus,Standard_E8s_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:32.754096 +AZURE,eastus,Standard_E8s_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:44:35.770028 +AZURE,eastus,Standard_E8s_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:44:35.770030 +AZURE,eastus,Standard_E8s_v4,spot,NA,0.131594,USD,Azure Retail Prices API,2025-12-18T04:44:32.758221 +AZURE,eastus,Standard_E8s_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:32.755876 +AZURE,eastus,Standard_E8s_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:44:35.770293 +AZURE,eastus,Standard_E8s_v5,reserved_3y,NA,0.186492,USD,Azure Retail Prices API,2025-12-18T04:44:35.770296 +AZURE,eastus,Standard_E8s_v5,spot,NA,0.130788,USD,Azure Retail Prices API,2025-12-18T04:44:32.757454 +AZURE,eastus,Standard_E96a_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:32.753965 +AZURE,eastus,Standard_E96a_v4,reserved_1y,NA,3.556164,USD,Azure Retail Prices API,2025-12-18T04:44:35.769978 +AZURE,eastus,Standard_E96a_v4,reserved_3y,NA,2.274049,USD,Azure Retail Prices API,2025-12-18T04:44:35.769981 +AZURE,eastus,Standard_E96a_v4,spot,NA,1.118275,USD,Azure Retail Prices API,2025-12-18T04:44:32.756202 +AZURE,eastus,Standard_E96ads_v5,on_demand,NA,6.288,USD,Azure Retail Prices API,2025-12-18T04:44:32.755734 +AZURE,eastus,Standard_E96ads_v5,reserved_1y,NA,3.709932,USD,Azure Retail Prices API,2025-12-18T04:44:35.770201 +AZURE,eastus,Standard_E96ads_v5,reserved_3y,NA,2.389422,USD,Azure Retail Prices API,2025-12-18T04:44:35.770204 +AZURE,eastus,Standard_E96ads_v5,spot,NA,1.162651,USD,Azure Retail Prices API,2025-12-18T04:44:32.755620 +AZURE,eastus,Standard_E96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:44:32.756198 +AZURE,eastus,Standard_E96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:44:35.770417 +AZURE,eastus,Standard_E96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:44:35.770420 +AZURE,eastus,Standard_E96ads_v6,spot,NA,1.301299,USD,Azure Retail Prices API,2025-12-18T04:44:32.756920 +AZURE,eastus,Standard_E96as_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:32.755814 +AZURE,eastus,Standard_E96as_v4,reserved_1y,NA,3.556164,USD,Azure Retail Prices API,2025-12-18T04:44:35.770261 +AZURE,eastus,Standard_E96as_v4,reserved_3y,NA,2.274049,USD,Azure Retail Prices API,2025-12-18T04:44:35.770265 +AZURE,eastus,Standard_E96as_v4,spot,NA,1.118275,USD,Azure Retail Prices API,2025-12-18T04:44:32.757425 +AZURE,eastus,Standard_E96as_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:32.755951 +AZURE,eastus,Standard_E96as_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:44:35.770334 +AZURE,eastus,Standard_E96as_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:44:35.770337 +AZURE,eastus,Standard_E96as_v5,spot,NA,1.002898,USD,Azure Retail Prices API,2025-12-18T04:44:32.755909 +AZURE,eastus,Standard_E96ds_v5,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:44:32.755692 +AZURE,eastus,Standard_E96ds_v5,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:44:35.770184 +AZURE,eastus,Standard_E96ds_v5,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:44:35.770186 +AZURE,eastus,Standard_E96ds_v5,spot,NA,1.623629,USD,Azure Retail Prices API,2025-12-18T04:44:32.757557 +AZURE,eastus,Standard_E96ds_v6,on_demand,NA,7.849,USD,Azure Retail Prices API,2025-12-18T04:44:32.758109 +AZURE,eastus,Standard_E96ds_v6,reserved_1y,NA,4.866324,USD,Azure Retail Prices API,2025-12-18T04:44:35.775644 +AZURE,eastus,Standard_E96ds_v6,reserved_3y,NA,3.061111,USD,Azure Retail Prices API,2025-12-18T04:44:35.775646 +AZURE,eastus,Standard_E96ds_v6,spot,NA,1.450495,USD,Azure Retail Prices API,2025-12-18T04:44:32.756555 +AZURE,eastus,Standard_E96pds_v6,on_demand,NA,5.616,USD,Azure Retail Prices API,2025-12-18T04:44:32.754066 +AZURE,eastus,Standard_E96pds_v6,reserved_1y,NA,3.31347,USD,Azure Retail Prices API,2025-12-18T04:44:35.770017 +AZURE,eastus,Standard_E96pds_v6,reserved_3y,NA,2.134094,USD,Azure Retail Prices API,2025-12-18T04:44:35.770020 +AZURE,eastus,Standard_E96pds_v6,spot,NA,1.21081,USD,Azure Retail Prices API,2025-12-18T04:44:32.755610 +AZURE,eastus,Standard_E96ps_v6,on_demand,NA,4.426,USD,Azure Retail Prices API,2025-12-18T04:44:32.756177 +AZURE,eastus,Standard_E96ps_v6,reserved_1y,NA,2.611073,USD,Azure Retail Prices API,2025-12-18T04:44:35.770406 +AZURE,eastus,Standard_E96ps_v6,reserved_3y,NA,1.681735,USD,Azure Retail Prices API,2025-12-18T04:44:35.770409 +AZURE,eastus,Standard_E96ps_v6,spot,NA,0.954246,USD,Azure Retail Prices API,2025-12-18T04:44:32.751372 +AZURE,eastus,Standard_E96s_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:32.756266 +AZURE,eastus,Standard_E96s_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:44:35.770439 +AZURE,eastus,Standard_E96s_v5,reserved_3y,NA,2.237747,USD,Azure Retail Prices API,2025-12-18T04:44:35.770442 +AZURE,eastus,Standard_E96s_v5,spot,NA,1.569456,USD,Azure Retail Prices API,2025-12-18T04:44:32.757098 +AZURE,eastus,Standard_EC16ads_v5,on_demand,NA,1.048,USD,Azure Retail Prices API,2025-12-18T04:44:32.757392 +AZURE,eastus,Standard_EC16ads_v5,reserved_1y,NA,0.838356,USD,Azure Retail Prices API,2025-12-18T04:44:35.775175 +AZURE,eastus,Standard_EC16ads_v5,reserved_3y,NA,0.628805,USD,Azure Retail Prices API,2025-12-18T04:44:35.775179 +AZURE,eastus,Standard_EC16ads_v5,spot,NA,0.197758,USD,Azure Retail Prices API,2025-12-18T04:44:32.756034 +AZURE,eastus,Standard_EC16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:44:32.758201 +AZURE,eastus,Standard_EC16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:44:35.775691 +AZURE,eastus,Standard_EC16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:44:35.775694 +AZURE,eastus,Standard_EC16ads_v6,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:44:32.758002 +AZURE,eastus,Standard_EC16as_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:32.757210 +AZURE,eastus,Standard_EC16as_v5,reserved_1y,NA,0.723174,USD,Azure Retail Prices API,2025-12-18T04:44:35.771007 +AZURE,eastus,Standard_EC16as_v5,reserved_3y,NA,0.54239,USD,Azure Retail Prices API,2025-12-18T04:44:35.771010 +AZURE,eastus,Standard_EC16as_v5,spot,NA,0.170585,USD,Azure Retail Prices API,2025-12-18T04:44:32.757403 +AZURE,eastus,Standard_EC16as_v6,on_demand,NA,0.954,USD,Azure Retail Prices API,2025-12-18T04:44:32.757066 +AZURE,eastus,Standard_EC16as_v6,reserved_1y,NA,0.562671,USD,Azure Retail Prices API,2025-12-18T04:44:35.770929 +AZURE,eastus,Standard_EC16as_v6,reserved_3y,NA,0.362367,USD,Azure Retail Prices API,2025-12-18T04:44:35.770932 +AZURE,eastus,Standard_EC16as_v6,spot,NA,0.176299,USD,Azure Retail Prices API,2025-12-18T04:44:32.756066 +AZURE,eastus,Standard_EC20ads_v5,on_demand,NA,1.31,USD,Azure Retail Prices API,2025-12-18T04:44:32.755648 +AZURE,eastus,Standard_EC20ads_v5,reserved_1y,NA,1.047945,USD,Azure Retail Prices API,2025-12-18T04:44:35.770167 +AZURE,eastus,Standard_EC20ads_v5,reserved_3y,NA,0.785997,USD,Azure Retail Prices API,2025-12-18T04:44:35.770170 +AZURE,eastus,Standard_EC20ads_v5,spot,NA,0.247197,USD,Azure Retail Prices API,2025-12-18T04:44:32.758118 +AZURE,eastus,Standard_EC20as_v5,on_demand,NA,1.13,USD,Azure Retail Prices API,2025-12-18T04:44:32.756396 +AZURE,eastus,Standard_EC20as_v5,reserved_1y,NA,0.903995,USD,Azure Retail Prices API,2025-12-18T04:44:35.770531 +AZURE,eastus,Standard_EC20as_v5,reserved_3y,NA,0.678006,USD,Azure Retail Prices API,2025-12-18T04:44:35.770534 +AZURE,eastus,Standard_EC20as_v5,spot,NA,0.213231,USD,Azure Retail Prices API,2025-12-18T04:44:32.753876 +AZURE,eastus,Standard_EC2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:32.751336 +AZURE,eastus,Standard_EC2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:44:35.769834 +AZURE,eastus,Standard_EC2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:44:35.769839 +AZURE,eastus,Standard_EC2ads_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:44:32.756734 +AZURE,eastus,Standard_EC2as_v6,on_demand,NA,0.119,USD,Azure Retail Prices API,2025-12-18T04:44:32.757816 +AZURE,eastus,Standard_EC2as_v6,reserved_1y,NA,0.07032,USD,Azure Retail Prices API,2025-12-18T04:44:35.775454 +AZURE,eastus,Standard_EC2as_v6,reserved_3y,NA,0.045282,USD,Azure Retail Prices API,2025-12-18T04:44:35.775457 +AZURE,eastus,Standard_EC2as_v6,spot,NA,0.021991,USD,Azure Retail Prices API,2025-12-18T04:44:32.758185 +AZURE,eastus,Standard_EC32ads_v5,on_demand,NA,2.096,USD,Azure Retail Prices API,2025-12-18T04:44:32.756271 +AZURE,eastus,Standard_EC32ads_v5,reserved_1y,NA,1.676826,USD,Azure Retail Prices API,2025-12-18T04:44:35.770445 +AZURE,eastus,Standard_EC32ads_v5,reserved_3y,NA,1.25761,USD,Azure Retail Prices API,2025-12-18T04:44:35.770447 +AZURE,eastus,Standard_EC32ads_v5,spot,NA,0.395515,USD,Azure Retail Prices API,2025-12-18T04:44:32.753989 +AZURE,eastus,Standard_EC32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:44:32.756051 +AZURE,eastus,Standard_EC32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:44:35.770379 +AZURE,eastus,Standard_EC32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:44:35.770381 +AZURE,eastus,Standard_EC32ads_v6,spot,NA,0.42929,USD,Azure Retail Prices API,2025-12-18T04:44:32.757761 +AZURE,eastus,Standard_EC32as_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:32.754249 +AZURE,eastus,Standard_EC32as_v5,reserved_1y,NA,1.446347,USD,Azure Retail Prices API,2025-12-18T04:44:35.770097 +AZURE,eastus,Standard_EC32as_v5,reserved_3y,NA,1.084817,USD,Azure Retail Prices API,2025-12-18T04:44:35.770100 +AZURE,eastus,Standard_EC32as_v5,spot,NA,0.34117,USD,Azure Retail Prices API,2025-12-18T04:44:32.754163 +AZURE,eastus,Standard_EC32as_v6,on_demand,NA,1.907,USD,Azure Retail Prices API,2025-12-18T04:44:32.758066 +AZURE,eastus,Standard_EC32as_v6,reserved_1y,NA,1.125228,USD,Azure Retail Prices API,2025-12-18T04:44:35.775603 +AZURE,eastus,Standard_EC32as_v6,reserved_3y,NA,0.724734,USD,Azure Retail Prices API,2025-12-18T04:44:35.775606 +AZURE,eastus,Standard_EC32as_v6,spot,NA,0.352414,USD,Azure Retail Prices API,2025-12-18T04:44:32.756509 +AZURE,eastus,Standard_EC48ads_v5,on_demand,NA,3.144,USD,Azure Retail Prices API,2025-12-18T04:44:32.757271 +AZURE,eastus,Standard_EC48ads_v5,reserved_1y,NA,2.515183,USD,Azure Retail Prices API,2025-12-18T04:44:35.771029 +AZURE,eastus,Standard_EC48ads_v5,reserved_3y,NA,1.886416,USD,Azure Retail Prices API,2025-12-18T04:44:35.771032 +AZURE,eastus,Standard_EC48ads_v5,spot,NA,0.593273,USD,Azure Retail Prices API,2025-12-18T04:44:32.757115 +AZURE,eastus,Standard_EC48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:44:32.755771 +AZURE,eastus,Standard_EC48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:44:35.770218 +AZURE,eastus,Standard_EC48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:44:35.770221 +AZURE,eastus,Standard_EC48ads_v6,spot,NA,0.644028,USD,Azure Retail Prices API,2025-12-18T04:44:32.757892 +AZURE,eastus,Standard_EC48as_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:32.757431 +AZURE,eastus,Standard_EC48as_v5,reserved_1y,NA,2.169635,USD,Azure Retail Prices API,2025-12-18T04:44:35.775204 +AZURE,eastus,Standard_EC48as_v5,reserved_3y,NA,1.627207,USD,Azure Retail Prices API,2025-12-18T04:44:35.775207 +AZURE,eastus,Standard_EC48as_v5,spot,NA,0.511754,USD,Azure Retail Prices API,2025-12-18T04:44:32.756227 +AZURE,eastus,Standard_EC48as_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:44:32.756193 +AZURE,eastus,Standard_EC48as_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:44:35.770412 +AZURE,eastus,Standard_EC48as_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:44:35.770415 +AZURE,eastus,Standard_EC48as_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:44:32.753950 +AZURE,eastus,Standard_EC4ads_v5,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:44:32.754310 +AZURE,eastus,Standard_EC4ads_v5,reserved_1y,NA,0.209589,USD,Azure Retail Prices API,2025-12-18T04:44:35.770127 +AZURE,eastus,Standard_EC4ads_v5,reserved_3y,NA,0.157192,USD,Azure Retail Prices API,2025-12-18T04:44:35.770130 +AZURE,eastus,Standard_EC4ads_v5,spot,NA,0.049439,USD,Azure Retail Prices API,2025-12-18T04:44:32.756440 +AZURE,eastus,Standard_EC4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:44:32.753922 +AZURE,eastus,Standard_EC4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:44:35.769944 +AZURE,eastus,Standard_EC4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:44:35.769947 +AZURE,eastus,Standard_EC4ads_v6,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:44:32.757949 +AZURE,eastus,Standard_EC4as_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:32.756451 +AZURE,eastus,Standard_EC4as_v5,reserved_1y,NA,0.180822,USD,Azure Retail Prices API,2025-12-18T04:44:35.770553 +AZURE,eastus,Standard_EC4as_v5,reserved_3y,NA,0.135616,USD,Azure Retail Prices API,2025-12-18T04:44:35.770556 +AZURE,eastus,Standard_EC4as_v5,spot,NA,0.042646,USD,Azure Retail Prices API,2025-12-18T04:44:32.756887 +AZURE,eastus,Standard_EC4as_v6,on_demand,NA,0.238,USD,Azure Retail Prices API,2025-12-18T04:44:32.757937 +AZURE,eastus,Standard_EC4as_v6,reserved_1y,NA,0.140639,USD,Azure Retail Prices API,2025-12-18T04:44:35.775529 +AZURE,eastus,Standard_EC4as_v6,reserved_3y,NA,0.090601,USD,Azure Retail Prices API,2025-12-18T04:44:35.775532 +AZURE,eastus,Standard_EC4as_v6,spot,NA,0.043982,USD,Azure Retail Prices API,2025-12-18T04:44:32.757915 +AZURE,eastus,Standard_EC64ads_v5,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:44:32.755787 +AZURE,eastus,Standard_EC64ads_v5,reserved_1y,NA,3.353653,USD,Azure Retail Prices API,2025-12-18T04:44:35.770235 +AZURE,eastus,Standard_EC64ads_v5,reserved_3y,NA,2.515183,USD,Azure Retail Prices API,2025-12-18T04:44:35.770238 +AZURE,eastus,Standard_EC64ads_v5,spot,NA,0.79103,USD,Azure Retail Prices API,2025-12-18T04:44:32.754233 +AZURE,eastus,Standard_EC64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:44:32.756925 +AZURE,eastus,Standard_EC64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:44:35.770829 +AZURE,eastus,Standard_EC64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:44:35.770832 +AZURE,eastus,Standard_EC64ads_v6,spot,NA,0.858581,USD,Azure Retail Prices API,2025-12-18T04:44:32.756659 +AZURE,eastus,Standard_EC64as_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:32.754190 +AZURE,eastus,Standard_EC64as_v5,reserved_1y,NA,2.892808,USD,Azure Retail Prices API,2025-12-18T04:44:35.770068 +AZURE,eastus,Standard_EC64as_v5,reserved_3y,NA,2.169597,USD,Azure Retail Prices API,2025-12-18T04:44:35.770071 +AZURE,eastus,Standard_EC64as_v5,spot,NA,0.682339,USD,Azure Retail Prices API,2025-12-18T04:44:32.753969 +AZURE,eastus,Standard_EC64as_v6,on_demand,NA,3.814,USD,Azure Retail Prices API,2025-12-18T04:44:32.757593 +AZURE,eastus,Standard_EC64as_v6,reserved_1y,NA,2.250457,USD,Azure Retail Prices API,2025-12-18T04:44:35.775329 +AZURE,eastus,Standard_EC64as_v6,reserved_3y,NA,1.449467,USD,Azure Retail Prices API,2025-12-18T04:44:35.775332 +AZURE,eastus,Standard_EC64as_v6,spot,NA,0.704827,USD,Azure Retail Prices API,2025-12-18T04:44:32.757577 +AZURE,eastus,Standard_EC8ads_v5,on_demand,NA,0.524,USD,Azure Retail Prices API,2025-12-18T04:44:32.756365 +AZURE,eastus,Standard_EC8ads_v5,reserved_1y,NA,0.419178,USD,Azure Retail Prices API,2025-12-18T04:44:35.770507 +AZURE,eastus,Standard_EC8ads_v5,reserved_3y,NA,0.314384,USD,Azure Retail Prices API,2025-12-18T04:44:35.770514 +AZURE,eastus,Standard_EC8ads_v5,spot,NA,0.098879,USD,Azure Retail Prices API,2025-12-18T04:44:32.755702 +AZURE,eastus,Standard_EC8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:32.755914 +AZURE,eastus,Standard_EC8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:44:35.770317 +AZURE,eastus,Standard_EC8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:44:35.770320 +AZURE,eastus,Standard_EC8ads_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:44:32.756061 +AZURE,eastus,Standard_EC8as_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:32.757127 +AZURE,eastus,Standard_EC8as_v5,reserved_1y,NA,0.361644,USD,Azure Retail Prices API,2025-12-18T04:44:35.770973 +AZURE,eastus,Standard_EC8as_v5,reserved_3y,NA,0.271195,USD,Azure Retail Prices API,2025-12-18T04:44:35.770976 +AZURE,eastus,Standard_EC8as_v5,spot,NA,0.085292,USD,Azure Retail Prices API,2025-12-18T04:44:32.755687 +AZURE,eastus,Standard_EC8as_v6,on_demand,NA,0.477,USD,Azure Retail Prices API,2025-12-18T04:44:32.755659 +AZURE,eastus,Standard_EC8as_v6,reserved_1y,NA,0.281279,USD,Azure Retail Prices API,2025-12-18T04:44:35.770173 +AZURE,eastus,Standard_EC8as_v6,reserved_3y,NA,0.181202,USD,Azure Retail Prices API,2025-12-18T04:44:35.770176 +AZURE,eastus,Standard_EC8as_v6,spot,NA,0.08815,USD,Azure Retail Prices API,2025-12-18T04:44:32.754032 +AZURE,eastus,Standard_EC96ads_v5,on_demand,NA,6.288,USD,Azure Retail Prices API,2025-12-18T04:44:32.757870 +AZURE,eastus,Standard_EC96ads_v5,reserved_1y,NA,5.030365,USD,Azure Retail Prices API,2025-12-18T04:44:35.775493 +AZURE,eastus,Standard_EC96ads_v5,reserved_3y,NA,3.772793,USD,Azure Retail Prices API,2025-12-18T04:44:35.775496 +AZURE,eastus,Standard_EC96ads_v5,spot,NA,1.186546,USD,Azure Retail Prices API,2025-12-18T04:44:32.757717 +AZURE,eastus,Standard_EC96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:44:32.758071 +AZURE,eastus,Standard_EC96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:44:35.775609 +AZURE,eastus,Standard_EC96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:44:35.775611 +AZURE,eastus,Standard_EC96ads_v6,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:44:32.755968 +AZURE,eastus,Standard_EC96as_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:32.756670 +AZURE,eastus,Standard_EC96as_v5,reserved_1y,NA,4.339155,USD,Azure Retail Prices API,2025-12-18T04:44:35.770663 +AZURE,eastus,Standard_EC96as_v5,reserved_3y,NA,3.254414,USD,Azure Retail Prices API,2025-12-18T04:44:35.770666 +AZURE,eastus,Standard_EC96as_v5,spot,NA,1.023509,USD,Azure Retail Prices API,2025-12-18T04:44:32.751311 +AZURE,eastus,Standard_EC96as_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:44:32.756461 +AZURE,eastus,Standard_EC96as_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:44:35.770559 +AZURE,eastus,Standard_EC96as_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:44:35.770562 +AZURE,eastus,Standard_EC96as_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:44:32.757215 +AZURE,eastus,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379203 +AZURE,eastus,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379211 +AZURE,eastus,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379215 +AZURE,eastus,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379207 +AZURE,eastus,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381473 +AZURE,eastus,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381485 +AZURE,eastus,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381489 +AZURE,eastus,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381481 +AZURE,eastus,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384203 +AZURE,eastus,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384212 +AZURE,eastus,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384218 +AZURE,eastus,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384208 +AZURE,eastus,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384984 +AZURE,eastus,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384993 +AZURE,eastus,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384997 +AZURE,eastus,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384988 +AZURE,eastus,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377559 +AZURE,eastus,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377576 +AZURE,eastus,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377581 +AZURE,eastus,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377571 +AZURE,eastus,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385819 +AZURE,eastus,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385827 +AZURE,eastus,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385831 +AZURE,eastus,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385823 +AZURE,eastus,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379958 +AZURE,eastus,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379968 +AZURE,eastus,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379973 +AZURE,eastus,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379964 +AZURE,eastus,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382270 +AZURE,eastus,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382281 +AZURE,eastus,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382288 +AZURE,eastus,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382274 +AZURE,eastus,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386610 +AZURE,eastus,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386619 +AZURE,eastus,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386623 +AZURE,eastus,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386615 +AZURE,eastus,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387370 +AZURE,eastus,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387384 +AZURE,eastus,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387390 +AZURE,eastus,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387378 +AZURE,eastus,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378402 +AZURE,eastus,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378411 +AZURE,eastus,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378415 +AZURE,eastus,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378407 +AZURE,eastus,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380679 +AZURE,eastus,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380687 +AZURE,eastus,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380691 +AZURE,eastus,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380683 +AZURE,eastus,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383408 +AZURE,eastus,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383417 +AZURE,eastus,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383421 +AZURE,eastus,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383413 +AZURE,eastus,Standard_H16,on_demand,NA,1.807,USD,Azure Retail Prices API,2025-12-18T04:44:32.755637 +AZURE,eastus,Standard_H16,spot,NA,0.333934,USD,Azure Retail Prices API,2025-12-18T04:44:32.754016 +AZURE,eastus,Standard_H8,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:32.757482 +AZURE,eastus,Standard_H8,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:44:32.755713 +AZURE,eastus,Standard_L16as_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:44:32.757248 +AZURE,eastus,Standard_L16as_v3,reserved_1y,NA,0.798744,USD,Azure Retail Prices API,2025-12-18T04:44:35.771023 +AZURE,eastus,Standard_L16as_v3,reserved_3y,NA,0.524163,USD,Azure Retail Prices API,2025-12-18T04:44:35.771026 +AZURE,eastus,Standard_L16as_v3,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:44:32.756166 +AZURE,eastus,Standard_L16s_v3,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:44:32.754201 +AZURE,eastus,Standard_L16s_v3,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:44:35.770080 +AZURE,eastus,Standard_L16s_v3,reserved_3y,NA,0.584627,USD,Azure Retail Prices API,2025-12-18T04:44:35.770083 +AZURE,eastus,Standard_L16s_v3,spot,NA,0.477456,USD,Azure Retail Prices API,2025-12-18T04:44:32.754043 +AZURE,eastus,Standard_L32as_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:44:32.756898 +AZURE,eastus,Standard_L32as_v3,reserved_1y,NA,1.597489,USD,Azure Retail Prices API,2025-12-18T04:44:35.770812 +AZURE,eastus,Standard_L32as_v3,reserved_3y,NA,1.048326,USD,Azure Retail Prices API,2025-12-18T04:44:35.770815 +AZURE,eastus,Standard_L32as_v3,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:44:32.757739 +AZURE,eastus,Standard_L32s_v3,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:44:32.756354 +AZURE,eastus,Standard_L32s_v3,reserved_1y,NA,1.781735,USD,Azure Retail Prices API,2025-12-18T04:44:35.770498 +AZURE,eastus,Standard_L32s_v3,reserved_3y,NA,1.169292,USD,Azure Retail Prices API,2025-12-18T04:44:35.770501 +AZURE,eastus,Standard_L32s_v3,spot,NA,0.954912,USD,Azure Retail Prices API,2025-12-18T04:44:32.754299 +AZURE,eastus,Standard_L48as_v3,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:32.758044 +AZURE,eastus,Standard_L48as_v3,reserved_1y,NA,2.396119,USD,Azure Retail Prices API,2025-12-18T04:44:35.775584 +AZURE,eastus,Standard_L48as_v3,reserved_3y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:44:35.775587 +AZURE,eastus,Standard_L48as_v3,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:44:32.755581 +AZURE,eastus,Standard_L48s_v3,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:44:32.751324 +AZURE,eastus,Standard_L48s_v3,reserved_1y,NA,2.672603,USD,Azure Retail Prices API,2025-12-18T04:44:35.769813 +AZURE,eastus,Standard_L48s_v3,reserved_3y,NA,1.753919,USD,Azure Retail Prices API,2025-12-18T04:44:35.769818 +AZURE,eastus,Standard_L48s_v3,spot,NA,1.432368,USD,Azure Retail Prices API,2025-12-18T04:44:32.756571 +AZURE,eastus,Standard_L64as_v3,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:44:32.757371 +AZURE,eastus,Standard_L64as_v3,reserved_1y,NA,3.194863,USD,Azure Retail Prices API,2025-12-18T04:44:35.771057 +AZURE,eastus,Standard_L64as_v3,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:44:35.775156 +AZURE,eastus,Standard_L64as_v3,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:44:32.757838 +AZURE,eastus,Standard_L64s_v3,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:44:32.758179 +AZURE,eastus,Standard_L64s_v3,reserved_1y,NA,3.56347,USD,Azure Retail Prices API,2025-12-18T04:44:35.775685 +AZURE,eastus,Standard_L64s_v3,reserved_3y,NA,2.338546,USD,Azure Retail Prices API,2025-12-18T04:44:35.775688 +AZURE,eastus,Standard_L64s_v3,spot,NA,1.909824,USD,Azure Retail Prices API,2025-12-18T04:44:32.756576 +AZURE,eastus,Standard_L80as_v3,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:44:32.757909 +AZURE,eastus,Standard_L80as_v3,reserved_1y,NA,3.993607,USD,Azure Retail Prices API,2025-12-18T04:44:35.775511 +AZURE,eastus,Standard_L80as_v3,reserved_3y,NA,2.620814,USD,Azure Retail Prices API,2025-12-18T04:44:35.775513 +AZURE,eastus,Standard_L80as_v3,spot,NA,1.153152,USD,Azure Retail Prices API,2025-12-18T04:44:32.757071 +AZURE,eastus,Standard_L80s_v3,on_demand,NA,6.96,USD,Azure Retail Prices API,2025-12-18T04:44:32.757104 +AZURE,eastus,Standard_L80s_v3,reserved_1y,NA,4.454452,USD,Azure Retail Prices API,2025-12-18T04:44:35.770962 +AZURE,eastus,Standard_L80s_v3,reserved_3y,NA,2.923212,USD,Azure Retail Prices API,2025-12-18T04:44:35.770965 +AZURE,eastus,Standard_L80s_v3,spot,NA,2.38728,USD,Azure Retail Prices API,2025-12-18T04:44:32.757146 +AZURE,eastus,Standard_L8as_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:44:32.756524 +AZURE,eastus,Standard_L8as_v3,reserved_1y,NA,0.399315,USD,Azure Retail Prices API,2025-12-18T04:44:35.770606 +AZURE,eastus,Standard_L8as_v3,reserved_3y,NA,0.262062,USD,Azure Retail Prices API,2025-12-18T04:44:35.770609 +AZURE,eastus,Standard_L8as_v3,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:44:32.757322 +AZURE,eastus,Standard_L8s_v3,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:44:32.757722 +AZURE,eastus,Standard_L8s_v3,reserved_1y,NA,0.445434,USD,Azure Retail Prices API,2025-12-18T04:44:35.775397 +AZURE,eastus,Standard_L8s_v3,reserved_3y,NA,0.292314,USD,Azure Retail Prices API,2025-12-18T04:44:35.775400 +AZURE,eastus,Standard_L8s_v3,spot,NA,0.238728,USD,Azure Retail Prices API,2025-12-18T04:44:32.754136 +AZURE,eastus,Standard_NC12s_v3,on_demand,NA,6.12,USD,Azure Retail Prices API,2025-12-18T04:44:32.754049 +AZURE,eastus,Standard_NC12s_v3,spot,NA,1.130976,USD,Azure Retail Prices API,2025-12-18T04:44:32.756608 +AZURE,eastus,Standard_NC16as_T4_v3,on_demand,NA,1.204,USD,Azure Retail Prices API,2025-12-18T04:44:32.753980 +AZURE,eastus,Standard_NC16as_T4_v3,reserved_1y,NA,0.707991,USD,Azure Retail Prices API,2025-12-18T04:44:35.769989 +AZURE,eastus,Standard_NC16as_T4_v3,reserved_3y,NA,0.452702,USD,Azure Retail Prices API,2025-12-18T04:44:35.769992 +AZURE,eastus,Standard_NC16as_T4_v3,spot,NA,0.562027,USD,Azure Retail Prices API,2025-12-18T04:44:32.757013 +AZURE,eastus,Standard_NC24ads_A100_v4,on_demand,NA,3.673,USD,Azure Retail Prices API,2025-12-18T04:44:32.756811 +AZURE,eastus,Standard_NC24ads_A100_v4,reserved_1y,NA,2.401027,USD,Azure Retail Prices API,2025-12-18T04:44:35.770767 +AZURE,eastus,Standard_NC24ads_A100_v4,reserved_3y,NA,1.363052,USD,Azure Retail Prices API,2025-12-18T04:44:35.770771 +AZURE,eastus,Standard_NC24ads_A100_v4,spot,NA,1.096023,USD,Azure Retail Prices API,2025-12-18T04:44:32.754185 +AZURE,eastus,Standard_NC24s_v3,on_demand,NA,12.24,USD,Azure Retail Prices API,2025-12-18T04:44:32.758173 +AZURE,eastus,Standard_NC24s_v3,spot,NA,2.261952,USD,Azure Retail Prices API,2025-12-18T04:44:32.758082 +AZURE,eastus,Standard_NC40ads_H100_v5,on_demand,NA,6.98,USD,Azure Retail Prices API,2025-12-18T04:44:32.756344 +AZURE,eastus,Standard_NC40ads_H100_v5,reserved_1y,NA,5.235046,USD,Azure Retail Prices API,2025-12-18T04:44:35.770488 +AZURE,eastus,Standard_NC40ads_H100_v5,reserved_3y,NA,3.839003,USD,Azure Retail Prices API,2025-12-18T04:44:35.770490 +AZURE,eastus,Standard_NC40ads_H100_v5,spot,NA,2.287346,USD,Azure Retail Prices API,2025-12-18T04:44:32.754343 +AZURE,eastus,Standard_NC48ads_A100_v4,on_demand,NA,7.346,USD,Azure Retail Prices API,2025-12-18T04:44:32.755940 +AZURE,eastus,Standard_NC48ads_A100_v4,reserved_1y,NA,4.802055,USD,Azure Retail Prices API,2025-12-18T04:44:35.770328 +AZURE,eastus,Standard_NC48ads_A100_v4,reserved_3y,NA,2.726104,USD,Azure Retail Prices API,2025-12-18T04:44:35.770331 +AZURE,eastus,Standard_NC48ads_A100_v4,spot,NA,2.192046,USD,Azure Retail Prices API,2025-12-18T04:44:32.756973 +AZURE,eastus,Standard_NC4as_T4_v3,on_demand,NA,0.526,USD,Azure Retail Prices API,2025-12-18T04:44:32.757377 +AZURE,eastus,Standard_NC4as_T4_v3,reserved_1y,NA,0.309247,USD,Azure Retail Prices API,2025-12-18T04:44:35.775166 +AZURE,eastus,Standard_NC4as_T4_v3,reserved_3y,NA,0.197793,USD,Azure Retail Prices API,2025-12-18T04:44:35.775170 +AZURE,eastus,Standard_NC4as_T4_v3,spot,NA,0.245537,USD,Azure Retail Prices API,2025-12-18T04:44:32.757265 +AZURE,eastus,Standard_NC64as_T4_v3,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:44:32.757236 +AZURE,eastus,Standard_NC64as_T4_v3,reserved_1y,NA,2.559018,USD,Azure Retail Prices API,2025-12-18T04:44:35.771018 +AZURE,eastus,Standard_NC64as_T4_v3,reserved_3y,NA,1.636339,USD,Azure Retail Prices API,2025-12-18T04:44:35.771021 +AZURE,eastus,Standard_NC64as_T4_v3,spot,NA,2.031514,USD,Azure Retail Prices API,2025-12-18T04:44:32.754021 +AZURE,eastus,Standard_NC6s_v3,on_demand,NA,3.06,USD,Azure Retail Prices API,2025-12-18T04:44:32.757242 +AZURE,eastus,Standard_NC6s_v3,spot,NA,0.565488,USD,Azure Retail Prices API,2025-12-18T04:44:32.757088 +AZURE,eastus,Standard_NC8as_T4_v3,on_demand,NA,0.752,USD,Azure Retail Prices API,2025-12-18T04:44:32.757436 +AZURE,eastus,Standard_NC8as_T4_v3,reserved_1y,NA,0.442123,USD,Azure Retail Prices API,2025-12-18T04:44:35.775210 +AZURE,eastus,Standard_NC8as_T4_v3,reserved_3y,NA,0.282763,USD,Azure Retail Prices API,2025-12-18T04:44:35.775214 +AZURE,eastus,Standard_NC8as_T4_v3,spot,NA,0.351034,USD,Azure Retail Prices API,2025-12-18T04:44:32.756624 +AZURE,eastus,Standard_NC96ads_A100_v4,on_demand,NA,14.692,USD,Azure Retail Prices API,2025-12-18T04:44:32.756949 +AZURE,eastus,Standard_NC96ads_A100_v4,reserved_1y,NA,9.60411,USD,Azure Retail Prices API,2025-12-18T04:44:35.770840 +AZURE,eastus,Standard_NC96ads_A100_v4,reserved_3y,NA,5.452207,USD,Azure Retail Prices API,2025-12-18T04:44:35.770842 +AZURE,eastus,Standard_NC96ads_A100_v4,spot,NA,4.384093,USD,Azure Retail Prices API,2025-12-18T04:44:32.755761 +AZURE,eastus,Standard_ND96asr_v4,on_demand,NA,27.197,USD,Azure Retail Prices API,2025-12-18T04:44:32.756739 +AZURE,eastus,Standard_ND96asr_v4,reserved_1y,NA,18.828311,USD,Azure Retail Prices API,2025-12-18T04:44:35.770713 +AZURE,eastus,Standard_ND96asr_v4,reserved_3y,NA,10.878729,USD,Azure Retail Prices API,2025-12-18T04:44:35.770715 +AZURE,eastus,Standard_ND96asr_v4,spot,NA,5.98334,USD,Azure Retail Prices API,2025-12-18T04:44:32.754125 +AZURE,eastus,Standard_ND96isr_H100_v5,on_demand,NA,98.32,USD,Azure Retail Prices API,2025-12-18T04:44:32.751388 +AZURE,eastus,Standard_ND96isr_H100_v5,reserved_1y,NA,62.924772,USD,Azure Retail Prices API,2025-12-18T04:44:35.769883 +AZURE,eastus,Standard_ND96isr_H100_v5,reserved_3y,NA,43.162481,USD,Azure Retail Prices API,2025-12-18T04:44:35.769890 +AZURE,eastus,Standard_ND96isr_H100_v5,spot,NA,19.02492,USD,Azure Retail Prices API,2025-12-18T04:44:32.756862 +AZURE,eastus,Standard_NV36adms_A10_v5,on_demand,NA,4.52,USD,Azure Retail Prices API,2025-12-18T04:44:32.757679 +AZURE,eastus,Standard_NV36adms_A10_v5,reserved_1y,NA,2.892808,USD,Azure Retail Prices API,2025-12-18T04:44:35.775378 +AZURE,eastus,Standard_NV36adms_A10_v5,reserved_3y,NA,1.988813,USD,Azure Retail Prices API,2025-12-18T04:44:35.775381 +AZURE,eastus,Standard_NV36adms_A10_v5,spot,NA,0.835296,USD,Azure Retail Prices API,2025-12-18T04:44:32.757121 +AZURE,eastus,Standard_NV36ads_A10_v5,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:44:32.756413 +AZURE,eastus,Standard_NV36ads_A10_v5,reserved_1y,NA,2.047945,USD,Azure Retail Prices API,2025-12-18T04:44:35.770536 +AZURE,eastus,Standard_NV36ads_A10_v5,reserved_3y,NA,1.407991,USD,Azure Retail Prices API,2025-12-18T04:44:35.770539 +AZURE,eastus,Standard_NV36ads_A10_v5,spot,NA,0.59136,USD,Azure Retail Prices API,2025-12-18T04:44:32.756826 +AZURE,eastus,Standard_NV72ads_A10_v5,on_demand,NA,6.52,USD,Azure Retail Prices API,2025-12-18T04:44:32.756765 +AZURE,eastus,Standard_NV72ads_A10_v5,reserved_1y,NA,4.172831,USD,Azure Retail Prices API,2025-12-18T04:44:35.770729 +AZURE,eastus,Standard_NV72ads_A10_v5,reserved_3y,NA,2.868798,USD,Azure Retail Prices API,2025-12-18T04:44:35.770732 +AZURE,eastus,Standard_NV72ads_A10_v5,spot,NA,1.204896,USD,Azure Retail Prices API,2025-12-18T04:44:32.756182 +AZURE,eastus2,Standard_D128ds_v6,on_demand,NA,7.973,USD,Azure Retail Prices API,2025-12-18T04:44:39.649275 +AZURE,eastus2,Standard_D128ds_v6,reserved_1y,NA,4.943379,USD,Azure Retail Prices API,2025-12-18T04:44:41.860790 +AZURE,eastus2,Standard_D128ds_v6,reserved_3y,NA,3.109513,USD,Azure Retail Prices API,2025-12-18T04:44:41.860793 +AZURE,eastus2,Standard_D128ds_v6,spot,NA,1.47341,USD,Azure Retail Prices API,2025-12-18T04:44:39.648432 +AZURE,eastus2,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488099 +AZURE,eastus2,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488135 +AZURE,eastus2,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488139 +AZURE,eastus2,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488131 +AZURE,eastus2,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488870 +AZURE,eastus2,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488878 +AZURE,eastus2,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488882 +AZURE,eastus2,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488874 +AZURE,eastus2,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489927 +AZURE,eastus2,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489936 +AZURE,eastus2,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489940 +AZURE,eastus2,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489932 +AZURE,eastus2,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490695 +AZURE,eastus2,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490704 +AZURE,eastus2,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490708 +AZURE,eastus2,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490700 +AZURE,eastus2,Standard_D16_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:39.648364 +AZURE,eastus2,Standard_D16_v3,reserved_1y,NA,0.457991,USD,Azure Retail Prices API,2025-12-18T04:44:41.859869 +AZURE,eastus2,Standard_D16_v3,reserved_3y,NA,0.294787,USD,Azure Retail Prices API,2025-12-18T04:44:41.859874 +AZURE,eastus2,Standard_D16_v3,spot,NA,0.228326,USD,Azure Retail Prices API,2025-12-18T04:44:39.648658 +AZURE,eastus2,Standard_D16a_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:39.649486 +AZURE,eastus2,Standard_D16a_v4,reserved_1y,NA,0.457534,USD,Azure Retail Prices API,2025-12-18T04:44:41.860983 +AZURE,eastus2,Standard_D16a_v4,reserved_3y,NA,0.294673,USD,Azure Retail Prices API,2025-12-18T04:44:41.860985 +AZURE,eastus2,Standard_D16a_v4,spot,NA,0.177178,USD,Azure Retail Prices API,2025-12-18T04:44:39.649424 +AZURE,eastus2,Standard_D16ads_v5,on_demand,NA,0.824,USD,Azure Retail Prices API,2025-12-18T04:44:39.648639 +AZURE,eastus2,Standard_D16ads_v5,reserved_1y,NA,0.486187,USD,Azure Retail Prices API,2025-12-18T04:44:41.860201 +AZURE,eastus2,Standard_D16ads_v5,reserved_3y,NA,0.313128,USD,Azure Retail Prices API,2025-12-18T04:44:41.860204 +AZURE,eastus2,Standard_D16ads_v5,spot,NA,0.190097,USD,Azure Retail Prices API,2025-12-18T04:44:39.648806 +AZURE,eastus2,Standard_D16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:44:39.648477 +AZURE,eastus2,Standard_D16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:44:41.860000 +AZURE,eastus2,Standard_D16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:44:41.860003 +AZURE,eastus2,Standard_D16ads_v6,spot,NA,0.176928,USD,Azure Retail Prices API,2025-12-18T04:44:39.649433 +AZURE,eastus2,Standard_D16as_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:39.648460 +AZURE,eastus2,Standard_D16as_v4,reserved_1y,NA,0.457534,USD,Azure Retail Prices API,2025-12-18T04:44:41.859983 +AZURE,eastus2,Standard_D16as_v4,reserved_3y,NA,0.294673,USD,Azure Retail Prices API,2025-12-18T04:44:41.859986 +AZURE,eastus2,Standard_D16as_v4,spot,NA,0.177178,USD,Azure Retail Prices API,2025-12-18T04:44:39.648968 +AZURE,eastus2,Standard_D16as_v5,on_demand,NA,1.424,USD,Azure Retail Prices API,2025-12-18T04:44:39.648200 +AZURE,eastus2,Standard_D16as_v5,reserved_1y,NA,0.405936,USD,Azure Retail Prices API,2025-12-18T04:44:41.860472 +AZURE,eastus2,Standard_D16as_v5,reserved_3y,NA,0.261454,USD,Azure Retail Prices API,2025-12-18T04:44:41.860475 +AZURE,eastus2,Standard_D16as_v5,spot,NA,0.158722,USD,Azure Retail Prices API,2025-12-18T04:44:39.648438 +AZURE,eastus2,Standard_D16d_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:39.648497 +AZURE,eastus2,Standard_D16d_v4,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:44:41.860029 +AZURE,eastus2,Standard_D16d_v4,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:44:41.860031 +AZURE,eastus2,Standard_D16d_v4,spot,NA,0.281144,USD,Azure Retail Prices API,2025-12-18T04:44:39.649255 +AZURE,eastus2,Standard_D16ds_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:39.649051 +AZURE,eastus2,Standard_D16ds_v4,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:44:41.860623 +AZURE,eastus2,Standard_D16ds_v4,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:44:41.860626 +AZURE,eastus2,Standard_D16ds_v4,spot,NA,0.281144,USD,Azure Retail Prices API,2025-12-18T04:44:39.648642 +AZURE,eastus2,Standard_D16ds_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:39.648620 +AZURE,eastus2,Standard_D16ds_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:44:41.860175 +AZURE,eastus2,Standard_D16ds_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:44:41.860177 +AZURE,eastus2,Standard_D16ds_v5,spot,NA,0.281144,USD,Azure Retail Prices API,2025-12-18T04:44:39.648737 +AZURE,eastus2,Standard_D16ds_v6,on_demand,NA,0.997,USD,Azure Retail Prices API,2025-12-18T04:44:39.648538 +AZURE,eastus2,Standard_D16ds_v6,reserved_1y,NA,0.617922,USD,Azure Retail Prices API,2025-12-18T04:44:41.860068 +AZURE,eastus2,Standard_D16ds_v6,reserved_3y,NA,0.388699,USD,Azure Retail Prices API,2025-12-18T04:44:41.860070 +AZURE,eastus2,Standard_D16ds_v6,spot,NA,0.184246,USD,Azure Retail Prices API,2025-12-18T04:44:39.648418 +AZURE,eastus2,Standard_D16pds_v6,on_demand,NA,0.734,USD,Azure Retail Prices API,2025-12-18T04:44:39.648337 +AZURE,eastus2,Standard_D16pds_v6,reserved_1y,NA,0.433333,USD,Azure Retail Prices API,2025-12-18T04:44:41.859826 +AZURE,eastus2,Standard_D16pds_v6,reserved_3y,NA,0.279072,USD,Azure Retail Prices API,2025-12-18T04:44:41.859828 +AZURE,eastus2,Standard_D16pds_v6,spot,NA,0.181959,USD,Azure Retail Prices API,2025-12-18T04:44:39.648623 +AZURE,eastus2,Standard_D16ps_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:44:39.648846 +AZURE,eastus2,Standard_D16ps_v6,reserved_1y,NA,0.331393,USD,Azure Retail Prices API,2025-12-18T04:44:41.860403 +AZURE,eastus2,Standard_D16ps_v6,reserved_3y,NA,0.213394,USD,Azure Retail Prices API,2025-12-18T04:44:41.860405 +AZURE,eastus2,Standard_D16ps_v6,spot,NA,0.13932,USD,Azure Retail Prices API,2025-12-18T04:44:39.648852 +AZURE,eastus2,Standard_D16s_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:39.648881 +AZURE,eastus2,Standard_D16s_v3,reserved_1y,NA,0.457991,USD,Azure Retail Prices API,2025-12-18T04:44:41.860448 +AZURE,eastus2,Standard_D16s_v3,reserved_3y,NA,0.294787,USD,Azure Retail Prices API,2025-12-18T04:44:41.860451 +AZURE,eastus2,Standard_D16s_v3,spot,NA,0.228326,USD,Azure Retail Prices API,2025-12-18T04:44:39.649142 +AZURE,eastus2,Standard_D16s_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:39.649810 +AZURE,eastus2,Standard_D16s_v4,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:44:41.861277 +AZURE,eastus2,Standard_D16s_v4,reserved_3y,NA,0.291857,USD,Azure Retail Prices API,2025-12-18T04:44:41.861280 +AZURE,eastus2,Standard_D16s_v4,spot,NA,0.248678,USD,Azure Retail Prices API,2025-12-18T04:44:39.649462 +AZURE,eastus2,Standard_D16s_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:39.649422 +AZURE,eastus2,Standard_D16s_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:44:41.860911 +AZURE,eastus2,Standard_D16s_v5,reserved_3y,NA,0.28417,USD,Azure Retail Prices API,2025-12-18T04:44:41.860914 +AZURE,eastus2,Standard_D16s_v5,spot,NA,0.248678,USD,Azure Retail Prices API,2025-12-18T04:44:39.649549 +AZURE,eastus2,Standard_D2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:44:39.649465 +AZURE,eastus2,Standard_D2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:44:41.860955 +AZURE,eastus2,Standard_D2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:44:41.860958 +AZURE,eastus2,Standard_D2ads_v6,spot,NA,0.022116,USD,Azure Retail Prices API,2025-12-18T04:44:39.648463 +AZURE,eastus2,Standard_D2ds_v6,on_demand,NA,0.125,USD,Azure Retail Prices API,2025-12-18T04:44:39.649566 +AZURE,eastus2,Standard_D2ds_v6,reserved_1y,NA,0.077283,USD,Azure Retail Prices API,2025-12-18T04:44:41.861035 +AZURE,eastus2,Standard_D2ds_v6,reserved_3y,NA,0.048592,USD,Azure Retail Prices API,2025-12-18T04:44:41.861038 +AZURE,eastus2,Standard_D2ds_v6,spot,NA,0.0231,USD,Azure Retail Prices API,2025-12-18T04:44:39.649427 +AZURE,eastus2,Standard_D32_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:39.648925 +AZURE,eastus2,Standard_D32_v3,reserved_1y,NA,0.915982,USD,Azure Retail Prices API,2025-12-18T04:44:41.860500 +AZURE,eastus2,Standard_D32_v3,reserved_3y,NA,0.589574,USD,Azure Retail Prices API,2025-12-18T04:44:41.860503 +AZURE,eastus2,Standard_D32_v3,spot,NA,0.456653,USD,Azure Retail Prices API,2025-12-18T04:44:39.649243 +AZURE,eastus2,Standard_D32a_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:39.649750 +AZURE,eastus2,Standard_D32a_v4,reserved_1y,NA,0.915068,USD,Azure Retail Prices API,2025-12-18T04:44:41.861221 +AZURE,eastus2,Standard_D32a_v4,reserved_3y,NA,0.589346,USD,Azure Retail Prices API,2025-12-18T04:44:41.861224 +AZURE,eastus2,Standard_D32a_v4,spot,NA,0.354355,USD,Azure Retail Prices API,2025-12-18T04:44:39.649385 +AZURE,eastus2,Standard_D32ads_v5,on_demand,NA,1.648,USD,Azure Retail Prices API,2025-12-18T04:44:39.649310 +AZURE,eastus2,Standard_D32ads_v5,reserved_1y,NA,0.972374,USD,Azure Retail Prices API,2025-12-18T04:44:41.860817 +AZURE,eastus2,Standard_D32ads_v5,reserved_3y,NA,0.626256,USD,Azure Retail Prices API,2025-12-18T04:44:41.860819 +AZURE,eastus2,Standard_D32ads_v5,spot,NA,0.380194,USD,Azure Retail Prices API,2025-12-18T04:44:39.648612 +AZURE,eastus2,Standard_D32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:44:39.648999 +AZURE,eastus2,Standard_D32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:44:41.860561 +AZURE,eastus2,Standard_D32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:44:41.860564 +AZURE,eastus2,Standard_D32ads_v6,spot,NA,0.353856,USD,Azure Retail Prices API,2025-12-18T04:44:39.649258 +AZURE,eastus2,Standard_D32as_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:39.648226 +AZURE,eastus2,Standard_D32as_v4,reserved_1y,NA,0.915068,USD,Azure Retail Prices API,2025-12-18T04:44:41.859721 +AZURE,eastus2,Standard_D32as_v4,reserved_3y,NA,0.589346,USD,Azure Retail Prices API,2025-12-18T04:44:41.859724 +AZURE,eastus2,Standard_D32as_v4,spot,NA,0.354355,USD,Azure Retail Prices API,2025-12-18T04:44:39.648945 +AZURE,eastus2,Standard_D32as_v5,on_demand,NA,2.848,USD,Azure Retail Prices API,2025-12-18T04:44:39.649201 +AZURE,eastus2,Standard_D32as_v5,reserved_1y,NA,0.811872,USD,Azure Retail Prices API,2025-12-18T04:44:41.860966 +AZURE,eastus2,Standard_D32as_v5,reserved_3y,NA,0.522869,USD,Azure Retail Prices API,2025-12-18T04:44:41.860969 +AZURE,eastus2,Standard_D32as_v5,spot,NA,0.317443,USD,Azure Retail Prices API,2025-12-18T04:44:39.648131 +AZURE,eastus2,Standard_D32d_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:39.648549 +AZURE,eastus2,Standard_D32d_v4,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:44:41.860085 +AZURE,eastus2,Standard_D32d_v4,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:44:41.860088 +AZURE,eastus2,Standard_D32d_v4,spot,NA,0.562288,USD,Azure Retail Prices API,2025-12-18T04:44:39.649121 +AZURE,eastus2,Standard_D32ds_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:39.648381 +AZURE,eastus2,Standard_D32ds_v4,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:44:41.859884 +AZURE,eastus2,Standard_D32ds_v4,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:44:41.859887 +AZURE,eastus2,Standard_D32ds_v4,spot,NA,0.562288,USD,Azure Retail Prices API,2025-12-18T04:44:39.648860 +AZURE,eastus2,Standard_D32ds_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:39.649443 +AZURE,eastus2,Standard_D32ds_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:44:41.860939 +AZURE,eastus2,Standard_D32ds_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:44:41.860942 +AZURE,eastus2,Standard_D32ds_v5,spot,NA,0.562288,USD,Azure Retail Prices API,2025-12-18T04:44:39.648315 +AZURE,eastus2,Standard_D32ds_v6,on_demand,NA,1.993,USD,Azure Retail Prices API,2025-12-18T04:44:39.649040 +AZURE,eastus2,Standard_D32ds_v6,reserved_1y,NA,1.235845,USD,Azure Retail Prices API,2025-12-18T04:44:41.860601 +AZURE,eastus2,Standard_D32ds_v6,reserved_3y,NA,0.777397,USD,Azure Retail Prices API,2025-12-18T04:44:41.860604 +AZURE,eastus2,Standard_D32ds_v6,spot,NA,0.368306,USD,Azure Retail Prices API,2025-12-18T04:44:39.649170 +AZURE,eastus2,Standard_D32pds_v6,on_demand,NA,1.469,USD,Azure Retail Prices API,2025-12-18T04:44:39.648128 +AZURE,eastus2,Standard_D32pds_v6,reserved_1y,NA,0.866553,USD,Azure Retail Prices API,2025-12-18T04:44:41.859628 +AZURE,eastus2,Standard_D32pds_v6,reserved_3y,NA,0.558143,USD,Azure Retail Prices API,2025-12-18T04:44:41.859631 +AZURE,eastus2,Standard_D32pds_v6,spot,NA,0.364165,USD,Azure Retail Prices API,2025-12-18T04:44:39.649382 +AZURE,eastus2,Standard_D32ps_v6,on_demand,NA,1.123,USD,Azure Retail Prices API,2025-12-18T04:44:39.648653 +AZURE,eastus2,Standard_D32ps_v6,reserved_1y,NA,0.662671,USD,Azure Retail Prices API,2025-12-18T04:44:41.860217 +AZURE,eastus2,Standard_D32ps_v6,reserved_3y,NA,0.426826,USD,Azure Retail Prices API,2025-12-18T04:44:41.860220 +AZURE,eastus2,Standard_D32ps_v6,spot,NA,0.278392,USD,Azure Retail Prices API,2025-12-18T04:44:39.649209 +AZURE,eastus2,Standard_D32s_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:39.649591 +AZURE,eastus2,Standard_D32s_v3,reserved_1y,NA,0.915982,USD,Azure Retail Prices API,2025-12-18T04:44:41.861056 +AZURE,eastus2,Standard_D32s_v3,reserved_3y,NA,0.589574,USD,Azure Retail Prices API,2025-12-18T04:44:41.861059 +AZURE,eastus2,Standard_D32s_v3,spot,NA,0.456653,USD,Azure Retail Prices API,2025-12-18T04:44:39.648889 +AZURE,eastus2,Standard_D32s_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:39.648815 +AZURE,eastus2,Standard_D32s_v4,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:44:41.860359 +AZURE,eastus2,Standard_D32s_v4,reserved_3y,NA,0.583676,USD,Azure Retail Prices API,2025-12-18T04:44:41.860361 +AZURE,eastus2,Standard_D32s_v4,spot,NA,0.497357,USD,Azure Retail Prices API,2025-12-18T04:44:39.649746 +AZURE,eastus2,Standard_D32s_v5,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:39.649173 +AZURE,eastus2,Standard_D32s_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:44:41.860703 +AZURE,eastus2,Standard_D32s_v5,reserved_3y,NA,0.568303,USD,Azure Retail Prices API,2025-12-18T04:44:41.860705 +AZURE,eastus2,Standard_D32s_v5,spot,NA,0.497357,USD,Azure Retail Prices API,2025-12-18T04:44:39.648572 +AZURE,eastus2,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485076 +AZURE,eastus2,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485085 +AZURE,eastus2,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485089 +AZURE,eastus2,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485081 +AZURE,eastus2,Standard_D48a_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:39.649742 +AZURE,eastus2,Standard_D48a_v4,reserved_1y,NA,1.372603,USD,Azure Retail Prices API,2025-12-18T04:44:41.861216 +AZURE,eastus2,Standard_D48a_v4,reserved_3y,NA,0.884018,USD,Azure Retail Prices API,2025-12-18T04:44:41.861219 +AZURE,eastus2,Standard_D48a_v4,spot,NA,0.531533,USD,Azure Retail Prices API,2025-12-18T04:44:39.649313 +AZURE,eastus2,Standard_D48ads_v5,on_demand,NA,2.472,USD,Azure Retail Prices API,2025-12-18T04:44:39.649220 +AZURE,eastus2,Standard_D48ads_v5,reserved_1y,NA,1.458447,USD,Azure Retail Prices API,2025-12-18T04:44:41.860741 +AZURE,eastus2,Standard_D48ads_v5,reserved_3y,NA,0.939346,USD,Azure Retail Prices API,2025-12-18T04:44:41.860744 +AZURE,eastus2,Standard_D48ads_v5,spot,NA,0.57029,USD,Azure Retail Prices API,2025-12-18T04:44:39.648292 +AZURE,eastus2,Standard_D48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:44:39.649016 +AZURE,eastus2,Standard_D48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:44:41.860590 +AZURE,eastus2,Standard_D48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:44:41.860593 +AZURE,eastus2,Standard_D48ads_v6,spot,NA,0.530784,USD,Azure Retail Prices API,2025-12-18T04:44:39.649516 +AZURE,eastus2,Standard_D48as_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:39.648329 +AZURE,eastus2,Standard_D48as_v4,reserved_1y,NA,1.372603,USD,Azure Retail Prices API,2025-12-18T04:44:41.859814 +AZURE,eastus2,Standard_D48as_v4,reserved_3y,NA,0.884018,USD,Azure Retail Prices API,2025-12-18T04:44:41.859817 +AZURE,eastus2,Standard_D48as_v4,spot,NA,0.531533,USD,Azure Retail Prices API,2025-12-18T04:44:39.648916 +AZURE,eastus2,Standard_D48as_v5,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:44:39.649802 +AZURE,eastus2,Standard_D48as_v5,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:44:41.861272 +AZURE,eastus2,Standard_D48as_v5,reserved_3y,NA,0.784323,USD,Azure Retail Prices API,2025-12-18T04:44:41.861274 +AZURE,eastus2,Standard_D48as_v5,spot,NA,0.476165,USD,Azure Retail Prices API,2025-12-18T04:44:39.648295 +AZURE,eastus2,Standard_D48d_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:39.648948 +AZURE,eastus2,Standard_D48d_v4,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:44:41.860533 +AZURE,eastus2,Standard_D48d_v4,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:44:41.860535 +AZURE,eastus2,Standard_D48d_v4,spot,NA,0.843432,USD,Azure Retail Prices API,2025-12-18T04:44:39.649167 +AZURE,eastus2,Standard_D48ds_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:39.648301 +AZURE,eastus2,Standard_D48ds_v4,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:44:41.859793 +AZURE,eastus2,Standard_D48ds_v4,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:44:41.859795 +AZURE,eastus2,Standard_D48ds_v4,spot,NA,0.843432,USD,Azure Retail Prices API,2025-12-18T04:44:39.649589 +AZURE,eastus2,Standard_D48ds_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:39.648940 +AZURE,eastus2,Standard_D48ds_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:44:41.860522 +AZURE,eastus2,Standard_D48ds_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:44:41.860525 +AZURE,eastus2,Standard_D48ds_v5,spot,NA,0.843432,USD,Azure Retail Prices API,2025-12-18T04:44:39.649065 +AZURE,eastus2,Standard_D48ds_v6,on_demand,NA,2.99,USD,Azure Retail Prices API,2025-12-18T04:44:39.649252 +AZURE,eastus2,Standard_D48ds_v6,reserved_1y,NA,1.853767,USD,Azure Retail Prices API,2025-12-18T04:44:41.860768 +AZURE,eastus2,Standard_D48ds_v6,reserved_3y,NA,1.166058,USD,Azure Retail Prices API,2025-12-18T04:44:41.860771 +AZURE,eastus2,Standard_D48ds_v6,spot,NA,0.552552,USD,Azure Retail Prices API,2025-12-18T04:44:39.649680 +AZURE,eastus2,Standard_D48pds_v6,on_demand,NA,2.203,USD,Azure Retail Prices API,2025-12-18T04:44:39.648970 +AZURE,eastus2,Standard_D48pds_v6,reserved_1y,NA,1.299886,USD,Azure Retail Prices API,2025-12-18T04:44:41.860550 +AZURE,eastus2,Standard_D48pds_v6,reserved_3y,NA,0.837215,USD,Azure Retail Prices API,2025-12-18T04:44:41.860553 +AZURE,eastus2,Standard_D48pds_v6,spot,NA,0.546124,USD,Azure Retail Prices API,2025-12-18T04:44:39.649054 +AZURE,eastus2,Standard_D48ps_v6,on_demand,NA,1.685,USD,Azure Retail Prices API,2025-12-18T04:44:39.648509 +AZURE,eastus2,Standard_D48ps_v6,reserved_1y,NA,0.994064,USD,Azure Retail Prices API,2025-12-18T04:44:41.860046 +AZURE,eastus2,Standard_D48ps_v6,reserved_3y,NA,0.640221,USD,Azure Retail Prices API,2025-12-18T04:44:41.860049 +AZURE,eastus2,Standard_D48ps_v6,spot,NA,0.417712,USD,Azure Retail Prices API,2025-12-18T04:44:39.648520 +AZURE,eastus2,Standard_D48s_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:39.648564 +AZURE,eastus2,Standard_D48s_v4,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:41.860102 +AZURE,eastus2,Standard_D48s_v4,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:44:41.860105 +AZURE,eastus2,Standard_D48s_v4,spot,NA,0.746035,USD,Azure Retail Prices API,2025-12-18T04:44:39.648532 +AZURE,eastus2,Standard_D48s_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:39.648740 +AZURE,eastus2,Standard_D48s_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:41.860283 +AZURE,eastus2,Standard_D48s_v5,reserved_3y,NA,0.852473,USD,Azure Retail Prices API,2025-12-18T04:44:41.860286 +AZURE,eastus2,Standard_D48s_v5,spot,NA,0.746035,USD,Azure Retail Prices API,2025-12-18T04:44:39.649790 +AZURE,eastus2,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485953 +AZURE,eastus2,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485967 +AZURE,eastus2,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485971 +AZURE,eastus2,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485960 +AZURE,eastus2,Standard_D4a_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:39.649737 +AZURE,eastus2,Standard_D4a_v4,reserved_1y,NA,0.114384,USD,Azure Retail Prices API,2025-12-18T04:44:41.861210 +AZURE,eastus2,Standard_D4a_v4,reserved_3y,NA,0.073668,USD,Azure Retail Prices API,2025-12-18T04:44:41.861213 +AZURE,eastus2,Standard_D4a_v4,spot,NA,0.044294,USD,Azure Retail Prices API,2025-12-18T04:44:39.649238 +AZURE,eastus2,Standard_D4ads_v5,on_demand,NA,0.206,USD,Azure Retail Prices API,2025-12-18T04:44:39.648389 +AZURE,eastus2,Standard_D4ads_v5,reserved_1y,NA,0.121575,USD,Azure Retail Prices API,2025-12-18T04:44:41.859890 +AZURE,eastus2,Standard_D4ads_v5,reserved_3y,NA,0.078272,USD,Azure Retail Prices API,2025-12-18T04:44:41.859892 +AZURE,eastus2,Standard_D4ads_v5,spot,NA,0.047524,USD,Azure Retail Prices API,2025-12-18T04:44:39.649419 +AZURE,eastus2,Standard_D4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:44:39.649771 +AZURE,eastus2,Standard_D4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:44:41.861249 +AZURE,eastus2,Standard_D4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:44:41.861252 +AZURE,eastus2,Standard_D4ads_v6,spot,NA,0.044232,USD,Azure Retail Prices API,2025-12-18T04:44:39.649732 +AZURE,eastus2,Standard_D4as_v5,on_demand,NA,0.172,USD,Azure Retail Prices API,2025-12-18T04:44:39.648209 +AZURE,eastus2,Standard_D4as_v5,reserved_1y,NA,0.101484,USD,Azure Retail Prices API,2025-12-18T04:44:41.859704 +AZURE,eastus2,Standard_D4as_v5,reserved_3y,NA,0.065373,USD,Azure Retail Prices API,2025-12-18T04:44:41.859707 +AZURE,eastus2,Standard_D4as_v5,spot,NA,0.03968,USD,Azure Retail Prices API,2025-12-18T04:44:39.648326 +AZURE,eastus2,Standard_D4d_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:39.649677 +AZURE,eastus2,Standard_D4d_v4,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:44:41.861150 +AZURE,eastus2,Standard_D4d_v4,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:44:41.861152 +AZURE,eastus2,Standard_D4d_v4,spot,NA,0.070286,USD,Azure Retail Prices API,2025-12-18T04:44:39.649653 +AZURE,eastus2,Standard_D4ds_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:39.649215 +AZURE,eastus2,Standard_D4ds_v4,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:44:41.860730 +AZURE,eastus2,Standard_D4ds_v4,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:44:41.860733 +AZURE,eastus2,Standard_D4ds_v4,spot,NA,0.070286,USD,Azure Retail Prices API,2025-12-18T04:44:39.648375 +AZURE,eastus2,Standard_D4ds_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:39.649056 +AZURE,eastus2,Standard_D4ds_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:44:41.860629 +AZURE,eastus2,Standard_D4ds_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:44:41.860631 +AZURE,eastus2,Standard_D4ds_v5,spot,NA,0.070286,USD,Azure Retail Prices API,2025-12-18T04:44:39.649636 +AZURE,eastus2,Standard_D4ds_v6,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:44:39.648203 +AZURE,eastus2,Standard_D4ds_v6,reserved_1y,NA,0.154452,USD,Azure Retail Prices API,2025-12-18T04:44:41.859693 +AZURE,eastus2,Standard_D4ds_v6,reserved_3y,NA,0.097184,USD,Azure Retail Prices API,2025-12-18T04:44:41.859696 +AZURE,eastus2,Standard_D4ds_v6,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:44:39.648415 +AZURE,eastus2,Standard_D4pds_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:44:39.649010 +AZURE,eastus2,Standard_D4pds_v6,reserved_1y,NA,0.108333,USD,Azure Retail Prices API,2025-12-18T04:44:41.860579 +AZURE,eastus2,Standard_D4pds_v6,reserved_3y,NA,0.069787,USD,Azure Retail Prices API,2025-12-18T04:44:41.860582 +AZURE,eastus2,Standard_D4pds_v6,spot,NA,0.045614,USD,Azure Retail Prices API,2025-12-18T04:44:39.649077 +AZURE,eastus2,Standard_D4ps_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:44:39.648934 +AZURE,eastus2,Standard_D4ps_v6,reserved_1y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:44:41.860506 +AZURE,eastus2,Standard_D4ps_v6,reserved_3y,NA,0.053349,USD,Azure Retail Prices API,2025-12-18T04:44:41.860509 +AZURE,eastus2,Standard_D4ps_v6,spot,NA,0.034706,USD,Azure Retail Prices API,2025-12-18T04:44:39.649538 +AZURE,eastus2,Standard_D4s_v3,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:39.648118 +AZURE,eastus2,Standard_D4s_v3,reserved_1y,NA,0.114498,USD,Azure Retail Prices API,2025-12-18T04:44:41.859616 +AZURE,eastus2,Standard_D4s_v3,reserved_3y,NA,0.073706,USD,Azure Retail Prices API,2025-12-18T04:44:41.859619 +AZURE,eastus2,Standard_D4s_v3,spot,NA,0.057082,USD,Azure Retail Prices API,2025-12-18T04:44:39.649198 +AZURE,eastus2,Standard_D4s_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:39.649799 +AZURE,eastus2,Standard_D4s_v4,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:44:41.861266 +AZURE,eastus2,Standard_D4s_v4,reserved_3y,NA,0.072945,USD,Azure Retail Prices API,2025-12-18T04:44:41.861269 +AZURE,eastus2,Standard_D4s_v4,spot,NA,0.06217,USD,Azure Retail Prices API,2025-12-18T04:44:39.649396 +AZURE,eastus2,Standard_D4s_v5,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:39.649661 +AZURE,eastus2,Standard_D4s_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:44:41.861114 +AZURE,eastus2,Standard_D4s_v5,reserved_3y,NA,0.071043,USD,Azure Retail Prices API,2025-12-18T04:44:41.861117 +AZURE,eastus2,Standard_D4s_v5,spot,NA,0.06217,USD,Azure Retail Prices API,2025-12-18T04:44:39.649666 +AZURE,eastus2,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486890 +AZURE,eastus2,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486906 +AZURE,eastus2,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486913 +AZURE,eastus2,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486898 +AZURE,eastus2,Standard_D64_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:39.649416 +AZURE,eastus2,Standard_D64_v3,reserved_1y,NA,1.831963,USD,Azure Retail Prices API,2025-12-18T04:44:41.860906 +AZURE,eastus2,Standard_D64_v3,reserved_3y,NA,1.179148,USD,Azure Retail Prices API,2025-12-18T04:44:41.860909 +AZURE,eastus2,Standard_D64_v3,spot,NA,0.913306,USD,Azure Retail Prices API,2025-12-18T04:44:39.649473 +AZURE,eastus2,Standard_D64a_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:39.649093 +AZURE,eastus2,Standard_D64a_v4,reserved_1y,NA,1.830137,USD,Azure Retail Prices API,2025-12-18T04:44:41.860660 +AZURE,eastus2,Standard_D64a_v4,reserved_3y,NA,1.178691,USD,Azure Retail Prices API,2025-12-18T04:44:41.860663 +AZURE,eastus2,Standard_D64a_v4,spot,NA,0.70871,USD,Azure Retail Prices API,2025-12-18T04:44:39.648217 +AZURE,eastus2,Standard_D64ads_v5,on_demand,NA,3.296,USD,Azure Retail Prices API,2025-12-18T04:44:39.648440 +AZURE,eastus2,Standard_D64ads_v5,reserved_1y,NA,1.944635,USD,Azure Retail Prices API,2025-12-18T04:44:41.859946 +AZURE,eastus2,Standard_D64ads_v5,reserved_3y,NA,1.252473,USD,Azure Retail Prices API,2025-12-18T04:44:41.859949 +AZURE,eastus2,Standard_D64ads_v5,spot,NA,0.760387,USD,Azure Retail Prices API,2025-12-18T04:44:39.648443 +AZURE,eastus2,Standard_D64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:44:39.648306 +AZURE,eastus2,Standard_D64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:44:41.859804 +AZURE,eastus2,Standard_D64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:44:41.859806 +AZURE,eastus2,Standard_D64ads_v6,spot,NA,0.707712,USD,Azure Retail Prices API,2025-12-18T04:44:39.649557 +AZURE,eastus2,Standard_D64as_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:39.648188 +AZURE,eastus2,Standard_D64as_v4,reserved_1y,NA,1.830137,USD,Azure Retail Prices API,2025-12-18T04:44:41.859676 +AZURE,eastus2,Standard_D64as_v4,reserved_3y,NA,1.178691,USD,Azure Retail Prices API,2025-12-18T04:44:41.859679 +AZURE,eastus2,Standard_D64as_v4,spot,NA,0.70871,USD,Azure Retail Prices API,2025-12-18T04:44:39.649158 +AZURE,eastus2,Standard_D64as_v5,on_demand,NA,2.752,USD,Azure Retail Prices API,2025-12-18T04:44:39.648905 +AZURE,eastus2,Standard_D64as_v5,reserved_1y,NA,1.62363,USD,Azure Retail Prices API,2025-12-18T04:44:41.860483 +AZURE,eastus2,Standard_D64as_v5,reserved_3y,NA,1.045776,USD,Azure Retail Prices API,2025-12-18T04:44:41.860486 +AZURE,eastus2,Standard_D64as_v5,spot,NA,0.634886,USD,Azure Retail Prices API,2025-12-18T04:44:39.648962 +AZURE,eastus2,Standard_D64d_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:39.648515 +AZURE,eastus2,Standard_D64d_v4,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:44:41.860057 +AZURE,eastus2,Standard_D64d_v4,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:44:41.860059 +AZURE,eastus2,Standard_D64d_v4,spot,NA,1.124576,USD,Azure Retail Prices API,2025-12-18T04:44:39.648566 +AZURE,eastus2,Standard_D64ds_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:39.648965 +AZURE,eastus2,Standard_D64ds_v4,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:44:41.860544 +AZURE,eastus2,Standard_D64ds_v4,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:44:41.860547 +AZURE,eastus2,Standard_D64ds_v4,spot,NA,1.124576,USD,Azure Retail Prices API,2025-12-18T04:44:39.649691 +AZURE,eastus2,Standard_D64ds_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:39.649260 +AZURE,eastus2,Standard_D64ds_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:44:41.860774 +AZURE,eastus2,Standard_D64ds_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:44:41.860776 +AZURE,eastus2,Standard_D64ds_v5,spot,NA,1.124576,USD,Azure Retail Prices API,2025-12-18T04:44:39.648957 +AZURE,eastus2,Standard_D64ds_v6,on_demand,NA,3.987,USD,Azure Retail Prices API,2025-12-18T04:44:39.649685 +AZURE,eastus2,Standard_D64ds_v6,reserved_1y,NA,2.471689,USD,Azure Retail Prices API,2025-12-18T04:44:41.861161 +AZURE,eastus2,Standard_D64ds_v6,reserved_3y,NA,1.554756,USD,Azure Retail Prices API,2025-12-18T04:44:41.861163 +AZURE,eastus2,Standard_D64ds_v6,spot,NA,0.736798,USD,Azure Retail Prices API,2025-12-18T04:44:39.649110 +AZURE,eastus2,Standard_D64pds_v6,on_demand,NA,2.938,USD,Azure Retail Prices API,2025-12-18T04:44:39.648951 +AZURE,eastus2,Standard_D64pds_v6,reserved_1y,NA,1.733219,USD,Azure Retail Prices API,2025-12-18T04:44:41.860538 +AZURE,eastus2,Standard_D64pds_v6,reserved_3y,NA,1.116286,USD,Azure Retail Prices API,2025-12-18T04:44:41.860541 +AZURE,eastus2,Standard_D64pds_v6,spot,NA,0.72833,USD,Azure Retail Prices API,2025-12-18T04:44:39.649555 +AZURE,eastus2,Standard_D64ps_v6,on_demand,NA,2.246,USD,Azure Retail Prices API,2025-12-18T04:44:39.648234 +AZURE,eastus2,Standard_D64ps_v6,reserved_1y,NA,1.325342,USD,Azure Retail Prices API,2025-12-18T04:44:41.859732 +AZURE,eastus2,Standard_D64ps_v6,reserved_3y,NA,0.853615,USD,Azure Retail Prices API,2025-12-18T04:44:41.859735 +AZURE,eastus2,Standard_D64ps_v6,spot,NA,0.556783,USD,Azure Retail Prices API,2025-12-18T04:44:39.648650 +AZURE,eastus2,Standard_D64s_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:39.648268 +AZURE,eastus2,Standard_D64s_v3,reserved_1y,NA,1.831963,USD,Azure Retail Prices API,2025-12-18T04:44:41.859764 +AZURE,eastus2,Standard_D64s_v3,reserved_3y,NA,1.179148,USD,Azure Retail Prices API,2025-12-18T04:44:41.859767 +AZURE,eastus2,Standard_D64s_v3,spot,NA,0.913306,USD,Azure Retail Prices API,2025-12-18T04:44:39.648706 +AZURE,eastus2,Standard_D64s_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:39.649408 +AZURE,eastus2,Standard_D64s_v4,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:44:41.860895 +AZURE,eastus2,Standard_D64s_v4,reserved_3y,NA,1.167352,USD,Azure Retail Prices API,2025-12-18T04:44:41.860898 +AZURE,eastus2,Standard_D64s_v4,spot,NA,0.994714,USD,Azure Retail Prices API,2025-12-18T04:44:39.648994 +AZURE,eastus2,Standard_D64s_v5,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:39.648206 +AZURE,eastus2,Standard_D64s_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:44:41.859699 +AZURE,eastus2,Standard_D64s_v5,reserved_3y,NA,1.136644,USD,Azure Retail Prices API,2025-12-18T04:44:41.859702 +AZURE,eastus2,Standard_D64s_v5,spot,NA,0.994714,USD,Azure Retail Prices API,2025-12-18T04:44:39.648454 +AZURE,eastus2,Standard_D8_v3,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:39.648289 +AZURE,eastus2,Standard_D8_v3,reserved_1y,NA,0.228995,USD,Azure Retail Prices API,2025-12-18T04:44:41.859781 +AZURE,eastus2,Standard_D8_v3,reserved_3y,NA,0.147412,USD,Azure Retail Prices API,2025-12-18T04:44:41.859784 +AZURE,eastus2,Standard_D8_v3,spot,NA,0.114163,USD,Azure Retail Prices API,2025-12-18T04:44:39.648140 +AZURE,eastus2,Standard_D8a_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:39.648273 +AZURE,eastus2,Standard_D8a_v4,reserved_1y,NA,0.228767,USD,Azure Retail Prices API,2025-12-18T04:44:41.859770 +AZURE,eastus2,Standard_D8a_v4,reserved_3y,NA,0.147336,USD,Azure Retail Prices API,2025-12-18T04:44:41.859773 +AZURE,eastus2,Standard_D8a_v4,spot,NA,0.088589,USD,Azure Retail Prices API,2025-12-18T04:44:39.648309 +AZURE,eastus2,Standard_D8ads_v5,on_demand,NA,0.412,USD,Azure Retail Prices API,2025-12-18T04:44:39.648121 +AZURE,eastus2,Standard_D8ads_v5,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:44:41.859622 +AZURE,eastus2,Standard_D8ads_v5,reserved_3y,NA,0.156545,USD,Azure Retail Prices API,2025-12-18T04:44:41.859625 +AZURE,eastus2,Standard_D8ads_v5,spot,NA,0.095048,USD,Azure Retail Prices API,2025-12-18T04:44:39.649603 +AZURE,eastus2,Standard_D8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:44:39.648869 +AZURE,eastus2,Standard_D8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:44:41.860418 +AZURE,eastus2,Standard_D8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:44:41.860425 +AZURE,eastus2,Standard_D8ads_v6,spot,NA,0.088464,USD,Azure Retail Prices API,2025-12-18T04:44:39.648232 +AZURE,eastus2,Standard_D8as_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:39.648546 +AZURE,eastus2,Standard_D8as_v4,reserved_1y,NA,0.228767,USD,Azure Retail Prices API,2025-12-18T04:44:41.860079 +AZURE,eastus2,Standard_D8as_v4,reserved_3y,NA,0.147336,USD,Azure Retail Prices API,2025-12-18T04:44:41.860082 +AZURE,eastus2,Standard_D8as_v4,spot,NA,0.088589,USD,Azure Retail Prices API,2025-12-18T04:44:39.649325 +AZURE,eastus2,Standard_D8as_v5,on_demand,NA,0.344,USD,Azure Retail Prices API,2025-12-18T04:44:39.649043 +AZURE,eastus2,Standard_D8as_v5,reserved_1y,NA,0.202968,USD,Azure Retail Prices API,2025-12-18T04:44:41.860607 +AZURE,eastus2,Standard_D8as_v5,reserved_3y,NA,0.130708,USD,Azure Retail Prices API,2025-12-18T04:44:41.860610 +AZURE,eastus2,Standard_D8as_v5,spot,NA,0.079361,USD,Azure Retail Prices API,2025-12-18T04:44:39.648900 +AZURE,eastus2,Standard_D8d_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:39.648812 +AZURE,eastus2,Standard_D8d_v4,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:44:41.860351 +AZURE,eastus2,Standard_D8d_v4,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:44:41.860355 +AZURE,eastus2,Standard_D8d_v4,spot,NA,0.140572,USD,Azure Retail Prices API,2025-12-18T04:44:39.649619 +AZURE,eastus2,Standard_D8ds_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:39.648711 +AZURE,eastus2,Standard_D8ds_v4,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:44:41.860261 +AZURE,eastus2,Standard_D8ds_v4,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:44:41.860264 +AZURE,eastus2,Standard_D8ds_v4,spot,NA,0.140572,USD,Azure Retail Prices API,2025-12-18T04:44:39.649608 +AZURE,eastus2,Standard_D8ds_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:39.648503 +AZURE,eastus2,Standard_D8ds_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:44:41.860039 +AZURE,eastus2,Standard_D8ds_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:44:41.860043 +AZURE,eastus2,Standard_D8ds_v5,spot,NA,0.140572,USD,Azure Retail Prices API,2025-12-18T04:44:39.648748 +AZURE,eastus2,Standard_D8ds_v6,on_demand,NA,0.498,USD,Azure Retail Prices API,2025-12-18T04:44:39.648535 +AZURE,eastus2,Standard_D8ds_v6,reserved_1y,NA,0.308904,USD,Azure Retail Prices API,2025-12-18T04:44:41.860062 +AZURE,eastus2,Standard_D8ds_v6,reserved_3y,NA,0.19433,USD,Azure Retail Prices API,2025-12-18T04:44:41.860065 +AZURE,eastus2,Standard_D8ds_v6,spot,NA,0.09203,USD,Azure Retail Prices API,2025-12-18T04:44:39.648700 +AZURE,eastus2,Standard_D8pds_v6,on_demand,NA,0.367,USD,Azure Retail Prices API,2025-12-18T04:44:39.649711 +AZURE,eastus2,Standard_D8pds_v6,reserved_1y,NA,0.216667,USD,Azure Retail Prices API,2025-12-18T04:44:41.861183 +AZURE,eastus2,Standard_D8pds_v6,reserved_3y,NA,0.139536,USD,Azure Retail Prices API,2025-12-18T04:44:41.861185 +AZURE,eastus2,Standard_D8pds_v6,spot,NA,0.090979,USD,Azure Retail Prices API,2025-12-18T04:44:39.648795 +AZURE,eastus2,Standard_D8ps_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:44:39.649779 +AZURE,eastus2,Standard_D8ps_v6,reserved_1y,NA,0.165639,USD,Azure Retail Prices API,2025-12-18T04:44:41.861255 +AZURE,eastus2,Standard_D8ps_v6,reserved_3y,NA,0.106697,USD,Azure Retail Prices API,2025-12-18T04:44:41.861258 +AZURE,eastus2,Standard_D8ps_v6,spot,NA,0.06966,USD,Azure Retail Prices API,2025-12-18T04:44:39.648343 +AZURE,eastus2,Standard_D8s_v3,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:39.648594 +AZURE,eastus2,Standard_D8s_v3,reserved_1y,NA,0.228995,USD,Azure Retail Prices API,2025-12-18T04:44:41.860152 +AZURE,eastus2,Standard_D8s_v3,reserved_3y,NA,0.147412,USD,Azure Retail Prices API,2025-12-18T04:44:41.860156 +AZURE,eastus2,Standard_D8s_v3,spot,NA,0.114163,USD,Azure Retail Prices API,2025-12-18T04:44:39.649021 +AZURE,eastus2,Standard_D8s_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:39.649514 +AZURE,eastus2,Standard_D8s_v4,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:44:41.861004 +AZURE,eastus2,Standard_D8s_v4,reserved_3y,NA,0.145928,USD,Azure Retail Prices API,2025-12-18T04:44:41.861006 +AZURE,eastus2,Standard_D8s_v4,spot,NA,0.124339,USD,Azure Retail Prices API,2025-12-18T04:44:39.648746 +AZURE,eastus2,Standard_D8s_v5,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:39.648220 +AZURE,eastus2,Standard_D8s_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:44:41.859716 +AZURE,eastus2,Standard_D8s_v5,reserved_3y,NA,0.142085,USD,Azure Retail Prices API,2025-12-18T04:44:41.859718 +AZURE,eastus2,Standard_D8s_v5,spot,NA,0.124339,USD,Azure Retail Prices API,2025-12-18T04:44:39.648801 +AZURE,eastus2,Standard_D96a_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:39.649765 +AZURE,eastus2,Standard_D96a_v4,reserved_1y,NA,2.745205,USD,Azure Retail Prices API,2025-12-18T04:44:41.861243 +AZURE,eastus2,Standard_D96a_v4,reserved_3y,NA,1.768037,USD,Azure Retail Prices API,2025-12-18T04:44:41.861246 +AZURE,eastus2,Standard_D96a_v4,spot,NA,1.063066,USD,Azure Retail Prices API,2025-12-18T04:44:39.649223 +AZURE,eastus2,Standard_D96ads_v5,on_demand,NA,9.36,USD,Azure Retail Prices API,2025-12-18T04:44:39.649249 +AZURE,eastus2,Standard_D96ads_v5,reserved_1y,NA,2.917009,USD,Azure Retail Prices API,2025-12-18T04:44:41.860874 +AZURE,eastus2,Standard_D96ads_v5,reserved_3y,NA,1.878729,USD,Azure Retail Prices API,2025-12-18T04:44:41.860877 +AZURE,eastus2,Standard_D96ads_v5,spot,NA,1.140581,USD,Azure Retail Prices API,2025-12-18T04:44:39.649068 +AZURE,eastus2,Standard_D96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:44:39.648276 +AZURE,eastus2,Standard_D96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:44:41.859775 +AZURE,eastus2,Standard_D96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:44:41.859779 +AZURE,eastus2,Standard_D96ads_v6,spot,NA,1.061568,USD,Azure Retail Prices API,2025-12-18T04:44:39.649102 +AZURE,eastus2,Standard_D96as_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:39.648340 +AZURE,eastus2,Standard_D96as_v4,reserved_1y,NA,2.745205,USD,Azure Retail Prices API,2025-12-18T04:44:41.859831 +AZURE,eastus2,Standard_D96as_v4,reserved_3y,NA,1.768037,USD,Azure Retail Prices API,2025-12-18T04:44:41.859835 +AZURE,eastus2,Standard_D96as_v4,spot,NA,1.063066,USD,Azure Retail Prices API,2025-12-18T04:44:39.649492 +AZURE,eastus2,Standard_D96as_v5,on_demand,NA,8.544,USD,Azure Retail Prices API,2025-12-18T04:44:39.649362 +AZURE,eastus2,Standard_D96as_v5,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:44:41.861232 +AZURE,eastus2,Standard_D96as_v5,reserved_3y,NA,1.568645,USD,Azure Retail Prices API,2025-12-18T04:44:41.861235 +AZURE,eastus2,Standard_D96as_v5,spot,NA,0.95233,USD,Azure Retail Prices API,2025-12-18T04:44:39.648997 +AZURE,eastus2,Standard_D96ds_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:39.649045 +AZURE,eastus2,Standard_D96ds_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:44:41.860612 +AZURE,eastus2,Standard_D96ds_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:44:41.860615 +AZURE,eastus2,Standard_D96ds_v5,spot,NA,1.686864,USD,Azure Retail Prices API,2025-12-18T04:44:39.649184 +AZURE,eastus2,Standard_D96ds_v6,on_demand,NA,5.98,USD,Azure Retail Prices API,2025-12-18T04:44:39.649519 +AZURE,eastus2,Standard_D96ds_v6,reserved_1y,NA,3.707534,USD,Azure Retail Prices API,2025-12-18T04:44:41.861009 +AZURE,eastus2,Standard_D96ds_v6,reserved_3y,NA,2.332154,USD,Azure Retail Prices API,2025-12-18T04:44:41.861012 +AZURE,eastus2,Standard_D96ds_v6,spot,NA,1.105104,USD,Azure Retail Prices API,2025-12-18T04:44:39.648483 +AZURE,eastus2,Standard_D96pds_v6,on_demand,NA,4.406,USD,Azure Retail Prices API,2025-12-18T04:44:39.648647 +AZURE,eastus2,Standard_D96pds_v6,reserved_1y,NA,2.599772,USD,Azure Retail Prices API,2025-12-18T04:44:41.860212 +AZURE,eastus2,Standard_D96pds_v6,reserved_3y,NA,1.674429,USD,Azure Retail Prices API,2025-12-18T04:44:41.860215 +AZURE,eastus2,Standard_D96pds_v6,spot,NA,1.092247,USD,Azure Retail Prices API,2025-12-18T04:44:39.648858 +AZURE,eastus2,Standard_D96ps_v6,on_demand,NA,3.37,USD,Azure Retail Prices API,2025-12-18T04:44:39.649600 +AZURE,eastus2,Standard_D96ps_v6,reserved_1y,NA,1.988014,USD,Azure Retail Prices API,2025-12-18T04:44:41.861072 +AZURE,eastus2,Standard_D96ps_v6,reserved_3y,NA,1.280441,USD,Azure Retail Prices API,2025-12-18T04:44:41.861075 +AZURE,eastus2,Standard_D96ps_v6,spot,NA,0.835423,USD,Azure Retail Prices API,2025-12-18T04:44:39.649399 +AZURE,eastus2,Standard_D96s_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:39.648449 +AZURE,eastus2,Standard_D96s_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:44:41.859964 +AZURE,eastus2,Standard_D96s_v5,reserved_3y,NA,1.704947,USD,Azure Retail Prices API,2025-12-18T04:44:41.859968 +AZURE,eastus2,Standard_D96s_v5,spot,NA,1.49207,USD,Azure Retail Prices API,2025-12-18T04:44:39.649190 +AZURE,eastus2,Standard_DC16ads_v5,on_demand,NA,0.824,USD,Azure Retail Prices API,2025-12-18T04:44:39.648787 +AZURE,eastus2,Standard_DC16ads_v5,reserved_1y,NA,0.659247,USD,Azure Retail Prices API,2025-12-18T04:44:41.860343 +AZURE,eastus2,Standard_DC16ads_v5,reserved_3y,NA,0.494406,USD,Azure Retail Prices API,2025-12-18T04:44:41.860347 +AZURE,eastus2,Standard_DC16ads_v5,spot,NA,0.155489,USD,Azure Retail Prices API,2025-12-18T04:44:39.648735 +AZURE,eastus2,Standard_DC16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:44:39.649024 +AZURE,eastus2,Standard_DC16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:44:41.860596 +AZURE,eastus2,Standard_DC16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:44:41.860599 +AZURE,eastus2,Standard_DC16ads_v6,spot,NA,0.168538,USD,Azure Retail Prices API,2025-12-18T04:44:39.649018 +AZURE,eastus2,Standard_DC16as_v5,on_demand,NA,0.688,USD,Azure Retail Prices API,2025-12-18T04:44:39.648403 +AZURE,eastus2,Standard_DC16as_v5,reserved_1y,NA,0.550457,USD,Azure Retail Prices API,2025-12-18T04:44:41.859912 +AZURE,eastus2,Standard_DC16as_v5,reserved_3y,NA,0.412785,USD,Azure Retail Prices API,2025-12-18T04:44:41.859915 +AZURE,eastus2,Standard_DC16as_v5,spot,NA,0.129826,USD,Azure Retail Prices API,2025-12-18T04:44:39.649497 +AZURE,eastus2,Standard_DC2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:44:39.649639 +AZURE,eastus2,Standard_DC2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:44:41.861098 +AZURE,eastus2,Standard_DC2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:44:41.861101 +AZURE,eastus2,Standard_DC2ads_v6,spot,NA,0.021067,USD,Azure Retail Prices API,2025-12-18T04:44:39.649455 +AZURE,eastus2,Standard_DC32ads_v5,on_demand,NA,1.648,USD,Azure Retail Prices API,2025-12-18T04:44:39.649365 +AZURE,eastus2,Standard_DC32ads_v5,reserved_1y,NA,1.318379,USD,Azure Retail Prices API,2025-12-18T04:44:41.860864 +AZURE,eastus2,Standard_DC32ads_v5,reserved_3y,NA,0.988813,USD,Azure Retail Prices API,2025-12-18T04:44:41.860866 +AZURE,eastus2,Standard_DC32ads_v5,spot,NA,0.310978,USD,Azure Retail Prices API,2025-12-18T04:44:39.649272 +AZURE,eastus2,Standard_DC32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:44:39.649489 +AZURE,eastus2,Standard_DC32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:44:41.860988 +AZURE,eastus2,Standard_DC32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:44:41.860991 +AZURE,eastus2,Standard_DC32ads_v6,spot,NA,0.337075,USD,Azure Retail Prices API,2025-12-18T04:44:39.649331 +AZURE,eastus2,Standard_DC32as_v5,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:44:39.649606 +AZURE,eastus2,Standard_DC32as_v5,reserved_1y,NA,1.100799,USD,Azure Retail Prices API,2025-12-18T04:44:41.861078 +AZURE,eastus2,Standard_DC32as_v5,reserved_3y,NA,0.825609,USD,Azure Retail Prices API,2025-12-18T04:44:41.861080 +AZURE,eastus2,Standard_DC32as_v5,spot,NA,0.259651,USD,Azure Retail Prices API,2025-12-18T04:44:39.649147 +AZURE,eastus2,Standard_DC48ads_v5,on_demand,NA,2.472,USD,Azure Retail Prices API,2025-12-18T04:44:39.648625 +AZURE,eastus2,Standard_DC48ads_v5,reserved_1y,NA,1.977626,USD,Azure Retail Prices API,2025-12-18T04:44:41.860180 +AZURE,eastus2,Standard_DC48ads_v5,reserved_3y,NA,1.483181,USD,Azure Retail Prices API,2025-12-18T04:44:41.860182 +AZURE,eastus2,Standard_DC48ads_v5,spot,NA,0.466466,USD,Azure Retail Prices API,2025-12-18T04:44:39.649029 +AZURE,eastus2,Standard_DC48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:44:39.648468 +AZURE,eastus2,Standard_DC48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:44:41.859988 +AZURE,eastus2,Standard_DC48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:44:41.859991 +AZURE,eastus2,Standard_DC48ads_v6,spot,NA,0.505613,USD,Azure Retail Prices API,2025-12-18T04:44:39.648279 +AZURE,eastus2,Standard_DC48as_v5,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:44:39.648489 +AZURE,eastus2,Standard_DC48as_v5,reserved_1y,NA,1.651256,USD,Azure Retail Prices API,2025-12-18T04:44:41.860017 +AZURE,eastus2,Standard_DC48as_v5,reserved_3y,NA,1.238394,USD,Azure Retail Prices API,2025-12-18T04:44:41.860020 +AZURE,eastus2,Standard_DC48as_v5,spot,NA,0.389477,USD,Azure Retail Prices API,2025-12-18T04:44:39.648575 +AZURE,eastus2,Standard_DC4ads_v5,on_demand,NA,0.206,USD,Azure Retail Prices API,2025-12-18T04:44:39.648645 +AZURE,eastus2,Standard_DC4ads_v5,reserved_1y,NA,0.16484,USD,Azure Retail Prices API,2025-12-18T04:44:41.860207 +AZURE,eastus2,Standard_DC4ads_v5,reserved_3y,NA,0.123592,USD,Azure Retail Prices API,2025-12-18T04:44:41.860209 +AZURE,eastus2,Standard_DC4ads_v5,spot,NA,0.038872,USD,Azure Retail Prices API,2025-12-18T04:44:39.648466 +AZURE,eastus2,Standard_DC4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:44:39.649099 +AZURE,eastus2,Standard_DC4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:44:41.860671 +AZURE,eastus2,Standard_DC4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:44:41.860673 +AZURE,eastus2,Standard_DC4ads_v6,spot,NA,0.042134,USD,Azure Retail Prices API,2025-12-18T04:44:39.649457 +AZURE,eastus2,Standard_DC4as_v5,on_demand,NA,0.172,USD,Azure Retail Prices API,2025-12-18T04:44:39.649658 +AZURE,eastus2,Standard_DC4as_v5,reserved_1y,NA,0.137557,USD,Azure Retail Prices API,2025-12-18T04:44:41.861109 +AZURE,eastus2,Standard_DC4as_v5,reserved_3y,NA,0.103196,USD,Azure Retail Prices API,2025-12-18T04:44:41.861111 +AZURE,eastus2,Standard_DC4as_v5,spot,NA,0.032456,USD,Azure Retail Prices API,2025-12-18T04:44:39.649478 +AZURE,eastus2,Standard_DC64ads_v5,on_demand,NA,3.296,USD,Azure Retail Prices API,2025-12-18T04:44:39.648751 +AZURE,eastus2,Standard_DC64ads_v5,reserved_1y,NA,2.636758,USD,Azure Retail Prices API,2025-12-18T04:44:41.860294 +AZURE,eastus2,Standard_DC64ads_v5,reserved_3y,NA,1.977588,USD,Azure Retail Prices API,2025-12-18T04:44:41.860297 +AZURE,eastus2,Standard_DC64ads_v5,spot,NA,0.621955,USD,Azure Retail Prices API,2025-12-18T04:44:39.648518 +AZURE,eastus2,Standard_DC64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:44:39.649304 +AZURE,eastus2,Standard_DC64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:44:41.860812 +AZURE,eastus2,Standard_DC64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:44:41.860814 +AZURE,eastus2,Standard_DC64ads_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:44:39.648991 +AZURE,eastus2,Standard_DC64as_v5,on_demand,NA,2.752,USD,Azure Retail Prices API,2025-12-18T04:44:39.649164 +AZURE,eastus2,Standard_DC64as_v5,reserved_1y,NA,2.201598,USD,Azure Retail Prices API,2025-12-18T04:44:41.860697 +AZURE,eastus2,Standard_DC64as_v5,reserved_3y,NA,1.651218,USD,Azure Retail Prices API,2025-12-18T04:44:41.860700 +AZURE,eastus2,Standard_DC64as_v5,spot,NA,0.519302,USD,Azure Retail Prices API,2025-12-18T04:44:39.648837 +AZURE,eastus2,Standard_DC8ads_v5,on_demand,NA,0.412,USD,Azure Retail Prices API,2025-12-18T04:44:39.649048 +AZURE,eastus2,Standard_DC8ads_v5,reserved_1y,NA,0.329566,USD,Azure Retail Prices API,2025-12-18T04:44:41.860618 +AZURE,eastus2,Standard_DC8ads_v5,reserved_3y,NA,0.247184,USD,Azure Retail Prices API,2025-12-18T04:44:41.860621 +AZURE,eastus2,Standard_DC8ads_v5,spot,NA,0.077744,USD,Azure Retail Prices API,2025-12-18T04:44:39.649316 +AZURE,eastus2,Standard_DC8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:44:39.649070 +AZURE,eastus2,Standard_DC8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:44:41.860644 +AZURE,eastus2,Standard_DC8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:44:41.860647 +AZURE,eastus2,Standard_DC8ads_v6,spot,NA,0.084269,USD,Azure Retail Prices API,2025-12-18T04:44:39.649284 +AZURE,eastus2,Standard_DC8as_v5,on_demand,NA,0.344,USD,Azure Retail Prices API,2025-12-18T04:44:39.649287 +AZURE,eastus2,Standard_DC8as_v5,reserved_1y,NA,0.275228,USD,Azure Retail Prices API,2025-12-18T04:44:41.860796 +AZURE,eastus2,Standard_DC8as_v5,reserved_3y,NA,0.206393,USD,Azure Retail Prices API,2025-12-18T04:44:41.860798 +AZURE,eastus2,Standard_DC8as_v5,spot,NA,0.064913,USD,Azure Retail Prices API,2025-12-18T04:44:39.649212 +AZURE,eastus2,Standard_DC96ads_v5,on_demand,NA,4.944,USD,Azure Retail Prices API,2025-12-18T04:44:39.648367 +AZURE,eastus2,Standard_DC96ads_v5,reserved_1y,NA,3.955251,USD,Azure Retail Prices API,2025-12-18T04:44:41.859878 +AZURE,eastus2,Standard_DC96ads_v5,reserved_3y,NA,2.9664,USD,Azure Retail Prices API,2025-12-18T04:44:41.859881 +AZURE,eastus2,Standard_DC96ads_v5,spot,NA,0.932933,USD,Azure Retail Prices API,2025-12-18T04:44:39.648526 +AZURE,eastus2,Standard_DC96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:44:39.649714 +AZURE,eastus2,Standard_DC96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:44:41.861188 +AZURE,eastus2,Standard_DC96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:44:41.861191 +AZURE,eastus2,Standard_DC96ads_v6,spot,NA,1.011226,USD,Azure Retail Prices API,2025-12-18T04:44:39.649293 +AZURE,eastus2,Standard_DC96as_v5,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:44:39.648872 +AZURE,eastus2,Standard_DC96as_v5,reserved_1y,NA,3.302397,USD,Azure Retail Prices API,2025-12-18T04:44:41.860430 +AZURE,eastus2,Standard_DC96as_v5,reserved_3y,NA,2.476788,USD,Azure Retail Prices API,2025-12-18T04:44:41.860435 +AZURE,eastus2,Standard_DC96as_v5,spot,NA,0.778954,USD,Azure Retail Prices API,2025-12-18T04:44:39.649266 +AZURE,eastus2,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495055 +AZURE,eastus2,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495083 +AZURE,eastus2,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495091 +AZURE,eastus2,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495075 +AZURE,eastus2,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495855 +AZURE,eastus2,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495869 +AZURE,eastus2,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495876 +AZURE,eastus2,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495862 +AZURE,eastus2,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496724 +AZURE,eastus2,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496734 +AZURE,eastus2,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496738 +AZURE,eastus2,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496728 +AZURE,eastus2,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497600 +AZURE,eastus2,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497609 +AZURE,eastus2,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497613 +AZURE,eastus2,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497604 +AZURE,eastus2,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491447 +AZURE,eastus2,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491455 +AZURE,eastus2,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491459 +AZURE,eastus2,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491451 +AZURE,eastus2,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492193 +AZURE,eastus2,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492209 +AZURE,eastus2,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492216 +AZURE,eastus2,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492200 +AZURE,eastus2,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492898 +AZURE,eastus2,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492906 +AZURE,eastus2,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492911 +AZURE,eastus2,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492902 +AZURE,eastus2,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493643 +AZURE,eastus2,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493651 +AZURE,eastus2,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493655 +AZURE,eastus2,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493647 +AZURE,eastus2,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494356 +AZURE,eastus2,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494364 +AZURE,eastus2,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494368 +AZURE,eastus2,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494360 +AZURE,eastus2,Standard_E128ds_v6,on_demand,NA,10.465,USD,Azure Retail Prices API,2025-12-18T04:44:39.648886 +AZURE,eastus2,Standard_E128ds_v6,reserved_1y,NA,6.48847,USD,Azure Retail Prices API,2025-12-18T04:44:41.860460 +AZURE,eastus2,Standard_E128ds_v6,reserved_3y,NA,4.081469,USD,Azure Retail Prices API,2025-12-18T04:44:41.860463 +AZURE,eastus2,Standard_E128ds_v6,spot,NA,1.933932,USD,Azure Retail Prices API,2025-12-18T04:44:39.648911 +AZURE,eastus2,Standard_E16_v3,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:44:39.648392 +AZURE,eastus2,Standard_E16_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:44:41.859895 +AZURE,eastus2,Standard_E16_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:44:41.859898 +AZURE,eastus2,Standard_E16_v3,spot,NA,0.316327,USD,Azure Retail Prices API,2025-12-18T04:44:39.648164 +AZURE,eastus2,Standard_E16a_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:39.649511 +AZURE,eastus2,Standard_E16a_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:44:41.860998 +AZURE,eastus2,Standard_E16a_v4,reserved_3y,NA,0.397869,USD,Azure Retail Prices API,2025-12-18T04:44:41.861001 +AZURE,eastus2,Standard_E16a_v4,spot,NA,0.232546,USD,Azure Retail Prices API,2025-12-18T04:44:39.648617 +AZURE,eastus2,Standard_E16ads_v5,on_demand,NA,1.784,USD,Azure Retail Prices API,2025-12-18T04:44:39.648982 +AZURE,eastus2,Standard_E16ads_v5,reserved_1y,NA,0.618265,USD,Azure Retail Prices API,2025-12-18T04:44:41.860838 +AZURE,eastus2,Standard_E16ads_v5,reserved_3y,NA,0.39825,USD,Azure Retail Prices API,2025-12-18T04:44:41.860840 +AZURE,eastus2,Standard_E16ads_v5,spot,NA,0.241774,USD,Azure Retail Prices API,2025-12-18T04:44:39.648429 +AZURE,eastus2,Standard_E16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:44:39.648600 +AZURE,eastus2,Standard_E16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:44:41.860158 +AZURE,eastus2,Standard_E16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:44:41.860161 +AZURE,eastus2,Standard_E16ads_v6,spot,NA,0.225428,USD,Azure Retail Prices API,2025-12-18T04:44:39.648628 +AZURE,eastus2,Standard_E16as_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:39.649617 +AZURE,eastus2,Standard_E16as_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:44:41.861088 +AZURE,eastus2,Standard_E16as_v4,reserved_3y,NA,0.397869,USD,Azure Retail Prices API,2025-12-18T04:44:41.861091 +AZURE,eastus2,Standard_E16as_v4,spot,NA,0.232546,USD,Azure Retail Prices API,2025-12-18T04:44:39.648823 +AZURE,eastus2,Standard_E16as_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:39.648764 +AZURE,eastus2,Standard_E16as_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:44:41.860305 +AZURE,eastus2,Standard_E16as_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:44:41.860308 +AZURE,eastus2,Standard_E16as_v5,spot,NA,0.208553,USD,Azure Retail Prices API,2025-12-18T04:44:39.649569 +AZURE,eastus2,Standard_E16d_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:39.648298 +AZURE,eastus2,Standard_E16d_v4,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:44:41.859787 +AZURE,eastus2,Standard_E16d_v4,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:44:41.859790 +AZURE,eastus2,Standard_E16d_v4,spot,NA,0.333043,USD,Azure Retail Prices API,2025-12-18T04:44:39.649356 +AZURE,eastus2,Standard_E16ds_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:39.649702 +AZURE,eastus2,Standard_E16ds_v4,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:44:41.861171 +AZURE,eastus2,Standard_E16ds_v4,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:44:41.861175 +AZURE,eastus2,Standard_E16ds_v4,spot,NA,0.333043,USD,Azure Retail Prices API,2025-12-18T04:44:39.649411 +AZURE,eastus2,Standard_E16ds_v5,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:39.648491 +AZURE,eastus2,Standard_E16ds_v5,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:44:41.860023 +AZURE,eastus2,Standard_E16ds_v5,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:44:41.860026 +AZURE,eastus2,Standard_E16ds_v5,spot,NA,0.333043,USD,Azure Retail Prices API,2025-12-18T04:44:39.649717 +AZURE,eastus2,Standard_E16ds_v6,on_demand,NA,1.308,USD,Azure Retail Prices API,2025-12-18T04:44:39.648671 +AZURE,eastus2,Standard_E16ds_v6,reserved_1y,NA,0.811073,USD,Azure Retail Prices API,2025-12-18T04:44:41.860233 +AZURE,eastus2,Standard_E16ds_v6,reserved_3y,NA,0.510198,USD,Azure Retail Prices API,2025-12-18T04:44:41.860237 +AZURE,eastus2,Standard_E16ds_v6,spot,NA,0.241718,USD,Azure Retail Prices API,2025-12-18T04:44:39.648922 +AZURE,eastus2,Standard_E16pds_v6,on_demand,NA,0.936,USD,Azure Retail Prices API,2025-12-18T04:44:39.648412 +AZURE,eastus2,Standard_E16pds_v6,reserved_1y,NA,0.552283,USD,Azure Retail Prices API,2025-12-18T04:44:41.859918 +AZURE,eastus2,Standard_E16pds_v6,reserved_3y,NA,0.35567,USD,Azure Retail Prices API,2025-12-18T04:44:41.859921 +AZURE,eastus2,Standard_E16pds_v6,spot,NA,0.23269,USD,Azure Retail Prices API,2025-12-18T04:44:39.648263 +AZURE,eastus2,Standard_E16ps_v6,on_demand,NA,0.738,USD,Azure Retail Prices API,2025-12-18T04:44:39.648664 +AZURE,eastus2,Standard_E16ps_v6,reserved_1y,NA,0.43516,USD,Azure Retail Prices API,2025-12-18T04:44:41.860228 +AZURE,eastus2,Standard_E16ps_v6,reserved_3y,NA,0.280289,USD,Azure Retail Prices API,2025-12-18T04:44:41.860231 +AZURE,eastus2,Standard_E16ps_v6,spot,NA,0.183467,USD,Azure Retail Prices API,2025-12-18T04:44:39.648312 +AZURE,eastus2,Standard_E16s_v3,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:44:39.649594 +AZURE,eastus2,Standard_E16s_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:44:41.861062 +AZURE,eastus2,Standard_E16s_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:44:41.861064 +AZURE,eastus2,Standard_E16s_v3,spot,NA,0.316327,USD,Azure Retail Prices API,2025-12-18T04:44:39.649503 +AZURE,eastus2,Standard_E16s_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:39.648726 +AZURE,eastus2,Standard_E16s_v4,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:44:41.860278 +AZURE,eastus2,Standard_E16s_v4,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:44:41.860280 +AZURE,eastus2,Standard_E16s_v4,spot,NA,0.307037,USD,Azure Retail Prices API,2025-12-18T04:44:39.649829 +AZURE,eastus2,Standard_E16s_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:39.649597 +AZURE,eastus2,Standard_E16s_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:44:41.861067 +AZURE,eastus2,Standard_E16s_v5,reserved_3y,NA,0.372945,USD,Azure Retail Prices API,2025-12-18T04:44:41.861070 +AZURE,eastus2,Standard_E16s_v5,spot,NA,0.307037,USD,Azure Retail Prices API,2025-12-18T04:44:39.648596 +AZURE,eastus2,Standard_E20a_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:39.649633 +AZURE,eastus2,Standard_E20a_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:44:41.861093 +AZURE,eastus2,Standard_E20a_v4,reserved_3y,NA,0.497336,USD,Azure Retail Prices API,2025-12-18T04:44:41.861096 +AZURE,eastus2,Standard_E20a_v4,spot,NA,0.290682,USD,Azure Retail Prices API,2025-12-18T04:44:39.649327 +AZURE,eastus2,Standard_E20ads_v5,on_demand,NA,1.31,USD,Azure Retail Prices API,2025-12-18T04:44:39.649115 +AZURE,eastus2,Standard_E20ads_v5,reserved_1y,NA,0.772945,USD,Azure Retail Prices API,2025-12-18T04:44:41.860681 +AZURE,eastus2,Standard_E20ads_v5,reserved_3y,NA,0.497793,USD,Azure Retail Prices API,2025-12-18T04:44:41.860684 +AZURE,eastus2,Standard_E20ads_v5,spot,NA,0.302217,USD,Azure Retail Prices API,2025-12-18T04:44:39.648603 +AZURE,eastus2,Standard_E20ads_v6,on_demand,NA,1.452,USD,Azure Retail Prices API,2025-12-18T04:44:39.648606 +AZURE,eastus2,Standard_E20ads_v6,reserved_1y,NA,0.856735,USD,Azure Retail Prices API,2025-12-18T04:44:41.860164 +AZURE,eastus2,Standard_E20ads_v6,reserved_3y,NA,0.55175,USD,Azure Retail Prices API,2025-12-18T04:44:41.860167 +AZURE,eastus2,Standard_E20ads_v6,spot,NA,0.281688,USD,Azure Retail Prices API,2025-12-18T04:44:39.648334 +AZURE,eastus2,Standard_E20as_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:39.649675 +AZURE,eastus2,Standard_E20as_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:44:41.861144 +AZURE,eastus2,Standard_E20as_v4,reserved_3y,NA,0.497336,USD,Azure Retail Prices API,2025-12-18T04:44:41.861147 +AZURE,eastus2,Standard_E20as_v4,spot,NA,0.290682,USD,Azure Retail Prices API,2025-12-18T04:44:39.648271 +AZURE,eastus2,Standard_E20as_v5,on_demand,NA,1.13,USD,Azure Retail Prices API,2025-12-18T04:44:39.649348 +AZURE,eastus2,Standard_E20as_v5,reserved_1y,NA,0.666667,USD,Azure Retail Prices API,2025-12-18T04:44:41.860843 +AZURE,eastus2,Standard_E20as_v5,reserved_3y,NA,0.429414,USD,Azure Retail Prices API,2025-12-18T04:44:41.860846 +AZURE,eastus2,Standard_E20as_v5,spot,NA,0.260691,USD,Azure Retail Prices API,2025-12-18T04:44:39.648976 +AZURE,eastus2,Standard_E20d_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:39.648320 +AZURE,eastus2,Standard_E20d_v4,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:44:41.859809 +AZURE,eastus2,Standard_E20d_v4,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:44:41.859812 +AZURE,eastus2,Standard_E20d_v4,spot,NA,0.416304,USD,Azure Retail Prices API,2025-12-18T04:44:39.648395 +AZURE,eastus2,Standard_E20ds_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:39.649535 +AZURE,eastus2,Standard_E20ds_v4,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:44:41.861019 +AZURE,eastus2,Standard_E20ds_v4,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:44:41.861022 +AZURE,eastus2,Standard_E20ds_v4,spot,NA,0.416304,USD,Azure Retail Prices API,2025-12-18T04:44:39.649090 +AZURE,eastus2,Standard_E20ds_v5,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:39.648779 +AZURE,eastus2,Standard_E20ds_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:44:41.860321 +AZURE,eastus2,Standard_E20ds_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:44:41.860324 +AZURE,eastus2,Standard_E20ds_v5,spot,NA,0.416304,USD,Azure Retail Prices API,2025-12-18T04:44:39.648767 +AZURE,eastus2,Standard_E20ds_v6,on_demand,NA,1.635,USD,Azure Retail Prices API,2025-12-18T04:44:39.648614 +AZURE,eastus2,Standard_E20ds_v6,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:44:41.860169 +AZURE,eastus2,Standard_E20ds_v6,reserved_3y,NA,0.637709,USD,Azure Retail Prices API,2025-12-18T04:44:41.860172 +AZURE,eastus2,Standard_E20ds_v6,spot,NA,0.302148,USD,Azure Retail Prices API,2025-12-18T04:44:39.649345 +AZURE,eastus2,Standard_E20s_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:39.649583 +AZURE,eastus2,Standard_E20s_v4,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:44:41.861051 +AZURE,eastus2,Standard_E20s_v4,reserved_3y,NA,0.478805,USD,Azure Retail Prices API,2025-12-18T04:44:41.861054 +AZURE,eastus2,Standard_E20s_v4,spot,NA,0.383796,USD,Azure Retail Prices API,2025-12-18T04:44:39.648384 +AZURE,eastus2,Standard_E20s_v5,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:39.648398 +AZURE,eastus2,Standard_E20s_v5,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:44:41.859901 +AZURE,eastus2,Standard_E20s_v5,reserved_3y,NA,0.478805,USD,Azure Retail Prices API,2025-12-18T04:44:41.859904 +AZURE,eastus2,Standard_E20s_v5,spot,NA,0.383796,USD,Azure Retail Prices API,2025-12-18T04:44:39.649449 +AZURE,eastus2,Standard_E2_v3,on_demand,NA,0.133,USD,Azure Retail Prices API,2025-12-18T04:44:39.648427 +AZURE,eastus2,Standard_E2_v3,reserved_1y,NA,0.078196,USD,Azure Retail Prices API,2025-12-18T04:44:41.859935 +AZURE,eastus2,Standard_E2_v3,reserved_3y,NA,0.05,USD,Azure Retail Prices API,2025-12-18T04:44:41.859938 +AZURE,eastus2,Standard_E2_v3,spot,NA,0.039541,USD,Azure Retail Prices API,2025-12-18T04:44:39.648134 +AZURE,eastus2,Standard_E2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:39.648401 +AZURE,eastus2,Standard_E2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:44:41.859906 +AZURE,eastus2,Standard_E2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:44:41.859909 +AZURE,eastus2,Standard_E2ads_v6,spot,NA,0.02813,USD,Azure Retail Prices API,2025-12-18T04:44:39.649124 +AZURE,eastus2,Standard_E2ds_v5,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:44:39.649391 +AZURE,eastus2,Standard_E2ds_v5,reserved_1y,NA,0.084932,USD,Azure Retail Prices API,2025-12-18T04:44:41.860884 +AZURE,eastus2,Standard_E2ds_v5,reserved_3y,NA,0.054718,USD,Azure Retail Prices API,2025-12-18T04:44:41.860887 +AZURE,eastus2,Standard_E2ds_v5,spot,NA,0.04163,USD,Azure Retail Prices API,2025-12-18T04:44:39.648237 +AZURE,eastus2,Standard_E2ds_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:44:39.648332 +AZURE,eastus2,Standard_E2ds_v6,reserved_1y,NA,0.10137,USD,Azure Retail Prices API,2025-12-18T04:44:41.859820 +AZURE,eastus2,Standard_E2ds_v6,reserved_3y,NA,0.063775,USD,Azure Retail Prices API,2025-12-18T04:44:41.859823 +AZURE,eastus2,Standard_E2ds_v6,spot,NA,0.030307,USD,Azure Retail Prices API,2025-12-18T04:44:39.649082 +AZURE,eastus2,Standard_E2pds_v6,on_demand,NA,0.117,USD,Azure Retail Prices API,2025-12-18T04:44:39.648770 +AZURE,eastus2,Standard_E2pds_v6,reserved_1y,NA,0.069064,USD,Azure Retail Prices API,2025-12-18T04:44:41.860310 +AZURE,eastus2,Standard_E2pds_v6,reserved_3y,NA,0.044444,USD,Azure Retail Prices API,2025-12-18T04:44:41.860313 +AZURE,eastus2,Standard_E2pds_v6,spot,NA,0.029086,USD,Azure Retail Prices API,2025-12-18T04:44:39.649402 +AZURE,eastus2,Standard_E32_v3,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:44:39.648229 +AZURE,eastus2,Standard_E32_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:44:41.859726 +AZURE,eastus2,Standard_E32_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:44:41.859729 +AZURE,eastus2,Standard_E32_v3,spot,NA,0.632654,USD,Azure Retail Prices API,2025-12-18T04:44:39.649625 +AZURE,eastus2,Standard_E32a_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:39.649231 +AZURE,eastus2,Standard_E32a_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:44:41.860752 +AZURE,eastus2,Standard_E32a_v4,reserved_3y,NA,0.795738,USD,Azure Retail Prices API,2025-12-18T04:44:41.860755 +AZURE,eastus2,Standard_E32a_v4,spot,NA,0.465091,USD,Azure Retail Prices API,2025-12-18T04:44:39.649546 +AZURE,eastus2,Standard_E32ads_v5,on_demand,NA,2.096,USD,Azure Retail Prices API,2025-12-18T04:44:39.648892 +AZURE,eastus2,Standard_E32ads_v5,reserved_1y,NA,1.236644,USD,Azure Retail Prices API,2025-12-18T04:44:41.860466 +AZURE,eastus2,Standard_E32ads_v5,reserved_3y,NA,0.796461,USD,Azure Retail Prices API,2025-12-18T04:44:41.860469 +AZURE,eastus2,Standard_E32ads_v5,spot,NA,0.483547,USD,Azure Retail Prices API,2025-12-18T04:44:39.648257 +AZURE,eastus2,Standard_E32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:44:39.648435 +AZURE,eastus2,Standard_E32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:44:41.859941 +AZURE,eastus2,Standard_E32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:44:41.859943 +AZURE,eastus2,Standard_E32ads_v6,spot,NA,0.450662,USD,Azure Retail Prices API,2025-12-18T04:44:39.649087 +AZURE,eastus2,Standard_E32as_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:39.649664 +AZURE,eastus2,Standard_E32as_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:44:41.861119 +AZURE,eastus2,Standard_E32as_v4,reserved_3y,NA,0.795738,USD,Azure Retail Prices API,2025-12-18T04:44:41.861122 +AZURE,eastus2,Standard_E32as_v4,spot,NA,0.465091,USD,Azure Retail Prices API,2025-12-18T04:44:39.649776 +AZURE,eastus2,Standard_E32as_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:39.648197 +AZURE,eastus2,Standard_E32as_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:44:41.859688 +AZURE,eastus2,Standard_E32as_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:44:41.859691 +AZURE,eastus2,Standard_E32as_v5,spot,NA,0.417106,USD,Azure Retail Prices API,2025-12-18T04:44:39.648758 +AZURE,eastus2,Standard_E32d_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:39.648358 +AZURE,eastus2,Standard_E32d_v4,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:41.859861 +AZURE,eastus2,Standard_E32d_v4,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:44:41.859865 +AZURE,eastus2,Standard_E32d_v4,spot,NA,0.666086,USD,Azure Retail Prices API,2025-12-18T04:44:39.649204 +AZURE,eastus2,Standard_E32ds_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:39.649246 +AZURE,eastus2,Standard_E32ds_v4,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:41.860763 +AZURE,eastus2,Standard_E32ds_v4,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:44:41.860766 +AZURE,eastus2,Standard_E32ds_v4,spot,NA,0.666086,USD,Azure Retail Prices API,2025-12-18T04:44:39.648352 +AZURE,eastus2,Standard_E32ds_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:39.648421 +AZURE,eastus2,Standard_E32ds_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:41.859924 +AZURE,eastus2,Standard_E32ds_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:44:41.859927 +AZURE,eastus2,Standard_E32ds_v5,spot,NA,0.666086,USD,Azure Retail Prices API,2025-12-18T04:44:39.648954 +AZURE,eastus2,Standard_E32ds_v6,on_demand,NA,2.616,USD,Azure Retail Prices API,2025-12-18T04:44:39.649452 +AZURE,eastus2,Standard_E32ds_v6,reserved_1y,NA,1.622146,USD,Azure Retail Prices API,2025-12-18T04:44:41.860944 +AZURE,eastus2,Standard_E32ds_v6,reserved_3y,NA,1.020358,USD,Azure Retail Prices API,2025-12-18T04:44:41.860948 +AZURE,eastus2,Standard_E32ds_v6,spot,NA,0.483437,USD,Azure Retail Prices API,2025-12-18T04:44:39.648661 +AZURE,eastus2,Standard_E32pds_v6,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:44:39.648689 +AZURE,eastus2,Standard_E32pds_v6,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:44:41.860244 +AZURE,eastus2,Standard_E32pds_v6,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:44:41.860247 +AZURE,eastus2,Standard_E32pds_v6,spot,NA,0.465379,USD,Azure Retail Prices API,2025-12-18T04:44:39.649697 +AZURE,eastus2,Standard_E32ps_v6,on_demand,NA,1.475,USD,Azure Retail Prices API,2025-12-18T04:44:39.648500 +AZURE,eastus2,Standard_E32ps_v6,reserved_1y,NA,0.87032,USD,Azure Retail Prices API,2025-12-18T04:44:41.860034 +AZURE,eastus2,Standard_E32ps_v6,reserved_3y,NA,0.560578,USD,Azure Retail Prices API,2025-12-18T04:44:41.860036 +AZURE,eastus2,Standard_E32ps_v6,spot,NA,0.366685,USD,Azure Retail Prices API,2025-12-18T04:44:39.648191 +AZURE,eastus2,Standard_E32s_v3,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:44:39.648784 +AZURE,eastus2,Standard_E32s_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:44:41.860333 +AZURE,eastus2,Standard_E32s_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:44:41.860338 +AZURE,eastus2,Standard_E32s_v3,spot,NA,0.632654,USD,Azure Retail Prices API,2025-12-18T04:44:39.648897 +AZURE,eastus2,Standard_E32s_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:39.648159 +AZURE,eastus2,Standard_E32s_v4,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:44:41.859652 +AZURE,eastus2,Standard_E32s_v4,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:44:41.859655 +AZURE,eastus2,Standard_E32s_v4,spot,NA,0.614074,USD,Azure Retail Prices API,2025-12-18T04:44:39.649438 +AZURE,eastus2,Standard_E32s_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:39.648452 +AZURE,eastus2,Standard_E32s_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:44:41.859973 +AZURE,eastus2,Standard_E32s_v5,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:44:41.859978 +AZURE,eastus2,Standard_E32s_v5,spot,NA,0.614074,USD,Azure Retail Prices API,2025-12-18T04:44:39.648609 +AZURE,eastus2,Standard_E48a_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:39.649694 +AZURE,eastus2,Standard_E48a_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:44:41.861166 +AZURE,eastus2,Standard_E48a_v4,reserved_3y,NA,1.193607,USD,Azure Retail Prices API,2025-12-18T04:44:41.861169 +AZURE,eastus2,Standard_E48a_v4,spot,NA,0.697637,USD,Azure Retail Prices API,2025-12-18T04:44:39.648386 +AZURE,eastus2,Standard_E48ads_v5,on_demand,NA,5.352,USD,Azure Retail Prices API,2025-12-18T04:44:39.648863 +AZURE,eastus2,Standard_E48ads_v5,reserved_1y,NA,1.854909,USD,Azure Retail Prices API,2025-12-18T04:44:41.860950 +AZURE,eastus2,Standard_E48ads_v5,reserved_3y,NA,1.194711,USD,Azure Retail Prices API,2025-12-18T04:44:41.860953 +AZURE,eastus2,Standard_E48ads_v5,spot,NA,0.725321,USD,Azure Retail Prices API,2025-12-18T04:44:39.649118 +AZURE,eastus2,Standard_E48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:44:39.648194 +AZURE,eastus2,Standard_E48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:44:41.859682 +AZURE,eastus2,Standard_E48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:44:41.859685 +AZURE,eastus2,Standard_E48ads_v6,spot,NA,0.67609,USD,Azure Retail Prices API,2025-12-18T04:44:39.649152 +AZURE,eastus2,Standard_E48as_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:39.648820 +AZURE,eastus2,Standard_E48as_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:44:41.860374 +AZURE,eastus2,Standard_E48as_v4,reserved_3y,NA,1.193607,USD,Azure Retail Prices API,2025-12-18T04:44:41.860377 +AZURE,eastus2,Standard_E48as_v4,spot,NA,0.697637,USD,Azure Retail Prices API,2025-12-18T04:44:39.648988 +AZURE,eastus2,Standard_E48as_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:39.648156 +AZURE,eastus2,Standard_E48as_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:44:41.859646 +AZURE,eastus2,Standard_E48as_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:44:41.859650 +AZURE,eastus2,Standard_E48as_v5,spot,NA,0.625658,USD,Azure Retail Prices API,2025-12-18T04:44:39.648908 +AZURE,eastus2,Standard_E48d_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:39.648743 +AZURE,eastus2,Standard_E48d_v4,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:44:41.860289 +AZURE,eastus2,Standard_E48d_v4,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:44:41.860291 +AZURE,eastus2,Standard_E48d_v4,spot,NA,0.99913,USD,Azure Retail Prices API,2025-12-18T04:44:39.648761 +AZURE,eastus2,Standard_E48ds_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:39.649353 +AZURE,eastus2,Standard_E48ds_v4,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:44:41.860853 +AZURE,eastus2,Standard_E48ds_v4,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:44:41.860856 +AZURE,eastus2,Standard_E48ds_v4,spot,NA,0.99913,USD,Azure Retail Prices API,2025-12-18T04:44:39.649560 +AZURE,eastus2,Standard_E48ds_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:39.648560 +AZURE,eastus2,Standard_E48ds_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:44:41.860096 +AZURE,eastus2,Standard_E48ds_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:44:41.860099 +AZURE,eastus2,Standard_E48ds_v5,spot,NA,0.99913,USD,Azure Retail Prices API,2025-12-18T04:44:39.649373 +AZURE,eastus2,Standard_E48ds_v6,on_demand,NA,3.924,USD,Azure Retail Prices API,2025-12-18T04:44:39.649669 +AZURE,eastus2,Standard_E48ds_v6,reserved_1y,NA,2.433219,USD,Azure Retail Prices API,2025-12-18T04:44:41.861125 +AZURE,eastus2,Standard_E48ds_v6,reserved_3y,NA,1.530556,USD,Azure Retail Prices API,2025-12-18T04:44:41.861127 +AZURE,eastus2,Standard_E48ds_v6,spot,NA,0.725155,USD,Azure Retail Prices API,2025-12-18T04:44:39.649370 +AZURE,eastus2,Standard_E48pds_v6,on_demand,NA,2.808,USD,Azure Retail Prices API,2025-12-18T04:44:39.649013 +AZURE,eastus2,Standard_E48pds_v6,reserved_1y,NA,1.656735,USD,Azure Retail Prices API,2025-12-18T04:44:41.860585 +AZURE,eastus2,Standard_E48pds_v6,reserved_3y,NA,1.067047,USD,Azure Retail Prices API,2025-12-18T04:44:41.860588 +AZURE,eastus2,Standard_E48pds_v6,spot,NA,0.698069,USD,Azure Retail Prices API,2025-12-18T04:44:39.648318 +AZURE,eastus2,Standard_E48ps_v6,on_demand,NA,2.213,USD,Azure Retail Prices API,2025-12-18T04:44:39.649218 +AZURE,eastus2,Standard_E48ps_v6,reserved_1y,NA,1.305594,USD,Azure Retail Prices API,2025-12-18T04:44:41.860735 +AZURE,eastus2,Standard_E48ps_v6,reserved_3y,NA,0.840868,USD,Azure Retail Prices API,2025-12-18T04:44:41.860738 +AZURE,eastus2,Standard_E48ps_v6,spot,NA,0.550152,USD,Azure Retail Prices API,2025-12-18T04:44:39.649628 +AZURE,eastus2,Standard_E48s_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:39.648755 +AZURE,eastus2,Standard_E48s_v4,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:44:41.860299 +AZURE,eastus2,Standard_E48s_v4,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:44:41.860302 +AZURE,eastus2,Standard_E48s_v4,spot,NA,0.92111,USD,Azure Retail Prices API,2025-12-18T04:44:39.648409 +AZURE,eastus2,Standard_E48s_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:39.648720 +AZURE,eastus2,Standard_E48s_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:44:41.860272 +AZURE,eastus2,Standard_E48s_v5,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:44:41.860275 +AZURE,eastus2,Standard_E48s_v5,spot,NA,0.92111,USD,Azure Retail Prices API,2025-12-18T04:44:39.648494 +AZURE,eastus2,Standard_E4_v3,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:44:39.649723 +AZURE,eastus2,Standard_E4_v3,reserved_1y,NA,0.156393,USD,Azure Retail Prices API,2025-12-18T04:44:41.861199 +AZURE,eastus2,Standard_E4_v3,reserved_3y,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:44:41.861201 +AZURE,eastus2,Standard_E4_v3,spot,NA,0.079082,USD,Azure Retail Prices API,2025-12-18T04:44:39.649708 +AZURE,eastus2,Standard_E4a_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:39.649785 +AZURE,eastus2,Standard_E4a_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:44:41.861261 +AZURE,eastus2,Standard_E4a_v4,reserved_3y,NA,0.099467,USD,Azure Retail Prices API,2025-12-18T04:44:41.861263 +AZURE,eastus2,Standard_E4a_v4,spot,NA,0.058136,USD,Azure Retail Prices API,2025-12-18T04:44:39.649655 +AZURE,eastus2,Standard_E4ads_v5,on_demand,NA,0.446,USD,Azure Retail Prices API,2025-12-18T04:44:39.648790 +AZURE,eastus2,Standard_E4ads_v5,reserved_1y,NA,0.154566,USD,Azure Retail Prices API,2025-12-18T04:44:41.860511 +AZURE,eastus2,Standard_E4ads_v5,reserved_3y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:44:41.860514 +AZURE,eastus2,Standard_E4ads_v5,spot,NA,0.060443,USD,Azure Retail Prices API,2025-12-18T04:44:39.648162 +AZURE,eastus2,Standard_E4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:44:39.649642 +AZURE,eastus2,Standard_E4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:44:41.861104 +AZURE,eastus2,Standard_E4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:44:41.861106 +AZURE,eastus2,Standard_E4ads_v6,spot,NA,0.05626,USD,Azure Retail Prices API,2025-12-18T04:44:39.648378 +AZURE,eastus2,Standard_E4as_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:39.648942 +AZURE,eastus2,Standard_E4as_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:44:41.860527 +AZURE,eastus2,Standard_E4as_v4,reserved_3y,NA,0.099467,USD,Azure Retail Prices API,2025-12-18T04:44:41.860530 +AZURE,eastus2,Standard_E4as_v4,spot,NA,0.058136,USD,Azure Retail Prices API,2025-12-18T04:44:39.649207 +AZURE,eastus2,Standard_E4as_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:39.648558 +AZURE,eastus2,Standard_E4as_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:44:41.860091 +AZURE,eastus2,Standard_E4as_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:44:41.860093 +AZURE,eastus2,Standard_E4as_v5,spot,NA,0.052138,USD,Azure Retail Prices API,2025-12-18T04:44:39.649522 +AZURE,eastus2,Standard_E4d_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:39.648697 +AZURE,eastus2,Standard_E4d_v4,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:44:41.860255 +AZURE,eastus2,Standard_E4d_v4,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:44:41.860258 +AZURE,eastus2,Standard_E4d_v4,spot,NA,0.083261,USD,Azure Retail Prices API,2025-12-18T04:44:39.649127 +AZURE,eastus2,Standard_E4ds_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:39.648243 +AZURE,eastus2,Standard_E4ds_v4,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:44:41.859743 +AZURE,eastus2,Standard_E4ds_v4,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:44:41.859745 +AZURE,eastus2,Standard_E4ds_v4,spot,NA,0.083261,USD,Azure Retail Prices API,2025-12-18T04:44:39.648928 +AZURE,eastus2,Standard_E4ds_v5,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:39.648832 +AZURE,eastus2,Standard_E4ds_v5,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:44:41.860391 +AZURE,eastus2,Standard_E4ds_v5,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:44:41.860394 +AZURE,eastus2,Standard_E4ds_v5,spot,NA,0.083261,USD,Azure Retail Prices API,2025-12-18T04:44:39.648544 +AZURE,eastus2,Standard_E4ds_v6,on_demand,NA,0.327,USD,Azure Retail Prices API,2025-12-18T04:44:39.649161 +AZURE,eastus2,Standard_E4ds_v6,reserved_1y,NA,0.20274,USD,Azure Retail Prices API,2025-12-18T04:44:41.860692 +AZURE,eastus2,Standard_E4ds_v6,reserved_3y,NA,0.127549,USD,Azure Retail Prices API,2025-12-18T04:44:41.860695 +AZURE,eastus2,Standard_E4ds_v6,spot,NA,0.06043,USD,Azure Retail Prices API,2025-12-18T04:44:39.649672 +AZURE,eastus2,Standard_E4pds_v6,on_demand,NA,0.234,USD,Azure Retail Prices API,2025-12-18T04:44:39.648303 +AZURE,eastus2,Standard_E4pds_v6,reserved_1y,NA,0.138014,USD,Azure Retail Prices API,2025-12-18T04:44:41.859798 +AZURE,eastus2,Standard_E4pds_v6,reserved_3y,NA,0.088927,USD,Azure Retail Prices API,2025-12-18T04:44:41.859801 +AZURE,eastus2,Standard_E4pds_v6,spot,NA,0.058172,USD,Azure Retail Prices API,2025-12-18T04:44:39.649149 +AZURE,eastus2,Standard_E4ps_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:44:39.648829 +AZURE,eastus2,Standard_E4ps_v6,reserved_1y,NA,0.10879,USD,Azure Retail Prices API,2025-12-18T04:44:41.860386 +AZURE,eastus2,Standard_E4ps_v6,reserved_3y,NA,0.070053,USD,Azure Retail Prices API,2025-12-18T04:44:41.860388 +AZURE,eastus2,Standard_E4ps_v6,spot,NA,0.045742,USD,Azure Retail Prices API,2025-12-18T04:44:39.649552 +AZURE,eastus2,Standard_E4s_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:39.648919 +AZURE,eastus2,Standard_E4s_v4,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:44:41.860494 +AZURE,eastus2,Standard_E4s_v4,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:44:41.860497 +AZURE,eastus2,Standard_E4s_v4,spot,NA,0.076759,USD,Azure Retail Prices API,2025-12-18T04:44:39.649793 +AZURE,eastus2,Standard_E4s_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:39.649405 +AZURE,eastus2,Standard_E4s_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:44:41.860890 +AZURE,eastus2,Standard_E4s_v5,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:44:41.860893 +AZURE,eastus2,Standard_E4s_v5,spot,NA,0.076759,USD,Azure Retail Prices API,2025-12-18T04:44:39.649322 +AZURE,eastus2,Standard_E64_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:44:39.649295 +AZURE,eastus2,Standard_E64_v3,reserved_1y,NA,2.502511,USD,Azure Retail Prices API,2025-12-18T04:44:41.860801 +AZURE,eastus2,Standard_E64_v3,reserved_3y,NA,1.600228,USD,Azure Retail Prices API,2025-12-18T04:44:41.860804 +AZURE,eastus2,Standard_E64_v3,spot,NA,1.078902,USD,Azure Retail Prices API,2025-12-18T04:44:39.648840 +AZURE,eastus2,Standard_E64a_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:39.649342 +AZURE,eastus2,Standard_E64a_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:44:41.860832 +AZURE,eastus2,Standard_E64a_v4,reserved_3y,NA,1.591476,USD,Azure Retail Prices API,2025-12-18T04:44:41.860835 +AZURE,eastus2,Standard_E64a_v4,spot,NA,0.930182,USD,Azure Retail Prices API,2025-12-18T04:44:39.649026 +AZURE,eastus2,Standard_E64ads_v5,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:44:39.648580 +AZURE,eastus2,Standard_E64ads_v5,reserved_1y,NA,2.473288,USD,Azure Retail Prices API,2025-12-18T04:44:41.860125 +AZURE,eastus2,Standard_E64ads_v5,reserved_3y,NA,1.59296,USD,Azure Retail Prices API,2025-12-18T04:44:41.860127 +AZURE,eastus2,Standard_E64ads_v5,spot,NA,0.967094,USD,Azure Retail Prices API,2025-12-18T04:44:39.649193 +AZURE,eastus2,Standard_E64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:44:39.649683 +AZURE,eastus2,Standard_E64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:44:41.861155 +AZURE,eastus2,Standard_E64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:44:41.861158 +AZURE,eastus2,Standard_E64ads_v6,spot,NA,0.901324,USD,Azure Retail Prices API,2025-12-18T04:44:39.648211 +AZURE,eastus2,Standard_E64as_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:39.649827 +AZURE,eastus2,Standard_E64as_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:44:41.861300 +AZURE,eastus2,Standard_E64as_v4,reserved_3y,NA,1.591476,USD,Azure Retail Prices API,2025-12-18T04:44:41.861302 +AZURE,eastus2,Standard_E64as_v4,spot,NA,0.930182,USD,Azure Retail Prices API,2025-12-18T04:44:39.649813 +AZURE,eastus2,Standard_E64as_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:39.649113 +AZURE,eastus2,Standard_E64as_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:44:41.860676 +AZURE,eastus2,Standard_E64as_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:44:41.860679 +AZURE,eastus2,Standard_E64as_v5,spot,NA,0.834211,USD,Azure Retail Prices API,2025-12-18T04:44:39.649575 +AZURE,eastus2,Standard_E64d_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:39.649155 +AZURE,eastus2,Standard_E64d_v4,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:44:41.860687 +AZURE,eastus2,Standard_E64d_v4,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:44:41.860689 +AZURE,eastus2,Standard_E64d_v4,spot,NA,1.332173,USD,Azure Retail Prices API,2025-12-18T04:44:39.649699 +AZURE,eastus2,Standard_E64ds_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:39.649388 +AZURE,eastus2,Standard_E64ds_v4,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:44:41.860879 +AZURE,eastus2,Standard_E64ds_v4,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:44:41.860882 +AZURE,eastus2,Standard_E64ds_v4,spot,NA,1.332173,USD,Azure Retail Prices API,2025-12-18T04:44:39.649726 +AZURE,eastus2,Standard_E64ds_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:39.648214 +AZURE,eastus2,Standard_E64ds_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:44:41.859710 +AZURE,eastus2,Standard_E64ds_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:44:41.859713 +AZURE,eastus2,Standard_E64ds_v5,spot,NA,1.332173,USD,Azure Retail Prices API,2025-12-18T04:44:39.649379 +AZURE,eastus2,Standard_E64ds_v6,on_demand,NA,5.233,USD,Azure Retail Prices API,2025-12-18T04:44:39.648541 +AZURE,eastus2,Standard_E64ds_v6,reserved_1y,NA,3.244292,USD,Azure Retail Prices API,2025-12-18T04:44:41.860073 +AZURE,eastus2,Standard_E64ds_v6,reserved_3y,NA,2.040715,USD,Azure Retail Prices API,2025-12-18T04:44:41.860076 +AZURE,eastus2,Standard_E64ds_v6,spot,NA,0.967058,USD,Azure Retail Prices API,2025-12-18T04:44:39.649630 +AZURE,eastus2,Standard_E64pds_v6,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:39.648634 +AZURE,eastus2,Standard_E64pds_v6,reserved_1y,NA,2.208904,USD,Azure Retail Prices API,2025-12-18T04:44:41.860191 +AZURE,eastus2,Standard_E64pds_v6,reserved_3y,NA,1.422717,USD,Azure Retail Prices API,2025-12-18T04:44:41.860194 +AZURE,eastus2,Standard_E64pds_v6,spot,NA,0.930758,USD,Azure Retail Prices API,2025-12-18T04:44:39.649446 +AZURE,eastus2,Standard_E64ps_v6,on_demand,NA,2.95,USD,Azure Retail Prices API,2025-12-18T04:44:39.649339 +AZURE,eastus2,Standard_E64ps_v6,reserved_1y,NA,1.740753,USD,Azure Retail Prices API,2025-12-18T04:44:41.860827 +AZURE,eastus2,Standard_E64ps_v6,reserved_3y,NA,1.121157,USD,Azure Retail Prices API,2025-12-18T04:44:41.860830 +AZURE,eastus2,Standard_E64ps_v6,spot,NA,0.73337,USD,Azure Retail Prices API,2025-12-18T04:44:39.648843 +AZURE,eastus2,Standard_E64s_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:44:39.648265 +AZURE,eastus2,Standard_E64s_v3,reserved_1y,NA,2.502511,USD,Azure Retail Prices API,2025-12-18T04:44:41.859759 +AZURE,eastus2,Standard_E64s_v3,reserved_3y,NA,1.600228,USD,Azure Retail Prices API,2025-12-18T04:44:41.859762 +AZURE,eastus2,Standard_E64s_v3,spot,NA,1.078902,USD,Azure Retail Prices API,2025-12-18T04:44:39.648246 +AZURE,eastus2,Standard_E64s_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:39.649196 +AZURE,eastus2,Standard_E64s_v4,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:44:41.860725 +AZURE,eastus2,Standard_E64s_v4,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:44:41.860727 +AZURE,eastus2,Standard_E64s_v4,spot,NA,1.228147,USD,Azure Retail Prices API,2025-12-18T04:44:39.648523 +AZURE,eastus2,Standard_E64s_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:39.648834 +AZURE,eastus2,Standard_E64s_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:44:41.860397 +AZURE,eastus2,Standard_E64s_v5,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:44:41.860399 +AZURE,eastus2,Standard_E64s_v5,spot,NA,1.228147,USD,Azure Retail Prices API,2025-12-18T04:44:39.649468 +AZURE,eastus2,Standard_E80ids_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:44:39.649435 +AZURE,eastus2,Standard_E80ids_v4,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:44:41.860917 +AZURE,eastus2,Standard_E80ids_v4,reserved_3y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:44:41.860922 +AZURE,eastus2,Standard_E80ids_v4,spot,NA,1.665216,USD,Azure Retail Prices API,2025-12-18T04:44:39.649278 +AZURE,eastus2,Standard_E80is_v4,on_demand,NA,5.04,USD,Azure Retail Prices API,2025-12-18T04:44:39.648685 +AZURE,eastus2,Standard_E80is_v4,reserved_1y,NA,2.97363,USD,Azure Retail Prices API,2025-12-18T04:44:41.860239 +AZURE,eastus2,Standard_E80is_v4,reserved_3y,NA,1.915183,USD,Azure Retail Prices API,2025-12-18T04:44:41.860242 +AZURE,eastus2,Standard_E80is_v4,spot,NA,1.535184,USD,Azure Retail Prices API,2025-12-18T04:44:39.649824 +AZURE,eastus2,Standard_E8_v3,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:44:39.649720 +AZURE,eastus2,Standard_E8_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:44:41.861194 +AZURE,eastus2,Standard_E8_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:44:41.861196 +AZURE,eastus2,Standard_E8_v3,spot,NA,0.158164,USD,Azure Retail Prices API,2025-12-18T04:44:39.649611 +AZURE,eastus2,Standard_E8a_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:39.648914 +AZURE,eastus2,Standard_E8a_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:44:41.860489 +AZURE,eastus2,Standard_E8a_v4,reserved_3y,NA,0.198935,USD,Azure Retail Prices API,2025-12-18T04:44:41.860491 +AZURE,eastus2,Standard_E8a_v4,spot,NA,0.116273,USD,Azure Retail Prices API,2025-12-18T04:44:39.648185 +AZURE,eastus2,Standard_E8ads_v5,on_demand,NA,0.892,USD,Azure Retail Prices API,2025-12-18T04:44:39.648150 +AZURE,eastus2,Standard_E8ads_v5,reserved_1y,NA,0.309132,USD,Azure Retail Prices API,2025-12-18T04:44:41.859955 +AZURE,eastus2,Standard_E8ads_v5,reserved_3y,NA,0.199125,USD,Azure Retail Prices API,2025-12-18T04:44:41.859960 +AZURE,eastus2,Standard_E8ads_v5,spot,NA,0.120887,USD,Azure Retail Prices API,2025-12-18T04:44:39.648960 +AZURE,eastus2,Standard_E8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:39.649079 +AZURE,eastus2,Standard_E8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:44:41.860655 +AZURE,eastus2,Standard_E8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:44:41.860658 +AZURE,eastus2,Standard_E8ads_v6,spot,NA,0.112714,USD,Azure Retail Prices API,2025-12-18T04:44:39.648792 +AZURE,eastus2,Standard_E8as_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:39.648875 +AZURE,eastus2,Standard_E8as_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:44:41.860437 +AZURE,eastus2,Standard_E8as_v4,reserved_3y,NA,0.198935,USD,Azure Retail Prices API,2025-12-18T04:44:41.860440 +AZURE,eastus2,Standard_E8as_v4,spot,NA,0.116273,USD,Azure Retail Prices API,2025-12-18T04:44:39.648732 +AZURE,eastus2,Standard_E8as_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:39.648979 +AZURE,eastus2,Standard_E8as_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:44:41.860556 +AZURE,eastus2,Standard_E8as_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:44:41.860558 +AZURE,eastus2,Standard_E8as_v5,spot,NA,0.104276,USD,Azure Retail Prices API,2025-12-18T04:44:39.648866 +AZURE,eastus2,Standard_E8d_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:39.648878 +AZURE,eastus2,Standard_E8d_v4,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:44:41.860443 +AZURE,eastus2,Standard_E8d_v4,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:44:41.860445 +AZURE,eastus2,Standard_E8d_v4,spot,NA,0.166522,USD,Azure Retail Prices API,2025-12-18T04:44:39.649394 +AZURE,eastus2,Standard_E8ds_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:39.648153 +AZURE,eastus2,Standard_E8ds_v4,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:44:41.859641 +AZURE,eastus2,Standard_E8ds_v4,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:44:41.859644 +AZURE,eastus2,Standard_E8ds_v4,spot,NA,0.166522,USD,Azure Retail Prices API,2025-12-18T04:44:39.649107 +AZURE,eastus2,Standard_E8ds_v5,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:39.649481 +AZURE,eastus2,Standard_E8ds_v5,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:44:41.860972 +AZURE,eastus2,Standard_E8ds_v5,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:44:41.860975 +AZURE,eastus2,Standard_E8ds_v5,spot,NA,0.166522,USD,Azure Retail Prices API,2025-12-18T04:44:39.649226 +AZURE,eastus2,Standard_E8ds_v6,on_demand,NA,0.654,USD,Azure Retail Prices API,2025-12-18T04:44:39.648937 +AZURE,eastus2,Standard_E8ds_v6,reserved_1y,NA,0.405479,USD,Azure Retail Prices API,2025-12-18T04:44:41.860517 +AZURE,eastus2,Standard_E8ds_v6,reserved_3y,NA,0.255099,USD,Azure Retail Prices API,2025-12-18T04:44:41.860519 +AZURE,eastus2,Standard_E8ds_v6,spot,NA,0.120859,USD,Azure Retail Prices API,2025-12-18T04:44:39.648323 +AZURE,eastus2,Standard_E8pds_v6,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:44:39.649484 +AZURE,eastus2,Standard_E8pds_v6,reserved_1y,NA,0.276142,USD,Azure Retail Prices API,2025-12-18T04:44:41.860977 +AZURE,eastus2,Standard_E8pds_v6,reserved_3y,NA,0.177854,USD,Azure Retail Prices API,2025-12-18T04:44:41.860980 +AZURE,eastus2,Standard_E8pds_v6,spot,NA,0.116345,USD,Azure Retail Prices API,2025-12-18T04:44:39.648406 +AZURE,eastus2,Standard_E8ps_v6,on_demand,NA,0.369,USD,Azure Retail Prices API,2025-12-18T04:44:39.649074 +AZURE,eastus2,Standard_E8ps_v6,reserved_1y,NA,0.21758,USD,Azure Retail Prices API,2025-12-18T04:44:41.860650 +AZURE,eastus2,Standard_E8ps_v6,reserved_3y,NA,0.140145,USD,Azure Retail Prices API,2025-12-18T04:44:41.860652 +AZURE,eastus2,Standard_E8ps_v6,spot,NA,0.091733,USD,Azure Retail Prices API,2025-12-18T04:44:39.649807 +AZURE,eastus2,Standard_E8s_v3,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:44:39.649005 +AZURE,eastus2,Standard_E8s_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:44:41.860573 +AZURE,eastus2,Standard_E8s_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:44:41.860576 +AZURE,eastus2,Standard_E8s_v3,spot,NA,0.158164,USD,Azure Retail Prices API,2025-12-18T04:44:39.648902 +AZURE,eastus2,Standard_E8s_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:39.648486 +AZURE,eastus2,Standard_E8s_v4,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:44:41.860011 +AZURE,eastus2,Standard_E8s_v4,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:44:41.860014 +AZURE,eastus2,Standard_E8s_v4,spot,NA,0.153518,USD,Azure Retail Prices API,2025-12-18T04:44:39.649530 +AZURE,eastus2,Standard_E8s_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:39.649527 +AZURE,eastus2,Standard_E8s_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:44:41.861014 +AZURE,eastus2,Standard_E8s_v5,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:44:41.861017 +AZURE,eastus2,Standard_E8s_v5,spot,NA,0.153518,USD,Azure Retail Prices API,2025-12-18T04:44:39.648717 +AZURE,eastus2,Standard_E96a_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:39.649441 +AZURE,eastus2,Standard_E96a_v4,reserved_1y,NA,3.556164,USD,Azure Retail Prices API,2025-12-18T04:44:41.860927 +AZURE,eastus2,Standard_E96a_v4,reserved_3y,NA,2.387215,USD,Azure Retail Prices API,2025-12-18T04:44:41.860932 +AZURE,eastus2,Standard_E96a_v4,spot,NA,1.395274,USD,Azure Retail Prices API,2025-12-18T04:44:39.648124 +AZURE,eastus2,Standard_E96ads_v5,on_demand,NA,6.288,USD,Azure Retail Prices API,2025-12-18T04:44:39.648114 +AZURE,eastus2,Standard_E96ads_v5,reserved_1y,NA,3.709932,USD,Azure Retail Prices API,2025-12-18T04:44:41.859610 +AZURE,eastus2,Standard_E96ads_v5,reserved_3y,NA,2.389422,USD,Azure Retail Prices API,2025-12-18T04:44:41.859613 +AZURE,eastus2,Standard_E96ads_v5,spot,NA,1.450642,USD,Azure Retail Prices API,2025-12-18T04:44:39.649532 +AZURE,eastus2,Standard_E96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:44:39.648776 +AZURE,eastus2,Standard_E96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:44:41.860316 +AZURE,eastus2,Standard_E96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:44:41.860319 +AZURE,eastus2,Standard_E96ads_v6,spot,NA,1.35218,USD,Azure Retail Prices API,2025-12-18T04:44:39.648773 +AZURE,eastus2,Standard_E96as_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:39.649269 +AZURE,eastus2,Standard_E96as_v4,reserved_1y,NA,3.556164,USD,Azure Retail Prices API,2025-12-18T04:44:41.860785 +AZURE,eastus2,Standard_E96as_v4,reserved_3y,NA,2.387215,USD,Azure Retail Prices API,2025-12-18T04:44:41.860787 +AZURE,eastus2,Standard_E96as_v4,spot,NA,1.395274,USD,Azure Retail Prices API,2025-12-18T04:44:39.648170 +AZURE,eastus2,Standard_E96as_v5,on_demand,NA,9.84,USD,Azure Retail Prices API,2025-12-18T04:44:39.648474 +AZURE,eastus2,Standard_E96as_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:44:41.860113 +AZURE,eastus2,Standard_E96as_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:44:41.860116 +AZURE,eastus2,Standard_E96as_v5,spot,NA,1.251317,USD,Azure Retail Prices API,2025-12-18T04:44:39.648729 +AZURE,eastus2,Standard_E96ds_v5,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:44:39.649319 +AZURE,eastus2,Standard_E96ds_v5,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:44:41.860822 +AZURE,eastus2,Standard_E96ds_v5,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:44:41.860824 +AZURE,eastus2,Standard_E96ds_v5,spot,NA,1.998259,USD,Azure Retail Prices API,2025-12-18T04:44:39.649787 +AZURE,eastus2,Standard_E96ds_v6,on_demand,NA,7.849,USD,Azure Retail Prices API,2025-12-18T04:44:39.649235 +AZURE,eastus2,Standard_E96ds_v6,reserved_1y,NA,4.866324,USD,Azure Retail Prices API,2025-12-18T04:44:41.860757 +AZURE,eastus2,Standard_E96ds_v6,reserved_3y,NA,3.061111,USD,Azure Retail Prices API,2025-12-18T04:44:41.860760 +AZURE,eastus2,Standard_E96ds_v6,spot,NA,1.450495,USD,Azure Retail Prices API,2025-12-18T04:44:39.649508 +AZURE,eastus2,Standard_E96pds_v6,on_demand,NA,5.616,USD,Azure Retail Prices API,2025-12-18T04:44:39.649351 +AZURE,eastus2,Standard_E96pds_v6,reserved_1y,NA,3.31347,USD,Azure Retail Prices API,2025-12-18T04:44:41.860848 +AZURE,eastus2,Standard_E96pds_v6,reserved_3y,NA,2.134094,USD,Azure Retail Prices API,2025-12-18T04:44:41.860851 +AZURE,eastus2,Standard_E96pds_v6,spot,NA,1.396138,USD,Azure Retail Prices API,2025-12-18T04:44:39.648931 +AZURE,eastus2,Standard_E96ps_v6,on_demand,NA,4.426,USD,Azure Retail Prices API,2025-12-18T04:44:39.649367 +AZURE,eastus2,Standard_E96ps_v6,reserved_1y,NA,2.611073,USD,Azure Retail Prices API,2025-12-18T04:44:41.860869 +AZURE,eastus2,Standard_E96ps_v6,reserved_3y,NA,1.681735,USD,Azure Retail Prices API,2025-12-18T04:44:41.860872 +AZURE,eastus2,Standard_E96ps_v6,spot,NA,1.100304,USD,Azure Retail Prices API,2025-12-18T04:44:39.649506 +AZURE,eastus2,Standard_E96s_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:39.649470 +AZURE,eastus2,Standard_E96s_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:44:41.860961 +AZURE,eastus2,Standard_E96s_v5,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:44:41.860963 +AZURE,eastus2,Standard_E96s_v5,spot,NA,1.842221,USD,Azure Retail Prices API,2025-12-18T04:44:39.648973 +AZURE,eastus2,Standard_EC16ads_v5,on_demand,NA,1.048,USD,Azure Retail Prices API,2025-12-18T04:44:39.649229 +AZURE,eastus2,Standard_EC16ads_v5,reserved_1y,NA,0.838356,USD,Azure Retail Prices API,2025-12-18T04:44:41.860747 +AZURE,eastus2,Standard_EC16ads_v5,reserved_3y,NA,0.628805,USD,Azure Retail Prices API,2025-12-18T04:44:41.860749 +AZURE,eastus2,Standard_EC16ads_v5,spot,NA,0.197758,USD,Azure Retail Prices API,2025-12-18T04:44:39.648223 +AZURE,eastus2,Standard_EC16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:44:39.648240 +AZURE,eastus2,Standard_EC16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:44:41.859737 +AZURE,eastus2,Standard_EC16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:44:41.859740 +AZURE,eastus2,Standard_EC16ads_v6,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:44:39.648680 +AZURE,eastus2,Standard_EC16as_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:39.648577 +AZURE,eastus2,Standard_EC16as_v5,reserved_1y,NA,0.723174,USD,Azure Retail Prices API,2025-12-18T04:44:41.860119 +AZURE,eastus2,Standard_EC16as_v5,reserved_3y,NA,0.54239,USD,Azure Retail Prices API,2025-12-18T04:44:41.860122 +AZURE,eastus2,Standard_EC16as_v5,spot,NA,0.170585,USD,Azure Retail Prices API,2025-12-18T04:44:39.649476 +AZURE,eastus2,Standard_EC16as_v6,on_demand,NA,0.954,USD,Azure Retail Prices API,2025-12-18T04:44:39.648694 +AZURE,eastus2,Standard_EC16as_v6,reserved_1y,NA,0.562671,USD,Azure Retail Prices API,2025-12-18T04:44:41.860250 +AZURE,eastus2,Standard_EC16as_v6,reserved_3y,NA,0.362367,USD,Azure Retail Prices API,2025-12-18T04:44:41.860253 +AZURE,eastus2,Standard_EC16as_v6,spot,NA,0.176299,USD,Azure Retail Prices API,2025-12-18T04:44:39.648809 +AZURE,eastus2,Standard_EC20ads_v5,on_demand,NA,1.31,USD,Azure Retail Prices API,2025-12-18T04:44:39.648637 +AZURE,eastus2,Standard_EC20ads_v5,reserved_1y,NA,1.047945,USD,Azure Retail Prices API,2025-12-18T04:44:41.860196 +AZURE,eastus2,Standard_EC20ads_v5,reserved_3y,NA,0.785997,USD,Azure Retail Prices API,2025-12-18T04:44:41.860199 +AZURE,eastus2,Standard_EC20ads_v5,spot,NA,0.247197,USD,Azure Retail Prices API,2025-12-18T04:44:39.649035 +AZURE,eastus2,Standard_EC20as_v5,on_demand,NA,1.13,USD,Azure Retail Prices API,2025-12-18T04:44:39.649359 +AZURE,eastus2,Standard_EC20as_v5,reserved_1y,NA,0.903995,USD,Azure Retail Prices API,2025-12-18T04:44:41.860858 +AZURE,eastus2,Standard_EC20as_v5,reserved_3y,NA,0.678006,USD,Azure Retail Prices API,2025-12-18T04:44:41.860861 +AZURE,eastus2,Standard_EC20as_v5,spot,NA,0.213231,USD,Azure Retail Prices API,2025-12-18T04:44:39.649333 +AZURE,eastus2,Standard_EC2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:39.648569 +AZURE,eastus2,Standard_EC2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:44:41.860107 +AZURE,eastus2,Standard_EC2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:44:41.860110 +AZURE,eastus2,Standard_EC2ads_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:44:39.648252 +AZURE,eastus2,Standard_EC2as_v6,on_demand,NA,0.119,USD,Azure Retail Prices API,2025-12-18T04:44:39.648883 +AZURE,eastus2,Standard_EC2as_v6,reserved_1y,NA,0.07032,USD,Azure Retail Prices API,2025-12-18T04:44:41.860454 +AZURE,eastus2,Standard_EC2as_v6,reserved_3y,NA,0.045282,USD,Azure Retail Prices API,2025-12-18T04:44:41.860457 +AZURE,eastus2,Standard_EC2as_v6,spot,NA,0.021991,USD,Azure Retail Prices API,2025-12-18T04:44:39.648529 +AZURE,eastus2,Standard_EC32ads_v5,on_demand,NA,2.096,USD,Azure Retail Prices API,2025-12-18T04:44:39.648894 +AZURE,eastus2,Standard_EC32ads_v5,reserved_1y,NA,1.676826,USD,Azure Retail Prices API,2025-12-18T04:44:41.860478 +AZURE,eastus2,Standard_EC32ads_v5,reserved_3y,NA,1.25761,USD,Azure Retail Prices API,2025-12-18T04:44:41.860480 +AZURE,eastus2,Standard_EC32ads_v5,spot,NA,0.395515,USD,Azure Retail Prices API,2025-12-18T04:44:39.648798 +AZURE,eastus2,Standard_EC32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:44:39.649614 +AZURE,eastus2,Standard_EC32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:44:41.861083 +AZURE,eastus2,Standard_EC32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:44:41.861085 +AZURE,eastus2,Standard_EC32ads_v6,spot,NA,0.42929,USD,Azure Retail Prices API,2025-12-18T04:44:39.649768 +AZURE,eastus2,Standard_EC32as_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:39.649705 +AZURE,eastus2,Standard_EC32as_v5,reserved_1y,NA,1.446347,USD,Azure Retail Prices API,2025-12-18T04:44:41.861177 +AZURE,eastus2,Standard_EC32as_v5,reserved_3y,NA,1.084817,USD,Azure Retail Prices API,2025-12-18T04:44:41.861180 +AZURE,eastus2,Standard_EC32as_v5,spot,NA,0.34117,USD,Azure Retail Prices API,2025-12-18T04:44:39.649773 +AZURE,eastus2,Standard_EC32as_v6,on_demand,NA,1.907,USD,Azure Retail Prices API,2025-12-18T04:44:39.648167 +AZURE,eastus2,Standard_EC32as_v6,reserved_1y,NA,1.125228,USD,Azure Retail Prices API,2025-12-18T04:44:41.859658 +AZURE,eastus2,Standard_EC32as_v6,reserved_3y,NA,0.724734,USD,Azure Retail Prices API,2025-12-18T04:44:41.859661 +AZURE,eastus2,Standard_EC32as_v6,spot,NA,0.352414,USD,Azure Retail Prices API,2025-12-18T04:44:39.648173 +AZURE,eastus2,Standard_EC48ads_v5,on_demand,NA,3.144,USD,Azure Retail Prices API,2025-12-18T04:44:39.648176 +AZURE,eastus2,Standard_EC48ads_v5,reserved_1y,NA,2.515183,USD,Azure Retail Prices API,2025-12-18T04:44:41.859664 +AZURE,eastus2,Standard_EC48ads_v5,reserved_3y,NA,1.886416,USD,Azure Retail Prices API,2025-12-18T04:44:41.859667 +AZURE,eastus2,Standard_EC48ads_v5,spot,NA,0.593273,USD,Azure Retail Prices API,2025-12-18T04:44:39.649298 +AZURE,eastus2,Standard_EC48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:44:39.648249 +AZURE,eastus2,Standard_EC48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:44:41.859748 +AZURE,eastus2,Standard_EC48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:44:41.859751 +AZURE,eastus2,Standard_EC48ads_v6,spot,NA,0.644028,USD,Azure Retail Prices API,2025-12-18T04:44:39.649805 +AZURE,eastus2,Standard_EC48as_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:39.648714 +AZURE,eastus2,Standard_EC48as_v5,reserved_1y,NA,2.169635,USD,Azure Retail Prices API,2025-12-18T04:44:41.860267 +AZURE,eastus2,Standard_EC48as_v5,reserved_3y,NA,1.627207,USD,Azure Retail Prices API,2025-12-18T04:44:41.860269 +AZURE,eastus2,Standard_EC48as_v5,spot,NA,0.511754,USD,Azure Retail Prices API,2025-12-18T04:44:39.648260 +AZURE,eastus2,Standard_EC48as_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:44:39.648255 +AZURE,eastus2,Standard_EC48as_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:44:41.859754 +AZURE,eastus2,Standard_EC48as_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:44:41.859756 +AZURE,eastus2,Standard_EC48as_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:44:39.648855 +AZURE,eastus2,Standard_EC4ads_v5,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:44:39.648480 +AZURE,eastus2,Standard_EC4ads_v5,reserved_1y,NA,0.209589,USD,Azure Retail Prices API,2025-12-18T04:44:41.860006 +AZURE,eastus2,Standard_EC4ads_v5,reserved_3y,NA,0.157192,USD,Azure Retail Prices API,2025-12-18T04:44:41.860009 +AZURE,eastus2,Standard_EC4ads_v5,spot,NA,0.049439,USD,Azure Retail Prices API,2025-12-18T04:44:39.649085 +AZURE,eastus2,Standard_EC4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:44:39.648147 +AZURE,eastus2,Standard_EC4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:44:41.859634 +AZURE,eastus2,Standard_EC4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:44:41.859637 +AZURE,eastus2,Standard_EC4ads_v6,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:44:39.648182 +AZURE,eastus2,Standard_EC4as_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:39.648583 +AZURE,eastus2,Standard_EC4as_v5,reserved_1y,NA,0.180822,USD,Azure Retail Prices API,2025-12-18T04:44:41.860130 +AZURE,eastus2,Standard_EC4as_v5,reserved_3y,NA,0.135616,USD,Azure Retail Prices API,2025-12-18T04:44:41.860133 +AZURE,eastus2,Standard_EC4as_v5,spot,NA,0.042646,USD,Azure Retail Prices API,2025-12-18T04:44:39.648349 +AZURE,eastus2,Standard_EC4as_v6,on_demand,NA,0.238,USD,Azure Retail Prices API,2025-12-18T04:44:39.649178 +AZURE,eastus2,Standard_EC4as_v6,reserved_1y,NA,0.140639,USD,Azure Retail Prices API,2025-12-18T04:44:41.860713 +AZURE,eastus2,Standard_EC4as_v6,reserved_3y,NA,0.090601,USD,Azure Retail Prices API,2025-12-18T04:44:41.860716 +AZURE,eastus2,Standard_EC4as_v6,spot,NA,0.043982,USD,Azure Retail Prices API,2025-12-18T04:44:39.649376 +AZURE,eastus2,Standard_EC64ads_v5,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:44:39.648826 +AZURE,eastus2,Standard_EC64ads_v5,reserved_1y,NA,3.353653,USD,Azure Retail Prices API,2025-12-18T04:44:41.860380 +AZURE,eastus2,Standard_EC64ads_v5,reserved_3y,NA,2.515183,USD,Azure Retail Prices API,2025-12-18T04:44:41.860382 +AZURE,eastus2,Standard_EC64ads_v5,spot,NA,0.79103,USD,Azure Retail Prices API,2025-12-18T04:44:39.648676 +AZURE,eastus2,Standard_EC64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:44:39.648631 +AZURE,eastus2,Standard_EC64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:44:41.860185 +AZURE,eastus2,Standard_EC64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:44:41.860188 +AZURE,eastus2,Standard_EC64ads_v6,spot,NA,0.858581,USD,Azure Retail Prices API,2025-12-18T04:44:39.649181 +AZURE,eastus2,Standard_EC64as_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:39.649729 +AZURE,eastus2,Standard_EC64as_v5,reserved_1y,NA,2.892808,USD,Azure Retail Prices API,2025-12-18T04:44:41.861204 +AZURE,eastus2,Standard_EC64as_v5,reserved_3y,NA,2.169597,USD,Azure Retail Prices API,2025-12-18T04:44:41.861207 +AZURE,eastus2,Standard_EC64as_v5,spot,NA,0.682339,USD,Azure Retail Prices API,2025-12-18T04:44:39.649645 +AZURE,eastus2,Standard_EC64as_v6,on_demand,NA,3.814,USD,Azure Retail Prices API,2025-12-18T04:44:39.648591 +AZURE,eastus2,Standard_EC64as_v6,reserved_1y,NA,2.250457,USD,Azure Retail Prices API,2025-12-18T04:44:41.860147 +AZURE,eastus2,Standard_EC64as_v6,reserved_3y,NA,1.449467,USD,Azure Retail Prices API,2025-12-18T04:44:41.860149 +AZURE,eastus2,Standard_EC64as_v6,spot,NA,0.704827,USD,Azure Retail Prices API,2025-12-18T04:44:39.649241 +AZURE,eastus2,Standard_EC8ads_v5,on_demand,NA,0.524,USD,Azure Retail Prices API,2025-12-18T04:44:39.649543 +AZURE,eastus2,Standard_EC8ads_v5,reserved_1y,NA,0.419178,USD,Azure Retail Prices API,2025-12-18T04:44:41.861030 +AZURE,eastus2,Standard_EC8ads_v5,reserved_3y,NA,0.314384,USD,Azure Retail Prices API,2025-12-18T04:44:41.861033 +AZURE,eastus2,Standard_EC8ads_v5,spot,NA,0.098879,USD,Azure Retail Prices API,2025-12-18T04:44:39.649688 +AZURE,eastus2,Standard_EC8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:39.649581 +AZURE,eastus2,Standard_EC8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:44:41.861046 +AZURE,eastus2,Standard_EC8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:44:41.861048 +AZURE,eastus2,Standard_EC8ads_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:44:39.648446 +AZURE,eastus2,Standard_EC8as_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:39.648512 +AZURE,eastus2,Standard_EC8as_v5,reserved_1y,NA,0.361644,USD,Azure Retail Prices API,2025-12-18T04:44:41.860051 +AZURE,eastus2,Standard_EC8as_v5,reserved_3y,NA,0.271195,USD,Azure Retail Prices API,2025-12-18T04:44:41.860054 +AZURE,eastus2,Standard_EC8as_v5,spot,NA,0.085292,USD,Azure Retail Prices API,2025-12-18T04:44:39.649622 +AZURE,eastus2,Standard_EC8as_v6,on_demand,NA,0.477,USD,Azure Retail Prices API,2025-12-18T04:44:39.649818 +AZURE,eastus2,Standard_EC8as_v6,reserved_1y,NA,0.281279,USD,Azure Retail Prices API,2025-12-18T04:44:41.861289 +AZURE,eastus2,Standard_EC8as_v6,reserved_3y,NA,0.181202,USD,Azure Retail Prices API,2025-12-18T04:44:41.861292 +AZURE,eastus2,Standard_EC8as_v6,spot,NA,0.08815,USD,Azure Retail Prices API,2025-12-18T04:44:39.649336 +AZURE,eastus2,Standard_EC96ads_v5,on_demand,NA,6.288,USD,Azure Retail Prices API,2025-12-18T04:44:39.649263 +AZURE,eastus2,Standard_EC96ads_v5,reserved_1y,NA,5.030365,USD,Azure Retail Prices API,2025-12-18T04:44:41.860779 +AZURE,eastus2,Standard_EC96ads_v5,reserved_3y,NA,3.772793,USD,Azure Retail Prices API,2025-12-18T04:44:41.860782 +AZURE,eastus2,Standard_EC96ads_v5,spot,NA,1.186546,USD,Azure Retail Prices API,2025-12-18T04:44:39.648555 +AZURE,eastus2,Standard_EC96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:44:39.649755 +AZURE,eastus2,Standard_EC96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:44:41.861227 +AZURE,eastus2,Standard_EC96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:44:41.861229 +AZURE,eastus2,Standard_EC96ads_v6,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:44:39.648984 +AZURE,eastus2,Standard_EC96as_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:39.649176 +AZURE,eastus2,Standard_EC96as_v5,reserved_1y,NA,4.339155,USD,Azure Retail Prices API,2025-12-18T04:44:41.860708 +AZURE,eastus2,Standard_EC96as_v5,reserved_3y,NA,3.254414,USD,Azure Retail Prices API,2025-12-18T04:44:41.860711 +AZURE,eastus2,Standard_EC96as_v5,spot,NA,1.023509,USD,Azure Retail Prices API,2025-12-18T04:44:39.648361 +AZURE,eastus2,Standard_EC96as_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:44:39.648588 +AZURE,eastus2,Standard_EC96as_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:44:41.860141 +AZURE,eastus2,Standard_EC96as_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:44:41.860144 +AZURE,eastus2,Standard_EC96as_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:44:39.649007 +AZURE,eastus2,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379221 +AZURE,eastus2,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379230 +AZURE,eastus2,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379235 +AZURE,eastus2,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379226 +AZURE,eastus2,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381495 +AZURE,eastus2,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381503 +AZURE,eastus2,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381507 +AZURE,eastus2,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381499 +AZURE,eastus2,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384224 +AZURE,eastus2,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384233 +AZURE,eastus2,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384237 +AZURE,eastus2,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384229 +AZURE,eastus2,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385003 +AZURE,eastus2,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385012 +AZURE,eastus2,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385017 +AZURE,eastus2,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385008 +AZURE,eastus2,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377588 +AZURE,eastus2,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377597 +AZURE,eastus2,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377601 +AZURE,eastus2,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377592 +AZURE,eastus2,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385839 +AZURE,eastus2,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385847 +AZURE,eastus2,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385851 +AZURE,eastus2,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385843 +AZURE,eastus2,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379978 +AZURE,eastus2,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379986 +AZURE,eastus2,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379991 +AZURE,eastus2,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379982 +AZURE,eastus2,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382298 +AZURE,eastus2,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382307 +AZURE,eastus2,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382311 +AZURE,eastus2,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382303 +AZURE,eastus2,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386629 +AZURE,eastus2,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386637 +AZURE,eastus2,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386641 +AZURE,eastus2,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386633 +AZURE,eastus2,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387401 +AZURE,eastus2,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387412 +AZURE,eastus2,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387417 +AZURE,eastus2,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387408 +AZURE,eastus2,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378421 +AZURE,eastus2,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378429 +AZURE,eastus2,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378434 +AZURE,eastus2,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378425 +AZURE,eastus2,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380697 +AZURE,eastus2,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380705 +AZURE,eastus2,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380709 +AZURE,eastus2,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380701 +AZURE,eastus2,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383427 +AZURE,eastus2,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383436 +AZURE,eastus2,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383440 +AZURE,eastus2,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383431 +AZURE,eastus2,Standard_L16as_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:44:39.648179 +AZURE,eastus2,Standard_L16as_v3,reserved_1y,NA,0.798744,USD,Azure Retail Prices API,2025-12-18T04:44:41.859670 +AZURE,eastus2,Standard_L16as_v3,reserved_3y,NA,0.524163,USD,Azure Retail Prices API,2025-12-18T04:44:41.859673 +AZURE,eastus2,Standard_L16as_v3,spot,NA,0.287914,USD,Azure Retail Prices API,2025-12-18T04:44:39.649037 +AZURE,eastus2,Standard_L16s_v3,on_demand,NA,1.396,USD,Azure Retail Prices API,2025-12-18T04:44:39.648424 +AZURE,eastus2,Standard_L16s_v3,reserved_1y,NA,0.893493,USD,Azure Retail Prices API,2025-12-18T04:44:41.859930 +AZURE,eastus2,Standard_L16s_v3,reserved_3y,NA,0.586301,USD,Azure Retail Prices API,2025-12-18T04:44:41.859932 +AZURE,eastus2,Standard_L16s_v3,spot,NA,0.403584,USD,Azure Retail Prices API,2025-12-18T04:44:39.648703 +AZURE,eastus2,Standard_L32as_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:44:39.649816 +AZURE,eastus2,Standard_L32as_v3,reserved_1y,NA,1.597489,USD,Azure Retail Prices API,2025-12-18T04:44:41.861283 +AZURE,eastus2,Standard_L32as_v3,reserved_3y,NA,1.048326,USD,Azure Retail Prices API,2025-12-18T04:44:41.861286 +AZURE,eastus2,Standard_L32as_v3,spot,NA,0.575827,USD,Azure Retail Prices API,2025-12-18T04:44:39.649563 +AZURE,eastus2,Standard_L32s_v3,on_demand,NA,2.792,USD,Azure Retail Prices API,2025-12-18T04:44:39.649187 +AZURE,eastus2,Standard_L32s_v3,reserved_1y,NA,1.786872,USD,Azure Retail Prices API,2025-12-18T04:44:41.860719 +AZURE,eastus2,Standard_L32s_v3,reserved_3y,NA,1.172641,USD,Azure Retail Prices API,2025-12-18T04:44:41.860722 +AZURE,eastus2,Standard_L32s_v3,spot,NA,0.807167,USD,Azure Retail Prices API,2025-12-18T04:44:39.648804 +AZURE,eastus2,Standard_L48as_v3,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:39.649578 +AZURE,eastus2,Standard_L48as_v3,reserved_1y,NA,2.396119,USD,Azure Retail Prices API,2025-12-18T04:44:41.861041 +AZURE,eastus2,Standard_L48as_v3,reserved_3y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:44:41.861043 +AZURE,eastus2,Standard_L48as_v3,spot,NA,0.863741,USD,Azure Retail Prices API,2025-12-18T04:44:39.648506 +AZURE,eastus2,Standard_L48s_v3,on_demand,NA,4.188,USD,Azure Retail Prices API,2025-12-18T04:44:39.648355 +AZURE,eastus2,Standard_L48s_v3,reserved_1y,NA,2.680365,USD,Azure Retail Prices API,2025-12-18T04:44:41.859849 +AZURE,eastus2,Standard_L48s_v3,reserved_3y,NA,1.758942,USD,Azure Retail Prices API,2025-12-18T04:44:41.859853 +AZURE,eastus2,Standard_L48s_v3,spot,NA,1.210751,USD,Azure Retail Prices API,2025-12-18T04:44:39.648137 +AZURE,eastus2,Standard_L64as_v3,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:44:39.649301 +AZURE,eastus2,Standard_L64as_v3,reserved_1y,NA,3.194863,USD,Azure Retail Prices API,2025-12-18T04:44:41.860806 +AZURE,eastus2,Standard_L64as_v3,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:44:41.860809 +AZURE,eastus2,Standard_L64as_v3,spot,NA,1.151654,USD,Azure Retail Prices API,2025-12-18T04:44:39.648457 +AZURE,eastus2,Standard_L64s_v3,on_demand,NA,5.584,USD,Azure Retail Prices API,2025-12-18T04:44:39.648656 +AZURE,eastus2,Standard_L64s_v3,reserved_1y,NA,3.573744,USD,Azure Retail Prices API,2025-12-18T04:44:41.860223 +AZURE,eastus2,Standard_L64s_v3,reserved_3y,NA,2.345282,USD,Azure Retail Prices API,2025-12-18T04:44:41.860226 +AZURE,eastus2,Standard_L64s_v3,spot,NA,1.614334,USD,Azure Retail Prices API,2025-12-18T04:44:39.649796 +AZURE,eastus2,Standard_L80as_v3,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:44:39.649096 +AZURE,eastus2,Standard_L80as_v3,reserved_1y,NA,3.993607,USD,Azure Retail Prices API,2025-12-18T04:44:41.860666 +AZURE,eastus2,Standard_L80as_v3,reserved_3y,NA,2.620814,USD,Azure Retail Prices API,2025-12-18T04:44:41.860668 +AZURE,eastus2,Standard_L80as_v3,spot,NA,1.439568,USD,Azure Retail Prices API,2025-12-18T04:44:39.648709 +AZURE,eastus2,Standard_L80s_v3,on_demand,NA,6.98,USD,Azure Retail Prices API,2025-12-18T04:44:39.649413 +AZURE,eastus2,Standard_L80s_v3,reserved_1y,NA,4.467237,USD,Azure Retail Prices API,2025-12-18T04:44:41.860901 +AZURE,eastus2,Standard_L80s_v3,reserved_3y,NA,2.931583,USD,Azure Retail Prices API,2025-12-18T04:44:41.860904 +AZURE,eastus2,Standard_L80s_v3,spot,NA,2.017918,USD,Azure Retail Prices API,2025-12-18T04:44:39.649650 +AZURE,eastus2,Standard_L8as_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:44:39.649762 +AZURE,eastus2,Standard_L8as_v3,reserved_1y,NA,0.399315,USD,Azure Retail Prices API,2025-12-18T04:44:41.861238 +AZURE,eastus2,Standard_L8as_v3,reserved_3y,NA,0.262062,USD,Azure Retail Prices API,2025-12-18T04:44:41.861240 +AZURE,eastus2,Standard_L8as_v3,spot,NA,0.143957,USD,Azure Retail Prices API,2025-12-18T04:44:39.649290 +AZURE,eastus2,Standard_L8s_v3,on_demand,NA,0.698,USD,Azure Retail Prices API,2025-12-18T04:44:39.649002 +AZURE,eastus2,Standard_L8s_v3,reserved_1y,NA,0.446689,USD,Azure Retail Prices API,2025-12-18T04:44:41.860567 +AZURE,eastus2,Standard_L8s_v3,reserved_3y,NA,0.293151,USD,Azure Retail Prices API,2025-12-18T04:44:41.860570 +AZURE,eastus2,Standard_L8s_v3,spot,NA,0.201792,USD,Azure Retail Prices API,2025-12-18T04:44:39.649430 +AZURE,eastus2,Standard_NC12s_v3,on_demand,NA,6.12,USD,Azure Retail Prices API,2025-12-18T04:44:39.649525 +AZURE,eastus2,Standard_NC12s_v3,spot,NA,1.130976,USD,Azure Retail Prices API,2025-12-18T04:44:39.649586 +AZURE,eastus2,Standard_NC16as_T4_v3,on_demand,NA,1.204,USD,Azure Retail Prices API,2025-12-18T04:44:39.649821 +AZURE,eastus2,Standard_NC16as_T4_v3,reserved_1y,NA,0.770548,USD,Azure Retail Prices API,2025-12-18T04:44:41.861294 +AZURE,eastus2,Standard_NC16as_T4_v3,reserved_3y,NA,0.457534,USD,Azure Retail Prices API,2025-12-18T04:44:41.861297 +AZURE,eastus2,Standard_NC16as_T4_v3,spot,NA,0.586107,USD,Azure Retail Prices API,2025-12-18T04:44:39.648372 +AZURE,eastus2,Standard_NC24ads_A100_v4,on_demand,NA,3.673,USD,Azure Retail Prices API,2025-12-18T04:44:39.649062 +AZURE,eastus2,Standard_NC24ads_A100_v4,reserved_1y,NA,2.401027,USD,Azure Retail Prices API,2025-12-18T04:44:41.860639 +AZURE,eastus2,Standard_NC24ads_A100_v4,reserved_3y,NA,1.363052,USD,Azure Retail Prices API,2025-12-18T04:44:41.860642 +AZURE,eastus2,Standard_NC24ads_A100_v4,spot,NA,1.108511,USD,Azure Retail Prices API,2025-12-18T04:44:39.649281 +AZURE,eastus2,Standard_NC24s_v3,on_demand,NA,12.24,USD,Azure Retail Prices API,2025-12-18T04:44:39.649759 +AZURE,eastus2,Standard_NC24s_v3,spot,NA,2.261952,USD,Azure Retail Prices API,2025-12-18T04:44:39.649460 +AZURE,eastus2,Standard_NC40ads_H100_v5,on_demand,NA,6.98,USD,Azure Retail Prices API,2025-12-18T04:44:39.649500 +AZURE,eastus2,Standard_NC40ads_H100_v5,reserved_1y,NA,5.235046,USD,Azure Retail Prices API,2025-12-18T04:44:41.860993 +AZURE,eastus2,Standard_NC40ads_H100_v5,reserved_3y,NA,3.839003,USD,Azure Retail Prices API,2025-12-18T04:44:41.860996 +AZURE,eastus2,Standard_NC40ads_H100_v5,spot,NA,6.282,USD,Azure Retail Prices API,2025-12-18T04:44:39.649307 +AZURE,eastus2,Standard_NC48ads_A100_v4,on_demand,NA,7.346,USD,Azure Retail Prices API,2025-12-18T04:44:39.648101 +AZURE,eastus2,Standard_NC48ads_A100_v4,reserved_1y,NA,4.802055,USD,Azure Retail Prices API,2025-12-18T04:44:41.859594 +AZURE,eastus2,Standard_NC48ads_A100_v4,reserved_3y,NA,2.726104,USD,Azure Retail Prices API,2025-12-18T04:44:41.859606 +AZURE,eastus2,Standard_NC48ads_A100_v4,spot,NA,2.217023,USD,Azure Retail Prices API,2025-12-18T04:44:39.648552 +AZURE,eastus2,Standard_NC4as_T4_v3,on_demand,NA,0.526,USD,Azure Retail Prices API,2025-12-18T04:44:39.648346 +AZURE,eastus2,Standard_NC4as_T4_v3,reserved_1y,NA,0.336644,USD,Azure Retail Prices API,2025-12-18T04:44:41.859840 +AZURE,eastus2,Standard_NC4as_T4_v3,reserved_3y,NA,0.199886,USD,Azure Retail Prices API,2025-12-18T04:44:41.859844 +AZURE,eastus2,Standard_NC4as_T4_v3,spot,NA,0.256057,USD,Azure Retail Prices API,2025-12-18T04:44:39.649495 +AZURE,eastus2,Standard_NC64as_T4_v3,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:44:39.648471 +AZURE,eastus2,Standard_NC64as_T4_v3,reserved_1y,NA,2.785274,USD,Azure Retail Prices API,2025-12-18T04:44:41.859994 +AZURE,eastus2,Standard_NC64as_T4_v3,reserved_3y,NA,1.653767,USD,Azure Retail Prices API,2025-12-18T04:44:41.859997 +AZURE,eastus2,Standard_NC64as_T4_v3,spot,NA,2.118554,USD,Azure Retail Prices API,2025-12-18T04:44:39.649782 +AZURE,eastus2,Standard_NC6s_v3,on_demand,NA,3.06,USD,Azure Retail Prices API,2025-12-18T04:44:39.649647 +AZURE,eastus2,Standard_NC6s_v3,spot,NA,0.565488,USD,Azure Retail Prices API,2025-12-18T04:44:39.648143 +AZURE,eastus2,Standard_NC8as_T4_v3,on_demand,NA,0.752,USD,Azure Retail Prices API,2025-12-18T04:44:39.649059 +AZURE,eastus2,Standard_NC8as_T4_v3,reserved_1y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:44:41.860634 +AZURE,eastus2,Standard_NC8as_T4_v3,reserved_3y,NA,0.285769,USD,Azure Retail Prices API,2025-12-18T04:44:41.860636 +AZURE,eastus2,Standard_NC8as_T4_v3,spot,NA,0.366074,USD,Azure Retail Prices API,2025-12-18T04:44:39.648723 +AZURE,eastus2,Standard_NC96ads_A100_v4,on_demand,NA,14.692,USD,Azure Retail Prices API,2025-12-18T04:44:39.648782 +AZURE,eastus2,Standard_NC96ads_A100_v4,reserved_1y,NA,9.60411,USD,Azure Retail Prices API,2025-12-18T04:44:41.860327 +AZURE,eastus2,Standard_NC96ads_A100_v4,reserved_3y,NA,5.452207,USD,Azure Retail Prices API,2025-12-18T04:44:41.860329 +AZURE,eastus2,Standard_NC96ads_A100_v4,spot,NA,4.434046,USD,Azure Retail Prices API,2025-12-18T04:44:39.648370 +AZURE,eastus2,Standard_ND96isr_H100_v5,on_demand,NA,98.32,USD,Azure Retail Prices API,2025-12-18T04:44:39.648818 +AZURE,eastus2,Standard_ND96isr_H100_v5,reserved_1y,NA,62.924772,USD,Azure Retail Prices API,2025-12-18T04:44:41.860364 +AZURE,eastus2,Standard_ND96isr_H100_v5,reserved_3y,NA,43.162481,USD,Azure Retail Prices API,2025-12-18T04:44:41.860367 +AZURE,eastus2,Standard_ND96isr_H100_v5,spot,NA,18.788952,USD,Azure Retail Prices API,2025-12-18T04:44:39.649032 +AZURE,eastus2,Standard_NV36adms_A10_v5,on_demand,NA,4.52,USD,Azure Retail Prices API,2025-12-18T04:44:39.649540 +AZURE,eastus2,Standard_NV36adms_A10_v5,reserved_1y,NA,2.892808,USD,Azure Retail Prices API,2025-12-18T04:44:41.861025 +AZURE,eastus2,Standard_NV36adms_A10_v5,reserved_3y,NA,1.988813,USD,Azure Retail Prices API,2025-12-18T04:44:41.861027 +AZURE,eastus2,Standard_NV36adms_A10_v5,spot,NA,0.946036,USD,Azure Retail Prices API,2025-12-18T04:44:39.648667 +AZURE,eastus2,Standard_NV36ads_A10_v5,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:44:39.648849 +AZURE,eastus2,Standard_NV36ads_A10_v5,reserved_1y,NA,2.047945,USD,Azure Retail Prices API,2025-12-18T04:44:41.860409 +AZURE,eastus2,Standard_NV36ads_A10_v5,reserved_3y,NA,1.407991,USD,Azure Retail Prices API,2025-12-18T04:44:41.860414 +AZURE,eastus2,Standard_NV36ads_A10_v5,spot,NA,0.66976,USD,Azure Retail Prices API,2025-12-18T04:44:39.649572 +AZURE,eastus2,Standard_NV72ads_A10_v5,on_demand,NA,6.52,USD,Azure Retail Prices API,2025-12-18T04:44:39.648586 +AZURE,eastus2,Standard_NV72ads_A10_v5,reserved_1y,NA,4.172831,USD,Azure Retail Prices API,2025-12-18T04:44:41.860136 +AZURE,eastus2,Standard_NV72ads_A10_v5,reserved_3y,NA,2.868798,USD,Azure Retail Prices API,2025-12-18T04:44:41.860138 +AZURE,eastus2,Standard_NV72ads_A10_v5,spot,NA,1.364636,USD,Azure Retail Prices API,2025-12-18T04:44:39.649104 +AZURE,francecentral,Standard_D128ds_v6,on_demand,NA,9.303,USD,Azure Retail Prices API,2025-12-18T04:45:43.839746 +AZURE,francecentral,Standard_D128ds_v6,reserved_1y,NA,5.767922,USD,Azure Retail Prices API,2025-12-18T04:45:45.541962 +AZURE,francecentral,Standard_D128ds_v6,reserved_3y,NA,3.628196,USD,Azure Retail Prices API,2025-12-18T04:45:45.541965 +AZURE,francecentral,Standard_D128ds_v6,spot,NA,1.719194,USD,Azure Retail Prices API,2025-12-18T04:45:43.840663 +AZURE,francecentral,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488342 +AZURE,francecentral,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488351 +AZURE,francecentral,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488355 +AZURE,francecentral,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488346 +AZURE,francecentral,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489097 +AZURE,francecentral,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489118 +AZURE,francecentral,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489122 +AZURE,francecentral,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489101 +AZURE,francecentral,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490221 +AZURE,francecentral,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490229 +AZURE,francecentral,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490233 +AZURE,francecentral,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490225 +AZURE,francecentral,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490911 +AZURE,francecentral,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490919 +AZURE,francecentral,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490924 +AZURE,francecentral,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490915 +AZURE,francecentral,Standard_D16_v3,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:45:43.839568 +AZURE,francecentral,Standard_D16_v3,reserved_1y,NA,0.588014,USD,Azure Retail Prices API,2025-12-18T04:45:45.541852 +AZURE,francecentral,Standard_D16_v3,reserved_3y,NA,0.398554,USD,Azure Retail Prices API,2025-12-18T04:45:45.541855 +AZURE,francecentral,Standard_D16_v3,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:45:43.839355 +AZURE,francecentral,Standard_D16a_v4,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:45:43.838580 +AZURE,francecentral,Standard_D16a_v4,reserved_1y,NA,0.526826,USD,Azure Retail Prices API,2025-12-18T04:45:45.541455 +AZURE,francecentral,Standard_D16a_v4,reserved_3y,NA,0.33691,USD,Azure Retail Prices API,2025-12-18T04:45:45.541458 +AZURE,francecentral,Standard_D16a_v4,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:45:43.840382 +AZURE,francecentral,Standard_D16ads_v5,on_demand,NA,1.704,USD,Azure Retail Prices API,2025-12-18T04:45:43.839379 +AZURE,francecentral,Standard_D16ads_v5,reserved_1y,NA,0.571119,USD,Azure Retail Prices API,2025-12-18T04:45:45.542285 +AZURE,francecentral,Standard_D16ads_v5,reserved_3y,NA,0.367846,USD,Azure Retail Prices API,2025-12-18T04:45:45.542287 +AZURE,francecentral,Standard_D16ads_v5,spot,NA,0.178886,USD,Azure Retail Prices API,2025-12-18T04:45:43.839032 +AZURE,francecentral,Standard_D16ads_v6,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:45:43.839585 +AZURE,francecentral,Standard_D16ads_v6,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:45:45.541870 +AZURE,francecentral,Standard_D16ads_v6,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:45:45.541873 +AZURE,francecentral,Standard_D16ads_v6,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:45:43.839248 +AZURE,francecentral,Standard_D16as_v4,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:45:43.837935 +AZURE,francecentral,Standard_D16as_v4,reserved_1y,NA,0.526826,USD,Azure Retail Prices API,2025-12-18T04:45:45.540999 +AZURE,francecentral,Standard_D16as_v4,reserved_3y,NA,0.33691,USD,Azure Retail Prices API,2025-12-18T04:45:45.541002 +AZURE,francecentral,Standard_D16as_v4,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:45:43.839528 +AZURE,francecentral,Standard_D16as_v5,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:45:43.839916 +AZURE,francecentral,Standard_D16as_v5,reserved_1y,NA,0.476712,USD,Azure Retail Prices API,2025-12-18T04:45:45.542044 +AZURE,francecentral,Standard_D16as_v5,reserved_3y,NA,0.30704,USD,Azure Retail Prices API,2025-12-18T04:45:45.542047 +AZURE,francecentral,Standard_D16as_v5,spot,NA,0.149318,USD,Azure Retail Prices API,2025-12-18T04:45:43.837996 +AZURE,francecentral,Standard_D16d_v4,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:45:43.839766 +AZURE,francecentral,Standard_D16d_v4,reserved_1y,NA,0.62089,USD,Azure Retail Prices API,2025-12-18T04:45:45.541974 +AZURE,francecentral,Standard_D16d_v4,reserved_3y,NA,0.39707,USD,Azure Retail Prices API,2025-12-18T04:45:45.541977 +AZURE,francecentral,Standard_D16d_v4,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:45:43.838275 +AZURE,francecentral,Standard_D16ds_v4,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:45:43.839933 +AZURE,francecentral,Standard_D16ds_v4,reserved_1y,NA,0.62089,USD,Azure Retail Prices API,2025-12-18T04:45:45.542061 +AZURE,francecentral,Standard_D16ds_v4,reserved_3y,NA,0.39707,USD,Azure Retail Prices API,2025-12-18T04:45:45.542064 +AZURE,francecentral,Standard_D16ds_v4,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:45:43.839693 +AZURE,francecentral,Standard_D16ds_v5,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:45:43.839945 +AZURE,francecentral,Standard_D16ds_v5,reserved_1y,NA,0.623059,USD,Azure Retail Prices API,2025-12-18T04:45:45.542072 +AZURE,francecentral,Standard_D16ds_v5,reserved_3y,NA,0.401294,USD,Azure Retail Prices API,2025-12-18T04:45:45.542075 +AZURE,francecentral,Standard_D16ds_v5,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:45:43.840109 +AZURE,francecentral,Standard_D16ds_v6,on_demand,NA,1.163,USD,Azure Retail Prices API,2025-12-18T04:45:43.840612 +AZURE,francecentral,Standard_D16ds_v6,reserved_1y,NA,0.721005,USD,Azure Retail Prices API,2025-12-18T04:45:45.542401 +AZURE,francecentral,Standard_D16ds_v6,reserved_3y,NA,0.453539,USD,Azure Retail Prices API,2025-12-18T04:45:45.542403 +AZURE,francecentral,Standard_D16ds_v6,spot,NA,0.214922,USD,Azure Retail Prices API,2025-12-18T04:45:43.840804 +AZURE,francecentral,Standard_D16pds_v6,on_demand,NA,0.859,USD,Azure Retail Prices API,2025-12-18T04:45:43.838522 +AZURE,francecentral,Standard_D16pds_v6,reserved_1y,NA,0.506963,USD,Azure Retail Prices API,2025-12-18T04:45:45.541427 +AZURE,francecentral,Standard_D16pds_v6,reserved_3y,NA,0.326484,USD,Azure Retail Prices API,2025-12-18T04:45:45.541430 +AZURE,francecentral,Standard_D16pds_v6,spot,NA,0.158743,USD,Azure Retail Prices API,2025-12-18T04:45:43.840085 +AZURE,francecentral,Standard_D16ps_v6,on_demand,NA,0.656,USD,Azure Retail Prices API,2025-12-18T04:45:43.839893 +AZURE,francecentral,Standard_D16ps_v6,reserved_1y,NA,0.386986,USD,Azure Retail Prices API,2025-12-18T04:45:45.542038 +AZURE,francecentral,Standard_D16ps_v6,reserved_3y,NA,0.249277,USD,Azure Retail Prices API,2025-12-18T04:45:45.542041 +AZURE,francecentral,Standard_D16ps_v6,spot,NA,0.121229,USD,Azure Retail Prices API,2025-12-18T04:45:43.840097 +AZURE,francecentral,Standard_D16s_v3,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:45:43.840428 +AZURE,francecentral,Standard_D16s_v3,reserved_1y,NA,0.588014,USD,Azure Retail Prices API,2025-12-18T04:45:45.542296 +AZURE,francecentral,Standard_D16s_v3,reserved_3y,NA,0.398554,USD,Azure Retail Prices API,2025-12-18T04:45:45.542298 +AZURE,francecentral,Standard_D16s_v3,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:45:43.840866 +AZURE,francecentral,Standard_D16s_v4,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:45:43.840658 +AZURE,francecentral,Standard_D16s_v4,reserved_1y,NA,0.526826,USD,Azure Retail Prices API,2025-12-18T04:45:45.542434 +AZURE,francecentral,Standard_D16s_v4,reserved_3y,NA,0.33691,USD,Azure Retail Prices API,2025-12-18T04:45:45.542436 +AZURE,francecentral,Standard_D16s_v4,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:45:43.839253 +AZURE,francecentral,Standard_D16s_v5,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:45:43.840652 +AZURE,francecentral,Standard_D16s_v5,reserved_1y,NA,0.528653,USD,Azure Retail Prices API,2025-12-18T04:45:45.542428 +AZURE,francecentral,Standard_D16s_v5,reserved_3y,NA,0.331507,USD,Azure Retail Prices API,2025-12-18T04:45:45.542431 +AZURE,francecentral,Standard_D16s_v5,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:45:43.840274 +AZURE,francecentral,Standard_D2ads_v6,on_demand,NA,0.134,USD,Azure Retail Prices API,2025-12-18T04:45:43.838195 +AZURE,francecentral,Standard_D2ads_v6,reserved_1y,NA,0.07911,USD,Azure Retail Prices API,2025-12-18T04:45:45.541230 +AZURE,francecentral,Standard_D2ads_v6,reserved_3y,NA,0.050913,USD,Azure Retail Prices API,2025-12-18T04:45:45.541234 +AZURE,francecentral,Standard_D2ads_v6,spot,NA,0.024763,USD,Azure Retail Prices API,2025-12-18T04:45:43.839601 +AZURE,francecentral,Standard_D2ds_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:45:43.837973 +AZURE,francecentral,Standard_D2ds_v6,reserved_1y,NA,0.090068,USD,Azure Retail Prices API,2025-12-18T04:45:45.541030 +AZURE,francecentral,Standard_D2ds_v6,reserved_3y,NA,0.056697,USD,Azure Retail Prices API,2025-12-18T04:45:45.541037 +AZURE,francecentral,Standard_D2ds_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:45:43.840582 +AZURE,francecentral,Standard_D32_v3,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:45:43.838201 +AZURE,francecentral,Standard_D32_v3,reserved_1y,NA,1.176027,USD,Azure Retail Prices API,2025-12-18T04:45:45.541236 +AZURE,francecentral,Standard_D32_v3,reserved_3y,NA,0.797108,USD,Azure Retail Prices API,2025-12-18T04:45:45.541240 +AZURE,francecentral,Standard_D32_v3,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:45:43.838443 +AZURE,francecentral,Standard_D32a_v4,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:45:43.838569 +AZURE,francecentral,Standard_D32a_v4,reserved_1y,NA,1.053653,USD,Azure Retail Prices API,2025-12-18T04:45:45.541449 +AZURE,francecentral,Standard_D32a_v4,reserved_3y,NA,0.673782,USD,Azure Retail Prices API,2025-12-18T04:45:45.541452 +AZURE,francecentral,Standard_D32a_v4,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:45:43.839617 +AZURE,francecentral,Standard_D32ads_v5,on_demand,NA,1.936,USD,Azure Retail Prices API,2025-12-18T04:45:43.838705 +AZURE,francecentral,Standard_D32ads_v5,reserved_1y,NA,1.142237,USD,Azure Retail Prices API,2025-12-18T04:45:45.541530 +AZURE,francecentral,Standard_D32ads_v5,reserved_3y,NA,0.735693,USD,Azure Retail Prices API,2025-12-18T04:45:45.541533 +AZURE,francecentral,Standard_D32ads_v5,spot,NA,0.357773,USD,Azure Retail Prices API,2025-12-18T04:45:43.838244 +AZURE,francecentral,Standard_D32ads_v6,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:45:43.837929 +AZURE,francecentral,Standard_D32ads_v6,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:45:45.540992 +AZURE,francecentral,Standard_D32ads_v6,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:45:45.540995 +AZURE,francecentral,Standard_D32ads_v6,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:45:43.839384 +AZURE,francecentral,Standard_D32as_v4,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:45:43.838001 +AZURE,francecentral,Standard_D32as_v4,reserved_1y,NA,1.053653,USD,Azure Retail Prices API,2025-12-18T04:45:45.541051 +AZURE,francecentral,Standard_D32as_v4,reserved_3y,NA,0.673782,USD,Azure Retail Prices API,2025-12-18T04:45:45.541055 +AZURE,francecentral,Standard_D32as_v4,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:45:43.839706 +AZURE,francecentral,Standard_D32as_v5,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:45:43.838048 +AZURE,francecentral,Standard_D32as_v5,reserved_1y,NA,0.953425,USD,Azure Retail Prices API,2025-12-18T04:45:45.541105 +AZURE,francecentral,Standard_D32as_v5,reserved_3y,NA,0.614079,USD,Azure Retail Prices API,2025-12-18T04:45:45.541108 +AZURE,francecentral,Standard_D32as_v5,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:45:43.839021 +AZURE,francecentral,Standard_D32d_v4,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:45:43.838369 +AZURE,francecentral,Standard_D32d_v4,reserved_1y,NA,1.241895,USD,Azure Retail Prices API,2025-12-18T04:45:45.541353 +AZURE,francecentral,Standard_D32d_v4,reserved_3y,NA,0.794102,USD,Azure Retail Prices API,2025-12-18T04:45:45.541356 +AZURE,francecentral,Standard_D32d_v4,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:45:43.840050 +AZURE,francecentral,Standard_D32ds_v4,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:45:43.838780 +AZURE,francecentral,Standard_D32ds_v4,reserved_1y,NA,1.241895,USD,Azure Retail Prices API,2025-12-18T04:45:45.541579 +AZURE,francecentral,Standard_D32ds_v4,reserved_3y,NA,0.794102,USD,Azure Retail Prices API,2025-12-18T04:45:45.541582 +AZURE,francecentral,Standard_D32ds_v4,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:45:43.838591 +AZURE,francecentral,Standard_D32ds_v5,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:45:43.838988 +AZURE,francecentral,Standard_D32ds_v5,reserved_1y,NA,1.246119,USD,Azure Retail Prices API,2025-12-18T04:45:45.541663 +AZURE,francecentral,Standard_D32ds_v5,reserved_3y,NA,0.802549,USD,Azure Retail Prices API,2025-12-18T04:45:45.541666 +AZURE,francecentral,Standard_D32ds_v5,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:45:43.840296 +AZURE,francecentral,Standard_D32ds_v6,on_demand,NA,2.326,USD,Azure Retail Prices API,2025-12-18T04:45:43.840691 +AZURE,francecentral,Standard_D32ds_v6,reserved_1y,NA,1.442009,USD,Azure Retail Prices API,2025-12-18T04:45:45.542450 +AZURE,francecentral,Standard_D32ds_v6,reserved_3y,NA,0.90704,USD,Azure Retail Prices API,2025-12-18T04:45:45.542453 +AZURE,francecentral,Standard_D32ds_v6,spot,NA,0.429845,USD,Azure Retail Prices API,2025-12-18T04:45:43.840686 +AZURE,francecentral,Standard_D32pds_v6,on_demand,NA,1.718,USD,Azure Retail Prices API,2025-12-18T04:45:43.837895 +AZURE,francecentral,Standard_D32pds_v6,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:45:45.540963 +AZURE,francecentral,Standard_D32pds_v6,reserved_3y,NA,0.653006,USD,Azure Retail Prices API,2025-12-18T04:45:45.540966 +AZURE,francecentral,Standard_D32pds_v6,spot,NA,0.317486,USD,Azure Retail Prices API,2025-12-18T04:45:43.839242 +AZURE,francecentral,Standard_D32ps_v6,on_demand,NA,1.312,USD,Azure Retail Prices API,2025-12-18T04:45:43.839992 +AZURE,francecentral,Standard_D32ps_v6,reserved_1y,NA,0.774087,USD,Azure Retail Prices API,2025-12-18T04:45:45.542099 +AZURE,francecentral,Standard_D32ps_v6,reserved_3y,NA,0.498554,USD,Azure Retail Prices API,2025-12-18T04:45:45.542102 +AZURE,francecentral,Standard_D32ps_v6,spot,NA,0.242458,USD,Azure Retail Prices API,2025-12-18T04:45:43.839482 +AZURE,francecentral,Standard_D32s_v3,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:45:43.839606 +AZURE,francecentral,Standard_D32s_v3,reserved_1y,NA,1.176027,USD,Azure Retail Prices API,2025-12-18T04:45:45.541887 +AZURE,francecentral,Standard_D32s_v3,reserved_3y,NA,0.797108,USD,Azure Retail Prices API,2025-12-18T04:45:45.541890 +AZURE,francecentral,Standard_D32s_v3,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:45:43.838337 +AZURE,francecentral,Standard_D32s_v4,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:45:43.838401 +AZURE,francecentral,Standard_D32s_v4,reserved_1y,NA,1.053653,USD,Azure Retail Prices API,2025-12-18T04:45:45.541370 +AZURE,francecentral,Standard_D32s_v4,reserved_3y,NA,0.673782,USD,Azure Retail Prices API,2025-12-18T04:45:45.541372 +AZURE,francecentral,Standard_D32s_v4,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:45:43.838960 +AZURE,francecentral,Standard_D32s_v5,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:45:43.839702 +AZURE,francecentral,Standard_D32s_v5,reserved_1y,NA,1.057306,USD,Azure Retail Prices API,2025-12-18T04:45:45.541940 +AZURE,francecentral,Standard_D32s_v5,reserved_3y,NA,0.663052,USD,Azure Retail Prices API,2025-12-18T04:45:45.541943 +AZURE,francecentral,Standard_D32s_v5,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:45:43.840470 +AZURE,francecentral,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485331 +AZURE,francecentral,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485339 +AZURE,francecentral,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485344 +AZURE,francecentral,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485335 +AZURE,francecentral,Standard_D48a_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:45:43.839462 +AZURE,francecentral,Standard_D48a_v4,reserved_1y,NA,1.580594,USD,Azure Retail Prices API,2025-12-18T04:45:45.541813 +AZURE,francecentral,Standard_D48a_v4,reserved_3y,NA,1.010693,USD,Azure Retail Prices API,2025-12-18T04:45:45.541816 +AZURE,francecentral,Standard_D48a_v4,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:45:43.839721 +AZURE,francecentral,Standard_D48ads_v5,on_demand,NA,5.112,USD,Azure Retail Prices API,2025-12-18T04:45:43.837951 +AZURE,francecentral,Standard_D48ads_v5,reserved_1y,NA,1.713356,USD,Azure Retail Prices API,2025-12-18T04:45:45.541951 +AZURE,francecentral,Standard_D48ads_v5,reserved_3y,NA,1.103539,USD,Azure Retail Prices API,2025-12-18T04:45:45.541954 +AZURE,francecentral,Standard_D48ads_v5,spot,NA,0.536659,USD,Azure Retail Prices API,2025-12-18T04:45:43.839493 +AZURE,francecentral,Standard_D48ads_v6,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:45:43.839633 +AZURE,francecentral,Standard_D48ads_v6,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:45:45.541898 +AZURE,francecentral,Standard_D48ads_v6,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:45:45.541901 +AZURE,francecentral,Standard_D48ads_v6,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:45:43.839271 +AZURE,francecentral,Standard_D48as_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:45:43.840221 +AZURE,francecentral,Standard_D48as_v4,reserved_1y,NA,1.580594,USD,Azure Retail Prices API,2025-12-18T04:45:45.542197 +AZURE,francecentral,Standard_D48as_v4,reserved_3y,NA,1.010693,USD,Azure Retail Prices API,2025-12-18T04:45:45.542200 +AZURE,francecentral,Standard_D48as_v4,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:45:43.838158 +AZURE,francecentral,Standard_D48as_v5,on_demand,NA,2.424,USD,Azure Retail Prices API,2025-12-18T04:45:43.839037 +AZURE,francecentral,Standard_D48as_v5,reserved_1y,NA,1.430137,USD,Azure Retail Prices API,2025-12-18T04:45:45.541692 +AZURE,francecentral,Standard_D48as_v5,reserved_3y,NA,0.921119,USD,Azure Retail Prices API,2025-12-18T04:45:45.541694 +AZURE,francecentral,Standard_D48as_v5,spot,NA,0.447955,USD,Azure Retail Prices API,2025-12-18T04:45:43.839962 +AZURE,francecentral,Standard_D48d_v4,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:45:43.840336 +AZURE,francecentral,Standard_D48d_v4,reserved_1y,NA,1.862785,USD,Azure Retail Prices API,2025-12-18T04:45:45.542263 +AZURE,francecentral,Standard_D48d_v4,reserved_3y,NA,1.191172,USD,Azure Retail Prices API,2025-12-18T04:45:45.542266 +AZURE,francecentral,Standard_D48d_v4,spot,NA,0.585446,USD,Azure Retail Prices API,2025-12-18T04:45:43.838127 +AZURE,francecentral,Standard_D48ds_v4,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:45:43.839922 +AZURE,francecentral,Standard_D48ds_v4,reserved_1y,NA,1.862785,USD,Azure Retail Prices API,2025-12-18T04:45:45.542049 +AZURE,francecentral,Standard_D48ds_v4,reserved_3y,NA,1.191172,USD,Azure Retail Prices API,2025-12-18T04:45:45.542052 +AZURE,francecentral,Standard_D48ds_v4,spot,NA,0.585446,USD,Azure Retail Prices API,2025-12-18T04:45:43.838824 +AZURE,francecentral,Standard_D48ds_v5,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:45:43.838070 +AZURE,francecentral,Standard_D48ds_v5,reserved_1y,NA,1.869064,USD,Azure Retail Prices API,2025-12-18T04:45:45.541135 +AZURE,francecentral,Standard_D48ds_v5,reserved_3y,NA,1.203843,USD,Azure Retail Prices API,2025-12-18T04:45:45.541140 +AZURE,francecentral,Standard_D48ds_v5,spot,NA,0.585446,USD,Azure Retail Prices API,2025-12-18T04:45:43.838080 +AZURE,francecentral,Standard_D48ds_v6,on_demand,NA,3.489,USD,Azure Retail Prices API,2025-12-18T04:45:43.840028 +AZURE,francecentral,Standard_D48ds_v6,reserved_1y,NA,2.163014,USD,Azure Retail Prices API,2025-12-18T04:45:45.542116 +AZURE,francecentral,Standard_D48ds_v6,reserved_3y,NA,1.360578,USD,Azure Retail Prices API,2025-12-18T04:45:45.542118 +AZURE,francecentral,Standard_D48ds_v6,spot,NA,0.644767,USD,Azure Retail Prices API,2025-12-18T04:45:43.838433 +AZURE,francecentral,Standard_D48pds_v6,on_demand,NA,2.578,USD,Azure Retail Prices API,2025-12-18T04:45:43.839338 +AZURE,francecentral,Standard_D48pds_v6,reserved_1y,NA,1.520776,USD,Azure Retail Prices API,2025-12-18T04:45:45.541758 +AZURE,francecentral,Standard_D48pds_v6,reserved_3y,NA,0.97949,USD,Azure Retail Prices API,2025-12-18T04:45:45.541761 +AZURE,francecentral,Standard_D48pds_v6,spot,NA,0.476414,USD,Azure Retail Prices API,2025-12-18T04:45:43.838678 +AZURE,francecentral,Standard_D48ps_v6,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:45:43.838249 +AZURE,francecentral,Standard_D48ps_v6,reserved_1y,NA,1.161073,USD,Azure Retail Prices API,2025-12-18T04:45:45.541267 +AZURE,francecentral,Standard_D48ps_v6,reserved_3y,NA,0.747831,USD,Azure Retail Prices API,2025-12-18T04:45:45.541270 +AZURE,francecentral,Standard_D48ps_v6,spot,NA,0.363686,USD,Azure Retail Prices API,2025-12-18T04:45:43.839413 +AZURE,francecentral,Standard_D48s_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:45:43.838737 +AZURE,francecentral,Standard_D48s_v4,reserved_1y,NA,1.580594,USD,Azure Retail Prices API,2025-12-18T04:45:45.541547 +AZURE,francecentral,Standard_D48s_v4,reserved_3y,NA,1.010693,USD,Azure Retail Prices API,2025-12-18T04:45:45.541550 +AZURE,francecentral,Standard_D48s_v4,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:45:43.840115 +AZURE,francecentral,Standard_D48s_v5,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:45:43.840074 +AZURE,francecentral,Standard_D48s_v5,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:45:45.542146 +AZURE,francecentral,Standard_D48s_v5,reserved_3y,NA,0.994559,USD,Azure Retail Prices API,2025-12-18T04:45:45.542149 +AZURE,francecentral,Standard_D48s_v5,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:45:43.838333 +AZURE,francecentral,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486190 +AZURE,francecentral,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486199 +AZURE,francecentral,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486203 +AZURE,francecentral,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486194 +AZURE,francecentral,Standard_D4a_v4,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.839418 +AZURE,francecentral,Standard_D4a_v4,reserved_1y,NA,0.131735,USD,Azure Retail Prices API,2025-12-18T04:45:45.541797 +AZURE,francecentral,Standard_D4a_v4,reserved_3y,NA,0.084209,USD,Azure Retail Prices API,2025-12-18T04:45:45.541800 +AZURE,francecentral,Standard_D4a_v4,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:45:43.840422 +AZURE,francecentral,Standard_D4ads_v5,on_demand,NA,0.242,USD,Azure Retail Prices API,2025-12-18T04:45:43.838033 +AZURE,francecentral,Standard_D4ads_v5,reserved_1y,NA,0.142808,USD,Azure Retail Prices API,2025-12-18T04:45:45.541086 +AZURE,francecentral,Standard_D4ads_v5,reserved_3y,NA,0.091971,USD,Azure Retail Prices API,2025-12-18T04:45:45.541089 +AZURE,francecentral,Standard_D4ads_v5,spot,NA,0.044722,USD,Azure Retail Prices API,2025-12-18T04:45:43.839511 +AZURE,francecentral,Standard_D4ads_v6,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:45:43.840080 +AZURE,francecentral,Standard_D4ads_v6,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:45:45.542152 +AZURE,francecentral,Standard_D4ads_v6,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:45:45.542155 +AZURE,francecentral,Standard_D4ads_v6,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:45:43.840103 +AZURE,francecentral,Standard_D4as_v5,on_demand,NA,0.386,USD,Azure Retail Prices API,2025-12-18T04:45:43.839467 +AZURE,francecentral,Standard_D4as_v5,reserved_1y,NA,0.119178,USD,Azure Retail Prices API,2025-12-18T04:45:45.542009 +AZURE,francecentral,Standard_D4as_v5,reserved_3y,NA,0.07675,USD,Azure Retail Prices API,2025-12-18T04:45:45.542012 +AZURE,francecentral,Standard_D4as_v5,spot,NA,0.03733,USD,Azure Retail Prices API,2025-12-18T04:45:43.838858 +AZURE,francecentral,Standard_D4d_v4,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:45:43.840362 +AZURE,francecentral,Standard_D4d_v4,reserved_1y,NA,0.155251,USD,Azure Retail Prices API,2025-12-18T04:45:45.542279 +AZURE,francecentral,Standard_D4d_v4,reserved_3y,NA,0.099277,USD,Azure Retail Prices API,2025-12-18T04:45:45.542282 +AZURE,francecentral,Standard_D4d_v4,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:45:43.840179 +AZURE,francecentral,Standard_D4ds_v4,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:45:43.839395 +AZURE,francecentral,Standard_D4ds_v4,reserved_1y,NA,0.155251,USD,Azure Retail Prices API,2025-12-18T04:45:45.541780 +AZURE,francecentral,Standard_D4ds_v4,reserved_3y,NA,0.099277,USD,Azure Retail Prices API,2025-12-18T04:45:45.541783 +AZURE,francecentral,Standard_D4ds_v4,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:45:43.838180 +AZURE,francecentral,Standard_D4ds_v5,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:45:43.838944 +AZURE,francecentral,Standard_D4ds_v5,reserved_1y,NA,0.155708,USD,Azure Retail Prices API,2025-12-18T04:45:45.541634 +AZURE,francecentral,Standard_D4ds_v5,reserved_3y,NA,0.100304,USD,Azure Retail Prices API,2025-12-18T04:45:45.541637 +AZURE,francecentral,Standard_D4ds_v5,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:45:43.838422 +AZURE,francecentral,Standard_D4ds_v6,on_demand,NA,0.291,USD,Azure Retail Prices API,2025-12-18T04:45:43.839440 +AZURE,francecentral,Standard_D4ds_v6,reserved_1y,NA,0.180251,USD,Azure Retail Prices API,2025-12-18T04:45:45.541803 +AZURE,francecentral,Standard_D4ds_v6,reserved_3y,NA,0.113394,USD,Azure Retail Prices API,2025-12-18T04:45:45.541805 +AZURE,francecentral,Standard_D4ds_v6,spot,NA,0.053777,USD,Azure Retail Prices API,2025-12-18T04:45:43.840465 +AZURE,francecentral,Standard_D4pds_v6,on_demand,NA,0.215,USD,Azure Retail Prices API,2025-12-18T04:45:43.840433 +AZURE,francecentral,Standard_D4pds_v6,reserved_1y,NA,0.126712,USD,Azure Retail Prices API,2025-12-18T04:45:45.542301 +AZURE,francecentral,Standard_D4pds_v6,reserved_3y,NA,0.081621,USD,Azure Retail Prices API,2025-12-18T04:45:45.542304 +AZURE,francecentral,Standard_D4pds_v6,spot,NA,0.039732,USD,Azure Retail Prices API,2025-12-18T04:45:43.838085 +AZURE,francecentral,Standard_D4ps_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:45:43.838117 +AZURE,francecentral,Standard_D4ps_v6,reserved_1y,NA,0.096804,USD,Azure Retail Prices API,2025-12-18T04:45:45.541184 +AZURE,francecentral,Standard_D4ps_v6,reserved_3y,NA,0.062329,USD,Azure Retail Prices API,2025-12-18T04:45:45.541186 +AZURE,francecentral,Standard_D4ps_v6,spot,NA,0.030307,USD,Azure Retail Prices API,2025-12-18T04:45:43.839887 +AZURE,francecentral,Standard_D4s_v3,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.840512 +AZURE,francecentral,Standard_D4s_v3,reserved_1y,NA,0.147032,USD,Azure Retail Prices API,2025-12-18T04:45:45.542329 +AZURE,francecentral,Standard_D4s_v3,reserved_3y,NA,0.099658,USD,Azure Retail Prices API,2025-12-18T04:45:45.542332 +AZURE,francecentral,Standard_D4s_v3,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:45:43.839761 +AZURE,francecentral,Standard_D4s_v4,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.840643 +AZURE,francecentral,Standard_D4s_v4,reserved_1y,NA,0.131735,USD,Azure Retail Prices API,2025-12-18T04:45:45.542417 +AZURE,francecentral,Standard_D4s_v4,reserved_3y,NA,0.084209,USD,Azure Retail Prices API,2025-12-18T04:45:45.542420 +AZURE,francecentral,Standard_D4s_v4,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:45:43.837908 +AZURE,francecentral,Standard_D4s_v5,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.839664 +AZURE,francecentral,Standard_D4s_v5,reserved_1y,NA,0.132192,USD,Azure Retail Prices API,2025-12-18T04:45:45.541922 +AZURE,francecentral,Standard_D4s_v5,reserved_3y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:45:45.541925 +AZURE,francecentral,Standard_D4s_v5,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:45:43.840836 +AZURE,francecentral,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487303 +AZURE,francecentral,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487319 +AZURE,francecentral,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487326 +AZURE,francecentral,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487311 +AZURE,francecentral,Standard_D64_v3,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:45:43.839969 +AZURE,francecentral,Standard_D64_v3,reserved_1y,NA,2.352055,USD,Azure Retail Prices API,2025-12-18T04:45:45.542089 +AZURE,francecentral,Standard_D64_v3,reserved_3y,NA,1.594216,USD,Azure Retail Prices API,2025-12-18T04:45:45.542092 +AZURE,francecentral,Standard_D64_v3,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:45:43.840784 +AZURE,francecentral,Standard_D64a_v4,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:45:43.838764 +AZURE,francecentral,Standard_D64a_v4,reserved_1y,NA,2.10742,USD,Azure Retail Prices API,2025-12-18T04:45:45.541563 +AZURE,francecentral,Standard_D64a_v4,reserved_3y,NA,1.347603,USD,Azure Retail Prices API,2025-12-18T04:45:45.541567 +AZURE,francecentral,Standard_D64a_v4,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:45:43.840752 +AZURE,francecentral,Standard_D64ads_v5,on_demand,NA,6.816,USD,Azure Retail Prices API,2025-12-18T04:45:43.838238 +AZURE,francecentral,Standard_D64ads_v5,reserved_1y,NA,2.284475,USD,Azure Retail Prices API,2025-12-18T04:45:45.542307 +AZURE,francecentral,Standard_D64ads_v5,reserved_3y,NA,1.471347,USD,Azure Retail Prices API,2025-12-18T04:45:45.542310 +AZURE,francecentral,Standard_D64ads_v5,spot,NA,0.715546,USD,Azure Retail Prices API,2025-12-18T04:45:43.840372 +AZURE,francecentral,Standard_D64ads_v6,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:45:43.838291 +AZURE,francecentral,Standard_D64ads_v6,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:45:45.541304 +AZURE,francecentral,Standard_D64ads_v6,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:45:45.541307 +AZURE,francecentral,Standard_D64ads_v6,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:45:43.840536 +AZURE,francecentral,Standard_D64as_v4,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:45:43.839533 +AZURE,francecentral,Standard_D64as_v4,reserved_1y,NA,2.10742,USD,Azure Retail Prices API,2025-12-18T04:45:45.541830 +AZURE,francecentral,Standard_D64as_v4,reserved_3y,NA,1.347603,USD,Azure Retail Prices API,2025-12-18T04:45:45.541832 +AZURE,francecentral,Standard_D64as_v4,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:45:43.838506 +AZURE,francecentral,Standard_D64as_v5,on_demand,NA,6.176,USD,Azure Retail Prices API,2025-12-18T04:45:43.839980 +AZURE,francecentral,Standard_D64as_v5,reserved_1y,NA,1.906849,USD,Azure Retail Prices API,2025-12-18T04:45:45.542466 +AZURE,francecentral,Standard_D64as_v5,reserved_3y,NA,1.228158,USD,Azure Retail Prices API,2025-12-18T04:45:45.542469 +AZURE,francecentral,Standard_D64as_v5,spot,NA,0.597274,USD,Azure Retail Prices API,2025-12-18T04:45:43.840121 +AZURE,francecentral,Standard_D64d_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.838689 +AZURE,francecentral,Standard_D64d_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:45:45.541513 +AZURE,francecentral,Standard_D64d_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:45:45.541516 +AZURE,francecentral,Standard_D64d_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:45:43.838813 +AZURE,francecentral,Standard_D64ds_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.840357 +AZURE,francecentral,Standard_D64ds_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:45:45.542274 +AZURE,francecentral,Standard_D64ds_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:45:45.542277 +AZURE,francecentral,Standard_D64ds_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:45:43.840551 +AZURE,francecentral,Standard_D64ds_v5,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.840602 +AZURE,francecentral,Standard_D64ds_v5,reserved_1y,NA,2.492123,USD,Azure Retail Prices API,2025-12-18T04:45:45.542395 +AZURE,francecentral,Standard_D64ds_v5,reserved_3y,NA,1.605137,USD,Azure Retail Prices API,2025-12-18T04:45:45.542398 +AZURE,francecentral,Standard_D64ds_v5,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:45:43.839678 +AZURE,francecentral,Standard_D64ds_v6,on_demand,NA,4.652,USD,Azure Retail Prices API,2025-12-18T04:45:43.839782 +AZURE,francecentral,Standard_D64ds_v6,reserved_1y,NA,2.883904,USD,Azure Retail Prices API,2025-12-18T04:45:45.541992 +AZURE,francecentral,Standard_D64ds_v6,reserved_3y,NA,1.814079,USD,Azure Retail Prices API,2025-12-18T04:45:45.541994 +AZURE,francecentral,Standard_D64ds_v6,spot,NA,0.85969,USD,Azure Retail Prices API,2025-12-18T04:45:43.838543 +AZURE,francecentral,Standard_D64pds_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:45:43.840279 +AZURE,francecentral,Standard_D64pds_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:45:45.542223 +AZURE,francecentral,Standard_D64pds_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:45:45.542226 +AZURE,francecentral,Standard_D64pds_v6,spot,NA,0.635158,USD,Azure Retail Prices API,2025-12-18T04:45:43.839974 +AZURE,francecentral,Standard_D64ps_v6,on_demand,NA,2.624,USD,Azure Retail Prices API,2025-12-18T04:45:43.840517 +AZURE,francecentral,Standard_D64ps_v6,reserved_1y,NA,1.548174,USD,Azure Retail Prices API,2025-12-18T04:45:45.542335 +AZURE,francecentral,Standard_D64ps_v6,reserved_3y,NA,0.997108,USD,Azure Retail Prices API,2025-12-18T04:45:45.542338 +AZURE,francecentral,Standard_D64ps_v6,spot,NA,0.484915,USD,Azure Retail Prices API,2025-12-18T04:45:43.840906 +AZURE,francecentral,Standard_D64s_v3,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:45:43.838342 +AZURE,francecentral,Standard_D64s_v3,reserved_1y,NA,2.352055,USD,Azure Retail Prices API,2025-12-18T04:45:45.541321 +AZURE,francecentral,Standard_D64s_v3,reserved_3y,NA,1.594216,USD,Azure Retail Prices API,2025-12-18T04:45:45.541326 +AZURE,francecentral,Standard_D64s_v3,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:45:43.838233 +AZURE,francecentral,Standard_D64s_v4,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:45:43.837884 +AZURE,francecentral,Standard_D64s_v4,reserved_1y,NA,2.10742,USD,Azure Retail Prices API,2025-12-18T04:45:45.540956 +AZURE,francecentral,Standard_D64s_v4,reserved_3y,NA,1.347603,USD,Azure Retail Prices API,2025-12-18T04:45:45.540959 +AZURE,francecentral,Standard_D64s_v4,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:45:43.839669 +AZURE,francecentral,Standard_D64s_v5,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:45:43.839590 +AZURE,francecentral,Standard_D64s_v5,reserved_1y,NA,2.114612,USD,Azure Retail Prices API,2025-12-18T04:45:45.541875 +AZURE,francecentral,Standard_D64s_v5,reserved_3y,NA,1.326065,USD,Azure Retail Prices API,2025-12-18T04:45:45.541878 +AZURE,francecentral,Standard_D64s_v5,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:45:43.838836 +AZURE,francecentral,Standard_D8_v3,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:45:43.838923 +AZURE,francecentral,Standard_D8_v3,reserved_1y,NA,0.29395,USD,Azure Retail Prices API,2025-12-18T04:45:45.541618 +AZURE,francecentral,Standard_D8_v3,reserved_3y,NA,0.199277,USD,Azure Retail Prices API,2025-12-18T04:45:45.541621 +AZURE,francecentral,Standard_D8_v3,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:45:43.840413 +AZURE,francecentral,Standard_D8a_v4,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:45:43.840319 +AZURE,francecentral,Standard_D8a_v4,reserved_1y,NA,0.26347,USD,Azure Retail Prices API,2025-12-18T04:45:45.542252 +AZURE,francecentral,Standard_D8a_v4,reserved_3y,NA,0.168455,USD,Azure Retail Prices API,2025-12-18T04:45:45.542255 +AZURE,francecentral,Standard_D8a_v4,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:45:43.840667 +AZURE,francecentral,Standard_D8ads_v5,on_demand,NA,0.852,USD,Azure Retail Prices API,2025-12-18T04:45:43.838971 +AZURE,francecentral,Standard_D8ads_v5,reserved_1y,NA,0.285616,USD,Azure Retail Prices API,2025-12-18T04:45:45.541686 +AZURE,francecentral,Standard_D8ads_v5,reserved_3y,NA,0.183904,USD,Azure Retail Prices API,2025-12-18T04:45:45.541689 +AZURE,francecentral,Standard_D8ads_v5,spot,NA,0.089443,USD,Azure Retail Prices API,2025-12-18T04:45:43.839822 +AZURE,francecentral,Standard_D8ads_v6,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:45:43.839476 +AZURE,francecentral,Standard_D8ads_v6,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:45:45.541819 +AZURE,francecentral,Standard_D8ads_v6,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:45:45.541822 +AZURE,francecentral,Standard_D8ads_v6,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:45:43.840765 +AZURE,francecentral,Standard_D8as_v4,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:45:43.838254 +AZURE,francecentral,Standard_D8as_v4,reserved_1y,NA,0.26347,USD,Azure Retail Prices API,2025-12-18T04:45:45.541273 +AZURE,francecentral,Standard_D8as_v4,reserved_3y,NA,0.168455,USD,Azure Retail Prices API,2025-12-18T04:45:45.541276 +AZURE,francecentral,Standard_D8as_v4,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:45:43.839435 +AZURE,francecentral,Standard_D8as_v5,on_demand,NA,0.404,USD,Azure Retail Prices API,2025-12-18T04:45:43.838774 +AZURE,francecentral,Standard_D8as_v5,reserved_1y,NA,0.238356,USD,Azure Retail Prices API,2025-12-18T04:45:45.541573 +AZURE,francecentral,Standard_D8as_v5,reserved_3y,NA,0.153539,USD,Azure Retail Prices API,2025-12-18T04:45:45.541576 +AZURE,francecentral,Standard_D8as_v5,spot,NA,0.074659,USD,Azure Retail Prices API,2025-12-18T04:45:43.840233 +AZURE,francecentral,Standard_D8d_v4,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:45:43.838726 +AZURE,francecentral,Standard_D8d_v4,reserved_1y,NA,0.310502,USD,Azure Retail Prices API,2025-12-18T04:45:45.541541 +AZURE,francecentral,Standard_D8d_v4,reserved_3y,NA,0.198516,USD,Azure Retail Prices API,2025-12-18T04:45:45.541544 +AZURE,francecentral,Standard_D8d_v4,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:45:43.839010 +AZURE,francecentral,Standard_D8ds_v4,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:45:43.839574 +AZURE,francecentral,Standard_D8ds_v4,reserved_1y,NA,0.310502,USD,Azure Retail Prices API,2025-12-18T04:45:45.541858 +AZURE,francecentral,Standard_D8ds_v4,reserved_3y,NA,0.198516,USD,Azure Retail Prices API,2025-12-18T04:45:45.541861 +AZURE,francecentral,Standard_D8ds_v4,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:45:43.838317 +AZURE,francecentral,Standard_D8ds_v5,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:45:43.839660 +AZURE,francecentral,Standard_D8ds_v5,reserved_1y,NA,0.31153,USD,Azure Retail Prices API,2025-12-18T04:45:45.541916 +AZURE,francecentral,Standard_D8ds_v5,reserved_3y,NA,0.200647,USD,Azure Retail Prices API,2025-12-18T04:45:45.541919 +AZURE,francecentral,Standard_D8ds_v5,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:45:43.838874 +AZURE,francecentral,Standard_D8ds_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:45:43.839811 +AZURE,francecentral,Standard_D8ds_v6,reserved_1y,NA,0.360502,USD,Azure Retail Prices API,2025-12-18T04:45:45.542015 +AZURE,francecentral,Standard_D8ds_v6,reserved_3y,NA,0.22675,USD,Azure Retail Prices API,2025-12-18T04:45:45.542018 +AZURE,francecentral,Standard_D8ds_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:45:43.839471 +AZURE,francecentral,Standard_D8pds_v6,on_demand,NA,0.43,USD,Azure Retail Prices API,2025-12-18T04:45:43.838358 +AZURE,francecentral,Standard_D8pds_v6,reserved_1y,NA,0.253425,USD,Azure Retail Prices API,2025-12-18T04:45:45.541347 +AZURE,francecentral,Standard_D8pds_v6,reserved_3y,NA,0.163242,USD,Azure Retail Prices API,2025-12-18T04:45:45.541349 +AZURE,francecentral,Standard_D8pds_v6,spot,NA,0.079464,USD,Azure Retail Prices API,2025-12-18T04:45:43.837941 +AZURE,francecentral,Standard_D8ps_v6,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:45:43.838564 +AZURE,francecentral,Standard_D8ps_v6,reserved_1y,NA,0.193493,USD,Azure Retail Prices API,2025-12-18T04:45:45.541443 +AZURE,francecentral,Standard_D8ps_v6,reserved_3y,NA,0.124658,USD,Azure Retail Prices API,2025-12-18T04:45:45.541446 +AZURE,francecentral,Standard_D8ps_v6,spot,NA,0.060614,USD,Azure Retail Prices API,2025-12-18T04:45:43.840747 +AZURE,francecentral,Standard_D8s_v3,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:45:43.840728 +AZURE,francecentral,Standard_D8s_v3,reserved_1y,NA,0.29395,USD,Azure Retail Prices API,2025-12-18T04:45:45.542472 +AZURE,francecentral,Standard_D8s_v3,reserved_3y,NA,0.199277,USD,Azure Retail Prices API,2025-12-18T04:45:45.542475 +AZURE,francecentral,Standard_D8s_v3,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:45:43.840302 +AZURE,francecentral,Standard_D8s_v4,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:45:43.837956 +AZURE,francecentral,Standard_D8s_v4,reserved_1y,NA,0.26347,USD,Azure Retail Prices API,2025-12-18T04:45:45.541005 +AZURE,francecentral,Standard_D8s_v4,reserved_3y,NA,0.168455,USD,Azure Retail Prices API,2025-12-18T04:45:45.541008 +AZURE,francecentral,Standard_D8s_v4,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:45:43.838217 +AZURE,francecentral,Standard_D8s_v5,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:45:43.839648 +AZURE,francecentral,Standard_D8s_v5,reserved_1y,NA,0.264269,USD,Azure Retail Prices API,2025-12-18T04:45:45.541910 +AZURE,francecentral,Standard_D8s_v5,reserved_3y,NA,0.165753,USD,Azure Retail Prices API,2025-12-18T04:45:45.541913 +AZURE,francecentral,Standard_D8s_v5,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:45:43.840497 +AZURE,francecentral,Standard_D96a_v4,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:45:43.840875 +AZURE,francecentral,Standard_D96a_v4,reserved_1y,NA,3.161073,USD,Azure Retail Prices API,2025-12-18T04:45:45.542527 +AZURE,francecentral,Standard_D96a_v4,reserved_3y,NA,2.021385,USD,Azure Retail Prices API,2025-12-18T04:45:45.542530 +AZURE,francecentral,Standard_D96a_v4,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:45:43.838406 +AZURE,francecentral,Standard_D96ads_v5,on_demand,NA,10.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.839390 +AZURE,francecentral,Standard_D96ads_v5,reserved_1y,NA,3.426712,USD,Azure Retail Prices API,2025-12-18T04:45:45.542140 +AZURE,francecentral,Standard_D96ads_v5,reserved_3y,NA,2.20704,USD,Azure Retail Prices API,2025-12-18T04:45:45.542143 +AZURE,francecentral,Standard_D96ads_v5,spot,NA,1.073318,USD,Azure Retail Prices API,2025-12-18T04:45:43.840173 +AZURE,francecentral,Standard_D96ads_v6,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:45:43.838475 +AZURE,francecentral,Standard_D96ads_v6,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:45:45.541392 +AZURE,francecentral,Standard_D96ads_v6,reserved_3y,NA,2.444178,USD,Azure Retail Prices API,2025-12-18T04:45:45.541395 +AZURE,francecentral,Standard_D96ads_v6,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:45:43.840325 +AZURE,francecentral,Standard_D96as_v4,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:45:43.838516 +AZURE,francecentral,Standard_D96as_v4,reserved_1y,NA,3.161073,USD,Azure Retail Prices API,2025-12-18T04:45:45.541422 +AZURE,francecentral,Standard_D96as_v4,reserved_3y,NA,2.021385,USD,Azure Retail Prices API,2025-12-18T04:45:45.541424 +AZURE,francecentral,Standard_D96as_v4,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:45:43.838559 +AZURE,francecentral,Standard_D96as_v5,on_demand,NA,4.848,USD,Azure Retail Prices API,2025-12-18T04:45:43.840044 +AZURE,francecentral,Standard_D96as_v5,reserved_1y,NA,2.860274,USD,Azure Retail Prices API,2025-12-18T04:45:45.542127 +AZURE,francecentral,Standard_D96as_v5,reserved_3y,NA,1.842237,USD,Azure Retail Prices API,2025-12-18T04:45:45.542130 +AZURE,francecentral,Standard_D96as_v5,spot,NA,0.89591,USD,Azure Retail Prices API,2025-12-18T04:45:43.838174 +AZURE,francecentral,Standard_D96ds_v5,on_demand,NA,6.336,USD,Azure Retail Prices API,2025-12-18T04:45:43.838122 +AZURE,francecentral,Standard_D96ds_v5,reserved_1y,NA,3.738242,USD,Azure Retail Prices API,2025-12-18T04:45:45.541189 +AZURE,francecentral,Standard_D96ds_v5,reserved_3y,NA,2.407686,USD,Azure Retail Prices API,2025-12-18T04:45:45.541192 +AZURE,francecentral,Standard_D96ds_v5,spot,NA,1.170893,USD,Azure Retail Prices API,2025-12-18T04:45:43.839816 +AZURE,francecentral,Standard_D96ds_v6,on_demand,NA,6.977,USD,Azure Retail Prices API,2025-12-18T04:45:43.838043 +AZURE,francecentral,Standard_D96ds_v6,reserved_1y,NA,4.325913,USD,Azure Retail Prices API,2025-12-18T04:45:45.541099 +AZURE,francecentral,Standard_D96ds_v6,reserved_3y,NA,2.721157,USD,Azure Retail Prices API,2025-12-18T04:45:45.541102 +AZURE,francecentral,Standard_D96ds_v6,spot,NA,1.28935,USD,Azure Retail Prices API,2025-12-18T04:45:43.840245 +AZURE,francecentral,Standard_D96pds_v6,on_demand,NA,5.155,USD,Azure Retail Prices API,2025-12-18T04:45:43.838328 +AZURE,francecentral,Standard_D96pds_v6,reserved_1y,NA,3.041553,USD,Azure Retail Prices API,2025-12-18T04:45:45.541311 +AZURE,francecentral,Standard_D96pds_v6,reserved_3y,NA,1.95898,USD,Azure Retail Prices API,2025-12-18T04:45:45.541316 +AZURE,francecentral,Standard_D96pds_v6,spot,NA,0.952644,USD,Azure Retail Prices API,2025-12-18T04:45:43.837852 +AZURE,francecentral,Standard_D96ps_v6,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:45:43.840403 +AZURE,francecentral,Standard_D96ps_v6,reserved_1y,NA,2.32226,USD,Azure Retail Prices API,2025-12-18T04:45:45.542290 +AZURE,francecentral,Standard_D96ps_v6,reserved_3y,NA,1.495662,USD,Azure Retail Prices API,2025-12-18T04:45:45.542293 +AZURE,francecentral,Standard_D96ps_v6,spot,NA,0.727373,USD,Azure Retail Prices API,2025-12-18T04:45:43.838710 +AZURE,francecentral,Standard_D96s_v5,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:45:43.840597 +AZURE,francecentral,Standard_D96s_v5,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:45:45.542390 +AZURE,francecentral,Standard_D96s_v5,reserved_3y,NA,1.989117,USD,Azure Retail Prices API,2025-12-18T04:45:45.542392 +AZURE,francecentral,Standard_D96s_v5,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:45:43.837914 +AZURE,francecentral,Standard_DC16ads_v6,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:45:43.840262 +AZURE,francecentral,Standard_DC16ads_v6,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:45:45.542214 +AZURE,francecentral,Standard_DC16ads_v6,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:45:45.542219 +AZURE,francecentral,Standard_DC16ads_v6,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:45:43.838169 +AZURE,francecentral,Standard_DC2ads_v6,on_demand,NA,0.134,USD,Azure Retail Prices API,2025-12-18T04:45:43.838912 +AZURE,francecentral,Standard_DC2ads_v6,reserved_1y,NA,0.07911,USD,Azure Retail Prices API,2025-12-18T04:45:45.541613 +AZURE,francecentral,Standard_DC2ads_v6,reserved_3y,NA,0.050913,USD,Azure Retail Prices API,2025-12-18T04:45:45.541616 +AZURE,francecentral,Standard_DC2ads_v6,spot,NA,0.024763,USD,Azure Retail Prices API,2025-12-18T04:45:43.838090 +AZURE,francecentral,Standard_DC32ads_v6,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:45:43.838096 +AZURE,francecentral,Standard_DC32ads_v6,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:45:45.541157 +AZURE,francecentral,Standard_DC32ads_v6,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:45:45.541162 +AZURE,francecentral,Standard_DC32ads_v6,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:45:43.839551 +AZURE,francecentral,Standard_DC48ads_v6,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:45:43.837962 +AZURE,francecentral,Standard_DC48ads_v6,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:45:45.541011 +AZURE,francecentral,Standard_DC48ads_v6,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:45:45.541015 +AZURE,francecentral,Standard_DC48ads_v6,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:45:43.838731 +AZURE,francecentral,Standard_DC4ads_v6,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:45:43.838747 +AZURE,francecentral,Standard_DC4ads_v6,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:45:45.541554 +AZURE,francecentral,Standard_DC4ads_v6,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:45:45.541559 +AZURE,francecentral,Standard_DC4ads_v6,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:45:43.838138 +AZURE,francecentral,Standard_DC64ads_v6,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:45:43.839259 +AZURE,francecentral,Standard_DC64ads_v6,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:45:45.541730 +AZURE,francecentral,Standard_DC64ads_v6,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:45:45.541733 +AZURE,francecentral,Standard_DC64ads_v6,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:45:43.839756 +AZURE,francecentral,Standard_DC8ads_v6,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:45:43.840713 +AZURE,francecentral,Standard_DC8ads_v6,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:45:45.542461 +AZURE,francecentral,Standard_DC8ads_v6,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:45:45.542464 +AZURE,francecentral,Standard_DC8ads_v6,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:45:43.839361 +AZURE,francecentral,Standard_DC96ads_v6,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:45:43.840769 +AZURE,francecentral,Standard_DC96ads_v6,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:45:45.542478 +AZURE,francecentral,Standard_DC96ads_v6,reserved_3y,NA,2.444178,USD,Azure Retail Prices API,2025-12-18T04:45:45.542481 +AZURE,francecentral,Standard_DC96ads_v6,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:45:43.838769 +AZURE,francecentral,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495327 +AZURE,francecentral,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495335 +AZURE,francecentral,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495339 +AZURE,francecentral,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495331 +AZURE,francecentral,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496206 +AZURE,francecentral,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496214 +AZURE,francecentral,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496218 +AZURE,francecentral,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496210 +AZURE,francecentral,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496963 +AZURE,francecentral,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496971 +AZURE,francecentral,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496975 +AZURE,francecentral,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496967 +AZURE,francecentral,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497846 +AZURE,francecentral,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497856 +AZURE,francecentral,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497860 +AZURE,francecentral,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497851 +AZURE,francecentral,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491678 +AZURE,francecentral,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491686 +AZURE,francecentral,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491690 +AZURE,francecentral,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491682 +AZURE,francecentral,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492424 +AZURE,francecentral,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492432 +AZURE,francecentral,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492436 +AZURE,francecentral,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492428 +AZURE,francecentral,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493147 +AZURE,francecentral,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493155 +AZURE,francecentral,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493159 +AZURE,francecentral,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493151 +AZURE,francecentral,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493859 +AZURE,francecentral,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493867 +AZURE,francecentral,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493871 +AZURE,francecentral,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493863 +AZURE,francecentral,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494571 +AZURE,francecentral,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494580 +AZURE,francecentral,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494584 +AZURE,francecentral,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494576 +AZURE,francecentral,Standard_E128ds_v6,on_demand,NA,12.293,USD,Azure Retail Prices API,2025-12-18T04:45:43.840308 +AZURE,francecentral,Standard_E128ds_v6,reserved_1y,NA,7.621689,USD,Azure Retail Prices API,2025-12-18T04:45:45.542235 +AZURE,francecentral,Standard_E128ds_v6,reserved_3y,NA,4.79433,USD,Azure Retail Prices API,2025-12-18T04:45:45.542238 +AZURE,francecentral,Standard_E128ds_v6,spot,NA,2.271746,USD,Azure Retail Prices API,2025-12-18T04:45:43.838391 +AZURE,francecentral,Standard_E16_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:45:43.840460 +AZURE,francecentral,Standard_E16_v3,reserved_1y,NA,0.73379,USD,Azure Retail Prices API,2025-12-18T04:45:45.542313 +AZURE,francecentral,Standard_E16_v3,reserved_3y,NA,0.469254,USD,Azure Retail Prices API,2025-12-18T04:45:45.542316 +AZURE,francecentral,Standard_E16_v3,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:45:43.840794 +AZURE,francecentral,Standard_E16a_v4,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:43.838965 +AZURE,francecentral,Standard_E16a_v4,reserved_1y,NA,0.696233,USD,Azure Retail Prices API,2025-12-18T04:45:45.541652 +AZURE,francecentral,Standard_E16a_v4,reserved_3y,NA,0.445167,USD,Azure Retail Prices API,2025-12-18T04:45:45.541655 +AZURE,francecentral,Standard_E16a_v4,spot,NA,0.218803,USD,Azure Retail Prices API,2025-12-18T04:45:43.838322 +AZURE,francecentral,Standard_E16ads_v5,on_demand,NA,1.224,USD,Azure Retail Prices API,2025-12-18T04:45:43.838348 +AZURE,francecentral,Standard_E16ads_v5,reserved_1y,NA,0.722146,USD,Azure Retail Prices API,2025-12-18T04:45:45.541330 +AZURE,francecentral,Standard_E16ads_v5,reserved_3y,NA,0.465107,USD,Azure Retail Prices API,2025-12-18T04:45:45.541335 +AZURE,francecentral,Standard_E16ads_v5,spot,NA,0.226195,USD,Azure Retail Prices API,2025-12-18T04:45:43.839622 +AZURE,francecentral,Standard_E16ads_v6,on_demand,NA,1.363,USD,Azure Retail Prices API,2025-12-18T04:45:43.838869 +AZURE,francecentral,Standard_E16ads_v6,reserved_1y,NA,0.804338,USD,Azure Retail Prices API,2025-12-18T04:45:45.541607 +AZURE,francecentral,Standard_E16ads_v6,reserved_3y,NA,0.517998,USD,Azure Retail Prices API,2025-12-18T04:45:45.541610 +AZURE,francecentral,Standard_E16ads_v6,spot,NA,0.251882,USD,Azure Retail Prices API,2025-12-18T04:45:43.838538 +AZURE,francecentral,Standard_E16as_v4,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:43.840841 +AZURE,francecentral,Standard_E16as_v4,reserved_1y,NA,0.696233,USD,Azure Retail Prices API,2025-12-18T04:45:45.542516 +AZURE,francecentral,Standard_E16as_v4,reserved_3y,NA,0.445167,USD,Azure Retail Prices API,2025-12-18T04:45:45.542519 +AZURE,francecentral,Standard_E16as_v4,spot,NA,0.218803,USD,Azure Retail Prices API,2025-12-18T04:45:43.838847 +AZURE,francecentral,Standard_E16as_v5,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:45:43.838852 +AZURE,francecentral,Standard_E16as_v5,reserved_1y,NA,0.62774,USD,Azure Retail Prices API,2025-12-18T04:45:45.541602 +AZURE,francecentral,Standard_E16as_v5,reserved_3y,NA,0.404338,USD,Azure Retail Prices API,2025-12-18T04:45:45.541605 +AZURE,francecentral,Standard_E16as_v5,spot,NA,0.196627,USD,Azure Retail Prices API,2025-12-18T04:45:43.838863 +AZURE,francecentral,Standard_E16d_v4,on_demand,NA,1.352,USD,Azure Retail Prices API,2025-12-18T04:45:43.840022 +AZURE,francecentral,Standard_E16d_v4,reserved_1y,NA,0.794977,USD,Azure Retail Prices API,2025-12-18T04:45:45.542110 +AZURE,francecentral,Standard_E16d_v4,reserved_3y,NA,0.508333,USD,Azure Retail Prices API,2025-12-18T04:45:45.542113 +AZURE,francecentral,Standard_E16d_v4,spot,NA,0.24985,USD,Azure Retail Prices API,2025-12-18T04:45:43.838586 +AZURE,francecentral,Standard_E16ds_v4,on_demand,NA,1.352,USD,Azure Retail Prices API,2025-12-18T04:45:43.838107 +AZURE,francecentral,Standard_E16ds_v4,reserved_1y,NA,0.794977,USD,Azure Retail Prices API,2025-12-18T04:45:45.541171 +AZURE,francecentral,Standard_E16ds_v4,reserved_3y,NA,0.508333,USD,Azure Retail Prices API,2025-12-18T04:45:45.541174 +AZURE,francecentral,Standard_E16ds_v4,spot,NA,0.24985,USD,Azure Retail Prices API,2025-12-18T04:45:43.838470 +AZURE,francecentral,Standard_E16ds_v5,on_demand,NA,1.352,USD,Azure Retail Prices API,2025-12-18T04:45:43.839612 +AZURE,francecentral,Standard_E16ds_v5,reserved_1y,NA,0.797717,USD,Azure Retail Prices API,2025-12-18T04:45:45.541893 +AZURE,francecentral,Standard_E16ds_v5,reserved_3y,NA,0.513775,USD,Azure Retail Prices API,2025-12-18T04:45:45.541895 +AZURE,francecentral,Standard_E16ds_v5,spot,NA,0.24985,USD,Azure Retail Prices API,2025-12-18T04:45:43.839828 +AZURE,francecentral,Standard_E16ds_v6,on_demand,NA,1.537,USD,Azure Retail Prices API,2025-12-18T04:45:43.838212 +AZURE,francecentral,Standard_E16ds_v6,reserved_1y,NA,0.95274,USD,Azure Retail Prices API,2025-12-18T04:45:45.541249 +AZURE,francecentral,Standard_E16ds_v6,reserved_3y,NA,0.599277,USD,Azure Retail Prices API,2025-12-18T04:45:45.541252 +AZURE,francecentral,Standard_E16ds_v6,spot,NA,0.284038,USD,Azure Retail Prices API,2025-12-18T04:45:43.839557 +AZURE,francecentral,Standard_E16pds_v6,on_demand,NA,1.093,USD,Azure Retail Prices API,2025-12-18T04:45:43.840677 +AZURE,francecentral,Standard_E16pds_v6,reserved_1y,NA,0.644749,USD,Azure Retail Prices API,2025-12-18T04:45:45.542439 +AZURE,francecentral,Standard_E16pds_v6,reserved_3y,NA,0.415259,USD,Azure Retail Prices API,2025-12-18T04:45:45.542442 +AZURE,francecentral,Standard_E16pds_v6,spot,NA,0.201986,USD,Azure Retail Prices API,2025-12-18T04:45:43.839276 +AZURE,francecentral,Standard_E16ps_v6,on_demand,NA,0.862,USD,Azure Retail Prices API,2025-12-18T04:45:43.838928 +AZURE,francecentral,Standard_E16ps_v6,reserved_1y,NA,0.50879,USD,Azure Retail Prices API,2025-12-18T04:45:45.541624 +AZURE,francecentral,Standard_E16ps_v6,reserved_3y,NA,0.327702,USD,Azure Retail Prices API,2025-12-18T04:45:45.541627 +AZURE,francecentral,Standard_E16ps_v6,spot,NA,0.159298,USD,Azure Retail Prices API,2025-12-18T04:45:43.838607 +AZURE,francecentral,Standard_E16s_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:45:43.840774 +AZURE,francecentral,Standard_E16s_v3,reserved_1y,NA,0.73379,USD,Azure Retail Prices API,2025-12-18T04:45:45.542483 +AZURE,francecentral,Standard_E16s_v3,reserved_3y,NA,0.469254,USD,Azure Retail Prices API,2025-12-18T04:45:45.542486 +AZURE,francecentral,Standard_E16s_v3,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:45:43.839864 +AZURE,francecentral,Standard_E16s_v4,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:43.839673 +AZURE,francecentral,Standard_E16s_v4,reserved_1y,NA,0.696233,USD,Azure Retail Prices API,2025-12-18T04:45:45.541928 +AZURE,francecentral,Standard_E16s_v4,reserved_3y,NA,0.445167,USD,Azure Retail Prices API,2025-12-18T04:45:45.541931 +AZURE,francecentral,Standard_E16s_v4,spot,NA,0.218803,USD,Azure Retail Prices API,2025-12-18T04:45:43.838448 +AZURE,francecentral,Standard_E16s_v5,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:43.838651 +AZURE,francecentral,Standard_E16s_v5,reserved_1y,NA,0.698516,USD,Azure Retail Prices API,2025-12-18T04:45:45.541502 +AZURE,francecentral,Standard_E16s_v5,reserved_3y,NA,0.43809,USD,Azure Retail Prices API,2025-12-18T04:45:45.541505 +AZURE,francecentral,Standard_E16s_v5,spot,NA,0.218803,USD,Azure Retail Prices API,2025-12-18T04:45:43.840285 +AZURE,francecentral,Standard_E20a_v4,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:43.840502 +AZURE,francecentral,Standard_E20a_v4,reserved_1y,NA,0.870434,USD,Azure Retail Prices API,2025-12-18T04:45:45.542324 +AZURE,francecentral,Standard_E20a_v4,reserved_3y,NA,0.556507,USD,Azure Retail Prices API,2025-12-18T04:45:45.542326 +AZURE,francecentral,Standard_E20a_v4,spot,NA,0.273504,USD,Azure Retail Prices API,2025-12-18T04:45:43.840438 +AZURE,francecentral,Standard_E20ads_v5,on_demand,NA,1.53,USD,Azure Retail Prices API,2025-12-18T04:45:43.839794 +AZURE,francecentral,Standard_E20ads_v5,reserved_1y,NA,0.90274,USD,Azure Retail Prices API,2025-12-18T04:45:45.542003 +AZURE,francecentral,Standard_E20ads_v5,reserved_3y,NA,0.581393,USD,Azure Retail Prices API,2025-12-18T04:45:45.542006 +AZURE,francecentral,Standard_E20ads_v5,spot,NA,0.282744,USD,Azure Retail Prices API,2025-12-18T04:45:43.840698 +AZURE,francecentral,Standard_E20ads_v6,on_demand,NA,1.704,USD,Azure Retail Prices API,2025-12-18T04:45:43.840527 +AZURE,francecentral,Standard_E20ads_v6,reserved_1y,NA,1.005365,USD,Azure Retail Prices API,2025-12-18T04:45:45.542346 +AZURE,francecentral,Standard_E20ads_v6,reserved_3y,NA,0.647527,USD,Azure Retail Prices API,2025-12-18T04:45:45.542348 +AZURE,francecentral,Standard_E20ads_v6,spot,NA,0.314899,USD,Azure Retail Prices API,2025-12-18T04:45:43.839726 +AZURE,francecentral,Standard_E20as_v4,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:43.839771 +AZURE,francecentral,Standard_E20as_v4,reserved_1y,NA,0.870434,USD,Azure Retail Prices API,2025-12-18T04:45:45.541980 +AZURE,francecentral,Standard_E20as_v4,reserved_3y,NA,0.556507,USD,Azure Retail Prices API,2025-12-18T04:45:45.541983 +AZURE,francecentral,Standard_E20as_v4,spot,NA,0.273504,USD,Azure Retail Prices API,2025-12-18T04:45:43.840455 +AZURE,francecentral,Standard_E20as_v5,on_demand,NA,1.33,USD,Azure Retail Prices API,2025-12-18T04:45:43.838464 +AZURE,francecentral,Standard_E20as_v5,reserved_1y,NA,0.784703,USD,Azure Retail Prices API,2025-12-18T04:45:45.541387 +AZURE,francecentral,Standard_E20as_v5,reserved_3y,NA,0.505403,USD,Azure Retail Prices API,2025-12-18T04:45:45.541390 +AZURE,francecentral,Standard_E20as_v5,spot,NA,0.245784,USD,Azure Retail Prices API,2025-12-18T04:45:43.839315 +AZURE,francecentral,Standard_E20d_v4,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:45:43.838259 +AZURE,francecentral,Standard_E20d_v4,reserved_1y,NA,0.993721,USD,Azure Retail Prices API,2025-12-18T04:45:45.541280 +AZURE,francecentral,Standard_E20d_v4,reserved_3y,NA,0.635464,USD,Azure Retail Prices API,2025-12-18T04:45:45.541283 +AZURE,francecentral,Standard_E20d_v4,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:45:43.840798 +AZURE,francecentral,Standard_E20ds_v4,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:45:43.839446 +AZURE,francecentral,Standard_E20ds_v4,reserved_1y,NA,0.993721,USD,Azure Retail Prices API,2025-12-18T04:45:45.541808 +AZURE,francecentral,Standard_E20ds_v4,reserved_3y,NA,0.635464,USD,Azure Retail Prices API,2025-12-18T04:45:45.541811 +AZURE,francecentral,Standard_E20ds_v4,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:45:43.840167 +AZURE,francecentral,Standard_E20ds_v5,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:45:43.839846 +AZURE,francecentral,Standard_E20ds_v5,reserved_1y,NA,0.997146,USD,Azure Retail Prices API,2025-12-18T04:45:45.542027 +AZURE,francecentral,Standard_E20ds_v5,reserved_3y,NA,0.642199,USD,Azure Retail Prices API,2025-12-18T04:45:45.542029 +AZURE,francecentral,Standard_E20ds_v5,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:45:43.839332 +AZURE,francecentral,Standard_E20ds_v6,on_demand,NA,1.921,USD,Azure Retail Prices API,2025-12-18T04:45:43.839951 +AZURE,francecentral,Standard_E20ds_v6,reserved_1y,NA,1.190868,USD,Azure Retail Prices API,2025-12-18T04:45:45.542078 +AZURE,francecentral,Standard_E20ds_v6,reserved_3y,NA,0.749125,USD,Azure Retail Prices API,2025-12-18T04:45:45.542081 +AZURE,francecentral,Standard_E20ds_v6,spot,NA,0.355001,USD,Azure Retail Prices API,2025-12-18T04:45:43.839654 +AZURE,francecentral,Standard_E20s_v4,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:43.839777 +AZURE,francecentral,Standard_E20s_v4,reserved_1y,NA,0.870434,USD,Azure Retail Prices API,2025-12-18T04:45:45.541985 +AZURE,francecentral,Standard_E20s_v4,reserved_3y,NA,0.556507,USD,Azure Retail Prices API,2025-12-18T04:45:45.541989 +AZURE,francecentral,Standard_E20s_v4,spot,NA,0.273504,USD,Azure Retail Prices API,2025-12-18T04:45:43.838721 +AZURE,francecentral,Standard_E20s_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:43.839344 +AZURE,francecentral,Standard_E20s_v5,reserved_1y,NA,0.873174,USD,Azure Retail Prices API,2025-12-18T04:45:45.541764 +AZURE,francecentral,Standard_E20s_v5,reserved_3y,NA,0.547603,USD,Azure Retail Prices API,2025-12-18T04:45:45.541767 +AZURE,francecentral,Standard_E20s_v5,spot,NA,0.273504,USD,Azure Retail Prices API,2025-12-18T04:45:43.839516 +AZURE,francecentral,Standard_E2_v3,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:45:43.838164 +AZURE,francecentral,Standard_E2_v3,reserved_1y,NA,0.091781,USD,Azure Retail Prices API,2025-12-18T04:45:45.541213 +AZURE,francecentral,Standard_E2_v3,reserved_3y,NA,0.058638,USD,Azure Retail Prices API,2025-12-18T04:45:45.541216 +AZURE,francecentral,Standard_E2_v3,spot,NA,0.028829,USD,Azure Retail Prices API,2025-12-18T04:45:43.838006 +AZURE,francecentral,Standard_E2ads_v6,on_demand,NA,0.17,USD,Azure Retail Prices API,2025-12-18T04:45:43.840832 +AZURE,francecentral,Standard_E2ads_v6,reserved_1y,NA,0.100571,USD,Azure Retail Prices API,2025-12-18T04:45:45.542511 +AZURE,francecentral,Standard_E2ads_v6,reserved_3y,NA,0.064764,USD,Azure Retail Prices API,2025-12-18T04:45:45.542513 +AZURE,francecentral,Standard_E2ads_v6,spot,NA,0.031416,USD,Azure Retail Prices API,2025-12-18T04:45:43.840733 +AZURE,francecentral,Standard_E2ds_v5,on_demand,NA,0.169,USD,Azure Retail Prices API,2025-12-18T04:45:43.838933 +AZURE,francecentral,Standard_E2ds_v5,reserved_1y,NA,0.099658,USD,Azure Retail Prices API,2025-12-18T04:45:45.541629 +AZURE,francecentral,Standard_E2ds_v5,reserved_3y,NA,0.064231,USD,Azure Retail Prices API,2025-12-18T04:45:45.541632 +AZURE,francecentral,Standard_E2ds_v5,spot,NA,0.031231,USD,Azure Retail Prices API,2025-12-18T04:45:43.840475 +AZURE,francecentral,Standard_E2ds_v6,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:45:43.839545 +AZURE,francecentral,Standard_E2ds_v6,reserved_1y,NA,0.119064,USD,Azure Retail Prices API,2025-12-18T04:45:45.541841 +AZURE,francecentral,Standard_E2ds_v6,reserved_3y,NA,0.074924,USD,Azure Retail Prices API,2025-12-18T04:45:45.541844 +AZURE,francecentral,Standard_E2ds_v6,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:45:43.839488 +AZURE,francecentral,Standard_E2pds_v6,on_demand,NA,0.137,USD,Azure Retail Prices API,2025-12-18T04:45:43.840648 +AZURE,francecentral,Standard_E2pds_v6,reserved_1y,NA,0.080594,USD,Azure Retail Prices API,2025-12-18T04:45:45.542423 +AZURE,francecentral,Standard_E2pds_v6,reserved_3y,NA,0.051903,USD,Azure Retail Prices API,2025-12-18T04:45:45.542425 +AZURE,francecentral,Standard_E2pds_v6,spot,NA,0.025318,USD,Azure Retail Prices API,2025-12-18T04:45:43.839451 +AZURE,francecentral,Standard_E32_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:43.840546 +AZURE,francecentral,Standard_E32_v3,reserved_1y,NA,1.467694,USD,Azure Retail Prices API,2025-12-18T04:45:45.542356 +AZURE,francecentral,Standard_E32_v3,reserved_3y,NA,0.938508,USD,Azure Retail Prices API,2025-12-18T04:45:45.542359 +AZURE,francecentral,Standard_E32_v3,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:45:43.838307 +AZURE,francecentral,Standard_E32a_v4,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:43.838618 +AZURE,francecentral,Standard_E32a_v4,reserved_1y,NA,1.392352,USD,Azure Retail Prices API,2025-12-18T04:45:45.541477 +AZURE,francecentral,Standard_E32a_v4,reserved_3y,NA,0.890373,USD,Azure Retail Prices API,2025-12-18T04:45:45.541480 +AZURE,francecentral,Standard_E32a_v4,spot,NA,0.437606,USD,Azure Retail Prices API,2025-12-18T04:45:43.838785 +AZURE,francecentral,Standard_E32ads_v5,on_demand,NA,3.92,USD,Azure Retail Prices API,2025-12-18T04:45:43.838059 +AZURE,francecentral,Standard_E32ads_v5,reserved_1y,NA,1.444292,USD,Azure Retail Prices API,2025-12-18T04:45:45.542169 +AZURE,francecentral,Standard_E32ads_v5,reserved_3y,NA,0.930251,USD,Azure Retail Prices API,2025-12-18T04:45:45.542172 +AZURE,francecentral,Standard_E32ads_v5,spot,NA,0.45239,USD,Azure Retail Prices API,2025-12-18T04:45:43.838302 +AZURE,francecentral,Standard_E32ads_v6,on_demand,NA,2.726,USD,Azure Retail Prices API,2025-12-18T04:45:43.839367 +AZURE,francecentral,Standard_E32ads_v6,reserved_1y,NA,1.608562,USD,Azure Retail Prices API,2025-12-18T04:45:45.541769 +AZURE,francecentral,Standard_E32ads_v6,reserved_3y,NA,1.036035,USD,Azure Retail Prices API,2025-12-18T04:45:45.541772 +AZURE,francecentral,Standard_E32ads_v6,spot,NA,0.503765,USD,Azure Retail Prices API,2025-12-18T04:45:43.840144 +AZURE,francecentral,Standard_E32as_v4,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:43.838380 +AZURE,francecentral,Standard_E32as_v4,reserved_1y,NA,1.392352,USD,Azure Retail Prices API,2025-12-18T04:45:45.541358 +AZURE,francecentral,Standard_E32as_v4,reserved_3y,NA,0.890373,USD,Azure Retail Prices API,2025-12-18T04:45:45.541361 +AZURE,francecentral,Standard_E32as_v4,spot,NA,0.437606,USD,Azure Retail Prices API,2025-12-18T04:45:43.840393 +AZURE,francecentral,Standard_E32as_v5,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:45:43.838101 +AZURE,francecentral,Standard_E32as_v5,reserved_1y,NA,1.255479,USD,Azure Retail Prices API,2025-12-18T04:45:45.541165 +AZURE,francecentral,Standard_E32as_v5,reserved_3y,NA,0.808638,USD,Azure Retail Prices API,2025-12-18T04:45:45.541169 +AZURE,francecentral,Standard_E32as_v5,spot,NA,0.393254,USD,Azure Retail Prices API,2025-12-18T04:45:43.837890 +AZURE,francecentral,Standard_E32d_v4,on_demand,NA,2.704,USD,Azure Retail Prices API,2025-12-18T04:45:43.840577 +AZURE,francecentral,Standard_E32d_v4,reserved_1y,NA,1.589954,USD,Azure Retail Prices API,2025-12-18T04:45:45.542373 +AZURE,francecentral,Standard_E32d_v4,reserved_3y,NA,1.016705,USD,Azure Retail Prices API,2025-12-18T04:45:45.542375 +AZURE,francecentral,Standard_E32d_v4,spot,NA,0.499699,USD,Azure Retail Prices API,2025-12-18T04:45:43.839209 +AZURE,francecentral,Standard_E32ds_v4,on_demand,NA,2.704,USD,Azure Retail Prices API,2025-12-18T04:45:43.840352 +AZURE,francecentral,Standard_E32ds_v4,reserved_1y,NA,1.589954,USD,Azure Retail Prices API,2025-12-18T04:45:45.542268 +AZURE,francecentral,Standard_E32ds_v4,reserved_3y,NA,1.016705,USD,Azure Retail Prices API,2025-12-18T04:45:45.542271 +AZURE,francecentral,Standard_E32ds_v4,spot,NA,0.499699,USD,Azure Retail Prices API,2025-12-18T04:45:43.838438 +AZURE,francecentral,Standard_E32ds_v5,on_demand,NA,2.704,USD,Azure Retail Prices API,2025-12-18T04:45:43.839789 +AZURE,francecentral,Standard_E32ds_v5,reserved_1y,NA,1.59532,USD,Azure Retail Prices API,2025-12-18T04:45:45.541997 +AZURE,francecentral,Standard_E32ds_v5,reserved_3y,NA,1.027511,USD,Azure Retail Prices API,2025-12-18T04:45:45.542000 +AZURE,francecentral,Standard_E32ds_v5,spot,NA,0.499699,USD,Azure Retail Prices API,2025-12-18T04:45:43.840161 +AZURE,francecentral,Standard_E32ds_v6,on_demand,NA,3.073,USD,Azure Retail Prices API,2025-12-18T04:45:43.838075 +AZURE,francecentral,Standard_E32ds_v6,reserved_1y,NA,1.905479,USD,Azure Retail Prices API,2025-12-18T04:45:45.541145 +AZURE,francecentral,Standard_E32ds_v6,reserved_3y,NA,1.198592,USD,Azure Retail Prices API,2025-12-18T04:45:45.541151 +AZURE,francecentral,Standard_E32ds_v6,spot,NA,0.56789,USD,Azure Retail Prices API,2025-12-18T04:45:43.838270 +AZURE,francecentral,Standard_E32pds_v6,on_demand,NA,2.186,USD,Azure Retail Prices API,2025-12-18T04:45:43.839320 +AZURE,francecentral,Standard_E32pds_v6,reserved_1y,NA,1.289498,USD,Azure Retail Prices API,2025-12-18T04:45:45.541747 +AZURE,francecentral,Standard_E32pds_v6,reserved_3y,NA,0.830518,USD,Azure Retail Prices API,2025-12-18T04:45:45.541750 +AZURE,francecentral,Standard_E32pds_v6,spot,NA,0.403973,USD,Azure Retail Prices API,2025-12-18T04:45:43.838758 +AZURE,francecentral,Standard_E32ps_v6,on_demand,NA,1.725,USD,Azure Retail Prices API,2025-12-18T04:45:43.839043 +AZURE,francecentral,Standard_E32ps_v6,reserved_1y,NA,1.01758,USD,Azure Retail Prices API,2025-12-18T04:45:45.541697 +AZURE,francecentral,Standard_E32ps_v6,reserved_3y,NA,0.655441,USD,Azure Retail Prices API,2025-12-18T04:45:45.541700 +AZURE,francecentral,Standard_E32ps_v6,spot,NA,0.31878,USD,Azure Retail Prices API,2025-12-18T04:45:43.840617 +AZURE,francecentral,Standard_E32s_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:43.840541 +AZURE,francecentral,Standard_E32s_v3,reserved_1y,NA,1.467694,USD,Azure Retail Prices API,2025-12-18T04:45:45.542351 +AZURE,francecentral,Standard_E32s_v3,reserved_3y,NA,0.938508,USD,Azure Retail Prices API,2025-12-18T04:45:45.542354 +AZURE,francecentral,Standard_E32s_v3,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:45:43.839904 +AZURE,francecentral,Standard_E32s_v4,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:43.840587 +AZURE,francecentral,Standard_E32s_v4,reserved_1y,NA,1.392352,USD,Azure Retail Prices API,2025-12-18T04:45:45.542378 +AZURE,francecentral,Standard_E32s_v4,reserved_3y,NA,0.890373,USD,Azure Retail Prices API,2025-12-18T04:45:45.542381 +AZURE,francecentral,Standard_E32s_v4,spot,NA,0.437606,USD,Azure Retail Prices API,2025-12-18T04:45:43.838896 +AZURE,francecentral,Standard_E32s_v5,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:43.839309 +AZURE,francecentral,Standard_E32s_v5,reserved_1y,NA,1.397146,USD,Azure Retail Prices API,2025-12-18T04:45:45.541741 +AZURE,francecentral,Standard_E32s_v5,reserved_3y,NA,0.876142,USD,Azure Retail Prices API,2025-12-18T04:45:45.541744 +AZURE,francecentral,Standard_E32s_v5,spot,NA,0.437606,USD,Azure Retail Prices API,2025-12-18T04:45:43.840856 +AZURE,francecentral,Standard_E48a_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:43.837919 +AZURE,francecentral,Standard_E48a_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:45.540974 +AZURE,francecentral,Standard_E48a_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:45.540989 +AZURE,francecentral,Standard_E48a_v4,spot,NA,0.65641,USD,Azure Retail Prices API,2025-12-18T04:45:43.839627 +AZURE,francecentral,Standard_E48ads_v5,on_demand,NA,5.88,USD,Azure Retail Prices API,2025-12-18T04:45:43.839237 +AZURE,francecentral,Standard_E48ads_v5,reserved_1y,NA,2.166438,USD,Azure Retail Prices API,2025-12-18T04:45:45.542246 +AZURE,francecentral,Standard_E48ads_v5,reserved_3y,NA,1.395358,USD,Azure Retail Prices API,2025-12-18T04:45:45.542249 +AZURE,francecentral,Standard_E48ads_v5,spot,NA,0.678586,USD,Azure Retail Prices API,2025-12-18T04:45:43.840398 +AZURE,francecentral,Standard_E48ads_v6,on_demand,NA,4.09,USD,Azure Retail Prices API,2025-12-18T04:45:43.838955 +AZURE,francecentral,Standard_E48ads_v6,reserved_1y,NA,2.4129,USD,Azure Retail Prices API,2025-12-18T04:45:45.541646 +AZURE,francecentral,Standard_E48ads_v6,reserved_3y,NA,1.554033,USD,Azure Retail Prices API,2025-12-18T04:45:45.541649 +AZURE,francecentral,Standard_E48ads_v6,spot,NA,0.755832,USD,Azure Retail Prices API,2025-12-18T04:45:43.838742 +AZURE,francecentral,Standard_E48as_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:43.839005 +AZURE,francecentral,Standard_E48as_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:45.541674 +AZURE,francecentral,Standard_E48as_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:45.541677 +AZURE,francecentral,Standard_E48as_v4,spot,NA,0.65641,USD,Azure Retail Prices API,2025-12-18T04:45:43.839910 +AZURE,francecentral,Standard_E48as_v5,on_demand,NA,3.192,USD,Azure Retail Prices API,2025-12-18T04:45:43.839562 +AZURE,francecentral,Standard_E48as_v5,reserved_1y,NA,1.883333,USD,Azure Retail Prices API,2025-12-18T04:45:45.541847 +AZURE,francecentral,Standard_E48as_v5,reserved_3y,NA,1.212976,USD,Azure Retail Prices API,2025-12-18T04:45:45.541850 +AZURE,francecentral,Standard_E48as_v5,spot,NA,0.589882,USD,Azure Retail Prices API,2025-12-18T04:45:43.840723 +AZURE,francecentral,Standard_E48d_v4,on_demand,NA,4.056,USD,Azure Retail Prices API,2025-12-18T04:45:43.838699 +AZURE,francecentral,Standard_E48d_v4,reserved_1y,NA,2.384932,USD,Azure Retail Prices API,2025-12-18T04:45:45.541524 +AZURE,francecentral,Standard_E48d_v4,reserved_3y,NA,1.525038,USD,Azure Retail Prices API,2025-12-18T04:45:45.541527 +AZURE,francecentral,Standard_E48d_v4,spot,NA,0.749549,USD,Azure Retail Prices API,2025-12-18T04:45:43.840709 +AZURE,francecentral,Standard_E48ds_v4,on_demand,NA,4.056,USD,Azure Retail Prices API,2025-12-18T04:45:43.840227 +AZURE,francecentral,Standard_E48ds_v4,reserved_1y,NA,2.384932,USD,Azure Retail Prices API,2025-12-18T04:45:45.542204 +AZURE,francecentral,Standard_E48ds_v4,reserved_3y,NA,1.525038,USD,Azure Retail Prices API,2025-12-18T04:45:45.542209 +AZURE,francecentral,Standard_E48ds_v4,spot,NA,0.749549,USD,Azure Retail Prices API,2025-12-18T04:45:43.840896 +AZURE,francecentral,Standard_E48ds_v5,on_demand,NA,4.056,USD,Azure Retail Prices API,2025-12-18T04:45:43.838808 +AZURE,francecentral,Standard_E48ds_v5,reserved_1y,NA,2.393037,USD,Azure Retail Prices API,2025-12-18T04:45:45.541590 +AZURE,francecentral,Standard_E48ds_v5,reserved_3y,NA,1.541286,USD,Azure Retail Prices API,2025-12-18T04:45:45.541592 +AZURE,francecentral,Standard_E48ds_v5,spot,NA,0.749549,USD,Azure Retail Prices API,2025-12-18T04:45:43.839429 +AZURE,francecentral,Standard_E48ds_v6,on_demand,NA,4.61,USD,Azure Retail Prices API,2025-12-18T04:45:43.840127 +AZURE,francecentral,Standard_E48ds_v6,reserved_1y,NA,2.858105,USD,Azure Retail Prices API,2025-12-18T04:45:45.542163 +AZURE,francecentral,Standard_E48ds_v6,reserved_3y,NA,1.797869,USD,Azure Retail Prices API,2025-12-18T04:45:45.542166 +AZURE,francecentral,Standard_E48ds_v6,spot,NA,0.851928,USD,Azure Retail Prices API,2025-12-18T04:45:43.837924 +AZURE,francecentral,Standard_E48pds_v6,on_demand,NA,3.278,USD,Azure Retail Prices API,2025-12-18T04:45:43.840138 +AZURE,francecentral,Standard_E48pds_v6,reserved_1y,NA,1.934247,USD,Azure Retail Prices API,2025-12-18T04:45:45.542180 +AZURE,francecentral,Standard_E48pds_v6,reserved_3y,NA,1.245776,USD,Azure Retail Prices API,2025-12-18T04:45:45.542183 +AZURE,francecentral,Standard_E48pds_v6,spot,NA,0.605774,USD,Azure Retail Prices API,2025-12-18T04:45:43.840155 +AZURE,francecentral,Standard_E48ps_v6,on_demand,NA,2.587,USD,Azure Retail Prices API,2025-12-18T04:45:43.838053 +AZURE,francecentral,Standard_E48ps_v6,reserved_1y,NA,1.526484,USD,Azure Retail Prices API,2025-12-18T04:45:45.541112 +AZURE,francecentral,Standard_E48ps_v6,reserved_3y,NA,0.983143,USD,Azure Retail Prices API,2025-12-18T04:45:45.541114 +AZURE,francecentral,Standard_E48ps_v6,spot,NA,0.478078,USD,Azure Retail Prices API,2025-12-18T04:45:43.839373 +AZURE,francecentral,Standard_E48s_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:43.840330 +AZURE,francecentral,Standard_E48s_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:45.542257 +AZURE,francecentral,Standard_E48s_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:45.542260 +AZURE,francecentral,Standard_E48s_v4,spot,NA,0.65641,USD,Azure Retail Prices API,2025-12-18T04:45:43.839857 +AZURE,francecentral,Standard_E48s_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:43.838491 +AZURE,francecentral,Standard_E48s_v5,reserved_1y,NA,2.095662,USD,Azure Retail Prices API,2025-12-18T04:45:45.541410 +AZURE,francecentral,Standard_E48s_v5,reserved_3y,NA,1.314231,USD,Azure Retail Prices API,2025-12-18T04:45:45.541413 +AZURE,francecentral,Standard_E48s_v5,spot,NA,0.65641,USD,Azure Retail Prices API,2025-12-18T04:45:43.839643 +AZURE,francecentral,Standard_E4_v3,on_demand,NA,0.312,USD,Azure Retail Prices API,2025-12-18T04:45:43.840813 +AZURE,francecentral,Standard_E4_v3,reserved_1y,NA,0.183447,USD,Azure Retail Prices API,2025-12-18T04:45:45.542494 +AZURE,francecentral,Standard_E4_v3,reserved_3y,NA,0.117314,USD,Azure Retail Prices API,2025-12-18T04:45:45.542497 +AZURE,francecentral,Standard_E4_v3,spot,NA,0.057658,USD,Azure Retail Prices API,2025-12-18T04:45:43.838640 +AZURE,francecentral,Standard_E4a_v4,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:43.838017 +AZURE,francecentral,Standard_E4a_v4,reserved_1y,NA,0.174087,USD,Azure Retail Prices API,2025-12-18T04:45:45.541060 +AZURE,francecentral,Standard_E4a_v4,reserved_3y,NA,0.111301,USD,Azure Retail Prices API,2025-12-18T04:45:45.541065 +AZURE,francecentral,Standard_E4a_v4,spot,NA,0.054701,USD,Azure Retail Prices API,2025-12-18T04:45:43.839015 +AZURE,francecentral,Standard_E4ads_v5,on_demand,NA,0.306,USD,Azure Retail Prices API,2025-12-18T04:45:43.840133 +AZURE,francecentral,Standard_E4ads_v5,reserved_1y,NA,0.180594,USD,Azure Retail Prices API,2025-12-18T04:45:45.542174 +AZURE,francecentral,Standard_E4ads_v5,reserved_3y,NA,0.116286,USD,Azure Retail Prices API,2025-12-18T04:45:45.542177 +AZURE,francecentral,Standard_E4ads_v5,spot,NA,0.056549,USD,Azure Retail Prices API,2025-12-18T04:45:43.839986 +AZURE,francecentral,Standard_E4ads_v6,on_demand,NA,0.341,USD,Azure Retail Prices API,2025-12-18T04:45:43.839595 +AZURE,francecentral,Standard_E4ads_v6,reserved_1y,NA,0.201027,USD,Azure Retail Prices API,2025-12-18T04:45:45.541881 +AZURE,francecentral,Standard_E4ads_v6,reserved_3y,NA,0.12949,USD,Azure Retail Prices API,2025-12-18T04:45:45.541884 +AZURE,francecentral,Standard_E4ads_v6,spot,NA,0.063017,USD,Azure Retail Prices API,2025-12-18T04:45:43.840408 +AZURE,francecentral,Standard_E4as_v4,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:43.839220 +AZURE,francecentral,Standard_E4as_v4,reserved_1y,NA,0.174087,USD,Azure Retail Prices API,2025-12-18T04:45:45.541719 +AZURE,francecentral,Standard_E4as_v4,reserved_3y,NA,0.111301,USD,Azure Retail Prices API,2025-12-18T04:45:45.541722 +AZURE,francecentral,Standard_E4as_v4,spot,NA,0.054701,USD,Azure Retail Prices API,2025-12-18T04:45:43.840480 +AZURE,francecentral,Standard_E4as_v5,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:45:43.838190 +AZURE,francecentral,Standard_E4as_v5,reserved_1y,NA,0.156963,USD,Azure Retail Prices API,2025-12-18T04:45:45.541225 +AZURE,francecentral,Standard_E4as_v5,reserved_3y,NA,0.101065,USD,Azure Retail Prices API,2025-12-18T04:45:45.541227 +AZURE,francecentral,Standard_E4as_v5,spot,NA,0.049157,USD,Azure Retail Prices API,2025-12-18T04:45:43.840057 +AZURE,francecentral,Standard_E4d_v4,on_demand,NA,0.338,USD,Azure Retail Prices API,2025-12-18T04:45:43.839638 +AZURE,francecentral,Standard_E4d_v4,reserved_1y,NA,0.198744,USD,Azure Retail Prices API,2025-12-18T04:45:45.541904 +AZURE,francecentral,Standard_E4d_v4,reserved_3y,NA,0.127093,USD,Azure Retail Prices API,2025-12-18T04:45:45.541907 +AZURE,francecentral,Standard_E4d_v4,spot,NA,0.062462,USD,Azure Retail Prices API,2025-12-18T04:45:43.839048 +AZURE,francecentral,Standard_E4ds_v4,on_demand,NA,0.338,USD,Azure Retail Prices API,2025-12-18T04:45:43.840633 +AZURE,francecentral,Standard_E4ds_v4,reserved_1y,NA,0.198744,USD,Azure Retail Prices API,2025-12-18T04:45:45.542412 +AZURE,francecentral,Standard_E4ds_v4,reserved_3y,NA,0.127093,USD,Azure Retail Prices API,2025-12-18T04:45:45.542414 +AZURE,francecentral,Standard_E4ds_v4,spot,NA,0.062462,USD,Azure Retail Prices API,2025-12-18T04:45:43.838011 +AZURE,francecentral,Standard_E4ds_v5,on_demand,NA,0.338,USD,Azure Retail Prices API,2025-12-18T04:45:43.838264 +AZURE,francecentral,Standard_E4ds_v5,reserved_1y,NA,0.199429,USD,Azure Retail Prices API,2025-12-18T04:45:45.541286 +AZURE,francecentral,Standard_E4ds_v5,reserved_3y,NA,0.128425,USD,Azure Retail Prices API,2025-12-18T04:45:45.541289 +AZURE,francecentral,Standard_E4ds_v5,spot,NA,0.062462,USD,Azure Retail Prices API,2025-12-18T04:45:43.838880 +AZURE,francecentral,Standard_E4ds_v6,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:45:43.839939 +AZURE,francecentral,Standard_E4ds_v6,reserved_1y,NA,0.238128,USD,Azure Retail Prices API,2025-12-18T04:45:45.542067 +AZURE,francecentral,Standard_E4ds_v6,reserved_3y,NA,0.14981,USD,Azure Retail Prices API,2025-12-18T04:45:45.542070 +AZURE,francecentral,Standard_E4ds_v6,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:45:43.839735 +AZURE,francecentral,Standard_E4pds_v6,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:45:43.839835 +AZURE,francecentral,Standard_E4pds_v6,reserved_1y,NA,0.161187,USD,Azure Retail Prices API,2025-12-18T04:45:45.542020 +AZURE,francecentral,Standard_E4pds_v6,reserved_3y,NA,0.103805,USD,Azure Retail Prices API,2025-12-18T04:45:45.542024 +AZURE,francecentral,Standard_E4pds_v6,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:43.838901 +AZURE,francecentral,Standard_E4ps_v6,on_demand,NA,0.216,USD,Azure Retail Prices API,2025-12-18T04:45:43.840009 +AZURE,francecentral,Standard_E4ps_v6,reserved_1y,NA,0.127169,USD,Azure Retail Prices API,2025-12-18T04:45:45.542105 +AZURE,francecentral,Standard_E4ps_v6,reserved_3y,NA,0.081925,USD,Azure Retail Prices API,2025-12-18T04:45:45.542107 +AZURE,francecentral,Standard_E4ps_v6,spot,NA,0.039917,USD,Azure Retail Prices API,2025-12-18T04:45:43.840572 +AZURE,francecentral,Standard_E4s_v4,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:43.837968 +AZURE,francecentral,Standard_E4s_v4,reserved_1y,NA,0.174087,USD,Azure Retail Prices API,2025-12-18T04:45:45.541021 +AZURE,francecentral,Standard_E4s_v4,reserved_3y,NA,0.111301,USD,Azure Retail Prices API,2025-12-18T04:45:45.541025 +AZURE,francecentral,Standard_E4s_v4,spot,NA,0.054701,USD,Azure Retail Prices API,2025-12-18T04:45:43.839282 +AZURE,francecentral,Standard_E4s_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:43.840592 +AZURE,francecentral,Standard_E4s_v5,reserved_1y,NA,0.174658,USD,Azure Retail Prices API,2025-12-18T04:45:45.542384 +AZURE,francecentral,Standard_E4s_v5,reserved_3y,NA,0.109513,USD,Azure Retail Prices API,2025-12-18T04:45:45.542387 +AZURE,francecentral,Standard_E4s_v5,spot,NA,0.054701,USD,Azure Retail Prices API,2025-12-18T04:45:43.838575 +AZURE,francecentral,Standard_E64_v3,on_demand,NA,4.488,USD,Azure Retail Prices API,2025-12-18T04:45:43.840779 +AZURE,francecentral,Standard_E64_v3,reserved_1y,NA,2.766438,USD,Azure Retail Prices API,2025-12-18T04:45:45.542489 +AZURE,francecentral,Standard_E64_v3,reserved_3y,NA,1.769026,USD,Azure Retail Prices API,2025-12-18T04:45:45.542491 +AZURE,francecentral,Standard_E64_v3,spot,NA,0.829382,USD,Azure Retail Prices API,2025-12-18T04:45:43.840757 +AZURE,francecentral,Standard_E64a_v4,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:43.838038 +AZURE,francecentral,Standard_E64a_v4,reserved_1y,NA,2.784817,USD,Azure Retail Prices API,2025-12-18T04:45:45.541093 +AZURE,francecentral,Standard_E64a_v4,reserved_3y,NA,1.780746,USD,Azure Retail Prices API,2025-12-18T04:45:45.541096 +AZURE,francecentral,Standard_E64a_v4,spot,NA,0.875213,USD,Azure Retail Prices API,2025-12-18T04:45:43.838624 +AZURE,francecentral,Standard_E64ads_v5,on_demand,NA,7.84,USD,Azure Retail Prices API,2025-12-18T04:45:43.837946 +AZURE,francecentral,Standard_E64ads_v5,reserved_1y,NA,2.888584,USD,Azure Retail Prices API,2025-12-18T04:45:45.541945 +AZURE,francecentral,Standard_E64ads_v5,reserved_3y,NA,1.860464,USD,Azure Retail Prices API,2025-12-18T04:45:45.541948 +AZURE,francecentral,Standard_E64ads_v5,spot,NA,0.904781,USD,Azure Retail Prices API,2025-12-18T04:45:43.840347 +AZURE,francecentral,Standard_E64ads_v6,on_demand,NA,5.453,USD,Azure Retail Prices API,2025-12-18T04:45:43.839957 +AZURE,francecentral,Standard_E64ads_v6,reserved_1y,NA,3.217123,USD,Azure Retail Prices API,2025-12-18T04:45:45.542084 +AZURE,francecentral,Standard_E64ads_v6,reserved_3y,NA,2.07207,USD,Azure Retail Prices API,2025-12-18T04:45:45.542086 +AZURE,francecentral,Standard_E64ads_v6,spot,NA,1.007714,USD,Azure Retail Prices API,2025-12-18T04:45:43.839214 +AZURE,francecentral,Standard_E64as_v4,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:43.840555 +AZURE,francecentral,Standard_E64as_v4,reserved_1y,NA,2.784817,USD,Azure Retail Prices API,2025-12-18T04:45:45.542362 +AZURE,francecentral,Standard_E64as_v4,reserved_3y,NA,1.780746,USD,Azure Retail Prices API,2025-12-18T04:45:45.542364 +AZURE,francecentral,Standard_E64as_v4,spot,NA,0.875213,USD,Azure Retail Prices API,2025-12-18T04:45:43.840507 +AZURE,francecentral,Standard_E64as_v5,on_demand,NA,7.2,USD,Azure Retail Prices API,2025-12-18T04:45:43.838890 +AZURE,francecentral,Standard_E64as_v5,reserved_1y,NA,2.511073,USD,Azure Retail Prices API,2025-12-18T04:45:45.541775 +AZURE,francecentral,Standard_E64as_v5,reserved_3y,NA,1.617275,USD,Azure Retail Prices API,2025-12-18T04:45:45.541777 +AZURE,francecentral,Standard_E64as_v5,spot,NA,0.786509,USD,Azure Retail Prices API,2025-12-18T04:45:43.839851 +AZURE,francecentral,Standard_E64d_v4,on_demand,NA,5.408,USD,Azure Retail Prices API,2025-12-18T04:45:43.840290 +AZURE,francecentral,Standard_E64d_v4,reserved_1y,NA,3.179909,USD,Azure Retail Prices API,2025-12-18T04:45:45.542229 +AZURE,francecentral,Standard_E64d_v4,reserved_3y,NA,2.033409,USD,Azure Retail Prices API,2025-12-18T04:45:45.542232 +AZURE,francecentral,Standard_E64d_v4,spot,NA,0.999398,USD,Azure Retail Prices API,2025-12-18T04:45:43.840251 +AZURE,francecentral,Standard_E64ds_v4,on_demand,NA,5.408,USD,Azure Retail Prices API,2025-12-18T04:45:43.838280 +AZURE,francecentral,Standard_E64ds_v4,reserved_1y,NA,3.179909,USD,Azure Retail Prices API,2025-12-18T04:45:45.541292 +AZURE,francecentral,Standard_E64ds_v4,reserved_3y,NA,2.033409,USD,Azure Retail Prices API,2025-12-18T04:45:45.541295 +AZURE,francecentral,Standard_E64ds_v4,spot,NA,0.999398,USD,Azure Retail Prices API,2025-12-18T04:45:43.840567 +AZURE,francecentral,Standard_E64ds_v5,on_demand,NA,5.408,USD,Azure Retail Prices API,2025-12-18T04:45:43.838841 +AZURE,francecentral,Standard_E64ds_v5,reserved_1y,NA,3.190753,USD,Azure Retail Prices API,2025-12-18T04:45:45.541596 +AZURE,francecentral,Standard_E64ds_v5,reserved_3y,NA,2.055023,USD,Azure Retail Prices API,2025-12-18T04:45:45.541599 +AZURE,francecentral,Standard_E64ds_v5,spot,NA,0.999398,USD,Azure Retail Prices API,2025-12-18T04:45:43.838501 +AZURE,francecentral,Standard_E64ds_v6,on_demand,NA,6.147,USD,Azure Retail Prices API,2025-12-18T04:45:43.839192 +AZURE,francecentral,Standard_E64ds_v6,reserved_1y,NA,3.810845,USD,Azure Retail Prices API,2025-12-18T04:45:45.541708 +AZURE,francecentral,Standard_E64ds_v6,reserved_3y,NA,2.397146,USD,Azure Retail Prices API,2025-12-18T04:45:45.541711 +AZURE,francecentral,Standard_E64ds_v6,spot,NA,1.135966,USD,Azure Retail Prices API,2025-12-18T04:45:43.839881 +AZURE,francecentral,Standard_E64pds_v6,on_demand,NA,4.371,USD,Azure Retail Prices API,2025-12-18T04:45:43.839303 +AZURE,francecentral,Standard_E64pds_v6,reserved_1y,NA,2.578995,USD,Azure Retail Prices API,2025-12-18T04:45:45.541736 +AZURE,francecentral,Standard_E64pds_v6,reserved_3y,NA,1.661073,USD,Azure Retail Prices API,2025-12-18T04:45:45.541739 +AZURE,francecentral,Standard_E64pds_v6,spot,NA,0.807761,USD,Azure Retail Prices API,2025-12-18T04:45:43.840851 +AZURE,francecentral,Standard_E64ps_v6,on_demand,NA,3.45,USD,Azure Retail Prices API,2025-12-18T04:45:43.838715 +AZURE,francecentral,Standard_E64ps_v6,reserved_1y,NA,2.035274,USD,Azure Retail Prices API,2025-12-18T04:45:45.541535 +AZURE,francecentral,Standard_E64ps_v6,reserved_3y,NA,1.310845,USD,Azure Retail Prices API,2025-12-18T04:45:45.541538 +AZURE,francecentral,Standard_E64ps_v6,spot,NA,0.63756,USD,Azure Retail Prices API,2025-12-18T04:45:43.838312 +AZURE,francecentral,Standard_E64s_v3,on_demand,NA,4.488,USD,Azure Retail Prices API,2025-12-18T04:45:43.838667 +AZURE,francecentral,Standard_E64s_v3,reserved_1y,NA,2.766438,USD,Azure Retail Prices API,2025-12-18T04:45:45.541507 +AZURE,francecentral,Standard_E64s_v3,reserved_3y,NA,1.769026,USD,Azure Retail Prices API,2025-12-18T04:45:45.541510 +AZURE,francecentral,Standard_E64s_v3,spot,NA,0.829382,USD,Azure Retail Prices API,2025-12-18T04:45:43.839716 +AZURE,francecentral,Standard_E64s_v4,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:43.838791 +AZURE,francecentral,Standard_E64s_v4,reserved_1y,NA,2.784817,USD,Azure Retail Prices API,2025-12-18T04:45:45.541584 +AZURE,francecentral,Standard_E64s_v4,reserved_3y,NA,1.780746,USD,Azure Retail Prices API,2025-12-18T04:45:45.541587 +AZURE,francecentral,Standard_E64s_v4,spot,NA,0.875213,USD,Azure Retail Prices API,2025-12-18T04:45:43.839522 +AZURE,francecentral,Standard_E64s_v5,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:43.837902 +AZURE,francecentral,Standard_E64s_v5,reserved_1y,NA,2.794292,USD,Azure Retail Prices API,2025-12-18T04:45:45.540969 +AZURE,francecentral,Standard_E64s_v5,reserved_3y,NA,1.752321,USD,Azure Retail Prices API,2025-12-18T04:45:45.540972 +AZURE,francecentral,Standard_E64s_v5,spot,NA,0.875213,USD,Azure Retail Prices API,2025-12-18T04:45:43.840068 +AZURE,francecentral,Standard_E80ids_v4,on_demand,NA,6.76,USD,Azure Retail Prices API,2025-12-18T04:45:43.838949 +AZURE,francecentral,Standard_E80ids_v4,reserved_1y,NA,3.974886,USD,Azure Retail Prices API,2025-12-18T04:45:45.541640 +AZURE,francecentral,Standard_E80ids_v4,reserved_3y,NA,2.541857,USD,Azure Retail Prices API,2025-12-18T04:45:45.541643 +AZURE,francecentral,Standard_E80ids_v4,spot,NA,1.249248,USD,Azure Retail Prices API,2025-12-18T04:45:43.838661 +AZURE,francecentral,Standard_E80is_v4,on_demand,NA,5.92,USD,Azure Retail Prices API,2025-12-18T04:45:43.838999 +AZURE,francecentral,Standard_E80is_v4,reserved_1y,NA,3.481735,USD,Azure Retail Prices API,2025-12-18T04:45:45.541669 +AZURE,francecentral,Standard_E80is_v4,reserved_3y,NA,2.226027,USD,Azure Retail Prices API,2025-12-18T04:45:45.541672 +AZURE,francecentral,Standard_E80is_v4,spot,NA,1.094016,USD,Azure Retail Prices API,2025-12-18T04:45:43.839899 +AZURE,francecentral,Standard_E8_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:45:43.838612 +AZURE,francecentral,Standard_E8_v3,reserved_1y,NA,0.366895,USD,Azure Retail Prices API,2025-12-18T04:45:45.541471 +AZURE,francecentral,Standard_E8_v3,reserved_3y,NA,0.234627,USD,Azure Retail Prices API,2025-12-18T04:45:45.541475 +AZURE,francecentral,Standard_E8_v3,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:45:43.838907 +AZURE,francecentral,Standard_E8a_v4,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:43.839407 +AZURE,francecentral,Standard_E8a_v4,reserved_1y,NA,0.348059,USD,Azure Retail Prices API,2025-12-18T04:45:45.541791 +AZURE,francecentral,Standard_E8a_v4,reserved_3y,NA,0.222603,USD,Azure Retail Prices API,2025-12-18T04:45:45.541794 +AZURE,francecentral,Standard_E8a_v4,spot,NA,0.109402,USD,Azure Retail Prices API,2025-12-18T04:45:43.839869 +AZURE,francecentral,Standard_E8ads_v5,on_demand,NA,0.98,USD,Azure Retail Prices API,2025-12-18T04:45:43.838656 +AZURE,francecentral,Standard_E8ads_v5,reserved_1y,NA,0.361073,USD,Azure Retail Prices API,2025-12-18T04:45:45.542318 +AZURE,francecentral,Standard_E8ads_v5,reserved_3y,NA,0.232572,USD,Azure Retail Prices API,2025-12-18T04:45:45.542321 +AZURE,francecentral,Standard_E8ads_v5,spot,NA,0.113098,USD,Azure Retail Prices API,2025-12-18T04:45:43.840532 +AZURE,francecentral,Standard_E8ads_v6,on_demand,NA,0.682,USD,Azure Retail Prices API,2025-12-18T04:45:43.840846 +AZURE,francecentral,Standard_E8ads_v6,reserved_1y,NA,0.402169,USD,Azure Retail Prices API,2025-12-18T04:45:45.542522 +AZURE,francecentral,Standard_E8ads_v6,reserved_3y,NA,0.259018,USD,Azure Retail Prices API,2025-12-18T04:45:45.542524 +AZURE,francecentral,Standard_E8ads_v6,spot,NA,0.126034,USD,Azure Retail Prices API,2025-12-18T04:45:43.839349 +AZURE,francecentral,Standard_E8as_v4,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:43.838064 +AZURE,francecentral,Standard_E8as_v4,reserved_1y,NA,0.348059,USD,Azure Retail Prices API,2025-12-18T04:45:45.541128 +AZURE,francecentral,Standard_E8as_v4,reserved_3y,NA,0.222603,USD,Azure Retail Prices API,2025-12-18T04:45:45.541131 +AZURE,francecentral,Standard_E8as_v4,spot,NA,0.109402,USD,Azure Retail Prices API,2025-12-18T04:45:43.839683 +AZURE,francecentral,Standard_E8as_v5,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:45:43.838143 +AZURE,francecentral,Standard_E8as_v5,reserved_1y,NA,0.313927,USD,Azure Retail Prices API,2025-12-18T04:45:45.541195 +AZURE,francecentral,Standard_E8as_v5,reserved_3y,NA,0.202169,USD,Azure Retail Prices API,2025-12-18T04:45:45.541198 +AZURE,francecentral,Standard_E8as_v5,spot,NA,0.098314,USD,Azure Retail Prices API,2025-12-18T04:45:43.838938 +AZURE,francecentral,Standard_E8d_v4,on_demand,NA,0.676,USD,Azure Retail Prices API,2025-12-18T04:45:43.840682 +AZURE,francecentral,Standard_E8d_v4,reserved_1y,NA,0.397489,USD,Azure Retail Prices API,2025-12-18T04:45:45.542445 +AZURE,francecentral,Standard_E8d_v4,reserved_3y,NA,0.254186,USD,Azure Retail Prices API,2025-12-18T04:45:45.542448 +AZURE,francecentral,Standard_E8d_v4,spot,NA,0.124925,USD,Azure Retail Prices API,2025-12-18T04:45:43.840342 +AZURE,francecentral,Standard_E8ds_v4,on_demand,NA,0.676,USD,Azure Retail Prices API,2025-12-18T04:45:43.840091 +AZURE,francecentral,Standard_E8ds_v4,reserved_1y,NA,0.397489,USD,Azure Retail Prices API,2025-12-18T04:45:45.542158 +AZURE,francecentral,Standard_E8ds_v4,reserved_3y,NA,0.254186,USD,Azure Retail Prices API,2025-12-18T04:45:45.542160 +AZURE,francecentral,Standard_E8ds_v4,spot,NA,0.124925,USD,Azure Retail Prices API,2025-12-18T04:45:43.840239 +AZURE,francecentral,Standard_E8ds_v5,on_demand,NA,0.676,USD,Azure Retail Prices API,2025-12-18T04:45:43.839231 +AZURE,francecentral,Standard_E8ds_v5,reserved_1y,NA,0.398858,USD,Azure Retail Prices API,2025-12-18T04:45:45.541725 +AZURE,francecentral,Standard_E8ds_v5,reserved_3y,NA,0.256887,USD,Azure Retail Prices API,2025-12-18T04:45:45.541728 +AZURE,francecentral,Standard_E8ds_v5,spot,NA,0.124925,USD,Azure Retail Prices API,2025-12-18T04:45:43.839027 +AZURE,francecentral,Standard_E8ds_v6,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:43.838597 +AZURE,francecentral,Standard_E8ds_v6,reserved_1y,NA,0.47637,USD,Azure Retail Prices API,2025-12-18T04:45:45.541460 +AZURE,francecentral,Standard_E8ds_v6,reserved_3y,NA,0.299658,USD,Azure Retail Prices API,2025-12-18T04:45:45.541463 +AZURE,francecentral,Standard_E8ds_v6,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:45:43.840638 +AZURE,francecentral,Standard_E8pds_v6,on_demand,NA,0.546,USD,Azure Retail Prices API,2025-12-18T04:45:43.839688 +AZURE,francecentral,Standard_E8pds_v6,reserved_1y,NA,0.322374,USD,Azure Retail Prices API,2025-12-18T04:45:45.541934 +AZURE,francecentral,Standard_E8pds_v6,reserved_3y,NA,0.207648,USD,Azure Retail Prices API,2025-12-18T04:45:45.541937 +AZURE,francecentral,Standard_E8pds_v6,spot,NA,0.100901,USD,Azure Retail Prices API,2025-12-18T04:45:43.840672 +AZURE,francecentral,Standard_E8ps_v6,on_demand,NA,0.431,USD,Azure Retail Prices API,2025-12-18T04:45:43.838185 +AZURE,francecentral,Standard_E8ps_v6,reserved_1y,NA,0.254452,USD,Azure Retail Prices API,2025-12-18T04:45:45.541219 +AZURE,francecentral,Standard_E8ps_v6,reserved_3y,NA,0.163851,USD,Azure Retail Prices API,2025-12-18T04:45:45.541222 +AZURE,francecentral,Standard_E8ps_v6,spot,NA,0.079649,USD,Azure Retail Prices API,2025-12-18T04:45:43.838527 +AZURE,francecentral,Standard_E8s_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:45:43.839740 +AZURE,francecentral,Standard_E8s_v3,reserved_1y,NA,0.366895,USD,Azure Retail Prices API,2025-12-18T04:45:45.541957 +AZURE,francecentral,Standard_E8s_v3,reserved_3y,NA,0.234627,USD,Azure Retail Prices API,2025-12-18T04:45:45.541959 +AZURE,francecentral,Standard_E8s_v3,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:45:43.840789 +AZURE,francecentral,Standard_E8s_v4,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:43.838635 +AZURE,francecentral,Standard_E8s_v4,reserved_1y,NA,0.348059,USD,Azure Retail Prices API,2025-12-18T04:45:45.541490 +AZURE,francecentral,Standard_E8s_v4,reserved_3y,NA,0.222603,USD,Azure Retail Prices API,2025-12-18T04:45:45.541493 +AZURE,francecentral,Standard_E8s_v4,spot,NA,0.109402,USD,Azure Retail Prices API,2025-12-18T04:45:43.839800 +AZURE,francecentral,Standard_E8s_v5,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:43.838353 +AZURE,francecentral,Standard_E8s_v5,reserved_1y,NA,0.349315,USD,Azure Retail Prices API,2025-12-18T04:45:45.541340 +AZURE,francecentral,Standard_E8s_v5,reserved_3y,NA,0.219026,USD,Azure Retail Prices API,2025-12-18T04:45:45.541344 +AZURE,francecentral,Standard_E8s_v5,spot,NA,0.109402,USD,Azure Retail Prices API,2025-12-18T04:45:43.839457 +AZURE,francecentral,Standard_E96a_v4,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:45:43.838553 +AZURE,francecentral,Standard_E96a_v4,reserved_1y,NA,4.177169,USD,Azure Retail Prices API,2025-12-18T04:45:45.541438 +AZURE,francecentral,Standard_E96a_v4,reserved_3y,NA,2.671119,USD,Azure Retail Prices API,2025-12-18T04:45:45.541441 +AZURE,francecentral,Standard_E96a_v4,spot,NA,1.312819,USD,Azure Retail Prices API,2025-12-18T04:45:43.838917 +AZURE,francecentral,Standard_E96ads_v5,on_demand,NA,11.76,USD,Azure Retail Prices API,2025-12-18T04:45:43.837872 +AZURE,francecentral,Standard_E96ads_v5,reserved_1y,NA,4.332991,USD,Azure Retail Prices API,2025-12-18T04:45:45.541680 +AZURE,francecentral,Standard_E96ads_v5,reserved_3y,NA,2.790715,USD,Azure Retail Prices API,2025-12-18T04:45:45.541683 +AZURE,francecentral,Standard_E96ads_v5,spot,NA,1.357171,USD,Azure Retail Prices API,2025-12-18T04:45:43.838459 +AZURE,francecentral,Standard_E96ads_v6,on_demand,NA,8.179,USD,Azure Retail Prices API,2025-12-18T04:45:43.840216 +AZURE,francecentral,Standard_E96ads_v6,reserved_1y,NA,4.825685,USD,Azure Retail Prices API,2025-12-18T04:45:45.542192 +AZURE,francecentral,Standard_E96ads_v6,reserved_3y,NA,3.108105,USD,Azure Retail Prices API,2025-12-18T04:45:45.542195 +AZURE,francecentral,Standard_E96ads_v6,spot,NA,1.511479,USD,Azure Retail Prices API,2025-12-18T04:45:43.837984 +AZURE,francecentral,Standard_E96as_v4,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:45:43.839875 +AZURE,francecentral,Standard_E96as_v4,reserved_1y,NA,4.177169,USD,Azure Retail Prices API,2025-12-18T04:45:45.542032 +AZURE,francecentral,Standard_E96as_v4,reserved_3y,NA,2.671119,USD,Azure Retail Prices API,2025-12-18T04:45:45.542035 +AZURE,francecentral,Standard_E96as_v4,spot,NA,1.312819,USD,Azure Retail Prices API,2025-12-18T04:45:43.839711 +AZURE,francecentral,Standard_E96as_v5,on_demand,NA,6.384,USD,Azure Retail Prices API,2025-12-18T04:45:43.838428 +AZURE,francecentral,Standard_E96as_v5,reserved_1y,NA,3.766553,USD,Azure Retail Prices API,2025-12-18T04:45:45.541381 +AZURE,francecentral,Standard_E96as_v5,reserved_3y,NA,2.425913,USD,Azure Retail Prices API,2025-12-18T04:45:45.541384 +AZURE,francecentral,Standard_E96as_v5,spot,NA,1.179763,USD,Azure Retail Prices API,2025-12-18T04:45:43.839840 +AZURE,francecentral,Standard_E96ds_v5,on_demand,NA,8.112,USD,Azure Retail Prices API,2025-12-18T04:45:43.839539 +AZURE,francecentral,Standard_E96ds_v5,reserved_1y,NA,4.786073,USD,Azure Retail Prices API,2025-12-18T04:45:45.541835 +AZURE,francecentral,Standard_E96ds_v5,reserved_3y,NA,3.082572,USD,Azure Retail Prices API,2025-12-18T04:45:45.541838 +AZURE,francecentral,Standard_E96ds_v5,spot,NA,1.499098,USD,Azure Retail Prices API,2025-12-18T04:45:43.840003 +AZURE,francecentral,Standard_E96ds_v6,on_demand,NA,9.22,USD,Azure Retail Prices API,2025-12-18T04:45:43.838153 +AZURE,francecentral,Standard_E96ds_v6,reserved_1y,NA,5.716324,USD,Azure Retail Prices API,2025-12-18T04:45:45.541207 +AZURE,francecentral,Standard_E96ds_v6,reserved_3y,NA,3.595738,USD,Azure Retail Prices API,2025-12-18T04:45:45.541210 +AZURE,francecentral,Standard_E96ds_v6,spot,NA,1.703856,USD,Azure Retail Prices API,2025-12-18T04:45:43.840388 +AZURE,francecentral,Standard_E96pds_v6,on_demand,NA,6.557,USD,Azure Retail Prices API,2025-12-18T04:45:43.840563 +AZURE,francecentral,Standard_E96pds_v6,reserved_1y,NA,3.868493,USD,Azure Retail Prices API,2025-12-18T04:45:45.542367 +AZURE,francecentral,Standard_E96pds_v6,reserved_3y,NA,2.491591,USD,Azure Retail Prices API,2025-12-18T04:45:45.542370 +AZURE,francecentral,Standard_E96pds_v6,spot,NA,1.211734,USD,Azure Retail Prices API,2025-12-18T04:45:43.840742 +AZURE,francecentral,Standard_E96ps_v6,on_demand,NA,5.174,USD,Azure Retail Prices API,2025-12-18T04:45:43.838532 +AZURE,francecentral,Standard_E96ps_v6,reserved_1y,NA,3.052854,USD,Azure Retail Prices API,2025-12-18T04:45:45.541433 +AZURE,francecentral,Standard_E96ps_v6,reserved_3y,NA,1.966286,USD,Azure Retail Prices API,2025-12-18T04:45:45.541435 +AZURE,francecentral,Standard_E96ps_v6,spot,NA,0.956155,USD,Azure Retail Prices API,2025-12-18T04:45:43.837979 +AZURE,francecentral,Standard_E96s_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:45:43.838602 +AZURE,francecentral,Standard_E96s_v5,reserved_1y,NA,4.191324,USD,Azure Retail Prices API,2025-12-18T04:45:45.541466 +AZURE,francecentral,Standard_E96s_v5,reserved_3y,NA,2.628463,USD,Azure Retail Prices API,2025-12-18T04:45:45.541469 +AZURE,francecentral,Standard_E96s_v5,spot,NA,1.312819,USD,Azure Retail Prices API,2025-12-18T04:45:43.838672 +AZURE,francecentral,Standard_EC16ads_v6,on_demand,NA,1.363,USD,Azure Retail Prices API,2025-12-18T04:45:43.838417 +AZURE,francecentral,Standard_EC16ads_v6,reserved_1y,NA,0.804338,USD,Azure Retail Prices API,2025-12-18T04:45:45.541375 +AZURE,francecentral,Standard_EC16ads_v6,reserved_3y,NA,0.517998,USD,Azure Retail Prices API,2025-12-18T04:45:45.541379 +AZURE,francecentral,Standard_EC16ads_v6,spot,NA,0.251882,USD,Azure Retail Prices API,2025-12-18T04:45:43.840628 +AZURE,francecentral,Standard_EC16as_v6,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:45:43.838022 +AZURE,francecentral,Standard_EC16as_v6,reserved_1y,NA,0.660845,USD,Azure Retail Prices API,2025-12-18T04:45:45.541069 +AZURE,francecentral,Standard_EC16as_v6,reserved_3y,NA,0.425609,USD,Azure Retail Prices API,2025-12-18T04:45:45.541075 +AZURE,francecentral,Standard_EC16as_v6,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:45:43.838453 +AZURE,francecentral,Standard_EC2ads_v6,on_demand,NA,0.17,USD,Azure Retail Prices API,2025-12-18T04:45:43.839499 +AZURE,francecentral,Standard_EC2ads_v6,reserved_1y,NA,0.100571,USD,Azure Retail Prices API,2025-12-18T04:45:45.541824 +AZURE,francecentral,Standard_EC2ads_v6,reserved_3y,NA,0.064764,USD,Azure Retail Prices API,2025-12-18T04:45:45.541827 +AZURE,francecentral,Standard_EC2ads_v6,spot,NA,0.031416,USD,Azure Retail Prices API,2025-12-18T04:45:43.838830 +AZURE,francecentral,Standard_EC2as_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:45:43.838207 +AZURE,francecentral,Standard_EC2as_v6,reserved_1y,NA,0.082648,USD,Azure Retail Prices API,2025-12-18T04:45:45.541243 +AZURE,francecentral,Standard_EC2as_v6,reserved_3y,NA,0.053196,USD,Azure Retail Prices API,2025-12-18T04:45:45.541245 +AZURE,francecentral,Standard_EC2as_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:45:43.840901 +AZURE,francecentral,Standard_EC32ads_v6,on_demand,NA,2.726,USD,Azure Retail Prices API,2025-12-18T04:45:43.838496 +AZURE,francecentral,Standard_EC32ads_v6,reserved_1y,NA,1.608562,USD,Azure Retail Prices API,2025-12-18T04:45:45.541416 +AZURE,francecentral,Standard_EC32ads_v6,reserved_3y,NA,1.036035,USD,Azure Retail Prices API,2025-12-18T04:45:45.541419 +AZURE,francecentral,Standard_EC32ads_v6,spot,NA,0.503765,USD,Azure Retail Prices API,2025-12-18T04:45:43.838412 +AZURE,francecentral,Standard_EC32as_v6,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:45:43.837878 +AZURE,francecentral,Standard_EC32as_v6,reserved_1y,NA,1.321575,USD,Azure Retail Prices API,2025-12-18T04:45:45.540941 +AZURE,francecentral,Standard_EC32as_v6,reserved_3y,NA,0.851218,USD,Azure Retail Prices API,2025-12-18T04:45:45.540953 +AZURE,francecentral,Standard_EC32as_v6,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:45:43.840257 +AZURE,francecentral,Standard_EC48ads_v6,on_demand,NA,4.09,USD,Azure Retail Prices API,2025-12-18T04:45:43.838645 +AZURE,francecentral,Standard_EC48ads_v6,reserved_1y,NA,2.4129,USD,Azure Retail Prices API,2025-12-18T04:45:45.541496 +AZURE,francecentral,Standard_EC48ads_v6,reserved_3y,NA,1.554033,USD,Azure Retail Prices API,2025-12-18T04:45:45.541499 +AZURE,francecentral,Standard_EC48ads_v6,spot,NA,0.755832,USD,Azure Retail Prices API,2025-12-18T04:45:43.839505 +AZURE,francecentral,Standard_EC48as_v6,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:45:43.839054 +AZURE,francecentral,Standard_EC48as_v6,reserved_1y,NA,1.98242,USD,Azure Retail Prices API,2025-12-18T04:45:45.541703 +AZURE,francecentral,Standard_EC48as_v6,reserved_3y,NA,1.276788,USD,Azure Retail Prices API,2025-12-18T04:45:45.541706 +AZURE,francecentral,Standard_EC48as_v6,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:45:43.840808 +AZURE,francecentral,Standard_EC4ads_v6,on_demand,NA,0.341,USD,Azure Retail Prices API,2025-12-18T04:45:43.838228 +AZURE,francecentral,Standard_EC4ads_v6,reserved_1y,NA,0.201027,USD,Azure Retail Prices API,2025-12-18T04:45:45.541261 +AZURE,francecentral,Standard_EC4ads_v6,reserved_3y,NA,0.12949,USD,Azure Retail Prices API,2025-12-18T04:45:45.541264 +AZURE,francecentral,Standard_EC4ads_v6,spot,NA,0.063017,USD,Azure Retail Prices API,2025-12-18T04:45:43.839806 +AZURE,francecentral,Standard_EC4as_v6,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:45:43.839927 +AZURE,francecentral,Standard_EC4as_v6,reserved_1y,NA,0.165183,USD,Azure Retail Prices API,2025-12-18T04:45:45.542055 +AZURE,francecentral,Standard_EC4as_v6,reserved_3y,NA,0.106393,USD,Azure Retail Prices API,2025-12-18T04:45:45.542058 +AZURE,francecentral,Standard_EC4as_v6,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:45:43.838753 +AZURE,francecentral,Standard_EC64ads_v6,on_demand,NA,5.453,USD,Azure Retail Prices API,2025-12-18T04:45:43.839401 +AZURE,francecentral,Standard_EC64ads_v6,reserved_1y,NA,3.217123,USD,Azure Retail Prices API,2025-12-18T04:45:45.541785 +AZURE,francecentral,Standard_EC64ads_v6,reserved_3y,NA,2.07207,USD,Azure Retail Prices API,2025-12-18T04:45:45.541788 +AZURE,francecentral,Standard_EC64ads_v6,spot,NA,1.007714,USD,Azure Retail Prices API,2025-12-18T04:45:43.840185 +AZURE,francecentral,Standard_EC64as_v6,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:45:43.838480 +AZURE,francecentral,Standard_EC64as_v6,reserved_1y,NA,2.643151,USD,Azure Retail Prices API,2025-12-18T04:45:45.541398 +AZURE,francecentral,Standard_EC64as_v6,reserved_3y,NA,1.702397,USD,Azure Retail Prices API,2025-12-18T04:45:45.541401 +AZURE,francecentral,Standard_EC64as_v6,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:45:43.838885 +AZURE,francecentral,Standard_EC8ads_v6,on_demand,NA,0.682,USD,Azure Retail Prices API,2025-12-18T04:45:43.839202 +AZURE,francecentral,Standard_EC8ads_v6,reserved_1y,NA,0.402169,USD,Azure Retail Prices API,2025-12-18T04:45:45.541714 +AZURE,francecentral,Standard_EC8ads_v6,reserved_3y,NA,0.259018,USD,Azure Retail Prices API,2025-12-18T04:45:45.541717 +AZURE,francecentral,Standard_EC8ads_v6,spot,NA,0.126034,USD,Azure Retail Prices API,2025-12-18T04:45:43.840607 +AZURE,francecentral,Standard_EC8as_v6,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:45:43.839326 +AZURE,francecentral,Standard_EC8as_v6,reserved_1y,NA,0.330365,USD,Azure Retail Prices API,2025-12-18T04:45:45.541752 +AZURE,francecentral,Standard_EC8as_v6,reserved_3y,NA,0.212785,USD,Azure Retail Prices API,2025-12-18T04:45:45.541755 +AZURE,francecentral,Standard_EC8as_v6,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:45:43.840367 +AZURE,francecentral,Standard_EC96ads_v6,on_demand,NA,8.179,USD,Azure Retail Prices API,2025-12-18T04:45:43.838982 +AZURE,francecentral,Standard_EC96ads_v6,reserved_1y,NA,4.825685,USD,Azure Retail Prices API,2025-12-18T04:45:45.541658 +AZURE,francecentral,Standard_EC96ads_v6,reserved_3y,NA,3.108105,USD,Azure Retail Prices API,2025-12-18T04:45:45.541660 +AZURE,francecentral,Standard_EC96ads_v6,spot,NA,1.511479,USD,Azure Retail Prices API,2025-12-18T04:45:43.838819 +AZURE,francecentral,Standard_EC96as_v6,on_demand,NA,6.72,USD,Azure Retail Prices API,2025-12-18T04:45:43.838694 +AZURE,francecentral,Standard_EC96as_v6,reserved_1y,NA,3.96484,USD,Azure Retail Prices API,2025-12-18T04:45:45.541518 +AZURE,francecentral,Standard_EC96as_v6,reserved_3y,NA,2.553615,USD,Azure Retail Prices API,2025-12-18T04:45:45.541521 +AZURE,francecentral,Standard_EC96as_v6,spot,NA,1.241856,USD,Azure Retail Prices API,2025-12-18T04:45:43.840039 +AZURE,francecentral,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379457 +AZURE,francecentral,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379466 +AZURE,francecentral,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379470 +AZURE,francecentral,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379461 +AZURE,francecentral,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381765 +AZURE,francecentral,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381773 +AZURE,francecentral,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381777 +AZURE,francecentral,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381769 +AZURE,francecentral,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384489 +AZURE,francecentral,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384498 +AZURE,francecentral,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384502 +AZURE,francecentral,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384493 +AZURE,francecentral,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385276 +AZURE,francecentral,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385284 +AZURE,francecentral,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385289 +AZURE,francecentral,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385280 +AZURE,francecentral,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377881 +AZURE,francecentral,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377891 +AZURE,francecentral,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377899 +AZURE,francecentral,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377886 +AZURE,francecentral,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386063 +AZURE,francecentral,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386071 +AZURE,francecentral,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386075 +AZURE,francecentral,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386067 +AZURE,francecentral,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380221 +AZURE,francecentral,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380230 +AZURE,francecentral,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380234 +AZURE,francecentral,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380226 +AZURE,francecentral,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382819 +AZURE,francecentral,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382828 +AZURE,francecentral,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382832 +AZURE,francecentral,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382823 +AZURE,francecentral,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386854 +AZURE,francecentral,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386862 +AZURE,francecentral,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386866 +AZURE,francecentral,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386858 +AZURE,francecentral,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387669 +AZURE,francecentral,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387678 +AZURE,francecentral,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387682 +AZURE,francecentral,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387673 +AZURE,francecentral,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378640 +AZURE,francecentral,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378648 +AZURE,francecentral,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378652 +AZURE,francecentral,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378644 +AZURE,francecentral,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380919 +AZURE,francecentral,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380927 +AZURE,francecentral,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380931 +AZURE,francecentral,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380923 +AZURE,francecentral,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383655 +AZURE,francecentral,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383663 +AZURE,francecentral,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383667 +AZURE,francecentral,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383659 +AZURE,francecentral,Standard_L16as_v3,on_demand,NA,1.448,USD,Azure Retail Prices API,2025-12-18T04:45:43.838486 +AZURE,francecentral,Standard_L16as_v3,reserved_1y,NA,0.926712,USD,Azure Retail Prices API,2025-12-18T04:45:45.541404 +AZURE,francecentral,Standard_L16as_v3,reserved_3y,NA,0.608143,USD,Azure Retail Prices API,2025-12-18T04:45:45.541407 +AZURE,francecentral,Standard_L16as_v3,spot,NA,0.26759,USD,Azure Retail Prices API,2025-12-18T04:45:43.839424 +AZURE,francecentral,Standard_L16s_v3,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:45:43.840210 +AZURE,francecentral,Standard_L16s_v3,reserved_1y,NA,1.034247,USD,Azure Retail Prices API,2025-12-18T04:45:45.542186 +AZURE,francecentral,Standard_L16s_v3,reserved_3y,NA,0.678729,USD,Azure Retail Prices API,2025-12-18T04:45:45.542189 +AZURE,francecentral,Standard_L16s_v3,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:45:43.840417 +AZURE,francecentral,Standard_L32as_v3,on_demand,NA,2.896,USD,Azure Retail Prices API,2025-12-18T04:45:43.838112 +AZURE,francecentral,Standard_L32as_v3,reserved_1y,NA,1.853425,USD,Azure Retail Prices API,2025-12-18T04:45:45.541178 +AZURE,francecentral,Standard_L32as_v3,reserved_3y,NA,1.216324,USD,Azure Retail Prices API,2025-12-18T04:45:45.541180 +AZURE,francecentral,Standard_L32as_v3,spot,NA,0.535181,USD,Azure Retail Prices API,2025-12-18T04:45:43.840267 +AZURE,francecentral,Standard_L32s_v3,on_demand,NA,3.232,USD,Azure Retail Prices API,2025-12-18T04:45:43.840819 +AZURE,francecentral,Standard_L32s_v3,reserved_1y,NA,2.068493,USD,Azure Retail Prices API,2025-12-18T04:45:45.542500 +AZURE,francecentral,Standard_L32s_v3,reserved_3y,NA,1.357458,USD,Azure Retail Prices API,2025-12-18T04:45:45.542502 +AZURE,francecentral,Standard_L32s_v3,spot,NA,0.597274,USD,Azure Retail Prices API,2025-12-18T04:45:43.840861 +AZURE,francecentral,Standard_L48as_v3,on_demand,NA,4.344,USD,Azure Retail Prices API,2025-12-18T04:45:43.838629 +AZURE,francecentral,Standard_L48as_v3,reserved_1y,NA,2.780137,USD,Azure Retail Prices API,2025-12-18T04:45:45.541484 +AZURE,francecentral,Standard_L48as_v3,reserved_3y,NA,1.824467,USD,Azure Retail Prices API,2025-12-18T04:45:45.541487 +AZURE,francecentral,Standard_L48as_v3,spot,NA,0.802771,USD,Azure Retail Prices API,2025-12-18T04:45:43.840880 +AZURE,francecentral,Standard_L48s_v3,on_demand,NA,4.848,USD,Azure Retail Prices API,2025-12-18T04:45:43.839751 +AZURE,francecentral,Standard_L48s_v3,reserved_1y,NA,3.10274,USD,Azure Retail Prices API,2025-12-18T04:45:45.541968 +AZURE,francecentral,Standard_L48s_v3,reserved_3y,NA,2.036149,USD,Azure Retail Prices API,2025-12-18T04:45:45.541971 +AZURE,francecentral,Standard_L48s_v3,spot,NA,0.89591,USD,Azure Retail Prices API,2025-12-18T04:45:43.839998 +AZURE,francecentral,Standard_L64as_v3,on_demand,NA,5.792,USD,Azure Retail Prices API,2025-12-18T04:45:43.840824 +AZURE,francecentral,Standard_L64as_v3,reserved_1y,NA,3.706849,USD,Azure Retail Prices API,2025-12-18T04:45:45.542505 +AZURE,francecentral,Standard_L64as_v3,reserved_3y,NA,2.432648,USD,Azure Retail Prices API,2025-12-18T04:45:45.542508 +AZURE,francecentral,Standard_L64as_v3,spot,NA,1.070362,USD,Azure Retail Prices API,2025-12-18T04:45:43.839730 +AZURE,francecentral,Standard_L64s_v3,on_demand,NA,6.464,USD,Azure Retail Prices API,2025-12-18T04:45:43.838286 +AZURE,francecentral,Standard_L64s_v3,reserved_1y,NA,4.136986,USD,Azure Retail Prices API,2025-12-18T04:45:45.541298 +AZURE,francecentral,Standard_L64s_v3,reserved_3y,NA,2.714878,USD,Azure Retail Prices API,2025-12-18T04:45:45.541301 +AZURE,francecentral,Standard_L64s_v3,spot,NA,1.194547,USD,Azure Retail Prices API,2025-12-18T04:45:43.840377 +AZURE,francecentral,Standard_L80as_v3,on_demand,NA,7.24,USD,Azure Retail Prices API,2025-12-18T04:45:43.838027 +AZURE,francecentral,Standard_L80as_v3,reserved_1y,NA,4.633562,USD,Azure Retail Prices API,2025-12-18T04:45:45.541080 +AZURE,francecentral,Standard_L80as_v3,reserved_3y,NA,3.040791,USD,Azure Retail Prices API,2025-12-18T04:45:45.541083 +AZURE,francecentral,Standard_L80as_v3,spot,NA,1.337952,USD,Azure Retail Prices API,2025-12-18T04:45:43.838364 +AZURE,francecentral,Standard_L80s_v3,on_demand,NA,8.08,USD,Azure Retail Prices API,2025-12-18T04:45:43.840314 +AZURE,francecentral,Standard_L80s_v3,reserved_1y,NA,5.171233,USD,Azure Retail Prices API,2025-12-18T04:45:45.542241 +AZURE,francecentral,Standard_L80s_v3,reserved_3y,NA,3.393607,USD,Azure Retail Prices API,2025-12-18T04:45:45.542243 +AZURE,francecentral,Standard_L80s_v3,spot,NA,1.493184,USD,Azure Retail Prices API,2025-12-18T04:45:43.840718 +AZURE,francecentral,Standard_L8as_v3,on_demand,NA,0.724,USD,Azure Retail Prices API,2025-12-18T04:45:43.838223 +AZURE,francecentral,Standard_L8as_v3,reserved_1y,NA,0.463356,USD,Azure Retail Prices API,2025-12-18T04:45:45.541255 +AZURE,francecentral,Standard_L8as_v3,reserved_3y,NA,0.304072,USD,Azure Retail Prices API,2025-12-18T04:45:45.541258 +AZURE,francecentral,Standard_L8as_v3,spot,NA,0.133795,USD,Azure Retail Prices API,2025-12-18T04:45:43.839265 +AZURE,francecentral,Standard_L8s_v3,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:45:43.840062 +AZURE,francecentral,Standard_L8s_v3,reserved_1y,NA,0.517123,USD,Azure Retail Prices API,2025-12-18T04:45:45.542133 +AZURE,francecentral,Standard_L8s_v3,reserved_3y,NA,0.339346,USD,Azure Retail Prices API,2025-12-18T04:45:45.542136 +AZURE,francecentral,Standard_L8s_v3,spot,NA,0.149318,USD,Azure Retail Prices API,2025-12-18T04:45:43.838548 +AZURE,francecentral,Standard_NC12s_v3,on_demand,NA,7.16,USD,Azure Retail Prices API,2025-12-18T04:45:43.838396 +AZURE,francecentral,Standard_NC12s_v3,spot,NA,1.323168,USD,Azure Retail Prices API,2025-12-18T04:45:43.838296 +AZURE,francecentral,Standard_NC16as_T4_v3,on_demand,NA,1.407,USD,Azure Retail Prices API,2025-12-18T04:45:43.840885 +AZURE,francecentral,Standard_NC16as_T4_v3,reserved_1y,NA,0.830251,USD,Azure Retail Prices API,2025-12-18T04:45:45.542533 +AZURE,francecentral,Standard_NC16as_T4_v3,reserved_3y,NA,0.590982,USD,Azure Retail Prices API,2025-12-18T04:45:45.542535 +AZURE,francecentral,Standard_NC16as_T4_v3,spot,NA,0.40803,USD,Azure Retail Prices API,2025-12-18T04:45:43.840016 +AZURE,francecentral,Standard_NC24ads_A100_v4,on_demand,NA,4.591,USD,Azure Retail Prices API,2025-12-18T04:45:43.838148 +AZURE,francecentral,Standard_NC24ads_A100_v4,reserved_1y,NA,3.001256,USD,Azure Retail Prices API,2025-12-18T04:45:45.541201 +AZURE,francecentral,Standard_NC24ads_A100_v4,reserved_3y,NA,1.703805,USD,Azure Retail Prices API,2025-12-18T04:45:45.541204 +AZURE,francecentral,Standard_NC24ads_A100_v4,spot,NA,0.848417,USD,Azure Retail Prices API,2025-12-18T04:45:43.838375 +AZURE,francecentral,Standard_NC24s_v3,on_demand,NA,14.321,USD,Azure Retail Prices API,2025-12-18T04:45:43.838683 +AZURE,francecentral,Standard_NC24s_v3,spot,NA,2.646521,USD,Azure Retail Prices API,2025-12-18T04:45:43.840737 +AZURE,francecentral,Standard_NC48ads_A100_v4,on_demand,NA,9.183,USD,Azure Retail Prices API,2025-12-18T04:45:43.840703 +AZURE,francecentral,Standard_NC48ads_A100_v4,reserved_1y,NA,6.002626,USD,Azure Retail Prices API,2025-12-18T04:45:45.542456 +AZURE,francecentral,Standard_NC48ads_A100_v4,reserved_3y,NA,3.40761,USD,Azure Retail Prices API,2025-12-18T04:45:45.542458 +AZURE,francecentral,Standard_NC48ads_A100_v4,spot,NA,1.697018,USD,Azure Retail Prices API,2025-12-18T04:45:43.838993 +AZURE,francecentral,Standard_NC4as_T4_v3,on_demand,NA,0.615,USD,Azure Retail Prices API,2025-12-18T04:45:43.838385 +AZURE,francecentral,Standard_NC4as_T4_v3,reserved_1y,NA,0.3629,USD,Azure Retail Prices API,2025-12-18T04:45:45.541364 +AZURE,francecentral,Standard_NC4as_T4_v3,reserved_3y,NA,0.258295,USD,Azure Retail Prices API,2025-12-18T04:45:45.541367 +AZURE,francecentral,Standard_NC4as_T4_v3,spot,NA,0.17835,USD,Azure Retail Prices API,2025-12-18T04:45:43.838976 +AZURE,francecentral,Standard_NC64as_T4_v3,on_demand,NA,5.077,USD,Azure Retail Prices API,2025-12-18T04:45:43.840622 +AZURE,francecentral,Standard_NC64as_T4_v3,reserved_1y,NA,2.995662,USD,Azure Retail Prices API,2025-12-18T04:45:45.542406 +AZURE,francecentral,Standard_NC64as_T4_v3,reserved_3y,NA,2.132534,USD,Azure Retail Prices API,2025-12-18T04:45:45.542409 +AZURE,francecentral,Standard_NC64as_T4_v3,spot,NA,1.47233,USD,Azure Retail Prices API,2025-12-18T04:45:43.839697 +AZURE,francecentral,Standard_NC6s_v3,on_demand,NA,3.58,USD,Azure Retail Prices API,2025-12-18T04:45:43.838133 +AZURE,francecentral,Standard_NC6s_v3,spot,NA,0.661584,USD,Azure Retail Prices API,2025-12-18T04:45:43.840149 +AZURE,francecentral,Standard_NC8as_T4_v3,on_demand,NA,0.878,USD,Azure Retail Prices API,2025-12-18T04:45:43.840890 +AZURE,francecentral,Standard_NC8as_T4_v3,reserved_1y,NA,0.518265,USD,Azure Retail Prices API,2025-12-18T04:45:45.542538 +AZURE,francecentral,Standard_NC8as_T4_v3,reserved_3y,NA,0.36895,USD,Azure Retail Prices API,2025-12-18T04:45:45.542541 +AZURE,francecentral,Standard_NC8as_T4_v3,spot,NA,0.25462,USD,Azure Retail Prices API,2025-12-18T04:45:43.838511 +AZURE,francecentral,Standard_NC96ads_A100_v4,on_demand,NA,18.365,USD,Azure Retail Prices API,2025-12-18T04:45:43.839579 +AZURE,francecentral,Standard_NC96ads_A100_v4,reserved_1y,NA,12.005251,USD,Azure Retail Prices API,2025-12-18T04:45:45.541864 +AZURE,francecentral,Standard_NC96ads_A100_v4,reserved_3y,NA,6.815259,USD,Azure Retail Prices API,2025-12-18T04:45:45.541867 +AZURE,francecentral,Standard_NC96ads_A100_v4,spot,NA,3.393852,USD,Azure Retail Prices API,2025-12-18T04:45:43.840871 +AZURE,francecentral,Standard_NV36adms_A10_v5,on_demand,NA,5.65,USD,Azure Retail Prices API,2025-12-18T04:45:43.840522 +AZURE,francecentral,Standard_NV36adms_A10_v5,reserved_1y,NA,3.615982,USD,Azure Retail Prices API,2025-12-18T04:45:45.542340 +AZURE,francecentral,Standard_NV36adms_A10_v5,reserved_3y,NA,2.485997,USD,Azure Retail Prices API,2025-12-18T04:45:45.542343 +AZURE,francecentral,Standard_NV36adms_A10_v5,spot,NA,1.04412,USD,Azure Retail Prices API,2025-12-18T04:45:43.839225 +AZURE,francecentral,Standard_NV36ads_A10_v5,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:45:43.837991 +AZURE,francecentral,Standard_NV36ads_A10_v5,reserved_1y,NA,2.560046,USD,Azure Retail Prices API,2025-12-18T04:45:45.541042 +AZURE,francecentral,Standard_NV36ads_A10_v5,reserved_3y,NA,1.760008,USD,Azure Retail Prices API,2025-12-18T04:45:45.541047 +AZURE,francecentral,Standard_NV36ads_A10_v5,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:45:43.838797 +AZURE,francecentral,Standard_NV72ads_A10_v5,on_demand,NA,8.15,USD,Azure Retail Prices API,2025-12-18T04:45:43.840033 +AZURE,francecentral,Standard_NV72ads_A10_v5,reserved_1y,NA,5.215982,USD,Azure Retail Prices API,2025-12-18T04:45:45.542122 +AZURE,francecentral,Standard_NV72ads_A10_v5,reserved_3y,NA,3.585997,USD,Azure Retail Prices API,2025-12-18T04:45:45.542124 +AZURE,francecentral,Standard_NV72ads_A10_v5,spot,NA,1.50612,USD,Azure Retail Prices API,2025-12-18T04:45:43.838803 +AZURE,germanywestcentral,Standard_D128ds_v6,on_demand,NA,9.551,USD,Azure Retail Prices API,2025-12-18T04:45:48.466681 +AZURE,germanywestcentral,Standard_D128ds_v6,reserved_1y,NA,5.921804,USD,Azure Retail Prices API,2025-12-18T04:45:50.157330 +AZURE,germanywestcentral,Standard_D128ds_v6,reserved_3y,NA,3.725038,USD,Azure Retail Prices API,2025-12-18T04:45:50.157332 +AZURE,germanywestcentral,Standard_D128ds_v6,spot,NA,1.765025,USD,Azure Retail Prices API,2025-12-18T04:45:48.465792 +AZURE,germanywestcentral,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488360 +AZURE,germanywestcentral,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488368 +AZURE,germanywestcentral,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488372 +AZURE,germanywestcentral,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488364 +AZURE,germanywestcentral,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489128 +AZURE,germanywestcentral,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489137 +AZURE,germanywestcentral,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489141 +AZURE,germanywestcentral,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489133 +AZURE,germanywestcentral,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490239 +AZURE,germanywestcentral,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490247 +AZURE,germanywestcentral,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490251 +AZURE,germanywestcentral,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490243 +AZURE,germanywestcentral,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490929 +AZURE,germanywestcentral,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490943 +AZURE,germanywestcentral,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490952 +AZURE,germanywestcentral,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490936 +AZURE,germanywestcentral,Standard_D16_v3,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:48.465900 +AZURE,germanywestcentral,Standard_D16_v3,reserved_1y,NA,0.530479,USD,Azure Retail Prices API,2025-12-18T04:45:50.156552 +AZURE,germanywestcentral,Standard_D16_v3,reserved_3y,NA,0.344977,USD,Azure Retail Prices API,2025-12-18T04:45:50.156554 +AZURE,germanywestcentral,Standard_D16_v3,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:45:48.465661 +AZURE,germanywestcentral,Standard_D16a_v4,on_demand,NA,0.832,USD,Azure Retail Prices API,2025-12-18T04:45:48.465706 +AZURE,germanywestcentral,Standard_D16a_v4,reserved_1y,NA,0.490868,USD,Azure Retail Prices API,2025-12-18T04:45:50.156353 +AZURE,germanywestcentral,Standard_D16a_v4,reserved_3y,NA,0.316172,USD,Azure Retail Prices API,2025-12-18T04:45:50.156356 +AZURE,germanywestcentral,Standard_D16a_v4,spot,NA,0.153754,USD,Azure Retail Prices API,2025-12-18T04:45:48.466563 +AZURE,germanywestcentral,Standard_D16ads_v5,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.465693 +AZURE,germanywestcentral,Standard_D16ads_v5,reserved_1y,NA,0.589954,USD,Azure Retail Prices API,2025-12-18T04:45:50.156336 +AZURE,germanywestcentral,Standard_D16ads_v5,reserved_3y,NA,0.379985,USD,Azure Retail Prices API,2025-12-18T04:45:50.156338 +AZURE,germanywestcentral,Standard_D16ads_v5,spot,NA,0.1848,USD,Azure Retail Prices API,2025-12-18T04:45:48.467246 +AZURE,germanywestcentral,Standard_D16ads_v6,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:45:48.467188 +AZURE,germanywestcentral,Standard_D16ads_v6,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:45:50.157759 +AZURE,germanywestcentral,Standard_D16ads_v6,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:45:50.157762 +AZURE,germanywestcentral,Standard_D16ads_v6,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:45:48.465634 +AZURE,germanywestcentral,Standard_D16as_v4,on_demand,NA,0.832,USD,Azure Retail Prices API,2025-12-18T04:45:48.465587 +AZURE,germanywestcentral,Standard_D16as_v4,reserved_1y,NA,0.490868,USD,Azure Retail Prices API,2025-12-18T04:45:50.156239 +AZURE,germanywestcentral,Standard_D16as_v4,reserved_3y,NA,0.316172,USD,Azure Retail Prices API,2025-12-18T04:45:50.156242 +AZURE,germanywestcentral,Standard_D16as_v4,spot,NA,0.153754,USD,Azure Retail Prices API,2025-12-18T04:45:48.467163 +AZURE,germanywestcentral,Standard_D16as_v5,on_demand,NA,1.568,USD,Azure Retail Prices API,2025-12-18T04:45:48.465480 +AZURE,germanywestcentral,Standard_D16as_v5,reserved_1y,NA,0.490868,USD,Azure Retail Prices API,2025-12-18T04:45:50.157049 +AZURE,germanywestcentral,Standard_D16as_v5,reserved_3y,NA,0.316172,USD,Azure Retail Prices API,2025-12-18T04:45:50.157052 +AZURE,germanywestcentral,Standard_D16as_v5,spot,NA,0.153754,USD,Azure Retail Prices API,2025-12-18T04:45:48.465893 +AZURE,germanywestcentral,Standard_D16d_v4,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:45:48.466334 +AZURE,germanywestcentral,Standard_D16d_v4,reserved_1y,NA,0.639726,USD,Azure Retail Prices API,2025-12-18T04:45:50.156974 +AZURE,germanywestcentral,Standard_D16d_v4,reserved_3y,NA,0.409094,USD,Azure Retail Prices API,2025-12-18T04:45:50.156977 +AZURE,germanywestcentral,Standard_D16d_v4,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:45:48.466476 +AZURE,germanywestcentral,Standard_D16ds_v4,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:45:48.466441 +AZURE,germanywestcentral,Standard_D16ds_v4,reserved_1y,NA,0.639726,USD,Azure Retail Prices API,2025-12-18T04:45:50.157095 +AZURE,germanywestcentral,Standard_D16ds_v4,reserved_3y,NA,0.409094,USD,Azure Retail Prices API,2025-12-18T04:45:50.157098 +AZURE,germanywestcentral,Standard_D16ds_v4,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:45:48.466058 +AZURE,germanywestcentral,Standard_D16ds_v5,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:45:48.466331 +AZURE,germanywestcentral,Standard_D16ds_v5,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:45:50.156967 +AZURE,germanywestcentral,Standard_D16ds_v5,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:45:50.156970 +AZURE,germanywestcentral,Standard_D16ds_v5,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:45:48.465748 +AZURE,germanywestcentral,Standard_D16ds_v6,on_demand,NA,1.194,USD,Azure Retail Prices API,2025-12-18T04:45:48.466436 +AZURE,germanywestcentral,Standard_D16ds_v6,reserved_1y,NA,0.740183,USD,Azure Retail Prices API,2025-12-18T04:45:50.157083 +AZURE,germanywestcentral,Standard_D16ds_v6,reserved_3y,NA,0.465639,USD,Azure Retail Prices API,2025-12-18T04:45:50.157086 +AZURE,germanywestcentral,Standard_D16ds_v6,spot,NA,0.220651,USD,Azure Retail Prices API,2025-12-18T04:45:48.467156 +AZURE,germanywestcentral,Standard_D16pds_v6,on_demand,NA,0.878,USD,Azure Retail Prices API,2025-12-18T04:45:48.466768 +AZURE,germanywestcentral,Standard_D16pds_v6,reserved_1y,NA,0.518265,USD,Azure Retail Prices API,2025-12-18T04:45:50.157420 +AZURE,germanywestcentral,Standard_D16pds_v6,reserved_3y,NA,0.33379,USD,Azure Retail Prices API,2025-12-18T04:45:50.157423 +AZURE,germanywestcentral,Standard_D16pds_v6,spot,NA,0.162254,USD,Azure Retail Prices API,2025-12-18T04:45:48.466319 +AZURE,germanywestcentral,Standard_D16ps_v6,on_demand,NA,0.67,USD,Azure Retail Prices API,2025-12-18T04:45:48.467262 +AZURE,germanywestcentral,Standard_D16ps_v6,reserved_1y,NA,0.395548,USD,Azure Retail Prices API,2025-12-18T04:45:50.157811 +AZURE,germanywestcentral,Standard_D16ps_v6,reserved_3y,NA,0.254756,USD,Azure Retail Prices API,2025-12-18T04:45:50.157814 +AZURE,germanywestcentral,Standard_D16ps_v6,spot,NA,0.123816,USD,Azure Retail Prices API,2025-12-18T04:45:48.466858 +AZURE,germanywestcentral,Standard_D16s_v3,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:48.466728 +AZURE,germanywestcentral,Standard_D16s_v3,reserved_1y,NA,0.530479,USD,Azure Retail Prices API,2025-12-18T04:45:50.157392 +AZURE,germanywestcentral,Standard_D16s_v3,reserved_3y,NA,0.344977,USD,Azure Retail Prices API,2025-12-18T04:45:50.157395 +AZURE,germanywestcentral,Standard_D16s_v3,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:45:48.465502 +AZURE,germanywestcentral,Standard_D16s_v4,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:48.465464 +AZURE,germanywestcentral,Standard_D16s_v4,reserved_1y,NA,0.540982,USD,Azure Retail Prices API,2025-12-18T04:45:50.156155 +AZURE,germanywestcentral,Standard_D16s_v4,reserved_3y,NA,0.345928,USD,Azure Retail Prices API,2025-12-18T04:45:50.156158 +AZURE,germanywestcentral,Standard_D16s_v4,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:45:48.465884 +AZURE,germanywestcentral,Standard_D16s_v5,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:48.466328 +AZURE,germanywestcentral,Standard_D16s_v5,reserved_1y,NA,0.542808,USD,Azure Retail Prices API,2025-12-18T04:45:50.156962 +AZURE,germanywestcentral,Standard_D16s_v5,reserved_3y,NA,0.340411,USD,Azure Retail Prices API,2025-12-18T04:45:50.156965 +AZURE,germanywestcentral,Standard_D16s_v5,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:45:48.466693 +AZURE,germanywestcentral,Standard_D2ads_v6,on_demand,NA,0.138,USD,Azure Retail Prices API,2025-12-18T04:45:48.466485 +AZURE,germanywestcentral,Standard_D2ads_v6,reserved_1y,NA,0.081393,USD,Azure Retail Prices API,2025-12-18T04:45:50.157163 +AZURE,germanywestcentral,Standard_D2ads_v6,reserved_3y,NA,0.052435,USD,Azure Retail Prices API,2025-12-18T04:45:50.157167 +AZURE,germanywestcentral,Standard_D2ads_v6,spot,NA,0.025502,USD,Azure Retail Prices API,2025-12-18T04:45:48.465621 +AZURE,germanywestcentral,Standard_D2ds_v6,on_demand,NA,0.149,USD,Azure Retail Prices API,2025-12-18T04:45:48.466578 +AZURE,germanywestcentral,Standard_D2ds_v6,reserved_1y,NA,0.09258,USD,Azure Retail Prices API,2025-12-18T04:45:50.157267 +AZURE,germanywestcentral,Standard_D2ds_v6,reserved_3y,NA,0.058219,USD,Azure Retail Prices API,2025-12-18T04:45:50.157270 +AZURE,germanywestcentral,Standard_D2ds_v6,spot,NA,0.027535,USD,Azure Retail Prices API,2025-12-18T04:45:48.466920 +AZURE,germanywestcentral,Standard_D32_v3,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:48.466509 +AZURE,germanywestcentral,Standard_D32_v3,reserved_1y,NA,1.060959,USD,Azure Retail Prices API,2025-12-18T04:45:50.157208 +AZURE,germanywestcentral,Standard_D32_v3,reserved_3y,NA,0.689992,USD,Azure Retail Prices API,2025-12-18T04:45:50.157211 +AZURE,germanywestcentral,Standard_D32_v3,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:45:48.466427 +AZURE,germanywestcentral,Standard_D32a_v4,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:45:48.466798 +AZURE,germanywestcentral,Standard_D32a_v4,reserved_1y,NA,0.981735,USD,Azure Retail Prices API,2025-12-18T04:45:50.157431 +AZURE,germanywestcentral,Standard_D32a_v4,reserved_3y,NA,0.632306,USD,Azure Retail Prices API,2025-12-18T04:45:50.157433 +AZURE,germanywestcentral,Standard_D32a_v4,spot,NA,0.307507,USD,Azure Retail Prices API,2025-12-18T04:45:48.466006 +AZURE,germanywestcentral,Standard_D32ads_v5,on_demand,NA,3.472,USD,Azure Retail Prices API,2025-12-18T04:45:48.465548 +AZURE,germanywestcentral,Standard_D32ads_v5,reserved_1y,NA,1.180023,USD,Azure Retail Prices API,2025-12-18T04:45:50.157480 +AZURE,germanywestcentral,Standard_D32ads_v5,reserved_3y,NA,0.760008,USD,Azure Retail Prices API,2025-12-18T04:45:50.157486 +AZURE,germanywestcentral,Standard_D32ads_v5,spot,NA,0.3696,USD,Azure Retail Prices API,2025-12-18T04:45:48.466433 +AZURE,germanywestcentral,Standard_D32ads_v6,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:45:48.466230 +AZURE,germanywestcentral,Standard_D32ads_v6,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:45:50.156871 +AZURE,germanywestcentral,Standard_D32ads_v6,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:45:50.156873 +AZURE,germanywestcentral,Standard_D32ads_v6,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:45:48.467181 +AZURE,germanywestcentral,Standard_D32as_v4,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:45:48.465423 +AZURE,germanywestcentral,Standard_D32as_v4,reserved_1y,NA,0.981735,USD,Azure Retail Prices API,2025-12-18T04:45:50.156088 +AZURE,germanywestcentral,Standard_D32as_v4,reserved_3y,NA,0.632306,USD,Azure Retail Prices API,2025-12-18T04:45:50.156094 +AZURE,germanywestcentral,Standard_D32as_v4,spot,NA,0.307507,USD,Azure Retail Prices API,2025-12-18T04:45:48.466288 +AZURE,germanywestcentral,Standard_D32as_v5,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:45:48.465810 +AZURE,germanywestcentral,Standard_D32as_v5,reserved_1y,NA,0.981735,USD,Azure Retail Prices API,2025-12-18T04:45:50.156468 +AZURE,germanywestcentral,Standard_D32as_v5,reserved_3y,NA,0.632306,USD,Azure Retail Prices API,2025-12-18T04:45:50.156471 +AZURE,germanywestcentral,Standard_D32as_v5,spot,NA,0.307507,USD,Azure Retail Prices API,2025-12-18T04:45:48.466195 +AZURE,germanywestcentral,Standard_D32d_v4,on_demand,NA,2.176,USD,Azure Retail Prices API,2025-12-18T04:45:48.465690 +AZURE,germanywestcentral,Standard_D32d_v4,reserved_1y,NA,1.279452,USD,Azure Retail Prices API,2025-12-18T04:45:50.156330 +AZURE,germanywestcentral,Standard_D32d_v4,reserved_3y,NA,0.818189,USD,Azure Retail Prices API,2025-12-18T04:45:50.156333 +AZURE,germanywestcentral,Standard_D32d_v4,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:45:48.465518 +AZURE,germanywestcentral,Standard_D32ds_v4,on_demand,NA,2.176,USD,Azure Retail Prices API,2025-12-18T04:45:48.465583 +AZURE,germanywestcentral,Standard_D32ds_v4,reserved_1y,NA,1.279452,USD,Azure Retail Prices API,2025-12-18T04:45:50.156233 +AZURE,germanywestcentral,Standard_D32ds_v4,reserved_3y,NA,0.818189,USD,Azure Retail Prices API,2025-12-18T04:45:50.156236 +AZURE,germanywestcentral,Standard_D32ds_v4,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:45:48.466192 +AZURE,germanywestcentral,Standard_D32ds_v5,on_demand,NA,2.176,USD,Azure Retail Prices API,2025-12-18T04:45:48.465631 +AZURE,germanywestcentral,Standard_D32ds_v5,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:45:50.156274 +AZURE,germanywestcentral,Standard_D32ds_v5,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:45:50.156277 +AZURE,germanywestcentral,Standard_D32ds_v5,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:45:48.466347 +AZURE,germanywestcentral,Standard_D32ds_v6,on_demand,NA,2.388,USD,Azure Retail Prices API,2025-12-18T04:45:48.466450 +AZURE,germanywestcentral,Standard_D32ds_v6,reserved_1y,NA,1.480479,USD,Azure Retail Prices API,2025-12-18T04:45:50.157106 +AZURE,germanywestcentral,Standard_D32ds_v6,reserved_3y,NA,0.93124,USD,Azure Retail Prices API,2025-12-18T04:45:50.157109 +AZURE,germanywestcentral,Standard_D32ds_v6,spot,NA,0.441302,USD,Azure Retail Prices API,2025-12-18T04:45:48.467235 +AZURE,germanywestcentral,Standard_D32pds_v6,on_demand,NA,1.757,USD,Azure Retail Prices API,2025-12-18T04:45:48.466084 +AZURE,germanywestcentral,Standard_D32pds_v6,reserved_1y,NA,1.03653,USD,Azure Retail Prices API,2025-12-18T04:45:50.156716 +AZURE,germanywestcentral,Standard_D32pds_v6,reserved_3y,NA,0.66758,USD,Azure Retail Prices API,2025-12-18T04:45:50.156719 +AZURE,germanywestcentral,Standard_D32pds_v6,spot,NA,0.324694,USD,Azure Retail Prices API,2025-12-18T04:45:48.466849 +AZURE,germanywestcentral,Standard_D32ps_v6,on_demand,NA,1.341,USD,Azure Retail Prices API,2025-12-18T04:45:48.465932 +AZURE,germanywestcentral,Standard_D32ps_v6,reserved_1y,NA,0.791096,USD,Azure Retail Prices API,2025-12-18T04:45:50.156585 +AZURE,germanywestcentral,Standard_D32ps_v6,reserved_3y,NA,0.509513,USD,Azure Retail Prices API,2025-12-18T04:45:50.156587 +AZURE,germanywestcentral,Standard_D32ps_v6,spot,NA,0.247817,USD,Azure Retail Prices API,2025-12-18T04:45:48.467177 +AZURE,germanywestcentral,Standard_D32s_v3,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:48.466914 +AZURE,germanywestcentral,Standard_D32s_v3,reserved_1y,NA,1.060959,USD,Azure Retail Prices API,2025-12-18T04:45:50.157554 +AZURE,germanywestcentral,Standard_D32s_v3,reserved_3y,NA,0.689992,USD,Azure Retail Prices API,2025-12-18T04:45:50.157556 +AZURE,germanywestcentral,Standard_D32s_v3,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:45:48.466406 +AZURE,germanywestcentral,Standard_D32s_v4,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:48.466134 +AZURE,germanywestcentral,Standard_D32s_v4,reserved_1y,NA,1.081963,USD,Azure Retail Prices API,2025-12-18T04:45:50.156772 +AZURE,germanywestcentral,Standard_D32s_v4,reserved_3y,NA,0.691857,USD,Azure Retail Prices API,2025-12-18T04:45:50.156775 +AZURE,germanywestcentral,Standard_D32s_v4,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:45:48.465739 +AZURE,germanywestcentral,Standard_D32s_v5,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:48.466079 +AZURE,germanywestcentral,Standard_D32s_v5,reserved_1y,NA,1.085616,USD,Azure Retail Prices API,2025-12-18T04:45:50.156710 +AZURE,germanywestcentral,Standard_D32s_v5,reserved_3y,NA,0.680784,USD,Azure Retail Prices API,2025-12-18T04:45:50.156713 +AZURE,germanywestcentral,Standard_D32s_v5,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:45:48.465751 +AZURE,germanywestcentral,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485349 +AZURE,germanywestcentral,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485358 +AZURE,germanywestcentral,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485362 +AZURE,germanywestcentral,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485353 +AZURE,germanywestcentral,Standard_D48a_v4,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:48.465525 +AZURE,germanywestcentral,Standard_D48a_v4,reserved_1y,NA,1.472603,USD,Azure Retail Prices API,2025-12-18T04:45:50.156191 +AZURE,germanywestcentral,Standard_D48a_v4,reserved_3y,NA,0.948478,USD,Azure Retail Prices API,2025-12-18T04:45:50.156194 +AZURE,germanywestcentral,Standard_D48a_v4,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:45:48.467169 +AZURE,germanywestcentral,Standard_D48ads_v5,on_demand,NA,5.208,USD,Azure Retail Prices API,2025-12-18T04:45:48.465564 +AZURE,germanywestcentral,Standard_D48ads_v5,reserved_1y,NA,1.769977,USD,Azure Retail Prices API,2025-12-18T04:45:50.156393 +AZURE,germanywestcentral,Standard_D48ads_v5,reserved_3y,NA,1.139992,USD,Azure Retail Prices API,2025-12-18T04:45:50.156395 +AZURE,germanywestcentral,Standard_D48ads_v5,spot,NA,0.5544,USD,Azure Retail Prices API,2025-12-18T04:45:48.466292 +AZURE,germanywestcentral,Standard_D48ads_v6,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:45:48.466988 +AZURE,germanywestcentral,Standard_D48ads_v6,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:45:50.157631 +AZURE,germanywestcentral,Standard_D48ads_v6,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:45:50.157634 +AZURE,germanywestcentral,Standard_D48ads_v6,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:45:48.465947 +AZURE,germanywestcentral,Standard_D48as_v4,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:48.466632 +AZURE,germanywestcentral,Standard_D48as_v4,reserved_1y,NA,1.472603,USD,Azure Retail Prices API,2025-12-18T04:45:50.157284 +AZURE,germanywestcentral,Standard_D48as_v4,reserved_3y,NA,0.948478,USD,Azure Retail Prices API,2025-12-18T04:45:50.157287 +AZURE,germanywestcentral,Standard_D48as_v4,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:45:48.466285 +AZURE,germanywestcentral,Standard_D48as_v5,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:48.465664 +AZURE,germanywestcentral,Standard_D48as_v5,reserved_1y,NA,1.472603,USD,Azure Retail Prices API,2025-12-18T04:45:50.156308 +AZURE,germanywestcentral,Standard_D48as_v5,reserved_3y,NA,0.948478,USD,Azure Retail Prices API,2025-12-18T04:45:50.156311 +AZURE,germanywestcentral,Standard_D48as_v5,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:45:48.466591 +AZURE,germanywestcentral,Standard_D48d_v4,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:45:48.466125 +AZURE,germanywestcentral,Standard_D48d_v4,reserved_1y,NA,1.919178,USD,Azure Retail Prices API,2025-12-18T04:45:50.156761 +AZURE,germanywestcentral,Standard_D48d_v4,reserved_3y,NA,1.227245,USD,Azure Retail Prices API,2025-12-18T04:45:50.156764 +AZURE,germanywestcentral,Standard_D48d_v4,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:45:48.467237 +AZURE,germanywestcentral,Standard_D48ds_v4,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:45:48.465709 +AZURE,germanywestcentral,Standard_D48ds_v4,reserved_1y,NA,1.919178,USD,Azure Retail Prices API,2025-12-18T04:45:50.156359 +AZURE,germanywestcentral,Standard_D48ds_v4,reserved_3y,NA,1.227245,USD,Azure Retail Prices API,2025-12-18T04:45:50.156362 +AZURE,germanywestcentral,Standard_D48ds_v4,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:45:48.466866 +AZURE,germanywestcentral,Standard_D48ds_v5,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:45:48.466753 +AZURE,germanywestcentral,Standard_D48ds_v5,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:45:50.157414 +AZURE,germanywestcentral,Standard_D48ds_v5,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:45:50.157417 +AZURE,germanywestcentral,Standard_D48ds_v5,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:45:48.465789 +AZURE,germanywestcentral,Standard_D48ds_v6,on_demand,NA,3.582,USD,Azure Retail Prices API,2025-12-18T04:45:48.466699 +AZURE,germanywestcentral,Standard_D48ds_v6,reserved_1y,NA,2.220662,USD,Azure Retail Prices API,2025-12-18T04:45:50.157353 +AZURE,germanywestcentral,Standard_D48ds_v6,reserved_3y,NA,1.39688,USD,Azure Retail Prices API,2025-12-18T04:45:50.157356 +AZURE,germanywestcentral,Standard_D48ds_v6,spot,NA,0.661954,USD,Azure Retail Prices API,2025-12-18T04:45:48.465950 +AZURE,germanywestcentral,Standard_D48pds_v6,on_demand,NA,2.635,USD,Azure Retail Prices API,2025-12-18T04:45:48.466233 +AZURE,germanywestcentral,Standard_D48pds_v6,reserved_1y,NA,1.554795,USD,Azure Retail Prices API,2025-12-18T04:45:50.156876 +AZURE,germanywestcentral,Standard_D48pds_v6,reserved_3y,NA,1.00137,USD,Azure Retail Prices API,2025-12-18T04:45:50.156879 +AZURE,germanywestcentral,Standard_D48pds_v6,spot,NA,0.486948,USD,Azure Retail Prices API,2025-12-18T04:45:48.465890 +AZURE,germanywestcentral,Standard_D48ps_v6,on_demand,NA,2.011,USD,Azure Retail Prices API,2025-12-18T04:45:48.466861 +AZURE,germanywestcentral,Standard_D48ps_v6,reserved_1y,NA,1.186644,USD,Azure Retail Prices API,2025-12-18T04:45:50.157464 +AZURE,germanywestcentral,Standard_D48ps_v6,reserved_3y,NA,0.764269,USD,Azure Retail Prices API,2025-12-18T04:45:50.157466 +AZURE,germanywestcentral,Standard_D48ps_v6,spot,NA,0.371633,USD,Azure Retail Prices API,2025-12-18T04:45:48.465767 +AZURE,germanywestcentral,Standard_D48s_v4,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:45:48.466714 +AZURE,germanywestcentral,Standard_D48s_v4,reserved_1y,NA,1.622831,USD,Azure Retail Prices API,2025-12-18T04:45:50.157381 +AZURE,germanywestcentral,Standard_D48s_v4,reserved_3y,NA,1.037747,USD,Azure Retail Prices API,2025-12-18T04:45:50.157384 +AZURE,germanywestcentral,Standard_D48s_v4,spot,NA,0.510048,USD,Azure Retail Prices API,2025-12-18T04:45:48.465573 +AZURE,germanywestcentral,Standard_D48s_v5,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:45:48.466708 +AZURE,germanywestcentral,Standard_D48s_v5,reserved_1y,NA,1.628425,USD,Azure Retail Prices API,2025-12-18T04:45:50.157370 +AZURE,germanywestcentral,Standard_D48s_v5,reserved_3y,NA,1.021195,USD,Azure Retail Prices API,2025-12-18T04:45:50.157373 +AZURE,germanywestcentral,Standard_D48s_v5,spot,NA,0.510048,USD,Azure Retail Prices API,2025-12-18T04:45:48.466119 +AZURE,germanywestcentral,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486208 +AZURE,germanywestcentral,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486222 +AZURE,germanywestcentral,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486230 +AZURE,germanywestcentral,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486212 +AZURE,germanywestcentral,Standard_D4a_v4,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:48.465804 +AZURE,germanywestcentral,Standard_D4a_v4,reserved_1y,NA,0.122717,USD,Azure Retail Prices API,2025-12-18T04:45:50.156457 +AZURE,germanywestcentral,Standard_D4a_v4,reserved_3y,NA,0.079033,USD,Azure Retail Prices API,2025-12-18T04:45:50.156459 +AZURE,germanywestcentral,Standard_D4a_v4,spot,NA,0.038438,USD,Azure Retail Prices API,2025-12-18T04:45:48.466131 +AZURE,germanywestcentral,Standard_D4ads_v5,on_demand,NA,0.434,USD,Azure Retail Prices API,2025-12-18T04:45:48.465670 +AZURE,germanywestcentral,Standard_D4ads_v5,reserved_1y,NA,0.147489,USD,Azure Retail Prices API,2025-12-18T04:45:50.157704 +AZURE,germanywestcentral,Standard_D4ads_v5,reserved_3y,NA,0.095015,USD,Azure Retail Prices API,2025-12-18T04:45:50.157709 +AZURE,germanywestcentral,Standard_D4ads_v5,spot,NA,0.0462,USD,Azure Retail Prices API,2025-12-18T04:45:48.466844 +AZURE,germanywestcentral,Standard_D4ads_v6,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:45:48.465703 +AZURE,germanywestcentral,Standard_D4ads_v6,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:45:50.156347 +AZURE,germanywestcentral,Standard_D4ads_v6,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:45:50.156350 +AZURE,germanywestcentral,Standard_D4ads_v6,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:45:48.466938 +AZURE,germanywestcentral,Standard_D4as_v5,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:48.466152 +AZURE,germanywestcentral,Standard_D4as_v5,reserved_1y,NA,0.122717,USD,Azure Retail Prices API,2025-12-18T04:45:50.156796 +AZURE,germanywestcentral,Standard_D4as_v5,reserved_3y,NA,0.079033,USD,Azure Retail Prices API,2025-12-18T04:45:50.156799 +AZURE,germanywestcentral,Standard_D4as_v5,spot,NA,0.038438,USD,Azure Retail Prices API,2025-12-18T04:45:48.467055 +AZURE,germanywestcentral,Standard_D4d_v4,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:45:48.466198 +AZURE,germanywestcentral,Standard_D4d_v4,reserved_1y,NA,0.159932,USD,Azure Retail Prices API,2025-12-18T04:45:50.156836 +AZURE,germanywestcentral,Standard_D4d_v4,reserved_3y,NA,0.102283,USD,Azure Retail Prices API,2025-12-18T04:45:50.156839 +AZURE,germanywestcentral,Standard_D4d_v4,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:45:48.465764 +AZURE,germanywestcentral,Standard_D4ds_v4,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:45:48.466362 +AZURE,germanywestcentral,Standard_D4ds_v4,reserved_1y,NA,0.159932,USD,Azure Retail Prices API,2025-12-18T04:45:50.157003 +AZURE,germanywestcentral,Standard_D4ds_v4,reserved_3y,NA,0.102283,USD,Azure Retail Prices API,2025-12-18T04:45:50.157006 +AZURE,germanywestcentral,Standard_D4ds_v4,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:45:48.466017 +AZURE,germanywestcentral,Standard_D4ds_v5,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:45:48.467132 +AZURE,germanywestcentral,Standard_D4ds_v5,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:45:50.157730 +AZURE,germanywestcentral,Standard_D4ds_v5,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:45:50.157732 +AZURE,germanywestcentral,Standard_D4ds_v5,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:45:48.467106 +AZURE,germanywestcentral,Standard_D4ds_v6,on_demand,NA,0.298,USD,Azure Retail Prices API,2025-12-18T04:45:48.466890 +AZURE,germanywestcentral,Standard_D4ds_v6,reserved_1y,NA,0.185046,USD,Azure Retail Prices API,2025-12-18T04:45:50.157515 +AZURE,germanywestcentral,Standard_D4ds_v6,reserved_3y,NA,0.1164,USD,Azure Retail Prices API,2025-12-18T04:45:50.157518 +AZURE,germanywestcentral,Standard_D4ds_v6,spot,NA,0.05507,USD,Azure Retail Prices API,2025-12-18T04:45:48.465929 +AZURE,germanywestcentral,Standard_D4pds_v6,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:48.466143 +AZURE,germanywestcentral,Standard_D4pds_v6,reserved_1y,NA,0.129566,USD,Azure Retail Prices API,2025-12-18T04:45:50.156784 +AZURE,germanywestcentral,Standard_D4pds_v6,reserved_3y,NA,0.083447,USD,Azure Retail Prices API,2025-12-18T04:45:50.156787 +AZURE,germanywestcentral,Standard_D4pds_v6,spot,NA,0.040656,USD,Azure Retail Prices API,2025-12-18T04:45:48.466804 +AZURE,germanywestcentral,Standard_D4ps_v6,on_demand,NA,0.168,USD,Azure Retail Prices API,2025-12-18T04:45:48.466655 +AZURE,germanywestcentral,Standard_D4ps_v6,reserved_1y,NA,0.098858,USD,Azure Retail Prices API,2025-12-18T04:45:50.157306 +AZURE,germanywestcentral,Standard_D4ps_v6,reserved_3y,NA,0.063699,USD,Azure Retail Prices API,2025-12-18T04:45:50.157309 +AZURE,germanywestcentral,Standard_D4ps_v6,spot,NA,0.031046,USD,Azure Retail Prices API,2025-12-18T04:45:48.465868 +AZURE,germanywestcentral,Standard_D4s_v3,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:48.465938 +AZURE,germanywestcentral,Standard_D4s_v3,reserved_1y,NA,0.132648,USD,Azure Retail Prices API,2025-12-18T04:45:50.156596 +AZURE,germanywestcentral,Standard_D4s_v3,reserved_3y,NA,0.086263,USD,Azure Retail Prices API,2025-12-18T04:45:50.156598 +AZURE,germanywestcentral,Standard_D4s_v3,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:48.466736 +AZURE,germanywestcentral,Standard_D4s_v4,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:48.466029 +AZURE,germanywestcentral,Standard_D4s_v4,reserved_1y,NA,0.135274,USD,Azure Retail Prices API,2025-12-18T04:45:50.156681 +AZURE,germanywestcentral,Standard_D4s_v4,reserved_3y,NA,0.086492,USD,Azure Retail Prices API,2025-12-18T04:45:50.156684 +AZURE,germanywestcentral,Standard_D4s_v4,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:48.465910 +AZURE,germanywestcentral,Standard_D4s_v5,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:48.465953 +AZURE,germanywestcentral,Standard_D4s_v5,reserved_1y,NA,0.135731,USD,Azure Retail Prices API,2025-12-18T04:45:50.156601 +AZURE,germanywestcentral,Standard_D4s_v5,reserved_3y,NA,0.085084,USD,Azure Retail Prices API,2025-12-18T04:45:50.156604 +AZURE,germanywestcentral,Standard_D4s_v5,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:48.466386 +AZURE,germanywestcentral,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487336 +AZURE,germanywestcentral,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487350 +AZURE,germanywestcentral,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487357 +AZURE,germanywestcentral,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487343 +AZURE,germanywestcentral,Standard_D64_v3,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:48.466898 +AZURE,germanywestcentral,Standard_D64_v3,reserved_1y,NA,2.121804,USD,Azure Retail Prices API,2025-12-18T04:45:50.157526 +AZURE,germanywestcentral,Standard_D64_v3,reserved_3y,NA,1.379985,USD,Azure Retail Prices API,2025-12-18T04:45:50.157529 +AZURE,germanywestcentral,Standard_D64_v3,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:45:48.466551 +AZURE,germanywestcentral,Standard_D64a_v4,on_demand,NA,3.328,USD,Azure Retail Prices API,2025-12-18T04:45:48.466505 +AZURE,germanywestcentral,Standard_D64a_v4,reserved_1y,NA,1.96347,USD,Azure Retail Prices API,2025-12-18T04:45:50.157203 +AZURE,germanywestcentral,Standard_D64a_v4,reserved_3y,NA,1.26465,USD,Azure Retail Prices API,2025-12-18T04:45:50.157205 +AZURE,germanywestcentral,Standard_D64a_v4,spot,NA,0.615014,USD,Azure Retail Prices API,2025-12-18T04:45:48.466392 +AZURE,germanywestcentral,Standard_D64ads_v5,on_demand,NA,6.944,USD,Azure Retail Prices API,2025-12-18T04:45:48.465412 +AZURE,germanywestcentral,Standard_D64ads_v5,reserved_1y,NA,2.360046,USD,Azure Retail Prices API,2025-12-18T04:45:50.156932 +AZURE,germanywestcentral,Standard_D64ads_v5,reserved_3y,NA,1.520015,USD,Azure Retail Prices API,2025-12-18T04:45:50.156935 +AZURE,germanywestcentral,Standard_D64ads_v5,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:45:48.466734 +AZURE,germanywestcentral,Standard_D64ads_v6,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:45:48.466660 +AZURE,germanywestcentral,Standard_D64ads_v6,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:45:50.157313 +AZURE,germanywestcentral,Standard_D64ads_v6,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:45:50.157316 +AZURE,germanywestcentral,Standard_D64ads_v6,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:45:48.466093 +AZURE,germanywestcentral,Standard_D64as_v4,on_demand,NA,3.328,USD,Azure Retail Prices API,2025-12-18T04:45:48.466415 +AZURE,germanywestcentral,Standard_D64as_v4,reserved_1y,NA,1.96347,USD,Azure Retail Prices API,2025-12-18T04:45:50.157066 +AZURE,germanywestcentral,Standard_D64as_v4,reserved_3y,NA,1.26465,USD,Azure Retail Prices API,2025-12-18T04:45:50.157069 +AZURE,germanywestcentral,Standard_D64as_v4,spot,NA,0.615014,USD,Azure Retail Prices API,2025-12-18T04:45:48.466663 +AZURE,germanywestcentral,Standard_D64as_v5,on_demand,NA,6.272,USD,Azure Retail Prices API,2025-12-18T04:45:48.466063 +AZURE,germanywestcentral,Standard_D64as_v5,reserved_1y,NA,1.96347,USD,Azure Retail Prices API,2025-12-18T04:45:50.157220 +AZURE,germanywestcentral,Standard_D64as_v5,reserved_3y,NA,1.26465,USD,Azure Retail Prices API,2025-12-18T04:45:50.157223 +AZURE,germanywestcentral,Standard_D64as_v5,spot,NA,0.615014,USD,Azure Retail Prices API,2025-12-18T04:45:48.465990 +AZURE,germanywestcentral,Standard_D64d_v4,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:45:48.465801 +AZURE,germanywestcentral,Standard_D64d_v4,reserved_1y,NA,2.559018,USD,Azure Retail Prices API,2025-12-18T04:45:50.156451 +AZURE,germanywestcentral,Standard_D64d_v4,reserved_3y,NA,1.636339,USD,Azure Retail Prices API,2025-12-18T04:45:50.156453 +AZURE,germanywestcentral,Standard_D64d_v4,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:45:48.466999 +AZURE,germanywestcentral,Standard_D64ds_v4,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:45:48.466524 +AZURE,germanywestcentral,Standard_D64ds_v4,reserved_1y,NA,2.559018,USD,Azure Retail Prices API,2025-12-18T04:45:50.157231 +AZURE,germanywestcentral,Standard_D64ds_v4,reserved_3y,NA,1.636339,USD,Azure Retail Prices API,2025-12-18T04:45:50.157235 +AZURE,germanywestcentral,Standard_D64ds_v4,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:45:48.466892 +AZURE,germanywestcentral,Standard_D64ds_v5,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:45:48.467151 +AZURE,germanywestcentral,Standard_D64ds_v5,reserved_1y,NA,2.567694,USD,Azure Retail Prices API,2025-12-18T04:45:50.157735 +AZURE,germanywestcentral,Standard_D64ds_v5,reserved_3y,NA,1.653767,USD,Azure Retail Prices API,2025-12-18T04:45:50.157739 +AZURE,germanywestcentral,Standard_D64ds_v5,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:45:48.466444 +AZURE,germanywestcentral,Standard_D64ds_v6,on_demand,NA,4.776,USD,Azure Retail Prices API,2025-12-18T04:45:48.465568 +AZURE,germanywestcentral,Standard_D64ds_v6,reserved_1y,NA,2.960959,USD,Azure Retail Prices API,2025-12-18T04:45:50.156222 +AZURE,germanywestcentral,Standard_D64ds_v6,reserved_3y,NA,1.862519,USD,Azure Retail Prices API,2025-12-18T04:45:50.156225 +AZURE,germanywestcentral,Standard_D64ds_v6,spot,NA,0.882605,USD,Azure Retail Prices API,2025-12-18T04:45:48.466511 +AZURE,germanywestcentral,Standard_D64pds_v6,on_demand,NA,3.514,USD,Azure Retail Prices API,2025-12-18T04:45:48.465528 +AZURE,germanywestcentral,Standard_D64pds_v6,reserved_1y,NA,2.073059,USD,Azure Retail Prices API,2025-12-18T04:45:50.156199 +AZURE,germanywestcentral,Standard_D64pds_v6,reserved_3y,NA,1.33516,USD,Azure Retail Prices API,2025-12-18T04:45:50.156202 +AZURE,germanywestcentral,Standard_D64pds_v6,spot,NA,0.649387,USD,Azure Retail Prices API,2025-12-18T04:45:48.465839 +AZURE,germanywestcentral,Standard_D64ps_v6,on_demand,NA,2.682,USD,Azure Retail Prices API,2025-12-18T04:45:48.465590 +AZURE,germanywestcentral,Standard_D64ps_v6,reserved_1y,NA,1.582192,USD,Azure Retail Prices API,2025-12-18T04:45:50.156245 +AZURE,germanywestcentral,Standard_D64ps_v6,reserved_3y,NA,1.019026,USD,Azure Retail Prices API,2025-12-18T04:45:50.156248 +AZURE,germanywestcentral,Standard_D64ps_v6,spot,NA,0.495634,USD,Azure Retail Prices API,2025-12-18T04:45:48.466412 +AZURE,germanywestcentral,Standard_D64s_v3,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:48.466356 +AZURE,germanywestcentral,Standard_D64s_v3,reserved_1y,NA,2.121804,USD,Azure Retail Prices API,2025-12-18T04:45:50.156997 +AZURE,germanywestcentral,Standard_D64s_v3,reserved_3y,NA,1.379985,USD,Azure Retail Prices API,2025-12-18T04:45:50.157000 +AZURE,germanywestcentral,Standard_D64s_v3,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:45:48.466259 +AZURE,germanywestcentral,Standard_D64s_v4,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:48.465904 +AZURE,germanywestcentral,Standard_D64s_v4,reserved_1y,NA,2.163813,USD,Azure Retail Prices API,2025-12-18T04:45:50.156557 +AZURE,germanywestcentral,Standard_D64s_v4,reserved_3y,NA,1.383676,USD,Azure Retail Prices API,2025-12-18T04:45:50.156560 +AZURE,germanywestcentral,Standard_D64s_v4,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:45:48.465608 +AZURE,germanywestcentral,Standard_D64s_v5,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:48.465719 +AZURE,germanywestcentral,Standard_D64s_v5,reserved_1y,NA,2.171233,USD,Azure Retail Prices API,2025-12-18T04:45:50.156371 +AZURE,germanywestcentral,Standard_D64s_v5,reserved_3y,NA,1.361606,USD,Azure Retail Prices API,2025-12-18T04:45:50.156374 +AZURE,germanywestcentral,Standard_D64s_v5,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:45:48.466041 +AZURE,germanywestcentral,Standard_D8_v3,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:48.466959 +AZURE,germanywestcentral,Standard_D8_v3,reserved_1y,NA,0.265183,USD,Azure Retail Prices API,2025-12-18T04:45:50.157599 +AZURE,germanywestcentral,Standard_D8_v3,reserved_3y,NA,0.172489,USD,Azure Retail Prices API,2025-12-18T04:45:50.157601 +AZURE,germanywestcentral,Standard_D8_v3,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:45:48.466982 +AZURE,germanywestcentral,Standard_D8a_v4,on_demand,NA,0.416,USD,Azure Retail Prices API,2025-12-18T04:45:48.466403 +AZURE,germanywestcentral,Standard_D8a_v4,reserved_1y,NA,0.245434,USD,Azure Retail Prices API,2025-12-18T04:45:50.157055 +AZURE,germanywestcentral,Standard_D8a_v4,reserved_3y,NA,0.158067,USD,Azure Retail Prices API,2025-12-18T04:45:50.157058 +AZURE,germanywestcentral,Standard_D8a_v4,spot,NA,0.076877,USD,Azure Retail Prices API,2025-12-18T04:45:48.467166 +AZURE,germanywestcentral,Standard_D8ads_v5,on_demand,NA,0.868,USD,Azure Retail Prices API,2025-12-18T04:45:48.466783 +AZURE,germanywestcentral,Standard_D8ads_v5,reserved_1y,NA,0.294977,USD,Azure Retail Prices API,2025-12-18T04:45:50.157509 +AZURE,germanywestcentral,Standard_D8ads_v5,reserved_3y,NA,0.189992,USD,Azure Retail Prices API,2025-12-18T04:45:50.157512 +AZURE,germanywestcentral,Standard_D8ads_v5,spot,NA,0.0924,USD,Azure Retail Prices API,2025-12-18T04:45:48.466846 +AZURE,germanywestcentral,Standard_D8ads_v6,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:45:48.467112 +AZURE,germanywestcentral,Standard_D8ads_v6,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:45:50.157715 +AZURE,germanywestcentral,Standard_D8ads_v6,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:45:50.157721 +AZURE,germanywestcentral,Standard_D8ads_v6,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:45:48.465729 +AZURE,germanywestcentral,Standard_D8as_v4,on_demand,NA,0.416,USD,Azure Retail Prices API,2025-12-18T04:45:48.467212 +AZURE,germanywestcentral,Standard_D8as_v4,reserved_1y,NA,0.245434,USD,Azure Retail Prices API,2025-12-18T04:45:50.157776 +AZURE,germanywestcentral,Standard_D8as_v4,reserved_3y,NA,0.158067,USD,Azure Retail Prices API,2025-12-18T04:45:50.157779 +AZURE,germanywestcentral,Standard_D8as_v4,spot,NA,0.076877,USD,Azure Retail Prices API,2025-12-18T04:45:48.465444 +AZURE,germanywestcentral,Standard_D8as_v5,on_demand,NA,0.784,USD,Azure Retail Prices API,2025-12-18T04:45:48.466203 +AZURE,germanywestcentral,Standard_D8as_v5,reserved_1y,NA,0.245434,USD,Azure Retail Prices API,2025-12-18T04:45:50.157680 +AZURE,germanywestcentral,Standard_D8as_v5,reserved_3y,NA,0.158067,USD,Azure Retail Prices API,2025-12-18T04:45:50.157683 +AZURE,germanywestcentral,Standard_D8as_v5,spot,NA,0.076877,USD,Azure Retail Prices API,2025-12-18T04:45:48.466747 +AZURE,germanywestcentral,Standard_D8d_v4,on_demand,NA,0.544,USD,Azure Retail Prices API,2025-12-18T04:45:48.465780 +AZURE,germanywestcentral,Standard_D8d_v4,reserved_1y,NA,0.319863,USD,Azure Retail Prices API,2025-12-18T04:45:50.156439 +AZURE,germanywestcentral,Standard_D8d_v4,reserved_3y,NA,0.204528,USD,Azure Retail Prices API,2025-12-18T04:45:50.156442 +AZURE,germanywestcentral,Standard_D8d_v4,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:45:48.465832 +AZURE,germanywestcentral,Standard_D8ds_v4,on_demand,NA,0.544,USD,Azure Retail Prices API,2025-12-18T04:45:48.465474 +AZURE,germanywestcentral,Standard_D8ds_v4,reserved_1y,NA,0.319863,USD,Azure Retail Prices API,2025-12-18T04:45:50.156167 +AZURE,germanywestcentral,Standard_D8ds_v4,reserved_3y,NA,0.204528,USD,Azure Retail Prices API,2025-12-18T04:45:50.156171 +AZURE,germanywestcentral,Standard_D8ds_v4,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:45:48.466344 +AZURE,germanywestcentral,Standard_D8ds_v5,on_demand,NA,0.544,USD,Azure Retail Prices API,2025-12-18T04:45:48.466808 +AZURE,germanywestcentral,Standard_D8ds_v5,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:45:50.157436 +AZURE,germanywestcentral,Standard_D8ds_v5,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:45:50.157439 +AZURE,germanywestcentral,Standard_D8ds_v5,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:45:48.465773 +AZURE,germanywestcentral,Standard_D8ds_v6,on_demand,NA,0.597,USD,Azure Retail Prices API,2025-12-18T04:45:48.466725 +AZURE,germanywestcentral,Standard_D8ds_v6,reserved_1y,NA,0.370091,USD,Azure Retail Prices API,2025-12-18T04:45:50.157387 +AZURE,germanywestcentral,Standard_D8ds_v6,reserved_3y,NA,0.232801,USD,Azure Retail Prices API,2025-12-18T04:45:50.157389 +AZURE,germanywestcentral,Standard_D8ds_v6,spot,NA,0.110326,USD,Azure Retail Prices API,2025-12-18T04:45:48.467129 +AZURE,germanywestcentral,Standard_D8pds_v6,on_demand,NA,0.439,USD,Azure Retail Prices API,2025-12-18T04:45:48.465451 +AZURE,germanywestcentral,Standard_D8pds_v6,reserved_1y,NA,0.259132,USD,Azure Retail Prices API,2025-12-18T04:45:50.156120 +AZURE,germanywestcentral,Standard_D8pds_v6,reserved_3y,NA,0.166895,USD,Azure Retail Prices API,2025-12-18T04:45:50.156125 +AZURE,germanywestcentral,Standard_D8pds_v6,spot,NA,0.081127,USD,Azure Retail Prices API,2025-12-18T04:45:48.466521 +AZURE,germanywestcentral,Standard_D8ps_v6,on_demand,NA,0.335,USD,Azure Retail Prices API,2025-12-18T04:45:48.465723 +AZURE,germanywestcentral,Standard_D8ps_v6,reserved_1y,NA,0.197717,USD,Azure Retail Prices API,2025-12-18T04:45:50.156376 +AZURE,germanywestcentral,Standard_D8ps_v6,reserved_3y,NA,0.127359,USD,Azure Retail Prices API,2025-12-18T04:45:50.156379 +AZURE,germanywestcentral,Standard_D8ps_v6,spot,NA,0.061908,USD,Azure Retail Prices API,2025-12-18T04:45:48.467001 +AZURE,germanywestcentral,Standard_D8s_v3,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:48.466099 +AZURE,germanywestcentral,Standard_D8s_v3,reserved_1y,NA,0.265183,USD,Azure Retail Prices API,2025-12-18T04:45:50.156733 +AZURE,germanywestcentral,Standard_D8s_v3,reserved_3y,NA,0.172489,USD,Azure Retail Prices API,2025-12-18T04:45:50.156736 +AZURE,germanywestcentral,Standard_D8s_v3,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:45:48.466742 +AZURE,germanywestcentral,Standard_D8s_v4,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:48.465981 +AZURE,germanywestcentral,Standard_D8s_v4,reserved_1y,NA,0.270434,USD,Azure Retail Prices API,2025-12-18T04:45:50.156628 +AZURE,germanywestcentral,Standard_D8s_v4,reserved_3y,NA,0.172945,USD,Azure Retail Prices API,2025-12-18T04:45:50.156632 +AZURE,germanywestcentral,Standard_D8s_v4,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:45:48.467035 +AZURE,germanywestcentral,Standard_D8s_v5,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:48.466421 +AZURE,germanywestcentral,Standard_D8s_v5,reserved_1y,NA,0.271347,USD,Azure Retail Prices API,2025-12-18T04:45:50.157078 +AZURE,germanywestcentral,Standard_D8s_v5,reserved_3y,NA,0.170205,USD,Azure Retail Prices API,2025-12-18T04:45:50.157081 +AZURE,germanywestcentral,Standard_D8s_v5,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:45:48.467256 +AZURE,germanywestcentral,Standard_D96a_v4,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:45:48.465874 +AZURE,germanywestcentral,Standard_D96a_v4,reserved_1y,NA,2.94532,USD,Azure Retail Prices API,2025-12-18T04:45:50.156524 +AZURE,germanywestcentral,Standard_D96a_v4,reserved_3y,NA,1.896956,USD,Azure Retail Prices API,2025-12-18T04:45:50.156527 +AZURE,germanywestcentral,Standard_D96a_v4,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:45:48.466788 +AZURE,germanywestcentral,Standard_D96ads_v5,on_demand,NA,6.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.465742 +AZURE,germanywestcentral,Standard_D96ads_v5,reserved_1y,NA,3.539954,USD,Azure Retail Prices API,2025-12-18T04:45:50.156398 +AZURE,germanywestcentral,Standard_D96ads_v5,reserved_3y,NA,2.279985,USD,Azure Retail Prices API,2025-12-18T04:45:50.156402 +AZURE,germanywestcentral,Standard_D96ads_v5,spot,NA,1.1088,USD,Azure Retail Prices API,2025-12-18T04:45:48.465713 +AZURE,germanywestcentral,Standard_D96ads_v6,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:45:48.466256 +AZURE,germanywestcentral,Standard_D96ads_v6,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:45:50.156910 +AZURE,germanywestcentral,Standard_D96ads_v6,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:45:50.156913 +AZURE,germanywestcentral,Standard_D96ads_v6,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:45:48.466050 +AZURE,germanywestcentral,Standard_D96as_v4,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:45:48.465935 +AZURE,germanywestcentral,Standard_D96as_v4,reserved_1y,NA,2.94532,USD,Azure Retail Prices API,2025-12-18T04:45:50.156590 +AZURE,germanywestcentral,Standard_D96as_v4,reserved_3y,NA,1.896956,USD,Azure Retail Prices API,2025-12-18T04:45:50.156593 +AZURE,germanywestcentral,Standard_D96as_v4,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:45:48.466996 +AZURE,germanywestcentral,Standard_D96as_v5,on_demand,NA,9.408,USD,Azure Retail Prices API,2025-12-18T04:45:48.466380 +AZURE,germanywestcentral,Standard_D96as_v5,reserved_1y,NA,2.94532,USD,Azure Retail Prices API,2025-12-18T04:45:50.157799 +AZURE,germanywestcentral,Standard_D96as_v5,reserved_3y,NA,1.896956,USD,Azure Retail Prices API,2025-12-18T04:45:50.157802 +AZURE,germanywestcentral,Standard_D96as_v5,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:45:48.467126 +AZURE,germanywestcentral,Standard_D96ds_v5,on_demand,NA,6.528,USD,Azure Retail Prices API,2025-12-18T04:45:48.466711 +AZURE,germanywestcentral,Standard_D96ds_v5,reserved_1y,NA,3.851484,USD,Azure Retail Prices API,2025-12-18T04:45:50.157375 +AZURE,germanywestcentral,Standard_D96ds_v5,reserved_3y,NA,2.480632,USD,Azure Retail Prices API,2025-12-18T04:45:50.157378 +AZURE,germanywestcentral,Standard_D96ds_v5,spot,NA,1.206374,USD,Azure Retail Prices API,2025-12-18T04:45:48.466977 +AZURE,germanywestcentral,Standard_D96ds_v6,on_demand,NA,7.164,USD,Azure Retail Prices API,2025-12-18T04:45:48.466793 +AZURE,germanywestcentral,Standard_D96ds_v6,reserved_1y,NA,4.441438,USD,Azure Retail Prices API,2025-12-18T04:45:50.157425 +AZURE,germanywestcentral,Standard_D96ds_v6,reserved_3y,NA,2.79376,USD,Azure Retail Prices API,2025-12-18T04:45:50.157428 +AZURE,germanywestcentral,Standard_D96ds_v6,spot,NA,1.323907,USD,Azure Retail Prices API,2025-12-18T04:45:48.465614 +AZURE,germanywestcentral,Standard_D96pds_v6,on_demand,NA,5.27,USD,Azure Retail Prices API,2025-12-18T04:45:48.466262 +AZURE,germanywestcentral,Standard_D96pds_v6,reserved_1y,NA,3.109589,USD,Azure Retail Prices API,2025-12-18T04:45:50.156921 +AZURE,germanywestcentral,Standard_D96pds_v6,reserved_3y,NA,2.00274,USD,Azure Retail Prices API,2025-12-18T04:45:50.156924 +AZURE,germanywestcentral,Standard_D96pds_v6,spot,NA,0.973896,USD,Azure Retail Prices API,2025-12-18T04:45:48.466313 +AZURE,germanywestcentral,Standard_D96ps_v6,on_demand,NA,4.022,USD,Azure Retail Prices API,2025-12-18T04:45:48.466971 +AZURE,germanywestcentral,Standard_D96ps_v6,reserved_1y,NA,2.373174,USD,Azure Retail Prices API,2025-12-18T04:45:50.157615 +AZURE,germanywestcentral,Standard_D96ps_v6,reserved_3y,NA,1.528501,USD,Azure Retail Prices API,2025-12-18T04:45:50.157618 +AZURE,germanywestcentral,Standard_D96ps_v6,spot,NA,0.743266,USD,Azure Retail Prices API,2025-12-18T04:45:48.466221 +AZURE,germanywestcentral,Standard_D96s_v5,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:45:48.466494 +AZURE,germanywestcentral,Standard_D96s_v5,reserved_1y,NA,3.256849,USD,Azure Retail Prices API,2025-12-18T04:45:50.157183 +AZURE,germanywestcentral,Standard_D96s_v5,reserved_3y,NA,2.04239,USD,Azure Retail Prices API,2025-12-18T04:45:50.157188 +AZURE,germanywestcentral,Standard_D96s_v5,spot,NA,1.020096,USD,Azure Retail Prices API,2025-12-18T04:45:48.465594 +AZURE,germanywestcentral,Standard_DC16ads_v5,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.466137 +AZURE,germanywestcentral,Standard_DC16ads_v5,reserved_1y,NA,0.8,USD,Azure Retail Prices API,2025-12-18T04:45:50.156778 +AZURE,germanywestcentral,Standard_DC16ads_v5,reserved_3y,NA,0.6,USD,Azure Retail Prices API,2025-12-18T04:45:50.156781 +AZURE,germanywestcentral,Standard_DC16ads_v5,spot,NA,0.1887,USD,Azure Retail Prices API,2025-12-18T04:45:48.466628 +AZURE,germanywestcentral,Standard_DC16ads_v6,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:45:48.466395 +AZURE,germanywestcentral,Standard_DC16ads_v6,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:45:50.157032 +AZURE,germanywestcentral,Standard_DC16ads_v6,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:45:50.157035 +AZURE,germanywestcentral,Standard_DC16ads_v6,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:45:48.466055 +AZURE,germanywestcentral,Standard_DC16as_v5,on_demand,NA,0.832,USD,Azure Retail Prices API,2025-12-18T04:45:48.466569 +AZURE,germanywestcentral,Standard_DC16as_v5,reserved_1y,NA,0.665639,USD,Azure Retail Prices API,2025-12-18T04:45:50.157255 +AZURE,germanywestcentral,Standard_DC16as_v5,reserved_3y,NA,0.499201,USD,Azure Retail Prices API,2025-12-18T04:45:50.157258 +AZURE,germanywestcentral,Standard_DC16as_v5,spot,NA,0.156998,USD,Azure Retail Prices API,2025-12-18T04:45:48.466980 +AZURE,germanywestcentral,Standard_DC2ads_v6,on_demand,NA,0.138,USD,Azure Retail Prices API,2025-12-18T04:45:48.465597 +AZURE,germanywestcentral,Standard_DC2ads_v6,reserved_1y,NA,0.081393,USD,Azure Retail Prices API,2025-12-18T04:45:50.156251 +AZURE,germanywestcentral,Standard_DC2ads_v6,reserved_3y,NA,0.052435,USD,Azure Retail Prices API,2025-12-18T04:45:50.156254 +AZURE,germanywestcentral,Standard_DC2ads_v6,spot,NA,0.025502,USD,Azure Retail Prices API,2025-12-18T04:45:48.466149 +AZURE,germanywestcentral,Standard_DC32ads_v5,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.465674 +AZURE,germanywestcentral,Standard_DC32ads_v5,reserved_1y,NA,1.6,USD,Azure Retail Prices API,2025-12-18T04:45:50.156314 +AZURE,germanywestcentral,Standard_DC32ads_v5,reserved_3y,NA,1.2,USD,Azure Retail Prices API,2025-12-18T04:45:50.156316 +AZURE,germanywestcentral,Standard_DC32ads_v5,spot,NA,0.3774,USD,Azure Retail Prices API,2025-12-18T04:45:48.467195 +AZURE,germanywestcentral,Standard_DC32ads_v6,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:45:48.467218 +AZURE,germanywestcentral,Standard_DC32ads_v6,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:45:50.157782 +AZURE,germanywestcentral,Standard_DC32ads_v6,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:45:50.157785 +AZURE,germanywestcentral,Standard_DC32ads_v6,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:45:48.466603 +AZURE,germanywestcentral,Standard_DC32as_v5,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:45:48.466096 +AZURE,germanywestcentral,Standard_DC32as_v5,reserved_1y,NA,1.331164,USD,Azure Retail Prices API,2025-12-18T04:45:50.156728 +AZURE,germanywestcentral,Standard_DC32as_v5,reserved_3y,NA,0.998402,USD,Azure Retail Prices API,2025-12-18T04:45:50.156730 +AZURE,germanywestcentral,Standard_DC32as_v5,spot,NA,0.313997,USD,Azure Retail Prices API,2025-12-18T04:45:48.465823 +AZURE,germanywestcentral,Standard_DC48ads_v5,on_demand,NA,3.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.465856 +AZURE,germanywestcentral,Standard_DC48ads_v5,reserved_1y,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:45:50.156502 +AZURE,germanywestcentral,Standard_DC48ads_v5,reserved_3y,NA,1.8,USD,Azure Retail Prices API,2025-12-18T04:45:50.156505 +AZURE,germanywestcentral,Standard_DC48ads_v5,spot,NA,0.5661,USD,Azure Retail Prices API,2025-12-18T04:45:48.466557 +AZURE,germanywestcentral,Standard_DC48ads_v6,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:45:48.466178 +AZURE,germanywestcentral,Standard_DC48ads_v6,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:45:50.156813 +AZURE,germanywestcentral,Standard_DC48ads_v6,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:45:50.156816 +AZURE,germanywestcentral,Standard_DC48ads_v6,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:45:48.466166 +AZURE,germanywestcentral,Standard_DC48as_v5,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:48.466910 +AZURE,germanywestcentral,Standard_DC48as_v5,reserved_1y,NA,1.996804,USD,Azure Retail Prices API,2025-12-18T04:45:50.157548 +AZURE,germanywestcentral,Standard_DC48as_v5,reserved_3y,NA,1.497603,USD,Azure Retail Prices API,2025-12-18T04:45:50.157551 +AZURE,germanywestcentral,Standard_DC48as_v5,spot,NA,0.470995,USD,Azure Retail Prices API,2025-12-18T04:45:48.467007 +AZURE,germanywestcentral,Standard_DC4ads_v5,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:45:48.465716 +AZURE,germanywestcentral,Standard_DC4ads_v5,reserved_1y,NA,0.2,USD,Azure Retail Prices API,2025-12-18T04:45:50.156365 +AZURE,germanywestcentral,Standard_DC4ads_v5,reserved_3y,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:45:50.156368 +AZURE,germanywestcentral,Standard_DC4ads_v5,spot,NA,0.047175,USD,Azure Retail Prices API,2025-12-18T04:45:48.467253 +AZURE,germanywestcentral,Standard_DC4ads_v6,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:45:48.467174 +AZURE,germanywestcentral,Standard_DC4ads_v6,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:45:50.157753 +AZURE,germanywestcentral,Standard_DC4ads_v6,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:45:50.157756 +AZURE,germanywestcentral,Standard_DC4ads_v6,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:45:48.465531 +AZURE,germanywestcentral,Standard_DC4as_v5,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:48.465846 +AZURE,germanywestcentral,Standard_DC4as_v5,reserved_1y,NA,0.166438,USD,Azure Retail Prices API,2025-12-18T04:45:50.156496 +AZURE,germanywestcentral,Standard_DC4as_v5,reserved_3y,NA,0.12481,USD,Azure Retail Prices API,2025-12-18T04:45:50.156499 +AZURE,germanywestcentral,Standard_DC4as_v5,spot,NA,0.03925,USD,Azure Retail Prices API,2025-12-18T04:45:48.466771 +AZURE,germanywestcentral,Standard_DC64ads_v5,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.466750 +AZURE,germanywestcentral,Standard_DC64ads_v5,reserved_1y,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:45:50.157409 +AZURE,germanywestcentral,Standard_DC64ads_v5,reserved_3y,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:45:50.157412 +AZURE,germanywestcentral,Standard_DC64ads_v5,spot,NA,0.7548,USD,Azure Retail Prices API,2025-12-18T04:45:48.465437 +AZURE,germanywestcentral,Standard_DC64ads_v6,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:45:48.465579 +AZURE,germanywestcentral,Standard_DC64ads_v6,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:45:50.156228 +AZURE,germanywestcentral,Standard_DC64ads_v6,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:45:50.156231 +AZURE,germanywestcentral,Standard_DC64ads_v6,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:45:48.466175 +AZURE,germanywestcentral,Standard_DC64as_v5,on_demand,NA,3.328,USD,Azure Retail Prices API,2025-12-18T04:45:48.466241 +AZURE,germanywestcentral,Standard_DC64as_v5,reserved_1y,NA,2.662443,USD,Azure Retail Prices API,2025-12-18T04:45:50.156893 +AZURE,germanywestcentral,Standard_DC64as_v5,reserved_3y,NA,1.996804,USD,Azure Retail Prices API,2025-12-18T04:45:50.156896 +AZURE,germanywestcentral,Standard_DC64as_v5,spot,NA,0.627994,USD,Azure Retail Prices API,2025-12-18T04:45:48.467197 +AZURE,germanywestcentral,Standard_DC8ads_v5,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:45:48.466527 +AZURE,germanywestcentral,Standard_DC8ads_v5,reserved_1y,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:45:50.157238 +AZURE,germanywestcentral,Standard_DC8ads_v5,reserved_3y,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:45:50.157241 +AZURE,germanywestcentral,Standard_DC8ads_v5,spot,NA,0.09435,USD,Azure Retail Prices API,2025-12-18T04:45:48.466941 +AZURE,germanywestcentral,Standard_DC8ads_v6,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:45:48.466014 +AZURE,germanywestcentral,Standard_DC8ads_v6,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:45:50.156669 +AZURE,germanywestcentral,Standard_DC8ads_v6,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:45:50.156672 +AZURE,germanywestcentral,Standard_DC8ads_v6,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:45:48.465944 +AZURE,germanywestcentral,Standard_DC8as_v5,on_demand,NA,0.416,USD,Azure Retail Prices API,2025-12-18T04:45:48.467087 +AZURE,germanywestcentral,Standard_DC8as_v5,reserved_1y,NA,0.332763,USD,Azure Retail Prices API,2025-12-18T04:45:50.157685 +AZURE,germanywestcentral,Standard_DC8as_v5,reserved_3y,NA,0.249581,USD,Azure Retail Prices API,2025-12-18T04:45:50.157688 +AZURE,germanywestcentral,Standard_DC8as_v5,spot,NA,0.078499,USD,Azure Retail Prices API,2025-12-18T04:45:48.465735 +AZURE,germanywestcentral,Standard_DC96ads_v5,on_demand,NA,6.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.466642 +AZURE,germanywestcentral,Standard_DC96ads_v5,reserved_1y,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:45:50.157290 +AZURE,germanywestcentral,Standard_DC96ads_v5,reserved_3y,NA,3.6,USD,Azure Retail Prices API,2025-12-18T04:45:50.157293 +AZURE,germanywestcentral,Standard_DC96ads_v5,spot,NA,1.1322,USD,Azure Retail Prices API,2025-12-18T04:45:48.467229 +AZURE,germanywestcentral,Standard_DC96ads_v6,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:45:48.466518 +AZURE,germanywestcentral,Standard_DC96ads_v6,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:45:50.157225 +AZURE,germanywestcentral,Standard_DC96ads_v6,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:45:50.157228 +AZURE,germanywestcentral,Standard_DC96ads_v6,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:45:48.466575 +AZURE,germanywestcentral,Standard_DC96as_v5,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:45:48.466929 +AZURE,germanywestcentral,Standard_DC96as_v5,reserved_1y,NA,3.993607,USD,Azure Retail Prices API,2025-12-18T04:45:50.157571 +AZURE,germanywestcentral,Standard_DC96as_v5,reserved_3y,NA,2.995205,USD,Azure Retail Prices API,2025-12-18T04:45:50.157573 +AZURE,germanywestcentral,Standard_DC96as_v5,spot,NA,0.94199,USD,Azure Retail Prices API,2025-12-18T04:45:48.465601 +AZURE,germanywestcentral,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495345 +AZURE,germanywestcentral,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495353 +AZURE,germanywestcentral,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495357 +AZURE,germanywestcentral,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495349 +AZURE,germanywestcentral,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496224 +AZURE,germanywestcentral,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496232 +AZURE,germanywestcentral,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496236 +AZURE,germanywestcentral,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496228 +AZURE,germanywestcentral,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496981 +AZURE,germanywestcentral,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496989 +AZURE,germanywestcentral,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496994 +AZURE,germanywestcentral,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496985 +AZURE,germanywestcentral,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497865 +AZURE,germanywestcentral,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497873 +AZURE,germanywestcentral,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497878 +AZURE,germanywestcentral,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497869 +AZURE,germanywestcentral,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491695 +AZURE,germanywestcentral,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491704 +AZURE,germanywestcentral,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491708 +AZURE,germanywestcentral,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491699 +AZURE,germanywestcentral,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492442 +AZURE,germanywestcentral,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492450 +AZURE,germanywestcentral,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492454 +AZURE,germanywestcentral,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492446 +AZURE,germanywestcentral,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493165 +AZURE,germanywestcentral,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493173 +AZURE,germanywestcentral,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493177 +AZURE,germanywestcentral,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493169 +AZURE,germanywestcentral,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493877 +AZURE,germanywestcentral,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493885 +AZURE,germanywestcentral,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493889 +AZURE,germanywestcentral,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493881 +AZURE,germanywestcentral,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494590 +AZURE,germanywestcentral,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494598 +AZURE,germanywestcentral,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494602 +AZURE,germanywestcentral,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494594 +AZURE,germanywestcentral,Standard_E128ds_v6,on_demand,NA,12.625,USD,Azure Retail Prices API,2025-12-18T04:45:48.465628 +AZURE,germanywestcentral,Standard_E128ds_v6,reserved_1y,NA,7.827283,USD,Azure Retail Prices API,2025-12-18T04:45:50.156268 +AZURE,germanywestcentral,Standard_E128ds_v6,reserved_3y,NA,4.923592,USD,Azure Retail Prices API,2025-12-18T04:45:50.156271 +AZURE,germanywestcentral,Standard_E128ds_v6,spot,NA,2.3331,USD,Azure Retail Prices API,2025-12-18T04:45:48.466158 +AZURE,germanywestcentral,Standard_E16_v3,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:48.466675 +AZURE,germanywestcentral,Standard_E16_v3,reserved_1y,NA,0.715068,USD,Azure Retail Prices API,2025-12-18T04:45:50.157324 +AZURE,germanywestcentral,Standard_E16_v3,reserved_3y,NA,0.480137,USD,Azure Retail Prices API,2025-12-18T04:45:50.157327 +AZURE,germanywestcentral,Standard_E16_v3,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:45:48.466600 +AZURE,germanywestcentral,Standard_E16a_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:48.465745 +AZURE,germanywestcentral,Standard_E16a_v4,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:45:50.156407 +AZURE,germanywestcentral,Standard_E16a_v4,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:45:50.156412 +AZURE,germanywestcentral,Standard_E16a_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:45:48.465907 +AZURE,germanywestcentral,Standard_E16ads_v5,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:45:48.466503 +AZURE,germanywestcentral,Standard_E16ads_v5,reserved_1y,NA,0.745776,USD,Azure Retail Prices API,2025-12-18T04:45:50.157197 +AZURE,germanywestcentral,Standard_E16ads_v5,reserved_3y,NA,0.480327,USD,Azure Retail Prices API,2025-12-18T04:45:50.157200 +AZURE,germanywestcentral,Standard_E16ads_v5,spot,NA,0.233587,USD,Azure Retail Prices API,2025-12-18T04:45:48.466763 +AZURE,germanywestcentral,Standard_E16ads_v6,on_demand,NA,1.403,USD,Azure Retail Prices API,2025-12-18T04:45:48.466002 +AZURE,germanywestcentral,Standard_E16ads_v6,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:45:50.156647 +AZURE,germanywestcentral,Standard_E16ads_v6,reserved_3y,NA,0.533219,USD,Azure Retail Prices API,2025-12-18T04:45:50.156653 +AZURE,germanywestcentral,Standard_E16ads_v6,spot,NA,0.259274,USD,Azure Retail Prices API,2025-12-18T04:45:48.466155 +AZURE,germanywestcentral,Standard_E16as_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:48.465887 +AZURE,germanywestcentral,Standard_E16as_v4,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:45:50.156540 +AZURE,germanywestcentral,Standard_E16as_v4,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:45:50.156543 +AZURE,germanywestcentral,Standard_E16as_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:45:48.467022 +AZURE,germanywestcentral,Standard_E16as_v5,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:45:48.466464 +AZURE,germanywestcentral,Standard_E16as_v5,reserved_1y,NA,0.646689,USD,Azure Retail Prices API,2025-12-18T04:45:50.157132 +AZURE,germanywestcentral,Standard_E16as_v5,reserved_3y,NA,0.416476,USD,Azure Retail Prices API,2025-12-18T04:45:50.157135 +AZURE,germanywestcentral,Standard_E16as_v5,spot,NA,0.202541,USD,Azure Retail Prices API,2025-12-18T04:45:48.466935 +AZURE,germanywestcentral,Standard_E16d_v4,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:45:48.465454 +AZURE,germanywestcentral,Standard_E16d_v4,reserved_1y,NA,0.813813,USD,Azure Retail Prices API,2025-12-18T04:45:50.156129 +AZURE,germanywestcentral,Standard_E16d_v4,reserved_3y,NA,0.520396,USD,Azure Retail Prices API,2025-12-18T04:45:50.156132 +AZURE,germanywestcentral,Standard_E16d_v4,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:45:48.466274 +AZURE,germanywestcentral,Standard_E16ds_v4,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:45:48.466690 +AZURE,germanywestcentral,Standard_E16ds_v4,reserved_1y,NA,0.813813,USD,Azure Retail Prices API,2025-12-18T04:45:50.157347 +AZURE,germanywestcentral,Standard_E16ds_v4,reserved_3y,NA,0.520396,USD,Azure Retail Prices API,2025-12-18T04:45:50.157350 +AZURE,germanywestcentral,Standard_E16ds_v4,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:45:48.466253 +AZURE,germanywestcentral,Standard_E16ds_v5,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:45:48.466117 +AZURE,germanywestcentral,Standard_E16ds_v5,reserved_1y,NA,0.816553,USD,Azure Retail Prices API,2025-12-18T04:45:50.156750 +AZURE,germanywestcentral,Standard_E16ds_v5,reserved_3y,NA,0.525913,USD,Azure Retail Prices API,2025-12-18T04:45:50.156753 +AZURE,germanywestcentral,Standard_E16ds_v5,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:45:48.466765 +AZURE,germanywestcentral,Standard_E16ds_v6,on_demand,NA,1.578,USD,Azure Retail Prices API,2025-12-18T04:45:48.465506 +AZURE,germanywestcentral,Standard_E16ds_v6,reserved_1y,NA,0.978425,USD,Azure Retail Prices API,2025-12-18T04:45:50.156185 +AZURE,germanywestcentral,Standard_E16ds_v6,reserved_3y,NA,0.615449,USD,Azure Retail Prices API,2025-12-18T04:45:50.156188 +AZURE,germanywestcentral,Standard_E16ds_v6,spot,NA,0.291614,USD,Azure Retail Prices API,2025-12-18T04:45:48.466887 +AZURE,germanywestcentral,Standard_E16pds_v6,on_demand,NA,1.118,USD,Azure Retail Prices API,2025-12-18T04:45:48.465923 +AZURE,germanywestcentral,Standard_E16pds_v6,reserved_1y,NA,0.659817,USD,Azure Retail Prices API,2025-12-18T04:45:50.156579 +AZURE,germanywestcentral,Standard_E16pds_v6,reserved_3y,NA,0.425,USD,Azure Retail Prices API,2025-12-18T04:45:50.156582 +AZURE,germanywestcentral,Standard_E16pds_v6,spot,NA,0.206606,USD,Azure Retail Prices API,2025-12-18T04:45:48.466917 +AZURE,germanywestcentral,Standard_E16ps_v6,on_demand,NA,0.882,USD,Azure Retail Prices API,2025-12-18T04:45:48.466943 +AZURE,germanywestcentral,Standard_E16ps_v6,reserved_1y,NA,0.520091,USD,Azure Retail Prices API,2025-12-18T04:45:50.157576 +AZURE,germanywestcentral,Standard_E16ps_v6,reserved_3y,NA,0.335008,USD,Azure Retail Prices API,2025-12-18T04:45:50.157579 +AZURE,germanywestcentral,Standard_E16ps_v6,spot,NA,0.162994,USD,Azure Retail Prices API,2025-12-18T04:45:48.465681 +AZURE,germanywestcentral,Standard_E16s_v3,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:48.466705 +AZURE,germanywestcentral,Standard_E16s_v3,reserved_1y,NA,0.715068,USD,Azure Retail Prices API,2025-12-18T04:45:50.157364 +AZURE,germanywestcentral,Standard_E16s_v3,reserved_3y,NA,0.480137,USD,Azure Retail Prices API,2025-12-18T04:45:50.157367 +AZURE,germanywestcentral,Standard_E16s_v3,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:45:48.466300 +AZURE,germanywestcentral,Standard_E16s_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:48.466108 +AZURE,germanywestcentral,Standard_E16s_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:45:50.156744 +AZURE,germanywestcentral,Standard_E16s_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:45:50.156747 +AZURE,germanywestcentral,Standard_E16s_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:45:48.465559 +AZURE,germanywestcentral,Standard_E16s_v5,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:48.466128 +AZURE,germanywestcentral,Standard_E16s_v5,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:45:50.156767 +AZURE,germanywestcentral,Standard_E16s_v5,reserved_3y,NA,0.449924,USD,Azure Retail Prices API,2025-12-18T04:45:50.156770 +AZURE,germanywestcentral,Standard_E16s_v5,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:45:48.466322 +AZURE,germanywestcentral,Standard_E20a_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:48.466325 +AZURE,germanywestcentral,Standard_E20a_v4,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:45:50.156956 +AZURE,germanywestcentral,Standard_E20a_v4,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:45:50.156959 +AZURE,germanywestcentral,Standard_E20a_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:45:48.465515 +AZURE,germanywestcentral,Standard_E20ads_v5,on_demand,NA,1.58,USD,Azure Retail Prices API,2025-12-18T04:45:48.465776 +AZURE,germanywestcentral,Standard_E20ads_v5,reserved_1y,NA,0.932192,USD,Azure Retail Prices API,2025-12-18T04:45:50.156434 +AZURE,germanywestcentral,Standard_E20ads_v5,reserved_3y,NA,0.600419,USD,Azure Retail Prices API,2025-12-18T04:45:50.156437 +AZURE,germanywestcentral,Standard_E20ads_v5,spot,NA,0.291984,USD,Azure Retail Prices API,2025-12-18T04:45:48.465786 +AZURE,germanywestcentral,Standard_E20ads_v6,on_demand,NA,1.754,USD,Azure Retail Prices API,2025-12-18T04:45:48.465657 +AZURE,germanywestcentral,Standard_E20ads_v6,reserved_1y,NA,1.034817,USD,Azure Retail Prices API,2025-12-18T04:45:50.156303 +AZURE,germanywestcentral,Standard_E20ads_v6,reserved_3y,NA,0.666514,USD,Azure Retail Prices API,2025-12-18T04:45:50.156305 +AZURE,germanywestcentral,Standard_E20ads_v6,spot,NA,0.324139,USD,Azure Retail Prices API,2025-12-18T04:45:48.467025 +AZURE,germanywestcentral,Standard_E20as_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:48.466161 +AZURE,germanywestcentral,Standard_E20as_v4,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:45:50.156802 +AZURE,germanywestcentral,Standard_E20as_v4,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:45:50.156805 +AZURE,germanywestcentral,Standard_E20as_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:45:48.466533 +AZURE,germanywestcentral,Standard_E20as_v5,on_demand,NA,2.29,USD,Azure Retail Prices API,2025-12-18T04:45:48.466304 +AZURE,germanywestcentral,Standard_E20as_v5,reserved_1y,NA,0.808333,USD,Azure Retail Prices API,2025-12-18T04:45:50.157658 +AZURE,germanywestcentral,Standard_E20as_v5,reserved_3y,NA,0.520586,USD,Azure Retail Prices API,2025-12-18T04:45:50.157661 +AZURE,germanywestcentral,Standard_E20as_v5,spot,NA,0.253176,USD,Azure Retail Prices API,2025-12-18T04:45:48.466277 +AZURE,germanywestcentral,Standard_E20d_v4,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:45:48.466183 +AZURE,germanywestcentral,Standard_E20d_v4,reserved_1y,NA,1.017123,USD,Azure Retail Prices API,2025-12-18T04:45:50.156824 +AZURE,germanywestcentral,Standard_E20d_v4,reserved_3y,NA,0.650495,USD,Azure Retail Prices API,2025-12-18T04:45:50.156827 +AZURE,germanywestcentral,Standard_E20d_v4,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:45:48.466637 +AZURE,germanywestcentral,Standard_E20ds_v4,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:45:48.465878 +AZURE,germanywestcentral,Standard_E20ds_v4,reserved_1y,NA,1.017123,USD,Azure Retail Prices API,2025-12-18T04:45:50.156530 +AZURE,germanywestcentral,Standard_E20ds_v4,reserved_3y,NA,0.650495,USD,Azure Retail Prices API,2025-12-18T04:45:50.156532 +AZURE,germanywestcentral,Standard_E20ds_v4,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:45:48.466087 +AZURE,germanywestcentral,Standard_E20ds_v5,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:45:48.466447 +AZURE,germanywestcentral,Standard_E20ds_v5,reserved_1y,NA,1.020662,USD,Azure Retail Prices API,2025-12-18T04:45:50.157101 +AZURE,germanywestcentral,Standard_E20ds_v5,reserved_3y,NA,0.657382,USD,Azure Retail Prices API,2025-12-18T04:45:50.157104 +AZURE,germanywestcentral,Standard_E20ds_v5,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:45:48.466066 +AZURE,germanywestcentral,Standard_E20ds_v6,on_demand,NA,1.973,USD,Azure Retail Prices API,2025-12-18T04:45:48.466482 +AZURE,germanywestcentral,Standard_E20ds_v6,reserved_1y,NA,1.223059,USD,Azure Retail Prices API,2025-12-18T04:45:50.157156 +AZURE,germanywestcentral,Standard_E20ds_v6,reserved_3y,NA,0.76933,USD,Azure Retail Prices API,2025-12-18T04:45:50.157159 +AZURE,germanywestcentral,Standard_E20ds_v6,spot,NA,0.36461,USD,Azure Retail Prices API,2025-12-18T04:45:48.466488 +AZURE,germanywestcentral,Standard_E20s_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:48.466350 +AZURE,germanywestcentral,Standard_E20s_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:45:50.156986 +AZURE,germanywestcentral,Standard_E20s_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:45:50.156989 +AZURE,germanywestcentral,Standard_E20s_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:45:48.466189 +AZURE,germanywestcentral,Standard_E20s_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:48.465807 +AZURE,germanywestcentral,Standard_E20s_v5,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:45:50.156462 +AZURE,germanywestcentral,Standard_E20s_v5,reserved_3y,NA,0.562405,USD,Azure Retail Prices API,2025-12-18T04:45:50.156465 +AZURE,germanywestcentral,Standard_E20s_v5,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:45:48.467191 +AZURE,germanywestcentral,Standard_E2_v3,on_demand,NA,0.152,USD,Azure Retail Prices API,2025-12-18T04:45:48.466209 +AZURE,germanywestcentral,Standard_E2_v3,reserved_1y,NA,0.089384,USD,Azure Retail Prices API,2025-12-18T04:45:50.156847 +AZURE,germanywestcentral,Standard_E2_v3,reserved_3y,NA,0.060008,USD,Azure Retail Prices API,2025-12-18T04:45:50.156850 +AZURE,germanywestcentral,Standard_E2_v3,spot,NA,0.02809,USD,Azure Retail Prices API,2025-12-18T04:45:48.467117 +AZURE,germanywestcentral,Standard_E2ads_v6,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:45:48.466389 +AZURE,germanywestcentral,Standard_E2ads_v6,reserved_1y,NA,0.103539,USD,Azure Retail Prices API,2025-12-18T04:45:50.157026 +AZURE,germanywestcentral,Standard_E2ads_v6,reserved_3y,NA,0.066667,USD,Azure Retail Prices API,2025-12-18T04:45:50.157029 +AZURE,germanywestcentral,Standard_E2ads_v6,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:45:48.466365 +AZURE,germanywestcentral,Standard_E2ds_v5,on_demand,NA,0.173,USD,Azure Retail Prices API,2025-12-18T04:45:48.466239 +AZURE,germanywestcentral,Standard_E2ds_v5,reserved_1y,NA,0.102055,USD,Azure Retail Prices API,2025-12-18T04:45:50.156887 +AZURE,germanywestcentral,Standard_E2ds_v5,reserved_3y,NA,0.065753,USD,Azure Retail Prices API,2025-12-18T04:45:50.156890 +AZURE,germanywestcentral,Standard_E2ds_v5,spot,NA,0.03197,USD,Azure Retail Prices API,2025-12-18T04:45:48.467215 +AZURE,germanywestcentral,Standard_E2ds_v6,on_demand,NA,0.197,USD,Azure Retail Prices API,2025-12-18T04:45:48.466687 +AZURE,germanywestcentral,Standard_E2ds_v6,reserved_1y,NA,0.12226,USD,Azure Retail Prices API,2025-12-18T04:45:50.157341 +AZURE,germanywestcentral,Standard_E2ds_v6,reserved_3y,NA,0.076941,USD,Azure Retail Prices API,2025-12-18T04:45:50.157343 +AZURE,germanywestcentral,Standard_E2ds_v6,spot,NA,0.036406,USD,Azure Retail Prices API,2025-12-18T04:45:48.465829 +AZURE,germanywestcentral,Standard_E2pds_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:45:48.465813 +AZURE,germanywestcentral,Standard_E2pds_v6,reserved_1y,NA,0.082534,USD,Azure Retail Prices API,2025-12-18T04:45:50.156474 +AZURE,germanywestcentral,Standard_E2pds_v6,reserved_3y,NA,0.05312,USD,Azure Retail Prices API,2025-12-18T04:45:50.156477 +AZURE,germanywestcentral,Standard_E2pds_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:45:48.465853 +AZURE,germanywestcentral,Standard_E32_v3,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:48.466904 +AZURE,germanywestcentral,Standard_E32_v3,reserved_1y,NA,1.430251,USD,Azure Retail Prices API,2025-12-18T04:45:50.157537 +AZURE,germanywestcentral,Standard_E32_v3,reserved_3y,NA,0.960274,USD,Azure Retail Prices API,2025-12-18T04:45:50.157540 +AZURE,germanywestcentral,Standard_E32_v3,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:45:48.466756 +AZURE,germanywestcentral,Standard_E32a_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:48.465897 +AZURE,germanywestcentral,Standard_E32a_v4,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:45:50.156546 +AZURE,germanywestcentral,Standard_E32a_v4,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:45:50.156549 +AZURE,germanywestcentral,Standard_E32a_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:45:48.465993 +AZURE,germanywestcentral,Standard_E32ads_v5,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.466032 +AZURE,germanywestcentral,Standard_E32ads_v5,reserved_1y,NA,1.491553,USD,Azure Retail Prices API,2025-12-18T04:45:50.156916 +AZURE,germanywestcentral,Standard_E32ads_v5,reserved_3y,NA,0.960654,USD,Azure Retail Prices API,2025-12-18T04:45:50.156918 +AZURE,germanywestcentral,Standard_E32ads_v5,spot,NA,0.467174,USD,Azure Retail Prices API,2025-12-18T04:45:48.465521 +AZURE,germanywestcentral,Standard_E32ads_v6,on_demand,NA,2.806,USD,Azure Retail Prices API,2025-12-18T04:45:48.467097 +AZURE,germanywestcentral,Standard_E32ads_v6,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:45:50.157696 +AZURE,germanywestcentral,Standard_E32ads_v6,reserved_3y,NA,1.066438,USD,Azure Retail Prices API,2025-12-18T04:45:50.157699 +AZURE,germanywestcentral,Standard_E32ads_v6,spot,NA,0.518549,USD,Azure Retail Prices API,2025-12-18T04:45:48.466114 +AZURE,germanywestcentral,Standard_E32as_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:48.466973 +AZURE,germanywestcentral,Standard_E32as_v4,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:45:50.157621 +AZURE,germanywestcentral,Standard_E32as_v4,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:45:50.157623 +AZURE,germanywestcentral,Standard_E32as_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:45:48.465654 +AZURE,germanywestcentral,Standard_E32as_v5,on_demand,NA,2.192,USD,Azure Retail Prices API,2025-12-18T04:45:48.465458 +AZURE,germanywestcentral,Standard_E32as_v5,reserved_1y,NA,1.293265,USD,Azure Retail Prices API,2025-12-18T04:45:50.156135 +AZURE,germanywestcentral,Standard_E32as_v5,reserved_3y,NA,0.832953,USD,Azure Retail Prices API,2025-12-18T04:45:50.156138 +AZURE,germanywestcentral,Standard_E32as_v5,spot,NA,0.405082,USD,Azure Retail Prices API,2025-12-18T04:45:48.466597 +AZURE,germanywestcentral,Standard_E32d_v4,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:45:48.466896 +AZURE,germanywestcentral,Standard_E32d_v4,reserved_1y,NA,1.627626,USD,Azure Retail Prices API,2025-12-18T04:45:50.157520 +AZURE,germanywestcentral,Standard_E32d_v4,reserved_3y,NA,1.040753,USD,Azure Retail Prices API,2025-12-18T04:45:50.157523 +AZURE,germanywestcentral,Standard_E32d_v4,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:45:48.467046 +AZURE,germanywestcentral,Standard_E32ds_v4,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:45:48.466530 +AZURE,germanywestcentral,Standard_E32ds_v4,reserved_1y,NA,1.627626,USD,Azure Retail Prices API,2025-12-18T04:45:50.157244 +AZURE,germanywestcentral,Standard_E32ds_v4,reserved_3y,NA,1.040753,USD,Azure Retail Prices API,2025-12-18T04:45:50.157246 +AZURE,germanywestcentral,Standard_E32ds_v4,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:45:48.466081 +AZURE,germanywestcentral,Standard_E32ds_v5,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:45:48.467019 +AZURE,germanywestcentral,Standard_E32ds_v5,reserved_1y,NA,1.633105,USD,Azure Retail Prices API,2025-12-18T04:45:50.157647 +AZURE,germanywestcentral,Standard_E32ds_v5,reserved_3y,NA,1.051826,USD,Azure Retail Prices API,2025-12-18T04:45:50.157650 +AZURE,germanywestcentral,Standard_E32ds_v5,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:45:48.466294 +AZURE,germanywestcentral,Standard_E32ds_v6,on_demand,NA,3.156,USD,Azure Retail Prices API,2025-12-18T04:45:48.467243 +AZURE,germanywestcentral,Standard_E32ds_v6,reserved_1y,NA,1.956849,USD,Azure Retail Prices API,2025-12-18T04:45:50.157805 +AZURE,germanywestcentral,Standard_E32ds_v6,reserved_3y,NA,1.230898,USD,Azure Retail Prices API,2025-12-18T04:45:50.157808 +AZURE,germanywestcentral,Standard_E32ds_v6,spot,NA,0.583229,USD,Azure Retail Prices API,2025-12-18T04:45:48.466020 +AZURE,germanywestcentral,Standard_E32pds_v6,on_demand,NA,2.237,USD,Azure Retail Prices API,2025-12-18T04:45:48.465538 +AZURE,germanywestcentral,Standard_E32pds_v6,reserved_1y,NA,1.319749,USD,Azure Retail Prices API,2025-12-18T04:45:50.156204 +AZURE,germanywestcentral,Standard_E32pds_v6,reserved_3y,NA,0.85,USD,Azure Retail Prices API,2025-12-18T04:45:50.156208 +AZURE,germanywestcentral,Standard_E32pds_v6,spot,NA,0.413398,USD,Azure Retail Prices API,2025-12-18T04:45:48.467142 +AZURE,germanywestcentral,Standard_E32ps_v6,on_demand,NA,1.763,USD,Azure Retail Prices API,2025-12-18T04:45:48.466398 +AZURE,germanywestcentral,Standard_E32ps_v6,reserved_1y,NA,1.040297,USD,Azure Retail Prices API,2025-12-18T04:45:50.157037 +AZURE,germanywestcentral,Standard_E32ps_v6,reserved_3y,NA,0.670015,USD,Azure Retail Prices API,2025-12-18T04:45:50.157040 +AZURE,germanywestcentral,Standard_E32ps_v6,spot,NA,0.325802,USD,Azure Retail Prices API,2025-12-18T04:45:48.466594 +AZURE,germanywestcentral,Standard_E32s_v3,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:48.466479 +AZURE,germanywestcentral,Standard_E32s_v3,reserved_1y,NA,1.430251,USD,Azure Retail Prices API,2025-12-18T04:45:50.157151 +AZURE,germanywestcentral,Standard_E32s_v3,reserved_3y,NA,0.960274,USD,Azure Retail Prices API,2025-12-18T04:45:50.157154 +AZURE,germanywestcentral,Standard_E32s_v3,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:45:48.465434 +AZURE,germanywestcentral,Standard_E32s_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:48.466418 +AZURE,germanywestcentral,Standard_E32s_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:45:50.157072 +AZURE,germanywestcentral,Standard_E32s_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:45:50.157075 +AZURE,germanywestcentral,Standard_E32s_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:45:48.467259 +AZURE,germanywestcentral,Standard_E32s_v5,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:48.465644 +AZURE,germanywestcentral,Standard_E32s_v5,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:45:50.156292 +AZURE,germanywestcentral,Standard_E32s_v5,reserved_3y,NA,0.899848,USD,Azure Retail Prices API,2025-12-18T04:45:50.156294 +AZURE,germanywestcentral,Standard_E32s_v5,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:45:48.467204 +AZURE,germanywestcentral,Standard_E48a_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:48.466554 +AZURE,germanywestcentral,Standard_E48a_v4,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:50.157249 +AZURE,germanywestcentral,Standard_E48a_v4,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:50.157252 +AZURE,germanywestcentral,Standard_E48a_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:45:48.466206 +AZURE,germanywestcentral,Standard_E48ads_v5,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:45:48.465399 +AZURE,germanywestcentral,Standard_E48ads_v5,reserved_1y,NA,2.237329,USD,Azure Retail Prices API,2025-12-18T04:45:50.156070 +AZURE,germanywestcentral,Standard_E48ads_v5,reserved_3y,NA,1.440944,USD,Azure Retail Prices API,2025-12-18T04:45:50.156083 +AZURE,germanywestcentral,Standard_E48ads_v5,spot,NA,0.700762,USD,Azure Retail Prices API,2025-12-18T04:45:48.466458 +AZURE,germanywestcentral,Standard_E48ads_v6,on_demand,NA,4.21,USD,Azure Retail Prices API,2025-12-18T04:45:48.465441 +AZURE,germanywestcentral,Standard_E48ads_v6,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:45:50.156110 +AZURE,germanywestcentral,Standard_E48ads_v6,reserved_3y,NA,1.599658,USD,Azure Retail Prices API,2025-12-18T04:45:50.156116 +AZURE,germanywestcentral,Standard_E48ads_v6,spot,NA,0.778008,USD,Azure Retail Prices API,2025-12-18T04:45:48.466371 +AZURE,germanywestcentral,Standard_E48as_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:48.466923 +AZURE,germanywestcentral,Standard_E48as_v4,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:50.157559 +AZURE,germanywestcentral,Standard_E48as_v4,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:50.157562 +AZURE,germanywestcentral,Standard_E48as_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:45:48.465956 +AZURE,germanywestcentral,Standard_E48as_v5,on_demand,NA,3.288,USD,Azure Retail Prices API,2025-12-18T04:45:48.466026 +AZURE,germanywestcentral,Standard_E48as_v5,reserved_1y,NA,1.939954,USD,Azure Retail Prices API,2025-12-18T04:45:50.156675 +AZURE,germanywestcentral,Standard_E48as_v5,reserved_3y,NA,1.249429,USD,Azure Retail Prices API,2025-12-18T04:45:50.156679 +AZURE,germanywestcentral,Standard_E48as_v5,spot,NA,0.607622,USD,Azure Retail Prices API,2025-12-18T04:45:48.467154 +AZURE,germanywestcentral,Standard_E48d_v4,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:45:48.466669 +AZURE,germanywestcentral,Standard_E48d_v4,reserved_1y,NA,2.441324,USD,Azure Retail Prices API,2025-12-18T04:45:50.157319 +AZURE,germanywestcentral,Standard_E48d_v4,reserved_3y,NA,1.561149,USD,Azure Retail Prices API,2025-12-18T04:45:50.157321 +AZURE,germanywestcentral,Standard_E48d_v4,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:45:48.466658 +AZURE,germanywestcentral,Standard_E48ds_v4,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:45:48.466852 +AZURE,germanywestcentral,Standard_E48ds_v4,reserved_1y,NA,2.441324,USD,Azure Retail Prices API,2025-12-18T04:45:50.157458 +AZURE,germanywestcentral,Standard_E48ds_v4,reserved_3y,NA,1.561149,USD,Azure Retail Prices API,2025-12-18T04:45:50.157461 +AZURE,germanywestcentral,Standard_E48ds_v4,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:45:48.466430 +AZURE,germanywestcentral,Standard_E48ds_v5,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:45:48.466968 +AZURE,germanywestcentral,Standard_E48ds_v5,reserved_1y,NA,2.449658,USD,Azure Retail Prices API,2025-12-18T04:45:50.157610 +AZURE,germanywestcentral,Standard_E48ds_v5,reserved_3y,NA,1.577778,USD,Azure Retail Prices API,2025-12-18T04:45:50.157612 +AZURE,germanywestcentral,Standard_E48ds_v5,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:45:48.466268 +AZURE,germanywestcentral,Standard_E48ds_v6,on_demand,NA,4.734,USD,Azure Retail Prices API,2025-12-18T04:45:48.466374 +AZURE,germanywestcentral,Standard_E48ds_v6,reserved_1y,NA,2.935274,USD,Azure Retail Prices API,2025-12-18T04:45:50.157014 +AZURE,germanywestcentral,Standard_E48ds_v6,reserved_3y,NA,1.846347,USD,Azure Retail Prices API,2025-12-18T04:45:50.157018 +AZURE,germanywestcentral,Standard_E48ds_v6,spot,NA,0.874843,USD,Azure Retail Prices API,2025-12-18T04:45:48.465798 +AZURE,germanywestcentral,Standard_E48pds_v6,on_demand,NA,3.355,USD,Azure Retail Prices API,2025-12-18T04:45:48.466212 +AZURE,germanywestcentral,Standard_E48pds_v6,reserved_1y,NA,1.979566,USD,Azure Retail Prices API,2025-12-18T04:45:50.156853 +AZURE,germanywestcentral,Standard_E48pds_v6,reserved_3y,NA,1.274962,USD,Azure Retail Prices API,2025-12-18T04:45:50.156856 +AZURE,germanywestcentral,Standard_E48pds_v6,spot,NA,0.620004,USD,Azure Retail Prices API,2025-12-18T04:45:48.466717 +AZURE,germanywestcentral,Standard_E48ps_v6,on_demand,NA,2.645,USD,Azure Retail Prices API,2025-12-18T04:45:48.467038 +AZURE,germanywestcentral,Standard_E48ps_v6,reserved_1y,NA,1.560388,USD,Azure Retail Prices API,2025-12-18T04:45:50.157653 +AZURE,germanywestcentral,Standard_E48ps_v6,reserved_3y,NA,1.005023,USD,Azure Retail Prices API,2025-12-18T04:45:50.157656 +AZURE,germanywestcentral,Standard_E48ps_v6,spot,NA,0.488796,USD,Azure Retail Prices API,2025-12-18T04:45:48.466359 +AZURE,germanywestcentral,Standard_E48s_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:48.466400 +AZURE,germanywestcentral,Standard_E48s_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:45:50.157043 +AZURE,germanywestcentral,Standard_E48s_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:45:50.157046 +AZURE,germanywestcentral,Standard_E48s_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:45:48.466244 +AZURE,germanywestcentral,Standard_E48s_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:48.465687 +AZURE,germanywestcentral,Standard_E48s_v5,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:50.156325 +AZURE,germanywestcentral,Standard_E48s_v5,reserved_3y,NA,1.349772,USD,Azure Retail Prices API,2025-12-18T04:45:50.156327 +AZURE,germanywestcentral,Standard_E48s_v5,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:45:48.466855 +AZURE,germanywestcentral,Standard_E4_v3,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:48.466878 +AZURE,germanywestcentral,Standard_E4_v3,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:45:50.157504 +AZURE,germanywestcentral,Standard_E4_v3,reserved_3y,NA,0.120015,USD,Azure Retail Prices API,2025-12-18T04:45:50.157507 +AZURE,germanywestcentral,Standard_E4_v3,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:45:48.467148 +AZURE,germanywestcentral,Standard_E4a_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:48.466812 +AZURE,germanywestcentral,Standard_E4a_v4,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:45:50.157442 +AZURE,germanywestcentral,Standard_E4a_v4,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:45:50.157445 +AZURE,germanywestcentral,Standard_E4a_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:45:48.467058 +AZURE,germanywestcentral,Standard_E4ads_v5,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:45:48.465967 +AZURE,germanywestcentral,Standard_E4ads_v5,reserved_1y,NA,0.186416,USD,Azure Retail Prices API,2025-12-18T04:45:50.156607 +AZURE,germanywestcentral,Standard_E4ads_v5,reserved_3y,NA,0.120091,USD,Azure Retail Prices API,2025-12-18T04:45:50.156609 +AZURE,germanywestcentral,Standard_E4ads_v5,spot,NA,0.058397,USD,Azure Retail Prices API,2025-12-18T04:45:48.465696 +AZURE,germanywestcentral,Standard_E4ads_v6,on_demand,NA,0.351,USD,Azure Retail Prices API,2025-12-18T04:45:48.466008 +AZURE,germanywestcentral,Standard_E4ads_v6,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:45:50.156658 +AZURE,germanywestcentral,Standard_E4ads_v6,reserved_3y,NA,0.133295,USD,Azure Retail Prices API,2025-12-18T04:45:50.156661 +AZURE,germanywestcentral,Standard_E4ads_v6,spot,NA,0.064865,USD,Azure Retail Prices API,2025-12-18T04:45:48.465618 +AZURE,germanywestcentral,Standard_E4as_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:48.466146 +AZURE,germanywestcentral,Standard_E4as_v4,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:45:50.156791 +AZURE,germanywestcentral,Standard_E4as_v4,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:45:50.156794 +AZURE,germanywestcentral,Standard_E4as_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:45:48.465490 +AZURE,germanywestcentral,Standard_E4as_v5,on_demand,NA,0.458,USD,Azure Retail Prices API,2025-12-18T04:45:48.465461 +AZURE,germanywestcentral,Standard_E4as_v5,reserved_1y,NA,0.161644,USD,Azure Retail Prices API,2025-12-18T04:45:50.157531 +AZURE,germanywestcentral,Standard_E4as_v5,reserved_3y,NA,0.10411,USD,Azure Retail Prices API,2025-12-18T04:45:50.157534 +AZURE,germanywestcentral,Standard_E4as_v5,spot,NA,0.050635,USD,Azure Retail Prices API,2025-12-18T04:45:48.466073 +AZURE,germanywestcentral,Standard_E4d_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:48.466823 +AZURE,germanywestcentral,Standard_E4d_v4,reserved_1y,NA,0.203425,USD,Azure Retail Prices API,2025-12-18T04:45:50.157453 +AZURE,germanywestcentral,Standard_E4d_v4,reserved_3y,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:45:50.157456 +AZURE,germanywestcentral,Standard_E4d_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:48.466962 +AZURE,germanywestcentral,Standard_E4ds_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:48.466180 +AZURE,germanywestcentral,Standard_E4ds_v4,reserved_1y,NA,0.203425,USD,Azure Retail Prices API,2025-12-18T04:45:50.156818 +AZURE,germanywestcentral,Standard_E4ds_v4,reserved_3y,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:45:50.156821 +AZURE,germanywestcentral,Standard_E4ds_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:48.467028 +AZURE,germanywestcentral,Standard_E4ds_v5,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:48.465970 +AZURE,germanywestcentral,Standard_E4ds_v5,reserved_1y,NA,0.20411,USD,Azure Retail Prices API,2025-12-18T04:45:50.156612 +AZURE,germanywestcentral,Standard_E4ds_v5,reserved_3y,NA,0.131469,USD,Azure Retail Prices API,2025-12-18T04:45:50.156615 +AZURE,germanywestcentral,Standard_E4ds_v5,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:48.465926 +AZURE,germanywestcentral,Standard_E4ds_v6,on_demand,NA,0.395,USD,Azure Retail Prices API,2025-12-18T04:45:48.467052 +AZURE,germanywestcentral,Standard_E4ds_v6,reserved_1y,NA,0.244635,USD,Azure Retail Prices API,2025-12-18T04:45:50.157674 +AZURE,germanywestcentral,Standard_E4ds_v6,reserved_3y,NA,0.153881,USD,Azure Retail Prices API,2025-12-18T04:45:50.157677 +AZURE,germanywestcentral,Standard_E4ds_v6,spot,NA,0.072996,USD,Azure Retail Prices API,2025-12-18T04:45:48.466932 +AZURE,germanywestcentral,Standard_E4pds_v6,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:45:48.465543 +AZURE,germanywestcentral,Standard_E4pds_v6,reserved_1y,NA,0.164954,USD,Azure Retail Prices API,2025-12-18T04:45:50.156210 +AZURE,germanywestcentral,Standard_E4pds_v6,reserved_3y,NA,0.10624,USD,Azure Retail Prices API,2025-12-18T04:45:50.156213 +AZURE,germanywestcentral,Standard_E4pds_v6,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:45:48.466881 +AZURE,germanywestcentral,Standard_E4ps_v6,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:48.465859 +AZURE,germanywestcentral,Standard_E4ps_v6,reserved_1y,NA,0.130023,USD,Azure Retail Prices API,2025-12-18T04:45:50.156508 +AZURE,germanywestcentral,Standard_E4ps_v6,reserved_3y,NA,0.083752,USD,Azure Retail Prices API,2025-12-18T04:45:50.156510 +AZURE,germanywestcentral,Standard_E4ps_v6,spot,NA,0.040656,USD,Azure Retail Prices API,2025-12-18T04:45:48.466140 +AZURE,germanywestcentral,Standard_E4s_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:48.467041 +AZURE,germanywestcentral,Standard_E4s_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:45:50.157664 +AZURE,germanywestcentral,Standard_E4s_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:45:50.157667 +AZURE,germanywestcentral,Standard_E4s_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:45:48.465416 +AZURE,germanywestcentral,Standard_E4s_v5,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:48.467172 +AZURE,germanywestcentral,Standard_E4s_v5,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:45:50.157747 +AZURE,germanywestcentral,Standard_E4s_v5,reserved_3y,NA,0.112481,USD,Azure Retail Prices API,2025-12-18T04:45:50.157750 +AZURE,germanywestcentral,Standard_E4s_v5,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:45:48.466560 +AZURE,germanywestcentral,Standard_E64_v3,on_demand,NA,4.378,USD,Azure Retail Prices API,2025-12-18T04:45:48.467221 +AZURE,germanywestcentral,Standard_E64_v3,reserved_1y,NA,2.574315,USD,Azure Retail Prices API,2025-12-18T04:45:50.157788 +AZURE,germanywestcentral,Standard_E64_v3,reserved_3y,NA,1.728501,USD,Azure Retail Prices API,2025-12-18T04:45:50.157791 +AZURE,germanywestcentral,Standard_E64_v3,spot,NA,0.809054,USD,Azure Retail Prices API,2025-12-18T04:45:48.466618 +AZURE,germanywestcentral,Standard_E64a_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:45:48.465471 +AZURE,germanywestcentral,Standard_E64a_v4,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:45:50.156161 +AZURE,germanywestcentral,Standard_E64a_v4,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:45:50.156164 +AZURE,germanywestcentral,Standard_E64a_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:45:48.466606 +AZURE,germanywestcentral,Standard_E64ads_v5,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:45:48.465624 +AZURE,germanywestcentral,Standard_E64ads_v5,reserved_1y,NA,2.982991,USD,Azure Retail Prices API,2025-12-18T04:45:50.156262 +AZURE,germanywestcentral,Standard_E64ads_v5,reserved_3y,NA,1.921271,USD,Azure Retail Prices API,2025-12-18T04:45:50.156265 +AZURE,germanywestcentral,Standard_E64ads_v5,spot,NA,0.934349,USD,Azure Retail Prices API,2025-12-18T04:45:48.466774 +AZURE,germanywestcentral,Standard_E64ads_v6,on_demand,NA,5.613,USD,Azure Retail Prices API,2025-12-18T04:45:48.466926 +AZURE,germanywestcentral,Standard_E64ads_v6,reserved_1y,NA,3.31153,USD,Azure Retail Prices API,2025-12-18T04:45:50.157564 +AZURE,germanywestcentral,Standard_E64ads_v6,reserved_3y,NA,2.132877,USD,Azure Retail Prices API,2025-12-18T04:45:50.157567 +AZURE,germanywestcentral,Standard_E64ads_v6,spot,NA,1.037282,USD,Azure Retail Prices API,2025-12-18T04:45:48.466102 +AZURE,germanywestcentral,Standard_E64as_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:45:48.467224 +AZURE,germanywestcentral,Standard_E64as_v4,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:45:50.157794 +AZURE,germanywestcentral,Standard_E64as_v4,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:45:50.157796 +AZURE,germanywestcentral,Standard_E64as_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:45:48.467138 +AZURE,germanywestcentral,Standard_E64as_v5,on_demand,NA,4.384,USD,Azure Retail Prices API,2025-12-18T04:45:48.465826 +AZURE,germanywestcentral,Standard_E64as_v5,reserved_1y,NA,2.58653,USD,Azure Retail Prices API,2025-12-18T04:45:50.156485 +AZURE,germanywestcentral,Standard_E64as_v5,reserved_3y,NA,1.665906,USD,Azure Retail Prices API,2025-12-18T04:45:50.156488 +AZURE,germanywestcentral,Standard_E64as_v5,spot,NA,0.810163,USD,Azure Retail Prices API,2025-12-18T04:45:48.466581 +AZURE,germanywestcentral,Standard_E64d_v4,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:45:48.466623 +AZURE,germanywestcentral,Standard_E64d_v4,reserved_1y,NA,3.255137,USD,Azure Retail Prices API,2025-12-18T04:45:50.157279 +AZURE,germanywestcentral,Standard_E64d_v4,reserved_3y,NA,2.081545,USD,Azure Retail Prices API,2025-12-18T04:45:50.157281 +AZURE,germanywestcentral,Standard_E64d_v4,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:45:48.466869 +AZURE,germanywestcentral,Standard_E64ds_v4,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:45:48.466105 +AZURE,germanywestcentral,Standard_E64ds_v4,reserved_1y,NA,3.255137,USD,Azure Retail Prices API,2025-12-18T04:45:50.156739 +AZURE,germanywestcentral,Standard_E64ds_v4,reserved_3y,NA,2.081545,USD,Azure Retail Prices API,2025-12-18T04:45:50.156741 +AZURE,germanywestcentral,Standard_E64ds_v4,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:45:48.466720 +AZURE,germanywestcentral,Standard_E64ds_v5,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:45:48.465914 +AZURE,germanywestcentral,Standard_E64ds_v5,reserved_1y,NA,3.26621,USD,Azure Retail Prices API,2025-12-18T04:45:50.156562 +AZURE,germanywestcentral,Standard_E64ds_v5,reserved_3y,NA,2.103691,USD,Azure Retail Prices API,2025-12-18T04:45:50.156565 +AZURE,germanywestcentral,Standard_E64ds_v5,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:45:48.465984 +AZURE,germanywestcentral,Standard_E64ds_v6,on_demand,NA,6.312,USD,Azure Retail Prices API,2025-12-18T04:45:48.466215 +AZURE,germanywestcentral,Standard_E64ds_v6,reserved_1y,NA,3.913584,USD,Azure Retail Prices API,2025-12-18T04:45:50.156859 +AZURE,germanywestcentral,Standard_E64ds_v6,reserved_3y,NA,2.461796,USD,Azure Retail Prices API,2025-12-18T04:45:50.156862 +AZURE,germanywestcentral,Standard_E64ds_v6,spot,NA,1.166458,USD,Azure Retail Prices API,2025-12-18T04:45:48.466035 +AZURE,germanywestcentral,Standard_E64pds_v6,on_demand,NA,4.474,USD,Azure Retail Prices API,2025-12-18T04:45:48.465651 +AZURE,germanywestcentral,Standard_E64pds_v6,reserved_1y,NA,2.639384,USD,Azure Retail Prices API,2025-12-18T04:45:50.156297 +AZURE,germanywestcentral,Standard_E64pds_v6,reserved_3y,NA,1.699962,USD,Azure Retail Prices API,2025-12-18T04:45:50.156300 +AZURE,germanywestcentral,Standard_E64pds_v6,spot,NA,0.826795,USD,Azure Retail Prices API,2025-12-18T04:45:48.466023 +AZURE,germanywestcentral,Standard_E64ps_v6,on_demand,NA,3.526,USD,Azure Retail Prices API,2025-12-18T04:45:48.466819 +AZURE,germanywestcentral,Standard_E64ps_v6,reserved_1y,NA,2.080594,USD,Azure Retail Prices API,2025-12-18T04:45:50.157448 +AZURE,germanywestcentral,Standard_E64ps_v6,reserved_3y,NA,1.34003,USD,Azure Retail Prices API,2025-12-18T04:45:50.157450 +AZURE,germanywestcentral,Standard_E64ps_v6,spot,NA,0.651605,USD,Azure Retail Prices API,2025-12-18T04:45:48.466884 +AZURE,germanywestcentral,Standard_E64s_v3,on_demand,NA,4.378,USD,Azure Retail Prices API,2025-12-18T04:45:48.465917 +AZURE,germanywestcentral,Standard_E64s_v3,reserved_1y,NA,2.574315,USD,Azure Retail Prices API,2025-12-18T04:45:50.156568 +AZURE,germanywestcentral,Standard_E64s_v3,reserved_3y,NA,1.728501,USD,Azure Retail Prices API,2025-12-18T04:45:50.156571 +AZURE,germanywestcentral,Standard_E64s_v3,spot,NA,0.809054,USD,Azure Retail Prices API,2025-12-18T04:45:48.465978 +AZURE,germanywestcentral,Standard_E64s_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:45:48.465555 +AZURE,germanywestcentral,Standard_E64s_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:45:50.156216 +AZURE,germanywestcentral,Standard_E64s_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:45:50.156219 +AZURE,germanywestcentral,Standard_E64s_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:45:48.466613 +AZURE,germanywestcentral,Standard_E64s_v5,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:45:48.466250 +AZURE,germanywestcentral,Standard_E64s_v5,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:45:50.156904 +AZURE,germanywestcentral,Standard_E64s_v5,reserved_3y,NA,1.799696,USD,Azure Retail Prices API,2025-12-18T04:45:50.156907 +AZURE,germanywestcentral,Standard_E64s_v5,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:45:48.465816 +AZURE,germanywestcentral,Standard_E80ids_v4,on_demand,NA,6.92,USD,Azure Retail Prices API,2025-12-18T04:45:48.465975 +AZURE,germanywestcentral,Standard_E80ids_v4,reserved_1y,NA,4.068493,USD,Azure Retail Prices API,2025-12-18T04:45:50.156623 +AZURE,germanywestcentral,Standard_E80ids_v4,reserved_3y,NA,2.601979,USD,Azure Retail Prices API,2025-12-18T04:45:50.156626 +AZURE,germanywestcentral,Standard_E80ids_v4,spot,NA,1.278816,USD,Azure Retail Prices API,2025-12-18T04:45:48.466052 +AZURE,germanywestcentral,Standard_E80is_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:45:48.466491 +AZURE,germanywestcentral,Standard_E80is_v4,reserved_1y,NA,3.575342,USD,Azure Retail Prices API,2025-12-18T04:45:50.157172 +AZURE,germanywestcentral,Standard_E80is_v4,reserved_3y,NA,2.286149,USD,Azure Retail Prices API,2025-12-18T04:45:50.157176 +AZURE,germanywestcentral,Standard_E80is_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:45:48.466271 +AZURE,germanywestcentral,Standard_E8_v3,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:48.466186 +AZURE,germanywestcentral,Standard_E8_v3,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:45:50.156830 +AZURE,germanywestcentral,Standard_E8_v3,reserved_3y,NA,0.240068,USD,Azure Retail Prices API,2025-12-18T04:45:50.156833 +AZURE,germanywestcentral,Standard_E8_v3,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:45:48.466696 +AZURE,germanywestcentral,Standard_E8a_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:48.467004 +AZURE,germanywestcentral,Standard_E8a_v4,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:45:50.157642 +AZURE,germanywestcentral,Standard_E8a_v4,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:45:50.157645 +AZURE,germanywestcentral,Standard_E8a_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:45:48.467109 +AZURE,germanywestcentral,Standard_E8ads_v5,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:45:48.466587 +AZURE,germanywestcentral,Standard_E8ads_v5,reserved_1y,NA,0.372831,USD,Azure Retail Prices API,2025-12-18T04:45:50.157771 +AZURE,germanywestcentral,Standard_E8ads_v5,reserved_3y,NA,0.240145,USD,Azure Retail Prices API,2025-12-18T04:45:50.157773 +AZURE,germanywestcentral,Standard_E8ads_v5,spot,NA,0.116794,USD,Azure Retail Prices API,2025-12-18T04:45:48.467135 +AZURE,germanywestcentral,Standard_E8ads_v6,on_demand,NA,0.702,USD,Azure Retail Prices API,2025-12-18T04:45:48.466684 +AZURE,germanywestcentral,Standard_E8ads_v6,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:45:50.157335 +AZURE,germanywestcentral,Standard_E8ads_v6,reserved_3y,NA,0.266591,USD,Azure Retail Prices API,2025-12-18T04:45:50.157338 +AZURE,germanywestcentral,Standard_E8ads_v6,spot,NA,0.12973,USD,Azure Retail Prices API,2025-12-18T04:45:48.466777 +AZURE,germanywestcentral,Standard_E8as_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:48.466946 +AZURE,germanywestcentral,Standard_E8as_v4,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:45:50.157582 +AZURE,germanywestcentral,Standard_E8as_v4,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:45:50.157585 +AZURE,germanywestcentral,Standard_E8as_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:45:48.465493 +AZURE,germanywestcentral,Standard_E8as_v5,on_demand,NA,0.916,USD,Azure Retail Prices API,2025-12-18T04:45:48.466956 +AZURE,germanywestcentral,Standard_E8as_v5,reserved_1y,NA,0.323288,USD,Azure Retail Prices API,2025-12-18T04:45:50.157742 +AZURE,germanywestcentral,Standard_E8as_v5,reserved_3y,NA,0.208257,USD,Azure Retail Prices API,2025-12-18T04:45:50.157744 +AZURE,germanywestcentral,Standard_E8as_v5,spot,NA,0.10127,USD,Azure Retail Prices API,2025-12-18T04:45:48.465611 +AZURE,germanywestcentral,Standard_E8d_v4,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:45:48.466038 +AZURE,germanywestcentral,Standard_E8d_v4,reserved_1y,NA,0.406849,USD,Azure Retail Prices API,2025-12-18T04:45:50.156687 +AZURE,germanywestcentral,Standard_E8d_v4,reserved_3y,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:45:50.156690 +AZURE,germanywestcentral,Standard_E8d_v4,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:45:48.465467 +AZURE,germanywestcentral,Standard_E8ds_v4,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:45:48.466649 +AZURE,germanywestcentral,Standard_E8ds_v4,reserved_1y,NA,0.406849,USD,Azure Retail Prices API,2025-12-18T04:45:50.157301 +AZURE,germanywestcentral,Standard_E8ds_v4,reserved_3y,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:45:50.157304 +AZURE,germanywestcentral,Standard_E8ds_v4,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:45:48.466341 +AZURE,germanywestcentral,Standard_E8ds_v5,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:45:48.466949 +AZURE,germanywestcentral,Standard_E8ds_v5,reserved_1y,NA,0.408333,USD,Azure Retail Prices API,2025-12-18T04:45:50.157588 +AZURE,germanywestcentral,Standard_E8ds_v5,reserved_3y,NA,0.262976,USD,Azure Retail Prices API,2025-12-18T04:45:50.157591 +AZURE,germanywestcentral,Standard_E8ds_v5,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:45:48.467013 +AZURE,germanywestcentral,Standard_E8ds_v6,on_demand,NA,0.789,USD,Azure Retail Prices API,2025-12-18T04:45:48.466224 +AZURE,germanywestcentral,Standard_E8ds_v6,reserved_1y,NA,0.489155,USD,Azure Retail Prices API,2025-12-18T04:45:50.156865 +AZURE,germanywestcentral,Standard_E8ds_v6,reserved_3y,NA,0.307725,USD,Azure Retail Prices API,2025-12-18T04:45:50.156868 +AZURE,germanywestcentral,Standard_E8ds_v6,spot,NA,0.145807,USD,Azure Retail Prices API,2025-12-18T04:45:48.465783 +AZURE,germanywestcentral,Standard_E8pds_v6,on_demand,NA,0.559,USD,Azure Retail Prices API,2025-12-18T04:45:48.466383 +AZURE,germanywestcentral,Standard_E8pds_v6,reserved_1y,NA,0.329909,USD,Azure Retail Prices API,2025-12-18T04:45:50.157020 +AZURE,germanywestcentral,Standard_E8pds_v6,reserved_3y,NA,0.212481,USD,Azure Retail Prices API,2025-12-18T04:45:50.157023 +AZURE,germanywestcentral,Standard_E8pds_v6,spot,NA,0.103303,USD,Azure Retail Prices API,2025-12-18T04:45:48.465836 +AZURE,germanywestcentral,Standard_E8ps_v6,on_demand,NA,0.441,USD,Azure Retail Prices API,2025-12-18T04:45:48.465604 +AZURE,germanywestcentral,Standard_E8ps_v6,reserved_1y,NA,0.260046,USD,Azure Retail Prices API,2025-12-18T04:45:50.156257 +AZURE,germanywestcentral,Standard_E8ps_v6,reserved_3y,NA,0.167504,USD,Azure Retail Prices API,2025-12-18T04:45:50.156259 +AZURE,germanywestcentral,Standard_E8ps_v6,spot,NA,0.081497,USD,Azure Retail Prices API,2025-12-18T04:45:48.467010 +AZURE,germanywestcentral,Standard_E8s_v3,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:48.465881 +AZURE,germanywestcentral,Standard_E8s_v3,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:45:50.156535 +AZURE,germanywestcentral,Standard_E8s_v3,reserved_3y,NA,0.240068,USD,Azure Retail Prices API,2025-12-18T04:45:50.156538 +AZURE,germanywestcentral,Standard_E8s_v3,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:45:48.467016 +AZURE,germanywestcentral,Standard_E8s_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:48.466991 +AZURE,germanywestcentral,Standard_E8s_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:45:50.157637 +AZURE,germanywestcentral,Standard_E8s_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:45:50.157639 +AZURE,germanywestcentral,Standard_E8s_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:45:48.465865 +AZURE,germanywestcentral,Standard_E8s_v5,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:48.466011 +AZURE,germanywestcentral,Standard_E8s_v5,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:45:50.156663 +AZURE,germanywestcentral,Standard_E8s_v5,reserved_3y,NA,0.224962,USD,Azure Retail Prices API,2025-12-18T04:45:50.156666 +AZURE,germanywestcentral,Standard_E8s_v5,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:45:48.467030 +AZURE,germanywestcentral,Standard_E96a_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:45:48.466473 +AZURE,germanywestcentral,Standard_E96a_v4,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:45:50.157145 +AZURE,germanywestcentral,Standard_E96a_v4,reserved_3y,NA,2.772489,USD,Azure Retail Prices API,2025-12-18T04:45:50.157148 +AZURE,germanywestcentral,Standard_E96a_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:45:48.465509 +AZURE,germanywestcentral,Standard_E96ads_v5,on_demand,NA,7.584,USD,Azure Retail Prices API,2025-12-18T04:45:48.465999 +AZURE,germanywestcentral,Standard_E96ads_v5,reserved_1y,NA,4.474543,USD,Azure Retail Prices API,2025-12-18T04:45:50.156637 +AZURE,germanywestcentral,Standard_E96ads_v5,reserved_3y,NA,2.881925,USD,Azure Retail Prices API,2025-12-18T04:45:50.156641 +AZURE,germanywestcentral,Standard_E96ads_v5,spot,NA,1.401523,USD,Azure Retail Prices API,2025-12-18T04:45:48.466297 +AZURE,germanywestcentral,Standard_E96ads_v6,on_demand,NA,8.419,USD,Azure Retail Prices API,2025-12-18T04:45:48.466965 +AZURE,germanywestcentral,Standard_E96ads_v6,reserved_1y,NA,4.967352,USD,Azure Retail Prices API,2025-12-18T04:45:50.157604 +AZURE,germanywestcentral,Standard_E96ads_v6,reserved_3y,NA,3.199277,USD,Azure Retail Prices API,2025-12-18T04:45:50.157607 +AZURE,germanywestcentral,Standard_E96ads_v6,spot,NA,1.555831,USD,Azure Retail Prices API,2025-12-18T04:45:48.465499 +AZURE,germanywestcentral,Standard_E96as_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:45:48.465427 +AZURE,germanywestcentral,Standard_E96as_v4,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:45:50.156099 +AZURE,germanywestcentral,Standard_E96as_v4,reserved_3y,NA,2.772489,USD,Azure Retail Prices API,2025-12-18T04:45:50.156103 +AZURE,germanywestcentral,Standard_E96as_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:45:48.467103 +AZURE,germanywestcentral,Standard_E96as_v5,on_demand,NA,6.576,USD,Azure Retail Prices API,2025-12-18T04:45:48.466310 +AZURE,germanywestcentral,Standard_E96as_v5,reserved_1y,NA,3.879795,USD,Azure Retail Prices API,2025-12-18T04:45:50.156950 +AZURE,germanywestcentral,Standard_E96as_v5,reserved_3y,NA,2.498896,USD,Azure Retail Prices API,2025-12-18T04:45:50.156953 +AZURE,germanywestcentral,Standard_E96as_v5,spot,NA,1.215245,USD,Azure Retail Prices API,2025-12-18T04:45:48.466678 +AZURE,germanywestcentral,Standard_E96ds_v5,on_demand,NA,8.304,USD,Azure Retail Prices API,2025-12-18T04:45:48.466872 +AZURE,germanywestcentral,Standard_E96ds_v5,reserved_1y,NA,4.899315,USD,Azure Retail Prices API,2025-12-18T04:45:50.157492 +AZURE,germanywestcentral,Standard_E96ds_v5,reserved_3y,NA,3.155518,USD,Azure Retail Prices API,2025-12-18T04:45:50.157495 +AZURE,germanywestcentral,Standard_E96ds_v5,spot,NA,1.534579,USD,Azure Retail Prices API,2025-12-18T04:45:48.467160 +AZURE,germanywestcentral,Standard_E96ds_v6,on_demand,NA,9.468,USD,Azure Retail Prices API,2025-12-18T04:45:48.466985 +AZURE,germanywestcentral,Standard_E96ds_v6,reserved_1y,NA,5.870434,USD,Azure Retail Prices API,2025-12-18T04:45:50.157626 +AZURE,germanywestcentral,Standard_E96ds_v6,reserved_3y,NA,3.692694,USD,Azure Retail Prices API,2025-12-18T04:45:50.157629 +AZURE,germanywestcentral,Standard_E96ds_v6,spot,NA,1.749686,USD,Azure Retail Prices API,2025-12-18T04:45:48.465648 +AZURE,germanywestcentral,Standard_E96pds_v6,on_demand,NA,6.71,USD,Azure Retail Prices API,2025-12-18T04:45:48.466875 +AZURE,germanywestcentral,Standard_E96pds_v6,reserved_1y,NA,3.959132,USD,Azure Retail Prices API,2025-12-18T04:45:50.157498 +AZURE,germanywestcentral,Standard_E96pds_v6,reserved_3y,NA,2.549962,USD,Azure Retail Prices API,2025-12-18T04:45:50.157500 +AZURE,germanywestcentral,Standard_E96pds_v6,spot,NA,1.240008,USD,Azure Retail Prices API,2025-12-18T04:45:48.466046 +AZURE,germanywestcentral,Standard_E96ps_v6,on_demand,NA,5.29,USD,Azure Retail Prices API,2025-12-18T04:45:48.467120 +AZURE,germanywestcentral,Standard_E96ps_v6,reserved_1y,NA,3.12089,USD,Azure Retail Prices API,2025-12-18T04:45:50.157724 +AZURE,germanywestcentral,Standard_E96ps_v6,reserved_3y,NA,2.010046,USD,Azure Retail Prices API,2025-12-18T04:45:50.157727 +AZURE,germanywestcentral,Standard_E96ps_v6,spot,NA,0.977592,USD,Azure Retail Prices API,2025-12-18T04:45:48.466218 +AZURE,germanywestcentral,Standard_E96s_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:45:48.465700 +AZURE,germanywestcentral,Standard_E96s_v5,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:45:50.156341 +AZURE,germanywestcentral,Standard_E96s_v5,reserved_3y,NA,2.699505,USD,Azure Retail Prices API,2025-12-18T04:45:50.156344 +AZURE,germanywestcentral,Standard_E96s_v5,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:45:48.466283 +AZURE,germanywestcentral,Standard_EC16ads_v5,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:48.465638 +AZURE,germanywestcentral,Standard_EC16ads_v5,reserved_1y,NA,0.947146,USD,Azure Retail Prices API,2025-12-18T04:45:50.156280 +AZURE,germanywestcentral,Standard_EC16ads_v5,reserved_3y,NA,0.710388,USD,Azure Retail Prices API,2025-12-18T04:45:50.156283 +AZURE,germanywestcentral,Standard_EC16ads_v5,spot,NA,0.223421,USD,Azure Retail Prices API,2025-12-18T04:45:48.467049 +AZURE,germanywestcentral,Standard_EC16ads_v6,on_demand,NA,1.403,USD,Azure Retail Prices API,2025-12-18T04:45:48.466247 +AZURE,germanywestcentral,Standard_EC16ads_v6,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:45:50.156899 +AZURE,germanywestcentral,Standard_EC16ads_v6,reserved_3y,NA,0.533219,USD,Azure Retail Prices API,2025-12-18T04:45:50.156902 +AZURE,germanywestcentral,Standard_EC16ads_v6,spot,NA,0.259274,USD,Azure Retail Prices API,2025-12-18T04:45:48.466652 +AZURE,germanywestcentral,Standard_EC16as_v5,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:45:48.466439 +AZURE,germanywestcentral,Standard_EC16as_v5,reserved_1y,NA,0.876826,USD,Azure Retail Prices API,2025-12-18T04:45:50.157090 +AZURE,germanywestcentral,Standard_EC16as_v5,reserved_3y,NA,0.65761,USD,Azure Retail Prices API,2025-12-18T04:45:50.157092 +AZURE,germanywestcentral,Standard_EC16as_v5,spot,NA,0.206815,USD,Azure Retail Prices API,2025-12-18T04:45:48.467082 +AZURE,germanywestcentral,Standard_EC16as_v6,on_demand,NA,1.154,USD,Azure Retail Prices API,2025-12-18T04:45:48.465758 +AZURE,germanywestcentral,Standard_EC16as_v6,reserved_1y,NA,0.680594,USD,Azure Retail Prices API,2025-12-18T04:45:50.156418 +AZURE,germanywestcentral,Standard_EC16as_v6,reserved_3y,NA,0.438356,USD,Azure Retail Prices API,2025-12-18T04:45:50.156423 +AZURE,germanywestcentral,Standard_EC16as_v6,spot,NA,0.213259,USD,Azure Retail Prices API,2025-12-18T04:45:48.465419 +AZURE,germanywestcentral,Standard_EC20ads_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:48.465820 +AZURE,germanywestcentral,Standard_EC20ads_v5,reserved_1y,NA,1.184018,USD,Azure Retail Prices API,2025-12-18T04:45:50.156480 +AZURE,germanywestcentral,Standard_EC20ads_v5,reserved_3y,NA,0.888014,USD,Azure Retail Prices API,2025-12-18T04:45:50.156483 +AZURE,germanywestcentral,Standard_EC20ads_v5,spot,NA,0.279276,USD,Azure Retail Prices API,2025-12-18T04:45:48.466455 +AZURE,germanywestcentral,Standard_EC20as_v5,on_demand,NA,1.37,USD,Azure Retail Prices API,2025-12-18T04:45:48.466090 +AZURE,germanywestcentral,Standard_EC20as_v5,reserved_1y,NA,1.096005,USD,Azure Retail Prices API,2025-12-18T04:45:50.156722 +AZURE,germanywestcentral,Standard_EC20as_v5,reserved_3y,NA,0.821994,USD,Azure Retail Prices API,2025-12-18T04:45:50.156725 +AZURE,germanywestcentral,Standard_EC20as_v5,spot,NA,0.258519,USD,Azure Retail Prices API,2025-12-18T04:45:48.465487 +AZURE,germanywestcentral,Standard_EC2ads_v6,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:45:48.465795 +AZURE,germanywestcentral,Standard_EC2ads_v6,reserved_1y,NA,0.103539,USD,Azure Retail Prices API,2025-12-18T04:45:50.156445 +AZURE,germanywestcentral,Standard_EC2ads_v6,reserved_3y,NA,0.066667,USD,Azure Retail Prices API,2025-12-18T04:45:50.156448 +AZURE,germanywestcentral,Standard_EC2ads_v6,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:45:48.466500 +AZURE,germanywestcentral,Standard_EC2as_v6,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:45:48.465641 +AZURE,germanywestcentral,Standard_EC2as_v6,reserved_1y,NA,0.085046,USD,Azure Retail Prices API,2025-12-18T04:45:50.156286 +AZURE,germanywestcentral,Standard_EC2as_v6,reserved_3y,NA,0.054795,USD,Azure Retail Prices API,2025-12-18T04:45:50.156289 +AZURE,germanywestcentral,Standard_EC2as_v6,spot,NA,0.026611,USD,Azure Retail Prices API,2025-12-18T04:45:48.465959 +AZURE,germanywestcentral,Standard_EC32ads_v5,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:48.465862 +AZURE,germanywestcentral,Standard_EC32ads_v5,reserved_1y,NA,1.894406,USD,Azure Retail Prices API,2025-12-18T04:45:50.156513 +AZURE,germanywestcentral,Standard_EC32ads_v5,reserved_3y,NA,1.420814,USD,Azure Retail Prices API,2025-12-18T04:45:50.156516 +AZURE,germanywestcentral,Standard_EC32ads_v5,spot,NA,0.446842,USD,Azure Retail Prices API,2025-12-18T04:45:48.466317 +AZURE,germanywestcentral,Standard_EC32ads_v6,on_demand,NA,2.806,USD,Azure Retail Prices API,2025-12-18T04:45:48.465871 +AZURE,germanywestcentral,Standard_EC32ads_v6,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:45:50.156519 +AZURE,germanywestcentral,Standard_EC32ads_v6,reserved_3y,NA,1.066438,USD,Azure Retail Prices API,2025-12-18T04:45:50.156521 +AZURE,germanywestcentral,Standard_EC32ads_v6,spot,NA,0.518549,USD,Azure Retail Prices API,2025-12-18T04:45:48.465964 +AZURE,germanywestcentral,Standard_EC32as_v5,on_demand,NA,2.192,USD,Azure Retail Prices API,2025-12-18T04:45:48.465972 +AZURE,germanywestcentral,Standard_EC32as_v5,reserved_1y,NA,1.753653,USD,Azure Retail Prices API,2025-12-18T04:45:50.156617 +AZURE,germanywestcentral,Standard_EC32as_v5,reserved_3y,NA,1.315183,USD,Azure Retail Prices API,2025-12-18T04:45:50.156620 +AZURE,germanywestcentral,Standard_EC32as_v5,spot,NA,0.41363,USD,Azure Retail Prices API,2025-12-18T04:45:48.467145 +AZURE,germanywestcentral,Standard_EC32as_v6,on_demand,NA,2.307,USD,Azure Retail Prices API,2025-12-18T04:45:48.467207 +AZURE,germanywestcentral,Standard_EC32as_v6,reserved_1y,NA,1.361301,USD,Azure Retail Prices API,2025-12-18T04:45:50.157765 +AZURE,germanywestcentral,Standard_EC32as_v6,reserved_3y,NA,0.87675,USD,Azure Retail Prices API,2025-12-18T04:45:50.157768 +AZURE,germanywestcentral,Standard_EC32as_v6,spot,NA,0.426334,USD,Azure Retail Prices API,2025-12-18T04:45:48.465987 +AZURE,germanywestcentral,Standard_EC48ads_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:48.465842 +AZURE,germanywestcentral,Standard_EC48ads_v5,reserved_1y,NA,2.841553,USD,Azure Retail Prices API,2025-12-18T04:45:50.156491 +AZURE,germanywestcentral,Standard_EC48ads_v5,reserved_3y,NA,2.131202,USD,Azure Retail Prices API,2025-12-18T04:45:50.156493 +AZURE,germanywestcentral,Standard_EC48ads_v5,spot,NA,0.670262,USD,Azure Retail Prices API,2025-12-18T04:45:48.466111 +AZURE,germanywestcentral,Standard_EC48ads_v6,on_demand,NA,4.21,USD,Azure Retail Prices API,2025-12-18T04:45:48.467044 +AZURE,germanywestcentral,Standard_EC48ads_v6,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:45:50.157669 +AZURE,germanywestcentral,Standard_EC48ads_v6,reserved_3y,NA,1.599658,USD,Azure Retail Prices API,2025-12-18T04:45:50.157672 +AZURE,germanywestcentral,Standard_EC48ads_v6,spot,NA,0.778008,USD,Azure Retail Prices API,2025-12-18T04:45:48.465512 +AZURE,germanywestcentral,Standard_EC48as_v5,on_demand,NA,3.288,USD,Azure Retail Prices API,2025-12-18T04:45:48.466280 +AZURE,germanywestcentral,Standard_EC48as_v5,reserved_1y,NA,2.630365,USD,Azure Retail Prices API,2025-12-18T04:45:50.156938 +AZURE,germanywestcentral,Standard_EC48as_v5,reserved_3y,NA,1.972793,USD,Azure Retail Prices API,2025-12-18T04:45:50.156941 +AZURE,germanywestcentral,Standard_EC48as_v5,spot,NA,0.620446,USD,Azure Retail Prices API,2025-12-18T04:45:48.466070 +AZURE,germanywestcentral,Standard_EC48as_v6,on_demand,NA,3.461,USD,Azure Retail Prices API,2025-12-18T04:45:48.466609 +AZURE,germanywestcentral,Standard_EC48as_v6,reserved_1y,NA,2.041895,USD,Azure Retail Prices API,2025-12-18T04:45:50.157273 +AZURE,germanywestcentral,Standard_EC48as_v6,reserved_3y,NA,1.315107,USD,Azure Retail Prices API,2025-12-18T04:45:50.157276 +AZURE,germanywestcentral,Standard_EC48as_v6,spot,NA,0.639593,USD,Azure Retail Prices API,2025-12-18T04:45:48.466467 +AZURE,germanywestcentral,Standard_EC4ads_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:48.466702 +AZURE,germanywestcentral,Standard_EC4ads_v5,reserved_1y,NA,0.236758,USD,Azure Retail Prices API,2025-12-18T04:45:50.157359 +AZURE,germanywestcentral,Standard_EC4ads_v5,reserved_3y,NA,0.177588,USD,Azure Retail Prices API,2025-12-18T04:45:50.157361 +AZURE,germanywestcentral,Standard_EC4ads_v5,spot,NA,0.055855,USD,Azure Retail Prices API,2025-12-18T04:45:48.465849 +AZURE,germanywestcentral,Standard_EC4ads_v6,on_demand,NA,0.351,USD,Azure Retail Prices API,2025-12-18T04:45:48.466907 +AZURE,germanywestcentral,Standard_EC4ads_v6,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:45:50.157543 +AZURE,germanywestcentral,Standard_EC4ads_v6,reserved_3y,NA,0.133295,USD,Azure Retail Prices API,2025-12-18T04:45:50.157545 +AZURE,germanywestcentral,Standard_EC4ads_v6,spot,NA,0.064865,USD,Azure Retail Prices API,2025-12-18T04:45:48.465430 +AZURE,germanywestcentral,Standard_EC4as_v5,on_demand,NA,0.274,USD,Azure Retail Prices API,2025-12-18T04:45:48.466410 +AZURE,germanywestcentral,Standard_EC4as_v5,reserved_1y,NA,0.219178,USD,Azure Retail Prices API,2025-12-18T04:45:50.157060 +AZURE,germanywestcentral,Standard_EC4as_v5,reserved_3y,NA,0.164384,USD,Azure Retail Prices API,2025-12-18T04:45:50.157063 +AZURE,germanywestcentral,Standard_EC4as_v5,spot,NA,0.051704,USD,Azure Retail Prices API,2025-12-18T04:45:48.465996 +AZURE,germanywestcentral,Standard_EC4as_v6,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:45:48.465496 +AZURE,germanywestcentral,Standard_EC4as_v6,reserved_1y,NA,0.170205,USD,Azure Retail Prices API,2025-12-18T04:45:50.156179 +AZURE,germanywestcentral,Standard_EC4as_v6,reserved_3y,NA,0.109589,USD,Azure Retail Prices API,2025-12-18T04:45:50.156182 +AZURE,germanywestcentral,Standard_EC4as_v6,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:45:48.466172 +AZURE,germanywestcentral,Standard_EC64ads_v5,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:48.465732 +AZURE,germanywestcentral,Standard_EC64ads_v5,reserved_1y,NA,3.788813,USD,Azure Retail Prices API,2025-12-18T04:45:50.156387 +AZURE,germanywestcentral,Standard_EC64ads_v5,reserved_3y,NA,2.841591,USD,Azure Retail Prices API,2025-12-18T04:45:50.156390 +AZURE,germanywestcentral,Standard_EC64ads_v5,spot,NA,0.893683,USD,Azure Retail Prices API,2025-12-18T04:45:48.466780 +AZURE,germanywestcentral,Standard_EC64ads_v6,on_demand,NA,5.613,USD,Azure Retail Prices API,2025-12-18T04:45:48.466236 +AZURE,germanywestcentral,Standard_EC64ads_v6,reserved_1y,NA,3.31153,USD,Azure Retail Prices API,2025-12-18T04:45:50.156882 +AZURE,germanywestcentral,Standard_EC64ads_v6,reserved_3y,NA,2.132877,USD,Azure Retail Prices API,2025-12-18T04:45:50.156885 +AZURE,germanywestcentral,Standard_EC64ads_v6,spot,NA,1.037282,USD,Azure Retail Prices API,2025-12-18T04:45:48.466227 +AZURE,germanywestcentral,Standard_EC64as_v5,on_demand,NA,4.384,USD,Azure Retail Prices API,2025-12-18T04:45:48.466497 +AZURE,germanywestcentral,Standard_EC64as_v5,reserved_1y,NA,3.507192,USD,Azure Retail Prices API,2025-12-18T04:45:50.157191 +AZURE,germanywestcentral,Standard_EC64as_v5,reserved_3y,NA,2.630403,USD,Azure Retail Prices API,2025-12-18T04:45:50.157194 +AZURE,germanywestcentral,Standard_EC64as_v5,spot,NA,0.827261,USD,Azure Retail Prices API,2025-12-18T04:45:48.467240 +AZURE,germanywestcentral,Standard_EC64as_v6,on_demand,NA,4.614,USD,Azure Retail Prices API,2025-12-18T04:45:48.466953 +AZURE,germanywestcentral,Standard_EC64as_v6,reserved_1y,NA,2.722489,USD,Azure Retail Prices API,2025-12-18T04:45:50.157593 +AZURE,germanywestcentral,Standard_EC64as_v6,reserved_3y,NA,1.753463,USD,Azure Retail Prices API,2025-12-18T04:45:50.157596 +AZURE,germanywestcentral,Standard_EC64as_v6,spot,NA,0.852667,USD,Azure Retail Prices API,2025-12-18T04:45:48.465941 +AZURE,germanywestcentral,Standard_EC8ads_v5,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:48.466572 +AZURE,germanywestcentral,Standard_EC8ads_v5,reserved_1y,NA,0.47363,USD,Azure Retail Prices API,2025-12-18T04:45:50.157261 +AZURE,germanywestcentral,Standard_EC8ads_v5,reserved_3y,NA,0.355213,USD,Azure Retail Prices API,2025-12-18T04:45:50.157264 +AZURE,germanywestcentral,Standard_EC8ads_v5,spot,NA,0.11171,USD,Azure Retail Prices API,2025-12-18T04:45:48.466452 +AZURE,germanywestcentral,Standard_EC8ads_v6,on_demand,NA,0.702,USD,Azure Retail Prices API,2025-12-18T04:45:48.466462 +AZURE,germanywestcentral,Standard_EC8ads_v6,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:45:50.157112 +AZURE,germanywestcentral,Standard_EC8ads_v6,reserved_3y,NA,0.266591,USD,Azure Retail Prices API,2025-12-18T04:45:50.157114 +AZURE,germanywestcentral,Standard_EC8ads_v6,spot,NA,0.12973,USD,Azure Retail Prices API,2025-12-18T04:45:48.465755 +AZURE,germanywestcentral,Standard_EC8as_v5,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:45:48.466646 +AZURE,germanywestcentral,Standard_EC8as_v5,reserved_1y,NA,0.438356,USD,Azure Retail Prices API,2025-12-18T04:45:50.157296 +AZURE,germanywestcentral,Standard_EC8as_v5,reserved_3y,NA,0.328805,USD,Azure Retail Prices API,2025-12-18T04:45:50.157298 +AZURE,germanywestcentral,Standard_EC8as_v5,spot,NA,0.103408,USD,Azure Retail Prices API,2025-12-18T04:45:48.467200 +AZURE,germanywestcentral,Standard_EC8as_v6,on_demand,NA,0.577,USD,Azure Retail Prices API,2025-12-18T04:45:48.466739 +AZURE,germanywestcentral,Standard_EC8as_v6,reserved_1y,NA,0.340297,USD,Azure Retail Prices API,2025-12-18T04:45:50.157398 +AZURE,germanywestcentral,Standard_EC8as_v6,reserved_3y,NA,0.219178,USD,Azure Retail Prices API,2025-12-18T04:45:50.157401 +AZURE,germanywestcentral,Standard_EC8as_v6,spot,NA,0.10663,USD,Azure Retail Prices API,2025-12-18T04:45:48.465770 +AZURE,germanywestcentral,Standard_EC96ads_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:45:48.466864 +AZURE,germanywestcentral,Standard_EC96ads_v5,reserved_1y,NA,5.683219,USD,Azure Retail Prices API,2025-12-18T04:45:50.157471 +AZURE,germanywestcentral,Standard_EC96ads_v5,reserved_3y,NA,4.262405,USD,Azure Retail Prices API,2025-12-18T04:45:50.157475 +AZURE,germanywestcentral,Standard_EC96ads_v5,spot,NA,1.340525,USD,Azure Retail Prices API,2025-12-18T04:45:48.466566 +AZURE,germanywestcentral,Standard_EC96ads_v6,on_demand,NA,8.419,USD,Azure Retail Prices API,2025-12-18T04:45:48.466164 +AZURE,germanywestcentral,Standard_EC96ads_v6,reserved_1y,NA,4.967352,USD,Azure Retail Prices API,2025-12-18T04:45:50.156807 +AZURE,germanywestcentral,Standard_EC96ads_v6,reserved_3y,NA,3.199277,USD,Azure Retail Prices API,2025-12-18T04:45:50.156810 +AZURE,germanywestcentral,Standard_EC96ads_v6,spot,NA,1.555831,USD,Azure Retail Prices API,2025-12-18T04:45:48.465534 +AZURE,germanywestcentral,Standard_EC96as_v5,on_demand,NA,6.576,USD,Azure Retail Prices API,2025-12-18T04:45:48.465477 +AZURE,germanywestcentral,Standard_EC96as_v5,reserved_1y,NA,5.260845,USD,Azure Retail Prices API,2025-12-18T04:45:50.156174 +AZURE,germanywestcentral,Standard_EC96as_v5,reserved_3y,NA,3.945586,USD,Azure Retail Prices API,2025-12-18T04:45:50.156177 +AZURE,germanywestcentral,Standard_EC96as_v5,spot,NA,1.240891,USD,Azure Retail Prices API,2025-12-18T04:45:48.467123 +AZURE,germanywestcentral,Standard_EC96as_v6,on_demand,NA,6.922,USD,Azure Retail Prices API,2025-12-18T04:45:48.467092 +AZURE,germanywestcentral,Standard_EC96as_v6,reserved_1y,NA,4.08379,USD,Azure Retail Prices API,2025-12-18T04:45:50.157691 +AZURE,germanywestcentral,Standard_EC96as_v6,reserved_3y,NA,2.630213,USD,Azure Retail Prices API,2025-12-18T04:45:50.157693 +AZURE,germanywestcentral,Standard_EC96as_v6,spot,NA,1.279186,USD,Azure Retail Prices API,2025-12-18T04:45:48.466731 +AZURE,germanywestcentral,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379475 +AZURE,germanywestcentral,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379484 +AZURE,germanywestcentral,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379488 +AZURE,germanywestcentral,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379479 +AZURE,germanywestcentral,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381783 +AZURE,germanywestcentral,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381791 +AZURE,germanywestcentral,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381795 +AZURE,germanywestcentral,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381787 +AZURE,germanywestcentral,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384510 +AZURE,germanywestcentral,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384518 +AZURE,germanywestcentral,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384523 +AZURE,germanywestcentral,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384514 +AZURE,germanywestcentral,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385295 +AZURE,germanywestcentral,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385327 +AZURE,germanywestcentral,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385332 +AZURE,germanywestcentral,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385323 +AZURE,germanywestcentral,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377910 +AZURE,germanywestcentral,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377926 +AZURE,germanywestcentral,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377931 +AZURE,germanywestcentral,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377918 +AZURE,germanywestcentral,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386082 +AZURE,germanywestcentral,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386098 +AZURE,germanywestcentral,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386104 +AZURE,germanywestcentral,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386091 +AZURE,germanywestcentral,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380240 +AZURE,germanywestcentral,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380248 +AZURE,germanywestcentral,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380252 +AZURE,germanywestcentral,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380244 +AZURE,germanywestcentral,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382839 +AZURE,germanywestcentral,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382848 +AZURE,germanywestcentral,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382852 +AZURE,germanywestcentral,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382844 +AZURE,germanywestcentral,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386872 +AZURE,germanywestcentral,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386880 +AZURE,germanywestcentral,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386884 +AZURE,germanywestcentral,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386876 +AZURE,germanywestcentral,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387688 +AZURE,germanywestcentral,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387698 +AZURE,germanywestcentral,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387702 +AZURE,germanywestcentral,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387694 +AZURE,germanywestcentral,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378658 +AZURE,germanywestcentral,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378666 +AZURE,germanywestcentral,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378671 +AZURE,germanywestcentral,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378663 +AZURE,germanywestcentral,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380941 +AZURE,germanywestcentral,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380953 +AZURE,germanywestcentral,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380959 +AZURE,germanywestcentral,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380947 +AZURE,germanywestcentral,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383673 +AZURE,germanywestcentral,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383681 +AZURE,germanywestcentral,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383685 +AZURE,germanywestcentral,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383677 +AZURE,germanywestcentral,Standard_L16s_v3,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:45:48.466043 +AZURE,germanywestcentral,Standard_L16s_v3,reserved_1y,NA,1.064954,USD,Azure Retail Prices API,2025-12-18T04:45:50.156693 +AZURE,germanywestcentral,Standard_L16s_v3,reserved_3y,NA,0.698896,USD,Azure Retail Prices API,2025-12-18T04:45:50.156696 +AZURE,germanywestcentral,Standard_L16s_v3,spot,NA,0.307507,USD,Azure Retail Prices API,2025-12-18T04:45:48.465484 +AZURE,germanywestcentral,Standard_L32s_v3,on_demand,NA,3.328,USD,Azure Retail Prices API,2025-12-18T04:45:48.466515 +AZURE,germanywestcentral,Standard_L32s_v3,reserved_1y,NA,2.129909,USD,Azure Retail Prices API,2025-12-18T04:45:50.157214 +AZURE,germanywestcentral,Standard_L32s_v3,reserved_3y,NA,1.397755,USD,Azure Retail Prices API,2025-12-18T04:45:50.157217 +AZURE,germanywestcentral,Standard_L32s_v3,spot,NA,0.615014,USD,Azure Retail Prices API,2025-12-18T04:45:48.465684 +AZURE,germanywestcentral,Standard_L48s_v3,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:45:48.466744 +AZURE,germanywestcentral,Standard_L48s_v3,reserved_1y,NA,3.194863,USD,Azure Retail Prices API,2025-12-18T04:45:50.157404 +AZURE,germanywestcentral,Standard_L48s_v3,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:45:50.157406 +AZURE,germanywestcentral,Standard_L48s_v3,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:45:48.466424 +AZURE,germanywestcentral,Standard_L64s_v3,on_demand,NA,6.656,USD,Azure Retail Prices API,2025-12-18T04:45:48.466337 +AZURE,germanywestcentral,Standard_L64s_v3,reserved_1y,NA,4.259817,USD,Azure Retail Prices API,2025-12-18T04:45:50.156980 +AZURE,germanywestcentral,Standard_L64s_v3,reserved_3y,NA,2.79551,USD,Azure Retail Prices API,2025-12-18T04:45:50.156983 +AZURE,germanywestcentral,Standard_L64s_v3,spot,NA,1.230029,USD,Azure Retail Prices API,2025-12-18T04:45:48.467249 +AZURE,germanywestcentral,Standard_L80s_v3,on_demand,NA,8.32,USD,Azure Retail Prices API,2025-12-18T04:45:48.466200 +AZURE,germanywestcentral,Standard_L80s_v3,reserved_1y,NA,5.324772,USD,Azure Retail Prices API,2025-12-18T04:45:50.156842 +AZURE,germanywestcentral,Standard_L80s_v3,reserved_3y,NA,3.494406,USD,Azure Retail Prices API,2025-12-18T04:45:50.156845 +AZURE,germanywestcentral,Standard_L80s_v3,spot,NA,1.537536,USD,Azure Retail Prices API,2025-12-18T04:45:48.467209 +AZURE,germanywestcentral,Standard_L8s_v3,on_demand,NA,0.832,USD,Azure Retail Prices API,2025-12-18T04:45:48.466061 +AZURE,germanywestcentral,Standard_L8s_v3,reserved_1y,NA,0.532534,USD,Azure Retail Prices API,2025-12-18T04:45:50.156699 +AZURE,germanywestcentral,Standard_L8s_v3,reserved_3y,NA,0.349429,USD,Azure Retail Prices API,2025-12-18T04:45:50.156701 +AZURE,germanywestcentral,Standard_L8s_v3,spot,NA,0.153754,USD,Azure Retail Prices API,2025-12-18T04:45:48.467232 +AZURE,germanywestcentral,Standard_NC16as_T4_v3,on_demand,NA,1.504,USD,Azure Retail Prices API,2025-12-18T04:45:48.465677 +AZURE,germanywestcentral,Standard_NC16as_T4_v3,reserved_1y,NA,0.958105,USD,Azure Retail Prices API,2025-12-18T04:45:50.156319 +AZURE,germanywestcentral,Standard_NC16as_T4_v3,reserved_3y,NA,0.571918,USD,Azure Retail Prices API,2025-12-18T04:45:50.156322 +AZURE,germanywestcentral,Standard_NC16as_T4_v3,spot,NA,0.43616,USD,Azure Retail Prices API,2025-12-18T04:45:48.466672 +AZURE,germanywestcentral,Standard_NC24ads_A100_v4,on_demand,NA,4.775,USD,Azure Retail Prices API,2025-12-18T04:45:48.466307 +AZURE,germanywestcentral,Standard_NC24ads_A100_v4,reserved_1y,NA,3.121347,USD,Azure Retail Prices API,2025-12-18T04:45:50.156944 +AZURE,germanywestcentral,Standard_NC24ads_A100_v4,reserved_3y,NA,1.771956,USD,Azure Retail Prices API,2025-12-18T04:45:50.156948 +AZURE,germanywestcentral,Standard_NC24ads_A100_v4,spot,NA,0.88242,USD,Azure Retail Prices API,2025-12-18T04:45:48.466169 +AZURE,germanywestcentral,Standard_NC40ads_H100_v5,on_demand,NA,9.074,USD,Azure Retail Prices API,2025-12-18T04:45:48.466470 +AZURE,germanywestcentral,Standard_NC40ads_H100_v5,reserved_1y,NA,6.805479,USD,Azure Retail Prices API,2025-12-18T04:45:50.157137 +AZURE,germanywestcentral,Standard_NC40ads_H100_v5,reserved_3y,NA,4.990715,USD,Azure Retail Prices API,2025-12-18T04:45:50.157140 +AZURE,germanywestcentral,Standard_NC40ads_H100_v5,spot,NA,5.31192,USD,Azure Retail Prices API,2025-12-18T04:45:48.466584 +AZURE,germanywestcentral,Standard_NC48ads_A100_v4,on_demand,NA,9.55,USD,Azure Retail Prices API,2025-12-18T04:45:48.466265 +AZURE,germanywestcentral,Standard_NC48ads_A100_v4,reserved_1y,NA,6.242694,USD,Azure Retail Prices API,2025-12-18T04:45:50.156927 +AZURE,germanywestcentral,Standard_NC48ads_A100_v4,reserved_3y,NA,3.54395,USD,Azure Retail Prices API,2025-12-18T04:45:50.156929 +AZURE,germanywestcentral,Standard_NC48ads_A100_v4,spot,NA,1.76484,USD,Azure Retail Prices API,2025-12-18T04:45:48.465962 +AZURE,germanywestcentral,Standard_NC4as_T4_v3,on_demand,NA,0.658,USD,Azure Retail Prices API,2025-12-18T04:45:48.465920 +AZURE,germanywestcentral,Standard_NC4as_T4_v3,reserved_1y,NA,0.418721,USD,Azure Retail Prices API,2025-12-18T04:45:50.156574 +AZURE,germanywestcentral,Standard_NC4as_T4_v3,reserved_3y,NA,0.249848,USD,Azure Retail Prices API,2025-12-18T04:45:50.156576 +AZURE,germanywestcentral,Standard_NC4as_T4_v3,spot,NA,0.19082,USD,Azure Retail Prices API,2025-12-18T04:45:48.466666 +AZURE,germanywestcentral,Standard_NC64as_T4_v3,on_demand,NA,5.428,USD,Azure Retail Prices API,2025-12-18T04:45:48.465761 +AZURE,germanywestcentral,Standard_NC64as_T4_v3,reserved_1y,NA,3.457306,USD,Azure Retail Prices API,2025-12-18T04:45:50.156428 +AZURE,germanywestcentral,Standard_NC64as_T4_v3,reserved_3y,NA,2.067199,USD,Azure Retail Prices API,2025-12-18T04:45:50.156431 +AZURE,germanywestcentral,Standard_NC64as_T4_v3,spot,NA,1.57412,USD,Azure Retail Prices API,2025-12-18T04:45:48.466901 +AZURE,germanywestcentral,Standard_NC8as_T4_v3,on_demand,NA,0.939,USD,Azure Retail Prices API,2025-12-18T04:45:48.466076 +AZURE,germanywestcentral,Standard_NC8as_T4_v3,reserved_1y,NA,0.598174,USD,Azure Retail Prices API,2025-12-18T04:45:50.156704 +AZURE,germanywestcentral,Standard_NC8as_T4_v3,reserved_3y,NA,0.357192,USD,Azure Retail Prices API,2025-12-18T04:45:50.156707 +AZURE,germanywestcentral,Standard_NC8as_T4_v3,spot,NA,0.27231,USD,Azure Retail Prices API,2025-12-18T04:45:48.467115 +AZURE,germanywestcentral,Standard_NC96ads_A100_v4,on_demand,NA,19.1,USD,Azure Retail Prices API,2025-12-18T04:45:48.466353 +AZURE,germanywestcentral,Standard_NC96ads_A100_v4,reserved_1y,NA,12.485388,USD,Azure Retail Prices API,2025-12-18T04:45:50.156992 +AZURE,germanywestcentral,Standard_NC96ads_A100_v4,reserved_3y,NA,7.087861,USD,Azure Retail Prices API,2025-12-18T04:45:50.156994 +AZURE,germanywestcentral,Standard_NC96ads_A100_v4,spot,NA,3.52968,USD,Azure Retail Prices API,2025-12-18T04:45:48.466377 +AZURE,germanywestcentral,Standard_NV36adms_A10_v5,on_demand,NA,5.876,USD,Azure Retail Prices API,2025-12-18T04:45:48.466122 +AZURE,germanywestcentral,Standard_NV36adms_A10_v5,reserved_1y,NA,3.760616,USD,Azure Retail Prices API,2025-12-18T04:45:50.156756 +AZURE,germanywestcentral,Standard_NV36adms_A10_v5,reserved_3y,NA,2.585426,USD,Azure Retail Prices API,2025-12-18T04:45:50.156758 +AZURE,germanywestcentral,Standard_NV36adms_A10_v5,spot,NA,1.085885,USD,Azure Retail Prices API,2025-12-18T04:45:48.465447 +AZURE,germanywestcentral,Standard_NV36ads_A10_v5,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:45:48.465726 +AZURE,germanywestcentral,Standard_NV36ads_A10_v5,reserved_1y,NA,2.662443,USD,Azure Retail Prices API,2025-12-18T04:45:50.156382 +AZURE,germanywestcentral,Standard_NV36ads_A10_v5,reserved_3y,NA,1.830403,USD,Azure Retail Prices API,2025-12-18T04:45:50.156385 +AZURE,germanywestcentral,Standard_NV36ads_A10_v5,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:45:48.465667 +AZURE,germanywestcentral,Standard_NV72ads_A10_v5,on_demand,NA,8.476,USD,Azure Retail Prices API,2025-12-18T04:45:48.466368 +AZURE,germanywestcentral,Standard_NV72ads_A10_v5,reserved_1y,NA,5.424658,USD,Azure Retail Prices API,2025-12-18T04:45:50.157009 +AZURE,germanywestcentral,Standard_NV72ads_A10_v5,reserved_3y,NA,3.729452,USD,Azure Retail Prices API,2025-12-18T04:45:50.157011 +AZURE,germanywestcentral,Standard_NV72ads_A10_v5,spot,NA,1.566365,USD,Azure Retail Prices API,2025-12-18T04:45:48.466758 +AZURE,japaneast,Standard_D128ds_v6,on_demand,NA,10.299,USD,Azure Retail Prices API,2025-12-18T04:46:37.573862 +AZURE,japaneast,Standard_D128ds_v6,reserved_1y,NA,6.385274,USD,Azure Retail Prices API,2025-12-18T04:46:39.158080 +AZURE,japaneast,Standard_D128ds_v6,reserved_3y,NA,4.016553,USD,Azure Retail Prices API,2025-12-18T04:46:39.158083 +AZURE,japaneast,Standard_D128ds_v6,spot,NA,1.903255,USD,Azure Retail Prices API,2025-12-18T04:46:37.572099 +AZURE,japaneast,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488594 +AZURE,japaneast,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488602 +AZURE,japaneast,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488606 +AZURE,japaneast,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488598 +AZURE,japaneast,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489401 +AZURE,japaneast,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489419 +AZURE,japaneast,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489423 +AZURE,japaneast,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489405 +AZURE,japaneast,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490476 +AZURE,japaneast,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490484 +AZURE,japaneast,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490488 +AZURE,japaneast,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490480 +AZURE,japaneast,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491228 +AZURE,japaneast,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491236 +AZURE,japaneast,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491240 +AZURE,japaneast,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491232 +AZURE,japaneast,Standard_D16_v3,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:46:37.572219 +AZURE,japaneast,Standard_D16_v3,reserved_1y,NA,0.650685,USD,Azure Retail Prices API,2025-12-18T04:46:39.156567 +AZURE,japaneast,Standard_D16_v3,reserved_3y,NA,0.443683,USD,Azure Retail Prices API,2025-12-18T04:46:39.156572 +AZURE,japaneast,Standard_D16_v3,spot,NA,0.190714,USD,Azure Retail Prices API,2025-12-18T04:46:37.573786 +AZURE,japaneast,Standard_D16a_v4,on_demand,NA,0.992,USD,Azure Retail Prices API,2025-12-18T04:46:37.574175 +AZURE,japaneast,Standard_D16a_v4,reserved_1y,NA,0.583333,USD,Azure Retail Prices API,2025-12-18T04:46:39.158217 +AZURE,japaneast,Standard_D16a_v4,reserved_3y,NA,0.372983,USD,Azure Retail Prices API,2025-12-18T04:46:39.158220 +AZURE,japaneast,Standard_D16a_v4,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:46:37.574601 +AZURE,japaneast,Standard_D16ads_v5,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:37.571962 +AZURE,japaneast,Standard_D16ads_v5,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:46:39.156333 +AZURE,japaneast,Standard_D16ads_v5,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:46:39.156337 +AZURE,japaneast,Standard_D16ads_v5,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:46:37.573535 +AZURE,japaneast,Standard_D16ads_v6,on_demand,NA,1.189,USD,Azure Retail Prices API,2025-12-18T04:46:37.574148 +AZURE,japaneast,Standard_D16ads_v6,reserved_1y,NA,0.70137,USD,Azure Retail Prices API,2025-12-18T04:46:39.158195 +AZURE,japaneast,Standard_D16ads_v6,reserved_3y,NA,0.45175,USD,Azure Retail Prices API,2025-12-18T04:46:39.158198 +AZURE,japaneast,Standard_D16ads_v6,spot,NA,0.219727,USD,Azure Retail Prices API,2025-12-18T04:46:37.572224 +AZURE,japaneast,Standard_D16as_v4,on_demand,NA,0.992,USD,Azure Retail Prices API,2025-12-18T04:46:37.573204 +AZURE,japaneast,Standard_D16as_v4,reserved_1y,NA,0.583333,USD,Azure Retail Prices API,2025-12-18T04:46:39.157510 +AZURE,japaneast,Standard_D16as_v4,reserved_3y,NA,0.372983,USD,Azure Retail Prices API,2025-12-18T04:46:39.157514 +AZURE,japaneast,Standard_D16as_v4,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:46:37.572879 +AZURE,japaneast,Standard_D16as_v5,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:46:37.571741 +AZURE,japaneast,Standard_D16as_v5,reserved_1y,NA,0.528653,USD,Azure Retail Prices API,2025-12-18T04:46:39.156154 +AZURE,japaneast,Standard_D16as_v5,reserved_3y,NA,0.340487,USD,Azure Retail Prices API,2025-12-18T04:46:39.156159 +AZURE,japaneast,Standard_D16as_v5,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:46:37.572993 +AZURE,japaneast,Standard_D16d_v4,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:46:37.572274 +AZURE,japaneast,Standard_D16d_v4,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:46:39.156635 +AZURE,japaneast,Standard_D16d_v4,reserved_3y,NA,0.439155,USD,Azure Retail Prices API,2025-12-18T04:46:39.156640 +AZURE,japaneast,Standard_D16d_v4,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:46:37.573824 +AZURE,japaneast,Standard_D16ds_v4,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:46:37.574435 +AZURE,japaneast,Standard_D16ds_v4,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:46:39.158353 +AZURE,japaneast,Standard_D16ds_v4,reserved_3y,NA,0.439155,USD,Azure Retail Prices API,2025-12-18T04:46:39.158357 +AZURE,japaneast,Standard_D16ds_v4,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:46:37.574371 +AZURE,japaneast,Standard_D16ds_v5,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:46:37.573499 +AZURE,japaneast,Standard_D16ds_v5,reserved_1y,NA,0.689155,USD,Azure Retail Prices API,2025-12-18T04:46:39.157856 +AZURE,japaneast,Standard_D16ds_v5,reserved_3y,NA,0.443836,USD,Azure Retail Prices API,2025-12-18T04:46:39.157861 +AZURE,japaneast,Standard_D16ds_v5,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:46:37.574733 +AZURE,japaneast,Standard_D16ds_v6,on_demand,NA,1.287,USD,Azure Retail Prices API,2025-12-18T04:46:37.572559 +AZURE,japaneast,Standard_D16ds_v6,reserved_1y,NA,0.798174,USD,Azure Retail Prices API,2025-12-18T04:46:39.156926 +AZURE,japaneast,Standard_D16ds_v6,reserved_3y,NA,0.502055,USD,Azure Retail Prices API,2025-12-18T04:46:39.156931 +AZURE,japaneast,Standard_D16ds_v6,spot,NA,0.237838,USD,Azure Retail Prices API,2025-12-18T04:46:37.573585 +AZURE,japaneast,Standard_D16pds_v6,on_demand,NA,0.944,USD,Azure Retail Prices API,2025-12-18T04:46:37.574831 +AZURE,japaneast,Standard_D16pds_v6,reserved_1y,NA,0.556963,USD,Azure Retail Prices API,2025-12-18T04:46:39.158622 +AZURE,japaneast,Standard_D16pds_v6,reserved_3y,NA,0.358714,USD,Azure Retail Prices API,2025-12-18T04:46:39.158627 +AZURE,japaneast,Standard_D16pds_v6,spot,NA,0.174451,USD,Azure Retail Prices API,2025-12-18T04:46:37.573476 +AZURE,japaneast,Standard_D16ps_v6,on_demand,NA,0.722,USD,Azure Retail Prices API,2025-12-18T04:46:37.573818 +AZURE,japaneast,Standard_D16ps_v6,reserved_1y,NA,0.425799,USD,Azure Retail Prices API,2025-12-18T04:46:39.158051 +AZURE,japaneast,Standard_D16ps_v6,reserved_3y,NA,0.274201,USD,Azure Retail Prices API,2025-12-18T04:46:39.158053 +AZURE,japaneast,Standard_D16ps_v6,spot,NA,0.133426,USD,Azure Retail Prices API,2025-12-18T04:46:37.574727 +AZURE,japaneast,Standard_D16s_v3,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:46:37.572347 +AZURE,japaneast,Standard_D16s_v3,reserved_1y,NA,0.650685,USD,Azure Retail Prices API,2025-12-18T04:46:39.156711 +AZURE,japaneast,Standard_D16s_v3,reserved_3y,NA,0.443683,USD,Azure Retail Prices API,2025-12-18T04:46:39.156716 +AZURE,japaneast,Standard_D16s_v3,spot,NA,0.190714,USD,Azure Retail Prices API,2025-12-18T04:46:37.573641 +AZURE,japaneast,Standard_D16s_v4,on_demand,NA,0.992,USD,Azure Retail Prices API,2025-12-18T04:46:37.573297 +AZURE,japaneast,Standard_D16s_v4,reserved_1y,NA,0.583333,USD,Azure Retail Prices API,2025-12-18T04:46:39.157690 +AZURE,japaneast,Standard_D16s_v4,reserved_3y,NA,0.372983,USD,Azure Retail Prices API,2025-12-18T04:46:39.157695 +AZURE,japaneast,Standard_D16s_v4,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:46:37.574091 +AZURE,japaneast,Standard_D16s_v5,on_demand,NA,0.992,USD,Azure Retail Prices API,2025-12-18T04:46:37.574705 +AZURE,japaneast,Standard_D16s_v5,reserved_1y,NA,0.585274,USD,Azure Retail Prices API,2025-12-18T04:46:39.158540 +AZURE,japaneast,Standard_D16s_v5,reserved_3y,NA,0.367047,USD,Azure Retail Prices API,2025-12-18T04:46:39.158544 +AZURE,japaneast,Standard_D16s_v5,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:46:37.572762 +AZURE,japaneast,Standard_D2ads_v6,on_demand,NA,0.149,USD,Azure Retail Prices API,2025-12-18T04:46:37.574836 +AZURE,japaneast,Standard_D2ads_v6,reserved_1y,NA,0.087671,USD,Azure Retail Prices API,2025-12-18T04:46:39.158632 +AZURE,japaneast,Standard_D2ads_v6,reserved_3y,NA,0.056469,USD,Azure Retail Prices API,2025-12-18T04:46:39.158637 +AZURE,japaneast,Standard_D2ads_v6,spot,NA,0.027535,USD,Azure Retail Prices API,2025-12-18T04:46:37.573481 +AZURE,japaneast,Standard_D2ds_v6,on_demand,NA,0.161,USD,Azure Retail Prices API,2025-12-18T04:46:37.571746 +AZURE,japaneast,Standard_D2ds_v6,reserved_1y,NA,0.099772,USD,Azure Retail Prices API,2025-12-18T04:46:39.156163 +AZURE,japaneast,Standard_D2ds_v6,reserved_3y,NA,0.062747,USD,Azure Retail Prices API,2025-12-18T04:46:39.156168 +AZURE,japaneast,Standard_D2ds_v6,spot,NA,0.029753,USD,Azure Retail Prices API,2025-12-18T04:46:37.573973 +AZURE,japaneast,Standard_D32_v3,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:46:37.574809 +AZURE,japaneast,Standard_D32_v3,reserved_1y,NA,1.30137,USD,Azure Retail Prices API,2025-12-18T04:46:39.158603 +AZURE,japaneast,Standard_D32_v3,reserved_3y,NA,0.887367,USD,Azure Retail Prices API,2025-12-18T04:46:39.158608 +AZURE,japaneast,Standard_D32_v3,spot,NA,0.381427,USD,Azure Retail Prices API,2025-12-18T04:46:37.571826 +AZURE,japaneast,Standard_D32a_v4,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:46:37.571730 +AZURE,japaneast,Standard_D32a_v4,reserved_1y,NA,1.166553,USD,Azure Retail Prices API,2025-12-18T04:46:39.156135 +AZURE,japaneast,Standard_D32a_v4,reserved_3y,NA,0.745967,USD,Azure Retail Prices API,2025-12-18T04:46:39.156140 +AZURE,japaneast,Standard_D32a_v4,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:46:37.572800 +AZURE,japaneast,Standard_D32ads_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:46:37.572353 +AZURE,japaneast,Standard_D32ads_v5,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:46:39.157236 +AZURE,japaneast,Standard_D32ads_v5,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:46:39.157240 +AZURE,japaneast,Standard_D32ads_v5,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:46:37.574711 +AZURE,japaneast,Standard_D32ads_v6,on_demand,NA,2.378,USD,Azure Retail Prices API,2025-12-18T04:46:37.574243 +AZURE,japaneast,Standard_D32ads_v6,reserved_1y,NA,1.40274,USD,Azure Retail Prices API,2025-12-18T04:46:39.158245 +AZURE,japaneast,Standard_D32ads_v6,reserved_3y,NA,0.903501,USD,Azure Retail Prices API,2025-12-18T04:46:39.158248 +AZURE,japaneast,Standard_D32ads_v6,spot,NA,0.439454,USD,Azure Retail Prices API,2025-12-18T04:46:37.572032 +AZURE,japaneast,Standard_D32as_v4,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:46:37.573517 +AZURE,japaneast,Standard_D32as_v4,reserved_1y,NA,1.166553,USD,Azure Retail Prices API,2025-12-18T04:46:39.157875 +AZURE,japaneast,Standard_D32as_v4,reserved_3y,NA,0.745967,USD,Azure Retail Prices API,2025-12-18T04:46:39.157880 +AZURE,japaneast,Standard_D32as_v4,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:46:37.573544 +AZURE,japaneast,Standard_D32as_v5,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:46:37.572330 +AZURE,japaneast,Standard_D32as_v5,reserved_1y,NA,1.057306,USD,Azure Retail Prices API,2025-12-18T04:46:39.156692 +AZURE,japaneast,Standard_D32as_v5,reserved_3y,NA,0.680974,USD,Azure Retail Prices API,2025-12-18T04:46:39.156697 +AZURE,japaneast,Standard_D32as_v5,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:46:37.574232 +AZURE,japaneast,Standard_D32d_v4,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:46:37.574220 +AZURE,japaneast,Standard_D32d_v4,reserved_1y,NA,1.373516,USD,Azure Retail Prices API,2025-12-18T04:46:39.158228 +AZURE,japaneast,Standard_D32d_v4,reserved_3y,NA,0.878349,USD,Azure Retail Prices API,2025-12-18T04:46:39.158231 +AZURE,japaneast,Standard_D32d_v4,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:46:37.573364 +AZURE,japaneast,Standard_D32ds_v4,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:46:37.574679 +AZURE,japaneast,Standard_D32ds_v4,reserved_1y,NA,1.373516,USD,Azure Retail Prices API,2025-12-18T04:46:39.158522 +AZURE,japaneast,Standard_D32ds_v4,reserved_3y,NA,0.878349,USD,Azure Retail Prices API,2025-12-18T04:46:39.158527 +AZURE,japaneast,Standard_D32ds_v4,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:46:37.572460 +AZURE,japaneast,Standard_D32ds_v5,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:46:37.572302 +AZURE,japaneast,Standard_D32ds_v5,reserved_1y,NA,1.378196,USD,Azure Retail Prices API,2025-12-18T04:46:39.156674 +AZURE,japaneast,Standard_D32ds_v5,reserved_3y,NA,0.887671,USD,Azure Retail Prices API,2025-12-18T04:46:39.156678 +AZURE,japaneast,Standard_D32ds_v5,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:46:37.574255 +AZURE,japaneast,Standard_D32ds_v6,on_demand,NA,2.575,USD,Azure Retail Prices API,2025-12-18T04:46:37.574743 +AZURE,japaneast,Standard_D32ds_v6,reserved_1y,NA,1.596347,USD,Azure Retail Prices API,2025-12-18T04:46:39.158567 +AZURE,japaneast,Standard_D32ds_v6,reserved_3y,NA,1.004148,USD,Azure Retail Prices API,2025-12-18T04:46:39.158572 +AZURE,japaneast,Standard_D32ds_v6,spot,NA,0.47586,USD,Azure Retail Prices API,2025-12-18T04:46:37.573324 +AZURE,japaneast,Standard_D32pds_v6,on_demand,NA,1.888,USD,Azure Retail Prices API,2025-12-18T04:46:37.574820 +AZURE,japaneast,Standard_D32pds_v6,reserved_1y,NA,1.113927,USD,Azure Retail Prices API,2025-12-18T04:46:39.158613 +AZURE,japaneast,Standard_D32pds_v6,reserved_3y,NA,0.717428,USD,Azure Retail Prices API,2025-12-18T04:46:39.158617 +AZURE,japaneast,Standard_D32pds_v6,spot,NA,0.348902,USD,Azure Retail Prices API,2025-12-18T04:46:37.574315 +AZURE,japaneast,Standard_D32ps_v6,on_demand,NA,1.443,USD,Azure Retail Prices API,2025-12-18T04:46:37.572088 +AZURE,japaneast,Standard_D32ps_v6,reserved_1y,NA,0.851484,USD,Azure Retail Prices API,2025-12-18T04:46:39.156405 +AZURE,japaneast,Standard_D32ps_v6,reserved_3y,NA,0.548402,USD,Azure Retail Prices API,2025-12-18T04:46:39.156410 +AZURE,japaneast,Standard_D32ps_v6,spot,NA,0.266666,USD,Azure Retail Prices API,2025-12-18T04:46:37.571703 +AZURE,japaneast,Standard_D32s_v3,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:46:37.572121 +AZURE,japaneast,Standard_D32s_v3,reserved_1y,NA,1.30137,USD,Azure Retail Prices API,2025-12-18T04:46:39.156441 +AZURE,japaneast,Standard_D32s_v3,reserved_3y,NA,0.887367,USD,Azure Retail Prices API,2025-12-18T04:46:39.156446 +AZURE,japaneast,Standard_D32s_v3,spot,NA,0.381427,USD,Azure Retail Prices API,2025-12-18T04:46:37.574381 +AZURE,japaneast,Standard_D32s_v4,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:46:37.574272 +AZURE,japaneast,Standard_D32s_v4,reserved_1y,NA,1.166553,USD,Azure Retail Prices API,2025-12-18T04:46:39.158262 +AZURE,japaneast,Standard_D32s_v4,reserved_3y,NA,0.745967,USD,Azure Retail Prices API,2025-12-18T04:46:39.158265 +AZURE,japaneast,Standard_D32s_v4,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:46:37.573034 +AZURE,japaneast,Standard_D32s_v5,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:46:37.574485 +AZURE,japaneast,Standard_D32s_v5,reserved_1y,NA,1.170548,USD,Azure Retail Prices API,2025-12-18T04:46:39.158388 +AZURE,japaneast,Standard_D32s_v5,reserved_3y,NA,0.734094,USD,Azure Retail Prices API,2025-12-18T04:46:39.158391 +AZURE,japaneast,Standard_D32s_v5,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:46:37.572582 +AZURE,japaneast,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485706 +AZURE,japaneast,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485715 +AZURE,japaneast,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485719 +AZURE,japaneast,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485710 +AZURE,japaneast,Standard_D48a_v4,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:46:37.572307 +AZURE,japaneast,Standard_D48a_v4,reserved_1y,NA,1.749886,USD,Azure Retail Prices API,2025-12-18T04:46:39.156683 +AZURE,japaneast,Standard_D48a_v4,reserved_3y,NA,1.118988,USD,Azure Retail Prices API,2025-12-18T04:46:39.156687 +AZURE,japaneast,Standard_D48a_v4,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:46:37.572486 +AZURE,japaneast,Standard_D48ads_v5,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:37.571860 +AZURE,japaneast,Standard_D48ads_v5,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:46:39.156259 +AZURE,japaneast,Standard_D48ads_v5,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:46:39.156264 +AZURE,japaneast,Standard_D48ads_v5,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:37.574538 +AZURE,japaneast,Standard_D48ads_v6,on_demand,NA,3.566,USD,Azure Retail Prices API,2025-12-18T04:46:37.572000 +AZURE,japaneast,Standard_D48ads_v6,reserved_1y,NA,2.104224,USD,Azure Retail Prices API,2025-12-18T04:46:39.156351 +AZURE,japaneast,Standard_D48ads_v6,reserved_3y,NA,1.355213,USD,Azure Retail Prices API,2025-12-18T04:46:39.156355 +AZURE,japaneast,Standard_D48ads_v6,spot,NA,0.658997,USD,Azure Retail Prices API,2025-12-18T04:46:37.572110 +AZURE,japaneast,Standard_D48as_v4,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:46:37.571909 +AZURE,japaneast,Standard_D48as_v4,reserved_1y,NA,1.749886,USD,Azure Retail Prices API,2025-12-18T04:46:39.156305 +AZURE,japaneast,Standard_D48as_v4,reserved_3y,NA,1.118988,USD,Azure Retail Prices API,2025-12-18T04:46:39.156310 +AZURE,japaneast,Standard_D48as_v4,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:46:37.573444 +AZURE,japaneast,Standard_D48as_v5,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:37.571844 +AZURE,japaneast,Standard_D48as_v5,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:46:39.156240 +AZURE,japaneast,Standard_D48as_v5,reserved_3y,NA,1.021423,USD,Azure Retail Prices API,2025-12-18T04:46:39.156245 +AZURE,japaneast,Standard_D48as_v5,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:37.574606 +AZURE,japaneast,Standard_D48d_v4,on_demand,NA,3.504,USD,Azure Retail Prices API,2025-12-18T04:46:37.573466 +AZURE,japaneast,Standard_D48d_v4,reserved_1y,NA,2.060388,USD,Azure Retail Prices API,2025-12-18T04:46:39.157805 +AZURE,japaneast,Standard_D48d_v4,reserved_3y,NA,1.317504,USD,Azure Retail Prices API,2025-12-18T04:46:39.157822 +AZURE,japaneast,Standard_D48d_v4,spot,NA,0.647539,USD,Azure Retail Prices API,2025-12-18T04:46:37.573422 +AZURE,japaneast,Standard_D48ds_v4,on_demand,NA,3.504,USD,Azure Retail Prices API,2025-12-18T04:46:37.572700 +AZURE,japaneast,Standard_D48ds_v4,reserved_1y,NA,2.060388,USD,Azure Retail Prices API,2025-12-18T04:46:39.157061 +AZURE,japaneast,Standard_D48ds_v4,reserved_3y,NA,1.317504,USD,Azure Retail Prices API,2025-12-18T04:46:39.157065 +AZURE,japaneast,Standard_D48ds_v4,spot,NA,0.647539,USD,Azure Retail Prices API,2025-12-18T04:46:37.573548 +AZURE,japaneast,Standard_D48ds_v5,on_demand,NA,3.504,USD,Azure Retail Prices API,2025-12-18T04:46:37.571886 +AZURE,japaneast,Standard_D48ds_v5,reserved_1y,NA,2.067352,USD,Azure Retail Prices API,2025-12-18T04:46:39.156287 +AZURE,japaneast,Standard_D48ds_v5,reserved_3y,NA,1.331507,USD,Azure Retail Prices API,2025-12-18T04:46:39.156291 +AZURE,japaneast,Standard_D48ds_v5,spot,NA,0.647539,USD,Azure Retail Prices API,2025-12-18T04:46:37.573453 +AZURE,japaneast,Standard_D48ds_v6,on_demand,NA,3.862,USD,Azure Retail Prices API,2025-12-18T04:46:37.572933 +AZURE,japaneast,Standard_D48ds_v6,reserved_1y,NA,2.394521,USD,Azure Retail Prices API,2025-12-18T04:46:39.157284 +AZURE,japaneast,Standard_D48ds_v6,reserved_3y,NA,1.506202,USD,Azure Retail Prices API,2025-12-18T04:46:39.157289 +AZURE,japaneast,Standard_D48ds_v6,spot,NA,0.713698,USD,Azure Retail Prices API,2025-12-18T04:46:37.574749 +AZURE,japaneast,Standard_D48pds_v6,on_demand,NA,2.832,USD,Azure Retail Prices API,2025-12-18T04:46:37.573553 +AZURE,japaneast,Standard_D48pds_v6,reserved_1y,NA,1.67089,USD,Azure Retail Prices API,2025-12-18T04:46:39.157915 +AZURE,japaneast,Standard_D48pds_v6,reserved_3y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:46:39.157919 +AZURE,japaneast,Standard_D48pds_v6,spot,NA,0.523354,USD,Azure Retail Prices API,2025-12-18T04:46:37.574770 +AZURE,japaneast,Standard_D48ps_v6,on_demand,NA,2.165,USD,Azure Retail Prices API,2025-12-18T04:46:37.572823 +AZURE,japaneast,Standard_D48ps_v6,reserved_1y,NA,1.277283,USD,Azure Retail Prices API,2025-12-18T04:46:39.157159 +AZURE,japaneast,Standard_D48ps_v6,reserved_3y,NA,0.822641,USD,Azure Retail Prices API,2025-12-18T04:46:39.157164 +AZURE,japaneast,Standard_D48ps_v6,spot,NA,0.400092,USD,Azure Retail Prices API,2025-12-18T04:46:37.573608 +AZURE,japaneast,Standard_D48s_v4,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:46:37.572385 +AZURE,japaneast,Standard_D48s_v4,reserved_1y,NA,1.749886,USD,Azure Retail Prices API,2025-12-18T04:46:39.156740 +AZURE,japaneast,Standard_D48s_v4,reserved_3y,NA,1.118988,USD,Azure Retail Prices API,2025-12-18T04:46:39.156744 +AZURE,japaneast,Standard_D48s_v4,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:46:37.571849 +AZURE,japaneast,Standard_D48s_v5,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:46:37.571902 +AZURE,japaneast,Standard_D48s_v5,reserved_1y,NA,1.755822,USD,Azure Retail Prices API,2025-12-18T04:46:39.156296 +AZURE,japaneast,Standard_D48s_v5,reserved_3y,NA,1.101104,USD,Azure Retail Prices API,2025-12-18T04:46:39.156300 +AZURE,japaneast,Standard_D48s_v5,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:46:37.573448 +AZURE,japaneast,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486527 +AZURE,japaneast,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486541 +AZURE,japaneast,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486549 +AZURE,japaneast,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486534 +AZURE,japaneast,Standard_D4a_v4,on_demand,NA,0.248,USD,Azure Retail Prices API,2025-12-18T04:46:37.571925 +AZURE,japaneast,Standard_D4a_v4,reserved_1y,NA,0.145776,USD,Azure Retail Prices API,2025-12-18T04:46:39.156314 +AZURE,japaneast,Standard_D4a_v4,reserved_3y,NA,0.093265,USD,Azure Retail Prices API,2025-12-18T04:46:39.156319 +AZURE,japaneast,Standard_D4a_v4,spot,NA,0.04583,USD,Azure Retail Prices API,2025-12-18T04:46:37.571920 +AZURE,japaneast,Standard_D4ads_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:46:37.572673 +AZURE,japaneast,Standard_D4ads_v5,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:46:39.157139 +AZURE,japaneast,Standard_D4ads_v5,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:46:39.157144 +AZURE,japaneast,Standard_D4ads_v5,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:46:37.573594 +AZURE,japaneast,Standard_D4ads_v6,on_demand,NA,0.297,USD,Azure Retail Prices API,2025-12-18T04:46:37.573758 +AZURE,japaneast,Standard_D4ads_v6,reserved_1y,NA,0.175342,USD,Azure Retail Prices API,2025-12-18T04:46:39.158001 +AZURE,japaneast,Standard_D4ads_v6,reserved_3y,NA,0.112938,USD,Azure Retail Prices API,2025-12-18T04:46:39.158004 +AZURE,japaneast,Standard_D4ads_v6,spot,NA,0.054886,USD,Azure Retail Prices API,2025-12-18T04:46:37.572817 +AZURE,japaneast,Standard_D4as_v5,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:46:37.572411 +AZURE,japaneast,Standard_D4as_v5,reserved_1y,NA,0.132192,USD,Azure Retail Prices API,2025-12-18T04:46:39.156787 +AZURE,japaneast,Standard_D4as_v5,reserved_3y,NA,0.085122,USD,Azure Retail Prices API,2025-12-18T04:46:39.156792 +AZURE,japaneast,Standard_D4as_v5,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:46:37.573835 +AZURE,japaneast,Standard_D4d_v4,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:37.572922 +AZURE,japaneast,Standard_D4d_v4,reserved_1y,NA,0.171689,USD,Azure Retail Prices API,2025-12-18T04:46:39.157274 +AZURE,japaneast,Standard_D4d_v4,reserved_3y,NA,0.109779,USD,Azure Retail Prices API,2025-12-18T04:46:39.157279 +AZURE,japaneast,Standard_D4d_v4,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:46:37.571772 +AZURE,japaneast,Standard_D4ds_v4,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:37.573857 +AZURE,japaneast,Standard_D4ds_v4,reserved_1y,NA,0.171689,USD,Azure Retail Prices API,2025-12-18T04:46:39.158074 +AZURE,japaneast,Standard_D4ds_v4,reserved_3y,NA,0.109779,USD,Azure Retail Prices API,2025-12-18T04:46:39.158077 +AZURE,japaneast,Standard_D4ds_v4,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:46:37.574534 +AZURE,japaneast,Standard_D4ds_v5,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:37.573797 +AZURE,japaneast,Standard_D4ds_v5,reserved_1y,NA,0.17226,USD,Azure Retail Prices API,2025-12-18T04:46:39.158026 +AZURE,japaneast,Standard_D4ds_v5,reserved_3y,NA,0.110959,USD,Azure Retail Prices API,2025-12-18T04:46:39.158029 +AZURE,japaneast,Standard_D4ds_v5,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:46:37.573912 +AZURE,japaneast,Standard_D4ds_v6,on_demand,NA,0.322,USD,Azure Retail Prices API,2025-12-18T04:46:37.572537 +AZURE,japaneast,Standard_D4ds_v6,reserved_1y,NA,0.199543,USD,Azure Retail Prices API,2025-12-18T04:46:39.156898 +AZURE,japaneast,Standard_D4ds_v6,reserved_3y,NA,0.125533,USD,Azure Retail Prices API,2025-12-18T04:46:39.156903 +AZURE,japaneast,Standard_D4ds_v6,spot,NA,0.059506,USD,Azure Retail Prices API,2025-12-18T04:46:37.573599 +AZURE,japaneast,Standard_D4pds_v6,on_demand,NA,0.236,USD,Azure Retail Prices API,2025-12-18T04:46:37.573471 +AZURE,japaneast,Standard_D4pds_v6,reserved_1y,NA,0.139269,USD,Azure Retail Prices API,2025-12-18T04:46:39.157827 +AZURE,japaneast,Standard_D4pds_v6,reserved_3y,NA,0.089688,USD,Azure Retail Prices API,2025-12-18T04:46:39.157832 +AZURE,japaneast,Standard_D4pds_v6,spot,NA,0.043613,USD,Azure Retail Prices API,2025-12-18T04:46:37.572416 +AZURE,japaneast,Standard_D4ps_v6,on_demand,NA,0.18,USD,Azure Retail Prices API,2025-12-18T04:46:37.571735 +AZURE,japaneast,Standard_D4ps_v6,reserved_1y,NA,0.106393,USD,Azure Retail Prices API,2025-12-18T04:46:39.156144 +AZURE,japaneast,Standard_D4ps_v6,reserved_3y,NA,0.068569,USD,Azure Retail Prices API,2025-12-18T04:46:39.156149 +AZURE,japaneast,Standard_D4ps_v6,spot,NA,0.033264,USD,Azure Retail Prices API,2025-12-18T04:46:37.574717 +AZURE,japaneast,Standard_D4s_v3,on_demand,NA,0.258,USD,Azure Retail Prices API,2025-12-18T04:46:37.574738 +AZURE,japaneast,Standard_D4s_v3,reserved_1y,NA,0.162671,USD,Azure Retail Prices API,2025-12-18T04:46:39.158557 +AZURE,japaneast,Standard_D4s_v3,reserved_3y,NA,0.110921,USD,Azure Retail Prices API,2025-12-18T04:46:39.158562 +AZURE,japaneast,Standard_D4s_v3,spot,NA,0.047678,USD,Azure Retail Prices API,2025-12-18T04:46:37.573005 +AZURE,japaneast,Standard_D4s_v4,on_demand,NA,0.248,USD,Azure Retail Prices API,2025-12-18T04:46:37.572027 +AZURE,japaneast,Standard_D4s_v4,reserved_1y,NA,0.145776,USD,Azure Retail Prices API,2025-12-18T04:46:39.156378 +AZURE,japaneast,Standard_D4s_v4,reserved_3y,NA,0.093265,USD,Azure Retail Prices API,2025-12-18T04:46:39.156382 +AZURE,japaneast,Standard_D4s_v4,spot,NA,0.04583,USD,Azure Retail Prices API,2025-12-18T04:46:37.572170 +AZURE,japaneast,Standard_D4s_v5,on_demand,NA,0.248,USD,Azure Retail Prices API,2025-12-18T04:46:37.573730 +AZURE,japaneast,Standard_D4s_v5,reserved_1y,NA,0.146347,USD,Azure Retail Prices API,2025-12-18T04:46:39.157989 +AZURE,japaneast,Standard_D4s_v5,reserved_3y,NA,0.091743,USD,Azure Retail Prices API,2025-12-18T04:46:39.157992 +AZURE,japaneast,Standard_D4s_v5,spot,NA,0.04583,USD,Azure Retail Prices API,2025-12-18T04:46:37.572447 +AZURE,japaneast,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487828 +AZURE,japaneast,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487836 +AZURE,japaneast,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487840 +AZURE,japaneast,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487832 +AZURE,japaneast,Standard_D64_v3,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:46:37.574543 +AZURE,japaneast,Standard_D64_v3,reserved_1y,NA,2.60274,USD,Azure Retail Prices API,2025-12-18T04:46:39.158417 +AZURE,japaneast,Standard_D64_v3,reserved_3y,NA,1.774734,USD,Azure Retail Prices API,2025-12-18T04:46:39.158420 +AZURE,japaneast,Standard_D64_v3,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:46:37.573885 +AZURE,japaneast,Standard_D64a_v4,on_demand,NA,3.968,USD,Azure Retail Prices API,2025-12-18T04:46:37.572689 +AZURE,japaneast,Standard_D64a_v4,reserved_1y,NA,2.333219,USD,Azure Retail Prices API,2025-12-18T04:46:39.157051 +AZURE,japaneast,Standard_D64a_v4,reserved_3y,NA,1.491971,USD,Azure Retail Prices API,2025-12-18T04:46:39.157056 +AZURE,japaneast,Standard_D64a_v4,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:46:37.573935 +AZURE,japaneast,Standard_D64ads_v5,on_demand,NA,7.232,USD,Azure Retail Prices API,2025-12-18T04:46:37.571870 +AZURE,japaneast,Standard_D64ads_v5,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:46:39.156768 +AZURE,japaneast,Standard_D64ads_v5,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:46:39.156772 +AZURE,japaneast,Standard_D64ads_v5,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:46:37.573566 +AZURE,japaneast,Standard_D64ads_v6,on_demand,NA,4.755,USD,Azure Retail Prices API,2025-12-18T04:46:37.574238 +AZURE,japaneast,Standard_D64ads_v6,reserved_1y,NA,2.805594,USD,Azure Retail Prices API,2025-12-18T04:46:39.158239 +AZURE,japaneast,Standard_D64ads_v6,reserved_3y,NA,1.806963,USD,Azure Retail Prices API,2025-12-18T04:46:39.158242 +AZURE,japaneast,Standard_D64ads_v6,spot,NA,0.878724,USD,Azure Retail Prices API,2025-12-18T04:46:37.571946 +AZURE,japaneast,Standard_D64as_v4,on_demand,NA,3.968,USD,Azure Retail Prices API,2025-12-18T04:46:37.573851 +AZURE,japaneast,Standard_D64as_v4,reserved_1y,NA,2.333219,USD,Azure Retail Prices API,2025-12-18T04:46:39.158069 +AZURE,japaneast,Standard_D64as_v4,reserved_3y,NA,1.491971,USD,Azure Retail Prices API,2025-12-18T04:46:39.158071 +AZURE,japaneast,Standard_D64as_v4,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:46:37.574097 +AZURE,japaneast,Standard_D64as_v5,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:46:37.574453 +AZURE,japaneast,Standard_D64as_v5,reserved_1y,NA,2.114612,USD,Azure Retail Prices API,2025-12-18T04:46:39.158371 +AZURE,japaneast,Standard_D64as_v5,reserved_3y,NA,1.36191,USD,Azure Retail Prices API,2025-12-18T04:46:39.158375 +AZURE,japaneast,Standard_D64as_v5,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:46:37.573691 +AZURE,japaneast,Standard_D64d_v4,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:46:37.572132 +AZURE,japaneast,Standard_D64d_v4,reserved_1y,NA,2.747146,USD,Azure Retail Prices API,2025-12-18T04:46:39.156451 +AZURE,japaneast,Standard_D64d_v4,reserved_3y,NA,1.756659,USD,Azure Retail Prices API,2025-12-18T04:46:39.156456 +AZURE,japaneast,Standard_D64d_v4,spot,NA,0.863386,USD,Azure Retail Prices API,2025-12-18T04:46:37.571720 +AZURE,japaneast,Standard_D64ds_v4,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:46:37.573199 +AZURE,japaneast,Standard_D64ds_v4,reserved_1y,NA,2.747146,USD,Azure Retail Prices API,2025-12-18T04:46:39.157501 +AZURE,japaneast,Standard_D64ds_v4,reserved_3y,NA,1.756659,USD,Azure Retail Prices API,2025-12-18T04:46:39.157506 +AZURE,japaneast,Standard_D64ds_v4,spot,NA,0.863386,USD,Azure Retail Prices API,2025-12-18T04:46:37.572496 +AZURE,japaneast,Standard_D64ds_v5,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:46:37.572052 +AZURE,japaneast,Standard_D64ds_v5,reserved_1y,NA,2.756507,USD,Azure Retail Prices API,2025-12-18T04:46:39.156396 +AZURE,japaneast,Standard_D64ds_v5,reserved_3y,NA,1.775342,USD,Azure Retail Prices API,2025-12-18T04:46:39.156401 +AZURE,japaneast,Standard_D64ds_v5,spot,NA,0.863386,USD,Azure Retail Prices API,2025-12-18T04:46:37.574798 +AZURE,japaneast,Standard_D64ds_v6,on_demand,NA,5.149,USD,Azure Retail Prices API,2025-12-18T04:46:37.572148 +AZURE,japaneast,Standard_D64ds_v6,reserved_1y,NA,3.192694,USD,Azure Retail Prices API,2025-12-18T04:46:39.156479 +AZURE,japaneast,Standard_D64ds_v6,reserved_3y,NA,2.008295,USD,Azure Retail Prices API,2025-12-18T04:46:39.156484 +AZURE,japaneast,Standard_D64ds_v6,spot,NA,0.951535,USD,Azure Retail Prices API,2025-12-18T04:46:37.572961 +AZURE,japaneast,Standard_D64pds_v6,on_demand,NA,3.776,USD,Azure Retail Prices API,2025-12-18T04:46:37.573840 +AZURE,japaneast,Standard_D64pds_v6,reserved_1y,NA,2.227854,USD,Azure Retail Prices API,2025-12-18T04:46:39.158056 +AZURE,japaneast,Standard_D64pds_v6,reserved_3y,NA,1.434893,USD,Azure Retail Prices API,2025-12-18T04:46:39.158060 +AZURE,japaneast,Standard_D64pds_v6,spot,NA,0.697805,USD,Azure Retail Prices API,2025-12-18T04:46:37.572684 +AZURE,japaneast,Standard_D64ps_v6,on_demand,NA,2.886,USD,Azure Retail Prices API,2025-12-18T04:46:37.573652 +AZURE,japaneast,Standard_D64ps_v6,reserved_1y,NA,1.702968,USD,Azure Retail Prices API,2025-12-18T04:46:39.157959 +AZURE,japaneast,Standard_D64ps_v6,reserved_3y,NA,1.096842,USD,Azure Retail Prices API,2025-12-18T04:46:39.157962 +AZURE,japaneast,Standard_D64ps_v6,spot,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:46:37.574815 +AZURE,japaneast,Standard_D64s_v3,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:46:37.572093 +AZURE,japaneast,Standard_D64s_v3,reserved_1y,NA,2.60274,USD,Azure Retail Prices API,2025-12-18T04:46:39.156414 +AZURE,japaneast,Standard_D64s_v3,reserved_3y,NA,1.774734,USD,Azure Retail Prices API,2025-12-18T04:46:39.156419 +AZURE,japaneast,Standard_D64s_v3,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:46:37.572977 +AZURE,japaneast,Standard_D64s_v4,on_demand,NA,3.968,USD,Azure Retail Prices API,2025-12-18T04:46:37.573154 +AZURE,japaneast,Standard_D64s_v4,reserved_1y,NA,2.333219,USD,Azure Retail Prices API,2025-12-18T04:46:39.157463 +AZURE,japaneast,Standard_D64s_v4,reserved_3y,NA,1.491971,USD,Azure Retail Prices API,2025-12-18T04:46:39.157467 +AZURE,japaneast,Standard_D64s_v4,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:46:37.574508 +AZURE,japaneast,Standard_D64s_v5,on_demand,NA,3.968,USD,Azure Retail Prices API,2025-12-18T04:46:37.573215 +AZURE,japaneast,Standard_D64s_v5,reserved_1y,NA,2.341096,USD,Azure Retail Prices API,2025-12-18T04:46:39.157529 +AZURE,japaneast,Standard_D64s_v5,reserved_3y,NA,1.468151,USD,Azure Retail Prices API,2025-12-18T04:46:39.157534 +AZURE,japaneast,Standard_D64s_v5,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:46:37.573138 +AZURE,japaneast,Standard_D8_v3,on_demand,NA,0.516,USD,Azure Retail Prices API,2025-12-18T04:46:37.572269 +AZURE,japaneast,Standard_D8_v3,reserved_1y,NA,0.325342,USD,Azure Retail Prices API,2025-12-18T04:46:39.156625 +AZURE,japaneast,Standard_D8_v3,reserved_3y,NA,0.221842,USD,Azure Retail Prices API,2025-12-18T04:46:39.156630 +AZURE,japaneast,Standard_D8_v3,spot,NA,0.095357,USD,Azure Retail Prices API,2025-12-18T04:46:37.572235 +AZURE,japaneast,Standard_D8a_v4,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:46:37.572116 +AZURE,japaneast,Standard_D8a_v4,reserved_1y,NA,0.291667,USD,Azure Retail Prices API,2025-12-18T04:46:39.156433 +AZURE,japaneast,Standard_D8a_v4,reserved_3y,NA,0.186492,USD,Azure Retail Prices API,2025-12-18T04:46:39.156437 +AZURE,japaneast,Standard_D8a_v4,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:46:37.574787 +AZURE,japaneast,Standard_D8ads_v5,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:37.573073 +AZURE,japaneast,Standard_D8ads_v5,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:46:39.157406 +AZURE,japaneast,Standard_D8ads_v5,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:46:39.157411 +AZURE,japaneast,Standard_D8ads_v5,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:37.574776 +AZURE,japaneast,Standard_D8ads_v6,on_demand,NA,0.594,USD,Azure Retail Prices API,2025-12-18T04:46:37.573028 +AZURE,japaneast,Standard_D8ads_v6,reserved_1y,NA,0.350685,USD,Azure Retail Prices API,2025-12-18T04:46:39.157370 +AZURE,japaneast,Standard_D8ads_v6,reserved_3y,NA,0.225875,USD,Azure Retail Prices API,2025-12-18T04:46:39.157374 +AZURE,japaneast,Standard_D8ads_v6,spot,NA,0.109771,USD,Azure Retail Prices API,2025-12-18T04:46:37.574521 +AZURE,japaneast,Standard_D8as_v4,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:46:37.572999 +AZURE,japaneast,Standard_D8as_v4,reserved_1y,NA,0.291667,USD,Azure Retail Prices API,2025-12-18T04:46:39.157330 +AZURE,japaneast,Standard_D8as_v4,reserved_3y,NA,0.186492,USD,Azure Retail Prices API,2025-12-18T04:46:39.157335 +AZURE,japaneast,Standard_D8as_v4,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:46:37.572477 +AZURE,japaneast,Standard_D8as_v5,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:46:37.573408 +AZURE,japaneast,Standard_D8as_v5,reserved_1y,NA,0.264269,USD,Azure Retail Prices API,2025-12-18T04:46:39.158505 +AZURE,japaneast,Standard_D8as_v5,reserved_3y,NA,0.170244,USD,Azure Retail Prices API,2025-12-18T04:46:39.158509 +AZURE,japaneast,Standard_D8as_v5,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:46:37.573193 +AZURE,japaneast,Standard_D8d_v4,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:46:37.574387 +AZURE,japaneast,Standard_D8d_v4,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:46:39.158317 +AZURE,japaneast,Standard_D8d_v4,reserved_3y,NA,0.219597,USD,Azure Retail Prices API,2025-12-18T04:46:39.158320 +AZURE,japaneast,Standard_D8d_v4,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:46:37.573313 +AZURE,japaneast,Standard_D8ds_v4,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:46:37.572213 +AZURE,japaneast,Standard_D8ds_v4,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:46:39.156558 +AZURE,japaneast,Standard_D8ds_v4,reserved_3y,NA,0.219597,USD,Azure Retail Prices API,2025-12-18T04:46:39.156563 +AZURE,japaneast,Standard_D8ds_v4,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:46:37.574209 +AZURE,japaneast,Standard_D8ds_v5,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:46:37.573907 +AZURE,japaneast,Standard_D8ds_v5,reserved_1y,NA,0.344521,USD,Azure Retail Prices API,2025-12-18T04:46:39.158104 +AZURE,japaneast,Standard_D8ds_v5,reserved_3y,NA,0.221918,USD,Azure Retail Prices API,2025-12-18T04:46:39.158106 +AZURE,japaneast,Standard_D8ds_v5,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:46:37.574029 +AZURE,japaneast,Standard_D8ds_v6,on_demand,NA,0.644,USD,Azure Retail Prices API,2025-12-18T04:46:37.573181 +AZURE,japaneast,Standard_D8ds_v6,reserved_1y,NA,0.399087,USD,Azure Retail Prices API,2025-12-18T04:46:39.157482 +AZURE,japaneast,Standard_D8ds_v6,reserved_3y,NA,0.251027,USD,Azure Retail Prices API,2025-12-18T04:46:39.157486 +AZURE,japaneast,Standard_D8ds_v6,spot,NA,0.119011,USD,Azure Retail Prices API,2025-12-18T04:46:37.573170 +AZURE,japaneast,Standard_D8pds_v6,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:46:37.573462 +AZURE,japaneast,Standard_D8pds_v6,reserved_1y,NA,0.278425,USD,Azure Retail Prices API,2025-12-18T04:46:39.157795 +AZURE,japaneast,Standard_D8pds_v6,reserved_3y,NA,0.179376,USD,Azure Retail Prices API,2025-12-18T04:46:39.157800 +AZURE,japaneast,Standard_D8pds_v6,spot,NA,0.087226,USD,Azure Retail Prices API,2025-12-18T04:46:37.572889 +AZURE,japaneast,Standard_D8ps_v6,on_demand,NA,0.361,USD,Azure Retail Prices API,2025-12-18T04:46:37.572546 +AZURE,japaneast,Standard_D8ps_v6,reserved_1y,NA,0.2129,USD,Azure Retail Prices API,2025-12-18T04:46:39.156907 +AZURE,japaneast,Standard_D8ps_v6,reserved_3y,NA,0.1371,USD,Azure Retail Prices API,2025-12-18T04:46:39.156912 +AZURE,japaneast,Standard_D8ps_v6,spot,NA,0.066713,USD,Azure Retail Prices API,2025-12-18T04:46:37.573941 +AZURE,japaneast,Standard_D8s_v3,on_demand,NA,0.516,USD,Azure Retail Prices API,2025-12-18T04:46:37.573220 +AZURE,japaneast,Standard_D8s_v3,reserved_1y,NA,0.325342,USD,Azure Retail Prices API,2025-12-18T04:46:39.157539 +AZURE,japaneast,Standard_D8s_v3,reserved_3y,NA,0.221842,USD,Azure Retail Prices API,2025-12-18T04:46:39.157544 +AZURE,japaneast,Standard_D8s_v3,spot,NA,0.095357,USD,Azure Retail Prices API,2025-12-18T04:46:37.572342 +AZURE,japaneast,Standard_D8s_v4,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:46:37.573353 +AZURE,japaneast,Standard_D8s_v4,reserved_1y,NA,0.291667,USD,Azure Retail Prices API,2025-12-18T04:46:39.157737 +AZURE,japaneast,Standard_D8s_v4,reserved_3y,NA,0.186492,USD,Azure Retail Prices API,2025-12-18T04:46:39.157742 +AZURE,japaneast,Standard_D8s_v4,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:46:37.573890 +AZURE,japaneast,Standard_D8s_v5,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:46:37.574517 +AZURE,japaneast,Standard_D8s_v5,reserved_1y,NA,0.292694,USD,Azure Retail Prices API,2025-12-18T04:46:39.158405 +AZURE,japaneast,Standard_D8s_v5,reserved_3y,NA,0.183524,USD,Azure Retail Prices API,2025-12-18T04:46:39.158408 +AZURE,japaneast,Standard_D8s_v5,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:46:37.572482 +AZURE,japaneast,Standard_D96a_v4,on_demand,NA,5.952,USD,Azure Retail Prices API,2025-12-18T04:46:37.574249 +AZURE,japaneast,Standard_D96a_v4,reserved_1y,NA,3.499772,USD,Azure Retail Prices API,2025-12-18T04:46:39.158251 +AZURE,japaneast,Standard_D96a_v4,reserved_3y,NA,2.237938,USD,Azure Retail Prices API,2025-12-18T04:46:39.158253 +AZURE,japaneast,Standard_D96a_v4,spot,NA,1.09993,USD,Azure Retail Prices API,2025-12-18T04:46:37.574052 +AZURE,japaneast,Standard_D96ads_v5,on_demand,NA,10.848,USD,Azure Retail Prices API,2025-12-18T04:46:37.572695 +AZURE,japaneast,Standard_D96ads_v5,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:46:39.157245 +AZURE,japaneast,Standard_D96ads_v5,reserved_3y,NA,2.444178,USD,Azure Retail Prices API,2025-12-18T04:46:39.157250 +AZURE,japaneast,Standard_D96ads_v5,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:37.574310 +AZURE,japaneast,Standard_D96ads_v6,on_demand,NA,7.133,USD,Azure Retail Prices API,2025-12-18T04:46:37.572143 +AZURE,japaneast,Standard_D96ads_v6,reserved_1y,NA,4.208333,USD,Azure Retail Prices API,2025-12-18T04:46:39.156470 +AZURE,japaneast,Standard_D96ads_v6,reserved_3y,NA,2.710464,USD,Azure Retail Prices API,2025-12-18T04:46:39.156475 +AZURE,japaneast,Standard_D96ads_v6,spot,NA,1.318178,USD,Azure Retail Prices API,2025-12-18T04:46:37.573271 +AZURE,japaneast,Standard_D96as_v4,on_demand,NA,5.952,USD,Azure Retail Prices API,2025-12-18T04:46:37.573803 +AZURE,japaneast,Standard_D96as_v4,reserved_1y,NA,3.499772,USD,Azure Retail Prices API,2025-12-18T04:46:39.158032 +AZURE,japaneast,Standard_D96as_v4,reserved_3y,NA,2.237938,USD,Azure Retail Prices API,2025-12-18T04:46:39.158035 +AZURE,japaneast,Standard_D96as_v4,spot,NA,1.09993,USD,Azure Retail Prices API,2025-12-18T04:46:37.572048 +AZURE,japaneast,Standard_D96as_v5,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:46:37.571978 +AZURE,japaneast,Standard_D96as_v5,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:46:39.156342 +AZURE,japaneast,Standard_D96as_v5,reserved_3y,NA,2.042884,USD,Azure Retail Prices API,2025-12-18T04:46:39.156346 +AZURE,japaneast,Standard_D96as_v5,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:46:37.573752 +AZURE,japaneast,Standard_D96ds_v5,on_demand,NA,7.008,USD,Azure Retail Prices API,2025-12-18T04:46:37.573708 +AZURE,japaneast,Standard_D96ds_v5,reserved_1y,NA,4.134703,USD,Azure Retail Prices API,2025-12-18T04:46:39.157977 +AZURE,japaneast,Standard_D96ds_v5,reserved_3y,NA,2.663052,USD,Azure Retail Prices API,2025-12-18T04:46:39.157980 +AZURE,japaneast,Standard_D96ds_v5,spot,NA,1.295078,USD,Azure Retail Prices API,2025-12-18T04:46:37.572455 +AZURE,japaneast,Standard_D96ds_v6,on_demand,NA,7.724,USD,Azure Retail Prices API,2025-12-18T04:46:37.571799 +AZURE,japaneast,Standard_D96ds_v6,reserved_1y,NA,4.788927,USD,Azure Retail Prices API,2025-12-18T04:46:39.156192 +AZURE,japaneast,Standard_D96ds_v6,reserved_3y,NA,3.012405,USD,Azure Retail Prices API,2025-12-18T04:46:39.156197 +AZURE,japaneast,Standard_D96ds_v6,spot,NA,1.427395,USD,Azure Retail Prices API,2025-12-18T04:46:37.573078 +AZURE,japaneast,Standard_D96pds_v6,on_demand,NA,5.664,USD,Azure Retail Prices API,2025-12-18T04:46:37.572551 +AZURE,japaneast,Standard_D96pds_v6,reserved_1y,NA,3.341781,USD,Azure Retail Prices API,2025-12-18T04:46:39.156917 +AZURE,japaneast,Standard_D96pds_v6,reserved_3y,NA,2.152321,USD,Azure Retail Prices API,2025-12-18T04:46:39.156922 +AZURE,japaneast,Standard_D96pds_v6,spot,NA,1.046707,USD,Azure Retail Prices API,2025-12-18T04:46:37.572623 +AZURE,japaneast,Standard_D96ps_v6,on_demand,NA,4.33,USD,Azure Retail Prices API,2025-12-18T04:46:37.574137 +AZURE,japaneast,Standard_D96ps_v6,reserved_1y,NA,2.554452,USD,Azure Retail Prices API,2025-12-18T04:46:39.158183 +AZURE,japaneast,Standard_D96ps_v6,reserved_3y,NA,1.645244,USD,Azure Retail Prices API,2025-12-18T04:46:39.158186 +AZURE,japaneast,Standard_D96ps_v6,spot,NA,0.800184,USD,Azure Retail Prices API,2025-12-18T04:46:37.574181 +AZURE,japaneast,Standard_D96s_v5,on_demand,NA,5.952,USD,Azure Retail Prices API,2025-12-18T04:46:37.574288 +AZURE,japaneast,Standard_D96s_v5,reserved_1y,NA,3.511644,USD,Azure Retail Prices API,2025-12-18T04:46:39.158273 +AZURE,japaneast,Standard_D96s_v5,reserved_3y,NA,2.202245,USD,Azure Retail Prices API,2025-12-18T04:46:39.158275 +AZURE,japaneast,Standard_D96s_v5,spot,NA,1.09993,USD,Azure Retail Prices API,2025-12-18T04:46:37.574471 +AZURE,japaneast,Standard_DC16ads_v5,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:37.574304 +AZURE,japaneast,Standard_DC16ads_v5,reserved_1y,NA,0.857648,USD,Azure Retail Prices API,2025-12-18T04:46:39.158278 +AZURE,japaneast,Standard_DC16ads_v5,reserved_3y,NA,0.643189,USD,Azure Retail Prices API,2025-12-18T04:46:39.158281 +AZURE,japaneast,Standard_DC16ads_v5,spot,NA,0.202286,USD,Azure Retail Prices API,2025-12-18T04:46:37.574662 +AZURE,japaneast,Standard_DC16ads_v6,on_demand,NA,1.189,USD,Azure Retail Prices API,2025-12-18T04:46:37.572203 +AZURE,japaneast,Standard_DC16ads_v6,reserved_1y,NA,0.70137,USD,Azure Retail Prices API,2025-12-18T04:46:39.156539 +AZURE,japaneast,Standard_DC16ads_v6,reserved_3y,NA,0.45175,USD,Azure Retail Prices API,2025-12-18T04:46:39.156543 +AZURE,japaneast,Standard_DC16ads_v6,spot,NA,0.219727,USD,Azure Retail Prices API,2025-12-18T04:46:37.574623 +AZURE,japaneast,Standard_DC16as_v5,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:46:37.574164 +AZURE,japaneast,Standard_DC16as_v5,reserved_1y,NA,0.716781,USD,Azure Retail Prices API,2025-12-18T04:46:39.158206 +AZURE,japaneast,Standard_DC16as_v5,reserved_3y,NA,0.537595,USD,Azure Retail Prices API,2025-12-18T04:46:39.158209 +AZURE,japaneast,Standard_DC16as_v5,spot,NA,0.169075,USD,Azure Retail Prices API,2025-12-18T04:46:37.571881 +AZURE,japaneast,Standard_DC2ads_v6,on_demand,NA,0.149,USD,Azure Retail Prices API,2025-12-18T04:46:37.573967 +AZURE,japaneast,Standard_DC2ads_v6,reserved_1y,NA,0.087671,USD,Azure Retail Prices API,2025-12-18T04:46:39.158126 +AZURE,japaneast,Standard_DC2ads_v6,reserved_3y,NA,0.056469,USD,Azure Retail Prices API,2025-12-18T04:46:39.158129 +AZURE,japaneast,Standard_DC2ads_v6,spot,NA,0.027535,USD,Azure Retail Prices API,2025-12-18T04:46:37.573702 +AZURE,japaneast,Standard_DC32ads_v5,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:46:37.573630 +AZURE,japaneast,Standard_DC32ads_v5,reserved_1y,NA,1.715183,USD,Azure Retail Prices API,2025-12-18T04:46:39.157941 +AZURE,japaneast,Standard_DC32ads_v5,reserved_3y,NA,1.286416,USD,Azure Retail Prices API,2025-12-18T04:46:39.157944 +AZURE,japaneast,Standard_DC32ads_v5,spot,NA,0.404573,USD,Azure Retail Prices API,2025-12-18T04:46:37.574360 +AZURE,japaneast,Standard_DC32ads_v6,on_demand,NA,2.378,USD,Azure Retail Prices API,2025-12-18T04:46:37.572840 +AZURE,japaneast,Standard_DC32ads_v6,reserved_1y,NA,1.40274,USD,Azure Retail Prices API,2025-12-18T04:46:39.157178 +AZURE,japaneast,Standard_DC32ads_v6,reserved_3y,NA,0.903501,USD,Azure Retail Prices API,2025-12-18T04:46:39.157182 +AZURE,japaneast,Standard_DC32ads_v6,spot,NA,0.439454,USD,Azure Retail Prices API,2025-12-18T04:46:37.573901 +AZURE,japaneast,Standard_DC32as_v5,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:46:37.572829 +AZURE,japaneast,Standard_DC32as_v5,reserved_1y,NA,1.433562,USD,Azure Retail Prices API,2025-12-18T04:46:39.157169 +AZURE,japaneast,Standard_DC32as_v5,reserved_3y,NA,1.07519,USD,Azure Retail Prices API,2025-12-18T04:46:39.157173 +AZURE,japaneast,Standard_DC32as_v5,spot,NA,0.33815,USD,Azure Retail Prices API,2025-12-18T04:46:37.574590 +AZURE,japaneast,Standard_DC48ads_v5,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:37.574006 +AZURE,japaneast,Standard_DC48ads_v5,reserved_1y,NA,2.572831,USD,Azure Retail Prices API,2025-12-18T04:46:39.158132 +AZURE,japaneast,Standard_DC48ads_v5,reserved_3y,NA,1.929604,USD,Azure Retail Prices API,2025-12-18T04:46:39.158135 +AZURE,japaneast,Standard_DC48ads_v5,spot,NA,0.606859,USD,Azure Retail Prices API,2025-12-18T04:46:37.574689 +AZURE,japaneast,Standard_DC48ads_v6,on_demand,NA,3.566,USD,Azure Retail Prices API,2025-12-18T04:46:37.572186 +AZURE,japaneast,Standard_DC48ads_v6,reserved_1y,NA,2.104224,USD,Azure Retail Prices API,2025-12-18T04:46:39.156519 +AZURE,japaneast,Standard_DC48ads_v6,reserved_3y,NA,1.355213,USD,Azure Retail Prices API,2025-12-18T04:46:39.156524 +AZURE,japaneast,Standard_DC48ads_v6,spot,NA,0.658997,USD,Azure Retail Prices API,2025-12-18T04:46:37.574187 +AZURE,japaneast,Standard_DC48as_v5,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:37.572491 +AZURE,japaneast,Standard_DC48as_v5,reserved_1y,NA,2.150457,USD,Azure Retail Prices API,2025-12-18T04:46:39.156870 +AZURE,japaneast,Standard_DC48as_v5,reserved_3y,NA,1.612785,USD,Azure Retail Prices API,2025-12-18T04:46:39.156874 +AZURE,japaneast,Standard_DC48as_v5,spot,NA,0.507226,USD,Azure Retail Prices API,2025-12-18T04:46:37.571767 +AZURE,japaneast,Standard_DC4ads_v5,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:46:37.572230 +AZURE,japaneast,Standard_DC4ads_v5,reserved_1y,NA,0.214384,USD,Azure Retail Prices API,2025-12-18T04:46:39.156577 +AZURE,japaneast,Standard_DC4ads_v5,reserved_3y,NA,0.160807,USD,Azure Retail Prices API,2025-12-18T04:46:39.156583 +AZURE,japaneast,Standard_DC4ads_v5,spot,NA,0.050572,USD,Azure Retail Prices API,2025-12-18T04:46:37.571833 +AZURE,japaneast,Standard_DC4ads_v6,on_demand,NA,0.297,USD,Azure Retail Prices API,2025-12-18T04:46:37.571838 +AZURE,japaneast,Standard_DC4ads_v6,reserved_1y,NA,0.175342,USD,Azure Retail Prices API,2025-12-18T04:46:39.156231 +AZURE,japaneast,Standard_DC4ads_v6,reserved_3y,NA,0.112938,USD,Azure Retail Prices API,2025-12-18T04:46:39.156236 +AZURE,japaneast,Standard_DC4ads_v6,spot,NA,0.054886,USD,Azure Retail Prices API,2025-12-18T04:46:37.573248 +AZURE,japaneast,Standard_DC4as_v5,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:46:37.572197 +AZURE,japaneast,Standard_DC4as_v5,reserved_1y,NA,0.179224,USD,Azure Retail Prices API,2025-12-18T04:46:39.156529 +AZURE,japaneast,Standard_DC4as_v5,reserved_3y,NA,0.134399,USD,Azure Retail Prices API,2025-12-18T04:46:39.156534 +AZURE,japaneast,Standard_DC4as_v5,spot,NA,0.042269,USD,Azure Retail Prices API,2025-12-18T04:46:37.571761 +AZURE,japaneast,Standard_DC64ads_v5,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:46:37.572285 +AZURE,japaneast,Standard_DC64ads_v5,reserved_1y,NA,3.430365,USD,Azure Retail Prices API,2025-12-18T04:46:39.156655 +AZURE,japaneast,Standard_DC64ads_v5,reserved_3y,NA,2.572793,USD,Azure Retail Prices API,2025-12-18T04:46:39.156660 +AZURE,japaneast,Standard_DC64ads_v5,spot,NA,0.809146,USD,Azure Retail Prices API,2025-12-18T04:46:37.572527 +AZURE,japaneast,Standard_DC64ads_v6,on_demand,NA,4.755,USD,Azure Retail Prices API,2025-12-18T04:46:37.573571 +AZURE,japaneast,Standard_DC64ads_v6,reserved_1y,NA,2.805594,USD,Azure Retail Prices API,2025-12-18T04:46:39.157922 +AZURE,japaneast,Standard_DC64ads_v6,reserved_3y,NA,1.806963,USD,Azure Retail Prices API,2025-12-18T04:46:39.157925 +AZURE,japaneast,Standard_DC64ads_v6,spot,NA,0.878724,USD,Azure Retail Prices API,2025-12-18T04:46:37.573575 +AZURE,japaneast,Standard_DC64as_v5,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:46:37.573490 +AZURE,japaneast,Standard_DC64as_v5,reserved_1y,NA,2.867237,USD,Azure Retail Prices API,2025-12-18T04:46:39.157836 +AZURE,japaneast,Standard_DC64as_v5,reserved_3y,NA,2.150419,USD,Azure Retail Prices API,2025-12-18T04:46:39.157841 +AZURE,japaneast,Standard_DC64as_v5,spot,NA,0.676301,USD,Azure Retail Prices API,2025-12-18T04:46:37.572509 +AZURE,japaneast,Standard_DC8ads_v5,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:37.573957 +AZURE,japaneast,Standard_DC8ads_v5,reserved_1y,NA,0.428767,USD,Azure Retail Prices API,2025-12-18T04:46:39.158121 +AZURE,japaneast,Standard_DC8ads_v5,reserved_3y,NA,0.321613,USD,Azure Retail Prices API,2025-12-18T04:46:39.158123 +AZURE,japaneast,Standard_DC8ads_v5,spot,NA,0.101143,USD,Azure Retail Prices API,2025-12-18T04:46:37.573111 +AZURE,japaneast,Standard_DC8ads_v6,on_demand,NA,0.594,USD,Azure Retail Prices API,2025-12-18T04:46:37.572578 +AZURE,japaneast,Standard_DC8ads_v6,reserved_1y,NA,0.350685,USD,Azure Retail Prices API,2025-12-18T04:46:39.156956 +AZURE,japaneast,Standard_DC8ads_v6,reserved_3y,NA,0.225875,USD,Azure Retail Prices API,2025-12-18T04:46:39.156961 +AZURE,japaneast,Standard_DC8ads_v6,spot,NA,0.109771,USD,Azure Retail Prices API,2025-12-18T04:46:37.572072 +AZURE,japaneast,Standard_DC8as_v5,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:46:37.573187 +AZURE,japaneast,Standard_DC8as_v5,reserved_1y,NA,0.358447,USD,Azure Retail Prices API,2025-12-18T04:46:39.157491 +AZURE,japaneast,Standard_DC8as_v5,reserved_3y,NA,0.268798,USD,Azure Retail Prices API,2025-12-18T04:46:39.157496 +AZURE,japaneast,Standard_DC8as_v5,spot,NA,0.084538,USD,Azure Retail Prices API,2025-12-18T04:46:37.574343 +AZURE,japaneast,Standard_DC96ads_v5,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:37.574657 +AZURE,japaneast,Standard_DC96ads_v5,reserved_1y,NA,5.145548,USD,Azure Retail Prices API,2025-12-18T04:46:39.158497 +AZURE,japaneast,Standard_DC96ads_v5,reserved_3y,NA,3.859209,USD,Azure Retail Prices API,2025-12-18T04:46:39.158501 +AZURE,japaneast,Standard_DC96ads_v5,spot,NA,1.213718,USD,Azure Retail Prices API,2025-12-18T04:46:37.572192 +AZURE,japaneast,Standard_DC96ads_v6,on_demand,NA,7.133,USD,Azure Retail Prices API,2025-12-18T04:46:37.572883 +AZURE,japaneast,Standard_DC96ads_v6,reserved_1y,NA,4.208333,USD,Azure Retail Prices API,2025-12-18T04:46:39.157226 +AZURE,japaneast,Standard_DC96ads_v6,reserved_3y,NA,2.710464,USD,Azure Retail Prices API,2025-12-18T04:46:39.157230 +AZURE,japaneast,Standard_DC96ads_v6,spot,NA,1.318178,USD,Azure Retail Prices API,2025-12-18T04:46:37.572513 +AZURE,japaneast,Standard_DC96as_v5,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:46:37.574326 +AZURE,japaneast,Standard_DC96as_v5,reserved_1y,NA,4.300799,USD,Azure Retail Prices API,2025-12-18T04:46:39.158289 +AZURE,japaneast,Standard_DC96as_v5,reserved_3y,NA,3.225609,USD,Azure Retail Prices API,2025-12-18T04:46:39.158292 +AZURE,japaneast,Standard_DC96as_v5,spot,NA,1.014451,USD,Azure Retail Prices API,2025-12-18T04:46:37.574391 +AZURE,japaneast,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495594 +AZURE,japaneast,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495602 +AZURE,japaneast,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495606 +AZURE,japaneast,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495598 +AZURE,japaneast,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496495 +AZURE,japaneast,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496503 +AZURE,japaneast,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496508 +AZURE,japaneast,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496499 +AZURE,japaneast,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497326 +AZURE,japaneast,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497340 +AZURE,japaneast,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497346 +AZURE,japaneast,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497334 +AZURE,japaneast,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498123 +AZURE,japaneast,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498131 +AZURE,japaneast,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498135 +AZURE,japaneast,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498127 +AZURE,japaneast,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491954 +AZURE,japaneast,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491962 +AZURE,japaneast,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491966 +AZURE,japaneast,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491958 +AZURE,japaneast,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492676 +AZURE,japaneast,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492685 +AZURE,japaneast,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492689 +AZURE,japaneast,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492681 +AZURE,japaneast,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493412 +AZURE,japaneast,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493420 +AZURE,japaneast,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493424 +AZURE,japaneast,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493416 +AZURE,japaneast,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494109 +AZURE,japaneast,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494118 +AZURE,japaneast,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494123 +AZURE,japaneast,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494113 +AZURE,japaneast,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494835 +AZURE,japaneast,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494843 +AZURE,japaneast,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494847 +AZURE,japaneast,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494839 +AZURE,japaneast,Standard_E128ds_v6,on_demand,NA,12.625,USD,Azure Retail Prices API,2025-12-18T04:46:37.574266 +AZURE,japaneast,Standard_E128ds_v6,reserved_1y,NA,7.827283,USD,Azure Retail Prices API,2025-12-18T04:46:39.158256 +AZURE,japaneast,Standard_E128ds_v6,reserved_3y,NA,4.923592,USD,Azure Retail Prices API,2025-12-18T04:46:39.158259 +AZURE,japaneast,Standard_E128ds_v6,spot,NA,2.3331,USD,Azure Retail Prices API,2025-12-18T04:46:37.574667 +AZURE,japaneast,Standard_E16_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:46:37.572420 +AZURE,japaneast,Standard_E16_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:39.156797 +AZURE,japaneast,Standard_E16_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:39.156802 +AZURE,japaneast,Standard_E16_v3,spot,NA,0.236544,USD,Azure Retail Prices API,2025-12-18T04:46:37.572972 +AZURE,japaneast,Standard_E16a_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:37.573879 +AZURE,japaneast,Standard_E16a_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:39.158091 +AZURE,japaneast,Standard_E16a_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:39.158094 +AZURE,japaneast,Standard_E16a_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:37.574332 +AZURE,japaneast,Standard_E16ads_v5,on_demand,NA,2.008,USD,Azure Retail Prices API,2025-12-18T04:46:37.573330 +AZURE,japaneast,Standard_E16ads_v5,reserved_1y,NA,0.750457,USD,Azure Retail Prices API,2025-12-18T04:46:39.158086 +AZURE,japaneast,Standard_E16ads_v5,reserved_3y,NA,0.483371,USD,Azure Retail Prices API,2025-12-18T04:46:39.158088 +AZURE,japaneast,Standard_E16ads_v5,spot,NA,0.235066,USD,Azure Retail Prices API,2025-12-18T04:46:37.573663 +AZURE,japaneast,Standard_E16ads_v6,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:46:37.572464 +AZURE,japaneast,Standard_E16ads_v6,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:46:39.156851 +AZURE,japaneast,Standard_E16ads_v6,reserved_3y,NA,0.574543,USD,Azure Retail Prices API,2025-12-18T04:46:39.156856 +AZURE,japaneast,Standard_E16ads_v6,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:46:37.573675 +AZURE,japaneast,Standard_E16as_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:37.572043 +AZURE,japaneast,Standard_E16as_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:39.156387 +AZURE,japaneast,Standard_E16as_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:39.156391 +AZURE,japaneast,Standard_E16as_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:37.572591 +AZURE,japaneast,Standard_E16as_v5,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:46:37.573342 +AZURE,japaneast,Standard_E16as_v5,reserved_1y,NA,0.646689,USD,Azure Retail Prices API,2025-12-18T04:46:39.157719 +AZURE,japaneast,Standard_E16as_v5,reserved_3y,NA,0.416476,USD,Azure Retail Prices API,2025-12-18T04:46:39.157723 +AZURE,japaneast,Standard_E16as_v5,spot,NA,0.202541,USD,Azure Retail Prices API,2025-12-18T04:46:37.572778 +AZURE,japaneast,Standard_E16d_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:37.572469 +AZURE,japaneast,Standard_E16d_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:39.156861 +AZURE,japaneast,Standard_E16d_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:39.156865 +AZURE,japaneast,Standard_E16d_v4,spot,NA,0.257242,USD,Azure Retail Prices API,2025-12-18T04:46:37.574131 +AZURE,japaneast,Standard_E16ds_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:37.571865 +AZURE,japaneast,Standard_E16ds_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:39.156268 +AZURE,japaneast,Standard_E16ds_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:39.156273 +AZURE,japaneast,Standard_E16ds_v4,spot,NA,0.257242,USD,Azure Retail Prices API,2025-12-18T04:46:37.573763 +AZURE,japaneast,Standard_E16ds_v5,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:37.574560 +AZURE,japaneast,Standard_E16ds_v5,reserved_1y,NA,0.821233,USD,Azure Retail Prices API,2025-12-18T04:46:39.158441 +AZURE,japaneast,Standard_E16ds_v5,reserved_3y,NA,0.528957,USD,Azure Retail Prices API,2025-12-18T04:46:39.158444 +AZURE,japaneast,Standard_E16ds_v5,spot,NA,0.257242,USD,Azure Retail Prices API,2025-12-18T04:46:37.572794 +AZURE,japaneast,Standard_E16ds_v6,on_demand,NA,1.578,USD,Azure Retail Prices API,2025-12-18T04:46:37.573264 +AZURE,japaneast,Standard_E16ds_v6,reserved_1y,NA,0.978425,USD,Azure Retail Prices API,2025-12-18T04:46:39.157578 +AZURE,japaneast,Standard_E16ds_v6,reserved_3y,NA,0.615449,USD,Azure Retail Prices API,2025-12-18T04:46:39.157583 +AZURE,japaneast,Standard_E16ds_v6,spot,NA,0.291614,USD,Azure Retail Prices API,2025-12-18T04:46:37.574489 +AZURE,japaneast,Standard_E16pds_v6,on_demand,NA,1.203,USD,Azure Retail Prices API,2025-12-18T04:46:37.574079 +AZURE,japaneast,Standard_E16pds_v6,reserved_1y,NA,0.709932,USD,Azure Retail Prices API,2025-12-18T04:46:39.158166 +AZURE,japaneast,Standard_E16pds_v6,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:39.158169 +AZURE,japaneast,Standard_E16pds_v6,spot,NA,0.222314,USD,Azure Retail Prices API,2025-12-18T04:46:37.573165 +AZURE,japaneast,Standard_E16ps_v6,on_demand,NA,0.949,USD,Azure Retail Prices API,2025-12-18T04:46:37.573067 +AZURE,japaneast,Standard_E16ps_v6,reserved_1y,NA,0.559817,USD,Azure Retail Prices API,2025-12-18T04:46:39.157397 +AZURE,japaneast,Standard_E16ps_v6,reserved_3y,NA,0.36054,USD,Azure Retail Prices API,2025-12-18T04:46:39.157402 +AZURE,japaneast,Standard_E16ps_v6,spot,NA,0.175375,USD,Azure Retail Prices API,2025-12-18T04:46:37.571988 +AZURE,japaneast,Standard_E16s_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:46:37.572257 +AZURE,japaneast,Standard_E16s_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:39.156606 +AZURE,japaneast,Standard_E16s_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:39.156611 +AZURE,japaneast,Standard_E16s_v3,spot,NA,0.236544,USD,Azure Retail Prices API,2025-12-18T04:46:37.573736 +AZURE,japaneast,Standard_E16s_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:37.572939 +AZURE,japaneast,Standard_E16s_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:39.157294 +AZURE,japaneast,Standard_E16s_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:39.157298 +AZURE,japaneast,Standard_E16s_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:37.573397 +AZURE,japaneast,Standard_E16s_v5,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:37.572956 +AZURE,japaneast,Standard_E16s_v5,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:39.157312 +AZURE,japaneast,Standard_E16s_v5,reserved_3y,NA,0.449924,USD,Azure Retail Prices API,2025-12-18T04:46:39.157317 +AZURE,japaneast,Standard_E16s_v5,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:37.574153 +AZURE,japaneast,Standard_E20a_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:37.574673 +AZURE,japaneast,Standard_E20a_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:39.158513 +AZURE,japaneast,Standard_E20a_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:39.158518 +AZURE,japaneast,Standard_E20a_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:37.574198 +AZURE,japaneast,Standard_E20ads_v5,on_demand,NA,2.51,USD,Azure Retail Prices API,2025-12-18T04:46:37.571892 +AZURE,japaneast,Standard_E20ads_v5,reserved_1y,NA,0.938128,USD,Azure Retail Prices API,2025-12-18T04:46:39.158642 +AZURE,japaneast,Standard_E20ads_v5,reserved_3y,NA,0.604186,USD,Azure Retail Prices API,2025-12-18T04:46:39.158647 +AZURE,japaneast,Standard_E20ads_v5,spot,NA,0.293832,USD,Azure Retail Prices API,2025-12-18T04:46:37.572711 +AZURE,japaneast,Standard_E20ads_v6,on_demand,NA,1.89,USD,Azure Retail Prices API,2025-12-18T04:46:37.574493 +AZURE,japaneast,Standard_E20ads_v6,reserved_1y,NA,1.115068,USD,Azure Retail Prices API,2025-12-18T04:46:39.158393 +AZURE,japaneast,Standard_E20ads_v6,reserved_3y,NA,0.718189,USD,Azure Retail Prices API,2025-12-18T04:46:39.158397 +AZURE,japaneast,Standard_E20ads_v6,spot,NA,0.349272,USD,Azure Retail Prices API,2025-12-18T04:46:37.574569 +AZURE,japaneast,Standard_E20as_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:37.574640 +AZURE,japaneast,Standard_E20as_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:39.158479 +AZURE,japaneast,Standard_E20as_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:39.158484 +AZURE,japaneast,Standard_E20as_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:37.572473 +AZURE,japaneast,Standard_E20as_v5,on_demand,NA,2.29,USD,Azure Retail Prices API,2025-12-18T04:46:37.574445 +AZURE,japaneast,Standard_E20as_v5,reserved_1y,NA,0.808333,USD,Azure Retail Prices API,2025-12-18T04:46:39.158453 +AZURE,japaneast,Standard_E20as_v5,reserved_3y,NA,0.520586,USD,Azure Retail Prices API,2025-12-18T04:46:39.158472 +AZURE,japaneast,Standard_E20as_v5,spot,NA,0.253176,USD,Azure Retail Prices API,2025-12-18T04:46:37.573386 +AZURE,japaneast,Standard_E20d_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:37.572442 +AZURE,japaneast,Standard_E20d_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:39.156841 +AZURE,japaneast,Standard_E20d_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:39.156847 +AZURE,japaneast,Standard_E20d_v4,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:46:37.573022 +AZURE,japaneast,Standard_E20ds_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:37.572564 +AZURE,japaneast,Standard_E20ds_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:39.156936 +AZURE,japaneast,Standard_E20ds_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:39.156941 +AZURE,japaneast,Standard_E20ds_v4,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:46:37.572645 +AZURE,japaneast,Standard_E20ds_v5,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:37.572862 +AZURE,japaneast,Standard_E20ds_v5,reserved_1y,NA,1.026598,USD,Azure Retail Prices API,2025-12-18T04:46:39.157206 +AZURE,japaneast,Standard_E20ds_v5,reserved_3y,NA,0.661187,USD,Azure Retail Prices API,2025-12-18T04:46:39.157211 +AZURE,japaneast,Standard_E20ds_v5,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:46:37.574565 +AZURE,japaneast,Standard_E20ds_v6,on_demand,NA,1.973,USD,Azure Retail Prices API,2025-12-18T04:46:37.574354 +AZURE,japaneast,Standard_E20ds_v6,reserved_1y,NA,1.223059,USD,Azure Retail Prices API,2025-12-18T04:46:39.158300 +AZURE,japaneast,Standard_E20ds_v6,reserved_3y,NA,0.76933,USD,Azure Retail Prices API,2025-12-18T04:46:39.158303 +AZURE,japaneast,Standard_E20ds_v6,spot,NA,0.36461,USD,Azure Retail Prices API,2025-12-18T04:46:37.573984 +AZURE,japaneast,Standard_E20s_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:37.571725 +AZURE,japaneast,Standard_E20s_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:39.156126 +AZURE,japaneast,Standard_E20s_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:39.156130 +AZURE,japaneast,Standard_E20s_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:37.572077 +AZURE,japaneast,Standard_E20s_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:37.571678 +AZURE,japaneast,Standard_E20s_v5,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:39.156083 +AZURE,japaneast,Standard_E20s_v5,reserved_3y,NA,0.562405,USD,Azure Retail Prices API,2025-12-18T04:46:39.156099 +AZURE,japaneast,Standard_E20s_v5,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:37.573995 +AZURE,japaneast,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:46:37.574376 +AZURE,japaneast,Standard_E2_v3,reserved_1y,NA,0.094064,USD,Azure Retail Prices API,2025-12-18T04:46:39.158311 +AZURE,japaneast,Standard_E2_v3,reserved_3y,NA,0.06016,USD,Azure Retail Prices API,2025-12-18T04:46:39.158314 +AZURE,japaneast,Standard_E2_v3,spot,NA,0.029568,USD,Azure Retail Prices API,2025-12-18T04:46:37.573724 +AZURE,japaneast,Standard_E2ads_v6,on_demand,NA,0.189,USD,Azure Retail Prices API,2025-12-18T04:46:37.572402 +AZURE,japaneast,Standard_E2ads_v6,reserved_1y,NA,0.11153,USD,Azure Retail Prices API,2025-12-18T04:46:39.156777 +AZURE,japaneast,Standard_E2ads_v6,reserved_3y,NA,0.071804,USD,Azure Retail Prices API,2025-12-18T04:46:39.156782 +AZURE,japaneast,Standard_E2ads_v6,spot,NA,0.034927,USD,Azure Retail Prices API,2025-12-18T04:46:37.574864 +AZURE,japaneast,Standard_E2ds_v5,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:37.572504 +AZURE,japaneast,Standard_E2ds_v5,reserved_1y,NA,0.102626,USD,Azure Retail Prices API,2025-12-18T04:46:39.156880 +AZURE,japaneast,Standard_E2ds_v5,reserved_3y,NA,0.066134,USD,Azure Retail Prices API,2025-12-18T04:46:39.156884 +AZURE,japaneast,Standard_E2ds_v5,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:46:37.572634 +AZURE,japaneast,Standard_E2ds_v6,on_demand,NA,0.197,USD,Azure Retail Prices API,2025-12-18T04:46:37.572811 +AZURE,japaneast,Standard_E2ds_v6,reserved_1y,NA,0.12226,USD,Azure Retail Prices API,2025-12-18T04:46:39.157148 +AZURE,japaneast,Standard_E2ds_v6,reserved_3y,NA,0.076941,USD,Azure Retail Prices API,2025-12-18T04:46:39.157154 +AZURE,japaneast,Standard_E2ds_v6,spot,NA,0.036406,USD,Azure Retail Prices API,2025-12-18T04:46:37.573258 +AZURE,japaneast,Standard_E2pds_v6,on_demand,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:46:37.572358 +AZURE,japaneast,Standard_E2pds_v6,reserved_1y,NA,0.088699,USD,Azure Retail Prices API,2025-12-18T04:46:39.156721 +AZURE,japaneast,Standard_E2pds_v6,reserved_3y,NA,0.057154,USD,Azure Retail Prices API,2025-12-18T04:46:39.156726 +AZURE,japaneast,Standard_E2pds_v6,spot,NA,0.02772,USD,Azure Retail Prices API,2025-12-18T04:46:37.572928 +AZURE,japaneast,Standard_E32_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:46:37.573303 +AZURE,japaneast,Standard_E32_v3,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:46:39.157700 +AZURE,japaneast,Standard_E32_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:39.157704 +AZURE,japaneast,Standard_E32_v3,spot,NA,0.473088,USD,Azure Retail Prices API,2025-12-18T04:46:37.574348 +AZURE,japaneast,Standard_E32a_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:37.572434 +AZURE,japaneast,Standard_E32a_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:39.156816 +AZURE,japaneast,Standard_E32a_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:39.156821 +AZURE,japaneast,Standard_E32a_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:37.574409 +AZURE,japaneast,Standard_E32ads_v5,on_demand,NA,2.544,USD,Azure Retail Prices API,2025-12-18T04:46:37.571815 +AZURE,japaneast,Standard_E32ads_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:39.156211 +AZURE,japaneast,Standard_E32ads_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:39.156216 +AZURE,japaneast,Standard_E32ads_v5,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:37.573929 +AZURE,japaneast,Standard_E32ads_v6,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:46:37.573646 +AZURE,japaneast,Standard_E32ads_v6,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:46:39.157953 +AZURE,japaneast,Standard_E32ads_v6,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:46:39.157956 +AZURE,japaneast,Standard_E32ads_v6,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:46:37.572425 +AZURE,japaneast,Standard_E32as_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:37.574203 +AZURE,japaneast,Standard_E32as_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:39.158223 +AZURE,japaneast,Standard_E32as_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:39.158226 +AZURE,japaneast,Standard_E32as_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:37.574063 +AZURE,japaneast,Standard_E32as_v5,on_demand,NA,2.192,USD,Azure Retail Prices API,2025-12-18T04:46:37.574169 +AZURE,japaneast,Standard_E32as_v5,reserved_1y,NA,1.293265,USD,Azure Retail Prices API,2025-12-18T04:46:39.158212 +AZURE,japaneast,Standard_E32as_v5,reserved_3y,NA,0.832953,USD,Azure Retail Prices API,2025-12-18T04:46:39.158214 +AZURE,japaneast,Standard_E32as_v5,spot,NA,0.405082,USD,Azure Retail Prices API,2025-12-18T04:46:37.574467 +AZURE,japaneast,Standard_E32d_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:37.572364 +AZURE,japaneast,Standard_E32d_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:39.156730 +AZURE,japaneast,Standard_E32d_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:39.156735 +AZURE,japaneast,Standard_E32d_v4,spot,NA,0.514483,USD,Azure Retail Prices API,2025-12-18T04:46:37.573084 +AZURE,japaneast,Standard_E32ds_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:37.573669 +AZURE,japaneast,Standard_E32ds_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:39.157965 +AZURE,japaneast,Standard_E32ds_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:39.157968 +AZURE,japaneast,Standard_E32ds_v4,spot,NA,0.514483,USD,Azure Retail Prices API,2025-12-18T04:46:37.573613 +AZURE,japaneast,Standard_E32ds_v5,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:37.574142 +AZURE,japaneast,Standard_E32ds_v5,reserved_1y,NA,1.64258,USD,Azure Retail Prices API,2025-12-18T04:46:39.158189 +AZURE,japaneast,Standard_E32ds_v5,reserved_3y,NA,1.057915,USD,Azure Retail Prices API,2025-12-18T04:46:39.158192 +AZURE,japaneast,Standard_E32ds_v5,spot,NA,0.514483,USD,Azure Retail Prices API,2025-12-18T04:46:37.573562 +AZURE,japaneast,Standard_E32ds_v6,on_demand,NA,3.156,USD,Azure Retail Prices API,2025-12-18T04:46:37.573619 +AZURE,japaneast,Standard_E32ds_v6,reserved_1y,NA,1.956849,USD,Azure Retail Prices API,2025-12-18T04:46:39.157934 +AZURE,japaneast,Standard_E32ds_v6,reserved_3y,NA,1.230898,USD,Azure Retail Prices API,2025-12-18T04:46:39.157938 +AZURE,japaneast,Standard_E32ds_v6,spot,NA,0.583229,USD,Azure Retail Prices API,2025-12-18T04:46:37.574294 +AZURE,japaneast,Standard_E32pds_v6,on_demand,NA,2.406,USD,Azure Retail Prices API,2025-12-18T04:46:37.571708 +AZURE,japaneast,Standard_E32pds_v6,reserved_1y,NA,1.419749,USD,Azure Retail Prices API,2025-12-18T04:46:39.156105 +AZURE,japaneast,Standard_E32pds_v6,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:39.156110 +AZURE,japaneast,Standard_E32pds_v6,spot,NA,0.444629,USD,Azure Retail Prices API,2025-12-18T04:46:37.572629 +AZURE,japaneast,Standard_E32ps_v6,on_demand,NA,1.898,USD,Azure Retail Prices API,2025-12-18T04:46:37.572180 +AZURE,japaneast,Standard_E32ps_v6,reserved_1y,NA,1.119635,USD,Azure Retail Prices API,2025-12-18T04:46:39.156509 +AZURE,japaneast,Standard_E32ps_v6,reserved_3y,NA,0.721081,USD,Azure Retail Prices API,2025-12-18T04:46:39.156514 +AZURE,japaneast,Standard_E32ps_v6,spot,NA,0.35075,USD,Azure Retail Prices API,2025-12-18T04:46:37.573039 +AZURE,japaneast,Standard_E32s_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:46:37.574226 +AZURE,japaneast,Standard_E32s_v3,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:46:39.158234 +AZURE,japaneast,Standard_E32s_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:39.158237 +AZURE,japaneast,Standard_E32s_v3,spot,NA,0.473088,USD,Azure Retail Prices API,2025-12-18T04:46:37.574192 +AZURE,japaneast,Standard_E32s_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:37.574401 +AZURE,japaneast,Standard_E32s_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:39.158328 +AZURE,japaneast,Standard_E32s_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:39.158331 +AZURE,japaneast,Standard_E32s_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:37.574125 +AZURE,japaneast,Standard_E32s_v5,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:37.572739 +AZURE,japaneast,Standard_E32s_v5,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:39.157089 +AZURE,japaneast,Standard_E32s_v5,reserved_3y,NA,0.899848,USD,Azure Retail Prices API,2025-12-18T04:46:39.157094 +AZURE,japaneast,Standard_E32s_v5,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:37.573624 +AZURE,japaneast,Standard_E48a_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:37.572944 +AZURE,japaneast,Standard_E48a_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:39.157303 +AZURE,japaneast,Standard_E48a_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:39.157308 +AZURE,japaneast,Standard_E48a_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:37.572596 +AZURE,japaneast,Standard_E48ads_v5,on_demand,NA,6.024,USD,Azure Retail Prices API,2025-12-18T04:46:37.574431 +AZURE,japaneast,Standard_E48ads_v5,reserved_1y,NA,2.251484,USD,Azure Retail Prices API,2025-12-18T04:46:39.158380 +AZURE,japaneast,Standard_E48ads_v5,reserved_3y,NA,1.450076,USD,Azure Retail Prices API,2025-12-18T04:46:39.158384 +AZURE,japaneast,Standard_E48ads_v5,spot,NA,0.705197,USD,Azure Retail Prices API,2025-12-18T04:46:37.574011 +AZURE,japaneast,Standard_E48ads_v6,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:46:37.574556 +AZURE,japaneast,Standard_E48ads_v6,reserved_1y,NA,2.676256,USD,Azure Retail Prices API,2025-12-18T04:46:39.158435 +AZURE,japaneast,Standard_E48ads_v6,reserved_3y,NA,1.723668,USD,Azure Retail Prices API,2025-12-18T04:46:39.158438 +AZURE,japaneast,Standard_E48ads_v6,spot,NA,0.838253,USD,Azure Retail Prices API,2025-12-18T04:46:37.573375 +AZURE,japaneast,Standard_E48as_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:37.571876 +AZURE,japaneast,Standard_E48as_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:39.156278 +AZURE,japaneast,Standard_E48as_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:39.156282 +AZURE,japaneast,Standard_E48as_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:37.571952 +AZURE,japaneast,Standard_E48as_v5,on_demand,NA,5.496,USD,Azure Retail Prices API,2025-12-18T04:46:37.572380 +AZURE,japaneast,Standard_E48as_v5,reserved_1y,NA,1.939954,USD,Azure Retail Prices API,2025-12-18T04:46:39.157669 +AZURE,japaneast,Standard_E48as_v5,reserved_3y,NA,1.249429,USD,Azure Retail Prices API,2025-12-18T04:46:39.157675 +AZURE,japaneast,Standard_E48as_v5,spot,NA,0.607622,USD,Azure Retail Prices API,2025-12-18T04:46:37.573526 +AZURE,japaneast,Standard_E48d_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:37.573100 +AZURE,japaneast,Standard_E48d_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:39.157416 +AZURE,japaneast,Standard_E48d_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:39.157421 +AZURE,japaneast,Standard_E48d_v4,spot,NA,0.771725,USD,Azure Retail Prices API,2025-12-18T04:46:37.574069 +AZURE,japaneast,Standard_E48ds_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:37.574847 +AZURE,japaneast,Standard_E48ds_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:39.158669 +AZURE,japaneast,Standard_E48ds_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:39.158674 +AZURE,japaneast,Standard_E48ds_v4,spot,NA,0.771725,USD,Azure Retail Prices API,2025-12-18T04:46:37.574114 +AZURE,japaneast,Standard_E48ds_v5,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:37.572291 +AZURE,japaneast,Standard_E48ds_v5,reserved_1y,NA,2.463813,USD,Azure Retail Prices API,2025-12-18T04:46:39.156664 +AZURE,japaneast,Standard_E48ds_v5,reserved_3y,NA,1.586872,USD,Azure Retail Prices API,2025-12-18T04:46:39.156669 +AZURE,japaneast,Standard_E48ds_v5,spot,NA,0.771725,USD,Azure Retail Prices API,2025-12-18T04:46:37.574277 +AZURE,japaneast,Standard_E48ds_v6,on_demand,NA,4.734,USD,Azure Retail Prices API,2025-12-18T04:46:37.572252 +AZURE,japaneast,Standard_E48ds_v6,reserved_1y,NA,2.935274,USD,Azure Retail Prices API,2025-12-18T04:46:39.156597 +AZURE,japaneast,Standard_E48ds_v6,reserved_3y,NA,1.846347,USD,Azure Retail Prices API,2025-12-18T04:46:39.156601 +AZURE,japaneast,Standard_E48ds_v6,spot,NA,0.874843,USD,Azure Retail Prices API,2025-12-18T04:46:37.572911 +AZURE,japaneast,Standard_E48pds_v6,on_demand,NA,3.61,USD,Azure Retail Prices API,2025-12-18T04:46:37.572678 +AZURE,japaneast,Standard_E48pds_v6,reserved_1y,NA,2.12968,USD,Azure Retail Prices API,2025-12-18T04:46:39.157042 +AZURE,japaneast,Standard_E48pds_v6,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:39.157046 +AZURE,japaneast,Standard_E48pds_v6,spot,NA,0.667128,USD,Azure Retail Prices API,2025-12-18T04:46:37.572523 +AZURE,japaneast,Standard_E48ps_v6,on_demand,NA,2.846,USD,Azure Retail Prices API,2025-12-18T04:46:37.573308 +AZURE,japaneast,Standard_E48ps_v6,reserved_1y,NA,1.679338,USD,Azure Retail Prices API,2025-12-18T04:46:39.157709 +AZURE,japaneast,Standard_E48ps_v6,reserved_3y,NA,1.081621,USD,Azure Retail Prices API,2025-12-18T04:46:39.157714 +AZURE,japaneast,Standard_E48ps_v6,spot,NA,0.525941,USD,Azure Retail Prices API,2025-12-18T04:46:37.573557 +AZURE,japaneast,Standard_E48s_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:37.574427 +AZURE,japaneast,Standard_E48s_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:39.158345 +AZURE,japaneast,Standard_E48s_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:39.158348 +AZURE,japaneast,Standard_E48s_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:37.572374 +AZURE,japaneast,Standard_E48s_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:37.573106 +AZURE,japaneast,Standard_E48s_v5,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:39.157425 +AZURE,japaneast,Standard_E48s_v5,reserved_3y,NA,1.349772,USD,Azure Retail Prices API,2025-12-18T04:46:39.157430 +AZURE,japaneast,Standard_E48s_v5,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:37.572751 +AZURE,japaneast,Standard_E4_v3,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:46:37.572391 +AZURE,japaneast,Standard_E4_v3,reserved_1y,NA,0.188128,USD,Azure Retail Prices API,2025-12-18T04:46:39.156749 +AZURE,japaneast,Standard_E4_v3,reserved_3y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:46:39.156753 +AZURE,japaneast,Standard_E4_v3,spot,NA,0.059136,USD,Azure Retail Prices API,2025-12-18T04:46:37.572127 +AZURE,japaneast,Standard_E4a_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:37.571714 +AZURE,japaneast,Standard_E4a_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:39.156116 +AZURE,japaneast,Standard_E4a_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:39.156121 +AZURE,japaneast,Standard_E4a_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:37.574109 +AZURE,japaneast,Standard_E4ads_v5,on_demand,NA,0.502,USD,Azure Retail Prices API,2025-12-18T04:46:37.571696 +AZURE,japaneast,Standard_E4ads_v5,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:39.157360 +AZURE,japaneast,Standard_E4ads_v5,reserved_3y,NA,0.120852,USD,Azure Retail Prices API,2025-12-18T04:46:39.157365 +AZURE,japaneast,Standard_E4ads_v5,spot,NA,0.058766,USD,Azure Retail Prices API,2025-12-18T04:46:37.572806 +AZURE,japaneast,Standard_E4ads_v6,on_demand,NA,0.378,USD,Azure Retail Prices API,2025-12-18T04:46:37.572873 +AZURE,japaneast,Standard_E4ads_v6,reserved_1y,NA,0.223059,USD,Azure Retail Prices API,2025-12-18T04:46:39.157216 +AZURE,japaneast,Standard_E4ads_v6,reserved_3y,NA,0.143645,USD,Azure Retail Prices API,2025-12-18T04:46:39.157221 +AZURE,japaneast,Standard_E4ads_v6,spot,NA,0.069854,USD,Azure Retail Prices API,2025-12-18T04:46:37.573589 +AZURE,japaneast,Standard_E4as_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:37.574423 +AZURE,japaneast,Standard_E4as_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:39.158340 +AZURE,japaneast,Standard_E4as_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:39.158343 +AZURE,japaneast,Standard_E4as_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:37.573713 +AZURE,japaneast,Standard_E4as_v5,on_demand,NA,0.458,USD,Azure Retail Prices API,2025-12-18T04:46:37.571930 +AZURE,japaneast,Standard_E4as_v5,reserved_1y,NA,0.161644,USD,Azure Retail Prices API,2025-12-18T04:46:39.158651 +AZURE,japaneast,Standard_E4as_v5,reserved_3y,NA,0.10411,USD,Azure Retail Prices API,2025-12-18T04:46:39.158656 +AZURE,japaneast,Standard_E4as_v5,spot,NA,0.050635,USD,Azure Retail Prices API,2025-12-18T04:46:37.572500 +AZURE,japaneast,Standard_E4d_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:37.573681 +AZURE,japaneast,Standard_E4d_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:39.157971 +AZURE,japaneast,Standard_E4d_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:39.157974 +AZURE,japaneast,Standard_E4d_v4,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:46:37.573403 +AZURE,japaneast,Standard_E4ds_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:37.571855 +AZURE,japaneast,Standard_E4ds_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:39.156249 +AZURE,japaneast,Standard_E4ds_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:39.156254 +AZURE,japaneast,Standard_E4ds_v4,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:46:37.574103 +AZURE,japaneast,Standard_E4ds_v5,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:37.573413 +AZURE,japaneast,Standard_E4ds_v5,reserved_1y,NA,0.205365,USD,Azure Retail Prices API,2025-12-18T04:46:39.157757 +AZURE,japaneast,Standard_E4ds_v5,reserved_3y,NA,0.13223,USD,Azure Retail Prices API,2025-12-18T04:46:39.157762 +AZURE,japaneast,Standard_E4ds_v5,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:46:37.574260 +AZURE,japaneast,Standard_E4ds_v6,on_demand,NA,0.395,USD,Azure Retail Prices API,2025-12-18T04:46:37.574017 +AZURE,japaneast,Standard_E4ds_v6,reserved_1y,NA,0.244635,USD,Azure Retail Prices API,2025-12-18T04:46:39.158138 +AZURE,japaneast,Standard_E4ds_v6,reserved_3y,NA,0.153881,USD,Azure Retail Prices API,2025-12-18T04:46:39.158141 +AZURE,japaneast,Standard_E4ds_v6,spot,NA,0.072996,USD,Azure Retail Prices API,2025-12-18T04:46:37.571915 +AZURE,japaneast,Standard_E4pds_v6,on_demand,NA,0.301,USD,Azure Retail Prices API,2025-12-18T04:46:37.573132 +AZURE,japaneast,Standard_E4pds_v6,reserved_1y,NA,0.177511,USD,Azure Retail Prices API,2025-12-18T04:46:39.157435 +AZURE,japaneast,Standard_E4pds_v6,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:39.157439 +AZURE,japaneast,Standard_E4pds_v6,spot,NA,0.055625,USD,Azure Retail Prices API,2025-12-18T04:46:37.573457 +AZURE,japaneast,Standard_E4ps_v6,on_demand,NA,0.237,USD,Azure Retail Prices API,2025-12-18T04:46:37.572651 +AZURE,japaneast,Standard_E4ps_v6,reserved_1y,NA,0.139954,USD,Azure Retail Prices API,2025-12-18T04:46:39.157023 +AZURE,japaneast,Standard_E4ps_v6,reserved_3y,NA,0.090145,USD,Azure Retail Prices API,2025-12-18T04:46:39.157028 +AZURE,japaneast,Standard_E4ps_v6,spot,NA,0.043798,USD,Azure Retail Prices API,2025-12-18T04:46:37.573435 +AZURE,japaneast,Standard_E4s_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:37.574120 +AZURE,japaneast,Standard_E4s_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:39.158178 +AZURE,japaneast,Standard_E4s_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:39.158180 +AZURE,japaneast,Standard_E4s_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:37.573781 +AZURE,japaneast,Standard_E4s_v5,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:37.572573 +AZURE,japaneast,Standard_E4s_v5,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:39.156946 +AZURE,japaneast,Standard_E4s_v5,reserved_3y,NA,0.112481,USD,Azure Retail Prices API,2025-12-18T04:46:39.156950 +AZURE,japaneast,Standard_E4s_v5,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:37.573277 +AZURE,japaneast,Standard_E64_v3,on_demand,NA,4.376,USD,Azure Retail Prices API,2025-12-18T04:46:37.572767 +AZURE,japaneast,Standard_E64_v3,reserved_1y,NA,2.837443,USD,Azure Retail Prices API,2025-12-18T04:46:39.157107 +AZURE,japaneast,Standard_E64_v3,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:46:39.157112 +AZURE,japaneast,Standard_E64_v3,spot,NA,0.808685,USD,Azure Retail Prices API,2025-12-18T04:46:37.574418 +AZURE,japaneast,Standard_E64a_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:37.574283 +AZURE,japaneast,Standard_E64a_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:39.158267 +AZURE,japaneast,Standard_E64a_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:39.158270 +AZURE,japaneast,Standard_E64a_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:37.574440 +AZURE,japaneast,Standard_E64ads_v5,on_demand,NA,8.032,USD,Azure Retail Prices API,2025-12-18T04:46:37.571936 +AZURE,japaneast,Standard_E64ads_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:39.158660 +AZURE,japaneast,Standard_E64ads_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:39.158665 +AZURE,japaneast,Standard_E64ads_v5,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:37.571793 +AZURE,japaneast,Standard_E64ads_v6,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:46:37.574158 +AZURE,japaneast,Standard_E64ads_v6,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:46:39.158201 +AZURE,japaneast,Standard_E64ads_v6,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:46:39.158203 +AZURE,japaneast,Standard_E64ads_v6,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:46:37.572667 +AZURE,japaneast,Standard_E64as_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:37.573011 +AZURE,japaneast,Standard_E64as_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:39.157340 +AZURE,japaneast,Standard_E64as_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:39.157346 +AZURE,japaneast,Standard_E64as_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:37.572242 +AZURE,japaneast,Standard_E64as_v5,on_demand,NA,7.328,USD,Azure Retail Prices API,2025-12-18T04:46:37.572950 +AZURE,japaneast,Standard_E64as_v5,reserved_1y,NA,2.58653,USD,Azure Retail Prices API,2025-12-18T04:46:39.158156 +AZURE,japaneast,Standard_E64as_v5,reserved_3y,NA,1.665906,USD,Azure Retail Prices API,2025-12-18T04:46:39.158158 +AZURE,japaneast,Standard_E64as_v5,spot,NA,0.810163,USD,Azure Retail Prices API,2025-12-18T04:46:37.573095 +AZURE,japaneast,Standard_E64d_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:37.573431 +AZURE,japaneast,Standard_E64d_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:39.157776 +AZURE,japaneast,Standard_E64d_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:39.157781 +AZURE,japaneast,Standard_E64d_v4,spot,NA,1.028966,USD,Azure Retail Prices API,2025-12-18T04:46:37.572851 +AZURE,japaneast,Standard_E64ds_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:37.573742 +AZURE,japaneast,Standard_E64ds_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:39.157995 +AZURE,japaneast,Standard_E64ds_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:39.157998 +AZURE,japaneast,Standard_E64ds_v4,spot,NA,1.028966,USD,Azure Retail Prices API,2025-12-18T04:46:37.573226 +AZURE,japaneast,Standard_E64ds_v5,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:37.573540 +AZURE,japaneast,Standard_E64ds_v5,reserved_1y,NA,3.28516,USD,Azure Retail Prices API,2025-12-18T04:46:39.157906 +AZURE,japaneast,Standard_E64ds_v5,reserved_3y,NA,2.11583,USD,Azure Retail Prices API,2025-12-18T04:46:39.157910 +AZURE,japaneast,Standard_E64ds_v5,spot,NA,1.028966,USD,Azure Retail Prices API,2025-12-18T04:46:37.571810 +AZURE,japaneast,Standard_E64ds_v6,on_demand,NA,6.312,USD,Azure Retail Prices API,2025-12-18T04:46:37.573016 +AZURE,japaneast,Standard_E64ds_v6,reserved_1y,NA,3.913584,USD,Azure Retail Prices API,2025-12-18T04:46:39.157351 +AZURE,japaneast,Standard_E64ds_v6,reserved_3y,NA,2.461796,USD,Azure Retail Prices API,2025-12-18T04:46:39.157355 +AZURE,japaneast,Standard_E64ds_v6,spot,NA,1.166458,USD,Azure Retail Prices API,2025-12-18T04:46:37.572895 +AZURE,japaneast,Standard_E64pds_v6,on_demand,NA,4.813,USD,Azure Retail Prices API,2025-12-18T04:46:37.572586 +AZURE,japaneast,Standard_E64pds_v6,reserved_1y,NA,2.839498,USD,Azure Retail Prices API,2025-12-18T04:46:39.156966 +AZURE,japaneast,Standard_E64pds_v6,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:39.156971 +AZURE,japaneast,Standard_E64pds_v6,spot,NA,0.889442,USD,Azure Retail Prices API,2025-12-18T04:46:37.574695 +AZURE,japaneast,Standard_E64ps_v6,on_demand,NA,3.795,USD,Azure Retail Prices API,2025-12-18T04:46:37.573143 +AZURE,japaneast,Standard_E64ps_v6,reserved_1y,NA,2.239155,USD,Azure Retail Prices API,2025-12-18T04:46:39.157444 +AZURE,japaneast,Standard_E64ps_v6,reserved_3y,NA,1.442161,USD,Azure Retail Prices API,2025-12-18T04:46:39.157449 +AZURE,japaneast,Standard_E64ps_v6,spot,NA,0.701316,USD,Azure Retail Prices API,2025-12-18T04:46:37.572727 +AZURE,japaneast,Standard_E64s_v3,on_demand,NA,4.376,USD,Azure Retail Prices API,2025-12-18T04:46:37.574057 +AZURE,japaneast,Standard_E64s_v3,reserved_1y,NA,2.837443,USD,Azure Retail Prices API,2025-12-18T04:46:39.158161 +AZURE,japaneast,Standard_E64s_v3,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:46:39.158164 +AZURE,japaneast,Standard_E64s_v3,spot,NA,0.808685,USD,Azure Retail Prices API,2025-12-18T04:46:37.573686 +AZURE,japaneast,Standard_E64s_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:37.574722 +AZURE,japaneast,Standard_E64s_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:39.158548 +AZURE,japaneast,Standard_E64s_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:39.158552 +AZURE,japaneast,Standard_E64s_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:37.574803 +AZURE,japaneast,Standard_E64s_v5,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:37.573159 +AZURE,japaneast,Standard_E64s_v5,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:39.157472 +AZURE,japaneast,Standard_E64s_v5,reserved_3y,NA,1.799696,USD,Azure Retail Prices API,2025-12-18T04:46:39.157477 +AZURE,japaneast,Standard_E64s_v5,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:37.572789 +AZURE,japaneast,Standard_E80ids_v4,on_demand,NA,6.96,USD,Azure Retail Prices API,2025-12-18T04:46:37.572600 +AZURE,japaneast,Standard_E80ids_v4,reserved_1y,NA,4.093607,USD,Azure Retail Prices API,2025-12-18T04:46:39.156975 +AZURE,japaneast,Standard_E80ids_v4,reserved_3y,NA,2.617199,USD,Azure Retail Prices API,2025-12-18T04:46:39.156980 +AZURE,japaneast,Standard_E80ids_v4,spot,NA,1.286208,USD,Azure Retail Prices API,2025-12-18T04:46:37.572066 +AZURE,japaneast,Standard_E80is_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:46:37.573440 +AZURE,japaneast,Standard_E80is_v4,reserved_1y,NA,3.575342,USD,Azure Retail Prices API,2025-12-18T04:46:39.157786 +AZURE,japaneast,Standard_E80is_v4,reserved_3y,NA,2.286149,USD,Azure Retail Prices API,2025-12-18T04:46:39.157791 +AZURE,japaneast,Standard_E80is_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:46:37.573359 +AZURE,japaneast,Standard_E8_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:46:37.572263 +AZURE,japaneast,Standard_E8_v3,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:46:39.156616 +AZURE,japaneast,Standard_E8_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:39.156621 +AZURE,japaneast,Standard_E8_v3,spot,NA,0.118272,USD,Azure Retail Prices API,2025-12-18T04:46:37.572056 +AZURE,japaneast,Standard_E8a_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:37.572706 +AZURE,japaneast,Standard_E8a_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:39.157070 +AZURE,japaneast,Standard_E8a_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:39.157075 +AZURE,japaneast,Standard_E8a_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:37.572159 +AZURE,japaneast,Standard_E8ads_v5,on_demand,NA,0.636,USD,Azure Retail Prices API,2025-12-18T04:46:37.574547 +AZURE,japaneast,Standard_E8ads_v5,reserved_1y,NA,0.375228,USD,Azure Retail Prices API,2025-12-18T04:46:39.158423 +AZURE,japaneast,Standard_E8ads_v5,reserved_3y,NA,0.241667,USD,Azure Retail Prices API,2025-12-18T04:46:39.158426 +AZURE,japaneast,Standard_E8ads_v5,spot,NA,0.117533,USD,Azure Retail Prices API,2025-12-18T04:46:37.572532 +AZURE,japaneast,Standard_E8ads_v6,on_demand,NA,0.756,USD,Azure Retail Prices API,2025-12-18T04:46:37.573807 +AZURE,japaneast,Standard_E8ads_v6,reserved_1y,NA,0.446005,USD,Azure Retail Prices API,2025-12-18T04:46:39.158039 +AZURE,japaneast,Standard_E8ads_v6,reserved_3y,NA,0.287291,USD,Azure Retail Prices API,2025-12-18T04:46:39.158041 +AZURE,japaneast,Standard_E8ads_v6,spot,NA,0.139709,USD,Azure Retail Prices API,2025-12-18T04:46:37.572313 +AZURE,japaneast,Standard_E8as_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:37.573494 +AZURE,japaneast,Standard_E8as_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:39.157846 +AZURE,japaneast,Standard_E8as_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:39.157851 +AZURE,japaneast,Standard_E8as_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:37.573962 +AZURE,japaneast,Standard_E8as_v5,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:46:37.572756 +AZURE,japaneast,Standard_E8as_v5,reserved_1y,NA,0.323288,USD,Azure Retail Prices API,2025-12-18T04:46:39.157098 +AZURE,japaneast,Standard_E8as_v5,reserved_3y,NA,0.208257,USD,Azure Retail Prices API,2025-12-18T04:46:39.157103 +AZURE,japaneast,Standard_E8as_v5,spot,NA,0.10127,USD,Azure Retail Prices API,2025-12-18T04:46:37.573288 +AZURE,japaneast,Standard_E8d_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:37.574852 +AZURE,japaneast,Standard_E8d_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:39.158678 +AZURE,japaneast,Standard_E8d_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:39.158682 +AZURE,japaneast,Standard_E8d_v4,spot,NA,0.128621,USD,Azure Retail Prices API,2025-12-18T04:46:37.574476 +AZURE,japaneast,Standard_E8ds_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:37.574760 +AZURE,japaneast,Standard_E8ds_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:39.158586 +AZURE,japaneast,Standard_E8ds_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:39.158590 +AZURE,japaneast,Standard_E8ds_v4,spot,NA,0.128621,USD,Azure Retail Prices API,2025-12-18T04:46:37.573946 +AZURE,japaneast,Standard_E8ds_v5,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:37.571777 +AZURE,japaneast,Standard_E8ds_v5,reserved_1y,NA,0.410616,USD,Azure Retail Prices API,2025-12-18T04:46:39.156173 +AZURE,japaneast,Standard_E8ds_v5,reserved_3y,NA,0.264498,USD,Azure Retail Prices API,2025-12-18T04:46:39.156178 +AZURE,japaneast,Standard_E8ds_v5,spot,NA,0.128621,USD,Azure Retail Prices API,2025-12-18T04:46:37.572542 +AZURE,japaneast,Standard_E8ds_v6,on_demand,NA,0.789,USD,Azure Retail Prices API,2025-12-18T04:46:37.573924 +AZURE,japaneast,Standard_E8ds_v6,reserved_1y,NA,0.489155,USD,Azure Retail Prices API,2025-12-18T04:46:39.158115 +AZURE,japaneast,Standard_E8ds_v6,reserved_3y,NA,0.307725,USD,Azure Retail Prices API,2025-12-18T04:46:39.158118 +AZURE,japaneast,Standard_E8ds_v6,spot,NA,0.145807,USD,Azure Retail Prices API,2025-12-18T04:46:37.574612 +AZURE,japaneast,Standard_E8pds_v6,on_demand,NA,0.602,USD,Azure Retail Prices API,2025-12-18T04:46:37.572983 +AZURE,japaneast,Standard_E8pds_v6,reserved_1y,NA,0.354909,USD,Azure Retail Prices API,2025-12-18T04:46:39.157321 +AZURE,japaneast,Standard_E8pds_v6,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:39.157326 +AZURE,japaneast,Standard_E8pds_v6,spot,NA,0.11125,USD,Azure Retail Prices API,2025-12-18T04:46:37.574480 +AZURE,japaneast,Standard_E8ps_v6,on_demand,NA,0.474,USD,Azure Retail Prices API,2025-12-18T04:46:37.574765 +AZURE,japaneast,Standard_E8ps_v6,reserved_1y,NA,0.279909,USD,Azure Retail Prices API,2025-12-18T04:46:39.158594 +AZURE,japaneast,Standard_E8ps_v6,reserved_3y,NA,0.180289,USD,Azure Retail Prices API,2025-12-18T04:46:39.158599 +AZURE,japaneast,Standard_E8ps_v6,spot,NA,0.087595,USD,Azure Retail Prices API,2025-12-18T04:46:37.573370 +AZURE,japaneast,Standard_E8s_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:46:37.572617 +AZURE,japaneast,Standard_E8s_v3,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:46:39.157004 +AZURE,japaneast,Standard_E8s_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:39.157009 +AZURE,japaneast,Standard_E8s_v3,spot,NA,0.118272,USD,Azure Retail Prices API,2025-12-18T04:46:37.572722 +AZURE,japaneast,Standard_E8s_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:37.573775 +AZURE,japaneast,Standard_E8s_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:39.158013 +AZURE,japaneast,Standard_E8s_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:39.158016 +AZURE,japaneast,Standard_E8s_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:37.572061 +AZURE,japaneast,Standard_E8s_v5,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:37.571820 +AZURE,japaneast,Standard_E8s_v5,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:39.156221 +AZURE,japaneast,Standard_E8s_v5,reserved_3y,NA,0.224962,USD,Azure Retail Prices API,2025-12-18T04:46:39.156226 +AZURE,japaneast,Standard_E8s_v5,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:37.574498 +AZURE,japaneast,Standard_E96a_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:37.572906 +AZURE,japaneast,Standard_E96a_v4,reserved_1y,NA,4.290068,USD,Azure Retail Prices API,2025-12-18T04:46:39.157255 +AZURE,japaneast,Standard_E96a_v4,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:39.157260 +AZURE,japaneast,Standard_E96a_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:37.572016 +AZURE,japaneast,Standard_E96ads_v5,on_demand,NA,12.048,USD,Azure Retail Prices API,2025-12-18T04:46:37.572834 +AZURE,japaneast,Standard_E96ads_v5,reserved_1y,NA,4.502854,USD,Azure Retail Prices API,2025-12-18T04:46:39.158097 +AZURE,japaneast,Standard_E96ads_v5,reserved_3y,NA,2.900152,USD,Azure Retail Prices API,2025-12-18T04:46:39.158100 +AZURE,japaneast,Standard_E96ads_v5,spot,NA,1.410394,USD,Azure Retail Prices API,2025-12-18T04:46:37.571897 +AZURE,japaneast,Standard_E96ads_v6,on_demand,NA,9.072,USD,Azure Retail Prices API,2025-12-18T04:46:37.574529 +AZURE,japaneast,Standard_E96ads_v6,reserved_1y,NA,5.352511,USD,Azure Retail Prices API,2025-12-18T04:46:39.158411 +AZURE,japaneast,Standard_E96ads_v6,reserved_3y,NA,3.447374,USD,Azure Retail Prices API,2025-12-18T04:46:39.158414 +AZURE,japaneast,Standard_E96ads_v6,spot,NA,1.676506,USD,Azure Retail Prices API,2025-12-18T04:46:37.572037 +AZURE,japaneast,Standard_E96as_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:37.572606 +AZURE,japaneast,Standard_E96as_v4,reserved_1y,NA,4.290068,USD,Azure Retail Prices API,2025-12-18T04:46:39.156985 +AZURE,japaneast,Standard_E96as_v4,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:39.156990 +AZURE,japaneast,Standard_E96as_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:37.573336 +AZURE,japaneast,Standard_E96as_v5,on_demand,NA,10.992,USD,Azure Retail Prices API,2025-12-18T04:46:37.573089 +AZURE,japaneast,Standard_E96as_v5,reserved_1y,NA,3.879795,USD,Azure Retail Prices API,2025-12-18T04:46:39.158295 +AZURE,japaneast,Standard_E96as_v5,reserved_3y,NA,2.498896,USD,Azure Retail Prices API,2025-12-18T04:46:39.158297 +AZURE,japaneast,Standard_E96as_v5,spot,NA,1.215245,USD,Azure Retail Prices API,2025-12-18T04:46:37.574585 +AZURE,japaneast,Standard_E96ds_v5,on_demand,NA,8.352,USD,Azure Retail Prices API,2025-12-18T04:46:37.574396 +AZURE,japaneast,Standard_E96ds_v5,reserved_1y,NA,4.927626,USD,Azure Retail Prices API,2025-12-18T04:46:39.158323 +AZURE,japaneast,Standard_E96ds_v5,reserved_3y,NA,3.173744,USD,Azure Retail Prices API,2025-12-18T04:46:39.158325 +AZURE,japaneast,Standard_E96ds_v5,spot,NA,1.54345,USD,Azure Retail Prices API,2025-12-18T04:46:37.573580 +AZURE,japaneast,Standard_E96ds_v6,on_demand,NA,9.468,USD,Azure Retail Prices API,2025-12-18T04:46:37.573792 +AZURE,japaneast,Standard_E96ds_v6,reserved_1y,NA,5.870434,USD,Azure Retail Prices API,2025-12-18T04:46:39.158019 +AZURE,japaneast,Standard_E96ds_v6,reserved_3y,NA,3.692694,USD,Azure Retail Prices API,2025-12-18T04:46:39.158023 +AZURE,japaneast,Standard_E96ds_v6,spot,NA,1.749686,USD,Azure Retail Prices API,2025-12-18T04:46:37.574337 +AZURE,japaneast,Standard_E96pds_v6,on_demand,NA,7.219,USD,Azure Retail Prices API,2025-12-18T04:46:37.573918 +AZURE,japaneast,Standard_E96pds_v6,reserved_1y,NA,4.259361,USD,Azure Retail Prices API,2025-12-18T04:46:39.158109 +AZURE,japaneast,Standard_E96pds_v6,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:39.158112 +AZURE,japaneast,Standard_E96pds_v6,spot,NA,1.334071,USD,Azure Retail Prices API,2025-12-18T04:46:37.572083 +AZURE,japaneast,Standard_E96ps_v6,on_demand,NA,5.693,USD,Azure Retail Prices API,2025-12-18T04:46:37.573846 +AZURE,japaneast,Standard_E96ps_v6,reserved_1y,NA,3.35879,USD,Azure Retail Prices API,2025-12-18T04:46:39.158063 +AZURE,japaneast,Standard_E96ps_v6,reserved_3y,NA,2.16328,USD,Azure Retail Prices API,2025-12-18T04:46:39.158066 +AZURE,japaneast,Standard_E96ps_v6,spot,NA,1.052066,USD,Azure Retail Prices API,2025-12-18T04:46:37.573512 +AZURE,japaneast,Standard_E96s_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:37.574321 +AZURE,japaneast,Standard_E96s_v5,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:46:39.158284 +AZURE,japaneast,Standard_E96s_v5,reserved_3y,NA,2.699505,USD,Azure Retail Prices API,2025-12-18T04:46:39.158286 +AZURE,japaneast,Standard_E96s_v5,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:37.572716 +AZURE,japaneast,Standard_EC16ads_v5,on_demand,NA,1.272,USD,Azure Retail Prices API,2025-12-18T04:46:37.572518 +AZURE,japaneast,Standard_EC16ads_v5,reserved_1y,NA,1.01758,USD,Azure Retail Prices API,2025-12-18T04:46:39.156889 +AZURE,japaneast,Standard_EC16ads_v5,reserved_3y,NA,0.763204,USD,Azure Retail Prices API,2025-12-18T04:46:39.156894 +AZURE,japaneast,Standard_EC16ads_v5,spot,NA,0.240026,USD,Azure Retail Prices API,2025-12-18T04:46:37.572568 +AZURE,japaneast,Standard_EC16ads_v6,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:46:37.573056 +AZURE,japaneast,Standard_EC16ads_v6,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:46:39.157379 +AZURE,japaneast,Standard_EC16ads_v6,reserved_3y,NA,0.574543,USD,Azure Retail Prices API,2025-12-18T04:46:39.157383 +AZURE,japaneast,Standard_EC16ads_v6,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:46:37.573176 +AZURE,japaneast,Standard_EC16as_v5,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:46:37.572639 +AZURE,japaneast,Standard_EC16as_v5,reserved_1y,NA,0.876826,USD,Azure Retail Prices API,2025-12-18T04:46:39.157014 +AZURE,japaneast,Standard_EC16as_v5,reserved_3y,NA,0.65761,USD,Azure Retail Prices API,2025-12-18T04:46:39.157018 +AZURE,japaneast,Standard_EC16as_v5,spot,NA,0.206815,USD,Azure Retail Prices API,2025-12-18T04:46:37.574299 +AZURE,japaneast,Standard_EC16as_v6,on_demand,NA,1.242,USD,Azure Retail Prices API,2025-12-18T04:46:37.572208 +AZURE,japaneast,Standard_EC16as_v6,reserved_1y,NA,0.732534,USD,Azure Retail Prices API,2025-12-18T04:46:39.156548 +AZURE,japaneast,Standard_EC16as_v6,reserved_3y,NA,0.471804,USD,Azure Retail Prices API,2025-12-18T04:46:39.156553 +AZURE,japaneast,Standard_EC16as_v6,spot,NA,0.229522,USD,Azure Retail Prices API,2025-12-18T04:46:37.574046 +AZURE,japaneast,Standard_EC20ads_v5,on_demand,NA,1.59,USD,Azure Retail Prices API,2025-12-18T04:46:37.574574 +AZURE,japaneast,Standard_EC20ads_v5,reserved_1y,NA,1.272032,USD,Azure Retail Prices API,2025-12-18T04:46:39.158447 +AZURE,japaneast,Standard_EC20ads_v5,reserved_3y,NA,0.953995,USD,Azure Retail Prices API,2025-12-18T04:46:39.158450 +AZURE,japaneast,Standard_EC20ads_v5,spot,NA,0.300033,USD,Azure Retail Prices API,2025-12-18T04:46:37.573990 +AZURE,japaneast,Standard_EC20as_v5,on_demand,NA,1.37,USD,Azure Retail Prices API,2025-12-18T04:46:37.572917 +AZURE,japaneast,Standard_EC20as_v5,reserved_1y,NA,1.096005,USD,Azure Retail Prices API,2025-12-18T04:46:39.157265 +AZURE,japaneast,Standard_EC20as_v5,reserved_3y,NA,0.821994,USD,Azure Retail Prices API,2025-12-18T04:46:39.157269 +AZURE,japaneast,Standard_EC20as_v5,spot,NA,0.258519,USD,Azure Retail Prices API,2025-12-18T04:46:37.574405 +AZURE,japaneast,Standard_EC2ads_v6,on_demand,NA,0.189,USD,Azure Retail Prices API,2025-12-18T04:46:37.574503 +AZURE,japaneast,Standard_EC2ads_v6,reserved_1y,NA,0.11153,USD,Azure Retail Prices API,2025-12-18T04:46:39.158399 +AZURE,japaneast,Standard_EC2ads_v6,reserved_3y,NA,0.071804,USD,Azure Retail Prices API,2025-12-18T04:46:39.158402 +AZURE,japaneast,Standard_EC2ads_v6,spot,NA,0.034927,USD,Azure Retail Prices API,2025-12-18T04:46:37.571972 +AZURE,japaneast,Standard_EC2as_v6,on_demand,NA,0.155,USD,Azure Retail Prices API,2025-12-18T04:46:37.574449 +AZURE,japaneast,Standard_EC2as_v6,reserved_1y,NA,0.091553,USD,Azure Retail Prices API,2025-12-18T04:46:39.158362 +AZURE,japaneast,Standard_EC2as_v6,reserved_3y,NA,0.05898,USD,Azure Retail Prices API,2025-12-18T04:46:39.158366 +AZURE,japaneast,Standard_EC2as_v6,spot,NA,0.028644,USD,Azure Retail Prices API,2025-12-18T04:46:37.574646 +AZURE,japaneast,Standard_EC32ads_v5,on_demand,NA,2.544,USD,Azure Retail Prices API,2025-12-18T04:46:37.572856 +AZURE,japaneast,Standard_EC32ads_v5,reserved_1y,NA,2.03516,USD,Azure Retail Prices API,2025-12-18T04:46:39.157196 +AZURE,japaneast,Standard_EC32ads_v5,reserved_3y,NA,1.526408,USD,Azure Retail Prices API,2025-12-18T04:46:39.157201 +AZURE,japaneast,Standard_EC32ads_v5,spot,NA,0.480053,USD,Azure Retail Prices API,2025-12-18T04:46:37.574512 +AZURE,japaneast,Standard_EC32ads_v6,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:46:37.572662 +AZURE,japaneast,Standard_EC32ads_v6,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:46:39.157033 +AZURE,japaneast,Standard_EC32ads_v6,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:46:39.157037 +AZURE,japaneast,Standard_EC32ads_v6,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:46:37.573045 +AZURE,japaneast,Standard_EC32as_v5,on_demand,NA,2.192,USD,Azure Retail Prices API,2025-12-18T04:46:37.573530 +AZURE,japaneast,Standard_EC32as_v5,reserved_1y,NA,1.753653,USD,Azure Retail Prices API,2025-12-18T04:46:39.157896 +AZURE,japaneast,Standard_EC32as_v5,reserved_3y,NA,1.315183,USD,Azure Retail Prices API,2025-12-18T04:46:39.157901 +AZURE,japaneast,Standard_EC32as_v5,spot,NA,0.41363,USD,Azure Retail Prices API,2025-12-18T04:46:37.572296 +AZURE,japaneast,Standard_EC32as_v6,on_demand,NA,2.483,USD,Azure Retail Prices API,2025-12-18T04:46:37.574684 +AZURE,japaneast,Standard_EC32as_v6,reserved_1y,NA,1.465068,USD,Azure Retail Prices API,2025-12-18T04:46:39.158531 +AZURE,japaneast,Standard_EC32as_v6,reserved_3y,NA,0.943607,USD,Azure Retail Prices API,2025-12-18T04:46:39.158535 +AZURE,japaneast,Standard_EC32as_v6,spot,NA,0.458858,USD,Azure Retail Prices API,2025-12-18T04:46:37.572657 +AZURE,japaneast,Standard_EC48ads_v5,on_demand,NA,3.816,USD,Azure Retail Prices API,2025-12-18T04:46:37.572397 +AZURE,japaneast,Standard_EC48ads_v5,reserved_1y,NA,3.052854,USD,Azure Retail Prices API,2025-12-18T04:46:39.156758 +AZURE,japaneast,Standard_EC48ads_v5,reserved_3y,NA,2.289612,USD,Azure Retail Prices API,2025-12-18T04:46:39.156763 +AZURE,japaneast,Standard_EC48ads_v5,spot,NA,0.720079,USD,Azure Retail Prices API,2025-12-18T04:46:37.574525 +AZURE,japaneast,Standard_EC48ads_v6,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:46:37.572165 +AZURE,japaneast,Standard_EC48ads_v6,reserved_1y,NA,2.676256,USD,Azure Retail Prices API,2025-12-18T04:46:39.156489 +AZURE,japaneast,Standard_EC48ads_v6,reserved_3y,NA,1.723668,USD,Azure Retail Prices API,2025-12-18T04:46:39.156494 +AZURE,japaneast,Standard_EC48ads_v6,spot,NA,0.838253,USD,Azure Retail Prices API,2025-12-18T04:46:37.573485 +AZURE,japaneast,Standard_EC48as_v5,on_demand,NA,3.288,USD,Azure Retail Prices API,2025-12-18T04:46:37.572175 +AZURE,japaneast,Standard_EC48as_v5,reserved_1y,NA,2.630365,USD,Azure Retail Prices API,2025-12-18T04:46:39.156499 +AZURE,japaneast,Standard_EC48as_v5,reserved_3y,NA,1.972793,USD,Azure Retail Prices API,2025-12-18T04:46:39.156503 +AZURE,japaneast,Standard_EC48as_v5,spot,NA,0.620446,USD,Azure Retail Prices API,2025-12-18T04:46:37.573657 +AZURE,japaneast,Standard_EC48as_v6,on_demand,NA,3.725,USD,Azure Retail Prices API,2025-12-18T04:46:37.572612 +AZURE,japaneast,Standard_EC48as_v6,reserved_1y,NA,2.197603,USD,Azure Retail Prices API,2025-12-18T04:46:39.156995 +AZURE,japaneast,Standard_EC48as_v6,reserved_3y,NA,1.415411,USD,Azure Retail Prices API,2025-12-18T04:46:39.157000 +AZURE,japaneast,Standard_EC48as_v6,spot,NA,0.68838,USD,Azure Retail Prices API,2025-12-18T04:46:37.574634 +AZURE,japaneast,Standard_EC4ads_v5,on_demand,NA,0.318,USD,Azure Retail Prices API,2025-12-18T04:46:37.573293 +AZURE,japaneast,Standard_EC4ads_v5,reserved_1y,NA,0.254452,USD,Azure Retail Prices API,2025-12-18T04:46:39.157680 +AZURE,japaneast,Standard_EC4ads_v5,reserved_3y,NA,0.190791,USD,Azure Retail Prices API,2025-12-18T04:46:39.157685 +AZURE,japaneast,Standard_EC4ads_v5,spot,NA,0.060007,USD,Azure Retail Prices API,2025-12-18T04:46:37.574000 +AZURE,japaneast,Standard_EC4ads_v6,on_demand,NA,0.378,USD,Azure Retail Prices API,2025-12-18T04:46:37.573603 +AZURE,japaneast,Standard_EC4ads_v6,reserved_1y,NA,0.223059,USD,Azure Retail Prices API,2025-12-18T04:46:39.157928 +AZURE,japaneast,Standard_EC4ads_v6,reserved_3y,NA,0.143645,USD,Azure Retail Prices API,2025-12-18T04:46:39.157931 +AZURE,japaneast,Standard_EC4ads_v6,spot,NA,0.069854,USD,Azure Retail Prices API,2025-12-18T04:46:37.573237 +AZURE,japaneast,Standard_EC4as_v5,on_demand,NA,0.274,USD,Azure Retail Prices API,2025-12-18T04:46:37.572772 +AZURE,japaneast,Standard_EC4as_v5,reserved_1y,NA,0.219178,USD,Azure Retail Prices API,2025-12-18T04:46:39.157130 +AZURE,japaneast,Standard_EC4as_v5,reserved_3y,NA,0.164384,USD,Azure Retail Prices API,2025-12-18T04:46:39.157134 +AZURE,japaneast,Standard_EC4as_v5,spot,NA,0.051704,USD,Azure Retail Prices API,2025-12-18T04:46:37.572868 +AZURE,japaneast,Standard_EC4as_v6,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:37.574651 +AZURE,japaneast,Standard_EC4as_v6,reserved_1y,NA,0.183105,USD,Azure Retail Prices API,2025-12-18T04:46:39.158489 +AZURE,japaneast,Standard_EC4as_v6,reserved_3y,NA,0.11796,USD,Azure Retail Prices API,2025-12-18T04:46:39.158493 +AZURE,japaneast,Standard_EC4as_v6,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:37.573873 +AZURE,japaneast,Standard_EC64ads_v5,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:37.574085 +AZURE,japaneast,Standard_EC64ads_v5,reserved_1y,NA,4.070434,USD,Azure Retail Prices API,2025-12-18T04:46:39.158172 +AZURE,japaneast,Standard_EC64ads_v5,reserved_3y,NA,3.052816,USD,Azure Retail Prices API,2025-12-18T04:46:39.158175 +AZURE,japaneast,Standard_EC64ads_v5,spot,NA,0.960106,USD,Azure Retail Prices API,2025-12-18T04:46:37.573508 +AZURE,japaneast,Standard_EC64ads_v6,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:46:37.572021 +AZURE,japaneast,Standard_EC64ads_v6,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:46:39.156369 +AZURE,japaneast,Standard_EC64ads_v6,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:46:39.156373 +AZURE,japaneast,Standard_EC64ads_v6,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:46:37.574074 +AZURE,japaneast,Standard_EC64as_v5,on_demand,NA,4.384,USD,Azure Retail Prices API,2025-12-18T04:46:37.572733 +AZURE,japaneast,Standard_EC64as_v5,reserved_1y,NA,3.507192,USD,Azure Retail Prices API,2025-12-18T04:46:39.157080 +AZURE,japaneast,Standard_EC64as_v5,reserved_3y,NA,2.630403,USD,Azure Retail Prices API,2025-12-18T04:46:39.157084 +AZURE,japaneast,Standard_EC64as_v5,spot,NA,0.827261,USD,Azure Retail Prices API,2025-12-18T04:46:37.574858 +AZURE,japaneast,Standard_EC64as_v6,on_demand,NA,4.966,USD,Azure Retail Prices API,2025-12-18T04:46:37.572104 +AZURE,japaneast,Standard_EC64as_v6,reserved_1y,NA,2.930137,USD,Azure Retail Prices API,2025-12-18T04:46:39.156423 +AZURE,japaneast,Standard_EC64as_v6,reserved_3y,NA,1.887215,USD,Azure Retail Prices API,2025-12-18T04:46:39.156428 +AZURE,japaneast,Standard_EC64as_v6,spot,NA,0.917717,USD,Azure Retail Prices API,2025-12-18T04:46:37.573426 +AZURE,japaneast,Standard_EC8ads_v5,on_demand,NA,0.636,USD,Azure Retail Prices API,2025-12-18T04:46:37.572280 +AZURE,japaneast,Standard_EC8ads_v5,reserved_1y,NA,0.50879,USD,Azure Retail Prices API,2025-12-18T04:46:39.156645 +AZURE,japaneast,Standard_EC8ads_v5,reserved_3y,NA,0.381583,USD,Azure Retail Prices API,2025-12-18T04:46:39.156650 +AZURE,japaneast,Standard_EC8ads_v5,spot,NA,0.120013,USD,Azure Retail Prices API,2025-12-18T04:46:37.571994 +AZURE,japaneast,Standard_EC8ads_v6,on_demand,NA,0.756,USD,Azure Retail Prices API,2025-12-18T04:46:37.573718 +AZURE,japaneast,Standard_EC8ads_v6,reserved_1y,NA,0.446005,USD,Azure Retail Prices API,2025-12-18T04:46:39.157983 +AZURE,japaneast,Standard_EC8ads_v6,reserved_3y,NA,0.287291,USD,Azure Retail Prices API,2025-12-18T04:46:39.157986 +AZURE,japaneast,Standard_EC8ads_v6,spot,NA,0.139709,USD,Azure Retail Prices API,2025-12-18T04:46:37.572369 +AZURE,japaneast,Standard_EC8as_v5,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:46:37.572336 +AZURE,japaneast,Standard_EC8as_v5,reserved_1y,NA,0.438356,USD,Azure Retail Prices API,2025-12-18T04:46:39.156701 +AZURE,japaneast,Standard_EC8as_v5,reserved_3y,NA,0.328805,USD,Azure Retail Prices API,2025-12-18T04:46:39.156707 +AZURE,japaneast,Standard_EC8as_v5,spot,NA,0.103408,USD,Azure Retail Prices API,2025-12-18T04:46:37.573868 +AZURE,japaneast,Standard_EC8as_v6,on_demand,NA,0.621,USD,Azure Retail Prices API,2025-12-18T04:46:37.573813 +AZURE,japaneast,Standard_EC8as_v6,reserved_1y,NA,0.366324,USD,Azure Retail Prices API,2025-12-18T04:46:39.158045 +AZURE,japaneast,Standard_EC8as_v6,reserved_3y,NA,0.235921,USD,Azure Retail Prices API,2025-12-18T04:46:39.158048 +AZURE,japaneast,Standard_EC8as_v6,spot,NA,0.114761,USD,Azure Retail Prices API,2025-12-18T04:46:37.572555 +AZURE,japaneast,Standard_EC96ads_v5,on_demand,NA,7.632,USD,Azure Retail Prices API,2025-12-18T04:46:37.574414 +AZURE,japaneast,Standard_EC96ads_v5,reserved_1y,NA,6.105594,USD,Azure Retail Prices API,2025-12-18T04:46:39.158334 +AZURE,japaneast,Standard_EC96ads_v5,reserved_3y,NA,4.579186,USD,Azure Retail Prices API,2025-12-18T04:46:39.158337 +AZURE,japaneast,Standard_EC96ads_v5,spot,NA,1.440158,USD,Azure Retail Prices API,2025-12-18T04:46:37.572011 +AZURE,japaneast,Standard_EC96ads_v6,on_demand,NA,9.072,USD,Azure Retail Prices API,2025-12-18T04:46:37.573061 +AZURE,japaneast,Standard_EC96ads_v6,reserved_1y,NA,5.352511,USD,Azure Retail Prices API,2025-12-18T04:46:39.157388 +AZURE,japaneast,Standard_EC96ads_v6,reserved_3y,NA,3.447374,USD,Azure Retail Prices API,2025-12-18T04:46:39.157393 +AZURE,japaneast,Standard_EC96ads_v6,spot,NA,1.676506,USD,Azure Retail Prices API,2025-12-18T04:46:37.572966 +AZURE,japaneast,Standard_EC96as_v5,on_demand,NA,6.576,USD,Azure Retail Prices API,2025-12-18T04:46:37.573769 +AZURE,japaneast,Standard_EC96as_v5,reserved_1y,NA,5.260845,USD,Azure Retail Prices API,2025-12-18T04:46:39.158007 +AZURE,japaneast,Standard_EC96as_v5,reserved_3y,NA,3.945586,USD,Azure Retail Prices API,2025-12-18T04:46:39.158010 +AZURE,japaneast,Standard_EC96as_v5,spot,NA,1.240891,USD,Azure Retail Prices API,2025-12-18T04:46:37.571967 +AZURE,japaneast,Standard_EC96as_v6,on_demand,NA,7.45,USD,Azure Retail Prices API,2025-12-18T04:46:37.571788 +AZURE,japaneast,Standard_EC96as_v6,reserved_1y,NA,4.39532,USD,Azure Retail Prices API,2025-12-18T04:46:39.156183 +AZURE,japaneast,Standard_EC96as_v6,reserved_3y,NA,2.83086,USD,Azure Retail Prices API,2025-12-18T04:46:39.156187 +AZURE,japaneast,Standard_EC96as_v6,spot,NA,1.37676,USD,Azure Retail Prices API,2025-12-18T04:46:37.574825 +AZURE,japaneast,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379716 +AZURE,japaneast,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379724 +AZURE,japaneast,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379728 +AZURE,japaneast,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379720 +AZURE,japaneast,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382034 +AZURE,japaneast,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382045 +AZURE,japaneast,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382050 +AZURE,japaneast,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382040 +AZURE,japaneast,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384763 +AZURE,japaneast,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384775 +AZURE,japaneast,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384779 +AZURE,japaneast,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384771 +AZURE,japaneast,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385607 +AZURE,japaneast,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385615 +AZURE,japaneast,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385619 +AZURE,japaneast,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385611 +AZURE,japaneast,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378190 +AZURE,japaneast,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378199 +AZURE,japaneast,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378203 +AZURE,japaneast,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378195 +AZURE,japaneast,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386357 +AZURE,japaneast,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386366 +AZURE,japaneast,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386373 +AZURE,japaneast,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386361 +AZURE,japaneast,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380478 +AZURE,japaneast,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380486 +AZURE,japaneast,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380490 +AZURE,japaneast,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380482 +AZURE,japaneast,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383155 +AZURE,japaneast,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383164 +AZURE,japaneast,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383169 +AZURE,japaneast,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383160 +AZURE,japaneast,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387141 +AZURE,japaneast,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387150 +AZURE,japaneast,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387154 +AZURE,japaneast,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387145 +AZURE,japaneast,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388331 +AZURE,japaneast,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388341 +AZURE,japaneast,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388345 +AZURE,japaneast,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388335 +AZURE,japaneast,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378932 +AZURE,japaneast,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378941 +AZURE,japaneast,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378945 +AZURE,japaneast,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378937 +AZURE,japaneast,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381227 +AZURE,japaneast,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381239 +AZURE,japaneast,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381244 +AZURE,japaneast,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381234 +AZURE,japaneast,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383945 +AZURE,japaneast,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383954 +AZURE,japaneast,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383958 +AZURE,japaneast,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383949 +AZURE,japaneast,Standard_H16,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:37.574628 +AZURE,japaneast,Standard_H16,spot,NA,0.423377,USD,Azure Retail Prices API,2025-12-18T04:46:37.572324 +AZURE,japaneast,Standard_H8,on_demand,NA,1.145,USD,Azure Retail Prices API,2025-12-18T04:46:37.574595 +AZURE,japaneast,Standard_H8,spot,NA,0.211596,USD,Azure Retail Prices API,2025-12-18T04:46:37.574023 +AZURE,japaneast,Standard_L16as_v3,on_demand,NA,1.464,USD,Azure Retail Prices API,2025-12-18T04:46:37.573503 +AZURE,japaneast,Standard_L16as_v3,reserved_1y,NA,0.936986,USD,Azure Retail Prices API,2025-12-18T04:46:39.157866 +AZURE,japaneast,Standard_L16as_v3,reserved_3y,NA,0.614878,USD,Azure Retail Prices API,2025-12-18T04:46:39.157871 +AZURE,japaneast,Standard_L16as_v3,spot,NA,0.270547,USD,Azure Retail Prices API,2025-12-18T04:46:37.574215 +AZURE,japaneast,Standard_L16s_v3,on_demand,NA,1.636,USD,Azure Retail Prices API,2025-12-18T04:46:37.573253 +AZURE,japaneast,Standard_L16s_v3,reserved_1y,NA,1.047032,USD,Azure Retail Prices API,2025-12-18T04:46:39.157568 +AZURE,japaneast,Standard_L16s_v3,reserved_3y,NA,0.687139,USD,Azure Retail Prices API,2025-12-18T04:46:39.157573 +AZURE,japaneast,Standard_L16s_v3,spot,NA,0.302333,USD,Azure Retail Prices API,2025-12-18T04:46:37.572154 +AZURE,japaneast,Standard_L32as_v3,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:37.574365 +AZURE,japaneast,Standard_L32as_v3,reserved_1y,NA,1.873973,USD,Azure Retail Prices API,2025-12-18T04:46:39.158306 +AZURE,japaneast,Standard_L32as_v3,reserved_3y,NA,1.229756,USD,Azure Retail Prices API,2025-12-18T04:46:39.158309 +AZURE,japaneast,Standard_L32as_v3,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:37.572318 +AZURE,japaneast,Standard_L32s_v3,on_demand,NA,3.272,USD,Azure Retail Prices API,2025-12-18T04:46:37.574551 +AZURE,japaneast,Standard_L32s_v3,reserved_1y,NA,2.094064,USD,Azure Retail Prices API,2025-12-18T04:46:39.158429 +AZURE,japaneast,Standard_L32s_v3,reserved_3y,NA,1.374239,USD,Azure Retail Prices API,2025-12-18T04:46:39.158432 +AZURE,japaneast,Standard_L32s_v3,spot,NA,0.604666,USD,Azure Retail Prices API,2025-12-18T04:46:37.573978 +AZURE,japaneast,Standard_L48as_v3,on_demand,NA,4.392,USD,Azure Retail Prices API,2025-12-18T04:46:37.572137 +AZURE,japaneast,Standard_L48as_v3,reserved_1y,NA,2.810845,USD,Azure Retail Prices API,2025-12-18T04:46:39.156460 +AZURE,japaneast,Standard_L48as_v3,reserved_3y,NA,1.844635,USD,Azure Retail Prices API,2025-12-18T04:46:39.156465 +AZURE,japaneast,Standard_L48as_v3,spot,NA,0.811642,USD,Azure Retail Prices API,2025-12-18T04:46:37.572451 +AZURE,japaneast,Standard_L48s_v3,on_demand,NA,4.908,USD,Azure Retail Prices API,2025-12-18T04:46:37.572247 +AZURE,japaneast,Standard_L48s_v3,reserved_1y,NA,3.141096,USD,Azure Retail Prices API,2025-12-18T04:46:39.156587 +AZURE,japaneast,Standard_L48s_v3,reserved_3y,NA,2.061377,USD,Azure Retail Prices API,2025-12-18T04:46:39.156592 +AZURE,japaneast,Standard_L48s_v3,spot,NA,0.906998,USD,Azure Retail Prices API,2025-12-18T04:46:37.573051 +AZURE,japaneast,Standard_L64as_v3,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:46:37.571941 +AZURE,japaneast,Standard_L64as_v3,reserved_1y,NA,3.747831,USD,Azure Retail Prices API,2025-12-18T04:46:39.156323 +AZURE,japaneast,Standard_L64as_v3,reserved_3y,NA,2.459513,USD,Azure Retail Prices API,2025-12-18T04:46:39.156328 +AZURE,japaneast,Standard_L64as_v3,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:46:37.573697 +AZURE,japaneast,Standard_L64s_v3,on_demand,NA,6.544,USD,Azure Retail Prices API,2025-12-18T04:46:37.571804 +AZURE,japaneast,Standard_L64s_v3,reserved_1y,NA,4.188128,USD,Azure Retail Prices API,2025-12-18T04:46:39.156202 +AZURE,japaneast,Standard_L64s_v3,reserved_3y,NA,2.748478,USD,Azure Retail Prices API,2025-12-18T04:46:39.156206 +AZURE,japaneast,Standard_L64s_v3,spot,NA,1.209331,USD,Azure Retail Prices API,2025-12-18T04:46:37.572783 +AZURE,japaneast,Standard_L80as_v3,on_demand,NA,7.32,USD,Azure Retail Prices API,2025-12-18T04:46:37.573381 +AZURE,japaneast,Standard_L80as_v3,reserved_1y,NA,4.684817,USD,Azure Retail Prices API,2025-12-18T04:46:39.157747 +AZURE,japaneast,Standard_L80as_v3,reserved_3y,NA,3.074391,USD,Azure Retail Prices API,2025-12-18T04:46:39.157753 +AZURE,japaneast,Standard_L80as_v3,spot,NA,1.352736,USD,Azure Retail Prices API,2025-12-18T04:46:37.574700 +AZURE,japaneast,Standard_L80s_v3,on_demand,NA,8.18,USD,Azure Retail Prices API,2025-12-18T04:46:37.573148 +AZURE,japaneast,Standard_L80s_v3,reserved_1y,NA,5.23516,USD,Azure Retail Prices API,2025-12-18T04:46:39.157453 +AZURE,japaneast,Standard_L80s_v3,reserved_3y,NA,3.435616,USD,Azure Retail Prices API,2025-12-18T04:46:39.157458 +AZURE,japaneast,Standard_L80s_v3,spot,NA,1.511664,USD,Azure Retail Prices API,2025-12-18T04:46:37.572900 +AZURE,japaneast,Standard_L8as_v3,on_demand,NA,0.732,USD,Azure Retail Prices API,2025-12-18T04:46:37.573521 +AZURE,japaneast,Standard_L8as_v3,reserved_1y,NA,0.468493,USD,Azure Retail Prices API,2025-12-18T04:46:39.157886 +AZURE,japaneast,Standard_L8as_v3,reserved_3y,NA,0.307458,USD,Azure Retail Prices API,2025-12-18T04:46:39.157891 +AZURE,japaneast,Standard_L8as_v3,spot,NA,0.135274,USD,Azure Retail Prices API,2025-12-18T04:46:37.571782 +AZURE,japaneast,Standard_L8s_v3,on_demand,NA,0.818,USD,Azure Retail Prices API,2025-12-18T04:46:37.572429 +AZURE,japaneast,Standard_L8s_v3,reserved_1y,NA,0.523516,USD,Azure Retail Prices API,2025-12-18T04:46:39.156807 +AZURE,japaneast,Standard_L8s_v3,reserved_3y,NA,0.343569,USD,Azure Retail Prices API,2025-12-18T04:46:39.156812 +AZURE,japaneast,Standard_L8s_v3,spot,NA,0.151166,USD,Azure Retail Prices API,2025-12-18T04:46:37.573951 +AZURE,japaneast,Standard_NC12s_v3,on_demand,NA,8.388,USD,Azure Retail Prices API,2025-12-18T04:46:37.574793 +AZURE,japaneast,Standard_NC12s_v3,spot,NA,1.550102,USD,Azure Retail Prices API,2025-12-18T04:46:37.574618 +AZURE,japaneast,Standard_NC16as_T4_v3,on_demand,NA,1.625,USD,Azure Retail Prices API,2025-12-18T04:46:37.574754 +AZURE,japaneast,Standard_NC16as_T4_v3,reserved_1y,NA,1.035388,USD,Azure Retail Prices API,2025-12-18T04:46:39.158576 +AZURE,japaneast,Standard_NC16as_T4_v3,reserved_3y,NA,0.617656,USD,Azure Retail Prices API,2025-12-18T04:46:39.158581 +AZURE,japaneast,Standard_NC16as_T4_v3,spot,NA,0.47125,USD,Azure Retail Prices API,2025-12-18T04:46:37.571957 +AZURE,japaneast,Standard_NC24ads_A100_v4,on_demand,NA,5.326,USD,Azure Retail Prices API,2025-12-18T04:46:37.573348 +AZURE,japaneast,Standard_NC24ads_A100_v4,reserved_1y,NA,3.481507,USD,Azure Retail Prices API,2025-12-18T04:46:39.157728 +AZURE,japaneast,Standard_NC24ads_A100_v4,reserved_3y,NA,1.976408,USD,Azure Retail Prices API,2025-12-18T04:46:39.157733 +AZURE,japaneast,Standard_NC24ads_A100_v4,spot,NA,0.984245,USD,Azure Retail Prices API,2025-12-18T04:46:37.574463 +AZURE,japaneast,Standard_NC24s_v3,on_demand,NA,16.776,USD,Azure Retail Prices API,2025-12-18T04:46:37.572745 +AZURE,japaneast,Standard_NC24s_v3,spot,NA,3.100205,USD,Azure Retail Prices API,2025-12-18T04:46:37.573392 +AZURE,japaneast,Standard_NC40ads_H100_v5,on_demand,NA,10.121,USD,Azure Retail Prices API,2025-12-18T04:46:37.574035 +AZURE,japaneast,Standard_NC40ads_H100_v5,reserved_1y,NA,7.590753,USD,Azure Retail Prices API,2025-12-18T04:46:39.158143 +AZURE,japaneast,Standard_NC40ads_H100_v5,reserved_3y,NA,5.566553,USD,Azure Retail Prices API,2025-12-18T04:46:39.158147 +AZURE,japaneast,Standard_NC40ads_H100_v5,spot,NA,7.241576,USD,Azure Retail Prices API,2025-12-18T04:46:37.572407 +AZURE,japaneast,Standard_NC48ads_A100_v4,on_demand,NA,10.652,USD,Azure Retail Prices API,2025-12-18T04:46:37.574041 +AZURE,japaneast,Standard_NC48ads_A100_v4,reserved_1y,NA,6.963014,USD,Azure Retail Prices API,2025-12-18T04:46:39.158150 +AZURE,japaneast,Standard_NC48ads_A100_v4,reserved_3y,NA,3.952854,USD,Azure Retail Prices API,2025-12-18T04:46:39.158153 +AZURE,japaneast,Standard_NC48ads_A100_v4,spot,NA,1.96849,USD,Azure Retail Prices API,2025-12-18T04:46:37.573829 +AZURE,japaneast,Standard_NC4as_T4_v3,on_demand,NA,0.71,USD,Azure Retail Prices API,2025-12-18T04:46:37.573210 +AZURE,japaneast,Standard_NC4as_T4_v3,reserved_1y,NA,0.452283,USD,Azure Retail Prices API,2025-12-18T04:46:39.157519 +AZURE,japaneast,Standard_NC4as_T4_v3,reserved_3y,NA,0.269825,USD,Azure Retail Prices API,2025-12-18T04:46:39.157524 +AZURE,japaneast,Standard_NC4as_T4_v3,spot,NA,0.2059,USD,Azure Retail Prices API,2025-12-18T04:46:37.574781 +AZURE,japaneast,Standard_NC64as_T4_v3,on_demand,NA,5.875,USD,Azure Retail Prices API,2025-12-18T04:46:37.573418 +AZURE,japaneast,Standard_NC64as_T4_v3,reserved_1y,NA,3.742466,USD,Azure Retail Prices API,2025-12-18T04:46:39.157767 +AZURE,japaneast,Standard_NC64as_T4_v3,reserved_3y,NA,2.232572,USD,Azure Retail Prices API,2025-12-18T04:46:39.157772 +AZURE,japaneast,Standard_NC64as_T4_v3,spot,NA,1.70375,USD,Azure Retail Prices API,2025-12-18T04:46:37.571983 +AZURE,japaneast,Standard_NC6s_v3,on_demand,NA,4.194,USD,Azure Retail Prices API,2025-12-18T04:46:37.573896 +AZURE,japaneast,Standard_NC6s_v3,spot,NA,0.775051,USD,Azure Retail Prices API,2025-12-18T04:46:37.574841 +AZURE,japaneast,Standard_NC8as_T4_v3,on_demand,NA,1.015,USD,Azure Retail Prices API,2025-12-18T04:46:37.573231 +AZURE,japaneast,Standard_NC8as_T4_v3,reserved_1y,NA,0.646689,USD,Azure Retail Prices API,2025-12-18T04:46:39.157549 +AZURE,japaneast,Standard_NC8as_T4_v3,reserved_3y,NA,0.385769,USD,Azure Retail Prices API,2025-12-18T04:46:39.157554 +AZURE,japaneast,Standard_NC8as_T4_v3,spot,NA,0.29435,USD,Azure Retail Prices API,2025-12-18T04:46:37.574579 +AZURE,japaneast,Standard_NC96ads_A100_v4,on_demand,NA,21.303,USD,Azure Retail Prices API,2025-12-18T04:46:37.572005 +AZURE,japaneast,Standard_NC96ads_A100_v4,reserved_1y,NA,13.926027,USD,Azure Retail Prices API,2025-12-18T04:46:39.156360 +AZURE,japaneast,Standard_NC96ads_A100_v4,reserved_3y,NA,7.905708,USD,Azure Retail Prices API,2025-12-18T04:46:39.156364 +AZURE,japaneast,Standard_NC96ads_A100_v4,spot,NA,3.936794,USD,Azure Retail Prices API,2025-12-18T04:46:37.573319 +AZURE,japaneast,Standard_ND96isr_H100_v5,on_demand,NA,142.564,USD,Azure Retail Prices API,2025-12-18T04:46:37.572438 +AZURE,japaneast,Standard_ND96isr_H100_v5,reserved_1y,NA,91.240982,USD,Azure Retail Prices API,2025-12-18T04:46:39.156826 +AZURE,japaneast,Standard_ND96isr_H100_v5,reserved_3y,NA,62.585578,USD,Azure Retail Prices API,2025-12-18T04:46:39.156831 +AZURE,japaneast,Standard_ND96isr_H100_v5,spot,NA,26.345827,USD,Azure Retail Prices API,2025-12-18T04:46:37.573747 +AZURE,japaneast,Standard_NV36adms_A10_v5,on_demand,NA,6.554,USD,Azure Retail Prices API,2025-12-18T04:46:37.572845 +AZURE,japaneast,Standard_NV36adms_A10_v5,reserved_1y,NA,4.194521,USD,Azure Retail Prices API,2025-12-18T04:46:39.157187 +AZURE,japaneast,Standard_NV36adms_A10_v5,reserved_3y,NA,2.883752,USD,Azure Retail Prices API,2025-12-18T04:46:39.157191 +AZURE,japaneast,Standard_NV36adms_A10_v5,spot,NA,1.211179,USD,Azure Retail Prices API,2025-12-18T04:46:37.574458 +AZURE,japaneast,Standard_NV36ads_A10_v5,on_demand,NA,4.64,USD,Azure Retail Prices API,2025-12-18T04:46:37.573635 +AZURE,japaneast,Standard_NV36ads_A10_v5,reserved_1y,NA,2.969635,USD,Azure Retail Prices API,2025-12-18T04:46:39.157947 +AZURE,japaneast,Standard_NV36ads_A10_v5,reserved_3y,NA,2.041591,USD,Azure Retail Prices API,2025-12-18T04:46:39.157950 +AZURE,japaneast,Standard_NV36ads_A10_v5,spot,NA,0.857472,USD,Azure Retail Prices API,2025-12-18T04:46:37.573282 +AZURE,japaneast,Standard_NV72ads_A10_v5,on_demand,NA,9.454,USD,Azure Retail Prices API,2025-12-18T04:46:37.573242 +AZURE,japaneast,Standard_NV72ads_A10_v5,reserved_1y,NA,6.050571,USD,Azure Retail Prices API,2025-12-18T04:46:39.157559 +AZURE,japaneast,Standard_NV72ads_A10_v5,reserved_3y,NA,4.159741,USD,Azure Retail Prices API,2025-12-18T04:46:39.157564 +AZURE,japaneast,Standard_NV72ads_A10_v5,spot,NA,1.747099,USD,Azure Retail Prices API,2025-12-18T04:46:37.572988 +AZURE,japanwest,Standard_D128ds_v6,on_demand,NA,10.299,USD,Azure Retail Prices API,2025-12-18T04:46:40.759683 +AZURE,japanwest,Standard_D128ds_v6,reserved_1y,NA,6.385274,USD,Azure Retail Prices API,2025-12-18T04:46:41.658814 +AZURE,japanwest,Standard_D128ds_v6,reserved_3y,NA,4.016553,USD,Azure Retail Prices API,2025-12-18T04:46:41.658817 +AZURE,japanwest,Standard_D128ds_v6,spot,NA,1.903255,USD,Azure Retail Prices API,2025-12-18T04:46:40.761133 +AZURE,japanwest,Standard_D12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488612 +AZURE,japanwest,Standard_D12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488620 +AZURE,japanwest,Standard_D12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488624 +AZURE,japanwest,Standard_D12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488616 +AZURE,japanwest,Standard_D13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489433 +AZURE,japanwest,Standard_D13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489448 +AZURE,japanwest,Standard_D13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489455 +AZURE,japanwest,Standard_D13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489442 +AZURE,japanwest,Standard_D14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490494 +AZURE,japanwest,Standard_D14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490502 +AZURE,japanwest,Standard_D14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490506 +AZURE,japanwest,Standard_D14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490498 +AZURE,japanwest,Standard_D15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491246 +AZURE,japanwest,Standard_D15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491254 +AZURE,japanwest,Standard_D15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491258 +AZURE,japanwest,Standard_D15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491250 +AZURE,japanwest,Standard_D16_v3,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:46:40.760721 +AZURE,japanwest,Standard_D16_v3,reserved_1y,NA,0.650685,USD,Azure Retail Prices API,2025-12-18T04:46:41.659805 +AZURE,japanwest,Standard_D16_v3,reserved_3y,NA,0.443683,USD,Azure Retail Prices API,2025-12-18T04:46:41.659808 +AZURE,japanwest,Standard_D16_v3,spot,NA,0.196699,USD,Azure Retail Prices API,2025-12-18T04:46:40.761037 +AZURE,japanwest,Standard_D16a_v4,on_demand,NA,0.992,USD,Azure Retail Prices API,2025-12-18T04:46:40.760965 +AZURE,japanwest,Standard_D16a_v4,reserved_1y,NA,0.585274,USD,Azure Retail Prices API,2025-12-18T04:46:41.660016 +AZURE,japanwest,Standard_D16a_v4,reserved_3y,NA,0.376979,USD,Azure Retail Prices API,2025-12-18T04:46:41.660019 +AZURE,japanwest,Standard_D16a_v4,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:46:40.759881 +AZURE,japanwest,Standard_D16ads_v5,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:40.759707 +AZURE,japanwest,Standard_D16ads_v5,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:46:41.658836 +AZURE,japanwest,Standard_D16ads_v5,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:46:41.658839 +AZURE,japanwest,Standard_D16ads_v5,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:46:40.760672 +AZURE,japanwest,Standard_D16ads_v6,on_demand,NA,1.189,USD,Azure Retail Prices API,2025-12-18T04:46:40.760046 +AZURE,japanwest,Standard_D16ads_v6,reserved_1y,NA,0.70137,USD,Azure Retail Prices API,2025-12-18T04:46:41.659088 +AZURE,japanwest,Standard_D16ads_v6,reserved_3y,NA,0.45175,USD,Azure Retail Prices API,2025-12-18T04:46:41.659092 +AZURE,japanwest,Standard_D16ads_v6,spot,NA,0.219727,USD,Azure Retail Prices API,2025-12-18T04:46:40.759710 +AZURE,japanwest,Standard_D16as_v4,on_demand,NA,0.992,USD,Azure Retail Prices API,2025-12-18T04:46:40.760373 +AZURE,japanwest,Standard_D16as_v4,reserved_1y,NA,0.585274,USD,Azure Retail Prices API,2025-12-18T04:46:41.659432 +AZURE,japanwest,Standard_D16as_v4,reserved_3y,NA,0.376979,USD,Azure Retail Prices API,2025-12-18T04:46:41.659435 +AZURE,japanwest,Standard_D16as_v4,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:46:40.760901 +AZURE,japanwest,Standard_D16as_v5,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:46:40.760510 +AZURE,japanwest,Standard_D16as_v5,reserved_1y,NA,0.528653,USD,Azure Retail Prices API,2025-12-18T04:46:41.659588 +AZURE,japanwest,Standard_D16as_v5,reserved_3y,NA,0.340487,USD,Azure Retail Prices API,2025-12-18T04:46:41.659591 +AZURE,japanwest,Standard_D16as_v5,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:46:40.760666 +AZURE,japanwest,Standard_D16d_v4,on_demand,NA,1.284,USD,Azure Retail Prices API,2025-12-18T04:46:40.759721 +AZURE,japanwest,Standard_D16d_v4,reserved_1y,NA,0.757763,USD,Azure Retail Prices API,2025-12-18T04:46:41.658847 +AZURE,japanwest,Standard_D16d_v4,reserved_3y,NA,0.48809,USD,Azure Retail Prices API,2025-12-18T04:46:41.658850 +AZURE,japanwest,Standard_D16d_v4,spot,NA,0.237283,USD,Azure Retail Prices API,2025-12-18T04:46:40.760018 +AZURE,japanwest,Standard_D16ds_v4,on_demand,NA,1.284,USD,Azure Retail Prices API,2025-12-18T04:46:40.761057 +AZURE,japanwest,Standard_D16ds_v4,reserved_1y,NA,0.757763,USD,Azure Retail Prices API,2025-12-18T04:46:41.660087 +AZURE,japanwest,Standard_D16ds_v4,reserved_3y,NA,0.48809,USD,Azure Retail Prices API,2025-12-18T04:46:41.660090 +AZURE,japanwest,Standard_D16ds_v4,spot,NA,0.237283,USD,Azure Retail Prices API,2025-12-18T04:46:40.761020 +AZURE,japanwest,Standard_D16ds_v5,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:46:40.760432 +AZURE,japanwest,Standard_D16ds_v5,reserved_1y,NA,0.689155,USD,Azure Retail Prices API,2025-12-18T04:46:41.659495 +AZURE,japanwest,Standard_D16ds_v5,reserved_3y,NA,0.443836,USD,Azure Retail Prices API,2025-12-18T04:46:41.659498 +AZURE,japanwest,Standard_D16ds_v5,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:46:40.760344 +AZURE,japanwest,Standard_D16ds_v6,on_demand,NA,1.287,USD,Azure Retail Prices API,2025-12-18T04:46:40.760153 +AZURE,japanwest,Standard_D16ds_v6,reserved_1y,NA,0.798174,USD,Azure Retail Prices API,2025-12-18T04:46:41.659205 +AZURE,japanwest,Standard_D16ds_v6,reserved_3y,NA,0.502055,USD,Azure Retail Prices API,2025-12-18T04:46:41.659208 +AZURE,japanwest,Standard_D16ds_v6,spot,NA,0.237838,USD,Azure Retail Prices API,2025-12-18T04:46:40.759649 +AZURE,japanwest,Standard_D16pds_v6,on_demand,NA,0.947,USD,Azure Retail Prices API,2025-12-18T04:46:40.759778 +AZURE,japanwest,Standard_D16pds_v6,reserved_1y,NA,0.558904,USD,Azure Retail Prices API,2025-12-18T04:46:41.658884 +AZURE,japanwest,Standard_D16pds_v6,reserved_3y,NA,0.359932,USD,Azure Retail Prices API,2025-12-18T04:46:41.658888 +AZURE,japanwest,Standard_D16pds_v6,spot,NA,0.175006,USD,Azure Retail Prices API,2025-12-18T04:46:40.760241 +AZURE,japanwest,Standard_D16ps_v6,on_demand,NA,0.723,USD,Azure Retail Prices API,2025-12-18T04:46:40.760756 +AZURE,japanwest,Standard_D16ps_v6,reserved_1y,NA,0.426712,USD,Azure Retail Prices API,2025-12-18T04:46:41.659845 +AZURE,japanwest,Standard_D16ps_v6,reserved_3y,NA,0.27481,USD,Azure Retail Prices API,2025-12-18T04:46:41.659847 +AZURE,japanwest,Standard_D16ps_v6,spot,NA,0.13361,USD,Azure Retail Prices API,2025-12-18T04:46:40.760887 +AZURE,japanwest,Standard_D16s_v3,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:46:40.759567 +AZURE,japanwest,Standard_D16s_v3,reserved_1y,NA,0.650685,USD,Azure Retail Prices API,2025-12-18T04:46:41.658718 +AZURE,japanwest,Standard_D16s_v3,reserved_3y,NA,0.443683,USD,Azure Retail Prices API,2025-12-18T04:46:41.658721 +AZURE,japanwest,Standard_D16s_v3,spot,NA,0.196699,USD,Azure Retail Prices API,2025-12-18T04:46:40.760336 +AZURE,japanwest,Standard_D16s_v4,on_demand,NA,1.091,USD,Azure Retail Prices API,2025-12-18T04:46:40.760629 +AZURE,japanwest,Standard_D16s_v4,reserved_1y,NA,0.643836,USD,Azure Retail Prices API,2025-12-18T04:46:41.659716 +AZURE,japanwest,Standard_D16s_v4,reserved_3y,NA,0.41465,USD,Azure Retail Prices API,2025-12-18T04:46:41.659719 +AZURE,japanwest,Standard_D16s_v4,spot,NA,0.201617,USD,Azure Retail Prices API,2025-12-18T04:46:40.760771 +AZURE,japanwest,Standard_D16s_v5,on_demand,NA,0.992,USD,Azure Retail Prices API,2025-12-18T04:46:40.760356 +AZURE,japanwest,Standard_D16s_v5,reserved_1y,NA,0.585274,USD,Azure Retail Prices API,2025-12-18T04:46:41.659415 +AZURE,japanwest,Standard_D16s_v5,reserved_3y,NA,0.367047,USD,Azure Retail Prices API,2025-12-18T04:46:41.659418 +AZURE,japanwest,Standard_D16s_v5,spot,NA,0.183322,USD,Azure Retail Prices API,2025-12-18T04:46:40.760724 +AZURE,japanwest,Standard_D2ads_v6,on_demand,NA,0.149,USD,Azure Retail Prices API,2025-12-18T04:46:40.760382 +AZURE,japanwest,Standard_D2ads_v6,reserved_1y,NA,0.087671,USD,Azure Retail Prices API,2025-12-18T04:46:41.659437 +AZURE,japanwest,Standard_D2ads_v6,reserved_3y,NA,0.056469,USD,Azure Retail Prices API,2025-12-18T04:46:41.659440 +AZURE,japanwest,Standard_D2ads_v6,spot,NA,0.027535,USD,Azure Retail Prices API,2025-12-18T04:46:40.759548 +AZURE,japanwest,Standard_D2ds_v6,on_demand,NA,0.161,USD,Azure Retail Prices API,2025-12-18T04:46:40.760615 +AZURE,japanwest,Standard_D2ds_v6,reserved_1y,NA,0.099772,USD,Azure Retail Prices API,2025-12-18T04:46:41.659694 +AZURE,japanwest,Standard_D2ds_v6,reserved_3y,NA,0.062747,USD,Azure Retail Prices API,2025-12-18T04:46:41.659697 +AZURE,japanwest,Standard_D2ds_v6,spot,NA,0.029753,USD,Azure Retail Prices API,2025-12-18T04:46:40.760912 +AZURE,japanwest,Standard_D32_v3,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:46:40.760522 +AZURE,japanwest,Standard_D32_v3,reserved_1y,NA,1.30137,USD,Azure Retail Prices API,2025-12-18T04:46:41.659599 +AZURE,japanwest,Standard_D32_v3,reserved_3y,NA,0.887367,USD,Azure Retail Prices API,2025-12-18T04:46:41.659602 +AZURE,japanwest,Standard_D32_v3,spot,NA,0.393398,USD,Azure Retail Prices API,2025-12-18T04:46:40.759514 +AZURE,japanwest,Standard_D32a_v4,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:46:40.760105 +AZURE,japanwest,Standard_D32a_v4,reserved_1y,NA,1.170548,USD,Azure Retail Prices API,2025-12-18T04:46:41.659134 +AZURE,japanwest,Standard_D32a_v4,reserved_3y,NA,0.753919,USD,Azure Retail Prices API,2025-12-18T04:46:41.659137 +AZURE,japanwest,Standard_D32a_v4,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:46:40.760416 +AZURE,japanwest,Standard_D32ads_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:46:40.759535 +AZURE,japanwest,Standard_D32ads_v5,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:46:41.659705 +AZURE,japanwest,Standard_D32ads_v5,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:46:41.659708 +AZURE,japanwest,Standard_D32ads_v5,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:46:40.760180 +AZURE,japanwest,Standard_D32ads_v6,on_demand,NA,2.378,USD,Azure Retail Prices API,2025-12-18T04:46:40.759691 +AZURE,japanwest,Standard_D32ads_v6,reserved_1y,NA,1.40274,USD,Azure Retail Prices API,2025-12-18T04:46:41.658825 +AZURE,japanwest,Standard_D32ads_v6,reserved_3y,NA,0.903501,USD,Azure Retail Prices API,2025-12-18T04:46:41.658828 +AZURE,japanwest,Standard_D32ads_v6,spot,NA,0.439454,USD,Azure Retail Prices API,2025-12-18T04:46:40.760890 +AZURE,japanwest,Standard_D32as_v4,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:46:40.760790 +AZURE,japanwest,Standard_D32as_v4,reserved_1y,NA,1.170548,USD,Azure Retail Prices API,2025-12-18T04:46:41.659878 +AZURE,japanwest,Standard_D32as_v4,reserved_3y,NA,0.753919,USD,Azure Retail Prices API,2025-12-18T04:46:41.659881 +AZURE,japanwest,Standard_D32as_v4,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:46:40.760527 +AZURE,japanwest,Standard_D32as_v5,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:46:40.760134 +AZURE,japanwest,Standard_D32as_v5,reserved_1y,NA,1.057306,USD,Azure Retail Prices API,2025-12-18T04:46:41.659171 +AZURE,japanwest,Standard_D32as_v5,reserved_3y,NA,0.680974,USD,Azure Retail Prices API,2025-12-18T04:46:41.659175 +AZURE,japanwest,Standard_D32as_v5,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:46:40.760102 +AZURE,japanwest,Standard_D32d_v4,on_demand,NA,2.569,USD,Azure Retail Prices API,2025-12-18T04:46:40.760762 +AZURE,japanwest,Standard_D32d_v4,reserved_1y,NA,1.515639,USD,Azure Retail Prices API,2025-12-18T04:46:41.659850 +AZURE,japanwest,Standard_D32d_v4,reserved_3y,NA,0.976142,USD,Azure Retail Prices API,2025-12-18T04:46:41.659853 +AZURE,japanwest,Standard_D32d_v4,spot,NA,0.474751,USD,Azure Retail Prices API,2025-12-18T04:46:40.759680 +AZURE,japanwest,Standard_D32ds_v4,on_demand,NA,2.569,USD,Azure Retail Prices API,2025-12-18T04:46:40.760203 +AZURE,japanwest,Standard_D32ds_v4,reserved_1y,NA,1.515639,USD,Azure Retail Prices API,2025-12-18T04:46:41.659268 +AZURE,japanwest,Standard_D32ds_v4,reserved_3y,NA,0.976142,USD,Azure Retail Prices API,2025-12-18T04:46:41.659271 +AZURE,japanwest,Standard_D32ds_v4,spot,NA,0.474751,USD,Azure Retail Prices API,2025-12-18T04:46:40.759934 +AZURE,japanwest,Standard_D32ds_v5,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:46:40.760741 +AZURE,japanwest,Standard_D32ds_v5,reserved_1y,NA,1.378196,USD,Azure Retail Prices API,2025-12-18T04:46:41.659828 +AZURE,japanwest,Standard_D32ds_v5,reserved_3y,NA,0.887671,USD,Azure Retail Prices API,2025-12-18T04:46:41.659831 +AZURE,japanwest,Standard_D32ds_v5,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:46:40.760810 +AZURE,japanwest,Standard_D32ds_v6,on_demand,NA,2.575,USD,Azure Retail Prices API,2025-12-18T04:46:40.759726 +AZURE,japanwest,Standard_D32ds_v6,reserved_1y,NA,1.596347,USD,Azure Retail Prices API,2025-12-18T04:46:41.658852 +AZURE,japanwest,Standard_D32ds_v6,reserved_3y,NA,1.004148,USD,Azure Retail Prices API,2025-12-18T04:46:41.658855 +AZURE,japanwest,Standard_D32ds_v6,spot,NA,0.47586,USD,Azure Retail Prices API,2025-12-18T04:46:40.761052 +AZURE,japanwest,Standard_D32pds_v6,on_demand,NA,1.894,USD,Azure Retail Prices API,2025-12-18T04:46:40.759731 +AZURE,japanwest,Standard_D32pds_v6,reserved_1y,NA,1.117694,USD,Azure Retail Prices API,2025-12-18T04:46:41.658858 +AZURE,japanwest,Standard_D32pds_v6,reserved_3y,NA,0.719863,USD,Azure Retail Prices API,2025-12-18T04:46:41.658860 +AZURE,japanwest,Standard_D32pds_v6,spot,NA,0.350011,USD,Azure Retail Prices API,2025-12-18T04:46:40.760400 +AZURE,japanwest,Standard_D32ps_v6,on_demand,NA,1.446,USD,Azure Retail Prices API,2025-12-18T04:46:40.759878 +AZURE,japanwest,Standard_D32ps_v6,reserved_1y,NA,0.853425,USD,Azure Retail Prices API,2025-12-18T04:46:41.658959 +AZURE,japanwest,Standard_D32ps_v6,reserved_3y,NA,0.549619,USD,Azure Retail Prices API,2025-12-18T04:46:41.658962 +AZURE,japanwest,Standard_D32ps_v6,spot,NA,0.267221,USD,Azure Retail Prices API,2025-12-18T04:46:40.759993 +AZURE,japanwest,Standard_D32s_v3,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:46:40.760026 +AZURE,japanwest,Standard_D32s_v3,reserved_1y,NA,1.30137,USD,Azure Retail Prices API,2025-12-18T04:46:41.659052 +AZURE,japanwest,Standard_D32s_v3,reserved_3y,NA,0.887367,USD,Azure Retail Prices API,2025-12-18T04:46:41.659055 +AZURE,japanwest,Standard_D32s_v3,spot,NA,0.393398,USD,Azure Retail Prices API,2025-12-18T04:46:40.759640 +AZURE,japanwest,Standard_D32s_v4,on_demand,NA,2.182,USD,Azure Retail Prices API,2025-12-18T04:46:40.759937 +AZURE,japanwest,Standard_D32s_v4,reserved_1y,NA,1.287557,USD,Azure Retail Prices API,2025-12-18T04:46:41.659003 +AZURE,japanwest,Standard_D32s_v4,reserved_3y,NA,0.8293,USD,Azure Retail Prices API,2025-12-18T04:46:41.659006 +AZURE,japanwest,Standard_D32s_v4,spot,NA,0.403234,USD,Azure Retail Prices API,2025-12-18T04:46:40.760119 +AZURE,japanwest,Standard_D32s_v5,on_demand,NA,1.984,USD,Azure Retail Prices API,2025-12-18T04:46:40.760318 +AZURE,japanwest,Standard_D32s_v5,reserved_1y,NA,1.170548,USD,Azure Retail Prices API,2025-12-18T04:46:41.659388 +AZURE,japanwest,Standard_D32s_v5,reserved_3y,NA,0.734094,USD,Azure Retail Prices API,2025-12-18T04:46:41.659390 +AZURE,japanwest,Standard_D32s_v5,spot,NA,0.366643,USD,Azure Retail Prices API,2025-12-18T04:46:40.760744 +AZURE,japanwest,Standard_D3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485725 +AZURE,japanwest,Standard_D3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485733 +AZURE,japanwest,Standard_D3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485737 +AZURE,japanwest,Standard_D3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485729 +AZURE,japanwest,Standard_D48a_v4,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:46:40.760493 +AZURE,japanwest,Standard_D48a_v4,reserved_1y,NA,1.755822,USD,Azure Retail Prices API,2025-12-18T04:46:41.659560 +AZURE,japanwest,Standard_D48a_v4,reserved_3y,NA,1.130898,USD,Azure Retail Prices API,2025-12-18T04:46:41.659563 +AZURE,japanwest,Standard_D48a_v4,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:46:40.761043 +AZURE,japanwest,Standard_D48ads_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:46:40.759954 +AZURE,japanwest,Standard_D48ads_v5,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:46:41.659945 +AZURE,japanwest,Standard_D48ads_v5,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:46:41.659948 +AZURE,japanwest,Standard_D48ads_v5,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:40.760617 +AZURE,japanwest,Standard_D48ads_v6,on_demand,NA,3.566,USD,Azure Retail Prices API,2025-12-18T04:46:40.760394 +AZURE,japanwest,Standard_D48ads_v6,reserved_1y,NA,2.104224,USD,Azure Retail Prices API,2025-12-18T04:46:41.659454 +AZURE,japanwest,Standard_D48ads_v6,reserved_3y,NA,1.355213,USD,Azure Retail Prices API,2025-12-18T04:46:41.659456 +AZURE,japanwest,Standard_D48ads_v6,spot,NA,0.658997,USD,Azure Retail Prices API,2025-12-18T04:46:40.759573 +AZURE,japanwest,Standard_D48as_v4,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:46:40.759746 +AZURE,japanwest,Standard_D48as_v4,reserved_1y,NA,1.755822,USD,Azure Retail Prices API,2025-12-18T04:46:41.658869 +AZURE,japanwest,Standard_D48as_v4,reserved_3y,NA,1.130898,USD,Azure Retail Prices API,2025-12-18T04:46:41.658871 +AZURE,japanwest,Standard_D48as_v4,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:46:40.760006 +AZURE,japanwest,Standard_D48as_v5,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:46:40.759539 +AZURE,japanwest,Standard_D48as_v5,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:46:41.658758 +AZURE,japanwest,Standard_D48as_v5,reserved_3y,NA,1.021423,USD,Azure Retail Prices API,2025-12-18T04:46:41.658761 +AZURE,japanwest,Standard_D48as_v5,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:40.759751 +AZURE,japanwest,Standard_D48d_v4,on_demand,NA,3.853,USD,Azure Retail Prices API,2025-12-18T04:46:40.760516 +AZURE,japanwest,Standard_D48d_v4,reserved_1y,NA,2.273402,USD,Azure Retail Prices API,2025-12-18T04:46:41.659594 +AZURE,japanwest,Standard_D48d_v4,reserved_3y,NA,1.464231,USD,Azure Retail Prices API,2025-12-18T04:46:41.659597 +AZURE,japanwest,Standard_D48d_v4,spot,NA,0.712034,USD,Azure Retail Prices API,2025-12-18T04:46:40.760736 +AZURE,japanwest,Standard_D48ds_v4,on_demand,NA,3.853,USD,Azure Retail Prices API,2025-12-18T04:46:40.760709 +AZURE,japanwest,Standard_D48ds_v4,reserved_1y,NA,2.273402,USD,Azure Retail Prices API,2025-12-18T04:46:41.659788 +AZURE,japanwest,Standard_D48ds_v4,reserved_3y,NA,1.464231,USD,Azure Retail Prices API,2025-12-18T04:46:41.659791 +AZURE,japanwest,Standard_D48ds_v4,spot,NA,0.712034,USD,Azure Retail Prices API,2025-12-18T04:46:40.759605 +AZURE,japanwest,Standard_D48ds_v5,on_demand,NA,3.504,USD,Azure Retail Prices API,2025-12-18T04:46:40.759884 +AZURE,japanwest,Standard_D48ds_v5,reserved_1y,NA,2.067352,USD,Azure Retail Prices API,2025-12-18T04:46:41.658965 +AZURE,japanwest,Standard_D48ds_v5,reserved_3y,NA,1.331507,USD,Azure Retail Prices API,2025-12-18T04:46:41.658968 +AZURE,japanwest,Standard_D48ds_v5,spot,NA,0.647539,USD,Azure Retail Prices API,2025-12-18T04:46:40.760718 +AZURE,japanwest,Standard_D48ds_v6,on_demand,NA,3.862,USD,Azure Retail Prices API,2025-12-18T04:46:40.760227 +AZURE,japanwest,Standard_D48ds_v6,reserved_1y,NA,2.394521,USD,Azure Retail Prices API,2025-12-18T04:46:41.659279 +AZURE,japanwest,Standard_D48ds_v6,reserved_3y,NA,1.506202,USD,Azure Retail Prices API,2025-12-18T04:46:41.659282 +AZURE,japanwest,Standard_D48ds_v6,spot,NA,0.713698,USD,Azure Retail Prices API,2025-12-18T04:46:40.760362 +AZURE,japanwest,Standard_D48pds_v6,on_demand,NA,2.842,USD,Azure Retail Prices API,2025-12-18T04:46:40.760678 +AZURE,japanwest,Standard_D48pds_v6,reserved_1y,NA,1.676598,USD,Azure Retail Prices API,2025-12-18T04:46:41.659755 +AZURE,japanwest,Standard_D48pds_v6,reserved_3y,NA,1.079795,USD,Azure Retail Prices API,2025-12-18T04:46:41.659758 +AZURE,japanwest,Standard_D48pds_v6,spot,NA,0.525202,USD,Azure Retail Prices API,2025-12-18T04:46:40.760142 +AZURE,japanwest,Standard_D48ps_v6,on_demand,NA,2.17,USD,Azure Retail Prices API,2025-12-18T04:46:40.761068 +AZURE,japanwest,Standard_D48ps_v6,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:46:41.660104 +AZURE,japanwest,Standard_D48ps_v6,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:46:41.660107 +AZURE,japanwest,Standard_D48ps_v6,spot,NA,0.401016,USD,Azure Retail Prices API,2025-12-18T04:46:40.760108 +AZURE,japanwest,Standard_D48s_v4,on_demand,NA,3.274,USD,Azure Retail Prices API,2025-12-18T04:46:40.759890 +AZURE,japanwest,Standard_D48s_v4,reserved_1y,NA,1.931393,USD,Azure Retail Prices API,2025-12-18T04:46:41.658970 +AZURE,japanwest,Standard_D48s_v4,reserved_3y,NA,1.24395,USD,Azure Retail Prices API,2025-12-18T04:46:41.658973 +AZURE,japanwest,Standard_D48s_v4,spot,NA,0.605035,USD,Azure Retail Prices API,2025-12-18T04:46:40.760990 +AZURE,japanwest,Standard_D48s_v5,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:46:40.759551 +AZURE,japanwest,Standard_D48s_v5,reserved_1y,NA,1.755822,USD,Azure Retail Prices API,2025-12-18T04:46:41.658701 +AZURE,japanwest,Standard_D48s_v5,reserved_3y,NA,1.101104,USD,Azure Retail Prices API,2025-12-18T04:46:41.658703 +AZURE,japanwest,Standard_D48s_v5,spot,NA,0.549965,USD,Azure Retail Prices API,2025-12-18T04:46:40.760909 +AZURE,japanwest,Standard_D4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486558 +AZURE,japanwest,Standard_D4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486572 +AZURE,japanwest,Standard_D4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486580 +AZURE,japanwest,Standard_D4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486565 +AZURE,japanwest,Standard_D4a_v4,on_demand,NA,0.248,USD,Azure Retail Prices API,2025-12-18T04:46:40.760606 +AZURE,japanwest,Standard_D4a_v4,reserved_1y,NA,0.146347,USD,Azure Retail Prices API,2025-12-18T04:46:41.659684 +AZURE,japanwest,Standard_D4a_v4,reserved_3y,NA,0.094254,USD,Azure Retail Prices API,2025-12-18T04:46:41.659686 +AZURE,japanwest,Standard_D4a_v4,spot,NA,0.04583,USD,Azure Retail Prices API,2025-12-18T04:46:40.761063 +AZURE,japanwest,Standard_D4ads_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:46:40.760410 +AZURE,japanwest,Standard_D4ads_v5,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:46:41.660027 +AZURE,japanwest,Standard_D4ads_v5,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:46:41.660030 +AZURE,japanwest,Standard_D4ads_v5,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:46:40.760939 +AZURE,japanwest,Standard_D4ads_v6,on_demand,NA,0.297,USD,Azure Retail Prices API,2025-12-18T04:46:40.760753 +AZURE,japanwest,Standard_D4ads_v6,reserved_1y,NA,0.175342,USD,Azure Retail Prices API,2025-12-18T04:46:41.659839 +AZURE,japanwest,Standard_D4ads_v6,reserved_3y,NA,0.112938,USD,Azure Retail Prices API,2025-12-18T04:46:41.659842 +AZURE,japanwest,Standard_D4ads_v6,spot,NA,0.054886,USD,Azure Retail Prices API,2025-12-18T04:46:40.759771 +AZURE,japanwest,Standard_D4as_v5,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:46:40.760918 +AZURE,japanwest,Standard_D4as_v5,reserved_1y,NA,0.132192,USD,Azure Retail Prices API,2025-12-18T04:46:41.660005 +AZURE,japanwest,Standard_D4as_v5,reserved_3y,NA,0.085122,USD,Azure Retail Prices API,2025-12-18T04:46:41.660008 +AZURE,japanwest,Standard_D4as_v5,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:46:40.759979 +AZURE,japanwest,Standard_D4d_v4,on_demand,NA,0.321,USD,Azure Retail Prices API,2025-12-18T04:46:40.760620 +AZURE,japanwest,Standard_D4d_v4,reserved_1y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:46:41.659700 +AZURE,japanwest,Standard_D4d_v4,reserved_3y,NA,0.122032,USD,Azure Retail Prices API,2025-12-18T04:46:41.659702 +AZURE,japanwest,Standard_D4d_v4,spot,NA,0.059321,USD,Azure Retail Prices API,2025-12-18T04:46:40.760816 +AZURE,japanwest,Standard_D4ds_v4,on_demand,NA,0.321,USD,Azure Retail Prices API,2025-12-18T04:46:40.761089 +AZURE,japanwest,Standard_D4ds_v4,reserved_1y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:46:41.660123 +AZURE,japanwest,Standard_D4ds_v4,reserved_3y,NA,0.122032,USD,Azure Retail Prices API,2025-12-18T04:46:41.660126 +AZURE,japanwest,Standard_D4ds_v4,spot,NA,0.059321,USD,Azure Retail Prices API,2025-12-18T04:46:40.760995 +AZURE,japanwest,Standard_D4ds_v5,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:40.760313 +AZURE,japanwest,Standard_D4ds_v5,reserved_1y,NA,0.17226,USD,Azure Retail Prices API,2025-12-18T04:46:41.659377 +AZURE,japanwest,Standard_D4ds_v5,reserved_3y,NA,0.110959,USD,Azure Retail Prices API,2025-12-18T04:46:41.659379 +AZURE,japanwest,Standard_D4ds_v5,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:46:40.760171 +AZURE,japanwest,Standard_D4ds_v6,on_demand,NA,0.322,USD,Azure Retail Prices API,2025-12-18T04:46:40.761077 +AZURE,japanwest,Standard_D4ds_v6,reserved_1y,NA,0.199543,USD,Azure Retail Prices API,2025-12-18T04:46:41.660110 +AZURE,japanwest,Standard_D4ds_v6,reserved_3y,NA,0.125533,USD,Azure Retail Prices API,2025-12-18T04:46:41.660112 +AZURE,japanwest,Standard_D4ds_v6,spot,NA,0.059506,USD,Azure Retail Prices API,2025-12-18T04:46:40.760876 +AZURE,japanwest,Standard_D4pds_v6,on_demand,NA,0.237,USD,Azure Retail Prices API,2025-12-18T04:46:40.760866 +AZURE,japanwest,Standard_D4pds_v6,reserved_1y,NA,0.139726,USD,Azure Retail Prices API,2025-12-18T04:46:41.659972 +AZURE,japanwest,Standard_D4pds_v6,reserved_3y,NA,0.089992,USD,Azure Retail Prices API,2025-12-18T04:46:41.659975 +AZURE,japanwest,Standard_D4pds_v6,spot,NA,0.043798,USD,Azure Retail Prices API,2025-12-18T04:46:40.760657 +AZURE,japanwest,Standard_D4ps_v6,on_demand,NA,0.181,USD,Azure Retail Prices API,2025-12-18T04:46:40.760052 +AZURE,japanwest,Standard_D4ps_v6,reserved_1y,NA,0.106621,USD,Azure Retail Prices API,2025-12-18T04:46:41.659097 +AZURE,japanwest,Standard_D4ps_v6,reserved_3y,NA,0.068721,USD,Azure Retail Prices API,2025-12-18T04:46:41.659101 +AZURE,japanwest,Standard_D4ps_v6,spot,NA,0.033449,USD,Azure Retail Prices API,2025-12-18T04:46:40.760082 +AZURE,japanwest,Standard_D4s_v3,on_demand,NA,0.258,USD,Azure Retail Prices API,2025-12-18T04:46:40.760244 +AZURE,japanwest,Standard_D4s_v3,reserved_1y,NA,0.162671,USD,Azure Retail Prices API,2025-12-18T04:46:41.659303 +AZURE,japanwest,Standard_D4s_v3,reserved_3y,NA,0.110921,USD,Azure Retail Prices API,2025-12-18T04:46:41.659305 +AZURE,japanwest,Standard_D4s_v3,spot,NA,0.049175,USD,Azure Retail Prices API,2025-12-18T04:46:40.760296 +AZURE,japanwest,Standard_D4s_v4,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:46:40.759913 +AZURE,japanwest,Standard_D4s_v4,reserved_1y,NA,0.160959,USD,Azure Retail Prices API,2025-12-18T04:46:41.658987 +AZURE,japanwest,Standard_D4s_v4,reserved_3y,NA,0.103653,USD,Azure Retail Prices API,2025-12-18T04:46:41.658990 +AZURE,japanwest,Standard_D4s_v4,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:46:40.760291 +AZURE,japanwest,Standard_D4s_v5,on_demand,NA,0.248,USD,Azure Retail Prices API,2025-12-18T04:46:40.760868 +AZURE,japanwest,Standard_D4s_v5,reserved_1y,NA,0.146347,USD,Azure Retail Prices API,2025-12-18T04:46:41.659978 +AZURE,japanwest,Standard_D4s_v5,reserved_3y,NA,0.091743,USD,Azure Retail Prices API,2025-12-18T04:46:41.659980 +AZURE,japanwest,Standard_D4s_v5,spot,NA,0.04583,USD,Azure Retail Prices API,2025-12-18T04:46:40.760088 +AZURE,japanwest,Standard_D5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487846 +AZURE,japanwest,Standard_D5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487854 +AZURE,japanwest,Standard_D5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487858 +AZURE,japanwest,Standard_D5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487850 +AZURE,japanwest,Standard_D64_v3,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:46:40.760192 +AZURE,japanwest,Standard_D64_v3,reserved_1y,NA,2.60274,USD,Azure Retail Prices API,2025-12-18T04:46:41.659246 +AZURE,japanwest,Standard_D64_v3,reserved_3y,NA,1.774734,USD,Azure Retail Prices API,2025-12-18T04:46:41.659249 +AZURE,japanwest,Standard_D64_v3,spot,NA,0.786797,USD,Azure Retail Prices API,2025-12-18T04:46:40.760799 +AZURE,japanwest,Standard_D64a_v4,on_demand,NA,3.968,USD,Azure Retail Prices API,2025-12-18T04:46:40.759966 +AZURE,japanwest,Standard_D64a_v4,reserved_1y,NA,2.341096,USD,Azure Retail Prices API,2025-12-18T04:46:41.659025 +AZURE,japanwest,Standard_D64a_v4,reserved_3y,NA,1.507839,USD,Azure Retail Prices API,2025-12-18T04:46:41.659028 +AZURE,japanwest,Standard_D64a_v4,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:46:40.761031 +AZURE,japanwest,Standard_D64ads_v5,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:46:40.759922 +AZURE,japanwest,Standard_D64ads_v5,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:46:41.658992 +AZURE,japanwest,Standard_D64ads_v5,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:46:41.658995 +AZURE,japanwest,Standard_D64ads_v5,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:46:40.761046 +AZURE,japanwest,Standard_D64ads_v6,on_demand,NA,4.755,USD,Azure Retail Prices API,2025-12-18T04:46:40.759558 +AZURE,japanwest,Standard_D64ads_v6,reserved_1y,NA,2.805594,USD,Azure Retail Prices API,2025-12-18T04:46:41.658706 +AZURE,japanwest,Standard_D64ads_v6,reserved_3y,NA,1.806963,USD,Azure Retail Prices API,2025-12-18T04:46:41.658709 +AZURE,japanwest,Standard_D64ads_v6,spot,NA,0.878724,USD,Azure Retail Prices API,2025-12-18T04:46:40.760148 +AZURE,japanwest,Standard_D64as_v4,on_demand,NA,3.968,USD,Azure Retail Prices API,2025-12-18T04:46:40.759674 +AZURE,japanwest,Standard_D64as_v4,reserved_1y,NA,2.341096,USD,Azure Retail Prices API,2025-12-18T04:46:41.658803 +AZURE,japanwest,Standard_D64as_v4,reserved_3y,NA,1.507839,USD,Azure Retail Prices API,2025-12-18T04:46:41.658806 +AZURE,japanwest,Standard_D64as_v4,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:46:40.761054 +AZURE,japanwest,Standard_D64as_v5,on_demand,NA,6.528,USD,Azure Retail Prices API,2025-12-18T04:46:40.760879 +AZURE,japanwest,Standard_D64as_v5,reserved_1y,NA,2.114612,USD,Azure Retail Prices API,2025-12-18T04:46:41.660022 +AZURE,japanwest,Standard_D64as_v5,reserved_3y,NA,1.36191,USD,Azure Retail Prices API,2025-12-18T04:46:41.660025 +AZURE,japanwest,Standard_D64as_v5,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:46:40.760681 +AZURE,japanwest,Standard_D64d_v4,on_demand,NA,5.138,USD,Azure Retail Prices API,2025-12-18T04:46:40.760302 +AZURE,japanwest,Standard_D64d_v4,reserved_1y,NA,3.031164,USD,Azure Retail Prices API,2025-12-18T04:46:41.659371 +AZURE,japanwest,Standard_D64d_v4,reserved_3y,NA,1.952283,USD,Azure Retail Prices API,2025-12-18T04:46:41.659374 +AZURE,japanwest,Standard_D64d_v4,spot,NA,0.949502,USD,Azure Retail Prices API,2025-12-18T04:46:40.759525 +AZURE,japanwest,Standard_D64ds_v4,on_demand,NA,5.138,USD,Azure Retail Prices API,2025-12-18T04:46:40.761014 +AZURE,japanwest,Standard_D64ds_v4,reserved_1y,NA,3.031164,USD,Azure Retail Prices API,2025-12-18T04:46:41.660067 +AZURE,japanwest,Standard_D64ds_v4,reserved_3y,NA,1.952283,USD,Azure Retail Prices API,2025-12-18T04:46:41.660078 +AZURE,japanwest,Standard_D64ds_v4,spot,NA,0.949502,USD,Azure Retail Prices API,2025-12-18T04:46:40.759950 +AZURE,japanwest,Standard_D64ds_v5,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:46:40.760915 +AZURE,japanwest,Standard_D64ds_v5,reserved_1y,NA,2.756507,USD,Azure Retail Prices API,2025-12-18T04:46:41.660000 +AZURE,japanwest,Standard_D64ds_v5,reserved_3y,NA,1.775342,USD,Azure Retail Prices API,2025-12-18T04:46:41.660002 +AZURE,japanwest,Standard_D64ds_v5,spot,NA,0.863386,USD,Azure Retail Prices API,2025-12-18T04:46:40.760111 +AZURE,japanwest,Standard_D64ds_v6,on_demand,NA,5.149,USD,Azure Retail Prices API,2025-12-18T04:46:40.760022 +AZURE,japanwest,Standard_D64ds_v6,reserved_1y,NA,3.192694,USD,Azure Retail Prices API,2025-12-18T04:46:41.659046 +AZURE,japanwest,Standard_D64ds_v6,reserved_3y,NA,2.008295,USD,Azure Retail Prices API,2025-12-18T04:46:41.659049 +AZURE,japanwest,Standard_D64ds_v6,spot,NA,0.951535,USD,Azure Retail Prices API,2025-12-18T04:46:40.760765 +AZURE,japanwest,Standard_D64pds_v6,on_demand,NA,3.789,USD,Azure Retail Prices API,2025-12-18T04:46:40.760589 +AZURE,japanwest,Standard_D64pds_v6,reserved_1y,NA,2.235388,USD,Azure Retail Prices API,2025-12-18T04:46:41.659667 +AZURE,japanwest,Standard_D64pds_v6,reserved_3y,NA,1.439726,USD,Azure Retail Prices API,2025-12-18T04:46:41.659670 +AZURE,japanwest,Standard_D64pds_v6,spot,NA,0.700207,USD,Azure Retail Prices API,2025-12-18T04:46:40.759704 +AZURE,japanwest,Standard_D64ps_v6,on_demand,NA,2.893,USD,Azure Retail Prices API,2025-12-18T04:46:40.760695 +AZURE,japanwest,Standard_D64ps_v6,reserved_1y,NA,1.706735,USD,Azure Retail Prices API,2025-12-18T04:46:41.659761 +AZURE,japanwest,Standard_D64ps_v6,reserved_3y,NA,1.099277,USD,Azure Retail Prices API,2025-12-18T04:46:41.659763 +AZURE,japanwest,Standard_D64ps_v6,spot,NA,0.534626,USD,Azure Retail Prices API,2025-12-18T04:46:40.760057 +AZURE,japanwest,Standard_D64s_v3,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:46:40.759576 +AZURE,japanwest,Standard_D64s_v3,reserved_1y,NA,2.60274,USD,Azure Retail Prices API,2025-12-18T04:46:41.658730 +AZURE,japanwest,Standard_D64s_v3,reserved_3y,NA,1.774734,USD,Azure Retail Prices API,2025-12-18T04:46:41.658733 +AZURE,japanwest,Standard_D64s_v3,spot,NA,0.786797,USD,Azure Retail Prices API,2025-12-18T04:46:40.760288 +AZURE,japanwest,Standard_D64s_v4,on_demand,NA,4.365,USD,Azure Retail Prices API,2025-12-18T04:46:40.760540 +AZURE,japanwest,Standard_D64s_v4,reserved_1y,NA,2.575228,USD,Azure Retail Prices API,2025-12-18T04:46:41.659622 +AZURE,japanwest,Standard_D64s_v4,reserved_3y,NA,1.6586,USD,Azure Retail Prices API,2025-12-18T04:46:41.659625 +AZURE,japanwest,Standard_D64s_v4,spot,NA,0.806652,USD,Azure Retail Prices API,2025-12-18T04:46:40.760124 +AZURE,japanwest,Standard_D64s_v5,on_demand,NA,3.968,USD,Azure Retail Prices API,2025-12-18T04:46:40.759697 +AZURE,japanwest,Standard_D64s_v5,reserved_1y,NA,2.341096,USD,Azure Retail Prices API,2025-12-18T04:46:41.658831 +AZURE,japanwest,Standard_D64s_v5,reserved_3y,NA,1.468151,USD,Azure Retail Prices API,2025-12-18T04:46:41.658833 +AZURE,japanwest,Standard_D64s_v5,spot,NA,0.733286,USD,Azure Retail Prices API,2025-12-18T04:46:40.759614 +AZURE,japanwest,Standard_D8_v3,on_demand,NA,0.516,USD,Azure Retail Prices API,2025-12-18T04:46:40.760598 +AZURE,japanwest,Standard_D8_v3,reserved_1y,NA,0.325342,USD,Azure Retail Prices API,2025-12-18T04:46:41.659673 +AZURE,japanwest,Standard_D8_v3,reserved_3y,NA,0.221842,USD,Azure Retail Prices API,2025-12-18T04:46:41.659675 +AZURE,japanwest,Standard_D8_v3,spot,NA,0.09835,USD,Azure Retail Prices API,2025-12-18T04:46:40.759686 +AZURE,japanwest,Standard_D8a_v4,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:46:40.760638 +AZURE,japanwest,Standard_D8a_v4,reserved_1y,NA,0.292694,USD,Azure Retail Prices API,2025-12-18T04:46:41.659721 +AZURE,japanwest,Standard_D8a_v4,reserved_3y,NA,0.18847,USD,Azure Retail Prices API,2025-12-18T04:46:41.659724 +AZURE,japanwest,Standard_D8a_v4,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:46:40.759765 +AZURE,japanwest,Standard_D8ads_v5,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:40.760236 +AZURE,japanwest,Standard_D8ads_v5,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:46:41.659297 +AZURE,japanwest,Standard_D8ads_v5,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:46:41.659300 +AZURE,japanwest,Standard_D8ads_v5,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:40.760218 +AZURE,japanwest,Standard_D8ads_v6,on_demand,NA,0.594,USD,Azure Retail Prices API,2025-12-18T04:46:40.760577 +AZURE,japanwest,Standard_D8ads_v6,reserved_1y,NA,0.350685,USD,Azure Retail Prices API,2025-12-18T04:46:41.659651 +AZURE,japanwest,Standard_D8ads_v6,reserved_3y,NA,0.225875,USD,Azure Retail Prices API,2025-12-18T04:46:41.659653 +AZURE,japanwest,Standard_D8ads_v6,spot,NA,0.109771,USD,Azure Retail Prices API,2025-12-18T04:46:40.760359 +AZURE,japanwest,Standard_D8as_v4,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:46:40.760420 +AZURE,japanwest,Standard_D8as_v4,reserved_1y,NA,0.292694,USD,Azure Retail Prices API,2025-12-18T04:46:41.659473 +AZURE,japanwest,Standard_D8as_v4,reserved_3y,NA,0.18847,USD,Azure Retail Prices API,2025-12-18T04:46:41.659476 +AZURE,japanwest,Standard_D8as_v4,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:46:40.759585 +AZURE,japanwest,Standard_D8as_v5,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:46:40.760802 +AZURE,japanwest,Standard_D8as_v5,reserved_1y,NA,0.264269,USD,Azure Retail Prices API,2025-12-18T04:46:41.659895 +AZURE,japanwest,Standard_D8as_v5,reserved_3y,NA,0.170244,USD,Azure Retail Prices API,2025-12-18T04:46:41.659898 +AZURE,japanwest,Standard_D8as_v5,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:46:40.759823 +AZURE,japanwest,Standard_D8d_v4,on_demand,NA,0.642,USD,Azure Retail Prices API,2025-12-18T04:46:40.759593 +AZURE,japanwest,Standard_D8d_v4,reserved_1y,NA,0.378881,USD,Azure Retail Prices API,2025-12-18T04:46:41.658741 +AZURE,japanwest,Standard_D8d_v4,reserved_3y,NA,0.244026,USD,Azure Retail Prices API,2025-12-18T04:46:41.658744 +AZURE,japanwest,Standard_D8d_v4,spot,NA,0.118642,USD,Azure Retail Prices API,2025-12-18T04:46:40.759905 +AZURE,japanwest,Standard_D8ds_v4,on_demand,NA,0.642,USD,Azure Retail Prices API,2025-12-18T04:46:40.760626 +AZURE,japanwest,Standard_D8ds_v4,reserved_1y,NA,0.378881,USD,Azure Retail Prices API,2025-12-18T04:46:41.659711 +AZURE,japanwest,Standard_D8ds_v4,reserved_3y,NA,0.244026,USD,Azure Retail Prices API,2025-12-18T04:46:41.659713 +AZURE,japanwest,Standard_D8ds_v4,spot,NA,0.118642,USD,Azure Retail Prices API,2025-12-18T04:46:40.760641 +AZURE,japanwest,Standard_D8ds_v5,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:46:40.761124 +AZURE,japanwest,Standard_D8ds_v5,reserved_1y,NA,0.344521,USD,Azure Retail Prices API,2025-12-18T04:46:41.660145 +AZURE,japanwest,Standard_D8ds_v5,reserved_3y,NA,0.221918,USD,Azure Retail Prices API,2025-12-18T04:46:41.660148 +AZURE,japanwest,Standard_D8ds_v5,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:46:40.760675 +AZURE,japanwest,Standard_D8ds_v6,on_demand,NA,0.644,USD,Azure Retail Prices API,2025-12-18T04:46:40.760274 +AZURE,japanwest,Standard_D8ds_v6,reserved_1y,NA,0.399087,USD,Azure Retail Prices API,2025-12-18T04:46:41.659349 +AZURE,japanwest,Standard_D8ds_v6,reserved_3y,NA,0.251027,USD,Azure Retail Prices API,2025-12-18T04:46:41.659351 +AZURE,japanwest,Standard_D8ds_v6,spot,NA,0.119011,USD,Azure Retail Prices API,2025-12-18T04:46:40.760321 +AZURE,japanwest,Standard_D8pds_v6,on_demand,NA,0.474,USD,Azure Retail Prices API,2025-12-18T04:46:40.760600 +AZURE,japanwest,Standard_D8pds_v6,reserved_1y,NA,0.279452,USD,Azure Retail Prices API,2025-12-18T04:46:41.659678 +AZURE,japanwest,Standard_D8pds_v6,reserved_3y,NA,0.179985,USD,Azure Retail Prices API,2025-12-18T04:46:41.659681 +AZURE,japanwest,Standard_D8pds_v6,spot,NA,0.087595,USD,Azure Retail Prices API,2025-12-18T04:46:40.760934 +AZURE,japanwest,Standard_D8ps_v6,on_demand,NA,0.362,USD,Azure Retail Prices API,2025-12-18T04:46:40.760385 +AZURE,japanwest,Standard_D8ps_v6,reserved_1y,NA,0.213356,USD,Azure Retail Prices API,2025-12-18T04:46:41.659443 +AZURE,japanwest,Standard_D8ps_v6,reserved_3y,NA,0.137405,USD,Azure Retail Prices API,2025-12-18T04:46:41.659445 +AZURE,japanwest,Standard_D8ps_v6,spot,NA,0.066898,USD,Azure Retail Prices API,2025-12-18T04:46:40.761100 +AZURE,japanwest,Standard_D8s_v3,on_demand,NA,0.516,USD,Azure Retail Prices API,2025-12-18T04:46:40.760863 +AZURE,japanwest,Standard_D8s_v3,reserved_1y,NA,0.325342,USD,Azure Retail Prices API,2025-12-18T04:46:41.659961 +AZURE,japanwest,Standard_D8s_v3,reserved_3y,NA,0.221842,USD,Azure Retail Prices API,2025-12-18T04:46:41.659964 +AZURE,japanwest,Standard_D8s_v3,spot,NA,0.09835,USD,Azure Retail Prices API,2025-12-18T04:46:40.760198 +AZURE,japanwest,Standard_D8s_v4,on_demand,NA,0.546,USD,Azure Retail Prices API,2025-12-18T04:46:40.761049 +AZURE,japanwest,Standard_D8s_v4,reserved_1y,NA,0.321918,USD,Azure Retail Prices API,2025-12-18T04:46:41.660081 +AZURE,japanwest,Standard_D8s_v4,reserved_3y,NA,0.207306,USD,Azure Retail Prices API,2025-12-18T04:46:41.660084 +AZURE,japanwest,Standard_D8s_v4,spot,NA,0.100901,USD,Azure Retail Prices API,2025-12-18T04:46:40.761029 +AZURE,japanwest,Standard_D8s_v5,on_demand,NA,0.496,USD,Azure Retail Prices API,2025-12-18T04:46:40.759620 +AZURE,japanwest,Standard_D8s_v5,reserved_1y,NA,0.292694,USD,Azure Retail Prices API,2025-12-18T04:46:41.658753 +AZURE,japanwest,Standard_D8s_v5,reserved_3y,NA,0.183524,USD,Azure Retail Prices API,2025-12-18T04:46:41.658755 +AZURE,japanwest,Standard_D8s_v5,spot,NA,0.091661,USD,Azure Retail Prices API,2025-12-18T04:46:40.759622 +AZURE,japanwest,Standard_D96a_v4,on_demand,NA,5.952,USD,Azure Retail Prices API,2025-12-18T04:46:40.760779 +AZURE,japanwest,Standard_D96a_v4,reserved_1y,NA,3.511644,USD,Azure Retail Prices API,2025-12-18T04:46:41.659867 +AZURE,japanwest,Standard_D96a_v4,reserved_3y,NA,2.261758,USD,Azure Retail Prices API,2025-12-18T04:46:41.659870 +AZURE,japanwest,Standard_D96a_v4,spot,NA,1.09993,USD,Azure Retail Prices API,2025-12-18T04:46:40.760221 +AZURE,japanwest,Standard_D96ads_v5,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:40.760269 +AZURE,japanwest,Standard_D96ads_v5,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:46:41.659343 +AZURE,japanwest,Standard_D96ads_v5,reserved_3y,NA,2.444178,USD,Azure Retail Prices API,2025-12-18T04:46:41.659346 +AZURE,japanwest,Standard_D96ads_v5,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:40.761130 +AZURE,japanwest,Standard_D96ads_v6,on_demand,NA,7.133,USD,Azure Retail Prices API,2025-12-18T04:46:40.760397 +AZURE,japanwest,Standard_D96ads_v6,reserved_1y,NA,4.208333,USD,Azure Retail Prices API,2025-12-18T04:46:41.659459 +AZURE,japanwest,Standard_D96ads_v6,reserved_3y,NA,2.710464,USD,Azure Retail Prices API,2025-12-18T04:46:41.659461 +AZURE,japanwest,Standard_D96ads_v6,spot,NA,1.318178,USD,Azure Retail Prices API,2025-12-18T04:46:40.760882 +AZURE,japanwest,Standard_D96as_v4,on_demand,NA,5.952,USD,Azure Retail Prices API,2025-12-18T04:46:40.759637 +AZURE,japanwest,Standard_D96as_v4,reserved_1y,NA,3.511644,USD,Azure Retail Prices API,2025-12-18T04:46:41.658781 +AZURE,japanwest,Standard_D96as_v4,reserved_3y,NA,2.261758,USD,Azure Retail Prices API,2025-12-18T04:46:41.658784 +AZURE,japanwest,Standard_D96as_v4,spot,NA,1.09993,USD,Azure Retail Prices API,2025-12-18T04:46:40.759496 +AZURE,japanwest,Standard_D96as_v5,on_demand,NA,9.792,USD,Azure Retail Prices API,2025-12-18T04:46:40.760061 +AZURE,japanwest,Standard_D96as_v5,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:46:41.659410 +AZURE,japanwest,Standard_D96as_v5,reserved_3y,NA,2.042884,USD,Azure Retail Prices API,2025-12-18T04:46:41.659412 +AZURE,japanwest,Standard_D96as_v5,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:46:40.760041 +AZURE,japanwest,Standard_D96ds_v5,on_demand,NA,7.008,USD,Azure Retail Prices API,2025-12-18T04:46:40.760496 +AZURE,japanwest,Standard_D96ds_v5,reserved_1y,NA,4.134703,USD,Azure Retail Prices API,2025-12-18T04:46:41.659566 +AZURE,japanwest,Standard_D96ds_v5,reserved_3y,NA,2.663052,USD,Azure Retail Prices API,2025-12-18T04:46:41.659568 +AZURE,japanwest,Standard_D96ds_v5,spot,NA,1.295078,USD,Azure Retail Prices API,2025-12-18T04:46:40.759851 +AZURE,japanwest,Standard_D96ds_v6,on_demand,NA,7.724,USD,Azure Retail Prices API,2025-12-18T04:46:40.760660 +AZURE,japanwest,Standard_D96ds_v6,reserved_1y,NA,4.788927,USD,Azure Retail Prices API,2025-12-18T04:46:41.659744 +AZURE,japanwest,Standard_D96ds_v6,reserved_3y,NA,3.012405,USD,Azure Retail Prices API,2025-12-18T04:46:41.659747 +AZURE,japanwest,Standard_D96ds_v6,spot,NA,1.427395,USD,Azure Retail Prices API,2025-12-18T04:46:40.760805 +AZURE,japanwest,Standard_D96pds_v6,on_demand,NA,5.683,USD,Azure Retail Prices API,2025-12-18T04:46:40.760505 +AZURE,japanwest,Standard_D96pds_v6,reserved_1y,NA,3.353082,USD,Azure Retail Prices API,2025-12-18T04:46:41.659583 +AZURE,japanwest,Standard_D96pds_v6,reserved_3y,NA,2.159627,USD,Azure Retail Prices API,2025-12-18T04:46:41.659586 +AZURE,japanwest,Standard_D96pds_v6,spot,NA,1.050218,USD,Azure Retail Prices API,2025-12-18T04:46:40.760906 +AZURE,japanwest,Standard_D96ps_v6,on_demand,NA,4.339,USD,Azure Retail Prices API,2025-12-18T04:46:40.759817 +AZURE,japanwest,Standard_D96ps_v6,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:46:41.658919 +AZURE,japanwest,Standard_D96ps_v6,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:46:41.658922 +AZURE,japanwest,Standard_D96ps_v6,spot,NA,0.801847,USD,Azure Retail Prices API,2025-12-18T04:46:40.760857 +AZURE,japanwest,Standard_D96s_v5,on_demand,NA,5.952,USD,Azure Retail Prices API,2025-12-18T04:46:40.759839 +AZURE,japanwest,Standard_D96s_v5,reserved_1y,NA,3.511644,USD,Azure Retail Prices API,2025-12-18T04:46:41.658931 +AZURE,japanwest,Standard_D96s_v5,reserved_3y,NA,2.202245,USD,Azure Retail Prices API,2025-12-18T04:46:41.658934 +AZURE,japanwest,Standard_D96s_v5,spot,NA,1.09993,USD,Azure Retail Prices API,2025-12-18T04:46:40.759983 +AZURE,japanwest,Standard_DC16ads_v6,on_demand,NA,1.189,USD,Azure Retail Prices API,2025-12-18T04:46:40.759590 +AZURE,japanwest,Standard_DC16ads_v6,reserved_1y,NA,0.70137,USD,Azure Retail Prices API,2025-12-18T04:46:41.658736 +AZURE,japanwest,Standard_DC16ads_v6,reserved_3y,NA,0.45175,USD,Azure Retail Prices API,2025-12-18T04:46:41.658739 +AZURE,japanwest,Standard_DC16ads_v6,spot,NA,0.219727,USD,Azure Retail Prices API,2025-12-18T04:46:40.760595 +AZURE,japanwest,Standard_DC2ads_v6,on_demand,NA,0.149,USD,Azure Retail Prices API,2025-12-18T04:46:40.760183 +AZURE,japanwest,Standard_DC2ads_v6,reserved_1y,NA,0.087671,USD,Azure Retail Prices API,2025-12-18T04:46:41.659228 +AZURE,japanwest,Standard_DC2ads_v6,reserved_3y,NA,0.056469,USD,Azure Retail Prices API,2025-12-18T04:46:41.659231 +AZURE,japanwest,Standard_DC2ads_v6,spot,NA,0.027535,USD,Azure Retail Prices API,2025-12-18T04:46:40.759957 +AZURE,japanwest,Standard_DC32ads_v6,on_demand,NA,2.378,USD,Azure Retail Prices API,2025-12-18T04:46:40.760559 +AZURE,japanwest,Standard_DC32ads_v6,reserved_1y,NA,1.40274,USD,Azure Retail Prices API,2025-12-18T04:46:41.659645 +AZURE,japanwest,Standard_DC32ads_v6,reserved_3y,NA,0.903501,USD,Azure Retail Prices API,2025-12-18T04:46:41.659648 +AZURE,japanwest,Standard_DC32ads_v6,spot,NA,0.439454,USD,Azure Retail Prices API,2025-12-18T04:46:40.760206 +AZURE,japanwest,Standard_DC48ads_v6,on_demand,NA,3.566,USD,Azure Retail Prices API,2025-12-18T04:46:40.759842 +AZURE,japanwest,Standard_DC48ads_v6,reserved_1y,NA,2.104224,USD,Azure Retail Prices API,2025-12-18T04:46:41.658937 +AZURE,japanwest,Standard_DC48ads_v6,reserved_3y,NA,1.355213,USD,Azure Retail Prices API,2025-12-18T04:46:41.658939 +AZURE,japanwest,Standard_DC48ads_v6,spot,NA,0.658997,USD,Azure Retail Prices API,2025-12-18T04:46:40.761026 +AZURE,japanwest,Standard_DC4ads_v6,on_demand,NA,0.297,USD,Azure Retail Prices API,2025-12-18T04:46:40.760342 +AZURE,japanwest,Standard_DC4ads_v6,reserved_1y,NA,0.175342,USD,Azure Retail Prices API,2025-12-18T04:46:41.659404 +AZURE,japanwest,Standard_DC4ads_v6,reserved_3y,NA,0.112938,USD,Azure Retail Prices API,2025-12-18T04:46:41.659407 +AZURE,japanwest,Standard_DC4ads_v6,spot,NA,0.054886,USD,Azure Retail Prices API,2025-12-18T04:46:40.760339 +AZURE,japanwest,Standard_DC64ads_v6,on_demand,NA,4.755,USD,Azure Retail Prices API,2025-12-18T04:46:40.760168 +AZURE,japanwest,Standard_DC64ads_v6,reserved_1y,NA,2.805594,USD,Azure Retail Prices API,2025-12-18T04:46:41.659223 +AZURE,japanwest,Standard_DC64ads_v6,reserved_3y,NA,1.806963,USD,Azure Retail Prices API,2025-12-18T04:46:41.659226 +AZURE,japanwest,Standard_DC64ads_v6,spot,NA,0.878724,USD,Azure Retail Prices API,2025-12-18T04:46:40.759555 +AZURE,japanwest,Standard_DC8ads_v6,on_demand,NA,0.594,USD,Azure Retail Prices API,2025-12-18T04:46:40.760819 +AZURE,japanwest,Standard_DC8ads_v6,reserved_1y,NA,0.350685,USD,Azure Retail Prices API,2025-12-18T04:46:41.659911 +AZURE,japanwest,Standard_DC8ads_v6,reserved_3y,NA,0.225875,USD,Azure Retail Prices API,2025-12-18T04:46:41.659914 +AZURE,japanwest,Standard_DC8ads_v6,spot,NA,0.109771,USD,Azure Retail Prices API,2025-12-18T04:46:40.760822 +AZURE,japanwest,Standard_DC96ads_v6,on_demand,NA,7.133,USD,Azure Retail Prices API,2025-12-18T04:46:40.760426 +AZURE,japanwest,Standard_DC96ads_v6,reserved_1y,NA,4.208333,USD,Azure Retail Prices API,2025-12-18T04:46:41.659485 +AZURE,japanwest,Standard_DC96ads_v6,reserved_3y,NA,2.710464,USD,Azure Retail Prices API,2025-12-18T04:46:41.659487 +AZURE,japanwest,Standard_DC96ads_v6,spot,NA,1.318178,USD,Azure Retail Prices API,2025-12-18T04:46:40.760841 +AZURE,japanwest,Standard_DS12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495613 +AZURE,japanwest,Standard_DS12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495622 +AZURE,japanwest,Standard_DS12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495626 +AZURE,japanwest,Standard_DS12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495618 +AZURE,japanwest,Standard_DS13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496513 +AZURE,japanwest,Standard_DS13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496521 +AZURE,japanwest,Standard_DS13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496525 +AZURE,japanwest,Standard_DS13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496517 +AZURE,japanwest,Standard_DS14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497356 +AZURE,japanwest,Standard_DS14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497368 +AZURE,japanwest,Standard_DS14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497375 +AZURE,japanwest,Standard_DS14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497362 +AZURE,japanwest,Standard_DS15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498140 +AZURE,japanwest,Standard_DS15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498149 +AZURE,japanwest,Standard_DS15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498153 +AZURE,japanwest,Standard_DS15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498145 +AZURE,japanwest,Standard_DS1_v2,on_demand,NA,0.07665,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491972 +AZURE,japanwest,Standard_DS1_v2,reserved_1y,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491980 +AZURE,japanwest,Standard_DS1_v2,reserved_3y,NA,0.03066,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491985 +AZURE,japanwest,Standard_DS1_v2,spot,NA,0.022995,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491976 +AZURE,japanwest,Standard_DS2_v2,on_demand,NA,0.1533,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492695 +AZURE,japanwest,Standard_DS2_v2,reserved_1y,NA,0.09198,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492703 +AZURE,japanwest,Standard_DS2_v2,reserved_3y,NA,0.06132,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492707 +AZURE,japanwest,Standard_DS2_v2,spot,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492699 +AZURE,japanwest,Standard_DS3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493430 +AZURE,japanwest,Standard_DS3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493438 +AZURE,japanwest,Standard_DS3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493442 +AZURE,japanwest,Standard_DS3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493434 +AZURE,japanwest,Standard_DS4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494133 +AZURE,japanwest,Standard_DS4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494150 +AZURE,japanwest,Standard_DS4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494154 +AZURE,japanwest,Standard_DS4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494142 +AZURE,japanwest,Standard_DS5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494852 +AZURE,japanwest,Standard_DS5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494860 +AZURE,japanwest,Standard_DS5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494864 +AZURE,japanwest,Standard_DS5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494856 +AZURE,japanwest,Standard_E128ds_v6,on_demand,NA,12.625,USD,Azure Retail Prices API,2025-12-18T04:46:40.760986 +AZURE,japanwest,Standard_E128ds_v6,reserved_1y,NA,7.827283,USD,Azure Retail Prices API,2025-12-18T04:46:41.660039 +AZURE,japanwest,Standard_E128ds_v6,reserved_3y,NA,4.923592,USD,Azure Retail Prices API,2025-12-18T04:46:41.660042 +AZURE,japanwest,Standard_E128ds_v6,spot,NA,2.3331,USD,Azure Retail Prices API,2025-12-18T04:46:40.760827 +AZURE,japanwest,Standard_E16_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:46:40.759871 +AZURE,japanwest,Standard_E16_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:41.658948 +AZURE,japanwest,Standard_E16_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:41.658951 +AZURE,japanwest,Standard_E16_v3,spot,NA,0.243968,USD,Azure Retail Prices API,2025-12-18T04:46:40.760177 +AZURE,japanwest,Standard_E16a_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:40.759928 +AZURE,japanwest,Standard_E16a_v4,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:41.658998 +AZURE,japanwest,Standard_E16a_v4,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:46:41.659000 +AZURE,japanwest,Standard_E16a_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:40.761097 +AZURE,japanwest,Standard_E16ads_v5,on_demand,NA,2.008,USD,Azure Retail Prices API,2025-12-18T04:46:40.759671 +AZURE,japanwest,Standard_E16ads_v5,reserved_1y,NA,0.750457,USD,Azure Retail Prices API,2025-12-18T04:46:41.659967 +AZURE,japanwest,Standard_E16ads_v5,reserved_3y,NA,0.483371,USD,Azure Retail Prices API,2025-12-18T04:46:41.659970 +AZURE,japanwest,Standard_E16ads_v5,spot,NA,0.235066,USD,Azure Retail Prices API,2025-12-18T04:46:40.759902 +AZURE,japanwest,Standard_E16ads_v6,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:46:40.760445 +AZURE,japanwest,Standard_E16ads_v6,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:46:41.659526 +AZURE,japanwest,Standard_E16ads_v6,reserved_3y,NA,0.574543,USD,Azure Retail Prices API,2025-12-18T04:46:41.659529 +AZURE,japanwest,Standard_E16ads_v6,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:46:40.760015 +AZURE,japanwest,Standard_E16as_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:40.760000 +AZURE,japanwest,Standard_E16as_v4,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:41.659036 +AZURE,japanwest,Standard_E16as_v4,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:46:41.659038 +AZURE,japanwest,Standard_E16as_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:40.760310 +AZURE,japanwest,Standard_E16as_v5,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:46:40.759829 +AZURE,japanwest,Standard_E16as_v5,reserved_1y,NA,0.646689,USD,Azure Retail Prices API,2025-12-18T04:46:41.658925 +AZURE,japanwest,Standard_E16as_v5,reserved_3y,NA,0.416476,USD,Azure Retail Prices API,2025-12-18T04:46:41.658928 +AZURE,japanwest,Standard_E16as_v5,spot,NA,0.202541,USD,Azure Retail Prices API,2025-12-18T04:46:40.759916 +AZURE,japanwest,Standard_E16d_v4,on_demand,NA,1.529,USD,Azure Retail Prices API,2025-12-18T04:46:40.760583 +AZURE,japanwest,Standard_E16d_v4,reserved_1y,NA,0.901941,USD,Azure Retail Prices API,2025-12-18T04:46:41.659662 +AZURE,japanwest,Standard_E16d_v4,reserved_3y,NA,0.580898,USD,Azure Retail Prices API,2025-12-18T04:46:41.659664 +AZURE,japanwest,Standard_E16d_v4,spot,NA,0.282559,USD,Azure Retail Prices API,2025-12-18T04:46:40.761139 +AZURE,japanwest,Standard_E16ds_v4,on_demand,NA,1.529,USD,Azure Retail Prices API,2025-12-18T04:46:40.759663 +AZURE,japanwest,Standard_E16ds_v4,reserved_1y,NA,0.901941,USD,Azure Retail Prices API,2025-12-18T04:46:41.658797 +AZURE,japanwest,Standard_E16ds_v4,reserved_3y,NA,0.580898,USD,Azure Retail Prices API,2025-12-18T04:46:41.658800 +AZURE,japanwest,Standard_E16ds_v4,spot,NA,0.282559,USD,Azure Retail Prices API,2025-12-18T04:46:40.760574 +AZURE,japanwest,Standard_E16ds_v5,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:40.761127 +AZURE,japanwest,Standard_E16ds_v5,reserved_1y,NA,0.821233,USD,Azure Retail Prices API,2025-12-18T04:46:41.660151 +AZURE,japanwest,Standard_E16ds_v5,reserved_3y,NA,0.528957,USD,Azure Retail Prices API,2025-12-18T04:46:41.660155 +AZURE,japanwest,Standard_E16ds_v5,spot,NA,0.257242,USD,Azure Retail Prices API,2025-12-18T04:46:40.759775 +AZURE,japanwest,Standard_E16ds_v6,on_demand,NA,1.578,USD,Azure Retail Prices API,2025-12-18T04:46:40.760037 +AZURE,japanwest,Standard_E16ds_v6,reserved_1y,NA,0.978425,USD,Azure Retail Prices API,2025-12-18T04:46:41.659058 +AZURE,japanwest,Standard_E16ds_v6,reserved_3y,NA,0.615449,USD,Azure Retail Prices API,2025-12-18T04:46:41.659084 +AZURE,japanwest,Standard_E16ds_v6,spot,NA,0.291614,USD,Azure Retail Prices API,2025-12-18T04:46:40.759835 +AZURE,japanwest,Standard_E16pds_v6,on_demand,NA,1.205,USD,Azure Retail Prices API,2025-12-18T04:46:40.759646 +AZURE,japanwest,Standard_E16pds_v6,reserved_1y,NA,0.710845,USD,Azure Retail Prices API,2025-12-18T04:46:41.658792 +AZURE,japanwest,Standard_E16pds_v6,reserved_3y,NA,0.457839,USD,Azure Retail Prices API,2025-12-18T04:46:41.658795 +AZURE,japanwest,Standard_E16pds_v6,spot,NA,0.222684,USD,Azure Retail Prices API,2025-12-18T04:46:40.760085 +AZURE,japanwest,Standard_E16ps_v6,on_demand,NA,0.95,USD,Azure Retail Prices API,2025-12-18T04:46:40.759810 +AZURE,japanwest,Standard_E16ps_v6,reserved_1y,NA,0.560731,USD,Azure Retail Prices API,2025-12-18T04:46:41.658914 +AZURE,japanwest,Standard_E16ps_v6,reserved_3y,NA,0.361149,USD,Azure Retail Prices API,2025-12-18T04:46:41.658917 +AZURE,japanwest,Standard_E16ps_v6,spot,NA,0.17556,USD,Azure Retail Prices API,2025-12-18T04:46:40.760562 +AZURE,japanwest,Standard_E16s_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:46:40.760704 +AZURE,japanwest,Standard_E16s_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:41.659777 +AZURE,japanwest,Standard_E16s_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:41.659780 +AZURE,japanwest,Standard_E16s_v3,spot,NA,0.243968,USD,Azure Retail Prices API,2025-12-18T04:46:40.760839 +AZURE,japanwest,Standard_E16s_v4,on_demand,NA,1.338,USD,Azure Retail Prices API,2025-12-18T04:46:40.759800 +AZURE,japanwest,Standard_E16s_v4,reserved_1y,NA,0.789155,USD,Azure Retail Prices API,2025-12-18T04:46:41.658902 +AZURE,japanwest,Standard_E16s_v4,reserved_3y,NA,0.508295,USD,Azure Retail Prices API,2025-12-18T04:46:41.658905 +AZURE,japanwest,Standard_E16s_v4,spot,NA,0.247262,USD,Azure Retail Prices API,2025-12-18T04:46:40.760347 +AZURE,japanwest,Standard_E16s_v5,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:40.760364 +AZURE,japanwest,Standard_E16s_v5,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:41.659421 +AZURE,japanwest,Standard_E16s_v5,reserved_3y,NA,0.449924,USD,Azure Retail Prices API,2025-12-18T04:46:41.659423 +AZURE,japanwest,Standard_E16s_v5,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:40.760655 +AZURE,japanwest,Standard_E20a_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:40.759797 +AZURE,japanwest,Standard_E20a_v4,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:41.658896 +AZURE,japanwest,Standard_E20a_v4,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:46:41.658899 +AZURE,japanwest,Standard_E20a_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:40.760327 +AZURE,japanwest,Standard_E20ads_v5,on_demand,NA,1.59,USD,Azure Retail Prices API,2025-12-18T04:46:40.760475 +AZURE,japanwest,Standard_E20ads_v5,reserved_1y,NA,0.938128,USD,Azure Retail Prices API,2025-12-18T04:46:41.659543 +AZURE,japanwest,Standard_E20ads_v5,reserved_3y,NA,0.604186,USD,Azure Retail Prices API,2025-12-18T04:46:41.659546 +AZURE,japanwest,Standard_E20ads_v5,spot,NA,0.293832,USD,Azure Retail Prices API,2025-12-18T04:46:40.760712 +AZURE,japanwest,Standard_E20ads_v6,on_demand,NA,1.89,USD,Azure Retail Prices API,2025-12-18T04:46:40.761142 +AZURE,japanwest,Standard_E20ads_v6,reserved_1y,NA,1.115068,USD,Azure Retail Prices API,2025-12-18T04:46:41.660164 +AZURE,japanwest,Standard_E20ads_v6,reserved_3y,NA,0.718189,USD,Azure Retail Prices API,2025-12-18T04:46:41.660167 +AZURE,japanwest,Standard_E20ads_v6,spot,NA,0.349272,USD,Azure Retail Prices API,2025-12-18T04:46:40.759788 +AZURE,japanwest,Standard_E20as_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:40.760701 +AZURE,japanwest,Standard_E20as_v4,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:41.659772 +AZURE,japanwest,Standard_E20as_v4,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:46:41.659774 +AZURE,japanwest,Standard_E20as_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:40.761074 +AZURE,japanwest,Standard_E20as_v5,on_demand,NA,2.29,USD,Azure Retail Prices API,2025-12-18T04:46:40.760370 +AZURE,japanwest,Standard_E20as_v5,reserved_1y,NA,0.808333,USD,Azure Retail Prices API,2025-12-18T04:46:41.659766 +AZURE,japanwest,Standard_E20as_v5,reserved_3y,NA,0.520586,USD,Azure Retail Prices API,2025-12-18T04:46:41.659769 +AZURE,japanwest,Standard_E20as_v5,spot,NA,0.253176,USD,Azure Retail Prices API,2025-12-18T04:46:40.760490 +AZURE,japanwest,Standard_E20d_v4,on_demand,NA,1.911,USD,Azure Retail Prices API,2025-12-18T04:46:40.759545 +AZURE,japanwest,Standard_E20d_v4,reserved_1y,NA,1.127397,USD,Azure Retail Prices API,2025-12-18T04:46:41.658695 +AZURE,japanwest,Standard_E20d_v4,reserved_3y,NA,0.726142,USD,Azure Retail Prices API,2025-12-18T04:46:41.658697 +AZURE,japanwest,Standard_E20d_v4,spot,NA,0.353153,USD,Azure Retail Prices API,2025-12-18T04:46:40.760947 +AZURE,japanwest,Standard_E20ds_v4,on_demand,NA,1.911,USD,Azure Retail Prices API,2025-12-18T04:46:40.760258 +AZURE,japanwest,Standard_E20ds_v4,reserved_1y,NA,1.127397,USD,Azure Retail Prices API,2025-12-18T04:46:41.659331 +AZURE,japanwest,Standard_E20ds_v4,reserved_3y,NA,0.726142,USD,Azure Retail Prices API,2025-12-18T04:46:41.659335 +AZURE,japanwest,Standard_E20ds_v4,spot,NA,0.353153,USD,Azure Retail Prices API,2025-12-18T04:46:40.759940 +AZURE,japanwest,Standard_E20ds_v5,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:40.760388 +AZURE,japanwest,Standard_E20ds_v5,reserved_1y,NA,1.026598,USD,Azure Retail Prices API,2025-12-18T04:46:41.659448 +AZURE,japanwest,Standard_E20ds_v5,reserved_3y,NA,0.661187,USD,Azure Retail Prices API,2025-12-18T04:46:41.659451 +AZURE,japanwest,Standard_E20ds_v5,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:46:40.760698 +AZURE,japanwest,Standard_E20ds_v6,on_demand,NA,1.973,USD,Azure Retail Prices API,2025-12-18T04:46:40.760200 +AZURE,japanwest,Standard_E20ds_v6,reserved_1y,NA,1.223059,USD,Azure Retail Prices API,2025-12-18T04:46:41.659263 +AZURE,japanwest,Standard_E20ds_v6,reserved_3y,NA,0.76933,USD,Azure Retail Prices API,2025-12-18T04:46:41.659265 +AZURE,japanwest,Standard_E20ds_v6,spot,NA,0.36461,USD,Azure Retail Prices API,2025-12-18T04:46:40.759579 +AZURE,japanwest,Standard_E20s_v4,on_demand,NA,1.672,USD,Azure Retail Prices API,2025-12-18T04:46:40.760715 +AZURE,japanwest,Standard_E20s_v4,reserved_1y,NA,0.98653,USD,Azure Retail Prices API,2025-12-18T04:46:41.659794 +AZURE,japanwest,Standard_E20s_v4,reserved_3y,NA,0.63535,USD,Azure Retail Prices API,2025-12-18T04:46:41.659797 +AZURE,japanwest,Standard_E20s_v4,spot,NA,0.308986,USD,Azure Retail Prices API,2025-12-18T04:46:40.760982 +AZURE,japanwest,Standard_E20s_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:40.760279 +AZURE,japanwest,Standard_E20s_v5,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:41.659354 +AZURE,japanwest,Standard_E20s_v5,reserved_3y,NA,0.562405,USD,Azure Retail Prices API,2025-12-18T04:46:41.659357 +AZURE,japanwest,Standard_E20s_v5,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:40.760884 +AZURE,japanwest,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:46:40.759947 +AZURE,japanwest,Standard_E2_v3,reserved_1y,NA,0.094064,USD,Azure Retail Prices API,2025-12-18T04:46:41.659014 +AZURE,japanwest,Standard_E2_v3,reserved_3y,NA,0.06016,USD,Azure Retail Prices API,2025-12-18T04:46:41.659017 +AZURE,japanwest,Standard_E2_v3,spot,NA,0.030496,USD,Azure Retail Prices API,2025-12-18T04:46:40.760663 +AZURE,japanwest,Standard_E2ads_v6,on_demand,NA,0.189,USD,Azure Retail Prices API,2025-12-18T04:46:40.761092 +AZURE,japanwest,Standard_E2ads_v6,reserved_1y,NA,0.11153,USD,Azure Retail Prices API,2025-12-18T04:46:41.660128 +AZURE,japanwest,Standard_E2ads_v6,reserved_3y,NA,0.071804,USD,Azure Retail Prices API,2025-12-18T04:46:41.660131 +AZURE,japanwest,Standard_E2ads_v6,spot,NA,0.034927,USD,Azure Retail Prices API,2025-12-18T04:46:40.760603 +AZURE,japanwest,Standard_E2ds_v5,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:40.759762 +AZURE,japanwest,Standard_E2ds_v5,reserved_1y,NA,0.102626,USD,Azure Retail Prices API,2025-12-18T04:46:41.658874 +AZURE,japanwest,Standard_E2ds_v5,reserved_3y,NA,0.066134,USD,Azure Retail Prices API,2025-12-18T04:46:41.658876 +AZURE,japanwest,Standard_E2ds_v5,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:46:40.760224 +AZURE,japanwest,Standard_E2ds_v6,on_demand,NA,0.197,USD,Azure Retail Prices API,2025-12-18T04:46:40.760250 +AZURE,japanwest,Standard_E2ds_v6,reserved_1y,NA,0.12226,USD,Azure Retail Prices API,2025-12-18T04:46:41.659314 +AZURE,japanwest,Standard_E2ds_v6,reserved_3y,NA,0.076941,USD,Azure Retail Prices API,2025-12-18T04:46:41.659317 +AZURE,japanwest,Standard_E2ds_v6,spot,NA,0.036406,USD,Azure Retail Prices API,2025-12-18T04:46:40.760738 +AZURE,japanwest,Standard_E2pds_v6,on_demand,NA,0.151,USD,Azure Retail Prices API,2025-12-18T04:46:40.760215 +AZURE,japanwest,Standard_E2pds_v6,reserved_1y,NA,0.088813,USD,Azure Retail Prices API,2025-12-18T04:46:41.659273 +AZURE,japanwest,Standard_E2pds_v6,reserved_3y,NA,0.05723,USD,Azure Retail Prices API,2025-12-18T04:46:41.659276 +AZURE,japanwest,Standard_E2pds_v6,spot,NA,0.027905,USD,Azure Retail Prices API,2025-12-18T04:46:40.759820 +AZURE,japanwest,Standard_E32_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:46:40.760100 +AZURE,japanwest,Standard_E32_v3,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:46:41.659129 +AZURE,japanwest,Standard_E32_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:41.659131 +AZURE,japanwest,Standard_E32_v3,spot,NA,0.487936,USD,Azure Retail Prices API,2025-12-18T04:46:40.760920 +AZURE,japanwest,Standard_E32a_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:40.760732 +AZURE,japanwest,Standard_E32a_v4,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:41.659817 +AZURE,japanwest,Standard_E32a_v4,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:46:41.659820 +AZURE,japanwest,Standard_E32a_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:40.759781 +AZURE,japanwest,Standard_E32ads_v5,on_demand,NA,4.016,USD,Azure Retail Prices API,2025-12-18T04:46:40.760003 +AZURE,japanwest,Standard_E32ads_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:41.659162 +AZURE,japanwest,Standard_E32ads_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:41.659166 +AZURE,japanwest,Standard_E32ads_v5,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:40.760209 +AZURE,japanwest,Standard_E32ads_v6,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:46:40.759899 +AZURE,japanwest,Standard_E32ads_v6,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:46:41.658982 +AZURE,japanwest,Standard_E32ads_v6,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:46:41.658984 +AZURE,japanwest,Standard_E32ads_v6,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:46:40.760874 +AZURE,japanwest,Standard_E32as_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:40.760159 +AZURE,japanwest,Standard_E32as_v4,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:41.659211 +AZURE,japanwest,Standard_E32as_v4,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:46:41.659214 +AZURE,japanwest,Standard_E32as_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:40.759910 +AZURE,japanwest,Standard_E32as_v5,on_demand,NA,2.192,USD,Azure Retail Prices API,2025-12-18T04:46:40.759631 +AZURE,japanwest,Standard_E32as_v5,reserved_1y,NA,1.293265,USD,Azure Retail Prices API,2025-12-18T04:46:41.658770 +AZURE,japanwest,Standard_E32as_v5,reserved_3y,NA,0.832953,USD,Azure Retail Prices API,2025-12-18T04:46:41.658773 +AZURE,japanwest,Standard_E32as_v5,spot,NA,0.405082,USD,Azure Retail Prices API,2025-12-18T04:46:40.760824 +AZURE,japanwest,Standard_E32d_v4,on_demand,NA,3.057,USD,Azure Retail Prices API,2025-12-18T04:46:40.759518 +AZURE,japanwest,Standard_E32d_v4,reserved_1y,NA,1.803881,USD,Azure Retail Prices API,2025-12-18T04:46:41.658671 +AZURE,japanwest,Standard_E32d_v4,reserved_3y,NA,1.161796,USD,Azure Retail Prices API,2025-12-18T04:46:41.658674 +AZURE,japanwest,Standard_E32d_v4,spot,NA,0.564934,USD,Azure Retail Prices API,2025-12-18T04:46:40.760904 +AZURE,japanwest,Standard_E32ds_v4,on_demand,NA,3.057,USD,Azure Retail Prices API,2025-12-18T04:46:40.760255 +AZURE,japanwest,Standard_E32ds_v4,reserved_1y,NA,1.803881,USD,Azure Retail Prices API,2025-12-18T04:46:41.659326 +AZURE,japanwest,Standard_E32ds_v4,reserved_3y,NA,1.161796,USD,Azure Retail Prices API,2025-12-18T04:46:41.659329 +AZURE,japanwest,Standard_E32ds_v4,spot,NA,0.564934,USD,Azure Retail Prices API,2025-12-18T04:46:40.759807 +AZURE,japanwest,Standard_E32ds_v5,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:40.760478 +AZURE,japanwest,Standard_E32ds_v5,reserved_1y,NA,1.64258,USD,Azure Retail Prices API,2025-12-18T04:46:41.659549 +AZURE,japanwest,Standard_E32ds_v5,reserved_3y,NA,1.057915,USD,Azure Retail Prices API,2025-12-18T04:46:41.659552 +AZURE,japanwest,Standard_E32ds_v5,spot,NA,0.514483,USD,Azure Retail Prices API,2025-12-18T04:46:40.759826 +AZURE,japanwest,Standard_E32ds_v6,on_demand,NA,3.156,USD,Azure Retail Prices API,2025-12-18T04:46:40.760849 +AZURE,japanwest,Standard_E32ds_v6,reserved_1y,NA,1.956849,USD,Azure Retail Prices API,2025-12-18T04:46:41.659940 +AZURE,japanwest,Standard_E32ds_v6,reserved_3y,NA,1.230898,USD,Azure Retail Prices API,2025-12-18T04:46:41.659942 +AZURE,japanwest,Standard_E32ds_v6,spot,NA,0.583229,USD,Azure Retail Prices API,2025-12-18T04:46:40.760768 +AZURE,japanwest,Standard_E32pds_v6,on_demand,NA,2.41,USD,Azure Retail Prices API,2025-12-18T04:46:40.760230 +AZURE,japanwest,Standard_E32pds_v6,reserved_1y,NA,1.421689,USD,Azure Retail Prices API,2025-12-18T04:46:41.659285 +AZURE,japanwest,Standard_E32pds_v6,reserved_3y,NA,0.915639,USD,Azure Retail Prices API,2025-12-18T04:46:41.659288 +AZURE,japanwest,Standard_E32pds_v6,spot,NA,0.445368,USD,Azure Retail Prices API,2025-12-18T04:46:40.760632 +AZURE,japanwest,Standard_E32ps_v6,on_demand,NA,1.901,USD,Azure Retail Prices API,2025-12-18T04:46:40.760836 +AZURE,japanwest,Standard_E32ps_v6,reserved_1y,NA,1.121461,USD,Azure Retail Prices API,2025-12-18T04:46:41.659923 +AZURE,japanwest,Standard_E32ps_v6,reserved_3y,NA,0.722298,USD,Azure Retail Prices API,2025-12-18T04:46:41.659926 +AZURE,japanwest,Standard_E32ps_v6,spot,NA,0.351305,USD,Azure Retail Prices API,2025-12-18T04:46:40.759868 +AZURE,japanwest,Standard_E32s_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:46:40.761002 +AZURE,japanwest,Standard_E32s_v3,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:46:41.660044 +AZURE,japanwest,Standard_E32s_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:41.660047 +AZURE,japanwest,Standard_E32s_v3,spot,NA,0.487936,USD,Azure Retail Prices API,2025-12-18T04:46:40.759657 +AZURE,japanwest,Standard_E32s_v4,on_demand,NA,2.675,USD,Azure Retail Prices API,2025-12-18T04:46:40.759973 +AZURE,japanwest,Standard_E32s_v4,reserved_1y,NA,1.578425,USD,Azure Retail Prices API,2025-12-18T04:46:41.659030 +AZURE,japanwest,Standard_E32s_v4,reserved_3y,NA,1.016591,USD,Azure Retail Prices API,2025-12-18T04:46:41.659033 +AZURE,japanwest,Standard_E32s_v4,spot,NA,0.49434,USD,Azure Retail Prices API,2025-12-18T04:46:40.761040 +AZURE,japanwest,Standard_E32s_v5,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:40.759643 +AZURE,japanwest,Standard_E32s_v5,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:41.658786 +AZURE,japanwest,Standard_E32s_v5,reserved_3y,NA,0.899848,USD,Azure Retail Prices API,2025-12-18T04:46:41.658789 +AZURE,japanwest,Standard_E32s_v5,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:40.760391 +AZURE,japanwest,Standard_E48a_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:40.761011 +AZURE,japanwest,Standard_E48a_v4,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:41.660056 +AZURE,japanwest,Standard_E48a_v4,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:46:41.660059 +AZURE,japanwest,Standard_E48a_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:40.760759 +AZURE,japanwest,Standard_E48ads_v5,on_demand,NA,6.024,USD,Azure Retail Prices API,2025-12-18T04:46:40.759960 +AZURE,japanwest,Standard_E48ads_v5,reserved_1y,NA,2.251484,USD,Azure Retail Prices API,2025-12-18T04:46:41.659257 +AZURE,japanwest,Standard_E48ads_v5,reserved_3y,NA,1.450076,USD,Azure Retail Prices API,2025-12-18T04:46:41.659260 +AZURE,japanwest,Standard_E48ads_v5,spot,NA,0.705197,USD,Azure Retail Prices API,2025-12-18T04:46:40.760782 +AZURE,japanwest,Standard_E48ads_v6,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:46:40.759677 +AZURE,japanwest,Standard_E48ads_v6,reserved_1y,NA,2.676256,USD,Azure Retail Prices API,2025-12-18T04:46:41.658809 +AZURE,japanwest,Standard_E48ads_v6,reserved_3y,NA,1.723668,USD,Azure Retail Prices API,2025-12-18T04:46:41.658812 +AZURE,japanwest,Standard_E48ads_v6,spot,NA,0.838253,USD,Azure Retail Prices API,2025-12-18T04:46:40.760174 +AZURE,japanwest,Standard_E48as_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:40.760833 +AZURE,japanwest,Standard_E48as_v4,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:41.659917 +AZURE,japanwest,Standard_E48as_v4,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:46:41.659920 +AZURE,japanwest,Standard_E48as_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:40.760923 +AZURE,japanwest,Standard_E48as_v5,on_demand,NA,5.496,USD,Azure Retail Prices API,2025-12-18T04:46:40.760032 +AZURE,japanwest,Standard_E48as_v5,reserved_1y,NA,1.939954,USD,Azure Retail Prices API,2025-12-18T04:46:41.659123 +AZURE,japanwest,Standard_E48as_v5,reserved_3y,NA,1.249429,USD,Azure Retail Prices API,2025-12-18T04:46:41.659126 +AZURE,japanwest,Standard_E48as_v5,spot,NA,0.607622,USD,Azure Retail Prices API,2025-12-18T04:46:40.760977 +AZURE,japanwest,Standard_E48d_v4,on_demand,NA,4.586,USD,Azure Retail Prices API,2025-12-18T04:46:40.760261 +AZURE,japanwest,Standard_E48d_v4,reserved_1y,NA,2.705822,USD,Azure Retail Prices API,2025-12-18T04:46:41.659337 +AZURE,japanwest,Standard_E48d_v4,reserved_3y,NA,1.742732,USD,Azure Retail Prices API,2025-12-18T04:46:41.659340 +AZURE,japanwest,Standard_E48d_v4,spot,NA,0.847493,USD,Azure Retail Prices API,2025-12-18T04:46:40.759919 +AZURE,japanwest,Standard_E48ds_v4,on_demand,NA,4.586,USD,Azure Retail Prices API,2025-12-18T04:46:40.760113 +AZURE,japanwest,Standard_E48ds_v4,reserved_1y,NA,2.705822,USD,Azure Retail Prices API,2025-12-18T04:46:41.659140 +AZURE,japanwest,Standard_E48ds_v4,reserved_3y,NA,1.742732,USD,Azure Retail Prices API,2025-12-18T04:46:41.659143 +AZURE,japanwest,Standard_E48ds_v4,spot,NA,0.847493,USD,Azure Retail Prices API,2025-12-18T04:46:40.760556 +AZURE,japanwest,Standard_E48ds_v5,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:40.760423 +AZURE,japanwest,Standard_E48ds_v5,reserved_1y,NA,2.463813,USD,Azure Retail Prices API,2025-12-18T04:46:41.659479 +AZURE,japanwest,Standard_E48ds_v5,reserved_3y,NA,1.586872,USD,Azure Retail Prices API,2025-12-18T04:46:41.659482 +AZURE,japanwest,Standard_E48ds_v5,spot,NA,0.771725,USD,Azure Retail Prices API,2025-12-18T04:46:40.760550 +AZURE,japanwest,Standard_E48ds_v6,on_demand,NA,4.734,USD,Azure Retail Prices API,2025-12-18T04:46:40.760773 +AZURE,japanwest,Standard_E48ds_v6,reserved_1y,NA,2.935274,USD,Azure Retail Prices API,2025-12-18T04:46:41.659856 +AZURE,japanwest,Standard_E48ds_v6,reserved_3y,NA,1.846347,USD,Azure Retail Prices API,2025-12-18T04:46:41.659859 +AZURE,japanwest,Standard_E48ds_v6,spot,NA,0.874843,USD,Azure Retail Prices API,2025-12-18T04:46:40.760162 +AZURE,japanwest,Standard_E48pds_v6,on_demand,NA,3.614,USD,Azure Retail Prices API,2025-12-18T04:46:40.760429 +AZURE,japanwest,Standard_E48pds_v6,reserved_1y,NA,2.132534,USD,Azure Retail Prices API,2025-12-18T04:46:41.659490 +AZURE,japanwest,Standard_E48pds_v6,reserved_3y,NA,1.373478,USD,Azure Retail Prices API,2025-12-18T04:46:41.659493 +AZURE,japanwest,Standard_E48pds_v6,spot,NA,0.667867,USD,Azure Retail Prices API,2025-12-18T04:46:40.759969 +AZURE,japanwest,Standard_E48ps_v6,on_demand,NA,2.851,USD,Azure Retail Prices API,2025-12-18T04:46:40.759522 +AZURE,japanwest,Standard_E48ps_v6,reserved_1y,NA,1.682192,USD,Azure Retail Prices API,2025-12-18T04:46:41.658677 +AZURE,japanwest,Standard_E48ps_v6,reserved_3y,NA,1.083447,USD,Azure Retail Prices API,2025-12-18T04:46:41.658680 +AZURE,japanwest,Standard_E48ps_v6,spot,NA,0.526865,USD,Azure Retail Prices API,2025-12-18T04:46:40.760456 +AZURE,japanwest,Standard_E48s_v4,on_demand,NA,4.013,USD,Azure Retail Prices API,2025-12-18T04:46:40.759893 +AZURE,japanwest,Standard_E48s_v4,reserved_1y,NA,2.36758,USD,Azure Retail Prices API,2025-12-18T04:46:41.658976 +AZURE,japanwest,Standard_E48s_v4,reserved_3y,NA,1.524886,USD,Azure Retail Prices API,2025-12-18T04:46:41.658979 +AZURE,japanwest,Standard_E48s_v4,spot,NA,0.741602,USD,Azure Retail Prices API,2025-12-18T04:46:40.760969 +AZURE,japanwest,Standard_E48s_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:40.760973 +AZURE,japanwest,Standard_E48s_v5,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:41.660033 +AZURE,japanwest,Standard_E48s_v5,reserved_3y,NA,1.349772,USD,Azure Retail Prices API,2025-12-18T04:46:41.660036 +AZURE,japanwest,Standard_E48s_v5,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:40.760481 +AZURE,japanwest,Standard_E4_v3,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:46:40.760484 +AZURE,japanwest,Standard_E4_v3,reserved_1y,NA,0.188128,USD,Azure Retail Prices API,2025-12-18T04:46:41.659554 +AZURE,japanwest,Standard_E4_v3,reserved_3y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:46:41.659557 +AZURE,japanwest,Standard_E4_v3,spot,NA,0.060992,USD,Azure Retail Prices API,2025-12-18T04:46:40.760463 +AZURE,japanwest,Standard_E4a_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:40.760189 +AZURE,japanwest,Standard_E4a_v4,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:41.659240 +AZURE,japanwest,Standard_E4a_v4,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:46:41.659243 +AZURE,japanwest,Standard_E4a_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:40.761005 +AZURE,japanwest,Standard_E4ads_v5,on_demand,NA,0.318,USD,Azure Retail Prices API,2025-12-18T04:46:40.760546 +AZURE,japanwest,Standard_E4ads_v5,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:41.659634 +AZURE,japanwest,Standard_E4ads_v5,reserved_3y,NA,0.120852,USD,Azure Retail Prices API,2025-12-18T04:46:41.659637 +AZURE,japanwest,Standard_E4ads_v5,spot,NA,0.058766,USD,Azure Retail Prices API,2025-12-18T04:46:40.760212 +AZURE,japanwest,Standard_E4ads_v6,on_demand,NA,0.378,USD,Azure Retail Prices API,2025-12-18T04:46:40.760165 +AZURE,japanwest,Standard_E4ads_v6,reserved_1y,NA,0.223059,USD,Azure Retail Prices API,2025-12-18T04:46:41.659217 +AZURE,japanwest,Standard_E4ads_v6,reserved_3y,NA,0.143645,USD,Azure Retail Prices API,2025-12-18T04:46:41.659220 +AZURE,japanwest,Standard_E4ads_v6,spot,NA,0.069854,USD,Azure Retail Prices API,2025-12-18T04:46:40.759990 +AZURE,japanwest,Standard_E4as_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:40.760646 +AZURE,japanwest,Standard_E4as_v4,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:41.659732 +AZURE,japanwest,Standard_E4as_v4,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:46:41.659735 +AZURE,japanwest,Standard_E4as_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:40.759542 +AZURE,japanwest,Standard_E4as_v5,on_demand,NA,0.458,USD,Azure Retail Prices API,2025-12-18T04:46:40.759660 +AZURE,japanwest,Standard_E4as_v5,reserved_1y,NA,0.161644,USD,Azure Retail Prices API,2025-12-18T04:46:41.659822 +AZURE,japanwest,Standard_E4as_v5,reserved_3y,NA,0.10411,USD,Azure Retail Prices API,2025-12-18T04:46:41.659825 +AZURE,japanwest,Standard_E4as_v5,spot,NA,0.050635,USD,Azure Retail Prices API,2025-12-18T04:46:40.759695 +AZURE,japanwest,Standard_E4d_v4,on_demand,NA,0.382,USD,Azure Retail Prices API,2025-12-18T04:46:40.760150 +AZURE,japanwest,Standard_E4d_v4,reserved_1y,NA,0.225457,USD,Azure Retail Prices API,2025-12-18T04:46:41.659199 +AZURE,japanwest,Standard_E4d_v4,reserved_3y,NA,0.145244,USD,Azure Retail Prices API,2025-12-18T04:46:41.659202 +AZURE,japanwest,Standard_E4d_v4,spot,NA,0.070594,USD,Azure Retail Prices API,2025-12-18T04:46:40.760830 +AZURE,japanwest,Standard_E4ds_v4,on_demand,NA,0.382,USD,Azure Retail Prices API,2025-12-18T04:46:40.760453 +AZURE,japanwest,Standard_E4ds_v4,reserved_1y,NA,0.225457,USD,Azure Retail Prices API,2025-12-18T04:46:41.659537 +AZURE,japanwest,Standard_E4ds_v4,reserved_3y,NA,0.145244,USD,Azure Retail Prices API,2025-12-18T04:46:41.659540 +AZURE,japanwest,Standard_E4ds_v4,spot,NA,0.070594,USD,Azure Retail Prices API,2025-12-18T04:46:40.760472 +AZURE,japanwest,Standard_E4ds_v5,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:40.761109 +AZURE,japanwest,Standard_E4ds_v5,reserved_1y,NA,0.205365,USD,Azure Retail Prices API,2025-12-18T04:46:41.660139 +AZURE,japanwest,Standard_E4ds_v5,reserved_3y,NA,0.13223,USD,Azure Retail Prices API,2025-12-18T04:46:41.660142 +AZURE,japanwest,Standard_E4ds_v5,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:46:40.760951 +AZURE,japanwest,Standard_E4ds_v6,on_demand,NA,0.395,USD,Azure Retail Prices API,2025-12-18T04:46:40.759634 +AZURE,japanwest,Standard_E4ds_v6,reserved_1y,NA,0.244635,USD,Azure Retail Prices API,2025-12-18T04:46:41.658776 +AZURE,japanwest,Standard_E4ds_v6,reserved_3y,NA,0.153881,USD,Azure Retail Prices API,2025-12-18T04:46:41.658778 +AZURE,japanwest,Standard_E4ds_v6,spot,NA,0.072996,USD,Azure Retail Prices API,2025-12-18T04:46:40.760487 +AZURE,japanwest,Standard_E4pds_v6,on_demand,NA,0.301,USD,Azure Retail Prices API,2025-12-18T04:46:40.760893 +AZURE,japanwest,Standard_E4pds_v6,reserved_1y,NA,0.17774,USD,Azure Retail Prices API,2025-12-18T04:46:41.659983 +AZURE,japanwest,Standard_E4pds_v6,reserved_3y,NA,0.11446,USD,Azure Retail Prices API,2025-12-18T04:46:41.659986 +AZURE,japanwest,Standard_E4pds_v6,spot,NA,0.055625,USD,Azure Retail Prices API,2025-12-18T04:46:40.761080 +AZURE,japanwest,Standard_E4ps_v6,on_demand,NA,0.238,USD,Azure Retail Prices API,2025-12-18T04:46:40.760067 +AZURE,japanwest,Standard_E4ps_v6,reserved_1y,NA,0.140183,USD,Azure Retail Prices API,2025-12-18T04:46:41.659106 +AZURE,japanwest,Standard_E4ps_v6,reserved_3y,NA,0.090297,USD,Azure Retail Prices API,2025-12-18T04:46:41.659109 +AZURE,japanwest,Standard_E4ps_v6,spot,NA,0.043982,USD,Azure Retail Prices API,2025-12-18T04:46:40.759848 +AZURE,japanwest,Standard_E4s_v4,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:40.760785 +AZURE,japanwest,Standard_E4s_v4,reserved_1y,NA,0.19726,USD,Azure Retail Prices API,2025-12-18T04:46:41.659872 +AZURE,japanwest,Standard_E4s_v4,reserved_3y,NA,0.127055,USD,Azure Retail Prices API,2025-12-18T04:46:41.659875 +AZURE,japanwest,Standard_E4s_v4,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:40.760730 +AZURE,japanwest,Standard_E4s_v5,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:40.760500 +AZURE,japanwest,Standard_E4s_v5,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:41.659571 +AZURE,japanwest,Standard_E4s_v5,reserved_3y,NA,0.112481,USD,Azure Retail Prices API,2025-12-18T04:46:41.659574 +AZURE,japanwest,Standard_E4s_v5,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:40.759608 +AZURE,japanwest,Standard_E64_v3,on_demand,NA,4.609,USD,Azure Retail Prices API,2025-12-18T04:46:40.760807 +AZURE,japanwest,Standard_E64_v3,reserved_1y,NA,2.837443,USD,Azure Retail Prices API,2025-12-18T04:46:41.659900 +AZURE,japanwest,Standard_E64_v3,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:46:41.659903 +AZURE,japanwest,Standard_E64_v3,spot,NA,0.878475,USD,Azure Retail Prices API,2025-12-18T04:46:40.759887 +AZURE,japanwest,Standard_E64a_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:40.759532 +AZURE,japanwest,Standard_E64a_v4,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:41.658689 +AZURE,japanwest,Standard_E64a_v4,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:46:41.658692 +AZURE,japanwest,Standard_E64a_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:40.759587 +AZURE,japanwest,Standard_E64ads_v5,on_demand,NA,8.032,USD,Azure Retail Prices API,2025-12-18T04:46:40.759755 +AZURE,japanwest,Standard_E64ads_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:41.659616 +AZURE,japanwest,Standard_E64ads_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:41.659619 +AZURE,japanwest,Standard_E64ads_v5,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:40.760652 +AZURE,japanwest,Standard_E64ads_v6,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:46:40.760435 +AZURE,japanwest,Standard_E64ads_v6,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:46:41.659501 +AZURE,japanwest,Standard_E64ads_v6,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:46:41.659505 +AZURE,japanwest,Standard_E64ads_v6,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:46:40.759701 +AZURE,japanwest,Standard_E64as_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:40.759688 +AZURE,japanwest,Standard_E64as_v4,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:41.658820 +AZURE,japanwest,Standard_E64as_v4,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:46:41.658822 +AZURE,japanwest,Standard_E64as_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:40.759931 +AZURE,japanwest,Standard_E64as_v5,on_demand,NA,7.328,USD,Azure Retail Prices API,2025-12-18T04:46:40.760612 +AZURE,japanwest,Standard_E64as_v5,reserved_1y,NA,2.58653,USD,Azure Retail Prices API,2025-12-18T04:46:41.660092 +AZURE,japanwest,Standard_E64as_v5,reserved_3y,NA,1.665906,USD,Azure Retail Prices API,2025-12-18T04:46:41.660096 +AZURE,japanwest,Standard_E64as_v5,spot,NA,0.810163,USD,Azure Retail Prices API,2025-12-18T04:46:40.759599 +AZURE,japanwest,Standard_E64d_v4,on_demand,NA,6.115,USD,Azure Retail Prices API,2025-12-18T04:46:40.760330 +AZURE,japanwest,Standard_E64d_v4,reserved_1y,NA,3.607763,USD,Azure Retail Prices API,2025-12-18T04:46:41.659393 +AZURE,japanwest,Standard_E64d_v4,reserved_3y,NA,2.32363,USD,Azure Retail Prices API,2025-12-18T04:46:41.659396 +AZURE,japanwest,Standard_E64d_v4,spot,NA,1.130052,USD,Azure Retail Prices API,2025-12-18T04:46:40.759628 +AZURE,japanwest,Standard_E64ds_v4,on_demand,NA,6.115,USD,Azure Retail Prices API,2025-12-18T04:46:40.760333 +AZURE,japanwest,Standard_E64ds_v4,reserved_1y,NA,3.607763,USD,Azure Retail Prices API,2025-12-18T04:46:41.659399 +AZURE,japanwest,Standard_E64ds_v4,reserved_3y,NA,2.32363,USD,Azure Retail Prices API,2025-12-18T04:46:41.659401 +AZURE,japanwest,Standard_E64ds_v4,spot,NA,1.130052,USD,Azure Retail Prices API,2025-12-18T04:46:40.759652 +AZURE,japanwest,Standard_E64ds_v5,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:40.760776 +AZURE,japanwest,Standard_E64ds_v5,reserved_1y,NA,3.28516,USD,Azure Retail Prices API,2025-12-18T04:46:41.659861 +AZURE,japanwest,Standard_E64ds_v5,reserved_3y,NA,2.11583,USD,Azure Retail Prices API,2025-12-18T04:46:41.659864 +AZURE,japanwest,Standard_E64ds_v5,spot,NA,1.028966,USD,Azure Retail Prices API,2025-12-18T04:46:40.760353 +AZURE,japanwest,Standard_E64ds_v6,on_demand,NA,6.312,USD,Azure Retail Prices API,2025-12-18T04:46:40.760898 +AZURE,japanwest,Standard_E64ds_v6,reserved_1y,NA,3.913584,USD,Azure Retail Prices API,2025-12-18T04:46:41.659994 +AZURE,japanwest,Standard_E64ds_v6,reserved_3y,NA,2.461796,USD,Azure Retail Prices API,2025-12-18T04:46:41.659997 +AZURE,japanwest,Standard_E64ds_v6,spot,NA,1.166458,USD,Azure Retail Prices API,2025-12-18T04:46:40.761111 +AZURE,japanwest,Standard_E64pds_v6,on_demand,NA,4.819,USD,Azure Retail Prices API,2025-12-18T04:46:40.760233 +AZURE,japanwest,Standard_E64pds_v6,reserved_1y,NA,2.843379,USD,Azure Retail Prices API,2025-12-18T04:46:41.659291 +AZURE,japanwest,Standard_E64pds_v6,reserved_3y,NA,1.831279,USD,Azure Retail Prices API,2025-12-18T04:46:41.659294 +AZURE,japanwest,Standard_E64pds_v6,spot,NA,0.890551,USD,Azure Retail Prices API,2025-12-18T04:46:40.759791 +AZURE,japanwest,Standard_E64ps_v6,on_demand,NA,3.802,USD,Azure Retail Prices API,2025-12-18T04:46:40.759768 +AZURE,japanwest,Standard_E64ps_v6,reserved_1y,NA,2.242922,USD,Azure Retail Prices API,2025-12-18T04:46:41.658879 +AZURE,japanwest,Standard_E64ps_v6,reserved_3y,NA,1.444597,USD,Azure Retail Prices API,2025-12-18T04:46:41.658882 +AZURE,japanwest,Standard_E64ps_v6,spot,NA,0.70261,USD,Azure Retail Prices API,2025-12-18T04:46:40.760451 +AZURE,japanwest,Standard_E64s_v3,on_demand,NA,4.609,USD,Azure Retail Prices API,2025-12-18T04:46:40.759510 +AZURE,japanwest,Standard_E64s_v3,reserved_1y,NA,2.837443,USD,Azure Retail Prices API,2025-12-18T04:46:41.658652 +AZURE,japanwest,Standard_E64s_v3,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:46:41.658667 +AZURE,japanwest,Standard_E64s_v3,spot,NA,0.878475,USD,Azure Retail Prices API,2025-12-18T04:46:40.759669 +AZURE,japanwest,Standard_E64s_v4,on_demand,NA,5.35,USD,Azure Retail Prices API,2025-12-18T04:46:40.760439 +AZURE,japanwest,Standard_E64s_v4,reserved_1y,NA,3.156735,USD,Azure Retail Prices API,2025-12-18T04:46:41.659510 +AZURE,japanwest,Standard_E64s_v4,reserved_3y,NA,2.033181,USD,Azure Retail Prices API,2025-12-18T04:46:41.659515 +AZURE,japanwest,Standard_E64s_v4,spot,NA,0.98868,USD,Azure Retail Prices API,2025-12-18T04:46:40.760076 +AZURE,japanwest,Standard_E64s_v5,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:40.760813 +AZURE,japanwest,Standard_E64s_v5,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:41.659906 +AZURE,japanwest,Standard_E64s_v5,reserved_3y,NA,1.799696,USD,Azure Retail Prices API,2025-12-18T04:46:41.659909 +AZURE,japanwest,Standard_E64s_v5,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:40.760565 +AZURE,japanwest,Standard_E80ids_v4,on_demand,NA,7.644,USD,Azure Retail Prices API,2025-12-18T04:46:40.760531 +AZURE,japanwest,Standard_E80ids_v4,reserved_1y,NA,4.509703,USD,Azure Retail Prices API,2025-12-18T04:46:41.659605 +AZURE,japanwest,Standard_E80ids_v4,reserved_3y,NA,2.904528,USD,Azure Retail Prices API,2025-12-18T04:46:41.659608 +AZURE,japanwest,Standard_E80ids_v4,spot,NA,1.412611,USD,Azure Retail Prices API,2025-12-18T04:46:40.760304 +AZURE,japanwest,Standard_E80is_v4,on_demand,NA,6.688,USD,Azure Retail Prices API,2025-12-18T04:46:40.760669 +AZURE,japanwest,Standard_E80is_v4,reserved_1y,NA,3.946005,USD,Azure Retail Prices API,2025-12-18T04:46:41.659750 +AZURE,japanwest,Standard_E80is_v4,reserved_3y,NA,2.541476,USD,Azure Retail Prices API,2025-12-18T04:46:41.659753 +AZURE,japanwest,Standard_E80is_v4,spot,NA,1.235942,USD,Azure Retail Prices API,2025-12-18T04:46:40.761086 +AZURE,japanwest,Standard_E8_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:46:40.759570 +AZURE,japanwest,Standard_E8_v3,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:46:41.658724 +AZURE,japanwest,Standard_E8_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:41.658727 +AZURE,japanwest,Standard_E8_v3,spot,NA,0.121984,USD,Azure Retail Prices API,2025-12-18T04:46:40.760747 +AZURE,japanwest,Standard_E8a_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:40.760139 +AZURE,japanwest,Standard_E8a_v4,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:41.659187 +AZURE,japanwest,Standard_E8a_v4,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:46:41.659190 +AZURE,japanwest,Standard_E8a_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:40.760860 +AZURE,japanwest,Standard_E8ads_v5,on_demand,NA,1.004,USD,Azure Retail Prices API,2025-12-18T04:46:40.760264 +AZURE,japanwest,Standard_E8ads_v5,reserved_1y,NA,0.375228,USD,Azure Retail Prices API,2025-12-18T04:46:41.660062 +AZURE,japanwest,Standard_E8ads_v5,reserved_3y,NA,0.241667,USD,Azure Retail Prices API,2025-12-18T04:46:41.660064 +AZURE,japanwest,Standard_E8ads_v5,spot,NA,0.117533,USD,Azure Retail Prices API,2025-12-18T04:46:40.761103 +AZURE,japanwest,Standard_E8ads_v6,on_demand,NA,0.756,USD,Azure Retail Prices API,2025-12-18T04:46:40.759528 +AZURE,japanwest,Standard_E8ads_v6,reserved_1y,NA,0.446005,USD,Azure Retail Prices API,2025-12-18T04:46:41.658683 +AZURE,japanwest,Standard_E8ads_v6,reserved_3y,NA,0.287291,USD,Azure Retail Prices API,2025-12-18T04:46:41.658686 +AZURE,japanwest,Standard_E8ads_v6,spot,NA,0.139709,USD,Azure Retail Prices API,2025-12-18T04:46:40.759655 +AZURE,japanwest,Standard_E8as_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:40.759963 +AZURE,japanwest,Standard_E8as_v4,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:41.659020 +AZURE,japanwest,Standard_E8as_v4,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:46:41.659022 +AZURE,japanwest,Standard_E8as_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:40.760064 +AZURE,japanwest,Standard_E8as_v5,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:46:40.759874 +AZURE,japanwest,Standard_E8as_v5,reserved_1y,NA,0.323288,USD,Azure Retail Prices API,2025-12-18T04:46:41.658954 +AZURE,japanwest,Standard_E8as_v5,reserved_3y,NA,0.208257,USD,Azure Retail Prices API,2025-12-18T04:46:41.658957 +AZURE,japanwest,Standard_E8as_v5,spot,NA,0.10127,USD,Azure Retail Prices API,2025-12-18T04:46:40.760073 +AZURE,japanwest,Standard_E8d_v4,on_demand,NA,0.764,USD,Azure Retail Prices API,2025-12-18T04:46:40.760448 +AZURE,japanwest,Standard_E8d_v4,reserved_1y,NA,0.450913,USD,Azure Retail Prices API,2025-12-18T04:46:41.659532 +AZURE,japanwest,Standard_E8d_v4,reserved_3y,NA,0.290449,USD,Azure Retail Prices API,2025-12-18T04:46:41.659535 +AZURE,japanwest,Standard_E8d_v4,spot,NA,0.141187,USD,Azure Retail Prices API,2025-12-18T04:46:40.760324 +AZURE,japanwest,Standard_E8ds_v4,on_demand,NA,0.764,USD,Azure Retail Prices API,2025-12-18T04:46:40.761083 +AZURE,japanwest,Standard_E8ds_v4,reserved_1y,NA,0.450913,USD,Azure Retail Prices API,2025-12-18T04:46:41.660117 +AZURE,japanwest,Standard_E8ds_v4,reserved_3y,NA,0.290449,USD,Azure Retail Prices API,2025-12-18T04:46:41.660120 +AZURE,japanwest,Standard_E8ds_v4,spot,NA,0.141187,USD,Azure Retail Prices API,2025-12-18T04:46:40.759617 +AZURE,japanwest,Standard_E8ds_v5,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:40.760847 +AZURE,japanwest,Standard_E8ds_v5,reserved_1y,NA,0.410616,USD,Azure Retail Prices API,2025-12-18T04:46:41.659934 +AZURE,japanwest,Standard_E8ds_v5,reserved_3y,NA,0.264498,USD,Azure Retail Prices API,2025-12-18T04:46:41.659937 +AZURE,japanwest,Standard_E8ds_v5,spot,NA,0.128621,USD,Azure Retail Prices API,2025-12-18T04:46:40.760466 +AZURE,japanwest,Standard_E8ds_v6,on_demand,NA,0.789,USD,Azure Retail Prices API,2025-12-18T04:46:40.760502 +AZURE,japanwest,Standard_E8ds_v6,reserved_1y,NA,0.489155,USD,Azure Retail Prices API,2025-12-18T04:46:41.659577 +AZURE,japanwest,Standard_E8ds_v6,reserved_3y,NA,0.307725,USD,Azure Retail Prices API,2025-12-18T04:46:41.659580 +AZURE,japanwest,Standard_E8ds_v6,spot,NA,0.145807,USD,Azure Retail Prices API,2025-12-18T04:46:40.760376 +AZURE,japanwest,Standard_E8pds_v6,on_demand,NA,0.602,USD,Azure Retail Prices API,2025-12-18T04:46:40.759854 +AZURE,japanwest,Standard_E8pds_v6,reserved_1y,NA,0.355365,USD,Azure Retail Prices API,2025-12-18T04:46:41.658942 +AZURE,japanwest,Standard_E8pds_v6,reserved_3y,NA,0.228919,USD,Azure Retail Prices API,2025-12-18T04:46:41.658945 +AZURE,japanwest,Standard_E8pds_v6,spot,NA,0.11125,USD,Azure Retail Prices API,2025-12-18T04:46:40.759832 +AZURE,japanwest,Standard_E8ps_v6,on_demand,NA,0.475,USD,Azure Retail Prices API,2025-12-18T04:46:40.761065 +AZURE,japanwest,Standard_E8ps_v6,reserved_1y,NA,0.280365,USD,Azure Retail Prices API,2025-12-18T04:46:41.660098 +AZURE,japanwest,Standard_E8ps_v6,reserved_3y,NA,0.180594,USD,Azure Retail Prices API,2025-12-18T04:46:41.660101 +AZURE,japanwest,Standard_E8ps_v6,spot,NA,0.08778,USD,Azure Retail Prices API,2025-12-18T04:46:40.759997 +AZURE,japanwest,Standard_E8s_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:46:40.760283 +AZURE,japanwest,Standard_E8s_v3,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:46:41.659360 +AZURE,japanwest,Standard_E8s_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:41.659363 +AZURE,japanwest,Standard_E8s_v3,spot,NA,0.121984,USD,Azure Retail Prices API,2025-12-18T04:46:40.759758 +AZURE,japanwest,Standard_E8s_v4,on_demand,NA,0.669,USD,Azure Retail Prices API,2025-12-18T04:46:40.760793 +AZURE,japanwest,Standard_E8s_v4,reserved_1y,NA,0.394635,USD,Azure Retail Prices API,2025-12-18T04:46:41.659884 +AZURE,japanwest,Standard_E8s_v4,reserved_3y,NA,0.254148,USD,Azure Retail Prices API,2025-12-18T04:46:41.659886 +AZURE,japanwest,Standard_E8s_v4,spot,NA,0.123631,USD,Azure Retail Prices API,2025-12-18T04:46:40.761023 +AZURE,japanwest,Standard_E8s_v5,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:40.760247 +AZURE,japanwest,Standard_E8s_v5,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:41.659308 +AZURE,japanwest,Standard_E8s_v5,reserved_3y,NA,0.224962,USD,Azure Retail Prices API,2025-12-18T04:46:41.659311 +AZURE,japanwest,Standard_E8s_v5,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:40.760943 +AZURE,japanwest,Standard_E96a_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:40.760537 +AZURE,japanwest,Standard_E96a_v4,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:46:41.659610 +AZURE,japanwest,Standard_E96a_v4,reserved_3y,NA,2.772489,USD,Azure Retail Prices API,2025-12-18T04:46:41.659613 +AZURE,japanwest,Standard_E96a_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:40.760999 +AZURE,japanwest,Standard_E96ads_v5,on_demand,NA,7.632,USD,Azure Retail Prices API,2025-12-18T04:46:40.760316 +AZURE,japanwest,Standard_E96ads_v5,reserved_1y,NA,4.502854,USD,Azure Retail Prices API,2025-12-18T04:46:41.659382 +AZURE,japanwest,Standard_E96ads_v5,reserved_3y,NA,2.900152,USD,Azure Retail Prices API,2025-12-18T04:46:41.659385 +AZURE,japanwest,Standard_E96ads_v5,spot,NA,1.410394,USD,Azure Retail Prices API,2025-12-18T04:46:40.759845 +AZURE,japanwest,Standard_E96ads_v6,on_demand,NA,9.072,USD,Azure Retail Prices API,2025-12-18T04:46:40.760145 +AZURE,japanwest,Standard_E96ads_v6,reserved_1y,NA,5.352511,USD,Azure Retail Prices API,2025-12-18T04:46:41.659193 +AZURE,japanwest,Standard_E96ads_v6,reserved_3y,NA,3.447374,USD,Azure Retail Prices API,2025-12-18T04:46:41.659197 +AZURE,japanwest,Standard_E96ads_v6,spot,NA,1.676506,USD,Azure Retail Prices API,2025-12-18T04:46:40.760534 +AZURE,japanwest,Standard_E96as_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:40.761136 +AZURE,japanwest,Standard_E96as_v4,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:46:41.660158 +AZURE,japanwest,Standard_E96as_v4,reserved_3y,NA,2.772489,USD,Azure Retail Prices API,2025-12-18T04:46:41.660161 +AZURE,japanwest,Standard_E96as_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:40.760788 +AZURE,japanwest,Standard_E96as_v5,on_demand,NA,10.992,USD,Azure Retail Prices API,2025-12-18T04:46:40.760459 +AZURE,japanwest,Standard_E96as_v5,reserved_1y,NA,3.879795,USD,Azure Retail Prices API,2025-12-18T04:46:41.659799 +AZURE,japanwest,Standard_E96as_v5,reserved_3y,NA,2.498896,USD,Azure Retail Prices API,2025-12-18T04:46:41.659802 +AZURE,japanwest,Standard_E96as_v5,spot,NA,1.215245,USD,Azure Retail Prices API,2025-12-18T04:46:40.761071 +AZURE,japanwest,Standard_E96ds_v5,on_demand,NA,8.352,USD,Azure Retail Prices API,2025-12-18T04:46:40.760749 +AZURE,japanwest,Standard_E96ds_v5,reserved_1y,NA,4.927626,USD,Azure Retail Prices API,2025-12-18T04:46:41.659833 +AZURE,japanwest,Standard_E96ds_v5,reserved_3y,NA,3.173744,USD,Azure Retail Prices API,2025-12-18T04:46:41.659836 +AZURE,japanwest,Standard_E96ds_v5,spot,NA,1.54345,USD,Azure Retail Prices API,2025-12-18T04:46:40.759564 +AZURE,japanwest,Standard_E96ds_v6,on_demand,NA,9.468,USD,Azure Retail Prices API,2025-12-18T04:46:40.760367 +AZURE,japanwest,Standard_E96ds_v6,reserved_1y,NA,5.870434,USD,Azure Retail Prices API,2025-12-18T04:46:41.659426 +AZURE,japanwest,Standard_E96ds_v6,reserved_3y,NA,3.692694,USD,Azure Retail Prices API,2025-12-18T04:46:41.659429 +AZURE,japanwest,Standard_E96ds_v6,spot,NA,1.749686,USD,Azure Retail Prices API,2025-12-18T04:46:40.761017 +AZURE,japanwest,Standard_E96pds_v6,on_demand,NA,7.229,USD,Azure Retail Prices API,2025-12-18T04:46:40.759602 +AZURE,japanwest,Standard_E96pds_v6,reserved_1y,NA,4.264954,USD,Azure Retail Prices API,2025-12-18T04:46:41.658747 +AZURE,japanwest,Standard_E96pds_v6,reserved_3y,NA,2.746956,USD,Azure Retail Prices API,2025-12-18T04:46:41.658750 +AZURE,japanwest,Standard_E96pds_v6,spot,NA,1.335919,USD,Azure Retail Prices API,2025-12-18T04:46:40.760568 +AZURE,japanwest,Standard_E96ps_v6,on_demand,NA,5.702,USD,Azure Retail Prices API,2025-12-18T04:46:40.760252 +AZURE,japanwest,Standard_E96ps_v6,reserved_1y,NA,3.364384,USD,Azure Retail Prices API,2025-12-18T04:46:41.659320 +AZURE,japanwest,Standard_E96ps_v6,reserved_3y,NA,2.166895,USD,Azure Retail Prices API,2025-12-18T04:46:41.659323 +AZURE,japanwest,Standard_E96ps_v6,spot,NA,1.05373,USD,Azure Retail Prices API,2025-12-18T04:46:40.760238 +AZURE,japanwest,Standard_E96s_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:40.760706 +AZURE,japanwest,Standard_E96s_v5,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:46:41.659783 +AZURE,japanwest,Standard_E96s_v5,reserved_3y,NA,2.699505,USD,Azure Retail Prices API,2025-12-18T04:46:41.659785 +AZURE,japanwest,Standard_E96s_v5,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:40.760307 +AZURE,japanwest,Standard_EC16ads_v6,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:46:40.760130 +AZURE,japanwest,Standard_EC16ads_v6,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:46:41.659152 +AZURE,japanwest,Standard_EC16ads_v6,reserved_3y,NA,0.574543,USD,Azure Retail Prices API,2025-12-18T04:46:41.659156 +AZURE,japanwest,Standard_EC16ads_v6,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:46:40.759925 +AZURE,japanwest,Standard_EC16as_v6,on_demand,NA,1.242,USD,Azure Retail Prices API,2025-12-18T04:46:40.760956 +AZURE,japanwest,Standard_EC16as_v6,reserved_1y,NA,0.732534,USD,Azure Retail Prices API,2025-12-18T04:46:41.660011 +AZURE,japanwest,Standard_EC16as_v6,reserved_3y,NA,0.471804,USD,Azure Retail Prices API,2025-12-18T04:46:41.660014 +AZURE,japanwest,Standard_EC16as_v6,spot,NA,0.229522,USD,Azure Retail Prices API,2025-12-18T04:46:40.759896 +AZURE,japanwest,Standard_EC2ads_v6,on_demand,NA,0.189,USD,Azure Retail Prices API,2025-12-18T04:46:40.760580 +AZURE,japanwest,Standard_EC2ads_v6,reserved_1y,NA,0.11153,USD,Azure Retail Prices API,2025-12-18T04:46:41.659656 +AZURE,japanwest,Standard_EC2ads_v6,reserved_3y,NA,0.071804,USD,Azure Retail Prices API,2025-12-18T04:46:41.659659 +AZURE,japanwest,Standard_EC2ads_v6,spot,NA,0.034927,USD,Azure Retail Prices API,2025-12-18T04:46:40.760635 +AZURE,japanwest,Standard_EC2as_v6,on_demand,NA,0.155,USD,Azure Retail Prices API,2025-12-18T04:46:40.760186 +AZURE,japanwest,Standard_EC2as_v6,reserved_1y,NA,0.091553,USD,Azure Retail Prices API,2025-12-18T04:46:41.659234 +AZURE,japanwest,Standard_EC2as_v6,reserved_3y,NA,0.05898,USD,Azure Retail Prices API,2025-12-18T04:46:41.659237 +AZURE,japanwest,Standard_EC2as_v6,spot,NA,0.028644,USD,Azure Retail Prices API,2025-12-18T04:46:40.760960 +AZURE,japanwest,Standard_EC32ads_v6,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:46:40.760553 +AZURE,japanwest,Standard_EC32ads_v6,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:46:41.659639 +AZURE,japanwest,Standard_EC32ads_v6,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:46:41.659642 +AZURE,japanwest,Standard_EC32ads_v6,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:46:40.760122 +AZURE,japanwest,Standard_EC32as_v6,on_demand,NA,2.483,USD,Azure Retail Prices API,2025-12-18T04:46:40.759803 +AZURE,japanwest,Standard_EC32as_v6,reserved_1y,NA,1.465068,USD,Azure Retail Prices API,2025-12-18T04:46:41.658908 +AZURE,japanwest,Standard_EC32as_v6,reserved_3y,NA,0.943607,USD,Azure Retail Prices API,2025-12-18T04:46:41.658911 +AZURE,japanwest,Standard_EC32as_v6,spot,NA,0.458858,USD,Azure Retail Prices API,2025-12-18T04:46:40.760094 +AZURE,japanwest,Standard_EC48ads_v6,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:46:40.760895 +AZURE,japanwest,Standard_EC48ads_v6,reserved_1y,NA,2.676256,USD,Azure Retail Prices API,2025-12-18T04:46:41.659989 +AZURE,japanwest,Standard_EC48ads_v6,reserved_3y,NA,1.723668,USD,Azure Retail Prices API,2025-12-18T04:46:41.659991 +AZURE,japanwest,Standard_EC48ads_v6,spot,NA,0.838253,USD,Azure Retail Prices API,2025-12-18T04:46:40.760009 +AZURE,japanwest,Standard_EC48as_v6,on_demand,NA,3.725,USD,Azure Retail Prices API,2025-12-18T04:46:40.759713 +AZURE,japanwest,Standard_EC48as_v6,reserved_1y,NA,2.197603,USD,Azure Retail Prices API,2025-12-18T04:46:41.658842 +AZURE,japanwest,Standard_EC48as_v6,reserved_3y,NA,1.415411,USD,Azure Retail Prices API,2025-12-18T04:46:41.658844 +AZURE,japanwest,Standard_EC48as_v6,spot,NA,0.68838,USD,Azure Retail Prices API,2025-12-18T04:46:40.760586 +AZURE,japanwest,Standard_EC4ads_v6,on_demand,NA,0.378,USD,Azure Retail Prices API,2025-12-18T04:46:40.760127 +AZURE,japanwest,Standard_EC4ads_v6,reserved_1y,NA,0.223059,USD,Azure Retail Prices API,2025-12-18T04:46:41.659146 +AZURE,japanwest,Standard_EC4ads_v6,reserved_3y,NA,0.143645,USD,Azure Retail Prices API,2025-12-18T04:46:41.659149 +AZURE,japanwest,Standard_EC4ads_v6,spot,NA,0.069854,USD,Azure Retail Prices API,2025-12-18T04:46:40.760091 +AZURE,japanwest,Standard_EC4as_v6,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:40.759944 +AZURE,japanwest,Standard_EC4as_v6,reserved_1y,NA,0.183105,USD,Azure Retail Prices API,2025-12-18T04:46:41.659009 +AZURE,japanwest,Standard_EC4as_v6,reserved_3y,NA,0.11796,USD,Azure Retail Prices API,2025-12-18T04:46:41.659011 +AZURE,japanwest,Standard_EC4as_v6,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:40.760571 +AZURE,japanwest,Standard_EC64ads_v6,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:46:40.759561 +AZURE,japanwest,Standard_EC64ads_v6,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:46:41.658712 +AZURE,japanwest,Standard_EC64ads_v6,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:46:41.658715 +AZURE,japanwest,Standard_EC64ads_v6,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:46:40.761094 +AZURE,japanwest,Standard_EC64as_v6,on_demand,NA,4.966,USD,Azure Retail Prices API,2025-12-18T04:46:40.760855 +AZURE,japanwest,Standard_EC64as_v6,reserved_1y,NA,2.930137,USD,Azure Retail Prices API,2025-12-18T04:46:41.659956 +AZURE,japanwest,Standard_EC64as_v6,reserved_3y,NA,1.887215,USD,Azure Retail Prices API,2025-12-18T04:46:41.659959 +AZURE,japanwest,Standard_EC64as_v6,spot,NA,0.917717,USD,Azure Retail Prices API,2025-12-18T04:46:40.760156 +AZURE,japanwest,Standard_EC8ads_v6,on_demand,NA,0.756,USD,Azure Retail Prices API,2025-12-18T04:46:40.760796 +AZURE,japanwest,Standard_EC8ads_v6,reserved_1y,NA,0.446005,USD,Azure Retail Prices API,2025-12-18T04:46:41.659889 +AZURE,japanwest,Standard_EC8ads_v6,reserved_3y,NA,0.287291,USD,Azure Retail Prices API,2025-12-18T04:46:41.659892 +AZURE,japanwest,Standard_EC8ads_v6,spot,NA,0.139709,USD,Azure Retail Prices API,2025-12-18T04:46:40.759666 +AZURE,japanwest,Standard_EC8as_v6,on_demand,NA,0.621,USD,Azure Retail Prices API,2025-12-18T04:46:40.760195 +AZURE,japanwest,Standard_EC8as_v6,reserved_1y,NA,0.366324,USD,Azure Retail Prices API,2025-12-18T04:46:41.659252 +AZURE,japanwest,Standard_EC8as_v6,reserved_3y,NA,0.235921,USD,Azure Retail Prices API,2025-12-18T04:46:41.659255 +AZURE,japanwest,Standard_EC8as_v6,spot,NA,0.114761,USD,Azure Retail Prices API,2025-12-18T04:46:40.760097 +AZURE,japanwest,Standard_EC96ads_v6,on_demand,NA,9.072,USD,Azure Retail Prices API,2025-12-18T04:46:40.760299 +AZURE,japanwest,Standard_EC96ads_v6,reserved_1y,NA,5.352511,USD,Azure Retail Prices API,2025-12-18T04:46:41.659366 +AZURE,japanwest,Standard_EC96ads_v6,reserved_3y,NA,3.447374,USD,Azure Retail Prices API,2025-12-18T04:46:41.659368 +AZURE,japanwest,Standard_EC96ads_v6,spot,NA,1.676506,USD,Azure Retail Prices API,2025-12-18T04:46:40.759784 +AZURE,japanwest,Standard_EC96as_v6,on_demand,NA,7.45,USD,Azure Retail Prices API,2025-12-18T04:46:40.760543 +AZURE,japanwest,Standard_EC96as_v6,reserved_1y,NA,4.39532,USD,Azure Retail Prices API,2025-12-18T04:46:41.659628 +AZURE,japanwest,Standard_EC96as_v6,reserved_3y,NA,2.83086,USD,Azure Retail Prices API,2025-12-18T04:46:41.659631 +AZURE,japanwest,Standard_EC96as_v6,spot,NA,1.37676,USD,Azure Retail Prices API,2025-12-18T04:46:40.761060 +AZURE,japanwest,Standard_F16,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379734 +AZURE,japanwest,Standard_F16,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379742 +AZURE,japanwest,Standard_F16,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379746 +AZURE,japanwest,Standard_F16,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379738 +AZURE,japanwest,Standard_F16s,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382055 +AZURE,japanwest,Standard_F16s,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382064 +AZURE,japanwest,Standard_F16s,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382068 +AZURE,japanwest,Standard_F16s,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382060 +AZURE,japanwest,Standard_F16s_v2,on_demand,NA,0.8232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384785 +AZURE,japanwest,Standard_F16s_v2,reserved_1y,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384794 +AZURE,japanwest,Standard_F16s_v2,reserved_3y,NA,0.32928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384798 +AZURE,japanwest,Standard_F16s_v2,spot,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384789 +AZURE,japanwest,Standard_F32s_v2,on_demand,NA,1.6464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385625 +AZURE,japanwest,Standard_F32s_v2,reserved_1y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385633 +AZURE,japanwest,Standard_F32s_v2,reserved_3y,NA,0.65856,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385637 +AZURE,japanwest,Standard_F32s_v2,spot,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385629 +AZURE,japanwest,Standard_F4,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378209 +AZURE,japanwest,Standard_F4,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378217 +AZURE,japanwest,Standard_F4,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378222 +AZURE,japanwest,Standard_F4,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378213 +AZURE,japanwest,Standard_F48s_v2,on_demand,NA,2.4696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386383 +AZURE,japanwest,Standard_F48s_v2,reserved_1y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386396 +AZURE,japanwest,Standard_F48s_v2,reserved_3y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386402 +AZURE,japanwest,Standard_F48s_v2,spot,NA,0.74088,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386389 +AZURE,japanwest,Standard_F4s,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380495 +AZURE,japanwest,Standard_F4s,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380504 +AZURE,japanwest,Standard_F4s,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380507 +AZURE,japanwest,Standard_F4s,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380499 +AZURE,japanwest,Standard_F4s_v2,on_demand,NA,0.2058,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383175 +AZURE,japanwest,Standard_F4s_v2,reserved_1y,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383183 +AZURE,japanwest,Standard_F4s_v2,reserved_3y,NA,0.08232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383188 +AZURE,japanwest,Standard_F4s_v2,spot,NA,0.06174,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383179 +AZURE,japanwest,Standard_F64s_v2,on_demand,NA,3.2928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387160 +AZURE,japanwest,Standard_F64s_v2,reserved_1y,NA,1.97568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387169 +AZURE,japanwest,Standard_F64s_v2,reserved_3y,NA,1.31712,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387174 +AZURE,japanwest,Standard_F64s_v2,spot,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387165 +AZURE,japanwest,Standard_F72s_v2,on_demand,NA,3.7044,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388351 +AZURE,japanwest,Standard_F72s_v2,reserved_1y,NA,2.22264,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388359 +AZURE,japanwest,Standard_F72s_v2,reserved_3y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388363 +AZURE,japanwest,Standard_F72s_v2,spot,NA,1.11132,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388355 +AZURE,japanwest,Standard_F8,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378951 +AZURE,japanwest,Standard_F8,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378960 +AZURE,japanwest,Standard_F8,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378966 +AZURE,japanwest,Standard_F8,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378956 +AZURE,japanwest,Standard_F8s,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381250 +AZURE,japanwest,Standard_F8s,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381258 +AZURE,japanwest,Standard_F8s,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381262 +AZURE,japanwest,Standard_F8s,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381254 +AZURE,japanwest,Standard_F8s_v2,on_demand,NA,0.4116,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383965 +AZURE,japanwest,Standard_F8s_v2,reserved_1y,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383973 +AZURE,japanwest,Standard_F8s_v2,reserved_3y,NA,0.16464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383979 +AZURE,japanwest,Standard_F8s_v2,spot,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383969 +AZURE,japanwest,Standard_L16as_v3,on_demand,NA,1.464,USD,Azure Retail Prices API,2025-12-18T04:46:40.760649 +AZURE,japanwest,Standard_L16as_v3,reserved_1y,NA,0.936986,USD,Azure Retail Prices API,2025-12-18T04:46:41.659738 +AZURE,japanwest,Standard_L16as_v3,reserved_3y,NA,0.614878,USD,Azure Retail Prices API,2025-12-18T04:46:41.659741 +AZURE,japanwest,Standard_L16as_v3,spot,NA,0.270547,USD,Azure Retail Prices API,2025-12-18T04:46:40.760379 +AZURE,japanwest,Standard_L16s_v3,on_demand,NA,1.636,USD,Azure Retail Prices API,2025-12-18T04:46:40.760609 +AZURE,japanwest,Standard_L16s_v3,reserved_1y,NA,1.047032,USD,Azure Retail Prices API,2025-12-18T04:46:41.659689 +AZURE,japanwest,Standard_L16s_v3,reserved_3y,NA,0.687139,USD,Azure Retail Prices API,2025-12-18T04:46:41.659692 +AZURE,japanwest,Standard_L16s_v3,spot,NA,0.302333,USD,Azure Retail Prices API,2025-12-18T04:46:40.759582 +AZURE,japanwest,Standard_L32as_v3,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:40.760070 +AZURE,japanwest,Standard_L32as_v3,reserved_1y,NA,1.873973,USD,Azure Retail Prices API,2025-12-18T04:46:41.659112 +AZURE,japanwest,Standard_L32as_v3,reserved_3y,NA,1.229756,USD,Azure Retail Prices API,2025-12-18T04:46:41.659115 +AZURE,japanwest,Standard_L32as_v3,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:40.759741 +AZURE,japanwest,Standard_L32s_v3,on_demand,NA,3.272,USD,Azure Retail Prices API,2025-12-18T04:46:40.760643 +AZURE,japanwest,Standard_L32s_v3,reserved_1y,NA,2.094064,USD,Azure Retail Prices API,2025-12-18T04:46:41.659727 +AZURE,japanwest,Standard_L32s_v3,reserved_3y,NA,1.374239,USD,Azure Retail Prices API,2025-12-18T04:46:41.659730 +AZURE,japanwest,Standard_L32s_v3,spot,NA,0.604666,USD,Azure Retail Prices API,2025-12-18T04:46:40.760116 +AZURE,japanwest,Standard_L48as_v3,on_demand,NA,4.392,USD,Azure Retail Prices API,2025-12-18T04:46:40.761106 +AZURE,japanwest,Standard_L48as_v3,reserved_1y,NA,2.810845,USD,Azure Retail Prices API,2025-12-18T04:46:41.660134 +AZURE,japanwest,Standard_L48as_v3,reserved_3y,NA,1.844635,USD,Azure Retail Prices API,2025-12-18T04:46:41.660137 +AZURE,japanwest,Standard_L48as_v3,spot,NA,0.811642,USD,Azure Retail Prices API,2025-12-18T04:46:40.760928 +AZURE,japanwest,Standard_L48s_v3,on_demand,NA,4.908,USD,Azure Retail Prices API,2025-12-18T04:46:40.760852 +AZURE,japanwest,Standard_L48s_v3,reserved_1y,NA,3.141096,USD,Azure Retail Prices API,2025-12-18T04:46:41.659950 +AZURE,japanwest,Standard_L48s_v3,reserved_3y,NA,2.061377,USD,Azure Retail Prices API,2025-12-18T04:46:41.659953 +AZURE,japanwest,Standard_L48s_v3,spot,NA,0.906998,USD,Azure Retail Prices API,2025-12-18T04:46:40.759716 +AZURE,japanwest,Standard_L64as_v3,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:46:40.759736 +AZURE,japanwest,Standard_L64as_v3,reserved_1y,NA,3.747831,USD,Azure Retail Prices API,2025-12-18T04:46:41.658863 +AZURE,japanwest,Standard_L64as_v3,reserved_3y,NA,2.459513,USD,Azure Retail Prices API,2025-12-18T04:46:41.658866 +AZURE,japanwest,Standard_L64as_v3,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:46:40.760350 +AZURE,japanwest,Standard_L64s_v3,on_demand,NA,6.544,USD,Azure Retail Prices API,2025-12-18T04:46:40.760137 +AZURE,japanwest,Standard_L64s_v3,reserved_1y,NA,4.188128,USD,Azure Retail Prices API,2025-12-18T04:46:41.659181 +AZURE,japanwest,Standard_L64s_v3,reserved_3y,NA,2.748478,USD,Azure Retail Prices API,2025-12-18T04:46:41.659184 +AZURE,japanwest,Standard_L64s_v3,spot,NA,1.209331,USD,Azure Retail Prices API,2025-12-18T04:46:40.759596 +AZURE,japanwest,Standard_L80as_v3,on_demand,NA,7.32,USD,Azure Retail Prices API,2025-12-18T04:46:40.760727 +AZURE,japanwest,Standard_L80as_v3,reserved_1y,NA,4.684817,USD,Azure Retail Prices API,2025-12-18T04:46:41.659811 +AZURE,japanwest,Standard_L80as_v3,reserved_3y,NA,3.074391,USD,Azure Retail Prices API,2025-12-18T04:46:41.659814 +AZURE,japanwest,Standard_L80as_v3,spot,NA,1.352736,USD,Azure Retail Prices API,2025-12-18T04:46:40.759986 +AZURE,japanwest,Standard_L80s_v3,on_demand,NA,8.18,USD,Azure Retail Prices API,2025-12-18T04:46:40.761008 +AZURE,japanwest,Standard_L80s_v3,reserved_1y,NA,5.23516,USD,Azure Retail Prices API,2025-12-18T04:46:41.660050 +AZURE,japanwest,Standard_L80s_v3,reserved_3y,NA,3.435616,USD,Azure Retail Prices API,2025-12-18T04:46:41.660053 +AZURE,japanwest,Standard_L80s_v3,spot,NA,1.511664,USD,Azure Retail Prices API,2025-12-18T04:46:40.759976 +AZURE,japanwest,Standard_L8as_v3,on_demand,NA,0.732,USD,Azure Retail Prices API,2025-12-18T04:46:40.760079 +AZURE,japanwest,Standard_L8as_v3,reserved_1y,NA,0.468493,USD,Azure Retail Prices API,2025-12-18T04:46:41.659117 +AZURE,japanwest,Standard_L8as_v3,reserved_3y,NA,0.307458,USD,Azure Retail Prices API,2025-12-18T04:46:41.659120 +AZURE,japanwest,Standard_L8as_v3,spot,NA,0.135274,USD,Azure Retail Prices API,2025-12-18T04:46:40.760623 +AZURE,japanwest,Standard_L8s_v3,on_demand,NA,0.818,USD,Azure Retail Prices API,2025-12-18T04:46:40.759625 +AZURE,japanwest,Standard_L8s_v3,reserved_1y,NA,0.523516,USD,Azure Retail Prices API,2025-12-18T04:46:41.658764 +AZURE,japanwest,Standard_L8s_v3,reserved_3y,NA,0.343569,USD,Azure Retail Prices API,2025-12-18T04:46:41.658767 +AZURE,japanwest,Standard_L8s_v3,spot,NA,0.151166,USD,Azure Retail Prices API,2025-12-18T04:46:40.760592 +AZURE,japanwest,Standard_NC16as_T4_v3,on_demand,NA,1.757,USD,Azure Retail Prices API,2025-12-18T04:46:40.760844 +AZURE,japanwest,Standard_NC16as_T4_v3,reserved_1y,NA,1.124543,USD,Azure Retail Prices API,2025-12-18T04:46:41.659929 +AZURE,japanwest,Standard_NC16as_T4_v3,reserved_3y,NA,0.773174,USD,Azure Retail Prices API,2025-12-18T04:46:41.659931 +AZURE,japanwest,Standard_NC16as_T4_v3,spot,NA,0.3514,USD,Azure Retail Prices API,2025-12-18T04:46:40.760469 +AZURE,japanwest,Standard_NC4as_T4_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:46:40.760012 +AZURE,japanwest,Standard_NC4as_T4_v3,reserved_1y,NA,0.491553,USD,Azure Retail Prices API,2025-12-18T04:46:41.659041 +AZURE,japanwest,Standard_NC4as_T4_v3,reserved_3y,NA,0.337938,USD,Azure Retail Prices API,2025-12-18T04:46:41.659044 +AZURE,japanwest,Standard_NC4as_T4_v3,spot,NA,0.1536,USD,Azure Retail Prices API,2025-12-18T04:46:40.761034 +AZURE,japanwest,Standard_NC64as_T4_v3,on_demand,NA,6.341,USD,Azure Retail Prices API,2025-12-18T04:46:40.760442 +AZURE,japanwest,Standard_NC64as_T4_v3,reserved_1y,NA,4.057991,USD,Azure Retail Prices API,2025-12-18T04:46:41.659519 +AZURE,japanwest,Standard_NC64as_T4_v3,reserved_3y,NA,2.789878,USD,Azure Retail Prices API,2025-12-18T04:46:41.659523 +AZURE,japanwest,Standard_NC64as_T4_v3,spot,NA,1.2682,USD,Azure Retail Prices API,2025-12-18T04:46:40.760871 +AZURE,japanwest,Standard_NC8as_T4_v3,on_demand,NA,1.097,USD,Azure Retail Prices API,2025-12-18T04:46:40.759794 +AZURE,japanwest,Standard_NC8as_T4_v3,reserved_1y,NA,0.702055,USD,Azure Retail Prices API,2025-12-18T04:46:41.658890 +AZURE,japanwest,Standard_NC8as_T4_v3,reserved_3y,NA,0.482686,USD,Azure Retail Prices API,2025-12-18T04:46:41.658893 +AZURE,japanwest,Standard_NC8as_T4_v3,spot,NA,0.2194,USD,Azure Retail Prices API,2025-12-18T04:46:40.759813 +AZURE,japanwest,Standard_ND96isr_H100_v5,on_demand,NA,152.396,USD,Azure Retail Prices API,2025-12-18T04:46:40.760405 +AZURE,japanwest,Standard_ND96isr_H100_v5,reserved_1y,NA,97.533447,USD,Azure Retail Prices API,2025-12-18T04:46:41.659464 +AZURE,japanwest,Standard_ND96isr_H100_v5,reserved_3y,NA,66.901826,USD,Azure Retail Prices API,2025-12-18T04:46:41.659467 +AZURE,japanwest,Standard_ND96isr_H100_v5,spot,NA,28.162781,USD,Azure Retail Prices API,2025-12-18T04:46:40.759611 +AZURE,koreacentral,Standard_D128ds_v6,on_demand,NA,9.801,USD,Azure Retail Prices API,2025-12-18T04:46:43.822368 +AZURE,koreacentral,Standard_D128ds_v6,reserved_1y,NA,6.076598,USD,Azure Retail Prices API,2025-12-18T04:46:45.252329 +AZURE,koreacentral,Standard_D128ds_v6,reserved_3y,NA,3.822374,USD,Azure Retail Prices API,2025-12-18T04:46:45.252332 +AZURE,koreacentral,Standard_D128ds_v6,spot,NA,1.811225,USD,Azure Retail Prices API,2025-12-18T04:46:43.823517 +AZURE,koreacentral,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488630 +AZURE,koreacentral,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488638 +AZURE,koreacentral,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488642 +AZURE,koreacentral,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488634 +AZURE,koreacentral,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489463 +AZURE,koreacentral,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489471 +AZURE,koreacentral,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489475 +AZURE,koreacentral,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489467 +AZURE,koreacentral,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490512 +AZURE,koreacentral,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490521 +AZURE,koreacentral,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490525 +AZURE,koreacentral,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490517 +AZURE,koreacentral,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491263 +AZURE,koreacentral,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491271 +AZURE,koreacentral,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491275 +AZURE,koreacentral,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491267 +AZURE,koreacentral,Standard_D16_v3,on_demand,NA,0.984,USD,Azure Retail Prices API,2025-12-18T04:46:43.823021 +AZURE,koreacentral,Standard_D16_v3,reserved_1y,NA,0.548858,USD,Azure Retail Prices API,2025-12-18T04:46:45.252649 +AZURE,koreacentral,Standard_D16_v3,reserved_3y,NA,0.375989,USD,Azure Retail Prices API,2025-12-18T04:46:45.252652 +AZURE,koreacentral,Standard_D16_v3,spot,NA,0.181843,USD,Azure Retail Prices API,2025-12-18T04:46:43.823726 +AZURE,koreacentral,Standard_D16a_v4,on_demand,NA,0.944,USD,Azure Retail Prices API,2025-12-18T04:46:43.821812 +AZURE,koreacentral,Standard_D16a_v4,reserved_1y,NA,0.547489,USD,Azure Retail Prices API,2025-12-18T04:46:45.252115 +AZURE,koreacentral,Standard_D16a_v4,reserved_3y,NA,0.354947,USD,Azure Retail Prices API,2025-12-18T04:46:45.252118 +AZURE,koreacentral,Standard_D16a_v4,spot,NA,0.174451,USD,Azure Retail Prices API,2025-12-18T04:46:43.823415 +AZURE,koreacentral,Standard_D16ads_v5,on_demand,NA,1.752,USD,Azure Retail Prices API,2025-12-18T04:46:43.820849 +AZURE,koreacentral,Standard_D16ads_v5,reserved_1y,NA,0.599429,USD,Azure Retail Prices API,2025-12-18T04:46:45.251548 +AZURE,koreacentral,Standard_D16ads_v5,reserved_3y,NA,0.386073,USD,Azure Retail Prices API,2025-12-18T04:46:45.251551 +AZURE,koreacentral,Standard_D16ads_v5,spot,NA,0.187757,USD,Azure Retail Prices API,2025-12-18T04:46:43.822026 +AZURE,koreacentral,Standard_D16ads_v6,on_demand,NA,1.125,USD,Azure Retail Prices API,2025-12-18T04:46:43.822122 +AZURE,koreacentral,Standard_D16ads_v6,reserved_1y,NA,0.663584,USD,Azure Retail Prices API,2025-12-18T04:46:45.252224 +AZURE,koreacentral,Standard_D16ads_v6,reserved_3y,NA,0.427435,USD,Azure Retail Prices API,2025-12-18T04:46:45.252227 +AZURE,koreacentral,Standard_D16ads_v6,spot,NA,0.2079,USD,Azure Retail Prices API,2025-12-18T04:46:43.820874 +AZURE,koreacentral,Standard_D16as_v4,on_demand,NA,0.944,USD,Azure Retail Prices API,2025-12-18T04:46:43.823100 +AZURE,koreacentral,Standard_D16as_v4,reserved_1y,NA,0.547489,USD,Azure Retail Prices API,2025-12-18T04:46:45.252699 +AZURE,koreacentral,Standard_D16as_v4,reserved_3y,NA,0.354947,USD,Azure Retail Prices API,2025-12-18T04:46:45.252706 +AZURE,koreacentral,Standard_D16as_v4,spot,NA,0.174451,USD,Azure Retail Prices API,2025-12-18T04:46:43.820885 +AZURE,koreacentral,Standard_D16as_v5,on_demand,NA,0.848,USD,Azure Retail Prices API,2025-12-18T04:46:43.821728 +AZURE,koreacentral,Standard_D16as_v5,reserved_1y,NA,0.500342,USD,Azure Retail Prices API,2025-12-18T04:46:45.252077 +AZURE,koreacentral,Standard_D16as_v5,reserved_3y,NA,0.322222,USD,Azure Retail Prices API,2025-12-18T04:46:45.252080 +AZURE,koreacentral,Standard_D16as_v5,spot,NA,0.15671,USD,Azure Retail Prices API,2025-12-18T04:46:43.821573 +AZURE,koreacentral,Standard_D16d_v4,on_demand,NA,1.112,USD,Azure Retail Prices API,2025-12-18T04:46:43.821655 +AZURE,koreacentral,Standard_D16d_v4,reserved_1y,NA,0.64726,USD,Azure Retail Prices API,2025-12-18T04:46:45.252048 +AZURE,koreacentral,Standard_D16d_v4,reserved_3y,NA,0.418113,USD,Azure Retail Prices API,2025-12-18T04:46:45.252051 +AZURE,koreacentral,Standard_D16d_v4,spot,NA,0.205498,USD,Azure Retail Prices API,2025-12-18T04:46:43.822750 +AZURE,koreacentral,Standard_D16ds_v4,on_demand,NA,1.112,USD,Azure Retail Prices API,2025-12-18T04:46:43.821927 +AZURE,koreacentral,Standard_D16ds_v4,reserved_1y,NA,0.64726,USD,Azure Retail Prices API,2025-12-18T04:46:45.252145 +AZURE,koreacentral,Standard_D16ds_v4,reserved_3y,NA,0.418113,USD,Azure Retail Prices API,2025-12-18T04:46:45.252148 +AZURE,koreacentral,Standard_D16ds_v4,spot,NA,0.205498,USD,Azure Retail Prices API,2025-12-18T04:46:43.822154 +AZURE,koreacentral,Standard_D16ds_v5,on_demand,NA,1.112,USD,Azure Retail Prices API,2025-12-18T04:46:43.822385 +AZURE,koreacentral,Standard_D16ds_v5,reserved_1y,NA,0.65605,USD,Azure Retail Prices API,2025-12-18T04:46:45.252340 +AZURE,koreacentral,Standard_D16ds_v5,reserved_3y,NA,0.422565,USD,Azure Retail Prices API,2025-12-18T04:46:45.252343 +AZURE,koreacentral,Standard_D16ds_v5,spot,NA,0.205498,USD,Azure Retail Prices API,2025-12-18T04:46:43.823691 +AZURE,koreacentral,Standard_D16ds_v6,on_demand,NA,1.225,USD,Azure Retail Prices API,2025-12-18T04:46:43.822175 +AZURE,koreacentral,Standard_D16ds_v6,reserved_1y,NA,0.759589,USD,Azure Retail Prices API,2025-12-18T04:46:45.252246 +AZURE,koreacentral,Standard_D16ds_v6,reserved_3y,NA,0.477778,USD,Azure Retail Prices API,2025-12-18T04:46:45.252249 +AZURE,koreacentral,Standard_D16ds_v6,spot,NA,0.22638,USD,Azure Retail Prices API,2025-12-18T04:46:43.823011 +AZURE,koreacentral,Standard_D16pds_v6,on_demand,NA,0.958,USD,Azure Retail Prices API,2025-12-18T04:46:43.820962 +AZURE,koreacentral,Standard_D16pds_v6,reserved_1y,NA,0.565411,USD,Azure Retail Prices API,2025-12-18T04:46:45.251634 +AZURE,koreacentral,Standard_D16pds_v6,reserved_3y,NA,0.364193,USD,Azure Retail Prices API,2025-12-18T04:46:45.251639 +AZURE,koreacentral,Standard_D16pds_v6,spot,NA,0.177038,USD,Azure Retail Prices API,2025-12-18T04:46:43.823005 +AZURE,koreacentral,Standard_D16ps_v6,on_demand,NA,0.731,USD,Azure Retail Prices API,2025-12-18T04:46:43.821075 +AZURE,koreacentral,Standard_D16ps_v6,reserved_1y,NA,0.431393,USD,Azure Retail Prices API,2025-12-18T04:46:45.251724 +AZURE,koreacentral,Standard_D16ps_v6,reserved_3y,NA,0.277854,USD,Azure Retail Prices API,2025-12-18T04:46:45.251727 +AZURE,koreacentral,Standard_D16ps_v6,spot,NA,0.135089,USD,Azure Retail Prices API,2025-12-18T04:46:43.823421 +AZURE,koreacentral,Standard_D16s_v3,on_demand,NA,0.984,USD,Azure Retail Prices API,2025-12-18T04:46:43.823308 +AZURE,koreacentral,Standard_D16s_v3,reserved_1y,NA,0.548858,USD,Azure Retail Prices API,2025-12-18T04:46:45.252825 +AZURE,koreacentral,Standard_D16s_v3,reserved_3y,NA,0.375989,USD,Azure Retail Prices API,2025-12-18T04:46:45.252828 +AZURE,koreacentral,Standard_D16s_v3,spot,NA,0.181843,USD,Azure Retail Prices API,2025-12-18T04:46:43.822911 +AZURE,koreacentral,Standard_D16s_v4,on_demand,NA,0.944,USD,Azure Retail Prices API,2025-12-18T04:46:43.821424 +AZURE,koreacentral,Standard_D16s_v4,reserved_1y,NA,0.548744,USD,Azure Retail Prices API,2025-12-18T04:46:45.251894 +AZURE,koreacentral,Standard_D16s_v4,reserved_3y,NA,0.354947,USD,Azure Retail Prices API,2025-12-18T04:46:45.251897 +AZURE,koreacentral,Standard_D16s_v4,spot,NA,0.174451,USD,Azure Retail Prices API,2025-12-18T04:46:43.823599 +AZURE,koreacentral,Standard_D16s_v5,on_demand,NA,0.944,USD,Azure Retail Prices API,2025-12-18T04:46:43.821524 +AZURE,koreacentral,Standard_D16s_v5,reserved_1y,NA,0.556963,USD,Azure Retail Prices API,2025-12-18T04:46:45.251937 +AZURE,koreacentral,Standard_D16s_v5,reserved_3y,NA,0.349277,USD,Azure Retail Prices API,2025-12-18T04:46:45.251943 +AZURE,koreacentral,Standard_D16s_v5,spot,NA,0.174451,USD,Azure Retail Prices API,2025-12-18T04:46:43.821507 +AZURE,koreacentral,Standard_D2ads_v6,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:46:43.823180 +AZURE,koreacentral,Standard_D2ads_v6,reserved_1y,NA,0.082991,USD,Azure Retail Prices API,2025-12-18T04:46:45.252756 +AZURE,koreacentral,Standard_D2ads_v6,reserved_3y,NA,0.053425,USD,Azure Retail Prices API,2025-12-18T04:46:45.252759 +AZURE,koreacentral,Standard_D2ads_v6,spot,NA,0.026057,USD,Azure Retail Prices API,2025-12-18T04:46:43.822334 +AZURE,koreacentral,Standard_D2ds_v6,on_demand,NA,0.153,USD,Azure Retail Prices API,2025-12-18T04:46:43.821049 +AZURE,koreacentral,Standard_D2ds_v6,reserved_1y,NA,0.094977,USD,Azure Retail Prices API,2025-12-18T04:46:45.251700 +AZURE,koreacentral,Standard_D2ds_v6,reserved_3y,NA,0.059741,USD,Azure Retail Prices API,2025-12-18T04:46:45.251703 +AZURE,koreacentral,Standard_D2ds_v6,spot,NA,0.028274,USD,Azure Retail Prices API,2025-12-18T04:46:43.822214 +AZURE,koreacentral,Standard_D32_v3,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:46:43.822164 +AZURE,koreacentral,Standard_D32_v3,reserved_1y,NA,1.097717,USD,Azure Retail Prices API,2025-12-18T04:46:45.252240 +AZURE,koreacentral,Standard_D32_v3,reserved_3y,NA,0.751979,USD,Azure Retail Prices API,2025-12-18T04:46:45.252243 +AZURE,koreacentral,Standard_D32_v3,spot,NA,0.363686,USD,Azure Retail Prices API,2025-12-18T04:46:43.821989 +AZURE,koreacentral,Standard_D32a_v4,on_demand,NA,1.888,USD,Azure Retail Prices API,2025-12-18T04:46:43.822800 +AZURE,koreacentral,Standard_D32a_v4,reserved_1y,NA,1.095091,USD,Azure Retail Prices API,2025-12-18T04:46:45.252578 +AZURE,koreacentral,Standard_D32a_v4,reserved_3y,NA,0.709893,USD,Azure Retail Prices API,2025-12-18T04:46:45.252581 +AZURE,koreacentral,Standard_D32a_v4,spot,NA,0.348902,USD,Azure Retail Prices API,2025-12-18T04:46:43.822111 +AZURE,koreacentral,Standard_D32ads_v5,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:46:43.822374 +AZURE,koreacentral,Standard_D32ads_v5,reserved_1y,NA,1.198858,USD,Azure Retail Prices API,2025-12-18T04:46:45.252335 +AZURE,koreacentral,Standard_D32ads_v5,reserved_3y,NA,0.772146,USD,Azure Retail Prices API,2025-12-18T04:46:45.252338 +AZURE,koreacentral,Standard_D32ads_v5,spot,NA,0.375514,USD,Azure Retail Prices API,2025-12-18T04:46:43.822717 +AZURE,koreacentral,Standard_D32ads_v6,on_demand,NA,2.25,USD,Azure Retail Prices API,2025-12-18T04:46:43.822016 +AZURE,koreacentral,Standard_D32ads_v6,reserved_1y,NA,1.327283,USD,Azure Retail Prices API,2025-12-18T04:46:45.252190 +AZURE,koreacentral,Standard_D32ads_v6,reserved_3y,NA,0.854833,USD,Azure Retail Prices API,2025-12-18T04:46:45.252193 +AZURE,koreacentral,Standard_D32ads_v6,spot,NA,0.4158,USD,Azure Retail Prices API,2025-12-18T04:46:43.823731 +AZURE,koreacentral,Standard_D32as_v4,on_demand,NA,1.888,USD,Azure Retail Prices API,2025-12-18T04:46:43.821999 +AZURE,koreacentral,Standard_D32as_v4,reserved_1y,NA,1.095091,USD,Azure Retail Prices API,2025-12-18T04:46:45.252179 +AZURE,koreacentral,Standard_D32as_v4,reserved_3y,NA,0.709893,USD,Azure Retail Prices API,2025-12-18T04:46:45.252182 +AZURE,koreacentral,Standard_D32as_v4,spot,NA,0.348902,USD,Azure Retail Prices API,2025-12-18T04:46:43.821848 +AZURE,koreacentral,Standard_D32as_v5,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:46:43.821348 +AZURE,koreacentral,Standard_D32as_v5,reserved_1y,NA,1.000685,USD,Azure Retail Prices API,2025-12-18T04:46:45.252346 +AZURE,koreacentral,Standard_D32as_v5,reserved_3y,NA,0.644482,USD,Azure Retail Prices API,2025-12-18T04:46:45.252349 +AZURE,koreacentral,Standard_D32as_v5,spot,NA,0.313421,USD,Azure Retail Prices API,2025-12-18T04:46:43.823016 +AZURE,koreacentral,Standard_D32d_v4,on_demand,NA,2.224,USD,Azure Retail Prices API,2025-12-18T04:46:43.823261 +AZURE,koreacentral,Standard_D32d_v4,reserved_1y,NA,1.294521,USD,Azure Retail Prices API,2025-12-18T04:46:45.252793 +AZURE,koreacentral,Standard_D32d_v4,reserved_3y,NA,0.836225,USD,Azure Retail Prices API,2025-12-18T04:46:45.252796 +AZURE,koreacentral,Standard_D32d_v4,spot,NA,0.410995,USD,Azure Retail Prices API,2025-12-18T04:46:43.822380 +AZURE,koreacentral,Standard_D32ds_v4,on_demand,NA,2.224,USD,Azure Retail Prices API,2025-12-18T04:46:43.822690 +AZURE,koreacentral,Standard_D32ds_v4,reserved_1y,NA,1.294521,USD,Azure Retail Prices API,2025-12-18T04:46:45.252515 +AZURE,koreacentral,Standard_D32ds_v4,reserved_3y,NA,0.836225,USD,Azure Retail Prices API,2025-12-18T04:46:45.252518 +AZURE,koreacentral,Standard_D32ds_v4,spot,NA,0.410995,USD,Azure Retail Prices API,2025-12-18T04:46:43.821743 +AZURE,koreacentral,Standard_D32ds_v5,on_demand,NA,2.224,USD,Azure Retail Prices API,2025-12-18T04:46:43.820956 +AZURE,koreacentral,Standard_D32ds_v5,reserved_1y,NA,1.312215,USD,Azure Retail Prices API,2025-12-18T04:46:45.251623 +AZURE,koreacentral,Standard_D32ds_v5,reserved_3y,NA,0.845129,USD,Azure Retail Prices API,2025-12-18T04:46:45.251628 +AZURE,koreacentral,Standard_D32ds_v5,spot,NA,0.410995,USD,Azure Retail Prices API,2025-12-18T04:46:43.823227 +AZURE,koreacentral,Standard_D32ds_v6,on_demand,NA,2.45,USD,Azure Retail Prices API,2025-12-18T04:46:43.823105 +AZURE,koreacentral,Standard_D32ds_v6,reserved_1y,NA,1.519178,USD,Azure Retail Prices API,2025-12-18T04:46:45.252711 +AZURE,koreacentral,Standard_D32ds_v6,reserved_3y,NA,0.955594,USD,Azure Retail Prices API,2025-12-18T04:46:45.252714 +AZURE,koreacentral,Standard_D32ds_v6,spot,NA,0.45276,USD,Azure Retail Prices API,2025-12-18T04:46:43.822021 +AZURE,koreacentral,Standard_D32pds_v6,on_demand,NA,1.917,USD,Azure Retail Prices API,2025-12-18T04:46:43.823325 +AZURE,koreacentral,Standard_D32pds_v6,reserved_1y,NA,1.130936,USD,Azure Retail Prices API,2025-12-18T04:46:45.252837 +AZURE,koreacentral,Standard_D32pds_v6,reserved_3y,NA,0.728387,USD,Azure Retail Prices API,2025-12-18T04:46:45.252840 +AZURE,koreacentral,Standard_D32pds_v6,spot,NA,0.354262,USD,Azure Retail Prices API,2025-12-18T04:46:43.822640 +AZURE,koreacentral,Standard_D32ps_v6,on_demand,NA,1.462,USD,Azure Retail Prices API,2025-12-18T04:46:43.823039 +AZURE,koreacentral,Standard_D32ps_v6,reserved_1y,NA,0.862785,USD,Azure Retail Prices API,2025-12-18T04:46:45.252666 +AZURE,koreacentral,Standard_D32ps_v6,reserved_3y,NA,0.555708,USD,Azure Retail Prices API,2025-12-18T04:46:45.252668 +AZURE,koreacentral,Standard_D32ps_v6,spot,NA,0.270178,USD,Azure Retail Prices API,2025-12-18T04:46:43.822838 +AZURE,koreacentral,Standard_D32s_v3,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:46:43.822783 +AZURE,koreacentral,Standard_D32s_v3,reserved_1y,NA,1.097717,USD,Azure Retail Prices API,2025-12-18T04:46:45.252567 +AZURE,koreacentral,Standard_D32s_v3,reserved_3y,NA,0.751979,USD,Azure Retail Prices API,2025-12-18T04:46:45.252569 +AZURE,koreacentral,Standard_D32s_v3,spot,NA,0.363686,USD,Azure Retail Prices API,2025-12-18T04:46:43.822744 +AZURE,koreacentral,Standard_D32s_v4,on_demand,NA,1.888,USD,Azure Retail Prices API,2025-12-18T04:46:43.823490 +AZURE,koreacentral,Standard_D32s_v4,reserved_1y,NA,1.097603,USD,Azure Retail Prices API,2025-12-18T04:46:45.252934 +AZURE,koreacentral,Standard_D32s_v4,reserved_3y,NA,0.709893,USD,Azure Retail Prices API,2025-12-18T04:46:45.252937 +AZURE,koreacentral,Standard_D32s_v4,spot,NA,0.348902,USD,Azure Retail Prices API,2025-12-18T04:46:43.822127 +AZURE,koreacentral,Standard_D32s_v5,on_demand,NA,1.888,USD,Azure Retail Prices API,2025-12-18T04:46:43.821392 +AZURE,koreacentral,Standard_D32s_v5,reserved_1y,NA,1.113927,USD,Azure Retail Prices API,2025-12-18T04:46:45.251877 +AZURE,koreacentral,Standard_D32s_v5,reserved_3y,NA,0.698554,USD,Azure Retail Prices API,2025-12-18T04:46:45.251880 +AZURE,koreacentral,Standard_D32s_v5,spot,NA,0.348902,USD,Azure Retail Prices API,2025-12-18T04:46:43.822522 +AZURE,koreacentral,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485743 +AZURE,koreacentral,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485751 +AZURE,koreacentral,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485756 +AZURE,koreacentral,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485747 +AZURE,koreacentral,Standard_D48a_v4,on_demand,NA,2.832,USD,Azure Retail Prices API,2025-12-18T04:46:43.821169 +AZURE,koreacentral,Standard_D48a_v4,reserved_1y,NA,1.64258,USD,Azure Retail Prices API,2025-12-18T04:46:45.251794 +AZURE,koreacentral,Standard_D48a_v4,reserved_3y,NA,1.06484,USD,Azure Retail Prices API,2025-12-18T04:46:45.251797 +AZURE,koreacentral,Standard_D48a_v4,spot,NA,0.523354,USD,Azure Retail Prices API,2025-12-18T04:46:43.823446 +AZURE,koreacentral,Standard_D48ads_v5,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:46:43.820972 +AZURE,koreacentral,Standard_D48ads_v5,reserved_1y,NA,1.798288,USD,Azure Retail Prices API,2025-12-18T04:46:45.251644 +AZURE,koreacentral,Standard_D48ads_v5,reserved_3y,NA,1.158257,USD,Azure Retail Prices API,2025-12-18T04:46:45.251648 +AZURE,koreacentral,Standard_D48ads_v5,spot,NA,0.56327,USD,Azure Retail Prices API,2025-12-18T04:46:43.823474 +AZURE,koreacentral,Standard_D48ads_v6,on_demand,NA,3.374,USD,Azure Retail Prices API,2025-12-18T04:46:43.823361 +AZURE,koreacentral,Standard_D48ads_v6,reserved_1y,NA,1.990868,USD,Azure Retail Prices API,2025-12-18T04:46:45.252870 +AZURE,koreacentral,Standard_D48ads_v6,reserved_3y,NA,1.282268,USD,Azure Retail Prices API,2025-12-18T04:46:45.252872 +AZURE,koreacentral,Standard_D48ads_v6,spot,NA,0.623515,USD,Azure Retail Prices API,2025-12-18T04:46:43.821163 +AZURE,koreacentral,Standard_D48as_v4,on_demand,NA,2.832,USD,Azure Retail Prices API,2025-12-18T04:46:43.821712 +AZURE,koreacentral,Standard_D48as_v4,reserved_1y,NA,1.64258,USD,Azure Retail Prices API,2025-12-18T04:46:45.252066 +AZURE,koreacentral,Standard_D48as_v4,reserved_3y,NA,1.06484,USD,Azure Retail Prices API,2025-12-18T04:46:45.252069 +AZURE,koreacentral,Standard_D48as_v4,spot,NA,0.523354,USD,Azure Retail Prices API,2025-12-18T04:46:43.821461 +AZURE,koreacentral,Standard_D48as_v5,on_demand,NA,4.752,USD,Azure Retail Prices API,2025-12-18T04:46:43.820919 +AZURE,koreacentral,Standard_D48as_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:45.252676 +AZURE,koreacentral,Standard_D48as_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:45.252679 +AZURE,koreacentral,Standard_D48as_v5,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:43.820983 +AZURE,koreacentral,Standard_D48d_v4,on_demand,NA,3.336,USD,Azure Retail Prices API,2025-12-18T04:46:43.822668 +AZURE,koreacentral,Standard_D48d_v4,reserved_1y,NA,1.941781,USD,Azure Retail Prices API,2025-12-18T04:46:45.252504 +AZURE,koreacentral,Standard_D48d_v4,reserved_3y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:45.252507 +AZURE,koreacentral,Standard_D48d_v4,spot,NA,0.616493,USD,Azure Retail Prices API,2025-12-18T04:46:43.823086 +AZURE,koreacentral,Standard_D48ds_v4,on_demand,NA,3.336,USD,Azure Retail Prices API,2025-12-18T04:46:43.821994 +AZURE,koreacentral,Standard_D48ds_v4,reserved_1y,NA,1.941781,USD,Azure Retail Prices API,2025-12-18T04:46:45.252173 +AZURE,koreacentral,Standard_D48ds_v4,reserved_3y,NA,1.254338,USD,Azure Retail Prices API,2025-12-18T04:46:45.252176 +AZURE,koreacentral,Standard_D48ds_v4,spot,NA,0.616493,USD,Azure Retail Prices API,2025-12-18T04:46:43.822169 +AZURE,koreacentral,Standard_D48ds_v5,on_demand,NA,3.336,USD,Azure Retail Prices API,2025-12-18T04:46:43.820890 +AZURE,koreacentral,Standard_D48ds_v5,reserved_1y,NA,1.968265,USD,Azure Retail Prices API,2025-12-18T04:46:45.251560 +AZURE,koreacentral,Standard_D48ds_v5,reserved_3y,NA,1.267694,USD,Azure Retail Prices API,2025-12-18T04:46:45.251563 +AZURE,koreacentral,Standard_D48ds_v5,spot,NA,0.616493,USD,Azure Retail Prices API,2025-12-18T04:46:43.823662 +AZURE,koreacentral,Standard_D48ds_v6,on_demand,NA,3.675,USD,Azure Retail Prices API,2025-12-18T04:46:43.823091 +AZURE,koreacentral,Standard_D48ds_v6,reserved_1y,NA,2.278767,USD,Azure Retail Prices API,2025-12-18T04:46:45.252689 +AZURE,koreacentral,Standard_D48ds_v6,reserved_3y,NA,1.433371,USD,Azure Retail Prices API,2025-12-18T04:46:45.252694 +AZURE,koreacentral,Standard_D48ds_v6,spot,NA,0.67914,USD,Azure Retail Prices API,2025-12-18T04:46:43.821676 +AZURE,koreacentral,Standard_D48pds_v6,on_demand,NA,2.875,USD,Azure Retail Prices API,2025-12-18T04:46:43.821618 +AZURE,koreacentral,Standard_D48pds_v6,reserved_1y,NA,1.696347,USD,Azure Retail Prices API,2025-12-18T04:46:45.252019 +AZURE,koreacentral,Standard_D48pds_v6,reserved_3y,NA,1.09258,USD,Azure Retail Prices API,2025-12-18T04:46:45.252022 +AZURE,koreacentral,Standard_D48pds_v6,spot,NA,0.5313,USD,Azure Retail Prices API,2025-12-18T04:46:43.823701 +AZURE,koreacentral,Standard_D48ps_v6,on_demand,NA,2.194,USD,Azure Retail Prices API,2025-12-18T04:46:43.822922 +AZURE,koreacentral,Standard_D48ps_v6,reserved_1y,NA,1.294178,USD,Azure Retail Prices API,2025-12-18T04:46:45.252611 +AZURE,koreacentral,Standard_D48ps_v6,reserved_3y,NA,0.833562,USD,Azure Retail Prices API,2025-12-18T04:46:45.252613 +AZURE,koreacentral,Standard_D48ps_v6,spot,NA,0.405451,USD,Azure Retail Prices API,2025-12-18T04:46:43.821706 +AZURE,koreacentral,Standard_D48s_v4,on_demand,NA,2.832,USD,Azure Retail Prices API,2025-12-18T04:46:43.820896 +AZURE,koreacentral,Standard_D48s_v4,reserved_1y,NA,1.646347,USD,Azure Retail Prices API,2025-12-18T04:46:45.251566 +AZURE,koreacentral,Standard_D48s_v4,reserved_3y,NA,1.06484,USD,Azure Retail Prices API,2025-12-18T04:46:45.251570 +AZURE,koreacentral,Standard_D48s_v4,spot,NA,0.523354,USD,Azure Retail Prices API,2025-12-18T04:46:43.822073 +AZURE,koreacentral,Standard_D48s_v5,on_demand,NA,2.832,USD,Azure Retail Prices API,2025-12-18T04:46:43.821590 +AZURE,koreacentral,Standard_D48s_v5,reserved_1y,NA,1.67089,USD,Azure Retail Prices API,2025-12-18T04:46:45.251990 +AZURE,koreacentral,Standard_D48s_v5,reserved_3y,NA,1.047831,USD,Azure Retail Prices API,2025-12-18T04:46:45.251993 +AZURE,koreacentral,Standard_D48s_v5,spot,NA,0.523354,USD,Azure Retail Prices API,2025-12-18T04:46:43.821738 +AZURE,koreacentral,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486588 +AZURE,koreacentral,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486601 +AZURE,koreacentral,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486607 +AZURE,koreacentral,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486595 +AZURE,koreacentral,Standard_D4a_v4,on_demand,NA,0.236,USD,Azure Retail Prices API,2025-12-18T04:46:43.821299 +AZURE,koreacentral,Standard_D4a_v4,reserved_1y,NA,0.136872,USD,Azure Retail Prices API,2025-12-18T04:46:45.251844 +AZURE,koreacentral,Standard_D4a_v4,reserved_3y,NA,0.088737,USD,Azure Retail Prices API,2025-12-18T04:46:45.251847 +AZURE,koreacentral,Standard_D4a_v4,spot,NA,0.043613,USD,Azure Retail Prices API,2025-12-18T04:46:43.821266 +AZURE,koreacentral,Standard_D4ads_v5,on_demand,NA,0.438,USD,Azure Retail Prices API,2025-12-18T04:46:43.820838 +AZURE,koreacentral,Standard_D4ads_v5,reserved_1y,NA,0.149886,USD,Azure Retail Prices API,2025-12-18T04:46:45.252815 +AZURE,koreacentral,Standard_D4ads_v5,reserved_3y,NA,0.096537,USD,Azure Retail Prices API,2025-12-18T04:46:45.252817 +AZURE,koreacentral,Standard_D4ads_v5,spot,NA,0.046939,USD,Azure Retail Prices API,2025-12-18T04:46:43.821665 +AZURE,koreacentral,Standard_D4ads_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:46:43.822729 +AZURE,koreacentral,Standard_D4ads_v6,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:46:45.252538 +AZURE,koreacentral,Standard_D4ads_v6,reserved_3y,NA,0.106849,USD,Azure Retail Prices API,2025-12-18T04:46:45.252541 +AZURE,koreacentral,Standard_D4ads_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:46:43.822143 +AZURE,koreacentral,Standard_D4as_v5,on_demand,NA,0.212,USD,Azure Retail Prices API,2025-12-18T04:46:43.820864 +AZURE,koreacentral,Standard_D4as_v5,reserved_1y,NA,0.125114,USD,Azure Retail Prices API,2025-12-18T04:46:45.251542 +AZURE,koreacentral,Standard_D4as_v5,reserved_3y,NA,0.080556,USD,Azure Retail Prices API,2025-12-18T04:46:45.251545 +AZURE,koreacentral,Standard_D4as_v5,spot,NA,0.039178,USD,Azure Retail Prices API,2025-12-18T04:46:43.822407 +AZURE,koreacentral,Standard_D4d_v4,on_demand,NA,0.278,USD,Azure Retail Prices API,2025-12-18T04:46:43.821601 +AZURE,koreacentral,Standard_D4d_v4,reserved_1y,NA,0.161872,USD,Azure Retail Prices API,2025-12-18T04:46:45.252002 +AZURE,koreacentral,Standard_D4d_v4,reserved_3y,NA,0.104528,USD,Azure Retail Prices API,2025-12-18T04:46:45.252004 +AZURE,koreacentral,Standard_D4d_v4,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:46:43.822884 +AZURE,koreacentral,Standard_D4ds_v4,on_demand,NA,0.278,USD,Azure Retail Prices API,2025-12-18T04:46:43.820998 +AZURE,koreacentral,Standard_D4ds_v4,reserved_1y,NA,0.161872,USD,Azure Retail Prices API,2025-12-18T04:46:45.251664 +AZURE,koreacentral,Standard_D4ds_v4,reserved_3y,NA,0.104528,USD,Azure Retail Prices API,2025-12-18T04:46:45.251667 +AZURE,koreacentral,Standard_D4ds_v4,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:46:43.822422 +AZURE,koreacentral,Standard_D4ds_v5,on_demand,NA,0.278,USD,Azure Retail Prices API,2025-12-18T04:46:43.823502 +AZURE,koreacentral,Standard_D4ds_v5,reserved_1y,NA,0.164041,USD,Azure Retail Prices API,2025-12-18T04:46:45.252945 +AZURE,koreacentral,Standard_D4ds_v5,reserved_3y,NA,0.105632,USD,Azure Retail Prices API,2025-12-18T04:46:45.252948 +AZURE,koreacentral,Standard_D4ds_v5,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:46:43.823399 +AZURE,koreacentral,Standard_D4ds_v6,on_demand,NA,0.306,USD,Azure Retail Prices API,2025-12-18T04:46:43.822078 +AZURE,koreacentral,Standard_D4ds_v6,reserved_1y,NA,0.18984,USD,Azure Retail Prices API,2025-12-18T04:46:45.252213 +AZURE,koreacentral,Standard_D4ds_v6,reserved_3y,NA,0.119444,USD,Azure Retail Prices API,2025-12-18T04:46:45.252216 +AZURE,koreacentral,Standard_D4ds_v6,spot,NA,0.056549,USD,Azure Retail Prices API,2025-12-18T04:46:43.822247 +AZURE,koreacentral,Standard_D4pds_v6,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:43.823627 +AZURE,koreacentral,Standard_D4pds_v6,reserved_1y,NA,0.141324,USD,Azure Retail Prices API,2025-12-18T04:46:45.253025 +AZURE,koreacentral,Standard_D4pds_v6,reserved_3y,NA,0.091058,USD,Azure Retail Prices API,2025-12-18T04:46:45.253029 +AZURE,koreacentral,Standard_D4pds_v6,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:43.821142 +AZURE,koreacentral,Standard_D4ps_v6,on_demand,NA,0.183,USD,Azure Retail Prices API,2025-12-18T04:46:43.822137 +AZURE,koreacentral,Standard_D4ps_v6,reserved_1y,NA,0.107877,USD,Azure Retail Prices API,2025-12-18T04:46:45.252230 +AZURE,koreacentral,Standard_D4ps_v6,reserved_3y,NA,0.069482,USD,Azure Retail Prices API,2025-12-18T04:46:45.252232 +AZURE,koreacentral,Standard_D4ps_v6,spot,NA,0.033818,USD,Azure Retail Prices API,2025-12-18T04:46:43.821880 +AZURE,koreacentral,Standard_D4s_v3,on_demand,NA,0.246,USD,Azure Retail Prices API,2025-12-18T04:46:43.821408 +AZURE,koreacentral,Standard_D4s_v3,reserved_1y,NA,0.137215,USD,Azure Retail Prices API,2025-12-18T04:46:45.251888 +AZURE,koreacentral,Standard_D4s_v3,reserved_3y,NA,0.093988,USD,Azure Retail Prices API,2025-12-18T04:46:45.251891 +AZURE,koreacentral,Standard_D4s_v3,spot,NA,0.045461,USD,Azure Retail Prices API,2025-12-18T04:46:43.822789 +AZURE,koreacentral,Standard_D4s_v4,on_demand,NA,0.236,USD,Azure Retail Prices API,2025-12-18T04:46:43.821563 +AZURE,koreacentral,Standard_D4s_v4,reserved_1y,NA,0.137215,USD,Azure Retail Prices API,2025-12-18T04:46:45.251978 +AZURE,koreacentral,Standard_D4s_v4,reserved_3y,NA,0.088737,USD,Azure Retail Prices API,2025-12-18T04:46:45.251981 +AZURE,koreacentral,Standard_D4s_v4,spot,NA,0.043613,USD,Azure Retail Prices API,2025-12-18T04:46:43.822712 +AZURE,koreacentral,Standard_D4s_v5,on_demand,NA,0.236,USD,Azure Retail Prices API,2025-12-18T04:46:43.823469 +AZURE,koreacentral,Standard_D4s_v5,reserved_1y,NA,0.139269,USD,Azure Retail Prices API,2025-12-18T04:46:45.252923 +AZURE,koreacentral,Standard_D4s_v5,reserved_3y,NA,0.087329,USD,Azure Retail Prices API,2025-12-18T04:46:45.252926 +AZURE,koreacentral,Standard_D4s_v5,spot,NA,0.043613,USD,Azure Retail Prices API,2025-12-18T04:46:43.823313 +AZURE,koreacentral,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487864 +AZURE,koreacentral,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487872 +AZURE,koreacentral,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487876 +AZURE,koreacentral,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487868 +AZURE,koreacentral,Standard_D64_v3,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:46:43.823617 +AZURE,koreacentral,Standard_D64_v3,reserved_1y,NA,2.195434,USD,Azure Retail Prices API,2025-12-18T04:46:45.253001 +AZURE,koreacentral,Standard_D64_v3,reserved_3y,NA,1.503957,USD,Azure Retail Prices API,2025-12-18T04:46:45.253004 +AZURE,koreacentral,Standard_D64_v3,spot,NA,0.727373,USD,Azure Retail Prices API,2025-12-18T04:46:43.822827 +AZURE,koreacentral,Standard_D64a_v4,on_demand,NA,3.776,USD,Azure Retail Prices API,2025-12-18T04:46:43.821033 +AZURE,koreacentral,Standard_D64a_v4,reserved_1y,NA,2.190183,USD,Azure Retail Prices API,2025-12-18T04:46:45.251688 +AZURE,koreacentral,Standard_D64a_v4,reserved_3y,NA,1.419787,USD,Azure Retail Prices API,2025-12-18T04:46:45.251691 +AZURE,koreacentral,Standard_D64a_v4,spot,NA,0.697805,USD,Azure Retail Prices API,2025-12-18T04:46:43.823282 +AZURE,koreacentral,Standard_D64ads_v5,on_demand,NA,7.008,USD,Azure Retail Prices API,2025-12-18T04:46:43.820843 +AZURE,koreacentral,Standard_D64ads_v5,reserved_1y,NA,2.397717,USD,Azure Retail Prices API,2025-12-18T04:46:45.252973 +AZURE,koreacentral,Standard_D64ads_v5,reserved_3y,NA,1.54433,USD,Azure Retail Prices API,2025-12-18T04:46:45.252976 +AZURE,koreacentral,Standard_D64ads_v5,spot,NA,0.751027,USD,Azure Retail Prices API,2025-12-18T04:46:43.822281 +AZURE,koreacentral,Standard_D64ads_v6,on_demand,NA,4.499,USD,Azure Retail Prices API,2025-12-18T04:46:43.823410 +AZURE,koreacentral,Standard_D64ads_v6,reserved_1y,NA,2.654566,USD,Azure Retail Prices API,2025-12-18T04:46:45.252886 +AZURE,koreacentral,Standard_D64ads_v6,reserved_3y,NA,1.709703,USD,Azure Retail Prices API,2025-12-18T04:46:45.252889 +AZURE,koreacentral,Standard_D64ads_v6,spot,NA,0.831415,USD,Azure Retail Prices API,2025-12-18T04:46:43.823351 +AZURE,koreacentral,Standard_D64as_v4,on_demand,NA,3.776,USD,Azure Retail Prices API,2025-12-18T04:46:43.822573 +AZURE,koreacentral,Standard_D64as_v4,reserved_1y,NA,2.190183,USD,Azure Retail Prices API,2025-12-18T04:46:45.252438 +AZURE,koreacentral,Standard_D64as_v4,reserved_3y,NA,1.419787,USD,Azure Retail Prices API,2025-12-18T04:46:45.252441 +AZURE,koreacentral,Standard_D64as_v4,spot,NA,0.697805,USD,Azure Retail Prices API,2025-12-18T04:46:43.822057 +AZURE,koreacentral,Standard_D64as_v5,on_demand,NA,3.392,USD,Azure Retail Prices API,2025-12-18T04:46:43.821467 +AZURE,koreacentral,Standard_D64as_v5,reserved_1y,NA,2.001256,USD,Azure Retail Prices API,2025-12-18T04:46:45.251921 +AZURE,koreacentral,Standard_D64as_v5,reserved_3y,NA,1.288965,USD,Azure Retail Prices API,2025-12-18T04:46:45.251924 +AZURE,koreacentral,Standard_D64as_v5,spot,NA,0.626842,USD,Azure Retail Prices API,2025-12-18T04:46:43.821691 +AZURE,koreacentral,Standard_D64d_v4,on_demand,NA,4.448,USD,Azure Retail Prices API,2025-12-18T04:46:43.822302 +AZURE,koreacentral,Standard_D64d_v4,reserved_1y,NA,2.589155,USD,Azure Retail Prices API,2025-12-18T04:46:45.252295 +AZURE,koreacentral,Standard_D64d_v4,reserved_3y,NA,1.672451,USD,Azure Retail Prices API,2025-12-18T04:46:45.252299 +AZURE,koreacentral,Standard_D64d_v4,spot,NA,0.82199,USD,Azure Retail Prices API,2025-12-18T04:46:43.821365 +AZURE,koreacentral,Standard_D64ds_v4,on_demand,NA,4.448,USD,Azure Retail Prices API,2025-12-18T04:46:43.823462 +AZURE,koreacentral,Standard_D64ds_v4,reserved_1y,NA,2.589155,USD,Azure Retail Prices API,2025-12-18T04:46:45.252918 +AZURE,koreacentral,Standard_D64ds_v4,reserved_3y,NA,1.672451,USD,Azure Retail Prices API,2025-12-18T04:46:45.252921 +AZURE,koreacentral,Standard_D64ds_v4,spot,NA,0.82199,USD,Azure Retail Prices API,2025-12-18T04:46:43.823248 +AZURE,koreacentral,Standard_D64ds_v5,on_demand,NA,4.448,USD,Azure Retail Prices API,2025-12-18T04:46:43.822584 +AZURE,koreacentral,Standard_D64ds_v5,reserved_1y,NA,2.624315,USD,Azure Retail Prices API,2025-12-18T04:46:45.252451 +AZURE,koreacentral,Standard_D64ds_v5,reserved_3y,NA,1.690259,USD,Azure Retail Prices API,2025-12-18T04:46:45.252454 +AZURE,koreacentral,Standard_D64ds_v5,spot,NA,0.82199,USD,Azure Retail Prices API,2025-12-18T04:46:43.822116 +AZURE,koreacentral,Standard_D64ds_v6,on_demand,NA,4.9,USD,Azure Retail Prices API,2025-12-18T04:46:43.821054 +AZURE,koreacentral,Standard_D64ds_v6,reserved_1y,NA,3.038242,USD,Azure Retail Prices API,2025-12-18T04:46:45.251706 +AZURE,koreacentral,Standard_D64ds_v6,reserved_3y,NA,1.911187,USD,Azure Retail Prices API,2025-12-18T04:46:45.251710 +AZURE,koreacentral,Standard_D64ds_v6,spot,NA,0.90552,USD,Azure Retail Prices API,2025-12-18T04:46:43.822645 +AZURE,koreacentral,Standard_D64pds_v6,on_demand,NA,3.834,USD,Azure Retail Prices API,2025-12-18T04:46:43.821681 +AZURE,koreacentral,Standard_D64pds_v6,reserved_1y,NA,2.261872,USD,Azure Retail Prices API,2025-12-18T04:46:45.252054 +AZURE,koreacentral,Standard_D64pds_v6,reserved_3y,NA,1.456773,USD,Azure Retail Prices API,2025-12-18T04:46:45.252057 +AZURE,koreacentral,Standard_D64pds_v6,spot,NA,0.708523,USD,Azure Retail Prices API,2025-12-18T04:46:43.822855 +AZURE,koreacentral,Standard_D64ps_v6,on_demand,NA,2.925,USD,Azure Retail Prices API,2025-12-18T04:46:43.821028 +AZURE,koreacentral,Standard_D64ps_v6,reserved_1y,NA,1.725685,USD,Azure Retail Prices API,2025-12-18T04:46:45.251682 +AZURE,koreacentral,Standard_D64ps_v6,reserved_3y,NA,1.111416,USD,Azure Retail Prices API,2025-12-18T04:46:45.251685 +AZURE,koreacentral,Standard_D64ps_v6,spot,NA,0.54054,USD,Azure Retail Prices API,2025-12-18T04:46:43.823331 +AZURE,koreacentral,Standard_D64s_v3,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:46:43.821137 +AZURE,koreacentral,Standard_D64s_v3,reserved_1y,NA,2.195434,USD,Azure Retail Prices API,2025-12-18T04:46:45.251767 +AZURE,koreacentral,Standard_D64s_v3,reserved_3y,NA,1.503957,USD,Azure Retail Prices API,2025-12-18T04:46:45.251770 +AZURE,koreacentral,Standard_D64s_v3,spot,NA,0.727373,USD,Azure Retail Prices API,2025-12-18T04:46:43.820821 +AZURE,koreacentral,Standard_D64s_v4,on_demand,NA,3.776,USD,Azure Retail Prices API,2025-12-18T04:46:43.822011 +AZURE,koreacentral,Standard_D64s_v4,reserved_1y,NA,2.195205,USD,Azure Retail Prices API,2025-12-18T04:46:45.252185 +AZURE,koreacentral,Standard_D64s_v4,reserved_3y,NA,1.419787,USD,Azure Retail Prices API,2025-12-18T04:46:45.252188 +AZURE,koreacentral,Standard_D64s_v4,spot,NA,0.697805,USD,Azure Retail Prices API,2025-12-18T04:46:43.821277 +AZURE,koreacentral,Standard_D64s_v5,on_demand,NA,3.776,USD,Azure Retail Prices API,2025-12-18T04:46:43.822928 +AZURE,koreacentral,Standard_D64s_v5,reserved_1y,NA,2.227854,USD,Azure Retail Prices API,2025-12-18T04:46:45.252616 +AZURE,koreacentral,Standard_D64s_v5,reserved_3y,NA,1.397108,USD,Azure Retail Prices API,2025-12-18T04:46:45.252619 +AZURE,koreacentral,Standard_D64s_v5,spot,NA,0.697805,USD,Azure Retail Prices API,2025-12-18T04:46:43.823243 +AZURE,koreacentral,Standard_D8_v3,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:46:43.822539 +AZURE,koreacentral,Standard_D8_v3,reserved_1y,NA,0.274429,USD,Azure Retail Prices API,2025-12-18T04:46:45.252416 +AZURE,koreacentral,Standard_D8_v3,reserved_3y,NA,0.188014,USD,Azure Retail Prices API,2025-12-18T04:46:45.252418 +AZURE,koreacentral,Standard_D8_v3,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:46:43.820869 +AZURE,koreacentral,Standard_D8a_v4,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:46:43.820880 +AZURE,koreacentral,Standard_D8a_v4,reserved_1y,NA,0.273744,USD,Azure Retail Prices API,2025-12-18T04:46:45.251554 +AZURE,koreacentral,Standard_D8a_v4,reserved_3y,NA,0.177473,USD,Azure Retail Prices API,2025-12-18T04:46:45.251557 +AZURE,koreacentral,Standard_D8a_v4,spot,NA,0.087226,USD,Azure Retail Prices API,2025-12-18T04:46:43.821634 +AZURE,koreacentral,Standard_D8ads_v5,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:43.823451 +AZURE,koreacentral,Standard_D8ads_v5,reserved_1y,NA,0.299772,USD,Azure Retail Prices API,2025-12-18T04:46:45.252907 +AZURE,koreacentral,Standard_D8ads_v5,reserved_3y,NA,0.193037,USD,Azure Retail Prices API,2025-12-18T04:46:45.252910 +AZURE,koreacentral,Standard_D8ads_v5,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:43.821501 +AZURE,koreacentral,Standard_D8ads_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:46:43.821018 +AZURE,koreacentral,Standard_D8ads_v6,reserved_1y,NA,0.331849,USD,Azure Retail Prices API,2025-12-18T04:46:45.251676 +AZURE,koreacentral,Standard_D8ads_v6,reserved_3y,NA,0.213699,USD,Azure Retail Prices API,2025-12-18T04:46:45.251679 +AZURE,koreacentral,Standard_D8ads_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:46:43.822412 +AZURE,koreacentral,Standard_D8as_v4,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:46:43.820930 +AZURE,koreacentral,Standard_D8as_v4,reserved_1y,NA,0.273744,USD,Azure Retail Prices API,2025-12-18T04:46:45.251591 +AZURE,koreacentral,Standard_D8as_v4,reserved_3y,NA,0.177473,USD,Azure Retail Prices API,2025-12-18T04:46:45.251593 +AZURE,koreacentral,Standard_D8as_v4,spot,NA,0.087226,USD,Azure Retail Prices API,2025-12-18T04:46:43.823131 +AZURE,koreacentral,Standard_D8as_v5,on_demand,NA,0.424,USD,Azure Retail Prices API,2025-12-18T04:46:43.821942 +AZURE,koreacentral,Standard_D8as_v5,reserved_1y,NA,0.250114,USD,Azure Retail Prices API,2025-12-18T04:46:45.252162 +AZURE,koreacentral,Standard_D8as_v5,reserved_3y,NA,0.161111,USD,Azure Retail Prices API,2025-12-18T04:46:45.252165 +AZURE,koreacentral,Standard_D8as_v5,spot,NA,0.078355,USD,Azure Retail Prices API,2025-12-18T04:46:43.823527 +AZURE,koreacentral,Standard_D8d_v4,on_demand,NA,0.556,USD,Azure Retail Prices API,2025-12-18T04:46:43.822850 +AZURE,koreacentral,Standard_D8d_v4,reserved_1y,NA,0.32363,USD,Azure Retail Prices API,2025-12-18T04:46:45.252595 +AZURE,koreacentral,Standard_D8d_v4,reserved_3y,NA,0.209056,USD,Azure Retail Prices API,2025-12-18T04:46:45.252597 +AZURE,koreacentral,Standard_D8d_v4,spot,NA,0.102749,USD,Azure Retail Prices API,2025-12-18T04:46:43.823207 +AZURE,koreacentral,Standard_D8ds_v4,on_demand,NA,0.556,USD,Azure Retail Prices API,2025-12-18T04:46:43.821579 +AZURE,koreacentral,Standard_D8ds_v4,reserved_1y,NA,0.32363,USD,Azure Retail Prices API,2025-12-18T04:46:45.251984 +AZURE,koreacentral,Standard_D8ds_v4,reserved_3y,NA,0.209056,USD,Azure Retail Prices API,2025-12-18T04:46:45.251987 +AZURE,koreacentral,Standard_D8ds_v4,spot,NA,0.102749,USD,Azure Retail Prices API,2025-12-18T04:46:43.821107 +AZURE,koreacentral,Standard_D8ds_v5,on_demand,NA,0.556,USD,Azure Retail Prices API,2025-12-18T04:46:43.822567 +AZURE,koreacentral,Standard_D8ds_v5,reserved_1y,NA,0.328082,USD,Azure Retail Prices API,2025-12-18T04:46:45.252432 +AZURE,koreacentral,Standard_D8ds_v5,reserved_3y,NA,0.211263,USD,Azure Retail Prices API,2025-12-18T04:46:45.252435 +AZURE,koreacentral,Standard_D8ds_v5,spot,NA,0.102749,USD,Azure Retail Prices API,2025-12-18T04:46:43.820924 +AZURE,koreacentral,Standard_D8ds_v6,on_demand,NA,0.613,USD,Azure Retail Prices API,2025-12-18T04:46:43.822889 +AZURE,koreacentral,Standard_D8ds_v6,reserved_1y,NA,0.379795,USD,Azure Retail Prices API,2025-12-18T04:46:45.252605 +AZURE,koreacentral,Standard_D8ds_v6,reserved_3y,NA,0.238889,USD,Azure Retail Prices API,2025-12-18T04:46:45.252608 +AZURE,koreacentral,Standard_D8ds_v6,spot,NA,0.113282,USD,Azure Retail Prices API,2025-12-18T04:46:43.822562 +AZURE,koreacentral,Standard_D8pds_v6,on_demand,NA,0.479,USD,Azure Retail Prices API,2025-12-18T04:46:43.823171 +AZURE,koreacentral,Standard_D8pds_v6,reserved_1y,NA,0.282763,USD,Azure Retail Prices API,2025-12-18T04:46:45.252745 +AZURE,koreacentral,Standard_D8pds_v6,reserved_3y,NA,0.182078,USD,Azure Retail Prices API,2025-12-18T04:46:45.252748 +AZURE,koreacentral,Standard_D8pds_v6,spot,NA,0.088519,USD,Azure Retail Prices API,2025-12-18T04:46:43.823696 +AZURE,koreacentral,Standard_D8ps_v6,on_demand,NA,0.366,USD,Azure Retail Prices API,2025-12-18T04:46:43.822482 +AZURE,koreacentral,Standard_D8ps_v6,reserved_1y,NA,0.215753,USD,Azure Retail Prices API,2025-12-18T04:46:45.252386 +AZURE,koreacentral,Standard_D8ps_v6,reserved_3y,NA,0.138927,USD,Azure Retail Prices API,2025-12-18T04:46:45.252389 +AZURE,koreacentral,Standard_D8ps_v6,spot,NA,0.067637,USD,Azure Retail Prices API,2025-12-18T04:46:43.821080 +AZURE,koreacentral,Standard_D8s_v3,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:46:43.822472 +AZURE,koreacentral,Standard_D8s_v3,reserved_1y,NA,0.274429,USD,Azure Retail Prices API,2025-12-18T04:46:45.252375 +AZURE,koreacentral,Standard_D8s_v3,reserved_3y,NA,0.188014,USD,Azure Retail Prices API,2025-12-18T04:46:45.252378 +AZURE,koreacentral,Standard_D8s_v3,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:46:43.822956 +AZURE,koreacentral,Standard_D8s_v4,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:46:43.822578 +AZURE,koreacentral,Standard_D8s_v4,reserved_1y,NA,0.274429,USD,Azure Retail Prices API,2025-12-18T04:46:45.252444 +AZURE,koreacentral,Standard_D8s_v4,reserved_3y,NA,0.177473,USD,Azure Retail Prices API,2025-12-18T04:46:45.252447 +AZURE,koreacentral,Standard_D8s_v4,spot,NA,0.087226,USD,Azure Retail Prices API,2025-12-18T04:46:43.821261 +AZURE,koreacentral,Standard_D8s_v5,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:46:43.822241 +AZURE,koreacentral,Standard_D8s_v5,reserved_1y,NA,0.278425,USD,Azure Retail Prices API,2025-12-18T04:46:45.252278 +AZURE,koreacentral,Standard_D8s_v5,reserved_3y,NA,0.174658,USD,Azure Retail Prices API,2025-12-18T04:46:45.252281 +AZURE,koreacentral,Standard_D8s_v5,spot,NA,0.087226,USD,Azure Retail Prices API,2025-12-18T04:46:43.821984 +AZURE,koreacentral,Standard_D96a_v4,on_demand,NA,5.664,USD,Azure Retail Prices API,2025-12-18T04:46:43.821445 +AZURE,koreacentral,Standard_D96a_v4,reserved_1y,NA,3.28516,USD,Azure Retail Prices API,2025-12-18T04:46:45.251910 +AZURE,koreacentral,Standard_D96a_v4,reserved_3y,NA,2.12968,USD,Azure Retail Prices API,2025-12-18T04:46:45.251913 +AZURE,koreacentral,Standard_D96a_v4,spot,NA,1.046707,USD,Azure Retail Prices API,2025-12-18T04:46:43.821535 +AZURE,koreacentral,Standard_D96ads_v5,on_demand,NA,10.512,USD,Azure Retail Prices API,2025-12-18T04:46:43.822973 +AZURE,koreacentral,Standard_D96ads_v5,reserved_1y,NA,3.596689,USD,Azure Retail Prices API,2025-12-18T04:46:45.252853 +AZURE,koreacentral,Standard_D96ads_v5,reserved_3y,NA,2.316476,USD,Azure Retail Prices API,2025-12-18T04:46:45.252856 +AZURE,koreacentral,Standard_D96ads_v5,spot,NA,1.126541,USD,Azure Retail Prices API,2025-12-18T04:46:43.822286 +AZURE,koreacentral,Standard_D96ads_v6,on_demand,NA,6.749,USD,Azure Retail Prices API,2025-12-18T04:46:43.822734 +AZURE,koreacentral,Standard_D96ads_v6,reserved_1y,NA,3.981735,USD,Azure Retail Prices API,2025-12-18T04:46:45.252544 +AZURE,koreacentral,Standard_D96ads_v6,reserved_3y,NA,2.564536,USD,Azure Retail Prices API,2025-12-18T04:46:45.252547 +AZURE,koreacentral,Standard_D96ads_v6,spot,NA,1.247215,USD,Azure Retail Prices API,2025-12-18T04:46:43.822052 +AZURE,koreacentral,Standard_D96as_v4,on_demand,NA,5.664,USD,Azure Retail Prices API,2025-12-18T04:46:43.822297 +AZURE,koreacentral,Standard_D96as_v4,reserved_1y,NA,3.28516,USD,Azure Retail Prices API,2025-12-18T04:46:45.252290 +AZURE,koreacentral,Standard_D96as_v4,reserved_3y,NA,2.12968,USD,Azure Retail Prices API,2025-12-18T04:46:45.252292 +AZURE,koreacentral,Standard_D96as_v4,spot,NA,1.046707,USD,Azure Retail Prices API,2025-12-18T04:46:43.821233 +AZURE,koreacentral,Standard_D96as_v5,on_demand,NA,9.504,USD,Azure Retail Prices API,2025-12-18T04:46:43.821963 +AZURE,koreacentral,Standard_D96as_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:45.252831 +AZURE,koreacentral,Standard_D96as_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:45.252833 +AZURE,koreacentral,Standard_D96as_v5,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:43.821472 +AZURE,koreacentral,Standard_D96ds_v5,on_demand,NA,6.672,USD,Azure Retail Prices API,2025-12-18T04:46:43.822685 +AZURE,koreacentral,Standard_D96ds_v5,reserved_1y,NA,3.93653,USD,Azure Retail Prices API,2025-12-18T04:46:45.252510 +AZURE,koreacentral,Standard_D96ds_v5,reserved_3y,NA,2.53535,USD,Azure Retail Prices API,2025-12-18T04:46:45.252513 +AZURE,koreacentral,Standard_D96ds_v5,spot,NA,1.232986,USD,Azure Retail Prices API,2025-12-18T04:46:43.822516 +AZURE,koreacentral,Standard_D96ds_v6,on_demand,NA,7.351,USD,Azure Retail Prices API,2025-12-18T04:46:43.821612 +AZURE,koreacentral,Standard_D96ds_v6,reserved_1y,NA,4.55742,USD,Azure Retail Prices API,2025-12-18T04:46:45.252013 +AZURE,koreacentral,Standard_D96ds_v6,reserved_3y,NA,2.866781,USD,Azure Retail Prices API,2025-12-18T04:46:45.252016 +AZURE,koreacentral,Standard_D96ds_v6,spot,NA,1.358465,USD,Azure Retail Prices API,2025-12-18T04:46:43.823641 +AZURE,koreacentral,Standard_D96pds_v6,on_demand,NA,5.75,USD,Azure Retail Prices API,2025-12-18T04:46:43.823336 +AZURE,koreacentral,Standard_D96pds_v6,reserved_1y,NA,3.392694,USD,Azure Retail Prices API,2025-12-18T04:46:45.252842 +AZURE,koreacentral,Standard_D96pds_v6,reserved_3y,NA,2.18516,USD,Azure Retail Prices API,2025-12-18T04:46:45.252845 +AZURE,koreacentral,Standard_D96pds_v6,spot,NA,1.0626,USD,Azure Retail Prices API,2025-12-18T04:46:43.823387 +AZURE,koreacentral,Standard_D96ps_v6,on_demand,NA,4.387,USD,Azure Retail Prices API,2025-12-18T04:46:43.820935 +AZURE,koreacentral,Standard_D96ps_v6,reserved_1y,NA,2.58847,USD,Azure Retail Prices API,2025-12-18T04:46:45.251596 +AZURE,koreacentral,Standard_D96ps_v6,reserved_3y,NA,1.667123,USD,Azure Retail Prices API,2025-12-18T04:46:45.251599 +AZURE,koreacentral,Standard_D96ps_v6,spot,NA,0.810718,USD,Azure Retail Prices API,2025-12-18T04:46:43.822679 +AZURE,koreacentral,Standard_D96s_v5,on_demand,NA,5.664,USD,Azure Retail Prices API,2025-12-18T04:46:43.823673 +AZURE,koreacentral,Standard_D96s_v5,reserved_1y,NA,3.341781,USD,Azure Retail Prices API,2025-12-18T04:46:45.253065 +AZURE,koreacentral,Standard_D96s_v5,reserved_3y,NA,2.095662,USD,Azure Retail Prices API,2025-12-18T04:46:45.253068 +AZURE,koreacentral,Standard_D96s_v5,spot,NA,1.046707,USD,Azure Retail Prices API,2025-12-18T04:46:43.821255 +AZURE,koreacentral,Standard_DC16ads_v6,on_demand,NA,1.125,USD,Azure Retail Prices API,2025-12-18T04:46:43.823287 +AZURE,koreacentral,Standard_DC16ads_v6,reserved_1y,NA,0.663584,USD,Azure Retail Prices API,2025-12-18T04:46:45.252820 +AZURE,koreacentral,Standard_DC16ads_v6,reserved_3y,NA,0.427435,USD,Azure Retail Prices API,2025-12-18T04:46:45.252823 +AZURE,koreacentral,Standard_DC16ads_v6,spot,NA,0.2079,USD,Azure Retail Prices API,2025-12-18T04:46:43.822674 +AZURE,koreacentral,Standard_DC2ads_v6,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:46:43.822047 +AZURE,koreacentral,Standard_DC2ads_v6,reserved_1y,NA,0.082991,USD,Azure Retail Prices API,2025-12-18T04:46:45.252207 +AZURE,koreacentral,Standard_DC2ads_v6,reserved_3y,NA,0.053425,USD,Azure Retail Prices API,2025-12-18T04:46:45.252210 +AZURE,koreacentral,Standard_DC2ads_v6,spot,NA,0.026057,USD,Azure Retail Prices API,2025-12-18T04:46:43.822844 +AZURE,koreacentral,Standard_DC32ads_v6,on_demand,NA,2.25,USD,Azure Retail Prices API,2025-12-18T04:46:43.823382 +AZURE,koreacentral,Standard_DC32ads_v6,reserved_1y,NA,1.327283,USD,Azure Retail Prices API,2025-12-18T04:46:45.252875 +AZURE,koreacentral,Standard_DC32ads_v6,reserved_3y,NA,0.854833,USD,Azure Retail Prices API,2025-12-18T04:46:45.252878 +AZURE,koreacentral,Standard_DC32ads_v6,spot,NA,0.4158,USD,Azure Retail Prices API,2025-12-18T04:46:43.821310 +AZURE,koreacentral,Standard_DC48ads_v6,on_demand,NA,3.374,USD,Azure Retail Prices API,2025-12-18T04:46:43.821086 +AZURE,koreacentral,Standard_DC48ads_v6,reserved_1y,NA,1.990868,USD,Azure Retail Prices API,2025-12-18T04:46:45.251730 +AZURE,koreacentral,Standard_DC48ads_v6,reserved_3y,NA,1.282268,USD,Azure Retail Prices API,2025-12-18T04:46:45.251733 +AZURE,koreacentral,Standard_DC48ads_v6,spot,NA,0.623515,USD,Azure Retail Prices API,2025-12-18T04:46:43.822351 +AZURE,koreacentral,Standard_DC4ads_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:46:43.823175 +AZURE,koreacentral,Standard_DC4ads_v6,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:46:45.252750 +AZURE,koreacentral,Standard_DC4ads_v6,reserved_3y,NA,0.106849,USD,Azure Retail Prices API,2025-12-18T04:46:45.252753 +AZURE,koreacentral,Standard_DC4ads_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:46:43.823567 +AZURE,koreacentral,Standard_DC64ads_v6,on_demand,NA,4.499,USD,Azure Retail Prices API,2025-12-18T04:46:43.823430 +AZURE,koreacentral,Standard_DC64ads_v6,reserved_1y,NA,2.654566,USD,Azure Retail Prices API,2025-12-18T04:46:45.252897 +AZURE,koreacentral,Standard_DC64ads_v6,reserved_3y,NA,1.709703,USD,Azure Retail Prices API,2025-12-18T04:46:45.252899 +AZURE,koreacentral,Standard_DC64ads_v6,spot,NA,0.831415,USD,Azure Retail Prices API,2025-12-18T04:46:43.821174 +AZURE,koreacentral,Standard_DC8ads_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:46:43.823276 +AZURE,koreacentral,Standard_DC8ads_v6,reserved_1y,NA,0.331849,USD,Azure Retail Prices API,2025-12-18T04:46:45.252809 +AZURE,koreacentral,Standard_DC8ads_v6,reserved_3y,NA,0.213699,USD,Azure Retail Prices API,2025-12-18T04:46:45.252812 +AZURE,koreacentral,Standard_DC8ads_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:46:43.821770 +AZURE,koreacentral,Standard_DC96ads_v6,on_demand,NA,6.749,USD,Azure Retail Prices API,2025-12-18T04:46:43.823192 +AZURE,koreacentral,Standard_DC96ads_v6,reserved_1y,NA,3.981735,USD,Azure Retail Prices API,2025-12-18T04:46:45.252761 +AZURE,koreacentral,Standard_DC96ads_v6,reserved_3y,NA,2.564536,USD,Azure Retail Prices API,2025-12-18T04:46:45.252764 +AZURE,koreacentral,Standard_DC96ads_v6,spot,NA,1.247215,USD,Azure Retail Prices API,2025-12-18T04:46:43.821947 +AZURE,koreacentral,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495631 +AZURE,koreacentral,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495639 +AZURE,koreacentral,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495643 +AZURE,koreacentral,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495635 +AZURE,koreacentral,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496531 +AZURE,koreacentral,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496540 +AZURE,koreacentral,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496545 +AZURE,koreacentral,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496535 +AZURE,koreacentral,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497384 +AZURE,koreacentral,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497400 +AZURE,koreacentral,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497404 +AZURE,koreacentral,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497393 +AZURE,koreacentral,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498158 +AZURE,koreacentral,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498166 +AZURE,koreacentral,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498172 +AZURE,koreacentral,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498162 +AZURE,koreacentral,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491990 +AZURE,koreacentral,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492002 +AZURE,koreacentral,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492009 +AZURE,koreacentral,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491995 +AZURE,koreacentral,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492713 +AZURE,koreacentral,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492721 +AZURE,koreacentral,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492725 +AZURE,koreacentral,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492717 +AZURE,koreacentral,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493447 +AZURE,koreacentral,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493456 +AZURE,koreacentral,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493460 +AZURE,koreacentral,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493451 +AZURE,koreacentral,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494160 +AZURE,koreacentral,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494168 +AZURE,koreacentral,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494172 +AZURE,koreacentral,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494164 +AZURE,koreacentral,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494870 +AZURE,koreacentral,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494880 +AZURE,koreacentral,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494884 +AZURE,koreacentral,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494876 +AZURE,koreacentral,Standard_E128ds_v6,on_demand,NA,12.625,USD,Azure Retail Prices API,2025-12-18T04:46:43.821125 +AZURE,koreacentral,Standard_E128ds_v6,reserved_1y,NA,7.827283,USD,Azure Retail Prices API,2025-12-18T04:46:45.251754 +AZURE,koreacentral,Standard_E128ds_v6,reserved_3y,NA,4.923592,USD,Azure Retail Prices API,2025-12-18T04:46:45.251757 +AZURE,koreacentral,Standard_E128ds_v6,spot,NA,2.3331,USD,Azure Retail Prices API,2025-12-18T04:46:43.823495 +AZURE,koreacentral,Standard_E16_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:46:43.822192 +AZURE,koreacentral,Standard_E16_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:45.252251 +AZURE,koreacentral,Standard_E16_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:45.252254 +AZURE,koreacentral,Standard_E16_v3,spot,NA,0.236544,USD,Azure Retail Prices API,2025-12-18T04:46:43.823686 +AZURE,koreacentral,Standard_E16a_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:43.822477 +AZURE,koreacentral,Standard_E16a_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:45.252381 +AZURE,koreacentral,Standard_E16a_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:45.252383 +AZURE,koreacentral,Standard_E16a_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:43.821911 +AZURE,koreacentral,Standard_E16ads_v5,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:46:43.823141 +AZURE,koreacentral,Standard_E16ads_v5,reserved_1y,NA,0.745776,USD,Azure Retail Prices API,2025-12-18T04:46:45.252728 +AZURE,koreacentral,Standard_E16ads_v5,reserved_3y,NA,0.480327,USD,Azure Retail Prices API,2025-12-18T04:46:45.252731 +AZURE,koreacentral,Standard_E16ads_v5,spot,NA,0.233587,USD,Azure Retail Prices API,2025-12-18T04:46:43.822613 +AZURE,koreacentral,Standard_E16ads_v6,on_demand,NA,1.43,USD,Azure Retail Prices API,2025-12-18T04:46:43.823346 +AZURE,koreacentral,Standard_E16ads_v6,reserved_1y,NA,0.84395,USD,Azure Retail Prices API,2025-12-18T04:46:45.252858 +AZURE,koreacentral,Standard_E16ads_v6,reserved_3y,NA,0.543569,USD,Azure Retail Prices API,2025-12-18T04:46:45.252861 +AZURE,koreacentral,Standard_E16ads_v6,spot,NA,0.264264,USD,Azure Retail Prices API,2025-12-18T04:46:43.823292 +AZURE,koreacentral,Standard_E16as_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:43.821596 +AZURE,koreacentral,Standard_E16as_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:45.251996 +AZURE,koreacentral,Standard_E16as_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:45.251999 +AZURE,koreacentral,Standard_E16as_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:43.822778 +AZURE,koreacentral,Standard_E16as_v5,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:46:43.820795 +AZURE,koreacentral,Standard_E16as_v5,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:46:45.251520 +AZURE,koreacentral,Standard_E16as_v5,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:46:45.251532 +AZURE,koreacentral,Standard_E16as_v5,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:46:43.822811 +AZURE,koreacentral,Standard_E16d_v4,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:46:43.821288 +AZURE,koreacentral,Standard_E16d_v4,reserved_1y,NA,0.812215,USD,Azure Retail Prices API,2025-12-18T04:46:45.251833 +AZURE,koreacentral,Standard_E16d_v4,reserved_3y,NA,0.520396,USD,Azure Retail Prices API,2025-12-18T04:46:45.251836 +AZURE,koreacentral,Standard_E16d_v4,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:46:43.821003 +AZURE,koreacentral,Standard_E16ds_v4,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:46:43.823583 +AZURE,koreacentral,Standard_E16ds_v4,reserved_1y,NA,0.812215,USD,Azure Retail Prices API,2025-12-18T04:46:45.252984 +AZURE,koreacentral,Standard_E16ds_v4,reserved_3y,NA,0.520396,USD,Azure Retail Prices API,2025-12-18T04:46:45.252987 +AZURE,koreacentral,Standard_E16ds_v4,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:46:43.821321 +AZURE,koreacentral,Standard_E16ds_v5,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:46:43.822624 +AZURE,koreacentral,Standard_E16ds_v5,reserved_1y,NA,0.816553,USD,Azure Retail Prices API,2025-12-18T04:46:45.252486 +AZURE,koreacentral,Standard_E16ds_v5,reserved_3y,NA,0.525913,USD,Azure Retail Prices API,2025-12-18T04:46:45.252489 +AZURE,koreacentral,Standard_E16ds_v5,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:46:43.823096 +AZURE,koreacentral,Standard_E16ds_v6,on_demand,NA,1.578,USD,Azure Retail Prices API,2025-12-18T04:46:43.820950 +AZURE,koreacentral,Standard_E16ds_v6,reserved_1y,NA,0.978425,USD,Azure Retail Prices API,2025-12-18T04:46:45.251614 +AZURE,koreacentral,Standard_E16ds_v6,reserved_3y,NA,0.615449,USD,Azure Retail Prices API,2025-12-18T04:46:45.251618 +AZURE,koreacentral,Standard_E16ds_v6,spot,NA,0.291614,USD,Azure Retail Prices API,2025-12-18T04:46:43.823572 +AZURE,koreacentral,Standard_E16pds_v6,on_demand,NA,1.219,USD,Azure Retail Prices API,2025-12-18T04:46:43.823341 +AZURE,koreacentral,Standard_E16pds_v6,reserved_1y,NA,0.719292,USD,Azure Retail Prices API,2025-12-18T04:46:45.252848 +AZURE,koreacentral,Standard_E16pds_v6,reserved_3y,NA,0.46328,USD,Azure Retail Prices API,2025-12-18T04:46:45.252850 +AZURE,koreacentral,Standard_E16pds_v6,spot,NA,0.225271,USD,Azure Retail Prices API,2025-12-18T04:46:43.822761 +AZURE,koreacentral,Standard_E16ps_v6,on_demand,NA,0.962,USD,Azure Retail Prices API,2025-12-18T04:46:43.821201 +AZURE,koreacentral,Standard_E16ps_v6,reserved_1y,NA,0.567352,USD,Azure Retail Prices API,2025-12-18T04:46:45.251805 +AZURE,koreacentral,Standard_E16ps_v6,reserved_3y,NA,0.365411,USD,Azure Retail Prices API,2025-12-18T04:46:45.251808 +AZURE,koreacentral,Standard_E16ps_v6,spot,NA,0.177778,USD,Azure Retail Prices API,2025-12-18T04:46:43.823551 +AZURE,koreacentral,Standard_E16s_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:46:43.823356 +AZURE,koreacentral,Standard_E16s_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:45.252864 +AZURE,koreacentral,Standard_E16s_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:45.252867 +AZURE,koreacentral,Standard_E16s_v3,spot,NA,0.236544,USD,Azure Retail Prices API,2025-12-18T04:46:43.822962 +AZURE,koreacentral,Standard_E16s_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:43.823622 +AZURE,koreacentral,Standard_E16s_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:45.253013 +AZURE,koreacentral,Standard_E16s_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:45.253018 +AZURE,koreacentral,Standard_E16s_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:43.821023 +AZURE,koreacentral,Standard_E16s_v5,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:43.823631 +AZURE,koreacentral,Standard_E16s_v5,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:45.253031 +AZURE,koreacentral,Standard_E16s_v5,reserved_3y,NA,0.449924,USD,Azure Retail Prices API,2025-12-18T04:46:45.253034 +AZURE,koreacentral,Standard_E16s_v5,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:43.823479 +AZURE,koreacentral,Standard_E20a_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:43.821791 +AZURE,koreacentral,Standard_E20a_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:45.252105 +AZURE,koreacentral,Standard_E20a_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:45.252107 +AZURE,koreacentral,Standard_E20a_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:43.822556 +AZURE,koreacentral,Standard_E20ads_v5,on_demand,NA,2.5,USD,Azure Retail Prices API,2025-12-18T04:46:43.821952 +AZURE,koreacentral,Standard_E20ads_v5,reserved_1y,NA,0.932192,USD,Azure Retail Prices API,2025-12-18T04:46:45.252480 +AZURE,koreacentral,Standard_E20ads_v5,reserved_3y,NA,0.600419,USD,Azure Retail Prices API,2025-12-18T04:46:45.252483 +AZURE,koreacentral,Standard_E20ads_v5,spot,NA,0.291984,USD,Azure Retail Prices API,2025-12-18T04:46:43.822433 +AZURE,koreacentral,Standard_E20ads_v6,on_demand,NA,1.788,USD,Azure Retail Prices API,2025-12-18T04:46:43.821623 +AZURE,koreacentral,Standard_E20ads_v6,reserved_1y,NA,1.054909,USD,Azure Retail Prices API,2025-12-18T04:46:45.252026 +AZURE,koreacentral,Standard_E20ads_v6,reserved_3y,NA,0.679452,USD,Azure Retail Prices API,2025-12-18T04:46:45.252028 +AZURE,koreacentral,Standard_E20ads_v6,spot,NA,0.330422,USD,Azure Retail Prices API,2025-12-18T04:46:43.821764 +AZURE,koreacentral,Standard_E20as_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:43.821932 +AZURE,koreacentral,Standard_E20as_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:45.252150 +AZURE,koreacentral,Standard_E20as_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:45.252153 +AZURE,koreacentral,Standard_E20as_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:43.822225 +AZURE,koreacentral,Standard_E20as_v5,on_demand,NA,1.36,USD,Azure Retail Prices API,2025-12-18T04:46:43.822629 +AZURE,koreacentral,Standard_E20as_v5,reserved_1y,NA,0.802397,USD,Azure Retail Prices API,2025-12-18T04:46:45.252492 +AZURE,koreacentral,Standard_E20as_v5,reserved_3y,NA,0.516819,USD,Azure Retail Prices API,2025-12-18T04:46:45.252495 +AZURE,koreacentral,Standard_E20as_v5,spot,NA,0.251328,USD,Azure Retail Prices API,2025-12-18T04:46:43.822313 +AZURE,koreacentral,Standard_E20d_v4,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:46:43.822036 +AZURE,koreacentral,Standard_E20d_v4,reserved_1y,NA,1.015411,USD,Azure Retail Prices API,2025-12-18T04:46:45.252201 +AZURE,koreacentral,Standard_E20d_v4,reserved_3y,NA,0.650495,USD,Azure Retail Prices API,2025-12-18T04:46:45.252204 +AZURE,koreacentral,Standard_E20d_v4,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:46:43.821973 +AZURE,koreacentral,Standard_E20ds_v4,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:46:43.822663 +AZURE,koreacentral,Standard_E20ds_v4,reserved_1y,NA,1.015411,USD,Azure Retail Prices API,2025-12-18T04:46:45.252498 +AZURE,koreacentral,Standard_E20ds_v4,reserved_3y,NA,0.650495,USD,Azure Retail Prices API,2025-12-18T04:46:45.252501 +AZURE,koreacentral,Standard_E20ds_v4,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:46:43.823318 +AZURE,koreacentral,Standard_E20ds_v5,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:46:43.821429 +AZURE,koreacentral,Standard_E20ds_v5,reserved_1y,NA,1.020662,USD,Azure Retail Prices API,2025-12-18T04:46:45.251899 +AZURE,koreacentral,Standard_E20ds_v5,reserved_3y,NA,0.657382,USD,Azure Retail Prices API,2025-12-18T04:46:45.251902 +AZURE,koreacentral,Standard_E20ds_v5,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:46:43.822499 +AZURE,koreacentral,Standard_E20ds_v6,on_demand,NA,1.973,USD,Azure Retail Prices API,2025-12-18T04:46:43.821490 +AZURE,koreacentral,Standard_E20ds_v6,reserved_1y,NA,1.223059,USD,Azure Retail Prices API,2025-12-18T04:46:45.251932 +AZURE,koreacentral,Standard_E20ds_v6,reserved_3y,NA,0.76933,USD,Azure Retail Prices API,2025-12-18T04:46:45.251934 +AZURE,koreacentral,Standard_E20ds_v6,spot,NA,0.36461,USD,Azure Retail Prices API,2025-12-18T04:46:43.822652 +AZURE,koreacentral,Standard_E20s_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:43.823256 +AZURE,koreacentral,Standard_E20s_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:45.252788 +AZURE,koreacentral,Standard_E20s_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:45.252791 +AZURE,koreacentral,Standard_E20s_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:43.822806 +AZURE,koreacentral,Standard_E20s_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:43.822545 +AZURE,koreacentral,Standard_E20s_v5,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:45.252421 +AZURE,koreacentral,Standard_E20s_v5,reserved_3y,NA,0.562405,USD,Azure Retail Prices API,2025-12-18T04:46:45.252424 +AZURE,koreacentral,Standard_E20s_v5,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:43.822264 +AZURE,koreacentral,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:46:43.821937 +AZURE,koreacentral,Standard_E2_v3,reserved_1y,NA,0.094064,USD,Azure Retail Prices API,2025-12-18T04:46:45.252156 +AZURE,koreacentral,Standard_E2_v3,reserved_3y,NA,0.06016,USD,Azure Retail Prices API,2025-12-18T04:46:45.252159 +AZURE,koreacentral,Standard_E2_v3,spot,NA,0.029568,USD,Azure Retail Prices API,2025-12-18T04:46:43.823187 +AZURE,koreacentral,Standard_E2ads_v6,on_demand,NA,0.179,USD,Azure Retail Prices API,2025-12-18T04:46:43.821185 +AZURE,koreacentral,Standard_E2ads_v6,reserved_1y,NA,0.105479,USD,Azure Retail Prices API,2025-12-18T04:46:45.251800 +AZURE,koreacentral,Standard_E2ads_v6,reserved_3y,NA,0.06796,USD,Azure Retail Prices API,2025-12-18T04:46:45.251802 +AZURE,koreacentral,Standard_E2ads_v6,spot,NA,0.033079,USD,Azure Retail Prices API,2025-12-18T04:46:43.821817 +AZURE,koreacentral,Standard_E2ds_v5,on_demand,NA,0.173,USD,Azure Retail Prices API,2025-12-18T04:46:43.822766 +AZURE,koreacentral,Standard_E2ds_v5,reserved_1y,NA,0.102055,USD,Azure Retail Prices API,2025-12-18T04:46:45.252561 +AZURE,koreacentral,Standard_E2ds_v5,reserved_3y,NA,0.065753,USD,Azure Retail Prices API,2025-12-18T04:46:45.252564 +AZURE,koreacentral,Standard_E2ds_v5,spot,NA,0.03197,USD,Azure Retail Prices API,2025-12-18T04:46:43.821670 +AZURE,koreacentral,Standard_E2ds_v6,on_demand,NA,0.197,USD,Azure Retail Prices API,2025-12-18T04:46:43.821628 +AZURE,koreacentral,Standard_E2ds_v6,reserved_1y,NA,0.12226,USD,Azure Retail Prices API,2025-12-18T04:46:45.252031 +AZURE,koreacentral,Standard_E2ds_v6,reserved_3y,NA,0.076941,USD,Azure Retail Prices API,2025-12-18T04:46:45.252034 +AZURE,koreacentral,Standard_E2ds_v6,spot,NA,0.036406,USD,Azure Retail Prices API,2025-12-18T04:46:43.821495 +AZURE,koreacentral,Standard_E2pds_v6,on_demand,NA,0.152,USD,Azure Retail Prices API,2025-12-18T04:46:43.821294 +AZURE,koreacentral,Standard_E2pds_v6,reserved_1y,NA,0.089954,USD,Azure Retail Prices API,2025-12-18T04:46:45.251839 +AZURE,koreacentral,Standard_E2pds_v6,reserved_3y,NA,0.057915,USD,Azure Retail Prices API,2025-12-18T04:46:45.251842 +AZURE,koreacentral,Standard_E2pds_v6,spot,NA,0.02809,USD,Azure Retail Prices API,2025-12-18T04:46:43.823377 +AZURE,koreacentral,Standard_E32_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:46:43.823636 +AZURE,koreacentral,Standard_E32_v3,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:46:45.253037 +AZURE,koreacentral,Standard_E32_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:45.253039 +AZURE,koreacentral,Standard_E32_v3,spot,NA,0.473088,USD,Azure Retail Prices API,2025-12-18T04:46:43.822968 +AZURE,koreacentral,Standard_E32a_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:43.821070 +AZURE,koreacentral,Standard_E32a_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:45.251718 +AZURE,koreacentral,Standard_E32a_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:45.251721 +AZURE,koreacentral,Standard_E32a_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:43.823116 +AZURE,koreacentral,Standard_E32ads_v5,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:43.821519 +AZURE,koreacentral,Standard_E32ads_v5,reserved_1y,NA,1.491553,USD,Azure Retail Prices API,2025-12-18T04:46:45.252929 +AZURE,koreacentral,Standard_E32ads_v5,reserved_3y,NA,0.960654,USD,Azure Retail Prices API,2025-12-18T04:46:45.252931 +AZURE,koreacentral,Standard_E32ads_v5,spot,NA,0.467174,USD,Azure Retail Prices API,2025-12-18T04:46:43.821754 +AZURE,koreacentral,Standard_E32ads_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:46:43.823456 +AZURE,koreacentral,Standard_E32ads_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:46:45.252913 +AZURE,koreacentral,Standard_E32ads_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:46:45.252915 +AZURE,koreacentral,Standard_E32ads_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:46:43.823081 +AZURE,koreacentral,Standard_E32as_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:43.822417 +AZURE,koreacentral,Standard_E32as_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:45.252363 +AZURE,koreacentral,Standard_E32as_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:45.252366 +AZURE,koreacentral,Standard_E32as_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:43.821397 +AZURE,koreacentral,Standard_E32as_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:43.822096 +AZURE,koreacentral,Standard_E32as_v5,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:46:45.253048 +AZURE,koreacentral,Standard_E32as_v5,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:46:45.253050 +AZURE,koreacentral,Standard_E32as_v5,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:46:43.821906 +AZURE,koreacentral,Standard_E32d_v4,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:46:43.821484 +AZURE,koreacentral,Standard_E32d_v4,reserved_1y,NA,1.624429,USD,Azure Retail Prices API,2025-12-18T04:46:45.251926 +AZURE,koreacentral,Standard_E32d_v4,reserved_3y,NA,1.040753,USD,Azure Retail Prices API,2025-12-18T04:46:45.251929 +AZURE,koreacentral,Standard_E32d_v4,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:46:43.821239 +AZURE,koreacentral,Standard_E32ds_v4,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:46:43.821065 +AZURE,koreacentral,Standard_E32ds_v4,reserved_1y,NA,1.624429,USD,Azure Retail Prices API,2025-12-18T04:46:45.251712 +AZURE,koreacentral,Standard_E32ds_v4,reserved_3y,NA,1.040753,USD,Azure Retail Prices API,2025-12-18T04:46:45.251715 +AZURE,koreacentral,Standard_E32ds_v4,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:46:43.821838 +AZURE,koreacentral,Standard_E32ds_v5,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:46:43.821541 +AZURE,koreacentral,Standard_E32ds_v5,reserved_1y,NA,1.633105,USD,Azure Retail Prices API,2025-12-18T04:46:45.251947 +AZURE,koreacentral,Standard_E32ds_v5,reserved_3y,NA,1.051826,USD,Azure Retail Prices API,2025-12-18T04:46:45.251953 +AZURE,koreacentral,Standard_E32ds_v5,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:46:43.823441 +AZURE,koreacentral,Standard_E32ds_v6,on_demand,NA,3.156,USD,Azure Retail Prices API,2025-12-18T04:46:43.822308 +AZURE,koreacentral,Standard_E32ds_v6,reserved_1y,NA,1.956849,USD,Azure Retail Prices API,2025-12-18T04:46:45.252302 +AZURE,koreacentral,Standard_E32ds_v6,reserved_3y,NA,1.230898,USD,Azure Retail Prices API,2025-12-18T04:46:45.252305 +AZURE,koreacentral,Standard_E32ds_v6,spot,NA,0.583229,USD,Azure Retail Prices API,2025-12-18T04:46:43.821513 +AZURE,koreacentral,Standard_E32pds_v6,on_demand,NA,2.438,USD,Azure Retail Prices API,2025-12-18T04:46:43.822939 +AZURE,koreacentral,Standard_E32pds_v6,reserved_1y,NA,1.438699,USD,Azure Retail Prices API,2025-12-18T04:46:45.252622 +AZURE,koreacentral,Standard_E32pds_v6,reserved_3y,NA,0.926598,USD,Azure Retail Prices API,2025-12-18T04:46:45.252624 +AZURE,koreacentral,Standard_E32pds_v6,spot,NA,0.450542,USD,Azure Retail Prices API,2025-12-18T04:46:43.821696 +AZURE,koreacentral,Standard_E32ps_v6,on_demand,NA,1.923,USD,Azure Retail Prices API,2025-12-18T04:46:43.822466 +AZURE,koreacentral,Standard_E32ps_v6,reserved_1y,NA,1.134703,USD,Azure Retail Prices API,2025-12-18T04:46:45.252369 +AZURE,koreacentral,Standard_E32ps_v6,reserved_3y,NA,0.730822,USD,Azure Retail Prices API,2025-12-18T04:46:45.252372 +AZURE,koreacentral,Standard_E32ps_v6,spot,NA,0.35537,USD,Azure Retail Prices API,2025-12-18T04:46:43.821968 +AZURE,koreacentral,Standard_E32s_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:46:43.821131 +AZURE,koreacentral,Standard_E32s_v3,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:46:45.251760 +AZURE,koreacentral,Standard_E32s_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:45.251764 +AZURE,koreacentral,Standard_E32s_v3,spot,NA,0.473088,USD,Azure Retail Prices API,2025-12-18T04:46:43.820859 +AZURE,koreacentral,Standard_E32s_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:43.821387 +AZURE,koreacentral,Standard_E32s_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:45.251872 +AZURE,koreacentral,Standard_E32s_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:45.251875 +AZURE,koreacentral,Standard_E32s_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:43.821440 +AZURE,koreacentral,Standard_E32s_v5,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:43.821607 +AZURE,koreacentral,Standard_E32s_v5,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:45.252007 +AZURE,koreacentral,Standard_E32s_v5,reserved_3y,NA,0.899848,USD,Azure Retail Prices API,2025-12-18T04:46:45.252010 +AZURE,koreacentral,Standard_E32s_v5,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:43.821305 +AZURE,koreacentral,Standard_E48a_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:43.820945 +AZURE,koreacentral,Standard_E48a_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:45.251608 +AZURE,koreacentral,Standard_E48a_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:45.251611 +AZURE,koreacentral,Standard_E48a_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:43.822872 +AZURE,koreacentral,Standard_E48ads_v5,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:46:43.822722 +AZURE,koreacentral,Standard_E48ads_v5,reserved_1y,NA,2.237329,USD,Azure Retail Prices API,2025-12-18T04:46:45.252533 +AZURE,koreacentral,Standard_E48ads_v5,reserved_3y,NA,1.440944,USD,Azure Retail Prices API,2025-12-18T04:46:45.252536 +AZURE,koreacentral,Standard_E48ads_v5,spot,NA,0.700762,USD,Azure Retail Prices API,2025-12-18T04:46:43.821660 +AZURE,koreacentral,Standard_E48ads_v6,on_demand,NA,4.291,USD,Azure Retail Prices API,2025-12-18T04:46:43.821342 +AZURE,koreacentral,Standard_E48ads_v6,reserved_1y,NA,2.531849,USD,Azure Retail Prices API,2025-12-18T04:46:45.251855 +AZURE,koreacentral,Standard_E48ads_v6,reserved_3y,NA,1.63067,USD,Azure Retail Prices API,2025-12-18T04:46:45.251858 +AZURE,koreacentral,Standard_E48ads_v6,spot,NA,0.792977,USD,Azure Retail Prices API,2025-12-18T04:46:43.821585 +AZURE,koreacentral,Standard_E48as_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:43.823507 +AZURE,koreacentral,Standard_E48as_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:45.252951 +AZURE,koreacentral,Standard_E48as_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:45.252954 +AZURE,koreacentral,Standard_E48as_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:43.822533 +AZURE,koreacentral,Standard_E48as_v5,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:46:43.821418 +AZURE,koreacentral,Standard_E48as_v5,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:45.252940 +AZURE,koreacentral,Standard_E48as_v5,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:46:45.252942 +AZURE,koreacentral,Standard_E48as_v5,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:43.823611 +AZURE,koreacentral,Standard_E48d_v4,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:46:43.822739 +AZURE,koreacentral,Standard_E48d_v4,reserved_1y,NA,2.436644,USD,Azure Retail Prices API,2025-12-18T04:46:45.252550 +AZURE,koreacentral,Standard_E48d_v4,reserved_3y,NA,1.561149,USD,Azure Retail Prices API,2025-12-18T04:46:45.252552 +AZURE,koreacentral,Standard_E48d_v4,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:46:43.822895 +AZURE,koreacentral,Standard_E48ds_v4,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:46:43.823050 +AZURE,koreacentral,Standard_E48ds_v4,reserved_1y,NA,2.436644,USD,Azure Retail Prices API,2025-12-18T04:46:45.252682 +AZURE,koreacentral,Standard_E48ds_v4,reserved_3y,NA,1.561149,USD,Azure Retail Prices API,2025-12-18T04:46:45.252685 +AZURE,koreacentral,Standard_E48ds_v4,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:46:43.821370 +AZURE,koreacentral,Standard_E48ds_v5,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:46:43.822607 +AZURE,koreacentral,Standard_E48ds_v5,reserved_1y,NA,2.449658,USD,Azure Retail Prices API,2025-12-18T04:46:45.252474 +AZURE,koreacentral,Standard_E48ds_v5,reserved_3y,NA,1.577778,USD,Azure Retail Prices API,2025-12-18T04:46:45.252477 +AZURE,koreacentral,Standard_E48ds_v5,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:46:43.821196 +AZURE,koreacentral,Standard_E48ds_v6,on_demand,NA,4.734,USD,Azure Retail Prices API,2025-12-18T04:46:43.822978 +AZURE,koreacentral,Standard_E48ds_v6,reserved_1y,NA,2.935274,USD,Azure Retail Prices API,2025-12-18T04:46:45.252627 +AZURE,koreacentral,Standard_E48ds_v6,reserved_3y,NA,1.846347,USD,Azure Retail Prices API,2025-12-18T04:46:45.252630 +AZURE,koreacentral,Standard_E48ds_v6,spot,NA,0.874843,USD,Azure Retail Prices API,2025-12-18T04:46:43.821282 +AZURE,koreacentral,Standard_E48pds_v6,on_demand,NA,3.658,USD,Azure Retail Prices API,2025-12-18T04:46:43.822149 +AZURE,koreacentral,Standard_E48pds_v6,reserved_1y,NA,2.157991,USD,Azure Retail Prices API,2025-12-18T04:46:45.252235 +AZURE,koreacentral,Standard_E48pds_v6,reserved_3y,NA,1.389878,USD,Azure Retail Prices API,2025-12-18T04:46:45.252238 +AZURE,koreacentral,Standard_E48pds_v6,spot,NA,0.675998,USD,Azure Retail Prices API,2025-12-18T04:46:43.821008 +AZURE,koreacentral,Standard_E48ps_v6,on_demand,NA,2.885,USD,Azure Retail Prices API,2025-12-18T04:46:43.822878 +AZURE,koreacentral,Standard_E48ps_v6,reserved_1y,NA,1.702055,USD,Azure Retail Prices API,2025-12-18T04:46:45.252600 +AZURE,koreacentral,Standard_E48ps_v6,reserved_3y,NA,1.096233,USD,Azure Retail Prices API,2025-12-18T04:46:45.252603 +AZURE,koreacentral,Standard_E48ps_v6,spot,NA,0.533148,USD,Azure Retail Prices API,2025-12-18T04:46:43.822101 +AZURE,koreacentral,Standard_E48s_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:43.822596 +AZURE,koreacentral,Standard_E48s_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:45.252462 +AZURE,koreacentral,Standard_E48s_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:45.252465 +AZURE,koreacentral,Standard_E48s_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:43.820967 +AZURE,koreacentral,Standard_E48s_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:43.822198 +AZURE,koreacentral,Standard_E48s_v5,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:45.252257 +AZURE,koreacentral,Standard_E48s_v5,reserved_3y,NA,1.349772,USD,Azure Retail Prices API,2025-12-18T04:46:45.252259 +AZURE,koreacentral,Standard_E48s_v5,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:43.821180 +AZURE,koreacentral,Standard_E4_v3,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:46:43.823029 +AZURE,koreacentral,Standard_E4_v3,reserved_1y,NA,0.188128,USD,Azure Retail Prices API,2025-12-18T04:46:45.252655 +AZURE,koreacentral,Standard_E4_v3,reserved_3y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:46:45.252657 +AZURE,koreacentral,Standard_E4_v3,spot,NA,0.059136,USD,Azure Retail Prices API,2025-12-18T04:46:43.820993 +AZURE,koreacentral,Standard_E4a_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:43.821869 +AZURE,koreacentral,Standard_E4a_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:45.252126 +AZURE,koreacentral,Standard_E4a_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:45.252129 +AZURE,koreacentral,Standard_E4a_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:43.821785 +AZURE,koreacentral,Standard_E4ads_v5,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:46:43.820907 +AZURE,koreacentral,Standard_E4ads_v5,reserved_1y,NA,0.186416,USD,Azure Retail Prices API,2025-12-18T04:46:45.251579 +AZURE,koreacentral,Standard_E4ads_v5,reserved_3y,NA,0.120091,USD,Azure Retail Prices API,2025-12-18T04:46:45.251582 +AZURE,koreacentral,Standard_E4ads_v5,spot,NA,0.058397,USD,Azure Retail Prices API,2025-12-18T04:46:43.822357 +AZURE,koreacentral,Standard_E4ads_v6,on_demand,NA,0.358,USD,Azure Retail Prices API,2025-12-18T04:46:43.823197 +AZURE,koreacentral,Standard_E4ads_v6,reserved_1y,NA,0.210959,USD,Azure Retail Prices API,2025-12-18T04:46:45.252767 +AZURE,koreacentral,Standard_E4ads_v6,reserved_3y,NA,0.135883,USD,Azure Retail Prices API,2025-12-18T04:46:45.252769 +AZURE,koreacentral,Standard_E4ads_v6,spot,NA,0.066158,USD,Azure Retail Prices API,2025-12-18T04:46:43.822345 +AZURE,koreacentral,Standard_E4as_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:43.823604 +AZURE,koreacentral,Standard_E4as_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:45.252995 +AZURE,koreacentral,Standard_E4as_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:45.252998 +AZURE,koreacentral,Standard_E4as_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:43.822861 +AZURE,koreacentral,Standard_E4as_v5,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:46:43.821013 +AZURE,koreacentral,Standard_E4as_v5,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:46:45.251670 +AZURE,koreacentral,Standard_E4as_v5,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:46:45.251673 +AZURE,koreacentral,Standard_E4as_v5,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:46:43.822455 +AZURE,koreacentral,Standard_E4d_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:46:43.823217 +AZURE,koreacentral,Standard_E4d_v4,reserved_1y,NA,0.203082,USD,Azure Retail Prices API,2025-12-18T04:46:45.252777 +AZURE,koreacentral,Standard_E4d_v4,reserved_3y,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:45.252780 +AZURE,koreacentral,Standard_E4d_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:46:43.823561 +AZURE,koreacentral,Standard_E4ds_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:46:43.821096 +AZURE,koreacentral,Standard_E4ds_v4,reserved_1y,NA,0.203082,USD,Azure Retail Prices API,2025-12-18T04:46:45.251742 +AZURE,koreacentral,Standard_E4ds_v4,reserved_3y,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:45.251745 +AZURE,koreacentral,Standard_E4ds_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:46:43.822005 +AZURE,koreacentral,Standard_E4ds_v5,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:46:43.822220 +AZURE,koreacentral,Standard_E4ds_v5,reserved_1y,NA,0.20411,USD,Azure Retail Prices API,2025-12-18T04:46:45.252267 +AZURE,koreacentral,Standard_E4ds_v5,reserved_3y,NA,0.131469,USD,Azure Retail Prices API,2025-12-18T04:46:45.252270 +AZURE,koreacentral,Standard_E4ds_v5,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:46:43.823594 +AZURE,koreacentral,Standard_E4ds_v6,on_demand,NA,0.395,USD,Azure Retail Prices API,2025-12-18T04:46:43.822487 +AZURE,koreacentral,Standard_E4ds_v6,reserved_1y,NA,0.244635,USD,Azure Retail Prices API,2025-12-18T04:46:45.252392 +AZURE,koreacentral,Standard_E4ds_v6,reserved_3y,NA,0.153881,USD,Azure Retail Prices API,2025-12-18T04:46:45.252395 +AZURE,koreacentral,Standard_E4ds_v6,spot,NA,0.072996,USD,Azure Retail Prices API,2025-12-18T04:46:43.823652 +AZURE,koreacentral,Standard_E4pds_v6,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:46:43.822527 +AZURE,koreacentral,Standard_E4pds_v6,reserved_1y,NA,0.179795,USD,Azure Retail Prices API,2025-12-18T04:46:45.252410 +AZURE,koreacentral,Standard_E4pds_v6,reserved_3y,NA,0.11583,USD,Azure Retail Prices API,2025-12-18T04:46:45.252413 +AZURE,koreacentral,Standard_E4pds_v6,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:46:43.821922 +AZURE,koreacentral,Standard_E4ps_v6,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:43.821552 +AZURE,koreacentral,Standard_E4ps_v6,reserved_1y,NA,0.141781,USD,Azure Retail Prices API,2025-12-18T04:46:45.251966 +AZURE,koreacentral,Standard_E4ps_v6,reserved_3y,NA,0.091362,USD,Azure Retail Prices API,2025-12-18T04:46:45.251970 +AZURE,koreacentral,Standard_E4ps_v6,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:43.822428 +AZURE,koreacentral,Standard_E4s_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:43.821148 +AZURE,koreacentral,Standard_E4s_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:45.251773 +AZURE,koreacentral,Standard_E4s_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:45.251776 +AZURE,koreacentral,Standard_E4s_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:43.822989 +AZURE,koreacentral,Standard_E4s_v5,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:43.821271 +AZURE,koreacentral,Standard_E4s_v5,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:45.251828 +AZURE,koreacentral,Standard_E4s_v5,reserved_3y,NA,0.112481,USD,Azure Retail Prices API,2025-12-18T04:46:45.251831 +AZURE,koreacentral,Standard_E4s_v5,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:43.823485 +AZURE,koreacentral,Standard_E64_v3,on_demand,NA,4.376,USD,Azure Retail Prices API,2025-12-18T04:46:43.823212 +AZURE,koreacentral,Standard_E64_v3,reserved_1y,NA,2.837443,USD,Azure Retail Prices API,2025-12-18T04:46:45.252772 +AZURE,koreacentral,Standard_E64_v3,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:46:45.252775 +AZURE,koreacentral,Standard_E64_v3,spot,NA,0.808685,USD,Azure Retail Prices API,2025-12-18T04:46:43.822062 +AZURE,koreacentral,Standard_E64a_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:43.823135 +AZURE,koreacentral,Standard_E64a_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:45.252723 +AZURE,koreacentral,Standard_E64a_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:45.252725 +AZURE,koreacentral,Standard_E64a_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:43.822258 +AZURE,koreacentral,Standard_E64ads_v5,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:46:43.821207 +AZURE,koreacentral,Standard_E64ads_v5,reserved_1y,NA,2.982991,USD,Azure Retail Prices API,2025-12-18T04:46:45.251811 +AZURE,koreacentral,Standard_E64ads_v5,reserved_3y,NA,1.921271,USD,Azure Retail Prices API,2025-12-18T04:46:45.251814 +AZURE,koreacentral,Standard_E64ads_v5,spot,NA,0.934349,USD,Azure Retail Prices API,2025-12-18T04:46:43.822391 +AZURE,koreacentral,Standard_E64ads_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:46:43.823271 +AZURE,koreacentral,Standard_E64ads_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:46:45.252804 +AZURE,koreacentral,Standard_E64ads_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:46:45.252806 +AZURE,koreacentral,Standard_E64ads_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:46:43.822363 +AZURE,koreacentral,Standard_E64as_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:43.820988 +AZURE,koreacentral,Standard_E64as_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:45.251658 +AZURE,koreacentral,Standard_E64as_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:45.251661 +AZURE,koreacentral,Standard_E64as_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:43.821833 +AZURE,koreacentral,Standard_E64as_v5,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:46:43.821874 +AZURE,koreacentral,Standard_E64as_v5,reserved_1y,NA,2.567694,USD,Azure Retail Prices API,2025-12-18T04:46:45.252132 +AZURE,koreacentral,Standard_E64as_v5,reserved_3y,NA,1.653767,USD,Azure Retail Prices API,2025-12-18T04:46:45.252135 +AZURE,koreacentral,Standard_E64as_v5,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:46:43.823721 +AZURE,koreacentral,Standard_E64d_v4,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:46:43.823716 +AZURE,koreacentral,Standard_E64d_v4,reserved_1y,NA,3.248973,USD,Azure Retail Prices API,2025-12-18T04:46:45.253082 +AZURE,koreacentral,Standard_E64d_v4,reserved_3y,NA,2.081545,USD,Azure Retail Prices API,2025-12-18T04:46:45.253084 +AZURE,koreacentral,Standard_E64d_v4,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:46:43.820827 +AZURE,koreacentral,Standard_E64ds_v4,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:46:43.822031 +AZURE,koreacentral,Standard_E64ds_v4,reserved_1y,NA,3.248973,USD,Azure Retail Prices API,2025-12-18T04:46:45.252196 +AZURE,koreacentral,Standard_E64ds_v4,reserved_3y,NA,2.081545,USD,Azure Retail Prices API,2025-12-18T04:46:45.252199 +AZURE,koreacentral,Standard_E64ds_v4,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:46:43.822933 +AZURE,koreacentral,Standard_E64ds_v5,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:46:43.820913 +AZURE,koreacentral,Standard_E64ds_v5,reserved_1y,NA,3.26621,USD,Azure Retail Prices API,2025-12-18T04:46:45.251585 +AZURE,koreacentral,Standard_E64ds_v5,reserved_3y,NA,2.103691,USD,Azure Retail Prices API,2025-12-18T04:46:45.251588 +AZURE,koreacentral,Standard_E64ds_v5,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:46:43.822772 +AZURE,koreacentral,Standard_E64ds_v6,on_demand,NA,6.312,USD,Azure Retail Prices API,2025-12-18T04:46:43.821780 +AZURE,koreacentral,Standard_E64ds_v6,reserved_1y,NA,3.913584,USD,Azure Retail Prices API,2025-12-18T04:46:45.252099 +AZURE,koreacentral,Standard_E64ds_v6,reserved_3y,NA,2.461796,USD,Azure Retail Prices API,2025-12-18T04:46:45.252102 +AZURE,koreacentral,Standard_E64ds_v6,spot,NA,1.166458,USD,Azure Retail Prices API,2025-12-18T04:46:43.823121 +AZURE,koreacentral,Standard_E64pds_v6,on_demand,NA,4.877,USD,Azure Retail Prices API,2025-12-18T04:46:43.821859 +AZURE,koreacentral,Standard_E64pds_v6,reserved_1y,NA,2.877283,USD,Azure Retail Prices API,2025-12-18T04:46:45.252121 +AZURE,koreacentral,Standard_E64pds_v6,reserved_3y,NA,1.853196,USD,Azure Retail Prices API,2025-12-18T04:46:45.252124 +AZURE,koreacentral,Standard_E64pds_v6,spot,NA,0.90127,USD,Azure Retail Prices API,2025-12-18T04:46:43.822180 +AZURE,koreacentral,Standard_E64ps_v6,on_demand,NA,3.846,USD,Azure Retail Prices API,2025-12-18T04:46:43.821250 +AZURE,koreacentral,Standard_E64ps_v6,reserved_1y,NA,2.269406,USD,Azure Retail Prices API,2025-12-18T04:46:45.251822 +AZURE,koreacentral,Standard_E64ps_v6,reserved_3y,NA,1.461644,USD,Azure Retail Prices API,2025-12-18T04:46:45.251825 +AZURE,koreacentral,Standard_E64ps_v6,spot,NA,0.710741,USD,Azure Retail Prices API,2025-12-18T04:46:43.821759 +AZURE,koreacentral,Standard_E64s_v3,on_demand,NA,4.376,USD,Azure Retail Prices API,2025-12-18T04:46:43.822795 +AZURE,koreacentral,Standard_E64s_v3,reserved_1y,NA,2.837443,USD,Azure Retail Prices API,2025-12-18T04:46:45.252572 +AZURE,koreacentral,Standard_E64s_v3,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:46:45.252575 +AZURE,koreacentral,Standard_E64s_v3,spot,NA,0.808685,USD,Azure Retail Prices API,2025-12-18T04:46:43.822402 +AZURE,koreacentral,Standard_E64s_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:43.821645 +AZURE,koreacentral,Standard_E64s_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:45.252043 +AZURE,koreacentral,Standard_E64s_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:45.252046 +AZURE,koreacentral,Standard_E64s_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:43.821381 +AZURE,koreacentral,Standard_E64s_v5,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:43.821038 +AZURE,koreacentral,Standard_E64s_v5,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:45.251694 +AZURE,koreacentral,Standard_E64s_v5,reserved_3y,NA,1.799696,USD,Azure Retail Prices API,2025-12-18T04:46:45.251697 +AZURE,koreacentral,Standard_E64s_v5,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:43.823372 +AZURE,koreacentral,Standard_E80ids_v4,on_demand,NA,6.92,USD,Azure Retail Prices API,2025-12-18T04:46:43.822270 +AZURE,koreacentral,Standard_E80ids_v4,reserved_1y,NA,4.061644,USD,Azure Retail Prices API,2025-12-18T04:46:45.252284 +AZURE,koreacentral,Standard_E80ids_v4,reserved_3y,NA,2.601979,USD,Azure Retail Prices API,2025-12-18T04:46:45.252287 +AZURE,koreacentral,Standard_E80ids_v4,spot,NA,1.278816,USD,Azure Retail Prices API,2025-12-18T04:46:43.822867 +AZURE,koreacentral,Standard_E80is_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:46:43.822504 +AZURE,koreacentral,Standard_E80is_v4,reserved_1y,NA,3.575342,USD,Azure Retail Prices API,2025-12-18T04:46:45.252404 +AZURE,koreacentral,Standard_E80is_v4,reserved_3y,NA,2.286149,USD,Azure Retail Prices API,2025-12-18T04:46:45.252407 +AZURE,koreacentral,Standard_E80is_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:46:43.823512 +AZURE,koreacentral,Standard_E8_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:46:43.820977 +AZURE,koreacentral,Standard_E8_v3,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:46:45.251652 +AZURE,koreacentral,Standard_E8_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:45.251655 +AZURE,koreacentral,Standard_E8_v3,spot,NA,0.118272,USD,Azure Retail Prices API,2025-12-18T04:46:43.820833 +AZURE,koreacentral,Standard_E8a_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:43.821807 +AZURE,koreacentral,Standard_E8a_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:45.252110 +AZURE,koreacentral,Standard_E8a_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:45.252113 +AZURE,koreacentral,Standard_E8a_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:43.822068 +AZURE,koreacentral,Standard_E8ads_v5,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:43.821801 +AZURE,koreacentral,Standard_E8ads_v5,reserved_1y,NA,0.372831,USD,Azure Retail Prices API,2025-12-18T04:46:45.252357 +AZURE,koreacentral,Standard_E8ads_v5,reserved_3y,NA,0.240145,USD,Azure Retail Prices API,2025-12-18T04:46:45.252360 +AZURE,koreacentral,Standard_E8ads_v5,spot,NA,0.116794,USD,Azure Retail Prices API,2025-12-18T04:46:43.821685 +AZURE,koreacentral,Standard_E8ads_v6,on_demand,NA,0.715,USD,Azure Retail Prices API,2025-12-18T04:46:43.821775 +AZURE,koreacentral,Standard_E8ads_v6,reserved_1y,NA,0.421918,USD,Azure Retail Prices API,2025-12-18T04:46:45.252093 +AZURE,koreacentral,Standard_E8ads_v6,reserved_3y,NA,0.271766,USD,Azure Retail Prices API,2025-12-18T04:46:45.252096 +AZURE,koreacentral,Standard_E8ads_v6,spot,NA,0.132132,USD,Azure Retail Prices API,2025-12-18T04:46:43.823522 +AZURE,koreacentral,Standard_E8as_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:43.821101 +AZURE,koreacentral,Standard_E8as_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:45.251748 +AZURE,koreacentral,Standard_E8as_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:45.251751 +AZURE,koreacentral,Standard_E8as_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:43.821916 +AZURE,koreacentral,Standard_E8as_v5,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:46:43.821722 +AZURE,koreacentral,Standard_E8as_v5,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:46:45.252527 +AZURE,koreacentral,Standard_E8as_v5,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:46:45.252530 +AZURE,koreacentral,Standard_E8as_v5,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:46:43.822132 +AZURE,koreacentral,Standard_E8d_v4,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:46:43.823545 +AZURE,koreacentral,Standard_E8d_v4,reserved_1y,NA,0.406164,USD,Azure Retail Prices API,2025-12-18T04:46:45.252968 +AZURE,koreacentral,Standard_E8d_v4,reserved_3y,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:45.252971 +AZURE,koreacentral,Standard_E8d_v4,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:46:43.821059 +AZURE,koreacentral,Standard_E8ds_v4,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:46:43.823711 +AZURE,koreacentral,Standard_E8ds_v4,reserved_1y,NA,0.406164,USD,Azure Retail Prices API,2025-12-18T04:46:45.253076 +AZURE,koreacentral,Standard_E8ds_v4,reserved_3y,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:45.253079 +AZURE,koreacentral,Standard_E8ds_v4,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:46:43.821796 +AZURE,koreacentral,Standard_E8ds_v5,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:46:43.823266 +AZURE,koreacentral,Standard_E8ds_v5,reserved_1y,NA,0.408333,USD,Azure Retail Prices API,2025-12-18T04:46:45.252798 +AZURE,koreacentral,Standard_E8ds_v5,reserved_3y,NA,0.262976,USD,Azure Retail Prices API,2025-12-18T04:46:45.252801 +AZURE,koreacentral,Standard_E8ds_v5,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:46:43.821326 +AZURE,koreacentral,Standard_E8ds_v6,on_demand,NA,0.789,USD,Azure Retail Prices API,2025-12-18T04:46:43.821733 +AZURE,koreacentral,Standard_E8ds_v6,reserved_1y,NA,0.489155,USD,Azure Retail Prices API,2025-12-18T04:46:45.252082 +AZURE,koreacentral,Standard_E8ds_v6,reserved_3y,NA,0.307725,USD,Azure Retail Prices API,2025-12-18T04:46:45.252085 +AZURE,koreacentral,Standard_E8ds_v6,spot,NA,0.145807,USD,Azure Retail Prices API,2025-12-18T04:46:43.821043 +AZURE,koreacentral,Standard_E8pds_v6,on_demand,NA,0.61,USD,Azure Retail Prices API,2025-12-18T04:46:43.822833 +AZURE,koreacentral,Standard_E8pds_v6,reserved_1y,NA,0.359703,USD,Azure Retail Prices API,2025-12-18T04:46:45.252589 +AZURE,koreacentral,Standard_E8pds_v6,reserved_3y,NA,0.231659,USD,Azure Retail Prices API,2025-12-18T04:46:45.252592 +AZURE,koreacentral,Standard_E8pds_v6,spot,NA,0.112728,USD,Azure Retail Prices API,2025-12-18T04:46:43.823297 +AZURE,koreacentral,Standard_E8ps_v6,on_demand,NA,0.481,USD,Azure Retail Prices API,2025-12-18T04:46:43.821958 +AZURE,koreacentral,Standard_E8ps_v6,reserved_1y,NA,0.283676,USD,Azure Retail Prices API,2025-12-18T04:46:45.252168 +AZURE,koreacentral,Standard_E8ps_v6,reserved_3y,NA,0.182686,USD,Azure Retail Prices API,2025-12-18T04:46:45.252171 +AZURE,koreacentral,Standard_E8ps_v6,spot,NA,0.088889,USD,Azure Retail Prices API,2025-12-18T04:46:43.823056 +AZURE,koreacentral,Standard_E8s_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:46:43.823540 +AZURE,koreacentral,Standard_E8s_v3,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:46:45.252962 +AZURE,koreacentral,Standard_E8s_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:45.252965 +AZURE,koreacentral,Standard_E8s_v3,spot,NA,0.118272,USD,Azure Retail Prices API,2025-12-18T04:46:43.822696 +AZURE,koreacentral,Standard_E8s_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:43.820940 +AZURE,koreacentral,Standard_E8s_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:45.251602 +AZURE,koreacentral,Standard_E8s_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:45.251605 +AZURE,koreacentral,Standard_E8s_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:43.822329 +AZURE,koreacentral,Standard_E8s_v5,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:43.820815 +AZURE,koreacentral,Standard_E8s_v5,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:45.251535 +AZURE,koreacentral,Standard_E8s_v5,reserved_3y,NA,0.224962,USD,Azure Retail Prices API,2025-12-18T04:46:45.251538 +AZURE,koreacentral,Standard_E8s_v5,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:43.822900 +AZURE,koreacentral,Standard_E96a_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:43.823232 +AZURE,koreacentral,Standard_E96a_v4,reserved_1y,NA,4.290068,USD,Azure Retail Prices API,2025-12-18T04:46:45.252783 +AZURE,koreacentral,Standard_E96a_v4,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:45.252785 +AZURE,koreacentral,Standard_E96a_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:43.821890 +AZURE,koreacentral,Standard_E96ads_v5,on_demand,NA,12.0,USD,Azure Retail Prices API,2025-12-18T04:46:43.822084 +AZURE,koreacentral,Standard_E96ads_v5,reserved_1y,NA,4.474543,USD,Azure Retail Prices API,2025-12-18T04:46:45.252644 +AZURE,koreacentral,Standard_E96ads_v5,reserved_3y,NA,2.881925,USD,Azure Retail Prices API,2025-12-18T04:46:45.252647 +AZURE,koreacentral,Standard_E96ads_v5,spot,NA,1.401523,USD,Azure Retail Prices API,2025-12-18T04:46:43.823394 +AZURE,koreacentral,Standard_E96ads_v6,on_demand,NA,8.582,USD,Azure Retail Prices API,2025-12-18T04:46:43.823667 +AZURE,koreacentral,Standard_E96ads_v6,reserved_1y,NA,5.063584,USD,Azure Retail Prices API,2025-12-18T04:46:45.253060 +AZURE,koreacentral,Standard_E96ads_v6,reserved_3y,NA,3.261301,USD,Azure Retail Prices API,2025-12-18T04:46:45.253063 +AZURE,koreacentral,Standard_E96ads_v6,spot,NA,1.585954,USD,Azure Retail Prices API,2025-12-18T04:46:43.823681 +AZURE,koreacentral,Standard_E96as_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:43.823706 +AZURE,koreacentral,Standard_E96as_v4,reserved_1y,NA,4.290068,USD,Azure Retail Prices API,2025-12-18T04:46:45.253071 +AZURE,koreacentral,Standard_E96as_v4,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:45.253073 +AZURE,koreacentral,Standard_E96as_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:43.821331 +AZURE,koreacentral,Standard_E96as_v5,on_demand,NA,10.944,USD,Azure Retail Prices API,2025-12-18T04:46:43.822042 +AZURE,koreacentral,Standard_E96as_v5,reserved_1y,NA,3.851484,USD,Azure Retail Prices API,2025-12-18T04:46:45.252902 +AZURE,koreacentral,Standard_E96as_v5,reserved_3y,NA,2.480632,USD,Azure Retail Prices API,2025-12-18T04:46:45.252905 +AZURE,koreacentral,Standard_E96as_v5,spot,NA,1.206374,USD,Azure Retail Prices API,2025-12-18T04:46:43.822292 +AZURE,koreacentral,Standard_E96ds_v5,on_demand,NA,8.304,USD,Azure Retail Prices API,2025-12-18T04:46:43.821091 +AZURE,koreacentral,Standard_E96ds_v5,reserved_1y,NA,4.899315,USD,Azure Retail Prices API,2025-12-18T04:46:45.251736 +AZURE,koreacentral,Standard_E96ds_v5,reserved_3y,NA,3.155518,USD,Azure Retail Prices API,2025-12-18T04:46:45.251739 +AZURE,koreacentral,Standard_E96ds_v5,spot,NA,1.534579,USD,Azure Retail Prices API,2025-12-18T04:46:43.821244 +AZURE,koreacentral,Standard_E96ds_v6,on_demand,NA,9.468,USD,Azure Retail Prices API,2025-12-18T04:46:43.823425 +AZURE,koreacentral,Standard_E96ds_v6,reserved_1y,NA,5.870434,USD,Azure Retail Prices API,2025-12-18T04:46:45.252891 +AZURE,koreacentral,Standard_E96ds_v6,reserved_3y,NA,3.692694,USD,Azure Retail Prices API,2025-12-18T04:46:45.252894 +AZURE,koreacentral,Standard_E96ds_v6,spot,NA,1.749686,USD,Azure Retail Prices API,2025-12-18T04:46:43.822635 +AZURE,koreacentral,Standard_E96pds_v6,on_demand,NA,7.315,USD,Azure Retail Prices API,2025-12-18T04:46:43.822340 +AZURE,koreacentral,Standard_E96pds_v6,reserved_1y,NA,4.315982,USD,Azure Retail Prices API,2025-12-18T04:46:45.252313 +AZURE,koreacentral,Standard_E96pds_v6,reserved_3y,NA,2.779795,USD,Azure Retail Prices API,2025-12-18T04:46:45.252315 +AZURE,koreacentral,Standard_E96pds_v6,spot,NA,1.351812,USD,Azure Retail Prices API,2025-12-18T04:46:43.821451 +AZURE,koreacentral,Standard_E96ps_v6,on_demand,NA,5.77,USD,Azure Retail Prices API,2025-12-18T04:46:43.821701 +AZURE,koreacentral,Standard_E96ps_v6,reserved_1y,NA,3.40411,USD,Azure Retail Prices API,2025-12-18T04:46:45.252060 +AZURE,koreacentral,Standard_E96ps_v6,reserved_3y,NA,2.192466,USD,Azure Retail Prices API,2025-12-18T04:46:45.252063 +AZURE,koreacentral,Standard_E96ps_v6,spot,NA,1.066296,USD,Azure Retail Prices API,2025-12-18T04:46:43.821853 +AZURE,koreacentral,Standard_E96s_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:43.821153 +AZURE,koreacentral,Standard_E96s_v5,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:46:45.251779 +AZURE,koreacentral,Standard_E96s_v5,reserved_3y,NA,2.699505,USD,Azure Retail Prices API,2025-12-18T04:46:45.251782 +AZURE,koreacentral,Standard_E96s_v5,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:43.821901 +AZURE,koreacentral,Standard_EC16ads_v6,on_demand,NA,1.43,USD,Azure Retail Prices API,2025-12-18T04:46:43.821546 +AZURE,koreacentral,Standard_EC16ads_v6,reserved_1y,NA,0.84395,USD,Azure Retail Prices API,2025-12-18T04:46:45.251958 +AZURE,koreacentral,Standard_EC16ads_v6,reserved_3y,NA,0.543569,USD,Azure Retail Prices API,2025-12-18T04:46:45.251964 +AZURE,koreacentral,Standard_EC16ads_v6,spot,NA,0.264264,USD,Azure Retail Prices API,2025-12-18T04:46:43.822999 +AZURE,koreacentral,Standard_EC16as_v6,on_demand,NA,1.176,USD,Azure Retail Prices API,2025-12-18T04:46:43.823646 +AZURE,koreacentral,Standard_EC16as_v6,reserved_1y,NA,0.693836,USD,Azure Retail Prices API,2025-12-18T04:46:45.253042 +AZURE,koreacentral,Standard_EC16as_v6,reserved_3y,NA,0.44688,USD,Azure Retail Prices API,2025-12-18T04:46:45.253045 +AZURE,koreacentral,Standard_EC16as_v6,spot,NA,0.217325,USD,Azure Retail Prices API,2025-12-18T04:46:43.823160 +AZURE,koreacentral,Standard_EC2ads_v6,on_demand,NA,0.179,USD,Azure Retail Prices API,2025-12-18T04:46:43.823155 +AZURE,koreacentral,Standard_EC2ads_v6,reserved_1y,NA,0.105479,USD,Azure Retail Prices API,2025-12-18T04:46:45.252739 +AZURE,koreacentral,Standard_EC2ads_v6,reserved_3y,NA,0.06796,USD,Azure Retail Prices API,2025-12-18T04:46:45.252742 +AZURE,koreacentral,Standard_EC2ads_v6,spot,NA,0.033079,USD,Azure Retail Prices API,2025-12-18T04:46:43.821568 +AZURE,koreacentral,Standard_EC2as_v6,on_demand,NA,0.147,USD,Azure Retail Prices API,2025-12-18T04:46:43.822816 +AZURE,koreacentral,Standard_EC2as_v6,reserved_1y,NA,0.086758,USD,Azure Retail Prices API,2025-12-18T04:46:45.252583 +AZURE,koreacentral,Standard_EC2as_v6,reserved_3y,NA,0.05586,USD,Azure Retail Prices API,2025-12-18T04:46:45.252586 +AZURE,koreacentral,Standard_EC2as_v6,spot,NA,0.027166,USD,Azure Retail Prices API,2025-12-18T04:46:43.822439 +AZURE,koreacentral,Standard_EC32ads_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:46:43.822396 +AZURE,koreacentral,Standard_EC32ads_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:46:45.252351 +AZURE,koreacentral,Standard_EC32ads_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:46:45.252354 +AZURE,koreacentral,Standard_EC32ads_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:46:43.823166 +AZURE,koreacentral,Standard_EC32as_v6,on_demand,NA,2.352,USD,Azure Retail Prices API,2025-12-18T04:46:43.821376 +AZURE,koreacentral,Standard_EC32as_v6,reserved_1y,NA,1.387671,USD,Azure Retail Prices API,2025-12-18T04:46:45.251866 +AZURE,koreacentral,Standard_EC32as_v6,reserved_3y,NA,0.89376,USD,Azure Retail Prices API,2025-12-18T04:46:45.251869 +AZURE,koreacentral,Standard_EC32as_v6,spot,NA,0.43465,USD,Azure Retail Prices API,2025-12-18T04:46:43.822090 +AZURE,koreacentral,Standard_EC48ads_v6,on_demand,NA,4.291,USD,Azure Retail Prices API,2025-12-18T04:46:43.821456 +AZURE,koreacentral,Standard_EC48ads_v6,reserved_1y,NA,2.531849,USD,Azure Retail Prices API,2025-12-18T04:46:45.251916 +AZURE,koreacentral,Standard_EC48ads_v6,reserved_3y,NA,1.63067,USD,Azure Retail Prices API,2025-12-18T04:46:45.251918 +AZURE,koreacentral,Standard_EC48ads_v6,spot,NA,0.792977,USD,Azure Retail Prices API,2025-12-18T04:46:43.823302 +AZURE,koreacentral,Standard_EC48as_v6,on_demand,NA,3.528,USD,Azure Retail Prices API,2025-12-18T04:46:43.822106 +AZURE,koreacentral,Standard_EC48as_v6,reserved_1y,NA,2.081507,USD,Azure Retail Prices API,2025-12-18T04:46:45.252219 +AZURE,koreacentral,Standard_EC48as_v6,reserved_3y,NA,1.340639,USD,Azure Retail Prices API,2025-12-18T04:46:45.252221 +AZURE,koreacentral,Standard_EC48as_v6,spot,NA,0.651974,USD,Azure Retail Prices API,2025-12-18T04:46:43.823202 +AZURE,koreacentral,Standard_EC4ads_v6,on_demand,NA,0.358,USD,Azure Retail Prices API,2025-12-18T04:46:43.821435 +AZURE,koreacentral,Standard_EC4ads_v6,reserved_1y,NA,0.210959,USD,Azure Retail Prices API,2025-12-18T04:46:45.251905 +AZURE,koreacentral,Standard_EC4ads_v6,reserved_3y,NA,0.135883,USD,Azure Retail Prices API,2025-12-18T04:46:45.251908 +AZURE,koreacentral,Standard_EC4ads_v6,spot,NA,0.066158,USD,Azure Retail Prices API,2025-12-18T04:46:43.822253 +AZURE,koreacentral,Standard_EC4as_v6,on_demand,NA,0.294,USD,Azure Retail Prices API,2025-12-18T04:46:43.822706 +AZURE,koreacentral,Standard_EC4as_v6,reserved_1y,NA,0.173516,USD,Azure Retail Prices API,2025-12-18T04:46:45.252522 +AZURE,koreacentral,Standard_EC4as_v6,reserved_3y,NA,0.11172,USD,Azure Retail Prices API,2025-12-18T04:46:45.252524 +AZURE,koreacentral,Standard_EC4as_v6,spot,NA,0.054331,USD,Azure Retail Prices API,2025-12-18T04:46:43.822186 +AZURE,koreacentral,Standard_EC64ads_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:46:43.823405 +AZURE,koreacentral,Standard_EC64ads_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:46:45.252881 +AZURE,koreacentral,Standard_EC64ads_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:46:45.252883 +AZURE,koreacentral,Standard_EC64ads_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:46:43.822618 +AZURE,koreacentral,Standard_EC64as_v6,on_demand,NA,4.704,USD,Azure Retail Prices API,2025-12-18T04:46:43.821337 +AZURE,koreacentral,Standard_EC64as_v6,reserved_1y,NA,2.775342,USD,Azure Retail Prices API,2025-12-18T04:46:45.251850 +AZURE,koreacentral,Standard_EC64as_v6,reserved_3y,NA,1.787519,USD,Azure Retail Prices API,2025-12-18T04:46:45.251852 +AZURE,koreacentral,Standard_EC64as_v6,spot,NA,0.869299,USD,Azure Retail Prices API,2025-12-18T04:46:43.820854 +AZURE,koreacentral,Standard_EC8ads_v6,on_demand,NA,0.715,USD,Azure Retail Prices API,2025-12-18T04:46:43.822493 +AZURE,koreacentral,Standard_EC8ads_v6,reserved_1y,NA,0.421918,USD,Azure Retail Prices API,2025-12-18T04:46:45.252398 +AZURE,koreacentral,Standard_EC8ads_v6,reserved_3y,NA,0.271766,USD,Azure Retail Prices API,2025-12-18T04:46:45.252401 +AZURE,koreacentral,Standard_EC8ads_v6,spot,NA,0.132132,USD,Azure Retail Prices API,2025-12-18T04:46:43.822917 +AZURE,koreacentral,Standard_EC8as_v6,on_demand,NA,0.588,USD,Azure Retail Prices API,2025-12-18T04:46:43.823588 +AZURE,koreacentral,Standard_EC8as_v6,reserved_1y,NA,0.346918,USD,Azure Retail Prices API,2025-12-18T04:46:45.252990 +AZURE,koreacentral,Standard_EC8as_v6,reserved_3y,NA,0.22344,USD,Azure Retail Prices API,2025-12-18T04:46:45.252993 +AZURE,koreacentral,Standard_EC8as_v6,spot,NA,0.108662,USD,Azure Retail Prices API,2025-12-18T04:46:43.821530 +AZURE,koreacentral,Standard_EC96ads_v6,on_demand,NA,8.582,USD,Azure Retail Prices API,2025-12-18T04:46:43.822994 +AZURE,koreacentral,Standard_EC96ads_v6,reserved_1y,NA,5.063584,USD,Azure Retail Prices API,2025-12-18T04:46:45.252638 +AZURE,koreacentral,Standard_EC96ads_v6,reserved_3y,NA,3.261301,USD,Azure Retail Prices API,2025-12-18T04:46:45.252641 +AZURE,koreacentral,Standard_EC96ads_v6,spot,NA,1.585954,USD,Azure Retail Prices API,2025-12-18T04:46:43.821822 +AZURE,koreacentral,Standard_EC96as_v6,on_demand,NA,7.056,USD,Azure Retail Prices API,2025-12-18T04:46:43.823151 +AZURE,koreacentral,Standard_EC96as_v6,reserved_1y,NA,4.163014,USD,Azure Retail Prices API,2025-12-18T04:46:45.252734 +AZURE,koreacentral,Standard_EC96as_v6,reserved_3y,NA,2.681279,USD,Azure Retail Prices API,2025-12-18T04:46:45.252736 +AZURE,koreacentral,Standard_EC96as_v6,spot,NA,1.303949,USD,Azure Retail Prices API,2025-12-18T04:46:43.822701 +AZURE,koreacentral,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379752 +AZURE,koreacentral,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379760 +AZURE,koreacentral,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379764 +AZURE,koreacentral,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379756 +AZURE,koreacentral,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382074 +AZURE,koreacentral,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382083 +AZURE,koreacentral,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382087 +AZURE,koreacentral,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382079 +AZURE,koreacentral,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384804 +AZURE,koreacentral,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384813 +AZURE,koreacentral,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384817 +AZURE,koreacentral,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384808 +AZURE,koreacentral,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385644 +AZURE,koreacentral,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385653 +AZURE,koreacentral,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385657 +AZURE,koreacentral,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385648 +AZURE,koreacentral,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378227 +AZURE,koreacentral,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378235 +AZURE,koreacentral,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378240 +AZURE,koreacentral,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378231 +AZURE,koreacentral,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386408 +AZURE,koreacentral,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386416 +AZURE,koreacentral,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386420 +AZURE,koreacentral,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386412 +AZURE,koreacentral,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380513 +AZURE,koreacentral,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380521 +AZURE,koreacentral,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380525 +AZURE,koreacentral,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380517 +AZURE,koreacentral,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383194 +AZURE,koreacentral,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383203 +AZURE,koreacentral,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383208 +AZURE,koreacentral,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383198 +AZURE,koreacentral,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387182 +AZURE,koreacentral,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387196 +AZURE,koreacentral,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387200 +AZURE,koreacentral,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387192 +AZURE,koreacentral,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388369 +AZURE,koreacentral,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388377 +AZURE,koreacentral,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388381 +AZURE,koreacentral,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388373 +AZURE,koreacentral,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378976 +AZURE,koreacentral,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378993 +AZURE,koreacentral,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378998 +AZURE,koreacentral,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378985 +AZURE,koreacentral,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381268 +AZURE,koreacentral,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381278 +AZURE,koreacentral,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381282 +AZURE,koreacentral,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381273 +AZURE,koreacentral,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383985 +AZURE,koreacentral,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383994 +AZURE,koreacentral,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384002 +AZURE,koreacentral,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383990 +AZURE,koreacentral,Standard_L16as_v3,on_demand,NA,1.464,USD,Azure Retail Prices API,2025-12-18T04:46:43.820901 +AZURE,koreacentral,Standard_L16as_v3,reserved_1y,NA,0.936986,USD,Azure Retail Prices API,2025-12-18T04:46:45.251573 +AZURE,koreacentral,Standard_L16as_v3,reserved_3y,NA,0.614878,USD,Azure Retail Prices API,2025-12-18T04:46:45.251576 +AZURE,koreacentral,Standard_L16as_v3,spot,NA,0.270547,USD,Azure Retail Prices API,2025-12-18T04:46:43.823222 +AZURE,koreacentral,Standard_L16s_v3,on_demand,NA,1.636,USD,Azure Retail Prices API,2025-12-18T04:46:43.822602 +AZURE,koreacentral,Standard_L16s_v3,reserved_1y,NA,1.047032,USD,Azure Retail Prices API,2025-12-18T04:46:45.252468 +AZURE,koreacentral,Standard_L16s_v3,reserved_3y,NA,0.687139,USD,Azure Retail Prices API,2025-12-18T04:46:45.252471 +AZURE,koreacentral,Standard_L16s_v3,spot,NA,0.302333,USD,Azure Retail Prices API,2025-12-18T04:46:43.821353 +AZURE,koreacentral,Standard_L32as_v3,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:43.823533 +AZURE,koreacentral,Standard_L32as_v3,reserved_1y,NA,1.873973,USD,Azure Retail Prices API,2025-12-18T04:46:45.252956 +AZURE,koreacentral,Standard_L32as_v3,reserved_3y,NA,1.229756,USD,Azure Retail Prices API,2025-12-18T04:46:45.252959 +AZURE,koreacentral,Standard_L32as_v3,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:43.823145 +AZURE,koreacentral,Standard_L32s_v3,on_demand,NA,3.272,USD,Azure Retail Prices API,2025-12-18T04:46:43.821403 +AZURE,koreacentral,Standard_L32s_v3,reserved_1y,NA,2.094064,USD,Azure Retail Prices API,2025-12-18T04:46:45.251883 +AZURE,koreacentral,Standard_L32s_v3,reserved_3y,NA,1.374239,USD,Azure Retail Prices API,2025-12-18T04:46:45.251885 +AZURE,koreacentral,Standard_L32s_v3,spot,NA,0.604666,USD,Azure Retail Prices API,2025-12-18T04:46:43.822657 +AZURE,koreacentral,Standard_L48as_v3,on_demand,NA,4.392,USD,Azure Retail Prices API,2025-12-18T04:46:43.823126 +AZURE,koreacentral,Standard_L48as_v3,reserved_1y,NA,2.810845,USD,Azure Retail Prices API,2025-12-18T04:46:45.252717 +AZURE,koreacentral,Standard_L48as_v3,reserved_3y,NA,1.844635,USD,Azure Retail Prices API,2025-12-18T04:46:45.252720 +AZURE,koreacentral,Standard_L48as_v3,spot,NA,0.811642,USD,Azure Retail Prices API,2025-12-18T04:46:43.821843 +AZURE,koreacentral,Standard_L48s_v3,on_demand,NA,4.908,USD,Azure Retail Prices API,2025-12-18T04:46:43.822231 +AZURE,koreacentral,Standard_L48s_v3,reserved_1y,NA,3.141096,USD,Azure Retail Prices API,2025-12-18T04:46:45.252273 +AZURE,koreacentral,Standard_L48s_v3,reserved_3y,NA,2.061377,USD,Azure Retail Prices API,2025-12-18T04:46:45.252276 +AZURE,koreacentral,Standard_L48s_v3,spot,NA,0.906998,USD,Azure Retail Prices API,2025-12-18T04:46:43.822275 +AZURE,koreacentral,Standard_L64as_v3,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:46:43.821885 +AZURE,koreacentral,Standard_L64as_v3,reserved_1y,NA,3.747831,USD,Azure Retail Prices API,2025-12-18T04:46:45.252139 +AZURE,koreacentral,Standard_L64as_v3,reserved_3y,NA,2.459513,USD,Azure Retail Prices API,2025-12-18T04:46:45.252142 +AZURE,koreacentral,Standard_L64as_v3,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:46:43.822236 +AZURE,koreacentral,Standard_L64s_v3,on_demand,NA,6.544,USD,Azure Retail Prices API,2025-12-18T04:46:43.821228 +AZURE,koreacentral,Standard_L64s_v3,reserved_1y,NA,4.188128,USD,Azure Retail Prices API,2025-12-18T04:46:45.251817 +AZURE,koreacentral,Standard_L64s_v3,reserved_3y,NA,2.748478,USD,Azure Retail Prices API,2025-12-18T04:46:45.251820 +AZURE,koreacentral,Standard_L64s_v3,spot,NA,1.209331,USD,Azure Retail Prices API,2025-12-18T04:46:43.822159 +AZURE,koreacentral,Standard_L80as_v3,on_demand,NA,7.32,USD,Azure Retail Prices API,2025-12-18T04:46:43.821639 +AZURE,koreacentral,Standard_L80as_v3,reserved_1y,NA,4.684817,USD,Azure Retail Prices API,2025-12-18T04:46:45.252037 +AZURE,koreacentral,Standard_L80as_v3,reserved_3y,NA,3.074391,USD,Azure Retail Prices API,2025-12-18T04:46:45.252040 +AZURE,koreacentral,Standard_L80as_v3,spot,NA,1.352736,USD,Azure Retail Prices API,2025-12-18T04:46:43.821316 +AZURE,koreacentral,Standard_L80s_v3,on_demand,NA,8.18,USD,Azure Retail Prices API,2025-12-18T04:46:43.823657 +AZURE,koreacentral,Standard_L80s_v3,reserved_1y,NA,5.23516,USD,Azure Retail Prices API,2025-12-18T04:46:45.253053 +AZURE,koreacentral,Standard_L80s_v3,reserved_3y,NA,3.435616,USD,Azure Retail Prices API,2025-12-18T04:46:45.253058 +AZURE,koreacentral,Standard_L80s_v3,spot,NA,1.511664,USD,Azure Retail Prices API,2025-12-18T04:46:43.823556 +AZURE,koreacentral,Standard_L8as_v3,on_demand,NA,0.732,USD,Azure Retail Prices API,2025-12-18T04:46:43.821557 +AZURE,koreacentral,Standard_L8as_v3,reserved_1y,NA,0.468493,USD,Azure Retail Prices API,2025-12-18T04:46:45.251972 +AZURE,koreacentral,Standard_L8as_v3,reserved_3y,NA,0.307458,USD,Azure Retail Prices API,2025-12-18T04:46:45.251975 +AZURE,koreacentral,Standard_L8as_v3,spot,NA,0.135274,USD,Azure Retail Prices API,2025-12-18T04:46:43.822323 +AZURE,koreacentral,Standard_L8s_v3,on_demand,NA,0.818,USD,Azure Retail Prices API,2025-12-18T04:46:43.822590 +AZURE,koreacentral,Standard_L8s_v3,reserved_1y,NA,0.523516,USD,Azure Retail Prices API,2025-12-18T04:46:45.252457 +AZURE,koreacentral,Standard_L8s_v3,reserved_3y,NA,0.343569,USD,Azure Retail Prices API,2025-12-18T04:46:45.252460 +AZURE,koreacentral,Standard_L8s_v3,spot,NA,0.151166,USD,Azure Retail Prices API,2025-12-18T04:46:43.821979 +AZURE,koreacentral,Standard_NC12s_v3,on_demand,NA,8.468,USD,Azure Retail Prices API,2025-12-18T04:46:43.822444 +AZURE,koreacentral,Standard_NC12s_v3,spot,NA,1.564886,USD,Azure Retail Prices API,2025-12-18T04:46:43.823436 +AZURE,koreacentral,Standard_NC16as_T4_v3,on_demand,NA,1.481,USD,Azure Retail Prices API,2025-12-18T04:46:43.822984 +AZURE,koreacentral,Standard_NC16as_T4_v3,reserved_1y,NA,0.869406,USD,Azure Retail Prices API,2025-12-18T04:46:45.252633 +AZURE,koreacentral,Standard_NC16as_T4_v3,reserved_3y,NA,0.556849,USD,Azure Retail Prices API,2025-12-18T04:46:45.252636 +AZURE,koreacentral,Standard_NC16as_T4_v3,spot,NA,0.42949,USD,Azure Retail Prices API,2025-12-18T04:46:43.821650 +AZURE,koreacentral,Standard_NC24ads_A100_v4,on_demand,NA,4.959,USD,Azure Retail Prices API,2025-12-18T04:46:43.823578 +AZURE,koreacentral,Standard_NC24ads_A100_v4,reserved_1y,NA,3.241438,USD,Azure Retail Prices API,2025-12-18T04:46:45.252979 +AZURE,koreacentral,Standard_NC24ads_A100_v4,reserved_3y,NA,1.840107,USD,Azure Retail Prices API,2025-12-18T04:46:45.252982 +AZURE,koreacentral,Standard_NC24ads_A100_v4,spot,NA,0.916423,USD,Azure Retail Prices API,2025-12-18T04:46:43.822510 +AZURE,koreacentral,Standard_NC24s_v3,on_demand,NA,16.936,USD,Azure Retail Prices API,2025-12-18T04:46:43.822906 +AZURE,koreacentral,Standard_NC24s_v3,spot,NA,3.129773,USD,Azure Retail Prices API,2025-12-18T04:46:43.822203 +AZURE,koreacentral,Standard_NC40ads_H100_v5,on_demand,NA,9.423,USD,Azure Retail Prices API,2025-12-18T04:46:43.821748 +AZURE,koreacentral,Standard_NC40ads_H100_v5,reserved_1y,NA,7.067237,USD,Azure Retail Prices API,2025-12-18T04:46:45.252088 +AZURE,koreacentral,Standard_NC40ads_H100_v5,reserved_3y,NA,5.182648,USD,Azure Retail Prices API,2025-12-18T04:46:45.252091 +AZURE,koreacentral,Standard_NC40ads_H100_v5,spot,NA,6.099508,USD,Azure Retail Prices API,2025-12-18T04:46:43.821828 +AZURE,koreacentral,Standard_NC48ads_A100_v4,on_demand,NA,9.917,USD,Azure Retail Prices API,2025-12-18T04:46:43.822550 +AZURE,koreacentral,Standard_NC48ads_A100_v4,reserved_1y,NA,6.482763,USD,Azure Retail Prices API,2025-12-18T04:46:45.252427 +AZURE,koreacentral,Standard_NC48ads_A100_v4,reserved_3y,NA,3.680251,USD,Azure Retail Prices API,2025-12-18T04:46:45.252429 +AZURE,koreacentral,Standard_NC48ads_A100_v4,spot,NA,1.832662,USD,Azure Retail Prices API,2025-12-18T04:46:43.822460 +AZURE,koreacentral,Standard_NC4as_T4_v3,on_demand,NA,0.647,USD,Azure Retail Prices API,2025-12-18T04:46:43.821359 +AZURE,koreacentral,Standard_NC4as_T4_v3,reserved_1y,NA,0.379795,USD,Azure Retail Prices API,2025-12-18T04:46:45.251861 +AZURE,koreacentral,Standard_NC4as_T4_v3,reserved_3y,NA,0.243265,USD,Azure Retail Prices API,2025-12-18T04:46:45.251864 +AZURE,koreacentral,Standard_NC4as_T4_v3,spot,NA,0.18763,USD,Azure Retail Prices API,2025-12-18T04:46:43.823367 +AZURE,koreacentral,Standard_NC64as_T4_v3,on_demand,NA,5.353,USD,Azure Retail Prices API,2025-12-18T04:46:43.822318 +AZURE,koreacentral,Standard_NC64as_T4_v3,reserved_1y,NA,3.142352,USD,Azure Retail Prices API,2025-12-18T04:46:45.252307 +AZURE,koreacentral,Standard_NC64as_T4_v3,reserved_3y,NA,2.012785,USD,Azure Retail Prices API,2025-12-18T04:46:45.252310 +AZURE,koreacentral,Standard_NC64as_T4_v3,spot,NA,1.55237,USD,Azure Retail Prices API,2025-12-18T04:46:43.823237 +AZURE,koreacentral,Standard_NC6s_v3,on_demand,NA,4.234,USD,Azure Retail Prices API,2025-12-18T04:46:43.823109 +AZURE,koreacentral,Standard_NC6s_v3,spot,NA,0.782443,USD,Azure Retail Prices API,2025-12-18T04:46:43.821478 +AZURE,koreacentral,Standard_NC8as_T4_v3,on_demand,NA,0.925,USD,Azure Retail Prices API,2025-12-18T04:46:43.822209 +AZURE,koreacentral,Standard_NC8as_T4_v3,reserved_1y,NA,0.543037,USD,Azure Retail Prices API,2025-12-18T04:46:45.252262 +AZURE,koreacentral,Standard_NC8as_T4_v3,reserved_3y,NA,0.347793,USD,Azure Retail Prices API,2025-12-18T04:46:45.252265 +AZURE,koreacentral,Standard_NC8as_T4_v3,spot,NA,0.26825,USD,Azure Retail Prices API,2025-12-18T04:46:43.821864 +AZURE,koreacentral,Standard_NC96ads_A100_v4,on_demand,NA,19.834,USD,Azure Retail Prices API,2025-12-18T04:46:43.823045 +AZURE,koreacentral,Standard_NC96ads_A100_v4,reserved_1y,NA,12.965639,USD,Azure Retail Prices API,2025-12-18T04:46:45.252671 +AZURE,koreacentral,Standard_NC96ads_A100_v4,reserved_3y,NA,7.360464,USD,Azure Retail Prices API,2025-12-18T04:46:45.252674 +AZURE,koreacentral,Standard_NC96ads_A100_v4,spot,NA,3.665323,USD,Azure Retail Prices API,2025-12-18T04:46:43.821413 +AZURE,koreacentral,Standard_ND96isr_H100_v5,on_demand,NA,132.732,USD,Azure Retail Prices API,2025-12-18T04:46:43.821158 +AZURE,koreacentral,Standard_ND96isr_H100_v5,reserved_1y,NA,84.948516,USD,Azure Retail Prices API,2025-12-18T04:46:45.251785 +AZURE,koreacentral,Standard_ND96isr_H100_v5,reserved_3y,NA,58.26933,USD,Azure Retail Prices API,2025-12-18T04:46:45.251788 +AZURE,koreacentral,Standard_ND96isr_H100_v5,spot,NA,24.528874,USD,Azure Retail Prices API,2025-12-18T04:46:43.821895 +AZURE,koreacentral,Standard_NV36adms_A10_v5,on_demand,NA,6.102,USD,Azure Retail Prices API,2025-12-18T04:46:43.822755 +AZURE,koreacentral,Standard_NV36adms_A10_v5,reserved_1y,NA,3.905251,USD,Azure Retail Prices API,2025-12-18T04:46:45.252555 +AZURE,koreacentral,Standard_NV36adms_A10_v5,reserved_3y,NA,2.684893,USD,Azure Retail Prices API,2025-12-18T04:46:45.252558 +AZURE,koreacentral,Standard_NV36adms_A10_v5,spot,NA,1.12765,USD,Azure Retail Prices API,2025-12-18T04:46:43.821190 +AZURE,koreacentral,Standard_NV36ads_A10_v5,on_demand,NA,4.32,USD,Azure Retail Prices API,2025-12-18T04:46:43.823034 +AZURE,koreacentral,Standard_NV36ads_A10_v5,reserved_1y,NA,2.76484,USD,Azure Retail Prices API,2025-12-18T04:46:45.252660 +AZURE,koreacentral,Standard_NV36ads_A10_v5,reserved_3y,NA,1.900799,USD,Azure Retail Prices API,2025-12-18T04:46:45.252663 +AZURE,koreacentral,Standard_NV36ads_A10_v5,spot,NA,0.798336,USD,Azure Retail Prices API,2025-12-18T04:46:43.822822 +AZURE,koreacentral,Standard_NV72ads_A10_v5,on_demand,NA,8.802,USD,Azure Retail Prices API,2025-12-18T04:46:43.821717 +AZURE,koreacentral,Standard_NV72ads_A10_v5,reserved_1y,NA,5.633333,USD,Azure Retail Prices API,2025-12-18T04:46:45.252071 +AZURE,koreacentral,Standard_NV72ads_A10_v5,reserved_3y,NA,3.872869,USD,Azure Retail Prices API,2025-12-18T04:46:45.252074 +AZURE,koreacentral,Standard_NV72ads_A10_v5,spot,NA,1.62661,USD,Azure Retail Prices API,2025-12-18T04:46:43.822449 +AZURE,mexicocentral,Standard_D128ds_v6,on_demand,NA,8.771,USD,Azure Retail Prices API,2025-12-18T04:47:02.440011 +AZURE,mexicocentral,Standard_D128ds_v6,reserved_1y,NA,5.437785,USD,Azure Retail Prices API,2025-12-18T04:47:03.511386 +AZURE,mexicocentral,Standard_D128ds_v6,reserved_3y,NA,3.42051,USD,Azure Retail Prices API,2025-12-18T04:47:03.511389 +AZURE,mexicocentral,Standard_D128ds_v6,spot,NA,1.620881,USD,Azure Retail Prices API,2025-12-18T04:47:02.438925 +AZURE,mexicocentral,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488760 +AZURE,mexicocentral,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488769 +AZURE,mexicocentral,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488773 +AZURE,mexicocentral,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488764 +AZURE,mexicocentral,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489572 +AZURE,mexicocentral,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489580 +AZURE,mexicocentral,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489584 +AZURE,mexicocentral,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489576 +AZURE,mexicocentral,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490621 +AZURE,mexicocentral,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490629 +AZURE,mexicocentral,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490633 +AZURE,mexicocentral,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490625 +AZURE,mexicocentral,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491372 +AZURE,mexicocentral,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491380 +AZURE,mexicocentral,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491384 +AZURE,mexicocentral,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491376 +AZURE,mexicocentral,Standard_D16_v3,on_demand,NA,0.845,USD,Azure Retail Prices API,2025-12-18T04:47:02.439984 +AZURE,mexicocentral,Standard_D16_v3,reserved_1y,NA,0.496689,USD,Azure Retail Prices API,2025-12-18T04:47:03.511361 +AZURE,mexicocentral,Standard_D16_v3,reserved_3y,NA,0.317656,USD,Azure Retail Prices API,2025-12-18T04:47:03.511364 +AZURE,mexicocentral,Standard_D16_v3,spot,NA,0.156156,USD,Azure Retail Prices API,2025-12-18T04:47:02.439413 +AZURE,mexicocentral,Standard_D16a_v4,on_demand,NA,0.845,USD,Azure Retail Prices API,2025-12-18T04:47:02.438688 +AZURE,mexicocentral,Standard_D16a_v4,reserved_1y,NA,0.496689,USD,Azure Retail Prices API,2025-12-18T04:47:03.510438 +AZURE,mexicocentral,Standard_D16a_v4,reserved_3y,NA,0.317656,USD,Azure Retail Prices API,2025-12-18T04:47:03.510440 +AZURE,mexicocentral,Standard_D16a_v4,spot,NA,0.156156,USD,Azure Retail Prices API,2025-12-18T04:47:02.438218 +AZURE,mexicocentral,Standard_D16ads_v5,on_demand,NA,0.906,USD,Azure Retail Prices API,2025-12-18T04:47:02.438132 +AZURE,mexicocentral,Standard_D16ads_v5,reserved_1y,NA,0.534817,USD,Azure Retail Prices API,2025-12-18T04:47:03.510068 +AZURE,mexicocentral,Standard_D16ads_v5,reserved_3y,NA,0.344444,USD,Azure Retail Prices API,2025-12-18T04:47:03.510071 +AZURE,mexicocentral,Standard_D16ads_v5,spot,NA,0.167429,USD,Azure Retail Prices API,2025-12-18T04:47:02.439043 +AZURE,mexicocentral,Standard_D16ads_v6,on_demand,NA,1.005,USD,Azure Retail Prices API,2025-12-18T04:47:02.438460 +AZURE,mexicocentral,Standard_D16ads_v6,spot,NA,0.185724,USD,Azure Retail Prices API,2025-12-18T04:47:02.439260 +AZURE,mexicocentral,Standard_D16as_v4,on_demand,NA,0.845,USD,Azure Retail Prices API,2025-12-18T04:47:02.438833 +AZURE,mexicocentral,Standard_D16as_v4,reserved_1y,NA,0.496689,USD,Azure Retail Prices API,2025-12-18T04:47:03.510555 +AZURE,mexicocentral,Standard_D16as_v4,reserved_3y,NA,0.317656,USD,Azure Retail Prices API,2025-12-18T04:47:03.510558 +AZURE,mexicocentral,Standard_D16as_v4,spot,NA,0.156156,USD,Azure Retail Prices API,2025-12-18T04:47:02.438938 +AZURE,mexicocentral,Standard_D16as_v5,on_demand,NA,1.493,USD,Azure Retail Prices API,2025-12-18T04:47:02.439616 +AZURE,mexicocentral,Standard_D16as_v5,reserved_1y,NA,0.446461,USD,Azure Retail Prices API,2025-12-18T04:47:03.511219 +AZURE,mexicocentral,Standard_D16as_v5,reserved_3y,NA,0.284551,USD,Azure Retail Prices API,2025-12-18T04:47:03.511222 +AZURE,mexicocentral,Standard_D16as_v5,spot,NA,0.139894,USD,Azure Retail Prices API,2025-12-18T04:47:02.439908 +AZURE,mexicocentral,Standard_D16d_v4,on_demand,NA,0.994,USD,Azure Retail Prices API,2025-12-18T04:47:02.439182 +AZURE,mexicocentral,Standard_D16d_v4,reserved_1y,NA,0.584703,USD,Azure Retail Prices API,2025-12-18T04:47:03.510746 +AZURE,mexicocentral,Standard_D16d_v4,reserved_3y,NA,0.373896,USD,Azure Retail Prices API,2025-12-18T04:47:03.510749 +AZURE,mexicocentral,Standard_D16d_v4,spot,NA,0.183691,USD,Azure Retail Prices API,2025-12-18T04:47:02.439579 +AZURE,mexicocentral,Standard_D16ds_v4,on_demand,NA,0.994,USD,Azure Retail Prices API,2025-12-18T04:47:02.439881 +AZURE,mexicocentral,Standard_D16ds_v4,reserved_1y,NA,0.584703,USD,Azure Retail Prices API,2025-12-18T04:47:03.511263 +AZURE,mexicocentral,Standard_D16ds_v4,reserved_3y,NA,0.373896,USD,Azure Retail Prices API,2025-12-18T04:47:03.511266 +AZURE,mexicocentral,Standard_D16ds_v4,spot,NA,0.183691,USD,Azure Retail Prices API,2025-12-18T04:47:02.439577 +AZURE,mexicocentral,Standard_D16ds_v5,on_demand,NA,0.994,USD,Azure Retail Prices API,2025-12-18T04:47:02.439945 +AZURE,mexicocentral,Standard_D16ds_v5,reserved_1y,NA,0.586644,USD,Azure Retail Prices API,2025-12-18T04:47:03.511325 +AZURE,mexicocentral,Standard_D16ds_v5,reserved_3y,NA,0.373896,USD,Azure Retail Prices API,2025-12-18T04:47:03.511328 +AZURE,mexicocentral,Standard_D16ds_v5,spot,NA,0.183691,USD,Azure Retail Prices API,2025-12-18T04:47:02.439440 +AZURE,mexicocentral,Standard_D16ds_v6,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:47:02.439928 +AZURE,mexicocentral,Standard_D16ds_v6,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:47:03.511300 +AZURE,mexicocentral,Standard_D16ds_v6,reserved_3y,NA,0.427549,USD,Azure Retail Prices API,2025-12-18T04:47:03.511303 +AZURE,mexicocentral,Standard_D16ds_v6,spot,NA,0.202541,USD,Azure Retail Prices API,2025-12-18T04:47:02.439877 +AZURE,mexicocentral,Standard_D16pds_v6,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:47:02.439822 +AZURE,mexicocentral,Standard_D16pds_v6,reserved_1y,NA,0.476712,USD,Azure Retail Prices API,2025-12-18T04:47:03.511174 +AZURE,mexicocentral,Standard_D16pds_v6,reserved_3y,NA,0.30704,USD,Azure Retail Prices API,2025-12-18T04:47:03.511177 +AZURE,mexicocentral,Standard_D16pds_v6,spot,NA,0.149318,USD,Azure Retail Prices API,2025-12-18T04:47:02.438127 +AZURE,mexicocentral,Standard_D16ps_v6,on_demand,NA,0.618,USD,Azure Retail Prices API,2025-12-18T04:47:02.439307 +AZURE,mexicocentral,Standard_D16ps_v6,reserved_1y,NA,0.364384,USD,Azure Retail Prices API,2025-12-18T04:47:03.510848 +AZURE,mexicocentral,Standard_D16ps_v6,reserved_3y,NA,0.234703,USD,Azure Retail Prices API,2025-12-18T04:47:03.510851 +AZURE,mexicocentral,Standard_D16ps_v6,spot,NA,0.114206,USD,Azure Retail Prices API,2025-12-18T04:47:02.438930 +AZURE,mexicocentral,Standard_D16s_v3,on_demand,NA,0.845,USD,Azure Retail Prices API,2025-12-18T04:47:02.440040 +AZURE,mexicocentral,Standard_D16s_v3,reserved_1y,NA,0.496689,USD,Azure Retail Prices API,2025-12-18T04:47:03.511418 +AZURE,mexicocentral,Standard_D16s_v3,reserved_3y,NA,0.317656,USD,Azure Retail Prices API,2025-12-18T04:47:03.511421 +AZURE,mexicocentral,Standard_D16s_v3,spot,NA,0.156156,USD,Azure Retail Prices API,2025-12-18T04:47:02.439408 +AZURE,mexicocentral,Standard_D16s_v4,on_demand,NA,0.845,USD,Azure Retail Prices API,2025-12-18T04:47:02.439291 +AZURE,mexicocentral,Standard_D16s_v4,reserved_1y,NA,0.496689,USD,Azure Retail Prices API,2025-12-18T04:47:03.510836 +AZURE,mexicocentral,Standard_D16s_v4,reserved_3y,NA,0.317656,USD,Azure Retail Prices API,2025-12-18T04:47:03.510839 +AZURE,mexicocentral,Standard_D16s_v4,spot,NA,0.156156,USD,Azure Retail Prices API,2025-12-18T04:47:02.438987 +AZURE,mexicocentral,Standard_D16s_v5,on_demand,NA,0.845,USD,Azure Retail Prices API,2025-12-18T04:47:02.438432 +AZURE,mexicocentral,Standard_D16s_v5,reserved_1y,NA,0.498402,USD,Azure Retail Prices API,2025-12-18T04:47:03.510246 +AZURE,mexicocentral,Standard_D16s_v5,reserved_3y,NA,0.312557,USD,Azure Retail Prices API,2025-12-18T04:47:03.510249 +AZURE,mexicocentral,Standard_D16s_v5,spot,NA,0.156156,USD,Azure Retail Prices API,2025-12-18T04:47:02.439153 +AZURE,mexicocentral,Standard_D2ads_v6,on_demand,NA,0.126,USD,Azure Retail Prices API,2025-12-18T04:47:02.438900 +AZURE,mexicocentral,Standard_D2ads_v6,spot,NA,0.023285,USD,Azure Retail Prices API,2025-12-18T04:47:02.438355 +AZURE,mexicocentral,Standard_D2ds_v6,on_demand,NA,0.137,USD,Azure Retail Prices API,2025-12-18T04:47:02.438735 +AZURE,mexicocentral,Standard_D2ds_v6,reserved_1y,NA,0.084932,USD,Azure Retail Prices API,2025-12-18T04:47:03.510496 +AZURE,mexicocentral,Standard_D2ds_v6,reserved_3y,NA,0.053463,USD,Azure Retail Prices API,2025-12-18T04:47:03.510499 +AZURE,mexicocentral,Standard_D2ds_v6,spot,NA,0.025318,USD,Azure Retail Prices API,2025-12-18T04:47:02.439349 +AZURE,mexicocentral,Standard_D32_v3,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:47:02.439510 +AZURE,mexicocentral,Standard_D32_v3,reserved_1y,NA,0.993493,USD,Azure Retail Prices API,2025-12-18T04:47:03.510928 +AZURE,mexicocentral,Standard_D32_v3,reserved_3y,NA,0.635274,USD,Azure Retail Prices API,2025-12-18T04:47:03.510931 +AZURE,mexicocentral,Standard_D32_v3,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:47:02.439477 +AZURE,mexicocentral,Standard_D32a_v4,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:47:02.439177 +AZURE,mexicocentral,Standard_D32a_v4,reserved_1y,NA,0.993493,USD,Azure Retail Prices API,2025-12-18T04:47:03.510740 +AZURE,mexicocentral,Standard_D32a_v4,reserved_3y,NA,0.635274,USD,Azure Retail Prices API,2025-12-18T04:47:03.510743 +AZURE,mexicocentral,Standard_D32a_v4,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:47:02.439896 +AZURE,mexicocentral,Standard_D32ads_v5,on_demand,NA,3.285,USD,Azure Retail Prices API,2025-12-18T04:47:02.438902 +AZURE,mexicocentral,Standard_D32ads_v5,reserved_1y,NA,1.069521,USD,Azure Retail Prices API,2025-12-18T04:47:03.510694 +AZURE,mexicocentral,Standard_D32ads_v5,reserved_3y,NA,0.688851,USD,Azure Retail Prices API,2025-12-18T04:47:03.510697 +AZURE,mexicocentral,Standard_D32ads_v5,spot,NA,0.335042,USD,Azure Retail Prices API,2025-12-18T04:47:02.439134 +AZURE,mexicocentral,Standard_D32ads_v6,on_demand,NA,2.01,USD,Azure Retail Prices API,2025-12-18T04:47:02.438447 +AZURE,mexicocentral,Standard_D32ads_v6,spot,NA,0.371448,USD,Azure Retail Prices API,2025-12-18T04:47:02.438880 +AZURE,mexicocentral,Standard_D32as_v4,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:47:02.439891 +AZURE,mexicocentral,Standard_D32as_v4,reserved_1y,NA,0.993493,USD,Azure Retail Prices API,2025-12-18T04:47:03.511282 +AZURE,mexicocentral,Standard_D32as_v4,reserved_3y,NA,0.635274,USD,Azure Retail Prices API,2025-12-18T04:47:03.511285 +AZURE,mexicocentral,Standard_D32as_v4,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:47:02.438153 +AZURE,mexicocentral,Standard_D32as_v5,on_demand,NA,1.514,USD,Azure Retail Prices API,2025-12-18T04:47:02.438704 +AZURE,mexicocentral,Standard_D32as_v5,reserved_1y,NA,0.893037,USD,Azure Retail Prices API,2025-12-18T04:47:03.510452 +AZURE,mexicocentral,Standard_D32as_v5,reserved_3y,NA,0.569102,USD,Azure Retail Prices API,2025-12-18T04:47:03.510456 +AZURE,mexicocentral,Standard_D32as_v5,spot,NA,0.279787,USD,Azure Retail Prices API,2025-12-18T04:47:02.439606 +AZURE,mexicocentral,Standard_D32d_v4,on_demand,NA,1.989,USD,Azure Retail Prices API,2025-12-18T04:47:02.439720 +AZURE,mexicocentral,Standard_D32d_v4,reserved_1y,NA,1.169406,USD,Azure Retail Prices API,2025-12-18T04:47:03.511040 +AZURE,mexicocentral,Standard_D32d_v4,reserved_3y,NA,0.747793,USD,Azure Retail Prices API,2025-12-18T04:47:03.511043 +AZURE,mexicocentral,Standard_D32d_v4,spot,NA,0.367567,USD,Azure Retail Prices API,2025-12-18T04:47:02.438802 +AZURE,mexicocentral,Standard_D32ds_v4,on_demand,NA,1.989,USD,Azure Retail Prices API,2025-12-18T04:47:02.439378 +AZURE,mexicocentral,Standard_D32ds_v4,reserved_1y,NA,1.169406,USD,Azure Retail Prices API,2025-12-18T04:47:03.510888 +AZURE,mexicocentral,Standard_D32ds_v4,reserved_3y,NA,0.747793,USD,Azure Retail Prices API,2025-12-18T04:47:03.510891 +AZURE,mexicocentral,Standard_D32ds_v4,spot,NA,0.367567,USD,Azure Retail Prices API,2025-12-18T04:47:02.439167 +AZURE,mexicocentral,Standard_D32ds_v5,on_demand,NA,1.989,USD,Azure Retail Prices API,2025-12-18T04:47:02.439795 +AZURE,mexicocentral,Standard_D32ds_v5,reserved_1y,NA,1.173402,USD,Azure Retail Prices API,2025-12-18T04:47:03.511142 +AZURE,mexicocentral,Standard_D32ds_v5,reserved_3y,NA,0.747793,USD,Azure Retail Prices API,2025-12-18T04:47:03.511145 +AZURE,mexicocentral,Standard_D32ds_v5,spot,NA,0.367567,USD,Azure Retail Prices API,2025-12-18T04:47:02.438149 +AZURE,mexicocentral,Standard_D32ds_v6,on_demand,NA,2.193,USD,Azure Retail Prices API,2025-12-18T04:47:02.439025 +AZURE,mexicocentral,Standard_D32ds_v6,reserved_1y,NA,1.359475,USD,Azure Retail Prices API,2025-12-18T04:47:03.510677 +AZURE,mexicocentral,Standard_D32ds_v6,reserved_3y,NA,0.855137,USD,Azure Retail Prices API,2025-12-18T04:47:03.510680 +AZURE,mexicocentral,Standard_D32ds_v6,spot,NA,0.405266,USD,Azure Retail Prices API,2025-12-18T04:47:02.438993 +AZURE,mexicocentral,Standard_D32pds_v6,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:47:02.439934 +AZURE,mexicocentral,Standard_D32pds_v6,reserved_1y,NA,0.953425,USD,Azure Retail Prices API,2025-12-18T04:47:03.511307 +AZURE,mexicocentral,Standard_D32pds_v6,reserved_3y,NA,0.614079,USD,Azure Retail Prices API,2025-12-18T04:47:03.511310 +AZURE,mexicocentral,Standard_D32pds_v6,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:47:02.439893 +AZURE,mexicocentral,Standard_D32ps_v6,on_demand,NA,1.235,USD,Azure Retail Prices API,2025-12-18T04:47:02.438091 +AZURE,mexicocentral,Standard_D32ps_v6,reserved_1y,NA,0.728767,USD,Azure Retail Prices API,2025-12-18T04:47:03.510044 +AZURE,mexicocentral,Standard_D32ps_v6,reserved_3y,NA,0.469368,USD,Azure Retail Prices API,2025-12-18T04:47:03.510057 +AZURE,mexicocentral,Standard_D32ps_v6,spot,NA,0.228228,USD,Azure Retail Prices API,2025-12-18T04:47:02.439905 +AZURE,mexicocentral,Standard_D32s_v3,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:47:02.439574 +AZURE,mexicocentral,Standard_D32s_v3,reserved_1y,NA,0.993493,USD,Azure Retail Prices API,2025-12-18T04:47:03.510962 +AZURE,mexicocentral,Standard_D32s_v3,reserved_3y,NA,0.635274,USD,Azure Retail Prices API,2025-12-18T04:47:03.510964 +AZURE,mexicocentral,Standard_D32s_v3,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:47:02.438139 +AZURE,mexicocentral,Standard_D32s_v4,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:47:02.439778 +AZURE,mexicocentral,Standard_D32s_v4,reserved_1y,NA,0.993493,USD,Azure Retail Prices API,2025-12-18T04:47:03.511124 +AZURE,mexicocentral,Standard_D32s_v4,reserved_3y,NA,0.635274,USD,Azure Retail Prices API,2025-12-18T04:47:03.511127 +AZURE,mexicocentral,Standard_D32s_v4,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:47:02.438706 +AZURE,mexicocentral,Standard_D32s_v5,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:47:02.438480 +AZURE,mexicocentral,Standard_D32s_v5,reserved_1y,NA,0.996918,USD,Azure Retail Prices API,2025-12-18T04:47:03.510279 +AZURE,mexicocentral,Standard_D32s_v5,reserved_3y,NA,0.625152,USD,Azure Retail Prices API,2025-12-18T04:47:03.510282 +AZURE,mexicocentral,Standard_D32s_v5,spot,NA,0.312312,USD,Azure Retail Prices API,2025-12-18T04:47:02.439419 +AZURE,mexicocentral,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485872 +AZURE,mexicocentral,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485881 +AZURE,mexicocentral,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485885 +AZURE,mexicocentral,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485876 +AZURE,mexicocentral,Standard_D48a_v4,on_demand,NA,2.534,USD,Azure Retail Prices API,2025-12-18T04:47:02.439775 +AZURE,mexicocentral,Standard_D48a_v4,reserved_1y,NA,1.490183,USD,Azure Retail Prices API,2025-12-18T04:47:03.511118 +AZURE,mexicocentral,Standard_D48a_v4,reserved_3y,NA,0.95293,USD,Azure Retail Prices API,2025-12-18T04:47:03.511121 +AZURE,mexicocentral,Standard_D48a_v4,spot,NA,0.468283,USD,Azure Retail Prices API,2025-12-18T04:47:02.438299 +AZURE,mexicocentral,Standard_D48ads_v5,on_demand,NA,4.927,USD,Azure Retail Prices API,2025-12-18T04:47:02.438344 +AZURE,mexicocentral,Standard_D48ads_v5,reserved_1y,NA,1.604338,USD,Azure Retail Prices API,2025-12-18T04:47:03.510596 +AZURE,mexicocentral,Standard_D48ads_v5,reserved_3y,NA,1.033295,USD,Azure Retail Prices API,2025-12-18T04:47:03.510599 +AZURE,mexicocentral,Standard_D48ads_v5,spot,NA,0.502471,USD,Azure Retail Prices API,2025-12-18T04:47:02.438190 +AZURE,mexicocentral,Standard_D48ads_v6,on_demand,NA,3.014,USD,Azure Retail Prices API,2025-12-18T04:47:02.439584 +AZURE,mexicocentral,Standard_D48ads_v6,spot,NA,0.556987,USD,Azure Retail Prices API,2025-12-18T04:47:02.439825 +AZURE,mexicocentral,Standard_D48as_v4,on_demand,NA,2.534,USD,Azure Retail Prices API,2025-12-18T04:47:02.439034 +AZURE,mexicocentral,Standard_D48as_v4,reserved_1y,NA,1.490183,USD,Azure Retail Prices API,2025-12-18T04:47:03.510688 +AZURE,mexicocentral,Standard_D48as_v4,reserved_3y,NA,0.95293,USD,Azure Retail Prices API,2025-12-18T04:47:03.510691 +AZURE,mexicocentral,Standard_D48as_v4,spot,NA,0.468283,USD,Azure Retail Prices API,2025-12-18T04:47:02.439212 +AZURE,mexicocentral,Standard_D48as_v5,on_demand,NA,4.478,USD,Azure Retail Prices API,2025-12-18T04:47:02.438622 +AZURE,mexicocentral,Standard_D48as_v5,reserved_1y,NA,1.339498,USD,Azure Retail Prices API,2025-12-18T04:47:03.510357 +AZURE,mexicocentral,Standard_D48as_v5,reserved_3y,NA,0.853653,USD,Azure Retail Prices API,2025-12-18T04:47:03.510360 +AZURE,mexicocentral,Standard_D48as_v5,spot,NA,0.419496,USD,Azure Retail Prices API,2025-12-18T04:47:02.439991 +AZURE,mexicocentral,Standard_D48d_v4,on_demand,NA,2.983,USD,Azure Retail Prices API,2025-12-18T04:47:02.438679 +AZURE,mexicocentral,Standard_D48d_v4,reserved_1y,NA,1.75411,USD,Azure Retail Prices API,2025-12-18T04:47:03.510432 +AZURE,mexicocentral,Standard_D48d_v4,reserved_3y,NA,1.121689,USD,Azure Retail Prices API,2025-12-18T04:47:03.510435 +AZURE,mexicocentral,Standard_D48d_v4,spot,NA,0.551258,USD,Azure Retail Prices API,2025-12-18T04:47:02.439526 +AZURE,mexicocentral,Standard_D48ds_v4,on_demand,NA,2.983,USD,Azure Retail Prices API,2025-12-18T04:47:02.439942 +AZURE,mexicocentral,Standard_D48ds_v4,reserved_1y,NA,1.75411,USD,Azure Retail Prices API,2025-12-18T04:47:03.511319 +AZURE,mexicocentral,Standard_D48ds_v4,reserved_3y,NA,1.121689,USD,Azure Retail Prices API,2025-12-18T04:47:03.511322 +AZURE,mexicocentral,Standard_D48ds_v4,spot,NA,0.551258,USD,Azure Retail Prices API,2025-12-18T04:47:02.438339 +AZURE,mexicocentral,Standard_D48ds_v5,on_demand,NA,2.983,USD,Azure Retail Prices API,2025-12-18T04:47:02.438712 +AZURE,mexicocentral,Standard_D48ds_v5,reserved_1y,NA,1.760046,USD,Azure Retail Prices API,2025-12-18T04:47:03.510472 +AZURE,mexicocentral,Standard_D48ds_v5,reserved_3y,NA,1.121689,USD,Azure Retail Prices API,2025-12-18T04:47:03.510477 +AZURE,mexicocentral,Standard_D48ds_v5,spot,NA,0.551258,USD,Azure Retail Prices API,2025-12-18T04:47:02.438208 +AZURE,mexicocentral,Standard_D48ds_v6,on_demand,NA,3.289,USD,Azure Retail Prices API,2025-12-18T04:47:02.440059 +AZURE,mexicocentral,Standard_D48ds_v6,reserved_1y,NA,2.039155,USD,Azure Retail Prices API,2025-12-18T04:47:03.511449 +AZURE,mexicocentral,Standard_D48ds_v6,reserved_3y,NA,1.282686,USD,Azure Retail Prices API,2025-12-18T04:47:03.511452 +AZURE,mexicocentral,Standard_D48ds_v6,spot,NA,0.607807,USD,Azure Retail Prices API,2025-12-18T04:47:02.438701 +AZURE,mexicocentral,Standard_D48pds_v6,on_demand,NA,2.424,USD,Azure Retail Prices API,2025-12-18T04:47:02.439020 +AZURE,mexicocentral,Standard_D48pds_v6,reserved_1y,NA,1.430137,USD,Azure Retail Prices API,2025-12-18T04:47:03.510671 +AZURE,mexicocentral,Standard_D48pds_v6,reserved_3y,NA,0.921119,USD,Azure Retail Prices API,2025-12-18T04:47:03.510674 +AZURE,mexicocentral,Standard_D48pds_v6,spot,NA,0.447955,USD,Azure Retail Prices API,2025-12-18T04:47:02.438496 +AZURE,mexicocentral,Standard_D48ps_v6,on_demand,NA,1.853,USD,Azure Retail Prices API,2025-12-18T04:47:02.439286 +AZURE,mexicocentral,Standard_D48ps_v6,reserved_1y,NA,1.093151,USD,Azure Retail Prices API,2025-12-18T04:47:03.510831 +AZURE,mexicocentral,Standard_D48ps_v6,reserved_3y,NA,0.704072,USD,Azure Retail Prices API,2025-12-18T04:47:03.510834 +AZURE,mexicocentral,Standard_D48ps_v6,spot,NA,0.342434,USD,Azure Retail Prices API,2025-12-18T04:47:02.438579 +AZURE,mexicocentral,Standard_D48s_v4,on_demand,NA,2.534,USD,Azure Retail Prices API,2025-12-18T04:47:02.439784 +AZURE,mexicocentral,Standard_D48s_v4,reserved_1y,NA,1.490183,USD,Azure Retail Prices API,2025-12-18T04:47:03.511136 +AZURE,mexicocentral,Standard_D48s_v4,reserved_3y,NA,0.95293,USD,Azure Retail Prices API,2025-12-18T04:47:03.511139 +AZURE,mexicocentral,Standard_D48s_v4,spot,NA,0.468283,USD,Azure Retail Prices API,2025-12-18T04:47:02.438778 +AZURE,mexicocentral,Standard_D48s_v5,on_demand,NA,2.534,USD,Azure Retail Prices API,2025-12-18T04:47:02.439939 +AZURE,mexicocentral,Standard_D48s_v5,reserved_1y,NA,1.49532,USD,Azure Retail Prices API,2025-12-18T04:47:03.511313 +AZURE,mexicocentral,Standard_D48s_v5,reserved_3y,NA,0.937709,USD,Azure Retail Prices API,2025-12-18T04:47:03.511316 +AZURE,mexicocentral,Standard_D48s_v5,spot,NA,0.468283,USD,Azure Retail Prices API,2025-12-18T04:47:02.438916 +AZURE,mexicocentral,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486762 +AZURE,mexicocentral,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486776 +AZURE,mexicocentral,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486784 +AZURE,mexicocentral,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486769 +AZURE,mexicocentral,Standard_D4a_v4,on_demand,NA,0.211,USD,Azure Retail Prices API,2025-12-18T04:47:02.439798 +AZURE,mexicocentral,Standard_D4a_v4,reserved_1y,NA,0.124201,USD,Azure Retail Prices API,2025-12-18T04:47:03.511149 +AZURE,mexicocentral,Standard_D4a_v4,reserved_3y,NA,0.079414,USD,Azure Retail Prices API,2025-12-18T04:47:03.511152 +AZURE,mexicocentral,Standard_D4a_v4,spot,NA,0.038993,USD,Azure Retail Prices API,2025-12-18T04:47:02.439937 +AZURE,mexicocentral,Standard_D4ads_v5,on_demand,NA,0.227,USD,Azure Retail Prices API,2025-12-18T04:47:02.438718 +AZURE,mexicocentral,Standard_D4ads_v5,reserved_1y,NA,0.133676,USD,Azure Retail Prices API,2025-12-18T04:47:03.510490 +AZURE,mexicocentral,Standard_D4ads_v5,reserved_3y,NA,0.086111,USD,Azure Retail Prices API,2025-12-18T04:47:03.510493 +AZURE,mexicocentral,Standard_D4ads_v5,spot,NA,0.04195,USD,Azure Retail Prices API,2025-12-18T04:47:02.438329 +AZURE,mexicocentral,Standard_D4ads_v6,on_demand,NA,0.251,USD,Azure Retail Prices API,2025-12-18T04:47:02.438547 +AZURE,mexicocentral,Standard_D4ads_v6,spot,NA,0.046385,USD,Azure Retail Prices API,2025-12-18T04:47:02.439570 +AZURE,mexicocentral,Standard_D4as_v5,on_demand,NA,0.189,USD,Azure Retail Prices API,2025-12-18T04:47:02.438570 +AZURE,mexicocentral,Standard_D4as_v5,reserved_1y,NA,0.111644,USD,Azure Retail Prices API,2025-12-18T04:47:03.510318 +AZURE,mexicocentral,Standard_D4as_v5,reserved_3y,NA,0.071157,USD,Azure Retail Prices API,2025-12-18T04:47:03.510321 +AZURE,mexicocentral,Standard_D4as_v5,spot,NA,0.034927,USD,Azure Retail Prices API,2025-12-18T04:47:02.438877 +AZURE,mexicocentral,Standard_D4d_v4,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:47:02.438813 +AZURE,mexicocentral,Standard_D4d_v4,reserved_1y,NA,0.146233,USD,Azure Retail Prices API,2025-12-18T04:47:03.510543 +AZURE,mexicocentral,Standard_D4d_v4,reserved_3y,NA,0.093455,USD,Azure Retail Prices API,2025-12-18T04:47:03.510546 +AZURE,mexicocentral,Standard_D4d_v4,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:47:02.438724 +AZURE,mexicocentral,Standard_D4ds_v4,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:47:02.439611 +AZURE,mexicocentral,Standard_D4ds_v4,reserved_1y,NA,0.146233,USD,Azure Retail Prices API,2025-12-18T04:47:03.510984 +AZURE,mexicocentral,Standard_D4ds_v4,reserved_3y,NA,0.093455,USD,Azure Retail Prices API,2025-12-18T04:47:03.510987 +AZURE,mexicocentral,Standard_D4ds_v4,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:47:02.438289 +AZURE,mexicocentral,Standard_D4ds_v5,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:47:02.440034 +AZURE,mexicocentral,Standard_D4ds_v5,reserved_1y,NA,0.146689,USD,Azure Retail Prices API,2025-12-18T04:47:03.511405 +AZURE,mexicocentral,Standard_D4ds_v5,reserved_3y,NA,0.093455,USD,Azure Retail Prices API,2025-12-18T04:47:03.511409 +AZURE,mexicocentral,Standard_D4ds_v5,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:47:02.439769 +AZURE,mexicocentral,Standard_D4ds_v6,on_demand,NA,0.274,USD,Azure Retail Prices API,2025-12-18T04:47:02.439097 +AZURE,mexicocentral,Standard_D4ds_v6,reserved_1y,NA,0.169977,USD,Azure Retail Prices API,2025-12-18T04:47:03.510723 +AZURE,mexicocentral,Standard_D4ds_v6,reserved_3y,NA,0.106887,USD,Azure Retail Prices API,2025-12-18T04:47:03.510726 +AZURE,mexicocentral,Standard_D4ds_v6,spot,NA,0.050635,USD,Azure Retail Prices API,2025-12-18T04:47:02.438684 +AZURE,mexicocentral,Standard_D4pds_v6,on_demand,NA,0.202,USD,Azure Retail Prices API,2025-12-18T04:47:02.438408 +AZURE,mexicocentral,Standard_D4pds_v6,reserved_1y,NA,0.119178,USD,Azure Retail Prices API,2025-12-18T04:47:03.510229 +AZURE,mexicocentral,Standard_D4pds_v6,reserved_3y,NA,0.07675,USD,Azure Retail Prices API,2025-12-18T04:47:03.510232 +AZURE,mexicocentral,Standard_D4pds_v6,spot,NA,0.03733,USD,Azure Retail Prices API,2025-12-18T04:47:02.439107 +AZURE,mexicocentral,Standard_D4ps_v6,on_demand,NA,0.154,USD,Azure Retail Prices API,2025-12-18T04:47:02.439353 +AZURE,mexicocentral,Standard_D4ps_v6,reserved_1y,NA,0.091096,USD,Azure Retail Prices API,2025-12-18T04:47:03.510871 +AZURE,mexicocentral,Standard_D4ps_v6,reserved_3y,NA,0.058676,USD,Azure Retail Prices API,2025-12-18T04:47:03.510874 +AZURE,mexicocentral,Standard_D4ps_v6,spot,NA,0.028459,USD,Azure Retail Prices API,2025-12-18T04:47:02.439143 +AZURE,mexicocentral,Standard_D4s_v3,on_demand,NA,0.211,USD,Azure Retail Prices API,2025-12-18T04:47:02.439053 +AZURE,mexicocentral,Standard_D4s_v3,reserved_1y,NA,0.124201,USD,Azure Retail Prices API,2025-12-18T04:47:03.510717 +AZURE,mexicocentral,Standard_D4s_v3,reserved_3y,NA,0.079414,USD,Azure Retail Prices API,2025-12-18T04:47:03.510720 +AZURE,mexicocentral,Standard_D4s_v3,spot,NA,0.038993,USD,Azure Retail Prices API,2025-12-18T04:47:02.439532 +AZURE,mexicocentral,Standard_D4s_v4,on_demand,NA,0.211,USD,Azure Retail Prices API,2025-12-18T04:47:02.439556 +AZURE,mexicocentral,Standard_D4s_v4,reserved_1y,NA,0.124201,USD,Azure Retail Prices API,2025-12-18T04:47:03.510945 +AZURE,mexicocentral,Standard_D4s_v4,reserved_3y,NA,0.079414,USD,Azure Retail Prices API,2025-12-18T04:47:03.510948 +AZURE,mexicocentral,Standard_D4s_v4,spot,NA,0.038993,USD,Azure Retail Prices API,2025-12-18T04:47:02.438378 +AZURE,mexicocentral,Standard_D4s_v5,on_demand,NA,0.211,USD,Azure Retail Prices API,2025-12-18T04:47:02.438914 +AZURE,mexicocentral,Standard_D4s_v5,reserved_1y,NA,0.124658,USD,Azure Retail Prices API,2025-12-18T04:47:03.510615 +AZURE,mexicocentral,Standard_D4s_v5,reserved_3y,NA,0.078158,USD,Azure Retail Prices API,2025-12-18T04:47:03.510617 +AZURE,mexicocentral,Standard_D4s_v5,spot,NA,0.038993,USD,Azure Retail Prices API,2025-12-18T04:47:02.438858 +AZURE,mexicocentral,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487983 +AZURE,mexicocentral,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487991 +AZURE,mexicocentral,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487995 +AZURE,mexicocentral,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487987 +AZURE,mexicocentral,Standard_D64_v3,on_demand,NA,3.379,USD,Azure Retail Prices API,2025-12-18T04:47:02.439966 +AZURE,mexicocentral,Standard_D64_v3,reserved_1y,NA,1.986986,USD,Azure Retail Prices API,2025-12-18T04:47:03.511343 +AZURE,mexicocentral,Standard_D64_v3,reserved_3y,NA,1.270586,USD,Azure Retail Prices API,2025-12-18T04:47:03.511346 +AZURE,mexicocentral,Standard_D64_v3,spot,NA,0.624439,USD,Azure Retail Prices API,2025-12-18T04:47:02.438996 +AZURE,mexicocentral,Standard_D64a_v4,on_demand,NA,3.379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438312 +AZURE,mexicocentral,Standard_D64a_v4,reserved_1y,NA,1.986986,USD,Azure Retail Prices API,2025-12-18T04:47:03.510173 +AZURE,mexicocentral,Standard_D64a_v4,reserved_3y,NA,1.270586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510176 +AZURE,mexicocentral,Standard_D64a_v4,spot,NA,0.624439,USD,Azure Retail Prices API,2025-12-18T04:47:02.439387 +AZURE,mexicocentral,Standard_D64ads_v5,on_demand,NA,6.57,USD,Azure Retail Prices API,2025-12-18T04:47:02.438796 +AZURE,mexicocentral,Standard_D64ads_v5,reserved_1y,NA,2.139155,USD,Azure Retail Prices API,2025-12-18T04:47:03.510978 +AZURE,mexicocentral,Standard_D64ads_v5,reserved_3y,NA,1.37774,USD,Azure Retail Prices API,2025-12-18T04:47:03.510981 +AZURE,mexicocentral,Standard_D64ads_v5,spot,NA,0.670085,USD,Azure Retail Prices API,2025-12-18T04:47:02.439639 +AZURE,mexicocentral,Standard_D64ads_v6,on_demand,NA,4.019,USD,Azure Retail Prices API,2025-12-18T04:47:02.438659 +AZURE,mexicocentral,Standard_D64ads_v6,spot,NA,0.742711,USD,Azure Retail Prices API,2025-12-18T04:47:02.438605 +AZURE,mexicocentral,Standard_D64as_v4,on_demand,NA,3.379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438467 +AZURE,mexicocentral,Standard_D64as_v4,reserved_1y,NA,1.986986,USD,Azure Retail Prices API,2025-12-18T04:47:03.510268 +AZURE,mexicocentral,Standard_D64as_v4,reserved_3y,NA,1.270586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510270 +AZURE,mexicocentral,Standard_D64as_v4,spot,NA,0.624439,USD,Azure Retail Prices API,2025-12-18T04:47:02.438585 +AZURE,mexicocentral,Standard_D64as_v5,on_demand,NA,3.027,USD,Azure Retail Prices API,2025-12-18T04:47:02.439424 +AZURE,mexicocentral,Standard_D64as_v5,reserved_1y,NA,1.786073,USD,Azure Retail Prices API,2025-12-18T04:47:03.510900 +AZURE,mexicocentral,Standard_D64as_v5,reserved_3y,NA,1.138242,USD,Azure Retail Prices API,2025-12-18T04:47:03.510903 +AZURE,mexicocentral,Standard_D64as_v5,spot,NA,0.55939,USD,Azure Retail Prices API,2025-12-18T04:47:02.439117 +AZURE,mexicocentral,Standard_D64d_v4,on_demand,NA,3.978,USD,Azure Retail Prices API,2025-12-18T04:47:02.438200 +AZURE,mexicocentral,Standard_D64d_v4,reserved_1y,NA,2.338813,USD,Azure Retail Prices API,2025-12-18T04:47:03.510099 +AZURE,mexicocentral,Standard_D64d_v4,reserved_3y,NA,1.495586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510102 +AZURE,mexicocentral,Standard_D64d_v4,spot,NA,0.735134,USD,Azure Retail Prices API,2025-12-18T04:47:02.439675 +AZURE,mexicocentral,Standard_D64ds_v4,on_demand,NA,3.978,USD,Azure Retail Prices API,2025-12-18T04:47:02.439885 +AZURE,mexicocentral,Standard_D64ds_v4,reserved_1y,NA,2.338813,USD,Azure Retail Prices API,2025-12-18T04:47:03.511269 +AZURE,mexicocentral,Standard_D64ds_v4,reserved_3y,NA,1.495586,USD,Azure Retail Prices API,2025-12-18T04:47:03.511272 +AZURE,mexicocentral,Standard_D64ds_v4,spot,NA,0.735134,USD,Azure Retail Prices API,2025-12-18T04:47:02.439275 +AZURE,mexicocentral,Standard_D64ds_v5,on_demand,NA,3.978,USD,Azure Retail Prices API,2025-12-18T04:47:02.439446 +AZURE,mexicocentral,Standard_D64ds_v5,reserved_1y,NA,2.346804,USD,Azure Retail Prices API,2025-12-18T04:47:03.510911 +AZURE,mexicocentral,Standard_D64ds_v5,reserved_3y,NA,1.495586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510914 +AZURE,mexicocentral,Standard_D64ds_v5,spot,NA,0.735134,USD,Azure Retail Prices API,2025-12-18T04:47:02.439028 +AZURE,mexicocentral,Standard_D64ds_v6,on_demand,NA,4.385,USD,Azure Retail Prices API,2025-12-18T04:47:02.438470 +AZURE,mexicocentral,Standard_D64ds_v6,reserved_1y,NA,2.718836,USD,Azure Retail Prices API,2025-12-18T04:47:03.510273 +AZURE,mexicocentral,Standard_D64ds_v6,reserved_3y,NA,1.710274,USD,Azure Retail Prices API,2025-12-18T04:47:03.510276 +AZURE,mexicocentral,Standard_D64ds_v6,spot,NA,0.810348,USD,Azure Retail Prices API,2025-12-18T04:47:02.439138 +AZURE,mexicocentral,Standard_D64pds_v6,on_demand,NA,3.232,USD,Azure Retail Prices API,2025-12-18T04:47:02.438394 +AZURE,mexicocentral,Standard_D64pds_v6,reserved_1y,NA,1.906849,USD,Azure Retail Prices API,2025-12-18T04:47:03.510224 +AZURE,mexicocentral,Standard_D64pds_v6,reserved_3y,NA,1.228158,USD,Azure Retail Prices API,2025-12-18T04:47:03.510227 +AZURE,mexicocentral,Standard_D64pds_v6,spot,NA,0.597274,USD,Azure Retail Prices API,2025-12-18T04:47:02.439701 +AZURE,mexicocentral,Standard_D64ps_v6,on_demand,NA,2.47,USD,Azure Retail Prices API,2025-12-18T04:47:02.438941 +AZURE,mexicocentral,Standard_D64ps_v6,reserved_1y,NA,1.457534,USD,Azure Retail Prices API,2025-12-18T04:47:03.510626 +AZURE,mexicocentral,Standard_D64ps_v6,reserved_3y,NA,0.938737,USD,Azure Retail Prices API,2025-12-18T04:47:03.510629 +AZURE,mexicocentral,Standard_D64ps_v6,spot,NA,0.456456,USD,Azure Retail Prices API,2025-12-18T04:47:02.438742 +AZURE,mexicocentral,Standard_D64s_v3,on_demand,NA,3.379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438935 +AZURE,mexicocentral,Standard_D64s_v3,reserved_1y,NA,1.986986,USD,Azure Retail Prices API,2025-12-18T04:47:03.510620 +AZURE,mexicocentral,Standard_D64s_v3,reserved_3y,NA,1.270586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510623 +AZURE,mexicocentral,Standard_D64s_v3,spot,NA,0.624439,USD,Azure Retail Prices API,2025-12-18T04:47:02.439759 +AZURE,mexicocentral,Standard_D64s_v4,on_demand,NA,3.379,USD,Azure Retail Prices API,2025-12-18T04:47:02.440005 +AZURE,mexicocentral,Standard_D64s_v4,reserved_1y,NA,1.986986,USD,Azure Retail Prices API,2025-12-18T04:47:03.511380 +AZURE,mexicocentral,Standard_D64s_v4,reserved_3y,NA,1.270586,USD,Azure Retail Prices API,2025-12-18T04:47:03.511383 +AZURE,mexicocentral,Standard_D64s_v4,spot,NA,0.624439,USD,Azure Retail Prices API,2025-12-18T04:47:02.439842 +AZURE,mexicocentral,Standard_D64s_v5,on_demand,NA,3.379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438597 +AZURE,mexicocentral,Standard_D64s_v5,reserved_1y,NA,1.993721,USD,Azure Retail Prices API,2025-12-18T04:47:03.510340 +AZURE,mexicocentral,Standard_D64s_v5,reserved_3y,NA,1.250304,USD,Azure Retail Prices API,2025-12-18T04:47:03.510343 +AZURE,mexicocentral,Standard_D64s_v5,spot,NA,0.624439,USD,Azure Retail Prices API,2025-12-18T04:47:02.438270 +AZURE,mexicocentral,Standard_D8_v3,on_demand,NA,0.422,USD,Azure Retail Prices API,2025-12-18T04:47:02.439429 +AZURE,mexicocentral,Standard_D8_v3,reserved_1y,NA,0.248402,USD,Azure Retail Prices API,2025-12-18T04:47:03.510905 +AZURE,mexicocentral,Standard_D8_v3,reserved_3y,NA,0.158828,USD,Azure Retail Prices API,2025-12-18T04:47:03.510908 +AZURE,mexicocentral,Standard_D8_v3,spot,NA,0.077986,USD,Azure Retail Prices API,2025-12-18T04:47:02.439978 +AZURE,mexicocentral,Standard_D8a_v4,on_demand,NA,0.422,USD,Azure Retail Prices API,2025-12-18T04:47:02.438662 +AZURE,mexicocentral,Standard_D8a_v4,reserved_1y,NA,0.248402,USD,Azure Retail Prices API,2025-12-18T04:47:03.510412 +AZURE,mexicocentral,Standard_D8a_v4,reserved_3y,NA,0.158828,USD,Azure Retail Prices API,2025-12-18T04:47:03.510417 +AZURE,mexicocentral,Standard_D8a_v4,spot,NA,0.077986,USD,Azure Retail Prices API,2025-12-18T04:47:02.438145 +AZURE,mexicocentral,Standard_D8ads_v5,on_demand,NA,0.453,USD,Azure Retail Prices API,2025-12-18T04:47:02.438457 +AZURE,mexicocentral,Standard_D8ads_v5,reserved_1y,NA,0.267352,USD,Azure Retail Prices API,2025-12-18T04:47:03.510262 +AZURE,mexicocentral,Standard_D8ads_v5,reserved_3y,NA,0.172222,USD,Azure Retail Prices API,2025-12-18T04:47:03.510265 +AZURE,mexicocentral,Standard_D8ads_v5,spot,NA,0.083714,USD,Azure Retail Prices API,2025-12-18T04:47:02.439790 +AZURE,mexicocentral,Standard_D8ads_v6,on_demand,NA,0.502,USD,Azure Retail Prices API,2025-12-18T04:47:02.439483 +AZURE,mexicocentral,Standard_D8ads_v6,spot,NA,0.09277,USD,Azure Retail Prices API,2025-12-18T04:47:02.439912 +AZURE,mexicocentral,Standard_D8as_v4,on_demand,NA,0.422,USD,Azure Retail Prices API,2025-12-18T04:47:02.438670 +AZURE,mexicocentral,Standard_D8as_v4,reserved_1y,NA,0.248402,USD,Azure Retail Prices API,2025-12-18T04:47:03.510420 +AZURE,mexicocentral,Standard_D8as_v4,reserved_3y,NA,0.158828,USD,Azure Retail Prices API,2025-12-18T04:47:03.510423 +AZURE,mexicocentral,Standard_D8as_v4,spot,NA,0.077986,USD,Azure Retail Prices API,2025-12-18T04:47:02.438576 +AZURE,mexicocentral,Standard_D8as_v5,on_demand,NA,0.746,USD,Azure Retail Prices API,2025-12-18T04:47:02.438214 +AZURE,mexicocentral,Standard_D8as_v5,reserved_1y,NA,0.223288,USD,Azure Retail Prices API,2025-12-18T04:47:03.511201 +AZURE,mexicocentral,Standard_D8as_v5,reserved_3y,NA,0.142275,USD,Azure Retail Prices API,2025-12-18T04:47:03.511204 +AZURE,mexicocentral,Standard_D8as_v5,spot,NA,0.069854,USD,Azure Retail Prices API,2025-12-18T04:47:02.439630 +AZURE,mexicocentral,Standard_D8d_v4,on_demand,NA,0.497,USD,Azure Retail Prices API,2025-12-18T04:47:02.439723 +AZURE,mexicocentral,Standard_D8d_v4,reserved_1y,NA,0.292352,USD,Azure Retail Prices API,2025-12-18T04:47:03.511046 +AZURE,mexicocentral,Standard_D8d_v4,reserved_3y,NA,0.186948,USD,Azure Retail Prices API,2025-12-18T04:47:03.511049 +AZURE,mexicocentral,Standard_D8d_v4,spot,NA,0.091846,USD,Azure Retail Prices API,2025-12-18T04:47:02.439564 +AZURE,mexicocentral,Standard_D8ds_v4,on_demand,NA,0.497,USD,Azure Retail Prices API,2025-12-18T04:47:02.439625 +AZURE,mexicocentral,Standard_D8ds_v4,reserved_1y,NA,0.292352,USD,Azure Retail Prices API,2025-12-18T04:47:03.510995 +AZURE,mexicocentral,Standard_D8ds_v4,reserved_3y,NA,0.186948,USD,Azure Retail Prices API,2025-12-18T04:47:03.510998 +AZURE,mexicocentral,Standard_D8ds_v4,spot,NA,0.091846,USD,Azure Retail Prices API,2025-12-18T04:47:02.439807 +AZURE,mexicocentral,Standard_D8ds_v5,on_demand,NA,0.497,USD,Azure Retail Prices API,2025-12-18T04:47:02.438349 +AZURE,mexicocentral,Standard_D8ds_v5,reserved_1y,NA,0.293379,USD,Azure Retail Prices API,2025-12-18T04:47:03.510191 +AZURE,mexicocentral,Standard_D8ds_v5,reserved_3y,NA,0.186948,USD,Azure Retail Prices API,2025-12-18T04:47:03.510194 +AZURE,mexicocentral,Standard_D8ds_v5,spot,NA,0.091846,USD,Azure Retail Prices API,2025-12-18T04:47:02.438836 +AZURE,mexicocentral,Standard_D8ds_v6,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:47:02.439667 +AZURE,mexicocentral,Standard_D8ds_v6,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:47:03.511023 +AZURE,mexicocentral,Standard_D8ds_v6,reserved_3y,NA,0.213775,USD,Azure Retail Prices API,2025-12-18T04:47:03.511026 +AZURE,mexicocentral,Standard_D8ds_v6,spot,NA,0.10127,USD,Azure Retail Prices API,2025-12-18T04:47:02.439995 +AZURE,mexicocentral,Standard_D8pds_v6,on_demand,NA,0.404,USD,Azure Retail Prices API,2025-12-18T04:47:02.438255 +AZURE,mexicocentral,Standard_D8pds_v6,reserved_1y,NA,0.238356,USD,Azure Retail Prices API,2025-12-18T04:47:03.510124 +AZURE,mexicocentral,Standard_D8pds_v6,reserved_3y,NA,0.153539,USD,Azure Retail Prices API,2025-12-18T04:47:03.510127 +AZURE,mexicocentral,Standard_D8pds_v6,spot,NA,0.074659,USD,Azure Retail Prices API,2025-12-18T04:47:02.438388 +AZURE,mexicocentral,Standard_D8ps_v6,on_demand,NA,0.309,USD,Azure Retail Prices API,2025-12-18T04:47:02.440037 +AZURE,mexicocentral,Standard_D8ps_v6,reserved_1y,NA,0.182192,USD,Azure Retail Prices API,2025-12-18T04:47:03.511412 +AZURE,mexicocentral,Standard_D8ps_v6,reserved_3y,NA,0.117352,USD,Azure Retail Prices API,2025-12-18T04:47:03.511415 +AZURE,mexicocentral,Standard_D8ps_v6,spot,NA,0.057103,USD,Azure Retail Prices API,2025-12-18T04:47:02.439960 +AZURE,mexicocentral,Standard_D8s_v3,on_demand,NA,0.422,USD,Azure Retail Prices API,2025-12-18T04:47:02.439813 +AZURE,mexicocentral,Standard_D8s_v3,reserved_1y,NA,0.248402,USD,Azure Retail Prices API,2025-12-18T04:47:03.511161 +AZURE,mexicocentral,Standard_D8s_v3,reserved_3y,NA,0.158828,USD,Azure Retail Prices API,2025-12-18T04:47:03.511164 +AZURE,mexicocentral,Standard_D8s_v3,spot,NA,0.077986,USD,Azure Retail Prices API,2025-12-18T04:47:02.438729 +AZURE,mexicocentral,Standard_D8s_v4,on_demand,NA,0.422,USD,Azure Retail Prices API,2025-12-18T04:47:02.439130 +AZURE,mexicocentral,Standard_D8s_v4,reserved_1y,NA,0.248402,USD,Azure Retail Prices API,2025-12-18T04:47:03.510729 +AZURE,mexicocentral,Standard_D8s_v4,reserved_3y,NA,0.158828,USD,Azure Retail Prices API,2025-12-18T04:47:03.510732 +AZURE,mexicocentral,Standard_D8s_v4,spot,NA,0.077986,USD,Azure Retail Prices API,2025-12-18T04:47:02.438819 +AZURE,mexicocentral,Standard_D8s_v5,on_demand,NA,0.422,USD,Azure Retail Prices API,2025-12-18T04:47:02.439221 +AZURE,mexicocentral,Standard_D8s_v5,reserved_1y,NA,0.249201,USD,Azure Retail Prices API,2025-12-18T04:47:03.510775 +AZURE,mexicocentral,Standard_D8s_v5,reserved_3y,NA,0.156279,USD,Azure Retail Prices API,2025-12-18T04:47:03.510780 +AZURE,mexicocentral,Standard_D8s_v5,spot,NA,0.077986,USD,Azure Retail Prices API,2025-12-18T04:47:02.439472 +AZURE,mexicocentral,Standard_D96a_v4,on_demand,NA,5.069,USD,Azure Retail Prices API,2025-12-18T04:47:02.438787 +AZURE,mexicocentral,Standard_D96a_v4,reserved_1y,NA,2.980479,USD,Azure Retail Prices API,2025-12-18T04:47:03.510513 +AZURE,mexicocentral,Standard_D96a_v4,reserved_3y,NA,1.90586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510516 +AZURE,mexicocentral,Standard_D96a_v4,spot,NA,0.936751,USD,Azure Retail Prices API,2025-12-18T04:47:02.439230 +AZURE,mexicocentral,Standard_D96ads_v5,on_demand,NA,5.438,USD,Azure Retail Prices API,2025-12-18T04:47:02.438639 +AZURE,mexicocentral,Standard_D96ads_v5,reserved_1y,NA,3.208676,USD,Azure Retail Prices API,2025-12-18T04:47:03.510383 +AZURE,mexicocentral,Standard_D96ads_v5,reserved_3y,NA,2.066591,USD,Azure Retail Prices API,2025-12-18T04:47:03.510387 +AZURE,mexicocentral,Standard_D96ads_v5,spot,NA,1.004942,USD,Azure Retail Prices API,2025-12-18T04:47:02.439801 +AZURE,mexicocentral,Standard_D96ads_v6,on_demand,NA,6.029,USD,Azure Retail Prices API,2025-12-18T04:47:02.438969 +AZURE,mexicocentral,Standard_D96ads_v6,spot,NA,1.114159,USD,Azure Retail Prices API,2025-12-18T04:47:02.438944 +AZURE,mexicocentral,Standard_D96as_v4,on_demand,NA,5.069,USD,Azure Retail Prices API,2025-12-18T04:47:02.438790 +AZURE,mexicocentral,Standard_D96as_v4,reserved_1y,NA,2.980479,USD,Azure Retail Prices API,2025-12-18T04:47:03.510519 +AZURE,mexicocentral,Standard_D96as_v4,reserved_3y,NA,1.90586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510522 +AZURE,mexicocentral,Standard_D96as_v4,spot,NA,0.936751,USD,Azure Retail Prices API,2025-12-18T04:47:02.438110 +AZURE,mexicocentral,Standard_D96as_v5,on_demand,NA,4.541,USD,Azure Retail Prices API,2025-12-18T04:47:02.438591 +AZURE,mexicocentral,Standard_D96as_v5,reserved_1y,NA,2.67911,USD,Azure Retail Prices API,2025-12-18T04:47:03.510335 +AZURE,mexicocentral,Standard_D96as_v5,reserved_3y,NA,1.707344,USD,Azure Retail Prices API,2025-12-18T04:47:03.510337 +AZURE,mexicocentral,Standard_D96as_v5,spot,NA,0.839177,USD,Azure Retail Prices API,2025-12-18T04:47:02.438404 +AZURE,mexicocentral,Standard_D96ds_v5,on_demand,NA,5.966,USD,Azure Retail Prices API,2025-12-18T04:47:02.438358 +AZURE,mexicocentral,Standard_D96ds_v5,reserved_1y,NA,3.520205,USD,Azure Retail Prices API,2025-12-18T04:47:03.510197 +AZURE,mexicocentral,Standard_D96ds_v5,reserved_3y,NA,2.243379,USD,Azure Retail Prices API,2025-12-18T04:47:03.510200 +AZURE,mexicocentral,Standard_D96ds_v5,spot,NA,1.102517,USD,Azure Retail Prices API,2025-12-18T04:47:02.438947 +AZURE,mexicocentral,Standard_D96ds_v6,on_demand,NA,6.578,USD,Azure Retail Prices API,2025-12-18T04:47:02.440065 +AZURE,mexicocentral,Standard_D96ds_v6,reserved_1y,NA,4.078311,USD,Azure Retail Prices API,2025-12-18T04:47:03.511455 +AZURE,mexicocentral,Standard_D96ds_v6,reserved_3y,NA,2.565373,USD,Azure Retail Prices API,2025-12-18T04:47:03.511461 +AZURE,mexicocentral,Standard_D96ds_v6,spot,NA,1.215614,USD,Azure Retail Prices API,2025-12-18T04:47:02.439787 +AZURE,mexicocentral,Standard_D96pds_v6,on_demand,NA,4.848,USD,Azure Retail Prices API,2025-12-18T04:47:02.439922 +AZURE,mexicocentral,Standard_D96pds_v6,reserved_1y,NA,2.860274,USD,Azure Retail Prices API,2025-12-18T04:47:03.511294 +AZURE,mexicocentral,Standard_D96pds_v6,reserved_3y,NA,1.842237,USD,Azure Retail Prices API,2025-12-18T04:47:03.511297 +AZURE,mexicocentral,Standard_D96pds_v6,spot,NA,0.89591,USD,Azure Retail Prices API,2025-12-18T04:47:02.438615 +AZURE,mexicocentral,Standard_D96ps_v6,on_demand,NA,3.706,USD,Azure Retail Prices API,2025-12-18T04:47:02.439620 +AZURE,mexicocentral,Standard_D96ps_v6,reserved_1y,NA,2.186301,USD,Azure Retail Prices API,2025-12-18T04:47:03.510990 +AZURE,mexicocentral,Standard_D96ps_v6,reserved_3y,NA,1.408143,USD,Azure Retail Prices API,2025-12-18T04:47:03.510992 +AZURE,mexicocentral,Standard_D96ps_v6,spot,NA,0.684869,USD,Azure Retail Prices API,2025-12-18T04:47:02.438416 +AZURE,mexicocentral,Standard_D96s_v5,on_demand,NA,5.069,USD,Azure Retail Prices API,2025-12-18T04:47:02.440051 +AZURE,mexicocentral,Standard_D96s_v5,reserved_1y,NA,2.990639,USD,Azure Retail Prices API,2025-12-18T04:47:03.511437 +AZURE,mexicocentral,Standard_D96s_v5,reserved_3y,NA,1.875457,USD,Azure Retail Prices API,2025-12-18T04:47:03.511440 +AZURE,mexicocentral,Standard_D96s_v5,spot,NA,0.936751,USD,Azure Retail Prices API,2025-12-18T04:47:02.439693 +AZURE,mexicocentral,Standard_DC16ads_v6,on_demand,NA,1.005,USD,Azure Retail Prices API,2025-12-18T04:47:02.439859 +AZURE,mexicocentral,Standard_DC16ads_v6,reserved_1y,NA,0.592808,USD,Azure Retail Prices API,2025-12-18T04:47:03.511232 +AZURE,mexicocentral,Standard_DC16ads_v6,reserved_3y,NA,0.381811,USD,Azure Retail Prices API,2025-12-18T04:47:03.511235 +AZURE,mexicocentral,Standard_DC16ads_v6,spot,NA,0.185724,USD,Azure Retail Prices API,2025-12-18T04:47:02.439598 +AZURE,mexicocentral,Standard_DC2ads_v6,on_demand,NA,0.126,USD,Azure Retail Prices API,2025-12-18T04:47:02.438633 +AZURE,mexicocentral,Standard_DC2ads_v6,reserved_1y,NA,0.074087,USD,Azure Retail Prices API,2025-12-18T04:47:03.510375 +AZURE,mexicocentral,Standard_DC2ads_v6,reserved_3y,NA,0.047717,USD,Azure Retail Prices API,2025-12-18T04:47:03.510379 +AZURE,mexicocentral,Standard_DC2ads_v6,spot,NA,0.023285,USD,Azure Retail Prices API,2025-12-18T04:47:02.439125 +AZURE,mexicocentral,Standard_DC32ads_v6,on_demand,NA,2.01,USD,Azure Retail Prices API,2025-12-18T04:47:02.438453 +AZURE,mexicocentral,Standard_DC32ads_v6,reserved_1y,NA,1.185616,USD,Azure Retail Prices API,2025-12-18T04:47:03.510257 +AZURE,mexicocentral,Standard_DC32ads_v6,reserved_3y,NA,0.763661,USD,Azure Retail Prices API,2025-12-18T04:47:03.510260 +AZURE,mexicocentral,Standard_DC32ads_v6,spot,NA,0.371448,USD,Azure Retail Prices API,2025-12-18T04:47:02.439561 +AZURE,mexicocentral,Standard_DC48ads_v6,on_demand,NA,3.014,USD,Azure Retail Prices API,2025-12-18T04:47:02.438709 +AZURE,mexicocentral,Standard_DC48ads_v6,reserved_1y,NA,1.778539,USD,Azure Retail Prices API,2025-12-18T04:47:03.510463 +AZURE,mexicocentral,Standard_DC48ads_v6,reserved_3y,NA,1.145472,USD,Azure Retail Prices API,2025-12-18T04:47:03.510468 +AZURE,mexicocentral,Standard_DC48ads_v6,spot,NA,0.556987,USD,Azure Retail Prices API,2025-12-18T04:47:02.438564 +AZURE,mexicocentral,Standard_DC4ads_v6,on_demand,NA,0.251,USD,Azure Retail Prices API,2025-12-18T04:47:02.440000 +AZURE,mexicocentral,Standard_DC4ads_v6,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:47:03.511374 +AZURE,mexicocentral,Standard_DC4ads_v6,reserved_3y,NA,0.095472,USD,Azure Retail Prices API,2025-12-18T04:47:03.511377 +AZURE,mexicocentral,Standard_DC4ads_v6,spot,NA,0.046385,USD,Azure Retail Prices API,2025-12-18T04:47:02.439462 +AZURE,mexicocentral,Standard_DC64ads_v6,on_demand,NA,4.019,USD,Azure Retail Prices API,2025-12-18T04:47:02.438411 +AZURE,mexicocentral,Standard_DC64ads_v6,reserved_1y,NA,2.371347,USD,Azure Retail Prices API,2025-12-18T04:47:03.510235 +AZURE,mexicocentral,Standard_DC64ads_v6,reserved_3y,NA,1.527283,USD,Azure Retail Prices API,2025-12-18T04:47:03.510238 +AZURE,mexicocentral,Standard_DC64ads_v6,spot,NA,0.742711,USD,Azure Retail Prices API,2025-12-18T04:47:02.438908 +AZURE,mexicocentral,Standard_DC8ads_v6,on_demand,NA,0.502,USD,Azure Retail Prices API,2025-12-18T04:47:02.439710 +AZURE,mexicocentral,Standard_DC8ads_v6,reserved_1y,NA,0.296461,USD,Azure Retail Prices API,2025-12-18T04:47:03.511035 +AZURE,mexicocentral,Standard_DC8ads_v6,reserved_3y,NA,0.190906,USD,Azure Retail Prices API,2025-12-18T04:47:03.511037 +AZURE,mexicocentral,Standard_DC8ads_v6,spot,NA,0.09277,USD,Azure Retail Prices API,2025-12-18T04:47:02.438501 +AZURE,mexicocentral,Standard_DC96ads_v6,on_demand,NA,6.029,USD,Azure Retail Prices API,2025-12-18T04:47:02.438362 +AZURE,mexicocentral,Standard_DC96ads_v6,reserved_1y,NA,3.556963,USD,Azure Retail Prices API,2025-12-18T04:47:03.510203 +AZURE,mexicocentral,Standard_DC96ads_v6,reserved_3y,NA,2.290944,USD,Azure Retail Prices API,2025-12-18T04:47:03.510205 +AZURE,mexicocentral,Standard_DC96ads_v6,spot,NA,1.114159,USD,Azure Retail Prices API,2025-12-18T04:47:02.439948 +AZURE,mexicocentral,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495756 +AZURE,mexicocentral,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495765 +AZURE,mexicocentral,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495769 +AZURE,mexicocentral,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495761 +AZURE,mexicocentral,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496646 +AZURE,mexicocentral,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496654 +AZURE,mexicocentral,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496659 +AZURE,mexicocentral,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496650 +AZURE,mexicocentral,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497508 +AZURE,mexicocentral,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497520 +AZURE,mexicocentral,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497527 +AZURE,mexicocentral,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497512 +AZURE,mexicocentral,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498270 +AZURE,mexicocentral,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498278 +AZURE,mexicocentral,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498282 +AZURE,mexicocentral,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498274 +AZURE,mexicocentral,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492112 +AZURE,mexicocentral,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492125 +AZURE,mexicocentral,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492130 +AZURE,mexicocentral,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492121 +AZURE,mexicocentral,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492824 +AZURE,mexicocentral,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492832 +AZURE,mexicocentral,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492836 +AZURE,mexicocentral,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492828 +AZURE,mexicocentral,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493557 +AZURE,mexicocentral,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493565 +AZURE,mexicocentral,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493569 +AZURE,mexicocentral,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493561 +AZURE,mexicocentral,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494269 +AZURE,mexicocentral,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494278 +AZURE,mexicocentral,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494282 +AZURE,mexicocentral,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494274 +AZURE,mexicocentral,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494979 +AZURE,mexicocentral,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494988 +AZURE,mexicocentral,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494992 +AZURE,mexicocentral,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494984 +AZURE,mexicocentral,Standard_E128ds_v6,on_demand,NA,11.512,USD,Azure Retail Prices API,2025-12-18T04:47:02.438294 +AZURE,mexicocentral,Standard_E128ds_v6,reserved_1y,NA,7.137671,USD,Azure Retail Prices API,2025-12-18T04:47:03.510162 +AZURE,mexicocentral,Standard_E128ds_v6,reserved_3y,NA,4.489802,USD,Azure Retail Prices API,2025-12-18T04:47:03.510165 +AZURE,mexicocentral,Standard_E128ds_v6,spot,NA,2.127418,USD,Azure Retail Prices API,2025-12-18T04:47:02.439962 +AZURE,mexicocentral,Standard_E16_v3,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:47:02.439781 +AZURE,mexicocentral,Standard_E16_v3,reserved_1y,NA,0.651941,USD,Azure Retail Prices API,2025-12-18T04:47:03.511130 +AZURE,mexicocentral,Standard_E16_v3,reserved_3y,NA,0.416895,USD,Azure Retail Prices API,2025-12-18T04:47:03.511133 +AZURE,mexicocentral,Standard_E16_v3,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:47:02.439194 +AZURE,mexicocentral,Standard_E16a_v4,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:47:02.439247 +AZURE,mexicocentral,Standard_E16a_v4,reserved_1y,NA,0.651941,USD,Azure Retail Prices API,2025-12-18T04:47:03.510807 +AZURE,mexicocentral,Standard_E16a_v4,reserved_3y,NA,0.416895,USD,Azure Retail Prices API,2025-12-18T04:47:03.510810 +AZURE,mexicocentral,Standard_E16a_v4,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:47:02.438886 +AZURE,mexicocentral,Standard_E16ads_v5,on_demand,NA,1.153,USD,Azure Retail Prices API,2025-12-18T04:47:02.438698 +AZURE,mexicocentral,Standard_E16ads_v5,reserved_1y,NA,0.680137,USD,Azure Retail Prices API,2025-12-18T04:47:03.510443 +AZURE,mexicocentral,Standard_E16ads_v5,reserved_3y,NA,0.438052,USD,Azure Retail Prices API,2025-12-18T04:47:03.510447 +AZURE,mexicocentral,Standard_E16ads_v5,spot,NA,0.213074,USD,Azure Retail Prices API,2025-12-18T04:47:02.438475 +AZURE,mexicocentral,Standard_E16ads_v6,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:47:02.438536 +AZURE,mexicocentral,Standard_E16ads_v6,spot,NA,0.23599,USD,Azure Retail Prices API,2025-12-18T04:47:02.439931 +AZURE,mexicocentral,Standard_E16as_v4,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:47:02.438866 +AZURE,mexicocentral,Standard_E16as_v4,reserved_1y,NA,0.651941,USD,Azure Retail Prices API,2025-12-18T04:47:03.510572 +AZURE,mexicocentral,Standard_E16as_v4,reserved_3y,NA,0.416895,USD,Azure Retail Prices API,2025-12-18T04:47:03.510575 +AZURE,mexicocentral,Standard_E16as_v4,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:47:02.439334 +AZURE,mexicocentral,Standard_E16as_v5,on_demand,NA,0.994,USD,Azure Retail Prices API,2025-12-18T04:47:02.438624 +AZURE,mexicocentral,Standard_E16as_v5,reserved_1y,NA,0.586644,USD,Azure Retail Prices API,2025-12-18T04:47:03.510362 +AZURE,mexicocentral,Standard_E16as_v5,reserved_3y,NA,0.377854,USD,Azure Retail Prices API,2025-12-18T04:47:03.510365 +AZURE,mexicocentral,Standard_E16as_v5,spot,NA,0.183691,USD,Azure Retail Prices API,2025-12-18T04:47:02.438830 +AZURE,mexicocentral,Standard_E16d_v4,on_demand,NA,1.267,USD,Azure Retail Prices API,2025-12-18T04:47:02.438839 +AZURE,mexicocentral,Standard_E16d_v4,reserved_1y,NA,0.745091,USD,Azure Retail Prices API,2025-12-18T04:47:03.510560 +AZURE,mexicocentral,Standard_E16d_v4,reserved_3y,NA,0.476484,USD,Azure Retail Prices API,2025-12-18T04:47:03.510563 +AZURE,mexicocentral,Standard_E16d_v4,spot,NA,0.234142,USD,Azure Retail Prices API,2025-12-18T04:47:02.438665 +AZURE,mexicocentral,Standard_E16ds_v4,on_demand,NA,1.267,USD,Azure Retail Prices API,2025-12-18T04:47:02.439764 +AZURE,mexicocentral,Standard_E16ds_v4,reserved_1y,NA,0.745091,USD,Azure Retail Prices API,2025-12-18T04:47:03.511103 +AZURE,mexicocentral,Standard_E16ds_v4,reserved_3y,NA,0.476484,USD,Azure Retail Prices API,2025-12-18T04:47:03.511108 +AZURE,mexicocentral,Standard_E16ds_v4,spot,NA,0.234142,USD,Azure Retail Prices API,2025-12-18T04:47:02.439302 +AZURE,mexicocentral,Standard_E16ds_v5,on_demand,NA,1.267,USD,Azure Retail Prices API,2025-12-18T04:47:02.439339 +AZURE,mexicocentral,Standard_E16ds_v5,reserved_1y,NA,0.747603,USD,Azure Retail Prices API,2025-12-18T04:47:03.510865 +AZURE,mexicocentral,Standard_E16ds_v5,reserved_3y,NA,0.476484,USD,Azure Retail Prices API,2025-12-18T04:47:03.510868 +AZURE,mexicocentral,Standard_E16ds_v5,spot,NA,0.234142,USD,Azure Retail Prices API,2025-12-18T04:47:02.439467 +AZURE,mexicocentral,Standard_E16ds_v6,on_demand,NA,1.439,USD,Azure Retail Prices API,2025-12-18T04:47:02.439954 +AZURE,mexicocentral,Standard_E16ds_v6,reserved_1y,NA,0.892237,USD,Azure Retail Prices API,2025-12-18T04:47:03.511337 +AZURE,mexicocentral,Standard_E16ds_v6,reserved_3y,NA,0.561225,USD,Azure Retail Prices API,2025-12-18T04:47:03.511340 +AZURE,mexicocentral,Standard_E16ds_v6,spot,NA,0.265927,USD,Azure Retail Prices API,2025-12-18T04:47:02.438673 +AZURE,mexicocentral,Standard_E16pds_v6,on_demand,NA,1.029,USD,Azure Retail Prices API,2025-12-18T04:47:02.438656 +AZURE,mexicocentral,Standard_E16pds_v6,spot,NA,0.190159,USD,Azure Retail Prices API,2025-12-18T04:47:02.438231 +AZURE,mexicocentral,Standard_E16ps_v6,on_demand,NA,0.811,USD,Azure Retail Prices API,2025-12-18T04:47:02.439902 +AZURE,mexicocentral,Standard_E16ps_v6,reserved_1y,NA,0.478653,USD,Azure Retail Prices API,2025-12-18T04:47:03.511288 +AZURE,mexicocentral,Standard_E16ps_v6,reserved_3y,NA,0.308257,USD,Azure Retail Prices API,2025-12-18T04:47:03.511291 +AZURE,mexicocentral,Standard_E16ps_v6,spot,NA,0.149873,USD,Azure Retail Prices API,2025-12-18T04:47:02.439685 +AZURE,mexicocentral,Standard_E16s_v3,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:47:02.438978 +AZURE,mexicocentral,Standard_E16s_v3,reserved_1y,NA,0.651941,USD,Azure Retail Prices API,2025-12-18T04:47:03.510660 +AZURE,mexicocentral,Standard_E16s_v3,reserved_3y,NA,0.416895,USD,Azure Retail Prices API,2025-12-18T04:47:03.510662 +AZURE,mexicocentral,Standard_E16s_v3,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:47:02.439816 +AZURE,mexicocentral,Standard_E16s_v4,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:47:02.438966 +AZURE,mexicocentral,Standard_E16s_v4,reserved_1y,NA,0.651941,USD,Azure Retail Prices API,2025-12-18T04:47:03.510649 +AZURE,mexicocentral,Standard_E16s_v4,reserved_3y,NA,0.416895,USD,Azure Retail Prices API,2025-12-18T04:47:03.510651 +AZURE,mexicocentral,Standard_E16s_v4,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:47:02.439714 +AZURE,mexicocentral,Standard_E16s_v5,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:47:02.438221 +AZURE,mexicocentral,Standard_E16s_v5,reserved_1y,NA,0.654224,USD,Azure Retail Prices API,2025-12-18T04:47:03.510112 +AZURE,mexicocentral,Standard_E16s_v5,reserved_3y,NA,0.410274,USD,Azure Retail Prices API,2025-12-18T04:47:03.510115 +AZURE,mexicocentral,Standard_E16s_v5,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:47:02.438950 +AZURE,mexicocentral,Standard_E20a_v4,on_demand,NA,1.386,USD,Azure Retail Prices API,2025-12-18T04:47:02.439200 +AZURE,mexicocentral,Standard_E20a_v4,reserved_1y,NA,0.814954,USD,Azure Retail Prices API,2025-12-18T04:47:03.510757 +AZURE,mexicocentral,Standard_E20a_v4,reserved_3y,NA,0.521119,USD,Azure Retail Prices API,2025-12-18T04:47:03.510760 +AZURE,mexicocentral,Standard_E20a_v4,spot,NA,0.256133,USD,Azure Retail Prices API,2025-12-18T04:47:02.439981 +AZURE,mexicocentral,Standard_E20ads_v5,on_demand,NA,2.361,USD,Azure Retail Prices API,2025-12-18T04:47:02.438507 +AZURE,mexicocentral,Standard_E20ads_v5,reserved_1y,NA,0.850228,USD,Azure Retail Prices API,2025-12-18T04:47:03.510950 +AZURE,mexicocentral,Standard_E20ads_v5,reserved_3y,NA,0.547565,USD,Azure Retail Prices API,2025-12-18T04:47:03.510953 +AZURE,mexicocentral,Standard_E20ads_v5,spot,NA,0.266297,USD,Azure Retail Prices API,2025-12-18T04:47:02.438863 +AZURE,mexicocentral,Standard_E20ads_v6,on_demand,NA,1.596,USD,Azure Retail Prices API,2025-12-18T04:47:02.439856 +AZURE,mexicocentral,Standard_E20ads_v6,spot,NA,0.294941,USD,Azure Retail Prices API,2025-12-18T04:47:02.438186 +AZURE,mexicocentral,Standard_E20as_v4,on_demand,NA,1.386,USD,Azure Retail Prices API,2025-12-18T04:47:02.439542 +AZURE,mexicocentral,Standard_E20as_v4,reserved_1y,NA,0.814954,USD,Azure Retail Prices API,2025-12-18T04:47:03.510939 +AZURE,mexicocentral,Standard_E20as_v4,reserved_3y,NA,0.521119,USD,Azure Retail Prices API,2025-12-18T04:47:03.510942 +AZURE,mexicocentral,Standard_E20as_v4,spot,NA,0.256133,USD,Azure Retail Prices API,2025-12-18T04:47:02.439265 +AZURE,mexicocentral,Standard_E20as_v5,on_demand,NA,1.243,USD,Azure Retail Prices API,2025-12-18T04:47:02.439226 +AZURE,mexicocentral,Standard_E20as_v5,reserved_1y,NA,0.733333,USD,Azure Retail Prices API,2025-12-18T04:47:03.510785 +AZURE,mexicocentral,Standard_E20as_v5,reserved_3y,NA,0.472336,USD,Azure Retail Prices API,2025-12-18T04:47:03.510790 +AZURE,mexicocentral,Standard_E20as_v5,spot,NA,0.229706,USD,Azure Retail Prices API,2025-12-18T04:47:02.438518 +AZURE,mexicocentral,Standard_E20d_v4,on_demand,NA,1.584,USD,Azure Retail Prices API,2025-12-18T04:47:02.439040 +AZURE,mexicocentral,Standard_E20d_v4,reserved_1y,NA,0.931393,USD,Azure Retail Prices API,2025-12-18T04:47:03.510700 +AZURE,mexicocentral,Standard_E20d_v4,reserved_3y,NA,0.595586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510703 +AZURE,mexicocentral,Standard_E20d_v4,spot,NA,0.292723,USD,Azure Retail Prices API,2025-12-18T04:47:02.438368 +AZURE,mexicocentral,Standard_E20ds_v4,on_demand,NA,1.584,USD,Azure Retail Prices API,2025-12-18T04:47:02.439588 +AZURE,mexicocentral,Standard_E20ds_v4,reserved_1y,NA,0.931393,USD,Azure Retail Prices API,2025-12-18T04:47:03.510973 +AZURE,mexicocentral,Standard_E20ds_v4,reserved_3y,NA,0.595586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510976 +AZURE,mexicocentral,Standard_E20ds_v4,spot,NA,0.292723,USD,Azure Retail Prices API,2025-12-18T04:47:02.438793 +AZURE,mexicocentral,Standard_E20ds_v5,on_demand,NA,1.584,USD,Azure Retail Prices API,2025-12-18T04:47:02.439662 +AZURE,mexicocentral,Standard_E20ds_v5,reserved_1y,NA,0.934589,USD,Azure Retail Prices API,2025-12-18T04:47:03.511017 +AZURE,mexicocentral,Standard_E20ds_v5,reserved_3y,NA,0.595586,USD,Azure Retail Prices API,2025-12-18T04:47:03.511020 +AZURE,mexicocentral,Standard_E20ds_v5,spot,NA,0.292723,USD,Azure Retail Prices API,2025-12-18T04:47:02.438116 +AZURE,mexicocentral,Standard_E20ds_v6,on_demand,NA,1.799,USD,Azure Retail Prices API,2025-12-18T04:47:02.438181 +AZURE,mexicocentral,Standard_E20ds_v6,reserved_1y,NA,1.115297,USD,Azure Retail Prices API,2025-12-18T04:47:03.510093 +AZURE,mexicocentral,Standard_E20ds_v6,reserved_3y,NA,0.701522,USD,Azure Retail Prices API,2025-12-18T04:47:03.510096 +AZURE,mexicocentral,Standard_E20ds_v6,spot,NA,0.332455,USD,Azure Retail Prices API,2025-12-18T04:47:02.438540 +AZURE,mexicocentral,Standard_E20s_v4,on_demand,NA,1.386,USD,Azure Retail Prices API,2025-12-18T04:47:02.439658 +AZURE,mexicocentral,Standard_E20s_v4,reserved_1y,NA,0.814954,USD,Azure Retail Prices API,2025-12-18T04:47:03.511012 +AZURE,mexicocentral,Standard_E20s_v4,reserved_3y,NA,0.521119,USD,Azure Retail Prices API,2025-12-18T04:47:03.511014 +AZURE,mexicocentral,Standard_E20s_v4,spot,NA,0.256133,USD,Azure Retail Prices API,2025-12-18T04:47:02.439316 +AZURE,mexicocentral,Standard_E20s_v5,on_demand,NA,1.386,USD,Azure Retail Prices API,2025-12-18T04:47:02.439240 +AZURE,mexicocentral,Standard_E20s_v5,reserved_1y,NA,0.817694,USD,Azure Retail Prices API,2025-12-18T04:47:03.510796 +AZURE,mexicocentral,Standard_E20s_v5,reserved_3y,NA,0.512823,USD,Azure Retail Prices API,2025-12-18T04:47:03.510802 +AZURE,mexicocentral,Standard_E20s_v5,spot,NA,0.256133,USD,Azure Retail Prices API,2025-12-18T04:47:02.439515 +AZURE,mexicocentral,Standard_E2_v3,on_demand,NA,0.139,USD,Azure Retail Prices API,2025-12-18T04:47:02.438441 +AZURE,mexicocentral,Standard_E2_v3,reserved_1y,NA,0.081507,USD,Azure Retail Prices API,2025-12-18T04:47:03.510252 +AZURE,mexicocentral,Standard_E2_v3,reserved_3y,NA,0.052131,USD,Azure Retail Prices API,2025-12-18T04:47:03.510254 +AZURE,mexicocentral,Standard_E2_v3,spot,NA,0.025687,USD,Azure Retail Prices API,2025-12-18T04:47:02.438990 +AZURE,mexicocentral,Standard_E2ads_v6,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:47:02.438872 +AZURE,mexicocentral,Standard_E2ads_v6,spot,NA,0.029568,USD,Azure Retail Prices API,2025-12-18T04:47:02.438486 +AZURE,mexicocentral,Standard_E2ds_v5,on_demand,NA,0.158,USD,Azure Retail Prices API,2025-12-18T04:47:02.439203 +AZURE,mexicocentral,Standard_E2ds_v5,reserved_1y,NA,0.093493,USD,Azure Retail Prices API,2025-12-18T04:47:03.510763 +AZURE,mexicocentral,Standard_E2ds_v5,reserved_3y,NA,0.059551,USD,Azure Retail Prices API,2025-12-18T04:47:03.510765 +AZURE,mexicocentral,Standard_E2ds_v5,spot,NA,0.029198,USD,Azure Retail Prices API,2025-12-18T04:47:02.438492 +AZURE,mexicocentral,Standard_E2ds_v6,on_demand,NA,0.18,USD,Azure Retail Prices API,2025-12-18T04:47:02.439888 +AZURE,mexicocentral,Standard_E2ds_v6,reserved_1y,NA,0.11153,USD,Azure Retail Prices API,2025-12-18T04:47:03.511276 +AZURE,mexicocentral,Standard_E2ds_v6,reserved_3y,NA,0.070167,USD,Azure Retail Prices API,2025-12-18T04:47:03.511279 +AZURE,mexicocentral,Standard_E2ds_v6,spot,NA,0.033264,USD,Azure Retail Prices API,2025-12-18T04:47:02.438861 +AZURE,mexicocentral,Standard_E2pds_v6,on_demand,NA,0.129,USD,Azure Retail Prices API,2025-12-18T04:47:02.439602 +AZURE,mexicocentral,Standard_E2pds_v6,spot,NA,0.023839,USD,Azure Retail Prices API,2025-12-18T04:47:02.438228 +AZURE,mexicocentral,Standard_E32_v3,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:47:02.440049 +AZURE,mexicocentral,Standard_E32_v3,reserved_1y,NA,1.303995,USD,Azure Retail Prices API,2025-12-18T04:47:03.511430 +AZURE,mexicocentral,Standard_E32_v3,reserved_3y,NA,0.833828,USD,Azure Retail Prices API,2025-12-18T04:47:03.511433 +AZURE,mexicocentral,Standard_E32_v3,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:47:02.438636 +AZURE,mexicocentral,Standard_E32a_v4,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:47:02.438512 +AZURE,mexicocentral,Standard_E32a_v4,reserved_1y,NA,1.303995,USD,Azure Retail Prices API,2025-12-18T04:47:03.510284 +AZURE,mexicocentral,Standard_E32a_v4,reserved_3y,NA,0.833828,USD,Azure Retail Prices API,2025-12-18T04:47:03.510287 +AZURE,mexicocentral,Standard_E32a_v4,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:47:02.439862 +AZURE,mexicocentral,Standard_E32ads_v5,on_demand,NA,3.778,USD,Azure Retail Prices API,2025-12-18T04:47:02.438195 +AZURE,mexicocentral,Standard_E32ads_v5,reserved_1y,NA,1.360274,USD,Azure Retail Prices API,2025-12-18T04:47:03.510106 +AZURE,mexicocentral,Standard_E32ads_v5,reserved_3y,NA,0.876142,USD,Azure Retail Prices API,2025-12-18T04:47:03.510109 +AZURE,mexicocentral,Standard_E32ads_v5,spot,NA,0.426149,USD,Azure Retail Prices API,2025-12-18T04:47:02.438759 +AZURE,mexicocentral,Standard_E32ads_v6,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:47:02.439312 +AZURE,mexicocentral,Standard_E32ads_v6,spot,NA,0.471979,USD,Azure Retail Prices API,2025-12-18T04:47:02.438437 +AZURE,mexicocentral,Standard_E32as_v4,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:47:02.439847 +AZURE,mexicocentral,Standard_E32as_v4,reserved_1y,NA,1.303995,USD,Azure Retail Prices API,2025-12-18T04:47:03.511207 +AZURE,mexicocentral,Standard_E32as_v4,reserved_3y,NA,0.833828,USD,Azure Retail Prices API,2025-12-18T04:47:03.511210 +AZURE,mexicocentral,Standard_E32as_v4,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:47:02.438721 +AZURE,mexicocentral,Standard_E32as_v5,on_demand,NA,1.989,USD,Azure Retail Prices API,2025-12-18T04:47:02.438557 +AZURE,mexicocentral,Standard_E32as_v5,reserved_1y,NA,1.173402,USD,Azure Retail Prices API,2025-12-18T04:47:03.510313 +AZURE,mexicocentral,Standard_E32as_v5,reserved_3y,NA,0.755746,USD,Azure Retail Prices API,2025-12-18T04:47:03.510315 +AZURE,mexicocentral,Standard_E32as_v5,spot,NA,0.367567,USD,Azure Retail Prices API,2025-12-18T04:47:02.438567 +AZURE,mexicocentral,Standard_E32d_v4,on_demand,NA,2.534,USD,Azure Retail Prices API,2025-12-18T04:47:02.439648 +AZURE,mexicocentral,Standard_E32d_v4,reserved_1y,NA,1.490183,USD,Azure Retail Prices API,2025-12-18T04:47:03.511006 +AZURE,mexicocentral,Standard_E32d_v4,reserved_3y,NA,0.95293,USD,Azure Retail Prices API,2025-12-18T04:47:03.511009 +AZURE,mexicocentral,Standard_E32d_v4,spot,NA,0.468283,USD,Azure Retail Prices API,2025-12-18T04:47:02.438756 +AZURE,mexicocentral,Standard_E32ds_v4,on_demand,NA,2.534,USD,Azure Retail Prices API,2025-12-18T04:47:02.439296 +AZURE,mexicocentral,Standard_E32ds_v4,reserved_1y,NA,1.490183,USD,Azure Retail Prices API,2025-12-18T04:47:03.510842 +AZURE,mexicocentral,Standard_E32ds_v4,reserved_3y,NA,0.95293,USD,Azure Retail Prices API,2025-12-18T04:47:03.510845 +AZURE,mexicocentral,Standard_E32ds_v4,spot,NA,0.468283,USD,Azure Retail Prices API,2025-12-18T04:47:02.439217 +AZURE,mexicocentral,Standard_E32ds_v5,on_demand,NA,2.534,USD,Azure Retail Prices API,2025-12-18T04:47:02.438582 +AZURE,mexicocentral,Standard_E32ds_v5,reserved_1y,NA,1.49532,USD,Azure Retail Prices API,2025-12-18T04:47:03.510324 +AZURE,mexicocentral,Standard_E32ds_v5,reserved_3y,NA,0.95293,USD,Azure Retail Prices API,2025-12-18T04:47:03.510326 +AZURE,mexicocentral,Standard_E32ds_v5,spot,NA,0.468283,USD,Azure Retail Prices API,2025-12-18T04:47:02.439330 +AZURE,mexicocentral,Standard_E32ds_v6,on_demand,NA,2.878,USD,Azure Retail Prices API,2025-12-18T04:47:02.438807 +AZURE,mexicocentral,Standard_E32ds_v6,reserved_1y,NA,1.784361,USD,Azure Retail Prices API,2025-12-18T04:47:03.510531 +AZURE,mexicocentral,Standard_E32ds_v6,reserved_3y,NA,1.122451,USD,Azure Retail Prices API,2025-12-18T04:47:03.510534 +AZURE,mexicocentral,Standard_E32ds_v6,spot,NA,0.531854,USD,Azure Retail Prices API,2025-12-18T04:47:02.438821 +AZURE,mexicocentral,Standard_E32pds_v6,on_demand,NA,2.058,USD,Azure Retail Prices API,2025-12-18T04:47:02.439707 +AZURE,mexicocentral,Standard_E32pds_v6,spot,NA,0.380318,USD,Azure Retail Prices API,2025-12-18T04:47:02.439735 +AZURE,mexicocentral,Standard_E32ps_v6,on_demand,NA,1.622,USD,Azure Retail Prices API,2025-12-18T04:47:02.438265 +AZURE,mexicocentral,Standard_E32ps_v6,reserved_1y,NA,0.957192,USD,Azure Retail Prices API,2025-12-18T04:47:03.510135 +AZURE,mexicocentral,Standard_E32ps_v6,reserved_3y,NA,0.616514,USD,Azure Retail Prices API,2025-12-18T04:47:03.510148 +AZURE,mexicocentral,Standard_E32ps_v6,spot,NA,0.299746,USD,Azure Retail Prices API,2025-12-18T04:47:02.439056 +AZURE,mexicocentral,Standard_E32s_v3,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:47:02.439321 +AZURE,mexicocentral,Standard_E32s_v3,reserved_1y,NA,1.303995,USD,Azure Retail Prices API,2025-12-18T04:47:03.510854 +AZURE,mexicocentral,Standard_E32s_v3,reserved_3y,NA,0.833828,USD,Azure Retail Prices API,2025-12-18T04:47:03.510857 +AZURE,mexicocentral,Standard_E32s_v3,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:47:02.439546 +AZURE,mexicocentral,Standard_E32s_v4,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:47:02.439772 +AZURE,mexicocentral,Standard_E32s_v4,reserved_1y,NA,1.303995,USD,Azure Retail Prices API,2025-12-18T04:47:03.511112 +AZURE,mexicocentral,Standard_E32s_v4,reserved_3y,NA,0.833828,USD,Azure Retail Prices API,2025-12-18T04:47:03.511115 +AZURE,mexicocentral,Standard_E32s_v4,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:47:02.438824 +AZURE,mexicocentral,Standard_E32s_v5,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:47:02.438156 +AZURE,mexicocentral,Standard_E32s_v5,reserved_1y,NA,1.308333,USD,Azure Retail Prices API,2025-12-18T04:47:03.510080 +AZURE,mexicocentral,Standard_E32s_v5,reserved_3y,NA,0.82051,USD,Azure Retail Prices API,2025-12-18T04:47:03.510084 +AZURE,mexicocentral,Standard_E32s_v5,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:47:02.438251 +AZURE,mexicocentral,Standard_E48a_v4,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:47:02.439871 +AZURE,mexicocentral,Standard_E48a_v4,reserved_1y,NA,1.955936,USD,Azure Retail Prices API,2025-12-18T04:47:03.511251 +AZURE,mexicocentral,Standard_E48a_v4,reserved_3y,NA,1.250723,USD,Azure Retail Prices API,2025-12-18T04:47:03.511254 +AZURE,mexicocentral,Standard_E48a_v4,spot,NA,0.614645,USD,Azure Retail Prices API,2025-12-18T04:47:02.439236 +AZURE,mexicocentral,Standard_E48ads_v5,on_demand,NA,5.666,USD,Azure Retail Prices API,2025-12-18T04:47:02.438543 +AZURE,mexicocentral,Standard_E48ads_v5,reserved_1y,NA,2.040411,USD,Azure Retail Prices API,2025-12-18T04:47:03.511051 +AZURE,mexicocentral,Standard_E48ads_v5,reserved_3y,NA,1.314193,USD,Azure Retail Prices API,2025-12-18T04:47:03.511054 +AZURE,mexicocentral,Standard_E48ads_v5,spot,NA,0.639038,USD,Azure Retail Prices API,2025-12-18T04:47:02.438781 +AZURE,mexicocentral,Standard_E48ads_v6,on_demand,NA,3.83,USD,Azure Retail Prices API,2025-12-18T04:47:02.439653 +AZURE,mexicocentral,Standard_E48ads_v6,spot,NA,0.707784,USD,Azure Retail Prices API,2025-12-18T04:47:02.439957 +AZURE,mexicocentral,Standard_E48as_v4,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:47:02.439986 +AZURE,mexicocentral,Standard_E48as_v4,reserved_1y,NA,1.955936,USD,Azure Retail Prices API,2025-12-18T04:47:03.511368 +AZURE,mexicocentral,Standard_E48as_v4,reserved_3y,NA,1.250723,USD,Azure Retail Prices API,2025-12-18T04:47:03.511371 +AZURE,mexicocentral,Standard_E48as_v4,spot,NA,0.614645,USD,Azure Retail Prices API,2025-12-18T04:47:02.438738 +AZURE,mexicocentral,Standard_E48as_v5,on_demand,NA,5.191,USD,Azure Retail Prices API,2025-12-18T04:47:02.438984 +AZURE,mexicocentral,Standard_E48as_v5,reserved_1y,NA,1.760046,USD,Azure Retail Prices API,2025-12-18T04:47:03.510934 +AZURE,mexicocentral,Standard_E48as_v5,reserved_3y,NA,1.1336,USD,Azure Retail Prices API,2025-12-18T04:47:03.510936 +AZURE,mexicocentral,Standard_E48as_v5,spot,NA,0.551258,USD,Azure Retail Prices API,2025-12-18T04:47:02.438920 +AZURE,mexicocentral,Standard_E48d_v4,on_demand,NA,3.802,USD,Azure Retail Prices API,2025-12-18T04:47:02.438810 +AZURE,mexicocentral,Standard_E48d_v4,reserved_1y,NA,2.235388,USD,Azure Retail Prices API,2025-12-18T04:47:03.510537 +AZURE,mexicocentral,Standard_E48d_v4,reserved_3y,NA,1.429414,USD,Azure Retail Prices API,2025-12-18T04:47:03.510540 +AZURE,mexicocentral,Standard_E48d_v4,spot,NA,0.70261,USD,Azure Retail Prices API,2025-12-18T04:47:02.440023 +AZURE,mexicocentral,Standard_E48ds_v4,on_demand,NA,3.802,USD,Azure Retail Prices API,2025-12-18T04:47:02.439832 +AZURE,mexicocentral,Standard_E48ds_v4,reserved_1y,NA,2.235388,USD,Azure Retail Prices API,2025-12-18T04:47:03.511186 +AZURE,mexicocentral,Standard_E48ds_v4,reserved_3y,NA,1.429414,USD,Azure Retail Prices API,2025-12-18T04:47:03.511192 +AZURE,mexicocentral,Standard_E48ds_v4,spot,NA,0.70261,USD,Azure Retail Prices API,2025-12-18T04:47:02.439499 +AZURE,mexicocentral,Standard_E48ds_v5,on_demand,NA,3.802,USD,Azure Retail Prices API,2025-12-18T04:47:02.438641 +AZURE,mexicocentral,Standard_E48ds_v5,reserved_1y,NA,2.242922,USD,Azure Retail Prices API,2025-12-18T04:47:03.510392 +AZURE,mexicocentral,Standard_E48ds_v5,reserved_3y,NA,1.429414,USD,Azure Retail Prices API,2025-12-18T04:47:03.510396 +AZURE,mexicocentral,Standard_E48ds_v5,spot,NA,0.70261,USD,Azure Retail Prices API,2025-12-18T04:47:02.439456 +AZURE,mexicocentral,Standard_E48ds_v6,on_demand,NA,4.317,USD,Azure Retail Prices API,2025-12-18T04:47:02.438972 +AZURE,mexicocentral,Standard_E48ds_v6,reserved_1y,NA,2.676598,USD,Azure Retail Prices API,2025-12-18T04:47:03.510654 +AZURE,mexicocentral,Standard_E48ds_v6,reserved_3y,NA,1.683676,USD,Azure Retail Prices API,2025-12-18T04:47:03.510657 +AZURE,mexicocentral,Standard_E48ds_v6,spot,NA,0.797782,USD,Azure Retail Prices API,2025-12-18T04:47:02.439743 +AZURE,mexicocentral,Standard_E48pds_v6,on_demand,NA,3.086,USD,Azure Retail Prices API,2025-12-18T04:47:02.438774 +AZURE,mexicocentral,Standard_E48pds_v6,spot,NA,0.570293,USD,Azure Retail Prices API,2025-12-18T04:47:02.438957 +AZURE,mexicocentral,Standard_E48ps_v6,on_demand,NA,2.434,USD,Azure Retail Prices API,2025-12-18T04:47:02.438135 +AZURE,mexicocentral,Standard_E48ps_v6,reserved_1y,NA,1.435845,USD,Azure Retail Prices API,2025-12-18T04:47:03.510074 +AZURE,mexicocentral,Standard_E48ps_v6,reserved_3y,NA,0.924772,USD,Azure Retail Prices API,2025-12-18T04:47:03.510077 +AZURE,mexicocentral,Standard_E48ps_v6,spot,NA,0.449803,USD,Azure Retail Prices API,2025-12-18T04:47:02.439917 +AZURE,mexicocentral,Standard_E48s_v4,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:47:02.439749 +AZURE,mexicocentral,Standard_E48s_v4,reserved_1y,NA,1.955936,USD,Azure Retail Prices API,2025-12-18T04:47:03.511094 +AZURE,mexicocentral,Standard_E48s_v4,reserved_3y,NA,1.250723,USD,Azure Retail Prices API,2025-12-18T04:47:03.511099 +AZURE,mexicocentral,Standard_E48s_v4,spot,NA,0.614645,USD,Azure Retail Prices API,2025-12-18T04:47:02.439373 +AZURE,mexicocentral,Standard_E48s_v5,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:47:02.438911 +AZURE,mexicocentral,Standard_E48s_v5,reserved_1y,NA,1.962557,USD,Azure Retail Prices API,2025-12-18T04:47:03.510609 +AZURE,mexicocentral,Standard_E48s_v5,reserved_3y,NA,1.230784,USD,Azure Retail Prices API,2025-12-18T04:47:03.510612 +AZURE,mexicocentral,Standard_E48s_v5,spot,NA,0.614645,USD,Azure Retail Prices API,2025-12-18T04:47:02.438894 +AZURE,mexicocentral,Standard_E4_v3,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:47:02.438630 +AZURE,mexicocentral,Standard_E4_v3,reserved_1y,NA,0.163014,USD,Azure Retail Prices API,2025-12-18T04:47:03.510368 +AZURE,mexicocentral,Standard_E4_v3,reserved_3y,NA,0.104224,USD,Azure Retail Prices API,2025-12-18T04:47:03.510371 +AZURE,mexicocentral,Standard_E4_v3,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:47:02.438594 +AZURE,mexicocentral,Standard_E4a_v4,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:47:02.439567 +AZURE,mexicocentral,Standard_E4a_v4,reserved_1y,NA,0.163014,USD,Azure Retail Prices API,2025-12-18T04:47:03.510956 +AZURE,mexicocentral,Standard_E4a_v4,reserved_3y,NA,0.104224,USD,Azure Retail Prices API,2025-12-18T04:47:03.510959 +AZURE,mexicocentral,Standard_E4a_v4,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:47:02.438627 +AZURE,mexicocentral,Standard_E4ads_v5,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:47:02.439159 +AZURE,mexicocentral,Standard_E4ads_v5,reserved_1y,NA,0.170091,USD,Azure Retail Prices API,2025-12-18T04:47:03.511155 +AZURE,mexicocentral,Standard_E4ads_v5,reserved_3y,NA,0.109513,USD,Azure Retail Prices API,2025-12-18T04:47:03.511158 +AZURE,mexicocentral,Standard_E4ads_v5,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:47:02.438744 +AZURE,mexicocentral,Standard_E4ads_v6,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:47:02.439732 +AZURE,mexicocentral,Standard_E4ads_v6,spot,NA,0.058951,USD,Azure Retail Prices API,2025-12-18T04:47:02.438273 +AZURE,mexicocentral,Standard_E4as_v4,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:47:02.439031 +AZURE,mexicocentral,Standard_E4as_v4,reserved_1y,NA,0.163014,USD,Azure Retail Prices API,2025-12-18T04:47:03.510683 +AZURE,mexicocentral,Standard_E4as_v4,reserved_3y,NA,0.104224,USD,Azure Retail Prices API,2025-12-18T04:47:03.510685 +AZURE,mexicocentral,Standard_E4as_v4,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:47:02.439505 +AZURE,mexicocentral,Standard_E4as_v5,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:47:02.439015 +AZURE,mexicocentral,Standard_E4as_v5,reserved_1y,NA,0.146689,USD,Azure Retail Prices API,2025-12-18T04:47:03.510665 +AZURE,mexicocentral,Standard_E4as_v5,reserved_3y,NA,0.094482,USD,Azure Retail Prices API,2025-12-18T04:47:03.510668 +AZURE,mexicocentral,Standard_E4as_v5,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:47:02.438401 +AZURE,mexicocentral,Standard_E4d_v4,on_demand,NA,0.317,USD,Azure Retail Prices API,2025-12-18T04:47:02.439281 +AZURE,mexicocentral,Standard_E4d_v4,reserved_1y,NA,0.186301,USD,Azure Retail Prices API,2025-12-18T04:47:03.510825 +AZURE,mexicocentral,Standard_E4d_v4,reserved_3y,NA,0.119102,USD,Azure Retail Prices API,2025-12-18T04:47:03.510828 +AZURE,mexicocentral,Standard_E4d_v4,spot,NA,0.058582,USD,Azure Retail Prices API,2025-12-18T04:47:02.438849 +AZURE,mexicocentral,Standard_E4ds_v4,on_demand,NA,0.317,USD,Azure Retail Prices API,2025-12-18T04:47:02.439868 +AZURE,mexicocentral,Standard_E4ds_v4,reserved_1y,NA,0.186301,USD,Azure Retail Prices API,2025-12-18T04:47:03.511245 +AZURE,mexicocentral,Standard_E4ds_v4,reserved_3y,NA,0.119102,USD,Azure Retail Prices API,2025-12-18T04:47:03.511248 +AZURE,mexicocentral,Standard_E4ds_v4,spot,NA,0.058582,USD,Azure Retail Prices API,2025-12-18T04:47:02.438647 +AZURE,mexicocentral,Standard_E4ds_v5,on_demand,NA,0.317,USD,Azure Retail Prices API,2025-12-18T04:47:02.438827 +AZURE,mexicocentral,Standard_E4ds_v5,reserved_1y,NA,0.186872,USD,Azure Retail Prices API,2025-12-18T04:47:03.510549 +AZURE,mexicocentral,Standard_E4ds_v5,reserved_3y,NA,0.119102,USD,Azure Retail Prices API,2025-12-18T04:47:03.510552 +AZURE,mexicocentral,Standard_E4ds_v5,spot,NA,0.058582,USD,Azure Retail Prices API,2025-12-18T04:47:02.439592 +AZURE,mexicocentral,Standard_E4ds_v6,on_demand,NA,0.36,USD,Azure Retail Prices API,2025-12-18T04:47:02.440046 +AZURE,mexicocentral,Standard_E4ds_v6,reserved_1y,NA,0.223059,USD,Azure Retail Prices API,2025-12-18T04:47:03.511424 +AZURE,mexicocentral,Standard_E4ds_v6,reserved_3y,NA,0.140297,USD,Azure Retail Prices API,2025-12-18T04:47:03.511427 +AZURE,mexicocentral,Standard_E4ds_v6,spot,NA,0.066528,USD,Azure Retail Prices API,2025-12-18T04:47:02.438785 +AZURE,mexicocentral,Standard_E4pds_v6,on_demand,NA,0.257,USD,Azure Retail Prices API,2025-12-18T04:47:02.438224 +AZURE,mexicocentral,Standard_E4pds_v6,spot,NA,0.047494,USD,Azure Retail Prices API,2025-12-18T04:47:02.439551 +AZURE,mexicocentral,Standard_E4ps_v6,on_demand,NA,0.203,USD,Azure Retail Prices API,2025-12-18T04:47:02.439254 +AZURE,mexicocentral,Standard_E4ps_v6,reserved_1y,NA,0.119635,USD,Azure Retail Prices API,2025-12-18T04:47:03.510813 +AZURE,mexicocentral,Standard_E4ps_v6,reserved_3y,NA,0.077055,USD,Azure Retail Prices API,2025-12-18T04:47:03.510816 +AZURE,mexicocentral,Standard_E4ps_v6,spot,NA,0.037514,USD,Azure Retail Prices API,2025-12-18T04:47:02.438804 +AZURE,mexicocentral,Standard_E4s_v4,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:47:02.438897 +AZURE,mexicocentral,Standard_E4s_v4,reserved_1y,NA,0.163014,USD,Azure Retail Prices API,2025-12-18T04:47:03.510602 +AZURE,mexicocentral,Standard_E4s_v4,reserved_3y,NA,0.104224,USD,Azure Retail Prices API,2025-12-18T04:47:03.510605 +AZURE,mexicocentral,Standard_E4s_v4,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:47:02.439112 +AZURE,mexicocentral,Standard_E4s_v5,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:47:02.440025 +AZURE,mexicocentral,Standard_E4s_v5,reserved_1y,NA,0.163584,USD,Azure Retail Prices API,2025-12-18T04:47:03.511393 +AZURE,mexicocentral,Standard_E4s_v5,reserved_3y,NA,0.102549,USD,Azure Retail Prices API,2025-12-18T04:47:03.511396 +AZURE,mexicocentral,Standard_E4s_v5,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:47:02.439644 +AZURE,mexicocentral,Standard_E64_v3,on_demand,NA,3.992,USD,Azure Retail Prices API,2025-12-18T04:47:02.438159 +AZURE,mexicocentral,Standard_E64_v3,reserved_1y,NA,2.347146,USD,Azure Retail Prices API,2025-12-18T04:47:03.510087 +AZURE,mexicocentral,Standard_E64_v3,reserved_3y,NA,1.500875,USD,Azure Retail Prices API,2025-12-18T04:47:03.510090 +AZURE,mexicocentral,Standard_E64_v3,spot,NA,0.737722,USD,Azure Retail Prices API,2025-12-18T04:47:02.439187 +AZURE,mexicocentral,Standard_E64a_v4,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:47:02.439368 +AZURE,mexicocentral,Standard_E64a_v4,reserved_1y,NA,2.607877,USD,Azure Retail Prices API,2025-12-18T04:47:03.510883 +AZURE,mexicocentral,Standard_E64a_v4,reserved_3y,NA,1.667618,USD,Azure Retail Prices API,2025-12-18T04:47:03.510886 +AZURE,mexicocentral,Standard_E64a_v4,spot,NA,0.819588,USD,Azure Retail Prices API,2025-12-18T04:47:02.438854 +AZURE,mexicocentral,Standard_E64ads_v5,on_demand,NA,7.555,USD,Azure Retail Prices API,2025-12-18T04:47:02.438891 +AZURE,mexicocentral,Standard_E64ads_v5,reserved_1y,NA,2.720662,USD,Azure Retail Prices API,2025-12-18T04:47:03.510967 +AZURE,mexicocentral,Standard_E64ads_v5,reserved_3y,NA,1.752245,USD,Azure Retail Prices API,2025-12-18T04:47:03.510970 +AZURE,mexicocentral,Standard_E64ads_v5,spot,NA,0.852113,USD,Azure Retail Prices API,2025-12-18T04:47:02.439005 +AZURE,mexicocentral,Standard_E64ads_v6,on_demand,NA,5.107,USD,Azure Retail Prices API,2025-12-18T04:47:02.438981 +AZURE,mexicocentral,Standard_E64ads_v6,spot,NA,0.943774,USD,Azure Retail Prices API,2025-12-18T04:47:02.438653 +AZURE,mexicocentral,Standard_E64as_v4,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:47:02.438963 +AZURE,mexicocentral,Standard_E64as_v4,reserved_1y,NA,2.607877,USD,Azure Retail Prices API,2025-12-18T04:47:03.510638 +AZURE,mexicocentral,Standard_E64as_v4,reserved_3y,NA,1.667618,USD,Azure Retail Prices API,2025-12-18T04:47:03.510640 +AZURE,mexicocentral,Standard_E64as_v4,spot,NA,0.819588,USD,Azure Retail Prices API,2025-12-18T04:47:02.439393 +AZURE,mexicocentral,Standard_E64as_v5,on_demand,NA,6.922,USD,Azure Retail Prices API,2025-12-18T04:47:02.438142 +AZURE,mexicocentral,Standard_E64as_v5,reserved_1y,NA,2.346804,USD,Azure Retail Prices API,2025-12-18T04:47:03.510916 +AZURE,mexicocentral,Standard_E64as_v5,reserved_3y,NA,1.511492,USD,Azure Retail Prices API,2025-12-18T04:47:03.510919 +AZURE,mexicocentral,Standard_E64as_v5,spot,NA,0.735134,USD,Azure Retail Prices API,2025-12-18T04:47:02.438644 +AZURE,mexicocentral,Standard_E64d_v4,on_demand,NA,5.069,USD,Azure Retail Prices API,2025-12-18T04:47:02.438554 +AZURE,mexicocentral,Standard_E64d_v4,reserved_1y,NA,2.980479,USD,Azure Retail Prices API,2025-12-18T04:47:03.510307 +AZURE,mexicocentral,Standard_E64d_v4,reserved_3y,NA,1.90586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510310 +AZURE,mexicocentral,Standard_E64d_v4,spot,NA,0.936751,USD,Azure Retail Prices API,2025-12-18T04:47:02.439435 +AZURE,mexicocentral,Standard_E64ds_v4,on_demand,NA,5.069,USD,Azure Retail Prices API,2025-12-18T04:47:02.438521 +AZURE,mexicocentral,Standard_E64ds_v4,reserved_1y,NA,2.980479,USD,Azure Retail Prices API,2025-12-18T04:47:03.510290 +AZURE,mexicocentral,Standard_E64ds_v4,reserved_3y,NA,1.90586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510293 +AZURE,mexicocentral,Standard_E64ds_v4,spot,NA,0.936751,USD,Azure Retail Prices API,2025-12-18T04:47:02.439671 +AZURE,mexicocentral,Standard_E64ds_v5,on_demand,NA,5.069,USD,Azure Retail Prices API,2025-12-18T04:47:02.438375 +AZURE,mexicocentral,Standard_E64ds_v5,reserved_1y,NA,2.990639,USD,Azure Retail Prices API,2025-12-18T04:47:03.510213 +AZURE,mexicocentral,Standard_E64ds_v5,reserved_3y,NA,1.90586,USD,Azure Retail Prices API,2025-12-18T04:47:03.510216 +AZURE,mexicocentral,Standard_E64ds_v5,spot,NA,0.936751,USD,Azure Retail Prices API,2025-12-18T04:47:02.439398 +AZURE,mexicocentral,Standard_E64ds_v6,on_demand,NA,5.756,USD,Azure Retail Prices API,2025-12-18T04:47:02.438676 +AZURE,mexicocentral,Standard_E64ds_v6,reserved_1y,NA,3.568836,USD,Azure Retail Prices API,2025-12-18T04:47:03.510426 +AZURE,mexicocentral,Standard_E64ds_v6,reserved_3y,NA,2.244901,USD,Azure Retail Prices API,2025-12-18T04:47:03.510429 +AZURE,mexicocentral,Standard_E64ds_v6,spot,NA,1.063709,USD,Azure Retail Prices API,2025-12-18T04:47:02.438176 +AZURE,mexicocentral,Standard_E64pds_v6,on_demand,NA,4.115,USD,Azure Retail Prices API,2025-12-18T04:47:02.439696 +AZURE,mexicocentral,Standard_E64pds_v6,spot,NA,0.760452,USD,Azure Retail Prices API,2025-12-18T04:47:02.439148 +AZURE,mexicocentral,Standard_E64ps_v6,on_demand,NA,3.245,USD,Azure Retail Prices API,2025-12-18T04:47:02.439973 +AZURE,mexicocentral,Standard_E64ps_v6,reserved_1y,NA,1.914384,USD,Azure Retail Prices API,2025-12-18T04:47:03.511349 +AZURE,mexicocentral,Standard_E64ps_v6,reserved_3y,NA,1.233029,USD,Azure Retail Prices API,2025-12-18T04:47:03.511352 +AZURE,mexicocentral,Standard_E64ps_v6,spot,NA,0.599676,USD,Azure Retail Prices API,2025-12-18T04:47:02.438573 +AZURE,mexicocentral,Standard_E64s_v3,on_demand,NA,3.992,USD,Azure Retail Prices API,2025-12-18T04:47:02.438888 +AZURE,mexicocentral,Standard_E64s_v3,reserved_1y,NA,2.347146,USD,Azure Retail Prices API,2025-12-18T04:47:03.510590 +AZURE,mexicocentral,Standard_E64s_v3,reserved_3y,NA,1.500875,USD,Azure Retail Prices API,2025-12-18T04:47:03.510593 +AZURE,mexicocentral,Standard_E64s_v3,spot,NA,0.737722,USD,Azure Retail Prices API,2025-12-18T04:47:02.439172 +AZURE,mexicocentral,Standard_E64s_v4,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:47:02.439163 +AZURE,mexicocentral,Standard_E64s_v4,reserved_1y,NA,2.607877,USD,Azure Retail Prices API,2025-12-18T04:47:03.510734 +AZURE,mexicocentral,Standard_E64s_v4,reserved_3y,NA,1.667618,USD,Azure Retail Prices API,2025-12-18T04:47:03.510737 +AZURE,mexicocentral,Standard_E64s_v4,spot,NA,0.819588,USD,Azure Retail Prices API,2025-12-18T04:47:02.438560 +AZURE,mexicocentral,Standard_E64s_v5,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:47:02.439873 +AZURE,mexicocentral,Standard_E64s_v5,reserved_1y,NA,2.616781,USD,Azure Retail Prices API,2025-12-18T04:47:03.511257 +AZURE,mexicocentral,Standard_E64s_v5,reserved_3y,NA,1.64102,USD,Azure Retail Prices API,2025-12-18T04:47:03.511260 +AZURE,mexicocentral,Standard_E64s_v5,spot,NA,0.819588,USD,Azure Retail Prices API,2025-12-18T04:47:02.439494 +AZURE,mexicocentral,Standard_E80ids_v4,on_demand,NA,6.336,USD,Azure Retail Prices API,2025-12-18T04:47:02.438715 +AZURE,mexicocentral,Standard_E80ids_v4,reserved_1y,NA,3.725571,USD,Azure Retail Prices API,2025-12-18T04:47:03.510481 +AZURE,mexicocentral,Standard_E80ids_v4,reserved_3y,NA,2.382344,USD,Azure Retail Prices API,2025-12-18T04:47:03.510487 +AZURE,mexicocentral,Standard_E80ids_v4,spot,NA,1.170893,USD,Azure Retail Prices API,2025-12-18T04:47:02.438450 +AZURE,mexicocentral,Standard_E80is_v4,on_demand,NA,5.544,USD,Azure Retail Prices API,2025-12-18T04:47:02.439488 +AZURE,mexicocentral,Standard_E80is_v4,reserved_1y,NA,3.259817,USD,Azure Retail Prices API,2025-12-18T04:47:03.510922 +AZURE,mexicocentral,Standard_E80is_v4,reserved_3y,NA,2.084551,USD,Azure Retail Prices API,2025-12-18T04:47:03.510925 +AZURE,mexicocentral,Standard_E80is_v4,spot,NA,1.024531,USD,Azure Retail Prices API,2025-12-18T04:47:02.438381 +AZURE,mexicocentral,Standard_E8_v3,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:47:02.438753 +AZURE,mexicocentral,Standard_E8_v3,reserved_1y,NA,0.326027,USD,Azure Retail Prices API,2025-12-18T04:47:03.510501 +AZURE,mexicocentral,Standard_E8_v3,reserved_3y,NA,0.208447,USD,Azure Retail Prices API,2025-12-18T04:47:03.510505 +AZURE,mexicocentral,Standard_E8_v3,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438750 +AZURE,mexicocentral,Standard_E8a_v4,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:47:02.439359 +AZURE,mexicocentral,Standard_E8a_v4,reserved_1y,NA,0.326027,USD,Azure Retail Prices API,2025-12-18T04:47:03.510876 +AZURE,mexicocentral,Standard_E8a_v4,reserved_3y,NA,0.208447,USD,Azure Retail Prices API,2025-12-18T04:47:03.510880 +AZURE,mexicocentral,Standard_E8a_v4,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438869 +AZURE,mexicocentral,Standard_E8ads_v5,on_demand,NA,0.944,USD,Azure Retail Prices API,2025-12-18T04:47:02.438727 +AZURE,mexicocentral,Standard_E8ads_v5,reserved_1y,NA,0.340068,USD,Azure Retail Prices API,2025-12-18T04:47:03.510643 +AZURE,mexicocentral,Standard_E8ads_v5,reserved_3y,NA,0.219026,USD,Azure Retail Prices API,2025-12-18T04:47:03.510646 +AZURE,mexicocentral,Standard_E8ads_v5,spot,NA,0.106445,USD,Azure Retail Prices API,2025-12-18T04:47:02.438319 +AZURE,mexicocentral,Standard_E8ads_v6,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:47:02.440020 +AZURE,mexicocentral,Standard_E8ads_v6,spot,NA,0.117902,USD,Azure Retail Prices API,2025-12-18T04:47:02.438960 +AZURE,mexicocentral,Standard_E8as_v4,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:47:02.438309 +AZURE,mexicocentral,Standard_E8as_v4,reserved_1y,NA,0.326027,USD,Azure Retail Prices API,2025-12-18T04:47:03.510167 +AZURE,mexicocentral,Standard_E8as_v4,reserved_3y,NA,0.208447,USD,Azure Retail Prices API,2025-12-18T04:47:03.510170 +AZURE,mexicocentral,Standard_E8as_v4,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438489 +AZURE,mexicocentral,Standard_E8as_v5,on_demand,NA,0.497,USD,Azure Retail Prices API,2025-12-18T04:47:02.438883 +AZURE,mexicocentral,Standard_E8as_v5,reserved_1y,NA,0.293379,USD,Azure Retail Prices API,2025-12-18T04:47:03.510584 +AZURE,mexicocentral,Standard_E8as_v5,reserved_3y,NA,0.188927,USD,Azure Retail Prices API,2025-12-18T04:47:03.510587 +AZURE,mexicocentral,Standard_E8as_v5,spot,NA,0.091846,USD,Azure Retail Prices API,2025-12-18T04:47:02.439717 +AZURE,mexicocentral,Standard_E8d_v4,on_demand,NA,0.634,USD,Azure Retail Prices API,2025-12-18T04:47:02.438587 +AZURE,mexicocentral,Standard_E8d_v4,reserved_1y,NA,0.372603,USD,Azure Retail Prices API,2025-12-18T04:47:03.510329 +AZURE,mexicocentral,Standard_E8d_v4,reserved_3y,NA,0.238242,USD,Azure Retail Prices API,2025-12-18T04:47:03.510332 +AZURE,mexicocentral,Standard_E8d_v4,spot,NA,0.117163,USD,Azure Retail Prices API,2025-12-18T04:47:02.438325 +AZURE,mexicocentral,Standard_E8ds_v4,on_demand,NA,0.634,USD,Azure Retail Prices API,2025-12-18T04:47:02.438279 +AZURE,mexicocentral,Standard_E8ds_v4,reserved_1y,NA,0.372603,USD,Azure Retail Prices API,2025-12-18T04:47:03.510151 +AZURE,mexicocentral,Standard_E8ds_v4,reserved_3y,NA,0.238242,USD,Azure Retail Prices API,2025-12-18T04:47:03.510154 +AZURE,mexicocentral,Standard_E8ds_v4,spot,NA,0.117163,USD,Azure Retail Prices API,2025-12-18T04:47:02.439729 +AZURE,mexicocentral,Standard_E8ds_v5,on_demand,NA,0.634,USD,Azure Retail Prices API,2025-12-18T04:47:02.438874 +AZURE,mexicocentral,Standard_E8ds_v5,reserved_1y,NA,0.373858,USD,Azure Retail Prices API,2025-12-18T04:47:03.510579 +AZURE,mexicocentral,Standard_E8ds_v5,reserved_3y,NA,0.238242,USD,Azure Retail Prices API,2025-12-18T04:47:03.510581 +AZURE,mexicocentral,Standard_E8ds_v5,spot,NA,0.117163,USD,Azure Retail Prices API,2025-12-18T04:47:02.438747 +AZURE,mexicocentral,Standard_E8ds_v6,on_demand,NA,0.72,USD,Azure Retail Prices API,2025-12-18T04:47:02.439853 +AZURE,mexicocentral,Standard_E8ds_v6,reserved_1y,NA,0.446119,USD,Azure Retail Prices API,2025-12-18T04:47:03.511225 +AZURE,mexicocentral,Standard_E8ds_v6,reserved_3y,NA,0.280632,USD,Azure Retail Prices API,2025-12-18T04:47:03.511229 +AZURE,mexicocentral,Standard_E8ds_v6,spot,NA,0.133056,USD,Azure Retail Prices API,2025-12-18T04:47:02.439537 +AZURE,mexicocentral,Standard_E8pds_v6,on_demand,NA,0.514,USD,Azure Retail Prices API,2025-12-18T04:47:02.438525 +AZURE,mexicocentral,Standard_E8pds_v6,spot,NA,0.094987,USD,Azure Retail Prices API,2025-12-18T04:47:02.438372 +AZURE,mexicocentral,Standard_E8ps_v6,on_demand,NA,0.406,USD,Azure Retail Prices API,2025-12-18T04:47:02.440031 +AZURE,mexicocentral,Standard_E8ps_v6,reserved_1y,NA,0.239269,USD,Azure Retail Prices API,2025-12-18T04:47:03.511399 +AZURE,mexicocentral,Standard_E8ps_v6,reserved_3y,NA,0.15411,USD,Azure Retail Prices API,2025-12-18T04:47:03.511402 +AZURE,mexicocentral,Standard_E8ps_v6,spot,NA,0.075029,USD,Azure Retail Prices API,2025-12-18T04:47:02.439726 +AZURE,mexicocentral,Standard_E8s_v3,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:47:02.439738 +AZURE,mexicocentral,Standard_E8s_v3,reserved_1y,NA,0.326027,USD,Azure Retail Prices API,2025-12-18T04:47:03.511057 +AZURE,mexicocentral,Standard_E8s_v3,reserved_3y,NA,0.208447,USD,Azure Retail Prices API,2025-12-18T04:47:03.511089 +AZURE,mexicocentral,Standard_E8s_v3,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438398 +AZURE,mexicocentral,Standard_E8s_v4,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:47:02.438247 +AZURE,mexicocentral,Standard_E8s_v4,reserved_1y,NA,0.326027,USD,Azure Retail Prices API,2025-12-18T04:47:03.510118 +AZURE,mexicocentral,Standard_E8s_v4,reserved_3y,NA,0.208447,USD,Azure Retail Prices API,2025-12-18T04:47:03.510121 +AZURE,mexicocentral,Standard_E8s_v4,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:47:02.439899 +AZURE,mexicocentral,Standard_E8s_v5,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:47:02.439190 +AZURE,mexicocentral,Standard_E8s_v5,reserved_1y,NA,0.327055,USD,Azure Retail Prices API,2025-12-18T04:47:03.510751 +AZURE,mexicocentral,Standard_E8s_v5,reserved_3y,NA,0.205137,USD,Azure Retail Prices API,2025-12-18T04:47:03.510754 +AZURE,mexicocentral,Standard_E8s_v5,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:47:02.438905 +AZURE,mexicocentral,Standard_E96a_v4,on_demand,NA,6.653,USD,Azure Retail Prices API,2025-12-18T04:47:02.439837 +AZURE,mexicocentral,Standard_E96a_v4,reserved_1y,NA,3.911872,USD,Azure Retail Prices API,2025-12-18T04:47:03.511195 +AZURE,mexicocentral,Standard_E96a_v4,reserved_3y,NA,2.501446,USD,Azure Retail Prices API,2025-12-18T04:47:03.511198 +AZURE,mexicocentral,Standard_E96a_v4,spot,NA,1.229474,USD,Azure Retail Prices API,2025-12-18T04:47:02.439970 +AZURE,mexicocentral,Standard_E96ads_v5,on_demand,NA,11.333,USD,Azure Retail Prices API,2025-12-18T04:47:02.438427 +AZURE,mexicocentral,Standard_E96ads_v5,reserved_1y,NA,4.080936,USD,Azure Retail Prices API,2025-12-18T04:47:03.510507 +AZURE,mexicocentral,Standard_E96ads_v5,reserved_3y,NA,2.628387,USD,Azure Retail Prices API,2025-12-18T04:47:03.510510 +AZURE,mexicocentral,Standard_E96ads_v5,spot,NA,1.278262,USD,Azure Retail Prices API,2025-12-18T04:47:02.439804 +AZURE,mexicocentral,Standard_E96ads_v6,on_demand,NA,7.661,USD,Azure Retail Prices API,2025-12-18T04:47:02.438168 +AZURE,mexicocentral,Standard_E96ads_v6,spot,NA,1.415753,USD,Azure Retail Prices API,2025-12-18T04:47:02.438693 +AZURE,mexicocentral,Standard_E96as_v4,on_demand,NA,6.653,USD,Azure Retail Prices API,2025-12-18T04:47:02.438799 +AZURE,mexicocentral,Standard_E96as_v4,reserved_1y,NA,3.911872,USD,Azure Retail Prices API,2025-12-18T04:47:03.510525 +AZURE,mexicocentral,Standard_E96as_v4,reserved_3y,NA,2.501446,USD,Azure Retail Prices API,2025-12-18T04:47:03.510528 +AZURE,mexicocentral,Standard_E96as_v4,spot,NA,1.229474,USD,Azure Retail Prices API,2025-12-18T04:47:02.438244 +AZURE,mexicocentral,Standard_E96as_v5,on_demand,NA,5.966,USD,Azure Retail Prices API,2025-12-18T04:47:02.438954 +AZURE,mexicocentral,Standard_E96as_v5,reserved_1y,NA,3.520205,USD,Azure Retail Prices API,2025-12-18T04:47:03.510632 +AZURE,mexicocentral,Standard_E96as_v5,reserved_3y,NA,2.267237,USD,Azure Retail Prices API,2025-12-18T04:47:03.510635 +AZURE,mexicocentral,Standard_E96as_v5,spot,NA,1.102517,USD,Azure Retail Prices API,2025-12-18T04:47:02.440028 +AZURE,mexicocentral,Standard_E96ds_v5,on_demand,NA,7.603,USD,Azure Retail Prices API,2025-12-18T04:47:02.439047 +AZURE,mexicocentral,Standard_E96ds_v5,reserved_1y,NA,4.485845,USD,Azure Retail Prices API,2025-12-18T04:47:03.510705 +AZURE,mexicocentral,Standard_E96ds_v5,reserved_3y,NA,2.85879,USD,Azure Retail Prices API,2025-12-18T04:47:03.510708 +AZURE,mexicocentral,Standard_E96ds_v5,spot,NA,1.405034,USD,Azure Retail Prices API,2025-12-18T04:47:02.438162 +AZURE,mexicocentral,Standard_E96ds_v6,on_demand,NA,8.634,USD,Azure Retail Prices API,2025-12-18T04:47:02.438316 +AZURE,mexicocentral,Standard_E96ds_v6,reserved_1y,NA,5.353196,USD,Azure Retail Prices API,2025-12-18T04:47:03.510179 +AZURE,mexicocentral,Standard_E96ds_v6,reserved_3y,NA,3.367352,USD,Azure Retail Prices API,2025-12-18T04:47:03.510181 +AZURE,mexicocentral,Standard_E96ds_v6,spot,NA,1.595563,USD,Azure Retail Prices API,2025-12-18T04:47:02.439519 +AZURE,mexicocentral,Standard_E96pds_v6,on_demand,NA,6.173,USD,Azure Retail Prices API,2025-12-18T04:47:02.438463 +AZURE,mexicocentral,Standard_E96pds_v6,spot,NA,1.14077,USD,Azure Retail Prices API,2025-12-18T04:47:02.439121 +AZURE,mexicocentral,Standard_E96ps_v6,on_demand,NA,4.867,USD,Azure Retail Prices API,2025-12-18T04:47:02.439325 +AZURE,mexicocentral,Standard_E96ps_v6,reserved_1y,NA,2.871689,USD,Azure Retail Prices API,2025-12-18T04:47:03.510859 +AZURE,mexicocentral,Standard_E96ps_v6,reserved_3y,NA,1.849543,USD,Azure Retail Prices API,2025-12-18T04:47:03.510862 +AZURE,mexicocentral,Standard_E96ps_v6,spot,NA,0.899422,USD,Azure Retail Prices API,2025-12-18T04:47:02.438732 +AZURE,mexicocentral,Standard_E96s_v5,on_demand,NA,6.653,USD,Azure Retail Prices API,2025-12-18T04:47:02.438365 +AZURE,mexicocentral,Standard_E96s_v5,reserved_1y,NA,3.925114,USD,Azure Retail Prices API,2025-12-18T04:47:03.510208 +AZURE,mexicocentral,Standard_E96s_v5,reserved_3y,NA,2.46153,USD,Azure Retail Prices API,2025-12-18T04:47:03.510211 +AZURE,mexicocentral,Standard_E96s_v5,spot,NA,1.229474,USD,Azure Retail Prices API,2025-12-18T04:47:02.438770 +AZURE,mexicocentral,Standard_EC16ads_v6,on_demand,NA,1.277,USD,Azure Retail Prices API,2025-12-18T04:47:02.438284 +AZURE,mexicocentral,Standard_EC16ads_v6,reserved_1y,NA,0.753311,USD,Azure Retail Prices API,2025-12-18T04:47:03.510156 +AZURE,mexicocentral,Standard_EC16ads_v6,reserved_3y,NA,0.485198,USD,Azure Retail Prices API,2025-12-18T04:47:03.510159 +AZURE,mexicocentral,Standard_EC16ads_v6,spot,NA,0.23599,USD,Azure Retail Prices API,2025-12-18T04:47:02.438765 +AZURE,mexicocentral,Standard_EC16as_v6,on_demand,NA,1.05,USD,Azure Retail Prices API,2025-12-18T04:47:02.438531 +AZURE,mexicocentral,Standard_EC16as_v6,reserved_1y,NA,0.619292,USD,Azure Retail Prices API,2025-12-18T04:47:03.510295 +AZURE,mexicocentral,Standard_EC16as_v6,reserved_3y,NA,0.398858,USD,Azure Retail Prices API,2025-12-18T04:47:03.510299 +AZURE,mexicocentral,Standard_EC16as_v6,spot,NA,0.19404,USD,Azure Retail Prices API,2025-12-18T04:47:02.440043 +AZURE,mexicocentral,Standard_EC2ads_v6,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:47:02.438550 +AZURE,mexicocentral,Standard_EC2ads_v6,reserved_1y,NA,0.094178,USD,Azure Retail Prices API,2025-12-18T04:47:03.510301 +AZURE,mexicocentral,Standard_EC2ads_v6,reserved_3y,NA,0.060654,USD,Azure Retail Prices API,2025-12-18T04:47:03.510304 +AZURE,mexicocentral,Standard_EC2ads_v6,spot,NA,0.029568,USD,Azure Retail Prices API,2025-12-18T04:47:02.439363 +AZURE,mexicocentral,Standard_EC2as_v6,on_demand,NA,0.131,USD,Azure Retail Prices API,2025-12-18T04:47:02.439635 +AZURE,mexicocentral,Standard_EC2as_v6,reserved_1y,NA,0.077397,USD,Azure Retail Prices API,2025-12-18T04:47:03.511001 +AZURE,mexicocentral,Standard_EC2as_v6,reserved_3y,NA,0.049848,USD,Azure Retail Prices API,2025-12-18T04:47:03.511003 +AZURE,mexicocentral,Standard_EC2as_v6,spot,NA,0.024209,USD,Azure Retail Prices API,2025-12-18T04:47:02.439197 +AZURE,mexicocentral,Standard_EC32ads_v6,on_demand,NA,2.554,USD,Azure Retail Prices API,2025-12-18T04:47:02.439828 +AZURE,mexicocentral,Standard_EC32ads_v6,reserved_1y,NA,1.506621,USD,Azure Retail Prices API,2025-12-18T04:47:03.511180 +AZURE,mexicocentral,Standard_EC32ads_v6,reserved_3y,NA,0.970358,USD,Azure Retail Prices API,2025-12-18T04:47:03.511183 +AZURE,mexicocentral,Standard_EC32ads_v6,spot,NA,0.471979,USD,Azure Retail Prices API,2025-12-18T04:47:02.439000 +AZURE,mexicocentral,Standard_EC32as_v6,on_demand,NA,2.099,USD,Azure Retail Prices API,2025-12-18T04:47:02.438651 +AZURE,mexicocentral,Standard_EC32as_v6,reserved_1y,NA,1.238584,USD,Azure Retail Prices API,2025-12-18T04:47:03.510403 +AZURE,mexicocentral,Standard_EC32as_v6,reserved_3y,NA,0.797679,USD,Azure Retail Prices API,2025-12-18T04:47:03.510407 +AZURE,mexicocentral,Standard_EC32as_v6,spot,NA,0.387895,USD,Azure Retail Prices API,2025-12-18T04:47:02.438667 +AZURE,mexicocentral,Standard_EC48ads_v6,on_demand,NA,3.83,USD,Azure Retail Prices API,2025-12-18T04:47:02.440054 +AZURE,mexicocentral,Standard_EC48ads_v6,reserved_1y,NA,2.259932,USD,Azure Retail Prices API,2025-12-18T04:47:03.511443 +AZURE,mexicocentral,Standard_EC48ads_v6,reserved_3y,NA,1.455556,USD,Azure Retail Prices API,2025-12-18T04:47:03.511446 +AZURE,mexicocentral,Standard_EC48ads_v6,spot,NA,0.707784,USD,Azure Retail Prices API,2025-12-18T04:47:02.439036 +AZURE,mexicocentral,Standard_EC48as_v6,on_demand,NA,3.149,USD,Azure Retail Prices API,2025-12-18T04:47:02.439208 +AZURE,mexicocentral,Standard_EC48as_v6,reserved_1y,NA,1.857763,USD,Azure Retail Prices API,2025-12-18T04:47:03.510768 +AZURE,mexicocentral,Standard_EC48as_v6,reserved_3y,NA,1.196537,USD,Azure Retail Prices API,2025-12-18T04:47:03.510771 +AZURE,mexicocentral,Standard_EC48as_v6,spot,NA,0.581935,USD,Azure Retail Prices API,2025-12-18T04:47:02.439704 +AZURE,mexicocentral,Standard_EC4ads_v6,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:47:02.438610 +AZURE,mexicocentral,Standard_EC4ads_v6,reserved_1y,NA,0.188356,USD,Azure Retail Prices API,2025-12-18T04:47:03.510351 +AZURE,mexicocentral,Standard_EC4ads_v6,reserved_3y,NA,0.121309,USD,Azure Retail Prices API,2025-12-18T04:47:03.510354 +AZURE,mexicocentral,Standard_EC4ads_v6,spot,NA,0.058951,USD,Azure Retail Prices API,2025-12-18T04:47:02.438322 +AZURE,mexicocentral,Standard_EC4as_v6,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:47:02.438333 +AZURE,mexicocentral,Standard_EC4as_v6,reserved_1y,NA,0.154795,USD,Azure Retail Prices API,2025-12-18T04:47:03.510184 +AZURE,mexicocentral,Standard_EC4as_v6,reserved_3y,NA,0.099696,USD,Azure Retail Prices API,2025-12-18T04:47:03.510188 +AZURE,mexicocentral,Standard_EC4as_v6,spot,NA,0.048418,USD,Azure Retail Prices API,2025-12-18T04:47:02.439383 +AZURE,mexicocentral,Standard_EC64ads_v6,on_demand,NA,5.107,USD,Azure Retail Prices API,2025-12-18T04:47:02.439865 +AZURE,mexicocentral,Standard_EC64ads_v6,reserved_1y,NA,3.013242,USD,Azure Retail Prices API,2025-12-18T04:47:03.511238 +AZURE,mexicocentral,Standard_EC64ads_v6,reserved_3y,NA,1.940753,USD,Azure Retail Prices API,2025-12-18T04:47:03.511241 +AZURE,mexicocentral,Standard_EC64ads_v6,spot,NA,0.943774,USD,Azure Retail Prices API,2025-12-18T04:47:02.440062 +AZURE,mexicocentral,Standard_EC64as_v6,on_demand,NA,4.198,USD,Azure Retail Prices API,2025-12-18T04:47:02.439819 +AZURE,mexicocentral,Standard_EC64as_v6,reserved_1y,NA,2.477055,USD,Azure Retail Prices API,2025-12-18T04:47:03.511167 +AZURE,mexicocentral,Standard_EC64as_v6,reserved_3y,NA,1.595396,USD,Azure Retail Prices API,2025-12-18T04:47:03.511171 +AZURE,mexicocentral,Standard_EC64as_v6,spot,NA,0.77579,USD,Azure Retail Prices API,2025-12-18T04:47:02.438816 +AZURE,mexicocentral,Standard_EC8ads_v6,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:47:02.438600 +AZURE,mexicocentral,Standard_EC8ads_v6,reserved_1y,NA,0.376712,USD,Azure Retail Prices API,2025-12-18T04:47:03.510345 +AZURE,mexicocentral,Standard_EC8ads_v6,reserved_3y,NA,0.24258,USD,Azure Retail Prices API,2025-12-18T04:47:03.510349 +AZURE,mexicocentral,Standard_EC8ads_v6,spot,NA,0.117902,USD,Azure Retail Prices API,2025-12-18T04:47:02.439755 +AZURE,mexicocentral,Standard_EC8as_v6,on_demand,NA,0.525,USD,Azure Retail Prices API,2025-12-18T04:47:02.439680 +AZURE,mexicocentral,Standard_EC8as_v6,reserved_1y,NA,0.309589,USD,Azure Retail Prices API,2025-12-18T04:47:03.511028 +AZURE,mexicocentral,Standard_EC8as_v6,reserved_3y,NA,0.199429,USD,Azure Retail Prices API,2025-12-18T04:47:03.511032 +AZURE,mexicocentral,Standard_EC8as_v6,spot,NA,0.09702,USD,Azure Retail Prices API,2025-12-18T04:47:02.439689 +AZURE,mexicocentral,Standard_EC96ads_v6,on_demand,NA,7.661,USD,Azure Retail Prices API,2025-12-18T04:47:02.438122 +AZURE,mexicocentral,Standard_EC96ads_v6,reserved_1y,NA,4.519863,USD,Azure Retail Prices API,2025-12-18T04:47:03.510061 +AZURE,mexicocentral,Standard_EC96ads_v6,reserved_3y,NA,2.911111,USD,Azure Retail Prices API,2025-12-18T04:47:03.510064 +AZURE,mexicocentral,Standard_EC96ads_v6,spot,NA,1.415753,USD,Azure Retail Prices API,2025-12-18T04:47:02.439102 +AZURE,mexicocentral,Standard_EC96as_v6,on_demand,NA,6.298,USD,Azure Retail Prices API,2025-12-18T04:47:02.438844 +AZURE,mexicocentral,Standard_EC96as_v6,reserved_1y,NA,3.715639,USD,Azure Retail Prices API,2025-12-18T04:47:03.510566 +AZURE,mexicocentral,Standard_EC96as_v6,reserved_3y,NA,2.393075,USD,Azure Retail Prices API,2025-12-18T04:47:03.510569 +AZURE,mexicocentral,Standard_EC96as_v6,spot,NA,1.16387,USD,Azure Retail Prices API,2025-12-18T04:47:02.439746 +AZURE,mexicocentral,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379899 +AZURE,mexicocentral,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379908 +AZURE,mexicocentral,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379912 +AZURE,mexicocentral,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379903 +AZURE,mexicocentral,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382197 +AZURE,mexicocentral,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382213 +AZURE,mexicocentral,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382219 +AZURE,mexicocentral,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382204 +AZURE,mexicocentral,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384921 +AZURE,mexicocentral,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384930 +AZURE,mexicocentral,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384934 +AZURE,mexicocentral,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384925 +AZURE,mexicocentral,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385759 +AZURE,mexicocentral,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385769 +AZURE,mexicocentral,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385773 +AZURE,mexicocentral,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385763 +AZURE,mexicocentral,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378342 +AZURE,mexicocentral,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378351 +AZURE,mexicocentral,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378355 +AZURE,mexicocentral,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378346 +AZURE,mexicocentral,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386534 +AZURE,mexicocentral,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386542 +AZURE,mexicocentral,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386546 +AZURE,mexicocentral,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386538 +AZURE,mexicocentral,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380623 +AZURE,mexicocentral,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380631 +AZURE,mexicocentral,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380636 +AZURE,mexicocentral,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380627 +AZURE,mexicocentral,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383327 +AZURE,mexicocentral,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383336 +AZURE,mexicocentral,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383341 +AZURE,mexicocentral,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383332 +AZURE,mexicocentral,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387306 +AZURE,mexicocentral,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387315 +AZURE,mexicocentral,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387321 +AZURE,mexicocentral,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387311 +AZURE,mexicocentral,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388527 +AZURE,mexicocentral,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388539 +AZURE,mexicocentral,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388544 +AZURE,mexicocentral,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388534 +AZURE,mexicocentral,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379145 +AZURE,mexicocentral,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379154 +AZURE,mexicocentral,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379158 +AZURE,mexicocentral,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379150 +AZURE,mexicocentral,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381403 +AZURE,mexicocentral,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381415 +AZURE,mexicocentral,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381421 +AZURE,mexicocentral,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381409 +AZURE,mexicocentral,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384132 +AZURE,mexicocentral,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384143 +AZURE,mexicocentral,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384147 +AZURE,mexicocentral,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384137 +AZURE,mexicocentral,Standard_L16as_v3,on_demand,NA,1.373,USD,Azure Retail Prices API,2025-12-18T04:47:02.439850 +AZURE,mexicocentral,Standard_L16as_v3,reserved_1y,NA,0.878539,USD,Azure Retail Prices API,2025-12-18T04:47:03.511213 +AZURE,mexicocentral,Standard_L16as_v3,reserved_3y,NA,0.57656,USD,Azure Retail Prices API,2025-12-18T04:47:03.511216 +AZURE,mexicocentral,Standard_L16as_v3,spot,NA,0.25373,USD,Azure Retail Prices API,2025-12-18T04:47:02.438619 +AZURE,mexicocentral,Standard_L32as_v3,on_demand,NA,2.746,USD,Azure Retail Prices API,2025-12-18T04:47:02.438261 +AZURE,mexicocentral,Standard_L32as_v3,reserved_1y,NA,1.757192,USD,Azure Retail Prices API,2025-12-18T04:47:03.510130 +AZURE,mexicocentral,Standard_L32as_v3,reserved_3y,NA,1.153158,USD,Azure Retail Prices API,2025-12-18T04:47:03.510133 +AZURE,mexicocentral,Standard_L32as_v3,spot,NA,0.507461,USD,Azure Retail Prices API,2025-12-18T04:47:02.438304 +AZURE,mexicocentral,Standard_L48as_v3,on_demand,NA,4.118,USD,Azure Retail Prices API,2025-12-18T04:47:02.439951 +AZURE,mexicocentral,Standard_L48as_v3,reserved_1y,NA,2.635731,USD,Azure Retail Prices API,2025-12-18T04:47:03.511331 +AZURE,mexicocentral,Standard_L48as_v3,reserved_3y,NA,1.729718,USD,Azure Retail Prices API,2025-12-18T04:47:03.511334 +AZURE,mexicocentral,Standard_L48as_v3,spot,NA,0.761006,USD,Azure Retail Prices API,2025-12-18T04:47:02.438975 +AZURE,mexicocentral,Standard_L64as_v3,on_demand,NA,5.491,USD,Azure Retail Prices API,2025-12-18T04:47:02.438385 +AZURE,mexicocentral,Standard_L64as_v3,reserved_1y,NA,3.514384,USD,Azure Retail Prices API,2025-12-18T04:47:03.510219 +AZURE,mexicocentral,Standard_L64as_v3,reserved_3y,NA,2.306317,USD,Azure Retail Prices API,2025-12-18T04:47:03.510221 +AZURE,mexicocentral,Standard_L64as_v3,spot,NA,1.014737,USD,Azure Retail Prices API,2025-12-18T04:47:02.439810 +AZURE,mexicocentral,Standard_L80as_v3,on_demand,NA,6.864,USD,Azure Retail Prices API,2025-12-18T04:47:02.439050 +AZURE,mexicocentral,Standard_L80as_v3,reserved_1y,NA,4.392922,USD,Azure Retail Prices API,2025-12-18T04:47:03.510711 +AZURE,mexicocentral,Standard_L80as_v3,reserved_3y,NA,2.882877,USD,Azure Retail Prices API,2025-12-18T04:47:03.510714 +AZURE,mexicocentral,Standard_L80as_v3,spot,NA,1.268467,USD,Azure Retail Prices API,2025-12-18T04:47:02.440008 +AZURE,mexicocentral,Standard_L8as_v3,on_demand,NA,0.686,USD,Azure Retail Prices API,2025-12-18T04:47:02.439403 +AZURE,mexicocentral,Standard_L8as_v3,reserved_1y,NA,0.439269,USD,Azure Retail Prices API,2025-12-18T04:47:03.510894 +AZURE,mexicocentral,Standard_L8as_v3,reserved_3y,NA,0.28828,USD,Azure Retail Prices API,2025-12-18T04:47:03.510897 +AZURE,mexicocentral,Standard_L8as_v3,spot,NA,0.126773,USD,Azure Retail Prices API,2025-12-18T04:47:02.439010 +AZURE,mexicocentral,Standard_NV36adms_A10_v5,on_demand,NA,4.989,USD,Azure Retail Prices API,2025-12-18T04:47:02.439976 +AZURE,mexicocentral,Standard_NV36adms_A10_v5,reserved_1y,NA,3.192922,USD,Azure Retail Prices API,2025-12-18T04:47:03.511355 +AZURE,mexicocentral,Standard_NV36adms_A10_v5,reserved_3y,NA,2.195091,USD,Azure Retail Prices API,2025-12-18T04:47:03.511358 +AZURE,mexicocentral,Standard_NV36adms_A10_v5,spot,NA,0.921967,USD,Azure Retail Prices API,2025-12-18T04:47:02.438444 +AZURE,mexicocentral,Standard_NV36ads_A10_v5,on_demand,NA,3.532,USD,Azure Retail Prices API,2025-12-18T04:47:02.438422 +AZURE,mexicocentral,Standard_NV36ads_A10_v5,reserved_1y,NA,2.260502,USD,Azure Retail Prices API,2025-12-18T04:47:03.510240 +AZURE,mexicocentral,Standard_NV36ads_A10_v5,reserved_3y,NA,1.554072,USD,Azure Retail Prices API,2025-12-18T04:47:03.510243 +AZURE,mexicocentral,Standard_NV36ads_A10_v5,spot,NA,0.652714,USD,Azure Retail Prices API,2025-12-18T04:47:02.438391 +AZURE,mexicocentral,Standard_NV72ads_A10_v5,on_demand,NA,7.196,USD,Azure Retail Prices API,2025-12-18T04:47:02.439270 +AZURE,mexicocentral,Standard_NV72ads_A10_v5,reserved_1y,NA,4.605708,USD,Azure Retail Prices API,2025-12-18T04:47:03.510819 +AZURE,mexicocentral,Standard_NV72ads_A10_v5,reserved_3y,NA,3.1664,USD,Azure Retail Prices API,2025-12-18T04:47:03.510822 +AZURE,mexicocentral,Standard_NV72ads_A10_v5,spot,NA,1.329821,USD,Azure Retail Prices API,2025-12-18T04:47:02.439344 +AZURE,northcentralus,Standard_D128ds_v6,on_demand,NA,7.973,USD,Azure Retail Prices API,2025-12-18T04:45:09.471305 +AZURE,northcentralus,Standard_D128ds_v6,reserved_1y,NA,4.943379,USD,Azure Retail Prices API,2025-12-18T04:45:11.365351 +AZURE,northcentralus,Standard_D128ds_v6,reserved_3y,NA,3.109513,USD,Azure Retail Prices API,2025-12-18T04:45:11.365354 +AZURE,northcentralus,Standard_D128ds_v6,spot,NA,1.47341,USD,Azure Retail Prices API,2025-12-18T04:45:09.471929 +AZURE,northcentralus,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488217 +AZURE,northcentralus,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488225 +AZURE,northcentralus,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488229 +AZURE,northcentralus,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488221 +AZURE,northcentralus,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488960 +AZURE,northcentralus,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488968 +AZURE,northcentralus,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488972 +AZURE,northcentralus,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488964 +AZURE,northcentralus,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490094 +AZURE,northcentralus,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490102 +AZURE,northcentralus,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490106 +AZURE,northcentralus,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490098 +AZURE,northcentralus,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490786 +AZURE,northcentralus,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490794 +AZURE,northcentralus,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490798 +AZURE,northcentralus,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490790 +AZURE,northcentralus,Standard_D16_v3,on_demand,NA,0.8,USD,Azure Retail Prices API,2025-12-18T04:45:09.470485 +AZURE,northcentralus,Standard_D16_v3,reserved_1y,NA,0.462557,USD,Azure Retail Prices API,2025-12-18T04:45:11.364734 +AZURE,northcentralus,Standard_D16_v3,reserved_3y,NA,0.300799,USD,Azure Retail Prices API,2025-12-18T04:45:11.364737 +AZURE,northcentralus,Standard_D16_v3,spot,NA,0.14784,USD,Azure Retail Prices API,2025-12-18T04:45:09.471251 +AZURE,northcentralus,Standard_D16a_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:09.471879 +AZURE,northcentralus,Standard_D16a_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:45:11.365845 +AZURE,northcentralus,Standard_D16a_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:45:11.365848 +AZURE,northcentralus,Standard_D16a_v4,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:45:09.471759 +AZURE,northcentralus,Standard_D16ads_v5,on_demand,NA,1.56,USD,Azure Retail Prices API,2025-12-18T04:45:09.470227 +AZURE,northcentralus,Standard_D16ads_v5,reserved_1y,NA,0.486187,USD,Azure Retail Prices API,2025-12-18T04:45:11.364479 +AZURE,northcentralus,Standard_D16ads_v5,reserved_3y,NA,0.313128,USD,Azure Retail Prices API,2025-12-18T04:45:11.364482 +AZURE,northcentralus,Standard_D16ads_v5,spot,NA,0.152275,USD,Azure Retail Prices API,2025-12-18T04:45:09.470602 +AZURE,northcentralus,Standard_D16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:45:09.471241 +AZURE,northcentralus,Standard_D16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:45:11.365282 +AZURE,northcentralus,Standard_D16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:45:11.365284 +AZURE,northcentralus,Standard_D16ads_v6,spot,NA,0.168538,USD,Azure Retail Prices API,2025-12-18T04:45:09.471549 +AZURE,northcentralus,Standard_D16as_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:09.470255 +AZURE,northcentralus,Standard_D16as_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:45:11.364471 +AZURE,northcentralus,Standard_D16as_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:45:11.364475 +AZURE,northcentralus,Standard_D16as_v4,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:45:09.471248 +AZURE,northcentralus,Standard_D16as_v5,on_demand,NA,1.424,USD,Azure Retail Prices API,2025-12-18T04:45:09.471149 +AZURE,northcentralus,Standard_D16as_v5,reserved_1y,NA,0.405936,USD,Azure Retail Prices API,2025-12-18T04:45:11.365397 +AZURE,northcentralus,Standard_D16as_v5,reserved_3y,NA,0.261454,USD,Azure Retail Prices API,2025-12-18T04:45:11.365400 +AZURE,northcentralus,Standard_D16as_v5,spot,NA,0.127142,USD,Azure Retail Prices API,2025-12-18T04:45:09.470488 +AZURE,northcentralus,Standard_D16d_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:45:09.471184 +AZURE,northcentralus,Standard_D16d_v4,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:45:11.365235 +AZURE,northcentralus,Standard_D16d_v4,reserved_3y,NA,0.339916,USD,Azure Retail Prices API,2025-12-18T04:45:11.365238 +AZURE,northcentralus,Standard_D16d_v4,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:45:09.471644 +AZURE,northcentralus,Standard_D16ds_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:45:09.470695 +AZURE,northcentralus,Standard_D16ds_v4,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:45:11.364955 +AZURE,northcentralus,Standard_D16ds_v4,reserved_3y,NA,0.339916,USD,Azure Retail Prices API,2025-12-18T04:45:11.364958 +AZURE,northcentralus,Standard_D16ds_v4,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:45:09.470648 +AZURE,northcentralus,Standard_D16ds_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:45:09.470908 +AZURE,northcentralus,Standard_D16ds_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:45:11.365083 +AZURE,northcentralus,Standard_D16ds_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:45:11.365086 +AZURE,northcentralus,Standard_D16ds_v5,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:45:09.470573 +AZURE,northcentralus,Standard_D16ds_v6,on_demand,NA,0.997,USD,Azure Retail Prices API,2025-12-18T04:45:09.470531 +AZURE,northcentralus,Standard_D16ds_v6,reserved_1y,NA,0.617922,USD,Azure Retail Prices API,2025-12-18T04:45:11.364797 +AZURE,northcentralus,Standard_D16ds_v6,reserved_3y,NA,0.388699,USD,Azure Retail Prices API,2025-12-18T04:45:11.364800 +AZURE,northcentralus,Standard_D16ds_v6,spot,NA,0.184246,USD,Azure Retail Prices API,2025-12-18T04:45:09.470539 +AZURE,northcentralus,Standard_D16pds_v6,on_demand,NA,0.734,USD,Azure Retail Prices API,2025-12-18T04:45:09.470381 +AZURE,northcentralus,Standard_D16pds_v6,reserved_1y,NA,0.433333,USD,Azure Retail Prices API,2025-12-18T04:45:11.364617 +AZURE,northcentralus,Standard_D16pds_v6,reserved_3y,NA,0.279072,USD,Azure Retail Prices API,2025-12-18T04:45:11.364620 +AZURE,northcentralus,Standard_D16pds_v6,spot,NA,0.135643,USD,Azure Retail Prices API,2025-12-18T04:45:09.471820 +AZURE,northcentralus,Standard_D16ps_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:45:09.470450 +AZURE,northcentralus,Standard_D16ps_v6,reserved_1y,NA,0.331393,USD,Azure Retail Prices API,2025-12-18T04:45:11.364700 +AZURE,northcentralus,Standard_D16ps_v6,reserved_3y,NA,0.213394,USD,Azure Retail Prices API,2025-12-18T04:45:11.364704 +AZURE,northcentralus,Standard_D16ps_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:45:09.470749 +AZURE,northcentralus,Standard_D16s_v3,on_demand,NA,0.8,USD,Azure Retail Prices API,2025-12-18T04:45:09.470753 +AZURE,northcentralus,Standard_D16s_v3,reserved_1y,NA,0.462557,USD,Azure Retail Prices API,2025-12-18T04:45:11.364986 +AZURE,northcentralus,Standard_D16s_v3,reserved_3y,NA,0.300799,USD,Azure Retail Prices API,2025-12-18T04:45:11.364988 +AZURE,northcentralus,Standard_D16s_v3,spot,NA,0.14784,USD,Azure Retail Prices API,2025-12-18T04:45:09.471992 +AZURE,northcentralus,Standard_D16s_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:09.472064 +AZURE,northcentralus,Standard_D16s_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:45:11.365984 +AZURE,northcentralus,Standard_D16s_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:45:11.365986 +AZURE,northcentralus,Standard_D16s_v4,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:45:09.472054 +AZURE,northcentralus,Standard_D16s_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:09.471510 +AZURE,northcentralus,Standard_D16s_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:45:11.365513 +AZURE,northcentralus,Standard_D16s_v5,reserved_3y,NA,0.28417,USD,Azure Retail Prices API,2025-12-18T04:45:11.365518 +AZURE,northcentralus,Standard_D16s_v5,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:45:09.470709 +AZURE,northcentralus,Standard_D2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:45:09.470316 +AZURE,northcentralus,Standard_D2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:45:11.364554 +AZURE,northcentralus,Standard_D2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:45:11.364557 +AZURE,northcentralus,Standard_D2ads_v6,spot,NA,0.021067,USD,Azure Retail Prices API,2025-12-18T04:45:09.472094 +AZURE,northcentralus,Standard_D2ds_v6,on_demand,NA,0.125,USD,Azure Retail Prices API,2025-12-18T04:45:09.471623 +AZURE,northcentralus,Standard_D2ds_v6,reserved_1y,NA,0.077283,USD,Azure Retail Prices API,2025-12-18T04:45:11.365609 +AZURE,northcentralus,Standard_D2ds_v6,reserved_3y,NA,0.048592,USD,Azure Retail Prices API,2025-12-18T04:45:11.365612 +AZURE,northcentralus,Standard_D2ds_v6,spot,NA,0.0231,USD,Azure Retail Prices API,2025-12-18T04:45:09.470313 +AZURE,northcentralus,Standard_D32_v3,on_demand,NA,1.6,USD,Azure Retail Prices API,2025-12-18T04:45:09.471321 +AZURE,northcentralus,Standard_D32_v3,reserved_1y,NA,0.925114,USD,Azure Retail Prices API,2025-12-18T04:45:11.365374 +AZURE,northcentralus,Standard_D32_v3,reserved_3y,NA,0.601598,USD,Azure Retail Prices API,2025-12-18T04:45:11.365377 +AZURE,northcentralus,Standard_D32_v3,spot,NA,0.29568,USD,Azure Retail Prices API,2025-12-18T04:45:09.471793 +AZURE,northcentralus,Standard_D32a_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:45:09.470614 +AZURE,northcentralus,Standard_D32a_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:45:11.364872 +AZURE,northcentralus,Standard_D32a_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:45:11.364875 +AZURE,northcentralus,Standard_D32a_v4,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:45:09.470617 +AZURE,northcentralus,Standard_D32ads_v5,on_demand,NA,3.12,USD,Azure Retail Prices API,2025-12-18T04:45:09.470330 +AZURE,northcentralus,Standard_D32ads_v5,reserved_1y,NA,0.972374,USD,Azure Retail Prices API,2025-12-18T04:45:11.365419 +AZURE,northcentralus,Standard_D32ads_v5,reserved_3y,NA,0.626256,USD,Azure Retail Prices API,2025-12-18T04:45:11.365422 +AZURE,northcentralus,Standard_D32ads_v5,spot,NA,0.30455,USD,Azure Retail Prices API,2025-12-18T04:45:09.470368 +AZURE,northcentralus,Standard_D32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:45:09.471312 +AZURE,northcentralus,Standard_D32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:45:11.365362 +AZURE,northcentralus,Standard_D32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:45:11.365365 +AZURE,northcentralus,Standard_D32ads_v6,spot,NA,0.337075,USD,Azure Retail Prices API,2025-12-18T04:45:09.470412 +AZURE,northcentralus,Standard_D32as_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:45:09.470932 +AZURE,northcentralus,Standard_D32as_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:45:11.365100 +AZURE,northcentralus,Standard_D32as_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:45:11.365102 +AZURE,northcentralus,Standard_D32as_v4,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:45:09.470213 +AZURE,northcentralus,Standard_D32as_v5,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:45:09.470441 +AZURE,northcentralus,Standard_D32as_v5,reserved_1y,NA,0.811872,USD,Azure Retail Prices API,2025-12-18T04:45:11.364682 +AZURE,northcentralus,Standard_D32as_v5,reserved_3y,NA,0.522869,USD,Azure Retail Prices API,2025-12-18T04:45:11.364687 +AZURE,northcentralus,Standard_D32as_v5,spot,NA,0.254285,USD,Azure Retail Prices API,2025-12-18T04:45:09.471294 +AZURE,northcentralus,Standard_D32d_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:45:09.471350 +AZURE,northcentralus,Standard_D32d_v4,reserved_1y,NA,1.063128,USD,Azure Retail Prices API,2025-12-18T04:45:11.365386 +AZURE,northcentralus,Standard_D32d_v4,reserved_3y,NA,0.679795,USD,Azure Retail Prices API,2025-12-18T04:45:11.365389 +AZURE,northcentralus,Standard_D32d_v4,spot,NA,0.334118,USD,Azure Retail Prices API,2025-12-18T04:45:09.471582 +AZURE,northcentralus,Standard_D32ds_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:45:09.471695 +AZURE,northcentralus,Standard_D32ds_v4,reserved_1y,NA,1.063128,USD,Azure Retail Prices API,2025-12-18T04:45:11.365682 +AZURE,northcentralus,Standard_D32ds_v4,reserved_3y,NA,0.679795,USD,Azure Retail Prices API,2025-12-18T04:45:11.365684 +AZURE,northcentralus,Standard_D32ds_v4,spot,NA,0.334118,USD,Azure Retail Prices API,2025-12-18T04:45:09.471021 +AZURE,northcentralus,Standard_D32ds_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:45:09.470458 +AZURE,northcentralus,Standard_D32ds_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:45:11.364716 +AZURE,northcentralus,Standard_D32ds_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:45:11.364722 +AZURE,northcentralus,Standard_D32ds_v5,spot,NA,0.334118,USD,Azure Retail Prices API,2025-12-18T04:45:09.470469 +AZURE,northcentralus,Standard_D32ds_v6,on_demand,NA,1.993,USD,Azure Retail Prices API,2025-12-18T04:45:09.471129 +AZURE,northcentralus,Standard_D32ds_v6,reserved_1y,NA,1.235845,USD,Azure Retail Prices API,2025-12-18T04:45:11.365212 +AZURE,northcentralus,Standard_D32ds_v6,reserved_3y,NA,0.777397,USD,Azure Retail Prices API,2025-12-18T04:45:11.365215 +AZURE,northcentralus,Standard_D32ds_v6,spot,NA,0.368306,USD,Azure Retail Prices API,2025-12-18T04:45:09.470243 +AZURE,northcentralus,Standard_D32pds_v6,on_demand,NA,1.469,USD,Azure Retail Prices API,2025-12-18T04:45:09.471620 +AZURE,northcentralus,Standard_D32pds_v6,reserved_1y,NA,0.866553,USD,Azure Retail Prices API,2025-12-18T04:45:11.365603 +AZURE,northcentralus,Standard_D32pds_v6,reserved_3y,NA,0.558143,USD,Azure Retail Prices API,2025-12-18T04:45:11.365606 +AZURE,northcentralus,Standard_D32pds_v6,spot,NA,0.271471,USD,Azure Retail Prices API,2025-12-18T04:45:09.471686 +AZURE,northcentralus,Standard_D32ps_v6,on_demand,NA,1.123,USD,Azure Retail Prices API,2025-12-18T04:45:09.471258 +AZURE,northcentralus,Standard_D32ps_v6,reserved_1y,NA,0.662671,USD,Azure Retail Prices API,2025-12-18T04:45:11.365305 +AZURE,northcentralus,Standard_D32ps_v6,reserved_3y,NA,0.426826,USD,Azure Retail Prices API,2025-12-18T04:45:11.365308 +AZURE,northcentralus,Standard_D32ps_v6,spot,NA,0.20753,USD,Azure Retail Prices API,2025-12-18T04:45:09.470661 +AZURE,northcentralus,Standard_D32s_v3,on_demand,NA,1.6,USD,Azure Retail Prices API,2025-12-18T04:45:09.471222 +AZURE,northcentralus,Standard_D32s_v3,reserved_1y,NA,0.925114,USD,Azure Retail Prices API,2025-12-18T04:45:11.365270 +AZURE,northcentralus,Standard_D32s_v3,reserved_3y,NA,0.601598,USD,Azure Retail Prices API,2025-12-18T04:45:11.365273 +AZURE,northcentralus,Standard_D32s_v3,spot,NA,0.29568,USD,Azure Retail Prices API,2025-12-18T04:45:09.471001 +AZURE,northcentralus,Standard_D32s_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:45:09.471110 +AZURE,northcentralus,Standard_D32s_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:45:11.365200 +AZURE,northcentralus,Standard_D32s_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:45:11.365203 +AZURE,northcentralus,Standard_D32s_v4,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:45:09.470860 +AZURE,northcentralus,Standard_D32s_v5,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:45:09.470770 +AZURE,northcentralus,Standard_D32s_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:45:11.365002 +AZURE,northcentralus,Standard_D32s_v5,reserved_3y,NA,0.568303,USD,Azure Retail Prices API,2025-12-18T04:45:11.365004 +AZURE,northcentralus,Standard_D32s_v5,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:45:09.470636 +AZURE,northcentralus,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485204 +AZURE,northcentralus,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485212 +AZURE,northcentralus,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485216 +AZURE,northcentralus,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485208 +AZURE,northcentralus,Standard_D48a_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:45:09.471428 +AZURE,northcentralus,Standard_D48a_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:45:11.365453 +AZURE,northcentralus,Standard_D48a_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:45:11.365456 +AZURE,northcentralus,Standard_D48a_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:45:09.471264 +AZURE,northcentralus,Standard_D48ads_v5,on_demand,NA,2.472,USD,Azure Retail Prices API,2025-12-18T04:45:09.470690 +AZURE,northcentralus,Standard_D48ads_v5,reserved_1y,NA,1.458447,USD,Azure Retail Prices API,2025-12-18T04:45:11.364944 +AZURE,northcentralus,Standard_D48ads_v5,reserved_3y,NA,0.939346,USD,Azure Retail Prices API,2025-12-18T04:45:11.364947 +AZURE,northcentralus,Standard_D48ads_v5,spot,NA,0.456826,USD,Azure Retail Prices API,2025-12-18T04:45:09.471472 +AZURE,northcentralus,Standard_D48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:45:09.470693 +AZURE,northcentralus,Standard_D48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:45:11.364950 +AZURE,northcentralus,Standard_D48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:45:11.364953 +AZURE,northcentralus,Standard_D48ads_v6,spot,NA,0.505613,USD,Azure Retail Prices API,2025-12-18T04:45:09.472077 +AZURE,northcentralus,Standard_D48as_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:45:09.471189 +AZURE,northcentralus,Standard_D48as_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:45:11.365240 +AZURE,northcentralus,Standard_D48as_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:45:11.365243 +AZURE,northcentralus,Standard_D48as_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:45:09.470263 +AZURE,northcentralus,Standard_D48as_v5,on_demand,NA,4.272,USD,Azure Retail Prices API,2025-12-18T04:45:09.470295 +AZURE,northcentralus,Standard_D48as_v5,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:45:11.364774 +AZURE,northcentralus,Standard_D48as_v5,reserved_3y,NA,0.784323,USD,Azure Retail Prices API,2025-12-18T04:45:11.364777 +AZURE,northcentralus,Standard_D48as_v5,spot,NA,0.381427,USD,Azure Retail Prices API,2025-12-18T04:45:09.472121 +AZURE,northcentralus,Standard_D48d_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:45:09.470951 +AZURE,northcentralus,Standard_D48d_v4,reserved_1y,NA,1.594635,USD,Azure Retail Prices API,2025-12-18T04:45:11.365111 +AZURE,northcentralus,Standard_D48d_v4,reserved_3y,NA,1.019711,USD,Azure Retail Prices API,2025-12-18T04:45:11.365113 +AZURE,northcentralus,Standard_D48d_v4,spot,NA,0.501178,USD,Azure Retail Prices API,2025-12-18T04:45:09.470404 +AZURE,northcentralus,Standard_D48ds_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:45:09.470249 +AZURE,northcentralus,Standard_D48ds_v4,reserved_1y,NA,1.594635,USD,Azure Retail Prices API,2025-12-18T04:45:11.364452 +AZURE,northcentralus,Standard_D48ds_v4,reserved_3y,NA,1.019711,USD,Azure Retail Prices API,2025-12-18T04:45:11.364456 +AZURE,northcentralus,Standard_D48ds_v4,spot,NA,0.501178,USD,Azure Retail Prices API,2025-12-18T04:45:09.470490 +AZURE,northcentralus,Standard_D48ds_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:45:09.471355 +AZURE,northcentralus,Standard_D48ds_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:45:11.365392 +AZURE,northcentralus,Standard_D48ds_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:45:11.365394 +AZURE,northcentralus,Standard_D48ds_v5,spot,NA,0.501178,USD,Azure Retail Prices API,2025-12-18T04:45:09.471365 +AZURE,northcentralus,Standard_D48ds_v6,on_demand,NA,2.99,USD,Azure Retail Prices API,2025-12-18T04:45:09.471777 +AZURE,northcentralus,Standard_D48ds_v6,reserved_1y,NA,1.853767,USD,Azure Retail Prices API,2025-12-18T04:45:11.365766 +AZURE,northcentralus,Standard_D48ds_v6,reserved_3y,NA,1.166058,USD,Azure Retail Prices API,2025-12-18T04:45:11.365769 +AZURE,northcentralus,Standard_D48ds_v6,spot,NA,0.552552,USD,Azure Retail Prices API,2025-12-18T04:45:09.471774 +AZURE,northcentralus,Standard_D48pds_v6,on_demand,NA,2.203,USD,Azure Retail Prices API,2025-12-18T04:45:09.470298 +AZURE,northcentralus,Standard_D48pds_v6,reserved_1y,NA,1.299886,USD,Azure Retail Prices API,2025-12-18T04:45:11.364534 +AZURE,northcentralus,Standard_D48pds_v6,reserved_3y,NA,0.837215,USD,Azure Retail Prices API,2025-12-18T04:45:11.364537 +AZURE,northcentralus,Standard_D48pds_v6,spot,NA,0.407114,USD,Azure Retail Prices API,2025-12-18T04:45:09.470996 +AZURE,northcentralus,Standard_D48ps_v6,on_demand,NA,1.685,USD,Azure Retail Prices API,2025-12-18T04:45:09.471998 +AZURE,northcentralus,Standard_D48ps_v6,reserved_1y,NA,0.994064,USD,Azure Retail Prices API,2025-12-18T04:45:11.365940 +AZURE,northcentralus,Standard_D48ps_v6,reserved_3y,NA,0.640221,USD,Azure Retail Prices API,2025-12-18T04:45:11.365942 +AZURE,northcentralus,Standard_D48ps_v6,spot,NA,0.311388,USD,Azure Retail Prices API,2025-12-18T04:45:09.470553 +AZURE,northcentralus,Standard_D48s_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:45:09.470504 +AZURE,northcentralus,Standard_D48s_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:45:11.364751 +AZURE,northcentralus,Standard_D48s_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:45:11.364754 +AZURE,northcentralus,Standard_D48s_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:45:09.471715 +AZURE,northcentralus,Standard_D48s_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:45:09.470664 +AZURE,northcentralus,Standard_D48s_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:11.364905 +AZURE,northcentralus,Standard_D48s_v5,reserved_3y,NA,0.852473,USD,Azure Retail Prices API,2025-12-18T04:45:11.364908 +AZURE,northcentralus,Standard_D48s_v5,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:45:09.471783 +AZURE,northcentralus,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486051 +AZURE,northcentralus,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486059 +AZURE,northcentralus,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486063 +AZURE,northcentralus,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486055 +AZURE,northcentralus,Standard_D4a_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:45:09.471125 +AZURE,northcentralus,Standard_D4a_v4,reserved_1y,NA,0.1129,USD,Azure Retail Prices API,2025-12-18T04:45:11.365206 +AZURE,northcentralus,Standard_D4a_v4,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:45:11.365209 +AZURE,northcentralus,Standard_D4a_v4,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:45:09.470471 +AZURE,northcentralus,Standard_D4ads_v5,on_demand,NA,0.39,USD,Azure Retail Prices API,2025-12-18T04:45:09.471035 +AZURE,northcentralus,Standard_D4ads_v5,reserved_1y,NA,0.121575,USD,Azure Retail Prices API,2025-12-18T04:45:11.365288 +AZURE,northcentralus,Standard_D4ads_v5,reserved_3y,NA,0.078272,USD,Azure Retail Prices API,2025-12-18T04:45:11.365291 +AZURE,northcentralus,Standard_D4ads_v5,spot,NA,0.038069,USD,Azure Retail Prices API,2025-12-18T04:45:09.472110 +AZURE,northcentralus,Standard_D4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:45:09.471525 +AZURE,northcentralus,Standard_D4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:45:11.365532 +AZURE,northcentralus,Standard_D4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:45:11.365537 +AZURE,northcentralus,Standard_D4ads_v6,spot,NA,0.042134,USD,Azure Retail Prices API,2025-12-18T04:45:09.470373 +AZURE,northcentralus,Standard_D4as_v5,on_demand,NA,0.356,USD,Azure Retail Prices API,2025-12-18T04:45:09.470275 +AZURE,northcentralus,Standard_D4as_v5,reserved_1y,NA,0.101484,USD,Azure Retail Prices API,2025-12-18T04:45:11.365442 +AZURE,northcentralus,Standard_D4as_v5,reserved_3y,NA,0.065373,USD,Azure Retail Prices API,2025-12-18T04:45:11.365444 +AZURE,northcentralus,Standard_D4as_v5,spot,NA,0.031786,USD,Azure Retail Prices API,2025-12-18T04:45:09.470466 +AZURE,northcentralus,Standard_D4d_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:45:09.471898 +AZURE,northcentralus,Standard_D4d_v4,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:45:11.365863 +AZURE,northcentralus,Standard_D4d_v4,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:45:11.365866 +AZURE,northcentralus,Standard_D4d_v4,spot,NA,0.041765,USD,Azure Retail Prices API,2025-12-18T04:45:09.470672 +AZURE,northcentralus,Standard_D4ds_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:45:09.470590 +AZURE,northcentralus,Standard_D4ds_v4,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:45:11.364843 +AZURE,northcentralus,Standard_D4ds_v4,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:45:11.364846 +AZURE,northcentralus,Standard_D4ds_v4,spot,NA,0.041765,USD,Azure Retail Prices API,2025-12-18T04:45:09.471706 +AZURE,northcentralus,Standard_D4ds_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:45:09.470520 +AZURE,northcentralus,Standard_D4ds_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:45:11.364769 +AZURE,northcentralus,Standard_D4ds_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:45:11.364772 +AZURE,northcentralus,Standard_D4ds_v5,spot,NA,0.041765,USD,Azure Retail Prices API,2025-12-18T04:45:09.472097 +AZURE,northcentralus,Standard_D4ds_v6,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:45:09.470880 +AZURE,northcentralus,Standard_D4ds_v6,reserved_1y,NA,0.154452,USD,Azure Retail Prices API,2025-12-18T04:45:11.365062 +AZURE,northcentralus,Standard_D4ds_v6,reserved_3y,NA,0.097184,USD,Azure Retail Prices API,2025-12-18T04:45:11.365064 +AZURE,northcentralus,Standard_D4ds_v6,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:45:09.471115 +AZURE,northcentralus,Standard_D4pds_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:45:09.471082 +AZURE,northcentralus,Standard_D4pds_v6,reserved_1y,NA,0.108333,USD,Azure Retail Prices API,2025-12-18T04:45:11.365184 +AZURE,northcentralus,Standard_D4pds_v6,reserved_3y,NA,0.069787,USD,Azure Retail Prices API,2025-12-18T04:45:11.365187 +AZURE,northcentralus,Standard_D4pds_v6,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:45:09.471649 +AZURE,northcentralus,Standard_D4ps_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:45:09.471573 +AZURE,northcentralus,Standard_D4ps_v6,reserved_1y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:45:11.365575 +AZURE,northcentralus,Standard_D4ps_v6,reserved_3y,NA,0.053349,USD,Azure Retail Prices API,2025-12-18T04:45:11.365578 +AZURE,northcentralus,Standard_D4ps_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:45:09.470333 +AZURE,northcentralus,Standard_D4s_v3,on_demand,NA,0.2,USD,Azure Retail Prices API,2025-12-18T04:45:09.472012 +AZURE,northcentralus,Standard_D4s_v3,reserved_1y,NA,0.115639,USD,Azure Retail Prices API,2025-12-18T04:45:11.365950 +AZURE,northcentralus,Standard_D4s_v3,reserved_3y,NA,0.07519,USD,Azure Retail Prices API,2025-12-18T04:45:11.365953 +AZURE,northcentralus,Standard_D4s_v3,spot,NA,0.03696,USD,Azure Retail Prices API,2025-12-18T04:45:09.471169 +AZURE,northcentralus,Standard_D4s_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:45:09.471614 +AZURE,northcentralus,Standard_D4s_v4,reserved_1y,NA,0.1129,USD,Azure Retail Prices API,2025-12-18T04:45:11.365597 +AZURE,northcentralus,Standard_D4s_v4,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:45:11.365600 +AZURE,northcentralus,Standard_D4s_v4,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:45:09.470398 +AZURE,northcentralus,Standard_D4s_v5,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:45:09.472091 +AZURE,northcentralus,Standard_D4s_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:45:11.366006 +AZURE,northcentralus,Standard_D4s_v5,reserved_3y,NA,0.071043,USD,Azure Retail Prices API,2025-12-18T04:45:11.366009 +AZURE,northcentralus,Standard_D4s_v5,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:45:09.470937 +AZURE,northcentralus,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487051 +AZURE,northcentralus,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487095 +AZURE,northcentralus,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487101 +AZURE,northcentralus,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487058 +AZURE,northcentralus,Standard_D64_v3,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:45:09.470501 +AZURE,northcentralus,Standard_D64_v3,reserved_1y,NA,1.850228,USD,Azure Retail Prices API,2025-12-18T04:45:11.364746 +AZURE,northcentralus,Standard_D64_v3,reserved_3y,NA,1.203196,USD,Azure Retail Prices API,2025-12-18T04:45:11.364748 +AZURE,northcentralus,Standard_D64_v3,spot,NA,0.59136,USD,Azure Retail Prices API,2025-12-18T04:45:09.470918 +AZURE,northcentralus,Standard_D64a_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:45:09.470344 +AZURE,northcentralus,Standard_D64a_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:45:11.364577 +AZURE,northcentralus,Standard_D64a_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:45:11.364580 +AZURE,northcentralus,Standard_D64a_v4,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:45:09.470889 +AZURE,northcentralus,Standard_D64ads_v5,on_demand,NA,3.296,USD,Azure Retail Prices API,2025-12-18T04:45:09.470568 +AZURE,northcentralus,Standard_D64ads_v5,reserved_1y,NA,1.944635,USD,Azure Retail Prices API,2025-12-18T04:45:11.364826 +AZURE,northcentralus,Standard_D64ads_v5,reserved_3y,NA,1.252473,USD,Azure Retail Prices API,2025-12-18T04:45:11.364828 +AZURE,northcentralus,Standard_D64ads_v5,spot,NA,0.609101,USD,Azure Retail Prices API,2025-12-18T04:45:09.470234 +AZURE,northcentralus,Standard_D64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:09.471589 +AZURE,northcentralus,Standard_D64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:11.365586 +AZURE,northcentralus,Standard_D64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:11.365589 +AZURE,northcentralus,Standard_D64ads_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:45:09.471254 +AZURE,northcentralus,Standard_D64as_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:45:09.470669 +AZURE,northcentralus,Standard_D64as_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:45:11.364917 +AZURE,northcentralus,Standard_D64as_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:45:11.364919 +AZURE,northcentralus,Standard_D64as_v4,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:45:09.470620 +AZURE,northcentralus,Standard_D64as_v5,on_demand,NA,5.696,USD,Azure Retail Prices API,2025-12-18T04:45:09.470542 +AZURE,northcentralus,Standard_D64as_v5,reserved_1y,NA,1.62363,USD,Azure Retail Prices API,2025-12-18T04:45:11.365300 +AZURE,northcentralus,Standard_D64as_v5,reserved_3y,NA,1.045776,USD,Azure Retail Prices API,2025-12-18T04:45:11.365302 +AZURE,northcentralus,Standard_D64as_v5,spot,NA,0.50857,USD,Azure Retail Prices API,2025-12-18T04:45:09.470336 +AZURE,northcentralus,Standard_D64d_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:45:09.471154 +AZURE,northcentralus,Standard_D64d_v4,reserved_1y,NA,2.126256,USD,Azure Retail Prices API,2025-12-18T04:45:11.365218 +AZURE,northcentralus,Standard_D64d_v4,reserved_3y,NA,1.359627,USD,Azure Retail Prices API,2025-12-18T04:45:11.365221 +AZURE,northcentralus,Standard_D64d_v4,spot,NA,0.668237,USD,Azure Retail Prices API,2025-12-18T04:45:09.471194 +AZURE,northcentralus,Standard_D64ds_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:45:09.471892 +AZURE,northcentralus,Standard_D64ds_v4,reserved_1y,NA,2.126256,USD,Azure Retail Prices API,2025-12-18T04:45:11.365851 +AZURE,northcentralus,Standard_D64ds_v4,reserved_3y,NA,1.359627,USD,Azure Retail Prices API,2025-12-18T04:45:11.365854 +AZURE,northcentralus,Standard_D64ds_v4,spot,NA,0.668237,USD,Azure Retail Prices API,2025-12-18T04:45:09.470545 +AZURE,northcentralus,Standard_D64ds_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:45:09.470687 +AZURE,northcentralus,Standard_D64ds_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:45:11.364939 +AZURE,northcentralus,Standard_D64ds_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:45:11.364941 +AZURE,northcentralus,Standard_D64ds_v5,spot,NA,0.668237,USD,Azure Retail Prices API,2025-12-18T04:45:09.472020 +AZURE,northcentralus,Standard_D64ds_v6,on_demand,NA,3.987,USD,Azure Retail Prices API,2025-12-18T04:45:09.472039 +AZURE,northcentralus,Standard_D64ds_v6,reserved_1y,NA,2.471689,USD,Azure Retail Prices API,2025-12-18T04:45:11.365967 +AZURE,northcentralus,Standard_D64ds_v6,reserved_3y,NA,1.554756,USD,Azure Retail Prices API,2025-12-18T04:45:11.365970 +AZURE,northcentralus,Standard_D64ds_v6,spot,NA,0.736798,USD,Azure Retail Prices API,2025-12-18T04:45:09.471710 +AZURE,northcentralus,Standard_D64pds_v6,on_demand,NA,2.938,USD,Azure Retail Prices API,2025-12-18T04:45:09.470701 +AZURE,northcentralus,Standard_D64pds_v6,reserved_1y,NA,1.733219,USD,Azure Retail Prices API,2025-12-18T04:45:11.364961 +AZURE,northcentralus,Standard_D64pds_v6,reserved_3y,NA,1.116286,USD,Azure Retail Prices API,2025-12-18T04:45:11.364963 +AZURE,northcentralus,Standard_D64pds_v6,spot,NA,0.542942,USD,Azure Retail Prices API,2025-12-18T04:45:09.472028 +AZURE,northcentralus,Standard_D64ps_v6,on_demand,NA,2.246,USD,Azure Retail Prices API,2025-12-18T04:45:09.471840 +AZURE,northcentralus,Standard_D64ps_v6,reserved_1y,NA,1.325342,USD,Azure Retail Prices API,2025-12-18T04:45:11.365812 +AZURE,northcentralus,Standard_D64ps_v6,reserved_3y,NA,0.853615,USD,Azure Retail Prices API,2025-12-18T04:45:11.365816 +AZURE,northcentralus,Standard_D64ps_v6,spot,NA,0.415061,USD,Azure Retail Prices API,2025-12-18T04:45:09.471701 +AZURE,northcentralus,Standard_D64s_v3,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:45:09.471437 +AZURE,northcentralus,Standard_D64s_v3,reserved_1y,NA,1.850228,USD,Azure Retail Prices API,2025-12-18T04:45:11.365464 +AZURE,northcentralus,Standard_D64s_v3,reserved_3y,NA,1.203196,USD,Azure Retail Prices API,2025-12-18T04:45:11.365466 +AZURE,northcentralus,Standard_D64s_v3,spot,NA,0.59136,USD,Azure Retail Prices API,2025-12-18T04:45:09.471721 +AZURE,northcentralus,Standard_D64s_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:45:09.471952 +AZURE,northcentralus,Standard_D64s_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:45:11.365905 +AZURE,northcentralus,Standard_D64s_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:45:11.365908 +AZURE,northcentralus,Standard_D64s_v4,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:45:09.471807 +AZURE,northcentralus,Standard_D64s_v5,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:45:09.470414 +AZURE,northcentralus,Standard_D64s_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:45:11.364635 +AZURE,northcentralus,Standard_D64s_v5,reserved_3y,NA,1.136644,USD,Azure Retail Prices API,2025-12-18T04:45:11.364637 +AZURE,northcentralus,Standard_D64s_v5,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:45:09.472124 +AZURE,northcentralus,Standard_D8_v3,on_demand,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:45:09.470512 +AZURE,northcentralus,Standard_D8_v3,reserved_1y,NA,0.231279,USD,Azure Retail Prices API,2025-12-18T04:45:11.364763 +AZURE,northcentralus,Standard_D8_v3,reserved_3y,NA,0.150419,USD,Azure Retail Prices API,2025-12-18T04:45:11.364766 +AZURE,northcentralus,Standard_D8_v3,spot,NA,0.07392,USD,Azure Retail Prices API,2025-12-18T04:45:09.471284 +AZURE,northcentralus,Standard_D8a_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:45:09.471753 +AZURE,northcentralus,Standard_D8a_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:45:11.365742 +AZURE,northcentralus,Standard_D8a_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:45:11.365744 +AZURE,northcentralus,Standard_D8a_v4,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:45:09.471139 +AZURE,northcentralus,Standard_D8ads_v5,on_demand,NA,0.412,USD,Azure Retail Prices API,2025-12-18T04:45:09.470680 +AZURE,northcentralus,Standard_D8ads_v5,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:45:11.364933 +AZURE,northcentralus,Standard_D8ads_v5,reserved_3y,NA,0.156545,USD,Azure Retail Prices API,2025-12-18T04:45:11.364936 +AZURE,northcentralus,Standard_D8ads_v5,spot,NA,0.076138,USD,Azure Retail Prices API,2025-12-18T04:45:09.471961 +AZURE,northcentralus,Standard_D8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:45:09.472073 +AZURE,northcentralus,Standard_D8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:45:11.365994 +AZURE,northcentralus,Standard_D8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:45:11.365997 +AZURE,northcentralus,Standard_D8ads_v6,spot,NA,0.084269,USD,Azure Retail Prices API,2025-12-18T04:45:09.471300 +AZURE,northcentralus,Standard_D8as_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:45:09.470338 +AZURE,northcentralus,Standard_D8as_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:45:11.364566 +AZURE,northcentralus,Standard_D8as_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:45:11.364569 +AZURE,northcentralus,Standard_D8as_v4,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:45:09.470261 +AZURE,northcentralus,Standard_D8as_v5,on_demand,NA,0.344,USD,Azure Retail Prices API,2025-12-18T04:45:09.470774 +AZURE,northcentralus,Standard_D8as_v5,reserved_1y,NA,0.202968,USD,Azure Retail Prices API,2025-12-18T04:45:11.365007 +AZURE,northcentralus,Standard_D8as_v5,reserved_3y,NA,0.130708,USD,Azure Retail Prices API,2025-12-18T04:45:11.365010 +AZURE,northcentralus,Standard_D8as_v5,spot,NA,0.063571,USD,Azure Retail Prices API,2025-12-18T04:45:09.472031 +AZURE,northcentralus,Standard_D8d_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:45:09.470447 +AZURE,northcentralus,Standard_D8d_v4,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:45:11.364691 +AZURE,northcentralus,Standard_D8d_v4,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:45:11.364696 +AZURE,northcentralus,Standard_D8d_v4,spot,NA,0.08353,USD,Azure Retail Prices API,2025-12-18T04:45:09.471943 +AZURE,northcentralus,Standard_D8ds_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:45:09.471520 +AZURE,northcentralus,Standard_D8ds_v4,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:45:11.365522 +AZURE,northcentralus,Standard_D8ds_v4,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:45:11.365527 +AZURE,northcentralus,Standard_D8ds_v4,spot,NA,0.08353,USD,Azure Retail Prices API,2025-12-18T04:45:09.470258 +AZURE,northcentralus,Standard_D8ds_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:45:09.471506 +AZURE,northcentralus,Standard_D8ds_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:45:11.365507 +AZURE,northcentralus,Standard_D8ds_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:45:11.365510 +AZURE,northcentralus,Standard_D8ds_v5,spot,NA,0.08353,USD,Azure Retail Prices API,2025-12-18T04:45:09.471005 +AZURE,northcentralus,Standard_D8ds_v6,on_demand,NA,0.498,USD,Azure Retail Prices API,2025-12-18T04:45:09.471179 +AZURE,northcentralus,Standard_D8ds_v6,reserved_1y,NA,0.308904,USD,Azure Retail Prices API,2025-12-18T04:45:11.365229 +AZURE,northcentralus,Standard_D8ds_v6,reserved_3y,NA,0.19433,USD,Azure Retail Prices API,2025-12-18T04:45:11.365232 +AZURE,northcentralus,Standard_D8ds_v6,spot,NA,0.09203,USD,Azure Retail Prices API,2025-12-18T04:45:09.470745 +AZURE,northcentralus,Standard_D8pds_v6,on_demand,NA,0.367,USD,Azure Retail Prices API,2025-12-18T04:45:09.470729 +AZURE,northcentralus,Standard_D8pds_v6,reserved_1y,NA,0.216667,USD,Azure Retail Prices API,2025-12-18T04:45:11.364975 +AZURE,northcentralus,Standard_D8pds_v6,reserved_3y,NA,0.139536,USD,Azure Retail Prices API,2025-12-18T04:45:11.364977 +AZURE,northcentralus,Standard_D8pds_v6,spot,NA,0.067822,USD,Azure Retail Prices API,2025-12-18T04:45:09.471054 +AZURE,northcentralus,Standard_D8ps_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:45:09.470230 +AZURE,northcentralus,Standard_D8ps_v6,reserved_1y,NA,0.165639,USD,Azure Retail Prices API,2025-12-18T04:45:11.364431 +AZURE,northcentralus,Standard_D8ps_v6,reserved_3y,NA,0.106697,USD,Azure Retail Prices API,2025-12-18T04:45:11.364446 +AZURE,northcentralus,Standard_D8ps_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:45:09.470482 +AZURE,northcentralus,Standard_D8s_v3,on_demand,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:45:09.471442 +AZURE,northcentralus,Standard_D8s_v3,reserved_1y,NA,0.231279,USD,Azure Retail Prices API,2025-12-18T04:45:11.365469 +AZURE,northcentralus,Standard_D8s_v3,reserved_3y,NA,0.150419,USD,Azure Retail Prices API,2025-12-18T04:45:11.365472 +AZURE,northcentralus,Standard_D8s_v3,spot,NA,0.07392,USD,Azure Retail Prices API,2025-12-18T04:45:09.471535 +AZURE,northcentralus,Standard_D8s_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:45:09.470477 +AZURE,northcentralus,Standard_D8s_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:45:11.364728 +AZURE,northcentralus,Standard_D8s_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:45:11.364731 +AZURE,northcentralus,Standard_D8s_v4,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:45:09.471015 +AZURE,northcentralus,Standard_D8s_v5,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:45:09.470633 +AZURE,northcentralus,Standard_D8s_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:45:11.364878 +AZURE,northcentralus,Standard_D8s_v5,reserved_3y,NA,0.142085,USD,Azure Retail Prices API,2025-12-18T04:45:11.364880 +AZURE,northcentralus,Standard_D8s_v5,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:45:09.472022 +AZURE,northcentralus,Standard_D96a_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:45:09.472067 +AZURE,northcentralus,Standard_D96a_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:45:11.365989 +AZURE,northcentralus,Standard_D96a_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:45:11.365992 +AZURE,northcentralus,Standard_D96a_v4,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:45:09.472025 +AZURE,northcentralus,Standard_D96ads_v5,on_demand,NA,9.36,USD,Azure Retail Prices API,2025-12-18T04:45:09.471383 +AZURE,northcentralus,Standard_D96ads_v5,reserved_1y,NA,2.917009,USD,Azure Retail Prices API,2025-12-18T04:45:11.365676 +AZURE,northcentralus,Standard_D96ads_v5,reserved_3y,NA,1.878729,USD,Azure Retail Prices API,2025-12-18T04:45:11.365679 +AZURE,northcentralus,Standard_D96ads_v5,spot,NA,0.913651,USD,Azure Retail Prices API,2025-12-18T04:45:09.472070 +AZURE,northcentralus,Standard_D96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:45:09.471432 +AZURE,northcentralus,Standard_D96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:45:11.365458 +AZURE,northcentralus,Standard_D96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:45:11.365461 +AZURE,northcentralus,Standard_D96ads_v6,spot,NA,1.011226,USD,Azure Retail Prices API,2025-12-18T04:45:09.471413 +AZURE,northcentralus,Standard_D96as_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:45:09.471750 +AZURE,northcentralus,Standard_D96as_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:45:11.365736 +AZURE,northcentralus,Standard_D96as_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:45:11.365739 +AZURE,northcentralus,Standard_D96as_v4,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:45:09.471602 +AZURE,northcentralus,Standard_D96as_v5,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:45:09.471374 +AZURE,northcentralus,Standard_D96as_v5,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:45:11.365408 +AZURE,northcentralus,Standard_D96as_v5,reserved_3y,NA,1.568645,USD,Azure Retail Prices API,2025-12-18T04:45:11.365411 +AZURE,northcentralus,Standard_D96as_v5,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:45:09.471561 +AZURE,northcentralus,Standard_D96ds_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:45:09.471303 +AZURE,northcentralus,Standard_D96ds_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:45:11.365346 +AZURE,northcentralus,Standard_D96ds_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:45:11.365348 +AZURE,northcentralus,Standard_D96ds_v5,spot,NA,1.002355,USD,Azure Retail Prices API,2025-12-18T04:45:09.471164 +AZURE,northcentralus,Standard_D96ds_v6,on_demand,NA,5.98,USD,Azure Retail Prices API,2025-12-18T04:45:09.470526 +AZURE,northcentralus,Standard_D96ds_v6,reserved_1y,NA,3.707534,USD,Azure Retail Prices API,2025-12-18T04:45:11.364785 +AZURE,northcentralus,Standard_D96ds_v6,reserved_3y,NA,2.332154,USD,Azure Retail Prices API,2025-12-18T04:45:11.364788 +AZURE,northcentralus,Standard_D96ds_v6,spot,NA,1.105104,USD,Azure Retail Prices API,2025-12-18T04:45:09.470885 +AZURE,northcentralus,Standard_D96pds_v6,on_demand,NA,4.406,USD,Azure Retail Prices API,2025-12-18T04:45:09.471836 +AZURE,northcentralus,Standard_D96pds_v6,reserved_1y,NA,2.599772,USD,Azure Retail Prices API,2025-12-18T04:45:11.365804 +AZURE,northcentralus,Standard_D96pds_v6,reserved_3y,NA,1.674429,USD,Azure Retail Prices API,2025-12-18T04:45:11.365808 +AZURE,northcentralus,Standard_D96pds_v6,spot,NA,0.814229,USD,Azure Retail Prices API,2025-12-18T04:45:09.470846 +AZURE,northcentralus,Standard_D96ps_v6,on_demand,NA,3.37,USD,Azure Retail Prices API,2025-12-18T04:45:09.470766 +AZURE,northcentralus,Standard_D96ps_v6,reserved_1y,NA,1.988014,USD,Azure Retail Prices API,2025-12-18T04:45:11.364996 +AZURE,northcentralus,Standard_D96ps_v6,reserved_3y,NA,1.280441,USD,Azure Retail Prices API,2025-12-18T04:45:11.364999 +AZURE,northcentralus,Standard_D96ps_v6,spot,NA,0.622776,USD,Azure Retail Prices API,2025-12-18T04:45:09.471617 +AZURE,northcentralus,Standard_D96s_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:45:09.471958 +AZURE,northcentralus,Standard_D96s_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:11.365916 +AZURE,northcentralus,Standard_D96s_v5,reserved_3y,NA,1.704947,USD,Azure Retail Prices API,2025-12-18T04:45:11.365919 +AZURE,northcentralus,Standard_D96s_v5,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:45:09.471596 +AZURE,northcentralus,Standard_DC16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:45:09.470564 +AZURE,northcentralus,Standard_DC16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:45:11.364820 +AZURE,northcentralus,Standard_DC16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:45:11.364823 +AZURE,northcentralus,Standard_DC16ads_v6,spot,NA,0.168538,USD,Azure Retail Prices API,2025-12-18T04:45:09.470436 +AZURE,northcentralus,Standard_DC2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:45:09.472033 +AZURE,northcentralus,Standard_DC2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:45:11.365961 +AZURE,northcentralus,Standard_DC2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:45:11.365964 +AZURE,northcentralus,Standard_DC2ads_v6,spot,NA,0.021067,USD,Azure Retail Prices API,2025-12-18T04:45:09.471877 +AZURE,northcentralus,Standard_DC32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:45:09.472048 +AZURE,northcentralus,Standard_DC32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:45:11.365978 +AZURE,northcentralus,Standard_DC32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:45:11.365981 +AZURE,northcentralus,Standard_DC32ads_v6,spot,NA,0.337075,USD,Azure Retail Prices API,2025-12-18T04:45:09.471607 +AZURE,northcentralus,Standard_DC48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:45:09.471828 +AZURE,northcentralus,Standard_DC48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:45:11.365793 +AZURE,northcentralus,Standard_DC48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:45:11.365798 +AZURE,northcentralus,Standard_DC48ads_v6,spot,NA,0.505613,USD,Azure Retail Prices API,2025-12-18T04:45:09.470639 +AZURE,northcentralus,Standard_DC4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:45:09.471771 +AZURE,northcentralus,Standard_DC4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:45:11.365760 +AZURE,northcentralus,Standard_DC4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:45:11.365763 +AZURE,northcentralus,Standard_DC4ads_v6,spot,NA,0.042134,USD,Azure Retail Prices API,2025-12-18T04:45:09.472010 +AZURE,northcentralus,Standard_DC64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:09.472118 +AZURE,northcentralus,Standard_DC64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:11.366017 +AZURE,northcentralus,Standard_DC64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:11.366019 +AZURE,northcentralus,Standard_DC64ads_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:45:09.470287 +AZURE,northcentralus,Standard_DC8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:45:09.471919 +AZURE,northcentralus,Standard_DC8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:45:11.365888 +AZURE,northcentralus,Standard_DC8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:45:11.365891 +AZURE,northcentralus,Standard_DC8ads_v6,spot,NA,0.084269,USD,Azure Retail Prices API,2025-12-18T04:45:09.471911 +AZURE,northcentralus,Standard_DC96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:45:09.471853 +AZURE,northcentralus,Standard_DC96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:45:11.365829 +AZURE,northcentralus,Standard_DC96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:45:11.365834 +AZURE,northcentralus,Standard_DC96ads_v6,spot,NA,1.011226,USD,Azure Retail Prices API,2025-12-18T04:45:09.470796 +AZURE,northcentralus,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495174 +AZURE,northcentralus,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495182 +AZURE,northcentralus,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495189 +AZURE,northcentralus,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495178 +AZURE,northcentralus,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496012 +AZURE,northcentralus,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496022 +AZURE,northcentralus,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496026 +AZURE,northcentralus,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496017 +AZURE,northcentralus,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496816 +AZURE,northcentralus,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496824 +AZURE,northcentralus,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496829 +AZURE,northcentralus,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496820 +AZURE,northcentralus,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497701 +AZURE,northcentralus,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497709 +AZURE,northcentralus,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497715 +AZURE,northcentralus,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497705 +AZURE,northcentralus,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491552 +AZURE,northcentralus,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491560 +AZURE,northcentralus,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491564 +AZURE,northcentralus,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491556 +AZURE,northcentralus,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492294 +AZURE,northcentralus,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492303 +AZURE,northcentralus,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492307 +AZURE,northcentralus,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492298 +AZURE,northcentralus,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492988 +AZURE,northcentralus,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492996 +AZURE,northcentralus,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493000 +AZURE,northcentralus,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492992 +AZURE,northcentralus,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493733 +AZURE,northcentralus,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493741 +AZURE,northcentralus,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493745 +AZURE,northcentralus,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493737 +AZURE,northcentralus,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494446 +AZURE,northcentralus,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494454 +AZURE,northcentralus,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494458 +AZURE,northcentralus,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494450 +AZURE,northcentralus,Standard_E128ds_v6,on_demand,NA,10.465,USD,Azure Retail Prices API,2025-12-18T04:45:09.470976 +AZURE,northcentralus,Standard_E128ds_v6,reserved_1y,NA,6.48847,USD,Azure Retail Prices API,2025-12-18T04:45:11.365139 +AZURE,northcentralus,Standard_E128ds_v6,reserved_3y,NA,4.081469,USD,Azure Retail Prices API,2025-12-18T04:45:11.365142 +AZURE,northcentralus,Standard_E128ds_v6,spot,NA,1.933932,USD,Azure Retail Prices API,2025-12-18T04:45:09.470630 +AZURE,northcentralus,Standard_E16_v3,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:09.471540 +AZURE,northcentralus,Standard_E16_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:45:11.365546 +AZURE,northcentralus,Standard_E16_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:45:11.365549 +AZURE,northcentralus,Standard_E16_v3,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:45:09.471848 +AZURE,northcentralus,Standard_E16a_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:09.471955 +AZURE,northcentralus,Standard_E16a_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:45:11.365911 +AZURE,northcentralus,Standard_E16a_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:45:11.365914 +AZURE,northcentralus,Standard_E16a_v4,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:45:09.470493 +AZURE,northcentralus,Standard_E16ads_v5,on_demand,NA,1.048,USD,Azure Retail Prices API,2025-12-18T04:45:09.471768 +AZURE,northcentralus,Standard_E16ads_v5,reserved_1y,NA,0.618265,USD,Azure Retail Prices API,2025-12-18T04:45:11.365755 +AZURE,northcentralus,Standard_E16ads_v5,reserved_3y,NA,0.39825,USD,Azure Retail Prices API,2025-12-18T04:45:11.365758 +AZURE,northcentralus,Standard_E16ads_v5,spot,NA,0.19367,USD,Azure Retail Prices API,2025-12-18T04:45:09.471552 +AZURE,northcentralus,Standard_E16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:45:09.471555 +AZURE,northcentralus,Standard_E16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:45:11.365552 +AZURE,northcentralus,Standard_E16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:45:11.365555 +AZURE,northcentralus,Standard_E16ads_v6,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:45:09.470401 +AZURE,northcentralus,Standard_E16as_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:09.471627 +AZURE,northcentralus,Standard_E16as_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:45:11.365615 +AZURE,northcentralus,Standard_E16as_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:45:11.365617 +AZURE,northcentralus,Standard_E16as_v4,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:45:09.470582 +AZURE,northcentralus,Standard_E16as_v5,on_demand,NA,1.64,USD,Azure Retail Prices API,2025-12-18T04:45:09.470810 +AZURE,northcentralus,Standard_E16as_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:45:11.365105 +AZURE,northcentralus,Standard_E16as_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:45:11.365108 +AZURE,northcentralus,Standard_E16as_v5,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:45:09.470721 +AZURE,northcentralus,Standard_E16d_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:45:09.470356 +AZURE,northcentralus,Standard_E16d_v4,reserved_1y,NA,0.677397,USD,Azure Retail Prices API,2025-12-18T04:45:11.364600 +AZURE,northcentralus,Standard_E16d_v4,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:45:11.364603 +AZURE,northcentralus,Standard_E16d_v4,spot,NA,0.21289,USD,Azure Retail Prices API,2025-12-18T04:45:09.471680 +AZURE,northcentralus,Standard_E16ds_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:45:09.470417 +AZURE,northcentralus,Standard_E16ds_v4,reserved_1y,NA,0.677397,USD,Azure Retail Prices API,2025-12-18T04:45:11.364640 +AZURE,northcentralus,Standard_E16ds_v4,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:45:11.364643 +AZURE,northcentralus,Standard_E16ds_v4,spot,NA,0.21289,USD,Azure Retail Prices API,2025-12-18T04:45:09.470387 +AZURE,northcentralus,Standard_E16ds_v5,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:45:09.471586 +AZURE,northcentralus,Standard_E16ds_v5,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:45:11.365581 +AZURE,northcentralus,Standard_E16ds_v5,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:45:11.365584 +AZURE,northcentralus,Standard_E16ds_v5,spot,NA,0.21289,USD,Azure Retail Prices API,2025-12-18T04:45:09.471232 +AZURE,northcentralus,Standard_E16ds_v6,on_demand,NA,1.308,USD,Azure Retail Prices API,2025-12-18T04:45:09.471981 +AZURE,northcentralus,Standard_E16ds_v6,reserved_1y,NA,0.811073,USD,Azure Retail Prices API,2025-12-18T04:45:11.365928 +AZURE,northcentralus,Standard_E16ds_v6,reserved_3y,NA,0.510198,USD,Azure Retail Prices API,2025-12-18T04:45:11.365931 +AZURE,northcentralus,Standard_E16ds_v6,spot,NA,0.241718,USD,Azure Retail Prices API,2025-12-18T04:45:09.470706 +AZURE,northcentralus,Standard_E16pds_v6,on_demand,NA,0.936,USD,Azure Retail Prices API,2025-12-18T04:45:09.471086 +AZURE,northcentralus,Standard_E16pds_v6,reserved_1y,NA,0.552283,USD,Azure Retail Prices API,2025-12-18T04:45:11.365190 +AZURE,northcentralus,Standard_E16pds_v6,reserved_3y,NA,0.35567,USD,Azure Retail Prices API,2025-12-18T04:45:11.365192 +AZURE,northcentralus,Standard_E16pds_v6,spot,NA,0.172973,USD,Azure Retail Prices API,2025-12-18T04:45:09.471331 +AZURE,northcentralus,Standard_E16ps_v6,on_demand,NA,0.738,USD,Azure Retail Prices API,2025-12-18T04:45:09.471732 +AZURE,northcentralus,Standard_E16ps_v6,reserved_1y,NA,0.43516,USD,Azure Retail Prices API,2025-12-18T04:45:11.365720 +AZURE,northcentralus,Standard_E16ps_v6,reserved_3y,NA,0.280289,USD,Azure Retail Prices API,2025-12-18T04:45:11.365723 +AZURE,northcentralus,Standard_E16ps_v6,spot,NA,0.136382,USD,Azure Retail Prices API,2025-12-18T04:45:09.471096 +AZURE,northcentralus,Standard_E16s_v3,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:09.471481 +AZURE,northcentralus,Standard_E16s_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:45:11.365491 +AZURE,northcentralus,Standard_E16s_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:45:11.365493 +AZURE,northcentralus,Standard_E16s_v3,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:45:09.470240 +AZURE,northcentralus,Standard_E16s_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:09.470290 +AZURE,northcentralus,Standard_E16s_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:45:11.364522 +AZURE,northcentralus,Standard_E16s_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:45:11.364525 +AZURE,northcentralus,Standard_E16s_v4,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:45:09.471346 +AZURE,northcentralus,Standard_E16s_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:09.470653 +AZURE,northcentralus,Standard_E16s_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:45:11.364900 +AZURE,northcentralus,Standard_E16s_v5,reserved_3y,NA,0.372945,USD,Azure Retail Prices API,2025-12-18T04:45:11.364902 +AZURE,northcentralus,Standard_E16s_v5,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:45:09.470515 +AZURE,northcentralus,Standard_E20a_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:45:09.471964 +AZURE,northcentralus,Standard_E20a_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:45:11.365922 +AZURE,northcentralus,Standard_E20a_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:45:11.365925 +AZURE,northcentralus,Standard_E20a_v4,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:45:09.471780 +AZURE,northcentralus,Standard_E20ads_v5,on_demand,NA,2.23,USD,Azure Retail Prices API,2025-12-18T04:45:09.470319 +AZURE,northcentralus,Standard_E20ads_v5,reserved_1y,NA,0.772945,USD,Azure Retail Prices API,2025-12-18T04:45:11.365156 +AZURE,northcentralus,Standard_E20ads_v5,reserved_3y,NA,0.497793,USD,Azure Retail Prices API,2025-12-18T04:45:11.365159 +AZURE,northcentralus,Standard_E20ads_v5,spot,NA,0.242088,USD,Azure Retail Prices API,2025-12-18T04:45:09.471044 +AZURE,northcentralus,Standard_E20ads_v6,on_demand,NA,1.452,USD,Azure Retail Prices API,2025-12-18T04:45:09.470455 +AZURE,northcentralus,Standard_E20ads_v6,reserved_1y,NA,0.856735,USD,Azure Retail Prices API,2025-12-18T04:45:11.364708 +AZURE,northcentralus,Standard_E20ads_v6,reserved_3y,NA,0.55175,USD,Azure Retail Prices API,2025-12-18T04:45:11.364712 +AZURE,northcentralus,Standard_E20ads_v6,spot,NA,0.26833,USD,Azure Retail Prices API,2025-12-18T04:45:09.470658 +AZURE,northcentralus,Standard_E20as_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:45:09.470605 +AZURE,northcentralus,Standard_E20as_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:45:11.364866 +AZURE,northcentralus,Standard_E20as_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:45:11.364869 +AZURE,northcentralus,Standard_E20as_v4,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:45:09.471423 +AZURE,northcentralus,Standard_E20as_v5,on_demand,NA,1.13,USD,Azure Retail Prices API,2025-12-18T04:45:09.470577 +AZURE,northcentralus,Standard_E20as_v5,reserved_1y,NA,0.666667,USD,Azure Retail Prices API,2025-12-18T04:45:11.364831 +AZURE,northcentralus,Standard_E20as_v5,reserved_3y,NA,0.429414,USD,Azure Retail Prices API,2025-12-18T04:45:11.364834 +AZURE,northcentralus,Standard_E20as_v5,spot,NA,0.208824,USD,Azure Retail Prices API,2025-12-18T04:45:09.471652 +AZURE,northcentralus,Standard_E20d_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:45:09.470306 +AZURE,northcentralus,Standard_E20d_v4,reserved_1y,NA,0.846461,USD,Azure Retail Prices API,2025-12-18T04:45:11.364546 +AZURE,northcentralus,Standard_E20d_v4,reserved_3y,NA,0.541476,USD,Azure Retail Prices API,2025-12-18T04:45:11.364552 +AZURE,northcentralus,Standard_E20d_v4,spot,NA,0.266112,USD,Azure Retail Prices API,2025-12-18T04:45:09.472088 +AZURE,northcentralus,Standard_E20ds_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:45:09.470899 +AZURE,northcentralus,Standard_E20ds_v4,reserved_1y,NA,0.846461,USD,Azure Retail Prices API,2025-12-18T04:45:11.365072 +AZURE,northcentralus,Standard_E20ds_v4,reserved_3y,NA,0.541476,USD,Azure Retail Prices API,2025-12-18T04:45:11.365076 +AZURE,northcentralus,Standard_E20ds_v4,spot,NA,0.266112,USD,Azure Retail Prices API,2025-12-18T04:45:09.471871 +AZURE,northcentralus,Standard_E20ds_v5,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:45:09.470645 +AZURE,northcentralus,Standard_E20ds_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:45:11.364889 +AZURE,northcentralus,Standard_E20ds_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:45:11.364891 +AZURE,northcentralus,Standard_E20ds_v5,spot,NA,0.266112,USD,Azure Retail Prices API,2025-12-18T04:45:09.470362 +AZURE,northcentralus,Standard_E20ds_v6,on_demand,NA,1.635,USD,Azure Retail Prices API,2025-12-18T04:45:09.471030 +AZURE,northcentralus,Standard_E20ds_v6,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:45:11.365168 +AZURE,northcentralus,Standard_E20ds_v6,reserved_3y,NA,0.637709,USD,Azure Retail Prices API,2025-12-18T04:45:11.365170 +AZURE,northcentralus,Standard_E20ds_v6,spot,NA,0.302148,USD,Azure Retail Prices API,2025-12-18T04:45:09.471636 +AZURE,northcentralus,Standard_E20s_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:45:09.470523 +AZURE,northcentralus,Standard_E20s_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:45:11.364780 +AZURE,northcentralus,Standard_E20s_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:45:11.364782 +AZURE,northcentralus,Standard_E20s_v4,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:45:09.471402 +AZURE,northcentralus,Standard_E20s_v5,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:45:09.471905 +AZURE,northcentralus,Standard_E20s_v5,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:45:11.365875 +AZURE,northcentralus,Standard_E20s_v5,reserved_3y,NA,0.46621,USD,Azure Retail Prices API,2025-12-18T04:45:11.365879 +AZURE,northcentralus,Standard_E20s_v5,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:45:09.471039 +AZURE,northcentralus,Standard_E2_v3,on_demand,NA,0.126,USD,Azure Retail Prices API,2025-12-18T04:45:09.471698 +AZURE,northcentralus,Standard_E2_v3,reserved_1y,NA,0.078196,USD,Azure Retail Prices API,2025-12-18T04:45:11.365687 +AZURE,northcentralus,Standard_E2_v3,reserved_3y,NA,0.05,USD,Azure Retail Prices API,2025-12-18T04:45:11.365690 +AZURE,northcentralus,Standard_E2_v3,spot,NA,0.023285,USD,Azure Retail Prices API,2025-12-18T04:45:09.470981 +AZURE,northcentralus,Standard_E2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:45:09.471457 +AZURE,northcentralus,Standard_E2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:45:11.365480 +AZURE,northcentralus,Standard_E2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:45:11.365483 +AZURE,northcentralus,Standard_E2ads_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:45:09.472080 +AZURE,northcentralus,Standard_E2ds_v5,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:45:09.471669 +AZURE,northcentralus,Standard_E2ds_v5,reserved_1y,NA,0.084932,USD,Azure Retail Prices API,2025-12-18T04:45:11.365659 +AZURE,northcentralus,Standard_E2ds_v5,reserved_3y,NA,0.054718,USD,Azure Retail Prices API,2025-12-18T04:45:11.365662 +AZURE,northcentralus,Standard_E2ds_v5,spot,NA,0.026611,USD,Azure Retail Prices API,2025-12-18T04:45:09.471824 +AZURE,northcentralus,Standard_E2ds_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:45:09.470588 +AZURE,northcentralus,Standard_E2ds_v6,reserved_1y,NA,0.10137,USD,Azure Retail Prices API,2025-12-18T04:45:11.364837 +AZURE,northcentralus,Standard_E2ds_v6,reserved_3y,NA,0.063775,USD,Azure Retail Prices API,2025-12-18T04:45:11.364840 +AZURE,northcentralus,Standard_E2ds_v6,spot,NA,0.030307,USD,Azure Retail Prices API,2025-12-18T04:45:09.470304 +AZURE,northcentralus,Standard_E2pds_v6,on_demand,NA,0.117,USD,Azure Retail Prices API,2025-12-18T04:45:09.470348 +AZURE,northcentralus,Standard_E2pds_v6,reserved_1y,NA,0.069064,USD,Azure Retail Prices API,2025-12-18T04:45:11.364583 +AZURE,northcentralus,Standard_E2pds_v6,reserved_3y,NA,0.044444,USD,Azure Retail Prices API,2025-12-18T04:45:11.364586 +AZURE,northcentralus,Standard_E2pds_v6,spot,NA,0.021622,USD,Azure Retail Prices API,2025-12-18T04:45:09.471546 +AZURE,northcentralus,Standard_E32_v3,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:09.471379 +AZURE,northcentralus,Standard_E32_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:45:11.365414 +AZURE,northcentralus,Standard_E32_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:45:11.365416 +AZURE,northcentralus,Standard_E32_v3,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:45:09.470611 +AZURE,northcentralus,Standard_E32a_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:09.472001 +AZURE,northcentralus,Standard_E32a_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:45:11.365945 +AZURE,northcentralus,Standard_E32a_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:45:11.365948 +AZURE,northcentralus,Standard_E32a_v4,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:45:09.471885 +AZURE,northcentralus,Standard_E32ads_v5,on_demand,NA,2.096,USD,Azure Retail Prices API,2025-12-18T04:45:09.470677 +AZURE,northcentralus,Standard_E32ads_v5,reserved_1y,NA,1.236644,USD,Azure Retail Prices API,2025-12-18T04:45:11.364928 +AZURE,northcentralus,Standard_E32ads_v5,reserved_3y,NA,0.796461,USD,Azure Retail Prices API,2025-12-18T04:45:11.364931 +AZURE,northcentralus,Standard_E32ads_v5,spot,NA,0.387341,USD,Azure Retail Prices API,2025-12-18T04:45:09.471663 +AZURE,northcentralus,Standard_E32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:45:09.471308 +AZURE,northcentralus,Standard_E32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:45:11.365357 +AZURE,northcentralus,Standard_E32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:45:11.365359 +AZURE,northcentralus,Standard_E32ads_v6,spot,NA,0.42929,USD,Azure Retail Prices API,2025-12-18T04:45:09.471762 +AZURE,northcentralus,Standard_E32as_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:09.470431 +AZURE,northcentralus,Standard_E32as_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:45:11.364668 +AZURE,northcentralus,Standard_E32as_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:45:11.364671 +AZURE,northcentralus,Standard_E32as_v4,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:45:09.472003 +AZURE,northcentralus,Standard_E32as_v5,on_demand,NA,3.28,USD,Azure Retail Prices API,2025-12-18T04:45:09.470496 +AZURE,northcentralus,Standard_E32as_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:45:11.365899 +AZURE,northcentralus,Standard_E32as_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:45:11.365902 +AZURE,northcentralus,Standard_E32as_v5,spot,NA,0.334118,USD,Azure Retail Prices API,2025-12-18T04:45:09.472104 +AZURE,northcentralus,Standard_E32d_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:45:09.470991 +AZURE,northcentralus,Standard_E32d_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:45:11.365145 +AZURE,northcentralus,Standard_E32d_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:45:11.365148 +AZURE,northcentralus,Standard_E32d_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:45:09.471908 +AZURE,northcentralus,Standard_E32ds_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:45:09.470841 +AZURE,northcentralus,Standard_E32ds_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:45:11.365040 +AZURE,northcentralus,Standard_E32ds_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:45:11.365042 +AZURE,northcentralus,Standard_E32ds_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:45:09.470409 +AZURE,northcentralus,Standard_E32ds_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:45:09.471658 +AZURE,northcentralus,Standard_E32ds_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:11.365653 +AZURE,northcentralus,Standard_E32ds_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:45:11.365656 +AZURE,northcentralus,Standard_E32ds_v5,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:45:09.470266 +AZURE,northcentralus,Standard_E32ds_v6,on_demand,NA,2.616,USD,Azure Retail Prices API,2025-12-18T04:45:09.471712 +AZURE,northcentralus,Standard_E32ds_v6,reserved_1y,NA,1.622146,USD,Azure Retail Prices API,2025-12-18T04:45:11.365703 +AZURE,northcentralus,Standard_E32ds_v6,reserved_3y,NA,1.020358,USD,Azure Retail Prices API,2025-12-18T04:45:11.365706 +AZURE,northcentralus,Standard_E32ds_v6,spot,NA,0.483437,USD,Azure Retail Prices API,2025-12-18T04:45:09.470865 +AZURE,northcentralus,Standard_E32pds_v6,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:45:09.471638 +AZURE,northcentralus,Standard_E32pds_v6,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:45:11.365625 +AZURE,northcentralus,Standard_E32pds_v6,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:45:11.365628 +AZURE,northcentralus,Standard_E32pds_v6,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:45:09.472115 +AZURE,northcentralus,Standard_E32ps_v6,on_demand,NA,1.475,USD,Azure Retail Prices API,2025-12-18T04:45:09.472085 +AZURE,northcentralus,Standard_E32ps_v6,reserved_1y,NA,0.87032,USD,Azure Retail Prices API,2025-12-18T04:45:11.366000 +AZURE,northcentralus,Standard_E32ps_v6,reserved_3y,NA,0.560578,USD,Azure Retail Prices API,2025-12-18T04:45:11.366003 +AZURE,northcentralus,Standard_E32ps_v6,spot,NA,0.27258,USD,Azure Retail Prices API,2025-12-18T04:45:09.471856 +AZURE,northcentralus,Standard_E32s_v3,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:09.470284 +AZURE,northcentralus,Standard_E32s_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:45:11.364517 +AZURE,northcentralus,Standard_E32s_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:45:11.364519 +AZURE,northcentralus,Standard_E32s_v3,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:45:09.470585 +AZURE,northcentralus,Standard_E32s_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:09.471738 +AZURE,northcentralus,Standard_E32s_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:45:11.365731 +AZURE,northcentralus,Standard_E32s_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:45:11.365733 +AZURE,northcentralus,Standard_E32s_v4,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:45:09.470390 +AZURE,northcentralus,Standard_E32s_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:09.470272 +AZURE,northcentralus,Standard_E32s_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:45:11.364491 +AZURE,northcentralus,Standard_E32s_v5,reserved_3y,NA,0.745928,USD,Azure Retail Prices API,2025-12-18T04:45:11.364507 +AZURE,northcentralus,Standard_E32s_v5,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:45:09.470536 +AZURE,northcentralus,Standard_E48a_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:45:09.470792 +AZURE,northcentralus,Standard_E48a_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:45:11.365023 +AZURE,northcentralus,Standard_E48a_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:45:11.365026 +AZURE,northcentralus,Standard_E48a_v4,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:45:09.470379 +AZURE,northcentralus,Standard_E48ads_v5,on_demand,NA,5.352,USD,Azure Retail Prices API,2025-12-18T04:45:09.470461 +AZURE,northcentralus,Standard_E48ads_v5,reserved_1y,NA,1.854909,USD,Azure Retail Prices API,2025-12-18T04:45:11.365772 +AZURE,northcentralus,Standard_E48ads_v5,reserved_3y,NA,1.194711,USD,Azure Retail Prices API,2025-12-18T04:45:11.365775 +AZURE,northcentralus,Standard_E48ads_v5,spot,NA,0.581011,USD,Azure Retail Prices API,2025-12-18T04:45:09.471922 +AZURE,northcentralus,Standard_E48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:45:09.470550 +AZURE,northcentralus,Standard_E48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:45:11.364809 +AZURE,northcentralus,Standard_E48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:45:11.364812 +AZURE,northcentralus,Standard_E48ads_v6,spot,NA,0.644028,USD,Azure Retail Prices API,2025-12-18T04:45:09.472127 +AZURE,northcentralus,Standard_E48as_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:45:09.470292 +AZURE,northcentralus,Standard_E48as_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:45:11.364528 +AZURE,northcentralus,Standard_E48as_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:45:11.364531 +AZURE,northcentralus,Standard_E48as_v4,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:45:09.470509 +AZURE,northcentralus,Standard_E48as_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:45:09.470324 +AZURE,northcentralus,Standard_E48as_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:45:11.364560 +AZURE,northcentralus,Standard_E48as_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:45:11.364563 +AZURE,northcentralus,Standard_E48as_v5,spot,NA,0.501178,USD,Azure Retail Prices API,2025-12-18T04:45:09.470801 +AZURE,northcentralus,Standard_E48d_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:45:09.471218 +AZURE,northcentralus,Standard_E48d_v4,reserved_1y,NA,2.032078,USD,Azure Retail Prices API,2025-12-18T04:45:11.365264 +AZURE,northcentralus,Standard_E48d_v4,reserved_3y,NA,1.299467,USD,Azure Retail Prices API,2025-12-18T04:45:11.365267 +AZURE,northcentralus,Standard_E48d_v4,spot,NA,0.638669,USD,Azure Retail Prices API,2025-12-18T04:45:09.470579 +AZURE,northcentralus,Standard_E48ds_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:45:09.470593 +AZURE,northcentralus,Standard_E48ds_v4,reserved_1y,NA,2.032078,USD,Azure Retail Prices API,2025-12-18T04:45:11.364849 +AZURE,northcentralus,Standard_E48ds_v4,reserved_3y,NA,1.299467,USD,Azure Retail Prices API,2025-12-18T04:45:11.364852 +AZURE,northcentralus,Standard_E48ds_v4,spot,NA,0.638669,USD,Azure Retail Prices API,2025-12-18T04:45:09.470628 +AZURE,northcentralus,Standard_E48ds_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:45:09.470252 +AZURE,northcentralus,Standard_E48ds_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:45:11.364461 +AZURE,northcentralus,Standard_E48ds_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:45:11.364466 +AZURE,northcentralus,Standard_E48ds_v5,spot,NA,0.638669,USD,Azure Retail Prices API,2025-12-18T04:45:09.471786 +AZURE,northcentralus,Standard_E48ds_v6,on_demand,NA,3.924,USD,Azure Retail Prices API,2025-12-18T04:45:09.471496 +AZURE,northcentralus,Standard_E48ds_v6,reserved_1y,NA,2.433219,USD,Azure Retail Prices API,2025-12-18T04:45:11.365501 +AZURE,northcentralus,Standard_E48ds_v6,reserved_3y,NA,1.530556,USD,Azure Retail Prices API,2025-12-18T04:45:11.365504 +AZURE,northcentralus,Standard_E48ds_v6,spot,NA,0.725155,USD,Azure Retail Prices API,2025-12-18T04:45:09.472045 +AZURE,northcentralus,Standard_E48pds_v6,on_demand,NA,2.808,USD,Azure Retail Prices API,2025-12-18T04:45:09.470507 +AZURE,northcentralus,Standard_E48pds_v6,reserved_1y,NA,1.656735,USD,Azure Retail Prices API,2025-12-18T04:45:11.364757 +AZURE,northcentralus,Standard_E48pds_v6,reserved_3y,NA,1.067047,USD,Azure Retail Prices API,2025-12-18T04:45:11.364760 +AZURE,northcentralus,Standard_E48pds_v6,spot,NA,0.518918,USD,Azure Retail Prices API,2025-12-18T04:45:09.471120 +AZURE,northcentralus,Standard_E48ps_v6,on_demand,NA,2.213,USD,Azure Retail Prices API,2025-12-18T04:45:09.470597 +AZURE,northcentralus,Standard_E48ps_v6,reserved_1y,NA,1.305594,USD,Azure Retail Prices API,2025-12-18T04:45:11.364855 +AZURE,northcentralus,Standard_E48ps_v6,reserved_3y,NA,0.840868,USD,Azure Retail Prices API,2025-12-18T04:45:11.364858 +AZURE,northcentralus,Standard_E48ps_v6,spot,NA,0.408962,USD,Azure Retail Prices API,2025-12-18T04:45:09.471227 +AZURE,northcentralus,Standard_E48s_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:45:09.470819 +AZURE,northcentralus,Standard_E48s_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:45:11.365034 +AZURE,northcentralus,Standard_E48s_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:45:11.365037 +AZURE,northcentralus,Standard_E48s_v4,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:45:09.470309 +AZURE,northcentralus,Standard_E48s_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:45:09.470422 +AZURE,northcentralus,Standard_E48s_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:45:11.364651 +AZURE,northcentralus,Standard_E48s_v5,reserved_3y,NA,1.118874,USD,Azure Retail Prices API,2025-12-18T04:45:11.364654 +AZURE,northcentralus,Standard_E48s_v5,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:45:09.470625 +AZURE,northcentralus,Standard_E4_v3,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:09.470666 +AZURE,northcentralus,Standard_E4_v3,reserved_1y,NA,0.156393,USD,Azure Retail Prices API,2025-12-18T04:45:11.364911 +AZURE,northcentralus,Standard_E4_v3,reserved_3y,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:45:11.364914 +AZURE,northcentralus,Standard_E4_v3,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:45:09.471917 +AZURE,northcentralus,Standard_E4a_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:09.470396 +AZURE,northcentralus,Standard_E4a_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:45:11.364629 +AZURE,northcentralus,Standard_E4a_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:45:11.364632 +AZURE,northcentralus,Standard_E4a_v4,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:45:09.471279 +AZURE,northcentralus,Standard_E4ads_v5,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:45:09.470788 +AZURE,northcentralus,Standard_E4ads_v5,reserved_1y,NA,0.154566,USD,Azure Retail Prices API,2025-12-18T04:45:11.365018 +AZURE,northcentralus,Standard_E4ads_v5,reserved_3y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:45:11.365021 +AZURE,northcentralus,Standard_E4ads_v5,spot,NA,0.048418,USD,Azure Retail Prices API,2025-12-18T04:45:09.471989 +AZURE,northcentralus,Standard_E4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:45:09.470269 +AZURE,northcentralus,Standard_E4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:45:11.364485 +AZURE,northcentralus,Standard_E4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:45:11.364488 +AZURE,northcentralus,Standard_E4ads_v6,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:45:09.471461 +AZURE,northcentralus,Standard_E4as_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:09.471913 +AZURE,northcentralus,Standard_E4as_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:45:11.365882 +AZURE,northcentralus,Standard_E4as_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:45:11.365885 +AZURE,northcentralus,Standard_E4as_v4,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:45:09.471935 +AZURE,northcentralus,Standard_E4as_v5,on_demand,NA,0.41,USD,Azure Retail Prices API,2025-12-18T04:45:09.470986 +AZURE,northcentralus,Standard_E4as_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:45:11.365642 +AZURE,northcentralus,Standard_E4as_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:45:11.365645 +AZURE,northcentralus,Standard_E4as_v5,spot,NA,0.041765,USD,Azure Retail Prices API,2025-12-18T04:45:09.470966 +AZURE,northcentralus,Standard_E4d_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:45:09.471270 +AZURE,northcentralus,Standard_E4d_v4,reserved_1y,NA,0.169292,USD,Azure Retail Prices API,2025-12-18T04:45:11.365322 +AZURE,northcentralus,Standard_E4d_v4,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:45:11.365325 +AZURE,northcentralus,Standard_E4d_v4,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:45:09.472051 +AZURE,northcentralus,Standard_E4ds_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:45:09.470675 +AZURE,northcentralus,Standard_E4ds_v4,reserved_1y,NA,0.169292,USD,Azure Retail Prices API,2025-12-18T04:45:11.364922 +AZURE,northcentralus,Standard_E4ds_v4,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:45:11.364925 +AZURE,northcentralus,Standard_E4ds_v4,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:45:09.471718 +AZURE,northcentralus,Standard_E4ds_v5,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:45:09.471724 +AZURE,northcentralus,Standard_E4ds_v5,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:45:11.365709 +AZURE,northcentralus,Standard_E4ds_v5,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:45:11.365712 +AZURE,northcentralus,Standard_E4ds_v5,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:45:09.471949 +AZURE,northcentralus,Standard_E4ds_v6,on_demand,NA,0.327,USD,Azure Retail Prices API,2025-12-18T04:45:09.471208 +AZURE,northcentralus,Standard_E4ds_v6,reserved_1y,NA,0.20274,USD,Azure Retail Prices API,2025-12-18T04:45:11.365252 +AZURE,northcentralus,Standard_E4ds_v6,reserved_3y,NA,0.127549,USD,Azure Retail Prices API,2025-12-18T04:45:11.365255 +AZURE,northcentralus,Standard_E4ds_v6,spot,NA,0.06043,USD,Azure Retail Prices API,2025-12-18T04:45:09.470715 +AZURE,northcentralus,Standard_E4pds_v6,on_demand,NA,0.234,USD,Azure Retail Prices API,2025-12-18T04:45:09.470351 +AZURE,northcentralus,Standard_E4pds_v6,reserved_1y,NA,0.138014,USD,Azure Retail Prices API,2025-12-18T04:45:11.364589 +AZURE,northcentralus,Standard_E4pds_v6,reserved_3y,NA,0.088927,USD,Azure Retail Prices API,2025-12-18T04:45:11.364592 +AZURE,northcentralus,Standard_E4pds_v6,spot,NA,0.043243,USD,Azure Retail Prices API,2025-12-18T04:45:09.470704 +AZURE,northcentralus,Standard_E4ps_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:45:09.471370 +AZURE,northcentralus,Standard_E4ps_v6,reserved_1y,NA,0.10879,USD,Azure Retail Prices API,2025-12-18T04:45:11.365403 +AZURE,northcentralus,Standard_E4ps_v6,reserved_3y,NA,0.070053,USD,Azure Retail Prices API,2025-12-18T04:45:11.365406 +AZURE,northcentralus,Standard_E4ps_v6,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:45:09.471692 +AZURE,northcentralus,Standard_E4s_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:09.471672 +AZURE,northcentralus,Standard_E4s_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:45:11.365664 +AZURE,northcentralus,Standard_E4s_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:45:11.365667 +AZURE,northcentralus,Standard_E4s_v4,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:45:09.471134 +AZURE,northcentralus,Standard_E4s_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:09.472015 +AZURE,northcentralus,Standard_E4s_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:45:11.365956 +AZURE,northcentralus,Standard_E4s_v5,reserved_3y,NA,0.093227,USD,Azure Retail Prices API,2025-12-18T04:45:11.365958 +AZURE,northcentralus,Standard_E4s_v5,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:45:09.471336 +AZURE,northcentralus,Standard_E64_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:09.471204 +AZURE,northcentralus,Standard_E64_v3,reserved_1y,NA,2.358562,USD,Azure Retail Prices API,2025-12-18T04:45:11.365246 +AZURE,northcentralus,Standard_E64_v3,reserved_3y,NA,1.508219,USD,Azure Retail Prices API,2025-12-18T04:45:11.365249 +AZURE,northcentralus,Standard_E64_v3,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:45:09.471633 +AZURE,northcentralus,Standard_E64a_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:45:09.470384 +AZURE,northcentralus,Standard_E64a_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:45:11.364623 +AZURE,northcentralus,Standard_E64a_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:45:11.364626 +AZURE,northcentralus,Standard_E64a_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:45:09.472112 +AZURE,northcentralus,Standard_E64ads_v5,on_demand,NA,7.136,USD,Azure Retail Prices API,2025-12-18T04:45:09.470656 +AZURE,northcentralus,Standard_E64ads_v5,reserved_1y,NA,2.473288,USD,Azure Retail Prices API,2025-12-18T04:45:11.365317 +AZURE,northcentralus,Standard_E64ads_v5,reserved_3y,NA,1.59296,USD,Azure Retail Prices API,2025-12-18T04:45:11.365319 +AZURE,northcentralus,Standard_E64ads_v5,spot,NA,0.774682,USD,Azure Retail Prices API,2025-12-18T04:45:09.471467 +AZURE,northcentralus,Standard_E64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:45:09.470428 +AZURE,northcentralus,Standard_E64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:45:11.364663 +AZURE,northcentralus,Standard_E64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:45:11.364665 +AZURE,northcentralus,Standard_E64ads_v6,spot,NA,0.858581,USD,Azure Retail Prices API,2025-12-18T04:45:09.470237 +AZURE,northcentralus,Standard_E64as_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:45:09.471341 +AZURE,northcentralus,Standard_E64as_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:45:11.365380 +AZURE,northcentralus,Standard_E64as_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:45:11.365383 +AZURE,northcentralus,Standard_E64as_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:45:09.470322 +AZURE,northcentralus,Standard_E64as_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:45:09.470433 +AZURE,northcentralus,Standard_E64as_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:45:11.364674 +AZURE,northcentralus,Standard_E64as_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:45:11.364677 +AZURE,northcentralus,Standard_E64as_v5,spot,NA,0.668237,USD,Azure Retail Prices API,2025-12-18T04:45:09.471360 +AZURE,northcentralus,Standard_E64d_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:45:09.471655 +AZURE,northcentralus,Standard_E64d_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:45:11.365648 +AZURE,northcentralus,Standard_E64d_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:45:11.365651 +AZURE,northcentralus,Standard_E64d_v4,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:45:09.471865 +AZURE,northcentralus,Standard_E64ds_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:45:09.470894 +AZURE,northcentralus,Standard_E64ds_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:45:11.365067 +AZURE,northcentralus,Standard_E64ds_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:45:11.365070 +AZURE,northcentralus,Standard_E64ds_v4,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:45:09.471576 +AZURE,northcentralus,Standard_E64ds_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:45:09.470650 +AZURE,northcentralus,Standard_E64ds_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:11.364894 +AZURE,northcentralus,Standard_E64ds_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:45:11.364897 +AZURE,northcentralus,Standard_E64ds_v5,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:45:09.471946 +AZURE,northcentralus,Standard_E64ds_v6,on_demand,NA,5.233,USD,Azure Retail Prices API,2025-12-18T04:45:09.470855 +AZURE,northcentralus,Standard_E64ds_v6,reserved_1y,NA,3.244292,USD,Azure Retail Prices API,2025-12-18T04:45:11.365045 +AZURE,northcentralus,Standard_E64ds_v6,reserved_3y,NA,2.040715,USD,Azure Retail Prices API,2025-12-18T04:45:11.365048 +AZURE,northcentralus,Standard_E64ds_v6,spot,NA,0.967058,USD,Azure Retail Prices API,2025-12-18T04:45:09.470608 +AZURE,northcentralus,Standard_E64pds_v6,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:45:09.471397 +AZURE,northcentralus,Standard_E64pds_v6,reserved_1y,NA,2.208904,USD,Azure Retail Prices API,2025-12-18T04:45:11.365436 +AZURE,northcentralus,Standard_E64pds_v6,reserved_3y,NA,1.422717,USD,Azure Retail Prices API,2025-12-18T04:45:11.365439 +AZURE,northcentralus,Standard_E64pds_v6,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:45:09.470942 +AZURE,northcentralus,Standard_E64ps_v6,on_demand,NA,2.95,USD,Azure Retail Prices API,2025-12-18T04:45:09.472042 +AZURE,northcentralus,Standard_E64ps_v6,reserved_1y,NA,1.740753,USD,Azure Retail Prices API,2025-12-18T04:45:11.365973 +AZURE,northcentralus,Standard_E64ps_v6,reserved_3y,NA,1.121157,USD,Azure Retail Prices API,2025-12-18T04:45:11.365975 +AZURE,northcentralus,Standard_E64ps_v6,spot,NA,0.54516,USD,Azure Retail Prices API,2025-12-18T04:45:09.470393 +AZURE,northcentralus,Standard_E64s_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:09.471896 +AZURE,northcentralus,Standard_E64s_v3,reserved_1y,NA,2.358562,USD,Azure Retail Prices API,2025-12-18T04:45:11.365857 +AZURE,northcentralus,Standard_E64s_v3,reserved_3y,NA,1.508219,USD,Azure Retail Prices API,2025-12-18T04:45:11.365860 +AZURE,northcentralus,Standard_E64s_v3,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:45:09.471862 +AZURE,northcentralus,Standard_E64s_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:45:09.470528 +AZURE,northcentralus,Standard_E64s_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:45:11.364791 +AZURE,northcentralus,Standard_E64s_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:45:11.364794 +AZURE,northcentralus,Standard_E64s_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:45:09.471812 +AZURE,northcentralus,Standard_E64s_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:45:09.471491 +AZURE,northcentralus,Standard_E64s_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:45:11.365496 +AZURE,northcentralus,Standard_E64s_v5,reserved_3y,NA,1.491857,USD,Azure Retail Prices API,2025-12-18T04:45:11.365499 +AZURE,northcentralus,Standard_E64s_v5,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:45:09.472036 +AZURE,northcentralus,Standard_E80ids_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:45:09.470642 +AZURE,northcentralus,Standard_E80ids_v4,reserved_1y,NA,3.385845,USD,Azure Retail Prices API,2025-12-18T04:45:11.364883 +AZURE,northcentralus,Standard_E80ids_v4,reserved_3y,NA,2.165906,USD,Azure Retail Prices API,2025-12-18T04:45:11.364886 +AZURE,northcentralus,Standard_E80ids_v4,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:45:09.470559 +AZURE,northcentralus,Standard_E80is_v4,on_demand,NA,5.04,USD,Azure Retail Prices API,2025-12-18T04:45:09.471276 +AZURE,northcentralus,Standard_E80is_v4,reserved_1y,NA,2.96347,USD,Azure Retail Prices API,2025-12-18T04:45:11.365334 +AZURE,northcentralus,Standard_E80is_v4,reserved_3y,NA,1.894977,USD,Azure Retail Prices API,2025-12-18T04:45:11.365337 +AZURE,northcentralus,Standard_E80is_v4,spot,NA,0.931392,USD,Azure Retail Prices API,2025-12-18T04:45:09.472057 +AZURE,northcentralus,Standard_E8_v3,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:09.471476 +AZURE,northcentralus,Standard_E8_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:45:11.365485 +AZURE,northcentralus,Standard_E8_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:45:11.365488 +AZURE,northcentralus,Standard_E8_v3,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:45:09.471266 +AZURE,northcentralus,Standard_E8a_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:09.470599 +AZURE,northcentralus,Standard_E8a_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:45:11.364860 +AZURE,northcentralus,Standard_E8a_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:45:11.364863 +AZURE,northcentralus,Standard_E8a_v4,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:45:09.471882 +AZURE,northcentralus,Standard_E8ads_v5,on_demand,NA,0.892,USD,Azure Retail Prices API,2025-12-18T04:45:09.471144 +AZURE,northcentralus,Standard_E8ads_v5,reserved_1y,NA,0.309132,USD,Azure Retail Prices API,2025-12-18T04:45:11.365698 +AZURE,northcentralus,Standard_E8ads_v5,reserved_3y,NA,0.199125,USD,Azure Retail Prices API,2025-12-18T04:45:11.365701 +AZURE,northcentralus,Standard_E8ads_v5,spot,NA,0.096835,USD,Azure Retail Prices API,2025-12-18T04:45:09.470724 +AZURE,northcentralus,Standard_E8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:45:09.470815 +AZURE,northcentralus,Standard_E8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:45:11.365029 +AZURE,northcentralus,Standard_E8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:45:11.365032 +AZURE,northcentralus,Standard_E8ads_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:45:09.471326 +AZURE,northcentralus,Standard_E8as_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:09.470359 +AZURE,northcentralus,Standard_E8as_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:45:11.364606 +AZURE,northcentralus,Standard_E8as_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:45:11.364609 +AZURE,northcentralus,Standard_E8as_v4,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:45:09.471666 +AZURE,northcentralus,Standard_E8as_v5,on_demand,NA,0.82,USD,Azure Retail Prices API,2025-12-18T04:45:09.471159 +AZURE,northcentralus,Standard_E8as_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:45:11.366022 +AZURE,northcentralus,Standard_E8as_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:45:11.366025 +AZURE,northcentralus,Standard_E8as_v5,spot,NA,0.08353,USD,Azure Retail Prices API,2025-12-18T04:45:09.470452 +AZURE,northcentralus,Standard_E8d_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:45:09.471318 +AZURE,northcentralus,Standard_E8d_v4,reserved_1y,NA,0.338699,USD,Azure Retail Prices API,2025-12-18T04:45:11.365369 +AZURE,northcentralus,Standard_E8d_v4,reserved_3y,NA,0.216591,USD,Azure Retail Prices API,2025-12-18T04:45:11.365372 +AZURE,northcentralus,Standard_E8d_v4,spot,NA,0.106445,USD,Azure Retail Prices API,2025-12-18T04:45:09.471447 +AZURE,northcentralus,Standard_E8ds_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:45:09.470870 +AZURE,northcentralus,Standard_E8ds_v4,reserved_1y,NA,0.338699,USD,Azure Retail Prices API,2025-12-18T04:45:11.365050 +AZURE,northcentralus,Standard_E8ds_v4,reserved_3y,NA,0.216591,USD,Azure Retail Prices API,2025-12-18T04:45:11.365053 +AZURE,northcentralus,Standard_E8ds_v4,spot,NA,0.106445,USD,Azure Retail Prices API,2025-12-18T04:45:09.470327 +AZURE,northcentralus,Standard_E8ds_v5,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:45:09.471730 +AZURE,northcentralus,Standard_E8ds_v5,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:45:11.365715 +AZURE,northcentralus,Standard_E8ds_v5,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:45:11.365717 +AZURE,northcentralus,Standard_E8ds_v5,spot,NA,0.106445,USD,Azure Retail Prices API,2025-12-18T04:45:09.470956 +AZURE,northcentralus,Standard_E8ds_v6,on_demand,NA,0.654,USD,Azure Retail Prices API,2025-12-18T04:45:09.470425 +AZURE,northcentralus,Standard_E8ds_v6,reserved_1y,NA,0.405479,USD,Azure Retail Prices API,2025-12-18T04:45:11.364657 +AZURE,northcentralus,Standard_E8ds_v6,reserved_3y,NA,0.255099,USD,Azure Retail Prices API,2025-12-18T04:45:11.364660 +AZURE,northcentralus,Standard_E8ds_v6,spot,NA,0.120859,USD,Azure Retail Prices API,2025-12-18T04:45:09.471889 +AZURE,northcentralus,Standard_E8pds_v6,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:45:09.471850 +AZURE,northcentralus,Standard_E8pds_v6,reserved_1y,NA,0.276142,USD,Azure Retail Prices API,2025-12-18T04:45:11.365821 +AZURE,northcentralus,Standard_E8pds_v6,reserved_3y,NA,0.177854,USD,Azure Retail Prices API,2025-12-18T04:45:11.365825 +AZURE,northcentralus,Standard_E8pds_v6,spot,NA,0.086486,USD,Azure Retail Prices API,2025-12-18T04:45:09.471756 +AZURE,northcentralus,Standard_E8ps_v6,on_demand,NA,0.369,USD,Azure Retail Prices API,2025-12-18T04:45:09.471419 +AZURE,northcentralus,Standard_E8ps_v6,reserved_1y,NA,0.21758,USD,Azure Retail Prices API,2025-12-18T04:45:11.365447 +AZURE,northcentralus,Standard_E8ps_v6,reserved_3y,NA,0.140145,USD,Azure Retail Prices API,2025-12-18T04:45:11.365450 +AZURE,northcentralus,Standard_E8ps_v6,spot,NA,0.068191,USD,Azure Retail Prices API,2025-12-18T04:45:09.471932 +AZURE,northcentralus,Standard_E8s_v3,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:09.471388 +AZURE,northcentralus,Standard_E8s_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:45:11.365425 +AZURE,northcentralus,Standard_E8s_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:45:11.365428 +AZURE,northcentralus,Standard_E8s_v3,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:45:09.470726 +AZURE,northcentralus,Standard_E8s_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:09.471261 +AZURE,northcentralus,Standard_E8s_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:45:11.365311 +AZURE,northcentralus,Standard_E8s_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:45:11.365314 +AZURE,northcentralus,Standard_E8s_v4,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:45:09.471859 +AZURE,northcentralus,Standard_E8s_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:09.471058 +AZURE,northcentralus,Standard_E8s_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:45:11.365179 +AZURE,northcentralus,Standard_E8s_v5,reserved_3y,NA,0.186492,USD,Azure Retail Prices API,2025-12-18T04:45:11.365181 +AZURE,northcentralus,Standard_E8s_v5,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:45:09.470370 +AZURE,northcentralus,Standard_E96a_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:45:09.471452 +AZURE,northcentralus,Standard_E96a_v4,reserved_1y,NA,3.556279,USD,Azure Retail Prices API,2025-12-18T04:45:11.365474 +AZURE,northcentralus,Standard_E96a_v4,reserved_3y,NA,2.274049,USD,Azure Retail Prices API,2025-12-18T04:45:11.365477 +AZURE,northcentralus,Standard_E96a_v4,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:45:09.471091 +AZURE,northcentralus,Standard_E96ads_v5,on_demand,NA,6.288,USD,Azure Retail Prices API,2025-12-18T04:45:09.470341 +AZURE,northcentralus,Standard_E96ads_v5,reserved_1y,NA,3.709932,USD,Azure Retail Prices API,2025-12-18T04:45:11.364572 +AZURE,northcentralus,Standard_E96ads_v5,reserved_3y,NA,2.389422,USD,Azure Retail Prices API,2025-12-18T04:45:11.364574 +AZURE,northcentralus,Standard_E96ads_v5,spot,NA,1.162022,USD,Azure Retail Prices API,2025-12-18T04:45:09.471868 +AZURE,northcentralus,Standard_E96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:45:09.470875 +AZURE,northcentralus,Standard_E96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:45:11.365056 +AZURE,northcentralus,Standard_E96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:45:11.365059 +AZURE,northcentralus,Standard_E96ads_v6,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:45:09.472061 +AZURE,northcentralus,Standard_E96as_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:45:09.470353 +AZURE,northcentralus,Standard_E96as_v4,reserved_1y,NA,3.556279,USD,Azure Retail Prices API,2025-12-18T04:45:11.364595 +AZURE,northcentralus,Standard_E96as_v4,reserved_3y,NA,2.274049,USD,Azure Retail Prices API,2025-12-18T04:45:11.364598 +AZURE,northcentralus,Standard_E96as_v4,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:45:09.471486 +AZURE,northcentralus,Standard_E96as_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:45:09.471101 +AZURE,northcentralus,Standard_E96as_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:45:11.365195 +AZURE,northcentralus,Standard_E96as_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:45:11.365198 +AZURE,northcentralus,Standard_E96as_v5,spot,NA,1.002355,USD,Azure Retail Prices API,2025-12-18T04:45:09.470824 +AZURE,northcentralus,Standard_E96ds_v5,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:45:09.470762 +AZURE,northcentralus,Standard_E96ds_v5,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:45:11.364991 +AZURE,northcentralus,Standard_E96ds_v5,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:45:11.364994 +AZURE,northcentralus,Standard_E96ds_v5,spot,NA,1.277338,USD,Azure Retail Prices API,2025-12-18T04:45:09.471683 +AZURE,northcentralus,Standard_E96ds_v6,on_demand,NA,7.849,USD,Azure Retail Prices API,2025-12-18T04:45:09.471245 +AZURE,northcentralus,Standard_E96ds_v6,reserved_1y,NA,4.866324,USD,Azure Retail Prices API,2025-12-18T04:45:11.365294 +AZURE,northcentralus,Standard_E96ds_v6,reserved_3y,NA,3.061111,USD,Azure Retail Prices API,2025-12-18T04:45:11.365297 +AZURE,northcentralus,Standard_E96ds_v6,spot,NA,1.450495,USD,Azure Retail Prices API,2025-12-18T04:45:09.471199 +AZURE,northcentralus,Standard_E96pds_v6,on_demand,NA,5.616,USD,Azure Retail Prices API,2025-12-18T04:45:09.470534 +AZURE,northcentralus,Standard_E96pds_v6,reserved_1y,NA,3.31347,USD,Azure Retail Prices API,2025-12-18T04:45:11.364803 +AZURE,northcentralus,Standard_E96pds_v6,reserved_3y,NA,2.134094,USD,Azure Retail Prices API,2025-12-18T04:45:11.364806 +AZURE,northcentralus,Standard_E96pds_v6,spot,NA,1.037837,USD,Azure Retail Prices API,2025-12-18T04:45:09.470571 +AZURE,northcentralus,Standard_E96ps_v6,on_demand,NA,4.426,USD,Azure Retail Prices API,2025-12-18T04:45:09.471011 +AZURE,northcentralus,Standard_E96ps_v6,reserved_1y,NA,2.611073,USD,Azure Retail Prices API,2025-12-18T04:45:11.365151 +AZURE,northcentralus,Standard_E96ps_v6,reserved_3y,NA,1.681735,USD,Azure Retail Prices API,2025-12-18T04:45:11.365153 +AZURE,northcentralus,Standard_E96ps_v6,spot,NA,0.817925,USD,Azure Retail Prices API,2025-12-18T04:45:09.471816 +AZURE,northcentralus,Standard_E96s_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:45:09.471995 +AZURE,northcentralus,Standard_E96s_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:11.365934 +AZURE,northcentralus,Standard_E96s_v5,reserved_3y,NA,2.237747,USD,Azure Retail Prices API,2025-12-18T04:45:11.365937 +AZURE,northcentralus,Standard_E96s_v5,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:45:09.470805 +AZURE,northcentralus,Standard_EC16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:45:09.471393 +AZURE,northcentralus,Standard_EC16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:45:11.365430 +AZURE,northcentralus,Standard_EC16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:45:11.365433 +AZURE,northcentralus,Standard_EC16ads_v6,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:45:09.470517 +AZURE,northcentralus,Standard_EC16as_v6,on_demand,NA,0.954,USD,Azure Retail Prices API,2025-12-18T04:45:09.471765 +AZURE,northcentralus,Standard_EC16as_v6,reserved_1y,NA,0.562671,USD,Azure Retail Prices API,2025-12-18T04:45:11.365750 +AZURE,northcentralus,Standard_EC16as_v6,reserved_3y,NA,0.362367,USD,Azure Retail Prices API,2025-12-18T04:45:11.365752 +AZURE,northcentralus,Standard_EC16as_v6,spot,NA,0.176299,USD,Azure Retail Prices API,2025-12-18T04:45:09.471408 +AZURE,northcentralus,Standard_EC2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:45:09.470376 +AZURE,northcentralus,Standard_EC2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:45:11.364612 +AZURE,northcentralus,Standard_EC2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:45:11.364614 +AZURE,northcentralus,Standard_EC2ads_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:45:09.472102 +AZURE,northcentralus,Standard_EC2as_v6,on_demand,NA,0.119,USD,Azure Retail Prices API,2025-12-18T04:45:09.470923 +AZURE,northcentralus,Standard_EC2as_v6,reserved_1y,NA,0.07032,USD,Azure Retail Prices API,2025-12-18T04:45:11.365094 +AZURE,northcentralus,Standard_EC2as_v6,reserved_3y,NA,0.045282,USD,Azure Retail Prices API,2025-12-18T04:45:11.365097 +AZURE,northcentralus,Standard_EC2as_v6,spot,NA,0.021991,USD,Azure Retail Prices API,2025-12-18T04:45:09.471987 +AZURE,northcentralus,Standard_EC32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:45:09.470732 +AZURE,northcentralus,Standard_EC32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:45:11.364980 +AZURE,northcentralus,Standard_EC32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:45:11.364983 +AZURE,northcentralus,Standard_EC32ads_v6,spot,NA,0.42929,USD,Azure Retail Prices API,2025-12-18T04:45:09.470757 +AZURE,northcentralus,Standard_EC32as_v6,on_demand,NA,1.907,USD,Azure Retail Prices API,2025-12-18T04:45:09.471797 +AZURE,northcentralus,Standard_EC32as_v6,reserved_1y,NA,1.125228,USD,Azure Retail Prices API,2025-12-18T04:45:11.365777 +AZURE,northcentralus,Standard_EC32as_v6,reserved_3y,NA,0.724734,USD,Azure Retail Prices API,2025-12-18T04:45:11.365780 +AZURE,northcentralus,Standard_EC32as_v6,spot,NA,0.352414,USD,Azure Retail Prices API,2025-12-18T04:45:09.471567 +AZURE,northcentralus,Standard_EC48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:45:09.471213 +AZURE,northcentralus,Standard_EC48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:45:11.365258 +AZURE,northcentralus,Standard_EC48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:45:11.365261 +AZURE,northcentralus,Standard_EC48ads_v6,spot,NA,0.644028,USD,Azure Retail Prices API,2025-12-18T04:45:09.470474 +AZURE,northcentralus,Standard_EC48as_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:45:09.471677 +AZURE,northcentralus,Standard_EC48as_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:45:11.365670 +AZURE,northcentralus,Standard_EC48as_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:45:11.365673 +AZURE,northcentralus,Standard_EC48as_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:45:09.470463 +AZURE,northcentralus,Standard_EC4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:45:09.470281 +AZURE,northcentralus,Standard_EC4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:45:11.364511 +AZURE,northcentralus,Standard_EC4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:45:11.364514 +AZURE,northcentralus,Standard_EC4ads_v6,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:45:09.471727 +AZURE,northcentralus,Standard_EC4as_v6,on_demand,NA,0.238,USD,Azure Retail Prices API,2025-12-18T04:45:09.470903 +AZURE,northcentralus,Standard_EC4as_v6,reserved_1y,NA,0.140639,USD,Azure Retail Prices API,2025-12-18T04:45:11.365078 +AZURE,northcentralus,Standard_EC4as_v6,reserved_3y,NA,0.090601,USD,Azure Retail Prices API,2025-12-18T04:45:11.365081 +AZURE,northcentralus,Standard_EC4as_v6,spot,NA,0.043982,USD,Azure Retail Prices API,2025-12-18T04:45:09.471675 +AZURE,northcentralus,Standard_EC64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:45:09.471941 +AZURE,northcentralus,Standard_EC64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:45:11.365894 +AZURE,northcentralus,Standard_EC64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:45:11.365896 +AZURE,northcentralus,Standard_EC64ads_v6,spot,NA,0.858581,USD,Azure Retail Prices API,2025-12-18T04:45:09.470439 +AZURE,northcentralus,Standard_EC64as_v6,on_demand,NA,3.814,USD,Azure Retail Prices API,2025-12-18T04:45:09.471802 +AZURE,northcentralus,Standard_EC64as_v6,reserved_1y,NA,2.250457,USD,Azure Retail Prices API,2025-12-18T04:45:11.365783 +AZURE,northcentralus,Standard_EC64as_v6,reserved_3y,NA,1.449467,USD,Azure Retail Prices API,2025-12-18T04:45:11.365786 +AZURE,northcentralus,Standard_EC64as_v6,spot,NA,0.704827,USD,Azure Retail Prices API,2025-12-18T04:45:09.470927 +AZURE,northcentralus,Standard_EC8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:45:09.470784 +AZURE,northcentralus,Standard_EC8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:45:11.365013 +AZURE,northcentralus,Standard_EC8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:45:11.365015 +AZURE,northcentralus,Standard_EC8ads_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:45:09.470246 +AZURE,northcentralus,Standard_EC8as_v6,on_demand,NA,0.477,USD,Azure Retail Prices API,2025-12-18T04:45:09.471630 +AZURE,northcentralus,Standard_EC8as_v6,reserved_1y,NA,0.281279,USD,Azure Retail Prices API,2025-12-18T04:45:11.365620 +AZURE,northcentralus,Standard_EC8as_v6,reserved_3y,NA,0.181202,USD,Azure Retail Prices API,2025-12-18T04:45:11.365623 +AZURE,northcentralus,Standard_EC8as_v6,spot,NA,0.08815,USD,Azure Retail Prices API,2025-12-18T04:45:09.470850 +AZURE,northcentralus,Standard_EC96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:45:09.471641 +AZURE,northcentralus,Standard_EC96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:45:11.365631 +AZURE,northcentralus,Standard_EC96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:45:11.365633 +AZURE,northcentralus,Standard_EC96ads_v6,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:45:09.471689 +AZURE,northcentralus,Standard_EC96as_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:45:09.471570 +AZURE,northcentralus,Standard_EC96as_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:45:11.365569 +AZURE,northcentralus,Standard_EC96as_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:45:11.365572 +AZURE,northcentralus,Standard_EC96as_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:45:09.470684 +AZURE,northcentralus,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379325 +AZURE,northcentralus,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379333 +AZURE,northcentralus,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379337 +AZURE,northcentralus,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379329 +AZURE,northcentralus,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381635 +AZURE,northcentralus,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381644 +AZURE,northcentralus,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381648 +AZURE,northcentralus,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381640 +AZURE,northcentralus,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384339 +AZURE,northcentralus,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384348 +AZURE,northcentralus,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384352 +AZURE,northcentralus,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384343 +AZURE,northcentralus,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385117 +AZURE,northcentralus,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385126 +AZURE,northcentralus,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385130 +AZURE,northcentralus,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385121 +AZURE,northcentralus,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377695 +AZURE,northcentralus,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377706 +AZURE,northcentralus,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377711 +AZURE,northcentralus,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377700 +AZURE,northcentralus,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385933 +AZURE,northcentralus,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385941 +AZURE,northcentralus,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385945 +AZURE,northcentralus,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385937 +AZURE,northcentralus,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380083 +AZURE,northcentralus,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380091 +AZURE,northcentralus,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380095 +AZURE,northcentralus,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380087 +AZURE,northcentralus,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382389 +AZURE,northcentralus,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382399 +AZURE,northcentralus,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382406 +AZURE,northcentralus,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382394 +AZURE,northcentralus,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386723 +AZURE,northcentralus,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386731 +AZURE,northcentralus,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386735 +AZURE,northcentralus,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386727 +AZURE,northcentralus,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387507 +AZURE,northcentralus,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387523 +AZURE,northcentralus,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387530 +AZURE,northcentralus,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387514 +AZURE,northcentralus,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378511 +AZURE,northcentralus,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378520 +AZURE,northcentralus,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378524 +AZURE,northcentralus,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378516 +AZURE,northcentralus,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380790 +AZURE,northcentralus,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380798 +AZURE,northcentralus,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380802 +AZURE,northcentralus,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380794 +AZURE,northcentralus,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383524 +AZURE,northcentralus,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383533 +AZURE,northcentralus,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383537 +AZURE,northcentralus,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383528 +AZURE,northcentralus,Standard_H16,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:45:09.471501 +AZURE,northcentralus,Standard_H16,spot,NA,0.334118,USD,Azure Retail Prices API,2025-12-18T04:45:09.471515 +AZURE,northcentralus,Standard_H8,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:45:09.470444 +AZURE,northcentralus,Standard_H8,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:45:09.471611 +AZURE,northcentralus,Standard_L16as_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:45:09.471238 +AZURE,northcentralus,Standard_L16as_v3,reserved_1y,NA,0.798744,USD,Azure Retail Prices API,2025-12-18T04:45:11.365276 +AZURE,northcentralus,Standard_L16as_v3,reserved_3y,NA,0.524163,USD,Azure Retail Prices API,2025-12-18T04:45:11.365279 +AZURE,northcentralus,Standard_L16as_v3,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:45:09.470779 +AZURE,northcentralus,Standard_L16s_v3,on_demand,NA,1.396,USD,Azure Retail Prices API,2025-12-18T04:45:09.471592 +AZURE,northcentralus,Standard_L16s_v3,reserved_1y,NA,0.893493,USD,Azure Retail Prices API,2025-12-18T04:45:11.365592 +AZURE,northcentralus,Standard_L16s_v3,reserved_3y,NA,0.586301,USD,Azure Retail Prices API,2025-12-18T04:45:11.365594 +AZURE,northcentralus,Standard_L16s_v3,spot,NA,0.257981,USD,Azure Retail Prices API,2025-12-18T04:45:09.470735 +AZURE,northcentralus,Standard_L32as_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:09.471530 +AZURE,northcentralus,Standard_L32as_v3,reserved_1y,NA,1.597489,USD,Azure Retail Prices API,2025-12-18T04:45:11.365540 +AZURE,northcentralus,Standard_L32as_v3,reserved_3y,NA,1.048326,USD,Azure Retail Prices API,2025-12-18T04:45:11.365543 +AZURE,northcentralus,Standard_L32as_v3,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:45:09.472006 +AZURE,northcentralus,Standard_L32s_v3,on_demand,NA,2.792,USD,Azure Retail Prices API,2025-12-18T04:45:09.471874 +AZURE,northcentralus,Standard_L32s_v3,reserved_1y,NA,1.786872,USD,Azure Retail Prices API,2025-12-18T04:45:11.365838 +AZURE,northcentralus,Standard_L32s_v3,reserved_3y,NA,1.172641,USD,Azure Retail Prices API,2025-12-18T04:45:11.365842 +AZURE,northcentralus,Standard_L32s_v3,spot,NA,0.515962,USD,Azure Retail Prices API,2025-12-18T04:45:09.470740 +AZURE,northcentralus,Standard_L48as_v3,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:45:09.470971 +AZURE,northcentralus,Standard_L48as_v3,reserved_1y,NA,2.396119,USD,Azure Retail Prices API,2025-12-18T04:45:11.365121 +AZURE,northcentralus,Standard_L48as_v3,reserved_3y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:45:11.365124 +AZURE,northcentralus,Standard_L48as_v3,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:45:09.470556 +AZURE,northcentralus,Standard_L48s_v3,on_demand,NA,4.188,USD,Azure Retail Prices API,2025-12-18T04:45:09.471049 +AZURE,northcentralus,Standard_L48s_v3,reserved_1y,NA,2.680365,USD,Azure Retail Prices API,2025-12-18T04:45:11.365173 +AZURE,northcentralus,Standard_L48s_v3,reserved_3y,NA,1.758942,USD,Azure Retail Prices API,2025-12-18T04:45:11.365176 +AZURE,northcentralus,Standard_L48s_v3,spot,NA,0.773942,USD,Azure Retail Prices API,2025-12-18T04:45:09.471660 +AZURE,northcentralus,Standard_L64as_v3,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:45:09.471647 +AZURE,northcentralus,Standard_L64as_v3,reserved_1y,NA,3.194863,USD,Azure Retail Prices API,2025-12-18T04:45:11.365636 +AZURE,northcentralus,Standard_L64as_v3,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:45:11.365639 +AZURE,northcentralus,Standard_L64as_v3,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:45:09.470946 +AZURE,northcentralus,Standard_L64s_v3,on_demand,NA,5.584,USD,Azure Retail Prices API,2025-12-18T04:45:09.471289 +AZURE,northcentralus,Standard_L64s_v3,reserved_1y,NA,3.573744,USD,Azure Retail Prices API,2025-12-18T04:45:11.365340 +AZURE,northcentralus,Standard_L64s_v3,reserved_3y,NA,2.345282,USD,Azure Retail Prices API,2025-12-18T04:45:11.365343 +AZURE,northcentralus,Standard_L64s_v3,spot,NA,1.031923,USD,Azure Retail Prices API,2025-12-18T04:45:09.470547 +AZURE,northcentralus,Standard_L80as_v3,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:45:09.471564 +AZURE,northcentralus,Standard_L80as_v3,reserved_1y,NA,3.993607,USD,Azure Retail Prices API,2025-12-18T04:45:11.365563 +AZURE,northcentralus,Standard_L80as_v3,reserved_3y,NA,2.620814,USD,Azure Retail Prices API,2025-12-18T04:45:11.365566 +AZURE,northcentralus,Standard_L80as_v3,spot,NA,1.153152,USD,Azure Retail Prices API,2025-12-18T04:45:09.471105 +AZURE,northcentralus,Standard_L80s_v3,on_demand,NA,6.98,USD,Azure Retail Prices API,2025-12-18T04:45:09.471174 +AZURE,northcentralus,Standard_L80s_v3,reserved_1y,NA,4.467237,USD,Azure Retail Prices API,2025-12-18T04:45:11.365223 +AZURE,northcentralus,Standard_L80s_v3,reserved_3y,NA,2.931583,USD,Azure Retail Prices API,2025-12-18T04:45:11.365226 +AZURE,northcentralus,Standard_L80s_v3,spot,NA,1.289904,USD,Azure Retail Prices API,2025-12-18T04:45:09.471832 +AZURE,northcentralus,Standard_L8as_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:45:09.472107 +AZURE,northcentralus,Standard_L8as_v3,reserved_1y,NA,0.399315,USD,Azure Retail Prices API,2025-12-18T04:45:11.366011 +AZURE,northcentralus,Standard_L8as_v3,reserved_3y,NA,0.262062,USD,Azure Retail Prices API,2025-12-18T04:45:11.366014 +AZURE,northcentralus,Standard_L8as_v3,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:45:09.470406 +AZURE,northcentralus,Standard_L8s_v3,on_demand,NA,0.698,USD,Azure Retail Prices API,2025-12-18T04:45:09.471026 +AZURE,northcentralus,Standard_L8s_v3,reserved_1y,NA,0.446689,USD,Azure Retail Prices API,2025-12-18T04:45:11.365162 +AZURE,northcentralus,Standard_L8s_v3,reserved_3y,NA,0.293151,USD,Azure Retail Prices API,2025-12-18T04:45:11.365165 +AZURE,northcentralus,Standard_L8s_v3,spot,NA,0.12899,USD,Azure Retail Prices API,2025-12-18T04:45:09.471315 +AZURE,northcentralus,Standard_NC16as_T4_v3,on_demand,NA,1.204,USD,Azure Retail Prices API,2025-12-18T04:45:09.470561 +AZURE,northcentralus,Standard_NC16as_T4_v3,reserved_1y,NA,0.707991,USD,Azure Retail Prices API,2025-12-18T04:45:11.364814 +AZURE,northcentralus,Standard_NC16as_T4_v3,reserved_3y,NA,0.452702,USD,Azure Retail Prices API,2025-12-18T04:45:11.364817 +AZURE,northcentralus,Standard_NC16as_T4_v3,spot,NA,0.34916,USD,Azure Retail Prices API,2025-12-18T04:45:09.470622 +AZURE,northcentralus,Standard_NC24ads_A100_v4,on_demand,NA,4.408,USD,Azure Retail Prices API,2025-12-18T04:45:09.471273 +AZURE,northcentralus,Standard_NC24ads_A100_v4,reserved_1y,NA,2.881279,USD,Azure Retail Prices API,2025-12-18T04:45:11.365328 +AZURE,northcentralus,Standard_NC24ads_A100_v4,reserved_3y,NA,1.635654,USD,Azure Retail Prices API,2025-12-18T04:45:11.365331 +AZURE,northcentralus,Standard_NC24ads_A100_v4,spot,NA,0.814598,USD,Azure Retail Prices API,2025-12-18T04:45:09.471579 +AZURE,northcentralus,Standard_NC40ads_H100_v5,on_demand,NA,8.376,USD,Azure Retail Prices API,2025-12-18T04:45:09.470961 +AZURE,northcentralus,Standard_NC40ads_H100_v5,reserved_1y,NA,6.281963,USD,Azure Retail Prices API,2025-12-18T04:45:11.365116 +AZURE,northcentralus,Standard_NC40ads_H100_v5,reserved_3y,NA,4.606811,USD,Azure Retail Prices API,2025-12-18T04:45:11.365118 +AZURE,northcentralus,Standard_NC40ads_H100_v5,spot,NA,1.547885,USD,Azure Retail Prices API,2025-12-18T04:45:09.471790 +AZURE,northcentralus,Standard_NC48ads_A100_v4,on_demand,NA,8.815,USD,Azure Retail Prices API,2025-12-18T04:45:09.470420 +AZURE,northcentralus,Standard_NC48ads_A100_v4,reserved_1y,NA,5.762443,USD,Azure Retail Prices API,2025-12-18T04:45:11.364646 +AZURE,northcentralus,Standard_NC48ads_A100_v4,reserved_3y,NA,3.271309,USD,Azure Retail Prices API,2025-12-18T04:45:11.364649 +AZURE,northcentralus,Standard_NC48ads_A100_v4,spot,NA,1.629012,USD,Azure Retail Prices API,2025-12-18T04:45:09.471984 +AZURE,northcentralus,Standard_NC4as_T4_v3,on_demand,NA,0.526,USD,Azure Retail Prices API,2025-12-18T04:45:09.470301 +AZURE,northcentralus,Standard_NC4as_T4_v3,reserved_1y,NA,0.309247,USD,Azure Retail Prices API,2025-12-18T04:45:11.364540 +AZURE,northcentralus,Standard_NC4as_T4_v3,reserved_3y,NA,0.197793,USD,Azure Retail Prices API,2025-12-18T04:45:11.364543 +AZURE,northcentralus,Standard_NC4as_T4_v3,spot,NA,0.15254,USD,Azure Retail Prices API,2025-12-18T04:45:09.470480 +AZURE,northcentralus,Standard_NC64as_T4_v3,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:45:09.471558 +AZURE,northcentralus,Standard_NC64as_T4_v3,reserved_1y,NA,2.559018,USD,Azure Retail Prices API,2025-12-18T04:45:11.365558 +AZURE,northcentralus,Standard_NC64as_T4_v3,reserved_3y,NA,1.636339,USD,Azure Retail Prices API,2025-12-18T04:45:11.365560 +AZURE,northcentralus,Standard_NC64as_T4_v3,spot,NA,1.26208,USD,Azure Retail Prices API,2025-12-18T04:45:09.471925 +AZURE,northcentralus,Standard_NC8as_T4_v3,on_demand,NA,0.752,USD,Azure Retail Prices API,2025-12-18T04:45:09.470913 +AZURE,northcentralus,Standard_NC8as_T4_v3,reserved_1y,NA,0.442123,USD,Azure Retail Prices API,2025-12-18T04:45:11.365089 +AZURE,northcentralus,Standard_NC8as_T4_v3,reserved_3y,NA,0.282763,USD,Azure Retail Prices API,2025-12-18T04:45:11.365092 +AZURE,northcentralus,Standard_NC8as_T4_v3,spot,NA,0.21808,USD,Azure Retail Prices API,2025-12-18T04:45:09.470365 +AZURE,northcentralus,Standard_NC96ads_A100_v4,on_demand,NA,17.63,USD,Azure Retail Prices API,2025-12-18T04:45:09.471901 +AZURE,northcentralus,Standard_NC96ads_A100_v4,reserved_1y,NA,11.525,USD,Azure Retail Prices API,2025-12-18T04:45:11.365870 +AZURE,northcentralus,Standard_NC96ads_A100_v4,reserved_3y,NA,6.542656,USD,Azure Retail Prices API,2025-12-18T04:45:11.365873 +AZURE,northcentralus,Standard_NC96ads_A100_v4,spot,NA,3.258024,USD,Azure Retail Prices API,2025-12-18T04:45:09.470718 +AZURE,northcentralus,Standard_ND96isr_H100_v5,on_demand,NA,117.984,USD,Azure Retail Prices API,2025-12-18T04:45:09.470712 +AZURE,northcentralus,Standard_ND96isr_H100_v5,reserved_1y,NA,75.509703,USD,Azure Retail Prices API,2025-12-18T04:45:11.364966 +AZURE,northcentralus,Standard_ND96isr_H100_v5,reserved_3y,NA,51.794977,USD,Azure Retail Prices API,2025-12-18T04:45:11.364969 +AZURE,northcentralus,Standard_ND96isr_H100_v5,spot,NA,21.803443,USD,Azure Retail Prices API,2025-12-18T04:45:09.470278 +AZURE,northcentralus,Standard_NV36adms_A10_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:45:09.471735 +AZURE,northcentralus,Standard_NV36adms_A10_v5,reserved_1y,NA,3.471347,USD,Azure Retail Prices API,2025-12-18T04:45:11.365725 +AZURE,northcentralus,Standard_NV36adms_A10_v5,reserved_3y,NA,2.386568,USD,Azure Retail Prices API,2025-12-18T04:45:11.365728 +AZURE,northcentralus,Standard_NV36adms_A10_v5,spot,NA,1.002355,USD,Azure Retail Prices API,2025-12-18T04:45:09.472082 +AZURE,northcentralus,Standard_NV36ads_A10_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:09.470499 +AZURE,northcentralus,Standard_NV36ads_A10_v5,reserved_1y,NA,2.457648,USD,Azure Retail Prices API,2025-12-18T04:45:11.364740 +AZURE,northcentralus,Standard_NV36ads_A10_v5,reserved_3y,NA,1.689612,USD,Azure Retail Prices API,2025-12-18T04:45:11.364743 +AZURE,northcentralus,Standard_NV36ads_A10_v5,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:45:09.471938 +AZURE,northcentralus,Standard_NV72ads_A10_v5,on_demand,NA,7.824,USD,Azure Retail Prices API,2025-12-18T04:45:09.471704 +AZURE,northcentralus,Standard_NV72ads_A10_v5,reserved_1y,NA,5.007306,USD,Azure Retail Prices API,2025-12-18T04:45:11.365692 +AZURE,northcentralus,Standard_NV72ads_A10_v5,reserved_3y,NA,3.442542,USD,Azure Retail Prices API,2025-12-18T04:45:11.365695 +AZURE,northcentralus,Standard_NV72ads_A10_v5,spot,NA,1.445875,USD,Azure Retail Prices API,2025-12-18T04:45:09.470698 +AZURE,northeurope,Standard_D128ds_v6,on_demand,NA,8.887,USD,Azure Retail Prices API,2025-12-18T04:45:29.010609 +AZURE,northeurope,Standard_D128ds_v6,reserved_1y,NA,5.509932,USD,Azure Retail Prices API,2025-12-18T04:45:30.971514 +AZURE,northeurope,Standard_D128ds_v6,reserved_3y,NA,3.465944,USD,Azure Retail Prices API,2025-12-18T04:45:30.971519 +AZURE,northeurope,Standard_D128ds_v6,spot,NA,1.642318,USD,Azure Retail Prices API,2025-12-18T04:45:29.010612 +AZURE,northeurope,Standard_D12_v2,on_demand,NA,0.4081,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488288 +AZURE,northeurope,Standard_D12_v2,reserved_1y,NA,0.24486,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488296 +AZURE,northeurope,Standard_D12_v2,reserved_3y,NA,0.16324,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488300 +AZURE,northeurope,Standard_D12_v2,spot,NA,0.12243,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488292 +AZURE,northeurope,Standard_D13_v2,on_demand,NA,0.8151,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489044 +AZURE,northeurope,Standard_D13_v2,reserved_1y,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489052 +AZURE,northeurope,Standard_D13_v2,reserved_3y,NA,0.32604,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489057 +AZURE,northeurope,Standard_D13_v2,spot,NA,0.24453,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489048 +AZURE,northeurope,Standard_D14_v2,on_demand,NA,1.6302,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490166 +AZURE,northeurope,Standard_D14_v2,reserved_1y,NA,0.97812,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490175 +AZURE,northeurope,Standard_D14_v2,reserved_3y,NA,0.65208,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490179 +AZURE,northeurope,Standard_D14_v2,spot,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490171 +AZURE,northeurope,Standard_D15_v2,on_demand,NA,2.0383,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490857 +AZURE,northeurope,Standard_D15_v2,reserved_1y,NA,1.22298,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490866 +AZURE,northeurope,Standard_D15_v2,reserved_3y,NA,0.81532,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490870 +AZURE,northeurope,Standard_D15_v2,spot,NA,0.61149,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490862 +AZURE,northeurope,Standard_D16_v3,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:45:29.010325 +AZURE,northeurope,Standard_D16_v3,reserved_1y,NA,0.560959,USD,Azure Retail Prices API,2025-12-18T04:45:30.971013 +AZURE,northeurope,Standard_D16_v3,reserved_3y,NA,0.370015,USD,Azure Retail Prices API,2025-12-18T04:45:30.971019 +AZURE,northeurope,Standard_D16_v3,spot,NA,0.216825,USD,Azure Retail Prices API,2025-12-18T04:45:29.010650 +AZURE,northeurope,Standard_D16a_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:45:29.010630 +AZURE,northeurope,Standard_D16a_v4,reserved_1y,NA,0.503311,USD,Azure Retail Prices API,2025-12-18T04:45:30.971546 +AZURE,northeurope,Standard_D16a_v4,reserved_3y,NA,0.321842,USD,Azure Retail Prices API,2025-12-18T04:45:30.971551 +AZURE,northeurope,Standard_D16a_v4,spot,NA,0.183098,USD,Azure Retail Prices API,2025-12-18T04:45:29.010387 +AZURE,northeurope,Standard_D16ads_v5,on_demand,NA,1.656,USD,Azure Retail Prices API,2025-12-18T04:45:29.009998 +AZURE,northeurope,Standard_D16ads_v5,reserved_1y,NA,0.542808,USD,Azure Retail Prices API,2025-12-18T04:45:30.971192 +AZURE,northeurope,Standard_D16ads_v5,reserved_3y,NA,0.349581,USD,Azure Retail Prices API,2025-12-18T04:45:30.971196 +AZURE,northeurope,Standard_D16ads_v5,spot,NA,0.206172,USD,Azure Retail Prices API,2025-12-18T04:45:29.010503 +AZURE,northeurope,Standard_D16ads_v6,on_demand,NA,1.019,USD,Azure Retail Prices API,2025-12-18T04:45:29.011223 +AZURE,northeurope,Standard_D16ads_v6,reserved_1y,NA,0.60137,USD,Azure Retail Prices API,2025-12-18T04:45:30.972513 +AZURE,northeurope,Standard_D16ads_v6,reserved_3y,NA,0.387291,USD,Azure Retail Prices API,2025-12-18T04:45:30.972518 +AZURE,northeurope,Standard_D16ads_v6,spot,NA,0.188311,USD,Azure Retail Prices API,2025-12-18T04:45:29.009619 +AZURE,northeurope,Standard_D16as_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:45:29.009843 +AZURE,northeurope,Standard_D16as_v4,reserved_1y,NA,0.503311,USD,Azure Retail Prices API,2025-12-18T04:45:30.970100 +AZURE,northeurope,Standard_D16as_v4,reserved_3y,NA,0.321842,USD,Azure Retail Prices API,2025-12-18T04:45:30.970105 +AZURE,northeurope,Standard_D16as_v4,spot,NA,0.183098,USD,Azure Retail Prices API,2025-12-18T04:45:29.010419 +AZURE,northeurope,Standard_D16as_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:29.010797 +AZURE,northeurope,Standard_D16as_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:45:30.971896 +AZURE,northeurope,Standard_D16as_v5,reserved_3y,NA,0.291857,USD,Azure Retail Prices API,2025-12-18T04:45:30.971901 +AZURE,northeurope,Standard_D16as_v5,spot,NA,0.172109,USD,Azure Retail Prices API,2025-12-18T04:45:29.009991 +AZURE,northeurope,Standard_D16d_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:29.011516 +AZURE,northeurope,Standard_D16d_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:45:30.972792 +AZURE,northeurope,Standard_D16d_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:45:30.972797 +AZURE,northeurope,Standard_D16d_v4,spot,NA,0.237686,USD,Azure Retail Prices API,2025-12-18T04:45:29.010494 +AZURE,northeurope,Standard_D16ds_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:29.009767 +AZURE,northeurope,Standard_D16ds_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:45:30.970002 +AZURE,northeurope,Standard_D16ds_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:45:30.970006 +AZURE,northeurope,Standard_D16ds_v4,spot,NA,0.237686,USD,Azure Retail Prices API,2025-12-18T04:45:29.009986 +AZURE,northeurope,Standard_D16ds_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:29.010523 +AZURE,northeurope,Standard_D16ds_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:45:30.971389 +AZURE,northeurope,Standard_D16ds_v5,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:45:30.971394 +AZURE,northeurope,Standard_D16ds_v5,spot,NA,0.295949,USD,Azure Retail Prices API,2025-12-18T04:45:29.011404 +AZURE,northeurope,Standard_D16ds_v6,on_demand,NA,1.111,USD,Azure Retail Prices API,2025-12-18T04:45:29.011465 +AZURE,northeurope,Standard_D16ds_v6,reserved_1y,NA,0.688699,USD,Azure Retail Prices API,2025-12-18T04:45:30.972701 +AZURE,northeurope,Standard_D16ds_v6,reserved_3y,NA,0.433257,USD,Azure Retail Prices API,2025-12-18T04:45:30.972706 +AZURE,northeurope,Standard_D16ds_v6,spot,NA,0.205313,USD,Azure Retail Prices API,2025-12-18T04:45:29.010529 +AZURE,northeurope,Standard_D16pds_v6,on_demand,NA,0.821,USD,Azure Retail Prices API,2025-12-18T04:45:29.010785 +AZURE,northeurope,Standard_D16pds_v6,reserved_1y,NA,0.484247,USD,Azure Retail Prices API,2025-12-18T04:45:30.971887 +AZURE,northeurope,Standard_D16pds_v6,reserved_3y,NA,0.31191,USD,Azure Retail Prices API,2025-12-18T04:45:30.971891 +AZURE,northeurope,Standard_D16pds_v6,spot,NA,0.151721,USD,Azure Retail Prices API,2025-12-18T04:45:29.009538 +AZURE,northeurope,Standard_D16ps_v6,on_demand,NA,0.627,USD,Azure Retail Prices API,2025-12-18T04:45:29.010433 +AZURE,northeurope,Standard_D16ps_v6,reserved_1y,NA,0.370091,USD,Azure Retail Prices API,2025-12-18T04:45:30.971222 +AZURE,northeurope,Standard_D16ps_v6,reserved_3y,NA,0.238318,USD,Azure Retail Prices API,2025-12-18T04:45:30.971226 +AZURE,northeurope,Standard_D16ps_v6,spot,NA,0.11587,USD,Azure Retail Prices API,2025-12-18T04:45:29.010372 +AZURE,northeurope,Standard_D16s_v3,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:45:29.010862 +AZURE,northeurope,Standard_D16s_v3,reserved_1y,NA,0.560959,USD,Azure Retail Prices API,2025-12-18T04:45:30.971991 +AZURE,northeurope,Standard_D16s_v3,reserved_3y,NA,0.370015,USD,Azure Retail Prices API,2025-12-18T04:45:30.971997 +AZURE,northeurope,Standard_D16s_v3,spot,NA,0.216825,USD,Azure Retail Prices API,2025-12-18T04:45:29.011398 +AZURE,northeurope,Standard_D16s_v4,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:45:29.011497 +AZURE,northeurope,Standard_D16s_v4,reserved_1y,NA,0.503311,USD,Azure Retail Prices API,2025-12-18T04:45:30.972771 +AZURE,northeurope,Standard_D16s_v4,reserved_3y,NA,0.321842,USD,Azure Retail Prices API,2025-12-18T04:45:30.972777 +AZURE,northeurope,Standard_D16s_v4,spot,NA,0.216825,USD,Azure Retail Prices API,2025-12-18T04:45:29.011055 +AZURE,northeurope,Standard_D16s_v5,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:45:29.010242 +AZURE,northeurope,Standard_D16s_v5,reserved_1y,NA,0.4879,USD,Azure Retail Prices API,2025-12-18T04:45:30.970892 +AZURE,northeurope,Standard_D16s_v5,reserved_3y,NA,0.316705,USD,Azure Retail Prices API,2025-12-18T04:45:30.970898 +AZURE,northeurope,Standard_D16s_v5,spot,NA,0.268014,USD,Azure Retail Prices API,2025-12-18T04:45:29.010425 +AZURE,northeurope,Standard_D2ads_v6,on_demand,NA,0.127,USD,Azure Retail Prices API,2025-12-18T04:45:29.011153 +AZURE,northeurope,Standard_D2ads_v6,reserved_1y,NA,0.075114,USD,Azure Retail Prices API,2025-12-18T04:45:30.972440 +AZURE,northeurope,Standard_D2ads_v6,reserved_3y,NA,0.048402,USD,Azure Retail Prices API,2025-12-18T04:45:30.972446 +AZURE,northeurope,Standard_D2ads_v6,spot,NA,0.02347,USD,Azure Retail Prices API,2025-12-18T04:45:29.011028 +AZURE,northeurope,Standard_D2ds_v6,on_demand,NA,0.139,USD,Azure Retail Prices API,2025-12-18T04:45:29.010430 +AZURE,northeurope,Standard_D2ds_v6,reserved_1y,NA,0.086073,USD,Azure Retail Prices API,2025-12-18T04:45:30.971211 +AZURE,northeurope,Standard_D2ds_v6,reserved_3y,NA,0.054148,USD,Azure Retail Prices API,2025-12-18T04:45:30.971216 +AZURE,northeurope,Standard_D2ds_v6,spot,NA,0.025687,USD,Azure Retail Prices API,2025-12-18T04:45:29.011425 +AZURE,northeurope,Standard_D32_v3,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:45:29.009665 +AZURE,northeurope,Standard_D32_v3,reserved_1y,NA,1.121918,USD,Azure Retail Prices API,2025-12-18T04:45:30.969785 +AZURE,northeurope,Standard_D32_v3,reserved_3y,NA,0.74003,USD,Azure Retail Prices API,2025-12-18T04:45:30.969790 +AZURE,northeurope,Standard_D32_v3,spot,NA,0.43365,USD,Azure Retail Prices API,2025-12-18T04:45:29.009804 +AZURE,northeurope,Standard_D32a_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:45:29.010989 +AZURE,northeurope,Standard_D32a_v4,reserved_1y,NA,1.006621,USD,Azure Retail Prices API,2025-12-18T04:45:30.972317 +AZURE,northeurope,Standard_D32a_v4,reserved_3y,NA,0.643721,USD,Azure Retail Prices API,2025-12-18T04:45:30.972321 +AZURE,northeurope,Standard_D32a_v4,spot,NA,0.366197,USD,Azure Retail Prices API,2025-12-18T04:45:29.010904 +AZURE,northeurope,Standard_D32ads_v5,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:29.010213 +AZURE,northeurope,Standard_D32ads_v5,reserved_1y,NA,1.085616,USD,Azure Retail Prices API,2025-12-18T04:45:30.970862 +AZURE,northeurope,Standard_D32ads_v5,reserved_3y,NA,0.699201,USD,Azure Retail Prices API,2025-12-18T04:45:30.970868 +AZURE,northeurope,Standard_D32ads_v5,spot,NA,0.412344,USD,Azure Retail Prices API,2025-12-18T04:45:29.009941 +AZURE,northeurope,Standard_D32ads_v6,on_demand,NA,2.038,USD,Azure Retail Prices API,2025-12-18T04:45:29.009903 +AZURE,northeurope,Standard_D32ads_v6,reserved_1y,NA,1.202626,USD,Azure Retail Prices API,2025-12-18T04:45:30.970237 +AZURE,northeurope,Standard_D32ads_v6,reserved_3y,NA,0.774581,USD,Azure Retail Prices API,2025-12-18T04:45:30.970242 +AZURE,northeurope,Standard_D32ads_v6,spot,NA,0.376622,USD,Azure Retail Prices API,2025-12-18T04:45:29.010395 +AZURE,northeurope,Standard_D32as_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:45:29.010956 +AZURE,northeurope,Standard_D32as_v4,reserved_1y,NA,1.006621,USD,Azure Retail Prices API,2025-12-18T04:45:30.972218 +AZURE,northeurope,Standard_D32as_v4,reserved_3y,NA,0.643721,USD,Azure Retail Prices API,2025-12-18T04:45:30.972224 +AZURE,northeurope,Standard_D32as_v4,spot,NA,0.366197,USD,Azure Retail Prices API,2025-12-18T04:45:29.010236 +AZURE,northeurope,Standard_D32as_v5,on_demand,NA,3.008,USD,Azure Retail Prices API,2025-12-18T04:45:29.009587 +AZURE,northeurope,Standard_D32as_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:45:30.970539 +AZURE,northeurope,Standard_D32as_v5,reserved_3y,NA,0.583676,USD,Azure Retail Prices API,2025-12-18T04:45:30.970545 +AZURE,northeurope,Standard_D32as_v5,spot,NA,0.344218,USD,Azure Retail Prices API,2025-12-18T04:45:29.010442 +AZURE,northeurope,Standard_D32d_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:29.010951 +AZURE,northeurope,Standard_D32d_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:45:30.972195 +AZURE,northeurope,Standard_D32d_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:45:30.972201 +AZURE,northeurope,Standard_D32d_v4,spot,NA,0.475373,USD,Azure Retail Prices API,2025-12-18T04:45:29.010693 +AZURE,northeurope,Standard_D32ds_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:29.010840 +AZURE,northeurope,Standard_D32ds_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:45:30.971936 +AZURE,northeurope,Standard_D32ds_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:45:30.971940 +AZURE,northeurope,Standard_D32ds_v4,spot,NA,0.475373,USD,Azure Retail Prices API,2025-12-18T04:45:29.010310 +AZURE,northeurope,Standard_D32ds_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:29.011046 +AZURE,northeurope,Standard_D32ds_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:45:30.972362 +AZURE,northeurope,Standard_D32ds_v5,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:45:30.972368 +AZURE,northeurope,Standard_D32ds_v5,spot,NA,0.591898,USD,Azure Retail Prices API,2025-12-18T04:45:29.011307 +AZURE,northeurope,Standard_D32ds_v6,on_demand,NA,2.222,USD,Azure Retail Prices API,2025-12-18T04:45:29.010991 +AZURE,northeurope,Standard_D32ds_v6,reserved_1y,NA,1.377511,USD,Azure Retail Prices API,2025-12-18T04:45:30.972326 +AZURE,northeurope,Standard_D32ds_v6,reserved_3y,NA,0.866476,USD,Azure Retail Prices API,2025-12-18T04:45:30.972330 +AZURE,northeurope,Standard_D32ds_v6,spot,NA,0.410626,USD,Azure Retail Prices API,2025-12-18T04:45:29.009621 +AZURE,northeurope,Standard_D32pds_v6,on_demand,NA,1.642,USD,Azure Retail Prices API,2025-12-18T04:45:29.009557 +AZURE,northeurope,Standard_D32pds_v6,reserved_1y,NA,0.968493,USD,Azure Retail Prices API,2025-12-18T04:45:30.969535 +AZURE,northeurope,Standard_D32pds_v6,reserved_3y,NA,0.62382,USD,Azure Retail Prices API,2025-12-18T04:45:30.969542 +AZURE,northeurope,Standard_D32pds_v6,spot,NA,0.303442,USD,Azure Retail Prices API,2025-12-18T04:45:29.010953 +AZURE,northeurope,Standard_D32ps_v6,on_demand,NA,1.254,USD,Azure Retail Prices API,2025-12-18T04:45:29.010148 +AZURE,northeurope,Standard_D32ps_v6,reserved_1y,NA,0.740068,USD,Azure Retail Prices API,2025-12-18T04:45:30.970568 +AZURE,northeurope,Standard_D32ps_v6,reserved_3y,NA,0.476674,USD,Azure Retail Prices API,2025-12-18T04:45:30.970574 +AZURE,northeurope,Standard_D32ps_v6,spot,NA,0.231739,USD,Azure Retail Prices API,2025-12-18T04:45:29.009776 +AZURE,northeurope,Standard_D32s_v3,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:45:29.009703 +AZURE,northeurope,Standard_D32s_v3,reserved_1y,NA,1.121918,USD,Azure Retail Prices API,2025-12-18T04:45:30.969870 +AZURE,northeurope,Standard_D32s_v3,reserved_3y,NA,0.74003,USD,Azure Retail Prices API,2025-12-18T04:45:30.969875 +AZURE,northeurope,Standard_D32s_v3,spot,NA,0.43365,USD,Azure Retail Prices API,2025-12-18T04:45:29.011297 +AZURE,northeurope,Standard_D32s_v4,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:45:29.010463 +AZURE,northeurope,Standard_D32s_v4,reserved_1y,NA,1.006621,USD,Azure Retail Prices API,2025-12-18T04:45:30.971273 +AZURE,northeurope,Standard_D32s_v4,reserved_3y,NA,0.643721,USD,Azure Retail Prices API,2025-12-18T04:45:30.971277 +AZURE,northeurope,Standard_D32s_v4,spot,NA,0.43365,USD,Azure Retail Prices API,2025-12-18T04:45:29.010670 +AZURE,northeurope,Standard_D32s_v5,on_demand,NA,1.712,USD,Azure Retail Prices API,2025-12-18T04:45:29.009938 +AZURE,northeurope,Standard_D32s_v5,reserved_1y,NA,0.975799,USD,Azure Retail Prices API,2025-12-18T04:45:30.970296 +AZURE,northeurope,Standard_D32s_v5,reserved_3y,NA,0.633447,USD,Azure Retail Prices API,2025-12-18T04:45:30.970301 +AZURE,northeurope,Standard_D32s_v5,spot,NA,0.536027,USD,Azure Retail Prices API,2025-12-18T04:45:29.010829 +AZURE,northeurope,Standard_D3_v2,on_demand,NA,0.3223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485276 +AZURE,northeurope,Standard_D3_v2,reserved_1y,NA,0.19338,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485285 +AZURE,northeurope,Standard_D3_v2,reserved_3y,NA,0.12892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485289 +AZURE,northeurope,Standard_D3_v2,spot,NA,0.09669,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485280 +AZURE,northeurope,Standard_D48a_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:45:29.010746 +AZURE,northeurope,Standard_D48a_v4,reserved_1y,NA,1.509932,USD,Azure Retail Prices API,2025-12-18T04:45:30.971745 +AZURE,northeurope,Standard_D48a_v4,reserved_3y,NA,0.965563,USD,Azure Retail Prices API,2025-12-18T04:45:30.971750 +AZURE,northeurope,Standard_D48a_v4,spot,NA,0.549295,USD,Azure Retail Prices API,2025-12-18T04:45:29.010936 +AZURE,northeurope,Standard_D48ads_v5,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:45:29.009581 +AZURE,northeurope,Standard_D48ads_v5,reserved_1y,NA,1.628425,USD,Azure Retail Prices API,2025-12-18T04:45:30.969613 +AZURE,northeurope,Standard_D48ads_v5,reserved_3y,NA,1.048782,USD,Azure Retail Prices API,2025-12-18T04:45:30.969622 +AZURE,northeurope,Standard_D48ads_v5,spot,NA,0.618516,USD,Azure Retail Prices API,2025-12-18T04:45:29.009906 +AZURE,northeurope,Standard_D48ads_v6,on_demand,NA,3.058,USD,Azure Retail Prices API,2025-12-18T04:45:29.010843 +AZURE,northeurope,Standard_D48ads_v6,reserved_1y,NA,1.803995,USD,Azure Retail Prices API,2025-12-18T04:45:30.971945 +AZURE,northeurope,Standard_D48ads_v6,reserved_3y,NA,1.161872,USD,Azure Retail Prices API,2025-12-18T04:45:30.971949 +AZURE,northeurope,Standard_D48ads_v6,spot,NA,0.565118,USD,Azure Retail Prices API,2025-12-18T04:45:29.010117 +AZURE,northeurope,Standard_D48as_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:45:29.009709 +AZURE,northeurope,Standard_D48as_v4,reserved_1y,NA,1.509932,USD,Azure Retail Prices API,2025-12-18T04:45:30.969879 +AZURE,northeurope,Standard_D48as_v4,reserved_3y,NA,0.965563,USD,Azure Retail Prices API,2025-12-18T04:45:30.969884 +AZURE,northeurope,Standard_D48as_v4,spot,NA,0.549295,USD,Azure Retail Prices API,2025-12-18T04:45:29.010193 +AZURE,northeurope,Standard_D48as_v5,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:45:29.010427 +AZURE,northeurope,Standard_D48as_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:30.972001 +AZURE,northeurope,Standard_D48as_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:45:30.972006 +AZURE,northeurope,Standard_D48as_v5,spot,NA,0.516326,USD,Azure Retail Prices API,2025-12-18T04:45:29.010471 +AZURE,northeurope,Standard_D48d_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:45:29.010076 +AZURE,northeurope,Standard_D48d_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:45:30.970424 +AZURE,northeurope,Standard_D48d_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:45:30.970430 +AZURE,northeurope,Standard_D48d_v4,spot,NA,0.713059,USD,Azure Retail Prices API,2025-12-18T04:45:29.009595 +AZURE,northeurope,Standard_D48ds_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:45:29.010716 +AZURE,northeurope,Standard_D48ds_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:45:30.971704 +AZURE,northeurope,Standard_D48ds_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:45:30.971709 +AZURE,northeurope,Standard_D48ds_v4,spot,NA,0.713059,USD,Azure Retail Prices API,2025-12-18T04:45:29.010724 +AZURE,northeurope,Standard_D48ds_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:45:29.009758 +AZURE,northeurope,Standard_D48ds_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:45:30.969972 +AZURE,northeurope,Standard_D48ds_v5,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:45:30.969976 +AZURE,northeurope,Standard_D48ds_v5,spot,NA,0.887846,USD,Azure Retail Prices API,2025-12-18T04:45:29.010393 +AZURE,northeurope,Standard_D48ds_v6,on_demand,NA,3.333,USD,Azure Retail Prices API,2025-12-18T04:45:29.009859 +AZURE,northeurope,Standard_D48ds_v6,reserved_1y,NA,2.06621,USD,Azure Retail Prices API,2025-12-18T04:45:30.970138 +AZURE,northeurope,Standard_D48ds_v6,reserved_3y,NA,1.299734,USD,Azure Retail Prices API,2025-12-18T04:45:30.970143 +AZURE,northeurope,Standard_D48ds_v6,spot,NA,0.615938,USD,Azure Retail Prices API,2025-12-18T04:45:29.010073 +AZURE,northeurope,Standard_D48pds_v6,on_demand,NA,2.462,USD,Azure Retail Prices API,2025-12-18T04:45:29.010205 +AZURE,northeurope,Standard_D48pds_v6,reserved_1y,NA,1.452854,USD,Azure Retail Prices API,2025-12-18T04:45:30.970852 +AZURE,northeurope,Standard_D48pds_v6,reserved_3y,NA,0.935731,USD,Azure Retail Prices API,2025-12-18T04:45:30.970857 +AZURE,northeurope,Standard_D48pds_v6,spot,NA,0.454978,USD,Azure Retail Prices API,2025-12-18T04:45:29.011387 +AZURE,northeurope,Standard_D48ps_v6,on_demand,NA,1.882,USD,Azure Retail Prices API,2025-12-18T04:45:29.010344 +AZURE,northeurope,Standard_D48ps_v6,reserved_1y,NA,1.11016,USD,Azure Retail Prices API,2025-12-18T04:45:30.971053 +AZURE,northeurope,Standard_D48ps_v6,reserved_3y,NA,0.714992,USD,Azure Retail Prices API,2025-12-18T04:45:30.971095 +AZURE,northeurope,Standard_D48ps_v6,spot,NA,0.347794,USD,Azure Retail Prices API,2025-12-18T04:45:29.011271 +AZURE,northeurope,Standard_D48s_v4,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:45:29.009748 +AZURE,northeurope,Standard_D48s_v4,reserved_1y,NA,1.509932,USD,Azure Retail Prices API,2025-12-18T04:45:30.969953 +AZURE,northeurope,Standard_D48s_v4,reserved_3y,NA,0.965563,USD,Azure Retail Prices API,2025-12-18T04:45:30.969958 +AZURE,northeurope,Standard_D48s_v4,spot,NA,0.650474,USD,Azure Retail Prices API,2025-12-18T04:45:29.010218 +AZURE,northeurope,Standard_D48s_v5,on_demand,NA,2.568,USD,Azure Retail Prices API,2025-12-18T04:45:29.010773 +AZURE,northeurope,Standard_D48s_v5,reserved_1y,NA,1.463813,USD,Azure Retail Prices API,2025-12-18T04:45:30.971794 +AZURE,northeurope,Standard_D48s_v5,reserved_3y,NA,0.950152,USD,Azure Retail Prices API,2025-12-18T04:45:30.971803 +AZURE,northeurope,Standard_D48s_v5,spot,NA,0.804041,USD,Azure Retail Prices API,2025-12-18T04:45:29.011144 +AZURE,northeurope,Standard_D4_v2,on_demand,NA,0.6435,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486132 +AZURE,northeurope,Standard_D4_v2,reserved_1y,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486143 +AZURE,northeurope,Standard_D4_v2,reserved_3y,NA,0.2574,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486147 +AZURE,northeurope,Standard_D4_v2,spot,NA,0.19305,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486139 +AZURE,northeurope,Standard_D4a_v4,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:45:29.010082 +AZURE,northeurope,Standard_D4a_v4,reserved_1y,NA,0.125799,USD,Azure Retail Prices API,2025-12-18T04:45:30.970445 +AZURE,northeurope,Standard_D4a_v4,reserved_3y,NA,0.080479,USD,Azure Retail Prices API,2025-12-18T04:45:30.970450 +AZURE,northeurope,Standard_D4a_v4,spot,NA,0.045775,USD,Azure Retail Prices API,2025-12-18T04:45:29.010439 +AZURE,northeurope,Standard_D4ads_v5,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:29.010230 +AZURE,northeurope,Standard_D4ads_v5,reserved_1y,NA,0.135731,USD,Azure Retail Prices API,2025-12-18T04:45:30.970882 +AZURE,northeurope,Standard_D4ads_v5,reserved_3y,NA,0.087405,USD,Azure Retail Prices API,2025-12-18T04:45:30.970887 +AZURE,northeurope,Standard_D4ads_v5,spot,NA,0.051543,USD,Azure Retail Prices API,2025-12-18T04:45:29.010210 +AZURE,northeurope,Standard_D4ads_v6,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:45:29.010974 +AZURE,northeurope,Standard_D4ads_v6,reserved_1y,NA,0.150342,USD,Azure Retail Prices API,2025-12-18T04:45:30.972263 +AZURE,northeurope,Standard_D4ads_v6,reserved_3y,NA,0.096842,USD,Azure Retail Prices API,2025-12-18T04:45:30.972269 +AZURE,northeurope,Standard_D4ads_v6,spot,NA,0.047124,USD,Azure Retail Prices API,2025-12-18T04:45:29.010532 +AZURE,northeurope,Standard_D4as_v5,on_demand,NA,0.376,USD,Azure Retail Prices API,2025-12-18T04:45:29.009995 +AZURE,northeurope,Standard_D4as_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:45:30.972011 +AZURE,northeurope,Standard_D4as_v5,reserved_3y,NA,0.072945,USD,Azure Retail Prices API,2025-12-18T04:45:30.972016 +AZURE,northeurope,Standard_D4as_v5,spot,NA,0.043027,USD,Azure Retail Prices API,2025-12-18T04:45:29.011227 +AZURE,northeurope,Standard_D4d_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:29.009610 +AZURE,northeurope,Standard_D4d_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:45:30.969673 +AZURE,northeurope,Standard_D4d_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:45:30.969678 +AZURE,northeurope,Standard_D4d_v4,spot,NA,0.059422,USD,Azure Retail Prices API,2025-12-18T04:45:29.009578 +AZURE,northeurope,Standard_D4ds_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:29.010983 +AZURE,northeurope,Standard_D4ds_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:45:30.972297 +AZURE,northeurope,Standard_D4ds_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:45:30.972302 +AZURE,northeurope,Standard_D4ds_v4,spot,NA,0.059422,USD,Azure Retail Prices API,2025-12-18T04:45:29.009865 +AZURE,northeurope,Standard_D4ds_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:29.009956 +AZURE,northeurope,Standard_D4ds_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:45:30.970315 +AZURE,northeurope,Standard_D4ds_v5,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:45:30.970320 +AZURE,northeurope,Standard_D4ds_v5,spot,NA,0.073987,USD,Azure Retail Prices API,2025-12-18T04:45:29.009837 +AZURE,northeurope,Standard_D4ds_v6,on_demand,NA,0.278,USD,Azure Retail Prices API,2025-12-18T04:45:29.011285 +AZURE,northeurope,Standard_D4ds_v6,reserved_1y,NA,0.172146,USD,Azure Retail Prices API,2025-12-18T04:45:30.972567 +AZURE,northeurope,Standard_D4ds_v6,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:45:30.972572 +AZURE,northeurope,Standard_D4ds_v6,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:45:29.010088 +AZURE,northeurope,Standard_D4pds_v6,on_demand,NA,0.205,USD,Azure Retail Prices API,2025-12-18T04:45:29.009668 +AZURE,northeurope,Standard_D4pds_v6,reserved_1y,NA,0.121119,USD,Azure Retail Prices API,2025-12-18T04:45:30.969794 +AZURE,northeurope,Standard_D4pds_v6,reserved_3y,NA,0.077968,USD,Azure Retail Prices API,2025-12-18T04:45:30.969799 +AZURE,northeurope,Standard_D4pds_v6,spot,NA,0.037884,USD,Azure Retail Prices API,2025-12-18T04:45:29.009736 +AZURE,northeurope,Standard_D4ps_v6,on_demand,NA,0.157,USD,Azure Retail Prices API,2025-12-18T04:45:29.009607 +AZURE,northeurope,Standard_D4ps_v6,reserved_1y,NA,0.092466,USD,Azure Retail Prices API,2025-12-18T04:45:30.969662 +AZURE,northeurope,Standard_D4ps_v6,reserved_3y,NA,0.059589,USD,Azure Retail Prices API,2025-12-18T04:45:30.969668 +AZURE,northeurope,Standard_D4ps_v6,spot,NA,0.029014,USD,Azure Retail Prices API,2025-12-18T04:45:29.011114 +AZURE,northeurope,Standard_D4s_v3,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:45:29.010145 +AZURE,northeurope,Standard_D4s_v3,reserved_1y,NA,0.140297,USD,Azure Retail Prices API,2025-12-18T04:45:30.970559 +AZURE,northeurope,Standard_D4s_v3,reserved_3y,NA,0.092504,USD,Azure Retail Prices API,2025-12-18T04:45:30.970564 +AZURE,northeurope,Standard_D4s_v3,spot,NA,0.054206,USD,Azure Retail Prices API,2025-12-18T04:45:29.010207 +AZURE,northeurope,Standard_D4s_v4,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:45:29.010103 +AZURE,northeurope,Standard_D4s_v4,reserved_1y,NA,0.125799,USD,Azure Retail Prices API,2025-12-18T04:45:30.970474 +AZURE,northeurope,Standard_D4s_v4,reserved_3y,NA,0.080479,USD,Azure Retail Prices API,2025-12-18T04:45:30.970479 +AZURE,northeurope,Standard_D4s_v4,spot,NA,0.054206,USD,Azure Retail Prices API,2025-12-18T04:45:29.010485 +AZURE,northeurope,Standard_D4s_v5,on_demand,NA,0.214,USD,Azure Retail Prices API,2025-12-18T04:45:29.009660 +AZURE,northeurope,Standard_D4s_v5,reserved_1y,NA,0.122032,USD,Azure Retail Prices API,2025-12-18T04:45:30.969768 +AZURE,northeurope,Standard_D4s_v5,reserved_3y,NA,0.079186,USD,Azure Retail Prices API,2025-12-18T04:45:30.969772 +AZURE,northeurope,Standard_D4s_v5,spot,NA,0.067003,USD,Azure Retail Prices API,2025-12-18T04:45:29.011280 +AZURE,northeurope,Standard_D5_v2,on_demand,NA,1.287,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487204 +AZURE,northeurope,Standard_D5_v2,reserved_1y,NA,0.7722,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487219 +AZURE,northeurope,Standard_D5_v2,reserved_3y,NA,0.5148,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487227 +AZURE,northeurope,Standard_D5_v2,spot,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487212 +AZURE,northeurope,Standard_D64_v3,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:45:29.009924 +AZURE,northeurope,Standard_D64_v3,reserved_1y,NA,2.243836,USD,Azure Retail Prices API,2025-12-18T04:45:30.970276 +AZURE,northeurope,Standard_D64_v3,reserved_3y,NA,1.480061,USD,Azure Retail Prices API,2025-12-18T04:45:30.970281 +AZURE,northeurope,Standard_D64_v3,spot,NA,0.867299,USD,Azure Retail Prices API,2025-12-18T04:45:29.010806 +AZURE,northeurope,Standard_D64a_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:45:29.010196 +AZURE,northeurope,Standard_D64a_v4,reserved_1y,NA,2.013356,USD,Azure Retail Prices API,2025-12-18T04:45:30.970824 +AZURE,northeurope,Standard_D64a_v4,reserved_3y,NA,1.287443,USD,Azure Retail Prices API,2025-12-18T04:45:30.970828 +AZURE,northeurope,Standard_D64a_v4,spot,NA,0.732394,USD,Azure Retail Prices API,2025-12-18T04:45:29.010355 +AZURE,northeurope,Standard_D64ads_v5,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:45:29.009897 +AZURE,northeurope,Standard_D64ads_v5,reserved_1y,NA,2.171233,USD,Azure Retail Prices API,2025-12-18T04:45:30.972532 +AZURE,northeurope,Standard_D64ads_v5,reserved_3y,NA,1.398402,USD,Azure Retail Prices API,2025-12-18T04:45:30.972537 +AZURE,northeurope,Standard_D64ads_v5,spot,NA,0.824688,USD,Azure Retail Prices API,2025-12-18T04:45:29.009551 +AZURE,northeurope,Standard_D64ads_v6,on_demand,NA,4.077,USD,Azure Retail Prices API,2025-12-18T04:45:29.011140 +AZURE,northeurope,Standard_D64ads_v6,reserved_1y,NA,2.405365,USD,Azure Retail Prices API,2025-12-18T04:45:30.972429 +AZURE,northeurope,Standard_D64ads_v6,reserved_3y,NA,1.549201,USD,Azure Retail Prices API,2025-12-18T04:45:30.972435 +AZURE,northeurope,Standard_D64ads_v6,spot,NA,0.75343,USD,Azure Retail Prices API,2025-12-18T04:45:29.010036 +AZURE,northeurope,Standard_D64as_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:45:29.009697 +AZURE,northeurope,Standard_D64as_v4,reserved_1y,NA,2.013356,USD,Azure Retail Prices API,2025-12-18T04:45:30.969860 +AZURE,northeurope,Standard_D64as_v4,reserved_3y,NA,1.287443,USD,Azure Retail Prices API,2025-12-18T04:45:30.969865 +AZURE,northeurope,Standard_D64as_v4,spot,NA,0.732394,USD,Azure Retail Prices API,2025-12-18T04:45:29.009706 +AZURE,northeurope,Standard_D64as_v5,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:45:29.009834 +AZURE,northeurope,Standard_D64as_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:45:30.970089 +AZURE,northeurope,Standard_D64as_v5,reserved_3y,NA,1.167352,USD,Azure Retail Prices API,2025-12-18T04:45:30.970095 +AZURE,northeurope,Standard_D64as_v5,spot,NA,0.688435,USD,Azure Retail Prices API,2025-12-18T04:45:29.010867 +AZURE,northeurope,Standard_D64d_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:45:29.009832 +AZURE,northeurope,Standard_D64d_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:45:30.970079 +AZURE,northeurope,Standard_D64d_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:45:30.970084 +AZURE,northeurope,Standard_D64d_v4,spot,NA,0.950746,USD,Azure Retail Prices API,2025-12-18T04:45:29.009529 +AZURE,northeurope,Standard_D64ds_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:45:29.010254 +AZURE,northeurope,Standard_D64ds_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:45:30.970924 +AZURE,northeurope,Standard_D64ds_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:45:30.970929 +AZURE,northeurope,Standard_D64ds_v4,spot,NA,0.950746,USD,Azure Retail Prices API,2025-12-18T04:45:29.011492 +AZURE,northeurope,Standard_D64ds_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:45:29.009477 +AZURE,northeurope,Standard_D64ds_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:45:30.969436 +AZURE,northeurope,Standard_D64ds_v5,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:45:30.969443 +AZURE,northeurope,Standard_D64ds_v5,spot,NA,1.183795,USD,Azure Retail Prices API,2025-12-18T04:45:29.009480 +AZURE,northeurope,Standard_D64ds_v6,on_demand,NA,4.444,USD,Azure Retail Prices API,2025-12-18T04:45:29.010770 +AZURE,northeurope,Standard_D64ds_v6,reserved_1y,NA,2.755023,USD,Azure Retail Prices API,2025-12-18T04:45:30.971755 +AZURE,northeurope,Standard_D64ds_v6,reserved_3y,NA,1.732991,USD,Azure Retail Prices API,2025-12-18T04:45:30.971759 +AZURE,northeurope,Standard_D64ds_v6,spot,NA,0.821251,USD,Azure Retail Prices API,2025-12-18T04:45:29.010764 +AZURE,northeurope,Standard_D64pds_v6,on_demand,NA,3.283,USD,Azure Retail Prices API,2025-12-18T04:45:29.010122 +AZURE,northeurope,Standard_D64pds_v6,reserved_1y,NA,1.9371,USD,Azure Retail Prices API,2025-12-18T04:45:30.970521 +AZURE,northeurope,Standard_D64pds_v6,reserved_3y,NA,1.247603,USD,Azure Retail Prices API,2025-12-18T04:45:30.970526 +AZURE,northeurope,Standard_D64pds_v6,spot,NA,0.606698,USD,Azure Retail Prices API,2025-12-18T04:45:29.010059 +AZURE,northeurope,Standard_D64ps_v6,on_demand,NA,2.509,USD,Azure Retail Prices API,2025-12-18T04:45:29.010466 +AZURE,northeurope,Standard_D64ps_v6,reserved_1y,NA,1.480137,USD,Azure Retail Prices API,2025-12-18T04:45:30.971294 +AZURE,northeurope,Standard_D64ps_v6,reserved_3y,NA,0.953349,USD,Azure Retail Prices API,2025-12-18T04:45:30.971299 +AZURE,northeurope,Standard_D64ps_v6,spot,NA,0.463663,USD,Azure Retail Prices API,2025-12-18T04:45:29.010508 +AZURE,northeurope,Standard_D64s_v3,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:45:29.010079 +AZURE,northeurope,Standard_D64s_v3,reserved_1y,NA,2.243836,USD,Azure Retail Prices API,2025-12-18T04:45:30.970435 +AZURE,northeurope,Standard_D64s_v3,reserved_3y,NA,1.480061,USD,Azure Retail Prices API,2025-12-18T04:45:30.970440 +AZURE,northeurope,Standard_D64s_v3,spot,NA,0.867299,USD,Azure Retail Prices API,2025-12-18T04:45:29.011087 +AZURE,northeurope,Standard_D64s_v4,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:45:29.009686 +AZURE,northeurope,Standard_D64s_v4,reserved_1y,NA,2.013356,USD,Azure Retail Prices API,2025-12-18T04:45:30.969831 +AZURE,northeurope,Standard_D64s_v4,reserved_3y,NA,1.287443,USD,Azure Retail Prices API,2025-12-18T04:45:30.969837 +AZURE,northeurope,Standard_D64s_v4,spot,NA,0.867299,USD,Azure Retail Prices API,2025-12-18T04:45:29.009807 +AZURE,northeurope,Standard_D64s_v5,on_demand,NA,3.424,USD,Azure Retail Prices API,2025-12-18T04:45:29.010106 +AZURE,northeurope,Standard_D64s_v5,reserved_1y,NA,1.951712,USD,Azure Retail Prices API,2025-12-18T04:45:30.970484 +AZURE,northeurope,Standard_D64s_v5,reserved_3y,NA,1.266895,USD,Azure Retail Prices API,2025-12-18T04:45:30.970488 +AZURE,northeurope,Standard_D64s_v5,spot,NA,1.072054,USD,Azure Retail Prices API,2025-12-18T04:45:29.010812 +AZURE,northeurope,Standard_D8_v3,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:45:29.010366 +AZURE,northeurope,Standard_D8_v3,reserved_1y,NA,0.280479,USD,Azure Retail Prices API,2025-12-18T04:45:30.971133 +AZURE,northeurope,Standard_D8_v3,reserved_3y,NA,0.185008,USD,Azure Retail Prices API,2025-12-18T04:45:30.971138 +AZURE,northeurope,Standard_D8_v3,spot,NA,0.108412,USD,Azure Retail Prices API,2025-12-18T04:45:29.010594 +AZURE,northeurope,Standard_D8a_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:45:29.009516 +AZURE,northeurope,Standard_D8a_v4,reserved_1y,NA,0.251712,USD,Azure Retail Prices API,2025-12-18T04:45:30.969481 +AZURE,northeurope,Standard_D8a_v4,reserved_3y,NA,0.160921,USD,Azure Retail Prices API,2025-12-18T04:45:30.969486 +AZURE,northeurope,Standard_D8a_v4,spot,NA,0.091549,USD,Azure Retail Prices API,2025-12-18T04:45:29.011008 +AZURE,northeurope,Standard_D8ads_v5,on_demand,NA,0.828,USD,Azure Retail Prices API,2025-12-18T04:45:29.010134 +AZURE,northeurope,Standard_D8ads_v5,reserved_1y,NA,0.271347,USD,Azure Retail Prices API,2025-12-18T04:45:30.971811 +AZURE,northeurope,Standard_D8ads_v5,reserved_3y,NA,0.17481,USD,Azure Retail Prices API,2025-12-18T04:45:30.971817 +AZURE,northeurope,Standard_D8ads_v5,spot,NA,0.103086,USD,Azure Retail Prices API,2025-12-18T04:45:29.010239 +AZURE,northeurope,Standard_D8ads_v6,on_demand,NA,0.51,USD,Azure Retail Prices API,2025-12-18T04:45:29.009671 +AZURE,northeurope,Standard_D8ads_v6,reserved_1y,NA,0.300685,USD,Azure Retail Prices API,2025-12-18T04:45:30.969804 +AZURE,northeurope,Standard_D8ads_v6,reserved_3y,NA,0.193645,USD,Azure Retail Prices API,2025-12-18T04:45:30.969809 +AZURE,northeurope,Standard_D8ads_v6,spot,NA,0.094248,USD,Azure Retail Prices API,2025-12-18T04:45:29.010108 +AZURE,northeurope,Standard_D8as_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:45:29.010120 +AZURE,northeurope,Standard_D8as_v4,reserved_1y,NA,0.251712,USD,Azure Retail Prices API,2025-12-18T04:45:30.970511 +AZURE,northeurope,Standard_D8as_v4,reserved_3y,NA,0.160921,USD,Azure Retail Prices API,2025-12-18T04:45:30.970515 +AZURE,northeurope,Standard_D8as_v4,spot,NA,0.091549,USD,Azure Retail Prices API,2025-12-18T04:45:29.009566 +AZURE,northeurope,Standard_D8as_v5,on_demand,NA,0.752,USD,Azure Retail Prices API,2025-12-18T04:45:29.009826 +AZURE,northeurope,Standard_D8as_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:45:30.972206 +AZURE,northeurope,Standard_D8as_v5,reserved_3y,NA,0.145928,USD,Azure Retail Prices API,2025-12-18T04:45:30.972212 +AZURE,northeurope,Standard_D8as_v5,spot,NA,0.086054,USD,Azure Retail Prices API,2025-12-18T04:45:29.009523 +AZURE,northeurope,Standard_D8d_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:29.010597 +AZURE,northeurope,Standard_D8d_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:45:30.971492 +AZURE,northeurope,Standard_D8d_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:45:30.971498 +AZURE,northeurope,Standard_D8d_v4,spot,NA,0.118843,USD,Azure Retail Prices API,2025-12-18T04:45:29.011415 +AZURE,northeurope,Standard_D8ds_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:29.010445 +AZURE,northeurope,Standard_D8ds_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:45:30.971242 +AZURE,northeurope,Standard_D8ds_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:45:30.971247 +AZURE,northeurope,Standard_D8ds_v4,spot,NA,0.118843,USD,Azure Retail Prices API,2025-12-18T04:45:29.009510 +AZURE,northeurope,Standard_D8ds_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:29.011217 +AZURE,northeurope,Standard_D8ds_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:45:30.972503 +AZURE,northeurope,Standard_D8ds_v5,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:45:30.972508 +AZURE,northeurope,Standard_D8ds_v5,spot,NA,0.147974,USD,Azure Retail Prices API,2025-12-18T04:45:29.010615 +AZURE,northeurope,Standard_D8ds_v6,on_demand,NA,0.555,USD,Azure Retail Prices API,2025-12-18T04:45:29.011351 +AZURE,northeurope,Standard_D8ds_v6,reserved_1y,NA,0.344406,USD,Azure Retail Prices API,2025-12-18T04:45:30.972624 +AZURE,northeurope,Standard_D8ds_v6,reserved_3y,NA,0.216629,USD,Azure Retail Prices API,2025-12-18T04:45:30.972629 +AZURE,northeurope,Standard_D8ds_v6,spot,NA,0.102564,USD,Azure Retail Prices API,2025-12-18T04:45:29.009677 +AZURE,northeurope,Standard_D8pds_v6,on_demand,NA,0.41,USD,Azure Retail Prices API,2025-12-18T04:45:29.009712 +AZURE,northeurope,Standard_D8pds_v6,reserved_1y,NA,0.242123,USD,Azure Retail Prices API,2025-12-18T04:45:30.969888 +AZURE,northeurope,Standard_D8pds_v6,reserved_3y,NA,0.155936,USD,Azure Retail Prices API,2025-12-18T04:45:30.969892 +AZURE,northeurope,Standard_D8pds_v6,spot,NA,0.075768,USD,Azure Retail Prices API,2025-12-18T04:45:29.009598 +AZURE,northeurope,Standard_D8ps_v6,on_demand,NA,0.314,USD,Azure Retail Prices API,2025-12-18T04:45:29.011162 +AZURE,northeurope,Standard_D8ps_v6,reserved_1y,NA,0.185046,USD,Azure Retail Prices API,2025-12-18T04:45:30.972463 +AZURE,northeurope,Standard_D8ps_v6,reserved_3y,NA,0.119178,USD,Azure Retail Prices API,2025-12-18T04:45:30.972469 +AZURE,northeurope,Standard_D8ps_v6,spot,NA,0.058027,USD,Azure Retail Prices API,2025-12-18T04:45:29.010994 +AZURE,northeurope,Standard_D8s_v3,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:45:29.010858 +AZURE,northeurope,Standard_D8s_v3,reserved_1y,NA,0.280479,USD,Azure Retail Prices API,2025-12-18T04:45:30.971982 +AZURE,northeurope,Standard_D8s_v3,reserved_3y,NA,0.185008,USD,Azure Retail Prices API,2025-12-18T04:45:30.971987 +AZURE,northeurope,Standard_D8s_v3,spot,NA,0.108412,USD,Azure Retail Prices API,2025-12-18T04:45:29.009500 +AZURE,northeurope,Standard_D8s_v4,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:45:29.010068 +AZURE,northeurope,Standard_D8s_v4,reserved_1y,NA,0.251712,USD,Azure Retail Prices API,2025-12-18T04:45:30.970415 +AZURE,northeurope,Standard_D8s_v4,reserved_3y,NA,0.160921,USD,Azure Retail Prices API,2025-12-18T04:45:30.970420 +AZURE,northeurope,Standard_D8s_v4,spot,NA,0.108412,USD,Azure Retail Prices API,2025-12-18T04:45:29.010572 +AZURE,northeurope,Standard_D8s_v5,on_demand,NA,0.428,USD,Azure Retail Prices API,2025-12-18T04:45:29.010563 +AZURE,northeurope,Standard_D8s_v5,reserved_1y,NA,0.24395,USD,Azure Retail Prices API,2025-12-18T04:45:30.971430 +AZURE,northeurope,Standard_D8s_v5,reserved_3y,NA,0.158371,USD,Azure Retail Prices API,2025-12-18T04:45:30.971435 +AZURE,northeurope,Standard_D8s_v5,spot,NA,0.134007,USD,Azure Retail Prices API,2025-12-18T04:45:29.010173 +AZURE,northeurope,Standard_D96a_v4,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:45:29.010298 +AZURE,northeurope,Standard_D96a_v4,reserved_1y,NA,3.019977,USD,Azure Retail Prices API,2025-12-18T04:45:30.970984 +AZURE,northeurope,Standard_D96a_v4,reserved_3y,NA,1.931126,USD,Azure Retail Prices API,2025-12-18T04:45:30.970988 +AZURE,northeurope,Standard_D96a_v4,spot,NA,1.09859,USD,Azure Retail Prices API,2025-12-18T04:45:29.011011 +AZURE,northeurope,Standard_D96ads_v5,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:45:29.009493 +AZURE,northeurope,Standard_D96ads_v5,reserved_1y,NA,3.256849,USD,Azure Retail Prices API,2025-12-18T04:45:30.969470 +AZURE,northeurope,Standard_D96ads_v5,reserved_3y,NA,2.097603,USD,Azure Retail Prices API,2025-12-18T04:45:30.969475 +AZURE,northeurope,Standard_D96ads_v5,spot,NA,1.237032,USD,Azure Retail Prices API,2025-12-18T04:45:29.010215 +AZURE,northeurope,Standard_D96ads_v6,on_demand,NA,6.115,USD,Azure Retail Prices API,2025-12-18T04:45:29.010817 +AZURE,northeurope,Standard_D96ads_v6,reserved_1y,NA,3.607991,USD,Azure Retail Prices API,2025-12-18T04:45:30.971906 +AZURE,northeurope,Standard_D96ads_v6,reserved_3y,NA,2.323782,USD,Azure Retail Prices API,2025-12-18T04:45:30.971911 +AZURE,northeurope,Standard_D96ads_v6,spot,NA,1.130052,USD,Azure Retail Prices API,2025-12-18T04:45:29.009513 +AZURE,northeurope,Standard_D96as_v4,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:45:29.010497 +AZURE,northeurope,Standard_D96as_v4,reserved_1y,NA,3.019977,USD,Azure Retail Prices API,2025-12-18T04:45:30.971357 +AZURE,northeurope,Standard_D96as_v4,reserved_3y,NA,1.931126,USD,Azure Retail Prices API,2025-12-18T04:45:30.971362 +AZURE,northeurope,Standard_D96as_v4,spot,NA,1.09859,USD,Azure Retail Prices API,2025-12-18T04:45:29.009944 +AZURE,northeurope,Standard_D96as_v5,on_demand,NA,9.024,USD,Azure Retail Prices API,2025-12-18T04:45:29.010658 +AZURE,northeurope,Standard_D96as_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:30.972522 +AZURE,northeurope,Standard_D96as_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:45:30.972527 +AZURE,northeurope,Standard_D96as_v5,spot,NA,1.032653,USD,Azure Retail Prices API,2025-12-18T04:45:29.009455 +AZURE,northeurope,Standard_D96ds_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:45:29.010044 +AZURE,northeurope,Standard_D96ds_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:30.970385 +AZURE,northeurope,Standard_D96ds_v5,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:45:30.970390 +AZURE,northeurope,Standard_D96ds_v5,spot,NA,1.775693,USD,Azure Retail Prices API,2025-12-18T04:45:29.010191 +AZURE,northeurope,Standard_D96ds_v6,on_demand,NA,6.665,USD,Azure Retail Prices API,2025-12-18T04:45:29.010915 +AZURE,northeurope,Standard_D96ds_v6,reserved_1y,NA,4.13242,USD,Azure Retail Prices API,2025-12-18T04:45:30.972127 +AZURE,northeurope,Standard_D96ds_v6,reserved_3y,NA,2.599467,USD,Azure Retail Prices API,2025-12-18T04:45:30.972132 +AZURE,northeurope,Standard_D96ds_v6,spot,NA,1.231692,USD,Azure Retail Prices API,2025-12-18T04:45:29.010375 +AZURE,northeurope,Standard_D96pds_v6,on_demand,NA,4.925,USD,Azure Retail Prices API,2025-12-18T04:45:29.010679 +AZURE,northeurope,Standard_D96pds_v6,reserved_1y,NA,2.905594,USD,Azure Retail Prices API,2025-12-18T04:45:30.971646 +AZURE,northeurope,Standard_D96pds_v6,reserved_3y,NA,1.871423,USD,Azure Retail Prices API,2025-12-18T04:45:30.971678 +AZURE,northeurope,Standard_D96pds_v6,spot,NA,0.91014,USD,Azure Retail Prices API,2025-12-18T04:45:29.009882 +AZURE,northeurope,Standard_D96ps_v6,on_demand,NA,3.763,USD,Azure Retail Prices API,2025-12-18T04:45:29.010022 +AZURE,northeurope,Standard_D96ps_v6,reserved_1y,NA,2.22032,USD,Azure Retail Prices API,2025-12-18T04:45:30.970366 +AZURE,northeurope,Standard_D96ps_v6,reserved_3y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:45:30.970371 +AZURE,northeurope,Standard_D96ps_v6,spot,NA,0.695402,USD,Azure Retail Prices API,2025-12-18T04:45:29.009694 +AZURE,northeurope,Standard_D96s_v5,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:45:29.009914 +AZURE,northeurope,Standard_D96s_v5,reserved_1y,NA,2.927511,USD,Azure Retail Prices API,2025-12-18T04:45:30.970257 +AZURE,northeurope,Standard_D96s_v5,reserved_3y,NA,1.900304,USD,Azure Retail Prices API,2025-12-18T04:45:30.970262 +AZURE,northeurope,Standard_D96s_v5,spot,NA,1.608082,USD,Azure Retail Prices API,2025-12-18T04:45:29.011340 +AZURE,northeurope,Standard_DC16ads_v5,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:29.009871 +AZURE,northeurope,Standard_DC16ads_v5,reserved_1y,NA,0.735959,USD,Azure Retail Prices API,2025-12-18T04:45:30.970168 +AZURE,northeurope,Standard_DC16ads_v5,reserved_3y,NA,0.552017,USD,Azure Retail Prices API,2025-12-18T04:45:30.970173 +AZURE,northeurope,Standard_DC16ads_v5,spot,NA,0.173604,USD,Azure Retail Prices API,2025-12-18T04:45:29.010349 +AZURE,northeurope,Standard_DC16ads_v6,on_demand,NA,1.019,USD,Azure Retail Prices API,2025-12-18T04:45:29.010165 +AZURE,northeurope,Standard_DC16ads_v6,reserved_1y,NA,0.60137,USD,Azure Retail Prices API,2025-12-18T04:45:30.970621 +AZURE,northeurope,Standard_DC16ads_v6,reserved_3y,NA,0.387291,USD,Azure Retail Prices API,2025-12-18T04:45:30.970625 +AZURE,northeurope,Standard_DC16ads_v6,spot,NA,0.188311,USD,Azure Retail Prices API,2025-12-18T04:45:29.010712 +AZURE,northeurope,Standard_DC16as_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:29.011503 +AZURE,northeurope,Standard_DC16as_v5,reserved_1y,NA,0.614384,USD,Azure Retail Prices API,2025-12-18T04:45:30.972782 +AZURE,northeurope,Standard_DC16as_v5,reserved_3y,NA,0.460807,USD,Azure Retail Prices API,2025-12-18T04:45:30.972787 +AZURE,northeurope,Standard_DC16as_v5,spot,NA,0.144922,USD,Azure Retail Prices API,2025-12-18T04:45:29.010288 +AZURE,northeurope,Standard_DC2ads_v6,on_demand,NA,0.127,USD,Azure Retail Prices API,2025-12-18T04:45:29.010369 +AZURE,northeurope,Standard_DC2ads_v6,reserved_1y,NA,0.075114,USD,Azure Retail Prices API,2025-12-18T04:45:30.971142 +AZURE,northeurope,Standard_DC2ads_v6,reserved_3y,NA,0.048402,USD,Azure Retail Prices API,2025-12-18T04:45:30.971147 +AZURE,northeurope,Standard_DC2ads_v6,spot,NA,0.02347,USD,Azure Retail Prices API,2025-12-18T04:45:29.009779 +AZURE,northeurope,Standard_DC32ads_v5,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:29.010448 +AZURE,northeurope,Standard_DC32ads_v5,reserved_1y,NA,1.472032,USD,Azure Retail Prices API,2025-12-18T04:45:30.971252 +AZURE,northeurope,Standard_DC32ads_v5,reserved_3y,NA,1.103995,USD,Azure Retail Prices API,2025-12-18T04:45:30.971257 +AZURE,northeurope,Standard_DC32ads_v5,spot,NA,0.347208,USD,Azure Retail Prices API,2025-12-18T04:45:29.010295 +AZURE,northeurope,Standard_DC32ads_v6,on_demand,NA,2.038,USD,Azure Retail Prices API,2025-12-18T04:45:29.009486 +AZURE,northeurope,Standard_DC32ads_v6,reserved_1y,NA,1.202626,USD,Azure Retail Prices API,2025-12-18T04:45:30.969459 +AZURE,northeurope,Standard_DC32ads_v6,reserved_3y,NA,0.774581,USD,Azure Retail Prices API,2025-12-18T04:45:30.969464 +AZURE,northeurope,Standard_DC32ads_v6,spot,NA,0.376622,USD,Azure Retail Prices API,2025-12-18T04:45:29.010071 +AZURE,northeurope,Standard_DC32as_v5,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:45:29.010053 +AZURE,northeurope,Standard_DC32as_v5,reserved_1y,NA,1.228767,USD,Azure Retail Prices API,2025-12-18T04:45:30.970395 +AZURE,northeurope,Standard_DC32as_v5,reserved_3y,NA,0.921613,USD,Azure Retail Prices API,2025-12-18T04:45:30.970399 +AZURE,northeurope,Standard_DC32as_v5,spot,NA,0.289843,USD,Azure Retail Prices API,2025-12-18T04:45:29.010384 +AZURE,northeurope,Standard_DC48ads_v5,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:45:29.010378 +AZURE,northeurope,Standard_DC48ads_v5,reserved_1y,NA,2.207991,USD,Azure Retail Prices API,2025-12-18T04:45:30.971151 +AZURE,northeurope,Standard_DC48ads_v5,reserved_3y,NA,1.656012,USD,Azure Retail Prices API,2025-12-18T04:45:30.971156 +AZURE,northeurope,Standard_DC48ads_v5,spot,NA,0.520812,USD,Azure Retail Prices API,2025-12-18T04:45:29.010271 +AZURE,northeurope,Standard_DC48ads_v6,on_demand,NA,3.058,USD,Azure Retail Prices API,2025-12-18T04:45:29.009846 +AZURE,northeurope,Standard_DC48ads_v6,reserved_1y,NA,1.803995,USD,Azure Retail Prices API,2025-12-18T04:45:30.970109 +AZURE,northeurope,Standard_DC48ads_v6,reserved_3y,NA,1.161872,USD,Azure Retail Prices API,2025-12-18T04:45:30.970114 +AZURE,northeurope,Standard_DC48ads_v6,spot,NA,0.565118,USD,Azure Retail Prices API,2025-12-18T04:45:29.010457 +AZURE,northeurope,Standard_DC48as_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:45:29.010885 +AZURE,northeurope,Standard_DC48as_v5,reserved_1y,NA,1.843151,USD,Azure Retail Prices API,2025-12-18T04:45:30.972065 +AZURE,northeurope,Standard_DC48as_v5,reserved_3y,NA,1.382382,USD,Azure Retail Prices API,2025-12-18T04:45:30.972069 +AZURE,northeurope,Standard_DC48as_v5,spot,NA,0.434765,USD,Azure Retail Prices API,2025-12-18T04:45:29.009497 +AZURE,northeurope,Standard_DC4ads_v5,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:29.011123 +AZURE,northeurope,Standard_DC4ads_v5,reserved_1y,NA,0.184018,USD,Azure Retail Prices API,2025-12-18T04:45:30.972406 +AZURE,northeurope,Standard_DC4ads_v5,reserved_3y,NA,0.138014,USD,Azure Retail Prices API,2025-12-18T04:45:30.972412 +AZURE,northeurope,Standard_DC4ads_v5,spot,NA,0.043401,USD,Azure Retail Prices API,2025-12-18T04:45:29.011132 +AZURE,northeurope,Standard_DC4ads_v6,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:45:29.010737 +AZURE,northeurope,Standard_DC4ads_v6,reserved_1y,NA,0.150342,USD,Azure Retail Prices API,2025-12-18T04:45:30.971736 +AZURE,northeurope,Standard_DC4ads_v6,reserved_3y,NA,0.096842,USD,Azure Retail Prices API,2025-12-18T04:45:30.971741 +AZURE,northeurope,Standard_DC4ads_v6,spot,NA,0.047124,USD,Azure Retail Prices API,2025-12-18T04:45:29.010363 +AZURE,northeurope,Standard_DC4as_v5,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:45:29.011177 +AZURE,northeurope,Standard_DC4as_v5,reserved_1y,NA,0.153653,USD,Azure Retail Prices API,2025-12-18T04:45:30.972474 +AZURE,northeurope,Standard_DC4as_v5,reserved_3y,NA,0.115183,USD,Azure Retail Prices API,2025-12-18T04:45:30.972479 +AZURE,northeurope,Standard_DC4as_v5,spot,NA,0.03623,USD,Azure Retail Prices API,2025-12-18T04:45:29.009900 +AZURE,northeurope,Standard_DC64ads_v5,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:29.009891 +AZURE,northeurope,Standard_DC64ads_v5,reserved_1y,NA,2.94395,USD,Azure Retail Prices API,2025-12-18T04:45:30.970217 +AZURE,northeurope,Standard_DC64ads_v5,reserved_3y,NA,2.207991,USD,Azure Retail Prices API,2025-12-18T04:45:30.970223 +AZURE,northeurope,Standard_DC64ads_v5,spot,NA,0.694416,USD,Azure Retail Prices API,2025-12-18T04:45:29.011510 +AZURE,northeurope,Standard_DC64ads_v6,on_demand,NA,4.077,USD,Azure Retail Prices API,2025-12-18T04:45:29.010274 +AZURE,northeurope,Standard_DC64ads_v6,reserved_1y,NA,2.405365,USD,Azure Retail Prices API,2025-12-18T04:45:30.970964 +AZURE,northeurope,Standard_DC64ads_v6,reserved_3y,NA,1.549201,USD,Azure Retail Prices API,2025-12-18T04:45:30.970969 +AZURE,northeurope,Standard_DC64ads_v6,spot,NA,0.75343,USD,Azure Retail Prices API,2025-12-18T04:45:29.009657 +AZURE,northeurope,Standard_DC64as_v5,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:45:29.010653 +AZURE,northeurope,Standard_DC64as_v5,reserved_1y,NA,2.457648,USD,Azure Retail Prices API,2025-12-18T04:45:30.971586 +AZURE,northeurope,Standard_DC64as_v5,reserved_3y,NA,1.843189,USD,Azure Retail Prices API,2025-12-18T04:45:30.971591 +AZURE,northeurope,Standard_DC64as_v5,spot,NA,0.579686,USD,Azure Retail Prices API,2025-12-18T04:45:29.010452 +AZURE,northeurope,Standard_DC8ads_v5,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:29.009542 +AZURE,northeurope,Standard_DC8ads_v5,reserved_1y,NA,0.368037,USD,Azure Retail Prices API,2025-12-18T04:45:30.969503 +AZURE,northeurope,Standard_DC8ads_v5,reserved_3y,NA,0.275989,USD,Azure Retail Prices API,2025-12-18T04:45:30.969508 +AZURE,northeurope,Standard_DC8ads_v5,spot,NA,0.086802,USD,Azure Retail Prices API,2025-12-18T04:45:29.011438 +AZURE,northeurope,Standard_DC8ads_v6,on_demand,NA,0.51,USD,Azure Retail Prices API,2025-12-18T04:45:29.010111 +AZURE,northeurope,Standard_DC8ads_v6,reserved_1y,NA,0.300685,USD,Azure Retail Prices API,2025-12-18T04:45:30.970493 +AZURE,northeurope,Standard_DC8ads_v6,reserved_3y,NA,0.193645,USD,Azure Retail Prices API,2025-12-18T04:45:30.970497 +AZURE,northeurope,Standard_DC8ads_v6,spot,NA,0.094248,USD,Azure Retail Prices API,2025-12-18T04:45:29.010233 +AZURE,northeurope,Standard_DC8as_v5,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:45:29.010477 +AZURE,northeurope,Standard_DC8as_v5,reserved_1y,NA,0.307192,USD,Azure Retail Prices API,2025-12-18T04:45:30.971316 +AZURE,northeurope,Standard_DC8as_v5,reserved_3y,NA,0.230403,USD,Azure Retail Prices API,2025-12-18T04:45:30.971321 +AZURE,northeurope,Standard_DC8as_v5,spot,NA,0.072461,USD,Azure Retail Prices API,2025-12-18T04:45:29.010635 +AZURE,northeurope,Standard_DC96ads_v5,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:45:29.009642 +AZURE,northeurope,Standard_DC96ads_v5,reserved_1y,NA,4.415982,USD,Azure Retail Prices API,2025-12-18T04:45:30.969750 +AZURE,northeurope,Standard_DC96ads_v5,reserved_3y,NA,3.311986,USD,Azure Retail Prices API,2025-12-18T04:45:30.969755 +AZURE,northeurope,Standard_DC96ads_v5,spot,NA,1.041624,USD,Azure Retail Prices API,2025-12-18T04:45:29.010894 +AZURE,northeurope,Standard_DC96ads_v6,on_demand,NA,6.115,USD,Azure Retail Prices API,2025-12-18T04:45:29.009969 +AZURE,northeurope,Standard_DC96ads_v6,reserved_1y,NA,3.607991,USD,Azure Retail Prices API,2025-12-18T04:45:30.970325 +AZURE,northeurope,Standard_DC96ads_v6,reserved_3y,NA,2.323782,USD,Azure Retail Prices API,2025-12-18T04:45:30.970330 +AZURE,northeurope,Standard_DC96ads_v6,spot,NA,1.130052,USD,Azure Retail Prices API,2025-12-18T04:45:29.010381 +AZURE,northeurope,Standard_DC96as_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:45:29.010248 +AZURE,northeurope,Standard_DC96as_v5,reserved_1y,NA,3.686416,USD,Azure Retail Prices API,2025-12-18T04:45:30.970913 +AZURE,northeurope,Standard_DC96as_v5,reserved_3y,NA,2.764802,USD,Azure Retail Prices API,2025-12-18T04:45:30.970919 +AZURE,northeurope,Standard_DC96as_v5,spot,NA,0.86953,USD,Azure Retail Prices API,2025-12-18T04:45:29.010091 +AZURE,northeurope,Standard_DS12_v2,on_demand,NA,0.4081,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495269 +AZURE,northeurope,Standard_DS12_v2,reserved_1y,NA,0.24486,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495277 +AZURE,northeurope,Standard_DS12_v2,reserved_3y,NA,0.16324,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495281 +AZURE,northeurope,Standard_DS12_v2,spot,NA,0.12243,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495273 +AZURE,northeurope,Standard_DS13_v2,on_demand,NA,0.8151,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496123 +AZURE,northeurope,Standard_DS13_v2,reserved_1y,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496141 +AZURE,northeurope,Standard_DS13_v2,reserved_3y,NA,0.32604,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496147 +AZURE,northeurope,Standard_DS13_v2,spot,NA,0.24453,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496135 +AZURE,northeurope,Standard_DS14_v2,on_demand,NA,1.6302,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496898 +AZURE,northeurope,Standard_DS14_v2,reserved_1y,NA,0.97812,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496906 +AZURE,northeurope,Standard_DS14_v2,reserved_3y,NA,0.65208,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496910 +AZURE,northeurope,Standard_DS14_v2,spot,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496902 +AZURE,northeurope,Standard_DS15_v2,on_demand,NA,2.0383,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497790 +AZURE,northeurope,Standard_DS15_v2,reserved_1y,NA,1.22298,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497799 +AZURE,northeurope,Standard_DS15_v2,reserved_3y,NA,0.81532,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497803 +AZURE,northeurope,Standard_DS15_v2,spot,NA,0.61149,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497794 +AZURE,northeurope,Standard_DS1_v2,on_demand,NA,0.0803,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491624 +AZURE,northeurope,Standard_DS1_v2,reserved_1y,NA,0.04818,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491632 +AZURE,northeurope,Standard_DS1_v2,reserved_3y,NA,0.03212,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491636 +AZURE,northeurope,Standard_DS1_v2,spot,NA,0.02409,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491628 +AZURE,northeurope,Standard_DS2_v2,on_demand,NA,0.1606,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492369 +AZURE,northeurope,Standard_DS2_v2,reserved_1y,NA,0.09636,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492378 +AZURE,northeurope,Standard_DS2_v2,reserved_3y,NA,0.06424,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492382 +AZURE,northeurope,Standard_DS2_v2,spot,NA,0.04818,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492374 +AZURE,northeurope,Standard_DS3_v2,on_demand,NA,0.3223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493072 +AZURE,northeurope,Standard_DS3_v2,reserved_1y,NA,0.19338,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493088 +AZURE,northeurope,Standard_DS3_v2,reserved_3y,NA,0.12892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493092 +AZURE,northeurope,Standard_DS3_v2,spot,NA,0.09669,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493081 +AZURE,northeurope,Standard_DS4_v2,on_demand,NA,0.6435,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493804 +AZURE,northeurope,Standard_DS4_v2,reserved_1y,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493813 +AZURE,northeurope,Standard_DS4_v2,reserved_3y,NA,0.2574,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493817 +AZURE,northeurope,Standard_DS4_v2,spot,NA,0.19305,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493809 +AZURE,northeurope,Standard_DS5_v2,on_demand,NA,1.287,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494517 +AZURE,northeurope,Standard_DS5_v2,reserved_1y,NA,0.7722,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494525 +AZURE,northeurope,Standard_DS5_v2,reserved_3y,NA,0.5148,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494529 +AZURE,northeurope,Standard_DS5_v2,spot,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494521 +AZURE,northeurope,Standard_E128ds_v6,on_demand,NA,11.711,USD,Azure Retail Prices API,2025-12-18T04:45:29.010676 +AZURE,northeurope,Standard_E128ds_v6,reserved_1y,NA,7.260616,USD,Azure Retail Prices API,2025-12-18T04:45:30.971636 +AZURE,northeurope,Standard_E128ds_v6,reserved_3y,NA,4.567199,USD,Azure Retail Prices API,2025-12-18T04:45:30.971641 +AZURE,northeurope,Standard_E128ds_v6,spot,NA,2.164193,USD,Azure Retail Prices API,2025-12-18T04:45:29.009715 +AZURE,northeurope,Standard_E16_v3,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:45:29.010328 +AZURE,northeurope,Standard_E16_v3,reserved_1y,NA,0.697146,USD,Azure Retail Prices API,2025-12-18T04:45:30.971025 +AZURE,northeurope,Standard_E16_v3,reserved_3y,NA,0.445776,USD,Azure Retail Prices API,2025-12-18T04:45:30.971029 +AZURE,northeurope,Standard_E16_v3,spot,NA,0.285722,USD,Azure Retail Prices API,2025-12-18T04:45:29.010761 +AZURE,northeurope,Standard_E16a_v4,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:45:29.009613 +AZURE,northeurope,Standard_E16a_v4,reserved_1y,NA,0.663014,USD,Azure Retail Prices API,2025-12-18T04:45:30.969683 +AZURE,northeurope,Standard_E16a_v4,reserved_3y,NA,0.424125,USD,Azure Retail Prices API,2025-12-18T04:45:30.969689 +AZURE,northeurope,Standard_E16a_v4,spot,NA,0.241279,USD,Azure Retail Prices API,2025-12-18T04:45:29.010131 +AZURE,northeurope,Standard_E16ads_v5,on_demand,NA,1.904,USD,Azure Retail Prices API,2025-12-18T04:45:29.010039 +AZURE,northeurope,Standard_E16ads_v5,reserved_1y,NA,0.689155,USD,Azure Retail Prices API,2025-12-18T04:45:30.970873 +AZURE,northeurope,Standard_E16ads_v5,reserved_3y,NA,0.443836,USD,Azure Retail Prices API,2025-12-18T04:45:30.970878 +AZURE,northeurope,Standard_E16ads_v5,spot,NA,0.261749,USD,Azure Retail Prices API,2025-12-18T04:45:29.011118 +AZURE,northeurope,Standard_E16ads_v6,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:45:29.010361 +AZURE,northeurope,Standard_E16ads_v6,reserved_1y,NA,0.764612,USD,Azure Retail Prices API,2025-12-18T04:45:30.971122 +AZURE,northeurope,Standard_E16ads_v6,reserved_3y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:45:30.971127 +AZURE,northeurope,Standard_E16ads_v6,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:45:29.010097 +AZURE,northeurope,Standard_E16as_v4,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:45:29.011481 +AZURE,northeurope,Standard_E16as_v4,reserved_1y,NA,0.663014,USD,Azure Retail Prices API,2025-12-18T04:45:30.972739 +AZURE,northeurope,Standard_E16as_v4,reserved_3y,NA,0.424125,USD,Azure Retail Prices API,2025-12-18T04:45:30.972744 +AZURE,northeurope,Standard_E16as_v4,spot,NA,0.241279,USD,Azure Retail Prices API,2025-12-18T04:45:29.009683 +AZURE,northeurope,Standard_E16as_v5,on_demand,NA,1.752,USD,Azure Retail Prices API,2025-12-18T04:45:29.010304 +AZURE,northeurope,Standard_E16as_v5,reserved_1y,NA,0.599429,USD,Azure Retail Prices API,2025-12-18T04:45:30.971282 +AZURE,northeurope,Standard_E16as_v5,reserved_3y,NA,0.386073,USD,Azure Retail Prices API,2025-12-18T04:45:30.971288 +AZURE,northeurope,Standard_E16as_v5,spot,NA,0.227686,USD,Azure Retail Prices API,2025-12-18T04:45:29.009535 +AZURE,northeurope,Standard_E16d_v4,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:45:29.010347 +AZURE,northeurope,Standard_E16d_v4,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:45:30.971102 +AZURE,northeurope,Standard_E16d_v4,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:45:30.971107 +AZURE,northeurope,Standard_E16d_v4,spot,NA,0.316928,USD,Azure Retail Prices API,2025-12-18T04:45:29.011136 +AZURE,northeurope,Standard_E16ds_v4,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:45:29.010410 +AZURE,northeurope,Standard_E16ds_v4,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:45:30.971201 +AZURE,northeurope,Standard_E16ds_v4,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:45:30.971206 +AZURE,northeurope,Standard_E16ds_v4,spot,NA,0.316928,USD,Azure Retail Prices API,2025-12-18T04:45:29.010157 +AZURE,northeurope,Standard_E16ds_v5,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:45:29.010832 +AZURE,northeurope,Standard_E16ds_v5,reserved_1y,NA,0.755251,USD,Azure Retail Prices API,2025-12-18T04:45:30.971916 +AZURE,northeurope,Standard_E16ds_v5,reserved_3y,NA,0.486416,USD,Azure Retail Prices API,2025-12-18T04:45:30.971921 +AZURE,northeurope,Standard_E16ds_v5,spot,NA,0.347776,USD,Azure Retail Prices API,2025-12-18T04:45:29.011057 +AZURE,northeurope,Standard_E16ds_v6,on_demand,NA,1.464,USD,Azure Retail Prices API,2025-12-18T04:45:29.011487 +AZURE,northeurope,Standard_E16ds_v6,reserved_1y,NA,0.907534,USD,Azure Retail Prices API,2025-12-18T04:45:30.972748 +AZURE,northeurope,Standard_E16ds_v6,reserved_3y,NA,0.57089,USD,Azure Retail Prices API,2025-12-18T04:45:30.972766 +AZURE,northeurope,Standard_E16ds_v6,spot,NA,0.270547,USD,Azure Retail Prices API,2025-12-18T04:45:29.010413 +AZURE,northeurope,Standard_E16pds_v6,on_demand,NA,1.045,USD,Azure Retail Prices API,2025-12-18T04:45:29.010986 +AZURE,northeurope,Standard_E16pds_v6,reserved_1y,NA,0.616438,USD,Azure Retail Prices API,2025-12-18T04:45:30.972308 +AZURE,northeurope,Standard_E16pds_v6,reserved_3y,NA,0.397032,USD,Azure Retail Prices API,2025-12-18T04:45:30.972312 +AZURE,northeurope,Standard_E16pds_v6,spot,NA,0.193116,USD,Azure Retail Prices API,2025-12-18T04:45:29.009751 +AZURE,northeurope,Standard_E16ps_v6,on_demand,NA,0.824,USD,Azure Retail Prices API,2025-12-18T04:45:29.010482 +AZURE,northeurope,Standard_E16ps_v6,reserved_1y,NA,0.486187,USD,Azure Retail Prices API,2025-12-18T04:45:30.971327 +AZURE,northeurope,Standard_E16ps_v6,reserved_3y,NA,0.313128,USD,Azure Retail Prices API,2025-12-18T04:45:30.971332 +AZURE,northeurope,Standard_E16ps_v6,spot,NA,0.152275,USD,Azure Retail Prices API,2025-12-18T04:45:29.009489 +AZURE,northeurope,Standard_E16s_v3,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:45:29.010644 +AZURE,northeurope,Standard_E16s_v3,reserved_1y,NA,0.697146,USD,Azure Retail Prices API,2025-12-18T04:45:30.971565 +AZURE,northeurope,Standard_E16s_v3,reserved_3y,NA,0.445776,USD,Azure Retail Prices API,2025-12-18T04:45:30.971570 +AZURE,northeurope,Standard_E16s_v3,spot,NA,0.285722,USD,Azure Retail Prices API,2025-12-18T04:45:29.010307 +AZURE,northeurope,Standard_E16s_v4,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:45:29.010492 +AZURE,northeurope,Standard_E16s_v4,reserved_1y,NA,0.663242,USD,Azure Retail Prices API,2025-12-18T04:45:30.971347 +AZURE,northeurope,Standard_E16s_v4,reserved_3y,NA,0.424125,USD,Azure Retail Prices API,2025-12-18T04:45:30.971351 +AZURE,northeurope,Standard_E16s_v4,spot,NA,0.279293,USD,Azure Retail Prices API,2025-12-18T04:45:29.011365 +AZURE,northeurope,Standard_E16s_v5,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:45:29.010647 +AZURE,northeurope,Standard_E16s_v5,reserved_1y,NA,0.654224,USD,Azure Retail Prices API,2025-12-18T04:45:30.971576 +AZURE,northeurope,Standard_E16s_v5,reserved_3y,NA,0.417352,USD,Azure Retail Prices API,2025-12-18T04:45:30.971581 +AZURE,northeurope,Standard_E16s_v5,spot,NA,0.323285,USD,Azure Retail Prices API,2025-12-18T04:45:29.011346 +AZURE,northeurope,Standard_E20a_v4,on_demand,NA,1.41,USD,Azure Retail Prices API,2025-12-18T04:45:29.010997 +AZURE,northeurope,Standard_E20a_v4,reserved_1y,NA,0.828767,USD,Azure Retail Prices API,2025-12-18T04:45:30.972334 +AZURE,northeurope,Standard_E20a_v4,reserved_3y,NA,0.530251,USD,Azure Retail Prices API,2025-12-18T04:45:30.972339 +AZURE,northeurope,Standard_E20a_v4,spot,NA,0.301599,USD,Azure Retail Prices API,2025-12-18T04:45:29.010740 +AZURE,northeurope,Standard_E20ads_v5,on_demand,NA,1.46,USD,Azure Retail Prices API,2025-12-18T04:45:29.009927 +AZURE,northeurope,Standard_E20ads_v5,reserved_1y,NA,0.861416,USD,Azure Retail Prices API,2025-12-18T04:45:30.970286 +AZURE,northeurope,Standard_E20ads_v5,reserved_3y,NA,0.554795,USD,Azure Retail Prices API,2025-12-18T04:45:30.970291 +AZURE,northeurope,Standard_E20ads_v5,spot,NA,0.327186,USD,Azure Retail Prices API,2025-12-18T04:45:29.010758 +AZURE,northeurope,Standard_E20ads_v6,on_demand,NA,1.62,USD,Azure Retail Prices API,2025-12-18T04:45:29.011211 +AZURE,northeurope,Standard_E20ads_v6,reserved_1y,NA,0.955822,USD,Azure Retail Prices API,2025-12-18T04:45:30.972494 +AZURE,northeurope,Standard_E20ads_v6,reserved_3y,NA,0.615601,USD,Azure Retail Prices API,2025-12-18T04:45:30.972498 +AZURE,northeurope,Standard_E20ads_v6,spot,NA,0.299376,USD,Azure Retail Prices API,2025-12-18T04:45:29.009773 +AZURE,northeurope,Standard_E20as_v4,on_demand,NA,1.41,USD,Azure Retail Prices API,2025-12-18T04:45:29.011356 +AZURE,northeurope,Standard_E20as_v4,reserved_1y,NA,0.828767,USD,Azure Retail Prices API,2025-12-18T04:45:30.972635 +AZURE,northeurope,Standard_E20as_v4,reserved_3y,NA,0.530251,USD,Azure Retail Prices API,2025-12-18T04:45:30.972641 +AZURE,northeurope,Standard_E20as_v4,spot,NA,0.301599,USD,Azure Retail Prices API,2025-12-18T04:45:29.010709 +AZURE,northeurope,Standard_E20as_v5,on_demand,NA,2.19,USD,Azure Retail Prices API,2025-12-18T04:45:29.009930 +AZURE,northeurope,Standard_E20as_v5,reserved_1y,NA,0.749315,USD,Azure Retail Prices API,2025-12-18T04:45:30.972711 +AZURE,northeurope,Standard_E20as_v5,reserved_3y,NA,0.48261,USD,Azure Retail Prices API,2025-12-18T04:45:30.972716 +AZURE,northeurope,Standard_E20as_v5,spot,NA,0.284607,USD,Azure Retail Prices API,2025-12-18T04:45:29.010930 +AZURE,northeurope,Standard_E20d_v4,on_demand,NA,1.6,USD,Azure Retail Prices API,2025-12-18T04:45:29.009874 +AZURE,northeurope,Standard_E20d_v4,reserved_1y,NA,0.940639,USD,Azure Retail Prices API,2025-12-18T04:45:30.970178 +AZURE,northeurope,Standard_E20d_v4,reserved_3y,NA,0.601598,USD,Azure Retail Prices API,2025-12-18T04:45:30.970184 +AZURE,northeurope,Standard_E20d_v4,spot,NA,0.39616,USD,Azure Retail Prices API,2025-12-18T04:45:29.010316 +AZURE,northeurope,Standard_E20ds_v4,on_demand,NA,1.6,USD,Azure Retail Prices API,2025-12-18T04:45:29.010661 +AZURE,northeurope,Standard_E20ds_v4,reserved_1y,NA,0.940639,USD,Azure Retail Prices API,2025-12-18T04:45:30.971615 +AZURE,northeurope,Standard_E20ds_v4,reserved_3y,NA,0.601598,USD,Azure Retail Prices API,2025-12-18T04:45:30.971620 +AZURE,northeurope,Standard_E20ds_v4,spot,NA,0.39616,USD,Azure Retail Prices API,2025-12-18T04:45:29.010062 +AZURE,northeurope,Standard_E20ds_v5,on_demand,NA,1.6,USD,Azure Retail Prices API,2025-12-18T04:45:29.010603 +AZURE,northeurope,Standard_E20ds_v5,reserved_1y,NA,0.94395,USD,Azure Retail Prices API,2025-12-18T04:45:30.971503 +AZURE,northeurope,Standard_E20ds_v5,reserved_3y,NA,0.607991,USD,Azure Retail Prices API,2025-12-18T04:45:30.971508 +AZURE,northeurope,Standard_E20ds_v5,spot,NA,0.43472,USD,Azure Retail Prices API,2025-12-18T04:45:29.010050 +AZURE,northeurope,Standard_E20ds_v6,on_demand,NA,1.83,USD,Azure Retail Prices API,2025-12-18T04:45:29.010505 +AZURE,northeurope,Standard_E20ds_v6,reserved_1y,NA,1.134475,USD,Azure Retail Prices API,2025-12-18T04:45:30.971378 +AZURE,northeurope,Standard_E20ds_v6,reserved_3y,NA,0.713623,USD,Azure Retail Prices API,2025-12-18T04:45:30.971383 +AZURE,northeurope,Standard_E20ds_v6,spot,NA,0.338184,USD,Azure Retail Prices API,2025-12-18T04:45:29.011149 +AZURE,northeurope,Standard_E20s_v4,on_demand,NA,1.41,USD,Azure Retail Prices API,2025-12-18T04:45:29.010139 +AZURE,northeurope,Standard_E20s_v4,reserved_1y,NA,0.829338,USD,Azure Retail Prices API,2025-12-18T04:45:30.970549 +AZURE,northeurope,Standard_E20s_v4,reserved_3y,NA,0.530251,USD,Azure Retail Prices API,2025-12-18T04:45:30.970554 +AZURE,northeurope,Standard_E20s_v4,spot,NA,0.349116,USD,Azure Retail Prices API,2025-12-18T04:45:29.010971 +AZURE,northeurope,Standard_E20s_v5,on_demand,NA,1.41,USD,Azure Retail Prices API,2025-12-18T04:45:29.010968 +AZURE,northeurope,Standard_E20s_v5,reserved_1y,NA,0.817808,USD,Azure Retail Prices API,2025-12-18T04:45:30.972252 +AZURE,northeurope,Standard_E20s_v5,reserved_3y,NA,0.521689,USD,Azure Retail Prices API,2025-12-18T04:45:30.972258 +AZURE,northeurope,Standard_E20s_v5,spot,NA,0.404106,USD,Azure Retail Prices API,2025-12-18T04:45:29.009563 +AZURE,northeurope,Standard_E2_v3,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:45:29.010835 +AZURE,northeurope,Standard_E2_v3,reserved_1y,NA,0.0871,USD,Azure Retail Prices API,2025-12-18T04:45:30.971926 +AZURE,northeurope,Standard_E2_v3,reserved_3y,NA,0.055708,USD,Azure Retail Prices API,2025-12-18T04:45:30.971931 +AZURE,northeurope,Standard_E2_v3,spot,NA,0.035715,USD,Azure Retail Prices API,2025-12-18T04:45:29.010706 +AZURE,northeurope,Standard_E2ads_v6,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:45:29.009876 +AZURE,northeurope,Standard_E2ads_v6,reserved_1y,NA,0.095548,USD,Azure Retail Prices API,2025-12-18T04:45:30.970189 +AZURE,northeurope,Standard_E2ads_v6,reserved_3y,NA,0.061568,USD,Azure Retail Prices API,2025-12-18T04:45:30.970193 +AZURE,northeurope,Standard_E2ads_v6,spot,NA,0.029938,USD,Azure Retail Prices API,2025-12-18T04:45:29.009814 +AZURE,northeurope,Standard_E2ds_v5,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:45:29.009755 +AZURE,northeurope,Standard_E2ds_v5,reserved_1y,NA,0.094406,USD,Azure Retail Prices API,2025-12-18T04:45:30.969962 +AZURE,northeurope,Standard_E2ds_v5,reserved_3y,NA,0.060807,USD,Azure Retail Prices API,2025-12-18T04:45:30.969967 +AZURE,northeurope,Standard_E2ds_v5,spot,NA,0.043472,USD,Azure Retail Prices API,2025-12-18T04:45:29.009654 +AZURE,northeurope,Standard_E2ds_v6,on_demand,NA,0.183,USD,Azure Retail Prices API,2025-12-18T04:45:29.010085 +AZURE,northeurope,Standard_E2ds_v6,reserved_1y,NA,0.11347,USD,Azure Retail Prices API,2025-12-18T04:45:30.970455 +AZURE,northeurope,Standard_E2ds_v6,reserved_3y,NA,0.071347,USD,Azure Retail Prices API,2025-12-18T04:45:30.970460 +AZURE,northeurope,Standard_E2ds_v6,spot,NA,0.033818,USD,Azure Retail Prices API,2025-12-18T04:45:29.010182 +AZURE,northeurope,Standard_E2pds_v6,on_demand,NA,0.131,USD,Azure Retail Prices API,2025-12-18T04:45:29.010876 +AZURE,northeurope,Standard_E2pds_v6,reserved_1y,NA,0.077055,USD,Azure Retail Prices API,2025-12-18T04:45:30.972044 +AZURE,northeurope,Standard_E2pds_v6,reserved_3y,NA,0.049619,USD,Azure Retail Prices API,2025-12-18T04:45:30.972050 +AZURE,northeurope,Standard_E2pds_v6,spot,NA,0.024209,USD,Azure Retail Prices API,2025-12-18T04:45:29.010401 +AZURE,northeurope,Standard_E32_v3,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:45:29.009911 +AZURE,northeurope,Standard_E32_v3,reserved_1y,NA,1.394292,USD,Azure Retail Prices API,2025-12-18T04:45:30.970247 +AZURE,northeurope,Standard_E32_v3,reserved_3y,NA,0.891553,USD,Azure Retail Prices API,2025-12-18T04:45:30.970252 +AZURE,northeurope,Standard_E32_v3,spot,NA,0.571445,USD,Azure Retail Prices API,2025-12-18T04:45:29.009545 +AZURE,northeurope,Standard_E32a_v4,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:45:29.009691 +AZURE,northeurope,Standard_E32a_v4,reserved_1y,NA,1.326027,USD,Azure Retail Prices API,2025-12-18T04:45:30.969850 +AZURE,northeurope,Standard_E32a_v4,reserved_3y,NA,0.84825,USD,Azure Retail Prices API,2025-12-18T04:45:30.969855 +AZURE,northeurope,Standard_E32a_v4,spot,NA,0.482558,USD,Azure Retail Prices API,2025-12-18T04:45:29.010554 +AZURE,northeurope,Standard_E32ads_v5,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:45:29.009761 +AZURE,northeurope,Standard_E32ads_v5,reserved_1y,NA,1.378196,USD,Azure Retail Prices API,2025-12-18T04:45:30.969982 +AZURE,northeurope,Standard_E32ads_v5,reserved_3y,NA,0.887671,USD,Azure Retail Prices API,2025-12-18T04:45:30.969987 +AZURE,northeurope,Standard_E32ads_v5,spot,NA,0.523498,USD,Azure Retail Prices API,2025-12-18T04:45:29.010789 +AZURE,northeurope,Standard_E32ads_v6,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:45:29.010567 +AZURE,northeurope,Standard_E32ads_v6,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:45:30.971440 +AZURE,northeurope,Standard_E32ads_v6,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:45:30.971446 +AZURE,northeurope,Standard_E32ads_v6,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:45:29.010260 +AZURE,northeurope,Standard_E32as_v4,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:45:29.011037 +AZURE,northeurope,Standard_E32as_v4,reserved_1y,NA,1.326027,USD,Azure Retail Prices API,2025-12-18T04:45:30.972343 +AZURE,northeurope,Standard_E32as_v4,reserved_3y,NA,0.84825,USD,Azure Retail Prices API,2025-12-18T04:45:30.972347 +AZURE,northeurope,Standard_E32as_v4,spot,NA,0.482558,USD,Azure Retail Prices API,2025-12-18T04:45:29.010927 +AZURE,northeurope,Standard_E32as_v5,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:45:29.009918 +AZURE,northeurope,Standard_E32as_v5,reserved_1y,NA,1.198858,USD,Azure Retail Prices API,2025-12-18T04:45:30.970266 +AZURE,northeurope,Standard_E32as_v5,reserved_3y,NA,0.772146,USD,Azure Retail Prices API,2025-12-18T04:45:30.970271 +AZURE,northeurope,Standard_E32as_v5,spot,NA,0.455371,USD,Azure Retail Prices API,2025-12-18T04:45:29.011254 +AZURE,northeurope,Standard_E32d_v4,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:45:29.011096 +AZURE,northeurope,Standard_E32d_v4,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:45:30.972373 +AZURE,northeurope,Standard_E32d_v4,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:45:30.972377 +AZURE,northeurope,Standard_E32d_v4,spot,NA,0.633856,USD,Azure Retail Prices API,2025-12-18T04:45:29.010782 +AZURE,northeurope,Standard_E32ds_v4,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:45:29.011292 +AZURE,northeurope,Standard_E32ds_v4,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:45:30.972578 +AZURE,northeurope,Standard_E32ds_v4,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:45:30.972584 +AZURE,northeurope,Standard_E32ds_v4,spot,NA,0.633856,USD,Azure Retail Prices API,2025-12-18T04:45:29.010823 +AZURE,northeurope,Standard_E32ds_v5,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:45:29.010873 +AZURE,northeurope,Standard_E32ds_v5,reserved_1y,NA,1.510388,USD,Azure Retail Prices API,2025-12-18T04:45:30.972033 +AZURE,northeurope,Standard_E32ds_v5,reserved_3y,NA,0.972793,USD,Azure Retail Prices API,2025-12-18T04:45:30.972039 +AZURE,northeurope,Standard_E32ds_v5,spot,NA,0.695552,USD,Azure Retail Prices API,2025-12-18T04:45:29.010703 +AZURE,northeurope,Standard_E32ds_v6,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:45:29.010168 +AZURE,northeurope,Standard_E32ds_v6,reserved_1y,NA,1.815183,USD,Azure Retail Prices API,2025-12-18T04:45:30.970630 +AZURE,northeurope,Standard_E32ds_v6,reserved_3y,NA,1.141781,USD,Azure Retail Prices API,2025-12-18T04:45:30.970636 +AZURE,northeurope,Standard_E32ds_v6,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:45:29.011005 +AZURE,northeurope,Standard_E32pds_v6,on_demand,NA,2.09,USD,Azure Retail Prices API,2025-12-18T04:45:29.011109 +AZURE,northeurope,Standard_E32pds_v6,reserved_1y,NA,1.232877,USD,Azure Retail Prices API,2025-12-18T04:45:30.972394 +AZURE,northeurope,Standard_E32pds_v6,reserved_3y,NA,0.794064,USD,Azure Retail Prices API,2025-12-18T04:45:30.972400 +AZURE,northeurope,Standard_E32pds_v6,spot,NA,0.386232,USD,Azure Retail Prices API,2025-12-18T04:45:29.009532 +AZURE,northeurope,Standard_E32ps_v6,on_demand,NA,1.648,USD,Azure Retail Prices API,2025-12-18T04:45:29.010870 +AZURE,northeurope,Standard_E32ps_v6,reserved_1y,NA,0.972374,USD,Azure Retail Prices API,2025-12-18T04:45:30.972022 +AZURE,northeurope,Standard_E32ps_v6,reserved_3y,NA,0.626256,USD,Azure Retail Prices API,2025-12-18T04:45:30.972027 +AZURE,northeurope,Standard_E32ps_v6,spot,NA,0.30455,USD,Azure Retail Prices API,2025-12-18T04:45:29.010559 +AZURE,northeurope,Standard_E32s_v3,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:45:29.009604 +AZURE,northeurope,Standard_E32s_v3,reserved_1y,NA,1.394292,USD,Azure Retail Prices API,2025-12-18T04:45:30.969652 +AZURE,northeurope,Standard_E32s_v3,reserved_3y,NA,0.891553,USD,Azure Retail Prices API,2025-12-18T04:45:30.969657 +AZURE,northeurope,Standard_E32s_v3,spot,NA,0.571445,USD,Azure Retail Prices API,2025-12-18T04:45:29.010292 +AZURE,northeurope,Standard_E32s_v4,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:45:29.009651 +AZURE,northeurope,Standard_E32s_v4,reserved_1y,NA,1.326484,USD,Azure Retail Prices API,2025-12-18T04:45:30.969759 +AZURE,northeurope,Standard_E32s_v4,reserved_3y,NA,0.84825,USD,Azure Retail Prices API,2025-12-18T04:45:30.969764 +AZURE,northeurope,Standard_E32s_v4,spot,NA,0.558586,USD,Azure Retail Prices API,2025-12-18T04:45:29.011092 +AZURE,northeurope,Standard_E32s_v5,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:45:29.009469 +AZURE,northeurope,Standard_E32s_v5,reserved_1y,NA,1.308447,USD,Azure Retail Prices API,2025-12-18T04:45:30.969411 +AZURE,northeurope,Standard_E32s_v5,reserved_3y,NA,0.834703,USD,Azure Retail Prices API,2025-12-18T04:45:30.969430 +AZURE,northeurope,Standard_E32s_v5,spot,NA,0.64657,USD,Azure Retail Prices API,2025-12-18T04:45:29.010809 +AZURE,northeurope,Standard_E48a_v4,on_demand,NA,3.384,USD,Azure Retail Prices API,2025-12-18T04:45:29.009483 +AZURE,northeurope,Standard_E48a_v4,reserved_1y,NA,1.989041,USD,Azure Retail Prices API,2025-12-18T04:45:30.969448 +AZURE,northeurope,Standard_E48a_v4,reserved_3y,NA,1.272374,USD,Azure Retail Prices API,2025-12-18T04:45:30.969454 +AZURE,northeurope,Standard_E48a_v4,spot,NA,0.723838,USD,Azure Retail Prices API,2025-12-18T04:45:29.010018 +AZURE,northeurope,Standard_E48ads_v5,on_demand,NA,5.712,USD,Azure Retail Prices API,2025-12-18T04:45:29.010027 +AZURE,northeurope,Standard_E48ads_v5,reserved_1y,NA,2.067352,USD,Azure Retail Prices API,2025-12-18T04:45:30.970404 +AZURE,northeurope,Standard_E48ads_v5,reserved_3y,NA,1.331507,USD,Azure Retail Prices API,2025-12-18T04:45:30.970410 +AZURE,northeurope,Standard_E48ads_v5,spot,NA,0.785246,USD,Azure Retail Prices API,2025-12-18T04:45:29.009978 +AZURE,northeurope,Standard_E48ads_v6,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:45:29.010114 +AZURE,northeurope,Standard_E48ads_v6,reserved_1y,NA,2.29395,USD,Azure Retail Prices API,2025-12-18T04:45:30.970502 +AZURE,northeurope,Standard_E48ads_v6,reserved_3y,NA,1.477435,USD,Azure Retail Prices API,2025-12-18T04:45:30.970506 +AZURE,northeurope,Standard_E48ads_v6,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:45:29.010888 +AZURE,northeurope,Standard_E48as_v4,on_demand,NA,3.384,USD,Azure Retail Prices API,2025-12-18T04:45:29.010202 +AZURE,northeurope,Standard_E48as_v4,reserved_1y,NA,1.989041,USD,Azure Retail Prices API,2025-12-18T04:45:30.970843 +AZURE,northeurope,Standard_E48as_v4,reserved_3y,NA,1.272374,USD,Azure Retail Prices API,2025-12-18T04:45:30.970848 +AZURE,northeurope,Standard_E48as_v4,spot,NA,0.723838,USD,Azure Retail Prices API,2025-12-18T04:45:29.010526 +AZURE,northeurope,Standard_E48as_v5,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:45:29.010687 +AZURE,northeurope,Standard_E48as_v5,reserved_1y,NA,1.798288,USD,Azure Retail Prices API,2025-12-18T04:45:30.971684 +AZURE,northeurope,Standard_E48as_v5,reserved_3y,NA,1.158257,USD,Azure Retail Prices API,2025-12-18T04:45:30.971689 +AZURE,northeurope,Standard_E48as_v5,spot,NA,0.683057,USD,Azure Retail Prices API,2025-12-18T04:45:29.009879 +AZURE,northeurope,Standard_E48d_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:29.010699 +AZURE,northeurope,Standard_E48d_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:45:30.971694 +AZURE,northeurope,Standard_E48d_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:45:30.971699 +AZURE,northeurope,Standard_E48d_v4,spot,NA,0.950784,USD,Azure Retail Prices API,2025-12-18T04:45:29.009790 +AZURE,northeurope,Standard_E48ds_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:29.010301 +AZURE,northeurope,Standard_E48ds_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:45:30.970993 +AZURE,northeurope,Standard_E48ds_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:45:30.970998 +AZURE,northeurope,Standard_E48ds_v4,spot,NA,0.950784,USD,Azure Retail Prices API,2025-12-18T04:45:29.011000 +AZURE,northeurope,Standard_E48ds_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:29.009639 +AZURE,northeurope,Standard_E48ds_v5,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:45:30.969740 +AZURE,northeurope,Standard_E48ds_v5,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:45:30.969745 +AZURE,northeurope,Standard_E48ds_v5,spot,NA,1.043328,USD,Azure Retail Prices API,2025-12-18T04:45:29.010696 +AZURE,northeurope,Standard_E48ds_v6,on_demand,NA,4.392,USD,Azure Retail Prices API,2025-12-18T04:45:29.010474 +AZURE,northeurope,Standard_E48ds_v6,reserved_1y,NA,2.722717,USD,Azure Retail Prices API,2025-12-18T04:45:30.971305 +AZURE,northeurope,Standard_E48ds_v6,reserved_3y,NA,1.712709,USD,Azure Retail Prices API,2025-12-18T04:45:30.971311 +AZURE,northeurope,Standard_E48ds_v6,spot,NA,0.811642,USD,Azure Retail Prices API,2025-12-18T04:45:29.009921 +AZURE,northeurope,Standard_E48pds_v6,on_demand,NA,3.134,USD,Azure Retail Prices API,2025-12-18T04:45:29.010094 +AZURE,northeurope,Standard_E48pds_v6,reserved_1y,NA,1.849315,USD,Azure Retail Prices API,2025-12-18T04:45:30.970465 +AZURE,northeurope,Standard_E48pds_v6,reserved_3y,NA,1.191058,USD,Azure Retail Prices API,2025-12-18T04:45:30.970470 +AZURE,northeurope,Standard_E48pds_v6,spot,NA,0.579163,USD,Azure Retail Prices API,2025-12-18T04:45:29.010331 +AZURE,northeurope,Standard_E48ps_v6,on_demand,NA,2.472,USD,Azure Retail Prices API,2025-12-18T04:45:29.010257 +AZURE,northeurope,Standard_E48ps_v6,reserved_1y,NA,1.458447,USD,Azure Retail Prices API,2025-12-18T04:45:30.970934 +AZURE,northeurope,Standard_E48ps_v6,reserved_3y,NA,0.939346,USD,Azure Retail Prices API,2025-12-18T04:45:30.970939 +AZURE,northeurope,Standard_E48ps_v6,spot,NA,0.456826,USD,Azure Retail Prices API,2025-12-18T04:45:29.010924 +AZURE,northeurope,Standard_E48s_v4,on_demand,NA,3.384,USD,Azure Retail Prices API,2025-12-18T04:45:29.010460 +AZURE,northeurope,Standard_E48s_v4,reserved_1y,NA,1.98984,USD,Azure Retail Prices API,2025-12-18T04:45:30.971262 +AZURE,northeurope,Standard_E48s_v4,reserved_3y,NA,1.272374,USD,Azure Retail Prices API,2025-12-18T04:45:30.971267 +AZURE,northeurope,Standard_E48s_v4,spot,NA,0.837878,USD,Azure Retail Prices API,2025-12-18T04:45:29.009856 +AZURE,northeurope,Standard_E48s_v5,on_demand,NA,3.384,USD,Azure Retail Prices API,2025-12-18T04:45:29.010673 +AZURE,northeurope,Standard_E48s_v5,reserved_1y,NA,1.962671,USD,Azure Retail Prices API,2025-12-18T04:45:30.971625 +AZURE,northeurope,Standard_E48s_v5,reserved_3y,NA,1.252093,USD,Azure Retail Prices API,2025-12-18T04:45:30.971630 +AZURE,northeurope,Standard_E48s_v5,spot,NA,0.969854,USD,Azure Retail Prices API,2025-12-18T04:45:29.010227 +AZURE,northeurope,Standard_E4_v3,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:45:29.009663 +AZURE,northeurope,Standard_E4_v3,reserved_1y,NA,0.174315,USD,Azure Retail Prices API,2025-12-18T04:45:30.969777 +AZURE,northeurope,Standard_E4_v3,reserved_3y,NA,0.111454,USD,Azure Retail Prices API,2025-12-18T04:45:30.969781 +AZURE,northeurope,Standard_E4_v3,spot,NA,0.071431,USD,Azure Retail Prices API,2025-12-18T04:45:29.010280 +AZURE,northeurope,Standard_E4a_v4,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:45:29.010921 +AZURE,northeurope,Standard_E4a_v4,reserved_1y,NA,0.165753,USD,Azure Retail Prices API,2025-12-18T04:45:30.972148 +AZURE,northeurope,Standard_E4a_v4,reserved_3y,NA,0.10605,USD,Azure Retail Prices API,2025-12-18T04:45:30.972153 +AZURE,northeurope,Standard_E4a_v4,spot,NA,0.06032,USD,Azure Retail Prices API,2025-12-18T04:45:29.010188 +AZURE,northeurope,Standard_E4ads_v5,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:45:29.009888 +AZURE,northeurope,Standard_E4ads_v5,reserved_1y,NA,0.17226,USD,Azure Retail Prices API,2025-12-18T04:45:30.970208 +AZURE,northeurope,Standard_E4ads_v5,reserved_3y,NA,0.110959,USD,Azure Retail Prices API,2025-12-18T04:45:30.970213 +AZURE,northeurope,Standard_E4ads_v5,spot,NA,0.065437,USD,Azure Retail Prices API,2025-12-18T04:45:29.010152 +AZURE,northeurope,Standard_E4ads_v6,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:45:29.009742 +AZURE,northeurope,Standard_E4ads_v6,reserved_1y,NA,0.19121,USD,Azure Retail Prices API,2025-12-18T04:45:30.969934 +AZURE,northeurope,Standard_E4ads_v6,reserved_3y,NA,0.123135,USD,Azure Retail Prices API,2025-12-18T04:45:30.969939 +AZURE,northeurope,Standard_E4ads_v6,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:45:29.010633 +AZURE,northeurope,Standard_E4as_v4,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:45:29.010897 +AZURE,northeurope,Standard_E4as_v4,reserved_1y,NA,0.165753,USD,Azure Retail Prices API,2025-12-18T04:45:30.972094 +AZURE,northeurope,Standard_E4as_v4,reserved_3y,NA,0.10605,USD,Azure Retail Prices API,2025-12-18T04:45:30.972098 +AZURE,northeurope,Standard_E4as_v4,spot,NA,0.06032,USD,Azure Retail Prices API,2025-12-18T04:45:29.010815 +AZURE,northeurope,Standard_E4as_v5,on_demand,NA,0.438,USD,Azure Retail Prices API,2025-12-18T04:45:29.010143 +AZURE,northeurope,Standard_E4as_v5,reserved_1y,NA,0.149886,USD,Azure Retail Prices API,2025-12-18T04:45:30.971160 +AZURE,northeurope,Standard_E4as_v5,reserved_3y,NA,0.096537,USD,Azure Retail Prices API,2025-12-18T04:45:30.971165 +AZURE,northeurope,Standard_E4as_v5,spot,NA,0.056921,USD,Azure Retail Prices API,2025-12-18T04:45:29.011318 +AZURE,northeurope,Standard_E4d_v4,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:45:29.010849 +AZURE,northeurope,Standard_E4d_v4,reserved_1y,NA,0.188128,USD,Azure Retail Prices API,2025-12-18T04:45:30.971954 +AZURE,northeurope,Standard_E4d_v4,reserved_3y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:45:30.971958 +AZURE,northeurope,Standard_E4d_v4,spot,NA,0.079232,USD,Azure Retail Prices API,2025-12-18T04:45:29.010641 +AZURE,northeurope,Standard_E4ds_v4,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:45:29.009853 +AZURE,northeurope,Standard_E4ds_v4,reserved_1y,NA,0.188128,USD,Azure Retail Prices API,2025-12-18T04:45:30.970128 +AZURE,northeurope,Standard_E4ds_v4,reserved_3y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:45:30.970134 +AZURE,northeurope,Standard_E4ds_v4,spot,NA,0.079232,USD,Azure Retail Prices API,2025-12-18T04:45:29.010684 +AZURE,northeurope,Standard_E4ds_v5,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:45:29.009724 +AZURE,northeurope,Standard_E4ds_v5,reserved_1y,NA,0.188813,USD,Azure Retail Prices API,2025-12-18T04:45:30.969907 +AZURE,northeurope,Standard_E4ds_v5,reserved_3y,NA,0.121613,USD,Azure Retail Prices API,2025-12-18T04:45:30.969911 +AZURE,northeurope,Standard_E4ds_v5,spot,NA,0.086944,USD,Azure Retail Prices API,2025-12-18T04:45:29.010865 +AZURE,northeurope,Standard_E4ds_v6,on_demand,NA,0.366,USD,Azure Retail Prices API,2025-12-18T04:45:29.010488 +AZURE,northeurope,Standard_E4ds_v6,reserved_1y,NA,0.226941,USD,Azure Retail Prices API,2025-12-18T04:45:30.971337 +AZURE,northeurope,Standard_E4ds_v6,reserved_3y,NA,0.142732,USD,Azure Retail Prices API,2025-12-18T04:45:30.971342 +AZURE,northeurope,Standard_E4ds_v6,spot,NA,0.067637,USD,Azure Retail Prices API,2025-12-18T04:45:29.011329 +AZURE,northeurope,Standard_E4pds_v6,on_demand,NA,0.261,USD,Azure Retail Prices API,2025-12-18T04:45:29.009680 +AZURE,northeurope,Standard_E4pds_v6,reserved_1y,NA,0.15411,USD,Azure Retail Prices API,2025-12-18T04:45:30.969823 +AZURE,northeurope,Standard_E4pds_v6,reserved_3y,NA,0.099239,USD,Azure Retail Prices API,2025-12-18T04:45:30.969827 +AZURE,northeurope,Standard_E4pds_v6,spot,NA,0.048233,USD,Azure Retail Prices API,2025-12-18T04:45:29.010605 +AZURE,northeurope,Standard_E4ps_v6,on_demand,NA,0.206,USD,Azure Retail Prices API,2025-12-18T04:45:29.010199 +AZURE,northeurope,Standard_E4ps_v6,reserved_1y,NA,0.121575,USD,Azure Retail Prices API,2025-12-18T04:45:30.970833 +AZURE,northeurope,Standard_E4ps_v6,reserved_3y,NA,0.078272,USD,Azure Retail Prices API,2025-12-18T04:45:30.970838 +AZURE,northeurope,Standard_E4ps_v6,spot,NA,0.038069,USD,Azure Retail Prices API,2025-12-18T04:45:29.009973 +AZURE,northeurope,Standard_E4s_v4,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:45:29.010398 +AZURE,northeurope,Standard_E4s_v4,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:45:30.971170 +AZURE,northeurope,Standard_E4s_v4,reserved_3y,NA,0.10605,USD,Azure Retail Prices API,2025-12-18T04:45:30.971175 +AZURE,northeurope,Standard_E4s_v4,spot,NA,0.069823,USD,Azure Retail Prices API,2025-12-18T04:45:29.010627 +AZURE,northeurope,Standard_E4s_v5,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:45:29.009894 +AZURE,northeurope,Standard_E4s_v5,reserved_1y,NA,0.163584,USD,Azure Retail Prices API,2025-12-18T04:45:30.970228 +AZURE,northeurope,Standard_E4s_v5,reserved_3y,NA,0.104338,USD,Azure Retail Prices API,2025-12-18T04:45:30.970232 +AZURE,northeurope,Standard_E4s_v5,spot,NA,0.080821,USD,Azure Retail Prices API,2025-12-18T04:45:29.010792 +AZURE,northeurope,Standard_E64_v3,on_demand,NA,4.061,USD,Azure Retail Prices API,2025-12-18T04:45:29.009718 +AZURE,northeurope,Standard_E64_v3,reserved_1y,NA,2.628196,USD,Azure Retail Prices API,2025-12-18T04:45:30.969897 +AZURE,northeurope,Standard_E64_v3,reserved_3y,NA,1.680594,USD,Azure Retail Prices API,2025-12-18T04:45:30.969902 +AZURE,northeurope,Standard_E64_v3,spot,NA,1.028651,USD,Azure Retail Prices API,2025-12-18T04:45:29.011052 +AZURE,northeurope,Standard_E64a_v4,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:45:29.010638 +AZURE,northeurope,Standard_E64a_v4,reserved_1y,NA,2.652055,USD,Azure Retail Prices API,2025-12-18T04:45:30.971555 +AZURE,northeurope,Standard_E64a_v4,reserved_3y,NA,1.696499,USD,Azure Retail Prices API,2025-12-18T04:45:30.971560 +AZURE,northeurope,Standard_E64a_v4,spot,NA,0.965117,USD,Azure Retail Prices API,2025-12-18T04:45:29.009935 +AZURE,northeurope,Standard_E64ads_v5,on_demand,NA,7.616,USD,Azure Retail Prices API,2025-12-18T04:45:29.009799 +AZURE,northeurope,Standard_E64ads_v5,reserved_1y,NA,2.756507,USD,Azure Retail Prices API,2025-12-18T04:45:30.971043 +AZURE,northeurope,Standard_E64ads_v5,reserved_3y,NA,1.775342,USD,Azure Retail Prices API,2025-12-18T04:45:30.971048 +AZURE,northeurope,Standard_E64ads_v5,spot,NA,1.046995,USD,Azure Retail Prices API,2025-12-18T04:45:29.010690 +AZURE,northeurope,Standard_E64ads_v6,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:45:29.011393 +AZURE,northeurope,Standard_E64ads_v6,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:45:30.972658 +AZURE,northeurope,Standard_E64ads_v6,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:45:30.972664 +AZURE,northeurope,Standard_E64ads_v6,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:45:29.011233 +AZURE,northeurope,Standard_E64as_v4,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:45:29.010621 +AZURE,northeurope,Standard_E64as_v4,reserved_1y,NA,2.652055,USD,Azure Retail Prices API,2025-12-18T04:45:30.971536 +AZURE,northeurope,Standard_E64as_v4,reserved_3y,NA,1.696499,USD,Azure Retail Prices API,2025-12-18T04:45:30.971541 +AZURE,northeurope,Standard_E64as_v4,spot,NA,0.965117,USD,Azure Retail Prices API,2025-12-18T04:45:29.011454 +AZURE,northeurope,Standard_E64as_v5,on_demand,NA,4.064,USD,Azure Retail Prices API,2025-12-18T04:45:29.009584 +AZURE,northeurope,Standard_E64as_v5,reserved_1y,NA,2.397717,USD,Azure Retail Prices API,2025-12-18T04:45:30.969629 +AZURE,northeurope,Standard_E64as_v5,reserved_3y,NA,1.54433,USD,Azure Retail Prices API,2025-12-18T04:45:30.969635 +AZURE,northeurope,Standard_E64as_v5,spot,NA,0.910742,USD,Azure Retail Prices API,2025-12-18T04:45:29.009721 +AZURE,northeurope,Standard_E64d_v4,on_demand,NA,5.12,USD,Azure Retail Prices API,2025-12-18T04:45:29.009575 +AZURE,northeurope,Standard_E64d_v4,reserved_1y,NA,3.010616,USD,Azure Retail Prices API,2025-12-18T04:45:30.969548 +AZURE,northeurope,Standard_E64d_v4,reserved_3y,NA,1.925114,USD,Azure Retail Prices API,2025-12-18T04:45:30.969553 +AZURE,northeurope,Standard_E64d_v4,spot,NA,1.267712,USD,Azure Retail Prices API,2025-12-18T04:45:29.009590 +AZURE,northeurope,Standard_E64ds_v4,on_demand,NA,5.12,USD,Azure Retail Prices API,2025-12-18T04:45:29.011043 +AZURE,northeurope,Standard_E64ds_v4,reserved_1y,NA,3.010616,USD,Azure Retail Prices API,2025-12-18T04:45:30.972352 +AZURE,northeurope,Standard_E64ds_v4,reserved_3y,NA,1.925114,USD,Azure Retail Prices API,2025-12-18T04:45:30.972357 +AZURE,northeurope,Standard_E64ds_v4,spot,NA,1.267712,USD,Azure Retail Prices API,2025-12-18T04:45:29.009526 +AZURE,northeurope,Standard_E64ds_v5,on_demand,NA,5.12,USD,Azure Retail Prices API,2025-12-18T04:45:29.009829 +AZURE,northeurope,Standard_E64ds_v5,reserved_1y,NA,3.020776,USD,Azure Retail Prices API,2025-12-18T04:45:30.970069 +AZURE,northeurope,Standard_E64ds_v5,reserved_3y,NA,1.945586,USD,Azure Retail Prices API,2025-12-18T04:45:30.970074 +AZURE,northeurope,Standard_E64ds_v5,spot,NA,1.391104,USD,Azure Retail Prices API,2025-12-18T04:45:29.009785 +AZURE,northeurope,Standard_E64ds_v6,on_demand,NA,5.855,USD,Azure Retail Prices API,2025-12-18T04:45:29.010334 +AZURE,northeurope,Standard_E64ds_v6,reserved_1y,NA,3.630365,USD,Azure Retail Prices API,2025-12-18T04:45:30.971034 +AZURE,northeurope,Standard_E64ds_v6,reserved_3y,NA,2.2836,USD,Azure Retail Prices API,2025-12-18T04:45:30.971038 +AZURE,northeurope,Standard_E64ds_v6,spot,NA,1.082004,USD,Azure Retail Prices API,2025-12-18T04:45:29.009506 +AZURE,northeurope,Standard_E64pds_v6,on_demand,NA,4.179,USD,Azure Retail Prices API,2025-12-18T04:45:29.010852 +AZURE,northeurope,Standard_E64pds_v6,reserved_1y,NA,2.465753,USD,Azure Retail Prices API,2025-12-18T04:45:30.971962 +AZURE,northeurope,Standard_E64pds_v6,reserved_3y,NA,1.58809,USD,Azure Retail Prices API,2025-12-18T04:45:30.971967 +AZURE,northeurope,Standard_E64pds_v6,spot,NA,0.772279,USD,Azure Retail Prices API,2025-12-18T04:45:29.010319 +AZURE,northeurope,Standard_E64ps_v6,on_demand,NA,3.296,USD,Azure Retail Prices API,2025-12-18T04:45:29.011470 +AZURE,northeurope,Standard_E64ps_v6,reserved_1y,NA,1.944635,USD,Azure Retail Prices API,2025-12-18T04:45:30.972720 +AZURE,northeurope,Standard_E64ps_v6,reserved_3y,NA,1.252473,USD,Azure Retail Prices API,2025-12-18T04:45:30.972725 +AZURE,northeurope,Standard_E64ps_v6,spot,NA,0.609101,USD,Azure Retail Prices API,2025-12-18T04:45:29.010939 +AZURE,northeurope,Standard_E64s_v3,on_demand,NA,4.061,USD,Azure Retail Prices API,2025-12-18T04:45:29.010933 +AZURE,northeurope,Standard_E64s_v3,reserved_1y,NA,2.628196,USD,Azure Retail Prices API,2025-12-18T04:45:30.972160 +AZURE,northeurope,Standard_E64s_v3,reserved_3y,NA,1.680594,USD,Azure Retail Prices API,2025-12-18T04:45:30.972166 +AZURE,northeurope,Standard_E64s_v3,spot,NA,1.028651,USD,Azure Retail Prices API,2025-12-18T04:45:29.010137 +AZURE,northeurope,Standard_E64s_v4,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:45:29.009616 +AZURE,northeurope,Standard_E64s_v4,reserved_1y,NA,2.653082,USD,Azure Retail Prices API,2025-12-18T04:45:30.969695 +AZURE,northeurope,Standard_E64s_v4,reserved_3y,NA,1.696499,USD,Azure Retail Prices API,2025-12-18T04:45:30.969700 +AZURE,northeurope,Standard_E64s_v4,spot,NA,1.117171,USD,Azure Retail Prices API,2025-12-18T04:45:29.010031 +AZURE,northeurope,Standard_E64s_v5,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:45:29.009745 +AZURE,northeurope,Standard_E64s_v5,reserved_1y,NA,2.617009,USD,Azure Retail Prices API,2025-12-18T04:45:30.969944 +AZURE,northeurope,Standard_E64s_v5,reserved_3y,NA,1.669444,USD,Azure Retail Prices API,2025-12-18T04:45:30.969949 +AZURE,northeurope,Standard_E64s_v5,spot,NA,1.293139,USD,Azure Retail Prices API,2025-12-18T04:45:29.009933 +AZURE,northeurope,Standard_E80ids_v4,on_demand,NA,6.4,USD,Azure Retail Prices API,2025-12-18T04:45:29.009953 +AZURE,northeurope,Standard_E80ids_v4,reserved_1y,NA,3.762557,USD,Azure Retail Prices API,2025-12-18T04:45:30.970305 +AZURE,northeurope,Standard_E80ids_v4,reserved_3y,NA,2.406393,USD,Azure Retail Prices API,2025-12-18T04:45:30.970310 +AZURE,northeurope,Standard_E80ids_v4,spot,NA,1.58464,USD,Azure Retail Prices API,2025-12-18T04:45:29.010514 +AZURE,northeurope,Standard_E80is_v4,on_demand,NA,5.64,USD,Azure Retail Prices API,2025-12-18T04:45:29.009868 +AZURE,northeurope,Standard_E80is_v4,reserved_1y,NA,3.317352,USD,Azure Retail Prices API,2025-12-18T04:45:30.970158 +AZURE,northeurope,Standard_E80is_v4,reserved_3y,NA,2.121005,USD,Azure Retail Prices API,2025-12-18T04:45:30.970163 +AZURE,northeurope,Standard_E80is_v4,spot,NA,1.396464,USD,Azure Retail Prices API,2025-12-18T04:45:29.010263 +AZURE,northeurope,Standard_E8_v3,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:45:29.011127 +AZURE,northeurope,Standard_E8_v3,reserved_1y,NA,0.348516,USD,Azure Retail Prices API,2025-12-18T04:45:30.972418 +AZURE,northeurope,Standard_E8_v3,reserved_3y,NA,0.222907,USD,Azure Retail Prices API,2025-12-18T04:45:30.972423 +AZURE,northeurope,Standard_E8_v3,spot,NA,0.142861,USD,Azure Retail Prices API,2025-12-18T04:45:29.010752 +AZURE,northeurope,Standard_E8a_v4,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:45:29.009817 +AZURE,northeurope,Standard_E8a_v4,reserved_1y,NA,0.331507,USD,Azure Retail Prices API,2025-12-18T04:45:30.970050 +AZURE,northeurope,Standard_E8a_v4,reserved_3y,NA,0.212062,USD,Azure Retail Prices API,2025-12-18T04:45:30.970055 +AZURE,northeurope,Standard_E8a_v4,spot,NA,0.12064,USD,Azure Retail Prices API,2025-12-18T04:45:29.009648 +AZURE,northeurope,Standard_E8ads_v5,on_demand,NA,0.952,USD,Azure Retail Prices API,2025-12-18T04:45:29.009700 +AZURE,northeurope,Standard_E8ads_v5,reserved_1y,NA,0.344521,USD,Azure Retail Prices API,2025-12-18T04:45:30.970060 +AZURE,northeurope,Standard_E8ads_v5,reserved_3y,NA,0.221918,USD,Azure Retail Prices API,2025-12-18T04:45:30.970065 +AZURE,northeurope,Standard_E8ads_v5,spot,NA,0.130874,USD,Azure Retail Prices API,2025-12-18T04:45:29.011449 +AZURE,northeurope,Standard_E8ads_v6,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:45:29.009862 +AZURE,northeurope,Standard_E8ads_v6,reserved_1y,NA,0.382306,USD,Azure Retail Prices API,2025-12-18T04:45:30.970147 +AZURE,northeurope,Standard_E8ads_v6,reserved_3y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:45:30.970152 +AZURE,northeurope,Standard_E8ads_v6,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:45:29.009802 +AZURE,northeurope,Standard_E8as_v4,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:45:29.009811 +AZURE,northeurope,Standard_E8as_v4,reserved_1y,NA,0.331507,USD,Azure Retail Prices API,2025-12-18T04:45:30.970040 +AZURE,northeurope,Standard_E8as_v4,reserved_3y,NA,0.212062,USD,Azure Retail Prices API,2025-12-18T04:45:30.970045 +AZURE,northeurope,Standard_E8as_v4,spot,NA,0.12064,USD,Azure Retail Prices API,2025-12-18T04:45:29.009820 +AZURE,northeurope,Standard_E8as_v5,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:45:29.010266 +AZURE,northeurope,Standard_E8as_v5,reserved_1y,NA,0.299772,USD,Azure Retail Prices API,2025-12-18T04:45:30.970944 +AZURE,northeurope,Standard_E8as_v5,reserved_3y,NA,0.193037,USD,Azure Retail Prices API,2025-12-18T04:45:30.970949 +AZURE,northeurope,Standard_E8as_v5,spot,NA,0.113843,USD,Azure Retail Prices API,2025-12-18T04:45:29.009569 +AZURE,northeurope,Standard_E8d_v4,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:45:29.009796 +AZURE,northeurope,Standard_E8d_v4,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:45:30.970030 +AZURE,northeurope,Standard_E8d_v4,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:45:30.970035 +AZURE,northeurope,Standard_E8d_v4,spot,NA,0.158464,USD,Azure Retail Prices API,2025-12-18T04:45:29.010535 +AZURE,northeurope,Standard_E8ds_v4,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:45:29.010154 +AZURE,northeurope,Standard_E8ds_v4,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:45:30.970579 +AZURE,northeurope,Standard_E8ds_v4,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:45:30.970584 +AZURE,northeurope,Standard_E8ds_v4,spot,NA,0.158464,USD,Azure Retail Prices API,2025-12-18T04:45:29.009989 +AZURE,northeurope,Standard_E8ds_v5,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:45:29.009548 +AZURE,northeurope,Standard_E8ds_v5,reserved_1y,NA,0.377626,USD,Azure Retail Prices API,2025-12-18T04:45:30.969514 +AZURE,northeurope,Standard_E8ds_v5,reserved_3y,NA,0.243189,USD,Azure Retail Prices API,2025-12-18T04:45:30.969519 +AZURE,northeurope,Standard_E8ds_v5,spot,NA,0.173888,USD,Azure Retail Prices API,2025-12-18T04:45:29.010221 +AZURE,northeurope,Standard_E8ds_v6,on_demand,NA,0.732,USD,Azure Retail Prices API,2025-12-18T04:45:29.010591 +AZURE,northeurope,Standard_E8ds_v6,reserved_1y,NA,0.453767,USD,Azure Retail Prices API,2025-12-18T04:45:30.971482 +AZURE,northeurope,Standard_E8ds_v6,reserved_3y,NA,0.285464,USD,Azure Retail Prices API,2025-12-18T04:45:30.971487 +AZURE,northeurope,Standard_E8ds_v6,spot,NA,0.135274,USD,Azure Retail Prices API,2025-12-18T04:45:29.010959 +AZURE,northeurope,Standard_E8pds_v6,on_demand,NA,0.522,USD,Azure Retail Prices API,2025-12-18T04:45:29.010008 +AZURE,northeurope,Standard_E8pds_v6,reserved_1y,NA,0.308219,USD,Azure Retail Prices API,2025-12-18T04:45:30.970355 +AZURE,northeurope,Standard_E8pds_v6,reserved_3y,NA,0.198516,USD,Azure Retail Prices API,2025-12-18T04:45:30.970361 +AZURE,northeurope,Standard_E8pds_v6,spot,NA,0.096466,USD,Azure Retail Prices API,2025-12-18T04:45:29.010682 +AZURE,northeurope,Standard_E8ps_v6,on_demand,NA,0.412,USD,Azure Retail Prices API,2025-12-18T04:45:29.011323 +AZURE,northeurope,Standard_E8ps_v6,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:45:30.972601 +AZURE,northeurope,Standard_E8ps_v6,reserved_3y,NA,0.156545,USD,Azure Retail Prices API,2025-12-18T04:45:30.972607 +AZURE,northeurope,Standard_E8ps_v6,spot,NA,0.076138,USD,Azure Retail Prices API,2025-12-18T04:45:29.009503 +AZURE,northeurope,Standard_E8s_v3,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:45:29.011302 +AZURE,northeurope,Standard_E8s_v3,reserved_1y,NA,0.348516,USD,Azure Retail Prices API,2025-12-18T04:45:30.972590 +AZURE,northeurope,Standard_E8s_v3,reserved_3y,NA,0.222907,USD,Azure Retail Prices API,2025-12-18T04:45:30.972595 +AZURE,northeurope,Standard_E8s_v3,spot,NA,0.142861,USD,Azure Retail Prices API,2025-12-18T04:45:29.010837 +AZURE,northeurope,Standard_E8s_v4,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:45:29.009674 +AZURE,northeurope,Standard_E8s_v4,reserved_1y,NA,0.331621,USD,Azure Retail Prices API,2025-12-18T04:45:30.969814 +AZURE,northeurope,Standard_E8s_v4,reserved_3y,NA,0.212062,USD,Azure Retail Prices API,2025-12-18T04:45:30.969818 +AZURE,northeurope,Standard_E8s_v4,spot,NA,0.139646,USD,Azure Retail Prices API,2025-12-18T04:45:29.009823 +AZURE,northeurope,Standard_E8s_v5,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:45:29.010776 +AZURE,northeurope,Standard_E8s_v5,reserved_1y,NA,0.327169,USD,Azure Retail Prices API,2025-12-18T04:45:30.971864 +AZURE,northeurope,Standard_E8s_v5,reserved_3y,NA,0.208676,USD,Azure Retail Prices API,2025-12-18T04:45:30.971871 +AZURE,northeurope,Standard_E8s_v5,spot,NA,0.161642,USD,Azure Retail Prices API,2025-12-18T04:45:29.010013 +AZURE,northeurope,Standard_E96a_v4,on_demand,NA,6.768,USD,Azure Retail Prices API,2025-12-18T04:45:29.009630 +AZURE,northeurope,Standard_E96a_v4,reserved_1y,NA,3.978082,USD,Azure Retail Prices API,2025-12-18T04:45:30.969722 +AZURE,northeurope,Standard_E96a_v4,reserved_3y,NA,2.544787,USD,Azure Retail Prices API,2025-12-18T04:45:30.969727 +AZURE,northeurope,Standard_E96a_v4,spot,NA,1.447675,USD,Azure Retail Prices API,2025-12-18T04:45:29.009770 +AZURE,northeurope,Standard_E96ads_v5,on_demand,NA,11.424,USD,Azure Retail Prices API,2025-12-18T04:45:29.010056 +AZURE,northeurope,Standard_E96ads_v5,reserved_1y,NA,4.134703,USD,Azure Retail Prices API,2025-12-18T04:45:30.970589 +AZURE,northeurope,Standard_E96ads_v5,reserved_3y,NA,2.663052,USD,Azure Retail Prices API,2025-12-18T04:45:30.970594 +AZURE,northeurope,Standard_E96ads_v5,spot,NA,1.570493,USD,Azure Retail Prices API,2025-12-18T04:45:29.010803 +AZURE,northeurope,Standard_E96ads_v6,on_demand,NA,7.776,USD,Azure Retail Prices API,2025-12-18T04:45:29.010352 +AZURE,northeurope,Standard_E96ads_v6,reserved_1y,NA,4.587785,USD,Azure Retail Prices API,2025-12-18T04:45:30.971113 +AZURE,northeurope,Standard_E96ads_v6,reserved_3y,NA,2.954871,USD,Azure Retail Prices API,2025-12-18T04:45:30.971117 +AZURE,northeurope,Standard_E96ads_v6,spot,NA,1.437005,USD,Azure Retail Prices API,2025-12-18T04:45:29.009959 +AZURE,northeurope,Standard_E96as_v4,on_demand,NA,6.768,USD,Azure Retail Prices API,2025-12-18T04:45:29.010980 +AZURE,northeurope,Standard_E96as_v4,reserved_1y,NA,3.978082,USD,Azure Retail Prices API,2025-12-18T04:45:30.972286 +AZURE,northeurope,Standard_E96as_v4,reserved_3y,NA,2.544787,USD,Azure Retail Prices API,2025-12-18T04:45:30.972292 +AZURE,northeurope,Standard_E96as_v4,spot,NA,1.447675,USD,Azure Retail Prices API,2025-12-18T04:45:29.009560 +AZURE,northeurope,Standard_E96as_v5,on_demand,NA,10.512,USD,Azure Retail Prices API,2025-12-18T04:45:29.010224 +AZURE,northeurope,Standard_E96as_v5,reserved_1y,NA,3.596689,USD,Azure Retail Prices API,2025-12-18T04:45:30.972084 +AZURE,northeurope,Standard_E96as_v5,reserved_3y,NA,2.316476,USD,Azure Retail Prices API,2025-12-18T04:45:30.972089 +AZURE,northeurope,Standard_E96as_v5,spot,NA,1.366114,USD,Azure Retail Prices API,2025-12-18T04:45:29.010100 +AZURE,northeurope,Standard_E96ds_v5,on_demand,NA,7.68,USD,Azure Retail Prices API,2025-12-18T04:45:29.010436 +AZURE,northeurope,Standard_E96ds_v5,reserved_1y,NA,4.531164,USD,Azure Retail Prices API,2025-12-18T04:45:30.971232 +AZURE,northeurope,Standard_E96ds_v5,reserved_3y,NA,2.918417,USD,Azure Retail Prices API,2025-12-18T04:45:30.971237 +AZURE,northeurope,Standard_E96ds_v5,spot,NA,2.086656,USD,Azure Retail Prices API,2025-12-18T04:45:29.011048 +AZURE,northeurope,Standard_E96ds_v6,on_demand,NA,8.783,USD,Azure Retail Prices API,2025-12-18T04:45:29.011157 +AZURE,northeurope,Standard_E96ds_v6,reserved_1y,NA,5.445434,USD,Azure Retail Prices API,2025-12-18T04:45:30.972452 +AZURE,northeurope,Standard_E96ds_v6,reserved_3y,NA,3.425381,USD,Azure Retail Prices API,2025-12-18T04:45:30.972457 +AZURE,northeurope,Standard_E96ds_v6,spot,NA,1.623098,USD,Azure Retail Prices API,2025-12-18T04:45:29.010337 +AZURE,northeurope,Standard_E96pds_v6,on_demand,NA,6.269,USD,Azure Retail Prices API,2025-12-18T04:45:29.010179 +AZURE,northeurope,Standard_E96pds_v6,reserved_1y,NA,3.69863,USD,Azure Retail Prices API,2025-12-18T04:45:30.970814 +AZURE,northeurope,Standard_E96pds_v6,reserved_3y,NA,2.382154,USD,Azure Retail Prices API,2025-12-18T04:45:30.970819 +AZURE,northeurope,Standard_E96pds_v6,spot,NA,1.158511,USD,Azure Retail Prices API,2025-12-18T04:45:29.009947 +AZURE,northeurope,Standard_E96ps_v6,on_demand,NA,4.944,USD,Azure Retail Prices API,2025-12-18T04:45:29.010918 +AZURE,northeurope,Standard_E96ps_v6,reserved_1y,NA,2.917009,USD,Azure Retail Prices API,2025-12-18T04:45:30.972138 +AZURE,northeurope,Standard_E96ps_v6,reserved_3y,NA,1.878729,USD,Azure Retail Prices API,2025-12-18T04:45:30.972143 +AZURE,northeurope,Standard_E96ps_v6,spot,NA,0.913651,USD,Azure Retail Prices API,2025-12-18T04:45:29.010948 +AZURE,northeurope,Standard_E96s_v5,on_demand,NA,6.768,USD,Azure Retail Prices API,2025-12-18T04:45:29.010538 +AZURE,northeurope,Standard_E96s_v5,reserved_1y,NA,3.925457,USD,Azure Retail Prices API,2025-12-18T04:45:30.971399 +AZURE,northeurope,Standard_E96s_v5,reserved_3y,NA,2.504148,USD,Azure Retail Prices API,2025-12-18T04:45:30.971404 +AZURE,northeurope,Standard_E96s_v5,spot,NA,1.939709,USD,Azure Retail Prices API,2025-12-18T04:45:29.009592 +AZURE,northeurope,Standard_EC16ads_v5,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:45:29.011431 +AZURE,northeurope,Standard_EC16ads_v5,reserved_1y,NA,0.934361,USD,Azure Retail Prices API,2025-12-18T04:45:30.972681 +AZURE,northeurope,Standard_EC16ads_v5,reserved_3y,NA,0.700799,USD,Azure Retail Prices API,2025-12-18T04:45:30.972687 +AZURE,northeurope,Standard_EC16ads_v5,spot,NA,0.220402,USD,Azure Retail Prices API,2025-12-18T04:45:29.010520 +AZURE,northeurope,Standard_EC16ads_v6,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:45:29.010618 +AZURE,northeurope,Standard_EC16ads_v6,reserved_1y,NA,0.764612,USD,Azure Retail Prices API,2025-12-18T04:45:30.971525 +AZURE,northeurope,Standard_EC16ads_v6,reserved_3y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:45:30.971531 +AZURE,northeurope,Standard_EC16ads_v6,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:45:29.011409 +AZURE,northeurope,Standard_EC16as_v5,on_demand,NA,1.016,USD,Azure Retail Prices API,2025-12-18T04:45:29.010313 +AZURE,northeurope,Standard_EC16as_v5,reserved_1y,NA,0.812785,USD,Azure Retail Prices API,2025-12-18T04:45:30.971003 +AZURE,northeurope,Standard_EC16as_v5,reserved_3y,NA,0.609589,USD,Azure Retail Prices API,2025-12-18T04:45:30.971008 +AZURE,northeurope,Standard_EC16as_v5,spot,NA,0.191719,USD,Azure Retail Prices API,2025-12-18T04:45:29.010749 +AZURE,northeurope,Standard_EC16as_v6,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:45:29.009636 +AZURE,northeurope,Standard_EC16as_v6,reserved_1y,NA,0.62774,USD,Azure Retail Prices API,2025-12-18T04:45:30.969731 +AZURE,northeurope,Standard_EC16as_v6,reserved_3y,NA,0.404338,USD,Azure Retail Prices API,2025-12-18T04:45:30.969736 +AZURE,northeurope,Standard_EC16as_v6,spot,NA,0.196627,USD,Azure Retail Prices API,2025-12-18T04:45:29.011522 +AZURE,northeurope,Standard_EC20ads_v5,on_demand,NA,1.46,USD,Azure Retail Prices API,2025-12-18T04:45:29.010162 +AZURE,northeurope,Standard_EC20ads_v5,reserved_1y,NA,1.168037,USD,Azure Retail Prices API,2025-12-18T04:45:30.970611 +AZURE,northeurope,Standard_EC20ads_v5,reserved_3y,NA,0.875989,USD,Azure Retail Prices API,2025-12-18T04:45:30.970616 +AZURE,northeurope,Standard_EC20ads_v5,spot,NA,0.275502,USD,Azure Retail Prices API,2025-12-18T04:45:29.010600 +AZURE,northeurope,Standard_EC20as_v5,on_demand,NA,1.27,USD,Azure Retail Prices API,2025-12-18T04:45:29.010160 +AZURE,northeurope,Standard_EC20as_v5,reserved_1y,NA,1.015982,USD,Azure Retail Prices API,2025-12-18T04:45:30.970600 +AZURE,northeurope,Standard_EC20as_v5,reserved_3y,NA,0.761986,USD,Azure Retail Prices API,2025-12-18T04:45:30.970605 +AZURE,northeurope,Standard_EC20as_v5,spot,NA,0.239649,USD,Azure Retail Prices API,2025-12-18T04:45:29.010846 +AZURE,northeurope,Standard_EC2ads_v6,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:45:29.009764 +AZURE,northeurope,Standard_EC2ads_v6,reserved_1y,NA,0.095548,USD,Azure Retail Prices API,2025-12-18T04:45:30.969992 +AZURE,northeurope,Standard_EC2ads_v6,reserved_3y,NA,0.061568,USD,Azure Retail Prices API,2025-12-18T04:45:30.969997 +AZURE,northeurope,Standard_EC2ads_v6,spot,NA,0.029938,USD,Azure Retail Prices API,2025-12-18T04:45:29.009633 +AZURE,northeurope,Standard_EC2as_v6,on_demand,NA,0.133,USD,Azure Retail Prices API,2025-12-18T04:45:29.010586 +AZURE,northeurope,Standard_EC2as_v6,reserved_1y,NA,0.078425,USD,Azure Retail Prices API,2025-12-18T04:45:30.971472 +AZURE,northeurope,Standard_EC2as_v6,reserved_3y,NA,0.050533,USD,Azure Retail Prices API,2025-12-18T04:45:30.971477 +AZURE,northeurope,Standard_EC2as_v6,spot,NA,0.024578,USD,Azure Retail Prices API,2025-12-18T04:45:29.010064 +AZURE,northeurope,Standard_EC32ads_v5,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:45:29.009688 +AZURE,northeurope,Standard_EC32ads_v5,reserved_1y,NA,1.868836,USD,Azure Retail Prices API,2025-12-18T04:45:30.969841 +AZURE,northeurope,Standard_EC32ads_v5,reserved_3y,NA,1.401598,USD,Azure Retail Prices API,2025-12-18T04:45:30.969846 +AZURE,northeurope,Standard_EC32ads_v5,spot,NA,0.440803,USD,Azure Retail Prices API,2025-12-18T04:45:29.010667 +AZURE,northeurope,Standard_EC32ads_v6,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:45:29.010407 +AZURE,northeurope,Standard_EC32ads_v6,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:45:30.971180 +AZURE,northeurope,Standard_EC32ads_v6,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:45:30.971186 +AZURE,northeurope,Standard_EC32ads_v6,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:45:29.009644 +AZURE,northeurope,Standard_EC32as_v5,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:45:29.010004 +AZURE,northeurope,Standard_EC32as_v5,reserved_1y,NA,1.625571,USD,Azure Retail Prices API,2025-12-18T04:45:30.970345 +AZURE,northeurope,Standard_EC32as_v5,reserved_3y,NA,1.219216,USD,Azure Retail Prices API,2025-12-18T04:45:30.970350 +AZURE,northeurope,Standard_EC32as_v5,spot,NA,0.383438,USD,Azure Retail Prices API,2025-12-18T04:45:29.010743 +AZURE,northeurope,Standard_EC32as_v6,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:45:29.011444 +AZURE,northeurope,Standard_EC32as_v6,reserved_1y,NA,1.255479,USD,Azure Retail Prices API,2025-12-18T04:45:30.972692 +AZURE,northeurope,Standard_EC32as_v6,reserved_3y,NA,0.808638,USD,Azure Retail Prices API,2025-12-18T04:45:30.972696 +AZURE,northeurope,Standard_EC32as_v6,spot,NA,0.393254,USD,Azure Retail Prices API,2025-12-18T04:45:29.010879 +AZURE,northeurope,Standard_EC48ads_v5,on_demand,NA,3.504,USD,Azure Retail Prices API,2025-12-18T04:45:29.011476 +AZURE,northeurope,Standard_EC48ads_v5,reserved_1y,NA,2.803196,USD,Azure Retail Prices API,2025-12-18T04:45:30.972729 +AZURE,northeurope,Standard_EC48ads_v5,reserved_3y,NA,2.102397,USD,Azure Retail Prices API,2025-12-18T04:45:30.972734 +AZURE,northeurope,Standard_EC48ads_v5,spot,NA,0.661205,USD,Azure Retail Prices API,2025-12-18T04:45:29.010820 +AZURE,northeurope,Standard_EC48ads_v6,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:45:29.010910 +AZURE,northeurope,Standard_EC48ads_v6,reserved_1y,NA,2.29395,USD,Azure Retail Prices API,2025-12-18T04:45:30.972115 +AZURE,northeurope,Standard_EC48ads_v6,reserved_3y,NA,1.477435,USD,Azure Retail Prices API,2025-12-18T04:45:30.972121 +AZURE,northeurope,Standard_EC48ads_v6,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:45:29.010664 +AZURE,northeurope,Standard_EC48as_v5,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:45:29.010125 +AZURE,northeurope,Standard_EC48as_v5,reserved_1y,NA,2.438356,USD,Azure Retail Prices API,2025-12-18T04:45:30.970530 +AZURE,northeurope,Standard_EC48as_v5,reserved_3y,NA,1.828805,USD,Azure Retail Prices API,2025-12-18T04:45:30.970534 +AZURE,northeurope,Standard_EC48as_v5,spot,NA,0.575158,USD,Azure Retail Prices API,2025-12-18T04:45:29.010517 +AZURE,northeurope,Standard_EC48as_v6,on_demand,NA,3.192,USD,Azure Retail Prices API,2025-12-18T04:45:29.009885 +AZURE,northeurope,Standard_EC48as_v6,reserved_1y,NA,1.883333,USD,Azure Retail Prices API,2025-12-18T04:45:30.970199 +AZURE,northeurope,Standard_EC48as_v6,reserved_3y,NA,1.212976,USD,Azure Retail Prices API,2025-12-18T04:45:30.970204 +AZURE,northeurope,Standard_EC48as_v6,spot,NA,0.589882,USD,Azure Retail Prices API,2025-12-18T04:45:29.010624 +AZURE,northeurope,Standard_EC4ads_v5,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:45:29.010779 +AZURE,northeurope,Standard_EC4ads_v5,reserved_1y,NA,0.233562,USD,Azure Retail Prices API,2025-12-18T04:45:30.971877 +AZURE,northeurope,Standard_EC4ads_v5,reserved_3y,NA,0.17519,USD,Azure Retail Prices API,2025-12-18T04:45:30.971882 +AZURE,northeurope,Standard_EC4ads_v5,spot,NA,0.0551,USD,Azure Retail Prices API,2025-12-18T04:45:29.010340 +AZURE,northeurope,Standard_EC4ads_v6,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:45:29.009554 +AZURE,northeurope,Standard_EC4ads_v6,reserved_1y,NA,0.19121,USD,Azure Retail Prices API,2025-12-18T04:45:30.969525 +AZURE,northeurope,Standard_EC4ads_v6,reserved_3y,NA,0.123135,USD,Azure Retail Prices API,2025-12-18T04:45:30.969530 +AZURE,northeurope,Standard_EC4ads_v6,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:45:29.010731 +AZURE,northeurope,Standard_EC4as_v5,on_demand,NA,0.254,USD,Azure Retail Prices API,2025-12-18T04:45:29.010576 +AZURE,northeurope,Standard_EC4as_v5,reserved_1y,NA,0.203196,USD,Azure Retail Prices API,2025-12-18T04:45:30.971451 +AZURE,northeurope,Standard_EC4as_v5,reserved_3y,NA,0.152397,USD,Azure Retail Prices API,2025-12-18T04:45:30.971456 +AZURE,northeurope,Standard_EC4as_v5,spot,NA,0.04793,USD,Azure Retail Prices API,2025-12-18T04:45:29.010422 +AZURE,northeurope,Standard_EC4as_v6,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:45:29.009730 +AZURE,northeurope,Standard_EC4as_v6,reserved_1y,NA,0.156963,USD,Azure Retail Prices API,2025-12-18T04:45:30.969924 +AZURE,northeurope,Standard_EC4as_v6,reserved_3y,NA,0.101065,USD,Azure Retail Prices API,2025-12-18T04:45:30.969929 +AZURE,northeurope,Standard_EC4as_v6,spot,NA,0.049157,USD,Azure Retail Prices API,2025-12-18T04:45:29.010549 +AZURE,northeurope,Standard_EC64ads_v5,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:45:29.010965 +AZURE,northeurope,Standard_EC64ads_v5,reserved_1y,NA,3.737557,USD,Azure Retail Prices API,2025-12-18T04:45:30.972241 +AZURE,northeurope,Standard_EC64ads_v5,reserved_3y,NA,2.803196,USD,Azure Retail Prices API,2025-12-18T04:45:30.972247 +AZURE,northeurope,Standard_EC64ads_v5,spot,NA,0.881606,USD,Azure Retail Prices API,2025-12-18T04:45:29.010128 +AZURE,northeurope,Standard_EC64ads_v6,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:45:29.010042 +AZURE,northeurope,Standard_EC64ads_v6,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:45:30.970376 +AZURE,northeurope,Standard_EC64ads_v6,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:45:30.970381 +AZURE,northeurope,Standard_EC64ads_v6,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:45:29.010540 +AZURE,northeurope,Standard_EC64as_v5,on_demand,NA,4.064,USD,Azure Retail Prices API,2025-12-18T04:45:29.009519 +AZURE,northeurope,Standard_EC64as_v5,reserved_1y,NA,3.251256,USD,Azure Retail Prices API,2025-12-18T04:45:30.969492 +AZURE,northeurope,Standard_EC64as_v5,reserved_3y,NA,2.438394,USD,Azure Retail Prices API,2025-12-18T04:45:30.969497 +AZURE,northeurope,Standard_EC64as_v5,spot,NA,0.766877,USD,Azure Retail Prices API,2025-12-18T04:45:29.010404 +AZURE,northeurope,Standard_EC64as_v6,on_demand,NA,4.256,USD,Azure Retail Prices API,2025-12-18T04:45:29.011382 +AZURE,northeurope,Standard_EC64as_v6,reserved_1y,NA,2.511073,USD,Azure Retail Prices API,2025-12-18T04:45:30.972647 +AZURE,northeurope,Standard_EC64as_v6,reserved_3y,NA,1.617275,USD,Azure Retail Prices API,2025-12-18T04:45:30.972653 +AZURE,northeurope,Standard_EC64as_v6,spot,NA,0.786509,USD,Azure Retail Prices API,2025-12-18T04:45:29.009908 +AZURE,northeurope,Standard_EC8ads_v5,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:45:29.010900 +AZURE,northeurope,Standard_EC8ads_v5,reserved_1y,NA,0.467237,USD,Azure Retail Prices API,2025-12-18T04:45:30.972104 +AZURE,northeurope,Standard_EC8ads_v5,reserved_3y,NA,0.350419,USD,Azure Retail Prices API,2025-12-18T04:45:30.972109 +AZURE,northeurope,Standard_EC8ads_v5,spot,NA,0.110201,USD,Azure Retail Prices API,2025-12-18T04:45:29.009950 +AZURE,northeurope,Standard_EC8ads_v6,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:45:29.009727 +AZURE,northeurope,Standard_EC8ads_v6,reserved_1y,NA,0.382306,USD,Azure Retail Prices API,2025-12-18T04:45:30.969916 +AZURE,northeurope,Standard_EC8ads_v6,reserved_3y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:45:30.969920 +AZURE,northeurope,Standard_EC8ads_v6,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:45:29.010855 +AZURE,northeurope,Standard_EC8as_v5,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:45:29.010719 +AZURE,northeurope,Standard_EC8as_v5,reserved_1y,NA,0.406393,USD,Azure Retail Prices API,2025-12-18T04:45:30.971714 +AZURE,northeurope,Standard_EC8as_v5,reserved_3y,NA,0.304795,USD,Azure Retail Prices API,2025-12-18T04:45:30.971720 +AZURE,northeurope,Standard_EC8as_v5,spot,NA,0.09586,USD,Azure Retail Prices API,2025-12-18T04:45:29.011003 +AZURE,northeurope,Standard_EC8as_v6,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:45:29.010721 +AZURE,northeurope,Standard_EC8as_v6,reserved_1y,NA,0.313927,USD,Azure Retail Prices API,2025-12-18T04:45:30.971726 +AZURE,northeurope,Standard_EC8as_v6,reserved_3y,NA,0.202169,USD,Azure Retail Prices API,2025-12-18T04:45:30.971731 +AZURE,northeurope,Standard_EC8as_v6,spot,NA,0.098314,USD,Azure Retail Prices API,2025-12-18T04:45:29.010001 +AZURE,northeurope,Standard_EC96ads_v5,on_demand,NA,7.008,USD,Azure Retail Prices API,2025-12-18T04:45:29.010546 +AZURE,northeurope,Standard_EC96ads_v5,reserved_1y,NA,5.606393,USD,Azure Retail Prices API,2025-12-18T04:45:30.971419 +AZURE,northeurope,Standard_EC96ads_v5,reserved_3y,NA,4.204795,USD,Azure Retail Prices API,2025-12-18T04:45:30.971425 +AZURE,northeurope,Standard_EC96ads_v5,spot,NA,1.32241,USD,Azure Retail Prices API,2025-12-18T04:45:29.011376 +AZURE,northeurope,Standard_EC96ads_v6,on_demand,NA,7.776,USD,Azure Retail Prices API,2025-12-18T04:45:29.011202 +AZURE,northeurope,Standard_EC96ads_v6,reserved_1y,NA,4.587785,USD,Azure Retail Prices API,2025-12-18T04:45:30.972485 +AZURE,northeurope,Standard_EC96ads_v6,reserved_3y,NA,2.954871,USD,Azure Retail Prices API,2025-12-18T04:45:30.972489 +AZURE,northeurope,Standard_EC96ads_v6,spot,NA,1.437005,USD,Azure Retail Prices API,2025-12-18T04:45:29.010322 +AZURE,northeurope,Standard_EC96as_v5,on_demand,NA,6.096,USD,Azure Retail Prices API,2025-12-18T04:45:29.011101 +AZURE,northeurope,Standard_EC96as_v5,reserved_1y,NA,4.876826,USD,Azure Retail Prices API,2025-12-18T04:45:30.972383 +AZURE,northeurope,Standard_EC96as_v5,reserved_3y,NA,3.65761,USD,Azure Retail Prices API,2025-12-18T04:45:30.972388 +AZURE,northeurope,Standard_EC96as_v5,spot,NA,1.150315,USD,Azure Retail Prices API,2025-12-18T04:45:29.010795 +AZURE,northeurope,Standard_EC96as_v6,on_demand,NA,6.384,USD,Azure Retail Prices API,2025-12-18T04:45:29.010977 +AZURE,northeurope,Standard_EC96as_v6,reserved_1y,NA,3.766553,USD,Azure Retail Prices API,2025-12-18T04:45:30.972275 +AZURE,northeurope,Standard_EC96as_v6,reserved_3y,NA,2.425913,USD,Azure Retail Prices API,2025-12-18T04:45:30.972280 +AZURE,northeurope,Standard_EC96as_v6,spot,NA,1.179763,USD,Azure Retail Prices API,2025-12-18T04:45:29.009473 +AZURE,northeurope,Standard_F16,on_demand,NA,1.0164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379399 +AZURE,northeurope,Standard_F16,reserved_1y,NA,0.60984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379408 +AZURE,northeurope,Standard_F16,reserved_3y,NA,0.40656,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379412 +AZURE,northeurope,Standard_F16,spot,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379403 +AZURE,northeurope,Standard_F16s,on_demand,NA,1.0164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381709 +AZURE,northeurope,Standard_F16s,reserved_1y,NA,0.60984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381717 +AZURE,northeurope,Standard_F16s,reserved_3y,NA,0.40656,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381721 +AZURE,northeurope,Standard_F16s,spot,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381713 +AZURE,northeurope,Standard_F16s_v2,on_demand,NA,0.8624,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384427 +AZURE,northeurope,Standard_F16s_v2,reserved_1y,NA,0.51744,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384439 +AZURE,northeurope,Standard_F16s_v2,reserved_3y,NA,0.34496,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384445 +AZURE,northeurope,Standard_F16s_v2,spot,NA,0.25872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384434 +AZURE,northeurope,Standard_F32s_v2,on_demand,NA,1.7248,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385200 +AZURE,northeurope,Standard_F32s_v2,reserved_1y,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385210 +AZURE,northeurope,Standard_F32s_v2,reserved_3y,NA,0.68992,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385214 +AZURE,northeurope,Standard_F32s_v2,spot,NA,0.51744,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385205 +AZURE,northeurope,Standard_F4,on_demand,NA,0.2541,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377807 +AZURE,northeurope,Standard_F4,reserved_1y,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377815 +AZURE,northeurope,Standard_F4,reserved_3y,NA,0.10164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377820 +AZURE,northeurope,Standard_F4,spot,NA,0.07623,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377811 +AZURE,northeurope,Standard_F48s_v2,on_demand,NA,2.5872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386006 +AZURE,northeurope,Standard_F48s_v2,reserved_1y,NA,1.55232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386014 +AZURE,northeurope,Standard_F48s_v2,reserved_3y,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386021 +AZURE,northeurope,Standard_F48s_v2,spot,NA,0.77616,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386010 +AZURE,northeurope,Standard_F4s,on_demand,NA,0.2541,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380167 +AZURE,northeurope,Standard_F4s,reserved_1y,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380175 +AZURE,northeurope,Standard_F4s,reserved_3y,NA,0.10164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380180 +AZURE,northeurope,Standard_F4s,spot,NA,0.07623,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380171 +AZURE,northeurope,Standard_F4s_v2,on_demand,NA,0.2156,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382761 +AZURE,northeurope,Standard_F4s_v2,reserved_1y,NA,0.12936,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382770 +AZURE,northeurope,Standard_F4s_v2,reserved_3y,NA,0.08624,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382775 +AZURE,northeurope,Standard_F4s_v2,spot,NA,0.06468,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382765 +AZURE,northeurope,Standard_F64s_v2,on_demand,NA,3.4496,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386798 +AZURE,northeurope,Standard_F64s_v2,reserved_1y,NA,2.06976,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386806 +AZURE,northeurope,Standard_F64s_v2,reserved_3y,NA,1.37984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386810 +AZURE,northeurope,Standard_F64s_v2,spot,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386802 +AZURE,northeurope,Standard_F72s_v2,on_demand,NA,3.8808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387598 +AZURE,northeurope,Standard_F72s_v2,reserved_1y,NA,2.32848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387606 +AZURE,northeurope,Standard_F72s_v2,reserved_3y,NA,1.55232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387611 +AZURE,northeurope,Standard_F72s_v2,spot,NA,1.16424,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387602 +AZURE,northeurope,Standard_F8,on_demand,NA,0.5082,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378584 +AZURE,northeurope,Standard_F8,reserved_1y,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378592 +AZURE,northeurope,Standard_F8,reserved_3y,NA,0.20328,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378597 +AZURE,northeurope,Standard_F8,spot,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378588 +AZURE,northeurope,Standard_F8s,on_demand,NA,0.5082,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380863 +AZURE,northeurope,Standard_F8s,reserved_1y,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380872 +AZURE,northeurope,Standard_F8s,reserved_3y,NA,0.20328,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380876 +AZURE,northeurope,Standard_F8s,spot,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380868 +AZURE,northeurope,Standard_F8s_v2,on_demand,NA,0.4312,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383599 +AZURE,northeurope,Standard_F8s_v2,reserved_1y,NA,0.25872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383607 +AZURE,northeurope,Standard_F8s_v2,reserved_3y,NA,0.17248,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383611 +AZURE,northeurope,Standard_F8s_v2,spot,NA,0.12936,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383603 +AZURE,northeurope,Standard_H16,on_demand,NA,1.941,USD,Azure Retail Prices API,2025-12-18T04:45:29.010416 +AZURE,northeurope,Standard_H16,spot,NA,0.358697,USD,Azure Retail Prices API,2025-12-18T04:45:29.010283 +AZURE,northeurope,Standard_H8,on_demand,NA,0.971,USD,Azure Retail Prices API,2025-12-18T04:45:29.010512 +AZURE,northeurope,Standard_H8,spot,NA,0.179441,USD,Azure Retail Prices API,2025-12-18T04:45:29.011370 +AZURE,northeurope,Standard_L16as_v3,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:45:29.010277 +AZURE,northeurope,Standard_L16as_v3,reserved_1y,NA,0.880594,USD,Azure Retail Prices API,2025-12-18T04:45:30.970973 +AZURE,northeurope,Standard_L16as_v3,reserved_3y,NA,0.57793,USD,Azure Retail Prices API,2025-12-18T04:45:30.970978 +AZURE,northeurope,Standard_L16as_v3,spot,NA,0.338496,USD,Azure Retail Prices API,2025-12-18T04:45:29.010286 +AZURE,northeurope,Standard_L16s_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:45:29.011275 +AZURE,northeurope,Standard_L16s_v3,reserved_1y,NA,0.982991,USD,Azure Retail Prices API,2025-12-18T04:45:30.972555 +AZURE,northeurope,Standard_L16s_v3,reserved_3y,NA,0.645129,USD,Azure Retail Prices API,2025-12-18T04:45:30.972561 +AZURE,northeurope,Standard_L16s_v3,spot,NA,0.417331,USD,Azure Retail Prices API,2025-12-18T04:45:29.009840 +AZURE,northeurope,Standard_L32as_v3,on_demand,NA,2.752,USD,Azure Retail Prices API,2025-12-18T04:45:29.010245 +AZURE,northeurope,Standard_L32as_v3,reserved_1y,NA,1.761301,USD,Azure Retail Prices API,2025-12-18T04:45:30.970903 +AZURE,northeurope,Standard_L32as_v3,reserved_3y,NA,1.155822,USD,Azure Retail Prices API,2025-12-18T04:45:30.970908 +AZURE,northeurope,Standard_L32as_v3,spot,NA,0.676992,USD,Azure Retail Prices API,2025-12-18T04:45:29.010800 +AZURE,northeurope,Standard_L32s_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:45:29.010500 +AZURE,northeurope,Standard_L32s_v3,reserved_1y,NA,1.966096,USD,Azure Retail Prices API,2025-12-18T04:45:30.971367 +AZURE,northeurope,Standard_L32s_v3,reserved_3y,NA,1.290259,USD,Azure Retail Prices API,2025-12-18T04:45:30.971373 +AZURE,northeurope,Standard_L32s_v3,spot,NA,0.834662,USD,Azure Retail Prices API,2025-12-18T04:45:29.010755 +AZURE,northeurope,Standard_L48as_v3,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:45:29.010176 +AZURE,northeurope,Standard_L48as_v3,reserved_1y,NA,2.641895,USD,Azure Retail Prices API,2025-12-18T04:45:30.970802 +AZURE,northeurope,Standard_L48as_v3,reserved_3y,NA,1.733752,USD,Azure Retail Prices API,2025-12-18T04:45:30.970809 +AZURE,northeurope,Standard_L48as_v3,spot,NA,1.015488,USD,Azure Retail Prices API,2025-12-18T04:45:29.011460 +AZURE,northeurope,Standard_L48s_v3,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:45:29.009624 +AZURE,northeurope,Standard_L48s_v3,reserved_1y,NA,2.949087,USD,Azure Retail Prices API,2025-12-18T04:45:30.969704 +AZURE,northeurope,Standard_L48s_v3,reserved_3y,NA,1.93535,USD,Azure Retail Prices API,2025-12-18T04:45:30.969708 +AZURE,northeurope,Standard_L48s_v3,spot,NA,1.251994,USD,Azure Retail Prices API,2025-12-18T04:45:29.009787 +AZURE,northeurope,Standard_L64as_v3,on_demand,NA,5.504,USD,Azure Retail Prices API,2025-12-18T04:45:29.010543 +AZURE,northeurope,Standard_L64as_v3,reserved_1y,NA,3.522603,USD,Azure Retail Prices API,2025-12-18T04:45:30.971409 +AZURE,northeurope,Standard_L64as_v3,reserved_3y,NA,2.311682,USD,Azure Retail Prices API,2025-12-18T04:45:30.971414 +AZURE,northeurope,Standard_L64as_v3,spot,NA,1.353984,USD,Azure Retail Prices API,2025-12-18T04:45:29.009733 +AZURE,northeurope,Standard_L64s_v3,on_demand,NA,6.144,USD,Azure Retail Prices API,2025-12-18T04:45:29.010891 +AZURE,northeurope,Standard_L64s_v3,reserved_1y,NA,3.932192,USD,Azure Retail Prices API,2025-12-18T04:45:30.972074 +AZURE,northeurope,Standard_L64s_v3,reserved_3y,NA,2.580479,USD,Azure Retail Prices API,2025-12-18T04:45:30.972079 +AZURE,northeurope,Standard_L64s_v3,spot,NA,1.669325,USD,Azure Retail Prices API,2025-12-18T04:45:29.010655 +AZURE,northeurope,Standard_L80as_v3,on_demand,NA,6.88,USD,Azure Retail Prices API,2025-12-18T04:45:29.010945 +AZURE,northeurope,Standard_L80as_v3,reserved_1y,NA,4.403196,USD,Azure Retail Prices API,2025-12-18T04:45:30.972184 +AZURE,northeurope,Standard_L80as_v3,reserved_3y,NA,2.889612,USD,Azure Retail Prices API,2025-12-18T04:45:30.972190 +AZURE,northeurope,Standard_L80as_v3,spot,NA,1.69248,USD,Azure Retail Prices API,2025-12-18T04:45:29.009572 +AZURE,northeurope,Standard_L80s_v3,on_demand,NA,7.68,USD,Azure Retail Prices API,2025-12-18T04:45:29.009601 +AZURE,northeurope,Standard_L80s_v3,reserved_1y,NA,4.915183,USD,Azure Retail Prices API,2025-12-18T04:45:30.969640 +AZURE,northeurope,Standard_L80s_v3,reserved_3y,NA,3.225609,USD,Azure Retail Prices API,2025-12-18T04:45:30.969646 +AZURE,northeurope,Standard_L80s_v3,spot,NA,2.086656,USD,Azure Retail Prices API,2025-12-18T04:45:29.010358 +AZURE,northeurope,Standard_L8as_v3,on_demand,NA,0.688,USD,Azure Retail Prices API,2025-12-18T04:45:29.011266 +AZURE,northeurope,Standard_L8as_v3,reserved_1y,NA,0.440297,USD,Azure Retail Prices API,2025-12-18T04:45:30.972543 +AZURE,northeurope,Standard_L8as_v3,reserved_3y,NA,0.288965,USD,Azure Retail Prices API,2025-12-18T04:45:30.972550 +AZURE,northeurope,Standard_L8as_v3,spot,NA,0.169248,USD,Azure Retail Prices API,2025-12-18T04:45:29.010390 +AZURE,northeurope,Standard_L8s_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:29.009627 +AZURE,northeurope,Standard_L8s_v3,reserved_1y,NA,0.491553,USD,Azure Retail Prices API,2025-12-18T04:45:30.969712 +AZURE,northeurope,Standard_L8s_v3,reserved_3y,NA,0.322565,USD,Azure Retail Prices API,2025-12-18T04:45:30.969717 +AZURE,northeurope,Standard_L8s_v3,spot,NA,0.208666,USD,Azure Retail Prices API,2025-12-18T04:45:29.010479 +AZURE,northeurope,Standard_NC12s_v3,on_demand,NA,6.61,USD,Azure Retail Prices API,2025-12-18T04:45:29.010728 +AZURE,northeurope,Standard_NC12s_v3,spot,NA,1.221528,USD,Azure Retail Prices API,2025-12-18T04:45:29.010826 +AZURE,northeurope,Standard_NC16as_T4_v3,on_demand,NA,1.342,USD,Azure Retail Prices API,2025-12-18T04:45:29.010882 +AZURE,northeurope,Standard_NC16as_T4_v3,reserved_1y,NA,0.855137,USD,Azure Retail Prices API,2025-12-18T04:45:30.972055 +AZURE,northeurope,Standard_NC16as_T4_v3,reserved_3y,NA,0.504756,USD,Azure Retail Prices API,2025-12-18T04:45:30.972060 +AZURE,northeurope,Standard_NC16as_T4_v3,spot,NA,0.625775,USD,Azure Retail Prices API,2025-12-18T04:45:29.010251 +AZURE,northeurope,Standard_NC24ads_A100_v4,on_demand,NA,4.408,USD,Azure Retail Prices API,2025-12-18T04:45:29.009782 +AZURE,northeurope,Standard_NC24ads_A100_v4,reserved_1y,NA,2.881279,USD,Azure Retail Prices API,2025-12-18T04:45:30.970011 +AZURE,northeurope,Standard_NC24ads_A100_v4,reserved_3y,NA,1.635654,USD,Azure Retail Prices API,2025-12-18T04:45:30.970016 +AZURE,northeurope,Standard_NC24ads_A100_v4,spot,NA,0.814598,USD,Azure Retail Prices API,2025-12-18T04:45:29.010171 +AZURE,northeurope,Standard_NC24s_v3,on_demand,NA,13.219,USD,Azure Retail Prices API,2025-12-18T04:45:29.010469 +AZURE,northeurope,Standard_NC24s_v3,spot,NA,2.442871,USD,Azure Retail Prices API,2025-12-18T04:45:29.009965 +AZURE,northeurope,Standard_NC40ads_H100_v5,on_demand,NA,8.376,USD,Azure Retail Prices API,2025-12-18T04:45:29.011420 +AZURE,northeurope,Standard_NC40ads_H100_v5,reserved_1y,NA,6.281963,USD,Azure Retail Prices API,2025-12-18T04:45:30.972670 +AZURE,northeurope,Standard_NC40ads_H100_v5,reserved_3y,NA,4.606811,USD,Azure Retail Prices API,2025-12-18T04:45:30.972676 +AZURE,northeurope,Standard_NC40ads_H100_v5,spot,NA,2.305913,USD,Azure Retail Prices API,2025-12-18T04:45:29.010185 +AZURE,northeurope,Standard_NC48ads_A100_v4,on_demand,NA,8.815,USD,Azure Retail Prices API,2025-12-18T04:45:29.009793 +AZURE,northeurope,Standard_NC48ads_A100_v4,reserved_1y,NA,5.762443,USD,Azure Retail Prices API,2025-12-18T04:45:30.970020 +AZURE,northeurope,Standard_NC48ads_A100_v4,reserved_3y,NA,3.271309,USD,Azure Retail Prices API,2025-12-18T04:45:30.970025 +AZURE,northeurope,Standard_NC48ads_A100_v4,spot,NA,1.629012,USD,Azure Retail Prices API,2025-12-18T04:45:29.011313 +AZURE,northeurope,Standard_NC4as_T4_v3,on_demand,NA,0.587,USD,Azure Retail Prices API,2025-12-18T04:45:29.010962 +AZURE,northeurope,Standard_NC4as_T4_v3,reserved_1y,NA,0.37363,USD,Azure Retail Prices API,2025-12-18T04:45:30.972229 +AZURE,northeurope,Standard_NC4as_T4_v3,reserved_3y,NA,0.22051,USD,Azure Retail Prices API,2025-12-18T04:45:30.972235 +AZURE,northeurope,Standard_NC4as_T4_v3,spot,NA,0.273718,USD,Azure Retail Prices API,2025-12-18T04:45:29.010913 +AZURE,northeurope,Standard_NC64as_T4_v3,on_demand,NA,4.853,USD,Azure Retail Prices API,2025-12-18T04:45:29.010942 +AZURE,northeurope,Standard_NC64as_T4_v3,reserved_1y,NA,3.091096,USD,Azure Retail Prices API,2025-12-18T04:45:30.972172 +AZURE,northeurope,Standard_NC64as_T4_v3,reserved_3y,NA,1.824581,USD,Azure Retail Prices API,2025-12-18T04:45:30.972179 +AZURE,northeurope,Standard_NC64as_T4_v3,spot,NA,2.262954,USD,Azure Retail Prices API,2025-12-18T04:45:29.010907 +AZURE,northeurope,Standard_NC6s_v3,on_demand,NA,3.305,USD,Azure Retail Prices API,2025-12-18T04:45:29.011032 +AZURE,northeurope,Standard_NC6s_v3,spot,NA,0.610764,USD,Azure Retail Prices API,2025-12-18T04:45:29.011261 +AZURE,northeurope,Standard_NC8as_T4_v3,on_demand,NA,0.838,USD,Azure Retail Prices API,2025-12-18T04:45:29.011335 +AZURE,northeurope,Standard_NC8as_T4_v3,reserved_1y,NA,0.534132,USD,Azure Retail Prices API,2025-12-18T04:45:30.972612 +AZURE,northeurope,Standard_NC8as_T4_v3,reserved_3y,NA,0.315259,USD,Azure Retail Prices API,2025-12-18T04:45:30.972618 +AZURE,northeurope,Standard_NC8as_T4_v3,spot,NA,0.390759,USD,Azure Retail Prices API,2025-12-18T04:45:29.010047 +AZURE,northeurope,Standard_NC96ads_A100_v4,on_demand,NA,17.63,USD,Azure Retail Prices API,2025-12-18T04:45:29.009849 +AZURE,northeurope,Standard_NC96ads_A100_v4,reserved_1y,NA,11.525,USD,Azure Retail Prices API,2025-12-18T04:45:30.970119 +AZURE,northeurope,Standard_NC96ads_A100_v4,reserved_3y,NA,6.542656,USD,Azure Retail Prices API,2025-12-18T04:45:30.970124 +AZURE,northeurope,Standard_NC96ads_A100_v4,spot,NA,3.258024,USD,Azure Retail Prices API,2025-12-18T04:45:29.009739 +AZURE,northeurope,Standard_NV36adms_A10_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:45:29.010269 +AZURE,northeurope,Standard_NV36adms_A10_v5,reserved_1y,NA,3.471347,USD,Azure Retail Prices API,2025-12-18T04:45:30.970954 +AZURE,northeurope,Standard_NV36adms_A10_v5,reserved_3y,NA,2.386568,USD,Azure Retail Prices API,2025-12-18T04:45:30.970959 +AZURE,northeurope,Standard_NV36adms_A10_v5,spot,NA,1.002355,USD,Azure Retail Prices API,2025-12-18T04:45:29.010767 +AZURE,northeurope,Standard_NV36ads_A10_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:29.010582 +AZURE,northeurope,Standard_NV36ads_A10_v5,reserved_1y,NA,2.457648,USD,Azure Retail Prices API,2025-12-18T04:45:30.971462 +AZURE,northeurope,Standard_NV36ads_A10_v5,reserved_3y,NA,1.689612,USD,Azure Retail Prices API,2025-12-18T04:45:30.971467 +AZURE,northeurope,Standard_NV36ads_A10_v5,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:45:29.010454 +AZURE,northeurope,Standard_NV72ads_A10_v5,on_demand,NA,7.824,USD,Azure Retail Prices API,2025-12-18T04:45:29.009983 +AZURE,northeurope,Standard_NV72ads_A10_v5,reserved_1y,NA,5.007306,USD,Azure Retail Prices API,2025-12-18T04:45:30.970334 +AZURE,northeurope,Standard_NV72ads_A10_v5,reserved_3y,NA,3.442542,USD,Azure Retail Prices API,2025-12-18T04:45:30.970340 +AZURE,northeurope,Standard_NV72ads_A10_v5,spot,NA,1.445875,USD,Azure Retail Prices API,2025-12-18T04:45:29.010733 +AZURE,norwayeast,Standard_D128ds_v6,on_demand,NA,11.402,USD,Azure Retail Prices API,2025-12-18T04:46:04.068466 +AZURE,norwayeast,Standard_D128ds_v6,reserved_1y,NA,7.069406,USD,Azure Retail Prices API,2025-12-18T04:46:05.183963 +AZURE,norwayeast,Standard_D128ds_v6,reserved_3y,NA,4.44688,USD,Azure Retail Prices API,2025-12-18T04:46:05.183966 +AZURE,norwayeast,Standard_D128ds_v6,spot,NA,2.10709,USD,Azure Retail Prices API,2025-12-18T04:46:04.068388 +AZURE,norwayeast,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488435 +AZURE,norwayeast,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488443 +AZURE,norwayeast,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488447 +AZURE,norwayeast,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488439 +AZURE,norwayeast,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489215 +AZURE,norwayeast,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489223 +AZURE,norwayeast,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489227 +AZURE,norwayeast,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489219 +AZURE,norwayeast,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490311 +AZURE,norwayeast,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490319 +AZURE,norwayeast,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490324 +AZURE,norwayeast,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490315 +AZURE,norwayeast,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491024 +AZURE,norwayeast,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491033 +AZURE,norwayeast,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491037 +AZURE,norwayeast,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491028 +AZURE,norwayeast,Standard_D16_v3,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:46:04.068811 +AZURE,norwayeast,Standard_D16_v3,reserved_1y,NA,0.672717,USD,Azure Retail Prices API,2025-12-18T04:46:05.184224 +AZURE,norwayeast,Standard_D16_v3,reserved_3y,NA,0.463242,USD,Azure Retail Prices API,2025-12-18T04:46:05.184227 +AZURE,norwayeast,Standard_D16_v3,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:46:04.069542 +AZURE,norwayeast,Standard_D16a_v4,on_demand,NA,1.098,USD,Azure Retail Prices API,2025-12-18T04:46:04.069700 +AZURE,norwayeast,Standard_D16a_v4,reserved_1y,NA,0.647945,USD,Azure Retail Prices API,2025-12-18T04:46:05.184867 +AZURE,norwayeast,Standard_D16a_v4,reserved_3y,NA,0.417314,USD,Azure Retail Prices API,2025-12-18T04:46:05.184870 +AZURE,norwayeast,Standard_D16a_v4,spot,NA,0.20291,USD,Azure Retail Prices API,2025-12-18T04:46:04.068350 +AZURE,norwayeast,Standard_D16ads_v5,on_demand,NA,1.178,USD,Azure Retail Prices API,2025-12-18T04:46:04.069824 +AZURE,norwayeast,Standard_D16ads_v5,reserved_1y,NA,0.695205,USD,Azure Retail Prices API,2025-12-18T04:46:05.185002 +AZURE,norwayeast,Standard_D16ads_v5,reserved_3y,NA,0.447755,USD,Azure Retail Prices API,2025-12-18T04:46:05.185004 +AZURE,norwayeast,Standard_D16ads_v5,spot,NA,0.217694,USD,Azure Retail Prices API,2025-12-18T04:46:04.068503 +AZURE,norwayeast,Standard_D16ads_v6,on_demand,NA,1.306,USD,Azure Retail Prices API,2025-12-18T04:46:04.068619 +AZURE,norwayeast,Standard_D16ads_v6,reserved_1y,NA,0.77032,USD,Azure Retail Prices API,2025-12-18T04:46:05.184073 +AZURE,norwayeast,Standard_D16ads_v6,reserved_3y,NA,0.496119,USD,Azure Retail Prices API,2025-12-18T04:46:05.184075 +AZURE,norwayeast,Standard_D16ads_v6,spot,NA,0.241349,USD,Azure Retail Prices API,2025-12-18T04:46:04.069497 +AZURE,norwayeast,Standard_D16as_v4,on_demand,NA,1.098,USD,Azure Retail Prices API,2025-12-18T04:46:04.069224 +AZURE,norwayeast,Standard_D16as_v4,reserved_1y,NA,0.647945,USD,Azure Retail Prices API,2025-12-18T04:46:05.184500 +AZURE,norwayeast,Standard_D16as_v4,reserved_3y,NA,0.417314,USD,Azure Retail Prices API,2025-12-18T04:46:05.184503 +AZURE,norwayeast,Standard_D16as_v4,spot,NA,0.20291,USD,Azure Retail Prices API,2025-12-18T04:46:04.069883 +AZURE,norwayeast,Standard_D16as_v5,on_demand,NA,0.984,USD,Azure Retail Prices API,2025-12-18T04:46:04.068983 +AZURE,norwayeast,Standard_D16as_v5,reserved_1y,NA,0.580479,USD,Azure Retail Prices API,2025-12-18T04:46:05.184332 +AZURE,norwayeast,Standard_D16as_v5,reserved_3y,NA,0.373858,USD,Azure Retail Prices API,2025-12-18T04:46:05.184335 +AZURE,norwayeast,Standard_D16as_v5,spot,NA,0.181843,USD,Azure Retail Prices API,2025-12-18T04:46:04.069276 +AZURE,norwayeast,Standard_D16d_v4,on_demand,NA,1.197,USD,Azure Retail Prices API,2025-12-18T04:46:04.068957 +AZURE,norwayeast,Standard_D16d_v4,reserved_1y,NA,0.706164,USD,Azure Retail Prices API,2025-12-18T04:46:05.184316 +AZURE,norwayeast,Standard_D16d_v4,reserved_3y,NA,0.454795,USD,Azure Retail Prices API,2025-12-18T04:46:05.184318 +AZURE,norwayeast,Standard_D16d_v4,spot,NA,0.221206,USD,Azure Retail Prices API,2025-12-18T04:46:04.069305 +AZURE,norwayeast,Standard_D16ds_v4,on_demand,NA,1.197,USD,Azure Retail Prices API,2025-12-18T04:46:04.068579 +AZURE,norwayeast,Standard_D16ds_v4,reserved_1y,NA,0.706164,USD,Azure Retail Prices API,2025-12-18T04:46:05.184038 +AZURE,norwayeast,Standard_D16ds_v4,reserved_3y,NA,0.454795,USD,Azure Retail Prices API,2025-12-18T04:46:05.184041 +AZURE,norwayeast,Standard_D16ds_v4,spot,NA,0.221206,USD,Azure Retail Prices API,2025-12-18T04:46:04.069548 +AZURE,norwayeast,Standard_D16ds_v5,on_demand,NA,1.197,USD,Azure Retail Prices API,2025-12-18T04:46:04.069638 +AZURE,norwayeast,Standard_D16ds_v5,reserved_1y,NA,0.706164,USD,Azure Retail Prices API,2025-12-18T04:46:05.184839 +AZURE,norwayeast,Standard_D16ds_v5,reserved_3y,NA,0.454795,USD,Azure Retail Prices API,2025-12-18T04:46:05.184842 +AZURE,norwayeast,Standard_D16ds_v5,spot,NA,0.221206,USD,Azure Retail Prices API,2025-12-18T04:46:04.069096 +AZURE,norwayeast,Standard_D16ds_v6,on_demand,NA,1.425,USD,Azure Retail Prices API,2025-12-18T04:46:04.068660 +AZURE,norwayeast,Standard_D16ds_v6,reserved_1y,NA,0.883676,USD,Azure Retail Prices API,2025-12-18T04:46:05.184118 +AZURE,norwayeast,Standard_D16ds_v6,reserved_3y,NA,0.55586,USD,Azure Retail Prices API,2025-12-18T04:46:05.184121 +AZURE,norwayeast,Standard_D16ds_v6,spot,NA,0.26334,USD,Azure Retail Prices API,2025-12-18T04:46:04.069011 +AZURE,norwayeast,Standard_D16pds_v6,on_demand,NA,1.051,USD,Azure Retail Prices API,2025-12-18T04:46:04.068938 +AZURE,norwayeast,Standard_D16pds_v6,reserved_1y,NA,0.620205,USD,Azure Retail Prices API,2025-12-18T04:46:05.184305 +AZURE,norwayeast,Standard_D16pds_v6,reserved_3y,NA,0.399467,USD,Azure Retail Prices API,2025-12-18T04:46:05.184307 +AZURE,norwayeast,Standard_D16pds_v6,spot,NA,0.194225,USD,Azure Retail Prices API,2025-12-18T04:46:04.068964 +AZURE,norwayeast,Standard_D16ps_v6,on_demand,NA,0.803,USD,Azure Retail Prices API,2025-12-18T04:46:04.069758 +AZURE,norwayeast,Standard_D16ps_v6,reserved_1y,NA,0.473858,USD,Azure Retail Prices API,2025-12-18T04:46:05.184924 +AZURE,norwayeast,Standard_D16ps_v6,reserved_3y,NA,0.305213,USD,Azure Retail Prices API,2025-12-18T04:46:05.184927 +AZURE,norwayeast,Standard_D16ps_v6,spot,NA,0.148394,USD,Azure Retail Prices API,2025-12-18T04:46:04.068612 +AZURE,norwayeast,Standard_D16s_v3,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:46:04.069545 +AZURE,norwayeast,Standard_D16s_v3,reserved_1y,NA,0.672717,USD,Azure Retail Prices API,2025-12-18T04:46:05.184767 +AZURE,norwayeast,Standard_D16s_v3,reserved_3y,NA,0.463242,USD,Azure Retail Prices API,2025-12-18T04:46:05.184770 +AZURE,norwayeast,Standard_D16s_v3,spot,NA,0.195149,USD,Azure Retail Prices API,2025-12-18T04:46:04.069271 +AZURE,norwayeast,Standard_D16s_v4,on_demand,NA,1.012,USD,Azure Retail Prices API,2025-12-18T04:46:04.068520 +AZURE,norwayeast,Standard_D16s_v4,reserved_1y,NA,0.597032,USD,Azure Retail Prices API,2025-12-18T04:46:05.183996 +AZURE,norwayeast,Standard_D16s_v4,reserved_3y,NA,0.384551,USD,Azure Retail Prices API,2025-12-18T04:46:05.183999 +AZURE,norwayeast,Standard_D16s_v4,spot,NA,0.187018,USD,Azure Retail Prices API,2025-12-18T04:46:04.069692 +AZURE,norwayeast,Standard_D16s_v5,on_demand,NA,1.012,USD,Azure Retail Prices API,2025-12-18T04:46:04.069302 +AZURE,norwayeast,Standard_D16s_v5,reserved_1y,NA,0.597032,USD,Azure Retail Prices API,2025-12-18T04:46:05.184549 +AZURE,norwayeast,Standard_D16s_v5,reserved_3y,NA,0.374429,USD,Azure Retail Prices API,2025-12-18T04:46:05.184552 +AZURE,norwayeast,Standard_D16s_v5,spot,NA,0.187018,USD,Azure Retail Prices API,2025-12-18T04:46:04.068492 +AZURE,norwayeast,Standard_D2ads_v6,on_demand,NA,0.163,USD,Azure Retail Prices API,2025-12-18T04:46:04.069765 +AZURE,norwayeast,Standard_D2ads_v6,reserved_1y,NA,0.096233,USD,Azure Retail Prices API,2025-12-18T04:46:05.184935 +AZURE,norwayeast,Standard_D2ads_v6,reserved_3y,NA,0.062024,USD,Azure Retail Prices API,2025-12-18T04:46:05.184938 +AZURE,norwayeast,Standard_D2ads_v6,spot,NA,0.030122,USD,Azure Retail Prices API,2025-12-18T04:46:04.069821 +AZURE,norwayeast,Standard_D2ds_v6,on_demand,NA,0.178,USD,Azure Retail Prices API,2025-12-18T04:46:04.069939 +AZURE,norwayeast,Standard_D2ds_v6,reserved_1y,NA,0.110502,USD,Azure Retail Prices API,2025-12-18T04:46:05.185148 +AZURE,norwayeast,Standard_D2ds_v6,reserved_3y,NA,0.069482,USD,Azure Retail Prices API,2025-12-18T04:46:05.185151 +AZURE,norwayeast,Standard_D2ds_v6,spot,NA,0.032894,USD,Azure Retail Prices API,2025-12-18T04:46:04.069910 +AZURE,norwayeast,Standard_D32_v3,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:46:04.069958 +AZURE,norwayeast,Standard_D32_v3,reserved_1y,NA,1.34532,USD,Azure Retail Prices API,2025-12-18T04:46:05.185176 +AZURE,norwayeast,Standard_D32_v3,reserved_3y,NA,0.926446,USD,Azure Retail Prices API,2025-12-18T04:46:05.185179 +AZURE,norwayeast,Standard_D32_v3,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:46:04.069156 +AZURE,norwayeast,Standard_D32a_v4,on_demand,NA,2.196,USD,Azure Retail Prices API,2025-12-18T04:46:04.068551 +AZURE,norwayeast,Standard_D32a_v4,reserved_1y,NA,1.29589,USD,Azure Retail Prices API,2025-12-18T04:46:05.184002 +AZURE,norwayeast,Standard_D32a_v4,reserved_3y,NA,0.834665,USD,Azure Retail Prices API,2025-12-18T04:46:05.184005 +AZURE,norwayeast,Standard_D32a_v4,spot,NA,0.405821,USD,Azure Retail Prices API,2025-12-18T04:46:04.068802 +AZURE,norwayeast,Standard_D32ads_v5,on_demand,NA,2.357,USD,Azure Retail Prices API,2025-12-18T04:46:04.068379 +AZURE,norwayeast,Standard_D32ads_v5,reserved_1y,NA,1.390411,USD,Azure Retail Prices API,2025-12-18T04:46:05.183924 +AZURE,norwayeast,Standard_D32ads_v5,reserved_3y,NA,0.89551,USD,Azure Retail Prices API,2025-12-18T04:46:05.183927 +AZURE,norwayeast,Standard_D32ads_v5,spot,NA,0.435574,USD,Azure Retail Prices API,2025-12-18T04:46:04.068747 +AZURE,norwayeast,Standard_D32ads_v6,on_demand,NA,2.611,USD,Azure Retail Prices API,2025-12-18T04:46:04.069886 +AZURE,norwayeast,Standard_D32ads_v6,reserved_1y,NA,1.540639,USD,Azure Retail Prices API,2025-12-18T04:46:05.185072 +AZURE,norwayeast,Standard_D32ads_v6,reserved_3y,NA,0.992237,USD,Azure Retail Prices API,2025-12-18T04:46:05.185074 +AZURE,norwayeast,Standard_D32ads_v6,spot,NA,0.482513,USD,Azure Retail Prices API,2025-12-18T04:46:04.069030 +AZURE,norwayeast,Standard_D32as_v4,on_demand,NA,2.196,USD,Azure Retail Prices API,2025-12-18T04:46:04.069033 +AZURE,norwayeast,Standard_D32as_v4,reserved_1y,NA,1.29589,USD,Azure Retail Prices API,2025-12-18T04:46:05.184354 +AZURE,norwayeast,Standard_D32as_v4,reserved_3y,NA,0.834665,USD,Azure Retail Prices API,2025-12-18T04:46:05.184357 +AZURE,norwayeast,Standard_D32as_v4,spot,NA,0.405821,USD,Azure Retail Prices API,2025-12-18T04:46:04.069165 +AZURE,norwayeast,Standard_D32as_v5,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:46:04.068820 +AZURE,norwayeast,Standard_D32as_v5,reserved_1y,NA,1.160959,USD,Azure Retail Prices API,2025-12-18T04:46:05.184230 +AZURE,norwayeast,Standard_D32as_v5,reserved_3y,NA,0.747717,USD,Azure Retail Prices API,2025-12-18T04:46:05.184233 +AZURE,norwayeast,Standard_D32as_v5,spot,NA,0.363686,USD,Azure Retail Prices API,2025-12-18T04:46:04.069365 +AZURE,norwayeast,Standard_D32d_v4,on_demand,NA,2.394,USD,Azure Retail Prices API,2025-12-18T04:46:04.069898 +AZURE,norwayeast,Standard_D32d_v4,reserved_1y,NA,1.412215,USD,Azure Retail Prices API,2025-12-18T04:46:05.185094 +AZURE,norwayeast,Standard_D32d_v4,reserved_3y,NA,0.909551,USD,Azure Retail Prices API,2025-12-18T04:46:05.185096 +AZURE,norwayeast,Standard_D32d_v4,spot,NA,0.442411,USD,Azure Retail Prices API,2025-12-18T04:46:04.068898 +AZURE,norwayeast,Standard_D32ds_v4,on_demand,NA,2.394,USD,Azure Retail Prices API,2025-12-18T04:46:04.069193 +AZURE,norwayeast,Standard_D32ds_v4,reserved_1y,NA,1.412215,USD,Azure Retail Prices API,2025-12-18T04:46:05.184473 +AZURE,norwayeast,Standard_D32ds_v4,reserved_3y,NA,0.909551,USD,Azure Retail Prices API,2025-12-18T04:46:05.184475 +AZURE,norwayeast,Standard_D32ds_v4,spot,NA,0.442411,USD,Azure Retail Prices API,2025-12-18T04:46:04.069247 +AZURE,norwayeast,Standard_D32ds_v5,on_demand,NA,2.394,USD,Azure Retail Prices API,2025-12-18T04:46:04.068628 +AZURE,norwayeast,Standard_D32ds_v5,reserved_1y,NA,1.412215,USD,Azure Retail Prices API,2025-12-18T04:46:05.184084 +AZURE,norwayeast,Standard_D32ds_v5,reserved_3y,NA,0.909551,USD,Azure Retail Prices API,2025-12-18T04:46:05.184087 +AZURE,norwayeast,Standard_D32ds_v5,spot,NA,0.442411,USD,Azure Retail Prices API,2025-12-18T04:46:04.069196 +AZURE,norwayeast,Standard_D32ds_v6,on_demand,NA,2.851,USD,Azure Retail Prices API,2025-12-18T04:46:04.068893 +AZURE,norwayeast,Standard_D32ds_v6,reserved_1y,NA,1.767352,USD,Azure Retail Prices API,2025-12-18T04:46:05.184276 +AZURE,norwayeast,Standard_D32ds_v6,reserved_3y,NA,1.11172,USD,Azure Retail Prices API,2025-12-18T04:46:05.184279 +AZURE,norwayeast,Standard_D32ds_v6,spot,NA,0.526865,USD,Azure Retail Prices API,2025-12-18T04:46:04.069426 +AZURE,norwayeast,Standard_D32pds_v6,on_demand,NA,2.102,USD,Azure Retail Prices API,2025-12-18T04:46:04.068375 +AZURE,norwayeast,Standard_D32pds_v6,reserved_1y,NA,1.240411,USD,Azure Retail Prices API,2025-12-18T04:46:05.183918 +AZURE,norwayeast,Standard_D32pds_v6,reserved_3y,NA,0.798896,USD,Azure Retail Prices API,2025-12-18T04:46:05.183921 +AZURE,norwayeast,Standard_D32pds_v6,spot,NA,0.38845,USD,Azure Retail Prices API,2025-12-18T04:46:04.069190 +AZURE,norwayeast,Standard_D32ps_v6,on_demand,NA,1.606,USD,Azure Retail Prices API,2025-12-18T04:46:04.069339 +AZURE,norwayeast,Standard_D32ps_v6,reserved_1y,NA,0.947831,USD,Azure Retail Prices API,2025-12-18T04:46:05.184577 +AZURE,norwayeast,Standard_D32ps_v6,reserved_3y,NA,0.610426,USD,Azure Retail Prices API,2025-12-18T04:46:05.184580 +AZURE,norwayeast,Standard_D32ps_v6,spot,NA,0.296789,USD,Azure Retail Prices API,2025-12-18T04:46:04.069423 +AZURE,norwayeast,Standard_D32s_v3,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:46:04.069880 +AZURE,norwayeast,Standard_D32s_v3,reserved_1y,NA,1.34532,USD,Azure Retail Prices API,2025-12-18T04:46:05.185066 +AZURE,norwayeast,Standard_D32s_v3,reserved_3y,NA,0.926446,USD,Azure Retail Prices API,2025-12-18T04:46:05.185069 +AZURE,norwayeast,Standard_D32s_v3,spot,NA,0.390298,USD,Azure Retail Prices API,2025-12-18T04:46:04.069952 +AZURE,norwayeast,Standard_D32s_v4,on_demand,NA,2.024,USD,Azure Retail Prices API,2025-12-18T04:46:04.069892 +AZURE,norwayeast,Standard_D32s_v4,reserved_1y,NA,1.194178,USD,Azure Retail Prices API,2025-12-18T04:46:05.185082 +AZURE,norwayeast,Standard_D32s_v4,reserved_3y,NA,0.769102,USD,Azure Retail Prices API,2025-12-18T04:46:05.185085 +AZURE,norwayeast,Standard_D32s_v4,spot,NA,0.374035,USD,Azure Retail Prices API,2025-12-18T04:46:04.069463 +AZURE,norwayeast,Standard_D32s_v5,on_demand,NA,2.024,USD,Azure Retail Prices API,2025-12-18T04:46:04.069359 +AZURE,norwayeast,Standard_D32s_v5,reserved_1y,NA,1.194178,USD,Azure Retail Prices API,2025-12-18T04:46:05.184588 +AZURE,norwayeast,Standard_D32s_v5,reserved_3y,NA,0.748896,USD,Azure Retail Prices API,2025-12-18T04:46:05.184591 +AZURE,norwayeast,Standard_D32s_v5,spot,NA,0.374035,USD,Azure Retail Prices API,2025-12-18T04:46:04.069442 +AZURE,norwayeast,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485454 +AZURE,norwayeast,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485466 +AZURE,norwayeast,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485472 +AZURE,norwayeast,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485460 +AZURE,norwayeast,Standard_D48a_v4,on_demand,NA,3.295,USD,Azure Retail Prices API,2025-12-18T04:46:04.069612 +AZURE,norwayeast,Standard_D48a_v4,reserved_1y,NA,1.943836,USD,Azure Retail Prices API,2025-12-18T04:46:05.184818 +AZURE,norwayeast,Standard_D48a_v4,reserved_3y,NA,1.251979,USD,Azure Retail Prices API,2025-12-18T04:46:05.184820 +AZURE,norwayeast,Standard_D48a_v4,spot,NA,0.608916,USD,Azure Retail Prices API,2025-12-18T04:46:04.069901 +AZURE,norwayeast,Standard_D48ads_v5,on_demand,NA,5.743,USD,Azure Retail Prices API,2025-12-18T04:46:04.068239 +AZURE,norwayeast,Standard_D48ads_v5,reserved_1y,NA,2.085616,USD,Azure Retail Prices API,2025-12-18T04:46:05.184643 +AZURE,norwayeast,Standard_D48ads_v5,reserved_3y,NA,1.343303,USD,Azure Retail Prices API,2025-12-18T04:46:05.184646 +AZURE,norwayeast,Standard_D48ads_v5,spot,NA,0.653268,USD,Azure Retail Prices API,2025-12-18T04:46:04.069312 +AZURE,norwayeast,Standard_D48ads_v6,on_demand,NA,3.917,USD,Azure Retail Prices API,2025-12-18T04:46:04.069519 +AZURE,norwayeast,Standard_D48ads_v6,reserved_1y,NA,2.310959,USD,Azure Retail Prices API,2025-12-18T04:46:05.184731 +AZURE,norwayeast,Standard_D48ads_v6,reserved_3y,NA,1.488394,USD,Azure Retail Prices API,2025-12-18T04:46:05.184736 +AZURE,norwayeast,Standard_D48ads_v6,spot,NA,0.723862,USD,Azure Retail Prices API,2025-12-18T04:46:04.068414 +AZURE,norwayeast,Standard_D48as_v4,on_demand,NA,3.295,USD,Azure Retail Prices API,2025-12-18T04:46:04.069180 +AZURE,norwayeast,Standard_D48as_v4,reserved_1y,NA,1.943836,USD,Azure Retail Prices API,2025-12-18T04:46:05.184461 +AZURE,norwayeast,Standard_D48as_v4,reserved_3y,NA,1.251979,USD,Azure Retail Prices API,2025-12-18T04:46:05.184464 +AZURE,norwayeast,Standard_D48as_v4,spot,NA,0.608916,USD,Azure Retail Prices API,2025-12-18T04:46:04.069485 +AZURE,norwayeast,Standard_D48as_v5,on_demand,NA,5.16,USD,Azure Retail Prices API,2025-12-18T04:46:04.068723 +AZURE,norwayeast,Standard_D48as_v5,reserved_1y,NA,1.741438,USD,Azure Retail Prices API,2025-12-18T04:46:05.184511 +AZURE,norwayeast,Standard_D48as_v5,reserved_3y,NA,1.121575,USD,Azure Retail Prices API,2025-12-18T04:46:05.184514 +AZURE,norwayeast,Standard_D48as_v5,spot,NA,0.54553,USD,Azure Retail Prices API,2025-12-18T04:46:04.068860 +AZURE,norwayeast,Standard_D48d_v4,on_demand,NA,3.59,USD,Azure Retail Prices API,2025-12-18T04:46:04.069240 +AZURE,norwayeast,Standard_D48d_v4,reserved_1y,NA,2.118379,USD,Azure Retail Prices API,2025-12-18T04:46:05.184516 +AZURE,norwayeast,Standard_D48d_v4,reserved_3y,NA,1.364346,USD,Azure Retail Prices API,2025-12-18T04:46:05.184519 +AZURE,norwayeast,Standard_D48d_v4,spot,NA,0.663432,USD,Azure Retail Prices API,2025-12-18T04:46:04.068908 +AZURE,norwayeast,Standard_D48ds_v4,on_demand,NA,3.59,USD,Azure Retail Prices API,2025-12-18T04:46:04.069042 +AZURE,norwayeast,Standard_D48ds_v4,reserved_1y,NA,2.118379,USD,Azure Retail Prices API,2025-12-18T04:46:05.184365 +AZURE,norwayeast,Standard_D48ds_v4,reserved_3y,NA,1.364346,USD,Azure Retail Prices API,2025-12-18T04:46:05.184367 +AZURE,norwayeast,Standard_D48ds_v4,spot,NA,0.663432,USD,Azure Retail Prices API,2025-12-18T04:46:04.069603 +AZURE,norwayeast,Standard_D48ds_v5,on_demand,NA,3.59,USD,Azure Retail Prices API,2025-12-18T04:46:04.069209 +AZURE,norwayeast,Standard_D48ds_v5,reserved_1y,NA,2.118379,USD,Azure Retail Prices API,2025-12-18T04:46:05.184489 +AZURE,norwayeast,Standard_D48ds_v5,reserved_3y,NA,1.364346,USD,Azure Retail Prices API,2025-12-18T04:46:05.184492 +AZURE,norwayeast,Standard_D48ds_v5,spot,NA,0.663432,USD,Azure Retail Prices API,2025-12-18T04:46:04.068300 +AZURE,norwayeast,Standard_D48ds_v6,on_demand,NA,4.276,USD,Azure Retail Prices API,2025-12-18T04:46:04.069403 +AZURE,norwayeast,Standard_D48ds_v6,reserved_1y,NA,2.651027,USD,Azure Retail Prices API,2025-12-18T04:46:05.184627 +AZURE,norwayeast,Standard_D48ds_v6,reserved_3y,NA,1.66758,USD,Azure Retail Prices API,2025-12-18T04:46:05.184630 +AZURE,norwayeast,Standard_D48ds_v6,spot,NA,0.790205,USD,Azure Retail Prices API,2025-12-18T04:46:04.070003 +AZURE,norwayeast,Standard_D48pds_v6,on_demand,NA,3.154,USD,Azure Retail Prices API,2025-12-18T04:46:04.068198 +AZURE,norwayeast,Standard_D48pds_v6,reserved_1y,NA,1.860616,USD,Azure Retail Prices API,2025-12-18T04:46:05.183772 +AZURE,norwayeast,Standard_D48pds_v6,reserved_3y,NA,1.198364,USD,Azure Retail Prices API,2025-12-18T04:46:05.183786 +AZURE,norwayeast,Standard_D48pds_v6,spot,NA,0.582859,USD,Azure Retail Prices API,2025-12-18T04:46:04.069093 +AZURE,norwayeast,Standard_D48ps_v6,on_demand,NA,2.41,USD,Azure Retail Prices API,2025-12-18T04:46:04.068450 +AZURE,norwayeast,Standard_D48ps_v6,reserved_1y,NA,1.421689,USD,Azure Retail Prices API,2025-12-18T04:46:05.183952 +AZURE,norwayeast,Standard_D48ps_v6,reserved_3y,NA,0.915639,USD,Azure Retail Prices API,2025-12-18T04:46:05.183955 +AZURE,norwayeast,Standard_D48ps_v6,spot,NA,0.445368,USD,Azure Retail Prices API,2025-12-18T04:46:04.068918 +AZURE,norwayeast,Standard_D48s_v4,on_demand,NA,3.036,USD,Azure Retail Prices API,2025-12-18T04:46:04.069141 +AZURE,norwayeast,Standard_D48s_v4,reserved_1y,NA,1.79121,USD,Azure Retail Prices API,2025-12-18T04:46:05.184439 +AZURE,norwayeast,Standard_D48s_v4,reserved_3y,NA,1.153691,USD,Azure Retail Prices API,2025-12-18T04:46:05.184441 +AZURE,norwayeast,Standard_D48s_v4,spot,NA,0.561053,USD,Azure Retail Prices API,2025-12-18T04:46:04.068625 +AZURE,norwayeast,Standard_D48s_v5,on_demand,NA,3.036,USD,Azure Retail Prices API,2025-12-18T04:46:04.069522 +AZURE,norwayeast,Standard_D48s_v5,reserved_1y,NA,1.79121,USD,Azure Retail Prices API,2025-12-18T04:46:05.184740 +AZURE,norwayeast,Standard_D48s_v5,reserved_3y,NA,1.123326,USD,Azure Retail Prices API,2025-12-18T04:46:05.184745 +AZURE,norwayeast,Standard_D48s_v5,spot,NA,0.561053,USD,Azure Retail Prices API,2025-12-18T04:46:04.068599 +AZURE,norwayeast,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486303 +AZURE,norwayeast,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486311 +AZURE,norwayeast,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486315 +AZURE,norwayeast,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486307 +AZURE,norwayeast,Standard_D4a_v4,on_demand,NA,0.275,USD,Azure Retail Prices API,2025-12-18T04:46:04.069234 +AZURE,norwayeast,Standard_D4a_v4,reserved_1y,NA,0.161986,USD,Azure Retail Prices API,2025-12-18T04:46:05.184506 +AZURE,norwayeast,Standard_D4a_v4,reserved_3y,NA,0.104338,USD,Azure Retail Prices API,2025-12-18T04:46:05.184508 +AZURE,norwayeast,Standard_D4a_v4,spot,NA,0.05082,USD,Azure Retail Prices API,2025-12-18T04:46:04.069020 +AZURE,norwayeast,Standard_D4ads_v5,on_demand,NA,0.295,USD,Azure Retail Prices API,2025-12-18T04:46:04.068790 +AZURE,norwayeast,Standard_D4ads_v5,reserved_1y,NA,0.173858,USD,Azure Retail Prices API,2025-12-18T04:46:05.184207 +AZURE,norwayeast,Standard_D4ads_v5,reserved_3y,NA,0.111948,USD,Azure Retail Prices API,2025-12-18T04:46:05.184210 +AZURE,norwayeast,Standard_D4ads_v5,spot,NA,0.054516,USD,Azure Retail Prices API,2025-12-18T04:46:04.069635 +AZURE,norwayeast,Standard_D4ads_v6,on_demand,NA,0.326,USD,Azure Retail Prices API,2025-12-18T04:46:04.069052 +AZURE,norwayeast,Standard_D4ads_v6,reserved_1y,NA,0.19258,USD,Azure Retail Prices API,2025-12-18T04:46:05.184376 +AZURE,norwayeast,Standard_D4ads_v6,reserved_3y,NA,0.124049,USD,Azure Retail Prices API,2025-12-18T04:46:05.184378 +AZURE,norwayeast,Standard_D4ads_v6,spot,NA,0.060245,USD,Azure Retail Prices API,2025-12-18T04:46:04.068816 +AZURE,norwayeast,Standard_D4as_v5,on_demand,NA,0.43,USD,Azure Retail Prices API,2025-12-18T04:46:04.068444 +AZURE,norwayeast,Standard_D4as_v5,reserved_1y,NA,0.145091,USD,Azure Retail Prices API,2025-12-18T04:46:05.185159 +AZURE,norwayeast,Standard_D4as_v5,reserved_3y,NA,0.093455,USD,Azure Retail Prices API,2025-12-18T04:46:05.185162 +AZURE,norwayeast,Standard_D4as_v5,spot,NA,0.045461,USD,Azure Retail Prices API,2025-12-18T04:46:04.070017 +AZURE,norwayeast,Standard_D4d_v4,on_demand,NA,0.299,USD,Azure Retail Prices API,2025-12-18T04:46:04.069889 +AZURE,norwayeast,Standard_D4d_v4,reserved_1y,NA,0.176484,USD,Azure Retail Prices API,2025-12-18T04:46:05.185077 +AZURE,norwayeast,Standard_D4d_v4,reserved_3y,NA,0.113699,USD,Azure Retail Prices API,2025-12-18T04:46:05.185080 +AZURE,norwayeast,Standard_D4d_v4,spot,NA,0.055255,USD,Azure Retail Prices API,2025-12-18T04:46:04.069558 +AZURE,norwayeast,Standard_D4ds_v4,on_demand,NA,0.299,USD,Azure Retail Prices API,2025-12-18T04:46:04.069445 +AZURE,norwayeast,Standard_D4ds_v4,reserved_1y,NA,0.176484,USD,Azure Retail Prices API,2025-12-18T04:46:05.184649 +AZURE,norwayeast,Standard_D4ds_v4,reserved_3y,NA,0.113699,USD,Azure Retail Prices API,2025-12-18T04:46:05.184652 +AZURE,norwayeast,Standard_D4ds_v4,spot,NA,0.055255,USD,Azure Retail Prices API,2025-12-18T04:46:04.068440 +AZURE,norwayeast,Standard_D4ds_v5,on_demand,NA,0.299,USD,Azure Retail Prices API,2025-12-18T04:46:04.069965 +AZURE,norwayeast,Standard_D4ds_v5,reserved_1y,NA,0.176484,USD,Azure Retail Prices API,2025-12-18T04:46:05.185182 +AZURE,norwayeast,Standard_D4ds_v5,reserved_3y,NA,0.113699,USD,Azure Retail Prices API,2025-12-18T04:46:05.185185 +AZURE,norwayeast,Standard_D4ds_v5,spot,NA,0.055255,USD,Azure Retail Prices API,2025-12-18T04:46:04.069561 +AZURE,norwayeast,Standard_D4ds_v6,on_demand,NA,0.356,USD,Azure Retail Prices API,2025-12-18T04:46:04.069183 +AZURE,norwayeast,Standard_D4ds_v6,reserved_1y,NA,0.22089,USD,Azure Retail Prices API,2025-12-18T04:46:05.184467 +AZURE,norwayeast,Standard_D4ds_v6,reserved_3y,NA,0.138965,USD,Azure Retail Prices API,2025-12-18T04:46:05.184470 +AZURE,norwayeast,Standard_D4ds_v6,spot,NA,0.065789,USD,Azure Retail Prices API,2025-12-18T04:46:04.069606 +AZURE,norwayeast,Standard_D4pds_v6,on_demand,NA,0.263,USD,Azure Retail Prices API,2025-12-18T04:46:04.068632 +AZURE,norwayeast,Standard_D4pds_v6,reserved_1y,NA,0.155023,USD,Azure Retail Prices API,2025-12-18T04:46:05.184090 +AZURE,norwayeast,Standard_D4pds_v6,reserved_3y,NA,0.099848,USD,Azure Retail Prices API,2025-12-18T04:46:05.184093 +AZURE,norwayeast,Standard_D4pds_v6,spot,NA,0.048602,USD,Azure Retail Prices API,2025-12-18T04:46:04.068524 +AZURE,norwayeast,Standard_D4ps_v6,on_demand,NA,0.201,USD,Azure Retail Prices API,2025-12-18T04:46:04.069335 +AZURE,norwayeast,Standard_D4ps_v6,reserved_1y,NA,0.118493,USD,Azure Retail Prices API,2025-12-18T04:46:05.184572 +AZURE,norwayeast,Standard_D4ps_v6,reserved_3y,NA,0.076294,USD,Azure Retail Prices API,2025-12-18T04:46:05.184575 +AZURE,norwayeast,Standard_D4ps_v6,spot,NA,0.037145,USD,Azure Retail Prices API,2025-12-18T04:46:04.068424 +AZURE,norwayeast,Standard_D4s_v3,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:46:04.068586 +AZURE,norwayeast,Standard_D4s_v3,reserved_1y,NA,0.168151,USD,Azure Retail Prices API,2025-12-18T04:46:05.184044 +AZURE,norwayeast,Standard_D4s_v3,reserved_3y,NA,0.11583,USD,Azure Retail Prices API,2025-12-18T04:46:05.184046 +AZURE,norwayeast,Standard_D4s_v3,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:46:04.068434 +AZURE,norwayeast,Standard_D4s_v4,on_demand,NA,0.253,USD,Azure Retail Prices API,2025-12-18T04:46:04.068883 +AZURE,norwayeast,Standard_D4s_v4,reserved_1y,NA,0.149315,USD,Azure Retail Prices API,2025-12-18T04:46:05.184270 +AZURE,norwayeast,Standard_D4s_v4,reserved_3y,NA,0.096157,USD,Azure Retail Prices API,2025-12-18T04:46:05.184273 +AZURE,norwayeast,Standard_D4s_v4,spot,NA,0.046754,USD,Azure Retail Prices API,2025-12-18T04:46:04.068717 +AZURE,norwayeast,Standard_D4s_v5,on_demand,NA,0.253,USD,Azure Retail Prices API,2025-12-18T04:46:04.068270 +AZURE,norwayeast,Standard_D4s_v5,reserved_1y,NA,0.149315,USD,Azure Retail Prices API,2025-12-18T04:46:05.183841 +AZURE,norwayeast,Standard_D4s_v5,reserved_3y,NA,0.093607,USD,Azure Retail Prices API,2025-12-18T04:46:05.183844 +AZURE,norwayeast,Standard_D4s_v5,spot,NA,0.046754,USD,Azure Retail Prices API,2025-12-18T04:46:04.069627 +AZURE,norwayeast,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487558 +AZURE,norwayeast,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487572 +AZURE,norwayeast,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487579 +AZURE,norwayeast,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487566 +AZURE,norwayeast,Standard_D64_v3,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:04.069135 +AZURE,norwayeast,Standard_D64_v3,reserved_1y,NA,2.690753,USD,Azure Retail Prices API,2025-12-18T04:46:05.184433 +AZURE,norwayeast,Standard_D64_v3,reserved_3y,NA,1.85293,USD,Azure Retail Prices API,2025-12-18T04:46:05.184436 +AZURE,norwayeast,Standard_D64_v3,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:04.069924 +AZURE,norwayeast,Standard_D64a_v4,on_demand,NA,4.393,USD,Azure Retail Prices API,2025-12-18T04:46:04.069994 +AZURE,norwayeast,Standard_D64a_v4,reserved_1y,NA,2.591895,USD,Azure Retail Prices API,2025-12-18T04:46:05.185215 +AZURE,norwayeast,Standard_D64a_v4,reserved_3y,NA,1.66933,USD,Azure Retail Prices API,2025-12-18T04:46:05.185217 +AZURE,norwayeast,Standard_D64a_v4,spot,NA,0.811826,USD,Azure Retail Prices API,2025-12-18T04:46:04.068263 +AZURE,norwayeast,Standard_D64ads_v5,on_demand,NA,7.657,USD,Azure Retail Prices API,2025-12-18T04:46:04.069074 +AZURE,norwayeast,Standard_D64ads_v5,reserved_1y,NA,2.780822,USD,Azure Retail Prices API,2025-12-18T04:46:05.184952 +AZURE,norwayeast,Standard_D64ads_v5,reserved_3y,NA,1.791058,USD,Azure Retail Prices API,2025-12-18T04:46:05.184955 +AZURE,norwayeast,Standard_D64ads_v5,spot,NA,0.870962,USD,Azure Retail Prices API,2025-12-18T04:46:04.070011 +AZURE,norwayeast,Standard_D64ads_v6,on_demand,NA,5.222,USD,Azure Retail Prices API,2025-12-18T04:46:04.069212 +AZURE,norwayeast,Standard_D64ads_v6,reserved_1y,NA,3.081164,USD,Azure Retail Prices API,2025-12-18T04:46:05.184495 +AZURE,norwayeast,Standard_D64ads_v6,reserved_3y,NA,1.984513,USD,Azure Retail Prices API,2025-12-18T04:46:05.184497 +AZURE,norwayeast,Standard_D64ads_v6,spot,NA,0.965026,USD,Azure Retail Prices API,2025-12-18T04:46:04.069621 +AZURE,norwayeast,Standard_D64as_v4,on_demand,NA,4.393,USD,Azure Retail Prices API,2025-12-18T04:46:04.069503 +AZURE,norwayeast,Standard_D64as_v4,reserved_1y,NA,2.591895,USD,Azure Retail Prices API,2025-12-18T04:46:05.184712 +AZURE,norwayeast,Standard_D64as_v4,reserved_3y,NA,1.66933,USD,Azure Retail Prices API,2025-12-18T04:46:05.184715 +AZURE,norwayeast,Standard_D64as_v4,spot,NA,0.811826,USD,Azure Retail Prices API,2025-12-18T04:46:04.069399 +AZURE,norwayeast,Standard_D64as_v5,on_demand,NA,3.935,USD,Azure Retail Prices API,2025-12-18T04:46:04.068277 +AZURE,norwayeast,Standard_D64as_v5,reserved_1y,NA,2.321918,USD,Azure Retail Prices API,2025-12-18T04:46:05.183847 +AZURE,norwayeast,Standard_D64as_v5,reserved_3y,NA,1.495434,USD,Azure Retail Prices API,2025-12-18T04:46:05.183850 +AZURE,norwayeast,Standard_D64as_v5,spot,NA,0.727188,USD,Azure Retail Prices API,2025-12-18T04:46:04.068602 +AZURE,norwayeast,Standard_D64d_v4,on_demand,NA,4.787,USD,Azure Retail Prices API,2025-12-18T04:46:04.069644 +AZURE,norwayeast,Standard_D64d_v4,reserved_1y,NA,2.824429,USD,Azure Retail Prices API,2025-12-18T04:46:05.184845 +AZURE,norwayeast,Standard_D64d_v4,reserved_3y,NA,1.81914,USD,Azure Retail Prices API,2025-12-18T04:46:05.184847 +AZURE,norwayeast,Standard_D64d_v4,spot,NA,0.884638,USD,Azure Retail Prices API,2025-12-18T04:46:04.069525 +AZURE,norwayeast,Standard_D64ds_v4,on_demand,NA,4.787,USD,Azure Retail Prices API,2025-12-18T04:46:04.068605 +AZURE,norwayeast,Standard_D64ds_v4,reserved_1y,NA,2.824429,USD,Azure Retail Prices API,2025-12-18T04:46:05.184061 +AZURE,norwayeast,Standard_D64ds_v4,reserved_3y,NA,1.81914,USD,Azure Retail Prices API,2025-12-18T04:46:05.184064 +AZURE,norwayeast,Standard_D64ds_v4,spot,NA,0.884638,USD,Azure Retail Prices API,2025-12-18T04:46:04.069448 +AZURE,norwayeast,Standard_D64ds_v5,on_demand,NA,4.787,USD,Azure Retail Prices API,2025-12-18T04:46:04.068337 +AZURE,norwayeast,Standard_D64ds_v5,reserved_1y,NA,2.824429,USD,Azure Retail Prices API,2025-12-18T04:46:05.183889 +AZURE,norwayeast,Standard_D64ds_v5,reserved_3y,NA,1.81914,USD,Azure Retail Prices API,2025-12-18T04:46:05.183892 +AZURE,norwayeast,Standard_D64ds_v5,spot,NA,0.884638,USD,Azure Retail Prices API,2025-12-18T04:46:04.069466 +AZURE,norwayeast,Standard_D64ds_v6,on_demand,NA,5.701,USD,Azure Retail Prices API,2025-12-18T04:46:04.069875 +AZURE,norwayeast,Standard_D64ds_v6,reserved_1y,NA,3.534703,USD,Azure Retail Prices API,2025-12-18T04:46:05.185061 +AZURE,norwayeast,Standard_D64ds_v6,reserved_3y,NA,2.22344,USD,Azure Retail Prices API,2025-12-18T04:46:05.185064 +AZURE,norwayeast,Standard_D64ds_v6,spot,NA,1.053545,USD,Azure Retail Prices API,2025-12-18T04:46:04.069660 +AZURE,norwayeast,Standard_D64pds_v6,on_demand,NA,4.205,USD,Azure Retail Prices API,2025-12-18T04:46:04.068487 +AZURE,norwayeast,Standard_D64pds_v6,reserved_1y,NA,2.480822,USD,Azure Retail Prices API,2025-12-18T04:46:05.183979 +AZURE,norwayeast,Standard_D64pds_v6,reserved_3y,NA,1.597831,USD,Azure Retail Prices API,2025-12-18T04:46:05.183982 +AZURE,norwayeast,Standard_D64pds_v6,spot,NA,0.777084,USD,Azure Retail Prices API,2025-12-18T04:46:04.069675 +AZURE,norwayeast,Standard_D64ps_v6,on_demand,NA,3.213,USD,Azure Retail Prices API,2025-12-18T04:46:04.069722 +AZURE,norwayeast,Standard_D64ps_v6,reserved_1y,NA,1.895548,USD,Azure Retail Prices API,2025-12-18T04:46:05.184879 +AZURE,norwayeast,Standard_D64ps_v6,reserved_3y,NA,1.220852,USD,Azure Retail Prices API,2025-12-18T04:46:05.184882 +AZURE,norwayeast,Standard_D64ps_v6,spot,NA,0.593762,USD,Azure Retail Prices API,2025-12-18T04:46:04.069710 +AZURE,norwayeast,Standard_D64s_v3,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:04.069705 +AZURE,norwayeast,Standard_D64s_v3,reserved_1y,NA,2.690753,USD,Azure Retail Prices API,2025-12-18T04:46:05.184873 +AZURE,norwayeast,Standard_D64s_v3,reserved_3y,NA,1.85293,USD,Azure Retail Prices API,2025-12-18T04:46:05.184876 +AZURE,norwayeast,Standard_D64s_v3,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:04.069090 +AZURE,norwayeast,Standard_D64s_v4,on_demand,NA,4.048,USD,Azure Retail Prices API,2025-12-18T04:46:04.069848 +AZURE,norwayeast,Standard_D64s_v4,reserved_1y,NA,2.388356,USD,Azure Retail Prices API,2025-12-18T04:46:05.185023 +AZURE,norwayeast,Standard_D64s_v4,reserved_3y,NA,1.538242,USD,Azure Retail Prices API,2025-12-18T04:46:05.185025 +AZURE,norwayeast,Standard_D64s_v4,spot,NA,0.74807,USD,Azure Retail Prices API,2025-12-18T04:46:04.068654 +AZURE,norwayeast,Standard_D64s_v5,on_demand,NA,4.048,USD,Azure Retail Prices API,2025-12-18T04:46:04.069609 +AZURE,norwayeast,Standard_D64s_v5,reserved_1y,NA,2.388356,USD,Azure Retail Prices API,2025-12-18T04:46:05.184812 +AZURE,norwayeast,Standard_D64s_v5,reserved_3y,NA,1.497755,USD,Azure Retail Prices API,2025-12-18T04:46:05.184815 +AZURE,norwayeast,Standard_D64s_v5,spot,NA,0.74807,USD,Azure Retail Prices API,2025-12-18T04:46:04.069024 +AZURE,norwayeast,Standard_D8_v3,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:46:04.068933 +AZURE,norwayeast,Standard_D8_v3,reserved_1y,NA,0.336301,USD,Azure Retail Prices API,2025-12-18T04:46:05.184299 +AZURE,norwayeast,Standard_D8_v3,reserved_3y,NA,0.231621,USD,Azure Retail Prices API,2025-12-18T04:46:05.184302 +AZURE,norwayeast,Standard_D8_v3,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:46:04.068529 +AZURE,norwayeast,Standard_D8a_v4,on_demand,NA,0.549,USD,Azure Retail Prices API,2025-12-18T04:46:04.068913 +AZURE,norwayeast,Standard_D8a_v4,reserved_1y,NA,0.323973,USD,Azure Retail Prices API,2025-12-18T04:46:05.184282 +AZURE,norwayeast,Standard_D8a_v4,reserved_3y,NA,0.208676,USD,Azure Retail Prices API,2025-12-18T04:46:05.184285 +AZURE,norwayeast,Standard_D8a_v4,spot,NA,0.101455,USD,Azure Retail Prices API,2025-12-18T04:46:04.068293 +AZURE,norwayeast,Standard_D8ads_v5,on_demand,NA,0.957,USD,Azure Retail Prices API,2025-12-18T04:46:04.068457 +AZURE,norwayeast,Standard_D8ads_v5,reserved_1y,NA,0.347603,USD,Azure Retail Prices API,2025-12-18T04:46:05.184668 +AZURE,norwayeast,Standard_D8ads_v5,reserved_3y,NA,0.223896,USD,Azure Retail Prices API,2025-12-18T04:46:05.184673 +AZURE,norwayeast,Standard_D8ads_v5,spot,NA,0.108847,USD,Azure Retail Prices API,2025-12-18T04:46:04.068663 +AZURE,norwayeast,Standard_D8ads_v6,on_demand,NA,0.653,USD,Azure Retail Prices API,2025-12-18T04:46:04.068287 +AZURE,norwayeast,Standard_D8ads_v6,reserved_1y,NA,0.38516,USD,Azure Retail Prices API,2025-12-18T04:46:05.183859 +AZURE,norwayeast,Standard_D8ads_v6,reserved_3y,NA,0.248059,USD,Azure Retail Prices API,2025-12-18T04:46:05.183862 +AZURE,norwayeast,Standard_D8ads_v6,spot,NA,0.120674,USD,Azure Retail Prices API,2025-12-18T04:46:04.069417 +AZURE,norwayeast,Standard_D8as_v4,on_demand,NA,0.549,USD,Azure Retail Prices API,2025-12-18T04:46:04.069551 +AZURE,norwayeast,Standard_D8as_v4,reserved_1y,NA,0.323973,USD,Azure Retail Prices API,2025-12-18T04:46:05.184773 +AZURE,norwayeast,Standard_D8as_v4,reserved_3y,NA,0.208676,USD,Azure Retail Prices API,2025-12-18T04:46:05.184776 +AZURE,norwayeast,Standard_D8as_v4,spot,NA,0.101455,USD,Azure Retail Prices API,2025-12-18T04:46:04.069728 +AZURE,norwayeast,Standard_D8as_v5,on_demand,NA,0.86,USD,Azure Retail Prices API,2025-12-18T04:46:04.068385 +AZURE,norwayeast,Standard_D8as_v5,reserved_1y,NA,0.290183,USD,Azure Retail Prices API,2025-12-18T04:46:05.185039 +AZURE,norwayeast,Standard_D8as_v5,reserved_3y,NA,0.186948,USD,Azure Retail Prices API,2025-12-18T04:46:05.185042 +AZURE,norwayeast,Standard_D8as_v5,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:46:04.069780 +AZURE,norwayeast,Standard_D8d_v4,on_demand,NA,0.598,USD,Azure Retail Prices API,2025-12-18T04:46:04.068555 +AZURE,norwayeast,Standard_D8d_v4,reserved_1y,NA,0.353082,USD,Azure Retail Prices API,2025-12-18T04:46:05.184008 +AZURE,norwayeast,Standard_D8d_v4,reserved_3y,NA,0.227397,USD,Azure Retail Prices API,2025-12-18T04:46:05.184011 +AZURE,norwayeast,Standard_D8d_v4,spot,NA,0.11051,USD,Azure Retail Prices API,2025-12-18T04:46:04.069381 +AZURE,norwayeast,Standard_D8ds_v4,on_demand,NA,0.598,USD,Azure Retail Prices API,2025-12-18T04:46:04.068447 +AZURE,norwayeast,Standard_D8ds_v4,reserved_1y,NA,0.353082,USD,Azure Retail Prices API,2025-12-18T04:46:05.183946 +AZURE,norwayeast,Standard_D8ds_v4,reserved_3y,NA,0.227397,USD,Azure Retail Prices API,2025-12-18T04:46:05.183949 +AZURE,norwayeast,Standard_D8ds_v4,spot,NA,0.11051,USD,Azure Retail Prices API,2025-12-18T04:46:04.069138 +AZURE,norwayeast,Standard_D8ds_v5,on_demand,NA,0.598,USD,Azure Retail Prices API,2025-12-18T04:46:04.069948 +AZURE,norwayeast,Standard_D8ds_v5,reserved_1y,NA,0.353082,USD,Azure Retail Prices API,2025-12-18T04:46:05.185171 +AZURE,norwayeast,Standard_D8ds_v5,reserved_3y,NA,0.227397,USD,Azure Retail Prices API,2025-12-18T04:46:05.185173 +AZURE,norwayeast,Standard_D8ds_v5,spot,NA,0.11051,USD,Azure Retail Prices API,2025-12-18T04:46:04.068873 +AZURE,norwayeast,Standard_D8ds_v6,on_demand,NA,0.713,USD,Azure Retail Prices API,2025-12-18T04:46:04.068309 +AZURE,norwayeast,Standard_D8ds_v6,reserved_1y,NA,0.441781,USD,Azure Retail Prices API,2025-12-18T04:46:05.183878 +AZURE,norwayeast,Standard_D8ds_v6,reserved_3y,NA,0.27793,USD,Azure Retail Prices API,2025-12-18T04:46:05.183880 +AZURE,norwayeast,Standard_D8ds_v6,spot,NA,0.131762,USD,Azure Retail Prices API,2025-12-18T04:46:04.068306 +AZURE,norwayeast,Standard_D8pds_v6,on_demand,NA,0.526,USD,Azure Retail Prices API,2025-12-18T04:46:04.068688 +AZURE,norwayeast,Standard_D8pds_v6,reserved_1y,NA,0.31016,USD,Azure Retail Prices API,2025-12-18T04:46:05.184141 +AZURE,norwayeast,Standard_D8pds_v6,reserved_3y,NA,0.199734,USD,Azure Retail Prices API,2025-12-18T04:46:05.184144 +AZURE,norwayeast,Standard_D8pds_v6,spot,NA,0.097205,USD,Azure Retail Prices API,2025-12-18T04:46:04.068356 +AZURE,norwayeast,Standard_D8ps_v6,on_demand,NA,0.402,USD,Azure Retail Prices API,2025-12-18T04:46:04.069132 +AZURE,norwayeast,Standard_D8ps_v6,reserved_1y,NA,0.236986,USD,Azure Retail Prices API,2025-12-18T04:46:05.184427 +AZURE,norwayeast,Standard_D8ps_v6,reserved_3y,NA,0.152626,USD,Azure Retail Prices API,2025-12-18T04:46:05.184430 +AZURE,norwayeast,Standard_D8ps_v6,spot,NA,0.07429,USD,Azure Retail Prices API,2025-12-18T04:46:04.068391 +AZURE,norwayeast,Standard_D8s_v3,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:46:04.068644 +AZURE,norwayeast,Standard_D8s_v3,reserved_1y,NA,0.336301,USD,Azure Retail Prices API,2025-12-18T04:46:05.184107 +AZURE,norwayeast,Standard_D8s_v3,reserved_3y,NA,0.231621,USD,Azure Retail Prices API,2025-12-18T04:46:05.184110 +AZURE,norwayeast,Standard_D8s_v3,spot,NA,0.097574,USD,Azure Retail Prices API,2025-12-18T04:46:04.069145 +AZURE,norwayeast,Standard_D8s_v4,on_demand,NA,0.506,USD,Azure Retail Prices API,2025-12-18T04:46:04.069106 +AZURE,norwayeast,Standard_D8s_v4,reserved_1y,NA,0.298516,USD,Azure Retail Prices API,2025-12-18T04:46:05.184409 +AZURE,norwayeast,Standard_D8s_v4,reserved_3y,NA,0.192275,USD,Azure Retail Prices API,2025-12-18T04:46:05.184412 +AZURE,norwayeast,Standard_D8s_v4,spot,NA,0.093509,USD,Azure Retail Prices API,2025-12-18T04:46:04.069987 +AZURE,norwayeast,Standard_D8s_v5,on_demand,NA,0.506,USD,Azure Retail Prices API,2025-12-18T04:46:04.069112 +AZURE,norwayeast,Standard_D8s_v5,reserved_1y,NA,0.298516,USD,Azure Retail Prices API,2025-12-18T04:46:05.184422 +AZURE,norwayeast,Standard_D8s_v5,reserved_3y,NA,0.187215,USD,Azure Retail Prices API,2025-12-18T04:46:05.184425 +AZURE,norwayeast,Standard_D8s_v5,spot,NA,0.093509,USD,Azure Retail Prices API,2025-12-18T04:46:04.068767 +AZURE,norwayeast,Standard_D96a_v4,on_demand,NA,6.589,USD,Azure Retail Prices API,2025-12-18T04:46:04.069945 +AZURE,norwayeast,Standard_D96a_v4,reserved_1y,NA,3.887785,USD,Azure Retail Prices API,2025-12-18T04:46:05.185165 +AZURE,norwayeast,Standard_D96a_v4,reserved_3y,NA,2.503995,USD,Azure Retail Prices API,2025-12-18T04:46:05.185168 +AZURE,norwayeast,Standard_D96a_v4,spot,NA,1.217647,USD,Azure Retail Prices API,2025-12-18T04:46:04.068785 +AZURE,norwayeast,Standard_D96ads_v5,on_demand,NA,11.486,USD,Azure Retail Prices API,2025-12-18T04:46:04.068479 +AZURE,norwayeast,Standard_D96ads_v5,reserved_1y,NA,4.171233,USD,Azure Retail Prices API,2025-12-18T04:46:05.184755 +AZURE,norwayeast,Standard_D96ads_v5,reserved_3y,NA,2.686568,USD,Azure Retail Prices API,2025-12-18T04:46:05.184758 +AZURE,norwayeast,Standard_D96ads_v5,spot,NA,1.306536,USD,Azure Retail Prices API,2025-12-18T04:46:04.069792 +AZURE,norwayeast,Standard_D96ads_v6,on_demand,NA,7.834,USD,Azure Retail Prices API,2025-12-18T04:46:04.068638 +AZURE,norwayeast,Standard_D96ads_v6,reserved_1y,NA,4.621804,USD,Azure Retail Prices API,2025-12-18T04:46:05.184101 +AZURE,norwayeast,Standard_D96ads_v6,reserved_3y,NA,2.97675,USD,Azure Retail Prices API,2025-12-18T04:46:05.184104 +AZURE,norwayeast,Standard_D96ads_v6,spot,NA,1.447723,USD,Azure Retail Prices API,2025-12-18T04:46:04.069963 +AZURE,norwayeast,Standard_D96as_v4,on_demand,NA,6.589,USD,Azure Retail Prices API,2025-12-18T04:46:04.068260 +AZURE,norwayeast,Standard_D96as_v4,reserved_1y,NA,3.887785,USD,Azure Retail Prices API,2025-12-18T04:46:05.183828 +AZURE,norwayeast,Standard_D96as_v4,reserved_3y,NA,2.503995,USD,Azure Retail Prices API,2025-12-18T04:46:05.183831 +AZURE,norwayeast,Standard_D96as_v4,spot,NA,1.217647,USD,Azure Retail Prices API,2025-12-18T04:46:04.069378 +AZURE,norwayeast,Standard_D96as_v5,on_demand,NA,10.319,USD,Azure Retail Prices API,2025-12-18T04:46:04.068888 +AZURE,norwayeast,Standard_D96as_v5,reserved_1y,NA,3.482763,USD,Azure Retail Prices API,2025-12-18T04:46:05.185110 +AZURE,norwayeast,Standard_D96as_v5,reserved_3y,NA,2.243151,USD,Azure Retail Prices API,2025-12-18T04:46:05.185112 +AZURE,norwayeast,Standard_D96as_v5,spot,NA,1.090874,USD,Azure Retail Prices API,2025-12-18T04:46:04.068869 +AZURE,norwayeast,Standard_D96ds_v5,on_demand,NA,7.181,USD,Azure Retail Prices API,2025-12-18T04:46:04.069812 +AZURE,norwayeast,Standard_D96ds_v5,reserved_1y,NA,4.236644,USD,Azure Retail Prices API,2025-12-18T04:46:05.184996 +AZURE,norwayeast,Standard_D96ds_v5,reserved_3y,NA,2.728691,USD,Azure Retail Prices API,2025-12-18T04:46:05.184999 +AZURE,norwayeast,Standard_D96ds_v5,spot,NA,1.327049,USD,Azure Retail Prices API,2025-12-18T04:46:04.069103 +AZURE,norwayeast,Standard_D96ds_v6,on_demand,NA,8.552,USD,Azure Retail Prices API,2025-12-18T04:46:04.068992 +AZURE,norwayeast,Standard_D96ds_v6,reserved_1y,NA,5.302055,USD,Azure Retail Prices API,2025-12-18T04:46:05.184343 +AZURE,norwayeast,Standard_D96ds_v6,reserved_3y,NA,3.33516,USD,Azure Retail Prices API,2025-12-18T04:46:05.184346 +AZURE,norwayeast,Standard_D96ds_v6,spot,NA,1.58041,USD,Azure Retail Prices API,2025-12-18T04:46:04.069513 +AZURE,norwayeast,Standard_D96pds_v6,on_demand,NA,6.307,USD,Azure Retail Prices API,2025-12-18T04:46:04.069600 +AZURE,norwayeast,Standard_D96pds_v6,reserved_1y,NA,3.721233,USD,Azure Retail Prices API,2025-12-18T04:46:05.184806 +AZURE,norwayeast,Standard_D96pds_v6,reserved_3y,NA,2.396728,USD,Azure Retail Prices API,2025-12-18T04:46:05.184809 +AZURE,norwayeast,Standard_D96pds_v6,spot,NA,1.165534,USD,Azure Retail Prices API,2025-12-18T04:46:04.068359 +AZURE,norwayeast,Standard_D96ps_v6,on_demand,NA,4.819,USD,Azure Retail Prices API,2025-12-18T04:46:04.069206 +AZURE,norwayeast,Standard_D96ps_v6,reserved_1y,NA,2.843379,USD,Azure Retail Prices API,2025-12-18T04:46:05.184484 +AZURE,norwayeast,Standard_D96ps_v6,reserved_3y,NA,1.831279,USD,Azure Retail Prices API,2025-12-18T04:46:05.184486 +AZURE,norwayeast,Standard_D96ps_v6,spot,NA,0.890551,USD,Azure Retail Prices API,2025-12-18T04:46:04.069657 +AZURE,norwayeast,Standard_D96s_v5,on_demand,NA,6.072,USD,Azure Retail Prices API,2025-12-18T04:46:04.068840 +AZURE,norwayeast,Standard_D96s_v5,reserved_1y,NA,3.582534,USD,Azure Retail Prices API,2025-12-18T04:46:05.184248 +AZURE,norwayeast,Standard_D96s_v5,reserved_3y,NA,2.246651,USD,Azure Retail Prices API,2025-12-18T04:46:05.184251 +AZURE,norwayeast,Standard_D96s_v5,spot,NA,1.122106,USD,Azure Retail Prices API,2025-12-18T04:46:04.069384 +AZURE,norwayeast,Standard_DC16ads_v6,on_demand,NA,1.306,USD,Azure Retail Prices API,2025-12-18T04:46:04.068824 +AZURE,norwayeast,Standard_DC16ads_v6,reserved_1y,NA,0.77032,USD,Azure Retail Prices API,2025-12-18T04:46:05.184236 +AZURE,norwayeast,Standard_DC16ads_v6,reserved_3y,NA,0.496119,USD,Azure Retail Prices API,2025-12-18T04:46:05.184239 +AZURE,norwayeast,Standard_DC16ads_v6,spot,NA,0.241349,USD,Azure Retail Prices API,2025-12-18T04:46:04.069696 +AZURE,norwayeast,Standard_DC2ads_v6,on_demand,NA,0.163,USD,Azure Retail Prices API,2025-12-18T04:46:04.068231 +AZURE,norwayeast,Standard_DC2ads_v6,reserved_1y,NA,0.096233,USD,Azure Retail Prices API,2025-12-18T04:46:05.183797 +AZURE,norwayeast,Standard_DC2ads_v6,reserved_3y,NA,0.062024,USD,Azure Retail Prices API,2025-12-18T04:46:05.183800 +AZURE,norwayeast,Standard_DC2ads_v6,spot,NA,0.030122,USD,Azure Retail Prices API,2025-12-18T04:46:04.068592 +AZURE,norwayeast,Standard_DC32ads_v6,on_demand,NA,2.611,USD,Azure Retail Prices API,2025-12-18T04:46:04.069972 +AZURE,norwayeast,Standard_DC32ads_v6,reserved_1y,NA,1.540639,USD,Azure Retail Prices API,2025-12-18T04:46:05.185188 +AZURE,norwayeast,Standard_DC32ads_v6,reserved_3y,NA,0.992237,USD,Azure Retail Prices API,2025-12-18T04:46:05.185191 +AZURE,norwayeast,Standard_DC32ads_v6,spot,NA,0.482513,USD,Azure Retail Prices API,2025-12-18T04:46:04.068684 +AZURE,norwayeast,Standard_DC48ads_v6,on_demand,NA,3.917,USD,Azure Retail Prices API,2025-12-18T04:46:04.068738 +AZURE,norwayeast,Standard_DC48ads_v6,reserved_1y,NA,2.310959,USD,Azure Retail Prices API,2025-12-18T04:46:05.184163 +AZURE,norwayeast,Standard_DC48ads_v6,reserved_3y,NA,1.488394,USD,Azure Retail Prices API,2025-12-18T04:46:05.184166 +AZURE,norwayeast,Standard_DC48ads_v6,spot,NA,0.723862,USD,Azure Retail Prices API,2025-12-18T04:46:04.069716 +AZURE,norwayeast,Standard_DC4ads_v6,on_demand,NA,0.326,USD,Azure Retail Prices API,2025-12-18T04:46:04.069933 +AZURE,norwayeast,Standard_DC4ads_v6,reserved_1y,NA,0.19258,USD,Azure Retail Prices API,2025-12-18T04:46:05.185137 +AZURE,norwayeast,Standard_DC4ads_v6,reserved_3y,NA,0.124049,USD,Azure Retail Prices API,2025-12-18T04:46:05.185139 +AZURE,norwayeast,Standard_DC4ads_v6,spot,NA,0.060245,USD,Azure Retail Prices API,2025-12-18T04:46:04.068903 +AZURE,norwayeast,Standard_DC64ads_v6,on_demand,NA,5.222,USD,Azure Retail Prices API,2025-12-18T04:46:04.069476 +AZURE,norwayeast,Standard_DC64ads_v6,reserved_1y,NA,3.081164,USD,Azure Retail Prices API,2025-12-18T04:46:05.184684 +AZURE,norwayeast,Standard_DC64ads_v6,reserved_3y,NA,1.984513,USD,Azure Retail Prices API,2025-12-18T04:46:05.184687 +AZURE,norwayeast,Standard_DC64ads_v6,spot,NA,0.965026,USD,Azure Retail Prices API,2025-12-18T04:46:04.068943 +AZURE,norwayeast,Standard_DC8ads_v6,on_demand,NA,0.653,USD,Azure Retail Prices API,2025-12-18T04:46:04.069744 +AZURE,norwayeast,Standard_DC8ads_v6,reserved_1y,NA,0.38516,USD,Azure Retail Prices API,2025-12-18T04:46:05.184907 +AZURE,norwayeast,Standard_DC8ads_v6,reserved_3y,NA,0.248059,USD,Azure Retail Prices API,2025-12-18T04:46:05.184910 +AZURE,norwayeast,Standard_DC8ads_v6,spot,NA,0.120674,USD,Azure Retail Prices API,2025-12-18T04:46:04.068404 +AZURE,norwayeast,Standard_DC96ads_v6,on_demand,NA,7.834,USD,Azure Retail Prices API,2025-12-18T04:46:04.069319 +AZURE,norwayeast,Standard_DC96ads_v6,reserved_1y,NA,4.621804,USD,Azure Retail Prices API,2025-12-18T04:46:05.184561 +AZURE,norwayeast,Standard_DC96ads_v6,reserved_3y,NA,2.97675,USD,Azure Retail Prices API,2025-12-18T04:46:05.184563 +AZURE,norwayeast,Standard_DC96ads_v6,spot,NA,1.447723,USD,Azure Retail Prices API,2025-12-18T04:46:04.069199 +AZURE,norwayeast,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495430 +AZURE,norwayeast,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495438 +AZURE,norwayeast,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495442 +AZURE,norwayeast,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495434 +AZURE,norwayeast,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496315 +AZURE,norwayeast,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496323 +AZURE,norwayeast,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496327 +AZURE,norwayeast,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496319 +AZURE,norwayeast,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497053 +AZURE,norwayeast,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497068 +AZURE,norwayeast,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497073 +AZURE,norwayeast,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497062 +AZURE,norwayeast,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497949 +AZURE,norwayeast,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497957 +AZURE,norwayeast,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497961 +AZURE,norwayeast,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497953 +AZURE,norwayeast,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491767 +AZURE,norwayeast,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491775 +AZURE,norwayeast,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491779 +AZURE,norwayeast,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491771 +AZURE,norwayeast,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492515 +AZURE,norwayeast,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492523 +AZURE,norwayeast,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492527 +AZURE,norwayeast,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492519 +AZURE,norwayeast,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493237 +AZURE,norwayeast,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493245 +AZURE,norwayeast,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493249 +AZURE,norwayeast,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493241 +AZURE,norwayeast,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493950 +AZURE,norwayeast,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493958 +AZURE,norwayeast,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493962 +AZURE,norwayeast,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493954 +AZURE,norwayeast,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494663 +AZURE,norwayeast,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494671 +AZURE,norwayeast,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494675 +AZURE,norwayeast,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494667 +AZURE,norwayeast,Standard_E128ds_v6,on_demand,NA,14.966,USD,Azure Retail Prices API,2025-12-18T04:46:04.068437 +AZURE,norwayeast,Standard_E128ds_v6,reserved_1y,NA,9.278767,USD,Azure Retail Prices API,2025-12-18T04:46:05.183941 +AZURE,norwayeast,Standard_E128ds_v6,reserved_3y,NA,5.836644,USD,Azure Retail Prices API,2025-12-18T04:46:05.183944 +AZURE,norwayeast,Standard_E128ds_v6,spot,NA,2.765717,USD,Azure Retail Prices API,2025-12-18T04:46:04.068709 +AZURE,norwayeast,Standard_E16_v3,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:46:04.069070 +AZURE,norwayeast,Standard_E16_v3,reserved_1y,NA,0.828196,USD,Azure Retail Prices API,2025-12-18T04:46:05.184398 +AZURE,norwayeast,Standard_E16_v3,reserved_3y,NA,0.529566,USD,Azure Retail Prices API,2025-12-18T04:46:05.184401 +AZURE,norwayeast,Standard_E16_v3,spot,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:04.069682 +AZURE,norwayeast,Standard_E16a_v4,on_demand,NA,1.441,USD,Azure Retail Prices API,2025-12-18T04:46:04.069734 +AZURE,norwayeast,Standard_E16a_v4,reserved_1y,NA,0.850457,USD,Azure Retail Prices API,2025-12-18T04:46:05.184896 +AZURE,norwayeast,Standard_E16a_v4,reserved_3y,NA,0.547755,USD,Azure Retail Prices API,2025-12-18T04:46:05.184899 +AZURE,norwayeast,Standard_E16a_v4,spot,NA,0.266297,USD,Azure Retail Prices API,2025-12-18T04:46:04.069296 +AZURE,norwayeast,Standard_E16ads_v5,on_demand,NA,2.235,USD,Azure Retail Prices API,2025-12-18T04:46:04.069036 +AZURE,norwayeast,Standard_E16ads_v5,reserved_1y,NA,0.884247,USD,Azure Retail Prices API,2025-12-18T04:46:05.185198 +AZURE,norwayeast,Standard_E16ads_v5,reserved_3y,NA,0.569482,USD,Azure Retail Prices API,2025-12-18T04:46:05.185201 +AZURE,norwayeast,Standard_E16ads_v5,spot,NA,0.277015,USD,Azure Retail Prices API,2025-12-18T04:46:04.069457 +AZURE,norwayeast,Standard_E16ads_v6,on_demand,NA,1.661,USD,Azure Retail Prices API,2025-12-18T04:46:04.069633 +AZURE,norwayeast,Standard_E16ads_v6,reserved_1y,NA,0.979909,USD,Azure Retail Prices API,2025-12-18T04:46:05.184834 +AZURE,norwayeast,Standard_E16ads_v6,reserved_3y,NA,0.631088,USD,Azure Retail Prices API,2025-12-18T04:46:05.184836 +AZURE,norwayeast,Standard_E16ads_v6,spot,NA,0.306953,USD,Azure Retail Prices API,2025-12-18T04:46:04.069719 +AZURE,norwayeast,Standard_E16as_v4,on_demand,NA,1.441,USD,Azure Retail Prices API,2025-12-18T04:46:04.068223 +AZURE,norwayeast,Standard_E16as_v4,reserved_1y,NA,0.850457,USD,Azure Retail Prices API,2025-12-18T04:46:05.183791 +AZURE,norwayeast,Standard_E16as_v4,reserved_3y,NA,0.547755,USD,Azure Retail Prices API,2025-12-18T04:46:05.183794 +AZURE,norwayeast,Standard_E16as_v4,spot,NA,0.266297,USD,Azure Retail Prices API,2025-12-18T04:46:04.069349 +AZURE,norwayeast,Standard_E16as_v5,on_demand,NA,2.029,USD,Azure Retail Prices API,2025-12-18T04:46:04.068750 +AZURE,norwayeast,Standard_E16as_v5,reserved_1y,NA,0.762671,USD,Azure Retail Prices API,2025-12-18T04:46:05.184359 +AZURE,norwayeast,Standard_E16as_v5,reserved_3y,NA,0.491248,USD,Azure Retail Prices API,2025-12-18T04:46:05.184362 +AZURE,norwayeast,Standard_E16as_v5,spot,NA,0.238946,USD,Azure Retail Prices API,2025-12-18T04:46:04.068878 +AZURE,norwayeast,Standard_E16d_v4,on_demand,NA,1.522,USD,Azure Retail Prices API,2025-12-18T04:46:04.069368 +AZURE,norwayeast,Standard_E16d_v4,reserved_1y,NA,0.898174,USD,Azure Retail Prices API,2025-12-18T04:46:05.184599 +AZURE,norwayeast,Standard_E16d_v4,reserved_3y,NA,0.578501,USD,Azure Retail Prices API,2025-12-18T04:46:05.184602 +AZURE,norwayeast,Standard_E16d_v4,spot,NA,0.281266,USD,Azure Retail Prices API,2025-12-18T04:46:04.069491 +AZURE,norwayeast,Standard_E16ds_v4,on_demand,NA,1.522,USD,Azure Retail Prices API,2025-12-18T04:46:04.068497 +AZURE,norwayeast,Standard_E16ds_v4,reserved_1y,NA,0.898174,USD,Azure Retail Prices API,2025-12-18T04:46:05.183985 +AZURE,norwayeast,Standard_E16ds_v4,reserved_3y,NA,0.578501,USD,Azure Retail Prices API,2025-12-18T04:46:05.183987 +AZURE,norwayeast,Standard_E16ds_v4,spot,NA,0.281266,USD,Azure Retail Prices API,2025-12-18T04:46:04.069187 +AZURE,norwayeast,Standard_E16ds_v5,on_demand,NA,1.522,USD,Azure Retail Prices API,2025-12-18T04:46:04.069863 +AZURE,norwayeast,Standard_E16ds_v5,reserved_1y,NA,0.898174,USD,Azure Retail Prices API,2025-12-18T04:46:05.185050 +AZURE,norwayeast,Standard_E16ds_v5,reserved_3y,NA,0.578501,USD,Azure Retail Prices API,2025-12-18T04:46:05.185052 +AZURE,norwayeast,Standard_E16ds_v5,spot,NA,0.281266,USD,Azure Retail Prices API,2025-12-18T04:46:04.068835 +AZURE,norwayeast,Standard_E16ds_v6,on_demand,NA,1.871,USD,Azure Retail Prices API,2025-12-18T04:46:04.068754 +AZURE,norwayeast,Standard_E16ds_v6,reserved_1y,NA,1.159817,USD,Azure Retail Prices API,2025-12-18T04:46:05.184179 +AZURE,norwayeast,Standard_E16ds_v6,reserved_3y,NA,0.729566,USD,Azure Retail Prices API,2025-12-18T04:46:05.184182 +AZURE,norwayeast,Standard_E16ds_v6,spot,NA,0.345761,USD,Azure Retail Prices API,2025-12-18T04:46:04.069869 +AZURE,norwayeast,Standard_E16pds_v6,on_demand,NA,1.338,USD,Azure Retail Prices API,2025-12-18T04:46:04.069288 +AZURE,norwayeast,Standard_E16pds_v6,reserved_1y,NA,0.789155,USD,Azure Retail Prices API,2025-12-18T04:46:05.184544 +AZURE,norwayeast,Standard_E16pds_v6,reserved_3y,NA,0.508295,USD,Azure Retail Prices API,2025-12-18T04:46:05.184547 +AZURE,norwayeast,Standard_E16pds_v6,spot,NA,0.247262,USD,Azure Retail Prices API,2025-12-18T04:46:04.068316 +AZURE,norwayeast,Standard_E16ps_v6,on_demand,NA,1.054,USD,Azure Retail Prices API,2025-12-18T04:46:04.069936 +AZURE,norwayeast,Standard_E16ps_v6,reserved_1y,NA,0.622146,USD,Azure Retail Prices API,2025-12-18T04:46:05.185142 +AZURE,norwayeast,Standard_E16ps_v6,reserved_3y,NA,0.400685,USD,Azure Retail Prices API,2025-12-18T04:46:05.185145 +AZURE,norwayeast,Standard_E16ps_v6,spot,NA,0.194779,USD,Azure Retail Prices API,2025-12-18T04:46:04.069975 +AZURE,norwayeast,Standard_E16s_v3,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:46:04.068469 +AZURE,norwayeast,Standard_E16s_v3,reserved_1y,NA,0.828196,USD,Azure Retail Prices API,2025-12-18T04:46:05.183969 +AZURE,norwayeast,Standard_E16s_v3,reserved_3y,NA,0.529566,USD,Azure Retail Prices API,2025-12-18T04:46:05.183971 +AZURE,norwayeast,Standard_E16s_v3,spot,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:04.069451 +AZURE,norwayeast,Standard_E16s_v4,on_demand,NA,1.338,USD,Azure Retail Prices API,2025-12-18T04:46:04.069473 +AZURE,norwayeast,Standard_E16s_v4,reserved_1y,NA,0.789155,USD,Azure Retail Prices API,2025-12-18T04:46:05.184678 +AZURE,norwayeast,Standard_E16s_v4,reserved_3y,NA,0.508295,USD,Azure Retail Prices API,2025-12-18T04:46:05.184681 +AZURE,norwayeast,Standard_E16s_v4,spot,NA,0.247262,USD,Azure Retail Prices API,2025-12-18T04:46:04.068482 +AZURE,norwayeast,Standard_E16s_v5,on_demand,NA,1.338,USD,Azure Retail Prices API,2025-12-18T04:46:04.068928 +AZURE,norwayeast,Standard_E16s_v5,reserved_1y,NA,0.789155,USD,Azure Retail Prices API,2025-12-18T04:46:05.184293 +AZURE,norwayeast,Standard_E16s_v5,reserved_3y,NA,0.494901,USD,Azure Retail Prices API,2025-12-18T04:46:05.184296 +AZURE,norwayeast,Standard_E16s_v5,spot,NA,0.247262,USD,Azure Retail Prices API,2025-12-18T04:46:04.069927 +AZURE,norwayeast,Standard_E20a_v4,on_demand,NA,1.802,USD,Azure Retail Prices API,2025-12-18T04:46:04.068514 +AZURE,norwayeast,Standard_E20a_v4,reserved_1y,NA,1.063014,USD,Azure Retail Prices API,2025-12-18T04:46:05.183990 +AZURE,norwayeast,Standard_E20a_v4,reserved_3y,NA,0.684665,USD,Azure Retail Prices API,2025-12-18T04:46:05.183993 +AZURE,norwayeast,Standard_E20a_v4,spot,NA,0.33301,USD,Azure Retail Prices API,2025-12-18T04:46:04.068576 +AZURE,norwayeast,Standard_E20ads_v5,on_demand,NA,2.793,USD,Azure Retail Prices API,2025-12-18T04:46:04.069436 +AZURE,norwayeast,Standard_E20ads_v5,reserved_1y,NA,1.105251,USD,Azure Retail Prices API,2025-12-18T04:46:05.184657 +AZURE,norwayeast,Standard_E20ads_v5,reserved_3y,NA,0.711872,USD,Azure Retail Prices API,2025-12-18T04:46:05.184662 +AZURE,norwayeast,Standard_E20ads_v5,spot,NA,0.34613,USD,Azure Retail Prices API,2025-12-18T04:46:04.069263 +AZURE,norwayeast,Standard_E20ads_v6,on_demand,NA,2.076,USD,Azure Retail Prices API,2025-12-18T04:46:04.068622 +AZURE,norwayeast,Standard_E20ads_v6,reserved_1y,NA,1.224886,USD,Azure Retail Prices API,2025-12-18T04:46:05.184078 +AZURE,norwayeast,Standard_E20ads_v6,reserved_3y,NA,0.788889,USD,Azure Retail Prices API,2025-12-18T04:46:05.184082 +AZURE,norwayeast,Standard_E20ads_v6,spot,NA,0.383645,USD,Azure Retail Prices API,2025-12-18T04:46:04.069433 +AZURE,norwayeast,Standard_E20as_v4,on_demand,NA,1.802,USD,Azure Retail Prices API,2025-12-18T04:46:04.068744 +AZURE,norwayeast,Standard_E20as_v4,reserved_1y,NA,1.063014,USD,Azure Retail Prices API,2025-12-18T04:46:05.184174 +AZURE,norwayeast,Standard_E20as_v4,reserved_3y,NA,0.684665,USD,Azure Retail Prices API,2025-12-18T04:46:05.184177 +AZURE,norwayeast,Standard_E20as_v4,spot,NA,0.33301,USD,Azure Retail Prices API,2025-12-18T04:46:04.068463 +AZURE,norwayeast,Standard_E20as_v5,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:46:04.069420 +AZURE,norwayeast,Standard_E20as_v5,reserved_1y,NA,0.953425,USD,Azure Retail Prices API,2025-12-18T04:46:05.184638 +AZURE,norwayeast,Standard_E20as_v5,reserved_3y,NA,0.614041,USD,Azure Retail Prices API,2025-12-18T04:46:05.184641 +AZURE,norwayeast,Standard_E20as_v5,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:46:04.068228 +AZURE,norwayeast,Standard_E20d_v4,on_demand,NA,1.903,USD,Azure Retail Prices API,2025-12-18T04:46:04.068694 +AZURE,norwayeast,Standard_E20d_v4,reserved_1y,NA,1.122717,USD,Azure Retail Prices API,2025-12-18T04:46:05.184146 +AZURE,norwayeast,Standard_E20d_v4,reserved_3y,NA,0.723135,USD,Azure Retail Prices API,2025-12-18T04:46:05.184149 +AZURE,norwayeast,Standard_E20d_v4,spot,NA,0.351674,USD,Azure Retail Prices API,2025-12-18T04:46:04.069014 +AZURE,norwayeast,Standard_E20ds_v4,on_demand,NA,1.903,USD,Azure Retail Prices API,2025-12-18T04:46:04.068369 +AZURE,norwayeast,Standard_E20ds_v4,reserved_1y,NA,1.122717,USD,Azure Retail Prices API,2025-12-18T04:46:05.183912 +AZURE,norwayeast,Standard_E20ds_v4,reserved_3y,NA,0.723135,USD,Azure Retail Prices API,2025-12-18T04:46:05.183915 +AZURE,norwayeast,Standard_E20ds_v4,spot,NA,0.351674,USD,Azure Retail Prices API,2025-12-18T04:46:04.069078 +AZURE,norwayeast,Standard_E20ds_v5,on_demand,NA,1.903,USD,Azure Retail Prices API,2025-12-18T04:46:04.068589 +AZURE,norwayeast,Standard_E20ds_v5,reserved_1y,NA,1.122717,USD,Azure Retail Prices API,2025-12-18T04:46:05.184049 +AZURE,norwayeast,Standard_E20ds_v5,reserved_3y,NA,0.723135,USD,Azure Retail Prices API,2025-12-18T04:46:05.184052 +AZURE,norwayeast,Standard_E20ds_v5,spot,NA,0.351674,USD,Azure Retail Prices API,2025-12-18T04:46:04.069231 +AZURE,norwayeast,Standard_E20ds_v6,on_demand,NA,2.338,USD,Azure Retail Prices API,2025-12-18T04:46:04.069055 +AZURE,norwayeast,Standard_E20ds_v6,reserved_1y,NA,1.449772,USD,Azure Retail Prices API,2025-12-18T04:46:05.184381 +AZURE,norwayeast,Standard_E20ds_v6,reserved_3y,NA,0.911986,USD,Azure Retail Prices API,2025-12-18T04:46:05.184384 +AZURE,norwayeast,Standard_E20ds_v6,spot,NA,0.432062,USD,Azure Retail Prices API,2025-12-18T04:46:04.069921 +AZURE,norwayeast,Standard_E20s_v4,on_demand,NA,1.672,USD,Azure Retail Prices API,2025-12-18T04:46:04.069624 +AZURE,norwayeast,Standard_E20s_v4,reserved_1y,NA,0.98653,USD,Azure Retail Prices API,2025-12-18T04:46:05.184828 +AZURE,norwayeast,Standard_E20s_v4,reserved_3y,NA,0.63535,USD,Azure Retail Prices API,2025-12-18T04:46:05.184831 +AZURE,norwayeast,Standard_E20s_v4,spot,NA,0.308986,USD,Azure Retail Prices API,2025-12-18T04:46:04.068431 +AZURE,norwayeast,Standard_E20s_v5,on_demand,NA,1.672,USD,Azure Retail Prices API,2025-12-18T04:46:04.069942 +AZURE,norwayeast,Standard_E20s_v5,reserved_1y,NA,0.98653,USD,Azure Retail Prices API,2025-12-18T04:46:05.185154 +AZURE,norwayeast,Standard_E20s_v5,reserved_3y,NA,0.618645,USD,Azure Retail Prices API,2025-12-18T04:46:05.185157 +AZURE,norwayeast,Standard_E20s_v5,spot,NA,0.308986,USD,Azure Retail Prices API,2025-12-18T04:46:04.069677 +AZURE,norwayeast,Standard_E2_v3,on_demand,NA,0.176,USD,Azure Retail Prices API,2025-12-18T04:46:04.069687 +AZURE,norwayeast,Standard_E2_v3,reserved_1y,NA,0.103425,USD,Azure Retail Prices API,2025-12-18T04:46:05.184861 +AZURE,norwayeast,Standard_E2_v3,reserved_3y,NA,0.066172,USD,Azure Retail Prices API,2025-12-18T04:46:05.184864 +AZURE,norwayeast,Standard_E2_v3,spot,NA,0.032525,USD,Azure Retail Prices API,2025-12-18T04:46:04.069630 +AZURE,norwayeast,Standard_E2ads_v6,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:46:04.068807 +AZURE,norwayeast,Standard_E2ads_v6,reserved_1y,NA,0.122489,USD,Azure Retail Prices API,2025-12-18T04:46:05.184219 +AZURE,norwayeast,Standard_E2ads_v6,reserved_3y,NA,0.078881,USD,Azure Retail Prices API,2025-12-18T04:46:05.184221 +AZURE,norwayeast,Standard_E2ads_v6,spot,NA,0.038438,USD,Azure Retail Prices API,2025-12-18T04:46:04.069469 +AZURE,norwayeast,Standard_E2ds_v5,on_demand,NA,0.19,USD,Azure Retail Prices API,2025-12-18T04:46:04.068651 +AZURE,norwayeast,Standard_E2ds_v5,reserved_1y,NA,0.112329,USD,Azure Retail Prices API,2025-12-18T04:46:05.184113 +AZURE,norwayeast,Standard_E2ds_v5,reserved_3y,NA,0.072298,USD,Azure Retail Prices API,2025-12-18T04:46:05.184116 +AZURE,norwayeast,Standard_E2ds_v5,spot,NA,0.035112,USD,Azure Retail Prices API,2025-12-18T04:46:04.069228 +AZURE,norwayeast,Standard_E2ds_v6,on_demand,NA,0.234,USD,Azure Retail Prices API,2025-12-18T04:46:04.069001 +AZURE,norwayeast,Standard_E2ds_v6,reserved_1y,NA,0.144977,USD,Azure Retail Prices API,2025-12-18T04:46:05.184349 +AZURE,norwayeast,Standard_E2ds_v6,reserved_3y,NA,0.09121,USD,Azure Retail Prices API,2025-12-18T04:46:05.184351 +AZURE,norwayeast,Standard_E2ds_v6,spot,NA,0.043243,USD,Azure Retail Prices API,2025-12-18T04:46:04.068343 +AZURE,norwayeast,Standard_E2pds_v6,on_demand,NA,0.167,USD,Azure Retail Prices API,2025-12-18T04:46:04.069060 +AZURE,norwayeast,Standard_E2pds_v6,reserved_1y,NA,0.09863,USD,Azure Retail Prices API,2025-12-18T04:46:05.184387 +AZURE,norwayeast,Standard_E2pds_v6,reserved_3y,NA,0.063546,USD,Azure Retail Prices API,2025-12-18T04:46:05.184390 +AZURE,norwayeast,Standard_E2pds_v6,spot,NA,0.030862,USD,Azure Retail Prices API,2025-12-18T04:46:04.068974 +AZURE,norwayeast,Standard_E32_v3,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:46:04.068673 +AZURE,norwayeast,Standard_E32_v3,reserved_1y,NA,1.656279,USD,Azure Retail Prices API,2025-12-18T04:46:05.184130 +AZURE,norwayeast,Standard_E32_v3,reserved_3y,NA,1.059132,USD,Azure Retail Prices API,2025-12-18T04:46:05.184132 +AZURE,norwayeast,Standard_E32_v3,spot,NA,0.520397,USD,Azure Retail Prices API,2025-12-18T04:46:04.069175 +AZURE,norwayeast,Standard_E32a_v4,on_demand,NA,2.883,USD,Azure Retail Prices API,2025-12-18T04:46:04.069283 +AZURE,norwayeast,Standard_E32a_v4,reserved_1y,NA,1.700913,USD,Azure Retail Prices API,2025-12-18T04:46:05.184539 +AZURE,norwayeast,Standard_E32a_v4,reserved_3y,NA,1.09551,USD,Azure Retail Prices API,2025-12-18T04:46:05.184541 +AZURE,norwayeast,Standard_E32a_v4,spot,NA,0.532778,USD,Azure Retail Prices API,2025-12-18T04:46:04.069500 +AZURE,norwayeast,Standard_E32ads_v5,on_demand,NA,4.469,USD,Azure Retail Prices API,2025-12-18T04:46:04.069591 +AZURE,norwayeast,Standard_E32ads_v5,reserved_1y,NA,1.768379,USD,Azure Retail Prices API,2025-12-18T04:46:05.185126 +AZURE,norwayeast,Standard_E32ads_v5,reserved_3y,NA,1.138965,USD,Azure Retail Prices API,2025-12-18T04:46:05.185128 +AZURE,norwayeast,Standard_E32ads_v5,spot,NA,0.553846,USD,Azure Retail Prices API,2025-12-18T04:46:04.068284 +AZURE,norwayeast,Standard_E32ads_v6,on_demand,NA,3.322,USD,Azure Retail Prices API,2025-12-18T04:46:04.069579 +AZURE,norwayeast,Standard_E32ads_v6,reserved_1y,NA,1.959703,USD,Azure Retail Prices API,2025-12-18T04:46:05.184790 +AZURE,norwayeast,Standard_E32ads_v6,reserved_3y,NA,1.262215,USD,Azure Retail Prices API,2025-12-18T04:46:05.184793 +AZURE,norwayeast,Standard_E32ads_v6,spot,NA,0.613906,USD,Azure Retail Prices API,2025-12-18T04:46:04.069215 +AZURE,norwayeast,Standard_E32as_v4,on_demand,NA,2.883,USD,Azure Retail Prices API,2025-12-18T04:46:04.068741 +AZURE,norwayeast,Standard_E32as_v4,reserved_1y,NA,1.700913,USD,Azure Retail Prices API,2025-12-18T04:46:05.184168 +AZURE,norwayeast,Standard_E32as_v4,reserved_3y,NA,1.09551,USD,Azure Retail Prices API,2025-12-18T04:46:05.184171 +AZURE,norwayeast,Standard_E32as_v4,spot,NA,0.532778,USD,Azure Retail Prices API,2025-12-18T04:46:04.068977 +AZURE,norwayeast,Standard_E32as_v5,on_demand,NA,4.057,USD,Azure Retail Prices API,2025-12-18T04:46:04.068731 +AZURE,norwayeast,Standard_E32as_v5,reserved_1y,NA,1.525457,USD,Azure Retail Prices API,2025-12-18T04:46:05.185131 +AZURE,norwayeast,Standard_E32as_v5,reserved_3y,NA,0.982458,USD,Azure Retail Prices API,2025-12-18T04:46:05.185134 +AZURE,norwayeast,Standard_E32as_v5,spot,NA,0.477708,USD,Azure Retail Prices API,2025-12-18T04:46:04.069309 +AZURE,norwayeast,Standard_E32d_v4,on_demand,NA,3.045,USD,Azure Retail Prices API,2025-12-18T04:46:04.068668 +AZURE,norwayeast,Standard_E32d_v4,reserved_1y,NA,1.796461,USD,Azure Retail Prices API,2025-12-18T04:46:05.184124 +AZURE,norwayeast,Standard_E32d_v4,reserved_3y,NA,1.15704,USD,Azure Retail Prices API,2025-12-18T04:46:05.184127 +AZURE,norwayeast,Standard_E32d_v4,spot,NA,0.562716,USD,Azure Retail Prices API,2025-12-18T04:46:04.068657 +AZURE,norwayeast,Standard_E32ds_v4,on_demand,NA,3.045,USD,Azure Retail Prices API,2025-12-18T04:46:04.069771 +AZURE,norwayeast,Standard_E32ds_v4,reserved_1y,NA,1.796461,USD,Azure Retail Prices API,2025-12-18T04:46:05.184946 +AZURE,norwayeast,Standard_E32ds_v4,reserved_3y,NA,1.15704,USD,Azure Retail Prices API,2025-12-18T04:46:05.184949 +AZURE,norwayeast,Standard_E32ds_v4,spot,NA,0.562716,USD,Azure Retail Prices API,2025-12-18T04:46:04.069804 +AZURE,norwayeast,Standard_E32ds_v5,on_demand,NA,3.045,USD,Azure Retail Prices API,2025-12-18T04:46:04.069997 +AZURE,norwayeast,Standard_E32ds_v5,reserved_1y,NA,1.796461,USD,Azure Retail Prices API,2025-12-18T04:46:05.185220 +AZURE,norwayeast,Standard_E32ds_v5,reserved_3y,NA,1.15704,USD,Azure Retail Prices API,2025-12-18T04:46:05.185223 +AZURE,norwayeast,Standard_E32ds_v5,spot,NA,0.562716,USD,Azure Retail Prices API,2025-12-18T04:46:04.069299 +AZURE,norwayeast,Standard_E32ds_v6,on_demand,NA,3.741,USD,Azure Retail Prices API,2025-12-18T04:46:04.069479 +AZURE,norwayeast,Standard_E32ds_v6,reserved_1y,NA,2.319749,USD,Azure Retail Prices API,2025-12-18T04:46:05.184690 +AZURE,norwayeast,Standard_E32ds_v6,reserved_3y,NA,1.45917,USD,Azure Retail Prices API,2025-12-18T04:46:05.184693 +AZURE,norwayeast,Standard_E32ds_v6,spot,NA,0.691337,USD,Azure Retail Prices API,2025-12-18T04:46:04.069838 +AZURE,norwayeast,Standard_E32pds_v6,on_demand,NA,2.675,USD,Azure Retail Prices API,2025-12-18T04:46:04.069160 +AZURE,norwayeast,Standard_E32pds_v6,reserved_1y,NA,1.578425,USD,Azure Retail Prices API,2025-12-18T04:46:05.184451 +AZURE,norwayeast,Standard_E32pds_v6,reserved_3y,NA,1.016591,USD,Azure Retail Prices API,2025-12-18T04:46:05.184453 +AZURE,norwayeast,Standard_E32pds_v6,spot,NA,0.49434,USD,Azure Retail Prices API,2025-12-18T04:46:04.068326 +AZURE,norwayeast,Standard_E32ps_v6,on_demand,NA,2.109,USD,Azure Retail Prices API,2025-12-18T04:46:04.069856 +AZURE,norwayeast,Standard_E32ps_v6,reserved_1y,NA,1.244178,USD,Azure Retail Prices API,2025-12-18T04:46:05.185044 +AZURE,norwayeast,Standard_E32ps_v6,reserved_3y,NA,0.801332,USD,Azure Retail Prices API,2025-12-18T04:46:05.185047 +AZURE,norwayeast,Standard_E32ps_v6,spot,NA,0.389743,USD,Azure Retail Prices API,2025-12-18T04:46:04.068547 +AZURE,norwayeast,Standard_E32s_v3,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:46:04.069266 +AZURE,norwayeast,Standard_E32s_v3,reserved_1y,NA,1.656279,USD,Azure Retail Prices API,2025-12-18T04:46:05.184533 +AZURE,norwayeast,Standard_E32s_v3,reserved_3y,NA,1.059132,USD,Azure Retail Prices API,2025-12-18T04:46:05.184536 +AZURE,norwayeast,Standard_E32s_v3,spot,NA,0.520397,USD,Azure Retail Prices API,2025-12-18T04:46:04.068782 +AZURE,norwayeast,Standard_E32s_v4,on_demand,NA,2.675,USD,Azure Retail Prices API,2025-12-18T04:46:04.069049 +AZURE,norwayeast,Standard_E32s_v4,reserved_1y,NA,1.578425,USD,Azure Retail Prices API,2025-12-18T04:46:05.184370 +AZURE,norwayeast,Standard_E32s_v4,reserved_3y,NA,1.016591,USD,Azure Retail Prices API,2025-12-18T04:46:05.184373 +AZURE,norwayeast,Standard_E32s_v4,spot,NA,0.49434,USD,Azure Retail Prices API,2025-12-18T04:46:04.069325 +AZURE,norwayeast,Standard_E32s_v5,on_demand,NA,2.675,USD,Azure Retail Prices API,2025-12-18T04:46:04.069575 +AZURE,norwayeast,Standard_E32s_v5,reserved_1y,NA,1.578425,USD,Azure Retail Prices API,2025-12-18T04:46:05.184784 +AZURE,norwayeast,Standard_E32s_v5,reserved_3y,NA,0.98984,USD,Azure Retail Prices API,2025-12-18T04:46:05.184787 +AZURE,norwayeast,Standard_E32s_v5,spot,NA,0.49434,USD,Azure Retail Prices API,2025-12-18T04:46:04.068998 +AZURE,norwayeast,Standard_E48a_v4,on_demand,NA,4.324,USD,Azure Retail Prices API,2025-12-18T04:46:04.069725 +AZURE,norwayeast,Standard_E48a_v4,reserved_1y,NA,2.55137,USD,Azure Retail Prices API,2025-12-18T04:46:05.184885 +AZURE,norwayeast,Standard_E48a_v4,reserved_3y,NA,1.643227,USD,Azure Retail Prices API,2025-12-18T04:46:05.184888 +AZURE,norwayeast,Standard_E48a_v4,spot,NA,0.799075,USD,Azure Retail Prices API,2025-12-18T04:46:04.069845 +AZURE,norwayeast,Standard_E48ads_v5,on_demand,NA,6.704,USD,Azure Retail Prices API,2025-12-18T04:46:04.069292 +AZURE,norwayeast,Standard_E48ads_v5,reserved_1y,NA,2.652626,USD,Azure Retail Prices API,2025-12-18T04:46:05.185104 +AZURE,norwayeast,Standard_E48ads_v5,reserved_3y,NA,1.708447,USD,Azure Retail Prices API,2025-12-18T04:46:05.185107 +AZURE,norwayeast,Standard_E48ads_v5,spot,NA,0.830861,USD,Azure Retail Prices API,2025-12-18T04:46:04.069415 +AZURE,norwayeast,Standard_E48ads_v6,on_demand,NA,4.982,USD,Azure Retail Prices API,2025-12-18T04:46:04.069618 +AZURE,norwayeast,Standard_E48ads_v6,reserved_1y,NA,2.939612,USD,Azure Retail Prices API,2025-12-18T04:46:05.184823 +AZURE,norwayeast,Standard_E48ads_v6,reserved_3y,NA,1.893303,USD,Azure Retail Prices API,2025-12-18T04:46:05.184825 +AZURE,norwayeast,Standard_E48ads_v6,spot,NA,0.920674,USD,Azure Retail Prices API,2025-12-18T04:46:04.069509 +AZURE,norwayeast,Standard_E48as_v4,on_demand,NA,4.324,USD,Azure Retail Prices API,2025-12-18T04:46:04.068242 +AZURE,norwayeast,Standard_E48as_v4,reserved_1y,NA,2.55137,USD,Azure Retail Prices API,2025-12-18T04:46:05.183804 +AZURE,norwayeast,Standard_E48as_v4,reserved_3y,NA,1.643227,USD,Azure Retail Prices API,2025-12-18T04:46:05.183807 +AZURE,norwayeast,Standard_E48as_v4,spot,NA,0.799075,USD,Azure Retail Prices API,2025-12-18T04:46:04.069539 +AZURE,norwayeast,Standard_E48as_v5,on_demand,NA,3.878,USD,Azure Retail Prices API,2025-12-18T04:46:04.069833 +AZURE,norwayeast,Standard_E48as_v5,reserved_1y,NA,2.288128,USD,Azure Retail Prices API,2025-12-18T04:46:05.185012 +AZURE,norwayeast,Standard_E48as_v5,reserved_3y,NA,1.473706,USD,Azure Retail Prices API,2025-12-18T04:46:05.185015 +AZURE,norwayeast,Standard_E48as_v5,spot,NA,0.716654,USD,Azure Retail Prices API,2025-12-18T04:46:04.069815 +AZURE,norwayeast,Standard_E48d_v4,on_demand,NA,4.567,USD,Azure Retail Prices API,2025-12-18T04:46:04.069342 +AZURE,norwayeast,Standard_E48d_v4,reserved_1y,NA,2.694635,USD,Azure Retail Prices API,2025-12-18T04:46:05.184583 +AZURE,norwayeast,Standard_E48d_v4,reserved_3y,NA,1.73554,USD,Azure Retail Prices API,2025-12-18T04:46:05.184585 +AZURE,norwayeast,Standard_E48d_v4,spot,NA,0.843982,USD,Azure Retail Prices API,2025-12-18T04:46:04.069375 +AZURE,norwayeast,Standard_E48ds_v4,on_demand,NA,4.567,USD,Azure Retail Prices API,2025-12-18T04:46:04.068757 +AZURE,norwayeast,Standard_E48ds_v4,reserved_1y,NA,2.694635,USD,Azure Retail Prices API,2025-12-18T04:46:05.184185 +AZURE,norwayeast,Standard_E48ds_v4,reserved_3y,NA,1.73554,USD,Azure Retail Prices API,2025-12-18T04:46:05.184188 +AZURE,norwayeast,Standard_E48ds_v4,spot,NA,0.843982,USD,Azure Retail Prices API,2025-12-18T04:46:04.069409 +AZURE,norwayeast,Standard_E48ds_v5,on_demand,NA,4.567,USD,Azure Retail Prices API,2025-12-18T04:46:04.068770 +AZURE,norwayeast,Standard_E48ds_v5,reserved_1y,NA,2.694635,USD,Azure Retail Prices API,2025-12-18T04:46:05.184196 +AZURE,norwayeast,Standard_E48ds_v5,reserved_3y,NA,1.73554,USD,Azure Retail Prices API,2025-12-18T04:46:05.184199 +AZURE,norwayeast,Standard_E48ds_v5,spot,NA,0.843982,USD,Azure Retail Prices API,2025-12-18T04:46:04.070008 +AZURE,norwayeast,Standard_E48ds_v6,on_demand,NA,5.612,USD,Azure Retail Prices API,2025-12-18T04:46:04.068967 +AZURE,norwayeast,Standard_E48ds_v6,reserved_1y,NA,3.479566,USD,Azure Retail Prices API,2025-12-18T04:46:05.184321 +AZURE,norwayeast,Standard_E48ds_v6,reserved_3y,NA,2.188737,USD,Azure Retail Prices API,2025-12-18T04:46:05.184324 +AZURE,norwayeast,Standard_E48ds_v6,spot,NA,1.037098,USD,Azure Retail Prices API,2025-12-18T04:46:04.069254 +AZURE,norwayeast,Standard_E48pds_v6,on_demand,NA,4.013,USD,Azure Retail Prices API,2025-12-18T04:46:04.068971 +AZURE,norwayeast,Standard_E48pds_v6,reserved_1y,NA,2.36758,USD,Azure Retail Prices API,2025-12-18T04:46:05.184327 +AZURE,norwayeast,Standard_E48pds_v6,reserved_3y,NA,1.524848,USD,Azure Retail Prices API,2025-12-18T04:46:05.184329 +AZURE,norwayeast,Standard_E48pds_v6,spot,NA,0.741602,USD,Azure Retail Prices API,2025-12-18T04:46:04.068989 +AZURE,norwayeast,Standard_E48ps_v6,on_demand,NA,3.163,USD,Azure Retail Prices API,2025-12-18T04:46:04.069316 +AZURE,norwayeast,Standard_E48ps_v6,reserved_1y,NA,1.866324,USD,Azure Retail Prices API,2025-12-18T04:46:05.184555 +AZURE,norwayeast,Standard_E48ps_v6,reserved_3y,NA,1.202017,USD,Azure Retail Prices API,2025-12-18T04:46:05.184558 +AZURE,norwayeast,Standard_E48ps_v6,spot,NA,0.584522,USD,Azure Retail Prices API,2025-12-18T04:46:04.069345 +AZURE,norwayeast,Standard_E48s_v4,on_demand,NA,4.013,USD,Azure Retail Prices API,2025-12-18T04:46:04.069731 +AZURE,norwayeast,Standard_E48s_v4,reserved_1y,NA,2.36758,USD,Azure Retail Prices API,2025-12-18T04:46:05.184891 +AZURE,norwayeast,Standard_E48s_v4,reserved_3y,NA,1.524848,USD,Azure Retail Prices API,2025-12-18T04:46:05.184893 +AZURE,norwayeast,Standard_E48s_v4,spot,NA,0.741602,USD,Azure Retail Prices API,2025-12-18T04:46:04.068947 +AZURE,norwayeast,Standard_E48s_v5,on_demand,NA,4.013,USD,Azure Retail Prices API,2025-12-18T04:46:04.069895 +AZURE,norwayeast,Standard_E48s_v5,reserved_1y,NA,2.36758,USD,Azure Retail Prices API,2025-12-18T04:46:05.185088 +AZURE,norwayeast,Standard_E48s_v5,reserved_3y,NA,1.484741,USD,Azure Retail Prices API,2025-12-18T04:46:05.185091 +AZURE,norwayeast,Standard_E48s_v5,spot,NA,0.741602,USD,Azure Retail Prices API,2025-12-18T04:46:04.069978 +AZURE,norwayeast,Standard_E4_v3,on_demand,NA,0.352,USD,Azure Retail Prices API,2025-12-18T04:46:04.069668 +AZURE,norwayeast,Standard_E4_v3,reserved_1y,NA,0.207078,USD,Azure Retail Prices API,2025-12-18T04:46:05.184856 +AZURE,norwayeast,Standard_E4_v3,reserved_3y,NA,0.132382,USD,Azure Retail Prices API,2025-12-18T04:46:05.184859 +AZURE,norwayeast,Standard_E4_v3,spot,NA,0.06505,USD,Azure Retail Prices API,2025-12-18T04:46:04.069460 +AZURE,norwayeast,Standard_E4a_v4,on_demand,NA,0.36,USD,Azure Retail Prices API,2025-12-18T04:46:04.069390 +AZURE,norwayeast,Standard_E4a_v4,reserved_1y,NA,0.212557,USD,Azure Retail Prices API,2025-12-18T04:46:05.184610 +AZURE,norwayeast,Standard_E4a_v4,reserved_3y,NA,0.136948,USD,Azure Retail Prices API,2025-12-18T04:46:05.184613 +AZURE,norwayeast,Standard_E4a_v4,spot,NA,0.066528,USD,Azure Retail Prices API,2025-12-18T04:46:04.069531 +AZURE,norwayeast,Standard_E4ads_v5,on_demand,NA,0.375,USD,Azure Retail Prices API,2025-12-18T04:46:04.068562 +AZURE,norwayeast,Standard_E4ads_v5,reserved_1y,NA,0.221005,USD,Azure Retail Prices API,2025-12-18T04:46:05.184014 +AZURE,norwayeast,Standard_E4ads_v5,reserved_3y,NA,0.14239,USD,Azure Retail Prices API,2025-12-18T04:46:05.184017 +AZURE,norwayeast,Standard_E4ads_v5,spot,NA,0.0693,USD,Azure Retail Prices API,2025-12-18T04:46:04.069564 +AZURE,norwayeast,Standard_E4ads_v6,on_demand,NA,0.415,USD,Azure Retail Prices API,2025-12-18T04:46:04.068569 +AZURE,norwayeast,Standard_E4ads_v6,reserved_1y,NA,0.244977,USD,Azure Retail Prices API,2025-12-18T04:46:05.184026 +AZURE,norwayeast,Standard_E4ads_v6,reserved_3y,NA,0.157763,USD,Azure Retail Prices API,2025-12-18T04:46:05.184029 +AZURE,norwayeast,Standard_E4ads_v6,spot,NA,0.076692,USD,Azure Retail Prices API,2025-12-18T04:46:04.068382 +AZURE,norwayeast,Standard_E4as_v4,on_demand,NA,0.36,USD,Azure Retail Prices API,2025-12-18T04:46:04.068267 +AZURE,norwayeast,Standard_E4as_v4,reserved_1y,NA,0.212557,USD,Azure Retail Prices API,2025-12-18T04:46:05.183835 +AZURE,norwayeast,Standard_E4as_v4,reserved_3y,NA,0.136948,USD,Azure Retail Prices API,2025-12-18T04:46:05.183838 +AZURE,norwayeast,Standard_E4as_v4,spot,NA,0.066528,USD,Azure Retail Prices API,2025-12-18T04:46:04.068697 +AZURE,norwayeast,Standard_E4as_v5,on_demand,NA,0.507,USD,Azure Retail Prices API,2025-12-18T04:46:04.068256 +AZURE,norwayeast,Standard_E4as_v5,reserved_1y,NA,0.190639,USD,Azure Retail Prices API,2025-12-18T04:46:05.185193 +AZURE,norwayeast,Standard_E4as_v5,reserved_3y,NA,0.122793,USD,Azure Retail Prices API,2025-12-18T04:46:05.185196 +AZURE,norwayeast,Standard_E4as_v5,spot,NA,0.05969,USD,Azure Retail Prices API,2025-12-18T04:46:04.068727 +AZURE,norwayeast,Standard_E4d_v4,on_demand,NA,0.381,USD,Azure Retail Prices API,2025-12-18T04:46:04.068476 +AZURE,norwayeast,Standard_E4d_v4,reserved_1y,NA,0.224543,USD,Azure Retail Prices API,2025-12-18T04:46:05.183974 +AZURE,norwayeast,Standard_E4d_v4,reserved_3y,NA,0.144635,USD,Azure Retail Prices API,2025-12-18T04:46:05.183977 +AZURE,norwayeast,Standard_E4d_v4,spot,NA,0.070409,USD,Azure Retail Prices API,2025-12-18T04:46:04.068508 +AZURE,norwayeast,Standard_E4ds_v4,on_demand,NA,0.381,USD,Azure Retail Prices API,2025-12-18T04:46:04.068735 +AZURE,norwayeast,Standard_E4ds_v4,reserved_1y,NA,0.224543,USD,Azure Retail Prices API,2025-12-18T04:46:05.184158 +AZURE,norwayeast,Standard_E4ds_v4,reserved_3y,NA,0.144635,USD,Azure Retail Prices API,2025-12-18T04:46:05.184160 +AZURE,norwayeast,Standard_E4ds_v4,spot,NA,0.070409,USD,Azure Retail Prices API,2025-12-18T04:46:04.068421 +AZURE,norwayeast,Standard_E4ds_v5,on_demand,NA,0.381,USD,Azure Retail Prices API,2025-12-18T04:46:04.068952 +AZURE,norwayeast,Standard_E4ds_v5,reserved_1y,NA,0.224543,USD,Azure Retail Prices API,2025-12-18T04:46:05.184310 +AZURE,norwayeast,Standard_E4ds_v5,reserved_3y,NA,0.144635,USD,Azure Retail Prices API,2025-12-18T04:46:05.184313 +AZURE,norwayeast,Standard_E4ds_v5,spot,NA,0.070409,USD,Azure Retail Prices API,2025-12-18T04:46:04.068274 +AZURE,norwayeast,Standard_E4ds_v6,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:46:04.069412 +AZURE,norwayeast,Standard_E4ds_v6,reserved_1y,NA,0.289954,USD,Azure Retail Prices API,2025-12-18T04:46:05.184632 +AZURE,norwayeast,Standard_E4ds_v6,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:46:05.184635 +AZURE,norwayeast,Standard_E4ds_v6,spot,NA,0.086486,USD,Azure Retail Prices API,2025-12-18T04:46:04.068582 +AZURE,norwayeast,Standard_E4pds_v6,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:04.069202 +AZURE,norwayeast,Standard_E4pds_v6,reserved_1y,NA,0.19726,USD,Azure Retail Prices API,2025-12-18T04:46:05.184478 +AZURE,norwayeast,Standard_E4pds_v6,reserved_3y,NA,0.127055,USD,Azure Retail Prices API,2025-12-18T04:46:05.184481 +AZURE,norwayeast,Standard_E4pds_v6,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:04.068290 +AZURE,norwayeast,Standard_E4ps_v6,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:46:04.068679 +AZURE,norwayeast,Standard_E4ps_v6,reserved_1y,NA,0.155479,USD,Azure Retail Prices API,2025-12-18T04:46:05.184135 +AZURE,norwayeast,Standard_E4ps_v6,reserved_3y,NA,0.100152,USD,Azure Retail Prices API,2025-12-18T04:46:05.184138 +AZURE,norwayeast,Standard_E4ps_v6,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:46:04.069916 +AZURE,norwayeast,Standard_E4s_v4,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:04.069807 +AZURE,norwayeast,Standard_E4s_v4,reserved_1y,NA,0.19726,USD,Azure Retail Prices API,2025-12-18T04:46:05.184985 +AZURE,norwayeast,Standard_E4s_v4,reserved_3y,NA,0.127055,USD,Azure Retail Prices API,2025-12-18T04:46:05.184988 +AZURE,norwayeast,Standard_E4s_v4,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:04.068534 +AZURE,norwayeast,Standard_E4s_v5,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:04.069768 +AZURE,norwayeast,Standard_E4s_v5,reserved_1y,NA,0.19726,USD,Azure Retail Prices API,2025-12-18T04:46:05.184941 +AZURE,norwayeast,Standard_E4s_v5,reserved_3y,NA,0.123744,USD,Azure Retail Prices API,2025-12-18T04:46:05.184944 +AZURE,norwayeast,Standard_E4s_v5,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:04.069008 +AZURE,norwayeast,Standard_E64_v3,on_demand,NA,4.814,USD,Azure Retail Prices API,2025-12-18T04:46:04.068795 +AZURE,norwayeast,Standard_E64_v3,reserved_1y,NA,3.122489,USD,Azure Retail Prices API,2025-12-18T04:46:05.184213 +AZURE,norwayeast,Standard_E64_v3,reserved_3y,NA,1.996651,USD,Azure Retail Prices API,2025-12-18T04:46:05.184216 +AZURE,norwayeast,Standard_E64_v3,spot,NA,0.889627,USD,Azure Retail Prices API,2025-12-18T04:46:04.069046 +AZURE,norwayeast,Standard_E64a_v4,on_demand,NA,5.766,USD,Azure Retail Prices API,2025-12-18T04:46:04.069786 +AZURE,norwayeast,Standard_E64a_v4,reserved_1y,NA,3.401826,USD,Azure Retail Prices API,2025-12-18T04:46:05.184963 +AZURE,norwayeast,Standard_E64a_v4,reserved_3y,NA,2.190982,USD,Azure Retail Prices API,2025-12-18T04:46:05.184966 +AZURE,norwayeast,Standard_E64a_v4,spot,NA,1.065557,USD,Azure Retail Prices API,2025-12-18T04:46:04.068961 +AZURE,norwayeast,Standard_E64ads_v5,on_demand,NA,8.939,USD,Azure Retail Prices API,2025-12-18T04:46:04.068647 +AZURE,norwayeast,Standard_E64ads_v5,reserved_1y,NA,3.536758,USD,Azure Retail Prices API,2025-12-18T04:46:05.184594 +AZURE,norwayeast,Standard_E64ads_v5,reserved_3y,NA,2.27793,USD,Azure Retail Prices API,2025-12-18T04:46:05.184596 +AZURE,norwayeast,Standard_E64ads_v5,spot,NA,1.107876,USD,Azure Retail Prices API,2025-12-18T04:46:04.069387 +AZURE,norwayeast,Standard_E64ads_v6,on_demand,NA,6.643,USD,Azure Retail Prices API,2025-12-18T04:46:04.069087 +AZURE,norwayeast,Standard_E64ads_v6,reserved_1y,NA,3.919521,USD,Azure Retail Prices API,2025-12-18T04:46:05.184404 +AZURE,norwayeast,Standard_E64ads_v6,reserved_3y,NA,2.524429,USD,Azure Retail Prices API,2025-12-18T04:46:05.184407 +AZURE,norwayeast,Standard_E64ads_v6,spot,NA,1.227626,USD,Azure Retail Prices API,2025-12-18T04:46:04.069260 +AZURE,norwayeast,Standard_E64as_v4,on_demand,NA,5.766,USD,Azure Retail Prices API,2025-12-18T04:46:04.069990 +AZURE,norwayeast,Standard_E64as_v4,reserved_1y,NA,3.401826,USD,Azure Retail Prices API,2025-12-18T04:46:05.185209 +AZURE,norwayeast,Standard_E64as_v4,reserved_3y,NA,2.190982,USD,Azure Retail Prices API,2025-12-18T04:46:05.185212 +AZURE,norwayeast,Standard_E64as_v4,spot,NA,1.065557,USD,Azure Retail Prices API,2025-12-18T04:46:04.069904 +AZURE,norwayeast,Standard_E64as_v5,on_demand,NA,5.171,USD,Azure Retail Prices API,2025-12-18T04:46:04.068322 +AZURE,norwayeast,Standard_E64as_v5,reserved_1y,NA,3.050799,USD,Azure Retail Prices API,2025-12-18T04:46:05.183883 +AZURE,norwayeast,Standard_E64as_v5,reserved_3y,NA,1.964916,USD,Azure Retail Prices API,2025-12-18T04:46:05.183886 +AZURE,norwayeast,Standard_E64as_v5,spot,NA,0.955601,USD,Azure Retail Prices API,2025-12-18T04:46:04.069430 +AZURE,norwayeast,Standard_E64d_v4,on_demand,NA,6.09,USD,Azure Retail Prices API,2025-12-18T04:46:04.068453 +AZURE,norwayeast,Standard_E64d_v4,reserved_1y,NA,3.592808,USD,Azure Retail Prices API,2025-12-18T04:46:05.183958 +AZURE,norwayeast,Standard_E64d_v4,reserved_3y,NA,2.314041,USD,Azure Retail Prices API,2025-12-18T04:46:05.183960 +AZURE,norwayeast,Standard_E64d_v4,spot,NA,1.125432,USD,Azure Retail Prices API,2025-12-18T04:46:04.068235 +AZURE,norwayeast,Standard_E64ds_v4,on_demand,NA,6.09,USD,Azure Retail Prices API,2025-12-18T04:46:04.070014 +AZURE,norwayeast,Standard_E64ds_v4,reserved_1y,NA,3.592808,USD,Azure Retail Prices API,2025-12-18T04:46:05.185231 +AZURE,norwayeast,Standard_E64ds_v4,reserved_3y,NA,2.314041,USD,Azure Retail Prices API,2025-12-18T04:46:05.185234 +AZURE,norwayeast,Standard_E64ds_v4,spot,NA,1.125432,USD,Azure Retail Prices API,2025-12-18T04:46:04.068346 +AZURE,norwayeast,Standard_E64ds_v5,on_demand,NA,6.09,USD,Azure Retail Prices API,2025-12-18T04:46:04.069151 +AZURE,norwayeast,Standard_E64ds_v5,reserved_1y,NA,3.592808,USD,Azure Retail Prices API,2025-12-18T04:46:05.184444 +AZURE,norwayeast,Standard_E64ds_v5,reserved_3y,NA,2.314041,USD,Azure Retail Prices API,2025-12-18T04:46:05.184447 +AZURE,norwayeast,Standard_E64ds_v5,spot,NA,1.125432,USD,Azure Retail Prices API,2025-12-18T04:46:04.069641 +AZURE,norwayeast,Standard_E64ds_v6,on_demand,NA,7.483,USD,Azure Retail Prices API,2025-12-18T04:46:04.069789 +AZURE,norwayeast,Standard_E64ds_v6,reserved_1y,NA,4.639384,USD,Azure Retail Prices API,2025-12-18T04:46:05.184969 +AZURE,norwayeast,Standard_E64ds_v6,reserved_3y,NA,2.918341,USD,Azure Retail Prices API,2025-12-18T04:46:05.184971 +AZURE,norwayeast,Standard_E64ds_v6,spot,NA,1.382858,USD,Azure Retail Prices API,2025-12-18T04:46:04.069866 +AZURE,norwayeast,Standard_E64pds_v6,on_demand,NA,5.35,USD,Azure Retail Prices API,2025-12-18T04:46:04.068845 +AZURE,norwayeast,Standard_E64pds_v6,reserved_1y,NA,3.156735,USD,Azure Retail Prices API,2025-12-18T04:46:05.184253 +AZURE,norwayeast,Standard_E64pds_v6,reserved_3y,NA,2.033143,USD,Azure Retail Prices API,2025-12-18T04:46:05.184256 +AZURE,norwayeast,Standard_E64pds_v6,spot,NA,0.98868,USD,Azure Retail Prices API,2025-12-18T04:46:04.068995 +AZURE,norwayeast,Standard_E64ps_v6,on_demand,NA,4.218,USD,Azure Retail Prices API,2025-12-18T04:46:04.068854 +AZURE,norwayeast,Standard_E64ps_v6,reserved_1y,NA,2.488356,USD,Azure Retail Prices API,2025-12-18T04:46:05.184259 +AZURE,norwayeast,Standard_E64ps_v6,reserved_3y,NA,1.602702,USD,Azure Retail Prices API,2025-12-18T04:46:05.184262 +AZURE,norwayeast,Standard_E64ps_v6,spot,NA,0.779486,USD,Azure Retail Prices API,2025-12-18T04:46:04.068700 +AZURE,norwayeast,Standard_E64s_v3,on_demand,NA,4.814,USD,Azure Retail Prices API,2025-12-18T04:46:04.069854 +AZURE,norwayeast,Standard_E64s_v3,reserved_1y,NA,3.122489,USD,Azure Retail Prices API,2025-12-18T04:46:05.185034 +AZURE,norwayeast,Standard_E64s_v3,reserved_3y,NA,1.996651,USD,Azure Retail Prices API,2025-12-18T04:46:05.185036 +AZURE,norwayeast,Standard_E64s_v3,spot,NA,0.889627,USD,Azure Retail Prices API,2025-12-18T04:46:04.069005 +AZURE,norwayeast,Standard_E64s_v4,on_demand,NA,5.35,USD,Azure Retail Prices API,2025-12-18T04:46:04.069749 +AZURE,norwayeast,Standard_E64s_v4,reserved_1y,NA,3.156735,USD,Azure Retail Prices API,2025-12-18T04:46:05.184913 +AZURE,norwayeast,Standard_E64s_v4,reserved_3y,NA,2.033143,USD,Azure Retail Prices API,2025-12-18T04:46:05.184916 +AZURE,norwayeast,Standard_E64s_v4,spot,NA,0.98868,USD,Azure Retail Prices API,2025-12-18T04:46:04.068541 +AZURE,norwayeast,Standard_E64s_v5,on_demand,NA,5.35,USD,Azure Retail Prices API,2025-12-18T04:46:04.069984 +AZURE,norwayeast,Standard_E64s_v5,reserved_1y,NA,3.156735,USD,Azure Retail Prices API,2025-12-18T04:46:05.185204 +AZURE,norwayeast,Standard_E64s_v5,reserved_3y,NA,1.979642,USD,Azure Retail Prices API,2025-12-18T04:46:05.185207 +AZURE,norwayeast,Standard_E64s_v5,spot,NA,0.98868,USD,Azure Retail Prices API,2025-12-18T04:46:04.069981 +AZURE,norwayeast,Standard_E80ids_v4,on_demand,NA,7.612,USD,Azure Retail Prices API,2025-12-18T04:46:04.069170 +AZURE,norwayeast,Standard_E80ids_v4,reserved_1y,NA,4.491096,USD,Azure Retail Prices API,2025-12-18T04:46:05.184456 +AZURE,norwayeast,Standard_E80ids_v4,reserved_3y,NA,2.892542,USD,Azure Retail Prices API,2025-12-18T04:46:05.184459 +AZURE,norwayeast,Standard_E80ids_v4,spot,NA,1.406698,USD,Azure Retail Prices API,2025-12-18T04:46:04.068408 +AZURE,norwayeast,Standard_E80is_v4,on_demand,NA,6.688,USD,Azure Retail Prices API,2025-12-18T04:46:04.069827 +AZURE,norwayeast,Standard_E80is_v4,reserved_1y,NA,3.94589,USD,Azure Retail Prices API,2025-12-18T04:46:05.185007 +AZURE,norwayeast,Standard_E80is_v4,reserved_3y,NA,2.541438,USD,Azure Retail Prices API,2025-12-18T04:46:05.185010 +AZURE,norwayeast,Standard_E80is_v4,spot,NA,1.235942,USD,Azure Retail Prices API,2025-12-18T04:46:04.068473 +AZURE,norwayeast,Standard_E8_v3,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:46:04.069396 +AZURE,norwayeast,Standard_E8_v3,reserved_1y,NA,0.414155,USD,Azure Retail Prices API,2025-12-18T04:46:05.184621 +AZURE,norwayeast,Standard_E8_v3,reserved_3y,NA,0.264802,USD,Azure Retail Prices API,2025-12-18T04:46:05.184624 +AZURE,norwayeast,Standard_E8_v3,spot,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:04.069569 +AZURE,norwayeast,Standard_E8a_v4,on_demand,NA,0.721,USD,Azure Retail Prices API,2025-12-18T04:46:04.069907 +AZURE,norwayeast,Standard_E8a_v4,reserved_1y,NA,0.425228,USD,Azure Retail Prices API,2025-12-18T04:46:05.185099 +AZURE,norwayeast,Standard_E8a_v4,reserved_3y,NA,0.273858,USD,Azure Retail Prices API,2025-12-18T04:46:05.185102 +AZURE,norwayeast,Standard_E8a_v4,spot,NA,0.133241,USD,Azure Retail Prices API,2025-12-18T04:46:04.069406 +AZURE,norwayeast,Standard_E8ads_v5,on_demand,NA,0.749,USD,Azure Retail Prices API,2025-12-18T04:46:04.068249 +AZURE,norwayeast,Standard_E8ads_v5,reserved_1y,NA,0.442123,USD,Azure Retail Prices API,2025-12-18T04:46:05.183816 +AZURE,norwayeast,Standard_E8ads_v5,reserved_3y,NA,0.284741,USD,Azure Retail Prices API,2025-12-18T04:46:05.183819 +AZURE,norwayeast,Standard_E8ads_v5,spot,NA,0.138415,USD,Azure Retail Prices API,2025-12-18T04:46:04.069534 +AZURE,norwayeast,Standard_E8ads_v6,on_demand,NA,0.83,USD,Azure Retail Prices API,2025-12-18T04:46:04.069597 +AZURE,norwayeast,Standard_E8ads_v6,reserved_1y,NA,0.489954,USD,Azure Retail Prices API,2025-12-18T04:46:05.184801 +AZURE,norwayeast,Standard_E8ads_v6,reserved_3y,NA,0.315563,USD,Azure Retail Prices API,2025-12-18T04:46:05.184804 +AZURE,norwayeast,Standard_E8ads_v6,spot,NA,0.153384,USD,Azure Retail Prices API,2025-12-18T04:46:04.069332 +AZURE,norwayeast,Standard_E8as_v4,on_demand,NA,0.721,USD,Azure Retail Prices API,2025-12-18T04:46:04.068362 +AZURE,norwayeast,Standard_E8as_v4,reserved_1y,NA,0.425228,USD,Azure Retail Prices API,2025-12-18T04:46:05.183901 +AZURE,norwayeast,Standard_E8as_v4,reserved_3y,NA,0.273858,USD,Azure Retail Prices API,2025-12-18T04:46:05.183904 +AZURE,norwayeast,Standard_E8as_v4,spot,NA,0.133241,USD,Azure Retail Prices API,2025-12-18T04:46:04.068428 +AZURE,norwayeast,Standard_E8as_v5,on_demand,NA,0.646,USD,Azure Retail Prices API,2025-12-18T04:46:04.068704 +AZURE,norwayeast,Standard_E8as_v5,reserved_1y,NA,0.381393,USD,Azure Retail Prices API,2025-12-18T04:46:05.184152 +AZURE,norwayeast,Standard_E8as_v5,reserved_3y,NA,0.245624,USD,Azure Retail Prices API,2025-12-18T04:46:05.184155 +AZURE,norwayeast,Standard_E8as_v5,spot,NA,0.119381,USD,Azure Retail Prices API,2025-12-18T04:46:04.069218 +AZURE,norwayeast,Standard_E8d_v4,on_demand,NA,0.761,USD,Azure Retail Prices API,2025-12-18T04:46:04.069372 +AZURE,norwayeast,Standard_E8d_v4,reserved_1y,NA,0.449087,USD,Azure Retail Prices API,2025-12-18T04:46:05.184605 +AZURE,norwayeast,Standard_E8d_v4,reserved_3y,NA,0.289269,USD,Azure Retail Prices API,2025-12-18T04:46:05.184608 +AZURE,norwayeast,Standard_E8d_v4,spot,NA,0.140633,USD,Azure Retail Prices API,2025-12-18T04:46:04.069859 +AZURE,norwayeast,Standard_E8ds_v4,on_demand,NA,0.761,USD,Azure Retail Prices API,2025-12-18T04:46:04.069851 +AZURE,norwayeast,Standard_E8ds_v4,reserved_1y,NA,0.449087,USD,Azure Retail Prices API,2025-12-18T04:46:05.185028 +AZURE,norwayeast,Standard_E8ds_v4,reserved_3y,NA,0.289269,USD,Azure Retail Prices API,2025-12-18T04:46:05.185031 +AZURE,norwayeast,Standard_E8ds_v4,spot,NA,0.140633,USD,Azure Retail Prices API,2025-12-18T04:46:04.069352 +AZURE,norwayeast,Standard_E8ds_v5,on_demand,NA,0.761,USD,Azure Retail Prices API,2025-12-18T04:46:04.068923 +AZURE,norwayeast,Standard_E8ds_v5,reserved_1y,NA,0.449087,USD,Azure Retail Prices API,2025-12-18T04:46:05.184287 +AZURE,norwayeast,Standard_E8ds_v5,reserved_3y,NA,0.289269,USD,Azure Retail Prices API,2025-12-18T04:46:05.184290 +AZURE,norwayeast,Standard_E8ds_v5,spot,NA,0.140633,USD,Azure Retail Prices API,2025-12-18T04:46:04.068979 +AZURE,norwayeast,Standard_E8ds_v6,on_demand,NA,0.935,USD,Azure Retail Prices API,2025-12-18T04:46:04.068417 +AZURE,norwayeast,Standard_E8ds_v6,reserved_1y,NA,0.579909,USD,Azure Retail Prices API,2025-12-18T04:46:05.183935 +AZURE,norwayeast,Standard_E8ds_v6,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:46:05.183938 +AZURE,norwayeast,Standard_E8ds_v6,spot,NA,0.172788,USD,Azure Retail Prices API,2025-12-18T04:46:04.069930 +AZURE,norwayeast,Standard_E8pds_v6,on_demand,NA,0.669,USD,Azure Retail Prices API,2025-12-18T04:46:04.068635 +AZURE,norwayeast,Standard_E8pds_v6,reserved_1y,NA,0.394635,USD,Azure Retail Prices API,2025-12-18T04:46:05.184096 +AZURE,norwayeast,Standard_E8pds_v6,reserved_3y,NA,0.254148,USD,Azure Retail Prices API,2025-12-18T04:46:05.184099 +AZURE,norwayeast,Standard_E8pds_v6,spot,NA,0.123631,USD,Azure Retail Prices API,2025-12-18T04:46:04.068641 +AZURE,norwayeast,Standard_E8ps_v6,on_demand,NA,0.527,USD,Azure Retail Prices API,2025-12-18T04:46:04.069585 +AZURE,norwayeast,Standard_E8ps_v6,reserved_1y,NA,0.311073,USD,Azure Retail Prices API,2025-12-18T04:46:05.184795 +AZURE,norwayeast,Standard_E8ps_v6,reserved_3y,NA,0.200342,USD,Azure Retail Prices API,2025-12-18T04:46:05.184798 +AZURE,norwayeast,Standard_E8ps_v6,spot,NA,0.09739,USD,Azure Retail Prices API,2025-12-18T04:46:04.069017 +AZURE,norwayeast,Standard_E8s_v3,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:46:04.069777 +AZURE,norwayeast,Standard_E8s_v3,reserved_1y,NA,0.414155,USD,Azure Retail Prices API,2025-12-18T04:46:05.184957 +AZURE,norwayeast,Standard_E8s_v3,reserved_3y,NA,0.264802,USD,Azure Retail Prices API,2025-12-18T04:46:05.184960 +AZURE,norwayeast,Standard_E8s_v3,spot,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:04.068609 +AZURE,norwayeast,Standard_E8s_v4,on_demand,NA,0.669,USD,Azure Retail Prices API,2025-12-18T04:46:04.069109 +AZURE,norwayeast,Standard_E8s_v4,reserved_1y,NA,0.394635,USD,Azure Retail Prices API,2025-12-18T04:46:05.184416 +AZURE,norwayeast,Standard_E8s_v4,reserved_3y,NA,0.254148,USD,Azure Retail Prices API,2025-12-18T04:46:05.184419 +AZURE,norwayeast,Standard_E8s_v4,spot,NA,0.123631,USD,Azure Retail Prices API,2025-12-18T04:46:04.069454 +AZURE,norwayeast,Standard_E8s_v5,on_demand,NA,0.669,USD,Azure Retail Prices API,2025-12-18T04:46:04.069663 +AZURE,norwayeast,Standard_E8s_v5,reserved_1y,NA,0.394635,USD,Azure Retail Prices API,2025-12-18T04:46:05.184850 +AZURE,norwayeast,Standard_E8s_v5,reserved_3y,NA,0.247451,USD,Azure Retail Prices API,2025-12-18T04:46:05.184853 +AZURE,norwayeast,Standard_E8s_v5,spot,NA,0.123631,USD,Azure Retail Prices API,2025-12-18T04:46:04.069362 +AZURE,norwayeast,Standard_E96a_v4,on_demand,NA,8.649,USD,Azure Retail Prices API,2025-12-18T04:46:04.068864 +AZURE,norwayeast,Standard_E96a_v4,reserved_1y,NA,5.10274,USD,Azure Retail Prices API,2025-12-18T04:46:05.184265 +AZURE,norwayeast,Standard_E96a_v4,reserved_3y,NA,3.286492,USD,Azure Retail Prices API,2025-12-18T04:46:05.184267 +AZURE,norwayeast,Standard_E96a_v4,spot,NA,1.598335,USD,Azure Retail Prices API,2025-12-18T04:46:04.069913 +AZURE,norwayeast,Standard_E96ads_v5,on_demand,NA,13.408,USD,Azure Retail Prices API,2025-12-18T04:46:04.068217 +AZURE,norwayeast,Standard_E96ads_v5,reserved_1y,NA,5.305137,USD,Azure Retail Prices API,2025-12-18T04:46:05.185055 +AZURE,norwayeast,Standard_E96ads_v5,reserved_3y,NA,3.416895,USD,Azure Retail Prices API,2025-12-18T04:46:05.185058 +AZURE,norwayeast,Standard_E96ads_v5,spot,NA,1.661722,USD,Azure Retail Prices API,2025-12-18T04:46:04.068398 +AZURE,norwayeast,Standard_E96ads_v6,on_demand,NA,9.965,USD,Azure Retail Prices API,2025-12-18T04:46:04.069488 +AZURE,norwayeast,Standard_E96ads_v6,reserved_1y,NA,5.879224,USD,Azure Retail Prices API,2025-12-18T04:46:05.184701 +AZURE,norwayeast,Standard_E96ads_v6,reserved_3y,NA,3.786606,USD,Azure Retail Prices API,2025-12-18T04:46:05.184704 +AZURE,norwayeast,Standard_E96ads_v6,spot,NA,1.841532,USD,Azure Retail Prices API,2025-12-18T04:46:04.069084 +AZURE,norwayeast,Standard_E96as_v4,on_demand,NA,8.649,USD,Azure Retail Prices API,2025-12-18T04:46:04.068245 +AZURE,norwayeast,Standard_E96as_v4,reserved_1y,NA,5.10274,USD,Azure Retail Prices API,2025-12-18T04:46:05.183810 +AZURE,norwayeast,Standard_E96as_v4,reserved_3y,NA,3.286492,USD,Azure Retail Prices API,2025-12-18T04:46:05.183813 +AZURE,norwayeast,Standard_E96as_v4,spot,NA,1.598335,USD,Azure Retail Prices API,2025-12-18T04:46:04.069818 +AZURE,norwayeast,Standard_E96as_v5,on_demand,NA,7.756,USD,Azure Retail Prices API,2025-12-18T04:46:04.069528 +AZURE,norwayeast,Standard_E96as_v5,reserved_1y,NA,4.576256,USD,Azure Retail Prices API,2025-12-18T04:46:05.184750 +AZURE,norwayeast,Standard_E96as_v5,reserved_3y,NA,2.947412,USD,Azure Retail Prices API,2025-12-18T04:46:05.184753 +AZURE,norwayeast,Standard_E96as_v5,spot,NA,1.433309,USD,Azure Retail Prices API,2025-12-18T04:46:04.068558 +AZURE,norwayeast,Standard_E96ds_v5,on_demand,NA,9.134,USD,Azure Retail Prices API,2025-12-18T04:46:04.068411 +AZURE,norwayeast,Standard_E96ds_v5,reserved_1y,NA,5.389269,USD,Azure Retail Prices API,2025-12-18T04:46:05.183930 +AZURE,norwayeast,Standard_E96ds_v5,reserved_3y,NA,3.471081,USD,Azure Retail Prices API,2025-12-18T04:46:05.183932 +AZURE,norwayeast,Standard_E96ds_v5,spot,NA,1.687963,USD,Azure Retail Prices API,2025-12-18T04:46:04.068329 +AZURE,norwayeast,Standard_E96ds_v6,on_demand,NA,11.224,USD,Azure Retail Prices API,2025-12-18T04:46:04.069753 +AZURE,norwayeast,Standard_E96ds_v6,reserved_1y,NA,6.959132,USD,Azure Retail Prices API,2025-12-18T04:46:05.184919 +AZURE,norwayeast,Standard_E96ds_v6,reserved_3y,NA,4.377473,USD,Azure Retail Prices API,2025-12-18T04:46:05.184922 +AZURE,norwayeast,Standard_E96ds_v6,spot,NA,2.074195,USD,Azure Retail Prices API,2025-12-18T04:46:04.069615 +AZURE,norwayeast,Standard_E96pds_v6,on_demand,NA,8.026,USD,Azure Retail Prices API,2025-12-18T04:46:04.069482 +AZURE,norwayeast,Standard_E96pds_v6,reserved_1y,NA,4.73516,USD,Azure Retail Prices API,2025-12-18T04:46:05.184695 +AZURE,norwayeast,Standard_E96pds_v6,reserved_3y,NA,3.049734,USD,Azure Retail Prices API,2025-12-18T04:46:05.184698 +AZURE,norwayeast,Standard_E96pds_v6,spot,NA,1.483205,USD,Azure Retail Prices API,2025-12-18T04:46:04.069801 +AZURE,norwayeast,Standard_E96ps_v6,on_demand,NA,6.326,USD,Azure Retail Prices API,2025-12-18T04:46:04.068830 +AZURE,norwayeast,Standard_E96ps_v6,reserved_1y,NA,3.732534,USD,Azure Retail Prices API,2025-12-18T04:46:05.184242 +AZURE,norwayeast,Standard_E96ps_v6,reserved_3y,NA,2.404033,USD,Azure Retail Prices API,2025-12-18T04:46:05.184245 +AZURE,norwayeast,Standard_E96ps_v6,spot,NA,1.169045,USD,Azure Retail Prices API,2025-12-18T04:46:04.069039 +AZURE,norwayeast,Standard_E96s_v5,on_demand,NA,8.026,USD,Azure Retail Prices API,2025-12-18T04:46:04.069251 +AZURE,norwayeast,Standard_E96s_v5,reserved_1y,NA,4.73516,USD,Azure Retail Prices API,2025-12-18T04:46:05.184522 +AZURE,norwayeast,Standard_E96s_v5,reserved_3y,NA,2.969482,USD,Azure Retail Prices API,2025-12-18T04:46:05.184525 +AZURE,norwayeast,Standard_E96s_v5,spot,NA,1.483205,USD,Azure Retail Prices API,2025-12-18T04:46:04.069666 +AZURE,norwayeast,Standard_EC16ads_v6,on_demand,NA,1.661,USD,Azure Retail Prices API,2025-12-18T04:46:04.069555 +AZURE,norwayeast,Standard_EC16ads_v6,reserved_1y,NA,0.979909,USD,Azure Retail Prices API,2025-12-18T04:46:05.184779 +AZURE,norwayeast,Standard_EC16ads_v6,reserved_3y,NA,0.631088,USD,Azure Retail Prices API,2025-12-18T04:46:05.184781 +AZURE,norwayeast,Standard_EC16ads_v6,spot,NA,0.306953,USD,Azure Retail Prices API,2025-12-18T04:46:04.068401 +AZURE,norwayeast,Standard_EC16as_v6,on_demand,NA,1.365,USD,Azure Retail Prices API,2025-12-18T04:46:04.068572 +AZURE,norwayeast,Standard_EC16as_v6,reserved_1y,NA,0.805251,USD,Azure Retail Prices API,2025-12-18T04:46:05.184032 +AZURE,norwayeast,Standard_EC16as_v6,reserved_3y,NA,0.518607,USD,Azure Retail Prices API,2025-12-18T04:46:05.184035 +AZURE,norwayeast,Standard_EC16as_v6,spot,NA,0.252252,USD,Azure Retail Prices API,2025-12-18T04:46:04.068333 +AZURE,norwayeast,Standard_EC2ads_v6,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:46:04.069537 +AZURE,norwayeast,Standard_EC2ads_v6,reserved_1y,NA,0.122489,USD,Azure Retail Prices API,2025-12-18T04:46:05.184761 +AZURE,norwayeast,Standard_EC2ads_v6,reserved_3y,NA,0.078881,USD,Azure Retail Prices API,2025-12-18T04:46:05.184764 +AZURE,norwayeast,Standard_EC2ads_v6,spot,NA,0.038438,USD,Azure Retail Prices API,2025-12-18T04:46:04.069955 +AZURE,norwayeast,Standard_EC2as_v6,on_demand,NA,0.171,USD,Azure Retail Prices API,2025-12-18T04:46:04.068353 +AZURE,norwayeast,Standard_EC2as_v6,reserved_1y,NA,0.100685,USD,Azure Retail Prices API,2025-12-18T04:46:05.183895 +AZURE,norwayeast,Standard_EC2as_v6,reserved_3y,NA,0.06484,USD,Azure Retail Prices API,2025-12-18T04:46:05.183898 +AZURE,norwayeast,Standard_EC2as_v6,spot,NA,0.031601,USD,Azure Retail Prices API,2025-12-18T04:46:04.069774 +AZURE,norwayeast,Standard_EC32ads_v6,on_demand,NA,3.322,USD,Azure Retail Prices API,2025-12-18T04:46:04.069065 +AZURE,norwayeast,Standard_EC32ads_v6,reserved_1y,NA,1.959703,USD,Azure Retail Prices API,2025-12-18T04:46:05.184392 +AZURE,norwayeast,Standard_EC32ads_v6,reserved_3y,NA,1.262215,USD,Azure Retail Prices API,2025-12-18T04:46:05.184395 +AZURE,norwayeast,Standard_EC32ads_v6,spot,NA,0.613906,USD,Azure Retail Prices API,2025-12-18T04:46:04.068340 +AZURE,norwayeast,Standard_EC32as_v6,on_demand,NA,2.73,USD,Azure Retail Prices API,2025-12-18T04:46:04.068366 +AZURE,norwayeast,Standard_EC32as_v6,reserved_1y,NA,1.610502,USD,Azure Retail Prices API,2025-12-18T04:46:05.183906 +AZURE,norwayeast,Standard_EC32as_v6,reserved_3y,NA,1.037253,USD,Azure Retail Prices API,2025-12-18T04:46:05.183909 +AZURE,norwayeast,Standard_EC32as_v6,spot,NA,0.504504,USD,Azure Retail Prices API,2025-12-18T04:46:04.069830 +AZURE,norwayeast,Standard_EC48ads_v6,on_demand,NA,4.982,USD,Azure Retail Prices API,2025-12-18T04:46:04.068986 +AZURE,norwayeast,Standard_EC48ads_v6,reserved_1y,NA,2.939612,USD,Azure Retail Prices API,2025-12-18T04:46:05.184337 +AZURE,norwayeast,Standard_EC48ads_v6,reserved_3y,NA,1.893303,USD,Azure Retail Prices API,2025-12-18T04:46:05.184340 +AZURE,norwayeast,Standard_EC48ads_v6,spot,NA,0.920674,USD,Azure Retail Prices API,2025-12-18T04:46:04.068778 +AZURE,norwayeast,Standard_EC48as_v6,on_demand,NA,4.094,USD,Azure Retail Prices API,2025-12-18T04:46:04.068774 +AZURE,norwayeast,Standard_EC48as_v6,reserved_1y,NA,2.415639,USD,Azure Retail Prices API,2025-12-18T04:46:05.184202 +AZURE,norwayeast,Standard_EC48as_v6,reserved_3y,NA,1.55586,USD,Azure Retail Prices API,2025-12-18T04:46:05.184205 +AZURE,norwayeast,Standard_EC48as_v6,spot,NA,0.756571,USD,Azure Retail Prices API,2025-12-18T04:46:04.069237 +AZURE,norwayeast,Standard_EC4ads_v6,on_demand,NA,0.415,USD,Azure Retail Prices API,2025-12-18T04:46:04.069739 +AZURE,norwayeast,Standard_EC4ads_v6,reserved_1y,NA,0.244977,USD,Azure Retail Prices API,2025-12-18T04:46:05.184902 +AZURE,norwayeast,Standard_EC4ads_v6,reserved_3y,NA,0.157763,USD,Azure Retail Prices API,2025-12-18T04:46:05.184905 +AZURE,norwayeast,Standard_EC4ads_v6,spot,NA,0.076692,USD,Azure Retail Prices API,2025-12-18T04:46:04.068313 +AZURE,norwayeast,Standard_EC4as_v6,on_demand,NA,0.341,USD,Azure Retail Prices API,2025-12-18T04:46:04.069798 +AZURE,norwayeast,Standard_EC4as_v6,reserved_1y,NA,0.201256,USD,Azure Retail Prices API,2025-12-18T04:46:05.184980 +AZURE,norwayeast,Standard_EC4as_v6,reserved_3y,NA,0.129642,USD,Azure Retail Prices API,2025-12-18T04:46:05.184982 +AZURE,norwayeast,Standard_EC4as_v6,spot,NA,0.063017,USD,Azure Retail Prices API,2025-12-18T04:46:04.068460 +AZURE,norwayeast,Standard_EC64ads_v6,on_demand,NA,6.643,USD,Azure Retail Prices API,2025-12-18T04:46:04.069494 +AZURE,norwayeast,Standard_EC64ads_v6,reserved_1y,NA,3.919521,USD,Azure Retail Prices API,2025-12-18T04:46:05.184706 +AZURE,norwayeast,Standard_EC64ads_v6,reserved_3y,NA,2.524429,USD,Azure Retail Prices API,2025-12-18T04:46:05.184709 +AZURE,norwayeast,Standard_EC64ads_v6,spot,NA,1.227626,USD,Azure Retail Prices API,2025-12-18T04:46:04.069439 +AZURE,norwayeast,Standard_EC64as_v6,on_demand,NA,5.459,USD,Azure Retail Prices API,2025-12-18T04:46:04.068280 +AZURE,norwayeast,Standard_EC64as_v6,reserved_1y,NA,3.22089,USD,Azure Retail Prices API,2025-12-18T04:46:05.183853 +AZURE,norwayeast,Standard_EC64as_v6,reserved_3y,NA,2.074505,USD,Azure Retail Prices API,2025-12-18T04:46:05.183856 +AZURE,norwayeast,Standard_EC64as_v6,spot,NA,1.008823,USD,Azure Retail Prices API,2025-12-18T04:46:04.068319 +AZURE,norwayeast,Standard_EC8ads_v6,on_demand,NA,0.83,USD,Azure Retail Prices API,2025-12-18T04:46:04.069810 +AZURE,norwayeast,Standard_EC8ads_v6,reserved_1y,NA,0.489954,USD,Azure Retail Prices API,2025-12-18T04:46:05.184990 +AZURE,norwayeast,Standard_EC8ads_v6,reserved_3y,NA,0.315563,USD,Azure Retail Prices API,2025-12-18T04:46:05.184993 +AZURE,norwayeast,Standard_EC8ads_v6,spot,NA,0.153384,USD,Azure Retail Prices API,2025-12-18T04:46:04.069099 +AZURE,norwayeast,Standard_EC8as_v6,on_demand,NA,0.682,USD,Azure Retail Prices API,2025-12-18T04:46:04.069506 +AZURE,norwayeast,Standard_EC8as_v6,reserved_1y,NA,0.402626,USD,Azure Retail Prices API,2025-12-18T04:46:05.184720 +AZURE,norwayeast,Standard_EC8as_v6,reserved_3y,NA,0.259323,USD,Azure Retail Prices API,2025-12-18T04:46:05.184726 +AZURE,norwayeast,Standard_EC8as_v6,spot,NA,0.126034,USD,Azure Retail Prices API,2025-12-18T04:46:04.069783 +AZURE,norwayeast,Standard_EC96ads_v6,on_demand,NA,9.965,USD,Azure Retail Prices API,2025-12-18T04:46:04.068565 +AZURE,norwayeast,Standard_EC96ads_v6,reserved_1y,NA,5.879224,USD,Azure Retail Prices API,2025-12-18T04:46:05.184020 +AZURE,norwayeast,Standard_EC96ads_v6,reserved_3y,NA,3.786606,USD,Azure Retail Prices API,2025-12-18T04:46:05.184023 +AZURE,norwayeast,Standard_EC96ads_v6,spot,NA,1.841532,USD,Azure Retail Prices API,2025-12-18T04:46:04.068760 +AZURE,norwayeast,Standard_EC96as_v6,on_demand,NA,8.189,USD,Azure Retail Prices API,2025-12-18T04:46:04.069795 +AZURE,norwayeast,Standard_EC96as_v6,reserved_1y,NA,4.831393,USD,Azure Retail Prices API,2025-12-18T04:46:05.184974 +AZURE,norwayeast,Standard_EC96as_v6,reserved_3y,NA,3.111758,USD,Azure Retail Prices API,2025-12-18T04:46:05.184977 +AZURE,norwayeast,Standard_EC96as_v6,spot,NA,1.513327,USD,Azure Retail Prices API,2025-12-18T04:46:04.069671 +AZURE,norwayeast,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379550 +AZURE,norwayeast,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379558 +AZURE,norwayeast,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379562 +AZURE,norwayeast,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379554 +AZURE,norwayeast,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381856 +AZURE,norwayeast,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381864 +AZURE,norwayeast,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381868 +AZURE,norwayeast,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381860 +AZURE,norwayeast,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384590 +AZURE,norwayeast,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384599 +AZURE,norwayeast,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384603 +AZURE,norwayeast,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384594 +AZURE,norwayeast,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385414 +AZURE,norwayeast,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385423 +AZURE,norwayeast,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385427 +AZURE,norwayeast,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385418 +AZURE,norwayeast,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377996 +AZURE,norwayeast,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378006 +AZURE,norwayeast,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378013 +AZURE,norwayeast,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378000 +AZURE,norwayeast,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386176 +AZURE,norwayeast,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386185 +AZURE,norwayeast,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386189 +AZURE,norwayeast,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386180 +AZURE,norwayeast,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380315 +AZURE,norwayeast,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380325 +AZURE,norwayeast,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380329 +AZURE,norwayeast,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380320 +AZURE,norwayeast,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382922 +AZURE,norwayeast,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382931 +AZURE,norwayeast,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382935 +AZURE,norwayeast,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382926 +AZURE,norwayeast,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386946 +AZURE,norwayeast,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386954 +AZURE,norwayeast,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386958 +AZURE,norwayeast,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386950 +AZURE,norwayeast,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387764 +AZURE,norwayeast,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387773 +AZURE,norwayeast,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387777 +AZURE,norwayeast,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387768 +AZURE,norwayeast,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378731 +AZURE,norwayeast,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378739 +AZURE,norwayeast,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378743 +AZURE,norwayeast,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378735 +AZURE,norwayeast,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381035 +AZURE,norwayeast,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381043 +AZURE,norwayeast,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381047 +AZURE,norwayeast,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381039 +AZURE,norwayeast,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383747 +AZURE,norwayeast,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383755 +AZURE,norwayeast,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383765 +AZURE,norwayeast,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383751 +AZURE,norwayeast,Standard_L16as_v3,on_demand,NA,1.785,USD,Azure Retail Prices API,2025-12-18T04:46:04.068303 +AZURE,norwayeast,Standard_L16as_v3,reserved_1y,NA,1.142123,USD,Azure Retail Prices API,2025-12-18T04:46:05.183871 +AZURE,norwayeast,Standard_L16as_v3,reserved_3y,NA,0.749543,USD,Azure Retail Prices API,2025-12-18T04:46:05.183874 +AZURE,norwayeast,Standard_L16as_v3,spot,NA,0.329868,USD,Azure Retail Prices API,2025-12-18T04:46:04.069027 +AZURE,norwayeast,Standard_L16s_v3,on_demand,NA,1.996,USD,Azure Retail Prices API,2025-12-18T04:46:04.068615 +AZURE,norwayeast,Standard_L16s_v3,reserved_1y,NA,1.277626,USD,Azure Retail Prices API,2025-12-18T04:46:05.184067 +AZURE,norwayeast,Standard_L16s_v3,reserved_3y,NA,0.838432,USD,Azure Retail Prices API,2025-12-18T04:46:05.184070 +AZURE,norwayeast,Standard_L16s_v3,spot,NA,0.368861,USD,Azure Retail Prices API,2025-12-18T04:46:04.069835 +AZURE,norwayeast,Standard_L32as_v3,on_demand,NA,3.569,USD,Azure Retail Prices API,2025-12-18T04:46:04.068252 +AZURE,norwayeast,Standard_L32as_v3,reserved_1y,NA,2.284361,USD,Azure Retail Prices API,2025-12-18T04:46:05.183822 +AZURE,norwayeast,Standard_L32as_v3,reserved_3y,NA,1.499087,USD,Azure Retail Prices API,2025-12-18T04:46:05.183825 +AZURE,norwayeast,Standard_L32as_v3,spot,NA,0.659551,USD,Azure Retail Prices API,2025-12-18T04:46:04.069516 +AZURE,norwayeast,Standard_L32s_v3,on_demand,NA,3.993,USD,Azure Retail Prices API,2025-12-18T04:46:04.069322 +AZURE,norwayeast,Standard_L32s_v3,reserved_1y,NA,2.555251,USD,Azure Retail Prices API,2025-12-18T04:46:05.184566 +AZURE,norwayeast,Standard_L32s_v3,reserved_3y,NA,1.676865,USD,Azure Retail Prices API,2025-12-18T04:46:05.184569 +AZURE,norwayeast,Standard_L32s_v3,spot,NA,0.737906,USD,Azure Retail Prices API,2025-12-18T04:46:04.068395 +AZURE,norwayeast,Standard_L48as_v3,on_demand,NA,5.354,USD,Azure Retail Prices API,2025-12-18T04:46:04.070000 +AZURE,norwayeast,Standard_L48as_v3,reserved_1y,NA,3.426484,USD,Azure Retail Prices API,2025-12-18T04:46:05.185226 +AZURE,norwayeast,Standard_L48as_v3,reserved_3y,NA,2.24863,USD,Azure Retail Prices API,2025-12-18T04:46:05.185228 +AZURE,norwayeast,Standard_L48as_v3,spot,NA,0.989419,USD,Azure Retail Prices API,2025-12-18T04:46:04.069872 +AZURE,norwayeast,Standard_L48s_v3,on_demand,NA,5.989,USD,Azure Retail Prices API,2025-12-18T04:46:04.069842 +AZURE,norwayeast,Standard_L48s_v3,reserved_1y,NA,3.832877,USD,Azure Retail Prices API,2025-12-18T04:46:05.185018 +AZURE,norwayeast,Standard_L48s_v3,reserved_3y,NA,2.515335,USD,Azure Retail Prices API,2025-12-18T04:46:05.185020 +AZURE,norwayeast,Standard_L48s_v3,spot,NA,1.106767,USD,Azure Retail Prices API,2025-12-18T04:46:04.069356 +AZURE,norwayeast,Standard_L64as_v3,on_demand,NA,7.139,USD,Azure Retail Prices API,2025-12-18T04:46:04.068296 +AZURE,norwayeast,Standard_L64as_v3,reserved_1y,NA,4.568721,USD,Azure Retail Prices API,2025-12-18T04:46:05.183866 +AZURE,norwayeast,Standard_L64as_v3,reserved_3y,NA,2.998212,USD,Azure Retail Prices API,2025-12-18T04:46:05.183868 +AZURE,norwayeast,Standard_L64as_v3,spot,NA,1.319287,USD,Azure Retail Prices API,2025-12-18T04:46:04.068850 +AZURE,norwayeast,Standard_L64s_v3,on_demand,NA,7.985,USD,Azure Retail Prices API,2025-12-18T04:46:04.068764 +AZURE,norwayeast,Standard_L64s_v3,reserved_1y,NA,5.110502,USD,Azure Retail Prices API,2025-12-18T04:46:05.184191 +AZURE,norwayeast,Standard_L64s_v3,reserved_3y,NA,3.353767,USD,Azure Retail Prices API,2025-12-18T04:46:05.184193 +AZURE,norwayeast,Standard_L64s_v3,spot,NA,1.475628,USD,Azure Retail Prices API,2025-12-18T04:46:04.069244 +AZURE,norwayeast,Standard_L80as_v3,on_demand,NA,8.923,USD,Azure Retail Prices API,2025-12-18T04:46:04.069762 +AZURE,norwayeast,Standard_L80as_v3,reserved_1y,NA,5.710845,USD,Azure Retail Prices API,2025-12-18T04:46:05.184930 +AZURE,norwayeast,Standard_L80as_v3,reserved_3y,NA,3.747755,USD,Azure Retail Prices API,2025-12-18T04:46:05.184932 +AZURE,norwayeast,Standard_L80as_v3,spot,NA,1.64897,USD,Azure Retail Prices API,2025-12-18T04:46:04.069221 +AZURE,norwayeast,Standard_L80s_v3,on_demand,NA,9.981,USD,Azure Retail Prices API,2025-12-18T04:46:04.068595 +AZURE,norwayeast,Standard_L80s_v3,reserved_1y,NA,6.388128,USD,Azure Retail Prices API,2025-12-18T04:46:05.184055 +AZURE,norwayeast,Standard_L80s_v3,reserved_3y,NA,4.192199,USD,Azure Retail Prices API,2025-12-18T04:46:05.184058 +AZURE,norwayeast,Standard_L80s_v3,spot,NA,1.844489,USD,Azure Retail Prices API,2025-12-18T04:46:04.069969 +AZURE,norwayeast,Standard_L8as_v3,on_demand,NA,0.892,USD,Azure Retail Prices API,2025-12-18T04:46:04.069393 +AZURE,norwayeast,Standard_L8as_v3,reserved_1y,NA,0.571119,USD,Azure Retail Prices API,2025-12-18T04:46:05.184616 +AZURE,norwayeast,Standard_L8as_v3,reserved_3y,NA,0.374772,USD,Azure Retail Prices API,2025-12-18T04:46:05.184619 +AZURE,norwayeast,Standard_L8as_v3,spot,NA,0.164842,USD,Azure Retail Prices API,2025-12-18T04:46:04.069329 +AZURE,norwayeast,Standard_L8s_v3,on_demand,NA,0.998,USD,Azure Retail Prices API,2025-12-18T04:46:04.069257 +AZURE,norwayeast,Standard_L8s_v3,reserved_1y,NA,0.638813,USD,Azure Retail Prices API,2025-12-18T04:46:05.184528 +AZURE,norwayeast,Standard_L8s_v3,reserved_3y,NA,0.419216,USD,Azure Retail Prices API,2025-12-18T04:46:05.184530 +AZURE,norwayeast,Standard_L8s_v3,spot,NA,0.18443,USD,Azure Retail Prices API,2025-12-18T04:46:04.068372 +AZURE,qatarcentral,Standard_D128ds_v6,on_demand,NA,9.775,USD,Azure Retail Prices API,2025-12-18T04:46:06.975552 +AZURE,qatarcentral,Standard_D128ds_v6,reserved_1y,NA,6.060731,USD,Azure Retail Prices API,2025-12-18T04:46:08.033892 +AZURE,qatarcentral,Standard_D128ds_v6,reserved_3y,NA,3.812405,USD,Azure Retail Prices API,2025-12-18T04:46:08.033898 +AZURE,qatarcentral,Standard_D128ds_v6,spot,NA,1.80642,USD,Azure Retail Prices API,2025-12-18T04:46:06.975324 +AZURE,qatarcentral,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488453 +AZURE,qatarcentral,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488461 +AZURE,qatarcentral,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488465 +AZURE,qatarcentral,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488457 +AZURE,qatarcentral,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489233 +AZURE,qatarcentral,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489241 +AZURE,qatarcentral,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489245 +AZURE,qatarcentral,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489237 +AZURE,qatarcentral,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490329 +AZURE,qatarcentral,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490338 +AZURE,qatarcentral,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490342 +AZURE,qatarcentral,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490334 +AZURE,qatarcentral,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491042 +AZURE,qatarcentral,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491050 +AZURE,qatarcentral,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491054 +AZURE,qatarcentral,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491046 +AZURE,qatarcentral,Standard_D16_v3,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:06.974534 +AZURE,qatarcentral,Standard_D16_v3,reserved_1y,NA,0.553653,USD,Azure Retail Prices API,2025-12-18T04:46:08.033068 +AZURE,qatarcentral,Standard_D16_v3,reserved_3y,NA,0.354033,USD,Azure Retail Prices API,2025-12-18T04:46:08.033074 +AZURE,qatarcentral,Standard_D16_v3,spot,NA,0.174082,USD,Azure Retail Prices API,2025-12-18T04:46:06.976127 +AZURE,qatarcentral,Standard_D16a_v4,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:06.974426 +AZURE,qatarcentral,Standard_D16a_v4,reserved_1y,NA,0.555594,USD,Azure Retail Prices API,2025-12-18T04:46:08.032918 +AZURE,qatarcentral,Standard_D16a_v4,reserved_3y,NA,0.357801,USD,Azure Retail Prices API,2025-12-18T04:46:08.032923 +AZURE,qatarcentral,Standard_D16a_v4,spot,NA,0.174082,USD,Azure Retail Prices API,2025-12-18T04:46:06.975308 +AZURE,qatarcentral,Standard_D16ads_v5,on_demand,NA,1.015,USD,Azure Retail Prices API,2025-12-18T04:46:06.974965 +AZURE,qatarcentral,Standard_D16ads_v5,reserved_1y,NA,0.598973,USD,Azure Retail Prices API,2025-12-18T04:46:08.033485 +AZURE,qatarcentral,Standard_D16ads_v5,reserved_3y,NA,0.385769,USD,Azure Retail Prices API,2025-12-18T04:46:08.033490 +AZURE,qatarcentral,Standard_D16ads_v5,spot,NA,0.187572,USD,Azure Retail Prices API,2025-12-18T04:46:06.975402 +AZURE,qatarcentral,Standard_D16ads_v6,on_demand,NA,1.125,USD,Azure Retail Prices API,2025-12-18T04:46:06.976234 +AZURE,qatarcentral,Standard_D16ads_v6,reserved_1y,NA,0.663584,USD,Azure Retail Prices API,2025-12-18T04:46:08.034529 +AZURE,qatarcentral,Standard_D16ads_v6,reserved_3y,NA,0.427435,USD,Azure Retail Prices API,2025-12-18T04:46:08.034534 +AZURE,qatarcentral,Standard_D16ads_v6,spot,NA,0.2079,USD,Azure Retail Prices API,2025-12-18T04:46:06.976021 +AZURE,qatarcentral,Standard_D16as_v4,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:06.974686 +AZURE,qatarcentral,Standard_D16as_v4,reserved_1y,NA,0.555594,USD,Azure Retail Prices API,2025-12-18T04:46:08.033273 +AZURE,qatarcentral,Standard_D16as_v4,reserved_3y,NA,0.357801,USD,Azure Retail Prices API,2025-12-18T04:46:08.033278 +AZURE,qatarcentral,Standard_D16as_v4,spot,NA,0.174082,USD,Azure Retail Prices API,2025-12-18T04:46:06.975792 +AZURE,qatarcentral,Standard_D16as_v5,on_demand,NA,0.848,USD,Azure Retail Prices API,2025-12-18T04:46:06.973636 +AZURE,qatarcentral,Standard_D16as_v5,reserved_1y,NA,0.500342,USD,Azure Retail Prices API,2025-12-18T04:46:08.032275 +AZURE,qatarcentral,Standard_D16as_v5,reserved_3y,NA,0.322222,USD,Azure Retail Prices API,2025-12-18T04:46:08.032280 +AZURE,qatarcentral,Standard_D16as_v5,spot,NA,0.15671,USD,Azure Retail Prices API,2025-12-18T04:46:06.974907 +AZURE,qatarcentral,Standard_D16d_v4,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:46:06.974315 +AZURE,qatarcentral,Standard_D16d_v4,reserved_1y,NA,0.654224,USD,Azure Retail Prices API,2025-12-18T04:46:08.032781 +AZURE,qatarcentral,Standard_D16d_v4,reserved_3y,NA,0.421347,USD,Azure Retail Prices API,2025-12-18T04:46:08.032786 +AZURE,qatarcentral,Standard_D16d_v4,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:46:06.975735 +AZURE,qatarcentral,Standard_D16ds_v4,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:46:06.974211 +AZURE,qatarcentral,Standard_D16ds_v4,reserved_1y,NA,0.651941,USD,Azure Retail Prices API,2025-12-18T04:46:08.032689 +AZURE,qatarcentral,Standard_D16ds_v4,reserved_3y,NA,0.416895,USD,Azure Retail Prices API,2025-12-18T04:46:08.032694 +AZURE,qatarcentral,Standard_D16ds_v4,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:46:06.975679 +AZURE,qatarcentral,Standard_D16ds_v5,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:46:06.973966 +AZURE,qatarcentral,Standard_D16ds_v5,reserved_1y,NA,0.654224,USD,Azure Retail Prices API,2025-12-18T04:46:08.032477 +AZURE,qatarcentral,Standard_D16ds_v5,reserved_3y,NA,0.421347,USD,Azure Retail Prices API,2025-12-18T04:46:08.032483 +AZURE,qatarcentral,Standard_D16ds_v5,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:46:06.976033 +AZURE,qatarcentral,Standard_D16ds_v6,on_demand,NA,1.222,USD,Azure Retail Prices API,2025-12-18T04:46:06.975475 +AZURE,qatarcentral,Standard_D16ds_v6,reserved_1y,NA,0.757534,USD,Azure Retail Prices API,2025-12-18T04:46:08.033817 +AZURE,qatarcentral,Standard_D16ds_v6,reserved_3y,NA,0.47656,USD,Azure Retail Prices API,2025-12-18T04:46:08.033822 +AZURE,qatarcentral,Standard_D16ds_v6,spot,NA,0.225826,USD,Azure Retail Prices API,2025-12-18T04:46:06.974823 +AZURE,qatarcentral,Standard_D16s_v3,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:06.974044 +AZURE,qatarcentral,Standard_D16s_v3,reserved_1y,NA,0.553653,USD,Azure Retail Prices API,2025-12-18T04:46:08.032540 +AZURE,qatarcentral,Standard_D16s_v3,reserved_3y,NA,0.354033,USD,Azure Retail Prices API,2025-12-18T04:46:08.032545 +AZURE,qatarcentral,Standard_D16s_v3,spot,NA,0.174082,USD,Azure Retail Prices API,2025-12-18T04:46:06.976311 +AZURE,qatarcentral,Standard_D16s_v4,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:06.975943 +AZURE,qatarcentral,Standard_D16s_v4,reserved_1y,NA,0.553653,USD,Azure Retail Prices API,2025-12-18T04:46:08.034252 +AZURE,qatarcentral,Standard_D16s_v4,reserved_3y,NA,0.354033,USD,Azure Retail Prices API,2025-12-18T04:46:08.034257 +AZURE,qatarcentral,Standard_D16s_v4,spot,NA,0.174082,USD,Azure Retail Prices API,2025-12-18T04:46:06.973630 +AZURE,qatarcentral,Standard_D16s_v5,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:06.976254 +AZURE,qatarcentral,Standard_D16s_v5,reserved_1y,NA,0.536758,USD,Azure Retail Prices API,2025-12-18T04:46:08.034550 +AZURE,qatarcentral,Standard_D16s_v5,reserved_3y,NA,0.348402,USD,Azure Retail Prices API,2025-12-18T04:46:08.034555 +AZURE,qatarcentral,Standard_D16s_v5,spot,NA,0.174082,USD,Azure Retail Prices API,2025-12-18T04:46:06.975594 +AZURE,qatarcentral,Standard_D2ads_v6,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:46:06.975318 +AZURE,qatarcentral,Standard_D2ads_v6,reserved_1y,NA,0.082991,USD,Azure Retail Prices API,2025-12-18T04:46:08.033584 +AZURE,qatarcentral,Standard_D2ads_v6,reserved_3y,NA,0.053425,USD,Azure Retail Prices API,2025-12-18T04:46:08.033588 +AZURE,qatarcentral,Standard_D2ads_v6,spot,NA,0.026057,USD,Azure Retail Prices API,2025-12-18T04:46:06.974055 +AZURE,qatarcentral,Standard_D2ds_v6,on_demand,NA,0.153,USD,Azure Retail Prices API,2025-12-18T04:46:06.974671 +AZURE,qatarcentral,Standard_D2ds_v6,reserved_1y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:46:08.033252 +AZURE,qatarcentral,Standard_D2ds_v6,reserved_3y,NA,0.059551,USD,Azure Retail Prices API,2025-12-18T04:46:08.033258 +AZURE,qatarcentral,Standard_D2ds_v6,spot,NA,0.028274,USD,Azure Retail Prices API,2025-12-18T04:46:06.974558 +AZURE,qatarcentral,Standard_D32_v3,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:06.973777 +AZURE,qatarcentral,Standard_D32_v3,reserved_1y,NA,1.107306,USD,Azure Retail Prices API,2025-12-18T04:46:08.032353 +AZURE,qatarcentral,Standard_D32_v3,reserved_3y,NA,0.708067,USD,Azure Retail Prices API,2025-12-18T04:46:08.032358 +AZURE,qatarcentral,Standard_D32_v3,spot,NA,0.347978,USD,Azure Retail Prices API,2025-12-18T04:46:06.973949 +AZURE,qatarcentral,Standard_D32a_v4,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:06.975547 +AZURE,qatarcentral,Standard_D32a_v4,reserved_1y,NA,1.111073,USD,Azure Retail Prices API,2025-12-18T04:46:08.033883 +AZURE,qatarcentral,Standard_D32a_v4,reserved_3y,NA,0.715601,USD,Azure Retail Prices API,2025-12-18T04:46:08.033888 +AZURE,qatarcentral,Standard_D32a_v4,spot,NA,0.347978,USD,Azure Retail Prices API,2025-12-18T04:46:06.974913 +AZURE,qatarcentral,Standard_D32ads_v5,on_demand,NA,2.03,USD,Azure Retail Prices API,2025-12-18T04:46:06.975053 +AZURE,qatarcentral,Standard_D32ads_v5,reserved_1y,NA,1.197945,USD,Azure Retail Prices API,2025-12-18T04:46:08.033514 +AZURE,qatarcentral,Standard_D32ads_v5,reserved_3y,NA,0.771537,USD,Azure Retail Prices API,2025-12-18T04:46:08.033519 +AZURE,qatarcentral,Standard_D32ads_v5,spot,NA,0.375144,USD,Azure Retail Prices API,2025-12-18T04:46:06.975452 +AZURE,qatarcentral,Standard_D32ads_v6,on_demand,NA,2.25,USD,Azure Retail Prices API,2025-12-18T04:46:06.975724 +AZURE,qatarcentral,Standard_D32ads_v6,reserved_1y,NA,1.327283,USD,Azure Retail Prices API,2025-12-18T04:46:08.034046 +AZURE,qatarcentral,Standard_D32ads_v6,reserved_3y,NA,0.854833,USD,Azure Retail Prices API,2025-12-18T04:46:08.034050 +AZURE,qatarcentral,Standard_D32ads_v6,spot,NA,0.4158,USD,Azure Retail Prices API,2025-12-18T04:46:06.973758 +AZURE,qatarcentral,Standard_D32as_v4,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:06.974637 +AZURE,qatarcentral,Standard_D32as_v4,reserved_1y,NA,1.111073,USD,Azure Retail Prices API,2025-12-18T04:46:08.033210 +AZURE,qatarcentral,Standard_D32as_v4,reserved_3y,NA,0.715601,USD,Azure Retail Prices API,2025-12-18T04:46:08.033217 +AZURE,qatarcentral,Standard_D32as_v4,spot,NA,0.347978,USD,Azure Retail Prices API,2025-12-18T04:46:06.975730 +AZURE,qatarcentral,Standard_D32as_v5,on_demand,NA,1.696,USD,Azure Retail Prices API,2025-12-18T04:46:06.974740 +AZURE,qatarcentral,Standard_D32as_v5,reserved_1y,NA,1.000685,USD,Azure Retail Prices API,2025-12-18T04:46:08.033347 +AZURE,qatarcentral,Standard_D32as_v5,reserved_3y,NA,0.644482,USD,Azure Retail Prices API,2025-12-18T04:46:08.033352 +AZURE,qatarcentral,Standard_D32as_v5,spot,NA,0.313421,USD,Azure Retail Prices API,2025-12-18T04:46:06.974757 +AZURE,qatarcentral,Standard_D32d_v4,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:46:06.974357 +AZURE,qatarcentral,Standard_D32d_v4,reserved_1y,NA,1.308333,USD,Azure Retail Prices API,2025-12-18T04:46:08.032832 +AZURE,qatarcentral,Standard_D32d_v4,reserved_3y,NA,0.842694,USD,Azure Retail Prices API,2025-12-18T04:46:08.032838 +AZURE,qatarcentral,Standard_D32d_v4,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:46:06.974595 +AZURE,qatarcentral,Standard_D32ds_v4,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:46:06.974109 +AZURE,qatarcentral,Standard_D32ds_v4,reserved_1y,NA,1.303995,USD,Azure Retail Prices API,2025-12-18T04:46:08.032592 +AZURE,qatarcentral,Standard_D32ds_v4,reserved_3y,NA,0.833828,USD,Azure Retail Prices API,2025-12-18T04:46:08.032598 +AZURE,qatarcentral,Standard_D32ds_v4,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:46:06.974953 +AZURE,qatarcentral,Standard_D32ds_v5,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:46:06.974879 +AZURE,qatarcentral,Standard_D32ds_v5,reserved_1y,NA,1.308333,USD,Azure Retail Prices API,2025-12-18T04:46:08.033443 +AZURE,qatarcentral,Standard_D32ds_v5,reserved_3y,NA,0.842694,USD,Azure Retail Prices API,2025-12-18T04:46:08.033448 +AZURE,qatarcentral,Standard_D32ds_v5,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:46:06.974999 +AZURE,qatarcentral,Standard_D32ds_v6,on_demand,NA,2.444,USD,Azure Retail Prices API,2025-12-18T04:46:06.973650 +AZURE,qatarcentral,Standard_D32ds_v6,reserved_1y,NA,1.515183,USD,Azure Retail Prices API,2025-12-18T04:46:08.032297 +AZURE,qatarcentral,Standard_D32ds_v6,reserved_3y,NA,0.953082,USD,Azure Retail Prices API,2025-12-18T04:46:08.032302 +AZURE,qatarcentral,Standard_D32ds_v6,spot,NA,0.451651,USD,Azure Retail Prices API,2025-12-18T04:46:06.974773 +AZURE,qatarcentral,Standard_D32s_v3,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:06.974189 +AZURE,qatarcentral,Standard_D32s_v3,reserved_1y,NA,1.107306,USD,Azure Retail Prices API,2025-12-18T04:46:08.032656 +AZURE,qatarcentral,Standard_D32s_v3,reserved_3y,NA,0.708067,USD,Azure Retail Prices API,2025-12-18T04:46:08.032662 +AZURE,qatarcentral,Standard_D32s_v3,spot,NA,0.347978,USD,Azure Retail Prices API,2025-12-18T04:46:06.974168 +AZURE,qatarcentral,Standard_D32s_v4,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:06.975437 +AZURE,qatarcentral,Standard_D32s_v4,reserved_1y,NA,1.107306,USD,Azure Retail Prices API,2025-12-18T04:46:08.033791 +AZURE,qatarcentral,Standard_D32s_v4,reserved_3y,NA,0.708067,USD,Azure Retail Prices API,2025-12-18T04:46:08.033795 +AZURE,qatarcentral,Standard_D32s_v4,spot,NA,0.347978,USD,Azure Retail Prices API,2025-12-18T04:46:06.975390 +AZURE,qatarcentral,Standard_D32s_v5,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:06.974441 +AZURE,qatarcentral,Standard_D32s_v5,reserved_1y,NA,1.073402,USD,Azure Retail Prices API,2025-12-18T04:46:08.032950 +AZURE,qatarcentral,Standard_D32s_v5,reserved_3y,NA,0.696766,USD,Azure Retail Prices API,2025-12-18T04:46:08.032955 +AZURE,qatarcentral,Standard_D32s_v5,spot,NA,0.347978,USD,Azure Retail Prices API,2025-12-18T04:46:06.973960 +AZURE,qatarcentral,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485480 +AZURE,qatarcentral,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485494 +AZURE,qatarcentral,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485501 +AZURE,qatarcentral,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485488 +AZURE,qatarcentral,Standard_D48a_v4,on_demand,NA,2.825,USD,Azure Retail Prices API,2025-12-18T04:46:06.973665 +AZURE,qatarcentral,Standard_D48a_v4,reserved_1y,NA,1.666667,USD,Azure Retail Prices API,2025-12-18T04:46:08.032318 +AZURE,qatarcentral,Standard_D48a_v4,reserved_3y,NA,1.07344,USD,Azure Retail Prices API,2025-12-18T04:46:08.032324 +AZURE,qatarcentral,Standard_D48a_v4,spot,NA,0.52206,USD,Azure Retail Prices API,2025-12-18T04:46:06.975042 +AZURE,qatarcentral,Standard_D48ads_v5,on_demand,NA,5.254,USD,Azure Retail Prices API,2025-12-18T04:46:06.974539 +AZURE,qatarcentral,Standard_D48ads_v5,reserved_1y,NA,1.796918,USD,Azure Retail Prices API,2025-12-18T04:46:08.033567 +AZURE,qatarcentral,Standard_D48ads_v5,reserved_3y,NA,1.157344,USD,Azure Retail Prices API,2025-12-18T04:46:08.033572 +AZURE,qatarcentral,Standard_D48ads_v5,spot,NA,0.562901,USD,Azure Retail Prices API,2025-12-18T04:46:06.976044 +AZURE,qatarcentral,Standard_D48ads_v6,on_demand,NA,3.374,USD,Azure Retail Prices API,2025-12-18T04:46:06.975431 +AZURE,qatarcentral,Standard_D48ads_v6,reserved_1y,NA,1.990868,USD,Azure Retail Prices API,2025-12-18T04:46:08.033697 +AZURE,qatarcentral,Standard_D48ads_v6,reserved_3y,NA,1.282268,USD,Azure Retail Prices API,2025-12-18T04:46:08.033701 +AZURE,qatarcentral,Standard_D48ads_v6,spot,NA,0.623515,USD,Azure Retail Prices API,2025-12-18T04:46:06.974712 +AZURE,qatarcentral,Standard_D48as_v4,on_demand,NA,2.825,USD,Azure Retail Prices API,2025-12-18T04:46:06.973749 +AZURE,qatarcentral,Standard_D48as_v4,reserved_1y,NA,1.666667,USD,Azure Retail Prices API,2025-12-18T04:46:08.032342 +AZURE,qatarcentral,Standard_D48as_v4,reserved_3y,NA,1.07344,USD,Azure Retail Prices API,2025-12-18T04:46:08.032347 +AZURE,qatarcentral,Standard_D48as_v4,spot,NA,0.52206,USD,Azure Retail Prices API,2025-12-18T04:46:06.975835 +AZURE,qatarcentral,Standard_D48as_v5,on_demand,NA,4.752,USD,Azure Retail Prices API,2025-12-18T04:46:06.974305 +AZURE,qatarcentral,Standard_D48as_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:08.033669 +AZURE,qatarcentral,Standard_D48as_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:08.033674 +AZURE,qatarcentral,Standard_D48as_v5,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:06.975814 +AZURE,qatarcentral,Standard_D48d_v4,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:46:06.973885 +AZURE,qatarcentral,Standard_D48d_v4,reserved_1y,NA,1.962557,USD,Azure Retail Prices API,2025-12-18T04:46:08.032440 +AZURE,qatarcentral,Standard_D48d_v4,reserved_3y,NA,1.264041,USD,Azure Retail Prices API,2025-12-18T04:46:08.032444 +AZURE,qatarcentral,Standard_D48d_v4,spot,NA,0.614645,USD,Azure Retail Prices API,2025-12-18T04:46:06.974633 +AZURE,qatarcentral,Standard_D48ds_v4,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:46:06.975379 +AZURE,qatarcentral,Standard_D48ds_v4,reserved_1y,NA,1.955936,USD,Azure Retail Prices API,2025-12-18T04:46:08.033653 +AZURE,qatarcentral,Standard_D48ds_v4,reserved_3y,NA,1.250723,USD,Azure Retail Prices API,2025-12-18T04:46:08.033657 +AZURE,qatarcentral,Standard_D48ds_v4,spot,NA,0.614645,USD,Azure Retail Prices API,2025-12-18T04:46:06.973564 +AZURE,qatarcentral,Standard_D48ds_v5,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:46:06.974083 +AZURE,qatarcentral,Standard_D48ds_v5,reserved_1y,NA,1.962557,USD,Azure Retail Prices API,2025-12-18T04:46:08.032572 +AZURE,qatarcentral,Standard_D48ds_v5,reserved_3y,NA,1.264041,USD,Azure Retail Prices API,2025-12-18T04:46:08.032577 +AZURE,qatarcentral,Standard_D48ds_v5,spot,NA,0.614645,USD,Azure Retail Prices API,2025-12-18T04:46:06.973569 +AZURE,qatarcentral,Standard_D48ds_v6,on_demand,NA,3.666,USD,Azure Retail Prices API,2025-12-18T04:46:06.975004 +AZURE,qatarcentral,Standard_D48ds_v6,reserved_1y,NA,2.272717,USD,Azure Retail Prices API,2025-12-18T04:46:08.033495 +AZURE,qatarcentral,Standard_D48ds_v6,reserved_3y,NA,1.429642,USD,Azure Retail Prices API,2025-12-18T04:46:08.033500 +AZURE,qatarcentral,Standard_D48ds_v6,spot,NA,0.677477,USD,Azure Retail Prices API,2025-12-18T04:46:06.974992 +AZURE,qatarcentral,Standard_D48s_v4,on_demand,NA,2.825,USD,Azure Retail Prices API,2025-12-18T04:46:06.974006 +AZURE,qatarcentral,Standard_D48s_v4,reserved_1y,NA,1.660959,USD,Azure Retail Prices API,2025-12-18T04:46:08.032519 +AZURE,qatarcentral,Standard_D48s_v4,reserved_3y,NA,1.062139,USD,Azure Retail Prices API,2025-12-18T04:46:08.032525 +AZURE,qatarcentral,Standard_D48s_v4,spot,NA,0.52206,USD,Azure Retail Prices API,2025-12-18T04:46:06.974701 +AZURE,qatarcentral,Standard_D48s_v5,on_demand,NA,2.825,USD,Azure Retail Prices API,2025-12-18T04:46:06.973819 +AZURE,qatarcentral,Standard_D48s_v5,reserved_1y,NA,1.61016,USD,Azure Retail Prices API,2025-12-18T04:46:08.032407 +AZURE,qatarcentral,Standard_D48s_v5,reserved_3y,NA,1.045167,USD,Azure Retail Prices API,2025-12-18T04:46:08.032412 +AZURE,qatarcentral,Standard_D48s_v5,spot,NA,0.52206,USD,Azure Retail Prices API,2025-12-18T04:46:06.973615 +AZURE,qatarcentral,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486321 +AZURE,qatarcentral,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486329 +AZURE,qatarcentral,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486333 +AZURE,qatarcentral,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486325 +AZURE,qatarcentral,Standard_D4a_v4,on_demand,NA,0.235,USD,Azure Retail Prices API,2025-12-18T04:46:06.973987 +AZURE,qatarcentral,Standard_D4a_v4,reserved_1y,NA,0.138927,USD,Azure Retail Prices API,2025-12-18T04:46:08.032509 +AZURE,qatarcentral,Standard_D4a_v4,reserved_3y,NA,0.08946,USD,Azure Retail Prices API,2025-12-18T04:46:08.032514 +AZURE,qatarcentral,Standard_D4a_v4,spot,NA,0.043428,USD,Azure Retail Prices API,2025-12-18T04:46:06.973895 +AZURE,qatarcentral,Standard_D4ads_v5,on_demand,NA,0.254,USD,Azure Retail Prices API,2025-12-18T04:46:06.974195 +AZURE,qatarcentral,Standard_D4ads_v5,reserved_1y,NA,0.149772,USD,Azure Retail Prices API,2025-12-18T04:46:08.032667 +AZURE,qatarcentral,Standard_D4ads_v5,reserved_3y,NA,0.096461,USD,Azure Retail Prices API,2025-12-18T04:46:08.032672 +AZURE,qatarcentral,Standard_D4ads_v5,spot,NA,0.046939,USD,Azure Retail Prices API,2025-12-18T04:46:06.975566 +AZURE,qatarcentral,Standard_D4ads_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:46:06.975368 +AZURE,qatarcentral,Standard_D4ads_v6,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:46:08.033636 +AZURE,qatarcentral,Standard_D4ads_v6,reserved_3y,NA,0.106849,USD,Azure Retail Prices API,2025-12-18T04:46:08.033640 +AZURE,qatarcentral,Standard_D4ads_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:46:06.974623 +AZURE,qatarcentral,Standard_D4as_v5,on_demand,NA,0.212,USD,Azure Retail Prices API,2025-12-18T04:46:06.974628 +AZURE,qatarcentral,Standard_D4as_v5,reserved_1y,NA,0.125114,USD,Azure Retail Prices API,2025-12-18T04:46:08.033199 +AZURE,qatarcentral,Standard_D4as_v5,reserved_3y,NA,0.080556,USD,Azure Retail Prices API,2025-12-18T04:46:08.033204 +AZURE,qatarcentral,Standard_D4as_v5,spot,NA,0.039178,USD,Azure Retail Prices API,2025-12-18T04:46:06.975514 +AZURE,qatarcentral,Standard_D4d_v4,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:46:06.974735 +AZURE,qatarcentral,Standard_D4d_v4,reserved_1y,NA,0.163584,USD,Azure Retail Prices API,2025-12-18T04:46:08.033337 +AZURE,qatarcentral,Standard_D4d_v4,reserved_3y,NA,0.105327,USD,Azure Retail Prices API,2025-12-18T04:46:08.033342 +AZURE,qatarcentral,Standard_D4d_v4,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:46:06.974283 +AZURE,qatarcentral,Standard_D4ds_v4,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:46:06.975639 +AZURE,qatarcentral,Standard_D4ds_v4,reserved_1y,NA,0.163014,USD,Azure Retail Prices API,2025-12-18T04:46:08.033961 +AZURE,qatarcentral,Standard_D4ds_v4,reserved_3y,NA,0.104224,USD,Azure Retail Prices API,2025-12-18T04:46:08.033967 +AZURE,qatarcentral,Standard_D4ds_v4,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:46:06.975985 +AZURE,qatarcentral,Standard_D4ds_v5,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:46:06.973641 +AZURE,qatarcentral,Standard_D4ds_v5,reserved_1y,NA,0.163584,USD,Azure Retail Prices API,2025-12-18T04:46:08.032286 +AZURE,qatarcentral,Standard_D4ds_v5,reserved_3y,NA,0.105327,USD,Azure Retail Prices API,2025-12-18T04:46:08.032291 +AZURE,qatarcentral,Standard_D4ds_v5,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:46:06.974389 +AZURE,qatarcentral,Standard_D4ds_v6,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:46:06.975667 +AZURE,qatarcentral,Standard_D4ds_v6,reserved_1y,NA,0.189384,USD,Azure Retail Prices API,2025-12-18T04:46:08.033983 +AZURE,qatarcentral,Standard_D4ds_v6,reserved_3y,NA,0.11914,USD,Azure Retail Prices API,2025-12-18T04:46:08.033988 +AZURE,qatarcentral,Standard_D4ds_v6,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:46:06.974299 +AZURE,qatarcentral,Standard_D4s_v3,on_demand,NA,0.235,USD,Azure Retail Prices API,2025-12-18T04:46:06.973625 +AZURE,qatarcentral,Standard_D4s_v3,reserved_1y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:08.032257 +AZURE,qatarcentral,Standard_D4s_v3,reserved_3y,NA,0.088508,USD,Azure Retail Prices API,2025-12-18T04:46:08.032270 +AZURE,qatarcentral,Standard_D4s_v3,spot,NA,0.043428,USD,Azure Retail Prices API,2025-12-18T04:46:06.976009 +AZURE,qatarcentral,Standard_D4s_v4,on_demand,NA,0.235,USD,Azure Retail Prices API,2025-12-18T04:46:06.974472 +AZURE,qatarcentral,Standard_D4s_v4,reserved_1y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:08.033014 +AZURE,qatarcentral,Standard_D4s_v4,reserved_3y,NA,0.088508,USD,Azure Retail Prices API,2025-12-18T04:46:08.033019 +AZURE,qatarcentral,Standard_D4s_v4,spot,NA,0.043428,USD,Azure Retail Prices API,2025-12-18T04:46:06.974277 +AZURE,qatarcentral,Standard_D4s_v5,on_demand,NA,0.235,USD,Azure Retail Prices API,2025-12-18T04:46:06.976367 +AZURE,qatarcentral,Standard_D4s_v5,reserved_1y,NA,0.134132,USD,Azure Retail Prices API,2025-12-18T04:46:08.034669 +AZURE,qatarcentral,Standard_D4s_v5,reserved_3y,NA,0.0871,USD,Azure Retail Prices API,2025-12-18T04:46:08.034675 +AZURE,qatarcentral,Standard_D4s_v5,spot,NA,0.043428,USD,Azure Retail Prices API,2025-12-18T04:46:06.975459 +AZURE,qatarcentral,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487588 +AZURE,qatarcentral,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487603 +AZURE,qatarcentral,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487611 +AZURE,qatarcentral,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487596 +AZURE,qatarcentral,Standard_D64_v3,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:06.973814 +AZURE,qatarcentral,Standard_D64_v3,reserved_1y,NA,2.214612,USD,Azure Retail Prices API,2025-12-18T04:46:08.032397 +AZURE,qatarcentral,Standard_D64_v3,reserved_3y,NA,1.416172,USD,Azure Retail Prices API,2025-12-18T04:46:08.032402 +AZURE,qatarcentral,Standard_D64_v3,spot,NA,0.695957,USD,Azure Retail Prices API,2025-12-18T04:46:06.976356 +AZURE,qatarcentral,Standard_D64a_v4,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:06.974834 +AZURE,qatarcentral,Standard_D64a_v4,reserved_1y,NA,2.222146,USD,Azure Retail Prices API,2025-12-18T04:46:08.033411 +AZURE,qatarcentral,Standard_D64a_v4,reserved_3y,NA,1.43124,USD,Azure Retail Prices API,2025-12-18T04:46:08.033416 +AZURE,qatarcentral,Standard_D64a_v4,spot,NA,0.695957,USD,Azure Retail Prices API,2025-12-18T04:46:06.974666 +AZURE,qatarcentral,Standard_D64ads_v5,on_demand,NA,4.061,USD,Azure Retail Prices API,2025-12-18T04:46:06.974766 +AZURE,qatarcentral,Standard_D64ads_v5,reserved_1y,NA,2.39589,USD,Azure Retail Prices API,2025-12-18T04:46:08.033389 +AZURE,qatarcentral,Standard_D64ads_v5,reserved_3y,NA,1.543113,USD,Azure Retail Prices API,2025-12-18T04:46:08.033395 +AZURE,qatarcentral,Standard_D64ads_v5,spot,NA,0.750473,USD,Azure Retail Prices API,2025-12-18T04:46:06.974050 +AZURE,qatarcentral,Standard_D64ads_v6,on_demand,NA,4.499,USD,Azure Retail Prices API,2025-12-18T04:46:06.974436 +AZURE,qatarcentral,Standard_D64ads_v6,reserved_1y,NA,2.654566,USD,Azure Retail Prices API,2025-12-18T04:46:08.032939 +AZURE,qatarcentral,Standard_D64ads_v6,reserved_3y,NA,1.709703,USD,Azure Retail Prices API,2025-12-18T04:46:08.032944 +AZURE,qatarcentral,Standard_D64ads_v6,spot,NA,0.831415,USD,Azure Retail Prices API,2025-12-18T04:46:06.975967 +AZURE,qatarcentral,Standard_D64as_v4,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:06.976336 +AZURE,qatarcentral,Standard_D64as_v4,reserved_1y,NA,2.222146,USD,Azure Retail Prices API,2025-12-18T04:46:08.034636 +AZURE,qatarcentral,Standard_D64as_v4,reserved_3y,NA,1.43124,USD,Azure Retail Prices API,2025-12-18T04:46:08.034641 +AZURE,qatarcentral,Standard_D64as_v4,spot,NA,0.695957,USD,Azure Retail Prices API,2025-12-18T04:46:06.974510 +AZURE,qatarcentral,Standard_D64as_v5,on_demand,NA,3.392,USD,Azure Retail Prices API,2025-12-18T04:46:06.974130 +AZURE,qatarcentral,Standard_D64as_v5,reserved_1y,NA,2.001256,USD,Azure Retail Prices API,2025-12-18T04:46:08.032603 +AZURE,qatarcentral,Standard_D64as_v5,reserved_3y,NA,1.288965,USD,Azure Retail Prices API,2025-12-18T04:46:08.032608 +AZURE,qatarcentral,Standard_D64as_v5,spot,NA,0.626842,USD,Azure Retail Prices API,2025-12-18T04:46:06.976181 +AZURE,qatarcentral,Standard_D64d_v4,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:46:06.974142 +AZURE,qatarcentral,Standard_D64d_v4,reserved_1y,NA,2.616781,USD,Azure Retail Prices API,2025-12-18T04:46:08.032614 +AZURE,qatarcentral,Standard_D64d_v4,reserved_3y,NA,1.685388,USD,Azure Retail Prices API,2025-12-18T04:46:08.032619 +AZURE,qatarcentral,Standard_D64d_v4,spot,NA,0.819588,USD,Azure Retail Prices API,2025-12-18T04:46:06.974505 +AZURE,qatarcentral,Standard_D64ds_v4,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:46:06.975274 +AZURE,qatarcentral,Standard_D64ds_v4,reserved_1y,NA,2.607877,USD,Azure Retail Prices API,2025-12-18T04:46:08.033532 +AZURE,qatarcentral,Standard_D64ds_v4,reserved_3y,NA,1.667618,USD,Azure Retail Prices API,2025-12-18T04:46:08.033536 +AZURE,qatarcentral,Standard_D64ds_v4,spot,NA,0.819588,USD,Azure Retail Prices API,2025-12-18T04:46:06.975257 +AZURE,qatarcentral,Standard_D64ds_v5,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:46:06.974477 +AZURE,qatarcentral,Standard_D64ds_v5,reserved_1y,NA,2.616781,USD,Azure Retail Prices API,2025-12-18T04:46:08.033025 +AZURE,qatarcentral,Standard_D64ds_v5,reserved_3y,NA,1.685388,USD,Azure Retail Prices API,2025-12-18T04:46:08.033030 +AZURE,qatarcentral,Standard_D64ds_v5,spot,NA,0.819588,USD,Azure Retail Prices API,2025-12-18T04:46:06.975628 +AZURE,qatarcentral,Standard_D64ds_v6,on_demand,NA,4.888,USD,Azure Retail Prices API,2025-12-18T04:46:06.975925 +AZURE,qatarcentral,Standard_D64ds_v6,reserved_1y,NA,3.030365,USD,Azure Retail Prices API,2025-12-18T04:46:08.034208 +AZURE,qatarcentral,Standard_D64ds_v6,reserved_3y,NA,1.906202,USD,Azure Retail Prices API,2025-12-18T04:46:08.034213 +AZURE,qatarcentral,Standard_D64ds_v6,spot,NA,0.903302,USD,Azure Retail Prices API,2025-12-18T04:46:06.975425 +AZURE,qatarcentral,Standard_D64s_v3,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:06.974514 +AZURE,qatarcentral,Standard_D64s_v3,reserved_1y,NA,2.214612,USD,Azure Retail Prices API,2025-12-18T04:46:08.033058 +AZURE,qatarcentral,Standard_D64s_v3,reserved_3y,NA,1.416172,USD,Azure Retail Prices API,2025-12-18T04:46:08.033063 +AZURE,qatarcentral,Standard_D64s_v3,spot,NA,0.695957,USD,Azure Retail Prices API,2025-12-18T04:46:06.974987 +AZURE,qatarcentral,Standard_D64s_v4,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:06.976192 +AZURE,qatarcentral,Standard_D64s_v4,reserved_1y,NA,2.214612,USD,Azure Retail Prices API,2025-12-18T04:46:08.034486 +AZURE,qatarcentral,Standard_D64s_v4,reserved_3y,NA,1.416172,USD,Azure Retail Prices API,2025-12-18T04:46:08.034492 +AZURE,qatarcentral,Standard_D64s_v4,spot,NA,0.695957,USD,Azure Retail Prices API,2025-12-18T04:46:06.973620 +AZURE,qatarcentral,Standard_D64s_v5,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:06.976176 +AZURE,qatarcentral,Standard_D64s_v5,reserved_1y,NA,2.146804,USD,Azure Retail Prices API,2025-12-18T04:46:08.034476 +AZURE,qatarcentral,Standard_D64s_v5,reserved_3y,NA,1.393569,USD,Azure Retail Prices API,2025-12-18T04:46:08.034481 +AZURE,qatarcentral,Standard_D64s_v5,spot,NA,0.695957,USD,Azure Retail Prices API,2025-12-18T04:46:06.974610 +AZURE,qatarcentral,Standard_D8_v3,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:06.973804 +AZURE,qatarcentral,Standard_D8_v3,reserved_1y,NA,0.276826,USD,Azure Retail Prices API,2025-12-18T04:46:08.032374 +AZURE,qatarcentral,Standard_D8_v3,reserved_3y,NA,0.177017,USD,Azure Retail Prices API,2025-12-18T04:46:08.032380 +AZURE,qatarcentral,Standard_D8_v3,spot,NA,0.087041,USD,Azure Retail Prices API,2025-12-18T04:46:06.974747 +AZURE,qatarcentral,Standard_D8a_v4,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:06.974367 +AZURE,qatarcentral,Standard_D8a_v4,reserved_1y,NA,0.27774,USD,Azure Retail Prices API,2025-12-18T04:46:08.032854 +AZURE,qatarcentral,Standard_D8a_v4,reserved_3y,NA,0.178919,USD,Azure Retail Prices API,2025-12-18T04:46:08.032859 +AZURE,qatarcentral,Standard_D8a_v4,spot,NA,0.087041,USD,Azure Retail Prices API,2025-12-18T04:46:06.973799 +AZURE,qatarcentral,Standard_D8ads_v5,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:06.974605 +AZURE,qatarcentral,Standard_D8ads_v5,reserved_1y,NA,0.299429,USD,Azure Retail Prices API,2025-12-18T04:46:08.033169 +AZURE,qatarcentral,Standard_D8ads_v5,reserved_3y,NA,0.192884,USD,Azure Retail Prices API,2025-12-18T04:46:08.033174 +AZURE,qatarcentral,Standard_D8ads_v5,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:06.974971 +AZURE,qatarcentral,Standard_D8ads_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:46:06.974942 +AZURE,qatarcentral,Standard_D8ads_v6,reserved_1y,NA,0.331849,USD,Azure Retail Prices API,2025-12-18T04:46:08.033474 +AZURE,qatarcentral,Standard_D8ads_v6,reserved_3y,NA,0.213699,USD,Azure Retail Prices API,2025-12-18T04:46:08.033479 +AZURE,qatarcentral,Standard_D8ads_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:46:06.975542 +AZURE,qatarcentral,Standard_D8as_v4,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:06.976133 +AZURE,qatarcentral,Standard_D8as_v4,reserved_1y,NA,0.27774,USD,Azure Retail Prices API,2025-12-18T04:46:08.034422 +AZURE,qatarcentral,Standard_D8as_v4,reserved_3y,NA,0.178919,USD,Azure Retail Prices API,2025-12-18T04:46:08.034427 +AZURE,qatarcentral,Standard_D8as_v4,spot,NA,0.087041,USD,Azure Retail Prices API,2025-12-18T04:46:06.973868 +AZURE,qatarcentral,Standard_D8as_v5,on_demand,NA,0.792,USD,Azure Retail Prices API,2025-12-18T04:46:06.974450 +AZURE,qatarcentral,Standard_D8as_v5,reserved_1y,NA,0.250114,USD,Azure Retail Prices API,2025-12-18T04:46:08.034132 +AZURE,qatarcentral,Standard_D8as_v5,reserved_3y,NA,0.161111,USD,Azure Retail Prices API,2025-12-18T04:46:08.034137 +AZURE,qatarcentral,Standard_D8as_v5,spot,NA,0.078355,USD,Azure Retail Prices API,2025-12-18T04:46:06.974028 +AZURE,qatarcentral,Standard_D8d_v4,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:46:06.976109 +AZURE,qatarcentral,Standard_D8d_v4,reserved_1y,NA,0.327055,USD,Azure Retail Prices API,2025-12-18T04:46:08.034412 +AZURE,qatarcentral,Standard_D8d_v4,reserved_3y,NA,0.210654,USD,Azure Retail Prices API,2025-12-18T04:46:08.034417 +AZURE,qatarcentral,Standard_D8d_v4,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:46:06.973944 +AZURE,qatarcentral,Standard_D8ds_v4,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:46:06.975503 +AZURE,qatarcentral,Standard_D8ds_v4,reserved_1y,NA,0.326027,USD,Azure Retail Prices API,2025-12-18T04:46:08.033846 +AZURE,qatarcentral,Standard_D8ds_v4,reserved_3y,NA,0.208447,USD,Azure Retail Prices API,2025-12-18T04:46:08.033850 +AZURE,qatarcentral,Standard_D8ds_v4,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:46:06.975740 +AZURE,qatarcentral,Standard_D8ds_v5,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:46:06.975335 +AZURE,qatarcentral,Standard_D8ds_v5,reserved_1y,NA,0.327055,USD,Azure Retail Prices API,2025-12-18T04:46:08.033610 +AZURE,qatarcentral,Standard_D8ds_v5,reserved_3y,NA,0.210654,USD,Azure Retail Prices API,2025-12-18T04:46:08.033615 +AZURE,qatarcentral,Standard_D8ds_v5,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:46:06.976239 +AZURE,qatarcentral,Standard_D8ds_v6,on_demand,NA,0.611,USD,Azure Retail Prices API,2025-12-18T04:46:06.975606 +AZURE,qatarcentral,Standard_D8ds_v6,reserved_1y,NA,0.378767,USD,Azure Retail Prices API,2025-12-18T04:46:08.033935 +AZURE,qatarcentral,Standard_D8ds_v6,reserved_3y,NA,0.23828,USD,Azure Retail Prices API,2025-12-18T04:46:08.033940 +AZURE,qatarcentral,Standard_D8ds_v6,spot,NA,0.112913,USD,Azure Retail Prices API,2025-12-18T04:46:06.975346 +AZURE,qatarcentral,Standard_D8s_v3,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:06.975384 +AZURE,qatarcentral,Standard_D8s_v3,reserved_1y,NA,0.276826,USD,Azure Retail Prices API,2025-12-18T04:46:08.033661 +AZURE,qatarcentral,Standard_D8s_v3,reserved_3y,NA,0.177017,USD,Azure Retail Prices API,2025-12-18T04:46:08.033665 +AZURE,qatarcentral,Standard_D8s_v3,spot,NA,0.087041,USD,Azure Retail Prices API,2025-12-18T04:46:06.973595 +AZURE,qatarcentral,Standard_D8s_v4,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:06.975979 +AZURE,qatarcentral,Standard_D8s_v4,reserved_1y,NA,0.276826,USD,Azure Retail Prices API,2025-12-18T04:46:08.034293 +AZURE,qatarcentral,Standard_D8s_v4,reserved_3y,NA,0.177017,USD,Azure Retail Prices API,2025-12-18T04:46:08.034299 +AZURE,qatarcentral,Standard_D8s_v4,spot,NA,0.087041,USD,Azure Retail Prices API,2025-12-18T04:46:06.974249 +AZURE,qatarcentral,Standard_D8s_v5,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:06.975701 +AZURE,qatarcentral,Standard_D8s_v5,reserved_1y,NA,0.268379,USD,Azure Retail Prices API,2025-12-18T04:46:08.034014 +AZURE,qatarcentral,Standard_D8s_v5,reserved_3y,NA,0.174201,USD,Azure Retail Prices API,2025-12-18T04:46:08.034021 +AZURE,qatarcentral,Standard_D8s_v5,spot,NA,0.087041,USD,Azure Retail Prices API,2025-12-18T04:46:06.975808 +AZURE,qatarcentral,Standard_D96a_v4,on_demand,NA,5.65,USD,Azure Retail Prices API,2025-12-18T04:46:06.973918 +AZURE,qatarcentral,Standard_D96a_v4,reserved_1y,NA,3.333219,USD,Azure Retail Prices API,2025-12-18T04:46:08.032458 +AZURE,qatarcentral,Standard_D96a_v4,reserved_3y,NA,2.146842,USD,Azure Retail Prices API,2025-12-18T04:46:08.032462 +AZURE,qatarcentral,Standard_D96a_v4,spot,NA,1.04412,USD,Azure Retail Prices API,2025-12-18T04:46:06.974255 +AZURE,qatarcentral,Standard_D96ads_v5,on_demand,NA,10.507,USD,Azure Retail Prices API,2025-12-18T04:46:06.973923 +AZURE,qatarcentral,Standard_D96ads_v5,reserved_1y,NA,3.593836,USD,Azure Retail Prices API,2025-12-18T04:46:08.033100 +AZURE,qatarcentral,Standard_D96ads_v5,reserved_3y,NA,2.31465,USD,Azure Retail Prices API,2025-12-18T04:46:08.033105 +AZURE,qatarcentral,Standard_D96ads_v5,spot,NA,1.125617,USD,Azure Retail Prices API,2025-12-18T04:46:06.973660 +AZURE,qatarcentral,Standard_D96ads_v6,on_demand,NA,6.749,USD,Azure Retail Prices API,2025-12-18T04:46:06.974591 +AZURE,qatarcentral,Standard_D96ads_v6,reserved_1y,NA,3.981735,USD,Azure Retail Prices API,2025-12-18T04:46:08.033159 +AZURE,qatarcentral,Standard_D96ads_v6,reserved_3y,NA,2.564536,USD,Azure Retail Prices API,2025-12-18T04:46:08.033164 +AZURE,qatarcentral,Standard_D96ads_v6,spot,NA,1.247215,USD,Azure Retail Prices API,2025-12-18T04:46:06.973552 +AZURE,qatarcentral,Standard_D96as_v4,on_demand,NA,5.65,USD,Azure Retail Prices API,2025-12-18T04:46:06.975757 +AZURE,qatarcentral,Standard_D96as_v4,reserved_1y,NA,3.333219,USD,Azure Retail Prices API,2025-12-18T04:46:08.034076 +AZURE,qatarcentral,Standard_D96as_v4,reserved_3y,NA,2.146842,USD,Azure Retail Prices API,2025-12-18T04:46:08.034082 +AZURE,qatarcentral,Standard_D96as_v4,spot,NA,1.04412,USD,Azure Retail Prices API,2025-12-18T04:46:06.975612 +AZURE,qatarcentral,Standard_D96as_v5,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:06.974071 +AZURE,qatarcentral,Standard_D96as_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:08.032551 +AZURE,qatarcentral,Standard_D96as_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:08.032556 +AZURE,qatarcentral,Standard_D96as_v5,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:06.975673 +AZURE,qatarcentral,Standard_D96ds_v5,on_demand,NA,6.653,USD,Azure Retail Prices API,2025-12-18T04:46:06.975571 +AZURE,qatarcentral,Standard_D96ds_v5,reserved_1y,NA,3.925114,USD,Azure Retail Prices API,2025-12-18T04:46:08.033903 +AZURE,qatarcentral,Standard_D96ds_v5,reserved_3y,NA,2.528082,USD,Azure Retail Prices API,2025-12-18T04:46:08.033909 +AZURE,qatarcentral,Standard_D96ds_v5,spot,NA,1.229474,USD,Azure Retail Prices API,2025-12-18T04:46:06.974857 +AZURE,qatarcentral,Standard_D96ds_v6,on_demand,NA,7.332,USD,Azure Retail Prices API,2025-12-18T04:46:06.975657 +AZURE,qatarcentral,Standard_D96ds_v6,reserved_1y,NA,4.545548,USD,Azure Retail Prices API,2025-12-18T04:46:08.033972 +AZURE,qatarcentral,Standard_D96ds_v6,reserved_3y,NA,2.859285,USD,Azure Retail Prices API,2025-12-18T04:46:08.033977 +AZURE,qatarcentral,Standard_D96ds_v6,spot,NA,1.354954,USD,Azure Retail Prices API,2025-12-18T04:46:06.974200 +AZURE,qatarcentral,Standard_D96s_v5,on_demand,NA,5.65,USD,Azure Retail Prices API,2025-12-18T04:46:06.975413 +AZURE,qatarcentral,Standard_D96s_v5,reserved_1y,NA,3.22032,USD,Azure Retail Prices API,2025-12-18T04:46:08.033687 +AZURE,qatarcentral,Standard_D96s_v5,reserved_3y,NA,2.090335,USD,Azure Retail Prices API,2025-12-18T04:46:08.033692 +AZURE,qatarcentral,Standard_D96s_v5,spot,NA,1.04412,USD,Azure Retail Prices API,2025-12-18T04:46:06.974529 +AZURE,qatarcentral,Standard_DC16ads_v6,on_demand,NA,1.125,USD,Azure Retail Prices API,2025-12-18T04:46:06.975250 +AZURE,qatarcentral,Standard_DC16ads_v6,reserved_1y,NA,0.663584,USD,Azure Retail Prices API,2025-12-18T04:46:08.033523 +AZURE,qatarcentral,Standard_DC16ads_v6,reserved_3y,NA,0.427435,USD,Azure Retail Prices API,2025-12-18T04:46:08.033527 +AZURE,qatarcentral,Standard_DC16ads_v6,spot,NA,0.2079,USD,Azure Retail Prices API,2025-12-18T04:46:06.974845 +AZURE,qatarcentral,Standard_DC2ads_v6,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:46:06.973600 +AZURE,qatarcentral,Standard_DC2ads_v6,reserved_1y,NA,0.082991,USD,Azure Retail Prices API,2025-12-18T04:46:08.032235 +AZURE,qatarcentral,Standard_DC2ads_v6,reserved_3y,NA,0.053425,USD,Azure Retail Prices API,2025-12-18T04:46:08.032241 +AZURE,qatarcentral,Standard_DC2ads_v6,spot,NA,0.026057,USD,Azure Retail Prices API,2025-12-18T04:46:06.974125 +AZURE,qatarcentral,Standard_DC32ads_v6,on_demand,NA,2.25,USD,Azure Retail Prices API,2025-12-18T04:46:06.974373 +AZURE,qatarcentral,Standard_DC32ads_v6,reserved_1y,NA,1.327283,USD,Azure Retail Prices API,2025-12-18T04:46:08.032864 +AZURE,qatarcentral,Standard_DC32ads_v6,reserved_3y,NA,0.854833,USD,Azure Retail Prices API,2025-12-18T04:46:08.032869 +AZURE,qatarcentral,Standard_DC32ads_v6,spot,NA,0.4158,USD,Azure Retail Prices API,2025-12-18T04:46:06.973847 +AZURE,qatarcentral,Standard_DC48ads_v6,on_demand,NA,3.374,USD,Azure Retail Prices API,2025-12-18T04:46:06.975713 +AZURE,qatarcentral,Standard_DC48ads_v6,reserved_1y,NA,1.990868,USD,Azure Retail Prices API,2025-12-18T04:46:08.034027 +AZURE,qatarcentral,Standard_DC48ads_v6,reserved_3y,NA,1.282268,USD,Azure Retail Prices API,2025-12-18T04:46:08.034032 +AZURE,qatarcentral,Standard_DC48ads_v6,spot,NA,0.623515,USD,Azure Retail Prices API,2025-12-18T04:46:06.975396 +AZURE,qatarcentral,Standard_DC4ads_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:46:06.976104 +AZURE,qatarcentral,Standard_DC4ads_v6,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:46:08.034402 +AZURE,qatarcentral,Standard_DC4ads_v6,reserved_3y,NA,0.106849,USD,Azure Retail Prices API,2025-12-18T04:46:08.034407 +AZURE,qatarcentral,Standard_DC4ads_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:46:06.976249 +AZURE,qatarcentral,Standard_DC64ads_v6,on_demand,NA,4.499,USD,Azure Retail Prices API,2025-12-18T04:46:06.976098 +AZURE,qatarcentral,Standard_DC64ads_v6,reserved_1y,NA,2.654566,USD,Azure Retail Prices API,2025-12-18T04:46:08.034391 +AZURE,qatarcentral,Standard_DC64ads_v6,reserved_3y,NA,1.709703,USD,Azure Retail Prices API,2025-12-18T04:46:08.034396 +AZURE,qatarcentral,Standard_DC64ads_v6,spot,NA,0.831415,USD,Azure Retail Prices API,2025-12-18T04:46:06.975351 +AZURE,qatarcentral,Standard_DC8ads_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:46:06.974335 +AZURE,qatarcentral,Standard_DC8ads_v6,reserved_1y,NA,0.331849,USD,Azure Retail Prices API,2025-12-18T04:46:08.032801 +AZURE,qatarcentral,Standard_DC8ads_v6,reserved_3y,NA,0.213699,USD,Azure Retail Prices API,2025-12-18T04:46:08.032806 +AZURE,qatarcentral,Standard_DC8ads_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:46:06.974496 +AZURE,qatarcentral,Standard_DC96ads_v6,on_demand,NA,6.749,USD,Azure Retail Prices API,2025-12-18T04:46:06.975357 +AZURE,qatarcentral,Standard_DC96ads_v6,reserved_1y,NA,3.981735,USD,Azure Retail Prices API,2025-12-18T04:46:08.033628 +AZURE,qatarcentral,Standard_DC96ads_v6,reserved_3y,NA,2.564536,USD,Azure Retail Prices API,2025-12-18T04:46:08.033632 +AZURE,qatarcentral,Standard_DC96ads_v6,spot,NA,1.247215,USD,Azure Retail Prices API,2025-12-18T04:46:06.973977 +AZURE,qatarcentral,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495448 +AZURE,qatarcentral,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495456 +AZURE,qatarcentral,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495460 +AZURE,qatarcentral,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495452 +AZURE,qatarcentral,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496333 +AZURE,qatarcentral,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496341 +AZURE,qatarcentral,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496348 +AZURE,qatarcentral,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496337 +AZURE,qatarcentral,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497081 +AZURE,qatarcentral,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497092 +AZURE,qatarcentral,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497098 +AZURE,qatarcentral,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497087 +AZURE,qatarcentral,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497966 +AZURE,qatarcentral,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497974 +AZURE,qatarcentral,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497978 +AZURE,qatarcentral,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497970 +AZURE,qatarcentral,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491784 +AZURE,qatarcentral,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491792 +AZURE,qatarcentral,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491813 +AZURE,qatarcentral,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491788 +AZURE,qatarcentral,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492532 +AZURE,qatarcentral,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492541 +AZURE,qatarcentral,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492545 +AZURE,qatarcentral,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492536 +AZURE,qatarcentral,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493255 +AZURE,qatarcentral,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493272 +AZURE,qatarcentral,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493278 +AZURE,qatarcentral,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493263 +AZURE,qatarcentral,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493967 +AZURE,qatarcentral,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493975 +AZURE,qatarcentral,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493979 +AZURE,qatarcentral,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493971 +AZURE,qatarcentral,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494681 +AZURE,qatarcentral,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494689 +AZURE,qatarcentral,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494693 +AZURE,qatarcentral,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494685 +AZURE,qatarcentral,Standard_E128ds_v6,on_demand,NA,12.293,USD,Azure Retail Prices API,2025-12-18T04:46:06.974585 +AZURE,qatarcentral,Standard_E128ds_v6,reserved_1y,NA,7.621689,USD,Azure Retail Prices API,2025-12-18T04:46:08.033148 +AZURE,qatarcentral,Standard_E128ds_v6,reserved_3y,NA,4.79433,USD,Azure Retail Prices API,2025-12-18T04:46:08.033153 +AZURE,qatarcentral,Standard_E128ds_v6,spot,NA,2.271746,USD,Azure Retail Prices API,2025-12-18T04:46:06.974022 +AZURE,qatarcentral,Standard_E16_v3,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:06.975492 +AZURE,qatarcentral,Standard_E16_v3,reserved_1y,NA,0.729566,USD,Azure Retail Prices API,2025-12-18T04:46:08.033836 +AZURE,qatarcentral,Standard_E16_v3,reserved_3y,NA,0.466553,USD,Azure Retail Prices API,2025-12-18T04:46:08.033841 +AZURE,qatarcentral,Standard_E16_v3,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:06.974937 +AZURE,qatarcentral,Standard_E16a_v4,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:06.976259 +AZURE,qatarcentral,Standard_E16a_v4,reserved_1y,NA,0.732078,USD,Azure Retail Prices API,2025-12-18T04:46:08.034561 +AZURE,qatarcentral,Standard_E16a_v4,reserved_3y,NA,0.471499,USD,Azure Retail Prices API,2025-12-18T04:46:08.034566 +AZURE,qatarcentral,Standard_E16a_v4,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:06.973874 +AZURE,qatarcentral,Standard_E16ads_v5,on_demand,NA,1.287,USD,Azure Retail Prices API,2025-12-18T04:46:06.973809 +AZURE,qatarcentral,Standard_E16ads_v5,reserved_1y,NA,0.759475,USD,Azure Retail Prices API,2025-12-18T04:46:08.032385 +AZURE,qatarcentral,Standard_E16ads_v5,reserved_3y,NA,0.489117,USD,Azure Retail Prices API,2025-12-18T04:46:08.032391 +AZURE,qatarcentral,Standard_E16ads_v5,spot,NA,0.237838,USD,Azure Retail Prices API,2025-12-18T04:46:06.974648 +AZURE,qatarcentral,Standard_E16ads_v6,on_demand,NA,1.43,USD,Azure Retail Prices API,2025-12-18T04:46:06.975797 +AZURE,qatarcentral,Standard_E16ads_v6,reserved_1y,NA,0.84395,USD,Azure Retail Prices API,2025-12-18T04:46:08.034110 +AZURE,qatarcentral,Standard_E16ads_v6,reserved_3y,NA,0.543569,USD,Azure Retail Prices API,2025-12-18T04:46:08.034115 +AZURE,qatarcentral,Standard_E16ads_v6,spot,NA,0.264264,USD,Azure Retail Prices API,2025-12-18T04:46:06.974260 +AZURE,qatarcentral,Standard_E16as_v4,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:06.975803 +AZURE,qatarcentral,Standard_E16as_v4,reserved_1y,NA,0.732078,USD,Azure Retail Prices API,2025-12-18T04:46:08.034121 +AZURE,qatarcentral,Standard_E16as_v4,reserved_3y,NA,0.471499,USD,Azure Retail Prices API,2025-12-18T04:46:08.034126 +AZURE,qatarcentral,Standard_E16as_v4,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:06.974652 +AZURE,qatarcentral,Standard_E16as_v5,on_demand,NA,1.856,USD,Azure Retail Prices API,2025-12-18T04:46:06.973605 +AZURE,qatarcentral,Standard_E16as_v5,reserved_1y,NA,0.660845,USD,Azure Retail Prices API,2025-12-18T04:46:08.033593 +AZURE,qatarcentral,Standard_E16as_v5,reserved_3y,NA,0.425609,USD,Azure Retail Prices API,2025-12-18T04:46:08.033597 +AZURE,qatarcentral,Standard_E16as_v5,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:46:06.974548 +AZURE,qatarcentral,Standard_E16d_v4,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:46:06.976300 +AZURE,qatarcentral,Standard_E16d_v4,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:46:08.034596 +AZURE,qatarcentral,Standard_E16d_v4,reserved_3y,NA,0.529414,USD,Azure Retail Prices API,2025-12-18T04:46:08.034601 +AZURE,qatarcentral,Standard_E16d_v4,spot,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:06.974174 +AZURE,qatarcentral,Standard_E16ds_v4,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:46:06.973906 +AZURE,qatarcentral,Standard_E16ds_v4,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:46:08.032449 +AZURE,qatarcentral,Standard_E16ds_v4,reserved_3y,NA,0.529414,USD,Azure Retail Prices API,2025-12-18T04:46:08.032453 +AZURE,qatarcentral,Standard_E16ds_v4,spot,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:06.975263 +AZURE,qatarcentral,Standard_E16ds_v5,on_demand,NA,1.344,USD,Azure Retail Prices API,2025-12-18T04:46:06.974580 +AZURE,qatarcentral,Standard_E16ds_v5,reserved_1y,NA,0.792922,USD,Azure Retail Prices API,2025-12-18T04:46:08.033110 +AZURE,qatarcentral,Standard_E16ds_v5,reserved_3y,NA,0.510731,USD,Azure Retail Prices API,2025-12-18T04:46:08.033115 +AZURE,qatarcentral,Standard_E16ds_v5,spot,NA,0.247834,USD,Azure Retail Prices API,2025-12-18T04:46:06.976166 +AZURE,qatarcentral,Standard_E16ds_v6,on_demand,NA,1.537,USD,Azure Retail Prices API,2025-12-18T04:46:06.973982 +AZURE,qatarcentral,Standard_E16ds_v6,reserved_1y,NA,0.95274,USD,Azure Retail Prices API,2025-12-18T04:46:08.032499 +AZURE,qatarcentral,Standard_E16ds_v6,reserved_3y,NA,0.599277,USD,Azure Retail Prices API,2025-12-18T04:46:08.032504 +AZURE,qatarcentral,Standard_E16ds_v6,spot,NA,0.284038,USD,Azure Retail Prices API,2025-12-18T04:46:06.974976 +AZURE,qatarcentral,Standard_E16s_v3,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:06.976074 +AZURE,qatarcentral,Standard_E16s_v3,reserved_1y,NA,0.729566,USD,Azure Retail Prices API,2025-12-18T04:46:08.034348 +AZURE,qatarcentral,Standard_E16s_v3,reserved_3y,NA,0.466553,USD,Azure Retail Prices API,2025-12-18T04:46:08.034353 +AZURE,qatarcentral,Standard_E16s_v3,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:06.974216 +AZURE,qatarcentral,Standard_E16s_v4,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:06.975751 +AZURE,qatarcentral,Standard_E16s_v4,reserved_1y,NA,0.729566,USD,Azure Retail Prices API,2025-12-18T04:46:08.034065 +AZURE,qatarcentral,Standard_E16s_v4,reserved_3y,NA,0.466553,USD,Azure Retail Prices API,2025-12-18T04:46:08.034071 +AZURE,qatarcentral,Standard_E16s_v4,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:06.976186 +AZURE,qatarcentral,Standard_E16s_v5,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:46:06.975848 +AZURE,qatarcentral,Standard_E16s_v5,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:46:08.034185 +AZURE,qatarcentral,Standard_E16s_v5,reserved_3y,NA,0.43809,USD,Azure Retail Prices API,2025-12-18T04:46:08.034191 +AZURE,qatarcentral,Standard_E16s_v5,spot,NA,0.218803,USD,Azure Retail Prices API,2025-12-18T04:46:06.975780 +AZURE,qatarcentral,Standard_E20a_v4,on_demand,NA,1.551,USD,Azure Retail Prices API,2025-12-18T04:46:06.975819 +AZURE,qatarcentral,Standard_E20a_v4,reserved_1y,NA,0.915068,USD,Azure Retail Prices API,2025-12-18T04:46:08.034142 +AZURE,qatarcentral,Standard_E20a_v4,reserved_3y,NA,0.589384,USD,Azure Retail Prices API,2025-12-18T04:46:08.034147 +AZURE,qatarcentral,Standard_E20a_v4,spot,NA,0.286625,USD,Azure Retail Prices API,2025-12-18T04:46:06.974869 +AZURE,qatarcentral,Standard_E20ads_v5,on_demand,NA,2.529,USD,Azure Retail Prices API,2025-12-18T04:46:06.973835 +AZURE,qatarcentral,Standard_E20ads_v5,reserved_1y,NA,0.949315,USD,Azure Retail Prices API,2025-12-18T04:46:08.033089 +AZURE,qatarcentral,Standard_E20ads_v5,reserved_3y,NA,0.611416,USD,Azure Retail Prices API,2025-12-18T04:46:08.033095 +AZURE,qatarcentral,Standard_E20ads_v5,spot,NA,0.297343,USD,Azure Retail Prices API,2025-12-18T04:46:06.974098 +AZURE,qatarcentral,Standard_E20ads_v6,on_demand,NA,1.788,USD,Azure Retail Prices API,2025-12-18T04:46:06.974244 +AZURE,qatarcentral,Standard_E20ads_v6,reserved_1y,NA,1.054909,USD,Azure Retail Prices API,2025-12-18T04:46:08.032732 +AZURE,qatarcentral,Standard_E20ads_v6,reserved_3y,NA,0.679452,USD,Azure Retail Prices API,2025-12-18T04:46:08.032736 +AZURE,qatarcentral,Standard_E20ads_v6,spot,NA,0.330422,USD,Azure Retail Prices API,2025-12-18T04:46:06.975914 +AZURE,qatarcentral,Standard_E20as_v4,on_demand,NA,1.551,USD,Azure Retail Prices API,2025-12-18T04:46:06.974272 +AZURE,qatarcentral,Standard_E20as_v4,reserved_1y,NA,0.915068,USD,Azure Retail Prices API,2025-12-18T04:46:08.032741 +AZURE,qatarcentral,Standard_E20as_v4,reserved_3y,NA,0.589384,USD,Azure Retail Prices API,2025-12-18T04:46:08.032746 +AZURE,qatarcentral,Standard_E20as_v4,spot,NA,0.286625,USD,Azure Retail Prices API,2025-12-18T04:46:06.973955 +AZURE,qatarcentral,Standard_E20as_v5,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:46:06.974346 +AZURE,qatarcentral,Standard_E20as_v5,reserved_1y,NA,0.826027,USD,Azure Retail Prices API,2025-12-18T04:46:08.032821 +AZURE,qatarcentral,Standard_E20as_v5,reserved_3y,NA,0.532002,USD,Azure Retail Prices API,2025-12-18T04:46:08.032827 +AZURE,qatarcentral,Standard_E20as_v5,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:46:06.975010 +AZURE,qatarcentral,Standard_E20d_v4,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:46:06.975303 +AZURE,qatarcentral,Standard_E20d_v4,reserved_1y,NA,1.034817,USD,Azure Retail Prices API,2025-12-18T04:46:08.033576 +AZURE,qatarcentral,Standard_E20d_v4,reserved_3y,NA,0.66172,USD,Azure Retail Prices API,2025-12-18T04:46:08.033580 +AZURE,qatarcentral,Standard_E20d_v4,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:46:06.975531 +AZURE,qatarcentral,Standard_E20ds_v4,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:46:06.975519 +AZURE,qatarcentral,Standard_E20ds_v4,reserved_1y,NA,1.034817,USD,Azure Retail Prices API,2025-12-18T04:46:08.033864 +AZURE,qatarcentral,Standard_E20ds_v4,reserved_3y,NA,0.66172,USD,Azure Retail Prices API,2025-12-18T04:46:08.033868 +AZURE,qatarcentral,Standard_E20ds_v4,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:46:06.974394 +AZURE,qatarcentral,Standard_E20ds_v5,on_demand,NA,1.68,USD,Azure Retail Prices API,2025-12-18T04:46:06.975998 +AZURE,qatarcentral,Standard_E20ds_v5,reserved_1y,NA,0.99121,USD,Azure Retail Prices API,2025-12-18T04:46:08.034306 +AZURE,qatarcentral,Standard_E20ds_v5,reserved_3y,NA,0.638394,USD,Azure Retail Prices API,2025-12-18T04:46:08.034312 +AZURE,qatarcentral,Standard_E20ds_v5,spot,NA,0.309792,USD,Azure Retail Prices API,2025-12-18T04:46:06.974464 +AZURE,qatarcentral,Standard_E20ds_v6,on_demand,NA,1.921,USD,Azure Retail Prices API,2025-12-18T04:46:06.974706 +AZURE,qatarcentral,Standard_E20ds_v6,reserved_1y,NA,1.190868,USD,Azure Retail Prices API,2025-12-18T04:46:08.033306 +AZURE,qatarcentral,Standard_E20ds_v6,reserved_3y,NA,0.749125,USD,Azure Retail Prices API,2025-12-18T04:46:08.033311 +AZURE,qatarcentral,Standard_E20ds_v6,spot,NA,0.355001,USD,Azure Retail Prices API,2025-12-18T04:46:06.974330 +AZURE,qatarcentral,Standard_E20s_v4,on_demand,NA,1.55,USD,Azure Retail Prices API,2025-12-18T04:46:06.974034 +AZURE,qatarcentral,Standard_E20s_v4,reserved_1y,NA,0.9121,USD,Azure Retail Prices API,2025-12-18T04:46:08.032530 +AZURE,qatarcentral,Standard_E20s_v4,reserved_3y,NA,0.583143,USD,Azure Retail Prices API,2025-12-18T04:46:08.032535 +AZURE,qatarcentral,Standard_E20s_v4,spot,NA,0.28644,USD,Azure Retail Prices API,2025-12-18T04:46:06.975901 +AZURE,qatarcentral,Standard_E20s_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:46:06.975830 +AZURE,qatarcentral,Standard_E20s_v5,reserved_1y,NA,0.858447,USD,Azure Retail Prices API,2025-12-18T04:46:08.034165 +AZURE,qatarcentral,Standard_E20s_v5,reserved_3y,NA,0.547603,USD,Azure Retail Prices API,2025-12-18T04:46:08.034170 +AZURE,qatarcentral,Standard_E20s_v5,spot,NA,0.273504,USD,Azure Retail Prices API,2025-12-18T04:46:06.974060 +AZURE,qatarcentral,Standard_E2_v3,on_demand,NA,0.155,USD,Azure Retail Prices API,2025-12-18T04:46:06.976062 +AZURE,qatarcentral,Standard_E2_v3,reserved_1y,NA,0.09121,USD,Azure Retail Prices API,2025-12-18T04:46:08.034337 +AZURE,qatarcentral,Standard_E2_v3,reserved_3y,NA,0.058333,USD,Azure Retail Prices API,2025-12-18T04:46:08.034343 +AZURE,qatarcentral,Standard_E2_v3,spot,NA,0.028644,USD,Azure Retail Prices API,2025-12-18T04:46:06.974087 +AZURE,qatarcentral,Standard_E2ads_v6,on_demand,NA,0.179,USD,Azure Retail Prices API,2025-12-18T04:46:06.975582 +AZURE,qatarcentral,Standard_E2ads_v6,reserved_1y,NA,0.105479,USD,Azure Retail Prices API,2025-12-18T04:46:08.033914 +AZURE,qatarcentral,Standard_E2ads_v6,reserved_3y,NA,0.06796,USD,Azure Retail Prices API,2025-12-18T04:46:08.033919 +AZURE,qatarcentral,Standard_E2ads_v6,spot,NA,0.033079,USD,Azure Retail Prices API,2025-12-18T04:46:06.975774 +AZURE,qatarcentral,Standard_E2ds_v5,on_demand,NA,0.168,USD,Azure Retail Prices API,2025-12-18T04:46:06.974416 +AZURE,qatarcentral,Standard_E2ds_v5,reserved_1y,NA,0.099087,USD,Azure Retail Prices API,2025-12-18T04:46:08.032896 +AZURE,qatarcentral,Standard_E2ds_v5,reserved_3y,NA,0.063851,USD,Azure Retail Prices API,2025-12-18T04:46:08.032901 +AZURE,qatarcentral,Standard_E2ds_v5,spot,NA,0.030979,USD,Azure Retail Prices API,2025-12-18T04:46:06.975707 +AZURE,qatarcentral,Standard_E2ds_v6,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:46:06.975960 +AZURE,qatarcentral,Standard_E2ds_v6,reserved_1y,NA,0.119064,USD,Azure Retail Prices API,2025-12-18T04:46:08.034283 +AZURE,qatarcentral,Standard_E2ds_v6,reserved_3y,NA,0.074924,USD,Azure Retail Prices API,2025-12-18T04:46:08.034288 +AZURE,qatarcentral,Standard_E2ds_v6,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:46:06.974959 +AZURE,qatarcentral,Standard_E32_v3,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:06.976295 +AZURE,qatarcentral,Standard_E32_v3,reserved_1y,NA,1.459132,USD,Azure Retail Prices API,2025-12-18T04:46:08.034582 +AZURE,qatarcentral,Standard_E32_v3,reserved_3y,NA,0.933067,USD,Azure Retail Prices API,2025-12-18T04:46:08.034590 +AZURE,qatarcentral,Standard_E32_v3,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:06.974681 +AZURE,qatarcentral,Standard_E32a_v4,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:06.974762 +AZURE,qatarcentral,Standard_E32a_v4,reserved_1y,NA,1.464155,USD,Azure Retail Prices API,2025-12-18T04:46:08.033379 +AZURE,qatarcentral,Standard_E32a_v4,reserved_3y,NA,0.942998,USD,Azure Retail Prices API,2025-12-18T04:46:08.033384 +AZURE,qatarcentral,Standard_E32a_v4,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:06.975577 +AZURE,qatarcentral,Standard_E32ads_v5,on_demand,NA,2.574,USD,Azure Retail Prices API,2025-12-18T04:46:06.974227 +AZURE,qatarcentral,Standard_E32ads_v5,reserved_1y,NA,1.51895,USD,Azure Retail Prices API,2025-12-18T04:46:08.032710 +AZURE,qatarcentral,Standard_E32ads_v5,reserved_3y,NA,0.978272,USD,Azure Retail Prices API,2025-12-18T04:46:08.032715 +AZURE,qatarcentral,Standard_E32ads_v5,spot,NA,0.475675,USD,Azure Retail Prices API,2025-12-18T04:46:06.973863 +AZURE,qatarcentral,Standard_E32ads_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:46:06.976316 +AZURE,qatarcentral,Standard_E32ads_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:46:08.034606 +AZURE,qatarcentral,Standard_E32ads_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:46:08.034611 +AZURE,qatarcentral,Standard_E32ads_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:46:06.973890 +AZURE,qatarcentral,Standard_E32as_v4,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:06.975763 +AZURE,qatarcentral,Standard_E32as_v4,reserved_1y,NA,1.464155,USD,Azure Retail Prices API,2025-12-18T04:46:08.034088 +AZURE,qatarcentral,Standard_E32as_v4,reserved_3y,NA,0.942998,USD,Azure Retail Prices API,2025-12-18T04:46:08.034094 +AZURE,qatarcentral,Standard_E32as_v4,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:06.974001 +AZURE,qatarcentral,Standard_E32as_v5,on_demand,NA,3.712,USD,Azure Retail Prices API,2025-12-18T04:46:06.974152 +AZURE,qatarcentral,Standard_E32as_v5,reserved_1y,NA,1.321575,USD,Azure Retail Prices API,2025-12-18T04:46:08.032750 +AZURE,qatarcentral,Standard_E32as_v5,reserved_3y,NA,0.851218,USD,Azure Retail Prices API,2025-12-18T04:46:08.032755 +AZURE,qatarcentral,Standard_E32as_v5,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:46:06.974163 +AZURE,qatarcentral,Standard_E32d_v4,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:46:06.974362 +AZURE,qatarcentral,Standard_E32d_v4,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:46:08.032844 +AZURE,qatarcentral,Standard_E32d_v4,reserved_3y,NA,1.058828,USD,Azure Retail Prices API,2025-12-18T04:46:08.032848 +AZURE,qatarcentral,Standard_E32d_v4,spot,NA,0.520397,USD,Azure Retail Prices API,2025-12-18T04:46:06.976289 +AZURE,qatarcentral,Standard_E32ds_v4,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:46:06.975340 +AZURE,qatarcentral,Standard_E32ds_v4,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:46:08.033619 +AZURE,qatarcentral,Standard_E32ds_v4,reserved_3y,NA,1.058828,USD,Azure Retail Prices API,2025-12-18T04:46:08.033623 +AZURE,qatarcentral,Standard_E32ds_v4,spot,NA,0.520397,USD,Azure Retail Prices API,2025-12-18T04:46:06.976121 +AZURE,qatarcentral,Standard_E32ds_v5,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:06.974661 +AZURE,qatarcentral,Standard_E32ds_v5,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:46:08.033242 +AZURE,qatarcentral,Standard_E32ds_v5,reserved_3y,NA,1.021423,USD,Azure Retail Prices API,2025-12-18T04:46:08.033247 +AZURE,qatarcentral,Standard_E32ds_v5,spot,NA,0.495667,USD,Azure Retail Prices API,2025-12-18T04:46:06.973853 +AZURE,qatarcentral,Standard_E32ds_v6,on_demand,NA,3.073,USD,Azure Retail Prices API,2025-12-18T04:46:06.974399 +AZURE,qatarcentral,Standard_E32ds_v6,reserved_1y,NA,1.905479,USD,Azure Retail Prices API,2025-12-18T04:46:08.032885 +AZURE,qatarcentral,Standard_E32ds_v6,reserved_3y,NA,1.198592,USD,Azure Retail Prices API,2025-12-18T04:46:08.032891 +AZURE,qatarcentral,Standard_E32ds_v6,spot,NA,0.56789,USD,Azure Retail Prices API,2025-12-18T04:46:06.973646 +AZURE,qatarcentral,Standard_E32s_v3,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:06.974077 +AZURE,qatarcentral,Standard_E32s_v3,reserved_1y,NA,1.459132,USD,Azure Retail Prices API,2025-12-18T04:46:08.032561 +AZURE,qatarcentral,Standard_E32s_v3,reserved_3y,NA,0.933067,USD,Azure Retail Prices API,2025-12-18T04:46:08.032567 +AZURE,qatarcentral,Standard_E32s_v3,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:06.973579 +AZURE,qatarcentral,Standard_E32s_v4,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:06.975718 +AZURE,qatarcentral,Standard_E32s_v4,reserved_1y,NA,1.459132,USD,Azure Retail Prices API,2025-12-18T04:46:08.034036 +AZURE,qatarcentral,Standard_E32s_v4,reserved_3y,NA,0.933067,USD,Azure Retail Prices API,2025-12-18T04:46:08.034041 +AZURE,qatarcentral,Standard_E32s_v4,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:06.974487 +AZURE,qatarcentral,Standard_E32s_v5,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:46:06.974726 +AZURE,qatarcentral,Standard_E32s_v5,reserved_1y,NA,1.373402,USD,Azure Retail Prices API,2025-12-18T04:46:08.033316 +AZURE,qatarcentral,Standard_E32s_v5,reserved_3y,NA,0.876142,USD,Azure Retail Prices API,2025-12-18T04:46:08.033321 +AZURE,qatarcentral,Standard_E32s_v5,spot,NA,0.437606,USD,Azure Retail Prices API,2025-12-18T04:46:06.973929 +AZURE,qatarcentral,Standard_E48a_v4,on_demand,NA,3.722,USD,Azure Retail Prices API,2025-12-18T04:46:06.975291 +AZURE,qatarcentral,Standard_E48a_v4,reserved_1y,NA,2.196233,USD,Azure Retail Prices API,2025-12-18T04:46:08.033558 +AZURE,qatarcentral,Standard_E48a_v4,reserved_3y,NA,1.414498,USD,Azure Retail Prices API,2025-12-18T04:46:08.033563 +AZURE,qatarcentral,Standard_E48a_v4,spot,NA,0.687826,USD,Azure Retail Prices API,2025-12-18T04:46:06.975525 +AZURE,qatarcentral,Standard_E48ads_v5,on_demand,NA,3.862,USD,Azure Retail Prices API,2025-12-18T04:46:06.974384 +AZURE,qatarcentral,Standard_E48ads_v5,reserved_1y,NA,2.278311,USD,Azure Retail Prices API,2025-12-18T04:46:08.032874 +AZURE,qatarcentral,Standard_E48ads_v5,reserved_3y,NA,1.46739,USD,Azure Retail Prices API,2025-12-18T04:46:08.032880 +AZURE,qatarcentral,Standard_E48ads_v5,spot,NA,0.713698,USD,Azure Retail Prices API,2025-12-18T04:46:06.975313 +AZURE,qatarcentral,Standard_E48ads_v6,on_demand,NA,4.291,USD,Azure Retail Prices API,2025-12-18T04:46:06.975931 +AZURE,qatarcentral,Standard_E48ads_v6,reserved_1y,NA,2.531849,USD,Azure Retail Prices API,2025-12-18T04:46:08.034229 +AZURE,qatarcentral,Standard_E48ads_v6,reserved_3y,NA,1.63067,USD,Azure Retail Prices API,2025-12-18T04:46:08.034236 +AZURE,qatarcentral,Standard_E48ads_v6,spot,NA,0.792977,USD,Azure Retail Prices API,2025-12-18T04:46:06.973880 +AZURE,qatarcentral,Standard_E48as_v4,on_demand,NA,3.722,USD,Azure Retail Prices API,2025-12-18T04:46:06.974501 +AZURE,qatarcentral,Standard_E48as_v4,reserved_1y,NA,2.196233,USD,Azure Retail Prices API,2025-12-18T04:46:08.033046 +AZURE,qatarcentral,Standard_E48as_v4,reserved_3y,NA,1.414498,USD,Azure Retail Prices API,2025-12-18T04:46:08.033052 +AZURE,qatarcentral,Standard_E48as_v4,spot,NA,0.687826,USD,Azure Retail Prices API,2025-12-18T04:46:06.975991 +AZURE,qatarcentral,Standard_E48as_v5,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:46:06.974147 +AZURE,qatarcentral,Standard_E48as_v5,reserved_1y,NA,1.98242,USD,Azure Retail Prices API,2025-12-18T04:46:08.032624 +AZURE,qatarcentral,Standard_E48as_v5,reserved_3y,NA,1.276788,USD,Azure Retail Prices API,2025-12-18T04:46:08.032630 +AZURE,qatarcentral,Standard_E48as_v5,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:46:06.973900 +AZURE,qatarcentral,Standard_E48d_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:06.974421 +AZURE,qatarcentral,Standard_E48d_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:46:08.032907 +AZURE,qatarcentral,Standard_E48d_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:46:08.032913 +AZURE,qatarcentral,Standard_E48d_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:06.973934 +AZURE,qatarcentral,Standard_E48ds_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:06.975032 +AZURE,qatarcentral,Standard_E48ds_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:46:08.033505 +AZURE,qatarcentral,Standard_E48ds_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:46:08.033510 +AZURE,qatarcentral,Standard_E48ds_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:06.974553 +AZURE,qatarcentral,Standard_E48ds_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:46:06.973939 +AZURE,qatarcentral,Standard_E48ds_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:46:08.032467 +AZURE,qatarcentral,Standard_E48ds_v5,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:46:08.032472 +AZURE,qatarcentral,Standard_E48ds_v5,spot,NA,0.743501,USD,Azure Retail Prices API,2025-12-18T04:46:06.974017 +AZURE,qatarcentral,Standard_E48ds_v6,on_demand,NA,4.61,USD,Azure Retail Prices API,2025-12-18T04:46:06.974544 +AZURE,qatarcentral,Standard_E48ds_v6,reserved_1y,NA,2.858105,USD,Azure Retail Prices API,2025-12-18T04:46:08.033079 +AZURE,qatarcentral,Standard_E48ds_v6,reserved_3y,NA,1.797869,USD,Azure Retail Prices API,2025-12-18T04:46:08.033084 +AZURE,qatarcentral,Standard_E48ds_v6,spot,NA,0.851928,USD,Azure Retail Prices API,2025-12-18T04:46:06.975442 +AZURE,qatarcentral,Standard_E48s_v4,on_demand,NA,3.722,USD,Azure Retail Prices API,2025-12-18T04:46:06.973558 +AZURE,qatarcentral,Standard_E48s_v4,reserved_1y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:08.032201 +AZURE,qatarcentral,Standard_E48s_v4,reserved_3y,NA,1.399619,USD,Azure Retail Prices API,2025-12-18T04:46:08.032218 +AZURE,qatarcentral,Standard_E48s_v4,spot,NA,0.687826,USD,Azure Retail Prices API,2025-12-18T04:46:06.974779 +AZURE,qatarcentral,Standard_E48s_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:46:06.976080 +AZURE,qatarcentral,Standard_E48s_v5,reserved_1y,NA,2.06016,USD,Azure Retail Prices API,2025-12-18T04:46:08.034359 +AZURE,qatarcentral,Standard_E48s_v5,reserved_3y,NA,1.314231,USD,Azure Retail Prices API,2025-12-18T04:46:08.034364 +AZURE,qatarcentral,Standard_E48s_v5,spot,NA,0.65641,USD,Azure Retail Prices API,2025-12-18T04:46:06.974012 +AZURE,qatarcentral,Standard_E4_v3,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:06.975600 +AZURE,qatarcentral,Standard_E4_v3,reserved_1y,NA,0.18242,USD,Azure Retail Prices API,2025-12-18T04:46:08.033924 +AZURE,qatarcentral,Standard_E4_v3,reserved_3y,NA,0.116629,USD,Azure Retail Prices API,2025-12-18T04:46:08.033930 +AZURE,qatarcentral,Standard_E4_v3,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:06.973675 +AZURE,qatarcentral,Standard_E4a_v4,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:06.976161 +AZURE,qatarcentral,Standard_E4a_v4,reserved_1y,NA,0.182991,USD,Azure Retail Prices API,2025-12-18T04:46:08.034466 +AZURE,qatarcentral,Standard_E4a_v4,reserved_3y,NA,0.117884,USD,Azure Retail Prices API,2025-12-18T04:46:08.034471 +AZURE,qatarcentral,Standard_E4a_v4,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:06.974901 +AZURE,qatarcentral,Standard_E4ads_v5,on_demand,NA,0.322,USD,Azure Retail Prices API,2025-12-18T04:46:06.973585 +AZURE,qatarcentral,Standard_E4ads_v5,reserved_1y,NA,0.18984,USD,Azure Retail Prices API,2025-12-18T04:46:08.032224 +AZURE,qatarcentral,Standard_E4ads_v5,reserved_3y,NA,0.122298,USD,Azure Retail Prices API,2025-12-18T04:46:08.032230 +AZURE,qatarcentral,Standard_E4ads_v5,spot,NA,0.059506,USD,Azure Retail Prices API,2025-12-18T04:46:06.976171 +AZURE,qatarcentral,Standard_E4ads_v6,on_demand,NA,0.358,USD,Azure Retail Prices API,2025-12-18T04:46:06.975937 +AZURE,qatarcentral,Standard_E4ads_v6,reserved_1y,NA,0.210959,USD,Azure Retail Prices API,2025-12-18T04:46:08.034241 +AZURE,qatarcentral,Standard_E4ads_v6,reserved_3y,NA,0.135883,USD,Azure Retail Prices API,2025-12-18T04:46:08.034246 +AZURE,qatarcentral,Standard_E4ads_v6,spot,NA,0.066158,USD,Azure Retail Prices API,2025-12-18T04:46:06.974717 +AZURE,qatarcentral,Standard_E4as_v4,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:06.975786 +AZURE,qatarcentral,Standard_E4as_v4,reserved_1y,NA,0.182991,USD,Azure Retail Prices API,2025-12-18T04:46:08.034100 +AZURE,qatarcentral,Standard_E4as_v4,reserved_3y,NA,0.117884,USD,Azure Retail Prices API,2025-12-18T04:46:08.034105 +AZURE,qatarcentral,Standard_E4as_v4,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:06.974232 +AZURE,qatarcentral,Standard_E4as_v5,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:46:06.975634 +AZURE,qatarcentral,Standard_E4as_v5,reserved_1y,NA,0.165183,USD,Azure Retail Prices API,2025-12-18T04:46:08.033950 +AZURE,qatarcentral,Standard_E4as_v5,reserved_3y,NA,0.106393,USD,Azure Retail Prices API,2025-12-18T04:46:08.033955 +AZURE,qatarcentral,Standard_E4as_v5,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:46:06.974482 +AZURE,qatarcentral,Standard_E4d_v4,on_demand,NA,0.352,USD,Azure Retail Prices API,2025-12-18T04:46:06.975373 +AZURE,qatarcentral,Standard_E4d_v4,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:46:08.033644 +AZURE,qatarcentral,Standard_E4d_v4,reserved_3y,NA,0.132344,USD,Azure Retail Prices API,2025-12-18T04:46:08.033648 +AZURE,qatarcentral,Standard_E4d_v4,spot,NA,0.06505,USD,Azure Retail Prices API,2025-12-18T04:46:06.975650 +AZURE,qatarcentral,Standard_E4ds_v4,on_demand,NA,0.352,USD,Azure Retail Prices API,2025-12-18T04:46:06.973670 +AZURE,qatarcentral,Standard_E4ds_v4,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:46:08.032329 +AZURE,qatarcentral,Standard_E4ds_v4,reserved_3y,NA,0.132344,USD,Azure Retail Prices API,2025-12-18T04:46:08.032335 +AZURE,qatarcentral,Standard_E4ds_v4,spot,NA,0.06505,USD,Azure Retail Prices API,2025-12-18T04:46:06.975026 +AZURE,qatarcentral,Standard_E4ds_v5,on_demand,NA,0.336,USD,Azure Retail Prices API,2025-12-18T04:46:06.976144 +AZURE,qatarcentral,Standard_E4ds_v5,reserved_1y,NA,0.198288,USD,Azure Retail Prices API,2025-12-18T04:46:08.034432 +AZURE,qatarcentral,Standard_E4ds_v5,reserved_3y,NA,0.127664,USD,Azure Retail Prices API,2025-12-18T04:46:08.034438 +AZURE,qatarcentral,Standard_E4ds_v5,spot,NA,0.061958,USD,Azure Retail Prices API,2025-12-18T04:46:06.976115 +AZURE,qatarcentral,Standard_E4ds_v6,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:46:06.974184 +AZURE,qatarcentral,Standard_E4ds_v6,reserved_1y,NA,0.238128,USD,Azure Retail Prices API,2025-12-18T04:46:08.032645 +AZURE,qatarcentral,Standard_E4ds_v6,reserved_3y,NA,0.14981,USD,Azure Retail Prices API,2025-12-18T04:46:08.032651 +AZURE,qatarcentral,Standard_E4ds_v6,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:46:06.975645 +AZURE,qatarcentral,Standard_E4s_v4,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:06.975464 +AZURE,qatarcentral,Standard_E4s_v4,reserved_1y,NA,0.18242,USD,Azure Retail Prices API,2025-12-18T04:46:08.033808 +AZURE,qatarcentral,Standard_E4s_v4,reserved_3y,NA,0.116629,USD,Azure Retail Prices API,2025-12-18T04:46:08.033813 +AZURE,qatarcentral,Standard_E4s_v4,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:06.973547 +AZURE,qatarcentral,Standard_E4s_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:46:06.975895 +AZURE,qatarcentral,Standard_E4s_v5,reserved_1y,NA,0.171689,USD,Azure Retail Prices API,2025-12-18T04:46:08.034196 +AZURE,qatarcentral,Standard_E4s_v5,reserved_3y,NA,0.109513,USD,Azure Retail Prices API,2025-12-18T04:46:08.034202 +AZURE,qatarcentral,Standard_E4s_v5,spot,NA,0.054701,USD,Azure Retail Prices API,2025-12-18T04:46:06.974310 +AZURE,qatarcentral,Standard_E64_v3,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:06.973793 +AZURE,qatarcentral,Standard_E64_v3,reserved_1y,NA,2.918379,USD,Azure Retail Prices API,2025-12-18T04:46:08.032364 +AZURE,qatarcentral,Standard_E64_v3,reserved_3y,NA,1.866172,USD,Azure Retail Prices API,2025-12-18T04:46:08.032369 +AZURE,qatarcentral,Standard_E64_v3,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:06.974468 +AZURE,qatarcentral,Standard_E64a_v4,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:06.976321 +AZURE,qatarcentral,Standard_E64a_v4,reserved_1y,NA,2.928311,USD,Azure Retail Prices API,2025-12-18T04:46:08.034615 +AZURE,qatarcentral,Standard_E64a_v4,reserved_3y,NA,1.886035,USD,Azure Retail Prices API,2025-12-18T04:46:08.034620 +AZURE,qatarcentral,Standard_E64a_v4,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:06.974562 +AZURE,qatarcentral,Standard_E64ads_v5,on_demand,NA,8.093,USD,Azure Retail Prices API,2025-12-18T04:46:06.975689 +AZURE,qatarcentral,Standard_E64ads_v5,reserved_1y,NA,3.037785,USD,Azure Retail Prices API,2025-12-18T04:46:08.034219 +AZURE,qatarcentral,Standard_E64ads_v5,reserved_3y,NA,1.956545,USD,Azure Retail Prices API,2025-12-18T04:46:08.034224 +AZURE,qatarcentral,Standard_E64ads_v5,spot,NA,0.951535,USD,Azure Retail Prices API,2025-12-18T04:46:06.974569 +AZURE,qatarcentral,Standard_E64ads_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:46:06.974828 +AZURE,qatarcentral,Standard_E64ads_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:46:08.033400 +AZURE,qatarcentral,Standard_E64ads_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:46:08.033406 +AZURE,qatarcentral,Standard_E64ads_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:46:06.975907 +AZURE,qatarcentral,Standard_E64as_v4,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:06.976228 +AZURE,qatarcentral,Standard_E64as_v4,reserved_1y,NA,2.928311,USD,Azure Retail Prices API,2025-12-18T04:46:08.034519 +AZURE,qatarcentral,Standard_E64as_v4,reserved_3y,NA,1.886035,USD,Azure Retail Prices API,2025-12-18T04:46:08.034524 +AZURE,qatarcentral,Standard_E64as_v4,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:06.974405 +AZURE,qatarcentral,Standard_E64as_v5,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:46:06.974752 +AZURE,qatarcentral,Standard_E64as_v5,reserved_1y,NA,2.643151,USD,Azure Retail Prices API,2025-12-18T04:46:08.033368 +AZURE,qatarcentral,Standard_E64as_v5,reserved_3y,NA,1.702397,USD,Azure Retail Prices API,2025-12-18T04:46:08.033373 +AZURE,qatarcentral,Standard_E64as_v5,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:46:06.976068 +AZURE,qatarcentral,Standard_E64d_v4,on_demand,NA,5.632,USD,Azure Retail Prices API,2025-12-18T04:46:06.976274 +AZURE,qatarcentral,Standard_E64d_v4,reserved_1y,NA,3.311644,USD,Azure Retail Prices API,2025-12-18T04:46:08.034572 +AZURE,qatarcentral,Standard_E64d_v4,reserved_3y,NA,2.117618,USD,Azure Retail Prices API,2025-12-18T04:46:08.034577 +AZURE,qatarcentral,Standard_E64d_v4,spot,NA,1.040794,USD,Azure Retail Prices API,2025-12-18T04:46:06.975269 +AZURE,qatarcentral,Standard_E64ds_v4,on_demand,NA,5.632,USD,Azure Retail Prices API,2025-12-18T04:46:06.976092 +AZURE,qatarcentral,Standard_E64ds_v4,reserved_1y,NA,3.311644,USD,Azure Retail Prices API,2025-12-18T04:46:08.034381 +AZURE,qatarcentral,Standard_E64ds_v4,reserved_3y,NA,2.117618,USD,Azure Retail Prices API,2025-12-18T04:46:08.034386 +AZURE,qatarcentral,Standard_E64ds_v4,spot,NA,1.040794,USD,Azure Retail Prices API,2025-12-18T04:46:06.974890 +AZURE,qatarcentral,Standard_E64ds_v5,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:46:06.974642 +AZURE,qatarcentral,Standard_E64ds_v5,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:46:08.033222 +AZURE,qatarcentral,Standard_E64ds_v5,reserved_3y,NA,2.042884,USD,Azure Retail Prices API,2025-12-18T04:46:08.033227 +AZURE,qatarcentral,Standard_E64ds_v5,spot,NA,0.991334,USD,Azure Retail Prices API,2025-12-18T04:46:06.976269 +AZURE,qatarcentral,Standard_E64ds_v6,on_demand,NA,6.147,USD,Azure Retail Prices API,2025-12-18T04:46:06.974615 +AZURE,qatarcentral,Standard_E64ds_v6,reserved_1y,NA,3.810845,USD,Azure Retail Prices API,2025-12-18T04:46:08.033179 +AZURE,qatarcentral,Standard_E64ds_v6,reserved_3y,NA,2.397146,USD,Azure Retail Prices API,2025-12-18T04:46:08.033184 +AZURE,qatarcentral,Standard_E64ds_v6,spot,NA,1.135966,USD,Azure Retail Prices API,2025-12-18T04:46:06.973858 +AZURE,qatarcentral,Standard_E64s_v3,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:06.975508 +AZURE,qatarcentral,Standard_E64s_v3,reserved_1y,NA,2.918379,USD,Azure Retail Prices API,2025-12-18T04:46:08.033854 +AZURE,qatarcentral,Standard_E64s_v3,reserved_3y,NA,1.866172,USD,Azure Retail Prices API,2025-12-18T04:46:08.033859 +AZURE,qatarcentral,Standard_E64s_v3,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:06.975048 +AZURE,qatarcentral,Standard_E64s_v4,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:06.975746 +AZURE,qatarcentral,Standard_E64s_v4,reserved_1y,NA,2.918379,USD,Azure Retail Prices API,2025-12-18T04:46:08.034055 +AZURE,qatarcentral,Standard_E64s_v4,reserved_3y,NA,1.866172,USD,Azure Retail Prices API,2025-12-18T04:46:08.034060 +AZURE,qatarcentral,Standard_E64s_v4,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:06.975297 +AZURE,qatarcentral,Standard_E64s_v5,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:46:06.974840 +AZURE,qatarcentral,Standard_E64s_v5,reserved_1y,NA,2.746918,USD,Azure Retail Prices API,2025-12-18T04:46:08.033421 +AZURE,qatarcentral,Standard_E64s_v5,reserved_3y,NA,1.752321,USD,Azure Retail Prices API,2025-12-18T04:46:08.033427 +AZURE,qatarcentral,Standard_E64s_v5,spot,NA,0.875213,USD,Azure Retail Prices API,2025-12-18T04:46:06.976326 +AZURE,qatarcentral,Standard_E80ids_v4,on_demand,NA,7.04,USD,Azure Retail Prices API,2025-12-18T04:46:06.973655 +AZURE,qatarcentral,Standard_E80ids_v4,reserved_1y,NA,4.139269,USD,Azure Retail Prices API,2025-12-18T04:46:08.032308 +AZURE,qatarcentral,Standard_E80ids_v4,reserved_3y,NA,2.64688,USD,Azure Retail Prices API,2025-12-18T04:46:08.032313 +AZURE,qatarcentral,Standard_E80ids_v4,spot,NA,1.300992,USD,Azure Retail Prices API,2025-12-18T04:46:06.974410 +AZURE,qatarcentral,Standard_E80is_v4,on_demand,NA,6.2,USD,Azure Retail Prices API,2025-12-18T04:46:06.976203 +AZURE,qatarcentral,Standard_E80is_v4,reserved_1y,NA,3.648402,USD,Azure Retail Prices API,2025-12-18T04:46:08.034497 +AZURE,qatarcentral,Standard_E80is_v4,reserved_3y,NA,2.332572,USD,Azure Retail Prices API,2025-12-18T04:46:08.034502 +AZURE,qatarcentral,Standard_E80is_v4,spot,NA,1.14576,USD,Azure Retail Prices API,2025-12-18T04:46:06.974813 +AZURE,qatarcentral,Standard_E8_v3,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:06.975824 +AZURE,qatarcentral,Standard_E8_v3,reserved_1y,NA,0.36484,USD,Azure Retail Prices API,2025-12-18T04:46:08.034153 +AZURE,qatarcentral,Standard_E8_v3,reserved_3y,NA,0.233257,USD,Azure Retail Prices API,2025-12-18T04:46:08.034158 +AZURE,qatarcentral,Standard_E8_v3,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:06.975560 +AZURE,qatarcentral,Standard_E8a_v4,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:06.973824 +AZURE,qatarcentral,Standard_E8a_v4,reserved_1y,NA,0.365982,USD,Azure Retail Prices API,2025-12-18T04:46:08.032419 +AZURE,qatarcentral,Standard_E8a_v4,reserved_3y,NA,0.235769,USD,Azure Retail Prices API,2025-12-18T04:46:08.032425 +AZURE,qatarcentral,Standard_E8a_v4,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:06.973590 +AZURE,qatarcentral,Standard_E8ads_v5,on_demand,NA,1.012,USD,Azure Retail Prices API,2025-12-18T04:46:06.974267 +AZURE,qatarcentral,Standard_E8ads_v5,reserved_1y,NA,0.37968,USD,Azure Retail Prices API,2025-12-18T04:46:08.033357 +AZURE,qatarcentral,Standard_E8ads_v5,reserved_3y,NA,0.244559,USD,Azure Retail Prices API,2025-12-18T04:46:08.033363 +AZURE,qatarcentral,Standard_E8ads_v5,spot,NA,0.119011,USD,Azure Retail Prices API,2025-12-18T04:46:06.976197 +AZURE,qatarcentral,Standard_E8ads_v6,on_demand,NA,0.715,USD,Azure Retail Prices API,2025-12-18T04:46:06.974325 +AZURE,qatarcentral,Standard_E8ads_v6,reserved_1y,NA,0.421918,USD,Azure Retail Prices API,2025-12-18T04:46:08.032791 +AZURE,qatarcentral,Standard_E8ads_v6,reserved_3y,NA,0.271766,USD,Azure Retail Prices API,2025-12-18T04:46:08.032796 +AZURE,qatarcentral,Standard_E8ads_v6,spot,NA,0.132132,USD,Azure Retail Prices API,2025-12-18T04:46:06.974948 +AZURE,qatarcentral,Standard_E8as_v4,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:06.974731 +AZURE,qatarcentral,Standard_E8as_v4,reserved_1y,NA,0.365982,USD,Azure Retail Prices API,2025-12-18T04:46:08.033326 +AZURE,qatarcentral,Standard_E8as_v4,reserved_3y,NA,0.235769,USD,Azure Retail Prices API,2025-12-18T04:46:08.033331 +AZURE,qatarcentral,Standard_E8as_v4,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:06.973829 +AZURE,qatarcentral,Standard_E8as_v5,on_demand,NA,0.928,USD,Azure Retail Prices API,2025-12-18T04:46:06.973781 +AZURE,qatarcentral,Standard_E8as_v5,reserved_1y,NA,0.330365,USD,Azure Retail Prices API,2025-12-18T04:46:08.032993 +AZURE,qatarcentral,Standard_E8as_v5,reserved_3y,NA,0.212785,USD,Azure Retail Prices API,2025-12-18T04:46:08.032999 +AZURE,qatarcentral,Standard_E8as_v5,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:46:06.974721 +AZURE,qatarcentral,Standard_E8d_v4,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:46:06.975696 +AZURE,qatarcentral,Standard_E8d_v4,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:46:08.034004 +AZURE,qatarcentral,Standard_E8d_v4,reserved_3y,NA,0.264688,USD,Azure Retail Prices API,2025-12-18T04:46:08.034009 +AZURE,qatarcentral,Standard_E8d_v4,spot,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:06.975238 +AZURE,qatarcentral,Standard_E8ds_v4,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:46:06.974491 +AZURE,qatarcentral,Standard_E8ds_v4,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:46:08.033035 +AZURE,qatarcentral,Standard_E8ds_v4,reserved_3y,NA,0.264688,USD,Azure Retail Prices API,2025-12-18T04:46:08.033041 +AZURE,qatarcentral,Standard_E8ds_v4,spot,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:06.975617 +AZURE,qatarcentral,Standard_E8ds_v5,on_demand,NA,0.672,USD,Azure Retail Prices API,2025-12-18T04:46:06.974896 +AZURE,qatarcentral,Standard_E8ds_v5,reserved_1y,NA,0.396461,USD,Azure Retail Prices API,2025-12-18T04:46:08.033453 +AZURE,qatarcentral,Standard_E8ds_v5,reserved_3y,NA,0.255365,USD,Azure Retail Prices API,2025-12-18T04:46:08.033459 +AZURE,qatarcentral,Standard_E8ds_v5,spot,NA,0.123917,USD,Azure Retail Prices API,2025-12-18T04:46:06.975015 +AZURE,qatarcentral,Standard_E8ds_v6,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:46:06.975280 +AZURE,qatarcentral,Standard_E8ds_v6,reserved_1y,NA,0.47637,USD,Azure Retail Prices API,2025-12-18T04:46:08.033540 +AZURE,qatarcentral,Standard_E8ds_v6,reserved_3y,NA,0.299658,USD,Azure Retail Prices API,2025-12-18T04:46:08.033544 +AZURE,qatarcentral,Standard_E8ds_v6,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:46:06.976003 +AZURE,qatarcentral,Standard_E8s_v3,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:06.974874 +AZURE,qatarcentral,Standard_E8s_v3,reserved_1y,NA,0.36484,USD,Azure Retail Prices API,2025-12-18T04:46:08.033432 +AZURE,qatarcentral,Standard_E8s_v3,reserved_3y,NA,0.233257,USD,Azure Retail Prices API,2025-12-18T04:46:08.033438 +AZURE,qatarcentral,Standard_E8s_v3,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:06.975362 +AZURE,qatarcentral,Standard_E8s_v4,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:06.974446 +AZURE,qatarcentral,Standard_E8s_v4,reserved_1y,NA,0.36484,USD,Azure Retail Prices API,2025-12-18T04:46:08.032960 +AZURE,qatarcentral,Standard_E8s_v4,reserved_3y,NA,0.233257,USD,Azure Retail Prices API,2025-12-18T04:46:08.032965 +AZURE,qatarcentral,Standard_E8s_v4,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:06.974039 +AZURE,qatarcentral,Standard_E8s_v5,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:46:06.974619 +AZURE,qatarcentral,Standard_E8s_v5,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:46:08.033189 +AZURE,qatarcentral,Standard_E8s_v5,reserved_3y,NA,0.219026,USD,Azure Retail Prices API,2025-12-18T04:46:08.033194 +AZURE,qatarcentral,Standard_E8s_v5,spot,NA,0.109402,USD,Azure Retail Prices API,2025-12-18T04:46:06.975588 +AZURE,qatarcentral,Standard_E96a_v4,on_demand,NA,7.445,USD,Azure Retail Prices API,2025-12-18T04:46:06.976223 +AZURE,qatarcentral,Standard_E96a_v4,reserved_1y,NA,4.392466,USD,Azure Retail Prices API,2025-12-18T04:46:08.034507 +AZURE,qatarcentral,Standard_E96a_v4,reserved_3y,NA,2.829033,USD,Azure Retail Prices API,2025-12-18T04:46:08.034512 +AZURE,qatarcentral,Standard_E96a_v4,spot,NA,1.375836,USD,Azure Retail Prices API,2025-12-18T04:46:06.973574 +AZURE,qatarcentral,Standard_E96ads_v5,on_demand,NA,7.723,USD,Azure Retail Prices API,2025-12-18T04:46:06.973841 +AZURE,qatarcentral,Standard_E96ads_v5,reserved_1y,NA,4.556735,USD,Azure Retail Prices API,2025-12-18T04:46:08.032430 +AZURE,qatarcentral,Standard_E96ads_v5,reserved_3y,NA,2.934817,USD,Azure Retail Prices API,2025-12-18T04:46:08.032435 +AZURE,qatarcentral,Standard_E96ads_v5,spot,NA,1.42721,USD,Azure Retail Prices API,2025-12-18T04:46:06.975037 +AZURE,qatarcentral,Standard_E96ads_v6,on_demand,NA,8.582,USD,Azure Retail Prices API,2025-12-18T04:46:06.976155 +AZURE,qatarcentral,Standard_E96ads_v6,reserved_1y,NA,5.063584,USD,Azure Retail Prices API,2025-12-18T04:46:08.034456 +AZURE,qatarcentral,Standard_E96ads_v6,reserved_3y,NA,3.261301,USD,Azure Retail Prices API,2025-12-18T04:46:08.034461 +AZURE,qatarcentral,Standard_E96ads_v6,spot,NA,1.585954,USD,Azure Retail Prices API,2025-12-18T04:46:06.974379 +AZURE,qatarcentral,Standard_E96as_v4,on_demand,NA,7.445,USD,Azure Retail Prices API,2025-12-18T04:46:06.976341 +AZURE,qatarcentral,Standard_E96as_v4,reserved_1y,NA,4.392466,USD,Azure Retail Prices API,2025-12-18T04:46:08.034646 +AZURE,qatarcentral,Standard_E96as_v4,reserved_3y,NA,2.829033,USD,Azure Retail Prices API,2025-12-18T04:46:08.034652 +AZURE,qatarcentral,Standard_E96as_v4,spot,NA,1.375836,USD,Azure Retail Prices API,2025-12-18T04:46:06.974863 +AZURE,qatarcentral,Standard_E96as_v5,on_demand,NA,6.72,USD,Azure Retail Prices API,2025-12-18T04:46:06.973610 +AZURE,qatarcentral,Standard_E96as_v5,reserved_1y,NA,3.96484,USD,Azure Retail Prices API,2025-12-18T04:46:08.032246 +AZURE,qatarcentral,Standard_E96as_v5,reserved_3y,NA,2.553615,USD,Azure Retail Prices API,2025-12-18T04:46:08.032252 +AZURE,qatarcentral,Standard_E96as_v5,spot,NA,1.241856,USD,Azure Retail Prices API,2025-12-18T04:46:06.975919 +AZURE,qatarcentral,Standard_E96ds_v5,on_demand,NA,8.064,USD,Azure Retail Prices API,2025-12-18T04:46:06.973972 +AZURE,qatarcentral,Standard_E96ds_v5,reserved_1y,NA,4.757763,USD,Azure Retail Prices API,2025-12-18T04:46:08.032488 +AZURE,qatarcentral,Standard_E96ds_v5,reserved_3y,NA,3.064307,USD,Azure Retail Prices API,2025-12-18T04:46:08.032493 +AZURE,qatarcentral,Standard_E96ds_v5,spot,NA,1.487002,USD,Azure Retail Prices API,2025-12-18T04:46:06.975470 +AZURE,qatarcentral,Standard_E96ds_v6,on_demand,NA,9.22,USD,Azure Retail Prices API,2025-12-18T04:46:06.974221 +AZURE,qatarcentral,Standard_E96ds_v6,reserved_1y,NA,5.716324,USD,Azure Retail Prices API,2025-12-18T04:46:08.032699 +AZURE,qatarcentral,Standard_E96ds_v6,reserved_3y,NA,3.595738,USD,Azure Retail Prices API,2025-12-18T04:46:08.032705 +AZURE,qatarcentral,Standard_E96ds_v6,spot,NA,1.703856,USD,Azure Retail Prices API,2025-12-18T04:46:06.975623 +AZURE,qatarcentral,Standard_E96s_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:46:06.975481 +AZURE,qatarcentral,Standard_E96s_v5,reserved_1y,NA,4.12032,USD,Azure Retail Prices API,2025-12-18T04:46:08.033826 +AZURE,qatarcentral,Standard_E96s_v5,reserved_3y,NA,2.628463,USD,Azure Retail Prices API,2025-12-18T04:46:08.033831 +AZURE,qatarcentral,Standard_E96s_v5,spot,NA,1.312819,USD,Azure Retail Prices API,2025-12-18T04:46:06.974982 +AZURE,qatarcentral,Standard_EC16ads_v6,on_demand,NA,1.43,USD,Azure Retail Prices API,2025-12-18T04:46:06.975407 +AZURE,qatarcentral,Standard_EC16ads_v6,reserved_1y,NA,0.84395,USD,Azure Retail Prices API,2025-12-18T04:46:08.033678 +AZURE,qatarcentral,Standard_EC16ads_v6,reserved_3y,NA,0.543569,USD,Azure Retail Prices API,2025-12-18T04:46:08.033683 +AZURE,qatarcentral,Standard_EC16ads_v6,spot,NA,0.264264,USD,Azure Retail Prices API,2025-12-18T04:46:06.976372 +AZURE,qatarcentral,Standard_EC16as_v6,on_demand,NA,1.176,USD,Azure Retail Prices API,2025-12-18T04:46:06.976027 +AZURE,qatarcentral,Standard_EC16as_v6,reserved_1y,NA,0.693836,USD,Azure Retail Prices API,2025-12-18T04:46:08.034317 +AZURE,qatarcentral,Standard_EC16as_v6,reserved_3y,NA,0.44688,USD,Azure Retail Prices API,2025-12-18T04:46:08.034322 +AZURE,qatarcentral,Standard_EC16as_v6,spot,NA,0.217325,USD,Azure Retail Prices API,2025-12-18T04:46:06.974119 +AZURE,qatarcentral,Standard_EC2ads_v6,on_demand,NA,0.179,USD,Azure Retail Prices API,2025-12-18T04:46:06.975684 +AZURE,qatarcentral,Standard_EC2ads_v6,reserved_1y,NA,0.105479,USD,Azure Retail Prices API,2025-12-18T04:46:08.033993 +AZURE,qatarcentral,Standard_EC2ads_v6,reserved_3y,NA,0.06796,USD,Azure Retail Prices API,2025-12-18T04:46:08.033999 +AZURE,qatarcentral,Standard_EC2ads_v6,spot,NA,0.033079,USD,Azure Retail Prices API,2025-12-18T04:46:06.975769 +AZURE,qatarcentral,Standard_EC2as_v6,on_demand,NA,0.147,USD,Azure Retail Prices API,2025-12-18T04:46:06.974431 +AZURE,qatarcentral,Standard_EC2as_v6,reserved_1y,NA,0.086758,USD,Azure Retail Prices API,2025-12-18T04:46:08.032928 +AZURE,qatarcentral,Standard_EC2as_v6,reserved_3y,NA,0.05586,USD,Azure Retail Prices API,2025-12-18T04:46:08.032934 +AZURE,qatarcentral,Standard_EC2as_v6,spot,NA,0.027166,USD,Azure Retail Prices API,2025-12-18T04:46:06.974519 +AZURE,qatarcentral,Standard_EC32ads_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:46:06.976086 +AZURE,qatarcentral,Standard_EC32ads_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:46:08.034369 +AZURE,qatarcentral,Standard_EC32ads_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:46:08.034376 +AZURE,qatarcentral,Standard_EC32ads_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:46:06.973771 +AZURE,qatarcentral,Standard_EC32as_v6,on_demand,NA,2.352,USD,Azure Retail Prices API,2025-12-18T04:46:06.975842 +AZURE,qatarcentral,Standard_EC32as_v6,reserved_1y,NA,1.387671,USD,Azure Retail Prices API,2025-12-18T04:46:08.034175 +AZURE,qatarcentral,Standard_EC32as_v6,reserved_3y,NA,0.89376,USD,Azure Retail Prices API,2025-12-18T04:46:08.034180 +AZURE,qatarcentral,Standard_EC32as_v6,spot,NA,0.43465,USD,Azure Retail Prices API,2025-12-18T04:46:06.974524 +AZURE,qatarcentral,Standard_EC48ads_v6,on_demand,NA,4.291,USD,Azure Retail Prices API,2025-12-18T04:46:06.975955 +AZURE,qatarcentral,Standard_EC48ads_v6,reserved_1y,NA,2.531849,USD,Azure Retail Prices API,2025-12-18T04:46:08.034272 +AZURE,qatarcentral,Standard_EC48ads_v6,reserved_3y,NA,1.63067,USD,Azure Retail Prices API,2025-12-18T04:46:08.034278 +AZURE,qatarcentral,Standard_EC48ads_v6,spot,NA,0.792977,USD,Azure Retail Prices API,2025-12-18T04:46:06.976306 +AZURE,qatarcentral,Standard_EC48as_v6,on_demand,NA,3.528,USD,Azure Retail Prices API,2025-12-18T04:46:06.974919 +AZURE,qatarcentral,Standard_EC48as_v6,reserved_1y,NA,2.081507,USD,Azure Retail Prices API,2025-12-18T04:46:08.033464 +AZURE,qatarcentral,Standard_EC48as_v6,reserved_3y,NA,1.340639,USD,Azure Retail Prices API,2025-12-18T04:46:08.033469 +AZURE,qatarcentral,Standard_EC48as_v6,spot,NA,0.651974,USD,Azure Retail Prices API,2025-12-18T04:46:06.974158 +AZURE,qatarcentral,Standard_EC4ads_v6,on_demand,NA,0.358,USD,Azure Retail Prices API,2025-12-18T04:46:06.975949 +AZURE,qatarcentral,Standard_EC4ads_v6,reserved_1y,NA,0.210959,USD,Azure Retail Prices API,2025-12-18T04:46:08.034262 +AZURE,qatarcentral,Standard_EC4ads_v6,reserved_3y,NA,0.135883,USD,Azure Retail Prices API,2025-12-18T04:46:08.034267 +AZURE,qatarcentral,Standard_EC4ads_v6,spot,NA,0.066158,USD,Azure Retail Prices API,2025-12-18T04:46:06.976139 +AZURE,qatarcentral,Standard_EC4as_v6,on_demand,NA,0.294,USD,Azure Retail Prices API,2025-12-18T04:46:06.975285 +AZURE,qatarcentral,Standard_EC4as_v6,reserved_1y,NA,0.173516,USD,Azure Retail Prices API,2025-12-18T04:46:08.033549 +AZURE,qatarcentral,Standard_EC4as_v6,reserved_3y,NA,0.11172,USD,Azure Retail Prices API,2025-12-18T04:46:08.033554 +AZURE,qatarcentral,Standard_EC4as_v6,spot,NA,0.054331,USD,Azure Retail Prices API,2025-12-18T04:46:06.974574 +AZURE,qatarcentral,Standard_EC64ads_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:46:06.974691 +AZURE,qatarcentral,Standard_EC64ads_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:46:08.033283 +AZURE,qatarcentral,Standard_EC64ads_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:46:08.033290 +AZURE,qatarcentral,Standard_EC64ads_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:46:06.974601 +AZURE,qatarcentral,Standard_EC64as_v6,on_demand,NA,4.704,USD,Azure Retail Prices API,2025-12-18T04:46:06.976150 +AZURE,qatarcentral,Standard_EC64as_v6,reserved_1y,NA,2.775342,USD,Azure Retail Prices API,2025-12-18T04:46:08.034443 +AZURE,qatarcentral,Standard_EC64as_v6,reserved_3y,NA,1.787519,USD,Azure Retail Prices API,2025-12-18T04:46:08.034450 +AZURE,qatarcentral,Standard_EC64as_v6,spot,NA,0.869299,USD,Azure Retail Prices API,2025-12-18T04:46:06.976346 +AZURE,qatarcentral,Standard_EC8ads_v6,on_demand,NA,0.715,USD,Azure Retail Prices API,2025-12-18T04:46:06.976056 +AZURE,qatarcentral,Standard_EC8ads_v6,reserved_1y,NA,0.421918,USD,Azure Retail Prices API,2025-12-18T04:46:08.034327 +AZURE,qatarcentral,Standard_EC8ads_v6,reserved_3y,NA,0.271766,USD,Azure Retail Prices API,2025-12-18T04:46:08.034332 +AZURE,qatarcentral,Standard_EC8ads_v6,spot,NA,0.132132,USD,Azure Retail Prices API,2025-12-18T04:46:06.976039 +AZURE,qatarcentral,Standard_EC8as_v6,on_demand,NA,0.588,USD,Azure Retail Prices API,2025-12-18T04:46:06.975447 +AZURE,qatarcentral,Standard_EC8as_v6,reserved_1y,NA,0.346918,USD,Azure Retail Prices API,2025-12-18T04:46:08.033800 +AZURE,qatarcentral,Standard_EC8as_v6,reserved_3y,NA,0.22344,USD,Azure Retail Prices API,2025-12-18T04:46:08.033804 +AZURE,qatarcentral,Standard_EC8as_v6,spot,NA,0.108662,USD,Azure Retail Prices API,2025-12-18T04:46:06.974851 +AZURE,qatarcentral,Standard_EC96ads_v6,on_demand,NA,8.582,USD,Azure Retail Prices API,2025-12-18T04:46:06.976331 +AZURE,qatarcentral,Standard_EC96ads_v6,reserved_1y,NA,5.063584,USD,Azure Retail Prices API,2025-12-18T04:46:08.034624 +AZURE,qatarcentral,Standard_EC96ads_v6,reserved_3y,NA,3.261301,USD,Azure Retail Prices API,2025-12-18T04:46:08.034630 +AZURE,qatarcentral,Standard_EC96ads_v6,spot,NA,1.585954,USD,Azure Retail Prices API,2025-12-18T04:46:06.973787 +AZURE,qatarcentral,Standard_EC96as_v6,on_demand,NA,7.056,USD,Azure Retail Prices API,2025-12-18T04:46:06.976244 +AZURE,qatarcentral,Standard_EC96as_v6,reserved_1y,NA,4.163014,USD,Azure Retail Prices API,2025-12-18T04:46:08.034540 +AZURE,qatarcentral,Standard_EC96as_v6,reserved_3y,NA,2.681279,USD,Azure Retail Prices API,2025-12-18T04:46:08.034545 +AZURE,qatarcentral,Standard_EC96as_v6,spot,NA,1.303949,USD,Azure Retail Prices API,2025-12-18T04:46:06.974885 +AZURE,qatarcentral,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379568 +AZURE,qatarcentral,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379576 +AZURE,qatarcentral,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379581 +AZURE,qatarcentral,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379572 +AZURE,qatarcentral,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381874 +AZURE,qatarcentral,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381883 +AZURE,qatarcentral,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381887 +AZURE,qatarcentral,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381878 +AZURE,qatarcentral,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384609 +AZURE,qatarcentral,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384617 +AZURE,qatarcentral,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384622 +AZURE,qatarcentral,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384613 +AZURE,qatarcentral,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385436 +AZURE,qatarcentral,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385445 +AZURE,qatarcentral,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385449 +AZURE,qatarcentral,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385440 +AZURE,qatarcentral,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378024 +AZURE,qatarcentral,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378038 +AZURE,qatarcentral,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378042 +AZURE,qatarcentral,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378034 +AZURE,qatarcentral,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386195 +AZURE,qatarcentral,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386203 +AZURE,qatarcentral,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386207 +AZURE,qatarcentral,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386199 +AZURE,qatarcentral,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380334 +AZURE,qatarcentral,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380342 +AZURE,qatarcentral,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380347 +AZURE,qatarcentral,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380338 +AZURE,qatarcentral,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382942 +AZURE,qatarcentral,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382951 +AZURE,qatarcentral,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382955 +AZURE,qatarcentral,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382946 +AZURE,qatarcentral,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386964 +AZURE,qatarcentral,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386974 +AZURE,qatarcentral,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386978 +AZURE,qatarcentral,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386970 +AZURE,qatarcentral,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387786 +AZURE,qatarcentral,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388158 +AZURE,qatarcentral,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388179 +AZURE,qatarcentral,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387793 +AZURE,qatarcentral,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378749 +AZURE,qatarcentral,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378757 +AZURE,qatarcentral,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378761 +AZURE,qatarcentral,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378753 +AZURE,qatarcentral,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381053 +AZURE,qatarcentral,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381061 +AZURE,qatarcentral,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381065 +AZURE,qatarcentral,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381057 +AZURE,qatarcentral,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383771 +AZURE,qatarcentral,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383779 +AZURE,qatarcentral,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383783 +AZURE,qatarcentral,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383775 +AZURE,qatarcentral,Standard_L16as_v3,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:46:06.974454 +AZURE,qatarcentral,Standard_L16as_v3,reserved_1y,NA,0.967694,USD,Azure Retail Prices API,2025-12-18T04:46:08.032983 +AZURE,qatarcentral,Standard_L16as_v3,reserved_3y,NA,0.635046,USD,Azure Retail Prices API,2025-12-18T04:46:08.032988 +AZURE,qatarcentral,Standard_L16as_v3,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:46:06.974925 +AZURE,qatarcentral,Standard_L16s_v3,on_demand,NA,1.688,USD,Azure Retail Prices API,2025-12-18T04:46:06.975536 +AZURE,qatarcentral,Standard_L16s_v3,reserved_1y,NA,1.080365,USD,Azure Retail Prices API,2025-12-18T04:46:08.033873 +AZURE,qatarcentral,Standard_L16s_v3,reserved_3y,NA,0.708942,USD,Azure Retail Prices API,2025-12-18T04:46:08.033878 +AZURE,qatarcentral,Standard_L16s_v3,spot,NA,0.311267,USD,Azure Retail Prices API,2025-12-18T04:46:06.976264 +AZURE,qatarcentral,Standard_L32as_v3,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:46:06.974696 +AZURE,qatarcentral,Standard_L32as_v3,reserved_1y,NA,1.935388,USD,Azure Retail Prices API,2025-12-18T04:46:08.033295 +AZURE,qatarcentral,Standard_L32as_v3,reserved_3y,NA,1.270091,USD,Azure Retail Prices API,2025-12-18T04:46:08.033301 +AZURE,qatarcentral,Standard_L32as_v3,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:46:06.975662 +AZURE,qatarcentral,Standard_L32s_v3,on_demand,NA,3.376,USD,Azure Retail Prices API,2025-12-18T04:46:06.976351 +AZURE,qatarcentral,Standard_L32s_v3,reserved_1y,NA,2.160616,USD,Azure Retail Prices API,2025-12-18T04:46:08.034659 +AZURE,qatarcentral,Standard_L32s_v3,reserved_3y,NA,1.417922,USD,Azure Retail Prices API,2025-12-18T04:46:08.034664 +AZURE,qatarcentral,Standard_L32s_v3,spot,NA,0.622534,USD,Azure Retail Prices API,2025-12-18T04:46:06.975498 +AZURE,qatarcentral,Standard_L48as_v3,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:46:06.974179 +AZURE,qatarcentral,Standard_L48as_v3,reserved_1y,NA,2.903082,USD,Azure Retail Prices API,2025-12-18T04:46:08.032635 +AZURE,qatarcentral,Standard_L48as_v3,reserved_3y,NA,1.905137,USD,Azure Retail Prices API,2025-12-18T04:46:08.032640 +AZURE,qatarcentral,Standard_L48as_v3,spot,NA,0.838253,USD,Azure Retail Prices API,2025-12-18T04:46:06.976050 +AZURE,qatarcentral,Standard_L48s_v3,on_demand,NA,5.064,USD,Azure Retail Prices API,2025-12-18T04:46:06.974206 +AZURE,qatarcentral,Standard_L48s_v3,reserved_1y,NA,3.240982,USD,Azure Retail Prices API,2025-12-18T04:46:08.032677 +AZURE,qatarcentral,Standard_L48s_v3,reserved_3y,NA,2.126865,USD,Azure Retail Prices API,2025-12-18T04:46:08.032683 +AZURE,qatarcentral,Standard_L48s_v3,spot,NA,0.933802,USD,Azure Retail Prices API,2025-12-18T04:46:06.974320 +AZURE,qatarcentral,Standard_L64as_v3,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:46:06.974675 +AZURE,qatarcentral,Standard_L64as_v3,reserved_1y,NA,3.870776,USD,Azure Retail Prices API,2025-12-18T04:46:08.033263 +AZURE,qatarcentral,Standard_L64as_v3,reserved_3y,NA,2.540145,USD,Azure Retail Prices API,2025-12-18T04:46:08.033268 +AZURE,qatarcentral,Standard_L64as_v3,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:46:06.974093 +AZURE,qatarcentral,Standard_L64s_v3,on_demand,NA,6.752,USD,Azure Retail Prices API,2025-12-18T04:46:06.974288 +AZURE,qatarcentral,Standard_L64s_v3,reserved_1y,NA,4.321233,USD,Azure Retail Prices API,2025-12-18T04:46:08.032760 +AZURE,qatarcentral,Standard_L64s_v3,reserved_3y,NA,2.835845,USD,Azure Retail Prices API,2025-12-18T04:46:08.032766 +AZURE,qatarcentral,Standard_L64s_v3,spot,NA,1.245069,USD,Azure Retail Prices API,2025-12-18T04:46:06.975885 +AZURE,qatarcentral,Standard_L80as_v3,on_demand,NA,7.56,USD,Azure Retail Prices API,2025-12-18T04:46:06.974294 +AZURE,qatarcentral,Standard_L80as_v3,reserved_1y,NA,4.838356,USD,Azure Retail Prices API,2025-12-18T04:46:08.032771 +AZURE,qatarcentral,Standard_L80as_v3,reserved_3y,NA,3.17519,USD,Azure Retail Prices API,2025-12-18T04:46:08.032776 +AZURE,qatarcentral,Standard_L80as_v3,spot,NA,1.397088,USD,Azure Retail Prices API,2025-12-18T04:46:06.973995 +AZURE,qatarcentral,Standard_L80s_v3,on_demand,NA,8.44,USD,Azure Retail Prices API,2025-12-18T04:46:06.974340 +AZURE,qatarcentral,Standard_L80s_v3,reserved_1y,NA,5.401598,USD,Azure Retail Prices API,2025-12-18T04:46:08.032812 +AZURE,qatarcentral,Standard_L80s_v3,reserved_3y,NA,3.544787,USD,Azure Retail Prices API,2025-12-18T04:46:08.032816 +AZURE,qatarcentral,Standard_L80s_v3,spot,NA,1.556336,USD,Azure Retail Prices API,2025-12-18T04:46:06.973530 +AZURE,qatarcentral,Standard_L8as_v3,on_demand,NA,0.756,USD,Azure Retail Prices API,2025-12-18T04:46:06.974657 +AZURE,qatarcentral,Standard_L8as_v3,reserved_1y,NA,0.48379,USD,Azure Retail Prices API,2025-12-18T04:46:08.033232 +AZURE,qatarcentral,Standard_L8as_v3,reserved_3y,NA,0.317504,USD,Azure Retail Prices API,2025-12-18T04:46:08.033237 +AZURE,qatarcentral,Standard_L8as_v3,spot,NA,0.139709,USD,Azure Retail Prices API,2025-12-18T04:46:06.974065 +AZURE,qatarcentral,Standard_L8s_v3,on_demand,NA,0.844,USD,Azure Retail Prices API,2025-12-18T04:46:06.974238 +AZURE,qatarcentral,Standard_L8s_v3,reserved_1y,NA,0.540183,USD,Azure Retail Prices API,2025-12-18T04:46:08.032721 +AZURE,qatarcentral,Standard_L8s_v3,reserved_3y,NA,0.35449,USD,Azure Retail Prices API,2025-12-18T04:46:08.032726 +AZURE,qatarcentral,Standard_L8s_v3,spot,NA,0.155634,USD,Azure Retail Prices API,2025-12-18T04:46:06.975973 +AZURE,qatarcentral,Standard_NC12s_v3,on_demand,NA,8.411,USD,Azure Retail Prices API,2025-12-18T04:46:06.973765 +AZURE,qatarcentral,Standard_NC12s_v3,spot,NA,1.554353,USD,Azure Retail Prices API,2025-12-18T04:46:06.974931 +AZURE,qatarcentral,Standard_NC24s_v3,on_demand,NA,16.821,USD,Azure Retail Prices API,2025-12-18T04:46:06.974136 +AZURE,qatarcentral,Standard_NC24s_v3,spot,NA,3.108521,USD,Azure Retail Prices API,2025-12-18T04:46:06.975486 +AZURE,qatarcentral,Standard_NC6s_v3,on_demand,NA,4.205,USD,Azure Retail Prices API,2025-12-18T04:46:06.975419 +AZURE,qatarcentral,Standard_NC6s_v3,spot,NA,0.777084,USD,Azure Retail Prices API,2025-12-18T04:46:06.974114 +AZURE,qatarcentral,Standard_NV36adms_A10_v5,on_demand,NA,6.464,USD,Azure Retail Prices API,2025-12-18T04:46:06.974459 +AZURE,qatarcentral,Standard_NV36adms_A10_v5,reserved_1y,NA,4.136758,USD,Azure Retail Prices API,2025-12-18T04:46:08.033004 +AZURE,qatarcentral,Standard_NV36adms_A10_v5,reserved_3y,NA,2.843988,USD,Azure Retail Prices API,2025-12-18T04:46:08.033009 +AZURE,qatarcentral,Standard_NV36adms_A10_v5,spot,NA,1.194547,USD,Azure Retail Prices API,2025-12-18T04:46:06.976016 +AZURE,qatarcentral,Standard_NV36ads_A10_v5,on_demand,NA,4.576,USD,Azure Retail Prices API,2025-12-18T04:46:06.975329 +AZURE,qatarcentral,Standard_NV36ads_A10_v5,reserved_1y,NA,2.928653,USD,Azure Retail Prices API,2025-12-18T04:46:08.033601 +AZURE,qatarcentral,Standard_NV36ads_A10_v5,reserved_3y,NA,2.013432,USD,Azure Retail Prices API,2025-12-18T04:46:08.033606 +AZURE,qatarcentral,Standard_NV36ads_A10_v5,spot,NA,0.845645,USD,Azure Retail Prices API,2025-12-18T04:46:06.975021 +AZURE,qatarcentral,Standard_NV72ads_A10_v5,on_demand,NA,9.324,USD,Azure Retail Prices API,2025-12-18T04:46:06.974104 +AZURE,qatarcentral,Standard_NV72ads_A10_v5,reserved_1y,NA,5.967123,USD,Azure Retail Prices API,2025-12-18T04:46:08.032582 +AZURE,qatarcentral,Standard_NV72ads_A10_v5,reserved_3y,NA,4.102397,USD,Azure Retail Prices API,2025-12-18T04:46:08.032587 +AZURE,qatarcentral,Standard_NV72ads_A10_v5,spot,NA,1.723075,USD,Azure Retail Prices API,2025-12-18T04:46:06.974352 +AZURE,southafricanorth,Standard_D128ds_v6,on_demand,NA,10.605,USD,Azure Retail Prices API,2025-12-18T04:46:59.545561 +AZURE,southafricanorth,Standard_D128ds_v6,reserved_1y,NA,6.575,USD,Azure Retail Prices API,2025-12-18T04:47:00.772110 +AZURE,southafricanorth,Standard_D128ds_v6,reserved_3y,NA,4.135883,USD,Azure Retail Prices API,2025-12-18T04:47:00.772116 +AZURE,southafricanorth,Standard_D128ds_v6,spot,NA,1.959804,USD,Azure Retail Prices API,2025-12-18T04:46:59.545686 +AZURE,southafricanorth,Standard_D12_v2,on_demand,NA,0.46375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488740 +AZURE,southafricanorth,Standard_D12_v2,reserved_1y,NA,0.27825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488750 +AZURE,southafricanorth,Standard_D12_v2,reserved_3y,NA,0.1855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488755 +AZURE,southafricanorth,Standard_D12_v2,spot,NA,0.139125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488746 +AZURE,southafricanorth,Standard_D13_v2,on_demand,NA,0.92625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489554 +AZURE,southafricanorth,Standard_D13_v2,reserved_1y,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489562 +AZURE,southafricanorth,Standard_D13_v2,reserved_3y,NA,0.3705,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489566 +AZURE,southafricanorth,Standard_D13_v2,spot,NA,0.277875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489558 +AZURE,southafricanorth,Standard_D14_v2,on_demand,NA,1.8525,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490603 +AZURE,southafricanorth,Standard_D14_v2,reserved_1y,NA,1.1115,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490611 +AZURE,southafricanorth,Standard_D14_v2,reserved_3y,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490615 +AZURE,southafricanorth,Standard_D14_v2,spot,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490607 +AZURE,southafricanorth,Standard_D15_v2,on_demand,NA,2.31625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491354 +AZURE,southafricanorth,Standard_D15_v2,reserved_1y,NA,1.38975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491362 +AZURE,southafricanorth,Standard_D15_v2,reserved_3y,NA,0.9265,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491366 +AZURE,southafricanorth,Standard_D15_v2,spot,NA,0.694875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491358 +AZURE,southafricanorth,Standard_D16_v3,on_demand,NA,1.016,USD,Azure Retail Prices API,2025-12-18T04:46:59.546697 +AZURE,southafricanorth,Standard_D16_v3,reserved_1y,NA,0.581621,USD,Azure Retail Prices API,2025-12-18T04:47:00.774117 +AZURE,southafricanorth,Standard_D16_v3,reserved_3y,NA,0.374391,USD,Azure Retail Prices API,2025-12-18T04:47:00.774122 +AZURE,southafricanorth,Standard_D16_v3,spot,NA,0.187757,USD,Azure Retail Prices API,2025-12-18T04:46:59.545877 +AZURE,southafricanorth,Standard_D16a_v4,on_demand,NA,1.016,USD,Azure Retail Prices API,2025-12-18T04:46:59.545853 +AZURE,southafricanorth,Standard_D16a_v4,reserved_1y,NA,0.599429,USD,Azure Retail Prices API,2025-12-18T04:47:00.772557 +AZURE,southafricanorth,Standard_D16a_v4,reserved_3y,NA,0.386073,USD,Azure Retail Prices API,2025-12-18T04:47:00.772565 +AZURE,southafricanorth,Standard_D16a_v4,spot,NA,0.187757,USD,Azure Retail Prices API,2025-12-18T04:46:59.545697 +AZURE,southafricanorth,Standard_D16ads_v5,on_demand,NA,1.836,USD,Azure Retail Prices API,2025-12-18T04:46:59.546604 +AZURE,southafricanorth,Standard_D16ads_v5,reserved_1y,NA,0.648973,USD,Azure Retail Prices API,2025-12-18T04:47:00.774107 +AZURE,southafricanorth,Standard_D16ads_v5,reserved_3y,NA,0.417998,USD,Azure Retail Prices API,2025-12-18T04:47:00.774112 +AZURE,southafricanorth,Standard_D16ads_v5,spot,NA,0.20328,USD,Azure Retail Prices API,2025-12-18T04:46:59.545801 +AZURE,southafricanorth,Standard_D16ads_v6,on_demand,NA,1.221,USD,Azure Retail Prices API,2025-12-18T04:46:59.545905 +AZURE,southafricanorth,Standard_D16ads_v6,reserved_1y,NA,0.72032,USD,Azure Retail Prices API,2025-12-18T04:47:00.772707 +AZURE,southafricanorth,Standard_D16ads_v6,reserved_3y,NA,0.463889,USD,Azure Retail Prices API,2025-12-18T04:47:00.772711 +AZURE,southafricanorth,Standard_D16ads_v6,spot,NA,0.225641,USD,Azure Retail Prices API,2025-12-18T04:46:59.546596 +AZURE,southafricanorth,Standard_D16as_v4,on_demand,NA,1.016,USD,Azure Retail Prices API,2025-12-18T04:46:59.545748 +AZURE,southafricanorth,Standard_D16as_v4,reserved_1y,NA,0.599429,USD,Azure Retail Prices API,2025-12-18T04:47:00.772409 +AZURE,southafricanorth,Standard_D16as_v4,reserved_3y,NA,0.386073,USD,Azure Retail Prices API,2025-12-18T04:47:00.772414 +AZURE,southafricanorth,Standard_D16as_v4,spot,NA,0.187757,USD,Azure Retail Prices API,2025-12-18T04:46:59.546684 +AZURE,southafricanorth,Standard_D16as_v5,on_demand,NA,0.916,USD,Azure Retail Prices API,2025-12-18T04:46:59.545782 +AZURE,southafricanorth,Standard_D16as_v5,reserved_1y,NA,0.540411,USD,Azure Retail Prices API,2025-12-18T04:47:00.772437 +AZURE,southafricanorth,Standard_D16as_v5,reserved_3y,NA,0.348097,USD,Azure Retail Prices API,2025-12-18T04:47:00.772443 +AZURE,southafricanorth,Standard_D16as_v5,spot,NA,0.169277,USD,Azure Retail Prices API,2025-12-18T04:46:59.546407 +AZURE,southafricanorth,Standard_D16d_v4,on_demand,NA,1.2,USD,Azure Retail Prices API,2025-12-18T04:46:59.545588 +AZURE,southafricanorth,Standard_D16d_v4,reserved_1y,NA,0.705594,USD,Azure Retail Prices API,2025-12-18T04:47:00.772157 +AZURE,southafricanorth,Standard_D16d_v4,reserved_3y,NA,0.451218,USD,Azure Retail Prices API,2025-12-18T04:47:00.772162 +AZURE,southafricanorth,Standard_D16d_v4,spot,NA,0.22176,USD,Azure Retail Prices API,2025-12-18T04:46:59.546695 +AZURE,southafricanorth,Standard_D16ds_v4,on_demand,NA,1.2,USD,Azure Retail Prices API,2025-12-18T04:46:59.545987 +AZURE,southafricanorth,Standard_D16ds_v4,reserved_1y,NA,0.705594,USD,Azure Retail Prices API,2025-12-18T04:47:00.772849 +AZURE,southafricanorth,Standard_D16ds_v4,reserved_3y,NA,0.451218,USD,Azure Retail Prices API,2025-12-18T04:47:00.772854 +AZURE,southafricanorth,Standard_D16ds_v4,spot,NA,0.22176,USD,Azure Retail Prices API,2025-12-18T04:46:59.545816 +AZURE,southafricanorth,Standard_D16ds_v5,on_demand,NA,1.2,USD,Azure Retail Prices API,2025-12-18T04:46:59.545614 +AZURE,southafricanorth,Standard_D16ds_v5,reserved_1y,NA,0.707991,USD,Azure Retail Prices API,2025-12-18T04:47:00.772190 +AZURE,southafricanorth,Standard_D16ds_v5,reserved_3y,NA,0.456012,USD,Azure Retail Prices API,2025-12-18T04:47:00.772196 +AZURE,southafricanorth,Standard_D16ds_v5,spot,NA,0.22176,USD,Azure Retail Prices API,2025-12-18T04:46:59.546635 +AZURE,southafricanorth,Standard_D16ds_v6,on_demand,NA,1.326,USD,Azure Retail Prices API,2025-12-18T04:46:59.546903 +AZURE,southafricanorth,Standard_D16ds_v6,reserved_1y,NA,0.821918,USD,Azure Retail Prices API,2025-12-18T04:47:00.774418 +AZURE,southafricanorth,Standard_D16ds_v6,reserved_3y,NA,0.516971,USD,Azure Retail Prices API,2025-12-18T04:47:00.774425 +AZURE,southafricanorth,Standard_D16ds_v6,spot,NA,0.245045,USD,Azure Retail Prices API,2025-12-18T04:46:59.545779 +AZURE,southafricanorth,Standard_D16pds_v6,on_demand,NA,1.03,USD,Azure Retail Prices API,2025-12-18T04:46:59.545645 +AZURE,southafricanorth,Standard_D16pds_v6,reserved_1y,NA,0.607991,USD,Azure Retail Prices API,2025-12-18T04:47:00.772235 +AZURE,southafricanorth,Standard_D16pds_v6,reserved_3y,NA,0.391553,USD,Azure Retail Prices API,2025-12-18T04:47:00.772241 +AZURE,southafricanorth,Standard_D16pds_v6,spot,NA,0.190344,USD,Azure Retail Prices API,2025-12-18T04:46:59.546837 +AZURE,southafricanorth,Standard_D16ps_v6,on_demand,NA,0.787,USD,Azure Retail Prices API,2025-12-18T04:46:59.546897 +AZURE,southafricanorth,Standard_D16ps_v6,reserved_1y,NA,0.464498,USD,Azure Retail Prices API,2025-12-18T04:47:00.774405 +AZURE,southafricanorth,Standard_D16ps_v6,reserved_3y,NA,0.299125,USD,Azure Retail Prices API,2025-12-18T04:47:00.774411 +AZURE,southafricanorth,Standard_D16ps_v6,spot,NA,0.145438,USD,Azure Retail Prices API,2025-12-18T04:46:59.545468 +AZURE,southafricanorth,Standard_D16s_v3,on_demand,NA,1.016,USD,Azure Retail Prices API,2025-12-18T04:46:59.546005 +AZURE,southafricanorth,Standard_D16s_v3,reserved_1y,NA,0.581621,USD,Azure Retail Prices API,2025-12-18T04:47:00.772889 +AZURE,southafricanorth,Standard_D16s_v3,reserved_3y,NA,0.374391,USD,Azure Retail Prices API,2025-12-18T04:47:00.772894 +AZURE,southafricanorth,Standard_D16s_v3,spot,NA,0.187757,USD,Azure Retail Prices API,2025-12-18T04:46:59.546250 +AZURE,southafricanorth,Standard_D16s_v4,on_demand,NA,1.016,USD,Azure Retail Prices API,2025-12-18T04:46:59.546894 +AZURE,southafricanorth,Standard_D16s_v4,reserved_1y,NA,0.597374,USD,Azure Retail Prices API,2025-12-18T04:47:00.774385 +AZURE,southafricanorth,Standard_D16s_v4,reserved_3y,NA,0.382002,USD,Azure Retail Prices API,2025-12-18T04:47:00.774390 +AZURE,southafricanorth,Standard_D16s_v4,spot,NA,0.187757,USD,Azure Retail Prices API,2025-12-18T04:46:59.546129 +AZURE,southafricanorth,Standard_D16s_v5,on_demand,NA,1.016,USD,Azure Retail Prices API,2025-12-18T04:46:59.546967 +AZURE,southafricanorth,Standard_D16s_v5,reserved_1y,NA,0.599429,USD,Azure Retail Prices API,2025-12-18T04:47:00.774549 +AZURE,southafricanorth,Standard_D16s_v5,reserved_3y,NA,0.375913,USD,Azure Retail Prices API,2025-12-18T04:47:00.774553 +AZURE,southafricanorth,Standard_D16s_v5,spot,NA,0.187757,USD,Azure Retail Prices API,2025-12-18T04:46:59.545662 +AZURE,southafricanorth,Standard_D2ads_v6,on_demand,NA,0.153,USD,Azure Retail Prices API,2025-12-18T04:46:59.546181 +AZURE,southafricanorth,Standard_D2ads_v6,reserved_1y,NA,0.090068,USD,Azure Retail Prices API,2025-12-18T04:47:00.773264 +AZURE,southafricanorth,Standard_D2ads_v6,reserved_3y,NA,0.057991,USD,Azure Retail Prices API,2025-12-18T04:47:00.773269 +AZURE,southafricanorth,Standard_D2ads_v6,spot,NA,0.028274,USD,Azure Retail Prices API,2025-12-18T04:46:59.546402 +AZURE,southafricanorth,Standard_D2ds_v6,on_demand,NA,0.166,USD,Azure Retail Prices API,2025-12-18T04:46:59.545979 +AZURE,southafricanorth,Standard_D2ds_v6,reserved_1y,NA,0.10274,USD,Azure Retail Prices API,2025-12-18T04:47:00.772838 +AZURE,southafricanorth,Standard_D2ds_v6,reserved_3y,NA,0.064612,USD,Azure Retail Prices API,2025-12-18T04:47:00.772843 +AZURE,southafricanorth,Standard_D2ds_v6,spot,NA,0.030677,USD,Azure Retail Prices API,2025-12-18T04:46:59.546630 +AZURE,southafricanorth,Standard_D32_v3,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.545886 +AZURE,southafricanorth,Standard_D32_v3,reserved_1y,NA,1.163242,USD,Azure Retail Prices API,2025-12-18T04:47:00.772665 +AZURE,southafricanorth,Standard_D32_v3,reserved_3y,NA,0.748744,USD,Azure Retail Prices API,2025-12-18T04:47:00.772669 +AZURE,southafricanorth,Standard_D32_v3,spot,NA,0.375514,USD,Azure Retail Prices API,2025-12-18T04:46:59.546132 +AZURE,southafricanorth,Standard_D32a_v4,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.545936 +AZURE,southafricanorth,Standard_D32a_v4,reserved_1y,NA,1.198858,USD,Azure Retail Prices API,2025-12-18T04:47:00.772778 +AZURE,southafricanorth,Standard_D32a_v4,reserved_3y,NA,0.772146,USD,Azure Retail Prices API,2025-12-18T04:47:00.772783 +AZURE,southafricanorth,Standard_D32a_v4,spot,NA,0.375514,USD,Azure Retail Prices API,2025-12-18T04:46:59.546486 +AZURE,southafricanorth,Standard_D32ads_v5,on_demand,NA,3.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.545674 +AZURE,southafricanorth,Standard_D32ads_v5,reserved_1y,NA,1.297945,USD,Azure Retail Prices API,2025-12-18T04:47:00.772573 +AZURE,southafricanorth,Standard_D32ads_v5,reserved_3y,NA,0.835997,USD,Azure Retail Prices API,2025-12-18T04:47:00.772580 +AZURE,southafricanorth,Standard_D32ads_v5,spot,NA,0.40656,USD,Azure Retail Prices API,2025-12-18T04:46:59.546239 +AZURE,southafricanorth,Standard_D32ads_v6,on_demand,NA,2.442,USD,Azure Retail Prices API,2025-12-18T04:46:59.545731 +AZURE,southafricanorth,Standard_D32ads_v6,reserved_1y,NA,1.440525,USD,Azure Retail Prices API,2025-12-18T04:47:00.772355 +AZURE,southafricanorth,Standard_D32ads_v6,reserved_3y,NA,0.927816,USD,Azure Retail Prices API,2025-12-18T04:47:00.772361 +AZURE,southafricanorth,Standard_D32ads_v6,spot,NA,0.451282,USD,Azure Retail Prices API,2025-12-18T04:46:59.545982 +AZURE,southafricanorth,Standard_D32as_v4,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.545990 +AZURE,southafricanorth,Standard_D32as_v4,reserved_1y,NA,1.198858,USD,Azure Retail Prices API,2025-12-18T04:47:00.772859 +AZURE,southafricanorth,Standard_D32as_v4,reserved_3y,NA,0.772146,USD,Azure Retail Prices API,2025-12-18T04:47:00.772864 +AZURE,southafricanorth,Standard_D32as_v4,spot,NA,0.375514,USD,Azure Retail Prices API,2025-12-18T04:46:59.545605 +AZURE,southafricanorth,Standard_D32as_v5,on_demand,NA,1.832,USD,Azure Retail Prices API,2025-12-18T04:46:59.546135 +AZURE,southafricanorth,Standard_D32as_v5,reserved_1y,NA,1.080936,USD,Azure Retail Prices API,2025-12-18T04:47:00.773143 +AZURE,southafricanorth,Standard_D32as_v5,reserved_3y,NA,0.696157,USD,Azure Retail Prices API,2025-12-18T04:47:00.773148 +AZURE,southafricanorth,Standard_D32as_v5,spot,NA,0.338554,USD,Azure Retail Prices API,2025-12-18T04:46:59.545515 +AZURE,southafricanorth,Standard_D32d_v4,on_demand,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:46:59.546856 +AZURE,southafricanorth,Standard_D32d_v4,reserved_1y,NA,1.411187,USD,Azure Retail Prices API,2025-12-18T04:47:00.774306 +AZURE,southafricanorth,Standard_D32d_v4,reserved_3y,NA,0.902397,USD,Azure Retail Prices API,2025-12-18T04:47:00.774311 +AZURE,southafricanorth,Standard_D32d_v4,spot,NA,0.44352,USD,Azure Retail Prices API,2025-12-18T04:46:59.546657 +AZURE,southafricanorth,Standard_D32ds_v4,on_demand,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:46:59.545535 +AZURE,southafricanorth,Standard_D32ds_v4,reserved_1y,NA,1.411187,USD,Azure Retail Prices API,2025-12-18T04:47:00.772043 +AZURE,southafricanorth,Standard_D32ds_v4,reserved_3y,NA,0.902397,USD,Azure Retail Prices API,2025-12-18T04:47:00.772048 +AZURE,southafricanorth,Standard_D32ds_v4,spot,NA,0.44352,USD,Azure Retail Prices API,2025-12-18T04:46:59.546221 +AZURE,southafricanorth,Standard_D32ds_v5,on_demand,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:46:59.545457 +AZURE,southafricanorth,Standard_D32ds_v5,reserved_1y,NA,1.415982,USD,Azure Retail Prices API,2025-12-18T04:47:00.771918 +AZURE,southafricanorth,Standard_D32ds_v5,reserved_3y,NA,0.911986,USD,Azure Retail Prices API,2025-12-18T04:47:00.771923 +AZURE,southafricanorth,Standard_D32ds_v5,spot,NA,0.44352,USD,Azure Retail Prices API,2025-12-18T04:46:59.545944 +AZURE,southafricanorth,Standard_D32ds_v6,on_demand,NA,2.651,USD,Azure Retail Prices API,2025-12-18T04:46:59.545734 +AZURE,southafricanorth,Standard_D32ds_v6,reserved_1y,NA,1.643721,USD,Azure Retail Prices API,2025-12-18T04:47:00.772366 +AZURE,southafricanorth,Standard_D32ds_v6,reserved_3y,NA,1.03398,USD,Azure Retail Prices API,2025-12-18T04:47:00.772370 +AZURE,southafricanorth,Standard_D32ds_v6,spot,NA,0.489905,USD,Azure Retail Prices API,2025-12-18T04:46:59.545454 +AZURE,southafricanorth,Standard_D32pds_v6,on_demand,NA,2.061,USD,Azure Retail Prices API,2025-12-18T04:46:59.546271 +AZURE,southafricanorth,Standard_D32pds_v6,reserved_1y,NA,1.215868,USD,Azure Retail Prices API,2025-12-18T04:47:00.773462 +AZURE,southafricanorth,Standard_D32pds_v6,reserved_3y,NA,0.783105,USD,Azure Retail Prices API,2025-12-18T04:47:00.773466 +AZURE,southafricanorth,Standard_D32pds_v6,spot,NA,0.380873,USD,Azure Retail Prices API,2025-12-18T04:46:59.546091 +AZURE,southafricanorth,Standard_D32ps_v6,on_demand,NA,1.574,USD,Azure Retail Prices API,2025-12-18T04:46:59.545714 +AZURE,southafricanorth,Standard_D32ps_v6,reserved_1y,NA,0.928881,USD,Azure Retail Prices API,2025-12-18T04:47:00.772319 +AZURE,southafricanorth,Standard_D32ps_v6,reserved_3y,NA,0.598288,USD,Azure Retail Prices API,2025-12-18T04:47:00.772326 +AZURE,southafricanorth,Standard_D32ps_v6,spot,NA,0.290875,USD,Azure Retail Prices API,2025-12-18T04:46:59.546560 +AZURE,southafricanorth,Standard_D32s_v3,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.546969 +AZURE,southafricanorth,Standard_D32s_v3,reserved_1y,NA,1.163242,USD,Azure Retail Prices API,2025-12-18T04:47:00.774558 +AZURE,southafricanorth,Standard_D32s_v3,reserved_3y,NA,0.748744,USD,Azure Retail Prices API,2025-12-18T04:47:00.774562 +AZURE,southafricanorth,Standard_D32s_v3,spot,NA,0.375514,USD,Azure Retail Prices API,2025-12-18T04:46:59.546818 +AZURE,southafricanorth,Standard_D32s_v4,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.546464 +AZURE,southafricanorth,Standard_D32s_v4,reserved_1y,NA,1.194863,USD,Azure Retail Prices API,2025-12-18T04:47:00.773778 +AZURE,southafricanorth,Standard_D32s_v4,reserved_3y,NA,0.764041,USD,Azure Retail Prices API,2025-12-18T04:47:00.773795 +AZURE,southafricanorth,Standard_D32s_v4,spot,NA,0.375514,USD,Azure Retail Prices API,2025-12-18T04:46:59.546337 +AZURE,southafricanorth,Standard_D32s_v5,on_demand,NA,2.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.545866 +AZURE,southafricanorth,Standard_D32s_v5,reserved_1y,NA,1.198858,USD,Azure Retail Prices API,2025-12-18T04:47:00.772636 +AZURE,southafricanorth,Standard_D32s_v5,reserved_3y,NA,0.751826,USD,Azure Retail Prices API,2025-12-18T04:47:00.772643 +AZURE,southafricanorth,Standard_D32s_v5,spot,NA,0.375514,USD,Azure Retail Prices API,2025-12-18T04:46:59.546167 +AZURE,southafricanorth,Standard_D3_v2,on_demand,NA,0.36625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485855 +AZURE,southafricanorth,Standard_D3_v2,reserved_1y,NA,0.21975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485863 +AZURE,southafricanorth,Standard_D3_v2,reserved_3y,NA,0.1465,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485867 +AZURE,southafricanorth,Standard_D3_v2,spot,NA,0.109875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485859 +AZURE,southafricanorth,Standard_D48a_v4,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:46:59.545863 +AZURE,southafricanorth,Standard_D48a_v4,reserved_1y,NA,1.798288,USD,Azure Retail Prices API,2025-12-18T04:47:00.772620 +AZURE,southafricanorth,Standard_D48a_v4,reserved_3y,NA,1.158257,USD,Azure Retail Prices API,2025-12-18T04:47:00.772627 +AZURE,southafricanorth,Standard_D48a_v4,spot,NA,0.56327,USD,Azure Retail Prices API,2025-12-18T04:46:59.545503 +AZURE,southafricanorth,Standard_D48ads_v5,on_demand,NA,5.508,USD,Azure Retail Prices API,2025-12-18T04:46:59.546733 +AZURE,southafricanorth,Standard_D48ads_v5,reserved_1y,NA,1.947032,USD,Azure Retail Prices API,2025-12-18T04:47:00.774246 +AZURE,southafricanorth,Standard_D48ads_v5,reserved_3y,NA,1.253995,USD,Azure Retail Prices API,2025-12-18T04:47:00.774251 +AZURE,southafricanorth,Standard_D48ads_v5,spot,NA,0.60984,USD,Azure Retail Prices API,2025-12-18T04:46:59.546109 +AZURE,southafricanorth,Standard_D48ads_v6,on_demand,NA,3.662,USD,Azure Retail Prices API,2025-12-18T04:46:59.545832 +AZURE,southafricanorth,Standard_D48ads_v6,reserved_1y,NA,2.160845,USD,Azure Retail Prices API,2025-12-18T04:47:00.772526 +AZURE,southafricanorth,Standard_D48ads_v6,reserved_3y,NA,1.391705,USD,Azure Retail Prices API,2025-12-18T04:47:00.772534 +AZURE,southafricanorth,Standard_D48ads_v6,spot,NA,0.676738,USD,Azure Retail Prices API,2025-12-18T04:46:59.546435 +AZURE,southafricanorth,Standard_D48as_v4,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:46:59.545636 +AZURE,southafricanorth,Standard_D48as_v4,reserved_1y,NA,1.798288,USD,Azure Retail Prices API,2025-12-18T04:47:00.772224 +AZURE,southafricanorth,Standard_D48as_v4,reserved_3y,NA,1.158257,USD,Azure Retail Prices API,2025-12-18T04:47:00.772229 +AZURE,southafricanorth,Standard_D48as_v4,spot,NA,0.56327,USD,Azure Retail Prices API,2025-12-18T04:46:59.545889 +AZURE,southafricanorth,Standard_D48as_v5,on_demand,NA,2.748,USD,Azure Retail Prices API,2025-12-18T04:46:59.545667 +AZURE,southafricanorth,Standard_D48as_v5,reserved_1y,NA,1.621347,USD,Azure Retail Prices API,2025-12-18T04:47:00.772266 +AZURE,southafricanorth,Standard_D48as_v5,reserved_3y,NA,1.044254,USD,Azure Retail Prices API,2025-12-18T04:47:00.772271 +AZURE,southafricanorth,Standard_D48as_v5,spot,NA,0.50783,USD,Azure Retail Prices API,2025-12-18T04:46:59.546918 +AZURE,southafricanorth,Standard_D48d_v4,on_demand,NA,3.6,USD,Azure Retail Prices API,2025-12-18T04:46:59.545529 +AZURE,southafricanorth,Standard_D48d_v4,reserved_1y,NA,2.116781,USD,Azure Retail Prices API,2025-12-18T04:47:00.772021 +AZURE,southafricanorth,Standard_D48d_v4,reserved_3y,NA,1.353615,USD,Azure Retail Prices API,2025-12-18T04:47:00.772026 +AZURE,southafricanorth,Standard_D48d_v4,spot,NA,0.66528,USD,Azure Retail Prices API,2025-12-18T04:46:59.545524 +AZURE,southafricanorth,Standard_D48ds_v4,on_demand,NA,3.6,USD,Azure Retail Prices API,2025-12-18T04:46:59.546591 +AZURE,southafricanorth,Standard_D48ds_v4,reserved_1y,NA,2.116781,USD,Azure Retail Prices API,2025-12-18T04:47:00.774020 +AZURE,southafricanorth,Standard_D48ds_v4,reserved_3y,NA,1.353615,USD,Azure Retail Prices API,2025-12-18T04:47:00.774025 +AZURE,southafricanorth,Standard_D48ds_v4,spot,NA,0.66528,USD,Azure Retail Prices API,2025-12-18T04:46:59.545872 +AZURE,southafricanorth,Standard_D48ds_v5,on_demand,NA,3.6,USD,Azure Retail Prices API,2025-12-18T04:46:59.545654 +AZURE,southafricanorth,Standard_D48ds_v5,reserved_1y,NA,2.123973,USD,Azure Retail Prices API,2025-12-18T04:47:00.772256 +AZURE,southafricanorth,Standard_D48ds_v5,reserved_3y,NA,1.367998,USD,Azure Retail Prices API,2025-12-18T04:47:00.772261 +AZURE,southafricanorth,Standard_D48ds_v5,spot,NA,0.66528,USD,Azure Retail Prices API,2025-12-18T04:46:59.545810 +AZURE,southafricanorth,Standard_D48ds_v6,on_demand,NA,3.977,USD,Azure Retail Prices API,2025-12-18T04:46:59.546152 +AZURE,southafricanorth,Standard_D48ds_v6,reserved_1y,NA,2.465639,USD,Azure Retail Prices API,2025-12-18T04:47:00.773200 +AZURE,southafricanorth,Standard_D48ds_v6,reserved_3y,NA,1.550951,USD,Azure Retail Prices API,2025-12-18T04:47:00.773205 +AZURE,southafricanorth,Standard_D48ds_v6,spot,NA,0.73495,USD,Azure Retail Prices API,2025-12-18T04:46:59.546557 +AZURE,southafricanorth,Standard_D48pds_v6,on_demand,NA,3.091,USD,Azure Retail Prices API,2025-12-18T04:46:59.546164 +AZURE,southafricanorth,Standard_D48pds_v6,reserved_1y,NA,1.823858,USD,Azure Retail Prices API,2025-12-18T04:47:00.773230 +AZURE,southafricanorth,Standard_D48pds_v6,reserved_3y,NA,1.174658,USD,Azure Retail Prices API,2025-12-18T04:47:00.773234 +AZURE,southafricanorth,Standard_D48pds_v6,spot,NA,0.571217,USD,Azure Retail Prices API,2025-12-18T04:46:59.546495 +AZURE,southafricanorth,Standard_D48ps_v6,on_demand,NA,2.362,USD,Azure Retail Prices API,2025-12-18T04:46:59.545720 +AZURE,southafricanorth,Standard_D48ps_v6,reserved_1y,NA,1.393379,USD,Azure Retail Prices API,2025-12-18T04:47:00.772334 +AZURE,southafricanorth,Standard_D48ps_v6,reserved_3y,NA,0.897412,USD,Azure Retail Prices API,2025-12-18T04:47:00.772339 +AZURE,southafricanorth,Standard_D48ps_v6,spot,NA,0.436498,USD,Azure Retail Prices API,2025-12-18T04:46:59.546138 +AZURE,southafricanorth,Standard_D48s_v4,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:46:59.546972 +AZURE,southafricanorth,Standard_D48s_v4,reserved_1y,NA,1.792237,USD,Azure Retail Prices API,2025-12-18T04:47:00.774567 +AZURE,southafricanorth,Standard_D48s_v4,reserved_3y,NA,1.146043,USD,Azure Retail Prices API,2025-12-18T04:47:00.774572 +AZURE,southafricanorth,Standard_D48s_v4,spot,NA,0.56327,USD,Azure Retail Prices API,2025-12-18T04:46:59.545471 +AZURE,southafricanorth,Standard_D48s_v5,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:46:59.546176 +AZURE,southafricanorth,Standard_D48s_v5,reserved_1y,NA,1.798288,USD,Azure Retail Prices API,2025-12-18T04:47:00.773254 +AZURE,southafricanorth,Standard_D48s_v5,reserved_3y,NA,1.127778,USD,Azure Retail Prices API,2025-12-18T04:47:00.773259 +AZURE,southafricanorth,Standard_D48s_v5,spot,NA,0.56327,USD,Azure Retail Prices API,2025-12-18T04:46:59.546334 +AZURE,southafricanorth,Standard_D4_v2,on_demand,NA,0.73125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486733 +AZURE,southafricanorth,Standard_D4_v2,reserved_1y,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486745 +AZURE,southafricanorth,Standard_D4_v2,reserved_3y,NA,0.2925,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486752 +AZURE,southafricanorth,Standard_D4_v2,spot,NA,0.219375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486739 +AZURE,southafricanorth,Standard_D4a_v4,on_demand,NA,0.254,USD,Azure Retail Prices API,2025-12-18T04:46:59.546384 +AZURE,southafricanorth,Standard_D4a_v4,reserved_1y,NA,0.149886,USD,Azure Retail Prices API,2025-12-18T04:47:00.773657 +AZURE,southafricanorth,Standard_D4a_v4,reserved_3y,NA,0.096537,USD,Azure Retail Prices API,2025-12-18T04:47:00.773663 +AZURE,southafricanorth,Standard_D4a_v4,spot,NA,0.046939,USD,Azure Retail Prices API,2025-12-18T04:46:59.545742 +AZURE,southafricanorth,Standard_D4ads_v5,on_demand,NA,0.275,USD,Azure Retail Prices API,2025-12-18T04:46:59.545706 +AZURE,southafricanorth,Standard_D4ads_v5,reserved_1y,NA,0.162215,USD,Azure Retail Prices API,2025-12-18T04:47:00.772298 +AZURE,southafricanorth,Standard_D4ads_v5,reserved_3y,NA,0.10449,USD,Azure Retail Prices API,2025-12-18T04:47:00.772304 +AZURE,southafricanorth,Standard_D4ads_v5,spot,NA,0.05082,USD,Azure Retail Prices API,2025-12-18T04:46:59.546580 +AZURE,southafricanorth,Standard_D4ads_v6,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:46:59.546286 +AZURE,southafricanorth,Standard_D4ads_v6,reserved_1y,NA,0.180023,USD,Azure Retail Prices API,2025-12-18T04:47:00.773493 +AZURE,southafricanorth,Standard_D4ads_v6,reserved_3y,NA,0.115982,USD,Azure Retail Prices API,2025-12-18T04:47:00.773498 +AZURE,southafricanorth,Standard_D4ads_v6,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:46:59.546483 +AZURE,southafricanorth,Standard_D4as_v5,on_demand,NA,0.229,USD,Azure Retail Prices API,2025-12-18T04:46:59.545541 +AZURE,southafricanorth,Standard_D4as_v5,reserved_1y,NA,0.13516,USD,Azure Retail Prices API,2025-12-18T04:47:00.772054 +AZURE,southafricanorth,Standard_D4as_v5,reserved_3y,NA,0.087024,USD,Azure Retail Prices API,2025-12-18T04:47:00.772060 +AZURE,southafricanorth,Standard_D4as_v5,spot,NA,0.042319,USD,Azure Retail Prices API,2025-12-18T04:46:59.546283 +AZURE,southafricanorth,Standard_D4d_v4,on_demand,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:46:59.545556 +AZURE,southafricanorth,Standard_D4d_v4,reserved_1y,NA,0.17637,USD,Azure Retail Prices API,2025-12-18T04:47:00.772100 +AZURE,southafricanorth,Standard_D4d_v4,reserved_3y,NA,0.112785,USD,Azure Retail Prices API,2025-12-18T04:47:00.772105 +AZURE,southafricanorth,Standard_D4d_v4,spot,NA,0.05544,USD,Azure Retail Prices API,2025-12-18T04:46:59.545475 +AZURE,southafricanorth,Standard_D4ds_v4,on_demand,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:46:59.546872 +AZURE,southafricanorth,Standard_D4ds_v4,reserved_1y,NA,0.17637,USD,Azure Retail Prices API,2025-12-18T04:47:00.774316 +AZURE,southafricanorth,Standard_D4ds_v4,reserved_3y,NA,0.112785,USD,Azure Retail Prices API,2025-12-18T04:47:00.774321 +AZURE,southafricanorth,Standard_D4ds_v4,spot,NA,0.05544,USD,Azure Retail Prices API,2025-12-18T04:46:59.546390 +AZURE,southafricanorth,Standard_D4ds_v5,on_demand,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:46:59.545821 +AZURE,southafricanorth,Standard_D4ds_v5,reserved_1y,NA,0.177055,USD,Azure Retail Prices API,2025-12-18T04:47:00.772497 +AZURE,southafricanorth,Standard_D4ds_v5,reserved_3y,NA,0.114003,USD,Azure Retail Prices API,2025-12-18T04:47:00.772503 +AZURE,southafricanorth,Standard_D4ds_v5,spot,NA,0.05544,USD,Azure Retail Prices API,2025-12-18T04:46:59.545483 +AZURE,southafricanorth,Standard_D4ds_v6,on_demand,NA,0.331,USD,Azure Retail Prices API,2025-12-18T04:46:59.545460 +AZURE,southafricanorth,Standard_D4ds_v6,reserved_1y,NA,0.205479,USD,Azure Retail Prices API,2025-12-18T04:47:00.771928 +AZURE,southafricanorth,Standard_D4ds_v6,reserved_3y,NA,0.129262,USD,Azure Retail Prices API,2025-12-18T04:47:00.771934 +AZURE,southafricanorth,Standard_D4ds_v6,spot,NA,0.061169,USD,Azure Retail Prices API,2025-12-18T04:46:59.546574 +AZURE,southafricanorth,Standard_D4pds_v6,on_demand,NA,0.258,USD,Azure Retail Prices API,2025-12-18T04:46:59.546149 +AZURE,southafricanorth,Standard_D4pds_v6,reserved_1y,NA,0.151941,USD,Azure Retail Prices API,2025-12-18T04:47:00.773173 +AZURE,southafricanorth,Standard_D4pds_v6,reserved_3y,NA,0.097869,USD,Azure Retail Prices API,2025-12-18T04:47:00.773194 +AZURE,southafricanorth,Standard_D4pds_v6,spot,NA,0.047678,USD,Azure Retail Prices API,2025-12-18T04:46:59.546443 +AZURE,southafricanorth,Standard_D4ps_v6,on_demand,NA,0.197,USD,Azure Retail Prices API,2025-12-18T04:46:59.546016 +AZURE,southafricanorth,Standard_D4ps_v6,reserved_1y,NA,0.116096,USD,Azure Retail Prices API,2025-12-18T04:47:00.772910 +AZURE,southafricanorth,Standard_D4ps_v6,reserved_3y,NA,0.074772,USD,Azure Retail Prices API,2025-12-18T04:47:00.772915 +AZURE,southafricanorth,Standard_D4ps_v6,spot,NA,0.036406,USD,Azure Retail Prices API,2025-12-18T04:46:59.545917 +AZURE,southafricanorth,Standard_D4s_v3,on_demand,NA,0.254,USD,Azure Retail Prices API,2025-12-18T04:46:59.546599 +AZURE,southafricanorth,Standard_D4s_v3,reserved_1y,NA,0.145434,USD,Azure Retail Prices API,2025-12-18T04:47:00.774040 +AZURE,southafricanorth,Standard_D4s_v3,reserved_3y,NA,0.093607,USD,Azure Retail Prices API,2025-12-18T04:47:00.774045 +AZURE,southafricanorth,Standard_D4s_v3,spot,NA,0.046939,USD,Azure Retail Prices API,2025-12-18T04:46:59.546106 +AZURE,southafricanorth,Standard_D4s_v4,on_demand,NA,0.254,USD,Azure Retail Prices API,2025-12-18T04:46:59.546961 +AZURE,southafricanorth,Standard_D4s_v4,reserved_1y,NA,0.149315,USD,Azure Retail Prices API,2025-12-18T04:47:00.774529 +AZURE,southafricanorth,Standard_D4s_v4,reserved_3y,NA,0.09551,USD,Azure Retail Prices API,2025-12-18T04:47:00.774534 +AZURE,southafricanorth,Standard_D4s_v4,spot,NA,0.046939,USD,Azure Retail Prices API,2025-12-18T04:46:59.546681 +AZURE,southafricanorth,Standard_D4s_v5,on_demand,NA,0.254,USD,Azure Retail Prices API,2025-12-18T04:46:59.546236 +AZURE,southafricanorth,Standard_D4s_v5,reserved_1y,NA,0.149886,USD,Azure Retail Prices API,2025-12-18T04:47:00.773414 +AZURE,southafricanorth,Standard_D4s_v5,reserved_3y,NA,0.093988,USD,Azure Retail Prices API,2025-12-18T04:47:00.773418 +AZURE,southafricanorth,Standard_D4s_v5,spot,NA,0.046939,USD,Azure Retail Prices API,2025-12-18T04:46:59.545939 +AZURE,southafricanorth,Standard_D5_v2,on_demand,NA,1.4625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487965 +AZURE,southafricanorth,Standard_D5_v2,reserved_1y,NA,0.8775,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487974 +AZURE,southafricanorth,Standard_D5_v2,reserved_3y,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487978 +AZURE,southafricanorth,Standard_D5_v2,spot,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487970 +AZURE,southafricanorth,Standard_D64_v3,on_demand,NA,4.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.545902 +AZURE,southafricanorth,Standard_D64_v3,reserved_1y,NA,2.326598,USD,Azure Retail Prices API,2025-12-18T04:47:00.772695 +AZURE,southafricanorth,Standard_D64_v3,reserved_3y,NA,1.497527,USD,Azure Retail Prices API,2025-12-18T04:47:00.772701 +AZURE,southafricanorth,Standard_D64_v3,spot,NA,0.751027,USD,Azure Retail Prices API,2025-12-18T04:46:59.546607 +AZURE,southafricanorth,Standard_D64a_v4,on_demand,NA,4.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.546414 +AZURE,southafricanorth,Standard_D64a_v4,reserved_1y,NA,2.397717,USD,Azure Retail Prices API,2025-12-18T04:47:00.773708 +AZURE,southafricanorth,Standard_D64a_v4,reserved_3y,NA,1.54433,USD,Azure Retail Prices API,2025-12-18T04:47:00.773713 +AZURE,southafricanorth,Standard_D64a_v4,spot,NA,0.751027,USD,Azure Retail Prices API,2025-12-18T04:46:59.546703 +AZURE,southafricanorth,Standard_D64ads_v5,on_demand,NA,7.344,USD,Azure Retail Prices API,2025-12-18T04:46:59.545409 +AZURE,southafricanorth,Standard_D64ads_v5,reserved_1y,NA,2.596005,USD,Azure Retail Prices API,2025-12-18T04:47:00.773061 +AZURE,southafricanorth,Standard_D64ads_v5,reserved_3y,NA,1.671994,USD,Azure Retail Prices API,2025-12-18T04:47:00.773065 +AZURE,southafricanorth,Standard_D64ads_v5,spot,NA,0.81312,USD,Azure Retail Prices API,2025-12-18T04:46:59.545827 +AZURE,southafricanorth,Standard_D64ads_v6,on_demand,NA,4.883,USD,Azure Retail Prices API,2025-12-18T04:46:59.545506 +AZURE,southafricanorth,Standard_D64ads_v6,reserved_1y,NA,2.88105,USD,Azure Retail Prices API,2025-12-18T04:47:00.771985 +AZURE,southafricanorth,Standard_D64ads_v6,reserved_3y,NA,1.855632,USD,Azure Retail Prices API,2025-12-18T04:47:00.771993 +AZURE,southafricanorth,Standard_D64ads_v6,spot,NA,0.902378,USD,Azure Retail Prices API,2025-12-18T04:46:59.545929 +AZURE,southafricanorth,Standard_D64as_v4,on_demand,NA,4.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.546161 +AZURE,southafricanorth,Standard_D64as_v4,reserved_1y,NA,2.397717,USD,Azure Retail Prices API,2025-12-18T04:47:00.773220 +AZURE,southafricanorth,Standard_D64as_v4,reserved_3y,NA,1.54433,USD,Azure Retail Prices API,2025-12-18T04:47:00.773225 +AZURE,southafricanorth,Standard_D64as_v4,spot,NA,0.751027,USD,Azure Retail Prices API,2025-12-18T04:46:59.546031 +AZURE,southafricanorth,Standard_D64as_v5,on_demand,NA,3.664,USD,Azure Retail Prices API,2025-12-18T04:46:59.545451 +AZURE,southafricanorth,Standard_D64as_v5,reserved_1y,NA,2.161758,USD,Azure Retail Prices API,2025-12-18T04:47:00.771900 +AZURE,southafricanorth,Standard_D64as_v5,reserved_3y,NA,1.392314,USD,Azure Retail Prices API,2025-12-18T04:47:00.771911 +AZURE,southafricanorth,Standard_D64as_v5,spot,NA,0.677107,USD,Azure Retail Prices API,2025-12-18T04:46:59.546751 +AZURE,southafricanorth,Standard_D64d_v4,on_demand,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:46:59.546552 +AZURE,southafricanorth,Standard_D64d_v4,reserved_1y,NA,2.822374,USD,Azure Retail Prices API,2025-12-18T04:47:00.773971 +AZURE,southafricanorth,Standard_D64d_v4,reserved_3y,NA,1.804795,USD,Azure Retail Prices API,2025-12-18T04:47:00.773976 +AZURE,southafricanorth,Standard_D64d_v4,spot,NA,0.88704,USD,Azure Retail Prices API,2025-12-18T04:46:59.546866 +AZURE,southafricanorth,Standard_D64ds_v4,on_demand,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:46:59.545813 +AZURE,southafricanorth,Standard_D64ds_v4,reserved_1y,NA,2.822374,USD,Azure Retail Prices API,2025-12-18T04:47:00.772485 +AZURE,southafricanorth,Standard_D64ds_v4,reserved_3y,NA,1.804795,USD,Azure Retail Prices API,2025-12-18T04:47:00.772492 +AZURE,southafricanorth,Standard_D64ds_v4,spot,NA,0.88704,USD,Azure Retail Prices API,2025-12-18T04:46:59.546946 +AZURE,southafricanorth,Standard_D64ds_v5,on_demand,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:46:59.545549 +AZURE,southafricanorth,Standard_D64ds_v5,reserved_1y,NA,2.831963,USD,Azure Retail Prices API,2025-12-18T04:47:00.772077 +AZURE,southafricanorth,Standard_D64ds_v5,reserved_3y,NA,1.824011,USD,Azure Retail Prices API,2025-12-18T04:47:00.772083 +AZURE,southafricanorth,Standard_D64ds_v5,spot,NA,0.88704,USD,Azure Retail Prices API,2025-12-18T04:46:59.545518 +AZURE,southafricanorth,Standard_D64ds_v6,on_demand,NA,5.302,USD,Azure Retail Prices API,2025-12-18T04:46:59.546146 +AZURE,southafricanorth,Standard_D64ds_v6,reserved_1y,NA,3.287443,USD,Azure Retail Prices API,2025-12-18T04:47:00.773163 +AZURE,southafricanorth,Standard_D64ds_v6,reserved_3y,NA,2.067922,USD,Azure Retail Prices API,2025-12-18T04:47:00.773168 +AZURE,southafricanorth,Standard_D64ds_v6,spot,NA,0.97981,USD,Azure Retail Prices API,2025-12-18T04:46:59.546862 +AZURE,southafricanorth,Standard_D64pds_v6,on_demand,NA,4.122,USD,Azure Retail Prices API,2025-12-18T04:46:59.546468 +AZURE,southafricanorth,Standard_D64pds_v6,reserved_1y,NA,2.431735,USD,Azure Retail Prices API,2025-12-18T04:47:00.773800 +AZURE,southafricanorth,Standard_D64pds_v6,reserved_3y,NA,1.56621,USD,Azure Retail Prices API,2025-12-18T04:47:00.773806 +AZURE,southafricanorth,Standard_D64pds_v6,spot,NA,0.761746,USD,Azure Retail Prices API,2025-12-18T04:46:59.546554 +AZURE,southafricanorth,Standard_D64ps_v6,on_demand,NA,3.149,USD,Azure Retail Prices API,2025-12-18T04:46:59.546230 +AZURE,southafricanorth,Standard_D64ps_v6,reserved_1y,NA,1.857763,USD,Azure Retail Prices API,2025-12-18T04:47:00.773366 +AZURE,southafricanorth,Standard_D64ps_v6,reserved_3y,NA,1.196537,USD,Azure Retail Prices API,2025-12-18T04:47:00.773371 +AZURE,southafricanorth,Standard_D64ps_v6,spot,NA,0.581935,USD,Azure Retail Prices API,2025-12-18T04:46:59.545770 +AZURE,southafricanorth,Standard_D64s_v3,on_demand,NA,4.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.545465 +AZURE,southafricanorth,Standard_D64s_v3,reserved_1y,NA,2.326598,USD,Azure Retail Prices API,2025-12-18T04:47:00.771940 +AZURE,southafricanorth,Standard_D64s_v3,reserved_3y,NA,1.497527,USD,Azure Retail Prices API,2025-12-18T04:47:00.771945 +AZURE,southafricanorth,Standard_D64s_v3,spot,NA,0.751027,USD,Azure Retail Prices API,2025-12-18T04:46:59.546624 +AZURE,southafricanorth,Standard_D64s_v4,on_demand,NA,4.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.545838 +AZURE,southafricanorth,Standard_D64s_v4,reserved_1y,NA,2.389612,USD,Azure Retail Prices API,2025-12-18T04:47:00.772541 +AZURE,southafricanorth,Standard_D64s_v4,reserved_3y,NA,1.528082,USD,Azure Retail Prices API,2025-12-18T04:47:00.772550 +AZURE,southafricanorth,Standard_D64s_v4,spot,NA,0.751027,USD,Azure Retail Prices API,2025-12-18T04:46:59.546815 +AZURE,southafricanorth,Standard_D64s_v5,on_demand,NA,4.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.546224 +AZURE,southafricanorth,Standard_D64s_v5,reserved_1y,NA,2.397717,USD,Azure Retail Prices API,2025-12-18T04:47:00.773347 +AZURE,southafricanorth,Standard_D64s_v5,reserved_3y,NA,1.503691,USD,Azure Retail Prices API,2025-12-18T04:47:00.773352 +AZURE,southafricanorth,Standard_D64s_v5,spot,NA,0.751027,USD,Azure Retail Prices API,2025-12-18T04:46:59.546571 +AZURE,southafricanorth,Standard_D8_v3,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:59.546123 +AZURE,southafricanorth,Standard_D8_v3,reserved_1y,NA,0.290868,USD,Azure Retail Prices API,2025-12-18T04:47:00.773134 +AZURE,southafricanorth,Standard_D8_v3,reserved_3y,NA,0.187177,USD,Azure Retail Prices API,2025-12-18T04:47:00.773139 +AZURE,southafricanorth,Standard_D8_v3,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:59.546736 +AZURE,southafricanorth,Standard_D8a_v4,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:59.545677 +AZURE,southafricanorth,Standard_D8a_v4,reserved_1y,NA,0.299772,USD,Azure Retail Prices API,2025-12-18T04:47:00.772276 +AZURE,southafricanorth,Standard_D8a_v4,reserved_3y,NA,0.193037,USD,Azure Retail Prices API,2025-12-18T04:47:00.772283 +AZURE,southafricanorth,Standard_D8a_v4,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:59.545958 +AZURE,southafricanorth,Standard_D8ads_v5,on_demand,NA,0.918,USD,Azure Retail Prices API,2025-12-18T04:46:59.545538 +AZURE,southafricanorth,Standard_D8ads_v5,reserved_1y,NA,0.324543,USD,Azure Retail Prices API,2025-12-18T04:47:00.773879 +AZURE,southafricanorth,Standard_D8ads_v5,reserved_3y,NA,0.209018,USD,Azure Retail Prices API,2025-12-18T04:47:00.773885 +AZURE,southafricanorth,Standard_D8ads_v5,spot,NA,0.10164,USD,Azure Retail Prices API,2025-12-18T04:46:59.546262 +AZURE,southafricanorth,Standard_D8ads_v6,on_demand,NA,0.61,USD,Azure Retail Prices API,2025-12-18T04:46:59.546639 +AZURE,southafricanorth,Standard_D8ads_v6,reserved_1y,NA,0.36016,USD,Azure Retail Prices API,2025-12-18T04:47:00.774069 +AZURE,southafricanorth,Standard_D8ads_v6,reserved_3y,NA,0.231963,USD,Azure Retail Prices API,2025-12-18T04:47:00.774073 +AZURE,southafricanorth,Standard_D8ads_v6,spot,NA,0.112728,USD,Azure Retail Prices API,2025-12-18T04:46:59.546748 +AZURE,southafricanorth,Standard_D8as_v4,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:59.545920 +AZURE,southafricanorth,Standard_D8as_v4,reserved_1y,NA,0.299772,USD,Azure Retail Prices API,2025-12-18T04:47:00.772746 +AZURE,southafricanorth,Standard_D8as_v4,reserved_3y,NA,0.193037,USD,Azure Retail Prices API,2025-12-18T04:47:00.772752 +AZURE,southafricanorth,Standard_D8as_v4,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:59.546744 +AZURE,southafricanorth,Standard_D8as_v5,on_demand,NA,0.826,USD,Azure Retail Prices API,2025-12-18T04:46:59.546007 +AZURE,southafricanorth,Standard_D8as_v5,reserved_1y,NA,0.270205,USD,Azure Retail Prices API,2025-12-18T04:47:00.774216 +AZURE,southafricanorth,Standard_D8as_v5,reserved_3y,NA,0.174049,USD,Azure Retail Prices API,2025-12-18T04:47:00.774221 +AZURE,southafricanorth,Standard_D8as_v5,spot,NA,0.084638,USD,Azure Retail Prices API,2025-12-18T04:46:59.546798 +AZURE,southafricanorth,Standard_D8d_v4,on_demand,NA,0.6,USD,Azure Retail Prices API,2025-12-18T04:46:59.546853 +AZURE,southafricanorth,Standard_D8d_v4,reserved_1y,NA,0.352854,USD,Azure Retail Prices API,2025-12-18T04:47:00.774296 +AZURE,southafricanorth,Standard_D8d_v4,reserved_3y,NA,0.225609,USD,Azure Retail Prices API,2025-12-18T04:47:00.774301 +AZURE,southafricanorth,Standard_D8d_v4,spot,NA,0.11088,USD,Azure Retail Prices API,2025-12-18T04:46:59.545622 +AZURE,southafricanorth,Standard_D8ds_v4,on_demand,NA,0.6,USD,Azure Retail Prices API,2025-12-18T04:46:59.546304 +AZURE,southafricanorth,Standard_D8ds_v4,reserved_1y,NA,0.352854,USD,Azure Retail Prices API,2025-12-18T04:47:00.773532 +AZURE,southafricanorth,Standard_D8ds_v4,reserved_3y,NA,0.225609,USD,Azure Retail Prices API,2025-12-18T04:47:00.773537 +AZURE,southafricanorth,Standard_D8ds_v4,spot,NA,0.11088,USD,Azure Retail Prices API,2025-12-18T04:46:59.545616 +AZURE,southafricanorth,Standard_D8ds_v5,on_demand,NA,0.6,USD,Azure Retail Prices API,2025-12-18T04:46:59.546143 +AZURE,southafricanorth,Standard_D8ds_v5,reserved_1y,NA,0.353995,USD,Azure Retail Prices API,2025-12-18T04:47:00.773153 +AZURE,southafricanorth,Standard_D8ds_v5,reserved_3y,NA,0.228006,USD,Azure Retail Prices API,2025-12-18T04:47:00.773158 +AZURE,southafricanorth,Standard_D8ds_v5,spot,NA,0.11088,USD,Azure Retail Prices API,2025-12-18T04:46:59.546363 +AZURE,southafricanorth,Standard_D8ds_v6,on_demand,NA,0.663,USD,Azure Retail Prices API,2025-12-18T04:46:59.546877 +AZURE,southafricanorth,Standard_D8ds_v6,reserved_1y,NA,0.410959,USD,Azure Retail Prices API,2025-12-18T04:47:00.774336 +AZURE,southafricanorth,Standard_D8ds_v6,reserved_3y,NA,0.258486,USD,Azure Retail Prices API,2025-12-18T04:47:00.774341 +AZURE,southafricanorth,Standard_D8ds_v6,spot,NA,0.122522,USD,Azure Retail Prices API,2025-12-18T04:46:59.545689 +AZURE,southafricanorth,Standard_D8pds_v6,on_demand,NA,0.515,USD,Azure Retail Prices API,2025-12-18T04:46:59.546728 +AZURE,southafricanorth,Standard_D8pds_v6,reserved_1y,NA,0.303995,USD,Azure Retail Prices API,2025-12-18T04:47:00.774146 +AZURE,southafricanorth,Standard_D8pds_v6,reserved_3y,NA,0.195776,USD,Azure Retail Prices API,2025-12-18T04:47:00.774151 +AZURE,southafricanorth,Standard_D8pds_v6,spot,NA,0.095172,USD,Azure Retail Prices API,2025-12-18T04:46:59.546259 +AZURE,southafricanorth,Standard_D8ps_v6,on_demand,NA,0.394,USD,Azure Retail Prices API,2025-12-18T04:46:59.546039 +AZURE,southafricanorth,Standard_D8ps_v6,reserved_1y,NA,0.232192,USD,Azure Retail Prices API,2025-12-18T04:47:00.772959 +AZURE,southafricanorth,Standard_D8ps_v6,reserved_3y,NA,0.149581,USD,Azure Retail Prices API,2025-12-18T04:47:00.772965 +AZURE,southafricanorth,Standard_D8ps_v6,spot,NA,0.072811,USD,Azure Retail Prices API,2025-12-18T04:46:59.545717 +AZURE,southafricanorth,Standard_D8s_v3,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:59.545448 +AZURE,southafricanorth,Standard_D8s_v3,reserved_1y,NA,0.290868,USD,Azure Retail Prices API,2025-12-18T04:47:00.771888 +AZURE,southafricanorth,Standard_D8s_v3,reserved_3y,NA,0.187177,USD,Azure Retail Prices API,2025-12-18T04:47:00.771894 +AZURE,southafricanorth,Standard_D8s_v3,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:59.545784 +AZURE,southafricanorth,Standard_D8s_v4,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:59.546399 +AZURE,southafricanorth,Standard_D8s_v4,reserved_1y,NA,0.298744,USD,Azure Retail Prices API,2025-12-18T04:47:00.773679 +AZURE,southafricanorth,Standard_D8s_v4,reserved_3y,NA,0.19102,USD,Azure Retail Prices API,2025-12-18T04:47:00.773684 +AZURE,southafricanorth,Standard_D8s_v4,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:59.545964 +AZURE,southafricanorth,Standard_D8s_v5,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:59.546515 +AZURE,southafricanorth,Standard_D8s_v5,reserved_1y,NA,0.299772,USD,Azure Retail Prices API,2025-12-18T04:47:00.773890 +AZURE,southafricanorth,Standard_D8s_v5,reserved_3y,NA,0.187976,USD,Azure Retail Prices API,2025-12-18T04:47:00.773895 +AZURE,southafricanorth,Standard_D8s_v5,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:59.546025 +AZURE,southafricanorth,Standard_D96a_v4,on_demand,NA,6.096,USD,Azure Retail Prices API,2025-12-18T04:46:59.546565 +AZURE,southafricanorth,Standard_D96a_v4,reserved_1y,NA,3.596689,USD,Azure Retail Prices API,2025-12-18T04:47:00.773980 +AZURE,southafricanorth,Standard_D96a_v4,reserved_3y,NA,2.316476,USD,Azure Retail Prices API,2025-12-18T04:47:00.773985 +AZURE,southafricanorth,Standard_D96a_v4,spot,NA,1.126541,USD,Azure Retail Prices API,2025-12-18T04:46:59.546645 +AZURE,southafricanorth,Standard_D96ads_v5,on_demand,NA,11.016,USD,Azure Retail Prices API,2025-12-18T04:46:59.545869 +AZURE,southafricanorth,Standard_D96ads_v5,reserved_1y,NA,3.89395,USD,Azure Retail Prices API,2025-12-18T04:47:00.773388 +AZURE,southafricanorth,Standard_D96ads_v5,reserved_3y,NA,2.507991,USD,Azure Retail Prices API,2025-12-18T04:47:00.773408 +AZURE,southafricanorth,Standard_D96ads_v5,spot,NA,1.21968,USD,Azure Retail Prices API,2025-12-18T04:46:59.546381 +AZURE,southafricanorth,Standard_D96ads_v6,on_demand,NA,7.325,USD,Azure Retail Prices API,2025-12-18T04:46:59.545798 +AZURE,southafricanorth,Standard_D96ads_v6,reserved_1y,NA,4.321575,USD,Azure Retail Prices API,2025-12-18T04:47:00.772457 +AZURE,southafricanorth,Standard_D96ads_v6,reserved_3y,NA,2.783409,USD,Azure Retail Prices API,2025-12-18T04:47:00.772462 +AZURE,southafricanorth,Standard_D96ads_v6,spot,NA,1.35366,USD,Azure Retail Prices API,2025-12-18T04:46:59.545442 +AZURE,southafricanorth,Standard_D96as_v4,on_demand,NA,6.096,USD,Azure Retail Prices API,2025-12-18T04:46:59.546366 +AZURE,southafricanorth,Standard_D96as_v4,reserved_1y,NA,3.596689,USD,Azure Retail Prices API,2025-12-18T04:47:00.773628 +AZURE,southafricanorth,Standard_D96as_v4,reserved_3y,NA,2.316476,USD,Azure Retail Prices API,2025-12-18T04:47:00.773633 +AZURE,southafricanorth,Standard_D96as_v4,spot,NA,1.126541,USD,Azure Retail Prices API,2025-12-18T04:46:59.545497 +AZURE,southafricanorth,Standard_D96as_v5,on_demand,NA,5.496,USD,Azure Retail Prices API,2025-12-18T04:46:59.546504 +AZURE,southafricanorth,Standard_D96as_v5,reserved_1y,NA,3.242694,USD,Azure Retail Prices API,2025-12-18T04:47:00.773849 +AZURE,southafricanorth,Standard_D96as_v5,reserved_3y,NA,2.08847,USD,Azure Retail Prices API,2025-12-18T04:47:00.773854 +AZURE,southafricanorth,Standard_D96as_v5,spot,NA,1.015661,USD,Azure Retail Prices API,2025-12-18T04:46:59.546280 +AZURE,southafricanorth,Standard_D96ds_v5,on_demand,NA,7.2,USD,Azure Retail Prices API,2025-12-18T04:46:59.546186 +AZURE,southafricanorth,Standard_D96ds_v5,reserved_1y,NA,4.247945,USD,Azure Retail Prices API,2025-12-18T04:47:00.773274 +AZURE,southafricanorth,Standard_D96ds_v5,reserved_3y,NA,2.735997,USD,Azure Retail Prices API,2025-12-18T04:47:00.773279 +AZURE,southafricanorth,Standard_D96ds_v5,spot,NA,1.33056,USD,Azure Retail Prices API,2025-12-18T04:46:59.546060 +AZURE,southafricanorth,Standard_D96ds_v6,on_demand,NA,7.954,USD,Azure Retail Prices API,2025-12-18T04:46:59.546546 +AZURE,southafricanorth,Standard_D96ds_v6,reserved_1y,NA,4.931279,USD,Azure Retail Prices API,2025-12-18T04:47:00.773951 +AZURE,southafricanorth,Standard_D96ds_v6,reserved_3y,NA,3.101903,USD,Azure Retail Prices API,2025-12-18T04:47:00.773956 +AZURE,southafricanorth,Standard_D96ds_v6,spot,NA,1.469899,USD,Azure Retail Prices API,2025-12-18T04:46:59.546804 +AZURE,southafricanorth,Standard_D96pds_v6,on_demand,NA,6.182,USD,Azure Retail Prices API,2025-12-18T04:46:59.546549 +AZURE,southafricanorth,Standard_D96pds_v6,reserved_1y,NA,3.647603,USD,Azure Retail Prices API,2025-12-18T04:47:00.773961 +AZURE,southafricanorth,Standard_D96pds_v6,reserved_3y,NA,2.349315,USD,Azure Retail Prices API,2025-12-18T04:47:00.773966 +AZURE,southafricanorth,Standard_D96pds_v6,spot,NA,1.142434,USD,Azure Retail Prices API,2025-12-18T04:46:59.546964 +AZURE,southafricanorth,Standard_D96ps_v6,on_demand,NA,4.723,USD,Azure Retail Prices API,2025-12-18T04:46:59.546080 +AZURE,southafricanorth,Standard_D96ps_v6,reserved_1y,NA,2.786644,USD,Azure Retail Prices API,2025-12-18T04:47:00.773031 +AZURE,southafricanorth,Standard_D96ps_v6,reserved_3y,NA,1.794825,USD,Azure Retail Prices API,2025-12-18T04:47:00.773036 +AZURE,southafricanorth,Standard_D96ps_v6,spot,NA,0.87281,USD,Azure Retail Prices API,2025-12-18T04:46:59.545486 +AZURE,southafricanorth,Standard_D96s_v5,on_demand,NA,6.096,USD,Azure Retail Prices API,2025-12-18T04:46:59.545439 +AZURE,southafricanorth,Standard_D96s_v5,reserved_1y,NA,3.596689,USD,Azure Retail Prices API,2025-12-18T04:47:00.771876 +AZURE,southafricanorth,Standard_D96s_v5,reserved_3y,NA,2.255518,USD,Azure Retail Prices API,2025-12-18T04:47:00.771883 +AZURE,southafricanorth,Standard_D96s_v5,spot,NA,1.126541,USD,Azure Retail Prices API,2025-12-18T04:46:59.546689 +AZURE,southafricanorth,Standard_DC16ads_v6,on_demand,NA,1.221,USD,Azure Retail Prices API,2025-12-18T04:46:59.546949 +AZURE,southafricanorth,Standard_DC16ads_v6,reserved_1y,NA,0.72032,USD,Azure Retail Prices API,2025-12-18T04:47:00.774500 +AZURE,southafricanorth,Standard_DC16ads_v6,reserved_3y,NA,0.463889,USD,Azure Retail Prices API,2025-12-18T04:47:00.774504 +AZURE,southafricanorth,Standard_DC16ads_v6,spot,NA,0.225641,USD,Azure Retail Prices API,2025-12-18T04:46:59.545790 +AZURE,southafricanorth,Standard_DC2ads_v6,on_demand,NA,0.153,USD,Azure Retail Prices API,2025-12-18T04:46:59.546307 +AZURE,southafricanorth,Standard_DC2ads_v6,reserved_1y,NA,0.090068,USD,Azure Retail Prices API,2025-12-18T04:47:00.773542 +AZURE,southafricanorth,Standard_DC2ads_v6,reserved_3y,NA,0.057991,USD,Azure Retail Prices API,2025-12-18T04:47:00.773546 +AZURE,southafricanorth,Standard_DC2ads_v6,spot,NA,0.028274,USD,Azure Retail Prices API,2025-12-18T04:46:59.546094 +AZURE,southafricanorth,Standard_DC32ads_v6,on_demand,NA,2.442,USD,Azure Retail Prices API,2025-12-18T04:46:59.546475 +AZURE,southafricanorth,Standard_DC32ads_v6,reserved_1y,NA,1.440525,USD,Azure Retail Prices API,2025-12-18T04:47:00.773810 +AZURE,southafricanorth,Standard_DC32ads_v6,reserved_3y,NA,0.927816,USD,Azure Retail Prices API,2025-12-18T04:47:00.773815 +AZURE,southafricanorth,Standard_DC32ads_v6,spot,NA,0.451282,USD,Azure Retail Prices API,2025-12-18T04:46:59.546209 +AZURE,southafricanorth,Standard_DC48ads_v6,on_demand,NA,3.662,USD,Azure Retail Prices API,2025-12-18T04:46:59.546256 +AZURE,southafricanorth,Standard_DC48ads_v6,reserved_1y,NA,2.160845,USD,Azure Retail Prices API,2025-12-18T04:47:00.773442 +AZURE,southafricanorth,Standard_DC48ads_v6,reserved_3y,NA,1.391705,USD,Azure Retail Prices API,2025-12-18T04:47:00.773447 +AZURE,southafricanorth,Standard_DC48ads_v6,spot,NA,0.676738,USD,Azure Retail Prices API,2025-12-18T04:46:59.546313 +AZURE,southafricanorth,Standard_DC4ads_v6,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:46:59.545970 +AZURE,southafricanorth,Standard_DC4ads_v6,reserved_1y,NA,0.180023,USD,Azure Retail Prices API,2025-12-18T04:47:00.772808 +AZURE,southafricanorth,Standard_DC4ads_v6,reserved_3y,NA,0.115982,USD,Azure Retail Prices API,2025-12-18T04:47:00.772813 +AZURE,southafricanorth,Standard_DC4ads_v6,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:46:59.546869 +AZURE,southafricanorth,Standard_DC64ads_v6,on_demand,NA,4.883,USD,Azure Retail Prices API,2025-12-18T04:46:59.545415 +AZURE,southafricanorth,Standard_DC64ads_v6,reserved_1y,NA,2.88105,USD,Azure Retail Prices API,2025-12-18T04:47:00.767046 +AZURE,southafricanorth,Standard_DC64ads_v6,reserved_3y,NA,1.855632,USD,Azure Retail Prices API,2025-12-18T04:47:00.771813 +AZURE,southafricanorth,Standard_DC64ads_v6,spot,NA,0.902378,USD,Azure Retail Prices API,2025-12-18T04:46:59.546842 +AZURE,southafricanorth,Standard_DC8ads_v6,on_demand,NA,0.61,USD,Azure Retail Prices API,2025-12-18T04:46:59.546034 +AZURE,southafricanorth,Standard_DC8ads_v6,reserved_1y,NA,0.36016,USD,Azure Retail Prices API,2025-12-18T04:47:00.772939 +AZURE,southafricanorth,Standard_DC8ads_v6,reserved_3y,NA,0.231963,USD,Azure Retail Prices API,2025-12-18T04:47:00.772944 +AZURE,southafricanorth,Standard_DC8ads_v6,spot,NA,0.112728,USD,Azure Retail Prices API,2025-12-18T04:46:59.545611 +AZURE,southafricanorth,Standard_DC96ads_v6,on_demand,NA,7.325,USD,Azure Retail Prices API,2025-12-18T04:46:59.545552 +AZURE,southafricanorth,Standard_DC96ads_v6,reserved_1y,NA,4.321575,USD,Azure Retail Prices API,2025-12-18T04:47:00.772088 +AZURE,southafricanorth,Standard_DC96ads_v6,reserved_3y,NA,2.783409,USD,Azure Retail Prices API,2025-12-18T04:47:00.772094 +AZURE,southafricanorth,Standard_DC96ads_v6,spot,NA,1.35366,USD,Azure Retail Prices API,2025-12-18T04:46:59.546242 +AZURE,southafricanorth,Standard_DS12_v2,on_demand,NA,0.46375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495737 +AZURE,southafricanorth,Standard_DS12_v2,reserved_1y,NA,0.27825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495747 +AZURE,southafricanorth,Standard_DS12_v2,reserved_3y,NA,0.1855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495751 +AZURE,southafricanorth,Standard_DS12_v2,spot,NA,0.139125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495741 +AZURE,southafricanorth,Standard_DS13_v2,on_demand,NA,0.92625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496629 +AZURE,southafricanorth,Standard_DS13_v2,reserved_1y,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496637 +AZURE,southafricanorth,Standard_DS13_v2,reserved_3y,NA,0.3705,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496641 +AZURE,southafricanorth,Standard_DS13_v2,spot,NA,0.277875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496633 +AZURE,southafricanorth,Standard_DS14_v2,on_demand,NA,1.8525,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497485 +AZURE,southafricanorth,Standard_DS14_v2,reserved_1y,NA,1.1115,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497494 +AZURE,southafricanorth,Standard_DS14_v2,reserved_3y,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497502 +AZURE,southafricanorth,Standard_DS14_v2,spot,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497491 +AZURE,southafricanorth,Standard_DS15_v2,on_demand,NA,2.31625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498252 +AZURE,southafricanorth,Standard_DS15_v2,reserved_1y,NA,1.38975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498260 +AZURE,southafricanorth,Standard_DS15_v2,reserved_3y,NA,0.9265,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498264 +AZURE,southafricanorth,Standard_DS15_v2,spot,NA,0.694875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498256 +AZURE,southafricanorth,Standard_DS1_v2,on_demand,NA,0.09125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492094 +AZURE,southafricanorth,Standard_DS1_v2,reserved_1y,NA,0.05475,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492103 +AZURE,southafricanorth,Standard_DS1_v2,reserved_3y,NA,0.0365,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492107 +AZURE,southafricanorth,Standard_DS1_v2,spot,NA,0.027375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492098 +AZURE,southafricanorth,Standard_DS2_v2,on_demand,NA,0.1825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492806 +AZURE,southafricanorth,Standard_DS2_v2,reserved_1y,NA,0.1095,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492814 +AZURE,southafricanorth,Standard_DS2_v2,reserved_3y,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492818 +AZURE,southafricanorth,Standard_DS2_v2,spot,NA,0.05475,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492810 +AZURE,southafricanorth,Standard_DS3_v2,on_demand,NA,0.36625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493539 +AZURE,southafricanorth,Standard_DS3_v2,reserved_1y,NA,0.21975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493547 +AZURE,southafricanorth,Standard_DS3_v2,reserved_3y,NA,0.1465,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493551 +AZURE,southafricanorth,Standard_DS3_v2,spot,NA,0.109875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493543 +AZURE,southafricanorth,Standard_DS4_v2,on_demand,NA,0.73125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494251 +AZURE,southafricanorth,Standard_DS4_v2,reserved_1y,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494259 +AZURE,southafricanorth,Standard_DS4_v2,reserved_3y,NA,0.2925,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494264 +AZURE,southafricanorth,Standard_DS4_v2,spot,NA,0.219375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494255 +AZURE,southafricanorth,Standard_DS5_v2,on_demand,NA,1.4625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494961 +AZURE,southafricanorth,Standard_DS5_v2,reserved_1y,NA,0.8775,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494969 +AZURE,southafricanorth,Standard_DS5_v2,reserved_3y,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494974 +AZURE,southafricanorth,Standard_DS5_v2,spot,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494965 +AZURE,southafricanorth,Standard_E128ds_v6,on_demand,NA,13.919,USD,Azure Retail Prices API,2025-12-18T04:46:59.545807 +AZURE,southafricanorth,Standard_E128ds_v6,reserved_1y,NA,8.629566,USD,Azure Retail Prices API,2025-12-18T04:47:00.772476 +AZURE,southafricanorth,Standard_E128ds_v6,reserved_3y,NA,5.428311,USD,Azure Retail Prices API,2025-12-18T04:47:00.772481 +AZURE,southafricanorth,Standard_E128ds_v6,spot,NA,2.572231,USD,Azure Retail Prices API,2025-12-18T04:46:59.546063 +AZURE,southafricanorth,Standard_E16_v3,on_demand,NA,1.344,USD,Azure Retail Prices API,2025-12-18T04:46:59.546378 +AZURE,southafricanorth,Standard_E16_v3,reserved_1y,NA,0.834132,USD,Azure Retail Prices API,2025-12-18T04:47:00.773647 +AZURE,southafricanorth,Standard_E16_v3,reserved_3y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:47:00.773652 +AZURE,southafricanorth,Standard_E16_v3,spot,NA,0.248371,USD,Azure Retail Prices API,2025-12-18T04:46:59.546527 +AZURE,southafricanorth,Standard_E16a_v4,on_demand,NA,1.344,USD,Azure Retail Prices API,2025-12-18T04:46:59.545423 +AZURE,southafricanorth,Standard_E16a_v4,reserved_1y,NA,0.792922,USD,Azure Retail Prices API,2025-12-18T04:47:00.771830 +AZURE,southafricanorth,Standard_E16a_v4,reserved_3y,NA,0.510731,USD,Azure Retail Prices API,2025-12-18T04:47:00.771838 +AZURE,southafricanorth,Standard_E16a_v4,spot,NA,0.248371,USD,Azure Retail Prices API,2025-12-18T04:46:59.546975 +AZURE,southafricanorth,Standard_E16ads_v5,on_demand,NA,2.12,USD,Azure Retail Prices API,2025-12-18T04:46:59.545897 +AZURE,southafricanorth,Standard_E16ads_v5,reserved_1y,NA,0.816553,USD,Azure Retail Prices API,2025-12-18T04:47:00.774345 +AZURE,southafricanorth,Standard_E16ads_v5,reserved_3y,NA,0.525913,USD,Azure Retail Prices API,2025-12-18T04:47:00.774351 +AZURE,southafricanorth,Standard_E16ads_v5,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:46:59.545512 +AZURE,southafricanorth,Standard_E16ads_v6,on_demand,NA,1.552,USD,Azure Retail Prices API,2025-12-18T04:46:59.546594 +AZURE,southafricanorth,Standard_E16ads_v6,reserved_1y,NA,0.915639,USD,Azure Retail Prices API,2025-12-18T04:47:00.774030 +AZURE,southafricanorth,Standard_E16ads_v6,reserved_3y,NA,0.589764,USD,Azure Retail Prices API,2025-12-18T04:47:00.774035 +AZURE,southafricanorth,Standard_E16ads_v6,spot,NA,0.28681,USD,Azure Retail Prices API,2025-12-18T04:46:59.546274 +AZURE,southafricanorth,Standard_E16as_v4,on_demand,NA,1.344,USD,Azure Retail Prices API,2025-12-18T04:46:59.545923 +AZURE,southafricanorth,Standard_E16as_v4,reserved_1y,NA,0.792922,USD,Azure Retail Prices API,2025-12-18T04:47:00.772757 +AZURE,southafricanorth,Standard_E16as_v4,reserved_3y,NA,0.510731,USD,Azure Retail Prices API,2025-12-18T04:47:00.772762 +AZURE,southafricanorth,Standard_E16as_v4,spot,NA,0.248371,USD,Azure Retail Prices API,2025-12-18T04:46:59.545765 +AZURE,southafricanorth,Standard_E16as_v5,on_demand,NA,1.944,USD,Azure Retail Prices API,2025-12-18T04:46:59.545599 +AZURE,southafricanorth,Standard_E16as_v5,reserved_1y,NA,0.712671,USD,Azure Retail Prices API,2025-12-18T04:47:00.774176 +AZURE,southafricanorth,Standard_E16as_v5,reserved_3y,NA,0.459056,USD,Azure Retail Prices API,2025-12-18T04:47:00.774181 +AZURE,southafricanorth,Standard_E16as_v5,spot,NA,0.223238,USD,Azure Retail Prices API,2025-12-18T04:46:59.546265 +AZURE,southafricanorth,Standard_E16d_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:59.546831 +AZURE,southafricanorth,Standard_E16d_v4,reserved_1y,NA,0.893721,USD,Azure Retail Prices API,2025-12-18T04:47:00.774275 +AZURE,southafricanorth,Standard_E16d_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:47:00.774280 +AZURE,southafricanorth,Standard_E16d_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:59.546293 +AZURE,southafricanorth,Standard_E16ds_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:59.546331 +AZURE,southafricanorth,Standard_E16ds_v4,reserved_1y,NA,0.893721,USD,Azure Retail Prices API,2025-12-18T04:47:00.773580 +AZURE,southafricanorth,Standard_E16ds_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:47:00.773584 +AZURE,southafricanorth,Standard_E16ds_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:59.546915 +AZURE,southafricanorth,Standard_E16ds_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:59.546489 +AZURE,southafricanorth,Standard_E16ds_v5,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:47:00.773821 +AZURE,southafricanorth,Standard_E16ds_v5,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:47:00.773826 +AZURE,southafricanorth,Standard_E16ds_v5,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:59.546322 +AZURE,southafricanorth,Standard_E16ds_v6,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:59.546456 +AZURE,southafricanorth,Standard_E16ds_v6,reserved_1y,NA,1.078653,USD,Azure Retail Prices API,2025-12-18T04:47:00.773768 +AZURE,southafricanorth,Standard_E16ds_v6,reserved_3y,NA,0.678539,USD,Azure Retail Prices API,2025-12-18T04:47:00.773773 +AZURE,southafricanorth,Standard_E16ds_v6,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:46:59.546541 +AZURE,southafricanorth,Standard_E16pds_v6,on_demand,NA,1.312,USD,Azure Retail Prices API,2025-12-18T04:46:59.546930 +AZURE,southafricanorth,Standard_E16pds_v6,reserved_1y,NA,0.774087,USD,Azure Retail Prices API,2025-12-18T04:47:00.774490 +AZURE,southafricanorth,Standard_E16pds_v6,reserved_3y,NA,0.498554,USD,Azure Retail Prices API,2025-12-18T04:47:00.774495 +AZURE,southafricanorth,Standard_E16pds_v6,spot,NA,0.242458,USD,Azure Retail Prices API,2025-12-18T04:46:59.546325 +AZURE,southafricanorth,Standard_E16ps_v6,on_demand,NA,1.034,USD,Azure Retail Prices API,2025-12-18T04:46:59.546190 +AZURE,southafricanorth,Standard_E16ps_v6,reserved_1y,NA,0.609817,USD,Azure Retail Prices API,2025-12-18T04:47:00.773284 +AZURE,southafricanorth,Standard_E16ps_v6,reserved_3y,NA,0.39277,USD,Azure Retail Prices API,2025-12-18T04:47:00.773289 +AZURE,southafricanorth,Standard_E16ps_v6,spot,NA,0.191083,USD,Azure Retail Prices API,2025-12-18T04:46:59.545640 +AZURE,southafricanorth,Standard_E16s_v3,on_demand,NA,1.344,USD,Azure Retail Prices API,2025-12-18T04:46:59.546253 +AZURE,southafricanorth,Standard_E16s_v3,reserved_1y,NA,0.834132,USD,Azure Retail Prices API,2025-12-18T04:47:00.773433 +AZURE,southafricanorth,Standard_E16s_v3,reserved_3y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:47:00.773437 +AZURE,southafricanorth,Standard_E16s_v3,spot,NA,0.248371,USD,Azure Retail Prices API,2025-12-18T04:46:59.546714 +AZURE,southafricanorth,Standard_E16s_v4,on_demand,NA,1.344,USD,Azure Retail Prices API,2025-12-18T04:46:59.545433 +AZURE,southafricanorth,Standard_E16s_v4,reserved_1y,NA,0.790297,USD,Azure Retail Prices API,2025-12-18T04:47:00.771861 +AZURE,southafricanorth,Standard_E16s_v4,reserved_3y,NA,0.505327,USD,Azure Retail Prices API,2025-12-18T04:47:00.771869 +AZURE,southafricanorth,Standard_E16s_v4,spot,NA,0.248371,USD,Azure Retail Prices API,2025-12-18T04:46:59.546375 +AZURE,southafricanorth,Standard_E16s_v5,on_demand,NA,1.344,USD,Azure Retail Prices API,2025-12-18T04:46:59.546793 +AZURE,southafricanorth,Standard_E16s_v5,reserved_1y,NA,0.792922,USD,Azure Retail Prices API,2025-12-18T04:47:00.774236 +AZURE,southafricanorth,Standard_E16s_v5,reserved_3y,NA,0.497298,USD,Azure Retail Prices API,2025-12-18T04:47:00.774241 +AZURE,southafricanorth,Standard_E16s_v5,spot,NA,0.248371,USD,Azure Retail Prices API,2025-12-18T04:46:59.546795 +AZURE,southafricanorth,Standard_E20a_v4,on_demand,NA,1.68,USD,Azure Retail Prices API,2025-12-18T04:46:59.546022 +AZURE,southafricanorth,Standard_E20a_v4,reserved_1y,NA,0.99121,USD,Azure Retail Prices API,2025-12-18T04:47:00.772920 +AZURE,southafricanorth,Standard_E20a_v4,reserved_3y,NA,0.638394,USD,Azure Retail Prices API,2025-12-18T04:47:00.772924 +AZURE,southafricanorth,Standard_E20a_v4,spot,NA,0.310464,USD,Azure Retail Prices API,2025-12-18T04:46:59.545759 +AZURE,southafricanorth,Standard_E20ads_v5,on_demand,NA,2.65,USD,Azure Retail Prices API,2025-12-18T04:46:59.546776 +AZURE,southafricanorth,Standard_E20ads_v5,reserved_1y,NA,1.020662,USD,Azure Retail Prices API,2025-12-18T04:47:00.774480 +AZURE,southafricanorth,Standard_E20ads_v5,reserved_3y,NA,0.657382,USD,Azure Retail Prices API,2025-12-18T04:47:00.774485 +AZURE,southafricanorth,Standard_E20ads_v5,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:46:59.545683 +AZURE,southafricanorth,Standard_E20ads_v6,on_demand,NA,1.94,USD,Azure Retail Prices API,2025-12-18T04:46:59.546883 +AZURE,southafricanorth,Standard_E20ads_v6,reserved_1y,NA,1.144635,USD,Azure Retail Prices API,2025-12-18T04:47:00.774356 +AZURE,southafricanorth,Standard_E20ads_v6,reserved_3y,NA,0.737215,USD,Azure Retail Prices API,2025-12-18T04:47:00.774361 +AZURE,southafricanorth,Standard_E20ads_v6,spot,NA,0.358512,USD,Azure Retail Prices API,2025-12-18T04:46:59.545463 +AZURE,southafricanorth,Standard_E20as_v4,on_demand,NA,1.68,USD,Azure Retail Prices API,2025-12-18T04:46:59.546889 +AZURE,southafricanorth,Standard_E20as_v4,reserved_1y,NA,0.99121,USD,Azure Retail Prices API,2025-12-18T04:47:00.774375 +AZURE,southafricanorth,Standard_E20as_v4,reserved_3y,NA,0.638394,USD,Azure Retail Prices API,2025-12-18T04:47:00.774380 +AZURE,southafricanorth,Standard_E20as_v4,spot,NA,0.310464,USD,Azure Retail Prices API,2025-12-18T04:46:59.545767 +AZURE,southafricanorth,Standard_E20as_v5,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:46:59.545753 +AZURE,southafricanorth,Standard_E20as_v5,reserved_1y,NA,0.890868,USD,Azure Retail Prices API,2025-12-18T04:47:00.772418 +AZURE,southafricanorth,Standard_E20as_v5,reserved_3y,NA,0.573782,USD,Azure Retail Prices API,2025-12-18T04:47:00.772423 +AZURE,southafricanorth,Standard_E20as_v5,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:46:59.545543 +AZURE,southafricanorth,Standard_E20d_v4,on_demand,NA,1.9,USD,Azure Retail Prices API,2025-12-18T04:46:59.546741 +AZURE,southafricanorth,Standard_E20d_v4,reserved_1y,NA,1.117009,USD,Azure Retail Prices API,2025-12-18T04:47:00.774166 +AZURE,southafricanorth,Standard_E20d_v4,reserved_3y,NA,0.714422,USD,Azure Retail Prices API,2025-12-18T04:47:00.774171 +AZURE,southafricanorth,Standard_E20d_v4,spot,NA,0.35112,USD,Azure Retail Prices API,2025-12-18T04:46:59.546141 +AZURE,southafricanorth,Standard_E20ds_v4,on_demand,NA,1.9,USD,Azure Retail Prices API,2025-12-18T04:46:59.545856 +AZURE,southafricanorth,Standard_E20ds_v4,reserved_1y,NA,1.117009,USD,Azure Retail Prices API,2025-12-18T04:47:00.772588 +AZURE,southafricanorth,Standard_E20ds_v4,reserved_3y,NA,0.714422,USD,Azure Retail Prices API,2025-12-18T04:47:00.772596 +AZURE,southafricanorth,Standard_E20ds_v4,spot,NA,0.35112,USD,Azure Retail Prices API,2025-12-18T04:46:59.546790 +AZURE,southafricanorth,Standard_E20ds_v5,on_demand,NA,1.9,USD,Azure Retail Prices API,2025-12-18T04:46:59.546722 +AZURE,southafricanorth,Standard_E20ds_v5,reserved_1y,NA,1.121005,USD,Azure Retail Prices API,2025-12-18T04:47:00.774137 +AZURE,southafricanorth,Standard_E20ds_v5,reserved_3y,NA,0.721994,USD,Azure Retail Prices API,2025-12-18T04:47:00.774141 +AZURE,southafricanorth,Standard_E20ds_v5,spot,NA,0.35112,USD,Azure Retail Prices API,2025-12-18T04:46:59.546848 +AZURE,southafricanorth,Standard_E20ds_v6,on_demand,NA,2.175,USD,Azure Retail Prices API,2025-12-18T04:46:59.546438 +AZURE,southafricanorth,Standard_E20ds_v6,reserved_1y,NA,1.348402,USD,Azure Retail Prices API,2025-12-18T04:47:00.773749 +AZURE,southafricanorth,Standard_E20ds_v6,reserved_3y,NA,0.848174,USD,Azure Retail Prices API,2025-12-18T04:47:00.773753 +AZURE,southafricanorth,Standard_E20ds_v6,spot,NA,0.40194,USD,Azure Retail Prices API,2025-12-18T04:46:59.546719 +AZURE,southafricanorth,Standard_E20s_v4,on_demand,NA,1.68,USD,Azure Retail Prices API,2025-12-18T04:46:59.546801 +AZURE,southafricanorth,Standard_E20s_v4,reserved_1y,NA,0.988014,USD,Azure Retail Prices API,2025-12-18T04:47:00.774256 +AZURE,southafricanorth,Standard_E20s_v4,reserved_3y,NA,0.631659,USD,Azure Retail Prices API,2025-12-18T04:47:00.774261 +AZURE,southafricanorth,Standard_E20s_v4,spot,NA,0.310464,USD,Azure Retail Prices API,2025-12-18T04:46:59.546441 +AZURE,southafricanorth,Standard_E20s_v5,on_demand,NA,1.68,USD,Azure Retail Prices API,2025-12-18T04:46:59.546410 +AZURE,southafricanorth,Standard_E20s_v5,reserved_1y,NA,0.99121,USD,Azure Retail Prices API,2025-12-18T04:47:00.773699 +AZURE,southafricanorth,Standard_E20s_v5,reserved_3y,NA,0.621613,USD,Azure Retail Prices API,2025-12-18T04:47:00.773704 +AZURE,southafricanorth,Standard_E20s_v5,spot,NA,0.310464,USD,Azure Retail Prices API,2025-12-18T04:46:59.545947 +AZURE,southafricanorth,Standard_E2_v3,on_demand,NA,0.168,USD,Azure Retail Prices API,2025-12-18T04:46:59.546037 +AZURE,southafricanorth,Standard_E2_v3,reserved_1y,NA,0.104224,USD,Azure Retail Prices API,2025-12-18T04:47:00.772950 +AZURE,southafricanorth,Standard_E2_v3,reserved_3y,NA,0.066629,USD,Azure Retail Prices API,2025-12-18T04:47:00.772954 +AZURE,southafricanorth,Standard_E2_v3,spot,NA,0.031046,USD,Azure Retail Prices API,2025-12-18T04:46:59.546924 +AZURE,southafricanorth,Standard_E2ads_v6,on_demand,NA,0.194,USD,Azure Retail Prices API,2025-12-18T04:46:59.546672 +AZURE,southafricanorth,Standard_E2ads_v6,reserved_1y,NA,0.114498,USD,Azure Retail Prices API,2025-12-18T04:47:00.774088 +AZURE,southafricanorth,Standard_E2ads_v6,reserved_3y,NA,0.073706,USD,Azure Retail Prices API,2025-12-18T04:47:00.774093 +AZURE,southafricanorth,Standard_E2ads_v6,spot,NA,0.035851,USD,Azure Retail Prices API,2025-12-18T04:46:59.546651 +AZURE,southafricanorth,Standard_E2ds_v5,on_demand,NA,0.19,USD,Azure Retail Prices API,2025-12-18T04:46:59.546204 +AZURE,southafricanorth,Standard_E2ds_v5,reserved_1y,NA,0.1121,USD,Azure Retail Prices API,2025-12-18T04:47:00.773304 +AZURE,southafricanorth,Standard_E2ds_v5,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:47:00.773309 +AZURE,southafricanorth,Standard_E2ds_v5,spot,NA,0.035112,USD,Azure Retail Prices API,2025-12-18T04:46:59.545672 +AZURE,southafricanorth,Standard_E2ds_v6,on_demand,NA,0.217,USD,Azure Retail Prices API,2025-12-18T04:46:59.545830 +AZURE,southafricanorth,Standard_E2ds_v6,reserved_1y,NA,0.134817,USD,Azure Retail Prices API,2025-12-18T04:47:00.772510 +AZURE,southafricanorth,Standard_E2ds_v6,reserved_3y,NA,0.084817,USD,Azure Retail Prices API,2025-12-18T04:47:00.772518 +AZURE,southafricanorth,Standard_E2ds_v6,spot,NA,0.040102,USD,Azure Retail Prices API,2025-12-18T04:46:59.546900 +AZURE,southafricanorth,Standard_E2pds_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:46:59.546518 +AZURE,southafricanorth,Standard_E2pds_v6,reserved_1y,NA,0.096804,USD,Azure Retail Prices API,2025-12-18T04:47:00.773900 +AZURE,southafricanorth,Standard_E2pds_v6,reserved_3y,NA,0.062329,USD,Azure Retail Prices API,2025-12-18T04:47:00.773905 +AZURE,southafricanorth,Standard_E2pds_v6,spot,NA,0.030307,USD,Azure Retail Prices API,2025-12-18T04:46:59.546692 +AZURE,southafricanorth,Standard_E32_v3,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:59.546781 +AZURE,southafricanorth,Standard_E32_v3,reserved_1y,NA,1.668607,USD,Azure Retail Prices API,2025-12-18T04:47:00.774226 +AZURE,southafricanorth,Standard_E32_v3,reserved_3y,NA,1.066971,USD,Azure Retail Prices API,2025-12-18T04:47:00.774231 +AZURE,southafricanorth,Standard_E32_v3,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:59.545500 +AZURE,southafricanorth,Standard_E32a_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:59.546654 +AZURE,southafricanorth,Standard_E32a_v4,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:47:00.774078 +AZURE,southafricanorth,Standard_E32a_v4,reserved_3y,NA,1.021423,USD,Azure Retail Prices API,2025-12-18T04:47:00.774083 +AZURE,southafricanorth,Standard_E32a_v4,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:59.546341 +AZURE,southafricanorth,Standard_E32ads_v5,on_demand,NA,4.24,USD,Azure Retail Prices API,2025-12-18T04:46:59.546563 +AZURE,southafricanorth,Standard_E32ads_v5,reserved_1y,NA,1.633105,USD,Azure Retail Prices API,2025-12-18T04:47:00.774441 +AZURE,southafricanorth,Standard_E32ads_v5,reserved_3y,NA,1.051826,USD,Azure Retail Prices API,2025-12-18T04:47:00.774445 +AZURE,southafricanorth,Standard_E32ads_v5,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:46:59.546812 +AZURE,southafricanorth,Standard_E32ads_v6,on_demand,NA,3.104,USD,Azure Retail Prices API,2025-12-18T04:46:59.546577 +AZURE,southafricanorth,Standard_E32ads_v6,reserved_1y,NA,1.831393,USD,Azure Retail Prices API,2025-12-18T04:47:00.773999 +AZURE,southafricanorth,Standard_E32ads_v6,reserved_3y,NA,1.179528,USD,Azure Retail Prices API,2025-12-18T04:47:00.774004 +AZURE,southafricanorth,Standard_E32ads_v6,spot,NA,0.573619,USD,Azure Retail Prices API,2025-12-18T04:46:59.546676 +AZURE,southafricanorth,Standard_E32as_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:59.545480 +AZURE,southafricanorth,Standard_E32as_v4,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:47:00.771951 +AZURE,southafricanorth,Standard_E32as_v4,reserved_3y,NA,1.021423,USD,Azure Retail Prices API,2025-12-18T04:47:00.771956 +AZURE,southafricanorth,Standard_E32as_v4,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:59.546126 +AZURE,southafricanorth,Standard_E32as_v5,on_demand,NA,2.416,USD,Azure Retail Prices API,2025-12-18T04:46:59.546117 +AZURE,southafricanorth,Standard_E32as_v5,reserved_1y,NA,1.425457,USD,Azure Retail Prices API,2025-12-18T04:47:00.773124 +AZURE,southafricanorth,Standard_E32as_v5,reserved_3y,NA,0.918075,USD,Azure Retail Prices API,2025-12-18T04:47:00.773129 +AZURE,southafricanorth,Standard_E32as_v5,spot,NA,0.446477,USD,Azure Retail Prices API,2025-12-18T04:46:59.545436 +AZURE,southafricanorth,Standard_E32d_v4,on_demand,NA,3.04,USD,Azure Retail Prices API,2025-12-18T04:46:59.546310 +AZURE,southafricanorth,Standard_E32d_v4,reserved_1y,NA,1.787557,USD,Azure Retail Prices API,2025-12-18T04:47:00.773551 +AZURE,southafricanorth,Standard_E32d_v4,reserved_3y,NA,1.143037,USD,Azure Retail Prices API,2025-12-18T04:47:00.773556 +AZURE,southafricanorth,Standard_E32d_v4,spot,NA,0.561792,USD,Azure Retail Prices API,2025-12-18T04:46:59.546773 +AZURE,southafricanorth,Standard_E32ds_v4,on_demand,NA,3.04,USD,Azure Retail Prices API,2025-12-18T04:46:59.545650 +AZURE,southafricanorth,Standard_E32ds_v4,reserved_1y,NA,1.787557,USD,Azure Retail Prices API,2025-12-18T04:47:00.772246 +AZURE,southafricanorth,Standard_E32ds_v4,reserved_3y,NA,1.143037,USD,Azure Retail Prices API,2025-12-18T04:47:00.772251 +AZURE,southafricanorth,Standard_E32ds_v4,spot,NA,0.561792,USD,Azure Retail Prices API,2025-12-18T04:46:59.546420 +AZURE,southafricanorth,Standard_E32ds_v5,on_demand,NA,3.04,USD,Azure Retail Prices API,2025-12-18T04:46:59.546218 +AZURE,southafricanorth,Standard_E32ds_v5,reserved_1y,NA,1.793607,USD,Azure Retail Prices API,2025-12-18T04:47:00.773335 +AZURE,southafricanorth,Standard_E32ds_v5,reserved_3y,NA,1.155213,USD,Azure Retail Prices API,2025-12-18T04:47:00.773341 +AZURE,southafricanorth,Standard_E32ds_v5,spot,NA,0.561792,USD,Azure Retail Prices API,2025-12-18T04:46:59.546880 +AZURE,southafricanorth,Standard_E32ds_v6,on_demand,NA,3.48,USD,Azure Retail Prices API,2025-12-18T04:46:59.546083 +AZURE,southafricanorth,Standard_E32ds_v6,reserved_1y,NA,2.15742,USD,Azure Retail Prices API,2025-12-18T04:47:00.773041 +AZURE,southafricanorth,Standard_E32ds_v6,reserved_3y,NA,1.357078,USD,Azure Retail Prices API,2025-12-18T04:47:00.773046 +AZURE,southafricanorth,Standard_E32ds_v6,spot,NA,0.643104,USD,Azure Retail Prices API,2025-12-18T04:46:59.545956 +AZURE,southafricanorth,Standard_E32pds_v6,on_demand,NA,2.624,USD,Azure Retail Prices API,2025-12-18T04:46:59.546074 +AZURE,southafricanorth,Standard_E32pds_v6,reserved_1y,NA,1.548174,USD,Azure Retail Prices API,2025-12-18T04:47:00.773019 +AZURE,southafricanorth,Standard_E32pds_v6,reserved_3y,NA,0.997108,USD,Azure Retail Prices API,2025-12-18T04:47:00.773025 +AZURE,southafricanorth,Standard_E32pds_v6,spot,NA,0.484915,USD,Azure Retail Prices API,2025-12-18T04:46:59.545700 +AZURE,southafricanorth,Standard_E32ps_v6,on_demand,NA,2.067,USD,Azure Retail Prices API,2025-12-18T04:46:59.545914 +AZURE,southafricanorth,Standard_E32ps_v6,reserved_1y,NA,1.219635,USD,Azure Retail Prices API,2025-12-18T04:47:00.772736 +AZURE,southafricanorth,Standard_E32ps_v6,reserved_3y,NA,0.78554,USD,Azure Retail Prices API,2025-12-18T04:47:00.772741 +AZURE,southafricanorth,Standard_E32ps_v6,spot,NA,0.381982,USD,Azure Retail Prices API,2025-12-18T04:46:59.546913 +AZURE,southafricanorth,Standard_E32s_v3,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:59.545546 +AZURE,southafricanorth,Standard_E32s_v3,reserved_1y,NA,1.668607,USD,Azure Retail Prices API,2025-12-18T04:47:00.772066 +AZURE,southafricanorth,Standard_E32s_v3,reserved_3y,NA,1.066971,USD,Azure Retail Prices API,2025-12-18T04:47:00.772072 +AZURE,southafricanorth,Standard_E32s_v3,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:59.546952 +AZURE,southafricanorth,Standard_E32s_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:59.545628 +AZURE,southafricanorth,Standard_E32s_v4,reserved_1y,NA,1.580594,USD,Azure Retail Prices API,2025-12-18T04:47:00.772202 +AZURE,southafricanorth,Standard_E32s_v4,reserved_3y,NA,1.010693,USD,Azure Retail Prices API,2025-12-18T04:47:00.772207 +AZURE,southafricanorth,Standard_E32s_v4,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:59.545419 +AZURE,southafricanorth,Standard_E32s_v5,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:59.545860 +AZURE,southafricanorth,Standard_E32s_v5,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:47:00.772604 +AZURE,southafricanorth,Standard_E32s_v5,reserved_3y,NA,0.994559,USD,Azure Retail Prices API,2025-12-18T04:47:00.772612 +AZURE,southafricanorth,Standard_E32s_v5,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:59.545477 +AZURE,southafricanorth,Standard_E48a_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.546770 +AZURE,southafricanorth,Standard_E48a_v4,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:47:00.774206 +AZURE,southafricanorth,Standard_E48a_v4,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:47:00.774211 +AZURE,southafricanorth,Standard_E48a_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:46:59.545824 +AZURE,southafricanorth,Standard_E48ads_v5,on_demand,NA,6.36,USD,Azure Retail Prices API,2025-12-18T04:46:59.546828 +AZURE,southafricanorth,Standard_E48ads_v5,reserved_1y,NA,2.449658,USD,Azure Retail Prices API,2025-12-18T04:47:00.774539 +AZURE,southafricanorth,Standard_E48ads_v5,reserved_3y,NA,1.577778,USD,Azure Retail Prices API,2025-12-18T04:47:00.774543 +AZURE,southafricanorth,Standard_E48ads_v5,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:46:59.545962 +AZURE,southafricanorth,Standard_E48ads_v6,on_demand,NA,4.656,USD,Azure Retail Prices API,2025-12-18T04:46:59.545708 +AZURE,southafricanorth,Standard_E48ads_v6,reserved_1y,NA,2.747032,USD,Azure Retail Prices API,2025-12-18T04:47:00.772308 +AZURE,southafricanorth,Standard_E48ads_v6,reserved_3y,NA,1.769292,USD,Azure Retail Prices API,2025-12-18T04:47:00.772314 +AZURE,southafricanorth,Standard_E48ads_v6,spot,NA,0.860429,USD,Azure Retail Prices API,2025-12-18T04:46:59.545745 +AZURE,southafricanorth,Standard_E48as_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.546212 +AZURE,southafricanorth,Standard_E48as_v4,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:47:00.773313 +AZURE,southafricanorth,Standard_E48as_v4,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:47:00.773318 +AZURE,southafricanorth,Standard_E48as_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:46:59.545390 +AZURE,southafricanorth,Standard_E48as_v5,on_demand,NA,3.624,USD,Azure Retail Prices API,2025-12-18T04:46:59.545489 +AZURE,southafricanorth,Standard_E48as_v5,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:47:00.771962 +AZURE,southafricanorth,Standard_E48as_v5,reserved_3y,NA,1.377131,USD,Azure Retail Prices API,2025-12-18T04:47:00.771968 +AZURE,southafricanorth,Standard_E48as_v5,spot,NA,0.669715,USD,Azure Retail Prices API,2025-12-18T04:46:59.546610 +AZURE,southafricanorth,Standard_E48d_v4,on_demand,NA,4.56,USD,Azure Retail Prices API,2025-12-18T04:46:59.545911 +AZURE,southafricanorth,Standard_E48d_v4,reserved_1y,NA,2.681279,USD,Azure Retail Prices API,2025-12-18T04:47:00.772726 +AZURE,southafricanorth,Standard_E48d_v4,reserved_3y,NA,1.714574,USD,Azure Retail Prices API,2025-12-18T04:47:00.772731 +AZURE,southafricanorth,Standard_E48d_v4,spot,NA,0.842688,USD,Azure Retail Prices API,2025-12-18T04:46:59.546933 +AZURE,southafricanorth,Standard_E48ds_v4,on_demand,NA,4.56,USD,Azure Retail Prices API,2025-12-18T04:46:59.546626 +AZURE,southafricanorth,Standard_E48ds_v4,reserved_1y,NA,2.681279,USD,Azure Retail Prices API,2025-12-18T04:47:00.774059 +AZURE,southafricanorth,Standard_E48ds_v4,reserved_3y,NA,1.714574,USD,Azure Retail Prices API,2025-12-18T04:47:00.774064 +AZURE,southafricanorth,Standard_E48ds_v4,spot,NA,0.842688,USD,Azure Retail Prices API,2025-12-18T04:46:59.546942 +AZURE,southafricanorth,Standard_E48ds_v5,on_demand,NA,4.56,USD,Azure Retail Prices API,2025-12-18T04:46:59.546708 +AZURE,southafricanorth,Standard_E48ds_v5,reserved_1y,NA,2.690411,USD,Azure Retail Prices API,2025-12-18T04:47:00.774127 +AZURE,southafricanorth,Standard_E48ds_v5,reserved_3y,NA,1.732801,USD,Azure Retail Prices API,2025-12-18T04:47:00.774132 +AZURE,southafricanorth,Standard_E48ds_v5,spot,NA,0.842688,USD,Azure Retail Prices API,2025-12-18T04:46:59.546201 +AZURE,southafricanorth,Standard_E48ds_v6,on_demand,NA,5.22,USD,Azure Retail Prices API,2025-12-18T04:46:59.545429 +AZURE,southafricanorth,Standard_E48ds_v6,reserved_1y,NA,3.236073,USD,Azure Retail Prices API,2025-12-18T04:47:00.771846 +AZURE,southafricanorth,Standard_E48ds_v6,reserved_3y,NA,2.035616,USD,Azure Retail Prices API,2025-12-18T04:47:00.771854 +AZURE,southafricanorth,Standard_E48ds_v6,spot,NA,0.964656,USD,Azure Retail Prices API,2025-12-18T04:46:59.546019 +AZURE,southafricanorth,Standard_E48pds_v6,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:46:59.545976 +AZURE,southafricanorth,Standard_E48pds_v6,reserved_1y,NA,2.32226,USD,Azure Retail Prices API,2025-12-18T04:47:00.772828 +AZURE,southafricanorth,Standard_E48pds_v6,reserved_3y,NA,1.495662,USD,Azure Retail Prices API,2025-12-18T04:47:00.772833 +AZURE,southafricanorth,Standard_E48pds_v6,spot,NA,0.727373,USD,Azure Retail Prices API,2025-12-18T04:46:59.545591 +AZURE,southafricanorth,Standard_E48ps_v6,on_demand,NA,3.101,USD,Azure Retail Prices API,2025-12-18T04:46:59.545630 +AZURE,southafricanorth,Standard_E48ps_v6,reserved_1y,NA,1.829452,USD,Azure Retail Prices API,2025-12-18T04:47:00.772213 +AZURE,southafricanorth,Standard_E48ps_v6,reserved_3y,NA,1.178311,USD,Azure Retail Prices API,2025-12-18T04:47:00.772218 +AZURE,southafricanorth,Standard_E48ps_v6,spot,NA,0.573065,USD,Azure Retail Prices API,2025-12-18T04:46:59.546120 +AZURE,southafricanorth,Standard_E48s_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.546501 +AZURE,southafricanorth,Standard_E48s_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:47:00.773839 +AZURE,southafricanorth,Standard_E48s_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:47:00.773844 +AZURE,southafricanorth,Standard_E48s_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:46:59.545883 +AZURE,southafricanorth,Standard_E48s_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:46:59.545900 +AZURE,southafricanorth,Standard_E48s_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:47:00.772684 +AZURE,southafricanorth,Standard_E48s_v5,reserved_3y,NA,1.491857,USD,Azure Retail Prices API,2025-12-18T04:47:00.772689 +AZURE,southafricanorth,Standard_E48s_v5,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:46:59.546010 +AZURE,southafricanorth,Standard_E4_v3,on_demand,NA,0.336,USD,Azure Retail Prices API,2025-12-18T04:46:59.546215 +AZURE,southafricanorth,Standard_E4_v3,reserved_1y,NA,0.208333,USD,Azure Retail Prices API,2025-12-18T04:47:00.773324 +AZURE,southafricanorth,Standard_E4_v3,reserved_3y,NA,0.133219,USD,Azure Retail Prices API,2025-12-18T04:47:00.773330 +AZURE,southafricanorth,Standard_E4_v3,spot,NA,0.062093,USD,Azure Retail Prices API,2025-12-18T04:46:59.546824 +AZURE,southafricanorth,Standard_E4a_v4,on_demand,NA,0.336,USD,Azure Retail Prices API,2025-12-18T04:46:59.546198 +AZURE,southafricanorth,Standard_E4a_v4,reserved_1y,NA,0.198288,USD,Azure Retail Prices API,2025-12-18T04:47:00.773294 +AZURE,southafricanorth,Standard_E4a_v4,reserved_3y,NA,0.127664,USD,Azure Retail Prices API,2025-12-18T04:47:00.773299 +AZURE,southafricanorth,Standard_E4a_v4,spot,NA,0.062093,USD,Azure Retail Prices API,2025-12-18T04:46:59.546687 +AZURE,southafricanorth,Standard_E4ads_v5,on_demand,NA,0.53,USD,Azure Retail Prices API,2025-12-18T04:46:59.546069 +AZURE,southafricanorth,Standard_E4ads_v5,reserved_1y,NA,0.20411,USD,Azure Retail Prices API,2025-12-18T04:47:00.773830 +AZURE,southafricanorth,Standard_E4ads_v5,reserved_3y,NA,0.131469,USD,Azure Retail Prices API,2025-12-18T04:47:00.773835 +AZURE,southafricanorth,Standard_E4ads_v5,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:46:59.546978 +AZURE,southafricanorth,Standard_E4ads_v6,on_demand,NA,0.388,USD,Azure Retail Prices API,2025-12-18T04:46:59.546530 +AZURE,southafricanorth,Standard_E4ads_v6,reserved_1y,NA,0.228881,USD,Azure Retail Prices API,2025-12-18T04:47:00.773929 +AZURE,southafricanorth,Standard_E4ads_v6,reserved_3y,NA,0.147451,USD,Azure Retail Prices API,2025-12-18T04:47:00.773935 +AZURE,southafricanorth,Standard_E4ads_v6,spot,NA,0.071702,USD,Azure Retail Prices API,2025-12-18T04:46:59.546939 +AZURE,southafricanorth,Standard_E4as_v4,on_demand,NA,0.336,USD,Azure Retail Prices API,2025-12-18T04:46:59.546910 +AZURE,southafricanorth,Standard_E4as_v4,reserved_1y,NA,0.198288,USD,Azure Retail Prices API,2025-12-18T04:47:00.774430 +AZURE,southafricanorth,Standard_E4as_v4,reserved_3y,NA,0.127664,USD,Azure Retail Prices API,2025-12-18T04:47:00.774435 +AZURE,southafricanorth,Standard_E4as_v4,spot,NA,0.062093,USD,Azure Retail Prices API,2025-12-18T04:46:59.545703 +AZURE,southafricanorth,Standard_E4as_v5,on_demand,NA,0.486,USD,Azure Retail Prices API,2025-12-18T04:46:59.545996 +AZURE,southafricanorth,Standard_E4as_v5,reserved_1y,NA,0.178196,USD,Azure Retail Prices API,2025-12-18T04:47:00.774395 +AZURE,southafricanorth,Standard_E4as_v5,reserved_3y,NA,0.114764,USD,Azure Retail Prices API,2025-12-18T04:47:00.774400 +AZURE,southafricanorth,Standard_E4as_v5,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:46:59.546447 +AZURE,southafricanorth,Standard_E4d_v4,on_demand,NA,0.38,USD,Azure Retail Prices API,2025-12-18T04:46:59.546299 +AZURE,southafricanorth,Standard_E4d_v4,reserved_1y,NA,0.223402,USD,Azure Retail Prices API,2025-12-18T04:47:00.773512 +AZURE,southafricanorth,Standard_E4d_v4,reserved_3y,NA,0.142884,USD,Azure Retail Prices API,2025-12-18T04:47:00.773517 +AZURE,southafricanorth,Standard_E4d_v4,spot,NA,0.070224,USD,Azure Retail Prices API,2025-12-18T04:46:59.545967 +AZURE,southafricanorth,Standard_E4ds_v4,on_demand,NA,0.38,USD,Azure Retail Prices API,2025-12-18T04:46:59.545527 +AZURE,southafricanorth,Standard_E4ds_v4,reserved_1y,NA,0.223402,USD,Azure Retail Prices API,2025-12-18T04:47:00.772010 +AZURE,southafricanorth,Standard_E4ds_v4,reserved_3y,NA,0.142884,USD,Azure Retail Prices API,2025-12-18T04:47:00.772015 +AZURE,southafricanorth,Standard_E4ds_v4,spot,NA,0.070224,USD,Azure Retail Prices API,2025-12-18T04:46:59.546387 +AZURE,southafricanorth,Standard_E4ds_v5,on_demand,NA,0.38,USD,Azure Retail Prices API,2025-12-18T04:46:59.546602 +AZURE,southafricanorth,Standard_E4ds_v5,reserved_1y,NA,0.224201,USD,Azure Retail Prices API,2025-12-18T04:47:00.774050 +AZURE,southafricanorth,Standard_E4ds_v5,reserved_3y,NA,0.144406,USD,Azure Retail Prices API,2025-12-18T04:47:00.774055 +AZURE,southafricanorth,Standard_E4ds_v5,spot,NA,0.070224,USD,Azure Retail Prices API,2025-12-18T04:46:59.546195 +AZURE,southafricanorth,Standard_E4ds_v6,on_demand,NA,0.435,USD,Azure Retail Prices API,2025-12-18T04:46:59.546507 +AZURE,southafricanorth,Standard_E4ds_v6,reserved_1y,NA,0.269635,USD,Azure Retail Prices API,2025-12-18T04:47:00.773859 +AZURE,southafricanorth,Standard_E4ds_v6,reserved_3y,NA,0.169635,USD,Azure Retail Prices API,2025-12-18T04:47:00.773864 +AZURE,southafricanorth,Standard_E4ds_v6,spot,NA,0.080388,USD,Azure Retail Prices API,2025-12-18T04:46:59.546207 +AZURE,southafricanorth,Standard_E4pds_v6,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:46:59.546874 +AZURE,southafricanorth,Standard_E4pds_v6,reserved_1y,NA,0.193493,USD,Azure Retail Prices API,2025-12-18T04:47:00.774326 +AZURE,southafricanorth,Standard_E4pds_v6,reserved_3y,NA,0.124658,USD,Azure Retail Prices API,2025-12-18T04:47:00.774331 +AZURE,southafricanorth,Standard_E4pds_v6,spot,NA,0.060614,USD,Azure Retail Prices API,2025-12-18T04:46:59.546509 +AZURE,southafricanorth,Standard_E4ps_v6,on_demand,NA,0.258,USD,Azure Retail Prices API,2025-12-18T04:46:59.546058 +AZURE,southafricanorth,Standard_E4ps_v6,reserved_1y,NA,0.152511,USD,Azure Retail Prices API,2025-12-18T04:47:00.772998 +AZURE,southafricanorth,Standard_E4ps_v6,reserved_3y,NA,0.098174,USD,Azure Retail Prices API,2025-12-18T04:47:00.773003 +AZURE,southafricanorth,Standard_E4ps_v6,spot,NA,0.047678,USD,Azure Retail Prices API,2025-12-18T04:46:59.546535 +AZURE,southafricanorth,Standard_E4s_v4,on_demand,NA,0.336,USD,Azure Retail Prices API,2025-12-18T04:46:59.546405 +AZURE,southafricanorth,Standard_E4s_v4,reserved_1y,NA,0.197603,USD,Azure Retail Prices API,2025-12-18T04:47:00.773689 +AZURE,southafricanorth,Standard_E4s_v4,reserved_3y,NA,0.126332,USD,Azure Retail Prices API,2025-12-18T04:47:00.773694 +AZURE,southafricanorth,Standard_E4s_v4,spot,NA,0.062093,USD,Azure Retail Prices API,2025-12-18T04:46:59.545926 +AZURE,southafricanorth,Standard_E4s_v5,on_demand,NA,0.336,USD,Azure Retail Prices API,2025-12-18T04:46:59.545880 +AZURE,southafricanorth,Standard_E4s_v5,reserved_1y,NA,0.198288,USD,Azure Retail Prices API,2025-12-18T04:47:00.772652 +AZURE,southafricanorth,Standard_E4s_v5,reserved_3y,NA,0.124315,USD,Azure Retail Prices API,2025-12-18T04:47:00.772660 +AZURE,southafricanorth,Standard_E4s_v5,spot,NA,0.062093,USD,Azure Retail Prices API,2025-12-18T04:46:59.546042 +AZURE,southafricanorth,Standard_E64_v3,on_demand,NA,4.863,USD,Azure Retail Prices API,2025-12-18T04:46:59.545973 +AZURE,southafricanorth,Standard_E64_v3,reserved_1y,NA,3.160502,USD,Azure Retail Prices API,2025-12-18T04:47:00.772818 +AZURE,southafricanorth,Standard_E64_v3,reserved_3y,NA,2.021005,USD,Azure Retail Prices API,2025-12-18T04:47:00.772823 +AZURE,southafricanorth,Standard_E64_v3,spot,NA,0.898682,USD,Azure Retail Prices API,2025-12-18T04:46:59.546845 +AZURE,southafricanorth,Standard_E64a_v4,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:46:59.546072 +AZURE,southafricanorth,Standard_E64a_v4,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:47:00.773007 +AZURE,southafricanorth,Standard_E64a_v4,reserved_3y,NA,2.042884,USD,Azure Retail Prices API,2025-12-18T04:47:00.773013 +AZURE,southafricanorth,Standard_E64a_v4,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:46:59.546532 +AZURE,southafricanorth,Standard_E64ads_v5,on_demand,NA,8.48,USD,Azure Retail Prices API,2025-12-18T04:46:59.545692 +AZURE,southafricanorth,Standard_E64ads_v5,reserved_1y,NA,3.26621,USD,Azure Retail Prices API,2025-12-18T04:47:00.772879 +AZURE,southafricanorth,Standard_E64ads_v5,reserved_3y,NA,2.103691,USD,Azure Retail Prices API,2025-12-18T04:47:00.772884 +AZURE,southafricanorth,Standard_E64ads_v5,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:46:59.545818 +AZURE,southafricanorth,Standard_E64ads_v6,on_demand,NA,6.208,USD,Azure Retail Prices API,2025-12-18T04:46:59.546328 +AZURE,southafricanorth,Standard_E64ads_v6,reserved_1y,NA,3.662671,USD,Azure Retail Prices API,2025-12-18T04:47:00.773570 +AZURE,southafricanorth,Standard_E64ads_v6,reserved_3y,NA,2.359056,USD,Azure Retail Prices API,2025-12-18T04:47:00.773575 +AZURE,southafricanorth,Standard_E64ads_v6,spot,NA,1.147238,USD,Azure Retail Prices API,2025-12-18T04:46:59.546757 +AZURE,southafricanorth,Standard_E64as_v4,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:46:59.545728 +AZURE,southafricanorth,Standard_E64as_v4,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:47:00.772345 +AZURE,southafricanorth,Standard_E64as_v4,reserved_3y,NA,2.042884,USD,Azure Retail Prices API,2025-12-18T04:47:00.772350 +AZURE,southafricanorth,Standard_E64as_v4,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:46:59.546066 +AZURE,southafricanorth,Standard_E64as_v5,on_demand,NA,7.776,USD,Azure Retail Prices API,2025-12-18T04:46:59.545751 +AZURE,southafricanorth,Standard_E64as_v5,reserved_1y,NA,2.850913,USD,Azure Retail Prices API,2025-12-18T04:47:00.773483 +AZURE,southafricanorth,Standard_E64as_v5,reserved_3y,NA,1.836149,USD,Azure Retail Prices API,2025-12-18T04:47:00.773488 +AZURE,southafricanorth,Standard_E64as_v5,spot,NA,0.892954,USD,Azure Retail Prices API,2025-12-18T04:46:59.546618 +AZURE,southafricanorth,Standard_E64d_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:46:59.545893 +AZURE,southafricanorth,Standard_E64d_v4,reserved_1y,NA,3.575,USD,Azure Retail Prices API,2025-12-18T04:47:00.772674 +AZURE,southafricanorth,Standard_E64d_v4,reserved_3y,NA,2.286073,USD,Azure Retail Prices API,2025-12-18T04:47:00.772679 +AZURE,southafricanorth,Standard_E64d_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:46:59.546660 +AZURE,southafricanorth,Standard_E64ds_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:46:59.545739 +AZURE,southafricanorth,Standard_E64ds_v4,reserved_1y,NA,3.575,USD,Azure Retail Prices API,2025-12-18T04:47:00.772399 +AZURE,southafricanorth,Standard_E64ds_v4,reserved_3y,NA,2.286073,USD,Azure Retail Prices API,2025-12-18T04:47:00.772404 +AZURE,southafricanorth,Standard_E64ds_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:46:59.545762 +AZURE,southafricanorth,Standard_E64ds_v5,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:46:59.546100 +AZURE,southafricanorth,Standard_E64ds_v5,reserved_1y,NA,3.587215,USD,Azure Retail Prices API,2025-12-18T04:47:00.773080 +AZURE,southafricanorth,Standard_E64ds_v5,reserved_3y,NA,2.310388,USD,Azure Retail Prices API,2025-12-18T04:47:00.773085 +AZURE,southafricanorth,Standard_E64ds_v5,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:46:59.546821 +AZURE,southafricanorth,Standard_E64ds_v6,on_demand,NA,6.959,USD,Azure Retail Prices API,2025-12-18T04:46:59.546227 +AZURE,southafricanorth,Standard_E64ds_v6,reserved_1y,NA,4.31484,USD,Azure Retail Prices API,2025-12-18T04:47:00.773357 +AZURE,southafricanorth,Standard_E64ds_v6,reserved_3y,NA,2.714155,USD,Azure Retail Prices API,2025-12-18T04:47:00.773361 +AZURE,southafricanorth,Standard_E64ds_v6,spot,NA,1.286023,USD,Azure Retail Prices API,2025-12-18T04:46:59.545722 +AZURE,southafricanorth,Standard_E64pds_v6,on_demand,NA,5.248,USD,Azure Retail Prices API,2025-12-18T04:46:59.545602 +AZURE,southafricanorth,Standard_E64pds_v6,reserved_1y,NA,3.096347,USD,Azure Retail Prices API,2025-12-18T04:47:00.772180 +AZURE,southafricanorth,Standard_E64pds_v6,reserved_3y,NA,1.994254,USD,Azure Retail Prices API,2025-12-18T04:47:00.772185 +AZURE,southafricanorth,Standard_E64pds_v6,spot,NA,0.96983,USD,Azure Retail Prices API,2025-12-18T04:46:59.546725 +AZURE,southafricanorth,Standard_E64ps_v6,on_demand,NA,4.134,USD,Azure Retail Prices API,2025-12-18T04:46:59.546585 +AZURE,southafricanorth,Standard_E64ps_v6,reserved_1y,NA,2.439269,USD,Azure Retail Prices API,2025-12-18T04:47:00.774009 +AZURE,southafricanorth,Standard_E64ps_v6,reserved_3y,NA,1.571081,USD,Azure Retail Prices API,2025-12-18T04:47:00.774015 +AZURE,southafricanorth,Standard_E64ps_v6,spot,NA,0.763963,USD,Azure Retail Prices API,2025-12-18T04:46:59.546538 +AZURE,southafricanorth,Standard_E64s_v3,on_demand,NA,4.863,USD,Azure Retail Prices API,2025-12-18T04:46:59.545804 +AZURE,southafricanorth,Standard_E64s_v3,reserved_1y,NA,3.160502,USD,Azure Retail Prices API,2025-12-18T04:47:00.772467 +AZURE,southafricanorth,Standard_E64s_v3,reserved_3y,NA,2.021005,USD,Azure Retail Prices API,2025-12-18T04:47:00.772472 +AZURE,southafricanorth,Standard_E64s_v3,spot,NA,0.898682,USD,Azure Retail Prices API,2025-12-18T04:46:59.546716 +AZURE,southafricanorth,Standard_E64s_v4,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:46:59.546543 +AZURE,southafricanorth,Standard_E64s_v4,reserved_1y,NA,3.161073,USD,Azure Retail Prices API,2025-12-18T04:47:00.773940 +AZURE,southafricanorth,Standard_E64s_v4,reserved_3y,NA,2.021385,USD,Azure Retail Prices API,2025-12-18T04:47:00.773945 +AZURE,southafricanorth,Standard_E64s_v4,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:46:59.545787 +AZURE,southafricanorth,Standard_E64s_v5,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:46:59.545953 +AZURE,southafricanorth,Standard_E64s_v5,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:47:00.772798 +AZURE,southafricanorth,Standard_E64s_v5,reserved_3y,NA,1.989117,USD,Azure Retail Prices API,2025-12-18T04:47:00.772803 +AZURE,southafricanorth,Standard_E64s_v5,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:46:59.545608 +AZURE,southafricanorth,Standard_E80ids_v4,on_demand,NA,7.6,USD,Azure Retail Prices API,2025-12-18T04:46:59.546316 +AZURE,southafricanorth,Standard_E80ids_v4,reserved_1y,NA,4.468037,USD,Azure Retail Prices API,2025-12-18T04:47:00.773561 +AZURE,southafricanorth,Standard_E80ids_v4,reserved_3y,NA,2.857686,USD,Azure Retail Prices API,2025-12-18T04:47:00.773566 +AZURE,southafricanorth,Standard_E80ids_v4,spot,NA,1.40448,USD,Azure Retail Prices API,2025-12-18T04:46:59.546423 +AZURE,southafricanorth,Standard_E80is_v4,on_demand,NA,6.72,USD,Azure Retail Prices API,2025-12-18T04:46:59.546361 +AZURE,southafricanorth,Standard_E80is_v4,reserved_1y,NA,3.952055,USD,Azure Retail Prices API,2025-12-18T04:47:00.773619 +AZURE,southafricanorth,Standard_E80is_v4,reserved_3y,NA,2.526636,USD,Azure Retail Prices API,2025-12-18T04:47:00.773623 +AZURE,southafricanorth,Standard_E80is_v4,spot,NA,1.241856,USD,Azure Retail Prices API,2025-12-18T04:46:59.545426 +AZURE,southafricanorth,Standard_E8_v3,on_demand,NA,0.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.545532 +AZURE,southafricanorth,Standard_E8_v3,reserved_1y,NA,0.417352,USD,Azure Retail Prices API,2025-12-18T04:47:00.772032 +AZURE,southafricanorth,Standard_E8_v3,reserved_3y,NA,0.266857,USD,Azure Retail Prices API,2025-12-18T04:47:00.772037 +AZURE,southafricanorth,Standard_E8_v3,spot,NA,0.124186,USD,Azure Retail Prices API,2025-12-18T04:46:59.546936 +AZURE,southafricanorth,Standard_E8a_v4,on_demand,NA,0.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.545795 +AZURE,southafricanorth,Standard_E8a_v4,reserved_1y,NA,0.396461,USD,Azure Retail Prices API,2025-12-18T04:47:00.772447 +AZURE,southafricanorth,Standard_E8a_v4,reserved_3y,NA,0.255365,USD,Azure Retail Prices API,2025-12-18T04:47:00.772452 +AZURE,southafricanorth,Standard_E8a_v4,spot,NA,0.124186,USD,Azure Retail Prices API,2025-12-18T04:46:59.546158 +AZURE,southafricanorth,Standard_E8ads_v5,on_demand,NA,1.06,USD,Azure Retail Prices API,2025-12-18T04:46:59.546459 +AZURE,southafricanorth,Standard_E8ads_v5,reserved_1y,NA,0.408333,USD,Azure Retail Prices API,2025-12-18T04:47:00.774451 +AZURE,southafricanorth,Standard_E8ads_v5,reserved_3y,NA,0.262976,USD,Azure Retail Prices API,2025-12-18T04:47:00.774456 +AZURE,southafricanorth,Standard_E8ads_v5,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:46:59.546891 +AZURE,southafricanorth,Standard_E8ads_v6,on_demand,NA,0.776,USD,Azure Retail Prices API,2025-12-18T04:46:59.545521 +AZURE,southafricanorth,Standard_E8ads_v6,reserved_1y,NA,0.457877,USD,Azure Retail Prices API,2025-12-18T04:47:00.771999 +AZURE,southafricanorth,Standard_E8ads_v6,reserved_3y,NA,0.294863,USD,Azure Retail Prices API,2025-12-18T04:47:00.772004 +AZURE,southafricanorth,Standard_E8ads_v6,spot,NA,0.143405,USD,Azure Retail Prices API,2025-12-18T04:46:59.546583 +AZURE,southafricanorth,Standard_E8as_v4,on_demand,NA,0.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.546085 +AZURE,southafricanorth,Standard_E8as_v4,reserved_1y,NA,0.396461,USD,Azure Retail Prices API,2025-12-18T04:47:00.773051 +AZURE,southafricanorth,Standard_E8as_v4,reserved_3y,NA,0.255365,USD,Azure Retail Prices API,2025-12-18T04:47:00.773056 +AZURE,southafricanorth,Standard_E8as_v4,spot,NA,0.124186,USD,Azure Retail Prices API,2025-12-18T04:46:59.545725 +AZURE,southafricanorth,Standard_E8as_v5,on_demand,NA,0.604,USD,Azure Retail Prices API,2025-12-18T04:46:59.545932 +AZURE,southafricanorth,Standard_E8as_v5,reserved_1y,NA,0.356393,USD,Azure Retail Prices API,2025-12-18T04:47:00.772767 +AZURE,southafricanorth,Standard_E8as_v5,reserved_3y,NA,0.229528,USD,Azure Retail Prices API,2025-12-18T04:47:00.772773 +AZURE,southafricanorth,Standard_E8as_v5,spot,NA,0.111619,USD,Azure Retail Prices API,2025-12-18T04:46:59.546492 +AZURE,southafricanorth,Standard_E8d_v4,on_demand,NA,0.76,USD,Azure Retail Prices API,2025-12-18T04:46:59.546347 +AZURE,southafricanorth,Standard_E8d_v4,reserved_1y,NA,0.446918,USD,Azure Retail Prices API,2025-12-18T04:47:00.773589 +AZURE,southafricanorth,Standard_E8d_v4,reserved_3y,NA,0.285769,USD,Azure Retail Prices API,2025-12-18T04:47:00.773594 +AZURE,southafricanorth,Standard_E8d_v4,spot,NA,0.140448,USD,Azure Retail Prices API,2025-12-18T04:46:59.546452 +AZURE,southafricanorth,Standard_E8ds_v4,on_demand,NA,0.76,USD,Azure Retail Prices API,2025-12-18T04:46:59.546678 +AZURE,southafricanorth,Standard_E8ds_v4,reserved_1y,NA,0.446918,USD,Azure Retail Prices API,2025-12-18T04:47:00.774098 +AZURE,southafricanorth,Standard_E8ds_v4,reserved_3y,NA,0.285769,USD,Azure Retail Prices API,2025-12-18T04:47:00.774103 +AZURE,southafricanorth,Standard_E8ds_v4,spot,NA,0.140448,USD,Azure Retail Prices API,2025-12-18T04:46:59.545950 +AZURE,southafricanorth,Standard_E8ds_v5,on_demand,NA,0.76,USD,Azure Retail Prices API,2025-12-18T04:46:59.546568 +AZURE,southafricanorth,Standard_E8ds_v5,reserved_1y,NA,0.448402,USD,Azure Retail Prices API,2025-12-18T04:47:00.773990 +AZURE,southafricanorth,Standard_E8ds_v5,reserved_3y,NA,0.288813,USD,Azure Retail Prices API,2025-12-18T04:47:00.773995 +AZURE,southafricanorth,Standard_E8ds_v5,spot,NA,0.140448,USD,Azure Retail Prices API,2025-12-18T04:46:59.546432 +AZURE,southafricanorth,Standard_E8ds_v6,on_demand,NA,0.87,USD,Azure Retail Prices API,2025-12-18T04:46:59.546429 +AZURE,southafricanorth,Standard_E8ds_v6,reserved_1y,NA,0.539384,USD,Azure Retail Prices API,2025-12-18T04:47:00.773738 +AZURE,southafricanorth,Standard_E8ds_v6,reserved_3y,NA,0.339269,USD,Azure Retail Prices API,2025-12-18T04:47:00.773743 +AZURE,southafricanorth,Standard_E8ds_v6,spot,NA,0.160776,USD,Azure Retail Prices API,2025-12-18T04:46:59.546754 +AZURE,southafricanorth,Standard_E8pds_v6,on_demand,NA,0.656,USD,Azure Retail Prices API,2025-12-18T04:46:59.546014 +AZURE,southafricanorth,Standard_E8pds_v6,reserved_1y,NA,0.386986,USD,Azure Retail Prices API,2025-12-18T04:47:00.772900 +AZURE,southafricanorth,Standard_E8pds_v6,reserved_3y,NA,0.249277,USD,Azure Retail Prices API,2025-12-18T04:47:00.772905 +AZURE,southafricanorth,Standard_E8pds_v6,spot,NA,0.121229,USD,Azure Retail Prices API,2025-12-18T04:46:59.545594 +AZURE,southafricanorth,Standard_E8ps_v6,on_demand,NA,0.517,USD,Azure Retail Prices API,2025-12-18T04:46:59.545596 +AZURE,southafricanorth,Standard_E8ps_v6,reserved_1y,NA,0.304909,USD,Azure Retail Prices API,2025-12-18T04:47:00.772168 +AZURE,southafricanorth,Standard_E8ps_v6,reserved_3y,NA,0.196385,USD,Azure Retail Prices API,2025-12-18T04:47:00.772173 +AZURE,southafricanorth,Standard_E8ps_v6,spot,NA,0.095542,USD,Azure Retail Prices API,2025-12-18T04:46:59.545576 +AZURE,southafricanorth,Standard_E8s_v3,on_demand,NA,0.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.546002 +AZURE,southafricanorth,Standard_E8s_v3,reserved_1y,NA,0.417352,USD,Azure Retail Prices API,2025-12-18T04:47:00.772870 +AZURE,southafricanorth,Standard_E8s_v3,reserved_3y,NA,0.266857,USD,Azure Retail Prices API,2025-12-18T04:47:00.772874 +AZURE,southafricanorth,Standard_E8s_v3,spot,NA,0.124186,USD,Azure Retail Prices API,2025-12-18T04:46:59.546834 +AZURE,southafricanorth,Standard_E8s_v4,on_demand,NA,0.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.546028 +AZURE,southafricanorth,Standard_E8s_v4,reserved_1y,NA,0.395091,USD,Azure Retail Prices API,2025-12-18T04:47:00.772929 +AZURE,southafricanorth,Standard_E8s_v4,reserved_3y,NA,0.252664,USD,Azure Retail Prices API,2025-12-18T04:47:00.772934 +AZURE,southafricanorth,Standard_E8s_v4,spot,NA,0.124186,USD,Azure Retail Prices API,2025-12-18T04:46:59.545836 +AZURE,southafricanorth,Standard_E8s_v5,on_demand,NA,0.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.546103 +AZURE,southafricanorth,Standard_E8s_v5,reserved_1y,NA,0.396461,USD,Azure Retail Prices API,2025-12-18T04:47:00.773090 +AZURE,southafricanorth,Standard_E8s_v5,reserved_3y,NA,0.24863,USD,Azure Retail Prices API,2025-12-18T04:47:00.773095 +AZURE,southafricanorth,Standard_E8s_v5,spot,NA,0.124186,USD,Azure Retail Prices API,2025-12-18T04:46:59.546859 +AZURE,southafricanorth,Standard_E96a_v4,on_demand,NA,8.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.546739 +AZURE,southafricanorth,Standard_E96a_v4,reserved_1y,NA,4.757763,USD,Azure Retail Prices API,2025-12-18T04:47:00.774156 +AZURE,southafricanorth,Standard_E96a_v4,reserved_3y,NA,3.064307,USD,Azure Retail Prices API,2025-12-18T04:47:00.774161 +AZURE,southafricanorth,Standard_E96a_v4,spot,NA,1.490227,USD,Azure Retail Prices API,2025-12-18T04:46:59.546907 +AZURE,southafricanorth,Standard_E96ads_v5,on_demand,NA,8.304,USD,Azure Retail Prices API,2025-12-18T04:46:59.546289 +AZURE,southafricanorth,Standard_E96ads_v5,reserved_1y,NA,4.899315,USD,Azure Retail Prices API,2025-12-18T04:47:00.773502 +AZURE,southafricanorth,Standard_E96ads_v5,reserved_3y,NA,3.155518,USD,Azure Retail Prices API,2025-12-18T04:47:00.773507 +AZURE,southafricanorth,Standard_E96ads_v5,spot,NA,1.534579,USD,Azure Retail Prices API,2025-12-18T04:46:59.545509 +AZURE,southafricanorth,Standard_E96ads_v6,on_demand,NA,9.312,USD,Azure Retail Prices API,2025-12-18T04:46:59.546958 +AZURE,southafricanorth,Standard_E96ads_v6,reserved_1y,NA,5.494064,USD,Azure Retail Prices API,2025-12-18T04:47:00.774519 +AZURE,southafricanorth,Standard_E96ads_v6,reserved_3y,NA,3.538546,USD,Azure Retail Prices API,2025-12-18T04:47:00.774524 +AZURE,southafricanorth,Standard_E96ads_v6,spot,NA,1.720858,USD,Azure Retail Prices API,2025-12-18T04:46:59.546088 +AZURE,southafricanorth,Standard_E96as_v4,on_demand,NA,8.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.546369 +AZURE,southafricanorth,Standard_E96as_v4,reserved_1y,NA,4.757763,USD,Azure Retail Prices API,2025-12-18T04:47:00.773638 +AZURE,southafricanorth,Standard_E96as_v4,reserved_3y,NA,3.064307,USD,Azure Retail Prices API,2025-12-18T04:47:00.773642 +AZURE,southafricanorth,Standard_E96as_v4,spot,NA,1.490227,USD,Azure Retail Prices API,2025-12-18T04:46:59.546049 +AZURE,southafricanorth,Standard_E96as_v5,on_demand,NA,11.664,USD,Azure Retail Prices API,2025-12-18T04:46:59.546621 +AZURE,southafricanorth,Standard_E96as_v5,reserved_1y,NA,4.27637,USD,Azure Retail Prices API,2025-12-18T04:47:00.774510 +AZURE,southafricanorth,Standard_E96as_v5,reserved_3y,NA,2.754224,USD,Azure Retail Prices API,2025-12-18T04:47:00.774514 +AZURE,southafricanorth,Standard_E96as_v5,spot,NA,1.33943,USD,Azure Retail Prices API,2025-12-18T04:46:59.545993 +AZURE,southafricanorth,Standard_E96ds_v5,on_demand,NA,9.12,USD,Azure Retail Prices API,2025-12-18T04:46:59.546840 +AZURE,southafricanorth,Standard_E96ds_v5,reserved_1y,NA,5.380822,USD,Azure Retail Prices API,2025-12-18T04:47:00.774287 +AZURE,southafricanorth,Standard_E96ds_v5,reserved_3y,NA,3.465601,USD,Azure Retail Prices API,2025-12-18T04:47:00.774292 +AZURE,southafricanorth,Standard_E96ds_v5,spot,NA,1.685376,USD,Azure Retail Prices API,2025-12-18T04:46:59.545625 +AZURE,southafricanorth,Standard_E96ds_v6,on_demand,NA,10.439,USD,Azure Retail Prices API,2025-12-18T04:46:59.545566 +AZURE,southafricanorth,Standard_E96ds_v6,reserved_1y,NA,6.47226,USD,Azure Retail Prices API,2025-12-18T04:47:00.772122 +AZURE,southafricanorth,Standard_E96ds_v6,reserved_3y,NA,4.071233,USD,Azure Retail Prices API,2025-12-18T04:47:00.772127 +AZURE,southafricanorth,Standard_E96ds_v6,spot,NA,1.929127,USD,Azure Retail Prices API,2025-12-18T04:46:59.546810 +AZURE,southafricanorth,Standard_E96pds_v6,on_demand,NA,7.872,USD,Azure Retail Prices API,2025-12-18T04:46:59.546155 +AZURE,southafricanorth,Standard_E96pds_v6,reserved_1y,NA,4.644521,USD,Azure Retail Prices API,2025-12-18T04:47:00.773210 +AZURE,southafricanorth,Standard_E96pds_v6,reserved_3y,NA,2.991362,USD,Azure Retail Prices API,2025-12-18T04:47:00.773215 +AZURE,southafricanorth,Standard_E96pds_v6,spot,NA,1.454746,USD,Azure Retail Prices API,2025-12-18T04:46:59.545999 +AZURE,southafricanorth,Standard_E96ps_v6,on_demand,NA,6.202,USD,Azure Retail Prices API,2025-12-18T04:46:59.546052 +AZURE,southafricanorth,Standard_E96ps_v6,reserved_1y,NA,3.658904,USD,Azure Retail Prices API,2025-12-18T04:47:00.772979 +AZURE,southafricanorth,Standard_E96ps_v6,reserved_3y,NA,2.356621,USD,Azure Retail Prices API,2025-12-18T04:47:00.772984 +AZURE,southafricanorth,Standard_E96ps_v6,spot,NA,1.14613,USD,Azure Retail Prices API,2025-12-18T04:46:59.545756 +AZURE,southafricanorth,Standard_E96s_v5,on_demand,NA,8.064,USD,Azure Retail Prices API,2025-12-18T04:46:59.546393 +AZURE,southafricanorth,Standard_E96s_v5,reserved_1y,NA,4.757763,USD,Azure Retail Prices API,2025-12-18T04:47:00.773668 +AZURE,southafricanorth,Standard_E96s_v5,reserved_3y,NA,2.983676,USD,Azure Retail Prices API,2025-12-18T04:47:00.773674 +AZURE,southafricanorth,Standard_E96s_v5,spot,NA,1.490227,USD,Azure Retail Prices API,2025-12-18T04:46:59.546711 +AZURE,southafricanorth,Standard_EC16ads_v6,on_demand,NA,1.552,USD,Azure Retail Prices API,2025-12-18T04:46:59.546762 +AZURE,southafricanorth,Standard_EC16ads_v6,reserved_1y,NA,0.915639,USD,Azure Retail Prices API,2025-12-18T04:47:00.774196 +AZURE,southafricanorth,Standard_EC16ads_v6,reserved_3y,NA,0.589764,USD,Azure Retail Prices API,2025-12-18T04:47:00.774201 +AZURE,southafricanorth,Standard_EC16ads_v6,spot,NA,0.28681,USD,Azure Retail Prices API,2025-12-18T04:46:59.545445 +AZURE,southafricanorth,Standard_EC16as_v6,on_demand,NA,1.275,USD,Azure Retail Prices API,2025-12-18T04:46:59.546886 +AZURE,southafricanorth,Standard_EC16as_v6,reserved_1y,NA,0.752397,USD,Azure Retail Prices API,2025-12-18T04:47:00.774365 +AZURE,southafricanorth,Standard_EC16as_v6,reserved_3y,NA,0.484589,USD,Azure Retail Prices API,2025-12-18T04:47:00.774371 +AZURE,southafricanorth,Standard_EC16as_v6,spot,NA,0.23562,USD,Azure Retail Prices API,2025-12-18T04:46:59.545792 +AZURE,southafricanorth,Standard_EC2ads_v6,on_demand,NA,0.194,USD,Azure Retail Prices API,2025-12-18T04:46:59.546807 +AZURE,southafricanorth,Standard_EC2ads_v6,reserved_1y,NA,0.114498,USD,Azure Retail Prices API,2025-12-18T04:47:00.774266 +AZURE,southafricanorth,Standard_EC2ads_v6,reserved_3y,NA,0.073706,USD,Azure Retail Prices API,2025-12-18T04:47:00.774270 +AZURE,southafricanorth,Standard_EC2ads_v6,spot,NA,0.035851,USD,Azure Retail Prices API,2025-12-18T04:46:59.546111 +AZURE,southafricanorth,Standard_EC2as_v6,on_demand,NA,0.159,USD,Azure Retail Prices API,2025-12-18T04:46:59.545492 +AZURE,southafricanorth,Standard_EC2as_v6,reserved_1y,NA,0.094064,USD,Azure Retail Prices API,2025-12-18T04:47:00.771974 +AZURE,southafricanorth,Standard_EC2as_v6,reserved_3y,NA,0.060578,USD,Azure Retail Prices API,2025-12-18T04:47:00.771979 +AZURE,southafricanorth,Standard_EC2as_v6,spot,NA,0.029383,USD,Azure Retail Prices API,2025-12-18T04:46:59.545619 +AZURE,southafricanorth,Standard_EC32ads_v6,on_demand,NA,3.104,USD,Azure Retail Prices API,2025-12-18T04:46:59.545941 +AZURE,southafricanorth,Standard_EC32ads_v6,reserved_1y,NA,1.831393,USD,Azure Retail Prices API,2025-12-18T04:47:00.772788 +AZURE,southafricanorth,Standard_EC32ads_v6,reserved_3y,NA,1.179528,USD,Azure Retail Prices API,2025-12-18T04:47:00.772793 +AZURE,southafricanorth,Standard_EC32ads_v6,spot,NA,0.573619,USD,Azure Retail Prices API,2025-12-18T04:46:59.546670 +AZURE,southafricanorth,Standard_EC32as_v6,on_demand,NA,2.55,USD,Azure Retail Prices API,2025-12-18T04:46:59.546233 +AZURE,southafricanorth,Standard_EC32as_v6,reserved_1y,NA,1.50468,USD,Azure Retail Prices API,2025-12-18T04:47:00.773376 +AZURE,southafricanorth,Standard_EC32as_v6,reserved_3y,NA,0.96914,USD,Azure Retail Prices API,2025-12-18T04:47:00.773381 +AZURE,southafricanorth,Standard_EC32as_v6,spot,NA,0.47124,USD,Azure Retail Prices API,2025-12-18T04:46:59.546779 +AZURE,southafricanorth,Standard_EC48ads_v6,on_demand,NA,4.656,USD,Azure Retail Prices API,2025-12-18T04:46:59.546921 +AZURE,southafricanorth,Standard_EC48ads_v6,reserved_1y,NA,2.747032,USD,Azure Retail Prices API,2025-12-18T04:47:00.774461 +AZURE,southafricanorth,Standard_EC48ads_v6,reserved_3y,NA,1.769292,USD,Azure Retail Prices API,2025-12-18T04:47:00.774466 +AZURE,southafricanorth,Standard_EC48ads_v6,spot,NA,0.860429,USD,Azure Retail Prices API,2025-12-18T04:46:59.546765 +AZURE,southafricanorth,Standard_EC48as_v6,on_demand,NA,3.826,USD,Azure Retail Prices API,2025-12-18T04:46:59.546759 +AZURE,southafricanorth,Standard_EC48as_v6,reserved_1y,NA,2.257078,USD,Azure Retail Prices API,2025-12-18T04:47:00.774186 +AZURE,southafricanorth,Standard_EC48as_v6,reserved_3y,NA,1.453729,USD,Azure Retail Prices API,2025-12-18T04:47:00.774191 +AZURE,southafricanorth,Standard_EC48as_v6,spot,NA,0.707045,USD,Azure Retail Prices API,2025-12-18T04:46:59.545633 +AZURE,southafricanorth,Standard_EC4ads_v6,on_demand,NA,0.388,USD,Azure Retail Prices API,2025-12-18T04:46:59.545776 +AZURE,southafricanorth,Standard_EC4ads_v6,reserved_1y,NA,0.228881,USD,Azure Retail Prices API,2025-12-18T04:47:00.772428 +AZURE,southafricanorth,Standard_EC4ads_v6,reserved_3y,NA,0.147451,USD,Azure Retail Prices API,2025-12-18T04:47:00.772432 +AZURE,southafricanorth,Standard_EC4ads_v6,spot,NA,0.071702,USD,Azure Retail Prices API,2025-12-18T04:46:59.546730 +AZURE,southafricanorth,Standard_EC4as_v6,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:46:59.545736 +AZURE,southafricanorth,Standard_EC4as_v6,reserved_1y,NA,0.188128,USD,Azure Retail Prices API,2025-12-18T04:47:00.772375 +AZURE,southafricanorth,Standard_EC4as_v6,reserved_3y,NA,0.121157,USD,Azure Retail Prices API,2025-12-18T04:47:00.772380 +AZURE,southafricanorth,Standard_EC4as_v6,spot,NA,0.058951,USD,Azure Retail Prices API,2025-12-18T04:46:59.546588 +AZURE,southafricanorth,Standard_EC64ads_v6,on_demand,NA,6.208,USD,Azure Retail Prices API,2025-12-18T04:46:59.545908 +AZURE,southafricanorth,Standard_EC64ads_v6,reserved_1y,NA,3.662671,USD,Azure Retail Prices API,2025-12-18T04:47:00.772716 +AZURE,southafricanorth,Standard_EC64ads_v6,reserved_3y,NA,2.359056,USD,Azure Retail Prices API,2025-12-18T04:47:00.772721 +AZURE,southafricanorth,Standard_EC64ads_v6,spot,NA,1.147238,USD,Azure Retail Prices API,2025-12-18T04:46:59.546372 +AZURE,southafricanorth,Standard_EC64as_v6,on_demand,NA,5.101,USD,Azure Retail Prices API,2025-12-18T04:46:59.546245 +AZURE,southafricanorth,Standard_EC64as_v6,reserved_1y,NA,3.009475,USD,Azure Retail Prices API,2025-12-18T04:47:00.773423 +AZURE,southafricanorth,Standard_EC64as_v6,reserved_3y,NA,1.938318,USD,Azure Retail Prices API,2025-12-18T04:47:00.773428 +AZURE,southafricanorth,Standard_EC64as_v6,spot,NA,0.942665,USD,Azure Retail Prices API,2025-12-18T04:46:59.546170 +AZURE,southafricanorth,Standard_EC8ads_v6,on_demand,NA,0.776,USD,Azure Retail Prices API,2025-12-18T04:46:59.546357 +AZURE,southafricanorth,Standard_EC8ads_v6,reserved_1y,NA,0.457877,USD,Azure Retail Prices API,2025-12-18T04:47:00.773609 +AZURE,southafricanorth,Standard_EC8ads_v6,reserved_3y,NA,0.294863,USD,Azure Retail Prices API,2025-12-18T04:47:00.773614 +AZURE,southafricanorth,Standard_EC8ads_v6,spot,NA,0.143405,USD,Azure Retail Prices API,2025-12-18T04:46:59.546615 +AZURE,southafricanorth,Standard_EC8as_v6,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:59.546521 +AZURE,southafricanorth,Standard_EC8as_v6,reserved_1y,NA,0.376142,USD,Azure Retail Prices API,2025-12-18T04:47:00.773910 +AZURE,southafricanorth,Standard_EC8as_v6,reserved_3y,NA,0.242275,USD,Azure Retail Prices API,2025-12-18T04:47:00.773914 +AZURE,southafricanorth,Standard_EC8as_v6,spot,NA,0.117902,USD,Azure Retail Prices API,2025-12-18T04:46:59.546248 +AZURE,southafricanorth,Standard_EC96ads_v6,on_demand,NA,9.312,USD,Azure Retail Prices API,2025-12-18T04:46:59.546097 +AZURE,southafricanorth,Standard_EC96ads_v6,reserved_1y,NA,5.494064,USD,Azure Retail Prices API,2025-12-18T04:47:00.773070 +AZURE,southafricanorth,Standard_EC96ads_v6,reserved_3y,NA,3.538546,USD,Azure Retail Prices API,2025-12-18T04:47:00.773075 +AZURE,southafricanorth,Standard_EC96ads_v6,spot,NA,1.720858,USD,Azure Retail Prices API,2025-12-18T04:46:59.545985 +AZURE,southafricanorth,Standard_EC96as_v6,on_demand,NA,7.651,USD,Azure Retail Prices API,2025-12-18T04:46:59.546524 +AZURE,southafricanorth,Standard_EC96as_v6,reserved_1y,NA,4.514155,USD,Azure Retail Prices API,2025-12-18T04:47:00.773919 +AZURE,southafricanorth,Standard_EC96as_v6,reserved_3y,NA,2.907458,USD,Azure Retail Prices API,2025-12-18T04:47:00.773924 +AZURE,southafricanorth,Standard_EC96as_v6,spot,NA,1.413905,USD,Azure Retail Prices API,2025-12-18T04:46:59.545658 +AZURE,southafricanorth,Standard_F16,on_demand,NA,1.155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379875 +AZURE,southafricanorth,Standard_F16,reserved_1y,NA,0.693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379888 +AZURE,southafricanorth,Standard_F16,reserved_3y,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379893 +AZURE,southafricanorth,Standard_F16,spot,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379881 +AZURE,southafricanorth,Standard_F16s,on_demand,NA,1.155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382168 +AZURE,southafricanorth,Standard_F16s,reserved_1y,NA,0.693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382180 +AZURE,southafricanorth,Standard_F16s,reserved_3y,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382186 +AZURE,southafricanorth,Standard_F16s,spot,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382173 +AZURE,southafricanorth,Standard_F16s_v2,on_demand,NA,0.98,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384903 +AZURE,southafricanorth,Standard_F16s_v2,reserved_1y,NA,0.588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384911 +AZURE,southafricanorth,Standard_F16s_v2,reserved_3y,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384915 +AZURE,southafricanorth,Standard_F16s_v2,spot,NA,0.294,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384907 +AZURE,southafricanorth,Standard_F32s_v2,on_demand,NA,1.96,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385741 +AZURE,southafricanorth,Standard_F32s_v2,reserved_1y,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385749 +AZURE,southafricanorth,Standard_F32s_v2,reserved_3y,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385753 +AZURE,southafricanorth,Standard_F32s_v2,spot,NA,0.588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385745 +AZURE,southafricanorth,Standard_F4,on_demand,NA,0.28875,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378324 +AZURE,southafricanorth,Standard_F4,reserved_1y,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378333 +AZURE,southafricanorth,Standard_F4,reserved_3y,NA,0.1155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378337 +AZURE,southafricanorth,Standard_F4,spot,NA,0.086625,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378328 +AZURE,southafricanorth,Standard_F48s_v2,on_demand,NA,2.94,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386516 +AZURE,southafricanorth,Standard_F48s_v2,reserved_1y,NA,1.764,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386524 +AZURE,southafricanorth,Standard_F48s_v2,reserved_3y,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386529 +AZURE,southafricanorth,Standard_F48s_v2,spot,NA,0.882,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386520 +AZURE,southafricanorth,Standard_F4s,on_demand,NA,0.28875,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380604 +AZURE,southafricanorth,Standard_F4s,reserved_1y,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380613 +AZURE,southafricanorth,Standard_F4s,reserved_3y,NA,0.1155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380617 +AZURE,southafricanorth,Standard_F4s,spot,NA,0.086625,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380609 +AZURE,southafricanorth,Standard_F4s_v2,on_demand,NA,0.245,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383308 +AZURE,southafricanorth,Standard_F4s_v2,reserved_1y,NA,0.147,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383317 +AZURE,southafricanorth,Standard_F4s_v2,reserved_3y,NA,0.098,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383322 +AZURE,southafricanorth,Standard_F4s_v2,spot,NA,0.0735,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383313 +AZURE,southafricanorth,Standard_F64s_v2,on_demand,NA,3.92,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387287 +AZURE,southafricanorth,Standard_F64s_v2,reserved_1y,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387296 +AZURE,southafricanorth,Standard_F64s_v2,reserved_3y,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387300 +AZURE,southafricanorth,Standard_F64s_v2,spot,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387291 +AZURE,southafricanorth,Standard_F72s_v2,on_demand,NA,4.41,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388496 +AZURE,southafricanorth,Standard_F72s_v2,reserved_1y,NA,2.646,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388512 +AZURE,southafricanorth,Standard_F72s_v2,reserved_3y,NA,1.764,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388518 +AZURE,southafricanorth,Standard_F72s_v2,spot,NA,1.323,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388505 +AZURE,southafricanorth,Standard_F8,on_demand,NA,0.5775,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379127 +AZURE,southafricanorth,Standard_F8,reserved_1y,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379135 +AZURE,southafricanorth,Standard_F8,reserved_3y,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379139 +AZURE,southafricanorth,Standard_F8,spot,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379131 +AZURE,southafricanorth,Standard_F8s,on_demand,NA,0.5775,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381377 +AZURE,southafricanorth,Standard_F8s,reserved_1y,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381389 +AZURE,southafricanorth,Standard_F8s,reserved_3y,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381395 +AZURE,southafricanorth,Standard_F8s,spot,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381383 +AZURE,southafricanorth,Standard_F8s_v2,on_demand,NA,0.49,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384101 +AZURE,southafricanorth,Standard_F8s_v2,reserved_1y,NA,0.294,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384110 +AZURE,southafricanorth,Standard_F8s_v2,reserved_3y,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384126 +AZURE,southafricanorth,Standard_F8s_v2,spot,NA,0.147,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384106 +AZURE,southafricanorth,Standard_L16as_v3,on_demand,NA,1.64,USD,Azure Retail Prices API,2025-12-18T04:46:59.546277 +AZURE,southafricanorth,Standard_L16as_v3,reserved_1y,NA,1.049543,USD,Azure Retail Prices API,2025-12-18T04:47:00.773471 +AZURE,southafricanorth,Standard_L16as_v3,reserved_3y,NA,0.688813,USD,Azure Retail Prices API,2025-12-18T04:47:00.773478 +AZURE,southafricanorth,Standard_L16as_v3,spot,NA,0.303072,USD,Azure Retail Prices API,2025-12-18T04:46:59.546077 +AZURE,southafricanorth,Standard_L16s_v3,on_demand,NA,1.832,USD,Azure Retail Prices API,2025-12-18T04:46:59.546417 +AZURE,southafricanorth,Standard_L16s_v3,reserved_1y,NA,1.172489,USD,Azure Retail Prices API,2025-12-18T04:47:00.773718 +AZURE,southafricanorth,Standard_L16s_v3,reserved_3y,NA,0.769444,USD,Azure Retail Prices API,2025-12-18T04:47:00.773723 +AZURE,southafricanorth,Standard_L16s_v3,spot,NA,0.338554,USD,Azure Retail Prices API,2025-12-18T04:46:59.545875 +AZURE,southafricanorth,Standard_L32as_v3,on_demand,NA,3.28,USD,Azure Retail Prices API,2025-12-18T04:46:59.546302 +AZURE,southafricanorth,Standard_L32as_v3,reserved_1y,NA,2.099201,USD,Azure Retail Prices API,2025-12-18T04:47:00.773522 +AZURE,southafricanorth,Standard_L32as_v3,reserved_3y,NA,1.377588,USD,Azure Retail Prices API,2025-12-18T04:47:00.773527 +AZURE,southafricanorth,Standard_L32as_v3,spot,NA,0.606144,USD,Azure Retail Prices API,2025-12-18T04:46:59.545495 +AZURE,southafricanorth,Standard_L32s_v3,on_demand,NA,3.664,USD,Azure Retail Prices API,2025-12-18T04:46:59.545694 +AZURE,southafricanorth,Standard_L32s_v3,reserved_1y,NA,2.344977,USD,Azure Retail Prices API,2025-12-18T04:47:00.772289 +AZURE,southafricanorth,Standard_L32s_v3,reserved_3y,NA,1.538889,USD,Azure Retail Prices API,2025-12-18T04:47:00.772294 +AZURE,southafricanorth,Standard_L32s_v3,spot,NA,0.677107,USD,Azure Retail Prices API,2025-12-18T04:46:59.546768 +AZURE,southafricanorth,Standard_L48as_v3,on_demand,NA,4.92,USD,Azure Retail Prices API,2025-12-18T04:46:59.546512 +AZURE,southafricanorth,Standard_L48as_v3,reserved_1y,NA,3.148744,USD,Azure Retail Prices API,2025-12-18T04:47:00.773869 +AZURE,southafricanorth,Standard_L48as_v3,reserved_3y,NA,2.0664,USD,Azure Retail Prices API,2025-12-18T04:47:00.773874 +AZURE,southafricanorth,Standard_L48as_v3,spot,NA,0.909216,USD,Azure Retail Prices API,2025-12-18T04:46:59.546955 +AZURE,southafricanorth,Standard_L48s_v3,on_demand,NA,5.496,USD,Azure Retail Prices API,2025-12-18T04:46:59.546055 +AZURE,southafricanorth,Standard_L48s_v3,reserved_1y,NA,3.517466,USD,Azure Retail Prices API,2025-12-18T04:47:00.772988 +AZURE,southafricanorth,Standard_L48s_v3,reserved_3y,NA,2.308333,USD,Azure Retail Prices API,2025-12-18T04:47:00.772993 +AZURE,southafricanorth,Standard_L48s_v3,spot,NA,1.015661,USD,Azure Retail Prices API,2025-12-18T04:46:59.545711 +AZURE,southafricanorth,Standard_L64as_v3,on_demand,NA,6.56,USD,Azure Retail Prices API,2025-12-18T04:46:59.545570 +AZURE,southafricanorth,Standard_L64as_v3,reserved_1y,NA,4.198402,USD,Azure Retail Prices API,2025-12-18T04:47:00.772133 +AZURE,southafricanorth,Standard_L64as_v3,reserved_3y,NA,2.755213,USD,Azure Retail Prices API,2025-12-18T04:47:00.772139 +AZURE,southafricanorth,Standard_L64as_v3,spot,NA,1.212288,USD,Azure Retail Prices API,2025-12-18T04:46:59.546296 +AZURE,southafricanorth,Standard_L64s_v3,on_demand,NA,7.328,USD,Azure Retail Prices API,2025-12-18T04:46:59.546114 +AZURE,southafricanorth,Standard_L64s_v3,reserved_1y,NA,4.689954,USD,Azure Retail Prices API,2025-12-18T04:47:00.773100 +AZURE,southafricanorth,Standard_L64s_v3,reserved_3y,NA,3.077778,USD,Azure Retail Prices API,2025-12-18T04:47:00.773105 +AZURE,southafricanorth,Standard_L64s_v3,spot,NA,1.354214,USD,Azure Retail Prices API,2025-12-18T04:46:59.546613 +AZURE,southafricanorth,Standard_L80as_v3,on_demand,NA,8.2,USD,Azure Retail Prices API,2025-12-18T04:46:59.546927 +AZURE,southafricanorth,Standard_L80as_v3,reserved_1y,NA,5.247945,USD,Azure Retail Prices API,2025-12-18T04:47:00.774471 +AZURE,southafricanorth,Standard_L80as_v3,reserved_3y,NA,3.443988,USD,Azure Retail Prices API,2025-12-18T04:47:00.774475 +AZURE,southafricanorth,Standard_L80as_v3,spot,NA,1.51536,USD,Azure Retail Prices API,2025-12-18T04:46:59.546396 +AZURE,southafricanorth,Standard_L80s_v3,on_demand,NA,9.16,USD,Azure Retail Prices API,2025-12-18T04:46:59.546045 +AZURE,southafricanorth,Standard_L80s_v3,reserved_1y,NA,5.862443,USD,Azure Retail Prices API,2025-12-18T04:47:00.772970 +AZURE,southafricanorth,Standard_L80s_v3,reserved_3y,NA,3.847184,USD,Azure Retail Prices API,2025-12-18T04:47:00.772975 +AZURE,southafricanorth,Standard_L80s_v3,spot,NA,1.692768,USD,Azure Retail Prices API,2025-12-18T04:46:59.545680 +AZURE,southafricanorth,Standard_L8as_v3,on_demand,NA,0.82,USD,Azure Retail Prices API,2025-12-18T04:46:59.546449 +AZURE,southafricanorth,Standard_L8as_v3,reserved_1y,NA,0.524772,USD,Azure Retail Prices API,2025-12-18T04:47:00.773758 +AZURE,southafricanorth,Standard_L8as_v3,reserved_3y,NA,0.344406,USD,Azure Retail Prices API,2025-12-18T04:47:00.773763 +AZURE,southafricanorth,Standard_L8as_v3,spot,NA,0.151536,USD,Azure Retail Prices API,2025-12-18T04:46:59.546700 +AZURE,southafricanorth,Standard_L8s_v3,on_demand,NA,0.916,USD,Azure Retail Prices API,2025-12-18T04:46:59.546268 +AZURE,southafricanorth,Standard_L8s_v3,reserved_1y,NA,0.586187,USD,Azure Retail Prices API,2025-12-18T04:47:00.773452 +AZURE,southafricanorth,Standard_L8s_v3,reserved_3y,NA,0.384703,USD,Azure Retail Prices API,2025-12-18T04:47:00.773457 +AZURE,southafricanorth,Standard_L8s_v3,spot,NA,0.169277,USD,Azure Retail Prices API,2025-12-18T04:46:59.546498 +AZURE,southafricanorth,Standard_ND96isr_H100_v5,on_demand,NA,168.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.546172 +AZURE,southafricanorth,Standard_ND96isr_H100_v5,reserved_1y,NA,107.950114,USD,Azure Retail Prices API,2025-12-18T04:47:00.773239 +AZURE,southafricanorth,Standard_ND96isr_H100_v5,reserved_3y,NA,74.046994,USD,Azure Retail Prices API,2025-12-18T04:47:00.773244 +AZURE,southafricanorth,Standard_ND96isr_H100_v5,spot,NA,31.170586,USD,Azure Retail Prices API,2025-12-18T04:46:59.545773 +AZURE,southafricanorth,Standard_NV36adms_A10_v5,on_demand,NA,6.599,USD,Azure Retail Prices API,2025-12-18T04:46:59.545582 +AZURE,southafricanorth,Standard_NV36adms_A10_v5,reserved_1y,NA,4.223516,USD,Azure Retail Prices API,2025-12-18T04:47:00.772145 +AZURE,southafricanorth,Standard_NV36adms_A10_v5,reserved_3y,NA,2.903653,USD,Azure Retail Prices API,2025-12-18T04:47:00.772151 +AZURE,southafricanorth,Standard_NV36adms_A10_v5,spot,NA,1.219495,USD,Azure Retail Prices API,2025-12-18T04:46:59.546319 +AZURE,southafricanorth,Standard_NV36ads_A10_v5,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:46:59.546352 +AZURE,southafricanorth,Standard_NV36ads_A10_v5,reserved_1y,NA,2.990068,USD,Azure Retail Prices API,2025-12-18T04:47:00.773599 +AZURE,southafricanorth,Standard_NV36ads_A10_v5,reserved_3y,NA,2.05567,USD,Azure Retail Prices API,2025-12-18T04:47:00.773604 +AZURE,southafricanorth,Standard_NV36ads_A10_v5,spot,NA,0.863386,USD,Azure Retail Prices API,2025-12-18T04:46:59.546480 +AZURE,southafricanorth,Standard_NV72ads_A10_v5,on_demand,NA,9.519,USD,Azure Retail Prices API,2025-12-18T04:46:59.546426 +AZURE,southafricanorth,Standard_NV72ads_A10_v5,reserved_1y,NA,6.092237,USD,Azure Retail Prices API,2025-12-18T04:47:00.773728 +AZURE,southafricanorth,Standard_NV72ads_A10_v5,reserved_3y,NA,4.188432,USD,Azure Retail Prices API,2025-12-18T04:47:00.773733 +AZURE,southafricanorth,Standard_NV72ads_A10_v5,spot,NA,1.759111,USD,Azure Retail Prices API,2025-12-18T04:46:59.546851 +AZURE,southcentralus,Standard_D128ds_v6,on_demand,NA,9.568,USD,Azure Retail Prices API,2025-12-18T04:45:16.134463 +AZURE,southcentralus,Standard_D128ds_v6,reserved_1y,NA,5.932192,USD,Azure Retail Prices API,2025-12-18T04:45:18.149608 +AZURE,southcentralus,Standard_D128ds_v6,reserved_3y,NA,3.731507,USD,Azure Retail Prices API,2025-12-18T04:45:18.149612 +AZURE,southcentralus,Standard_D128ds_v6,spot,NA,1.768166,USD,Azure Retail Prices API,2025-12-18T04:45:16.134470 +AZURE,southcentralus,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488235 +AZURE,southcentralus,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488243 +AZURE,southcentralus,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488247 +AZURE,southcentralus,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488239 +AZURE,southcentralus,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488978 +AZURE,southcentralus,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488986 +AZURE,southcentralus,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488990 +AZURE,southcentralus,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488982 +AZURE,southcentralus,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490112 +AZURE,southcentralus,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490120 +AZURE,southcentralus,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490124 +AZURE,southcentralus,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490116 +AZURE,southcentralus,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490804 +AZURE,southcentralus,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490812 +AZURE,southcentralus,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490817 +AZURE,southcentralus,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490808 +AZURE,southcentralus,Standard_D16_v3,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:45:16.134340 +AZURE,southcentralus,Standard_D16_v3,reserved_1y,NA,0.555023,USD,Azure Retail Prices API,2025-12-18T04:45:18.149459 +AZURE,southcentralus,Standard_D16_v3,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:45:18.149462 +AZURE,southcentralus,Standard_D16_v3,spot,NA,0.162624,USD,Azure Retail Prices API,2025-12-18T04:45:16.133958 +AZURE,southcentralus,Standard_D16a_v4,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:45:16.133357 +AZURE,southcentralus,Standard_D16a_v4,reserved_1y,NA,0.552968,USD,Azure Retail Prices API,2025-12-18T04:45:18.148531 +AZURE,southcentralus,Standard_D16a_v4,reserved_3y,NA,0.368645,USD,Azure Retail Prices API,2025-12-18T04:45:18.148535 +AZURE,southcentralus,Standard_D16a_v4,spot,NA,0.170386,USD,Azure Retail Prices API,2025-12-18T04:45:16.134613 +AZURE,southcentralus,Standard_D16ads_v5,on_demand,NA,1.725,USD,Azure Retail Prices API,2025-12-18T04:45:16.134384 +AZURE,southcentralus,Standard_D16ads_v5,reserved_1y,NA,0.583447,USD,Azure Retail Prices API,2025-12-18T04:45:18.149764 +AZURE,southcentralus,Standard_D16ads_v5,reserved_3y,NA,0.375761,USD,Azure Retail Prices API,2025-12-18T04:45:18.149767 +AZURE,southcentralus,Standard_D16ads_v5,spot,NA,0.182767,USD,Azure Retail Prices API,2025-12-18T04:45:16.133994 +AZURE,southcentralus,Standard_D16ads_v6,on_demand,NA,1.093,USD,Azure Retail Prices API,2025-12-18T04:45:16.133520 +AZURE,southcentralus,Standard_D16ads_v6,reserved_1y,NA,0.644749,USD,Azure Retail Prices API,2025-12-18T04:45:18.148664 +AZURE,southcentralus,Standard_D16ads_v6,reserved_3y,NA,0.415259,USD,Azure Retail Prices API,2025-12-18T04:45:18.148669 +AZURE,southcentralus,Standard_D16ads_v6,spot,NA,0.201986,USD,Azure Retail Prices API,2025-12-18T04:45:16.133411 +AZURE,southcentralus,Standard_D16as_v4,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:45:16.134676 +AZURE,southcentralus,Standard_D16as_v4,reserved_1y,NA,0.552968,USD,Azure Retail Prices API,2025-12-18T04:45:18.149816 +AZURE,southcentralus,Standard_D16as_v4,reserved_3y,NA,0.368645,USD,Azure Retail Prices API,2025-12-18T04:45:18.149818 +AZURE,southcentralus,Standard_D16as_v4,spot,NA,0.170386,USD,Azure Retail Prices API,2025-12-18T04:45:16.134555 +AZURE,southcentralus,Standard_D16as_v5,on_demand,NA,1.562,USD,Azure Retail Prices API,2025-12-18T04:45:16.133101 +AZURE,southcentralus,Standard_D16as_v5,reserved_1y,NA,0.4871,USD,Azure Retail Prices API,2025-12-18T04:45:18.149341 +AZURE,southcentralus,Standard_D16as_v5,reserved_3y,NA,0.313737,USD,Azure Retail Prices API,2025-12-18T04:45:18.149344 +AZURE,southcentralus,Standard_D16as_v5,spot,NA,0.152645,USD,Azure Retail Prices API,2025-12-18T04:45:16.134549 +AZURE,southcentralus,Standard_D16d_v4,on_demand,NA,1.175,USD,Azure Retail Prices API,2025-12-18T04:45:16.133212 +AZURE,southcentralus,Standard_D16d_v4,reserved_1y,NA,0.693379,USD,Azure Retail Prices API,2025-12-18T04:45:18.148394 +AZURE,southcentralus,Standard_D16d_v4,reserved_3y,NA,0.446575,USD,Azure Retail Prices API,2025-12-18T04:45:18.148397 +AZURE,southcentralus,Standard_D16d_v4,spot,NA,0.21714,USD,Azure Retail Prices API,2025-12-18T04:45:16.133178 +AZURE,southcentralus,Standard_D16ds_v4,on_demand,NA,1.175,USD,Azure Retail Prices API,2025-12-18T04:45:16.133977 +AZURE,southcentralus,Standard_D16ds_v4,reserved_1y,NA,0.693379,USD,Azure Retail Prices API,2025-12-18T04:45:18.149115 +AZURE,southcentralus,Standard_D16ds_v4,reserved_3y,NA,0.446575,USD,Azure Retail Prices API,2025-12-18T04:45:18.149118 +AZURE,southcentralus,Standard_D16ds_v4,spot,NA,0.21714,USD,Azure Retail Prices API,2025-12-18T04:45:16.133184 +AZURE,southcentralus,Standard_D16ds_v5,on_demand,NA,1.085,USD,Azure Retail Prices API,2025-12-18T04:45:16.133760 +AZURE,southcentralus,Standard_D16ds_v5,reserved_1y,NA,0.640068,USD,Azure Retail Prices API,2025-12-18T04:45:18.148845 +AZURE,southcentralus,Standard_D16ds_v5,reserved_3y,NA,0.412215,USD,Azure Retail Prices API,2025-12-18T04:45:18.148848 +AZURE,southcentralus,Standard_D16ds_v5,spot,NA,0.21407,USD,Azure Retail Prices API,2025-12-18T04:45:16.133616 +AZURE,southcentralus,Standard_D16ds_v6,on_demand,NA,1.196,USD,Azure Retail Prices API,2025-12-18T04:45:16.134414 +AZURE,southcentralus,Standard_D16ds_v6,reserved_1y,NA,0.741553,USD,Azure Retail Prices API,2025-12-18T04:45:18.149546 +AZURE,southcentralus,Standard_D16ds_v6,reserved_3y,NA,0.466438,USD,Azure Retail Prices API,2025-12-18T04:45:18.149549 +AZURE,southcentralus,Standard_D16ds_v6,spot,NA,0.221021,USD,Azure Retail Prices API,2025-12-18T04:45:16.133892 +AZURE,southcentralus,Standard_D16pds_v6,on_demand,NA,0.882,USD,Azure Retail Prices API,2025-12-18T04:45:16.134505 +AZURE,southcentralus,Standard_D16pds_v6,reserved_1y,NA,0.520091,USD,Azure Retail Prices API,2025-12-18T04:45:18.149660 +AZURE,southcentralus,Standard_D16pds_v6,reserved_3y,NA,0.335008,USD,Azure Retail Prices API,2025-12-18T04:45:18.149664 +AZURE,southcentralus,Standard_D16pds_v6,spot,NA,0.162994,USD,Azure Retail Prices API,2025-12-18T04:45:16.134076 +AZURE,southcentralus,Standard_D16ps_v6,on_demand,NA,0.674,USD,Azure Retail Prices API,2025-12-18T04:45:16.133474 +AZURE,southcentralus,Standard_D16ps_v6,reserved_1y,NA,0.397374,USD,Azure Retail Prices API,2025-12-18T04:45:18.148624 +AZURE,southcentralus,Standard_D16ps_v6,reserved_3y,NA,0.255974,USD,Azure Retail Prices API,2025-12-18T04:45:18.148627 +AZURE,southcentralus,Standard_D16ps_v6,spot,NA,0.124555,USD,Azure Retail Prices API,2025-12-18T04:45:16.133264 +AZURE,southcentralus,Standard_D16s_v3,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:45:16.133232 +AZURE,southcentralus,Standard_D16s_v3,reserved_1y,NA,0.555023,USD,Azure Retail Prices API,2025-12-18T04:45:18.148406 +AZURE,southcentralus,Standard_D16s_v3,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:45:18.148408 +AZURE,southcentralus,Standard_D16s_v3,spot,NA,0.162624,USD,Azure Retail Prices API,2025-12-18T04:45:16.133543 +AZURE,southcentralus,Standard_D16s_v4,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:45:16.133834 +AZURE,southcentralus,Standard_D16s_v4,reserved_1y,NA,0.543721,USD,Azure Retail Prices API,2025-12-18T04:45:18.148949 +AZURE,southcentralus,Standard_D16s_v4,reserved_3y,NA,0.35019,USD,Azure Retail Prices API,2025-12-18T04:45:18.148952 +AZURE,southcentralus,Standard_D16s_v4,spot,NA,0.170386,USD,Azure Retail Prices API,2025-12-18T04:45:16.134165 +AZURE,southcentralus,Standard_D16s_v5,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:45:16.134258 +AZURE,southcentralus,Standard_D16s_v5,reserved_1y,NA,0.543721,USD,Azure Retail Prices API,2025-12-18T04:45:18.149403 +AZURE,southcentralus,Standard_D16s_v5,reserved_3y,NA,0.340982,USD,Azure Retail Prices API,2025-12-18T04:45:18.149406 +AZURE,southcentralus,Standard_D16s_v5,spot,NA,0.170386,USD,Azure Retail Prices API,2025-12-18T04:45:16.133526 +AZURE,southcentralus,Standard_D2ads_v6,on_demand,NA,0.137,USD,Azure Retail Prices API,2025-12-18T04:45:16.134036 +AZURE,southcentralus,Standard_D2ads_v6,reserved_1y,NA,0.080594,USD,Azure Retail Prices API,2025-12-18T04:45:18.149165 +AZURE,southcentralus,Standard_D2ads_v6,reserved_3y,NA,0.051903,USD,Azure Retail Prices API,2025-12-18T04:45:18.149168 +AZURE,southcentralus,Standard_D2ads_v6,spot,NA,0.025318,USD,Azure Retail Prices API,2025-12-18T04:45:16.133874 +AZURE,southcentralus,Standard_D2ds_v6,on_demand,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:45:16.134240 +AZURE,southcentralus,Standard_D2ds_v6,reserved_1y,NA,0.092694,USD,Azure Retail Prices API,2025-12-18T04:45:18.149380 +AZURE,southcentralus,Standard_D2ds_v6,reserved_3y,NA,0.058295,USD,Azure Retail Prices API,2025-12-18T04:45:18.149383 +AZURE,southcentralus,Standard_D2ds_v6,spot,NA,0.02772,USD,Azure Retail Prices API,2025-12-18T04:45:16.134670 +AZURE,southcentralus,Standard_D32_v3,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:45:16.133771 +AZURE,southcentralus,Standard_D32_v3,reserved_1y,NA,1.110046,USD,Azure Retail Prices API,2025-12-18T04:45:18.148865 +AZURE,southcentralus,Standard_D32_v3,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:45:18.148868 +AZURE,southcentralus,Standard_D32_v3,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:45:16.133041 +AZURE,southcentralus,Standard_D32a_v4,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:45:16.133878 +AZURE,southcentralus,Standard_D32a_v4,reserved_1y,NA,1.105936,USD,Azure Retail Prices API,2025-12-18T04:45:18.149002 +AZURE,southcentralus,Standard_D32a_v4,reserved_3y,NA,0.737291,USD,Azure Retail Prices API,2025-12-18T04:45:18.149007 +AZURE,southcentralus,Standard_D32a_v4,spot,NA,0.340586,USD,Azure Retail Prices API,2025-12-18T04:45:16.133697 +AZURE,southcentralus,Standard_D32ads_v5,on_demand,NA,1.978,USD,Azure Retail Prices API,2025-12-18T04:45:16.133629 +AZURE,southcentralus,Standard_D32ads_v5,reserved_1y,NA,1.166781,USD,Azure Retail Prices API,2025-12-18T04:45:18.148756 +AZURE,southcentralus,Standard_D32ads_v5,reserved_3y,NA,0.751484,USD,Azure Retail Prices API,2025-12-18T04:45:18.148759 +AZURE,southcentralus,Standard_D32ads_v5,spot,NA,0.365534,USD,Azure Retail Prices API,2025-12-18T04:45:16.133700 +AZURE,southcentralus,Standard_D32ads_v6,on_demand,NA,2.186,USD,Azure Retail Prices API,2025-12-18T04:45:16.133394 +AZURE,southcentralus,Standard_D32ads_v6,reserved_1y,NA,1.289498,USD,Azure Retail Prices API,2025-12-18T04:45:18.148564 +AZURE,southcentralus,Standard_D32ads_v6,reserved_3y,NA,0.830518,USD,Azure Retail Prices API,2025-12-18T04:45:18.148567 +AZURE,southcentralus,Standard_D32ads_v6,spot,NA,0.403973,USD,Azure Retail Prices API,2025-12-18T04:45:16.133445 +AZURE,southcentralus,Standard_D32as_v4,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:45:16.134564 +AZURE,southcentralus,Standard_D32as_v4,reserved_1y,NA,1.105936,USD,Azure Retail Prices API,2025-12-18T04:45:18.149730 +AZURE,southcentralus,Standard_D32as_v4,reserved_3y,NA,0.737291,USD,Azure Retail Prices API,2025-12-18T04:45:18.149732 +AZURE,southcentralus,Standard_D32as_v4,spot,NA,0.340586,USD,Azure Retail Prices API,2025-12-18T04:45:16.133194 +AZURE,southcentralus,Standard_D32as_v5,on_demand,NA,3.123,USD,Azure Retail Prices API,2025-12-18T04:45:16.133312 +AZURE,southcentralus,Standard_D32as_v5,reserved_1y,NA,0.974201,USD,Azure Retail Prices API,2025-12-18T04:45:18.149103 +AZURE,southcentralus,Standard_D32as_v5,reserved_3y,NA,0.627473,USD,Azure Retail Prices API,2025-12-18T04:45:18.149106 +AZURE,southcentralus,Standard_D32as_v5,spot,NA,0.305105,USD,Azure Retail Prices API,2025-12-18T04:45:16.134197 +AZURE,southcentralus,Standard_D32d_v4,on_demand,NA,2.35,USD,Azure Retail Prices API,2025-12-18T04:45:16.133209 +AZURE,southcentralus,Standard_D32d_v4,reserved_1y,NA,1.386758,USD,Azure Retail Prices API,2025-12-18T04:45:18.148388 +AZURE,southcentralus,Standard_D32d_v4,reserved_3y,NA,0.893151,USD,Azure Retail Prices API,2025-12-18T04:45:18.148391 +AZURE,southcentralus,Standard_D32d_v4,spot,NA,0.43428,USD,Azure Retail Prices API,2025-12-18T04:45:16.134206 +AZURE,southcentralus,Standard_D32ds_v4,on_demand,NA,2.35,USD,Azure Retail Prices API,2025-12-18T04:45:16.133523 +AZURE,southcentralus,Standard_D32ds_v4,reserved_1y,NA,1.386758,USD,Azure Retail Prices API,2025-12-18T04:45:18.148675 +AZURE,southcentralus,Standard_D32ds_v4,reserved_3y,NA,0.893151,USD,Azure Retail Prices API,2025-12-18T04:45:18.148680 +AZURE,southcentralus,Standard_D32ds_v4,spot,NA,0.43428,USD,Azure Retail Prices API,2025-12-18T04:45:16.134174 +AZURE,southcentralus,Standard_D32ds_v5,on_demand,NA,2.17,USD,Azure Retail Prices API,2025-12-18T04:45:16.133056 +AZURE,southcentralus,Standard_D32ds_v5,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:45:18.148213 +AZURE,southcentralus,Standard_D32ds_v5,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:45:18.148218 +AZURE,southcentralus,Standard_D32ds_v5,spot,NA,0.428141,USD,Azure Retail Prices API,2025-12-18T04:45:16.134780 +AZURE,southcentralus,Standard_D32ds_v6,on_demand,NA,2.392,USD,Azure Retail Prices API,2025-12-18T04:45:16.133164 +AZURE,southcentralus,Standard_D32ds_v6,reserved_1y,NA,1.482991,USD,Azure Retail Prices API,2025-12-18T04:45:18.148347 +AZURE,southcentralus,Standard_D32ds_v6,reserved_3y,NA,0.932877,USD,Azure Retail Prices API,2025-12-18T04:45:18.148350 +AZURE,southcentralus,Standard_D32ds_v6,spot,NA,0.442042,USD,Azure Retail Prices API,2025-12-18T04:45:16.134284 +AZURE,southcentralus,Standard_D32pds_v6,on_demand,NA,1.763,USD,Azure Retail Prices API,2025-12-18T04:45:16.134420 +AZURE,southcentralus,Standard_D32pds_v6,reserved_1y,NA,1.040297,USD,Azure Retail Prices API,2025-12-18T04:45:18.149557 +AZURE,southcentralus,Standard_D32pds_v6,reserved_3y,NA,0.670015,USD,Azure Retail Prices API,2025-12-18T04:45:18.149560 +AZURE,southcentralus,Standard_D32pds_v6,spot,NA,0.325802,USD,Azure Retail Prices API,2025-12-18T04:45:16.134375 +AZURE,southcentralus,Standard_D32ps_v6,on_demand,NA,1.347,USD,Azure Retail Prices API,2025-12-18T04:45:16.133802 +AZURE,southcentralus,Standard_D32ps_v6,reserved_1y,NA,0.794863,USD,Azure Retail Prices API,2025-12-18T04:45:18.148910 +AZURE,southcentralus,Standard_D32ps_v6,reserved_3y,NA,0.511948,USD,Azure Retail Prices API,2025-12-18T04:45:18.148914 +AZURE,southcentralus,Standard_D32ps_v6,spot,NA,0.248926,USD,Azure Retail Prices API,2025-12-18T04:45:16.133176 +AZURE,southcentralus,Standard_D32s_v3,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:45:16.133059 +AZURE,southcentralus,Standard_D32s_v3,reserved_1y,NA,1.110046,USD,Azure Retail Prices API,2025-12-18T04:45:18.148223 +AZURE,southcentralus,Standard_D32s_v3,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:45:18.148228 +AZURE,southcentralus,Standard_D32s_v3,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:45:16.134085 +AZURE,southcentralus,Standard_D32s_v4,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:45:16.134619 +AZURE,southcentralus,Standard_D32s_v4,reserved_1y,NA,1.087443,USD,Azure Retail Prices API,2025-12-18T04:45:18.149793 +AZURE,southcentralus,Standard_D32s_v4,reserved_3y,NA,0.700419,USD,Azure Retail Prices API,2025-12-18T04:45:18.149796 +AZURE,southcentralus,Standard_D32s_v4,spot,NA,0.340586,USD,Azure Retail Prices API,2025-12-18T04:45:16.133497 +AZURE,southcentralus,Standard_D32s_v5,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:45:16.133763 +AZURE,southcentralus,Standard_D32s_v5,reserved_1y,NA,1.087443,USD,Azure Retail Prices API,2025-12-18T04:45:18.148851 +AZURE,southcentralus,Standard_D32s_v5,reserved_3y,NA,0.682002,USD,Azure Retail Prices API,2025-12-18T04:45:18.148854 +AZURE,southcentralus,Standard_D32s_v5,spot,NA,0.340586,USD,Azure Retail Prices API,2025-12-18T04:45:16.133304 +AZURE,southcentralus,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485221 +AZURE,southcentralus,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485230 +AZURE,southcentralus,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485234 +AZURE,southcentralus,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485225 +AZURE,southcentralus,Standard_D48a_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:16.133843 +AZURE,southcentralus,Standard_D48a_v4,reserved_1y,NA,1.658904,USD,Azure Retail Prices API,2025-12-18T04:45:18.148968 +AZURE,southcentralus,Standard_D48a_v4,reserved_3y,NA,1.105936,USD,Azure Retail Prices API,2025-12-18T04:45:18.148971 +AZURE,southcentralus,Standard_D48a_v4,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:16.134010 +AZURE,southcentralus,Standard_D48ads_v5,on_demand,NA,2.966,USD,Azure Retail Prices API,2025-12-18T04:45:16.133167 +AZURE,southcentralus,Standard_D48ads_v5,reserved_1y,NA,1.750228,USD,Azure Retail Prices API,2025-12-18T04:45:18.148353 +AZURE,southcentralus,Standard_D48ads_v5,reserved_3y,NA,1.127245,USD,Azure Retail Prices API,2025-12-18T04:45:18.148356 +AZURE,southcentralus,Standard_D48ads_v5,spot,NA,0.548117,USD,Azure Retail Prices API,2025-12-18T04:45:16.133191 +AZURE,southcentralus,Standard_D48ads_v6,on_demand,NA,3.278,USD,Azure Retail Prices API,2025-12-18T04:45:16.133429 +AZURE,southcentralus,Standard_D48ads_v6,reserved_1y,NA,1.934247,USD,Azure Retail Prices API,2025-12-18T04:45:18.148584 +AZURE,southcentralus,Standard_D48ads_v6,reserved_3y,NA,1.245776,USD,Azure Retail Prices API,2025-12-18T04:45:18.148587 +AZURE,southcentralus,Standard_D48ads_v6,spot,NA,0.605774,USD,Azure Retail Prices API,2025-12-18T04:45:16.133717 +AZURE,southcentralus,Standard_D48as_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:16.134334 +AZURE,southcentralus,Standard_D48as_v4,reserved_1y,NA,1.658904,USD,Azure Retail Prices API,2025-12-18T04:45:18.149448 +AZURE,southcentralus,Standard_D48as_v4,reserved_3y,NA,1.105936,USD,Azure Retail Prices API,2025-12-18T04:45:18.149451 +AZURE,southcentralus,Standard_D48as_v4,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:16.133047 +AZURE,southcentralus,Standard_D48as_v5,on_demand,NA,2.477,USD,Azure Retail Prices API,2025-12-18T04:45:16.133723 +AZURE,southcentralus,Standard_D48as_v5,reserved_1y,NA,1.461301,USD,Azure Retail Prices API,2025-12-18T04:45:18.148820 +AZURE,southcentralus,Standard_D48as_v5,reserved_3y,NA,0.941172,USD,Azure Retail Prices API,2025-12-18T04:45:18.148823 +AZURE,southcentralus,Standard_D48as_v5,spot,NA,0.45775,USD,Azure Retail Prices API,2025-12-18T04:45:16.134270 +AZURE,southcentralus,Standard_D48d_v4,on_demand,NA,3.526,USD,Azure Retail Prices API,2025-12-18T04:45:16.133288 +AZURE,southcentralus,Standard_D48d_v4,reserved_1y,NA,2.080137,USD,Azure Retail Prices API,2025-12-18T04:45:18.148470 +AZURE,southcentralus,Standard_D48d_v4,reserved_3y,NA,1.339726,USD,Azure Retail Prices API,2025-12-18T04:45:18.148472 +AZURE,southcentralus,Standard_D48d_v4,spot,NA,0.651605,USD,Azure Retail Prices API,2025-12-18T04:45:16.133503 +AZURE,southcentralus,Standard_D48ds_v4,on_demand,NA,3.526,USD,Azure Retail Prices API,2025-12-18T04:45:16.134079 +AZURE,southcentralus,Standard_D48ds_v4,reserved_1y,NA,2.080137,USD,Azure Retail Prices API,2025-12-18T04:45:18.149236 +AZURE,southcentralus,Standard_D48ds_v4,reserved_3y,NA,1.339726,USD,Azure Retail Prices API,2025-12-18T04:45:18.149239 +AZURE,southcentralus,Standard_D48ds_v4,spot,NA,0.651605,USD,Azure Retail Prices API,2025-12-18T04:45:16.133817 +AZURE,southcentralus,Standard_D48ds_v5,on_demand,NA,3.254,USD,Azure Retail Prices API,2025-12-18T04:45:16.133319 +AZURE,southcentralus,Standard_D48ds_v5,reserved_1y,NA,1.920091,USD,Azure Retail Prices API,2025-12-18T04:45:18.148498 +AZURE,southcentralus,Standard_D48ds_v5,reserved_3y,NA,1.236682,USD,Azure Retail Prices API,2025-12-18T04:45:18.148501 +AZURE,southcentralus,Standard_D48ds_v5,spot,NA,0.642014,USD,Azure Retail Prices API,2025-12-18T04:45:16.133344 +AZURE,southcentralus,Standard_D48ds_v6,on_demand,NA,3.588,USD,Azure Retail Prices API,2025-12-18T04:45:16.133050 +AZURE,southcentralus,Standard_D48ds_v6,reserved_1y,NA,2.224543,USD,Azure Retail Prices API,2025-12-18T04:45:18.148204 +AZURE,southcentralus,Standard_D48ds_v6,reserved_3y,NA,1.399315,USD,Azure Retail Prices API,2025-12-18T04:45:18.148208 +AZURE,southcentralus,Standard_D48ds_v6,spot,NA,0.663062,USD,Azure Retail Prices API,2025-12-18T04:45:16.133869 +AZURE,southcentralus,Standard_D48pds_v6,on_demand,NA,2.645,USD,Azure Retail Prices API,2025-12-18T04:45:16.133085 +AZURE,southcentralus,Standard_D48pds_v6,reserved_1y,NA,1.560388,USD,Azure Retail Prices API,2025-12-18T04:45:18.148275 +AZURE,southcentralus,Standard_D48pds_v6,reserved_3y,NA,1.005023,USD,Azure Retail Prices API,2025-12-18T04:45:18.148279 +AZURE,southcentralus,Standard_D48pds_v6,spot,NA,0.488796,USD,Azure Retail Prices API,2025-12-18T04:45:16.134489 +AZURE,southcentralus,Standard_D48ps_v6,on_demand,NA,2.021,USD,Azure Retail Prices API,2025-12-18T04:45:16.134042 +AZURE,southcentralus,Standard_D48ps_v6,reserved_1y,NA,1.192237,USD,Azure Retail Prices API,2025-12-18T04:45:18.149177 +AZURE,southcentralus,Standard_D48ps_v6,reserved_3y,NA,0.767922,USD,Azure Retail Prices API,2025-12-18T04:45:18.149180 +AZURE,southcentralus,Standard_D48ps_v6,spot,NA,0.373481,USD,Azure Retail Prices API,2025-12-18T04:45:16.133757 +AZURE,southcentralus,Standard_D48s_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:16.134290 +AZURE,southcentralus,Standard_D48s_v4,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:45:18.149426 +AZURE,southcentralus,Standard_D48s_v4,reserved_3y,NA,1.050609,USD,Azure Retail Prices API,2025-12-18T04:45:18.149428 +AZURE,southcentralus,Standard_D48s_v4,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:16.133341 +AZURE,southcentralus,Standard_D48s_v5,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:16.133259 +AZURE,southcentralus,Standard_D48s_v5,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:45:18.148435 +AZURE,southcentralus,Standard_D48s_v5,reserved_3y,NA,1.022983,USD,Azure Retail Prices API,2025-12-18T04:45:18.148438 +AZURE,southcentralus,Standard_D48s_v5,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:16.134574 +AZURE,southcentralus,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486068 +AZURE,southcentralus,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486076 +AZURE,southcentralus,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486080 +AZURE,southcentralus,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486072 +AZURE,southcentralus,Standard_D4a_v4,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:16.134502 +AZURE,southcentralus,Standard_D4a_v4,reserved_1y,NA,0.138242,USD,Azure Retail Prices API,2025-12-18T04:45:18.149655 +AZURE,southcentralus,Standard_D4a_v4,reserved_3y,NA,0.092161,USD,Azure Retail Prices API,2025-12-18T04:45:18.149658 +AZURE,southcentralus,Standard_D4a_v4,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:16.134317 +AZURE,southcentralus,Standard_D4ads_v5,on_demand,NA,0.247,USD,Azure Retail Prices API,2025-12-18T04:45:16.134096 +AZURE,southcentralus,Standard_D4ads_v5,reserved_1y,NA,0.14589,USD,Azure Retail Prices API,2025-12-18T04:45:18.149253 +AZURE,southcentralus,Standard_D4ads_v5,reserved_3y,NA,0.09395,USD,Azure Retail Prices API,2025-12-18T04:45:18.149255 +AZURE,southcentralus,Standard_D4ads_v5,spot,NA,0.045646,USD,Azure Retail Prices API,2025-12-18T04:45:16.134648 +AZURE,southcentralus,Standard_D4ads_v6,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:45:16.134105 +AZURE,southcentralus,Standard_D4ads_v6,reserved_1y,NA,0.161187,USD,Azure Retail Prices API,2025-12-18T04:45:18.149263 +AZURE,southcentralus,Standard_D4ads_v6,reserved_3y,NA,0.103805,USD,Azure Retail Prices API,2025-12-18T04:45:18.149266 +AZURE,southcentralus,Standard_D4ads_v6,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:16.133146 +AZURE,southcentralus,Standard_D4as_v5,on_demand,NA,0.206,USD,Azure Retail Prices API,2025-12-18T04:45:16.133515 +AZURE,southcentralus,Standard_D4as_v5,reserved_1y,NA,0.121804,USD,Azure Retail Prices API,2025-12-18T04:45:18.148655 +AZURE,southcentralus,Standard_D4as_v5,reserved_3y,NA,0.078425,USD,Azure Retail Prices API,2025-12-18T04:45:18.148660 +AZURE,southcentralus,Standard_D4as_v5,spot,NA,0.038069,USD,Azure Retail Prices API,2025-12-18T04:45:16.133641 +AZURE,southcentralus,Standard_D4d_v4,on_demand,NA,0.294,USD,Azure Retail Prices API,2025-12-18T04:45:16.134527 +AZURE,southcentralus,Standard_D4d_v4,reserved_1y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:45:18.149690 +AZURE,southcentralus,Standard_D4d_v4,reserved_3y,NA,0.111644,USD,Azure Retail Prices API,2025-12-18T04:45:18.149693 +AZURE,southcentralus,Standard_D4d_v4,spot,NA,0.054331,USD,Azure Retail Prices API,2025-12-18T04:45:16.133488 +AZURE,southcentralus,Standard_D4ds_v4,on_demand,NA,0.294,USD,Azure Retail Prices API,2025-12-18T04:45:16.134437 +AZURE,southcentralus,Standard_D4ds_v4,reserved_1y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:45:18.149568 +AZURE,southcentralus,Standard_D4ds_v4,reserved_3y,NA,0.111644,USD,Azure Retail Prices API,2025-12-18T04:45:18.149571 +AZURE,southcentralus,Standard_D4ds_v4,spot,NA,0.054331,USD,Azure Retail Prices API,2025-12-18T04:45:16.133752 +AZURE,southcentralus,Standard_D4ds_v5,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:45:16.133601 +AZURE,southcentralus,Standard_D4ds_v5,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:45:18.148736 +AZURE,southcentralus,Standard_D4ds_v5,reserved_3y,NA,0.103044,USD,Azure Retail Prices API,2025-12-18T04:45:18.148739 +AZURE,southcentralus,Standard_D4ds_v5,spot,NA,0.053468,USD,Azure Retail Prices API,2025-12-18T04:45:16.134003 +AZURE,southcentralus,Standard_D4ds_v6,on_demand,NA,0.299,USD,Azure Retail Prices API,2025-12-18T04:45:16.133284 +AZURE,southcentralus,Standard_D4ds_v6,reserved_1y,NA,0.185388,USD,Azure Retail Prices API,2025-12-18T04:45:18.148464 +AZURE,southcentralus,Standard_D4ds_v6,reserved_3y,NA,0.116629,USD,Azure Retail Prices API,2025-12-18T04:45:18.148467 +AZURE,southcentralus,Standard_D4ds_v6,spot,NA,0.055255,USD,Azure Retail Prices API,2025-12-18T04:45:16.134457 +AZURE,southcentralus,Standard_D4pds_v6,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:16.134046 +AZURE,southcentralus,Standard_D4pds_v6,reserved_1y,NA,0.130023,USD,Azure Retail Prices API,2025-12-18T04:45:18.149182 +AZURE,southcentralus,Standard_D4pds_v6,reserved_3y,NA,0.083752,USD,Azure Retail Prices API,2025-12-18T04:45:18.149185 +AZURE,southcentralus,Standard_D4pds_v6,spot,NA,0.040656,USD,Azure Retail Prices API,2025-12-18T04:45:16.133091 +AZURE,southcentralus,Standard_D4ps_v6,on_demand,NA,0.168,USD,Azure Retail Prices API,2025-12-18T04:45:16.133017 +AZURE,southcentralus,Standard_D4ps_v6,reserved_1y,NA,0.099315,USD,Azure Retail Prices API,2025-12-18T04:45:18.148161 +AZURE,southcentralus,Standard_D4ps_v6,reserved_3y,NA,0.064003,USD,Azure Retail Prices API,2025-12-18T04:45:18.148179 +AZURE,southcentralus,Standard_D4ps_v6,spot,NA,0.031046,USD,Azure Retail Prices API,2025-12-18T04:45:16.134530 +AZURE,southcentralus,Standard_D4s_v3,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:16.133371 +AZURE,southcentralus,Standard_D4s_v3,reserved_1y,NA,0.138699,USD,Azure Retail Prices API,2025-12-18T04:45:18.148540 +AZURE,southcentralus,Standard_D4s_v3,reserved_3y,NA,0.090221,USD,Azure Retail Prices API,2025-12-18T04:45:18.148545 +AZURE,southcentralus,Standard_D4s_v3,spot,NA,0.040656,USD,Azure Retail Prices API,2025-12-18T04:45:16.134237 +AZURE,southcentralus,Standard_D4s_v4,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:16.134321 +AZURE,southcentralus,Standard_D4s_v4,reserved_1y,NA,0.135959,USD,Azure Retail Prices API,2025-12-18T04:45:18.149437 +AZURE,southcentralus,Standard_D4s_v4,reserved_3y,NA,0.087557,USD,Azure Retail Prices API,2025-12-18T04:45:18.149439 +AZURE,southcentralus,Standard_D4s_v4,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:16.133789 +AZURE,southcentralus,Standard_D4s_v5,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:16.133667 +AZURE,southcentralus,Standard_D4s_v5,reserved_1y,NA,0.135959,USD,Azure Retail Prices API,2025-12-18T04:45:18.148781 +AZURE,southcentralus,Standard_D4s_v5,reserved_3y,NA,0.085236,USD,Azure Retail Prices API,2025-12-18T04:45:18.148785 +AZURE,southcentralus,Standard_D4s_v5,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:16.134267 +AZURE,southcentralus,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487111 +AZURE,southcentralus,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487125 +AZURE,southcentralus,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487132 +AZURE,southcentralus,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487118 +AZURE,southcentralus,Standard_D64_v3,on_demand,NA,3.52,USD,Azure Retail Prices API,2025-12-18T04:45:16.133376 +AZURE,southcentralus,Standard_D64_v3,reserved_1y,NA,2.220205,USD,Azure Retail Prices API,2025-12-18T04:45:18.148550 +AZURE,southcentralus,Standard_D64_v3,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:45:18.148554 +AZURE,southcentralus,Standard_D64_v3,spot,NA,0.650496,USD,Azure Retail Prices API,2025-12-18T04:45:16.134328 +AZURE,southcentralus,Standard_D64a_v4,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:45:16.134723 +AZURE,southcentralus,Standard_D64a_v4,reserved_1y,NA,2.211872,USD,Azure Retail Prices API,2025-12-18T04:45:18.149849 +AZURE,southcentralus,Standard_D64a_v4,reserved_3y,NA,1.474543,USD,Azure Retail Prices API,2025-12-18T04:45:18.149852 +AZURE,southcentralus,Standard_D64a_v4,spot,NA,0.681173,USD,Azure Retail Prices API,2025-12-18T04:45:16.133691 +AZURE,southcentralus,Standard_D64ads_v5,on_demand,NA,6.899,USD,Azure Retail Prices API,2025-12-18T04:45:16.133857 +AZURE,southcentralus,Standard_D64ads_v5,reserved_1y,NA,2.333562,USD,Azure Retail Prices API,2025-12-18T04:45:18.149872 +AZURE,southcentralus,Standard_D64ads_v5,reserved_3y,NA,1.502968,USD,Azure Retail Prices API,2025-12-18T04:45:18.149875 +AZURE,southcentralus,Standard_D64ads_v5,spot,NA,0.730884,USD,Azure Retail Prices API,2025-12-18T04:45:16.133218 +AZURE,southcentralus,Standard_D64ads_v6,on_demand,NA,4.371,USD,Azure Retail Prices API,2025-12-18T04:45:16.134093 +AZURE,southcentralus,Standard_D64ads_v6,reserved_1y,NA,2.578995,USD,Azure Retail Prices API,2025-12-18T04:45:18.149242 +AZURE,southcentralus,Standard_D64ads_v6,reserved_3y,NA,1.661073,USD,Azure Retail Prices API,2025-12-18T04:45:18.149244 +AZURE,southcentralus,Standard_D64ads_v6,spot,NA,0.807761,USD,Azure Retail Prices API,2025-12-18T04:45:16.134427 +AZURE,southcentralus,Standard_D64as_v4,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:45:16.133611 +AZURE,southcentralus,Standard_D64as_v4,reserved_1y,NA,2.211872,USD,Azure Retail Prices API,2025-12-18T04:45:18.148749 +AZURE,southcentralus,Standard_D64as_v4,reserved_3y,NA,1.474543,USD,Azure Retail Prices API,2025-12-18T04:45:18.148752 +AZURE,southcentralus,Standard_D64as_v4,spot,NA,0.681173,USD,Azure Retail Prices API,2025-12-18T04:45:16.134642 +AZURE,southcentralus,Standard_D64as_v5,on_demand,NA,3.302,USD,Azure Retail Prices API,2025-12-18T04:45:16.133273 +AZURE,southcentralus,Standard_D64as_v5,reserved_1y,NA,1.948402,USD,Azure Retail Prices API,2025-12-18T04:45:18.148452 +AZURE,southcentralus,Standard_D64as_v5,reserved_3y,NA,1.254909,USD,Azure Retail Prices API,2025-12-18T04:45:18.148455 +AZURE,southcentralus,Standard_D64as_v5,spot,NA,0.61021,USD,Azure Retail Prices API,2025-12-18T04:45:16.133276 +AZURE,southcentralus,Standard_D64d_v4,on_demand,NA,4.701,USD,Azure Retail Prices API,2025-12-18T04:45:16.133831 +AZURE,southcentralus,Standard_D64d_v4,reserved_1y,NA,2.773516,USD,Azure Retail Prices API,2025-12-18T04:45:18.148942 +AZURE,southcentralus,Standard_D64d_v4,reserved_3y,NA,1.786301,USD,Azure Retail Prices API,2025-12-18T04:45:18.148945 +AZURE,southcentralus,Standard_D64d_v4,spot,NA,0.868745,USD,Azure Retail Prices API,2025-12-18T04:45:16.134518 +AZURE,southcentralus,Standard_D64ds_v4,on_demand,NA,4.701,USD,Azure Retail Prices API,2025-12-18T04:45:16.134068 +AZURE,southcentralus,Standard_D64ds_v4,reserved_1y,NA,2.773516,USD,Azure Retail Prices API,2025-12-18T04:45:18.149224 +AZURE,southcentralus,Standard_D64ds_v4,reserved_3y,NA,1.786301,USD,Azure Retail Prices API,2025-12-18T04:45:18.149227 +AZURE,southcentralus,Standard_D64ds_v4,spot,NA,0.868745,USD,Azure Retail Prices API,2025-12-18T04:45:16.134654 +AZURE,southcentralus,Standard_D64ds_v5,on_demand,NA,4.339,USD,Azure Retail Prices API,2025-12-18T04:45:16.133989 +AZURE,southcentralus,Standard_D64ds_v5,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:45:18.149136 +AZURE,southcentralus,Standard_D64ds_v5,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:45:18.149139 +AZURE,southcentralus,Standard_D64ds_v5,spot,NA,0.856085,USD,Azure Retail Prices API,2025-12-18T04:45:16.134623 +AZURE,southcentralus,Standard_D64ds_v6,on_demand,NA,4.784,USD,Azure Retail Prices API,2025-12-18T04:45:16.133152 +AZURE,southcentralus,Standard_D64ds_v6,reserved_1y,NA,2.966096,USD,Azure Retail Prices API,2025-12-18T04:45:18.148330 +AZURE,southcentralus,Standard_D64ds_v6,reserved_3y,NA,1.865753,USD,Azure Retail Prices API,2025-12-18T04:45:18.148333 +AZURE,southcentralus,Standard_D64ds_v6,spot,NA,0.884083,USD,Azure Retail Prices API,2025-12-18T04:45:16.134460 +AZURE,southcentralus,Standard_D64pds_v6,on_demand,NA,3.526,USD,Azure Retail Prices API,2025-12-18T04:45:16.134577 +AZURE,southcentralus,Standard_D64pds_v6,reserved_1y,NA,2.080594,USD,Azure Retail Prices API,2025-12-18T04:45:18.149741 +AZURE,southcentralus,Standard_D64pds_v6,reserved_3y,NA,1.34003,USD,Azure Retail Prices API,2025-12-18T04:45:18.149744 +AZURE,southcentralus,Standard_D64pds_v6,spot,NA,0.651605,USD,Azure Retail Prices API,2025-12-18T04:45:16.133955 +AZURE,southcentralus,Standard_D64ps_v6,on_demand,NA,2.694,USD,Azure Retail Prices API,2025-12-18T04:45:16.134424 +AZURE,southcentralus,Standard_D64ps_v6,reserved_1y,NA,1.589726,USD,Azure Retail Prices API,2025-12-18T04:45:18.149562 +AZURE,southcentralus,Standard_D64ps_v6,reserved_3y,NA,1.023858,USD,Azure Retail Prices API,2025-12-18T04:45:18.149565 +AZURE,southcentralus,Standard_D64ps_v6,spot,NA,0.497851,USD,Azure Retail Prices API,2025-12-18T04:45:16.134018 +AZURE,southcentralus,Standard_D64s_v3,on_demand,NA,3.52,USD,Azure Retail Prices API,2025-12-18T04:45:16.134616 +AZURE,southcentralus,Standard_D64s_v3,reserved_1y,NA,2.220205,USD,Azure Retail Prices API,2025-12-18T04:45:18.149788 +AZURE,southcentralus,Standard_D64s_v3,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:45:18.149790 +AZURE,southcentralus,Standard_D64s_v3,spot,NA,0.650496,USD,Azure Retail Prices API,2025-12-18T04:45:16.134558 +AZURE,southcentralus,Standard_D64s_v4,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:45:16.133670 +AZURE,southcentralus,Standard_D64s_v4,reserved_1y,NA,2.175,USD,Azure Retail Prices API,2025-12-18T04:45:18.148788 +AZURE,southcentralus,Standard_D64s_v4,reserved_3y,NA,1.400837,USD,Azure Retail Prices API,2025-12-18T04:45:18.148792 +AZURE,southcentralus,Standard_D64s_v4,spot,NA,0.681173,USD,Azure Retail Prices API,2025-12-18T04:45:16.133551 +AZURE,southcentralus,Standard_D64s_v5,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:45:16.134234 +AZURE,southcentralus,Standard_D64s_v5,reserved_1y,NA,2.175,USD,Azure Retail Prices API,2025-12-18T04:45:18.149375 +AZURE,southcentralus,Standard_D64s_v5,reserved_3y,NA,1.363965,USD,Azure Retail Prices API,2025-12-18T04:45:18.149377 +AZURE,southcentralus,Standard_D64s_v5,spot,NA,0.681173,USD,Azure Retail Prices API,2025-12-18T04:45:16.133293 +AZURE,southcentralus,Standard_D8_v3,on_demand,NA,0.44,USD,Azure Retail Prices API,2025-12-18T04:45:16.133256 +AZURE,southcentralus,Standard_D8_v3,reserved_1y,NA,0.277511,USD,Azure Retail Prices API,2025-12-18T04:45:18.148429 +AZURE,southcentralus,Standard_D8_v3,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:45:18.148432 +AZURE,southcentralus,Standard_D8_v3,spot,NA,0.081312,USD,Azure Retail Prices API,2025-12-18T04:45:16.134495 +AZURE,southcentralus,Standard_D8a_v4,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:45:16.133732 +AZURE,southcentralus,Standard_D8a_v4,reserved_1y,NA,0.276484,USD,Azure Retail Prices API,2025-12-18T04:45:18.148833 +AZURE,southcentralus,Standard_D8a_v4,reserved_3y,NA,0.184323,USD,Azure Retail Prices API,2025-12-18T04:45:18.148836 +AZURE,southcentralus,Standard_D8a_v4,spot,NA,0.085193,USD,Azure Retail Prices API,2025-12-18T04:45:16.133654 +AZURE,southcentralus,Standard_D8ads_v5,on_demand,NA,0.494,USD,Azure Retail Prices API,2025-12-18T04:45:16.134391 +AZURE,southcentralus,Standard_D8ads_v5,reserved_1y,NA,0.291667,USD,Azure Retail Prices API,2025-12-18T04:45:18.149523 +AZURE,southcentralus,Standard_D8ads_v5,reserved_3y,NA,0.187861,USD,Azure Retail Prices API,2025-12-18T04:45:18.149526 +AZURE,southcentralus,Standard_D8ads_v5,spot,NA,0.091291,USD,Azure Retail Prices API,2025-12-18T04:45:16.133235 +AZURE,southcentralus,Standard_D8ads_v6,on_demand,NA,0.546,USD,Azure Retail Prices API,2025-12-18T04:45:16.134483 +AZURE,southcentralus,Standard_D8ads_v6,reserved_1y,NA,0.322374,USD,Azure Retail Prices API,2025-12-18T04:45:18.149632 +AZURE,southcentralus,Standard_D8ads_v6,reserved_3y,NA,0.207648,USD,Azure Retail Prices API,2025-12-18T04:45:18.149635 +AZURE,southcentralus,Standard_D8ads_v6,spot,NA,0.100901,USD,Azure Retail Prices API,2025-12-18T04:45:16.133405 +AZURE,southcentralus,Standard_D8as_v4,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:45:16.134359 +AZURE,southcentralus,Standard_D8as_v4,reserved_1y,NA,0.276484,USD,Azure Retail Prices API,2025-12-18T04:45:18.149489 +AZURE,southcentralus,Standard_D8as_v4,reserved_3y,NA,0.184323,USD,Azure Retail Prices API,2025-12-18T04:45:18.149492 +AZURE,southcentralus,Standard_D8as_v4,spot,NA,0.085193,USD,Azure Retail Prices API,2025-12-18T04:45:16.133860 +AZURE,southcentralus,Standard_D8as_v5,on_demand,NA,0.781,USD,Azure Retail Prices API,2025-12-18T04:45:16.133986 +AZURE,southcentralus,Standard_D8as_v5,reserved_1y,NA,0.243607,USD,Azure Retail Prices API,2025-12-18T04:45:18.149832 +AZURE,southcentralus,Standard_D8as_v5,reserved_3y,NA,0.156849,USD,Azure Retail Prices API,2025-12-18T04:45:18.149835 +AZURE,southcentralus,Standard_D8as_v5,spot,NA,0.076322,USD,Azure Retail Prices API,2025-12-18T04:45:16.134691 +AZURE,southcentralus,Standard_D8d_v4,on_demand,NA,0.588,USD,Azure Retail Prices API,2025-12-18T04:45:16.133158 +AZURE,southcentralus,Standard_D8d_v4,reserved_1y,NA,0.346689,USD,Azure Retail Prices API,2025-12-18T04:45:18.148341 +AZURE,southcentralus,Standard_D8d_v4,reserved_3y,NA,0.223288,USD,Azure Retail Prices API,2025-12-18T04:45:18.148344 +AZURE,southcentralus,Standard_D8d_v4,spot,NA,0.108662,USD,Azure Retail Prices API,2025-12-18T04:45:16.133866 +AZURE,southcentralus,Standard_D8ds_v4,on_demand,NA,0.588,USD,Azure Retail Prices API,2025-12-18T04:45:16.133482 +AZURE,southcentralus,Standard_D8ds_v4,reserved_1y,NA,0.346689,USD,Azure Retail Prices API,2025-12-18T04:45:18.148630 +AZURE,southcentralus,Standard_D8ds_v4,reserved_3y,NA,0.223288,USD,Azure Retail Prices API,2025-12-18T04:45:18.148633 +AZURE,southcentralus,Standard_D8ds_v4,spot,NA,0.108662,USD,Azure Retail Prices API,2025-12-18T04:45:16.133247 +AZURE,southcentralus,Standard_D8ds_v5,on_demand,NA,0.542,USD,Azure Retail Prices API,2025-12-18T04:45:16.134499 +AZURE,southcentralus,Standard_D8ds_v5,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:45:18.149649 +AZURE,southcentralus,Standard_D8ds_v5,reserved_3y,NA,0.206126,USD,Azure Retail Prices API,2025-12-18T04:45:18.149652 +AZURE,southcentralus,Standard_D8ds_v5,spot,NA,0.106937,USD,Azure Retail Prices API,2025-12-18T04:45:16.133215 +AZURE,southcentralus,Standard_D8ds_v6,on_demand,NA,0.598,USD,Azure Retail Prices API,2025-12-18T04:45:16.133434 +AZURE,southcentralus,Standard_D8ds_v6,reserved_1y,NA,0.370776,USD,Azure Retail Prices API,2025-12-18T04:45:18.148598 +AZURE,southcentralus,Standard_D8ds_v6,reserved_3y,NA,0.233219,USD,Azure Retail Prices API,2025-12-18T04:45:18.148601 +AZURE,southcentralus,Standard_D8ds_v6,spot,NA,0.11051,USD,Azure Retail Prices API,2025-12-18T04:45:16.133417 +AZURE,southcentralus,Standard_D8pds_v6,on_demand,NA,0.441,USD,Azure Retail Prices API,2025-12-18T04:45:16.133794 +AZURE,southcentralus,Standard_D8pds_v6,reserved_1y,NA,0.260046,USD,Azure Retail Prices API,2025-12-18T04:45:18.148897 +AZURE,southcentralus,Standard_D8pds_v6,reserved_3y,NA,0.167504,USD,Azure Retail Prices API,2025-12-18T04:45:18.148900 +AZURE,southcentralus,Standard_D8pds_v6,spot,NA,0.081497,USD,Azure Retail Prices API,2025-12-18T04:45:16.133694 +AZURE,southcentralus,Standard_D8ps_v6,on_demand,NA,0.337,USD,Azure Retail Prices API,2025-12-18T04:45:16.133729 +AZURE,southcentralus,Standard_D8ps_v6,reserved_1y,NA,0.198744,USD,Azure Retail Prices API,2025-12-18T04:45:18.148826 +AZURE,southcentralus,Standard_D8ps_v6,reserved_3y,NA,0.127968,USD,Azure Retail Prices API,2025-12-18T04:45:18.148829 +AZURE,southcentralus,Standard_D8ps_v6,spot,NA,0.062278,USD,Azure Retail Prices API,2025-12-18T04:45:16.133961 +AZURE,southcentralus,Standard_D8s_v3,on_demand,NA,0.44,USD,Azure Retail Prices API,2025-12-18T04:45:16.134194 +AZURE,southcentralus,Standard_D8s_v3,reserved_1y,NA,0.277511,USD,Azure Retail Prices API,2025-12-18T04:45:18.149336 +AZURE,southcentralus,Standard_D8s_v3,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:45:18.149338 +AZURE,southcentralus,Standard_D8s_v3,spot,NA,0.081312,USD,Azure Retail Prices API,2025-12-18T04:45:16.133066 +AZURE,southcentralus,Standard_D8s_v4,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:45:16.133262 +AZURE,southcentralus,Standard_D8s_v4,reserved_1y,NA,0.271918,USD,Azure Retail Prices API,2025-12-18T04:45:18.148440 +AZURE,southcentralus,Standard_D8s_v4,reserved_3y,NA,0.175114,USD,Azure Retail Prices API,2025-12-18T04:45:18.148443 +AZURE,southcentralus,Standard_D8s_v4,spot,NA,0.085193,USD,Azure Retail Prices API,2025-12-18T04:45:16.133098 +AZURE,southcentralus,Standard_D8s_v5,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:45:16.133244 +AZURE,southcentralus,Standard_D8s_v5,reserved_1y,NA,0.271918,USD,Azure Retail Prices API,2025-12-18T04:45:18.148417 +AZURE,southcentralus,Standard_D8s_v5,reserved_3y,NA,0.17051,USD,Azure Retail Prices API,2025-12-18T04:45:18.148420 +AZURE,southcentralus,Standard_D8s_v5,spot,NA,0.085193,USD,Azure Retail Prices API,2025-12-18T04:45:16.133777 +AZURE,southcentralus,Standard_D96a_v4,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:16.133437 +AZURE,southcentralus,Standard_D96a_v4,reserved_1y,NA,3.317808,USD,Azure Retail Prices API,2025-12-18T04:45:18.148604 +AZURE,southcentralus,Standard_D96a_v4,reserved_3y,NA,2.211834,USD,Azure Retail Prices API,2025-12-18T04:45:18.148607 +AZURE,southcentralus,Standard_D96a_v4,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:45:16.133714 +AZURE,southcentralus,Standard_D96ads_v5,on_demand,NA,5.933,USD,Azure Retail Prices API,2025-12-18T04:45:16.133155 +AZURE,southcentralus,Standard_D96ads_v5,reserved_1y,NA,3.500342,USD,Azure Retail Prices API,2025-12-18T04:45:18.148336 +AZURE,southcentralus,Standard_D96ads_v5,reserved_3y,NA,2.254452,USD,Azure Retail Prices API,2025-12-18T04:45:18.148338 +AZURE,southcentralus,Standard_D96ads_v5,spot,NA,1.096418,USD,Azure Retail Prices API,2025-12-18T04:45:16.133476 +AZURE,southcentralus,Standard_D96ads_v6,on_demand,NA,6.557,USD,Azure Retail Prices API,2025-12-18T04:45:16.133109 +AZURE,southcentralus,Standard_D96ads_v6,reserved_1y,NA,3.868493,USD,Azure Retail Prices API,2025-12-18T04:45:18.148294 +AZURE,southcentralus,Standard_D96ads_v6,reserved_3y,NA,2.491591,USD,Azure Retail Prices API,2025-12-18T04:45:18.148297 +AZURE,southcentralus,Standard_D96ads_v6,spot,NA,1.211734,USD,Azure Retail Prices API,2025-12-18T04:45:16.133069 +AZURE,southcentralus,Standard_D96as_v4,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:16.133384 +AZURE,southcentralus,Standard_D96as_v4,reserved_1y,NA,3.317808,USD,Azure Retail Prices API,2025-12-18T04:45:18.148557 +AZURE,southcentralus,Standard_D96as_v4,reserved_3y,NA,2.211834,USD,Azure Retail Prices API,2025-12-18T04:45:18.148561 +AZURE,southcentralus,Standard_D96as_v4,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:45:16.133983 +AZURE,southcentralus,Standard_D96as_v5,on_demand,NA,9.37,USD,Azure Retail Prices API,2025-12-18T04:45:16.134147 +AZURE,southcentralus,Standard_D96as_v5,reserved_1y,NA,2.922603,USD,Azure Retail Prices API,2025-12-18T04:45:18.149580 +AZURE,southcentralus,Standard_D96as_v5,reserved_3y,NA,1.882382,USD,Azure Retail Prices API,2025-12-18T04:45:18.149582 +AZURE,southcentralus,Standard_D96as_v5,spot,NA,0.915499,USD,Azure Retail Prices API,2025-12-18T04:45:16.134186 +AZURE,southcentralus,Standard_D96ds_v5,on_demand,NA,6.509,USD,Azure Retail Prices API,2025-12-18T04:45:16.133063 +AZURE,southcentralus,Standard_D96ds_v5,reserved_1y,NA,3.840183,USD,Azure Retail Prices API,2025-12-18T04:45:18.148231 +AZURE,southcentralus,Standard_D96ds_v5,reserved_3y,NA,2.473326,USD,Azure Retail Prices API,2025-12-18T04:45:18.148234 +AZURE,southcentralus,Standard_D96ds_v5,spot,NA,1.284226,USD,Azure Retail Prices API,2025-12-18T04:45:16.134651 +AZURE,southcentralus,Standard_D96ds_v6,on_demand,NA,7.176,USD,Azure Retail Prices API,2025-12-18T04:45:16.134595 +AZURE,southcentralus,Standard_D96ds_v6,reserved_1y,NA,4.449087,USD,Azure Retail Prices API,2025-12-18T04:45:18.149770 +AZURE,southcentralus,Standard_D96ds_v6,reserved_3y,NA,2.79863,USD,Azure Retail Prices API,2025-12-18T04:45:18.149772 +AZURE,southcentralus,Standard_D96ds_v6,spot,NA,1.326125,USD,Azure Retail Prices API,2025-12-18T04:45:16.134073 +AZURE,southcentralus,Standard_D96pds_v6,on_demand,NA,5.29,USD,Azure Retail Prices API,2025-12-18T04:45:16.134417 +AZURE,southcentralus,Standard_D96pds_v6,reserved_1y,NA,3.12089,USD,Azure Retail Prices API,2025-12-18T04:45:18.149552 +AZURE,southcentralus,Standard_D96pds_v6,reserved_3y,NA,2.010046,USD,Azure Retail Prices API,2025-12-18T04:45:18.149554 +AZURE,southcentralus,Standard_D96pds_v6,spot,NA,0.977592,USD,Azure Retail Prices API,2025-12-18T04:45:16.134033 +AZURE,southcentralus,Standard_D96ps_v6,on_demand,NA,4.042,USD,Azure Retail Prices API,2025-12-18T04:45:16.134150 +AZURE,southcentralus,Standard_D96ps_v6,reserved_1y,NA,2.384589,USD,Azure Retail Prices API,2025-12-18T04:45:18.149303 +AZURE,southcentralus,Standard_D96ps_v6,reserved_3y,NA,1.535807,USD,Azure Retail Prices API,2025-12-18T04:45:18.149305 +AZURE,southcentralus,Standard_D96ps_v6,spot,NA,0.746962,USD,Azure Retail Prices API,2025-12-18T04:45:16.134296 +AZURE,southcentralus,Standard_D96s_v5,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:16.133581 +AZURE,southcentralus,Standard_D96s_v5,reserved_1y,NA,3.262443,USD,Azure Retail Prices API,2025-12-18T04:45:18.148717 +AZURE,southcentralus,Standard_D96s_v5,reserved_3y,NA,2.045967,USD,Azure Retail Prices API,2025-12-18T04:45:18.148720 +AZURE,southcentralus,Standard_D96s_v5,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:45:16.133584 +AZURE,southcentralus,Standard_DC16ads_v6,on_demand,NA,1.093,USD,Azure Retail Prices API,2025-12-18T04:45:16.134000 +AZURE,southcentralus,Standard_DC16ads_v6,reserved_1y,NA,0.644749,USD,Azure Retail Prices API,2025-12-18T04:45:18.149142 +AZURE,southcentralus,Standard_DC16ads_v6,reserved_3y,NA,0.415259,USD,Azure Retail Prices API,2025-12-18T04:45:18.149145 +AZURE,southcentralus,Standard_DC16ads_v6,spot,NA,0.201986,USD,Azure Retail Prices API,2025-12-18T04:45:16.133855 +AZURE,southcentralus,Standard_DC2ads_v6,on_demand,NA,0.137,USD,Azure Retail Prices API,2025-12-18T04:45:16.133106 +AZURE,southcentralus,Standard_DC2ads_v6,reserved_1y,NA,0.080594,USD,Azure Retail Prices API,2025-12-18T04:45:18.148288 +AZURE,southcentralus,Standard_DC2ads_v6,reserved_3y,NA,0.051903,USD,Azure Retail Prices API,2025-12-18T04:45:18.148291 +AZURE,southcentralus,Standard_DC2ads_v6,spot,NA,0.025318,USD,Azure Retail Prices API,2025-12-18T04:45:16.133253 +AZURE,southcentralus,Standard_DC32ads_v6,on_demand,NA,2.186,USD,Azure Retail Prices API,2025-12-18T04:45:16.133606 +AZURE,southcentralus,Standard_DC32ads_v6,reserved_1y,NA,1.289498,USD,Azure Retail Prices API,2025-12-18T04:45:18.148743 +AZURE,southcentralus,Standard_DC32ads_v6,reserved_3y,NA,0.830518,USD,Azure Retail Prices API,2025-12-18T04:45:18.148746 +AZURE,southcentralus,Standard_DC32ads_v6,spot,NA,0.403973,USD,Azure Retail Prices API,2025-12-18T04:45:16.134601 +AZURE,southcentralus,Standard_DC48ads_v6,on_demand,NA,3.278,USD,Azure Retail Prices API,2025-12-18T04:45:16.133431 +AZURE,southcentralus,Standard_DC48ads_v6,reserved_1y,NA,1.934247,USD,Azure Retail Prices API,2025-12-18T04:45:18.148591 +AZURE,southcentralus,Standard_DC48ads_v6,reserved_3y,NA,1.245776,USD,Azure Retail Prices API,2025-12-18T04:45:18.148594 +AZURE,southcentralus,Standard_DC48ads_v6,spot,NA,0.605774,USD,Azure Retail Prices API,2025-12-18T04:45:16.133811 +AZURE,southcentralus,Standard_DC4ads_v6,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:45:16.134521 +AZURE,southcentralus,Standard_DC4ads_v6,reserved_1y,NA,0.161187,USD,Azure Retail Prices API,2025-12-18T04:45:18.149678 +AZURE,southcentralus,Standard_DC4ads_v6,reserved_3y,NA,0.103805,USD,Azure Retail Prices API,2025-12-18T04:45:18.149681 +AZURE,southcentralus,Standard_DC4ads_v6,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:16.133735 +AZURE,southcentralus,Standard_DC64ads_v6,on_demand,NA,4.371,USD,Azure Retail Prices API,2025-12-18T04:45:16.134533 +AZURE,southcentralus,Standard_DC64ads_v6,reserved_1y,NA,2.578995,USD,Azure Retail Prices API,2025-12-18T04:45:18.149696 +AZURE,southcentralus,Standard_DC64ads_v6,reserved_3y,NA,1.661073,USD,Azure Retail Prices API,2025-12-18T04:45:18.149699 +AZURE,southcentralus,Standard_DC64ads_v6,spot,NA,0.807761,USD,Azure Retail Prices API,2025-12-18T04:45:16.133088 +AZURE,southcentralus,Standard_DC8ads_v6,on_demand,NA,0.546,USD,Azure Retail Prices API,2025-12-18T04:45:16.134639 +AZURE,southcentralus,Standard_DC8ads_v6,reserved_1y,NA,0.322374,USD,Azure Retail Prices API,2025-12-18T04:45:18.149804 +AZURE,southcentralus,Standard_DC8ads_v6,reserved_3y,NA,0.207648,USD,Azure Retail Prices API,2025-12-18T04:45:18.149807 +AZURE,southcentralus,Standard_DC8ads_v6,spot,NA,0.100901,USD,Azure Retail Prices API,2025-12-18T04:45:16.134021 +AZURE,southcentralus,Standard_DC96ads_v6,on_demand,NA,6.557,USD,Azure Retail Prices API,2025-12-18T04:45:16.134231 +AZURE,southcentralus,Standard_DC96ads_v6,reserved_1y,NA,3.868493,USD,Azure Retail Prices API,2025-12-18T04:45:18.149369 +AZURE,southcentralus,Standard_DC96ads_v6,reserved_3y,NA,2.491591,USD,Azure Retail Prices API,2025-12-18T04:45:18.149372 +AZURE,southcentralus,Standard_DC96ads_v6,spot,NA,1.211734,USD,Azure Retail Prices API,2025-12-18T04:45:16.133241 +AZURE,southcentralus,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495199 +AZURE,southcentralus,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495215 +AZURE,southcentralus,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495225 +AZURE,southcentralus,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495206 +AZURE,southcentralus,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496032 +AZURE,southcentralus,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496040 +AZURE,southcentralus,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496047 +AZURE,southcentralus,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496036 +AZURE,southcentralus,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496834 +AZURE,southcentralus,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496845 +AZURE,southcentralus,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496851 +AZURE,southcentralus,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496838 +AZURE,southcentralus,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497721 +AZURE,southcentralus,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497730 +AZURE,southcentralus,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497737 +AZURE,southcentralus,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497725 +AZURE,southcentralus,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491569 +AZURE,southcentralus,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491577 +AZURE,southcentralus,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491581 +AZURE,southcentralus,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491573 +AZURE,southcentralus,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492313 +AZURE,southcentralus,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492323 +AZURE,southcentralus,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492327 +AZURE,southcentralus,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492318 +AZURE,southcentralus,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493006 +AZURE,southcentralus,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493014 +AZURE,southcentralus,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493018 +AZURE,southcentralus,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493010 +AZURE,southcentralus,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493750 +AZURE,southcentralus,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493759 +AZURE,southcentralus,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493763 +AZURE,southcentralus,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493754 +AZURE,southcentralus,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494464 +AZURE,southcentralus,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494472 +AZURE,southcentralus,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494476 +AZURE,southcentralus,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494468 +AZURE,southcentralus,Standard_E128ds_v6,on_demand,NA,12.558,USD,Azure Retail Prices API,2025-12-18T04:45:16.134039 +AZURE,southcentralus,Standard_E128ds_v6,reserved_1y,NA,7.785959,USD,Azure Retail Prices API,2025-12-18T04:45:18.149171 +AZURE,southcentralus,Standard_E128ds_v6,reserved_3y,NA,4.897641,USD,Azure Retail Prices API,2025-12-18T04:45:18.149174 +AZURE,southcentralus,Standard_E128ds_v6,spot,NA,2.320718,USD,Azure Retail Prices API,2025-12-18T04:45:16.133327 +AZURE,southcentralus,Standard_E16_v3,on_demand,NA,1.166,USD,Azure Retail Prices API,2025-12-18T04:45:16.134397 +AZURE,southcentralus,Standard_E16_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:45:18.149528 +AZURE,southcentralus,Standard_E16_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:45:18.149531 +AZURE,southcentralus,Standard_E16_v3,spot,NA,0.215477,USD,Azure Retail Prices API,2025-12-18T04:45:16.133053 +AZURE,southcentralus,Standard_E16a_v4,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:45:16.134016 +AZURE,southcentralus,Standard_E16a_v4,reserved_1y,NA,0.725799,USD,Azure Retail Prices API,2025-12-18T04:45:18.149148 +AZURE,southcentralus,Standard_E16a_v4,reserved_3y,NA,0.483828,USD,Azure Retail Prices API,2025-12-18T04:45:18.149151 +AZURE,southcentralus,Standard_E16a_v4,spot,NA,0.223608,USD,Azure Retail Prices API,2025-12-18T04:45:16.133453 +AZURE,southcentralus,Standard_E16ads_v5,on_demand,NA,1.258,USD,Azure Retail Prices API,2025-12-18T04:45:16.134407 +AZURE,southcentralus,Standard_E16ads_v5,reserved_1y,NA,0.742009,USD,Azure Retail Prices API,2025-12-18T04:45:18.149540 +AZURE,southcentralus,Standard_E16ads_v5,reserved_3y,NA,0.477892,USD,Azure Retail Prices API,2025-12-18T04:45:18.149543 +AZURE,southcentralus,Standard_E16ads_v5,spot,NA,0.232478,USD,Azure Retail Prices API,2025-12-18T04:45:16.133465 +AZURE,southcentralus,Standard_E16ads_v6,on_demand,NA,1.39,USD,Azure Retail Prices API,2025-12-18T04:45:16.134144 +AZURE,southcentralus,Standard_E16ads_v6,reserved_1y,NA,0.82032,USD,Azure Retail Prices API,2025-12-18T04:45:18.149297 +AZURE,southcentralus,Standard_E16ads_v6,reserved_3y,NA,0.528349,USD,Azure Retail Prices API,2025-12-18T04:45:18.149300 +AZURE,southcentralus,Standard_E16ads_v6,spot,NA,0.256872,USD,Azure Retail Prices API,2025-12-18T04:45:16.134467 +AZURE,southcentralus,Standard_E16as_v4,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:45:16.134030 +AZURE,southcentralus,Standard_E16as_v4,reserved_1y,NA,0.725799,USD,Azure Retail Prices API,2025-12-18T04:45:18.149159 +AZURE,southcentralus,Standard_E16as_v4,reserved_3y,NA,0.483828,USD,Azure Retail Prices API,2025-12-18T04:45:18.149162 +AZURE,southcentralus,Standard_E16as_v4,spot,NA,0.223608,USD,Azure Retail Prices API,2025-12-18T04:45:16.134162 +AZURE,southcentralus,Standard_E16as_v5,on_demand,NA,1.821,USD,Azure Retail Prices API,2025-12-18T04:45:16.133913 +AZURE,southcentralus,Standard_E16as_v5,reserved_1y,NA,0.640068,USD,Azure Retail Prices API,2025-12-18T04:45:18.149201 +AZURE,southcentralus,Standard_E16as_v5,reserved_3y,NA,0.412215,USD,Azure Retail Prices API,2025-12-18T04:45:18.149204 +AZURE,southcentralus,Standard_E16as_v5,spot,NA,0.200508,USD,Azure Retail Prices API,2025-12-18T04:45:16.134592 +AZURE,southcentralus,Standard_E16d_v4,on_demand,NA,1.498,USD,Azure Retail Prices API,2025-12-18T04:45:16.133227 +AZURE,southcentralus,Standard_E16d_v4,reserved_1y,NA,0.883562,USD,Azure Retail Prices API,2025-12-18T04:45:18.148400 +AZURE,southcentralus,Standard_E16d_v4,reserved_3y,NA,0.569102,USD,Azure Retail Prices API,2025-12-18T04:45:18.148403 +AZURE,southcentralus,Standard_E16d_v4,spot,NA,0.27683,USD,Azure Retail Prices API,2025-12-18T04:45:16.133224 +AZURE,southcentralus,Standard_E16ds_v4,on_demand,NA,1.498,USD,Azure Retail Prices API,2025-12-18T04:45:16.133952 +AZURE,southcentralus,Standard_E16ds_v4,reserved_1y,NA,0.883562,USD,Azure Retail Prices API,2025-12-18T04:45:18.149084 +AZURE,southcentralus,Standard_E16ds_v4,reserved_3y,NA,0.569102,USD,Azure Retail Prices API,2025-12-18T04:45:18.149088 +AZURE,southcentralus,Standard_E16ds_v4,spot,NA,0.27683,USD,Azure Retail Prices API,2025-12-18T04:45:16.133883 +AZURE,southcentralus,Standard_E16ds_v5,on_demand,NA,1.382,USD,Azure Retail Prices API,2025-12-18T04:45:16.133187 +AZURE,southcentralus,Standard_E16ds_v5,reserved_1y,NA,0.815639,USD,Azure Retail Prices API,2025-12-18T04:45:18.148371 +AZURE,southcentralus,Standard_E16ds_v5,reserved_3y,NA,0.525304,USD,Azure Retail Prices API,2025-12-18T04:45:18.148374 +AZURE,southcentralus,Standard_E16ds_v5,spot,NA,0.263547,USD,Azure Retail Prices API,2025-12-18T04:45:16.133073 +AZURE,southcentralus,Standard_E16ds_v6,on_demand,NA,1.57,USD,Azure Retail Prices API,2025-12-18T04:45:16.133682 +AZURE,southcentralus,Standard_E16ds_v6,reserved_1y,NA,0.973288,USD,Azure Retail Prices API,2025-12-18T04:45:18.148807 +AZURE,southcentralus,Standard_E16ds_v6,reserved_3y,NA,0.612215,USD,Azure Retail Prices API,2025-12-18T04:45:18.148810 +AZURE,southcentralus,Standard_E16ds_v6,spot,NA,0.290136,USD,Azure Retail Prices API,2025-12-18T04:45:16.134220 +AZURE,southcentralus,Standard_E16pds_v6,on_demand,NA,1.123,USD,Azure Retail Prices API,2025-12-18T04:45:16.134509 +AZURE,southcentralus,Standard_E16pds_v6,reserved_1y,NA,0.662671,USD,Azure Retail Prices API,2025-12-18T04:45:18.149667 +AZURE,southcentralus,Standard_E16pds_v6,reserved_3y,NA,0.426826,USD,Azure Retail Prices API,2025-12-18T04:45:18.149670 +AZURE,southcentralus,Standard_E16pds_v6,spot,NA,0.20753,USD,Azure Retail Prices API,2025-12-18T04:45:16.133362 +AZURE,southcentralus,Standard_E16ps_v6,on_demand,NA,0.885,USD,Azure Retail Prices API,2025-12-18T04:45:16.134362 +AZURE,southcentralus,Standard_E16ps_v6,reserved_1y,NA,0.522032,USD,Azure Retail Prices API,2025-12-18T04:45:18.149495 +AZURE,southcentralus,Standard_E16ps_v6,reserved_3y,NA,0.336225,USD,Azure Retail Prices API,2025-12-18T04:45:18.149497 +AZURE,southcentralus,Standard_E16ps_v6,spot,NA,0.163548,USD,Azure Retail Prices API,2025-12-18T04:45:16.133279 +AZURE,southcentralus,Standard_E16s_v3,on_demand,NA,1.166,USD,Azure Retail Prices API,2025-12-18T04:45:16.133634 +AZURE,southcentralus,Standard_E16s_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:45:18.148762 +AZURE,southcentralus,Standard_E16s_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:45:18.148765 +AZURE,southcentralus,Standard_E16s_v3,spot,NA,0.215477,USD,Azure Retail Prices API,2025-12-18T04:45:16.134404 +AZURE,southcentralus,Standard_E16s_v4,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:45:16.133540 +AZURE,southcentralus,Standard_E16s_v4,reserved_1y,NA,0.713699,USD,Azure Retail Prices API,2025-12-18T04:45:18.148691 +AZURE,southcentralus,Standard_E16s_v4,reserved_3y,NA,0.459665,USD,Azure Retail Prices API,2025-12-18T04:45:18.148694 +AZURE,southcentralus,Standard_E16s_v4,spot,NA,0.223608,USD,Azure Retail Prices API,2025-12-18T04:45:16.133708 +AZURE,southcentralus,Standard_E16s_v5,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:45:16.134371 +AZURE,southcentralus,Standard_E16s_v5,reserved_1y,NA,0.713699,USD,Azure Retail Prices API,2025-12-18T04:45:18.149506 +AZURE,southcentralus,Standard_E16s_v5,reserved_3y,NA,0.447565,USD,Azure Retail Prices API,2025-12-18T04:45:18.149509 +AZURE,southcentralus,Standard_E16s_v5,spot,NA,0.223608,USD,Azure Retail Prices API,2025-12-18T04:45:16.134411 +AZURE,southcentralus,Standard_E20a_v4,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:45:16.134181 +AZURE,southcentralus,Standard_E20a_v4,reserved_1y,NA,0.907192,USD,Azure Retail Prices API,2025-12-18T04:45:18.149318 +AZURE,southcentralus,Standard_E20a_v4,reserved_3y,NA,0.604795,USD,Azure Retail Prices API,2025-12-18T04:45:18.149322 +AZURE,southcentralus,Standard_E20a_v4,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:45:16.134710 +AZURE,southcentralus,Standard_E20ads_v5,on_demand,NA,1.572,USD,Azure Retail Prices API,2025-12-18T04:45:16.133740 +AZURE,southcentralus,Standard_E20ads_v5,reserved_1y,NA,0.927511,USD,Azure Retail Prices API,2025-12-18T04:45:18.148839 +AZURE,southcentralus,Standard_E20ads_v5,reserved_3y,NA,0.597374,USD,Azure Retail Prices API,2025-12-18T04:45:18.148842 +AZURE,southcentralus,Standard_E20ads_v5,spot,NA,0.290506,USD,Azure Retail Prices API,2025-12-18T04:45:16.134125 +AZURE,southcentralus,Standard_E20ads_v6,on_demand,NA,1.738,USD,Azure Retail Prices API,2025-12-18T04:45:16.133805 +AZURE,southcentralus,Standard_E20ads_v6,reserved_1y,NA,1.025457,USD,Azure Retail Prices API,2025-12-18T04:45:18.148917 +AZURE,southcentralus,Standard_E20ads_v6,reserved_3y,NA,0.660426,USD,Azure Retail Prices API,2025-12-18T04:45:18.148921 +AZURE,southcentralus,Standard_E20ads_v6,spot,NA,0.321182,USD,Azure Retail Prices API,2025-12-18T04:45:16.133997 +AZURE,southcentralus,Standard_E20as_v4,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:45:16.134056 +AZURE,southcentralus,Standard_E20as_v4,reserved_1y,NA,0.907192,USD,Azure Retail Prices API,2025-12-18T04:45:18.149194 +AZURE,southcentralus,Standard_E20as_v4,reserved_3y,NA,0.604795,USD,Azure Retail Prices API,2025-12-18T04:45:18.149198 +AZURE,southcentralus,Standard_E20as_v4,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:45:16.133828 +AZURE,southcentralus,Standard_E20as_v5,on_demand,NA,1.356,USD,Azure Retail Prices API,2025-12-18T04:45:16.133034 +AZURE,southcentralus,Standard_E20as_v5,reserved_1y,NA,0.8,USD,Azure Retail Prices API,2025-12-18T04:45:18.148193 +AZURE,southcentralus,Standard_E20as_v5,reserved_3y,NA,0.515297,USD,Azure Retail Prices API,2025-12-18T04:45:18.148198 +AZURE,southcentralus,Standard_E20as_v5,spot,NA,0.250589,USD,Azure Retail Prices API,2025-12-18T04:45:16.133900 +AZURE,southcentralus,Standard_E20d_v4,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:45:16.133116 +AZURE,southcentralus,Standard_E20d_v4,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:45:18.148300 +AZURE,southcentralus,Standard_E20d_v4,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:45:18.148303 +AZURE,southcentralus,Standard_E20d_v4,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:45:16.134629 +AZURE,southcentralus,Standard_E20ds_v4,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:45:16.133076 +AZURE,southcentralus,Standard_E20ds_v4,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:45:18.148237 +AZURE,southcentralus,Standard_E20ds_v4,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:45:18.148240 +AZURE,southcentralus,Standard_E20ds_v4,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:45:16.134302 +AZURE,southcentralus,Standard_E20ds_v5,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:45:16.133442 +AZURE,southcentralus,Standard_E20ds_v5,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:45:18.148610 +AZURE,southcentralus,Standard_E20ds_v5,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:45:18.148614 +AZURE,southcentralus,Standard_E20ds_v5,spot,NA,0.32953,USD,Azure Retail Prices API,2025-12-18T04:45:16.133423 +AZURE,southcentralus,Standard_E20ds_v6,on_demand,NA,1.962,USD,Azure Retail Prices API,2025-12-18T04:45:16.133650 +AZURE,southcentralus,Standard_E20ds_v6,reserved_1y,NA,1.216553,USD,Azure Retail Prices API,2025-12-18T04:45:18.148768 +AZURE,southcentralus,Standard_E20ds_v6,reserved_3y,NA,0.765259,USD,Azure Retail Prices API,2025-12-18T04:45:18.148771 +AZURE,southcentralus,Standard_E20ds_v6,spot,NA,0.362578,USD,Azure Retail Prices API,2025-12-18T04:45:16.134122 +AZURE,southcentralus,Standard_E20s_v4,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:45:16.133420 +AZURE,southcentralus,Standard_E20s_v4,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:45:18.148570 +AZURE,southcentralus,Standard_E20s_v4,reserved_3y,NA,0.574543,USD,Azure Retail Prices API,2025-12-18T04:45:18.148573 +AZURE,southcentralus,Standard_E20s_v4,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:45:16.133462 +AZURE,southcentralus,Standard_E20s_v5,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:45:16.133170 +AZURE,southcentralus,Standard_E20s_v5,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:45:18.148359 +AZURE,southcentralus,Standard_E20s_v5,reserved_3y,NA,0.559437,USD,Azure Retail Prices API,2025-12-18T04:45:18.148362 +AZURE,southcentralus,Standard_E20s_v5,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:45:16.134217 +AZURE,southcentralus,Standard_E2_v3,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:45:16.133534 +AZURE,southcentralus,Standard_E2_v3,reserved_1y,NA,0.093836,USD,Azure Retail Prices API,2025-12-18T04:45:18.148684 +AZURE,southcentralus,Standard_E2_v3,reserved_3y,NA,0.05997,USD,Azure Retail Prices API,2025-12-18T04:45:18.148688 +AZURE,southcentralus,Standard_E2_v3,spot,NA,0.026981,USD,Azure Retail Prices API,2025-12-18T04:45:16.134583 +AZURE,southcentralus,Standard_E2ads_v6,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:45:16.133238 +AZURE,southcentralus,Standard_E2ads_v6,reserved_1y,NA,0.102511,USD,Azure Retail Prices API,2025-12-18T04:45:18.148411 +AZURE,southcentralus,Standard_E2ads_v6,reserved_3y,NA,0.066058,USD,Azure Retail Prices API,2025-12-18T04:45:18.148414 +AZURE,southcentralus,Standard_E2ads_v6,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:45:16.133506 +AZURE,southcentralus,Standard_E2ds_v5,on_demand,NA,0.173,USD,Azure Retail Prices API,2025-12-18T04:45:16.134607 +AZURE,southcentralus,Standard_E2ds_v5,reserved_1y,NA,0.101941,USD,Azure Retail Prices API,2025-12-18T04:45:18.149782 +AZURE,southcentralus,Standard_E2ds_v5,reserved_3y,NA,0.065677,USD,Azure Retail Prices API,2025-12-18T04:45:18.149785 +AZURE,southcentralus,Standard_E2ds_v5,spot,NA,0.032991,USD,Azure Retail Prices API,2025-12-18T04:45:16.134697 +AZURE,southcentralus,Standard_E2ds_v6,on_demand,NA,0.196,USD,Azure Retail Prices API,2025-12-18T04:45:16.134059 +AZURE,southcentralus,Standard_E2ds_v6,reserved_1y,NA,0.121689,USD,Azure Retail Prices API,2025-12-18T04:45:18.149207 +AZURE,southcentralus,Standard_E2ds_v6,reserved_3y,NA,0.076522,USD,Azure Retail Prices API,2025-12-18T04:45:18.149210 +AZURE,southcentralus,Standard_E2ds_v6,spot,NA,0.036221,USD,Azure Retail Prices API,2025-12-18T04:45:16.133825 +AZURE,southcentralus,Standard_E2pds_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:45:16.133930 +AZURE,southcentralus,Standard_E2pds_v6,reserved_1y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:45:18.149066 +AZURE,southcentralus,Standard_E2pds_v6,reserved_3y,NA,0.053349,USD,Azure Retail Prices API,2025-12-18T04:45:18.149069 +AZURE,southcentralus,Standard_E2pds_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:45:16.134381 +AZURE,southcentralus,Standard_E32_v3,on_demand,NA,2.333,USD,Azure Retail Prices API,2025-12-18T04:45:16.134119 +AZURE,southcentralus,Standard_E32_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:45:18.149281 +AZURE,southcentralus,Standard_E32_v3,reserved_3y,NA,0.960122,USD,Azure Retail Prices API,2025-12-18T04:45:18.149284 +AZURE,southcentralus,Standard_E32_v3,spot,NA,0.431138,USD,Azure Retail Prices API,2025-12-18T04:45:16.133322 +AZURE,southcentralus,Standard_E32a_v4,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:45:16.133814 +AZURE,southcentralus,Standard_E32a_v4,reserved_1y,NA,1.451484,USD,Azure Retail Prices API,2025-12-18T04:45:18.148930 +AZURE,southcentralus,Standard_E32a_v4,reserved_3y,NA,0.967694,USD,Azure Retail Prices API,2025-12-18T04:45:18.148933 +AZURE,southcentralus,Standard_E32a_v4,spot,NA,0.447031,USD,Azure Retail Prices API,2025-12-18T04:45:16.134626 +AZURE,southcentralus,Standard_E32ads_v5,on_demand,NA,3.987,USD,Azure Retail Prices API,2025-12-18T04:45:16.134102 +AZURE,southcentralus,Standard_E32ads_v5,reserved_1y,NA,1.484018,USD,Azure Retail Prices API,2025-12-18T04:45:18.149326 +AZURE,southcentralus,Standard_E32ads_v5,reserved_3y,NA,0.955784,USD,Azure Retail Prices API,2025-12-18T04:45:18.149331 +AZURE,southcentralus,Standard_E32ads_v5,spot,NA,0.464772,USD,Azure Retail Prices API,2025-12-18T04:45:16.133399 +AZURE,southcentralus,Standard_E32ads_v6,on_demand,NA,2.781,USD,Azure Retail Prices API,2025-12-18T04:45:16.133203 +AZURE,southcentralus,Standard_E32ads_v6,reserved_1y,NA,1.640639,USD,Azure Retail Prices API,2025-12-18T04:45:18.148382 +AZURE,southcentralus,Standard_E32ads_v6,reserved_3y,NA,1.056697,USD,Azure Retail Prices API,2025-12-18T04:45:18.148385 +AZURE,southcentralus,Standard_E32ads_v6,spot,NA,0.513929,USD,Azure Retail Prices API,2025-12-18T04:45:16.133943 +AZURE,southcentralus,Standard_E32as_v4,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:45:16.134707 +AZURE,southcentralus,Standard_E32as_v4,reserved_1y,NA,1.451484,USD,Azure Retail Prices API,2025-12-18T04:45:18.149838 +AZURE,southcentralus,Standard_E32as_v4,reserved_3y,NA,0.967694,USD,Azure Retail Prices API,2025-12-18T04:45:18.149841 +AZURE,southcentralus,Standard_E32as_v4,spot,NA,0.447031,USD,Azure Retail Prices API,2025-12-18T04:45:16.134704 +AZURE,southcentralus,Standard_E32as_v5,on_demand,NA,2.17,USD,Azure Retail Prices API,2025-12-18T04:45:16.133664 +AZURE,southcentralus,Standard_E32as_v5,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:45:18.148775 +AZURE,southcentralus,Standard_E32as_v5,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:45:18.148778 +AZURE,southcentralus,Standard_E32as_v5,spot,NA,0.401016,USD,Azure Retail Prices API,2025-12-18T04:45:16.134633 +AZURE,southcentralus,Standard_E32d_v4,on_demand,NA,2.995,USD,Azure Retail Prices API,2025-12-18T04:45:16.134116 +AZURE,southcentralus,Standard_E32d_v4,reserved_1y,NA,1.767123,USD,Azure Retail Prices API,2025-12-18T04:45:18.149275 +AZURE,southcentralus,Standard_E32d_v4,reserved_3y,NA,1.138166,USD,Azure Retail Prices API,2025-12-18T04:45:18.149279 +AZURE,southcentralus,Standard_E32d_v4,spot,NA,0.553476,USD,Azure Retail Prices API,2025-12-18T04:45:16.133414 +AZURE,southcentralus,Standard_E32ds_v4,on_demand,NA,2.995,USD,Azure Retail Prices API,2025-12-18T04:45:16.133595 +AZURE,southcentralus,Standard_E32ds_v4,reserved_1y,NA,1.767123,USD,Azure Retail Prices API,2025-12-18T04:45:18.148729 +AZURE,southcentralus,Standard_E32ds_v4,reserved_3y,NA,1.138166,USD,Azure Retail Prices API,2025-12-18T04:45:18.148733 +AZURE,southcentralus,Standard_E32ds_v4,spot,NA,0.553476,USD,Azure Retail Prices API,2025-12-18T04:45:16.133554 +AZURE,southcentralus,Standard_E32ds_v5,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:16.133774 +AZURE,southcentralus,Standard_E32ds_v5,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:45:18.148871 +AZURE,southcentralus,Standard_E32ds_v5,reserved_3y,NA,1.050609,USD,Azure Retail Prices API,2025-12-18T04:45:18.148875 +AZURE,southcentralus,Standard_E32ds_v5,spot,NA,0.527286,USD,Azure Retail Prices API,2025-12-18T04:45:16.134281 +AZURE,southcentralus,Standard_E32ds_v6,on_demand,NA,3.14,USD,Azure Retail Prices API,2025-12-18T04:45:16.134543 +AZURE,southcentralus,Standard_E32ds_v6,reserved_1y,NA,1.946461,USD,Azure Retail Prices API,2025-12-18T04:45:18.149708 +AZURE,southcentralus,Standard_E32ds_v6,reserved_3y,NA,1.224429,USD,Azure Retail Prices API,2025-12-18T04:45:18.149711 +AZURE,southcentralus,Standard_E32ds_v6,spot,NA,0.580272,USD,Azure Retail Prices API,2025-12-18T04:45:16.133992 +AZURE,southcentralus,Standard_E32pds_v6,on_demand,NA,2.246,USD,Azure Retail Prices API,2025-12-18T04:45:16.134200 +AZURE,southcentralus,Standard_E32pds_v6,reserved_1y,NA,1.325342,USD,Azure Retail Prices API,2025-12-18T04:45:18.149346 +AZURE,southcentralus,Standard_E32pds_v6,reserved_3y,NA,0.853615,USD,Azure Retail Prices API,2025-12-18T04:45:18.149349 +AZURE,southcentralus,Standard_E32pds_v6,spot,NA,0.415061,USD,Azure Retail Prices API,2025-12-18T04:45:16.133140 +AZURE,southcentralus,Standard_E32ps_v6,on_demand,NA,1.77,USD,Azure Retail Prices API,2025-12-18T04:45:16.133290 +AZURE,southcentralus,Standard_E32ps_v6,reserved_1y,NA,1.044064,USD,Azure Retail Prices API,2025-12-18T04:45:18.148475 +AZURE,southcentralus,Standard_E32ps_v6,reserved_3y,NA,0.672451,USD,Azure Retail Prices API,2025-12-18T04:45:18.148478 +AZURE,southcentralus,Standard_E32ps_v6,spot,NA,0.327096,USD,Azure Retail Prices API,2025-12-18T04:45:16.134278 +AZURE,southcentralus,Standard_E32s_v3,on_demand,NA,2.333,USD,Azure Retail Prices API,2025-12-18T04:45:16.134275 +AZURE,southcentralus,Standard_E32s_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:45:18.149414 +AZURE,southcentralus,Standard_E32s_v3,reserved_3y,NA,0.960122,USD,Azure Retail Prices API,2025-12-18T04:45:18.149417 +AZURE,southcentralus,Standard_E32s_v3,spot,NA,0.431138,USD,Azure Retail Prices API,2025-12-18T04:45:16.133645 +AZURE,southcentralus,Standard_E32s_v4,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:45:16.133173 +AZURE,southcentralus,Standard_E32s_v4,reserved_1y,NA,1.427283,USD,Azure Retail Prices API,2025-12-18T04:45:18.148365 +AZURE,southcentralus,Standard_E32s_v4,reserved_3y,NA,0.919292,USD,Azure Retail Prices API,2025-12-18T04:45:18.148368 +AZURE,southcentralus,Standard_E32s_v4,spot,NA,0.447031,USD,Azure Retail Prices API,2025-12-18T04:45:16.133333 +AZURE,southcentralus,Standard_E32s_v5,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:45:16.134132 +AZURE,southcentralus,Standard_E32s_v5,reserved_1y,NA,1.427283,USD,Azure Retail Prices API,2025-12-18T04:45:18.149287 +AZURE,southcentralus,Standard_E32s_v5,reserved_3y,NA,0.895091,USD,Azure Retail Prices API,2025-12-18T04:45:18.149289 +AZURE,southcentralus,Standard_E32s_v5,spot,NA,0.447031,USD,Azure Retail Prices API,2025-12-18T04:45:16.134128 +AZURE,southcentralus,Standard_E48a_v4,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:16.133267 +AZURE,southcentralus,Standard_E48a_v4,reserved_1y,NA,2.177283,USD,Azure Retail Prices API,2025-12-18T04:45:18.148446 +AZURE,southcentralus,Standard_E48a_v4,reserved_3y,NA,1.451522,USD,Azure Retail Prices API,2025-12-18T04:45:18.148449 +AZURE,southcentralus,Standard_E48a_v4,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:45:16.134006 +AZURE,southcentralus,Standard_E48ads_v5,on_demand,NA,5.981,USD,Azure Retail Prices API,2025-12-18T04:45:16.134540 +AZURE,southcentralus,Standard_E48ads_v5,reserved_1y,NA,2.225913,USD,Azure Retail Prices API,2025-12-18T04:45:18.149799 +AZURE,southcentralus,Standard_E48ads_v5,reserved_3y,NA,1.433676,USD,Azure Retail Prices API,2025-12-18T04:45:18.149802 +AZURE,southcentralus,Standard_E48ads_v5,spot,NA,0.69725,USD,Azure Retail Prices API,2025-12-18T04:45:16.134261 +AZURE,southcentralus,Standard_E48ads_v6,on_demand,NA,4.171,USD,Azure Retail Prices API,2025-12-18T04:45:16.134246 +AZURE,southcentralus,Standard_E48ads_v6,reserved_1y,NA,2.460959,USD,Azure Retail Prices API,2025-12-18T04:45:18.149386 +AZURE,southcentralus,Standard_E48ads_v6,reserved_3y,NA,1.585046,USD,Azure Retail Prices API,2025-12-18T04:45:18.149389 +AZURE,southcentralus,Standard_E48ads_v6,spot,NA,0.770801,USD,Azure Retail Prices API,2025-12-18T04:45:16.133509 +AZURE,southcentralus,Standard_E48as_v4,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:16.134287 +AZURE,southcentralus,Standard_E48as_v4,reserved_1y,NA,2.177283,USD,Azure Retail Prices API,2025-12-18T04:45:18.149420 +AZURE,southcentralus,Standard_E48as_v4,reserved_3y,NA,1.451522,USD,Azure Retail Prices API,2025-12-18T04:45:18.149423 +AZURE,southcentralus,Standard_E48as_v4,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:45:16.133439 +AZURE,southcentralus,Standard_E48as_v5,on_demand,NA,5.462,USD,Azure Retail Prices API,2025-12-18T04:45:16.133468 +AZURE,southcentralus,Standard_E48as_v5,reserved_1y,NA,1.920091,USD,Azure Retail Prices API,2025-12-18T04:45:18.149719 +AZURE,southcentralus,Standard_E48as_v5,reserved_3y,NA,1.236682,USD,Azure Retail Prices API,2025-12-18T04:45:18.149722 +AZURE,southcentralus,Standard_E48as_v5,spot,NA,0.601339,USD,Azure Retail Prices API,2025-12-18T04:45:16.133402 +AZURE,southcentralus,Standard_E48d_v4,on_demand,NA,4.493,USD,Azure Retail Prices API,2025-12-18T04:45:16.134027 +AZURE,southcentralus,Standard_E48d_v4,reserved_1y,NA,2.650799,USD,Azure Retail Prices API,2025-12-18T04:45:18.149153 +AZURE,southcentralus,Standard_E48d_v4,reserved_3y,NA,1.707268,USD,Azure Retail Prices API,2025-12-18T04:45:18.149156 +AZURE,southcentralus,Standard_E48d_v4,spot,NA,0.830306,USD,Azure Retail Prices API,2025-12-18T04:45:16.133619 +AZURE,southcentralus,Standard_E48ds_v4,on_demand,NA,4.493,USD,Azure Retail Prices API,2025-12-18T04:45:16.134228 +AZURE,southcentralus,Standard_E48ds_v4,reserved_1y,NA,2.650799,USD,Azure Retail Prices API,2025-12-18T04:45:18.149363 +AZURE,southcentralus,Standard_E48ds_v4,reserved_3y,NA,1.707268,USD,Azure Retail Prices API,2025-12-18T04:45:18.149366 +AZURE,southcentralus,Standard_E48ds_v4,spot,NA,0.830306,USD,Azure Retail Prices API,2025-12-18T04:45:16.133863 +AZURE,southcentralus,Standard_E48ds_v5,on_demand,NA,4.147,USD,Azure Retail Prices API,2025-12-18T04:45:16.134099 +AZURE,southcentralus,Standard_E48ds_v5,reserved_1y,NA,2.446804,USD,Azure Retail Prices API,2025-12-18T04:45:18.149258 +AZURE,southcentralus,Standard_E48ds_v5,reserved_3y,NA,1.575951,USD,Azure Retail Prices API,2025-12-18T04:45:18.149261 +AZURE,southcentralus,Standard_E48ds_v5,spot,NA,0.790833,USD,Azure Retail Prices API,2025-12-18T04:45:16.134192 +AZURE,southcentralus,Standard_E48ds_v6,on_demand,NA,4.709,USD,Azure Retail Prices API,2025-12-18T04:45:16.134226 +AZURE,southcentralus,Standard_E48ds_v6,reserved_1y,NA,2.919749,USD,Azure Retail Prices API,2025-12-18T04:45:18.149357 +AZURE,southcentralus,Standard_E48ds_v6,reserved_3y,NA,1.836606,USD,Azure Retail Prices API,2025-12-18T04:45:18.149360 +AZURE,southcentralus,Standard_E48ds_v6,spot,NA,0.870223,USD,Azure Retail Prices API,2025-12-18T04:45:16.133122 +AZURE,southcentralus,Standard_E48pds_v6,on_demand,NA,3.37,USD,Azure Retail Prices API,2025-12-18T04:45:16.134681 +AZURE,southcentralus,Standard_E48pds_v6,reserved_1y,NA,1.988014,USD,Azure Retail Prices API,2025-12-18T04:45:18.149821 +AZURE,southcentralus,Standard_E48pds_v6,reserved_3y,NA,1.280441,USD,Azure Retail Prices API,2025-12-18T04:45:18.149824 +AZURE,southcentralus,Standard_E48pds_v6,spot,NA,0.622776,USD,Azure Retail Prices API,2025-12-18T04:45:16.134561 +AZURE,southcentralus,Standard_E48ps_v6,on_demand,NA,2.654,USD,Azure Retail Prices API,2025-12-18T04:45:16.134440 +AZURE,southcentralus,Standard_E48ps_v6,reserved_1y,NA,1.566096,USD,Azure Retail Prices API,2025-12-18T04:45:18.149585 +AZURE,southcentralus,Standard_E48ps_v6,reserved_3y,NA,1.008676,USD,Azure Retail Prices API,2025-12-18T04:45:18.149588 +AZURE,southcentralus,Standard_E48ps_v6,spot,NA,0.490459,USD,Azure Retail Prices API,2025-12-18T04:45:16.133749 +AZURE,southcentralus,Standard_E48s_v4,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:16.134051 +AZURE,southcentralus,Standard_E48s_v4,reserved_1y,NA,2.140982,USD,Azure Retail Prices API,2025-12-18T04:45:18.149188 +AZURE,southcentralus,Standard_E48s_v4,reserved_3y,NA,1.378957,USD,Azure Retail Prices API,2025-12-18T04:45:18.149191 +AZURE,southcentralus,Standard_E48s_v4,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:45:16.133532 +AZURE,southcentralus,Standard_E48s_v5,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:16.133791 +AZURE,southcentralus,Standard_E48s_v5,reserved_1y,NA,2.140982,USD,Azure Retail Prices API,2025-12-18T04:45:18.148891 +AZURE,southcentralus,Standard_E48s_v5,reserved_3y,NA,1.342656,USD,Azure Retail Prices API,2025-12-18T04:45:18.148894 +AZURE,southcentralus,Standard_E48s_v5,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:45:16.133624 +AZURE,southcentralus,Standard_E4_v3,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:45:16.134775 +AZURE,southcentralus,Standard_E4_v3,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:45:18.149878 +AZURE,southcentralus,Standard_E4_v3,reserved_3y,NA,0.119977,USD,Azure Retail Prices API,2025-12-18T04:45:18.149880 +AZURE,southcentralus,Standard_E4_v3,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:45:16.134111 +AZURE,southcentralus,Standard_E4a_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:16.133808 +AZURE,southcentralus,Standard_E4a_v4,reserved_1y,NA,0.181393,USD,Azure Retail Prices API,2025-12-18T04:45:18.148924 +AZURE,southcentralus,Standard_E4a_v4,reserved_3y,NA,0.120967,USD,Azure Retail Prices API,2025-12-18T04:45:18.148927 +AZURE,southcentralus,Standard_E4a_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:45:16.133338 +AZURE,southcentralus,Standard_E4ads_v5,on_demand,NA,0.314,USD,Azure Retail Prices API,2025-12-18T04:45:16.133250 +AZURE,southcentralus,Standard_E4ads_v5,reserved_1y,NA,0.185502,USD,Azure Retail Prices API,2025-12-18T04:45:18.148423 +AZURE,southcentralus,Standard_E4ads_v5,reserved_3y,NA,0.119482,USD,Azure Retail Prices API,2025-12-18T04:45:18.148426 +AZURE,southcentralus,Standard_E4ads_v5,spot,NA,0.058027,USD,Azure Retail Prices API,2025-12-18T04:45:16.133485 +AZURE,southcentralus,Standard_E4ads_v6,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:45:16.133426 +AZURE,southcentralus,Standard_E4ads_v6,reserved_1y,NA,0.205137,USD,Azure Retail Prices API,2025-12-18T04:45:18.148577 +AZURE,southcentralus,Standard_E4ads_v6,reserved_3y,NA,0.132078,USD,Azure Retail Prices API,2025-12-18T04:45:18.148580 +AZURE,southcentralus,Standard_E4ads_v6,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:45:16.134770 +AZURE,southcentralus,Standard_E4as_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:16.133872 +AZURE,southcentralus,Standard_E4as_v4,reserved_1y,NA,0.181393,USD,Azure Retail Prices API,2025-12-18T04:45:18.148992 +AZURE,southcentralus,Standard_E4as_v4,reserved_3y,NA,0.120967,USD,Azure Retail Prices API,2025-12-18T04:45:18.148996 +AZURE,southcentralus,Standard_E4as_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:45:16.133936 +AZURE,southcentralus,Standard_E4as_v5,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:45:16.133143 +AZURE,southcentralus,Standard_E4as_v5,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:45:18.148318 +AZURE,southcentralus,Standard_E4as_v5,reserved_3y,NA,0.103044,USD,Azure Retail Prices API,2025-12-18T04:45:18.148321 +AZURE,southcentralus,Standard_E4as_v5,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:45:16.134189 +AZURE,southcentralus,Standard_E4d_v4,on_demand,NA,0.374,USD,Azure Retail Prices API,2025-12-18T04:45:16.133927 +AZURE,southcentralus,Standard_E4d_v4,reserved_1y,NA,0.22089,USD,Azure Retail Prices API,2025-12-18T04:45:18.149059 +AZURE,southcentralus,Standard_E4d_v4,reserved_3y,NA,0.142275,USD,Azure Retail Prices API,2025-12-18T04:45:18.149063 +AZURE,southcentralus,Standard_E4d_v4,spot,NA,0.069115,USD,Azure Retail Prices API,2025-12-18T04:45:16.133162 +AZURE,southcentralus,Standard_E4ds_v4,on_demand,NA,0.374,USD,Azure Retail Prices API,2025-12-18T04:45:16.134537 +AZURE,southcentralus,Standard_E4ds_v4,reserved_1y,NA,0.22089,USD,Azure Retail Prices API,2025-12-18T04:45:18.149702 +AZURE,southcentralus,Standard_E4ds_v4,reserved_3y,NA,0.142275,USD,Azure Retail Prices API,2025-12-18T04:45:18.149705 +AZURE,southcentralus,Standard_E4ds_v4,spot,NA,0.069115,USD,Azure Retail Prices API,2025-12-18T04:45:16.133380 +AZURE,southcentralus,Standard_E4ds_v5,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:16.134760 +AZURE,southcentralus,Standard_E4ds_v5,reserved_1y,NA,0.203881,USD,Azure Retail Prices API,2025-12-18T04:45:18.149867 +AZURE,southcentralus,Standard_E4ds_v5,reserved_3y,NA,0.131317,USD,Azure Retail Prices API,2025-12-18T04:45:18.149869 +AZURE,southcentralus,Standard_E4ds_v5,spot,NA,0.065982,USD,Azure Retail Prices API,2025-12-18T04:45:16.133367 +AZURE,southcentralus,Standard_E4ds_v6,on_demand,NA,0.392,USD,Azure Retail Prices API,2025-12-18T04:45:16.134716 +AZURE,southcentralus,Standard_E4ds_v6,reserved_1y,NA,0.243265,USD,Azure Retail Prices API,2025-12-18T04:45:18.149844 +AZURE,southcentralus,Standard_E4ds_v6,reserved_3y,NA,0.153044,USD,Azure Retail Prices API,2025-12-18T04:45:18.149847 +AZURE,southcentralus,Standard_E4ds_v6,spot,NA,0.072442,USD,Azure Retail Prices API,2025-12-18T04:45:16.133949 +AZURE,southcentralus,Standard_E4pds_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:45:16.133906 +AZURE,southcentralus,Standard_E4pds_v6,reserved_1y,NA,0.165639,USD,Azure Retail Prices API,2025-12-18T04:45:18.149046 +AZURE,southcentralus,Standard_E4pds_v6,reserved_3y,NA,0.106697,USD,Azure Retail Prices API,2025-12-18T04:45:18.149049 +AZURE,southcentralus,Standard_E4pds_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:45:16.134434 +AZURE,southcentralus,Standard_E4ps_v6,on_demand,NA,0.221,USD,Azure Retail Prices API,2025-12-18T04:45:16.133933 +AZURE,southcentralus,Standard_E4ps_v6,reserved_1y,NA,0.130479,USD,Azure Retail Prices API,2025-12-18T04:45:18.149072 +AZURE,southcentralus,Standard_E4ps_v6,reserved_3y,NA,0.084056,USD,Azure Retail Prices API,2025-12-18T04:45:18.149075 +AZURE,southcentralus,Standard_E4ps_v6,spot,NA,0.040841,USD,Azure Retail Prices API,2025-12-18T04:45:16.133491 +AZURE,southcentralus,Standard_E4s_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:16.133030 +AZURE,southcentralus,Standard_E4s_v4,reserved_1y,NA,0.178425,USD,Azure Retail Prices API,2025-12-18T04:45:18.148184 +AZURE,southcentralus,Standard_E4s_v4,reserved_3y,NA,0.114916,USD,Azure Retail Prices API,2025-12-18T04:45:18.148188 +AZURE,southcentralus,Standard_E4s_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:45:16.133738 +AZURE,southcentralus,Standard_E4s_v5,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:16.133149 +AZURE,southcentralus,Standard_E4s_v5,reserved_1y,NA,0.178425,USD,Azure Retail Prices API,2025-12-18T04:45:18.148324 +AZURE,southcentralus,Standard_E4s_v5,reserved_3y,NA,0.111872,USD,Azure Retail Prices API,2025-12-18T04:45:18.148327 +AZURE,southcentralus,Standard_E4s_v5,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:45:16.134552 +AZURE,southcentralus,Standard_E64_v3,on_demand,NA,4.199,USD,Azure Retail Prices API,2025-12-18T04:45:16.133457 +AZURE,southcentralus,Standard_E64_v3,reserved_1y,NA,2.830251,USD,Azure Retail Prices API,2025-12-18T04:45:18.148617 +AZURE,southcentralus,Standard_E64_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:45:18.148620 +AZURE,southcentralus,Standard_E64_v3,spot,NA,0.775975,USD,Azure Retail Prices API,2025-12-18T04:45:16.133471 +AZURE,southcentralus,Standard_E64a_v4,on_demand,NA,4.838,USD,Azure Retail Prices API,2025-12-18T04:45:16.134515 +AZURE,southcentralus,Standard_E64a_v4,reserved_1y,NA,2.903082,USD,Azure Retail Prices API,2025-12-18T04:45:18.149673 +AZURE,southcentralus,Standard_E64a_v4,reserved_3y,NA,1.93535,USD,Azure Retail Prices API,2025-12-18T04:45:18.149675 +AZURE,southcentralus,Standard_E64a_v4,spot,NA,0.894062,USD,Azure Retail Prices API,2025-12-18T04:45:16.134755 +AZURE,southcentralus,Standard_E64ads_v5,on_demand,NA,7.974,USD,Azure Retail Prices API,2025-12-18T04:45:16.133766 +AZURE,southcentralus,Standard_E64ads_v5,reserved_1y,NA,2.967922,USD,Azure Retail Prices API,2025-12-18T04:45:18.149725 +AZURE,southcentralus,Standard_E64ads_v5,reserved_3y,NA,1.911568,USD,Azure Retail Prices API,2025-12-18T04:45:18.149727 +AZURE,southcentralus,Standard_E64ads_v5,spot,NA,0.929544,USD,Azure Retail Prices API,2025-12-18T04:45:16.134153 +AZURE,southcentralus,Standard_E64ads_v6,on_demand,NA,5.562,USD,Azure Retail Prices API,2025-12-18T04:45:16.134486 +AZURE,southcentralus,Standard_E64ads_v6,reserved_1y,NA,3.281393,USD,Azure Retail Prices API,2025-12-18T04:45:18.149637 +AZURE,southcentralus,Standard_E64ads_v6,reserved_3y,NA,2.113394,USD,Azure Retail Prices API,2025-12-18T04:45:18.149640 +AZURE,southcentralus,Standard_E64ads_v6,spot,NA,1.027858,USD,Azure Retail Prices API,2025-12-18T04:45:16.134453 +AZURE,southcentralus,Standard_E64as_v4,on_demand,NA,4.838,USD,Azure Retail Prices API,2025-12-18T04:45:16.133197 +AZURE,southcentralus,Standard_E64as_v4,reserved_1y,NA,2.903082,USD,Azure Retail Prices API,2025-12-18T04:45:18.148376 +AZURE,southcentralus,Standard_E64as_v4,reserved_3y,NA,1.93535,USD,Azure Retail Prices API,2025-12-18T04:45:18.148379 +AZURE,southcentralus,Standard_E64as_v4,spot,NA,0.894062,USD,Azure Retail Prices API,2025-12-18T04:45:16.134450 +AZURE,southcentralus,Standard_E64as_v5,on_demand,NA,7.283,USD,Azure Retail Prices API,2025-12-18T04:45:16.134356 +AZURE,southcentralus,Standard_E64as_v5,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:45:18.149574 +AZURE,southcentralus,Standard_E64as_v5,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:45:18.149577 +AZURE,southcentralus,Standard_E64as_v5,spot,NA,0.801847,USD,Azure Retail Prices API,2025-12-18T04:45:16.133094 +AZURE,southcentralus,Standard_E64d_v4,on_demand,NA,5.99,USD,Azure Retail Prices API,2025-12-18T04:45:16.134473 +AZURE,southcentralus,Standard_E64d_v4,reserved_1y,NA,3.534361,USD,Azure Retail Prices API,2025-12-18T04:45:18.149616 +AZURE,southcentralus,Standard_E64d_v4,reserved_3y,NA,2.27637,USD,Azure Retail Prices API,2025-12-18T04:45:18.149619 +AZURE,southcentralus,Standard_E64d_v4,spot,NA,1.106952,USD,Azure Retail Prices API,2025-12-18T04:45:16.134765 +AZURE,southcentralus,Standard_E64ds_v4,on_demand,NA,5.99,USD,Azure Retail Prices API,2025-12-18T04:45:16.134255 +AZURE,southcentralus,Standard_E64ds_v4,reserved_1y,NA,3.534361,USD,Azure Retail Prices API,2025-12-18T04:45:18.149397 +AZURE,southcentralus,Standard_E64ds_v4,reserved_3y,NA,2.27637,USD,Azure Retail Prices API,2025-12-18T04:45:18.149400 +AZURE,southcentralus,Standard_E64ds_v4,spot,NA,1.106952,USD,Azure Retail Prices API,2025-12-18T04:45:16.133537 +AZURE,southcentralus,Standard_E64ds_v5,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:16.133769 +AZURE,southcentralus,Standard_E64ds_v5,reserved_1y,NA,3.262443,USD,Azure Retail Prices API,2025-12-18T04:45:18.148857 +AZURE,southcentralus,Standard_E64ds_v5,reserved_3y,NA,2.101256,USD,Azure Retail Prices API,2025-12-18T04:45:18.148861 +AZURE,southcentralus,Standard_E64ds_v5,spot,NA,1.054571,USD,Azure Retail Prices API,2025-12-18T04:45:16.133743 +AZURE,southcentralus,Standard_E64ds_v6,on_demand,NA,6.279,USD,Azure Retail Prices API,2025-12-18T04:45:16.134344 +AZURE,southcentralus,Standard_E64ds_v6,reserved_1y,NA,3.893037,USD,Azure Retail Prices API,2025-12-18T04:45:18.149465 +AZURE,southcentralus,Standard_E64ds_v6,reserved_3y,NA,2.44882,USD,Azure Retail Prices API,2025-12-18T04:45:18.149468 +AZURE,southcentralus,Standard_E64ds_v6,spot,NA,1.160359,USD,Azure Retail Prices API,2025-12-18T04:45:16.133705 +AZURE,southcentralus,Standard_E64pds_v6,on_demand,NA,4.493,USD,Azure Retail Prices API,2025-12-18T04:45:16.133575 +AZURE,southcentralus,Standard_E64pds_v6,reserved_1y,NA,2.650799,USD,Azure Retail Prices API,2025-12-18T04:45:18.148710 +AZURE,southcentralus,Standard_E64pds_v6,reserved_3y,NA,1.707268,USD,Azure Retail Prices API,2025-12-18T04:45:18.148713 +AZURE,southcentralus,Standard_E64pds_v6,spot,NA,0.830306,USD,Azure Retail Prices API,2025-12-18T04:45:16.133783 +AZURE,southcentralus,Standard_E64ps_v6,on_demand,NA,3.539,USD,Azure Retail Prices API,2025-12-18T04:45:16.134324 +AZURE,southcentralus,Standard_E64ps_v6,reserved_1y,NA,2.088128,USD,Azure Retail Prices API,2025-12-18T04:45:18.149442 +AZURE,southcentralus,Standard_E64ps_v6,reserved_3y,NA,1.344901,USD,Azure Retail Prices API,2025-12-18T04:45:18.149445 +AZURE,southcentralus,Standard_E64ps_v6,spot,NA,0.654007,USD,Azure Retail Prices API,2025-12-18T04:45:16.133389 +AZURE,southcentralus,Standard_E64s_v3,on_demand,NA,4.199,USD,Azure Retail Prices API,2025-12-18T04:45:16.133104 +AZURE,southcentralus,Standard_E64s_v3,reserved_1y,NA,2.830251,USD,Azure Retail Prices API,2025-12-18T04:45:18.148282 +AZURE,southcentralus,Standard_E64s_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:45:18.148285 +AZURE,southcentralus,Standard_E64s_v3,spot,NA,0.775975,USD,Azure Retail Prices API,2025-12-18T04:45:16.133980 +AZURE,southcentralus,Standard_E64s_v4,on_demand,NA,4.838,USD,Azure Retail Prices API,2025-12-18T04:45:16.133336 +AZURE,southcentralus,Standard_E64s_v4,reserved_1y,NA,2.85468,USD,Azure Retail Prices API,2025-12-18T04:45:18.148510 +AZURE,southcentralus,Standard_E64s_v4,reserved_3y,NA,1.838584,USD,Azure Retail Prices API,2025-12-18T04:45:18.148513 +AZURE,southcentralus,Standard_E64s_v4,spot,NA,0.894062,USD,Azure Retail Prices API,2025-12-18T04:45:16.134243 +AZURE,southcentralus,Standard_E64s_v5,on_demand,NA,4.838,USD,Azure Retail Prices API,2025-12-18T04:45:16.134065 +AZURE,southcentralus,Standard_E64s_v5,reserved_1y,NA,2.85468,USD,Azure Retail Prices API,2025-12-18T04:45:18.149218 +AZURE,southcentralus,Standard_E64s_v5,reserved_3y,NA,1.790221,USD,Azure Retail Prices API,2025-12-18T04:45:18.149221 +AZURE,southcentralus,Standard_E64s_v5,spot,NA,0.894062,USD,Azure Retail Prices API,2025-12-18T04:45:16.133037 +AZURE,southcentralus,Standard_E80ids_v4,on_demand,NA,7.488,USD,Azure Retail Prices API,2025-12-18T04:45:16.134264 +AZURE,southcentralus,Standard_E80ids_v4,reserved_1y,NA,4.417922,USD,Azure Retail Prices API,2025-12-18T04:45:18.149408 +AZURE,southcentralus,Standard_E80ids_v4,reserved_3y,NA,2.845434,USD,Azure Retail Prices API,2025-12-18T04:45:18.149412 +AZURE,southcentralus,Standard_E80ids_v4,spot,NA,1.383782,USD,Azure Retail Prices API,2025-12-18T04:45:16.134208 +AZURE,southcentralus,Standard_E80is_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:45:16.134347 +AZURE,southcentralus,Standard_E80is_v4,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:18.149471 +AZURE,southcentralus,Standard_E80is_v4,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:45:18.149474 +AZURE,southcentralus,Standard_E80is_v4,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:45:16.134211 +AZURE,southcentralus,Standard_E8_v3,on_demand,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:45:16.133298 +AZURE,southcentralus,Standard_E8_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:45:18.148487 +AZURE,southcentralus,Standard_E8_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:45:18.148489 +AZURE,southcentralus,Standard_E8_v3,spot,NA,0.107738,USD,Azure Retail Prices API,2025-12-18T04:45:16.134394 +AZURE,southcentralus,Standard_E8a_v4,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:45:16.134350 +AZURE,southcentralus,Standard_E8a_v4,reserved_1y,NA,0.3629,USD,Azure Retail Prices API,2025-12-18T04:45:18.149477 +AZURE,southcentralus,Standard_E8a_v4,reserved_3y,NA,0.241933,USD,Azure Retail Prices API,2025-12-18T04:45:18.149480 +AZURE,southcentralus,Standard_E8a_v4,spot,NA,0.111804,USD,Azure Retail Prices API,2025-12-18T04:45:16.134331 +AZURE,southcentralus,Standard_E8ads_v5,on_demand,NA,0.629,USD,Azure Retail Prices API,2025-12-18T04:45:16.133903 +AZURE,southcentralus,Standard_E8ads_v5,reserved_1y,NA,0.371005,USD,Azure Retail Prices API,2025-12-18T04:45:18.149026 +AZURE,southcentralus,Standard_E8ads_v5,reserved_3y,NA,0.238927,USD,Azure Retail Prices API,2025-12-18T04:45:18.149043 +AZURE,southcentralus,Standard_E8ads_v5,spot,NA,0.116239,USD,Azure Retail Prices API,2025-12-18T04:45:16.133206 +AZURE,southcentralus,Standard_E8ads_v6,on_demand,NA,0.695,USD,Azure Retail Prices API,2025-12-18T04:45:16.134694 +AZURE,southcentralus,Standard_E8ads_v6,reserved_1y,NA,0.41016,USD,Azure Retail Prices API,2025-12-18T04:45:18.149827 +AZURE,southcentralus,Standard_E8ads_v6,reserved_3y,NA,0.264193,USD,Azure Retail Prices API,2025-12-18T04:45:18.149830 +AZURE,southcentralus,Standard_E8ads_v6,spot,NA,0.128436,USD,Azure Retail Prices API,2025-12-18T04:45:16.133688 +AZURE,southcentralus,Standard_E8as_v4,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:45:16.133849 +AZURE,southcentralus,Standard_E8as_v4,reserved_1y,NA,0.3629,USD,Azure Retail Prices API,2025-12-18T04:45:18.148974 +AZURE,southcentralus,Standard_E8as_v4,reserved_3y,NA,0.241933,USD,Azure Retail Prices API,2025-12-18T04:45:18.148977 +AZURE,southcentralus,Standard_E8as_v4,spot,NA,0.111804,USD,Azure Retail Prices API,2025-12-18T04:45:16.133181 +AZURE,southcentralus,Standard_E8as_v5,on_demand,NA,0.91,USD,Azure Retail Prices API,2025-12-18T04:45:16.133301 +AZURE,southcentralus,Standard_E8as_v5,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:45:18.148516 +AZURE,southcentralus,Standard_E8as_v5,reserved_3y,NA,0.206126,USD,Azure Retail Prices API,2025-12-18T04:45:18.148518 +AZURE,southcentralus,Standard_E8as_v5,spot,NA,0.100162,USD,Azure Retail Prices API,2025-12-18T04:45:16.133746 +AZURE,southcentralus,Standard_E8d_v4,on_demand,NA,0.749,USD,Azure Retail Prices API,2025-12-18T04:45:16.134586 +AZURE,southcentralus,Standard_E8d_v4,reserved_1y,NA,0.441781,USD,Azure Retail Prices API,2025-12-18T04:45:18.149753 +AZURE,southcentralus,Standard_E8d_v4,reserved_3y,NA,0.284551,USD,Azure Retail Prices API,2025-12-18T04:45:18.149756 +AZURE,southcentralus,Standard_E8d_v4,spot,NA,0.138415,USD,Azure Retail Prices API,2025-12-18T04:45:16.133897 +AZURE,southcentralus,Standard_E8ds_v4,on_demand,NA,0.749,USD,Azure Retail Prices API,2025-12-18T04:45:16.133500 +AZURE,southcentralus,Standard_E8ds_v4,reserved_1y,NA,0.441781,USD,Azure Retail Prices API,2025-12-18T04:45:18.148646 +AZURE,southcentralus,Standard_E8ds_v4,reserved_3y,NA,0.284551,USD,Azure Retail Prices API,2025-12-18T04:45:18.148650 +AZURE,southcentralus,Standard_E8ds_v4,spot,NA,0.138415,USD,Azure Retail Prices API,2025-12-18T04:45:16.133846 +AZURE,southcentralus,Standard_E8ds_v5,on_demand,NA,0.691,USD,Azure Retail Prices API,2025-12-18T04:45:16.133330 +AZURE,southcentralus,Standard_E8ds_v5,reserved_1y,NA,0.407763,USD,Azure Retail Prices API,2025-12-18T04:45:18.148504 +AZURE,southcentralus,Standard_E8ds_v5,reserved_3y,NA,0.262671,USD,Azure Retail Prices API,2025-12-18T04:45:18.148507 +AZURE,southcentralus,Standard_E8ds_v5,spot,NA,0.131774,USD,Azure Retail Prices API,2025-12-18T04:45:16.133348 +AZURE,southcentralus,Standard_E8ds_v6,on_demand,NA,0.785,USD,Azure Retail Prices API,2025-12-18T04:45:16.134113 +AZURE,southcentralus,Standard_E8ds_v6,reserved_1y,NA,0.486644,USD,Azure Retail Prices API,2025-12-18T04:45:18.149269 +AZURE,southcentralus,Standard_E8ds_v6,reserved_3y,NA,0.306088,USD,Azure Retail Prices API,2025-12-18T04:45:18.149272 +AZURE,southcentralus,Standard_E8ds_v6,spot,NA,0.145068,USD,Azure Retail Prices API,2025-12-18T04:45:16.133325 +AZURE,southcentralus,Standard_E8pds_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:45:16.133823 +AZURE,southcentralus,Standard_E8pds_v6,reserved_1y,NA,0.331393,USD,Azure Retail Prices API,2025-12-18T04:45:18.148936 +AZURE,southcentralus,Standard_E8pds_v6,reserved_3y,NA,0.213394,USD,Azure Retail Prices API,2025-12-18T04:45:18.148939 +AZURE,southcentralus,Standard_E8pds_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:45:16.134054 +AZURE,southcentralus,Standard_E8ps_v6,on_demand,NA,0.442,USD,Azure Retail Prices API,2025-12-18T04:45:16.133797 +AZURE,southcentralus,Standard_E8ps_v6,reserved_1y,NA,0.261073,USD,Azure Retail Prices API,2025-12-18T04:45:18.148903 +AZURE,southcentralus,Standard_E8ps_v6,reserved_3y,NA,0.168113,USD,Azure Retail Prices API,2025-12-18T04:45:18.148907 +AZURE,southcentralus,Standard_E8ps_v6,spot,NA,0.081682,USD,Azure Retail Prices API,2025-12-18T04:45:16.133679 +AZURE,southcentralus,Standard_E8s_v3,on_demand,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:45:16.134444 +AZURE,southcentralus,Standard_E8s_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:45:18.149591 +AZURE,southcentralus,Standard_E8s_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:45:18.149594 +AZURE,southcentralus,Standard_E8s_v3,spot,NA,0.107738,USD,Azure Retail Prices API,2025-12-18T04:45:16.133720 +AZURE,southcentralus,Standard_E8s_v4,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:45:16.133545 +AZURE,southcentralus,Standard_E8s_v4,reserved_1y,NA,0.356849,USD,Azure Retail Prices API,2025-12-18T04:45:18.148697 +AZURE,southcentralus,Standard_E8s_v4,reserved_3y,NA,0.229833,USD,Azure Retail Prices API,2025-12-18T04:45:18.148701 +AZURE,southcentralus,Standard_E8s_v4,spot,NA,0.111804,USD,Azure Retail Prices API,2025-12-18T04:45:16.133451 +AZURE,southcentralus,Standard_E8s_v5,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:45:16.134492 +AZURE,southcentralus,Standard_E8s_v5,reserved_1y,NA,0.356849,USD,Azure Retail Prices API,2025-12-18T04:45:18.149643 +AZURE,southcentralus,Standard_E8s_v5,reserved_3y,NA,0.223782,USD,Azure Retail Prices API,2025-12-18T04:45:18.149646 +AZURE,southcentralus,Standard_E8s_v5,spot,NA,0.111804,USD,Azure Retail Prices API,2025-12-18T04:45:16.134568 +AZURE,southcentralus,Standard_E96a_v4,on_demand,NA,7.258,USD,Azure Retail Prices API,2025-12-18T04:45:16.133837 +AZURE,southcentralus,Standard_E96a_v4,reserved_1y,NA,4.354566,USD,Azure Retail Prices API,2025-12-18T04:45:18.148955 +AZURE,southcentralus,Standard_E96a_v4,reserved_3y,NA,2.903044,USD,Azure Retail Prices API,2025-12-18T04:45:18.148958 +AZURE,southcentralus,Standard_E96a_v4,spot,NA,1.341278,USD,Azure Retail Prices API,2025-12-18T04:45:16.133479 +AZURE,southcentralus,Standard_E96ads_v5,on_demand,NA,11.962,USD,Azure Retail Prices API,2025-12-18T04:45:16.133971 +AZURE,southcentralus,Standard_E96ads_v5,reserved_1y,NA,4.451941,USD,Azure Retail Prices API,2025-12-18T04:45:18.149247 +AZURE,southcentralus,Standard_E96ads_v5,reserved_3y,NA,2.867314,USD,Azure Retail Prices API,2025-12-18T04:45:18.149250 +AZURE,southcentralus,Standard_E96ads_v5,spot,NA,1.394501,USD,Azure Retail Prices API,2025-12-18T04:45:16.133819 +AZURE,southcentralus,Standard_E96ads_v6,on_demand,NA,8.342,USD,Azure Retail Prices API,2025-12-18T04:45:16.134071 +AZURE,southcentralus,Standard_E96ads_v6,reserved_1y,NA,4.922032,USD,Azure Retail Prices API,2025-12-18T04:45:18.149229 +AZURE,southcentralus,Standard_E96ads_v6,reserved_3y,NA,3.170129,USD,Azure Retail Prices API,2025-12-18T04:45:18.149232 +AZURE,southcentralus,Standard_E96ads_v6,spot,NA,1.541602,USD,Azure Retail Prices API,2025-12-18T04:45:16.133946 +AZURE,southcentralus,Standard_E96as_v4,on_demand,NA,7.258,USD,Azure Retail Prices API,2025-12-18T04:45:16.133939 +AZURE,southcentralus,Standard_E96as_v4,reserved_1y,NA,4.354566,USD,Azure Retail Prices API,2025-12-18T04:45:18.149078 +AZURE,southcentralus,Standard_E96as_v4,reserved_3y,NA,2.903044,USD,Azure Retail Prices API,2025-12-18T04:45:18.149081 +AZURE,southcentralus,Standard_E96as_v4,spot,NA,1.341278,USD,Azure Retail Prices API,2025-12-18T04:45:16.133800 +AZURE,southcentralus,Standard_E96as_v5,on_demand,NA,6.509,USD,Azure Retail Prices API,2025-12-18T04:45:16.134447 +AZURE,southcentralus,Standard_E96as_v5,reserved_1y,NA,3.840183,USD,Azure Retail Prices API,2025-12-18T04:45:18.149599 +AZURE,southcentralus,Standard_E96as_v5,reserved_3y,NA,2.473326,USD,Azure Retail Prices API,2025-12-18T04:45:18.149603 +AZURE,southcentralus,Standard_E96as_v5,spot,NA,1.202863,USD,Azure Retail Prices API,2025-12-18T04:45:16.134141 +AZURE,southcentralus,Standard_E96ds_v5,on_demand,NA,8.294,USD,Azure Retail Prices API,2025-12-18T04:45:16.133711 +AZURE,southcentralus,Standard_E96ds_v5,reserved_1y,NA,4.893721,USD,Azure Retail Prices API,2025-12-18T04:45:18.148813 +AZURE,southcentralus,Standard_E96ds_v5,reserved_3y,NA,3.151865,USD,Azure Retail Prices API,2025-12-18T04:45:18.148817 +AZURE,southcentralus,Standard_E96ds_v5,spot,NA,1.581666,USD,Azure Retail Prices API,2025-12-18T04:45:16.134314 +AZURE,southcentralus,Standard_E96ds_v6,on_demand,NA,9.419,USD,Azure Retail Prices API,2025-12-18T04:45:16.133880 +AZURE,southcentralus,Standard_E96ds_v6,reserved_1y,NA,5.839498,USD,Azure Retail Prices API,2025-12-18T04:45:18.149013 +AZURE,southcentralus,Standard_E96ds_v6,reserved_3y,NA,3.67325,USD,Azure Retail Prices API,2025-12-18T04:45:18.149017 +AZURE,southcentralus,Standard_E96ds_v6,spot,NA,1.740631,USD,Azure Retail Prices API,2025-12-18T04:45:16.134167 +AZURE,southcentralus,Standard_E96pds_v6,on_demand,NA,6.739,USD,Azure Retail Prices API,2025-12-18T04:45:16.134337 +AZURE,southcentralus,Standard_E96pds_v6,reserved_1y,NA,3.976142,USD,Azure Retail Prices API,2025-12-18T04:45:18.149454 +AZURE,southcentralus,Standard_E96pds_v6,reserved_3y,NA,2.560883,USD,Azure Retail Prices API,2025-12-18T04:45:18.149456 +AZURE,southcentralus,Standard_E96pds_v6,spot,NA,1.245367,USD,Azure Retail Prices API,2025-12-18T04:45:16.133229 +AZURE,southcentralus,Standard_E96ps_v6,on_demand,NA,5.309,USD,Azure Retail Prices API,2025-12-18T04:45:16.133967 +AZURE,southcentralus,Standard_E96ps_v6,reserved_1y,NA,3.132192,USD,Azure Retail Prices API,2025-12-18T04:45:18.149097 +AZURE,southcentralus,Standard_E96ps_v6,reserved_3y,NA,2.017352,USD,Azure Retail Prices API,2025-12-18T04:45:18.149100 +AZURE,southcentralus,Standard_E96ps_v6,spot,NA,0.981103,USD,Azure Retail Prices API,2025-12-18T04:45:16.133685 +AZURE,southcentralus,Standard_E96s_v5,on_demand,NA,7.258,USD,Azure Retail Prices API,2025-12-18T04:45:16.133137 +AZURE,southcentralus,Standard_E96s_v5,reserved_1y,NA,4.281963,USD,Azure Retail Prices API,2025-12-18T04:45:18.148312 +AZURE,southcentralus,Standard_E96s_v5,reserved_3y,NA,2.685312,USD,Azure Retail Prices API,2025-12-18T04:45:18.148315 +AZURE,southcentralus,Standard_E96s_v5,spot,NA,1.341278,USD,Azure Retail Prices API,2025-12-18T04:45:16.133886 +AZURE,southcentralus,Standard_EC16ads_v6,on_demand,NA,1.39,USD,Azure Retail Prices API,2025-12-18T04:45:16.134401 +AZURE,southcentralus,Standard_EC16ads_v6,reserved_1y,NA,0.82032,USD,Azure Retail Prices API,2025-12-18T04:45:18.149535 +AZURE,southcentralus,Standard_EC16ads_v6,reserved_3y,NA,0.528349,USD,Azure Retail Prices API,2025-12-18T04:45:18.149537 +AZURE,southcentralus,Standard_EC16ads_v6,spot,NA,0.256872,USD,Azure Retail Prices API,2025-12-18T04:45:16.134635 +AZURE,southcentralus,Standard_EC16as_v6,on_demand,NA,1.142,USD,Azure Retail Prices API,2025-12-18T04:45:16.133840 +AZURE,southcentralus,Standard_EC16as_v6,reserved_1y,NA,0.673973,USD,Azure Retail Prices API,2025-12-18T04:45:18.148961 +AZURE,southcentralus,Standard_EC16as_v6,reserved_3y,NA,0.434094,USD,Azure Retail Prices API,2025-12-18T04:45:18.148964 +AZURE,southcentralus,Standard_EC16as_v6,spot,NA,0.211042,USD,Azure Retail Prices API,2025-12-18T04:45:16.133397 +AZURE,southcentralus,Standard_EC2ads_v6,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:45:16.134223 +AZURE,southcentralus,Standard_EC2ads_v6,reserved_1y,NA,0.102511,USD,Azure Retail Prices API,2025-12-18T04:45:18.149352 +AZURE,southcentralus,Standard_EC2ads_v6,reserved_3y,NA,0.066058,USD,Azure Retail Prices API,2025-12-18T04:45:18.149355 +AZURE,southcentralus,Standard_EC2ads_v6,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:45:16.134598 +AZURE,southcentralus,Standard_EC2as_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:45:16.134546 +AZURE,southcentralus,Standard_EC2as_v6,reserved_1y,NA,0.084247,USD,Azure Retail Prices API,2025-12-18T04:45:18.149713 +AZURE,southcentralus,Standard_EC2as_v6,reserved_3y,NA,0.054262,USD,Azure Retail Prices API,2025-12-18T04:45:18.149716 +AZURE,southcentralus,Standard_EC2as_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:45:16.134430 +AZURE,southcentralus,Standard_EC32ads_v6,on_demand,NA,2.781,USD,Azure Retail Prices API,2025-12-18T04:45:16.133296 +AZURE,southcentralus,Standard_EC32ads_v6,reserved_1y,NA,1.640639,USD,Azure Retail Prices API,2025-12-18T04:45:18.148481 +AZURE,southcentralus,Standard_EC32ads_v6,reserved_3y,NA,1.056697,USD,Azure Retail Prices API,2025-12-18T04:45:18.148484 +AZURE,southcentralus,Standard_EC32ads_v6,spot,NA,0.513929,USD,Azure Retail Prices API,2025-12-18T04:45:16.134156 +AZURE,southcentralus,Standard_EC32as_v6,on_demand,NA,2.285,USD,Azure Retail Prices API,2025-12-18T04:45:16.133673 +AZURE,southcentralus,Standard_EC32as_v6,reserved_1y,NA,1.348059,USD,Azure Retail Prices API,2025-12-18T04:45:18.148795 +AZURE,southcentralus,Standard_EC32as_v6,reserved_3y,NA,0.868227,USD,Azure Retail Prices API,2025-12-18T04:45:18.148798 +AZURE,southcentralus,Standard_EC32as_v6,spot,NA,0.422268,USD,Azure Retail Prices API,2025-12-18T04:45:16.134512 +AZURE,southcentralus,Standard_EC48ads_v6,on_demand,NA,4.171,USD,Azure Retail Prices API,2025-12-18T04:45:16.133119 +AZURE,southcentralus,Standard_EC48ads_v6,reserved_1y,NA,2.460959,USD,Azure Retail Prices API,2025-12-18T04:45:18.148306 +AZURE,southcentralus,Standard_EC48ads_v6,reserved_3y,NA,1.585046,USD,Azure Retail Prices API,2025-12-18T04:45:18.148310 +AZURE,southcentralus,Standard_EC48ads_v6,spot,NA,0.770801,USD,Azure Retail Prices API,2025-12-18T04:45:16.134253 +AZURE,southcentralus,Standard_EC48as_v6,on_demand,NA,3.427,USD,Azure Retail Prices API,2025-12-18T04:45:16.134571 +AZURE,southcentralus,Standard_EC48as_v6,reserved_1y,NA,2.022032,USD,Azure Retail Prices API,2025-12-18T04:45:18.149735 +AZURE,southcentralus,Standard_EC48as_v6,reserved_3y,NA,1.302321,USD,Azure Retail Prices API,2025-12-18T04:45:18.149738 +AZURE,southcentralus,Standard_EC48as_v6,spot,NA,0.63331,USD,Azure Retail Prices API,2025-12-18T04:45:16.134203 +AZURE,southcentralus,Standard_EC4ads_v6,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:45:16.133676 +AZURE,southcentralus,Standard_EC4ads_v6,reserved_1y,NA,0.205137,USD,Azure Retail Prices API,2025-12-18T04:45:18.148801 +AZURE,southcentralus,Standard_EC4ads_v6,reserved_3y,NA,0.132078,USD,Azure Retail Prices API,2025-12-18T04:45:18.148804 +AZURE,southcentralus,Standard_EC4ads_v6,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:45:16.134272 +AZURE,southcentralus,Standard_EC4as_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:45:16.133572 +AZURE,southcentralus,Standard_EC4as_v6,reserved_1y,NA,0.168493,USD,Azure Retail Prices API,2025-12-18T04:45:18.148704 +AZURE,southcentralus,Standard_EC4as_v6,reserved_3y,NA,0.108524,USD,Azure Retail Prices API,2025-12-18T04:45:18.148707 +AZURE,southcentralus,Standard_EC4as_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:45:16.133044 +AZURE,southcentralus,Standard_EC64ads_v6,on_demand,NA,5.562,USD,Azure Retail Prices API,2025-12-18T04:45:16.133909 +AZURE,southcentralus,Standard_EC64ads_v6,reserved_1y,NA,3.281393,USD,Azure Retail Prices API,2025-12-18T04:45:18.149052 +AZURE,southcentralus,Standard_EC64ads_v6,reserved_3y,NA,2.113394,USD,Azure Retail Prices API,2025-12-18T04:45:18.149056 +AZURE,southcentralus,Standard_EC64ads_v6,spot,NA,1.027858,USD,Azure Retail Prices API,2025-12-18T04:45:16.134658 +AZURE,southcentralus,Standard_EC64as_v6,on_demand,NA,4.57,USD,Azure Retail Prices API,2025-12-18T04:45:16.134388 +AZURE,southcentralus,Standard_EC64as_v6,reserved_1y,NA,2.696119,USD,Azure Retail Prices API,2025-12-18T04:45:18.149517 +AZURE,southcentralus,Standard_EC64as_v6,reserved_3y,NA,1.736454,USD,Azure Retail Prices API,2025-12-18T04:45:18.149520 +AZURE,southcentralus,Standard_EC64as_v6,spot,NA,0.844536,USD,Azure Retail Prices API,2025-12-18T04:45:16.134090 +AZURE,southcentralus,Standard_EC8ads_v6,on_demand,NA,0.695,USD,Azure Retail Prices API,2025-12-18T04:45:16.134062 +AZURE,southcentralus,Standard_EC8ads_v6,reserved_1y,NA,0.41016,USD,Azure Retail Prices API,2025-12-18T04:45:18.149213 +AZURE,southcentralus,Standard_EC8ads_v6,reserved_3y,NA,0.264193,USD,Azure Retail Prices API,2025-12-18T04:45:18.149215 +AZURE,southcentralus,Standard_EC8ads_v6,spot,NA,0.128436,USD,Azure Retail Prices API,2025-12-18T04:45:16.133590 +AZURE,southcentralus,Standard_EC8as_v6,on_demand,NA,0.571,USD,Azure Retail Prices API,2025-12-18T04:45:16.133353 +AZURE,southcentralus,Standard_EC8as_v6,reserved_1y,NA,0.336986,USD,Azure Retail Prices API,2025-12-18T04:45:18.148521 +AZURE,southcentralus,Standard_EC8as_v6,reserved_3y,NA,0.217047,USD,Azure Retail Prices API,2025-12-18T04:45:18.148525 +AZURE,southcentralus,Standard_EC8as_v6,spot,NA,0.105521,USD,Azure Retail Prices API,2025-12-18T04:45:16.133512 +AZURE,southcentralus,Standard_EC96ads_v6,on_demand,NA,8.342,USD,Azure Retail Prices API,2025-12-18T04:45:16.134135 +AZURE,southcentralus,Standard_EC96ads_v6,reserved_1y,NA,4.922032,USD,Azure Retail Prices API,2025-12-18T04:45:18.149292 +AZURE,southcentralus,Standard_EC96ads_v6,reserved_3y,NA,3.170129,USD,Azure Retail Prices API,2025-12-18T04:45:18.149295 +AZURE,southcentralus,Standard_EC96ads_v6,spot,NA,1.541602,USD,Azure Retail Prices API,2025-12-18T04:45:16.133316 +AZURE,southcentralus,Standard_EC96as_v6,on_demand,NA,6.854,USD,Azure Retail Prices API,2025-12-18T04:45:16.133786 +AZURE,southcentralus,Standard_EC96as_v6,reserved_1y,NA,4.044064,USD,Azure Retail Prices API,2025-12-18T04:45:18.148884 +AZURE,southcentralus,Standard_EC96as_v6,reserved_3y,NA,2.60468,USD,Azure Retail Prices API,2025-12-18T04:45:18.148887 +AZURE,southcentralus,Standard_EC96as_v6,spot,NA,1.266619,USD,Azure Retail Prices API,2025-12-18T04:45:16.134138 +AZURE,southcentralus,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379343 +AZURE,southcentralus,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379351 +AZURE,southcentralus,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379356 +AZURE,southcentralus,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379347 +AZURE,southcentralus,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381653 +AZURE,southcentralus,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381661 +AZURE,southcentralus,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381665 +AZURE,southcentralus,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381657 +AZURE,southcentralus,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384358 +AZURE,southcentralus,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384372 +AZURE,southcentralus,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384376 +AZURE,southcentralus,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384367 +AZURE,southcentralus,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385137 +AZURE,southcentralus,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385146 +AZURE,southcentralus,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385151 +AZURE,southcentralus,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385141 +AZURE,southcentralus,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377717 +AZURE,southcentralus,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377730 +AZURE,southcentralus,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377738 +AZURE,southcentralus,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377723 +AZURE,southcentralus,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385951 +AZURE,southcentralus,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385960 +AZURE,southcentralus,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385964 +AZURE,southcentralus,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385955 +AZURE,southcentralus,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380101 +AZURE,southcentralus,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380109 +AZURE,southcentralus,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380113 +AZURE,southcentralus,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380105 +AZURE,southcentralus,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382417 +AZURE,southcentralus,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382693 +AZURE,southcentralus,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382700 +AZURE,southcentralus,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382684 +AZURE,southcentralus,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386741 +AZURE,southcentralus,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386749 +AZURE,southcentralus,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386754 +AZURE,southcentralus,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386745 +AZURE,southcentralus,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387538 +AZURE,southcentralus,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387547 +AZURE,southcentralus,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387554 +AZURE,southcentralus,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387543 +AZURE,southcentralus,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378530 +AZURE,southcentralus,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378538 +AZURE,southcentralus,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378542 +AZURE,southcentralus,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378534 +AZURE,southcentralus,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380808 +AZURE,southcentralus,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380816 +AZURE,southcentralus,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380820 +AZURE,southcentralus,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380812 +AZURE,southcentralus,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383543 +AZURE,southcentralus,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383551 +AZURE,southcentralus,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383555 +AZURE,southcentralus,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383547 +AZURE,southcentralus,Standard_H16,on_demand,NA,1.749,USD,Azure Retail Prices API,2025-12-18T04:45:16.133578 +AZURE,southcentralus,Standard_H16,spot,NA,0.323215,USD,Azure Retail Prices API,2025-12-18T04:45:16.134024 +AZURE,southcentralus,Standard_H8,on_demand,NA,0.875,USD,Azure Retail Prices API,2025-12-18T04:45:16.134700 +AZURE,southcentralus,Standard_H8,spot,NA,0.1617,USD,Azure Retail Prices API,2025-12-18T04:45:16.134214 +AZURE,southcentralus,Standard_L16as_v3,on_demand,NA,1.498,USD,Azure Retail Prices API,2025-12-18T04:45:16.134353 +AZURE,southcentralus,Standard_L16as_v3,reserved_1y,NA,0.958447,USD,Azure Retail Prices API,2025-12-18T04:45:18.149483 +AZURE,southcentralus,Standard_L16as_v3,reserved_3y,NA,0.628995,USD,Azure Retail Prices API,2025-12-18T04:45:18.149486 +AZURE,southcentralus,Standard_L16as_v3,spot,NA,0.27683,USD,Azure Retail Prices API,2025-12-18T04:45:16.133529 +AZURE,southcentralus,Standard_L16s_v3,on_demand,NA,1.67,USD,Azure Retail Prices API,2025-12-18T04:45:16.134589 +AZURE,southcentralus,Standard_L16s_v3,reserved_1y,NA,1.069064,USD,Azure Retail Prices API,2025-12-18T04:45:18.149759 +AZURE,southcentralus,Standard_L16s_v3,reserved_3y,NA,0.70156,USD,Azure Retail Prices API,2025-12-18T04:45:18.149762 +AZURE,southcentralus,Standard_L16s_v3,spot,NA,0.314962,USD,Azure Retail Prices API,2025-12-18T04:45:16.133448 +AZURE,southcentralus,Standard_L32as_v3,on_demand,NA,2.995,USD,Azure Retail Prices API,2025-12-18T04:45:16.134604 +AZURE,southcentralus,Standard_L32as_v3,reserved_1y,NA,1.916895,USD,Azure Retail Prices API,2025-12-18T04:45:18.149775 +AZURE,southcentralus,Standard_L32as_v3,reserved_3y,NA,1.257991,USD,Azure Retail Prices API,2025-12-18T04:45:18.149778 +AZURE,southcentralus,Standard_L32as_v3,spot,NA,0.553476,USD,Azure Retail Prices API,2025-12-18T04:45:16.134178 +AZURE,southcentralus,Standard_L32s_v3,on_demand,NA,3.341,USD,Azure Retail Prices API,2025-12-18T04:45:16.134171 +AZURE,southcentralus,Standard_L32s_v3,reserved_1y,NA,2.138128,USD,Azure Retail Prices API,2025-12-18T04:45:18.149309 +AZURE,southcentralus,Standard_L32s_v3,reserved_3y,NA,1.40312,USD,Azure Retail Prices API,2025-12-18T04:45:18.149313 +AZURE,southcentralus,Standard_L32s_v3,spot,NA,0.630113,USD,Azure Retail Prices API,2025-12-18T04:45:16.133459 +AZURE,southcentralus,Standard_L48as_v3,on_demand,NA,4.493,USD,Azure Retail Prices API,2025-12-18T04:45:16.134378 +AZURE,southcentralus,Standard_L48as_v3,reserved_1y,NA,2.875342,USD,Azure Retail Prices API,2025-12-18T04:45:18.149512 +AZURE,southcentralus,Standard_L48as_v3,reserved_3y,NA,1.886986,USD,Azure Retail Prices API,2025-12-18T04:45:18.149515 +AZURE,southcentralus,Standard_L48as_v3,spot,NA,0.830306,USD,Azure Retail Prices API,2025-12-18T04:45:16.134610 +AZURE,southcentralus,Standard_L48s_v3,on_demand,NA,5.011,USD,Azure Retail Prices API,2025-12-18T04:45:16.134580 +AZURE,southcentralus,Standard_L48s_v3,reserved_1y,NA,3.207192,USD,Azure Retail Prices API,2025-12-18T04:45:18.149747 +AZURE,southcentralus,Standard_L48s_v3,reserved_3y,NA,2.104718,USD,Azure Retail Prices API,2025-12-18T04:45:18.149750 +AZURE,southcentralus,Standard_L48s_v3,spot,NA,0.945075,USD,Azure Retail Prices API,2025-12-18T04:45:16.133518 +AZURE,southcentralus,Standard_L64as_v3,on_demand,NA,5.99,USD,Azure Retail Prices API,2025-12-18T04:45:16.134524 +AZURE,southcentralus,Standard_L64as_v3,reserved_1y,NA,3.833904,USD,Azure Retail Prices API,2025-12-18T04:45:18.149684 +AZURE,southcentralus,Standard_L64as_v3,reserved_3y,NA,2.515982,USD,Azure Retail Prices API,2025-12-18T04:45:18.149687 +AZURE,southcentralus,Standard_L64as_v3,spot,NA,1.106952,USD,Azure Retail Prices API,2025-12-18T04:45:16.134082 +AZURE,southcentralus,Standard_L64s_v3,on_demand,NA,6.682,USD,Azure Retail Prices API,2025-12-18T04:45:16.134368 +AZURE,southcentralus,Standard_L64s_v3,reserved_1y,NA,4.276256,USD,Azure Retail Prices API,2025-12-18T04:45:18.149500 +AZURE,southcentralus,Standard_L64s_v3,reserved_3y,NA,2.806279,USD,Azure Retail Prices API,2025-12-18T04:45:18.149503 +AZURE,southcentralus,Standard_L64s_v3,spot,NA,1.260225,USD,Azure Retail Prices API,2025-12-18T04:45:16.134479 +AZURE,southcentralus,Standard_L80as_v3,on_demand,NA,7.488,USD,Azure Retail Prices API,2025-12-18T04:45:16.133079 +AZURE,southcentralus,Standard_L80as_v3,reserved_1y,NA,4.792352,USD,Azure Retail Prices API,2025-12-18T04:45:18.148257 +AZURE,southcentralus,Standard_L80as_v3,reserved_3y,NA,3.144977,USD,Azure Retail Prices API,2025-12-18T04:45:18.148262 +AZURE,southcentralus,Standard_L80as_v3,spot,NA,1.383782,USD,Azure Retail Prices API,2025-12-18T04:45:16.134159 +AZURE,southcentralus,Standard_L80s_v3,on_demand,NA,8.352,USD,Azure Retail Prices API,2025-12-18T04:45:16.134249 +AZURE,southcentralus,Standard_L80s_v3,reserved_1y,NA,5.34532,USD,Azure Retail Prices API,2025-12-18T04:45:18.149392 +AZURE,southcentralus,Standard_L80s_v3,reserved_3y,NA,3.507839,USD,Azure Retail Prices API,2025-12-18T04:45:18.149394 +AZURE,southcentralus,Standard_L80s_v3,spot,NA,1.575187,USD,Azure Retail Prices API,2025-12-18T04:45:16.133754 +AZURE,southcentralus,Standard_L8as_v3,on_demand,NA,0.749,USD,Azure Retail Prices API,2025-12-18T04:45:16.134663 +AZURE,southcentralus,Standard_L8as_v3,reserved_1y,NA,0.479224,USD,Azure Retail Prices API,2025-12-18T04:45:18.149810 +AZURE,southcentralus,Standard_L8as_v3,reserved_3y,NA,0.314498,USD,Azure Retail Prices API,2025-12-18T04:45:18.149813 +AZURE,southcentralus,Standard_L8as_v3,spot,NA,0.138415,USD,Azure Retail Prices API,2025-12-18T04:45:16.134686 +AZURE,southcentralus,Standard_L8s_v3,on_demand,NA,0.835,USD,Azure Retail Prices API,2025-12-18T04:45:16.133082 +AZURE,southcentralus,Standard_L8s_v3,reserved_1y,NA,0.534475,USD,Azure Retail Prices API,2025-12-18T04:45:18.148266 +AZURE,southcentralus,Standard_L8s_v3,reserved_3y,NA,0.350799,USD,Azure Retail Prices API,2025-12-18T04:45:18.148272 +AZURE,southcentralus,Standard_L8s_v3,spot,NA,0.157481,USD,Azure Retail Prices API,2025-12-18T04:45:16.134645 +AZURE,southcentralus,Standard_NC12s_v3,on_demand,NA,6.732,USD,Azure Retail Prices API,2025-12-18T04:45:16.134108 +AZURE,southcentralus,Standard_NC12s_v3,spot,NA,1.244074,USD,Azure Retail Prices API,2025-12-18T04:45:16.133408 +AZURE,southcentralus,Standard_NC16as_T4_v3,on_demand,NA,1.445,USD,Azure Retail Prices API,2025-12-18T04:45:16.134731 +AZURE,southcentralus,Standard_NC16as_T4_v3,reserved_1y,NA,0.924658,USD,Azure Retail Prices API,2025-12-18T04:45:18.149855 +AZURE,southcentralus,Standard_NC16as_T4_v3,reserved_3y,NA,0.549011,USD,Azure Retail Prices API,2025-12-18T04:45:18.149858 +AZURE,southcentralus,Standard_NC16as_T4_v3,spot,NA,0.41905,USD,Azure Retail Prices API,2025-12-18T04:45:16.133726 +AZURE,southcentralus,Standard_NC24ads_A100_v4,on_demand,NA,4.408,USD,Azure Retail Prices API,2025-12-18T04:45:16.133494 +AZURE,southcentralus,Standard_NC24ads_A100_v4,reserved_1y,NA,2.881279,USD,Azure Retail Prices API,2025-12-18T04:45:18.148637 +AZURE,southcentralus,Standard_NC24ads_A100_v4,reserved_3y,NA,1.635654,USD,Azure Retail Prices API,2025-12-18T04:45:18.148640 +AZURE,southcentralus,Standard_NC24ads_A100_v4,spot,NA,0.954332,USD,Azure Retail Prices API,2025-12-18T04:45:16.134308 +AZURE,southcentralus,Standard_NC24s_v3,on_demand,NA,13.464,USD,Azure Retail Prices API,2025-12-18T04:45:16.133548 +AZURE,southcentralus,Standard_NC24s_v3,spot,NA,2.488147,USD,Azure Retail Prices API,2025-12-18T04:45:16.133309 +AZURE,southcentralus,Standard_NC40ads_H100_v5,on_demand,NA,8.38,USD,Azure Retail Prices API,2025-12-18T04:45:16.133281 +AZURE,southcentralus,Standard_NC40ads_H100_v5,reserved_1y,NA,6.285046,USD,Azure Retail Prices API,2025-12-18T04:45:18.148458 +AZURE,southcentralus,Standard_NC40ads_H100_v5,reserved_3y,NA,4.609018,USD,Azure Retail Prices API,2025-12-18T04:45:18.148461 +AZURE,southcentralus,Standard_NC40ads_H100_v5,spot,NA,4.905652,USD,Azure Retail Prices API,2025-12-18T04:45:16.133113 +AZURE,southcentralus,Standard_NC48ads_A100_v4,on_demand,NA,8.815,USD,Azure Retail Prices API,2025-12-18T04:45:16.134750 +AZURE,southcentralus,Standard_NC48ads_A100_v4,reserved_1y,NA,5.762443,USD,Azure Retail Prices API,2025-12-18T04:45:18.149861 +AZURE,southcentralus,Standard_NC48ads_A100_v4,reserved_3y,NA,3.271309,USD,Azure Retail Prices API,2025-12-18T04:45:18.149864 +AZURE,southcentralus,Standard_NC48ads_A100_v4,spot,NA,1.908448,USD,Azure Retail Prices API,2025-12-18T04:45:16.134365 +AZURE,southcentralus,Standard_NC4as_T4_v3,on_demand,NA,0.631,USD,Azure Retail Prices API,2025-12-18T04:45:16.133307 +AZURE,southcentralus,Standard_NC4as_T4_v3,reserved_1y,NA,0.403995,USD,Azure Retail Prices API,2025-12-18T04:45:18.148492 +AZURE,southcentralus,Standard_NC4as_T4_v3,reserved_3y,NA,0.23984,USD,Azure Retail Prices API,2025-12-18T04:45:18.148495 +AZURE,southcentralus,Standard_NC4as_T4_v3,spot,NA,0.18299,USD,Azure Retail Prices API,2025-12-18T04:45:16.133661 +AZURE,southcentralus,Standard_NC64as_T4_v3,on_demand,NA,5.222,USD,Azure Retail Prices API,2025-12-18T04:45:16.133889 +AZURE,southcentralus,Standard_NC64as_T4_v3,reserved_1y,NA,3.342352,USD,Azure Retail Prices API,2025-12-18T04:45:18.149020 +AZURE,southcentralus,Standard_NC64as_T4_v3,reserved_3y,NA,1.984513,USD,Azure Retail Prices API,2025-12-18T04:45:18.149023 +AZURE,southcentralus,Standard_NC64as_T4_v3,spot,NA,1.51438,USD,Azure Retail Prices API,2025-12-18T04:45:16.133270 +AZURE,southcentralus,Standard_NC6s_v3,on_demand,NA,3.366,USD,Azure Retail Prices API,2025-12-18T04:45:16.134293 +AZURE,southcentralus,Standard_NC6s_v3,spot,NA,0.622037,USD,Azure Retail Prices API,2025-12-18T04:45:16.134311 +AZURE,southcentralus,Standard_NC8as_T4_v3,on_demand,NA,0.902,USD,Azure Retail Prices API,2025-12-18T04:45:16.133587 +AZURE,southcentralus,Standard_NC8as_T4_v3,reserved_1y,NA,0.577511,USD,Azure Retail Prices API,2025-12-18T04:45:18.148723 +AZURE,southcentralus,Standard_NC8as_T4_v3,reserved_3y,NA,0.342922,USD,Azure Retail Prices API,2025-12-18T04:45:18.148726 +AZURE,southcentralus,Standard_NC8as_T4_v3,spot,NA,0.26158,USD,Azure Retail Prices API,2025-12-18T04:45:16.134013 +AZURE,southcentralus,Standard_NC96ads_A100_v4,on_demand,NA,17.63,USD,Azure Retail Prices API,2025-12-18T04:45:16.133780 +AZURE,southcentralus,Standard_NC96ads_A100_v4,reserved_1y,NA,11.525,USD,Azure Retail Prices API,2025-12-18T04:45:18.148878 +AZURE,southcentralus,Standard_NC96ads_A100_v4,reserved_3y,NA,6.542656,USD,Azure Retail Prices API,2025-12-18T04:45:18.148881 +AZURE,southcentralus,Standard_NC96ads_A100_v4,spot,NA,3.816895,USD,Azure Retail Prices API,2025-12-18T04:45:16.133221 +AZURE,southcentralus,Standard_ND96asr_v4,on_demand,NA,32.63,USD,Azure Retail Prices API,2025-12-18T04:45:16.133852 +AZURE,southcentralus,Standard_ND96asr_v4,reserved_1y,NA,22.590068,USD,Azure Retail Prices API,2025-12-18T04:45:18.148981 +AZURE,southcentralus,Standard_ND96asr_v4,reserved_3y,NA,13.052169,USD,Azure Retail Prices API,2025-12-18T04:45:18.148987 +AZURE,southcentralus,Standard_ND96asr_v4,spot,NA,7.1786,USD,Azure Retail Prices API,2025-12-18T04:45:16.133894 +AZURE,southcentralus,Standard_ND96isr_H100_v5,on_demand,NA,117.968,USD,Azure Retail Prices API,2025-12-18T04:45:16.134476 +AZURE,southcentralus,Standard_ND96isr_H100_v5,reserved_1y,NA,75.499543,USD,Azure Retail Prices API,2025-12-18T04:45:18.149622 +AZURE,southcentralus,Standard_ND96isr_H100_v5,reserved_3y,NA,51.787938,USD,Azure Retail Prices API,2025-12-18T04:45:18.149625 +AZURE,southcentralus,Standard_ND96isr_H100_v5,spot,NA,21.800486,USD,Azure Retail Prices API,2025-12-18T04:45:16.133703 +AZURE,southcentralus,Standard_NV36adms_A10_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:45:16.133974 +AZURE,southcentralus,Standard_NV36adms_A10_v5,reserved_1y,NA,3.471347,USD,Azure Retail Prices API,2025-12-18T04:45:18.149109 +AZURE,southcentralus,Standard_NV36adms_A10_v5,reserved_3y,NA,2.386568,USD,Azure Retail Prices API,2025-12-18T04:45:18.149112 +AZURE,southcentralus,Standard_NV36adms_A10_v5,spot,NA,1.002355,USD,Azure Retail Prices API,2025-12-18T04:45:16.133200 +AZURE,southcentralus,Standard_NV36ads_A10_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:16.134299 +AZURE,southcentralus,Standard_NV36ads_A10_v5,reserved_1y,NA,2.457648,USD,Azure Retail Prices API,2025-12-18T04:45:18.149431 +AZURE,southcentralus,Standard_NV36ads_A10_v5,reserved_3y,NA,1.689612,USD,Azure Retail Prices API,2025-12-18T04:45:18.149434 +AZURE,southcentralus,Standard_NV36ads_A10_v5,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:45:16.134305 +AZURE,southcentralus,Standard_NV72ads_A10_v5,on_demand,NA,7.824,USD,Azure Retail Prices API,2025-12-18T04:45:16.133964 +AZURE,southcentralus,Standard_NV72ads_A10_v5,reserved_1y,NA,5.007306,USD,Azure Retail Prices API,2025-12-18T04:45:18.149091 +AZURE,southcentralus,Standard_NV72ads_A10_v5,reserved_3y,NA,3.442542,USD,Azure Retail Prices API,2025-12-18T04:45:18.149094 +AZURE,southcentralus,Standard_NV72ads_A10_v5,spot,NA,1.445875,USD,Azure Retail Prices API,2025-12-18T04:45:16.134183 +AZURE,southeastasia,Standard_D128ds_v6,on_demand,NA,9.967,USD,Azure Retail Prices API,2025-12-18T04:46:18.798356 +AZURE,southeastasia,Standard_D128ds_v6,reserved_1y,NA,6.179795,USD,Azure Retail Prices API,2025-12-18T04:46:20.488265 +AZURE,southeastasia,Standard_D128ds_v6,reserved_3y,NA,3.887253,USD,Azure Retail Prices API,2025-12-18T04:46:20.488270 +AZURE,southeastasia,Standard_D128ds_v6,spot,NA,1.841902,USD,Azure Retail Prices API,2025-12-18T04:46:18.799437 +AZURE,southeastasia,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488506 +AZURE,southeastasia,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488514 +AZURE,southeastasia,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488519 +AZURE,southeastasia,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488510 +AZURE,southeastasia,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489287 +AZURE,southeastasia,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489295 +AZURE,southeastasia,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489299 +AZURE,southeastasia,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489291 +AZURE,southeastasia,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490384 +AZURE,southeastasia,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490393 +AZURE,southeastasia,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490398 +AZURE,southeastasia,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490389 +AZURE,southeastasia,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491131 +AZURE,southeastasia,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491145 +AZURE,southeastasia,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491151 +AZURE,southeastasia,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491138 +AZURE,southeastasia,Standard_D16_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:18.799022 +AZURE,southeastasia,Standard_D16_v3,reserved_1y,NA,0.580137,USD,Azure Retail Prices API,2025-12-18T04:46:20.489465 +AZURE,southeastasia,Standard_D16_v3,reserved_3y,NA,0.368493,USD,Azure Retail Prices API,2025-12-18T04:46:20.489471 +AZURE,southeastasia,Standard_D16_v3,spot,NA,0.1848,USD,Azure Retail Prices API,2025-12-18T04:46:18.799206 +AZURE,southeastasia,Standard_D16a_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:18.798103 +AZURE,southeastasia,Standard_D16a_v4,reserved_1y,NA,0.564498,USD,Azure Retail Prices API,2025-12-18T04:46:20.487982 +AZURE,southeastasia,Standard_D16a_v4,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:20.487985 +AZURE,southeastasia,Standard_D16a_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:18.798134 +AZURE,southeastasia,Standard_D16ads_v5,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:46:18.797897 +AZURE,southeastasia,Standard_D16ads_v5,reserved_1y,NA,0.608904,USD,Azure Retail Prices API,2025-12-18T04:46:20.487730 +AZURE,southeastasia,Standard_D16ads_v5,reserved_3y,NA,0.392161,USD,Azure Retail Prices API,2025-12-18T04:46:20.487733 +AZURE,southeastasia,Standard_D16ads_v5,spot,NA,0.190714,USD,Azure Retail Prices API,2025-12-18T04:46:18.798869 +AZURE,southeastasia,Standard_D16ads_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:46:18.798226 +AZURE,southeastasia,Standard_D16ads_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:46:20.488150 +AZURE,southeastasia,Standard_D16ads_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:46:20.488155 +AZURE,southeastasia,Standard_D16ads_v6,spot,NA,0.211781,USD,Azure Retail Prices API,2025-12-18T04:46:18.799431 +AZURE,southeastasia,Standard_D16as_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:18.798375 +AZURE,southeastasia,Standard_D16as_v4,reserved_1y,NA,0.564498,USD,Azure Retail Prices API,2025-12-18T04:46:20.488285 +AZURE,southeastasia,Standard_D16as_v4,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:20.488290 +AZURE,southeastasia,Standard_D16as_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:18.798508 +AZURE,southeastasia,Standard_D16as_v5,on_demand,NA,0.864,USD,Azure Retail Prices API,2025-12-18T04:46:18.798178 +AZURE,southeastasia,Standard_D16as_v5,reserved_1y,NA,0.509703,USD,Azure Retail Prices API,2025-12-18T04:46:20.488051 +AZURE,southeastasia,Standard_D16as_v5,reserved_3y,NA,0.328311,USD,Azure Retail Prices API,2025-12-18T04:46:20.488056 +AZURE,southeastasia,Standard_D16as_v5,spot,NA,0.159667,USD,Azure Retail Prices API,2025-12-18T04:46:18.799047 +AZURE,southeastasia,Standard_D16d_v4,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:46:18.799299 +AZURE,southeastasia,Standard_D16d_v4,reserved_1y,NA,0.663242,USD,Azure Retail Prices API,2025-12-18T04:46:20.489903 +AZURE,southeastasia,Standard_D16d_v4,reserved_3y,NA,0.424125,USD,Azure Retail Prices API,2025-12-18T04:46:20.489908 +AZURE,southeastasia,Standard_D16d_v4,spot,NA,0.209131,USD,Azure Retail Prices API,2025-12-18T04:46:18.797716 +AZURE,southeastasia,Standard_D16ds_v4,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:46:18.797985 +AZURE,southeastasia,Standard_D16ds_v4,reserved_1y,NA,0.663242,USD,Azure Retail Prices API,2025-12-18T04:46:20.487801 +AZURE,southeastasia,Standard_D16ds_v4,reserved_3y,NA,0.424125,USD,Azure Retail Prices API,2025-12-18T04:46:20.487804 +AZURE,southeastasia,Standard_D16ds_v4,spot,NA,0.209131,USD,Azure Retail Prices API,2025-12-18T04:46:18.798461 +AZURE,southeastasia,Standard_D16ds_v5,on_demand,NA,1.128,USD,Azure Retail Prices API,2025-12-18T04:46:18.797852 +AZURE,southeastasia,Standard_D16ds_v5,reserved_1y,NA,0.665525,USD,Azure Retail Prices API,2025-12-18T04:46:20.487671 +AZURE,southeastasia,Standard_D16ds_v5,reserved_3y,NA,0.428653,USD,Azure Retail Prices API,2025-12-18T04:46:20.487674 +AZURE,southeastasia,Standard_D16ds_v5,spot,NA,0.209131,USD,Azure Retail Prices API,2025-12-18T04:46:18.798160 +AZURE,southeastasia,Standard_D16ds_v6,on_demand,NA,1.246,USD,Azure Retail Prices API,2025-12-18T04:46:18.798040 +AZURE,southeastasia,Standard_D16ds_v6,reserved_1y,NA,0.772489,USD,Azure Retail Prices API,2025-12-18T04:46:20.487904 +AZURE,southeastasia,Standard_D16ds_v6,reserved_3y,NA,0.485921,USD,Azure Retail Prices API,2025-12-18T04:46:20.487907 +AZURE,southeastasia,Standard_D16ds_v6,spot,NA,0.230261,USD,Azure Retail Prices API,2025-12-18T04:46:18.798476 +AZURE,southeastasia,Standard_D16pds_v6,on_demand,NA,0.915,USD,Azure Retail Prices API,2025-12-18T04:46:18.798866 +AZURE,southeastasia,Standard_D16pds_v6,reserved_1y,NA,0.539954,USD,Azure Retail Prices API,2025-12-18T04:46:20.489137 +AZURE,southeastasia,Standard_D16pds_v6,reserved_3y,NA,0.347793,USD,Azure Retail Prices API,2025-12-18T04:46:20.489142 +AZURE,southeastasia,Standard_D16pds_v6,spot,NA,0.169092,USD,Azure Retail Prices API,2025-12-18T04:46:18.797694 +AZURE,southeastasia,Standard_D16ps_v6,on_demand,NA,0.699,USD,Azure Retail Prices API,2025-12-18T04:46:18.799536 +AZURE,southeastasia,Standard_D16ps_v6,reserved_1y,NA,0.412557,USD,Azure Retail Prices API,2025-12-18T04:46:20.490219 +AZURE,southeastasia,Standard_D16ps_v6,reserved_3y,NA,0.265677,USD,Azure Retail Prices API,2025-12-18T04:46:20.490224 +AZURE,southeastasia,Standard_D16ps_v6,spot,NA,0.129175,USD,Azure Retail Prices API,2025-12-18T04:46:18.798913 +AZURE,southeastasia,Standard_D16s_v3,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:46:18.798990 +AZURE,southeastasia,Standard_D16s_v3,reserved_1y,NA,0.580137,USD,Azure Retail Prices API,2025-12-18T04:46:20.489339 +AZURE,southeastasia,Standard_D16s_v3,reserved_3y,NA,0.368493,USD,Azure Retail Prices API,2025-12-18T04:46:20.489344 +AZURE,southeastasia,Standard_D16s_v3,spot,NA,0.1848,USD,Azure Retail Prices API,2025-12-18T04:46:18.798305 +AZURE,southeastasia,Standard_D16s_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:18.798251 +AZURE,southeastasia,Standard_D16s_v4,reserved_1y,NA,0.564498,USD,Azure Retail Prices API,2025-12-18T04:46:20.488192 +AZURE,southeastasia,Standard_D16s_v4,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:20.488197 +AZURE,southeastasia,Standard_D16s_v4,spot,NA,0.177984,USD,Azure Retail Prices API,2025-12-18T04:46:18.799194 +AZURE,southeastasia,Standard_D16s_v5,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:18.799215 +AZURE,southeastasia,Standard_D16s_v5,reserved_1y,NA,0.547146,USD,Azure Retail Prices API,2025-12-18T04:46:20.489780 +AZURE,southeastasia,Standard_D16s_v5,reserved_3y,NA,0.355213,USD,Azure Retail Prices API,2025-12-18T04:46:20.489785 +AZURE,southeastasia,Standard_D16s_v5,spot,NA,0.177984,USD,Azure Retail Prices API,2025-12-18T04:46:18.798733 +AZURE,southeastasia,Standard_D2ads_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:18.799502 +AZURE,southeastasia,Standard_D2ads_v6,reserved_1y,NA,0.084475,USD,Azure Retail Prices API,2025-12-18T04:46:20.490179 +AZURE,southeastasia,Standard_D2ads_v6,reserved_3y,NA,0.054414,USD,Azure Retail Prices API,2025-12-18T04:46:20.490185 +AZURE,southeastasia,Standard_D2ads_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:46:18.798444 +AZURE,southeastasia,Standard_D2ds_v6,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:46:18.799488 +AZURE,southeastasia,Standard_D2ds_v6,reserved_1y,NA,0.096575,USD,Azure Retail Prices API,2025-12-18T04:46:20.490139 +AZURE,southeastasia,Standard_D2ds_v6,reserved_3y,NA,0.060731,USD,Azure Retail Prices API,2025-12-18T04:46:20.490144 +AZURE,southeastasia,Standard_D2ds_v6,spot,NA,0.028829,USD,Azure Retail Prices API,2025-12-18T04:46:18.797970 +AZURE,southeastasia,Standard_D32_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:18.799318 +AZURE,southeastasia,Standard_D32_v3,reserved_1y,NA,1.160274,USD,Azure Retail Prices API,2025-12-18T04:46:20.489921 +AZURE,southeastasia,Standard_D32_v3,reserved_3y,NA,0.736986,USD,Azure Retail Prices API,2025-12-18T04:46:20.489926 +AZURE,southeastasia,Standard_D32_v3,spot,NA,0.3696,USD,Azure Retail Prices API,2025-12-18T04:46:18.798750 +AZURE,southeastasia,Standard_D32a_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:18.798937 +AZURE,southeastasia,Standard_D32a_v4,reserved_1y,NA,1.128995,USD,Azure Retail Prices API,2025-12-18T04:46:20.489215 +AZURE,southeastasia,Standard_D32a_v4,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:20.489220 +AZURE,southeastasia,Standard_D32a_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:18.798261 +AZURE,southeastasia,Standard_D32ads_v5,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:46:18.797867 +AZURE,southeastasia,Standard_D32ads_v5,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:46:20.487684 +AZURE,southeastasia,Standard_D32ads_v5,reserved_3y,NA,0.784323,USD,Azure Retail Prices API,2025-12-18T04:46:20.487688 +AZURE,southeastasia,Standard_D32ads_v5,spot,NA,0.381427,USD,Azure Retail Prices API,2025-12-18T04:46:18.799602 +AZURE,southeastasia,Standard_D32ads_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:18.799651 +AZURE,southeastasia,Standard_D32ads_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:46:20.490398 +AZURE,southeastasia,Standard_D32ads_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:46:20.490404 +AZURE,southeastasia,Standard_D32ads_v6,spot,NA,0.423377,USD,Azure Retail Prices API,2025-12-18T04:46:18.799203 +AZURE,southeastasia,Standard_D32as_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:18.799499 +AZURE,southeastasia,Standard_D32as_v4,reserved_1y,NA,1.128995,USD,Azure Retail Prices API,2025-12-18T04:46:20.490169 +AZURE,southeastasia,Standard_D32as_v4,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:20.490175 +AZURE,southeastasia,Standard_D32as_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:18.797678 +AZURE,southeastasia,Standard_D32as_v5,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:46:18.799362 +AZURE,southeastasia,Standard_D32as_v5,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:46:20.489993 +AZURE,southeastasia,Standard_D32as_v5,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:46:20.489998 +AZURE,southeastasia,Standard_D32as_v5,spot,NA,0.319334,USD,Azure Retail Prices API,2025-12-18T04:46:18.799507 +AZURE,southeastasia,Standard_D32d_v4,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:46:18.799030 +AZURE,southeastasia,Standard_D32d_v4,reserved_1y,NA,1.326484,USD,Azure Retail Prices API,2025-12-18T04:46:20.489487 +AZURE,southeastasia,Standard_D32d_v4,reserved_3y,NA,0.84825,USD,Azure Retail Prices API,2025-12-18T04:46:20.489492 +AZURE,southeastasia,Standard_D32d_v4,spot,NA,0.418262,USD,Azure Retail Prices API,2025-12-18T04:46:18.797946 +AZURE,southeastasia,Standard_D32ds_v4,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:46:18.798660 +AZURE,southeastasia,Standard_D32ds_v4,reserved_1y,NA,1.326484,USD,Azure Retail Prices API,2025-12-18T04:46:20.488759 +AZURE,southeastasia,Standard_D32ds_v4,reserved_3y,NA,0.84825,USD,Azure Retail Prices API,2025-12-18T04:46:20.488764 +AZURE,southeastasia,Standard_D32ds_v4,spot,NA,0.418262,USD,Azure Retail Prices API,2025-12-18T04:46:18.799309 +AZURE,southeastasia,Standard_D32ds_v5,on_demand,NA,2.256,USD,Azure Retail Prices API,2025-12-18T04:46:18.798770 +AZURE,southeastasia,Standard_D32ds_v5,reserved_1y,NA,1.33105,USD,Azure Retail Prices API,2025-12-18T04:46:20.488964 +AZURE,southeastasia,Standard_D32ds_v5,reserved_3y,NA,0.857268,USD,Azure Retail Prices API,2025-12-18T04:46:20.488969 +AZURE,southeastasia,Standard_D32ds_v5,spot,NA,0.418262,USD,Azure Retail Prices API,2025-12-18T04:46:18.797939 +AZURE,southeastasia,Standard_D32ds_v6,on_demand,NA,2.492,USD,Azure Retail Prices API,2025-12-18T04:46:18.798939 +AZURE,southeastasia,Standard_D32ds_v6,reserved_1y,NA,1.544977,USD,Azure Retail Prices API,2025-12-18T04:46:20.489225 +AZURE,southeastasia,Standard_D32ds_v6,reserved_3y,NA,0.971804,USD,Azure Retail Prices API,2025-12-18T04:46:20.489230 +AZURE,southeastasia,Standard_D32ds_v6,spot,NA,0.460522,USD,Azure Retail Prices API,2025-12-18T04:46:18.799596 +AZURE,southeastasia,Standard_D32pds_v6,on_demand,NA,1.83,USD,Azure Retail Prices API,2025-12-18T04:46:18.799575 +AZURE,southeastasia,Standard_D32pds_v6,reserved_1y,NA,1.079909,USD,Azure Retail Prices API,2025-12-18T04:46:20.490310 +AZURE,southeastasia,Standard_D32pds_v6,reserved_3y,NA,0.695548,USD,Azure Retail Prices API,2025-12-18T04:46:20.490315 +AZURE,southeastasia,Standard_D32pds_v6,spot,NA,0.338184,USD,Azure Retail Prices API,2025-12-18T04:46:18.798081 +AZURE,southeastasia,Standard_D32ps_v6,on_demand,NA,1.398,USD,Azure Retail Prices API,2025-12-18T04:46:18.798654 +AZURE,southeastasia,Standard_D32ps_v6,reserved_1y,NA,0.825,USD,Azure Retail Prices API,2025-12-18T04:46:20.488749 +AZURE,southeastasia,Standard_D32ps_v6,reserved_3y,NA,0.531393,USD,Azure Retail Prices API,2025-12-18T04:46:20.488754 +AZURE,southeastasia,Standard_D32ps_v6,spot,NA,0.25835,USD,Azure Retail Prices API,2025-12-18T04:46:18.798369 +AZURE,southeastasia,Standard_D32s_v3,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:46:18.798423 +AZURE,southeastasia,Standard_D32s_v3,reserved_1y,NA,1.160274,USD,Azure Retail Prices API,2025-12-18T04:46:20.488425 +AZURE,southeastasia,Standard_D32s_v3,reserved_3y,NA,0.736986,USD,Azure Retail Prices API,2025-12-18T04:46:20.488430 +AZURE,southeastasia,Standard_D32s_v3,spot,NA,0.3696,USD,Azure Retail Prices API,2025-12-18T04:46:18.798432 +AZURE,southeastasia,Standard_D32s_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:18.798845 +AZURE,southeastasia,Standard_D32s_v4,reserved_1y,NA,1.128995,USD,Azure Retail Prices API,2025-12-18T04:46:20.489085 +AZURE,southeastasia,Standard_D32s_v4,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:20.489090 +AZURE,southeastasia,Standard_D32s_v4,spot,NA,0.355968,USD,Azure Retail Prices API,2025-12-18T04:46:18.798109 +AZURE,southeastasia,Standard_D32s_v5,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:18.798467 +AZURE,southeastasia,Standard_D32s_v5,reserved_1y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:20.488455 +AZURE,southeastasia,Standard_D32s_v5,reserved_3y,NA,0.710388,USD,Azure Retail Prices API,2025-12-18T04:46:20.488461 +AZURE,southeastasia,Standard_D32s_v5,spot,NA,0.355968,USD,Azure Retail Prices API,2025-12-18T04:46:18.799621 +AZURE,southeastasia,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485573 +AZURE,southeastasia,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485586 +AZURE,southeastasia,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485592 +AZURE,southeastasia,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485580 +AZURE,southeastasia,Standard_D48a_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:18.799200 +AZURE,southeastasia,Standard_D48a_v4,reserved_1y,NA,1.693493,USD,Azure Retail Prices API,2025-12-18T04:46:20.489759 +AZURE,southeastasia,Standard_D48a_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:20.489764 +AZURE,southeastasia,Standard_D48a_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:18.797988 +AZURE,southeastasia,Standard_D48ads_v5,on_demand,NA,3.096,USD,Azure Retail Prices API,2025-12-18T04:46:18.797876 +AZURE,southeastasia,Standard_D48ads_v5,reserved_1y,NA,1.826598,USD,Azure Retail Prices API,2025-12-18T04:46:20.487697 +AZURE,southeastasia,Standard_D48ads_v5,reserved_3y,NA,1.176484,USD,Azure Retail Prices API,2025-12-18T04:46:20.487700 +AZURE,southeastasia,Standard_D48ads_v5,spot,NA,0.572141,USD,Azure Retail Prices API,2025-12-18T04:46:18.797755 +AZURE,southeastasia,Standard_D48ads_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:46:18.798014 +AZURE,southeastasia,Standard_D48ads_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:46:20.487834 +AZURE,southeastasia,Standard_D48ads_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:46:20.487848 +AZURE,southeastasia,Standard_D48ads_v6,spot,NA,0.635158,USD,Azure Retail Prices API,2025-12-18T04:46:18.799539 +AZURE,southeastasia,Standard_D48as_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:18.799577 +AZURE,southeastasia,Standard_D48as_v4,reserved_1y,NA,1.693493,USD,Azure Retail Prices API,2025-12-18T04:46:20.490319 +AZURE,southeastasia,Standard_D48as_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:20.490324 +AZURE,southeastasia,Standard_D48as_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:18.799455 +AZURE,southeastasia,Standard_D48as_v5,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:46:18.798945 +AZURE,southeastasia,Standard_D48as_v5,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:46:20.489244 +AZURE,southeastasia,Standard_D48as_v5,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:46:20.489248 +AZURE,southeastasia,Standard_D48as_v5,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:46:18.799373 +AZURE,southeastasia,Standard_D48d_v4,on_demand,NA,3.384,USD,Azure Retail Prices API,2025-12-18T04:46:18.798155 +AZURE,southeastasia,Standard_D48d_v4,reserved_1y,NA,1.98984,USD,Azure Retail Prices API,2025-12-18T04:46:20.488041 +AZURE,southeastasia,Standard_D48d_v4,reserved_3y,NA,1.272374,USD,Azure Retail Prices API,2025-12-18T04:46:20.488046 +AZURE,southeastasia,Standard_D48d_v4,spot,NA,0.627394,USD,Azure Retail Prices API,2025-12-18T04:46:18.798505 +AZURE,southeastasia,Standard_D48ds_v4,on_demand,NA,3.384,USD,Azure Retail Prices API,2025-12-18T04:46:18.797972 +AZURE,southeastasia,Standard_D48ds_v4,reserved_1y,NA,1.98984,USD,Azure Retail Prices API,2025-12-18T04:46:20.487782 +AZURE,southeastasia,Standard_D48ds_v4,reserved_3y,NA,1.272374,USD,Azure Retail Prices API,2025-12-18T04:46:20.487785 +AZURE,southeastasia,Standard_D48ds_v4,spot,NA,0.627394,USD,Azure Retail Prices API,2025-12-18T04:46:18.799351 +AZURE,southeastasia,Standard_D48ds_v5,on_demand,NA,3.384,USD,Azure Retail Prices API,2025-12-18T04:46:18.798628 +AZURE,southeastasia,Standard_D48ds_v5,reserved_1y,NA,1.996575,USD,Azure Retail Prices API,2025-12-18T04:46:20.488690 +AZURE,southeastasia,Standard_D48ds_v5,reserved_3y,NA,1.285921,USD,Azure Retail Prices API,2025-12-18T04:46:20.488695 +AZURE,southeastasia,Standard_D48ds_v5,spot,NA,0.627394,USD,Azure Retail Prices API,2025-12-18T04:46:18.799469 +AZURE,southeastasia,Standard_D48ds_v6,on_demand,NA,3.738,USD,Azure Retail Prices API,2025-12-18T04:46:18.798349 +AZURE,southeastasia,Standard_D48ds_v6,reserved_1y,NA,2.317466,USD,Azure Retail Prices API,2025-12-18T04:46:20.488254 +AZURE,southeastasia,Standard_D48ds_v6,reserved_3y,NA,1.457725,USD,Azure Retail Prices API,2025-12-18T04:46:20.488259 +AZURE,southeastasia,Standard_D48ds_v6,spot,NA,0.690782,USD,Azure Retail Prices API,2025-12-18T04:46:18.797839 +AZURE,southeastasia,Standard_D48pds_v6,on_demand,NA,2.746,USD,Azure Retail Prices API,2025-12-18T04:46:18.798836 +AZURE,southeastasia,Standard_D48pds_v6,reserved_1y,NA,1.619863,USD,Azure Retail Prices API,2025-12-18T04:46:20.489064 +AZURE,southeastasia,Standard_D48pds_v6,reserved_3y,NA,1.043341,USD,Azure Retail Prices API,2025-12-18T04:46:20.489069 +AZURE,southeastasia,Standard_D48pds_v6,spot,NA,0.507461,USD,Azure Retail Prices API,2025-12-18T04:46:18.799241 +AZURE,southeastasia,Standard_D48ps_v6,on_demand,NA,2.098,USD,Azure Retail Prices API,2025-12-18T04:46:18.799180 +AZURE,southeastasia,Standard_D48ps_v6,reserved_1y,NA,1.237557,USD,Azure Retail Prices API,2025-12-18T04:46:20.489729 +AZURE,southeastasia,Standard_D48ps_v6,reserved_3y,NA,0.79707,USD,Azure Retail Prices API,2025-12-18T04:46:20.489734 +AZURE,southeastasia,Standard_D48ps_v6,spot,NA,0.38771,USD,Azure Retail Prices API,2025-12-18T04:46:18.799408 +AZURE,southeastasia,Standard_D48s_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:18.797975 +AZURE,southeastasia,Standard_D48s_v4,reserved_1y,NA,1.693493,USD,Azure Retail Prices API,2025-12-18T04:46:20.487788 +AZURE,southeastasia,Standard_D48s_v4,reserved_3y,NA,1.082877,USD,Azure Retail Prices API,2025-12-18T04:46:20.487791 +AZURE,southeastasia,Standard_D48s_v4,spot,NA,0.533952,USD,Azure Retail Prices API,2025-12-18T04:46:18.798605 +AZURE,southeastasia,Standard_D48s_v5,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:18.799545 +AZURE,southeastasia,Standard_D48s_v5,reserved_1y,NA,1.641553,USD,Azure Retail Prices API,2025-12-18T04:46:20.490229 +AZURE,southeastasia,Standard_D48s_v5,reserved_3y,NA,1.065601,USD,Azure Retail Prices API,2025-12-18T04:46:20.490235 +AZURE,southeastasia,Standard_D48s_v5,spot,NA,0.533952,USD,Azure Retail Prices API,2025-12-18T04:46:18.798715 +AZURE,southeastasia,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486375 +AZURE,southeastasia,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486383 +AZURE,southeastasia,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486387 +AZURE,southeastasia,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486379 +AZURE,southeastasia,Standard_D4a_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:18.797731 +AZURE,southeastasia,Standard_D4a_v4,reserved_1y,NA,0.141096,USD,Azure Retail Prices API,2025-12-18T04:46:20.487551 +AZURE,southeastasia,Standard_D4a_v4,reserved_3y,NA,0.090259,USD,Azure Retail Prices API,2025-12-18T04:46:20.487554 +AZURE,southeastasia,Standard_D4a_v4,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:18.798973 +AZURE,southeastasia,Standard_D4ads_v5,on_demand,NA,0.442,USD,Azure Retail Prices API,2025-12-18T04:46:18.798447 +AZURE,southeastasia,Standard_D4ads_v5,reserved_1y,NA,0.152169,USD,Azure Retail Prices API,2025-12-18T04:46:20.488577 +AZURE,southeastasia,Standard_D4ads_v5,reserved_3y,NA,0.098021,USD,Azure Retail Prices API,2025-12-18T04:46:20.488583 +AZURE,southeastasia,Standard_D4ads_v5,spot,NA,0.047678,USD,Azure Retail Prices API,2025-12-18T04:46:18.798694 +AZURE,southeastasia,Standard_D4ads_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:18.799547 +AZURE,southeastasia,Standard_D4ads_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:46:20.490240 +AZURE,southeastasia,Standard_D4ads_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:46:20.490245 +AZURE,southeastasia,Standard_D4ads_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:46:18.798548 +AZURE,southeastasia,Standard_D4as_v5,on_demand,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:46:18.798120 +AZURE,southeastasia,Standard_D4as_v5,reserved_1y,NA,0.127397,USD,Azure Retail Prices API,2025-12-18T04:46:20.489696 +AZURE,southeastasia,Standard_D4as_v5,reserved_3y,NA,0.082078,USD,Azure Retail Prices API,2025-12-18T04:46:20.489702 +AZURE,southeastasia,Standard_D4as_v5,spot,NA,0.039917,USD,Azure Retail Prices API,2025-12-18T04:46:18.798396 +AZURE,southeastasia,Standard_D4d_v4,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:46:18.799279 +AZURE,southeastasia,Standard_D4d_v4,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:46:20.489861 +AZURE,southeastasia,Standard_D4d_v4,reserved_3y,NA,0.10605,USD,Azure Retail Prices API,2025-12-18T04:46:20.489867 +AZURE,southeastasia,Standard_D4d_v4,spot,NA,0.052283,USD,Azure Retail Prices API,2025-12-18T04:46:18.798114 +AZURE,southeastasia,Standard_D4ds_v4,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:46:18.798514 +AZURE,southeastasia,Standard_D4ds_v4,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:46:20.488526 +AZURE,southeastasia,Standard_D4ds_v4,reserved_3y,NA,0.10605,USD,Azure Retail Prices API,2025-12-18T04:46:20.488532 +AZURE,southeastasia,Standard_D4ds_v4,spot,NA,0.052283,USD,Azure Retail Prices API,2025-12-18T04:46:18.798608 +AZURE,southeastasia,Standard_D4ds_v5,on_demand,NA,0.282,USD,Azure Retail Prices API,2025-12-18T04:46:18.799261 +AZURE,southeastasia,Standard_D4ds_v5,reserved_1y,NA,0.166324,USD,Azure Retail Prices API,2025-12-18T04:46:20.489831 +AZURE,southeastasia,Standard_D4ds_v5,reserved_3y,NA,0.107154,USD,Azure Retail Prices API,2025-12-18T04:46:20.489836 +AZURE,southeastasia,Standard_D4ds_v5,spot,NA,0.052283,USD,Azure Retail Prices API,2025-12-18T04:46:18.799504 +AZURE,southeastasia,Standard_D4ds_v6,on_demand,NA,0.311,USD,Azure Retail Prices API,2025-12-18T04:46:18.797737 +AZURE,southeastasia,Standard_D4ds_v6,reserved_1y,NA,0.193151,USD,Azure Retail Prices API,2025-12-18T04:46:20.487558 +AZURE,southeastasia,Standard_D4ds_v6,reserved_3y,NA,0.121461,USD,Azure Retail Prices API,2025-12-18T04:46:20.487561 +AZURE,southeastasia,Standard_D4ds_v6,spot,NA,0.057473,USD,Azure Retail Prices API,2025-12-18T04:46:18.798928 +AZURE,southeastasia,Standard_D4pds_v6,on_demand,NA,0.229,USD,Azure Retail Prices API,2025-12-18T04:46:18.797955 +AZURE,southeastasia,Standard_D4pds_v6,reserved_1y,NA,0.135046,USD,Azure Retail Prices API,2025-12-18T04:46:20.487775 +AZURE,southeastasia,Standard_D4pds_v6,reserved_3y,NA,0.086948,USD,Azure Retail Prices API,2025-12-18T04:46:20.487778 +AZURE,southeastasia,Standard_D4pds_v6,spot,NA,0.042319,USD,Azure Retail Prices API,2025-12-18T04:46:18.798399 +AZURE,southeastasia,Standard_D4ps_v6,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:46:18.797845 +AZURE,southeastasia,Standard_D4ps_v6,reserved_1y,NA,0.103082,USD,Azure Retail Prices API,2025-12-18T04:46:20.487664 +AZURE,southeastasia,Standard_D4ps_v6,reserved_3y,NA,0.066438,USD,Azure Retail Prices API,2025-12-18T04:46:20.487668 +AZURE,southeastasia,Standard_D4ps_v6,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:46:18.798759 +AZURE,southeastasia,Standard_D4s_v3,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:46:18.797740 +AZURE,southeastasia,Standard_D4s_v3,reserved_1y,NA,0.145091,USD,Azure Retail Prices API,2025-12-18T04:46:20.487564 +AZURE,southeastasia,Standard_D4s_v3,reserved_3y,NA,0.092123,USD,Azure Retail Prices API,2025-12-18T04:46:20.487568 +AZURE,southeastasia,Standard_D4s_v3,spot,NA,0.0462,USD,Azure Retail Prices API,2025-12-18T04:46:18.797961 +AZURE,southeastasia,Standard_D4s_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:18.798639 +AZURE,southeastasia,Standard_D4s_v4,reserved_1y,NA,0.141096,USD,Azure Retail Prices API,2025-12-18T04:46:20.488719 +AZURE,southeastasia,Standard_D4s_v4,reserved_3y,NA,0.090259,USD,Azure Retail Prices API,2025-12-18T04:46:20.488724 +AZURE,southeastasia,Standard_D4s_v4,spot,NA,0.044496,USD,Azure Retail Prices API,2025-12-18T04:46:18.799336 +AZURE,southeastasia,Standard_D4s_v5,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:18.799558 +AZURE,southeastasia,Standard_D4s_v5,reserved_1y,NA,0.136758,USD,Azure Retail Prices API,2025-12-18T04:46:20.490260 +AZURE,southeastasia,Standard_D4s_v5,reserved_3y,NA,0.088813,USD,Azure Retail Prices API,2025-12-18T04:46:20.490265 +AZURE,southeastasia,Standard_D4s_v5,spot,NA,0.044496,USD,Azure Retail Prices API,2025-12-18T04:46:18.799367 +AZURE,southeastasia,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487688 +AZURE,southeastasia,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487702 +AZURE,southeastasia,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487710 +AZURE,southeastasia,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487695 +AZURE,southeastasia,Standard_D64_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:18.798922 +AZURE,southeastasia,Standard_D64_v3,reserved_1y,NA,2.320548,USD,Azure Retail Prices API,2025-12-18T04:46:20.489205 +AZURE,southeastasia,Standard_D64_v3,reserved_3y,NA,1.473973,USD,Azure Retail Prices API,2025-12-18T04:46:20.489210 +AZURE,southeastasia,Standard_D64_v3,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:46:18.798150 +AZURE,southeastasia,Standard_D64a_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:18.799010 +AZURE,southeastasia,Standard_D64a_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:46:20.489433 +AZURE,southeastasia,Standard_D64a_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:20.489438 +AZURE,southeastasia,Standard_D64a_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:18.798069 +AZURE,southeastasia,Standard_D64ads_v5,on_demand,NA,7.072,USD,Azure Retail Prices API,2025-12-18T04:46:18.798441 +AZURE,southeastasia,Standard_D64ads_v5,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:46:20.490023 +AZURE,southeastasia,Standard_D64ads_v5,reserved_3y,NA,1.568645,USD,Azure Retail Prices API,2025-12-18T04:46:20.490028 +AZURE,southeastasia,Standard_D64ads_v5,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:46:18.798043 +AZURE,southeastasia,Standard_D64ads_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:46:18.798117 +AZURE,southeastasia,Standard_D64ads_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:46:20.487988 +AZURE,southeastasia,Standard_D64ads_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:46:20.487994 +AZURE,southeastasia,Standard_D64ads_v6,spot,NA,0.846754,USD,Azure Retail Prices API,2025-12-18T04:46:18.797949 +AZURE,southeastasia,Standard_D64as_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:18.799446 +AZURE,southeastasia,Standard_D64as_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:46:20.490071 +AZURE,southeastasia,Standard_D64as_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:20.490077 +AZURE,southeastasia,Standard_D64as_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:18.799188 +AZURE,southeastasia,Standard_D64as_v5,on_demand,NA,6.4,USD,Azure Retail Prices API,2025-12-18T04:46:18.798719 +AZURE,southeastasia,Standard_D64as_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:46:20.489572 +AZURE,southeastasia,Standard_D64as_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:46:20.489577 +AZURE,southeastasia,Standard_D64as_v5,spot,NA,0.638669,USD,Azure Retail Prices API,2025-12-18T04:46:18.799024 +AZURE,southeastasia,Standard_D64d_v4,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:46:18.799493 +AZURE,southeastasia,Standard_D64d_v4,reserved_1y,NA,2.653082,USD,Azure Retail Prices API,2025-12-18T04:46:20.490149 +AZURE,southeastasia,Standard_D64d_v4,reserved_3y,NA,1.696499,USD,Azure Retail Prices API,2025-12-18T04:46:20.490155 +AZURE,southeastasia,Standard_D64d_v4,spot,NA,0.836525,USD,Azure Retail Prices API,2025-12-18T04:46:18.798281 +AZURE,southeastasia,Standard_D64ds_v4,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:46:18.798408 +AZURE,southeastasia,Standard_D64ds_v4,reserved_1y,NA,2.653082,USD,Azure Retail Prices API,2025-12-18T04:46:20.488386 +AZURE,southeastasia,Standard_D64ds_v4,reserved_3y,NA,1.696499,USD,Azure Retail Prices API,2025-12-18T04:46:20.488391 +AZURE,southeastasia,Standard_D64ds_v4,spot,NA,0.836525,USD,Azure Retail Prices API,2025-12-18T04:46:18.799170 +AZURE,southeastasia,Standard_D64ds_v5,on_demand,NA,4.512,USD,Azure Retail Prices API,2025-12-18T04:46:18.798706 +AZURE,southeastasia,Standard_D64ds_v5,reserved_1y,NA,2.6621,USD,Azure Retail Prices API,2025-12-18T04:46:20.488885 +AZURE,southeastasia,Standard_D64ds_v5,reserved_3y,NA,1.714574,USD,Azure Retail Prices API,2025-12-18T04:46:20.488890 +AZURE,southeastasia,Standard_D64ds_v5,spot,NA,0.836525,USD,Azure Retail Prices API,2025-12-18T04:46:18.797811 +AZURE,southeastasia,Standard_D64ds_v6,on_demand,NA,4.984,USD,Azure Retail Prices API,2025-12-18T04:46:18.797720 +AZURE,southeastasia,Standard_D64ds_v6,reserved_1y,NA,3.08984,USD,Azure Retail Prices API,2025-12-18T04:46:20.487527 +AZURE,southeastasia,Standard_D64ds_v6,reserved_3y,NA,1.943645,USD,Azure Retail Prices API,2025-12-18T04:46:20.487532 +AZURE,southeastasia,Standard_D64ds_v6,spot,NA,0.921043,USD,Azure Retail Prices API,2025-12-18T04:46:18.799423 +AZURE,southeastasia,Standard_D64pds_v6,on_demand,NA,3.661,USD,Azure Retail Prices API,2025-12-18T04:46:18.799483 +AZURE,southeastasia,Standard_D64pds_v6,reserved_1y,NA,2.159817,USD,Azure Retail Prices API,2025-12-18T04:46:20.490130 +AZURE,southeastasia,Standard_D64pds_v6,reserved_3y,NA,1.391096,USD,Azure Retail Prices API,2025-12-18T04:46:20.490135 +AZURE,southeastasia,Standard_D64pds_v6,spot,NA,0.676553,USD,Azure Retail Prices API,2025-12-18T04:46:18.798169 +AZURE,southeastasia,Standard_D64ps_v6,on_demand,NA,2.797,USD,Azure Retail Prices API,2025-12-18T04:46:18.799342 +AZURE,southeastasia,Standard_D64ps_v6,reserved_1y,NA,1.650114,USD,Azure Retail Prices API,2025-12-18T04:46:20.489962 +AZURE,southeastasia,Standard_D64ps_v6,reserved_3y,NA,1.062785,USD,Azure Retail Prices API,2025-12-18T04:46:20.489967 +AZURE,southeastasia,Standard_D64ps_v6,spot,NA,0.516886,USD,Azure Retail Prices API,2025-12-18T04:46:18.798458 +AZURE,southeastasia,Standard_D64s_v3,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:46:18.798499 +AZURE,southeastasia,Standard_D64s_v3,reserved_1y,NA,2.320548,USD,Azure Retail Prices API,2025-12-18T04:46:20.488505 +AZURE,southeastasia,Standard_D64s_v3,reserved_3y,NA,1.473973,USD,Azure Retail Prices API,2025-12-18T04:46:20.488510 +AZURE,southeastasia,Standard_D64s_v3,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:46:18.798757 +AZURE,southeastasia,Standard_D64s_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:18.798595 +AZURE,southeastasia,Standard_D64s_v4,reserved_1y,NA,2.257877,USD,Azure Retail Prices API,2025-12-18T04:46:20.488671 +AZURE,southeastasia,Standard_D64s_v4,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:20.488676 +AZURE,southeastasia,Standard_D64s_v4,spot,NA,0.711936,USD,Azure Retail Prices API,2025-12-18T04:46:18.799353 +AZURE,southeastasia,Standard_D64s_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:18.798887 +AZURE,southeastasia,Standard_D64s_v5,reserved_1y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:20.489167 +AZURE,southeastasia,Standard_D64s_v5,reserved_3y,NA,1.420814,USD,Azure Retail Prices API,2025-12-18T04:46:20.489172 +AZURE,southeastasia,Standard_D64s_v5,spot,NA,0.711936,USD,Azure Retail Prices API,2025-12-18T04:46:18.799474 +AZURE,southeastasia,Standard_D8_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:18.798905 +AZURE,southeastasia,Standard_D8_v3,reserved_1y,NA,0.290068,USD,Azure Retail Prices API,2025-12-18T04:46:20.489186 +AZURE,southeastasia,Standard_D8_v3,reserved_3y,NA,0.184247,USD,Azure Retail Prices API,2025-12-18T04:46:20.489191 +AZURE,southeastasia,Standard_D8_v3,spot,NA,0.0924,USD,Azure Retail Prices API,2025-12-18T04:46:18.798785 +AZURE,southeastasia,Standard_D8a_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:18.798763 +AZURE,southeastasia,Standard_D8a_v4,reserved_1y,NA,0.282192,USD,Azure Retail Prices API,2025-12-18T04:46:20.488954 +AZURE,southeastasia,Standard_D8a_v4,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:20.488959 +AZURE,southeastasia,Standard_D8a_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:18.799618 +AZURE,southeastasia,Standard_D8ads_v5,on_demand,NA,0.516,USD,Azure Retail Prices API,2025-12-18T04:46:18.797891 +AZURE,southeastasia,Standard_D8ads_v5,reserved_1y,NA,0.304452,USD,Azure Retail Prices API,2025-12-18T04:46:20.487716 +AZURE,southeastasia,Standard_D8ads_v5,reserved_3y,NA,0.196081,USD,Azure Retail Prices API,2025-12-18T04:46:20.487720 +AZURE,southeastasia,Standard_D8ads_v5,spot,NA,0.095357,USD,Azure Retail Prices API,2025-12-18T04:46:18.798302 +AZURE,southeastasia,Standard_D8ads_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:46:18.799270 +AZURE,southeastasia,Standard_D8ads_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:46:20.489852 +AZURE,southeastasia,Standard_D8ads_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:46:20.489856 +AZURE,southeastasia,Standard_D8ads_v6,spot,NA,0.10589,USD,Azure Retail Prices API,2025-12-18T04:46:18.799258 +AZURE,southeastasia,Standard_D8as_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:18.798745 +AZURE,southeastasia,Standard_D8as_v4,reserved_1y,NA,0.282192,USD,Azure Retail Prices API,2025-12-18T04:46:20.488934 +AZURE,southeastasia,Standard_D8as_v4,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:20.488939 +AZURE,southeastasia,Standard_D8as_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:18.799627 +AZURE,southeastasia,Standard_D8as_v5,on_demand,NA,0.432,USD,Azure Retail Prices API,2025-12-18T04:46:18.798530 +AZURE,southeastasia,Standard_D8as_v5,reserved_1y,NA,0.254909,USD,Azure Retail Prices API,2025-12-18T04:46:20.488547 +AZURE,southeastasia,Standard_D8as_v5,reserved_3y,NA,0.164155,USD,Azure Retail Prices API,2025-12-18T04:46:20.488553 +AZURE,southeastasia,Standard_D8as_v5,spot,NA,0.079834,USD,Azure Retail Prices API,2025-12-18T04:46:18.798727 +AZURE,southeastasia,Standard_D8d_v4,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:46:18.799327 +AZURE,southeastasia,Standard_D8d_v4,reserved_1y,NA,0.331621,USD,Azure Retail Prices API,2025-12-18T04:46:20.489940 +AZURE,southeastasia,Standard_D8d_v4,reserved_3y,NA,0.212062,USD,Azure Retail Prices API,2025-12-18T04:46:20.489945 +AZURE,southeastasia,Standard_D8d_v4,spot,NA,0.104566,USD,Azure Retail Prices API,2025-12-18T04:46:18.799630 +AZURE,southeastasia,Standard_D8ds_v4,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:46:18.799182 +AZURE,southeastasia,Standard_D8ds_v4,reserved_1y,NA,0.331621,USD,Azure Retail Prices API,2025-12-18T04:46:20.489739 +AZURE,southeastasia,Standard_D8ds_v4,reserved_3y,NA,0.212062,USD,Azure Retail Prices API,2025-12-18T04:46:20.489743 +AZURE,southeastasia,Standard_D8ds_v4,spot,NA,0.104566,USD,Azure Retail Prices API,2025-12-18T04:46:18.798800 +AZURE,southeastasia,Standard_D8ds_v5,on_demand,NA,0.564,USD,Azure Retail Prices API,2025-12-18T04:46:18.798966 +AZURE,southeastasia,Standard_D8ds_v5,reserved_1y,NA,0.332763,USD,Azure Retail Prices API,2025-12-18T04:46:20.489294 +AZURE,southeastasia,Standard_D8ds_v5,reserved_3y,NA,0.214307,USD,Azure Retail Prices API,2025-12-18T04:46:20.489298 +AZURE,southeastasia,Standard_D8ds_v5,spot,NA,0.104566,USD,Azure Retail Prices API,2025-12-18T04:46:18.798700 +AZURE,southeastasia,Standard_D8ds_v6,on_demand,NA,0.623,USD,Azure Retail Prices API,2025-12-18T04:46:18.799463 +AZURE,southeastasia,Standard_D8ds_v6,reserved_1y,NA,0.386187,USD,Azure Retail Prices API,2025-12-18T04:46:20.490103 +AZURE,southeastasia,Standard_D8ds_v6,reserved_3y,NA,0.24296,USD,Azure Retail Prices API,2025-12-18T04:46:20.490107 +AZURE,southeastasia,Standard_D8ds_v6,spot,NA,0.11513,USD,Azure Retail Prices API,2025-12-18T04:46:18.798429 +AZURE,southeastasia,Standard_D8pds_v6,on_demand,NA,0.458,USD,Azure Retail Prices API,2025-12-18T04:46:18.799591 +AZURE,southeastasia,Standard_D8pds_v6,reserved_1y,NA,0.269977,USD,Azure Retail Prices API,2025-12-18T04:46:20.490358 +AZURE,southeastasia,Standard_D8pds_v6,reserved_3y,NA,0.173896,USD,Azure Retail Prices API,2025-12-18T04:46:20.490363 +AZURE,southeastasia,Standard_D8pds_v6,spot,NA,0.084638,USD,Azure Retail Prices API,2025-12-18T04:46:18.797774 +AZURE,southeastasia,Standard_D8ps_v6,on_demand,NA,0.35,USD,Azure Retail Prices API,2025-12-18T04:46:18.799530 +AZURE,southeastasia,Standard_D8ps_v6,reserved_1y,NA,0.206279,USD,Azure Retail Prices API,2025-12-18T04:46:20.490209 +AZURE,southeastasia,Standard_D8ps_v6,reserved_3y,NA,0.132839,USD,Azure Retail Prices API,2025-12-18T04:46:20.490214 +AZURE,southeastasia,Standard_D8ps_v6,spot,NA,0.06468,USD,Azure Retail Prices API,2025-12-18T04:46:18.797913 +AZURE,southeastasia,Standard_D8s_v3,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:46:18.798131 +AZURE,southeastasia,Standard_D8s_v3,reserved_1y,NA,0.290068,USD,Azure Retail Prices API,2025-12-18T04:46:20.488020 +AZURE,southeastasia,Standard_D8s_v3,reserved_3y,NA,0.184247,USD,Azure Retail Prices API,2025-12-18T04:46:20.488025 +AZURE,southeastasia,Standard_D8s_v3,spot,NA,0.0924,USD,Azure Retail Prices API,2025-12-18T04:46:18.798551 +AZURE,southeastasia,Standard_D8s_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:18.799141 +AZURE,southeastasia,Standard_D8s_v4,reserved_1y,NA,0.282192,USD,Azure Retail Prices API,2025-12-18T04:46:20.489643 +AZURE,southeastasia,Standard_D8s_v4,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:20.489649 +AZURE,southeastasia,Standard_D8s_v4,spot,NA,0.088992,USD,Azure Retail Prices API,2025-12-18T04:46:18.799458 +AZURE,southeastasia,Standard_D8s_v5,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:18.799054 +AZURE,southeastasia,Standard_D8s_v5,reserved_1y,NA,0.27363,USD,Azure Retail Prices API,2025-12-18T04:46:20.489528 +AZURE,southeastasia,Standard_D8s_v5,reserved_3y,NA,0.177588,USD,Azure Retail Prices API,2025-12-18T04:46:20.489547 +AZURE,southeastasia,Standard_D8s_v5,spot,NA,0.088992,USD,Azure Retail Prices API,2025-12-18T04:46:18.799420 +AZURE,southeastasia,Standard_D96a_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:18.797920 +AZURE,southeastasia,Standard_D96a_v4,reserved_1y,NA,3.386872,USD,Azure Retail Prices API,2025-12-18T04:46:20.487749 +AZURE,southeastasia,Standard_D96a_v4,reserved_3y,NA,2.165753,USD,Azure Retail Prices API,2025-12-18T04:46:20.487752 +AZURE,southeastasia,Standard_D96a_v4,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:46:18.798676 +AZURE,southeastasia,Standard_D96ads_v5,on_demand,NA,6.192,USD,Azure Retail Prices API,2025-12-18T04:46:18.798863 +AZURE,southeastasia,Standard_D96ads_v5,reserved_1y,NA,3.653311,USD,Azure Retail Prices API,2025-12-18T04:46:20.489114 +AZURE,southeastasia,Standard_D96ads_v5,reserved_3y,NA,2.352968,USD,Azure Retail Prices API,2025-12-18T04:46:20.489132 +AZURE,southeastasia,Standard_D96ads_v5,spot,NA,1.144282,USD,Azure Retail Prices API,2025-12-18T04:46:18.799417 +AZURE,southeastasia,Standard_D96ads_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:46:18.798078 +AZURE,southeastasia,Standard_D96ads_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:46:20.487956 +AZURE,southeastasia,Standard_D96ads_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:46:20.487960 +AZURE,southeastasia,Standard_D96ads_v6,spot,NA,1.270315,USD,Azure Retail Prices API,2025-12-18T04:46:18.799533 +AZURE,southeastasia,Standard_D96as_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:18.799610 +AZURE,southeastasia,Standard_D96as_v4,reserved_1y,NA,3.386872,USD,Azure Retail Prices API,2025-12-18T04:46:20.490369 +AZURE,southeastasia,Standard_D96as_v4,reserved_3y,NA,2.165753,USD,Azure Retail Prices API,2025-12-18T04:46:20.490374 +AZURE,southeastasia,Standard_D96as_v4,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:46:18.799256 +AZURE,southeastasia,Standard_D96as_v5,on_demand,NA,9.6,USD,Azure Retail Prices API,2025-12-18T04:46:18.798438 +AZURE,southeastasia,Standard_D96as_v5,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:46:20.489147 +AZURE,southeastasia,Standard_D96as_v5,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:46:20.489152 +AZURE,southeastasia,Standard_D96as_v5,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:46:18.798860 +AZURE,southeastasia,Standard_D96ds_v5,on_demand,NA,6.768,USD,Azure Retail Prices API,2025-12-18T04:46:18.799633 +AZURE,southeastasia,Standard_D96ds_v5,reserved_1y,NA,3.993151,USD,Azure Retail Prices API,2025-12-18T04:46:20.490388 +AZURE,southeastasia,Standard_D96ds_v5,reserved_3y,NA,2.571842,USD,Azure Retail Prices API,2025-12-18T04:46:20.490393 +AZURE,southeastasia,Standard_D96ds_v5,spot,NA,1.254787,USD,Azure Retail Prices API,2025-12-18T04:46:18.798263 +AZURE,southeastasia,Standard_D96ds_v6,on_demand,NA,7.476,USD,Azure Retail Prices API,2025-12-18T04:46:18.798688 +AZURE,southeastasia,Standard_D96ds_v6,reserved_1y,NA,4.634817,USD,Azure Retail Prices API,2025-12-18T04:46:20.488833 +AZURE,southeastasia,Standard_D96ds_v6,reserved_3y,NA,2.915449,USD,Azure Retail Prices API,2025-12-18T04:46:20.488838 +AZURE,southeastasia,Standard_D96ds_v6,spot,NA,1.381565,USD,Azure Retail Prices API,2025-12-18T04:46:18.797757 +AZURE,southeastasia,Standard_D96pds_v6,on_demand,NA,5.491,USD,Azure Retail Prices API,2025-12-18T04:46:18.798075 +AZURE,southeastasia,Standard_D96pds_v6,reserved_1y,NA,3.23984,USD,Azure Retail Prices API,2025-12-18T04:46:20.487950 +AZURE,southeastasia,Standard_D96pds_v6,reserved_3y,NA,2.086644,USD,Azure Retail Prices API,2025-12-18T04:46:20.487953 +AZURE,southeastasia,Standard_D96pds_v6,spot,NA,1.014737,USD,Azure Retail Prices API,2025-12-18T04:46:18.798063 +AZURE,southeastasia,Standard_D96ps_v6,on_demand,NA,4.195,USD,Azure Retail Prices API,2025-12-18T04:46:18.798742 +AZURE,southeastasia,Standard_D96ps_v6,reserved_1y,NA,2.475114,USD,Azure Retail Prices API,2025-12-18T04:46:20.488924 +AZURE,southeastasia,Standard_D96ps_v6,reserved_3y,NA,1.594178,USD,Azure Retail Prices API,2025-12-18T04:46:20.488929 +AZURE,southeastasia,Standard_D96ps_v6,spot,NA,0.775236,USD,Azure Retail Prices API,2025-12-18T04:46:18.797978 +AZURE,southeastasia,Standard_D96s_v5,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:18.798402 +AZURE,southeastasia,Standard_D96s_v5,reserved_1y,NA,3.283219,USD,Azure Retail Prices API,2025-12-18T04:46:20.488376 +AZURE,southeastasia,Standard_D96s_v5,reserved_3y,NA,2.131202,USD,Azure Retail Prices API,2025-12-18T04:46:20.488381 +AZURE,southeastasia,Standard_D96s_v5,spot,NA,1.067904,USD,Azure Retail Prices API,2025-12-18T04:46:18.798620 +AZURE,southeastasia,Standard_DC16ads_v5,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:46:18.798266 +AZURE,southeastasia,Standard_DC16ads_v5,reserved_1y,NA,0.825571,USD,Azure Retail Prices API,2025-12-18T04:46:20.488202 +AZURE,southeastasia,Standard_DC16ads_v5,reserved_3y,NA,0.619216,USD,Azure Retail Prices API,2025-12-18T04:46:20.488207 +AZURE,southeastasia,Standard_DC16ads_v5,spot,NA,0.194738,USD,Azure Retail Prices API,2025-12-18T04:46:18.798848 +AZURE,southeastasia,Standard_DC16ads_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:46:18.798632 +AZURE,southeastasia,Standard_DC16ads_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:46:20.488699 +AZURE,southeastasia,Standard_DC16ads_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:46:20.488705 +AZURE,southeastasia,Standard_DC16ads_v6,spot,NA,0.211781,USD,Azure Retail Prices API,2025-12-18T04:46:18.799001 +AZURE,southeastasia,Standard_DC16as_v5,on_demand,NA,0.864,USD,Azure Retail Prices API,2025-12-18T04:46:18.798028 +AZURE,southeastasia,Standard_DC16as_v5,reserved_1y,NA,0.69121,USD,Azure Retail Prices API,2025-12-18T04:46:20.487884 +AZURE,southeastasia,Standard_DC16as_v5,reserved_3y,NA,0.518417,USD,Azure Retail Prices API,2025-12-18T04:46:20.487888 +AZURE,southeastasia,Standard_DC16as_v5,spot,NA,0.163037,USD,Azure Retail Prices API,2025-12-18T04:46:18.798005 +AZURE,southeastasia,Standard_DC2ads_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:18.797981 +AZURE,southeastasia,Standard_DC2ads_v6,reserved_1y,NA,0.084475,USD,Azure Retail Prices API,2025-12-18T04:46:20.487794 +AZURE,southeastasia,Standard_DC2ads_v6,reserved_3y,NA,0.054414,USD,Azure Retail Prices API,2025-12-18T04:46:20.487797 +AZURE,southeastasia,Standard_DC2ads_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:46:18.799613 +AZURE,southeastasia,Standard_DC32ads_v5,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:46:18.797701 +AZURE,southeastasia,Standard_DC32ads_v5,reserved_1y,NA,1.651256,USD,Azure Retail Prices API,2025-12-18T04:46:20.487504 +AZURE,southeastasia,Standard_DC32ads_v5,reserved_3y,NA,1.238394,USD,Azure Retail Prices API,2025-12-18T04:46:20.487510 +AZURE,southeastasia,Standard_DC32ads_v5,spot,NA,0.389477,USD,Azure Retail Prices API,2025-12-18T04:46:18.798854 +AZURE,southeastasia,Standard_DC32ads_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:46:18.797864 +AZURE,southeastasia,Standard_DC32ads_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:46:20.487677 +AZURE,southeastasia,Standard_DC32ads_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:46:20.487681 +AZURE,southeastasia,Standard_DC32ads_v6,spot,NA,0.423377,USD,Azure Retail Prices API,2025-12-18T04:46:18.798278 +AZURE,southeastasia,Standard_DC32as_v5,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:46:18.799016 +AZURE,southeastasia,Standard_DC32as_v5,reserved_1y,NA,1.38242,USD,Azure Retail Prices API,2025-12-18T04:46:20.489444 +AZURE,southeastasia,Standard_DC32as_v5,reserved_3y,NA,1.036796,USD,Azure Retail Prices API,2025-12-18T04:46:20.489449 +AZURE,southeastasia,Standard_DC32as_v5,spot,NA,0.326074,USD,Azure Retail Prices API,2025-12-18T04:46:18.797870 +AZURE,southeastasia,Standard_DC48ads_v5,on_demand,NA,3.096,USD,Azure Retail Prices API,2025-12-18T04:46:18.798221 +AZURE,southeastasia,Standard_DC48ads_v5,reserved_1y,NA,2.476826,USD,Azure Retail Prices API,2025-12-18T04:46:20.488141 +AZURE,southeastasia,Standard_DC48ads_v5,reserved_3y,NA,1.85761,USD,Azure Retail Prices API,2025-12-18T04:46:20.488145 +AZURE,southeastasia,Standard_DC48ads_v5,spot,NA,0.584215,USD,Azure Retail Prices API,2025-12-18T04:46:18.799038 +AZURE,southeastasia,Standard_DC48ads_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:46:18.799428 +AZURE,southeastasia,Standard_DC48ads_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:46:20.490052 +AZURE,southeastasia,Standard_DC48ads_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:46:20.490057 +AZURE,southeastasia,Standard_DC48ads_v6,spot,NA,0.635158,USD,Azure Retail Prices API,2025-12-18T04:46:18.799224 +AZURE,southeastasia,Standard_DC48as_v5,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:46:18.798519 +AZURE,southeastasia,Standard_DC48as_v5,reserved_1y,NA,2.07363,USD,Azure Retail Prices API,2025-12-18T04:46:20.488537 +AZURE,southeastasia,Standard_DC48as_v5,reserved_3y,NA,1.555213,USD,Azure Retail Prices API,2025-12-18T04:46:20.488542 +AZURE,southeastasia,Standard_DC48as_v5,spot,NA,0.48911,USD,Azure Retail Prices API,2025-12-18T04:46:18.798824 +AZURE,southeastasia,Standard_DC4ads_v5,on_demand,NA,0.258,USD,Azure Retail Prices API,2025-12-18T04:46:18.799004 +AZURE,southeastasia,Standard_DC4ads_v5,reserved_1y,NA,0.206393,USD,Azure Retail Prices API,2025-12-18T04:46:20.489349 +AZURE,southeastasia,Standard_DC4ads_v5,reserved_3y,NA,0.154795,USD,Azure Retail Prices API,2025-12-18T04:46:20.489354 +AZURE,southeastasia,Standard_DC4ads_v5,spot,NA,0.048685,USD,Azure Retail Prices API,2025-12-18T04:46:18.797882 +AZURE,southeastasia,Standard_DC4ads_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:18.798623 +AZURE,southeastasia,Standard_DC4ads_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:46:20.488681 +AZURE,southeastasia,Standard_DC4ads_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:46:20.488686 +AZURE,southeastasia,Standard_DC4ads_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:46:18.798510 +AZURE,southeastasia,Standard_DC4as_v5,on_demand,NA,0.216,USD,Azure Retail Prices API,2025-12-18T04:46:18.797729 +AZURE,southeastasia,Standard_DC4as_v5,reserved_1y,NA,0.172831,USD,Azure Retail Prices API,2025-12-18T04:46:20.487544 +AZURE,southeastasia,Standard_DC4as_v5,reserved_3y,NA,0.129604,USD,Azure Retail Prices API,2025-12-18T04:46:20.487547 +AZURE,southeastasia,Standard_DC4as_v5,spot,NA,0.040759,USD,Azure Retail Prices API,2025-12-18T04:46:18.799553 +AZURE,southeastasia,Standard_DC64ads_v5,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:46:18.798908 +AZURE,southeastasia,Standard_DC64ads_v5,reserved_1y,NA,3.302397,USD,Azure Retail Prices API,2025-12-18T04:46:20.489196 +AZURE,southeastasia,Standard_DC64ads_v5,reserved_3y,NA,2.476788,USD,Azure Retail Prices API,2025-12-18T04:46:20.489201 +AZURE,southeastasia,Standard_DC64ads_v5,spot,NA,0.778954,USD,Azure Retail Prices API,2025-12-18T04:46:18.798598 +AZURE,southeastasia,Standard_DC64ads_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:46:18.798788 +AZURE,southeastasia,Standard_DC64ads_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:46:20.489005 +AZURE,southeastasia,Standard_DC64ads_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:46:20.489009 +AZURE,southeastasia,Standard_DC64ads_v6,spot,NA,0.846754,USD,Azure Retail Prices API,2025-12-18T04:46:18.799339 +AZURE,southeastasia,Standard_DC64as_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:46:18.798571 +AZURE,southeastasia,Standard_DC64as_v5,reserved_1y,NA,2.76484,USD,Azure Retail Prices API,2025-12-18T04:46:20.488620 +AZURE,southeastasia,Standard_DC64as_v5,reserved_3y,NA,2.073592,USD,Azure Retail Prices API,2025-12-18T04:46:20.488625 +AZURE,southeastasia,Standard_DC64as_v5,spot,NA,0.652147,USD,Azure Retail Prices API,2025-12-18T04:46:18.797964 +AZURE,southeastasia,Standard_DC8ads_v5,on_demand,NA,0.516,USD,Azure Retail Prices API,2025-12-18T04:46:18.798378 +AZURE,southeastasia,Standard_DC8ads_v5,reserved_1y,NA,0.412785,USD,Azure Retail Prices API,2025-12-18T04:46:20.488295 +AZURE,southeastasia,Standard_DC8ads_v5,reserved_3y,NA,0.309589,USD,Azure Retail Prices API,2025-12-18T04:46:20.488300 +AZURE,southeastasia,Standard_DC8ads_v5,spot,NA,0.097369,USD,Azure Retail Prices API,2025-12-18T04:46:18.798545 +AZURE,southeastasia,Standard_DC8ads_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:46:18.798773 +AZURE,southeastasia,Standard_DC8ads_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:46:20.488974 +AZURE,southeastasia,Standard_DC8ads_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:46:20.488978 +AZURE,southeastasia,Standard_DC8ads_v6,spot,NA,0.10589,USD,Azure Retail Prices API,2025-12-18T04:46:18.798910 +AZURE,southeastasia,Standard_DC8as_v5,on_demand,NA,0.432,USD,Azure Retail Prices API,2025-12-18T04:46:18.798586 +AZURE,southeastasia,Standard_DC8as_v5,reserved_1y,NA,0.345548,USD,Azure Retail Prices API,2025-12-18T04:46:20.488640 +AZURE,southeastasia,Standard_DC8as_v5,reserved_3y,NA,0.259209,USD,Azure Retail Prices API,2025-12-18T04:46:20.488645 +AZURE,southeastasia,Standard_DC8as_v5,spot,NA,0.081518,USD,Azure Retail Prices API,2025-12-18T04:46:18.798522 +AZURE,southeastasia,Standard_DC96ads_v5,on_demand,NA,6.192,USD,Azure Retail Prices API,2025-12-18T04:46:18.798016 +AZURE,southeastasia,Standard_DC96ads_v5,reserved_1y,NA,4.953653,USD,Azure Retail Prices API,2025-12-18T04:46:20.487854 +AZURE,southeastasia,Standard_DC96ads_v5,reserved_3y,NA,3.715183,USD,Azure Retail Prices API,2025-12-18T04:46:20.487858 +AZURE,southeastasia,Standard_DC96ads_v5,spot,NA,1.16843,USD,Azure Retail Prices API,2025-12-18T04:46:18.799477 +AZURE,southeastasia,Standard_DC96ads_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:46:18.799550 +AZURE,southeastasia,Standard_DC96ads_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:46:20.490250 +AZURE,southeastasia,Standard_DC96ads_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:46:20.490255 +AZURE,southeastasia,Standard_DC96ads_v6,spot,NA,1.270315,USD,Azure Retail Prices API,2025-12-18T04:46:18.798583 +AZURE,southeastasia,Standard_DC96as_v5,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:46:18.798245 +AZURE,southeastasia,Standard_DC96as_v5,reserved_1y,NA,4.147146,USD,Azure Retail Prices API,2025-12-18T04:46:20.488182 +AZURE,southeastasia,Standard_DC96as_v5,reserved_3y,NA,3.110388,USD,Azure Retail Prices API,2025-12-18T04:46:20.488187 +AZURE,southeastasia,Standard_DC96as_v5,spot,NA,0.978221,USD,Azure Retail Prices API,2025-12-18T04:46:18.798818 +AZURE,southeastasia,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495503 +AZURE,southeastasia,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495511 +AZURE,southeastasia,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495515 +AZURE,southeastasia,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495507 +AZURE,southeastasia,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496389 +AZURE,southeastasia,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496397 +AZURE,southeastasia,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496402 +AZURE,southeastasia,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496393 +AZURE,southeastasia,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497188 +AZURE,southeastasia,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497199 +AZURE,southeastasia,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497205 +AZURE,southeastasia,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497193 +AZURE,southeastasia,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498030 +AZURE,southeastasia,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498038 +AZURE,southeastasia,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498042 +AZURE,southeastasia,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498034 +AZURE,southeastasia,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491865 +AZURE,southeastasia,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491873 +AZURE,southeastasia,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491877 +AZURE,southeastasia,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491869 +AZURE,southeastasia,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492586 +AZURE,southeastasia,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492595 +AZURE,southeastasia,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492599 +AZURE,southeastasia,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492591 +AZURE,southeastasia,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493319 +AZURE,southeastasia,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493328 +AZURE,southeastasia,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493332 +AZURE,southeastasia,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493323 +AZURE,southeastasia,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494021 +AZURE,southeastasia,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494029 +AZURE,southeastasia,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494033 +AZURE,southeastasia,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494025 +AZURE,southeastasia,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494735 +AZURE,southeastasia,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494743 +AZURE,southeastasia,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494747 +AZURE,southeastasia,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494739 +AZURE,southeastasia,Standard_E128ds_v6,on_demand,NA,12.625,USD,Azure Retail Prices API,2025-12-18T04:46:18.798490 +AZURE,southeastasia,Standard_E128ds_v6,reserved_1y,NA,7.827283,USD,Azure Retail Prices API,2025-12-18T04:46:20.488495 +AZURE,southeastasia,Standard_E128ds_v6,reserved_3y,NA,4.923592,USD,Azure Retail Prices API,2025-12-18T04:46:20.488500 +AZURE,southeastasia,Standard_E128ds_v6,spot,NA,2.3331,USD,Azure Retail Prices API,2025-12-18T04:46:18.799044 +AZURE,southeastasia,Standard_E16_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:46:18.797777 +AZURE,southeastasia,Standard_E16_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:20.487629 +AZURE,southeastasia,Standard_E16_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:20.487632 +AZURE,southeastasia,Standard_E16_v3,spot,NA,0.236544,USD,Azure Retail Prices API,2025-12-18T04:46:18.798884 +AZURE,southeastasia,Standard_E16a_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:18.797713 +AZURE,southeastasia,Standard_E16a_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:20.487516 +AZURE,southeastasia,Standard_E16a_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:20.487521 +AZURE,southeastasia,Standard_E16a_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:18.798272 +AZURE,southeastasia,Standard_E16ads_v5,on_demand,NA,1.272,USD,Azure Retail Prices API,2025-12-18T04:46:18.797807 +AZURE,southeastasia,Standard_E16ads_v5,reserved_1y,NA,0.750457,USD,Azure Retail Prices API,2025-12-18T04:46:20.487636 +AZURE,southeastasia,Standard_E16ads_v5,reserved_3y,NA,0.483371,USD,Azure Retail Prices API,2025-12-18T04:46:20.487640 +AZURE,southeastasia,Standard_E16ads_v5,spot,NA,0.235066,USD,Azure Retail Prices API,2025-12-18T04:46:18.798084 +AZURE,southeastasia,Standard_E16ads_v6,on_demand,NA,1.458,USD,Azure Retail Prices API,2025-12-18T04:46:18.799588 +AZURE,southeastasia,Standard_E16ads_v6,reserved_1y,NA,0.859932,USD,Azure Retail Prices API,2025-12-18T04:46:20.490349 +AZURE,southeastasia,Standard_E16ads_v6,reserved_3y,NA,0.553881,USD,Azure Retail Prices API,2025-12-18T04:46:20.490354 +AZURE,southeastasia,Standard_E16ads_v6,spot,NA,0.269438,USD,Azure Retail Prices API,2025-12-18T04:46:18.799376 +AZURE,southeastasia,Standard_E16as_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:18.798054 +AZURE,southeastasia,Standard_E16as_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:20.487930 +AZURE,southeastasia,Standard_E16as_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:20.487933 +AZURE,southeastasia,Standard_E16as_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:18.799640 +AZURE,southeastasia,Standard_E16as_v5,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:46:18.797900 +AZURE,southeastasia,Standard_E16as_v5,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:46:20.487736 +AZURE,southeastasia,Standard_E16as_v5,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:46:20.487739 +AZURE,southeastasia,Standard_E16as_v5,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:46:18.799013 +AZURE,southeastasia,Standard_E16d_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:18.798978 +AZURE,southeastasia,Standard_E16d_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:20.489313 +AZURE,southeastasia,Standard_E16d_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:20.489320 +AZURE,southeastasia,Standard_E16d_v4,spot,NA,0.258077,USD,Azure Retail Prices API,2025-12-18T04:46:18.799522 +AZURE,southeastasia,Standard_E16ds_v4,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:18.798736 +AZURE,southeastasia,Standard_E16ds_v4,reserved_1y,NA,0.818493,USD,Azure Retail Prices API,2025-12-18T04:46:20.488905 +AZURE,southeastasia,Standard_E16ds_v4,reserved_3y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:46:20.488911 +AZURE,southeastasia,Standard_E16ds_v4,spot,NA,0.258077,USD,Azure Retail Prices API,2025-12-18T04:46:18.799471 +AZURE,southeastasia,Standard_E16ds_v5,on_demand,NA,1.392,USD,Azure Retail Prices API,2025-12-18T04:46:18.799007 +AZURE,southeastasia,Standard_E16ds_v5,reserved_1y,NA,0.821233,USD,Azure Retail Prices API,2025-12-18T04:46:20.489419 +AZURE,southeastasia,Standard_E16ds_v5,reserved_3y,NA,0.528957,USD,Azure Retail Prices API,2025-12-18T04:46:20.489427 +AZURE,southeastasia,Standard_E16ds_v5,spot,NA,0.258077,USD,Azure Retail Prices API,2025-12-18T04:46:18.798722 +AZURE,southeastasia,Standard_E16ds_v6,on_demand,NA,1.578,USD,Azure Retail Prices API,2025-12-18T04:46:18.798051 +AZURE,southeastasia,Standard_E16ds_v6,reserved_1y,NA,0.978425,USD,Azure Retail Prices API,2025-12-18T04:46:20.487924 +AZURE,southeastasia,Standard_E16ds_v6,reserved_3y,NA,0.615449,USD,Azure Retail Prices API,2025-12-18T04:46:20.487927 +AZURE,southeastasia,Standard_E16ds_v6,spot,NA,0.291614,USD,Azure Retail Prices API,2025-12-18T04:46:18.799542 +AZURE,southeastasia,Standard_E16pds_v6,on_demand,NA,1.166,USD,Azure Retail Prices API,2025-12-18T04:46:18.798670 +AZURE,southeastasia,Standard_E16pds_v6,reserved_1y,NA,0.688128,USD,Azure Retail Prices API,2025-12-18T04:46:20.488790 +AZURE,southeastasia,Standard_E16pds_v6,reserved_3y,NA,0.443227,USD,Azure Retail Prices API,2025-12-18T04:46:20.488795 +AZURE,southeastasia,Standard_E16pds_v6,spot,NA,0.215477,USD,Azure Retail Prices API,2025-12-18T04:46:18.797704 +AZURE,southeastasia,Standard_E16ps_v6,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:46:18.799287 +AZURE,southeastasia,Standard_E16ps_v6,reserved_1y,NA,0.542808,USD,Azure Retail Prices API,2025-12-18T04:46:20.489882 +AZURE,southeastasia,Standard_E16ps_v6,reserved_3y,NA,0.349581,USD,Azure Retail Prices API,2025-12-18T04:46:20.489888 +AZURE,southeastasia,Standard_E16ps_v6,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:46:18.798875 +AZURE,southeastasia,Standard_E16s_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:46:18.797909 +AZURE,southeastasia,Standard_E16s_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:20.487742 +AZURE,southeastasia,Standard_E16s_v3,reserved_3y,NA,0.481279,USD,Azure Retail Prices API,2025-12-18T04:46:20.487745 +AZURE,southeastasia,Standard_E16s_v3,spot,NA,0.236544,USD,Azure Retail Prices API,2025-12-18T04:46:18.798057 +AZURE,southeastasia,Standard_E16s_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:18.798207 +AZURE,southeastasia,Standard_E16s_v4,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:20.488108 +AZURE,southeastasia,Standard_E16s_v4,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:20.488114 +AZURE,southeastasia,Standard_E16s_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:18.798815 +AZURE,southeastasia,Standard_E16s_v5,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:18.798269 +AZURE,southeastasia,Standard_E16s_v5,reserved_1y,NA,0.705251,USD,Azure Retail Prices API,2025-12-18T04:46:20.488212 +AZURE,southeastasia,Standard_E16s_v5,reserved_3y,NA,0.449924,USD,Azure Retail Prices API,2025-12-18T04:46:20.488217 +AZURE,southeastasia,Standard_E16s_v5,spot,NA,0.225446,USD,Azure Retail Prices API,2025-12-18T04:46:18.798730 +AZURE,southeastasia,Standard_E20a_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:18.799149 +AZURE,southeastasia,Standard_E20a_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:20.489674 +AZURE,southeastasia,Standard_E20a_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:20.489679 +AZURE,southeastasia,Standard_E20a_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:18.798626 +AZURE,southeastasia,Standard_E20ads_v5,on_demand,NA,2.51,USD,Azure Retail Prices API,2025-12-18T04:46:18.798420 +AZURE,southeastasia,Standard_E20ads_v5,reserved_1y,NA,0.938128,USD,Azure Retail Prices API,2025-12-18T04:46:20.489508 +AZURE,southeastasia,Standard_E20ads_v5,reserved_3y,NA,0.604186,USD,Azure Retail Prices API,2025-12-18T04:46:20.489513 +AZURE,southeastasia,Standard_E20ads_v5,spot,NA,0.293832,USD,Azure Retail Prices API,2025-12-18T04:46:18.798174 +AZURE,southeastasia,Standard_E20ads_v6,on_demand,NA,1.822,USD,Azure Retail Prices API,2025-12-18T04:46:18.798123 +AZURE,southeastasia,Standard_E20ads_v6,reserved_1y,NA,1.075,USD,Azure Retail Prices API,2025-12-18T04:46:20.488001 +AZURE,southeastasia,Standard_E20ads_v6,reserved_3y,NA,0.692352,USD,Azure Retail Prices API,2025-12-18T04:46:20.488006 +AZURE,southeastasia,Standard_E20ads_v6,spot,NA,0.336706,USD,Azure Retail Prices API,2025-12-18T04:46:18.799356 +AZURE,southeastasia,Standard_E20as_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:18.799027 +AZURE,southeastasia,Standard_E20as_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:20.489476 +AZURE,southeastasia,Standard_E20as_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:20.489481 +AZURE,southeastasia,Standard_E20as_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:18.797833 +AZURE,southeastasia,Standard_E20as_v5,on_demand,NA,1.36,USD,Azure Retail Prices API,2025-12-18T04:46:18.797697 +AZURE,southeastasia,Standard_E20as_v5,reserved_1y,NA,0.802397,USD,Azure Retail Prices API,2025-12-18T04:46:20.487477 +AZURE,southeastasia,Standard_E20as_v5,reserved_3y,NA,0.516819,USD,Azure Retail Prices API,2025-12-18T04:46:20.487496 +AZURE,southeastasia,Standard_E20as_v5,spot,NA,0.251328,USD,Azure Retail Prices API,2025-12-18T04:46:18.799599 +AZURE,southeastasia,Standard_E20d_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:18.799292 +AZURE,southeastasia,Standard_E20d_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:20.489893 +AZURE,southeastasia,Standard_E20d_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:20.489898 +AZURE,southeastasia,Standard_E20d_v4,spot,NA,0.322596,USD,Azure Retail Prices API,2025-12-18T04:46:18.798916 +AZURE,southeastasia,Standard_E20ds_v4,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:18.797925 +AZURE,southeastasia,Standard_E20ds_v4,reserved_1y,NA,1.023402,USD,Azure Retail Prices API,2025-12-18T04:46:20.487755 +AZURE,southeastasia,Standard_E20ds_v4,reserved_3y,NA,0.6543,USD,Azure Retail Prices API,2025-12-18T04:46:20.487759 +AZURE,southeastasia,Standard_E20ds_v4,spot,NA,0.322596,USD,Azure Retail Prices API,2025-12-18T04:46:18.798187 +AZURE,southeastasia,Standard_E20ds_v5,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:46:18.798360 +AZURE,southeastasia,Standard_E20ds_v5,reserved_1y,NA,1.026598,USD,Azure Retail Prices API,2025-12-18T04:46:20.488275 +AZURE,southeastasia,Standard_E20ds_v5,reserved_3y,NA,0.661187,USD,Azure Retail Prices API,2025-12-18T04:46:20.488280 +AZURE,southeastasia,Standard_E20ds_v5,spot,NA,0.322596,USD,Azure Retail Prices API,2025-12-18T04:46:18.798709 +AZURE,southeastasia,Standard_E20ds_v6,on_demand,NA,1.973,USD,Azure Retail Prices API,2025-12-18T04:46:18.799519 +AZURE,southeastasia,Standard_E20ds_v6,reserved_1y,NA,1.223059,USD,Azure Retail Prices API,2025-12-18T04:46:20.490190 +AZURE,southeastasia,Standard_E20ds_v6,reserved_3y,NA,0.76933,USD,Azure Retail Prices API,2025-12-18T04:46:20.490195 +AZURE,southeastasia,Standard_E20ds_v6,spot,NA,0.36461,USD,Azure Retail Prices API,2025-12-18T04:46:18.798902 +AZURE,southeastasia,Standard_E20s_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:18.798204 +AZURE,southeastasia,Standard_E20s_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:46:20.488083 +AZURE,southeastasia,Standard_E20s_v4,reserved_3y,NA,0.571537,USD,Azure Retail Prices API,2025-12-18T04:46:20.488101 +AZURE,southeastasia,Standard_E20s_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:18.799324 +AZURE,southeastasia,Standard_E20s_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:18.797771 +AZURE,southeastasia,Standard_E20s_v5,reserved_1y,NA,0.881621,USD,Azure Retail Prices API,2025-12-18T04:46:20.487621 +AZURE,southeastasia,Standard_E20s_v5,reserved_3y,NA,0.562405,USD,Azure Retail Prices API,2025-12-18T04:46:20.487625 +AZURE,southeastasia,Standard_E20s_v5,spot,NA,0.281808,USD,Azure Retail Prices API,2025-12-18T04:46:18.799646 +AZURE,southeastasia,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:46:18.799233 +AZURE,southeastasia,Standard_E2_v3,reserved_1y,NA,0.094064,USD,Azure Retail Prices API,2025-12-18T04:46:20.489821 +AZURE,southeastasia,Standard_E2_v3,reserved_3y,NA,0.06016,USD,Azure Retail Prices API,2025-12-18T04:46:20.489826 +AZURE,southeastasia,Standard_E2_v3,spot,NA,0.029568,USD,Azure Retail Prices API,2025-12-18T04:46:18.798287 +AZURE,southeastasia,Standard_E2ads_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:18.798034 +AZURE,southeastasia,Standard_E2ads_v6,reserved_1y,NA,0.107534,USD,Azure Retail Prices API,2025-12-18T04:46:20.487898 +AZURE,southeastasia,Standard_E2ads_v6,reserved_3y,NA,0.069254,USD,Azure Retail Prices API,2025-12-18T04:46:20.487901 +AZURE,southeastasia,Standard_E2ads_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:46:18.799129 +AZURE,southeastasia,Standard_E2ds_v5,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:18.798095 +AZURE,southeastasia,Standard_E2ds_v5,reserved_1y,NA,0.102626,USD,Azure Retail Prices API,2025-12-18T04:46:20.487970 +AZURE,southeastasia,Standard_E2ds_v5,reserved_3y,NA,0.066134,USD,Azure Retail Prices API,2025-12-18T04:46:20.487973 +AZURE,southeastasia,Standard_E2ds_v5,spot,NA,0.03226,USD,Azure Retail Prices API,2025-12-18T04:46:18.799449 +AZURE,southeastasia,Standard_E2ds_v6,on_demand,NA,0.197,USD,Azure Retail Prices API,2025-12-18T04:46:18.797894 +AZURE,southeastasia,Standard_E2ds_v6,reserved_1y,NA,0.12226,USD,Azure Retail Prices API,2025-12-18T04:46:20.487723 +AZURE,southeastasia,Standard_E2ds_v6,reserved_3y,NA,0.076941,USD,Azure Retail Prices API,2025-12-18T04:46:20.487726 +AZURE,southeastasia,Standard_E2ds_v6,spot,NA,0.036406,USD,Azure Retail Prices API,2025-12-18T04:46:18.799122 +AZURE,southeastasia,Standard_E2pds_v6,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:46:18.799212 +AZURE,southeastasia,Standard_E2pds_v6,reserved_1y,NA,0.086073,USD,Azure Retail Prices API,2025-12-18T04:46:20.489770 +AZURE,southeastasia,Standard_E2pds_v6,reserved_3y,NA,0.055403,USD,Azure Retail Prices API,2025-12-18T04:46:20.489775 +AZURE,southeastasia,Standard_E2pds_v6,spot,NA,0.026981,USD,Azure Retail Prices API,2025-12-18T04:46:18.798140 +AZURE,southeastasia,Standard_E32_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:46:18.798381 +AZURE,southeastasia,Standard_E32_v3,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:46:20.488306 +AZURE,southeastasia,Standard_E32_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:20.488312 +AZURE,southeastasia,Standard_E32_v3,spot,NA,0.473088,USD,Azure Retail Prices API,2025-12-18T04:46:18.799607 +AZURE,southeastasia,Standard_E32a_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:18.799496 +AZURE,southeastasia,Standard_E32a_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:20.490159 +AZURE,southeastasia,Standard_E32a_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:20.490164 +AZURE,southeastasia,Standard_E32a_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:18.798963 +AZURE,southeastasia,Standard_E32ads_v5,on_demand,NA,2.544,USD,Azure Retail Prices API,2025-12-18T04:46:18.798046 +AZURE,southeastasia,Standard_E32ads_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:20.487911 +AZURE,southeastasia,Standard_E32ads_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:20.487914 +AZURE,southeastasia,Standard_E32ads_v5,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:18.799218 +AZURE,southeastasia,Standard_E32ads_v6,on_demand,NA,2.915,USD,Azure Retail Prices API,2025-12-18T04:46:18.798023 +AZURE,southeastasia,Standard_E32ads_v6,reserved_1y,NA,1.719977,USD,Azure Retail Prices API,2025-12-18T04:46:20.487870 +AZURE,southeastasia,Standard_E32ads_v6,reserved_3y,NA,1.107763,USD,Azure Retail Prices API,2025-12-18T04:46:20.487874 +AZURE,southeastasia,Standard_E32ads_v6,spot,NA,0.538692,USD,Azure Retail Prices API,2025-12-18T04:46:18.798011 +AZURE,southeastasia,Standard_E32as_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:18.797873 +AZURE,southeastasia,Standard_E32as_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:20.487691 +AZURE,southeastasia,Standard_E32as_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:20.487694 +AZURE,southeastasia,Standard_E32as_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:18.798346 +AZURE,southeastasia,Standard_E32as_v5,on_demand,NA,2.176,USD,Azure Retail Prices API,2025-12-18T04:46:18.798031 +AZURE,southeastasia,Standard_E32as_v5,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:46:20.487891 +AZURE,southeastasia,Standard_E32as_v5,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:46:20.487895 +AZURE,southeastasia,Standard_E32as_v5,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:46:18.798060 +AZURE,southeastasia,Standard_E32d_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:18.798645 +AZURE,southeastasia,Standard_E32d_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:20.488739 +AZURE,southeastasia,Standard_E32d_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:20.488744 +AZURE,southeastasia,Standard_E32d_v4,spot,NA,0.516154,USD,Azure Retail Prices API,2025-12-18T04:46:18.797766 +AZURE,southeastasia,Standard_E32ds_v4,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:18.798739 +AZURE,southeastasia,Standard_E32ds_v4,reserved_1y,NA,1.636986,USD,Azure Retail Prices API,2025-12-18T04:46:20.488916 +AZURE,southeastasia,Standard_E32ds_v4,reserved_3y,NA,1.046766,USD,Azure Retail Prices API,2025-12-18T04:46:20.488920 +AZURE,southeastasia,Standard_E32ds_v4,spot,NA,0.516154,USD,Azure Retail Prices API,2025-12-18T04:46:18.798651 +AZURE,southeastasia,Standard_E32ds_v5,on_demand,NA,2.784,USD,Azure Retail Prices API,2025-12-18T04:46:18.797763 +AZURE,southeastasia,Standard_E32ds_v5,reserved_1y,NA,1.64258,USD,Azure Retail Prices API,2025-12-18T04:46:20.487610 +AZURE,southeastasia,Standard_E32ds_v5,reserved_3y,NA,1.057915,USD,Azure Retail Prices API,2025-12-18T04:46:20.487615 +AZURE,southeastasia,Standard_E32ds_v5,spot,NA,0.516154,USD,Azure Retail Prices API,2025-12-18T04:46:18.798248 +AZURE,southeastasia,Standard_E32ds_v6,on_demand,NA,3.156,USD,Azure Retail Prices API,2025-12-18T04:46:18.798066 +AZURE,southeastasia,Standard_E32ds_v6,reserved_1y,NA,1.956849,USD,Azure Retail Prices API,2025-12-18T04:46:20.487937 +AZURE,southeastasia,Standard_E32ds_v6,reserved_3y,NA,1.230898,USD,Azure Retail Prices API,2025-12-18T04:46:20.487940 +AZURE,southeastasia,Standard_E32ds_v6,spot,NA,0.583229,USD,Azure Retail Prices API,2025-12-18T04:46:18.799525 +AZURE,southeastasia,Standard_E32pds_v6,on_demand,NA,2.333,USD,Azure Retail Prices API,2025-12-18T04:46:18.799283 +AZURE,southeastasia,Standard_E32pds_v6,reserved_1y,NA,1.37637,USD,Azure Retail Prices API,2025-12-18T04:46:20.489872 +AZURE,southeastasia,Standard_E32pds_v6,reserved_3y,NA,0.886454,USD,Azure Retail Prices API,2025-12-18T04:46:20.489877 +AZURE,southeastasia,Standard_E32pds_v6,spot,NA,0.431138,USD,Azure Retail Prices API,2025-12-18T04:46:18.799035 +AZURE,southeastasia,Standard_E32ps_v6,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:46:18.798008 +AZURE,southeastasia,Standard_E32ps_v6,reserved_1y,NA,1.085616,USD,Azure Retail Prices API,2025-12-18T04:46:20.487828 +AZURE,southeastasia,Standard_E32ps_v6,reserved_3y,NA,0.699201,USD,Azure Retail Prices API,2025-12-18T04:46:20.487831 +AZURE,southeastasia,Standard_E32ps_v6,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:46:18.798106 +AZURE,southeastasia,Standard_E32s_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:46:18.799267 +AZURE,southeastasia,Standard_E32s_v3,reserved_1y,NA,1.505251,USD,Azure Retail Prices API,2025-12-18T04:46:20.489841 +AZURE,southeastasia,Standard_E32s_v3,reserved_3y,NA,0.962557,USD,Azure Retail Prices API,2025-12-18T04:46:20.489847 +AZURE,southeastasia,Standard_E32s_v3,spot,NA,0.473088,USD,Azure Retail Prices API,2025-12-18T04:46:18.797734 +AZURE,southeastasia,Standard_E32s_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:18.798183 +AZURE,southeastasia,Standard_E32s_v4,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:20.488061 +AZURE,southeastasia,Standard_E32s_v4,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:20.488067 +AZURE,southeastasia,Standard_E32s_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:18.798872 +AZURE,southeastasia,Standard_E32s_v5,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:18.798393 +AZURE,southeastasia,Standard_E32s_v5,reserved_1y,NA,1.410616,USD,Azure Retail Prices API,2025-12-18T04:46:20.488366 +AZURE,southeastasia,Standard_E32s_v5,reserved_3y,NA,0.899848,USD,Azure Retail Prices API,2025-12-18T04:46:20.488371 +AZURE,southeastasia,Standard_E32s_v5,spot,NA,0.450893,USD,Azure Retail Prices API,2025-12-18T04:46:18.799209 +AZURE,southeastasia,Standard_E48a_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:18.797885 +AZURE,southeastasia,Standard_E48a_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:20.487710 +AZURE,southeastasia,Standard_E48a_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:20.487713 +AZURE,southeastasia,Standard_E48a_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:18.799563 +AZURE,southeastasia,Standard_E48ads_v5,on_demand,NA,6.024,USD,Azure Retail Prices API,2025-12-18T04:46:18.798098 +AZURE,southeastasia,Standard_E48ads_v5,reserved_1y,NA,2.251484,USD,Azure Retail Prices API,2025-12-18T04:46:20.488854 +AZURE,southeastasia,Standard_E48ads_v5,reserved_3y,NA,1.450076,USD,Azure Retail Prices API,2025-12-18T04:46:20.488859 +AZURE,southeastasia,Standard_E48ads_v5,spot,NA,0.705197,USD,Azure Retail Prices API,2025-12-18T04:46:18.798539 +AZURE,southeastasia,Standard_E48ads_v6,on_demand,NA,4.373,USD,Azure Retail Prices API,2025-12-18T04:46:18.798878 +AZURE,southeastasia,Standard_E48ads_v6,reserved_1y,NA,2.579909,USD,Azure Retail Prices API,2025-12-18T04:46:20.489157 +AZURE,southeastasia,Standard_E48ads_v6,reserved_3y,NA,1.661682,USD,Azure Retail Prices API,2025-12-18T04:46:20.489162 +AZURE,southeastasia,Standard_E48ads_v6,spot,NA,0.80813,USD,Azure Retail Prices API,2025-12-18T04:46:18.797800 +AZURE,southeastasia,Standard_E48as_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:18.797760 +AZURE,southeastasia,Standard_E48as_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:20.487599 +AZURE,southeastasia,Standard_E48as_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:20.487604 +AZURE,southeastasia,Standard_E48as_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:18.798258 +AZURE,southeastasia,Standard_E48as_v5,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:46:18.798925 +AZURE,southeastasia,Standard_E48as_v5,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:20.490200 +AZURE,southeastasia,Standard_E48as_v5,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:46:20.490205 +AZURE,southeastasia,Standard_E48as_v5,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:18.798308 +AZURE,southeastasia,Standard_E48d_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:18.798679 +AZURE,southeastasia,Standard_E48d_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:20.488811 +AZURE,southeastasia,Standard_E48d_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:20.488816 +AZURE,southeastasia,Standard_E48d_v4,spot,NA,0.77423,USD,Azure Retail Prices API,2025-12-18T04:46:18.799649 +AZURE,southeastasia,Standard_E48ds_v4,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:18.798025 +AZURE,southeastasia,Standard_E48ds_v4,reserved_1y,NA,2.455479,USD,Azure Retail Prices API,2025-12-18T04:46:20.487877 +AZURE,southeastasia,Standard_E48ds_v4,reserved_3y,NA,1.570167,USD,Azure Retail Prices API,2025-12-18T04:46:20.487881 +AZURE,southeastasia,Standard_E48ds_v4,spot,NA,0.77423,USD,Azure Retail Prices API,2025-12-18T04:46:18.798842 +AZURE,southeastasia,Standard_E48ds_v5,on_demand,NA,4.176,USD,Azure Retail Prices API,2025-12-18T04:46:18.799147 +AZURE,southeastasia,Standard_E48ds_v5,reserved_1y,NA,2.463813,USD,Azure Retail Prices API,2025-12-18T04:46:20.489664 +AZURE,southeastasia,Standard_E48ds_v5,reserved_3y,NA,1.586872,USD,Azure Retail Prices API,2025-12-18T04:46:20.489669 +AZURE,southeastasia,Standard_E48ds_v5,spot,NA,0.77423,USD,Azure Retail Prices API,2025-12-18T04:46:18.798647 +AZURE,southeastasia,Standard_E48ds_v6,on_demand,NA,4.734,USD,Azure Retail Prices API,2025-12-18T04:46:18.798414 +AZURE,southeastasia,Standard_E48ds_v6,reserved_1y,NA,2.935274,USD,Azure Retail Prices API,2025-12-18T04:46:20.488406 +AZURE,southeastasia,Standard_E48ds_v6,reserved_3y,NA,1.846347,USD,Azure Retail Prices API,2025-12-18T04:46:20.488411 +AZURE,southeastasia,Standard_E48ds_v6,spot,NA,0.874843,USD,Azure Retail Prices API,2025-12-18T04:46:18.798614 +AZURE,southeastasia,Standard_E48pds_v6,on_demand,NA,3.499,USD,Azure Retail Prices API,2025-12-18T04:46:18.799113 +AZURE,southeastasia,Standard_E48pds_v6,reserved_1y,NA,2.064498,USD,Azure Retail Prices API,2025-12-18T04:46:20.489591 +AZURE,southeastasia,Standard_E48pds_v6,reserved_3y,NA,1.32968,USD,Azure Retail Prices API,2025-12-18T04:46:20.489596 +AZURE,southeastasia,Standard_E48pds_v6,spot,NA,0.646615,USD,Azure Retail Prices API,2025-12-18T04:46:18.799486 +AZURE,southeastasia,Standard_E48ps_v6,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:46:18.798340 +AZURE,southeastasia,Standard_E48ps_v6,reserved_1y,NA,1.628425,USD,Azure Retail Prices API,2025-12-18T04:46:20.488243 +AZURE,southeastasia,Standard_E48ps_v6,reserved_3y,NA,1.048782,USD,Azure Retail Prices API,2025-12-18T04:46:20.488249 +AZURE,southeastasia,Standard_E48ps_v6,spot,NA,0.510048,USD,Azure Retail Prices API,2025-12-18T04:46:18.798290 +AZURE,southeastasia,Standard_E48s_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:18.799191 +AZURE,southeastasia,Standard_E48s_v4,reserved_1y,NA,2.144977,USD,Azure Retail Prices API,2025-12-18T04:46:20.489748 +AZURE,southeastasia,Standard_E48s_v4,reserved_3y,NA,1.371651,USD,Azure Retail Prices API,2025-12-18T04:46:20.489753 +AZURE,southeastasia,Standard_E48s_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:18.799176 +AZURE,southeastasia,Standard_E48s_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:18.798697 +AZURE,southeastasia,Standard_E48s_v5,reserved_1y,NA,2.115868,USD,Azure Retail Prices API,2025-12-18T04:46:20.488865 +AZURE,southeastasia,Standard_E48s_v5,reserved_3y,NA,1.349772,USD,Azure Retail Prices API,2025-12-18T04:46:20.488870 +AZURE,southeastasia,Standard_E48s_v5,spot,NA,0.676339,USD,Azure Retail Prices API,2025-12-18T04:46:18.799637 +AZURE,southeastasia,Standard_E4_v3,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:46:18.799466 +AZURE,southeastasia,Standard_E4_v3,reserved_1y,NA,0.188128,USD,Azure Retail Prices API,2025-12-18T04:46:20.490112 +AZURE,southeastasia,Standard_E4_v3,reserved_3y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:46:20.490117 +AZURE,southeastasia,Standard_E4_v3,spot,NA,0.059136,USD,Azure Retail Prices API,2025-12-18T04:46:18.797999 +AZURE,southeastasia,Standard_E4a_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:18.798691 +AZURE,southeastasia,Standard_E4a_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:20.488844 +AZURE,southeastasia,Standard_E4a_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:20.488849 +AZURE,southeastasia,Standard_E4a_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:18.797829 +AZURE,southeastasia,Standard_E4ads_v5,on_demand,NA,0.502,USD,Azure Retail Prices API,2025-12-18T04:46:18.799273 +AZURE,southeastasia,Standard_E4ads_v5,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:46:20.490061 +AZURE,southeastasia,Standard_E4ads_v5,reserved_3y,NA,0.120852,USD,Azure Retail Prices API,2025-12-18T04:46:20.490066 +AZURE,southeastasia,Standard_E4ads_v5,spot,NA,0.058766,USD,Azure Retail Prices API,2025-12-18T04:46:18.799161 +AZURE,southeastasia,Standard_E4ads_v6,on_demand,NA,0.364,USD,Azure Retail Prices API,2025-12-18T04:46:18.798642 +AZURE,southeastasia,Standard_E4ads_v6,reserved_1y,NA,0.214954,USD,Azure Retail Prices API,2025-12-18T04:46:20.488730 +AZURE,southeastasia,Standard_E4ads_v6,reserved_3y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:20.488735 +AZURE,southeastasia,Standard_E4ads_v6,spot,NA,0.067267,USD,Azure Retail Prices API,2025-12-18T04:46:18.798776 +AZURE,southeastasia,Standard_E4as_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:18.798725 +AZURE,southeastasia,Standard_E4as_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:20.488895 +AZURE,southeastasia,Standard_E4as_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:20.488900 +AZURE,southeastasia,Standard_E4as_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:18.799491 +AZURE,southeastasia,Standard_E4as_v5,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:46:18.798893 +AZURE,southeastasia,Standard_E4as_v5,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:46:20.489582 +AZURE,southeastasia,Standard_E4as_v5,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:46:20.489586 +AZURE,southeastasia,Standard_E4as_v5,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:46:18.799276 +AZURE,southeastasia,Standard_E4d_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:18.799460 +AZURE,southeastasia,Standard_E4d_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:20.490093 +AZURE,southeastasia,Standard_E4d_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:20.490098 +AZURE,southeastasia,Standard_E4d_v4,spot,NA,0.064519,USD,Azure Retail Prices API,2025-12-18T04:46:18.797780 +AZURE,southeastasia,Standard_E4ds_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:18.798857 +AZURE,southeastasia,Standard_E4ds_v4,reserved_1y,NA,0.20468,USD,Azure Retail Prices API,2025-12-18T04:46:20.489104 +AZURE,southeastasia,Standard_E4ds_v4,reserved_3y,NA,0.13086,USD,Azure Retail Prices API,2025-12-18T04:46:20.489109 +AZURE,southeastasia,Standard_E4ds_v4,spot,NA,0.064519,USD,Azure Retail Prices API,2025-12-18T04:46:18.798954 +AZURE,southeastasia,Standard_E4ds_v5,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:18.798092 +AZURE,southeastasia,Standard_E4ds_v5,reserved_1y,NA,0.205365,USD,Azure Retail Prices API,2025-12-18T04:46:20.487963 +AZURE,southeastasia,Standard_E4ds_v5,reserved_3y,NA,0.13223,USD,Azure Retail Prices API,2025-12-18T04:46:20.487966 +AZURE,southeastasia,Standard_E4ds_v5,spot,NA,0.064519,USD,Azure Retail Prices API,2025-12-18T04:46:18.797861 +AZURE,southeastasia,Standard_E4ds_v6,on_demand,NA,0.395,USD,Azure Retail Prices API,2025-12-18T04:46:18.798567 +AZURE,southeastasia,Standard_E4ds_v6,reserved_1y,NA,0.244635,USD,Azure Retail Prices API,2025-12-18T04:46:20.488610 +AZURE,southeastasia,Standard_E4ds_v6,reserved_3y,NA,0.153881,USD,Azure Retail Prices API,2025-12-18T04:46:20.488615 +AZURE,southeastasia,Standard_E4ds_v6,spot,NA,0.072996,USD,Azure Retail Prices API,2025-12-18T04:46:18.799624 +AZURE,southeastasia,Standard_E4pds_v6,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:18.799321 +AZURE,southeastasia,Standard_E4pds_v6,reserved_1y,NA,0.172032,USD,Azure Retail Prices API,2025-12-18T04:46:20.489930 +AZURE,southeastasia,Standard_E4pds_v6,reserved_3y,NA,0.110807,USD,Azure Retail Prices API,2025-12-18T04:46:20.489935 +AZURE,southeastasia,Standard_E4pds_v6,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:46:18.798896 +AZURE,southeastasia,Standard_E4ps_v6,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:46:18.798464 +AZURE,southeastasia,Standard_E4ps_v6,reserved_1y,NA,0.135731,USD,Azure Retail Prices API,2025-12-18T04:46:20.488445 +AZURE,southeastasia,Standard_E4ps_v6,reserved_3y,NA,0.087405,USD,Azure Retail Prices API,2025-12-18T04:46:20.488450 +AZURE,southeastasia,Standard_E4ps_v6,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:46:18.799116 +AZURE,southeastasia,Standard_E4s_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:18.799057 +AZURE,southeastasia,Standard_E4s_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:20.489552 +AZURE,southeastasia,Standard_E4s_v4,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:20.489557 +AZURE,southeastasia,Standard_E4s_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:18.797723 +AZURE,southeastasia,Standard_E4s_v5,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:18.799330 +AZURE,southeastasia,Standard_E4s_v5,reserved_1y,NA,0.17637,USD,Azure Retail Prices API,2025-12-18T04:46:20.489951 +AZURE,southeastasia,Standard_E4s_v5,reserved_3y,NA,0.112481,USD,Azure Retail Prices API,2025-12-18T04:46:20.489956 +AZURE,southeastasia,Standard_E4s_v5,spot,NA,0.056362,USD,Azure Retail Prices API,2025-12-18T04:46:18.799173 +AZURE,southeastasia,Standard_E64_v3,on_demand,NA,4.609,USD,Azure Retail Prices API,2025-12-18T04:46:18.797746 +AZURE,southeastasia,Standard_E64_v3,reserved_1y,NA,2.837443,USD,Azure Retail Prices API,2025-12-18T04:46:20.487589 +AZURE,southeastasia,Standard_E64_v3,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:46:20.487594 +AZURE,southeastasia,Standard_E64_v3,spot,NA,0.851743,USD,Azure Retail Prices API,2025-12-18T04:46:18.798128 +AZURE,southeastasia,Standard_E64a_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:18.799164 +AZURE,southeastasia,Standard_E64a_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:20.489707 +AZURE,southeastasia,Standard_E64a_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:20.489713 +AZURE,southeastasia,Standard_E64a_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:18.797967 +AZURE,southeastasia,Standard_E64ads_v5,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:18.798666 +AZURE,southeastasia,Standard_E64ads_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:20.488779 +AZURE,southeastasia,Standard_E64ads_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:20.488784 +AZURE,southeastasia,Standard_E64ads_v5,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:18.798299 +AZURE,southeastasia,Standard_E64ads_v6,on_demand,NA,5.83,USD,Azure Retail Prices API,2025-12-18T04:46:18.798482 +AZURE,southeastasia,Standard_E64ads_v6,reserved_1y,NA,3.439954,USD,Azure Retail Prices API,2025-12-18T04:46:20.488476 +AZURE,southeastasia,Standard_E64ads_v6,reserved_3y,NA,2.215563,USD,Azure Retail Prices API,2025-12-18T04:46:20.488481 +AZURE,southeastasia,Standard_E64ads_v6,spot,NA,1.077384,USD,Azure Retail Prices API,2025-12-18T04:46:18.798561 +AZURE,southeastasia,Standard_E64as_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:18.798782 +AZURE,southeastasia,Standard_E64as_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:20.488993 +AZURE,southeastasia,Standard_E64as_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:20.488999 +AZURE,southeastasia,Standard_E64as_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:18.798919 +AZURE,southeastasia,Standard_E64as_v5,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:46:18.798384 +AZURE,southeastasia,Standard_E64as_v5,reserved_1y,NA,2.567694,USD,Azure Retail Prices API,2025-12-18T04:46:20.488317 +AZURE,southeastasia,Standard_E64as_v5,reserved_3y,NA,1.653767,USD,Azure Retail Prices API,2025-12-18T04:46:20.488322 +AZURE,southeastasia,Standard_E64as_v5,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:46:18.798200 +AZURE,southeastasia,Standard_E64d_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:18.798137 +AZURE,southeastasia,Standard_E64d_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:20.488031 +AZURE,southeastasia,Standard_E64d_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:20.488036 +AZURE,southeastasia,Standard_E64d_v4,spot,NA,1.032307,USD,Azure Retail Prices API,2025-12-18T04:46:18.798931 +AZURE,southeastasia,Standard_E64ds_v4,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:18.798812 +AZURE,southeastasia,Standard_E64ds_v4,reserved_1y,NA,3.273973,USD,Azure Retail Prices API,2025-12-18T04:46:20.489043 +AZURE,southeastasia,Standard_E64ds_v4,reserved_3y,NA,2.093569,USD,Azure Retail Prices API,2025-12-18T04:46:20.489049 +AZURE,southeastasia,Standard_E64ds_v4,spot,NA,1.032307,USD,Azure Retail Prices API,2025-12-18T04:46:18.798525 +AZURE,southeastasia,Standard_E64ds_v5,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:18.798663 +AZURE,southeastasia,Standard_E64ds_v5,reserved_1y,NA,3.28516,USD,Azure Retail Prices API,2025-12-18T04:46:20.488769 +AZURE,southeastasia,Standard_E64ds_v5,reserved_3y,NA,2.11583,USD,Azure Retail Prices API,2025-12-18T04:46:20.488774 +AZURE,southeastasia,Standard_E64ds_v5,spot,NA,1.032307,USD,Azure Retail Prices API,2025-12-18T04:46:18.799528 +AZURE,southeastasia,Standard_E64ds_v6,on_demand,NA,6.312,USD,Azure Retail Prices API,2025-12-18T04:46:18.799411 +AZURE,southeastasia,Standard_E64ds_v6,reserved_1y,NA,3.913584,USD,Azure Retail Prices API,2025-12-18T04:46:20.490033 +AZURE,southeastasia,Standard_E64ds_v6,reserved_3y,NA,2.461796,USD,Azure Retail Prices API,2025-12-18T04:46:20.490038 +AZURE,southeastasia,Standard_E64ds_v6,spot,NA,1.166458,USD,Azure Retail Prices API,2025-12-18T04:46:18.798353 +AZURE,southeastasia,Standard_E64pds_v6,on_demand,NA,4.666,USD,Azure Retail Prices API,2025-12-18T04:46:18.797824 +AZURE,southeastasia,Standard_E64pds_v6,reserved_1y,NA,2.75274,USD,Azure Retail Prices API,2025-12-18T04:46:20.487658 +AZURE,southeastasia,Standard_E64pds_v6,reserved_3y,NA,1.772945,USD,Azure Retail Prices API,2025-12-18T04:46:20.487661 +AZURE,southeastasia,Standard_E64pds_v6,spot,NA,0.862277,USD,Azure Retail Prices API,2025-12-18T04:46:18.797855 +AZURE,southeastasia,Standard_E64ps_v6,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:46:18.798833 +AZURE,southeastasia,Standard_E64ps_v6,reserved_1y,NA,2.171233,USD,Azure Retail Prices API,2025-12-18T04:46:20.489054 +AZURE,southeastasia,Standard_E64ps_v6,reserved_3y,NA,1.398402,USD,Azure Retail Prices API,2025-12-18T04:46:20.489059 +AZURE,southeastasia,Standard_E64ps_v6,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:46:18.797752 +AZURE,southeastasia,Standard_E64s_v3,on_demand,NA,4.609,USD,Azure Retail Prices API,2025-12-18T04:46:18.798948 +AZURE,southeastasia,Standard_E64s_v3,reserved_1y,NA,2.837443,USD,Azure Retail Prices API,2025-12-18T04:46:20.489254 +AZURE,southeastasia,Standard_E64s_v3,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:46:20.489258 +AZURE,southeastasia,Standard_E64s_v3,spot,NA,0.851743,USD,Azure Retail Prices API,2025-12-18T04:46:18.798890 +AZURE,southeastasia,Standard_E64s_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:18.798125 +AZURE,southeastasia,Standard_E64s_v4,reserved_1y,NA,2.860046,USD,Azure Retail Prices API,2025-12-18T04:46:20.488011 +AZURE,southeastasia,Standard_E64s_v4,reserved_3y,NA,1.828881,USD,Azure Retail Prices API,2025-12-18T04:46:20.488016 +AZURE,southeastasia,Standard_E64s_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:18.798112 +AZURE,southeastasia,Standard_E64s_v5,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:18.799033 +AZURE,southeastasia,Standard_E64s_v5,reserved_1y,NA,2.821119,USD,Azure Retail Prices API,2025-12-18T04:46:20.489498 +AZURE,southeastasia,Standard_E64s_v5,reserved_3y,NA,1.799696,USD,Azure Retail Prices API,2025-12-18T04:46:20.489503 +AZURE,southeastasia,Standard_E64s_v5,spot,NA,0.901786,USD,Azure Retail Prices API,2025-12-18T04:46:18.797749 +AZURE,southeastasia,Standard_E80ids_v4,on_demand,NA,6.96,USD,Azure Retail Prices API,2025-12-18T04:46:18.799566 +AZURE,southeastasia,Standard_E80ids_v4,reserved_1y,NA,4.093607,USD,Azure Retail Prices API,2025-12-18T04:46:20.490279 +AZURE,southeastasia,Standard_E80ids_v4,reserved_3y,NA,2.617199,USD,Azure Retail Prices API,2025-12-18T04:46:20.490284 +AZURE,southeastasia,Standard_E80ids_v4,spot,NA,1.290384,USD,Azure Retail Prices API,2025-12-18T04:46:18.799110 +AZURE,southeastasia,Standard_E80is_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:46:18.798592 +AZURE,southeastasia,Standard_E80is_v4,reserved_1y,NA,3.575342,USD,Azure Retail Prices API,2025-12-18T04:46:20.488661 +AZURE,southeastasia,Standard_E80is_v4,reserved_3y,NA,2.286149,USD,Azure Retail Prices API,2025-12-18T04:46:20.488666 +AZURE,southeastasia,Standard_E80is_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:46:18.798487 +AZURE,southeastasia,Standard_E8_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:46:18.799221 +AZURE,southeastasia,Standard_E8_v3,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:46:20.489791 +AZURE,southeastasia,Standard_E8_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:20.489796 +AZURE,southeastasia,Standard_E8_v3,spot,NA,0.118272,USD,Azure Retail Prices API,2025-12-18T04:46:18.798821 +AZURE,southeastasia,Standard_E8a_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:18.798558 +AZURE,southeastasia,Standard_E8a_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:20.488589 +AZURE,southeastasia,Standard_E8a_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:20.488595 +AZURE,southeastasia,Standard_E8a_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:18.797842 +AZURE,southeastasia,Standard_E8ads_v5,on_demand,NA,1.004,USD,Azure Retail Prices API,2025-12-18T04:46:18.797904 +AZURE,southeastasia,Standard_E8ads_v5,reserved_1y,NA,0.375228,USD,Azure Retail Prices API,2025-12-18T04:46:20.489719 +AZURE,southeastasia,Standard_E8ads_v5,reserved_3y,NA,0.241667,USD,Azure Retail Prices API,2025-12-18T04:46:20.489724 +AZURE,southeastasia,Standard_E8ads_v5,spot,NA,0.117533,USD,Azure Retail Prices API,2025-12-18T04:46:18.798682 +AZURE,southeastasia,Standard_E8ads_v6,on_demand,NA,0.729,USD,Azure Retail Prices API,2025-12-18T04:46:18.798411 +AZURE,southeastasia,Standard_E8ads_v6,reserved_1y,NA,0.430023,USD,Azure Retail Prices API,2025-12-18T04:46:20.488396 +AZURE,southeastasia,Standard_E8ads_v6,reserved_3y,NA,0.276941,USD,Azure Retail Prices API,2025-12-18T04:46:20.488402 +AZURE,southeastasia,Standard_E8ads_v6,spot,NA,0.134719,USD,Azure Retail Prices API,2025-12-18T04:46:18.799248 +AZURE,southeastasia,Standard_E8as_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:18.798002 +AZURE,southeastasia,Standard_E8as_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:20.487821 +AZURE,southeastasia,Standard_E8as_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:20.487824 +AZURE,southeastasia,Standard_E8as_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:18.798657 +AZURE,southeastasia,Standard_E8as_v5,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:46:18.797935 +AZURE,southeastasia,Standard_E8as_v5,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:46:20.489273 +AZURE,southeastasia,Standard_E8as_v5,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:46:20.489279 +AZURE,southeastasia,Standard_E8as_v5,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:46:18.799106 +AZURE,southeastasia,Standard_E8d_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:18.798216 +AZURE,southeastasia,Standard_E8d_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:20.488132 +AZURE,southeastasia,Standard_E8d_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:20.488136 +AZURE,southeastasia,Standard_E8d_v4,spot,NA,0.129038,USD,Azure Retail Prices API,2025-12-18T04:46:18.797943 +AZURE,southeastasia,Standard_E8ds_v4,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:18.799119 +AZURE,southeastasia,Standard_E8ds_v4,reserved_1y,NA,0.409247,USD,Azure Retail Prices API,2025-12-18T04:46:20.489601 +AZURE,southeastasia,Standard_E8ds_v4,reserved_3y,NA,0.261682,USD,Azure Retail Prices API,2025-12-18T04:46:20.489606 +AZURE,southeastasia,Standard_E8ds_v4,spot,NA,0.129038,USD,Azure Retail Prices API,2025-12-18T04:46:18.798528 +AZURE,southeastasia,Standard_E8ds_v5,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:18.798390 +AZURE,southeastasia,Standard_E8ds_v5,reserved_1y,NA,0.410616,USD,Azure Retail Prices API,2025-12-18T04:46:20.488357 +AZURE,southeastasia,Standard_E8ds_v5,reserved_3y,NA,0.264498,USD,Azure Retail Prices API,2025-12-18T04:46:20.488362 +AZURE,southeastasia,Standard_E8ds_v5,spot,NA,0.129038,USD,Azure Retail Prices API,2025-12-18T04:46:18.798766 +AZURE,southeastasia,Standard_E8ds_v6,on_demand,NA,0.789,USD,Azure Retail Prices API,2025-12-18T04:46:18.799144 +AZURE,southeastasia,Standard_E8ds_v6,reserved_1y,NA,0.489155,USD,Azure Retail Prices API,2025-12-18T04:46:20.489654 +AZURE,southeastasia,Standard_E8ds_v6,reserved_3y,NA,0.307725,USD,Azure Retail Prices API,2025-12-18T04:46:20.489659 +AZURE,southeastasia,Standard_E8ds_v6,spot,NA,0.145807,USD,Azure Retail Prices API,2025-12-18T04:46:18.799425 +AZURE,southeastasia,Standard_E8pds_v6,on_demand,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:46:18.799152 +AZURE,southeastasia,Standard_E8pds_v6,reserved_1y,NA,0.344064,USD,Azure Retail Prices API,2025-12-18T04:46:20.489684 +AZURE,southeastasia,Standard_E8pds_v6,reserved_3y,NA,0.221613,USD,Azure Retail Prices API,2025-12-18T04:46:20.489690 +AZURE,southeastasia,Standard_E8pds_v6,spot,NA,0.107738,USD,Azure Retail Prices API,2025-12-18T04:46:18.797690 +AZURE,southeastasia,Standard_E8ps_v6,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:46:18.798574 +AZURE,southeastasia,Standard_E8ps_v6,reserved_1y,NA,0.271347,USD,Azure Retail Prices API,2025-12-18T04:46:20.488630 +AZURE,southeastasia,Standard_E8ps_v6,reserved_3y,NA,0.17481,USD,Azure Retail Prices API,2025-12-18T04:46:20.488635 +AZURE,southeastasia,Standard_E8ps_v6,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:46:18.797707 +AZURE,southeastasia,Standard_E8s_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:46:18.798951 +AZURE,southeastasia,Standard_E8s_v3,reserved_1y,NA,0.37637,USD,Azure Retail Prices API,2025-12-18T04:46:20.489264 +AZURE,southeastasia,Standard_E8s_v3,reserved_3y,NA,0.240639,USD,Azure Retail Prices API,2025-12-18T04:46:20.489269 +AZURE,southeastasia,Standard_E8s_v3,spot,NA,0.118272,USD,Azure Retail Prices API,2025-12-18T04:46:18.799304 +AZURE,southeastasia,Standard_E8s_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:18.799230 +AZURE,southeastasia,Standard_E8s_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:20.489811 +AZURE,southeastasia,Standard_E8s_v4,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:20.489816 +AZURE,southeastasia,Standard_E8s_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:18.799185 +AZURE,southeastasia,Standard_E8s_v5,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:18.798969 +AZURE,southeastasia,Standard_E8s_v5,reserved_1y,NA,0.352626,USD,Azure Retail Prices API,2025-12-18T04:46:20.489303 +AZURE,southeastasia,Standard_E8s_v5,reserved_3y,NA,0.224962,USD,Azure Retail Prices API,2025-12-18T04:46:20.489308 +AZURE,southeastasia,Standard_E8s_v5,spot,NA,0.112723,USD,Azure Retail Prices API,2025-12-18T04:46:18.798881 +AZURE,southeastasia,Standard_E96a_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:18.798238 +AZURE,southeastasia,Standard_E96a_v4,reserved_1y,NA,4.290068,USD,Azure Retail Prices API,2025-12-18T04:46:20.488160 +AZURE,southeastasia,Standard_E96a_v4,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:20.488166 +AZURE,southeastasia,Standard_E96a_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:18.799359 +AZURE,southeastasia,Standard_E96ads_v5,on_demand,NA,12.048,USD,Azure Retail Prices API,2025-12-18T04:46:18.799235 +AZURE,southeastasia,Standard_E96ads_v5,reserved_1y,NA,4.502854,USD,Azure Retail Prices API,2025-12-18T04:46:20.490379 +AZURE,southeastasia,Standard_E96ads_v5,reserved_3y,NA,2.900152,USD,Azure Retail Prices API,2025-12-18T04:46:20.490384 +AZURE,southeastasia,Standard_E96ads_v5,spot,NA,1.410394,USD,Azure Retail Prices API,2025-12-18T04:46:18.798453 +AZURE,southeastasia,Standard_E96ads_v6,on_demand,NA,8.746,USD,Azure Retail Prices API,2025-12-18T04:46:18.799586 +AZURE,southeastasia,Standard_E96ads_v6,reserved_1y,NA,5.159932,USD,Azure Retail Prices API,2025-12-18T04:46:20.490338 +AZURE,southeastasia,Standard_E96ads_v6,reserved_3y,NA,3.323326,USD,Azure Retail Prices API,2025-12-18T04:46:20.490344 +AZURE,southeastasia,Standard_E96ads_v6,spot,NA,1.616261,USD,Azure Retail Prices API,2025-12-18T04:46:18.798602 +AZURE,southeastasia,Standard_E96as_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:18.799050 +AZURE,southeastasia,Standard_E96as_v4,reserved_1y,NA,4.290068,USD,Azure Retail Prices API,2025-12-18T04:46:20.489518 +AZURE,southeastasia,Standard_E96as_v4,reserved_3y,NA,2.743303,USD,Azure Retail Prices API,2025-12-18T04:46:20.489522 +AZURE,southeastasia,Standard_E96as_v4,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:18.797991 +AZURE,southeastasia,Standard_E96as_v5,on_demand,NA,6.528,USD,Azure Retail Prices API,2025-12-18T04:46:18.797930 +AZURE,southeastasia,Standard_E96as_v5,reserved_1y,NA,3.851484,USD,Azure Retail Prices API,2025-12-18T04:46:20.487762 +AZURE,southeastasia,Standard_E96as_v5,reserved_3y,NA,2.480632,USD,Azure Retail Prices API,2025-12-18T04:46:20.487765 +AZURE,southeastasia,Standard_E96as_v5,spot,NA,1.206374,USD,Azure Retail Prices API,2025-12-18T04:46:18.798580 +AZURE,southeastasia,Standard_E96ds_v5,on_demand,NA,8.352,USD,Azure Retail Prices API,2025-12-18T04:46:18.799348 +AZURE,southeastasia,Standard_E96ds_v5,reserved_1y,NA,4.927626,USD,Azure Retail Prices API,2025-12-18T04:46:20.489983 +AZURE,southeastasia,Standard_E96ds_v5,reserved_3y,NA,3.173744,USD,Azure Retail Prices API,2025-12-18T04:46:20.489988 +AZURE,southeastasia,Standard_E96ds_v5,spot,NA,1.548461,USD,Azure Retail Prices API,2025-12-18T04:46:18.799312 +AZURE,southeastasia,Standard_E96ds_v6,on_demand,NA,9.468,USD,Azure Retail Prices API,2025-12-18T04:46:18.798685 +AZURE,southeastasia,Standard_E96ds_v6,reserved_1y,NA,5.870434,USD,Azure Retail Prices API,2025-12-18T04:46:20.488822 +AZURE,southeastasia,Standard_E96ds_v6,reserved_3y,NA,3.692694,USD,Azure Retail Prices API,2025-12-18T04:46:20.488827 +AZURE,southeastasia,Standard_E96ds_v6,spot,NA,1.749686,USD,Azure Retail Prices API,2025-12-18T04:46:18.798372 +AZURE,southeastasia,Standard_E96pds_v6,on_demand,NA,6.998,USD,Azure Retail Prices API,2025-12-18T04:46:18.797996 +AZURE,southeastasia,Standard_E96pds_v6,reserved_1y,NA,4.12911,USD,Azure Retail Prices API,2025-12-18T04:46:20.487814 +AZURE,southeastasia,Standard_E96pds_v6,reserved_3y,NA,2.659399,USD,Azure Retail Prices API,2025-12-18T04:46:20.487817 +AZURE,southeastasia,Standard_E96pds_v6,spot,NA,1.29323,USD,Azure Retail Prices API,2025-12-18T04:46:18.799440 +AZURE,southeastasia,Standard_E96ps_v6,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:46:18.797815 +AZURE,southeastasia,Standard_E96ps_v6,reserved_1y,NA,3.256849,USD,Azure Retail Prices API,2025-12-18T04:46:20.487644 +AZURE,southeastasia,Standard_E96ps_v6,reserved_3y,NA,2.097603,USD,Azure Retail Prices API,2025-12-18T04:46:20.487648 +AZURE,southeastasia,Standard_E96ps_v6,spot,NA,1.020096,USD,Azure Retail Prices API,2025-12-18T04:46:18.797710 +AZURE,southeastasia,Standard_E96s_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:18.798293 +AZURE,southeastasia,Standard_E96s_v5,reserved_1y,NA,4.231735,USD,Azure Retail Prices API,2025-12-18T04:46:20.488232 +AZURE,southeastasia,Standard_E96s_v5,reserved_3y,NA,2.699505,USD,Azure Retail Prices API,2025-12-18T04:46:20.488237 +AZURE,southeastasia,Standard_E96s_v5,spot,NA,1.352678,USD,Azure Retail Prices API,2025-12-18T04:46:18.798275 +AZURE,southeastasia,Standard_EC16ads_v5,on_demand,NA,1.272,USD,Azure Retail Prices API,2025-12-18T04:46:18.799572 +AZURE,southeastasia,Standard_EC16ads_v5,reserved_1y,NA,1.01758,USD,Azure Retail Prices API,2025-12-18T04:46:20.490299 +AZURE,southeastasia,Standard_EC16ads_v5,reserved_3y,NA,0.763204,USD,Azure Retail Prices API,2025-12-18T04:46:20.490304 +AZURE,southeastasia,Standard_EC16ads_v5,spot,NA,0.240026,USD,Azure Retail Prices API,2025-12-18T04:46:18.797849 +AZURE,southeastasia,Standard_EC16ads_v6,on_demand,NA,1.458,USD,Azure Retail Prices API,2025-12-18T04:46:18.799569 +AZURE,southeastasia,Standard_EC16ads_v6,reserved_1y,NA,0.859932,USD,Azure Retail Prices API,2025-12-18T04:46:20.490289 +AZURE,southeastasia,Standard_EC16ads_v6,reserved_3y,NA,0.553881,USD,Azure Retail Prices API,2025-12-18T04:46:20.490294 +AZURE,southeastasia,Standard_EC16ads_v6,spot,NA,0.269438,USD,Azure Retail Prices API,2025-12-18T04:46:18.798037 +AZURE,southeastasia,Standard_EC16as_v5,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:46:18.798242 +AZURE,southeastasia,Standard_EC16as_v5,reserved_1y,NA,0.870434,USD,Azure Retail Prices API,2025-12-18T04:46:20.488172 +AZURE,southeastasia,Standard_EC16as_v5,reserved_3y,NA,0.652816,USD,Azure Retail Prices API,2025-12-18T04:46:20.488177 +AZURE,southeastasia,Standard_EC16as_v5,spot,NA,0.205306,USD,Azure Retail Prices API,2025-12-18T04:46:18.799315 +AZURE,southeastasia,Standard_EC16as_v6,on_demand,NA,1.198,USD,Azure Retail Prices API,2025-12-18T04:46:18.798417 +AZURE,southeastasia,Standard_EC16as_v6,reserved_1y,NA,0.707078,USD,Azure Retail Prices API,2025-12-18T04:46:20.488416 +AZURE,southeastasia,Standard_EC16as_v6,reserved_3y,NA,0.455403,USD,Azure Retail Prices API,2025-12-18T04:46:20.488420 +AZURE,southeastasia,Standard_EC16as_v6,spot,NA,0.22139,USD,Azure Retail Prices API,2025-12-18T04:46:18.799253 +AZURE,southeastasia,Standard_EC20ads_v5,on_demand,NA,1.59,USD,Azure Retail Prices API,2025-12-18T04:46:18.798536 +AZURE,southeastasia,Standard_EC20ads_v5,reserved_1y,NA,1.272032,USD,Azure Retail Prices API,2025-12-18T04:46:20.488568 +AZURE,southeastasia,Standard_EC20ads_v5,reserved_3y,NA,0.953995,USD,Azure Retail Prices API,2025-12-18T04:46:20.488573 +AZURE,southeastasia,Standard_EC20ads_v5,spot,NA,0.300033,USD,Azure Retail Prices API,2025-12-18T04:46:18.799197 +AZURE,southeastasia,Standard_EC20as_v5,on_demand,NA,1.36,USD,Azure Retail Prices API,2025-12-18T04:46:18.798898 +AZURE,southeastasia,Standard_EC20as_v5,reserved_1y,NA,1.088014,USD,Azure Retail Prices API,2025-12-18T04:46:20.489176 +AZURE,southeastasia,Standard_EC20as_v5,reserved_3y,NA,0.815982,USD,Azure Retail Prices API,2025-12-18T04:46:20.489181 +AZURE,southeastasia,Standard_EC20as_v5,spot,NA,0.256632,USD,Azure Retail Prices API,2025-12-18T04:46:18.798803 +AZURE,southeastasia,Standard_EC2ads_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:46:18.798048 +AZURE,southeastasia,Standard_EC2ads_v6,reserved_1y,NA,0.107534,USD,Azure Retail Prices API,2025-12-18T04:46:20.487917 +AZURE,southeastasia,Standard_EC2ads_v6,reserved_3y,NA,0.069254,USD,Azure Retail Prices API,2025-12-18T04:46:20.487921 +AZURE,southeastasia,Standard_EC2ads_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:46:18.798797 +AZURE,southeastasia,Standard_EC2as_v6,on_demand,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:46:18.799307 +AZURE,southeastasia,Standard_EC2as_v6,reserved_1y,NA,0.088356,USD,Azure Retail Prices API,2025-12-18T04:46:20.489912 +AZURE,southeastasia,Standard_EC2as_v6,reserved_3y,NA,0.056925,USD,Azure Retail Prices API,2025-12-18T04:46:20.489917 +AZURE,southeastasia,Standard_EC2as_v6,spot,NA,0.02772,USD,Azure Retail Prices API,2025-12-18T04:46:18.798314 +AZURE,southeastasia,Standard_EC32ads_v5,on_demand,NA,2.544,USD,Azure Retail Prices API,2025-12-18T04:46:18.798502 +AZURE,southeastasia,Standard_EC32ads_v5,reserved_1y,NA,2.03516,USD,Azure Retail Prices API,2025-12-18T04:46:20.488515 +AZURE,southeastasia,Standard_EC32ads_v5,reserved_3y,NA,1.526408,USD,Azure Retail Prices API,2025-12-18T04:46:20.488520 +AZURE,southeastasia,Standard_EC32ads_v5,spot,NA,0.480053,USD,Azure Retail Prices API,2025-12-18T04:46:18.797858 +AZURE,southeastasia,Standard_EC32ads_v6,on_demand,NA,2.915,USD,Azure Retail Prices API,2025-12-18T04:46:18.798387 +AZURE,southeastasia,Standard_EC32ads_v6,reserved_1y,NA,1.719977,USD,Azure Retail Prices API,2025-12-18T04:46:20.488344 +AZURE,southeastasia,Standard_EC32ads_v6,reserved_3y,NA,1.107763,USD,Azure Retail Prices API,2025-12-18T04:46:20.488351 +AZURE,southeastasia,Standard_EC32ads_v6,spot,NA,0.538692,USD,Azure Retail Prices API,2025-12-18T04:46:18.799333 +AZURE,southeastasia,Standard_EC32as_v5,on_demand,NA,2.176,USD,Azure Retail Prices API,2025-12-18T04:46:18.799414 +AZURE,southeastasia,Standard_EC32as_v5,reserved_1y,NA,1.740753,USD,Azure Retail Prices API,2025-12-18T04:46:20.490043 +AZURE,southeastasia,Standard_EC32as_v5,reserved_3y,NA,1.305594,USD,Azure Retail Prices API,2025-12-18T04:46:20.490048 +AZURE,southeastasia,Standard_EC32as_v5,spot,NA,0.410611,USD,Azure Retail Prices API,2025-12-18T04:46:18.799132 +AZURE,southeastasia,Standard_EC32as_v6,on_demand,NA,2.397,USD,Azure Retail Prices API,2025-12-18T04:46:18.799125 +AZURE,southeastasia,Standard_EC32as_v6,reserved_1y,NA,1.414155,USD,Azure Retail Prices API,2025-12-18T04:46:20.489611 +AZURE,southeastasia,Standard_EC32as_v6,reserved_3y,NA,0.910769,USD,Azure Retail Prices API,2025-12-18T04:46:20.489617 +AZURE,southeastasia,Standard_EC32as_v6,spot,NA,0.442966,USD,Azure Retail Prices API,2025-12-18T04:46:18.798748 +AZURE,southeastasia,Standard_EC48ads_v5,on_demand,NA,3.816,USD,Azure Retail Prices API,2025-12-18T04:46:18.798635 +AZURE,southeastasia,Standard_EC48ads_v5,reserved_1y,NA,3.052854,USD,Azure Retail Prices API,2025-12-18T04:46:20.488710 +AZURE,southeastasia,Standard_EC48ads_v5,reserved_3y,NA,2.289612,USD,Azure Retail Prices API,2025-12-18T04:46:20.488715 +AZURE,southeastasia,Standard_EC48ads_v5,spot,NA,0.720079,USD,Azure Retail Prices API,2025-12-18T04:46:18.797958 +AZURE,southeastasia,Standard_EC48ads_v6,on_demand,NA,4.373,USD,Azure Retail Prices API,2025-12-18T04:46:18.798851 +AZURE,southeastasia,Standard_EC48ads_v6,reserved_1y,NA,2.579909,USD,Azure Retail Prices API,2025-12-18T04:46:20.489095 +AZURE,southeastasia,Standard_EC48ads_v6,reserved_3y,NA,1.661682,USD,Azure Retail Prices API,2025-12-18T04:46:20.489099 +AZURE,southeastasia,Standard_EC48ads_v6,spot,NA,0.80813,USD,Azure Retail Prices API,2025-12-18T04:46:18.798616 +AZURE,southeastasia,Standard_EC48as_v5,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:46:18.798072 +AZURE,southeastasia,Standard_EC48as_v5,reserved_1y,NA,2.611187,USD,Azure Retail Prices API,2025-12-18T04:46:20.487944 +AZURE,southeastasia,Standard_EC48as_v5,reserved_3y,NA,1.958409,USD,Azure Retail Prices API,2025-12-18T04:46:20.487947 +AZURE,southeastasia,Standard_EC48as_v5,spot,NA,0.615917,USD,Azure Retail Prices API,2025-12-18T04:46:18.799159 +AZURE,southeastasia,Standard_EC48as_v6,on_demand,NA,3.595,USD,Azure Retail Prices API,2025-12-18T04:46:18.799345 +AZURE,southeastasia,Standard_EC48as_v6,reserved_1y,NA,2.121119,USD,Azure Retail Prices API,2025-12-18T04:46:20.489972 +AZURE,southeastasia,Standard_EC48as_v6,reserved_3y,NA,1.366172,USD,Azure Retail Prices API,2025-12-18T04:46:20.489977 +AZURE,southeastasia,Standard_EC48as_v6,spot,NA,0.664356,USD,Azure Retail Prices API,2025-12-18T04:46:18.798405 +AZURE,southeastasia,Standard_EC4ads_v5,on_demand,NA,0.318,USD,Azure Retail Prices API,2025-12-18T04:46:18.799364 +AZURE,southeastasia,Standard_EC4ads_v5,reserved_1y,NA,0.254452,USD,Azure Retail Prices API,2025-12-18T04:46:20.490003 +AZURE,southeastasia,Standard_EC4ads_v5,reserved_3y,NA,0.190791,USD,Azure Retail Prices API,2025-12-18T04:46:20.490009 +AZURE,southeastasia,Standard_EC4ads_v5,spot,NA,0.060007,USD,Azure Retail Prices API,2025-12-18T04:46:18.798542 +AZURE,southeastasia,Standard_EC4ads_v6,on_demand,NA,0.364,USD,Azure Retail Prices API,2025-12-18T04:46:18.799099 +AZURE,southeastasia,Standard_EC4ads_v6,reserved_1y,NA,0.214954,USD,Azure Retail Prices API,2025-12-18T04:46:20.489562 +AZURE,southeastasia,Standard_EC4ads_v6,reserved_3y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:20.489567 +AZURE,southeastasia,Standard_EC4ads_v6,spot,NA,0.067267,USD,Azure Retail Prices API,2025-12-18T04:46:18.798363 +AZURE,southeastasia,Standard_EC4as_v5,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:46:18.798213 +AZURE,southeastasia,Standard_EC4as_v5,reserved_1y,NA,0.21758,USD,Azure Retail Prices API,2025-12-18T04:46:20.488119 +AZURE,southeastasia,Standard_EC4as_v5,reserved_3y,NA,0.163204,USD,Azure Retail Prices API,2025-12-18T04:46:20.488125 +AZURE,southeastasia,Standard_EC4as_v5,spot,NA,0.051326,USD,Azure Retail Prices API,2025-12-18T04:46:18.798232 +AZURE,southeastasia,Standard_EC4as_v6,on_demand,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:46:18.798485 +AZURE,southeastasia,Standard_EC4as_v6,reserved_1y,NA,0.176712,USD,Azure Retail Prices API,2025-12-18T04:46:20.488486 +AZURE,southeastasia,Standard_EC4as_v6,reserved_3y,NA,0.113851,USD,Azure Retail Prices API,2025-12-18T04:46:20.488491 +AZURE,southeastasia,Standard_EC4as_v6,spot,NA,0.05544,USD,Azure Retail Prices API,2025-12-18T04:46:18.799370 +AZURE,southeastasia,Standard_EC64ads_v5,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:18.798019 +AZURE,southeastasia,Standard_EC64ads_v5,reserved_1y,NA,4.070434,USD,Azure Retail Prices API,2025-12-18T04:46:20.487864 +AZURE,southeastasia,Standard_EC64ads_v5,reserved_3y,NA,3.052816,USD,Azure Retail Prices API,2025-12-18T04:46:20.487867 +AZURE,southeastasia,Standard_EC64ads_v5,spot,NA,0.960106,USD,Azure Retail Prices API,2025-12-18T04:46:18.797888 +AZURE,southeastasia,Standard_EC64ads_v6,on_demand,NA,5.83,USD,Azure Retail Prices API,2025-12-18T04:46:18.797820 +AZURE,southeastasia,Standard_EC64ads_v6,reserved_1y,NA,3.439954,USD,Azure Retail Prices API,2025-12-18T04:46:20.487651 +AZURE,southeastasia,Standard_EC64ads_v6,reserved_3y,NA,2.215563,USD,Azure Retail Prices API,2025-12-18T04:46:20.487654 +AZURE,southeastasia,Standard_EC64ads_v6,spot,NA,1.077384,USD,Azure Retail Prices API,2025-12-18T04:46:18.798426 +AZURE,southeastasia,Standard_EC64as_v5,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:46:18.798809 +AZURE,southeastasia,Standard_EC64as_v5,reserved_1y,NA,3.481621,USD,Azure Retail Prices API,2025-12-18T04:46:20.489033 +AZURE,southeastasia,Standard_EC64as_v5,reserved_3y,NA,2.611187,USD,Azure Retail Prices API,2025-12-18T04:46:20.489038 +AZURE,southeastasia,Standard_EC64as_v5,spot,NA,0.821222,USD,Azure Retail Prices API,2025-12-18T04:46:18.799244 +AZURE,southeastasia,Standard_EC64as_v6,on_demand,NA,4.794,USD,Azure Retail Prices API,2025-12-18T04:46:18.798839 +AZURE,southeastasia,Standard_EC64as_v6,reserved_1y,NA,2.828196,USD,Azure Retail Prices API,2025-12-18T04:46:20.489074 +AZURE,southeastasia,Standard_EC64as_v6,reserved_3y,NA,1.821575,USD,Azure Retail Prices API,2025-12-18T04:46:20.489079 +AZURE,southeastasia,Standard_EC64as_v6,spot,NA,0.885931,USD,Azure Retail Prices API,2025-12-18T04:46:18.798712 +AZURE,southeastasia,Standard_EC8ads_v5,on_demand,NA,0.636,USD,Azure Retail Prices API,2025-12-18T04:46:18.798435 +AZURE,southeastasia,Standard_EC8ads_v5,reserved_1y,NA,0.50879,USD,Azure Retail Prices API,2025-12-18T04:46:20.488435 +AZURE,southeastasia,Standard_EC8ads_v5,reserved_3y,NA,0.381583,USD,Azure Retail Prices API,2025-12-18T04:46:20.488440 +AZURE,southeastasia,Standard_EC8ads_v5,spot,NA,0.120013,USD,Azure Retail Prices API,2025-12-18T04:46:18.797769 +AZURE,southeastasia,Standard_EC8ads_v6,on_demand,NA,0.729,USD,Azure Retail Prices API,2025-12-18T04:46:18.797879 +AZURE,southeastasia,Standard_EC8ads_v6,reserved_1y,NA,0.430023,USD,Azure Retail Prices API,2025-12-18T04:46:20.487704 +AZURE,southeastasia,Standard_EC8ads_v6,reserved_3y,NA,0.276941,USD,Azure Retail Prices API,2025-12-18T04:46:20.487707 +AZURE,southeastasia,Standard_EC8ads_v6,spot,NA,0.134719,USD,Azure Retail Prices API,2025-12-18T04:46:18.799238 +AZURE,southeastasia,Standard_EC8as_v5,on_demand,NA,0.544,USD,Azure Retail Prices API,2025-12-18T04:46:18.797726 +AZURE,southeastasia,Standard_EC8as_v5,reserved_1y,NA,0.43516,USD,Azure Retail Prices API,2025-12-18T04:46:20.487537 +AZURE,southeastasia,Standard_EC8as_v5,reserved_3y,NA,0.326408,USD,Azure Retail Prices API,2025-12-18T04:46:20.487541 +AZURE,southeastasia,Standard_EC8as_v5,spot,NA,0.102653,USD,Azure Retail Prices API,2025-12-18T04:46:18.798366 +AZURE,southeastasia,Standard_EC8as_v6,on_demand,NA,0.599,USD,Azure Retail Prices API,2025-12-18T04:46:18.798533 +AZURE,southeastasia,Standard_EC8as_v6,reserved_1y,NA,0.353539,USD,Azure Retail Prices API,2025-12-18T04:46:20.488558 +AZURE,southeastasia,Standard_EC8as_v6,reserved_3y,NA,0.227702,USD,Azure Retail Prices API,2025-12-18T04:46:20.488563 +AZURE,southeastasia,Standard_EC8as_v6,spot,NA,0.110695,USD,Azure Retail Prices API,2025-12-18T04:46:18.799378 +AZURE,southeastasia,Standard_EC96ads_v5,on_demand,NA,7.632,USD,Azure Retail Prices API,2025-12-18T04:46:18.798779 +AZURE,southeastasia,Standard_EC96ads_v5,reserved_1y,NA,6.105594,USD,Azure Retail Prices API,2025-12-18T04:46:20.488983 +AZURE,southeastasia,Standard_EC96ads_v5,reserved_3y,NA,4.579186,USD,Azure Retail Prices API,2025-12-18T04:46:20.488988 +AZURE,southeastasia,Standard_EC96ads_v5,spot,NA,1.440158,USD,Azure Retail Prices API,2025-12-18T04:46:18.798311 +AZURE,southeastasia,Standard_EC96ads_v6,on_demand,NA,8.746,USD,Azure Retail Prices API,2025-12-18T04:46:18.799452 +AZURE,southeastasia,Standard_EC96ads_v6,reserved_1y,NA,5.159932,USD,Azure Retail Prices API,2025-12-18T04:46:20.490082 +AZURE,southeastasia,Standard_EC96ads_v6,reserved_3y,NA,3.323326,USD,Azure Retail Prices API,2025-12-18T04:46:20.490087 +AZURE,southeastasia,Standard_EC96ads_v6,spot,NA,1.616261,USD,Azure Retail Prices API,2025-12-18T04:46:18.798144 +AZURE,southeastasia,Standard_EC96as_v5,on_demand,NA,6.528,USD,Azure Retail Prices API,2025-12-18T04:46:18.798753 +AZURE,southeastasia,Standard_EC96as_v5,reserved_1y,NA,5.222374,USD,Azure Retail Prices API,2025-12-18T04:46:20.488945 +AZURE,southeastasia,Standard_EC96as_v5,reserved_3y,NA,3.916819,USD,Azure Retail Prices API,2025-12-18T04:46:20.488949 +AZURE,southeastasia,Standard_EC96as_v5,spot,NA,1.231834,USD,Azure Retail Prices API,2025-12-18T04:46:18.798496 +AZURE,southeastasia,Standard_EC96as_v6,on_demand,NA,7.19,USD,Azure Retail Prices API,2025-12-18T04:46:18.798703 +AZURE,southeastasia,Standard_EC96as_v6,reserved_1y,NA,4.242352,USD,Azure Retail Prices API,2025-12-18T04:46:20.488874 +AZURE,southeastasia,Standard_EC96as_v6,reserved_3y,NA,2.732344,USD,Azure Retail Prices API,2025-12-18T04:46:20.488880 +AZURE,southeastasia,Standard_EC96as_v6,spot,NA,1.328712,USD,Azure Retail Prices API,2025-12-18T04:46:18.798479 +AZURE,southeastasia,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379623 +AZURE,southeastasia,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379631 +AZURE,southeastasia,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379635 +AZURE,southeastasia,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379627 +AZURE,southeastasia,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381929 +AZURE,southeastasia,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381938 +AZURE,southeastasia,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381942 +AZURE,southeastasia,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381934 +AZURE,southeastasia,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384668 +AZURE,southeastasia,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384676 +AZURE,southeastasia,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384681 +AZURE,southeastasia,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384672 +AZURE,southeastasia,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385510 +AZURE,southeastasia,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385521 +AZURE,southeastasia,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385525 +AZURE,southeastasia,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385517 +AZURE,southeastasia,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378097 +AZURE,southeastasia,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378105 +AZURE,southeastasia,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378109 +AZURE,southeastasia,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378101 +AZURE,southeastasia,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386252 +AZURE,southeastasia,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386261 +AZURE,southeastasia,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386265 +AZURE,southeastasia,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386256 +AZURE,southeastasia,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380389 +AZURE,southeastasia,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380397 +AZURE,southeastasia,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380401 +AZURE,southeastasia,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380393 +AZURE,southeastasia,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383001 +AZURE,southeastasia,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383010 +AZURE,southeastasia,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383015 +AZURE,southeastasia,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383006 +AZURE,southeastasia,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387020 +AZURE,southeastasia,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387030 +AZURE,southeastasia,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387034 +AZURE,southeastasia,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387024 +AZURE,southeastasia,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388235 +AZURE,southeastasia,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388244 +AZURE,southeastasia,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388248 +AZURE,southeastasia,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388239 +AZURE,southeastasia,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378810 +AZURE,southeastasia,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378823 +AZURE,southeastasia,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378827 +AZURE,southeastasia,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378816 +AZURE,southeastasia,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381122 +AZURE,southeastasia,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381136 +AZURE,southeastasia,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381140 +AZURE,southeastasia,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381130 +AZURE,southeastasia,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383839 +AZURE,southeastasia,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383854 +AZURE,southeastasia,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383860 +AZURE,southeastasia,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383848 +AZURE,southeastasia,Standard_H16,on_demand,NA,1.848,USD,Azure Retail Prices API,2025-12-18T04:46:18.798456 +AZURE,southeastasia,Standard_H16,spot,NA,0.34151,USD,Azure Retail Prices API,2025-12-18T04:46:18.798957 +AZURE,southeastasia,Standard_H8,on_demand,NA,0.924,USD,Azure Retail Prices API,2025-12-18T04:46:18.799583 +AZURE,southeastasia,Standard_H8,spot,NA,0.170755,USD,Azure Retail Prices API,2025-12-18T04:46:18.799604 +AZURE,southeastasia,Standard_L16as_v3,on_demand,NA,1.496,USD,Azure Retail Prices API,2025-12-18T04:46:18.798564 +AZURE,southeastasia,Standard_L16as_v3,reserved_1y,NA,0.95742,USD,Azure Retail Prices API,2025-12-18T04:46:20.488600 +AZURE,southeastasia,Standard_L16as_v3,reserved_3y,NA,0.628311,USD,Azure Retail Prices API,2025-12-18T04:46:20.488606 +AZURE,southeastasia,Standard_L16as_v3,spot,NA,0.276461,USD,Azure Retail Prices API,2025-12-18T04:46:18.798555 +AZURE,southeastasia,Standard_L16s_v3,on_demand,NA,1.672,USD,Azure Retail Prices API,2025-12-18T04:46:18.799560 +AZURE,southeastasia,Standard_L16s_v3,reserved_1y,NA,1.070091,USD,Azure Retail Prices API,2025-12-18T04:46:20.490270 +AZURE,southeastasia,Standard_L16s_v3,reserved_3y,NA,0.702245,USD,Azure Retail Prices API,2025-12-18T04:46:20.490275 +AZURE,southeastasia,Standard_L16s_v3,spot,NA,0.308986,USD,Azure Retail Prices API,2025-12-18T04:46:18.799443 +AZURE,southeastasia,Standard_L32as_v3,on_demand,NA,2.992,USD,Azure Retail Prices API,2025-12-18T04:46:18.798284 +AZURE,southeastasia,Standard_L32as_v3,reserved_1y,NA,1.91484,USD,Azure Retail Prices API,2025-12-18T04:46:20.488222 +AZURE,southeastasia,Standard_L32as_v3,reserved_3y,NA,1.256621,USD,Azure Retail Prices API,2025-12-18T04:46:20.488227 +AZURE,southeastasia,Standard_L32as_v3,spot,NA,0.552922,USD,Azure Retail Prices API,2025-12-18T04:46:18.799643 +AZURE,southeastasia,Standard_L32s_v3,on_demand,NA,3.344,USD,Azure Retail Prices API,2025-12-18T04:46:18.799403 +AZURE,southeastasia,Standard_L32s_v3,reserved_1y,NA,2.140183,USD,Azure Retail Prices API,2025-12-18T04:46:20.490013 +AZURE,southeastasia,Standard_L32s_v3,reserved_3y,NA,1.40449,USD,Azure Retail Prices API,2025-12-18T04:46:20.490018 +AZURE,southeastasia,Standard_L32s_v3,spot,NA,0.617971,USD,Azure Retail Prices API,2025-12-18T04:46:18.798611 +AZURE,southeastasia,Standard_L48as_v3,on_demand,NA,4.488,USD,Azure Retail Prices API,2025-12-18T04:46:18.799580 +AZURE,southeastasia,Standard_L48as_v3,reserved_1y,NA,2.872374,USD,Azure Retail Prices API,2025-12-18T04:46:20.490329 +AZURE,southeastasia,Standard_L48as_v3,reserved_3y,NA,1.88497,USD,Azure Retail Prices API,2025-12-18T04:46:20.490334 +AZURE,southeastasia,Standard_L48as_v3,spot,NA,0.829382,USD,Azure Retail Prices API,2025-12-18T04:46:18.797743 +AZURE,southeastasia,Standard_L48s_v3,on_demand,NA,5.016,USD,Azure Retail Prices API,2025-12-18T04:46:18.798473 +AZURE,southeastasia,Standard_L48s_v3,reserved_1y,NA,3.210274,USD,Azure Retail Prices API,2025-12-18T04:46:20.488466 +AZURE,southeastasia,Standard_L48s_v3,reserved_3y,NA,2.106735,USD,Azure Retail Prices API,2025-12-18T04:46:20.488471 +AZURE,southeastasia,Standard_L48s_v3,spot,NA,0.926957,USD,Azure Retail Prices API,2025-12-18T04:46:18.799616 +AZURE,southeastasia,Standard_L64as_v3,on_demand,NA,5.984,USD,Azure Retail Prices API,2025-12-18T04:46:18.798791 +AZURE,southeastasia,Standard_L64as_v3,reserved_1y,NA,3.829795,USD,Azure Retail Prices API,2025-12-18T04:46:20.489014 +AZURE,southeastasia,Standard_L64as_v3,reserved_3y,NA,2.51328,USD,Azure Retail Prices API,2025-12-18T04:46:20.489019 +AZURE,southeastasia,Standard_L64as_v3,spot,NA,1.105843,USD,Azure Retail Prices API,2025-12-18T04:46:18.798517 +AZURE,southeastasia,Standard_L64s_v3,on_demand,NA,6.688,USD,Azure Retail Prices API,2025-12-18T04:46:18.798960 +AZURE,southeastasia,Standard_L64s_v3,reserved_1y,NA,4.280365,USD,Azure Retail Prices API,2025-12-18T04:46:20.489284 +AZURE,southeastasia,Standard_L64s_v3,reserved_3y,NA,2.808942,USD,Azure Retail Prices API,2025-12-18T04:46:20.489289 +AZURE,southeastasia,Standard_L64s_v3,spot,NA,1.235942,USD,Azure Retail Prices API,2025-12-18T04:46:18.798254 +AZURE,southeastasia,Standard_L80as_v3,on_demand,NA,7.48,USD,Azure Retail Prices API,2025-12-18T04:46:18.799654 +AZURE,southeastasia,Standard_L80as_v3,reserved_1y,NA,4.787215,USD,Azure Retail Prices API,2025-12-18T04:46:20.490408 +AZURE,southeastasia,Standard_L80as_v3,reserved_3y,NA,3.141591,USD,Azure Retail Prices API,2025-12-18T04:46:20.490414 +AZURE,southeastasia,Standard_L80as_v3,spot,NA,1.382304,USD,Azure Retail Prices API,2025-12-18T04:46:18.799250 +AZURE,southeastasia,Standard_L80s_v3,on_demand,NA,8.36,USD,Azure Retail Prices API,2025-12-18T04:46:18.797994 +AZURE,southeastasia,Standard_L80s_v3,reserved_1y,NA,5.350457,USD,Azure Retail Prices API,2025-12-18T04:46:20.487807 +AZURE,southeastasia,Standard_L80s_v3,reserved_3y,NA,3.511187,USD,Azure Retail Prices API,2025-12-18T04:46:20.487811 +AZURE,southeastasia,Standard_L80s_v3,spot,NA,1.544928,USD,Azure Retail Prices API,2025-12-18T04:46:18.798197 +AZURE,southeastasia,Standard_L8as_v3,on_demand,NA,0.748,USD,Azure Retail Prices API,2025-12-18T04:46:18.798983 +AZURE,southeastasia,Standard_L8as_v3,reserved_1y,NA,0.478767,USD,Azure Retail Prices API,2025-12-18T04:46:20.489326 +AZURE,southeastasia,Standard_L8as_v3,reserved_3y,NA,0.314155,USD,Azure Retail Prices API,2025-12-18T04:46:20.489332 +AZURE,southeastasia,Standard_L8as_v3,spot,NA,0.13823,USD,Azure Retail Prices API,2025-12-18T04:46:18.798830 +AZURE,southeastasia,Standard_L8s_v3,on_demand,NA,0.836,USD,Azure Retail Prices API,2025-12-18T04:46:18.798101 +AZURE,southeastasia,Standard_L8s_v3,reserved_1y,NA,0.535046,USD,Azure Retail Prices API,2025-12-18T04:46:20.487976 +AZURE,southeastasia,Standard_L8s_v3,reserved_3y,NA,0.351104,USD,Azure Retail Prices API,2025-12-18T04:46:20.487979 +AZURE,southeastasia,Standard_L8s_v3,spot,NA,0.154493,USD,Azure Retail Prices API,2025-12-18T04:46:18.799434 +AZURE,southeastasia,Standard_NC12s_v3,on_demand,NA,8.468,USD,Azure Retail Prices API,2025-12-18T04:46:18.798086 +AZURE,southeastasia,Standard_NC12s_v3,spot,NA,1.564886,USD,Azure Retail Prices API,2025-12-18T04:46:18.799167 +AZURE,southeastasia,Standard_NC16as_T4_v3,on_demand,NA,1.685,USD,Azure Retail Prices API,2025-12-18T04:46:18.798942 +AZURE,southeastasia,Standard_NC16as_T4_v3,reserved_1y,NA,0.990639,USD,Azure Retail Prices API,2025-12-18T04:46:20.489235 +AZURE,southeastasia,Standard_NC16as_T4_v3,reserved_3y,NA,0.640525,USD,Azure Retail Prices API,2025-12-18T04:46:20.489239 +AZURE,southeastasia,Standard_NC16as_T4_v3,spot,NA,0.48865,USD,Azure Retail Prices API,2025-12-18T04:46:18.798089 +AZURE,southeastasia,Standard_NC24ads_A100_v4,on_demand,NA,4.775,USD,Azure Retail Prices API,2025-12-18T04:46:18.799138 +AZURE,southeastasia,Standard_NC24ads_A100_v4,reserved_1y,NA,3.121347,USD,Azure Retail Prices API,2025-12-18T04:46:20.489633 +AZURE,southeastasia,Standard_NC24ads_A100_v4,reserved_3y,NA,1.771956,USD,Azure Retail Prices API,2025-12-18T04:46:20.489638 +AZURE,southeastasia,Standard_NC24ads_A100_v4,spot,NA,0.88242,USD,Azure Retail Prices API,2025-12-18T04:46:18.798164 +AZURE,southeastasia,Standard_NC24s_v3,on_demand,NA,16.936,USD,Azure Retail Prices API,2025-12-18T04:46:18.799264 +AZURE,southeastasia,Standard_NC24s_v3,spot,NA,3.129773,USD,Azure Retail Prices API,2025-12-18T04:46:18.798470 +AZURE,southeastasia,Standard_NC40ads_H100_v5,on_demand,NA,9.074,USD,Azure Retail Prices API,2025-12-18T04:46:18.798806 +AZURE,southeastasia,Standard_NC40ads_H100_v5,reserved_1y,NA,6.805479,USD,Azure Retail Prices API,2025-12-18T04:46:20.489024 +AZURE,southeastasia,Standard_NC40ads_H100_v5,reserved_3y,NA,4.990715,USD,Azure Retail Prices API,2025-12-18T04:46:20.489029 +AZURE,southeastasia,Standard_NC40ads_H100_v5,spot,NA,3.911801,USD,Azure Retail Prices API,2025-12-18T04:46:18.799041 +AZURE,southeastasia,Standard_NC48ads_A100_v4,on_demand,NA,9.55,USD,Azure Retail Prices API,2025-12-18T04:46:18.799135 +AZURE,southeastasia,Standard_NC48ads_A100_v4,reserved_1y,NA,6.242694,USD,Azure Retail Prices API,2025-12-18T04:46:20.489621 +AZURE,southeastasia,Standard_NC48ads_A100_v4,reserved_3y,NA,3.54395,USD,Azure Retail Prices API,2025-12-18T04:46:20.489627 +AZURE,southeastasia,Standard_NC48ads_A100_v4,spot,NA,1.76484,USD,Azure Retail Prices API,2025-12-18T04:46:18.798934 +AZURE,southeastasia,Standard_NC4as_T4_v3,on_demand,NA,0.736,USD,Azure Retail Prices API,2025-12-18T04:46:18.799480 +AZURE,southeastasia,Standard_NC4as_T4_v3,reserved_1y,NA,0.432763,USD,Azure Retail Prices API,2025-12-18T04:46:20.490121 +AZURE,southeastasia,Standard_NC4as_T4_v3,reserved_3y,NA,0.279833,USD,Azure Retail Prices API,2025-12-18T04:46:20.490125 +AZURE,southeastasia,Standard_NC4as_T4_v3,spot,NA,0.21344,USD,Azure Retail Prices API,2025-12-18T04:46:18.798827 +AZURE,southeastasia,Standard_NC64as_T4_v3,on_demand,NA,6.089,USD,Azure Retail Prices API,2025-12-18T04:46:18.798193 +AZURE,southeastasia,Standard_NC64as_T4_v3,reserved_1y,NA,3.580594,USD,Azure Retail Prices API,2025-12-18T04:46:20.488073 +AZURE,southeastasia,Standard_NC64as_T4_v3,reserved_3y,NA,2.315259,USD,Azure Retail Prices API,2025-12-18T04:46:20.488078 +AZURE,southeastasia,Standard_NC64as_T4_v3,spot,NA,1.76581,USD,Azure Retail Prices API,2025-12-18T04:46:18.798577 +AZURE,southeastasia,Standard_NC6s_v3,on_demand,NA,4.234,USD,Azure Retail Prices API,2025-12-18T04:46:18.798450 +AZURE,southeastasia,Standard_NC6s_v3,spot,NA,0.782443,USD,Azure Retail Prices API,2025-12-18T04:46:18.798493 +AZURE,southeastasia,Standard_NC8as_T4_v3,on_demand,NA,1.052,USD,Azure Retail Prices API,2025-12-18T04:46:18.799019 +AZURE,southeastasia,Standard_NC8as_T4_v3,reserved_1y,NA,0.618721,USD,Azure Retail Prices API,2025-12-18T04:46:20.489454 +AZURE,southeastasia,Standard_NC8as_T4_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:46:20.489460 +AZURE,southeastasia,Standard_NC8as_T4_v3,spot,NA,0.30508,USD,Azure Retail Prices API,2025-12-18T04:46:18.798210 +AZURE,southeastasia,Standard_NC96ads_A100_v4,on_demand,NA,19.1,USD,Azure Retail Prices API,2025-12-18T04:46:18.798672 +AZURE,southeastasia,Standard_NC96ads_A100_v4,reserved_1y,NA,12.485388,USD,Azure Retail Prices API,2025-12-18T04:46:20.488801 +AZURE,southeastasia,Standard_NC96ads_A100_v4,reserved_3y,NA,7.087861,USD,Azure Retail Prices API,2025-12-18T04:46:20.488805 +AZURE,southeastasia,Standard_NC96ads_A100_v4,spot,NA,3.52968,USD,Azure Retail Prices API,2025-12-18T04:46:18.798794 +AZURE,southeastasia,Standard_NV36adms_A10_v5,on_demand,NA,5.876,USD,Azure Retail Prices API,2025-12-18T04:46:18.797952 +AZURE,southeastasia,Standard_NV36adms_A10_v5,reserved_1y,NA,3.760616,USD,Azure Retail Prices API,2025-12-18T04:46:20.487768 +AZURE,southeastasia,Standard_NV36adms_A10_v5,reserved_3y,NA,2.585426,USD,Azure Retail Prices API,2025-12-18T04:46:20.487771 +AZURE,southeastasia,Standard_NV36adms_A10_v5,spot,NA,1.085885,USD,Azure Retail Prices API,2025-12-18T04:46:18.798996 +AZURE,southeastasia,Standard_NV36ads_A10_v5,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:46:18.799227 +AZURE,southeastasia,Standard_NV36ads_A10_v5,reserved_1y,NA,2.662443,USD,Azure Retail Prices API,2025-12-18T04:46:20.489801 +AZURE,southeastasia,Standard_NV36ads_A10_v5,reserved_3y,NA,1.830403,USD,Azure Retail Prices API,2025-12-18T04:46:20.489806 +AZURE,southeastasia,Standard_NV36ads_A10_v5,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:46:18.798297 +AZURE,southeastasia,Standard_NV72ads_A10_v5,on_demand,NA,8.476,USD,Azure Retail Prices API,2025-12-18T04:46:18.798589 +AZURE,southeastasia,Standard_NV72ads_A10_v5,reserved_1y,NA,5.424658,USD,Azure Retail Prices API,2025-12-18T04:46:20.488650 +AZURE,southeastasia,Standard_NV72ads_A10_v5,reserved_3y,NA,3.729452,USD,Azure Retail Prices API,2025-12-18T04:46:20.488656 +AZURE,southeastasia,Standard_NV72ads_A10_v5,spot,NA,1.566365,USD,Azure Retail Prices API,2025-12-18T04:46:18.799155 +AZURE,southindia,Standard_D128ds_v6,on_demand,NA,11.242,USD,Azure Retail Prices API,2025-12-18T04:46:51.095621 +AZURE,southindia,Standard_D128ds_v6,reserved_1y,NA,6.970205,USD,Azure Retail Prices API,2025-12-18T04:46:52.043619 +AZURE,southindia,Standard_D128ds_v6,reserved_3y,NA,4.384475,USD,Azure Retail Prices API,2025-12-18T04:46:52.043624 +AZURE,southindia,Standard_D128ds_v6,spot,NA,2.077522,USD,Azure Retail Prices API,2025-12-18T04:46:51.094577 +AZURE,southindia,Standard_D12_v2,on_demand,NA,0.46375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488666 +AZURE,southindia,Standard_D12_v2,reserved_1y,NA,0.27825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488686 +AZURE,southindia,Standard_D12_v2,reserved_3y,NA,0.1855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488690 +AZURE,southindia,Standard_D12_v2,spot,NA,0.139125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488682 +AZURE,southindia,Standard_D13_v2,on_demand,NA,0.92625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489500 +AZURE,southindia,Standard_D13_v2,reserved_1y,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489508 +AZURE,southindia,Standard_D13_v2,reserved_3y,NA,0.3705,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489512 +AZURE,southindia,Standard_D13_v2,spot,NA,0.277875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489504 +AZURE,southindia,Standard_D14_v2,on_demand,NA,1.8525,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490549 +AZURE,southindia,Standard_D14_v2,reserved_1y,NA,1.1115,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490557 +AZURE,southindia,Standard_D14_v2,reserved_3y,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490561 +AZURE,southindia,Standard_D14_v2,spot,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490553 +AZURE,southindia,Standard_D15_v2,on_demand,NA,2.31625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491299 +AZURE,southindia,Standard_D15_v2,reserved_1y,NA,1.38975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491308 +AZURE,southindia,Standard_D15_v2,reserved_3y,NA,0.9265,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491312 +AZURE,southindia,Standard_D15_v2,spot,NA,0.694875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491304 +AZURE,southindia,Standard_D16_v3,on_demand,NA,1.082,USD,Azure Retail Prices API,2025-12-18T04:46:51.095172 +AZURE,southindia,Standard_D16_v3,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:46:52.042868 +AZURE,southindia,Standard_D16_v3,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:46:52.042873 +AZURE,southindia,Standard_D16_v3,spot,NA,0.199954,USD,Azure Retail Prices API,2025-12-18T04:46:51.094507 +AZURE,southindia,Standard_D16a_v4,on_demand,NA,1.083,USD,Azure Retail Prices API,2025-12-18T04:46:51.095553 +AZURE,southindia,Standard_D16a_v4,reserved_1y,NA,0.638927,USD,Azure Retail Prices API,2025-12-18T04:46:52.043530 +AZURE,southindia,Standard_D16a_v4,reserved_3y,NA,0.411492,USD,Azure Retail Prices API,2025-12-18T04:46:52.043535 +AZURE,southindia,Standard_D16a_v4,spot,NA,0.200138,USD,Azure Retail Prices API,2025-12-18T04:46:51.095453 +AZURE,southindia,Standard_D16ads_v5,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:46:51.094448 +AZURE,southindia,Standard_D16ads_v5,reserved_1y,NA,0.685502,USD,Azure Retail Prices API,2025-12-18T04:46:52.042047 +AZURE,southindia,Standard_D16ads_v5,reserved_3y,NA,0.441514,USD,Azure Retail Prices API,2025-12-18T04:46:52.042052 +AZURE,southindia,Standard_D16ads_v5,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:46:51.094567 +AZURE,southindia,Standard_D16ads_v6,on_demand,NA,1.285,USD,Azure Retail Prices API,2025-12-18T04:46:51.094355 +AZURE,southindia,Standard_D16ads_v6,reserved_1y,NA,0.757991,USD,Azure Retail Prices API,2025-12-18T04:46:52.041958 +AZURE,southindia,Standard_D16ads_v6,reserved_3y,NA,0.488242,USD,Azure Retail Prices API,2025-12-18T04:46:52.041963 +AZURE,southindia,Standard_D16ads_v6,spot,NA,0.237468,USD,Azure Retail Prices API,2025-12-18T04:46:51.094484 +AZURE,southindia,Standard_D16as_v4,on_demand,NA,1.083,USD,Azure Retail Prices API,2025-12-18T04:46:51.094727 +AZURE,southindia,Standard_D16as_v4,reserved_1y,NA,0.638927,USD,Azure Retail Prices API,2025-12-18T04:46:52.042417 +AZURE,southindia,Standard_D16as_v4,reserved_3y,NA,0.411492,USD,Azure Retail Prices API,2025-12-18T04:46:52.042421 +AZURE,southindia,Standard_D16as_v4,spot,NA,0.200138,USD,Azure Retail Prices API,2025-12-18T04:46:51.094020 +AZURE,southindia,Standard_D16as_v5,on_demand,NA,0.97,USD,Azure Retail Prices API,2025-12-18T04:46:51.093970 +AZURE,southindia,Standard_D16as_v5,reserved_1y,NA,0.572374,USD,Azure Retail Prices API,2025-12-18T04:46:52.041497 +AZURE,southindia,Standard_D16as_v5,reserved_3y,NA,0.368645,USD,Azure Retail Prices API,2025-12-18T04:46:52.041503 +AZURE,southindia,Standard_D16as_v5,spot,NA,0.179256,USD,Azure Retail Prices API,2025-12-18T04:46:51.094686 +AZURE,southindia,Standard_D16d_v4,on_demand,NA,1.274,USD,Azure Retail Prices API,2025-12-18T04:46:51.094465 +AZURE,southindia,Standard_D16d_v4,reserved_1y,NA,0.751484,USD,Azure Retail Prices API,2025-12-18T04:46:52.042076 +AZURE,southindia,Standard_D16d_v4,reserved_3y,NA,0.48398,USD,Azure Retail Prices API,2025-12-18T04:46:52.042081 +AZURE,southindia,Standard_D16d_v4,spot,NA,0.235435,USD,Azure Retail Prices API,2025-12-18T04:46:51.094175 +AZURE,southindia,Standard_D16ds_v4,on_demand,NA,1.274,USD,Azure Retail Prices API,2025-12-18T04:46:51.094848 +AZURE,southindia,Standard_D16ds_v4,reserved_1y,NA,0.751484,USD,Azure Retail Prices API,2025-12-18T04:46:52.042543 +AZURE,southindia,Standard_D16ds_v4,reserved_3y,NA,0.48398,USD,Azure Retail Prices API,2025-12-18T04:46:52.042548 +AZURE,southindia,Standard_D16ds_v4,spot,NA,0.235435,USD,Azure Retail Prices API,2025-12-18T04:46:51.094571 +AZURE,southindia,Standard_D16ds_v5,on_demand,NA,1.275,USD,Azure Retail Prices API,2025-12-18T04:46:51.095411 +AZURE,southindia,Standard_D16ds_v5,reserved_1y,NA,0.752055,USD,Azure Retail Prices API,2025-12-18T04:46:52.043375 +AZURE,southindia,Standard_D16ds_v5,reserved_3y,NA,0.484361,USD,Azure Retail Prices API,2025-12-18T04:46:52.043380 +AZURE,southindia,Standard_D16ds_v5,spot,NA,0.23562,USD,Azure Retail Prices API,2025-12-18T04:46:51.094642 +AZURE,southindia,Standard_D16ds_v6,on_demand,NA,1.405,USD,Azure Retail Prices API,2025-12-18T04:46:51.095374 +AZURE,southindia,Standard_D16ds_v6,reserved_1y,NA,0.871233,USD,Azure Retail Prices API,2025-12-18T04:46:52.043328 +AZURE,southindia,Standard_D16ds_v6,reserved_3y,NA,0.548059,USD,Azure Retail Prices API,2025-12-18T04:46:52.043333 +AZURE,southindia,Standard_D16ds_v6,spot,NA,0.259644,USD,Azure Retail Prices API,2025-12-18T04:46:51.094014 +AZURE,southindia,Standard_D16s_v3,on_demand,NA,1.082,USD,Azure Retail Prices API,2025-12-18T04:46:51.095045 +AZURE,southindia,Standard_D16s_v3,reserved_1y,NA,0.686758,USD,Azure Retail Prices API,2025-12-18T04:46:52.042729 +AZURE,southindia,Standard_D16s_v3,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:46:52.042735 +AZURE,southindia,Standard_D16s_v3,spot,NA,0.199954,USD,Azure Retail Prices API,2025-12-18T04:46:51.094773 +AZURE,southindia,Standard_D16s_v4,on_demand,NA,1.08,USD,Azure Retail Prices API,2025-12-18T04:46:51.095182 +AZURE,southindia,Standard_D16s_v4,reserved_1y,NA,0.637215,USD,Azure Retail Prices API,2025-12-18T04:46:52.042878 +AZURE,southindia,Standard_D16s_v4,reserved_3y,NA,0.410388,USD,Azure Retail Prices API,2025-12-18T04:46:52.042883 +AZURE,southindia,Standard_D16s_v4,spot,NA,0.199584,USD,Azure Retail Prices API,2025-12-18T04:46:51.094616 +AZURE,southindia,Standard_D16s_v5,on_demand,NA,1.083,USD,Azure Retail Prices API,2025-12-18T04:46:51.094755 +AZURE,southindia,Standard_D16s_v5,reserved_1y,NA,0.638927,USD,Azure Retail Prices API,2025-12-18T04:46:52.042456 +AZURE,southindia,Standard_D16s_v5,reserved_3y,NA,0.400647,USD,Azure Retail Prices API,2025-12-18T04:46:52.042461 +AZURE,southindia,Standard_D16s_v5,spot,NA,0.200138,USD,Azure Retail Prices API,2025-12-18T04:46:51.094165 +AZURE,southindia,Standard_D2ads_v6,on_demand,NA,0.161,USD,Azure Retail Prices API,2025-12-18T04:46:51.095283 +AZURE,southindia,Standard_D2ads_v6,reserved_1y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:46:52.043144 +AZURE,southindia,Standard_D2ads_v6,reserved_3y,NA,0.061035,USD,Azure Retail Prices API,2025-12-18T04:46:52.043149 +AZURE,southindia,Standard_D2ads_v6,spot,NA,0.029753,USD,Azure Retail Prices API,2025-12-18T04:46:51.094877 +AZURE,southindia,Standard_D2ds_v6,on_demand,NA,0.176,USD,Azure Retail Prices API,2025-12-18T04:46:51.094751 +AZURE,southindia,Standard_D2ds_v6,reserved_1y,NA,0.108904,USD,Azure Retail Prices API,2025-12-18T04:46:52.042446 +AZURE,southindia,Standard_D2ds_v6,reserved_3y,NA,0.068493,USD,Azure Retail Prices API,2025-12-18T04:46:52.042451 +AZURE,southindia,Standard_D2ds_v6,spot,NA,0.032525,USD,Azure Retail Prices API,2025-12-18T04:46:51.095345 +AZURE,southindia,Standard_D32_v3,on_demand,NA,2.164,USD,Azure Retail Prices API,2025-12-18T04:46:51.095407 +AZURE,southindia,Standard_D32_v3,reserved_1y,NA,1.37363,USD,Azure Retail Prices API,2025-12-18T04:46:52.043365 +AZURE,southindia,Standard_D32_v3,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:46:52.043370 +AZURE,southindia,Standard_D32_v3,spot,NA,0.399907,USD,Azure Retail Prices API,2025-12-18T04:46:51.094123 +AZURE,southindia,Standard_D32a_v4,on_demand,NA,2.166,USD,Azure Retail Prices API,2025-12-18T04:46:51.093947 +AZURE,southindia,Standard_D32a_v4,reserved_1y,NA,1.277854,USD,Azure Retail Prices API,2025-12-18T04:46:52.041478 +AZURE,southindia,Standard_D32a_v4,reserved_3y,NA,0.822983,USD,Azure Retail Prices API,2025-12-18T04:46:52.041483 +AZURE,southindia,Standard_D32a_v4,spot,NA,0.400277,USD,Azure Retail Prices API,2025-12-18T04:46:51.093985 +AZURE,southindia,Standard_D32ads_v5,on_demand,NA,2.324,USD,Azure Retail Prices API,2025-12-18T04:46:51.094336 +AZURE,southindia,Standard_D32ads_v5,reserved_1y,NA,1.371005,USD,Azure Retail Prices API,2025-12-18T04:46:52.041930 +AZURE,southindia,Standard_D32ads_v5,reserved_3y,NA,0.882991,USD,Azure Retail Prices API,2025-12-18T04:46:52.041935 +AZURE,southindia,Standard_D32ads_v5,spot,NA,0.429475,USD,Azure Retail Prices API,2025-12-18T04:46:51.095156 +AZURE,southindia,Standard_D32ads_v6,on_demand,NA,2.57,USD,Azure Retail Prices API,2025-12-18T04:46:51.094326 +AZURE,southindia,Standard_D32ads_v6,reserved_1y,NA,1.516096,USD,Azure Retail Prices API,2025-12-18T04:46:52.041920 +AZURE,southindia,Standard_D32ads_v6,reserved_3y,NA,0.976446,USD,Azure Retail Prices API,2025-12-18T04:46:52.041925 +AZURE,southindia,Standard_D32ads_v6,spot,NA,0.474936,USD,Azure Retail Prices API,2025-12-18T04:46:51.095458 +AZURE,southindia,Standard_D32as_v4,on_demand,NA,2.166,USD,Azure Retail Prices API,2025-12-18T04:46:51.094760 +AZURE,southindia,Standard_D32as_v4,reserved_1y,NA,1.277854,USD,Azure Retail Prices API,2025-12-18T04:46:52.042466 +AZURE,southindia,Standard_D32as_v4,reserved_3y,NA,0.822983,USD,Azure Retail Prices API,2025-12-18T04:46:52.042471 +AZURE,southindia,Standard_D32as_v4,spot,NA,0.400277,USD,Azure Retail Prices API,2025-12-18T04:46:51.095365 +AZURE,southindia,Standard_D32as_v5,on_demand,NA,3.412,USD,Azure Retail Prices API,2025-12-18T04:46:51.094853 +AZURE,southindia,Standard_D32as_v5,reserved_1y,NA,1.144749,USD,Azure Retail Prices API,2025-12-18T04:46:52.042897 +AZURE,southindia,Standard_D32as_v5,reserved_3y,NA,0.737253,USD,Azure Retail Prices API,2025-12-18T04:46:52.042901 +AZURE,southindia,Standard_D32as_v5,spot,NA,0.358512,USD,Azure Retail Prices API,2025-12-18T04:46:51.095110 +AZURE,southindia,Standard_D32d_v4,on_demand,NA,2.547,USD,Azure Retail Prices API,2025-12-18T04:46:51.095614 +AZURE,southindia,Standard_D32d_v4,reserved_1y,NA,1.502854,USD,Azure Retail Prices API,2025-12-18T04:46:52.043608 +AZURE,southindia,Standard_D32d_v4,reserved_3y,NA,0.96796,USD,Azure Retail Prices API,2025-12-18T04:46:52.043613 +AZURE,southindia,Standard_D32d_v4,spot,NA,0.470686,USD,Azure Retail Prices API,2025-12-18T04:46:51.094245 +AZURE,southindia,Standard_D32ds_v4,on_demand,NA,2.547,USD,Azure Retail Prices API,2025-12-18T04:46:51.094950 +AZURE,southindia,Standard_D32ds_v4,reserved_1y,NA,1.502854,USD,Azure Retail Prices API,2025-12-18T04:46:52.042622 +AZURE,southindia,Standard_D32ds_v4,reserved_3y,NA,0.96796,USD,Azure Retail Prices API,2025-12-18T04:46:52.042627 +AZURE,southindia,Standard_D32ds_v4,spot,NA,0.470686,USD,Azure Retail Prices API,2025-12-18T04:46:51.094894 +AZURE,southindia,Standard_D32ds_v5,on_demand,NA,2.549,USD,Azure Retail Prices API,2025-12-18T04:46:51.095153 +AZURE,southindia,Standard_D32ds_v5,reserved_1y,NA,1.50411,USD,Azure Retail Prices API,2025-12-18T04:46:52.042838 +AZURE,southindia,Standard_D32ds_v5,reserved_3y,NA,0.968721,USD,Azure Retail Prices API,2025-12-18T04:46:52.042843 +AZURE,southindia,Standard_D32ds_v5,spot,NA,0.471055,USD,Azure Retail Prices API,2025-12-18T04:46:51.094180 +AZURE,southindia,Standard_D32ds_v6,on_demand,NA,2.811,USD,Azure Retail Prices API,2025-12-18T04:46:51.095280 +AZURE,southindia,Standard_D32ds_v6,reserved_1y,NA,1.74258,USD,Azure Retail Prices API,2025-12-18T04:46:52.043134 +AZURE,southindia,Standard_D32ds_v6,reserved_3y,NA,1.096119,USD,Azure Retail Prices API,2025-12-18T04:46:52.043139 +AZURE,southindia,Standard_D32ds_v6,spot,NA,0.519473,USD,Azure Retail Prices API,2025-12-18T04:46:51.095242 +AZURE,southindia,Standard_D32s_v3,on_demand,NA,2.164,USD,Azure Retail Prices API,2025-12-18T04:46:51.094778 +AZURE,southindia,Standard_D32s_v3,reserved_1y,NA,1.37363,USD,Azure Retail Prices API,2025-12-18T04:46:52.042485 +AZURE,southindia,Standard_D32s_v3,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:46:52.042490 +AZURE,southindia,Standard_D32s_v3,spot,NA,0.399907,USD,Azure Retail Prices API,2025-12-18T04:46:51.095261 +AZURE,southindia,Standard_D32s_v4,on_demand,NA,2.16,USD,Azure Retail Prices API,2025-12-18T04:46:51.094029 +AZURE,southindia,Standard_D32s_v4,reserved_1y,NA,1.274429,USD,Azure Retail Prices API,2025-12-18T04:46:52.041600 +AZURE,southindia,Standard_D32s_v4,reserved_3y,NA,0.820814,USD,Azure Retail Prices API,2025-12-18T04:46:52.041605 +AZURE,southindia,Standard_D32s_v4,spot,NA,0.399168,USD,Azure Retail Prices API,2025-12-18T04:46:51.095548 +AZURE,southindia,Standard_D32s_v5,on_demand,NA,2.166,USD,Azure Retail Prices API,2025-12-18T04:46:51.094297 +AZURE,southindia,Standard_D32s_v5,reserved_1y,NA,1.277854,USD,Azure Retail Prices API,2025-12-18T04:46:52.041900 +AZURE,southindia,Standard_D32s_v5,reserved_3y,NA,0.801332,USD,Azure Retail Prices API,2025-12-18T04:46:52.041905 +AZURE,southindia,Standard_D32s_v5,spot,NA,0.400277,USD,Azure Retail Prices API,2025-12-18T04:46:51.095605 +AZURE,southindia,Standard_D3_v2,on_demand,NA,0.36625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485792 +AZURE,southindia,Standard_D3_v2,reserved_1y,NA,0.21975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485800 +AZURE,southindia,Standard_D3_v2,reserved_3y,NA,0.1465,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485805 +AZURE,southindia,Standard_D3_v2,spot,NA,0.109875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485796 +AZURE,southindia,Standard_D48a_v4,on_demand,NA,3.249,USD,Azure Retail Prices API,2025-12-18T04:46:51.094023 +AZURE,southindia,Standard_D48a_v4,reserved_1y,NA,1.916667,USD,Azure Retail Prices API,2025-12-18T04:46:52.041580 +AZURE,southindia,Standard_D48a_v4,reserved_3y,NA,1.234475,USD,Azure Retail Prices API,2025-12-18T04:46:52.041585 +AZURE,southindia,Standard_D48a_v4,spot,NA,0.600415,USD,Azure Retail Prices API,2025-12-18T04:46:51.094583 +AZURE,southindia,Standard_D48ads_v5,on_demand,NA,5.694,USD,Azure Retail Prices API,2025-12-18T04:46:51.094310 +AZURE,southindia,Standard_D48ads_v5,reserved_1y,NA,2.056507,USD,Azure Retail Prices API,2025-12-18T04:46:52.042661 +AZURE,southindia,Standard_D48ads_v5,reserved_3y,NA,1.324505,USD,Azure Retail Prices API,2025-12-18T04:46:52.042666 +AZURE,southindia,Standard_D48ads_v5,spot,NA,0.644213,USD,Azure Retail Prices API,2025-12-18T04:46:51.094858 +AZURE,southindia,Standard_D48ads_v6,on_demand,NA,3.854,USD,Azure Retail Prices API,2025-12-18T04:46:51.094151 +AZURE,southindia,Standard_D48ads_v6,reserved_1y,NA,2.274087,USD,Azure Retail Prices API,2025-12-18T04:46:52.041763 +AZURE,southindia,Standard_D48ads_v6,reserved_3y,NA,1.464688,USD,Azure Retail Prices API,2025-12-18T04:46:52.041768 +AZURE,southindia,Standard_D48ads_v6,spot,NA,0.712219,USD,Azure Retail Prices API,2025-12-18T04:46:51.094769 +AZURE,southindia,Standard_D48as_v4,on_demand,NA,3.249,USD,Azure Retail Prices API,2025-12-18T04:46:51.094843 +AZURE,southindia,Standard_D48as_v4,reserved_1y,NA,1.916667,USD,Azure Retail Prices API,2025-12-18T04:46:52.042533 +AZURE,southindia,Standard_D48as_v4,reserved_3y,NA,1.234475,USD,Azure Retail Prices API,2025-12-18T04:46:52.042538 +AZURE,southindia,Standard_D48as_v4,spot,NA,0.600415,USD,Azure Retail Prices API,2025-12-18T04:46:51.095404 +AZURE,southindia,Standard_D48as_v5,on_demand,NA,5.118,USD,Azure Retail Prices API,2025-12-18T04:46:51.094254 +AZURE,southindia,Standard_D48as_v5,reserved_1y,NA,1.717009,USD,Azure Retail Prices API,2025-12-18T04:46:52.043442 +AZURE,southindia,Standard_D48as_v5,reserved_3y,NA,1.105898,USD,Azure Retail Prices API,2025-12-18T04:46:52.043447 +AZURE,southindia,Standard_D48as_v5,spot,NA,0.537768,USD,Azure Retail Prices API,2025-12-18T04:46:51.095414 +AZURE,southindia,Standard_D48d_v4,on_demand,NA,3.821,USD,Azure Retail Prices API,2025-12-18T04:46:51.094657 +AZURE,southindia,Standard_D48d_v4,reserved_1y,NA,2.254338,USD,Azure Retail Prices API,2025-12-18T04:46:52.042309 +AZURE,southindia,Standard_D48d_v4,reserved_3y,NA,1.451941,USD,Azure Retail Prices API,2025-12-18T04:46:52.042314 +AZURE,southindia,Standard_D48d_v4,spot,NA,0.706121,USD,Azure Retail Prices API,2025-12-18T04:46:51.094787 +AZURE,southindia,Standard_D48ds_v4,on_demand,NA,3.821,USD,Azure Retail Prices API,2025-12-18T04:46:51.095034 +AZURE,southindia,Standard_D48ds_v4,reserved_1y,NA,2.254338,USD,Azure Retail Prices API,2025-12-18T04:46:52.042720 +AZURE,southindia,Standard_D48ds_v4,reserved_3y,NA,1.451941,USD,Azure Retail Prices API,2025-12-18T04:46:52.042725 +AZURE,southindia,Standard_D48ds_v4,spot,NA,0.706121,USD,Azure Retail Prices API,2025-12-18T04:46:51.095649 +AZURE,southindia,Standard_D48ds_v5,on_demand,NA,3.824,USD,Azure Retail Prices API,2025-12-18T04:46:51.094867 +AZURE,southindia,Standard_D48ds_v5,reserved_1y,NA,2.256164,USD,Azure Retail Prices API,2025-12-18T04:46:52.042553 +AZURE,southindia,Standard_D48ds_v5,reserved_3y,NA,1.453082,USD,Azure Retail Prices API,2025-12-18T04:46:52.042558 +AZURE,southindia,Standard_D48ds_v5,spot,NA,0.706675,USD,Azure Retail Prices API,2025-12-18T04:46:51.094798 +AZURE,southindia,Standard_D48ds_v6,on_demand,NA,4.216,USD,Azure Retail Prices API,2025-12-18T04:46:51.095163 +AZURE,southindia,Standard_D48ds_v6,reserved_1y,NA,2.613813,USD,Azure Retail Prices API,2025-12-18T04:46:52.042849 +AZURE,southindia,Standard_D48ds_v6,reserved_3y,NA,1.644178,USD,Azure Retail Prices API,2025-12-18T04:46:52.042854 +AZURE,southindia,Standard_D48ds_v6,spot,NA,0.779117,USD,Azure Retail Prices API,2025-12-18T04:46:51.095054 +AZURE,southindia,Standard_D48s_v4,on_demand,NA,3.24,USD,Azure Retail Prices API,2025-12-18T04:46:51.095203 +AZURE,southindia,Standard_D48s_v4,reserved_1y,NA,1.911644,USD,Azure Retail Prices API,2025-12-18T04:46:52.042906 +AZURE,southindia,Standard_D48s_v4,reserved_3y,NA,1.231202,USD,Azure Retail Prices API,2025-12-18T04:46:52.042911 +AZURE,southindia,Standard_D48s_v4,spot,NA,0.598752,USD,Azure Retail Prices API,2025-12-18T04:46:51.094321 +AZURE,southindia,Standard_D48s_v5,on_demand,NA,3.249,USD,Azure Retail Prices API,2025-12-18T04:46:51.095233 +AZURE,southindia,Standard_D48s_v5,reserved_1y,NA,1.916667,USD,Azure Retail Prices API,2025-12-18T04:46:52.042954 +AZURE,southindia,Standard_D48s_v5,reserved_3y,NA,1.201979,USD,Azure Retail Prices API,2025-12-18T04:46:52.042959 +AZURE,southindia,Standard_D48s_v5,spot,NA,0.600415,USD,Azure Retail Prices API,2025-12-18T04:46:51.095688 +AZURE,southindia,Standard_D4_v2,on_demand,NA,0.73125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486645 +AZURE,southindia,Standard_D4_v2,reserved_1y,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486658 +AZURE,southindia,Standard_D4_v2,reserved_3y,NA,0.2925,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486665 +AZURE,southindia,Standard_D4_v2,spot,NA,0.219375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486652 +AZURE,southindia,Standard_D4a_v4,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:46:51.094737 +AZURE,southindia,Standard_D4a_v4,reserved_1y,NA,0.159703,USD,Azure Retail Prices API,2025-12-18T04:46:52.042426 +AZURE,southindia,Standard_D4a_v4,reserved_3y,NA,0.102892,USD,Azure Retail Prices API,2025-12-18T04:46:52.042431 +AZURE,southindia,Standard_D4a_v4,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:46:51.094510 +AZURE,southindia,Standard_D4ads_v5,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:46:51.094439 +AZURE,southindia,Standard_D4ads_v5,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:46:52.042027 +AZURE,southindia,Standard_D4ads_v5,reserved_3y,NA,0.110388,USD,Azure Retail Prices API,2025-12-18T04:46:52.042032 +AZURE,southindia,Standard_D4ads_v5,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:46:51.095227 +AZURE,southindia,Standard_D4ads_v6,on_demand,NA,0.321,USD,Azure Retail Prices API,2025-12-18T04:46:51.094361 +AZURE,southindia,Standard_D4ads_v6,reserved_1y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:46:52.041969 +AZURE,southindia,Standard_D4ads_v6,reserved_3y,NA,0.12207,USD,Azure Retail Prices API,2025-12-18T04:46:52.041974 +AZURE,southindia,Standard_D4ads_v6,spot,NA,0.059321,USD,Azure Retail Prices API,2025-12-18T04:46:51.095593 +AZURE,southindia,Standard_D4as_v5,on_demand,NA,0.243,USD,Azure Retail Prices API,2025-12-18T04:46:51.095538 +AZURE,southindia,Standard_D4as_v5,reserved_1y,NA,0.143037,USD,Azure Retail Prices API,2025-12-18T04:46:52.043520 +AZURE,southindia,Standard_D4as_v5,reserved_3y,NA,0.092161,USD,Azure Retail Prices API,2025-12-18T04:46:52.043525 +AZURE,southindia,Standard_D4as_v5,spot,NA,0.044906,USD,Azure Retail Prices API,2025-12-18T04:46:51.095448 +AZURE,southindia,Standard_D4d_v4,on_demand,NA,0.318,USD,Azure Retail Prices API,2025-12-18T04:46:51.094043 +AZURE,southindia,Standard_D4d_v4,reserved_1y,NA,0.1879,USD,Azure Retail Prices API,2025-12-18T04:46:52.041629 +AZURE,southindia,Standard_D4d_v4,reserved_3y,NA,0.121005,USD,Azure Retail Prices API,2025-12-18T04:46:52.041635 +AZURE,southindia,Standard_D4d_v4,spot,NA,0.058766,USD,Azure Retail Prices API,2025-12-18T04:46:51.095710 +AZURE,southindia,Standard_D4ds_v4,on_demand,NA,0.318,USD,Azure Retail Prices API,2025-12-18T04:46:51.094148 +AZURE,southindia,Standard_D4ds_v4,reserved_1y,NA,0.1879,USD,Azure Retail Prices API,2025-12-18T04:46:52.041753 +AZURE,southindia,Standard_D4ds_v4,reserved_3y,NA,0.121005,USD,Azure Retail Prices API,2025-12-18T04:46:52.041758 +AZURE,southindia,Standard_D4ds_v4,spot,NA,0.058766,USD,Azure Retail Prices API,2025-12-18T04:46:51.094232 +AZURE,southindia,Standard_D4ds_v5,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:46:51.095289 +AZURE,southindia,Standard_D4ds_v5,reserved_1y,NA,0.188014,USD,Azure Retail Prices API,2025-12-18T04:46:52.043163 +AZURE,southindia,Standard_D4ds_v5,reserved_3y,NA,0.121081,USD,Azure Retail Prices API,2025-12-18T04:46:52.043167 +AZURE,southindia,Standard_D4ds_v5,spot,NA,0.058951,USD,Azure Retail Prices API,2025-12-18T04:46:51.094782 +AZURE,southindia,Standard_D4ds_v6,on_demand,NA,0.351,USD,Azure Retail Prices API,2025-12-18T04:46:51.095253 +AZURE,southindia,Standard_D4ds_v6,reserved_1y,NA,0.217808,USD,Azure Retail Prices API,2025-12-18T04:46:52.043012 +AZURE,southindia,Standard_D4ds_v6,reserved_3y,NA,0.137024,USD,Azure Retail Prices API,2025-12-18T04:46:52.043017 +AZURE,southindia,Standard_D4ds_v6,spot,NA,0.064865,USD,Azure Retail Prices API,2025-12-18T04:46:51.094516 +AZURE,southindia,Standard_D4s_v3,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:46:51.094114 +AZURE,southindia,Standard_D4s_v3,reserved_1y,NA,0.171575,USD,Azure Retail Prices API,2025-12-18T04:46:52.041706 +AZURE,southindia,Standard_D4s_v3,reserved_3y,NA,0.108257,USD,Azure Retail Prices API,2025-12-18T04:46:52.041711 +AZURE,southindia,Standard_D4s_v3,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:46:51.094062 +AZURE,southindia,Standard_D4s_v4,on_demand,NA,0.27,USD,Azure Retail Prices API,2025-12-18T04:46:51.094072 +AZURE,southindia,Standard_D4s_v4,reserved_1y,NA,0.159247,USD,Azure Retail Prices API,2025-12-18T04:46:52.041669 +AZURE,southindia,Standard_D4s_v4,reserved_3y,NA,0.102588,USD,Azure Retail Prices API,2025-12-18T04:46:52.041673 +AZURE,southindia,Standard_D4s_v4,spot,NA,0.049896,USD,Azure Retail Prices API,2025-12-18T04:46:51.094562 +AZURE,southindia,Standard_D4s_v5,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:46:51.094911 +AZURE,southindia,Standard_D4s_v5,reserved_1y,NA,0.159703,USD,Azure Retail Prices API,2025-12-18T04:46:52.042582 +AZURE,southindia,Standard_D4s_v5,reserved_3y,NA,0.100152,USD,Azure Retail Prices API,2025-12-18T04:46:52.042587 +AZURE,southindia,Standard_D4s_v5,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:46:51.095654 +AZURE,southindia,Standard_D5_v2,on_demand,NA,1.4625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487901 +AZURE,southindia,Standard_D5_v2,reserved_1y,NA,0.8775,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487909 +AZURE,southindia,Standard_D5_v2,reserved_3y,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487913 +AZURE,southindia,Standard_D5_v2,spot,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487905 +AZURE,southindia,Standard_D64_v3,on_demand,NA,4.328,USD,Azure Retail Prices API,2025-12-18T04:46:51.094208 +AZURE,southindia,Standard_D64_v3,reserved_1y,NA,2.747374,USD,Azure Retail Prices API,2025-12-18T04:46:52.041831 +AZURE,southindia,Standard_D64_v3,reserved_3y,NA,1.732572,USD,Azure Retail Prices API,2025-12-18T04:46:52.041835 +AZURE,southindia,Standard_D64_v3,spot,NA,0.799814,USD,Azure Retail Prices API,2025-12-18T04:46:51.095224 +AZURE,southindia,Standard_D64a_v4,on_demand,NA,4.332,USD,Azure Retail Prices API,2025-12-18T04:46:51.094278 +AZURE,southindia,Standard_D64a_v4,reserved_1y,NA,2.555594,USD,Azure Retail Prices API,2025-12-18T04:46:52.041880 +AZURE,southindia,Standard_D64a_v4,reserved_3y,NA,1.645967,USD,Azure Retail Prices API,2025-12-18T04:46:52.041885 +AZURE,southindia,Standard_D64a_v4,spot,NA,0.800554,USD,Azure Retail Prices API,2025-12-18T04:46:51.094741 +AZURE,southindia,Standard_D64ads_v5,on_demand,NA,7.591,USD,Azure Retail Prices API,2025-12-18T04:46:51.094604 +AZURE,southindia,Standard_D64ads_v5,reserved_1y,NA,2.741895,USD,Azure Retail Prices API,2025-12-18T04:46:52.042936 +AZURE,southindia,Standard_D64ads_v5,reserved_3y,NA,1.765982,USD,Azure Retail Prices API,2025-12-18T04:46:52.042941 +AZURE,southindia,Standard_D64ads_v5,spot,NA,0.858766,USD,Azure Retail Prices API,2025-12-18T04:46:51.095580 +AZURE,southindia,Standard_D64ads_v6,on_demand,NA,5.139,USD,Azure Retail Prices API,2025-12-18T04:46:51.095326 +AZURE,southindia,Standard_D64ads_v6,reserved_1y,NA,3.032078,USD,Azure Retail Prices API,2025-12-18T04:46:52.043231 +AZURE,southindia,Standard_D64ads_v6,reserved_3y,NA,1.952892,USD,Azure Retail Prices API,2025-12-18T04:46:52.043235 +AZURE,southindia,Standard_D64ads_v6,spot,NA,0.949687,USD,Azure Retail Prices API,2025-12-18T04:46:51.094613 +AZURE,southindia,Standard_D64as_v4,on_demand,NA,4.332,USD,Azure Retail Prices API,2025-12-18T04:46:51.094664 +AZURE,southindia,Standard_D64as_v4,reserved_1y,NA,2.555594,USD,Azure Retail Prices API,2025-12-18T04:46:52.042319 +AZURE,southindia,Standard_D64as_v4,reserved_3y,NA,1.645967,USD,Azure Retail Prices API,2025-12-18T04:46:52.042323 +AZURE,southindia,Standard_D64as_v4,spot,NA,0.800554,USD,Azure Retail Prices API,2025-12-18T04:46:51.093993 +AZURE,southindia,Standard_D64as_v5,on_demand,NA,6.824,USD,Azure Retail Prices API,2025-12-18T04:46:51.094500 +AZURE,southindia,Standard_D64as_v5,reserved_1y,NA,2.289384,USD,Azure Retail Prices API,2025-12-18T04:46:52.042973 +AZURE,southindia,Standard_D64as_v5,reserved_3y,NA,1.474505,USD,Azure Retail Prices API,2025-12-18T04:46:52.042979 +AZURE,southindia,Standard_D64as_v5,spot,NA,0.717024,USD,Azure Retail Prices API,2025-12-18T04:46:51.095215 +AZURE,southindia,Standard_D64d_v4,on_demand,NA,5.095,USD,Azure Retail Prices API,2025-12-18T04:46:51.094139 +AZURE,southindia,Standard_D64d_v4,reserved_1y,NA,3.005822,USD,Azure Retail Prices API,2025-12-18T04:46:52.041734 +AZURE,southindia,Standard_D64d_v4,reserved_3y,NA,1.935959,USD,Azure Retail Prices API,2025-12-18T04:46:52.041739 +AZURE,southindia,Standard_D64d_v4,spot,NA,0.941556,USD,Azure Retail Prices API,2025-12-18T04:46:51.095194 +AZURE,southindia,Standard_D64ds_v4,on_demand,NA,5.095,USD,Azure Retail Prices API,2025-12-18T04:46:51.093973 +AZURE,southindia,Standard_D64ds_v4,reserved_1y,NA,3.005822,USD,Azure Retail Prices API,2025-12-18T04:46:52.041508 +AZURE,southindia,Standard_D64ds_v4,reserved_3y,NA,1.935959,USD,Azure Retail Prices API,2025-12-18T04:46:52.041513 +AZURE,southindia,Standard_D64ds_v4,spot,NA,0.941556,USD,Azure Retail Prices API,2025-12-18T04:46:51.094934 +AZURE,southindia,Standard_D64ds_v5,on_demand,NA,5.099,USD,Azure Retail Prices API,2025-12-18T04:46:51.095692 +AZURE,southindia,Standard_D64ds_v5,reserved_1y,NA,3.008105,USD,Azure Retail Prices API,2025-12-18T04:46:52.043677 +AZURE,southindia,Standard_D64ds_v5,reserved_3y,NA,1.937443,USD,Azure Retail Prices API,2025-12-18T04:46:52.043682 +AZURE,southindia,Standard_D64ds_v5,spot,NA,0.942295,USD,Azure Retail Prices API,2025-12-18T04:46:51.094411 +AZURE,southindia,Standard_D64ds_v6,on_demand,NA,5.621,USD,Azure Retail Prices API,2025-12-18T04:46:51.095105 +AZURE,southindia,Standard_D64ds_v6,reserved_1y,NA,3.485046,USD,Azure Retail Prices API,2025-12-18T04:46:52.042779 +AZURE,southindia,Standard_D64ds_v6,reserved_3y,NA,2.192237,USD,Azure Retail Prices API,2025-12-18T04:46:52.042784 +AZURE,southindia,Standard_D64ds_v6,spot,NA,1.038761,USD,Azure Retail Prices API,2025-12-18T04:46:51.095667 +AZURE,southindia,Standard_D64s_v3,on_demand,NA,4.328,USD,Azure Retail Prices API,2025-12-18T04:46:51.094528 +AZURE,southindia,Standard_D64s_v3,reserved_1y,NA,2.747374,USD,Azure Retail Prices API,2025-12-18T04:46:52.042155 +AZURE,southindia,Standard_D64s_v3,reserved_3y,NA,1.732572,USD,Azure Retail Prices API,2025-12-18T04:46:52.042160 +AZURE,southindia,Standard_D64s_v3,spot,NA,0.799814,USD,Azure Retail Prices API,2025-12-18T04:46:51.094993 +AZURE,southindia,Standard_D64s_v4,on_demand,NA,4.32,USD,Azure Retail Prices API,2025-12-18T04:46:51.094645 +AZURE,southindia,Standard_D64s_v4,reserved_1y,NA,2.548744,USD,Azure Retail Prices API,2025-12-18T04:46:52.042300 +AZURE,southindia,Standard_D64s_v4,reserved_3y,NA,1.641591,USD,Azure Retail Prices API,2025-12-18T04:46:52.042305 +AZURE,southindia,Standard_D64s_v4,spot,NA,0.798336,USD,Azure Retail Prices API,2025-12-18T04:46:51.093963 +AZURE,southindia,Standard_D64s_v5,on_demand,NA,4.332,USD,Azure Retail Prices API,2025-12-18T04:46:51.095354 +AZURE,southindia,Standard_D64s_v5,reserved_1y,NA,2.555594,USD,Azure Retail Prices API,2025-12-18T04:46:52.043279 +AZURE,southindia,Standard_D64s_v5,reserved_3y,NA,1.602664,USD,Azure Retail Prices API,2025-12-18T04:46:52.043284 +AZURE,southindia,Standard_D64s_v5,spot,NA,0.800554,USD,Azure Retail Prices API,2025-12-18T04:46:51.094054 +AZURE,southindia,Standard_D8_v3,on_demand,NA,0.541,USD,Azure Retail Prices API,2025-12-18T04:46:51.095131 +AZURE,southindia,Standard_D8_v3,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:46:52.042819 +AZURE,southindia,Standard_D8_v3,reserved_3y,NA,0.216553,USD,Azure Retail Prices API,2025-12-18T04:46:52.042824 +AZURE,southindia,Standard_D8_v3,spot,NA,0.099977,USD,Azure Retail Prices API,2025-12-18T04:46:51.094188 +AZURE,southindia,Standard_D8a_v4,on_demand,NA,0.541,USD,Azure Retail Prices API,2025-12-18T04:46:51.094712 +AZURE,southindia,Standard_D8a_v4,reserved_1y,NA,0.319406,USD,Azure Retail Prices API,2025-12-18T04:46:52.042397 +AZURE,southindia,Standard_D8a_v4,reserved_3y,NA,0.205746,USD,Azure Retail Prices API,2025-12-18T04:46:52.042402 +AZURE,southindia,Standard_D8a_v4,spot,NA,0.099977,USD,Azure Retail Prices API,2025-12-18T04:46:51.095377 +AZURE,southindia,Standard_D8ads_v5,on_demand,NA,0.949,USD,Azure Retail Prices API,2025-12-18T04:46:51.094983 +AZURE,southindia,Standard_D8ads_v5,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:46:52.042945 +AZURE,southindia,Standard_D8ads_v5,reserved_3y,NA,0.220738,USD,Azure Retail Prices API,2025-12-18T04:46:52.042950 +AZURE,southindia,Standard_D8ads_v5,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:46:51.095681 +AZURE,southindia,Standard_D8ads_v6,on_demand,NA,0.642,USD,Azure Retail Prices API,2025-12-18T04:46:51.094598 +AZURE,southindia,Standard_D8ads_v6,reserved_1y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:46:52.042251 +AZURE,southindia,Standard_D8ads_v6,reserved_3y,NA,0.244102,USD,Azure Retail Prices API,2025-12-18T04:46:52.042256 +AZURE,southindia,Standard_D8ads_v6,spot,NA,0.118642,USD,Azure Retail Prices API,2025-12-18T04:46:51.094006 +AZURE,southindia,Standard_D8as_v4,on_demand,NA,0.541,USD,Azure Retail Prices API,2025-12-18T04:46:51.094452 +AZURE,southindia,Standard_D8as_v4,reserved_1y,NA,0.319406,USD,Azure Retail Prices API,2025-12-18T04:46:52.042057 +AZURE,southindia,Standard_D8as_v4,reserved_3y,NA,0.205746,USD,Azure Retail Prices API,2025-12-18T04:46:52.042061 +AZURE,southindia,Standard_D8as_v4,spot,NA,0.099977,USD,Azure Retail Prices API,2025-12-18T04:46:51.094928 +AZURE,southindia,Standard_D8as_v5,on_demand,NA,0.485,USD,Azure Retail Prices API,2025-12-18T04:46:51.093934 +AZURE,southindia,Standard_D8as_v5,reserved_1y,NA,0.286187,USD,Azure Retail Prices API,2025-12-18T04:46:52.041456 +AZURE,southindia,Standard_D8as_v5,reserved_3y,NA,0.184323,USD,Azure Retail Prices API,2025-12-18T04:46:52.041462 +AZURE,southindia,Standard_D8as_v5,spot,NA,0.089628,USD,Azure Retail Prices API,2025-12-18T04:46:51.094442 +AZURE,southindia,Standard_D8d_v4,on_demand,NA,0.637,USD,Azure Retail Prices API,2025-12-18T04:46:51.094607 +AZURE,southindia,Standard_D8d_v4,reserved_1y,NA,0.375685,USD,Azure Retail Prices API,2025-12-18T04:46:52.042261 +AZURE,southindia,Standard_D8d_v4,reserved_3y,NA,0.242009,USD,Azure Retail Prices API,2025-12-18T04:46:52.042266 +AZURE,southindia,Standard_D8d_v4,spot,NA,0.117718,USD,Azure Retail Prices API,2025-12-18T04:46:51.094075 +AZURE,southindia,Standard_D8ds_v4,on_demand,NA,0.637,USD,Azure Retail Prices API,2025-12-18T04:46:51.095351 +AZURE,southindia,Standard_D8ds_v4,reserved_1y,NA,0.375685,USD,Azure Retail Prices API,2025-12-18T04:46:52.043269 +AZURE,southindia,Standard_D8ds_v4,reserved_3y,NA,0.242009,USD,Azure Retail Prices API,2025-12-18T04:46:52.043274 +AZURE,southindia,Standard_D8ds_v4,spot,NA,0.117718,USD,Azure Retail Prices API,2025-12-18T04:46:51.095191 +AZURE,southindia,Standard_D8ds_v5,on_demand,NA,0.637,USD,Azure Retail Prices API,2025-12-18T04:46:51.095429 +AZURE,southindia,Standard_D8ds_v5,reserved_1y,NA,0.376027,USD,Azure Retail Prices API,2025-12-18T04:46:52.043414 +AZURE,southindia,Standard_D8ds_v5,reserved_3y,NA,0.242199,USD,Azure Retail Prices API,2025-12-18T04:46:52.043419 +AZURE,southindia,Standard_D8ds_v5,spot,NA,0.117718,USD,Azure Retail Prices API,2025-12-18T04:46:51.094041 +AZURE,southindia,Standard_D8ds_v6,on_demand,NA,0.703,USD,Azure Retail Prices API,2025-12-18T04:46:51.094546 +AZURE,southindia,Standard_D8ds_v6,reserved_1y,NA,0.435616,USD,Azure Retail Prices API,2025-12-18T04:46:52.042194 +AZURE,southindia,Standard_D8ds_v6,reserved_3y,NA,0.274011,USD,Azure Retail Prices API,2025-12-18T04:46:52.042199 +AZURE,southindia,Standard_D8ds_v6,spot,NA,0.129914,USD,Azure Retail Prices API,2025-12-18T04:46:51.095658 +AZURE,southindia,Standard_D8s_v3,on_demand,NA,0.541,USD,Azure Retail Prices API,2025-12-18T04:46:51.094380 +AZURE,southindia,Standard_D8s_v3,reserved_1y,NA,0.343379,USD,Azure Retail Prices API,2025-12-18T04:46:52.041988 +AZURE,southindia,Standard_D8s_v3,reserved_3y,NA,0.216553,USD,Azure Retail Prices API,2025-12-18T04:46:52.041993 +AZURE,southindia,Standard_D8s_v3,spot,NA,0.099977,USD,Azure Retail Prices API,2025-12-18T04:46:51.094660 +AZURE,southindia,Standard_D8s_v4,on_demand,NA,0.54,USD,Azure Retail Prices API,2025-12-18T04:46:51.095239 +AZURE,southindia,Standard_D8s_v4,reserved_1y,NA,0.318607,USD,Azure Retail Prices API,2025-12-18T04:46:52.042983 +AZURE,southindia,Standard_D8s_v4,reserved_3y,NA,0.205213,USD,Azure Retail Prices API,2025-12-18T04:46:52.042988 +AZURE,southindia,Standard_D8s_v4,spot,NA,0.099792,USD,Azure Retail Prices API,2025-12-18T04:46:51.094052 +AZURE,southindia,Standard_D8s_v5,on_demand,NA,0.541,USD,Azure Retail Prices API,2025-12-18T04:46:51.095271 +AZURE,southindia,Standard_D8s_v5,reserved_1y,NA,0.319406,USD,Azure Retail Prices API,2025-12-18T04:46:52.043041 +AZURE,southindia,Standard_D8s_v5,reserved_3y,NA,0.200342,USD,Azure Retail Prices API,2025-12-18T04:46:52.043046 +AZURE,southindia,Standard_D8s_v5,spot,NA,0.099977,USD,Azure Retail Prices API,2025-12-18T04:46:51.094944 +AZURE,southindia,Standard_D96a_v4,on_demand,NA,6.497,USD,Azure Retail Prices API,2025-12-18T04:46:51.094825 +AZURE,southindia,Standard_D96a_v4,reserved_1y,NA,3.833447,USD,Azure Retail Prices API,2025-12-18T04:46:52.042514 +AZURE,southindia,Standard_D96a_v4,reserved_3y,NA,2.46895,USD,Azure Retail Prices API,2025-12-18T04:46:52.042518 +AZURE,southindia,Standard_D96a_v4,spot,NA,1.200646,USD,Azure Retail Prices API,2025-12-18T04:46:51.094816 +AZURE,southindia,Standard_D96ads_v5,on_demand,NA,11.387,USD,Azure Retail Prices API,2025-12-18T04:46:51.094301 +AZURE,southindia,Standard_D96ads_v5,reserved_1y,NA,4.1129,USD,Azure Retail Prices API,2025-12-18T04:46:52.042749 +AZURE,southindia,Standard_D96ads_v5,reserved_3y,NA,2.649011,USD,Azure Retail Prices API,2025-12-18T04:46:52.042755 +AZURE,southindia,Standard_D96ads_v5,spot,NA,1.288241,USD,Azure Retail Prices API,2025-12-18T04:46:51.094375 +AZURE,southindia,Standard_D96ads_v6,on_demand,NA,7.709,USD,Azure Retail Prices API,2025-12-18T04:46:51.094390 +AZURE,southindia,Standard_D96ads_v6,reserved_1y,NA,4.548174,USD,Azure Retail Prices API,2025-12-18T04:46:52.041997 +AZURE,southindia,Standard_D96ads_v6,reserved_3y,NA,2.929338,USD,Azure Retail Prices API,2025-12-18T04:46:52.042002 +AZURE,southindia,Standard_D96ads_v6,spot,NA,1.424623,USD,Azure Retail Prices API,2025-12-18T04:46:51.094695 +AZURE,southindia,Standard_D96as_v4,on_demand,NA,6.497,USD,Azure Retail Prices API,2025-12-18T04:46:51.095362 +AZURE,southindia,Standard_D96as_v4,reserved_1y,NA,3.833447,USD,Azure Retail Prices API,2025-12-18T04:46:52.043308 +AZURE,southindia,Standard_D96as_v4,reserved_3y,NA,2.46895,USD,Azure Retail Prices API,2025-12-18T04:46:52.043313 +AZURE,southindia,Standard_D96as_v4,spot,NA,1.200646,USD,Azure Retail Prices API,2025-12-18T04:46:51.094109 +AZURE,southindia,Standard_D96as_v5,on_demand,NA,10.236,USD,Azure Retail Prices API,2025-12-18T04:46:51.094708 +AZURE,southindia,Standard_D96as_v5,reserved_1y,NA,3.434132,USD,Azure Retail Prices API,2025-12-18T04:46:52.043589 +AZURE,southindia,Standard_D96as_v5,reserved_3y,NA,2.211796,USD,Azure Retail Prices API,2025-12-18T04:46:52.043593 +AZURE,southindia,Standard_D96as_v5,spot,NA,1.075536,USD,Azure Retail Prices API,2025-12-18T04:46:51.094471 +AZURE,southindia,Standard_D96ds_v5,on_demand,NA,7.648,USD,Azure Retail Prices API,2025-12-18T04:46:51.094922 +AZURE,southindia,Standard_D96ds_v5,reserved_1y,NA,4.512215,USD,Azure Retail Prices API,2025-12-18T04:46:52.042602 +AZURE,southindia,Standard_D96ds_v5,reserved_3y,NA,2.906164,USD,Azure Retail Prices API,2025-12-18T04:46:52.042607 +AZURE,southindia,Standard_D96ds_v5,spot,NA,1.41335,USD,Azure Retail Prices API,2025-12-18T04:46:51.095627 +AZURE,southindia,Standard_D96ds_v6,on_demand,NA,8.432,USD,Azure Retail Prices API,2025-12-18T04:46:51.094703 +AZURE,southindia,Standard_D96ds_v6,reserved_1y,NA,5.227626,USD,Azure Retail Prices API,2025-12-18T04:46:52.042387 +AZURE,southindia,Standard_D96ds_v6,reserved_3y,NA,3.288356,USD,Azure Retail Prices API,2025-12-18T04:46:52.042393 +AZURE,southindia,Standard_D96ds_v6,spot,NA,1.558234,USD,Azure Retail Prices API,2025-12-18T04:46:51.094106 +AZURE,southindia,Standard_D96s_v5,on_demand,NA,6.497,USD,Azure Retail Prices API,2025-12-18T04:46:51.095380 +AZURE,southindia,Standard_D96s_v5,reserved_1y,NA,3.833447,USD,Azure Retail Prices API,2025-12-18T04:46:52.043337 +AZURE,southindia,Standard_D96s_v5,reserved_3y,NA,2.403995,USD,Azure Retail Prices API,2025-12-18T04:46:52.043342 +AZURE,southindia,Standard_D96s_v5,spot,NA,1.200646,USD,Azure Retail Prices API,2025-12-18T04:46:51.094365 +AZURE,southindia,Standard_DC16ads_v6,on_demand,NA,1.285,USD,Azure Retail Prices API,2025-12-18T04:46:51.094068 +AZURE,southindia,Standard_DC16ads_v6,reserved_1y,NA,0.757991,USD,Azure Retail Prices API,2025-12-18T04:46:52.041659 +AZURE,southindia,Standard_DC16ads_v6,reserved_3y,NA,0.488242,USD,Azure Retail Prices API,2025-12-18T04:46:52.041664 +AZURE,southindia,Standard_DC16ads_v6,spot,NA,0.237468,USD,Azure Retail Prices API,2025-12-18T04:46:51.095049 +AZURE,southindia,Standard_DC2ads_v6,on_demand,NA,0.161,USD,Azure Retail Prices API,2025-12-18T04:46:51.094628 +AZURE,southindia,Standard_DC2ads_v6,reserved_1y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:46:52.042280 +AZURE,southindia,Standard_DC2ads_v6,reserved_3y,NA,0.061035,USD,Azure Retail Prices API,2025-12-18T04:46:52.042285 +AZURE,southindia,Standard_DC2ads_v6,spot,NA,0.029753,USD,Azure Retail Prices API,2025-12-18T04:46:51.095543 +AZURE,southindia,Standard_DC32ads_v6,on_demand,NA,2.57,USD,Azure Retail Prices API,2025-12-18T04:46:51.095586 +AZURE,southindia,Standard_DC32ads_v6,reserved_1y,NA,1.516096,USD,Azure Retail Prices API,2025-12-18T04:46:52.043568 +AZURE,southindia,Standard_DC32ads_v6,reserved_3y,NA,0.976446,USD,Azure Retail Prices API,2025-12-18T04:46:52.043574 +AZURE,southindia,Standard_DC32ads_v6,spot,NA,0.474936,USD,Azure Retail Prices API,2025-12-18T04:46:51.094103 +AZURE,southindia,Standard_DC48ads_v6,on_demand,NA,3.854,USD,Azure Retail Prices API,2025-12-18T04:46:51.095467 +AZURE,southindia,Standard_DC48ads_v6,reserved_1y,NA,2.274087,USD,Azure Retail Prices API,2025-12-18T04:46:52.043433 +AZURE,southindia,Standard_DC48ads_v6,reserved_3y,NA,1.464688,USD,Azure Retail Prices API,2025-12-18T04:46:52.043437 +AZURE,southindia,Standard_DC48ads_v6,spot,NA,0.712219,USD,Azure Retail Prices API,2025-12-18T04:46:51.094631 +AZURE,southindia,Standard_DC4ads_v6,on_demand,NA,0.321,USD,Azure Retail Prices API,2025-12-18T04:46:51.095423 +AZURE,southindia,Standard_DC4ads_v6,reserved_1y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:46:52.043404 +AZURE,southindia,Standard_DC4ads_v6,reserved_3y,NA,0.12207,USD,Azure Retail Prices API,2025-12-18T04:46:52.043409 +AZURE,southindia,Standard_DC4ads_v6,spot,NA,0.059321,USD,Azure Retail Prices API,2025-12-18T04:46:51.094667 +AZURE,southindia,Standard_DC64ads_v6,on_demand,NA,5.139,USD,Azure Retail Prices API,2025-12-18T04:46:51.095713 +AZURE,southindia,Standard_DC64ads_v6,reserved_1y,NA,3.032078,USD,Azure Retail Prices API,2025-12-18T04:46:52.043697 +AZURE,southindia,Standard_DC64ads_v6,reserved_3y,NA,1.952892,USD,Azure Retail Prices API,2025-12-18T04:46:52.043702 +AZURE,southindia,Standard_DC64ads_v6,spot,NA,0.949687,USD,Azure Retail Prices API,2025-12-18T04:46:51.094574 +AZURE,southindia,Standard_DC8ads_v6,on_demand,NA,0.642,USD,Azure Retail Prices API,2025-12-18T04:46:51.094080 +AZURE,southindia,Standard_DC8ads_v6,reserved_1y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:46:52.041678 +AZURE,southindia,Standard_DC8ads_v6,reserved_3y,NA,0.244102,USD,Azure Retail Prices API,2025-12-18T04:46:52.041682 +AZURE,southindia,Standard_DC8ads_v6,spot,NA,0.118642,USD,Azure Retail Prices API,2025-12-18T04:46:51.094263 +AZURE,southindia,Standard_DC96ads_v6,on_demand,NA,7.709,USD,Azure Retail Prices API,2025-12-18T04:46:51.095644 +AZURE,southindia,Standard_DC96ads_v6,reserved_1y,NA,4.548174,USD,Azure Retail Prices API,2025-12-18T04:46:52.043648 +AZURE,southindia,Standard_DC96ads_v6,reserved_3y,NA,2.929338,USD,Azure Retail Prices API,2025-12-18T04:46:52.043653 +AZURE,southindia,Standard_DC96ads_v6,spot,NA,1.424623,USD,Azure Retail Prices API,2025-12-18T04:46:51.094610 +AZURE,southindia,Standard_DS12_v2,on_demand,NA,0.46375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495678 +AZURE,southindia,Standard_DS12_v2,reserved_1y,NA,0.27825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495691 +AZURE,southindia,Standard_DS12_v2,reserved_3y,NA,0.1855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495695 +AZURE,southindia,Standard_DS12_v2,spot,NA,0.139125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495686 +AZURE,southindia,Standard_DS13_v2,on_demand,NA,0.92625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496572 +AZURE,southindia,Standard_DS13_v2,reserved_1y,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496580 +AZURE,southindia,Standard_DS13_v2,reserved_3y,NA,0.3705,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496584 +AZURE,southindia,Standard_DS13_v2,spot,NA,0.277875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496576 +AZURE,southindia,Standard_DS14_v2,on_demand,NA,1.8525,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497429 +AZURE,southindia,Standard_DS14_v2,reserved_1y,NA,1.1115,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497439 +AZURE,southindia,Standard_DS14_v2,reserved_3y,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497443 +AZURE,southindia,Standard_DS14_v2,spot,NA,0.55575,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497433 +AZURE,southindia,Standard_DS15_v2,on_demand,NA,2.31625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498195 +AZURE,southindia,Standard_DS15_v2,reserved_1y,NA,1.38975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498203 +AZURE,southindia,Standard_DS15_v2,reserved_3y,NA,0.9265,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498207 +AZURE,southindia,Standard_DS15_v2,spot,NA,0.694875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498199 +AZURE,southindia,Standard_DS1_v2,on_demand,NA,0.09125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492039 +AZURE,southindia,Standard_DS1_v2,reserved_1y,NA,0.05475,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492047 +AZURE,southindia,Standard_DS1_v2,reserved_3y,NA,0.0365,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492051 +AZURE,southindia,Standard_DS1_v2,spot,NA,0.027375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492043 +AZURE,southindia,Standard_DS2_v2,on_demand,NA,0.1825,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492750 +AZURE,southindia,Standard_DS2_v2,reserved_1y,NA,0.1095,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492759 +AZURE,southindia,Standard_DS2_v2,reserved_3y,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492763 +AZURE,southindia,Standard_DS2_v2,spot,NA,0.05475,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492754 +AZURE,southindia,Standard_DS3_v2,on_demand,NA,0.36625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493484 +AZURE,southindia,Standard_DS3_v2,reserved_1y,NA,0.21975,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493492 +AZURE,southindia,Standard_DS3_v2,reserved_3y,NA,0.1465,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493496 +AZURE,southindia,Standard_DS3_v2,spot,NA,0.109875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493488 +AZURE,southindia,Standard_DS4_v2,on_demand,NA,0.73125,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494196 +AZURE,southindia,Standard_DS4_v2,reserved_1y,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494204 +AZURE,southindia,Standard_DS4_v2,reserved_3y,NA,0.2925,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494208 +AZURE,southindia,Standard_DS4_v2,spot,NA,0.219375,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494200 +AZURE,southindia,Standard_DS5_v2,on_demand,NA,1.4625,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494908 +AZURE,southindia,Standard_DS5_v2,reserved_1y,NA,0.8775,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494916 +AZURE,southindia,Standard_DS5_v2,reserved_3y,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494920 +AZURE,southindia,Standard_DS5_v2,spot,NA,0.43875,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494912 +AZURE,southindia,Standard_E128ds_v6,on_demand,NA,14.756,USD,Azure Retail Prices API,2025-12-18T04:46:51.095298 +AZURE,southindia,Standard_E128ds_v6,reserved_1y,NA,9.14863,USD,Azure Retail Prices API,2025-12-18T04:46:52.043183 +AZURE,southindia,Standard_E128ds_v6,reserved_3y,NA,5.754795,USD,Azure Retail Prices API,2025-12-18T04:46:52.043188 +AZURE,southindia,Standard_E128ds_v6,spot,NA,2.726909,USD,Azure Retail Prices API,2025-12-18T04:46:51.095259 +AZURE,southindia,Standard_E16_v3,on_demand,NA,1.334,USD,Azure Retail Prices API,2025-12-18T04:46:51.094435 +AZURE,southindia,Standard_E16_v3,reserved_1y,NA,0.857877,USD,Azure Retail Prices API,2025-12-18T04:46:52.042017 +AZURE,southindia,Standard_E16_v3,reserved_3y,NA,0.548668,USD,Azure Retail Prices API,2025-12-18T04:46:52.042022 +AZURE,southindia,Standard_E16_v3,spot,NA,0.246523,USD,Azure Retail Prices API,2025-12-18T04:46:51.095482 +AZURE,southindia,Standard_E16a_v4,on_demand,NA,1.421,USD,Azure Retail Prices API,2025-12-18T04:46:51.095210 +AZURE,southindia,Standard_E16a_v4,reserved_1y,NA,0.838584,USD,Azure Retail Prices API,2025-12-18T04:46:52.042916 +AZURE,southindia,Standard_E16a_v4,reserved_3y,NA,0.540068,USD,Azure Retail Prices API,2025-12-18T04:46:52.042920 +AZURE,southindia,Standard_E16a_v4,spot,NA,0.262601,USD,Azure Retail Prices API,2025-12-18T04:46:51.094586 +AZURE,southindia,Standard_E16ads_v5,on_demand,NA,1.478,USD,Azure Retail Prices API,2025-12-18T04:46:51.095091 +AZURE,southindia,Standard_E16ads_v5,reserved_1y,NA,0.871804,USD,Azure Retail Prices API,2025-12-18T04:46:52.042759 +AZURE,southindia,Standard_E16ads_v5,reserved_3y,NA,0.56153,USD,Azure Retail Prices API,2025-12-18T04:46:52.042764 +AZURE,southindia,Standard_E16ads_v5,spot,NA,0.273134,USD,Azure Retail Prices API,2025-12-18T04:46:51.095040 +AZURE,southindia,Standard_E16ads_v6,on_demand,NA,1.634,USD,Azure Retail Prices API,2025-12-18T04:46:51.094670 +AZURE,southindia,Standard_E16ads_v6,reserved_1y,NA,0.963813,USD,Azure Retail Prices API,2025-12-18T04:46:52.042329 +AZURE,southindia,Standard_E16ads_v6,reserved_3y,NA,0.620776,USD,Azure Retail Prices API,2025-12-18T04:46:52.042334 +AZURE,southindia,Standard_E16ads_v6,spot,NA,0.301963,USD,Azure Retail Prices API,2025-12-18T04:46:51.095486 +AZURE,southindia,Standard_E16as_v4,on_demand,NA,1.421,USD,Azure Retail Prices API,2025-12-18T04:46:51.094721 +AZURE,southindia,Standard_E16as_v4,reserved_1y,NA,0.838584,USD,Azure Retail Prices API,2025-12-18T04:46:52.042407 +AZURE,southindia,Standard_E16as_v4,reserved_3y,NA,0.540068,USD,Azure Retail Prices API,2025-12-18T04:46:52.042412 +AZURE,southindia,Standard_E16as_v4,spot,NA,0.262601,USD,Azure Retail Prices API,2025-12-18T04:46:51.095573 +AZURE,southindia,Standard_E16as_v5,on_demand,NA,1.275,USD,Azure Retail Prices API,2025-12-18T04:46:51.094285 +AZURE,southindia,Standard_E16as_v5,reserved_1y,NA,0.752055,USD,Azure Retail Prices API,2025-12-18T04:46:52.041890 +AZURE,southindia,Standard_E16as_v5,reserved_3y,NA,0.484361,USD,Azure Retail Prices API,2025-12-18T04:46:52.041895 +AZURE,southindia,Standard_E16as_v5,spot,NA,0.23562,USD,Azure Retail Prices API,2025-12-18T04:46:51.095590 +AZURE,southindia,Standard_E16d_v4,on_demand,NA,1.524,USD,Azure Retail Prices API,2025-12-18T04:46:51.094241 +AZURE,southindia,Standard_E16d_v4,reserved_1y,NA,0.899201,USD,Azure Retail Prices API,2025-12-18T04:46:52.041870 +AZURE,southindia,Standard_E16d_v4,reserved_3y,NA,0.579148,USD,Azure Retail Prices API,2025-12-18T04:46:52.041875 +AZURE,southindia,Standard_E16d_v4,spot,NA,0.281635,USD,Azure Retail Prices API,2025-12-18T04:46:51.095356 +AZURE,southindia,Standard_E16ds_v4,on_demand,NA,1.524,USD,Azure Retail Prices API,2025-12-18T04:46:51.095433 +AZURE,southindia,Standard_E16ds_v4,reserved_1y,NA,0.899201,USD,Azure Retail Prices API,2025-12-18T04:46:52.043423 +AZURE,southindia,Standard_E16ds_v4,reserved_3y,NA,0.579148,USD,Azure Retail Prices API,2025-12-18T04:46:52.043428 +AZURE,southindia,Standard_E16ds_v4,spot,NA,0.281635,USD,Azure Retail Prices API,2025-12-18T04:46:51.095563 +AZURE,southindia,Standard_E16ds_v5,on_demand,NA,1.624,USD,Azure Retail Prices API,2025-12-18T04:46:51.095602 +AZURE,southindia,Standard_E16ds_v5,reserved_1y,NA,0.958333,USD,Azure Retail Prices API,2025-12-18T04:46:52.043579 +AZURE,southindia,Standard_E16ds_v5,reserved_3y,NA,0.617237,USD,Azure Retail Prices API,2025-12-18T04:46:52.043584 +AZURE,southindia,Standard_E16ds_v5,spot,NA,0.300115,USD,Azure Retail Prices API,2025-12-18T04:46:51.094634 +AZURE,southindia,Standard_E16ds_v6,on_demand,NA,1.844,USD,Azure Retail Prices API,2025-12-18T04:46:51.095395 +AZURE,southindia,Standard_E16ds_v6,reserved_1y,NA,1.143607,USD,Azure Retail Prices API,2025-12-18T04:46:52.043356 +AZURE,southindia,Standard_E16ds_v6,reserved_3y,NA,0.71933,USD,Azure Retail Prices API,2025-12-18T04:46:52.043360 +AZURE,southindia,Standard_E16ds_v6,spot,NA,0.340771,USD,Azure Retail Prices API,2025-12-18T04:46:51.095160 +AZURE,southindia,Standard_E16s_v3,on_demand,NA,1.334,USD,Azure Retail Prices API,2025-12-18T04:46:51.094916 +AZURE,southindia,Standard_E16s_v3,reserved_1y,NA,0.857877,USD,Azure Retail Prices API,2025-12-18T04:46:52.042591 +AZURE,southindia,Standard_E16s_v3,reserved_3y,NA,0.548668,USD,Azure Retail Prices API,2025-12-18T04:46:52.042596 +AZURE,southindia,Standard_E16s_v3,spot,NA,0.246523,USD,Azure Retail Prices API,2025-12-18T04:46:51.095307 +AZURE,southindia,Standard_E16s_v4,on_demand,NA,1.334,USD,Azure Retail Prices API,2025-12-18T04:46:51.094026 +AZURE,southindia,Standard_E16s_v4,reserved_1y,NA,0.786758,USD,Azure Retail Prices API,2025-12-18T04:46:52.041590 +AZURE,southindia,Standard_E16s_v4,reserved_3y,NA,0.506773,USD,Azure Retail Prices API,2025-12-18T04:46:52.041595 +AZURE,southindia,Standard_E16s_v4,spot,NA,0.246523,USD,Azure Retail Prices API,2025-12-18T04:46:51.094100 +AZURE,southindia,Standard_E16s_v5,on_demand,NA,1.421,USD,Azure Retail Prices API,2025-12-18T04:46:51.095716 +AZURE,southindia,Standard_E16s_v5,reserved_1y,NA,0.838584,USD,Azure Retail Prices API,2025-12-18T04:46:52.043707 +AZURE,southindia,Standard_E16s_v5,reserved_3y,NA,0.525875,USD,Azure Retail Prices API,2025-12-18T04:46:52.043712 +AZURE,southindia,Standard_E16s_v5,spot,NA,0.262601,USD,Azure Retail Prices API,2025-12-18T04:46:51.095599 +AZURE,southindia,Standard_E20a_v4,on_demand,NA,1.777,USD,Azure Retail Prices API,2025-12-18T04:46:51.095277 +AZURE,southindia,Standard_E20a_v4,reserved_1y,NA,1.048174,USD,Azure Retail Prices API,2025-12-18T04:46:52.043122 +AZURE,southindia,Standard_E20a_v4,reserved_3y,NA,0.675114,USD,Azure Retail Prices API,2025-12-18T04:46:52.043129 +AZURE,southindia,Standard_E20a_v4,spot,NA,0.32839,USD,Azure Retail Prices API,2025-12-18T04:46:51.095697 +AZURE,southindia,Standard_E20ads_v5,on_demand,NA,2.767,USD,Azure Retail Prices API,2025-12-18T04:46:51.094003 +AZURE,southindia,Standard_E20ads_v5,reserved_1y,NA,1.08984,USD,Azure Retail Prices API,2025-12-18T04:46:52.043395 +AZURE,southindia,Standard_E20ads_v5,reserved_3y,NA,0.701903,USD,Azure Retail Prices API,2025-12-18T04:46:52.043399 +AZURE,southindia,Standard_E20ads_v5,spot,NA,0.341326,USD,Azure Retail Prices API,2025-12-18T04:46:51.095700 +AZURE,southindia,Standard_E20ads_v6,on_demand,NA,2.042,USD,Azure Retail Prices API,2025-12-18T04:46:51.094519 +AZURE,southindia,Standard_E20ads_v6,reserved_1y,NA,1.204795,USD,Azure Retail Prices API,2025-12-18T04:46:52.042145 +AZURE,southindia,Standard_E20ads_v6,reserved_3y,NA,0.775951,USD,Azure Retail Prices API,2025-12-18T04:46:52.042150 +AZURE,southindia,Standard_E20ads_v6,spot,NA,0.377362,USD,Azure Retail Prices API,2025-12-18T04:46:51.093951 +AZURE,southindia,Standard_E20as_v4,on_demand,NA,1.777,USD,Azure Retail Prices API,2025-12-18T04:46:51.095302 +AZURE,southindia,Standard_E20as_v4,reserved_1y,NA,1.048174,USD,Azure Retail Prices API,2025-12-18T04:46:52.043193 +AZURE,southindia,Standard_E20as_v4,reserved_3y,NA,0.675114,USD,Azure Retail Prices API,2025-12-18T04:46:52.043198 +AZURE,southindia,Standard_E20as_v4,spot,NA,0.32839,USD,Azure Retail Prices API,2025-12-18T04:46:51.095178 +AZURE,southindia,Standard_E20as_v5,on_demand,NA,1.593,USD,Azure Retail Prices API,2025-12-18T04:46:51.093990 +AZURE,southindia,Standard_E20as_v5,reserved_1y,NA,0.940068,USD,Azure Retail Prices API,2025-12-18T04:46:52.041529 +AZURE,southindia,Standard_E20as_v5,reserved_3y,NA,0.605441,USD,Azure Retail Prices API,2025-12-18T04:46:52.041534 +AZURE,southindia,Standard_E20as_v5,spot,NA,0.294386,USD,Azure Retail Prices API,2025-12-18T04:46:51.095005 +AZURE,southindia,Standard_E20d_v4,on_demand,NA,1.905,USD,Azure Retail Prices API,2025-12-18T04:46:51.095503 +AZURE,southindia,Standard_E20d_v4,reserved_1y,NA,1.123973,USD,Azure Retail Prices API,2025-12-18T04:46:52.043482 +AZURE,southindia,Standard_E20d_v4,reserved_3y,NA,0.723935,USD,Azure Retail Prices API,2025-12-18T04:46:52.043486 +AZURE,southindia,Standard_E20d_v4,spot,NA,0.352044,USD,Azure Retail Prices API,2025-12-18T04:46:51.095401 +AZURE,southindia,Standard_E20ds_v4,on_demand,NA,1.905,USD,Azure Retail Prices API,2025-12-18T04:46:51.095120 +AZURE,southindia,Standard_E20ds_v4,reserved_1y,NA,1.123973,USD,Azure Retail Prices API,2025-12-18T04:46:52.042798 +AZURE,southindia,Standard_E20ds_v4,reserved_3y,NA,0.723935,USD,Azure Retail Prices API,2025-12-18T04:46:52.042804 +AZURE,southindia,Standard_E20ds_v4,spot,NA,0.352044,USD,Azure Retail Prices API,2025-12-18T04:46:51.094032 +AZURE,southindia,Standard_E20ds_v5,on_demand,NA,2.03,USD,Azure Retail Prices API,2025-12-18T04:46:51.094988 +AZURE,southindia,Standard_E20ds_v5,reserved_1y,NA,1.197945,USD,Azure Retail Prices API,2025-12-18T04:46:52.042680 +AZURE,southindia,Standard_E20ds_v5,reserved_3y,NA,0.771537,USD,Azure Retail Prices API,2025-12-18T04:46:52.042685 +AZURE,southindia,Standard_E20ds_v5,spot,NA,0.375144,USD,Azure Retail Prices API,2025-12-18T04:46:51.095100 +AZURE,southindia,Standard_E20ds_v6,on_demand,NA,2.306,USD,Azure Retail Prices API,2025-12-18T04:46:51.094227 +AZURE,southindia,Standard_E20ds_v6,reserved_1y,NA,1.429452,USD,Azure Retail Prices API,2025-12-18T04:46:52.041861 +AZURE,southindia,Standard_E20ds_v6,reserved_3y,NA,0.899201,USD,Azure Retail Prices API,2025-12-18T04:46:52.041865 +AZURE,southindia,Standard_E20ds_v6,spot,NA,0.426149,USD,Azure Retail Prices API,2025-12-18T04:46:51.094212 +AZURE,southindia,Standard_E20s_v4,on_demand,NA,1.667,USD,Azure Retail Prices API,2025-12-18T04:46:51.095513 +AZURE,southindia,Standard_E20s_v4,reserved_1y,NA,0.983562,USD,Azure Retail Prices API,2025-12-18T04:46:52.043501 +AZURE,southindia,Standard_E20s_v4,reserved_3y,NA,0.633447,USD,Azure Retail Prices API,2025-12-18T04:46:52.043505 +AZURE,southindia,Standard_E20s_v4,spot,NA,0.308062,USD,Azure Retail Prices API,2025-12-18T04:46:51.094203 +AZURE,southindia,Standard_E20s_v5,on_demand,NA,1.777,USD,Azure Retail Prices API,2025-12-18T04:46:51.095274 +AZURE,southindia,Standard_E20s_v5,reserved_1y,NA,1.048174,USD,Azure Retail Prices API,2025-12-18T04:46:52.043051 +AZURE,southindia,Standard_E20s_v5,reserved_3y,NA,0.657344,USD,Azure Retail Prices API,2025-12-18T04:46:52.043056 +AZURE,southindia,Standard_E20s_v5,spot,NA,0.32839,USD,Azure Retail Prices API,2025-12-18T04:46:51.094793 +AZURE,southindia,Standard_E2_v3,on_demand,NA,0.167,USD,Azure Retail Prices API,2025-12-18T04:46:51.094580 +AZURE,southindia,Standard_E2_v3,reserved_1y,NA,0.107192,USD,Azure Retail Prices API,2025-12-18T04:46:52.042223 +AZURE,southindia,Standard_E2_v3,reserved_3y,NA,0.068569,USD,Azure Retail Prices API,2025-12-18T04:46:52.042227 +AZURE,southindia,Standard_E2_v3,spot,NA,0.030862,USD,Azure Retail Prices API,2025-12-18T04:46:51.095477 +AZURE,southindia,Standard_E2ads_v6,on_demand,NA,0.204,USD,Azure Retail Prices API,2025-12-18T04:46:51.095508 +AZURE,southindia,Standard_E2ads_v6,reserved_1y,NA,0.120434,USD,Azure Retail Prices API,2025-12-18T04:46:52.043491 +AZURE,southindia,Standard_E2ads_v6,reserved_3y,NA,0.077588,USD,Azure Retail Prices API,2025-12-18T04:46:52.043496 +AZURE,southindia,Standard_E2ads_v6,spot,NA,0.037699,USD,Azure Retail Prices API,2025-12-18T04:46:51.095086 +AZURE,southindia,Standard_E2ds_v5,on_demand,NA,0.203,USD,Azure Retail Prices API,2025-12-18T04:46:51.093996 +AZURE,southindia,Standard_E2ds_v5,reserved_1y,NA,0.119749,USD,Azure Retail Prices API,2025-12-18T04:46:52.041539 +AZURE,southindia,Standard_E2ds_v5,reserved_3y,NA,0.077169,USD,Azure Retail Prices API,2025-12-18T04:46:52.041545 +AZURE,southindia,Standard_E2ds_v5,spot,NA,0.037514,USD,Azure Retail Prices API,2025-12-18T04:46:51.095383 +AZURE,southindia,Standard_E2ds_v6,on_demand,NA,0.231,USD,Azure Retail Prices API,2025-12-18T04:46:51.093931 +AZURE,southindia,Standard_E2ds_v6,reserved_1y,NA,0.142922,USD,Azure Retail Prices API,2025-12-18T04:46:52.041432 +AZURE,southindia,Standard_E2ds_v6,reserved_3y,NA,0.089916,USD,Azure Retail Prices API,2025-12-18T04:46:52.041449 +AZURE,southindia,Standard_E2ds_v6,spot,NA,0.042689,USD,Azure Retail Prices API,2025-12-18T04:46:51.095368 +AZURE,southindia,Standard_E32_v3,on_demand,NA,2.667,USD,Azure Retail Prices API,2025-12-18T04:46:51.095392 +AZURE,southindia,Standard_E32_v3,reserved_1y,NA,1.715982,USD,Azure Retail Prices API,2025-12-18T04:46:52.043347 +AZURE,southindia,Standard_E32_v3,reserved_3y,NA,1.097298,USD,Azure Retail Prices API,2025-12-18T04:46:52.043351 +AZURE,southindia,Standard_E32_v3,spot,NA,0.492862,USD,Azure Retail Prices API,2025-12-18T04:46:51.094095 +AZURE,southindia,Standard_E32a_v4,on_demand,NA,2.843,USD,Azure Retail Prices API,2025-12-18T04:46:51.095166 +AZURE,southindia,Standard_E32a_v4,reserved_1y,NA,1.677055,USD,Azure Retail Prices API,2025-12-18T04:46:52.042858 +AZURE,southindia,Standard_E32a_v4,reserved_3y,NA,1.080175,USD,Azure Retail Prices API,2025-12-18T04:46:52.042863 +AZURE,southindia,Standard_E32a_v4,spot,NA,0.525386,USD,Azure Retail Prices API,2025-12-18T04:46:51.094401 +AZURE,southindia,Standard_E32ads_v5,on_demand,NA,4.427,USD,Azure Retail Prices API,2025-12-18T04:46:51.094432 +AZURE,southindia,Standard_E32ads_v5,reserved_1y,NA,1.743607,USD,Azure Retail Prices API,2025-12-18T04:46:52.042348 +AZURE,southindia,Standard_E32ads_v5,reserved_3y,NA,1.123021,USD,Azure Retail Prices API,2025-12-18T04:46:52.042353 +AZURE,southindia,Standard_E32ads_v5,spot,NA,0.546084,USD,Azure Retail Prices API,2025-12-18T04:46:51.095398 +AZURE,southindia,Standard_E32ads_v6,on_demand,NA,3.267,USD,Azure Retail Prices API,2025-12-18T04:46:51.095420 +AZURE,southindia,Standard_E32ads_v6,reserved_1y,NA,1.927626,USD,Azure Retail Prices API,2025-12-18T04:46:52.043385 +AZURE,southindia,Standard_E32ads_v6,reserved_3y,NA,1.241553,USD,Azure Retail Prices API,2025-12-18T04:46:52.043390 +AZURE,southindia,Standard_E32ads_v6,spot,NA,0.603742,USD,Azure Retail Prices API,2025-12-18T04:46:51.094131 +AZURE,southindia,Standard_E32as_v4,on_demand,NA,2.843,USD,Azure Retail Prices API,2025-12-18T04:46:51.094162 +AZURE,southindia,Standard_E32as_v4,reserved_1y,NA,1.677055,USD,Azure Retail Prices API,2025-12-18T04:46:52.041802 +AZURE,southindia,Standard_E32as_v4,reserved_3y,NA,1.080175,USD,Azure Retail Prices API,2025-12-18T04:46:52.041807 +AZURE,southindia,Standard_E32as_v4,spot,NA,0.525386,USD,Azure Retail Prices API,2025-12-18T04:46:51.095169 +AZURE,southindia,Standard_E32as_v5,on_demand,NA,2.549,USD,Azure Retail Prices API,2025-12-18T04:46:51.094422 +AZURE,southindia,Standard_E32as_v5,reserved_1y,NA,1.50411,USD,Azure Retail Prices API,2025-12-18T04:46:52.042007 +AZURE,southindia,Standard_E32as_v5,reserved_3y,NA,0.968721,USD,Azure Retail Prices API,2025-12-18T04:46:52.042012 +AZURE,southindia,Standard_E32as_v5,spot,NA,0.471055,USD,Azure Retail Prices API,2025-12-18T04:46:51.095517 +AZURE,southindia,Standard_E32d_v4,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:46:51.095568 +AZURE,southindia,Standard_E32d_v4,reserved_1y,NA,1.798402,USD,Azure Retail Prices API,2025-12-18T04:46:52.043549 +AZURE,southindia,Standard_E32d_v4,reserved_3y,NA,1.158295,USD,Azure Retail Prices API,2025-12-18T04:46:52.043554 +AZURE,southindia,Standard_E32d_v4,spot,NA,0.56327,USD,Azure Retail Prices API,2025-12-18T04:46:51.095230 +AZURE,southindia,Standard_E32ds_v4,on_demand,NA,3.048,USD,Azure Retail Prices API,2025-12-18T04:46:51.094513 +AZURE,southindia,Standard_E32ds_v4,reserved_1y,NA,1.798402,USD,Azure Retail Prices API,2025-12-18T04:46:52.042135 +AZURE,southindia,Standard_E32ds_v4,reserved_3y,NA,1.158295,USD,Azure Retail Prices API,2025-12-18T04:46:52.042140 +AZURE,southindia,Standard_E32ds_v4,spot,NA,0.56327,USD,Azure Retail Prices API,2025-12-18T04:46:51.094553 +AZURE,southindia,Standard_E32ds_v5,on_demand,NA,3.249,USD,Azure Retail Prices API,2025-12-18T04:46:51.094699 +AZURE,southindia,Standard_E32ds_v5,reserved_1y,NA,1.916667,USD,Azure Retail Prices API,2025-12-18T04:46:52.042378 +AZURE,southindia,Standard_E32ds_v5,reserved_3y,NA,1.234475,USD,Azure Retail Prices API,2025-12-18T04:46:52.042382 +AZURE,southindia,Standard_E32ds_v5,spot,NA,0.600415,USD,Azure Retail Prices API,2025-12-18T04:46:51.095247 +AZURE,southindia,Standard_E32ds_v6,on_demand,NA,3.689,USD,Azure Retail Prices API,2025-12-18T04:46:51.095218 +AZURE,southindia,Standard_E32ds_v6,reserved_1y,NA,2.2871,USD,Azure Retail Prices API,2025-12-18T04:46:52.042925 +AZURE,southindia,Standard_E32ds_v6,reserved_3y,NA,1.438699,USD,Azure Retail Prices API,2025-12-18T04:46:52.042930 +AZURE,southindia,Standard_E32ds_v6,spot,NA,0.681727,USD,Azure Retail Prices API,2025-12-18T04:46:51.094049 +AZURE,southindia,Standard_E32s_v3,on_demand,NA,2.667,USD,Azure Retail Prices API,2025-12-18T04:46:51.094011 +AZURE,southindia,Standard_E32s_v3,reserved_1y,NA,1.715982,USD,Azure Retail Prices API,2025-12-18T04:46:52.041560 +AZURE,southindia,Standard_E32s_v3,reserved_3y,NA,1.097298,USD,Azure Retail Prices API,2025-12-18T04:46:52.041565 +AZURE,southindia,Standard_E32s_v3,spot,NA,0.492862,USD,Azure Retail Prices API,2025-12-18T04:46:51.095268 +AZURE,southindia,Standard_E32s_v4,on_demand,NA,2.667,USD,Azure Retail Prices API,2025-12-18T04:46:51.095499 +AZURE,southindia,Standard_E32s_v4,reserved_1y,NA,1.57363,USD,Azure Retail Prices API,2025-12-18T04:46:52.043472 +AZURE,southindia,Standard_E32s_v4,reserved_3y,NA,1.013508,USD,Azure Retail Prices API,2025-12-18T04:46:52.043477 +AZURE,southindia,Standard_E32s_v4,spot,NA,0.492862,USD,Azure Retail Prices API,2025-12-18T04:46:51.094126 +AZURE,southindia,Standard_E32s_v5,on_demand,NA,2.843,USD,Azure Retail Prices API,2025-12-18T04:46:51.094351 +AZURE,southindia,Standard_E32s_v5,reserved_1y,NA,1.677055,USD,Azure Retail Prices API,2025-12-18T04:46:52.041948 +AZURE,southindia,Standard_E32s_v5,reserved_3y,NA,1.05175,USD,Azure Retail Prices API,2025-12-18T04:46:52.041953 +AZURE,southindia,Standard_E32s_v5,spot,NA,0.525386,USD,Azure Retail Prices API,2025-12-18T04:46:51.094331 +AZURE,southindia,Standard_E48a_v4,on_demand,NA,4.264,USD,Azure Retail Prices API,2025-12-18T04:46:51.094458 +AZURE,southindia,Standard_E48a_v4,reserved_1y,NA,2.515639,USD,Azure Retail Prices API,2025-12-18T04:46:52.042066 +AZURE,southindia,Standard_E48a_v4,reserved_3y,NA,1.620244,USD,Azure Retail Prices API,2025-12-18T04:46:52.042070 +AZURE,southindia,Standard_E48a_v4,spot,NA,0.787987,USD,Azure Retail Prices API,2025-12-18T04:46:51.094999 +AZURE,southindia,Standard_E48ads_v5,on_demand,NA,4.433,USD,Azure Retail Prices API,2025-12-18T04:46:51.094017 +AZURE,southindia,Standard_E48ads_v5,reserved_1y,NA,2.615525,USD,Azure Retail Prices API,2025-12-18T04:46:52.041570 +AZURE,southindia,Standard_E48ads_v5,reserved_3y,NA,1.684551,USD,Azure Retail Prices API,2025-12-18T04:46:52.041575 +AZURE,southindia,Standard_E48ads_v5,spot,NA,0.819218,USD,Azure Retail Prices API,2025-12-18T04:46:51.094274 +AZURE,southindia,Standard_E48ads_v6,on_demand,NA,4.901,USD,Azure Retail Prices API,2025-12-18T04:46:51.094555 +AZURE,southindia,Standard_E48ads_v6,reserved_1y,NA,2.891438,USD,Azure Retail Prices API,2025-12-18T04:46:52.042203 +AZURE,southindia,Standard_E48ads_v6,reserved_3y,NA,1.862291,USD,Azure Retail Prices API,2025-12-18T04:46:52.042208 +AZURE,southindia,Standard_E48ads_v6,spot,NA,0.905705,USD,Azure Retail Prices API,2025-12-18T04:46:51.094808 +AZURE,southindia,Standard_E48as_v4,on_demand,NA,4.264,USD,Azure Retail Prices API,2025-12-18T04:46:51.094939 +AZURE,southindia,Standard_E48as_v4,reserved_1y,NA,2.515639,USD,Azure Retail Prices API,2025-12-18T04:46:52.042612 +AZURE,southindia,Standard_E48as_v4,reserved_3y,NA,1.620244,USD,Azure Retail Prices API,2025-12-18T04:46:52.042617 +AZURE,southindia,Standard_E48as_v4,spot,NA,0.787987,USD,Azure Retail Prices API,2025-12-18T04:46:51.094128 +AZURE,southindia,Standard_E48as_v5,on_demand,NA,6.032,USD,Azure Retail Prices API,2025-12-18T04:46:51.095022 +AZURE,southindia,Standard_E48as_v5,reserved_1y,NA,2.256164,USD,Azure Retail Prices API,2025-12-18T04:46:52.043288 +AZURE,southindia,Standard_E48as_v5,reserved_3y,NA,1.453082,USD,Azure Retail Prices API,2025-12-18T04:46:52.043293 +AZURE,southindia,Standard_E48as_v5,spot,NA,0.706675,USD,Azure Retail Prices API,2025-12-18T04:46:51.094884 +AZURE,southindia,Standard_E48d_v4,on_demand,NA,4.572,USD,Azure Retail Prices API,2025-12-18T04:46:51.094445 +AZURE,southindia,Standard_E48d_v4,reserved_1y,NA,2.697603,USD,Azure Retail Prices API,2025-12-18T04:46:52.042037 +AZURE,southindia,Standard_E48d_v4,reserved_3y,NA,1.737481,USD,Azure Retail Prices API,2025-12-18T04:46:52.042042 +AZURE,southindia,Standard_E48d_v4,spot,NA,0.844906,USD,Azure Retail Prices API,2025-12-18T04:46:51.095359 +AZURE,southindia,Standard_E48ds_v4,on_demand,NA,4.572,USD,Azure Retail Prices API,2025-12-18T04:46:51.095250 +AZURE,southindia,Standard_E48ds_v4,reserved_1y,NA,2.697603,USD,Azure Retail Prices API,2025-12-18T04:46:52.043002 +AZURE,southindia,Standard_E48ds_v4,reserved_3y,NA,1.737481,USD,Azure Retail Prices API,2025-12-18T04:46:52.043007 +AZURE,southindia,Standard_E48ds_v4,spot,NA,0.844906,USD,Azure Retail Prices API,2025-12-18T04:46:51.095213 +AZURE,southindia,Standard_E48ds_v5,on_demand,NA,4.873,USD,Azure Retail Prices API,2025-12-18T04:46:51.094494 +AZURE,southindia,Standard_E48ds_v5,reserved_1y,NA,2.875,USD,Azure Retail Prices API,2025-12-18T04:46:52.042106 +AZURE,southindia,Standard_E48ds_v5,reserved_3y,NA,1.851712,USD,Azure Retail Prices API,2025-12-18T04:46:52.042111 +AZURE,southindia,Standard_E48ds_v5,spot,NA,0.90053,USD,Azure Retail Prices API,2025-12-18T04:46:51.095221 +AZURE,southindia,Standard_E48ds_v6,on_demand,NA,5.533,USD,Azure Retail Prices API,2025-12-18T04:46:51.094065 +AZURE,southindia,Standard_E48ds_v6,reserved_1y,NA,3.430708,USD,Azure Retail Prices API,2025-12-18T04:46:52.041650 +AZURE,southindia,Standard_E48ds_v6,reserved_3y,NA,2.158029,USD,Azure Retail Prices API,2025-12-18T04:46:52.041655 +AZURE,southindia,Standard_E48ds_v6,spot,NA,1.022498,USD,Azure Retail Prices API,2025-12-18T04:46:51.095336 +AZURE,southindia,Standard_E48s_v4,on_demand,NA,4.001,USD,Azure Retail Prices API,2025-12-18T04:46:51.094821 +AZURE,southindia,Standard_E48s_v4,reserved_1y,NA,2.360388,USD,Azure Retail Prices API,2025-12-18T04:46:52.042504 +AZURE,southindia,Standard_E48s_v4,reserved_3y,NA,1.520282,USD,Azure Retail Prices API,2025-12-18T04:46:52.042509 +AZURE,southindia,Standard_E48s_v4,spot,NA,0.739385,USD,Azure Retail Prices API,2025-12-18T04:46:51.094057 +AZURE,southindia,Standard_E48s_v5,on_demand,NA,4.264,USD,Azure Retail Prices API,2025-12-18T04:46:51.094966 +AZURE,southindia,Standard_E48s_v5,reserved_1y,NA,2.515639,USD,Azure Retail Prices API,2025-12-18T04:46:52.042652 +AZURE,southindia,Standard_E48s_v5,reserved_3y,NA,1.577626,USD,Azure Retail Prices API,2025-12-18T04:46:52.042656 +AZURE,southindia,Standard_E48s_v5,spot,NA,0.787987,USD,Azure Retail Prices API,2025-12-18T04:46:51.094170 +AZURE,southindia,Standard_E4_v3,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:46:51.094217 +AZURE,southindia,Standard_E4_v3,reserved_1y,NA,0.214498,USD,Azure Retail Prices API,2025-12-18T04:46:52.041841 +AZURE,southindia,Standard_E4_v3,reserved_3y,NA,0.137139,USD,Azure Retail Prices API,2025-12-18T04:46:52.041846 +AZURE,southindia,Standard_E4_v3,spot,NA,0.061723,USD,Azure Retail Prices API,2025-12-18T04:46:51.094622 +AZURE,southindia,Standard_E4a_v4,on_demand,NA,0.355,USD,Azure Retail Prices API,2025-12-18T04:46:51.095672 +AZURE,southindia,Standard_E4a_v4,reserved_1y,NA,0.209589,USD,Azure Retail Prices API,2025-12-18T04:46:52.043668 +AZURE,southindia,Standard_E4a_v4,reserved_3y,NA,0.135008,USD,Azure Retail Prices API,2025-12-18T04:46:52.043672 +AZURE,southindia,Standard_E4a_v4,spot,NA,0.065604,USD,Azure Retail Prices API,2025-12-18T04:46:51.095137 +AZURE,southindia,Standard_E4ads_v5,on_demand,NA,0.369,USD,Azure Retail Prices API,2025-12-18T04:46:51.093967 +AZURE,southindia,Standard_E4ads_v5,reserved_1y,NA,0.217922,USD,Azure Retail Prices API,2025-12-18T04:46:52.041487 +AZURE,southindia,Standard_E4ads_v5,reserved_3y,NA,0.140373,USD,Azure Retail Prices API,2025-12-18T04:46:52.041492 +AZURE,southindia,Standard_E4ads_v5,spot,NA,0.068191,USD,Azure Retail Prices API,2025-12-18T04:46:51.094134 +AZURE,southindia,Standard_E4ads_v6,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:51.095285 +AZURE,southindia,Standard_E4ads_v6,reserved_1y,NA,0.240982,USD,Azure Retail Prices API,2025-12-18T04:46:52.043153 +AZURE,southindia,Standard_E4ads_v6,reserved_3y,NA,0.155175,USD,Azure Retail Prices API,2025-12-18T04:46:52.043158 +AZURE,southindia,Standard_E4ads_v6,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:46:51.094534 +AZURE,southindia,Standard_E4as_v4,on_demand,NA,0.355,USD,Azure Retail Prices API,2025-12-18T04:46:51.094491 +AZURE,southindia,Standard_E4as_v4,reserved_1y,NA,0.209589,USD,Azure Retail Prices API,2025-12-18T04:46:52.042096 +AZURE,southindia,Standard_E4as_v4,reserved_3y,NA,0.135008,USD,Azure Retail Prices API,2025-12-18T04:46:52.042101 +AZURE,southindia,Standard_E4as_v4,spot,NA,0.065604,USD,Azure Retail Prices API,2025-12-18T04:46:51.095522 +AZURE,southindia,Standard_E4as_v5,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:46:51.094872 +AZURE,southindia,Standard_E4as_v5,reserved_1y,NA,0.188014,USD,Azure Retail Prices API,2025-12-18T04:46:52.042562 +AZURE,southindia,Standard_E4as_v5,reserved_3y,NA,0.121081,USD,Azure Retail Prices API,2025-12-18T04:46:52.042567 +AZURE,southindia,Standard_E4as_v5,spot,NA,0.058951,USD,Azure Retail Prices API,2025-12-18T04:46:51.093957 +AZURE,southindia,Standard_E4d_v4,on_demand,NA,0.381,USD,Azure Retail Prices API,2025-12-18T04:46:51.094839 +AZURE,southindia,Standard_E4d_v4,reserved_1y,NA,0.224772,USD,Azure Retail Prices API,2025-12-18T04:46:52.042523 +AZURE,southindia,Standard_E4d_v4,reserved_3y,NA,0.144787,USD,Azure Retail Prices API,2025-12-18T04:46:52.042528 +AZURE,southindia,Standard_E4d_v4,spot,NA,0.070409,USD,Azure Retail Prices API,2025-12-18T04:46:51.095197 +AZURE,southindia,Standard_E4ds_v4,on_demand,NA,0.381,USD,Azure Retail Prices API,2025-12-18T04:46:51.095312 +AZURE,southindia,Standard_E4ds_v4,reserved_1y,NA,0.224772,USD,Azure Retail Prices API,2025-12-18T04:46:52.043202 +AZURE,southindia,Standard_E4ds_v4,reserved_3y,NA,0.144787,USD,Azure Retail Prices API,2025-12-18T04:46:52.043208 +AZURE,southindia,Standard_E4ds_v4,spot,NA,0.070409,USD,Azure Retail Prices API,2025-12-18T04:46:51.094559 +AZURE,southindia,Standard_E4ds_v5,on_demand,NA,0.406,USD,Azure Retail Prices API,2025-12-18T04:46:51.095188 +AZURE,southindia,Standard_E4ds_v5,reserved_1y,NA,0.239612,USD,Azure Retail Prices API,2025-12-18T04:46:52.042887 +AZURE,southindia,Standard_E4ds_v5,reserved_3y,NA,0.1543,USD,Azure Retail Prices API,2025-12-18T04:46:52.042892 +AZURE,southindia,Standard_E4ds_v5,spot,NA,0.075029,USD,Azure Retail Prices API,2025-12-18T04:46:51.095417 +AZURE,southindia,Standard_E4ds_v6,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:46:51.094543 +AZURE,southindia,Standard_E4ds_v6,reserved_1y,NA,0.285845,USD,Azure Retail Prices API,2025-12-18T04:46:52.042185 +AZURE,southindia,Standard_E4ds_v6,reserved_3y,NA,0.179833,USD,Azure Retail Prices API,2025-12-18T04:46:52.042189 +AZURE,southindia,Standard_E4ds_v6,spot,NA,0.085193,USD,Azure Retail Prices API,2025-12-18T04:46:51.095596 +AZURE,southindia,Standard_E4s_v4,on_demand,NA,0.333,USD,Azure Retail Prices API,2025-12-18T04:46:51.094184 +AZURE,southindia,Standard_E4s_v4,reserved_1y,NA,0.196689,USD,Azure Retail Prices API,2025-12-18T04:46:52.041812 +AZURE,southindia,Standard_E4s_v4,reserved_3y,NA,0.126674,USD,Azure Retail Prices API,2025-12-18T04:46:52.041816 +AZURE,southindia,Standard_E4s_v4,spot,NA,0.061538,USD,Azure Retail Prices API,2025-12-18T04:46:51.094648 +AZURE,southindia,Standard_E4s_v5,on_demand,NA,0.355,USD,Azure Retail Prices API,2025-12-18T04:46:51.094112 +AZURE,southindia,Standard_E4s_v5,reserved_1y,NA,0.209589,USD,Azure Retail Prices API,2025-12-18T04:46:52.041696 +AZURE,southindia,Standard_E4s_v5,reserved_3y,NA,0.131469,USD,Azure Retail Prices API,2025-12-18T04:46:52.041701 +AZURE,southindia,Standard_E4s_v5,spot,NA,0.065604,USD,Azure Retail Prices API,2025-12-18T04:46:51.094120 +AZURE,southindia,Standard_E64_v3,on_demand,NA,4.801,USD,Azure Retail Prices API,2025-12-18T04:46:51.093982 +AZURE,southindia,Standard_E64_v3,reserved_1y,NA,3.234703,USD,Azure Retail Prices API,2025-12-18T04:46:52.041518 +AZURE,southindia,Standard_E64_v3,reserved_3y,NA,2.068455,USD,Azure Retail Prices API,2025-12-18T04:46:52.041523 +AZURE,southindia,Standard_E64_v3,spot,NA,0.887225,USD,Azure Retail Prices API,2025-12-18T04:46:51.094522 +AZURE,southindia,Standard_E64a_v4,on_demand,NA,5.685,USD,Azure Retail Prices API,2025-12-18T04:46:51.095339 +AZURE,southindia,Standard_E64a_v4,reserved_1y,NA,3.354224,USD,Azure Retail Prices API,2025-12-18T04:46:52.043240 +AZURE,southindia,Standard_E64a_v4,reserved_3y,NA,2.16035,USD,Azure Retail Prices API,2025-12-18T04:46:52.043245 +AZURE,southindia,Standard_E64a_v4,spot,NA,1.050588,USD,Azure Retail Prices API,2025-12-18T04:46:51.095185 +AZURE,southindia,Standard_E64ads_v5,on_demand,NA,8.855,USD,Azure Retail Prices API,2025-12-18T04:46:51.094654 +AZURE,southindia,Standard_E64ads_v5,reserved_1y,NA,3.487329,USD,Azure Retail Prices API,2025-12-18T04:46:52.043021 +AZURE,southindia,Standard_E64ads_v5,reserved_3y,NA,2.246081,USD,Azure Retail Prices API,2025-12-18T04:46:52.043026 +AZURE,southindia,Standard_E64ads_v5,spot,NA,1.092353,USD,Azure Retail Prices API,2025-12-18T04:46:51.094525 +AZURE,southindia,Standard_E64ads_v6,on_demand,NA,6.534,USD,Azure Retail Prices API,2025-12-18T04:46:51.094955 +AZURE,southindia,Standard_E64ads_v6,reserved_1y,NA,3.855251,USD,Azure Retail Prices API,2025-12-18T04:46:52.042631 +AZURE,southindia,Standard_E64ads_v6,reserved_3y,NA,2.483067,USD,Azure Retail Prices API,2025-12-18T04:46:52.042636 +AZURE,southindia,Standard_E64ads_v6,spot,NA,1.207483,USD,Azure Retail Prices API,2025-12-18T04:46:51.094906 +AZURE,southindia,Standard_E64as_v4,on_demand,NA,5.685,USD,Azure Retail Prices API,2025-12-18T04:46:51.094674 +AZURE,southindia,Standard_E64as_v4,reserved_1y,NA,3.354224,USD,Azure Retail Prices API,2025-12-18T04:46:52.042338 +AZURE,southindia,Standard_E64as_v4,reserved_3y,NA,2.16035,USD,Azure Retail Prices API,2025-12-18T04:46:52.042343 +AZURE,southindia,Standard_E64as_v4,spot,NA,1.050588,USD,Azure Retail Prices API,2025-12-18T04:46:51.093941 +AZURE,southindia,Standard_E64as_v5,on_demand,NA,8.043,USD,Azure Retail Prices API,2025-12-18T04:46:51.094595 +AZURE,southindia,Standard_E64as_v5,reserved_1y,NA,3.008105,USD,Azure Retail Prices API,2025-12-18T04:46:52.043558 +AZURE,southindia,Standard_E64as_v5,reserved_3y,NA,1.937443,USD,Azure Retail Prices API,2025-12-18T04:46:52.043563 +AZURE,southindia,Standard_E64as_v5,spot,NA,0.942295,USD,Azure Retail Prices API,2025-12-18T04:46:51.095438 +AZURE,southindia,Standard_E64d_v4,on_demand,NA,6.096,USD,Azure Retail Prices API,2025-12-18T04:46:51.095322 +AZURE,southindia,Standard_E64d_v4,reserved_1y,NA,3.596918,USD,Azure Retail Prices API,2025-12-18T04:46:52.043222 +AZURE,southindia,Standard_E64d_v4,reserved_3y,NA,2.316629,USD,Azure Retail Prices API,2025-12-18T04:46:52.043226 +AZURE,southindia,Standard_E64d_v4,spot,NA,1.126541,USD,Azure Retail Prices API,2025-12-18T04:46:51.094250 +AZURE,southindia,Standard_E64ds_v4,on_demand,NA,6.096,USD,Azure Retail Prices API,2025-12-18T04:46:51.095495 +AZURE,southindia,Standard_E64ds_v4,reserved_1y,NA,3.596918,USD,Azure Retail Prices API,2025-12-18T04:46:52.043462 +AZURE,southindia,Standard_E64ds_v4,reserved_3y,NA,2.316629,USD,Azure Retail Prices API,2025-12-18T04:46:52.043467 +AZURE,southindia,Standard_E64ds_v4,spot,NA,1.126541,USD,Azure Retail Prices API,2025-12-18T04:46:51.095631 +AZURE,southindia,Standard_E64ds_v5,on_demand,NA,6.497,USD,Azure Retail Prices API,2025-12-18T04:46:51.095148 +AZURE,southindia,Standard_E64ds_v5,reserved_1y,NA,3.833447,USD,Azure Retail Prices API,2025-12-18T04:46:52.042828 +AZURE,southindia,Standard_E64ds_v5,reserved_3y,NA,2.46895,USD,Azure Retail Prices API,2025-12-18T04:46:52.042833 +AZURE,southindia,Standard_E64ds_v5,spot,NA,1.200646,USD,Azure Retail Prices API,2025-12-18T04:46:51.094889 +AZURE,southindia,Standard_E64ds_v6,on_demand,NA,7.378,USD,Azure Retail Prices API,2025-12-18T04:46:51.095095 +AZURE,southindia,Standard_E64ds_v6,reserved_1y,NA,4.574315,USD,Azure Retail Prices API,2025-12-18T04:46:52.042769 +AZURE,southindia,Standard_E64ds_v6,reserved_3y,NA,2.877397,USD,Azure Retail Prices API,2025-12-18T04:46:52.042774 +AZURE,southindia,Standard_E64ds_v6,spot,NA,1.363454,USD,Azure Retail Prices API,2025-12-18T04:46:51.095462 +AZURE,southindia,Standard_E64s_v3,on_demand,NA,4.801,USD,Azure Retail Prices API,2025-12-18T04:46:51.094197 +AZURE,southindia,Standard_E64s_v3,reserved_1y,NA,3.234703,USD,Azure Retail Prices API,2025-12-18T04:46:52.041822 +AZURE,southindia,Standard_E64s_v3,reserved_3y,NA,2.068455,USD,Azure Retail Prices API,2025-12-18T04:46:52.041826 +AZURE,southindia,Standard_E64s_v3,spot,NA,0.887225,USD,Azure Retail Prices API,2025-12-18T04:46:51.094531 +AZURE,southindia,Standard_E64s_v4,on_demand,NA,5.334,USD,Azure Retail Prices API,2025-12-18T04:46:51.095115 +AZURE,southindia,Standard_E64s_v4,reserved_1y,NA,3.14726,USD,Azure Retail Prices API,2025-12-18T04:46:52.042789 +AZURE,southindia,Standard_E64s_v4,reserved_3y,NA,2.027055,USD,Azure Retail Prices API,2025-12-18T04:46:52.042794 +AZURE,southindia,Standard_E64s_v4,spot,NA,0.985723,USD,Azure Retail Prices API,2025-12-18T04:46:51.094549 +AZURE,southindia,Standard_E64s_v5,on_demand,NA,5.685,USD,Azure Retail Prices API,2025-12-18T04:46:51.095029 +AZURE,southindia,Standard_E64s_v5,reserved_1y,NA,3.354224,USD,Azure Retail Prices API,2025-12-18T04:46:52.042710 +AZURE,southindia,Standard_E64s_v5,reserved_3y,NA,2.103501,USD,Azure Retail Prices API,2025-12-18T04:46:52.042715 +AZURE,southindia,Standard_E64s_v5,spot,NA,1.050588,USD,Azure Retail Prices API,2025-12-18T04:46:51.095081 +AZURE,southindia,Standard_E80ids_v4,on_demand,NA,9.15516,USD,Azure Retail Prices API,2025-12-18T04:46:51.094117 +AZURE,southindia,Standard_E80ids_v4,reserved_1y,NA,5.401598,USD,Azure Retail Prices API,2025-12-18T04:46:52.041715 +AZURE,southindia,Standard_E80ids_v4,reserved_3y,NA,3.478957,USD,Azure Retail Prices API,2025-12-18T04:46:52.041720 +AZURE,southindia,Standard_E80ids_v4,spot,NA,1.691874,USD,Azure Retail Prices API,2025-12-18T04:46:51.094193 +AZURE,southindia,Standard_E80is_v4,on_demand,NA,8.04384,USD,Azure Retail Prices API,2025-12-18T04:46:51.094746 +AZURE,southindia,Standard_E80is_v4,reserved_1y,NA,4.74589,USD,Azure Retail Prices API,2025-12-18T04:46:52.042436 +AZURE,southindia,Standard_E80is_v4,reserved_3y,NA,3.056659,USD,Azure Retail Prices API,2025-12-18T04:46:52.042441 +AZURE,southindia,Standard_E80is_v4,spot,NA,1.486502,USD,Azure Retail Prices API,2025-12-18T04:46:51.094092 +AZURE,southindia,Standard_E8_v3,on_demand,NA,0.667,USD,Azure Retail Prices API,2025-12-18T04:46:51.094540 +AZURE,southindia,Standard_E8_v3,reserved_1y,NA,0.428995,USD,Azure Retail Prices API,2025-12-18T04:46:52.042174 +AZURE,southindia,Standard_E8_v3,reserved_3y,NA,0.274315,USD,Azure Retail Prices API,2025-12-18T04:46:52.042179 +AZURE,southindia,Standard_E8_v3,spot,NA,0.123262,USD,Azure Retail Prices API,2025-12-18T04:46:51.094477 +AZURE,southindia,Standard_E8a_v4,on_demand,NA,0.711,USD,Azure Retail Prices API,2025-12-18T04:46:51.094625 +AZURE,southindia,Standard_E8a_v4,reserved_1y,NA,0.419292,USD,Azure Retail Prices API,2025-12-18T04:46:52.042271 +AZURE,southindia,Standard_E8a_v4,reserved_3y,NA,0.270053,USD,Azure Retail Prices API,2025-12-18T04:46:52.042276 +AZURE,southindia,Standard_E8a_v4,spot,NA,0.131393,USD,Azure Retail Prices API,2025-12-18T04:46:51.094009 +AZURE,southindia,Standard_E8ads_v5,on_demand,NA,0.739,USD,Azure Retail Prices API,2025-12-18T04:46:51.094038 +AZURE,southindia,Standard_E8ads_v5,reserved_1y,NA,0.435959,USD,Azure Retail Prices API,2025-12-18T04:46:52.041619 +AZURE,southindia,Standard_E8ads_v5,reserved_3y,NA,0.280746,USD,Azure Retail Prices API,2025-12-18T04:46:52.041624 +AZURE,southindia,Standard_E8ads_v5,spot,NA,0.136567,USD,Azure Retail Prices API,2025-12-18T04:46:51.095389 +AZURE,southindia,Standard_E8ads_v6,on_demand,NA,0.817,USD,Azure Retail Prices API,2025-12-18T04:46:51.093944 +AZURE,southindia,Standard_E8ads_v6,reserved_1y,NA,0.481963,USD,Azure Retail Prices API,2025-12-18T04:46:52.041467 +AZURE,southindia,Standard_E8ads_v6,reserved_3y,NA,0.310388,USD,Azure Retail Prices API,2025-12-18T04:46:52.041472 +AZURE,southindia,Standard_E8ads_v6,spot,NA,0.150982,USD,Azure Retail Prices API,2025-12-18T04:46:51.095703 +AZURE,southindia,Standard_E8as_v4,on_demand,NA,0.711,USD,Azure Retail Prices API,2025-12-18T04:46:51.095663 +AZURE,southindia,Standard_E8as_v4,reserved_1y,NA,0.419292,USD,Azure Retail Prices API,2025-12-18T04:46:52.043658 +AZURE,southindia,Standard_E8as_v4,reserved_3y,NA,0.270053,USD,Azure Retail Prices API,2025-12-18T04:46:52.043663 +AZURE,southindia,Standard_E8as_v4,spot,NA,0.131393,USD,Azure Retail Prices API,2025-12-18T04:46:51.094732 +AZURE,southindia,Standard_E8as_v5,on_demand,NA,1.005,USD,Azure Retail Prices API,2025-12-18T04:46:51.093987 +AZURE,southindia,Standard_E8as_v5,reserved_1y,NA,0.376027,USD,Azure Retail Prices API,2025-12-18T04:46:52.042740 +AZURE,southindia,Standard_E8as_v5,reserved_3y,NA,0.242199,USD,Azure Retail Prices API,2025-12-18T04:46:52.042744 +AZURE,southindia,Standard_E8as_v5,spot,NA,0.117718,USD,Azure Retail Prices API,2025-12-18T04:46:51.095608 +AZURE,southindia,Standard_E8d_v4,on_demand,NA,0.762,USD,Azure Retail Prices API,2025-12-18T04:46:51.094900 +AZURE,southindia,Standard_E8d_v4,reserved_1y,NA,0.449658,USD,Azure Retail Prices API,2025-12-18T04:46:52.042572 +AZURE,southindia,Standard_E8d_v4,reserved_3y,NA,0.289574,USD,Azure Retail Prices API,2025-12-18T04:46:52.042576 +AZURE,southindia,Standard_E8d_v4,spot,NA,0.140818,USD,Azure Retail Prices API,2025-12-18T04:46:51.095143 +AZURE,southindia,Standard_E8ds_v4,on_demand,NA,0.762,USD,Azure Retail Prices API,2025-12-18T04:46:51.095264 +AZURE,southindia,Standard_E8ds_v4,reserved_1y,NA,0.449658,USD,Azure Retail Prices API,2025-12-18T04:46:52.043031 +AZURE,southindia,Standard_E8ds_v4,reserved_3y,NA,0.289574,USD,Azure Retail Prices API,2025-12-18T04:46:52.043036 +AZURE,southindia,Standard_E8ds_v4,spot,NA,0.140818,USD,Azure Retail Prices API,2025-12-18T04:46:51.095533 +AZURE,southindia,Standard_E8ds_v5,on_demand,NA,0.812,USD,Azure Retail Prices API,2025-12-18T04:46:51.095342 +AZURE,southindia,Standard_E8ds_v5,reserved_1y,NA,0.479224,USD,Azure Retail Prices API,2025-12-18T04:46:52.043250 +AZURE,southindia,Standard_E8ds_v5,reserved_3y,NA,0.308638,USD,Azure Retail Prices API,2025-12-18T04:46:52.043255 +AZURE,southindia,Standard_E8ds_v5,spot,NA,0.150058,USD,Azure Retail Prices API,2025-12-18T04:46:51.094834 +AZURE,southindia,Standard_E8ds_v6,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:46:51.094222 +AZURE,southindia,Standard_E8ds_v6,reserved_1y,NA,0.571804,USD,Azure Retail Prices API,2025-12-18T04:46:52.041851 +AZURE,southindia,Standard_E8ds_v6,reserved_3y,NA,0.359665,USD,Azure Retail Prices API,2025-12-18T04:46:52.041856 +AZURE,southindia,Standard_E8ds_v6,spot,NA,0.170386,USD,Azure Retail Prices API,2025-12-18T04:46:51.094086 +AZURE,southindia,Standard_E8s_v3,on_demand,NA,0.667,USD,Azure Retail Prices API,2025-12-18T04:46:51.095528 +AZURE,southindia,Standard_E8s_v3,reserved_1y,NA,0.428995,USD,Azure Retail Prices API,2025-12-18T04:46:52.043511 +AZURE,southindia,Standard_E8s_v3,reserved_3y,NA,0.274315,USD,Azure Retail Prices API,2025-12-18T04:46:52.043515 +AZURE,southindia,Standard_E8s_v3,spot,NA,0.123262,USD,Azure Retail Prices API,2025-12-18T04:46:51.094601 +AZURE,southindia,Standard_E8s_v4,on_demand,NA,0.667,USD,Azure Retail Prices API,2025-12-18T04:46:51.095294 +AZURE,southindia,Standard_E8s_v4,reserved_1y,NA,0.393379,USD,Azure Retail Prices API,2025-12-18T04:46:52.043173 +AZURE,southindia,Standard_E8s_v4,reserved_3y,NA,0.253387,USD,Azure Retail Prices API,2025-12-18T04:46:52.043178 +AZURE,southindia,Standard_E8s_v4,spot,NA,0.123262,USD,Azure Retail Prices API,2025-12-18T04:46:51.093976 +AZURE,southindia,Standard_E8s_v5,on_demand,NA,0.711,USD,Azure Retail Prices API,2025-12-18T04:46:51.094035 +AZURE,southindia,Standard_E8s_v5,reserved_1y,NA,0.419292,USD,Azure Retail Prices API,2025-12-18T04:46:52.041610 +AZURE,southindia,Standard_E8s_v5,reserved_3y,NA,0.262938,USD,Azure Retail Prices API,2025-12-18T04:46:52.041615 +AZURE,southindia,Standard_E8s_v5,spot,NA,0.131393,USD,Azure Retail Prices API,2025-12-18T04:46:51.095175 +AZURE,southindia,Standard_E96a_v4,on_demand,NA,8.528,USD,Azure Retail Prices API,2025-12-18T04:46:51.094060 +AZURE,southindia,Standard_E96a_v4,reserved_1y,NA,5.031279,USD,Azure Retail Prices API,2025-12-18T04:46:52.041639 +AZURE,southindia,Standard_E96a_v4,reserved_3y,NA,3.240525,USD,Azure Retail Prices API,2025-12-18T04:46:52.041645 +AZURE,southindia,Standard_E96a_v4,spot,NA,1.575974,USD,Azure Retail Prices API,2025-12-18T04:46:51.093960 +AZURE,southindia,Standard_E96ads_v5,on_demand,NA,13.282,USD,Azure Retail Prices API,2025-12-18T04:46:51.094395 +AZURE,southindia,Standard_E96ads_v5,reserved_1y,NA,5.230936,USD,Azure Retail Prices API,2025-12-18T04:46:52.042691 +AZURE,southindia,Standard_E96ads_v5,reserved_3y,NA,3.369102,USD,Azure Retail Prices API,2025-12-18T04:46:52.042695 +AZURE,southindia,Standard_E96ads_v5,spot,NA,1.638437,USD,Azure Retail Prices API,2025-12-18T04:46:51.094427 +AZURE,southindia,Standard_E96ads_v6,on_demand,NA,9.802,USD,Azure Retail Prices API,2025-12-18T04:46:51.095473 +AZURE,southindia,Standard_E96ads_v6,reserved_1y,NA,5.782991,USD,Azure Retail Prices API,2025-12-18T04:46:52.043452 +AZURE,southindia,Standard_E96ads_v6,reserved_3y,NA,3.724619,USD,Azure Retail Prices API,2025-12-18T04:46:52.043457 +AZURE,southindia,Standard_E96ads_v6,spot,NA,1.81141,USD,Azure Retail Prices API,2025-12-18T04:46:51.094078 +AZURE,southindia,Standard_E96as_v4,on_demand,NA,8.528,USD,Azure Retail Prices API,2025-12-18T04:46:51.094640 +AZURE,southindia,Standard_E96as_v4,reserved_1y,NA,5.031279,USD,Azure Retail Prices API,2025-12-18T04:46:52.042290 +AZURE,southindia,Standard_E96as_v4,reserved_3y,NA,3.240525,USD,Azure Retail Prices API,2025-12-18T04:46:52.042295 +AZURE,southindia,Standard_E96as_v4,spot,NA,1.575974,USD,Azure Retail Prices API,2025-12-18T04:46:51.095426 +AZURE,southindia,Standard_E96as_v5,on_demand,NA,12.064,USD,Azure Retail Prices API,2025-12-18T04:46:51.095333 +AZURE,southindia,Standard_E96as_v5,reserved_1y,NA,4.512215,USD,Azure Retail Prices API,2025-12-18T04:46:52.043298 +AZURE,southindia,Standard_E96as_v5,reserved_3y,NA,2.906164,USD,Azure Retail Prices API,2025-12-18T04:46:52.043303 +AZURE,southindia,Standard_E96as_v5,spot,NA,1.41335,USD,Azure Retail Prices API,2025-12-18T04:46:51.094863 +AZURE,southindia,Standard_E96ds_v5,on_demand,NA,9.746,USD,Azure Retail Prices API,2025-12-18T04:46:51.094690 +AZURE,southindia,Standard_E96ds_v5,reserved_1y,NA,5.750114,USD,Azure Retail Prices API,2025-12-18T04:46:52.042368 +AZURE,southindia,Standard_E96ds_v5,reserved_3y,NA,3.703463,USD,Azure Retail Prices API,2025-12-18T04:46:52.042373 +AZURE,southindia,Standard_E96ds_v5,spot,NA,1.801061,USD,Azure Retail Prices API,2025-12-18T04:46:51.095443 +AZURE,southindia,Standard_E96ds_v6,on_demand,NA,11.067,USD,Azure Retail Prices API,2025-12-18T04:46:51.094137 +AZURE,southindia,Standard_E96ds_v6,reserved_1y,NA,6.861416,USD,Azure Retail Prices API,2025-12-18T04:46:52.041725 +AZURE,southindia,Standard_E96ds_v6,reserved_3y,NA,4.316096,USD,Azure Retail Prices API,2025-12-18T04:46:52.041730 +AZURE,southindia,Standard_E96ds_v6,spot,NA,2.045182,USD,Azure Retail Prices API,2025-12-18T04:46:51.094259 +AZURE,southindia,Standard_E96s_v5,on_demand,NA,8.528,USD,Azure Retail Prices API,2025-12-18T04:46:51.094306 +AZURE,southindia,Standard_E96s_v5,reserved_1y,NA,5.031279,USD,Azure Retail Prices API,2025-12-18T04:46:52.041910 +AZURE,southindia,Standard_E96s_v5,reserved_3y,NA,3.155251,USD,Azure Retail Prices API,2025-12-18T04:46:52.041915 +AZURE,southindia,Standard_E96s_v5,spot,NA,1.575974,USD,Azure Retail Prices API,2025-12-18T04:46:51.094481 +AZURE,southindia,Standard_EC16ads_v6,on_demand,NA,1.634,USD,Azure Retail Prices API,2025-12-18T04:46:51.094497 +AZURE,southindia,Standard_EC16ads_v6,reserved_1y,NA,0.963813,USD,Azure Retail Prices API,2025-12-18T04:46:52.042116 +AZURE,southindia,Standard_EC16ads_v6,reserved_3y,NA,0.620776,USD,Azure Retail Prices API,2025-12-18T04:46:52.042121 +AZURE,southindia,Standard_EC16ads_v6,spot,NA,0.301963,USD,Azure Retail Prices API,2025-12-18T04:46:51.095256 +AZURE,southindia,Standard_EC16as_v6,on_demand,NA,1.342,USD,Azure Retail Prices API,2025-12-18T04:46:51.095637 +AZURE,southindia,Standard_EC16as_v6,reserved_1y,NA,0.792009,USD,Azure Retail Prices API,2025-12-18T04:46:52.043638 +AZURE,southindia,Standard_EC16as_v6,reserved_3y,NA,0.510122,USD,Azure Retail Prices API,2025-12-18T04:46:52.043643 +AZURE,southindia,Standard_EC16as_v6,spot,NA,0.248002,USD,Azure Retail Prices API,2025-12-18T04:46:51.094292 +AZURE,southindia,Standard_EC2ads_v6,on_demand,NA,0.204,USD,Azure Retail Prices API,2025-12-18T04:46:51.095011 +AZURE,southindia,Standard_EC2ads_v6,reserved_1y,NA,0.120434,USD,Azure Retail Prices API,2025-12-18T04:46:52.042700 +AZURE,southindia,Standard_EC2ads_v6,reserved_3y,NA,0.077588,USD,Azure Retail Prices API,2025-12-18T04:46:52.042705 +AZURE,southindia,Standard_EC2ads_v6,spot,NA,0.037699,USD,Azure Retail Prices API,2025-12-18T04:46:51.095617 +AZURE,southindia,Standard_EC2as_v6,on_demand,NA,0.168,USD,Azure Retail Prices API,2025-12-18T04:46:51.095244 +AZURE,southindia,Standard_EC2as_v6,reserved_1y,NA,0.098973,USD,Azure Retail Prices API,2025-12-18T04:46:52.042993 +AZURE,southindia,Standard_EC2as_v6,reserved_3y,NA,0.063775,USD,Azure Retail Prices API,2025-12-18T04:46:52.042997 +AZURE,southindia,Standard_EC2as_v6,spot,NA,0.031046,USD,Azure Retail Prices API,2025-12-18T04:46:51.094236 +AZURE,southindia,Standard_EC32ads_v6,on_demand,NA,3.267,USD,Azure Retail Prices API,2025-12-18T04:46:51.094960 +AZURE,southindia,Standard_EC32ads_v6,reserved_1y,NA,1.927626,USD,Azure Retail Prices API,2025-12-18T04:46:52.042641 +AZURE,southindia,Standard_EC32ads_v6,reserved_3y,NA,1.241553,USD,Azure Retail Prices API,2025-12-18T04:46:52.042646 +AZURE,southindia,Standard_EC32ads_v6,spot,NA,0.603742,USD,Azure Retail Prices API,2025-12-18T04:46:51.093917 +AZURE,southindia,Standard_EC32as_v6,on_demand,NA,2.685,USD,Azure Retail Prices API,2025-12-18T04:46:51.094346 +AZURE,southindia,Standard_EC32as_v6,reserved_1y,NA,1.584018,USD,Azure Retail Prices API,2025-12-18T04:46:52.041940 +AZURE,southindia,Standard_EC32as_v6,reserved_3y,NA,1.020205,USD,Azure Retail Prices API,2025-12-18T04:46:52.041944 +AZURE,southindia,Standard_EC32as_v6,spot,NA,0.496188,USD,Azure Retail Prices API,2025-12-18T04:46:51.094046 +AZURE,southindia,Standard_EC48ads_v6,on_demand,NA,4.901,USD,Azure Retail Prices API,2025-12-18T04:46:51.095317 +AZURE,southindia,Standard_EC48ads_v6,reserved_1y,NA,2.891438,USD,Azure Retail Prices API,2025-12-18T04:46:52.043213 +AZURE,southindia,Standard_EC48ads_v6,reserved_3y,NA,1.862291,USD,Azure Retail Prices API,2025-12-18T04:46:52.043217 +AZURE,southindia,Standard_EC48ads_v6,spot,NA,0.905705,USD,Azure Retail Prices API,2025-12-18T04:46:51.095677 +AZURE,southindia,Standard_EC48as_v6,on_demand,NA,4.027,USD,Azure Retail Prices API,2025-12-18T04:46:51.094592 +AZURE,southindia,Standard_EC48as_v6,reserved_1y,NA,2.376027,USD,Azure Retail Prices API,2025-12-18T04:46:52.042242 +AZURE,southindia,Standard_EC48as_v6,reserved_3y,NA,1.530327,USD,Azure Retail Prices API,2025-12-18T04:46:52.042246 +AZURE,southindia,Standard_EC48as_v6,spot,NA,0.74419,USD,Azure Retail Prices API,2025-12-18T04:46:51.095386 +AZURE,southindia,Standard_EC4ads_v6,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:51.094504 +AZURE,southindia,Standard_EC4ads_v6,reserved_1y,NA,0.240982,USD,Azure Retail Prices API,2025-12-18T04:46:52.042126 +AZURE,southindia,Standard_EC4ads_v6,reserved_3y,NA,0.155175,USD,Azure Retail Prices API,2025-12-18T04:46:52.042130 +AZURE,southindia,Standard_EC4ads_v6,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:46:51.094972 +AZURE,southindia,Standard_EC4as_v6,on_demand,NA,0.336,USD,Azure Retail Prices API,2025-12-18T04:46:51.094098 +AZURE,southindia,Standard_EC4as_v6,reserved_1y,NA,0.198059,USD,Azure Retail Prices API,2025-12-18T04:46:52.041687 +AZURE,southindia,Standard_EC4as_v6,reserved_3y,NA,0.127511,USD,Azure Retail Prices API,2025-12-18T04:46:52.041692 +AZURE,southindia,Standard_EC4as_v6,spot,NA,0.062093,USD,Azure Retail Prices API,2025-12-18T04:46:51.094803 +AZURE,southindia,Standard_EC64ads_v6,on_demand,NA,6.534,USD,Azure Retail Prices API,2025-12-18T04:46:51.095348 +AZURE,southindia,Standard_EC64ads_v6,reserved_1y,NA,3.855251,USD,Azure Retail Prices API,2025-12-18T04:46:52.043259 +AZURE,southindia,Standard_EC64ads_v6,reserved_3y,NA,2.483067,USD,Azure Retail Prices API,2025-12-18T04:46:52.043264 +AZURE,southindia,Standard_EC64ads_v6,spot,NA,1.207483,USD,Azure Retail Prices API,2025-12-18T04:46:51.094341 +AZURE,southindia,Standard_EC64as_v6,on_demand,NA,5.37,USD,Azure Retail Prices API,2025-12-18T04:46:51.094812 +AZURE,southindia,Standard_EC64as_v6,reserved_1y,NA,3.168037,USD,Azure Retail Prices API,2025-12-18T04:46:52.042495 +AZURE,southindia,Standard_EC64as_v6,reserved_3y,NA,2.040449,USD,Azure Retail Prices API,2025-12-18T04:46:52.042500 +AZURE,southindia,Standard_EC64as_v6,spot,NA,0.992376,USD,Azure Retail Prices API,2025-12-18T04:46:51.094384 +AZURE,southindia,Standard_EC8ads_v6,on_demand,NA,0.817,USD,Azure Retail Prices API,2025-12-18T04:46:51.094978 +AZURE,southindia,Standard_EC8ads_v6,reserved_1y,NA,0.481963,USD,Azure Retail Prices API,2025-12-18T04:46:52.042670 +AZURE,southindia,Standard_EC8ads_v6,reserved_3y,NA,0.310388,USD,Azure Retail Prices API,2025-12-18T04:46:52.042676 +AZURE,southindia,Standard_EC8ads_v6,spot,NA,0.150982,USD,Azure Retail Prices API,2025-12-18T04:46:51.094830 +AZURE,southindia,Standard_EC8as_v6,on_demand,NA,0.671,USD,Azure Retail Prices API,2025-12-18T04:46:51.095611 +AZURE,southindia,Standard_EC8as_v6,reserved_1y,NA,0.396005,USD,Azure Retail Prices API,2025-12-18T04:46:52.043598 +AZURE,southindia,Standard_EC8as_v6,reserved_3y,NA,0.255061,USD,Azure Retail Prices API,2025-12-18T04:46:52.043603 +AZURE,southindia,Standard_EC8as_v6,spot,NA,0.124001,USD,Azure Retail Prices API,2025-12-18T04:46:51.094315 +AZURE,southindia,Standard_EC96ads_v6,on_demand,NA,9.802,USD,Azure Retail Prices API,2025-12-18T04:46:51.094537 +AZURE,southindia,Standard_EC96ads_v6,reserved_1y,NA,5.782991,USD,Azure Retail Prices API,2025-12-18T04:46:52.042165 +AZURE,southindia,Standard_EC96ads_v6,reserved_3y,NA,3.724619,USD,Azure Retail Prices API,2025-12-18T04:46:52.042169 +AZURE,southindia,Standard_EC96ads_v6,spot,NA,1.81141,USD,Azure Retail Prices API,2025-12-18T04:46:51.095207 +AZURE,southindia,Standard_EC96as_v6,on_demand,NA,8.054,USD,Azure Retail Prices API,2025-12-18T04:46:51.094145 +AZURE,southindia,Standard_EC96as_v6,reserved_1y,NA,4.752055,USD,Azure Retail Prices API,2025-12-18T04:46:52.041744 +AZURE,southindia,Standard_EC96as_v6,reserved_3y,NA,3.060654,USD,Azure Retail Prices API,2025-12-18T04:46:52.041748 +AZURE,southindia,Standard_EC96as_v6,spot,NA,1.488379,USD,Azure Retail Prices API,2025-12-18T04:46:51.094406 +AZURE,southindia,Standard_F16,on_demand,NA,1.155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379798 +AZURE,southindia,Standard_F16,reserved_1y,NA,0.693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379810 +AZURE,southindia,Standard_F16,reserved_3y,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379816 +AZURE,southindia,Standard_F16,spot,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379804 +AZURE,southindia,Standard_F16s,on_demand,NA,1.155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382112 +AZURE,southindia,Standard_F16s,reserved_1y,NA,0.693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382120 +AZURE,southindia,Standard_F16s,reserved_3y,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382124 +AZURE,southindia,Standard_F16s,spot,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382116 +AZURE,southindia,Standard_F16s_v2,on_demand,NA,0.98,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384844 +AZURE,southindia,Standard_F16s_v2,reserved_1y,NA,0.588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384852 +AZURE,southindia,Standard_F16s_v2,reserved_3y,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384857 +AZURE,southindia,Standard_F16s_v2,spot,NA,0.294,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384848 +AZURE,southindia,Standard_F32s_v2,on_demand,NA,1.96,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385682 +AZURE,southindia,Standard_F32s_v2,reserved_1y,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385691 +AZURE,southindia,Standard_F32s_v2,reserved_3y,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385695 +AZURE,southindia,Standard_F32s_v2,spot,NA,0.588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385687 +AZURE,southindia,Standard_F4,on_demand,NA,0.28875,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378265 +AZURE,southindia,Standard_F4,reserved_1y,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378274 +AZURE,southindia,Standard_F4,reserved_3y,NA,0.1155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378278 +AZURE,southindia,Standard_F4,spot,NA,0.086625,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378270 +AZURE,southindia,Standard_F48s_v2,on_demand,NA,2.94,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386459 +AZURE,southindia,Standard_F48s_v2,reserved_1y,NA,1.764,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386467 +AZURE,southindia,Standard_F48s_v2,reserved_3y,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386471 +AZURE,southindia,Standard_F48s_v2,spot,NA,0.882,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386463 +AZURE,southindia,Standard_F4s,on_demand,NA,0.28875,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380549 +AZURE,southindia,Standard_F4s,reserved_1y,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380557 +AZURE,southindia,Standard_F4s,reserved_3y,NA,0.1155,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380561 +AZURE,southindia,Standard_F4s,spot,NA,0.086625,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380553 +AZURE,southindia,Standard_F4s_v2,on_demand,NA,0.245,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383235 +AZURE,southindia,Standard_F4s_v2,reserved_1y,NA,0.147,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383244 +AZURE,southindia,Standard_F4s_v2,reserved_3y,NA,0.098,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383249 +AZURE,southindia,Standard_F4s_v2,spot,NA,0.0735,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383239 +AZURE,southindia,Standard_F64s_v2,on_demand,NA,3.92,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387226 +AZURE,southindia,Standard_F64s_v2,reserved_1y,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387235 +AZURE,southindia,Standard_F64s_v2,reserved_3y,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387240 +AZURE,southindia,Standard_F64s_v2,spot,NA,1.176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387231 +AZURE,southindia,Standard_F72s_v2,on_demand,NA,4.41,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388408 +AZURE,southindia,Standard_F72s_v2,reserved_1y,NA,2.646,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388416 +AZURE,southindia,Standard_F72s_v2,reserved_3y,NA,1.764,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388421 +AZURE,southindia,Standard_F72s_v2,spot,NA,1.323,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388412 +AZURE,southindia,Standard_F8,on_demand,NA,0.5775,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379023 +AZURE,southindia,Standard_F8,reserved_1y,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379032 +AZURE,southindia,Standard_F8,reserved_3y,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379036 +AZURE,southindia,Standard_F8,spot,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379027 +AZURE,southindia,Standard_F8s,on_demand,NA,0.5775,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381308 +AZURE,southindia,Standard_F8s,reserved_1y,NA,0.3465,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381317 +AZURE,southindia,Standard_F8s,reserved_3y,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381321 +AZURE,southindia,Standard_F8s,spot,NA,0.17325,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381312 +AZURE,southindia,Standard_F8s_v2,on_demand,NA,0.49,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384040 +AZURE,southindia,Standard_F8s_v2,reserved_1y,NA,0.294,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384049 +AZURE,southindia,Standard_F8s_v2,reserved_3y,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384053 +AZURE,southindia,Standard_F8s_v2,spot,NA,0.147,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384045 +AZURE,southindia,Standard_L16as_v3,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:46:51.094764 +AZURE,southindia,Standard_L16as_v3,reserved_1y,NA,1.126142,USD,Azure Retail Prices API,2025-12-18T04:46:52.042475 +AZURE,southindia,Standard_L16as_v3,reserved_3y,NA,0.739079,USD,Azure Retail Prices API,2025-12-18T04:46:52.042481 +AZURE,southindia,Standard_L16as_v3,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:46:51.093979 +AZURE,southindia,Standard_L16s_v3,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:46:51.094564 +AZURE,southindia,Standard_L16s_v3,reserved_1y,NA,1.259703,USD,Azure Retail Prices API,2025-12-18T04:46:52.042213 +AZURE,southindia,Standard_L16s_v3,reserved_3y,NA,0.826712,USD,Azure Retail Prices API,2025-12-18T04:46:52.042218 +AZURE,southindia,Standard_L16s_v3,spot,NA,0.363686,USD,Azure Retail Prices API,2025-12-18T04:46:51.094142 +AZURE,southindia,Standard_L32as_v3,on_demand,NA,3.519,USD,Azure Retail Prices API,2025-12-18T04:46:51.094370 +AZURE,southindia,Standard_L32as_v3,reserved_1y,NA,2.252397,USD,Azure Retail Prices API,2025-12-18T04:46:52.041978 +AZURE,southindia,Standard_L32as_v3,reserved_3y,NA,1.47812,USD,Azure Retail Prices API,2025-12-18T04:46:52.041983 +AZURE,southindia,Standard_L32as_v3,spot,NA,0.650311,USD,Azure Retail Prices API,2025-12-18T04:46:51.094637 +AZURE,southindia,Standard_L32s_v3,on_demand,NA,3.937,USD,Azure Retail Prices API,2025-12-18T04:46:51.094679 +AZURE,southindia,Standard_L32s_v3,reserved_1y,NA,2.519521,USD,Azure Retail Prices API,2025-12-18T04:46:52.042358 +AZURE,southindia,Standard_L32s_v3,reserved_3y,NA,1.653425,USD,Azure Retail Prices API,2025-12-18T04:46:52.042363 +AZURE,southindia,Standard_L32s_v3,spot,NA,0.727558,USD,Azure Retail Prices API,2025-12-18T04:46:51.095017 +AZURE,southindia,Standard_L48as_v3,on_demand,NA,5.279,USD,Azure Retail Prices API,2025-12-18T04:46:51.094589 +AZURE,southindia,Standard_L48as_v3,reserved_1y,NA,3.378539,USD,Azure Retail Prices API,2025-12-18T04:46:52.042233 +AZURE,southindia,Standard_L48as_v3,reserved_3y,NA,2.217199,USD,Azure Retail Prices API,2025-12-18T04:46:52.042237 +AZURE,southindia,Standard_L48as_v3,spot,NA,0.975559,USD,Azure Retail Prices API,2025-12-18T04:46:51.094416 +AZURE,southindia,Standard_L48s_v3,on_demand,NA,5.905,USD,Azure Retail Prices API,2025-12-18T04:46:51.095236 +AZURE,southindia,Standard_L48s_v3,reserved_1y,NA,3.779224,USD,Azure Retail Prices API,2025-12-18T04:46:52.042964 +AZURE,southindia,Standard_L48s_v3,reserved_3y,NA,2.480137,USD,Azure Retail Prices API,2025-12-18T04:46:52.042969 +AZURE,southindia,Standard_L48s_v3,spot,NA,1.091244,USD,Azure Retail Prices API,2025-12-18T04:46:51.095329 +AZURE,southindia,Standard_L64as_v3,on_demand,NA,7.039,USD,Azure Retail Prices API,2025-12-18T04:46:51.095558 +AZURE,southindia,Standard_L64as_v3,reserved_1y,NA,4.504795,USD,Azure Retail Prices API,2025-12-18T04:46:52.043540 +AZURE,southindia,Standard_L64as_v3,reserved_3y,NA,2.956279,USD,Azure Retail Prices API,2025-12-18T04:46:52.043544 +AZURE,southindia,Standard_L64as_v3,spot,NA,1.300807,USD,Azure Retail Prices API,2025-12-18T04:46:51.095200 +AZURE,southindia,Standard_L64s_v3,on_demand,NA,7.873,USD,Azure Retail Prices API,2025-12-18T04:46:51.094000 +AZURE,southindia,Standard_L64s_v3,reserved_1y,NA,5.039041,USD,Azure Retail Prices API,2025-12-18T04:46:52.041550 +AZURE,southindia,Standard_L64s_v3,reserved_3y,NA,3.306849,USD,Azure Retail Prices API,2025-12-18T04:46:52.041555 +AZURE,southindia,Standard_L64s_v3,spot,NA,1.45493,USD,Azure Retail Prices API,2025-12-18T04:46:51.095491 +AZURE,southindia,Standard_L80as_v3,on_demand,NA,8.798,USD,Azure Retail Prices API,2025-12-18T04:46:51.095126 +AZURE,southindia,Standard_L80as_v3,reserved_1y,NA,5.630936,USD,Azure Retail Prices API,2025-12-18T04:46:52.042809 +AZURE,southindia,Standard_L80as_v3,reserved_3y,NA,3.69532,USD,Azure Retail Prices API,2025-12-18T04:46:52.042814 +AZURE,southindia,Standard_L80as_v3,spot,NA,1.62587,USD,Azure Retail Prices API,2025-12-18T04:46:51.094269 +AZURE,southindia,Standard_L80s_v3,on_demand,NA,9.842,USD,Azure Retail Prices API,2025-12-18T04:46:51.095371 +AZURE,southindia,Standard_L80s_v3,reserved_1y,NA,6.298744,USD,Azure Retail Prices API,2025-12-18T04:46:52.043318 +AZURE,southindia,Standard_L80s_v3,reserved_3y,NA,4.133562,USD,Azure Retail Prices API,2025-12-18T04:46:52.043323 +AZURE,southindia,Standard_L80s_v3,spot,NA,1.818802,USD,Azure Retail Prices API,2025-12-18T04:46:51.094651 +AZURE,southindia,Standard_L8as_v3,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:46:51.095624 +AZURE,southindia,Standard_L8as_v3,reserved_1y,NA,0.563128,USD,Azure Retail Prices API,2025-12-18T04:46:52.043628 +AZURE,southindia,Standard_L8as_v3,reserved_3y,NA,0.369521,USD,Azure Retail Prices API,2025-12-18T04:46:52.043633 +AZURE,southindia,Standard_L8as_v3,spot,NA,0.162624,USD,Azure Retail Prices API,2025-12-18T04:46:51.093954 +AZURE,southindia,Standard_L8s_v3,on_demand,NA,0.984,USD,Azure Retail Prices API,2025-12-18T04:46:51.094154 +AZURE,southindia,Standard_L8s_v3,reserved_1y,NA,0.629909,USD,Azure Retail Prices API,2025-12-18T04:46:52.041773 +AZURE,southindia,Standard_L8s_v3,reserved_3y,NA,0.413356,USD,Azure Retail Prices API,2025-12-18T04:46:52.041778 +AZURE,southindia,Standard_L8s_v3,spot,NA,0.181843,USD,Azure Retail Prices API,2025-12-18T04:46:51.094619 +AZURE,southindia,Standard_NC16as_T4_v3,on_demand,NA,1.697,USD,Azure Retail Prices API,2025-12-18T04:46:51.094159 +AZURE,southindia,Standard_NC16as_T4_v3,reserved_1y,NA,1.001256,USD,Azure Retail Prices API,2025-12-18T04:46:52.041792 +AZURE,southindia,Standard_NC16as_T4_v3,reserved_3y,NA,0.644863,USD,Azure Retail Prices API,2025-12-18T04:46:52.041797 +AZURE,southindia,Standard_NC16as_T4_v3,spot,NA,0.49213,USD,Azure Retail Prices API,2025-12-18T04:46:51.093938 +AZURE,southindia,Standard_NC4as_T4_v3,on_demand,NA,0.742,USD,Azure Retail Prices API,2025-12-18T04:46:51.094157 +AZURE,southindia,Standard_NC4as_T4_v3,reserved_1y,NA,0.437557,USD,Azure Retail Prices API,2025-12-18T04:46:52.041783 +AZURE,southindia,Standard_NC4as_T4_v3,reserved_3y,NA,0.281849,USD,Azure Retail Prices API,2025-12-18T04:46:52.041787 +AZURE,southindia,Standard_NC4as_T4_v3,spot,NA,0.21518,USD,Azure Retail Prices API,2025-12-18T04:46:51.094717 +AZURE,southindia,Standard_NC64as_T4_v3,on_demand,NA,6.123,USD,Azure Retail Prices API,2025-12-18T04:46:51.095707 +AZURE,southindia,Standard_NC64as_T4_v3,reserved_1y,NA,3.612785,USD,Azure Retail Prices API,2025-12-18T04:46:52.043687 +AZURE,southindia,Standard_NC64as_T4_v3,reserved_3y,NA,2.326865,USD,Azure Retail Prices API,2025-12-18T04:46:52.043693 +AZURE,southindia,Standard_NC64as_T4_v3,spot,NA,1.77567,USD,Azure Retail Prices API,2025-12-18T04:46:51.094084 +AZURE,southindia,Standard_NC8as_T4_v3,on_demand,NA,1.059,USD,Azure Retail Prices API,2025-12-18T04:46:51.094487 +AZURE,southindia,Standard_NC8as_T4_v3,reserved_1y,NA,0.625,USD,Azure Retail Prices API,2025-12-18T04:46:52.042086 +AZURE,southindia,Standard_NC8as_T4_v3,reserved_3y,NA,0.402588,USD,Azure Retail Prices API,2025-12-18T04:46:52.042091 +AZURE,southindia,Standard_NC8as_T4_v3,spot,NA,0.30711,USD,Azure Retail Prices API,2025-12-18T04:46:51.094089 +AZURE,swedencentral,Standard_D128ds_v6,on_demand,NA,8.472,USD,Azure Retail Prices API,2025-12-18T04:46:00.284592 +AZURE,swedencentral,Standard_D128ds_v6,reserved_1y,NA,5.252854,USD,Azure Retail Prices API,2025-12-18T04:46:02.060556 +AZURE,swedencentral,Standard_D128ds_v6,reserved_3y,NA,3.304224,USD,Azure Retail Prices API,2025-12-18T04:46:02.060561 +AZURE,swedencentral,Standard_D128ds_v6,spot,NA,1.565626,USD,Azure Retail Prices API,2025-12-18T04:46:00.284386 +AZURE,swedencentral,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488417 +AZURE,swedencentral,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488425 +AZURE,swedencentral,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488429 +AZURE,swedencentral,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488421 +AZURE,swedencentral,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489185 +AZURE,swedencentral,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489193 +AZURE,swedencentral,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489198 +AZURE,swedencentral,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489189 +AZURE,swedencentral,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490294 +AZURE,swedencentral,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490302 +AZURE,swedencentral,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490306 +AZURE,swedencentral,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490298 +AZURE,swedencentral,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491006 +AZURE,swedencentral,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491015 +AZURE,swedencentral,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491019 +AZURE,swedencentral,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491010 +AZURE,swedencentral,Standard_D16_v3,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:46:00.284595 +AZURE,swedencentral,Standard_D16_v3,reserved_1y,NA,0.479795,USD,Azure Retail Prices API,2025-12-18T04:46:02.060566 +AZURE,swedencentral,Standard_D16_v3,reserved_3y,NA,0.306811,USD,Azure Retail Prices API,2025-12-18T04:46:02.060571 +AZURE,swedencentral,Standard_D16_v3,spot,NA,0.150797,USD,Azure Retail Prices API,2025-12-18T04:46:00.284792 +AZURE,swedencentral,Standard_D16a_v4,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:46:00.285137 +AZURE,swedencentral,Standard_D16a_v4,reserved_1y,NA,0.481393,USD,Azure Retail Prices API,2025-12-18T04:46:02.061426 +AZURE,swedencentral,Standard_D16a_v4,reserved_3y,NA,0.310084,USD,Azure Retail Prices API,2025-12-18T04:46:02.061431 +AZURE,swedencentral,Standard_D16a_v4,spot,NA,0.150797,USD,Azure Retail Prices API,2025-12-18T04:46:00.284755 +AZURE,swedencentral,Standard_D16ads_v5,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:46:00.284428 +AZURE,swedencentral,Standard_D16ads_v5,reserved_1y,NA,0.519178,USD,Azure Retail Prices API,2025-12-18T04:46:02.060308 +AZURE,swedencentral,Standard_D16ads_v5,reserved_3y,NA,0.334399,USD,Azure Retail Prices API,2025-12-18T04:46:02.060313 +AZURE,swedencentral,Standard_D16ads_v5,spot,NA,0.162624,USD,Azure Retail Prices API,2025-12-18T04:46:00.284063 +AZURE,swedencentral,Standard_D16ads_v6,on_demand,NA,0.976,USD,Azure Retail Prices API,2025-12-18T04:46:00.284368 +AZURE,swedencentral,Standard_D16ads_v6,reserved_1y,NA,0.575799,USD,Azure Retail Prices API,2025-12-18T04:46:02.060194 +AZURE,swedencentral,Standard_D16ads_v6,reserved_3y,NA,0.37089,USD,Azure Retail Prices API,2025-12-18T04:46:02.060199 +AZURE,swedencentral,Standard_D16ads_v6,spot,NA,0.180365,USD,Azure Retail Prices API,2025-12-18T04:46:00.284131 +AZURE,swedencentral,Standard_D16as_v4,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:46:00.284704 +AZURE,swedencentral,Standard_D16as_v4,reserved_1y,NA,0.481393,USD,Azure Retail Prices API,2025-12-18T04:46:02.060758 +AZURE,swedencentral,Standard_D16as_v4,reserved_3y,NA,0.310084,USD,Azure Retail Prices API,2025-12-18T04:46:02.060763 +AZURE,swedencentral,Standard_D16as_v4,spot,NA,0.150797,USD,Azure Retail Prices API,2025-12-18T04:46:00.284914 +AZURE,swedencentral,Standard_D16as_v5,on_demand,NA,1.472,USD,Azure Retail Prices API,2025-12-18T04:46:00.283967 +AZURE,swedencentral,Standard_D16as_v5,reserved_1y,NA,0.434247,USD,Azure Retail Prices API,2025-12-18T04:46:02.061223 +AZURE,swedencentral,Standard_D16as_v5,reserved_3y,NA,0.27968,USD,Azure Retail Prices API,2025-12-18T04:46:02.061228 +AZURE,swedencentral,Standard_D16as_v5,spot,NA,0.136013,USD,Azure Retail Prices API,2025-12-18T04:46:00.284457 +AZURE,swedencentral,Standard_D16d_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:00.284999 +AZURE,swedencentral,Standard_D16d_v4,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:02.061135 +AZURE,swedencentral,Standard_D16d_v4,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:46:02.061140 +AZURE,swedencentral,Standard_D16d_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:00.284584 +AZURE,swedencentral,Standard_D16ds_v4,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:00.285086 +AZURE,swedencentral,Standard_D16ds_v4,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:02.061328 +AZURE,swedencentral,Standard_D16ds_v4,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:46:02.061334 +AZURE,swedencentral,Standard_D16ds_v4,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:00.284091 +AZURE,swedencentral,Standard_D16ds_v5,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:00.284294 +AZURE,swedencentral,Standard_D16ds_v5,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:46:02.060048 +AZURE,swedencentral,Standard_D16ds_v5,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:46:02.060053 +AZURE,swedencentral,Standard_D16ds_v5,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:46:00.283994 +AZURE,swedencentral,Standard_D16ds_v6,on_demand,NA,1.059,USD,Azure Retail Prices API,2025-12-18T04:46:00.285036 +AZURE,swedencentral,Standard_D16ds_v6,reserved_1y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:46:02.061196 +AZURE,swedencentral,Standard_D16ds_v6,reserved_3y,NA,0.413014,USD,Azure Retail Prices API,2025-12-18T04:46:02.061200 +AZURE,swedencentral,Standard_D16ds_v6,spot,NA,0.195703,USD,Azure Retail Prices API,2025-12-18T04:46:00.284183 +AZURE,swedencentral,Standard_D16pds_v6,on_demand,NA,0.782,USD,Azure Retail Prices API,2025-12-18T04:46:00.285110 +AZURE,swedencentral,Standard_D16pds_v6,reserved_1y,NA,0.461644,USD,Azure Retail Prices API,2025-12-18T04:46:02.061387 +AZURE,swedencentral,Standard_D16pds_v6,reserved_3y,NA,0.297298,USD,Azure Retail Prices API,2025-12-18T04:46:02.061391 +AZURE,swedencentral,Standard_D16pds_v6,spot,NA,0.144514,USD,Azure Retail Prices API,2025-12-18T04:46:00.284140 +AZURE,swedencentral,Standard_D16ps_v6,on_demand,NA,0.598,USD,Azure Retail Prices API,2025-12-18T04:46:00.284810 +AZURE,swedencentral,Standard_D16ps_v6,reserved_1y,NA,0.353082,USD,Azure Retail Prices API,2025-12-18T04:46:02.060841 +AZURE,swedencentral,Standard_D16ps_v6,reserved_3y,NA,0.227397,USD,Azure Retail Prices API,2025-12-18T04:46:02.060846 +AZURE,swedencentral,Standard_D16ps_v6,spot,NA,0.11051,USD,Azure Retail Prices API,2025-12-18T04:46:00.284112 +AZURE,swedencentral,Standard_D16s_v3,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:46:00.283720 +AZURE,swedencentral,Standard_D16s_v3,reserved_1y,NA,0.479795,USD,Azure Retail Prices API,2025-12-18T04:46:02.059360 +AZURE,swedencentral,Standard_D16s_v3,reserved_3y,NA,0.306811,USD,Azure Retail Prices API,2025-12-18T04:46:02.059363 +AZURE,swedencentral,Standard_D16s_v3,spot,NA,0.150797,USD,Azure Retail Prices API,2025-12-18T04:46:00.284228 +AZURE,swedencentral,Standard_D16s_v4,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:46:00.283592 +AZURE,swedencentral,Standard_D16s_v4,reserved_1y,NA,0.481393,USD,Azure Retail Prices API,2025-12-18T04:46:02.059279 +AZURE,swedencentral,Standard_D16s_v4,reserved_3y,NA,0.310084,USD,Azure Retail Prices API,2025-12-18T04:46:02.059282 +AZURE,swedencentral,Standard_D16s_v4,spot,NA,0.150797,USD,Azure Retail Prices API,2025-12-18T04:46:00.284134 +AZURE,swedencentral,Standard_D16s_v5,on_demand,NA,0.816,USD,Azure Retail Prices API,2025-12-18T04:46:00.284695 +AZURE,swedencentral,Standard_D16s_v5,reserved_1y,NA,0.481393,USD,Azure Retail Prices API,2025-12-18T04:46:02.060739 +AZURE,swedencentral,Standard_D16s_v5,reserved_3y,NA,0.301903,USD,Azure Retail Prices API,2025-12-18T04:46:02.060744 +AZURE,swedencentral,Standard_D16s_v5,spot,NA,0.150797,USD,Azure Retail Prices API,2025-12-18T04:46:00.283805 +AZURE,swedencentral,Standard_D2ads_v6,on_demand,NA,0.122,USD,Azure Retail Prices API,2025-12-18T04:46:00.284746 +AZURE,swedencentral,Standard_D2ads_v6,reserved_1y,NA,0.072032,USD,Azure Retail Prices API,2025-12-18T04:46:02.060779 +AZURE,swedencentral,Standard_D2ads_v6,reserved_3y,NA,0.046347,USD,Azure Retail Prices API,2025-12-18T04:46:02.060784 +AZURE,swedencentral,Standard_D2ads_v6,spot,NA,0.022546,USD,Azure Retail Prices API,2025-12-18T04:46:00.284483 +AZURE,swedencentral,Standard_D2ds_v6,on_demand,NA,0.132,USD,Azure Retail Prices API,2025-12-18T04:46:00.284446 +AZURE,swedencentral,Standard_D2ds_v6,reserved_1y,NA,0.082078,USD,Azure Retail Prices API,2025-12-18T04:46:02.060329 +AZURE,swedencentral,Standard_D2ds_v6,reserved_3y,NA,0.051636,USD,Azure Retail Prices API,2025-12-18T04:46:02.060334 +AZURE,swedencentral,Standard_D2ds_v6,spot,NA,0.024394,USD,Azure Retail Prices API,2025-12-18T04:46:00.285026 +AZURE,swedencentral,Standard_D32_v3,on_demand,NA,1.632,USD,Azure Retail Prices API,2025-12-18T04:46:00.284603 +AZURE,swedencentral,Standard_D32_v3,reserved_1y,NA,0.959589,USD,Azure Retail Prices API,2025-12-18T04:46:02.060576 +AZURE,swedencentral,Standard_D32_v3,reserved_3y,NA,0.613623,USD,Azure Retail Prices API,2025-12-18T04:46:02.060581 +AZURE,swedencentral,Standard_D32_v3,spot,NA,0.301594,USD,Azure Retail Prices API,2025-12-18T04:46:00.284471 +AZURE,swedencentral,Standard_D32a_v4,on_demand,NA,1.632,USD,Azure Retail Prices API,2025-12-18T04:46:00.285008 +AZURE,swedencentral,Standard_D32a_v4,reserved_1y,NA,0.9629,USD,Azure Retail Prices API,2025-12-18T04:46:02.061167 +AZURE,swedencentral,Standard_D32a_v4,reserved_3y,NA,0.620167,USD,Azure Retail Prices API,2025-12-18T04:46:02.061173 +AZURE,swedencentral,Standard_D32a_v4,spot,NA,0.301594,USD,Azure Retail Prices API,2025-12-18T04:46:00.284974 +AZURE,swedencentral,Standard_D32ads_v5,on_demand,NA,3.232,USD,Azure Retail Prices API,2025-12-18T04:46:00.283849 +AZURE,swedencentral,Standard_D32ads_v5,reserved_1y,NA,1.038356,USD,Azure Retail Prices API,2025-12-18T04:46:02.061242 +AZURE,swedencentral,Standard_D32ads_v5,reserved_3y,NA,0.668798,USD,Azure Retail Prices API,2025-12-18T04:46:02.061246 +AZURE,swedencentral,Standard_D32ads_v5,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:46:00.283530 +AZURE,swedencentral,Standard_D32ads_v6,on_demand,NA,1.952,USD,Azure Retail Prices API,2025-12-18T04:46:00.283906 +AZURE,swedencentral,Standard_D32ads_v6,reserved_1y,NA,1.151712,USD,Azure Retail Prices API,2025-12-18T04:46:02.059561 +AZURE,swedencentral,Standard_D32ads_v6,reserved_3y,NA,0.741743,USD,Azure Retail Prices API,2025-12-18T04:46:02.059564 +AZURE,swedencentral,Standard_D32ads_v6,spot,NA,0.36073,USD,Azure Retail Prices API,2025-12-18T04:46:00.284654 +AZURE,swedencentral,Standard_D32as_v4,on_demand,NA,1.632,USD,Azure Retail Prices API,2025-12-18T04:46:00.284835 +AZURE,swedencentral,Standard_D32as_v4,reserved_1y,NA,0.9629,USD,Azure Retail Prices API,2025-12-18T04:46:02.060914 +AZURE,swedencentral,Standard_D32as_v4,reserved_3y,NA,0.620167,USD,Azure Retail Prices API,2025-12-18T04:46:02.060919 +AZURE,swedencentral,Standard_D32as_v4,spot,NA,0.301594,USD,Azure Retail Prices API,2025-12-18T04:46:00.283808 +AZURE,swedencentral,Standard_D32as_v5,on_demand,NA,2.944,USD,Azure Retail Prices API,2025-12-18T04:46:00.283903 +AZURE,swedencentral,Standard_D32as_v5,reserved_1y,NA,0.868493,USD,Azure Retail Prices API,2025-12-18T04:46:02.061251 +AZURE,swedencentral,Standard_D32as_v5,reserved_3y,NA,0.559361,USD,Azure Retail Prices API,2025-12-18T04:46:02.061256 +AZURE,swedencentral,Standard_D32as_v5,spot,NA,0.272026,USD,Azure Retail Prices API,2025-12-18T04:46:00.284867 +AZURE,swedencentral,Standard_D32d_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:00.284148 +AZURE,swedencentral,Standard_D32d_v4,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:02.059767 +AZURE,swedencentral,Standard_D32d_v4,reserved_3y,NA,0.729604,USD,Azure Retail Prices API,2025-12-18T04:46:02.059771 +AZURE,swedencentral,Standard_D32d_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:00.284978 +AZURE,swedencentral,Standard_D32ds_v4,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:00.284567 +AZURE,swedencentral,Standard_D32ds_v4,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:02.060517 +AZURE,swedencentral,Standard_D32ds_v4,reserved_3y,NA,0.729604,USD,Azure Retail Prices API,2025-12-18T04:46:02.060522 +AZURE,swedencentral,Standard_D32ds_v4,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:00.284987 +AZURE,swedencentral,Standard_D32ds_v5,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:00.284168 +AZURE,swedencentral,Standard_D32ds_v5,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:46:02.059786 +AZURE,swedencentral,Standard_D32ds_v5,reserved_3y,NA,0.729604,USD,Azure Retail Prices API,2025-12-18T04:46:02.059790 +AZURE,swedencentral,Standard_D32ds_v5,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:46:00.283553 +AZURE,swedencentral,Standard_D32ds_v6,on_demand,NA,2.118,USD,Azure Retail Prices API,2025-12-18T04:46:00.284014 +AZURE,swedencentral,Standard_D32ds_v6,reserved_1y,NA,1.313242,USD,Azure Retail Prices API,2025-12-18T04:46:02.059655 +AZURE,swedencentral,Standard_D32ds_v6,reserved_3y,NA,0.826065,USD,Azure Retail Prices API,2025-12-18T04:46:02.059658 +AZURE,swedencentral,Standard_D32ds_v6,spot,NA,0.391406,USD,Azure Retail Prices API,2025-12-18T04:46:00.284356 +AZURE,swedencentral,Standard_D32pds_v6,on_demand,NA,1.565,USD,Azure Retail Prices API,2025-12-18T04:46:00.283877 +AZURE,swedencentral,Standard_D32pds_v6,reserved_1y,NA,0.923288,USD,Azure Retail Prices API,2025-12-18T04:46:02.059550 +AZURE,swedencentral,Standard_D32pds_v6,reserved_3y,NA,0.594635,USD,Azure Retail Prices API,2025-12-18T04:46:02.059553 +AZURE,swedencentral,Standard_D32pds_v6,spot,NA,0.289212,USD,Azure Retail Prices API,2025-12-18T04:46:00.284726 +AZURE,swedencentral,Standard_D32ps_v6,on_demand,NA,1.197,USD,Azure Retail Prices API,2025-12-18T04:46:00.285080 +AZURE,swedencentral,Standard_D32ps_v6,reserved_1y,NA,0.706164,USD,Azure Retail Prices API,2025-12-18T04:46:02.061318 +AZURE,swedencentral,Standard_D32ps_v6,reserved_3y,NA,0.454795,USD,Azure Retail Prices API,2025-12-18T04:46:02.061323 +AZURE,swedencentral,Standard_D32ps_v6,spot,NA,0.221206,USD,Azure Retail Prices API,2025-12-18T04:46:00.285047 +AZURE,swedencentral,Standard_D32s_v3,on_demand,NA,1.632,USD,Azure Retail Prices API,2025-12-18T04:46:00.284277 +AZURE,swedencentral,Standard_D32s_v3,reserved_1y,NA,0.959589,USD,Azure Retail Prices API,2025-12-18T04:46:02.060013 +AZURE,swedencentral,Standard_D32s_v3,reserved_3y,NA,0.613623,USD,Azure Retail Prices API,2025-12-18T04:46:02.060018 +AZURE,swedencentral,Standard_D32s_v3,spot,NA,0.301594,USD,Azure Retail Prices API,2025-12-18T04:46:00.284643 +AZURE,swedencentral,Standard_D32s_v4,on_demand,NA,1.632,USD,Azure Retail Prices API,2025-12-18T04:46:00.283499 +AZURE,swedencentral,Standard_D32s_v4,reserved_1y,NA,0.9629,USD,Azure Retail Prices API,2025-12-18T04:46:02.059205 +AZURE,swedencentral,Standard_D32s_v4,reserved_3y,NA,0.620167,USD,Azure Retail Prices API,2025-12-18T04:46:02.059217 +AZURE,swedencentral,Standard_D32s_v4,spot,NA,0.301594,USD,Azure Retail Prices API,2025-12-18T04:46:00.284380 +AZURE,swedencentral,Standard_D32s_v5,on_demand,NA,1.632,USD,Azure Retail Prices API,2025-12-18T04:46:00.285089 +AZURE,swedencentral,Standard_D32s_v5,reserved_1y,NA,0.9629,USD,Azure Retail Prices API,2025-12-18T04:46:02.061339 +AZURE,swedencentral,Standard_D32s_v5,reserved_3y,NA,0.603843,USD,Azure Retail Prices API,2025-12-18T04:46:02.061343 +AZURE,swedencentral,Standard_D32s_v5,spot,NA,0.301594,USD,Azure Retail Prices API,2025-12-18T04:46:00.283547 +AZURE,swedencentral,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485427 +AZURE,swedencentral,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485439 +AZURE,swedencentral,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485446 +AZURE,swedencentral,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485433 +AZURE,swedencentral,Standard_D48a_v4,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:46:00.284536 +AZURE,swedencentral,Standard_D48a_v4,reserved_1y,NA,1.444292,USD,Azure Retail Prices API,2025-12-18T04:46:02.060458 +AZURE,swedencentral,Standard_D48a_v4,reserved_3y,NA,0.930251,USD,Azure Retail Prices API,2025-12-18T04:46:02.060463 +AZURE,swedencentral,Standard_D48a_v4,spot,NA,0.45239,USD,Azure Retail Prices API,2025-12-18T04:46:00.283556 +AZURE,swedencentral,Standard_D48ads_v5,on_demand,NA,4.848,USD,Azure Retail Prices API,2025-12-18T04:46:00.284017 +AZURE,swedencentral,Standard_D48ads_v5,reserved_1y,NA,1.557648,USD,Azure Retail Prices API,2025-12-18T04:46:02.060241 +AZURE,swedencentral,Standard_D48ads_v5,reserved_3y,NA,1.003196,USD,Azure Retail Prices API,2025-12-18T04:46:02.060246 +AZURE,swedencentral,Standard_D48ads_v5,spot,NA,0.487872,USD,Azure Retail Prices API,2025-12-18T04:46:00.283527 +AZURE,swedencentral,Standard_D48ads_v6,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:00.284413 +AZURE,swedencentral,Standard_D48ads_v6,reserved_1y,NA,1.727511,USD,Azure Retail Prices API,2025-12-18T04:46:02.060280 +AZURE,swedencentral,Standard_D48ads_v6,reserved_3y,NA,1.112633,USD,Azure Retail Prices API,2025-12-18T04:46:02.060285 +AZURE,swedencentral,Standard_D48ads_v6,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:00.284737 +AZURE,swedencentral,Standard_D48as_v4,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:46:00.284344 +AZURE,swedencentral,Standard_D48as_v4,reserved_1y,NA,1.444292,USD,Azure Retail Prices API,2025-12-18T04:46:02.060154 +AZURE,swedencentral,Standard_D48as_v4,reserved_3y,NA,0.930251,USD,Azure Retail Prices API,2025-12-18T04:46:02.060158 +AZURE,swedencentral,Standard_D48as_v4,spot,NA,0.45239,USD,Azure Retail Prices API,2025-12-18T04:46:00.284783 +AZURE,swedencentral,Standard_D48as_v5,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:46:00.283771 +AZURE,swedencentral,Standard_D48as_v5,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:46:02.059433 +AZURE,swedencentral,Standard_D48as_v5,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:46:02.059437 +AZURE,swedencentral,Standard_D48as_v5,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:46:00.284991 +AZURE,swedencentral,Standard_D48d_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:00.284425 +AZURE,swedencentral,Standard_D48d_v4,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:02.060299 +AZURE,swedencentral,Standard_D48d_v4,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:02.060303 +AZURE,swedencentral,Standard_D48d_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:00.283898 +AZURE,swedencentral,Standard_D48ds_v4,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:00.283729 +AZURE,swedencentral,Standard_D48ds_v4,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:02.059372 +AZURE,swedencentral,Standard_D48ds_v4,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:02.059374 +AZURE,swedencentral,Standard_D48ds_v4,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:00.284997 +AZURE,swedencentral,Standard_D48ds_v5,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:46:00.285091 +AZURE,swedencentral,Standard_D48ds_v5,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:46:02.061348 +AZURE,swedencentral,Standard_D48ds_v5,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:46:02.061353 +AZURE,swedencentral,Standard_D48ds_v5,spot,NA,0.532224,USD,Azure Retail Prices API,2025-12-18T04:46:00.284666 +AZURE,swedencentral,Standard_D48ds_v6,on_demand,NA,3.177,USD,Azure Retail Prices API,2025-12-18T04:46:00.284203 +AZURE,swedencentral,Standard_D48ds_v6,reserved_1y,NA,1.969863,USD,Azure Retail Prices API,2025-12-18T04:46:02.059837 +AZURE,swedencentral,Standard_D48ds_v6,reserved_3y,NA,1.239079,USD,Azure Retail Prices API,2025-12-18T04:46:02.059842 +AZURE,swedencentral,Standard_D48ds_v6,spot,NA,0.58711,USD,Azure Retail Prices API,2025-12-18T04:46:00.283564 +AZURE,swedencentral,Standard_D48pds_v6,on_demand,NA,2.347,USD,Azure Retail Prices API,2025-12-18T04:46:00.285078 +AZURE,swedencentral,Standard_D48pds_v6,reserved_1y,NA,1.384817,USD,Azure Retail Prices API,2025-12-18T04:46:02.061308 +AZURE,swedencentral,Standard_D48pds_v6,reserved_3y,NA,0.891933,USD,Azure Retail Prices API,2025-12-18T04:46:02.061313 +AZURE,swedencentral,Standard_D48pds_v6,spot,NA,0.433726,USD,Azure Retail Prices API,2025-12-18T04:46:00.283751 +AZURE,swedencentral,Standard_D48ps_v6,on_demand,NA,1.795,USD,Azure Retail Prices API,2025-12-18T04:46:00.283917 +AZURE,swedencentral,Standard_D48ps_v6,reserved_1y,NA,1.059132,USD,Azure Retail Prices API,2025-12-18T04:46:02.059572 +AZURE,swedencentral,Standard_D48ps_v6,reserved_3y,NA,0.682192,USD,Azure Retail Prices API,2025-12-18T04:46:02.059575 +AZURE,swedencentral,Standard_D48ps_v6,spot,NA,0.331716,USD,Azure Retail Prices API,2025-12-18T04:46:00.285011 +AZURE,swedencentral,Standard_D48s_v4,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:46:00.284115 +AZURE,swedencentral,Standard_D48s_v4,reserved_1y,NA,1.444292,USD,Azure Retail Prices API,2025-12-18T04:46:02.059731 +AZURE,swedencentral,Standard_D48s_v4,reserved_3y,NA,0.930251,USD,Azure Retail Prices API,2025-12-18T04:46:02.059734 +AZURE,swedencentral,Standard_D48s_v4,spot,NA,0.45239,USD,Azure Retail Prices API,2025-12-18T04:46:00.283785 +AZURE,swedencentral,Standard_D48s_v5,on_demand,NA,2.448,USD,Azure Retail Prices API,2025-12-18T04:46:00.284275 +AZURE,swedencentral,Standard_D48s_v5,reserved_1y,NA,1.444292,USD,Azure Retail Prices API,2025-12-18T04:46:02.060005 +AZURE,swedencentral,Standard_D48s_v5,reserved_3y,NA,0.905746,USD,Azure Retail Prices API,2025-12-18T04:46:02.060009 +AZURE,swedencentral,Standard_D48s_v5,spot,NA,0.45239,USD,Azure Retail Prices API,2025-12-18T04:46:00.284359 +AZURE,swedencentral,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486286 +AZURE,swedencentral,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486294 +AZURE,swedencentral,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486298 +AZURE,swedencentral,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486290 +AZURE,swedencentral,Standard_D4a_v4,on_demand,NA,0.204,USD,Azure Retail Prices API,2025-12-18T04:46:00.283521 +AZURE,swedencentral,Standard_D4a_v4,reserved_1y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:46:02.059249 +AZURE,swedencentral,Standard_D4a_v4,reserved_3y,NA,0.077511,USD,Azure Retail Prices API,2025-12-18T04:46:02.059252 +AZURE,swedencentral,Standard_D4a_v4,spot,NA,0.037699,USD,Azure Retail Prices API,2025-12-18T04:46:00.284626 +AZURE,swedencentral,Standard_D4ads_v5,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:46:00.284547 +AZURE,swedencentral,Standard_D4ads_v5,reserved_1y,NA,0.129795,USD,Azure Retail Prices API,2025-12-18T04:46:02.060479 +AZURE,swedencentral,Standard_D4ads_v5,reserved_3y,NA,0.0836,USD,Azure Retail Prices API,2025-12-18T04:46:02.060484 +AZURE,swedencentral,Standard_D4ads_v5,spot,NA,0.040656,USD,Azure Retail Prices API,2025-12-18T04:46:00.284174 +AZURE,swedencentral,Standard_D4ads_v6,on_demand,NA,0.244,USD,Azure Retail Prices API,2025-12-18T04:46:00.284261 +AZURE,swedencentral,Standard_D4ads_v6,reserved_1y,NA,0.14395,USD,Azure Retail Prices API,2025-12-18T04:46:02.059970 +AZURE,swedencentral,Standard_D4ads_v6,reserved_3y,NA,0.092732,USD,Azure Retail Prices API,2025-12-18T04:46:02.059974 +AZURE,swedencentral,Standard_D4ads_v6,spot,NA,0.045091,USD,Azure Retail Prices API,2025-12-18T04:46:00.283953 +AZURE,swedencentral,Standard_D4as_v5,on_demand,NA,0.368,USD,Azure Retail Prices API,2025-12-18T04:46:00.284104 +AZURE,swedencentral,Standard_D4as_v5,reserved_1y,NA,0.108562,USD,Azure Retail Prices API,2025-12-18T04:46:02.060233 +AZURE,swedencentral,Standard_D4as_v5,reserved_3y,NA,0.069901,USD,Azure Retail Prices API,2025-12-18T04:46:02.060237 +AZURE,swedencentral,Standard_D4as_v5,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:46:00.284159 +AZURE,swedencentral,Standard_D4d_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:00.284822 +AZURE,swedencentral,Standard_D4d_v4,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:46:02.060862 +AZURE,swedencentral,Standard_D4d_v4,reserved_3y,NA,0.09121,USD,Azure Retail Prices API,2025-12-18T04:46:02.060867 +AZURE,swedencentral,Standard_D4d_v4,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:00.283754 +AZURE,swedencentral,Standard_D4ds_v4,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:00.283791 +AZURE,swedencentral,Standard_D4ds_v4,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:46:02.059464 +AZURE,swedencentral,Standard_D4ds_v4,reserved_3y,NA,0.09121,USD,Azure Retail Prices API,2025-12-18T04:46:02.059467 +AZURE,swedencentral,Standard_D4ds_v4,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:00.284068 +AZURE,swedencentral,Standard_D4ds_v5,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:00.283609 +AZURE,swedencentral,Standard_D4ds_v5,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:46:02.059285 +AZURE,swedencentral,Standard_D4ds_v5,reserved_3y,NA,0.09121,USD,Azure Retail Prices API,2025-12-18T04:46:02.059288 +AZURE,swedencentral,Standard_D4ds_v5,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:46:00.284523 +AZURE,swedencentral,Standard_D4ds_v6,on_demand,NA,0.265,USD,Azure Retail Prices API,2025-12-18T04:46:00.284314 +AZURE,swedencentral,Standard_D4ds_v6,reserved_1y,NA,0.164155,USD,Azure Retail Prices API,2025-12-18T04:46:02.060096 +AZURE,swedencentral,Standard_D4ds_v6,reserved_3y,NA,0.103272,USD,Azure Retail Prices API,2025-12-18T04:46:02.060100 +AZURE,swedencentral,Standard_D4ds_v6,spot,NA,0.048972,USD,Azure Retail Prices API,2025-12-18T04:46:00.284807 +AZURE,swedencentral,Standard_D4pds_v6,on_demand,NA,0.196,USD,Azure Retail Prices API,2025-12-18T04:46:00.284338 +AZURE,swedencentral,Standard_D4pds_v6,reserved_1y,NA,0.115411,USD,Azure Retail Prices API,2025-12-18T04:46:02.060136 +AZURE,swedencentral,Standard_D4pds_v6,reserved_3y,NA,0.074315,USD,Azure Retail Prices API,2025-12-18T04:46:02.060140 +AZURE,swedencentral,Standard_D4pds_v6,spot,NA,0.036221,USD,Azure Retail Prices API,2025-12-18T04:46:00.283606 +AZURE,swedencentral,Standard_D4ps_v6,on_demand,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:46:00.283925 +AZURE,swedencentral,Standard_D4ps_v6,reserved_1y,NA,0.088242,USD,Azure Retail Prices API,2025-12-18T04:46:02.059578 +AZURE,swedencentral,Standard_D4ps_v6,reserved_3y,NA,0.056849,USD,Azure Retail Prices API,2025-12-18T04:46:02.059581 +AZURE,swedencentral,Standard_D4ps_v6,spot,NA,0.02772,USD,Azure Retail Prices API,2025-12-18T04:46:00.283985 +AZURE,swedencentral,Standard_D4s_v3,on_demand,NA,0.204,USD,Azure Retail Prices API,2025-12-18T04:46:00.284870 +AZURE,swedencentral,Standard_D4s_v3,reserved_1y,NA,0.119977,USD,Azure Retail Prices API,2025-12-18T04:46:02.060978 +AZURE,swedencentral,Standard_D4s_v3,reserved_3y,NA,0.076712,USD,Azure Retail Prices API,2025-12-18T04:46:02.060982 +AZURE,swedencentral,Standard_D4s_v3,spot,NA,0.037699,USD,Azure Retail Prices API,2025-12-18T04:46:00.284969 +AZURE,swedencentral,Standard_D4s_v4,on_demand,NA,0.204,USD,Azure Retail Prices API,2025-12-18T04:46:00.284434 +AZURE,swedencentral,Standard_D4s_v4,reserved_1y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:46:02.060318 +AZURE,swedencentral,Standard_D4s_v4,reserved_3y,NA,0.077511,USD,Azure Retail Prices API,2025-12-18T04:46:02.060324 +AZURE,swedencentral,Standard_D4s_v4,spot,NA,0.037699,USD,Azure Retail Prices API,2025-12-18T04:46:00.283928 +AZURE,swedencentral,Standard_D4s_v5,on_demand,NA,0.204,USD,Azure Retail Prices API,2025-12-18T04:46:00.284984 +AZURE,swedencentral,Standard_D4s_v5,reserved_1y,NA,0.12032,USD,Azure Retail Prices API,2025-12-18T04:46:02.061101 +AZURE,swedencentral,Standard_D4s_v5,reserved_3y,NA,0.075495,USD,Azure Retail Prices API,2025-12-18T04:46:02.061106 +AZURE,swedencentral,Standard_D4s_v5,spot,NA,0.037699,USD,Azure Retail Prices API,2025-12-18T04:46:00.284663 +AZURE,swedencentral,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487525 +AZURE,swedencentral,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487541 +AZURE,swedencentral,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487548 +AZURE,swedencentral,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487533 +AZURE,swedencentral,Standard_D64_v3,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:46:00.283748 +AZURE,swedencentral,Standard_D64_v3,reserved_1y,NA,1.919178,USD,Azure Retail Prices API,2025-12-18T04:46:02.059405 +AZURE,swedencentral,Standard_D64_v3,reserved_3y,NA,1.227245,USD,Azure Retail Prices API,2025-12-18T04:46:02.059408 +AZURE,swedencentral,Standard_D64_v3,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:00.284801 +AZURE,swedencentral,Standard_D64a_v4,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:46:00.284000 +AZURE,swedencentral,Standard_D64a_v4,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:02.059643 +AZURE,swedencentral,Standard_D64a_v4,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:46:02.059646 +AZURE,swedencentral,Standard_D64a_v4,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:00.284497 +AZURE,swedencentral,Standard_D64ads_v5,on_demand,NA,3.52,USD,Azure Retail Prices API,2025-12-18T04:46:00.283515 +AZURE,swedencentral,Standard_D64ads_v5,reserved_1y,NA,2.076826,USD,Azure Retail Prices API,2025-12-18T04:46:02.059242 +AZURE,swedencentral,Standard_D64ads_v5,reserved_3y,NA,1.337595,USD,Azure Retail Prices API,2025-12-18T04:46:02.059245 +AZURE,swedencentral,Standard_D64ads_v5,spot,NA,0.650496,USD,Azure Retail Prices API,2025-12-18T04:46:00.283628 +AZURE,swedencentral,Standard_D64ads_v6,on_demand,NA,3.904,USD,Azure Retail Prices API,2025-12-18T04:46:00.284126 +AZURE,swedencentral,Standard_D64ads_v6,reserved_1y,NA,2.303311,USD,Azure Retail Prices API,2025-12-18T04:46:02.059749 +AZURE,swedencentral,Standard_D64ads_v6,reserved_3y,NA,1.483524,USD,Azure Retail Prices API,2025-12-18T04:46:02.059752 +AZURE,swedencentral,Standard_D64ads_v6,spot,NA,0.721459,USD,Azure Retail Prices API,2025-12-18T04:46:00.284646 +AZURE,swedencentral,Standard_D64as_v4,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:46:00.284486 +AZURE,swedencentral,Standard_D64as_v4,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:02.060381 +AZURE,swedencentral,Standard_D64as_v4,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:46:02.060387 +AZURE,swedencentral,Standard_D64as_v4,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:00.284431 +AZURE,swedencentral,Standard_D64as_v5,on_demand,NA,2.944,USD,Azure Retail Prices API,2025-12-18T04:46:00.283511 +AZURE,swedencentral,Standard_D64as_v5,reserved_1y,NA,1.736986,USD,Azure Retail Prices API,2025-12-18T04:46:02.059236 +AZURE,swedencentral,Standard_D64as_v5,reserved_3y,NA,1.118721,USD,Azure Retail Prices API,2025-12-18T04:46:02.059239 +AZURE,swedencentral,Standard_D64as_v5,spot,NA,0.544051,USD,Azure Retail Prices API,2025-12-18T04:46:00.284931 +AZURE,swedencentral,Standard_D64d_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:00.284220 +AZURE,swedencentral,Standard_D64d_v4,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:02.059872 +AZURE,swedencentral,Standard_D64d_v4,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:46:02.059876 +AZURE,swedencentral,Standard_D64d_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:00.284598 +AZURE,swedencentral,Standard_D64ds_v4,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:00.284865 +AZURE,swedencentral,Standard_D64ds_v4,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:02.060968 +AZURE,swedencentral,Standard_D64ds_v4,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:46:02.060973 +AZURE,swedencentral,Standard_D64ds_v4,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:00.284531 +AZURE,swedencentral,Standard_D64ds_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:00.283672 +AZURE,swedencentral,Standard_D64ds_v5,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:46:02.059343 +AZURE,swedencentral,Standard_D64ds_v5,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:46:02.059345 +AZURE,swedencentral,Standard_D64ds_v5,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:46:00.285140 +AZURE,swedencentral,Standard_D64ds_v6,on_demand,NA,4.236,USD,Azure Retail Prices API,2025-12-18T04:46:00.284844 +AZURE,swedencentral,Standard_D64ds_v6,reserved_1y,NA,2.62637,USD,Azure Retail Prices API,2025-12-18T04:46:02.060937 +AZURE,swedencentral,Standard_D64ds_v6,reserved_3y,NA,1.652093,USD,Azure Retail Prices API,2025-12-18T04:46:02.060942 +AZURE,swedencentral,Standard_D64ds_v6,spot,NA,0.782813,USD,Azure Retail Prices API,2025-12-18T04:46:00.283664 +AZURE,swedencentral,Standard_D64pds_v6,on_demand,NA,3.13,USD,Azure Retail Prices API,2025-12-18T04:46:00.284237 +AZURE,swedencentral,Standard_D64pds_v6,reserved_1y,NA,1.846461,USD,Azure Retail Prices API,2025-12-18T04:46:02.059907 +AZURE,swedencentral,Standard_D64pds_v6,reserved_3y,NA,1.189231,USD,Azure Retail Prices API,2025-12-18T04:46:02.059911 +AZURE,swedencentral,Standard_D64pds_v6,spot,NA,0.578424,USD,Azure Retail Prices API,2025-12-18T04:46:00.284774 +AZURE,swedencentral,Standard_D64ps_v6,on_demand,NA,2.394,USD,Azure Retail Prices API,2025-12-18T04:46:00.284637 +AZURE,swedencentral,Standard_D64ps_v6,reserved_1y,NA,1.412215,USD,Azure Retail Prices API,2025-12-18T04:46:02.060662 +AZURE,swedencentral,Standard_D64ps_v6,reserved_3y,NA,0.909551,USD,Azure Retail Prices API,2025-12-18T04:46:02.060666 +AZURE,swedencentral,Standard_D64ps_v6,spot,NA,0.442411,USD,Azure Retail Prices API,2025-12-18T04:46:00.283486 +AZURE,swedencentral,Standard_D64s_v3,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:46:00.283667 +AZURE,swedencentral,Standard_D64s_v3,reserved_1y,NA,1.919178,USD,Azure Retail Prices API,2025-12-18T04:46:02.059337 +AZURE,swedencentral,Standard_D64s_v3,reserved_3y,NA,1.227245,USD,Azure Retail Prices API,2025-12-18T04:46:02.059340 +AZURE,swedencentral,Standard_D64s_v3,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:00.284508 +AZURE,swedencentral,Standard_D64s_v4,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:46:00.283646 +AZURE,swedencentral,Standard_D64s_v4,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:02.059326 +AZURE,swedencentral,Standard_D64s_v4,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:46:02.059328 +AZURE,swedencentral,Standard_D64s_v4,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:00.284550 +AZURE,swedencentral,Standard_D64s_v5,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:46:00.285029 +AZURE,swedencentral,Standard_D64s_v5,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:46:02.061188 +AZURE,swedencentral,Standard_D64s_v5,reserved_3y,NA,1.207686,USD,Azure Retail Prices API,2025-12-18T04:46:02.061192 +AZURE,swedencentral,Standard_D64s_v5,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:46:00.284422 +AZURE,swedencentral,Standard_D8_v3,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:00.284606 +AZURE,swedencentral,Standard_D8_v3,reserved_1y,NA,0.239954,USD,Azure Retail Prices API,2025-12-18T04:46:02.060585 +AZURE,swedencentral,Standard_D8_v3,reserved_3y,NA,0.153425,USD,Azure Retail Prices API,2025-12-18T04:46:02.060591 +AZURE,swedencentral,Standard_D8_v3,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:46:00.284795 +AZURE,swedencentral,Standard_D8a_v4,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:00.284209 +AZURE,swedencentral,Standard_D8a_v4,reserved_1y,NA,0.240753,USD,Azure Retail Prices API,2025-12-18T04:46:02.059855 +AZURE,swedencentral,Standard_D8a_v4,reserved_3y,NA,0.155023,USD,Azure Retail Prices API,2025-12-18T04:46:02.059859 +AZURE,swedencentral,Standard_D8a_v4,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:46:00.283834 +AZURE,swedencentral,Standard_D8ads_v5,on_demand,NA,0.44,USD,Azure Retail Prices API,2025-12-18T04:46:00.284231 +AZURE,swedencentral,Standard_D8ads_v5,reserved_1y,NA,0.259589,USD,Azure Retail Prices API,2025-12-18T04:46:02.059890 +AZURE,swedencentral,Standard_D8ads_v5,reserved_3y,NA,0.167199,USD,Azure Retail Prices API,2025-12-18T04:46:02.059893 +AZURE,swedencentral,Standard_D8ads_v5,spot,NA,0.081312,USD,Azure Retail Prices API,2025-12-18T04:46:00.284045 +AZURE,swedencentral,Standard_D8ads_v6,on_demand,NA,0.488,USD,Azure Retail Prices API,2025-12-18T04:46:00.284820 +AZURE,swedencentral,Standard_D8ads_v6,reserved_1y,NA,0.2879,USD,Azure Retail Prices API,2025-12-18T04:46:02.060852 +AZURE,swedencentral,Standard_D8ads_v6,reserved_3y,NA,0.185426,USD,Azure Retail Prices API,2025-12-18T04:46:02.060857 +AZURE,swedencentral,Standard_D8ads_v6,spot,NA,0.090182,USD,Azure Retail Prices API,2025-12-18T04:46:00.283901 +AZURE,swedencentral,Standard_D8as_v4,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:00.284798 +AZURE,swedencentral,Standard_D8as_v4,reserved_1y,NA,0.240753,USD,Azure Retail Prices API,2025-12-18T04:46:02.060830 +AZURE,swedencentral,Standard_D8as_v4,reserved_3y,NA,0.155023,USD,Azure Retail Prices API,2025-12-18T04:46:02.060835 +AZURE,swedencentral,Standard_D8as_v4,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:46:00.284581 +AZURE,swedencentral,Standard_D8as_v5,on_demand,NA,0.736,USD,Azure Retail Prices API,2025-12-18T04:46:00.284320 +AZURE,swedencentral,Standard_D8as_v5,reserved_1y,NA,0.217123,USD,Azure Retail Prices API,2025-12-18T04:46:02.060469 +AZURE,swedencentral,Standard_D8as_v5,reserved_3y,NA,0.13984,USD,Azure Retail Prices API,2025-12-18T04:46:02.060474 +AZURE,swedencentral,Standard_D8as_v5,spot,NA,0.068006,USD,Azure Retail Prices API,2025-12-18T04:46:00.284712 +AZURE,swedencentral,Standard_D8d_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:00.284255 +AZURE,swedencentral,Standard_D8d_v4,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:02.059961 +AZURE,swedencentral,Standard_D8d_v4,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:46:02.059965 +AZURE,swedencentral,Standard_D8d_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:00.284374 +AZURE,swedencentral,Standard_D8ds_v4,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:00.285039 +AZURE,swedencentral,Standard_D8ds_v4,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:02.061205 +AZURE,swedencentral,Standard_D8ds_v4,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:46:02.061210 +AZURE,swedencentral,Standard_D8ds_v4,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:00.283601 +AZURE,swedencentral,Standard_D8ds_v5,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:00.283810 +AZURE,swedencentral,Standard_D8ds_v5,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:46:02.059482 +AZURE,swedencentral,Standard_D8ds_v5,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:46:02.059484 +AZURE,swedencentral,Standard_D8ds_v5,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:46:00.284341 +AZURE,swedencentral,Standard_D8ds_v6,on_demand,NA,0.53,USD,Azure Retail Prices API,2025-12-18T04:46:00.283866 +AZURE,swedencentral,Standard_D8ds_v6,reserved_1y,NA,0.328311,USD,Azure Retail Prices API,2025-12-18T04:46:02.059533 +AZURE,swedencentral,Standard_D8ds_v6,reserved_3y,NA,0.206507,USD,Azure Retail Prices API,2025-12-18T04:46:02.059536 +AZURE,swedencentral,Standard_D8ds_v6,spot,NA,0.097944,USD,Azure Retail Prices API,2025-12-18T04:46:00.283518 +AZURE,swedencentral,Standard_D8pds_v6,on_demand,NA,0.391,USD,Azure Retail Prices API,2025-12-18T04:46:00.284938 +AZURE,swedencentral,Standard_D8pds_v6,reserved_1y,NA,0.230822,USD,Azure Retail Prices API,2025-12-18T04:46:02.061041 +AZURE,swedencentral,Standard_D8pds_v6,reserved_3y,NA,0.148668,USD,Azure Retail Prices API,2025-12-18T04:46:02.061046 +AZURE,swedencentral,Standard_D8pds_v6,spot,NA,0.072257,USD,Azure Retail Prices API,2025-12-18T04:46:00.283883 +AZURE,swedencentral,Standard_D8ps_v6,on_demand,NA,0.299,USD,Azure Retail Prices API,2025-12-18T04:46:00.283618 +AZURE,swedencentral,Standard_D8ps_v6,reserved_1y,NA,0.176484,USD,Azure Retail Prices API,2025-12-18T04:46:02.059296 +AZURE,swedencentral,Standard_D8ps_v6,reserved_3y,NA,0.113699,USD,Azure Retail Prices API,2025-12-18T04:46:02.059299 +AZURE,swedencentral,Standard_D8ps_v6,spot,NA,0.055255,USD,Azure Retail Prices API,2025-12-18T04:46:00.284040 +AZURE,swedencentral,Standard_D8s_v3,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:00.284953 +AZURE,swedencentral,Standard_D8s_v3,reserved_1y,NA,0.239954,USD,Azure Retail Prices API,2025-12-18T04:46:02.061082 +AZURE,swedencentral,Standard_D8s_v3,reserved_3y,NA,0.153425,USD,Azure Retail Prices API,2025-12-18T04:46:02.061086 +AZURE,swedencentral,Standard_D8s_v3,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:46:00.283653 +AZURE,swedencentral,Standard_D8s_v4,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:00.285113 +AZURE,swedencentral,Standard_D8s_v4,reserved_1y,NA,0.240753,USD,Azure Retail Prices API,2025-12-18T04:46:02.061395 +AZURE,swedencentral,Standard_D8s_v4,reserved_3y,NA,0.155023,USD,Azure Retail Prices API,2025-12-18T04:46:02.061401 +AZURE,swedencentral,Standard_D8s_v4,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:46:00.283661 +AZURE,swedencentral,Standard_D8s_v5,on_demand,NA,0.408,USD,Azure Retail Prices API,2025-12-18T04:46:00.284701 +AZURE,swedencentral,Standard_D8s_v5,reserved_1y,NA,0.240753,USD,Azure Retail Prices API,2025-12-18T04:46:02.060749 +AZURE,swedencentral,Standard_D8s_v5,reserved_3y,NA,0.150951,USD,Azure Retail Prices API,2025-12-18T04:46:02.060754 +AZURE,swedencentral,Standard_D8s_v5,spot,NA,0.075398,USD,Azure Retail Prices API,2025-12-18T04:46:00.284252 +AZURE,swedencentral,Standard_D96a_v4,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:46:00.283533 +AZURE,swedencentral,Standard_D96a_v4,reserved_1y,NA,2.888584,USD,Azure Retail Prices API,2025-12-18T04:46:02.059254 +AZURE,swedencentral,Standard_D96a_v4,reserved_3y,NA,1.860464,USD,Azure Retail Prices API,2025-12-18T04:46:02.059257 +AZURE,swedencentral,Standard_D96a_v4,spot,NA,0.904781,USD,Azure Retail Prices API,2025-12-18T04:46:00.285055 +AZURE,swedencentral,Standard_D96ads_v5,on_demand,NA,5.28,USD,Azure Retail Prices API,2025-12-18T04:46:00.283631 +AZURE,swedencentral,Standard_D96ads_v5,reserved_1y,NA,3.115183,USD,Azure Retail Prices API,2025-12-18T04:46:02.059302 +AZURE,swedencentral,Standard_D96ads_v5,reserved_3y,NA,2.006393,USD,Azure Retail Prices API,2025-12-18T04:46:02.059305 +AZURE,swedencentral,Standard_D96ads_v5,spot,NA,0.975744,USD,Azure Retail Prices API,2025-12-18T04:46:00.284481 +AZURE,swedencentral,Standard_D96ads_v6,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:46:00.283762 +AZURE,swedencentral,Standard_D96ads_v6,reserved_1y,NA,3.455023,USD,Azure Retail Prices API,2025-12-18T04:46:02.059422 +AZURE,swedencentral,Standard_D96ads_v6,reserved_3y,NA,2.225266,USD,Azure Retail Prices API,2025-12-18T04:46:02.059425 +AZURE,swedencentral,Standard_D96ads_v6,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:46:00.284217 +AZURE,swedencentral,Standard_D96as_v4,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:46:00.283828 +AZURE,swedencentral,Standard_D96as_v4,reserved_1y,NA,2.888584,USD,Azure Retail Prices API,2025-12-18T04:46:02.059499 +AZURE,swedencentral,Standard_D96as_v4,reserved_3y,NA,1.860464,USD,Azure Retail Prices API,2025-12-18T04:46:02.059501 +AZURE,swedencentral,Standard_D96as_v4,spot,NA,0.904781,USD,Azure Retail Prices API,2025-12-18T04:46:00.284057 +AZURE,swedencentral,Standard_D96as_v5,on_demand,NA,8.832,USD,Azure Retail Prices API,2025-12-18T04:46:00.284813 +AZURE,swedencentral,Standard_D96as_v5,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:46:02.060947 +AZURE,swedencentral,Standard_D96as_v5,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:46:02.060953 +AZURE,swedencentral,Standard_D96as_v5,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:46:00.284336 +AZURE,swedencentral,Standard_D96ds_v5,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:46:00.285005 +AZURE,swedencentral,Standard_D96ds_v5,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:46:02.061156 +AZURE,swedencentral,Standard_D96ds_v5,reserved_3y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:02.061162 +AZURE,swedencentral,Standard_D96ds_v5,spot,NA,1.064448,USD,Azure Retail Prices API,2025-12-18T04:46:00.283880 +AZURE,swedencentral,Standard_D96ds_v6,on_demand,NA,6.354,USD,Azure Retail Prices API,2025-12-18T04:46:00.283614 +AZURE,swedencentral,Standard_D96ds_v6,reserved_1y,NA,3.939612,USD,Azure Retail Prices API,2025-12-18T04:46:02.059290 +AZURE,swedencentral,Standard_D96ds_v6,reserved_3y,NA,2.478158,USD,Azure Retail Prices API,2025-12-18T04:46:02.059293 +AZURE,swedencentral,Standard_D96ds_v6,spot,NA,1.174219,USD,Azure Retail Prices API,2025-12-18T04:46:00.283956 +AZURE,swedencentral,Standard_D96pds_v6,on_demand,NA,4.694,USD,Azure Retail Prices API,2025-12-18T04:46:00.284394 +AZURE,swedencentral,Standard_D96pds_v6,reserved_1y,NA,2.769749,USD,Azure Retail Prices API,2025-12-18T04:46:02.060223 +AZURE,swedencentral,Standard_D96pds_v6,reserved_3y,NA,1.783866,USD,Azure Retail Prices API,2025-12-18T04:46:02.060228 +AZURE,swedencentral,Standard_D96pds_v6,spot,NA,0.867451,USD,Azure Retail Prices API,2025-12-18T04:46:00.284716 +AZURE,swedencentral,Standard_D96ps_v6,on_demand,NA,3.59,USD,Azure Retail Prices API,2025-12-18T04:46:00.284249 +AZURE,swedencentral,Standard_D96ps_v6,reserved_1y,NA,2.118379,USD,Azure Retail Prices API,2025-12-18T04:46:02.059952 +AZURE,swedencentral,Standard_D96ps_v6,reserved_3y,NA,1.364346,USD,Azure Retail Prices API,2025-12-18T04:46:02.059956 +AZURE,swedencentral,Standard_D96ps_v6,spot,NA,0.663432,USD,Azure Retail Prices API,2025-12-18T04:46:00.283684 +AZURE,swedencentral,Standard_D96s_v5,on_demand,NA,4.896,USD,Azure Retail Prices API,2025-12-18T04:46:00.284051 +AZURE,swedencentral,Standard_D96s_v5,reserved_1y,NA,2.888584,USD,Azure Retail Prices API,2025-12-18T04:46:02.059696 +AZURE,swedencentral,Standard_D96s_v5,reserved_3y,NA,1.81153,USD,Azure Retail Prices API,2025-12-18T04:46:02.059699 +AZURE,swedencentral,Standard_D96s_v5,spot,NA,0.904781,USD,Azure Retail Prices API,2025-12-18T04:46:00.284165 +AZURE,swedencentral,Standard_DC16ads_v6,on_demand,NA,0.976,USD,Azure Retail Prices API,2025-12-18T04:46:00.284269 +AZURE,swedencentral,Standard_DC16ads_v6,reserved_1y,NA,0.575799,USD,Azure Retail Prices API,2025-12-18T04:46:02.059995 +AZURE,swedencentral,Standard_DC16ads_v6,reserved_3y,NA,0.37089,USD,Azure Retail Prices API,2025-12-18T04:46:02.060000 +AZURE,swedencentral,Standard_DC16ads_v6,spot,NA,0.180365,USD,Azure Retail Prices API,2025-12-18T04:46:00.284672 +AZURE,swedencentral,Standard_DC2ads_v6,on_demand,NA,0.122,USD,Azure Retail Prices API,2025-12-18T04:46:00.284572 +AZURE,swedencentral,Standard_DC2ads_v6,reserved_1y,NA,0.072032,USD,Azure Retail Prices API,2025-12-18T04:46:02.060527 +AZURE,swedencentral,Standard_DC2ads_v6,reserved_3y,NA,0.046347,USD,Azure Retail Prices API,2025-12-18T04:46:02.060532 +AZURE,swedencentral,Standard_DC2ads_v6,spot,NA,0.022546,USD,Azure Retail Prices API,2025-12-18T04:46:00.284145 +AZURE,swedencentral,Standard_DC32ads_v6,on_demand,NA,1.952,USD,Azure Retail Prices API,2025-12-18T04:46:00.284632 +AZURE,swedencentral,Standard_DC32ads_v6,reserved_1y,NA,1.151712,USD,Azure Retail Prices API,2025-12-18T04:46:02.060643 +AZURE,swedencentral,Standard_DC32ads_v6,reserved_3y,NA,0.741743,USD,Azure Retail Prices API,2025-12-18T04:46:02.060648 +AZURE,swedencentral,Standard_DC32ads_v6,spot,NA,0.36073,USD,Azure Retail Prices API,2025-12-18T04:46:00.284503 +AZURE,swedencentral,Standard_DC48ads_v6,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:46:00.284657 +AZURE,swedencentral,Standard_DC48ads_v6,reserved_1y,NA,1.727511,USD,Azure Retail Prices API,2025-12-18T04:46:02.060689 +AZURE,swedencentral,Standard_DC48ads_v6,reserved_3y,NA,1.112633,USD,Azure Retail Prices API,2025-12-18T04:46:02.060694 +AZURE,swedencentral,Standard_DC48ads_v6,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:46:00.283567 +AZURE,swedencentral,Standard_DC4ads_v6,on_demand,NA,0.244,USD,Azure Retail Prices API,2025-12-18T04:46:00.285052 +AZURE,swedencentral,Standard_DC4ads_v6,reserved_1y,NA,0.14395,USD,Azure Retail Prices API,2025-12-18T04:46:02.061261 +AZURE,swedencentral,Standard_DC4ads_v6,reserved_3y,NA,0.092732,USD,Azure Retail Prices API,2025-12-18T04:46:02.061266 +AZURE,swedencentral,Standard_DC4ads_v6,spot,NA,0.045091,USD,Azure Retail Prices API,2025-12-18T04:46:00.284120 +AZURE,swedencentral,Standard_DC64ads_v6,on_demand,NA,3.904,USD,Azure Retail Prices API,2025-12-18T04:46:00.283650 +AZURE,swedencentral,Standard_DC64ads_v6,reserved_1y,NA,2.303311,USD,Azure Retail Prices API,2025-12-18T04:46:02.059331 +AZURE,swedencentral,Standard_DC64ads_v6,reserved_3y,NA,1.483524,USD,Azure Retail Prices API,2025-12-18T04:46:02.059334 +AZURE,swedencentral,Standard_DC64ads_v6,spot,NA,0.721459,USD,Azure Retail Prices API,2025-12-18T04:46:00.284804 +AZURE,swedencentral,Standard_DC8ads_v6,on_demand,NA,0.488,USD,Azure Retail Prices API,2025-12-18T04:46:00.283788 +AZURE,swedencentral,Standard_DC8ads_v6,reserved_1y,NA,0.2879,USD,Azure Retail Prices API,2025-12-18T04:46:02.059458 +AZURE,swedencentral,Standard_DC8ads_v6,reserved_3y,NA,0.185426,USD,Azure Retail Prices API,2025-12-18T04:46:02.059461 +AZURE,swedencentral,Standard_DC8ads_v6,spot,NA,0.090182,USD,Azure Retail Prices API,2025-12-18T04:46:00.284948 +AZURE,swedencentral,Standard_DC96ads_v6,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:46:00.284020 +AZURE,swedencentral,Standard_DC96ads_v6,reserved_1y,NA,3.455023,USD,Azure Retail Prices API,2025-12-18T04:46:02.059661 +AZURE,swedencentral,Standard_DC96ads_v6,reserved_3y,NA,2.225266,USD,Azure Retail Prices API,2025-12-18T04:46:02.059664 +AZURE,swedencentral,Standard_DC96ads_v6,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:46:00.284451 +AZURE,swedencentral,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495411 +AZURE,swedencentral,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495419 +AZURE,swedencentral,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495423 +AZURE,swedencentral,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495415 +AZURE,swedencentral,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496298 +AZURE,swedencentral,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496306 +AZURE,swedencentral,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496310 +AZURE,swedencentral,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496302 +AZURE,swedencentral,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497036 +AZURE,swedencentral,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497044 +AZURE,swedencentral,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497048 +AZURE,swedencentral,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497040 +AZURE,swedencentral,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497930 +AZURE,swedencentral,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497939 +AZURE,swedencentral,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497943 +AZURE,swedencentral,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497934 +AZURE,swedencentral,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491749 +AZURE,swedencentral,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491757 +AZURE,swedencentral,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491761 +AZURE,swedencentral,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491753 +AZURE,swedencentral,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492496 +AZURE,swedencentral,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492505 +AZURE,swedencentral,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492509 +AZURE,swedencentral,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492501 +AZURE,swedencentral,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493219 +AZURE,swedencentral,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493227 +AZURE,swedencentral,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493231 +AZURE,swedencentral,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493223 +AZURE,swedencentral,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493932 +AZURE,swedencentral,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493940 +AZURE,swedencentral,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493944 +AZURE,swedencentral,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493936 +AZURE,swedencentral,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494645 +AZURE,swedencentral,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494653 +AZURE,swedencentral,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494657 +AZURE,swedencentral,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494649 +AZURE,swedencentral,Standard_E128ds_v6,on_demand,NA,11.13,USD,Azure Retail Prices API,2025-12-18T04:46:00.284460 +AZURE,swedencentral,Standard_E128ds_v6,reserved_1y,NA,6.900342,USD,Azure Retail Prices API,2025-12-18T04:46:02.060349 +AZURE,swedencentral,Standard_E128ds_v6,reserved_3y,NA,4.340525,USD,Azure Retail Prices API,2025-12-18T04:46:02.060354 +AZURE,swedencentral,Standard_E128ds_v6,spot,NA,2.056824,USD,Azure Retail Prices API,2025-12-18T04:46:00.283860 +AZURE,swedencentral,Standard_E16_v3,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:00.283852 +AZURE,swedencentral,Standard_E16_v3,reserved_1y,NA,0.630365,USD,Azure Retail Prices API,2025-12-18T04:46:02.059521 +AZURE,swedencentral,Standard_E16_v3,reserved_3y,NA,0.403082,USD,Azure Retail Prices API,2025-12-18T04:46:02.059524 +AZURE,swedencentral,Standard_E16_v3,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:46:00.283502 +AZURE,swedencentral,Standard_E16a_v4,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:00.284786 +AZURE,swedencentral,Standard_E16a_v4,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:46:02.060820 +AZURE,swedencentral,Standard_E16a_v4,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:46:02.060825 +AZURE,swedencentral,Standard_E16a_v4,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:46:00.284011 +AZURE,swedencentral,Standard_E16ads_v5,on_demand,NA,1.848,USD,Azure Retail Prices API,2025-12-18T04:46:00.284492 +AZURE,swedencentral,Standard_E16ads_v5,reserved_1y,NA,0.65605,USD,Azure Retail Prices API,2025-12-18T04:46:02.060789 +AZURE,swedencentral,Standard_E16ads_v5,reserved_3y,NA,0.422565,USD,Azure Retail Prices API,2025-12-18T04:46:02.060794 +AZURE,swedencentral,Standard_E16ads_v5,spot,NA,0.205498,USD,Azure Retail Prices API,2025-12-18T04:46:00.284371 +AZURE,swedencentral,Standard_E16ads_v6,on_demand,NA,1.242,USD,Azure Retail Prices API,2025-12-18T04:46:00.285128 +AZURE,swedencentral,Standard_E16ads_v6,reserved_1y,NA,0.732534,USD,Azure Retail Prices API,2025-12-18T04:46:02.061406 +AZURE,swedencentral,Standard_E16ads_v6,reserved_3y,NA,0.471804,USD,Azure Retail Prices API,2025-12-18T04:46:02.061411 +AZURE,swedencentral,Standard_E16ads_v6,spot,NA,0.229522,USD,Azure Retail Prices API,2025-12-18T04:46:00.283846 +AZURE,swedencentral,Standard_E16as_v4,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:00.283759 +AZURE,swedencentral,Standard_E16as_v4,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:46:02.059416 +AZURE,swedencentral,Standard_E16as_v4,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:46:02.059419 +AZURE,swedencentral,Standard_E16as_v4,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:46:00.283976 +AZURE,swedencentral,Standard_E16as_v5,on_demand,NA,1.704,USD,Azure Retail Prices API,2025-12-18T04:46:00.284034 +AZURE,swedencentral,Standard_E16as_v5,reserved_1y,NA,0.571119,USD,Azure Retail Prices API,2025-12-18T04:46:02.060537 +AZURE,swedencentral,Standard_E16as_v5,reserved_3y,NA,0.367846,USD,Azure Retail Prices API,2025-12-18T04:46:02.060542 +AZURE,swedencentral,Standard_E16as_v5,spot,NA,0.178886,USD,Azure Retail Prices API,2025-12-18T04:46:00.284850 +AZURE,swedencentral,Standard_E16d_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:00.284137 +AZURE,swedencentral,Standard_E16d_v4,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:02.059755 +AZURE,swedencentral,Standard_E16d_v4,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:46:02.059758 +AZURE,swedencentral,Standard_E16d_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:00.283794 +AZURE,swedencentral,Standard_E16ds_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:00.284333 +AZURE,swedencentral,Standard_E16ds_v4,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:02.060125 +AZURE,swedencentral,Standard_E16ds_v4,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:46:02.060131 +AZURE,swedencentral,Standard_E16ds_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:00.283799 +AZURE,swedencentral,Standard_E16ds_v5,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:00.284123 +AZURE,swedencentral,Standard_E16ds_v5,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:02.059743 +AZURE,swedencentral,Standard_E16ds_v5,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:46:02.059746 +AZURE,swedencentral,Standard_E16ds_v5,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:00.284856 +AZURE,swedencentral,Standard_E16ds_v6,on_demand,NA,1.391,USD,Azure Retail Prices API,2025-12-18T04:46:00.285049 +AZURE,swedencentral,Standard_E16ds_v6,reserved_1y,NA,0.862557,USD,Azure Retail Prices API,2025-12-18T04:46:02.061233 +AZURE,swedencentral,Standard_E16ds_v6,reserved_3y,NA,0.54258,USD,Azure Retail Prices API,2025-12-18T04:46:02.061238 +AZURE,swedencentral,Standard_E16ds_v6,spot,NA,0.257057,USD,Azure Retail Prices API,2025-12-18T04:46:00.284500 +AZURE,swedencentral,Standard_E16pds_v6,on_demand,NA,0.997,USD,Azure Retail Prices API,2025-12-18T04:46:00.283961 +AZURE,swedencentral,Standard_E16pds_v6,reserved_1y,NA,0.588128,USD,Azure Retail Prices API,2025-12-18T04:46:02.059608 +AZURE,swedencentral,Standard_E16pds_v6,reserved_3y,NA,0.378767,USD,Azure Retail Prices API,2025-12-18T04:46:02.059612 +AZURE,swedencentral,Standard_E16pds_v6,spot,NA,0.184246,USD,Azure Retail Prices API,2025-12-18T04:46:00.284617 +AZURE,swedencentral,Standard_E16ps_v6,on_demand,NA,0.786,USD,Azure Retail Prices API,2025-12-18T04:46:00.284161 +AZURE,swedencentral,Standard_E16ps_v6,reserved_1y,NA,0.46347,USD,Azure Retail Prices API,2025-12-18T04:46:02.059777 +AZURE,swedencentral,Standard_E16ps_v6,reserved_3y,NA,0.298516,USD,Azure Retail Prices API,2025-12-18T04:46:02.059781 +AZURE,swedencentral,Standard_E16ps_v6,spot,NA,0.145253,USD,Azure Retail Prices API,2025-12-18T04:46:00.284214 +AZURE,swedencentral,Standard_E16s_v3,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:00.283678 +AZURE,swedencentral,Standard_E16s_v3,reserved_1y,NA,0.630365,USD,Azure Retail Prices API,2025-12-18T04:46:02.059348 +AZURE,swedencentral,Standard_E16s_v3,reserved_3y,NA,0.403082,USD,Azure Retail Prices API,2025-12-18T04:46:02.059351 +AZURE,swedencentral,Standard_E16s_v3,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:46:00.283562 +AZURE,swedencentral,Standard_E16s_v4,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:00.283939 +AZURE,swedencentral,Standard_E16s_v4,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:46:02.059584 +AZURE,swedencentral,Standard_E16s_v4,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:46:02.059587 +AZURE,swedencentral,Standard_E16s_v4,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:46:00.283544 +AZURE,swedencentral,Standard_E16s_v5,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:46:00.285134 +AZURE,swedencentral,Standard_E16s_v5,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:46:02.061416 +AZURE,swedencentral,Standard_E16s_v5,reserved_3y,NA,0.396651,USD,Azure Retail Prices API,2025-12-18T04:46:02.061421 +AZURE,swedencentral,Standard_E16s_v5,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:46:00.283911 +AZURE,swedencentral,Standard_E20a_v4,on_demand,NA,1.34,USD,Azure Retail Prices API,2025-12-18T04:46:00.284489 +AZURE,swedencentral,Standard_E20a_v4,reserved_1y,NA,0.790639,USD,Azure Retail Prices API,2025-12-18T04:46:02.060393 +AZURE,swedencentral,Standard_E20a_v4,reserved_3y,NA,0.509209,USD,Azure Retail Prices API,2025-12-18T04:46:02.060398 +AZURE,swedencentral,Standard_E20a_v4,spot,NA,0.247632,USD,Azure Retail Prices API,2025-12-18T04:46:00.284534 +AZURE,swedencentral,Standard_E20ads_v5,on_demand,NA,1.39,USD,Azure Retail Prices API,2025-12-18T04:46:00.284419 +AZURE,swedencentral,Standard_E20ads_v5,reserved_1y,NA,0.820091,USD,Azure Retail Prices API,2025-12-18T04:46:02.060289 +AZURE,swedencentral,Standard_E20ads_v5,reserved_3y,NA,0.528196,USD,Azure Retail Prices API,2025-12-18T04:46:02.060294 +AZURE,swedencentral,Standard_E20ads_v5,spot,NA,0.256872,USD,Azure Retail Prices API,2025-12-18T04:46:00.284929 +AZURE,swedencentral,Standard_E20ads_v6,on_demand,NA,1.552,USD,Azure Retail Prices API,2025-12-18T04:46:00.283643 +AZURE,swedencentral,Standard_E20ads_v6,reserved_1y,NA,0.915639,USD,Azure Retail Prices API,2025-12-18T04:46:02.059320 +AZURE,swedencentral,Standard_E20ads_v6,reserved_3y,NA,0.589764,USD,Azure Retail Prices API,2025-12-18T04:46:02.059323 +AZURE,swedencentral,Standard_E20ads_v6,spot,NA,0.28681,USD,Azure Retail Prices API,2025-12-18T04:46:00.284623 +AZURE,swedencentral,Standard_E20as_v4,on_demand,NA,1.34,USD,Azure Retail Prices API,2025-12-18T04:46:00.283840 +AZURE,swedencentral,Standard_E20as_v4,reserved_1y,NA,0.790639,USD,Azure Retail Prices API,2025-12-18T04:46:02.059515 +AZURE,swedencentral,Standard_E20as_v4,reserved_3y,NA,0.509209,USD,Azure Retail Prices API,2025-12-18T04:46:02.059518 +AZURE,swedencentral,Standard_E20as_v4,spot,NA,0.247632,USD,Azure Retail Prices API,2025-12-18T04:46:00.284780 +AZURE,swedencentral,Standard_E20as_v5,on_demand,NA,2.13,USD,Azure Retail Prices API,2025-12-18T04:46:00.283895 +AZURE,swedencentral,Standard_E20as_v5,reserved_1y,NA,0.713927,USD,Azure Retail Prices API,2025-12-18T04:46:02.059649 +AZURE,swedencentral,Standard_E20as_v5,reserved_3y,NA,0.459817,USD,Azure Retail Prices API,2025-12-18T04:46:02.059652 +AZURE,swedencentral,Standard_E20as_v5,spot,NA,0.223608,USD,Azure Retail Prices API,2025-12-18T04:46:00.284765 +AZURE,swedencentral,Standard_E20d_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:00.284404 +AZURE,swedencentral,Standard_E20d_v4,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:02.060252 +AZURE,swedencentral,Standard_E20d_v4,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:46:02.060256 +AZURE,swedencentral,Standard_E20d_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:00.284769 +AZURE,swedencentral,Standard_E20ds_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:00.283741 +AZURE,swedencentral,Standard_E20ds_v4,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:02.059394 +AZURE,swedencentral,Standard_E20ds_v4,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:46:02.059396 +AZURE,swedencentral,Standard_E20ds_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:00.283813 +AZURE,swedencentral,Standard_E20ds_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:00.283587 +AZURE,swedencentral,Standard_E20ds_v5,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:02.059273 +AZURE,swedencentral,Standard_E20ds_v5,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:46:02.059276 +AZURE,swedencentral,Standard_E20ds_v5,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:00.284189 +AZURE,swedencentral,Standard_E20ds_v6,on_demand,NA,1.739,USD,Azure Retail Prices API,2025-12-18T04:46:00.284118 +AZURE,swedencentral,Standard_E20ds_v6,reserved_1y,NA,1.078196,USD,Azure Retail Prices API,2025-12-18T04:46:02.059737 +AZURE,swedencentral,Standard_E20ds_v6,reserved_3y,NA,0.678196,USD,Azure Retail Prices API,2025-12-18T04:46:02.059740 +AZURE,swedencentral,Standard_E20ds_v6,spot,NA,0.321367,USD,Azure Retail Prices API,2025-12-18T04:46:00.284853 +AZURE,swedencentral,Standard_E20s_v4,on_demand,NA,1.34,USD,Azure Retail Prices API,2025-12-18T04:46:00.283777 +AZURE,swedencentral,Standard_E20s_v4,reserved_1y,NA,0.790639,USD,Azure Retail Prices API,2025-12-18T04:46:02.059446 +AZURE,swedencentral,Standard_E20s_v4,reserved_3y,NA,0.509209,USD,Azure Retail Prices API,2025-12-18T04:46:02.059449 +AZURE,swedencentral,Standard_E20s_v4,spot,NA,0.247632,USD,Azure Retail Prices API,2025-12-18T04:46:00.284272 +AZURE,swedencentral,Standard_E20s_v5,on_demand,NA,1.34,USD,Azure Retail Prices API,2025-12-18T04:46:00.284825 +AZURE,swedencentral,Standard_E20s_v5,reserved_1y,NA,0.790639,USD,Azure Retail Prices API,2025-12-18T04:46:02.060873 +AZURE,swedencentral,Standard_E20s_v5,reserved_3y,NA,0.495814,USD,Azure Retail Prices API,2025-12-18T04:46:02.060879 +AZURE,swedencentral,Standard_E20s_v5,spot,NA,0.247632,USD,Azure Retail Prices API,2025-12-18T04:46:00.285017 +AZURE,swedencentral,Standard_E2_v3,on_demand,NA,0.134,USD,Azure Retail Prices API,2025-12-18T04:46:00.284086 +AZURE,swedencentral,Standard_E2_v3,reserved_1y,NA,0.078767,USD,Azure Retail Prices API,2025-12-18T04:46:02.059720 +AZURE,swedencentral,Standard_E2_v3,reserved_3y,NA,0.050381,USD,Azure Retail Prices API,2025-12-18T04:46:02.059723 +AZURE,swedencentral,Standard_E2_v3,spot,NA,0.024763,USD,Azure Retail Prices API,2025-12-18T04:46:00.284528 +AZURE,swedencentral,Standard_E2ads_v6,on_demand,NA,0.155,USD,Azure Retail Prices API,2025-12-18T04:46:00.283958 +AZURE,swedencentral,Standard_E2ads_v6,reserved_1y,NA,0.091553,USD,Azure Retail Prices API,2025-12-18T04:46:02.059602 +AZURE,swedencentral,Standard_E2ads_v6,reserved_3y,NA,0.05898,USD,Azure Retail Prices API,2025-12-18T04:46:02.059605 +AZURE,swedencentral,Standard_E2ads_v6,spot,NA,0.028644,USD,Azure Retail Prices API,2025-12-18T04:46:00.284436 +AZURE,swedencentral,Standard_E2ds_v5,on_demand,NA,0.152,USD,Azure Retail Prices API,2025-12-18T04:46:00.283837 +AZURE,swedencentral,Standard_E2ds_v5,reserved_1y,NA,0.089726,USD,Azure Retail Prices API,2025-12-18T04:46:02.059510 +AZURE,swedencentral,Standard_E2ds_v5,reserved_3y,NA,0.057763,USD,Azure Retail Prices API,2025-12-18T04:46:02.059513 +AZURE,swedencentral,Standard_E2ds_v5,spot,NA,0.02809,USD,Azure Retail Prices API,2025-12-18T04:46:00.284495 +AZURE,swedencentral,Standard_E2ds_v6,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:46:00.284838 +AZURE,swedencentral,Standard_E2ds_v6,reserved_1y,NA,0.107763,USD,Azure Retail Prices API,2025-12-18T04:46:02.060925 +AZURE,swedencentral,Standard_E2ds_v6,reserved_3y,NA,0.067808,USD,Azure Retail Prices API,2025-12-18T04:46:02.060931 +AZURE,swedencentral,Standard_E2ds_v6,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:46:00.284401 +AZURE,swedencentral,Standard_E2pds_v6,on_demand,NA,0.125,USD,Azure Retail Prices API,2025-12-18T04:46:00.283970 +AZURE,swedencentral,Standard_E2pds_v6,reserved_1y,NA,0.073516,USD,Azure Retail Prices API,2025-12-18T04:46:02.059615 +AZURE,swedencentral,Standard_E2pds_v6,reserved_3y,NA,0.047336,USD,Azure Retail Prices API,2025-12-18T04:46:02.059618 +AZURE,swedencentral,Standard_E2pds_v6,spot,NA,0.0231,USD,Azure Retail Prices API,2025-12-18T04:46:00.283578 +AZURE,swedencentral,Standard_E32_v3,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:46:00.284556 +AZURE,swedencentral,Standard_E32_v3,reserved_1y,NA,1.260616,USD,Azure Retail Prices API,2025-12-18T04:46:02.060489 +AZURE,swedencentral,Standard_E32_v3,reserved_3y,NA,0.806126,USD,Azure Retail Prices API,2025-12-18T04:46:02.060494 +AZURE,swedencentral,Standard_E32_v3,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:46:00.284362 +AZURE,swedencentral,Standard_E32a_v4,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:46:00.284246 +AZURE,swedencentral,Standard_E32a_v4,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:46:02.059943 +AZURE,swedencentral,Standard_E32a_v4,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:46:02.059947 +AZURE,swedencentral,Standard_E32a_v4,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:46:00.284669 +AZURE,swedencentral,Standard_E32ads_v5,on_demand,NA,3.696,USD,Azure Retail Prices API,2025-12-18T04:46:00.284611 +AZURE,swedencentral,Standard_E32ads_v5,reserved_1y,NA,1.312215,USD,Azure Retail Prices API,2025-12-18T04:46:02.061368 +AZURE,swedencentral,Standard_E32ads_v5,reserved_3y,NA,0.845129,USD,Azure Retail Prices API,2025-12-18T04:46:02.061372 +AZURE,swedencentral,Standard_E32ads_v5,spot,NA,0.410995,USD,Azure Retail Prices API,2025-12-18T04:46:00.285098 +AZURE,swedencentral,Standard_E32ads_v6,on_demand,NA,2.483,USD,Azure Retail Prices API,2025-12-18T04:46:00.284707 +AZURE,swedencentral,Standard_E32ads_v6,reserved_1y,NA,1.465068,USD,Azure Retail Prices API,2025-12-18T04:46:02.060769 +AZURE,swedencentral,Standard_E32ads_v6,reserved_3y,NA,0.943607,USD,Azure Retail Prices API,2025-12-18T04:46:02.060774 +AZURE,swedencentral,Standard_E32ads_v6,spot,NA,0.458858,USD,Azure Retail Prices API,2025-12-18T04:46:00.284088 +AZURE,swedencentral,Standard_E32as_v4,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:46:00.284171 +AZURE,swedencentral,Standard_E32as_v4,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:46:02.059794 +AZURE,swedencentral,Standard_E32as_v4,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:46:02.059798 +AZURE,swedencentral,Standard_E32as_v4,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:46:00.284640 +AZURE,swedencentral,Standard_E32as_v5,on_demand,NA,3.408,USD,Azure Retail Prices API,2025-12-18T04:46:00.284474 +AZURE,swedencentral,Standard_E32as_v5,reserved_1y,NA,1.142237,USD,Azure Retail Prices API,2025-12-18T04:46:02.060625 +AZURE,swedencentral,Standard_E32as_v5,reserved_3y,NA,0.735693,USD,Azure Retail Prices API,2025-12-18T04:46:02.060629 +AZURE,swedencentral,Standard_E32as_v5,spot,NA,0.357773,USD,Azure Retail Prices API,2025-12-18T04:46:00.284675 +AZURE,swedencentral,Standard_E32d_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:00.283640 +AZURE,swedencentral,Standard_E32d_v4,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:02.059314 +AZURE,swedencentral,Standard_E32d_v4,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:46:02.059317 +AZURE,swedencentral,Standard_E32d_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:00.283892 +AZURE,swedencentral,Standard_E32ds_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:00.283886 +AZURE,swedencentral,Standard_E32ds_v4,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:02.059556 +AZURE,swedencentral,Standard_E32ds_v4,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:46:02.059558 +AZURE,swedencentral,Standard_E32ds_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:00.284817 +AZURE,swedencentral,Standard_E32ds_v5,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:00.284353 +AZURE,swedencentral,Standard_E32ds_v5,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:02.060174 +AZURE,swedencentral,Standard_E32ds_v5,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:46:02.060180 +AZURE,swedencentral,Standard_E32ds_v5,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:00.284972 +AZURE,swedencentral,Standard_E32ds_v6,on_demand,NA,2.782,USD,Azure Retail Prices API,2025-12-18T04:46:00.284054 +AZURE,swedencentral,Standard_E32ds_v6,reserved_1y,NA,1.725114,USD,Azure Retail Prices API,2025-12-18T04:46:02.059702 +AZURE,swedencentral,Standard_E32ds_v6,reserved_3y,NA,1.085122,USD,Azure Retail Prices API,2025-12-18T04:46:02.059705 +AZURE,swedencentral,Standard_E32ds_v6,spot,NA,0.514114,USD,Azure Retail Prices API,2025-12-18T04:46:00.283933 +AZURE,swedencentral,Standard_E32pds_v6,on_demand,NA,1.994,USD,Azure Retail Prices API,2025-12-18T04:46:00.283872 +AZURE,swedencentral,Standard_E32pds_v6,reserved_1y,NA,1.176256,USD,Azure Retail Prices API,2025-12-18T04:46:02.059544 +AZURE,swedencentral,Standard_E32pds_v6,reserved_3y,NA,0.757572,USD,Azure Retail Prices API,2025-12-18T04:46:02.059547 +AZURE,swedencentral,Standard_E32pds_v6,spot,NA,0.368491,USD,Azure Retail Prices API,2025-12-18T04:46:00.284449 +AZURE,swedencentral,Standard_E32ps_v6,on_demand,NA,1.571,USD,Azure Retail Prices API,2025-12-18T04:46:00.284311 +AZURE,swedencentral,Standard_E32ps_v6,reserved_1y,NA,0.927055,USD,Azure Retail Prices API,2025-12-18T04:46:02.060086 +AZURE,swedencentral,Standard_E32ps_v6,reserved_3y,NA,0.59707,USD,Azure Retail Prices API,2025-12-18T04:46:02.060091 +AZURE,swedencentral,Standard_E32ps_v6,spot,NA,0.290321,USD,Azure Retail Prices API,2025-12-18T04:46:00.283559 +AZURE,swedencentral,Standard_E32s_v3,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:46:00.284330 +AZURE,swedencentral,Standard_E32s_v3,reserved_1y,NA,1.260616,USD,Azure Retail Prices API,2025-12-18T04:46:02.060115 +AZURE,swedencentral,Standard_E32s_v3,reserved_3y,NA,0.806126,USD,Azure Retail Prices API,2025-12-18T04:46:02.060120 +AZURE,swedencentral,Standard_E32s_v3,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:46:00.284153 +AZURE,swedencentral,Standard_E32s_v4,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:46:00.283508 +AZURE,swedencentral,Standard_E32s_v4,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:46:02.059228 +AZURE,swedencentral,Standard_E32s_v4,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:46:02.059232 +AZURE,swedencentral,Standard_E32s_v4,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:46:00.284080 +AZURE,swedencentral,Standard_E32s_v5,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:46:00.284777 +AZURE,swedencentral,Standard_E32s_v5,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:46:02.060809 +AZURE,swedencentral,Standard_E32s_v5,reserved_3y,NA,0.793265,USD,Azure Retail Prices API,2025-12-18T04:46:02.060815 +AZURE,swedencentral,Standard_E32s_v5,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:46:00.284934 +AZURE,swedencentral,Standard_E48a_v4,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:00.285072 +AZURE,swedencentral,Standard_E48a_v4,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:46:02.061298 +AZURE,swedencentral,Standard_E48a_v4,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:46:02.061303 +AZURE,swedencentral,Standard_E48a_v4,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:00.284698 +AZURE,swedencentral,Standard_E48ads_v5,on_demand,NA,3.336,USD,Azure Retail Prices API,2025-12-18T04:46:00.284347 +AZURE,swedencentral,Standard_E48ads_v5,reserved_1y,NA,1.968265,USD,Azure Retail Prices API,2025-12-18T04:46:02.060164 +AZURE,swedencentral,Standard_E48ads_v5,reserved_3y,NA,1.267694,USD,Azure Retail Prices API,2025-12-18T04:46:02.060168 +AZURE,swedencentral,Standard_E48ads_v5,spot,NA,0.616493,USD,Azure Retail Prices API,2025-12-18T04:46:00.284721 +AZURE,swedencentral,Standard_E48ads_v6,on_demand,NA,3.725,USD,Azure Retail Prices API,2025-12-18T04:46:00.284590 +AZURE,swedencentral,Standard_E48ads_v6,reserved_1y,NA,2.197603,USD,Azure Retail Prices API,2025-12-18T04:46:02.060546 +AZURE,swedencentral,Standard_E48ads_v6,reserved_3y,NA,1.415411,USD,Azure Retail Prices API,2025-12-18T04:46:02.060551 +AZURE,swedencentral,Standard_E48ads_v6,spot,NA,0.68838,USD,Azure Retail Prices API,2025-12-18T04:46:00.284539 +AZURE,swedencentral,Standard_E48as_v4,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:00.284407 +AZURE,swedencentral,Standard_E48as_v4,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:46:02.060261 +AZURE,swedencentral,Standard_E48as_v4,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:46:02.060266 +AZURE,swedencentral,Standard_E48as_v4,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:00.283765 +AZURE,swedencentral,Standard_E48as_v5,on_demand,NA,5.112,USD,Azure Retail Prices API,2025-12-18T04:46:00.284065 +AZURE,swedencentral,Standard_E48as_v5,reserved_1y,NA,1.713356,USD,Azure Retail Prices API,2025-12-18T04:46:02.059934 +AZURE,swedencentral,Standard_E48as_v5,reserved_3y,NA,1.103539,USD,Azure Retail Prices API,2025-12-18T04:46:02.059938 +AZURE,swedencentral,Standard_E48as_v5,spot,NA,0.536659,USD,Azure Retail Prices API,2025-12-18T04:46:00.285083 +AZURE,swedencentral,Standard_E48d_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:00.284759 +AZURE,swedencentral,Standard_E48d_v4,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:02.060799 +AZURE,swedencentral,Standard_E48d_v4,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:46:02.060804 +AZURE,swedencentral,Standard_E48d_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:00.285023 +AZURE,swedencentral,Standard_E48ds_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:00.284879 +AZURE,swedencentral,Standard_E48ds_v4,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:02.060999 +AZURE,swedencentral,Standard_E48ds_v4,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:46:02.061004 +AZURE,swedencentral,Standard_E48ds_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:00.284071 +AZURE,swedencentral,Standard_E48ds_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:00.284028 +AZURE,swedencentral,Standard_E48ds_v5,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:02.059673 +AZURE,swedencentral,Standard_E48ds_v5,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:46:02.059676 +AZURE,swedencentral,Standard_E48ds_v5,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:00.283780 +AZURE,swedencentral,Standard_E48ds_v6,on_demand,NA,4.174,USD,Azure Retail Prices API,2025-12-18T04:46:00.285058 +AZURE,swedencentral,Standard_E48ds_v6,reserved_1y,NA,2.587671,USD,Azure Retail Prices API,2025-12-18T04:46:02.061271 +AZURE,swedencentral,Standard_E48ds_v6,reserved_3y,NA,1.627702,USD,Azure Retail Prices API,2025-12-18T04:46:02.061276 +AZURE,swedencentral,Standard_E48ds_v6,spot,NA,0.771355,USD,Azure Retail Prices API,2025-12-18T04:46:00.284156 +AZURE,swedencentral,Standard_E48pds_v6,on_demand,NA,2.99,USD,Azure Retail Prices API,2025-12-18T04:46:00.284286 +AZURE,swedencentral,Standard_E48pds_v6,reserved_1y,NA,1.764384,USD,Azure Retail Prices API,2025-12-18T04:46:02.060022 +AZURE,swedencentral,Standard_E48pds_v6,reserved_3y,NA,1.136339,USD,Azure Retail Prices API,2025-12-18T04:46:02.060026 +AZURE,swedencentral,Standard_E48pds_v6,spot,NA,0.552552,USD,Azure Retail Prices API,2025-12-18T04:46:00.284025 +AZURE,swedencentral,Standard_E48ps_v6,on_demand,NA,2.357,USD,Azure Retail Prices API,2025-12-18T04:46:00.284908 +AZURE,swedencentral,Standard_E48ps_v6,reserved_1y,NA,1.390525,USD,Azure Retail Prices API,2025-12-18T04:46:02.061009 +AZURE,swedencentral,Standard_E48ps_v6,reserved_3y,NA,0.895586,USD,Azure Retail Prices API,2025-12-18T04:46:02.061014 +AZURE,swedencentral,Standard_E48ps_v6,spot,NA,0.435574,USD,Azure Retail Prices API,2025-12-18T04:46:00.284323 +AZURE,swedencentral,Standard_E48s_v4,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:00.284305 +AZURE,swedencentral,Standard_E48s_v4,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:46:02.060067 +AZURE,swedencentral,Standard_E48s_v4,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:46:02.060072 +AZURE,swedencentral,Standard_E48s_v4,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:00.284107 +AZURE,swedencentral,Standard_E48s_v5,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:46:00.284648 +AZURE,swedencentral,Standard_E48s_v5,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:46:02.060671 +AZURE,swedencentral,Standard_E48s_v5,reserved_3y,NA,1.189916,USD,Azure Retail Prices API,2025-12-18T04:46:02.060675 +AZURE,swedencentral,Standard_E48s_v5,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:46:00.283570 +AZURE,swedencentral,Standard_E4_v3,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:46:00.284042 +AZURE,swedencentral,Standard_E4_v3,reserved_1y,NA,0.157534,USD,Azure Retail Prices API,2025-12-18T04:46:02.059679 +AZURE,swedencentral,Standard_E4_v3,reserved_3y,NA,0.100761,USD,Azure Retail Prices API,2025-12-18T04:46:02.059682 +AZURE,swedencentral,Standard_E4_v3,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:46:00.284397 +AZURE,swedencentral,Standard_E4a_v4,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:46:00.283738 +AZURE,swedencentral,Standard_E4a_v4,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:46:02.059388 +AZURE,swedencentral,Standard_E4a_v4,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:46:02.059391 +AZURE,swedencentral,Standard_E4a_v4,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:46:00.283634 +AZURE,swedencentral,Standard_E4ads_v5,on_demand,NA,0.462,USD,Azure Retail Prices API,2025-12-18T04:46:00.283539 +AZURE,swedencentral,Standard_E4ads_v5,reserved_1y,NA,0.164041,USD,Azure Retail Prices API,2025-12-18T04:46:02.059308 +AZURE,swedencentral,Standard_E4ads_v5,reserved_3y,NA,0.105632,USD,Azure Retail Prices API,2025-12-18T04:46:02.059311 +AZURE,swedencentral,Standard_E4ads_v5,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:46:00.285104 +AZURE,swedencentral,Standard_E4ads_v6,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:00.284243 +AZURE,swedencentral,Standard_E4ads_v6,reserved_1y,NA,0.183105,USD,Azure Retail Prices API,2025-12-18T04:46:02.059925 +AZURE,swedencentral,Standard_E4ads_v6,reserved_3y,NA,0.11796,USD,Azure Retail Prices API,2025-12-18T04:46:02.059929 +AZURE,swedencentral,Standard_E4ads_v6,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:00.284443 +AZURE,swedencentral,Standard_E4as_v4,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:46:00.283909 +AZURE,swedencentral,Standard_E4as_v4,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:46:02.059566 +AZURE,swedencentral,Standard_E4as_v4,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:46:02.059569 +AZURE,swedencentral,Standard_E4as_v4,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:46:00.283919 +AZURE,swedencentral,Standard_E4as_v5,on_demand,NA,0.242,USD,Azure Retail Prices API,2025-12-18T04:46:00.283982 +AZURE,swedencentral,Standard_E4as_v5,reserved_1y,NA,0.142808,USD,Azure Retail Prices API,2025-12-18T04:46:02.059632 +AZURE,swedencentral,Standard_E4as_v5,reserved_3y,NA,0.091971,USD,Azure Retail Prices API,2025-12-18T04:46:02.059635 +AZURE,swedencentral,Standard_E4as_v5,spot,NA,0.044722,USD,Azure Retail Prices API,2025-12-18T04:46:00.284578 +AZURE,swedencentral,Standard_E4d_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:00.284109 +AZURE,swedencentral,Standard_E4d_v4,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:02.059726 +AZURE,swedencentral,Standard_E4d_v4,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:46:02.059728 +AZURE,swedencentral,Standard_E4d_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:00.283596 +AZURE,swedencentral,Standard_E4ds_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:00.283735 +AZURE,swedencentral,Standard_E4ds_v4,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:02.059383 +AZURE,swedencentral,Standard_E4ds_v4,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:46:02.059386 +AZURE,swedencentral,Standard_E4ds_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:00.284569 +AZURE,swedencentral,Standard_E4ds_v5,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:00.283816 +AZURE,swedencentral,Standard_E4ds_v5,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:02.059487 +AZURE,swedencentral,Standard_E4ds_v5,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:46:02.059490 +AZURE,swedencentral,Standard_E4ds_v5,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:00.284006 +AZURE,swedencentral,Standard_E4ds_v6,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:46:00.284609 +AZURE,swedencentral,Standard_E4ds_v6,reserved_1y,NA,0.215639,USD,Azure Retail Prices API,2025-12-18T04:46:02.060596 +AZURE,swedencentral,Standard_E4ds_v6,reserved_3y,NA,0.135654,USD,Azure Retail Prices API,2025-12-18T04:46:02.060601 +AZURE,swedencentral,Standard_E4ds_v6,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:46:00.283889 +AZURE,swedencentral,Standard_E4pds_v6,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:46:00.284966 +AZURE,swedencentral,Standard_E4pds_v6,reserved_1y,NA,0.147032,USD,Azure Retail Prices API,2025-12-18T04:46:02.061091 +AZURE,swedencentral,Standard_E4pds_v6,reserved_3y,NA,0.094711,USD,Azure Retail Prices API,2025-12-18T04:46:02.061096 +AZURE,swedencentral,Standard_E4pds_v6,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:46:00.284383 +AZURE,swedencentral,Standard_E4ps_v6,on_demand,NA,0.196,USD,Azure Retail Prices API,2025-12-18T04:46:00.285020 +AZURE,swedencentral,Standard_E4ps_v6,reserved_1y,NA,0.115868,USD,Azure Retail Prices API,2025-12-18T04:46:02.061178 +AZURE,swedencentral,Standard_E4ps_v6,reserved_3y,NA,0.074619,USD,Azure Retail Prices API,2025-12-18T04:46:02.061183 +AZURE,swedencentral,Standard_E4ps_v6,spot,NA,0.036221,USD,Azure Retail Prices API,2025-12-18T04:46:00.283536 +AZURE,swedencentral,Standard_E4s_v4,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:46:00.284911 +AZURE,swedencentral,Standard_E4s_v4,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:46:02.061019 +AZURE,swedencentral,Standard_E4s_v4,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:46:02.061025 +AZURE,swedencentral,Standard_E4s_v4,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:46:00.284009 +AZURE,swedencentral,Standard_E4s_v5,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:46:00.283825 +AZURE,swedencentral,Standard_E4s_v5,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:46:02.059493 +AZURE,swedencentral,Standard_E4s_v5,reserved_3y,NA,0.099163,USD,Azure Retail Prices API,2025-12-18T04:46:02.059496 +AZURE,swedencentral,Standard_E4s_v5,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:46:00.284789 +AZURE,swedencentral,Standard_E64_v3,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:46:00.283745 +AZURE,swedencentral,Standard_E64_v3,reserved_1y,NA,2.521347,USD,Azure Retail Prices API,2025-12-18T04:46:02.059399 +AZURE,swedencentral,Standard_E64_v3,reserved_3y,NA,1.612291,USD,Azure Retail Prices API,2025-12-18T04:46:02.059402 +AZURE,swedencentral,Standard_E64_v3,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:46:00.284959 +AZURE,swedencentral,Standard_E64a_v4,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:46:00.283797 +AZURE,swedencentral,Standard_E64a_v4,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:46:02.059470 +AZURE,swedencentral,Standard_E64a_v4,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:46:02.059473 +AZURE,swedencentral,Standard_E64a_v4,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:46:00.284575 +AZURE,swedencentral,Standard_E64ads_v5,on_demand,NA,7.392,USD,Azure Retail Prices API,2025-12-18T04:46:00.283858 +AZURE,swedencentral,Standard_E64ads_v5,reserved_1y,NA,2.624315,USD,Azure Retail Prices API,2025-12-18T04:46:02.059691 +AZURE,swedencentral,Standard_E64ads_v5,reserved_3y,NA,1.690259,USD,Azure Retail Prices API,2025-12-18T04:46:02.059694 +AZURE,swedencentral,Standard_E64ads_v5,spot,NA,0.82199,USD,Azure Retail Prices API,2025-12-18T04:46:00.283550 +AZURE,swedencentral,Standard_E64ads_v6,on_demand,NA,4.966,USD,Azure Retail Prices API,2025-12-18T04:46:00.284074 +AZURE,swedencentral,Standard_E64ads_v6,reserved_1y,NA,2.930137,USD,Azure Retail Prices API,2025-12-18T04:46:02.059708 +AZURE,swedencentral,Standard_E64ads_v6,reserved_3y,NA,1.887215,USD,Azure Retail Prices API,2025-12-18T04:46:02.059711 +AZURE,swedencentral,Standard_E64ads_v6,spot,NA,0.917717,USD,Azure Retail Prices API,2025-12-18T04:46:00.284283 +AZURE,swedencentral,Standard_E64as_v4,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:46:00.284943 +AZURE,swedencentral,Standard_E64as_v4,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:46:02.061064 +AZURE,swedencentral,Standard_E64as_v4,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:46:02.061068 +AZURE,swedencentral,Standard_E64as_v4,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:46:00.283822 +AZURE,swedencentral,Standard_E64as_v5,on_demand,NA,6.816,USD,Azure Retail Prices API,2025-12-18T04:46:00.283922 +AZURE,swedencentral,Standard_E64as_v5,reserved_1y,NA,2.284475,USD,Azure Retail Prices API,2025-12-18T04:46:02.060145 +AZURE,swedencentral,Standard_E64as_v5,reserved_3y,NA,1.471347,USD,Azure Retail Prices API,2025-12-18T04:46:02.060150 +AZURE,swedencentral,Standard_E64as_v5,spot,NA,0.715546,USD,Azure Retail Prices API,2025-12-18T04:46:00.284197 +AZURE,swedencentral,Standard_E64d_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:00.283950 +AZURE,swedencentral,Standard_E64d_v4,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:02.059596 +AZURE,swedencentral,Standard_E64d_v4,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:46:02.059599 +AZURE,swedencentral,Standard_E64d_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:00.284060 +AZURE,swedencentral,Standard_E64ds_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:00.284191 +AZURE,swedencentral,Standard_E64ds_v4,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:02.059820 +AZURE,swedencentral,Standard_E64ds_v4,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:46:02.059824 +AZURE,swedencentral,Standard_E64ds_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:00.284981 +AZURE,swedencentral,Standard_E64ds_v5,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:00.283979 +AZURE,swedencentral,Standard_E64ds_v5,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:46:02.059626 +AZURE,swedencentral,Standard_E64ds_v5,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:46:02.059629 +AZURE,swedencentral,Standard_E64ds_v5,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:00.283944 +AZURE,swedencentral,Standard_E64ds_v6,on_demand,NA,5.565,USD,Azure Retail Prices API,2025-12-18T04:46:00.284211 +AZURE,swedencentral,Standard_E64ds_v6,reserved_1y,NA,3.450228,USD,Azure Retail Prices API,2025-12-18T04:46:02.059863 +AZURE,swedencentral,Standard_E64ds_v6,reserved_3y,NA,2.170282,USD,Azure Retail Prices API,2025-12-18T04:46:02.059867 +AZURE,swedencentral,Standard_E64ds_v6,spot,NA,1.028412,USD,Azure Retail Prices API,2025-12-18T04:46:00.284416 +AZURE,swedencentral,Standard_E64pds_v6,on_demand,NA,3.987,USD,Azure Retail Prices API,2025-12-18T04:46:00.284177 +AZURE,swedencentral,Standard_E64pds_v6,reserved_1y,NA,2.352397,USD,Azure Retail Prices API,2025-12-18T04:46:02.059803 +AZURE,swedencentral,Standard_E64pds_v6,reserved_3y,NA,1.515145,USD,Azure Retail Prices API,2025-12-18T04:46:02.059807 +AZURE,swedencentral,Standard_E64pds_v6,spot,NA,0.736798,USD,Azure Retail Prices API,2025-12-18T04:46:00.285075 +AZURE,swedencentral,Standard_E64ps_v6,on_demand,NA,3.142,USD,Azure Retail Prices API,2025-12-18T04:46:00.284291 +AZURE,swedencentral,Standard_E64ps_v6,reserved_1y,NA,1.853995,USD,Azure Retail Prices API,2025-12-18T04:46:02.060039 +AZURE,swedencentral,Standard_E64ps_v6,reserved_3y,NA,1.194102,USD,Azure Retail Prices API,2025-12-18T04:46:02.060044 +AZURE,swedencentral,Standard_E64ps_v6,spot,NA,0.580642,USD,Azure Retail Prices API,2025-12-18T04:46:00.284840 +AZURE,swedencentral,Standard_E64s_v3,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:46:00.284614 +AZURE,swedencentral,Standard_E64s_v3,reserved_1y,NA,2.521347,USD,Azure Retail Prices API,2025-12-18T04:46:02.060605 +AZURE,swedencentral,Standard_E64s_v3,reserved_3y,NA,1.612291,USD,Azure Retail Prices API,2025-12-18T04:46:02.060610 +AZURE,swedencentral,Standard_E64s_v3,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:46:00.284920 +AZURE,swedencentral,Standard_E64s_v4,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:46:00.284289 +AZURE,swedencentral,Standard_E64s_v4,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:46:02.060031 +AZURE,swedencentral,Standard_E64s_v4,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:46:02.060035 +AZURE,swedencentral,Standard_E64s_v4,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:46:00.284545 +AZURE,swedencentral,Standard_E64s_v5,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:46:00.284142 +AZURE,swedencentral,Standard_E64s_v5,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:46:02.059761 +AZURE,swedencentral,Standard_E64s_v5,reserved_3y,NA,1.586568,USD,Azure Retail Prices API,2025-12-18T04:46:02.059764 +AZURE,swedencentral,Standard_E64s_v5,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:46:00.284862 +AZURE,swedencentral,Standard_E80ids_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:46:00.283987 +AZURE,swedencentral,Standard_E80ids_v4,reserved_1y,NA,3.587215,USD,Azure Retail Prices API,2025-12-18T04:46:02.059637 +AZURE,swedencentral,Standard_E80ids_v4,reserved_3y,NA,2.310388,USD,Azure Retail Prices API,2025-12-18T04:46:02.059640 +AZURE,swedencentral,Standard_E80ids_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:46:00.283688 +AZURE,swedencentral,Standard_E80is_v4,on_demand,NA,5.36,USD,Azure Retail Prices API,2025-12-18T04:46:00.283830 +AZURE,swedencentral,Standard_E80is_v4,reserved_1y,NA,3.162443,USD,Azure Retail Prices API,2025-12-18T04:46:02.059504 +AZURE,swedencentral,Standard_E80is_v4,reserved_3y,NA,2.036796,USD,Azure Retail Prices API,2025-12-18T04:46:02.059507 +AZURE,swedencentral,Standard_E80is_v4,spot,NA,0.990528,USD,Azure Retail Prices API,2025-12-18T04:46:00.284150 +AZURE,swedencentral,Standard_E8_v3,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:00.284308 +AZURE,swedencentral,Standard_E8_v3,reserved_1y,NA,0.315183,USD,Azure Retail Prices API,2025-12-18T04:46:02.060077 +AZURE,swedencentral,Standard_E8_v3,reserved_3y,NA,0.201522,USD,Azure Retail Prices API,2025-12-18T04:46:02.060081 +AZURE,swedencentral,Standard_E8_v3,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:00.284882 +AZURE,swedencentral,Standard_E8a_v4,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:00.283732 +AZURE,swedencentral,Standard_E8a_v4,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:46:02.059377 +AZURE,swedencentral,Standard_E8a_v4,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:46:02.059380 +AZURE,swedencentral,Standard_E8a_v4,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:00.285060 +AZURE,swedencentral,Standard_E8ads_v5,on_demand,NA,0.556,USD,Azure Retail Prices API,2025-12-18T04:46:00.283713 +AZURE,swedencentral,Standard_E8ads_v5,reserved_1y,NA,0.328082,USD,Azure Retail Prices API,2025-12-18T04:46:02.059354 +AZURE,swedencentral,Standard_E8ads_v5,reserved_3y,NA,0.211263,USD,Azure Retail Prices API,2025-12-18T04:46:02.059357 +AZURE,swedencentral,Standard_E8ads_v5,spot,NA,0.102749,USD,Azure Retail Prices API,2025-12-18T04:46:00.283717 +AZURE,swedencentral,Standard_E8ads_v6,on_demand,NA,0.621,USD,Azure Retail Prices API,2025-12-18T04:46:00.285095 +AZURE,swedencentral,Standard_E8ads_v6,reserved_1y,NA,0.366324,USD,Azure Retail Prices API,2025-12-18T04:46:02.061358 +AZURE,swedencentral,Standard_E8ads_v6,reserved_3y,NA,0.235921,USD,Azure Retail Prices API,2025-12-18T04:46:02.061363 +AZURE,swedencentral,Standard_E8ads_v6,spot,NA,0.114761,USD,Azure Retail Prices API,2025-12-18T04:46:00.283964 +AZURE,swedencentral,Standard_E8as_v4,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:00.283774 +AZURE,swedencentral,Standard_E8as_v4,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:46:02.059440 +AZURE,swedencentral,Standard_E8as_v4,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:46:02.059443 +AZURE,swedencentral,Standard_E8as_v4,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:00.284681 +AZURE,swedencentral,Standard_E8as_v5,on_demand,NA,0.484,USD,Azure Retail Prices API,2025-12-18T04:46:00.285106 +AZURE,swedencentral,Standard_E8as_v5,reserved_1y,NA,0.285616,USD,Azure Retail Prices API,2025-12-18T04:46:02.061377 +AZURE,swedencentral,Standard_E8as_v5,reserved_3y,NA,0.183904,USD,Azure Retail Prices API,2025-12-18T04:46:02.061382 +AZURE,swedencentral,Standard_E8as_v5,spot,NA,0.089443,USD,Azure Retail Prices API,2025-12-18T04:46:00.284542 +AZURE,swedencentral,Standard_E8d_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:00.283505 +AZURE,swedencentral,Standard_E8d_v4,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:02.059221 +AZURE,swedencentral,Standard_E8d_v4,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:46:02.059225 +AZURE,swedencentral,Standard_E8d_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:00.284957 +AZURE,swedencentral,Standard_E8ds_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:00.284206 +AZURE,swedencentral,Standard_E8ds_v4,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:02.059846 +AZURE,swedencentral,Standard_E8ds_v4,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:46:02.059850 +AZURE,swedencentral,Standard_E8ds_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:00.283819 +AZURE,swedencentral,Standard_E8ds_v5,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:00.283973 +AZURE,swedencentral,Standard_E8ds_v5,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:02.059620 +AZURE,swedencentral,Standard_E8ds_v5,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:46:02.059623 +AZURE,swedencentral,Standard_E8ds_v5,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:00.284847 +AZURE,swedencentral,Standard_E8ds_v6,on_demand,NA,0.696,USD,Azure Retail Prices API,2025-12-18T04:46:00.284326 +AZURE,swedencentral,Standard_E8ds_v6,reserved_1y,NA,0.431279,USD,Azure Retail Prices API,2025-12-18T04:46:02.060105 +AZURE,swedencentral,Standard_E8ds_v6,reserved_3y,NA,0.271271,USD,Azure Retail Prices API,2025-12-18T04:46:02.060110 +AZURE,swedencentral,Standard_E8ds_v6,spot,NA,0.128621,USD,Azure Retail Prices API,2025-12-18T04:46:00.284514 +AZURE,swedencentral,Standard_E8pds_v6,on_demand,NA,0.498,USD,Azure Retail Prices API,2025-12-18T04:46:00.284048 +AZURE,swedencentral,Standard_E8pds_v6,reserved_1y,NA,0.294064,USD,Azure Retail Prices API,2025-12-18T04:46:02.059685 +AZURE,swedencentral,Standard_E8pds_v6,reserved_3y,NA,0.189384,USD,Azure Retail Prices API,2025-12-18T04:46:02.059688 +AZURE,swedencentral,Standard_E8pds_v6,spot,NA,0.09203,USD,Azure Retail Prices API,2025-12-18T04:46:00.283936 +AZURE,swedencentral,Standard_E8ps_v6,on_demand,NA,0.393,USD,Azure Retail Prices API,2025-12-18T04:46:00.284506 +AZURE,swedencentral,Standard_E8ps_v6,reserved_1y,NA,0.231735,USD,Azure Retail Prices API,2025-12-18T04:46:02.060404 +AZURE,swedencentral,Standard_E8ps_v6,reserved_3y,NA,0.149277,USD,Azure Retail Prices API,2025-12-18T04:46:02.060409 +AZURE,swedencentral,Standard_E8ps_v6,spot,NA,0.072626,USD,Azure Retail Prices API,2025-12-18T04:46:00.283541 +AZURE,swedencentral,Standard_E8s_v3,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:00.284083 +AZURE,swedencentral,Standard_E8s_v3,reserved_1y,NA,0.315183,USD,Azure Retail Prices API,2025-12-18T04:46:02.059714 +AZURE,swedencentral,Standard_E8s_v3,reserved_3y,NA,0.201522,USD,Azure Retail Prices API,2025-12-18T04:46:02.059717 +AZURE,swedencentral,Standard_E8s_v3,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:00.283997 +AZURE,swedencentral,Standard_E8s_v4,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:00.284365 +AZURE,swedencentral,Standard_E8s_v4,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:46:02.060184 +AZURE,swedencentral,Standard_E8s_v4,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:46:02.060189 +AZURE,swedencentral,Standard_E8s_v4,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:00.285014 +AZURE,swedencentral,Standard_E8s_v5,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:46:00.284940 +AZURE,swedencentral,Standard_E8s_v5,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:46:02.061052 +AZURE,swedencentral,Standard_E8s_v5,reserved_3y,NA,0.198326,USD,Azure Retail Prices API,2025-12-18T04:46:02.061058 +AZURE,swedencentral,Standard_E8s_v5,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:46:00.283637 +AZURE,swedencentral,Standard_E96a_v4,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:00.283723 +AZURE,swedencentral,Standard_E96a_v4,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:46:02.059366 +AZURE,swedencentral,Standard_E96a_v4,reserved_3y,NA,2.444178,USD,Azure Retail Prices API,2025-12-18T04:46:02.059369 +AZURE,swedencentral,Standard_E96a_v4,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:00.284751 +AZURE,swedencentral,Standard_E96ads_v5,on_demand,NA,6.672,USD,Azure Retail Prices API,2025-12-18T04:46:00.283802 +AZURE,swedencentral,Standard_E96ads_v5,reserved_1y,NA,3.93653,USD,Azure Retail Prices API,2025-12-18T04:46:02.059476 +AZURE,swedencentral,Standard_E96ads_v5,reserved_3y,NA,2.53535,USD,Azure Retail Prices API,2025-12-18T04:46:02.059479 +AZURE,swedencentral,Standard_E96ads_v5,spot,NA,1.232986,USD,Azure Retail Prices API,2025-12-18T04:46:00.285100 +AZURE,swedencentral,Standard_E96ads_v6,on_demand,NA,7.45,USD,Azure Retail Prices API,2025-12-18T04:46:00.284410 +AZURE,swedencentral,Standard_E96ads_v6,reserved_1y,NA,4.39532,USD,Azure Retail Prices API,2025-12-18T04:46:02.060271 +AZURE,swedencentral,Standard_E96ads_v6,reserved_3y,NA,2.83086,USD,Azure Retail Prices API,2025-12-18T04:46:02.060275 +AZURE,swedencentral,Standard_E96ads_v6,spot,NA,1.37676,USD,Azure Retail Prices API,2025-12-18T04:46:00.284077 +AZURE,swedencentral,Standard_E96as_v4,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:00.284377 +AZURE,swedencentral,Standard_E96as_v4,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:46:02.060203 +AZURE,swedencentral,Standard_E96as_v4,reserved_3y,NA,2.444178,USD,Azure Retail Prices API,2025-12-18T04:46:02.060209 +AZURE,swedencentral,Standard_E96as_v4,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:00.283942 +AZURE,swedencentral,Standard_E96as_v5,on_demand,NA,5.808,USD,Azure Retail Prices API,2025-12-18T04:46:00.284263 +AZURE,swedencentral,Standard_E96as_v5,reserved_1y,NA,3.426712,USD,Azure Retail Prices API,2025-12-18T04:46:02.059978 +AZURE,swedencentral,Standard_E96as_v5,reserved_3y,NA,2.20704,USD,Azure Retail Prices API,2025-12-18T04:46:02.059982 +AZURE,swedencentral,Standard_E96as_v5,spot,NA,1.073318,USD,Azure Retail Prices API,2025-12-18T04:46:00.283863 +AZURE,swedencentral,Standard_E96ds_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:46:00.284926 +AZURE,swedencentral,Standard_E96ds_v5,reserved_1y,NA,4.30468,USD,Azure Retail Prices API,2025-12-18T04:46:02.061030 +AZURE,swedencentral,Standard_E96ds_v5,reserved_3y,NA,2.772489,USD,Azure Retail Prices API,2025-12-18T04:46:02.061036 +AZURE,swedencentral,Standard_E96ds_v5,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:46:00.284689 +AZURE,swedencentral,Standard_E96ds_v6,on_demand,NA,8.347,USD,Azure Retail Prices API,2025-12-18T04:46:00.284526 +AZURE,swedencentral,Standard_E96ds_v6,reserved_1y,NA,5.175228,USD,Azure Retail Prices API,2025-12-18T04:46:02.060447 +AZURE,swedencentral,Standard_E96ds_v6,reserved_3y,NA,3.255403,USD,Azure Retail Prices API,2025-12-18T04:46:02.060453 +AZURE,swedencentral,Standard_E96ds_v6,spot,NA,1.542526,USD,Azure Retail Prices API,2025-12-18T04:46:00.284350 +AZURE,swedencentral,Standard_E96pds_v6,on_demand,NA,5.981,USD,Azure Retail Prices API,2025-12-18T04:46:00.283583 +AZURE,swedencentral,Standard_E96pds_v6,reserved_1y,NA,3.528653,USD,Azure Retail Prices API,2025-12-18T04:46:02.059267 +AZURE,swedencentral,Standard_E96pds_v6,reserved_3y,NA,2.272717,USD,Azure Retail Prices API,2025-12-18T04:46:02.059270 +AZURE,swedencentral,Standard_E96pds_v6,spot,NA,1.105289,USD,Azure Retail Prices API,2025-12-18T04:46:00.283874 +AZURE,swedencentral,Standard_E96ps_v6,on_demand,NA,4.714,USD,Azure Retail Prices API,2025-12-18T04:46:00.285002 +AZURE,swedencentral,Standard_E96ps_v6,reserved_1y,NA,2.78105,USD,Azure Retail Prices API,2025-12-18T04:46:02.061145 +AZURE,swedencentral,Standard_E96ps_v6,reserved_3y,NA,1.791172,USD,Azure Retail Prices API,2025-12-18T04:46:02.061151 +AZURE,swedencentral,Standard_E96ps_v6,spot,NA,0.871147,USD,Azure Retail Prices API,2025-12-18T04:46:00.284465 +AZURE,swedencentral,Standard_E96s_v5,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:46:00.284950 +AZURE,swedencentral,Standard_E96s_v5,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:46:02.061073 +AZURE,swedencentral,Standard_E96s_v5,reserved_3y,NA,2.379833,USD,Azure Retail Prices API,2025-12-18T04:46:02.061078 +AZURE,swedencentral,Standard_E96s_v5,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:46:00.285044 +AZURE,swedencentral,Standard_EC16ads_v6,on_demand,NA,1.242,USD,Azure Retail Prices API,2025-12-18T04:46:00.284994 +AZURE,swedencentral,Standard_EC16ads_v6,reserved_1y,NA,0.732534,USD,Azure Retail Prices API,2025-12-18T04:46:02.061111 +AZURE,swedencentral,Standard_EC16ads_v6,reserved_3y,NA,0.471804,USD,Azure Retail Prices API,2025-12-18T04:46:02.061130 +AZURE,swedencentral,Standard_EC16ads_v6,spot,NA,0.229522,USD,Azure Retail Prices API,2025-12-18T04:46:00.284561 +AZURE,swedencentral,Standard_EC16as_v6,on_demand,NA,1.021,USD,Azure Retail Prices API,2025-12-18T04:46:00.284651 +AZURE,swedencentral,Standard_EC16as_v6,reserved_1y,NA,0.602283,USD,Azure Retail Prices API,2025-12-18T04:46:02.060680 +AZURE,swedencentral,Standard_EC16as_v6,reserved_3y,NA,0.3879,USD,Azure Retail Prices API,2025-12-18T04:46:02.060685 +AZURE,swedencentral,Standard_EC16as_v6,spot,NA,0.188681,USD,Azure Retail Prices API,2025-12-18T04:46:00.284200 +AZURE,swedencentral,Standard_EC2ads_v6,on_demand,NA,0.155,USD,Azure Retail Prices API,2025-12-18T04:46:00.284234 +AZURE,swedencentral,Standard_EC2ads_v6,reserved_1y,NA,0.091553,USD,Azure Retail Prices API,2025-12-18T04:46:02.059897 +AZURE,swedencentral,Standard_EC2ads_v6,reserved_3y,NA,0.05898,USD,Azure Retail Prices API,2025-12-18T04:46:02.059903 +AZURE,swedencentral,Standard_EC2ads_v6,spot,NA,0.028644,USD,Azure Retail Prices API,2025-12-18T04:46:00.283693 +AZURE,swedencentral,Standard_EC2as_v6,on_demand,NA,0.128,USD,Azure Retail Prices API,2025-12-18T04:46:00.284023 +AZURE,swedencentral,Standard_EC2as_v6,reserved_1y,NA,0.075228,USD,Azure Retail Prices API,2025-12-18T04:46:02.059668 +AZURE,swedencentral,Standard_EC2as_v6,reserved_3y,NA,0.048478,USD,Azure Retail Prices API,2025-12-18T04:46:02.059670 +AZURE,swedencentral,Standard_EC2as_v6,spot,NA,0.023654,USD,Azure Retail Prices API,2025-12-18T04:46:00.284391 +AZURE,swedencentral,Standard_EC32ads_v6,on_demand,NA,2.483,USD,Azure Retail Prices API,2025-12-18T04:46:00.284859 +AZURE,swedencentral,Standard_EC32ads_v6,reserved_1y,NA,1.465068,USD,Azure Retail Prices API,2025-12-18T04:46:02.060959 +AZURE,swedencentral,Standard_EC32ads_v6,reserved_3y,NA,0.943607,USD,Azure Retail Prices API,2025-12-18T04:46:02.060964 +AZURE,swedencentral,Standard_EC32ads_v6,spot,NA,0.458858,USD,Azure Retail Prices API,2025-12-18T04:46:00.283726 +AZURE,swedencentral,Standard_EC32as_v6,on_demand,NA,2.042,USD,Azure Retail Prices API,2025-12-18T04:46:00.284186 +AZURE,swedencentral,Standard_EC32as_v6,reserved_1y,NA,1.204566,USD,Azure Retail Prices API,2025-12-18T04:46:02.059811 +AZURE,swedencentral,Standard_EC32as_v6,reserved_3y,NA,0.775799,USD,Azure Retail Prices API,2025-12-18T04:46:02.059815 +AZURE,swedencentral,Standard_EC32as_v6,spot,NA,0.377362,USD,Azure Retail Prices API,2025-12-18T04:46:00.283658 +AZURE,swedencentral,Standard_EC48ads_v6,on_demand,NA,3.725,USD,Azure Retail Prices API,2025-12-18T04:46:00.284678 +AZURE,swedencentral,Standard_EC48ads_v6,reserved_1y,NA,2.197603,USD,Azure Retail Prices API,2025-12-18T04:46:02.060699 +AZURE,swedencentral,Standard_EC48ads_v6,reserved_3y,NA,1.415411,USD,Azure Retail Prices API,2025-12-18T04:46:02.060704 +AZURE,swedencentral,Standard_EC48ads_v6,spot,NA,0.68838,USD,Azure Retail Prices API,2025-12-18T04:46:00.283623 +AZURE,swedencentral,Standard_EC48as_v6,on_demand,NA,3.062,USD,Azure Retail Prices API,2025-12-18T04:46:00.284686 +AZURE,swedencentral,Standard_EC48as_v6,reserved_1y,NA,1.806849,USD,Azure Retail Prices API,2025-12-18T04:46:02.060719 +AZURE,swedencentral,Standard_EC48as_v6,reserved_3y,NA,1.163699,USD,Azure Retail Prices API,2025-12-18T04:46:02.060724 +AZURE,swedencentral,Standard_EC48as_v6,spot,NA,0.565858,USD,Azure Retail Prices API,2025-12-18T04:46:00.283710 +AZURE,swedencentral,Standard_EC4ads_v6,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:00.284240 +AZURE,swedencentral,Standard_EC4ads_v6,reserved_1y,NA,0.183105,USD,Azure Retail Prices API,2025-12-18T04:46:02.059916 +AZURE,swedencentral,Standard_EC4ads_v6,reserved_3y,NA,0.11796,USD,Azure Retail Prices API,2025-12-18T04:46:02.059920 +AZURE,swedencentral,Standard_EC4ads_v6,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:00.284031 +AZURE,swedencentral,Standard_EC4as_v6,on_demand,NA,0.255,USD,Azure Retail Prices API,2025-12-18T04:46:00.284194 +AZURE,swedencentral,Standard_EC4as_v6,reserved_1y,NA,0.150571,USD,Azure Retail Prices API,2025-12-18T04:46:02.059829 +AZURE,swedencentral,Standard_EC4as_v6,reserved_3y,NA,0.096994,USD,Azure Retail Prices API,2025-12-18T04:46:02.059833 +AZURE,swedencentral,Standard_EC4as_v6,spot,NA,0.047124,USD,Azure Retail Prices API,2025-12-18T04:46:00.284600 +AZURE,swedencentral,Standard_EC64ads_v6,on_demand,NA,4.966,USD,Azure Retail Prices API,2025-12-18T04:46:00.284876 +AZURE,swedencentral,Standard_EC64ads_v6,reserved_1y,NA,2.930137,USD,Azure Retail Prices API,2025-12-18T04:46:02.060988 +AZURE,swedencentral,Standard_EC64ads_v6,reserved_3y,NA,1.887215,USD,Azure Retail Prices API,2025-12-18T04:46:02.060994 +AZURE,swedencentral,Standard_EC64ads_v6,spot,NA,0.917717,USD,Azure Retail Prices API,2025-12-18T04:46:00.284037 +AZURE,swedencentral,Standard_EC64as_v6,on_demand,NA,4.083,USD,Azure Retail Prices API,2025-12-18T04:46:00.283757 +AZURE,swedencentral,Standard_EC64as_v6,reserved_1y,NA,2.409132,USD,Azure Retail Prices API,2025-12-18T04:46:02.059410 +AZURE,swedencentral,Standard_EC64as_v6,reserved_3y,NA,1.551598,USD,Azure Retail Prices API,2025-12-18T04:46:02.059413 +AZURE,swedencentral,Standard_EC64as_v6,spot,NA,0.754538,USD,Azure Retail Prices API,2025-12-18T04:46:00.284873 +AZURE,swedencentral,Standard_EC8ads_v6,on_demand,NA,0.621,USD,Azure Retail Prices API,2025-12-18T04:46:00.284828 +AZURE,swedencentral,Standard_EC8ads_v6,reserved_1y,NA,0.366324,USD,Azure Retail Prices API,2025-12-18T04:46:02.060885 +AZURE,swedencentral,Standard_EC8ads_v6,reserved_3y,NA,0.235921,USD,Azure Retail Prices API,2025-12-18T04:46:02.060890 +AZURE,swedencentral,Standard_EC8ads_v6,spot,NA,0.114761,USD,Azure Retail Prices API,2025-12-18T04:46:00.284553 +AZURE,swedencentral,Standard_EC8as_v6,on_demand,NA,0.51,USD,Azure Retail Prices API,2025-12-18T04:46:00.284683 +AZURE,swedencentral,Standard_EC8as_v6,reserved_1y,NA,0.301142,USD,Azure Retail Prices API,2025-12-18T04:46:02.060709 +AZURE,swedencentral,Standard_EC8as_v6,reserved_3y,NA,0.19395,USD,Azure Retail Prices API,2025-12-18T04:46:02.060714 +AZURE,swedencentral,Standard_EC8as_v6,spot,NA,0.094248,USD,Azure Retail Prices API,2025-12-18T04:46:00.283524 +AZURE,swedencentral,Standard_EC96ads_v6,on_demand,NA,7.45,USD,Azure Retail Prices API,2025-12-18T04:46:00.285069 +AZURE,swedencentral,Standard_EC96ads_v6,reserved_1y,NA,4.39532,USD,Azure Retail Prices API,2025-12-18T04:46:02.061289 +AZURE,swedencentral,Standard_EC96ads_v6,reserved_3y,NA,2.83086,USD,Azure Retail Prices API,2025-12-18T04:46:02.061294 +AZURE,swedencentral,Standard_EC96ads_v6,spot,NA,1.37676,USD,Azure Retail Prices API,2025-12-18T04:46:00.283931 +AZURE,swedencentral,Standard_EC96as_v6,on_demand,NA,6.125,USD,Azure Retail Prices API,2025-12-18T04:46:00.284517 +AZURE,swedencentral,Standard_EC96as_v6,reserved_1y,NA,3.613584,USD,Azure Retail Prices API,2025-12-18T04:46:02.060425 +AZURE,swedencentral,Standard_EC96as_v6,reserved_3y,NA,2.327435,USD,Azure Retail Prices API,2025-12-18T04:46:02.060431 +AZURE,swedencentral,Standard_EC96as_v6,spot,NA,1.1319,USD,Azure Retail Prices API,2025-12-18T04:46:00.284223 +AZURE,swedencentral,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379532 +AZURE,swedencentral,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379540 +AZURE,swedencentral,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379544 +AZURE,swedencentral,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379536 +AZURE,swedencentral,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381838 +AZURE,swedencentral,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381846 +AZURE,swedencentral,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381850 +AZURE,swedencentral,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381842 +AZURE,swedencentral,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384570 +AZURE,swedencentral,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384580 +AZURE,swedencentral,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384584 +AZURE,swedencentral,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384575 +AZURE,swedencentral,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385394 +AZURE,swedencentral,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385403 +AZURE,swedencentral,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385408 +AZURE,swedencentral,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385399 +AZURE,swedencentral,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377978 +AZURE,swedencentral,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377986 +AZURE,swedencentral,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377991 +AZURE,swedencentral,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377982 +AZURE,swedencentral,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386156 +AZURE,swedencentral,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386166 +AZURE,swedencentral,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386170 +AZURE,swedencentral,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386160 +AZURE,swedencentral,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380297 +AZURE,swedencentral,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380306 +AZURE,swedencentral,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380310 +AZURE,swedencentral,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380301 +AZURE,swedencentral,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382901 +AZURE,swedencentral,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382911 +AZURE,swedencentral,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382915 +AZURE,swedencentral,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382906 +AZURE,swedencentral,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386928 +AZURE,swedencentral,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386936 +AZURE,swedencentral,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386941 +AZURE,swedencentral,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386932 +AZURE,swedencentral,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387745 +AZURE,swedencentral,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387753 +AZURE,swedencentral,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387759 +AZURE,swedencentral,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387749 +AZURE,swedencentral,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378713 +AZURE,swedencentral,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378721 +AZURE,swedencentral,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378725 +AZURE,swedencentral,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378717 +AZURE,swedencentral,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381018 +AZURE,swedencentral,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381026 +AZURE,swedencentral,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381030 +AZURE,swedencentral,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381022 +AZURE,swedencentral,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383729 +AZURE,swedencentral,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383737 +AZURE,swedencentral,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383741 +AZURE,swedencentral,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383733 +AZURE,swedencentral,Standard_L16as_v3,on_demand,NA,1.304,USD,Azure Retail Prices API,2025-12-18T04:46:00.283783 +AZURE,swedencentral,Standard_L16as_v3,reserved_1y,NA,0.834589,USD,Azure Retail Prices API,2025-12-18T04:46:02.059452 +AZURE,swedencentral,Standard_L16as_v3,reserved_3y,NA,0.547679,USD,Azure Retail Prices API,2025-12-18T04:46:02.059455 +AZURE,swedencentral,Standard_L16as_v3,spot,NA,0.240979,USD,Azure Retail Prices API,2025-12-18T04:46:00.283656 +AZURE,swedencentral,Standard_L16s_v3,on_demand,NA,1.456,USD,Azure Retail Prices API,2025-12-18T04:46:00.285066 +AZURE,swedencentral,Standard_L16s_v3,reserved_1y,NA,0.931849,USD,Azure Retail Prices API,2025-12-18T04:46:02.061280 +AZURE,swedencentral,Standard_L16s_v3,reserved_3y,NA,0.61153,USD,Azure Retail Prices API,2025-12-18T04:46:02.061285 +AZURE,swedencentral,Standard_L16s_v3,spot,NA,0.269069,USD,Azure Retail Prices API,2025-12-18T04:46:00.285033 +AZURE,swedencentral,Standard_L32as_v3,on_demand,NA,2.608,USD,Azure Retail Prices API,2025-12-18T04:46:00.283574 +AZURE,swedencentral,Standard_L32as_v3,reserved_1y,NA,1.669064,USD,Azure Retail Prices API,2025-12-18T04:46:02.059261 +AZURE,swedencentral,Standard_L32as_v3,reserved_3y,NA,1.095358,USD,Azure Retail Prices API,2025-12-18T04:46:02.059264 +AZURE,swedencentral,Standard_L32as_v3,spot,NA,0.481958,USD,Azure Retail Prices API,2025-12-18T04:46:00.283843 +AZURE,swedencentral,Standard_L32s_v3,on_demand,NA,2.912,USD,Azure Retail Prices API,2025-12-18T04:46:00.285041 +AZURE,swedencentral,Standard_L32s_v3,reserved_1y,NA,1.863699,USD,Azure Retail Prices API,2025-12-18T04:46:02.061215 +AZURE,swedencentral,Standard_L32s_v3,reserved_3y,NA,1.223021,USD,Azure Retail Prices API,2025-12-18T04:46:02.061219 +AZURE,swedencentral,Standard_L32s_v3,spot,NA,0.538138,USD,Azure Retail Prices API,2025-12-18T04:46:00.284129 +AZURE,swedencentral,Standard_L48as_v3,on_demand,NA,3.912,USD,Azure Retail Prices API,2025-12-18T04:46:00.284388 +AZURE,swedencentral,Standard_L48as_v3,reserved_1y,NA,2.503653,USD,Azure Retail Prices API,2025-12-18T04:46:02.060213 +AZURE,swedencentral,Standard_L48as_v3,reserved_3y,NA,1.643037,USD,Azure Retail Prices API,2025-12-18T04:46:02.060218 +AZURE,swedencentral,Standard_L48as_v3,spot,NA,0.722938,USD,Azure Retail Prices API,2025-12-18T04:46:00.284732 +AZURE,swedencentral,Standard_L48s_v3,on_demand,NA,4.368,USD,Azure Retail Prices API,2025-12-18T04:46:00.284463 +AZURE,swedencentral,Standard_L48s_v3,reserved_1y,NA,2.795548,USD,Azure Retail Prices API,2025-12-18T04:46:02.060359 +AZURE,swedencentral,Standard_L48s_v3,reserved_3y,NA,1.834551,USD,Azure Retail Prices API,2025-12-18T04:46:02.060365 +AZURE,swedencentral,Standard_L48s_v3,spot,NA,0.807206,USD,Azure Retail Prices API,2025-12-18T04:46:00.284917 +AZURE,swedencentral,Standard_L64as_v3,on_demand,NA,5.216,USD,Azure Retail Prices API,2025-12-18T04:46:00.284225 +AZURE,swedencentral,Standard_L64as_v3,reserved_1y,NA,3.338242,USD,Azure Retail Prices API,2025-12-18T04:46:02.059881 +AZURE,swedencentral,Standard_L64as_v3,reserved_3y,NA,2.190715,USD,Azure Retail Prices API,2025-12-18T04:46:02.059885 +AZURE,swedencentral,Standard_L64as_v3,spot,NA,0.963917,USD,Azure Retail Prices API,2025-12-18T04:46:00.284923 +AZURE,swedencentral,Standard_L64s_v3,on_demand,NA,5.824,USD,Azure Retail Prices API,2025-12-18T04:46:00.284620 +AZURE,swedencentral,Standard_L64s_v3,reserved_1y,NA,3.727397,USD,Azure Retail Prices API,2025-12-18T04:46:02.060615 +AZURE,swedencentral,Standard_L64s_v3,reserved_3y,NA,2.446081,USD,Azure Retail Prices API,2025-12-18T04:46:02.060620 +AZURE,swedencentral,Standard_L64s_v3,spot,NA,1.076275,USD,Azure Retail Prices API,2025-12-18T04:46:00.284477 +AZURE,swedencentral,Standard_L80as_v3,on_demand,NA,6.52,USD,Azure Retail Prices API,2025-12-18T04:46:00.283947 +AZURE,swedencentral,Standard_L80as_v3,reserved_1y,NA,4.172831,USD,Azure Retail Prices API,2025-12-18T04:46:02.059589 +AZURE,swedencentral,Standard_L80as_v3,reserved_3y,NA,2.738394,USD,Azure Retail Prices API,2025-12-18T04:46:02.059593 +AZURE,swedencentral,Standard_L80as_v3,spot,NA,1.204896,USD,Azure Retail Prices API,2025-12-18T04:46:00.284003 +AZURE,swedencentral,Standard_L80s_v3,on_demand,NA,7.28,USD,Azure Retail Prices API,2025-12-18T04:46:00.284469 +AZURE,swedencentral,Standard_L80s_v3,reserved_1y,NA,4.659247,USD,Azure Retail Prices API,2025-12-18T04:46:02.060370 +AZURE,swedencentral,Standard_L80s_v3,reserved_3y,NA,3.05761,USD,Azure Retail Prices API,2025-12-18T04:46:02.060376 +AZURE,swedencentral,Standard_L80s_v3,spot,NA,1.345344,USD,Azure Retail Prices API,2025-12-18T04:46:00.285131 +AZURE,swedencentral,Standard_L8as_v3,on_demand,NA,0.652,USD,Azure Retail Prices API,2025-12-18T04:46:00.284511 +AZURE,swedencentral,Standard_L8as_v3,reserved_1y,NA,0.417237,USD,Azure Retail Prices API,2025-12-18T04:46:02.060415 +AZURE,swedencentral,Standard_L8as_v3,reserved_3y,NA,0.273858,USD,Azure Retail Prices API,2025-12-18T04:46:02.060420 +AZURE,swedencentral,Standard_L8as_v3,spot,NA,0.12049,USD,Azure Retail Prices API,2025-12-18T04:46:00.284741 +AZURE,swedencentral,Standard_L8s_v3,on_demand,NA,0.728,USD,Azure Retail Prices API,2025-12-18T04:46:00.284692 +AZURE,swedencentral,Standard_L8s_v3,reserved_1y,NA,0.465868,USD,Azure Retail Prices API,2025-12-18T04:46:02.060729 +AZURE,swedencentral,Standard_L8s_v3,reserved_3y,NA,0.305746,USD,Azure Retail Prices API,2025-12-18T04:46:02.060734 +AZURE,swedencentral,Standard_L8s_v3,spot,NA,0.134534,USD,Azure Retail Prices API,2025-12-18T04:46:00.284300 +AZURE,swedencentral,Standard_NC16as_T4_v3,on_demand,NA,1.276,USD,Azure Retail Prices API,2025-12-18T04:46:00.284564 +AZURE,swedencentral,Standard_NC16as_T4_v3,reserved_1y,NA,0.752626,USD,Azure Retail Prices API,2025-12-18T04:46:02.060508 +AZURE,swedencentral,Standard_NC16as_T4_v3,reserved_3y,NA,0.484779,USD,Azure Retail Prices API,2025-12-18T04:46:02.060512 +AZURE,swedencentral,Standard_NC16as_T4_v3,spot,NA,0.37004,USD,Azure Retail Prices API,2025-12-18T04:46:00.285063 +AZURE,swedencentral,Standard_NC24ads_A100_v4,on_demand,NA,4.775,USD,Azure Retail Prices API,2025-12-18T04:46:00.284629 +AZURE,swedencentral,Standard_NC24ads_A100_v4,reserved_1y,NA,3.121347,USD,Azure Retail Prices API,2025-12-18T04:46:02.060634 +AZURE,swedencentral,Standard_NC24ads_A100_v4,reserved_3y,NA,1.771956,USD,Azure Retail Prices API,2025-12-18T04:46:02.060639 +AZURE,swedencentral,Standard_NC24ads_A100_v4,spot,NA,1.64451,USD,Azure Retail Prices API,2025-12-18T04:46:00.284660 +AZURE,swedencentral,Standard_NC40ads_H100_v5,on_demand,NA,9.074,USD,Azure Retail Prices API,2025-12-18T04:46:00.284520 +AZURE,swedencentral,Standard_NC40ads_H100_v5,reserved_1y,NA,6.805479,USD,Azure Retail Prices API,2025-12-18T04:46:02.060436 +AZURE,swedencentral,Standard_NC40ads_H100_v5,reserved_3y,NA,4.990715,USD,Azure Retail Prices API,2025-12-18T04:46:02.060441 +AZURE,swedencentral,Standard_NC40ads_H100_v5,spot,NA,8.1666,USD,Azure Retail Prices API,2025-12-18T04:46:00.284297 +AZURE,swedencentral,Standard_NC48ads_A100_v4,on_demand,NA,9.55,USD,Azure Retail Prices API,2025-12-18T04:46:00.284454 +AZURE,swedencentral,Standard_NC48ads_A100_v4,reserved_1y,NA,6.242694,USD,Azure Retail Prices API,2025-12-18T04:46:02.060339 +AZURE,swedencentral,Standard_NC48ads_A100_v4,reserved_3y,NA,3.54395,USD,Azure Retail Prices API,2025-12-18T04:46:02.060344 +AZURE,swedencentral,Standard_NC48ads_A100_v4,spot,NA,3.28902,USD,Azure Retail Prices API,2025-12-18T04:46:00.284962 +AZURE,swedencentral,Standard_NC4as_T4_v3,on_demand,NA,0.558,USD,Azure Retail Prices API,2025-12-18T04:46:00.284303 +AZURE,swedencentral,Standard_NC4as_T4_v3,reserved_1y,NA,0.328995,USD,Azure Retail Prices API,2025-12-18T04:46:02.060058 +AZURE,swedencentral,Standard_NC4as_T4_v3,reserved_3y,NA,0.211872,USD,Azure Retail Prices API,2025-12-18T04:46:02.060062 +AZURE,swedencentral,Standard_NC4as_T4_v3,spot,NA,0.16182,USD,Azure Retail Prices API,2025-12-18T04:46:00.284440 +AZURE,swedencentral,Standard_NC64as_T4_v3,on_demand,NA,4.603,USD,Azure Retail Prices API,2025-12-18T04:46:00.284635 +AZURE,swedencentral,Standard_NC64as_T4_v3,reserved_1y,NA,2.715868,USD,Azure Retail Prices API,2025-12-18T04:46:02.060653 +AZURE,swedencentral,Standard_NC64as_T4_v3,reserved_3y,NA,1.749239,USD,Azure Retail Prices API,2025-12-18T04:46:02.060657 +AZURE,swedencentral,Standard_NC64as_T4_v3,spot,NA,1.33487,USD,Azure Retail Prices API,2025-12-18T04:46:00.283914 +AZURE,swedencentral,Standard_NC8as_T4_v3,on_demand,NA,0.796,USD,Azure Retail Prices API,2025-12-18T04:46:00.283855 +AZURE,swedencentral,Standard_NC8as_T4_v3,reserved_1y,NA,0.469863,USD,Azure Retail Prices API,2025-12-18T04:46:02.059527 +AZURE,swedencentral,Standard_NC8as_T4_v3,reserved_3y,NA,0.302626,USD,Azure Retail Prices API,2025-12-18T04:46:02.059529 +AZURE,swedencentral,Standard_NC8as_T4_v3,spot,NA,0.23084,USD,Azure Retail Prices API,2025-12-18T04:46:00.283991 +AZURE,swedencentral,Standard_NC96ads_A100_v4,on_demand,NA,19.1,USD,Azure Retail Prices API,2025-12-18T04:46:00.283768 +AZURE,swedencentral,Standard_NC96ads_A100_v4,reserved_1y,NA,12.485388,USD,Azure Retail Prices API,2025-12-18T04:46:02.059428 +AZURE,swedencentral,Standard_NC96ads_A100_v4,reserved_3y,NA,7.087861,USD,Azure Retail Prices API,2025-12-18T04:46:02.059431 +AZURE,swedencentral,Standard_NC96ads_A100_v4,spot,NA,6.57804,USD,Azure Retail Prices API,2025-12-18T04:46:00.284587 +AZURE,swedencentral,Standard_ND96isr_H100_v5,on_demand,NA,127.816,USD,Azure Retail Prices API,2025-12-18T04:46:00.284831 +AZURE,swedencentral,Standard_ND96isr_H100_v5,reserved_1y,NA,81.802283,USD,Azure Retail Prices API,2025-12-18T04:46:02.060895 +AZURE,swedencentral,Standard_ND96isr_H100_v5,reserved_3y,NA,56.111225,USD,Azure Retail Prices API,2025-12-18T04:46:02.060901 +AZURE,swedencentral,Standard_ND96isr_H100_v5,spot,NA,23.620397,USD,Azure Retail Prices API,2025-12-18T04:46:00.284180 +AZURE,swedencentral,Standard_NV36adms_A10_v5,on_demand,NA,5.876,USD,Azure Retail Prices API,2025-12-18T04:46:00.284266 +AZURE,swedencentral,Standard_NV36adms_A10_v5,reserved_1y,NA,3.760616,USD,Azure Retail Prices API,2025-12-18T04:46:02.059986 +AZURE,swedencentral,Standard_NV36adms_A10_v5,reserved_3y,NA,2.585426,USD,Azure Retail Prices API,2025-12-18T04:46:02.059991 +AZURE,swedencentral,Standard_NV36adms_A10_v5,spot,NA,1.094699,USD,Azure Retail Prices API,2025-12-18T04:46:00.284280 +AZURE,swedencentral,Standard_NV36ads_A10_v5,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:46:00.284559 +AZURE,swedencentral,Standard_NV36ads_A10_v5,reserved_1y,NA,2.662443,USD,Azure Retail Prices API,2025-12-18T04:46:02.060498 +AZURE,swedencentral,Standard_NV36ads_A10_v5,reserved_3y,NA,1.830403,USD,Azure Retail Prices API,2025-12-18T04:46:02.060503 +AZURE,swedencentral,Standard_NV36ads_A10_v5,spot,NA,0.775008,USD,Azure Retail Prices API,2025-12-18T04:46:00.284258 +AZURE,swedencentral,Standard_NV72ads_A10_v5,on_demand,NA,8.476,USD,Azure Retail Prices API,2025-12-18T04:46:00.283869 +AZURE,swedencentral,Standard_NV72ads_A10_v5,reserved_1y,NA,5.424658,USD,Azure Retail Prices API,2025-12-18T04:46:02.059539 +AZURE,swedencentral,Standard_NV72ads_A10_v5,reserved_3y,NA,3.729452,USD,Azure Retail Prices API,2025-12-18T04:46:02.059541 +AZURE,swedencentral,Standard_NV72ads_A10_v5,spot,NA,1.579079,USD,Azure Retail Prices API,2025-12-18T04:46:00.284317 +AZURE,switzerlandnorth,Standard_D128ds_v6,on_demand,NA,10.605,USD,Azure Retail Prices API,2025-12-18T04:45:53.618725 +AZURE,switzerlandnorth,Standard_D128ds_v6,reserved_1y,NA,6.575,USD,Azure Retail Prices API,2025-12-18T04:45:55.209184 +AZURE,switzerlandnorth,Standard_D128ds_v6,reserved_3y,NA,4.135883,USD,Azure Retail Prices API,2025-12-18T04:45:55.209186 +AZURE,switzerlandnorth,Standard_D128ds_v6,spot,NA,1.959804,USD,Azure Retail Prices API,2025-12-18T04:45:53.620571 +AZURE,switzerlandnorth,Standard_D12_v2,on_demand,NA,0.4081,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488379 +AZURE,switzerlandnorth,Standard_D12_v2,reserved_1y,NA,0.24486,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488387 +AZURE,switzerlandnorth,Standard_D12_v2,reserved_3y,NA,0.16324,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488391 +AZURE,switzerlandnorth,Standard_D12_v2,spot,NA,0.12243,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488383 +AZURE,switzerlandnorth,Standard_D13_v2,on_demand,NA,0.8151,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489147 +AZURE,switzerlandnorth,Standard_D13_v2,reserved_1y,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489155 +AZURE,switzerlandnorth,Standard_D13_v2,reserved_3y,NA,0.32604,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489159 +AZURE,switzerlandnorth,Standard_D13_v2,spot,NA,0.24453,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489151 +AZURE,switzerlandnorth,Standard_D14_v2,on_demand,NA,1.6302,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490258 +AZURE,switzerlandnorth,Standard_D14_v2,reserved_1y,NA,0.97812,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490266 +AZURE,switzerlandnorth,Standard_D14_v2,reserved_3y,NA,0.65208,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490270 +AZURE,switzerlandnorth,Standard_D14_v2,spot,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490262 +AZURE,switzerlandnorth,Standard_D15_v2,on_demand,NA,2.0383,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490966 +AZURE,switzerlandnorth,Standard_D15_v2,reserved_1y,NA,1.22298,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490978 +AZURE,switzerlandnorth,Standard_D15_v2,reserved_3y,NA,0.81532,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490982 +AZURE,switzerlandnorth,Standard_D15_v2,spot,NA,0.61149,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490974 +AZURE,switzerlandnorth,Standard_D16_v3,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:45:53.620539 +AZURE,switzerlandnorth,Standard_D16_v3,reserved_1y,NA,0.664269,USD,Azure Retail Prices API,2025-12-18T04:45:55.210162 +AZURE,switzerlandnorth,Standard_D16_v3,reserved_3y,NA,0.432002,USD,Azure Retail Prices API,2025-12-18T04:45:55.210165 +AZURE,switzerlandnorth,Standard_D16_v3,spot,NA,0.202752,USD,Azure Retail Prices API,2025-12-18T04:45:53.619860 +AZURE,switzerlandnorth,Standard_D16a_v4,on_demand,NA,1.098,USD,Azure Retail Prices API,2025-12-18T04:45:53.617992 +AZURE,switzerlandnorth,Standard_D16a_v4,reserved_1y,NA,0.647945,USD,Azure Retail Prices API,2025-12-18T04:45:55.208731 +AZURE,switzerlandnorth,Standard_D16a_v4,reserved_3y,NA,0.417314,USD,Azure Retail Prices API,2025-12-18T04:45:55.208734 +AZURE,switzerlandnorth,Standard_D16a_v4,spot,NA,0.20291,USD,Azure Retail Prices API,2025-12-18T04:45:53.620958 +AZURE,switzerlandnorth,Standard_D16ads_v5,on_demand,NA,1.178,USD,Azure Retail Prices API,2025-12-18T04:45:53.618893 +AZURE,switzerlandnorth,Standard_D16ads_v5,reserved_1y,NA,0.695205,USD,Azure Retail Prices API,2025-12-18T04:45:55.209241 +AZURE,switzerlandnorth,Standard_D16ads_v5,reserved_3y,NA,0.447755,USD,Azure Retail Prices API,2025-12-18T04:45:55.209244 +AZURE,switzerlandnorth,Standard_D16ads_v5,spot,NA,0.217694,USD,Azure Retail Prices API,2025-12-18T04:45:53.620014 +AZURE,switzerlandnorth,Standard_D16ads_v6,on_demand,NA,1.306,USD,Azure Retail Prices API,2025-12-18T04:45:53.618342 +AZURE,switzerlandnorth,Standard_D16ads_v6,reserved_1y,NA,0.77032,USD,Azure Retail Prices API,2025-12-18T04:45:55.208953 +AZURE,switzerlandnorth,Standard_D16ads_v6,reserved_3y,NA,0.496119,USD,Azure Retail Prices API,2025-12-18T04:45:55.208956 +AZURE,switzerlandnorth,Standard_D16ads_v6,spot,NA,0.241349,USD,Azure Retail Prices API,2025-12-18T04:45:53.618778 +AZURE,switzerlandnorth,Standard_D16as_v4,on_demand,NA,1.098,USD,Azure Retail Prices API,2025-12-18T04:45:53.618277 +AZURE,switzerlandnorth,Standard_D16as_v4,reserved_1y,NA,0.647945,USD,Azure Retail Prices API,2025-12-18T04:45:55.208905 +AZURE,switzerlandnorth,Standard_D16as_v4,reserved_3y,NA,0.417314,USD,Azure Retail Prices API,2025-12-18T04:45:55.208908 +AZURE,switzerlandnorth,Standard_D16as_v4,spot,NA,0.20291,USD,Azure Retail Prices API,2025-12-18T04:45:53.617986 +AZURE,switzerlandnorth,Standard_D16as_v5,on_demand,NA,1.72,USD,Azure Retail Prices API,2025-12-18T04:45:53.618688 +AZURE,switzerlandnorth,Standard_D16as_v5,reserved_1y,NA,0.580479,USD,Azure Retail Prices API,2025-12-18T04:45:55.210128 +AZURE,switzerlandnorth,Standard_D16as_v5,reserved_3y,NA,0.373858,USD,Azure Retail Prices API,2025-12-18T04:45:55.210132 +AZURE,switzerlandnorth,Standard_D16as_v5,spot,NA,0.181843,USD,Azure Retail Prices API,2025-12-18T04:45:53.617920 +AZURE,switzerlandnorth,Standard_D16d_v4,on_demand,NA,1.1968,USD,Azure Retail Prices API,2025-12-18T04:45:53.618053 +AZURE,switzerlandnorth,Standard_D16d_v4,reserved_1y,NA,0.70605,USD,Azure Retail Prices API,2025-12-18T04:45:55.208760 +AZURE,switzerlandnorth,Standard_D16d_v4,reserved_3y,NA,0.454795,USD,Azure Retail Prices API,2025-12-18T04:45:55.208764 +AZURE,switzerlandnorth,Standard_D16d_v4,spot,NA,0.232658,USD,Azure Retail Prices API,2025-12-18T04:45:53.620294 +AZURE,switzerlandnorth,Standard_D16ds_v4,on_demand,NA,1.1968,USD,Azure Retail Prices API,2025-12-18T04:45:53.618904 +AZURE,switzerlandnorth,Standard_D16ds_v4,reserved_1y,NA,0.70605,USD,Azure Retail Prices API,2025-12-18T04:45:55.209247 +AZURE,switzerlandnorth,Standard_D16ds_v4,reserved_3y,NA,0.454795,USD,Azure Retail Prices API,2025-12-18T04:45:55.209250 +AZURE,switzerlandnorth,Standard_D16ds_v4,spot,NA,0.232658,USD,Azure Retail Prices API,2025-12-18T04:45:53.620929 +AZURE,switzerlandnorth,Standard_D16ds_v5,on_demand,NA,1.197,USD,Azure Retail Prices API,2025-12-18T04:45:53.619822 +AZURE,switzerlandnorth,Standard_D16ds_v5,reserved_1y,NA,0.706164,USD,Azure Retail Prices API,2025-12-18T04:45:55.209769 +AZURE,switzerlandnorth,Standard_D16ds_v5,reserved_3y,NA,0.454795,USD,Azure Retail Prices API,2025-12-18T04:45:55.209772 +AZURE,switzerlandnorth,Standard_D16ds_v5,spot,NA,0.242273,USD,Azure Retail Prices API,2025-12-18T04:45:53.620035 +AZURE,switzerlandnorth,Standard_D16ds_v6,on_demand,NA,1.326,USD,Azure Retail Prices API,2025-12-18T04:45:53.619516 +AZURE,switzerlandnorth,Standard_D16ds_v6,reserved_1y,NA,0.821918,USD,Azure Retail Prices API,2025-12-18T04:45:55.209596 +AZURE,switzerlandnorth,Standard_D16ds_v6,reserved_3y,NA,0.516971,USD,Azure Retail Prices API,2025-12-18T04:45:55.209599 +AZURE,switzerlandnorth,Standard_D16ds_v6,spot,NA,0.245045,USD,Azure Retail Prices API,2025-12-18T04:45:53.619590 +AZURE,switzerlandnorth,Standard_D16pds_v6,on_demand,NA,1.146,USD,Azure Retail Prices API,2025-12-18T04:45:53.618741 +AZURE,switzerlandnorth,Standard_D16pds_v6,reserved_1y,NA,0.675913,USD,Azure Retail Prices API,2025-12-18T04:45:55.209189 +AZURE,switzerlandnorth,Standard_D16pds_v6,reserved_3y,NA,0.435312,USD,Azure Retail Prices API,2025-12-18T04:45:55.209192 +AZURE,switzerlandnorth,Standard_D16pds_v6,spot,NA,0.222324,USD,Azure Retail Prices API,2025-12-18T04:45:53.619466 +AZURE,switzerlandnorth,Standard_D16ps_v6,on_demand,NA,0.875,USD,Azure Retail Prices API,2025-12-18T04:45:53.618193 +AZURE,switzerlandnorth,Standard_D16ps_v6,reserved_1y,NA,0.516324,USD,Azure Retail Prices API,2025-12-18T04:45:55.208863 +AZURE,switzerlandnorth,Standard_D16ps_v6,reserved_3y,NA,0.332572,USD,Azure Retail Prices API,2025-12-18T04:45:55.208867 +AZURE,switzerlandnorth,Standard_D16ps_v6,spot,NA,0.16975,USD,Azure Retail Prices API,2025-12-18T04:45:53.620955 +AZURE,switzerlandnorth,Standard_D16s_v3,on_demand,NA,1.056,USD,Azure Retail Prices API,2025-12-18T04:45:53.619783 +AZURE,switzerlandnorth,Standard_D16s_v3,reserved_1y,NA,0.664269,USD,Azure Retail Prices API,2025-12-18T04:45:55.209740 +AZURE,switzerlandnorth,Standard_D16s_v3,reserved_3y,NA,0.432002,USD,Azure Retail Prices API,2025-12-18T04:45:55.209743 +AZURE,switzerlandnorth,Standard_D16s_v3,spot,NA,0.202752,USD,Azure Retail Prices API,2025-12-18T04:45:53.620282 +AZURE,switzerlandnorth,Standard_D16s_v4,on_demand,NA,1.012,USD,Azure Retail Prices API,2025-12-18T04:45:53.619926 +AZURE,switzerlandnorth,Standard_D16s_v4,reserved_1y,NA,0.597032,USD,Azure Retail Prices API,2025-12-18T04:45:55.209856 +AZURE,switzerlandnorth,Standard_D16s_v4,reserved_3y,NA,0.384551,USD,Azure Retail Prices API,2025-12-18T04:45:55.209861 +AZURE,switzerlandnorth,Standard_D16s_v4,spot,NA,0.187625,USD,Azure Retail Prices API,2025-12-18T04:45:53.618206 +AZURE,switzerlandnorth,Standard_D16s_v5,on_demand,NA,1.012,USD,Azure Retail Prices API,2025-12-18T04:45:53.618972 +AZURE,switzerlandnorth,Standard_D16s_v5,reserved_1y,NA,0.597032,USD,Azure Retail Prices API,2025-12-18T04:45:55.209317 +AZURE,switzerlandnorth,Standard_D16s_v5,reserved_3y,NA,0.374429,USD,Azure Retail Prices API,2025-12-18T04:45:55.209320 +AZURE,switzerlandnorth,Standard_D16s_v5,spot,NA,0.187524,USD,Azure Retail Prices API,2025-12-18T04:45:53.618538 +AZURE,switzerlandnorth,Standard_D2ads_v6,on_demand,NA,0.163,USD,Azure Retail Prices API,2025-12-18T04:45:53.618416 +AZURE,switzerlandnorth,Standard_D2ads_v6,reserved_1y,NA,0.096233,USD,Azure Retail Prices API,2025-12-18T04:45:55.208987 +AZURE,switzerlandnorth,Standard_D2ads_v6,reserved_3y,NA,0.062024,USD,Azure Retail Prices API,2025-12-18T04:45:55.208990 +AZURE,switzerlandnorth,Standard_D2ads_v6,spot,NA,0.030122,USD,Azure Retail Prices API,2025-12-18T04:45:53.620057 +AZURE,switzerlandnorth,Standard_D2ds_v6,on_demand,NA,0.166,USD,Azure Retail Prices API,2025-12-18T04:45:53.619920 +AZURE,switzerlandnorth,Standard_D2ds_v6,reserved_1y,NA,0.10274,USD,Azure Retail Prices API,2025-12-18T04:45:55.209844 +AZURE,switzerlandnorth,Standard_D2ds_v6,reserved_3y,NA,0.064612,USD,Azure Retail Prices API,2025-12-18T04:45:55.209851 +AZURE,switzerlandnorth,Standard_D2ds_v6,spot,NA,0.030677,USD,Azure Retail Prices API,2025-12-18T04:45:53.619439 +AZURE,switzerlandnorth,Standard_D32_v3,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:45:53.618175 +AZURE,switzerlandnorth,Standard_D32_v3,reserved_1y,NA,1.328539,USD,Azure Retail Prices API,2025-12-18T04:45:55.208852 +AZURE,switzerlandnorth,Standard_D32_v3,reserved_3y,NA,0.864003,USD,Azure Retail Prices API,2025-12-18T04:45:55.208855 +AZURE,switzerlandnorth,Standard_D32_v3,spot,NA,0.405504,USD,Azure Retail Prices API,2025-12-18T04:45:53.620344 +AZURE,switzerlandnorth,Standard_D32a_v4,on_demand,NA,2.196,USD,Azure Retail Prices API,2025-12-18T04:45:53.620875 +AZURE,switzerlandnorth,Standard_D32a_v4,reserved_1y,NA,1.29589,USD,Azure Retail Prices API,2025-12-18T04:45:55.210352 +AZURE,switzerlandnorth,Standard_D32a_v4,reserved_3y,NA,0.834665,USD,Azure Retail Prices API,2025-12-18T04:45:55.210355 +AZURE,switzerlandnorth,Standard_D32a_v4,spot,NA,0.405821,USD,Azure Retail Prices API,2025-12-18T04:45:53.619681 +AZURE,switzerlandnorth,Standard_D32ads_v5,on_demand,NA,3.829,USD,Azure Retail Prices API,2025-12-18T04:45:53.618236 +AZURE,switzerlandnorth,Standard_D32ads_v5,reserved_1y,NA,1.390411,USD,Azure Retail Prices API,2025-12-18T04:45:55.209408 +AZURE,switzerlandnorth,Standard_D32ads_v5,reserved_3y,NA,0.89551,USD,Azure Retail Prices API,2025-12-18T04:45:55.209411 +AZURE,switzerlandnorth,Standard_D32ads_v5,spot,NA,0.435574,USD,Azure Retail Prices API,2025-12-18T04:45:53.618829 +AZURE,switzerlandnorth,Standard_D32ads_v6,on_demand,NA,2.611,USD,Azure Retail Prices API,2025-12-18T04:45:53.619191 +AZURE,switzerlandnorth,Standard_D32ads_v6,reserved_1y,NA,1.540639,USD,Azure Retail Prices API,2025-12-18T04:45:55.209420 +AZURE,switzerlandnorth,Standard_D32ads_v6,reserved_3y,NA,0.992237,USD,Azure Retail Prices API,2025-12-18T04:45:55.209423 +AZURE,switzerlandnorth,Standard_D32ads_v6,spot,NA,0.482513,USD,Azure Retail Prices API,2025-12-18T04:45:53.619810 +AZURE,switzerlandnorth,Standard_D32as_v4,on_demand,NA,2.196,USD,Azure Retail Prices API,2025-12-18T04:45:53.620158 +AZURE,switzerlandnorth,Standard_D32as_v4,reserved_1y,NA,1.29589,USD,Azure Retail Prices API,2025-12-18T04:45:55.209990 +AZURE,switzerlandnorth,Standard_D32as_v4,reserved_3y,NA,0.834665,USD,Azure Retail Prices API,2025-12-18T04:45:55.209993 +AZURE,switzerlandnorth,Standard_D32as_v4,spot,NA,0.405821,USD,Azure Retail Prices API,2025-12-18T04:45:53.619755 +AZURE,switzerlandnorth,Standard_D32as_v5,on_demand,NA,3.44,USD,Azure Retail Prices API,2025-12-18T04:45:53.618798 +AZURE,switzerlandnorth,Standard_D32as_v5,reserved_1y,NA,1.160959,USD,Azure Retail Prices API,2025-12-18T04:45:55.209835 +AZURE,switzerlandnorth,Standard_D32as_v5,reserved_3y,NA,0.747717,USD,Azure Retail Prices API,2025-12-18T04:45:55.209840 +AZURE,switzerlandnorth,Standard_D32as_v5,spot,NA,0.363686,USD,Azure Retail Prices API,2025-12-18T04:45:53.618762 +AZURE,switzerlandnorth,Standard_D32d_v4,on_demand,NA,2.3936,USD,Azure Retail Prices API,2025-12-18T04:45:53.620878 +AZURE,switzerlandnorth,Standard_D32d_v4,reserved_1y,NA,1.412215,USD,Azure Retail Prices API,2025-12-18T04:45:55.210358 +AZURE,switzerlandnorth,Standard_D32d_v4,reserved_3y,NA,0.909551,USD,Azure Retail Prices API,2025-12-18T04:45:55.210361 +AZURE,switzerlandnorth,Standard_D32d_v4,spot,NA,0.465316,USD,Azure Retail Prices API,2025-12-18T04:45:53.620734 +AZURE,switzerlandnorth,Standard_D32ds_v4,on_demand,NA,2.3936,USD,Azure Retail Prices API,2025-12-18T04:45:53.618553 +AZURE,switzerlandnorth,Standard_D32ds_v4,reserved_1y,NA,1.412215,USD,Azure Retail Prices API,2025-12-18T04:45:55.209071 +AZURE,switzerlandnorth,Standard_D32ds_v4,reserved_3y,NA,0.909551,USD,Azure Retail Prices API,2025-12-18T04:45:55.209074 +AZURE,switzerlandnorth,Standard_D32ds_v4,spot,NA,0.465316,USD,Azure Retail Prices API,2025-12-18T04:45:53.618573 +AZURE,switzerlandnorth,Standard_D32ds_v5,on_demand,NA,2.394,USD,Azure Retail Prices API,2025-12-18T04:45:53.620113 +AZURE,switzerlandnorth,Standard_D32ds_v5,reserved_1y,NA,1.412215,USD,Azure Retail Prices API,2025-12-18T04:45:55.209966 +AZURE,switzerlandnorth,Standard_D32ds_v5,reserved_3y,NA,0.909551,USD,Azure Retail Prices API,2025-12-18T04:45:55.209969 +AZURE,switzerlandnorth,Standard_D32ds_v5,spot,NA,0.484546,USD,Azure Retail Prices API,2025-12-18T04:45:53.620091 +AZURE,switzerlandnorth,Standard_D32ds_v6,on_demand,NA,2.651,USD,Azure Retail Prices API,2025-12-18T04:45:53.620130 +AZURE,switzerlandnorth,Standard_D32ds_v6,reserved_1y,NA,1.643721,USD,Azure Retail Prices API,2025-12-18T04:45:55.209972 +AZURE,switzerlandnorth,Standard_D32ds_v6,reserved_3y,NA,1.03398,USD,Azure Retail Prices API,2025-12-18T04:45:55.209976 +AZURE,switzerlandnorth,Standard_D32ds_v6,spot,NA,0.489905,USD,Azure Retail Prices API,2025-12-18T04:45:53.619014 +AZURE,switzerlandnorth,Standard_D32pds_v6,on_demand,NA,2.291,USD,Azure Retail Prices API,2025-12-18T04:45:53.619687 +AZURE,switzerlandnorth,Standard_D32pds_v6,reserved_1y,NA,1.351826,USD,Azure Retail Prices API,2025-12-18T04:45:55.209689 +AZURE,switzerlandnorth,Standard_D32pds_v6,reserved_3y,NA,0.870662,USD,Azure Retail Prices API,2025-12-18T04:45:55.209692 +AZURE,switzerlandnorth,Standard_D32pds_v6,spot,NA,0.444454,USD,Azure Retail Prices API,2025-12-18T04:45:53.619349 +AZURE,switzerlandnorth,Standard_D32ps_v6,on_demand,NA,1.75,USD,Azure Retail Prices API,2025-12-18T04:45:53.620860 +AZURE,switzerlandnorth,Standard_D32ps_v6,reserved_1y,NA,1.032763,USD,Azure Retail Prices API,2025-12-18T04:45:55.210341 +AZURE,switzerlandnorth,Standard_D32ps_v6,reserved_3y,NA,0.665145,USD,Azure Retail Prices API,2025-12-18T04:45:55.210344 +AZURE,switzerlandnorth,Standard_D32ps_v6,spot,NA,0.3395,USD,Azure Retail Prices API,2025-12-18T04:45:53.620169 +AZURE,switzerlandnorth,Standard_D32s_v3,on_demand,NA,2.112,USD,Azure Retail Prices API,2025-12-18T04:45:53.619009 +AZURE,switzerlandnorth,Standard_D32s_v3,reserved_1y,NA,1.328539,USD,Azure Retail Prices API,2025-12-18T04:45:55.209352 +AZURE,switzerlandnorth,Standard_D32s_v3,reserved_3y,NA,0.864003,USD,Azure Retail Prices API,2025-12-18T04:45:55.209355 +AZURE,switzerlandnorth,Standard_D32s_v3,spot,NA,0.405504,USD,Azure Retail Prices API,2025-12-18T04:45:53.618599 +AZURE,switzerlandnorth,Standard_D32s_v4,on_demand,NA,2.024,USD,Azure Retail Prices API,2025-12-18T04:45:53.619253 +AZURE,switzerlandnorth,Standard_D32s_v4,reserved_1y,NA,1.194178,USD,Azure Retail Prices API,2025-12-18T04:45:55.209442 +AZURE,switzerlandnorth,Standard_D32s_v4,reserved_3y,NA,0.76914,USD,Azure Retail Prices API,2025-12-18T04:45:55.209445 +AZURE,switzerlandnorth,Standard_D32s_v4,spot,NA,0.37525,USD,Azure Retail Prices API,2025-12-18T04:45:53.618999 +AZURE,switzerlandnorth,Standard_D32s_v5,on_demand,NA,2.024,USD,Azure Retail Prices API,2025-12-18T04:45:53.618326 +AZURE,switzerlandnorth,Standard_D32s_v5,reserved_1y,NA,1.194178,USD,Azure Retail Prices API,2025-12-18T04:45:55.208935 +AZURE,switzerlandnorth,Standard_D32s_v5,reserved_3y,NA,0.748896,USD,Azure Retail Prices API,2025-12-18T04:45:55.208938 +AZURE,switzerlandnorth,Standard_D32s_v5,spot,NA,0.375047,USD,Azure Retail Prices API,2025-12-18T04:45:53.620207 +AZURE,switzerlandnorth,Standard_D3_v2,on_demand,NA,0.3223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485372 +AZURE,switzerlandnorth,Standard_D3_v2,reserved_1y,NA,0.19338,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485385 +AZURE,switzerlandnorth,Standard_D3_v2,reserved_3y,NA,0.12892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485391 +AZURE,switzerlandnorth,Standard_D3_v2,spot,NA,0.09669,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485379 +AZURE,switzerlandnorth,Standard_D48a_v4,on_demand,NA,3.295,USD,Azure Retail Prices API,2025-12-18T04:45:53.619981 +AZURE,switzerlandnorth,Standard_D48a_v4,reserved_1y,NA,1.943836,USD,Azure Retail Prices API,2025-12-18T04:45:55.209886 +AZURE,switzerlandnorth,Standard_D48a_v4,reserved_3y,NA,1.251979,USD,Azure Retail Prices API,2025-12-18T04:45:55.209889 +AZURE,switzerlandnorth,Standard_D48a_v4,spot,NA,0.608916,USD,Azure Retail Prices API,2025-12-18T04:45:53.620450 +AZURE,switzerlandnorth,Standard_D48ads_v5,on_demand,NA,5.743,USD,Azure Retail Prices API,2025-12-18T04:45:53.618078 +AZURE,switzerlandnorth,Standard_D48ads_v5,reserved_1y,NA,2.085616,USD,Azure Retail Prices API,2025-12-18T04:45:55.210099 +AZURE,switzerlandnorth,Standard_D48ads_v5,reserved_3y,NA,1.343303,USD,Azure Retail Prices API,2025-12-18T04:45:55.210102 +AZURE,switzerlandnorth,Standard_D48ads_v5,spot,NA,0.653268,USD,Azure Retail Prices API,2025-12-18T04:45:53.619948 +AZURE,switzerlandnorth,Standard_D48ads_v6,on_demand,NA,3.917,USD,Azure Retail Prices API,2025-12-18T04:45:53.619275 +AZURE,switzerlandnorth,Standard_D48ads_v6,reserved_1y,NA,2.310959,USD,Azure Retail Prices API,2025-12-18T04:45:55.209454 +AZURE,switzerlandnorth,Standard_D48ads_v6,reserved_3y,NA,1.488394,USD,Azure Retail Prices API,2025-12-18T04:45:55.209457 +AZURE,switzerlandnorth,Standard_D48ads_v6,spot,NA,0.723862,USD,Azure Retail Prices API,2025-12-18T04:45:53.620776 +AZURE,switzerlandnorth,Standard_D48as_v4,on_demand,NA,3.295,USD,Azure Retail Prices API,2025-12-18T04:45:53.619213 +AZURE,switzerlandnorth,Standard_D48as_v4,reserved_1y,NA,1.943836,USD,Azure Retail Prices API,2025-12-18T04:45:55.209426 +AZURE,switzerlandnorth,Standard_D48as_v4,reserved_3y,NA,1.251979,USD,Azure Retail Prices API,2025-12-18T04:45:55.209428 +AZURE,switzerlandnorth,Standard_D48as_v4,spot,NA,0.608916,USD,Azure Retail Prices API,2025-12-18T04:45:53.618452 +AZURE,switzerlandnorth,Standard_D48as_v5,on_demand,NA,2.952,USD,Azure Retail Prices API,2025-12-18T04:45:53.618840 +AZURE,switzerlandnorth,Standard_D48as_v5,reserved_1y,NA,1.741438,USD,Azure Retail Prices API,2025-12-18T04:45:55.209223 +AZURE,switzerlandnorth,Standard_D48as_v5,reserved_3y,NA,1.121575,USD,Azure Retail Prices API,2025-12-18T04:45:55.209226 +AZURE,switzerlandnorth,Standard_D48as_v5,spot,NA,0.54553,USD,Azure Retail Prices API,2025-12-18T04:45:53.621004 +AZURE,switzerlandnorth,Standard_D48d_v4,on_demand,NA,3.5904,USD,Azure Retail Prices API,2025-12-18T04:45:53.619148 +AZURE,switzerlandnorth,Standard_D48d_v4,reserved_1y,NA,2.118379,USD,Azure Retail Prices API,2025-12-18T04:45:55.209396 +AZURE,switzerlandnorth,Standard_D48d_v4,reserved_3y,NA,1.364346,USD,Azure Retail Prices API,2025-12-18T04:45:55.209399 +AZURE,switzerlandnorth,Standard_D48d_v4,spot,NA,0.697974,USD,Azure Retail Prices API,2025-12-18T04:45:53.620912 +AZURE,switzerlandnorth,Standard_D48ds_v4,on_demand,NA,3.5904,USD,Azure Retail Prices API,2025-12-18T04:45:53.620152 +AZURE,switzerlandnorth,Standard_D48ds_v4,reserved_1y,NA,2.118379,USD,Azure Retail Prices API,2025-12-18T04:45:55.209985 +AZURE,switzerlandnorth,Standard_D48ds_v4,reserved_3y,NA,1.364346,USD,Azure Retail Prices API,2025-12-18T04:45:55.209987 +AZURE,switzerlandnorth,Standard_D48ds_v4,spot,NA,0.697974,USD,Azure Retail Prices API,2025-12-18T04:45:53.618517 +AZURE,switzerlandnorth,Standard_D48ds_v5,on_demand,NA,3.59,USD,Azure Retail Prices API,2025-12-18T04:45:53.619716 +AZURE,switzerlandnorth,Standard_D48ds_v5,reserved_1y,NA,2.118379,USD,Azure Retail Prices API,2025-12-18T04:45:55.209706 +AZURE,switzerlandnorth,Standard_D48ds_v5,reserved_3y,NA,1.364346,USD,Azure Retail Prices API,2025-12-18T04:45:55.209709 +AZURE,switzerlandnorth,Standard_D48ds_v5,spot,NA,0.726616,USD,Azure Retail Prices API,2025-12-18T04:45:53.620782 +AZURE,switzerlandnorth,Standard_D48ds_v6,on_demand,NA,3.977,USD,Azure Retail Prices API,2025-12-18T04:45:53.619316 +AZURE,switzerlandnorth,Standard_D48ds_v6,reserved_1y,NA,2.465639,USD,Azure Retail Prices API,2025-12-18T04:45:55.209478 +AZURE,switzerlandnorth,Standard_D48ds_v6,reserved_3y,NA,1.550951,USD,Azure Retail Prices API,2025-12-18T04:45:55.209483 +AZURE,switzerlandnorth,Standard_D48ds_v6,spot,NA,0.73495,USD,Azure Retail Prices API,2025-12-18T04:45:53.619567 +AZURE,switzerlandnorth,Standard_D48pds_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:45:53.620086 +AZURE,switzerlandnorth,Standard_D48pds_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:45:55.209948 +AZURE,switzerlandnorth,Standard_D48pds_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:45:55.209951 +AZURE,switzerlandnorth,Standard_D48pds_v6,spot,NA,0.666778,USD,Azure Retail Prices API,2025-12-18T04:45:53.620174 +AZURE,switzerlandnorth,Standard_D48ps_v6,on_demand,NA,2.626,USD,Azure Retail Prices API,2025-12-18T04:45:53.620984 +AZURE,switzerlandnorth,Standard_D48ps_v6,reserved_1y,NA,1.549087,USD,Azure Retail Prices API,2025-12-18T04:45:55.210443 +AZURE,switzerlandnorth,Standard_D48ps_v6,reserved_3y,NA,0.997717,USD,Azure Retail Prices API,2025-12-18T04:45:55.210446 +AZURE,switzerlandnorth,Standard_D48ps_v6,spot,NA,0.509444,USD,Azure Retail Prices API,2025-12-18T04:45:53.617999 +AZURE,switzerlandnorth,Standard_D48s_v4,on_demand,NA,3.036,USD,Azure Retail Prices API,2025-12-18T04:45:53.617890 +AZURE,switzerlandnorth,Standard_D48s_v4,reserved_1y,NA,1.79121,USD,Azure Retail Prices API,2025-12-18T04:45:55.208681 +AZURE,switzerlandnorth,Standard_D48s_v4,reserved_3y,NA,1.153691,USD,Azure Retail Prices API,2025-12-18T04:45:55.208684 +AZURE,switzerlandnorth,Standard_D48s_v4,spot,NA,0.562874,USD,Azure Retail Prices API,2025-12-18T04:45:53.620941 +AZURE,switzerlandnorth,Standard_D48s_v5,on_demand,NA,3.036,USD,Azure Retail Prices API,2025-12-18T04:45:53.618569 +AZURE,switzerlandnorth,Standard_D48s_v5,reserved_1y,NA,1.79121,USD,Azure Retail Prices API,2025-12-18T04:45:55.209083 +AZURE,switzerlandnorth,Standard_D48s_v5,reserved_3y,NA,1.123326,USD,Azure Retail Prices API,2025-12-18T04:45:55.209086 +AZURE,switzerlandnorth,Standard_D48s_v5,spot,NA,0.562571,USD,Azure Retail Prices API,2025-12-18T04:45:53.618656 +AZURE,switzerlandnorth,Standard_D4_v2,on_demand,NA,0.6435,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486240 +AZURE,switzerlandnorth,Standard_D4_v2,reserved_1y,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486256 +AZURE,switzerlandnorth,Standard_D4_v2,reserved_3y,NA,0.2574,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486262 +AZURE,switzerlandnorth,Standard_D4_v2,spot,NA,0.19305,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486247 +AZURE,switzerlandnorth,Standard_D4a_v4,on_demand,NA,0.275,USD,Azure Retail Prices API,2025-12-18T04:45:53.620976 +AZURE,switzerlandnorth,Standard_D4a_v4,reserved_1y,NA,0.161986,USD,Azure Retail Prices API,2025-12-18T04:45:55.210432 +AZURE,switzerlandnorth,Standard_D4a_v4,reserved_3y,NA,0.104338,USD,Azure Retail Prices API,2025-12-18T04:45:55.210435 +AZURE,switzerlandnorth,Standard_D4a_v4,spot,NA,0.05082,USD,Azure Retail Prices API,2025-12-18T04:45:53.618609 +AZURE,switzerlandnorth,Standard_D4ads_v5,on_demand,NA,0.479,USD,Azure Retail Prices API,2025-12-18T04:45:53.620213 +AZURE,switzerlandnorth,Standard_D4ads_v5,reserved_1y,NA,0.173858,USD,Azure Retail Prices API,2025-12-18T04:45:55.210244 +AZURE,switzerlandnorth,Standard_D4ads_v5,reserved_3y,NA,0.111948,USD,Azure Retail Prices API,2025-12-18T04:45:55.210249 +AZURE,switzerlandnorth,Standard_D4ads_v5,spot,NA,0.054516,USD,Azure Retail Prices API,2025-12-18T04:45:53.619698 +AZURE,switzerlandnorth,Standard_D4ads_v6,on_demand,NA,0.326,USD,Azure Retail Prices API,2025-12-18T04:45:53.618146 +AZURE,switzerlandnorth,Standard_D4ads_v6,reserved_1y,NA,0.19258,USD,Azure Retail Prices API,2025-12-18T04:45:55.208820 +AZURE,switzerlandnorth,Standard_D4ads_v6,reserved_3y,NA,0.124049,USD,Azure Retail Prices API,2025-12-18T04:45:55.208823 +AZURE,switzerlandnorth,Standard_D4ads_v6,spot,NA,0.060245,USD,Azure Retail Prices API,2025-12-18T04:45:53.620141 +AZURE,switzerlandnorth,Standard_D4as_v5,on_demand,NA,0.43,USD,Azure Retail Prices API,2025-12-18T04:45:53.619411 +AZURE,switzerlandnorth,Standard_D4as_v5,reserved_1y,NA,0.145091,USD,Azure Retail Prices API,2025-12-18T04:45:55.210234 +AZURE,switzerlandnorth,Standard_D4as_v5,reserved_3y,NA,0.093455,USD,Azure Retail Prices API,2025-12-18T04:45:55.210238 +AZURE,switzerlandnorth,Standard_D4as_v5,spot,NA,0.045461,USD,Azure Retail Prices API,2025-12-18T04:45:53.620790 +AZURE,switzerlandnorth,Standard_D4d_v4,on_demand,NA,0.2992,USD,Azure Retail Prices API,2025-12-18T04:45:53.619959 +AZURE,switzerlandnorth,Standard_D4d_v4,reserved_1y,NA,0.176484,USD,Azure Retail Prices API,2025-12-18T04:45:55.209880 +AZURE,switzerlandnorth,Standard_D4d_v4,reserved_3y,NA,0.113699,USD,Azure Retail Prices API,2025-12-18T04:45:55.209883 +AZURE,switzerlandnorth,Standard_D4d_v4,spot,NA,0.058164,USD,Azure Retail Prices API,2025-12-18T04:45:53.618528 +AZURE,switzerlandnorth,Standard_D4ds_v4,on_demand,NA,0.2992,USD,Azure Retail Prices API,2025-12-18T04:45:53.619461 +AZURE,switzerlandnorth,Standard_D4ds_v4,reserved_1y,NA,0.176484,USD,Azure Retail Prices API,2025-12-18T04:45:55.209568 +AZURE,switzerlandnorth,Standard_D4ds_v4,reserved_3y,NA,0.113699,USD,Azure Retail Prices API,2025-12-18T04:45:55.209570 +AZURE,switzerlandnorth,Standard_D4ds_v4,spot,NA,0.058164,USD,Azure Retail Prices API,2025-12-18T04:45:53.619904 +AZURE,switzerlandnorth,Standard_D4ds_v5,on_demand,NA,0.299,USD,Azure Retail Prices API,2025-12-18T04:45:53.619915 +AZURE,switzerlandnorth,Standard_D4ds_v5,reserved_1y,NA,0.176484,USD,Azure Retail Prices API,2025-12-18T04:45:55.209826 +AZURE,switzerlandnorth,Standard_D4ds_v5,reserved_3y,NA,0.113699,USD,Azure Retail Prices API,2025-12-18T04:45:55.209831 +AZURE,switzerlandnorth,Standard_D4ds_v5,spot,NA,0.060518,USD,Azure Retail Prices API,2025-12-18T04:45:53.619019 +AZURE,switzerlandnorth,Standard_D4ds_v6,on_demand,NA,0.331,USD,Azure Retail Prices API,2025-12-18T04:45:53.619377 +AZURE,switzerlandnorth,Standard_D4ds_v6,reserved_1y,NA,0.205479,USD,Azure Retail Prices API,2025-12-18T04:45:55.209521 +AZURE,switzerlandnorth,Standard_D4ds_v6,reserved_3y,NA,0.129262,USD,Azure Retail Prices API,2025-12-18T04:45:55.209524 +AZURE,switzerlandnorth,Standard_D4ds_v6,spot,NA,0.061169,USD,Azure Retail Prices API,2025-12-18T04:45:53.619871 +AZURE,switzerlandnorth,Standard_D4pds_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:45:53.620961 +AZURE,switzerlandnorth,Standard_D4pds_v6,reserved_1y,NA,0.16895,USD,Azure Retail Prices API,2025-12-18T04:45:55.210415 +AZURE,switzerlandnorth,Standard_D4pds_v6,reserved_3y,NA,0.108828,USD,Azure Retail Prices API,2025-12-18T04:45:55.210418 +AZURE,switzerlandnorth,Standard_D4pds_v6,spot,NA,0.055484,USD,Azure Retail Prices API,2025-12-18T04:45:53.619693 +AZURE,switzerlandnorth,Standard_D4ps_v6,on_demand,NA,0.219,USD,Azure Retail Prices API,2025-12-18T04:45:53.618259 +AZURE,switzerlandnorth,Standard_D4ps_v6,reserved_1y,NA,0.12911,USD,Azure Retail Prices API,2025-12-18T04:45:55.208899 +AZURE,switzerlandnorth,Standard_D4ps_v6,reserved_3y,NA,0.083143,USD,Azure Retail Prices API,2025-12-18T04:45:55.208902 +AZURE,switzerlandnorth,Standard_D4ps_v6,spot,NA,0.042486,USD,Azure Retail Prices API,2025-12-18T04:45:53.620399 +AZURE,switzerlandnorth,Standard_D4s_v3,on_demand,NA,0.264,USD,Azure Retail Prices API,2025-12-18T04:45:53.619383 +AZURE,switzerlandnorth,Standard_D4s_v3,reserved_1y,NA,0.166096,USD,Azure Retail Prices API,2025-12-18T04:45:55.209526 +AZURE,switzerlandnorth,Standard_D4s_v3,reserved_3y,NA,0.107991,USD,Azure Retail Prices API,2025-12-18T04:45:55.209529 +AZURE,switzerlandnorth,Standard_D4s_v3,spot,NA,0.050688,USD,Azure Retail Prices API,2025-12-18T04:45:53.620069 +AZURE,switzerlandnorth,Standard_D4s_v4,on_demand,NA,0.253,USD,Azure Retail Prices API,2025-12-18T04:45:53.618773 +AZURE,switzerlandnorth,Standard_D4s_v4,reserved_1y,NA,0.149201,USD,Azure Retail Prices API,2025-12-18T04:45:55.209206 +AZURE,switzerlandnorth,Standard_D4s_v4,reserved_3y,NA,0.096119,USD,Azure Retail Prices API,2025-12-18T04:45:55.209209 +AZURE,switzerlandnorth,Standard_D4s_v4,spot,NA,0.046906,USD,Azure Retail Prices API,2025-12-18T04:45:53.618767 +AZURE,switzerlandnorth,Standard_D4s_v5,on_demand,NA,0.253,USD,Azure Retail Prices API,2025-12-18T04:45:53.618337 +AZURE,switzerlandnorth,Standard_D4s_v5,reserved_1y,NA,0.149315,USD,Azure Retail Prices API,2025-12-18T04:45:55.208947 +AZURE,switzerlandnorth,Standard_D4s_v5,reserved_3y,NA,0.093607,USD,Azure Retail Prices API,2025-12-18T04:45:55.208950 +AZURE,switzerlandnorth,Standard_D4s_v5,spot,NA,0.046881,USD,Azure Retail Prices API,2025-12-18T04:45:53.619169 +AZURE,switzerlandnorth,Standard_D5_v2,on_demand,NA,1.287,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487368 +AZURE,switzerlandnorth,Standard_D5_v2,reserved_1y,NA,0.7722,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487382 +AZURE,switzerlandnorth,Standard_D5_v2,reserved_3y,NA,0.5148,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487390 +AZURE,switzerlandnorth,Standard_D5_v2,spot,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487375 +AZURE,switzerlandnorth,Standard_D64_v3,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:45:53.618379 +AZURE,switzerlandnorth,Standard_D64_v3,reserved_1y,NA,2.656963,USD,Azure Retail Prices API,2025-12-18T04:45:55.208970 +AZURE,switzerlandnorth,Standard_D64_v3,reserved_3y,NA,1.728006,USD,Azure Retail Prices API,2025-12-18T04:45:55.208972 +AZURE,switzerlandnorth,Standard_D64_v3,spot,NA,0.811008,USD,Azure Retail Prices API,2025-12-18T04:45:53.618502 +AZURE,switzerlandnorth,Standard_D64a_v4,on_demand,NA,4.393,USD,Azure Retail Prices API,2025-12-18T04:45:53.619343 +AZURE,switzerlandnorth,Standard_D64a_v4,reserved_1y,NA,2.591895,USD,Azure Retail Prices API,2025-12-18T04:45:55.209504 +AZURE,switzerlandnorth,Standard_D64a_v4,reserved_3y,NA,1.66933,USD,Azure Retail Prices API,2025-12-18T04:45:55.209509 +AZURE,switzerlandnorth,Standard_D64a_v4,spot,NA,0.811826,USD,Azure Retail Prices API,2025-12-18T04:45:53.618872 +AZURE,switzerlandnorth,Standard_D64ads_v5,on_demand,NA,7.657,USD,Azure Retail Prices API,2025-12-18T04:45:53.619964 +AZURE,switzerlandnorth,Standard_D64ads_v5,reserved_1y,NA,2.780822,USD,Azure Retail Prices API,2025-12-18T04:45:55.209912 +AZURE,switzerlandnorth,Standard_D64ads_v5,reserved_3y,NA,1.791058,USD,Azure Retail Prices API,2025-12-18T04:45:55.209915 +AZURE,switzerlandnorth,Standard_D64ads_v5,spot,NA,0.870962,USD,Azure Retail Prices API,2025-12-18T04:45:53.619174 +AZURE,switzerlandnorth,Standard_D64ads_v6,on_demand,NA,5.222,USD,Azure Retail Prices API,2025-12-18T04:45:53.618512 +AZURE,switzerlandnorth,Standard_D64ads_v6,reserved_1y,NA,3.081164,USD,Azure Retail Prices API,2025-12-18T04:45:55.209047 +AZURE,switzerlandnorth,Standard_D64ads_v6,reserved_3y,NA,1.984513,USD,Azure Retail Prices API,2025-12-18T04:45:55.209050 +AZURE,switzerlandnorth,Standard_D64ads_v6,spot,NA,0.965026,USD,Azure Retail Prices API,2025-12-18T04:45:53.618593 +AZURE,switzerlandnorth,Standard_D64as_v4,on_demand,NA,4.393,USD,Azure Retail Prices API,2025-12-18T04:45:53.618523 +AZURE,switzerlandnorth,Standard_D64as_v4,reserved_1y,NA,2.591895,USD,Azure Retail Prices API,2025-12-18T04:45:55.209053 +AZURE,switzerlandnorth,Standard_D64as_v4,reserved_3y,NA,1.66933,USD,Azure Retail Prices API,2025-12-18T04:45:55.209056 +AZURE,switzerlandnorth,Standard_D64as_v4,spot,NA,0.811826,USD,Azure Retail Prices API,2025-12-18T04:45:53.617908 +AZURE,switzerlandnorth,Standard_D64as_v5,on_demand,NA,6.879,USD,Azure Retail Prices API,2025-12-18T04:45:53.617969 +AZURE,switzerlandnorth,Standard_D64as_v5,reserved_1y,NA,2.321918,USD,Azure Retail Prices API,2025-12-18T04:45:55.209543 +AZURE,switzerlandnorth,Standard_D64as_v5,reserved_3y,NA,1.495434,USD,Azure Retail Prices API,2025-12-18T04:45:55.209545 +AZURE,switzerlandnorth,Standard_D64as_v5,spot,NA,0.727188,USD,Azure Retail Prices API,2025-12-18T04:45:53.618626 +AZURE,switzerlandnorth,Standard_D64d_v4,on_demand,NA,4.7872,USD,Azure Retail Prices API,2025-12-18T04:45:53.620835 +AZURE,switzerlandnorth,Standard_D64d_v4,reserved_1y,NA,2.824429,USD,Azure Retail Prices API,2025-12-18T04:45:55.210329 +AZURE,switzerlandnorth,Standard_D64d_v4,reserved_3y,NA,1.81914,USD,Azure Retail Prices API,2025-12-18T04:45:55.210332 +AZURE,switzerlandnorth,Standard_D64d_v4,spot,NA,0.930632,USD,Azure Retail Prices API,2025-12-18T04:45:53.620555 +AZURE,switzerlandnorth,Standard_D64ds_v4,on_demand,NA,4.7872,USD,Azure Retail Prices API,2025-12-18T04:45:53.618909 +AZURE,switzerlandnorth,Standard_D64ds_v4,reserved_1y,NA,2.824429,USD,Azure Retail Prices API,2025-12-18T04:45:55.209253 +AZURE,switzerlandnorth,Standard_D64ds_v4,reserved_3y,NA,1.81914,USD,Azure Retail Prices API,2025-12-18T04:45:55.209256 +AZURE,switzerlandnorth,Standard_D64ds_v4,spot,NA,0.930632,USD,Azure Retail Prices API,2025-12-18T04:45:53.618714 +AZURE,switzerlandnorth,Standard_D64ds_v5,on_demand,NA,4.787,USD,Azure Retail Prices API,2025-12-18T04:45:53.619620 +AZURE,switzerlandnorth,Standard_D64ds_v5,reserved_1y,NA,2.824429,USD,Azure Retail Prices API,2025-12-18T04:45:55.209648 +AZURE,switzerlandnorth,Standard_D64ds_v5,reserved_3y,NA,1.81914,USD,Azure Retail Prices API,2025-12-18T04:45:55.209651 +AZURE,switzerlandnorth,Standard_D64ds_v5,spot,NA,0.968889,USD,Azure Retail Prices API,2025-12-18T04:45:53.618941 +AZURE,switzerlandnorth,Standard_D64ds_v6,on_demand,NA,5.302,USD,Azure Retail Prices API,2025-12-18T04:45:53.617974 +AZURE,switzerlandnorth,Standard_D64ds_v6,reserved_1y,NA,3.287443,USD,Azure Retail Prices API,2025-12-18T04:45:55.208706 +AZURE,switzerlandnorth,Standard_D64ds_v6,reserved_3y,NA,2.067922,USD,Azure Retail Prices API,2025-12-18T04:45:55.208709 +AZURE,switzerlandnorth,Standard_D64ds_v6,spot,NA,0.97981,USD,Azure Retail Prices API,2025-12-18T04:45:53.620473 +AZURE,switzerlandnorth,Standard_D64pds_v6,on_demand,NA,4.582,USD,Azure Retail Prices API,2025-12-18T04:45:53.619085 +AZURE,switzerlandnorth,Standard_D64pds_v6,reserved_1y,NA,2.703653,USD,Azure Retail Prices API,2025-12-18T04:45:55.209368 +AZURE,switzerlandnorth,Standard_D64pds_v6,reserved_3y,NA,1.741324,USD,Azure Retail Prices API,2025-12-18T04:45:55.209371 +AZURE,switzerlandnorth,Standard_D64pds_v6,spot,NA,0.888908,USD,Azure Retail Prices API,2025-12-18T04:45:53.620808 +AZURE,switzerlandnorth,Standard_D64ps_v6,on_demand,NA,3.501,USD,Azure Retail Prices API,2025-12-18T04:45:53.617884 +AZURE,switzerlandnorth,Standard_D64ps_v6,reserved_1y,NA,2.065525,USD,Azure Retail Prices API,2025-12-18T04:45:55.208675 +AZURE,switzerlandnorth,Standard_D64ps_v6,reserved_3y,NA,1.330289,USD,Azure Retail Prices API,2025-12-18T04:45:55.208678 +AZURE,switzerlandnorth,Standard_D64ps_v6,spot,NA,0.679194,USD,Azure Retail Prices API,2025-12-18T04:45:53.620202 +AZURE,switzerlandnorth,Standard_D64s_v3,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:45:53.620645 +AZURE,switzerlandnorth,Standard_D64s_v3,reserved_1y,NA,2.656963,USD,Azure Retail Prices API,2025-12-18T04:45:55.210195 +AZURE,switzerlandnorth,Standard_D64s_v3,reserved_3y,NA,1.728006,USD,Azure Retail Prices API,2025-12-18T04:45:55.210198 +AZURE,switzerlandnorth,Standard_D64s_v3,spot,NA,0.811008,USD,Azure Retail Prices API,2025-12-18T04:45:53.619291 +AZURE,switzerlandnorth,Standard_D64s_v4,on_demand,NA,4.048,USD,Azure Retail Prices API,2025-12-18T04:45:53.620978 +AZURE,switzerlandnorth,Standard_D64s_v4,reserved_1y,NA,2.388356,USD,Azure Retail Prices API,2025-12-18T04:45:55.210437 +AZURE,switzerlandnorth,Standard_D64s_v4,reserved_3y,NA,1.538242,USD,Azure Retail Prices API,2025-12-18T04:45:55.210440 +AZURE,switzerlandnorth,Standard_D64s_v4,spot,NA,0.750499,USD,Azure Retail Prices API,2025-12-18T04:45:53.620803 +AZURE,switzerlandnorth,Standard_D64s_v5,on_demand,NA,4.048,USD,Azure Retail Prices API,2025-12-18T04:45:53.618139 +AZURE,switzerlandnorth,Standard_D64s_v5,reserved_1y,NA,2.388356,USD,Azure Retail Prices API,2025-12-18T04:45:55.208813 +AZURE,switzerlandnorth,Standard_D64s_v5,reserved_3y,NA,1.497755,USD,Azure Retail Prices API,2025-12-18T04:45:55.208816 +AZURE,switzerlandnorth,Standard_D64s_v5,spot,NA,0.750094,USD,Azure Retail Prices API,2025-12-18T04:45:53.621001 +AZURE,switzerlandnorth,Standard_D8_v3,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:45:53.620243 +AZURE,switzerlandnorth,Standard_D8_v3,reserved_1y,NA,0.332078,USD,Azure Retail Prices API,2025-12-18T04:45:55.210025 +AZURE,switzerlandnorth,Standard_D8_v3,reserved_3y,NA,0.215982,USD,Azure Retail Prices API,2025-12-18T04:45:55.210028 +AZURE,switzerlandnorth,Standard_D8_v3,spot,NA,0.101376,USD,Azure Retail Prices API,2025-12-18T04:45:53.620601 +AZURE,switzerlandnorth,Standard_D8a_v4,on_demand,NA,0.549,USD,Azure Retail Prices API,2025-12-18T04:45:53.619533 +AZURE,switzerlandnorth,Standard_D8a_v4,reserved_1y,NA,0.323973,USD,Azure Retail Prices API,2025-12-18T04:45:55.209614 +AZURE,switzerlandnorth,Standard_D8a_v4,reserved_3y,NA,0.208676,USD,Azure Retail Prices API,2025-12-18T04:45:55.209617 +AZURE,switzerlandnorth,Standard_D8a_v4,spot,NA,0.101455,USD,Azure Retail Prices API,2025-12-18T04:45:53.618133 +AZURE,switzerlandnorth,Standard_D8ads_v5,on_demand,NA,0.957,USD,Azure Retail Prices API,2025-12-18T04:45:53.618946 +AZURE,switzerlandnorth,Standard_D8ads_v5,reserved_1y,NA,0.347603,USD,Azure Retail Prices API,2025-12-18T04:45:55.209642 +AZURE,switzerlandnorth,Standard_D8ads_v5,reserved_3y,NA,0.223896,USD,Azure Retail Prices API,2025-12-18T04:45:55.209645 +AZURE,switzerlandnorth,Standard_D8ads_v5,spot,NA,0.108847,USD,Azure Retail Prices API,2025-12-18T04:45:53.619992 +AZURE,switzerlandnorth,Standard_D8ads_v6,on_demand,NA,0.653,USD,Azure Retail Prices API,2025-12-18T04:45:53.619163 +AZURE,switzerlandnorth,Standard_D8ads_v6,reserved_1y,NA,0.38516,USD,Azure Retail Prices API,2025-12-18T04:45:55.209403 +AZURE,switzerlandnorth,Standard_D8ads_v6,reserved_3y,NA,0.248059,USD,Azure Retail Prices API,2025-12-18T04:45:55.209405 +AZURE,switzerlandnorth,Standard_D8ads_v6,spot,NA,0.120674,USD,Azure Retail Prices API,2025-12-18T04:45:53.619366 +AZURE,switzerlandnorth,Standard_D8as_v4,on_demand,NA,0.549,USD,Azure Retail Prices API,2025-12-18T04:45:53.620008 +AZURE,switzerlandnorth,Standard_D8as_v4,reserved_1y,NA,0.323973,USD,Azure Retail Prices API,2025-12-18T04:45:55.209900 +AZURE,switzerlandnorth,Standard_D8as_v4,reserved_3y,NA,0.208676,USD,Azure Retail Prices API,2025-12-18T04:45:55.209903 +AZURE,switzerlandnorth,Standard_D8as_v4,spot,NA,0.101455,USD,Azure Retail Prices API,2025-12-18T04:45:53.620770 +AZURE,switzerlandnorth,Standard_D8as_v5,on_demand,NA,0.86,USD,Azure Retail Prices API,2025-12-18T04:45:53.617914 +AZURE,switzerlandnorth,Standard_D8as_v5,reserved_1y,NA,0.290183,USD,Azure Retail Prices API,2025-12-18T04:45:55.210387 +AZURE,switzerlandnorth,Standard_D8as_v5,reserved_3y,NA,0.186948,USD,Azure Retail Prices API,2025-12-18T04:45:55.210390 +AZURE,switzerlandnorth,Standard_D8as_v5,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:45:53.620333 +AZURE,switzerlandnorth,Standard_D8d_v4,on_demand,NA,0.5984,USD,Azure Retail Prices API,2025-12-18T04:45:53.619104 +AZURE,switzerlandnorth,Standard_D8d_v4,reserved_1y,NA,0.353082,USD,Azure Retail Prices API,2025-12-18T04:45:55.209380 +AZURE,switzerlandnorth,Standard_D8d_v4,reserved_3y,NA,0.227397,USD,Azure Retail Prices API,2025-12-18T04:45:55.209383 +AZURE,switzerlandnorth,Standard_D8d_v4,spot,NA,0.116329,USD,Azure Retail Prices API,2025-12-18T04:45:53.619898 +AZURE,switzerlandnorth,Standard_D8ds_v4,on_demand,NA,0.5984,USD,Azure Retail Prices API,2025-12-18T04:45:53.620025 +AZURE,switzerlandnorth,Standard_D8ds_v4,reserved_1y,NA,0.353082,USD,Azure Retail Prices API,2025-12-18T04:45:55.209918 +AZURE,switzerlandnorth,Standard_D8ds_v4,reserved_3y,NA,0.227397,USD,Azure Retail Prices API,2025-12-18T04:45:55.209921 +AZURE,switzerlandnorth,Standard_D8ds_v4,spot,NA,0.116329,USD,Azure Retail Prices API,2025-12-18T04:45:53.618354 +AZURE,switzerlandnorth,Standard_D8ds_v5,on_demand,NA,0.598,USD,Azure Retail Prices API,2025-12-18T04:45:53.618642 +AZURE,switzerlandnorth,Standard_D8ds_v5,reserved_1y,NA,0.353082,USD,Azure Retail Prices API,2025-12-18T04:45:55.209137 +AZURE,switzerlandnorth,Standard_D8ds_v5,reserved_3y,NA,0.227397,USD,Azure Retail Prices API,2025-12-18T04:45:55.209140 +AZURE,switzerlandnorth,Standard_D8ds_v5,spot,NA,0.121035,USD,Azure Retail Prices API,2025-12-18T04:45:53.620322 +AZURE,switzerlandnorth,Standard_D8ds_v6,on_demand,NA,0.663,USD,Azure Retail Prices API,2025-12-18T04:45:53.618636 +AZURE,switzerlandnorth,Standard_D8ds_v6,reserved_1y,NA,0.410959,USD,Azure Retail Prices API,2025-12-18T04:45:55.209131 +AZURE,switzerlandnorth,Standard_D8ds_v6,reserved_3y,NA,0.258486,USD,Azure Retail Prices API,2025-12-18T04:45:55.209134 +AZURE,switzerlandnorth,Standard_D8ds_v6,spot,NA,0.122522,USD,Azure Retail Prices API,2025-12-18T04:45:53.618212 +AZURE,switzerlandnorth,Standard_D8pds_v6,on_demand,NA,0.573,USD,Azure Retail Prices API,2025-12-18T04:45:53.619888 +AZURE,switzerlandnorth,Standard_D8pds_v6,reserved_1y,NA,0.3379,USD,Azure Retail Prices API,2025-12-18T04:45:55.209808 +AZURE,switzerlandnorth,Standard_D8pds_v6,reserved_3y,NA,0.217656,USD,Azure Retail Prices API,2025-12-18T04:45:55.209811 +AZURE,switzerlandnorth,Standard_D8pds_v6,spot,NA,0.111162,USD,Azure Retail Prices API,2025-12-18T04:45:53.619388 +AZURE,switzerlandnorth,Standard_D8ps_v6,on_demand,NA,0.438,USD,Azure Retail Prices API,2025-12-18T04:45:53.620500 +AZURE,switzerlandnorth,Standard_D8ps_v6,reserved_1y,NA,0.258219,USD,Azure Retail Prices API,2025-12-18T04:45:55.210134 +AZURE,switzerlandnorth,Standard_D8ps_v6,reserved_3y,NA,0.166286,USD,Azure Retail Prices API,2025-12-18T04:45:55.210137 +AZURE,switzerlandnorth,Standard_D8ps_v6,spot,NA,0.084972,USD,Azure Retail Prices API,2025-12-18T04:45:53.619987 +AZURE,switzerlandnorth,Standard_D8s_v3,on_demand,NA,0.528,USD,Azure Retail Prices API,2025-12-18T04:45:53.618217 +AZURE,switzerlandnorth,Standard_D8s_v3,reserved_1y,NA,0.332078,USD,Azure Retail Prices API,2025-12-18T04:45:55.208869 +AZURE,switzerlandnorth,Standard_D8s_v3,reserved_3y,NA,0.215982,USD,Azure Retail Prices API,2025-12-18T04:45:55.208872 +AZURE,switzerlandnorth,Standard_D8s_v3,spot,NA,0.101376,USD,Azure Retail Prices API,2025-12-18T04:45:53.620765 +AZURE,switzerlandnorth,Standard_D8s_v4,on_demand,NA,0.506,USD,Azure Retail Prices API,2025-12-18T04:45:53.619937 +AZURE,switzerlandnorth,Standard_D8s_v4,reserved_1y,NA,0.298516,USD,Azure Retail Prices API,2025-12-18T04:45:55.209864 +AZURE,switzerlandnorth,Standard_D8s_v4,reserved_3y,NA,0.192275,USD,Azure Retail Prices API,2025-12-18T04:45:55.209867 +AZURE,switzerlandnorth,Standard_D8s_v4,spot,NA,0.093812,USD,Azure Retail Prices API,2025-12-18T04:45:53.618084 +AZURE,switzerlandnorth,Standard_D8s_v5,on_demand,NA,0.506,USD,Azure Retail Prices API,2025-12-18T04:45:53.620583 +AZURE,switzerlandnorth,Standard_D8s_v5,reserved_1y,NA,0.298516,USD,Azure Retail Prices API,2025-12-18T04:45:55.210180 +AZURE,switzerlandnorth,Standard_D8s_v5,reserved_3y,NA,0.187215,USD,Azure Retail Prices API,2025-12-18T04:45:55.210182 +AZURE,switzerlandnorth,Standard_D8s_v5,spot,NA,0.093762,USD,Azure Retail Prices API,2025-12-18T04:45:53.618115 +AZURE,switzerlandnorth,Standard_D96a_v4,on_demand,NA,6.589,USD,Azure Retail Prices API,2025-12-18T04:45:53.619610 +AZURE,switzerlandnorth,Standard_D96a_v4,reserved_1y,NA,3.887785,USD,Azure Retail Prices API,2025-12-18T04:45:55.209637 +AZURE,switzerlandnorth,Standard_D96a_v4,reserved_3y,NA,2.503995,USD,Azure Retail Prices API,2025-12-18T04:45:55.209640 +AZURE,switzerlandnorth,Standard_D96a_v4,spot,NA,1.217647,USD,Azure Retail Prices API,2025-12-18T04:45:53.620339 +AZURE,switzerlandnorth,Standard_D96ads_v5,on_demand,NA,11.486,USD,Azure Retail Prices API,2025-12-18T04:45:53.618783 +AZURE,switzerlandnorth,Standard_D96ads_v5,reserved_1y,NA,4.171233,USD,Azure Retail Prices API,2025-12-18T04:45:55.210116 +AZURE,switzerlandnorth,Standard_D96ads_v5,reserved_3y,NA,2.686568,USD,Azure Retail Prices API,2025-12-18T04:45:55.210119 +AZURE,switzerlandnorth,Standard_D96ads_v5,spot,NA,1.306536,USD,Azure Retail Prices API,2025-12-18T04:45:53.617878 +AZURE,switzerlandnorth,Standard_D96ads_v6,on_demand,NA,7.834,USD,Azure Retail Prices API,2025-12-18T04:45:53.618856 +AZURE,switzerlandnorth,Standard_D96ads_v6,reserved_1y,NA,4.621804,USD,Azure Retail Prices API,2025-12-18T04:45:55.209235 +AZURE,switzerlandnorth,Standard_D96ads_v6,reserved_3y,NA,2.97675,USD,Azure Retail Prices API,2025-12-18T04:45:55.209238 +AZURE,switzerlandnorth,Standard_D96ads_v6,spot,NA,1.447723,USD,Azure Retail Prices API,2025-12-18T04:45:53.619849 +AZURE,switzerlandnorth,Standard_D96as_v4,on_demand,NA,6.589,USD,Azure Retail Prices API,2025-12-18T04:45:53.620923 +AZURE,switzerlandnorth,Standard_D96as_v4,reserved_1y,NA,3.887785,USD,Azure Retail Prices API,2025-12-18T04:45:55.210392 +AZURE,switzerlandnorth,Standard_D96as_v4,reserved_3y,NA,2.503995,USD,Azure Retail Prices API,2025-12-18T04:45:55.210395 +AZURE,switzerlandnorth,Standard_D96as_v4,spot,NA,1.217647,USD,Azure Retail Prices API,2025-12-18T04:45:53.619355 +AZURE,switzerlandnorth,Standard_D96as_v5,on_demand,NA,10.319,USD,Azure Retail Prices API,2025-12-18T04:45:53.618861 +AZURE,switzerlandnorth,Standard_D96as_v5,reserved_1y,NA,3.482763,USD,Azure Retail Prices API,2025-12-18T04:45:55.210042 +AZURE,switzerlandnorth,Standard_D96as_v5,reserved_3y,NA,2.243151,USD,Azure Retail Prices API,2025-12-18T04:45:55.210044 +AZURE,switzerlandnorth,Standard_D96as_v5,spot,NA,1.090874,USD,Azure Retail Prices API,2025-12-18T04:45:53.620271 +AZURE,switzerlandnorth,Standard_D96ds_v5,on_demand,NA,7.181,USD,Azure Retail Prices API,2025-12-18T04:45:53.618157 +AZURE,switzerlandnorth,Standard_D96ds_v5,reserved_1y,NA,4.236644,USD,Azure Retail Prices API,2025-12-18T04:45:55.208832 +AZURE,switzerlandnorth,Standard_D96ds_v5,reserved_3y,NA,2.728691,USD,Azure Retail Prices API,2025-12-18T04:45:55.208837 +AZURE,switzerlandnorth,Standard_D96ds_v5,spot,NA,1.453434,USD,Azure Retail Prices API,2025-12-18T04:45:53.618888 +AZURE,switzerlandnorth,Standard_D96ds_v6,on_demand,NA,7.954,USD,Azure Retail Prices API,2025-12-18T04:45:53.620277 +AZURE,switzerlandnorth,Standard_D96ds_v6,reserved_1y,NA,4.931279,USD,Azure Retail Prices API,2025-12-18T04:45:55.210030 +AZURE,switzerlandnorth,Standard_D96ds_v6,reserved_3y,NA,3.101903,USD,Azure Retail Prices API,2025-12-18T04:45:55.210033 +AZURE,switzerlandnorth,Standard_D96ds_v6,spot,NA,1.469899,USD,Azure Retail Prices API,2025-12-18T04:45:53.620738 +AZURE,switzerlandnorth,Standard_D96pds_v6,on_demand,NA,6.874,USD,Azure Retail Prices API,2025-12-18T04:45:53.619793 +AZURE,switzerlandnorth,Standard_D96pds_v6,reserved_1y,NA,4.055479,USD,Azure Retail Prices API,2025-12-18T04:45:55.209751 +AZURE,switzerlandnorth,Standard_D96pds_v6,reserved_3y,NA,2.611986,USD,Azure Retail Prices API,2025-12-18T04:45:55.209754 +AZURE,switzerlandnorth,Standard_D96pds_v6,spot,NA,1.333556,USD,Azure Retail Prices API,2025-12-18T04:45:53.620841 +AZURE,switzerlandnorth,Standard_D96ps_v6,on_demand,NA,5.251,USD,Azure Retail Prices API,2025-12-18T04:45:53.618005 +AZURE,switzerlandnorth,Standard_D96ps_v6,reserved_1y,NA,3.098174,USD,Azure Retail Prices API,2025-12-18T04:45:55.208737 +AZURE,switzerlandnorth,Standard_D96ps_v6,reserved_3y,NA,1.995472,USD,Azure Retail Prices API,2025-12-18T04:45:55.208740 +AZURE,switzerlandnorth,Standard_D96ps_v6,spot,NA,1.018694,USD,Azure Retail Prices API,2025-12-18T04:45:53.620639 +AZURE,switzerlandnorth,Standard_D96s_v5,on_demand,NA,6.072,USD,Azure Retail Prices API,2025-12-18T04:45:53.620478 +AZURE,switzerlandnorth,Standard_D96s_v5,reserved_1y,NA,3.582534,USD,Azure Retail Prices API,2025-12-18T04:45:55.210121 +AZURE,switzerlandnorth,Standard_D96s_v5,reserved_3y,NA,2.246651,USD,Azure Retail Prices API,2025-12-18T04:45:55.210124 +AZURE,switzerlandnorth,Standard_D96s_v5,spot,NA,1.125142,USD,Azure Retail Prices API,2025-12-18T04:45:53.620967 +AZURE,switzerlandnorth,Standard_DC16ads_v5,on_demand,NA,1.178,USD,Azure Retail Prices API,2025-12-18T04:45:53.619738 +AZURE,switzerlandnorth,Standard_DC16ads_v5,reserved_1y,NA,0.942694,USD,Azure Retail Prices API,2025-12-18T04:45:55.209712 +AZURE,switzerlandnorth,Standard_DC16ads_v5,reserved_3y,NA,0.707002,USD,Azure Retail Prices API,2025-12-18T04:45:55.209714 +AZURE,switzerlandnorth,Standard_DC16ads_v5,spot,NA,0.222289,USD,Azure Retail Prices API,2025-12-18T04:45:53.619561 +AZURE,switzerlandnorth,Standard_DC16ads_v6,on_demand,NA,1.306,USD,Azure Retail Prices API,2025-12-18T04:45:53.618994 +AZURE,switzerlandnorth,Standard_DC16ads_v6,reserved_1y,NA,0.77032,USD,Azure Retail Prices API,2025-12-18T04:45:55.209341 +AZURE,switzerlandnorth,Standard_DC16ads_v6,reserved_3y,NA,0.496119,USD,Azure Retail Prices API,2025-12-18T04:45:55.209344 +AZURE,switzerlandnorth,Standard_DC16ads_v6,spot,NA,0.241349,USD,Azure Retail Prices API,2025-12-18T04:45:53.620484 +AZURE,switzerlandnorth,Standard_DC16as_v5,on_demand,NA,0.984,USD,Azure Retail Prices API,2025-12-18T04:45:53.618966 +AZURE,switzerlandnorth,Standard_DC16as_v5,reserved_1y,NA,0.7871,USD,Azure Retail Prices API,2025-12-18T04:45:55.209309 +AZURE,switzerlandnorth,Standard_DC16as_v5,reserved_3y,NA,0.590297,USD,Azure Retail Prices API,2025-12-18T04:45:55.209314 +AZURE,switzerlandnorth,Standard_DC16as_v5,spot,NA,0.185681,USD,Azure Retail Prices API,2025-12-18T04:45:53.619975 +AZURE,switzerlandnorth,Standard_DC2ads_v6,on_demand,NA,0.163,USD,Azure Retail Prices API,2025-12-18T04:45:53.620534 +AZURE,switzerlandnorth,Standard_DC2ads_v6,reserved_1y,NA,0.096233,USD,Azure Retail Prices API,2025-12-18T04:45:55.210157 +AZURE,switzerlandnorth,Standard_DC2ads_v6,reserved_3y,NA,0.062024,USD,Azure Retail Prices API,2025-12-18T04:45:55.210160 +AZURE,switzerlandnorth,Standard_DC2ads_v6,spot,NA,0.030122,USD,Azure Retail Prices API,2025-12-18T04:45:53.618199 +AZURE,switzerlandnorth,Standard_DC32ads_v5,on_demand,NA,2.357,USD,Azure Retail Prices API,2025-12-18T04:45:53.620829 +AZURE,switzerlandnorth,Standard_DC32ads_v5,reserved_1y,NA,1.885274,USD,Azure Retail Prices API,2025-12-18T04:45:55.210323 +AZURE,switzerlandnorth,Standard_DC32ads_v5,reserved_3y,NA,1.413965,USD,Azure Retail Prices API,2025-12-18T04:45:55.210326 +AZURE,switzerlandnorth,Standard_DC32ads_v5,spot,NA,0.444766,USD,Azure Retail Prices API,2025-12-18T04:45:53.620444 +AZURE,switzerlandnorth,Standard_DC32ads_v6,on_demand,NA,2.611,USD,Azure Retail Prices API,2025-12-18T04:45:53.620074 +AZURE,switzerlandnorth,Standard_DC32ads_v6,reserved_1y,NA,1.540639,USD,Azure Retail Prices API,2025-12-18T04:45:55.209942 +AZURE,switzerlandnorth,Standard_DC32ads_v6,reserved_3y,NA,0.992237,USD,Azure Retail Prices API,2025-12-18T04:45:55.209945 +AZURE,switzerlandnorth,Standard_DC32ads_v6,spot,NA,0.482513,USD,Azure Retail Prices API,2025-12-18T04:45:53.619220 +AZURE,switzerlandnorth,Standard_DC32as_v5,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:45:53.619997 +AZURE,switzerlandnorth,Standard_DC32as_v5,reserved_1y,NA,1.574201,USD,Azure Retail Prices API,2025-12-18T04:45:55.209895 +AZURE,switzerlandnorth,Standard_DC32as_v5,reserved_3y,NA,1.180594,USD,Azure Retail Prices API,2025-12-18T04:45:55.209897 +AZURE,switzerlandnorth,Standard_DC32as_v5,spot,NA,0.371362,USD,Azure Retail Prices API,2025-12-18T04:45:53.620511 +AZURE,switzerlandnorth,Standard_DC48ads_v5,on_demand,NA,3.535,USD,Azure Retail Prices API,2025-12-18T04:45:53.620964 +AZURE,switzerlandnorth,Standard_DC48ads_v5,reserved_1y,NA,2.827968,USD,Azure Retail Prices API,2025-12-18T04:45:55.210421 +AZURE,switzerlandnorth,Standard_DC48ads_v5,reserved_3y,NA,2.120967,USD,Azure Retail Prices API,2025-12-18T04:45:55.210424 +AZURE,switzerlandnorth,Standard_DC48ads_v5,spot,NA,0.667054,USD,Azure Retail Prices API,2025-12-18T04:45:53.620820 +AZURE,switzerlandnorth,Standard_DC48ads_v6,on_demand,NA,3.917,USD,Azure Retail Prices API,2025-12-18T04:45:53.619225 +AZURE,switzerlandnorth,Standard_DC48ads_v6,reserved_1y,NA,2.310959,USD,Azure Retail Prices API,2025-12-18T04:45:55.209431 +AZURE,switzerlandnorth,Standard_DC48ads_v6,reserved_3y,NA,1.488394,USD,Azure Retail Prices API,2025-12-18T04:45:55.209434 +AZURE,switzerlandnorth,Standard_DC48ads_v6,spot,NA,0.723862,USD,Azure Retail Prices API,2025-12-18T04:45:53.620191 +AZURE,switzerlandnorth,Standard_DC48as_v5,on_demand,NA,2.952,USD,Azure Retail Prices API,2025-12-18T04:45:53.618914 +AZURE,switzerlandnorth,Standard_DC48as_v5,reserved_1y,NA,2.361187,USD,Azure Retail Prices API,2025-12-18T04:45:55.209259 +AZURE,switzerlandnorth,Standard_DC48as_v5,reserved_3y,NA,1.770928,USD,Azure Retail Prices API,2025-12-18T04:45:55.209262 +AZURE,switzerlandnorth,Standard_DC48as_v5,spot,NA,0.557042,USD,Azure Retail Prices API,2025-12-18T04:45:53.619142 +AZURE,switzerlandnorth,Standard_DC4ads_v5,on_demand,NA,0.295,USD,Azure Retail Prices API,2025-12-18T04:45:53.619788 +AZURE,switzerlandnorth,Standard_DC4ads_v5,reserved_1y,NA,0.235616,USD,Azure Retail Prices API,2025-12-18T04:45:55.209746 +AZURE,switzerlandnorth,Standard_DC4ads_v5,reserved_3y,NA,0.17675,USD,Azure Retail Prices API,2025-12-18T04:45:55.209748 +AZURE,switzerlandnorth,Standard_DC4ads_v5,spot,NA,0.055666,USD,Azure Retail Prices API,2025-12-18T04:45:53.619910 +AZURE,switzerlandnorth,Standard_DC4ads_v6,on_demand,NA,0.326,USD,Azure Retail Prices API,2025-12-18T04:45:53.619311 +AZURE,switzerlandnorth,Standard_DC4ads_v6,reserved_1y,NA,0.19258,USD,Azure Retail Prices API,2025-12-18T04:45:55.209471 +AZURE,switzerlandnorth,Standard_DC4ads_v6,reserved_3y,NA,0.124049,USD,Azure Retail Prices API,2025-12-18T04:45:55.209474 +AZURE,switzerlandnorth,Standard_DC4ads_v6,spot,NA,0.060245,USD,Azure Retail Prices API,2025-12-18T04:45:53.619051 +AZURE,switzerlandnorth,Standard_DC4as_v5,on_demand,NA,0.246,USD,Azure Retail Prices API,2025-12-18T04:45:53.619522 +AZURE,switzerlandnorth,Standard_DC4as_v5,reserved_1y,NA,0.196804,USD,Azure Retail Prices API,2025-12-18T04:45:55.209602 +AZURE,switzerlandnorth,Standard_DC4as_v5,reserved_3y,NA,0.147565,USD,Azure Retail Prices API,2025-12-18T04:45:55.209605 +AZURE,switzerlandnorth,Standard_DC4as_v5,spot,NA,0.04642,USD,Azure Retail Prices API,2025-12-18T04:45:53.620881 +AZURE,switzerlandnorth,Standard_DC64ads_v5,on_demand,NA,4.713,USD,Azure Retail Prices API,2025-12-18T04:45:53.618977 +AZURE,switzerlandnorth,Standard_DC64ads_v5,reserved_1y,NA,3.770662,USD,Azure Retail Prices API,2025-12-18T04:45:55.209323 +AZURE,switzerlandnorth,Standard_DC64ads_v5,reserved_3y,NA,2.827968,USD,Azure Retail Prices API,2025-12-18T04:45:55.209326 +AZURE,switzerlandnorth,Standard_DC64ads_v5,spot,NA,0.889343,USD,Azure Retail Prices API,2025-12-18T04:45:53.618367 +AZURE,switzerlandnorth,Standard_DC64ads_v6,on_demand,NA,5.222,USD,Azure Retail Prices API,2025-12-18T04:45:53.618169 +AZURE,switzerlandnorth,Standard_DC64ads_v6,reserved_1y,NA,3.081164,USD,Azure Retail Prices API,2025-12-18T04:45:55.208846 +AZURE,switzerlandnorth,Standard_DC64ads_v6,reserved_3y,NA,1.984513,USD,Azure Retail Prices API,2025-12-18T04:45:55.208849 +AZURE,switzerlandnorth,Standard_DC64ads_v6,spot,NA,0.965026,USD,Azure Retail Prices API,2025-12-18T04:45:53.620866 +AZURE,switzerlandnorth,Standard_DC64as_v5,on_demand,NA,3.935,USD,Azure Retail Prices API,2025-12-18T04:45:53.618458 +AZURE,switzerlandnorth,Standard_DC64as_v5,reserved_1y,NA,3.148288,USD,Azure Retail Prices API,2025-12-18T04:45:55.209023 +AZURE,switzerlandnorth,Standard_DC64as_v5,reserved_3y,NA,2.361225,USD,Azure Retail Prices API,2025-12-18T04:45:55.209026 +AZURE,switzerlandnorth,Standard_DC64as_v5,spot,NA,0.742534,USD,Azure Retail Prices API,2025-12-18T04:45:53.619030 +AZURE,switzerlandnorth,Standard_DC8ads_v5,on_demand,NA,0.589,USD,Azure Retail Prices API,2025-12-18T04:45:53.619573 +AZURE,switzerlandnorth,Standard_DC8ads_v5,reserved_1y,NA,0.471347,USD,Azure Retail Prices API,2025-12-18T04:45:55.209626 +AZURE,switzerlandnorth,Standard_DC8ads_v5,reserved_3y,NA,0.353501,USD,Azure Retail Prices API,2025-12-18T04:45:55.209628 +AZURE,switzerlandnorth,Standard_DC8ads_v5,spot,NA,0.111144,USD,Azure Retail Prices API,2025-12-18T04:45:53.620656 +AZURE,switzerlandnorth,Standard_DC8ads_v6,on_demand,NA,0.653,USD,Azure Retail Prices API,2025-12-18T04:45:53.618961 +AZURE,switzerlandnorth,Standard_DC8ads_v6,reserved_1y,NA,0.38516,USD,Azure Retail Prices API,2025-12-18T04:45:55.209300 +AZURE,switzerlandnorth,Standard_DC8ads_v6,reserved_3y,NA,0.248059,USD,Azure Retail Prices API,2025-12-18T04:45:55.209305 +AZURE,switzerlandnorth,Standard_DC8ads_v6,spot,NA,0.120674,USD,Azure Retail Prices API,2025-12-18T04:45:53.620970 +AZURE,switzerlandnorth,Standard_DC8as_v5,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:45:53.618678 +AZURE,switzerlandnorth,Standard_DC8as_v5,reserved_1y,NA,0.393493,USD,Azure Retail Prices API,2025-12-18T04:45:55.209155 +AZURE,switzerlandnorth,Standard_DC8as_v5,reserved_3y,NA,0.295167,USD,Azure Retail Prices API,2025-12-18T04:45:55.209158 +AZURE,switzerlandnorth,Standard_DC8as_v5,spot,NA,0.09284,USD,Azure Retail Prices API,2025-12-18T04:45:53.618533 +AZURE,switzerlandnorth,Standard_DC96ads_v5,on_demand,NA,7.07,USD,Azure Retail Prices API,2025-12-18T04:45:53.620377 +AZURE,switzerlandnorth,Standard_DC96ads_v5,reserved_1y,NA,5.655936,USD,Azure Retail Prices API,2025-12-18T04:45:55.210070 +AZURE,switzerlandnorth,Standard_DC96ads_v5,reserved_3y,NA,4.241933,USD,Azure Retail Prices API,2025-12-18T04:45:55.210073 +AZURE,switzerlandnorth,Standard_DC96ads_v5,spot,NA,1.334109,USD,Azure Retail Prices API,2025-12-18T04:45:53.620495 +AZURE,switzerlandnorth,Standard_DC96ads_v6,on_demand,NA,7.834,USD,Azure Retail Prices API,2025-12-18T04:45:53.618548 +AZURE,switzerlandnorth,Standard_DC96ads_v6,reserved_1y,NA,4.621804,USD,Azure Retail Prices API,2025-12-18T04:45:55.209065 +AZURE,switzerlandnorth,Standard_DC96ads_v6,reserved_3y,NA,2.97675,USD,Azure Retail Prices API,2025-12-18T04:45:55.209068 +AZURE,switzerlandnorth,Standard_DC96ads_v6,spot,NA,1.447723,USD,Azure Retail Prices API,2025-12-18T04:45:53.618699 +AZURE,switzerlandnorth,Standard_DC96as_v5,on_demand,NA,5.903,USD,Azure Retail Prices API,2025-12-18T04:45:53.619004 +AZURE,switzerlandnorth,Standard_DC96as_v5,reserved_1y,NA,4.722489,USD,Azure Retail Prices API,2025-12-18T04:45:55.209347 +AZURE,switzerlandnorth,Standard_DC96as_v5,reserved_3y,NA,3.541819,USD,Azure Retail Prices API,2025-12-18T04:45:55.209350 +AZURE,switzerlandnorth,Standard_DC96as_v5,spot,NA,1.113896,USD,Azure Retail Prices API,2025-12-18T04:45:53.619555 +AZURE,switzerlandnorth,Standard_DS12_v2,on_demand,NA,0.4081,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495363 +AZURE,switzerlandnorth,Standard_DS12_v2,reserved_1y,NA,0.24486,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495371 +AZURE,switzerlandnorth,Standard_DS12_v2,reserved_3y,NA,0.16324,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495375 +AZURE,switzerlandnorth,Standard_DS12_v2,spot,NA,0.12243,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495367 +AZURE,switzerlandnorth,Standard_DS13_v2,on_demand,NA,0.8151,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496242 +AZURE,switzerlandnorth,Standard_DS13_v2,reserved_1y,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496250 +AZURE,switzerlandnorth,Standard_DS13_v2,reserved_3y,NA,0.32604,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496256 +AZURE,switzerlandnorth,Standard_DS13_v2,spot,NA,0.24453,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496246 +AZURE,switzerlandnorth,Standard_DS14_v2,on_demand,NA,1.6302,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497001 +AZURE,switzerlandnorth,Standard_DS14_v2,reserved_1y,NA,0.97812,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497009 +AZURE,switzerlandnorth,Standard_DS14_v2,reserved_3y,NA,0.65208,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497013 +AZURE,switzerlandnorth,Standard_DS14_v2,spot,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497005 +AZURE,switzerlandnorth,Standard_DS15_v2,on_demand,NA,2.0383,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497884 +AZURE,switzerlandnorth,Standard_DS15_v2,reserved_1y,NA,1.22298,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497892 +AZURE,switzerlandnorth,Standard_DS15_v2,reserved_3y,NA,0.81532,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497896 +AZURE,switzerlandnorth,Standard_DS15_v2,spot,NA,0.61149,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497888 +AZURE,switzerlandnorth,Standard_DS1_v2,on_demand,NA,0.0803,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491714 +AZURE,switzerlandnorth,Standard_DS1_v2,reserved_1y,NA,0.04818,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491722 +AZURE,switzerlandnorth,Standard_DS1_v2,reserved_3y,NA,0.03212,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491726 +AZURE,switzerlandnorth,Standard_DS1_v2,spot,NA,0.02409,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491718 +AZURE,switzerlandnorth,Standard_DS2_v2,on_demand,NA,0.1606,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492460 +AZURE,switzerlandnorth,Standard_DS2_v2,reserved_1y,NA,0.09636,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492468 +AZURE,switzerlandnorth,Standard_DS2_v2,reserved_3y,NA,0.06424,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492472 +AZURE,switzerlandnorth,Standard_DS2_v2,spot,NA,0.04818,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492464 +AZURE,switzerlandnorth,Standard_DS3_v2,on_demand,NA,0.3223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493183 +AZURE,switzerlandnorth,Standard_DS3_v2,reserved_1y,NA,0.19338,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493191 +AZURE,switzerlandnorth,Standard_DS3_v2,reserved_3y,NA,0.12892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493195 +AZURE,switzerlandnorth,Standard_DS3_v2,spot,NA,0.09669,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493187 +AZURE,switzerlandnorth,Standard_DS4_v2,on_demand,NA,0.6435,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493895 +AZURE,switzerlandnorth,Standard_DS4_v2,reserved_1y,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493903 +AZURE,switzerlandnorth,Standard_DS4_v2,reserved_3y,NA,0.2574,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493907 +AZURE,switzerlandnorth,Standard_DS4_v2,spot,NA,0.19305,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493899 +AZURE,switzerlandnorth,Standard_DS5_v2,on_demand,NA,1.287,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494609 +AZURE,switzerlandnorth,Standard_DS5_v2,reserved_1y,NA,0.7722,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494617 +AZURE,switzerlandnorth,Standard_DS5_v2,reserved_3y,NA,0.5148,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494621 +AZURE,switzerlandnorth,Standard_DS5_v2,spot,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494613 +AZURE,switzerlandnorth,Standard_E128ds_v6,on_demand,NA,13.919,USD,Azure Retail Prices API,2025-12-18T04:45:53.618989 +AZURE,switzerlandnorth,Standard_E128ds_v6,reserved_1y,NA,8.629566,USD,Azure Retail Prices API,2025-12-18T04:45:55.209335 +AZURE,switzerlandnorth,Standard_E128ds_v6,reserved_3y,NA,5.428311,USD,Azure Retail Prices API,2025-12-18T04:45:55.209338 +AZURE,switzerlandnorth,Standard_E128ds_v6,spot,NA,2.572231,USD,Azure Retail Prices API,2025-12-18T04:45:53.618496 +AZURE,switzerlandnorth,Standard_E16_v3,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:45:53.619259 +AZURE,switzerlandnorth,Standard_E16_v3,reserved_1y,NA,0.813242,USD,Azure Retail Prices API,2025-12-18T04:45:55.209448 +AZURE,switzerlandnorth,Standard_E16_v3,reserved_3y,NA,0.546005,USD,Azure Retail Prices API,2025-12-18T04:45:55.209451 +AZURE,switzerlandnorth,Standard_E16_v3,spot,NA,0.270336,USD,Azure Retail Prices API,2025-12-18T04:45:53.620721 +AZURE,switzerlandnorth,Standard_E16a_v4,on_demand,NA,1.441,USD,Azure Retail Prices API,2025-12-18T04:45:53.618229 +AZURE,switzerlandnorth,Standard_E16a_v4,reserved_1y,NA,0.850457,USD,Azure Retail Prices API,2025-12-18T04:45:55.208876 +AZURE,switzerlandnorth,Standard_E16a_v4,reserved_3y,NA,0.547755,USD,Azure Retail Prices API,2025-12-18T04:45:55.208879 +AZURE,switzerlandnorth,Standard_E16a_v4,spot,NA,0.266297,USD,Azure Retail Prices API,2025-12-18T04:45:53.617945 +AZURE,switzerlandnorth,Standard_E16ads_v5,on_demand,NA,1.499,USD,Azure Retail Prices API,2025-12-18T04:45:53.618588 +AZURE,switzerlandnorth,Standard_E16ads_v5,reserved_1y,NA,0.884247,USD,Azure Retail Prices API,2025-12-18T04:45:55.209100 +AZURE,switzerlandnorth,Standard_E16ads_v5,reserved_3y,NA,0.569482,USD,Azure Retail Prices API,2025-12-18T04:45:55.209103 +AZURE,switzerlandnorth,Standard_E16ads_v5,spot,NA,0.277015,USD,Azure Retail Prices API,2025-12-18T04:45:53.620981 +AZURE,switzerlandnorth,Standard_E16ads_v6,on_demand,NA,1.661,USD,Azure Retail Prices API,2025-12-18T04:45:53.618620 +AZURE,switzerlandnorth,Standard_E16ads_v6,reserved_1y,NA,0.979909,USD,Azure Retail Prices API,2025-12-18T04:45:55.209106 +AZURE,switzerlandnorth,Standard_E16ads_v6,reserved_3y,NA,0.631088,USD,Azure Retail Prices API,2025-12-18T04:45:55.209109 +AZURE,switzerlandnorth,Standard_E16ads_v6,spot,NA,0.306953,USD,Azure Retail Prices API,2025-12-18T04:45:53.617847 +AZURE,switzerlandnorth,Standard_E16as_v4,on_demand,NA,1.441,USD,Azure Retail Prices API,2025-12-18T04:45:53.619505 +AZURE,switzerlandnorth,Standard_E16as_v4,reserved_1y,NA,0.850457,USD,Azure Retail Prices API,2025-12-18T04:45:55.209585 +AZURE,switzerlandnorth,Standard_E16as_v4,reserved_3y,NA,0.547755,USD,Azure Retail Prices API,2025-12-18T04:45:55.209588 +AZURE,switzerlandnorth,Standard_E16as_v4,spot,NA,0.266297,USD,Azure Retail Prices API,2025-12-18T04:45:53.620383 +AZURE,switzerlandnorth,Standard_E16as_v5,on_demand,NA,1.293,USD,Azure Retail Prices API,2025-12-18T04:45:53.620461 +AZURE,switzerlandnorth,Standard_E16as_v5,reserved_1y,NA,0.762671,USD,Azure Retail Prices API,2025-12-18T04:45:55.210105 +AZURE,switzerlandnorth,Standard_E16as_v5,reserved_3y,NA,0.491248,USD,Azure Retail Prices API,2025-12-18T04:45:55.210108 +AZURE,switzerlandnorth,Standard_E16as_v5,spot,NA,0.238946,USD,Azure Retail Prices API,2025-12-18T04:45:53.618667 +AZURE,switzerlandnorth,Standard_E16d_v4,on_demand,NA,1.5224,USD,Azure Retail Prices API,2025-12-18T04:45:53.619604 +AZURE,switzerlandnorth,Standard_E16d_v4,reserved_1y,NA,0.898174,USD,Azure Retail Prices API,2025-12-18T04:45:55.209631 +AZURE,switzerlandnorth,Standard_E16d_v4,reserved_3y,NA,0.578501,USD,Azure Retail Prices API,2025-12-18T04:45:55.209634 +AZURE,switzerlandnorth,Standard_E16d_v4,spot,NA,0.28134,USD,Azure Retail Prices API,2025-12-18T04:45:53.619041 +AZURE,switzerlandnorth,Standard_E16ds_v4,on_demand,NA,1.5224,USD,Azure Retail Prices API,2025-12-18T04:45:53.619471 +AZURE,switzerlandnorth,Standard_E16ds_v4,reserved_1y,NA,0.898174,USD,Azure Retail Prices API,2025-12-18T04:45:55.209573 +AZURE,switzerlandnorth,Standard_E16ds_v4,reserved_3y,NA,0.578501,USD,Azure Retail Prices API,2025-12-18T04:45:55.209576 +AZURE,switzerlandnorth,Standard_E16ds_v4,spot,NA,0.28134,USD,Azure Retail Prices API,2025-12-18T04:45:53.620260 +AZURE,switzerlandnorth,Standard_E16ds_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:53.619115 +AZURE,switzerlandnorth,Standard_E16ds_v5,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:45:55.209391 +AZURE,switzerlandnorth,Standard_E16ds_v5,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:45:55.209394 +AZURE,switzerlandnorth,Standard_E16ds_v5,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:45:53.620938 +AZURE,switzerlandnorth,Standard_E16ds_v6,on_demand,NA,1.74,USD,Azure Retail Prices API,2025-12-18T04:45:53.618029 +AZURE,switzerlandnorth,Standard_E16ds_v6,reserved_1y,NA,1.078653,USD,Azure Retail Prices API,2025-12-18T04:45:55.208749 +AZURE,switzerlandnorth,Standard_E16ds_v6,reserved_3y,NA,0.678539,USD,Azure Retail Prices API,2025-12-18T04:45:55.208755 +AZURE,switzerlandnorth,Standard_E16ds_v6,spot,NA,0.321552,USD,Azure Retail Prices API,2025-12-18T04:45:53.618097 +AZURE,switzerlandnorth,Standard_E16pds_v6,on_demand,NA,1.459,USD,Azure Retail Prices API,2025-12-18T04:45:53.620404 +AZURE,switzerlandnorth,Standard_E16pds_v6,reserved_1y,NA,0.860959,USD,Azure Retail Prices API,2025-12-18T04:45:55.210088 +AZURE,switzerlandnorth,Standard_E16pds_v6,reserved_3y,NA,0.55449,USD,Azure Retail Prices API,2025-12-18T04:45:55.210091 +AZURE,switzerlandnorth,Standard_E16pds_v6,spot,NA,0.269623,USD,Azure Retail Prices API,2025-12-18T04:45:53.620748 +AZURE,switzerlandnorth,Standard_E16ps_v6,on_demand,NA,1.15,USD,Azure Retail Prices API,2025-12-18T04:45:53.620995 +AZURE,switzerlandnorth,Standard_E16ps_v6,reserved_1y,NA,0.678767,USD,Azure Retail Prices API,2025-12-18T04:45:55.210449 +AZURE,switzerlandnorth,Standard_E16ps_v6,reserved_3y,NA,0.437139,USD,Azure Retail Prices API,2025-12-18T04:45:55.210452 +AZURE,switzerlandnorth,Standard_E16ps_v6,spot,NA,0.21252,USD,Azure Retail Prices API,2025-12-18T04:45:53.618385 +AZURE,switzerlandnorth,Standard_E16s_v3,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:45:53.620328 +AZURE,switzerlandnorth,Standard_E16s_v3,reserved_1y,NA,0.813242,USD,Azure Retail Prices API,2025-12-18T04:45:55.210047 +AZURE,switzerlandnorth,Standard_E16s_v3,reserved_3y,NA,0.546005,USD,Azure Retail Prices API,2025-12-18T04:45:55.210050 +AZURE,switzerlandnorth,Standard_E16s_v3,spot,NA,0.270336,USD,Azure Retail Prices API,2025-12-18T04:45:53.620305 +AZURE,switzerlandnorth,Standard_E16s_v4,on_demand,NA,1.3376,USD,Azure Retail Prices API,2025-12-18T04:45:53.620041 +AZURE,switzerlandnorth,Standard_E16s_v4,reserved_1y,NA,0.789269,USD,Azure Retail Prices API,2025-12-18T04:45:55.209924 +AZURE,switzerlandnorth,Standard_E16s_v4,reserved_3y,NA,0.508257,USD,Azure Retail Prices API,2025-12-18T04:45:55.209927 +AZURE,switzerlandnorth,Standard_E16s_v4,spot,NA,0.24759,USD,Azure Retail Prices API,2025-12-18T04:45:53.617963 +AZURE,switzerlandnorth,Standard_E16s_v5,on_demand,NA,1.336,USD,Azure Retail Prices API,2025-12-18T04:45:53.618788 +AZURE,switzerlandnorth,Standard_E16s_v5,reserved_1y,NA,0.788242,USD,Azure Retail Prices API,2025-12-18T04:45:55.209212 +AZURE,switzerlandnorth,Standard_E16s_v5,reserved_3y,NA,0.49433,USD,Azure Retail Prices API,2025-12-18T04:45:55.209215 +AZURE,switzerlandnorth,Standard_E16s_v5,spot,NA,0.259986,USD,Azure Retail Prices API,2025-12-18T04:45:53.619433 +AZURE,switzerlandnorth,Standard_E20a_v4,on_demand,NA,1.802,USD,Azure Retail Prices API,2025-12-18T04:45:53.620869 +AZURE,switzerlandnorth,Standard_E20a_v4,reserved_1y,NA,1.063014,USD,Azure Retail Prices API,2025-12-18T04:45:55.210347 +AZURE,switzerlandnorth,Standard_E20a_v4,reserved_3y,NA,0.684665,USD,Azure Retail Prices API,2025-12-18T04:45:55.210350 +AZURE,switzerlandnorth,Standard_E20a_v4,spot,NA,0.33301,USD,Azure Retail Prices API,2025-12-18T04:45:53.620549 +AZURE,switzerlandnorth,Standard_E20ads_v5,on_demand,NA,1.873,USD,Azure Retail Prices API,2025-12-18T04:45:53.620107 +AZURE,switzerlandnorth,Standard_E20ads_v5,reserved_1y,NA,1.105251,USD,Azure Retail Prices API,2025-12-18T04:45:55.209960 +AZURE,switzerlandnorth,Standard_E20ads_v5,reserved_3y,NA,0.711872,USD,Azure Retail Prices API,2025-12-18T04:45:55.209963 +AZURE,switzerlandnorth,Standard_E20ads_v5,spot,NA,0.34613,USD,Azure Retail Prices API,2025-12-18T04:45:53.620682 +AZURE,switzerlandnorth,Standard_E20ads_v6,on_demand,NA,2.076,USD,Azure Retail Prices API,2025-12-18T04:45:53.620394 +AZURE,switzerlandnorth,Standard_E20ads_v6,reserved_1y,NA,1.224886,USD,Azure Retail Prices API,2025-12-18T04:45:55.210081 +AZURE,switzerlandnorth,Standard_E20ads_v6,reserved_3y,NA,0.788889,USD,Azure Retail Prices API,2025-12-18T04:45:55.210084 +AZURE,switzerlandnorth,Standard_E20ads_v6,spot,NA,0.383645,USD,Azure Retail Prices API,2025-12-18T04:45:53.620135 +AZURE,switzerlandnorth,Standard_E20as_v4,on_demand,NA,1.802,USD,Azure Retail Prices API,2025-12-18T04:45:53.618017 +AZURE,switzerlandnorth,Standard_E20as_v4,reserved_1y,NA,1.063014,USD,Azure Retail Prices API,2025-12-18T04:45:55.208742 +AZURE,switzerlandnorth,Standard_E20as_v4,reserved_3y,NA,0.684665,USD,Azure Retail Prices API,2025-12-18T04:45:55.208745 +AZURE,switzerlandnorth,Standard_E20as_v4,spot,NA,0.33301,USD,Azure Retail Prices API,2025-12-18T04:45:53.620254 +AZURE,switzerlandnorth,Standard_E20as_v5,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:45:53.618719 +AZURE,switzerlandnorth,Standard_E20as_v5,reserved_1y,NA,0.953425,USD,Azure Retail Prices API,2025-12-18T04:45:55.209178 +AZURE,switzerlandnorth,Standard_E20as_v5,reserved_3y,NA,0.614041,USD,Azure Retail Prices API,2025-12-18T04:45:55.209181 +AZURE,switzerlandnorth,Standard_E20as_v5,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:45:53.620124 +AZURE,switzerlandnorth,Standard_E20d_v4,on_demand,NA,1.903,USD,Azure Retail Prices API,2025-12-18T04:45:53.619372 +AZURE,switzerlandnorth,Standard_E20d_v4,reserved_1y,NA,1.122831,USD,Azure Retail Prices API,2025-12-18T04:45:55.209513 +AZURE,switzerlandnorth,Standard_E20d_v4,reserved_3y,NA,0.723135,USD,Azure Retail Prices API,2025-12-18T04:45:55.209518 +AZURE,switzerlandnorth,Standard_E20d_v4,spot,NA,0.351674,USD,Azure Retail Prices API,2025-12-18T04:45:53.617927 +AZURE,switzerlandnorth,Standard_E20ds_v4,on_demand,NA,1.903,USD,Azure Retail Prices API,2025-12-18T04:45:53.620998 +AZURE,switzerlandnorth,Standard_E20ds_v4,reserved_1y,NA,1.122831,USD,Azure Retail Prices API,2025-12-18T04:45:55.210455 +AZURE,switzerlandnorth,Standard_E20ds_v4,reserved_3y,NA,0.723135,USD,Azure Retail Prices API,2025-12-18T04:45:55.210457 +AZURE,switzerlandnorth,Standard_E20ds_v4,spot,NA,0.351674,USD,Azure Retail Prices API,2025-12-18T04:45:53.618883 +AZURE,switzerlandnorth,Standard_E20ds_v5,on_demand,NA,1.9,USD,Azure Retail Prices API,2025-12-18T04:45:53.620651 +AZURE,switzerlandnorth,Standard_E20ds_v5,reserved_1y,NA,1.121005,USD,Azure Retail Prices API,2025-12-18T04:45:55.210201 +AZURE,switzerlandnorth,Standard_E20ds_v5,reserved_3y,NA,0.721994,USD,Azure Retail Prices API,2025-12-18T04:45:55.210204 +AZURE,switzerlandnorth,Standard_E20ds_v5,spot,NA,0.35112,USD,Azure Retail Prices API,2025-12-18T04:45:53.619544 +AZURE,switzerlandnorth,Standard_E20ds_v6,on_demand,NA,2.175,USD,Azure Retail Prices API,2025-12-18T04:45:53.618404 +AZURE,switzerlandnorth,Standard_E20ds_v6,reserved_1y,NA,1.348402,USD,Azure Retail Prices API,2025-12-18T04:45:55.208981 +AZURE,switzerlandnorth,Standard_E20ds_v6,reserved_3y,NA,0.848174,USD,Azure Retail Prices API,2025-12-18T04:45:55.208984 +AZURE,switzerlandnorth,Standard_E20ds_v6,spot,NA,0.40194,USD,Azure Retail Prices API,2025-12-18T04:45:53.620744 +AZURE,switzerlandnorth,Standard_E20s_v4,on_demand,NA,1.672,USD,Azure Retail Prices API,2025-12-18T04:45:53.619456 +AZURE,switzerlandnorth,Standard_E20s_v4,reserved_1y,NA,0.986416,USD,Azure Retail Prices API,2025-12-18T04:45:55.209562 +AZURE,switzerlandnorth,Standard_E20s_v4,reserved_3y,NA,0.63535,USD,Azure Retail Prices API,2025-12-18T04:45:55.209565 +AZURE,switzerlandnorth,Standard_E20s_v4,spot,NA,0.309487,USD,Azure Retail Prices API,2025-12-18T04:45:53.619527 +AZURE,switzerlandnorth,Standard_E20s_v5,on_demand,NA,1.67,USD,Azure Retail Prices API,2025-12-18T04:45:53.619394 +AZURE,switzerlandnorth,Standard_E20s_v5,reserved_1y,NA,0.985274,USD,Azure Retail Prices API,2025-12-18T04:45:55.209532 +AZURE,switzerlandnorth,Standard_E20s_v5,reserved_3y,NA,0.617884,USD,Azure Retail Prices API,2025-12-18T04:45:55.209534 +AZURE,switzerlandnorth,Standard_E20s_v5,spot,NA,0.324982,USD,Azure Retail Prices API,2025-12-18T04:45:53.620410 +AZURE,switzerlandnorth,Standard_E2_v3,on_demand,NA,0.176,USD,Azure Retail Prices API,2025-12-18T04:45:53.620800 +AZURE,switzerlandnorth,Standard_E2_v3,reserved_1y,NA,0.101598,USD,Azure Retail Prices API,2025-12-18T04:45:55.210293 +AZURE,switzerlandnorth,Standard_E2_v3,reserved_3y,NA,0.068265,USD,Azure Retail Prices API,2025-12-18T04:45:55.210297 +AZURE,switzerlandnorth,Standard_E2_v3,spot,NA,0.033792,USD,Azure Retail Prices API,2025-12-18T04:45:53.619615 +AZURE,switzerlandnorth,Standard_E2ads_v6,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:53.619765 +AZURE,switzerlandnorth,Standard_E2ads_v6,reserved_1y,NA,0.122489,USD,Azure Retail Prices API,2025-12-18T04:45:55.209734 +AZURE,switzerlandnorth,Standard_E2ads_v6,reserved_3y,NA,0.078881,USD,Azure Retail Prices API,2025-12-18T04:45:55.209737 +AZURE,switzerlandnorth,Standard_E2ads_v6,spot,NA,0.038438,USD,Azure Retail Prices API,2025-12-18T04:45:53.618421 +AZURE,switzerlandnorth,Standard_E2ds_v5,on_demand,NA,0.19,USD,Azure Retail Prices API,2025-12-18T04:45:53.620577 +AZURE,switzerlandnorth,Standard_E2ds_v5,reserved_1y,NA,0.1121,USD,Azure Retail Prices API,2025-12-18T04:45:55.210174 +AZURE,switzerlandnorth,Standard_E2ds_v5,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:45:55.210177 +AZURE,switzerlandnorth,Standard_E2ds_v5,spot,NA,0.035112,USD,Azure Retail Prices API,2025-12-18T04:45:53.618683 +AZURE,switzerlandnorth,Standard_E2ds_v6,on_demand,NA,0.217,USD,Azure Retail Prices API,2025-12-18T04:45:53.618187 +AZURE,switzerlandnorth,Standard_E2ds_v6,reserved_1y,NA,0.134817,USD,Azure Retail Prices API,2025-12-18T04:45:55.208858 +AZURE,switzerlandnorth,Standard_E2ds_v6,reserved_3y,NA,0.084817,USD,Azure Retail Prices API,2025-12-18T04:45:55.208861 +AZURE,switzerlandnorth,Standard_E2ds_v6,spot,NA,0.040102,USD,Azure Retail Prices API,2025-12-18T04:45:53.620248 +AZURE,switzerlandnorth,Standard_E2pds_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:45:53.620046 +AZURE,switzerlandnorth,Standard_E2pds_v6,reserved_1y,NA,0.107648,USD,Azure Retail Prices API,2025-12-18T04:45:55.209929 +AZURE,switzerlandnorth,Standard_E2pds_v6,reserved_3y,NA,0.06933,USD,Azure Retail Prices API,2025-12-18T04:45:55.209934 +AZURE,switzerlandnorth,Standard_E2pds_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:45:53.619121 +AZURE,switzerlandnorth,Standard_E32_v3,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:45:53.618543 +AZURE,switzerlandnorth,Standard_E32_v3,reserved_1y,NA,1.62637,USD,Azure Retail Prices API,2025-12-18T04:45:55.209060 +AZURE,switzerlandnorth,Standard_E32_v3,reserved_3y,NA,1.092009,USD,Azure Retail Prices API,2025-12-18T04:45:55.209063 +AZURE,switzerlandnorth,Standard_E32_v3,spot,NA,0.540672,USD,Azure Retail Prices API,2025-12-18T04:45:53.620096 +AZURE,switzerlandnorth,Standard_E32a_v4,on_demand,NA,2.883,USD,Azure Retail Prices API,2025-12-18T04:45:53.618253 +AZURE,switzerlandnorth,Standard_E32a_v4,reserved_1y,NA,1.700913,USD,Azure Retail Prices API,2025-12-18T04:45:55.208894 +AZURE,switzerlandnorth,Standard_E32a_v4,reserved_3y,NA,1.09551,USD,Azure Retail Prices API,2025-12-18T04:45:55.208896 +AZURE,switzerlandnorth,Standard_E32a_v4,spot,NA,0.532778,USD,Azure Retail Prices API,2025-12-18T04:45:53.620080 +AZURE,switzerlandnorth,Standard_E32ads_v5,on_demand,NA,2.997,USD,Azure Retail Prices API,2025-12-18T04:45:53.619296 +AZURE,switzerlandnorth,Standard_E32ads_v5,reserved_1y,NA,1.768379,USD,Azure Retail Prices API,2025-12-18T04:45:55.209460 +AZURE,switzerlandnorth,Standard_E32ads_v5,reserved_3y,NA,1.138965,USD,Azure Retail Prices API,2025-12-18T04:45:55.209463 +AZURE,switzerlandnorth,Standard_E32ads_v5,spot,NA,0.553846,USD,Azure Retail Prices API,2025-12-18T04:45:53.618397 +AZURE,switzerlandnorth,Standard_E32ads_v6,on_demand,NA,3.322,USD,Azure Retail Prices API,2025-12-18T04:45:53.620725 +AZURE,switzerlandnorth,Standard_E32ads_v6,reserved_1y,NA,1.959703,USD,Azure Retail Prices API,2025-12-18T04:45:55.210264 +AZURE,switzerlandnorth,Standard_E32ads_v6,reserved_3y,NA,1.262215,USD,Azure Retail Prices API,2025-12-18T04:45:55.210268 +AZURE,switzerlandnorth,Standard_E32ads_v6,spot,NA,0.613906,USD,Azure Retail Prices API,2025-12-18T04:45:53.620062 +AZURE,switzerlandnorth,Standard_E32as_v4,on_demand,NA,2.883,USD,Azure Retail Prices API,2025-12-18T04:45:53.618930 +AZURE,switzerlandnorth,Standard_E32as_v4,reserved_1y,NA,1.700913,USD,Azure Retail Prices API,2025-12-18T04:45:55.209281 +AZURE,switzerlandnorth,Standard_E32as_v4,reserved_3y,NA,1.09551,USD,Azure Retail Prices API,2025-12-18T04:45:55.209287 +AZURE,switzerlandnorth,Standard_E32as_v4,spot,NA,0.532778,USD,Azure Retail Prices API,2025-12-18T04:45:53.619584 +AZURE,switzerlandnorth,Standard_E32as_v5,on_demand,NA,4.057,USD,Azure Retail Prices API,2025-12-18T04:45:53.620119 +AZURE,switzerlandnorth,Standard_E32as_v5,reserved_1y,NA,1.525457,USD,Azure Retail Prices API,2025-12-18T04:45:55.210190 +AZURE,switzerlandnorth,Standard_E32as_v5,reserved_3y,NA,0.982458,USD,Azure Retail Prices API,2025-12-18T04:45:55.210193 +AZURE,switzerlandnorth,Standard_E32as_v5,spot,NA,0.477708,USD,Azure Retail Prices API,2025-12-18T04:45:53.619539 +AZURE,switzerlandnorth,Standard_E32d_v4,on_demand,NA,3.0448,USD,Azure Retail Prices API,2025-12-18T04:45:53.620888 +AZURE,switzerlandnorth,Standard_E32d_v4,reserved_1y,NA,1.796461,USD,Azure Retail Prices API,2025-12-18T04:45:55.210370 +AZURE,switzerlandnorth,Standard_E32d_v4,reserved_3y,NA,1.15704,USD,Azure Retail Prices API,2025-12-18T04:45:55.210372 +AZURE,switzerlandnorth,Standard_E32d_v4,spot,NA,0.562679,USD,Azure Retail Prices API,2025-12-18T04:45:53.619126 +AZURE,switzerlandnorth,Standard_E32ds_v4,on_demand,NA,3.0448,USD,Azure Retail Prices API,2025-12-18T04:45:53.620891 +AZURE,switzerlandnorth,Standard_E32ds_v4,reserved_1y,NA,1.796461,USD,Azure Retail Prices API,2025-12-18T04:45:55.210376 +AZURE,switzerlandnorth,Standard_E32ds_v4,reserved_3y,NA,1.15704,USD,Azure Retail Prices API,2025-12-18T04:45:55.210379 +AZURE,switzerlandnorth,Standard_E32ds_v4,spot,NA,0.562679,USD,Azure Retail Prices API,2025-12-18T04:45:53.618746 +AZURE,switzerlandnorth,Standard_E32ds_v5,on_demand,NA,3.04,USD,Azure Retail Prices API,2025-12-18T04:45:53.618845 +AZURE,switzerlandnorth,Standard_E32ds_v5,reserved_1y,NA,1.793607,USD,Azure Retail Prices API,2025-12-18T04:45:55.209229 +AZURE,switzerlandnorth,Standard_E32ds_v5,reserved_3y,NA,1.155213,USD,Azure Retail Prices API,2025-12-18T04:45:55.209232 +AZURE,switzerlandnorth,Standard_E32ds_v5,spot,NA,0.561792,USD,Azure Retail Prices API,2025-12-18T04:45:53.620944 +AZURE,switzerlandnorth,Standard_E32ds_v6,on_demand,NA,3.48,USD,Azure Retail Prices API,2025-12-18T04:45:53.618163 +AZURE,switzerlandnorth,Standard_E32ds_v6,reserved_1y,NA,2.15742,USD,Azure Retail Prices API,2025-12-18T04:45:55.208840 +AZURE,switzerlandnorth,Standard_E32ds_v6,reserved_3y,NA,1.357078,USD,Azure Retail Prices API,2025-12-18T04:45:55.208843 +AZURE,switzerlandnorth,Standard_E32ds_v6,spot,NA,0.643104,USD,Azure Retail Prices API,2025-12-18T04:45:53.619202 +AZURE,switzerlandnorth,Standard_E32pds_v6,on_demand,NA,2.918,USD,Azure Retail Prices API,2025-12-18T04:45:53.618302 +AZURE,switzerlandnorth,Standard_E32pds_v6,reserved_1y,NA,1.721804,USD,Azure Retail Prices API,2025-12-18T04:45:55.208924 +AZURE,switzerlandnorth,Standard_E32pds_v6,reserved_3y,NA,1.10898,USD,Azure Retail Prices API,2025-12-18T04:45:55.208927 +AZURE,switzerlandnorth,Standard_E32pds_v6,spot,NA,0.539246,USD,Azure Retail Prices API,2025-12-18T04:45:53.618223 +AZURE,switzerlandnorth,Standard_E32ps_v6,on_demand,NA,2.301,USD,Azure Retail Prices API,2025-12-18T04:45:53.617866 +AZURE,switzerlandnorth,Standard_E32ps_v6,reserved_1y,NA,1.35742,USD,Azure Retail Prices API,2025-12-18T04:45:55.208651 +AZURE,switzerlandnorth,Standard_E32ps_v6,reserved_3y,NA,0.874315,USD,Azure Retail Prices API,2025-12-18T04:45:55.208665 +AZURE,switzerlandnorth,Standard_E32ps_v6,spot,NA,0.425225,USD,Azure Retail Prices API,2025-12-18T04:45:53.620823 +AZURE,switzerlandnorth,Standard_E32s_v3,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:45:53.620528 +AZURE,switzerlandnorth,Standard_E32s_v3,reserved_1y,NA,1.62637,USD,Azure Retail Prices API,2025-12-18T04:45:55.210151 +AZURE,switzerlandnorth,Standard_E32s_v3,reserved_3y,NA,1.092009,USD,Azure Retail Prices API,2025-12-18T04:45:55.210154 +AZURE,switzerlandnorth,Standard_E32s_v3,spot,NA,0.540672,USD,Azure Retail Prices API,2025-12-18T04:45:53.619270 +AZURE,switzerlandnorth,Standard_E32s_v4,on_demand,NA,2.6752,USD,Azure Retail Prices API,2025-12-18T04:45:53.620676 +AZURE,switzerlandnorth,Standard_E32s_v4,reserved_1y,NA,1.578311,USD,Azure Retail Prices API,2025-12-18T04:45:55.210212 +AZURE,switzerlandnorth,Standard_E32s_v4,reserved_3y,NA,1.016591,USD,Azure Retail Prices API,2025-12-18T04:45:55.210214 +AZURE,switzerlandnorth,Standard_E32s_v4,spot,NA,0.49518,USD,Azure Retail Prices API,2025-12-18T04:45:53.618181 +AZURE,switzerlandnorth,Standard_E32s_v5,on_demand,NA,2.672,USD,Azure Retail Prices API,2025-12-18T04:45:53.620693 +AZURE,switzerlandnorth,Standard_E32s_v5,reserved_1y,NA,1.576484,USD,Azure Retail Prices API,2025-12-18T04:45:55.210223 +AZURE,switzerlandnorth,Standard_E32s_v5,reserved_3y,NA,0.988623,USD,Azure Retail Prices API,2025-12-18T04:45:55.210225 +AZURE,switzerlandnorth,Standard_E32s_v5,spot,NA,0.519971,USD,Azure Retail Prices API,2025-12-18T04:45:53.619482 +AZURE,switzerlandnorth,Standard_E48a_v4,on_demand,NA,4.324,USD,Azure Retail Prices API,2025-12-18T04:45:53.618247 +AZURE,switzerlandnorth,Standard_E48a_v4,reserved_1y,NA,2.55137,USD,Azure Retail Prices API,2025-12-18T04:45:55.208888 +AZURE,switzerlandnorth,Standard_E48a_v4,reserved_3y,NA,1.643227,USD,Azure Retail Prices API,2025-12-18T04:45:55.208891 +AZURE,switzerlandnorth,Standard_E48a_v4,spot,NA,0.799075,USD,Azure Retail Prices API,2025-12-18T04:45:53.620848 +AZURE,switzerlandnorth,Standard_E48ads_v5,on_demand,NA,4.496,USD,Azure Retail Prices API,2025-12-18T04:45:53.620020 +AZURE,switzerlandnorth,Standard_E48ads_v5,reserved_1y,NA,2.652626,USD,Azure Retail Prices API,2025-12-18T04:45:55.209906 +AZURE,switzerlandnorth,Standard_E48ads_v5,reserved_3y,NA,1.708447,USD,Azure Retail Prices API,2025-12-18T04:45:55.209909 +AZURE,switzerlandnorth,Standard_E48ads_v5,spot,NA,0.830861,USD,Azure Retail Prices API,2025-12-18T04:45:53.618824 +AZURE,switzerlandnorth,Standard_E48ads_v6,on_demand,NA,4.982,USD,Azure Retail Prices API,2025-12-18T04:45:53.620662 +AZURE,switzerlandnorth,Standard_E48ads_v6,reserved_1y,NA,2.939612,USD,Azure Retail Prices API,2025-12-18T04:45:55.210206 +AZURE,switzerlandnorth,Standard_E48ads_v6,reserved_3y,NA,1.893303,USD,Azure Retail Prices API,2025-12-18T04:45:55.210209 +AZURE,switzerlandnorth,Standard_E48ads_v6,spot,NA,0.920674,USD,Azure Retail Prices API,2025-12-18T04:45:53.618127 +AZURE,switzerlandnorth,Standard_E48as_v4,on_demand,NA,4.324,USD,Azure Retail Prices API,2025-12-18T04:45:53.618578 +AZURE,switzerlandnorth,Standard_E48as_v4,reserved_1y,NA,2.55137,USD,Azure Retail Prices API,2025-12-18T04:45:55.209089 +AZURE,switzerlandnorth,Standard_E48as_v4,reserved_3y,NA,1.643227,USD,Azure Retail Prices API,2025-12-18T04:45:55.209091 +AZURE,switzerlandnorth,Standard_E48as_v4,spot,NA,0.799075,USD,Azure Retail Prices API,2025-12-18T04:45:53.619488 +AZURE,switzerlandnorth,Standard_E48as_v5,on_demand,NA,3.878,USD,Azure Retail Prices API,2025-12-18T04:45:53.618694 +AZURE,switzerlandnorth,Standard_E48as_v5,reserved_1y,NA,2.288128,USD,Azure Retail Prices API,2025-12-18T04:45:55.209161 +AZURE,switzerlandnorth,Standard_E48as_v5,reserved_3y,NA,1.473706,USD,Azure Retail Prices API,2025-12-18T04:45:55.209164 +AZURE,switzerlandnorth,Standard_E48as_v5,spot,NA,0.716654,USD,Azure Retail Prices API,2025-12-18T04:45:53.620844 +AZURE,switzerlandnorth,Standard_E48d_v4,on_demand,NA,4.5672,USD,Azure Retail Prices API,2025-12-18T04:45:53.619943 +AZURE,switzerlandnorth,Standard_E48d_v4,reserved_1y,NA,2.694635,USD,Azure Retail Prices API,2025-12-18T04:45:55.209869 +AZURE,switzerlandnorth,Standard_E48d_v4,reserved_3y,NA,1.735502,USD,Azure Retail Prices API,2025-12-18T04:45:55.209872 +AZURE,switzerlandnorth,Standard_E48d_v4,spot,NA,0.844019,USD,Azure Retail Prices API,2025-12-18T04:45:53.619089 +AZURE,switzerlandnorth,Standard_E48ds_v4,on_demand,NA,4.5672,USD,Azure Retail Prices API,2025-12-18T04:45:53.618391 +AZURE,switzerlandnorth,Standard_E48ds_v4,reserved_1y,NA,2.694635,USD,Azure Retail Prices API,2025-12-18T04:45:55.208975 +AZURE,switzerlandnorth,Standard_E48ds_v4,reserved_3y,NA,1.735502,USD,Azure Retail Prices API,2025-12-18T04:45:55.208978 +AZURE,switzerlandnorth,Standard_E48ds_v4,spot,NA,0.844019,USD,Azure Retail Prices API,2025-12-18T04:45:53.620366 +AZURE,switzerlandnorth,Standard_E48ds_v5,on_demand,NA,4.56,USD,Azure Retail Prices API,2025-12-18T04:45:53.619035 +AZURE,switzerlandnorth,Standard_E48ds_v5,reserved_1y,NA,2.690411,USD,Azure Retail Prices API,2025-12-18T04:45:55.209358 +AZURE,switzerlandnorth,Standard_E48ds_v5,reserved_3y,NA,1.732801,USD,Azure Retail Prices API,2025-12-18T04:45:55.209360 +AZURE,switzerlandnorth,Standard_E48ds_v5,spot,NA,0.842688,USD,Azure Retail Prices API,2025-12-18T04:45:53.620163 +AZURE,switzerlandnorth,Standard_E48ds_v6,on_demand,NA,5.22,USD,Azure Retail Prices API,2025-12-18T04:45:53.620932 +AZURE,switzerlandnorth,Standard_E48ds_v6,reserved_1y,NA,3.236073,USD,Azure Retail Prices API,2025-12-18T04:45:55.210398 +AZURE,switzerlandnorth,Standard_E48ds_v6,reserved_3y,NA,2.035616,USD,Azure Retail Prices API,2025-12-18T04:45:55.210401 +AZURE,switzerlandnorth,Standard_E48ds_v6,spot,NA,0.964656,USD,Azure Retail Prices API,2025-12-18T04:45:53.620667 +AZURE,switzerlandnorth,Standard_E48pds_v6,on_demand,NA,4.378,USD,Azure Retail Prices API,2025-12-18T04:45:53.618285 +AZURE,switzerlandnorth,Standard_E48pds_v6,reserved_1y,NA,2.582763,USD,Azure Retail Prices API,2025-12-18T04:45:55.208911 +AZURE,switzerlandnorth,Standard_E48pds_v6,reserved_3y,NA,1.66347,USD,Azure Retail Prices API,2025-12-18T04:45:55.208914 +AZURE,switzerlandnorth,Standard_E48pds_v6,spot,NA,0.809054,USD,Azure Retail Prices API,2025-12-18T04:45:53.619208 +AZURE,switzerlandnorth,Standard_E48ps_v6,on_demand,NA,3.451,USD,Azure Retail Prices API,2025-12-18T04:45:53.620973 +AZURE,switzerlandnorth,Standard_E48ps_v6,reserved_1y,NA,2.036187,USD,Azure Retail Prices API,2025-12-18T04:45:55.210426 +AZURE,switzerlandnorth,Standard_E48ps_v6,reserved_3y,NA,1.311454,USD,Azure Retail Prices API,2025-12-18T04:45:55.210429 +AZURE,switzerlandnorth,Standard_E48ps_v6,spot,NA,0.637745,USD,Azure Retail Prices API,2025-12-18T04:45:53.619131 +AZURE,switzerlandnorth,Standard_E48s_v4,on_demand,NA,4.0128,USD,Azure Retail Prices API,2025-12-18T04:45:53.618559 +AZURE,switzerlandnorth,Standard_E48s_v4,reserved_1y,NA,2.36758,USD,Azure Retail Prices API,2025-12-18T04:45:55.209077 +AZURE,switzerlandnorth,Standard_E48s_v4,reserved_3y,NA,1.524848,USD,Azure Retail Prices API,2025-12-18T04:45:55.209080 +AZURE,switzerlandnorth,Standard_E48s_v4,spot,NA,0.742769,USD,Azure Retail Prices API,2025-12-18T04:45:53.618615 +AZURE,switzerlandnorth,Standard_E48s_v5,on_demand,NA,4.008,USD,Azure Retail Prices API,2025-12-18T04:45:53.620355 +AZURE,switzerlandnorth,Standard_E48s_v5,reserved_1y,NA,2.364726,USD,Azure Retail Prices API,2025-12-18T04:45:55.210059 +AZURE,switzerlandnorth,Standard_E48s_v5,reserved_3y,NA,1.482953,USD,Azure Retail Prices API,2025-12-18T04:45:55.210061 +AZURE,switzerlandnorth,Standard_E48s_v5,spot,NA,0.779957,USD,Azure Retail Prices API,2025-12-18T04:45:53.620618 +AZURE,switzerlandnorth,Standard_E4_v3,on_demand,NA,0.352,USD,Azure Retail Prices API,2025-12-18T04:45:53.617951 +AZURE,switzerlandnorth,Standard_E4_v3,reserved_1y,NA,0.203311,USD,Azure Retail Prices API,2025-12-18T04:45:55.208694 +AZURE,switzerlandnorth,Standard_E4_v3,reserved_3y,NA,0.136492,USD,Azure Retail Prices API,2025-12-18T04:45:55.208697 +AZURE,switzerlandnorth,Standard_E4_v3,spot,NA,0.067584,USD,Azure Retail Prices API,2025-12-18T04:45:53.620987 +AZURE,switzerlandnorth,Standard_E4a_v4,on_demand,NA,0.36,USD,Azure Retail Prices API,2025-12-18T04:45:53.618983 +AZURE,switzerlandnorth,Standard_E4a_v4,reserved_1y,NA,0.212557,USD,Azure Retail Prices API,2025-12-18T04:45:55.209329 +AZURE,switzerlandnorth,Standard_E4a_v4,reserved_3y,NA,0.136948,USD,Azure Retail Prices API,2025-12-18T04:45:55.209332 +AZURE,switzerlandnorth,Standard_E4a_v4,spot,NA,0.066528,USD,Azure Retail Prices API,2025-12-18T04:45:53.620438 +AZURE,switzerlandnorth,Standard_E4ads_v5,on_demand,NA,0.559,USD,Azure Retail Prices API,2025-12-18T04:45:53.619733 +AZURE,switzerlandnorth,Standard_E4ads_v5,reserved_1y,NA,0.221005,USD,Azure Retail Prices API,2025-12-18T04:45:55.209757 +AZURE,switzerlandnorth,Standard_E4ads_v5,reserved_3y,NA,0.14239,USD,Azure Retail Prices API,2025-12-18T04:45:55.209760 +AZURE,switzerlandnorth,Standard_E4ads_v5,spot,NA,0.0693,USD,Azure Retail Prices API,2025-12-18T04:45:53.618463 +AZURE,switzerlandnorth,Standard_E4ads_v6,on_demand,NA,0.415,USD,Azure Retail Prices API,2025-12-18T04:45:53.620288 +AZURE,switzerlandnorth,Standard_E4ads_v6,reserved_1y,NA,0.244977,USD,Azure Retail Prices API,2025-12-18T04:45:55.210036 +AZURE,switzerlandnorth,Standard_E4ads_v6,reserved_3y,NA,0.157763,USD,Azure Retail Prices API,2025-12-18T04:45:55.210039 +AZURE,switzerlandnorth,Standard_E4ads_v6,spot,NA,0.076692,USD,Azure Retail Prices API,2025-12-18T04:45:53.618735 +AZURE,switzerlandnorth,Standard_E4as_v4,on_demand,NA,0.36,USD,Azure Retail Prices API,2025-12-18T04:45:53.620894 +AZURE,switzerlandnorth,Standard_E4as_v4,reserved_1y,NA,0.212557,USD,Azure Retail Prices API,2025-12-18T04:45:55.210382 +AZURE,switzerlandnorth,Standard_E4as_v4,reserved_3y,NA,0.136948,USD,Azure Retail Prices API,2025-12-18T04:45:55.210384 +AZURE,switzerlandnorth,Standard_E4as_v4,spot,NA,0.066528,USD,Azure Retail Prices API,2025-12-18T04:45:53.620715 +AZURE,switzerlandnorth,Standard_E4as_v5,on_demand,NA,0.507,USD,Azure Retail Prices API,2025-12-18T04:45:53.618646 +AZURE,switzerlandnorth,Standard_E4as_v5,reserved_1y,NA,0.190639,USD,Azure Retail Prices API,2025-12-18T04:45:55.209813 +AZURE,switzerlandnorth,Standard_E4as_v5,reserved_3y,NA,0.122793,USD,Azure Retail Prices API,2025-12-18T04:45:55.209816 +AZURE,switzerlandnorth,Standard_E4as_v5,spot,NA,0.05969,USD,Azure Retail Prices API,2025-12-18T04:45:53.618808 +AZURE,switzerlandnorth,Standard_E4d_v4,on_demand,NA,0.3806,USD,Azure Retail Prices API,2025-12-18T04:45:53.618072 +AZURE,switzerlandnorth,Standard_E4d_v4,reserved_1y,NA,0.224543,USD,Azure Retail Prices API,2025-12-18T04:45:55.208778 +AZURE,switzerlandnorth,Standard_E4d_v4,reserved_3y,NA,0.144635,USD,Azure Retail Prices API,2025-12-18T04:45:55.208786 +AZURE,switzerlandnorth,Standard_E4d_v4,spot,NA,0.070335,USD,Azure Retail Prices API,2025-12-18T04:45:53.619264 +AZURE,switzerlandnorth,Standard_E4ds_v4,on_demand,NA,0.3806,USD,Azure Retail Prices API,2025-12-18T04:45:53.620372 +AZURE,switzerlandnorth,Standard_E4ds_v4,reserved_1y,NA,0.224543,USD,Azure Retail Prices API,2025-12-18T04:45:55.210064 +AZURE,switzerlandnorth,Standard_E4ds_v4,reserved_3y,NA,0.144635,USD,Azure Retail Prices API,2025-12-18T04:45:55.210067 +AZURE,switzerlandnorth,Standard_E4ds_v4,spot,NA,0.070335,USD,Azure Retail Prices API,2025-12-18T04:45:53.619777 +AZURE,switzerlandnorth,Standard_E4ds_v5,on_demand,NA,0.38,USD,Azure Retail Prices API,2025-12-18T04:45:53.620699 +AZURE,switzerlandnorth,Standard_E4ds_v5,reserved_1y,NA,0.224201,USD,Azure Retail Prices API,2025-12-18T04:45:55.210228 +AZURE,switzerlandnorth,Standard_E4ds_v5,reserved_3y,NA,0.144406,USD,Azure Retail Prices API,2025-12-18T04:45:55.210231 +AZURE,switzerlandnorth,Standard_E4ds_v5,spot,NA,0.070224,USD,Azure Retail Prices API,2025-12-18T04:45:53.620566 +AZURE,switzerlandnorth,Standard_E4ds_v6,on_demand,NA,0.435,USD,Azure Retail Prices API,2025-12-18T04:45:53.620815 +AZURE,switzerlandnorth,Standard_E4ds_v6,reserved_1y,NA,0.269635,USD,Azure Retail Prices API,2025-12-18T04:45:55.210306 +AZURE,switzerlandnorth,Standard_E4ds_v6,reserved_3y,NA,0.169635,USD,Azure Retail Prices API,2025-12-18T04:45:55.210309 +AZURE,switzerlandnorth,Standard_E4ds_v6,spot,NA,0.080388,USD,Azure Retail Prices API,2025-12-18T04:45:53.620489 +AZURE,switzerlandnorth,Standard_E4pds_v6,on_demand,NA,0.365,USD,Azure Retail Prices API,2025-12-18T04:45:53.619893 +AZURE,switzerlandnorth,Standard_E4pds_v6,reserved_1y,NA,0.215183,USD,Azure Retail Prices API,2025-12-18T04:45:55.209819 +AZURE,switzerlandnorth,Standard_E4pds_v6,reserved_3y,NA,0.138623,USD,Azure Retail Prices API,2025-12-18T04:45:55.209821 +AZURE,switzerlandnorth,Standard_E4pds_v6,spot,NA,0.067452,USD,Azure Retail Prices API,2025-12-18T04:45:53.618308 +AZURE,switzerlandnorth,Standard_E4ps_v6,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:45:53.620196 +AZURE,switzerlandnorth,Standard_E4ps_v6,reserved_1y,NA,0.169635,USD,Azure Retail Prices API,2025-12-18T04:45:55.210008 +AZURE,switzerlandnorth,Standard_E4ps_v6,reserved_3y,NA,0.109285,USD,Azure Retail Prices API,2025-12-18T04:45:55.210011 +AZURE,switzerlandnorth,Standard_E4ps_v6,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:45:53.619653 +AZURE,switzerlandnorth,Standard_E4s_v4,on_demand,NA,0.3344,USD,Azure Retail Prices API,2025-12-18T04:45:53.618320 +AZURE,switzerlandnorth,Standard_E4s_v4,reserved_1y,NA,0.197374,USD,Azure Retail Prices API,2025-12-18T04:45:55.208929 +AZURE,switzerlandnorth,Standard_E4s_v4,reserved_3y,NA,0.127093,USD,Azure Retail Prices API,2025-12-18T04:45:55.208932 +AZURE,switzerlandnorth,Standard_E4s_v4,spot,NA,0.061897,USD,Azure Retail Prices API,2025-12-18T04:45:53.619236 +AZURE,switzerlandnorth,Standard_E4s_v5,on_demand,NA,0.334,USD,Azure Retail Prices API,2025-12-18T04:45:53.619110 +AZURE,switzerlandnorth,Standard_E4s_v5,reserved_1y,NA,0.197032,USD,Azure Retail Prices API,2025-12-18T04:45:55.209385 +AZURE,switzerlandnorth,Standard_E4s_v5,reserved_3y,NA,0.123592,USD,Azure Retail Prices API,2025-12-18T04:45:55.209388 +AZURE,switzerlandnorth,Standard_E4s_v5,spot,NA,0.064996,USD,Azure Retail Prices API,2025-12-18T04:45:53.618935 +AZURE,switzerlandnorth,Standard_E64_v3,on_demand,NA,4.8136,USD,Azure Retail Prices API,2025-12-18T04:45:53.620826 +AZURE,switzerlandnorth,Standard_E64_v3,reserved_1y,NA,2.927511,USD,Azure Retail Prices API,2025-12-18T04:45:55.210318 +AZURE,switzerlandnorth,Standard_E64_v3,reserved_3y,NA,1.965601,USD,Azure Retail Prices API,2025-12-18T04:45:55.210321 +AZURE,switzerlandnorth,Standard_E64_v3,spot,NA,0.924211,USD,Azure Retail Prices API,2025-12-18T04:45:53.619451 +AZURE,switzerlandnorth,Standard_E64a_v4,on_demand,NA,5.766,USD,Azure Retail Prices API,2025-12-18T04:45:53.617957 +AZURE,switzerlandnorth,Standard_E64a_v4,reserved_1y,NA,3.401826,USD,Azure Retail Prices API,2025-12-18T04:45:55.208700 +AZURE,switzerlandnorth,Standard_E64a_v4,reserved_3y,NA,2.190982,USD,Azure Retail Prices API,2025-12-18T04:45:55.208703 +AZURE,switzerlandnorth,Standard_E64a_v4,spot,NA,1.065557,USD,Azure Retail Prices API,2025-12-18T04:45:53.619600 +AZURE,switzerlandnorth,Standard_E64ads_v5,on_demand,NA,5.995,USD,Azure Retail Prices API,2025-12-18T04:45:53.618430 +AZURE,switzerlandnorth,Standard_E64ads_v5,reserved_1y,NA,3.536758,USD,Azure Retail Prices API,2025-12-18T04:45:55.209000 +AZURE,switzerlandnorth,Standard_E64ads_v5,reserved_3y,NA,2.27793,USD,Azure Retail Prices API,2025-12-18T04:45:55.209003 +AZURE,switzerlandnorth,Standard_E64ads_v5,spot,NA,1.107876,USD,Azure Retail Prices API,2025-12-18T04:45:53.619094 +AZURE,switzerlandnorth,Standard_E64ads_v6,on_demand,NA,6.643,USD,Azure Retail Prices API,2025-12-18T04:45:53.618331 +AZURE,switzerlandnorth,Standard_E64ads_v6,reserved_1y,NA,3.919521,USD,Azure Retail Prices API,2025-12-18T04:45:55.208941 +AZURE,switzerlandnorth,Standard_E64ads_v6,reserved_3y,NA,2.524429,USD,Azure Retail Prices API,2025-12-18T04:45:55.208944 +AZURE,switzerlandnorth,Standard_E64ads_v6,spot,NA,1.227626,USD,Azure Retail Prices API,2025-12-18T04:45:53.619360 +AZURE,switzerlandnorth,Standard_E64as_v4,on_demand,NA,5.766,USD,Azure Retail Prices API,2025-12-18T04:45:53.620052 +AZURE,switzerlandnorth,Standard_E64as_v4,reserved_1y,NA,3.401826,USD,Azure Retail Prices API,2025-12-18T04:45:55.209937 +AZURE,switzerlandnorth,Standard_E64as_v4,reserved_3y,NA,2.190982,USD,Azure Retail Prices API,2025-12-18T04:45:55.209939 +AZURE,switzerlandnorth,Standard_E64as_v4,spot,NA,1.065557,USD,Azure Retail Prices API,2025-12-18T04:45:53.620265 +AZURE,switzerlandnorth,Standard_E64as_v5,on_demand,NA,8.115,USD,Azure Retail Prices API,2025-12-18T04:45:53.619281 +AZURE,switzerlandnorth,Standard_E64as_v5,reserved_1y,NA,3.050799,USD,Azure Retail Prices API,2025-12-18T04:45:55.209797 +AZURE,switzerlandnorth,Standard_E64as_v5,reserved_3y,NA,1.964916,USD,Azure Retail Prices API,2025-12-18T04:45:55.209800 +AZURE,switzerlandnorth,Standard_E64as_v5,spot,NA,0.955601,USD,Azure Retail Prices API,2025-12-18T04:45:53.620851 +AZURE,switzerlandnorth,Standard_E64d_v4,on_demand,NA,6.0896,USD,Azure Retail Prices API,2025-12-18T04:45:53.620811 +AZURE,switzerlandnorth,Standard_E64d_v4,reserved_1y,NA,3.592922,USD,Azure Retail Prices API,2025-12-18T04:45:55.210300 +AZURE,switzerlandnorth,Standard_E64d_v4,reserved_3y,NA,2.314041,USD,Azure Retail Prices API,2025-12-18T04:45:55.210303 +AZURE,switzerlandnorth,Standard_E64d_v4,spot,NA,1.125358,USD,Azure Retail Prices API,2025-12-18T04:45:53.619579 +AZURE,switzerlandnorth,Standard_E64ds_v4,on_demand,NA,6.0896,USD,Azure Retail Prices API,2025-12-18T04:45:53.619954 +AZURE,switzerlandnorth,Standard_E64ds_v4,reserved_1y,NA,3.592922,USD,Azure Retail Prices API,2025-12-18T04:45:55.209875 +AZURE,switzerlandnorth,Standard_E64ds_v4,reserved_3y,NA,2.314041,USD,Azure Retail Prices API,2025-12-18T04:45:55.209878 +AZURE,switzerlandnorth,Standard_E64ds_v4,spot,NA,1.125358,USD,Azure Retail Prices API,2025-12-18T04:45:53.620710 +AZURE,switzerlandnorth,Standard_E64ds_v5,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:45:53.619749 +AZURE,switzerlandnorth,Standard_E64ds_v5,reserved_1y,NA,3.587215,USD,Azure Retail Prices API,2025-12-18T04:45:55.209723 +AZURE,switzerlandnorth,Standard_E64ds_v5,reserved_3y,NA,2.310388,USD,Azure Retail Prices API,2025-12-18T04:45:55.209725 +AZURE,switzerlandnorth,Standard_E64ds_v5,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:45:53.619337 +AZURE,switzerlandnorth,Standard_E64ds_v6,on_demand,NA,6.959,USD,Azure Retail Prices API,2025-12-18T04:45:53.620687 +AZURE,switzerlandnorth,Standard_E64ds_v6,reserved_1y,NA,4.31484,USD,Azure Retail Prices API,2025-12-18T04:45:55.210217 +AZURE,switzerlandnorth,Standard_E64ds_v6,reserved_3y,NA,2.714155,USD,Azure Retail Prices API,2025-12-18T04:45:55.210220 +AZURE,switzerlandnorth,Standard_E64ds_v6,spot,NA,1.286023,USD,Azure Retail Prices API,2025-12-18T04:45:53.618035 +AZURE,switzerlandnorth,Standard_E64pds_v6,on_demand,NA,5.837,USD,Azure Retail Prices API,2025-12-18T04:45:53.619827 +AZURE,switzerlandnorth,Standard_E64pds_v6,reserved_1y,NA,3.443721,USD,Azure Retail Prices API,2025-12-18T04:45:55.209775 +AZURE,switzerlandnorth,Standard_E64pds_v6,reserved_3y,NA,2.217998,USD,Azure Retail Prices API,2025-12-18T04:45:55.209777 +AZURE,switzerlandnorth,Standard_E64pds_v6,spot,NA,1.078678,USD,Azure Retail Prices API,2025-12-18T04:45:53.619494 +AZURE,switzerlandnorth,Standard_E64ps_v6,on_demand,NA,4.602,USD,Azure Retail Prices API,2025-12-18T04:45:53.618441 +AZURE,switzerlandnorth,Standard_E64ps_v6,reserved_1y,NA,2.714954,USD,Azure Retail Prices API,2025-12-18T04:45:55.209012 +AZURE,switzerlandnorth,Standard_E64ps_v6,reserved_3y,NA,1.748592,USD,Azure Retail Prices API,2025-12-18T04:45:55.209015 +AZURE,switzerlandnorth,Standard_E64ps_v6,spot,NA,0.85045,USD,Azure Retail Prices API,2025-12-18T04:45:53.619137 +AZURE,switzerlandnorth,Standard_E64s_v3,on_demand,NA,4.8136,USD,Azure Retail Prices API,2025-12-18T04:45:53.620185 +AZURE,switzerlandnorth,Standard_E64s_v3,reserved_1y,NA,2.927511,USD,Azure Retail Prices API,2025-12-18T04:45:55.210002 +AZURE,switzerlandnorth,Standard_E64s_v3,reserved_3y,NA,1.965601,USD,Azure Retail Prices API,2025-12-18T04:45:55.210005 +AZURE,switzerlandnorth,Standard_E64s_v3,spot,NA,0.924211,USD,Azure Retail Prices API,2025-12-18T04:45:53.618265 +AZURE,switzerlandnorth,Standard_E64s_v4,on_demand,NA,5.3504,USD,Azure Retail Prices API,2025-12-18T04:45:53.618709 +AZURE,switzerlandnorth,Standard_E64s_v4,reserved_1y,NA,3.156735,USD,Azure Retail Prices API,2025-12-18T04:45:55.209173 +AZURE,switzerlandnorth,Standard_E64s_v4,reserved_3y,NA,2.033143,USD,Azure Retail Prices API,2025-12-18T04:45:55.209175 +AZURE,switzerlandnorth,Standard_E64s_v4,spot,NA,0.990359,USD,Azure Retail Prices API,2025-12-18T04:45:53.618730 +AZURE,switzerlandnorth,Standard_E64s_v5,on_demand,NA,5.344,USD,Azure Retail Prices API,2025-12-18T04:45:53.620467 +AZURE,switzerlandnorth,Standard_E64s_v5,reserved_1y,NA,3.152968,USD,Azure Retail Prices API,2025-12-18T04:45:55.210110 +AZURE,switzerlandnorth,Standard_E64s_v5,reserved_3y,NA,1.977283,USD,Azure Retail Prices API,2025-12-18T04:45:55.210113 +AZURE,switzerlandnorth,Standard_E64s_v5,spot,NA,1.039942,USD,Azure Retail Prices API,2025-12-18T04:45:53.619499 +AZURE,switzerlandnorth,Standard_E80ids_v4,on_demand,NA,7.612,USD,Azure Retail Prices API,2025-12-18T04:45:53.618426 +AZURE,switzerlandnorth,Standard_E80ids_v4,reserved_1y,NA,4.491096,USD,Azure Retail Prices API,2025-12-18T04:45:55.208993 +AZURE,switzerlandnorth,Standard_E80ids_v4,reserved_3y,NA,2.892542,USD,Azure Retail Prices API,2025-12-18T04:45:55.208996 +AZURE,switzerlandnorth,Standard_E80ids_v4,spot,NA,1.406698,USD,Azure Retail Prices API,2025-12-18T04:45:53.619799 +AZURE,switzerlandnorth,Standard_E80is_v4,on_demand,NA,6.688,USD,Azure Retail Prices API,2025-12-18T04:45:53.620786 +AZURE,switzerlandnorth,Standard_E80is_v4,reserved_1y,NA,3.94589,USD,Azure Retail Prices API,2025-12-18T04:45:55.210282 +AZURE,switzerlandnorth,Standard_E80is_v4,reserved_3y,NA,2.541438,USD,Azure Retail Prices API,2025-12-18T04:45:55.210284 +AZURE,switzerlandnorth,Standard_E80is_v4,spot,NA,1.237949,USD,Azure Retail Prices API,2025-12-18T04:45:53.620421 +AZURE,switzerlandnorth,Standard_E8_v3,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:45:53.618348 +AZURE,switzerlandnorth,Standard_E8_v3,reserved_1y,NA,0.406621,USD,Azure Retail Prices API,2025-12-18T04:45:55.208958 +AZURE,switzerlandnorth,Standard_E8_v3,reserved_3y,NA,0.272983,USD,Azure Retail Prices API,2025-12-18T04:45:55.208961 +AZURE,switzerlandnorth,Standard_E8_v3,spot,NA,0.135168,USD,Azure Retail Prices API,2025-12-18T04:45:53.620030 +AZURE,switzerlandnorth,Standard_E8a_v4,on_demand,NA,0.721,USD,Azure Retail Prices API,2025-12-18T04:45:53.619760 +AZURE,switzerlandnorth,Standard_E8a_v4,reserved_1y,NA,0.425228,USD,Azure Retail Prices API,2025-12-18T04:45:55.209728 +AZURE,switzerlandnorth,Standard_E8a_v4,reserved_3y,NA,0.273858,USD,Azure Retail Prices API,2025-12-18T04:45:55.209731 +AZURE,switzerlandnorth,Standard_E8a_v4,spot,NA,0.133241,USD,Azure Retail Prices API,2025-12-18T04:45:53.618814 +AZURE,switzerlandnorth,Standard_E8ads_v5,on_demand,NA,0.749,USD,Azure Retail Prices API,2025-12-18T04:45:53.618631 +AZURE,switzerlandnorth,Standard_E8ads_v5,reserved_1y,NA,0.442123,USD,Azure Retail Prices API,2025-12-18T04:45:55.209112 +AZURE,switzerlandnorth,Standard_E8ads_v5,reserved_3y,NA,0.284741,USD,Azure Retail Prices API,2025-12-18T04:45:55.209115 +AZURE,switzerlandnorth,Standard_E8ads_v5,spot,NA,0.138415,USD,Azure Retail Prices API,2025-12-18T04:45:53.618271 +AZURE,switzerlandnorth,Standard_E8ads_v6,on_demand,NA,0.83,USD,Azure Retail Prices API,2025-12-18T04:45:53.620350 +AZURE,switzerlandnorth,Standard_E8ads_v6,reserved_1y,NA,0.489954,USD,Azure Retail Prices API,2025-12-18T04:45:55.210053 +AZURE,switzerlandnorth,Standard_E8ads_v6,reserved_3y,NA,0.315563,USD,Azure Retail Prices API,2025-12-18T04:45:55.210056 +AZURE,switzerlandnorth,Standard_E8ads_v6,spot,NA,0.153384,USD,Azure Retail Prices API,2025-12-18T04:45:53.618956 +AZURE,switzerlandnorth,Standard_E8as_v4,on_demand,NA,0.721,USD,Azure Retail Prices API,2025-12-18T04:45:53.618919 +AZURE,switzerlandnorth,Standard_E8as_v4,reserved_1y,NA,0.425228,USD,Azure Retail Prices API,2025-12-18T04:45:55.209265 +AZURE,switzerlandnorth,Standard_E8as_v4,reserved_3y,NA,0.273858,USD,Azure Retail Prices API,2025-12-18T04:45:55.209267 +AZURE,switzerlandnorth,Standard_E8as_v4,spot,NA,0.133241,USD,Azure Retail Prices API,2025-12-18T04:45:53.618041 +AZURE,switzerlandnorth,Standard_E8as_v5,on_demand,NA,0.646,USD,Azure Retail Prices API,2025-12-18T04:45:53.617873 +AZURE,switzerlandnorth,Standard_E8as_v5,reserved_1y,NA,0.381393,USD,Azure Retail Prices API,2025-12-18T04:45:55.208668 +AZURE,switzerlandnorth,Standard_E8as_v5,reserved_3y,NA,0.245624,USD,Azure Retail Prices API,2025-12-18T04:45:55.208672 +AZURE,switzerlandnorth,Standard_E8as_v5,spot,NA,0.119381,USD,Azure Retail Prices API,2025-12-18T04:45:53.620317 +AZURE,switzerlandnorth,Standard_E8d_v4,on_demand,NA,0.7612,USD,Azure Retail Prices API,2025-12-18T04:45:53.619882 +AZURE,switzerlandnorth,Standard_E8d_v4,reserved_1y,NA,0.449087,USD,Azure Retail Prices API,2025-12-18T04:45:55.209802 +AZURE,switzerlandnorth,Standard_E8d_v4,reserved_3y,NA,0.289231,USD,Azure Retail Prices API,2025-12-18T04:45:55.209805 +AZURE,switzerlandnorth,Standard_E8d_v4,spot,NA,0.14067,USD,Azure Retail Prices API,2025-12-18T04:45:53.619832 +AZURE,switzerlandnorth,Standard_E8ds_v4,on_demand,NA,0.7612,USD,Azure Retail Prices API,2025-12-18T04:45:53.620180 +AZURE,switzerlandnorth,Standard_E8ds_v4,reserved_1y,NA,0.449087,USD,Azure Retail Prices API,2025-12-18T04:45:55.209996 +AZURE,switzerlandnorth,Standard_E8ds_v4,reserved_3y,NA,0.289231,USD,Azure Retail Prices API,2025-12-18T04:45:55.209999 +AZURE,switzerlandnorth,Standard_E8ds_v4,spot,NA,0.14067,USD,Azure Retail Prices API,2025-12-18T04:45:53.620361 +AZURE,switzerlandnorth,Standard_E8ds_v5,on_demand,NA,0.76,USD,Azure Retail Prices API,2025-12-18T04:45:53.619631 +AZURE,switzerlandnorth,Standard_E8ds_v5,reserved_1y,NA,0.448402,USD,Azure Retail Prices API,2025-12-18T04:45:55.209653 +AZURE,switzerlandnorth,Standard_E8ds_v5,reserved_3y,NA,0.288813,USD,Azure Retail Prices API,2025-12-18T04:45:55.209657 +AZURE,switzerlandnorth,Standard_E8ds_v5,spot,NA,0.140448,USD,Azure Retail Prices API,2025-12-18T04:45:53.619445 +AZURE,switzerlandnorth,Standard_E8ds_v6,on_demand,NA,0.87,USD,Azure Retail Prices API,2025-12-18T04:45:53.619306 +AZURE,switzerlandnorth,Standard_E8ds_v6,reserved_1y,NA,0.539384,USD,Azure Retail Prices API,2025-12-18T04:45:55.209465 +AZURE,switzerlandnorth,Standard_E8ds_v6,reserved_3y,NA,0.339269,USD,Azure Retail Prices API,2025-12-18T04:45:55.209468 +AZURE,switzerlandnorth,Standard_E8ds_v6,spot,NA,0.160776,USD,Azure Retail Prices API,2025-12-18T04:45:53.619931 +AZURE,switzerlandnorth,Standard_E8pds_v6,on_demand,NA,0.73,USD,Azure Retail Prices API,2025-12-18T04:45:53.620757 +AZURE,switzerlandnorth,Standard_E8pds_v6,reserved_1y,NA,0.430479,USD,Azure Retail Prices API,2025-12-18T04:45:55.210273 +AZURE,switzerlandnorth,Standard_E8pds_v6,reserved_3y,NA,0.277245,USD,Azure Retail Prices API,2025-12-18T04:45:55.210277 +AZURE,switzerlandnorth,Standard_E8pds_v6,spot,NA,0.134904,USD,Azure Retail Prices API,2025-12-18T04:45:53.620946 +AZURE,switzerlandnorth,Standard_E8ps_v6,on_demand,NA,0.575,USD,Azure Retail Prices API,2025-12-18T04:45:53.620817 +AZURE,switzerlandnorth,Standard_E8ps_v6,reserved_1y,NA,0.339384,USD,Azure Retail Prices API,2025-12-18T04:45:55.210312 +AZURE,switzerlandnorth,Standard_E8ps_v6,reserved_3y,NA,0.218569,USD,Azure Retail Prices API,2025-12-18T04:45:55.210315 +AZURE,switzerlandnorth,Standard_E8ps_v6,spot,NA,0.10626,USD,Azure Retail Prices API,2025-12-18T04:45:53.619046 +AZURE,switzerlandnorth,Standard_E8s_v3,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:45:53.619816 +AZURE,switzerlandnorth,Standard_E8s_v3,reserved_1y,NA,0.406621,USD,Azure Retail Prices API,2025-12-18T04:45:55.209763 +AZURE,switzerlandnorth,Standard_E8s_v3,reserved_3y,NA,0.272983,USD,Azure Retail Prices API,2025-12-18T04:45:55.209766 +AZURE,switzerlandnorth,Standard_E8s_v3,spot,NA,0.135168,USD,Azure Retail Prices API,2025-12-18T04:45:53.617896 +AZURE,switzerlandnorth,Standard_E8s_v4,on_demand,NA,0.6688,USD,Azure Retail Prices API,2025-12-18T04:45:53.620522 +AZURE,switzerlandnorth,Standard_E8s_v4,reserved_1y,NA,0.394521,USD,Azure Retail Prices API,2025-12-18T04:45:55.210146 +AZURE,switzerlandnorth,Standard_E8s_v4,reserved_3y,NA,0.254148,USD,Azure Retail Prices API,2025-12-18T04:45:55.210148 +AZURE,switzerlandnorth,Standard_E8s_v4,spot,NA,0.123795,USD,Azure Retail Prices API,2025-12-18T04:45:53.619771 +AZURE,switzerlandnorth,Standard_E8s_v5,on_demand,NA,0.668,USD,Azure Retail Prices API,2025-12-18T04:45:53.618951 +AZURE,switzerlandnorth,Standard_E8s_v5,reserved_1y,NA,0.394064,USD,Azure Retail Prices API,2025-12-18T04:45:55.209292 +AZURE,switzerlandnorth,Standard_E8s_v5,reserved_3y,NA,0.247146,USD,Azure Retail Prices API,2025-12-18T04:45:55.209296 +AZURE,switzerlandnorth,Standard_E8s_v5,spot,NA,0.129993,USD,Azure Retail Prices API,2025-12-18T04:45:53.619247 +AZURE,switzerlandnorth,Standard_E96a_v4,on_demand,NA,8.649,USD,Azure Retail Prices API,2025-12-18T04:45:53.619866 +AZURE,switzerlandnorth,Standard_E96a_v4,reserved_1y,NA,5.10274,USD,Azure Retail Prices API,2025-12-18T04:45:55.209791 +AZURE,switzerlandnorth,Standard_E96a_v4,reserved_3y,NA,3.286492,USD,Azure Retail Prices API,2025-12-18T04:45:55.209794 +AZURE,switzerlandnorth,Standard_E96a_v4,spot,NA,1.598335,USD,Azure Retail Prices API,2025-12-18T04:45:53.619416 +AZURE,switzerlandnorth,Standard_E96ads_v5,on_demand,NA,8.992,USD,Azure Retail Prices API,2025-12-18T04:45:53.619550 +AZURE,switzerlandnorth,Standard_E96ads_v5,reserved_1y,NA,5.305137,USD,Azure Retail Prices API,2025-12-18T04:45:55.209620 +AZURE,switzerlandnorth,Standard_E96ads_v5,reserved_3y,NA,3.416895,USD,Azure Retail Prices API,2025-12-18T04:45:55.209623 +AZURE,switzerlandnorth,Standard_E96ads_v5,spot,NA,1.661722,USD,Azure Retail Prices API,2025-12-18T04:45:53.619196 +AZURE,switzerlandnorth,Standard_E96ads_v6,on_demand,NA,9.965,USD,Azure Retail Prices API,2025-12-18T04:45:53.620952 +AZURE,switzerlandnorth,Standard_E96ads_v6,reserved_1y,NA,5.879224,USD,Azure Retail Prices API,2025-12-18T04:45:55.210409 +AZURE,switzerlandnorth,Standard_E96ads_v6,reserved_3y,NA,3.786606,USD,Azure Retail Prices API,2025-12-18T04:45:55.210412 +AZURE,switzerlandnorth,Standard_E96ads_v6,spot,NA,1.841532,USD,Azure Retail Prices API,2025-12-18T04:45:53.620752 +AZURE,switzerlandnorth,Standard_E96as_v4,on_demand,NA,8.649,USD,Azure Retail Prices API,2025-12-18T04:45:53.620427 +AZURE,switzerlandnorth,Standard_E96as_v4,reserved_1y,NA,5.10274,USD,Azure Retail Prices API,2025-12-18T04:45:55.210094 +AZURE,switzerlandnorth,Standard_E96as_v4,reserved_3y,NA,3.286492,USD,Azure Retail Prices API,2025-12-18T04:45:55.210097 +AZURE,switzerlandnorth,Standard_E96as_v4,spot,NA,1.598335,USD,Azure Retail Prices API,2025-12-18T04:45:53.620544 +AZURE,switzerlandnorth,Standard_E96as_v5,on_demand,NA,12.172,USD,Azure Retail Prices API,2025-12-18T04:45:53.618047 +AZURE,switzerlandnorth,Standard_E96as_v5,reserved_1y,NA,4.576256,USD,Azure Retail Prices API,2025-12-18T04:45:55.209608 +AZURE,switzerlandnorth,Standard_E96as_v5,reserved_3y,NA,2.947412,USD,Azure Retail Prices API,2025-12-18T04:45:55.209611 +AZURE,switzerlandnorth,Standard_E96as_v5,spot,NA,1.433309,USD,Azure Retail Prices API,2025-12-18T04:45:53.619241 +AZURE,switzerlandnorth,Standard_E96ds_v5,on_demand,NA,9.12,USD,Azure Retail Prices API,2025-12-18T04:45:53.618705 +AZURE,switzerlandnorth,Standard_E96ds_v5,reserved_1y,NA,5.380822,USD,Azure Retail Prices API,2025-12-18T04:45:55.209167 +AZURE,switzerlandnorth,Standard_E96ds_v5,reserved_3y,NA,3.465601,USD,Azure Retail Prices API,2025-12-18T04:45:55.209170 +AZURE,switzerlandnorth,Standard_E96ds_v5,spot,NA,1.685376,USD,Azure Retail Prices API,2025-12-18T04:45:53.619637 +AZURE,switzerlandnorth,Standard_E96ds_v6,on_demand,NA,10.439,USD,Azure Retail Prices API,2025-12-18T04:45:53.619855 +AZURE,switzerlandnorth,Standard_E96ds_v6,reserved_1y,NA,6.47226,USD,Azure Retail Prices API,2025-12-18T04:45:55.209786 +AZURE,switzerlandnorth,Standard_E96ds_v6,reserved_3y,NA,4.071233,USD,Azure Retail Prices API,2025-12-18T04:45:55.209789 +AZURE,switzerlandnorth,Standard_E96ds_v6,spot,NA,1.929127,USD,Azure Retail Prices API,2025-12-18T04:45:53.618011 +AZURE,switzerlandnorth,Standard_E96pds_v6,on_demand,NA,8.755,USD,Azure Retail Prices API,2025-12-18T04:45:53.619422 +AZURE,switzerlandnorth,Standard_E96pds_v6,reserved_1y,NA,5.165525,USD,Azure Retail Prices API,2025-12-18T04:45:55.209548 +AZURE,switzerlandnorth,Standard_E96pds_v6,reserved_3y,NA,3.326979,USD,Azure Retail Prices API,2025-12-18T04:45:55.209551 +AZURE,switzerlandnorth,Standard_E96pds_v6,spot,NA,1.617924,USD,Azure Retail Prices API,2025-12-18T04:45:53.620623 +AZURE,switzerlandnorth,Standard_E96ps_v6,on_demand,NA,6.902,USD,Azure Retail Prices API,2025-12-18T04:45:53.619510 +AZURE,switzerlandnorth,Standard_E96ps_v6,reserved_1y,NA,4.072374,USD,Azure Retail Prices API,2025-12-18T04:45:55.209591 +AZURE,switzerlandnorth,Standard_E96ps_v6,reserved_3y,NA,2.622907,USD,Azure Retail Prices API,2025-12-18T04:45:55.209594 +AZURE,switzerlandnorth,Standard_E96ps_v6,spot,NA,1.27549,USD,Azure Retail Prices API,2025-12-18T04:45:53.620612 +AZURE,switzerlandnorth,Standard_E96s_v5,on_demand,NA,8.016,USD,Azure Retail Prices API,2025-12-18T04:45:53.619642 +AZURE,switzerlandnorth,Standard_E96s_v5,reserved_1y,NA,4.729452,USD,Azure Retail Prices API,2025-12-18T04:45:55.209660 +AZURE,switzerlandnorth,Standard_E96s_v5,reserved_3y,NA,2.965906,USD,Azure Retail Prices API,2025-12-18T04:45:55.209663 +AZURE,switzerlandnorth,Standard_E96s_v5,spot,NA,1.559914,USD,Azure Retail Prices API,2025-12-18T04:45:53.617939 +AZURE,switzerlandnorth,Standard_EC16ads_v5,on_demand,NA,1.499,USD,Azure Retail Prices API,2025-12-18T04:45:53.619843 +AZURE,switzerlandnorth,Standard_EC16ads_v5,reserved_1y,NA,1.198858,USD,Azure Retail Prices API,2025-12-18T04:45:55.209780 +AZURE,switzerlandnorth,Standard_EC16ads_v5,reserved_3y,NA,0.899201,USD,Azure Retail Prices API,2025-12-18T04:45:55.209783 +AZURE,switzerlandnorth,Standard_EC16ads_v5,spot,NA,0.282861,USD,Azure Retail Prices API,2025-12-18T04:45:53.618835 +AZURE,switzerlandnorth,Standard_EC16ads_v6,on_demand,NA,1.661,USD,Azure Retail Prices API,2025-12-18T04:45:53.618242 +AZURE,switzerlandnorth,Standard_EC16ads_v6,reserved_1y,NA,0.979909,USD,Azure Retail Prices API,2025-12-18T04:45:55.208881 +AZURE,switzerlandnorth,Standard_EC16ads_v6,reserved_3y,NA,0.631088,USD,Azure Retail Prices API,2025-12-18T04:45:55.208885 +AZURE,switzerlandnorth,Standard_EC16ads_v6,spot,NA,0.306953,USD,Azure Retail Prices API,2025-12-18T04:45:53.619877 +AZURE,switzerlandnorth,Standard_EC16as_v5,on_demand,NA,1.293,USD,Azure Retail Prices API,2025-12-18T04:45:53.619743 +AZURE,switzerlandnorth,Standard_EC16as_v5,reserved_1y,NA,1.034132,USD,Azure Retail Prices API,2025-12-18T04:45:55.209717 +AZURE,switzerlandnorth,Standard_EC16as_v5,reserved_3y,NA,0.775647,USD,Azure Retail Prices API,2025-12-18T04:45:55.209720 +AZURE,switzerlandnorth,Standard_EC16as_v5,spot,NA,0.243989,USD,Azure Retail Prices API,2025-12-18T04:45:53.620456 +AZURE,switzerlandnorth,Standard_EC16as_v6,on_demand,NA,1.365,USD,Azure Retail Prices API,2025-12-18T04:45:53.618757 +AZURE,switzerlandnorth,Standard_EC16as_v6,reserved_1y,NA,0.805251,USD,Azure Retail Prices API,2025-12-18T04:45:55.209200 +AZURE,switzerlandnorth,Standard_EC16as_v6,reserved_3y,NA,0.518607,USD,Azure Retail Prices API,2025-12-18T04:45:55.209203 +AZURE,switzerlandnorth,Standard_EC16as_v6,spot,NA,0.252252,USD,Azure Retail Prices API,2025-12-18T04:45:53.618475 +AZURE,switzerlandnorth,Standard_EC20ads_v5,on_demand,NA,1.873,USD,Azure Retail Prices API,2025-12-18T04:45:53.619179 +AZURE,switzerlandnorth,Standard_EC20ads_v5,reserved_1y,NA,1.49863,USD,Azure Retail Prices API,2025-12-18T04:45:55.209415 +AZURE,switzerlandnorth,Standard_EC20ads_v5,reserved_3y,NA,1.123973,USD,Azure Retail Prices API,2025-12-18T04:45:55.209417 +AZURE,switzerlandnorth,Standard_EC20ads_v5,spot,NA,0.353435,USD,Azure Retail Prices API,2025-12-18T04:45:53.619595 +AZURE,switzerlandnorth,Standard_EC20as_v5,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:45:53.618090 +AZURE,switzerlandnorth,Standard_EC20as_v5,reserved_1y,NA,1.292694,USD,Azure Retail Prices API,2025-12-18T04:45:55.208791 +AZURE,switzerlandnorth,Standard_EC20as_v5,reserved_3y,NA,0.969559,USD,Azure Retail Prices API,2025-12-18T04:45:55.208797 +AZURE,switzerlandnorth,Standard_EC20as_v5,spot,NA,0.304939,USD,Azure Retail Prices API,2025-12-18T04:45:53.620232 +AZURE,switzerlandnorth,Standard_EC2ads_v6,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:53.619704 +AZURE,switzerlandnorth,Standard_EC2ads_v6,reserved_1y,NA,0.122489,USD,Azure Retail Prices API,2025-12-18T04:45:55.209695 +AZURE,switzerlandnorth,Standard_EC2ads_v6,reserved_3y,NA,0.078881,USD,Azure Retail Prices API,2025-12-18T04:45:55.209698 +AZURE,switzerlandnorth,Standard_EC2ads_v6,spot,NA,0.038438,USD,Azure Retail Prices API,2025-12-18T04:45:53.619287 +AZURE,switzerlandnorth,Standard_EC2as_v6,on_demand,NA,0.171,USD,Azure Retail Prices API,2025-12-18T04:45:53.618152 +AZURE,switzerlandnorth,Standard_EC2as_v6,reserved_1y,NA,0.100685,USD,Azure Retail Prices API,2025-12-18T04:45:55.208826 +AZURE,switzerlandnorth,Standard_EC2as_v6,reserved_3y,NA,0.06484,USD,Azure Retail Prices API,2025-12-18T04:45:55.208829 +AZURE,switzerlandnorth,Standard_EC2as_v6,spot,NA,0.031601,USD,Azure Retail Prices API,2025-12-18T04:45:53.618065 +AZURE,switzerlandnorth,Standard_EC32ads_v5,on_demand,NA,2.997,USD,Azure Retail Prices API,2025-12-18T04:45:53.619057 +AZURE,switzerlandnorth,Standard_EC32ads_v5,reserved_1y,NA,2.397831,USD,Azure Retail Prices API,2025-12-18T04:45:55.209363 +AZURE,switzerlandnorth,Standard_EC32ads_v5,reserved_3y,NA,1.798364,USD,Azure Retail Prices API,2025-12-18T04:45:55.209366 +AZURE,switzerlandnorth,Standard_EC32ads_v5,spot,NA,0.565534,USD,Azure Retail Prices API,2025-12-18T04:45:53.618878 +AZURE,switzerlandnorth,Standard_EC32ads_v6,on_demand,NA,3.322,USD,Azure Retail Prices API,2025-12-18T04:45:53.620237 +AZURE,switzerlandnorth,Standard_EC32ads_v6,reserved_1y,NA,1.959703,USD,Azure Retail Prices API,2025-12-18T04:45:55.210019 +AZURE,switzerlandnorth,Standard_EC32ads_v6,reserved_3y,NA,1.262215,USD,Azure Retail Prices API,2025-12-18T04:45:55.210022 +AZURE,switzerlandnorth,Standard_EC32ads_v6,spot,NA,0.613906,USD,Azure Retail Prices API,2025-12-18T04:45:53.620628 +AZURE,switzerlandnorth,Standard_EC32as_v5,on_demand,NA,2.585,USD,Azure Retail Prices API,2025-12-18T04:45:53.618507 +AZURE,switzerlandnorth,Standard_EC32as_v5,reserved_1y,NA,2.068379,USD,Azure Retail Prices API,2025-12-18T04:45:55.209041 +AZURE,switzerlandnorth,Standard_EC32as_v5,reserved_3y,NA,1.551256,USD,Azure Retail Prices API,2025-12-18T04:45:55.209044 +AZURE,switzerlandnorth,Standard_EC32as_v5,spot,NA,0.48779,USD,Azure Retail Prices API,2025-12-18T04:45:53.619838 +AZURE,switzerlandnorth,Standard_EC32as_v6,on_demand,NA,2.73,USD,Azure Retail Prices API,2025-12-18T04:45:53.620633 +AZURE,switzerlandnorth,Standard_EC32as_v6,reserved_1y,NA,1.610502,USD,Azure Retail Prices API,2025-12-18T04:45:55.210185 +AZURE,switzerlandnorth,Standard_EC32as_v6,reserved_3y,NA,1.037253,USD,Azure Retail Prices API,2025-12-18T04:45:55.210187 +AZURE,switzerlandnorth,Standard_EC32as_v6,spot,NA,0.504504,USD,Azure Retail Prices API,2025-12-18T04:45:53.618485 +AZURE,switzerlandnorth,Standard_EC48ads_v5,on_demand,NA,4.496,USD,Azure Retail Prices API,2025-12-18T04:45:53.619230 +AZURE,switzerlandnorth,Standard_EC48ads_v5,reserved_1y,NA,3.596689,USD,Azure Retail Prices API,2025-12-18T04:45:55.209437 +AZURE,switzerlandnorth,Standard_EC48ads_v5,reserved_3y,NA,2.697565,USD,Azure Retail Prices API,2025-12-18T04:45:55.209439 +AZURE,switzerlandnorth,Standard_EC48ads_v5,spot,NA,0.848395,USD,Azure Retail Prices API,2025-12-18T04:45:53.619727 +AZURE,switzerlandnorth,Standard_EC48ads_v6,on_demand,NA,4.982,USD,Azure Retail Prices API,2025-12-18T04:45:53.620884 +AZURE,switzerlandnorth,Standard_EC48ads_v6,reserved_1y,NA,2.939612,USD,Azure Retail Prices API,2025-12-18T04:45:55.210364 +AZURE,switzerlandnorth,Standard_EC48ads_v6,reserved_3y,NA,1.893303,USD,Azure Retail Prices API,2025-12-18T04:45:55.210366 +AZURE,switzerlandnorth,Standard_EC48ads_v6,spot,NA,0.920674,USD,Azure Retail Prices API,2025-12-18T04:45:53.620311 +AZURE,switzerlandnorth,Standard_EC48as_v5,on_demand,NA,3.878,USD,Azure Retail Prices API,2025-12-18T04:45:53.620505 +AZURE,switzerlandnorth,Standard_EC48as_v5,reserved_1y,NA,3.102511,USD,Azure Retail Prices API,2025-12-18T04:45:55.210140 +AZURE,switzerlandnorth,Standard_EC48as_v5,reserved_3y,NA,2.326903,USD,Azure Retail Prices API,2025-12-18T04:45:55.210143 +AZURE,switzerlandnorth,Standard_EC48as_v5,spot,NA,0.731779,USD,Azure Retail Prices API,2025-12-18T04:45:53.620607 +AZURE,switzerlandnorth,Standard_EC48as_v6,on_demand,NA,4.094,USD,Azure Retail Prices API,2025-12-18T04:45:53.618447 +AZURE,switzerlandnorth,Standard_EC48as_v6,reserved_1y,NA,2.415639,USD,Azure Retail Prices API,2025-12-18T04:45:55.209018 +AZURE,switzerlandnorth,Standard_EC48as_v6,reserved_3y,NA,1.55586,USD,Azure Retail Prices API,2025-12-18T04:45:55.209021 +AZURE,switzerlandnorth,Standard_EC48as_v6,spot,NA,0.756571,USD,Azure Retail Prices API,2025-12-18T04:45:53.620300 +AZURE,switzerlandnorth,Standard_EC4ads_v5,on_demand,NA,0.375,USD,Azure Retail Prices API,2025-12-18T04:45:53.618361 +AZURE,switzerlandnorth,Standard_EC4ads_v5,reserved_1y,NA,0.299772,USD,Azure Retail Prices API,2025-12-18T04:45:55.208964 +AZURE,switzerlandnorth,Standard_EC4ads_v5,reserved_3y,NA,0.22481,USD,Azure Retail Prices API,2025-12-18T04:45:55.208967 +AZURE,switzerlandnorth,Standard_EC4ads_v5,spot,NA,0.070762,USD,Azure Retail Prices API,2025-12-18T04:45:53.619676 +AZURE,switzerlandnorth,Standard_EC4ads_v6,on_demand,NA,0.415,USD,Azure Retail Prices API,2025-12-18T04:45:53.619648 +AZURE,switzerlandnorth,Standard_EC4ads_v6,reserved_1y,NA,0.244977,USD,Azure Retail Prices API,2025-12-18T04:45:55.209666 +AZURE,switzerlandnorth,Standard_EC4ads_v6,reserved_3y,NA,0.157763,USD,Azure Retail Prices API,2025-12-18T04:45:55.209669 +AZURE,switzerlandnorth,Standard_EC4ads_v6,spot,NA,0.076692,USD,Azure Retail Prices API,2025-12-18T04:45:53.619405 +AZURE,switzerlandnorth,Standard_EC4as_v5,on_demand,NA,0.323,USD,Azure Retail Prices API,2025-12-18T04:45:53.619399 +AZURE,switzerlandnorth,Standard_EC4as_v5,reserved_1y,NA,0.258562,USD,Azure Retail Prices API,2025-12-18T04:45:55.209537 +AZURE,switzerlandnorth,Standard_EC4as_v5,reserved_3y,NA,0.193912,USD,Azure Retail Prices API,2025-12-18T04:45:55.209540 +AZURE,switzerlandnorth,Standard_EC4as_v5,spot,NA,0.06095,USD,Azure Retail Prices API,2025-12-18T04:45:53.620517 +AZURE,switzerlandnorth,Standard_EC4as_v6,on_demand,NA,0.341,USD,Azure Retail Prices API,2025-12-18T04:45:53.620796 +AZURE,switzerlandnorth,Standard_EC4as_v6,reserved_1y,NA,0.201256,USD,Azure Retail Prices API,2025-12-18T04:45:55.210287 +AZURE,switzerlandnorth,Standard_EC4as_v6,reserved_3y,NA,0.129642,USD,Azure Retail Prices API,2025-12-18T04:45:55.210290 +AZURE,switzerlandnorth,Standard_EC4as_v6,spot,NA,0.063017,USD,Azure Retail Prices API,2025-12-18T04:45:53.620730 +AZURE,switzerlandnorth,Standard_EC64ads_v5,on_demand,NA,5.995,USD,Azure Retail Prices API,2025-12-18T04:45:53.617980 +AZURE,switzerlandnorth,Standard_EC64ads_v5,reserved_1y,NA,4.795662,USD,Azure Retail Prices API,2025-12-18T04:45:55.208712 +AZURE,switzerlandnorth,Standard_EC64ads_v5,reserved_3y,NA,3.596728,USD,Azure Retail Prices API,2025-12-18T04:45:55.208715 +AZURE,switzerlandnorth,Standard_EC64ads_v5,spot,NA,1.131256,USD,Azure Retail Prices API,2025-12-18T04:45:53.620990 +AZURE,switzerlandnorth,Standard_EC64ads_v6,on_demand,NA,6.643,USD,Azure Retail Prices API,2025-12-18T04:45:53.617933 +AZURE,switzerlandnorth,Standard_EC64ads_v6,reserved_1y,NA,3.919521,USD,Azure Retail Prices API,2025-12-18T04:45:55.208687 +AZURE,switzerlandnorth,Standard_EC64ads_v6,reserved_3y,NA,2.524429,USD,Azure Retail Prices API,2025-12-18T04:45:55.208691 +AZURE,switzerlandnorth,Standard_EC64ads_v6,spot,NA,1.227626,USD,Azure Retail Prices API,2025-12-18T04:45:53.618374 +AZURE,switzerlandnorth,Standard_EC64as_v5,on_demand,NA,5.171,USD,Azure Retail Prices API,2025-12-18T04:45:53.619321 +AZURE,switzerlandnorth,Standard_EC64as_v5,reserved_1y,NA,4.136758,USD,Azure Retail Prices API,2025-12-18T04:45:55.209487 +AZURE,switzerlandnorth,Standard_EC64as_v5,reserved_3y,NA,3.102511,USD,Azure Retail Prices API,2025-12-18T04:45:55.209492 +AZURE,switzerlandnorth,Standard_EC64as_v5,spot,NA,0.975768,USD,Azure Retail Prices API,2025-12-18T04:45:53.620416 +AZURE,switzerlandnorth,Standard_EC64as_v6,on_demand,NA,5.459,USD,Azure Retail Prices API,2025-12-18T04:45:53.620935 +AZURE,switzerlandnorth,Standard_EC64as_v6,reserved_1y,NA,3.22089,USD,Azure Retail Prices API,2025-12-18T04:45:55.210404 +AZURE,switzerlandnorth,Standard_EC64as_v6,reserved_3y,NA,2.074505,USD,Azure Retail Prices API,2025-12-18T04:45:55.210406 +AZURE,switzerlandnorth,Standard_EC64as_v6,spot,NA,1.008823,USD,Azure Retail Prices API,2025-12-18T04:45:53.620432 +AZURE,switzerlandnorth,Standard_EC8ads_v5,on_demand,NA,0.749,USD,Azure Retail Prices API,2025-12-18T04:45:53.618652 +AZURE,switzerlandnorth,Standard_EC8ads_v5,reserved_1y,NA,0.599429,USD,Azure Retail Prices API,2025-12-18T04:45:55.209143 +AZURE,switzerlandnorth,Standard_EC8ads_v5,reserved_3y,NA,0.449581,USD,Azure Retail Prices API,2025-12-18T04:45:55.209146 +AZURE,switzerlandnorth,Standard_EC8ads_v5,spot,NA,0.141336,USD,Azure Retail Prices API,2025-12-18T04:45:53.618564 +AZURE,switzerlandnorth,Standard_EC8ads_v6,on_demand,NA,0.83,USD,Azure Retail Prices API,2025-12-18T04:45:53.619664 +AZURE,switzerlandnorth,Standard_EC8ads_v6,reserved_1y,NA,0.489954,USD,Azure Retail Prices API,2025-12-18T04:45:55.209677 +AZURE,switzerlandnorth,Standard_EC8ads_v6,reserved_3y,NA,0.315563,USD,Azure Retail Prices API,2025-12-18T04:45:55.209680 +AZURE,switzerlandnorth,Standard_EC8ads_v6,spot,NA,0.153384,USD,Azure Retail Prices API,2025-12-18T04:45:53.620832 +AZURE,switzerlandnorth,Standard_EC8as_v5,on_demand,NA,0.646,USD,Azure Retail Prices API,2025-12-18T04:45:53.618924 +AZURE,switzerlandnorth,Standard_EC8as_v5,reserved_1y,NA,0.517123,USD,Azure Retail Prices API,2025-12-18T04:45:55.209272 +AZURE,switzerlandnorth,Standard_EC8as_v5,reserved_3y,NA,0.387823,USD,Azure Retail Prices API,2025-12-18T04:45:55.209276 +AZURE,switzerlandnorth,Standard_EC8as_v5,spot,NA,0.1219,USD,Azure Retail Prices API,2025-12-18T04:45:53.619625 +AZURE,switzerlandnorth,Standard_EC8as_v6,on_demand,NA,0.682,USD,Azure Retail Prices API,2025-12-18T04:45:53.619658 +AZURE,switzerlandnorth,Standard_EC8as_v6,reserved_1y,NA,0.402626,USD,Azure Retail Prices API,2025-12-18T04:45:55.209672 +AZURE,switzerlandnorth,Standard_EC8as_v6,reserved_3y,NA,0.259323,USD,Azure Retail Prices API,2025-12-18T04:45:55.209674 +AZURE,switzerlandnorth,Standard_EC8as_v6,spot,NA,0.126034,USD,Azure Retail Prices API,2025-12-18T04:45:53.619804 +AZURE,switzerlandnorth,Standard_EC96ads_v5,on_demand,NA,8.992,USD,Azure Retail Prices API,2025-12-18T04:45:53.619670 +AZURE,switzerlandnorth,Standard_EC96ads_v5,reserved_1y,NA,7.193493,USD,Azure Retail Prices API,2025-12-18T04:45:55.209683 +AZURE,switzerlandnorth,Standard_EC96ads_v5,reserved_3y,NA,5.395091,USD,Azure Retail Prices API,2025-12-18T04:45:55.209686 +AZURE,switzerlandnorth,Standard_EC96ads_v5,spot,NA,1.69679,USD,Azure Retail Prices API,2025-12-18T04:45:53.618109 +AZURE,switzerlandnorth,Standard_EC96ads_v6,on_demand,NA,9.965,USD,Azure Retail Prices API,2025-12-18T04:45:53.618480 +AZURE,switzerlandnorth,Standard_EC96ads_v6,reserved_1y,NA,5.879224,USD,Azure Retail Prices API,2025-12-18T04:45:55.209035 +AZURE,switzerlandnorth,Standard_EC96ads_v6,reserved_3y,NA,3.786606,USD,Azure Retail Prices API,2025-12-18T04:45:55.209038 +AZURE,switzerlandnorth,Standard_EC96ads_v6,spot,NA,1.841532,USD,Azure Retail Prices API,2025-12-18T04:45:53.619970 +AZURE,switzerlandnorth,Standard_EC96as_v5,on_demand,NA,7.756,USD,Azure Retail Prices API,2025-12-18T04:45:53.618436 +AZURE,switzerlandnorth,Standard_EC96as_v5,reserved_1y,NA,6.205023,USD,Azure Retail Prices API,2025-12-18T04:45:55.209006 +AZURE,switzerlandnorth,Standard_EC96as_v5,reserved_3y,NA,4.653805,USD,Azure Retail Prices API,2025-12-18T04:45:55.209009 +AZURE,switzerlandnorth,Standard_EC96as_v5,spot,NA,1.463557,USD,Azure Retail Prices API,2025-12-18T04:45:53.619158 +AZURE,switzerlandnorth,Standard_EC96as_v6,on_demand,NA,8.189,USD,Azure Retail Prices API,2025-12-18T04:45:53.618103 +AZURE,switzerlandnorth,Standard_EC96as_v6,reserved_1y,NA,4.831393,USD,Azure Retail Prices API,2025-12-18T04:45:55.208801 +AZURE,switzerlandnorth,Standard_EC96as_v6,reserved_3y,NA,3.111758,USD,Azure Retail Prices API,2025-12-18T04:45:55.208804 +AZURE,switzerlandnorth,Standard_EC96as_v6,spot,NA,1.513327,USD,Azure Retail Prices API,2025-12-18T04:45:53.619301 +AZURE,switzerlandnorth,Standard_F16,on_demand,NA,1.0164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379495 +AZURE,switzerlandnorth,Standard_F16,reserved_1y,NA,0.60984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379503 +AZURE,switzerlandnorth,Standard_F16,reserved_3y,NA,0.40656,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379507 +AZURE,switzerlandnorth,Standard_F16,spot,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379499 +AZURE,switzerlandnorth,Standard_F16s,on_demand,NA,1.0164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381801 +AZURE,switzerlandnorth,Standard_F16s,reserved_1y,NA,0.60984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381810 +AZURE,switzerlandnorth,Standard_F16s,reserved_3y,NA,0.40656,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381814 +AZURE,switzerlandnorth,Standard_F16s,spot,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381806 +AZURE,switzerlandnorth,Standard_F16s_v2,on_demand,NA,0.8624,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384529 +AZURE,switzerlandnorth,Standard_F16s_v2,reserved_1y,NA,0.51744,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384538 +AZURE,switzerlandnorth,Standard_F16s_v2,reserved_3y,NA,0.34496,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384544 +AZURE,switzerlandnorth,Standard_F16s_v2,spot,NA,0.25872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384533 +AZURE,switzerlandnorth,Standard_F32s_v2,on_demand,NA,1.7248,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385339 +AZURE,switzerlandnorth,Standard_F32s_v2,reserved_1y,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385348 +AZURE,switzerlandnorth,Standard_F32s_v2,reserved_3y,NA,0.68992,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385355 +AZURE,switzerlandnorth,Standard_F32s_v2,spot,NA,0.51744,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385343 +AZURE,switzerlandnorth,Standard_F4,on_demand,NA,0.2541,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377939 +AZURE,switzerlandnorth,Standard_F4,reserved_1y,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377947 +AZURE,switzerlandnorth,Standard_F4,reserved_3y,NA,0.10164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377952 +AZURE,switzerlandnorth,Standard_F4,spot,NA,0.07623,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377943 +AZURE,switzerlandnorth,Standard_F48s_v2,on_demand,NA,2.5872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386113 +AZURE,switzerlandnorth,Standard_F48s_v2,reserved_1y,NA,1.55232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386125 +AZURE,switzerlandnorth,Standard_F48s_v2,reserved_3y,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386131 +AZURE,switzerlandnorth,Standard_F48s_v2,spot,NA,0.77616,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386118 +AZURE,switzerlandnorth,Standard_F4s,on_demand,NA,0.2541,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380259 +AZURE,switzerlandnorth,Standard_F4s,reserved_1y,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380267 +AZURE,switzerlandnorth,Standard_F4s,reserved_3y,NA,0.10164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380271 +AZURE,switzerlandnorth,Standard_F4s,spot,NA,0.07623,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380263 +AZURE,switzerlandnorth,Standard_F4s_v2,on_demand,NA,0.2156,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382859 +AZURE,switzerlandnorth,Standard_F4s_v2,reserved_1y,NA,0.12936,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382871 +AZURE,switzerlandnorth,Standard_F4s_v2,reserved_3y,NA,0.08624,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382875 +AZURE,switzerlandnorth,Standard_F4s_v2,spot,NA,0.06468,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382866 +AZURE,switzerlandnorth,Standard_F64s_v2,on_demand,NA,3.4496,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386890 +AZURE,switzerlandnorth,Standard_F64s_v2,reserved_1y,NA,2.06976,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386899 +AZURE,switzerlandnorth,Standard_F64s_v2,reserved_3y,NA,1.37984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386903 +AZURE,switzerlandnorth,Standard_F64s_v2,spot,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386894 +AZURE,switzerlandnorth,Standard_F72s_v2,on_demand,NA,3.8808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387708 +AZURE,switzerlandnorth,Standard_F72s_v2,reserved_1y,NA,2.32848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387717 +AZURE,switzerlandnorth,Standard_F72s_v2,reserved_3y,NA,1.55232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387721 +AZURE,switzerlandnorth,Standard_F72s_v2,spot,NA,1.16424,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387713 +AZURE,switzerlandnorth,Standard_F8,on_demand,NA,0.5082,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378677 +AZURE,switzerlandnorth,Standard_F8,reserved_1y,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378685 +AZURE,switzerlandnorth,Standard_F8,reserved_3y,NA,0.20328,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378690 +AZURE,switzerlandnorth,Standard_F8,spot,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378681 +AZURE,switzerlandnorth,Standard_F8s,on_demand,NA,0.5082,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380969 +AZURE,switzerlandnorth,Standard_F8s,reserved_1y,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380979 +AZURE,switzerlandnorth,Standard_F8s,reserved_3y,NA,0.20328,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380985 +AZURE,switzerlandnorth,Standard_F8s,spot,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380974 +AZURE,switzerlandnorth,Standard_F8s_v2,on_demand,NA,0.4312,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383691 +AZURE,switzerlandnorth,Standard_F8s_v2,reserved_1y,NA,0.25872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383701 +AZURE,switzerlandnorth,Standard_F8s_v2,reserved_3y,NA,0.17248,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383705 +AZURE,switzerlandnorth,Standard_F8s_v2,spot,NA,0.12936,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383695 +AZURE,switzerlandnorth,Standard_L16as_v3,on_demand,NA,1.636,USD,Azure Retail Prices API,2025-12-18T04:45:53.618291 +AZURE,switzerlandnorth,Standard_L16as_v3,reserved_1y,NA,1.047032,USD,Azure Retail Prices API,2025-12-18T04:45:55.208917 +AZURE,switzerlandnorth,Standard_L16as_v3,reserved_3y,NA,0.687139,USD,Azure Retail Prices API,2025-12-18T04:45:55.208920 +AZURE,switzerlandnorth,Standard_L16as_v3,spot,NA,0.302333,USD,Azure Retail Prices API,2025-12-18T04:45:53.619721 +AZURE,switzerlandnorth,Standard_L16s_v3,on_demand,NA,1.996,USD,Azure Retail Prices API,2025-12-18T04:45:53.618059 +AZURE,switzerlandnorth,Standard_L16s_v3,reserved_1y,NA,1.277626,USD,Azure Retail Prices API,2025-12-18T04:45:55.208769 +AZURE,switzerlandnorth,Standard_L16s_v3,reserved_3y,NA,0.838432,USD,Azure Retail Prices API,2025-12-18T04:45:55.208773 +AZURE,switzerlandnorth,Standard_L16s_v3,spot,NA,0.368861,USD,Azure Retail Prices API,2025-12-18T04:45:53.620872 +AZURE,switzerlandnorth,Standard_L32as_v3,on_demand,NA,3.272,USD,Azure Retail Prices API,2025-12-18T04:45:53.618469 +AZURE,switzerlandnorth,Standard_L32as_v3,reserved_1y,NA,2.094064,USD,Azure Retail Prices API,2025-12-18T04:45:55.209029 +AZURE,switzerlandnorth,Standard_L32as_v3,reserved_3y,NA,1.374239,USD,Azure Retail Prices API,2025-12-18T04:45:55.209032 +AZURE,switzerlandnorth,Standard_L32as_v3,spot,NA,0.604666,USD,Azure Retail Prices API,2025-12-18T04:45:53.619326 +AZURE,switzerlandnorth,Standard_L32s_v3,on_demand,NA,3.993,USD,Azure Retail Prices API,2025-12-18T04:45:53.620388 +AZURE,switzerlandnorth,Standard_L32s_v3,reserved_1y,NA,2.555251,USD,Azure Retail Prices API,2025-12-18T04:45:55.210075 +AZURE,switzerlandnorth,Standard_L32s_v3,reserved_3y,NA,1.676865,USD,Azure Retail Prices API,2025-12-18T04:45:55.210078 +AZURE,switzerlandnorth,Standard_L32s_v3,spot,NA,0.737906,USD,Azure Retail Prices API,2025-12-18T04:45:53.618314 +AZURE,switzerlandnorth,Standard_L48as_v3,on_demand,NA,4.908,USD,Azure Retail Prices API,2025-12-18T04:45:53.618121 +AZURE,switzerlandnorth,Standard_L48as_v3,reserved_1y,NA,3.141096,USD,Azure Retail Prices API,2025-12-18T04:45:55.208807 +AZURE,switzerlandnorth,Standard_L48as_v3,reserved_3y,NA,2.061377,USD,Azure Retail Prices API,2025-12-18T04:45:55.208810 +AZURE,switzerlandnorth,Standard_L48as_v3,spot,NA,0.906998,USD,Azure Retail Prices API,2025-12-18T04:45:53.618672 +AZURE,switzerlandnorth,Standard_L48s_v3,on_demand,NA,5.989,USD,Azure Retail Prices API,2025-12-18T04:45:53.618752 +AZURE,switzerlandnorth,Standard_L48s_v3,reserved_1y,NA,3.832877,USD,Azure Retail Prices API,2025-12-18T04:45:55.209195 +AZURE,switzerlandnorth,Standard_L48s_v3,reserved_3y,NA,2.515335,USD,Azure Retail Prices API,2025-12-18T04:45:55.209197 +AZURE,switzerlandnorth,Standard_L48s_v3,spot,NA,1.106767,USD,Azure Retail Prices API,2025-12-18T04:45:53.620220 +AZURE,switzerlandnorth,Standard_L64as_v3,on_demand,NA,6.544,USD,Azure Retail Prices API,2025-12-18T04:45:53.618583 +AZURE,switzerlandnorth,Standard_L64as_v3,reserved_1y,NA,4.188128,USD,Azure Retail Prices API,2025-12-18T04:45:55.209094 +AZURE,switzerlandnorth,Standard_L64as_v3,reserved_3y,NA,2.748478,USD,Azure Retail Prices API,2025-12-18T04:45:55.209097 +AZURE,switzerlandnorth,Standard_L64as_v3,spot,NA,1.209331,USD,Azure Retail Prices API,2025-12-18T04:45:53.620863 +AZURE,switzerlandnorth,Standard_L64s_v3,on_demand,NA,7.985,USD,Azure Retail Prices API,2025-12-18T04:45:53.619476 +AZURE,switzerlandnorth,Standard_L64s_v3,reserved_1y,NA,5.110502,USD,Azure Retail Prices API,2025-12-18T04:45:55.209580 +AZURE,switzerlandnorth,Standard_L64s_v3,reserved_3y,NA,3.353767,USD,Azure Retail Prices API,2025-12-18T04:45:55.209582 +AZURE,switzerlandnorth,Standard_L64s_v3,spot,NA,1.475628,USD,Azure Retail Prices API,2025-12-18T04:45:53.618491 +AZURE,switzerlandnorth,Standard_L80as_v3,on_demand,NA,8.18,USD,Azure Retail Prices API,2025-12-18T04:45:53.620838 +AZURE,switzerlandnorth,Standard_L80as_v3,reserved_1y,NA,5.23516,USD,Azure Retail Prices API,2025-12-18T04:45:55.210335 +AZURE,switzerlandnorth,Standard_L80as_v3,reserved_3y,NA,3.435616,USD,Azure Retail Prices API,2025-12-18T04:45:55.210338 +AZURE,switzerlandnorth,Standard_L80as_v3,spot,NA,1.511664,USD,Azure Retail Prices API,2025-12-18T04:45:53.618803 +AZURE,switzerlandnorth,Standard_L80s_v3,on_demand,NA,9.981,USD,Azure Retail Prices API,2025-12-18T04:45:53.620226 +AZURE,switzerlandnorth,Standard_L80s_v3,reserved_1y,NA,6.388128,USD,Azure Retail Prices API,2025-12-18T04:45:55.210014 +AZURE,switzerlandnorth,Standard_L80s_v3,reserved_3y,NA,4.192199,USD,Azure Retail Prices API,2025-12-18T04:45:55.210016 +AZURE,switzerlandnorth,Standard_L80s_v3,spot,NA,1.844489,USD,Azure Retail Prices API,2025-12-18T04:45:53.618898 +AZURE,switzerlandnorth,Standard_L8as_v3,on_demand,NA,0.818,USD,Azure Retail Prices API,2025-12-18T04:45:53.620704 +AZURE,switzerlandnorth,Standard_L8as_v3,reserved_1y,NA,0.523516,USD,Azure Retail Prices API,2025-12-18T04:45:55.210255 +AZURE,switzerlandnorth,Standard_L8as_v3,reserved_3y,NA,0.343569,USD,Azure Retail Prices API,2025-12-18T04:45:55.210260 +AZURE,switzerlandnorth,Standard_L8as_v3,spot,NA,0.151166,USD,Azure Retail Prices API,2025-12-18T04:45:53.620854 +AZURE,switzerlandnorth,Standard_L8s_v3,on_demand,NA,0.998,USD,Azure Retail Prices API,2025-12-18T04:45:53.620560 +AZURE,switzerlandnorth,Standard_L8s_v3,reserved_1y,NA,0.638813,USD,Azure Retail Prices API,2025-12-18T04:45:55.210168 +AZURE,switzerlandnorth,Standard_L8s_v3,reserved_3y,NA,0.419216,USD,Azure Retail Prices API,2025-12-18T04:45:55.210171 +AZURE,switzerlandnorth,Standard_L8s_v3,spot,NA,0.18443,USD,Azure Retail Prices API,2025-12-18T04:45:53.619153 +AZURE,switzerlandnorth,Standard_NC12s_v3,on_demand,NA,8.411,USD,Azure Retail Prices API,2025-12-18T04:45:53.618296 +AZURE,switzerlandnorth,Standard_NC12s_v3,spot,NA,1.554353,USD,Azure Retail Prices API,2025-12-18T04:45:53.618604 +AZURE,switzerlandnorth,Standard_NC24ads_A100_v4,on_demand,NA,5.252,USD,Azure Retail Prices API,2025-12-18T04:45:53.619331 +AZURE,switzerlandnorth,Standard_NC24ads_A100_v4,reserved_1y,NA,3.433447,USD,Azure Retail Prices API,2025-12-18T04:45:55.209496 +AZURE,switzerlandnorth,Standard_NC24ads_A100_v4,reserved_3y,NA,1.949163,USD,Azure Retail Prices API,2025-12-18T04:45:55.209500 +AZURE,switzerlandnorth,Standard_NC24ads_A100_v4,spot,NA,0.97057,USD,Azure Retail Prices API,2025-12-18T04:45:53.619185 +AZURE,switzerlandnorth,Standard_NC24s_v3,on_demand,NA,16.821,USD,Azure Retail Prices API,2025-12-18T04:45:53.617902 +AZURE,switzerlandnorth,Standard_NC24s_v3,spot,NA,3.108521,USD,Azure Retail Prices API,2025-12-18T04:45:53.618819 +AZURE,switzerlandnorth,Standard_NC40ads_H100_v5,on_demand,NA,9.981,USD,Azure Retail Prices API,2025-12-18T04:45:53.619710 +AZURE,switzerlandnorth,Standard_NC40ads_H100_v5,reserved_1y,NA,7.486073,USD,Azure Retail Prices API,2025-12-18T04:45:55.209701 +AZURE,switzerlandnorth,Standard_NC40ads_H100_v5,reserved_3y,NA,5.489764,USD,Azure Retail Prices API,2025-12-18T04:45:55.209703 +AZURE,switzerlandnorth,Standard_NC40ads_H100_v5,spot,NA,6.111366,USD,Azure Retail Prices API,2025-12-18T04:45:53.620761 +AZURE,switzerlandnorth,Standard_NC48ads_A100_v4,on_demand,NA,10.505,USD,Azure Retail Prices API,2025-12-18T04:45:53.618662 +AZURE,switzerlandnorth,Standard_NC48ads_A100_v4,reserved_1y,NA,6.867009,USD,Azure Retail Prices API,2025-12-18T04:45:55.209150 +AZURE,switzerlandnorth,Standard_NC48ads_A100_v4,reserved_3y,NA,3.898326,USD,Azure Retail Prices API,2025-12-18T04:45:55.209152 +AZURE,switzerlandnorth,Standard_NC48ads_A100_v4,spot,NA,1.941324,USD,Azure Retail Prices API,2025-12-18T04:45:53.620003 +AZURE,switzerlandnorth,Standard_NC6s_v3,on_demand,NA,4.205,USD,Azure Retail Prices API,2025-12-18T04:45:53.619024 +AZURE,switzerlandnorth,Standard_NC6s_v3,spot,NA,0.777084,USD,Azure Retail Prices API,2025-12-18T04:45:53.618023 +AZURE,switzerlandnorth,Standard_NC96ads_A100_v4,on_demand,NA,21.01,USD,Azure Retail Prices API,2025-12-18T04:45:53.618793 +AZURE,switzerlandnorth,Standard_NC96ads_A100_v4,reserved_1y,NA,13.733904,USD,Azure Retail Prices API,2025-12-18T04:45:55.209218 +AZURE,switzerlandnorth,Standard_NC96ads_A100_v4,reserved_3y,NA,7.796651,USD,Azure Retail Prices API,2025-12-18T04:45:55.209221 +AZURE,switzerlandnorth,Standard_NC96ads_A100_v4,spot,NA,3.882648,USD,Azure Retail Prices API,2025-12-18T04:45:53.618867 +AZURE,switzerlandnorth,Standard_ND96isr_H100_v5,on_demand,NA,140.598,USD,Azure Retail Prices API,2025-12-18T04:45:53.619427 +AZURE,switzerlandnorth,Standard_ND96isr_H100_v5,reserved_1y,NA,89.98242,USD,Azure Retail Prices API,2025-12-18T04:45:55.209553 +AZURE,switzerlandnorth,Standard_ND96isr_H100_v5,reserved_3y,NA,61.722336,USD,Azure Retail Prices API,2025-12-18T04:45:55.209556 +AZURE,switzerlandnorth,Standard_ND96isr_H100_v5,spot,NA,25.98251,USD,Azure Retail Prices API,2025-12-18T04:45:53.618851 +AZURE,switzerlandnorth,Standard_NV36adms_A10_v5,on_demand,NA,6.464,USD,Azure Retail Prices API,2025-12-18T04:45:53.620146 +AZURE,switzerlandnorth,Standard_NV36adms_A10_v5,reserved_1y,NA,4.136758,USD,Azure Retail Prices API,2025-12-18T04:45:55.209979 +AZURE,switzerlandnorth,Standard_NV36adms_A10_v5,reserved_3y,NA,2.843988,USD,Azure Retail Prices API,2025-12-18T04:45:55.209982 +AZURE,switzerlandnorth,Standard_NV36adms_A10_v5,spot,NA,1.194547,USD,Azure Retail Prices API,2025-12-18T04:45:53.618410 +AZURE,switzerlandnorth,Standard_NV36ads_A10_v5,on_demand,NA,4.576,USD,Azure Retail Prices API,2025-12-18T04:45:53.619099 +AZURE,switzerlandnorth,Standard_NV36ads_A10_v5,reserved_1y,NA,2.928653,USD,Azure Retail Prices API,2025-12-18T04:45:55.209374 +AZURE,switzerlandnorth,Standard_NV36ads_A10_v5,reserved_3y,NA,2.013432,USD,Azure Retail Prices API,2025-12-18T04:45:55.209377 +AZURE,switzerlandnorth,Standard_NV36ads_A10_v5,spot,NA,0.845645,USD,Azure Retail Prices API,2025-12-18T04:45:53.620918 +AZURE,switzerlandnorth,Standard_NV72ads_A10_v5,on_demand,NA,9.324,USD,Azure Retail Prices API,2025-12-18T04:45:53.620102 +AZURE,switzerlandnorth,Standard_NV72ads_A10_v5,reserved_1y,NA,5.967123,USD,Azure Retail Prices API,2025-12-18T04:45:55.209954 +AZURE,switzerlandnorth,Standard_NV72ads_A10_v5,reserved_3y,NA,4.102397,USD,Azure Retail Prices API,2025-12-18T04:45:55.209957 +AZURE,switzerlandnorth,Standard_NV72ads_A10_v5,spot,NA,1.723075,USD,Azure Retail Prices API,2025-12-18T04:45:53.620857 +AZURE,switzerlandwest,Standard_D128ds_v6,on_demand,NA,16.17,USD,Azure Retail Prices API,2025-12-18T04:45:56.977185 +AZURE,switzerlandwest,Standard_D128ds_v6,reserved_1y,NA,10.025571,USD,Azure Retail Prices API,2025-12-18T04:45:57.881643 +AZURE,switzerlandwest,Standard_D128ds_v6,reserved_3y,NA,6.306393,USD,Azure Retail Prices API,2025-12-18T04:45:57.881648 +AZURE,switzerlandwest,Standard_D128ds_v6,spot,NA,2.988216,USD,Azure Retail Prices API,2025-12-18T04:45:56.977993 +AZURE,switzerlandwest,Standard_D12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488397 +AZURE,switzerlandwest,Standard_D12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488407 +AZURE,switzerlandwest,Standard_D12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488412 +AZURE,switzerlandwest,Standard_D12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488403 +AZURE,switzerlandwest,Standard_D13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489165 +AZURE,switzerlandwest,Standard_D13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489175 +AZURE,switzerlandwest,Standard_D13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489179 +AZURE,switzerlandwest,Standard_D13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489171 +AZURE,switzerlandwest,Standard_D14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490276 +AZURE,switzerlandwest,Standard_D14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490284 +AZURE,switzerlandwest,Standard_D14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490288 +AZURE,switzerlandwest,Standard_D14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490280 +AZURE,switzerlandwest,Standard_D15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490988 +AZURE,switzerlandwest,Standard_D15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490997 +AZURE,switzerlandwest,Standard_D15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491001 +AZURE,switzerlandwest,Standard_D15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490993 +AZURE,switzerlandwest,Standard_D16_v3,on_demand,NA,1.37317,USD,Azure Retail Prices API,2025-12-18T04:45:56.977427 +AZURE,switzerlandwest,Standard_D16_v3,reserved_1y,NA,0.86347,USD,Azure Retail Prices API,2025-12-18T04:45:57.881940 +AZURE,switzerlandwest,Standard_D16_v3,reserved_3y,NA,0.561606,USD,Azure Retail Prices API,2025-12-18T04:45:57.881942 +AZURE,switzerlandwest,Standard_D16_v3,spot,NA,0.253762,USD,Azure Retail Prices API,2025-12-18T04:45:56.978155 +AZURE,switzerlandwest,Standard_D16a_v4,on_demand,NA,1.428,USD,Azure Retail Prices API,2025-12-18T04:45:56.977430 +AZURE,switzerlandwest,Standard_D16a_v4,reserved_1y,NA,0.842352,USD,Azure Retail Prices API,2025-12-18T04:45:57.881945 +AZURE,switzerlandwest,Standard_D16a_v4,reserved_3y,NA,0.542542,USD,Azure Retail Prices API,2025-12-18T04:45:57.881948 +AZURE,switzerlandwest,Standard_D16a_v4,spot,NA,0.263894,USD,Azure Retail Prices API,2025-12-18T04:45:56.977741 +AZURE,switzerlandwest,Standard_D16ads_v5,on_demand,NA,2.268,USD,Azure Retail Prices API,2025-12-18T04:45:56.977606 +AZURE,switzerlandwest,Standard_D16ads_v5,reserved_1y,NA,0.903767,USD,Azure Retail Prices API,2025-12-18T04:45:57.882651 +AZURE,switzerlandwest,Standard_D16ads_v5,reserved_3y,NA,0.582078,USD,Azure Retail Prices API,2025-12-18T04:45:57.882654 +AZURE,switzerlandwest,Standard_D16ads_v5,spot,NA,0.283114,USD,Azure Retail Prices API,2025-12-18T04:45:56.978481 +AZURE,switzerlandwest,Standard_D16ads_v6,on_demand,NA,1.698,USD,Azure Retail Prices API,2025-12-18T04:45:56.977524 +AZURE,switzerlandwest,Standard_D16ads_v6,reserved_1y,NA,1.001598,USD,Azure Retail Prices API,2025-12-18T04:45:57.882048 +AZURE,switzerlandwest,Standard_D16ads_v6,reserved_3y,NA,0.645091,USD,Azure Retail Prices API,2025-12-18T04:45:57.882053 +AZURE,switzerlandwest,Standard_D16ads_v6,spot,NA,0.31379,USD,Azure Retail Prices API,2025-12-18T04:45:56.977677 +AZURE,switzerlandwest,Standard_D16as_v4,on_demand,NA,1.428,USD,Azure Retail Prices API,2025-12-18T04:45:56.977948 +AZURE,switzerlandwest,Standard_D16as_v4,reserved_1y,NA,0.842352,USD,Azure Retail Prices API,2025-12-18T04:45:57.882521 +AZURE,switzerlandwest,Standard_D16as_v4,reserved_3y,NA,0.542542,USD,Azure Retail Prices API,2025-12-18T04:45:57.882526 +AZURE,switzerlandwest,Standard_D16as_v4,spot,NA,0.263894,USD,Azure Retail Prices API,2025-12-18T04:45:56.978396 +AZURE,switzerlandwest,Standard_D16as_v5,on_demand,NA,2.015,USD,Azure Retail Prices API,2025-12-18T04:45:56.977560 +AZURE,switzerlandwest,Standard_D16as_v5,reserved_1y,NA,0.754566,USD,Azure Retail Prices API,2025-12-18T04:45:57.882916 +AZURE,switzerlandwest,Standard_D16as_v5,reserved_3y,NA,0.486035,USD,Azure Retail Prices API,2025-12-18T04:45:57.882920 +AZURE,switzerlandwest,Standard_D16as_v5,spot,NA,0.236359,USD,Azure Retail Prices API,2025-12-18T04:45:56.977521 +AZURE,switzerlandwest,Standard_D16d_v4,on_demand,NA,1.55602,USD,Azure Retail Prices API,2025-12-18T04:45:56.977911 +AZURE,switzerlandwest,Standard_D16d_v4,reserved_1y,NA,0.917922,USD,Azure Retail Prices API,2025-12-18T04:45:57.882498 +AZURE,switzerlandwest,Standard_D16d_v4,reserved_3y,NA,0.59121,USD,Azure Retail Prices API,2025-12-18T04:45:57.882501 +AZURE,switzerlandwest,Standard_D16d_v4,spot,NA,0.287552,USD,Azure Retail Prices API,2025-12-18T04:45:56.978449 +AZURE,switzerlandwest,Standard_D16ds_v4,on_demand,NA,1.55602,USD,Azure Retail Prices API,2025-12-18T04:45:56.977712 +AZURE,switzerlandwest,Standard_D16ds_v4,reserved_1y,NA,0.917922,USD,Azure Retail Prices API,2025-12-18T04:45:57.882235 +AZURE,switzerlandwest,Standard_D16ds_v4,reserved_3y,NA,0.59121,USD,Azure Retail Prices API,2025-12-18T04:45:57.882238 +AZURE,switzerlandwest,Standard_D16ds_v4,spot,NA,0.287552,USD,Azure Retail Prices API,2025-12-18T04:45:56.978243 +AZURE,switzerlandwest,Standard_D16ds_v5,on_demand,NA,1.557,USD,Azure Retail Prices API,2025-12-18T04:45:56.977385 +AZURE,switzerlandwest,Standard_D16ds_v5,reserved_1y,NA,0.918607,USD,Azure Retail Prices API,2025-12-18T04:45:57.881895 +AZURE,switzerlandwest,Standard_D16ds_v5,reserved_3y,NA,0.591629,USD,Azure Retail Prices API,2025-12-18T04:45:57.881898 +AZURE,switzerlandwest,Standard_D16ds_v5,spot,NA,0.287734,USD,Azure Retail Prices API,2025-12-18T04:45:56.978390 +AZURE,switzerlandwest,Standard_D16ds_v6,on_demand,NA,2.021,USD,Azure Retail Prices API,2025-12-18T04:45:56.977264 +AZURE,switzerlandwest,Standard_D16ds_v6,reserved_1y,NA,1.253196,USD,Azure Retail Prices API,2025-12-18T04:45:57.881752 +AZURE,switzerlandwest,Standard_D16ds_v6,reserved_3y,NA,0.788318,USD,Azure Retail Prices API,2025-12-18T04:45:57.881755 +AZURE,switzerlandwest,Standard_D16ds_v6,spot,NA,0.373481,USD,Azure Retail Prices API,2025-12-18T04:45:56.977309 +AZURE,switzerlandwest,Standard_D16s_v3,on_demand,NA,1.37317,USD,Azure Retail Prices API,2025-12-18T04:45:56.977729 +AZURE,switzerlandwest,Standard_D16s_v3,reserved_1y,NA,0.86347,USD,Azure Retail Prices API,2025-12-18T04:45:57.882272 +AZURE,switzerlandwest,Standard_D16s_v3,reserved_3y,NA,0.561606,USD,Azure Retail Prices API,2025-12-18T04:45:57.882275 +AZURE,switzerlandwest,Standard_D16s_v3,spot,NA,0.253762,USD,Azure Retail Prices API,2025-12-18T04:45:56.977969 +AZURE,switzerlandwest,Standard_D16s_v4,on_demand,NA,1.31595,USD,Azure Retail Prices API,2025-12-18T04:45:56.977746 +AZURE,switzerlandwest,Standard_D16s_v4,reserved_1y,NA,0.776142,USD,Azure Retail Prices API,2025-12-18T04:45:57.882283 +AZURE,switzerlandwest,Standard_D16s_v4,reserved_3y,NA,0.499924,USD,Azure Retail Prices API,2025-12-18T04:45:57.882286 +AZURE,switzerlandwest,Standard_D16s_v4,spot,NA,0.243188,USD,Azure Retail Prices API,2025-12-18T04:45:56.977344 +AZURE,switzerlandwest,Standard_D16s_v5,on_demand,NA,1.314,USD,Azure Retail Prices API,2025-12-18T04:45:56.978469 +AZURE,switzerlandwest,Standard_D16s_v5,reserved_1y,NA,0.775342,USD,Azure Retail Prices API,2025-12-18T04:45:57.883200 +AZURE,switzerlandwest,Standard_D16s_v5,reserved_3y,NA,0.486263,USD,Azure Retail Prices API,2025-12-18T04:45:57.883205 +AZURE,switzerlandwest,Standard_D16s_v5,spot,NA,0.242827,USD,Azure Retail Prices API,2025-12-18T04:45:56.977487 +AZURE,switzerlandwest,Standard_D2ads_v6,on_demand,NA,0.212,USD,Azure Retail Prices API,2025-12-18T04:45:56.977860 +AZURE,switzerlandwest,Standard_D2ads_v6,reserved_1y,NA,0.125228,USD,Azure Retail Prices API,2025-12-18T04:45:57.882433 +AZURE,switzerlandwest,Standard_D2ads_v6,reserved_3y,NA,0.080632,USD,Azure Retail Prices API,2025-12-18T04:45:57.882438 +AZURE,switzerlandwest,Standard_D2ads_v6,spot,NA,0.039178,USD,Azure Retail Prices API,2025-12-18T04:45:56.977774 +AZURE,switzerlandwest,Standard_D2ds_v6,on_demand,NA,0.253,USD,Azure Retail Prices API,2025-12-18T04:45:56.977793 +AZURE,switzerlandwest,Standard_D2ds_v6,reserved_1y,NA,0.156621,USD,Azure Retail Prices API,2025-12-18T04:45:57.882355 +AZURE,switzerlandwest,Standard_D2ds_v6,reserved_3y,NA,0.098554,USD,Azure Retail Prices API,2025-12-18T04:45:57.882358 +AZURE,switzerlandwest,Standard_D2ds_v6,spot,NA,0.046754,USD,Azure Retail Prices API,2025-12-18T04:45:56.977612 +AZURE,switzerlandwest,Standard_D32_v3,on_demand,NA,2.74542,USD,Azure Retail Prices API,2025-12-18T04:45:56.978388 +AZURE,switzerlandwest,Standard_D32_v3,reserved_1y,NA,1.727055,USD,Azure Retail Prices API,2025-12-18T04:45:57.883024 +AZURE,switzerlandwest,Standard_D32_v3,reserved_3y,NA,1.123212,USD,Azure Retail Prices API,2025-12-18T04:45:57.883029 +AZURE,switzerlandwest,Standard_D32_v3,spot,NA,0.507354,USD,Azure Retail Prices API,2025-12-18T04:45:56.977957 +AZURE,switzerlandwest,Standard_D32a_v4,on_demand,NA,2.855,USD,Azure Retail Prices API,2025-12-18T04:45:56.977671 +AZURE,switzerlandwest,Standard_D32a_v4,reserved_1y,NA,1.684703,USD,Azure Retail Prices API,2025-12-18T04:45:57.882199 +AZURE,switzerlandwest,Standard_D32a_v4,reserved_3y,NA,1.085046,USD,Azure Retail Prices API,2025-12-18T04:45:57.882202 +AZURE,switzerlandwest,Standard_D32a_v4,spot,NA,0.527604,USD,Azure Retail Prices API,2025-12-18T04:45:56.977709 +AZURE,switzerlandwest,Standard_D32ads_v5,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:45:56.978134 +AZURE,switzerlandwest,Standard_D32ads_v5,reserved_1y,NA,1.807534,USD,Azure Retail Prices API,2025-12-18T04:45:57.882734 +AZURE,switzerlandwest,Standard_D32ads_v5,reserved_3y,NA,1.164193,USD,Azure Retail Prices API,2025-12-18T04:45:57.882737 +AZURE,switzerlandwest,Standard_D32ads_v5,spot,NA,0.566227,USD,Azure Retail Prices API,2025-12-18T04:45:56.978405 +AZURE,switzerlandwest,Standard_D32ads_v6,on_demand,NA,3.395,USD,Azure Retail Prices API,2025-12-18T04:45:56.977651 +AZURE,switzerlandwest,Standard_D32ads_v6,reserved_1y,NA,2.003196,USD,Azure Retail Prices API,2025-12-18T04:45:57.882170 +AZURE,switzerlandwest,Standard_D32ads_v6,reserved_3y,NA,1.290183,USD,Azure Retail Prices API,2025-12-18T04:45:57.882176 +AZURE,switzerlandwest,Standard_D32ads_v6,spot,NA,0.627396,USD,Azure Retail Prices API,2025-12-18T04:45:56.978367 +AZURE,switzerlandwest,Standard_D32as_v4,on_demand,NA,2.855,USD,Azure Retail Prices API,2025-12-18T04:45:56.977727 +AZURE,switzerlandwest,Standard_D32as_v4,reserved_1y,NA,1.684703,USD,Azure Retail Prices API,2025-12-18T04:45:57.882263 +AZURE,switzerlandwest,Standard_D32as_v4,reserved_3y,NA,1.085046,USD,Azure Retail Prices API,2025-12-18T04:45:57.882269 +AZURE,switzerlandwest,Standard_D32as_v4,spot,NA,0.527604,USD,Azure Retail Prices API,2025-12-18T04:45:56.977174 +AZURE,switzerlandwest,Standard_D32as_v5,on_demand,NA,2.558,USD,Azure Retail Prices API,2025-12-18T04:45:56.977929 +AZURE,switzerlandwest,Standard_D32as_v5,reserved_1y,NA,1.509247,USD,Azure Retail Prices API,2025-12-18T04:45:57.882504 +AZURE,switzerlandwest,Standard_D32as_v5,reserved_3y,NA,0.972032,USD,Azure Retail Prices API,2025-12-18T04:45:57.882506 +AZURE,switzerlandwest,Standard_D32as_v5,spot,NA,0.472718,USD,Azure Retail Prices API,2025-12-18T04:45:56.978122 +AZURE,switzerlandwest,Standard_D32d_v4,on_demand,NA,3.11203,USD,Azure Retail Prices API,2025-12-18T04:45:56.978353 +AZURE,switzerlandwest,Standard_D32d_v4,reserved_1y,NA,1.835959,USD,Azure Retail Prices API,2025-12-18T04:45:57.882950 +AZURE,switzerlandwest,Standard_D32d_v4,reserved_3y,NA,1.18242,USD,Azure Retail Prices API,2025-12-18T04:45:57.882954 +AZURE,switzerlandwest,Standard_D32d_v4,spot,NA,0.575103,USD,Azure Retail Prices API,2025-12-18T04:45:56.978119 +AZURE,switzerlandwest,Standard_D32ds_v4,on_demand,NA,3.11203,USD,Azure Retail Prices API,2025-12-18T04:45:56.978356 +AZURE,switzerlandwest,Standard_D32ds_v4,reserved_1y,NA,1.835959,USD,Azure Retail Prices API,2025-12-18T04:45:57.882959 +AZURE,switzerlandwest,Standard_D32ds_v4,reserved_3y,NA,1.18242,USD,Azure Retail Prices API,2025-12-18T04:45:57.882963 +AZURE,switzerlandwest,Standard_D32ds_v4,spot,NA,0.575103,USD,Azure Retail Prices API,2025-12-18T04:45:56.977818 +AZURE,switzerlandwest,Standard_D32ds_v5,on_demand,NA,3.114,USD,Azure Retail Prices API,2025-12-18T04:45:56.977804 +AZURE,switzerlandwest,Standard_D32ds_v5,reserved_1y,NA,1.8371,USD,Azure Retail Prices API,2025-12-18T04:45:57.882374 +AZURE,switzerlandwest,Standard_D32ds_v5,reserved_3y,NA,1.183257,USD,Azure Retail Prices API,2025-12-18T04:45:57.882378 +AZURE,switzerlandwest,Standard_D32ds_v5,spot,NA,0.575467,USD,Azure Retail Prices API,2025-12-18T04:45:56.977738 +AZURE,switzerlandwest,Standard_D32ds_v6,on_demand,NA,4.043,USD,Azure Retail Prices API,2025-12-18T04:45:56.977505 +AZURE,switzerlandwest,Standard_D32ds_v6,reserved_1y,NA,2.506393,USD,Azure Retail Prices API,2025-12-18T04:45:57.882023 +AZURE,switzerlandwest,Standard_D32ds_v6,reserved_3y,NA,1.576598,USD,Azure Retail Prices API,2025-12-18T04:45:57.882026 +AZURE,switzerlandwest,Standard_D32ds_v6,spot,NA,0.747146,USD,Azure Retail Prices API,2025-12-18T04:45:56.977837 +AZURE,switzerlandwest,Standard_D32s_v3,on_demand,NA,2.74542,USD,Azure Retail Prices API,2025-12-18T04:45:56.978322 +AZURE,switzerlandwest,Standard_D32s_v3,reserved_1y,NA,1.727055,USD,Azure Retail Prices API,2025-12-18T04:45:57.882907 +AZURE,switzerlandwest,Standard_D32s_v3,reserved_3y,NA,1.123212,USD,Azure Retail Prices API,2025-12-18T04:45:57.882912 +AZURE,switzerlandwest,Standard_D32s_v3,spot,NA,0.507354,USD,Azure Retail Prices API,2025-12-18T04:45:56.977380 +AZURE,switzerlandwest,Standard_D32s_v4,on_demand,NA,2.63102,USD,Azure Retail Prices API,2025-12-18T04:45:56.977868 +AZURE,switzerlandwest,Standard_D32s_v4,reserved_1y,NA,1.552397,USD,Azure Retail Prices API,2025-12-18T04:45:57.882444 +AZURE,switzerlandwest,Standard_D32s_v4,reserved_3y,NA,0.999848,USD,Azure Retail Prices API,2025-12-18T04:45:57.882449 +AZURE,switzerlandwest,Standard_D32s_v4,spot,NA,0.486212,USD,Azure Retail Prices API,2025-12-18T04:45:56.977821 +AZURE,switzerlandwest,Standard_D32s_v5,on_demand,NA,2.628,USD,Azure Retail Prices API,2025-12-18T04:45:56.977735 +AZURE,switzerlandwest,Standard_D32s_v5,reserved_1y,NA,1.550799,USD,Azure Retail Prices API,2025-12-18T04:45:57.882277 +AZURE,switzerlandwest,Standard_D32s_v5,reserved_3y,NA,0.972489,USD,Azure Retail Prices API,2025-12-18T04:45:57.882280 +AZURE,switzerlandwest,Standard_D32s_v5,spot,NA,0.485654,USD,Azure Retail Prices API,2025-12-18T04:45:56.977321 +AZURE,switzerlandwest,Standard_D3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485399 +AZURE,switzerlandwest,Standard_D3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485412 +AZURE,switzerlandwest,Standard_D3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485418 +AZURE,switzerlandwest,Standard_D3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485406 +AZURE,switzerlandwest,Standard_D48a_v4,on_demand,NA,4.283,USD,Azure Retail Prices API,2025-12-18T04:45:56.978483 +AZURE,switzerlandwest,Standard_D48a_v4,reserved_1y,NA,2.527055,USD,Azure Retail Prices API,2025-12-18T04:45:57.883219 +AZURE,switzerlandwest,Standard_D48a_v4,reserved_3y,NA,1.627588,USD,Azure Retail Prices API,2025-12-18T04:45:57.883223 +AZURE,switzerlandwest,Standard_D48a_v4,spot,NA,0.791498,USD,Azure Retail Prices API,2025-12-18T04:45:56.977643 +AZURE,switzerlandwest,Standard_D48ads_v5,on_demand,NA,4.595,USD,Azure Retail Prices API,2025-12-18T04:45:56.977529 +AZURE,switzerlandwest,Standard_D48ads_v5,reserved_1y,NA,2.711301,USD,Azure Retail Prices API,2025-12-18T04:45:57.882063 +AZURE,switzerlandwest,Standard_D48ads_v5,reserved_3y,NA,1.746271,USD,Azure Retail Prices API,2025-12-18T04:45:57.882066 +AZURE,switzerlandwest,Standard_D48ads_v5,spot,NA,0.849156,USD,Azure Retail Prices API,2025-12-18T04:45:56.978384 +AZURE,switzerlandwest,Standard_D48ads_v6,on_demand,NA,5.093,USD,Azure Retail Prices API,2025-12-18T04:45:56.977637 +AZURE,switzerlandwest,Standard_D48ads_v6,reserved_1y,NA,3.004795,USD,Azure Retail Prices API,2025-12-18T04:45:57.882136 +AZURE,switzerlandwest,Standard_D48ads_v6,reserved_3y,NA,1.935274,USD,Azure Retail Prices API,2025-12-18T04:45:57.882141 +AZURE,switzerlandwest,Standard_D48ads_v6,spot,NA,0.941186,USD,Azure Retail Prices API,2025-12-18T04:45:56.977623 +AZURE,switzerlandwest,Standard_D48as_v4,on_demand,NA,4.283,USD,Azure Retail Prices API,2025-12-18T04:45:56.977198 +AZURE,switzerlandwest,Standard_D48as_v4,reserved_1y,NA,2.527055,USD,Azure Retail Prices API,2025-12-18T04:45:57.881674 +AZURE,switzerlandwest,Standard_D48as_v4,reserved_3y,NA,1.627588,USD,Azure Retail Prices API,2025-12-18T04:45:57.881678 +AZURE,switzerlandwest,Standard_D48as_v4,spot,NA,0.791498,USD,Azure Retail Prices API,2025-12-18T04:45:56.978125 +AZURE,switzerlandwest,Standard_D48as_v5,on_demand,NA,3.837,USD,Azure Retail Prices API,2025-12-18T04:45:56.977877 +AZURE,switzerlandwest,Standard_D48as_v5,reserved_1y,NA,2.263813,USD,Azure Retail Prices API,2025-12-18T04:45:57.882464 +AZURE,switzerlandwest,Standard_D48as_v5,reserved_3y,NA,1.458067,USD,Azure Retail Prices API,2025-12-18T04:45:57.882466 +AZURE,switzerlandwest,Standard_D48as_v5,spot,NA,0.709078,USD,Azure Retail Prices API,2025-12-18T04:45:56.978446 +AZURE,switzerlandwest,Standard_D48d_v4,on_demand,NA,4.66717,USD,Azure Retail Prices API,2025-12-18T04:45:56.978358 +AZURE,switzerlandwest,Standard_D48d_v4,reserved_1y,NA,2.753881,USD,Azure Retail Prices API,2025-12-18T04:45:57.882968 +AZURE,switzerlandwest,Standard_D48d_v4,reserved_3y,NA,1.773668,USD,Azure Retail Prices API,2025-12-18T04:45:57.882972 +AZURE,switzerlandwest,Standard_D48d_v4,spot,NA,0.862493,USD,Azure Retail Prices API,2025-12-18T04:45:56.978503 +AZURE,switzerlandwest,Standard_D48ds_v4,on_demand,NA,4.66717,USD,Azure Retail Prices API,2025-12-18T04:45:56.978424 +AZURE,switzerlandwest,Standard_D48ds_v4,reserved_1y,NA,2.753881,USD,Azure Retail Prices API,2025-12-18T04:45:57.883121 +AZURE,switzerlandwest,Standard_D48ds_v4,reserved_3y,NA,1.773668,USD,Azure Retail Prices API,2025-12-18T04:45:57.883126 +AZURE,switzerlandwest,Standard_D48ds_v4,spot,NA,0.862493,USD,Azure Retail Prices API,2025-12-18T04:45:56.977267 +AZURE,switzerlandwest,Standard_D48ds_v5,on_demand,NA,4.671,USD,Azure Retail Prices API,2025-12-18T04:45:56.978232 +AZURE,switzerlandwest,Standard_D48ds_v5,reserved_1y,NA,2.755708,USD,Azure Retail Prices API,2025-12-18T04:45:57.882793 +AZURE,switzerlandwest,Standard_D48ds_v5,reserved_3y,NA,1.774848,USD,Azure Retail Prices API,2025-12-18T04:45:57.882796 +AZURE,switzerlandwest,Standard_D48ds_v5,spot,NA,0.863201,USD,Azure Retail Prices API,2025-12-18T04:45:56.977433 +AZURE,switzerlandwest,Standard_D48ds_v6,on_demand,NA,6.064,USD,Azure Retail Prices API,2025-12-18T04:45:56.978316 +AZURE,switzerlandwest,Standard_D48ds_v6,reserved_1y,NA,3.759589,USD,Azure Retail Prices API,2025-12-18T04:45:57.882891 +AZURE,switzerlandwest,Standard_D48ds_v6,reserved_3y,NA,2.364916,USD,Azure Retail Prices API,2025-12-18T04:45:57.882895 +AZURE,switzerlandwest,Standard_D48ds_v6,spot,NA,1.120627,USD,Azure Retail Prices API,2025-12-18T04:45:56.978500 +AZURE,switzerlandwest,Standard_D48s_v4,on_demand,NA,3.94698,USD,Azure Retail Prices API,2025-12-18T04:45:56.977473 +AZURE,switzerlandwest,Standard_D48s_v4,reserved_1y,NA,2.328653,USD,Azure Retail Prices API,2025-12-18T04:45:57.881994 +AZURE,switzerlandwest,Standard_D48s_v4,reserved_3y,NA,1.499772,USD,Azure Retail Prices API,2025-12-18T04:45:57.881998 +AZURE,switzerlandwest,Standard_D48s_v4,spot,NA,0.729402,USD,Azure Retail Prices API,2025-12-18T04:45:56.978269 +AZURE,switzerlandwest,Standard_D48s_v5,on_demand,NA,3.943,USD,Azure Retail Prices API,2025-12-18T04:45:56.978220 +AZURE,switzerlandwest,Standard_D48s_v5,reserved_1y,NA,2.326142,USD,Azure Retail Prices API,2025-12-18T04:45:57.882786 +AZURE,switzerlandwest,Standard_D48s_v5,reserved_3y,NA,1.458752,USD,Azure Retail Prices API,2025-12-18T04:45:57.882790 +AZURE,switzerlandwest,Standard_D48s_v5,spot,NA,0.728666,USD,Azure Retail Prices API,2025-12-18T04:45:56.977631 +AZURE,switzerlandwest,Standard_D4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486268 +AZURE,switzerlandwest,Standard_D4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486276 +AZURE,switzerlandwest,Standard_D4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486280 +AZURE,switzerlandwest,Standard_D4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486272 +AZURE,switzerlandwest,Standard_D4a_v4,on_demand,NA,0.357,USD,Azure Retail Prices API,2025-12-18T04:45:56.977843 +AZURE,switzerlandwest,Standard_D4a_v4,reserved_1y,NA,0.210616,USD,Azure Retail Prices API,2025-12-18T04:45:57.882407 +AZURE,switzerlandwest,Standard_D4a_v4,reserved_3y,NA,0.135616,USD,Azure Retail Prices API,2025-12-18T04:45:57.882411 +AZURE,switzerlandwest,Standard_D4a_v4,spot,NA,0.065974,USD,Azure Retail Prices API,2025-12-18T04:45:56.977255 +AZURE,switzerlandwest,Standard_D4ads_v5,on_demand,NA,0.567,USD,Azure Retail Prices API,2025-12-18T04:45:56.977397 +AZURE,switzerlandwest,Standard_D4ads_v5,reserved_1y,NA,0.225913,USD,Azure Retail Prices API,2025-12-18T04:45:57.882984 +AZURE,switzerlandwest,Standard_D4ads_v5,reserved_3y,NA,0.14551,USD,Azure Retail Prices API,2025-12-18T04:45:57.882989 +AZURE,switzerlandwest,Standard_D4ads_v5,spot,NA,0.070778,USD,Azure Retail Prices API,2025-12-18T04:45:56.978361 +AZURE,switzerlandwest,Standard_D4ads_v6,on_demand,NA,0.424,USD,Azure Retail Prices API,2025-12-18T04:45:56.978035 +AZURE,switzerlandwest,Standard_D4ads_v6,reserved_1y,NA,0.250342,USD,Azure Retail Prices API,2025-12-18T04:45:57.882600 +AZURE,switzerlandwest,Standard_D4ads_v6,reserved_3y,NA,0.161263,USD,Azure Retail Prices API,2025-12-18T04:45:57.882605 +AZURE,switzerlandwest,Standard_D4ads_v6,spot,NA,0.078355,USD,Azure Retail Prices API,2025-12-18T04:45:56.978108 +AZURE,switzerlandwest,Standard_D4as_v5,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:45:56.977507 +AZURE,switzerlandwest,Standard_D4as_v5,reserved_1y,NA,0.188699,USD,Azure Retail Prices API,2025-12-18T04:45:57.882029 +AZURE,switzerlandwest,Standard_D4as_v5,reserved_3y,NA,0.121499,USD,Azure Retail Prices API,2025-12-18T04:45:57.882034 +AZURE,switzerlandwest,Standard_D4as_v5,spot,NA,0.059136,USD,Azure Retail Prices API,2025-12-18T04:45:56.977377 +AZURE,switzerlandwest,Standard_D4d_v4,on_demand,NA,0.38922,USD,Azure Retail Prices API,2025-12-18T04:45:56.977715 +AZURE,switzerlandwest,Standard_D4d_v4,reserved_1y,NA,0.229566,USD,Azure Retail Prices API,2025-12-18T04:45:57.882243 +AZURE,switzerlandwest,Standard_D4d_v4,reserved_3y,NA,0.147793,USD,Azure Retail Prices API,2025-12-18T04:45:57.882248 +AZURE,switzerlandwest,Standard_D4d_v4,spot,NA,0.071928,USD,Azure Retail Prices API,2025-12-18T04:45:56.977802 +AZURE,switzerlandwest,Standard_D4ds_v4,on_demand,NA,0.38922,USD,Azure Retail Prices API,2025-12-18T04:45:56.977294 +AZURE,switzerlandwest,Standard_D4ds_v4,reserved_1y,NA,0.229566,USD,Azure Retail Prices API,2025-12-18T04:45:57.881785 +AZURE,switzerlandwest,Standard_D4ds_v4,reserved_3y,NA,0.147793,USD,Azure Retail Prices API,2025-12-18T04:45:57.881789 +AZURE,switzerlandwest,Standard_D4ds_v4,spot,NA,0.071928,USD,Azure Retail Prices API,2025-12-18T04:45:56.978128 +AZURE,switzerlandwest,Standard_D4ds_v5,on_demand,NA,0.389,USD,Azure Retail Prices API,2025-12-18T04:45:56.978189 +AZURE,switzerlandwest,Standard_D4ds_v5,reserved_1y,NA,0.229452,USD,Azure Retail Prices API,2025-12-18T04:45:57.882728 +AZURE,switzerlandwest,Standard_D4ds_v5,reserved_3y,NA,0.147793,USD,Azure Retail Prices API,2025-12-18T04:45:57.882731 +AZURE,switzerlandwest,Standard_D4ds_v5,spot,NA,0.071887,USD,Azure Retail Prices API,2025-12-18T04:45:56.978146 +AZURE,switzerlandwest,Standard_D4ds_v6,on_demand,NA,0.505,USD,Azure Retail Prices API,2025-12-18T04:45:56.978198 +AZURE,switzerlandwest,Standard_D4ds_v6,reserved_1y,NA,0.313242,USD,Azure Retail Prices API,2025-12-18T04:45:57.882740 +AZURE,switzerlandwest,Standard_D4ds_v6,reserved_3y,NA,0.19707,USD,Azure Retail Prices API,2025-12-18T04:45:57.882744 +AZURE,switzerlandwest,Standard_D4ds_v6,spot,NA,0.093324,USD,Azure Retail Prices API,2025-12-18T04:45:56.977236 +AZURE,switzerlandwest,Standard_D4s_v3,on_demand,NA,0.34283,USD,Azure Retail Prices API,2025-12-18T04:45:56.978382 +AZURE,switzerlandwest,Standard_D4s_v3,reserved_1y,NA,0.215868,USD,Azure Retail Prices API,2025-12-18T04:45:57.883015 +AZURE,switzerlandwest,Standard_D4s_v3,reserved_3y,NA,0.140411,USD,Azure Retail Prices API,2025-12-18T04:45:57.883020 +AZURE,switzerlandwest,Standard_D4s_v3,spot,NA,0.063355,USD,Azure Retail Prices API,2025-12-18T04:45:56.977935 +AZURE,switzerlandwest,Standard_D4s_v4,on_demand,NA,0.32855,USD,Azure Retail Prices API,2025-12-18T04:45:56.978183 +AZURE,switzerlandwest,Standard_D4s_v4,reserved_1y,NA,0.194064,USD,Azure Retail Prices API,2025-12-18T04:45:57.882715 +AZURE,switzerlandwest,Standard_D4s_v4,reserved_3y,NA,0.125,USD,Azure Retail Prices API,2025-12-18T04:45:57.882718 +AZURE,switzerlandwest,Standard_D4s_v4,spot,NA,0.060716,USD,Azure Retail Prices API,2025-12-18T04:45:56.977365 +AZURE,switzerlandwest,Standard_D4s_v5,on_demand,NA,0.329,USD,Azure Retail Prices API,2025-12-18T04:45:56.978200 +AZURE,switzerlandwest,Standard_D4s_v5,reserved_1y,NA,0.193836,USD,Azure Retail Prices API,2025-12-18T04:45:57.882747 +AZURE,switzerlandwest,Standard_D4s_v5,reserved_3y,NA,0.121575,USD,Azure Retail Prices API,2025-12-18T04:45:57.882752 +AZURE,switzerlandwest,Standard_D4s_v5,spot,NA,0.060799,USD,Azure Retail Prices API,2025-12-18T04:45:56.978302 +AZURE,switzerlandwest,Standard_D5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487400 +AZURE,switzerlandwest,Standard_D5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487414 +AZURE,switzerlandwest,Standard_D5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487422 +AZURE,switzerlandwest,Standard_D5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487407 +AZURE,switzerlandwest,Standard_D64_v3,on_demand,NA,5.49083,USD,Azure Retail Prices API,2025-12-18T04:45:56.977849 +AZURE,switzerlandwest,Standard_D64_v3,reserved_1y,NA,3.45411,USD,Azure Retail Prices API,2025-12-18T04:45:57.882425 +AZURE,switzerlandwest,Standard_D64_v3,reserved_3y,NA,2.246385,USD,Azure Retail Prices API,2025-12-18T04:45:57.882429 +AZURE,switzerlandwest,Standard_D64_v3,spot,NA,1.014705,USD,Azure Retail Prices API,2025-12-18T04:45:56.977760 +AZURE,switzerlandwest,Standard_D64a_v4,on_demand,NA,5.711,USD,Azure Retail Prices API,2025-12-18T04:45:56.977368 +AZURE,switzerlandwest,Standard_D64a_v4,reserved_1y,NA,3.369406,USD,Azure Retail Prices API,2025-12-18T04:45:57.881885 +AZURE,switzerlandwest,Standard_D64a_v4,reserved_3y,NA,2.170129,USD,Azure Retail Prices API,2025-12-18T04:45:57.881890 +AZURE,switzerlandwest,Standard_D64a_v4,spot,NA,1.055393,USD,Azure Retail Prices API,2025-12-18T04:45:56.977908 +AZURE,switzerlandwest,Standard_D64ads_v5,on_demand,NA,9.071,USD,Azure Retail Prices API,2025-12-18T04:45:56.977447 +AZURE,switzerlandwest,Standard_D64ads_v5,reserved_1y,NA,3.615068,USD,Azure Retail Prices API,2025-12-18T04:45:57.882976 +AZURE,switzerlandwest,Standard_D64ads_v5,reserved_3y,NA,2.328387,USD,Azure Retail Prices API,2025-12-18T04:45:57.882980 +AZURE,switzerlandwest,Standard_D64ads_v5,spot,NA,1.13227,USD,Azure Retail Prices API,2025-12-18T04:45:56.978511 +AZURE,switzerlandwest,Standard_D64ads_v6,on_demand,NA,6.79,USD,Azure Retail Prices API,2025-12-18T04:45:56.977408 +AZURE,switzerlandwest,Standard_D64ads_v6,reserved_1y,NA,4.006393,USD,Azure Retail Prices API,2025-12-18T04:45:57.881912 +AZURE,switzerlandwest,Standard_D64ads_v6,reserved_3y,NA,2.580365,USD,Azure Retail Prices API,2025-12-18T04:45:57.881915 +AZURE,switzerlandwest,Standard_D64ads_v6,spot,NA,1.254792,USD,Azure Retail Prices API,2025-12-18T04:45:56.977810 +AZURE,switzerlandwest,Standard_D64as_v4,on_demand,NA,5.711,USD,Azure Retail Prices API,2025-12-18T04:45:56.977280 +AZURE,switzerlandwest,Standard_D64as_v4,reserved_1y,NA,3.369406,USD,Azure Retail Prices API,2025-12-18T04:45:57.881775 +AZURE,switzerlandwest,Standard_D64as_v4,reserved_3y,NA,2.170129,USD,Azure Retail Prices API,2025-12-18T04:45:57.881777 +AZURE,switzerlandwest,Standard_D64as_v4,spot,NA,1.055393,USD,Azure Retail Prices API,2025-12-18T04:45:56.977405 +AZURE,switzerlandwest,Standard_D64as_v5,on_demand,NA,5.116,USD,Azure Retail Prices API,2025-12-18T04:45:56.977749 +AZURE,switzerlandwest,Standard_D64as_v5,reserved_1y,NA,3.018379,USD,Azure Retail Prices API,2025-12-18T04:45:57.882289 +AZURE,switzerlandwest,Standard_D64as_v5,reserved_3y,NA,1.944064,USD,Azure Retail Prices API,2025-12-18T04:45:57.882292 +AZURE,switzerlandwest,Standard_D64as_v5,spot,NA,0.945437,USD,Azure Retail Prices API,2025-12-18T04:45:56.978421 +AZURE,switzerlandwest,Standard_D64d_v4,on_demand,NA,6.22318,USD,Azure Retail Prices API,2025-12-18T04:45:56.977352 +AZURE,switzerlandwest,Standard_D64d_v4,reserved_1y,NA,3.671689,USD,Azure Retail Prices API,2025-12-18T04:45:57.881860 +AZURE,switzerlandwest,Standard_D64d_v4,reserved_3y,NA,2.364878,USD,Azure Retail Prices API,2025-12-18T04:45:57.881863 +AZURE,switzerlandwest,Standard_D64d_v4,spot,NA,1.150044,USD,Azure Retail Prices API,2025-12-18T04:45:56.978458 +AZURE,switzerlandwest,Standard_D64ds_v4,on_demand,NA,6.22318,USD,Azure Retail Prices API,2025-12-18T04:45:56.978410 +AZURE,switzerlandwest,Standard_D64ds_v4,reserved_1y,NA,3.671689,USD,Azure Retail Prices API,2025-12-18T04:45:57.883101 +AZURE,switzerlandwest,Standard_D64ds_v4,reserved_3y,NA,2.364878,USD,Azure Retail Prices API,2025-12-18T04:45:57.883106 +AZURE,switzerlandwest,Standard_D64ds_v4,spot,NA,1.150044,USD,Azure Retail Prices API,2025-12-18T04:45:56.977383 +AZURE,switzerlandwest,Standard_D64ds_v5,on_demand,NA,6.228,USD,Azure Retail Prices API,2025-12-18T04:45:56.977356 +AZURE,switzerlandwest,Standard_D64ds_v5,reserved_1y,NA,3.674315,USD,Azure Retail Prices API,2025-12-18T04:45:57.881866 +AZURE,switzerlandwest,Standard_D64ds_v5,reserved_3y,NA,2.366476,USD,Azure Retail Prices API,2025-12-18T04:45:57.881869 +AZURE,switzerlandwest,Standard_D64ds_v5,spot,NA,1.150934,USD,Azure Retail Prices API,2025-12-18T04:45:56.977330 +AZURE,switzerlandwest,Standard_D64ds_v6,on_demand,NA,8.085,USD,Azure Retail Prices API,2025-12-18T04:45:56.977563 +AZURE,switzerlandwest,Standard_D64ds_v6,reserved_1y,NA,5.012785,USD,Azure Retail Prices API,2025-12-18T04:45:57.882087 +AZURE,switzerlandwest,Standard_D64ds_v6,reserved_3y,NA,3.153196,USD,Azure Retail Prices API,2025-12-18T04:45:57.882090 +AZURE,switzerlandwest,Standard_D64ds_v6,spot,NA,1.494108,USD,Azure Retail Prices API,2025-12-18T04:45:56.978074 +AZURE,switzerlandwest,Standard_D64s_v3,on_demand,NA,5.49083,USD,Azure Retail Prices API,2025-12-18T04:45:56.977327 +AZURE,switzerlandwest,Standard_D64s_v3,reserved_1y,NA,3.45411,USD,Azure Retail Prices API,2025-12-18T04:45:57.881828 +AZURE,switzerlandwest,Standard_D64s_v3,reserved_3y,NA,2.246385,USD,Azure Retail Prices API,2025-12-18T04:45:57.881831 +AZURE,switzerlandwest,Standard_D64s_v3,spot,NA,1.014705,USD,Azure Retail Prices API,2025-12-18T04:45:56.977718 +AZURE,switzerlandwest,Standard_D64s_v4,on_demand,NA,5.26205,USD,Azure Retail Prices API,2025-12-18T04:45:56.977829 +AZURE,switzerlandwest,Standard_D64s_v4,reserved_1y,NA,3.104795,USD,Azure Retail Prices API,2025-12-18T04:45:57.882390 +AZURE,switzerlandwest,Standard_D64s_v4,reserved_3y,NA,1.999734,USD,Azure Retail Prices API,2025-12-18T04:45:57.882393 +AZURE,switzerlandwest,Standard_D64s_v4,spot,NA,0.972427,USD,Azure Retail Prices API,2025-12-18T04:45:56.978342 +AZURE,switzerlandwest,Standard_D64s_v5,on_demand,NA,5.257,USD,Azure Retail Prices API,2025-12-18T04:45:56.977359 +AZURE,switzerlandwest,Standard_D64s_v5,reserved_1y,NA,3.101484,USD,Azure Retail Prices API,2025-12-18T04:45:57.881871 +AZURE,switzerlandwest,Standard_D64s_v5,reserved_3y,NA,1.945015,USD,Azure Retail Prices API,2025-12-18T04:45:57.881874 +AZURE,switzerlandwest,Standard_D64s_v5,spot,NA,0.971494,USD,Azure Retail Prices API,2025-12-18T04:45:56.977230 +AZURE,switzerlandwest,Standard_D8_v3,on_demand,NA,0.68658,USD,Azure Retail Prices API,2025-12-18T04:45:56.978161 +AZURE,switzerlandwest,Standard_D8_v3,reserved_1y,NA,0.431735,USD,Azure Retail Prices API,2025-12-18T04:45:57.882696 +AZURE,switzerlandwest,Standard_D8_v3,reserved_3y,NA,0.280784,USD,Azure Retail Prices API,2025-12-18T04:45:57.882699 +AZURE,switzerlandwest,Standard_D8_v3,spot,NA,0.12688,USD,Azure Retail Prices API,2025-12-18T04:45:56.977214 +AZURE,switzerlandwest,Standard_D8a_v4,on_demand,NA,0.714,USD,Azure Retail Prices API,2025-12-18T04:45:56.978098 +AZURE,switzerlandwest,Standard_D8a_v4,reserved_1y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:45:57.882644 +AZURE,switzerlandwest,Standard_D8a_v4,reserved_3y,NA,0.271271,USD,Azure Retail Prices API,2025-12-18T04:45:57.882648 +AZURE,switzerlandwest,Standard_D8a_v4,spot,NA,0.131947,USD,Azure Retail Prices API,2025-12-18T04:45:56.978252 +AZURE,switzerlandwest,Standard_D8ads_v5,on_demand,NA,1.134,USD,Azure Retail Prices API,2025-12-18T04:45:56.977306 +AZURE,switzerlandwest,Standard_D8ads_v5,reserved_1y,NA,0.451941,USD,Azure Retail Prices API,2025-12-18T04:45:57.882530 +AZURE,switzerlandwest,Standard_D8ads_v5,reserved_3y,NA,0.291058,USD,Azure Retail Prices API,2025-12-18T04:45:57.882533 +AZURE,switzerlandwest,Standard_D8ads_v5,spot,NA,0.141557,USD,Azure Retail Prices API,2025-12-18T04:45:56.977239 +AZURE,switzerlandwest,Standard_D8ads_v6,on_demand,NA,0.849,USD,Azure Retail Prices API,2025-12-18T04:45:56.978258 +AZURE,switzerlandwest,Standard_D8ads_v6,reserved_1y,NA,0.500799,USD,Azure Retail Prices API,2025-12-18T04:45:57.882818 +AZURE,switzerlandwest,Standard_D8ads_v6,reserved_3y,NA,0.322527,USD,Azure Retail Prices API,2025-12-18T04:45:57.882821 +AZURE,switzerlandwest,Standard_D8ads_v6,spot,NA,0.156895,USD,Azure Retail Prices API,2025-12-18T04:45:56.977698 +AZURE,switzerlandwest,Standard_D8as_v4,on_demand,NA,0.714,USD,Azure Retail Prices API,2025-12-18T04:45:56.978266 +AZURE,switzerlandwest,Standard_D8as_v4,reserved_1y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:45:57.882824 +AZURE,switzerlandwest,Standard_D8as_v4,reserved_3y,NA,0.271271,USD,Azure Retail Prices API,2025-12-18T04:45:57.882827 +AZURE,switzerlandwest,Standard_D8as_v4,spot,NA,0.131947,USD,Azure Retail Prices API,2025-12-18T04:45:56.977476 +AZURE,switzerlandwest,Standard_D8as_v5,on_demand,NA,0.639,USD,Azure Retail Prices API,2025-12-18T04:45:56.977569 +AZURE,switzerlandwest,Standard_D8as_v5,reserved_1y,NA,0.377283,USD,Azure Retail Prices API,2025-12-18T04:45:57.882099 +AZURE,switzerlandwest,Standard_D8as_v5,reserved_3y,NA,0.242998,USD,Azure Retail Prices API,2025-12-18T04:45:57.882102 +AZURE,switzerlandwest,Standard_D8as_v5,spot,NA,0.118087,USD,Azure Retail Prices API,2025-12-18T04:45:56.977541 +AZURE,switzerlandwest,Standard_D8d_v4,on_demand,NA,0.77757,USD,Azure Retail Prices API,2025-12-18T04:45:56.977669 +AZURE,switzerlandwest,Standard_D8d_v4,reserved_1y,NA,0.458904,USD,Azure Retail Prices API,2025-12-18T04:45:57.882193 +AZURE,switzerlandwest,Standard_D8d_v4,reserved_3y,NA,0.295624,USD,Azure Retail Prices API,2025-12-18T04:45:57.882197 +AZURE,switzerlandwest,Standard_D8d_v4,spot,NA,0.143695,USD,Azure Retail Prices API,2025-12-18T04:45:56.977863 +AZURE,switzerlandwest,Standard_D8ds_v4,on_demand,NA,0.77757,USD,Azure Retail Prices API,2025-12-18T04:45:56.977790 +AZURE,switzerlandwest,Standard_D8ds_v4,reserved_1y,NA,0.458904,USD,Azure Retail Prices API,2025-12-18T04:45:57.882350 +AZURE,switzerlandwest,Standard_D8ds_v4,reserved_3y,NA,0.295624,USD,Azure Retail Prices API,2025-12-18T04:45:57.882352 +AZURE,switzerlandwest,Standard_D8ds_v4,spot,NA,0.143695,USD,Azure Retail Prices API,2025-12-18T04:45:56.977544 +AZURE,switzerlandwest,Standard_D8ds_v5,on_demand,NA,0.778,USD,Azure Retail Prices API,2025-12-18T04:45:56.977335 +AZURE,switzerlandwest,Standard_D8ds_v5,reserved_1y,NA,0.459247,USD,Azure Retail Prices API,2025-12-18T04:45:57.881839 +AZURE,switzerlandwest,Standard_D8ds_v5,reserved_3y,NA,0.295814,USD,Azure Retail Prices API,2025-12-18T04:45:57.881842 +AZURE,switzerlandwest,Standard_D8ds_v5,spot,NA,0.143774,USD,Azure Retail Prices API,2025-12-18T04:45:56.977660 +AZURE,switzerlandwest,Standard_D8ds_v6,on_demand,NA,1.011,USD,Azure Retail Prices API,2025-12-18T04:45:56.977846 +AZURE,switzerlandwest,Standard_D8ds_v6,reserved_1y,NA,0.626598,USD,Azure Retail Prices API,2025-12-18T04:45:57.882416 +AZURE,switzerlandwest,Standard_D8ds_v6,reserved_3y,NA,0.39414,USD,Azure Retail Prices API,2025-12-18T04:45:57.882420 +AZURE,switzerlandwest,Standard_D8ds_v6,spot,NA,0.186833,USD,Azure Retail Prices API,2025-12-18T04:45:56.978141 +AZURE,switzerlandwest,Standard_D8s_v3,on_demand,NA,0.68658,USD,Azure Retail Prices API,2025-12-18T04:45:56.977880 +AZURE,switzerlandwest,Standard_D8s_v3,reserved_1y,NA,0.431735,USD,Azure Retail Prices API,2025-12-18T04:45:57.882469 +AZURE,switzerlandwest,Standard_D8s_v3,reserved_3y,NA,0.280784,USD,Azure Retail Prices API,2025-12-18T04:45:57.882472 +AZURE,switzerlandwest,Standard_D8s_v3,spot,NA,0.12688,USD,Azure Retail Prices API,2025-12-18T04:45:56.978376 +AZURE,switzerlandwest,Standard_D8s_v4,on_demand,NA,0.65798,USD,Azure Retail Prices API,2025-12-18T04:45:56.977706 +AZURE,switzerlandwest,Standard_D8s_v4,reserved_1y,NA,0.388128,USD,Azure Retail Prices API,2025-12-18T04:45:57.882229 +AZURE,switzerlandwest,Standard_D8s_v4,reserved_3y,NA,0.249962,USD,Azure Retail Prices API,2025-12-18T04:45:57.882232 +AZURE,switzerlandwest,Standard_D8s_v4,spot,NA,0.121595,USD,Azure Retail Prices API,2025-12-18T04:45:56.978048 +AZURE,switzerlandwest,Standard_D8s_v5,on_demand,NA,0.657,USD,Azure Retail Prices API,2025-12-18T04:45:56.977840 +AZURE,switzerlandwest,Standard_D8s_v5,reserved_1y,NA,0.387671,USD,Azure Retail Prices API,2025-12-18T04:45:57.882402 +AZURE,switzerlandwest,Standard_D8s_v5,reserved_3y,NA,0.243113,USD,Azure Retail Prices API,2025-12-18T04:45:57.882404 +AZURE,switzerlandwest,Standard_D8s_v5,spot,NA,0.121414,USD,Azure Retail Prices API,2025-12-18T04:45:56.978167 +AZURE,switzerlandwest,Standard_D96a_v4,on_demand,NA,8.566,USD,Azure Retail Prices API,2025-12-18T04:45:56.977566 +AZURE,switzerlandwest,Standard_D96a_v4,reserved_1y,NA,5.05411,USD,Azure Retail Prices API,2025-12-18T04:45:57.882093 +AZURE,switzerlandwest,Standard_D96a_v4,reserved_3y,NA,3.255175,USD,Azure Retail Prices API,2025-12-18T04:45:57.882096 +AZURE,switzerlandwest,Standard_D96a_v4,spot,NA,1.582997,USD,Azure Retail Prices API,2025-12-18T04:45:56.978416 +AZURE,switzerlandwest,Standard_D96ads_v5,on_demand,NA,9.191,USD,Azure Retail Prices API,2025-12-18T04:45:56.977575 +AZURE,switzerlandwest,Standard_D96ads_v5,reserved_1y,NA,5.422603,USD,Azure Retail Prices API,2025-12-18T04:45:57.882110 +AZURE,switzerlandwest,Standard_D96ads_v5,reserved_3y,NA,3.492542,USD,Azure Retail Prices API,2025-12-18T04:45:57.882113 +AZURE,switzerlandwest,Standard_D96ads_v5,spot,NA,1.698497,USD,Azure Retail Prices API,2025-12-18T04:45:56.977852 +AZURE,switzerlandwest,Standard_D96ads_v6,on_demand,NA,10.186,USD,Azure Retail Prices API,2025-12-18T04:45:56.977832 +AZURE,switzerlandwest,Standard_D96ads_v6,reserved_1y,NA,6.009475,USD,Azure Retail Prices API,2025-12-18T04:45:57.882396 +AZURE,switzerlandwest,Standard_D96ads_v6,reserved_3y,NA,3.87051,USD,Azure Retail Prices API,2025-12-18T04:45:57.882399 +AZURE,switzerlandwest,Standard_D96ads_v6,spot,NA,1.882373,USD,Azure Retail Prices API,2025-12-18T04:45:56.977248 +AZURE,switzerlandwest,Standard_D96as_v4,on_demand,NA,8.566,USD,Azure Retail Prices API,2025-12-18T04:45:56.978240 +AZURE,switzerlandwest,Standard_D96as_v4,reserved_1y,NA,5.05411,USD,Azure Retail Prices API,2025-12-18T04:45:57.882805 +AZURE,switzerlandwest,Standard_D96as_v4,reserved_3y,NA,3.255175,USD,Azure Retail Prices API,2025-12-18T04:45:57.882809 +AZURE,switzerlandwest,Standard_D96as_v4,spot,NA,1.582997,USD,Azure Retail Prices API,2025-12-18T04:45:56.977289 +AZURE,switzerlandwest,Standard_D96as_v5,on_demand,NA,7.674,USD,Azure Retail Prices API,2025-12-18T04:45:56.977217 +AZURE,switzerlandwest,Standard_D96as_v5,reserved_1y,NA,4.527626,USD,Azure Retail Prices API,2025-12-18T04:45:57.881692 +AZURE,switzerlandwest,Standard_D96as_v5,reserved_3y,NA,2.916096,USD,Azure Retail Prices API,2025-12-18T04:45:57.881695 +AZURE,switzerlandwest,Standard_D96as_v5,spot,NA,1.418155,USD,Azure Retail Prices API,2025-12-18T04:45:56.977865 +AZURE,switzerlandwest,Standard_D96ds_v5,on_demand,NA,9.341,USD,Azure Retail Prices API,2025-12-18T04:45:56.977546 +AZURE,switzerlandwest,Standard_D96ds_v5,reserved_1y,NA,5.511416,USD,Azure Retail Prices API,2025-12-18T04:45:57.882069 +AZURE,switzerlandwest,Standard_D96ds_v5,reserved_3y,NA,3.549734,USD,Azure Retail Prices API,2025-12-18T04:45:57.882072 +AZURE,switzerlandwest,Standard_D96ds_v5,spot,NA,1.726217,USD,Azure Retail Prices API,2025-12-18T04:45:56.978277 +AZURE,switzerlandwest,Standard_D96ds_v6,on_demand,NA,12.128,USD,Azure Retail Prices API,2025-12-18T04:45:56.977666 +AZURE,switzerlandwest,Standard_D96ds_v6,reserved_1y,NA,7.519178,USD,Azure Retail Prices API,2025-12-18T04:45:57.882187 +AZURE,switzerlandwest,Standard_D96ds_v6,reserved_3y,NA,4.729795,USD,Azure Retail Prices API,2025-12-18T04:45:57.882191 +AZURE,switzerlandwest,Standard_D96ds_v6,spot,NA,2.241254,USD,Azure Retail Prices API,2025-12-18T04:45:56.977416 +AZURE,switzerlandwest,Standard_D96s_v5,on_demand,NA,7.885,USD,Azure Retail Prices API,2025-12-18T04:45:56.977436 +AZURE,switzerlandwest,Standard_D96s_v5,reserved_1y,NA,4.652283,USD,Azure Retail Prices API,2025-12-18T04:45:57.881951 +AZURE,switzerlandwest,Standard_D96s_v5,reserved_3y,NA,2.917504,USD,Azure Retail Prices API,2025-12-18T04:45:57.881954 +AZURE,switzerlandwest,Standard_D96s_v5,spot,NA,1.457148,USD,Azure Retail Prices API,2025-12-18T04:45:56.978229 +AZURE,switzerlandwest,Standard_DC16ads_v6,on_demand,NA,1.698,USD,Azure Retail Prices API,2025-12-18T04:45:56.977754 +AZURE,switzerlandwest,Standard_DC16ads_v6,reserved_1y,NA,1.001598,USD,Azure Retail Prices API,2025-12-18T04:45:57.882301 +AZURE,switzerlandwest,Standard_DC16ads_v6,reserved_3y,NA,0.645091,USD,Azure Retail Prices API,2025-12-18T04:45:57.882304 +AZURE,switzerlandwest,Standard_DC16ads_v6,spot,NA,0.31379,USD,Azure Retail Prices API,2025-12-18T04:45:56.978452 +AZURE,switzerlandwest,Standard_DC2ads_v6,on_demand,NA,0.212,USD,Azure Retail Prices API,2025-12-18T04:45:56.977410 +AZURE,switzerlandwest,Standard_DC2ads_v6,reserved_1y,NA,0.125228,USD,Azure Retail Prices API,2025-12-18T04:45:57.881918 +AZURE,switzerlandwest,Standard_DC2ads_v6,reserved_3y,NA,0.080632,USD,Azure Retail Prices API,2025-12-18T04:45:57.881921 +AZURE,switzerlandwest,Standard_DC2ads_v6,spot,NA,0.039178,USD,Azure Retail Prices API,2025-12-18T04:45:56.978463 +AZURE,switzerlandwest,Standard_DC32ads_v6,on_demand,NA,3.395,USD,Azure Retail Prices API,2025-12-18T04:45:56.977683 +AZURE,switzerlandwest,Standard_DC32ads_v6,reserved_1y,NA,2.003196,USD,Azure Retail Prices API,2025-12-18T04:45:57.882212 +AZURE,switzerlandwest,Standard_DC32ads_v6,reserved_3y,NA,1.290183,USD,Azure Retail Prices API,2025-12-18T04:45:57.882215 +AZURE,switzerlandwest,Standard_DC32ads_v6,spot,NA,0.627396,USD,Azure Retail Prices API,2025-12-18T04:45:56.977549 +AZURE,switzerlandwest,Standard_DC48ads_v6,on_demand,NA,5.093,USD,Azure Retail Prices API,2025-12-18T04:45:56.978402 +AZURE,switzerlandwest,Standard_DC48ads_v6,reserved_1y,NA,3.004795,USD,Azure Retail Prices API,2025-12-18T04:45:57.883053 +AZURE,switzerlandwest,Standard_DC48ads_v6,reserved_3y,NA,1.935274,USD,Azure Retail Prices API,2025-12-18T04:45:57.883058 +AZURE,switzerlandwest,Standard_DC48ads_v6,spot,NA,0.941186,USD,Azure Retail Prices API,2025-12-18T04:45:56.977732 +AZURE,switzerlandwest,Standard_DC4ads_v6,on_demand,NA,0.424,USD,Azure Retail Prices API,2025-12-18T04:45:56.977413 +AZURE,switzerlandwest,Standard_DC4ads_v6,reserved_1y,NA,0.250342,USD,Azure Retail Prices API,2025-12-18T04:45:57.881923 +AZURE,switzerlandwest,Standard_DC4ads_v6,reserved_3y,NA,0.161263,USD,Azure Retail Prices API,2025-12-18T04:45:57.881926 +AZURE,switzerlandwest,Standard_DC4ads_v6,spot,NA,0.078355,USD,Azure Retail Prices API,2025-12-18T04:45:56.977834 +AZURE,switzerlandwest,Standard_DC64ads_v6,on_demand,NA,6.79,USD,Azure Retail Prices API,2025-12-18T04:45:56.977777 +AZURE,switzerlandwest,Standard_DC64ads_v6,reserved_1y,NA,4.006393,USD,Azure Retail Prices API,2025-12-18T04:45:57.882318 +AZURE,switzerlandwest,Standard_DC64ads_v6,reserved_3y,NA,2.580365,USD,Azure Retail Prices API,2025-12-18T04:45:57.882321 +AZURE,switzerlandwest,Standard_DC64ads_v6,spot,NA,1.254792,USD,Azure Retail Prices API,2025-12-18T04:45:56.978101 +AZURE,switzerlandwest,Standard_DC8ads_v6,on_demand,NA,0.849,USD,Azure Retail Prices API,2025-12-18T04:45:56.977657 +AZURE,switzerlandwest,Standard_DC8ads_v6,reserved_1y,NA,0.500799,USD,Azure Retail Prices API,2025-12-18T04:45:57.882181 +AZURE,switzerlandwest,Standard_DC8ads_v6,reserved_3y,NA,0.322527,USD,Azure Retail Prices API,2025-12-18T04:45:57.882184 +AZURE,switzerlandwest,Standard_DC8ads_v6,spot,NA,0.156895,USD,Azure Retail Prices API,2025-12-18T04:45:56.977374 +AZURE,switzerlandwest,Standard_DC96ads_v6,on_demand,NA,10.186,USD,Azure Retail Prices API,2025-12-18T04:45:56.977195 +AZURE,switzerlandwest,Standard_DC96ads_v6,reserved_1y,NA,6.009475,USD,Azure Retail Prices API,2025-12-18T04:45:57.881668 +AZURE,switzerlandwest,Standard_DC96ads_v6,reserved_3y,NA,3.87051,USD,Azure Retail Prices API,2025-12-18T04:45:57.881671 +AZURE,switzerlandwest,Standard_DC96ads_v6,spot,NA,1.882373,USD,Azure Retail Prices API,2025-12-18T04:45:56.978506 +AZURE,switzerlandwest,Standard_DS12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495381 +AZURE,switzerlandwest,Standard_DS12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495396 +AZURE,switzerlandwest,Standard_DS12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495405 +AZURE,switzerlandwest,Standard_DS12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495388 +AZURE,switzerlandwest,Standard_DS13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496266 +AZURE,switzerlandwest,Standard_DS13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496282 +AZURE,switzerlandwest,Standard_DS13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496291 +AZURE,switzerlandwest,Standard_DS13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496273 +AZURE,switzerlandwest,Standard_DS14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497018 +AZURE,switzerlandwest,Standard_DS14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497026 +AZURE,switzerlandwest,Standard_DS14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497030 +AZURE,switzerlandwest,Standard_DS14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497022 +AZURE,switzerlandwest,Standard_DS15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497903 +AZURE,switzerlandwest,Standard_DS15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497918 +AZURE,switzerlandwest,Standard_DS15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497924 +AZURE,switzerlandwest,Standard_DS15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497910 +AZURE,switzerlandwest,Standard_DS1_v2,on_demand,NA,0.07665,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491731 +AZURE,switzerlandwest,Standard_DS1_v2,reserved_1y,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491740 +AZURE,switzerlandwest,Standard_DS1_v2,reserved_3y,NA,0.03066,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491744 +AZURE,switzerlandwest,Standard_DS1_v2,spot,NA,0.022995,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491736 +AZURE,switzerlandwest,Standard_DS2_v2,on_demand,NA,0.1533,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492478 +AZURE,switzerlandwest,Standard_DS2_v2,reserved_1y,NA,0.09198,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492486 +AZURE,switzerlandwest,Standard_DS2_v2,reserved_3y,NA,0.06132,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492491 +AZURE,switzerlandwest,Standard_DS2_v2,spot,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492482 +AZURE,switzerlandwest,Standard_DS3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493201 +AZURE,switzerlandwest,Standard_DS3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493210 +AZURE,switzerlandwest,Standard_DS3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493214 +AZURE,switzerlandwest,Standard_DS3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493205 +AZURE,switzerlandwest,Standard_DS4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493913 +AZURE,switzerlandwest,Standard_DS4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493922 +AZURE,switzerlandwest,Standard_DS4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493926 +AZURE,switzerlandwest,Standard_DS4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493918 +AZURE,switzerlandwest,Standard_DS5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494627 +AZURE,switzerlandwest,Standard_DS5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494635 +AZURE,switzerlandwest,Standard_DS5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494639 +AZURE,switzerlandwest,Standard_DS5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494631 +AZURE,switzerlandwest,Standard_E128ds_v6,on_demand,NA,18.355,USD,Azure Retail Prices API,2025-12-18T04:45:56.978095 +AZURE,switzerlandwest,Standard_E128ds_v6,reserved_1y,NA,11.380251,USD,Azure Retail Prices API,2025-12-18T04:45:57.882638 +AZURE,switzerlandwest,Standard_E128ds_v6,reserved_3y,NA,7.158524,USD,Azure Retail Prices API,2025-12-18T04:45:57.882641 +AZURE,switzerlandwest,Standard_E128ds_v6,spot,NA,3.392004,USD,Azure Retail Prices API,2025-12-18T04:45:56.977796 +AZURE,switzerlandwest,Standard_E16_v3,on_demand,NA,1.83058,USD,Azure Retail Prices API,2025-12-18T04:45:56.977674 +AZURE,switzerlandwest,Standard_E16_v3,reserved_1y,NA,1.056735,USD,Azure Retail Prices API,2025-12-18T04:45:57.882206 +AZURE,switzerlandwest,Standard_E16_v3,reserved_3y,NA,0.709551,USD,Azure Retail Prices API,2025-12-18T04:45:57.882209 +AZURE,switzerlandwest,Standard_E16_v3,spot,NA,0.338291,USD,Azure Retail Prices API,2025-12-18T04:45:56.977516 +AZURE,switzerlandwest,Standard_E16a_v4,on_demand,NA,1.874,USD,Azure Retail Prices API,2025-12-18T04:45:56.978203 +AZURE,switzerlandwest,Standard_E16a_v4,reserved_1y,NA,1.105594,USD,Azure Retail Prices API,2025-12-18T04:45:57.882757 +AZURE,switzerlandwest,Standard_E16a_v4,reserved_3y,NA,0.712062,USD,Azure Retail Prices API,2025-12-18T04:45:57.882762 +AZURE,switzerlandwest,Standard_E16a_v4,spot,NA,0.346315,USD,Azure Retail Prices API,2025-12-18T04:45:56.977578 +AZURE,switzerlandwest,Standard_E16ads_v5,on_demand,NA,1.948,USD,Azure Retail Prices API,2025-12-18T04:45:56.977799 +AZURE,switzerlandwest,Standard_E16ads_v5,reserved_1y,NA,1.149429,USD,Azure Retail Prices API,2025-12-18T04:45:57.882366 +AZURE,switzerlandwest,Standard_E16ads_v5,reserved_3y,NA,0.740335,USD,Azure Retail Prices API,2025-12-18T04:45:57.882369 +AZURE,switzerlandwest,Standard_E16ads_v5,spot,NA,0.35999,USD,Azure Retail Prices API,2025-12-18T04:45:56.977470 +AZURE,switzerlandwest,Standard_E16ads_v6,on_demand,NA,2.16,USD,Azure Retail Prices API,2025-12-18T04:45:56.977270 +AZURE,switzerlandwest,Standard_E16ads_v6,reserved_1y,NA,1.274429,USD,Azure Retail Prices API,2025-12-18T04:45:57.881758 +AZURE,switzerlandwest,Standard_E16ads_v6,reserved_3y,NA,0.820814,USD,Azure Retail Prices API,2025-12-18T04:45:57.881761 +AZURE,switzerlandwest,Standard_E16ads_v6,spot,NA,0.399168,USD,Azure Retail Prices API,2025-12-18T04:45:56.978192 +AZURE,switzerlandwest,Standard_E16as_v4,on_demand,NA,1.874,USD,Azure Retail Prices API,2025-12-18T04:45:56.978010 +AZURE,switzerlandwest,Standard_E16as_v4,reserved_1y,NA,1.105594,USD,Azure Retail Prices API,2025-12-18T04:45:57.882566 +AZURE,switzerlandwest,Standard_E16as_v4,reserved_3y,NA,0.712062,USD,Azure Retail Prices API,2025-12-18T04:45:57.882569 +AZURE,switzerlandwest,Standard_E16as_v4,spot,NA,0.346315,USD,Azure Retail Prices API,2025-12-18T04:45:56.977965 +AZURE,switzerlandwest,Standard_E16as_v5,on_demand,NA,2.417,USD,Azure Retail Prices API,2025-12-18T04:45:56.977479 +AZURE,switzerlandwest,Standard_E16as_v5,reserved_1y,NA,0.991553,USD,Azure Retail Prices API,2025-12-18T04:45:57.883140 +AZURE,switzerlandwest,Standard_E16as_v5,reserved_3y,NA,0.638623,USD,Azure Retail Prices API,2025-12-18T04:45:57.883145 +AZURE,switzerlandwest,Standard_E16as_v5,spot,NA,0.310649,USD,Azure Retail Prices API,2025-12-18T04:45:56.977425 +AZURE,switzerlandwest,Standard_E16d_v4,on_demand,NA,2.01048,USD,Azure Retail Prices API,2025-12-18T04:45:56.977996 +AZURE,switzerlandwest,Standard_E16d_v4,reserved_1y,NA,1.186301,USD,Azure Retail Prices API,2025-12-18T04:45:57.882548 +AZURE,switzerlandwest,Standard_E16d_v4,reserved_3y,NA,0.764003,USD,Azure Retail Prices API,2025-12-18T04:45:57.882551 +AZURE,switzerlandwest,Standard_E16d_v4,spot,NA,0.371537,USD,Azure Retail Prices API,2025-12-18T04:45:56.977592 +AZURE,switzerlandwest,Standard_E16ds_v4,on_demand,NA,2.01048,USD,Azure Retail Prices API,2025-12-18T04:45:56.978028 +AZURE,switzerlandwest,Standard_E16ds_v4,reserved_1y,NA,1.186301,USD,Azure Retail Prices API,2025-12-18T04:45:57.882591 +AZURE,switzerlandwest,Standard_E16ds_v4,reserved_3y,NA,0.764003,USD,Azure Retail Prices API,2025-12-18T04:45:57.882595 +AZURE,switzerlandwest,Standard_E16ds_v4,spot,NA,0.371537,USD,Azure Retail Prices API,2025-12-18T04:45:56.978347 +AZURE,switzerlandwest,Standard_E16ds_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:45:56.977211 +AZURE,switzerlandwest,Standard_E16ds_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:45:57.881686 +AZURE,switzerlandwest,Standard_E16ds_v5,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:45:57.881689 +AZURE,switzerlandwest,Standard_E16ds_v5,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:45:56.977807 +AZURE,switzerlandwest,Standard_E16ds_v6,on_demand,NA,2.294,USD,Azure Retail Prices API,2025-12-18T04:45:56.978399 +AZURE,switzerlandwest,Standard_E16ds_v6,reserved_1y,NA,1.422489,USD,Azure Retail Prices API,2025-12-18T04:45:57.883043 +AZURE,switzerlandwest,Standard_E16ds_v6,reserved_3y,NA,0.894825,USD,Azure Retail Prices API,2025-12-18T04:45:57.883048 +AZURE,switzerlandwest,Standard_E16ds_v6,spot,NA,0.423931,USD,Azure Retail Prices API,2025-12-18T04:45:56.977932 +AZURE,switzerlandwest,Standard_E16s_v3,on_demand,NA,1.83058,USD,Azure Retail Prices API,2025-12-18T04:45:56.977886 +AZURE,switzerlandwest,Standard_E16s_v3,reserved_1y,NA,1.056735,USD,Azure Retail Prices API,2025-12-18T04:45:57.882475 +AZURE,switzerlandwest,Standard_E16s_v3,reserved_3y,NA,0.709551,USD,Azure Retail Prices API,2025-12-18T04:45:57.882478 +AZURE,switzerlandwest,Standard_E16s_v3,spot,NA,0.338291,USD,Azure Retail Prices API,2025-12-18T04:45:56.977854 +AZURE,switzerlandwest,Standard_E16s_v4,on_demand,NA,1.76666,USD,Azure Retail Prices API,2025-12-18T04:45:56.977233 +AZURE,switzerlandwest,Standard_E16s_v4,reserved_1y,NA,1.042352,USD,Azure Retail Prices API,2025-12-18T04:45:57.881715 +AZURE,switzerlandwest,Standard_E16s_v4,reserved_3y,NA,0.671271,USD,Azure Retail Prices API,2025-12-18T04:45:57.881719 +AZURE,switzerlandwest,Standard_E16s_v4,spot,NA,0.326479,USD,Azure Retail Prices API,2025-12-18T04:45:56.978296 +AZURE,switzerlandwest,Standard_E16s_v5,on_demand,NA,1.768,USD,Azure Retail Prices API,2025-12-18T04:45:56.978407 +AZURE,switzerlandwest,Standard_E16s_v5,reserved_1y,NA,1.043151,USD,Azure Retail Prices API,2025-12-18T04:45:57.883091 +AZURE,switzerlandwest,Standard_E16s_v5,reserved_3y,NA,0.654148,USD,Azure Retail Prices API,2025-12-18T04:45:57.883096 +AZURE,switzerlandwest,Standard_E16s_v5,spot,NA,0.326726,USD,Azure Retail Prices API,2025-12-18T04:45:56.977766 +AZURE,switzerlandwest,Standard_E20a_v4,on_demand,NA,2.342,USD,Azure Retail Prices API,2025-12-18T04:45:56.978083 +AZURE,switzerlandwest,Standard_E20a_v4,reserved_1y,NA,1.381963,USD,Azure Retail Prices API,2025-12-18T04:45:57.882627 +AZURE,switzerlandwest,Standard_E20a_v4,reserved_3y,NA,0.890107,USD,Azure Retail Prices API,2025-12-18T04:45:57.882630 +AZURE,switzerlandwest,Standard_E20a_v4,spot,NA,0.432802,USD,Azure Retail Prices API,2025-12-18T04:45:56.977648 +AZURE,switzerlandwest,Standard_E20ads_v5,on_demand,NA,2.435,USD,Azure Retail Prices API,2025-12-18T04:45:56.977752 +AZURE,switzerlandwest,Standard_E20ads_v5,reserved_1y,NA,1.436872,USD,Azure Retail Prices API,2025-12-18T04:45:57.882295 +AZURE,switzerlandwest,Standard_E20ads_v5,reserved_3y,NA,0.925419,USD,Azure Retail Prices API,2025-12-18T04:45:57.882298 +AZURE,switzerlandwest,Standard_E20ads_v5,spot,NA,0.449988,USD,Azure Retail Prices API,2025-12-18T04:45:56.977208 +AZURE,switzerlandwest,Standard_E20ads_v6,on_demand,NA,2.7,USD,Azure Retail Prices API,2025-12-18T04:45:56.978001 +AZURE,switzerlandwest,Standard_E20ads_v6,reserved_1y,NA,1.593037,USD,Azure Retail Prices API,2025-12-18T04:45:57.882554 +AZURE,switzerlandwest,Standard_E20ads_v6,reserved_3y,NA,1.025989,USD,Azure Retail Prices API,2025-12-18T04:45:57.882557 +AZURE,switzerlandwest,Standard_E20ads_v6,spot,NA,0.49896,USD,Azure Retail Prices API,2025-12-18T04:45:56.978517 +AZURE,switzerlandwest,Standard_E20as_v4,on_demand,NA,2.342,USD,Azure Retail Prices API,2025-12-18T04:45:56.978492 +AZURE,switzerlandwest,Standard_E20as_v4,reserved_1y,NA,1.381963,USD,Azure Retail Prices API,2025-12-18T04:45:57.883237 +AZURE,switzerlandwest,Standard_E20as_v4,reserved_3y,NA,0.890107,USD,Azure Retail Prices API,2025-12-18T04:45:57.883242 +AZURE,switzerlandwest,Standard_E20as_v4,spot,NA,0.432802,USD,Azure Retail Prices API,2025-12-18T04:45:56.978430 +AZURE,switzerlandwest,Standard_E20as_v5,on_demand,NA,3.021,USD,Azure Retail Prices API,2025-12-18T04:45:56.977158 +AZURE,switzerlandwest,Standard_E20as_v5,reserved_1y,NA,1.239384,USD,Azure Retail Prices API,2025-12-18T04:45:57.881724 +AZURE,switzerlandwest,Standard_E20as_v5,reserved_3y,NA,0.79825,USD,Azure Retail Prices API,2025-12-18T04:45:57.881729 +AZURE,switzerlandwest,Standard_E20as_v5,spot,NA,0.388265,USD,Azure Retail Prices API,2025-12-18T04:45:56.978497 +AZURE,switzerlandwest,Standard_E20d_v4,on_demand,NA,2.51355,USD,Azure Retail Prices API,2025-12-18T04:45:56.978478 +AZURE,switzerlandwest,Standard_E20d_v4,reserved_1y,NA,1.482877,USD,Azure Retail Prices API,2025-12-18T04:45:57.883209 +AZURE,switzerlandwest,Standard_E20d_v4,reserved_3y,NA,0.955023,USD,Azure Retail Prices API,2025-12-18T04:45:57.883213 +AZURE,switzerlandwest,Standard_E20d_v4,spot,NA,0.464504,USD,Azure Retail Prices API,2025-12-18T04:45:56.978263 +AZURE,switzerlandwest,Standard_E20ds_v4,on_demand,NA,2.51355,USD,Azure Retail Prices API,2025-12-18T04:45:56.977283 +AZURE,switzerlandwest,Standard_E20ds_v4,reserved_1y,NA,1.482877,USD,Azure Retail Prices API,2025-12-18T04:45:57.881780 +AZURE,switzerlandwest,Standard_E20ds_v4,reserved_3y,NA,0.955023,USD,Azure Retail Prices API,2025-12-18T04:45:57.881783 +AZURE,switzerlandwest,Standard_E20ds_v4,spot,NA,0.464504,USD,Azure Retail Prices API,2025-12-18T04:45:56.977654 +AZURE,switzerlandwest,Standard_E20ds_v5,on_demand,NA,2.52,USD,Azure Retail Prices API,2025-12-18T04:45:56.978005 +AZURE,switzerlandwest,Standard_E20ds_v5,reserved_1y,NA,1.486758,USD,Azure Retail Prices API,2025-12-18T04:45:57.882560 +AZURE,switzerlandwest,Standard_E20ds_v5,reserved_3y,NA,0.95761,USD,Azure Retail Prices API,2025-12-18T04:45:57.882563 +AZURE,switzerlandwest,Standard_E20ds_v5,spot,NA,0.465696,USD,Azure Retail Prices API,2025-12-18T04:45:56.978371 +AZURE,switzerlandwest,Standard_E20ds_v6,on_demand,NA,2.868,USD,Azure Retail Prices API,2025-12-18T04:45:56.977686 +AZURE,switzerlandwest,Standard_E20ds_v6,reserved_1y,NA,1.778196,USD,Azure Retail Prices API,2025-12-18T04:45:57.882218 +AZURE,switzerlandwest,Standard_E20ds_v6,reserved_3y,NA,1.118531,USD,Azure Retail Prices API,2025-12-18T04:45:57.882221 +AZURE,switzerlandwest,Standard_E20ds_v6,spot,NA,0.530006,USD,Azure Retail Prices API,2025-12-18T04:45:56.978114 +AZURE,switzerlandwest,Standard_E20s_v4,on_demand,NA,2.2081,USD,Azure Retail Prices API,2025-12-18T04:45:56.978137 +AZURE,switzerlandwest,Standard_E20s_v4,reserved_1y,NA,1.302854,USD,Azure Retail Prices API,2025-12-18T04:45:57.882657 +AZURE,switzerlandwest,Standard_E20s_v4,reserved_3y,NA,0.839117,USD,Azure Retail Prices API,2025-12-18T04:45:57.882660 +AZURE,switzerlandwest,Standard_E20s_v4,spot,NA,0.408057,USD,Azure Retail Prices API,2025-12-18T04:45:56.977513 +AZURE,switzerlandwest,Standard_E20s_v5,on_demand,NA,2.21,USD,Azure Retail Prices API,2025-12-18T04:45:56.977721 +AZURE,switzerlandwest,Standard_E20s_v5,reserved_1y,NA,1.303881,USD,Azure Retail Prices API,2025-12-18T04:45:57.882253 +AZURE,switzerlandwest,Standard_E20s_v5,reserved_3y,NA,0.817694,USD,Azure Retail Prices API,2025-12-18T04:45:57.882258 +AZURE,switzerlandwest,Standard_E20s_v5,spot,NA,0.408408,USD,Azure Retail Prices API,2025-12-18T04:45:56.978310 +AZURE,switzerlandwest,Standard_E2_v3,on_demand,NA,0.22917,USD,Azure Retail Prices API,2025-12-18T04:45:56.977580 +AZURE,switzerlandwest,Standard_E2_v3,reserved_1y,NA,0.132078,USD,Azure Retail Prices API,2025-12-18T04:45:57.882117 +AZURE,switzerlandwest,Standard_E2_v3,reserved_3y,NA,0.088699,USD,Azure Retail Prices API,2025-12-18T04:45:57.882122 +AZURE,switzerlandwest,Standard_E2_v3,spot,NA,0.042351,USD,Azure Retail Prices API,2025-12-18T04:45:56.977983 +AZURE,switzerlandwest,Standard_E2ads_v6,on_demand,NA,0.27,USD,Azure Retail Prices API,2025-12-18T04:45:56.978079 +AZURE,switzerlandwest,Standard_E2ads_v6,reserved_1y,NA,0.159247,USD,Azure Retail Prices API,2025-12-18T04:45:57.882621 +AZURE,switzerlandwest,Standard_E2ads_v6,reserved_3y,NA,0.102588,USD,Azure Retail Prices API,2025-12-18T04:45:57.882624 +AZURE,switzerlandwest,Standard_E2ads_v6,spot,NA,0.049896,USD,Azure Retail Prices API,2025-12-18T04:45:56.977178 +AZURE,switzerlandwest,Standard_E2ds_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:45:56.978334 +AZURE,switzerlandwest,Standard_E2ds_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:45:57.882933 +AZURE,switzerlandwest,Standard_E2ds_v5,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:45:57.882937 +AZURE,switzerlandwest,Standard_E2ds_v5,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:45:56.977823 +AZURE,switzerlandwest,Standard_E2ds_v6,on_demand,NA,0.287,USD,Azure Retail Prices API,2025-12-18T04:45:56.978299 +AZURE,switzerlandwest,Standard_E2ds_v6,reserved_1y,NA,0.177854,USD,Azure Retail Prices API,2025-12-18T04:45:57.882863 +AZURE,switzerlandwest,Standard_E2ds_v6,reserved_3y,NA,0.111834,USD,Azure Retail Prices API,2025-12-18T04:45:57.882866 +AZURE,switzerlandwest,Standard_E2ds_v6,spot,NA,0.053038,USD,Azure Retail Prices API,2025-12-18T04:45:56.978116 +AZURE,switzerlandwest,Standard_E32_v3,on_demand,NA,3.66117,USD,Azure Retail Prices API,2025-12-18T04:45:56.978206 +AZURE,switzerlandwest,Standard_E32_v3,reserved_1y,NA,2.113584,USD,Azure Retail Prices API,2025-12-18T04:45:57.882768 +AZURE,switzerlandwest,Standard_E32_v3,reserved_3y,NA,1.419102,USD,Azure Retail Prices API,2025-12-18T04:45:57.882771 +AZURE,switzerlandwest,Standard_E32_v3,spot,NA,0.676584,USD,Azure Retail Prices API,2025-12-18T04:45:56.978226 +AZURE,switzerlandwest,Standard_E32a_v4,on_demand,NA,3.748,USD,Azure Retail Prices API,2025-12-18T04:45:56.978508 +AZURE,switzerlandwest,Standard_E32a_v4,reserved_1y,NA,2.211187,USD,Azure Retail Prices API,2025-12-18T04:45:57.883247 +AZURE,switzerlandwest,Standard_E32a_v4,reserved_3y,NA,1.424125,USD,Azure Retail Prices API,2025-12-18T04:45:57.883252 +AZURE,switzerlandwest,Standard_E32a_v4,spot,NA,0.69263,USD,Azure Retail Prices API,2025-12-18T04:45:56.978280 +AZURE,switzerlandwest,Standard_E32ads_v5,on_demand,NA,3.896,USD,Azure Retail Prices API,2025-12-18T04:45:56.977527 +AZURE,switzerlandwest,Standard_E32ads_v5,reserved_1y,NA,2.298973,USD,Azure Retail Prices API,2025-12-18T04:45:57.882057 +AZURE,switzerlandwest,Standard_E32ads_v5,reserved_3y,NA,1.48067,USD,Azure Retail Prices API,2025-12-18T04:45:57.882060 +AZURE,switzerlandwest,Standard_E32ads_v5,spot,NA,0.719981,USD,Azure Retail Prices API,2025-12-18T04:45:56.977286 +AZURE,switzerlandwest,Standard_E32ads_v6,on_demand,NA,4.32,USD,Azure Retail Prices API,2025-12-18T04:45:56.978427 +AZURE,switzerlandwest,Standard_E32ads_v6,reserved_1y,NA,2.548744,USD,Azure Retail Prices API,2025-12-18T04:45:57.883130 +AZURE,switzerlandwest,Standard_E32ads_v6,reserved_3y,NA,1.641591,USD,Azure Retail Prices API,2025-12-18T04:45:57.883135 +AZURE,switzerlandwest,Standard_E32ads_v6,spot,NA,0.798336,USD,Azure Retail Prices API,2025-12-18T04:45:56.977695 +AZURE,switzerlandwest,Standard_E32as_v4,on_demand,NA,3.748,USD,Azure Retail Prices API,2025-12-18T04:45:56.977453 +AZURE,switzerlandwest,Standard_E32as_v4,reserved_1y,NA,2.211187,USD,Azure Retail Prices API,2025-12-18T04:45:57.881957 +AZURE,switzerlandwest,Standard_E32as_v4,reserved_3y,NA,1.424125,USD,Azure Retail Prices API,2025-12-18T04:45:57.881963 +AZURE,switzerlandwest,Standard_E32as_v4,spot,NA,0.69263,USD,Azure Retail Prices API,2025-12-18T04:45:56.977245 +AZURE,switzerlandwest,Standard_E32as_v5,on_demand,NA,3.361,USD,Azure Retail Prices API,2025-12-18T04:45:56.977341 +AZURE,switzerlandwest,Standard_E32as_v5,reserved_1y,NA,1.982991,USD,Azure Retail Prices API,2025-12-18T04:45:57.881850 +AZURE,switzerlandwest,Standard_E32as_v5,reserved_3y,NA,1.277207,USD,Azure Retail Prices API,2025-12-18T04:45:57.881852 +AZURE,switzerlandwest,Standard_E32as_v5,spot,NA,0.621113,USD,Azure Retail Prices API,2025-12-18T04:45:56.977347 +AZURE,switzerlandwest,Standard_E32d_v4,on_demand,NA,4.02097,USD,Azure Retail Prices API,2025-12-18T04:45:56.978152 +AZURE,switzerlandwest,Standard_E32d_v4,reserved_1y,NA,2.372489,USD,Azure Retail Prices API,2025-12-18T04:45:57.882681 +AZURE,switzerlandwest,Standard_E32d_v4,reserved_3y,NA,1.528044,USD,Azure Retail Prices API,2025-12-18T04:45:57.882687 +AZURE,switzerlandwest,Standard_E32d_v4,spot,NA,0.743075,USD,Azure Retail Prices API,2025-12-18T04:45:56.978051 +AZURE,switzerlandwest,Standard_E32ds_v4,on_demand,NA,4.02097,USD,Azure Retail Prices API,2025-12-18T04:45:56.978293 +AZURE,switzerlandwest,Standard_E32ds_v4,reserved_1y,NA,2.372489,USD,Azure Retail Prices API,2025-12-18T04:45:57.882857 +AZURE,switzerlandwest,Standard_E32ds_v4,reserved_3y,NA,1.528044,USD,Azure Retail Prices API,2025-12-18T04:45:57.882860 +AZURE,switzerlandwest,Standard_E32ds_v4,spot,NA,0.743075,USD,Azure Retail Prices API,2025-12-18T04:45:56.978472 +AZURE,switzerlandwest,Standard_E32ds_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:45:56.978455 +AZURE,switzerlandwest,Standard_E32ds_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:45:57.883171 +AZURE,switzerlandwest,Standard_E32ds_v5,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:45:57.883176 +AZURE,switzerlandwest,Standard_E32ds_v5,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:45:56.977883 +AZURE,switzerlandwest,Standard_E32ds_v6,on_demand,NA,4.589,USD,Azure Retail Prices API,2025-12-18T04:45:56.977763 +AZURE,switzerlandwest,Standard_E32ds_v6,reserved_1y,NA,2.845091,USD,Azure Retail Prices API,2025-12-18T04:45:57.882312 +AZURE,switzerlandwest,Standard_E32ds_v6,reserved_3y,NA,1.78965,USD,Azure Retail Prices API,2025-12-18T04:45:57.882315 +AZURE,switzerlandwest,Standard_E32ds_v6,spot,NA,0.848047,USD,Azure Retail Prices API,2025-12-18T04:45:56.977634 +AZURE,switzerlandwest,Standard_E32s_v3,on_demand,NA,3.66117,USD,Azure Retail Prices API,2025-12-18T04:45:56.978274 +AZURE,switzerlandwest,Standard_E32s_v3,reserved_1y,NA,2.113584,USD,Azure Retail Prices API,2025-12-18T04:45:57.882833 +AZURE,switzerlandwest,Standard_E32s_v3,reserved_3y,NA,1.419102,USD,Azure Retail Prices API,2025-12-18T04:45:57.882838 +AZURE,switzerlandwest,Standard_E32s_v3,spot,NA,0.676584,USD,Azure Retail Prices API,2025-12-18T04:45:56.977442 +AZURE,switzerlandwest,Standard_E32s_v4,on_demand,NA,3.53332,USD,Azure Retail Prices API,2025-12-18T04:45:56.977871 +AZURE,switzerlandwest,Standard_E32s_v4,reserved_1y,NA,2.084475,USD,Azure Retail Prices API,2025-12-18T04:45:57.882452 +AZURE,switzerlandwest,Standard_E32s_v4,reserved_3y,NA,1.34258,USD,Azure Retail Prices API,2025-12-18T04:45:57.882455 +AZURE,switzerlandwest,Standard_E32s_v4,spot,NA,0.652958,USD,Azure Retail Prices API,2025-12-18T04:45:56.978234 +AZURE,switzerlandwest,Standard_E32s_v5,on_demand,NA,3.536,USD,Azure Retail Prices API,2025-12-18T04:45:56.977227 +AZURE,switzerlandwest,Standard_E32s_v5,reserved_1y,NA,2.086187,USD,Azure Retail Prices API,2025-12-18T04:45:57.881709 +AZURE,switzerlandwest,Standard_E32s_v5,reserved_3y,NA,1.308333,USD,Azure Retail Prices API,2025-12-18T04:45:57.881712 +AZURE,switzerlandwest,Standard_E32s_v5,spot,NA,0.653453,USD,Azure Retail Prices API,2025-12-18T04:45:56.978223 +AZURE,switzerlandwest,Standard_E48a_v4,on_demand,NA,5.622,USD,Azure Retail Prices API,2025-12-18T04:45:56.977874 +AZURE,switzerlandwest,Standard_E48a_v4,reserved_1y,NA,3.316781,USD,Azure Retail Prices API,2025-12-18T04:45:57.882458 +AZURE,switzerlandwest,Standard_E48a_v4,reserved_3y,NA,2.136225,USD,Azure Retail Prices API,2025-12-18T04:45:57.882461 +AZURE,switzerlandwest,Standard_E48a_v4,spot,NA,1.038946,USD,Azure Retail Prices API,2025-12-18T04:45:56.977538 +AZURE,switzerlandwest,Standard_E48ads_v5,on_demand,NA,5.845,USD,Azure Retail Prices API,2025-12-18T04:45:56.977274 +AZURE,switzerlandwest,Standard_E48ads_v5,reserved_1y,NA,3.448402,USD,Azure Retail Prices API,2025-12-18T04:45:57.881764 +AZURE,switzerlandwest,Standard_E48ads_v5,reserved_3y,NA,2.221005,USD,Azure Retail Prices API,2025-12-18T04:45:57.881766 +AZURE,switzerlandwest,Standard_E48ads_v5,spot,NA,1.080156,USD,Azure Retail Prices API,2025-12-18T04:45:56.978272 +AZURE,switzerlandwest,Standard_E48ads_v6,on_demand,NA,6.48,USD,Azure Retail Prices API,2025-12-18T04:45:56.977188 +AZURE,switzerlandwest,Standard_E48ads_v6,reserved_1y,NA,3.823174,USD,Azure Retail Prices API,2025-12-18T04:45:57.881653 +AZURE,switzerlandwest,Standard_E48ads_v6,reserved_3y,NA,2.462405,USD,Azure Retail Prices API,2025-12-18T04:45:57.881659 +AZURE,switzerlandwest,Standard_E48ads_v6,spot,NA,1.197504,USD,Azure Retail Prices API,2025-12-18T04:45:56.977439 +AZURE,switzerlandwest,Standard_E48as_v4,on_demand,NA,5.622,USD,Azure Retail Prices API,2025-12-18T04:45:56.978045 +AZURE,switzerlandwest,Standard_E48as_v4,reserved_1y,NA,3.316781,USD,Azure Retail Prices API,2025-12-18T04:45:57.882609 +AZURE,switzerlandwest,Standard_E48as_v4,reserved_3y,NA,2.136225,USD,Azure Retail Prices API,2025-12-18T04:45:57.882612 +AZURE,switzerlandwest,Standard_E48as_v4,spot,NA,1.038946,USD,Azure Retail Prices API,2025-12-18T04:45:56.977961 +AZURE,switzerlandwest,Standard_E48as_v5,on_demand,NA,7.25,USD,Azure Retail Prices API,2025-12-18T04:45:56.977586 +AZURE,switzerlandwest,Standard_E48as_v5,reserved_1y,NA,2.974543,USD,Azure Retail Prices API,2025-12-18T04:45:57.882361 +AZURE,switzerlandwest,Standard_E48as_v5,reserved_3y,NA,1.91583,USD,Azure Retail Prices API,2025-12-18T04:45:57.882364 +AZURE,switzerlandwest,Standard_E48as_v5,spot,NA,0.931762,USD,Azure Retail Prices API,2025-12-18T04:45:56.977857 +AZURE,switzerlandwest,Standard_E48d_v4,on_demand,NA,6.03145,USD,Azure Retail Prices API,2025-12-18T04:45:56.978413 +AZURE,switzerlandwest,Standard_E48d_v4,reserved_1y,NA,3.55879,USD,Azure Retail Prices API,2025-12-18T04:45:57.883111 +AZURE,switzerlandwest,Standard_E48d_v4,reserved_3y,NA,2.292047,USD,Azure Retail Prices API,2025-12-18T04:45:57.883116 +AZURE,switzerlandwest,Standard_E48d_v4,spot,NA,1.114612,USD,Azure Retail Prices API,2025-12-18T04:45:56.978088 +AZURE,switzerlandwest,Standard_E48ds_v4,on_demand,NA,6.03145,USD,Azure Retail Prices API,2025-12-18T04:45:56.977558 +AZURE,switzerlandwest,Standard_E48ds_v4,reserved_1y,NA,3.55879,USD,Azure Retail Prices API,2025-12-18T04:45:57.882081 +AZURE,switzerlandwest,Standard_E48ds_v4,reserved_3y,NA,2.292047,USD,Azure Retail Prices API,2025-12-18T04:45:57.882084 +AZURE,switzerlandwest,Standard_E48ds_v4,spot,NA,1.114612,USD,Azure Retail Prices API,2025-12-18T04:45:56.978260 +AZURE,switzerlandwest,Standard_E48ds_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:45:56.978486 +AZURE,switzerlandwest,Standard_E48ds_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:57.883227 +AZURE,switzerlandwest,Standard_E48ds_v5,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:45:57.883232 +AZURE,switzerlandwest,Standard_E48ds_v5,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:45:56.978164 +AZURE,switzerlandwest,Standard_E48ds_v6,on_demand,NA,6.883,USD,Azure Retail Prices API,2025-12-18T04:45:56.978158 +AZURE,switzerlandwest,Standard_E48ds_v6,reserved_1y,NA,4.26758,USD,Azure Retail Prices API,2025-12-18T04:45:57.882690 +AZURE,switzerlandwest,Standard_E48ds_v6,reserved_3y,NA,2.684437,USD,Azure Retail Prices API,2025-12-18T04:45:57.882693 +AZURE,switzerlandwest,Standard_E48ds_v6,spot,NA,1.271978,USD,Azure Retail Prices API,2025-12-18T04:45:56.978336 +AZURE,switzerlandwest,Standard_E48s_v4,on_demand,NA,5.29997,USD,Azure Retail Prices API,2025-12-18T04:45:56.978305 +AZURE,switzerlandwest,Standard_E48s_v4,reserved_1y,NA,3.126826,USD,Azure Retail Prices API,2025-12-18T04:45:57.882875 +AZURE,switzerlandwest,Standard_E48s_v4,reserved_3y,NA,2.013851,USD,Azure Retail Prices API,2025-12-18T04:45:57.882878 +AZURE,switzerlandwest,Standard_E48s_v4,spot,NA,0.979434,USD,Azure Retail Prices API,2025-12-18T04:45:56.977465 +AZURE,switzerlandwest,Standard_E48s_v5,on_demand,NA,5.304,USD,Azure Retail Prices API,2025-12-18T04:45:56.978393 +AZURE,switzerlandwest,Standard_E48s_v5,reserved_1y,NA,3.129338,USD,Azure Retail Prices API,2025-12-18T04:45:57.883034 +AZURE,switzerlandwest,Standard_E48s_v5,reserved_3y,NA,1.962481,USD,Azure Retail Prices API,2025-12-18T04:45:57.883038 +AZURE,switzerlandwest,Standard_E48s_v5,spot,NA,0.980179,USD,Azure Retail Prices API,2025-12-18T04:45:56.978111 +AZURE,switzerlandwest,Standard_E4_v3,on_demand,NA,0.45742,USD,Azure Retail Prices API,2025-12-18T04:45:56.977518 +AZURE,switzerlandwest,Standard_E4_v3,reserved_1y,NA,0.264155,USD,Azure Retail Prices API,2025-12-18T04:45:57.882039 +AZURE,switzerlandwest,Standard_E4_v3,reserved_3y,NA,0.177397,USD,Azure Retail Prices API,2025-12-18T04:45:57.882043 +AZURE,switzerlandwest,Standard_E4_v3,spot,NA,0.084531,USD,Azure Retail Prices API,2025-12-18T04:45:56.977388 +AZURE,switzerlandwest,Standard_E4a_v4,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:45:56.977609 +AZURE,switzerlandwest,Standard_E4a_v4,reserved_1y,NA,0.27637,USD,Azure Retail Prices API,2025-12-18T04:45:57.882127 +AZURE,switzerlandwest,Standard_E4a_v4,reserved_3y,NA,0.178006,USD,Azure Retail Prices API,2025-12-18T04:45:57.882132 +AZURE,switzerlandwest,Standard_E4a_v4,spot,NA,0.086486,USD,Azure Retail Prices API,2025-12-18T04:45:56.978249 +AZURE,switzerlandwest,Standard_E4ads_v5,on_demand,NA,0.487,USD,Azure Retail Prices API,2025-12-18T04:45:56.977459 +AZURE,switzerlandwest,Standard_E4ads_v5,reserved_1y,NA,0.287329,USD,Azure Retail Prices API,2025-12-18T04:45:57.881976 +AZURE,switzerlandwest,Standard_E4ads_v5,reserved_3y,NA,0.185084,USD,Azure Retail Prices API,2025-12-18T04:45:57.881980 +AZURE,switzerlandwest,Standard_E4ads_v5,spot,NA,0.089998,USD,Azure Retail Prices API,2025-12-18T04:45:56.977450 +AZURE,switzerlandwest,Standard_E4ads_v6,on_demand,NA,0.54,USD,Azure Retail Prices API,2025-12-18T04:45:56.978237 +AZURE,switzerlandwest,Standard_E4ads_v6,reserved_1y,NA,0.318607,USD,Azure Retail Prices API,2025-12-18T04:45:57.882799 +AZURE,switzerlandwest,Standard_E4ads_v6,reserved_3y,NA,0.205213,USD,Azure Retail Prices API,2025-12-18T04:45:57.882802 +AZURE,switzerlandwest,Standard_E4ads_v6,spot,NA,0.099792,USD,Azure Retail Prices API,2025-12-18T04:45:56.977620 +AZURE,switzerlandwest,Standard_E4as_v4,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:45:56.978373 +AZURE,switzerlandwest,Standard_E4as_v4,reserved_1y,NA,0.27637,USD,Azure Retail Prices API,2025-12-18T04:45:57.882993 +AZURE,switzerlandwest,Standard_E4as_v4,reserved_3y,NA,0.178006,USD,Azure Retail Prices API,2025-12-18T04:45:57.883001 +AZURE,switzerlandwest,Standard_E4as_v4,spot,NA,0.086486,USD,Azure Retail Prices API,2025-12-18T04:45:56.978171 +AZURE,switzerlandwest,Standard_E4as_v5,on_demand,NA,0.42,USD,Azure Retail Prices API,2025-12-18T04:45:56.977318 +AZURE,switzerlandwest,Standard_E4as_v5,reserved_1y,NA,0.247831,USD,Azure Retail Prices API,2025-12-18T04:45:57.881817 +AZURE,switzerlandwest,Standard_E4as_v5,reserved_3y,NA,0.159665,USD,Azure Retail Prices API,2025-12-18T04:45:57.881820 +AZURE,switzerlandwest,Standard_E4as_v5,spot,NA,0.077616,USD,Azure Retail Prices API,2025-12-18T04:45:56.977662 +AZURE,switzerlandwest,Standard_E4d_v4,on_demand,NA,0.50306,USD,Azure Retail Prices API,2025-12-18T04:45:56.977757 +AZURE,switzerlandwest,Standard_E4d_v4,reserved_1y,NA,0.296575,USD,Azure Retail Prices API,2025-12-18T04:45:57.882307 +AZURE,switzerlandwest,Standard_E4d_v4,reserved_3y,NA,0.19102,USD,Azure Retail Prices API,2025-12-18T04:45:57.882310 +AZURE,switzerlandwest,Standard_E4d_v4,spot,NA,0.092965,USD,Azure Retail Prices API,2025-12-18T04:45:56.977482 +AZURE,switzerlandwest,Standard_E4ds_v4,on_demand,NA,0.50306,USD,Azure Retail Prices API,2025-12-18T04:45:56.978092 +AZURE,switzerlandwest,Standard_E4ds_v4,reserved_1y,NA,0.296575,USD,Azure Retail Prices API,2025-12-18T04:45:57.882632 +AZURE,switzerlandwest,Standard_E4ds_v4,reserved_3y,NA,0.19102,USD,Azure Retail Prices API,2025-12-18T04:45:57.882635 +AZURE,switzerlandwest,Standard_E4ds_v4,spot,NA,0.092965,USD,Azure Retail Prices API,2025-12-18T04:45:56.977484 +AZURE,switzerlandwest,Standard_E4ds_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:45:56.977571 +AZURE,switzerlandwest,Standard_E4ds_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:45:57.882105 +AZURE,switzerlandwest,Standard_E4ds_v5,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:45:57.882108 +AZURE,switzerlandwest,Standard_E4ds_v5,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:45:56.977394 +AZURE,switzerlandwest,Standard_E4ds_v6,on_demand,NA,0.574,USD,Azure Retail Prices API,2025-12-18T04:45:56.978319 +AZURE,switzerlandwest,Standard_E4ds_v6,reserved_1y,NA,0.355594,USD,Azure Retail Prices API,2025-12-18T04:45:57.882899 +AZURE,switzerlandwest,Standard_E4ds_v6,reserved_3y,NA,0.223706,USD,Azure Retail Prices API,2025-12-18T04:45:57.882903 +AZURE,switzerlandwest,Standard_E4ds_v6,spot,NA,0.106075,USD,Azure Retail Prices API,2025-12-18T04:45:56.978331 +AZURE,switzerlandwest,Standard_E4s_v4,on_demand,NA,0.44144,USD,Azure Retail Prices API,2025-12-18T04:45:56.978177 +AZURE,switzerlandwest,Standard_E4s_v4,reserved_1y,NA,0.260502,USD,Azure Retail Prices API,2025-12-18T04:45:57.882703 +AZURE,switzerlandwest,Standard_E4s_v4,reserved_3y,NA,0.167808,USD,Azure Retail Prices API,2025-12-18T04:45:57.882706 +AZURE,switzerlandwest,Standard_E4s_v4,spot,NA,0.081578,USD,Azure Retail Prices API,2025-12-18T04:45:56.978495 +AZURE,switzerlandwest,Standard_E4s_v5,on_demand,NA,0.442,USD,Azure Retail Prices API,2025-12-18T04:45:56.977181 +AZURE,switzerlandwest,Standard_E4s_v5,reserved_1y,NA,0.260731,USD,Azure Retail Prices API,2025-12-18T04:45:57.881635 +AZURE,switzerlandwest,Standard_E4s_v5,reserved_3y,NA,0.163546,USD,Azure Retail Prices API,2025-12-18T04:45:57.881638 +AZURE,switzerlandwest,Standard_E4s_v5,spot,NA,0.081682,USD,Azure Retail Prices API,2025-12-18T04:45:56.978436 +AZURE,switzerlandwest,Standard_E64_v3,on_demand,NA,6.25681,USD,Azure Retail Prices API,2025-12-18T04:45:56.977973 +AZURE,switzerlandwest,Standard_E64_v3,reserved_1y,NA,3.804452,USD,Azure Retail Prices API,2025-12-18T04:45:57.882536 +AZURE,switzerlandwest,Standard_E64_v3,reserved_3y,NA,2.554414,USD,Azure Retail Prices API,2025-12-18T04:45:57.882539 +AZURE,switzerlandwest,Standard_E64_v3,spot,NA,1.156258,USD,Azure Retail Prices API,2025-12-18T04:45:56.977601 +AZURE,switzerlandwest,Standard_E64a_v4,on_demand,NA,7.495,USD,Azure Retail Prices API,2025-12-18T04:45:56.977399 +AZURE,switzerlandwest,Standard_E64a_v4,reserved_1y,NA,4.422374,USD,Azure Retail Prices API,2025-12-18T04:45:57.881907 +AZURE,switzerlandwest,Standard_E64a_v4,reserved_3y,NA,2.848288,USD,Azure Retail Prices API,2025-12-18T04:45:57.881909 +AZURE,switzerlandwest,Standard_E64a_v4,spot,NA,1.385076,USD,Azure Retail Prices API,2025-12-18T04:45:56.977615 +AZURE,switzerlandwest,Standard_E64ads_v5,on_demand,NA,7.793,USD,Azure Retail Prices API,2025-12-18T04:45:56.977261 +AZURE,switzerlandwest,Standard_E64ads_v5,reserved_1y,NA,4.597831,USD,Azure Retail Prices API,2025-12-18T04:45:57.881747 +AZURE,switzerlandwest,Standard_E64ads_v5,reserved_3y,NA,2.961339,USD,Azure Retail Prices API,2025-12-18T04:45:57.881750 +AZURE,switzerlandwest,Standard_E64ads_v5,spot,NA,1.440146,USD,Azure Retail Prices API,2025-12-18T04:45:56.978283 +AZURE,switzerlandwest,Standard_E64ads_v6,on_demand,NA,8.64,USD,Azure Retail Prices API,2025-12-18T04:45:56.977361 +AZURE,switzerlandwest,Standard_E64ads_v6,reserved_1y,NA,5.097603,USD,Azure Retail Prices API,2025-12-18T04:45:57.881876 +AZURE,switzerlandwest,Standard_E64ads_v6,reserved_3y,NA,3.283181,USD,Azure Retail Prices API,2025-12-18T04:45:57.881880 +AZURE,switzerlandwest,Standard_E64ads_v6,spot,NA,1.596672,USD,Azure Retail Prices API,2025-12-18T04:45:56.978105 +AZURE,switzerlandwest,Standard_E64as_v4,on_demand,NA,7.495,USD,Azure Retail Prices API,2025-12-18T04:45:56.978149 +AZURE,switzerlandwest,Standard_E64as_v4,reserved_1y,NA,4.422374,USD,Azure Retail Prices API,2025-12-18T04:45:57.882671 +AZURE,switzerlandwest,Standard_E64as_v4,reserved_3y,NA,2.848288,USD,Azure Retail Prices API,2025-12-18T04:45:57.882676 +AZURE,switzerlandwest,Standard_E64as_v4,spot,NA,1.385076,USD,Azure Retail Prices API,2025-12-18T04:45:56.977743 +AZURE,switzerlandwest,Standard_E64as_v5,on_demand,NA,6.722,USD,Azure Retail Prices API,2025-12-18T04:45:56.977391 +AZURE,switzerlandwest,Standard_E64as_v5,reserved_1y,NA,3.966096,USD,Azure Retail Prices API,2025-12-18T04:45:57.881901 +AZURE,switzerlandwest,Standard_E64as_v5,reserved_3y,NA,2.554414,USD,Azure Retail Prices API,2025-12-18T04:45:57.881904 +AZURE,switzerlandwest,Standard_E64as_v5,spot,NA,1.242226,USD,Azure Retail Prices API,2025-12-18T04:45:56.978055 +AZURE,switzerlandwest,Standard_E64d_v4,on_demand,NA,8.04194,USD,Azure Retail Prices API,2025-12-18T04:45:56.977242 +AZURE,switzerlandwest,Standard_E64d_v4,reserved_1y,NA,4.744977,USD,Azure Retail Prices API,2025-12-18T04:45:57.881734 +AZURE,switzerlandwest,Standard_E64d_v4,reserved_3y,NA,3.056088,USD,Azure Retail Prices API,2025-12-18T04:45:57.881738 +AZURE,switzerlandwest,Standard_E64d_v4,spot,NA,1.486151,USD,Azure Retail Prices API,2025-12-18T04:45:56.977905 +AZURE,switzerlandwest,Standard_E64ds_v4,on_demand,NA,8.04194,USD,Azure Retail Prices API,2025-12-18T04:45:56.977785 +AZURE,switzerlandwest,Standard_E64ds_v4,reserved_1y,NA,4.744977,USD,Azure Retail Prices API,2025-12-18T04:45:57.882330 +AZURE,switzerlandwest,Standard_E64ds_v4,reserved_3y,NA,3.056088,USD,Azure Retail Prices API,2025-12-18T04:45:57.882335 +AZURE,switzerlandwest,Standard_E64ds_v4,spot,NA,1.486151,USD,Azure Retail Prices API,2025-12-18T04:45:56.977552 +AZURE,switzerlandwest,Standard_E64ds_v5,on_demand,NA,8.064,USD,Azure Retail Prices API,2025-12-18T04:45:56.977224 +AZURE,switzerlandwest,Standard_E64ds_v5,reserved_1y,NA,4.757763,USD,Azure Retail Prices API,2025-12-18T04:45:57.881704 +AZURE,switzerlandwest,Standard_E64ds_v5,reserved_3y,NA,3.064307,USD,Azure Retail Prices API,2025-12-18T04:45:57.881706 +AZURE,switzerlandwest,Standard_E64ds_v5,spot,NA,1.490227,USD,Azure Retail Prices API,2025-12-18T04:45:56.978195 +AZURE,switzerlandwest,Standard_E64ds_v6,on_demand,NA,9.178,USD,Azure Retail Prices API,2025-12-18T04:45:56.977645 +AZURE,switzerlandwest,Standard_E64ds_v6,reserved_1y,NA,5.690068,USD,Azure Retail Prices API,2025-12-18T04:45:57.882157 +AZURE,switzerlandwest,Standard_E64ds_v6,reserved_3y,NA,3.579262,USD,Azure Retail Prices API,2025-12-18T04:45:57.882163 +AZURE,switzerlandwest,Standard_E64ds_v6,spot,NA,1.696094,USD,Azure Retail Prices API,2025-12-18T04:45:56.977815 +AZURE,switzerlandwest,Standard_E64s_v3,on_demand,NA,6.25681,USD,Azure Retail Prices API,2025-12-18T04:45:56.978379 +AZURE,switzerlandwest,Standard_E64s_v3,reserved_1y,NA,3.804452,USD,Azure Retail Prices API,2025-12-18T04:45:57.883006 +AZURE,switzerlandwest,Standard_E64s_v3,reserved_3y,NA,2.554414,USD,Azure Retail Prices API,2025-12-18T04:45:57.883011 +AZURE,switzerlandwest,Standard_E64s_v3,spot,NA,1.156258,USD,Azure Retail Prices API,2025-12-18T04:45:56.977444 +AZURE,switzerlandwest,Standard_E64s_v4,on_demand,NA,7.06575,USD,Azure Retail Prices API,2025-12-18T04:45:56.977502 +AZURE,switzerlandwest,Standard_E64s_v4,reserved_1y,NA,4.16895,USD,Azure Retail Prices API,2025-12-18T04:45:57.882018 +AZURE,switzerlandwest,Standard_E64s_v4,reserved_3y,NA,2.685122,USD,Azure Retail Prices API,2025-12-18T04:45:57.882020 +AZURE,switzerlandwest,Standard_E64s_v4,spot,NA,1.305751,USD,Azure Retail Prices API,2025-12-18T04:45:56.978325 +AZURE,switzerlandwest,Standard_E64s_v5,on_demand,NA,7.072,USD,Azure Retail Prices API,2025-12-18T04:45:56.977490 +AZURE,switzerlandwest,Standard_E64s_v5,reserved_1y,NA,4.172489,USD,Azure Retail Prices API,2025-12-18T04:45:57.882001 +AZURE,switzerlandwest,Standard_E64s_v5,reserved_3y,NA,2.616629,USD,Azure Retail Prices API,2025-12-18T04:45:57.882003 +AZURE,switzerlandwest,Standard_E64s_v5,spot,NA,1.306906,USD,Azure Retail Prices API,2025-12-18T04:45:56.977291 +AZURE,switzerlandwest,Standard_E80ids_v4,on_demand,NA,10.0533,USD,Azure Retail Prices API,2025-12-18T04:45:56.977205 +AZURE,switzerlandwest,Standard_E80ids_v4,reserved_1y,NA,5.931164,USD,Azure Retail Prices API,2025-12-18T04:45:57.881681 +AZURE,switzerlandwest,Standard_E80ids_v4,reserved_3y,NA,3.820091,USD,Azure Retail Prices API,2025-12-18T04:45:57.881684 +AZURE,switzerlandwest,Standard_E80ids_v4,spot,NA,1.85785,USD,Azure Retail Prices API,2025-12-18T04:45:56.977897 +AZURE,switzerlandwest,Standard_E80is_v4,on_demand,NA,8.83241,USD,Azure Retail Prices API,2025-12-18T04:45:56.978308 +AZURE,switzerlandwest,Standard_E80is_v4,reserved_1y,NA,5.211301,USD,Azure Retail Prices API,2025-12-18T04:45:57.882883 +AZURE,switzerlandwest,Standard_E80is_v4,reserved_3y,NA,3.356393,USD,Azure Retail Prices API,2025-12-18T04:45:57.882887 +AZURE,switzerlandwest,Standard_E80is_v4,spot,NA,1.632229,USD,Azure Retail Prices API,2025-12-18T04:45:56.978066 +AZURE,switzerlandwest,Standard_E8_v3,on_demand,NA,0.91483,USD,Azure Retail Prices API,2025-12-18T04:45:56.978246 +AZURE,switzerlandwest,Standard_E8_v3,reserved_1y,NA,0.528425,USD,Azure Retail Prices API,2025-12-18T04:45:57.882812 +AZURE,switzerlandwest,Standard_E8_v3,reserved_3y,NA,0.354795,USD,Azure Retail Prices API,2025-12-18T04:45:57.882815 +AZURE,switzerlandwest,Standard_E8_v3,spot,NA,0.169061,USD,Azure Retail Prices API,2025-12-18T04:45:56.977938 +AZURE,switzerlandwest,Standard_E8a_v4,on_demand,NA,0.937,USD,Azure Retail Prices API,2025-12-18T04:45:56.977826 +AZURE,switzerlandwest,Standard_E8a_v4,reserved_1y,NA,0.55274,USD,Azure Retail Prices API,2025-12-18T04:45:57.882383 +AZURE,switzerlandwest,Standard_E8a_v4,reserved_3y,NA,0.35605,USD,Azure Retail Prices API,2025-12-18T04:45:57.882387 +AZURE,switzerlandwest,Standard_E8a_v4,spot,NA,0.173158,USD,Azure Retail Prices API,2025-12-18T04:45:56.977628 +AZURE,switzerlandwest,Standard_E8ads_v5,on_demand,NA,0.974,USD,Azure Retail Prices API,2025-12-18T04:45:56.977704 +AZURE,switzerlandwest,Standard_E8ads_v5,reserved_1y,NA,0.574772,USD,Azure Retail Prices API,2025-12-18T04:45:57.882224 +AZURE,switzerlandwest,Standard_E8ads_v5,reserved_3y,NA,0.370167,USD,Azure Retail Prices API,2025-12-18T04:45:57.882226 +AZURE,switzerlandwest,Standard_E8ads_v5,spot,NA,0.179995,USD,Azure Retail Prices API,2025-12-18T04:45:56.977510 +AZURE,switzerlandwest,Standard_E8ads_v6,on_demand,NA,1.08,USD,Azure Retail Prices API,2025-12-18T04:45:56.977499 +AZURE,switzerlandwest,Standard_E8ads_v6,reserved_1y,NA,0.637215,USD,Azure Retail Prices API,2025-12-18T04:45:57.882012 +AZURE,switzerlandwest,Standard_E8ads_v6,reserved_3y,NA,0.410388,USD,Azure Retail Prices API,2025-12-18T04:45:57.882015 +AZURE,switzerlandwest,Standard_E8ads_v6,spot,NA,0.199584,USD,Azure Retail Prices API,2025-12-18T04:45:56.977496 +AZURE,switzerlandwest,Standard_E8as_v4,on_demand,NA,0.937,USD,Azure Retail Prices API,2025-12-18T04:45:56.977191 +AZURE,switzerlandwest,Standard_E8as_v4,reserved_1y,NA,0.55274,USD,Azure Retail Prices API,2025-12-18T04:45:57.881662 +AZURE,switzerlandwest,Standard_E8as_v4,reserved_3y,NA,0.35605,USD,Azure Retail Prices API,2025-12-18T04:45:57.881665 +AZURE,switzerlandwest,Standard_E8as_v4,spot,NA,0.173158,USD,Azure Retail Prices API,2025-12-18T04:45:56.977724 +AZURE,switzerlandwest,Standard_E8as_v5,on_demand,NA,1.208,USD,Azure Retail Prices API,2025-12-18T04:45:56.978255 +AZURE,switzerlandwest,Standard_E8as_v5,reserved_1y,NA,0.495776,USD,Azure Retail Prices API,2025-12-18T04:45:57.882869 +AZURE,switzerlandwest,Standard_E8as_v5,reserved_3y,NA,0.319292,USD,Azure Retail Prices API,2025-12-18T04:45:57.882872 +AZURE,switzerlandwest,Standard_E8as_v5,spot,NA,0.155232,USD,Azure Retail Prices API,2025-12-18T04:45:56.977462 +AZURE,switzerlandwest,Standard_E8d_v4,on_demand,NA,1.00524,USD,Azure Retail Prices API,2025-12-18T04:45:56.977251 +AZURE,switzerlandwest,Standard_E8d_v4,reserved_1y,NA,0.593037,USD,Azure Retail Prices API,2025-12-18T04:45:57.881741 +AZURE,switzerlandwest,Standard_E8d_v4,reserved_3y,NA,0.382002,USD,Azure Retail Prices API,2025-12-18T04:45:57.881744 +AZURE,switzerlandwest,Standard_E8d_v4,spot,NA,0.185768,USD,Azure Retail Prices API,2025-12-18T04:45:56.977771 +AZURE,switzerlandwest,Standard_E8ds_v4,on_demand,NA,1.00524,USD,Azure Retail Prices API,2025-12-18T04:45:56.978019 +AZURE,switzerlandwest,Standard_E8ds_v4,reserved_1y,NA,0.593037,USD,Azure Retail Prices API,2025-12-18T04:45:57.882578 +AZURE,switzerlandwest,Standard_E8ds_v4,reserved_3y,NA,0.382002,USD,Azure Retail Prices API,2025-12-18T04:45:57.882581 +AZURE,switzerlandwest,Standard_E8ds_v4,spot,NA,0.185768,USD,Azure Retail Prices API,2025-12-18T04:45:56.978041 +AZURE,switzerlandwest,Standard_E8ds_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:45:56.977350 +AZURE,switzerlandwest,Standard_E8ds_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:45:57.881855 +AZURE,switzerlandwest,Standard_E8ds_v5,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:45:57.881858 +AZURE,switzerlandwest,Standard_E8ds_v5,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:45:56.978032 +AZURE,switzerlandwest,Standard_E8ds_v6,on_demand,NA,1.147,USD,Azure Retail Prices API,2025-12-18T04:45:56.977640 +AZURE,switzerlandwest,Standard_E8ds_v6,reserved_1y,NA,0.711301,USD,Azure Retail Prices API,2025-12-18T04:45:57.882146 +AZURE,switzerlandwest,Standard_E8ds_v6,reserved_3y,NA,0.447412,USD,Azure Retail Prices API,2025-12-18T04:45:57.882151 +AZURE,switzerlandwest,Standard_E8ds_v6,spot,NA,0.211966,USD,Azure Retail Prices API,2025-12-18T04:45:56.977680 +AZURE,switzerlandwest,Standard_E8s_v3,on_demand,NA,0.91483,USD,Azure Retail Prices API,2025-12-18T04:45:56.978070 +AZURE,switzerlandwest,Standard_E8s_v3,reserved_1y,NA,0.528425,USD,Azure Retail Prices API,2025-12-18T04:45:57.882615 +AZURE,switzerlandwest,Standard_E8s_v3,reserved_3y,NA,0.354795,USD,Azure Retail Prices API,2025-12-18T04:45:57.882618 +AZURE,switzerlandwest,Standard_E8s_v3,spot,NA,0.169061,USD,Azure Retail Prices API,2025-12-18T04:45:56.978038 +AZURE,switzerlandwest,Standard_E8s_v4,on_demand,NA,0.88289,USD,Azure Retail Prices API,2025-12-18T04:45:56.978286 +AZURE,switzerlandwest,Standard_E8s_v4,reserved_1y,NA,0.521119,USD,Azure Retail Prices API,2025-12-18T04:45:57.882843 +AZURE,switzerlandwest,Standard_E8s_v4,reserved_3y,NA,0.335654,USD,Azure Retail Prices API,2025-12-18T04:45:57.882847 +AZURE,switzerlandwest,Standard_E8s_v4,spot,NA,0.163158,USD,Azure Retail Prices API,2025-12-18T04:45:56.977595 +AZURE,switzerlandwest,Standard_E8s_v5,on_demand,NA,0.884,USD,Azure Retail Prices API,2025-12-18T04:45:56.977944 +AZURE,switzerlandwest,Standard_E8s_v5,reserved_1y,NA,0.521575,USD,Azure Retail Prices API,2025-12-18T04:45:57.882510 +AZURE,switzerlandwest,Standard_E8s_v5,reserved_3y,NA,0.327093,USD,Azure Retail Prices API,2025-12-18T04:45:57.882515 +AZURE,switzerlandwest,Standard_E8s_v5,spot,NA,0.163363,USD,Azure Retail Prices API,2025-12-18T04:45:56.978061 +AZURE,switzerlandwest,Standard_E96a_v4,on_demand,NA,11.243,USD,Azure Retail Prices API,2025-12-18T04:45:56.978186 +AZURE,switzerlandwest,Standard_E96a_v4,reserved_1y,NA,6.633562,USD,Azure Retail Prices API,2025-12-18T04:45:57.882721 +AZURE,switzerlandwest,Standard_E96a_v4,reserved_3y,NA,4.272412,USD,Azure Retail Prices API,2025-12-18T04:45:57.882725 +AZURE,switzerlandwest,Standard_E96a_v4,spot,NA,2.077706,USD,Azure Retail Prices API,2025-12-18T04:45:56.978489 +AZURE,switzerlandwest,Standard_E96ads_v5,on_demand,NA,11.689,USD,Azure Retail Prices API,2025-12-18T04:45:56.977324 +AZURE,switzerlandwest,Standard_E96ads_v5,reserved_1y,NA,6.896804,USD,Azure Retail Prices API,2025-12-18T04:45:57.881823 +AZURE,switzerlandwest,Standard_E96ads_v5,reserved_3y,NA,4.441971,USD,Azure Retail Prices API,2025-12-18T04:45:57.881825 +AZURE,switzerlandwest,Standard_E96ads_v5,spot,NA,2.160127,USD,Azure Retail Prices API,2025-12-18T04:45:56.977303 +AZURE,switzerlandwest,Standard_E96ads_v6,on_demand,NA,12.96,USD,Azure Retail Prices API,2025-12-18T04:45:56.978289 +AZURE,switzerlandwest,Standard_E96ads_v6,reserved_1y,NA,7.646347,USD,Azure Retail Prices API,2025-12-18T04:45:57.882851 +AZURE,switzerlandwest,Standard_E96ads_v6,reserved_3y,NA,4.92481,USD,Azure Retail Prices API,2025-12-18T04:45:57.882854 +AZURE,switzerlandwest,Standard_E96ads_v6,spot,NA,2.395008,USD,Azure Retail Prices API,2025-12-18T04:45:56.977535 +AZURE,switzerlandwest,Standard_E96as_v4,on_demand,NA,11.243,USD,Azure Retail Prices API,2025-12-18T04:45:56.978514 +AZURE,switzerlandwest,Standard_E96as_v4,reserved_1y,NA,6.633562,USD,Azure Retail Prices API,2025-12-18T04:45:57.883257 +AZURE,switzerlandwest,Standard_E96as_v4,reserved_3y,NA,4.272412,USD,Azure Retail Prices API,2025-12-18T04:45:57.883262 +AZURE,switzerlandwest,Standard_E96as_v4,spot,NA,2.077706,USD,Azure Retail Prices API,2025-12-18T04:45:56.977532 +AZURE,switzerlandwest,Standard_E96as_v5,on_demand,NA,10.083,USD,Azure Retail Prices API,2025-12-18T04:45:56.977493 +AZURE,switzerlandwest,Standard_E96as_v5,reserved_1y,NA,5.949087,USD,Azure Retail Prices API,2025-12-18T04:45:57.882006 +AZURE,switzerlandwest,Standard_E96as_v5,reserved_3y,NA,3.831659,USD,Azure Retail Prices API,2025-12-18T04:45:57.882009 +AZURE,switzerlandwest,Standard_E96as_v5,spot,NA,1.863338,USD,Azure Retail Prices API,2025-12-18T04:45:56.977900 +AZURE,switzerlandwest,Standard_E96ds_v5,on_demand,NA,12.096,USD,Azure Retail Prices API,2025-12-18T04:45:56.977788 +AZURE,switzerlandwest,Standard_E96ds_v5,reserved_1y,NA,7.136644,USD,Azure Retail Prices API,2025-12-18T04:45:57.882341 +AZURE,switzerlandwest,Standard_E96ds_v5,reserved_3y,NA,4.596461,USD,Azure Retail Prices API,2025-12-18T04:45:57.882346 +AZURE,switzerlandwest,Standard_E96ds_v5,spot,NA,2.235341,USD,Azure Retail Prices API,2025-12-18T04:45:56.977813 +AZURE,switzerlandwest,Standard_E96ds_v6,on_demand,NA,13.766,USD,Azure Retail Prices API,2025-12-18T04:45:56.978466 +AZURE,switzerlandwest,Standard_E96ds_v6,reserved_1y,NA,8.53516,USD,Azure Retail Prices API,2025-12-18T04:45:57.883190 +AZURE,switzerlandwest,Standard_E96ds_v6,reserved_3y,NA,5.368912,USD,Azure Retail Prices API,2025-12-18T04:45:57.883195 +AZURE,switzerlandwest,Standard_E96ds_v6,spot,NA,2.543957,USD,Azure Retail Prices API,2025-12-18T04:45:56.978418 +AZURE,switzerlandwest,Standard_E96s_v5,on_demand,NA,10.608,USD,Azure Retail Prices API,2025-12-18T04:45:56.977422 +AZURE,switzerlandwest,Standard_E96s_v5,reserved_1y,NA,6.258676,USD,Azure Retail Prices API,2025-12-18T04:45:57.881934 +AZURE,switzerlandwest,Standard_E96s_v5,reserved_3y,NA,3.924962,USD,Azure Retail Prices API,2025-12-18T04:45:57.881937 +AZURE,switzerlandwest,Standard_E96s_v5,spot,NA,1.960358,USD,Azure Retail Prices API,2025-12-18T04:45:56.978209 +AZURE,switzerlandwest,Standard_EC16ads_v6,on_demand,NA,2.16,USD,Azure Retail Prices API,2025-12-18T04:45:56.977332 +AZURE,switzerlandwest,Standard_EC16ads_v6,reserved_1y,NA,1.274429,USD,Azure Retail Prices API,2025-12-18T04:45:57.881834 +AZURE,switzerlandwest,Standard_EC16ads_v6,reserved_3y,NA,0.820814,USD,Azure Retail Prices API,2025-12-18T04:45:57.881836 +AZURE,switzerlandwest,Standard_EC16ads_v6,spot,NA,0.399168,USD,Azure Retail Prices API,2025-12-18T04:45:56.977603 +AZURE,switzerlandwest,Standard_EC16as_v6,on_demand,NA,1.774,USD,Azure Retail Prices API,2025-12-18T04:45:56.977978 +AZURE,switzerlandwest,Standard_EC16as_v6,reserved_1y,NA,1.046918,USD,Azure Retail Prices API,2025-12-18T04:45:57.882542 +AZURE,switzerlandwest,Standard_EC16as_v6,reserved_3y,NA,0.674277,USD,Azure Retail Prices API,2025-12-18T04:45:57.882545 +AZURE,switzerlandwest,Standard_EC16as_v6,spot,NA,0.327835,USD,Azure Retail Prices API,2025-12-18T04:45:56.977903 +AZURE,switzerlandwest,Standard_EC2ads_v6,on_demand,NA,0.27,USD,Azure Retail Prices API,2025-12-18T04:45:56.977312 +AZURE,switzerlandwest,Standard_EC2ads_v6,reserved_1y,NA,0.159247,USD,Azure Retail Prices API,2025-12-18T04:45:57.881807 +AZURE,switzerlandwest,Standard_EC2ads_v6,reserved_3y,NA,0.102588,USD,Azure Retail Prices API,2025-12-18T04:45:57.881811 +AZURE,switzerlandwest,Standard_EC2ads_v6,spot,NA,0.049896,USD,Azure Retail Prices API,2025-12-18T04:45:56.977402 +AZURE,switzerlandwest,Standard_EC2as_v6,on_demand,NA,0.222,USD,Azure Retail Prices API,2025-12-18T04:45:56.977894 +AZURE,switzerlandwest,Standard_EC2as_v6,reserved_1y,NA,0.130822,USD,Azure Retail Prices API,2025-12-18T04:45:57.882492 +AZURE,switzerlandwest,Standard_EC2as_v6,reserved_3y,NA,0.084285,USD,Azure Retail Prices API,2025-12-18T04:45:57.882495 +AZURE,switzerlandwest,Standard_EC2as_v6,spot,NA,0.041026,USD,Azure Retail Prices API,2025-12-18T04:45:56.978131 +AZURE,switzerlandwest,Standard_EC32ads_v6,on_demand,NA,4.32,USD,Azure Retail Prices API,2025-12-18T04:45:56.978143 +AZURE,switzerlandwest,Standard_EC32ads_v6,reserved_1y,NA,2.548744,USD,Azure Retail Prices API,2025-12-18T04:45:57.882663 +AZURE,switzerlandwest,Standard_EC32ads_v6,reserved_3y,NA,1.641591,USD,Azure Retail Prices API,2025-12-18T04:45:57.882666 +AZURE,switzerlandwest,Standard_EC32ads_v6,spot,NA,0.798336,USD,Azure Retail Prices API,2025-12-18T04:45:56.978442 +AZURE,switzerlandwest,Standard_EC32as_v6,on_demand,NA,3.549,USD,Azure Retail Prices API,2025-12-18T04:45:56.978180 +AZURE,switzerlandwest,Standard_EC32as_v6,reserved_1y,NA,2.093836,USD,Azure Retail Prices API,2025-12-18T04:45:57.882709 +AZURE,switzerlandwest,Standard_EC32as_v6,reserved_3y,NA,1.348554,USD,Azure Retail Prices API,2025-12-18T04:45:57.882712 +AZURE,switzerlandwest,Standard_EC32as_v6,spot,NA,0.655855,USD,Azure Retail Prices API,2025-12-18T04:45:56.977987 +AZURE,switzerlandwest,Standard_EC48ads_v6,on_demand,NA,6.48,USD,Azure Retail Prices API,2025-12-18T04:45:56.977300 +AZURE,switzerlandwest,Standard_EC48ads_v6,reserved_1y,NA,3.823174,USD,Azure Retail Prices API,2025-12-18T04:45:57.881797 +AZURE,switzerlandwest,Standard_EC48ads_v6,reserved_3y,NA,2.462405,USD,Azure Retail Prices API,2025-12-18T04:45:57.881801 +AZURE,switzerlandwest,Standard_EC48ads_v6,spot,NA,1.197504,USD,Azure Retail Prices API,2025-12-18T04:45:56.978218 +AZURE,switzerlandwest,Standard_EC48as_v6,on_demand,NA,5.323,USD,Azure Retail Prices API,2025-12-18T04:45:56.977338 +AZURE,switzerlandwest,Standard_EC48as_v6,reserved_1y,NA,3.140639,USD,Azure Retail Prices API,2025-12-18T04:45:57.881845 +AZURE,switzerlandwest,Standard_EC48as_v6,reserved_3y,NA,2.022831,USD,Azure Retail Prices API,2025-12-18T04:45:57.881847 +AZURE,switzerlandwest,Standard_EC48as_v6,spot,NA,0.98369,USD,Azure Retail Prices API,2025-12-18T04:45:56.977371 +AZURE,switzerlandwest,Standard_EC4ads_v6,on_demand,NA,0.54,USD,Azure Retail Prices API,2025-12-18T04:45:56.978023 +AZURE,switzerlandwest,Standard_EC4ads_v6,reserved_1y,NA,0.318607,USD,Azure Retail Prices API,2025-12-18T04:45:57.882584 +AZURE,switzerlandwest,Standard_EC4ads_v6,reserved_3y,NA,0.205213,USD,Azure Retail Prices API,2025-12-18T04:45:57.882587 +AZURE,switzerlandwest,Standard_EC4ads_v6,spot,NA,0.099792,USD,Azure Retail Prices API,2025-12-18T04:45:56.977201 +AZURE,switzerlandwest,Standard_EC4as_v6,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:45:56.978215 +AZURE,switzerlandwest,Standard_EC4as_v6,reserved_1y,NA,0.261758,USD,Azure Retail Prices API,2025-12-18T04:45:57.882780 +AZURE,switzerlandwest,Standard_EC4as_v6,reserved_3y,NA,0.168569,USD,Azure Retail Prices API,2025-12-18T04:45:57.882783 +AZURE,switzerlandwest,Standard_EC4as_v6,spot,NA,0.082051,USD,Azure Retail Prices API,2025-12-18T04:45:56.977589 +AZURE,switzerlandwest,Standard_EC64ads_v6,on_demand,NA,8.64,USD,Azure Retail Prices API,2025-12-18T04:45:56.978439 +AZURE,switzerlandwest,Standard_EC64ads_v6,reserved_1y,NA,5.097603,USD,Azure Retail Prices API,2025-12-18T04:45:57.883160 +AZURE,switzerlandwest,Standard_EC64ads_v6,reserved_3y,NA,3.283181,USD,Azure Retail Prices API,2025-12-18T04:45:57.883165 +AZURE,switzerlandwest,Standard_EC64ads_v6,spot,NA,1.596672,USD,Azure Retail Prices API,2025-12-18T04:45:56.978475 +AZURE,switzerlandwest,Standard_EC64as_v6,on_demand,NA,7.098,USD,Azure Retail Prices API,2025-12-18T04:45:56.977467 +AZURE,switzerlandwest,Standard_EC64as_v6,reserved_1y,NA,4.187557,USD,Azure Retail Prices API,2025-12-18T04:45:57.881984 +AZURE,switzerlandwest,Standard_EC64as_v6,reserved_3y,NA,2.69707,USD,Azure Retail Prices API,2025-12-18T04:45:57.881989 +AZURE,switzerlandwest,Standard_EC64as_v6,spot,NA,1.31171,USD,Azure Retail Prices API,2025-12-18T04:45:56.977692 +AZURE,switzerlandwest,Standard_EC8ads_v6,on_demand,NA,1.08,USD,Azure Retail Prices API,2025-12-18T04:45:56.977419 +AZURE,switzerlandwest,Standard_EC8ads_v6,reserved_1y,NA,0.637215,USD,Azure Retail Prices API,2025-12-18T04:45:57.881929 +AZURE,switzerlandwest,Standard_EC8ads_v6,reserved_3y,NA,0.410388,USD,Azure Retail Prices API,2025-12-18T04:45:57.881931 +AZURE,switzerlandwest,Standard_EC8ads_v6,spot,NA,0.199584,USD,Azure Retail Prices API,2025-12-18T04:45:56.977583 +AZURE,switzerlandwest,Standard_EC8as_v6,on_demand,NA,0.887,USD,Azure Retail Prices API,2025-12-18T04:45:56.978461 +AZURE,switzerlandwest,Standard_EC8as_v6,reserved_1y,NA,0.523402,USD,Azure Retail Prices API,2025-12-18T04:45:57.883180 +AZURE,switzerlandwest,Standard_EC8as_v6,reserved_3y,NA,0.337139,USD,Azure Retail Prices API,2025-12-18T04:45:57.883186 +AZURE,switzerlandwest,Standard_EC8as_v6,spot,NA,0.163918,USD,Azure Retail Prices API,2025-12-18T04:45:56.977315 +AZURE,switzerlandwest,Standard_EC96ads_v6,on_demand,NA,12.96,USD,Azure Retail Prices API,2025-12-18T04:45:56.977456 +AZURE,switzerlandwest,Standard_EC96ads_v6,reserved_1y,NA,7.646347,USD,Azure Retail Prices API,2025-12-18T04:45:57.881967 +AZURE,switzerlandwest,Standard_EC96ads_v6,reserved_3y,NA,4.92481,USD,Azure Retail Prices API,2025-12-18T04:45:57.881972 +AZURE,switzerlandwest,Standard_EC96ads_v6,spot,NA,2.395008,USD,Azure Retail Prices API,2025-12-18T04:45:56.978345 +AZURE,switzerlandwest,Standard_EC96as_v6,on_demand,NA,10.646,USD,Azure Retail Prices API,2025-12-18T04:45:56.977891 +AZURE,switzerlandwest,Standard_EC96as_v6,reserved_1y,NA,6.281393,USD,Azure Retail Prices API,2025-12-18T04:45:57.882486 +AZURE,switzerlandwest,Standard_EC96as_v6,reserved_3y,NA,4.045624,USD,Azure Retail Prices API,2025-12-18T04:45:57.882489 +AZURE,switzerlandwest,Standard_EC96as_v6,spot,NA,1.967381,USD,Azure Retail Prices API,2025-12-18T04:45:56.978364 +AZURE,switzerlandwest,Standard_F16,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379513 +AZURE,switzerlandwest,Standard_F16,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379522 +AZURE,switzerlandwest,Standard_F16,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379526 +AZURE,switzerlandwest,Standard_F16,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379518 +AZURE,switzerlandwest,Standard_F16s,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381820 +AZURE,switzerlandwest,Standard_F16s,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381828 +AZURE,switzerlandwest,Standard_F16s,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381832 +AZURE,switzerlandwest,Standard_F16s,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381824 +AZURE,switzerlandwest,Standard_F16s_v2,on_demand,NA,0.8232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384551 +AZURE,switzerlandwest,Standard_F16s_v2,reserved_1y,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384559 +AZURE,switzerlandwest,Standard_F16s_v2,reserved_3y,NA,0.32928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384563 +AZURE,switzerlandwest,Standard_F16s_v2,spot,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384555 +AZURE,switzerlandwest,Standard_F32s_v2,on_demand,NA,1.6464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385361 +AZURE,switzerlandwest,Standard_F32s_v2,reserved_1y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385378 +AZURE,switzerlandwest,Standard_F32s_v2,reserved_3y,NA,0.65856,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385385 +AZURE,switzerlandwest,Standard_F32s_v2,spot,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385369 +AZURE,switzerlandwest,Standard_F4,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377958 +AZURE,switzerlandwest,Standard_F4,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377967 +AZURE,switzerlandwest,Standard_F4,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377971 +AZURE,switzerlandwest,Standard_F4,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377962 +AZURE,switzerlandwest,Standard_F48s_v2,on_demand,NA,2.4696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386138 +AZURE,switzerlandwest,Standard_F48s_v2,reserved_1y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386146 +AZURE,switzerlandwest,Standard_F48s_v2,reserved_3y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386150 +AZURE,switzerlandwest,Standard_F48s_v2,spot,NA,0.74088,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386142 +AZURE,switzerlandwest,Standard_F4s,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380277 +AZURE,switzerlandwest,Standard_F4s,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380288 +AZURE,switzerlandwest,Standard_F4s,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380292 +AZURE,switzerlandwest,Standard_F4s,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380283 +AZURE,switzerlandwest,Standard_F4s_v2,on_demand,NA,0.2058,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382881 +AZURE,switzerlandwest,Standard_F4s_v2,reserved_1y,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382890 +AZURE,switzerlandwest,Standard_F4s_v2,reserved_3y,NA,0.08232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382895 +AZURE,switzerlandwest,Standard_F4s_v2,spot,NA,0.06174,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382886 +AZURE,switzerlandwest,Standard_F64s_v2,on_demand,NA,3.2928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386910 +AZURE,switzerlandwest,Standard_F64s_v2,reserved_1y,NA,1.97568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386918 +AZURE,switzerlandwest,Standard_F64s_v2,reserved_3y,NA,1.31712,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386923 +AZURE,switzerlandwest,Standard_F64s_v2,spot,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386914 +AZURE,switzerlandwest,Standard_F72s_v2,on_demand,NA,3.7044,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387727 +AZURE,switzerlandwest,Standard_F72s_v2,reserved_1y,NA,2.22264,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387735 +AZURE,switzerlandwest,Standard_F72s_v2,reserved_3y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387739 +AZURE,switzerlandwest,Standard_F72s_v2,spot,NA,1.11132,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387731 +AZURE,switzerlandwest,Standard_F8,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378695 +AZURE,switzerlandwest,Standard_F8,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378704 +AZURE,switzerlandwest,Standard_F8,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378708 +AZURE,switzerlandwest,Standard_F8,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378699 +AZURE,switzerlandwest,Standard_F8s,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380994 +AZURE,switzerlandwest,Standard_F8s,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381008 +AZURE,switzerlandwest,Standard_F8s,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381012 +AZURE,switzerlandwest,Standard_F8s,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381003 +AZURE,switzerlandwest,Standard_F8s_v2,on_demand,NA,0.4116,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383711 +AZURE,switzerlandwest,Standard_F8s_v2,reserved_1y,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383719 +AZURE,switzerlandwest,Standard_F8s_v2,reserved_3y,NA,0.16464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383723 +AZURE,switzerlandwest,Standard_F8s_v2,spot,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383715 +AZURE,switzerlandwest,Standard_L16as_v3,on_demand,NA,2.127,USD,Azure Retail Prices API,2025-12-18T04:45:56.978433 +AZURE,switzerlandwest,Standard_L16as_v3,reserved_1y,NA,1.361187,USD,Azure Retail Prices API,2025-12-18T04:45:57.883150 +AZURE,switzerlandwest,Standard_L16as_v3,reserved_3y,NA,0.893265,USD,Azure Retail Prices API,2025-12-18T04:45:57.883155 +AZURE,switzerlandwest,Standard_L16as_v3,spot,NA,0.39307,USD,Azure Retail Prices API,2025-12-18T04:45:56.977626 +AZURE,switzerlandwest,Standard_L16s_v3,on_demand,NA,2.595,USD,Azure Retail Prices API,2025-12-18T04:45:56.978014 +AZURE,switzerlandwest,Standard_L16s_v3,reserved_1y,NA,1.660959,USD,Azure Retail Prices API,2025-12-18T04:45:57.882572 +AZURE,switzerlandwest,Standard_L16s_v3,reserved_3y,NA,1.089954,USD,Azure Retail Prices API,2025-12-18T04:45:57.882575 +AZURE,switzerlandwest,Standard_L16s_v3,spot,NA,0.479556,USD,Azure Retail Prices API,2025-12-18T04:45:56.978174 +AZURE,switzerlandwest,Standard_L32as_v3,on_demand,NA,4.254,USD,Azure Retail Prices API,2025-12-18T04:45:56.977297 +AZURE,switzerlandwest,Standard_L32as_v3,reserved_1y,NA,2.72226,USD,Azure Retail Prices API,2025-12-18T04:45:57.881791 +AZURE,switzerlandwest,Standard_L32as_v3,reserved_3y,NA,1.78653,USD,Azure Retail Prices API,2025-12-18T04:45:57.881794 +AZURE,switzerlandwest,Standard_L32as_v3,spot,NA,0.786139,USD,Azure Retail Prices API,2025-12-18T04:45:56.977769 +AZURE,switzerlandwest,Standard_L32s_v3,on_demand,NA,5.19,USD,Azure Retail Prices API,2025-12-18T04:45:56.977221 +AZURE,switzerlandwest,Standard_L32s_v3,reserved_1y,NA,3.321804,USD,Azure Retail Prices API,2025-12-18T04:45:57.881698 +AZURE,switzerlandwest,Standard_L32s_v3,reserved_3y,NA,2.179947,USD,Azure Retail Prices API,2025-12-18T04:45:57.881701 +AZURE,switzerlandwest,Standard_L32s_v3,spot,NA,0.959112,USD,Azure Retail Prices API,2025-12-18T04:45:56.977618 +AZURE,switzerlandwest,Standard_L48as_v3,on_demand,NA,6.38,USD,Azure Retail Prices API,2025-12-18T04:45:56.977888 +AZURE,switzerlandwest,Standard_L48as_v3,reserved_1y,NA,4.083447,USD,Azure Retail Prices API,2025-12-18T04:45:57.882481 +AZURE,switzerlandwest,Standard_L48as_v3,reserved_3y,NA,2.679756,USD,Azure Retail Prices API,2025-12-18T04:45:57.882484 +AZURE,switzerlandwest,Standard_L48as_v3,spot,NA,1.179024,USD,Azure Retail Prices API,2025-12-18T04:45:56.978339 +AZURE,switzerlandwest,Standard_L48s_v3,on_demand,NA,7.786,USD,Azure Retail Prices API,2025-12-18T04:45:56.978328 +AZURE,switzerlandwest,Standard_L48s_v3,reserved_1y,NA,4.982763,USD,Azure Retail Prices API,2025-12-18T04:45:57.882925 +AZURE,switzerlandwest,Standard_L48s_v3,reserved_3y,NA,3.269901,USD,Azure Retail Prices API,2025-12-18T04:45:57.882929 +AZURE,switzerlandwest,Standard_L48s_v3,spot,NA,1.438853,USD,Azure Retail Prices API,2025-12-18T04:45:56.977258 +AZURE,switzerlandwest,Standard_L64as_v3,on_demand,NA,8.507,USD,Azure Retail Prices API,2025-12-18T04:45:56.978350 +AZURE,switzerlandwest,Standard_L64as_v3,reserved_1y,NA,5.444635,USD,Azure Retail Prices API,2025-12-18T04:45:57.882941 +AZURE,switzerlandwest,Standard_L64as_v3,reserved_3y,NA,3.573021,USD,Azure Retail Prices API,2025-12-18T04:45:57.882945 +AZURE,switzerlandwest,Standard_L64as_v3,spot,NA,1.572094,USD,Azure Retail Prices API,2025-12-18T04:45:56.977701 +AZURE,switzerlandwest,Standard_L64s_v3,on_demand,NA,10.381,USD,Azure Retail Prices API,2025-12-18T04:45:56.978212 +AZURE,switzerlandwest,Standard_L64s_v3,reserved_1y,NA,6.643607,USD,Azure Retail Prices API,2025-12-18T04:45:57.882774 +AZURE,switzerlandwest,Standard_L64s_v3,reserved_3y,NA,4.359893,USD,Azure Retail Prices API,2025-12-18T04:45:57.882777 +AZURE,switzerlandwest,Standard_L64s_v3,spot,NA,1.918409,USD,Azure Retail Prices API,2025-12-18T04:45:56.977598 +AZURE,switzerlandwest,Standard_L80as_v3,on_demand,NA,10.634,USD,Azure Retail Prices API,2025-12-18T04:45:56.977782 +AZURE,switzerlandwest,Standard_L80as_v3,reserved_1y,NA,6.805708,USD,Azure Retail Prices API,2025-12-18T04:45:57.882324 +AZURE,switzerlandwest,Standard_L80as_v3,reserved_3y,NA,4.466286,USD,Azure Retail Prices API,2025-12-18T04:45:57.882327 +AZURE,switzerlandwest,Standard_L80as_v3,spot,NA,1.965163,USD,Azure Retail Prices API,2025-12-18T04:45:56.977952 +AZURE,switzerlandwest,Standard_L80s_v3,on_demand,NA,12.976,USD,Azure Retail Prices API,2025-12-18T04:45:56.977171 +AZURE,switzerlandwest,Standard_L80s_v3,reserved_1y,NA,8.304566,USD,Azure Retail Prices API,2025-12-18T04:45:57.881617 +AZURE,switzerlandwest,Standard_L80s_v3,reserved_3y,NA,5.449848,USD,Azure Retail Prices API,2025-12-18T04:45:57.881631 +AZURE,switzerlandwest,Standard_L80s_v3,spot,NA,2.397965,USD,Azure Retail Prices API,2025-12-18T04:45:56.977689 +AZURE,switzerlandwest,Standard_L8as_v3,on_demand,NA,1.063,USD,Azure Retail Prices API,2025-12-18T04:45:56.977277 +AZURE,switzerlandwest,Standard_L8as_v3,reserved_1y,NA,0.680594,USD,Azure Retail Prices API,2025-12-18T04:45:57.881769 +AZURE,switzerlandwest,Standard_L8as_v3,reserved_3y,NA,0.446613,USD,Azure Retail Prices API,2025-12-18T04:45:57.881772 +AZURE,switzerlandwest,Standard_L8as_v3,spot,NA,0.196442,USD,Azure Retail Prices API,2025-12-18T04:45:56.978313 +AZURE,switzerlandwest,Standard_L8s_v3,on_demand,NA,1.298,USD,Azure Retail Prices API,2025-12-18T04:45:56.977555 +AZURE,switzerlandwest,Standard_L8s_v3,reserved_1y,NA,0.830479,USD,Azure Retail Prices API,2025-12-18T04:45:57.882074 +AZURE,switzerlandwest,Standard_L8s_v3,reserved_3y,NA,0.544977,USD,Azure Retail Prices API,2025-12-18T04:45:57.882078 +AZURE,switzerlandwest,Standard_L8s_v3,spot,NA,0.23987,USD,Azure Retail Prices API,2025-12-18T04:45:56.977779 +AZURE,uaenorth,Standard_D128ds_v6,on_demand,NA,9.807,USD,Azure Retail Prices API,2025-12-18T04:46:10.470999 +AZURE,uaenorth,Standard_D128ds_v6,reserved_1y,NA,6.080594,USD,Azure Retail Prices API,2025-12-18T04:46:11.938319 +AZURE,uaenorth,Standard_D128ds_v6,reserved_3y,NA,3.824886,USD,Azure Retail Prices API,2025-12-18T04:46:11.938323 +AZURE,uaenorth,Standard_D128ds_v6,spot,NA,1.812334,USD,Azure Retail Prices API,2025-12-18T04:46:10.470754 +AZURE,uaenorth,Standard_D12_v2,on_demand,NA,0.4081,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488471 +AZURE,uaenorth,Standard_D12_v2,reserved_1y,NA,0.24486,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488480 +AZURE,uaenorth,Standard_D12_v2,reserved_3y,NA,0.16324,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488484 +AZURE,uaenorth,Standard_D12_v2,spot,NA,0.12243,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488475 +AZURE,uaenorth,Standard_D13_v2,on_demand,NA,0.8151,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489252 +AZURE,uaenorth,Standard_D13_v2,reserved_1y,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489260 +AZURE,uaenorth,Standard_D13_v2,reserved_3y,NA,0.32604,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489264 +AZURE,uaenorth,Standard_D13_v2,spot,NA,0.24453,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489256 +AZURE,uaenorth,Standard_D14_v2,on_demand,NA,1.6302,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490348 +AZURE,uaenorth,Standard_D14_v2,reserved_1y,NA,0.97812,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490357 +AZURE,uaenorth,Standard_D14_v2,reserved_3y,NA,0.65208,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490361 +AZURE,uaenorth,Standard_D14_v2,spot,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490352 +AZURE,uaenorth,Standard_D15_v2,on_demand,NA,2.0383,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491093 +AZURE,uaenorth,Standard_D15_v2,reserved_1y,NA,1.22298,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491102 +AZURE,uaenorth,Standard_D15_v2,reserved_3y,NA,0.81532,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491106 +AZURE,uaenorth,Standard_D15_v2,spot,NA,0.61149,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491098 +AZURE,uaenorth,Standard_D16_v3,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:10.471274 +AZURE,uaenorth,Standard_D16_v3,reserved_1y,NA,0.531393,USD,Azure Retail Prices API,2025-12-18T04:46:11.938654 +AZURE,uaenorth,Standard_D16_v3,reserved_3y,NA,0.345586,USD,Azure Retail Prices API,2025-12-18T04:46:11.938659 +AZURE,uaenorth,Standard_D16_v3,spot,NA,0.177888,USD,Azure Retail Prices API,2025-12-18T04:46:10.471154 +AZURE,uaenorth,Standard_D16a_v4,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:10.471446 +AZURE,uaenorth,Standard_D16a_v4,reserved_1y,NA,0.555594,USD,Azure Retail Prices API,2025-12-18T04:46:11.938901 +AZURE,uaenorth,Standard_D16a_v4,reserved_3y,NA,0.357801,USD,Azure Retail Prices API,2025-12-18T04:46:11.938905 +AZURE,uaenorth,Standard_D16a_v4,spot,NA,0.174082,USD,Azure Retail Prices API,2025-12-18T04:46:10.471107 +AZURE,uaenorth,Standard_D16ads_v5,on_demand,NA,1.751,USD,Azure Retail Prices API,2025-12-18T04:46:10.469914 +AZURE,uaenorth,Standard_D16ads_v5,reserved_1y,NA,0.598973,USD,Azure Retail Prices API,2025-12-18T04:46:11.937299 +AZURE,uaenorth,Standard_D16ads_v5,reserved_3y,NA,0.385769,USD,Azure Retail Prices API,2025-12-18T04:46:11.937303 +AZURE,uaenorth,Standard_D16ads_v5,spot,NA,0.187572,USD,Azure Retail Prices API,2025-12-18T04:46:10.470727 +AZURE,uaenorth,Standard_D16ads_v6,on_demand,NA,1.125,USD,Azure Retail Prices API,2025-12-18T04:46:10.471560 +AZURE,uaenorth,Standard_D16ads_v6,reserved_1y,NA,0.663584,USD,Azure Retail Prices API,2025-12-18T04:46:11.939173 +AZURE,uaenorth,Standard_D16ads_v6,reserved_3y,NA,0.427435,USD,Azure Retail Prices API,2025-12-18T04:46:11.939178 +AZURE,uaenorth,Standard_D16ads_v6,spot,NA,0.2079,USD,Azure Retail Prices API,2025-12-18T04:46:10.471356 +AZURE,uaenorth,Standard_D16as_v4,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:10.471407 +AZURE,uaenorth,Standard_D16as_v4,reserved_1y,NA,0.555594,USD,Azure Retail Prices API,2025-12-18T04:46:11.938852 +AZURE,uaenorth,Standard_D16as_v4,reserved_3y,NA,0.357801,USD,Azure Retail Prices API,2025-12-18T04:46:11.938857 +AZURE,uaenorth,Standard_D16as_v4,spot,NA,0.174082,USD,Azure Retail Prices API,2025-12-18T04:46:10.471680 +AZURE,uaenorth,Standard_D16as_v5,on_demand,NA,0.848,USD,Azure Retail Prices API,2025-12-18T04:46:10.470174 +AZURE,uaenorth,Standard_D16as_v5,reserved_1y,NA,0.500342,USD,Azure Retail Prices API,2025-12-18T04:46:11.937039 +AZURE,uaenorth,Standard_D16as_v5,reserved_3y,NA,0.322222,USD,Azure Retail Prices API,2025-12-18T04:46:11.937044 +AZURE,uaenorth,Standard_D16as_v5,spot,NA,0.15671,USD,Azure Retail Prices API,2025-12-18T04:46:10.471392 +AZURE,uaenorth,Standard_D16d_v4,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:46:10.470177 +AZURE,uaenorth,Standard_D16d_v4,reserved_1y,NA,0.651941,USD,Azure Retail Prices API,2025-12-18T04:46:11.937050 +AZURE,uaenorth,Standard_D16d_v4,reserved_3y,NA,0.416895,USD,Azure Retail Prices API,2025-12-18T04:46:11.937055 +AZURE,uaenorth,Standard_D16d_v4,spot,NA,0.205498,USD,Azure Retail Prices API,2025-12-18T04:46:10.471608 +AZURE,uaenorth,Standard_D16ds_v4,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:46:10.470644 +AZURE,uaenorth,Standard_D16ds_v4,reserved_1y,NA,0.651941,USD,Azure Retail Prices API,2025-12-18T04:46:11.937761 +AZURE,uaenorth,Standard_D16ds_v4,reserved_3y,NA,0.416895,USD,Azure Retail Prices API,2025-12-18T04:46:11.937766 +AZURE,uaenorth,Standard_D16ds_v4,spot,NA,0.205498,USD,Azure Retail Prices API,2025-12-18T04:46:10.470423 +AZURE,uaenorth,Standard_D16ds_v5,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:46:10.470472 +AZURE,uaenorth,Standard_D16ds_v5,reserved_1y,NA,0.654224,USD,Azure Retail Prices API,2025-12-18T04:46:11.937529 +AZURE,uaenorth,Standard_D16ds_v5,reserved_3y,NA,0.421347,USD,Azure Retail Prices API,2025-12-18T04:46:11.937534 +AZURE,uaenorth,Standard_D16ds_v5,spot,NA,0.205609,USD,Azure Retail Prices API,2025-12-18T04:46:10.471032 +AZURE,uaenorth,Standard_D16ds_v6,on_demand,NA,1.226,USD,Azure Retail Prices API,2025-12-18T04:46:10.471641 +AZURE,uaenorth,Standard_D16ds_v6,reserved_1y,NA,0.760046,USD,Azure Retail Prices API,2025-12-18T04:46:11.939302 +AZURE,uaenorth,Standard_D16ds_v6,reserved_3y,NA,0.47812,USD,Azure Retail Prices API,2025-12-18T04:46:11.939307 +AZURE,uaenorth,Standard_D16ds_v6,spot,NA,0.226565,USD,Azure Retail Prices API,2025-12-18T04:46:10.471104 +AZURE,uaenorth,Standard_D16pds_v6,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:46:10.470411 +AZURE,uaenorth,Standard_D16pds_v6,reserved_1y,NA,0.528653,USD,Azure Retail Prices API,2025-12-18T04:46:11.937404 +AZURE,uaenorth,Standard_D16pds_v6,reserved_3y,NA,0.340487,USD,Azure Retail Prices API,2025-12-18T04:46:11.937410 +AZURE,uaenorth,Standard_D16pds_v6,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:46:10.470495 +AZURE,uaenorth,Standard_D16ps_v6,on_demand,NA,0.685,USD,Azure Retail Prices API,2025-12-18T04:46:10.470457 +AZURE,uaenorth,Standard_D16ps_v6,reserved_1y,NA,0.403995,USD,Azure Retail Prices API,2025-12-18T04:46:11.937500 +AZURE,uaenorth,Standard_D16ps_v6,reserved_3y,NA,0.260236,USD,Azure Retail Prices API,2025-12-18T04:46:11.937505 +AZURE,uaenorth,Standard_D16ps_v6,spot,NA,0.126588,USD,Azure Retail Prices API,2025-12-18T04:46:10.469923 +AZURE,uaenorth,Standard_D16s_v3,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:46:10.470001 +AZURE,uaenorth,Standard_D16s_v3,reserved_1y,NA,0.531393,USD,Azure Retail Prices API,2025-12-18T04:46:11.936746 +AZURE,uaenorth,Standard_D16s_v3,reserved_3y,NA,0.345586,USD,Azure Retail Prices API,2025-12-18T04:46:11.936752 +AZURE,uaenorth,Standard_D16s_v3,spot,NA,0.177888,USD,Azure Retail Prices API,2025-12-18T04:46:10.471686 +AZURE,uaenorth,Standard_D16s_v4,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:10.471464 +AZURE,uaenorth,Standard_D16s_v4,reserved_1y,NA,0.553653,USD,Azure Retail Prices API,2025-12-18T04:46:11.938920 +AZURE,uaenorth,Standard_D16s_v4,reserved_3y,NA,0.354033,USD,Azure Retail Prices API,2025-12-18T04:46:11.938925 +AZURE,uaenorth,Standard_D16s_v4,spot,NA,0.174458,USD,Azure Retail Prices API,2025-12-18T04:46:10.470119 +AZURE,uaenorth,Standard_D16s_v5,on_demand,NA,0.942,USD,Azure Retail Prices API,2025-12-18T04:46:10.471004 +AZURE,uaenorth,Standard_D16s_v5,reserved_1y,NA,0.555594,USD,Azure Retail Prices API,2025-12-18T04:46:11.938329 +AZURE,uaenorth,Standard_D16s_v5,reserved_3y,NA,0.348402,USD,Azure Retail Prices API,2025-12-18T04:46:11.938333 +AZURE,uaenorth,Standard_D16s_v5,spot,NA,0.174553,USD,Azure Retail Prices API,2025-12-18T04:46:10.470964 +AZURE,uaenorth,Standard_D2ads_v6,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:46:10.470101 +AZURE,uaenorth,Standard_D2ads_v6,reserved_1y,NA,0.082991,USD,Azure Retail Prices API,2025-12-18T04:46:11.936910 +AZURE,uaenorth,Standard_D2ads_v6,reserved_3y,NA,0.053425,USD,Azure Retail Prices API,2025-12-18T04:46:11.936915 +AZURE,uaenorth,Standard_D2ads_v6,spot,NA,0.026057,USD,Azure Retail Prices API,2025-12-18T04:46:10.471650 +AZURE,uaenorth,Standard_D2ds_v6,on_demand,NA,0.153,USD,Azure Retail Prices API,2025-12-18T04:46:10.471485 +AZURE,uaenorth,Standard_D2ds_v6,reserved_1y,NA,0.094977,USD,Azure Retail Prices API,2025-12-18T04:46:11.938968 +AZURE,uaenorth,Standard_D2ds_v6,reserved_3y,NA,0.059779,USD,Azure Retail Prices API,2025-12-18T04:46:11.938973 +AZURE,uaenorth,Standard_D2ds_v6,spot,NA,0.028274,USD,Azure Retail Prices API,2025-12-18T04:46:10.470238 +AZURE,uaenorth,Standard_D32_v3,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:10.470135 +AZURE,uaenorth,Standard_D32_v3,reserved_1y,NA,1.062785,USD,Azure Retail Prices API,2025-12-18T04:46:11.936959 +AZURE,uaenorth,Standard_D32_v3,reserved_3y,NA,0.69121,USD,Azure Retail Prices API,2025-12-18T04:46:11.936964 +AZURE,uaenorth,Standard_D32_v3,spot,NA,0.355776,USD,Azure Retail Prices API,2025-12-18T04:46:10.470065 +AZURE,uaenorth,Standard_D32a_v4,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:10.470246 +AZURE,uaenorth,Standard_D32a_v4,reserved_1y,NA,1.111073,USD,Azure Retail Prices API,2025-12-18T04:46:11.937143 +AZURE,uaenorth,Standard_D32a_v4,reserved_3y,NA,0.715601,USD,Azure Retail Prices API,2025-12-18T04:46:11.937148 +AZURE,uaenorth,Standard_D32a_v4,spot,NA,0.347978,USD,Azure Retail Prices API,2025-12-18T04:46:10.470029 +AZURE,uaenorth,Standard_D32ads_v5,on_demand,NA,2.03,USD,Azure Retail Prices API,2025-12-18T04:46:10.470059 +AZURE,uaenorth,Standard_D32ads_v5,reserved_1y,NA,1.197945,USD,Azure Retail Prices API,2025-12-18T04:46:11.936860 +AZURE,uaenorth,Standard_D32ads_v5,reserved_3y,NA,0.771537,USD,Azure Retail Prices API,2025-12-18T04:46:11.936865 +AZURE,uaenorth,Standard_D32ads_v5,spot,NA,0.375144,USD,Azure Retail Prices API,2025-12-18T04:46:10.471425 +AZURE,uaenorth,Standard_D32ads_v6,on_demand,NA,2.25,USD,Azure Retail Prices API,2025-12-18T04:46:10.471537 +AZURE,uaenorth,Standard_D32ads_v6,reserved_1y,NA,1.327283,USD,Azure Retail Prices API,2025-12-18T04:46:11.939037 +AZURE,uaenorth,Standard_D32ads_v6,reserved_3y,NA,0.854833,USD,Azure Retail Prices API,2025-12-18T04:46:11.939042 +AZURE,uaenorth,Standard_D32ads_v6,spot,NA,0.4158,USD,Azure Retail Prices API,2025-12-18T04:46:10.469896 +AZURE,uaenorth,Standard_D32as_v4,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:10.470138 +AZURE,uaenorth,Standard_D32as_v4,reserved_1y,NA,1.111073,USD,Azure Retail Prices API,2025-12-18T04:46:11.936969 +AZURE,uaenorth,Standard_D32as_v4,reserved_3y,NA,0.715601,USD,Azure Retail Prices API,2025-12-18T04:46:11.936974 +AZURE,uaenorth,Standard_D32as_v4,spot,NA,0.347978,USD,Azure Retail Prices API,2025-12-18T04:46:10.469973 +AZURE,uaenorth,Standard_D32as_v5,on_demand,NA,3.168,USD,Azure Retail Prices API,2025-12-18T04:46:10.469928 +AZURE,uaenorth,Standard_D32as_v5,reserved_1y,NA,1.000685,USD,Azure Retail Prices API,2025-12-18T04:46:11.937799 +AZURE,uaenorth,Standard_D32as_v5,reserved_3y,NA,0.644482,USD,Azure Retail Prices API,2025-12-18T04:46:11.937803 +AZURE,uaenorth,Standard_D32as_v5,spot,NA,0.313421,USD,Azure Retail Prices API,2025-12-18T04:46:10.469938 +AZURE,uaenorth,Standard_D32d_v4,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:46:10.470946 +AZURE,uaenorth,Standard_D32d_v4,reserved_1y,NA,1.303995,USD,Azure Retail Prices API,2025-12-18T04:46:11.938246 +AZURE,uaenorth,Standard_D32d_v4,reserved_3y,NA,0.833828,USD,Azure Retail Prices API,2025-12-18T04:46:11.938251 +AZURE,uaenorth,Standard_D32d_v4,spot,NA,0.410995,USD,Azure Retail Prices API,2025-12-18T04:46:10.470348 +AZURE,uaenorth,Standard_D32ds_v4,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:46:10.470837 +AZURE,uaenorth,Standard_D32ds_v4,reserved_1y,NA,1.303995,USD,Azure Retail Prices API,2025-12-18T04:46:11.938120 +AZURE,uaenorth,Standard_D32ds_v4,reserved_3y,NA,0.833828,USD,Azure Retail Prices API,2025-12-18T04:46:11.938125 +AZURE,uaenorth,Standard_D32ds_v4,spot,NA,0.410995,USD,Azure Retail Prices API,2025-12-18T04:46:10.470311 +AZURE,uaenorth,Standard_D32ds_v5,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:46:10.471120 +AZURE,uaenorth,Standard_D32ds_v5,reserved_1y,NA,1.308333,USD,Azure Retail Prices API,2025-12-18T04:46:11.938437 +AZURE,uaenorth,Standard_D32ds_v5,reserved_3y,NA,0.842694,USD,Azure Retail Prices API,2025-12-18T04:46:11.938441 +AZURE,uaenorth,Standard_D32ds_v5,spot,NA,0.411217,USD,Azure Retail Prices API,2025-12-18T04:46:10.470596 +AZURE,uaenorth,Standard_D32ds_v6,on_demand,NA,2.452,USD,Azure Retail Prices API,2025-12-18T04:46:10.471249 +AZURE,uaenorth,Standard_D32ds_v6,reserved_1y,NA,1.520091,USD,Azure Retail Prices API,2025-12-18T04:46:11.938645 +AZURE,uaenorth,Standard_D32ds_v6,reserved_3y,NA,0.956202,USD,Azure Retail Prices API,2025-12-18T04:46:11.938649 +AZURE,uaenorth,Standard_D32ds_v6,spot,NA,0.45313,USD,Azure Retail Prices API,2025-12-18T04:46:10.470073 +AZURE,uaenorth,Standard_D32pds_v6,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:46:10.470615 +AZURE,uaenorth,Standard_D32pds_v6,reserved_1y,NA,1.057306,USD,Azure Retail Prices API,2025-12-18T04:46:11.937722 +AZURE,uaenorth,Standard_D32pds_v6,reserved_3y,NA,0.680974,USD,Azure Retail Prices API,2025-12-18T04:46:11.937727 +AZURE,uaenorth,Standard_D32pds_v6,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:46:10.471500 +AZURE,uaenorth,Standard_D32ps_v6,on_demand,NA,1.37,USD,Azure Retail Prices API,2025-12-18T04:46:10.471222 +AZURE,uaenorth,Standard_D32ps_v6,reserved_1y,NA,0.808105,USD,Azure Retail Prices API,2025-12-18T04:46:11.938582 +AZURE,uaenorth,Standard_D32ps_v6,reserved_3y,NA,0.520434,USD,Azure Retail Prices API,2025-12-18T04:46:11.938586 +AZURE,uaenorth,Standard_D32ps_v6,spot,NA,0.253176,USD,Azure Retail Prices API,2025-12-18T04:46:10.469908 +AZURE,uaenorth,Standard_D32s_v3,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:46:10.470773 +AZURE,uaenorth,Standard_D32s_v3,reserved_1y,NA,1.062785,USD,Azure Retail Prices API,2025-12-18T04:46:11.938020 +AZURE,uaenorth,Standard_D32s_v3,reserved_3y,NA,0.69121,USD,Azure Retail Prices API,2025-12-18T04:46:11.938025 +AZURE,uaenorth,Standard_D32s_v3,spot,NA,0.355776,USD,Azure Retail Prices API,2025-12-18T04:46:10.470152 +AZURE,uaenorth,Standard_D32s_v4,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:10.470226 +AZURE,uaenorth,Standard_D32s_v4,reserved_1y,NA,1.107306,USD,Azure Retail Prices API,2025-12-18T04:46:11.937099 +AZURE,uaenorth,Standard_D32s_v4,reserved_3y,NA,0.708067,USD,Azure Retail Prices API,2025-12-18T04:46:11.937104 +AZURE,uaenorth,Standard_D32s_v4,spot,NA,0.348732,USD,Azure Retail Prices API,2025-12-18T04:46:10.471377 +AZURE,uaenorth,Standard_D32s_v5,on_demand,NA,1.883,USD,Azure Retail Prices API,2025-12-18T04:46:10.470024 +AZURE,uaenorth,Standard_D32s_v5,reserved_1y,NA,1.111073,USD,Azure Retail Prices API,2025-12-18T04:46:11.936807 +AZURE,uaenorth,Standard_D32s_v5,reserved_3y,NA,0.696766,USD,Azure Retail Prices API,2025-12-18T04:46:11.936812 +AZURE,uaenorth,Standard_D32s_v5,spot,NA,0.34892,USD,Azure Retail Prices API,2025-12-18T04:46:10.470263 +AZURE,uaenorth,Standard_D3_v2,on_demand,NA,0.3223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485510 +AZURE,uaenorth,Standard_D3_v2,reserved_1y,NA,0.19338,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485525 +AZURE,uaenorth,Standard_D3_v2,reserved_3y,NA,0.12892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485532 +AZURE,uaenorth,Standard_D3_v2,spot,NA,0.09669,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485517 +AZURE,uaenorth,Standard_D48a_v4,on_demand,NA,2.825,USD,Azure Retail Prices API,2025-12-18T04:46:10.471380 +AZURE,uaenorth,Standard_D48a_v4,reserved_1y,NA,1.666667,USD,Azure Retail Prices API,2025-12-18T04:46:11.938803 +AZURE,uaenorth,Standard_D48a_v4,reserved_3y,NA,1.07344,USD,Azure Retail Prices API,2025-12-18T04:46:11.938808 +AZURE,uaenorth,Standard_D48a_v4,spot,NA,0.52206,USD,Azure Retail Prices API,2025-12-18T04:46:10.471551 +AZURE,uaenorth,Standard_D48ads_v5,on_demand,NA,3.046,USD,Azure Retail Prices API,2025-12-18T04:46:10.470801 +AZURE,uaenorth,Standard_D48ads_v5,reserved_1y,NA,1.796918,USD,Azure Retail Prices API,2025-12-18T04:46:11.938058 +AZURE,uaenorth,Standard_D48ads_v5,reserved_3y,NA,1.157344,USD,Azure Retail Prices API,2025-12-18T04:46:11.938064 +AZURE,uaenorth,Standard_D48ads_v5,spot,NA,0.562901,USD,Azure Retail Prices API,2025-12-18T04:46:10.470650 +AZURE,uaenorth,Standard_D48ads_v6,on_demand,NA,3.374,USD,Azure Retail Prices API,2025-12-18T04:46:10.470844 +AZURE,uaenorth,Standard_D48ads_v6,reserved_1y,NA,1.990868,USD,Azure Retail Prices API,2025-12-18T04:46:11.938129 +AZURE,uaenorth,Standard_D48ads_v6,reserved_3y,NA,1.282268,USD,Azure Retail Prices API,2025-12-18T04:46:11.938134 +AZURE,uaenorth,Standard_D48ads_v6,spot,NA,0.623515,USD,Azure Retail Prices API,2025-12-18T04:46:10.471291 +AZURE,uaenorth,Standard_D48as_v4,on_demand,NA,2.825,USD,Azure Retail Prices API,2025-12-18T04:46:10.470252 +AZURE,uaenorth,Standard_D48as_v4,reserved_1y,NA,1.666667,USD,Azure Retail Prices API,2025-12-18T04:46:11.937163 +AZURE,uaenorth,Standard_D48as_v4,reserved_3y,NA,1.07344,USD,Azure Retail Prices API,2025-12-18T04:46:11.937167 +AZURE,uaenorth,Standard_D48as_v4,spot,NA,0.52206,USD,Azure Retail Prices API,2025-12-18T04:46:10.470680 +AZURE,uaenorth,Standard_D48as_v5,on_demand,NA,2.544,USD,Azure Retail Prices API,2025-12-18T04:46:10.470764 +AZURE,uaenorth,Standard_D48as_v5,reserved_1y,NA,1.500913,USD,Azure Retail Prices API,2025-12-18T04:46:11.937991 +AZURE,uaenorth,Standard_D48as_v5,reserved_3y,NA,0.966705,USD,Azure Retail Prices API,2025-12-18T04:46:11.937996 +AZURE,uaenorth,Standard_D48as_v5,spot,NA,0.470131,USD,Azure Retail Prices API,2025-12-18T04:46:10.471583 +AZURE,uaenorth,Standard_D48d_v4,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:46:10.471699 +AZURE,uaenorth,Standard_D48d_v4,reserved_1y,NA,1.955936,USD,Azure Retail Prices API,2025-12-18T04:46:11.939455 +AZURE,uaenorth,Standard_D48d_v4,reserved_3y,NA,1.250723,USD,Azure Retail Prices API,2025-12-18T04:46:11.939460 +AZURE,uaenorth,Standard_D48d_v4,spot,NA,0.616308,USD,Azure Retail Prices API,2025-12-18T04:46:10.471524 +AZURE,uaenorth,Standard_D48ds_v4,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:46:10.470676 +AZURE,uaenorth,Standard_D48ds_v4,reserved_1y,NA,1.955936,USD,Azure Retail Prices API,2025-12-18T04:46:11.937808 +AZURE,uaenorth,Standard_D48ds_v4,reserved_3y,NA,1.250723,USD,Azure Retail Prices API,2025-12-18T04:46:11.937813 +AZURE,uaenorth,Standard_D48ds_v4,spot,NA,0.616308,USD,Azure Retail Prices API,2025-12-18T04:46:10.470841 +AZURE,uaenorth,Standard_D48ds_v5,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:46:10.469900 +AZURE,uaenorth,Standard_D48ds_v5,reserved_1y,NA,1.962557,USD,Azure Retail Prices API,2025-12-18T04:46:11.936611 +AZURE,uaenorth,Standard_D48ds_v5,reserved_3y,NA,1.264041,USD,Azure Retail Prices API,2025-12-18T04:46:11.936615 +AZURE,uaenorth,Standard_D48ds_v5,spot,NA,0.61664,USD,Azure Retail Prices API,2025-12-18T04:46:10.470648 +AZURE,uaenorth,Standard_D48ds_v6,on_demand,NA,3.678,USD,Azure Retail Prices API,2025-12-18T04:46:10.471398 +AZURE,uaenorth,Standard_D48ds_v6,reserved_1y,NA,2.280251,USD,Azure Retail Prices API,2025-12-18T04:46:11.938842 +AZURE,uaenorth,Standard_D48ds_v6,reserved_3y,NA,1.434323,USD,Azure Retail Prices API,2025-12-18T04:46:11.938847 +AZURE,uaenorth,Standard_D48ds_v6,spot,NA,0.679694,USD,Azure Retail Prices API,2025-12-18T04:46:10.471228 +AZURE,uaenorth,Standard_D48pds_v6,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:46:10.470659 +AZURE,uaenorth,Standard_D48pds_v6,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:46:11.937780 +AZURE,uaenorth,Standard_D48pds_v6,reserved_3y,NA,1.021423,USD,Azure Retail Prices API,2025-12-18T04:46:11.937784 +AZURE,uaenorth,Standard_D48pds_v6,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:46:10.471337 +AZURE,uaenorth,Standard_D48ps_v6,on_demand,NA,2.054,USD,Azure Retail Prices API,2025-12-18T04:46:10.471029 +AZURE,uaenorth,Standard_D48ps_v6,reserved_1y,NA,1.2121,USD,Azure Retail Prices API,2025-12-18T04:46:11.938365 +AZURE,uaenorth,Standard_D48ps_v6,reserved_3y,NA,0.78067,USD,Azure Retail Prices API,2025-12-18T04:46:11.938369 +AZURE,uaenorth,Standard_D48ps_v6,spot,NA,0.379579,USD,Azure Retail Prices API,2025-12-18T04:46:10.471245 +AZURE,uaenorth,Standard_D48s_v4,on_demand,NA,2.825,USD,Azure Retail Prices API,2025-12-18T04:46:10.471055 +AZURE,uaenorth,Standard_D48s_v4,reserved_1y,NA,1.660959,USD,Azure Retail Prices API,2025-12-18T04:46:11.938401 +AZURE,uaenorth,Standard_D48s_v4,reserved_3y,NA,1.062139,USD,Azure Retail Prices API,2025-12-18T04:46:11.938406 +AZURE,uaenorth,Standard_D48s_v4,spot,NA,0.52319,USD,Azure Retail Prices API,2025-12-18T04:46:10.470010 +AZURE,uaenorth,Standard_D48s_v5,on_demand,NA,2.825,USD,Azure Retail Prices API,2025-12-18T04:46:10.471522 +AZURE,uaenorth,Standard_D48s_v5,reserved_1y,NA,1.666667,USD,Azure Retail Prices API,2025-12-18T04:46:11.939019 +AZURE,uaenorth,Standard_D48s_v5,reserved_3y,NA,1.045167,USD,Azure Retail Prices API,2025-12-18T04:46:11.939023 +AZURE,uaenorth,Standard_D48s_v5,spot,NA,0.523472,USD,Azure Retail Prices API,2025-12-18T04:46:10.470463 +AZURE,uaenorth,Standard_D4_v2,on_demand,NA,0.6435,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486339 +AZURE,uaenorth,Standard_D4_v2,reserved_1y,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486348 +AZURE,uaenorth,Standard_D4_v2,reserved_3y,NA,0.2574,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486352 +AZURE,uaenorth,Standard_D4_v2,spot,NA,0.19305,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486344 +AZURE,uaenorth,Standard_D4a_v4,on_demand,NA,0.235,USD,Azure Retail Prices API,2025-12-18T04:46:10.471428 +AZURE,uaenorth,Standard_D4a_v4,reserved_1y,NA,0.138927,USD,Azure Retail Prices API,2025-12-18T04:46:11.938872 +AZURE,uaenorth,Standard_D4a_v4,reserved_3y,NA,0.08946,USD,Azure Retail Prices API,2025-12-18T04:46:11.938876 +AZURE,uaenorth,Standard_D4a_v4,spot,NA,0.043428,USD,Azure Retail Prices API,2025-12-18T04:46:10.470548 +AZURE,uaenorth,Standard_D4ads_v5,on_demand,NA,0.438,USD,Azure Retail Prices API,2025-12-18T04:46:10.471042 +AZURE,uaenorth,Standard_D4ads_v5,reserved_1y,NA,0.149772,USD,Azure Retail Prices API,2025-12-18T04:46:11.938609 +AZURE,uaenorth,Standard_D4ads_v5,reserved_3y,NA,0.096461,USD,Azure Retail Prices API,2025-12-18T04:46:11.938613 +AZURE,uaenorth,Standard_D4ads_v5,spot,NA,0.046939,USD,Azure Retail Prices API,2025-12-18T04:46:10.469874 +AZURE,uaenorth,Standard_D4ads_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:46:10.470581 +AZURE,uaenorth,Standard_D4ads_v6,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:46:11.937681 +AZURE,uaenorth,Standard_D4ads_v6,reserved_3y,NA,0.106849,USD,Azure Retail Prices API,2025-12-18T04:46:11.937687 +AZURE,uaenorth,Standard_D4ads_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:46:10.469958 +AZURE,uaenorth,Standard_D4as_v5,on_demand,NA,0.212,USD,Azure Retail Prices API,2025-12-18T04:46:10.470007 +AZURE,uaenorth,Standard_D4as_v5,reserved_1y,NA,0.125114,USD,Azure Retail Prices API,2025-12-18T04:46:11.936767 +AZURE,uaenorth,Standard_D4as_v5,reserved_3y,NA,0.080556,USD,Azure Retail Prices API,2025-12-18T04:46:11.936772 +AZURE,uaenorth,Standard_D4as_v5,spot,NA,0.039178,USD,Azure Retail Prices API,2025-12-18T04:46:10.470229 +AZURE,uaenorth,Standard_D4d_v4,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:46:10.470067 +AZURE,uaenorth,Standard_D4d_v4,reserved_1y,NA,0.163014,USD,Azure Retail Prices API,2025-12-18T04:46:11.936869 +AZURE,uaenorth,Standard_D4d_v4,reserved_3y,NA,0.104224,USD,Azure Retail Prices API,2025-12-18T04:46:11.936874 +AZURE,uaenorth,Standard_D4d_v4,spot,NA,0.051328,USD,Azure Retail Prices API,2025-12-18T04:46:10.471331 +AZURE,uaenorth,Standard_D4ds_v4,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:46:10.471497 +AZURE,uaenorth,Standard_D4ds_v4,reserved_1y,NA,0.163014,USD,Azure Retail Prices API,2025-12-18T04:46:11.938997 +AZURE,uaenorth,Standard_D4ds_v4,reserved_3y,NA,0.104224,USD,Azure Retail Prices API,2025-12-18T04:46:11.939002 +AZURE,uaenorth,Standard_D4ds_v4,spot,NA,0.051328,USD,Azure Retail Prices API,2025-12-18T04:46:10.470636 +AZURE,uaenorth,Standard_D4ds_v5,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:46:10.470035 +AZURE,uaenorth,Standard_D4ds_v5,reserved_1y,NA,0.163584,USD,Azure Retail Prices API,2025-12-18T04:46:11.936828 +AZURE,uaenorth,Standard_D4ds_v5,reserved_3y,NA,0.105327,USD,Azure Retail Prices API,2025-12-18T04:46:11.936833 +AZURE,uaenorth,Standard_D4ds_v5,spot,NA,0.051356,USD,Azure Retail Prices API,2025-12-18T04:46:10.471623 +AZURE,uaenorth,Standard_D4ds_v6,on_demand,NA,0.306,USD,Azure Retail Prices API,2025-12-18T04:46:10.470172 +AZURE,uaenorth,Standard_D4ds_v6,reserved_1y,NA,0.190068,USD,Azure Retail Prices API,2025-12-18T04:46:11.937030 +AZURE,uaenorth,Standard_D4ds_v6,reserved_3y,NA,0.119521,USD,Azure Retail Prices API,2025-12-18T04:46:11.937034 +AZURE,uaenorth,Standard_D4ds_v6,spot,NA,0.056549,USD,Azure Retail Prices API,2025-12-18T04:46:10.470889 +AZURE,uaenorth,Standard_D4pds_v6,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:46:10.470761 +AZURE,uaenorth,Standard_D4pds_v6,reserved_1y,NA,0.132192,USD,Azure Retail Prices API,2025-12-18T04:46:11.937982 +AZURE,uaenorth,Standard_D4pds_v6,reserved_3y,NA,0.085122,USD,Azure Retail Prices API,2025-12-18T04:46:11.937986 +AZURE,uaenorth,Standard_D4pds_v6,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:46:10.470847 +AZURE,uaenorth,Standard_D4ps_v6,on_demand,NA,0.171,USD,Azure Retail Prices API,2025-12-18T04:46:10.471571 +AZURE,uaenorth,Standard_D4ps_v6,reserved_1y,NA,0.101027,USD,Azure Retail Prices API,2025-12-18T04:46:11.939214 +AZURE,uaenorth,Standard_D4ps_v6,reserved_3y,NA,0.065068,USD,Azure Retail Prices API,2025-12-18T04:46:11.939219 +AZURE,uaenorth,Standard_D4ps_v6,spot,NA,0.031601,USD,Azure Retail Prices API,2025-12-18T04:46:10.471132 +AZURE,uaenorth,Standard_D4s_v3,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:46:10.471713 +AZURE,uaenorth,Standard_D4s_v3,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:46:11.939486 +AZURE,uaenorth,Standard_D4s_v3,reserved_3y,NA,0.086416,USD,Azure Retail Prices API,2025-12-18T04:46:11.939491 +AZURE,uaenorth,Standard_D4s_v3,spot,NA,0.044472,USD,Azure Retail Prices API,2025-12-18T04:46:10.469947 +AZURE,uaenorth,Standard_D4s_v4,on_demand,NA,0.235,USD,Azure Retail Prices API,2025-12-18T04:46:10.470218 +AZURE,uaenorth,Standard_D4s_v4,reserved_1y,NA,0.13847,USD,Azure Retail Prices API,2025-12-18T04:46:11.937090 +AZURE,uaenorth,Standard_D4s_v4,reserved_3y,NA,0.088508,USD,Azure Retail Prices API,2025-12-18T04:46:11.937094 +AZURE,uaenorth,Standard_D4s_v4,spot,NA,0.043522,USD,Azure Retail Prices API,2025-12-18T04:46:10.470810 +AZURE,uaenorth,Standard_D4s_v5,on_demand,NA,0.235,USD,Azure Retail Prices API,2025-12-18T04:46:10.470691 +AZURE,uaenorth,Standard_D4s_v5,reserved_1y,NA,0.138927,USD,Azure Retail Prices API,2025-12-18T04:46:11.937818 +AZURE,uaenorth,Standard_D4s_v5,reserved_3y,NA,0.0871,USD,Azure Retail Prices API,2025-12-18T04:46:11.937823 +AZURE,uaenorth,Standard_D4s_v5,spot,NA,0.043546,USD,Azure Retail Prices API,2025-12-18T04:46:10.471705 +AZURE,uaenorth,Standard_D5_v2,on_demand,NA,1.287,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487623 +AZURE,uaenorth,Standard_D5_v2,reserved_1y,NA,0.7722,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487638 +AZURE,uaenorth,Standard_D5_v2,reserved_3y,NA,0.5148,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487645 +AZURE,uaenorth,Standard_D5_v2,spot,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487630 +AZURE,uaenorth,Standard_D64_v3,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:10.470466 +AZURE,uaenorth,Standard_D64_v3,reserved_1y,NA,2.125571,USD,Azure Retail Prices API,2025-12-18T04:46:11.937520 +AZURE,uaenorth,Standard_D64_v3,reserved_3y,NA,1.382382,USD,Azure Retail Prices API,2025-12-18T04:46:11.937524 +AZURE,uaenorth,Standard_D64_v3,spot,NA,0.711552,USD,Azure Retail Prices API,2025-12-18T04:46:10.471453 +AZURE,uaenorth,Standard_D64a_v4,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:10.470084 +AZURE,uaenorth,Standard_D64a_v4,reserved_1y,NA,2.222146,USD,Azure Retail Prices API,2025-12-18T04:46:11.936900 +AZURE,uaenorth,Standard_D64a_v4,reserved_3y,NA,1.43124,USD,Azure Retail Prices API,2025-12-18T04:46:11.936905 +AZURE,uaenorth,Standard_D64a_v4,spot,NA,0.695957,USD,Azure Retail Prices API,2025-12-18T04:46:10.469890 +AZURE,uaenorth,Standard_D64ads_v5,on_demand,NA,7.005,USD,Azure Retail Prices API,2025-12-18T04:46:10.470382 +AZURE,uaenorth,Standard_D64ads_v5,reserved_1y,NA,2.39589,USD,Azure Retail Prices API,2025-12-18T04:46:11.938079 +AZURE,uaenorth,Standard_D64ads_v5,reserved_3y,NA,1.543113,USD,Azure Retail Prices API,2025-12-18T04:46:11.938084 +AZURE,uaenorth,Standard_D64ads_v5,spot,NA,0.750473,USD,Azure Retail Prices API,2025-12-18T04:46:10.470516 +AZURE,uaenorth,Standard_D64ads_v6,on_demand,NA,4.499,USD,Azure Retail Prices API,2025-12-18T04:46:10.470451 +AZURE,uaenorth,Standard_D64ads_v6,reserved_1y,NA,2.654566,USD,Azure Retail Prices API,2025-12-18T04:46:11.937490 +AZURE,uaenorth,Standard_D64ads_v6,reserved_3y,NA,1.709703,USD,Azure Retail Prices API,2025-12-18T04:46:11.937495 +AZURE,uaenorth,Standard_D64ads_v6,spot,NA,0.831415,USD,Azure Retail Prices API,2025-12-18T04:46:10.470116 +AZURE,uaenorth,Standard_D64as_v4,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:10.470160 +AZURE,uaenorth,Standard_D64as_v4,reserved_1y,NA,2.222146,USD,Azure Retail Prices API,2025-12-18T04:46:11.937011 +AZURE,uaenorth,Standard_D64as_v4,reserved_3y,NA,1.43124,USD,Azure Retail Prices API,2025-12-18T04:46:11.937016 +AZURE,uaenorth,Standard_D64as_v4,spot,NA,0.695957,USD,Azure Retail Prices API,2025-12-18T04:46:10.470703 +AZURE,uaenorth,Standard_D64as_v5,on_demand,NA,3.392,USD,Azure Retail Prices API,2025-12-18T04:46:10.470420 +AZURE,uaenorth,Standard_D64as_v5,reserved_1y,NA,2.001256,USD,Azure Retail Prices API,2025-12-18T04:46:11.937433 +AZURE,uaenorth,Standard_D64as_v5,reserved_3y,NA,1.288965,USD,Azure Retail Prices API,2025-12-18T04:46:11.937437 +AZURE,uaenorth,Standard_D64as_v5,spot,NA,0.626842,USD,Azure Retail Prices API,2025-12-18T04:46:10.469970 +AZURE,uaenorth,Standard_D64d_v4,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:46:10.470279 +AZURE,uaenorth,Standard_D64d_v4,reserved_1y,NA,2.607877,USD,Azure Retail Prices API,2025-12-18T04:46:11.937200 +AZURE,uaenorth,Standard_D64d_v4,reserved_3y,NA,1.667618,USD,Azure Retail Prices API,2025-12-18T04:46:11.937206 +AZURE,uaenorth,Standard_D64d_v4,spot,NA,0.821806,USD,Azure Retail Prices API,2025-12-18T04:46:10.470291 +AZURE,uaenorth,Standard_D64ds_v4,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:46:10.471038 +AZURE,uaenorth,Standard_D64ds_v4,reserved_1y,NA,2.607877,USD,Azure Retail Prices API,2025-12-18T04:46:11.938373 +AZURE,uaenorth,Standard_D64ds_v4,reserved_3y,NA,1.667618,USD,Azure Retail Prices API,2025-12-18T04:46:11.938378 +AZURE,uaenorth,Standard_D64ds_v4,spot,NA,0.821806,USD,Azure Retail Prices API,2025-12-18T04:46:10.471259 +AZURE,uaenorth,Standard_D64ds_v5,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:46:10.470417 +AZURE,uaenorth,Standard_D64ds_v5,reserved_1y,NA,2.616781,USD,Azure Retail Prices API,2025-12-18T04:46:11.937423 +AZURE,uaenorth,Standard_D64ds_v5,reserved_3y,NA,1.685388,USD,Azure Retail Prices API,2025-12-18T04:46:11.937428 +AZURE,uaenorth,Standard_D64ds_v5,spot,NA,0.822249,USD,Azure Retail Prices API,2025-12-18T04:46:10.470528 +AZURE,uaenorth,Standard_D64ds_v6,on_demand,NA,4.904,USD,Azure Retail Prices API,2025-12-18T04:46:10.469967 +AZURE,uaenorth,Standard_D64ds_v6,reserved_1y,NA,3.040297,USD,Azure Retail Prices API,2025-12-18T04:46:11.936674 +AZURE,uaenorth,Standard_D64ds_v6,reserved_3y,NA,1.912443,USD,Azure Retail Prices API,2025-12-18T04:46:11.936679 +AZURE,uaenorth,Standard_D64ds_v6,spot,NA,0.906259,USD,Azure Retail Prices API,2025-12-18T04:46:10.470510 +AZURE,uaenorth,Standard_D64pds_v6,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:46:10.470739 +AZURE,uaenorth,Standard_D64pds_v6,reserved_1y,NA,2.114612,USD,Azure Retail Prices API,2025-12-18T04:46:11.937942 +AZURE,uaenorth,Standard_D64pds_v6,reserved_3y,NA,1.36191,USD,Azure Retail Prices API,2025-12-18T04:46:11.937946 +AZURE,uaenorth,Standard_D64pds_v6,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:46:10.470767 +AZURE,uaenorth,Standard_D64ps_v6,on_demand,NA,2.739,USD,Azure Retail Prices API,2025-12-18T04:46:10.471238 +AZURE,uaenorth,Standard_D64ps_v6,reserved_1y,NA,1.616096,USD,Azure Retail Prices API,2025-12-18T04:46:11.938626 +AZURE,uaenorth,Standard_D64ps_v6,reserved_3y,NA,1.040906,USD,Azure Retail Prices API,2025-12-18T04:46:11.938631 +AZURE,uaenorth,Standard_D64ps_v6,spot,NA,0.506167,USD,Azure Retail Prices API,2025-12-18T04:46:10.471530 +AZURE,uaenorth,Standard_D64s_v3,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:46:10.471479 +AZURE,uaenorth,Standard_D64s_v3,reserved_1y,NA,2.125571,USD,Azure Retail Prices API,2025-12-18T04:46:11.938949 +AZURE,uaenorth,Standard_D64s_v3,reserved_3y,NA,1.382382,USD,Azure Retail Prices API,2025-12-18T04:46:11.938954 +AZURE,uaenorth,Standard_D64s_v3,spot,NA,0.711552,USD,Azure Retail Prices API,2025-12-18T04:46:10.471476 +AZURE,uaenorth,Standard_D64s_v4,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:10.470113 +AZURE,uaenorth,Standard_D64s_v4,reserved_1y,NA,2.214612,USD,Azure Retail Prices API,2025-12-18T04:46:11.936930 +AZURE,uaenorth,Standard_D64s_v4,reserved_3y,NA,1.416172,USD,Azure Retail Prices API,2025-12-18T04:46:11.936935 +AZURE,uaenorth,Standard_D64s_v4,spot,NA,0.697463,USD,Azure Retail Prices API,2025-12-18T04:46:10.470190 +AZURE,uaenorth,Standard_D64s_v5,on_demand,NA,3.766,USD,Azure Retail Prices API,2025-12-18T04:46:10.471710 +AZURE,uaenorth,Standard_D64s_v5,reserved_1y,NA,2.222146,USD,Azure Retail Prices API,2025-12-18T04:46:11.939477 +AZURE,uaenorth,Standard_D64s_v5,reserved_3y,NA,1.393569,USD,Azure Retail Prices API,2025-12-18T04:46:11.939482 +AZURE,uaenorth,Standard_D64s_v5,spot,NA,0.69784,USD,Azure Retail Prices API,2025-12-18T04:46:10.471035 +AZURE,uaenorth,Standard_D8_v3,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:10.470718 +AZURE,uaenorth,Standard_D8_v3,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:46:11.937894 +AZURE,uaenorth,Standard_D8_v3,reserved_3y,NA,0.172793,USD,Azure Retail Prices API,2025-12-18T04:46:11.937899 +AZURE,uaenorth,Standard_D8_v3,spot,NA,0.088944,USD,Azure Retail Prices API,2025-12-18T04:46:10.471719 +AZURE,uaenorth,Standard_D8a_v4,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:10.469993 +AZURE,uaenorth,Standard_D8a_v4,reserved_1y,NA,0.27774,USD,Azure Retail Prices API,2025-12-18T04:46:11.936714 +AZURE,uaenorth,Standard_D8a_v4,reserved_3y,NA,0.178919,USD,Azure Retail Prices API,2025-12-18T04:46:11.936719 +AZURE,uaenorth,Standard_D8a_v4,spot,NA,0.087041,USD,Azure Retail Prices API,2025-12-18T04:46:10.470590 +AZURE,uaenorth,Standard_D8ads_v5,on_demand,NA,0.876,USD,Azure Retail Prices API,2025-12-18T04:46:10.470531 +AZURE,uaenorth,Standard_D8ads_v5,reserved_1y,NA,0.299429,USD,Azure Retail Prices API,2025-12-18T04:46:11.938211 +AZURE,uaenorth,Standard_D8ads_v5,reserved_3y,NA,0.192884,USD,Azure Retail Prices API,2025-12-18T04:46:11.938216 +AZURE,uaenorth,Standard_D8ads_v5,spot,NA,0.093878,USD,Azure Retail Prices API,2025-12-18T04:46:10.469964 +AZURE,uaenorth,Standard_D8ads_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:46:10.470934 +AZURE,uaenorth,Standard_D8ads_v6,reserved_1y,NA,0.331849,USD,Azure Retail Prices API,2025-12-18T04:46:11.938202 +AZURE,uaenorth,Standard_D8ads_v6,reserved_3y,NA,0.213699,USD,Azure Retail Prices API,2025-12-18T04:46:11.938206 +AZURE,uaenorth,Standard_D8ads_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:46:10.470715 +AZURE,uaenorth,Standard_D8as_v4,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:10.471045 +AZURE,uaenorth,Standard_D8as_v4,reserved_1y,NA,0.27774,USD,Azure Retail Prices API,2025-12-18T04:46:11.938382 +AZURE,uaenorth,Standard_D8as_v4,reserved_3y,NA,0.178919,USD,Azure Retail Prices API,2025-12-18T04:46:11.938387 +AZURE,uaenorth,Standard_D8as_v4,spot,NA,0.087041,USD,Azure Retail Prices API,2025-12-18T04:46:10.470576 +AZURE,uaenorth,Standard_D8as_v5,on_demand,NA,0.424,USD,Azure Retail Prices API,2025-12-18T04:46:10.470215 +AZURE,uaenorth,Standard_D8as_v5,reserved_1y,NA,0.250114,USD,Azure Retail Prices API,2025-12-18T04:46:11.937080 +AZURE,uaenorth,Standard_D8as_v5,reserved_3y,NA,0.161111,USD,Azure Retail Prices API,2025-12-18T04:46:11.937085 +AZURE,uaenorth,Standard_D8as_v5,spot,NA,0.078355,USD,Azure Retail Prices API,2025-12-18T04:46:10.470785 +AZURE,uaenorth,Standard_D8d_v4,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:46:10.470107 +AZURE,uaenorth,Standard_D8d_v4,reserved_1y,NA,0.326027,USD,Azure Retail Prices API,2025-12-18T04:46:11.936920 +AZURE,uaenorth,Standard_D8d_v4,reserved_3y,NA,0.208447,USD,Azure Retail Prices API,2025-12-18T04:46:11.936925 +AZURE,uaenorth,Standard_D8d_v4,spot,NA,0.102656,USD,Azure Retail Prices API,2025-12-18T04:46:10.470469 +AZURE,uaenorth,Standard_D8ds_v4,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:46:10.471235 +AZURE,uaenorth,Standard_D8ds_v4,reserved_1y,NA,0.326027,USD,Azure Retail Prices API,2025-12-18T04:46:11.938617 +AZURE,uaenorth,Standard_D8ds_v4,reserved_3y,NA,0.208447,USD,Azure Retail Prices API,2025-12-18T04:46:11.938622 +AZURE,uaenorth,Standard_D8ds_v4,spot,NA,0.102656,USD,Azure Retail Prices API,2025-12-18T04:46:10.470670 +AZURE,uaenorth,Standard_D8ds_v5,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:46:10.470876 +AZURE,uaenorth,Standard_D8ds_v5,reserved_1y,NA,0.327055,USD,Azure Retail Prices API,2025-12-18T04:46:11.938167 +AZURE,uaenorth,Standard_D8ds_v5,reserved_3y,NA,0.210654,USD,Azure Retail Prices API,2025-12-18T04:46:11.938171 +AZURE,uaenorth,Standard_D8ds_v5,spot,NA,0.102712,USD,Azure Retail Prices API,2025-12-18T04:46:10.471660 +AZURE,uaenorth,Standard_D8ds_v6,on_demand,NA,0.613,USD,Azure Retail Prices API,2025-12-18T04:46:10.470448 +AZURE,uaenorth,Standard_D8ds_v6,reserved_1y,NA,0.380023,USD,Azure Retail Prices API,2025-12-18T04:46:11.937480 +AZURE,uaenorth,Standard_D8ds_v6,reserved_3y,NA,0.239041,USD,Azure Retail Prices API,2025-12-18T04:46:11.937485 +AZURE,uaenorth,Standard_D8ds_v6,spot,NA,0.113282,USD,Azure Retail Prices API,2025-12-18T04:46:10.471527 +AZURE,uaenorth,Standard_D8pds_v6,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:46:10.469893 +AZURE,uaenorth,Standard_D8pds_v6,reserved_1y,NA,0.264269,USD,Azure Retail Prices API,2025-12-18T04:46:11.936602 +AZURE,uaenorth,Standard_D8pds_v6,reserved_3y,NA,0.170244,USD,Azure Retail Prices API,2025-12-18T04:46:11.936607 +AZURE,uaenorth,Standard_D8pds_v6,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:46:10.470366 +AZURE,uaenorth,Standard_D8ps_v6,on_demand,NA,0.342,USD,Azure Retail Prices API,2025-12-18T04:46:10.470805 +AZURE,uaenorth,Standard_D8ps_v6,reserved_1y,NA,0.202055,USD,Azure Retail Prices API,2025-12-18T04:46:11.938069 +AZURE,uaenorth,Standard_D8ps_v6,reserved_3y,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:11.938074 +AZURE,uaenorth,Standard_D8ps_v6,spot,NA,0.063202,USD,Azure Retail Prices API,2025-12-18T04:46:10.471702 +AZURE,uaenorth,Standard_D8s_v3,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:46:10.470345 +AZURE,uaenorth,Standard_D8s_v3,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:46:11.937319 +AZURE,uaenorth,Standard_D8s_v3,reserved_3y,NA,0.172793,USD,Azure Retail Prices API,2025-12-18T04:46:11.937323 +AZURE,uaenorth,Standard_D8s_v3,spot,NA,0.088944,USD,Azure Retail Prices API,2025-12-18T04:46:10.470782 +AZURE,uaenorth,Standard_D8s_v4,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:10.471589 +AZURE,uaenorth,Standard_D8s_v4,reserved_1y,NA,0.276826,USD,Azure Retail Prices API,2025-12-18T04:46:11.939234 +AZURE,uaenorth,Standard_D8s_v4,reserved_3y,NA,0.177017,USD,Azure Retail Prices API,2025-12-18T04:46:11.939239 +AZURE,uaenorth,Standard_D8s_v4,spot,NA,0.087229,USD,Azure Retail Prices API,2025-12-18T04:46:10.471207 +AZURE,uaenorth,Standard_D8s_v5,on_demand,NA,0.471,USD,Azure Retail Prices API,2025-12-18T04:46:10.470415 +AZURE,uaenorth,Standard_D8s_v5,reserved_1y,NA,0.27774,USD,Azure Retail Prices API,2025-12-18T04:46:11.937414 +AZURE,uaenorth,Standard_D8s_v5,reserved_3y,NA,0.174201,USD,Azure Retail Prices API,2025-12-18T04:46:11.937419 +AZURE,uaenorth,Standard_D8s_v5,spot,NA,0.087276,USD,Azure Retail Prices API,2025-12-18T04:46:10.471692 +AZURE,uaenorth,Standard_D96a_v4,on_demand,NA,5.65,USD,Azure Retail Prices API,2025-12-18T04:46:10.471565 +AZURE,uaenorth,Standard_D96a_v4,reserved_1y,NA,3.333219,USD,Azure Retail Prices API,2025-12-18T04:46:11.939194 +AZURE,uaenorth,Standard_D96a_v4,reserved_3y,NA,2.146842,USD,Azure Retail Prices API,2025-12-18T04:46:11.939200 +AZURE,uaenorth,Standard_D96a_v4,spot,NA,1.04412,USD,Azure Retail Prices API,2025-12-18T04:46:10.470665 +AZURE,uaenorth,Standard_D96ads_v5,on_demand,NA,10.507,USD,Azure Retail Prices API,2025-12-18T04:46:10.470199 +AZURE,uaenorth,Standard_D96ads_v5,reserved_1y,NA,3.593836,USD,Azure Retail Prices API,2025-12-18T04:46:11.937337 +AZURE,uaenorth,Standard_D96ads_v5,reserved_3y,NA,2.31465,USD,Azure Retail Prices API,2025-12-18T04:46:11.937341 +AZURE,uaenorth,Standard_D96ads_v5,spot,NA,1.125617,USD,Azure Retail Prices API,2025-12-18T04:46:10.470851 +AZURE,uaenorth,Standard_D96ads_v6,on_demand,NA,6.749,USD,Azure Retail Prices API,2025-12-18T04:46:10.471148 +AZURE,uaenorth,Standard_D96ads_v6,reserved_1y,NA,3.981735,USD,Azure Retail Prices API,2025-12-18T04:46:11.938501 +AZURE,uaenorth,Standard_D96ads_v6,reserved_3y,NA,2.564536,USD,Azure Retail Prices API,2025-12-18T04:46:11.938505 +AZURE,uaenorth,Standard_D96ads_v6,spot,NA,1.247215,USD,Azure Retail Prices API,2025-12-18T04:46:10.470639 +AZURE,uaenorth,Standard_D96as_v4,on_demand,NA,5.65,USD,Azure Retail Prices API,2025-12-18T04:46:10.470573 +AZURE,uaenorth,Standard_D96as_v4,reserved_1y,NA,3.333219,USD,Azure Retail Prices API,2025-12-18T04:46:11.937661 +AZURE,uaenorth,Standard_D96as_v4,reserved_3y,NA,2.146842,USD,Azure Retail Prices API,2025-12-18T04:46:11.937666 +AZURE,uaenorth,Standard_D96as_v4,spot,NA,1.04412,USD,Azure Retail Prices API,2025-12-18T04:46:10.470095 +AZURE,uaenorth,Standard_D96as_v5,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:10.470384 +AZURE,uaenorth,Standard_D96as_v5,reserved_1y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:11.937375 +AZURE,uaenorth,Standard_D96as_v5,reserved_3y,NA,1.933447,USD,Azure Retail Prices API,2025-12-18T04:46:11.937380 +AZURE,uaenorth,Standard_D96as_v5,spot,NA,0.940262,USD,Azure Retail Prices API,2025-12-18T04:46:10.470271 +AZURE,uaenorth,Standard_D96ds_v5,on_demand,NA,6.653,USD,Azure Retail Prices API,2025-12-18T04:46:10.470004 +AZURE,uaenorth,Standard_D96ds_v5,reserved_1y,NA,3.925114,USD,Azure Retail Prices API,2025-12-18T04:46:11.936758 +AZURE,uaenorth,Standard_D96ds_v5,reserved_3y,NA,2.528082,USD,Azure Retail Prices API,2025-12-18T04:46:11.936762 +AZURE,uaenorth,Standard_D96ds_v5,spot,NA,1.233466,USD,Azure Retail Prices API,2025-12-18T04:46:10.470685 +AZURE,uaenorth,Standard_D96ds_v6,on_demand,NA,7.356,USD,Azure Retail Prices API,2025-12-18T04:46:10.471007 +AZURE,uaenorth,Standard_D96ds_v6,reserved_1y,NA,4.560388,USD,Azure Retail Prices API,2025-12-18T04:46:11.938338 +AZURE,uaenorth,Standard_D96ds_v6,reserved_3y,NA,2.868645,USD,Azure Retail Prices API,2025-12-18T04:46:11.938343 +AZURE,uaenorth,Standard_D96ds_v6,spot,NA,1.359389,USD,Azure Retail Prices API,2025-12-18T04:46:10.470656 +AZURE,uaenorth,Standard_D96pds_v6,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:46:10.470863 +AZURE,uaenorth,Standard_D96pds_v6,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:46:11.938138 +AZURE,uaenorth,Standard_D96pds_v6,reserved_3y,NA,2.042884,USD,Azure Retail Prices API,2025-12-18T04:46:11.938143 +AZURE,uaenorth,Standard_D96pds_v6,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:46:10.469979 +AZURE,uaenorth,Standard_D96ps_v6,on_demand,NA,4.109,USD,Azure Retail Prices API,2025-12-18T04:46:10.470961 +AZURE,uaenorth,Standard_D96ps_v6,reserved_1y,NA,2.424201,USD,Azure Retail Prices API,2025-12-18T04:46:11.938274 +AZURE,uaenorth,Standard_D96ps_v6,reserved_3y,NA,1.561339,USD,Azure Retail Prices API,2025-12-18T04:46:11.938279 +AZURE,uaenorth,Standard_D96ps_v6,spot,NA,0.759343,USD,Azure Retail Prices API,2025-12-18T04:46:10.471016 +AZURE,uaenorth,Standard_D96s_v5,on_demand,NA,5.65,USD,Azure Retail Prices API,2025-12-18T04:46:10.471092 +AZURE,uaenorth,Standard_D96s_v5,reserved_1y,NA,3.333219,USD,Azure Retail Prices API,2025-12-18T04:46:11.938420 +AZURE,uaenorth,Standard_D96s_v5,reserved_3y,NA,2.090335,USD,Azure Retail Prices API,2025-12-18T04:46:11.938424 +AZURE,uaenorth,Standard_D96s_v5,spot,NA,1.046945,USD,Azure Retail Prices API,2025-12-18T04:46:10.471270 +AZURE,uaenorth,Standard_DC16ads_v5,on_demand,NA,1.015,USD,Azure Retail Prices API,2025-12-18T04:46:10.470949 +AZURE,uaenorth,Standard_DC16ads_v5,reserved_1y,NA,0.812215,USD,Azure Retail Prices API,2025-12-18T04:46:11.938255 +AZURE,uaenorth,Standard_DC16ads_v5,reserved_3y,NA,0.609132,USD,Azure Retail Prices API,2025-12-18T04:46:11.938259 +AZURE,uaenorth,Standard_DC16ads_v5,spot,NA,0.19153,USD,Azure Retail Prices API,2025-12-18T04:46:10.470429 +AZURE,uaenorth,Standard_DC16ads_v6,on_demand,NA,1.125,USD,Azure Retail Prices API,2025-12-18T04:46:10.471135 +AZURE,uaenorth,Standard_DC16ads_v6,reserved_1y,NA,0.663584,USD,Azure Retail Prices API,2025-12-18T04:46:11.938465 +AZURE,uaenorth,Standard_DC16ads_v6,reserved_3y,NA,0.427435,USD,Azure Retail Prices API,2025-12-18T04:46:11.938469 +AZURE,uaenorth,Standard_DC16ads_v6,spot,NA,0.2079,USD,Azure Retail Prices API,2025-12-18T04:46:10.470360 +AZURE,uaenorth,Standard_DC16as_v5,on_demand,NA,0.848,USD,Azure Retail Prices API,2025-12-18T04:46:10.471353 +AZURE,uaenorth,Standard_DC16as_v5,reserved_1y,NA,0.678425,USD,Azure Retail Prices API,2025-12-18T04:46:11.938775 +AZURE,uaenorth,Standard_DC16as_v5,reserved_3y,NA,0.50879,USD,Azure Retail Prices API,2025-12-18T04:46:11.938780 +AZURE,uaenorth,Standard_DC16as_v5,spot,NA,0.160018,USD,Azure Retail Prices API,2025-12-18T04:46:10.470266 +AZURE,uaenorth,Standard_DC2ads_v6,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:46:10.471157 +AZURE,uaenorth,Standard_DC2ads_v6,reserved_1y,NA,0.082991,USD,Azure Retail Prices API,2025-12-18T04:46:11.938510 +AZURE,uaenorth,Standard_DC2ads_v6,reserved_3y,NA,0.053425,USD,Azure Retail Prices API,2025-12-18T04:46:11.938514 +AZURE,uaenorth,Standard_DC2ads_v6,spot,NA,0.026057,USD,Azure Retail Prices API,2025-12-18T04:46:10.469941 +AZURE,uaenorth,Standard_DC32ads_v5,on_demand,NA,2.03,USD,Azure Retail Prices API,2025-12-18T04:46:10.470866 +AZURE,uaenorth,Standard_DC32ads_v5,reserved_1y,NA,1.624315,USD,Azure Retail Prices API,2025-12-18T04:46:11.938148 +AZURE,uaenorth,Standard_DC32ads_v5,reserved_3y,NA,1.218227,USD,Azure Retail Prices API,2025-12-18T04:46:11.938153 +AZURE,uaenorth,Standard_DC32ads_v5,spot,NA,0.383061,USD,Azure Retail Prices API,2025-12-18T04:46:10.471098 +AZURE,uaenorth,Standard_DC32ads_v6,on_demand,NA,2.25,USD,Azure Retail Prices API,2025-12-18T04:46:10.471722 +AZURE,uaenorth,Standard_DC32ads_v6,reserved_1y,NA,1.327283,USD,Azure Retail Prices API,2025-12-18T04:46:11.939520 +AZURE,uaenorth,Standard_DC32ads_v6,reserved_3y,NA,0.854833,USD,Azure Retail Prices API,2025-12-18T04:46:11.939525 +AZURE,uaenorth,Standard_DC32ads_v6,spot,NA,0.4158,USD,Azure Retail Prices API,2025-12-18T04:46:10.470394 +AZURE,uaenorth,Standard_DC32as_v5,on_demand,NA,1.696,USD,Azure Retail Prices API,2025-12-18T04:46:10.469881 +AZURE,uaenorth,Standard_DC32as_v5,reserved_1y,NA,1.356849,USD,Azure Retail Prices API,2025-12-18T04:46:11.936583 +AZURE,uaenorth,Standard_DC32as_v5,reserved_3y,NA,1.017618,USD,Azure Retail Prices API,2025-12-18T04:46:11.936588 +AZURE,uaenorth,Standard_DC32as_v5,spot,NA,0.320035,USD,Azure Retail Prices API,2025-12-18T04:46:10.471049 +AZURE,uaenorth,Standard_DC48ads_v5,on_demand,NA,3.046,USD,Azure Retail Prices API,2025-12-18T04:46:10.469976 +AZURE,uaenorth,Standard_DC48ads_v5,reserved_1y,NA,2.43653,USD,Azure Retail Prices API,2025-12-18T04:46:11.936686 +AZURE,uaenorth,Standard_DC48ads_v5,reserved_3y,NA,1.827359,USD,Azure Retail Prices API,2025-12-18T04:46:11.936691 +AZURE,uaenorth,Standard_DC48ads_v5,spot,NA,0.57478,USD,Azure Retail Prices API,2025-12-18T04:46:10.470584 +AZURE,uaenorth,Standard_DC48ads_v6,on_demand,NA,3.374,USD,Azure Retail Prices API,2025-12-18T04:46:10.470536 +AZURE,uaenorth,Standard_DC48ads_v6,reserved_1y,NA,1.990868,USD,Azure Retail Prices API,2025-12-18T04:46:11.937623 +AZURE,uaenorth,Standard_DC48ads_v6,reserved_3y,NA,1.282268,USD,Azure Retail Prices API,2025-12-18T04:46:11.937627 +AZURE,uaenorth,Standard_DC48ads_v6,spot,NA,0.623515,USD,Azure Retail Prices API,2025-12-18T04:46:10.471434 +AZURE,uaenorth,Standard_DC48as_v5,on_demand,NA,2.544,USD,Azure Retail Prices API,2025-12-18T04:46:10.471440 +AZURE,uaenorth,Standard_DC48as_v5,reserved_1y,NA,2.03516,USD,Azure Retail Prices API,2025-12-18T04:46:11.938881 +AZURE,uaenorth,Standard_DC48as_v5,reserved_3y,NA,1.526408,USD,Azure Retail Prices API,2025-12-18T04:46:11.938886 +AZURE,uaenorth,Standard_DC48as_v5,spot,NA,0.480053,USD,Azure Retail Prices API,2025-12-18T04:46:10.471059 +AZURE,uaenorth,Standard_DC4ads_v5,on_demand,NA,0.254,USD,Azure Retail Prices API,2025-12-18T04:46:10.471284 +AZURE,uaenorth,Standard_DC4ads_v5,reserved_1y,NA,0.203082,USD,Azure Retail Prices API,2025-12-18T04:46:11.938673 +AZURE,uaenorth,Standard_DC4ads_v5,reserved_3y,NA,0.152283,USD,Azure Retail Prices API,2025-12-18T04:46:11.938678 +AZURE,uaenorth,Standard_DC4ads_v5,spot,NA,0.04793,USD,Azure Retail Prices API,2025-12-18T04:46:10.471023 +AZURE,uaenorth,Standard_DC4ads_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:46:10.469887 +AZURE,uaenorth,Standard_DC4ads_v6,reserved_1y,NA,0.165868,USD,Azure Retail Prices API,2025-12-18T04:46:11.936593 +AZURE,uaenorth,Standard_DC4ads_v6,reserved_3y,NA,0.106849,USD,Azure Retail Prices API,2025-12-18T04:46:11.936598 +AZURE,uaenorth,Standard_DC4ads_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:46:10.470373 +AZURE,uaenorth,Standard_DC4as_v5,on_demand,NA,0.212,USD,Azure Retail Prices API,2025-12-18T04:46:10.470441 +AZURE,uaenorth,Standard_DC4as_v5,reserved_1y,NA,0.169635,USD,Azure Retail Prices API,2025-12-18T04:46:11.937461 +AZURE,uaenorth,Standard_DC4as_v5,reserved_3y,NA,0.127207,USD,Azure Retail Prices API,2025-12-18T04:46:11.937466 +AZURE,uaenorth,Standard_DC4as_v5,spot,NA,0.040004,USD,Azure Retail Prices API,2025-12-18T04:46:10.470387 +AZURE,uaenorth,Standard_DC64ads_v5,on_demand,NA,4.061,USD,Azure Retail Prices API,2025-12-18T04:46:10.470540 +AZURE,uaenorth,Standard_DC64ads_v5,reserved_1y,NA,3.24863,USD,Azure Retail Prices API,2025-12-18T04:46:11.937633 +AZURE,uaenorth,Standard_DC64ads_v5,reserved_3y,NA,2.436492,USD,Azure Retail Prices API,2025-12-18T04:46:11.937638 +AZURE,uaenorth,Standard_DC64ads_v5,spot,NA,0.766311,USD,Azure Retail Prices API,2025-12-18T04:46:10.471613 +AZURE,uaenorth,Standard_DC64ads_v6,on_demand,NA,4.499,USD,Azure Retail Prices API,2025-12-18T04:46:10.471638 +AZURE,uaenorth,Standard_DC64ads_v6,reserved_1y,NA,2.654566,USD,Azure Retail Prices API,2025-12-18T04:46:11.939293 +AZURE,uaenorth,Standard_DC64ads_v6,reserved_3y,NA,1.709703,USD,Azure Retail Prices API,2025-12-18T04:46:11.939298 +AZURE,uaenorth,Standard_DC64ads_v6,spot,NA,0.831415,USD,Azure Retail Prices API,2025-12-18T04:46:10.471663 +AZURE,uaenorth,Standard_DC64as_v5,on_demand,NA,3.392,USD,Azure Retail Prices API,2025-12-18T04:46:10.470303 +AZURE,uaenorth,Standard_DC64as_v5,reserved_1y,NA,2.713584,USD,Azure Retail Prices API,2025-12-18T04:46:11.937232 +AZURE,uaenorth,Standard_DC64as_v5,reserved_3y,NA,2.035198,USD,Azure Retail Prices API,2025-12-18T04:46:11.937237 +AZURE,uaenorth,Standard_DC64as_v5,spot,NA,0.64007,USD,Azure Retail Prices API,2025-12-18T04:46:10.470351 +AZURE,uaenorth,Standard_DC8ads_v5,on_demand,NA,0.508,USD,Azure Retail Prices API,2025-12-18T04:46:10.470021 +AZURE,uaenorth,Standard_DC8ads_v5,reserved_1y,NA,0.40605,USD,Azure Retail Prices API,2025-12-18T04:46:11.936798 +AZURE,uaenorth,Standard_DC8ads_v5,reserved_3y,NA,0.304566,USD,Azure Retail Prices API,2025-12-18T04:46:11.936802 +AZURE,uaenorth,Standard_DC8ads_v5,spot,NA,0.09586,USD,Azure Retail Prices API,2025-12-18T04:46:10.470624 +AZURE,uaenorth,Standard_DC8ads_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:46:10.471359 +AZURE,uaenorth,Standard_DC8ads_v6,reserved_1y,NA,0.331849,USD,Azure Retail Prices API,2025-12-18T04:46:11.938785 +AZURE,uaenorth,Standard_DC8ads_v6,reserved_3y,NA,0.213699,USD,Azure Retail Prices API,2025-12-18T04:46:11.938789 +AZURE,uaenorth,Standard_DC8ads_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:46:10.470016 +AZURE,uaenorth,Standard_DC8as_v5,on_demand,NA,0.424,USD,Azure Retail Prices API,2025-12-18T04:46:10.470260 +AZURE,uaenorth,Standard_DC8as_v5,reserved_1y,NA,0.339155,USD,Azure Retail Prices API,2025-12-18T04:46:11.937181 +AZURE,uaenorth,Standard_DC8as_v5,reserved_3y,NA,0.254414,USD,Azure Retail Prices API,2025-12-18T04:46:11.937186 +AZURE,uaenorth,Standard_DC8as_v5,spot,NA,0.080009,USD,Azure Retail Prices API,2025-12-18T04:46:10.470606 +AZURE,uaenorth,Standard_DC96ads_v5,on_demand,NA,6.091,USD,Azure Retail Prices API,2025-12-18T04:46:10.470481 +AZURE,uaenorth,Standard_DC96ads_v5,reserved_1y,NA,4.872945,USD,Azure Retail Prices API,2025-12-18T04:46:11.937546 +AZURE,uaenorth,Standard_DC96ads_v5,reserved_3y,NA,3.654718,USD,Azure Retail Prices API,2025-12-18T04:46:11.937551 +AZURE,uaenorth,Standard_DC96ads_v5,spot,NA,1.149372,USD,Azure Retail Prices API,2025-12-18T04:46:10.471176 +AZURE,uaenorth,Standard_DC96ads_v6,on_demand,NA,6.749,USD,Azure Retail Prices API,2025-12-18T04:46:10.470940 +AZURE,uaenorth,Standard_DC96ads_v6,reserved_1y,NA,3.981735,USD,Azure Retail Prices API,2025-12-18T04:46:11.938229 +AZURE,uaenorth,Standard_DC96ads_v6,reserved_3y,NA,2.564536,USD,Azure Retail Prices API,2025-12-18T04:46:11.938233 +AZURE,uaenorth,Standard_DC96ads_v6,spot,NA,1.247215,USD,Azure Retail Prices API,2025-12-18T04:46:10.469884 +AZURE,uaenorth,Standard_DC96as_v5,on_demand,NA,5.088,USD,Azure Retail Prices API,2025-12-18T04:46:10.470525 +AZURE,uaenorth,Standard_DC96as_v5,reserved_1y,NA,4.070434,USD,Azure Retail Prices API,2025-12-18T04:46:11.937613 +AZURE,uaenorth,Standard_DC96as_v5,reserved_3y,NA,3.052816,USD,Azure Retail Prices API,2025-12-18T04:46:11.937617 +AZURE,uaenorth,Standard_DC96as_v5,spot,NA,0.960106,USD,Azure Retail Prices API,2025-12-18T04:46:10.470872 +AZURE,uaenorth,Standard_DS12_v2,on_demand,NA,0.4081,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495466 +AZURE,uaenorth,Standard_DS12_v2,reserved_1y,NA,0.24486,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495474 +AZURE,uaenorth,Standard_DS12_v2,reserved_3y,NA,0.16324,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495478 +AZURE,uaenorth,Standard_DS12_v2,spot,NA,0.12243,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495470 +AZURE,uaenorth,Standard_DS13_v2,on_demand,NA,0.8151,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496354 +AZURE,uaenorth,Standard_DS13_v2,reserved_1y,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496362 +AZURE,uaenorth,Standard_DS13_v2,reserved_3y,NA,0.32604,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496366 +AZURE,uaenorth,Standard_DS13_v2,spot,NA,0.24453,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496358 +AZURE,uaenorth,Standard_DS14_v2,on_demand,NA,1.6302,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497132 +AZURE,uaenorth,Standard_DS14_v2,reserved_1y,NA,0.97812,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497145 +AZURE,uaenorth,Standard_DS14_v2,reserved_3y,NA,0.65208,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497150 +AZURE,uaenorth,Standard_DS14_v2,spot,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497139 +AZURE,uaenorth,Standard_DS15_v2,on_demand,NA,2.0383,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497985 +AZURE,uaenorth,Standard_DS15_v2,reserved_1y,NA,1.22298,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497994 +AZURE,uaenorth,Standard_DS15_v2,reserved_3y,NA,0.81532,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498002 +AZURE,uaenorth,Standard_DS15_v2,spot,NA,0.61149,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497989 +AZURE,uaenorth,Standard_DS1_v2,on_demand,NA,0.0803,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491823 +AZURE,uaenorth,Standard_DS1_v2,reserved_1y,NA,0.04818,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491835 +AZURE,uaenorth,Standard_DS1_v2,reserved_3y,NA,0.03212,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491841 +AZURE,uaenorth,Standard_DS1_v2,spot,NA,0.02409,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491828 +AZURE,uaenorth,Standard_DS2_v2,on_demand,NA,0.1606,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492551 +AZURE,uaenorth,Standard_DS2_v2,reserved_1y,NA,0.09636,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492559 +AZURE,uaenorth,Standard_DS2_v2,reserved_3y,NA,0.06424,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492563 +AZURE,uaenorth,Standard_DS2_v2,spot,NA,0.04818,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492555 +AZURE,uaenorth,Standard_DS3_v2,on_demand,NA,0.3223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493284 +AZURE,uaenorth,Standard_DS3_v2,reserved_1y,NA,0.19338,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493292 +AZURE,uaenorth,Standard_DS3_v2,reserved_3y,NA,0.12892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493296 +AZURE,uaenorth,Standard_DS3_v2,spot,NA,0.09669,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493288 +AZURE,uaenorth,Standard_DS4_v2,on_demand,NA,0.6435,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493985 +AZURE,uaenorth,Standard_DS4_v2,reserved_1y,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493993 +AZURE,uaenorth,Standard_DS4_v2,reserved_3y,NA,0.2574,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493998 +AZURE,uaenorth,Standard_DS4_v2,spot,NA,0.19305,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493989 +AZURE,uaenorth,Standard_DS5_v2,on_demand,NA,1.287,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494699 +AZURE,uaenorth,Standard_DS5_v2,reserved_1y,NA,0.7722,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494707 +AZURE,uaenorth,Standard_DS5_v2,reserved_3y,NA,0.5148,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494711 +AZURE,uaenorth,Standard_DS5_v2,spot,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494703 +AZURE,uaenorth,Standard_E128ds_v6,on_demand,NA,12.872,USD,Azure Retail Prices API,2025-12-18T04:46:10.471164 +AZURE,uaenorth,Standard_E128ds_v6,reserved_1y,NA,7.980479,USD,Azure Retail Prices API,2025-12-18T04:46:11.938518 +AZURE,uaenorth,Standard_E128ds_v6,reserved_3y,NA,5.019939,USD,Azure Retail Prices API,2025-12-18T04:46:11.938523 +AZURE,uaenorth,Standard_E128ds_v6,spot,NA,2.378746,USD,Azure Retail Prices API,2025-12-18T04:46:10.471601 +AZURE,uaenorth,Standard_E16_v3,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:46:10.470370 +AZURE,uaenorth,Standard_E16_v3,reserved_1y,NA,0.711301,USD,Azure Retail Prices API,2025-12-18T04:46:11.937346 +AZURE,uaenorth,Standard_E16_v3,reserved_3y,NA,0.477549,USD,Azure Retail Prices API,2025-12-18T04:46:11.937351 +AZURE,uaenorth,Standard_E16_v3,spot,NA,0.224213,USD,Azure Retail Prices API,2025-12-18T04:46:10.471265 +AZURE,uaenorth,Standard_E16a_v4,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:10.470629 +AZURE,uaenorth,Standard_E16a_v4,reserved_1y,NA,0.732078,USD,Azure Retail Prices API,2025-12-18T04:46:11.937752 +AZURE,uaenorth,Standard_E16a_v4,reserved_3y,NA,0.471499,USD,Azure Retail Prices API,2025-12-18T04:46:11.937756 +AZURE,uaenorth,Standard_E16a_v4,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:10.470797 +AZURE,uaenorth,Standard_E16ads_v5,on_demand,NA,1.287,USD,Azure Retail Prices API,2025-12-18T04:46:10.469987 +AZURE,uaenorth,Standard_E16ads_v5,reserved_1y,NA,0.759475,USD,Azure Retail Prices API,2025-12-18T04:46:11.936705 +AZURE,uaenorth,Standard_E16ads_v5,reserved_3y,NA,0.489117,USD,Azure Retail Prices API,2025-12-18T04:46:11.936710 +AZURE,uaenorth,Standard_E16ads_v5,spot,NA,0.237838,USD,Azure Retail Prices API,2025-12-18T04:46:10.470132 +AZURE,uaenorth,Standard_E16ads_v6,on_demand,NA,1.43,USD,Azure Retail Prices API,2025-12-18T04:46:10.470706 +AZURE,uaenorth,Standard_E16ads_v6,reserved_1y,NA,0.84395,USD,Azure Retail Prices API,2025-12-18T04:46:11.937860 +AZURE,uaenorth,Standard_E16ads_v6,reserved_3y,NA,0.543569,USD,Azure Retail Prices API,2025-12-18T04:46:11.937865 +AZURE,uaenorth,Standard_E16ads_v6,spot,NA,0.264264,USD,Azure Retail Prices API,2025-12-18T04:46:10.470269 +AZURE,uaenorth,Standard_E16as_v4,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:10.470037 +AZURE,uaenorth,Standard_E16as_v4,reserved_1y,NA,0.732078,USD,Azure Retail Prices API,2025-12-18T04:46:11.936838 +AZURE,uaenorth,Standard_E16as_v4,reserved_3y,NA,0.471499,USD,Azure Retail Prices API,2025-12-18T04:46:11.936843 +AZURE,uaenorth,Standard_E16as_v4,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:10.470092 +AZURE,uaenorth,Standard_E16as_v5,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:46:10.470770 +AZURE,uaenorth,Standard_E16as_v5,reserved_1y,NA,0.660845,USD,Azure Retail Prices API,2025-12-18T04:46:11.938010 +AZURE,uaenorth,Standard_E16as_v5,reserved_3y,NA,0.425609,USD,Azure Retail Prices API,2025-12-18T04:46:11.938015 +AZURE,uaenorth,Standard_E16as_v5,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:46:10.470308 +AZURE,uaenorth,Standard_E16d_v4,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:46:10.470579 +AZURE,uaenorth,Standard_E16d_v4,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:46:11.937671 +AZURE,uaenorth,Standard_E16d_v4,reserved_3y,NA,0.529414,USD,Azure Retail Prices API,2025-12-18T04:46:11.937676 +AZURE,uaenorth,Standard_E16d_v4,spot,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:10.471403 +AZURE,uaenorth,Standard_E16ds_v4,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:46:10.470326 +AZURE,uaenorth,Standard_E16ds_v4,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:46:11.937260 +AZURE,uaenorth,Standard_E16ds_v4,reserved_3y,NA,0.529414,USD,Azure Retail Prices API,2025-12-18T04:46:11.937265 +AZURE,uaenorth,Standard_E16ds_v4,spot,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:10.471695 +AZURE,uaenorth,Standard_E16ds_v5,on_demand,NA,1.408,USD,Azure Retail Prices API,2025-12-18T04:46:10.471644 +AZURE,uaenorth,Standard_E16ds_v5,reserved_1y,NA,0.830708,USD,Azure Retail Prices API,2025-12-18T04:46:11.939313 +AZURE,uaenorth,Standard_E16ds_v5,reserved_3y,NA,0.535046,USD,Azure Retail Prices API,2025-12-18T04:46:11.939318 +AZURE,uaenorth,Standard_E16ds_v5,spot,NA,0.260198,USD,Azure Retail Prices API,2025-12-18T04:46:10.471665 +AZURE,uaenorth,Standard_E16ds_v6,on_demand,NA,1.609,USD,Azure Retail Prices API,2025-12-18T04:46:10.470235 +AZURE,uaenorth,Standard_E16ds_v6,reserved_1y,NA,0.997603,USD,Azure Retail Prices API,2025-12-18T04:46:11.937109 +AZURE,uaenorth,Standard_E16ds_v6,reserved_3y,NA,0.627511,USD,Azure Retail Prices API,2025-12-18T04:46:11.937114 +AZURE,uaenorth,Standard_E16ds_v6,spot,NA,0.297343,USD,Azure Retail Prices API,2025-12-18T04:46:10.471345 +AZURE,uaenorth,Standard_E16pds_v6,on_demand,NA,1.142,USD,Azure Retail Prices API,2025-12-18T04:46:10.470323 +AZURE,uaenorth,Standard_E16pds_v6,reserved_1y,NA,0.673973,USD,Azure Retail Prices API,2025-12-18T04:46:11.937251 +AZURE,uaenorth,Standard_E16pds_v6,reserved_3y,NA,0.434094,USD,Azure Retail Prices API,2025-12-18T04:46:11.937256 +AZURE,uaenorth,Standard_E16pds_v6,spot,NA,0.211042,USD,Azure Retail Prices API,2025-12-18T04:46:10.470104 +AZURE,uaenorth,Standard_E16ps_v6,on_demand,NA,0.901,USD,Azure Retail Prices API,2025-12-18T04:46:10.471128 +AZURE,uaenorth,Standard_E16ps_v6,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:46:11.938455 +AZURE,uaenorth,Standard_E16ps_v6,reserved_3y,NA,0.342314,USD,Azure Retail Prices API,2025-12-18T04:46:11.938460 +AZURE,uaenorth,Standard_E16ps_v6,spot,NA,0.166505,USD,Azure Retail Prices API,2025-12-18T04:46:10.471215 +AZURE,uaenorth,Standard_E16s_v3,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:46:10.469935 +AZURE,uaenorth,Standard_E16s_v3,reserved_1y,NA,0.711301,USD,Azure Retail Prices API,2025-12-18T04:46:11.936656 +AZURE,uaenorth,Standard_E16s_v3,reserved_3y,NA,0.477549,USD,Azure Retail Prices API,2025-12-18T04:46:11.936660 +AZURE,uaenorth,Standard_E16s_v3,spot,NA,0.224213,USD,Azure Retail Prices API,2025-12-18T04:46:10.470533 +AZURE,uaenorth,Standard_E16s_v4,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:10.470297 +AZURE,uaenorth,Standard_E16s_v4,reserved_1y,NA,0.729566,USD,Azure Retail Prices API,2025-12-18T04:46:11.937213 +AZURE,uaenorth,Standard_E16s_v4,reserved_3y,NA,0.466553,USD,Azure Retail Prices API,2025-12-18T04:46:11.937218 +AZURE,uaenorth,Standard_E16s_v4,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:10.471362 +AZURE,uaenorth,Standard_E16s_v5,on_demand,NA,1.241,USD,Azure Retail Prices API,2025-12-18T04:46:10.471605 +AZURE,uaenorth,Standard_E16s_v5,reserved_1y,NA,0.732078,USD,Azure Retail Prices API,2025-12-18T04:46:11.939264 +AZURE,uaenorth,Standard_E16s_v5,reserved_3y,NA,0.459094,USD,Azure Retail Prices API,2025-12-18T04:46:11.939268 +AZURE,uaenorth,Standard_E16s_v5,spot,NA,0.229337,USD,Azure Retail Prices API,2025-12-18T04:46:10.470098 +AZURE,uaenorth,Standard_E20a_v4,on_demand,NA,1.551,USD,Azure Retail Prices API,2025-12-18T04:46:10.471178 +AZURE,uaenorth,Standard_E20a_v4,reserved_1y,NA,0.915068,USD,Azure Retail Prices API,2025-12-18T04:46:11.938545 +AZURE,uaenorth,Standard_E20a_v4,reserved_3y,NA,0.589384,USD,Azure Retail Prices API,2025-12-18T04:46:11.938549 +AZURE,uaenorth,Standard_E20a_v4,spot,NA,0.286625,USD,Azure Retail Prices API,2025-12-18T04:46:10.470048 +AZURE,uaenorth,Standard_E20ads_v5,on_demand,NA,2.529,USD,Azure Retail Prices API,2025-12-18T04:46:10.471689 +AZURE,uaenorth,Standard_E20ads_v5,reserved_1y,NA,0.949315,USD,Azure Retail Prices API,2025-12-18T04:46:11.939466 +AZURE,uaenorth,Standard_E20ads_v5,reserved_3y,NA,0.611416,USD,Azure Retail Prices API,2025-12-18T04:46:11.939471 +AZURE,uaenorth,Standard_E20ads_v5,spot,NA,0.297343,USD,Azure Retail Prices API,2025-12-18T04:46:10.470987 +AZURE,uaenorth,Standard_E20ads_v6,on_demand,NA,1.788,USD,Azure Retail Prices API,2025-12-18T04:46:10.471334 +AZURE,uaenorth,Standard_E20ads_v6,reserved_1y,NA,1.054909,USD,Azure Retail Prices API,2025-12-18T04:46:11.938755 +AZURE,uaenorth,Standard_E20ads_v6,reserved_3y,NA,0.679452,USD,Azure Retail Prices API,2025-12-18T04:46:11.938760 +AZURE,uaenorth,Standard_E20ads_v6,spot,NA,0.330422,USD,Azure Retail Prices API,2025-12-18T04:46:10.471411 +AZURE,uaenorth,Standard_E20as_v4,on_demand,NA,1.551,USD,Azure Retail Prices API,2025-12-18T04:46:10.471020 +AZURE,uaenorth,Standard_E20as_v4,reserved_1y,NA,0.915068,USD,Azure Retail Prices API,2025-12-18T04:46:11.938356 +AZURE,uaenorth,Standard_E20as_v4,reserved_3y,NA,0.589384,USD,Azure Retail Prices API,2025-12-18T04:46:11.938360 +AZURE,uaenorth,Standard_E20as_v4,spot,NA,0.286625,USD,Azure Retail Prices API,2025-12-18T04:46:10.470543 +AZURE,uaenorth,Standard_E20as_v5,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:46:10.470460 +AZURE,uaenorth,Standard_E20as_v5,reserved_1y,NA,0.826027,USD,Azure Retail Prices API,2025-12-18T04:46:11.937511 +AZURE,uaenorth,Standard_E20as_v5,reserved_3y,NA,0.532002,USD,Azure Retail Prices API,2025-12-18T04:46:11.937515 +AZURE,uaenorth,Standard_E20as_v5,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:46:10.470043 +AZURE,uaenorth,Standard_E20d_v4,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:46:10.470869 +AZURE,uaenorth,Standard_E20d_v4,reserved_1y,NA,1.034817,USD,Azure Retail Prices API,2025-12-18T04:46:11.938158 +AZURE,uaenorth,Standard_E20d_v4,reserved_3y,NA,0.66172,USD,Azure Retail Prices API,2025-12-18T04:46:11.938162 +AZURE,uaenorth,Standard_E20d_v4,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:46:10.471145 +AZURE,uaenorth,Standard_E20ds_v4,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:46:10.471470 +AZURE,uaenorth,Standard_E20ds_v4,reserved_1y,NA,1.034817,USD,Azure Retail Prices API,2025-12-18T04:46:11.938939 +AZURE,uaenorth,Standard_E20ds_v4,reserved_3y,NA,0.66172,USD,Azure Retail Prices API,2025-12-18T04:46:11.938944 +AZURE,uaenorth,Standard_E20ds_v4,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:46:10.470363 +AZURE,uaenorth,Standard_E20ds_v5,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:46:10.471169 +AZURE,uaenorth,Standard_E20ds_v5,reserved_1y,NA,1.038356,USD,Azure Retail Prices API,2025-12-18T04:46:11.938527 +AZURE,uaenorth,Standard_E20ds_v5,reserved_3y,NA,0.668798,USD,Azure Retail Prices API,2025-12-18T04:46:11.938531 +AZURE,uaenorth,Standard_E20ds_v5,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:46:10.470688 +AZURE,uaenorth,Standard_E20ds_v6,on_demand,NA,2.011,USD,Azure Retail Prices API,2025-12-18T04:46:10.470274 +AZURE,uaenorth,Standard_E20ds_v6,reserved_1y,NA,1.246918,USD,Azure Retail Prices API,2025-12-18T04:46:11.937191 +AZURE,uaenorth,Standard_E20ds_v6,reserved_3y,NA,0.784361,USD,Azure Retail Prices API,2025-12-18T04:46:11.937195 +AZURE,uaenorth,Standard_E20ds_v6,spot,NA,0.371633,USD,Azure Retail Prices API,2025-12-18T04:46:10.470040 +AZURE,uaenorth,Standard_E20s_v4,on_demand,NA,1.55,USD,Azure Retail Prices API,2025-12-18T04:46:10.470745 +AZURE,uaenorth,Standard_E20s_v4,reserved_1y,NA,0.9121,USD,Azure Retail Prices API,2025-12-18T04:46:11.937963 +AZURE,uaenorth,Standard_E20s_v4,reserved_3y,NA,0.583143,USD,Azure Retail Prices API,2025-12-18T04:46:11.937967 +AZURE,uaenorth,Standard_E20s_v4,spot,NA,0.28644,USD,Azure Retail Prices API,2025-12-18T04:46:10.471545 +AZURE,uaenorth,Standard_E20s_v5,on_demand,NA,1.551,USD,Azure Retail Prices API,2025-12-18T04:46:10.470653 +AZURE,uaenorth,Standard_E20s_v5,reserved_1y,NA,0.915068,USD,Azure Retail Prices API,2025-12-18T04:46:11.937771 +AZURE,uaenorth,Standard_E20s_v5,reserved_3y,NA,0.573858,USD,Azure Retail Prices API,2025-12-18T04:46:11.937775 +AZURE,uaenorth,Standard_E20s_v5,spot,NA,0.286625,USD,Azure Retail Prices API,2025-12-18T04:46:10.470551 +AZURE,uaenorth,Standard_E2_v3,on_demand,NA,0.151,USD,Azure Retail Prices API,2025-12-18T04:46:10.470885 +AZURE,uaenorth,Standard_E2_v3,reserved_1y,NA,0.088927,USD,Azure Retail Prices API,2025-12-18T04:46:11.938176 +AZURE,uaenorth,Standard_E2_v3,reserved_3y,NA,0.059703,USD,Azure Retail Prices API,2025-12-18T04:46:11.938181 +AZURE,uaenorth,Standard_E2_v3,spot,NA,0.02798,USD,Azure Retail Prices API,2025-12-18T04:46:10.470513 +AZURE,uaenorth,Standard_E2ads_v6,on_demand,NA,0.179,USD,Azure Retail Prices API,2025-12-18T04:46:10.471467 +AZURE,uaenorth,Standard_E2ads_v6,reserved_1y,NA,0.105479,USD,Azure Retail Prices API,2025-12-18T04:46:11.938929 +AZURE,uaenorth,Standard_E2ads_v6,reserved_3y,NA,0.06796,USD,Azure Retail Prices API,2025-12-18T04:46:11.938934 +AZURE,uaenorth,Standard_E2ads_v6,spot,NA,0.033079,USD,Azure Retail Prices API,2025-12-18T04:46:10.470475 +AZURE,uaenorth,Standard_E2ds_v5,on_demand,NA,0.176,USD,Azure Retail Prices API,2025-12-18T04:46:10.470435 +AZURE,uaenorth,Standard_E2ds_v5,reserved_1y,NA,0.103881,USD,Azure Retail Prices API,2025-12-18T04:46:11.937442 +AZURE,uaenorth,Standard_E2ds_v5,reserved_3y,NA,0.066895,USD,Azure Retail Prices API,2025-12-18T04:46:11.937447 +AZURE,uaenorth,Standard_E2ds_v5,spot,NA,0.032525,USD,Azure Retail Prices API,2025-12-18T04:46:10.469950 +AZURE,uaenorth,Standard_E2ds_v6,on_demand,NA,0.201,USD,Azure Retail Prices API,2025-12-18T04:46:10.470953 +AZURE,uaenorth,Standard_E2ds_v6,reserved_1y,NA,0.124658,USD,Azure Retail Prices API,2025-12-18T04:46:11.938264 +AZURE,uaenorth,Standard_E2ds_v6,reserved_3y,NA,0.078425,USD,Azure Retail Prices API,2025-12-18T04:46:11.938269 +AZURE,uaenorth,Standard_E2ds_v6,spot,NA,0.037145,USD,Azure Retail Prices API,2025-12-18T04:46:10.471492 +AZURE,uaenorth,Standard_E2pds_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:46:10.471554 +AZURE,uaenorth,Standard_E2pds_v6,reserved_1y,NA,0.084247,USD,Azure Retail Prices API,2025-12-18T04:46:11.939046 +AZURE,uaenorth,Standard_E2pds_v6,reserved_3y,NA,0.054262,USD,Azure Retail Prices API,2025-12-18T04:46:11.939051 +AZURE,uaenorth,Standard_E2pds_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:46:10.470682 +AZURE,uaenorth,Standard_E32_v3,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:46:10.470709 +AZURE,uaenorth,Standard_E32_v3,reserved_1y,NA,1.422489,USD,Azure Retail Prices API,2025-12-18T04:46:11.937870 +AZURE,uaenorth,Standard_E32_v3,reserved_3y,NA,0.955099,USD,Azure Retail Prices API,2025-12-18T04:46:11.937875 +AZURE,uaenorth,Standard_E32_v3,spot,NA,0.448241,USD,Azure Retail Prices API,2025-12-18T04:46:10.470977 +AZURE,uaenorth,Standard_E32a_v4,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:10.470342 +AZURE,uaenorth,Standard_E32a_v4,reserved_1y,NA,1.464155,USD,Azure Retail Prices API,2025-12-18T04:46:11.937308 +AZURE,uaenorth,Standard_E32a_v4,reserved_3y,NA,0.942998,USD,Azure Retail Prices API,2025-12-18T04:46:11.937313 +AZURE,uaenorth,Standard_E32a_v4,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:10.470158 +AZURE,uaenorth,Standard_E32ads_v5,on_demand,NA,4.046,USD,Azure Retail Prices API,2025-12-18T04:46:10.470399 +AZURE,uaenorth,Standard_E32ads_v5,reserved_1y,NA,1.51895,USD,Azure Retail Prices API,2025-12-18T04:46:11.938473 +AZURE,uaenorth,Standard_E32ads_v5,reserved_3y,NA,0.978272,USD,Azure Retail Prices API,2025-12-18T04:46:11.938478 +AZURE,uaenorth,Standard_E32ads_v5,spot,NA,0.475675,USD,Azure Retail Prices API,2025-12-18T04:46:10.471671 +AZURE,uaenorth,Standard_E32ads_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:46:10.470255 +AZURE,uaenorth,Standard_E32ads_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:46:11.937172 +AZURE,uaenorth,Standard_E32ads_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:46:11.937176 +AZURE,uaenorth,Standard_E32ads_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:46:10.470070 +AZURE,uaenorth,Standard_E32as_v4,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:10.470971 +AZURE,uaenorth,Standard_E32as_v4,reserved_1y,NA,1.464155,USD,Azure Retail Prices API,2025-12-18T04:46:11.938283 +AZURE,uaenorth,Standard_E32as_v4,reserved_3y,NA,0.942998,USD,Azure Retail Prices API,2025-12-18T04:46:11.938287 +AZURE,uaenorth,Standard_E32as_v4,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:10.471431 +AZURE,uaenorth,Standard_E32as_v5,on_demand,NA,3.712,USD,Azure Retail Prices API,2025-12-18T04:46:10.470748 +AZURE,uaenorth,Standard_E32as_v5,reserved_1y,NA,1.321575,USD,Azure Retail Prices API,2025-12-18T04:46:11.939496 +AZURE,uaenorth,Standard_E32as_v5,reserved_3y,NA,0.851218,USD,Azure Retail Prices API,2025-12-18T04:46:11.939501 +AZURE,uaenorth,Standard_E32as_v5,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:46:10.470454 +AZURE,uaenorth,Standard_E32d_v4,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:46:10.470336 +AZURE,uaenorth,Standard_E32d_v4,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:46:11.937280 +AZURE,uaenorth,Standard_E32d_v4,reserved_3y,NA,1.058828,USD,Azure Retail Prices API,2025-12-18T04:46:11.937284 +AZURE,uaenorth,Standard_E32d_v4,spot,NA,0.520397,USD,Azure Retail Prices API,2025-12-18T04:46:10.470203 +AZURE,uaenorth,Standard_E32ds_v4,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:46:10.471320 +AZURE,uaenorth,Standard_E32ds_v4,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:46:11.938735 +AZURE,uaenorth,Standard_E32ds_v4,reserved_3y,NA,1.058828,USD,Azure Retail Prices API,2025-12-18T04:46:11.938741 +AZURE,uaenorth,Standard_E32ds_v4,spot,NA,0.520397,USD,Azure Retail Prices API,2025-12-18T04:46:10.470223 +AZURE,uaenorth,Standard_E32ds_v5,on_demand,NA,2.816,USD,Azure Retail Prices API,2025-12-18T04:46:10.470244 +AZURE,uaenorth,Standard_E32ds_v5,reserved_1y,NA,1.661416,USD,Azure Retail Prices API,2025-12-18T04:46:11.937133 +AZURE,uaenorth,Standard_E32ds_v5,reserved_3y,NA,1.070091,USD,Azure Retail Prices API,2025-12-18T04:46:11.937138 +AZURE,uaenorth,Standard_E32ds_v5,spot,NA,0.520397,USD,Azure Retail Prices API,2025-12-18T04:46:10.471026 +AZURE,uaenorth,Standard_E32ds_v6,on_demand,NA,3.218,USD,Azure Retail Prices API,2025-12-18T04:46:10.470478 +AZURE,uaenorth,Standard_E32ds_v6,reserved_1y,NA,1.995091,USD,Azure Retail Prices API,2025-12-18T04:46:11.937538 +AZURE,uaenorth,Standard_E32ds_v6,reserved_3y,NA,1.254985,USD,Azure Retail Prices API,2025-12-18T04:46:11.937542 +AZURE,uaenorth,Standard_E32ds_v6,spot,NA,0.594686,USD,Azure Retail Prices API,2025-12-18T04:46:10.470180 +AZURE,uaenorth,Standard_E32pds_v6,on_demand,NA,2.285,USD,Azure Retail Prices API,2025-12-18T04:46:10.471668 +AZURE,uaenorth,Standard_E32pds_v6,reserved_1y,NA,1.348059,USD,Azure Retail Prices API,2025-12-18T04:46:11.939352 +AZURE,uaenorth,Standard_E32pds_v6,reserved_3y,NA,0.868227,USD,Azure Retail Prices API,2025-12-18T04:46:11.939357 +AZURE,uaenorth,Standard_E32pds_v6,spot,NA,0.422268,USD,Azure Retail Prices API,2025-12-18T04:46:10.470286 +AZURE,uaenorth,Standard_E32ps_v6,on_demand,NA,1.802,USD,Azure Retail Prices API,2025-12-18T04:46:10.471279 +AZURE,uaenorth,Standard_E32ps_v6,reserved_1y,NA,1.0629,USD,Azure Retail Prices API,2025-12-18T04:46:11.938664 +AZURE,uaenorth,Standard_E32ps_v6,reserved_3y,NA,0.684589,USD,Azure Retail Prices API,2025-12-18T04:46:11.938669 +AZURE,uaenorth,Standard_E32ps_v6,spot,NA,0.33301,USD,Azure Retail Prices API,2025-12-18T04:46:10.470258 +AZURE,uaenorth,Standard_E32s_v3,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:46:10.471302 +AZURE,uaenorth,Standard_E32s_v3,reserved_1y,NA,1.422489,USD,Azure Retail Prices API,2025-12-18T04:46:11.938709 +AZURE,uaenorth,Standard_E32s_v3,reserved_3y,NA,0.955099,USD,Azure Retail Prices API,2025-12-18T04:46:11.938713 +AZURE,uaenorth,Standard_E32s_v3,spot,NA,0.448241,USD,Azure Retail Prices API,2025-12-18T04:46:10.470557 +AZURE,uaenorth,Standard_E32s_v4,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:10.471185 +AZURE,uaenorth,Standard_E32s_v4,reserved_1y,NA,1.459132,USD,Azure Retail Prices API,2025-12-18T04:46:11.938553 +AZURE,uaenorth,Standard_E32s_v4,reserved_3y,NA,0.933067,USD,Azure Retail Prices API,2025-12-18T04:46:11.938558 +AZURE,uaenorth,Standard_E32s_v4,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:10.470832 +AZURE,uaenorth,Standard_E32s_v5,on_demand,NA,2.482,USD,Azure Retail Prices API,2025-12-18T04:46:10.471716 +AZURE,uaenorth,Standard_E32s_v5,reserved_1y,NA,1.464155,USD,Azure Retail Prices API,2025-12-18T04:46:11.939506 +AZURE,uaenorth,Standard_E32s_v5,reserved_3y,NA,0.918189,USD,Azure Retail Prices API,2025-12-18T04:46:11.939511 +AZURE,uaenorth,Standard_E32s_v5,spot,NA,0.458674,USD,Azure Retail Prices API,2025-12-18T04:46:10.470283 +AZURE,uaenorth,Standard_E48a_v4,on_demand,NA,3.722,USD,Azure Retail Prices API,2025-12-18T04:46:10.470712 +AZURE,uaenorth,Standard_E48a_v4,reserved_1y,NA,2.196233,USD,Azure Retail Prices API,2025-12-18T04:46:11.937880 +AZURE,uaenorth,Standard_E48a_v4,reserved_3y,NA,1.414498,USD,Azure Retail Prices API,2025-12-18T04:46:11.937884 +AZURE,uaenorth,Standard_E48a_v4,spot,NA,0.687826,USD,Azure Retail Prices API,2025-12-18T04:46:10.470860 +AZURE,uaenorth,Standard_E48ads_v5,on_demand,NA,6.07,USD,Azure Retail Prices API,2025-12-18T04:46:10.470357 +AZURE,uaenorth,Standard_E48ads_v5,reserved_1y,NA,2.278311,USD,Azure Retail Prices API,2025-12-18T04:46:11.939008 +AZURE,uaenorth,Standard_E48ads_v5,reserved_3y,NA,1.46739,USD,Azure Retail Prices API,2025-12-18T04:46:11.939013 +AZURE,uaenorth,Standard_E48ads_v5,spot,NA,0.713698,USD,Azure Retail Prices API,2025-12-18T04:46:10.470081 +AZURE,uaenorth,Standard_E48ads_v6,on_demand,NA,4.291,USD,Azure Retail Prices API,2025-12-18T04:46:10.470124 +AZURE,uaenorth,Standard_E48ads_v6,reserved_1y,NA,2.531849,USD,Azure Retail Prices API,2025-12-18T04:46:11.936940 +AZURE,uaenorth,Standard_E48ads_v6,reserved_3y,NA,1.63067,USD,Azure Retail Prices API,2025-12-18T04:46:11.936944 +AZURE,uaenorth,Standard_E48ads_v6,spot,NA,0.792977,USD,Azure Retail Prices API,2025-12-18T04:46:10.470329 +AZURE,uaenorth,Standard_E48as_v4,on_demand,NA,3.722,USD,Azure Retail Prices API,2025-12-18T04:46:10.471595 +AZURE,uaenorth,Standard_E48as_v4,reserved_1y,NA,2.196233,USD,Azure Retail Prices API,2025-12-18T04:46:11.939244 +AZURE,uaenorth,Standard_E48as_v4,reserved_3y,NA,1.414498,USD,Azure Retail Prices API,2025-12-18T04:46:11.939249 +AZURE,uaenorth,Standard_E48as_v4,spot,NA,0.687826,USD,Azure Retail Prices API,2025-12-18T04:46:10.470403 +AZURE,uaenorth,Standard_E48as_v5,on_demand,NA,5.568,USD,Azure Retail Prices API,2025-12-18T04:46:10.469990 +AZURE,uaenorth,Standard_E48as_v5,reserved_1y,NA,1.98242,USD,Azure Retail Prices API,2025-12-18T04:46:11.938411 +AZURE,uaenorth,Standard_E48as_v5,reserved_3y,NA,1.276788,USD,Azure Retail Prices API,2025-12-18T04:46:11.938415 +AZURE,uaenorth,Standard_E48as_v5,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:46:10.470662 +AZURE,uaenorth,Standard_E48d_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:10.470376 +AZURE,uaenorth,Standard_E48d_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:46:11.937356 +AZURE,uaenorth,Standard_E48d_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:46:11.937360 +AZURE,uaenorth,Standard_E48d_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:10.469985 +AZURE,uaenorth,Standard_E48ds_v4,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:10.469999 +AZURE,uaenorth,Standard_E48ds_v4,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:46:11.936737 +AZURE,uaenorth,Standard_E48ds_v4,reserved_3y,NA,1.588242,USD,Azure Retail Prices API,2025-12-18T04:46:11.936741 +AZURE,uaenorth,Standard_E48ds_v4,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:10.470294 +AZURE,uaenorth,Standard_E48ds_v5,on_demand,NA,4.224,USD,Azure Retail Prices API,2025-12-18T04:46:10.470587 +AZURE,uaenorth,Standard_E48ds_v5,reserved_1y,NA,2.492123,USD,Azure Retail Prices API,2025-12-18T04:46:11.937692 +AZURE,uaenorth,Standard_E48ds_v5,reserved_3y,NA,1.605137,USD,Azure Retail Prices API,2025-12-18T04:46:11.937697 +AZURE,uaenorth,Standard_E48ds_v5,spot,NA,0.780595,USD,Azure Retail Prices API,2025-12-18T04:46:10.471611 +AZURE,uaenorth,Standard_E48ds_v6,on_demand,NA,4.827,USD,Azure Retail Prices API,2025-12-18T04:46:10.470409 +AZURE,uaenorth,Standard_E48ds_v6,reserved_1y,NA,2.992694,USD,Azure Retail Prices API,2025-12-18T04:46:11.937395 +AZURE,uaenorth,Standard_E48ds_v6,reserved_3y,NA,1.882496,USD,Azure Retail Prices API,2025-12-18T04:46:11.937399 +AZURE,uaenorth,Standard_E48ds_v6,spot,NA,0.89203,USD,Azure Retail Prices API,2025-12-18T04:46:10.470882 +AZURE,uaenorth,Standard_E48pds_v6,on_demand,NA,3.427,USD,Azure Retail Prices API,2025-12-18T04:46:10.470076 +AZURE,uaenorth,Standard_E48pds_v6,reserved_1y,NA,2.022032,USD,Azure Retail Prices API,2025-12-18T04:46:11.936880 +AZURE,uaenorth,Standard_E48pds_v6,reserved_3y,NA,1.302321,USD,Azure Retail Prices API,2025-12-18T04:46:11.936885 +AZURE,uaenorth,Standard_E48pds_v6,spot,NA,0.63331,USD,Azure Retail Prices API,2025-12-18T04:46:10.471459 +AZURE,uaenorth,Standard_E48ps_v6,on_demand,NA,2.702,USD,Azure Retail Prices API,2025-12-18T04:46:10.470018 +AZURE,uaenorth,Standard_E48ps_v6,reserved_1y,NA,1.594406,USD,Azure Retail Prices API,2025-12-18T04:46:11.936788 +AZURE,uaenorth,Standard_E48ps_v6,reserved_3y,NA,1.026903,USD,Azure Retail Prices API,2025-12-18T04:46:11.936793 +AZURE,uaenorth,Standard_E48ps_v6,spot,NA,0.49933,USD,Azure Retail Prices API,2025-12-18T04:46:10.471110 +AZURE,uaenorth,Standard_E48s_v4,on_demand,NA,3.722,USD,Azure Retail Prices API,2025-12-18T04:46:10.471340 +AZURE,uaenorth,Standard_E48s_v4,reserved_1y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:46:11.938765 +AZURE,uaenorth,Standard_E48s_v4,reserved_3y,NA,1.399619,USD,Azure Retail Prices API,2025-12-18T04:46:11.938770 +AZURE,uaenorth,Standard_E48s_v4,spot,NA,0.687826,USD,Azure Retail Prices API,2025-12-18T04:46:10.470990 +AZURE,uaenorth,Standard_E48s_v5,on_demand,NA,3.722,USD,Azure Retail Prices API,2025-12-18T04:46:10.471374 +AZURE,uaenorth,Standard_E48s_v5,reserved_1y,NA,2.196233,USD,Azure Retail Prices API,2025-12-18T04:46:11.938794 +AZURE,uaenorth,Standard_E48s_v5,reserved_3y,NA,1.377283,USD,Azure Retail Prices API,2025-12-18T04:46:11.938798 +AZURE,uaenorth,Standard_E48s_v5,spot,NA,0.687826,USD,Azure Retail Prices API,2025-12-18T04:46:10.471368 +AZURE,uaenorth,Standard_E4_v3,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:46:10.470492 +AZURE,uaenorth,Standard_E4_v3,reserved_1y,NA,0.177854,USD,Azure Retail Prices API,2025-12-18T04:46:11.937565 +AZURE,uaenorth,Standard_E4_v3,reserved_3y,NA,0.119406,USD,Azure Retail Prices API,2025-12-18T04:46:11.937570 +AZURE,uaenorth,Standard_E4_v3,spot,NA,0.055961,USD,Azure Retail Prices API,2025-12-18T04:46:10.470221 +AZURE,uaenorth,Standard_E4a_v4,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:10.470993 +AZURE,uaenorth,Standard_E4a_v4,reserved_1y,NA,0.182991,USD,Azure Retail Prices API,2025-12-18T04:46:11.938301 +AZURE,uaenorth,Standard_E4a_v4,reserved_3y,NA,0.117884,USD,Azure Retail Prices API,2025-12-18T04:46:11.938306 +AZURE,uaenorth,Standard_E4a_v4,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:10.471328 +AZURE,uaenorth,Standard_E4ads_v5,on_demand,NA,0.506,USD,Azure Retail Prices API,2025-12-18T04:46:10.470396 +AZURE,uaenorth,Standard_E4ads_v5,reserved_1y,NA,0.18984,USD,Azure Retail Prices API,2025-12-18T04:46:11.938813 +AZURE,uaenorth,Standard_E4ads_v5,reserved_3y,NA,0.122298,USD,Azure Retail Prices API,2025-12-18T04:46:11.938818 +AZURE,uaenorth,Standard_E4ads_v5,spot,NA,0.059506,USD,Azure Retail Prices API,2025-12-18T04:46:10.470277 +AZURE,uaenorth,Standard_E4ads_v6,on_demand,NA,0.358,USD,Azure Retail Prices API,2025-12-18T04:46:10.470736 +AZURE,uaenorth,Standard_E4ads_v6,reserved_1y,NA,0.210959,USD,Azure Retail Prices API,2025-12-18T04:46:11.937932 +AZURE,uaenorth,Standard_E4ads_v6,reserved_3y,NA,0.135883,USD,Azure Retail Prices API,2025-12-18T04:46:11.937937 +AZURE,uaenorth,Standard_E4ads_v6,spot,NA,0.066158,USD,Azure Retail Prices API,2025-12-18T04:46:10.470314 +AZURE,uaenorth,Standard_E4as_v4,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:10.471443 +AZURE,uaenorth,Standard_E4as_v4,reserved_1y,NA,0.182991,USD,Azure Retail Prices API,2025-12-18T04:46:11.938891 +AZURE,uaenorth,Standard_E4as_v4,reserved_3y,NA,0.117884,USD,Azure Retail Prices API,2025-12-18T04:46:11.938895 +AZURE,uaenorth,Standard_E4as_v4,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:10.471296 +AZURE,uaenorth,Standard_E4as_v5,on_demand,NA,0.464,USD,Azure Retail Prices API,2025-12-18T04:46:10.470194 +AZURE,uaenorth,Standard_E4as_v5,reserved_1y,NA,0.165183,USD,Azure Retail Prices API,2025-12-18T04:46:11.939333 +AZURE,uaenorth,Standard_E4as_v5,reserved_3y,NA,0.106393,USD,Azure Retail Prices API,2025-12-18T04:46:11.939337 +AZURE,uaenorth,Standard_E4as_v5,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:46:10.470621 +AZURE,uaenorth,Standard_E4d_v4,on_demand,NA,0.352,USD,Azure Retail Prices API,2025-12-18T04:46:10.469917 +AZURE,uaenorth,Standard_E4d_v4,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:46:11.936620 +AZURE,uaenorth,Standard_E4d_v4,reserved_3y,NA,0.132344,USD,Azure Retail Prices API,2025-12-18T04:46:11.936624 +AZURE,uaenorth,Standard_E4d_v4,spot,NA,0.06505,USD,Azure Retail Prices API,2025-12-18T04:46:10.471117 +AZURE,uaenorth,Standard_E4ds_v4,on_demand,NA,0.352,USD,Azure Retail Prices API,2025-12-18T04:46:10.471172 +AZURE,uaenorth,Standard_E4ds_v4,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:46:11.938536 +AZURE,uaenorth,Standard_E4ds_v4,reserved_3y,NA,0.132344,USD,Azure Retail Prices API,2025-12-18T04:46:11.938540 +AZURE,uaenorth,Standard_E4ds_v4,spot,NA,0.06505,USD,Azure Retail Prices API,2025-12-18T04:46:10.471323 +AZURE,uaenorth,Standard_E4ds_v5,on_demand,NA,0.352,USD,Azure Retail Prices API,2025-12-18T04:46:10.470943 +AZURE,uaenorth,Standard_E4ds_v5,reserved_1y,NA,0.207648,USD,Azure Retail Prices API,2025-12-18T04:46:11.938238 +AZURE,uaenorth,Standard_E4ds_v5,reserved_3y,NA,0.133752,USD,Azure Retail Prices API,2025-12-18T04:46:11.938242 +AZURE,uaenorth,Standard_E4ds_v5,spot,NA,0.06505,USD,Azure Retail Prices API,2025-12-18T04:46:10.471473 +AZURE,uaenorth,Standard_E4ds_v6,on_demand,NA,0.402,USD,Azure Retail Prices API,2025-12-18T04:46:10.470612 +AZURE,uaenorth,Standard_E4ds_v6,reserved_1y,NA,0.249429,USD,Azure Retail Prices API,2025-12-18T04:46:11.937712 +AZURE,uaenorth,Standard_E4ds_v6,reserved_3y,NA,0.156887,USD,Azure Retail Prices API,2025-12-18T04:46:11.937717 +AZURE,uaenorth,Standard_E4ds_v6,spot,NA,0.07429,USD,Azure Retail Prices API,2025-12-18T04:46:10.470241 +AZURE,uaenorth,Standard_E4pds_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:46:10.470757 +AZURE,uaenorth,Standard_E4pds_v6,reserved_1y,NA,0.168493,USD,Azure Retail Prices API,2025-12-18T04:46:11.937972 +AZURE,uaenorth,Standard_E4pds_v6,reserved_3y,NA,0.108524,USD,Azure Retail Prices API,2025-12-18T04:46:11.937977 +AZURE,uaenorth,Standard_E4pds_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:46:10.471113 +AZURE,uaenorth,Standard_E4ps_v6,on_demand,NA,0.225,USD,Azure Retail Prices API,2025-12-18T04:46:10.471287 +AZURE,uaenorth,Standard_E4ps_v6,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:46:11.938682 +AZURE,uaenorth,Standard_E4ps_v6,reserved_3y,NA,0.085578,USD,Azure Retail Prices API,2025-12-18T04:46:11.938687 +AZURE,uaenorth,Standard_E4ps_v6,spot,NA,0.04158,USD,Azure Retail Prices API,2025-12-18T04:46:10.471343 +AZURE,uaenorth,Standard_E4s_v4,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:10.469877 +AZURE,uaenorth,Standard_E4s_v4,reserved_1y,NA,0.18242,USD,Azure Retail Prices API,2025-12-18T04:46:11.936574 +AZURE,uaenorth,Standard_E4s_v4,reserved_3y,NA,0.116629,USD,Azure Retail Prices API,2025-12-18T04:46:11.936579 +AZURE,uaenorth,Standard_E4s_v4,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:10.470779 +AZURE,uaenorth,Standard_E4s_v5,on_demand,NA,0.31,USD,Azure Retail Prices API,2025-12-18T04:46:10.470078 +AZURE,uaenorth,Standard_E4s_v5,reserved_1y,NA,0.182991,USD,Azure Retail Prices API,2025-12-18T04:46:11.936891 +AZURE,uaenorth,Standard_E4s_v5,reserved_3y,NA,0.114764,USD,Azure Retail Prices API,2025-12-18T04:46:11.936896 +AZURE,uaenorth,Standard_E4s_v5,spot,NA,0.057288,USD,Azure Retail Prices API,2025-12-18T04:46:10.471188 +AZURE,uaenorth,Standard_E64_v3,on_demand,NA,4.355,USD,Azure Retail Prices API,2025-12-18T04:46:10.471200 +AZURE,uaenorth,Standard_E64_v3,reserved_1y,NA,2.844977,USD,Azure Retail Prices API,2025-12-18T04:46:11.938572 +AZURE,uaenorth,Standard_E64_v3,reserved_3y,NA,1.910198,USD,Azure Retail Prices API,2025-12-18T04:46:11.938577 +AZURE,uaenorth,Standard_E64_v3,spot,NA,0.806982,USD,Azure Retail Prices API,2025-12-18T04:46:10.470923 +AZURE,uaenorth,Standard_E64a_v4,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:10.470626 +AZURE,uaenorth,Standard_E64a_v4,reserved_1y,NA,2.928311,USD,Azure Retail Prices API,2025-12-18T04:46:11.937742 +AZURE,uaenorth,Standard_E64a_v4,reserved_3y,NA,1.886035,USD,Azure Retail Prices API,2025-12-18T04:46:11.937747 +AZURE,uaenorth,Standard_E64a_v4,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:10.471503 +AZURE,uaenorth,Standard_E64ads_v5,on_demand,NA,5.149,USD,Azure Retail Prices API,2025-12-18T04:46:10.470130 +AZURE,uaenorth,Standard_E64ads_v5,reserved_1y,NA,3.037785,USD,Azure Retail Prices API,2025-12-18T04:46:11.936949 +AZURE,uaenorth,Standard_E64ads_v5,reserved_3y,NA,1.956545,USD,Azure Retail Prices API,2025-12-18T04:46:11.936954 +AZURE,uaenorth,Standard_E64ads_v5,spot,NA,0.951535,USD,Azure Retail Prices API,2025-12-18T04:46:10.471151 +AZURE,uaenorth,Standard_E64ads_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:46:10.470937 +AZURE,uaenorth,Standard_E64ads_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:46:11.938220 +AZURE,uaenorth,Standard_E64ads_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:46:11.938225 +AZURE,uaenorth,Standard_E64ads_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:46:10.471543 +AZURE,uaenorth,Standard_E64as_v4,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:10.470166 +AZURE,uaenorth,Standard_E64as_v4,reserved_1y,NA,2.928311,USD,Azure Retail Prices API,2025-12-18T04:46:11.937021 +AZURE,uaenorth,Standard_E64as_v4,reserved_3y,NA,1.886035,USD,Azure Retail Prices API,2025-12-18T04:46:11.937026 +AZURE,uaenorth,Standard_E64as_v4,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:10.470567 +AZURE,uaenorth,Standard_E64as_v5,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:46:10.470593 +AZURE,uaenorth,Standard_E64as_v5,reserved_1y,NA,2.643151,USD,Azure Retail Prices API,2025-12-18T04:46:11.937702 +AZURE,uaenorth,Standard_E64as_v5,reserved_3y,NA,1.702397,USD,Azure Retail Prices API,2025-12-18T04:46:11.937707 +AZURE,uaenorth,Standard_E64as_v5,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:46:10.470751 +AZURE,uaenorth,Standard_E64d_v4,on_demand,NA,5.632,USD,Azure Retail Prices API,2025-12-18T04:46:10.470354 +AZURE,uaenorth,Standard_E64d_v4,reserved_1y,NA,3.311644,USD,Azure Retail Prices API,2025-12-18T04:46:11.937328 +AZURE,uaenorth,Standard_E64d_v4,reserved_3y,NA,2.117618,USD,Azure Retail Prices API,2025-12-18T04:46:11.937333 +AZURE,uaenorth,Standard_E64d_v4,spot,NA,1.040794,USD,Azure Retail Prices API,2025-12-18T04:46:10.470143 +AZURE,uaenorth,Standard_E64ds_v4,on_demand,NA,5.632,USD,Azure Retail Prices API,2025-12-18T04:46:10.470697 +AZURE,uaenorth,Standard_E64ds_v4,reserved_1y,NA,3.311644,USD,Azure Retail Prices API,2025-12-18T04:46:11.937840 +AZURE,uaenorth,Standard_E64ds_v4,reserved_3y,NA,2.117618,USD,Azure Retail Prices API,2025-12-18T04:46:11.937845 +AZURE,uaenorth,Standard_E64ds_v4,spot,NA,1.040794,USD,Azure Retail Prices API,2025-12-18T04:46:10.470857 +AZURE,uaenorth,Standard_E64ds_v5,on_demand,NA,5.632,USD,Azure Retail Prices API,2025-12-18T04:46:10.471562 +AZURE,uaenorth,Standard_E64ds_v5,reserved_1y,NA,3.322831,USD,Azure Retail Prices API,2025-12-18T04:46:11.939184 +AZURE,uaenorth,Standard_E64ds_v5,reserved_3y,NA,2.140145,USD,Azure Retail Prices API,2025-12-18T04:46:11.939189 +AZURE,uaenorth,Standard_E64ds_v5,spot,NA,1.040794,USD,Azure Retail Prices API,2025-12-18T04:46:10.470087 +AZURE,uaenorth,Standard_E64ds_v6,on_demand,NA,6.436,USD,Azure Retail Prices API,2025-12-18T04:46:10.470300 +AZURE,uaenorth,Standard_E64ds_v6,reserved_1y,NA,3.990183,USD,Azure Retail Prices API,2025-12-18T04:46:11.937222 +AZURE,uaenorth,Standard_E64ds_v6,reserved_3y,NA,2.50997,USD,Azure Retail Prices API,2025-12-18T04:46:11.937227 +AZURE,uaenorth,Standard_E64ds_v6,spot,NA,1.189373,USD,Azure Retail Prices API,2025-12-18T04:46:10.470289 +AZURE,uaenorth,Standard_E64pds_v6,on_demand,NA,4.57,USD,Azure Retail Prices API,2025-12-18T04:46:10.470730 +AZURE,uaenorth,Standard_E64pds_v6,reserved_1y,NA,2.696119,USD,Azure Retail Prices API,2025-12-18T04:46:11.937913 +AZURE,uaenorth,Standard_E64pds_v6,reserved_3y,NA,1.736454,USD,Azure Retail Prices API,2025-12-18T04:46:11.937918 +AZURE,uaenorth,Standard_E64pds_v6,spot,NA,0.844536,USD,Azure Retail Prices API,2025-12-18T04:46:10.470146 +AZURE,uaenorth,Standard_E64ps_v6,on_demand,NA,3.603,USD,Azure Retail Prices API,2025-12-18T04:46:10.471626 +AZURE,uaenorth,Standard_E64ps_v6,reserved_1y,NA,2.125913,USD,Azure Retail Prices API,2025-12-18T04:46:11.939283 +AZURE,uaenorth,Standard_E64ps_v6,reserved_3y,NA,1.369216,USD,Azure Retail Prices API,2025-12-18T04:46:11.939288 +AZURE,uaenorth,Standard_E64ps_v6,spot,NA,0.665834,USD,Azure Retail Prices API,2025-12-18T04:46:10.471371 +AZURE,uaenorth,Standard_E64s_v3,on_demand,NA,4.355,USD,Azure Retail Prices API,2025-12-18T04:46:10.471557 +AZURE,uaenorth,Standard_E64s_v3,reserved_1y,NA,2.844977,USD,Azure Retail Prices API,2025-12-18T04:46:11.939056 +AZURE,uaenorth,Standard_E64s_v3,reserved_3y,NA,1.910198,USD,Azure Retail Prices API,2025-12-18T04:46:11.939166 +AZURE,uaenorth,Standard_E64s_v3,spot,NA,0.806982,USD,Azure Retail Prices API,2025-12-18T04:46:10.470305 +AZURE,uaenorth,Standard_E64s_v4,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:10.470996 +AZURE,uaenorth,Standard_E64s_v4,reserved_1y,NA,2.918379,USD,Azure Retail Prices API,2025-12-18T04:46:11.938310 +AZURE,uaenorth,Standard_E64s_v4,reserved_3y,NA,1.866172,USD,Azure Retail Prices API,2025-12-18T04:46:11.938315 +AZURE,uaenorth,Standard_E64s_v4,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:10.470110 +AZURE,uaenorth,Standard_E64s_v5,on_demand,NA,4.963,USD,Azure Retail Prices API,2025-12-18T04:46:10.470155 +AZURE,uaenorth,Standard_E64s_v5,reserved_1y,NA,2.928311,USD,Azure Retail Prices API,2025-12-18T04:46:11.937001 +AZURE,uaenorth,Standard_E64s_v5,reserved_3y,NA,1.836377,USD,Azure Retail Prices API,2025-12-18T04:46:11.937006 +AZURE,uaenorth,Standard_E64s_v5,spot,NA,0.917162,USD,Azure Retail Prices API,2025-12-18T04:46:10.470599 +AZURE,uaenorth,Standard_E80ids_v4,on_demand,NA,7.04,USD,Azure Retail Prices API,2025-12-18T04:46:10.470734 +AZURE,uaenorth,Standard_E80ids_v4,reserved_1y,NA,4.139269,USD,Azure Retail Prices API,2025-12-18T04:46:11.937922 +AZURE,uaenorth,Standard_E80ids_v4,reserved_3y,NA,2.64688,USD,Azure Retail Prices API,2025-12-18T04:46:11.937927 +AZURE,uaenorth,Standard_E80ids_v4,spot,NA,1.300992,USD,Azure Retail Prices API,2025-12-18T04:46:10.470487 +AZURE,uaenorth,Standard_E80is_v4,on_demand,NA,6.2,USD,Azure Retail Prices API,2025-12-18T04:46:10.469926 +AZURE,uaenorth,Standard_E80is_v4,reserved_1y,NA,3.648402,USD,Azure Retail Prices API,2025-12-18T04:46:11.936629 +AZURE,uaenorth,Standard_E80is_v4,reserved_3y,NA,2.332572,USD,Azure Retail Prices API,2025-12-18T04:46:11.936641 +AZURE,uaenorth,Standard_E80is_v4,spot,NA,1.14576,USD,Azure Retail Prices API,2025-12-18T04:46:10.471437 +AZURE,uaenorth,Standard_E8_v3,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:46:10.469996 +AZURE,uaenorth,Standard_E8_v3,reserved_1y,NA,0.355594,USD,Azure Retail Prices API,2025-12-18T04:46:11.936726 +AZURE,uaenorth,Standard_E8_v3,reserved_3y,NA,0.238775,USD,Azure Retail Prices API,2025-12-18T04:46:11.936732 +AZURE,uaenorth,Standard_E8_v3,spot,NA,0.112106,USD,Azure Retail Prices API,2025-12-18T04:46:10.471635 +AZURE,uaenorth,Standard_E8a_v4,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:10.470776 +AZURE,uaenorth,Standard_E8a_v4,reserved_1y,NA,0.365982,USD,Azure Retail Prices API,2025-12-18T04:46:11.938030 +AZURE,uaenorth,Standard_E8a_v4,reserved_3y,NA,0.235769,USD,Azure Retail Prices API,2025-12-18T04:46:11.938035 +AZURE,uaenorth,Standard_E8a_v4,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:10.470632 +AZURE,uaenorth,Standard_E8ads_v5,on_demand,NA,1.012,USD,Azure Retail Prices API,2025-12-18T04:46:10.470054 +AZURE,uaenorth,Standard_E8ads_v5,reserved_1y,NA,0.37968,USD,Azure Retail Prices API,2025-12-18T04:46:11.938988 +AZURE,uaenorth,Standard_E8ads_v5,reserved_3y,NA,0.244559,USD,Azure Retail Prices API,2025-12-18T04:46:11.938992 +AZURE,uaenorth,Standard_E8ads_v5,spot,NA,0.119011,USD,Azure Retail Prices API,2025-12-18T04:46:10.470121 +AZURE,uaenorth,Standard_E8ads_v6,on_demand,NA,0.715,USD,Azure Retail Prices API,2025-12-18T04:46:10.470339 +AZURE,uaenorth,Standard_E8ads_v6,reserved_1y,NA,0.421918,USD,Azure Retail Prices API,2025-12-18T04:46:11.937289 +AZURE,uaenorth,Standard_E8ads_v6,reserved_3y,NA,0.271766,USD,Azure Retail Prices API,2025-12-18T04:46:11.937294 +AZURE,uaenorth,Standard_E8ads_v6,spot,NA,0.132132,USD,Azure Retail Prices API,2025-12-18T04:46:10.470089 +AZURE,uaenorth,Standard_E8as_v4,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:10.471482 +AZURE,uaenorth,Standard_E8as_v4,reserved_1y,NA,0.365982,USD,Azure Retail Prices API,2025-12-18T04:46:11.938958 +AZURE,uaenorth,Standard_E8as_v4,reserved_3y,NA,0.235769,USD,Azure Retail Prices API,2025-12-18T04:46:11.938963 +AZURE,uaenorth,Standard_E8as_v4,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:10.470724 +AZURE,uaenorth,Standard_E8as_v5,on_demand,NA,0.928,USD,Azure Retail Prices API,2025-12-18T04:46:10.470026 +AZURE,uaenorth,Standard_E8as_v5,reserved_1y,NA,0.330365,USD,Azure Retail Prices API,2025-12-18T04:46:11.937385 +AZURE,uaenorth,Standard_E8as_v5,reserved_3y,NA,0.212785,USD,Azure Retail Prices API,2025-12-18T04:46:11.937390 +AZURE,uaenorth,Standard_E8as_v5,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:46:10.469902 +AZURE,uaenorth,Standard_E8d_v4,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:46:10.471653 +AZURE,uaenorth,Standard_E8d_v4,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:46:11.939342 +AZURE,uaenorth,Standard_E8d_v4,reserved_3y,NA,0.264688,USD,Azure Retail Prices API,2025-12-18T04:46:11.939347 +AZURE,uaenorth,Standard_E8d_v4,spot,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:10.471540 +AZURE,uaenorth,Standard_E8ds_v4,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:46:10.470332 +AZURE,uaenorth,Standard_E8ds_v4,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:46:11.937270 +AZURE,uaenorth,Standard_E8ds_v4,reserved_3y,NA,0.264688,USD,Azure Retail Prices API,2025-12-18T04:46:11.937275 +AZURE,uaenorth,Standard_E8ds_v4,spot,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:10.471708 +AZURE,uaenorth,Standard_E8ds_v5,on_demand,NA,0.704,USD,Azure Retail Prices API,2025-12-18T04:46:10.470570 +AZURE,uaenorth,Standard_E8ds_v5,reserved_1y,NA,0.415411,USD,Azure Retail Prices API,2025-12-18T04:46:11.937652 +AZURE,uaenorth,Standard_E8ds_v5,reserved_3y,NA,0.267504,USD,Azure Retail Prices API,2025-12-18T04:46:11.937657 +AZURE,uaenorth,Standard_E8ds_v5,spot,NA,0.130099,USD,Azure Retail Prices API,2025-12-18T04:46:10.470819 +AZURE,uaenorth,Standard_E8ds_v6,on_demand,NA,0.804,USD,Azure Retail Prices API,2025-12-18T04:46:10.470742 +AZURE,uaenorth,Standard_E8ds_v6,reserved_1y,NA,0.498744,USD,Azure Retail Prices API,2025-12-18T04:46:11.937951 +AZURE,uaenorth,Standard_E8ds_v6,reserved_3y,NA,0.313737,USD,Azure Retail Prices API,2025-12-18T04:46:11.937956 +AZURE,uaenorth,Standard_E8ds_v6,spot,NA,0.148579,USD,Azure Retail Prices API,2025-12-18T04:46:10.471182 +AZURE,uaenorth,Standard_E8pds_v6,on_demand,NA,0.571,USD,Azure Retail Prices API,2025-12-18T04:46:10.471232 +AZURE,uaenorth,Standard_E8pds_v6,reserved_1y,NA,0.336986,USD,Azure Retail Prices API,2025-12-18T04:46:11.938590 +AZURE,uaenorth,Standard_E8pds_v6,reserved_3y,NA,0.217047,USD,Azure Retail Prices API,2025-12-18T04:46:11.938595 +AZURE,uaenorth,Standard_E8pds_v6,spot,NA,0.105521,USD,Azure Retail Prices API,2025-12-18T04:46:10.471616 +AZURE,uaenorth,Standard_E8ps_v6,on_demand,NA,0.45,USD,Azure Retail Prices API,2025-12-18T04:46:10.471416 +AZURE,uaenorth,Standard_E8ps_v6,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:46:11.938862 +AZURE,uaenorth,Standard_E8ps_v6,reserved_3y,NA,0.171157,USD,Azure Retail Prices API,2025-12-18T04:46:11.938867 +AZURE,uaenorth,Standard_E8ps_v6,spot,NA,0.08316,USD,Azure Retail Prices API,2025-12-18T04:46:10.471450 +AZURE,uaenorth,Standard_E8s_v3,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:46:10.470186 +AZURE,uaenorth,Standard_E8s_v3,reserved_1y,NA,0.355594,USD,Azure Retail Prices API,2025-12-18T04:46:11.937060 +AZURE,uaenorth,Standard_E8s_v3,reserved_3y,NA,0.238775,USD,Azure Retail Prices API,2025-12-18T04:46:11.937065 +AZURE,uaenorth,Standard_E8s_v3,spot,NA,0.112106,USD,Azure Retail Prices API,2025-12-18T04:46:10.470980 +AZURE,uaenorth,Standard_E8s_v4,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:10.471456 +AZURE,uaenorth,Standard_E8s_v4,reserved_1y,NA,0.36484,USD,Azure Retail Prices API,2025-12-18T04:46:11.938910 +AZURE,uaenorth,Standard_E8s_v4,reserved_3y,NA,0.233257,USD,Azure Retail Prices API,2025-12-18T04:46:11.938915 +AZURE,uaenorth,Standard_E8s_v4,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:10.471191 +AZURE,uaenorth,Standard_E8s_v5,on_demand,NA,0.62,USD,Azure Retail Prices API,2025-12-18T04:46:10.471293 +AZURE,uaenorth,Standard_E8s_v5,reserved_1y,NA,0.365982,USD,Azure Retail Prices API,2025-12-18T04:46:11.938691 +AZURE,uaenorth,Standard_E8s_v5,reserved_3y,NA,0.229566,USD,Azure Retail Prices API,2025-12-18T04:46:11.938696 +AZURE,uaenorth,Standard_E8s_v5,spot,NA,0.114576,USD,Azure Retail Prices API,2025-12-18T04:46:10.470956 +AZURE,uaenorth,Standard_E96a_v4,on_demand,NA,7.445,USD,Azure Retail Prices API,2025-12-18T04:46:10.471010 +AZURE,uaenorth,Standard_E96a_v4,reserved_1y,NA,4.392466,USD,Azure Retail Prices API,2025-12-18T04:46:11.938347 +AZURE,uaenorth,Standard_E96a_v4,reserved_3y,NA,2.829033,USD,Azure Retail Prices API,2025-12-18T04:46:11.938351 +AZURE,uaenorth,Standard_E96a_v4,spot,NA,1.375836,USD,Azure Retail Prices API,2025-12-18T04:46:10.469906 +AZURE,uaenorth,Standard_E96ads_v5,on_demand,NA,12.139,USD,Azure Retail Prices API,2025-12-18T04:46:10.469955 +AZURE,uaenorth,Standard_E96ads_v5,reserved_1y,NA,4.556735,USD,Azure Retail Prices API,2025-12-18T04:46:11.938001 +AZURE,uaenorth,Standard_E96ads_v5,reserved_3y,NA,2.934817,USD,Azure Retail Prices API,2025-12-18T04:46:11.938005 +AZURE,uaenorth,Standard_E96ads_v5,spot,NA,1.42721,USD,Azure Retail Prices API,2025-12-18T04:46:10.471420 +AZURE,uaenorth,Standard_E96ads_v6,on_demand,NA,8.582,USD,Azure Retail Prices API,2025-12-18T04:46:10.470667 +AZURE,uaenorth,Standard_E96ads_v6,reserved_1y,NA,5.063584,USD,Azure Retail Prices API,2025-12-18T04:46:11.937789 +AZURE,uaenorth,Standard_E96ads_v6,reserved_3y,NA,3.261301,USD,Azure Retail Prices API,2025-12-18T04:46:11.937794 +AZURE,uaenorth,Standard_E96ads_v6,spot,NA,1.585954,USD,Azure Retail Prices API,2025-12-18T04:46:10.470519 +AZURE,uaenorth,Standard_E96as_v4,on_demand,NA,7.445,USD,Azure Retail Prices API,2025-12-18T04:46:10.470974 +AZURE,uaenorth,Standard_E96as_v4,reserved_1y,NA,4.392466,USD,Azure Retail Prices API,2025-12-18T04:46:11.938291 +AZURE,uaenorth,Standard_E96as_v4,reserved_3y,NA,2.829033,USD,Azure Retail Prices API,2025-12-18T04:46:11.938296 +AZURE,uaenorth,Standard_E96as_v4,spot,NA,1.375836,USD,Azure Retail Prices API,2025-12-18T04:46:10.470879 +AZURE,uaenorth,Standard_E96as_v5,on_demand,NA,11.136,USD,Azure Retail Prices API,2025-12-18T04:46:10.470788 +AZURE,uaenorth,Standard_E96as_v5,reserved_1y,NA,3.96484,USD,Azure Retail Prices API,2025-12-18T04:46:11.938599 +AZURE,uaenorth,Standard_E96as_v5,reserved_3y,NA,2.553615,USD,Azure Retail Prices API,2025-12-18T04:46:11.938604 +AZURE,uaenorth,Standard_E96as_v5,spot,NA,1.241856,USD,Azure Retail Prices API,2025-12-18T04:46:10.471013 +AZURE,uaenorth,Standard_E96ds_v5,on_demand,NA,8.448,USD,Azure Retail Prices API,2025-12-18T04:46:10.471241 +AZURE,uaenorth,Standard_E96ds_v5,reserved_1y,NA,4.984361,USD,Azure Retail Prices API,2025-12-18T04:46:11.938636 +AZURE,uaenorth,Standard_E96ds_v5,reserved_3y,NA,3.210236,USD,Azure Retail Prices API,2025-12-18T04:46:11.938641 +AZURE,uaenorth,Standard_E96ds_v5,spot,NA,1.56119,USD,Azure Retail Prices API,2025-12-18T04:46:10.470545 +AZURE,uaenorth,Standard_E96ds_v6,on_demand,NA,9.654,USD,Azure Retail Prices API,2025-12-18T04:46:10.470141 +AZURE,uaenorth,Standard_E96ds_v6,reserved_1y,NA,5.985388,USD,Azure Retail Prices API,2025-12-18T04:46:11.936980 +AZURE,uaenorth,Standard_E96ds_v6,reserved_3y,NA,3.764954,USD,Azure Retail Prices API,2025-12-18T04:46:11.936985 +AZURE,uaenorth,Standard_E96ds_v6,spot,NA,1.784059,USD,Azure Retail Prices API,2025-12-18T04:46:10.469944 +AZURE,uaenorth,Standard_E96pds_v6,on_demand,NA,6.854,USD,Azure Retail Prices API,2025-12-18T04:46:10.471325 +AZURE,uaenorth,Standard_E96pds_v6,reserved_1y,NA,4.044064,USD,Azure Retail Prices API,2025-12-18T04:46:11.938745 +AZURE,uaenorth,Standard_E96pds_v6,reserved_3y,NA,2.60468,USD,Azure Retail Prices API,2025-12-18T04:46:11.938750 +AZURE,uaenorth,Standard_E96pds_v6,spot,NA,1.266619,USD,Azure Retail Prices API,2025-12-18T04:46:10.471592 +AZURE,uaenorth,Standard_E96ps_v6,on_demand,NA,5.405,USD,Azure Retail Prices API,2025-12-18T04:46:10.471101 +AZURE,uaenorth,Standard_E96ps_v6,reserved_1y,NA,3.188813,USD,Azure Retail Prices API,2025-12-18T04:46:11.938429 +AZURE,uaenorth,Standard_E96ps_v6,reserved_3y,NA,2.053805,USD,Azure Retail Prices API,2025-12-18T04:46:11.938433 +AZURE,uaenorth,Standard_E96ps_v6,spot,NA,0.998844,USD,Azure Retail Prices API,2025-12-18T04:46:10.470057 +AZURE,uaenorth,Standard_E96s_v5,on_demand,NA,7.445,USD,Azure Retail Prices API,2025-12-18T04:46:10.471383 +AZURE,uaenorth,Standard_E96s_v5,reserved_1y,NA,4.392466,USD,Azure Retail Prices API,2025-12-18T04:46:11.938824 +AZURE,uaenorth,Standard_E96s_v5,reserved_3y,NA,2.754566,USD,Azure Retail Prices API,2025-12-18T04:46:11.938828 +AZURE,uaenorth,Standard_E96s_v5,spot,NA,1.375836,USD,Azure Retail Prices API,2025-12-18T04:46:10.470432 +AZURE,uaenorth,Standard_EC16ads_v5,on_demand,NA,1.287,USD,Azure Retail Prices API,2025-12-18T04:46:10.471138 +AZURE,uaenorth,Standard_EC16ads_v5,reserved_1y,NA,1.029795,USD,Azure Retail Prices API,2025-12-18T04:46:11.938482 +AZURE,uaenorth,Standard_EC16ads_v5,reserved_3y,NA,0.772336,USD,Azure Retail Prices API,2025-12-18T04:46:11.938487 +AZURE,uaenorth,Standard_EC16ads_v5,spot,NA,0.242857,USD,Azure Retail Prices API,2025-12-18T04:46:10.471194 +AZURE,uaenorth,Standard_EC16ads_v6,on_demand,NA,1.43,USD,Azure Retail Prices API,2025-12-18T04:46:10.470445 +AZURE,uaenorth,Standard_EC16ads_v6,reserved_1y,NA,0.84395,USD,Azure Retail Prices API,2025-12-18T04:46:11.937471 +AZURE,uaenorth,Standard_EC16ads_v6,reserved_3y,NA,0.543569,USD,Azure Retail Prices API,2025-12-18T04:46:11.937475 +AZURE,uaenorth,Standard_EC16ads_v6,spot,NA,0.264264,USD,Azure Retail Prices API,2025-12-18T04:46:10.471255 +AZURE,uaenorth,Standard_EC16as_v5,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:46:10.470501 +AZURE,uaenorth,Standard_EC16as_v5,reserved_1y,NA,0.896005,USD,Azure Retail Prices API,2025-12-18T04:46:11.937585 +AZURE,uaenorth,Standard_EC16as_v5,reserved_3y,NA,0.671994,USD,Azure Retail Prices API,2025-12-18T04:46:11.937589 +AZURE,uaenorth,Standard_EC16as_v5,spot,NA,0.211344,USD,Azure Retail Prices API,2025-12-18T04:46:10.470912 +AZURE,uaenorth,Standard_EC16as_v6,on_demand,NA,1.176,USD,Azure Retail Prices API,2025-12-18T04:46:10.471577 +AZURE,uaenorth,Standard_EC16as_v6,reserved_1y,NA,0.693836,USD,Azure Retail Prices API,2025-12-18T04:46:11.939224 +AZURE,uaenorth,Standard_EC16as_v6,reserved_3y,NA,0.44688,USD,Azure Retail Prices API,2025-12-18T04:46:11.939229 +AZURE,uaenorth,Standard_EC16as_v6,spot,NA,0.217325,USD,Azure Retail Prices API,2025-12-18T04:46:10.470127 +AZURE,uaenorth,Standard_EC20ads_v5,on_demand,NA,1.609,USD,Azure Retail Prices API,2025-12-18T04:46:10.471052 +AZURE,uaenorth,Standard_EC20ads_v5,reserved_1y,NA,1.287215,USD,Azure Retail Prices API,2025-12-18T04:46:11.938392 +AZURE,uaenorth,Standard_EC20ads_v5,reserved_3y,NA,0.965411,USD,Azure Retail Prices API,2025-12-18T04:46:11.938397 +AZURE,uaenorth,Standard_EC20ads_v5,spot,NA,0.303618,USD,Azure Retail Prices API,2025-12-18T04:46:10.470426 +AZURE,uaenorth,Standard_EC20as_v5,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:46:10.471568 +AZURE,uaenorth,Standard_EC20as_v5,reserved_1y,NA,1.119977,USD,Azure Retail Prices API,2025-12-18T04:46:11.939205 +AZURE,uaenorth,Standard_EC20as_v5,reserved_3y,NA,0.839992,USD,Azure Retail Prices API,2025-12-18T04:46:11.939209 +AZURE,uaenorth,Standard_EC20as_v5,spot,NA,0.26418,USD,Azure Retail Prices API,2025-12-18T04:46:10.470406 +AZURE,uaenorth,Standard_EC2ads_v6,on_demand,NA,0.179,USD,Azure Retail Prices API,2025-12-18T04:46:10.471299 +AZURE,uaenorth,Standard_EC2ads_v6,reserved_1y,NA,0.105479,USD,Azure Retail Prices API,2025-12-18T04:46:11.938701 +AZURE,uaenorth,Standard_EC2ads_v6,reserved_3y,NA,0.06796,USD,Azure Retail Prices API,2025-12-18T04:46:11.938705 +AZURE,uaenorth,Standard_EC2ads_v6,spot,NA,0.033079,USD,Azure Retail Prices API,2025-12-18T04:46:10.469952 +AZURE,uaenorth,Standard_EC2as_v6,on_demand,NA,0.147,USD,Azure Retail Prices API,2025-12-18T04:46:10.470834 +AZURE,uaenorth,Standard_EC2as_v6,reserved_1y,NA,0.086758,USD,Azure Retail Prices API,2025-12-18T04:46:11.938112 +AZURE,uaenorth,Standard_EC2as_v6,reserved_3y,NA,0.05586,USD,Azure Retail Prices API,2025-12-18T04:46:11.938116 +AZURE,uaenorth,Standard_EC2as_v6,spot,NA,0.027166,USD,Azure Retail Prices API,2025-12-18T04:46:10.471461 +AZURE,uaenorth,Standard_EC32ads_v5,on_demand,NA,2.574,USD,Azure Retail Prices API,2025-12-18T04:46:10.470379 +AZURE,uaenorth,Standard_EC32ads_v5,reserved_1y,NA,2.059475,USD,Azure Retail Prices API,2025-12-18T04:46:11.937365 +AZURE,uaenorth,Standard_EC32ads_v5,reserved_3y,NA,1.544635,USD,Azure Retail Prices API,2025-12-18T04:46:11.937370 +AZURE,uaenorth,Standard_EC32ads_v5,spot,NA,0.485714,USD,Azure Retail Prices API,2025-12-18T04:46:10.471516 +AZURE,uaenorth,Standard_EC32ads_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:46:10.471598 +AZURE,uaenorth,Standard_EC32ads_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:46:11.939255 +AZURE,uaenorth,Standard_EC32ads_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:46:11.939259 +AZURE,uaenorth,Standard_EC32ads_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:46:10.471548 +AZURE,uaenorth,Standard_EC32as_v5,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:46:10.471533 +AZURE,uaenorth,Standard_EC32as_v5,reserved_1y,NA,1.792009,USD,Azure Retail Prices API,2025-12-18T04:46:11.939028 +AZURE,uaenorth,Standard_EC32as_v5,reserved_3y,NA,1.343988,USD,Azure Retail Prices API,2025-12-18T04:46:11.939033 +AZURE,uaenorth,Standard_EC32as_v5,spot,NA,0.422688,USD,Azure Retail Prices API,2025-12-18T04:46:10.471494 +AZURE,uaenorth,Standard_EC32as_v6,on_demand,NA,2.352,USD,Azure Retail Prices API,2025-12-18T04:46:10.469961 +AZURE,uaenorth,Standard_EC32as_v6,reserved_1y,NA,1.387671,USD,Azure Retail Prices API,2025-12-18T04:46:11.936665 +AZURE,uaenorth,Standard_EC32as_v6,reserved_3y,NA,0.89376,USD,Azure Retail Prices API,2025-12-18T04:46:11.936670 +AZURE,uaenorth,Standard_EC32as_v6,spot,NA,0.43465,USD,Azure Retail Prices API,2025-12-18T04:46:10.471629 +AZURE,uaenorth,Standard_EC48ads_v5,on_demand,NA,3.862,USD,Azure Retail Prices API,2025-12-18T04:46:10.470013 +AZURE,uaenorth,Standard_EC48ads_v5,reserved_1y,NA,3.089269,USD,Azure Retail Prices API,2025-12-18T04:46:11.936777 +AZURE,uaenorth,Standard_EC48ads_v5,reserved_3y,NA,2.316971,USD,Azure Retail Prices API,2025-12-18T04:46:11.936782 +AZURE,uaenorth,Standard_EC48ads_v5,spot,NA,0.728759,USD,Azure Retail Prices API,2025-12-18T04:46:10.471655 +AZURE,uaenorth,Standard_EC48ads_v6,on_demand,NA,4.291,USD,Azure Retail Prices API,2025-12-18T04:46:10.470618 +AZURE,uaenorth,Standard_EC48ads_v6,reserved_1y,NA,2.531849,USD,Azure Retail Prices API,2025-12-18T04:46:11.937732 +AZURE,uaenorth,Standard_EC48ads_v6,reserved_3y,NA,1.63067,USD,Azure Retail Prices API,2025-12-18T04:46:11.937737 +AZURE,uaenorth,Standard_EC48ads_v6,spot,NA,0.792977,USD,Azure Retail Prices API,2025-12-18T04:46:10.470504 +AZURE,uaenorth,Standard_EC48as_v5,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:46:10.470930 +AZURE,uaenorth,Standard_EC48as_v5,reserved_1y,NA,2.688014,USD,Azure Retail Prices API,2025-12-18T04:46:11.938193 +AZURE,uaenorth,Standard_EC48as_v5,reserved_3y,NA,2.015982,USD,Azure Retail Prices API,2025-12-18T04:46:11.938198 +AZURE,uaenorth,Standard_EC48as_v5,spot,NA,0.634032,USD,Azure Retail Prices API,2025-12-18T04:46:10.470854 +AZURE,uaenorth,Standard_EC48as_v6,on_demand,NA,3.528,USD,Azure Retail Prices API,2025-12-18T04:46:10.471386 +AZURE,uaenorth,Standard_EC48as_v6,reserved_1y,NA,2.081507,USD,Azure Retail Prices API,2025-12-18T04:46:11.938833 +AZURE,uaenorth,Standard_EC48as_v6,reserved_3y,NA,1.340639,USD,Azure Retail Prices API,2025-12-18T04:46:11.938837 +AZURE,uaenorth,Standard_EC48as_v6,spot,NA,0.651974,USD,Azure Retail Prices API,2025-12-18T04:46:10.471225 +AZURE,uaenorth,Standard_EC4ads_v5,on_demand,NA,0.322,USD,Azure Retail Prices API,2025-12-18T04:46:10.470507 +AZURE,uaenorth,Standard_EC4ads_v5,reserved_1y,NA,0.25742,USD,Azure Retail Prices API,2025-12-18T04:46:11.937594 +AZURE,uaenorth,Standard_EC4ads_v5,reserved_3y,NA,0.193075,USD,Azure Retail Prices API,2025-12-18T04:46:11.937599 +AZURE,uaenorth,Standard_EC4ads_v5,spot,NA,0.060761,USD,Azure Retail Prices API,2025-12-18T04:46:10.471586 +AZURE,uaenorth,Standard_EC4ads_v6,on_demand,NA,0.358,USD,Azure Retail Prices API,2025-12-18T04:46:10.471647 +AZURE,uaenorth,Standard_EC4ads_v6,reserved_1y,NA,0.210959,USD,Azure Retail Prices API,2025-12-18T04:46:11.939323 +AZURE,uaenorth,Standard_EC4ads_v6,reserved_3y,NA,0.135883,USD,Azure Retail Prices API,2025-12-18T04:46:11.939328 +AZURE,uaenorth,Standard_EC4ads_v6,spot,NA,0.066158,USD,Azure Retail Prices API,2025-12-18T04:46:10.471212 +AZURE,uaenorth,Standard_EC4as_v5,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:46:10.471141 +AZURE,uaenorth,Standard_EC4as_v5,reserved_1y,NA,0.223973,USD,Azure Retail Prices API,2025-12-18T04:46:11.938491 +AZURE,uaenorth,Standard_EC4as_v5,reserved_3y,NA,0.167998,USD,Azure Retail Prices API,2025-12-18T04:46:11.938496 +AZURE,uaenorth,Standard_EC4as_v5,spot,NA,0.052836,USD,Azure Retail Prices API,2025-12-18T04:46:10.470554 +AZURE,uaenorth,Standard_EC4as_v6,on_demand,NA,0.294,USD,Azure Retail Prices API,2025-12-18T04:46:10.471306 +AZURE,uaenorth,Standard_EC4as_v6,reserved_1y,NA,0.173516,USD,Azure Retail Prices API,2025-12-18T04:46:11.938717 +AZURE,uaenorth,Standard_EC4as_v6,reserved_3y,NA,0.11172,USD,Azure Retail Prices API,2025-12-18T04:46:11.938722 +AZURE,uaenorth,Standard_EC4as_v6,spot,NA,0.054331,USD,Azure Retail Prices API,2025-12-18T04:46:10.470051 +AZURE,uaenorth,Standard_EC64ads_v5,on_demand,NA,5.149,USD,Azure Retail Prices API,2025-12-18T04:46:10.470522 +AZURE,uaenorth,Standard_EC64ads_v5,reserved_1y,NA,4.119064,USD,Azure Retail Prices API,2025-12-18T04:46:11.937603 +AZURE,uaenorth,Standard_EC64ads_v5,reserved_3y,NA,3.089269,USD,Azure Retail Prices API,2025-12-18T04:46:11.937608 +AZURE,uaenorth,Standard_EC64ads_v5,spot,NA,0.971616,USD,Azure Retail Prices API,2025-12-18T04:46:10.470169 +AZURE,uaenorth,Standard_EC64ads_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:46:10.470484 +AZURE,uaenorth,Standard_EC64ads_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:46:11.937555 +AZURE,uaenorth,Standard_EC64ads_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:46:11.937560 +AZURE,uaenorth,Standard_EC64ads_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:46:10.470983 +AZURE,uaenorth,Standard_EC64as_v5,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:46:10.470208 +AZURE,uaenorth,Standard_EC64as_v5,reserved_1y,NA,3.584018,USD,Azure Retail Prices API,2025-12-18T04:46:11.937071 +AZURE,uaenorth,Standard_EC64as_v5,reserved_3y,NA,2.688014,USD,Azure Retail Prices API,2025-12-18T04:46:11.937076 +AZURE,uaenorth,Standard_EC64as_v5,spot,NA,0.845376,USD,Azure Retail Prices API,2025-12-18T04:46:10.471348 +AZURE,uaenorth,Standard_EC64as_v6,on_demand,NA,4.704,USD,Azure Retail Prices API,2025-12-18T04:46:10.471309 +AZURE,uaenorth,Standard_EC64as_v6,reserved_1y,NA,2.775342,USD,Azure Retail Prices API,2025-12-18T04:46:11.938726 +AZURE,uaenorth,Standard_EC64as_v6,reserved_3y,NA,1.787519,USD,Azure Retail Prices API,2025-12-18T04:46:11.938731 +AZURE,uaenorth,Standard_EC64as_v6,spot,NA,0.869299,USD,Azure Retail Prices API,2025-12-18T04:46:10.470390 +AZURE,uaenorth,Standard_EC8ads_v5,on_demand,NA,0.644,USD,Azure Retail Prices API,2025-12-18T04:46:10.470149 +AZURE,uaenorth,Standard_EC8ads_v5,reserved_1y,NA,0.51484,USD,Azure Retail Prices API,2025-12-18T04:46:11.936991 +AZURE,uaenorth,Standard_EC8ads_v5,reserved_3y,NA,0.386149,USD,Azure Retail Prices API,2025-12-18T04:46:11.936996 +AZURE,uaenorth,Standard_EC8ads_v5,spot,NA,0.121523,USD,Azure Retail Prices API,2025-12-18T04:46:10.471365 +AZURE,uaenorth,Standard_EC8ads_v6,on_demand,NA,0.715,USD,Azure Retail Prices API,2025-12-18T04:46:10.471620 +AZURE,uaenorth,Standard_EC8ads_v6,reserved_1y,NA,0.421918,USD,Azure Retail Prices API,2025-12-18T04:46:11.939273 +AZURE,uaenorth,Standard_EC8ads_v6,reserved_3y,NA,0.271766,USD,Azure Retail Prices API,2025-12-18T04:46:11.939278 +AZURE,uaenorth,Standard_EC8ads_v6,spot,NA,0.132132,USD,Azure Retail Prices API,2025-12-18T04:46:10.470490 +AZURE,uaenorth,Standard_EC8as_v5,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:46:10.469932 +AZURE,uaenorth,Standard_EC8as_v5,reserved_1y,NA,0.447945,USD,Azure Retail Prices API,2025-12-18T04:46:11.936645 +AZURE,uaenorth,Standard_EC8as_v5,reserved_3y,NA,0.335997,USD,Azure Retail Prices API,2025-12-18T04:46:11.936651 +AZURE,uaenorth,Standard_EC8as_v5,spot,NA,0.105672,USD,Azure Retail Prices API,2025-12-18T04:46:10.470603 +AZURE,uaenorth,Standard_EC8as_v6,on_demand,NA,0.588,USD,Azure Retail Prices API,2025-12-18T04:46:10.470721 +AZURE,uaenorth,Standard_EC8as_v6,reserved_1y,NA,0.346918,USD,Azure Retail Prices API,2025-12-18T04:46:11.937903 +AZURE,uaenorth,Standard_EC8as_v6,reserved_3y,NA,0.22344,USD,Azure Retail Prices API,2025-12-18T04:46:11.937908 +AZURE,uaenorth,Standard_EC8as_v6,spot,NA,0.108662,USD,Azure Retail Prices API,2025-12-18T04:46:10.470927 +AZURE,uaenorth,Standard_EC96ads_v5,on_demand,NA,7.723,USD,Azure Retail Prices API,2025-12-18T04:46:10.470249 +AZURE,uaenorth,Standard_EC96ads_v5,reserved_1y,NA,6.178539,USD,Azure Retail Prices API,2025-12-18T04:46:11.937153 +AZURE,uaenorth,Standard_EC96ads_v5,reserved_3y,NA,4.633904,USD,Azure Retail Prices API,2025-12-18T04:46:11.937158 +AZURE,uaenorth,Standard_EC96ads_v5,spot,NA,1.45733,USD,Azure Retail Prices API,2025-12-18T04:46:10.471632 +AZURE,uaenorth,Standard_EC96ads_v6,on_demand,NA,8.582,USD,Azure Retail Prices API,2025-12-18T04:46:10.471197 +AZURE,uaenorth,Standard_EC96ads_v6,reserved_1y,NA,5.063584,USD,Azure Retail Prices API,2025-12-18T04:46:11.938562 +AZURE,uaenorth,Standard_EC96ads_v6,reserved_3y,NA,3.261301,USD,Azure Retail Prices API,2025-12-18T04:46:11.938567 +AZURE,uaenorth,Standard_EC96ads_v6,spot,NA,1.585954,USD,Azure Retail Prices API,2025-12-18T04:46:10.471674 +AZURE,uaenorth,Standard_EC96as_v5,on_demand,NA,6.72,USD,Azure Retail Prices API,2025-12-18T04:46:10.470561 +AZURE,uaenorth,Standard_EC96as_v5,reserved_1y,NA,5.376027,USD,Azure Retail Prices API,2025-12-18T04:46:11.937643 +AZURE,uaenorth,Standard_EC96as_v5,reserved_3y,NA,4.032002,USD,Azure Retail Prices API,2025-12-18T04:46:11.937647 +AZURE,uaenorth,Standard_EC96as_v5,spot,NA,1.268064,USD,Azure Retail Prices API,2025-12-18T04:46:10.470564 +AZURE,uaenorth,Standard_EC96as_v6,on_demand,NA,7.056,USD,Azure Retail Prices API,2025-12-18T04:46:10.470032 +AZURE,uaenorth,Standard_EC96as_v6,reserved_1y,NA,4.163014,USD,Azure Retail Prices API,2025-12-18T04:46:11.936817 +AZURE,uaenorth,Standard_EC96as_v6,reserved_3y,NA,2.681279,USD,Azure Retail Prices API,2025-12-18T04:46:11.936822 +AZURE,uaenorth,Standard_EC96as_v6,spot,NA,1.303949,USD,Azure Retail Prices API,2025-12-18T04:46:10.470609 +AZURE,uaenorth,Standard_F16,on_demand,NA,1.0164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379587 +AZURE,uaenorth,Standard_F16,reserved_1y,NA,0.60984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379595 +AZURE,uaenorth,Standard_F16,reserved_3y,NA,0.40656,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379599 +AZURE,uaenorth,Standard_F16,spot,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379591 +AZURE,uaenorth,Standard_F16s,on_demand,NA,1.0164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381893 +AZURE,uaenorth,Standard_F16s,reserved_1y,NA,0.60984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381901 +AZURE,uaenorth,Standard_F16s,reserved_3y,NA,0.40656,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381905 +AZURE,uaenorth,Standard_F16s,spot,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381897 +AZURE,uaenorth,Standard_F16s_v2,on_demand,NA,0.8624,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384628 +AZURE,uaenorth,Standard_F16s_v2,reserved_1y,NA,0.51744,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384638 +AZURE,uaenorth,Standard_F16s_v2,reserved_3y,NA,0.34496,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384643 +AZURE,uaenorth,Standard_F16s_v2,spot,NA,0.25872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384633 +AZURE,uaenorth,Standard_F32s_v2,on_demand,NA,1.7248,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385457 +AZURE,uaenorth,Standard_F32s_v2,reserved_1y,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385467 +AZURE,uaenorth,Standard_F32s_v2,reserved_3y,NA,0.68992,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385471 +AZURE,uaenorth,Standard_F32s_v2,spot,NA,0.51744,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385462 +AZURE,uaenorth,Standard_F4,on_demand,NA,0.2541,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378048 +AZURE,uaenorth,Standard_F4,reserved_1y,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378068 +AZURE,uaenorth,Standard_F4,reserved_3y,NA,0.10164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378073 +AZURE,uaenorth,Standard_F4,spot,NA,0.07623,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378052 +AZURE,uaenorth,Standard_F48s_v2,on_demand,NA,2.5872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386213 +AZURE,uaenorth,Standard_F48s_v2,reserved_1y,NA,1.55232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386222 +AZURE,uaenorth,Standard_F48s_v2,reserved_3y,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386228 +AZURE,uaenorth,Standard_F48s_v2,spot,NA,0.77616,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386218 +AZURE,uaenorth,Standard_F4s,on_demand,NA,0.2541,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380353 +AZURE,uaenorth,Standard_F4s,reserved_1y,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380361 +AZURE,uaenorth,Standard_F4s,reserved_3y,NA,0.10164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380365 +AZURE,uaenorth,Standard_F4s,spot,NA,0.07623,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380357 +AZURE,uaenorth,Standard_F4s_v2,on_demand,NA,0.2156,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382962 +AZURE,uaenorth,Standard_F4s_v2,reserved_1y,NA,0.12936,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382971 +AZURE,uaenorth,Standard_F4s_v2,reserved_3y,NA,0.08624,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382976 +AZURE,uaenorth,Standard_F4s_v2,spot,NA,0.06468,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382966 +AZURE,uaenorth,Standard_F64s_v2,on_demand,NA,3.4496,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386984 +AZURE,uaenorth,Standard_F64s_v2,reserved_1y,NA,2.06976,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386992 +AZURE,uaenorth,Standard_F64s_v2,reserved_3y,NA,1.37984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386996 +AZURE,uaenorth,Standard_F64s_v2,spot,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386988 +AZURE,uaenorth,Standard_F72s_v2,on_demand,NA,3.8808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388191 +AZURE,uaenorth,Standard_F72s_v2,reserved_1y,NA,2.32848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388200 +AZURE,uaenorth,Standard_F72s_v2,reserved_3y,NA,1.55232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388204 +AZURE,uaenorth,Standard_F72s_v2,spot,NA,1.16424,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388195 +AZURE,uaenorth,Standard_F8,on_demand,NA,0.5082,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378767 +AZURE,uaenorth,Standard_F8,reserved_1y,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378776 +AZURE,uaenorth,Standard_F8,reserved_3y,NA,0.20328,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378780 +AZURE,uaenorth,Standard_F8,spot,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378772 +AZURE,uaenorth,Standard_F8s,on_demand,NA,0.5082,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381071 +AZURE,uaenorth,Standard_F8s,reserved_1y,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381079 +AZURE,uaenorth,Standard_F8s,reserved_3y,NA,0.20328,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381083 +AZURE,uaenorth,Standard_F8s,spot,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381075 +AZURE,uaenorth,Standard_F8s_v2,on_demand,NA,0.4312,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383789 +AZURE,uaenorth,Standard_F8s_v2,reserved_1y,NA,0.25872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383798 +AZURE,uaenorth,Standard_F8s_v2,reserved_3y,NA,0.17248,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383805 +AZURE,uaenorth,Standard_F8s_v2,spot,NA,0.12936,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383793 +AZURE,uaenorth,Standard_L16as_v3,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:46:10.471683 +AZURE,uaenorth,Standard_L16as_v3,reserved_1y,NA,0.967694,USD,Azure Retail Prices API,2025-12-18T04:46:11.939387 +AZURE,uaenorth,Standard_L16as_v3,reserved_3y,NA,0.635046,USD,Azure Retail Prices API,2025-12-18T04:46:11.939450 +AZURE,uaenorth,Standard_L16as_v3,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:46:10.470673 +AZURE,uaenorth,Standard_L16s_v3,on_demand,NA,1.688,USD,Azure Retail Prices API,2025-12-18T04:46:10.471125 +AZURE,uaenorth,Standard_L16s_v3,reserved_1y,NA,1.080365,USD,Azure Retail Prices API,2025-12-18T04:46:11.938446 +AZURE,uaenorth,Standard_L16s_v3,reserved_3y,NA,0.708942,USD,Azure Retail Prices API,2025-12-18T04:46:11.938451 +AZURE,uaenorth,Standard_L16s_v3,spot,NA,0.311942,USD,Azure Retail Prices API,2025-12-18T04:46:10.470968 +AZURE,uaenorth,Standard_L32as_v3,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:46:10.470791 +AZURE,uaenorth,Standard_L32as_v3,reserved_1y,NA,1.935388,USD,Azure Retail Prices API,2025-12-18T04:46:11.938040 +AZURE,uaenorth,Standard_L32as_v3,reserved_3y,NA,1.270091,USD,Azure Retail Prices API,2025-12-18T04:46:11.938044 +AZURE,uaenorth,Standard_L32as_v3,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:46:10.471161 +AZURE,uaenorth,Standard_L32s_v3,on_demand,NA,3.376,USD,Azure Retail Prices API,2025-12-18T04:46:10.471677 +AZURE,uaenorth,Standard_L32s_v3,reserved_1y,NA,2.160616,USD,Azure Retail Prices API,2025-12-18T04:46:11.939377 +AZURE,uaenorth,Standard_L32s_v3,reserved_3y,NA,1.417922,USD,Azure Retail Prices API,2025-12-18T04:46:11.939382 +AZURE,uaenorth,Standard_L32s_v3,spot,NA,0.623885,USD,Azure Retail Prices API,2025-12-18T04:46:10.470641 +AZURE,uaenorth,Standard_L48as_v3,on_demand,NA,4.536,USD,Azure Retail Prices API,2025-12-18T04:46:10.471489 +AZURE,uaenorth,Standard_L48as_v3,reserved_1y,NA,2.903082,USD,Azure Retail Prices API,2025-12-18T04:46:11.938978 +AZURE,uaenorth,Standard_L48as_v3,reserved_3y,NA,1.905137,USD,Azure Retail Prices API,2025-12-18T04:46:11.938983 +AZURE,uaenorth,Standard_L48as_v3,spot,NA,0.838253,USD,Azure Retail Prices API,2025-12-18T04:46:10.471218 +AZURE,uaenorth,Standard_L48s_v3,on_demand,NA,5.064,USD,Azure Retail Prices API,2025-12-18T04:46:10.470320 +AZURE,uaenorth,Standard_L48s_v3,reserved_1y,NA,3.240982,USD,Azure Retail Prices API,2025-12-18T04:46:11.937242 +AZURE,uaenorth,Standard_L48s_v3,reserved_3y,NA,2.126865,USD,Azure Retail Prices API,2025-12-18T04:46:11.937246 +AZURE,uaenorth,Standard_L48s_v3,spot,NA,0.935827,USD,Azure Retail Prices API,2025-12-18T04:46:10.471519 +AZURE,uaenorth,Standard_L64as_v3,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:46:10.470695 +AZURE,uaenorth,Standard_L64as_v3,reserved_1y,NA,3.870776,USD,Azure Retail Prices API,2025-12-18T04:46:11.937828 +AZURE,uaenorth,Standard_L64as_v3,reserved_3y,NA,2.540145,USD,Azure Retail Prices API,2025-12-18T04:46:11.937833 +AZURE,uaenorth,Standard_L64as_v3,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:46:10.471580 +AZURE,uaenorth,Standard_L64s_v3,on_demand,NA,6.752,USD,Azure Retail Prices API,2025-12-18T04:46:10.470794 +AZURE,uaenorth,Standard_L64s_v3,reserved_1y,NA,4.321233,USD,Azure Retail Prices API,2025-12-18T04:46:11.938048 +AZURE,uaenorth,Standard_L64s_v3,reserved_3y,NA,2.835845,USD,Azure Retail Prices API,2025-12-18T04:46:11.938053 +AZURE,uaenorth,Standard_L64s_v3,spot,NA,1.24777,USD,Azure Retail Prices API,2025-12-18T04:46:10.471203 +AZURE,uaenorth,Standard_L80as_v3,on_demand,NA,7.56,USD,Azure Retail Prices API,2025-12-18T04:46:10.470828 +AZURE,uaenorth,Standard_L80as_v3,reserved_1y,NA,4.838356,USD,Azure Retail Prices API,2025-12-18T04:46:11.938103 +AZURE,uaenorth,Standard_L80as_v3,reserved_3y,NA,3.17519,USD,Azure Retail Prices API,2025-12-18T04:46:11.938107 +AZURE,uaenorth,Standard_L80as_v3,spot,NA,1.397088,USD,Azure Retail Prices API,2025-12-18T04:46:10.470815 +AZURE,uaenorth,Standard_L80s_v3,on_demand,NA,8.44,USD,Azure Retail Prices API,2025-12-18T04:46:10.470438 +AZURE,uaenorth,Standard_L80s_v3,reserved_1y,NA,5.401598,USD,Azure Retail Prices API,2025-12-18T04:46:11.937452 +AZURE,uaenorth,Standard_L80s_v3,reserved_3y,NA,3.544787,USD,Azure Retail Prices API,2025-12-18T04:46:11.937457 +AZURE,uaenorth,Standard_L80s_v3,spot,NA,1.559712,USD,Azure Retail Prices API,2025-12-18T04:46:10.469920 +AZURE,uaenorth,Standard_L8as_v3,on_demand,NA,0.756,USD,Azure Retail Prices API,2025-12-18T04:46:10.469982 +AZURE,uaenorth,Standard_L8as_v3,reserved_1y,NA,0.48379,USD,Azure Retail Prices API,2025-12-18T04:46:11.936696 +AZURE,uaenorth,Standard_L8as_v3,reserved_3y,NA,0.317504,USD,Azure Retail Prices API,2025-12-18T04:46:11.936700 +AZURE,uaenorth,Standard_L8as_v3,spot,NA,0.139709,USD,Azure Retail Prices API,2025-12-18T04:46:10.470317 +AZURE,uaenorth,Standard_L8s_v3,on_demand,NA,0.844,USD,Azure Retail Prices API,2025-12-18T04:46:10.470700 +AZURE,uaenorth,Standard_L8s_v3,reserved_1y,NA,0.540183,USD,Azure Retail Prices API,2025-12-18T04:46:11.937850 +AZURE,uaenorth,Standard_L8s_v3,reserved_3y,NA,0.35449,USD,Azure Retail Prices API,2025-12-18T04:46:11.937855 +AZURE,uaenorth,Standard_L8s_v3,spot,NA,0.155971,USD,Azure Retail Prices API,2025-12-18T04:46:10.470232 +AZURE,uaenorth,Standard_NC40ads_H100_v5,on_demand,NA,9.98,USD,Azure Retail Prices API,2025-12-18T04:46:10.469861 +AZURE,uaenorth,Standard_NC40ads_H100_v5,reserved_1y,NA,7.485046,USD,Azure Retail Prices API,2025-12-18T04:46:11.936550 +AZURE,uaenorth,Standard_NC40ads_H100_v5,reserved_3y,NA,5.489003,USD,Azure Retail Prices API,2025-12-18T04:46:11.936568 +AZURE,uaenorth,Standard_NC40ads_H100_v5,spot,NA,2.093804,USD,Azure Retail Prices API,2025-12-18T04:46:10.469911 +AZURE,uaenorth,Standard_ND96isr_H100_v5,on_demand,NA,140.598,USD,Azure Retail Prices API,2025-12-18T04:46:10.470824 +AZURE,uaenorth,Standard_ND96isr_H100_v5,reserved_1y,NA,89.98242,USD,Azure Retail Prices API,2025-12-18T04:46:11.938088 +AZURE,uaenorth,Standard_ND96isr_H100_v5,reserved_3y,NA,61.722336,USD,Azure Retail Prices API,2025-12-18T04:46:11.938094 +AZURE,uaenorth,Standard_ND96isr_H100_v5,spot,NA,25.98251,USD,Azure Retail Prices API,2025-12-18T04:46:10.470062 +AZURE,uaenorth,Standard_NV36adms_A10_v5,on_demand,NA,6.464,USD,Azure Retail Prices API,2025-12-18T04:46:10.470918 +AZURE,uaenorth,Standard_NV36adms_A10_v5,reserved_1y,NA,4.136758,USD,Azure Retail Prices API,2025-12-18T04:46:11.938185 +AZURE,uaenorth,Standard_NV36adms_A10_v5,reserved_3y,NA,2.843988,USD,Azure Retail Prices API,2025-12-18T04:46:11.938189 +AZURE,uaenorth,Standard_NV36adms_A10_v5,spot,NA,1.194547,USD,Azure Retail Prices API,2025-12-18T04:46:10.470163 +AZURE,uaenorth,Standard_NV36ads_A10_v5,on_demand,NA,4.576,USD,Azure Retail Prices API,2025-12-18T04:46:10.470498 +AZURE,uaenorth,Standard_NV36ads_A10_v5,reserved_1y,NA,2.928653,USD,Azure Retail Prices API,2025-12-18T04:46:11.937575 +AZURE,uaenorth,Standard_NV36ads_A10_v5,reserved_3y,NA,2.013432,USD,Azure Retail Prices API,2025-12-18T04:46:11.937579 +AZURE,uaenorth,Standard_NV36ads_A10_v5,spot,NA,0.845645,USD,Azure Retail Prices API,2025-12-18T04:46:10.471317 +AZURE,uaenorth,Standard_NV72ads_A10_v5,on_demand,NA,9.324,USD,Azure Retail Prices API,2025-12-18T04:46:10.470046 +AZURE,uaenorth,Standard_NV72ads_A10_v5,reserved_1y,NA,5.967123,USD,Azure Retail Prices API,2025-12-18T04:46:11.936849 +AZURE,uaenorth,Standard_NV72ads_A10_v5,reserved_3y,NA,4.102397,USD,Azure Retail Prices API,2025-12-18T04:46:11.936855 +AZURE,uaenorth,Standard_NV72ads_A10_v5,spot,NA,1.723075,USD,Azure Retail Prices API,2025-12-18T04:46:10.471313 +AZURE,uksouth,Standard_D128ds_v6,on_demand,NA,9.22,USD,Azure Retail Prices API,2025-12-18T04:45:35.129348 +AZURE,uksouth,Standard_D128ds_v6,reserved_1y,NA,5.716324,USD,Azure Retail Prices API,2025-12-18T04:45:37.478099 +AZURE,uksouth,Standard_D128ds_v6,reserved_3y,NA,3.595738,USD,Azure Retail Prices API,2025-12-18T04:45:37.478103 +AZURE,uksouth,Standard_D128ds_v6,spot,NA,1.1064,USD,Azure Retail Prices API,2025-12-18T04:45:35.129615 +AZURE,uksouth,Standard_D12_v2,on_demand,NA,0.4081,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488306 +AZURE,uksouth,Standard_D12_v2,reserved_1y,NA,0.24486,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488314 +AZURE,uksouth,Standard_D12_v2,reserved_3y,NA,0.16324,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488318 +AZURE,uksouth,Standard_D12_v2,spot,NA,0.12243,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488310 +AZURE,uksouth,Standard_D13_v2,on_demand,NA,0.8151,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489062 +AZURE,uksouth,Standard_D13_v2,reserved_1y,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489070 +AZURE,uksouth,Standard_D13_v2,reserved_3y,NA,0.32604,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489074 +AZURE,uksouth,Standard_D13_v2,spot,NA,0.24453,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489066 +AZURE,uksouth,Standard_D14_v2,on_demand,NA,1.6302,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490185 +AZURE,uksouth,Standard_D14_v2,reserved_1y,NA,0.97812,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490193 +AZURE,uksouth,Standard_D14_v2,reserved_3y,NA,0.65208,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490197 +AZURE,uksouth,Standard_D14_v2,spot,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490189 +AZURE,uksouth,Standard_D15_v2,on_demand,NA,2.0383,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490876 +AZURE,uksouth,Standard_D15_v2,reserved_1y,NA,1.22298,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490884 +AZURE,uksouth,Standard_D15_v2,reserved_3y,NA,0.81532,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490888 +AZURE,uksouth,Standard_D15_v2,spot,NA,0.61149,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490880 +AZURE,uksouth,Standard_D16_v3,on_demand,NA,0.928,USD,Azure Retail Prices API,2025-12-18T04:45:35.129598 +AZURE,uksouth,Standard_D16_v3,reserved_1y,NA,0.588014,USD,Azure Retail Prices API,2025-12-18T04:45:37.478516 +AZURE,uksouth,Standard_D16_v3,reserved_3y,NA,0.398554,USD,Azure Retail Prices API,2025-12-18T04:45:37.478518 +AZURE,uksouth,Standard_D16_v3,spot,NA,0.11136,USD,Azure Retail Prices API,2025-12-18T04:45:35.128911 +AZURE,uksouth,Standard_D16a_v4,on_demand,NA,0.888,USD,Azure Retail Prices API,2025-12-18T04:45:35.128660 +AZURE,uksouth,Standard_D16a_v4,reserved_1y,NA,0.522146,USD,Azure Retail Prices API,2025-12-18T04:45:37.477267 +AZURE,uksouth,Standard_D16a_v4,reserved_3y,NA,0.333904,USD,Azure Retail Prices API,2025-12-18T04:45:37.477270 +AZURE,uksouth,Standard_D16a_v4,spot,NA,0.11544,USD,Azure Retail Prices API,2025-12-18T04:45:35.128795 +AZURE,uksouth,Standard_D16ads_v5,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:45:35.129345 +AZURE,uksouth,Standard_D16ads_v5,reserved_1y,NA,0.566438,USD,Azure Retail Prices API,2025-12-18T04:45:37.478090 +AZURE,uksouth,Standard_D16ads_v5,reserved_3y,NA,0.364802,USD,Azure Retail Prices API,2025-12-18T04:45:37.478094 +AZURE,uksouth,Standard_D16ads_v5,spot,NA,0.1248,USD,Azure Retail Prices API,2025-12-18T04:45:35.128422 +AZURE,uksouth,Standard_D16ads_v6,on_demand,NA,1.061,USD,Azure Retail Prices API,2025-12-18T04:45:35.129885 +AZURE,uksouth,Standard_D16ads_v6,reserved_1y,NA,0.625913,USD,Azure Retail Prices API,2025-12-18T04:45:37.478800 +AZURE,uksouth,Standard_D16ads_v6,reserved_3y,NA,0.40312,USD,Azure Retail Prices API,2025-12-18T04:45:37.478803 +AZURE,uksouth,Standard_D16ads_v6,spot,NA,0.13793,USD,Azure Retail Prices API,2025-12-18T04:45:35.128786 +AZURE,uksouth,Standard_D16as_v4,on_demand,NA,0.888,USD,Azure Retail Prices API,2025-12-18T04:45:35.129246 +AZURE,uksouth,Standard_D16as_v4,reserved_1y,NA,0.522146,USD,Azure Retail Prices API,2025-12-18T04:45:37.477926 +AZURE,uksouth,Standard_D16as_v4,reserved_3y,NA,0.333904,USD,Azure Retail Prices API,2025-12-18T04:45:37.477931 +AZURE,uksouth,Standard_D16as_v4,spot,NA,0.11544,USD,Azure Retail Prices API,2025-12-18T04:45:35.129357 +AZURE,uksouth,Standard_D16as_v5,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:45:35.129316 +AZURE,uksouth,Standard_D16as_v5,reserved_1y,NA,0.472032,USD,Azure Retail Prices API,2025-12-18T04:45:37.478504 +AZURE,uksouth,Standard_D16as_v5,reserved_3y,NA,0.303995,USD,Azure Retail Prices API,2025-12-18T04:45:37.478506 +AZURE,uksouth,Standard_D16as_v5,spot,NA,0.104,USD,Azure Retail Prices API,2025-12-18T04:45:35.129137 +AZURE,uksouth,Standard_D16d_v4,on_demand,NA,1.048,USD,Azure Retail Prices API,2025-12-18T04:45:35.128582 +AZURE,uksouth,Standard_D16d_v4,reserved_1y,NA,0.61621,USD,Azure Retail Prices API,2025-12-18T04:45:37.477188 +AZURE,uksouth,Standard_D16d_v4,reserved_3y,NA,0.394064,USD,Azure Retail Prices API,2025-12-18T04:45:37.477191 +AZURE,uksouth,Standard_D16d_v4,spot,NA,0.13624,USD,Azure Retail Prices API,2025-12-18T04:45:35.128283 +AZURE,uksouth,Standard_D16ds_v4,on_demand,NA,1.048,USD,Azure Retail Prices API,2025-12-18T04:45:35.128320 +AZURE,uksouth,Standard_D16ds_v4,reserved_1y,NA,0.61621,USD,Azure Retail Prices API,2025-12-18T04:45:37.476855 +AZURE,uksouth,Standard_D16ds_v4,reserved_3y,NA,0.394064,USD,Azure Retail Prices API,2025-12-18T04:45:37.476859 +AZURE,uksouth,Standard_D16ds_v4,spot,NA,0.13624,USD,Azure Retail Prices API,2025-12-18T04:45:35.128743 +AZURE,uksouth,Standard_D16ds_v5,on_demand,NA,1.048,USD,Azure Retail Prices API,2025-12-18T04:45:35.130045 +AZURE,uksouth,Standard_D16ds_v5,reserved_1y,NA,0.618265,USD,Azure Retail Prices API,2025-12-18T04:45:37.478917 +AZURE,uksouth,Standard_D16ds_v5,reserved_3y,NA,0.39825,USD,Azure Retail Prices API,2025-12-18T04:45:37.478922 +AZURE,uksouth,Standard_D16ds_v5,spot,NA,0.13624,USD,Azure Retail Prices API,2025-12-18T04:45:35.128393 +AZURE,uksouth,Standard_D16ds_v6,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:45:35.129456 +AZURE,uksouth,Standard_D16ds_v6,reserved_1y,NA,0.714498,USD,Azure Retail Prices API,2025-12-18T04:45:37.478270 +AZURE,uksouth,Standard_D16ds_v6,reserved_3y,NA,0.449467,USD,Azure Retail Prices API,2025-12-18T04:45:37.478274 +AZURE,uksouth,Standard_D16ds_v6,spot,NA,0.13824,USD,Azure Retail Prices API,2025-12-18T04:45:35.130066 +AZURE,uksouth,Standard_D16pds_v6,on_demand,NA,0.846,USD,Azure Retail Prices API,2025-12-18T04:45:35.128323 +AZURE,uksouth,Standard_D16pds_v6,reserved_1y,NA,0.499429,USD,Azure Retail Prices API,2025-12-18T04:45:37.476862 +AZURE,uksouth,Standard_D16pds_v6,reserved_3y,NA,0.321613,USD,Azure Retail Prices API,2025-12-18T04:45:37.476865 +AZURE,uksouth,Standard_D16pds_v6,spot,NA,0.10152,USD,Azure Retail Prices API,2025-12-18T04:45:35.129325 +AZURE,uksouth,Standard_D16ps_v6,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:45:35.128513 +AZURE,uksouth,Standard_D16ps_v6,reserved_1y,NA,0.382306,USD,Azure Retail Prices API,2025-12-18T04:45:37.477066 +AZURE,uksouth,Standard_D16ps_v6,reserved_3y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:45:37.477070 +AZURE,uksouth,Standard_D16ps_v6,spot,NA,0.07776,USD,Azure Retail Prices API,2025-12-18T04:45:35.129994 +AZURE,uksouth,Standard_D16s_v3,on_demand,NA,0.928,USD,Azure Retail Prices API,2025-12-18T04:45:35.128516 +AZURE,uksouth,Standard_D16s_v3,reserved_1y,NA,0.588014,USD,Azure Retail Prices API,2025-12-18T04:45:37.477073 +AZURE,uksouth,Standard_D16s_v3,reserved_3y,NA,0.398554,USD,Azure Retail Prices API,2025-12-18T04:45:37.477076 +AZURE,uksouth,Standard_D16s_v3,spot,NA,0.11136,USD,Azure Retail Prices API,2025-12-18T04:45:35.129002 +AZURE,uksouth,Standard_D16s_v4,on_demand,NA,0.888,USD,Azure Retail Prices API,2025-12-18T04:45:35.128637 +AZURE,uksouth,Standard_D16s_v4,reserved_1y,NA,0.522146,USD,Azure Retail Prices API,2025-12-18T04:45:37.477249 +AZURE,uksouth,Standard_D16s_v4,reserved_3y,NA,0.333904,USD,Azure Retail Prices API,2025-12-18T04:45:37.477253 +AZURE,uksouth,Standard_D16s_v4,spot,NA,0.11544,USD,Azure Retail Prices API,2025-12-18T04:45:35.129419 +AZURE,uksouth,Standard_D16s_v5,on_demand,NA,0.888,USD,Azure Retail Prices API,2025-12-18T04:45:35.128525 +AZURE,uksouth,Standard_D16s_v5,reserved_1y,NA,0.523973,USD,Azure Retail Prices API,2025-12-18T04:45:37.477090 +AZURE,uksouth,Standard_D16s_v5,reserved_3y,NA,0.328577,USD,Azure Retail Prices API,2025-12-18T04:45:37.477093 +AZURE,uksouth,Standard_D16s_v5,spot,NA,0.11544,USD,Azure Retail Prices API,2025-12-18T04:45:35.128873 +AZURE,uksouth,Standard_D2ads_v6,on_demand,NA,0.133,USD,Azure Retail Prices API,2025-12-18T04:45:35.128804 +AZURE,uksouth,Standard_D2ads_v6,reserved_1y,NA,0.078196,USD,Azure Retail Prices API,2025-12-18T04:45:37.477361 +AZURE,uksouth,Standard_D2ads_v6,reserved_3y,NA,0.050381,USD,Azure Retail Prices API,2025-12-18T04:45:37.477363 +AZURE,uksouth,Standard_D2ads_v6,spot,NA,0.01729,USD,Azure Retail Prices API,2025-12-18T04:45:35.128663 +AZURE,uksouth,Standard_D2ds_v6,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:45:35.128579 +AZURE,uksouth,Standard_D2ds_v6,reserved_1y,NA,0.089269,USD,Azure Retail Prices API,2025-12-18T04:45:37.477182 +AZURE,uksouth,Standard_D2ds_v6,reserved_3y,NA,0.056164,USD,Azure Retail Prices API,2025-12-18T04:45:37.477185 +AZURE,uksouth,Standard_D2ds_v6,spot,NA,0.01728,USD,Azure Retail Prices API,2025-12-18T04:45:35.128504 +AZURE,uksouth,Standard_D32_v3,on_demand,NA,1.856,USD,Azure Retail Prices API,2025-12-18T04:45:35.129694 +AZURE,uksouth,Standard_D32_v3,reserved_1y,NA,1.176027,USD,Azure Retail Prices API,2025-12-18T04:45:37.478605 +AZURE,uksouth,Standard_D32_v3,reserved_3y,NA,0.797108,USD,Azure Retail Prices API,2025-12-18T04:45:37.478607 +AZURE,uksouth,Standard_D32_v3,spot,NA,0.22272,USD,Azure Retail Prices API,2025-12-18T04:45:35.129791 +AZURE,uksouth,Standard_D32a_v4,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:45:35.129421 +AZURE,uksouth,Standard_D32a_v4,reserved_1y,NA,1.044292,USD,Azure Retail Prices API,2025-12-18T04:45:37.478223 +AZURE,uksouth,Standard_D32a_v4,reserved_3y,NA,0.66777,USD,Azure Retail Prices API,2025-12-18T04:45:37.478229 +AZURE,uksouth,Standard_D32a_v4,spot,NA,0.23088,USD,Azure Retail Prices API,2025-12-18T04:45:35.128717 +AZURE,uksouth,Standard_D32ads_v5,on_demand,NA,3.392,USD,Azure Retail Prices API,2025-12-18T04:45:35.128776 +AZURE,uksouth,Standard_D32ads_v5,reserved_1y,NA,1.132763,USD,Azure Retail Prices API,2025-12-18T04:45:37.478521 +AZURE,uksouth,Standard_D32ads_v5,reserved_3y,NA,0.729604,USD,Azure Retail Prices API,2025-12-18T04:45:37.478524 +AZURE,uksouth,Standard_D32ads_v5,spot,NA,0.2496,USD,Azure Retail Prices API,2025-12-18T04:45:35.129447 +AZURE,uksouth,Standard_D32ads_v6,on_demand,NA,2.122,USD,Azure Retail Prices API,2025-12-18T04:45:35.129252 +AZURE,uksouth,Standard_D32ads_v6,reserved_1y,NA,1.251712,USD,Azure Retail Prices API,2025-12-18T04:45:37.477936 +AZURE,uksouth,Standard_D32ads_v6,reserved_3y,NA,0.806202,USD,Azure Retail Prices API,2025-12-18T04:45:37.477941 +AZURE,uksouth,Standard_D32ads_v6,spot,NA,0.27586,USD,Azure Retail Prices API,2025-12-18T04:45:35.129373 +AZURE,uksouth,Standard_D32as_v4,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:45:35.129379 +AZURE,uksouth,Standard_D32as_v4,reserved_1y,NA,1.044292,USD,Azure Retail Prices API,2025-12-18T04:45:37.478174 +AZURE,uksouth,Standard_D32as_v4,reserved_3y,NA,0.66777,USD,Azure Retail Prices API,2025-12-18T04:45:37.478179 +AZURE,uksouth,Standard_D32as_v4,spot,NA,0.23088,USD,Azure Retail Prices API,2025-12-18T04:45:35.130107 +AZURE,uksouth,Standard_D32as_v5,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:45:35.128695 +AZURE,uksouth,Standard_D32as_v5,reserved_1y,NA,0.94395,USD,Azure Retail Prices API,2025-12-18T04:45:37.478845 +AZURE,uksouth,Standard_D32as_v5,reserved_3y,NA,0.607991,USD,Azure Retail Prices API,2025-12-18T04:45:37.478848 +AZURE,uksouth,Standard_D32as_v5,spot,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:35.129977 +AZURE,uksouth,Standard_D32d_v4,on_demand,NA,2.096,USD,Azure Retail Prices API,2025-12-18T04:45:35.129169 +AZURE,uksouth,Standard_D32d_v4,reserved_1y,NA,1.23242,USD,Azure Retail Prices API,2025-12-18T04:45:37.477766 +AZURE,uksouth,Standard_D32d_v4,reserved_3y,NA,0.78809,USD,Azure Retail Prices API,2025-12-18T04:45:37.477771 +AZURE,uksouth,Standard_D32d_v4,spot,NA,0.27248,USD,Azure Retail Prices API,2025-12-18T04:45:35.129276 +AZURE,uksouth,Standard_D32ds_v4,on_demand,NA,2.096,USD,Azure Retail Prices API,2025-12-18T04:45:35.128326 +AZURE,uksouth,Standard_D32ds_v4,reserved_1y,NA,1.23242,USD,Azure Retail Prices API,2025-12-18T04:45:37.476868 +AZURE,uksouth,Standard_D32ds_v4,reserved_3y,NA,0.78809,USD,Azure Retail Prices API,2025-12-18T04:45:37.476871 +AZURE,uksouth,Standard_D32ds_v4,spot,NA,0.27248,USD,Azure Retail Prices API,2025-12-18T04:45:35.129785 +AZURE,uksouth,Standard_D32ds_v5,on_demand,NA,2.096,USD,Azure Retail Prices API,2025-12-18T04:45:35.129160 +AZURE,uksouth,Standard_D32ds_v5,reserved_1y,NA,1.236644,USD,Azure Retail Prices API,2025-12-18T04:45:37.477745 +AZURE,uksouth,Standard_D32ds_v5,reserved_3y,NA,0.796461,USD,Azure Retail Prices API,2025-12-18T04:45:37.477751 +AZURE,uksouth,Standard_D32ds_v5,spot,NA,0.27248,USD,Azure Retail Prices API,2025-12-18T04:45:35.129561 +AZURE,uksouth,Standard_D32ds_v6,on_demand,NA,2.305,USD,Azure Retail Prices API,2025-12-18T04:45:35.128768 +AZURE,uksouth,Standard_D32ds_v6,reserved_1y,NA,1.42911,USD,Azure Retail Prices API,2025-12-18T04:45:37.477326 +AZURE,uksouth,Standard_D32ds_v6,reserved_3y,NA,0.898935,USD,Azure Retail Prices API,2025-12-18T04:45:37.477329 +AZURE,uksouth,Standard_D32ds_v6,spot,NA,0.2766,USD,Azure Retail Prices API,2025-12-18T04:45:35.128740 +AZURE,uksouth,Standard_D32pds_v6,on_demand,NA,1.693,USD,Azure Retail Prices API,2025-12-18T04:45:35.128232 +AZURE,uksouth,Standard_D32pds_v6,reserved_1y,NA,0.998744,USD,Azure Retail Prices API,2025-12-18T04:45:37.476754 +AZURE,uksouth,Standard_D32pds_v6,reserved_3y,NA,0.643265,USD,Azure Retail Prices API,2025-12-18T04:45:37.476759 +AZURE,uksouth,Standard_D32pds_v6,spot,NA,0.20316,USD,Azure Retail Prices API,2025-12-18T04:45:35.129767 +AZURE,uksouth,Standard_D32ps_v6,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:45:35.128671 +AZURE,uksouth,Standard_D32ps_v6,reserved_1y,NA,0.764612,USD,Azure Retail Prices API,2025-12-18T04:45:37.477279 +AZURE,uksouth,Standard_D32ps_v6,reserved_3y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:45:37.477282 +AZURE,uksouth,Standard_D32ps_v6,spot,NA,0.15552,USD,Azure Retail Prices API,2025-12-18T04:45:35.128879 +AZURE,uksouth,Standard_D32s_v3,on_demand,NA,1.856,USD,Azure Retail Prices API,2025-12-18T04:45:35.128885 +AZURE,uksouth,Standard_D32s_v3,reserved_1y,NA,1.176027,USD,Azure Retail Prices API,2025-12-18T04:45:37.477423 +AZURE,uksouth,Standard_D32s_v3,reserved_3y,NA,0.797108,USD,Azure Retail Prices API,2025-12-18T04:45:37.477426 +AZURE,uksouth,Standard_D32s_v3,spot,NA,0.22272,USD,Azure Retail Prices API,2025-12-18T04:45:35.129924 +AZURE,uksouth,Standard_D32s_v4,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:45:35.130022 +AZURE,uksouth,Standard_D32s_v4,reserved_1y,NA,1.044292,USD,Azure Retail Prices API,2025-12-18T04:45:37.478882 +AZURE,uksouth,Standard_D32s_v4,reserved_3y,NA,0.66777,USD,Azure Retail Prices API,2025-12-18T04:45:37.478886 +AZURE,uksouth,Standard_D32s_v4,spot,NA,0.23088,USD,Azure Retail Prices API,2025-12-18T04:45:35.128713 +AZURE,uksouth,Standard_D32s_v5,on_demand,NA,1.776,USD,Azure Retail Prices API,2025-12-18T04:45:35.130057 +AZURE,uksouth,Standard_D32s_v5,reserved_1y,NA,1.047831,USD,Azure Retail Prices API,2025-12-18T04:45:37.478956 +AZURE,uksouth,Standard_D32s_v5,reserved_3y,NA,0.657116,USD,Azure Retail Prices API,2025-12-18T04:45:37.478960 +AZURE,uksouth,Standard_D32s_v5,spot,NA,0.23088,USD,Azure Retail Prices API,2025-12-18T04:45:35.128704 +AZURE,uksouth,Standard_D3_v2,on_demand,NA,0.3223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485295 +AZURE,uksouth,Standard_D3_v2,reserved_1y,NA,0.19338,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485303 +AZURE,uksouth,Standard_D3_v2,reserved_3y,NA,0.12892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485307 +AZURE,uksouth,Standard_D3_v2,spot,NA,0.09669,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485299 +AZURE,uksouth,Standard_D48a_v4,on_demand,NA,2.664,USD,Azure Retail Prices API,2025-12-18T04:45:35.129104 +AZURE,uksouth,Standard_D48a_v4,reserved_1y,NA,1.566438,USD,Azure Retail Prices API,2025-12-18T04:45:37.477693 +AZURE,uksouth,Standard_D48a_v4,reserved_3y,NA,1.001674,USD,Azure Retail Prices API,2025-12-18T04:45:37.477700 +AZURE,uksouth,Standard_D48a_v4,spot,NA,0.34632,USD,Azure Retail Prices API,2025-12-18T04:45:35.128376 +AZURE,uksouth,Standard_D48ads_v5,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:45:35.128440 +AZURE,uksouth,Standard_D48ads_v5,reserved_1y,NA,1.699201,USD,Azure Retail Prices API,2025-12-18T04:45:37.477007 +AZURE,uksouth,Standard_D48ads_v5,reserved_3y,NA,1.094406,USD,Azure Retail Prices API,2025-12-18T04:45:37.477010 +AZURE,uksouth,Standard_D48ads_v5,spot,NA,0.3744,USD,Azure Retail Prices API,2025-12-18T04:45:35.128561 +AZURE,uksouth,Standard_D48ads_v6,on_demand,NA,3.182,USD,Azure Retail Prices API,2025-12-18T04:45:35.128967 +AZURE,uksouth,Standard_D48ads_v6,reserved_1y,NA,1.877626,USD,Azure Retail Prices API,2025-12-18T04:45:37.477502 +AZURE,uksouth,Standard_D48ads_v6,reserved_3y,NA,1.209323,USD,Azure Retail Prices API,2025-12-18T04:45:37.477505 +AZURE,uksouth,Standard_D48ads_v6,spot,NA,0.41366,USD,Azure Retail Prices API,2025-12-18T04:45:35.128999 +AZURE,uksouth,Standard_D48as_v4,on_demand,NA,2.664,USD,Azure Retail Prices API,2025-12-18T04:45:35.129255 +AZURE,uksouth,Standard_D48as_v4,reserved_1y,NA,1.566438,USD,Azure Retail Prices API,2025-12-18T04:45:37.477946 +AZURE,uksouth,Standard_D48as_v4,reserved_3y,NA,1.001674,USD,Azure Retail Prices API,2025-12-18T04:45:37.477952 +AZURE,uksouth,Standard_D48as_v4,spot,NA,0.34632,USD,Azure Retail Prices API,2025-12-18T04:45:35.129846 +AZURE,uksouth,Standard_D48as_v5,on_demand,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:45:35.128774 +AZURE,uksouth,Standard_D48as_v5,reserved_1y,NA,1.415982,USD,Azure Retail Prices API,2025-12-18T04:45:37.477338 +AZURE,uksouth,Standard_D48as_v5,reserved_3y,NA,0.911986,USD,Azure Retail Prices API,2025-12-18T04:45:37.477341 +AZURE,uksouth,Standard_D48as_v5,spot,NA,0.312,USD,Azure Retail Prices API,2025-12-18T04:45:35.128737 +AZURE,uksouth,Standard_D48d_v4,on_demand,NA,3.144,USD,Azure Retail Prices API,2025-12-18T04:45:35.129068 +AZURE,uksouth,Standard_D48d_v4,reserved_1y,NA,1.84863,USD,Azure Retail Prices API,2025-12-18T04:45:37.477624 +AZURE,uksouth,Standard_D48d_v4,reserved_3y,NA,1.182154,USD,Azure Retail Prices API,2025-12-18T04:45:37.477628 +AZURE,uksouth,Standard_D48d_v4,spot,NA,0.40872,USD,Azure Retail Prices API,2025-12-18T04:45:35.129739 +AZURE,uksouth,Standard_D48ds_v4,on_demand,NA,3.144,USD,Azure Retail Prices API,2025-12-18T04:45:35.129870 +AZURE,uksouth,Standard_D48ds_v4,reserved_1y,NA,1.84863,USD,Azure Retail Prices API,2025-12-18T04:45:37.478778 +AZURE,uksouth,Standard_D48ds_v4,reserved_3y,NA,1.182154,USD,Azure Retail Prices API,2025-12-18T04:45:37.478781 +AZURE,uksouth,Standard_D48ds_v4,spot,NA,0.40872,USD,Azure Retail Prices API,2025-12-18T04:45:35.129949 +AZURE,uksouth,Standard_D48ds_v5,on_demand,NA,3.144,USD,Azure Retail Prices API,2025-12-18T04:45:35.129861 +AZURE,uksouth,Standard_D48ds_v5,reserved_1y,NA,1.854909,USD,Azure Retail Prices API,2025-12-18T04:45:37.478766 +AZURE,uksouth,Standard_D48ds_v5,reserved_3y,NA,1.194711,USD,Azure Retail Prices API,2025-12-18T04:45:37.478769 +AZURE,uksouth,Standard_D48ds_v5,spot,NA,0.40872,USD,Azure Retail Prices API,2025-12-18T04:45:35.129809 +AZURE,uksouth,Standard_D48ds_v6,on_demand,NA,3.457,USD,Azure Retail Prices API,2025-12-18T04:45:35.130063 +AZURE,uksouth,Standard_D48ds_v6,reserved_1y,NA,2.143607,USD,Azure Retail Prices API,2025-12-18T04:45:37.478965 +AZURE,uksouth,Standard_D48ds_v6,reserved_3y,NA,1.348402,USD,Azure Retail Prices API,2025-12-18T04:45:37.478970 +AZURE,uksouth,Standard_D48ds_v6,spot,NA,0.41484,USD,Azure Retail Prices API,2025-12-18T04:45:35.129089 +AZURE,uksouth,Standard_D48pds_v6,on_demand,NA,2.539,USD,Azure Retail Prices API,2025-12-18T04:45:35.129175 +AZURE,uksouth,Standard_D48pds_v6,reserved_1y,NA,1.498174,USD,Azure Retail Prices API,2025-12-18T04:45:37.477776 +AZURE,uksouth,Standard_D48pds_v6,reserved_3y,NA,0.964878,USD,Azure Retail Prices API,2025-12-18T04:45:37.477781 +AZURE,uksouth,Standard_D48pds_v6,spot,NA,0.30468,USD,Azure Retail Prices API,2025-12-18T04:45:35.129143 +AZURE,uksouth,Standard_D48ps_v6,on_demand,NA,1.944,USD,Azure Retail Prices API,2025-12-18T04:45:35.130051 +AZURE,uksouth,Standard_D48ps_v6,reserved_1y,NA,1.146918,USD,Azure Retail Prices API,2025-12-18T04:45:37.478938 +AZURE,uksouth,Standard_D48ps_v6,reserved_3y,NA,0.738737,USD,Azure Retail Prices API,2025-12-18T04:45:37.478942 +AZURE,uksouth,Standard_D48ps_v6,spot,NA,0.23328,USD,Azure Retail Prices API,2025-12-18T04:45:35.129401 +AZURE,uksouth,Standard_D48s_v4,on_demand,NA,2.664,USD,Azure Retail Prices API,2025-12-18T04:45:35.128643 +AZURE,uksouth,Standard_D48s_v4,reserved_1y,NA,1.566438,USD,Azure Retail Prices API,2025-12-18T04:45:37.477256 +AZURE,uksouth,Standard_D48s_v4,reserved_3y,NA,1.001674,USD,Azure Retail Prices API,2025-12-18T04:45:37.477259 +AZURE,uksouth,Standard_D48s_v4,spot,NA,0.34632,USD,Azure Retail Prices API,2025-12-18T04:45:35.128957 +AZURE,uksouth,Standard_D48s_v5,on_demand,NA,2.664,USD,Azure Retail Prices API,2025-12-18T04:45:35.129241 +AZURE,uksouth,Standard_D48s_v5,reserved_1y,NA,1.571804,USD,Azure Retail Prices API,2025-12-18T04:45:37.477913 +AZURE,uksouth,Standard_D48s_v5,reserved_3y,NA,0.985693,USD,Azure Retail Prices API,2025-12-18T04:45:37.477920 +AZURE,uksouth,Standard_D48s_v5,spot,NA,0.34632,USD,Azure Retail Prices API,2025-12-18T04:45:35.128204 +AZURE,uksouth,Standard_D4_v2,on_demand,NA,0.6435,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486153 +AZURE,uksouth,Standard_D4_v2,reserved_1y,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486161 +AZURE,uksouth,Standard_D4_v2,reserved_3y,NA,0.2574,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486166 +AZURE,uksouth,Standard_D4_v2,spot,NA,0.19305,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486157 +AZURE,uksouth,Standard_D4a_v4,on_demand,NA,0.222,USD,Azure Retail Prices API,2025-12-18T04:45:35.129382 +AZURE,uksouth,Standard_D4a_v4,reserved_1y,NA,0.130479,USD,Azure Retail Prices API,2025-12-18T04:45:37.478184 +AZURE,uksouth,Standard_D4a_v4,reserved_3y,NA,0.083486,USD,Azure Retail Prices API,2025-12-18T04:45:37.478189 +AZURE,uksouth,Standard_D4a_v4,spot,NA,0.02886,USD,Azure Retail Prices API,2025-12-18T04:45:35.129548 +AZURE,uksouth,Standard_D4ads_v5,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:45:35.129234 +AZURE,uksouth,Standard_D4ads_v5,reserved_1y,NA,0.141553,USD,Azure Retail Prices API,2025-12-18T04:45:37.477891 +AZURE,uksouth,Standard_D4ads_v5,reserved_3y,NA,0.09121,USD,Azure Retail Prices API,2025-12-18T04:45:37.477896 +AZURE,uksouth,Standard_D4ads_v5,spot,NA,0.0312,USD,Azure Retail Prices API,2025-12-18T04:45:35.128730 +AZURE,uksouth,Standard_D4ads_v6,on_demand,NA,0.265,USD,Azure Retail Prices API,2025-12-18T04:45:35.128602 +AZURE,uksouth,Standard_D4ads_v6,reserved_1y,NA,0.156507,USD,Azure Retail Prices API,2025-12-18T04:45:37.477213 +AZURE,uksouth,Standard_D4ads_v6,reserved_3y,NA,0.100761,USD,Azure Retail Prices API,2025-12-18T04:45:37.477216 +AZURE,uksouth,Standard_D4ads_v6,spot,NA,0.03445,USD,Azure Retail Prices API,2025-12-18T04:45:35.129643 +AZURE,uksouth,Standard_D4as_v5,on_demand,NA,0.2,USD,Azure Retail Prices API,2025-12-18T04:45:35.128665 +AZURE,uksouth,Standard_D4as_v5,reserved_1y,NA,0.118037,USD,Azure Retail Prices API,2025-12-18T04:45:37.477273 +AZURE,uksouth,Standard_D4as_v5,reserved_3y,NA,0.075989,USD,Azure Retail Prices API,2025-12-18T04:45:37.477276 +AZURE,uksouth,Standard_D4as_v5,spot,NA,0.026,USD,Azure Retail Prices API,2025-12-18T04:45:35.129394 +AZURE,uksouth,Standard_D4d_v4,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:45:35.130071 +AZURE,uksouth,Standard_D4d_v4,reserved_1y,NA,0.15411,USD,Azure Retail Prices API,2025-12-18T04:45:37.478974 +AZURE,uksouth,Standard_D4d_v4,reserved_3y,NA,0.098516,USD,Azure Retail Prices API,2025-12-18T04:45:37.478978 +AZURE,uksouth,Standard_D4d_v4,spot,NA,0.03406,USD,Azure Retail Prices API,2025-12-18T04:45:35.128640 +AZURE,uksouth,Standard_D4ds_v4,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:45:35.129100 +AZURE,uksouth,Standard_D4ds_v4,reserved_1y,NA,0.15411,USD,Azure Retail Prices API,2025-12-18T04:45:37.477681 +AZURE,uksouth,Standard_D4ds_v4,reserved_3y,NA,0.098516,USD,Azure Retail Prices API,2025-12-18T04:45:37.477688 +AZURE,uksouth,Standard_D4ds_v4,spot,NA,0.03406,USD,Azure Retail Prices API,2025-12-18T04:45:35.128852 +AZURE,uksouth,Standard_D4ds_v5,on_demand,NA,0.262,USD,Azure Retail Prices API,2025-12-18T04:45:35.128989 +AZURE,uksouth,Standard_D4ds_v5,reserved_1y,NA,0.154566,USD,Azure Retail Prices API,2025-12-18T04:45:37.477524 +AZURE,uksouth,Standard_D4ds_v5,reserved_3y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:45:37.477531 +AZURE,uksouth,Standard_D4ds_v5,spot,NA,0.03406,USD,Azure Retail Prices API,2025-12-18T04:45:35.129814 +AZURE,uksouth,Standard_D4ds_v6,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:45:35.128466 +AZURE,uksouth,Standard_D4ds_v6,reserved_1y,NA,0.178653,USD,Azure Retail Prices API,2025-12-18T04:45:37.477025 +AZURE,uksouth,Standard_D4ds_v6,reserved_3y,NA,0.112367,USD,Azure Retail Prices API,2025-12-18T04:45:37.477028 +AZURE,uksouth,Standard_D4ds_v6,spot,NA,0.03456,USD,Azure Retail Prices API,2025-12-18T04:45:35.129830 +AZURE,uksouth,Standard_D4pds_v6,on_demand,NA,0.212,USD,Azure Retail Prices API,2025-12-18T04:45:35.129044 +AZURE,uksouth,Standard_D4pds_v6,reserved_1y,NA,0.124886,USD,Azure Retail Prices API,2025-12-18T04:45:37.477579 +AZURE,uksouth,Standard_D4pds_v6,reserved_3y,NA,0.080403,USD,Azure Retail Prices API,2025-12-18T04:45:37.477584 +AZURE,uksouth,Standard_D4pds_v6,spot,NA,0.02544,USD,Azure Retail Prices API,2025-12-18T04:45:35.129640 +AZURE,uksouth,Standard_D4ps_v6,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:45:35.129351 +AZURE,uksouth,Standard_D4ps_v6,reserved_1y,NA,0.095548,USD,Azure Retail Prices API,2025-12-18T04:45:37.478109 +AZURE,uksouth,Standard_D4ps_v6,reserved_3y,NA,0.061568,USD,Azure Retail Prices API,2025-12-18T04:45:37.478115 +AZURE,uksouth,Standard_D4ps_v6,spot,NA,0.01944,USD,Azure Retail Prices API,2025-12-18T04:45:35.129244 +AZURE,uksouth,Standard_D4s_v3,on_demand,NA,0.232,USD,Azure Retail Prices API,2025-12-18T04:45:35.128840 +AZURE,uksouth,Standard_D4s_v3,reserved_1y,NA,0.147032,USD,Azure Retail Prices API,2025-12-18T04:45:37.477400 +AZURE,uksouth,Standard_D4s_v3,reserved_3y,NA,0.099658,USD,Azure Retail Prices API,2025-12-18T04:45:37.477403 +AZURE,uksouth,Standard_D4s_v3,spot,NA,0.02784,USD,Azure Retail Prices API,2025-12-18T04:45:35.129877 +AZURE,uksouth,Standard_D4s_v4,on_demand,NA,0.222,USD,Azure Retail Prices API,2025-12-18T04:45:35.128620 +AZURE,uksouth,Standard_D4s_v4,reserved_1y,NA,0.130479,USD,Azure Retail Prices API,2025-12-18T04:45:37.477237 +AZURE,uksouth,Standard_D4s_v4,reserved_3y,NA,0.083486,USD,Azure Retail Prices API,2025-12-18T04:45:37.477240 +AZURE,uksouth,Standard_D4s_v4,spot,NA,0.02886,USD,Azure Retail Prices API,2025-12-18T04:45:35.130060 +AZURE,uksouth,Standard_D4s_v5,on_demand,NA,0.222,USD,Azure Retail Prices API,2025-12-18T04:45:35.129074 +AZURE,uksouth,Standard_D4s_v5,reserved_1y,NA,0.130936,USD,Azure Retail Prices API,2025-12-18T04:45:37.477641 +AZURE,uksouth,Standard_D4s_v5,reserved_3y,NA,0.082154,USD,Azure Retail Prices API,2025-12-18T04:45:37.477646 +AZURE,uksouth,Standard_D4s_v5,spot,NA,0.02886,USD,Azure Retail Prices API,2025-12-18T04:45:35.129127 +AZURE,uksouth,Standard_D5_v2,on_demand,NA,1.287,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487237 +AZURE,uksouth,Standard_D5_v2,reserved_1y,NA,0.7722,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487252 +AZURE,uksouth,Standard_D5_v2,reserved_3y,NA,0.5148,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487259 +AZURE,uksouth,Standard_D5_v2,spot,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487245 +AZURE,uksouth,Standard_D64_v3,on_demand,NA,3.712,USD,Azure Retail Prices API,2025-12-18T04:45:35.129366 +AZURE,uksouth,Standard_D64_v3,reserved_1y,NA,2.352055,USD,Azure Retail Prices API,2025-12-18T04:45:37.478139 +AZURE,uksouth,Standard_D64_v3,reserved_3y,NA,1.594216,USD,Azure Retail Prices API,2025-12-18T04:45:37.478157 +AZURE,uksouth,Standard_D64_v3,spot,NA,0.44544,USD,Azure Retail Prices API,2025-12-18T04:45:35.128917 +AZURE,uksouth,Standard_D64a_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:35.129201 +AZURE,uksouth,Standard_D64a_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:37.477870 +AZURE,uksouth,Standard_D64a_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:37.477875 +AZURE,uksouth,Standard_D64a_v4,spot,NA,0.46176,USD,Azure Retail Prices API,2025-12-18T04:45:35.128908 +AZURE,uksouth,Standard_D64ads_v5,on_demand,NA,6.784,USD,Azure Retail Prices API,2025-12-18T04:45:35.128995 +AZURE,uksouth,Standard_D64ads_v5,reserved_1y,NA,2.265639,USD,Azure Retail Prices API,2025-12-18T04:45:37.478041 +AZURE,uksouth,Standard_D64ads_v5,reserved_3y,NA,1.459209,USD,Azure Retail Prices API,2025-12-18T04:45:37.478047 +AZURE,uksouth,Standard_D64ads_v5,spot,NA,0.4992,USD,Azure Retail Prices API,2025-12-18T04:45:35.129410 +AZURE,uksouth,Standard_D64ads_v6,on_demand,NA,4.243,USD,Azure Retail Prices API,2025-12-18T04:45:35.128570 +AZURE,uksouth,Standard_D64ads_v6,reserved_1y,NA,2.503539,USD,Azure Retail Prices API,2025-12-18T04:45:37.477169 +AZURE,uksouth,Standard_D64ads_v6,reserved_3y,NA,1.612405,USD,Azure Retail Prices API,2025-12-18T04:45:37.477173 +AZURE,uksouth,Standard_D64ads_v6,spot,NA,0.55159,USD,Azure Retail Prices API,2025-12-18T04:45:35.129646 +AZURE,uksouth,Standard_D64as_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:35.129322 +AZURE,uksouth,Standard_D64as_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:37.478018 +AZURE,uksouth,Standard_D64as_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:37.478023 +AZURE,uksouth,Standard_D64as_v4,spot,NA,0.46176,USD,Azure Retail Prices API,2025-12-18T04:45:35.128896 +AZURE,uksouth,Standard_D64as_v5,on_demand,NA,6.144,USD,Azure Retail Prices API,2025-12-18T04:45:35.128882 +AZURE,uksouth,Standard_D64as_v5,reserved_1y,NA,1.888014,USD,Azure Retail Prices API,2025-12-18T04:45:37.478783 +AZURE,uksouth,Standard_D64as_v5,reserved_3y,NA,1.215982,USD,Azure Retail Prices API,2025-12-18T04:45:37.478786 +AZURE,uksouth,Standard_D64as_v5,spot,NA,0.416,USD,Azure Retail Prices API,2025-12-18T04:45:35.129474 +AZURE,uksouth,Standard_D64d_v4,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:45:35.128346 +AZURE,uksouth,Standard_D64d_v4,reserved_1y,NA,2.46484,USD,Azure Retail Prices API,2025-12-18T04:45:37.476913 +AZURE,uksouth,Standard_D64d_v4,reserved_3y,NA,1.57618,USD,Azure Retail Prices API,2025-12-18T04:45:37.476916 +AZURE,uksouth,Standard_D64d_v4,spot,NA,0.54496,USD,Azure Retail Prices API,2025-12-18T04:45:35.129080 +AZURE,uksouth,Standard_D64ds_v4,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:45:35.129519 +AZURE,uksouth,Standard_D64ds_v4,reserved_1y,NA,2.46484,USD,Azure Retail Prices API,2025-12-18T04:45:37.478403 +AZURE,uksouth,Standard_D64ds_v4,reserved_3y,NA,1.57618,USD,Azure Retail Prices API,2025-12-18T04:45:37.478408 +AZURE,uksouth,Standard_D64ds_v4,spot,NA,0.54496,USD,Azure Retail Prices API,2025-12-18T04:45:35.129745 +AZURE,uksouth,Standard_D64ds_v5,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:45:35.128753 +AZURE,uksouth,Standard_D64ds_v5,reserved_1y,NA,2.473288,USD,Azure Retail Prices API,2025-12-18T04:45:37.477314 +AZURE,uksouth,Standard_D64ds_v5,reserved_3y,NA,1.59296,USD,Azure Retail Prices API,2025-12-18T04:45:37.477317 +AZURE,uksouth,Standard_D64ds_v5,spot,NA,0.54496,USD,Azure Retail Prices API,2025-12-18T04:45:35.128858 +AZURE,uksouth,Standard_D64ds_v6,on_demand,NA,4.61,USD,Azure Retail Prices API,2025-12-18T04:45:35.129166 +AZURE,uksouth,Standard_D64ds_v6,reserved_1y,NA,2.858105,USD,Azure Retail Prices API,2025-12-18T04:45:37.477756 +AZURE,uksouth,Standard_D64ds_v6,reserved_3y,NA,1.797869,USD,Azure Retail Prices API,2025-12-18T04:45:37.477762 +AZURE,uksouth,Standard_D64ds_v6,spot,NA,0.5532,USD,Azure Retail Prices API,2025-12-18T04:45:35.128419 +AZURE,uksouth,Standard_D64pds_v6,on_demand,NA,3.386,USD,Azure Retail Prices API,2025-12-18T04:45:35.129184 +AZURE,uksouth,Standard_D64pds_v6,reserved_1y,NA,1.997489,USD,Azure Retail Prices API,2025-12-18T04:45:37.477795 +AZURE,uksouth,Standard_D64pds_v6,reserved_3y,NA,1.28653,USD,Azure Retail Prices API,2025-12-18T04:45:37.477800 +AZURE,uksouth,Standard_D64pds_v6,spot,NA,0.40632,USD,Azure Retail Prices API,2025-12-18T04:45:35.130080 +AZURE,uksouth,Standard_D64ps_v6,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:45:35.129500 +AZURE,uksouth,Standard_D64ps_v6,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:45:37.478372 +AZURE,uksouth,Standard_D64ps_v6,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:45:37.478377 +AZURE,uksouth,Standard_D64ps_v6,spot,NA,0.31104,USD,Azure Retail Prices API,2025-12-18T04:45:35.129621 +AZURE,uksouth,Standard_D64s_v3,on_demand,NA,3.712,USD,Azure Retail Prices API,2025-12-18T04:45:35.129198 +AZURE,uksouth,Standard_D64s_v3,reserved_1y,NA,2.352055,USD,Azure Retail Prices API,2025-12-18T04:45:37.477858 +AZURE,uksouth,Standard_D64s_v3,reserved_3y,NA,1.594216,USD,Azure Retail Prices API,2025-12-18T04:45:37.477865 +AZURE,uksouth,Standard_D64s_v3,spot,NA,0.44544,USD,Azure Retail Prices API,2025-12-18T04:45:35.128668 +AZURE,uksouth,Standard_D64s_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:35.129630 +AZURE,uksouth,Standard_D64s_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:37.478527 +AZURE,uksouth,Standard_D64s_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:37.478531 +AZURE,uksouth,Standard_D64s_v4,spot,NA,0.46176,USD,Azure Retail Prices API,2025-12-18T04:45:35.129516 +AZURE,uksouth,Standard_D64s_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:35.128299 +AZURE,uksouth,Standard_D64s_v5,reserved_1y,NA,2.095662,USD,Azure Retail Prices API,2025-12-18T04:45:37.476837 +AZURE,uksouth,Standard_D64s_v5,reserved_3y,NA,1.314231,USD,Azure Retail Prices API,2025-12-18T04:45:37.476840 +AZURE,uksouth,Standard_D64s_v5,spot,NA,0.46176,USD,Azure Retail Prices API,2025-12-18T04:45:35.128618 +AZURE,uksouth,Standard_D8_v3,on_demand,NA,0.464,USD,Azure Retail Prices API,2025-12-18T04:45:35.129005 +AZURE,uksouth,Standard_D8_v3,reserved_1y,NA,0.29395,USD,Azure Retail Prices API,2025-12-18T04:45:37.477535 +AZURE,uksouth,Standard_D8_v3,reserved_3y,NA,0.199277,USD,Azure Retail Prices API,2025-12-18T04:45:37.477540 +AZURE,uksouth,Standard_D8_v3,spot,NA,0.05568,USD,Azure Retail Prices API,2025-12-18T04:45:35.129782 +AZURE,uksouth,Standard_D8a_v4,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:45:35.130086 +AZURE,uksouth,Standard_D8a_v4,reserved_1y,NA,0.261073,USD,Azure Retail Prices API,2025-12-18T04:45:37.479001 +AZURE,uksouth,Standard_D8a_v4,reserved_3y,NA,0.166933,USD,Azure Retail Prices API,2025-12-18T04:45:37.479006 +AZURE,uksouth,Standard_D8a_v4,spot,NA,0.05772,USD,Azure Retail Prices API,2025-12-18T04:45:35.129601 +AZURE,uksouth,Standard_D8ads_v5,on_demand,NA,0.848,USD,Azure Retail Prices API,2025-12-18T04:45:35.128416 +AZURE,uksouth,Standard_D8ads_v5,reserved_1y,NA,0.283219,USD,Azure Retail Prices API,2025-12-18T04:45:37.478686 +AZURE,uksouth,Standard_D8ads_v5,reserved_3y,NA,0.182382,USD,Azure Retail Prices API,2025-12-18T04:45:37.478689 +AZURE,uksouth,Standard_D8ads_v5,spot,NA,0.0624,USD,Azure Retail Prices API,2025-12-18T04:45:35.129658 +AZURE,uksouth,Standard_D8ads_v6,on_demand,NA,0.53,USD,Azure Retail Prices API,2025-12-18T04:45:35.128492 +AZURE,uksouth,Standard_D8ads_v6,reserved_1y,NA,0.3129,USD,Azure Retail Prices API,2025-12-18T04:45:37.477054 +AZURE,uksouth,Standard_D8ads_v6,reserved_3y,NA,0.20156,USD,Azure Retail Prices API,2025-12-18T04:45:37.477057 +AZURE,uksouth,Standard_D8ads_v6,spot,NA,0.0689,USD,Azure Retail Prices API,2025-12-18T04:45:35.129888 +AZURE,uksouth,Standard_D8as_v4,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:45:35.128335 +AZURE,uksouth,Standard_D8as_v4,reserved_1y,NA,0.261073,USD,Azure Retail Prices API,2025-12-18T04:45:37.476895 +AZURE,uksouth,Standard_D8as_v4,reserved_3y,NA,0.166933,USD,Azure Retail Prices API,2025-12-18T04:45:37.476898 +AZURE,uksouth,Standard_D8as_v4,spot,NA,0.05772,USD,Azure Retail Prices API,2025-12-18T04:45:35.129794 +AZURE,uksouth,Standard_D8as_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:35.128280 +AZURE,uksouth,Standard_D8as_v5,reserved_1y,NA,0.235959,USD,Azure Retail Prices API,2025-12-18T04:45:37.478459 +AZURE,uksouth,Standard_D8as_v5,reserved_3y,NA,0.152017,USD,Azure Retail Prices API,2025-12-18T04:45:37.478462 +AZURE,uksouth,Standard_D8as_v5,spot,NA,0.052,USD,Azure Retail Prices API,2025-12-18T04:45:35.129606 +AZURE,uksouth,Standard_D8d_v4,on_demand,NA,0.524,USD,Azure Retail Prices API,2025-12-18T04:45:35.128678 +AZURE,uksouth,Standard_D8d_v4,reserved_1y,NA,0.308105,USD,Azure Retail Prices API,2025-12-18T04:45:37.477291 +AZURE,uksouth,Standard_D8d_v4,reserved_3y,NA,0.197032,USD,Azure Retail Prices API,2025-12-18T04:45:37.477294 +AZURE,uksouth,Standard_D8d_v4,spot,NA,0.06812,USD,Azure Retail Prices API,2025-12-18T04:45:35.128314 +AZURE,uksouth,Standard_D8ds_v4,on_demand,NA,0.524,USD,Azure Retail Prices API,2025-12-18T04:45:35.128843 +AZURE,uksouth,Standard_D8ds_v4,reserved_1y,NA,0.308105,USD,Azure Retail Prices API,2025-12-18T04:45:37.477406 +AZURE,uksouth,Standard_D8ds_v4,reserved_3y,NA,0.197032,USD,Azure Retail Prices API,2025-12-18T04:45:37.477409 +AZURE,uksouth,Standard_D8ds_v4,spot,NA,0.06812,USD,Azure Retail Prices API,2025-12-18T04:45:35.128849 +AZURE,uksouth,Standard_D8ds_v5,on_demand,NA,0.524,USD,Azure Retail Prices API,2025-12-18T04:45:35.129187 +AZURE,uksouth,Standard_D8ds_v5,reserved_1y,NA,0.309132,USD,Azure Retail Prices API,2025-12-18T04:45:37.477806 +AZURE,uksouth,Standard_D8ds_v5,reserved_3y,NA,0.199125,USD,Azure Retail Prices API,2025-12-18T04:45:37.477811 +AZURE,uksouth,Standard_D8ds_v5,spot,NA,0.06812,USD,Azure Retail Prices API,2025-12-18T04:45:35.128939 +AZURE,uksouth,Standard_D8ds_v6,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:45:35.129688 +AZURE,uksouth,Standard_D8ds_v6,reserved_1y,NA,0.357306,USD,Azure Retail Prices API,2025-12-18T04:45:37.478593 +AZURE,uksouth,Standard_D8ds_v6,reserved_3y,NA,0.224734,USD,Azure Retail Prices API,2025-12-18T04:45:37.478596 +AZURE,uksouth,Standard_D8ds_v6,spot,NA,0.06912,USD,Azure Retail Prices API,2025-12-18T04:45:35.128954 +AZURE,uksouth,Standard_D8pds_v6,on_demand,NA,0.423,USD,Azure Retail Prices API,2025-12-18T04:45:35.128964 +AZURE,uksouth,Standard_D8pds_v6,reserved_1y,NA,0.249658,USD,Azure Retail Prices API,2025-12-18T04:45:37.477497 +AZURE,uksouth,Standard_D8pds_v6,reserved_3y,NA,0.160807,USD,Azure Retail Prices API,2025-12-18T04:45:37.477500 +AZURE,uksouth,Standard_D8pds_v6,spot,NA,0.05076,USD,Azure Retail Prices API,2025-12-18T04:45:35.129776 +AZURE,uksouth,Standard_D8ps_v6,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:45:35.129071 +AZURE,uksouth,Standard_D8ps_v6,reserved_1y,NA,0.19121,USD,Azure Retail Prices API,2025-12-18T04:45:37.477633 +AZURE,uksouth,Standard_D8ps_v6,reserved_3y,NA,0.123135,USD,Azure Retail Prices API,2025-12-18T04:45:37.477637 +AZURE,uksouth,Standard_D8ps_v6,spot,NA,0.03888,USD,Azure Retail Prices API,2025-12-18T04:45:35.129445 +AZURE,uksouth,Standard_D8s_v3,on_demand,NA,0.464,USD,Azure Retail Prices API,2025-12-18T04:45:35.130077 +AZURE,uksouth,Standard_D8s_v3,reserved_1y,NA,0.29395,USD,Azure Retail Prices API,2025-12-18T04:45:37.478993 +AZURE,uksouth,Standard_D8s_v3,reserved_3y,NA,0.199277,USD,Azure Retail Prices API,2025-12-18T04:45:37.478997 +AZURE,uksouth,Standard_D8s_v3,spot,NA,0.05568,USD,Azure Retail Prices API,2025-12-18T04:45:35.129770 +AZURE,uksouth,Standard_D8s_v4,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:45:35.129056 +AZURE,uksouth,Standard_D8s_v4,reserved_1y,NA,0.261073,USD,Azure Retail Prices API,2025-12-18T04:45:37.477597 +AZURE,uksouth,Standard_D8s_v4,reserved_3y,NA,0.166933,USD,Azure Retail Prices API,2025-12-18T04:45:37.477602 +AZURE,uksouth,Standard_D8s_v4,spot,NA,0.05772,USD,Azure Retail Prices API,2025-12-18T04:45:35.130101 +AZURE,uksouth,Standard_D8s_v5,on_demand,NA,0.444,USD,Azure Retail Prices API,2025-12-18T04:45:35.128501 +AZURE,uksouth,Standard_D8s_v5,reserved_1y,NA,0.261986,USD,Azure Retail Prices API,2025-12-18T04:45:37.477060 +AZURE,uksouth,Standard_D8s_v5,reserved_3y,NA,0.164269,USD,Azure Retail Prices API,2025-12-18T04:45:37.477063 +AZURE,uksouth,Standard_D8s_v5,spot,NA,0.05772,USD,Azure Retail Prices API,2025-12-18T04:45:35.129223 +AZURE,uksouth,Standard_D96a_v4,on_demand,NA,5.328,USD,Azure Retail Prices API,2025-12-18T04:45:35.129945 +AZURE,uksouth,Standard_D96a_v4,reserved_1y,NA,3.132877,USD,Azure Retail Prices API,2025-12-18T04:45:37.478839 +AZURE,uksouth,Standard_D96a_v4,reserved_3y,NA,2.003311,USD,Azure Retail Prices API,2025-12-18T04:45:37.478842 +AZURE,uksouth,Standard_D96a_v4,spot,NA,0.69264,USD,Azure Retail Prices API,2025-12-18T04:45:35.129823 +AZURE,uksouth,Standard_D96ads_v5,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:45:35.129494 +AZURE,uksouth,Standard_D96ads_v5,reserved_1y,NA,3.398402,USD,Azure Retail Prices API,2025-12-18T04:45:37.478354 +AZURE,uksouth,Standard_D96ads_v5,reserved_3y,NA,2.188813,USD,Azure Retail Prices API,2025-12-18T04:45:37.478358 +AZURE,uksouth,Standard_D96ads_v5,spot,NA,0.7488,USD,Azure Retail Prices API,2025-12-18T04:45:35.128277 +AZURE,uksouth,Standard_D96ads_v6,on_demand,NA,6.365,USD,Azure Retail Prices API,2025-12-18T04:45:35.130089 +AZURE,uksouth,Standard_D96ads_v6,reserved_1y,NA,3.755251,USD,Azure Retail Prices API,2025-12-18T04:45:37.479010 +AZURE,uksouth,Standard_D96ads_v6,reserved_3y,NA,2.418607,USD,Azure Retail Prices API,2025-12-18T04:45:37.479014 +AZURE,uksouth,Standard_D96ads_v6,spot,NA,0.82745,USD,Azure Retail Prices API,2025-12-18T04:45:35.128223 +AZURE,uksouth,Standard_D96as_v4,on_demand,NA,5.328,USD,Azure Retail Prices API,2025-12-18T04:45:35.130054 +AZURE,uksouth,Standard_D96as_v4,reserved_1y,NA,3.132877,USD,Azure Retail Prices API,2025-12-18T04:45:37.478947 +AZURE,uksouth,Standard_D96as_v4,reserved_3y,NA,2.003311,USD,Azure Retail Prices API,2025-12-18T04:45:37.478951 +AZURE,uksouth,Standard_D96as_v4,spot,NA,0.69264,USD,Azure Retail Prices API,2025-12-18T04:45:35.128495 +AZURE,uksouth,Standard_D96as_v5,on_demand,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:45:35.128274 +AZURE,uksouth,Standard_D96as_v5,reserved_1y,NA,2.831963,USD,Azure Retail Prices API,2025-12-18T04:45:37.476797 +AZURE,uksouth,Standard_D96as_v5,reserved_3y,NA,1.824011,USD,Azure Retail Prices API,2025-12-18T04:45:37.476802 +AZURE,uksouth,Standard_D96as_v5,spot,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:45:35.128384 +AZURE,uksouth,Standard_D96ds_v5,on_demand,NA,6.288,USD,Azure Retail Prices API,2025-12-18T04:45:35.129261 +AZURE,uksouth,Standard_D96ds_v5,reserved_1y,NA,3.709932,USD,Azure Retail Prices API,2025-12-18T04:45:37.477968 +AZURE,uksouth,Standard_D96ds_v5,reserved_3y,NA,2.389422,USD,Azure Retail Prices API,2025-12-18T04:45:37.477972 +AZURE,uksouth,Standard_D96ds_v5,spot,NA,0.81744,USD,Azure Retail Prices API,2025-12-18T04:45:35.129852 +AZURE,uksouth,Standard_D96ds_v6,on_demand,NA,6.915,USD,Azure Retail Prices API,2025-12-18T04:45:35.128262 +AZURE,uksouth,Standard_D96ds_v6,reserved_1y,NA,4.287215,USD,Azure Retail Prices API,2025-12-18T04:45:37.476776 +AZURE,uksouth,Standard_D96ds_v6,reserved_3y,NA,2.696804,USD,Azure Retail Prices API,2025-12-18T04:45:37.476781 +AZURE,uksouth,Standard_D96ds_v6,spot,NA,0.8298,USD,Azure Retail Prices API,2025-12-18T04:45:35.128259 +AZURE,uksouth,Standard_D96pds_v6,on_demand,NA,5.078,USD,Azure Retail Prices API,2025-12-18T04:45:35.128286 +AZURE,uksouth,Standard_D96pds_v6,reserved_1y,NA,2.996233,USD,Azure Retail Prices API,2025-12-18T04:45:37.476806 +AZURE,uksouth,Standard_D96pds_v6,reserved_3y,NA,1.929795,USD,Azure Retail Prices API,2025-12-18T04:45:37.476812 +AZURE,uksouth,Standard_D96pds_v6,spot,NA,0.60936,USD,Azure Retail Prices API,2025-12-18T04:45:35.129696 +AZURE,uksouth,Standard_D96ps_v6,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:45:35.130012 +AZURE,uksouth,Standard_D96ps_v6,reserved_1y,NA,2.29395,USD,Azure Retail Prices API,2025-12-18T04:45:37.478874 +AZURE,uksouth,Standard_D96ps_v6,reserved_3y,NA,1.477435,USD,Azure Retail Prices API,2025-12-18T04:45:37.478877 +AZURE,uksouth,Standard_D96ps_v6,spot,NA,0.46656,USD,Azure Retail Prices API,2025-12-18T04:45:35.129011 +AZURE,uksouth,Standard_D96s_v5,on_demand,NA,5.328,USD,Azure Retail Prices API,2025-12-18T04:45:35.129708 +AZURE,uksouth,Standard_D96s_v5,reserved_1y,NA,3.143493,USD,Azure Retail Prices API,2025-12-18T04:45:37.478622 +AZURE,uksouth,Standard_D96s_v5,reserved_3y,NA,1.971347,USD,Azure Retail Prices API,2025-12-18T04:45:37.478624 +AZURE,uksouth,Standard_D96s_v5,spot,NA,0.69264,USD,Azure Retail Prices API,2025-12-18T04:45:35.128654 +AZURE,uksouth,Standard_DC16ads_v5,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:45:35.129059 +AZURE,uksouth,Standard_DC16ads_v5,reserved_1y,NA,0.768037,USD,Azure Retail Prices API,2025-12-18T04:45:37.477606 +AZURE,uksouth,Standard_DC16ads_v5,reserved_3y,NA,0.575989,USD,Azure Retail Prices API,2025-12-18T04:45:37.477611 +AZURE,uksouth,Standard_DC16ads_v5,spot,NA,0.181152,USD,Azure Retail Prices API,2025-12-18T04:45:35.129504 +AZURE,uksouth,Standard_DC16ads_v6,on_demand,NA,1.061,USD,Azure Retail Prices API,2025-12-18T04:45:35.129017 +AZURE,uksouth,Standard_DC16ads_v6,reserved_1y,NA,0.625913,USD,Azure Retail Prices API,2025-12-18T04:45:37.477554 +AZURE,uksouth,Standard_DC16ads_v6,reserved_3y,NA,0.40312,USD,Azure Retail Prices API,2025-12-18T04:45:37.477558 +AZURE,uksouth,Standard_DC16ads_v6,spot,NA,0.196073,USD,Azure Retail Prices API,2025-12-18T04:45:35.129811 +AZURE,uksouth,Standard_DC16as_v5,on_demand,NA,0.8,USD,Azure Retail Prices API,2025-12-18T04:45:35.129855 +AZURE,uksouth,Standard_DC16as_v5,reserved_1y,NA,0.639954,USD,Azure Retail Prices API,2025-12-18T04:45:37.478760 +AZURE,uksouth,Standard_DC16as_v5,reserved_3y,NA,0.479985,USD,Azure Retail Prices API,2025-12-18T04:45:37.478763 +AZURE,uksouth,Standard_DC16as_v5,spot,NA,0.15096,USD,Azure Retail Prices API,2025-12-18T04:45:35.128943 +AZURE,uksouth,Standard_DC2ads_v6,on_demand,NA,0.133,USD,Azure Retail Prices API,2025-12-18T04:45:35.129370 +AZURE,uksouth,Standard_DC2ads_v6,reserved_1y,NA,0.078196,USD,Azure Retail Prices API,2025-12-18T04:45:37.478163 +AZURE,uksouth,Standard_DC2ads_v6,reserved_3y,NA,0.050381,USD,Azure Retail Prices API,2025-12-18T04:45:37.478168 +AZURE,uksouth,Standard_DC2ads_v6,spot,NA,0.024578,USD,Azure Retail Prices API,2025-12-18T04:45:35.129522 +AZURE,uksouth,Standard_DC32ads_v5,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:45:35.128905 +AZURE,uksouth,Standard_DC32ads_v5,reserved_1y,NA,1.535959,USD,Azure Retail Prices API,2025-12-18T04:45:37.477447 +AZURE,uksouth,Standard_DC32ads_v5,reserved_3y,NA,1.152017,USD,Azure Retail Prices API,2025-12-18T04:45:37.477449 +AZURE,uksouth,Standard_DC32ads_v5,spot,NA,0.362304,USD,Azure Retail Prices API,2025-12-18T04:45:35.130019 +AZURE,uksouth,Standard_DC32ads_v6,on_demand,NA,2.122,USD,Azure Retail Prices API,2025-12-18T04:45:35.128928 +AZURE,uksouth,Standard_DC32ads_v6,reserved_1y,NA,1.251712,USD,Azure Retail Prices API,2025-12-18T04:45:37.477463 +AZURE,uksouth,Standard_DC32ads_v6,reserved_3y,NA,0.806202,USD,Azure Retail Prices API,2025-12-18T04:45:37.477466 +AZURE,uksouth,Standard_DC32ads_v6,spot,NA,0.392146,USD,Azure Retail Prices API,2025-12-18T04:45:35.129730 +AZURE,uksouth,Standard_DC32as_v5,on_demand,NA,1.6,USD,Azure Retail Prices API,2025-12-18T04:45:35.129207 +AZURE,uksouth,Standard_DC32as_v5,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:45:37.477879 +AZURE,uksouth,Standard_DC32as_v5,reserved_3y,NA,0.960008,USD,Azure Retail Prices API,2025-12-18T04:45:37.477885 +AZURE,uksouth,Standard_DC32as_v5,spot,NA,0.30192,USD,Azure Retail Prices API,2025-12-18T04:45:35.130083 +AZURE,uksouth,Standard_DC48ads_v5,on_demand,NA,2.88,USD,Azure Retail Prices API,2025-12-18T04:45:35.129564 +AZURE,uksouth,Standard_DC48ads_v5,reserved_1y,NA,2.303995,USD,Azure Retail Prices API,2025-12-18T04:45:37.478471 +AZURE,uksouth,Standard_DC48ads_v5,reserved_3y,NA,1.728006,USD,Azure Retail Prices API,2025-12-18T04:45:37.478474 +AZURE,uksouth,Standard_DC48ads_v5,spot,NA,0.543456,USD,Azure Retail Prices API,2025-12-18T04:45:35.128292 +AZURE,uksouth,Standard_DC48ads_v6,on_demand,NA,3.182,USD,Azure Retail Prices API,2025-12-18T04:45:35.129874 +AZURE,uksouth,Standard_DC48ads_v6,reserved_1y,NA,1.877626,USD,Azure Retail Prices API,2025-12-18T04:45:37.478789 +AZURE,uksouth,Standard_DC48ads_v6,reserved_3y,NA,1.209323,USD,Azure Retail Prices API,2025-12-18T04:45:37.478792 +AZURE,uksouth,Standard_DC48ads_v6,spot,NA,0.588034,USD,Azure Retail Prices API,2025-12-18T04:45:35.129339 +AZURE,uksouth,Standard_DC48as_v5,on_demand,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:45:35.128437 +AZURE,uksouth,Standard_DC48as_v5,reserved_1y,NA,1.919977,USD,Azure Retail Prices API,2025-12-18T04:45:37.477001 +AZURE,uksouth,Standard_DC48as_v5,reserved_3y,NA,1.439992,USD,Azure Retail Prices API,2025-12-18T04:45:37.477004 +AZURE,uksouth,Standard_DC48as_v5,spot,NA,0.45288,USD,Azure Retail Prices API,2025-12-18T04:45:35.129718 +AZURE,uksouth,Standard_DC4ads_v5,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:45:35.129513 +AZURE,uksouth,Standard_DC4ads_v5,reserved_1y,NA,0.192009,USD,Azure Retail Prices API,2025-12-18T04:45:37.478391 +AZURE,uksouth,Standard_DC4ads_v5,reserved_3y,NA,0.143988,USD,Azure Retail Prices API,2025-12-18T04:45:37.478396 +AZURE,uksouth,Standard_DC4ads_v5,spot,NA,0.045288,USD,Azure Retail Prices API,2025-12-18T04:45:35.128734 +AZURE,uksouth,Standard_DC4ads_v6,on_demand,NA,0.265,USD,Azure Retail Prices API,2025-12-18T04:45:35.129761 +AZURE,uksouth,Standard_DC4ads_v6,reserved_1y,NA,0.156507,USD,Azure Retail Prices API,2025-12-18T04:45:37.478680 +AZURE,uksouth,Standard_DC4ads_v6,reserved_3y,NA,0.100761,USD,Azure Retail Prices API,2025-12-18T04:45:37.478683 +AZURE,uksouth,Standard_DC4ads_v6,spot,NA,0.048972,USD,Azure Retail Prices API,2025-12-18T04:45:35.128361 +AZURE,uksouth,Standard_DC4as_v5,on_demand,NA,0.2,USD,Azure Retail Prices API,2025-12-18T04:45:35.128364 +AZURE,uksouth,Standard_DC4as_v5,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:45:37.476933 +AZURE,uksouth,Standard_DC4as_v5,reserved_3y,NA,0.120015,USD,Azure Retail Prices API,2025-12-18T04:45:37.476937 +AZURE,uksouth,Standard_DC4as_v5,spot,NA,0.03774,USD,Azure Retail Prices API,2025-12-18T04:45:35.129152 +AZURE,uksouth,Standard_DC64ads_v5,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:35.128657 +AZURE,uksouth,Standard_DC64ads_v5,reserved_1y,NA,3.072032,USD,Azure Retail Prices API,2025-12-18T04:45:37.477262 +AZURE,uksouth,Standard_DC64ads_v5,reserved_3y,NA,2.303995,USD,Azure Retail Prices API,2025-12-18T04:45:37.477264 +AZURE,uksouth,Standard_DC64ads_v5,spot,NA,0.724608,USD,Azure Retail Prices API,2025-12-18T04:45:35.129483 +AZURE,uksouth,Standard_DC64ads_v6,on_demand,NA,4.243,USD,Azure Retail Prices API,2025-12-18T04:45:35.128475 +AZURE,uksouth,Standard_DC64ads_v6,reserved_1y,NA,2.503539,USD,Azure Retail Prices API,2025-12-18T04:45:37.477037 +AZURE,uksouth,Standard_DC64ads_v6,reserved_3y,NA,1.612405,USD,Azure Retail Prices API,2025-12-18T04:45:37.477039 +AZURE,uksouth,Standard_DC64ads_v6,spot,NA,0.784106,USD,Azure Retail Prices API,2025-12-18T04:45:35.129008 +AZURE,uksouth,Standard_DC64as_v5,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:45:35.129820 +AZURE,uksouth,Standard_DC64as_v5,reserved_1y,NA,2.560046,USD,Azure Retail Prices API,2025-12-18T04:45:37.478727 +AZURE,uksouth,Standard_DC64as_v5,reserved_3y,NA,1.920015,USD,Azure Retail Prices API,2025-12-18T04:45:37.478729 +AZURE,uksouth,Standard_DC64as_v5,spot,NA,0.60384,USD,Azure Retail Prices API,2025-12-18T04:45:35.128373 +AZURE,uksouth,Standard_DC8ads_v5,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:45:35.128798 +AZURE,uksouth,Standard_DC8ads_v5,reserved_1y,NA,0.384018,USD,Azure Retail Prices API,2025-12-18T04:45:37.477355 +AZURE,uksouth,Standard_DC8ads_v5,reserved_3y,NA,0.288014,USD,Azure Retail Prices API,2025-12-18T04:45:37.477357 +AZURE,uksouth,Standard_DC8ads_v5,spot,NA,0.090576,USD,Azure Retail Prices API,2025-12-18T04:45:35.129181 +AZURE,uksouth,Standard_DC8ads_v6,on_demand,NA,0.53,USD,Azure Retail Prices API,2025-12-18T04:45:35.129195 +AZURE,uksouth,Standard_DC8ads_v6,reserved_1y,NA,0.3129,USD,Azure Retail Prices API,2025-12-18T04:45:37.477847 +AZURE,uksouth,Standard_DC8ads_v6,reserved_3y,NA,0.20156,USD,Azure Retail Prices API,2025-12-18T04:45:37.477853 +AZURE,uksouth,Standard_DC8ads_v6,spot,NA,0.097944,USD,Azure Retail Prices API,2025-12-18T04:45:35.129376 +AZURE,uksouth,Standard_DC8as_v5,on_demand,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:45:35.128626 +AZURE,uksouth,Standard_DC8as_v5,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:45:37.477243 +AZURE,uksouth,Standard_DC8as_v5,reserved_3y,NA,0.239992,USD,Azure Retail Prices API,2025-12-18T04:45:37.477246 +AZURE,uksouth,Standard_DC8as_v5,spot,NA,0.07548,USD,Azure Retail Prices API,2025-12-18T04:45:35.128635 +AZURE,uksouth,Standard_DC96ads_v5,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:45:35.129714 +AZURE,uksouth,Standard_DC96ads_v5,reserved_1y,NA,4.607991,USD,Azure Retail Prices API,2025-12-18T04:45:37.478633 +AZURE,uksouth,Standard_DC96ads_v5,reserved_3y,NA,3.456012,USD,Azure Retail Prices API,2025-12-18T04:45:37.478636 +AZURE,uksouth,Standard_DC96ads_v5,spot,NA,1.086912,USD,Azure Retail Prices API,2025-12-18T04:45:35.128510 +AZURE,uksouth,Standard_DC96ads_v6,on_demand,NA,6.365,USD,Azure Retail Prices API,2025-12-18T04:45:35.129840 +AZURE,uksouth,Standard_DC96ads_v6,reserved_1y,NA,3.755251,USD,Azure Retail Prices API,2025-12-18T04:45:37.478743 +AZURE,uksouth,Standard_DC96ads_v6,reserved_3y,NA,2.418607,USD,Azure Retail Prices API,2025-12-18T04:45:37.478746 +AZURE,uksouth,Standard_DC96ads_v6,spot,NA,1.176252,USD,Azure Retail Prices API,2025-12-18T04:45:35.129618 +AZURE,uksouth,Standard_DC96as_v5,on_demand,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:45:35.130048 +AZURE,uksouth,Standard_DC96as_v5,reserved_1y,NA,3.839954,USD,Azure Retail Prices API,2025-12-18T04:45:37.478928 +AZURE,uksouth,Standard_DC96as_v5,reserved_3y,NA,2.879985,USD,Azure Retail Prices API,2025-12-18T04:45:37.478933 +AZURE,uksouth,Standard_DC96as_v5,spot,NA,0.90576,USD,Azure Retail Prices API,2025-12-18T04:45:35.129533 +AZURE,uksouth,Standard_DS12_v2,on_demand,NA,0.4081,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495287 +AZURE,uksouth,Standard_DS12_v2,reserved_1y,NA,0.24486,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495299 +AZURE,uksouth,Standard_DS12_v2,reserved_3y,NA,0.16324,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495303 +AZURE,uksouth,Standard_DS12_v2,spot,NA,0.12243,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495295 +AZURE,uksouth,Standard_DS13_v2,on_demand,NA,0.8151,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496154 +AZURE,uksouth,Standard_DS13_v2,reserved_1y,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496163 +AZURE,uksouth,Standard_DS13_v2,reserved_3y,NA,0.32604,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496167 +AZURE,uksouth,Standard_DS13_v2,spot,NA,0.24453,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496159 +AZURE,uksouth,Standard_DS14_v2,on_demand,NA,1.6302,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496916 +AZURE,uksouth,Standard_DS14_v2,reserved_1y,NA,0.97812,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496927 +AZURE,uksouth,Standard_DS14_v2,reserved_3y,NA,0.65208,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496931 +AZURE,uksouth,Standard_DS14_v2,spot,NA,0.48906,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496920 +AZURE,uksouth,Standard_DS15_v2,on_demand,NA,2.0383,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497809 +AZURE,uksouth,Standard_DS15_v2,reserved_1y,NA,1.22298,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497817 +AZURE,uksouth,Standard_DS15_v2,reserved_3y,NA,0.81532,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497822 +AZURE,uksouth,Standard_DS15_v2,spot,NA,0.61149,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497813 +AZURE,uksouth,Standard_DS1_v2,on_demand,NA,0.0803,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491643 +AZURE,uksouth,Standard_DS1_v2,reserved_1y,NA,0.04818,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491651 +AZURE,uksouth,Standard_DS1_v2,reserved_3y,NA,0.03212,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491655 +AZURE,uksouth,Standard_DS1_v2,spot,NA,0.02409,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491647 +AZURE,uksouth,Standard_DS2_v2,on_demand,NA,0.1606,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492388 +AZURE,uksouth,Standard_DS2_v2,reserved_1y,NA,0.09636,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492397 +AZURE,uksouth,Standard_DS2_v2,reserved_3y,NA,0.06424,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492401 +AZURE,uksouth,Standard_DS2_v2,spot,NA,0.04818,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492392 +AZURE,uksouth,Standard_DS3_v2,on_demand,NA,0.3223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493098 +AZURE,uksouth,Standard_DS3_v2,reserved_1y,NA,0.19338,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493117 +AZURE,uksouth,Standard_DS3_v2,reserved_3y,NA,0.12892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493122 +AZURE,uksouth,Standard_DS3_v2,spot,NA,0.09669,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493102 +AZURE,uksouth,Standard_DS4_v2,on_demand,NA,0.6435,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493823 +AZURE,uksouth,Standard_DS4_v2,reserved_1y,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493831 +AZURE,uksouth,Standard_DS4_v2,reserved_3y,NA,0.2574,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493835 +AZURE,uksouth,Standard_DS4_v2,spot,NA,0.19305,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493827 +AZURE,uksouth,Standard_DS5_v2,on_demand,NA,1.287,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494535 +AZURE,uksouth,Standard_DS5_v2,reserved_1y,NA,0.7722,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494543 +AZURE,uksouth,Standard_DS5_v2,reserved_3y,NA,0.5148,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494548 +AZURE,uksouth,Standard_DS5_v2,spot,NA,0.3861,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494539 +AZURE,uksouth,Standard_E128ds_v6,on_demand,NA,12.293,USD,Azure Retail Prices API,2025-12-18T04:45:35.128824 +AZURE,uksouth,Standard_E128ds_v6,reserved_1y,NA,7.621689,USD,Azure Retail Prices API,2025-12-18T04:45:37.477383 +AZURE,uksouth,Standard_E128ds_v6,reserved_3y,NA,4.79433,USD,Azure Retail Prices API,2025-12-18T04:45:37.477386 +AZURE,uksouth,Standard_E128ds_v6,spot,NA,1.47516,USD,Azure Retail Prices API,2025-12-18T04:45:35.129354 +AZURE,uksouth,Standard_E16_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:45:35.129843 +AZURE,uksouth,Standard_E16_v3,reserved_1y,NA,0.73379,USD,Azure Retail Prices API,2025-12-18T04:45:37.478749 +AZURE,uksouth,Standard_E16_v3,reserved_3y,NA,0.469254,USD,Azure Retail Prices API,2025-12-18T04:45:37.478752 +AZURE,uksouth,Standard_E16_v3,spot,NA,0.14976,USD,Azure Retail Prices API,2025-12-18T04:45:35.129748 +AZURE,uksouth,Standard_E16a_v4,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:35.129675 +AZURE,uksouth,Standard_E16a_v4,reserved_1y,NA,0.696233,USD,Azure Retail Prices API,2025-12-18T04:45:37.478575 +AZURE,uksouth,Standard_E16a_v4,reserved_3y,NA,0.445167,USD,Azure Retail Prices API,2025-12-18T04:45:37.478578 +AZURE,uksouth,Standard_E16a_v4,spot,NA,0.14208,USD,Azure Retail Prices API,2025-12-18T04:45:35.128483 +AZURE,uksouth,Standard_E16ads_v5,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:45:35.128867 +AZURE,uksouth,Standard_E16ads_v5,reserved_1y,NA,0.726826,USD,Azure Retail Prices API,2025-12-18T04:45:37.479018 +AZURE,uksouth,Standard_E16ads_v5,reserved_3y,NA,0.468151,USD,Azure Retail Prices API,2025-12-18T04:45:37.479023 +AZURE,uksouth,Standard_E16ads_v5,spot,NA,0.14784,USD,Azure Retail Prices API,2025-12-18T04:45:35.128780 +AZURE,uksouth,Standard_E16ads_v6,on_demand,NA,1.35,USD,Azure Retail Prices API,2025-12-18T04:45:35.130009 +AZURE,uksouth,Standard_E16ads_v6,reserved_1y,NA,0.796689,USD,Azure Retail Prices API,2025-12-18T04:45:37.478869 +AZURE,uksouth,Standard_E16ads_v6,reserved_3y,NA,0.513166,USD,Azure Retail Prices API,2025-12-18T04:45:37.478871 +AZURE,uksouth,Standard_E16ads_v6,spot,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:45:35.128747 +AZURE,uksouth,Standard_E16as_v4,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:35.129867 +AZURE,uksouth,Standard_E16as_v4,reserved_1y,NA,0.696233,USD,Azure Retail Prices API,2025-12-18T04:45:37.478772 +AZURE,uksouth,Standard_E16as_v4,reserved_3y,NA,0.445167,USD,Azure Retail Prices API,2025-12-18T04:45:37.478775 +AZURE,uksouth,Standard_E16as_v4,spot,NA,0.14208,USD,Azure Retail Prices API,2025-12-18T04:45:35.129427 +AZURE,uksouth,Standard_E16as_v5,on_demand,NA,1.8,USD,Azure Retail Prices API,2025-12-18T04:45:35.129226 +AZURE,uksouth,Standard_E16as_v5,reserved_1y,NA,0.62774,USD,Azure Retail Prices API,2025-12-18T04:45:37.478599 +AZURE,uksouth,Standard_E16as_v5,reserved_3y,NA,0.404338,USD,Azure Retail Prices API,2025-12-18T04:45:37.478602 +AZURE,uksouth,Standard_E16as_v5,spot,NA,0.12768,USD,Azure Retail Prices API,2025-12-18T04:45:35.129699 +AZURE,uksouth,Standard_E16d_v4,on_demand,NA,1.352,USD,Azure Retail Prices API,2025-12-18T04:45:35.129467 +AZURE,uksouth,Standard_E16d_v4,reserved_1y,NA,0.794977,USD,Azure Retail Prices API,2025-12-18T04:45:37.478298 +AZURE,uksouth,Standard_E16d_v4,reserved_3y,NA,0.508333,USD,Azure Retail Prices API,2025-12-18T04:45:37.478303 +AZURE,uksouth,Standard_E16d_v4,spot,NA,0.16224,USD,Azure Retail Prices API,2025-12-18T04:45:35.129595 +AZURE,uksouth,Standard_E16ds_v4,on_demand,NA,1.352,USD,Azure Retail Prices API,2025-12-18T04:45:35.129586 +AZURE,uksouth,Standard_E16ds_v4,reserved_1y,NA,0.794977,USD,Azure Retail Prices API,2025-12-18T04:45:37.478497 +AZURE,uksouth,Standard_E16ds_v4,reserved_3y,NA,0.508333,USD,Azure Retail Prices API,2025-12-18T04:45:37.478500 +AZURE,uksouth,Standard_E16ds_v4,spot,NA,0.16224,USD,Azure Retail Prices API,2025-12-18T04:45:35.129755 +AZURE,uksouth,Standard_E16ds_v5,on_demand,NA,1.352,USD,Azure Retail Prices API,2025-12-18T04:45:35.129670 +AZURE,uksouth,Standard_E16ds_v5,reserved_1y,NA,0.797717,USD,Azure Retail Prices API,2025-12-18T04:45:37.478564 +AZURE,uksouth,Standard_E16ds_v5,reserved_3y,NA,0.513775,USD,Azure Retail Prices API,2025-12-18T04:45:37.478567 +AZURE,uksouth,Standard_E16ds_v5,spot,NA,0.16224,USD,Azure Retail Prices API,2025-12-18T04:45:35.128349 +AZURE,uksouth,Standard_E16ds_v6,on_demand,NA,1.537,USD,Azure Retail Prices API,2025-12-18T04:45:35.129633 +AZURE,uksouth,Standard_E16ds_v6,reserved_1y,NA,0.95274,USD,Azure Retail Prices API,2025-12-18T04:45:37.478533 +AZURE,uksouth,Standard_E16ds_v6,reserved_3y,NA,0.599277,USD,Azure Retail Prices API,2025-12-18T04:45:37.478536 +AZURE,uksouth,Standard_E16ds_v6,spot,NA,0.18444,USD,Azure Retail Prices API,2025-12-18T04:45:35.128332 +AZURE,uksouth,Standard_E16pds_v6,on_demand,NA,1.078,USD,Azure Retail Prices API,2025-12-18T04:45:35.129053 +AZURE,uksouth,Standard_E16pds_v6,reserved_1y,NA,0.636301,USD,Azure Retail Prices API,2025-12-18T04:45:37.477588 +AZURE,uksouth,Standard_E16pds_v6,reserved_3y,NA,0.409779,USD,Azure Retail Prices API,2025-12-18T04:45:37.477593 +AZURE,uksouth,Standard_E16pds_v6,spot,NA,0.12936,USD,Azure Retail Prices API,2025-12-18T04:45:35.128809 +AZURE,uksouth,Standard_E16ps_v6,on_demand,NA,0.85,USD,Azure Retail Prices API,2025-12-18T04:45:35.128328 +AZURE,uksouth,Standard_E16ps_v6,reserved_1y,NA,0.501256,USD,Azure Retail Prices API,2025-12-18T04:45:37.476889 +AZURE,uksouth,Standard_E16ps_v6,reserved_3y,NA,0.322831,USD,Azure Retail Prices API,2025-12-18T04:45:37.476892 +AZURE,uksouth,Standard_E16ps_v6,spot,NA,0.102,USD,Azure Retail Prices API,2025-12-18T04:45:35.129086 +AZURE,uksouth,Standard_E16s_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:45:35.128538 +AZURE,uksouth,Standard_E16s_v3,reserved_1y,NA,0.73379,USD,Azure Retail Prices API,2025-12-18T04:45:37.477108 +AZURE,uksouth,Standard_E16s_v3,reserved_3y,NA,0.469254,USD,Azure Retail Prices API,2025-12-18T04:45:37.477111 +AZURE,uksouth,Standard_E16s_v3,spot,NA,0.14976,USD,Azure Retail Prices API,2025-12-18T04:45:35.128555 +AZURE,uksouth,Standard_E16s_v4,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:35.129758 +AZURE,uksouth,Standard_E16s_v4,reserved_1y,NA,0.696233,USD,Azure Retail Prices API,2025-12-18T04:45:37.478674 +AZURE,uksouth,Standard_E16s_v4,reserved_3y,NA,0.445167,USD,Azure Retail Prices API,2025-12-18T04:45:37.478677 +AZURE,uksouth,Standard_E16s_v4,spot,NA,0.14208,USD,Azure Retail Prices API,2025-12-18T04:45:35.128876 +AZURE,uksouth,Standard_E16s_v5,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:35.128855 +AZURE,uksouth,Standard_E16s_v5,reserved_1y,NA,0.698516,USD,Azure Retail Prices API,2025-12-18T04:45:37.477412 +AZURE,uksouth,Standard_E16s_v5,reserved_3y,NA,0.43809,USD,Azure Retail Prices API,2025-12-18T04:45:37.477415 +AZURE,uksouth,Standard_E16s_v5,spot,NA,0.14208,USD,Azure Retail Prices API,2025-12-18T04:45:35.129990 +AZURE,uksouth,Standard_E20a_v4,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:35.128405 +AZURE,uksouth,Standard_E20a_v4,reserved_1y,NA,0.870434,USD,Azure Retail Prices API,2025-12-18T04:45:37.476972 +AZURE,uksouth,Standard_E20a_v4,reserved_3y,NA,0.556507,USD,Azure Retail Prices API,2025-12-18T04:45:37.476979 +AZURE,uksouth,Standard_E20a_v4,spot,NA,0.1776,USD,Azure Retail Prices API,2025-12-18T04:45:35.129098 +AZURE,uksouth,Standard_E20ads_v5,on_demand,NA,1.54,USD,Azure Retail Prices API,2025-12-18T04:45:35.128792 +AZURE,uksouth,Standard_E20ads_v5,reserved_1y,NA,0.908562,USD,Azure Retail Prices API,2025-12-18T04:45:37.477349 +AZURE,uksouth,Standard_E20ads_v5,reserved_3y,NA,0.585198,USD,Azure Retail Prices API,2025-12-18T04:45:37.477352 +AZURE,uksouth,Standard_E20ads_v5,spot,NA,0.1848,USD,Azure Retail Prices API,2025-12-18T04:45:35.130095 +AZURE,uksouth,Standard_E20ads_v6,on_demand,NA,1.688,USD,Azure Retail Prices API,2025-12-18T04:45:35.129742 +AZURE,uksouth,Standard_E20ads_v6,reserved_1y,NA,0.99589,USD,Azure Retail Prices API,2025-12-18T04:45:37.478668 +AZURE,uksouth,Standard_E20ads_v6,reserved_3y,NA,0.641438,USD,Azure Retail Prices API,2025-12-18T04:45:37.478671 +AZURE,uksouth,Standard_E20ads_v6,spot,NA,0.20256,USD,Azure Retail Prices API,2025-12-18T04:45:35.129773 +AZURE,uksouth,Standard_E20as_v4,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:35.129837 +AZURE,uksouth,Standard_E20as_v4,reserved_1y,NA,0.870434,USD,Azure Retail Prices API,2025-12-18T04:45:37.478737 +AZURE,uksouth,Standard_E20as_v4,reserved_3y,NA,0.556507,USD,Azure Retail Prices API,2025-12-18T04:45:37.478740 +AZURE,uksouth,Standard_E20as_v4,spot,NA,0.1776,USD,Azure Retail Prices API,2025-12-18T04:45:35.129691 +AZURE,uksouth,Standard_E20as_v5,on_demand,NA,1.33,USD,Azure Retail Prices API,2025-12-18T04:45:35.129290 +AZURE,uksouth,Standard_E20as_v5,reserved_1y,NA,0.784703,USD,Azure Retail Prices API,2025-12-18T04:45:37.477997 +AZURE,uksouth,Standard_E20as_v5,reserved_3y,NA,0.505403,USD,Azure Retail Prices API,2025-12-18T04:45:37.478002 +AZURE,uksouth,Standard_E20as_v5,spot,NA,0.1596,USD,Azure Retail Prices API,2025-12-18T04:45:35.128870 +AZURE,uksouth,Standard_E20d_v4,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:45:35.128370 +AZURE,uksouth,Standard_E20d_v4,reserved_1y,NA,0.993721,USD,Azure Retail Prices API,2025-12-18T04:45:37.476945 +AZURE,uksouth,Standard_E20d_v4,reserved_3y,NA,0.635464,USD,Azure Retail Prices API,2025-12-18T04:45:37.476948 +AZURE,uksouth,Standard_E20d_v4,spot,NA,0.2028,USD,Azure Retail Prices API,2025-12-18T04:45:35.129231 +AZURE,uksouth,Standard_E20ds_v4,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:45:35.129927 +AZURE,uksouth,Standard_E20ds_v4,reserved_1y,NA,0.993721,USD,Azure Retail Prices API,2025-12-18T04:45:37.478822 +AZURE,uksouth,Standard_E20ds_v4,reserved_3y,NA,0.635464,USD,Azure Retail Prices API,2025-12-18T04:45:37.478825 +AZURE,uksouth,Standard_E20ds_v4,spot,NA,0.2028,USD,Azure Retail Prices API,2025-12-18T04:45:35.128445 +AZURE,uksouth,Standard_E20ds_v5,on_demand,NA,1.69,USD,Azure Retail Prices API,2025-12-18T04:45:35.128198 +AZURE,uksouth,Standard_E20ds_v5,reserved_1y,NA,0.997146,USD,Azure Retail Prices API,2025-12-18T04:45:37.476726 +AZURE,uksouth,Standard_E20ds_v5,reserved_3y,NA,0.642199,USD,Azure Retail Prices API,2025-12-18T04:45:37.476740 +AZURE,uksouth,Standard_E20ds_v5,spot,NA,0.2028,USD,Azure Retail Prices API,2025-12-18T04:45:35.129310 +AZURE,uksouth,Standard_E20ds_v6,on_demand,NA,1.921,USD,Azure Retail Prices API,2025-12-18T04:45:35.129939 +AZURE,uksouth,Standard_E20ds_v6,reserved_1y,NA,1.190868,USD,Azure Retail Prices API,2025-12-18T04:45:37.478833 +AZURE,uksouth,Standard_E20ds_v6,reserved_3y,NA,0.749125,USD,Azure Retail Prices API,2025-12-18T04:45:37.478836 +AZURE,uksouth,Standard_E20ds_v6,spot,NA,0.23052,USD,Azure Retail Prices API,2025-12-18T04:45:35.129307 +AZURE,uksouth,Standard_E20s_v4,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:35.128674 +AZURE,uksouth,Standard_E20s_v4,reserved_1y,NA,0.870434,USD,Azure Retail Prices API,2025-12-18T04:45:37.477284 +AZURE,uksouth,Standard_E20s_v4,reserved_3y,NA,0.556507,USD,Azure Retail Prices API,2025-12-18T04:45:37.477288 +AZURE,uksouth,Standard_E20s_v4,spot,NA,0.1776,USD,Azure Retail Prices API,2025-12-18T04:45:35.129037 +AZURE,uksouth,Standard_E20s_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:35.128566 +AZURE,uksouth,Standard_E20s_v5,reserved_1y,NA,0.873174,USD,Azure Retail Prices API,2025-12-18T04:45:37.477163 +AZURE,uksouth,Standard_E20s_v5,reserved_3y,NA,0.547603,USD,Azure Retail Prices API,2025-12-18T04:45:37.477166 +AZURE,uksouth,Standard_E20s_v5,spot,NA,0.1776,USD,Azure Retail Prices API,2025-12-18T04:45:35.128789 +AZURE,uksouth,Standard_E2_v3,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:45:35.128807 +AZURE,uksouth,Standard_E2_v3,reserved_1y,NA,0.091781,USD,Azure Retail Prices API,2025-12-18T04:45:37.477367 +AZURE,uksouth,Standard_E2_v3,reserved_3y,NA,0.058638,USD,Azure Retail Prices API,2025-12-18T04:45:37.477369 +AZURE,uksouth,Standard_E2_v3,spot,NA,0.01872,USD,Azure Retail Prices API,2025-12-18T04:45:35.129407 +AZURE,uksouth,Standard_E2ads_v6,on_demand,NA,0.169,USD,Azure Retail Prices API,2025-12-18T04:45:35.128549 +AZURE,uksouth,Standard_E2ads_v6,reserved_1y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:45:37.477150 +AZURE,uksouth,Standard_E2ads_v6,reserved_3y,NA,0.064155,USD,Azure Retail Prices API,2025-12-18T04:45:37.477153 +AZURE,uksouth,Standard_E2ads_v6,spot,NA,0.02028,USD,Azure Retail Prices API,2025-12-18T04:45:35.128585 +AZURE,uksouth,Standard_E2ds_v5,on_demand,NA,0.169,USD,Azure Retail Prices API,2025-12-18T04:45:35.129882 +AZURE,uksouth,Standard_E2ds_v5,reserved_1y,NA,0.099658,USD,Azure Retail Prices API,2025-12-18T04:45:37.478795 +AZURE,uksouth,Standard_E2ds_v5,reserved_3y,NA,0.064231,USD,Azure Retail Prices API,2025-12-18T04:45:37.478798 +AZURE,uksouth,Standard_E2ds_v5,spot,NA,0.02028,USD,Azure Retail Prices API,2025-12-18T04:45:35.128931 +AZURE,uksouth,Standard_E2ds_v6,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:45:35.128946 +AZURE,uksouth,Standard_E2ds_v6,reserved_1y,NA,0.119064,USD,Azure Retail Prices API,2025-12-18T04:45:37.477480 +AZURE,uksouth,Standard_E2ds_v6,reserved_3y,NA,0.074924,USD,Azure Retail Prices API,2025-12-18T04:45:37.477483 +AZURE,uksouth,Standard_E2ds_v6,spot,NA,0.02304,USD,Azure Retail Prices API,2025-12-18T04:45:35.129800 +AZURE,uksouth,Standard_E2pds_v6,on_demand,NA,0.135,USD,Azure Retail Prices API,2025-12-18T04:45:35.129899 +AZURE,uksouth,Standard_E2pds_v6,reserved_1y,NA,0.079566,USD,Azure Retail Prices API,2025-12-18T04:45:37.478806 +AZURE,uksouth,Standard_E2pds_v6,reserved_3y,NA,0.051218,USD,Azure Retail Prices API,2025-12-18T04:45:37.478808 +AZURE,uksouth,Standard_E2pds_v6,spot,NA,0.0162,USD,Azure Retail Prices API,2025-12-18T04:45:35.129624 +AZURE,uksouth,Standard_E32_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:35.129398 +AZURE,uksouth,Standard_E32_v3,reserved_1y,NA,1.467694,USD,Azure Retail Prices API,2025-12-18T04:45:37.478204 +AZURE,uksouth,Standard_E32_v3,reserved_3y,NA,0.938508,USD,Azure Retail Prices API,2025-12-18T04:45:37.478208 +AZURE,uksouth,Standard_E32_v3,spot,NA,0.29952,USD,Azure Retail Prices API,2025-12-18T04:45:35.128864 +AZURE,uksouth,Standard_E32a_v4,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:35.129711 +AZURE,uksouth,Standard_E32a_v4,reserved_1y,NA,1.392352,USD,Azure Retail Prices API,2025-12-18T04:45:37.478627 +AZURE,uksouth,Standard_E32a_v4,reserved_3y,NA,0.890373,USD,Azure Retail Prices API,2025-12-18T04:45:37.478630 +AZURE,uksouth,Standard_E32a_v4,spot,NA,0.28416,USD,Azure Retail Prices API,2025-12-18T04:45:35.129065 +AZURE,uksouth,Standard_E32ads_v5,on_demand,NA,2.464,USD,Azure Retail Prices API,2025-12-18T04:45:35.129360 +AZURE,uksouth,Standard_E32ads_v5,reserved_1y,NA,1.453767,USD,Azure Retail Prices API,2025-12-18T04:45:37.478130 +AZURE,uksouth,Standard_E32ads_v5,reserved_3y,NA,0.936301,USD,Azure Retail Prices API,2025-12-18T04:45:37.478134 +AZURE,uksouth,Standard_E32ads_v5,spot,NA,0.29568,USD,Azure Retail Prices API,2025-12-18T04:45:35.129897 +AZURE,uksouth,Standard_E32ads_v6,on_demand,NA,2.701,USD,Azure Retail Prices API,2025-12-18T04:45:35.128783 +AZURE,uksouth,Standard_E32ads_v6,reserved_1y,NA,1.593493,USD,Azure Retail Prices API,2025-12-18T04:45:37.477343 +AZURE,uksouth,Standard_E32ads_v6,reserved_3y,NA,1.026294,USD,Azure Retail Prices API,2025-12-18T04:45:37.477346 +AZURE,uksouth,Standard_E32ads_v6,spot,NA,0.32412,USD,Azure Retail Prices API,2025-12-18T04:45:35.129609 +AZURE,uksouth,Standard_E32as_v4,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:35.129637 +AZURE,uksouth,Standard_E32as_v4,reserved_1y,NA,1.392352,USD,Azure Retail Prices API,2025-12-18T04:45:37.478539 +AZURE,uksouth,Standard_E32as_v4,reserved_3y,NA,0.890373,USD,Azure Retail Prices API,2025-12-18T04:45:37.478542 +AZURE,uksouth,Standard_E32as_v4,spot,NA,0.28416,USD,Azure Retail Prices API,2025-12-18T04:45:35.128209 +AZURE,uksouth,Standard_E32as_v5,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:45:35.129083 +AZURE,uksouth,Standard_E32as_v5,reserved_1y,NA,1.255479,USD,Azure Retail Prices API,2025-12-18T04:45:37.477650 +AZURE,uksouth,Standard_E32as_v5,reserved_3y,NA,0.808638,USD,Azure Retail Prices API,2025-12-18T04:45:37.477656 +AZURE,uksouth,Standard_E32as_v5,spot,NA,0.25536,USD,Azure Retail Prices API,2025-12-18T04:45:35.128759 +AZURE,uksouth,Standard_E32d_v4,on_demand,NA,2.704,USD,Azure Retail Prices API,2025-12-18T04:45:35.129539 +AZURE,uksouth,Standard_E32d_v4,reserved_1y,NA,1.589954,USD,Azure Retail Prices API,2025-12-18T04:45:37.478447 +AZURE,uksouth,Standard_E32d_v4,reserved_3y,NA,1.016705,USD,Azure Retail Prices API,2025-12-18T04:45:37.478450 +AZURE,uksouth,Standard_E32d_v4,spot,NA,0.32448,USD,Azure Retail Prices API,2025-12-18T04:45:35.128256 +AZURE,uksouth,Standard_E32ds_v4,on_demand,NA,2.704,USD,Azure Retail Prices API,2025-12-18T04:45:35.128218 +AZURE,uksouth,Standard_E32ds_v4,reserved_1y,NA,1.589954,USD,Azure Retail Prices API,2025-12-18T04:45:37.476744 +AZURE,uksouth,Standard_E32ds_v4,reserved_3y,NA,1.016705,USD,Azure Retail Prices API,2025-12-18T04:45:37.476749 +AZURE,uksouth,Standard_E32ds_v4,spot,NA,0.32448,USD,Azure Retail Prices API,2025-12-18T04:45:35.128184 +AZURE,uksouth,Standard_E32ds_v5,on_demand,NA,2.704,USD,Azure Retail Prices API,2025-12-18T04:45:35.128576 +AZURE,uksouth,Standard_E32ds_v5,reserved_1y,NA,1.59532,USD,Azure Retail Prices API,2025-12-18T04:45:37.477176 +AZURE,uksouth,Standard_E32ds_v5,reserved_3y,NA,1.027511,USD,Azure Retail Prices API,2025-12-18T04:45:37.477179 +AZURE,uksouth,Standard_E32ds_v5,spot,NA,0.32448,USD,Azure Retail Prices API,2025-12-18T04:45:35.129982 +AZURE,uksouth,Standard_E32ds_v6,on_demand,NA,3.073,USD,Azure Retail Prices API,2025-12-18T04:45:35.130074 +AZURE,uksouth,Standard_E32ds_v6,reserved_1y,NA,1.905479,USD,Azure Retail Prices API,2025-12-18T04:45:37.478983 +AZURE,uksouth,Standard_E32ds_v6,reserved_3y,NA,1.198592,USD,Azure Retail Prices API,2025-12-18T04:45:37.478988 +AZURE,uksouth,Standard_E32ds_v6,spot,NA,0.36876,USD,Azure Retail Prices API,2025-12-18T04:45:35.128317 +AZURE,uksouth,Standard_E32pds_v6,on_demand,NA,2.157,USD,Azure Retail Prices API,2025-12-18T04:45:35.128543 +AZURE,uksouth,Standard_E32pds_v6,reserved_1y,NA,1.272489,USD,Azure Retail Prices API,2025-12-18T04:45:37.477139 +AZURE,uksouth,Standard_E32pds_v6,reserved_3y,NA,0.819597,USD,Azure Retail Prices API,2025-12-18T04:45:37.477145 +AZURE,uksouth,Standard_E32pds_v6,spot,NA,0.25884,USD,Azure Retail Prices API,2025-12-18T04:45:35.129388 +AZURE,uksouth,Standard_E32ps_v6,on_demand,NA,1.699,USD,Azure Retail Prices API,2025-12-18T04:45:35.128937 +AZURE,uksouth,Standard_E32ps_v6,reserved_1y,NA,1.002511,USD,Azure Retail Prices API,2025-12-18T04:45:37.477474 +AZURE,uksouth,Standard_E32ps_v6,reserved_3y,NA,0.6457,USD,Azure Retail Prices API,2025-12-18T04:45:37.477477 +AZURE,uksouth,Standard_E32ps_v6,spot,NA,0.20388,USD,Azure Retail Prices API,2025-12-18T04:45:35.128818 +AZURE,uksouth,Standard_E32s_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:35.128558 +AZURE,uksouth,Standard_E32s_v3,reserved_1y,NA,1.467694,USD,Azure Retail Prices API,2025-12-18T04:45:37.477157 +AZURE,uksouth,Standard_E32s_v3,reserved_3y,NA,0.938508,USD,Azure Retail Prices API,2025-12-18T04:45:37.477159 +AZURE,uksouth,Standard_E32s_v3,spot,NA,0.29952,USD,Azure Retail Prices API,2025-12-18T04:45:35.128992 +AZURE,uksouth,Standard_E32s_v4,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:35.129849 +AZURE,uksouth,Standard_E32s_v4,reserved_1y,NA,1.392352,USD,Azure Retail Prices API,2025-12-18T04:45:37.478755 +AZURE,uksouth,Standard_E32s_v4,reserved_3y,NA,0.890373,USD,Azure Retail Prices API,2025-12-18T04:45:37.478758 +AZURE,uksouth,Standard_E32s_v4,spot,NA,0.28416,USD,Azure Retail Prices API,2025-12-18T04:45:35.128801 +AZURE,uksouth,Standard_E32s_v5,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:35.128615 +AZURE,uksouth,Standard_E32s_v5,reserved_1y,NA,1.397146,USD,Azure Retail Prices API,2025-12-18T04:45:37.477231 +AZURE,uksouth,Standard_E32s_v5,reserved_3y,NA,0.876142,USD,Azure Retail Prices API,2025-12-18T04:45:37.477234 +AZURE,uksouth,Standard_E32s_v5,spot,NA,0.28416,USD,Azure Retail Prices API,2025-12-18T04:45:35.128951 +AZURE,uksouth,Standard_E48a_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:35.128408 +AZURE,uksouth,Standard_E48a_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:37.476983 +AZURE,uksouth,Standard_E48a_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:37.476988 +AZURE,uksouth,Standard_E48a_v4,spot,NA,0.42624,USD,Azure Retail Prices API,2025-12-18T04:45:35.129020 +AZURE,uksouth,Standard_E48ads_v5,on_demand,NA,5.904,USD,Azure Retail Prices API,2025-12-18T04:45:35.128887 +AZURE,uksouth,Standard_E48ads_v5,reserved_1y,NA,2.180594,USD,Azure Retail Prices API,2025-12-18T04:45:37.478193 +AZURE,uksouth,Standard_E48ads_v5,reserved_3y,NA,1.40449,USD,Azure Retail Prices API,2025-12-18T04:45:37.478199 +AZURE,uksouth,Standard_E48ads_v5,spot,NA,0.44352,USD,Azure Retail Prices API,2025-12-18T04:45:35.128308 +AZURE,uksouth,Standard_E48ads_v6,on_demand,NA,4.051,USD,Azure Retail Prices API,2025-12-18T04:45:35.129655 +AZURE,uksouth,Standard_E48ads_v6,reserved_1y,NA,2.390183,USD,Azure Retail Prices API,2025-12-18T04:45:37.478551 +AZURE,uksouth,Standard_E48ads_v6,reserved_3y,NA,1.53946,USD,Azure Retail Prices API,2025-12-18T04:45:37.478554 +AZURE,uksouth,Standard_E48ads_v6,spot,NA,0.48612,USD,Azure Retail Prices API,2025-12-18T04:45:35.129908 +AZURE,uksouth,Standard_E48as_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:35.128949 +AZURE,uksouth,Standard_E48as_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:37.477486 +AZURE,uksouth,Standard_E48as_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:37.477488 +AZURE,uksouth,Standard_E48as_v4,spot,NA,0.42624,USD,Azure Retail Prices API,2025-12-18T04:45:35.129113 +AZURE,uksouth,Standard_E48as_v5,on_demand,NA,5.4,USD,Azure Retail Prices API,2025-12-18T04:45:35.129026 +AZURE,uksouth,Standard_E48as_v5,reserved_1y,NA,1.883333,USD,Azure Retail Prices API,2025-12-18T04:45:37.478421 +AZURE,uksouth,Standard_E48as_v5,reserved_3y,NA,1.212976,USD,Azure Retail Prices API,2025-12-18T04:45:37.478424 +AZURE,uksouth,Standard_E48as_v5,spot,NA,0.38304,USD,Azure Retail Prices API,2025-12-18T04:45:35.129752 +AZURE,uksouth,Standard_E48d_v4,on_demand,NA,4.056,USD,Azure Retail Prices API,2025-12-18T04:45:35.128390 +AZURE,uksouth,Standard_E48d_v4,reserved_1y,NA,2.384932,USD,Azure Retail Prices API,2025-12-18T04:45:37.476952 +AZURE,uksouth,Standard_E48d_v4,reserved_3y,NA,1.525038,USD,Azure Retail Prices API,2025-12-18T04:45:37.476955 +AZURE,uksouth,Standard_E48d_v4,spot,NA,0.48672,USD,Azure Retail Prices API,2025-12-18T04:45:35.129267 +AZURE,uksouth,Standard_E48ds_v4,on_demand,NA,4.056,USD,Azure Retail Prices API,2025-12-18T04:45:35.130026 +AZURE,uksouth,Standard_E48ds_v4,reserved_1y,NA,2.384932,USD,Azure Retail Prices API,2025-12-18T04:45:37.478890 +AZURE,uksouth,Standard_E48ds_v4,reserved_3y,NA,1.525038,USD,Azure Retail Prices API,2025-12-18T04:45:37.478894 +AZURE,uksouth,Standard_E48ds_v4,spot,NA,0.48672,USD,Azure Retail Prices API,2025-12-18T04:45:35.129270 +AZURE,uksouth,Standard_E48ds_v5,on_demand,NA,4.056,USD,Azure Retail Prices API,2025-12-18T04:45:35.128457 +AZURE,uksouth,Standard_E48ds_v5,reserved_1y,NA,2.393037,USD,Azure Retail Prices API,2025-12-18T04:45:37.477019 +AZURE,uksouth,Standard_E48ds_v5,reserved_3y,NA,1.541286,USD,Azure Retail Prices API,2025-12-18T04:45:37.477022 +AZURE,uksouth,Standard_E48ds_v5,spot,NA,0.48672,USD,Azure Retail Prices API,2025-12-18T04:45:35.128821 +AZURE,uksouth,Standard_E48ds_v6,on_demand,NA,4.61,USD,Azure Retail Prices API,2025-12-18T04:45:35.129826 +AZURE,uksouth,Standard_E48ds_v6,reserved_1y,NA,2.858105,USD,Azure Retail Prices API,2025-12-18T04:45:37.478732 +AZURE,uksouth,Standard_E48ds_v6,reserved_3y,NA,1.797869,USD,Azure Retail Prices API,2025-12-18T04:45:37.478735 +AZURE,uksouth,Standard_E48ds_v6,spot,NA,0.5532,USD,Azure Retail Prices API,2025-12-18T04:45:35.129477 +AZURE,uksouth,Standard_E48pds_v6,on_demand,NA,3.235,USD,Azure Retail Prices API,2025-12-18T04:45:35.129554 +AZURE,uksouth,Standard_E48pds_v6,reserved_1y,NA,1.90879,USD,Azure Retail Prices API,2025-12-18T04:45:37.478465 +AZURE,uksouth,Standard_E48pds_v6,reserved_3y,NA,1.229376,USD,Azure Retail Prices API,2025-12-18T04:45:37.478468 +AZURE,uksouth,Standard_E48pds_v6,spot,NA,0.3882,USD,Azure Retail Prices API,2025-12-18T04:45:35.128311 +AZURE,uksouth,Standard_E48ps_v6,on_demand,NA,2.549,USD,Azure Retail Prices API,2025-12-18T04:45:35.128343 +AZURE,uksouth,Standard_E48ps_v6,reserved_1y,NA,1.503767,USD,Azure Retail Prices API,2025-12-18T04:45:37.476907 +AZURE,uksouth,Standard_E48ps_v6,reserved_3y,NA,0.968531,USD,Azure Retail Prices API,2025-12-18T04:45:37.476910 +AZURE,uksouth,Standard_E48ps_v6,spot,NA,0.30588,USD,Azure Retail Prices API,2025-12-18T04:45:35.128380 +AZURE,uksouth,Standard_E48s_v4,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:35.129531 +AZURE,uksouth,Standard_E48s_v4,reserved_1y,NA,2.088584,USD,Azure Retail Prices API,2025-12-18T04:45:37.478434 +AZURE,uksouth,Standard_E48s_v4,reserved_3y,NA,1.33554,USD,Azure Retail Prices API,2025-12-18T04:45:37.478437 +AZURE,uksouth,Standard_E48s_v4,spot,NA,0.42624,USD,Azure Retail Prices API,2025-12-18T04:45:35.129163 +AZURE,uksouth,Standard_E48s_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:35.128414 +AZURE,uksouth,Standard_E48s_v5,reserved_1y,NA,2.095662,USD,Azure Retail Prices API,2025-12-18T04:45:37.476992 +AZURE,uksouth,Standard_E48s_v5,reserved_3y,NA,1.314231,USD,Azure Retail Prices API,2025-12-18T04:45:37.476997 +AZURE,uksouth,Standard_E48s_v5,spot,NA,0.42624,USD,Azure Retail Prices API,2025-12-18T04:45:35.128448 +AZURE,uksouth,Standard_E4_v3,on_demand,NA,0.312,USD,Azure Retail Prices API,2025-12-18T04:45:35.129592 +AZURE,uksouth,Standard_E4_v3,reserved_1y,NA,0.183447,USD,Azure Retail Prices API,2025-12-18T04:45:37.478509 +AZURE,uksouth,Standard_E4_v3,reserved_3y,NA,0.117314,USD,Azure Retail Prices API,2025-12-18T04:45:37.478512 +AZURE,uksouth,Standard_E4_v3,spot,NA,0.03744,USD,Azure Retail Prices API,2025-12-18T04:45:35.129050 +AZURE,uksouth,Standard_E4a_v4,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:35.128469 +AZURE,uksouth,Standard_E4a_v4,reserved_1y,NA,0.174087,USD,Azure Retail Prices API,2025-12-18T04:45:37.477031 +AZURE,uksouth,Standard_E4a_v4,reserved_3y,NA,0.111301,USD,Azure Retail Prices API,2025-12-18T04:45:37.477034 +AZURE,uksouth,Standard_E4a_v4,spot,NA,0.03552,USD,Azure Retail Prices API,2025-12-18T04:45:35.128245 +AZURE,uksouth,Standard_E4ads_v5,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:45:35.128541 +AZURE,uksouth,Standard_E4ads_v5,reserved_1y,NA,0.181735,USD,Azure Retail Prices API,2025-12-18T04:45:37.478120 +AZURE,uksouth,Standard_E4ads_v5,reserved_3y,NA,0.117047,USD,Azure Retail Prices API,2025-12-18T04:45:37.478125 +AZURE,uksouth,Standard_E4ads_v5,spot,NA,0.03696,USD,Azure Retail Prices API,2025-12-18T04:45:35.130104 +AZURE,uksouth,Standard_E4ads_v6,on_demand,NA,0.338,USD,Azure Retail Prices API,2025-12-18T04:45:35.129724 +AZURE,uksouth,Standard_E4ads_v6,reserved_1y,NA,0.199201,USD,Azure Retail Prices API,2025-12-18T04:45:37.478645 +AZURE,uksouth,Standard_E4ads_v6,reserved_3y,NA,0.128272,USD,Azure Retail Prices API,2025-12-18T04:45:37.478648 +AZURE,uksouth,Standard_E4ads_v6,spot,NA,0.04056,USD,Azure Retail Prices API,2025-12-18T04:45:35.129047 +AZURE,uksouth,Standard_E4as_v4,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:35.128355 +AZURE,uksouth,Standard_E4as_v4,reserved_1y,NA,0.174087,USD,Azure Retail Prices API,2025-12-18T04:45:37.476920 +AZURE,uksouth,Standard_E4as_v4,reserved_3y,NA,0.111301,USD,Azure Retail Prices API,2025-12-18T04:45:37.476923 +AZURE,uksouth,Standard_E4as_v4,spot,NA,0.03552,USD,Azure Retail Prices API,2025-12-18T04:45:35.129032 +AZURE,uksouth,Standard_E4as_v5,on_demand,NA,0.45,USD,Azure Retail Prices API,2025-12-18T04:45:35.128451 +AZURE,uksouth,Standard_E4as_v5,reserved_1y,NA,0.156963,USD,Azure Retail Prices API,2025-12-18T04:45:37.477116 +AZURE,uksouth,Standard_E4as_v5,reserved_3y,NA,0.101065,USD,Azure Retail Prices API,2025-12-18T04:45:37.477133 +AZURE,uksouth,Standard_E4as_v5,spot,NA,0.03192,USD,Azure Retail Prices API,2025-12-18T04:45:35.128352 +AZURE,uksouth,Standard_E4d_v4,on_demand,NA,0.338,USD,Azure Retail Prices API,2025-12-18T04:45:35.129193 +AZURE,uksouth,Standard_E4d_v4,reserved_1y,NA,0.198744,USD,Azure Retail Prices API,2025-12-18T04:45:37.477816 +AZURE,uksouth,Standard_E4d_v4,reserved_3y,NA,0.127093,USD,Azure Retail Prices API,2025-12-18T04:45:37.477842 +AZURE,uksouth,Standard_E4d_v4,spot,NA,0.04056,USD,Azure Retail Prices API,2025-12-18T04:45:35.129132 +AZURE,uksouth,Standard_E4ds_v4,on_demand,NA,0.338,USD,Azure Retail Prices API,2025-12-18T04:45:35.128302 +AZURE,uksouth,Standard_E4ds_v4,reserved_1y,NA,0.198744,USD,Azure Retail Prices API,2025-12-18T04:45:37.476843 +AZURE,uksouth,Standard_E4ds_v4,reserved_3y,NA,0.127093,USD,Azure Retail Prices API,2025-12-18T04:45:37.476846 +AZURE,uksouth,Standard_E4ds_v4,spot,NA,0.04056,USD,Azure Retail Prices API,2025-12-18T04:45:35.129666 +AZURE,uksouth,Standard_E4ds_v5,on_demand,NA,0.338,USD,Azure Retail Prices API,2025-12-18T04:45:35.129905 +AZURE,uksouth,Standard_E4ds_v5,reserved_1y,NA,0.199429,USD,Azure Retail Prices API,2025-12-18T04:45:37.478817 +AZURE,uksouth,Standard_E4ds_v5,reserved_3y,NA,0.128425,USD,Azure Retail Prices API,2025-12-18T04:45:37.478819 +AZURE,uksouth,Standard_E4ds_v5,spot,NA,0.04056,USD,Azure Retail Prices API,2025-12-18T04:45:35.129986 +AZURE,uksouth,Standard_E4ds_v6,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:45:35.128612 +AZURE,uksouth,Standard_E4ds_v6,reserved_1y,NA,0.238128,USD,Azure Retail Prices API,2025-12-18T04:45:37.477225 +AZURE,uksouth,Standard_E4ds_v6,reserved_3y,NA,0.14981,USD,Azure Retail Prices API,2025-12-18T04:45:37.477228 +AZURE,uksouth,Standard_E4ds_v6,spot,NA,0.04608,USD,Azure Retail Prices API,2025-12-18T04:45:35.128428 +AZURE,uksouth,Standard_E4pds_v6,on_demand,NA,0.27,USD,Azure Retail Prices API,2025-12-18T04:45:35.128891 +AZURE,uksouth,Standard_E4pds_v6,reserved_1y,NA,0.159018,USD,Azure Retail Prices API,2025-12-18T04:45:37.477429 +AZURE,uksouth,Standard_E4pds_v6,reserved_3y,NA,0.102435,USD,Azure Retail Prices API,2025-12-18T04:45:37.477432 +AZURE,uksouth,Standard_E4pds_v6,spot,NA,0.0324,USD,Azure Retail Prices API,2025-12-18T04:45:35.129391 +AZURE,uksouth,Standard_E4ps_v6,on_demand,NA,0.212,USD,Azure Retail Prices API,2025-12-18T04:45:35.128522 +AZURE,uksouth,Standard_E4ps_v6,reserved_1y,NA,0.125342,USD,Azure Retail Prices API,2025-12-18T04:45:37.477085 +AZURE,uksouth,Standard_E4ps_v6,reserved_3y,NA,0.080708,USD,Azure Retail Prices API,2025-12-18T04:45:37.477087 +AZURE,uksouth,Standard_E4ps_v6,spot,NA,0.02544,USD,Azure Retail Prices API,2025-12-18T04:45:35.129966 +AZURE,uksouth,Standard_E4s_v4,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:35.128338 +AZURE,uksouth,Standard_E4s_v4,reserved_1y,NA,0.174087,USD,Azure Retail Prices API,2025-12-18T04:45:37.476901 +AZURE,uksouth,Standard_E4s_v4,reserved_3y,NA,0.111301,USD,Azure Retail Prices API,2025-12-18T04:45:37.476904 +AZURE,uksouth,Standard_E4s_v4,spot,NA,0.03552,USD,Azure Retail Prices API,2025-12-18T04:45:35.128489 +AZURE,uksouth,Standard_E4s_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:35.128597 +AZURE,uksouth,Standard_E4s_v5,reserved_1y,NA,0.174658,USD,Azure Retail Prices API,2025-12-18T04:45:37.477200 +AZURE,uksouth,Standard_E4s_v5,reserved_3y,NA,0.109513,USD,Azure Retail Prices API,2025-12-18T04:45:37.477203 +AZURE,uksouth,Standard_E4s_v5,spot,NA,0.03552,USD,Azure Retail Prices API,2025-12-18T04:45:35.129779 +AZURE,uksouth,Standard_E64_v3,on_demand,NA,4.264,USD,Azure Retail Prices API,2025-12-18T04:45:35.129705 +AZURE,uksouth,Standard_E64_v3,reserved_1y,NA,2.766438,USD,Azure Retail Prices API,2025-12-18T04:45:37.478616 +AZURE,uksouth,Standard_E64_v3,reserved_3y,NA,1.769026,USD,Azure Retail Prices API,2025-12-18T04:45:37.478619 +AZURE,uksouth,Standard_E64_v3,spot,NA,0.51168,USD,Azure Retail Prices API,2025-12-18T04:45:35.128214 +AZURE,uksouth,Standard_E64a_v4,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:35.129685 +AZURE,uksouth,Standard_E64a_v4,reserved_1y,NA,2.784817,USD,Azure Retail Prices API,2025-12-18T04:45:37.478587 +AZURE,uksouth,Standard_E64a_v4,reserved_3y,NA,1.780746,USD,Azure Retail Prices API,2025-12-18T04:45:37.478590 +AZURE,uksouth,Standard_E64a_v4,spot,NA,0.56832,USD,Azure Retail Prices API,2025-12-18T04:45:35.128460 +AZURE,uksouth,Standard_E64ads_v5,on_demand,NA,4.928,USD,Azure Retail Prices API,2025-12-18T04:45:35.128295 +AZURE,uksouth,Standard_E64ads_v5,reserved_1y,NA,2.907534,USD,Azure Retail Prices API,2025-12-18T04:45:37.476826 +AZURE,uksouth,Standard_E64ads_v5,reserved_3y,NA,1.872641,USD,Azure Retail Prices API,2025-12-18T04:45:37.476830 +AZURE,uksouth,Standard_E64ads_v5,spot,NA,0.59136,USD,Azure Retail Prices API,2025-12-18T04:45:35.129155 +AZURE,uksouth,Standard_E64ads_v6,on_demand,NA,5.402,USD,Azure Retail Prices API,2025-12-18T04:45:35.129095 +AZURE,uksouth,Standard_E64ads_v6,reserved_1y,NA,3.186986,USD,Azure Retail Prices API,2025-12-18T04:45:37.477671 +AZURE,uksouth,Standard_E64ads_v6,reserved_3y,NA,2.052626,USD,Azure Retail Prices API,2025-12-18T04:45:37.477676 +AZURE,uksouth,Standard_E64ads_v6,spot,NA,0.64824,USD,Azure Retail Prices API,2025-12-18T04:45:35.129433 +AZURE,uksouth,Standard_E64as_v4,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:35.128265 +AZURE,uksouth,Standard_E64as_v4,reserved_1y,NA,2.784817,USD,Azure Retail Prices API,2025-12-18T04:45:37.476787 +AZURE,uksouth,Standard_E64as_v4,reserved_3y,NA,1.780746,USD,Azure Retail Prices API,2025-12-18T04:45:37.476792 +AZURE,uksouth,Standard_E64as_v4,spot,NA,0.56832,USD,Azure Retail Prices API,2025-12-18T04:45:35.129891 +AZURE,uksouth,Standard_E64as_v5,on_demand,NA,4.256,USD,Azure Retail Prices API,2025-12-18T04:45:35.128831 +AZURE,uksouth,Standard_E64as_v5,reserved_1y,NA,2.511073,USD,Azure Retail Prices API,2025-12-18T04:45:37.477389 +AZURE,uksouth,Standard_E64as_v5,reserved_3y,NA,1.617275,USD,Azure Retail Prices API,2025-12-18T04:45:37.477392 +AZURE,uksouth,Standard_E64as_v5,spot,NA,0.51072,USD,Azure Retail Prices API,2025-12-18T04:45:35.128632 +AZURE,uksouth,Standard_E64d_v4,on_demand,NA,5.408,USD,Azure Retail Prices API,2025-12-18T04:45:35.129462 +AZURE,uksouth,Standard_E64d_v4,reserved_1y,NA,3.179909,USD,Azure Retail Prices API,2025-12-18T04:45:37.478289 +AZURE,uksouth,Standard_E64d_v4,reserved_3y,NA,2.033409,USD,Azure Retail Prices API,2025-12-18T04:45:37.478294 +AZURE,uksouth,Standard_E64d_v4,spot,NA,0.64896,USD,Azure Retail Prices API,2025-12-18T04:45:35.128629 +AZURE,uksouth,Standard_E64ds_v4,on_demand,NA,5.408,USD,Azure Retail Prices API,2025-12-18T04:45:35.128914 +AZURE,uksouth,Standard_E64ds_v4,reserved_1y,NA,3.179909,USD,Azure Retail Prices API,2025-12-18T04:45:37.477452 +AZURE,uksouth,Standard_E64ds_v4,reserved_3y,NA,2.033409,USD,Azure Retail Prices API,2025-12-18T04:45:37.477455 +AZURE,uksouth,Standard_E64ds_v4,spot,NA,0.64896,USD,Azure Retail Prices API,2025-12-18T04:45:35.129450 +AZURE,uksouth,Standard_E64ds_v5,on_demand,NA,5.408,USD,Azure Retail Prices API,2025-12-18T04:45:35.129486 +AZURE,uksouth,Standard_E64ds_v5,reserved_1y,NA,3.190753,USD,Azure Retail Prices API,2025-12-18T04:45:37.478325 +AZURE,uksouth,Standard_E64ds_v5,reserved_3y,NA,2.055023,USD,Azure Retail Prices API,2025-12-18T04:45:37.478331 +AZURE,uksouth,Standard_E64ds_v5,spot,NA,0.64896,USD,Azure Retail Prices API,2025-12-18T04:45:35.128252 +AZURE,uksouth,Standard_E64ds_v6,on_demand,NA,6.147,USD,Azure Retail Prices API,2025-12-18T04:45:35.128771 +AZURE,uksouth,Standard_E64ds_v6,reserved_1y,NA,3.810845,USD,Azure Retail Prices API,2025-12-18T04:45:37.477332 +AZURE,uksouth,Standard_E64ds_v6,reserved_3y,NA,2.397146,USD,Azure Retail Prices API,2025-12-18T04:45:37.477335 +AZURE,uksouth,Standard_E64ds_v6,spot,NA,0.73764,USD,Azure Retail Prices API,2025-12-18T04:45:35.129627 +AZURE,uksouth,Standard_E64pds_v6,on_demand,NA,4.314,USD,Azure Retail Prices API,2025-12-18T04:45:35.128961 +AZURE,uksouth,Standard_E64pds_v6,reserved_1y,NA,2.544977,USD,Azure Retail Prices API,2025-12-18T04:45:37.477491 +AZURE,uksouth,Standard_E64pds_v6,reserved_3y,NA,1.639155,USD,Azure Retail Prices API,2025-12-18T04:45:37.477494 +AZURE,uksouth,Standard_E64pds_v6,spot,NA,0.51768,USD,Azure Retail Prices API,2025-12-18T04:45:35.129679 +AZURE,uksouth,Standard_E64ps_v6,on_demand,NA,3.398,USD,Azure Retail Prices API,2025-12-18T04:45:35.129525 +AZURE,uksouth,Standard_E64ps_v6,reserved_1y,NA,2.005023,USD,Azure Retail Prices API,2025-12-18T04:45:37.478413 +AZURE,uksouth,Standard_E64ps_v6,reserved_3y,NA,1.2914,USD,Azure Retail Prices API,2025-12-18T04:45:37.478418 +AZURE,uksouth,Standard_E64ps_v6,spot,NA,0.40776,USD,Azure Retail Prices API,2025-12-18T04:45:35.129558 +AZURE,uksouth,Standard_E64s_v3,on_demand,NA,4.264,USD,Azure Retail Prices API,2025-12-18T04:45:35.129238 +AZURE,uksouth,Standard_E64s_v3,reserved_1y,NA,2.766438,USD,Azure Retail Prices API,2025-12-18T04:45:37.477901 +AZURE,uksouth,Standard_E64s_v3,reserved_3y,NA,1.769026,USD,Azure Retail Prices API,2025-12-18T04:45:37.477907 +AZURE,uksouth,Standard_E64s_v3,spot,NA,0.51168,USD,Azure Retail Prices API,2025-12-18T04:45:35.128387 +AZURE,uksouth,Standard_E64s_v4,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:35.129498 +AZURE,uksouth,Standard_E64s_v4,reserved_1y,NA,2.784817,USD,Azure Retail Prices API,2025-12-18T04:45:37.478363 +AZURE,uksouth,Standard_E64s_v4,reserved_3y,NA,1.780746,USD,Azure Retail Prices API,2025-12-18T04:45:37.478368 +AZURE,uksouth,Standard_E64s_v4,spot,NA,0.56832,USD,Azure Retail Prices API,2025-12-18T04:45:35.128472 +AZURE,uksouth,Standard_E64s_v5,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:35.129453 +AZURE,uksouth,Standard_E64s_v5,reserved_1y,NA,2.794292,USD,Azure Retail Prices API,2025-12-18T04:45:37.478264 +AZURE,uksouth,Standard_E64s_v5,reserved_3y,NA,1.752321,USD,Azure Retail Prices API,2025-12-18T04:45:37.478267 +AZURE,uksouth,Standard_E64s_v5,spot,NA,0.56832,USD,Azure Retail Prices API,2025-12-18T04:45:35.129319 +AZURE,uksouth,Standard_E80ids_v4,on_demand,NA,6.76,USD,Azure Retail Prices API,2025-12-18T04:45:35.129014 +AZURE,uksouth,Standard_E80ids_v4,reserved_1y,NA,3.974886,USD,Azure Retail Prices API,2025-12-18T04:45:37.477545 +AZURE,uksouth,Standard_E80ids_v4,reserved_3y,NA,2.541857,USD,Azure Retail Prices API,2025-12-18T04:45:37.477550 +AZURE,uksouth,Standard_E80ids_v4,spot,NA,0.8112,USD,Azure Retail Prices API,2025-12-18T04:45:35.129385 +AZURE,uksouth,Standard_E80is_v4,on_demand,NA,5.92,USD,Azure Retail Prices API,2025-12-18T04:45:35.128815 +AZURE,uksouth,Standard_E80is_v4,reserved_1y,NA,3.481735,USD,Azure Retail Prices API,2025-12-18T04:45:37.477378 +AZURE,uksouth,Standard_E80is_v4,reserved_3y,NA,2.226027,USD,Azure Retail Prices API,2025-12-18T04:45:37.477380 +AZURE,uksouth,Standard_E80is_v4,spot,NA,0.7104,USD,Azure Retail Prices API,2025-12-18T04:45:35.128652 +AZURE,uksouth,Standard_E8_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:45:35.129818 +AZURE,uksouth,Standard_E8_v3,reserved_1y,NA,0.366895,USD,Azure Retail Prices API,2025-12-18T04:45:37.478721 +AZURE,uksouth,Standard_E8_v3,reserved_3y,NA,0.234627,USD,Azure Retail Prices API,2025-12-18T04:45:37.478724 +AZURE,uksouth,Standard_E8_v3,spot,NA,0.07488,USD,Azure Retail Prices API,2025-12-18T04:45:35.128552 +AZURE,uksouth,Standard_E8a_v4,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:35.129149 +AZURE,uksouth,Standard_E8a_v4,reserved_1y,NA,0.348059,USD,Azure Retail Prices API,2025-12-18T04:45:37.477720 +AZURE,uksouth,Standard_E8a_v4,reserved_3y,NA,0.222603,USD,Azure Retail Prices API,2025-12-18T04:45:37.477726 +AZURE,uksouth,Standard_E8a_v4,spot,NA,0.07104,USD,Azure Retail Prices API,2025-12-18T04:45:35.128443 +AZURE,uksouth,Standard_E8ads_v5,on_demand,NA,0.984,USD,Azure Retail Prices API,2025-12-18T04:45:35.129510 +AZURE,uksouth,Standard_E8ads_v5,reserved_1y,NA,0.36347,USD,Azure Retail Prices API,2025-12-18T04:45:37.478697 +AZURE,uksouth,Standard_E8ads_v5,reserved_3y,NA,0.234094,USD,Azure Retail Prices API,2025-12-18T04:45:37.478700 +AZURE,uksouth,Standard_E8ads_v5,spot,NA,0.07392,USD,Azure Retail Prices API,2025-12-18T04:45:35.129204 +AZURE,uksouth,Standard_E8ads_v6,on_demand,NA,0.675,USD,Azure Retail Prices API,2025-12-18T04:45:35.129788 +AZURE,uksouth,Standard_E8ads_v6,reserved_1y,NA,0.398402,USD,Azure Retail Prices API,2025-12-18T04:45:37.478703 +AZURE,uksouth,Standard_E8ads_v6,reserved_3y,NA,0.256583,USD,Azure Retail Prices API,2025-12-18T04:45:37.478706 +AZURE,uksouth,Standard_E8ads_v6,spot,NA,0.081,USD,Azure Retail Prices API,2025-12-18T04:45:35.129041 +AZURE,uksouth,Standard_E8as_v4,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:35.129333 +AZURE,uksouth,Standard_E8as_v4,reserved_1y,NA,0.348059,USD,Azure Retail Prices API,2025-12-18T04:45:37.478066 +AZURE,uksouth,Standard_E8as_v4,reserved_3y,NA,0.222603,USD,Azure Retail Prices API,2025-12-18T04:45:37.478072 +AZURE,uksouth,Standard_E8as_v4,spot,NA,0.07104,USD,Azure Retail Prices API,2025-12-18T04:45:35.128411 +AZURE,uksouth,Standard_E8as_v5,on_demand,NA,0.9,USD,Azure Retail Prices API,2025-12-18T04:45:35.128289 +AZURE,uksouth,Standard_E8as_v5,reserved_1y,NA,0.313927,USD,Azure Retail Prices API,2025-12-18T04:45:37.476816 +AZURE,uksouth,Standard_E8as_v5,reserved_3y,NA,0.202169,USD,Azure Retail Prices API,2025-12-18T04:45:37.476821 +AZURE,uksouth,Standard_E8as_v5,spot,NA,0.06384,USD,Azure Retail Prices API,2025-12-18T04:45:35.128546 +AZURE,uksouth,Standard_E8d_v4,on_demand,NA,0.676,USD,Azure Retail Prices API,2025-12-18T04:45:35.128708 +AZURE,uksouth,Standard_E8d_v4,reserved_1y,NA,0.397489,USD,Azure Retail Prices API,2025-12-18T04:45:37.477297 +AZURE,uksouth,Standard_E8d_v4,reserved_3y,NA,0.254186,USD,Azure Retail Prices API,2025-12-18T04:45:37.477300 +AZURE,uksouth,Standard_E8d_v4,spot,NA,0.08112,USD,Azure Retail Prices API,2025-12-18T04:45:35.129363 +AZURE,uksouth,Standard_E8ds_v4,on_demand,NA,0.676,USD,Azure Retail Prices API,2025-12-18T04:45:35.129328 +AZURE,uksouth,Standard_E8ds_v4,reserved_1y,NA,0.397489,USD,Azure Retail Prices API,2025-12-18T04:45:37.478029 +AZURE,uksouth,Standard_E8ds_v4,reserved_3y,NA,0.254186,USD,Azure Retail Prices API,2025-12-18T04:45:37.478035 +AZURE,uksouth,Standard_E8ds_v4,spot,NA,0.08112,USD,Azure Retail Prices API,2025-12-18T04:45:35.129545 +AZURE,uksouth,Standard_E8ds_v5,on_demand,NA,0.676,USD,Azure Retail Prices API,2025-12-18T04:45:35.128454 +AZURE,uksouth,Standard_E8ds_v5,reserved_1y,NA,0.398858,USD,Azure Retail Prices API,2025-12-18T04:45:37.477013 +AZURE,uksouth,Standard_E8ds_v5,reserved_3y,NA,0.256887,USD,Azure Retail Prices API,2025-12-18T04:45:37.477016 +AZURE,uksouth,Standard_E8ds_v5,spot,NA,0.08112,USD,Azure Retail Prices API,2025-12-18T04:45:35.128646 +AZURE,uksouth,Standard_E8ds_v6,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:45:35.129528 +AZURE,uksouth,Standard_E8ds_v6,reserved_1y,NA,0.47637,USD,Azure Retail Prices API,2025-12-18T04:45:37.478427 +AZURE,uksouth,Standard_E8ds_v6,reserved_3y,NA,0.299658,USD,Azure Retail Prices API,2025-12-18T04:45:37.478431 +AZURE,uksouth,Standard_E8ds_v6,spot,NA,0.09216,USD,Azure Retail Prices API,2025-12-18T04:45:35.129921 +AZURE,uksouth,Standard_E8pds_v6,on_demand,NA,0.539,USD,Azure Retail Prices API,2025-12-18T04:45:35.129507 +AZURE,uksouth,Standard_E8pds_v6,reserved_1y,NA,0.318151,USD,Azure Retail Prices API,2025-12-18T04:45:37.478382 +AZURE,uksouth,Standard_E8pds_v6,reserved_3y,NA,0.204909,USD,Azure Retail Prices API,2025-12-18T04:45:37.478387 +AZURE,uksouth,Standard_E8pds_v6,spot,NA,0.06468,USD,Azure Retail Prices API,2025-12-18T04:45:35.130042 +AZURE,uksouth,Standard_E8ps_v6,on_demand,NA,0.425,USD,Azure Retail Prices API,2025-12-18T04:45:35.128761 +AZURE,uksouth,Standard_E8ps_v6,reserved_1y,NA,0.250685,USD,Azure Retail Prices API,2025-12-18T04:45:37.477320 +AZURE,uksouth,Standard_E8ps_v6,reserved_3y,NA,0.161416,USD,Azure Retail Prices API,2025-12-18T04:45:37.477323 +AZURE,uksouth,Standard_E8ps_v6,spot,NA,0.051,USD,Azure Retail Prices API,2025-12-18T04:45:35.128268 +AZURE,uksouth,Standard_E8s_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:45:35.129439 +AZURE,uksouth,Standard_E8s_v3,reserved_1y,NA,0.366895,USD,Azure Retail Prices API,2025-12-18T04:45:37.478247 +AZURE,uksouth,Standard_E8s_v3,reserved_3y,NA,0.234627,USD,Azure Retail Prices API,2025-12-18T04:45:37.478253 +AZURE,uksouth,Standard_E8s_v3,spot,NA,0.07488,USD,Azure Retail Prices API,2025-12-18T04:45:35.128425 +AZURE,uksouth,Standard_E8s_v4,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:35.129062 +AZURE,uksouth,Standard_E8s_v4,reserved_1y,NA,0.348059,USD,Azure Retail Prices API,2025-12-18T04:45:37.477615 +AZURE,uksouth,Standard_E8s_v4,reserved_3y,NA,0.222603,USD,Azure Retail Prices API,2025-12-18T04:45:37.477620 +AZURE,uksouth,Standard_E8s_v4,spot,NA,0.07104,USD,Azure Retail Prices API,2025-12-18T04:45:35.128687 +AZURE,uksouth,Standard_E8s_v5,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:35.129568 +AZURE,uksouth,Standard_E8s_v5,reserved_1y,NA,0.349315,USD,Azure Retail Prices API,2025-12-18T04:45:37.478478 +AZURE,uksouth,Standard_E8s_v5,reserved_3y,NA,0.219026,USD,Azure Retail Prices API,2025-12-18T04:45:37.478481 +AZURE,uksouth,Standard_E8s_v5,spot,NA,0.07104,USD,Azure Retail Prices API,2025-12-18T04:45:35.128899 +AZURE,uksouth,Standard_E96a_v4,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:45:35.129661 +AZURE,uksouth,Standard_E96a_v4,reserved_1y,NA,4.177169,USD,Azure Retail Prices API,2025-12-18T04:45:37.478557 +AZURE,uksouth,Standard_E96a_v4,reserved_3y,NA,2.671119,USD,Azure Retail Prices API,2025-12-18T04:45:37.478560 +AZURE,uksouth,Standard_E96a_v4,spot,NA,0.85248,USD,Azure Retail Prices API,2025-12-18T04:45:35.129727 +AZURE,uksouth,Standard_E96ads_v5,on_demand,NA,11.808,USD,Azure Retail Prices API,2025-12-18T04:45:35.129664 +AZURE,uksouth,Standard_E96ads_v5,reserved_1y,NA,4.361301,USD,Azure Retail Prices API,2025-12-18T04:45:37.478651 +AZURE,uksouth,Standard_E96ads_v5,reserved_3y,NA,2.808942,USD,Azure Retail Prices API,2025-12-18T04:45:37.478654 +AZURE,uksouth,Standard_E96ads_v5,spot,NA,0.88704,USD,Azure Retail Prices API,2025-12-18T04:45:35.128463 +AZURE,uksouth,Standard_E96ads_v6,on_demand,NA,8.102,USD,Azure Retail Prices API,2025-12-18T04:45:35.129436 +AZURE,uksouth,Standard_E96ads_v6,reserved_1y,NA,4.780365,USD,Azure Retail Prices API,2025-12-18T04:45:37.478233 +AZURE,uksouth,Standard_E96ads_v6,reserved_3y,NA,3.078919,USD,Azure Retail Prices API,2025-12-18T04:45:37.478241 +AZURE,uksouth,Standard_E96ads_v6,spot,NA,0.97224,USD,Azure Retail Prices API,2025-12-18T04:45:35.129190 +AZURE,uksouth,Standard_E96as_v4,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:45:35.128242 +AZURE,uksouth,Standard_E96as_v4,reserved_1y,NA,4.177169,USD,Azure Retail Prices API,2025-12-18T04:45:37.476764 +AZURE,uksouth,Standard_E96as_v4,reserved_3y,NA,2.671119,USD,Azure Retail Prices API,2025-12-18T04:45:37.476770 +AZURE,uksouth,Standard_E96as_v4,spot,NA,0.85248,USD,Azure Retail Prices API,2025-12-18T04:45:35.128649 +AZURE,uksouth,Standard_E96as_v5,on_demand,NA,10.8,USD,Azure Retail Prices API,2025-12-18T04:45:35.129285 +AZURE,uksouth,Standard_E96as_v5,reserved_1y,NA,3.766553,USD,Azure Retail Prices API,2025-12-18T04:45:37.478692 +AZURE,uksouth,Standard_E96as_v5,reserved_3y,NA,2.425913,USD,Azure Retail Prices API,2025-12-18T04:45:37.478695 +AZURE,uksouth,Standard_E96as_v5,spot,NA,0.76608,USD,Azure Retail Prices API,2025-12-18T04:45:35.128396 +AZURE,uksouth,Standard_E96ds_v5,on_demand,NA,8.112,USD,Azure Retail Prices API,2025-12-18T04:45:35.129955 +AZURE,uksouth,Standard_E96ds_v5,reserved_1y,NA,4.786073,USD,Azure Retail Prices API,2025-12-18T04:45:37.478851 +AZURE,uksouth,Standard_E96ds_v5,reserved_3y,NA,3.082572,USD,Azure Retail Prices API,2025-12-18T04:45:37.478854 +AZURE,uksouth,Standard_E96ds_v5,spot,NA,0.97344,USD,Azure Retail Prices API,2025-12-18T04:45:35.128272 +AZURE,uksouth,Standard_E96ds_v6,on_demand,NA,9.22,USD,Azure Retail Prices API,2025-12-18T04:45:35.129573 +AZURE,uksouth,Standard_E96ds_v6,reserved_1y,NA,5.716324,USD,Azure Retail Prices API,2025-12-18T04:45:37.478485 +AZURE,uksouth,Standard_E96ds_v6,reserved_3y,NA,3.595738,USD,Azure Retail Prices API,2025-12-18T04:45:37.478488 +AZURE,uksouth,Standard_E96ds_v6,spot,NA,1.1064,USD,Azure Retail Prices API,2025-12-18T04:45:35.129077 +AZURE,uksouth,Standard_E96pds_v6,on_demand,NA,6.47,USD,Azure Retail Prices API,2025-12-18T04:45:35.129416 +AZURE,uksouth,Standard_E96pds_v6,reserved_1y,NA,3.81758,USD,Azure Retail Prices API,2025-12-18T04:45:37.478213 +AZURE,uksouth,Standard_E96pds_v6,reserved_3y,NA,2.458752,USD,Azure Retail Prices API,2025-12-18T04:45:37.478218 +AZURE,uksouth,Standard_E96pds_v6,spot,NA,0.7764,USD,Azure Retail Prices API,2025-12-18T04:45:35.129116 +AZURE,uksouth,Standard_E96ps_v6,on_demand,NA,5.098,USD,Azure Retail Prices API,2025-12-18T04:45:35.129442 +AZURE,uksouth,Standard_E96ps_v6,reserved_1y,NA,3.007534,USD,Azure Retail Prices API,2025-12-18T04:45:37.478257 +AZURE,uksouth,Standard_E96ps_v6,reserved_3y,NA,1.9371,USD,Azure Retail Prices API,2025-12-18T04:45:37.478260 +AZURE,uksouth,Standard_E96ps_v6,spot,NA,0.61176,USD,Azure Retail Prices API,2025-12-18T04:45:35.129577 +AZURE,uksouth,Standard_E96s_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:45:35.128486 +AZURE,uksouth,Standard_E96s_v5,reserved_1y,NA,4.191324,USD,Azure Retail Prices API,2025-12-18T04:45:37.477048 +AZURE,uksouth,Standard_E96s_v5,reserved_3y,NA,2.628463,USD,Azure Retail Prices API,2025-12-18T04:45:37.477051 +AZURE,uksouth,Standard_E96s_v5,spot,NA,0.85248,USD,Azure Retail Prices API,2025-12-18T04:45:35.129551 +AZURE,uksouth,Standard_EC16ads_v5,on_demand,NA,1.232,USD,Azure Retail Prices API,2025-12-18T04:45:35.129301 +AZURE,uksouth,Standard_EC16ads_v5,reserved_1y,NA,0.985616,USD,Azure Retail Prices API,2025-12-18T04:45:37.478007 +AZURE,uksouth,Standard_EC16ads_v5,reserved_3y,NA,0.739193,USD,Azure Retail Prices API,2025-12-18T04:45:37.478012 +AZURE,uksouth,Standard_EC16ads_v5,spot,NA,0.232478,USD,Azure Retail Prices API,2025-12-18T04:45:35.129589 +AZURE,uksouth,Standard_EC16ads_v6,on_demand,NA,1.35,USD,Azure Retail Prices API,2025-12-18T04:45:35.129930 +AZURE,uksouth,Standard_EC16ads_v6,reserved_1y,NA,0.796689,USD,Azure Retail Prices API,2025-12-18T04:45:37.478828 +AZURE,uksouth,Standard_EC16ads_v6,reserved_3y,NA,0.513166,USD,Azure Retail Prices API,2025-12-18T04:45:37.478830 +AZURE,uksouth,Standard_EC16ads_v6,spot,NA,0.24948,USD,Azure Retail Prices API,2025-12-18T04:45:35.129864 +AZURE,uksouth,Standard_EC16as_v5,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:45:35.128367 +AZURE,uksouth,Standard_EC16as_v5,reserved_1y,NA,0.851256,USD,Azure Retail Prices API,2025-12-18T04:45:37.476940 +AZURE,uksouth,Standard_EC16as_v5,reserved_3y,NA,0.638394,USD,Azure Retail Prices API,2025-12-18T04:45:37.476942 +AZURE,uksouth,Standard_EC16as_v5,spot,NA,0.200777,USD,Azure Retail Prices API,2025-12-18T04:45:35.129172 +AZURE,uksouth,Standard_EC16as_v6,on_demand,NA,1.109,USD,Azure Retail Prices API,2025-12-18T04:45:35.129733 +AZURE,uksouth,Standard_EC16as_v6,reserved_1y,NA,0.654224,USD,Azure Retail Prices API,2025-12-18T04:45:37.478657 +AZURE,uksouth,Standard_EC16as_v6,reserved_3y,NA,0.421347,USD,Azure Retail Prices API,2025-12-18T04:45:37.478659 +AZURE,uksouth,Standard_EC16as_v6,spot,NA,0.204943,USD,Azure Retail Prices API,2025-12-18T04:45:35.128434 +AZURE,uksouth,Standard_EC20ads_v5,on_demand,NA,1.54,USD,Azure Retail Prices API,2025-12-18T04:45:35.129583 +AZURE,uksouth,Standard_EC20ads_v5,reserved_1y,NA,1.231963,USD,Azure Retail Prices API,2025-12-18T04:45:37.478491 +AZURE,uksouth,Standard_EC20ads_v5,reserved_3y,NA,0.924011,USD,Azure Retail Prices API,2025-12-18T04:45:37.478494 +AZURE,uksouth,Standard_EC20ads_v5,spot,NA,0.290598,USD,Azure Retail Prices API,2025-12-18T04:45:35.129296 +AZURE,uksouth,Standard_EC20as_v5,on_demand,NA,1.33,USD,Azure Retail Prices API,2025-12-18T04:45:35.129536 +AZURE,uksouth,Standard_EC20as_v5,reserved_1y,NA,1.064041,USD,Azure Retail Prices API,2025-12-18T04:45:37.478440 +AZURE,uksouth,Standard_EC20as_v5,reserved_3y,NA,0.797983,USD,Azure Retail Prices API,2025-12-18T04:45:37.478444 +AZURE,uksouth,Standard_EC20as_v5,spot,NA,0.250971,USD,Azure Retail Prices API,2025-12-18T04:45:35.129880 +AZURE,uksouth,Standard_EC2ads_v6,on_demand,NA,0.169,USD,Azure Retail Prices API,2025-12-18T04:45:35.129110 +AZURE,uksouth,Standard_EC2ads_v6,reserved_1y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:45:37.477706 +AZURE,uksouth,Standard_EC2ads_v6,reserved_3y,NA,0.064155,USD,Azure Retail Prices API,2025-12-18T04:45:37.477713 +AZURE,uksouth,Standard_EC2ads_v6,spot,NA,0.031231,USD,Azure Retail Prices API,2025-12-18T04:45:35.130092 +AZURE,uksouth,Standard_EC2as_v6,on_demand,NA,0.139,USD,Azure Retail Prices API,2025-12-18T04:45:35.129903 +AZURE,uksouth,Standard_EC2as_v6,reserved_1y,NA,0.081735,USD,Azure Retail Prices API,2025-12-18T04:45:37.478811 +AZURE,uksouth,Standard_EC2as_v6,reserved_3y,NA,0.052664,USD,Azure Retail Prices API,2025-12-18T04:45:37.478814 +AZURE,uksouth,Standard_EC2as_v6,spot,NA,0.025687,USD,Azure Retail Prices API,2025-12-18T04:45:35.128228 +AZURE,uksouth,Standard_EC32ads_v5,on_demand,NA,2.464,USD,Azure Retail Prices API,2025-12-18T04:45:35.128608 +AZURE,uksouth,Standard_EC32ads_v5,reserved_1y,NA,1.971233,USD,Azure Retail Prices API,2025-12-18T04:45:37.477219 +AZURE,uksouth,Standard_EC32ads_v5,reserved_3y,NA,1.478387,USD,Azure Retail Prices API,2025-12-18T04:45:37.477222 +AZURE,uksouth,Standard_EC32ads_v5,spot,NA,0.464957,USD,Azure Retail Prices API,2025-12-18T04:45:35.128238 +AZURE,uksouth,Standard_EC32ads_v6,on_demand,NA,2.701,USD,Azure Retail Prices API,2025-12-18T04:45:35.130004 +AZURE,uksouth,Standard_EC32ads_v6,reserved_1y,NA,1.593493,USD,Azure Retail Prices API,2025-12-18T04:45:37.478863 +AZURE,uksouth,Standard_EC32ads_v6,reserved_3y,NA,1.026294,USD,Azure Retail Prices API,2025-12-18T04:45:37.478865 +AZURE,uksouth,Standard_EC32ads_v6,spot,NA,0.499145,USD,Azure Retail Prices API,2025-12-18T04:45:35.129894 +AZURE,uksouth,Standard_EC32as_v5,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:45:35.130036 +AZURE,uksouth,Standard_EC32as_v5,reserved_1y,NA,1.702397,USD,Azure Retail Prices API,2025-12-18T04:45:37.478900 +AZURE,uksouth,Standard_EC32as_v5,reserved_3y,NA,1.276788,USD,Azure Retail Prices API,2025-12-18T04:45:37.478905 +AZURE,uksouth,Standard_EC32as_v5,spot,NA,0.401554,USD,Azure Retail Prices API,2025-12-18T04:45:35.128591 +AZURE,uksouth,Standard_EC32as_v6,on_demand,NA,2.218,USD,Azure Retail Prices API,2025-12-18T04:45:35.129542 +AZURE,uksouth,Standard_EC32as_v6,reserved_1y,NA,1.308333,USD,Azure Retail Prices API,2025-12-18T04:45:37.478453 +AZURE,uksouth,Standard_EC32as_v6,reserved_3y,NA,0.842694,USD,Azure Retail Prices API,2025-12-18T04:45:37.478456 +AZURE,uksouth,Standard_EC32as_v6,spot,NA,0.409886,USD,Azure Retail Prices API,2025-12-18T04:45:35.128986 +AZURE,uksouth,Standard_EC48ads_v5,on_demand,NA,3.696,USD,Azure Retail Prices API,2025-12-18T04:45:35.128902 +AZURE,uksouth,Standard_EC48ads_v5,reserved_1y,NA,2.956849,USD,Azure Retail Prices API,2025-12-18T04:45:37.477441 +AZURE,uksouth,Standard_EC48ads_v5,reserved_3y,NA,2.217618,USD,Azure Retail Prices API,2025-12-18T04:45:37.477444 +AZURE,uksouth,Standard_EC48ads_v5,spot,NA,0.697435,USD,Azure Retail Prices API,2025-12-18T04:45:35.130033 +AZURE,uksouth,Standard_EC48ads_v6,on_demand,NA,4.051,USD,Azure Retail Prices API,2025-12-18T04:45:35.128600 +AZURE,uksouth,Standard_EC48ads_v6,reserved_1y,NA,2.390183,USD,Azure Retail Prices API,2025-12-18T04:45:37.477207 +AZURE,uksouth,Standard_EC48ads_v6,reserved_3y,NA,1.53946,USD,Azure Retail Prices API,2025-12-18T04:45:37.477210 +AZURE,uksouth,Standard_EC48ads_v6,spot,NA,0.748625,USD,Azure Retail Prices API,2025-12-18T04:45:35.128564 +AZURE,uksouth,Standard_EC48as_v5,on_demand,NA,3.192,USD,Azure Retail Prices API,2025-12-18T04:45:35.128934 +AZURE,uksouth,Standard_EC48as_v5,reserved_1y,NA,2.553653,USD,Azure Retail Prices API,2025-12-18T04:45:37.477468 +AZURE,uksouth,Standard_EC48as_v5,reserved_3y,NA,1.915183,USD,Azure Retail Prices API,2025-12-18T04:45:37.477471 +AZURE,uksouth,Standard_EC48as_v5,spot,NA,0.60233,USD,Azure Retail Prices API,2025-12-18T04:45:35.129764 +AZURE,uksouth,Standard_EC48as_v6,on_demand,NA,3.326,USD,Azure Retail Prices API,2025-12-18T04:45:35.130039 +AZURE,uksouth,Standard_EC48as_v6,reserved_1y,NA,1.962557,USD,Azure Retail Prices API,2025-12-18T04:45:37.478908 +AZURE,uksouth,Standard_EC48as_v6,reserved_3y,NA,1.264041,USD,Azure Retail Prices API,2025-12-18T04:45:37.478913 +AZURE,uksouth,Standard_EC48as_v6,spot,NA,0.614645,USD,Azure Retail Prices API,2025-12-18T04:45:35.128834 +AZURE,uksouth,Standard_EC4ads_v5,on_demand,NA,0.308,USD,Azure Retail Prices API,2025-12-18T04:45:35.129492 +AZURE,uksouth,Standard_EC4ads_v5,reserved_1y,NA,0.246347,USD,Azure Retail Prices API,2025-12-18T04:45:37.478345 +AZURE,uksouth,Standard_EC4ads_v5,reserved_3y,NA,0.184817,USD,Azure Retail Prices API,2025-12-18T04:45:37.478349 +AZURE,uksouth,Standard_EC4ads_v5,spot,NA,0.05812,USD,Azure Retail Prices API,2025-12-18T04:45:35.128920 +AZURE,uksouth,Standard_EC4ads_v6,on_demand,NA,0.338,USD,Azure Retail Prices API,2025-12-18T04:45:35.129736 +AZURE,uksouth,Standard_EC4ads_v6,reserved_1y,NA,0.199201,USD,Azure Retail Prices API,2025-12-18T04:45:37.478662 +AZURE,uksouth,Standard_EC4ads_v6,reserved_3y,NA,0.128272,USD,Azure Retail Prices API,2025-12-18T04:45:37.478665 +AZURE,uksouth,Standard_EC4ads_v6,spot,NA,0.062462,USD,Azure Retail Prices API,2025-12-18T04:45:35.129424 +AZURE,uksouth,Standard_EC4as_v5,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:45:35.129092 +AZURE,uksouth,Standard_EC4as_v5,reserved_1y,NA,0.212785,USD,Azure Retail Prices API,2025-12-18T04:45:37.477661 +AZURE,uksouth,Standard_EC4as_v5,reserved_3y,NA,0.159589,USD,Azure Retail Prices API,2025-12-18T04:45:37.477666 +AZURE,uksouth,Standard_EC4as_v5,spot,NA,0.050194,USD,Azure Retail Prices API,2025-12-18T04:45:35.129480 +AZURE,uksouth,Standard_EC4as_v6,on_demand,NA,0.277,USD,Azure Retail Prices API,2025-12-18T04:45:35.129681 +AZURE,uksouth,Standard_EC4as_v6,reserved_1y,NA,0.163584,USD,Azure Retail Prices API,2025-12-18T04:45:37.478581 +AZURE,uksouth,Standard_EC4as_v6,reserved_3y,NA,0.105327,USD,Azure Retail Prices API,2025-12-18T04:45:37.478584 +AZURE,uksouth,Standard_EC4as_v6,spot,NA,0.05119,USD,Azure Retail Prices API,2025-12-18T04:45:35.129249 +AZURE,uksouth,Standard_EC64ads_v5,on_demand,NA,4.928,USD,Azure Retail Prices API,2025-12-18T04:45:35.129803 +AZURE,uksouth,Standard_EC64ads_v5,reserved_1y,NA,3.942352,USD,Azure Retail Prices API,2025-12-18T04:45:37.478709 +AZURE,uksouth,Standard_EC64ads_v5,reserved_3y,NA,2.956811,USD,Azure Retail Prices API,2025-12-18T04:45:37.478712 +AZURE,uksouth,Standard_EC64ads_v5,spot,NA,0.929914,USD,Azure Retail Prices API,2025-12-18T04:45:35.129797 +AZURE,uksouth,Standard_EC64ads_v6,on_demand,NA,5.402,USD,Azure Retail Prices API,2025-12-18T04:45:35.129264 +AZURE,uksouth,Standard_EC64ads_v6,reserved_1y,NA,3.186986,USD,Azure Retail Prices API,2025-12-18T04:45:37.477978 +AZURE,uksouth,Standard_EC64ads_v6,reserved_3y,NA,2.052626,USD,Azure Retail Prices API,2025-12-18T04:45:37.477983 +AZURE,uksouth,Standard_EC64ads_v6,spot,NA,0.99829,USD,Azure Retail Prices API,2025-12-18T04:45:35.130016 +AZURE,uksouth,Standard_EC64as_v5,on_demand,NA,4.256,USD,Azure Retail Prices API,2025-12-18T04:45:35.129178 +AZURE,uksouth,Standard_EC64as_v5,reserved_1y,NA,3.404795,USD,Azure Retail Prices API,2025-12-18T04:45:37.477786 +AZURE,uksouth,Standard_EC64as_v5,reserved_3y,NA,2.553615,USD,Azure Retail Prices API,2025-12-18T04:45:37.477791 +AZURE,uksouth,Standard_EC64as_v5,spot,NA,0.803107,USD,Azure Retail Prices API,2025-12-18T04:45:35.129140 +AZURE,uksouth,Standard_EC64as_v6,on_demand,NA,4.435,USD,Azure Retail Prices API,2025-12-18T04:45:35.128837 +AZURE,uksouth,Standard_EC64as_v6,reserved_1y,NA,2.616781,USD,Azure Retail Prices API,2025-12-18T04:45:37.477395 +AZURE,uksouth,Standard_EC64as_v6,reserved_3y,NA,1.685388,USD,Azure Retail Prices API,2025-12-18T04:45:37.477397 +AZURE,uksouth,Standard_EC64as_v6,spot,NA,0.819588,USD,Azure Retail Prices API,2025-12-18T04:45:35.129973 +AZURE,uksouth,Standard_EC8ads_v5,on_demand,NA,0.616,USD,Azure Retail Prices API,2025-12-18T04:45:35.128594 +AZURE,uksouth,Standard_EC8ads_v5,reserved_1y,NA,0.492808,USD,Azure Retail Prices API,2025-12-18T04:45:37.477194 +AZURE,uksouth,Standard_EC8ads_v5,reserved_3y,NA,0.369597,USD,Azure Retail Prices API,2025-12-18T04:45:37.477197 +AZURE,uksouth,Standard_EC8ads_v5,spot,NA,0.116239,USD,Azure Retail Prices API,2025-12-18T04:45:35.129146 +AZURE,uksouth,Standard_EC8ads_v6,on_demand,NA,0.675,USD,Azure Retail Prices API,2025-12-18T04:45:35.128528 +AZURE,uksouth,Standard_EC8ads_v6,reserved_1y,NA,0.398402,USD,Azure Retail Prices API,2025-12-18T04:45:37.477096 +AZURE,uksouth,Standard_EC8ads_v6,reserved_3y,NA,0.256583,USD,Azure Retail Prices API,2025-12-18T04:45:37.477099 +AZURE,uksouth,Standard_EC8ads_v6,spot,NA,0.12474,USD,Azure Retail Prices API,2025-12-18T04:45:35.129430 +AZURE,uksouth,Standard_EC8as_v5,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:45:35.128812 +AZURE,uksouth,Standard_EC8as_v5,reserved_1y,NA,0.425571,USD,Azure Retail Prices API,2025-12-18T04:45:37.477372 +AZURE,uksouth,Standard_EC8as_v5,reserved_3y,NA,0.319216,USD,Azure Retail Prices API,2025-12-18T04:45:37.477375 +AZURE,uksouth,Standard_EC8as_v5,spot,NA,0.100388,USD,Azure Retail Prices API,2025-12-18T04:45:35.129652 +AZURE,uksouth,Standard_EC8as_v6,on_demand,NA,0.554,USD,Azure Retail Prices API,2025-12-18T04:45:35.129157 +AZURE,uksouth,Standard_EC8as_v6,reserved_1y,NA,0.327055,USD,Azure Retail Prices API,2025-12-18T04:45:37.477732 +AZURE,uksouth,Standard_EC8as_v6,reserved_3y,NA,0.210654,USD,Azure Retail Prices API,2025-12-18T04:45:37.477739 +AZURE,uksouth,Standard_EC8as_v6,spot,NA,0.102379,USD,Azure Retail Prices API,2025-12-18T04:45:35.129936 +AZURE,uksouth,Standard_EC96ads_v5,on_demand,NA,7.392,USD,Azure Retail Prices API,2025-12-18T04:45:35.129673 +AZURE,uksouth,Standard_EC96ads_v5,reserved_1y,NA,5.913584,USD,Azure Retail Prices API,2025-12-18T04:45:37.478570 +AZURE,uksouth,Standard_EC96ads_v5,reserved_3y,NA,4.435198,USD,Azure Retail Prices API,2025-12-18T04:45:37.478572 +AZURE,uksouth,Standard_EC96ads_v5,spot,NA,1.39487,USD,Azure Retail Prices API,2025-12-18T04:45:35.129858 +AZURE,uksouth,Standard_EC96ads_v6,on_demand,NA,8.102,USD,Azure Retail Prices API,2025-12-18T04:45:35.128399 +AZURE,uksouth,Standard_EC96ads_v6,reserved_1y,NA,4.780365,USD,Azure Retail Prices API,2025-12-18T04:45:37.476958 +AZURE,uksouth,Standard_EC96ads_v6,reserved_3y,NA,3.078919,USD,Azure Retail Prices API,2025-12-18T04:45:37.476961 +AZURE,uksouth,Standard_EC96ads_v6,spot,NA,1.49725,USD,Azure Retail Prices API,2025-12-18T04:45:35.129336 +AZURE,uksouth,Standard_EC96as_v5,on_demand,NA,6.384,USD,Azure Retail Prices API,2025-12-18T04:45:35.128750 +AZURE,uksouth,Standard_EC96as_v5,reserved_1y,NA,5.107192,USD,Azure Retail Prices API,2025-12-18T04:45:37.477308 +AZURE,uksouth,Standard_EC96as_v5,reserved_3y,NA,3.830403,USD,Azure Retail Prices API,2025-12-18T04:45:37.477311 +AZURE,uksouth,Standard_EC96as_v5,spot,NA,1.204661,USD,Azure Retail Prices API,2025-12-18T04:45:35.128846 +AZURE,uksouth,Standard_EC96as_v6,on_demand,NA,6.653,USD,Azure Retail Prices API,2025-12-18T04:45:35.129342 +AZURE,uksouth,Standard_EC96as_v6,reserved_1y,NA,3.925114,USD,Azure Retail Prices API,2025-12-18T04:45:37.478079 +AZURE,uksouth,Standard_EC96as_v6,reserved_3y,NA,2.528082,USD,Azure Retail Prices API,2025-12-18T04:45:37.478085 +AZURE,uksouth,Standard_EC96as_v6,spot,NA,1.229474,USD,Azure Retail Prices API,2025-12-18T04:45:35.128531 +AZURE,uksouth,Standard_F16,on_demand,NA,1.0164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379418 +AZURE,uksouth,Standard_F16,reserved_1y,NA,0.60984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379426 +AZURE,uksouth,Standard_F16,reserved_3y,NA,0.40656,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379431 +AZURE,uksouth,Standard_F16,spot,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379422 +AZURE,uksouth,Standard_F16s,on_demand,NA,1.0164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381727 +AZURE,uksouth,Standard_F16s,reserved_1y,NA,0.60984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381736 +AZURE,uksouth,Standard_F16s,reserved_3y,NA,0.40656,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381740 +AZURE,uksouth,Standard_F16s,spot,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381732 +AZURE,uksouth,Standard_F16s_v2,on_demand,NA,0.8624,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384451 +AZURE,uksouth,Standard_F16s_v2,reserved_1y,NA,0.51744,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384460 +AZURE,uksouth,Standard_F16s_v2,reserved_3y,NA,0.34496,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384464 +AZURE,uksouth,Standard_F16s_v2,spot,NA,0.25872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384456 +AZURE,uksouth,Standard_F32s_v2,on_demand,NA,1.7248,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385221 +AZURE,uksouth,Standard_F32s_v2,reserved_1y,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385231 +AZURE,uksouth,Standard_F32s_v2,reserved_3y,NA,0.68992,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385238 +AZURE,uksouth,Standard_F32s_v2,spot,NA,0.51744,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385225 +AZURE,uksouth,Standard_F4,on_demand,NA,0.2541,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377826 +AZURE,uksouth,Standard_F4,reserved_1y,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377840 +AZURE,uksouth,Standard_F4,reserved_3y,NA,0.10164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377847 +AZURE,uksouth,Standard_F4,spot,NA,0.07623,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377833 +AZURE,uksouth,Standard_F48s_v2,on_demand,NA,2.5872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386026 +AZURE,uksouth,Standard_F48s_v2,reserved_1y,NA,1.55232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386035 +AZURE,uksouth,Standard_F48s_v2,reserved_3y,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386039 +AZURE,uksouth,Standard_F48s_v2,spot,NA,0.77616,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386031 +AZURE,uksouth,Standard_F4s,on_demand,NA,0.2541,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380185 +AZURE,uksouth,Standard_F4s,reserved_1y,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380194 +AZURE,uksouth,Standard_F4s,reserved_3y,NA,0.10164,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380198 +AZURE,uksouth,Standard_F4s,spot,NA,0.07623,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380189 +AZURE,uksouth,Standard_F4s_v2,on_demand,NA,0.2156,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382781 +AZURE,uksouth,Standard_F4s_v2,reserved_1y,NA,0.12936,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382790 +AZURE,uksouth,Standard_F4s_v2,reserved_3y,NA,0.08624,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382794 +AZURE,uksouth,Standard_F4s_v2,spot,NA,0.06468,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382785 +AZURE,uksouth,Standard_F64s_v2,on_demand,NA,3.4496,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386816 +AZURE,uksouth,Standard_F64s_v2,reserved_1y,NA,2.06976,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386824 +AZURE,uksouth,Standard_F64s_v2,reserved_3y,NA,1.37984,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386828 +AZURE,uksouth,Standard_F64s_v2,spot,NA,1.03488,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386820 +AZURE,uksouth,Standard_F72s_v2,on_demand,NA,3.8808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387619 +AZURE,uksouth,Standard_F72s_v2,reserved_1y,NA,2.32848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387635 +AZURE,uksouth,Standard_F72s_v2,reserved_3y,NA,1.55232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387643 +AZURE,uksouth,Standard_F72s_v2,spot,NA,1.16424,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387627 +AZURE,uksouth,Standard_F8,on_demand,NA,0.5082,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378602 +AZURE,uksouth,Standard_F8,reserved_1y,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378611 +AZURE,uksouth,Standard_F8,reserved_3y,NA,0.20328,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378615 +AZURE,uksouth,Standard_F8,spot,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378606 +AZURE,uksouth,Standard_F8s,on_demand,NA,0.5082,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380882 +AZURE,uksouth,Standard_F8s,reserved_1y,NA,0.30492,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380890 +AZURE,uksouth,Standard_F8s,reserved_3y,NA,0.20328,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380894 +AZURE,uksouth,Standard_F8s,spot,NA,0.15246,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380886 +AZURE,uksouth,Standard_F8s_v2,on_demand,NA,0.4312,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383617 +AZURE,uksouth,Standard_F8s_v2,reserved_1y,NA,0.25872,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383625 +AZURE,uksouth,Standard_F8s_v2,reserved_3y,NA,0.17248,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383629 +AZURE,uksouth,Standard_F8s_v2,spot,NA,0.12936,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383621 +AZURE,uksouth,Standard_H16,on_demand,NA,1.902,USD,Azure Retail Prices API,2025-12-18T04:45:35.129580 +AZURE,uksouth,Standard_H16,spot,NA,0.35149,USD,Azure Retail Prices API,2025-12-18T04:45:35.130030 +AZURE,uksouth,Standard_H8,on_demand,NA,0.951,USD,Azure Retail Prices API,2025-12-18T04:45:35.128588 +AZURE,uksouth,Standard_H8,spot,NA,0.175745,USD,Azure Retail Prices API,2025-12-18T04:45:35.128700 +AZURE,uksouth,Standard_L16as_v3,on_demand,NA,1.448,USD,Azure Retail Prices API,2025-12-18T04:45:35.129331 +AZURE,uksouth,Standard_L16as_v3,reserved_1y,NA,0.926712,USD,Azure Retail Prices API,2025-12-18T04:45:37.478053 +AZURE,uksouth,Standard_L16as_v3,reserved_3y,NA,0.608143,USD,Azure Retail Prices API,2025-12-18T04:45:37.478060 +AZURE,uksouth,Standard_L16as_v3,spot,NA,0.26759,USD,Azure Retail Prices API,2025-12-18T04:45:35.129942 +AZURE,uksouth,Standard_L16s_v3,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:45:35.128519 +AZURE,uksouth,Standard_L16s_v3,reserved_1y,NA,1.034247,USD,Azure Retail Prices API,2025-12-18T04:45:37.477079 +AZURE,uksouth,Standard_L16s_v3,reserved_3y,NA,0.678729,USD,Azure Retail Prices API,2025-12-18T04:45:37.477082 +AZURE,uksouth,Standard_L16s_v3,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:45:35.129999 +AZURE,uksouth,Standard_L32as_v3,on_demand,NA,2.896,USD,Azure Retail Prices API,2025-12-18T04:45:35.128925 +AZURE,uksouth,Standard_L32as_v3,reserved_1y,NA,1.853425,USD,Azure Retail Prices API,2025-12-18T04:45:37.477458 +AZURE,uksouth,Standard_L32as_v3,reserved_3y,NA,1.216324,USD,Azure Retail Prices API,2025-12-18T04:45:37.477460 +AZURE,uksouth,Standard_L32as_v3,spot,NA,0.535181,USD,Azure Retail Prices API,2025-12-18T04:45:35.129464 +AZURE,uksouth,Standard_L32s_v3,on_demand,NA,3.232,USD,Azure Retail Prices API,2025-12-18T04:45:35.129959 +AZURE,uksouth,Standard_L32s_v3,reserved_1y,NA,2.068493,USD,Azure Retail Prices API,2025-12-18T04:45:37.478857 +AZURE,uksouth,Standard_L32s_v3,reserved_3y,NA,1.357458,USD,Azure Retail Prices API,2025-12-18T04:45:37.478860 +AZURE,uksouth,Standard_L32s_v3,spot,NA,0.597274,USD,Azure Retail Prices API,2025-12-18T04:45:35.128573 +AZURE,uksouth,Standard_L48as_v3,on_demand,NA,4.344,USD,Azure Retail Prices API,2025-12-18T04:45:35.128725 +AZURE,uksouth,Standard_L48as_v3,reserved_1y,NA,2.780137,USD,Azure Retail Prices API,2025-12-18T04:45:37.477302 +AZURE,uksouth,Standard_L48as_v3,reserved_3y,NA,1.824467,USD,Azure Retail Prices API,2025-12-18T04:45:37.477305 +AZURE,uksouth,Standard_L48as_v3,spot,NA,0.802771,USD,Azure Retail Prices API,2025-12-18T04:45:35.129229 +AZURE,uksouth,Standard_L48s_v3,on_demand,NA,4.848,USD,Azure Retail Prices API,2025-12-18T04:45:35.129806 +AZURE,uksouth,Standard_L48s_v3,reserved_1y,NA,3.10274,USD,Azure Retail Prices API,2025-12-18T04:45:37.478715 +AZURE,uksouth,Standard_L48s_v3,reserved_3y,NA,2.036149,USD,Azure Retail Prices API,2025-12-18T04:45:37.478718 +AZURE,uksouth,Standard_L48s_v3,spot,NA,0.89591,USD,Azure Retail Prices API,2025-12-18T04:45:35.129313 +AZURE,uksouth,Standard_L64as_v3,on_demand,NA,5.792,USD,Azure Retail Prices API,2025-12-18T04:45:35.130098 +AZURE,uksouth,Standard_L64as_v3,reserved_1y,NA,3.706849,USD,Azure Retail Prices API,2025-12-18T04:45:37.479028 +AZURE,uksouth,Standard_L64as_v3,reserved_3y,NA,2.432648,USD,Azure Retail Prices API,2025-12-18T04:45:37.479032 +AZURE,uksouth,Standard_L64as_v3,spot,NA,1.070362,USD,Azure Retail Prices API,2025-12-18T04:45:35.128507 +AZURE,uksouth,Standard_L64s_v3,on_demand,NA,6.464,USD,Azure Retail Prices API,2025-12-18T04:45:35.128402 +AZURE,uksouth,Standard_L64s_v3,reserved_1y,NA,4.136986,USD,Azure Retail Prices API,2025-12-18T04:45:37.476964 +AZURE,uksouth,Standard_L64s_v3,reserved_3y,NA,2.714878,USD,Azure Retail Prices API,2025-12-18T04:45:37.476967 +AZURE,uksouth,Standard_L64s_v3,spot,NA,1.194547,USD,Azure Retail Prices API,2025-12-18T04:45:35.128827 +AZURE,uksouth,Standard_L80as_v3,on_demand,NA,7.24,USD,Azure Retail Prices API,2025-12-18T04:45:35.129721 +AZURE,uksouth,Standard_L80as_v3,reserved_1y,NA,4.633562,USD,Azure Retail Prices API,2025-12-18T04:45:37.478639 +AZURE,uksouth,Standard_L80as_v3,reserved_3y,NA,3.040791,USD,Azure Retail Prices API,2025-12-18T04:45:37.478642 +AZURE,uksouth,Standard_L80as_v3,spot,NA,1.337952,USD,Azure Retail Prices API,2025-12-18T04:45:35.128756 +AZURE,uksouth,Standard_L80s_v3,on_demand,NA,8.08,USD,Azure Retail Prices API,2025-12-18T04:45:35.129459 +AZURE,uksouth,Standard_L80s_v3,reserved_1y,NA,5.171233,USD,Azure Retail Prices API,2025-12-18T04:45:37.478278 +AZURE,uksouth,Standard_L80s_v3,reserved_3y,NA,3.393607,USD,Azure Retail Prices API,2025-12-18T04:45:37.478284 +AZURE,uksouth,Standard_L80s_v3,spot,NA,1.493184,USD,Azure Retail Prices API,2025-12-18T04:45:35.128683 +AZURE,uksouth,Standard_L8as_v3,on_demand,NA,0.724,USD,Azure Retail Prices API,2025-12-18T04:45:35.129702 +AZURE,uksouth,Standard_L8as_v3,reserved_1y,NA,0.463356,USD,Azure Retail Prices API,2025-12-18T04:45:37.478610 +AZURE,uksouth,Standard_L8as_v3,reserved_3y,NA,0.304072,USD,Azure Retail Prices API,2025-12-18T04:45:37.478613 +AZURE,uksouth,Standard_L8as_v3,spot,NA,0.133795,USD,Azure Retail Prices API,2025-12-18T04:45:35.128721 +AZURE,uksouth,Standard_L8s_v3,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:45:35.128480 +AZURE,uksouth,Standard_L8s_v3,reserved_1y,NA,0.517123,USD,Azure Retail Prices API,2025-12-18T04:45:37.477042 +AZURE,uksouth,Standard_L8s_v3,reserved_3y,NA,0.339346,USD,Azure Retail Prices API,2025-12-18T04:45:37.477045 +AZURE,uksouth,Standard_L8s_v3,spot,NA,0.149318,USD,Azure Retail Prices API,2025-12-18T04:45:35.129933 +AZURE,uksouth,Standard_NC12s_v3,on_demand,NA,7.178,USD,Azure Retail Prices API,2025-12-18T04:45:35.128498 +AZURE,uksouth,Standard_NC12s_v3,spot,NA,1.326494,USD,Azure Retail Prices API,2025-12-18T04:45:35.129404 +AZURE,uksouth,Standard_NC16as_T4_v3,on_demand,NA,1.409,USD,Azure Retail Prices API,2025-12-18T04:45:35.129649 +AZURE,uksouth,Standard_NC16as_T4_v3,reserved_1y,NA,0.89726,USD,Azure Retail Prices API,2025-12-18T04:45:37.478545 +AZURE,uksouth,Standard_NC16as_T4_v3,reserved_3y,NA,0.535312,USD,Azure Retail Prices API,2025-12-18T04:45:37.478548 +AZURE,uksouth,Standard_NC16as_T4_v3,spot,NA,0.689142,USD,Azure Retail Prices API,2025-12-18T04:45:35.128765 +AZURE,uksouth,Standard_NC24ads_A100_v4,on_demand,NA,4.591,USD,Azure Retail Prices API,2025-12-18T04:45:35.129489 +AZURE,uksouth,Standard_NC24ads_A100_v4,reserved_1y,NA,3.001256,USD,Azure Retail Prices API,2025-12-18T04:45:37.478336 +AZURE,uksouth,Standard_NC24ads_A100_v4,reserved_3y,NA,1.703805,USD,Azure Retail Prices API,2025-12-18T04:45:37.478340 +AZURE,uksouth,Standard_NC24ads_A100_v4,spot,NA,1.537067,USD,Azure Retail Prices API,2025-12-18T04:45:35.129107 +AZURE,uksouth,Standard_NC24s_v3,on_demand,NA,14.356,USD,Azure Retail Prices API,2025-12-18T04:45:35.128477 +AZURE,uksouth,Standard_NC24s_v3,spot,NA,2.652989,USD,Azure Retail Prices API,2025-12-18T04:45:35.129034 +AZURE,uksouth,Standard_NC40ads_H100_v5,on_demand,NA,8.725,USD,Azure Retail Prices API,2025-12-18T04:45:35.129029 +AZURE,uksouth,Standard_NC40ads_H100_v5,reserved_1y,NA,6.543721,USD,Azure Retail Prices API,2025-12-18T04:45:37.477571 +AZURE,uksouth,Standard_NC40ads_H100_v5,reserved_3y,NA,4.798744,USD,Azure Retail Prices API,2025-12-18T04:45:37.477575 +AZURE,uksouth,Standard_NC40ads_H100_v5,spot,NA,7.8525,USD,Azure Retail Prices API,2025-12-18T04:45:35.129570 +AZURE,uksouth,Standard_NC48ads_A100_v4,on_demand,NA,9.183,USD,Azure Retail Prices API,2025-12-18T04:45:35.128894 +AZURE,uksouth,Standard_NC48ads_A100_v4,reserved_1y,NA,6.002626,USD,Azure Retail Prices API,2025-12-18T04:45:37.477435 +AZURE,uksouth,Standard_NC48ads_A100_v4,reserved_3y,NA,3.40761,USD,Azure Retail Prices API,2025-12-18T04:45:37.477438 +AZURE,uksouth,Standard_NC48ads_A100_v4,spot,NA,3.074468,USD,Azure Retail Prices API,2025-12-18T04:45:35.128431 +AZURE,uksouth,Standard_NC4as_T4_v3,on_demand,NA,0.615,USD,Azure Retail Prices API,2025-12-18T04:45:35.129023 +AZURE,uksouth,Standard_NC4as_T4_v3,reserved_1y,NA,0.392009,USD,Azure Retail Prices API,2025-12-18T04:45:37.477562 +AZURE,uksouth,Standard_NC4as_T4_v3,reserved_3y,NA,0.233866,USD,Azure Retail Prices API,2025-12-18T04:45:37.477566 +AZURE,uksouth,Standard_NC4as_T4_v3,spot,NA,0.300796,USD,Azure Retail Prices API,2025-12-18T04:45:35.128605 +AZURE,uksouth,Standard_NC64as_T4_v3,on_demand,NA,5.092,USD,Azure Retail Prices API,2025-12-18T04:45:35.128305 +AZURE,uksouth,Standard_NC64as_T4_v3,reserved_1y,NA,3.243379,USD,Azure Retail Prices API,2025-12-18T04:45:37.476849 +AZURE,uksouth,Standard_NC64as_T4_v3,reserved_3y,NA,1.934893,USD,Azure Retail Prices API,2025-12-18T04:45:37.476852 +AZURE,uksouth,Standard_NC64as_T4_v3,spot,NA,2.490497,USD,Azure Retail Prices API,2025-12-18T04:45:35.128248 +AZURE,uksouth,Standard_NC6s_v3,on_demand,NA,3.589,USD,Azure Retail Prices API,2025-12-18T04:45:35.129612 +AZURE,uksouth,Standard_NC6s_v3,spot,NA,0.663247,USD,Azure Retail Prices API,2025-12-18T04:45:35.128623 +AZURE,uksouth,Standard_NC8as_T4_v3,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:45:35.128861 +AZURE,uksouth,Standard_NC8as_T4_v3,reserved_1y,NA,0.560388,USD,Azure Retail Prices API,2025-12-18T04:45:37.477418 +AZURE,uksouth,Standard_NC8as_T4_v3,reserved_3y,NA,0.334323,USD,Azure Retail Prices API,2025-12-18T04:45:37.477420 +AZURE,uksouth,Standard_NC8as_T4_v3,spot,NA,0.430408,USD,Azure Retail Prices API,2025-12-18T04:45:35.129603 +AZURE,uksouth,Standard_NC96ads_A100_v4,on_demand,NA,18.365,USD,Azure Retail Prices API,2025-12-18T04:45:35.129258 +AZURE,uksouth,Standard_NC96ads_A100_v4,reserved_1y,NA,12.005251,USD,Azure Retail Prices API,2025-12-18T04:45:37.477958 +AZURE,uksouth,Standard_NC96ads_A100_v4,reserved_3y,NA,6.815259,USD,Azure Retail Prices API,2025-12-18T04:45:37.477963 +AZURE,uksouth,Standard_NC96ads_A100_v4,spot,NA,6.148602,USD,Azure Retail Prices API,2025-12-18T04:45:35.129279 +AZURE,uksouth,Standard_ND96isr_H100_v5,on_demand,NA,122.9,USD,Azure Retail Prices API,2025-12-18T04:45:35.129471 +AZURE,uksouth,Standard_ND96isr_H100_v5,reserved_1y,NA,78.65605,USD,Azure Retail Prices API,2025-12-18T04:45:37.478308 +AZURE,uksouth,Standard_ND96isr_H100_v5,reserved_3y,NA,53.953082,USD,Azure Retail Prices API,2025-12-18T04:45:37.478312 +AZURE,uksouth,Standard_ND96isr_H100_v5,spot,NA,22.71192,USD,Azure Retail Prices API,2025-12-18T04:45:35.128341 +AZURE,uksouth,Standard_NV36adms_A10_v5,on_demand,NA,5.65,USD,Azure Retail Prices API,2025-12-18T04:45:35.128358 +AZURE,uksouth,Standard_NV36adms_A10_v5,reserved_1y,NA,3.615982,USD,Azure Retail Prices API,2025-12-18T04:45:37.476926 +AZURE,uksouth,Standard_NV36adms_A10_v5,reserved_3y,NA,2.485997,USD,Azure Retail Prices API,2025-12-18T04:45:37.476930 +AZURE,uksouth,Standard_NV36adms_A10_v5,spot,NA,1.04412,USD,Azure Retail Prices API,2025-12-18T04:45:35.129833 +AZURE,uksouth,Standard_NV36ads_A10_v5,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:45:35.128535 +AZURE,uksouth,Standard_NV36ads_A10_v5,reserved_1y,NA,2.560046,USD,Azure Retail Prices API,2025-12-18T04:45:37.477102 +AZURE,uksouth,Standard_NV36ads_A10_v5,reserved_3y,NA,1.760008,USD,Azure Retail Prices API,2025-12-18T04:45:37.477105 +AZURE,uksouth,Standard_NV36ads_A10_v5,spot,NA,0.7392,USD,Azure Retail Prices API,2025-12-18T04:45:35.128922 +AZURE,uksouth,Standard_NV72ads_A10_v5,on_demand,NA,8.15,USD,Azure Retail Prices API,2025-12-18T04:45:35.129273 +AZURE,uksouth,Standard_NV72ads_A10_v5,reserved_1y,NA,5.215982,USD,Azure Retail Prices API,2025-12-18T04:45:37.477988 +AZURE,uksouth,Standard_NV72ads_A10_v5,reserved_3y,NA,3.585997,USD,Azure Retail Prices API,2025-12-18T04:45:37.477992 +AZURE,uksouth,Standard_NV72ads_A10_v5,spot,NA,1.50612,USD,Azure Retail Prices API,2025-12-18T04:45:35.129413 +AZURE,ukwest,Standard_D128ds_v6,on_demand,NA,9.649,USD,Azure Retail Prices API,2025-12-18T04:45:40.278033 +AZURE,ukwest,Standard_D128ds_v6,reserved_1y,NA,5.982192,USD,Azure Retail Prices API,2025-12-18T04:45:41.282060 +AZURE,ukwest,Standard_D128ds_v6,reserved_3y,NA,3.762976,USD,Azure Retail Prices API,2025-12-18T04:45:41.282063 +AZURE,ukwest,Standard_D128ds_v6,spot,NA,1.783135,USD,Azure Retail Prices API,2025-12-18T04:45:40.277445 +AZURE,ukwest,Standard_D12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488324 +AZURE,ukwest,Standard_D12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488332 +AZURE,ukwest,Standard_D12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488337 +AZURE,ukwest,Standard_D12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488328 +AZURE,ukwest,Standard_D13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489079 +AZURE,ukwest,Standard_D13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489087 +AZURE,ukwest,Standard_D13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489092 +AZURE,ukwest,Standard_D13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489084 +AZURE,ukwest,Standard_D14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490203 +AZURE,ukwest,Standard_D14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490211 +AZURE,ukwest,Standard_D14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490215 +AZURE,ukwest,Standard_D14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490207 +AZURE,ukwest,Standard_D15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490894 +AZURE,ukwest,Standard_D15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490902 +AZURE,ukwest,Standard_D15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490906 +AZURE,ukwest,Standard_D15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490898 +AZURE,ukwest,Standard_D16_v3,on_demand,NA,0.928,USD,Azure Retail Prices API,2025-12-18T04:45:40.277514 +AZURE,ukwest,Standard_D16_v3,reserved_1y,NA,0.588014,USD,Azure Retail Prices API,2025-12-18T04:45:41.281580 +AZURE,ukwest,Standard_D16_v3,reserved_3y,NA,0.398554,USD,Azure Retail Prices API,2025-12-18T04:45:41.281582 +AZURE,ukwest,Standard_D16_v3,spot,NA,0.171494,USD,Azure Retail Prices API,2025-12-18T04:45:40.278152 +AZURE,ukwest,Standard_D16a_v4,on_demand,NA,0.929,USD,Azure Retail Prices API,2025-12-18T04:45:40.278135 +AZURE,ukwest,Standard_D16a_v4,spot,NA,0.171679,USD,Azure Retail Prices API,2025-12-18T04:45:40.277845 +AZURE,ukwest,Standard_D16ads_v5,on_demand,NA,0.997,USD,Azure Retail Prices API,2025-12-18T04:45:40.278013 +AZURE,ukwest,Standard_D16ads_v5,reserved_1y,NA,0.588242,USD,Azure Retail Prices API,2025-12-18T04:45:41.282049 +AZURE,ukwest,Standard_D16ads_v5,reserved_3y,NA,0.378881,USD,Azure Retail Prices API,2025-12-18T04:45:41.282052 +AZURE,ukwest,Standard_D16ads_v5,spot,NA,0.184246,USD,Azure Retail Prices API,2025-12-18T04:45:40.277088 +AZURE,ukwest,Standard_D16ads_v6,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:45:40.276848 +AZURE,ukwest,Standard_D16ads_v6,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:45:41.281025 +AZURE,ukwest,Standard_D16ads_v6,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:45:41.281029 +AZURE,ukwest,Standard_D16ads_v6,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:45:40.277104 +AZURE,ukwest,Standard_D16as_v4,on_demand,NA,0.929,USD,Azure Retail Prices API,2025-12-18T04:45:40.277848 +AZURE,ukwest,Standard_D16as_v4,reserved_1y,NA,0.548288,USD,Azure Retail Prices API,2025-12-18T04:45:41.281946 +AZURE,ukwest,Standard_D16as_v4,reserved_3y,NA,0.35312,USD,Azure Retail Prices API,2025-12-18T04:45:41.281949 +AZURE,ukwest,Standard_D16as_v4,spot,NA,0.171679,USD,Azure Retail Prices API,2025-12-18T04:45:40.277572 +AZURE,ukwest,Standard_D16as_v5,on_demand,NA,1.568,USD,Azure Retail Prices API,2025-12-18T04:45:40.277106 +AZURE,ukwest,Standard_D16as_v5,reserved_1y,NA,0.49121,USD,Azure Retail Prices API,2025-12-18T04:45:41.282066 +AZURE,ukwest,Standard_D16as_v5,reserved_3y,NA,0.316324,USD,Azure Retail Prices API,2025-12-18T04:45:41.282068 +AZURE,ukwest,Standard_D16as_v5,spot,NA,0.153754,USD,Azure Retail Prices API,2025-12-18T04:45:40.277345 +AZURE,ukwest,Standard_D16d_v4,on_demand,NA,1.094,USD,Azure Retail Prices API,2025-12-18T04:45:40.277525 +AZURE,ukwest,Standard_D16d_v4,reserved_1y,NA,0.64532,USD,Azure Retail Prices API,2025-12-18T04:45:41.281602 +AZURE,ukwest,Standard_D16d_v4,reserved_3y,NA,0.415677,USD,Azure Retail Prices API,2025-12-18T04:45:41.281605 +AZURE,ukwest,Standard_D16d_v4,spot,NA,0.202171,USD,Azure Retail Prices API,2025-12-18T04:45:40.278174 +AZURE,ukwest,Standard_D16ds_v4,on_demand,NA,1.094,USD,Azure Retail Prices API,2025-12-18T04:45:40.278081 +AZURE,ukwest,Standard_D16ds_v4,reserved_1y,NA,0.64532,USD,Azure Retail Prices API,2025-12-18T04:45:41.282097 +AZURE,ukwest,Standard_D16ds_v4,reserved_3y,NA,0.415677,USD,Azure Retail Prices API,2025-12-18T04:45:41.282102 +AZURE,ukwest,Standard_D16ds_v4,spot,NA,0.202171,USD,Azure Retail Prices API,2025-12-18T04:45:40.278380 +AZURE,ukwest,Standard_D16ds_v5,on_demand,NA,1.094,USD,Azure Retail Prices API,2025-12-18T04:45:40.278214 +AZURE,ukwest,Standard_D16ds_v5,reserved_1y,NA,0.64532,USD,Azure Retail Prices API,2025-12-18T04:45:41.282258 +AZURE,ukwest,Standard_D16ds_v5,reserved_3y,NA,0.415677,USD,Azure Retail Prices API,2025-12-18T04:45:41.282260 +AZURE,ukwest,Standard_D16ds_v5,spot,NA,0.202171,USD,Azure Retail Prices API,2025-12-18T04:45:40.277506 +AZURE,ukwest,Standard_D16ds_v6,on_demand,NA,1.206,USD,Azure Retail Prices API,2025-12-18T04:45:40.278192 +AZURE,ukwest,Standard_D16ds_v6,reserved_1y,NA,0.747717,USD,Azure Retail Prices API,2025-12-18T04:45:41.282224 +AZURE,ukwest,Standard_D16ds_v6,reserved_3y,NA,0.470358,USD,Azure Retail Prices API,2025-12-18T04:45:41.282227 +AZURE,ukwest,Standard_D16ds_v6,spot,NA,0.222869,USD,Azure Retail Prices API,2025-12-18T04:45:40.277289 +AZURE,ukwest,Standard_D16pds_v6,on_demand,NA,0.89,USD,Azure Retail Prices API,2025-12-18T04:45:40.277775 +AZURE,ukwest,Standard_D16pds_v6,reserved_1y,NA,0.524886,USD,Azure Retail Prices API,2025-12-18T04:45:41.281891 +AZURE,ukwest,Standard_D16pds_v6,reserved_3y,NA,0.338052,USD,Azure Retail Prices API,2025-12-18T04:45:41.281894 +AZURE,ukwest,Standard_D16pds_v6,spot,NA,0.164472,USD,Azure Retail Prices API,2025-12-18T04:45:40.277972 +AZURE,ukwest,Standard_D16ps_v6,on_demand,NA,0.678,USD,Azure Retail Prices API,2025-12-18T04:45:40.277557 +AZURE,ukwest,Standard_D16ps_v6,reserved_1y,NA,0.400228,USD,Azure Retail Prices API,2025-12-18T04:45:41.281646 +AZURE,ukwest,Standard_D16ps_v6,reserved_3y,NA,0.257801,USD,Azure Retail Prices API,2025-12-18T04:45:41.281649 +AZURE,ukwest,Standard_D16ps_v6,spot,NA,0.125294,USD,Azure Retail Prices API,2025-12-18T04:45:40.276827 +AZURE,ukwest,Standard_D16s_v3,on_demand,NA,0.928,USD,Azure Retail Prices API,2025-12-18T04:45:40.278275 +AZURE,ukwest,Standard_D16s_v3,reserved_1y,NA,0.588014,USD,Azure Retail Prices API,2025-12-18T04:45:41.282328 +AZURE,ukwest,Standard_D16s_v3,reserved_3y,NA,0.398554,USD,Azure Retail Prices API,2025-12-18T04:45:41.282331 +AZURE,ukwest,Standard_D16s_v3,spot,NA,0.171494,USD,Azure Retail Prices API,2025-12-18T04:45:40.277825 +AZURE,ukwest,Standard_D16s_v4,on_demand,NA,0.929,USD,Azure Retail Prices API,2025-12-18T04:45:40.277174 +AZURE,ukwest,Standard_D16s_v4,reserved_1y,NA,0.548288,USD,Azure Retail Prices API,2025-12-18T04:45:41.281279 +AZURE,ukwest,Standard_D16s_v4,reserved_3y,NA,0.35312,USD,Azure Retail Prices API,2025-12-18T04:45:41.281282 +AZURE,ukwest,Standard_D16s_v4,spot,NA,0.171679,USD,Azure Retail Prices API,2025-12-18T04:45:40.278248 +AZURE,ukwest,Standard_D16s_v5,on_demand,NA,0.929,USD,Azure Retail Prices API,2025-12-18T04:45:40.277548 +AZURE,ukwest,Standard_D16s_v5,reserved_1y,NA,0.548288,USD,Azure Retail Prices API,2025-12-18T04:45:41.281630 +AZURE,ukwest,Standard_D16s_v5,reserved_3y,NA,0.343836,USD,Azure Retail Prices API,2025-12-18T04:45:41.281633 +AZURE,ukwest,Standard_D16s_v5,spot,NA,0.171679,USD,Azure Retail Prices API,2025-12-18T04:45:40.276868 +AZURE,ukwest,Standard_D2ads_v6,on_demand,NA,0.138,USD,Azure Retail Prices API,2025-12-18T04:45:40.278319 +AZURE,ukwest,Standard_D2ads_v6,reserved_1y,NA,0.081393,USD,Azure Retail Prices API,2025-12-18T04:45:41.282384 +AZURE,ukwest,Standard_D2ads_v6,reserved_3y,NA,0.052435,USD,Azure Retail Prices API,2025-12-18T04:45:41.282387 +AZURE,ukwest,Standard_D2ads_v6,spot,NA,0.025502,USD,Azure Retail Prices API,2025-12-18T04:45:40.276981 +AZURE,ukwest,Standard_D2ds_v6,on_demand,NA,0.151,USD,Azure Retail Prices API,2025-12-18T04:45:40.277522 +AZURE,ukwest,Standard_D2ds_v6,reserved_1y,NA,0.093493,USD,Azure Retail Prices API,2025-12-18T04:45:41.281596 +AZURE,ukwest,Standard_D2ds_v6,reserved_3y,NA,0.05879,USD,Azure Retail Prices API,2025-12-18T04:45:41.281599 +AZURE,ukwest,Standard_D2ds_v6,spot,NA,0.027905,USD,Azure Retail Prices API,2025-12-18T04:45:40.276883 +AZURE,ukwest,Standard_D32_v3,on_demand,NA,1.856,USD,Azure Retail Prices API,2025-12-18T04:45:40.277673 +AZURE,ukwest,Standard_D32_v3,reserved_1y,NA,1.176027,USD,Azure Retail Prices API,2025-12-18T04:45:41.281791 +AZURE,ukwest,Standard_D32_v3,reserved_3y,NA,0.797108,USD,Azure Retail Prices API,2025-12-18T04:45:41.281793 +AZURE,ukwest,Standard_D32_v3,spot,NA,0.342989,USD,Azure Retail Prices API,2025-12-18T04:45:40.276919 +AZURE,ukwest,Standard_D32a_v4,on_demand,NA,1.859,USD,Azure Retail Prices API,2025-12-18T04:45:40.277999 +AZURE,ukwest,Standard_D32a_v4,spot,NA,0.343543,USD,Azure Retail Prices API,2025-12-18T04:45:40.276802 +AZURE,ukwest,Standard_D32ads_v5,on_demand,NA,1.994,USD,Azure Retail Prices API,2025-12-18T04:45:40.278144 +AZURE,ukwest,Standard_D32ads_v5,reserved_1y,NA,1.176484,USD,Azure Retail Prices API,2025-12-18T04:45:41.282167 +AZURE,ukwest,Standard_D32ads_v5,reserved_3y,NA,0.757763,USD,Azure Retail Prices API,2025-12-18T04:45:41.282170 +AZURE,ukwest,Standard_D32ads_v5,spot,NA,0.368491,USD,Azure Retail Prices API,2025-12-18T04:45:40.278138 +AZURE,ukwest,Standard_D32ads_v6,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:45:40.277688 +AZURE,ukwest,Standard_D32ads_v6,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:45:41.281802 +AZURE,ukwest,Standard_D32ads_v6,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:45:41.281805 +AZURE,ukwest,Standard_D32ads_v6,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:45:40.278363 +AZURE,ukwest,Standard_D32as_v4,on_demand,NA,1.859,USD,Azure Retail Prices API,2025-12-18T04:45:40.277319 +AZURE,ukwest,Standard_D32as_v4,reserved_1y,NA,1.096575,USD,Azure Retail Prices API,2025-12-18T04:45:41.281429 +AZURE,ukwest,Standard_D32as_v4,reserved_3y,NA,0.70624,USD,Azure Retail Prices API,2025-12-18T04:45:41.281432 +AZURE,ukwest,Standard_D32as_v4,spot,NA,0.343543,USD,Azure Retail Prices API,2025-12-18T04:45:40.277501 +AZURE,ukwest,Standard_D32as_v5,on_demand,NA,1.665,USD,Azure Retail Prices API,2025-12-18T04:45:40.277667 +AZURE,ukwest,Standard_D32as_v5,reserved_1y,NA,0.982306,USD,Azure Retail Prices API,2025-12-18T04:45:41.281780 +AZURE,ukwest,Standard_D32as_v5,reserved_3y,NA,0.632686,USD,Azure Retail Prices API,2025-12-18T04:45:41.281782 +AZURE,ukwest,Standard_D32as_v5,spot,NA,0.307692,USD,Azure Retail Prices API,2025-12-18T04:45:40.278304 +AZURE,ukwest,Standard_D32d_v4,on_demand,NA,2.188,USD,Azure Retail Prices API,2025-12-18T04:45:40.276910 +AZURE,ukwest,Standard_D32d_v4,reserved_1y,NA,1.290753,USD,Azure Retail Prices API,2025-12-18T04:45:41.281088 +AZURE,ukwest,Standard_D32d_v4,reserved_3y,NA,0.831317,USD,Azure Retail Prices API,2025-12-18T04:45:41.281091 +AZURE,ukwest,Standard_D32d_v4,spot,NA,0.404342,USD,Azure Retail Prices API,2025-12-18T04:45:40.278295 +AZURE,ukwest,Standard_D32ds_v4,on_demand,NA,2.188,USD,Azure Retail Prices API,2025-12-18T04:45:40.278234 +AZURE,ukwest,Standard_D32ds_v4,reserved_1y,NA,1.290753,USD,Azure Retail Prices API,2025-12-18T04:45:41.282279 +AZURE,ukwest,Standard_D32ds_v4,reserved_3y,NA,0.831317,USD,Azure Retail Prices API,2025-12-18T04:45:41.282282 +AZURE,ukwest,Standard_D32ds_v4,spot,NA,0.404342,USD,Azure Retail Prices API,2025-12-18T04:45:40.277662 +AZURE,ukwest,Standard_D32ds_v5,on_demand,NA,2.188,USD,Azure Retail Prices API,2025-12-18T04:45:40.278075 +AZURE,ukwest,Standard_D32ds_v5,reserved_1y,NA,1.290753,USD,Azure Retail Prices API,2025-12-18T04:45:41.282088 +AZURE,ukwest,Standard_D32ds_v5,reserved_3y,NA,0.831317,USD,Azure Retail Prices API,2025-12-18T04:45:41.282092 +AZURE,ukwest,Standard_D32ds_v5,spot,NA,0.404342,USD,Azure Retail Prices API,2025-12-18T04:45:40.277594 +AZURE,ukwest,Standard_D32ds_v6,on_demand,NA,2.412,USD,Azure Retail Prices API,2025-12-18T04:45:40.277872 +AZURE,ukwest,Standard_D32ds_v6,reserved_1y,NA,1.495548,USD,Azure Retail Prices API,2025-12-18T04:45:41.281963 +AZURE,ukwest,Standard_D32ds_v6,reserved_3y,NA,0.940753,USD,Azure Retail Prices API,2025-12-18T04:45:41.281965 +AZURE,ukwest,Standard_D32ds_v6,spot,NA,0.445738,USD,Azure Retail Prices API,2025-12-18T04:45:40.277700 +AZURE,ukwest,Standard_D32pds_v6,on_demand,NA,1.779,USD,Azure Retail Prices API,2025-12-18T04:45:40.278265 +AZURE,ukwest,Standard_D32pds_v6,reserved_1y,NA,1.049772,USD,Azure Retail Prices API,2025-12-18T04:45:41.282312 +AZURE,ukwest,Standard_D32pds_v6,reserved_3y,NA,0.676104,USD,Azure Retail Prices API,2025-12-18T04:45:41.282315 +AZURE,ukwest,Standard_D32pds_v6,spot,NA,0.328759,USD,Azure Retail Prices API,2025-12-18T04:45:40.277597 +AZURE,ukwest,Standard_D32ps_v6,on_demand,NA,1.357,USD,Azure Retail Prices API,2025-12-18T04:45:40.277456 +AZURE,ukwest,Standard_D32ps_v6,reserved_1y,NA,0.800457,USD,Azure Retail Prices API,2025-12-18T04:45:41.281540 +AZURE,ukwest,Standard_D32ps_v6,reserved_3y,NA,0.515601,USD,Azure Retail Prices API,2025-12-18T04:45:41.281543 +AZURE,ukwest,Standard_D32ps_v6,spot,NA,0.250774,USD,Azure Retail Prices API,2025-12-18T04:45:40.277277 +AZURE,ukwest,Standard_D32s_v3,on_demand,NA,1.856,USD,Azure Retail Prices API,2025-12-18T04:45:40.277735 +AZURE,ukwest,Standard_D32s_v3,reserved_1y,NA,1.176027,USD,Azure Retail Prices API,2025-12-18T04:45:41.281863 +AZURE,ukwest,Standard_D32s_v3,reserved_3y,NA,0.797108,USD,Azure Retail Prices API,2025-12-18T04:45:41.281866 +AZURE,ukwest,Standard_D32s_v3,spot,NA,0.342989,USD,Azure Retail Prices API,2025-12-18T04:45:40.276842 +AZURE,ukwest,Standard_D32s_v4,on_demand,NA,1.859,USD,Azure Retail Prices API,2025-12-18T04:45:40.277995 +AZURE,ukwest,Standard_D32s_v4,reserved_1y,NA,1.096575,USD,Azure Retail Prices API,2025-12-18T04:45:41.282032 +AZURE,ukwest,Standard_D32s_v4,reserved_3y,NA,0.70624,USD,Azure Retail Prices API,2025-12-18T04:45:41.282035 +AZURE,ukwest,Standard_D32s_v4,spot,NA,0.343543,USD,Azure Retail Prices API,2025-12-18T04:45:40.277351 +AZURE,ukwest,Standard_D32s_v5,on_demand,NA,1.859,USD,Azure Retail Prices API,2025-12-18T04:45:40.278211 +AZURE,ukwest,Standard_D32s_v5,reserved_1y,NA,1.096575,USD,Azure Retail Prices API,2025-12-18T04:45:41.282252 +AZURE,ukwest,Standard_D32s_v5,reserved_3y,NA,0.687671,USD,Azure Retail Prices API,2025-12-18T04:45:41.282255 +AZURE,ukwest,Standard_D32s_v5,spot,NA,0.343543,USD,Azure Retail Prices API,2025-12-18T04:45:40.276812 +AZURE,ukwest,Standard_D3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485313 +AZURE,ukwest,Standard_D3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485321 +AZURE,ukwest,Standard_D3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485325 +AZURE,ukwest,Standard_D3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485317 +AZURE,ukwest,Standard_D48a_v4,on_demand,NA,2.788,USD,Azure Retail Prices API,2025-12-18T04:45:40.277914 +AZURE,ukwest,Standard_D48a_v4,spot,NA,0.515222,USD,Azure Retail Prices API,2025-12-18T04:45:40.276854 +AZURE,ukwest,Standard_D48ads_v5,on_demand,NA,2.991,USD,Azure Retail Prices API,2025-12-18T04:45:40.277183 +AZURE,ukwest,Standard_D48ads_v5,reserved_1y,NA,1.764726,USD,Azure Retail Prices API,2025-12-18T04:45:41.281290 +AZURE,ukwest,Standard_D48ads_v5,reserved_3y,NA,1.136644,USD,Azure Retail Prices API,2025-12-18T04:45:41.281293 +AZURE,ukwest,Standard_D48ads_v5,spot,NA,0.552737,USD,Azure Retail Prices API,2025-12-18T04:45:40.277339 +AZURE,ukwest,Standard_D48ads_v6,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:45:40.277112 +AZURE,ukwest,Standard_D48ads_v6,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:45:41.281227 +AZURE,ukwest,Standard_D48ads_v6,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:45:41.281230 +AZURE,ukwest,Standard_D48ads_v6,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:45:40.277357 +AZURE,ukwest,Standard_D48as_v4,on_demand,NA,2.788,USD,Azure Retail Prices API,2025-12-18T04:45:40.277659 +AZURE,ukwest,Standard_D48as_v4,reserved_1y,NA,1.644863,USD,Azure Retail Prices API,2025-12-18T04:45:41.281762 +AZURE,ukwest,Standard_D48as_v4,reserved_3y,NA,1.059361,USD,Azure Retail Prices API,2025-12-18T04:45:41.281765 +AZURE,ukwest,Standard_D48as_v4,spot,NA,0.515222,USD,Azure Retail Prices API,2025-12-18T04:45:40.276839 +AZURE,ukwest,Standard_D48as_v5,on_demand,NA,2.497,USD,Azure Retail Prices API,2025-12-18T04:45:40.276796 +AZURE,ukwest,Standard_D48as_v5,reserved_1y,NA,1.473516,USD,Azure Retail Prices API,2025-12-18T04:45:41.280973 +AZURE,ukwest,Standard_D48as_v5,reserved_3y,NA,0.949011,USD,Azure Retail Prices API,2025-12-18T04:45:41.280977 +AZURE,ukwest,Standard_D48as_v5,spot,NA,0.461446,USD,Azure Retail Prices API,2025-12-18T04:45:40.277385 +AZURE,ukwest,Standard_D48d_v4,on_demand,NA,3.282,USD,Azure Retail Prices API,2025-12-18T04:45:40.278186 +AZURE,ukwest,Standard_D48d_v4,reserved_1y,NA,1.936073,USD,Azure Retail Prices API,2025-12-18T04:45:41.282207 +AZURE,ukwest,Standard_D48d_v4,reserved_3y,NA,1.246994,USD,Azure Retail Prices API,2025-12-18T04:45:41.282210 +AZURE,ukwest,Standard_D48d_v4,spot,NA,0.606514,USD,Azure Retail Prices API,2025-12-18T04:45:40.277020 +AZURE,ukwest,Standard_D48ds_v4,on_demand,NA,3.282,USD,Azure Retail Prices API,2025-12-18T04:45:40.277726 +AZURE,ukwest,Standard_D48ds_v4,reserved_1y,NA,1.936073,USD,Azure Retail Prices API,2025-12-18T04:45:41.281852 +AZURE,ukwest,Standard_D48ds_v4,reserved_3y,NA,1.246994,USD,Azure Retail Prices API,2025-12-18T04:45:41.281855 +AZURE,ukwest,Standard_D48ds_v4,spot,NA,0.606514,USD,Azure Retail Prices API,2025-12-18T04:45:40.277080 +AZURE,ukwest,Standard_D48ds_v5,on_demand,NA,3.282,USD,Azure Retail Prices API,2025-12-18T04:45:40.278268 +AZURE,ukwest,Standard_D48ds_v5,reserved_1y,NA,1.936073,USD,Azure Retail Prices API,2025-12-18T04:45:41.282317 +AZURE,ukwest,Standard_D48ds_v5,reserved_3y,NA,1.246994,USD,Azure Retail Prices API,2025-12-18T04:45:41.282320 +AZURE,ukwest,Standard_D48ds_v5,spot,NA,0.606514,USD,Azure Retail Prices API,2025-12-18T04:45:40.277807 +AZURE,ukwest,Standard_D48ds_v6,on_demand,NA,3.618,USD,Azure Retail Prices API,2025-12-18T04:45:40.276880 +AZURE,ukwest,Standard_D48ds_v6,reserved_1y,NA,2.243265,USD,Azure Retail Prices API,2025-12-18T04:45:41.281065 +AZURE,ukwest,Standard_D48ds_v6,reserved_3y,NA,1.411111,USD,Azure Retail Prices API,2025-12-18T04:45:41.281068 +AZURE,ukwest,Standard_D48ds_v6,spot,NA,0.668606,USD,Azure Retail Prices API,2025-12-18T04:45:40.276836 +AZURE,ukwest,Standard_D48pds_v6,on_demand,NA,2.669,USD,Azure Retail Prices API,2025-12-18T04:45:40.277543 +AZURE,ukwest,Standard_D48pds_v6,reserved_1y,NA,1.574543,USD,Azure Retail Prices API,2025-12-18T04:45:41.281619 +AZURE,ukwest,Standard_D48pds_v6,reserved_3y,NA,1.014155,USD,Azure Retail Prices API,2025-12-18T04:45:41.281621 +AZURE,ukwest,Standard_D48pds_v6,spot,NA,0.493231,USD,Azure Retail Prices API,2025-12-18T04:45:40.277682 +AZURE,ukwest,Standard_D48ps_v6,on_demand,NA,2.035,USD,Azure Retail Prices API,2025-12-18T04:45:40.277632 +AZURE,ukwest,Standard_D48ps_v6,reserved_1y,NA,1.200799,USD,Azure Retail Prices API,2025-12-18T04:45:41.281728 +AZURE,ukwest,Standard_D48ps_v6,reserved_3y,NA,0.773364,USD,Azure Retail Prices API,2025-12-18T04:45:41.281731 +AZURE,ukwest,Standard_D48ps_v6,spot,NA,0.376068,USD,Azure Retail Prices API,2025-12-18T04:45:40.278216 +AZURE,ukwest,Standard_D48s_v4,on_demand,NA,2.788,USD,Azure Retail Prices API,2025-12-18T04:45:40.277223 +AZURE,ukwest,Standard_D48s_v4,reserved_1y,NA,1.644863,USD,Azure Retail Prices API,2025-12-18T04:45:41.281318 +AZURE,ukwest,Standard_D48s_v4,reserved_3y,NA,1.059361,USD,Azure Retail Prices API,2025-12-18T04:45:41.281321 +AZURE,ukwest,Standard_D48s_v4,spot,NA,0.515222,USD,Azure Retail Prices API,2025-12-18T04:45:40.277391 +AZURE,ukwest,Standard_D48s_v5,on_demand,NA,2.788,USD,Azure Retail Prices API,2025-12-18T04:45:40.276971 +AZURE,ukwest,Standard_D48s_v5,reserved_1y,NA,1.644863,USD,Azure Retail Prices API,2025-12-18T04:45:41.281112 +AZURE,ukwest,Standard_D48s_v5,reserved_3y,NA,1.031507,USD,Azure Retail Prices API,2025-12-18T04:45:41.281115 +AZURE,ukwest,Standard_D48s_v5,spot,NA,0.515222,USD,Azure Retail Prices API,2025-12-18T04:45:40.277448 +AZURE,ukwest,Standard_D4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486171 +AZURE,ukwest,Standard_D4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486181 +AZURE,ukwest,Standard_D4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486185 +AZURE,ukwest,Standard_D4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486176 +AZURE,ukwest,Standard_D4a_v4,on_demand,NA,0.232,USD,Azure Retail Prices API,2025-12-18T04:45:40.277491 +AZURE,ukwest,Standard_D4a_v4,spot,NA,0.042874,USD,Azure Retail Prices API,2025-12-18T04:45:40.278029 +AZURE,ukwest,Standard_D4ads_v5,on_demand,NA,0.433,USD,Azure Retail Prices API,2025-12-18T04:45:40.277133 +AZURE,ukwest,Standard_D4ads_v5,reserved_1y,NA,0.147032,USD,Azure Retail Prices API,2025-12-18T04:45:41.282390 +AZURE,ukwest,Standard_D4ads_v5,reserved_3y,NA,0.094711,USD,Azure Retail Prices API,2025-12-18T04:45:41.282394 +AZURE,ukwest,Standard_D4ads_v5,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:45:40.277585 +AZURE,ukwest,Standard_D4ads_v6,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:45:40.278208 +AZURE,ukwest,Standard_D4ads_v6,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:45:41.282246 +AZURE,ukwest,Standard_D4ads_v6,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:45:41.282249 +AZURE,ukwest,Standard_D4ads_v6,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:45:40.277301 +AZURE,ukwest,Standard_D4as_v5,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:40.277679 +AZURE,ukwest,Standard_D4as_v5,reserved_1y,NA,0.122831,USD,Azure Retail Prices API,2025-12-18T04:45:41.281796 +AZURE,ukwest,Standard_D4as_v5,reserved_3y,NA,0.079072,USD,Azure Retail Prices API,2025-12-18T04:45:41.281799 +AZURE,ukwest,Standard_D4as_v5,spot,NA,0.038438,USD,Azure Retail Prices API,2025-12-18T04:45:40.277944 +AZURE,ukwest,Standard_D4d_v4,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:45:40.277509 +AZURE,ukwest,Standard_D4d_v4,reserved_1y,NA,0.161301,USD,Azure Retail Prices API,2025-12-18T04:45:41.281569 +AZURE,ukwest,Standard_D4d_v4,reserved_3y,NA,0.103919,USD,Azure Retail Prices API,2025-12-18T04:45:41.281571 +AZURE,ukwest,Standard_D4d_v4,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:40.278259 +AZURE,ukwest,Standard_D4ds_v4,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:45:40.277082 +AZURE,ukwest,Standard_D4ds_v4,reserved_1y,NA,0.161301,USD,Azure Retail Prices API,2025-12-18T04:45:41.281221 +AZURE,ukwest,Standard_D4ds_v4,reserved_3y,NA,0.103919,USD,Azure Retail Prices API,2025-12-18T04:45:41.281224 +AZURE,ukwest,Standard_D4ds_v4,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:40.276949 +AZURE,ukwest,Standard_D4ds_v5,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:45:40.276809 +AZURE,ukwest,Standard_D4ds_v5,reserved_1y,NA,0.161301,USD,Azure Retail Prices API,2025-12-18T04:45:41.280991 +AZURE,ukwest,Standard_D4ds_v5,reserved_3y,NA,0.103919,USD,Azure Retail Prices API,2025-12-18T04:45:41.280994 +AZURE,ukwest,Standard_D4ds_v5,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:40.278168 +AZURE,ukwest,Standard_D4ds_v6,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:40.278383 +AZURE,ukwest,Standard_D4ds_v6,reserved_1y,NA,0.186986,USD,Azure Retail Prices API,2025-12-18T04:45:41.282435 +AZURE,ukwest,Standard_D4ds_v6,reserved_3y,NA,0.11758,USD,Azure Retail Prices API,2025-12-18T04:45:41.282437 +AZURE,ukwest,Standard_D4ds_v6,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:45:40.278183 +AZURE,ukwest,Standard_D4pds_v6,on_demand,NA,0.222,USD,Azure Retail Prices API,2025-12-18T04:45:40.277420 +AZURE,ukwest,Standard_D4pds_v6,reserved_1y,NA,0.131164,USD,Azure Retail Prices API,2025-12-18T04:45:41.281494 +AZURE,ukwest,Standard_D4pds_v6,reserved_3y,NA,0.084513,USD,Azure Retail Prices API,2025-12-18T04:45:41.281496 +AZURE,ukwest,Standard_D4pds_v6,spot,NA,0.041026,USD,Azure Retail Prices API,2025-12-18T04:45:40.276957 +AZURE,ukwest,Standard_D4ps_v6,on_demand,NA,0.17,USD,Azure Retail Prices API,2025-12-18T04:45:40.278068 +AZURE,ukwest,Standard_D4ps_v6,reserved_1y,NA,0.100114,USD,Azure Retail Prices API,2025-12-18T04:45:41.282076 +AZURE,ukwest,Standard_D4ps_v6,reserved_3y,NA,0.06446,USD,Azure Retail Prices API,2025-12-18T04:45:41.282079 +AZURE,ukwest,Standard_D4ps_v6,spot,NA,0.031416,USD,Azure Retail Prices API,2025-12-18T04:45:40.277653 +AZURE,ukwest,Standard_D4s_v3,on_demand,NA,0.232,USD,Azure Retail Prices API,2025-12-18T04:45:40.277822 +AZURE,ukwest,Standard_D4s_v3,reserved_1y,NA,0.147032,USD,Azure Retail Prices API,2025-12-18T04:45:41.281935 +AZURE,ukwest,Standard_D4s_v3,reserved_3y,NA,0.099658,USD,Azure Retail Prices API,2025-12-18T04:45:41.281937 +AZURE,ukwest,Standard_D4s_v3,spot,NA,0.042874,USD,Azure Retail Prices API,2025-12-18T04:45:40.278023 +AZURE,ukwest,Standard_D4s_v4,on_demand,NA,0.232,USD,Azure Retail Prices API,2025-12-18T04:45:40.278242 +AZURE,ukwest,Standard_D4s_v4,reserved_1y,NA,0.1371,USD,Azure Retail Prices API,2025-12-18T04:45:41.282296 +AZURE,ukwest,Standard_D4s_v4,reserved_3y,NA,0.08828,USD,Azure Retail Prices API,2025-12-18T04:45:41.282299 +AZURE,ukwest,Standard_D4s_v4,spot,NA,0.042874,USD,Azure Retail Prices API,2025-12-18T04:45:40.277207 +AZURE,ukwest,Standard_D4s_v5,on_demand,NA,0.232,USD,Azure Retail Prices API,2025-12-18T04:45:40.277786 +AZURE,ukwest,Standard_D4s_v5,reserved_1y,NA,0.1371,USD,Azure Retail Prices API,2025-12-18T04:45:41.281902 +AZURE,ukwest,Standard_D4s_v5,reserved_3y,NA,0.085959,USD,Azure Retail Prices API,2025-12-18T04:45:41.281905 +AZURE,ukwest,Standard_D4s_v5,spot,NA,0.042874,USD,Azure Retail Prices API,2025-12-18T04:45:40.276992 +AZURE,ukwest,Standard_D5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487269 +AZURE,ukwest,Standard_D5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487286 +AZURE,ukwest,Standard_D5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487293 +AZURE,ukwest,Standard_D5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487278 +AZURE,ukwest,Standard_D64_v3,on_demand,NA,3.712,USD,Azure Retail Prices API,2025-12-18T04:45:40.277857 +AZURE,ukwest,Standard_D64_v3,reserved_1y,NA,2.352055,USD,Azure Retail Prices API,2025-12-18T04:45:41.281957 +AZURE,ukwest,Standard_D64_v3,reserved_3y,NA,1.594216,USD,Azure Retail Prices API,2025-12-18T04:45:41.281960 +AZURE,ukwest,Standard_D64_v3,spot,NA,0.685978,USD,Azure Retail Prices API,2025-12-18T04:45:40.277476 +AZURE,ukwest,Standard_D64a_v4,on_demand,NA,3.717,USD,Azure Retail Prices API,2025-12-18T04:45:40.278313 +AZURE,ukwest,Standard_D64a_v4,spot,NA,0.686902,USD,Azure Retail Prices API,2025-12-18T04:45:40.277043 +AZURE,ukwest,Standard_D64ads_v5,on_demand,NA,3.988,USD,Azure Retail Prices API,2025-12-18T04:45:40.277932 +AZURE,ukwest,Standard_D64ads_v5,reserved_1y,NA,2.352968,USD,Azure Retail Prices API,2025-12-18T04:45:41.281995 +AZURE,ukwest,Standard_D64ads_v5,reserved_3y,NA,1.515487,USD,Azure Retail Prices API,2025-12-18T04:45:41.281998 +AZURE,ukwest,Standard_D64ads_v5,spot,NA,0.736982,USD,Azure Retail Prices API,2025-12-18T04:45:40.277685 +AZURE,ukwest,Standard_D64ads_v6,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:45:40.277650 +AZURE,ukwest,Standard_D64ads_v6,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:45:41.281751 +AZURE,ukwest,Standard_D64ads_v6,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:45:41.281754 +AZURE,ukwest,Standard_D64ads_v6,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:45:40.276928 +AZURE,ukwest,Standard_D64as_v4,on_demand,NA,3.717,USD,Azure Retail Prices API,2025-12-18T04:45:40.277720 +AZURE,ukwest,Standard_D64as_v4,reserved_1y,NA,2.193151,USD,Azure Retail Prices API,2025-12-18T04:45:41.281841 +AZURE,ukwest,Standard_D64as_v4,reserved_3y,NA,1.412519,USD,Azure Retail Prices API,2025-12-18T04:45:41.281843 +AZURE,ukwest,Standard_D64as_v4,spot,NA,0.686902,USD,Azure Retail Prices API,2025-12-18T04:45:40.276900 +AZURE,ukwest,Standard_D64as_v5,on_demand,NA,3.33,USD,Azure Retail Prices API,2025-12-18T04:45:40.277535 +AZURE,ukwest,Standard_D64as_v5,reserved_1y,NA,1.964612,USD,Azure Retail Prices API,2025-12-18T04:45:41.281608 +AZURE,ukwest,Standard_D64as_v5,reserved_3y,NA,1.265373,USD,Azure Retail Prices API,2025-12-18T04:45:41.281610 +AZURE,ukwest,Standard_D64as_v5,spot,NA,0.615384,USD,Azure Retail Prices API,2025-12-18T04:45:40.278256 +AZURE,ukwest,Standard_D64d_v4,on_demand,NA,4.375,USD,Azure Retail Prices API,2025-12-18T04:45:40.277813 +AZURE,ukwest,Standard_D64d_v4,reserved_1y,NA,2.581507,USD,Azure Retail Prices API,2025-12-18T04:45:41.281924 +AZURE,ukwest,Standard_D64d_v4,reserved_3y,NA,1.662633,USD,Azure Retail Prices API,2025-12-18T04:45:41.281927 +AZURE,ukwest,Standard_D64d_v4,spot,NA,0.8085,USD,Azure Retail Prices API,2025-12-18T04:45:40.278245 +AZURE,ukwest,Standard_D64ds_v4,on_demand,NA,4.375,USD,Azure Retail Prices API,2025-12-18T04:45:40.277554 +AZURE,ukwest,Standard_D64ds_v4,reserved_1y,NA,2.581507,USD,Azure Retail Prices API,2025-12-18T04:45:41.281641 +AZURE,ukwest,Standard_D64ds_v4,reserved_3y,NA,1.662633,USD,Azure Retail Prices API,2025-12-18T04:45:41.281644 +AZURE,ukwest,Standard_D64ds_v4,spot,NA,0.8085,USD,Azure Retail Prices API,2025-12-18T04:45:40.278371 +AZURE,ukwest,Standard_D64ds_v5,on_demand,NA,4.375,USD,Azure Retail Prices API,2025-12-18T04:45:40.278228 +AZURE,ukwest,Standard_D64ds_v5,reserved_1y,NA,2.581507,USD,Azure Retail Prices API,2025-12-18T04:45:41.282273 +AZURE,ukwest,Standard_D64ds_v5,reserved_3y,NA,1.662633,USD,Azure Retail Prices API,2025-12-18T04:45:41.282276 +AZURE,ukwest,Standard_D64ds_v5,spot,NA,0.8085,USD,Azure Retail Prices API,2025-12-18T04:45:40.277327 +AZURE,ukwest,Standard_D64ds_v6,on_demand,NA,4.824,USD,Azure Retail Prices API,2025-12-18T04:45:40.277359 +AZURE,ukwest,Standard_D64ds_v6,reserved_1y,NA,2.991096,USD,Azure Retail Prices API,2025-12-18T04:45:41.281441 +AZURE,ukwest,Standard_D64ds_v6,reserved_3y,NA,1.881469,USD,Azure Retail Prices API,2025-12-18T04:45:41.281446 +AZURE,ukwest,Standard_D64ds_v6,spot,NA,0.891475,USD,Azure Retail Prices API,2025-12-18T04:45:40.277892 +AZURE,ukwest,Standard_D64pds_v6,on_demand,NA,3.558,USD,Azure Retail Prices API,2025-12-18T04:45:40.277242 +AZURE,ukwest,Standard_D64pds_v6,reserved_1y,NA,2.099429,USD,Azure Retail Prices API,2025-12-18T04:45:41.281341 +AZURE,ukwest,Standard_D64pds_v6,reserved_3y,NA,1.352207,USD,Azure Retail Prices API,2025-12-18T04:45:41.281343 +AZURE,ukwest,Standard_D64pds_v6,spot,NA,0.657518,USD,Azure Retail Prices API,2025-12-18T04:45:40.278302 +AZURE,ukwest,Standard_D64ps_v6,on_demand,NA,2.714,USD,Azure Retail Prices API,2025-12-18T04:45:40.277388 +AZURE,ukwest,Standard_D64ps_v6,reserved_1y,NA,1.601027,USD,Azure Retail Prices API,2025-12-18T04:45:41.281488 +AZURE,ukwest,Standard_D64ps_v6,reserved_3y,NA,1.031164,USD,Azure Retail Prices API,2025-12-18T04:45:41.281491 +AZURE,ukwest,Standard_D64ps_v6,spot,NA,0.501547,USD,Azure Retail Prices API,2025-12-18T04:45:40.276789 +AZURE,ukwest,Standard_D64s_v3,on_demand,NA,3.712,USD,Azure Retail Prices API,2025-12-18T04:45:40.278100 +AZURE,ukwest,Standard_D64s_v3,reserved_1y,NA,2.352055,USD,Azure Retail Prices API,2025-12-18T04:45:41.282123 +AZURE,ukwest,Standard_D64s_v3,reserved_3y,NA,1.594216,USD,Azure Retail Prices API,2025-12-18T04:45:41.282126 +AZURE,ukwest,Standard_D64s_v3,spot,NA,0.685978,USD,Azure Retail Prices API,2025-12-18T04:45:40.278386 +AZURE,ukwest,Standard_D64s_v4,on_demand,NA,3.717,USD,Azure Retail Prices API,2025-12-18T04:45:40.277430 +AZURE,ukwest,Standard_D64s_v4,reserved_1y,NA,2.193151,USD,Azure Retail Prices API,2025-12-18T04:45:41.281518 +AZURE,ukwest,Standard_D64s_v4,reserved_3y,NA,1.412519,USD,Azure Retail Prices API,2025-12-18T04:45:41.281520 +AZURE,ukwest,Standard_D64s_v4,spot,NA,0.686902,USD,Azure Retail Prices API,2025-12-18T04:45:40.278307 +AZURE,ukwest,Standard_D64s_v5,on_demand,NA,3.717,USD,Azure Retail Prices API,2025-12-18T04:45:40.277453 +AZURE,ukwest,Standard_D64s_v5,reserved_1y,NA,2.193151,USD,Azure Retail Prices API,2025-12-18T04:45:41.281534 +AZURE,ukwest,Standard_D64s_v5,reserved_3y,NA,1.375342,USD,Azure Retail Prices API,2025-12-18T04:45:41.281536 +AZURE,ukwest,Standard_D64s_v5,spot,NA,0.686902,USD,Azure Retail Prices API,2025-12-18T04:45:40.277769 +AZURE,ukwest,Standard_D8_v3,on_demand,NA,0.464,USD,Azure Retail Prices API,2025-12-18T04:45:40.278284 +AZURE,ukwest,Standard_D8_v3,reserved_1y,NA,0.29395,USD,Azure Retail Prices API,2025-12-18T04:45:41.282344 +AZURE,ukwest,Standard_D8_v3,reserved_3y,NA,0.199277,USD,Azure Retail Prices API,2025-12-18T04:45:41.282347 +AZURE,ukwest,Standard_D8_v3,spot,NA,0.085747,USD,Azure Retail Prices API,2025-12-18T04:45:40.276923 +AZURE,ukwest,Standard_D8a_v4,on_demand,NA,0.465,USD,Azure Retail Prices API,2025-12-18T04:45:40.277040 +AZURE,ukwest,Standard_D8a_v4,spot,NA,0.085932,USD,Azure Retail Prices API,2025-12-18T04:45:40.277212 +AZURE,ukwest,Standard_D8ads_v5,on_demand,NA,0.499,USD,Azure Retail Prices API,2025-12-18T04:45:40.277618 +AZURE,ukwest,Standard_D8ads_v5,reserved_1y,NA,0.294178,USD,Azure Retail Prices API,2025-12-18T04:45:41.281702 +AZURE,ukwest,Standard_D8ads_v5,reserved_3y,NA,0.189422,USD,Azure Retail Prices API,2025-12-18T04:45:41.281705 +AZURE,ukwest,Standard_D8ads_v5,spot,NA,0.092215,USD,Azure Retail Prices API,2025-12-18T04:45:40.278036 +AZURE,ukwest,Standard_D8ads_v6,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:45:40.277985 +AZURE,ukwest,Standard_D8ads_v6,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:45:41.282022 +AZURE,ukwest,Standard_D8ads_v6,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:45:41.282024 +AZURE,ukwest,Standard_D8ads_v6,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:45:40.277629 +AZURE,ukwest,Standard_D8as_v4,on_demand,NA,0.465,USD,Azure Retail Prices API,2025-12-18T04:45:40.277936 +AZURE,ukwest,Standard_D8as_v4,reserved_1y,NA,0.274087,USD,Azure Retail Prices API,2025-12-18T04:45:41.282001 +AZURE,ukwest,Standard_D8as_v4,reserved_3y,NA,0.17656,USD,Azure Retail Prices API,2025-12-18T04:45:41.282003 +AZURE,ukwest,Standard_D8as_v4,spot,NA,0.085932,USD,Azure Retail Prices API,2025-12-18T04:45:40.277816 +AZURE,ukwest,Standard_D8as_v5,on_demand,NA,0.784,USD,Azure Retail Prices API,2025-12-18T04:45:40.277071 +AZURE,ukwest,Standard_D8as_v5,reserved_1y,NA,0.245548,USD,Azure Retail Prices API,2025-12-18T04:45:41.281768 +AZURE,ukwest,Standard_D8as_v5,reserved_3y,NA,0.158181,USD,Azure Retail Prices API,2025-12-18T04:45:41.281771 +AZURE,ukwest,Standard_D8as_v5,spot,NA,0.076877,USD,Azure Retail Prices API,2025-12-18T04:45:40.277963 +AZURE,ukwest,Standard_D8d_v4,on_demand,NA,0.547,USD,Azure Retail Prices API,2025-12-18T04:45:40.277473 +AZURE,ukwest,Standard_D8d_v4,reserved_1y,NA,0.322717,USD,Azure Retail Prices API,2025-12-18T04:45:41.281557 +AZURE,ukwest,Standard_D8d_v4,reserved_3y,NA,0.207839,USD,Azure Retail Prices API,2025-12-18T04:45:41.281560 +AZURE,ukwest,Standard_D8d_v4,spot,NA,0.101086,USD,Azure Retail Prices API,2025-12-18T04:45:40.277177 +AZURE,ukwest,Standard_D8ds_v4,on_demand,NA,0.547,USD,Azure Retail Prices API,2025-12-18T04:45:40.278262 +AZURE,ukwest,Standard_D8ds_v4,reserved_1y,NA,0.322717,USD,Azure Retail Prices API,2025-12-18T04:45:41.282307 +AZURE,ukwest,Standard_D8ds_v4,reserved_3y,NA,0.207839,USD,Azure Retail Prices API,2025-12-18T04:45:41.282309 +AZURE,ukwest,Standard_D8ds_v4,spot,NA,0.101086,USD,Azure Retail Prices API,2025-12-18T04:45:40.277560 +AZURE,ukwest,Standard_D8ds_v5,on_demand,NA,0.547,USD,Azure Retail Prices API,2025-12-18T04:45:40.277670 +AZURE,ukwest,Standard_D8ds_v5,reserved_1y,NA,0.322717,USD,Azure Retail Prices API,2025-12-18T04:45:41.281785 +AZURE,ukwest,Standard_D8ds_v5,reserved_3y,NA,0.207839,USD,Azure Retail Prices API,2025-12-18T04:45:41.281788 +AZURE,ukwest,Standard_D8ds_v5,spot,NA,0.101086,USD,Azure Retail Prices API,2025-12-18T04:45:40.277875 +AZURE,ukwest,Standard_D8ds_v6,on_demand,NA,0.603,USD,Azure Retail Prices API,2025-12-18T04:45:40.278156 +AZURE,ukwest,Standard_D8ds_v6,reserved_1y,NA,0.373858,USD,Azure Retail Prices API,2025-12-18T04:45:41.282179 +AZURE,ukwest,Standard_D8ds_v6,reserved_3y,NA,0.235198,USD,Azure Retail Prices API,2025-12-18T04:45:41.282182 +AZURE,ukwest,Standard_D8ds_v6,spot,NA,0.111434,USD,Azure Retail Prices API,2025-12-18T04:45:40.277810 +AZURE,ukwest,Standard_D8pds_v6,on_demand,NA,0.445,USD,Azure Retail Prices API,2025-12-18T04:45:40.278354 +AZURE,ukwest,Standard_D8pds_v6,reserved_1y,NA,0.262443,USD,Azure Retail Prices API,2025-12-18T04:45:41.282413 +AZURE,ukwest,Standard_D8pds_v6,reserved_3y,NA,0.169026,USD,Azure Retail Prices API,2025-12-18T04:45:41.282416 +AZURE,ukwest,Standard_D8pds_v6,spot,NA,0.082236,USD,Azure Retail Prices API,2025-12-18T04:45:40.277165 +AZURE,ukwest,Standard_D8ps_v6,on_demand,NA,0.339,USD,Azure Retail Prices API,2025-12-18T04:45:40.277464 +AZURE,ukwest,Standard_D8ps_v6,reserved_1y,NA,0.200114,USD,Azure Retail Prices API,2025-12-18T04:45:41.281551 +AZURE,ukwest,Standard_D8ps_v6,reserved_3y,NA,0.128881,USD,Azure Retail Prices API,2025-12-18T04:45:41.281554 +AZURE,ukwest,Standard_D8ps_v6,spot,NA,0.062647,USD,Azure Retail Prices API,2025-12-18T04:45:40.277883 +AZURE,ukwest,Standard_D8s_v3,on_demand,NA,0.464,USD,Azure Retail Prices API,2025-12-18T04:45:40.277565 +AZURE,ukwest,Standard_D8s_v3,reserved_1y,NA,0.29395,USD,Azure Retail Prices API,2025-12-18T04:45:41.281651 +AZURE,ukwest,Standard_D8s_v3,reserved_3y,NA,0.199277,USD,Azure Retail Prices API,2025-12-18T04:45:41.281654 +AZURE,ukwest,Standard_D8s_v3,spot,NA,0.085747,USD,Azure Retail Prices API,2025-12-18T04:45:40.276894 +AZURE,ukwest,Standard_D8s_v4,on_demand,NA,0.465,USD,Azure Retail Prices API,2025-12-18T04:45:40.277275 +AZURE,ukwest,Standard_D8s_v4,reserved_1y,NA,0.274087,USD,Azure Retail Prices API,2025-12-18T04:45:41.281384 +AZURE,ukwest,Standard_D8s_v4,reserved_3y,NA,0.17656,USD,Azure Retail Prices API,2025-12-18T04:45:41.281387 +AZURE,ukwest,Standard_D8s_v4,spot,NA,0.085932,USD,Azure Retail Prices API,2025-12-18T04:45:40.278133 +AZURE,ukwest,Standard_D8s_v5,on_demand,NA,0.465,USD,Azure Retail Prices API,2025-12-18T04:45:40.277253 +AZURE,ukwest,Standard_D8s_v5,reserved_1y,NA,0.274087,USD,Azure Retail Prices API,2025-12-18T04:45:41.281357 +AZURE,ukwest,Standard_D8s_v5,reserved_3y,NA,0.171918,USD,Azure Retail Prices API,2025-12-18T04:45:41.281360 +AZURE,ukwest,Standard_D8s_v5,spot,NA,0.085932,USD,Azure Retail Prices API,2025-12-18T04:45:40.277743 +AZURE,ukwest,Standard_D96a_v4,on_demand,NA,5.576,USD,Azure Retail Prices API,2025-12-18T04:45:40.278231 +AZURE,ukwest,Standard_D96a_v4,spot,NA,1.030445,USD,Azure Retail Prices API,2025-12-18T04:45:40.277860 +AZURE,ukwest,Standard_D96ads_v5,on_demand,NA,5.982,USD,Azure Retail Prices API,2025-12-18T04:45:40.277949 +AZURE,ukwest,Standard_D96ads_v5,reserved_1y,NA,3.529566,USD,Azure Retail Prices API,2025-12-18T04:45:41.282011 +AZURE,ukwest,Standard_D96ads_v5,reserved_3y,NA,2.27325,USD,Azure Retail Prices API,2025-12-18T04:45:41.282014 +AZURE,ukwest,Standard_D96ads_v5,spot,NA,1.105474,USD,Azure Retail Prices API,2025-12-18T04:45:40.277250 +AZURE,ukwest,Standard_D96ads_v6,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:45:40.278084 +AZURE,ukwest,Standard_D96ads_v6,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:45:41.282108 +AZURE,ukwest,Standard_D96ads_v6,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:45:41.282114 +AZURE,ukwest,Standard_D96ads_v6,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:45:40.277052 +AZURE,ukwest,Standard_D96as_v4,on_demand,NA,5.576,USD,Azure Retail Prices API,2025-12-18T04:45:40.277638 +AZURE,ukwest,Standard_D96as_v4,reserved_1y,NA,3.289612,USD,Azure Retail Prices API,2025-12-18T04:45:41.281739 +AZURE,ukwest,Standard_D96as_v4,reserved_3y,NA,2.11876,USD,Azure Retail Prices API,2025-12-18T04:45:41.281742 +AZURE,ukwest,Standard_D96as_v4,spot,NA,1.030445,USD,Azure Retail Prices API,2025-12-18T04:45:40.276987 +AZURE,ukwest,Standard_D96as_v5,on_demand,NA,9.411,USD,Azure Retail Prices API,2025-12-18T04:45:40.277694 +AZURE,ukwest,Standard_D96as_v5,reserved_1y,NA,2.947032,USD,Azure Retail Prices API,2025-12-18T04:45:41.282184 +AZURE,ukwest,Standard_D96as_v5,reserved_3y,NA,1.898059,USD,Azure Retail Prices API,2025-12-18T04:45:41.282187 +AZURE,ukwest,Standard_D96as_v5,spot,NA,0.923076,USD,Azure Retail Prices API,2025-12-18T04:45:40.277411 +AZURE,ukwest,Standard_D96ds_v5,on_demand,NA,6.563,USD,Azure Retail Prices API,2025-12-18T04:45:40.276997 +AZURE,ukwest,Standard_D96ds_v5,reserved_1y,NA,3.872146,USD,Azure Retail Prices API,2025-12-18T04:45:41.281132 +AZURE,ukwest,Standard_D96ds_v5,reserved_3y,NA,2.49395,USD,Azure Retail Prices API,2025-12-18T04:45:41.281135 +AZURE,ukwest,Standard_D96ds_v5,spot,NA,1.212842,USD,Azure Retail Prices API,2025-12-18T04:45:40.277085 +AZURE,ukwest,Standard_D96ds_v6,on_demand,NA,7.236,USD,Azure Retail Prices API,2025-12-18T04:45:40.277691 +AZURE,ukwest,Standard_D96ds_v6,reserved_1y,NA,4.486644,USD,Azure Retail Prices API,2025-12-18T04:45:41.281808 +AZURE,ukwest,Standard_D96ds_v6,reserved_3y,NA,2.822222,USD,Azure Retail Prices API,2025-12-18T04:45:41.281810 +AZURE,ukwest,Standard_D96ds_v6,spot,NA,1.337213,USD,Azure Retail Prices API,2025-12-18T04:45:40.277159 +AZURE,ukwest,Standard_D96pds_v6,on_demand,NA,5.338,USD,Azure Retail Prices API,2025-12-18T04:45:40.277280 +AZURE,ukwest,Standard_D96pds_v6,reserved_1y,NA,3.149201,USD,Azure Retail Prices API,2025-12-18T04:45:41.281390 +AZURE,ukwest,Standard_D96pds_v6,reserved_3y,NA,2.028272,USD,Azure Retail Prices API,2025-12-18T04:45:41.281393 +AZURE,ukwest,Standard_D96pds_v6,spot,NA,0.986462,USD,Azure Retail Prices API,2025-12-18T04:45:40.277798 +AZURE,ukwest,Standard_D96ps_v6,on_demand,NA,4.07,USD,Azure Retail Prices API,2025-12-18T04:45:40.276863 +AZURE,ukwest,Standard_D96ps_v6,reserved_1y,NA,2.401484,USD,Azure Retail Prices API,2025-12-18T04:45:41.281053 +AZURE,ukwest,Standard_D96ps_v6,reserved_3y,NA,1.546766,USD,Azure Retail Prices API,2025-12-18T04:45:41.281057 +AZURE,ukwest,Standard_D96ps_v6,spot,NA,0.752136,USD,Azure Retail Prices API,2025-12-18T04:45:40.278322 +AZURE,ukwest,Standard_D96s_v5,on_demand,NA,5.576,USD,Azure Retail Prices API,2025-12-18T04:45:40.277142 +AZURE,ukwest,Standard_D96s_v5,reserved_1y,NA,3.289612,USD,Azure Retail Prices API,2025-12-18T04:45:41.281244 +AZURE,ukwest,Standard_D96s_v5,reserved_3y,NA,2.063014,USD,Azure Retail Prices API,2025-12-18T04:45:41.281248 +AZURE,ukwest,Standard_D96s_v5,spot,NA,1.030445,USD,Azure Retail Prices API,2025-12-18T04:45:40.277271 +AZURE,ukwest,Standard_DC16ads_v6,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:45:40.277551 +AZURE,ukwest,Standard_DC16ads_v6,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:45:41.281635 +AZURE,ukwest,Standard_DC16ads_v6,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:45:41.281638 +AZURE,ukwest,Standard_DC16ads_v6,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:45:40.277204 +AZURE,ukwest,Standard_DC2ads_v6,on_demand,NA,0.138,USD,Azure Retail Prices API,2025-12-18T04:45:40.277024 +AZURE,ukwest,Standard_DC2ads_v6,reserved_1y,NA,0.081393,USD,Azure Retail Prices API,2025-12-18T04:45:41.281162 +AZURE,ukwest,Standard_DC2ads_v6,reserved_3y,NA,0.052435,USD,Azure Retail Prices API,2025-12-18T04:45:41.281167 +AZURE,ukwest,Standard_DC2ads_v6,spot,NA,0.025502,USD,Azure Retail Prices API,2025-12-18T04:45:40.277109 +AZURE,ukwest,Standard_DC32ads_v6,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:45:40.277738 +AZURE,ukwest,Standard_DC32ads_v6,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:45:41.281869 +AZURE,ukwest,Standard_DC32ads_v6,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:45:41.281872 +AZURE,ukwest,Standard_DC32ads_v6,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:45:40.277992 +AZURE,ukwest,Standard_DC48ads_v6,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:45:40.278103 +AZURE,ukwest,Standard_DC48ads_v6,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:45:41.282129 +AZURE,ukwest,Standard_DC48ads_v6,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:45:41.282132 +AZURE,ukwest,Standard_DC48ads_v6,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:45:40.278328 +AZURE,ukwest,Standard_DC4ads_v6,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:45:40.277439 +AZURE,ukwest,Standard_DC4ads_v6,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:45:41.281523 +AZURE,ukwest,Standard_DC4ads_v6,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:45:41.281526 +AZURE,ukwest,Standard_DC4ads_v6,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:45:40.277627 +AZURE,ukwest,Standard_DC64ads_v6,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:45:40.277878 +AZURE,ukwest,Standard_DC64ads_v6,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:45:41.281968 +AZURE,ukwest,Standard_DC64ads_v6,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:45:41.281971 +AZURE,ukwest,Standard_DC64ads_v6,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:45:40.278325 +AZURE,ukwest,Standard_DC8ads_v6,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:45:40.277520 +AZURE,ukwest,Standard_DC8ads_v6,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:45:41.281591 +AZURE,ukwest,Standard_DC8ads_v6,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:45:41.281594 +AZURE,ukwest,Standard_DC8ads_v6,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:45:40.277644 +AZURE,ukwest,Standard_DC96ads_v6,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:45:40.277801 +AZURE,ukwest,Standard_DC96ads_v6,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:45:41.281919 +AZURE,ukwest,Standard_DC96ads_v6,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:45:41.281922 +AZURE,ukwest,Standard_DC96ads_v6,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:45:40.277049 +AZURE,ukwest,Standard_DS12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495309 +AZURE,ukwest,Standard_DS12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495317 +AZURE,ukwest,Standard_DS12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495321 +AZURE,ukwest,Standard_DS12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495313 +AZURE,ukwest,Standard_DS13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496175 +AZURE,ukwest,Standard_DS13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496190 +AZURE,ukwest,Standard_DS13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496196 +AZURE,ukwest,Standard_DS13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496182 +AZURE,ukwest,Standard_DS14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496940 +AZURE,ukwest,Standard_DS14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496952 +AZURE,ukwest,Standard_DS14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496956 +AZURE,ukwest,Standard_DS14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496945 +AZURE,ukwest,Standard_DS15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497828 +AZURE,ukwest,Standard_DS15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497836 +AZURE,ukwest,Standard_DS15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497840 +AZURE,ukwest,Standard_DS15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497832 +AZURE,ukwest,Standard_DS1_v2,on_demand,NA,0.07665,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491660 +AZURE,ukwest,Standard_DS1_v2,reserved_1y,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491668 +AZURE,ukwest,Standard_DS1_v2,reserved_3y,NA,0.03066,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491672 +AZURE,ukwest,Standard_DS1_v2,spot,NA,0.022995,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491664 +AZURE,ukwest,Standard_DS2_v2,on_demand,NA,0.1533,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492406 +AZURE,ukwest,Standard_DS2_v2,reserved_1y,NA,0.09198,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492414 +AZURE,ukwest,Standard_DS2_v2,reserved_3y,NA,0.06132,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492418 +AZURE,ukwest,Standard_DS2_v2,spot,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492410 +AZURE,ukwest,Standard_DS3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493128 +AZURE,ukwest,Standard_DS3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493137 +AZURE,ukwest,Standard_DS3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493141 +AZURE,ukwest,Standard_DS3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493133 +AZURE,ukwest,Standard_DS4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493840 +AZURE,ukwest,Standard_DS4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493849 +AZURE,ukwest,Standard_DS4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493854 +AZURE,ukwest,Standard_DS4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493845 +AZURE,ukwest,Standard_DS5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494553 +AZURE,ukwest,Standard_DS5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494561 +AZURE,ukwest,Standard_DS5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494566 +AZURE,ukwest,Standard_DS5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494557 +AZURE,ukwest,Standard_E128ds_v6,on_demand,NA,12.663,USD,Azure Retail Prices API,2025-12-18T04:45:40.277295 +AZURE,ukwest,Standard_E128ds_v6,reserved_1y,NA,7.851142,USD,Azure Retail Prices API,2025-12-18T04:45:41.281407 +AZURE,ukwest,Standard_E128ds_v6,reserved_3y,NA,4.938584,USD,Azure Retail Prices API,2025-12-18T04:45:41.281410 +AZURE,ukwest,Standard_E128ds_v6,spot,NA,2.340122,USD,Azure Retail Prices API,2025-12-18T04:45:40.278097 +AZURE,ukwest,Standard_E16_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:45:40.278377 +AZURE,ukwest,Standard_E16_v3,reserved_1y,NA,0.73379,USD,Azure Retail Prices API,2025-12-18T04:45:41.282424 +AZURE,ukwest,Standard_E16_v3,reserved_3y,NA,0.469254,USD,Azure Retail Prices API,2025-12-18T04:45:41.282426 +AZURE,ukwest,Standard_E16_v3,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:45:40.276974 +AZURE,ukwest,Standard_E16a_v4,on_demand,NA,1.22,USD,Azure Retail Prices API,2025-12-18T04:45:40.277988 +AZURE,ukwest,Standard_E16a_v4,reserved_1y,NA,0.731849,USD,Azure Retail Prices API,2025-12-18T04:45:41.282027 +AZURE,ukwest,Standard_E16a_v4,reserved_3y,NA,0.487861,USD,Azure Retail Prices API,2025-12-18T04:45:41.282030 +AZURE,ukwest,Standard_E16a_v4,spot,NA,0.225456,USD,Azure Retail Prices API,2025-12-18T04:45:40.276976 +AZURE,ukwest,Standard_E16ads_v5,on_demand,NA,1.268,USD,Azure Retail Prices API,2025-12-18T04:45:40.278177 +AZURE,ukwest,Standard_E16ads_v5,reserved_1y,NA,0.748174,USD,Azure Retail Prices API,2025-12-18T04:45:41.282196 +AZURE,ukwest,Standard_E16ads_v5,reserved_3y,NA,0.481887,USD,Azure Retail Prices API,2025-12-18T04:45:41.282198 +AZURE,ukwest,Standard_E16ads_v5,spot,NA,0.234326,USD,Azure Retail Prices API,2025-12-18T04:45:40.278348 +AZURE,ukwest,Standard_E16ads_v6,on_demand,NA,1.403,USD,Azure Retail Prices API,2025-12-18T04:45:40.277377 +AZURE,ukwest,Standard_E16ads_v6,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:45:41.281477 +AZURE,ukwest,Standard_E16ads_v6,reserved_3y,NA,0.533219,USD,Azure Retail Prices API,2025-12-18T04:45:41.281480 +AZURE,ukwest,Standard_E16ads_v6,spot,NA,0.259274,USD,Azure Retail Prices API,2025-12-18T04:45:40.277903 +AZURE,ukwest,Standard_E16as_v4,on_demand,NA,1.22,USD,Azure Retail Prices API,2025-12-18T04:45:40.276851 +AZURE,ukwest,Standard_E16as_v4,reserved_1y,NA,0.731849,USD,Azure Retail Prices API,2025-12-18T04:45:41.281033 +AZURE,ukwest,Standard_E16as_v4,reserved_3y,NA,0.487861,USD,Azure Retail Prices API,2025-12-18T04:45:41.281039 +AZURE,ukwest,Standard_E16as_v4,spot,NA,0.225456,USD,Azure Retail Prices API,2025-12-18T04:45:40.277148 +AZURE,ukwest,Standard_E16as_v5,on_demand,NA,1.094,USD,Azure Retail Prices API,2025-12-18T04:45:40.277729 +AZURE,ukwest,Standard_E16as_v5,reserved_1y,NA,0.64532,USD,Azure Retail Prices API,2025-12-18T04:45:41.281857 +AZURE,ukwest,Standard_E16as_v5,reserved_3y,NA,0.415677,USD,Azure Retail Prices API,2025-12-18T04:45:41.281860 +AZURE,ukwest,Standard_E16as_v5,spot,NA,0.202171,USD,Azure Retail Prices API,2025-12-18T04:45:40.277348 +AZURE,ukwest,Standard_E16d_v4,on_demand,NA,1.394,USD,Azure Retail Prices API,2025-12-18T04:45:40.277239 +AZURE,ukwest,Standard_E16d_v4,reserved_1y,NA,0.822374,USD,Azure Retail Prices API,2025-12-18T04:45:41.281335 +AZURE,ukwest,Standard_E16d_v4,reserved_3y,NA,0.52968,USD,Azure Retail Prices API,2025-12-18T04:45:41.281338 +AZURE,ukwest,Standard_E16d_v4,spot,NA,0.257611,USD,Azure Retail Prices API,2025-12-18T04:45:40.278334 +AZURE,ukwest,Standard_E16ds_v4,on_demand,NA,1.394,USD,Azure Retail Prices API,2025-12-18T04:45:40.277537 +AZURE,ukwest,Standard_E16ds_v4,reserved_1y,NA,0.822374,USD,Azure Retail Prices API,2025-12-18T04:45:41.281613 +AZURE,ukwest,Standard_E16ds_v4,reserved_3y,NA,0.52968,USD,Azure Retail Prices API,2025-12-18T04:45:41.281616 +AZURE,ukwest,Standard_E16ds_v4,spot,NA,0.257611,USD,Azure Retail Prices API,2025-12-18T04:45:40.276857 +AZURE,ukwest,Standard_E16ds_v5,on_demand,NA,1.394,USD,Azure Retail Prices API,2025-12-18T04:45:40.277615 +AZURE,ukwest,Standard_E16ds_v5,reserved_1y,NA,0.822374,USD,Azure Retail Prices API,2025-12-18T04:45:41.281697 +AZURE,ukwest,Standard_E16ds_v5,reserved_3y,NA,0.52968,USD,Azure Retail Prices API,2025-12-18T04:45:41.281699 +AZURE,ukwest,Standard_E16ds_v5,spot,NA,0.257611,USD,Azure Retail Prices API,2025-12-18T04:45:40.277496 +AZURE,ukwest,Standard_E16ds_v6,on_demand,NA,1.583,USD,Azure Retail Prices API,2025-12-18T04:45:40.277380 +AZURE,ukwest,Standard_E16ds_v6,reserved_1y,NA,0.981393,USD,Azure Retail Prices API,2025-12-18T04:45:41.281482 +AZURE,ukwest,Standard_E16ds_v6,reserved_3y,NA,0.617314,USD,Azure Retail Prices API,2025-12-18T04:45:41.281485 +AZURE,ukwest,Standard_E16ds_v6,spot,NA,0.292538,USD,Azure Retail Prices API,2025-12-18T04:45:40.277467 +AZURE,ukwest,Standard_E16pds_v6,on_demand,NA,1.131,USD,Azure Retail Prices API,2025-12-18T04:45:40.276961 +AZURE,ukwest,Standard_E16pds_v6,reserved_1y,NA,0.667352,USD,Azure Retail Prices API,2025-12-18T04:45:41.281106 +AZURE,ukwest,Standard_E16pds_v6,reserved_3y,NA,0.429871,USD,Azure Retail Prices API,2025-12-18T04:45:41.281109 +AZURE,ukwest,Standard_E16pds_v6,spot,NA,0.209009,USD,Azure Retail Prices API,2025-12-18T04:45:40.277854 +AZURE,ukwest,Standard_E16ps_v6,on_demand,NA,0.893,USD,Azure Retail Prices API,2025-12-18T04:45:40.277424 +AZURE,ukwest,Standard_E16ps_v6,reserved_1y,NA,0.526712,USD,Azure Retail Prices API,2025-12-18T04:45:41.281511 +AZURE,ukwest,Standard_E16ps_v6,reserved_3y,NA,0.339269,USD,Azure Retail Prices API,2025-12-18T04:45:41.281514 +AZURE,ukwest,Standard_E16ps_v6,spot,NA,0.165026,USD,Azure Retail Prices API,2025-12-18T04:45:40.277976 +AZURE,ukwest,Standard_E16s_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:45:40.276845 +AZURE,ukwest,Standard_E16s_v3,reserved_1y,NA,0.73379,USD,Azure Retail Prices API,2025-12-18T04:45:41.281015 +AZURE,ukwest,Standard_E16s_v3,reserved_3y,NA,0.469254,USD,Azure Retail Prices API,2025-12-18T04:45:41.281020 +AZURE,ukwest,Standard_E16s_v3,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:45:40.277706 +AZURE,ukwest,Standard_E16s_v4,on_demand,NA,1.22,USD,Azure Retail Prices API,2025-12-18T04:45:40.278223 +AZURE,ukwest,Standard_E16s_v4,reserved_1y,NA,0.719635,USD,Azure Retail Prices API,2025-12-18T04:45:41.282268 +AZURE,ukwest,Standard_E16s_v4,reserved_3y,NA,0.46347,USD,Azure Retail Prices API,2025-12-18T04:45:41.282271 +AZURE,ukwest,Standard_E16s_v4,spot,NA,0.225456,USD,Azure Retail Prices API,2025-12-18T04:45:40.276966 +AZURE,ukwest,Standard_E16s_v5,on_demand,NA,1.22,USD,Azure Retail Prices API,2025-12-18T04:45:40.277940 +AZURE,ukwest,Standard_E16s_v5,reserved_1y,NA,0.719635,USD,Azure Retail Prices API,2025-12-18T04:45:41.282006 +AZURE,ukwest,Standard_E16s_v5,reserved_3y,NA,0.451294,USD,Azure Retail Prices API,2025-12-18T04:45:41.282009 +AZURE,ukwest,Standard_E16s_v5,spot,NA,0.225456,USD,Azure Retail Prices API,2025-12-18T04:45:40.277752 +AZURE,ukwest,Standard_E20a_v4,on_demand,NA,1.525,USD,Azure Retail Prices API,2025-12-18T04:45:40.277286 +AZURE,ukwest,Standard_E20a_v4,reserved_1y,NA,0.914726,USD,Azure Retail Prices API,2025-12-18T04:45:41.281396 +AZURE,ukwest,Standard_E20a_v4,reserved_3y,NA,0.609855,USD,Azure Retail Prices API,2025-12-18T04:45:41.281399 +AZURE,ukwest,Standard_E20a_v4,spot,NA,0.28182,USD,Azure Retail Prices API,2025-12-18T04:45:40.277433 +AZURE,ukwest,Standard_E20ads_v5,on_demand,NA,2.505,USD,Azure Retail Prices API,2025-12-18T04:45:40.277459 +AZURE,ukwest,Standard_E20ads_v5,reserved_1y,NA,0.93516,USD,Azure Retail Prices API,2025-12-18T04:45:41.282043 +AZURE,ukwest,Standard_E20ads_v5,reserved_3y,NA,0.602321,USD,Azure Retail Prices API,2025-12-18T04:45:41.282046 +AZURE,ukwest,Standard_E20ads_v5,spot,NA,0.292908,USD,Azure Retail Prices API,2025-12-18T04:45:40.278094 +AZURE,ukwest,Standard_E20ads_v6,on_demand,NA,1.754,USD,Azure Retail Prices API,2025-12-18T04:45:40.277621 +AZURE,ukwest,Standard_E20ads_v6,reserved_1y,NA,1.034817,USD,Azure Retail Prices API,2025-12-18T04:45:41.281708 +AZURE,ukwest,Standard_E20ads_v6,reserved_3y,NA,0.666514,USD,Azure Retail Prices API,2025-12-18T04:45:41.281719 +AZURE,ukwest,Standard_E20ads_v6,spot,NA,0.324139,USD,Azure Retail Prices API,2025-12-18T04:45:40.277218 +AZURE,ukwest,Standard_E20as_v4,on_demand,NA,1.525,USD,Azure Retail Prices API,2025-12-18T04:45:40.278180 +AZURE,ukwest,Standard_E20as_v4,reserved_1y,NA,0.914726,USD,Azure Retail Prices API,2025-12-18T04:45:41.282201 +AZURE,ukwest,Standard_E20as_v4,reserved_3y,NA,0.609855,USD,Azure Retail Prices API,2025-12-18T04:45:41.282204 +AZURE,ukwest,Standard_E20as_v4,spot,NA,0.28182,USD,Azure Retail Prices API,2025-12-18T04:45:40.277321 +AZURE,ukwest,Standard_E20as_v5,on_demand,NA,2.287,USD,Azure Retail Prices API,2025-12-18T04:45:40.277065 +AZURE,ukwest,Standard_E20as_v5,reserved_1y,NA,0.806735,USD,Azure Retail Prices API,2025-12-18T04:45:41.281813 +AZURE,ukwest,Standard_E20as_v5,reserved_3y,NA,0.519559,USD,Azure Retail Prices API,2025-12-18T04:45:41.281816 +AZURE,ukwest,Standard_E20as_v5,spot,NA,0.252622,USD,Azure Retail Prices API,2025-12-18T04:45:40.278008 +AZURE,ukwest,Standard_E20d_v4,on_demand,NA,1.742,USD,Azure Retail Prices API,2025-12-18T04:45:40.277245 +AZURE,ukwest,Standard_E20d_v4,reserved_1y,NA,1.027968,USD,Azure Retail Prices API,2025-12-18T04:45:41.281346 +AZURE,ukwest,Standard_E20d_v4,reserved_3y,NA,0.6621,USD,Azure Retail Prices API,2025-12-18T04:45:41.281349 +AZURE,ukwest,Standard_E20d_v4,spot,NA,0.321922,USD,Azure Retail Prices API,2025-12-18T04:45:40.277827 +AZURE,ukwest,Standard_E20ds_v4,on_demand,NA,1.742,USD,Azure Retail Prices API,2025-12-18T04:45:40.277656 +AZURE,ukwest,Standard_E20ds_v4,reserved_1y,NA,1.027968,USD,Azure Retail Prices API,2025-12-18T04:45:41.281756 +AZURE,ukwest,Standard_E20ds_v4,reserved_3y,NA,0.6621,USD,Azure Retail Prices API,2025-12-18T04:45:41.281759 +AZURE,ukwest,Standard_E20ds_v4,spot,NA,0.321922,USD,Azure Retail Prices API,2025-12-18T04:45:40.276905 +AZURE,ukwest,Standard_E20ds_v5,on_demand,NA,1.742,USD,Azure Retail Prices API,2025-12-18T04:45:40.277761 +AZURE,ukwest,Standard_E20ds_v5,reserved_1y,NA,1.027968,USD,Azure Retail Prices API,2025-12-18T04:45:41.281880 +AZURE,ukwest,Standard_E20ds_v5,reserved_3y,NA,0.6621,USD,Azure Retail Prices API,2025-12-18T04:45:41.281883 +AZURE,ukwest,Standard_E20ds_v5,spot,NA,0.321922,USD,Azure Retail Prices API,2025-12-18T04:45:40.277342 +AZURE,ukwest,Standard_E20ds_v6,on_demand,NA,1.979,USD,Azure Retail Prices API,2025-12-18T04:45:40.277292 +AZURE,ukwest,Standard_E20ds_v6,reserved_1y,NA,1.226712,USD,Azure Retail Prices API,2025-12-18T04:45:41.281401 +AZURE,ukwest,Standard_E20ds_v6,reserved_3y,NA,0.771651,USD,Azure Retail Prices API,2025-12-18T04:45:41.281404 +AZURE,ukwest,Standard_E20ds_v6,spot,NA,0.365719,USD,Azure Retail Prices API,2025-12-18T04:45:40.278293 +AZURE,ukwest,Standard_E20s_v4,on_demand,NA,1.525,USD,Azure Retail Prices API,2025-12-18T04:45:40.277623 +AZURE,ukwest,Standard_E20s_v4,reserved_1y,NA,0.899543,USD,Azure Retail Prices API,2025-12-18T04:45:41.281722 +AZURE,ukwest,Standard_E20s_v4,reserved_3y,NA,0.579338,USD,Azure Retail Prices API,2025-12-18T04:45:41.281725 +AZURE,ukwest,Standard_E20s_v4,spot,NA,0.28182,USD,Azure Retail Prices API,2025-12-18T04:45:40.277780 +AZURE,ukwest,Standard_E20s_v5,on_demand,NA,1.525,USD,Azure Retail Prices API,2025-12-18T04:45:40.277485 +AZURE,ukwest,Standard_E20s_v5,reserved_1y,NA,0.899543,USD,Azure Retail Prices API,2025-12-18T04:45:41.281563 +AZURE,ukwest,Standard_E20s_v5,reserved_3y,NA,0.564117,USD,Azure Retail Prices API,2025-12-18T04:45:41.281566 +AZURE,ukwest,Standard_E20s_v5,spot,NA,0.28182,USD,Azure Retail Prices API,2025-12-18T04:45:40.277189 +AZURE,ukwest,Standard_E2_v3,on_demand,NA,0.156,USD,Azure Retail Prices API,2025-12-18T04:45:40.277017 +AZURE,ukwest,Standard_E2_v3,reserved_1y,NA,0.091781,USD,Azure Retail Prices API,2025-12-18T04:45:41.281156 +AZURE,ukwest,Standard_E2_v3,reserved_3y,NA,0.058638,USD,Azure Retail Prices API,2025-12-18T04:45:41.281159 +AZURE,ukwest,Standard_E2_v3,spot,NA,0.028829,USD,Azure Retail Prices API,2025-12-18T04:45:40.276815 +AZURE,ukwest,Standard_E2ads_v6,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:45:40.276830 +AZURE,ukwest,Standard_E2ads_v6,reserved_1y,NA,0.103539,USD,Azure Retail Prices API,2025-12-18T04:45:41.281009 +AZURE,ukwest,Standard_E2ads_v6,reserved_3y,NA,0.066667,USD,Azure Retail Prices API,2025-12-18T04:45:41.281012 +AZURE,ukwest,Standard_E2ads_v6,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:45:40.277186 +AZURE,ukwest,Standard_E2ds_v5,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:45:40.277061 +AZURE,ukwest,Standard_E2ds_v5,reserved_1y,NA,0.102854,USD,Azure Retail Prices API,2025-12-18T04:45:41.281205 +AZURE,ukwest,Standard_E2ds_v5,reserved_3y,NA,0.06621,USD,Azure Retail Prices API,2025-12-18T04:45:41.281208 +AZURE,ukwest,Standard_E2ds_v5,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:45:40.277755 +AZURE,ukwest,Standard_E2ds_v6,on_demand,NA,0.198,USD,Azure Retail Prices API,2025-12-18T04:45:40.277783 +AZURE,ukwest,Standard_E2ds_v6,reserved_1y,NA,0.122717,USD,Azure Retail Prices API,2025-12-18T04:45:41.281896 +AZURE,ukwest,Standard_E2ds_v6,reserved_3y,NA,0.077169,USD,Azure Retail Prices API,2025-12-18T04:45:41.281899 +AZURE,ukwest,Standard_E2ds_v6,spot,NA,0.03659,USD,Azure Retail Prices API,2025-12-18T04:45:40.278011 +AZURE,ukwest,Standard_E2pds_v6,on_demand,NA,0.141,USD,Azure Retail Prices API,2025-12-18T04:45:40.278271 +AZURE,ukwest,Standard_E2pds_v6,reserved_1y,NA,0.083447,USD,Azure Retail Prices API,2025-12-18T04:45:41.282323 +AZURE,ukwest,Standard_E2pds_v6,reserved_3y,NA,0.053729,USD,Azure Retail Prices API,2025-12-18T04:45:41.282326 +AZURE,ukwest,Standard_E2pds_v6,spot,NA,0.026057,USD,Azure Retail Prices API,2025-12-18T04:45:40.278038 +AZURE,ukwest,Standard_E32_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:40.278278 +AZURE,ukwest,Standard_E32_v3,reserved_1y,NA,1.467694,USD,Azure Retail Prices API,2025-12-18T04:45:41.282334 +AZURE,ukwest,Standard_E32_v3,reserved_3y,NA,0.938508,USD,Azure Retail Prices API,2025-12-18T04:45:41.282336 +AZURE,ukwest,Standard_E32_v3,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:45:40.278086 +AZURE,ukwest,Standard_E32a_v4,on_demand,NA,2.439,USD,Azure Retail Prices API,2025-12-18T04:45:40.277517 +AZURE,ukwest,Standard_E32a_v4,reserved_1y,NA,1.463584,USD,Azure Retail Prices API,2025-12-18T04:45:41.281585 +AZURE,ukwest,Standard_E32a_v4,reserved_3y,NA,0.975761,USD,Azure Retail Prices API,2025-12-18T04:45:41.281588 +AZURE,ukwest,Standard_E32a_v4,spot,NA,0.450727,USD,Azure Retail Prices API,2025-12-18T04:45:40.278026 +AZURE,ukwest,Standard_E32ads_v5,on_demand,NA,4.008,USD,Azure Retail Prices API,2025-12-18T04:45:40.278017 +AZURE,ukwest,Standard_E32ads_v5,reserved_1y,NA,1.496347,USD,Azure Retail Prices API,2025-12-18T04:45:41.282235 +AZURE,ukwest,Standard_E32ads_v5,reserved_3y,NA,0.963737,USD,Azure Retail Prices API,2025-12-18T04:45:41.282238 +AZURE,ukwest,Standard_E32ads_v5,spot,NA,0.468653,USD,Azure Retail Prices API,2025-12-18T04:45:40.277746 +AZURE,ukwest,Standard_E32ads_v6,on_demand,NA,2.806,USD,Azure Retail Prices API,2025-12-18T04:45:40.278149 +AZURE,ukwest,Standard_E32ads_v6,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:45:41.282173 +AZURE,ukwest,Standard_E32ads_v6,reserved_3y,NA,1.066438,USD,Azure Retail Prices API,2025-12-18T04:45:41.282176 +AZURE,ukwest,Standard_E32ads_v6,spot,NA,0.518549,USD,Azure Retail Prices API,2025-12-18T04:45:40.277923 +AZURE,ukwest,Standard_E32as_v4,on_demand,NA,2.439,USD,Azure Retail Prices API,2025-12-18T04:45:40.278165 +AZURE,ukwest,Standard_E32as_v4,reserved_1y,NA,1.463584,USD,Azure Retail Prices API,2025-12-18T04:45:41.282190 +AZURE,ukwest,Standard_E32as_v4,reserved_3y,NA,0.975761,USD,Azure Retail Prices API,2025-12-18T04:45:41.282193 +AZURE,ukwest,Standard_E32as_v4,spot,NA,0.450727,USD,Azure Retail Prices API,2025-12-18T04:45:40.276915 +AZURE,ukwest,Standard_E32as_v5,on_demand,NA,3.66,USD,Azure Retail Prices API,2025-12-18T04:45:40.277789 +AZURE,ukwest,Standard_E32as_v5,reserved_1y,NA,1.290753,USD,Azure Retail Prices API,2025-12-18T04:45:41.282397 +AZURE,ukwest,Standard_E32as_v5,reserved_3y,NA,0.831317,USD,Azure Retail Prices API,2025-12-18T04:45:41.282400 +AZURE,ukwest,Standard_E32as_v5,spot,NA,0.404342,USD,Azure Retail Prices API,2025-12-18T04:45:40.277197 +AZURE,ukwest,Standard_E32d_v4,on_demand,NA,2.788,USD,Azure Retail Prices API,2025-12-18T04:45:40.277792 +AZURE,ukwest,Standard_E32d_v4,reserved_1y,NA,1.644863,USD,Azure Retail Prices API,2025-12-18T04:45:41.281908 +AZURE,ukwest,Standard_E32d_v4,reserved_3y,NA,1.059361,USD,Azure Retail Prices API,2025-12-18T04:45:41.281911 +AZURE,ukwest,Standard_E32d_v4,spot,NA,0.515222,USD,Azure Retail Prices API,2025-12-18T04:45:40.277154 +AZURE,ukwest,Standard_E32ds_v4,on_demand,NA,2.788,USD,Azure Retail Prices API,2025-12-18T04:45:40.278345 +AZURE,ukwest,Standard_E32ds_v4,reserved_1y,NA,1.644863,USD,Azure Retail Prices API,2025-12-18T04:45:41.282408 +AZURE,ukwest,Standard_E32ds_v4,reserved_3y,NA,1.059361,USD,Azure Retail Prices API,2025-12-18T04:45:41.282410 +AZURE,ukwest,Standard_E32ds_v4,spot,NA,0.515222,USD,Azure Retail Prices API,2025-12-18T04:45:40.277982 +AZURE,ukwest,Standard_E32ds_v5,on_demand,NA,2.788,USD,Azure Retail Prices API,2025-12-18T04:45:40.277129 +AZURE,ukwest,Standard_E32ds_v5,reserved_1y,NA,1.644863,USD,Azure Retail Prices API,2025-12-18T04:45:41.281238 +AZURE,ukwest,Standard_E32ds_v5,reserved_3y,NA,1.059361,USD,Azure Retail Prices API,2025-12-18T04:45:41.281241 +AZURE,ukwest,Standard_E32ds_v5,spot,NA,0.515222,USD,Azure Retail Prices API,2025-12-18T04:45:40.278254 +AZURE,ukwest,Standard_E32ds_v6,on_demand,NA,3.166,USD,Azure Retail Prices API,2025-12-18T04:45:40.277967 +AZURE,ukwest,Standard_E32ds_v6,reserved_1y,NA,1.962785,USD,Azure Retail Prices API,2025-12-18T04:45:41.282017 +AZURE,ukwest,Standard_E32ds_v6,reserved_3y,NA,1.234665,USD,Azure Retail Prices API,2025-12-18T04:45:41.282019 +AZURE,ukwest,Standard_E32ds_v6,spot,NA,0.585077,USD,Azure Retail Prices API,2025-12-18T04:45:40.277582 +AZURE,ukwest,Standard_E32pds_v6,on_demand,NA,2.262,USD,Azure Retail Prices API,2025-12-18T04:45:40.276891 +AZURE,ukwest,Standard_E32pds_v6,reserved_1y,NA,1.334817,USD,Azure Retail Prices API,2025-12-18T04:45:41.281077 +AZURE,ukwest,Standard_E32pds_v6,reserved_3y,NA,0.859703,USD,Azure Retail Prices API,2025-12-18T04:45:41.281080 +AZURE,ukwest,Standard_E32pds_v6,spot,NA,0.418018,USD,Azure Retail Prices API,2025-12-18T04:45:40.277830 +AZURE,ukwest,Standard_E32ps_v6,on_demand,NA,1.786,USD,Azure Retail Prices API,2025-12-18T04:45:40.278240 +AZURE,ukwest,Standard_E32ps_v6,reserved_1y,NA,1.053539,USD,Azure Retail Prices API,2025-12-18T04:45:41.282290 +AZURE,ukwest,Standard_E32ps_v6,reserved_3y,NA,0.678539,USD,Azure Retail Prices API,2025-12-18T04:45:41.282293 +AZURE,ukwest,Standard_E32ps_v6,spot,NA,0.330053,USD,Azure Retail Prices API,2025-12-18T04:45:40.278159 +AZURE,ukwest,Standard_E32s_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:40.277648 +AZURE,ukwest,Standard_E32s_v3,reserved_1y,NA,1.467694,USD,Azure Retail Prices API,2025-12-18T04:45:41.281745 +AZURE,ukwest,Standard_E32s_v3,reserved_3y,NA,0.938508,USD,Azure Retail Prices API,2025-12-18T04:45:41.281748 +AZURE,ukwest,Standard_E32s_v3,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:45:40.277316 +AZURE,ukwest,Standard_E32s_v4,on_demand,NA,2.439,USD,Azure Retail Prices API,2025-12-18T04:45:40.278237 +AZURE,ukwest,Standard_E32s_v4,reserved_1y,NA,1.439269,USD,Azure Retail Prices API,2025-12-18T04:45:41.282285 +AZURE,ukwest,Standard_E32s_v4,reserved_3y,NA,0.926941,USD,Azure Retail Prices API,2025-12-18T04:45:41.282287 +AZURE,ukwest,Standard_E32s_v4,spot,NA,0.450727,USD,Azure Retail Prices API,2025-12-18T04:45:40.278065 +AZURE,ukwest,Standard_E32s_v5,on_demand,NA,2.439,USD,Azure Retail Prices API,2025-12-18T04:45:40.277256 +AZURE,ukwest,Standard_E32s_v5,reserved_1y,NA,1.439269,USD,Azure Retail Prices API,2025-12-18T04:45:41.281363 +AZURE,ukwest,Standard_E32s_v5,reserved_3y,NA,0.902549,USD,Azure Retail Prices API,2025-12-18T04:45:41.281366 +AZURE,ukwest,Standard_E32s_v5,spot,NA,0.450727,USD,Azure Retail Prices API,2025-12-18T04:45:40.278374 +AZURE,ukwest,Standard_E48a_v4,on_demand,NA,3.659,USD,Azure Retail Prices API,2025-12-18T04:45:40.277262 +AZURE,ukwest,Standard_E48a_v4,reserved_1y,NA,2.195434,USD,Azure Retail Prices API,2025-12-18T04:45:41.281373 +AZURE,ukwest,Standard_E48a_v4,reserved_3y,NA,1.463623,USD,Azure Retail Prices API,2025-12-18T04:45:41.281376 +AZURE,ukwest,Standard_E48a_v4,spot,NA,0.676183,USD,Azure Retail Prices API,2025-12-18T04:45:40.277866 +AZURE,ukwest,Standard_E48ads_v5,on_demand,NA,3.804,USD,Azure Retail Prices API,2025-12-18T04:45:40.276806 +AZURE,ukwest,Standard_E48ads_v5,reserved_1y,NA,2.244521,USD,Azure Retail Prices API,2025-12-18T04:45:41.280986 +AZURE,ukwest,Standard_E48ads_v5,reserved_3y,NA,1.445624,USD,Azure Retail Prices API,2025-12-18T04:45:41.280988 +AZURE,ukwest,Standard_E48ads_v5,spot,NA,0.702979,USD,Azure Retail Prices API,2025-12-18T04:45:40.277562 +AZURE,ukwest,Standard_E48ads_v6,on_demand,NA,4.21,USD,Azure Retail Prices API,2025-12-18T04:45:40.277221 +AZURE,ukwest,Standard_E48ads_v6,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:45:41.281313 +AZURE,ukwest,Standard_E48ads_v6,reserved_3y,NA,1.599658,USD,Azure Retail Prices API,2025-12-18T04:45:41.281316 +AZURE,ukwest,Standard_E48ads_v6,spot,NA,0.778008,USD,Azure Retail Prices API,2025-12-18T04:45:40.277575 +AZURE,ukwest,Standard_E48as_v4,on_demand,NA,3.659,USD,Azure Retail Prices API,2025-12-18T04:45:40.277194 +AZURE,ukwest,Standard_E48as_v4,reserved_1y,NA,2.195434,USD,Azure Retail Prices API,2025-12-18T04:45:41.281296 +AZURE,ukwest,Standard_E48as_v4,reserved_3y,NA,1.463623,USD,Azure Retail Prices API,2025-12-18T04:45:41.281299 +AZURE,ukwest,Standard_E48as_v4,spot,NA,0.676183,USD,Azure Retail Prices API,2025-12-18T04:45:40.277732 +AZURE,ukwest,Standard_E48as_v5,on_demand,NA,5.49,USD,Azure Retail Prices API,2025-12-18T04:45:40.277405 +AZURE,ukwest,Standard_E48as_v5,reserved_1y,NA,1.936073,USD,Azure Retail Prices API,2025-12-18T04:45:41.282213 +AZURE,ukwest,Standard_E48as_v5,reserved_3y,NA,1.246994,USD,Azure Retail Prices API,2025-12-18T04:45:41.282216 +AZURE,ukwest,Standard_E48as_v5,spot,NA,0.606514,USD,Azure Retail Prices API,2025-12-18T04:45:40.278052 +AZURE,ukwest,Standard_E48d_v4,on_demand,NA,4.182,USD,Azure Retail Prices API,2025-12-18T04:45:40.277229 +AZURE,ukwest,Standard_E48d_v4,reserved_1y,NA,2.467237,USD,Azure Retail Prices API,2025-12-18T04:45:41.281324 +AZURE,ukwest,Standard_E48d_v4,reserved_3y,NA,1.589079,USD,Azure Retail Prices API,2025-12-18T04:45:41.281327 +AZURE,ukwest,Standard_E48d_v4,spot,NA,0.772834,USD,Azure Retail Prices API,2025-12-18T04:45:40.277889 +AZURE,ukwest,Standard_E48ds_v4,on_demand,NA,4.182,USD,Azure Retail Prices API,2025-12-18T04:45:40.276871 +AZURE,ukwest,Standard_E48ds_v4,reserved_1y,NA,2.467237,USD,Azure Retail Prices API,2025-12-18T04:45:41.281059 +AZURE,ukwest,Standard_E48ds_v4,reserved_3y,NA,1.589079,USD,Azure Retail Prices API,2025-12-18T04:45:41.281062 +AZURE,ukwest,Standard_E48ds_v4,spot,NA,0.772834,USD,Azure Retail Prices API,2025-12-18T04:45:40.277427 +AZURE,ukwest,Standard_E48ds_v5,on_demand,NA,4.182,USD,Azure Retail Prices API,2025-12-18T04:45:40.277442 +AZURE,ukwest,Standard_E48ds_v5,reserved_1y,NA,2.467237,USD,Azure Retail Prices API,2025-12-18T04:45:41.281528 +AZURE,ukwest,Standard_E48ds_v5,reserved_3y,NA,1.589079,USD,Azure Retail Prices API,2025-12-18T04:45:41.281531 +AZURE,ukwest,Standard_E48ds_v5,spot,NA,0.772834,USD,Azure Retail Prices API,2025-12-18T04:45:40.278337 +AZURE,ukwest,Standard_E48ds_v6,on_demand,NA,4.749,USD,Azure Retail Prices API,2025-12-18T04:45:40.278089 +AZURE,ukwest,Standard_E48ds_v6,reserved_1y,NA,2.944178,USD,Azure Retail Prices API,2025-12-18T04:45:41.282118 +AZURE,ukwest,Standard_E48ds_v6,reserved_3y,NA,1.851979,USD,Azure Retail Prices API,2025-12-18T04:45:41.282121 +AZURE,ukwest,Standard_E48ds_v6,spot,NA,0.877615,USD,Azure Retail Prices API,2025-12-18T04:45:40.278092 +AZURE,ukwest,Standard_E48pds_v6,on_demand,NA,3.394,USD,Azure Retail Prices API,2025-12-18T04:45:40.278001 +AZURE,ukwest,Standard_E48pds_v6,reserved_1y,NA,2.002169,USD,Azure Retail Prices API,2025-12-18T04:45:41.282038 +AZURE,ukwest,Standard_E48pds_v6,reserved_3y,NA,1.289574,USD,Azure Retail Prices API,2025-12-18T04:45:41.282041 +AZURE,ukwest,Standard_E48pds_v6,spot,NA,0.627211,USD,Azure Retail Prices API,2025-12-18T04:45:40.278339 +AZURE,ukwest,Standard_E48ps_v6,on_demand,NA,2.678,USD,Azure Retail Prices API,2025-12-18T04:45:40.277115 +AZURE,ukwest,Standard_E48ps_v6,reserved_1y,NA,1.580251,USD,Azure Retail Prices API,2025-12-18T04:45:41.281232 +AZURE,ukwest,Standard_E48ps_v6,reserved_3y,NA,1.017808,USD,Azure Retail Prices API,2025-12-18T04:45:41.281235 +AZURE,ukwest,Standard_E48ps_v6,spot,NA,0.494894,USD,Azure Retail Prices API,2025-12-18T04:45:40.278004 +AZURE,ukwest,Standard_E48s_v4,on_demand,NA,3.659,USD,Azure Retail Prices API,2025-12-18T04:45:40.277569 +AZURE,ukwest,Standard_E48s_v4,reserved_1y,NA,2.15879,USD,Azure Retail Prices API,2025-12-18T04:45:41.281657 +AZURE,ukwest,Standard_E48s_v4,reserved_3y,NA,1.390449,USD,Azure Retail Prices API,2025-12-18T04:45:41.281661 +AZURE,ukwest,Standard_E48s_v4,spot,NA,0.676183,USD,Azure Retail Prices API,2025-12-18T04:45:40.278205 +AZURE,ukwest,Standard_E48s_v5,on_demand,NA,3.659,USD,Azure Retail Prices API,2025-12-18T04:45:40.277371 +AZURE,ukwest,Standard_E48s_v5,reserved_1y,NA,2.15879,USD,Azure Retail Prices API,2025-12-18T04:45:41.281466 +AZURE,ukwest,Standard_E48s_v5,reserved_3y,NA,1.353843,USD,Azure Retail Prices API,2025-12-18T04:45:41.281468 +AZURE,ukwest,Standard_E48s_v5,spot,NA,0.676183,USD,Azure Retail Prices API,2025-12-18T04:45:40.277330 +AZURE,ukwest,Standard_E4_v3,on_demand,NA,0.312,USD,Azure Retail Prices API,2025-12-18T04:45:40.277819 +AZURE,ukwest,Standard_E4_v3,reserved_1y,NA,0.183447,USD,Azure Retail Prices API,2025-12-18T04:45:41.281930 +AZURE,ukwest,Standard_E4_v3,reserved_3y,NA,0.117314,USD,Azure Retail Prices API,2025-12-18T04:45:41.281932 +AZURE,ukwest,Standard_E4_v3,spot,NA,0.057658,USD,Azure Retail Prices API,2025-12-18T04:45:40.277529 +AZURE,ukwest,Standard_E4a_v4,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:45:40.278130 +AZURE,ukwest,Standard_E4a_v4,reserved_1y,NA,0.182991,USD,Azure Retail Prices API,2025-12-18T04:45:41.282156 +AZURE,ukwest,Standard_E4a_v4,reserved_3y,NA,0.121956,USD,Azure Retail Prices API,2025-12-18T04:45:41.282159 +AZURE,ukwest,Standard_E4a_v4,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:45:40.277953 +AZURE,ukwest,Standard_E4ads_v5,on_demand,NA,0.317,USD,Azure Retail Prices API,2025-12-18T04:45:40.276824 +AZURE,ukwest,Standard_E4ads_v5,reserved_1y,NA,0.186986,USD,Azure Retail Prices API,2025-12-18T04:45:41.281003 +AZURE,ukwest,Standard_E4ads_v5,reserved_3y,NA,0.120472,USD,Azure Retail Prices API,2025-12-18T04:45:41.281006 +AZURE,ukwest,Standard_E4ads_v5,spot,NA,0.058582,USD,Azure Retail Prices API,2025-12-18T04:45:40.277772 +AZURE,ukwest,Standard_E4ads_v6,on_demand,NA,0.351,USD,Azure Retail Prices API,2025-12-18T04:45:40.278195 +AZURE,ukwest,Standard_E4ads_v6,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:45:41.282230 +AZURE,ukwest,Standard_E4ads_v6,reserved_3y,NA,0.133295,USD,Azure Retail Prices API,2025-12-18T04:45:41.282232 +AZURE,ukwest,Standard_E4ads_v6,spot,NA,0.064865,USD,Azure Retail Prices API,2025-12-18T04:45:40.277898 +AZURE,ukwest,Standard_E4as_v4,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:45:40.277758 +AZURE,ukwest,Standard_E4as_v4,reserved_1y,NA,0.182991,USD,Azure Retail Prices API,2025-12-18T04:45:41.281875 +AZURE,ukwest,Standard_E4as_v4,reserved_3y,NA,0.121956,USD,Azure Retail Prices API,2025-12-18T04:45:41.281877 +AZURE,ukwest,Standard_E4as_v4,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:45:40.277283 +AZURE,ukwest,Standard_E4as_v5,on_demand,NA,0.457,USD,Azure Retail Prices API,2025-12-18T04:45:40.277676 +AZURE,ukwest,Standard_E4as_v5,reserved_1y,NA,0.161301,USD,Azure Retail Prices API,2025-12-18T04:45:41.282301 +AZURE,ukwest,Standard_E4as_v5,reserved_3y,NA,0.103919,USD,Azure Retail Prices API,2025-12-18T04:45:41.282304 +AZURE,ukwest,Standard_E4as_v5,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:40.278047 +AZURE,ukwest,Standard_E4d_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:45:40.277612 +AZURE,ukwest,Standard_E4d_v4,reserved_1y,NA,0.205594,USD,Azure Retail Prices API,2025-12-18T04:45:41.281691 +AZURE,ukwest,Standard_E4d_v4,reserved_3y,NA,0.13242,USD,Azure Retail Prices API,2025-12-18T04:45:41.281694 +AZURE,ukwest,Standard_E4d_v4,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:45:40.276933 +AZURE,ukwest,Standard_E4ds_v4,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:45:40.277265 +AZURE,ukwest,Standard_E4ds_v4,reserved_1y,NA,0.205594,USD,Azure Retail Prices API,2025-12-18T04:45:41.281379 +AZURE,ukwest,Standard_E4ds_v4,reserved_3y,NA,0.13242,USD,Azure Retail Prices API,2025-12-18T04:45:41.281382 +AZURE,ukwest,Standard_E4ds_v4,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:45:40.278062 +AZURE,ukwest,Standard_E4ds_v5,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:45:40.278316 +AZURE,ukwest,Standard_E4ds_v5,reserved_1y,NA,0.205594,USD,Azure Retail Prices API,2025-12-18T04:45:41.282374 +AZURE,ukwest,Standard_E4ds_v5,reserved_3y,NA,0.13242,USD,Azure Retail Prices API,2025-12-18T04:45:41.282377 +AZURE,ukwest,Standard_E4ds_v5,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:45:40.277215 +AZURE,ukwest,Standard_E4ds_v6,on_demand,NA,0.396,USD,Azure Retail Prices API,2025-12-18T04:45:40.276860 +AZURE,ukwest,Standard_E4ds_v6,reserved_1y,NA,0.24532,USD,Azure Retail Prices API,2025-12-18T04:45:41.281045 +AZURE,ukwest,Standard_E4ds_v6,reserved_3y,NA,0.154338,USD,Azure Retail Prices API,2025-12-18T04:45:41.281050 +AZURE,ukwest,Standard_E4ds_v6,spot,NA,0.073181,USD,Azure Retail Prices API,2025-12-18T04:45:40.278171 +AZURE,ukwest,Standard_E4pds_v6,on_demand,NA,0.283,USD,Azure Retail Prices API,2025-12-18T04:45:40.277298 +AZURE,ukwest,Standard_E4pds_v6,reserved_1y,NA,0.166895,USD,Azure Retail Prices API,2025-12-18T04:45:41.281412 +AZURE,ukwest,Standard_E4pds_v6,reserved_3y,NA,0.107458,USD,Azure Retail Prices API,2025-12-18T04:45:41.281415 +AZURE,ukwest,Standard_E4pds_v6,spot,NA,0.052298,USD,Azure Retail Prices API,2025-12-18T04:45:40.277766 +AZURE,ukwest,Standard_E4ps_v6,on_demand,NA,0.223,USD,Azure Retail Prices API,2025-12-18T04:45:40.277171 +AZURE,ukwest,Standard_E4ps_v6,reserved_1y,NA,0.131735,USD,Azure Retail Prices API,2025-12-18T04:45:41.281273 +AZURE,ukwest,Standard_E4ps_v6,reserved_3y,NA,0.084817,USD,Azure Retail Prices API,2025-12-18T04:45:41.281276 +AZURE,ukwest,Standard_E4ps_v6,spot,NA,0.04121,USD,Azure Retail Prices API,2025-12-18T04:45:40.277600 +AZURE,ukwest,Standard_E4s_v4,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:45:40.276897 +AZURE,ukwest,Standard_E4s_v4,reserved_1y,NA,0.179909,USD,Azure Retail Prices API,2025-12-18T04:45:41.281083 +AZURE,ukwest,Standard_E4s_v4,reserved_3y,NA,0.115868,USD,Azure Retail Prices API,2025-12-18T04:45:41.281085 +AZURE,ukwest,Standard_E4s_v4,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:45:40.277436 +AZURE,ukwest,Standard_E4s_v5,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:45:40.277546 +AZURE,ukwest,Standard_E4s_v5,reserved_1y,NA,0.179909,USD,Azure Retail Prices API,2025-12-18T04:45:41.281624 +AZURE,ukwest,Standard_E4s_v5,reserved_3y,NA,0.112823,USD,Azure Retail Prices API,2025-12-18T04:45:41.281627 +AZURE,ukwest,Standard_E4s_v5,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:45:40.278251 +AZURE,ukwest,Standard_E64_v3,on_demand,NA,4.264,USD,Azure Retail Prices API,2025-12-18T04:45:40.276799 +AZURE,ukwest,Standard_E64_v3,reserved_1y,NA,2.766438,USD,Azure Retail Prices API,2025-12-18T04:45:41.280980 +AZURE,ukwest,Standard_E64_v3,reserved_3y,NA,1.769026,USD,Azure Retail Prices API,2025-12-18T04:45:41.280983 +AZURE,ukwest,Standard_E64_v3,spot,NA,0.787987,USD,Azure Retail Prices API,2025-12-18T04:45:40.277415 +AZURE,ukwest,Standard_E64a_v4,on_demand,NA,4.879,USD,Azure Retail Prices API,2025-12-18T04:45:40.277512 +AZURE,ukwest,Standard_E64a_v4,reserved_1y,NA,2.927283,USD,Azure Retail Prices API,2025-12-18T04:45:41.281574 +AZURE,ukwest,Standard_E64a_v4,reserved_3y,NA,1.951484,USD,Azure Retail Prices API,2025-12-18T04:45:41.281577 +AZURE,ukwest,Standard_E64a_v4,spot,NA,0.901639,USD,Azure Retail Prices API,2025-12-18T04:45:40.276885 +AZURE,ukwest,Standard_E64ads_v5,on_demand,NA,5.072,USD,Azure Retail Prices API,2025-12-18T04:45:40.277795 +AZURE,ukwest,Standard_E64ads_v5,reserved_1y,NA,2.992694,USD,Azure Retail Prices API,2025-12-18T04:45:41.281913 +AZURE,ukwest,Standard_E64ads_v5,reserved_3y,NA,1.927473,USD,Azure Retail Prices API,2025-12-18T04:45:41.281916 +AZURE,ukwest,Standard_E64ads_v5,spot,NA,0.937306,USD,Azure Retail Prices API,2025-12-18T04:45:40.276888 +AZURE,ukwest,Standard_E64ads_v6,on_demand,NA,5.613,USD,Azure Retail Prices API,2025-12-18T04:45:40.277927 +AZURE,ukwest,Standard_E64ads_v6,reserved_1y,NA,3.31153,USD,Azure Retail Prices API,2025-12-18T04:45:41.281990 +AZURE,ukwest,Standard_E64ads_v6,reserved_3y,NA,2.132877,USD,Azure Retail Prices API,2025-12-18T04:45:41.281993 +AZURE,ukwest,Standard_E64ads_v6,spot,NA,1.037282,USD,Azure Retail Prices API,2025-12-18T04:45:40.277958 +AZURE,ukwest,Standard_E64as_v4,on_demand,NA,4.879,USD,Azure Retail Prices API,2025-12-18T04:45:40.277462 +AZURE,ukwest,Standard_E64as_v4,reserved_1y,NA,2.927283,USD,Azure Retail Prices API,2025-12-18T04:45:41.281545 +AZURE,ukwest,Standard_E64as_v4,reserved_3y,NA,1.951484,USD,Azure Retail Prices API,2025-12-18T04:45:41.281548 +AZURE,ukwest,Standard_E64as_v4,spot,NA,0.901639,USD,Azure Retail Prices API,2025-12-18T04:45:40.277136 +AZURE,ukwest,Standard_E64as_v5,on_demand,NA,7.319,USD,Azure Retail Prices API,2025-12-18T04:45:40.278225 +AZURE,ukwest,Standard_E64as_v5,reserved_1y,NA,2.581507,USD,Azure Retail Prices API,2025-12-18T04:45:41.282379 +AZURE,ukwest,Standard_E64as_v5,reserved_3y,NA,1.662633,USD,Azure Retail Prices API,2025-12-18T04:45:41.282382 +AZURE,ukwest,Standard_E64as_v5,spot,NA,0.8085,USD,Azure Retail Prices API,2025-12-18T04:45:40.278124 +AZURE,ukwest,Standard_E64d_v4,on_demand,NA,5.576,USD,Azure Retail Prices API,2025-12-18T04:45:40.277833 +AZURE,ukwest,Standard_E64d_v4,reserved_1y,NA,3.289612,USD,Azure Retail Prices API,2025-12-18T04:45:41.281940 +AZURE,ukwest,Standard_E64d_v4,reserved_3y,NA,2.11876,USD,Azure Retail Prices API,2025-12-18T04:45:41.281943 +AZURE,ukwest,Standard_E64d_v4,spot,NA,1.030445,USD,Azure Retail Prices API,2025-12-18T04:45:40.277336 +AZURE,ukwest,Standard_E64ds_v4,on_demand,NA,5.576,USD,Azure Retail Prices API,2025-12-18T04:45:40.278310 +AZURE,ukwest,Standard_E64ds_v4,reserved_1y,NA,3.289612,USD,Azure Retail Prices API,2025-12-18T04:45:41.282369 +AZURE,ukwest,Standard_E64ds_v4,reserved_3y,NA,2.11876,USD,Azure Retail Prices API,2025-12-18T04:45:41.282371 +AZURE,ukwest,Standard_E64ds_v4,spot,NA,1.030445,USD,Azure Retail Prices API,2025-12-18T04:45:40.277603 +AZURE,ukwest,Standard_E64ds_v5,on_demand,NA,5.576,USD,Azure Retail Prices API,2025-12-18T04:45:40.277354 +AZURE,ukwest,Standard_E64ds_v5,reserved_1y,NA,3.289612,USD,Azure Retail Prices API,2025-12-18T04:45:41.281435 +AZURE,ukwest,Standard_E64ds_v5,reserved_3y,NA,2.11876,USD,Azure Retail Prices API,2025-12-18T04:45:41.281437 +AZURE,ukwest,Standard_E64ds_v5,spot,NA,1.030445,USD,Azure Retail Prices API,2025-12-18T04:45:40.277400 +AZURE,ukwest,Standard_E64ds_v6,on_demand,NA,6.332,USD,Azure Retail Prices API,2025-12-18T04:45:40.277718 +AZURE,ukwest,Standard_E64ds_v6,reserved_1y,NA,3.925571,USD,Azure Retail Prices API,2025-12-18T04:45:41.281835 +AZURE,ukwest,Standard_E64ds_v6,reserved_3y,NA,2.469292,USD,Azure Retail Prices API,2025-12-18T04:45:41.281838 +AZURE,ukwest,Standard_E64ds_v6,spot,NA,1.170154,USD,Azure Retail Prices API,2025-12-18T04:45:40.277842 +AZURE,ukwest,Standard_E64pds_v6,on_demand,NA,4.525,USD,Azure Retail Prices API,2025-12-18T04:45:40.277036 +AZURE,ukwest,Standard_E64pds_v6,reserved_1y,NA,2.669635,USD,Azure Retail Prices API,2025-12-18T04:45:41.281172 +AZURE,ukwest,Standard_E64pds_v6,reserved_3y,NA,1.719406,USD,Azure Retail Prices API,2025-12-18T04:45:41.281176 +AZURE,ukwest,Standard_E64pds_v6,spot,NA,0.83622,USD,Azure Retail Prices API,2025-12-18T04:45:40.277232 +AZURE,ukwest,Standard_E64ps_v6,on_demand,NA,3.571,USD,Azure Retail Prices API,2025-12-18T04:45:40.277886 +AZURE,ukwest,Standard_E64ps_v6,reserved_1y,NA,2.106963,USD,Azure Retail Prices API,2025-12-18T04:45:41.281979 +AZURE,ukwest,Standard_E64ps_v6,reserved_3y,NA,1.35704,USD,Azure Retail Prices API,2025-12-18T04:45:41.281982 +AZURE,ukwest,Standard_E64ps_v6,spot,NA,0.659921,USD,Azure Retail Prices API,2025-12-18T04:45:40.277365 +AZURE,ukwest,Standard_E64s_v3,on_demand,NA,4.264,USD,Azure Retail Prices API,2025-12-18T04:45:40.277368 +AZURE,ukwest,Standard_E64s_v3,reserved_1y,NA,2.766438,USD,Azure Retail Prices API,2025-12-18T04:45:41.281459 +AZURE,ukwest,Standard_E64s_v3,reserved_3y,NA,1.769026,USD,Azure Retail Prices API,2025-12-18T04:45:41.281463 +AZURE,ukwest,Standard_E64s_v3,spot,NA,0.787987,USD,Azure Retail Prices API,2025-12-18T04:45:40.277227 +AZURE,ukwest,Standard_E64s_v4,on_demand,NA,4.879,USD,Azure Retail Prices API,2025-12-18T04:45:40.277162 +AZURE,ukwest,Standard_E64s_v4,reserved_1y,NA,2.878425,USD,Azure Retail Prices API,2025-12-18T04:45:41.281262 +AZURE,ukwest,Standard_E64s_v4,reserved_3y,NA,1.853919,USD,Azure Retail Prices API,2025-12-18T04:45:41.281265 +AZURE,ukwest,Standard_E64s_v4,spot,NA,0.901639,USD,Azure Retail Prices API,2025-12-18T04:45:40.277591 +AZURE,ukwest,Standard_E64s_v5,on_demand,NA,4.879,USD,Azure Retail Prices API,2025-12-18T04:45:40.277001 +AZURE,ukwest,Standard_E64s_v5,reserved_1y,NA,2.878425,USD,Azure Retail Prices API,2025-12-18T04:45:41.281138 +AZURE,ukwest,Standard_E64s_v5,reserved_3y,NA,1.805137,USD,Azure Retail Prices API,2025-12-18T04:45:41.281141 +AZURE,ukwest,Standard_E64s_v5,spot,NA,0.901639,USD,Azure Retail Prices API,2025-12-18T04:45:40.277863 +AZURE,ukwest,Standard_E80ids_v4,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:45:40.277259 +AZURE,ukwest,Standard_E80ids_v4,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:45:41.281368 +AZURE,ukwest,Standard_E80ids_v4,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:45:41.281371 +AZURE,ukwest,Standard_E80ids_v4,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:45:40.277919 +AZURE,ukwest,Standard_E80is_v4,on_demand,NA,6.098,USD,Azure Retail Prices API,2025-12-18T04:45:40.277007 +AZURE,ukwest,Standard_E80is_v4,reserved_1y,NA,3.598059,USD,Azure Retail Prices API,2025-12-18T04:45:41.281150 +AZURE,ukwest,Standard_E80is_v4,reserved_3y,NA,2.31739,USD,Azure Retail Prices API,2025-12-18T04:45:41.281153 +AZURE,ukwest,Standard_E80is_v4,spot,NA,1.12691,USD,Azure Retail Prices API,2025-12-18T04:45:40.277697 +AZURE,ukwest,Standard_E8_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:45:40.278121 +AZURE,ukwest,Standard_E8_v3,reserved_1y,NA,0.366895,USD,Azure Retail Prices API,2025-12-18T04:45:41.282145 +AZURE,ukwest,Standard_E8_v3,reserved_3y,NA,0.234627,USD,Azure Retail Prices API,2025-12-18T04:45:41.282148 +AZURE,ukwest,Standard_E8_v3,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:45:40.278162 +AZURE,ukwest,Standard_E8a_v4,on_demand,NA,0.61,USD,Azure Retail Prices API,2025-12-18T04:45:40.277851 +AZURE,ukwest,Standard_E8a_v4,reserved_1y,NA,0.365868,USD,Azure Retail Prices API,2025-12-18T04:45:41.281951 +AZURE,ukwest,Standard_E8a_v4,reserved_3y,NA,0.24395,USD,Azure Retail Prices API,2025-12-18T04:45:41.281954 +AZURE,ukwest,Standard_E8a_v4,spot,NA,0.112728,USD,Azure Retail Prices API,2025-12-18T04:45:40.277139 +AZURE,ukwest,Standard_E8ads_v5,on_demand,NA,0.634,USD,Azure Retail Prices API,2025-12-18T04:45:40.278020 +AZURE,ukwest,Standard_E8ads_v5,reserved_1y,NA,0.374087,USD,Azure Retail Prices API,2025-12-18T04:45:41.282055 +AZURE,ukwest,Standard_E8ads_v5,reserved_3y,NA,0.240944,USD,Azure Retail Prices API,2025-12-18T04:45:41.282058 +AZURE,ukwest,Standard_E8ads_v5,spot,NA,0.117163,USD,Azure Retail Prices API,2025-12-18T04:45:40.277333 +AZURE,ukwest,Standard_E8ads_v6,on_demand,NA,0.702,USD,Azure Retail Prices API,2025-12-18T04:45:40.277058 +AZURE,ukwest,Standard_E8ads_v6,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:45:41.281199 +AZURE,ukwest,Standard_E8ads_v6,reserved_3y,NA,0.266591,USD,Azure Retail Prices API,2025-12-18T04:45:41.281202 +AZURE,ukwest,Standard_E8ads_v6,spot,NA,0.12973,USD,Azure Retail Prices API,2025-12-18T04:45:40.278360 +AZURE,ukwest,Standard_E8as_v4,on_demand,NA,0.61,USD,Azure Retail Prices API,2025-12-18T04:45:40.277168 +AZURE,ukwest,Standard_E8as_v4,reserved_1y,NA,0.365868,USD,Azure Retail Prices API,2025-12-18T04:45:41.281268 +AZURE,ukwest,Standard_E8as_v4,reserved_3y,NA,0.24395,USD,Azure Retail Prices API,2025-12-18T04:45:41.281271 +AZURE,ukwest,Standard_E8as_v4,spot,NA,0.112728,USD,Azure Retail Prices API,2025-12-18T04:45:40.277010 +AZURE,ukwest,Standard_E8as_v5,on_demand,NA,0.915,USD,Azure Retail Prices API,2025-12-18T04:45:40.276776 +AZURE,ukwest,Standard_E8as_v5,reserved_1y,NA,0.322717,USD,Azure Retail Prices API,2025-12-18T04:45:41.281071 +AZURE,ukwest,Standard_E8as_v5,reserved_3y,NA,0.207839,USD,Azure Retail Prices API,2025-12-18T04:45:41.281074 +AZURE,ukwest,Standard_E8as_v5,spot,NA,0.101086,USD,Azure Retail Prices API,2025-12-18T04:45:40.277030 +AZURE,ukwest,Standard_E8d_v4,on_demand,NA,0.697,USD,Azure Retail Prices API,2025-12-18T04:45:40.278141 +AZURE,ukwest,Standard_E8d_v4,reserved_1y,NA,0.411187,USD,Azure Retail Prices API,2025-12-18T04:45:41.282162 +AZURE,ukwest,Standard_E8d_v4,reserved_3y,NA,0.26484,USD,Azure Retail Prices API,2025-12-18T04:45:41.282165 +AZURE,ukwest,Standard_E8d_v4,spot,NA,0.128806,USD,Azure Retail Prices API,2025-12-18T04:45:40.277191 +AZURE,ukwest,Standard_E8ds_v4,on_demand,NA,0.697,USD,Azure Retail Prices API,2025-12-18T04:45:40.277712 +AZURE,ukwest,Standard_E8ds_v4,reserved_1y,NA,0.411187,USD,Azure Retail Prices API,2025-12-18T04:45:41.281829 +AZURE,ukwest,Standard_E8ds_v4,reserved_3y,NA,0.26484,USD,Azure Retail Prices API,2025-12-18T04:45:41.281832 +AZURE,ukwest,Standard_E8ds_v4,spot,NA,0.128806,USD,Azure Retail Prices API,2025-12-18T04:45:40.277033 +AZURE,ukwest,Standard_E8ds_v5,on_demand,NA,0.697,USD,Azure Retail Prices API,2025-12-18T04:45:40.278112 +AZURE,ukwest,Standard_E8ds_v5,reserved_1y,NA,0.411187,USD,Azure Retail Prices API,2025-12-18T04:45:41.282135 +AZURE,ukwest,Standard_E8ds_v5,reserved_3y,NA,0.26484,USD,Azure Retail Prices API,2025-12-18T04:45:41.282137 +AZURE,ukwest,Standard_E8ds_v5,spot,NA,0.128806,USD,Azure Retail Prices API,2025-12-18T04:45:40.277778 +AZURE,ukwest,Standard_E8ds_v6,on_demand,NA,0.791,USD,Azure Retail Prices API,2025-12-18T04:45:40.277180 +AZURE,ukwest,Standard_E8ds_v6,reserved_1y,NA,0.490639,USD,Azure Retail Prices API,2025-12-18T04:45:41.281285 +AZURE,ukwest,Standard_E8ds_v6,reserved_3y,NA,0.308676,USD,Azure Retail Prices API,2025-12-18T04:45:41.281288 +AZURE,ukwest,Standard_E8ds_v6,spot,NA,0.146177,USD,Azure Retail Prices API,2025-12-18T04:45:40.277027 +AZURE,ukwest,Standard_E8pds_v6,on_demand,NA,0.566,USD,Azure Retail Prices API,2025-12-18T04:45:40.278342 +AZURE,ukwest,Standard_E8pds_v6,reserved_1y,NA,0.333676,USD,Azure Retail Prices API,2025-12-18T04:45:41.282402 +AZURE,ukwest,Standard_E8pds_v6,reserved_3y,NA,0.214916,USD,Azure Retail Prices API,2025-12-18T04:45:41.282405 +AZURE,ukwest,Standard_E8pds_v6,spot,NA,0.104597,USD,Azure Retail Prices API,2025-12-18T04:45:40.277531 +AZURE,ukwest,Standard_E8ps_v6,on_demand,NA,0.446,USD,Azure Retail Prices API,2025-12-18T04:45:40.277709 +AZURE,ukwest,Standard_E8ps_v6,reserved_1y,NA,0.263356,USD,Azure Retail Prices API,2025-12-18T04:45:41.281824 +AZURE,ukwest,Standard_E8ps_v6,reserved_3y,NA,0.169635,USD,Azure Retail Prices API,2025-12-18T04:45:41.281827 +AZURE,ukwest,Standard_E8ps_v6,spot,NA,0.082421,USD,Azure Retail Prices API,2025-12-18T04:45:40.277741 +AZURE,ukwest,Standard_E8s_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:45:40.277908 +AZURE,ukwest,Standard_E8s_v3,reserved_1y,NA,0.366895,USD,Azure Retail Prices API,2025-12-18T04:45:41.281984 +AZURE,ukwest,Standard_E8s_v3,reserved_3y,NA,0.234627,USD,Azure Retail Prices API,2025-12-18T04:45:41.281987 +AZURE,ukwest,Standard_E8s_v3,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:45:40.276874 +AZURE,ukwest,Standard_E8s_v4,on_demand,NA,0.61,USD,Azure Retail Prices API,2025-12-18T04:45:40.278057 +AZURE,ukwest,Standard_E8s_v4,reserved_1y,NA,0.359817,USD,Azure Retail Prices API,2025-12-18T04:45:41.282071 +AZURE,ukwest,Standard_E8s_v4,reserved_3y,NA,0.231735,USD,Azure Retail Prices API,2025-12-18T04:45:41.282074 +AZURE,ukwest,Standard_E8s_v4,spot,NA,0.112728,USD,Azure Retail Prices API,2025-12-18T04:45:40.277325 +AZURE,ukwest,Standard_E8s_v5,on_demand,NA,0.61,USD,Azure Retail Prices API,2025-12-18T04:45:40.278280 +AZURE,ukwest,Standard_E8s_v5,reserved_1y,NA,0.359817,USD,Azure Retail Prices API,2025-12-18T04:45:41.282339 +AZURE,ukwest,Standard_E8s_v5,reserved_3y,NA,0.225647,USD,Azure Retail Prices API,2025-12-18T04:45:41.282342 +AZURE,ukwest,Standard_E8s_v5,spot,NA,0.112728,USD,Azure Retail Prices API,2025-12-18T04:45:40.277836 +AZURE,ukwest,Standard_E96a_v4,on_demand,NA,7.318,USD,Azure Retail Prices API,2025-12-18T04:45:40.277362 +AZURE,ukwest,Standard_E96a_v4,reserved_1y,NA,4.390868,USD,Azure Retail Prices API,2025-12-18T04:45:41.281451 +AZURE,ukwest,Standard_E96a_v4,reserved_3y,NA,2.927245,USD,Azure Retail Prices API,2025-12-18T04:45:41.281455 +AZURE,ukwest,Standard_E96a_v4,spot,NA,1.352366,USD,Azure Retail Prices API,2025-12-18T04:45:40.276877 +AZURE,ukwest,Standard_E96ads_v5,on_demand,NA,7.608,USD,Azure Retail Prices API,2025-12-18T04:45:40.277074 +AZURE,ukwest,Standard_E96ads_v5,reserved_1y,NA,4.489041,USD,Azure Retail Prices API,2025-12-18T04:45:41.281210 +AZURE,ukwest,Standard_E96ads_v5,reserved_3y,NA,2.89121,USD,Azure Retail Prices API,2025-12-18T04:45:41.281213 +AZURE,ukwest,Standard_E96ads_v5,spot,NA,1.405958,USD,Azure Retail Prices API,2025-12-18T04:45:40.277869 +AZURE,ukwest,Standard_E96ads_v6,on_demand,NA,8.419,USD,Azure Retail Prices API,2025-12-18T04:45:40.277588 +AZURE,ukwest,Standard_E96ads_v6,reserved_1y,NA,4.967352,USD,Azure Retail Prices API,2025-12-18T04:45:41.281677 +AZURE,ukwest,Standard_E96ads_v6,reserved_3y,NA,3.199277,USD,Azure Retail Prices API,2025-12-18T04:45:41.281681 +AZURE,ukwest,Standard_E96ads_v6,spot,NA,1.555831,USD,Azure Retail Prices API,2025-12-18T04:45:40.278351 +AZURE,ukwest,Standard_E96as_v4,on_demand,NA,7.318,USD,Azure Retail Prices API,2025-12-18T04:45:40.277724 +AZURE,ukwest,Standard_E96as_v4,reserved_1y,NA,4.390868,USD,Azure Retail Prices API,2025-12-18T04:45:41.281846 +AZURE,ukwest,Standard_E96as_v4,reserved_3y,NA,2.927245,USD,Azure Retail Prices API,2025-12-18T04:45:41.281849 +AZURE,ukwest,Standard_E96as_v4,spot,NA,1.352366,USD,Azure Retail Prices API,2025-12-18T04:45:40.277979 +AZURE,ukwest,Standard_E96as_v5,on_demand,NA,10.979,USD,Azure Retail Prices API,2025-12-18T04:45:40.277068 +AZURE,ukwest,Standard_E96as_v5,reserved_1y,NA,3.872146,USD,Azure Retail Prices API,2025-12-18T04:45:41.281256 +AZURE,ukwest,Standard_E96as_v5,reserved_3y,NA,2.49395,USD,Azure Retail Prices API,2025-12-18T04:45:41.281259 +AZURE,ukwest,Standard_E96as_v5,spot,NA,1.212842,USD,Azure Retail Prices API,2025-12-18T04:45:40.277839 +AZURE,ukwest,Standard_E96ds_v5,on_demand,NA,8.364,USD,Azure Retail Prices API,2025-12-18T04:45:40.277046 +AZURE,ukwest,Standard_E96ds_v5,reserved_1y,NA,4.934475,USD,Azure Retail Prices API,2025-12-18T04:45:41.281180 +AZURE,ukwest,Standard_E96ds_v5,reserved_3y,NA,3.17812,USD,Azure Retail Prices API,2025-12-18T04:45:41.281184 +AZURE,ukwest,Standard_E96ds_v5,spot,NA,1.545667,USD,Azure Retail Prices API,2025-12-18T04:45:40.278331 +AZURE,ukwest,Standard_E96ds_v6,on_demand,NA,9.497,USD,Azure Retail Prices API,2025-12-18T04:45:40.277004 +AZURE,ukwest,Standard_E96ds_v6,reserved_1y,NA,5.888356,USD,Azure Retail Prices API,2025-12-18T04:45:41.281144 +AZURE,ukwest,Standard_E96ds_v6,reserved_3y,NA,3.703957,USD,Azure Retail Prices API,2025-12-18T04:45:41.281147 +AZURE,ukwest,Standard_E96ds_v6,spot,NA,1.755046,USD,Azure Retail Prices API,2025-12-18T04:45:40.277394 +AZURE,ukwest,Standard_E96pds_v6,on_demand,NA,6.787,USD,Azure Retail Prices API,2025-12-18T04:45:40.277313 +AZURE,ukwest,Standard_E96pds_v6,reserved_1y,NA,4.004452,USD,Azure Retail Prices API,2025-12-18T04:45:41.281424 +AZURE,ukwest,Standard_E96pds_v6,reserved_3y,NA,2.579148,USD,Azure Retail Prices API,2025-12-18T04:45:41.281426 +AZURE,ukwest,Standard_E96pds_v6,spot,NA,1.254238,USD,Azure Retail Prices API,2025-12-18T04:45:40.276945 +AZURE,ukwest,Standard_E96ps_v6,on_demand,NA,5.357,USD,Azure Retail Prices API,2025-12-18T04:45:40.277703 +AZURE,ukwest,Standard_E96ps_v6,reserved_1y,NA,3.160502,USD,Azure Retail Prices API,2025-12-18T04:45:41.281818 +AZURE,ukwest,Standard_E96ps_v6,reserved_3y,NA,2.035578,USD,Azure Retail Prices API,2025-12-18T04:45:41.281821 +AZURE,ukwest,Standard_E96ps_v6,spot,NA,0.989974,USD,Azure Retail Prices API,2025-12-18T04:45:40.278042 +AZURE,ukwest,Standard_E96s_v5,on_demand,NA,7.318,USD,Azure Retail Prices API,2025-12-18T04:45:40.277310 +AZURE,ukwest,Standard_E96s_v5,reserved_1y,NA,4.317694,USD,Azure Retail Prices API,2025-12-18T04:45:41.281418 +AZURE,ukwest,Standard_E96s_v5,reserved_3y,NA,2.707686,USD,Azure Retail Prices API,2025-12-18T04:45:41.281421 +AZURE,ukwest,Standard_E96s_v5,spot,NA,1.352366,USD,Azure Retail Prices API,2025-12-18T04:45:40.277397 +AZURE,ukwest,Standard_EC16ads_v6,on_demand,NA,1.403,USD,Azure Retail Prices API,2025-12-18T04:45:40.277235 +AZURE,ukwest,Standard_EC16ads_v6,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:45:41.281330 +AZURE,ukwest,Standard_EC16ads_v6,reserved_3y,NA,0.533219,USD,Azure Retail Prices API,2025-12-18T04:45:41.281332 +AZURE,ukwest,Standard_EC16ads_v6,spot,NA,0.259274,USD,Azure Retail Prices API,2025-12-18T04:45:40.276953 +AZURE,ukwest,Standard_EC16as_v6,on_demand,NA,1.154,USD,Azure Retail Prices API,2025-12-18T04:45:40.277606 +AZURE,ukwest,Standard_EC16as_v6,reserved_1y,NA,0.680594,USD,Azure Retail Prices API,2025-12-18T04:45:41.281685 +AZURE,ukwest,Standard_EC16as_v6,reserved_3y,NA,0.438356,USD,Azure Retail Prices API,2025-12-18T04:45:41.281688 +AZURE,ukwest,Standard_EC16as_v6,spot,NA,0.213259,USD,Azure Retail Prices API,2025-12-18T04:45:40.277804 +AZURE,ukwest,Standard_EC2ads_v6,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:45:40.277145 +AZURE,ukwest,Standard_EC2ads_v6,reserved_1y,NA,0.103539,USD,Azure Retail Prices API,2025-12-18T04:45:41.281250 +AZURE,ukwest,Standard_EC2ads_v6,reserved_3y,NA,0.066667,USD,Azure Retail Prices API,2025-12-18T04:45:41.281253 +AZURE,ukwest,Standard_EC2ads_v6,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:45:40.277451 +AZURE,ukwest,Standard_EC2as_v6,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:45:40.277248 +AZURE,ukwest,Standard_EC2as_v6,reserved_1y,NA,0.085046,USD,Azure Retail Prices API,2025-12-18T04:45:41.281351 +AZURE,ukwest,Standard_EC2as_v6,reserved_3y,NA,0.054795,USD,Azure Retail Prices API,2025-12-18T04:45:41.281354 +AZURE,ukwest,Standard_EC2as_v6,spot,NA,0.026611,USD,Azure Retail Prices API,2025-12-18T04:45:40.276818 +AZURE,ukwest,Standard_EC32ads_v6,on_demand,NA,2.806,USD,Azure Retail Prices API,2025-12-18T04:45:40.277579 +AZURE,ukwest,Standard_EC32ads_v6,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:45:41.281666 +AZURE,ukwest,Standard_EC32ads_v6,reserved_3y,NA,1.066438,USD,Azure Retail Prices API,2025-12-18T04:45:41.281670 +AZURE,ukwest,Standard_EC32ads_v6,spot,NA,0.518549,USD,Azure Retail Prices API,2025-12-18T04:45:40.278118 +AZURE,ukwest,Standard_EC32as_v6,on_demand,NA,2.307,USD,Azure Retail Prices API,2025-12-18T04:45:40.277055 +AZURE,ukwest,Standard_EC32as_v6,reserved_1y,NA,1.361301,USD,Azure Retail Prices API,2025-12-18T04:45:41.281188 +AZURE,ukwest,Standard_EC32as_v6,reserved_3y,NA,0.87675,USD,Azure Retail Prices API,2025-12-18T04:45:41.281193 +AZURE,ukwest,Standard_EC32as_v6,spot,NA,0.426334,USD,Azure Retail Prices API,2025-12-18T04:45:40.277268 +AZURE,ukwest,Standard_EC48ads_v6,on_demand,NA,4.21,USD,Azure Retail Prices API,2025-12-18T04:45:40.278115 +AZURE,ukwest,Standard_EC48ads_v6,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:45:41.282140 +AZURE,ukwest,Standard_EC48ads_v6,reserved_3y,NA,1.599658,USD,Azure Retail Prices API,2025-12-18T04:45:41.282143 +AZURE,ukwest,Standard_EC48ads_v6,spot,NA,0.778008,USD,Azure Retail Prices API,2025-12-18T04:45:40.277479 +AZURE,ukwest,Standard_EC48as_v6,on_demand,NA,3.461,USD,Azure Retail Prices API,2025-12-18T04:45:40.277665 +AZURE,ukwest,Standard_EC48as_v6,reserved_1y,NA,2.041895,USD,Azure Retail Prices API,2025-12-18T04:45:41.281773 +AZURE,ukwest,Standard_EC48as_v6,reserved_3y,NA,1.315107,USD,Azure Retail Prices API,2025-12-18T04:45:41.281777 +AZURE,ukwest,Standard_EC48as_v6,spot,NA,0.639593,USD,Azure Retail Prices API,2025-12-18T04:45:40.278106 +AZURE,ukwest,Standard_EC4ads_v6,on_demand,NA,0.351,USD,Azure Retail Prices API,2025-12-18T04:45:40.278071 +AZURE,ukwest,Standard_EC4ads_v6,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:45:41.282082 +AZURE,ukwest,Standard_EC4ads_v6,reserved_3y,NA,0.133295,USD,Azure Retail Prices API,2025-12-18T04:45:41.282085 +AZURE,ukwest,Standard_EC4ads_v6,spot,NA,0.064865,USD,Azure Retail Prices API,2025-12-18T04:45:40.276866 +AZURE,ukwest,Standard_EC4as_v6,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:45:40.278127 +AZURE,ukwest,Standard_EC4as_v6,reserved_1y,NA,0.170205,USD,Azure Retail Prices API,2025-12-18T04:45:41.282151 +AZURE,ukwest,Standard_EC4as_v6,reserved_3y,NA,0.109589,USD,Azure Retail Prices API,2025-12-18T04:45:41.282154 +AZURE,ukwest,Standard_EC4as_v6,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:45:40.277014 +AZURE,ukwest,Standard_EC64ads_v6,on_demand,NA,5.613,USD,Azure Retail Prices API,2025-12-18T04:45:40.278298 +AZURE,ukwest,Standard_EC64ads_v6,reserved_1y,NA,3.31153,USD,Azure Retail Prices API,2025-12-18T04:45:41.282363 +AZURE,ukwest,Standard_EC64ads_v6,reserved_3y,NA,2.132877,USD,Azure Retail Prices API,2025-12-18T04:45:41.282366 +AZURE,ukwest,Standard_EC64ads_v6,spot,NA,1.037282,USD,Azure Retail Prices API,2025-12-18T04:45:40.278109 +AZURE,ukwest,Standard_EC64as_v6,on_demand,NA,4.614,USD,Azure Retail Prices API,2025-12-18T04:45:40.276793 +AZURE,ukwest,Standard_EC64as_v6,reserved_1y,NA,2.722489,USD,Azure Retail Prices API,2025-12-18T04:45:41.280957 +AZURE,ukwest,Standard_EC64as_v6,reserved_3y,NA,1.753463,USD,Azure Retail Prices API,2025-12-18T04:45:41.280970 +AZURE,ukwest,Standard_EC64as_v6,spot,NA,0.852667,USD,Azure Retail Prices API,2025-12-18T04:45:40.277304 +AZURE,ukwest,Standard_EC8ads_v6,on_demand,NA,0.702,USD,Azure Retail Prices API,2025-12-18T04:45:40.278290 +AZURE,ukwest,Standard_EC8ads_v6,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:45:41.282358 +AZURE,ukwest,Standard_EC8ads_v6,reserved_3y,NA,0.266591,USD,Azure Retail Prices API,2025-12-18T04:45:41.282361 +AZURE,ukwest,Standard_EC8ads_v6,spot,NA,0.12973,USD,Azure Retail Prices API,2025-12-18T04:45:40.277641 +AZURE,ukwest,Standard_EC8as_v6,on_demand,NA,0.577,USD,Azure Retail Prices API,2025-12-18T04:45:40.277210 +AZURE,ukwest,Standard_EC8as_v6,reserved_1y,NA,0.340297,USD,Azure Retail Prices API,2025-12-18T04:45:41.281307 +AZURE,ukwest,Standard_EC8as_v6,reserved_3y,NA,0.219178,USD,Azure Retail Prices API,2025-12-18T04:45:41.281310 +AZURE,ukwest,Standard_EC8as_v6,spot,NA,0.10663,USD,Azure Retail Prices API,2025-12-18T04:45:40.278366 +AZURE,ukwest,Standard_EC96ads_v6,on_demand,NA,8.419,USD,Azure Retail Prices API,2025-12-18T04:45:40.277077 +AZURE,ukwest,Standard_EC96ads_v6,reserved_1y,NA,4.967352,USD,Azure Retail Prices API,2025-12-18T04:45:41.281216 +AZURE,ukwest,Standard_EC96ads_v6,reserved_3y,NA,3.199277,USD,Azure Retail Prices API,2025-12-18T04:45:41.281219 +AZURE,ukwest,Standard_EC96ads_v6,spot,NA,1.555831,USD,Azure Retail Prices API,2025-12-18T04:45:40.277609 +AZURE,ukwest,Standard_EC96as_v6,on_demand,NA,6.922,USD,Azure Retail Prices API,2025-12-18T04:45:40.278287 +AZURE,ukwest,Standard_EC96as_v6,reserved_1y,NA,4.08379,USD,Azure Retail Prices API,2025-12-18T04:45:41.282350 +AZURE,ukwest,Standard_EC96as_v6,reserved_3y,NA,2.630213,USD,Azure Retail Prices API,2025-12-18T04:45:41.282352 +AZURE,ukwest,Standard_EC96as_v6,spot,NA,1.279186,USD,Azure Retail Prices API,2025-12-18T04:45:40.277307 +AZURE,ukwest,Standard_F16,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379436 +AZURE,ukwest,Standard_F16,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379447 +AZURE,ukwest,Standard_F16,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379451 +AZURE,ukwest,Standard_F16,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379442 +AZURE,ukwest,Standard_F16s,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381746 +AZURE,ukwest,Standard_F16s,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381755 +AZURE,ukwest,Standard_F16s,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381759 +AZURE,ukwest,Standard_F16s,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381750 +AZURE,ukwest,Standard_F16s_v2,on_demand,NA,0.8232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384470 +AZURE,ukwest,Standard_F16s_v2,reserved_1y,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384479 +AZURE,ukwest,Standard_F16s_v2,reserved_3y,NA,0.32928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384483 +AZURE,ukwest,Standard_F16s_v2,spot,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384475 +AZURE,ukwest,Standard_F32s_v2,on_demand,NA,1.6464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385248 +AZURE,ukwest,Standard_F32s_v2,reserved_1y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385264 +AZURE,ukwest,Standard_F32s_v2,reserved_3y,NA,0.65856,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385269 +AZURE,ukwest,Standard_F32s_v2,spot,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385254 +AZURE,ukwest,Standard_F4,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377856 +AZURE,ukwest,Standard_F4,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377869 +AZURE,ukwest,Standard_F4,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377875 +AZURE,ukwest,Standard_F4,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377862 +AZURE,ukwest,Standard_F48s_v2,on_demand,NA,2.4696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386045 +AZURE,ukwest,Standard_F48s_v2,reserved_1y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386053 +AZURE,ukwest,Standard_F48s_v2,reserved_3y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386057 +AZURE,ukwest,Standard_F48s_v2,spot,NA,0.74088,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386049 +AZURE,ukwest,Standard_F4s,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380204 +AZURE,ukwest,Standard_F4s,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380212 +AZURE,ukwest,Standard_F4s,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380216 +AZURE,ukwest,Standard_F4s,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380208 +AZURE,ukwest,Standard_F4s_v2,on_demand,NA,0.2058,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382800 +AZURE,ukwest,Standard_F4s_v2,reserved_1y,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382809 +AZURE,ukwest,Standard_F4s_v2,reserved_3y,NA,0.08232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382813 +AZURE,ukwest,Standard_F4s_v2,spot,NA,0.06174,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382804 +AZURE,ukwest,Standard_F64s_v2,on_demand,NA,3.2928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386834 +AZURE,ukwest,Standard_F64s_v2,reserved_1y,NA,1.97568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386844 +AZURE,ukwest,Standard_F64s_v2,reserved_3y,NA,1.31712,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386848 +AZURE,ukwest,Standard_F64s_v2,spot,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386838 +AZURE,ukwest,Standard_F72s_v2,on_demand,NA,3.7044,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387649 +AZURE,ukwest,Standard_F72s_v2,reserved_1y,NA,2.22264,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387659 +AZURE,ukwest,Standard_F72s_v2,reserved_3y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387664 +AZURE,ukwest,Standard_F72s_v2,spot,NA,1.11132,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387655 +AZURE,ukwest,Standard_F8,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378621 +AZURE,ukwest,Standard_F8,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378630 +AZURE,ukwest,Standard_F8,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378634 +AZURE,ukwest,Standard_F8,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378626 +AZURE,ukwest,Standard_F8s,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380900 +AZURE,ukwest,Standard_F8s,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380909 +AZURE,ukwest,Standard_F8s,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380913 +AZURE,ukwest,Standard_F8s,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380905 +AZURE,ukwest,Standard_F8s_v2,on_demand,NA,0.4116,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383635 +AZURE,ukwest,Standard_F8s_v2,reserved_1y,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383646 +AZURE,ukwest,Standard_F8s_v2,reserved_3y,NA,0.16464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383650 +AZURE,ukwest,Standard_F8s_v2,spot,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383642 +AZURE,ukwest,Standard_L16as_v3,on_demand,NA,1.51,USD,Azure Retail Prices API,2025-12-18T04:45:40.276941 +AZURE,ukwest,Standard_L16as_v3,reserved_1y,NA,0.966438,USD,Azure Retail Prices API,2025-12-18T04:45:41.281100 +AZURE,ukwest,Standard_L16as_v3,reserved_3y,NA,0.634247,USD,Azure Retail Prices API,2025-12-18T04:45:41.281103 +AZURE,ukwest,Standard_L16as_v3,spot,NA,0.279048,USD,Azure Retail Prices API,2025-12-18T04:45:40.276833 +AZURE,ukwest,Standard_L16s_v3,on_demand,NA,1.689,USD,Azure Retail Prices API,2025-12-18T04:45:40.277881 +AZURE,ukwest,Standard_L16s_v3,reserved_1y,NA,1.08105,USD,Azure Retail Prices API,2025-12-18T04:45:41.281973 +AZURE,ukwest,Standard_L16s_v3,reserved_3y,NA,0.709437,USD,Azure Retail Prices API,2025-12-18T04:45:41.281976 +AZURE,ukwest,Standard_L16s_v3,spot,NA,0.312127,USD,Azure Retail Prices API,2025-12-18T04:45:40.278202 +AZURE,ukwest,Standard_L32as_v3,on_demand,NA,3.02,USD,Azure Retail Prices API,2025-12-18T04:45:40.277201 +AZURE,ukwest,Standard_L32as_v3,reserved_1y,NA,1.932877,USD,Azure Retail Prices API,2025-12-18T04:45:41.281301 +AZURE,ukwest,Standard_L32as_v3,reserved_3y,NA,1.268455,USD,Azure Retail Prices API,2025-12-18T04:45:41.281304 +AZURE,ukwest,Standard_L32as_v3,spot,NA,0.558096,USD,Azure Retail Prices API,2025-12-18T04:45:40.278357 +AZURE,ukwest,Standard_L32s_v3,on_demand,NA,3.378,USD,Azure Retail Prices API,2025-12-18T04:45:40.278369 +AZURE,ukwest,Standard_L32s_v3,reserved_1y,NA,2.1621,USD,Azure Retail Prices API,2025-12-18T04:45:41.282418 +AZURE,ukwest,Standard_L32s_v3,reserved_3y,NA,1.418912,USD,Azure Retail Prices API,2025-12-18T04:45:41.282421 +AZURE,ukwest,Standard_L32s_v3,spot,NA,0.624254,USD,Azure Retail Prices API,2025-12-18T04:45:40.278146 +AZURE,ukwest,Standard_L48as_v3,on_demand,NA,4.53,USD,Azure Retail Prices API,2025-12-18T04:45:40.278189 +AZURE,ukwest,Standard_L48as_v3,reserved_1y,NA,2.899315,USD,Azure Retail Prices API,2025-12-18T04:45:41.282219 +AZURE,ukwest,Standard_L48as_v3,reserved_3y,NA,1.902702,USD,Azure Retail Prices API,2025-12-18T04:45:41.282221 +AZURE,ukwest,Standard_L48as_v3,spot,NA,0.837144,USD,Azure Retail Prices API,2025-12-18T04:45:40.277382 +AZURE,ukwest,Standard_L48s_v3,on_demand,NA,5.068,USD,Azure Retail Prices API,2025-12-18T04:45:40.276936 +AZURE,ukwest,Standard_L48s_v3,reserved_1y,NA,3.243151,USD,Azure Retail Prices API,2025-12-18T04:45:41.281094 +AZURE,ukwest,Standard_L48s_v3,reserved_3y,NA,2.128349,USD,Azure Retail Prices API,2025-12-18T04:45:41.281097 +AZURE,ukwest,Standard_L48s_v3,spot,NA,0.936566,USD,Azure Retail Prices API,2025-12-18T04:45:40.277715 +AZURE,ukwest,Standard_L64as_v3,on_demand,NA,6.04,USD,Azure Retail Prices API,2025-12-18T04:45:40.278219 +AZURE,ukwest,Standard_L64as_v3,reserved_1y,NA,3.865753,USD,Azure Retail Prices API,2025-12-18T04:45:41.282263 +AZURE,ukwest,Standard_L64as_v3,reserved_3y,NA,2.536948,USD,Azure Retail Prices API,2025-12-18T04:45:41.282266 +AZURE,ukwest,Standard_L64as_v3,spot,NA,1.116192,USD,Azure Retail Prices API,2025-12-18T04:45:40.277895 +AZURE,ukwest,Standard_L64s_v3,on_demand,NA,6.757,USD,Azure Retail Prices API,2025-12-18T04:45:40.276821 +AZURE,ukwest,Standard_L64s_v3,reserved_1y,NA,4.324315,USD,Azure Retail Prices API,2025-12-18T04:45:41.280997 +AZURE,ukwest,Standard_L64s_v3,reserved_3y,NA,2.837785,USD,Azure Retail Prices API,2025-12-18T04:45:41.281000 +AZURE,ukwest,Standard_L64s_v3,spot,NA,1.248694,USD,Azure Retail Prices API,2025-12-18T04:45:40.278078 +AZURE,ukwest,Standard_L80as_v3,on_demand,NA,7.55,USD,Azure Retail Prices API,2025-12-18T04:45:40.277763 +AZURE,ukwest,Standard_L80as_v3,reserved_1y,NA,4.832306,USD,Azure Retail Prices API,2025-12-18T04:45:41.281886 +AZURE,ukwest,Standard_L80as_v3,reserved_3y,NA,3.171157,USD,Azure Retail Prices API,2025-12-18T04:45:41.281888 +AZURE,ukwest,Standard_L80as_v3,spot,NA,1.39524,USD,Azure Retail Prices API,2025-12-18T04:45:40.277151 +AZURE,ukwest,Standard_L80s_v3,on_demand,NA,8.446,USD,Azure Retail Prices API,2025-12-18T04:45:40.277374 +AZURE,ukwest,Standard_L80s_v3,reserved_1y,NA,5.405365,USD,Azure Retail Prices API,2025-12-18T04:45:41.281471 +AZURE,ukwest,Standard_L80s_v3,reserved_3y,NA,3.54726,USD,Azure Retail Prices API,2025-12-18T04:45:41.281474 +AZURE,ukwest,Standard_L80s_v3,spot,NA,1.560821,USD,Azure Retail Prices API,2025-12-18T04:45:40.277470 +AZURE,ukwest,Standard_L8as_v3,on_demand,NA,0.755,USD,Azure Retail Prices API,2025-12-18T04:45:40.278199 +AZURE,ukwest,Standard_L8as_v3,reserved_1y,NA,0.483219,USD,Azure Retail Prices API,2025-12-18T04:45:41.282241 +AZURE,ukwest,Standard_L8as_v3,reserved_3y,NA,0.317123,USD,Azure Retail Prices API,2025-12-18T04:45:41.282243 +AZURE,ukwest,Standard_L8as_v3,spot,NA,0.139524,USD,Azure Retail Prices API,2025-12-18T04:45:40.277540 +AZURE,ukwest,Standard_L8s_v3,on_demand,NA,0.845,USD,Azure Retail Prices API,2025-12-18T04:45:40.277635 +AZURE,ukwest,Standard_L8s_v3,reserved_1y,NA,0.540525,USD,Azure Retail Prices API,2025-12-18T04:45:41.281734 +AZURE,ukwest,Standard_L8s_v3,reserved_3y,NA,0.354718,USD,Azure Retail Prices API,2025-12-18T04:45:41.281736 +AZURE,ukwest,Standard_L8s_v3,spot,NA,0.156156,USD,Azure Retail Prices API,2025-12-18T04:45:40.277749 +AZURE,westcentralus,Standard_D128ds_v6,on_demand,NA,9.568,USD,Azure Retail Prices API,2025-12-18T04:45:20.807042 +AZURE,westcentralus,Standard_D128ds_v6,reserved_1y,NA,5.932192,USD,Azure Retail Prices API,2025-12-18T04:45:21.854514 +AZURE,westcentralus,Standard_D128ds_v6,reserved_3y,NA,3.731507,USD,Azure Retail Prices API,2025-12-18T04:45:21.854521 +AZURE,westcentralus,Standard_D128ds_v6,spot,NA,1.768166,USD,Azure Retail Prices API,2025-12-18T04:45:20.806313 +AZURE,westcentralus,Standard_D12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488253 +AZURE,westcentralus,Standard_D12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488261 +AZURE,westcentralus,Standard_D12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488265 +AZURE,westcentralus,Standard_D12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488257 +AZURE,westcentralus,Standard_D13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488996 +AZURE,westcentralus,Standard_D13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489009 +AZURE,westcentralus,Standard_D13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489018 +AZURE,westcentralus,Standard_D13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489001 +AZURE,westcentralus,Standard_D14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490129 +AZURE,westcentralus,Standard_D14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490138 +AZURE,westcentralus,Standard_D14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490142 +AZURE,westcentralus,Standard_D14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490133 +AZURE,westcentralus,Standard_D15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490822 +AZURE,westcentralus,Standard_D15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490830 +AZURE,westcentralus,Standard_D15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490834 +AZURE,westcentralus,Standard_D15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490826 +AZURE,westcentralus,Standard_D16_v3,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:45:20.806631 +AZURE,westcentralus,Standard_D16_v3,reserved_1y,NA,0.555023,USD,Azure Retail Prices API,2025-12-18T04:45:21.854057 +AZURE,westcentralus,Standard_D16_v3,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:45:21.854059 +AZURE,westcentralus,Standard_D16_v3,spot,NA,0.162624,USD,Azure Retail Prices API,2025-12-18T04:45:20.806439 +AZURE,westcentralus,Standard_D16a_v4,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:45:20.806584 +AZURE,westcentralus,Standard_D16a_v4,reserved_1y,NA,0.552968,USD,Azure Retail Prices API,2025-12-18T04:45:21.854034 +AZURE,westcentralus,Standard_D16a_v4,reserved_3y,NA,0.368645,USD,Azure Retail Prices API,2025-12-18T04:45:21.854036 +AZURE,westcentralus,Standard_D16a_v4,spot,NA,0.206159,USD,Azure Retail Prices API,2025-12-18T04:45:20.806274 +AZURE,westcentralus,Standard_D16ads_v5,on_demand,NA,1.725,USD,Azure Retail Prices API,2025-12-18T04:45:20.806793 +AZURE,westcentralus,Standard_D16ads_v5,reserved_1y,NA,0.583447,USD,Azure Retail Prices API,2025-12-18T04:45:21.854754 +AZURE,westcentralus,Standard_D16ads_v5,reserved_3y,NA,0.375761,USD,Azure Retail Prices API,2025-12-18T04:45:21.854757 +AZURE,westcentralus,Standard_D16ads_v5,spot,NA,0.22114,USD,Azure Retail Prices API,2025-12-18T04:45:20.806019 +AZURE,westcentralus,Standard_D16ads_v6,on_demand,NA,1.093,USD,Azure Retail Prices API,2025-12-18T04:45:20.805701 +AZURE,westcentralus,Standard_D16ads_v6,reserved_1y,NA,0.644749,USD,Azure Retail Prices API,2025-12-18T04:45:21.853550 +AZURE,westcentralus,Standard_D16ads_v6,reserved_3y,NA,0.415259,USD,Azure Retail Prices API,2025-12-18T04:45:21.853553 +AZURE,westcentralus,Standard_D16ads_v6,spot,NA,0.201986,USD,Azure Retail Prices API,2025-12-18T04:45:20.805539 +AZURE,westcentralus,Standard_D16as_v4,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:45:20.806365 +AZURE,westcentralus,Standard_D16as_v4,reserved_1y,NA,0.552968,USD,Azure Retail Prices API,2025-12-18T04:45:21.853901 +AZURE,westcentralus,Standard_D16as_v4,reserved_3y,NA,0.368645,USD,Azure Retail Prices API,2025-12-18T04:45:21.853904 +AZURE,westcentralus,Standard_D16as_v4,spot,NA,0.206159,USD,Azure Retail Prices API,2025-12-18T04:45:20.807322 +AZURE,westcentralus,Standard_D16as_v5,on_demand,NA,1.562,USD,Azure Retail Prices API,2025-12-18T04:45:20.805733 +AZURE,westcentralus,Standard_D16as_v5,reserved_1y,NA,0.4871,USD,Azure Retail Prices API,2025-12-18T04:45:21.853626 +AZURE,westcentralus,Standard_D16as_v5,reserved_3y,NA,0.313737,USD,Azure Retail Prices API,2025-12-18T04:45:21.853629 +AZURE,westcentralus,Standard_D16as_v5,spot,NA,0.184694,USD,Azure Retail Prices API,2025-12-18T04:45:20.806491 +AZURE,westcentralus,Standard_D16d_v4,on_demand,NA,1.085,USD,Azure Retail Prices API,2025-12-18T04:45:20.805738 +AZURE,westcentralus,Standard_D16d_v4,reserved_1y,NA,0.640068,USD,Azure Retail Prices API,2025-12-18T04:45:21.853568 +AZURE,westcentralus,Standard_D16d_v4,reserved_3y,NA,0.412215,USD,Azure Retail Prices API,2025-12-18T04:45:21.853571 +AZURE,westcentralus,Standard_D16d_v4,spot,NA,0.200508,USD,Azure Retail Prices API,2025-12-18T04:45:20.807511 +AZURE,westcentralus,Standard_D16ds_v4,on_demand,NA,1.085,USD,Azure Retail Prices API,2025-12-18T04:45:20.806801 +AZURE,westcentralus,Standard_D16ds_v4,reserved_1y,NA,0.640068,USD,Azure Retail Prices API,2025-12-18T04:45:21.854214 +AZURE,westcentralus,Standard_D16ds_v4,reserved_3y,NA,0.412215,USD,Azure Retail Prices API,2025-12-18T04:45:21.854217 +AZURE,westcentralus,Standard_D16ds_v4,spot,NA,0.200508,USD,Azure Retail Prices API,2025-12-18T04:45:20.806447 +AZURE,westcentralus,Standard_D16ds_v5,on_demand,NA,1.085,USD,Azure Retail Prices API,2025-12-18T04:45:20.806943 +AZURE,westcentralus,Standard_D16ds_v5,reserved_1y,NA,0.640068,USD,Azure Retail Prices API,2025-12-18T04:45:21.854402 +AZURE,westcentralus,Standard_D16ds_v5,reserved_3y,NA,0.412215,USD,Azure Retail Prices API,2025-12-18T04:45:21.854404 +AZURE,westcentralus,Standard_D16ds_v5,spot,NA,0.200508,USD,Azure Retail Prices API,2025-12-18T04:45:20.806997 +AZURE,westcentralus,Standard_D16ds_v6,on_demand,NA,1.196,USD,Azure Retail Prices API,2025-12-18T04:45:20.805749 +AZURE,westcentralus,Standard_D16ds_v6,reserved_1y,NA,0.741553,USD,Azure Retail Prices API,2025-12-18T04:45:21.853574 +AZURE,westcentralus,Standard_D16ds_v6,reserved_3y,NA,0.466438,USD,Azure Retail Prices API,2025-12-18T04:45:21.853577 +AZURE,westcentralus,Standard_D16ds_v6,spot,NA,0.221021,USD,Azure Retail Prices API,2025-12-18T04:45:20.807341 +AZURE,westcentralus,Standard_D16pds_v6,on_demand,NA,0.882,USD,Azure Retail Prices API,2025-12-18T04:45:20.806349 +AZURE,westcentralus,Standard_D16pds_v6,reserved_1y,NA,0.520091,USD,Azure Retail Prices API,2025-12-18T04:45:21.853884 +AZURE,westcentralus,Standard_D16pds_v6,reserved_3y,NA,0.335008,USD,Azure Retail Prices API,2025-12-18T04:45:21.853887 +AZURE,westcentralus,Standard_D16pds_v6,spot,NA,0.162994,USD,Azure Retail Prices API,2025-12-18T04:45:20.807399 +AZURE,westcentralus,Standard_D16ps_v6,on_demand,NA,0.674,USD,Azure Retail Prices API,2025-12-18T04:45:20.806559 +AZURE,westcentralus,Standard_D16ps_v6,reserved_1y,NA,0.397374,USD,Azure Retail Prices API,2025-12-18T04:45:21.854028 +AZURE,westcentralus,Standard_D16ps_v6,reserved_3y,NA,0.255974,USD,Azure Retail Prices API,2025-12-18T04:45:21.854031 +AZURE,westcentralus,Standard_D16ps_v6,spot,NA,0.124555,USD,Azure Retail Prices API,2025-12-18T04:45:20.806916 +AZURE,westcentralus,Standard_D16s_v3,on_demand,NA,0.88,USD,Azure Retail Prices API,2025-12-18T04:45:20.806717 +AZURE,westcentralus,Standard_D16s_v3,reserved_1y,NA,0.555023,USD,Azure Retail Prices API,2025-12-18T04:45:21.854137 +AZURE,westcentralus,Standard_D16s_v3,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:45:21.854140 +AZURE,westcentralus,Standard_D16s_v3,spot,NA,0.162624,USD,Azure Retail Prices API,2025-12-18T04:45:20.806403 +AZURE,westcentralus,Standard_D16s_v4,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:45:20.806430 +AZURE,westcentralus,Standard_D16s_v4,reserved_1y,NA,0.543721,USD,Azure Retail Prices API,2025-12-18T04:45:21.853956 +AZURE,westcentralus,Standard_D16s_v4,reserved_3y,NA,0.35019,USD,Azure Retail Prices API,2025-12-18T04:45:21.853959 +AZURE,westcentralus,Standard_D16s_v4,spot,NA,0.170386,USD,Azure Retail Prices API,2025-12-18T04:45:20.805797 +AZURE,westcentralus,Standard_D16s_v5,on_demand,NA,0.922,USD,Azure Retail Prices API,2025-12-18T04:45:20.805986 +AZURE,westcentralus,Standard_D16s_v5,reserved_1y,NA,0.543721,USD,Azure Retail Prices API,2025-12-18T04:45:21.853706 +AZURE,westcentralus,Standard_D16s_v5,reserved_3y,NA,0.340982,USD,Azure Retail Prices API,2025-12-18T04:45:21.853709 +AZURE,westcentralus,Standard_D16s_v5,spot,NA,0.170386,USD,Azure Retail Prices API,2025-12-18T04:45:20.807328 +AZURE,westcentralus,Standard_D2ads_v6,on_demand,NA,0.137,USD,Azure Retail Prices API,2025-12-18T04:45:20.806853 +AZURE,westcentralus,Standard_D2ads_v6,reserved_1y,NA,0.080594,USD,Azure Retail Prices API,2025-12-18T04:45:21.854287 +AZURE,westcentralus,Standard_D2ads_v6,reserved_3y,NA,0.051903,USD,Azure Retail Prices API,2025-12-18T04:45:21.854290 +AZURE,westcentralus,Standard_D2ads_v6,spot,NA,0.025318,USD,Azure Retail Prices API,2025-12-18T04:45:20.807028 +AZURE,westcentralus,Standard_D2ds_v6,on_demand,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:45:20.805933 +AZURE,westcentralus,Standard_D2ds_v6,reserved_1y,NA,0.092694,USD,Azure Retail Prices API,2025-12-18T04:45:21.853677 +AZURE,westcentralus,Standard_D2ds_v6,reserved_3y,NA,0.058295,USD,Azure Retail Prices API,2025-12-18T04:45:21.853680 +AZURE,westcentralus,Standard_D2ds_v6,spot,NA,0.02772,USD,Azure Retail Prices API,2025-12-18T04:45:20.806535 +AZURE,westcentralus,Standard_D32_v3,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:45:20.806656 +AZURE,westcentralus,Standard_D32_v3,reserved_1y,NA,1.110046,USD,Azure Retail Prices API,2025-12-18T04:45:21.854091 +AZURE,westcentralus,Standard_D32_v3,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:45:21.854094 +AZURE,westcentralus,Standard_D32_v3,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:45:20.805644 +AZURE,westcentralus,Standard_D32a_v4,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:45:20.807467 +AZURE,westcentralus,Standard_D32a_v4,reserved_1y,NA,1.105936,USD,Azure Retail Prices API,2025-12-18T04:45:21.854667 +AZURE,westcentralus,Standard_D32a_v4,reserved_3y,NA,0.737291,USD,Azure Retail Prices API,2025-12-18T04:45:21.854687 +AZURE,westcentralus,Standard_D32a_v4,spot,NA,0.412095,USD,Azure Retail Prices API,2025-12-18T04:45:20.805712 +AZURE,westcentralus,Standard_D32ads_v5,on_demand,NA,1.978,USD,Azure Retail Prices API,2025-12-18T04:45:20.805523 +AZURE,westcentralus,Standard_D32ads_v5,reserved_1y,NA,1.166781,USD,Azure Retail Prices API,2025-12-18T04:45:21.853461 +AZURE,westcentralus,Standard_D32ads_v5,reserved_3y,NA,0.751484,USD,Azure Retail Prices API,2025-12-18T04:45:21.853464 +AZURE,westcentralus,Standard_D32ads_v5,spot,NA,0.442281,USD,Azure Retail Prices API,2025-12-18T04:45:20.807483 +AZURE,westcentralus,Standard_D32ads_v6,on_demand,NA,2.186,USD,Azure Retail Prices API,2025-12-18T04:45:20.806833 +AZURE,westcentralus,Standard_D32ads_v6,reserved_1y,NA,1.289498,USD,Azure Retail Prices API,2025-12-18T04:45:21.854269 +AZURE,westcentralus,Standard_D32ads_v6,reserved_3y,NA,0.830518,USD,Azure Retail Prices API,2025-12-18T04:45:21.854272 +AZURE,westcentralus,Standard_D32ads_v6,spot,NA,0.403973,USD,Azure Retail Prices API,2025-12-18T04:45:20.807344 +AZURE,westcentralus,Standard_D32as_v4,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:45:20.807031 +AZURE,westcentralus,Standard_D32as_v4,reserved_1y,NA,1.105936,USD,Azure Retail Prices API,2025-12-18T04:45:21.854486 +AZURE,westcentralus,Standard_D32as_v4,reserved_3y,NA,0.737291,USD,Azure Retail Prices API,2025-12-18T04:45:21.854489 +AZURE,westcentralus,Standard_D32as_v4,spot,NA,0.412095,USD,Azure Retail Prices API,2025-12-18T04:45:20.807573 +AZURE,westcentralus,Standard_D32as_v5,on_demand,NA,3.123,USD,Azure Retail Prices API,2025-12-18T04:45:20.806554 +AZURE,westcentralus,Standard_D32as_v5,reserved_1y,NA,0.974201,USD,Azure Retail Prices API,2025-12-18T04:45:21.854298 +AZURE,westcentralus,Standard_D32as_v5,reserved_3y,NA,0.627473,USD,Azure Retail Prices API,2025-12-18T04:45:21.854301 +AZURE,westcentralus,Standard_D32as_v5,spot,NA,0.369164,USD,Azure Retail Prices API,2025-12-18T04:45:20.806637 +AZURE,westcentralus,Standard_D32d_v4,on_demand,NA,2.17,USD,Azure Retail Prices API,2025-12-18T04:45:20.805628 +AZURE,westcentralus,Standard_D32d_v4,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:45:21.853515 +AZURE,westcentralus,Standard_D32d_v4,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:45:21.853518 +AZURE,westcentralus,Standard_D32d_v4,spot,NA,0.401016,USD,Azure Retail Prices API,2025-12-18T04:45:20.805880 +AZURE,westcentralus,Standard_D32ds_v4,on_demand,NA,2.17,USD,Azure Retail Prices API,2025-12-18T04:45:20.806336 +AZURE,westcentralus,Standard_D32ds_v4,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:45:21.853878 +AZURE,westcentralus,Standard_D32ds_v4,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:45:21.853881 +AZURE,westcentralus,Standard_D32ds_v4,spot,NA,0.401016,USD,Azure Retail Prices API,2025-12-18T04:45:20.806759 +AZURE,westcentralus,Standard_D32ds_v5,on_demand,NA,2.17,USD,Azure Retail Prices API,2025-12-18T04:45:20.806136 +AZURE,westcentralus,Standard_D32ds_v5,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:45:21.853757 +AZURE,westcentralus,Standard_D32ds_v5,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:45:21.853759 +AZURE,westcentralus,Standard_D32ds_v5,spot,NA,0.401016,USD,Azure Retail Prices API,2025-12-18T04:45:20.806397 +AZURE,westcentralus,Standard_D32ds_v6,on_demand,NA,2.392,USD,Azure Retail Prices API,2025-12-18T04:45:20.805980 +AZURE,westcentralus,Standard_D32ds_v6,reserved_1y,NA,1.482991,USD,Azure Retail Prices API,2025-12-18T04:45:21.853701 +AZURE,westcentralus,Standard_D32ds_v6,reserved_3y,NA,0.932877,USD,Azure Retail Prices API,2025-12-18T04:45:21.853704 +AZURE,westcentralus,Standard_D32ds_v6,spot,NA,0.442042,USD,Azure Retail Prices API,2025-12-18T04:45:20.806544 +AZURE,westcentralus,Standard_D32pds_v6,on_demand,NA,1.763,USD,Azure Retail Prices API,2025-12-18T04:45:20.807304 +AZURE,westcentralus,Standard_D32pds_v6,reserved_1y,NA,1.040297,USD,Azure Retail Prices API,2025-12-18T04:45:21.854542 +AZURE,westcentralus,Standard_D32pds_v6,reserved_3y,NA,0.670015,USD,Azure Retail Prices API,2025-12-18T04:45:21.854545 +AZURE,westcentralus,Standard_D32pds_v6,spot,NA,0.325802,USD,Azure Retail Prices API,2025-12-18T04:45:20.807524 +AZURE,westcentralus,Standard_D32ps_v6,on_demand,NA,1.347,USD,Azure Retail Prices API,2025-12-18T04:45:20.805592 +AZURE,westcentralus,Standard_D32ps_v6,reserved_1y,NA,0.794863,USD,Azure Retail Prices API,2025-12-18T04:45:21.853503 +AZURE,westcentralus,Standard_D32ps_v6,reserved_3y,NA,0.511948,USD,Azure Retail Prices API,2025-12-18T04:45:21.853506 +AZURE,westcentralus,Standard_D32ps_v6,spot,NA,0.248926,USD,Azure Retail Prices API,2025-12-18T04:45:20.805691 +AZURE,westcentralus,Standard_D32s_v3,on_demand,NA,1.76,USD,Azure Retail Prices API,2025-12-18T04:45:20.806830 +AZURE,westcentralus,Standard_D32s_v3,reserved_1y,NA,1.110046,USD,Azure Retail Prices API,2025-12-18T04:45:21.854264 +AZURE,westcentralus,Standard_D32s_v3,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:45:21.854266 +AZURE,westcentralus,Standard_D32s_v3,spot,NA,0.325248,USD,Azure Retail Prices API,2025-12-18T04:45:20.805664 +AZURE,westcentralus,Standard_D32s_v4,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:45:20.806269 +AZURE,westcentralus,Standard_D32s_v4,reserved_1y,NA,1.087443,USD,Azure Retail Prices API,2025-12-18T04:45:21.853837 +AZURE,westcentralus,Standard_D32s_v4,reserved_3y,NA,0.700419,USD,Azure Retail Prices API,2025-12-18T04:45:21.853840 +AZURE,westcentralus,Standard_D32s_v4,spot,NA,0.340586,USD,Azure Retail Prices API,2025-12-18T04:45:20.806856 +AZURE,westcentralus,Standard_D32s_v5,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:45:20.807514 +AZURE,westcentralus,Standard_D32s_v5,reserved_1y,NA,1.087443,USD,Azure Retail Prices API,2025-12-18T04:45:21.854724 +AZURE,westcentralus,Standard_D32s_v5,reserved_3y,NA,0.682002,USD,Azure Retail Prices API,2025-12-18T04:45:21.854727 +AZURE,westcentralus,Standard_D32s_v5,spot,NA,0.340586,USD,Azure Retail Prices API,2025-12-18T04:45:20.807003 +AZURE,westcentralus,Standard_D3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485239 +AZURE,westcentralus,Standard_D3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485248 +AZURE,westcentralus,Standard_D3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485252 +AZURE,westcentralus,Standard_D3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485244 +AZURE,westcentralus,Standard_D48a_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:20.805638 +AZURE,westcentralus,Standard_D48a_v4,reserved_1y,NA,1.658904,USD,Azure Retail Prices API,2025-12-18T04:45:21.853522 +AZURE,westcentralus,Standard_D48a_v4,reserved_3y,NA,1.105936,USD,Azure Retail Prices API,2025-12-18T04:45:21.853524 +AZURE,westcentralus,Standard_D48a_v4,spot,NA,0.618254,USD,Azure Retail Prices API,2025-12-18T04:45:20.806436 +AZURE,westcentralus,Standard_D48ads_v5,on_demand,NA,5.174,USD,Azure Retail Prices API,2025-12-18T04:45:20.806862 +AZURE,westcentralus,Standard_D48ads_v5,reserved_1y,NA,1.750228,USD,Azure Retail Prices API,2025-12-18T04:45:21.854690 +AZURE,westcentralus,Standard_D48ads_v5,reserved_3y,NA,1.127245,USD,Azure Retail Prices API,2025-12-18T04:45:21.854693 +AZURE,westcentralus,Standard_D48ads_v5,spot,NA,0.663198,USD,Azure Retail Prices API,2025-12-18T04:45:20.805917 +AZURE,westcentralus,Standard_D48ads_v6,on_demand,NA,3.278,USD,Azure Retail Prices API,2025-12-18T04:45:20.807539 +AZURE,westcentralus,Standard_D48ads_v6,reserved_1y,NA,1.934247,USD,Azure Retail Prices API,2025-12-18T04:45:21.854760 +AZURE,westcentralus,Standard_D48ads_v6,reserved_3y,NA,1.245776,USD,Azure Retail Prices API,2025-12-18T04:45:21.854763 +AZURE,westcentralus,Standard_D48ads_v6,spot,NA,0.605774,USD,Azure Retail Prices API,2025-12-18T04:45:20.806124 +AZURE,westcentralus,Standard_D48as_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:20.806880 +AZURE,westcentralus,Standard_D48as_v4,reserved_1y,NA,1.658904,USD,Azure Retail Prices API,2025-12-18T04:45:21.854315 +AZURE,westcentralus,Standard_D48as_v4,reserved_3y,NA,1.105936,USD,Azure Retail Prices API,2025-12-18T04:45:21.854320 +AZURE,westcentralus,Standard_D48as_v4,spot,NA,0.618254,USD,Azure Retail Prices API,2025-12-18T04:45:20.806795 +AZURE,westcentralus,Standard_D48as_v5,on_demand,NA,4.685,USD,Azure Retail Prices API,2025-12-18T04:45:20.806563 +AZURE,westcentralus,Standard_D48as_v5,reserved_1y,NA,1.461301,USD,Azure Retail Prices API,2025-12-18T04:45:21.854119 +AZURE,westcentralus,Standard_D48as_v5,reserved_3y,NA,0.941172,USD,Azure Retail Prices API,2025-12-18T04:45:21.854122 +AZURE,westcentralus,Standard_D48as_v5,spot,NA,0.553857,USD,Azure Retail Prices API,2025-12-18T04:45:20.805670 +AZURE,westcentralus,Standard_D48d_v4,on_demand,NA,3.254,USD,Azure Retail Prices API,2025-12-18T04:45:20.806804 +AZURE,westcentralus,Standard_D48d_v4,reserved_1y,NA,1.920091,USD,Azure Retail Prices API,2025-12-18T04:45:21.854220 +AZURE,westcentralus,Standard_D48d_v4,reserved_3y,NA,1.236682,USD,Azure Retail Prices API,2025-12-18T04:45:21.854223 +AZURE,westcentralus,Standard_D48d_v4,spot,NA,0.601339,USD,Azure Retail Prices API,2025-12-18T04:45:20.805513 +AZURE,westcentralus,Standard_D48ds_v4,on_demand,NA,3.254,USD,Azure Retail Prices API,2025-12-18T04:45:20.807500 +AZURE,westcentralus,Standard_D48ds_v4,reserved_1y,NA,1.920091,USD,Azure Retail Prices API,2025-12-18T04:45:21.854712 +AZURE,westcentralus,Standard_D48ds_v4,reserved_3y,NA,1.236682,USD,Azure Retail Prices API,2025-12-18T04:45:21.854715 +AZURE,westcentralus,Standard_D48ds_v4,spot,NA,0.601339,USD,Azure Retail Prices API,2025-12-18T04:45:20.806989 +AZURE,westcentralus,Standard_D48ds_v5,on_demand,NA,3.254,USD,Azure Retail Prices API,2025-12-18T04:45:20.807375 +AZURE,westcentralus,Standard_D48ds_v5,reserved_1y,NA,1.920091,USD,Azure Retail Prices API,2025-12-18T04:45:21.854577 +AZURE,westcentralus,Standard_D48ds_v5,reserved_3y,NA,1.236682,USD,Azure Retail Prices API,2025-12-18T04:45:21.854580 +AZURE,westcentralus,Standard_D48ds_v5,spot,NA,0.601339,USD,Azure Retail Prices API,2025-12-18T04:45:20.806901 +AZURE,westcentralus,Standard_D48ds_v6,on_demand,NA,3.588,USD,Azure Retail Prices API,2025-12-18T04:45:20.807486 +AZURE,westcentralus,Standard_D48ds_v6,reserved_1y,NA,2.224543,USD,Azure Retail Prices API,2025-12-18T04:45:21.854706 +AZURE,westcentralus,Standard_D48ds_v6,reserved_3y,NA,1.399315,USD,Azure Retail Prices API,2025-12-18T04:45:21.854709 +AZURE,westcentralus,Standard_D48ds_v6,spot,NA,0.663062,USD,Azure Retail Prices API,2025-12-18T04:45:20.806658 +AZURE,westcentralus,Standard_D48pds_v6,on_demand,NA,2.645,USD,Azure Retail Prices API,2025-12-18T04:45:20.806333 +AZURE,westcentralus,Standard_D48pds_v6,reserved_1y,NA,1.560388,USD,Azure Retail Prices API,2025-12-18T04:45:21.853872 +AZURE,westcentralus,Standard_D48pds_v6,reserved_3y,NA,1.005023,USD,Azure Retail Prices API,2025-12-18T04:45:21.853875 +AZURE,westcentralus,Standard_D48pds_v6,spot,NA,0.488796,USD,Azure Retail Prices API,2025-12-18T04:45:20.806187 +AZURE,westcentralus,Standard_D48ps_v6,on_demand,NA,2.021,USD,Azure Retail Prices API,2025-12-18T04:45:20.807594 +AZURE,westcentralus,Standard_D48ps_v6,reserved_1y,NA,1.192237,USD,Azure Retail Prices API,2025-12-18T04:45:21.854864 +AZURE,westcentralus,Standard_D48ps_v6,reserved_3y,NA,0.767922,USD,Azure Retail Prices API,2025-12-18T04:45:21.854867 +AZURE,westcentralus,Standard_D48ps_v6,spot,NA,0.373481,USD,Azure Retail Prices API,2025-12-18T04:45:20.805902 +AZURE,westcentralus,Standard_D48s_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:20.806765 +AZURE,westcentralus,Standard_D48s_v4,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:45:21.854198 +AZURE,westcentralus,Standard_D48s_v4,reserved_3y,NA,1.050609,USD,Azure Retail Prices API,2025-12-18T04:45:21.854201 +AZURE,westcentralus,Standard_D48s_v4,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:20.806453 +AZURE,westcentralus,Standard_D48s_v5,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:20.806387 +AZURE,westcentralus,Standard_D48s_v5,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:45:21.853924 +AZURE,westcentralus,Standard_D48s_v5,reserved_3y,NA,1.022983,USD,Azure Retail Prices API,2025-12-18T04:45:21.853926 +AZURE,westcentralus,Standard_D48s_v5,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:20.806502 +AZURE,westcentralus,Standard_D4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486086 +AZURE,westcentralus,Standard_D4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486094 +AZURE,westcentralus,Standard_D4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486098 +AZURE,westcentralus,Standard_D4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486090 +AZURE,westcentralus,Standard_D4a_v4,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:20.806155 +AZURE,westcentralus,Standard_D4a_v4,reserved_1y,NA,0.138242,USD,Azure Retail Prices API,2025-12-18T04:45:21.853767 +AZURE,westcentralus,Standard_D4a_v4,reserved_3y,NA,0.092161,USD,Azure Retail Prices API,2025-12-18T04:45:21.853770 +AZURE,westcentralus,Standard_D4a_v4,spot,NA,0.051428,USD,Azure Retail Prices API,2025-12-18T04:45:20.807564 +AZURE,westcentralus,Standard_D4ads_v5,on_demand,NA,0.247,USD,Azure Retail Prices API,2025-12-18T04:45:20.806910 +AZURE,westcentralus,Standard_D4ads_v5,reserved_1y,NA,0.14589,USD,Azure Retail Prices API,2025-12-18T04:45:21.854374 +AZURE,westcentralus,Standard_D4ads_v5,reserved_3y,NA,0.09395,USD,Azure Retail Prices API,2025-12-18T04:45:21.854377 +AZURE,westcentralus,Standard_D4ads_v5,spot,NA,0.055229,USD,Azure Retail Prices API,2025-12-18T04:45:20.806130 +AZURE,westcentralus,Standard_D4ads_v6,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:45:20.806014 +AZURE,westcentralus,Standard_D4ads_v6,reserved_1y,NA,0.161187,USD,Azure Retail Prices API,2025-12-18T04:45:21.853718 +AZURE,westcentralus,Standard_D4ads_v6,reserved_3y,NA,0.103805,USD,Azure Retail Prices API,2025-12-18T04:45:21.853720 +AZURE,westcentralus,Standard_D4ads_v6,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:20.805727 +AZURE,westcentralus,Standard_D4as_v5,on_demand,NA,0.206,USD,Azure Retail Prices API,2025-12-18T04:45:20.805654 +AZURE,westcentralus,Standard_D4as_v5,reserved_1y,NA,0.121804,USD,Azure Retail Prices API,2025-12-18T04:45:21.853533 +AZURE,westcentralus,Standard_D4as_v5,reserved_3y,NA,0.078425,USD,Azure Retail Prices API,2025-12-18T04:45:21.853536 +AZURE,westcentralus,Standard_D4as_v5,spot,NA,0.046062,USD,Azure Retail Prices API,2025-12-18T04:45:20.806575 +AZURE,westcentralus,Standard_D4d_v4,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:45:20.805576 +AZURE,westcentralus,Standard_D4d_v4,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:45:21.853497 +AZURE,westcentralus,Standard_D4d_v4,reserved_3y,NA,0.103044,USD,Azure Retail Prices API,2025-12-18T04:45:21.853500 +AZURE,westcentralus,Standard_D4d_v4,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:45:20.806421 +AZURE,westcentralus,Standard_D4ds_v4,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:45:20.807558 +AZURE,westcentralus,Standard_D4ds_v4,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:45:21.854796 +AZURE,westcentralus,Standard_D4ds_v4,reserved_3y,NA,0.103044,USD,Azure Retail Prices API,2025-12-18T04:45:21.854801 +AZURE,westcentralus,Standard_D4ds_v4,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:45:20.806837 +AZURE,westcentralus,Standard_D4ds_v5,on_demand,NA,0.271,USD,Azure Retail Prices API,2025-12-18T04:45:20.806259 +AZURE,westcentralus,Standard_D4ds_v5,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:45:21.853832 +AZURE,westcentralus,Standard_D4ds_v5,reserved_3y,NA,0.103044,USD,Azure Retail Prices API,2025-12-18T04:45:21.853834 +AZURE,westcentralus,Standard_D4ds_v5,spot,NA,0.050081,USD,Azure Retail Prices API,2025-12-18T04:45:20.806921 +AZURE,westcentralus,Standard_D4ds_v6,on_demand,NA,0.299,USD,Azure Retail Prices API,2025-12-18T04:45:20.807412 +AZURE,westcentralus,Standard_D4ds_v6,reserved_1y,NA,0.185388,USD,Azure Retail Prices API,2025-12-18T04:45:21.854600 +AZURE,westcentralus,Standard_D4ds_v6,reserved_3y,NA,0.116629,USD,Azure Retail Prices API,2025-12-18T04:45:21.854603 +AZURE,westcentralus,Standard_D4ds_v6,spot,NA,0.055255,USD,Azure Retail Prices API,2025-12-18T04:45:20.806692 +AZURE,westcentralus,Standard_D4pds_v6,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:20.806983 +AZURE,westcentralus,Standard_D4pds_v6,reserved_1y,NA,0.130023,USD,Azure Retail Prices API,2025-12-18T04:45:21.854457 +AZURE,westcentralus,Standard_D4pds_v6,reserved_3y,NA,0.083752,USD,Azure Retail Prices API,2025-12-18T04:45:21.854460 +AZURE,westcentralus,Standard_D4pds_v6,spot,NA,0.040656,USD,Azure Retail Prices API,2025-12-18T04:45:20.805992 +AZURE,westcentralus,Standard_D4ps_v6,on_demand,NA,0.168,USD,Azure Retail Prices API,2025-12-18T04:45:20.806865 +AZURE,westcentralus,Standard_D4ps_v6,reserved_1y,NA,0.099315,USD,Azure Retail Prices API,2025-12-18T04:45:21.854292 +AZURE,westcentralus,Standard_D4ps_v6,reserved_3y,NA,0.064003,USD,Azure Retail Prices API,2025-12-18T04:45:21.854295 +AZURE,westcentralus,Standard_D4ps_v6,spot,NA,0.031046,USD,Azure Retail Prices API,2025-12-18T04:45:20.806580 +AZURE,westcentralus,Standard_D4s_v3,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:20.806884 +AZURE,westcentralus,Standard_D4s_v3,reserved_1y,NA,0.138699,USD,Azure Retail Prices API,2025-12-18T04:45:21.854325 +AZURE,westcentralus,Standard_D4s_v3,reserved_3y,NA,0.090221,USD,Azure Retail Prices API,2025-12-18T04:45:21.854329 +AZURE,westcentralus,Standard_D4s_v3,spot,NA,0.040656,USD,Azure Retail Prices API,2025-12-18T04:45:20.806353 +AZURE,westcentralus,Standard_D4s_v4,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:20.805675 +AZURE,westcentralus,Standard_D4s_v4,reserved_1y,NA,0.135959,USD,Azure Retail Prices API,2025-12-18T04:45:21.853539 +AZURE,westcentralus,Standard_D4s_v4,reserved_3y,NA,0.087557,USD,Azure Retail Prices API,2025-12-18T04:45:21.853542 +AZURE,westcentralus,Standard_D4s_v4,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:20.806567 +AZURE,westcentralus,Standard_D4s_v5,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:20.806887 +AZURE,westcentralus,Standard_D4s_v5,reserved_1y,NA,0.135959,USD,Azure Retail Prices API,2025-12-18T04:45:21.854336 +AZURE,westcentralus,Standard_D4s_v5,reserved_3y,NA,0.085236,USD,Azure Retail Prices API,2025-12-18T04:45:21.854341 +AZURE,westcentralus,Standard_D4s_v5,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:20.806205 +AZURE,westcentralus,Standard_D5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487142 +AZURE,westcentralus,Standard_D5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487156 +AZURE,westcentralus,Standard_D5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487163 +AZURE,westcentralus,Standard_D5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487149 +AZURE,westcentralus,Standard_D64_v3,on_demand,NA,3.52,USD,Azure Retail Prices API,2025-12-18T04:45:20.806980 +AZURE,westcentralus,Standard_D64_v3,reserved_1y,NA,2.220205,USD,Azure Retail Prices API,2025-12-18T04:45:21.854451 +AZURE,westcentralus,Standard_D64_v3,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:45:21.854454 +AZURE,westcentralus,Standard_D64_v3,spot,NA,0.650496,USD,Azure Retail Prices API,2025-12-18T04:45:20.806359 +AZURE,westcentralus,Standard_D64a_v4,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:45:20.806807 +AZURE,westcentralus,Standard_D64a_v4,reserved_1y,NA,2.211872,USD,Azure Retail Prices API,2025-12-18T04:45:21.854225 +AZURE,westcentralus,Standard_D64a_v4,reserved_3y,NA,1.474543,USD,Azure Retail Prices API,2025-12-18T04:45:21.854228 +AZURE,westcentralus,Standard_D64a_v4,spot,NA,0.82419,USD,Azure Retail Prices API,2025-12-18T04:45:20.805623 +AZURE,westcentralus,Standard_D64ads_v5,on_demand,NA,6.899,USD,Azure Retail Prices API,2025-12-18T04:45:20.806161 +AZURE,westcentralus,Standard_D64ads_v5,reserved_1y,NA,2.333562,USD,Azure Retail Prices API,2025-12-18T04:45:21.853945 +AZURE,westcentralus,Standard_D64ads_v5,reserved_3y,NA,1.502968,USD,Azure Retail Prices API,2025-12-18T04:45:21.853948 +AZURE,westcentralus,Standard_D64ads_v5,spot,NA,0.884338,USD,Azure Retail Prices API,2025-12-18T04:45:20.807356 +AZURE,westcentralus,Standard_D64ads_v6,on_demand,NA,4.371,USD,Azure Retail Prices API,2025-12-18T04:45:20.807438 +AZURE,westcentralus,Standard_D64ads_v6,reserved_1y,NA,2.578995,USD,Azure Retail Prices API,2025-12-18T04:45:21.854633 +AZURE,westcentralus,Standard_D64ads_v6,reserved_3y,NA,1.661073,USD,Azure Retail Prices API,2025-12-18T04:45:21.854636 +AZURE,westcentralus,Standard_D64ads_v6,spot,NA,0.807761,USD,Azure Retail Prices API,2025-12-18T04:45:20.806476 +AZURE,westcentralus,Standard_D64as_v4,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:45:20.806924 +AZURE,westcentralus,Standard_D64as_v4,reserved_1y,NA,2.211872,USD,Azure Retail Prices API,2025-12-18T04:45:21.854380 +AZURE,westcentralus,Standard_D64as_v4,reserved_3y,NA,1.474543,USD,Azure Retail Prices API,2025-12-18T04:45:21.854382 +AZURE,westcentralus,Standard_D64as_v4,spot,NA,0.82419,USD,Azure Retail Prices API,2025-12-18T04:45:20.806494 +AZURE,westcentralus,Standard_D64as_v5,on_demand,NA,6.246,USD,Azure Retail Prices API,2025-12-18T04:45:20.806511 +AZURE,westcentralus,Standard_D64as_v5,reserved_1y,NA,1.948402,USD,Azure Retail Prices API,2025-12-18T04:45:21.854806 +AZURE,westcentralus,Standard_D64as_v5,reserved_3y,NA,1.254909,USD,Azure Retail Prices API,2025-12-18T04:45:21.854810 +AZURE,westcentralus,Standard_D64as_v5,spot,NA,0.738327,USD,Azure Retail Prices API,2025-12-18T04:45:20.807313 +AZURE,westcentralus,Standard_D64d_v4,on_demand,NA,4.339,USD,Azure Retail Prices API,2025-12-18T04:45:20.806362 +AZURE,westcentralus,Standard_D64d_v4,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:45:21.853896 +AZURE,westcentralus,Standard_D64d_v4,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:45:21.853898 +AZURE,westcentralus,Standard_D64d_v4,spot,NA,0.801847,USD,Azure Retail Prices API,2025-12-18T04:45:20.806871 +AZURE,westcentralus,Standard_D64ds_v4,on_demand,NA,4.339,USD,Azure Retail Prices API,2025-12-18T04:45:20.805608 +AZURE,westcentralus,Standard_D64ds_v4,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:45:21.853509 +AZURE,westcentralus,Standard_D64ds_v4,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:45:21.853512 +AZURE,westcentralus,Standard_D64ds_v4,spot,NA,0.801847,USD,Azure Retail Prices API,2025-12-18T04:45:20.806538 +AZURE,westcentralus,Standard_D64ds_v5,on_demand,NA,4.339,USD,Azure Retail Prices API,2025-12-18T04:45:20.807533 +AZURE,westcentralus,Standard_D64ds_v5,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:45:21.854748 +AZURE,westcentralus,Standard_D64ds_v5,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:45:21.854751 +AZURE,westcentralus,Standard_D64ds_v5,spot,NA,0.801847,USD,Azure Retail Prices API,2025-12-18T04:45:20.805928 +AZURE,westcentralus,Standard_D64ds_v6,on_demand,NA,4.784,USD,Azure Retail Prices API,2025-12-18T04:45:20.805912 +AZURE,westcentralus,Standard_D64ds_v6,reserved_1y,NA,2.966096,USD,Azure Retail Prices API,2025-12-18T04:45:21.853671 +AZURE,westcentralus,Standard_D64ds_v6,reserved_3y,NA,1.865753,USD,Azure Retail Prices API,2025-12-18T04:45:21.853674 +AZURE,westcentralus,Standard_D64ds_v6,spot,NA,0.884083,USD,Azure Retail Prices API,2025-12-18T04:45:20.806874 +AZURE,westcentralus,Standard_D64pds_v6,on_demand,NA,3.526,USD,Azure Retail Prices API,2025-12-18T04:45:20.806172 +AZURE,westcentralus,Standard_D64pds_v6,reserved_1y,NA,2.080594,USD,Azure Retail Prices API,2025-12-18T04:45:21.853779 +AZURE,westcentralus,Standard_D64pds_v6,reserved_3y,NA,1.34003,USD,Azure Retail Prices API,2025-12-18T04:45:21.853782 +AZURE,westcentralus,Standard_D64pds_v6,spot,NA,0.651605,USD,Azure Retail Prices API,2025-12-18T04:45:20.807582 +AZURE,westcentralus,Standard_D64ps_v6,on_demand,NA,2.694,USD,Azure Retail Prices API,2025-12-18T04:45:20.807332 +AZURE,westcentralus,Standard_D64ps_v6,reserved_1y,NA,1.589726,USD,Azure Retail Prices API,2025-12-18T04:45:21.854560 +AZURE,westcentralus,Standard_D64ps_v6,reserved_3y,NA,1.023858,USD,Azure Retail Prices API,2025-12-18T04:45:21.854563 +AZURE,westcentralus,Standard_D64ps_v6,spot,NA,0.497851,USD,Azure Retail Prices API,2025-12-18T04:45:20.807393 +AZURE,westcentralus,Standard_D64s_v3,on_demand,NA,3.52,USD,Azure Retail Prices API,2025-12-18T04:45:20.806878 +AZURE,westcentralus,Standard_D64s_v3,reserved_1y,NA,2.220205,USD,Azure Retail Prices API,2025-12-18T04:45:21.854304 +AZURE,westcentralus,Standard_D64s_v3,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:45:21.854307 +AZURE,westcentralus,Standard_D64s_v3,spot,NA,0.650496,USD,Azure Retail Prices API,2025-12-18T04:45:20.807492 +AZURE,westcentralus,Standard_D64s_v4,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:45:20.807522 +AZURE,westcentralus,Standard_D64s_v4,reserved_1y,NA,2.175,USD,Azure Retail Prices API,2025-12-18T04:45:21.854736 +AZURE,westcentralus,Standard_D64s_v4,reserved_3y,NA,1.400837,USD,Azure Retail Prices API,2025-12-18T04:45:21.854739 +AZURE,westcentralus,Standard_D64s_v4,spot,NA,0.681173,USD,Azure Retail Prices API,2025-12-18T04:45:20.806087 +AZURE,westcentralus,Standard_D64s_v5,on_demand,NA,3.686,USD,Azure Retail Prices API,2025-12-18T04:45:20.806824 +AZURE,westcentralus,Standard_D64s_v5,reserved_1y,NA,2.175,USD,Azure Retail Prices API,2025-12-18T04:45:21.854253 +AZURE,westcentralus,Standard_D64s_v5,reserved_3y,NA,1.363965,USD,Azure Retail Prices API,2025-12-18T04:45:21.854255 +AZURE,westcentralus,Standard_D64s_v5,spot,NA,0.681173,USD,Azure Retail Prices API,2025-12-18T04:45:20.805508 +AZURE,westcentralus,Standard_D8_v3,on_demand,NA,0.44,USD,Azure Retail Prices API,2025-12-18T04:45:20.805706 +AZURE,westcentralus,Standard_D8_v3,reserved_1y,NA,0.277511,USD,Azure Retail Prices API,2025-12-18T04:45:21.853556 +AZURE,westcentralus,Standard_D8_v3,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:45:21.853560 +AZURE,westcentralus,Standard_D8_v3,spot,NA,0.081312,USD,Azure Retail Prices API,2025-12-18T04:45:20.805560 +AZURE,westcentralus,Standard_D8a_v4,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:45:20.807588 +AZURE,westcentralus,Standard_D8a_v4,reserved_1y,NA,0.276484,USD,Azure Retail Prices API,2025-12-18T04:45:21.854852 +AZURE,westcentralus,Standard_D8a_v4,reserved_3y,NA,0.184323,USD,Azure Retail Prices API,2025-12-18T04:45:21.854855 +AZURE,westcentralus,Standard_D8a_v4,spot,NA,0.10308,USD,Azure Retail Prices API,2025-12-18T04:45:20.806146 +AZURE,westcentralus,Standard_D8ads_v5,on_demand,NA,0.494,USD,Azure Retail Prices API,2025-12-18T04:45:20.806228 +AZURE,westcentralus,Standard_D8ads_v5,reserved_1y,NA,0.291667,USD,Azure Retail Prices API,2025-12-18T04:45:21.853808 +AZURE,westcentralus,Standard_D8ads_v5,reserved_3y,NA,0.187861,USD,Azure Retail Prices API,2025-12-18T04:45:21.853811 +AZURE,westcentralus,Standard_D8ads_v5,spot,NA,0.110458,USD,Azure Retail Prices API,2025-12-18T04:45:20.806723 +AZURE,westcentralus,Standard_D8ads_v6,on_demand,NA,0.546,USD,Azure Retail Prices API,2025-12-18T04:45:20.806529 +AZURE,westcentralus,Standard_D8ads_v6,reserved_1y,NA,0.322374,USD,Azure Retail Prices API,2025-12-18T04:45:21.854017 +AZURE,westcentralus,Standard_D8ads_v6,reserved_3y,NA,0.207648,USD,Azure Retail Prices API,2025-12-18T04:45:21.854020 +AZURE,westcentralus,Standard_D8ads_v6,spot,NA,0.100901,USD,Azure Retail Prices API,2025-12-18T04:45:20.805618 +AZURE,westcentralus,Standard_D8as_v4,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:45:20.805722 +AZURE,westcentralus,Standard_D8as_v4,reserved_1y,NA,0.276484,USD,Azure Retail Prices API,2025-12-18T04:45:21.853563 +AZURE,westcentralus,Standard_D8as_v4,reserved_3y,NA,0.184323,USD,Azure Retail Prices API,2025-12-18T04:45:21.853565 +AZURE,westcentralus,Standard_D8as_v4,spot,NA,0.10308,USD,Azure Retail Prices API,2025-12-18T04:45:20.806704 +AZURE,westcentralus,Standard_D8as_v5,on_demand,NA,0.413,USD,Azure Retail Prices API,2025-12-18T04:45:20.805486 +AZURE,westcentralus,Standard_D8as_v5,reserved_1y,NA,0.243607,USD,Azure Retail Prices API,2025-12-18T04:45:21.853417 +AZURE,westcentralus,Standard_D8as_v5,reserved_3y,NA,0.156849,USD,Azure Retail Prices API,2025-12-18T04:45:21.853421 +AZURE,westcentralus,Standard_D8as_v5,spot,NA,0.092347,USD,Azure Retail Prices API,2025-12-18T04:45:20.805870 +AZURE,westcentralus,Standard_D8d_v4,on_demand,NA,0.542,USD,Azure Retail Prices API,2025-12-18T04:45:20.806948 +AZURE,westcentralus,Standard_D8d_v4,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:45:21.854413 +AZURE,westcentralus,Standard_D8d_v4,reserved_3y,NA,0.206126,USD,Azure Retail Prices API,2025-12-18T04:45:21.854415 +AZURE,westcentralus,Standard_D8d_v4,spot,NA,0.100162,USD,Azure Retail Prices API,2025-12-18T04:45:20.806293 +AZURE,westcentralus,Standard_D8ds_v4,on_demand,NA,0.542,USD,Azure Retail Prices API,2025-12-18T04:45:20.807403 +AZURE,westcentralus,Standard_D8ds_v4,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:45:21.854589 +AZURE,westcentralus,Standard_D8ds_v4,reserved_3y,NA,0.206126,USD,Azure Retail Prices API,2025-12-18T04:45:21.854592 +AZURE,westcentralus,Standard_D8ds_v4,spot,NA,0.100162,USD,Azure Retail Prices API,2025-12-18T04:45:20.807319 +AZURE,westcentralus,Standard_D8ds_v5,on_demand,NA,0.542,USD,Azure Retail Prices API,2025-12-18T04:45:20.805855 +AZURE,westcentralus,Standard_D8ds_v5,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:45:21.853648 +AZURE,westcentralus,Standard_D8ds_v5,reserved_3y,NA,0.206126,USD,Azure Retail Prices API,2025-12-18T04:45:21.853651 +AZURE,westcentralus,Standard_D8ds_v5,spot,NA,0.100162,USD,Azure Retail Prices API,2025-12-18T04:45:20.806682 +AZURE,westcentralus,Standard_D8ds_v6,on_demand,NA,0.598,USD,Azure Retail Prices API,2025-12-18T04:45:20.807036 +AZURE,westcentralus,Standard_D8ds_v6,reserved_1y,NA,0.370776,USD,Azure Retail Prices API,2025-12-18T04:45:21.854497 +AZURE,westcentralus,Standard_D8ds_v6,reserved_3y,NA,0.233219,USD,Azure Retail Prices API,2025-12-18T04:45:21.854500 +AZURE,westcentralus,Standard_D8ds_v6,spot,NA,0.11051,USD,Azure Retail Prices API,2025-12-18T04:45:20.806520 +AZURE,westcentralus,Standard_D8pds_v6,on_demand,NA,0.441,USD,Azure Retail Prices API,2025-12-18T04:45:20.806371 +AZURE,westcentralus,Standard_D8pds_v6,reserved_1y,NA,0.260046,USD,Azure Retail Prices API,2025-12-18T04:45:21.853907 +AZURE,westcentralus,Standard_D8pds_v6,reserved_3y,NA,0.167504,USD,Azure Retail Prices API,2025-12-18T04:45:21.853910 +AZURE,westcentralus,Standard_D8pds_v6,spot,NA,0.081497,USD,Azure Retail Prices API,2025-12-18T04:45:20.807022 +AZURE,westcentralus,Standard_D8ps_v6,on_demand,NA,0.337,USD,Azure Retail Prices API,2025-12-18T04:45:20.807477 +AZURE,westcentralus,Standard_D8ps_v6,reserved_1y,NA,0.198744,USD,Azure Retail Prices API,2025-12-18T04:45:21.854701 +AZURE,westcentralus,Standard_D8ps_v6,reserved_3y,NA,0.127968,USD,Azure Retail Prices API,2025-12-18T04:45:21.854704 +AZURE,westcentralus,Standard_D8ps_v6,spot,NA,0.062278,USD,Azure Retail Prices API,2025-12-18T04:45:20.806390 +AZURE,westcentralus,Standard_D8s_v3,on_demand,NA,0.44,USD,Azure Retail Prices API,2025-12-18T04:45:20.805545 +AZURE,westcentralus,Standard_D8s_v3,reserved_1y,NA,0.277511,USD,Azure Retail Prices API,2025-12-18T04:45:21.853479 +AZURE,westcentralus,Standard_D8s_v3,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:45:21.853482 +AZURE,westcentralus,Standard_D8s_v3,spot,NA,0.081312,USD,Azure Retail Prices API,2025-12-18T04:45:20.807386 +AZURE,westcentralus,Standard_D8s_v4,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:45:20.807418 +AZURE,westcentralus,Standard_D8s_v4,reserved_1y,NA,0.271918,USD,Azure Retail Prices API,2025-12-18T04:45:21.854606 +AZURE,westcentralus,Standard_D8s_v4,reserved_3y,NA,0.175114,USD,Azure Retail Prices API,2025-12-18T04:45:21.854608 +AZURE,westcentralus,Standard_D8s_v4,spot,NA,0.085193,USD,Azure Retail Prices API,2025-12-18T04:45:20.806330 +AZURE,westcentralus,Standard_D8s_v5,on_demand,NA,0.461,USD,Azure Retail Prices API,2025-12-18T04:45:20.806514 +AZURE,westcentralus,Standard_D8s_v5,reserved_1y,NA,0.271918,USD,Azure Retail Prices API,2025-12-18T04:45:21.853994 +AZURE,westcentralus,Standard_D8s_v5,reserved_3y,NA,0.17051,USD,Azure Retail Prices API,2025-12-18T04:45:21.853997 +AZURE,westcentralus,Standard_D8s_v5,spot,NA,0.085193,USD,Azure Retail Prices API,2025-12-18T04:45:20.806412 +AZURE,westcentralus,Standard_D96a_v4,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:20.806374 +AZURE,westcentralus,Standard_D96a_v4,reserved_1y,NA,3.317808,USD,Azure Retail Prices API,2025-12-18T04:45:21.853913 +AZURE,westcentralus,Standard_D96a_v4,reserved_3y,NA,2.211834,USD,Azure Retail Prices API,2025-12-18T04:45:21.853915 +AZURE,westcentralus,Standard_D96a_v4,spot,NA,1.236508,USD,Azure Retail Prices API,2025-12-18T04:45:20.807025 +AZURE,westcentralus,Standard_D96ads_v5,on_demand,NA,5.933,USD,Azure Retail Prices API,2025-12-18T04:45:20.806255 +AZURE,westcentralus,Standard_D96ads_v5,reserved_1y,NA,3.500342,USD,Azure Retail Prices API,2025-12-18T04:45:21.853826 +AZURE,westcentralus,Standard_D96ads_v5,reserved_3y,NA,2.254452,USD,Azure Retail Prices API,2025-12-18T04:45:21.853829 +AZURE,westcentralus,Standard_D96ads_v5,spot,NA,1.326619,USD,Azure Retail Prices API,2025-12-18T04:45:20.806940 +AZURE,westcentralus,Standard_D96ads_v6,on_demand,NA,6.557,USD,Azure Retail Prices API,2025-12-18T04:45:20.806619 +AZURE,westcentralus,Standard_D96ads_v6,reserved_1y,NA,3.868493,USD,Azure Retail Prices API,2025-12-18T04:45:21.854045 +AZURE,westcentralus,Standard_D96ads_v6,reserved_3y,NA,2.491591,USD,Azure Retail Prices API,2025-12-18T04:45:21.854048 +AZURE,westcentralus,Standard_D96ads_v6,spot,NA,1.211734,USD,Azure Retail Prices API,2025-12-18T04:45:20.807495 +AZURE,westcentralus,Standard_D96as_v4,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:20.805875 +AZURE,westcentralus,Standard_D96as_v4,reserved_1y,NA,3.317808,USD,Azure Retail Prices API,2025-12-18T04:45:21.853654 +AZURE,westcentralus,Standard_D96as_v4,reserved_3y,NA,2.211834,USD,Azure Retail Prices API,2025-12-18T04:45:21.853657 +AZURE,westcentralus,Standard_D96as_v4,spot,NA,1.236508,USD,Azure Retail Prices API,2025-12-18T04:45:20.806217 +AZURE,westcentralus,Standard_D96as_v5,on_demand,NA,4.954,USD,Azure Retail Prices API,2025-12-18T04:45:20.806667 +AZURE,westcentralus,Standard_D96as_v5,reserved_1y,NA,2.922603,USD,Azure Retail Prices API,2025-12-18T04:45:21.854102 +AZURE,westcentralus,Standard_D96as_v5,reserved_3y,NA,1.882382,USD,Azure Retail Prices API,2025-12-18T04:45:21.854105 +AZURE,westcentralus,Standard_D96as_v5,spot,NA,1.107714,USD,Azure Retail Prices API,2025-12-18T04:45:20.806198 +AZURE,westcentralus,Standard_D96ds_v5,on_demand,NA,6.509,USD,Azure Retail Prices API,2025-12-18T04:45:20.806972 +AZURE,westcentralus,Standard_D96ds_v5,reserved_1y,NA,3.840183,USD,Azure Retail Prices API,2025-12-18T04:45:21.854434 +AZURE,westcentralus,Standard_D96ds_v5,reserved_3y,NA,2.473326,USD,Azure Retail Prices API,2025-12-18T04:45:21.854437 +AZURE,westcentralus,Standard_D96ds_v5,spot,NA,1.202863,USD,Azure Retail Prices API,2025-12-18T04:45:20.807415 +AZURE,westcentralus,Standard_D96ds_v6,on_demand,NA,7.176,USD,Azure Retail Prices API,2025-12-18T04:45:20.806895 +AZURE,westcentralus,Standard_D96ds_v6,reserved_1y,NA,4.449087,USD,Azure Retail Prices API,2025-12-18T04:45:21.854351 +AZURE,westcentralus,Standard_D96ds_v6,reserved_3y,NA,2.79863,USD,Azure Retail Prices API,2025-12-18T04:45:21.854354 +AZURE,westcentralus,Standard_D96ds_v6,spot,NA,1.326125,USD,Azure Retail Prices API,2025-12-18T04:45:20.806859 +AZURE,westcentralus,Standard_D96pds_v6,on_demand,NA,5.29,USD,Azure Retail Prices API,2025-12-18T04:45:20.807447 +AZURE,westcentralus,Standard_D96pds_v6,reserved_1y,NA,3.12089,USD,Azure Retail Prices API,2025-12-18T04:45:21.854645 +AZURE,westcentralus,Standard_D96pds_v6,reserved_3y,NA,2.010046,USD,Azure Retail Prices API,2025-12-18T04:45:21.854647 +AZURE,westcentralus,Standard_D96pds_v6,spot,NA,0.977592,USD,Azure Retail Prices API,2025-12-18T04:45:20.806634 +AZURE,westcentralus,Standard_D96ps_v6,on_demand,NA,4.042,USD,Azure Retail Prices API,2025-12-18T04:45:20.805529 +AZURE,westcentralus,Standard_D96ps_v6,reserved_1y,NA,2.384589,USD,Azure Retail Prices API,2025-12-18T04:45:21.853467 +AZURE,westcentralus,Standard_D96ps_v6,reserved_3y,NA,1.535807,USD,Azure Retail Prices API,2025-12-18T04:45:21.853470 +AZURE,westcentralus,Standard_D96ps_v6,spot,NA,0.746962,USD,Azure Retail Prices API,2025-12-18T04:45:20.806603 +AZURE,westcentralus,Standard_D96s_v5,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:20.806652 +AZURE,westcentralus,Standard_D96s_v5,reserved_1y,NA,3.262443,USD,Azure Retail Prices API,2025-12-18T04:45:21.854086 +AZURE,westcentralus,Standard_D96s_v5,reserved_3y,NA,2.045967,USD,Azure Retail Prices API,2025-12-18T04:45:21.854088 +AZURE,westcentralus,Standard_D96s_v5,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:45:20.807444 +AZURE,westcentralus,Standard_DC16ads_v6,on_demand,NA,1.093,USD,Azure Retail Prices API,2025-12-18T04:45:20.806907 +AZURE,westcentralus,Standard_DC16ads_v6,reserved_1y,NA,0.644749,USD,Azure Retail Prices API,2025-12-18T04:45:21.854369 +AZURE,westcentralus,Standard_DC16ads_v6,reserved_3y,NA,0.415259,USD,Azure Retail Prices API,2025-12-18T04:45:21.854372 +AZURE,westcentralus,Standard_DC16ads_v6,spot,NA,0.201986,USD,Azure Retail Prices API,2025-12-18T04:45:20.806819 +AZURE,westcentralus,Standard_DC2ads_v6,on_demand,NA,0.137,USD,Azure Retail Prices API,2025-12-18T04:45:20.805459 +AZURE,westcentralus,Standard_DC2ads_v6,reserved_1y,NA,0.080594,USD,Azure Retail Prices API,2025-12-18T04:45:21.853399 +AZURE,westcentralus,Standard_DC2ads_v6,reserved_3y,NA,0.051903,USD,Azure Retail Prices API,2025-12-18T04:45:21.853402 +AZURE,westcentralus,Standard_DC2ads_v6,spot,NA,0.025318,USD,Azure Retail Prices API,2025-12-18T04:45:20.807591 +AZURE,westcentralus,Standard_DC32ads_v6,on_demand,NA,2.186,USD,Azure Retail Prices API,2025-12-18T04:45:20.806784 +AZURE,westcentralus,Standard_DC32ads_v6,reserved_1y,NA,1.289498,USD,Azure Retail Prices API,2025-12-18T04:45:21.854204 +AZURE,westcentralus,Standard_DC32ads_v6,reserved_3y,NA,0.830518,USD,Azure Retail Prices API,2025-12-18T04:45:21.854207 +AZURE,westcentralus,Standard_DC32ads_v6,spot,NA,0.403973,USD,Azure Retail Prices API,2025-12-18T04:45:20.806499 +AZURE,westcentralus,Standard_DC48ads_v6,on_demand,NA,3.278,USD,Azure Retail Prices API,2025-12-18T04:45:20.807428 +AZURE,westcentralus,Standard_DC48ads_v6,reserved_1y,NA,1.934247,USD,Azure Retail Prices API,2025-12-18T04:45:21.854617 +AZURE,westcentralus,Standard_DC48ads_v6,reserved_3y,NA,1.245776,USD,Azure Retail Prices API,2025-12-18T04:45:21.854620 +AZURE,westcentralus,Standard_DC48ads_v6,spot,NA,0.605774,USD,Azure Retail Prices API,2025-12-18T04:45:20.806593 +AZURE,westcentralus,Standard_DC4ads_v6,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:45:20.806736 +AZURE,westcentralus,Standard_DC4ads_v6,reserved_1y,NA,0.161187,USD,Azure Retail Prices API,2025-12-18T04:45:21.854154 +AZURE,westcentralus,Standard_DC4ads_v6,reserved_3y,NA,0.103805,USD,Azure Retail Prices API,2025-12-18T04:45:21.854156 +AZURE,westcentralus,Standard_DC4ads_v6,spot,NA,0.05045,USD,Azure Retail Prices API,2025-12-18T04:45:20.806008 +AZURE,westcentralus,Standard_DC64ads_v6,on_demand,NA,4.371,USD,Azure Retail Prices API,2025-12-18T04:45:20.805970 +AZURE,westcentralus,Standard_DC64ads_v6,reserved_1y,NA,2.578995,USD,Azure Retail Prices API,2025-12-18T04:45:21.853690 +AZURE,westcentralus,Standard_DC64ads_v6,reserved_3y,NA,1.661073,USD,Azure Retail Prices API,2025-12-18T04:45:21.853692 +AZURE,westcentralus,Standard_DC64ads_v6,spot,NA,0.807761,USD,Azure Retail Prices API,2025-12-18T04:45:20.805944 +AZURE,westcentralus,Standard_DC8ads_v6,on_demand,NA,0.546,USD,Azure Retail Prices API,2025-12-18T04:45:20.806394 +AZURE,westcentralus,Standard_DC8ads_v6,reserved_1y,NA,0.322374,USD,Azure Retail Prices API,2025-12-18T04:45:21.853929 +AZURE,westcentralus,Standard_DC8ads_v6,reserved_3y,NA,0.207648,USD,Azure Retail Prices API,2025-12-18T04:45:21.853932 +AZURE,westcentralus,Standard_DC8ads_v6,spot,NA,0.100901,USD,Azure Retail Prices API,2025-12-18T04:45:20.806418 +AZURE,westcentralus,Standard_DC96ads_v6,on_demand,NA,6.557,USD,Azure Retail Prices API,2025-12-18T04:45:20.806211 +AZURE,westcentralus,Standard_DC96ads_v6,reserved_1y,NA,3.868493,USD,Azure Retail Prices API,2025-12-18T04:45:21.853794 +AZURE,westcentralus,Standard_DC96ads_v6,reserved_3y,NA,2.491591,USD,Azure Retail Prices API,2025-12-18T04:45:21.853798 +AZURE,westcentralus,Standard_DC96ads_v6,spot,NA,1.211734,USD,Azure Retail Prices API,2025-12-18T04:45:20.805923 +AZURE,westcentralus,Standard_DS12_v2,on_demand,NA,0.371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495233 +AZURE,westcentralus,Standard_DS12_v2,reserved_1y,NA,0.2226,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495242 +AZURE,westcentralus,Standard_DS12_v2,reserved_3y,NA,0.1484,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495246 +AZURE,westcentralus,Standard_DS12_v2,spot,NA,0.1113,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495237 +AZURE,westcentralus,Standard_DS13_v2,on_demand,NA,0.741,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496058 +AZURE,westcentralus,Standard_DS13_v2,reserved_1y,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496073 +AZURE,westcentralus,Standard_DS13_v2,reserved_3y,NA,0.2964,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496080 +AZURE,westcentralus,Standard_DS13_v2,spot,NA,0.2223,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496066 +AZURE,westcentralus,Standard_DS14_v2,on_demand,NA,1.482,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496859 +AZURE,westcentralus,Standard_DS14_v2,reserved_1y,NA,0.8892,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496869 +AZURE,westcentralus,Standard_DS14_v2,reserved_3y,NA,0.5928,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496873 +AZURE,westcentralus,Standard_DS14_v2,spot,NA,0.4446,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496865 +AZURE,westcentralus,Standard_DS15_v2,on_demand,NA,1.853,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497745 +AZURE,westcentralus,Standard_DS15_v2,reserved_1y,NA,1.1118,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497759 +AZURE,westcentralus,Standard_DS15_v2,reserved_3y,NA,0.7412,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497764 +AZURE,westcentralus,Standard_DS15_v2,spot,NA,0.5559,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497751 +AZURE,westcentralus,Standard_DS1_v2,on_demand,NA,0.073,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491587 +AZURE,westcentralus,Standard_DS1_v2,reserved_1y,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491595 +AZURE,westcentralus,Standard_DS1_v2,reserved_3y,NA,0.0292,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491599 +AZURE,westcentralus,Standard_DS1_v2,spot,NA,0.0219,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491591 +AZURE,westcentralus,Standard_DS2_v2,on_demand,NA,0.146,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492332 +AZURE,westcentralus,Standard_DS2_v2,reserved_1y,NA,0.0876,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492341 +AZURE,westcentralus,Standard_DS2_v2,reserved_3y,NA,0.0584,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492345 +AZURE,westcentralus,Standard_DS2_v2,spot,NA,0.0438,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492337 +AZURE,westcentralus,Standard_DS3_v2,on_demand,NA,0.293,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493024 +AZURE,westcentralus,Standard_DS3_v2,reserved_1y,NA,0.1758,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493032 +AZURE,westcentralus,Standard_DS3_v2,reserved_3y,NA,0.1172,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493036 +AZURE,westcentralus,Standard_DS3_v2,spot,NA,0.0879,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493028 +AZURE,westcentralus,Standard_DS4_v2,on_demand,NA,0.585,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493768 +AZURE,westcentralus,Standard_DS4_v2,reserved_1y,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493776 +AZURE,westcentralus,Standard_DS4_v2,reserved_3y,NA,0.234,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493780 +AZURE,westcentralus,Standard_DS4_v2,spot,NA,0.1755,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493772 +AZURE,westcentralus,Standard_DS5_v2,on_demand,NA,1.17,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494482 +AZURE,westcentralus,Standard_DS5_v2,reserved_1y,NA,0.702,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494490 +AZURE,westcentralus,Standard_DS5_v2,reserved_3y,NA,0.468,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494494 +AZURE,westcentralus,Standard_DS5_v2,spot,NA,0.351,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494486 +AZURE,westcentralus,Standard_E128ds_v6,on_demand,NA,12.558,USD,Azure Retail Prices API,2025-12-18T04:45:20.806750 +AZURE,westcentralus,Standard_E128ds_v6,reserved_1y,NA,7.785959,USD,Azure Retail Prices API,2025-12-18T04:45:21.854177 +AZURE,westcentralus,Standard_E128ds_v6,reserved_3y,NA,4.897641,USD,Azure Retail Prices API,2025-12-18T04:45:21.854179 +AZURE,westcentralus,Standard_E128ds_v6,spot,NA,2.320718,USD,Azure Retail Prices API,2025-12-18T04:45:20.806588 +AZURE,westcentralus,Standard_E16_v3,on_demand,NA,1.166,USD,Azure Retail Prices API,2025-12-18T04:45:20.806827 +AZURE,westcentralus,Standard_E16_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:45:21.854258 +AZURE,westcentralus,Standard_E16_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:45:21.854261 +AZURE,westcentralus,Standard_E16_v3,spot,NA,0.215477,USD,Azure Retail Prices API,2025-12-18T04:45:20.806039 +AZURE,westcentralus,Standard_E16a_v4,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:45:20.807450 +AZURE,westcentralus,Standard_E16a_v4,reserved_1y,NA,0.725799,USD,Azure Retail Prices API,2025-12-18T04:45:21.854651 +AZURE,westcentralus,Standard_E16a_v4,reserved_3y,NA,0.483828,USD,Azure Retail Prices API,2025-12-18T04:45:21.854653 +AZURE,westcentralus,Standard_E16a_v4,spot,NA,0.271403,USD,Azure Retail Prices API,2025-12-18T04:45:20.807555 +AZURE,westcentralus,Standard_E16ads_v5,on_demand,NA,1.994,USD,Azure Retail Prices API,2025-12-18T04:45:20.805565 +AZURE,westcentralus,Standard_E16ads_v5,reserved_1y,NA,0.742009,USD,Azure Retail Prices API,2025-12-18T04:45:21.854622 +AZURE,westcentralus,Standard_E16ads_v5,reserved_3y,NA,0.477892,USD,Azure Retail Prices API,2025-12-18T04:45:21.854625 +AZURE,westcentralus,Standard_E16ads_v5,spot,NA,0.290221,USD,Azure Retail Prices API,2025-12-18T04:45:20.805807 +AZURE,westcentralus,Standard_E16ads_v6,on_demand,NA,1.39,USD,Azure Retail Prices API,2025-12-18T04:45:20.806298 +AZURE,westcentralus,Standard_E16ads_v6,reserved_1y,NA,0.82032,USD,Azure Retail Prices API,2025-12-18T04:45:21.853849 +AZURE,westcentralus,Standard_E16ads_v6,reserved_3y,NA,0.528349,USD,Azure Retail Prices API,2025-12-18T04:45:21.853852 +AZURE,westcentralus,Standard_E16ads_v6,spot,NA,0.256872,USD,Azure Retail Prices API,2025-12-18T04:45:20.806473 +AZURE,westcentralus,Standard_E16as_v4,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:45:20.805502 +AZURE,westcentralus,Standard_E16as_v4,reserved_1y,NA,0.725799,USD,Azure Retail Prices API,2025-12-18T04:45:21.853440 +AZURE,westcentralus,Standard_E16as_v4,reserved_3y,NA,0.483828,USD,Azure Retail Prices API,2025-12-18T04:45:21.853445 +AZURE,westcentralus,Standard_E16as_v4,spot,NA,0.271403,USD,Azure Retail Prices API,2025-12-18T04:45:20.806965 +AZURE,westcentralus,Standard_E16as_v5,on_demand,NA,1.085,USD,Azure Retail Prices API,2025-12-18T04:45:20.805896 +AZURE,westcentralus,Standard_E16as_v5,reserved_1y,NA,0.640068,USD,Azure Retail Prices API,2025-12-18T04:45:21.853660 +AZURE,westcentralus,Standard_E16as_v5,reserved_3y,NA,0.412215,USD,Azure Retail Prices API,2025-12-18T04:45:21.853662 +AZURE,westcentralus,Standard_E16as_v5,spot,NA,0.25031,USD,Azure Retail Prices API,2025-12-18T04:45:20.807480 +AZURE,westcentralus,Standard_E16d_v4,on_demand,NA,1.382,USD,Azure Retail Prices API,2025-12-18T04:45:20.806846 +AZURE,westcentralus,Standard_E16d_v4,reserved_1y,NA,0.815639,USD,Azure Retail Prices API,2025-12-18T04:45:21.854275 +AZURE,westcentralus,Standard_E16d_v4,reserved_3y,NA,0.525304,USD,Azure Retail Prices API,2025-12-18T04:45:21.854278 +AZURE,westcentralus,Standard_E16d_v4,spot,NA,0.255394,USD,Azure Retail Prices API,2025-12-18T04:45:20.806614 +AZURE,westcentralus,Standard_E16ds_v4,on_demand,NA,1.382,USD,Azure Retail Prices API,2025-12-18T04:45:20.806969 +AZURE,westcentralus,Standard_E16ds_v4,reserved_1y,NA,0.815639,USD,Azure Retail Prices API,2025-12-18T04:45:21.854429 +AZURE,westcentralus,Standard_E16ds_v4,reserved_3y,NA,0.525304,USD,Azure Retail Prices API,2025-12-18T04:45:21.854431 +AZURE,westcentralus,Standard_E16ds_v4,spot,NA,0.255394,USD,Azure Retail Prices API,2025-12-18T04:45:20.807349 +AZURE,westcentralus,Standard_E16ds_v5,on_demand,NA,1.382,USD,Azure Retail Prices API,2025-12-18T04:45:20.806945 +AZURE,westcentralus,Standard_E16ds_v5,reserved_1y,NA,0.815639,USD,Azure Retail Prices API,2025-12-18T04:45:21.854407 +AZURE,westcentralus,Standard_E16ds_v5,reserved_3y,NA,0.525304,USD,Azure Retail Prices API,2025-12-18T04:45:21.854410 +AZURE,westcentralus,Standard_E16ds_v5,spot,NA,0.255394,USD,Azure Retail Prices API,2025-12-18T04:45:20.805603 +AZURE,westcentralus,Standard_E16ds_v6,on_demand,NA,1.57,USD,Azure Retail Prices API,2025-12-18T04:45:20.807441 +AZURE,westcentralus,Standard_E16ds_v6,reserved_1y,NA,0.973288,USD,Azure Retail Prices API,2025-12-18T04:45:21.854639 +AZURE,westcentralus,Standard_E16ds_v6,reserved_3y,NA,0.612215,USD,Azure Retail Prices API,2025-12-18T04:45:21.854642 +AZURE,westcentralus,Standard_E16ds_v6,spot,NA,0.290136,USD,Azure Retail Prices API,2025-12-18T04:45:20.805743 +AZURE,westcentralus,Standard_E16pds_v6,on_demand,NA,1.123,USD,Azure Retail Prices API,2025-12-18T04:45:20.807287 +AZURE,westcentralus,Standard_E16pds_v6,reserved_1y,NA,0.662671,USD,Azure Retail Prices API,2025-12-18T04:45:21.854531 +AZURE,westcentralus,Standard_E16pds_v6,reserved_3y,NA,0.426826,USD,Azure Retail Prices API,2025-12-18T04:45:21.854534 +AZURE,westcentralus,Standard_E16pds_v6,spot,NA,0.20753,USD,Azure Retail Prices API,2025-12-18T04:45:20.806377 +AZURE,westcentralus,Standard_E16ps_v6,on_demand,NA,0.885,USD,Azure Retail Prices API,2025-12-18T04:45:20.806756 +AZURE,westcentralus,Standard_E16ps_v6,reserved_1y,NA,0.522032,USD,Azure Retail Prices API,2025-12-18T04:45:21.854187 +AZURE,westcentralus,Standard_E16ps_v6,reserved_3y,NA,0.336225,USD,Azure Retail Prices API,2025-12-18T04:45:21.854190 +AZURE,westcentralus,Standard_E16ps_v6,spot,NA,0.163548,USD,Azure Retail Prices API,2025-12-18T04:45:20.805965 +AZURE,westcentralus,Standard_E16s_v3,on_demand,NA,1.166,USD,Azure Retail Prices API,2025-12-18T04:45:20.806714 +AZURE,westcentralus,Standard_E16s_v3,reserved_1y,NA,0.750799,USD,Azure Retail Prices API,2025-12-18T04:45:21.854132 +AZURE,westcentralus,Standard_E16s_v3,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:45:21.854135 +AZURE,westcentralus,Standard_E16s_v3,spot,NA,0.215477,USD,Azure Retail Prices API,2025-12-18T04:45:20.806141 +AZURE,westcentralus,Standard_E16s_v4,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:45:20.806479 +AZURE,westcentralus,Standard_E16s_v4,reserved_1y,NA,0.713699,USD,Azure Retail Prices API,2025-12-18T04:45:21.853978 +AZURE,westcentralus,Standard_E16s_v4,reserved_3y,NA,0.459665,USD,Azure Retail Prices API,2025-12-18T04:45:21.853981 +AZURE,westcentralus,Standard_E16s_v4,spot,NA,0.223608,USD,Azure Retail Prices API,2025-12-18T04:45:20.805822 +AZURE,westcentralus,Standard_E16s_v5,on_demand,NA,1.21,USD,Azure Retail Prices API,2025-12-18T04:45:20.807435 +AZURE,westcentralus,Standard_E16s_v5,reserved_1y,NA,0.713699,USD,Azure Retail Prices API,2025-12-18T04:45:21.854628 +AZURE,westcentralus,Standard_E16s_v5,reserved_3y,NA,0.447565,USD,Azure Retail Prices API,2025-12-18T04:45:21.854631 +AZURE,westcentralus,Standard_E16s_v5,spot,NA,0.223608,USD,Azure Retail Prices API,2025-12-18T04:45:20.805849 +AZURE,westcentralus,Standard_E20a_v4,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:45:20.805491 +AZURE,westcentralus,Standard_E20a_v4,reserved_1y,NA,0.907192,USD,Azure Retail Prices API,2025-12-18T04:45:21.853425 +AZURE,westcentralus,Standard_E20a_v4,reserved_3y,NA,0.604795,USD,Azure Retail Prices API,2025-12-18T04:45:21.853428 +AZURE,westcentralus,Standard_E20a_v4,spot,NA,0.339142,USD,Azure Retail Prices API,2025-12-18T04:45:20.805775 +AZURE,westcentralus,Standard_E20ads_v5,on_demand,NA,1.572,USD,Azure Retail Prices API,2025-12-18T04:45:20.807542 +AZURE,westcentralus,Standard_E20ads_v5,reserved_1y,NA,0.927511,USD,Azure Retail Prices API,2025-12-18T04:45:21.854766 +AZURE,westcentralus,Standard_E20ads_v5,reserved_3y,NA,0.597374,USD,Azure Retail Prices API,2025-12-18T04:45:21.854769 +AZURE,westcentralus,Standard_E20ads_v5,spot,NA,0.36266,USD,Azure Retail Prices API,2025-12-18T04:45:20.807055 +AZURE,westcentralus,Standard_E20ads_v6,on_demand,NA,1.738,USD,Azure Retail Prices API,2025-12-18T04:45:20.807458 +AZURE,westcentralus,Standard_E20ads_v6,reserved_1y,NA,1.025457,USD,Azure Retail Prices API,2025-12-18T04:45:21.854656 +AZURE,westcentralus,Standard_E20ads_v6,reserved_3y,NA,0.660426,USD,Azure Retail Prices API,2025-12-18T04:45:21.854659 +AZURE,westcentralus,Standard_E20ads_v6,spot,NA,0.321182,USD,Azure Retail Prices API,2025-12-18T04:45:20.805891 +AZURE,westcentralus,Standard_E20as_v4,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:45:20.806625 +AZURE,westcentralus,Standard_E20as_v4,reserved_1y,NA,0.907192,USD,Azure Retail Prices API,2025-12-18T04:45:21.854051 +AZURE,westcentralus,Standard_E20as_v4,reserved_3y,NA,0.604795,USD,Azure Retail Prices API,2025-12-18T04:45:21.854054 +AZURE,westcentralus,Standard_E20as_v4,spot,NA,0.339142,USD,Azure Retail Prices API,2025-12-18T04:45:20.806071 +AZURE,westcentralus,Standard_E20as_v5,on_demand,NA,2.276,USD,Azure Retail Prices API,2025-12-18T04:45:20.806778 +AZURE,westcentralus,Standard_E20as_v5,reserved_1y,NA,0.8,USD,Azure Retail Prices API,2025-12-18T04:45:21.854858 +AZURE,westcentralus,Standard_E20as_v5,reserved_3y,NA,0.515297,USD,Azure Retail Prices API,2025-12-18T04:45:21.854861 +AZURE,westcentralus,Standard_E20as_v5,spot,NA,0.312829,USD,Azure Retail Prices API,2025-12-18T04:45:20.806308 +AZURE,westcentralus,Standard_E20d_v4,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:45:20.805518 +AZURE,westcentralus,Standard_E20d_v4,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:45:21.853452 +AZURE,westcentralus,Standard_E20d_v4,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:45:21.853457 +AZURE,westcentralus,Standard_E20d_v4,spot,NA,0.319334,USD,Azure Retail Prices API,2025-12-18T04:45:20.806688 +AZURE,westcentralus,Standard_E20ds_v4,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:45:20.806934 +AZURE,westcentralus,Standard_E20ds_v4,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:45:21.854390 +AZURE,westcentralus,Standard_E20ds_v4,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:45:21.854393 +AZURE,westcentralus,Standard_E20ds_v4,spot,NA,0.319334,USD,Azure Retail Prices API,2025-12-18T04:45:20.807309 +AZURE,westcentralus,Standard_E20ds_v5,on_demand,NA,1.728,USD,Azure Retail Prices API,2025-12-18T04:45:20.805555 +AZURE,westcentralus,Standard_E20ds_v5,reserved_1y,NA,1.019521,USD,Azure Retail Prices API,2025-12-18T04:45:21.853486 +AZURE,westcentralus,Standard_E20ds_v5,reserved_3y,NA,0.656621,USD,Azure Retail Prices API,2025-12-18T04:45:21.853489 +AZURE,westcentralus,Standard_E20ds_v5,spot,NA,0.319334,USD,Azure Retail Prices API,2025-12-18T04:45:20.805598 +AZURE,westcentralus,Standard_E20ds_v6,on_demand,NA,1.962,USD,Azure Retail Prices API,2025-12-18T04:45:20.806937 +AZURE,westcentralus,Standard_E20ds_v6,reserved_1y,NA,1.216553,USD,Azure Retail Prices API,2025-12-18T04:45:21.854396 +AZURE,westcentralus,Standard_E20ds_v6,reserved_3y,NA,0.765259,USD,Azure Retail Prices API,2025-12-18T04:45:21.854399 +AZURE,westcentralus,Standard_E20ds_v6,spot,NA,0.362578,USD,Azure Retail Prices API,2025-12-18T04:45:20.806798 +AZURE,westcentralus,Standard_E20s_v4,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:45:20.806318 +AZURE,westcentralus,Standard_E20s_v4,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:45:21.853861 +AZURE,westcentralus,Standard_E20s_v4,reserved_3y,NA,0.574543,USD,Azure Retail Prices API,2025-12-18T04:45:21.853863 +AZURE,westcentralus,Standard_E20s_v4,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:45:20.807453 +AZURE,westcentralus,Standard_E20s_v5,on_demand,NA,1.512,USD,Azure Retail Prices API,2025-12-18T04:45:20.806898 +AZURE,westcentralus,Standard_E20s_v5,reserved_1y,NA,0.892123,USD,Azure Retail Prices API,2025-12-18T04:45:21.854357 +AZURE,westcentralus,Standard_E20s_v5,reserved_3y,NA,0.559437,USD,Azure Retail Prices API,2025-12-18T04:45:21.854360 +AZURE,westcentralus,Standard_E20s_v5,spot,NA,0.279418,USD,Azure Retail Prices API,2025-12-18T04:45:20.807472 +AZURE,westcentralus,Standard_E2_v3,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:45:20.806733 +AZURE,westcentralus,Standard_E2_v3,reserved_1y,NA,0.093836,USD,Azure Retail Prices API,2025-12-18T04:45:21.854148 +AZURE,westcentralus,Standard_E2_v3,reserved_3y,NA,0.05997,USD,Azure Retail Prices API,2025-12-18T04:45:21.854151 +AZURE,westcentralus,Standard_E2_v3,spot,NA,0.026981,USD,Azure Retail Prices API,2025-12-18T04:45:20.807536 +AZURE,westcentralus,Standard_E2ads_v6,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:45:20.806166 +AZURE,westcentralus,Standard_E2ads_v6,reserved_1y,NA,0.102511,USD,Azure Retail Prices API,2025-12-18T04:45:21.853773 +AZURE,westcentralus,Standard_E2ads_v6,reserved_3y,NA,0.066058,USD,Azure Retail Prices API,2025-12-18T04:45:21.853776 +AZURE,westcentralus,Standard_E2ads_v6,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:45:20.806055 +AZURE,westcentralus,Standard_E2ds_v5,on_demand,NA,0.173,USD,Azure Retail Prices API,2025-12-18T04:45:20.806523 +AZURE,westcentralus,Standard_E2ds_v5,reserved_1y,NA,0.101941,USD,Azure Retail Prices API,2025-12-18T04:45:21.854005 +AZURE,westcentralus,Standard_E2ds_v5,reserved_3y,NA,0.065677,USD,Azure Retail Prices API,2025-12-18T04:45:21.854009 +AZURE,westcentralus,Standard_E2ds_v5,spot,NA,0.03197,USD,Azure Retail Prices API,2025-12-18T04:45:20.806701 +AZURE,westcentralus,Standard_E2ds_v6,on_demand,NA,0.196,USD,Azure Retail Prices API,2025-12-18T04:45:20.806744 +AZURE,westcentralus,Standard_E2ds_v6,reserved_1y,NA,0.121689,USD,Azure Retail Prices API,2025-12-18T04:45:21.854165 +AZURE,westcentralus,Standard_E2ds_v6,reserved_3y,NA,0.076522,USD,Azure Retail Prices API,2025-12-18T04:45:21.854168 +AZURE,westcentralus,Standard_E2ds_v6,spot,NA,0.036221,USD,Azure Retail Prices API,2025-12-18T04:45:20.805833 +AZURE,westcentralus,Standard_E2pds_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:45:20.806517 +AZURE,westcentralus,Standard_E2pds_v6,reserved_1y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:45:21.854000 +AZURE,westcentralus,Standard_E2pds_v6,reserved_3y,NA,0.053349,USD,Azure Retail Prices API,2025-12-18T04:45:21.854003 +AZURE,westcentralus,Standard_E2pds_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:45:20.806488 +AZURE,westcentralus,Standard_E32_v3,on_demand,NA,2.333,USD,Azure Retail Prices API,2025-12-18T04:45:20.805470 +AZURE,westcentralus,Standard_E32_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:45:21.853405 +AZURE,westcentralus,Standard_E32_v3,reserved_3y,NA,0.960122,USD,Azure Retail Prices API,2025-12-18T04:45:21.853409 +AZURE,westcentralus,Standard_E32_v3,spot,NA,0.431138,USD,Azure Retail Prices API,2025-12-18T04:45:20.806673 +AZURE,westcentralus,Standard_E32a_v4,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:45:20.806753 +AZURE,westcentralus,Standard_E32a_v4,reserved_1y,NA,1.451484,USD,Azure Retail Prices API,2025-12-18T04:45:21.854182 +AZURE,westcentralus,Standard_E32a_v4,reserved_3y,NA,0.967694,USD,Azure Retail Prices API,2025-12-18T04:45:21.854185 +AZURE,westcentralus,Standard_E32a_v4,spot,NA,0.542582,USD,Azure Retail Prices API,2025-12-18T04:45:20.805633 +AZURE,westcentralus,Standard_E32ads_v5,on_demand,NA,2.515,USD,Azure Retail Prices API,2025-12-18T04:45:20.806327 +AZURE,westcentralus,Standard_E32ads_v5,reserved_1y,NA,1.484018,USD,Azure Retail Prices API,2025-12-18T04:45:21.853866 +AZURE,westcentralus,Standard_E32ads_v5,reserved_3y,NA,0.955784,USD,Azure Retail Prices API,2025-12-18T04:45:21.853870 +AZURE,westcentralus,Standard_E32ads_v5,spot,NA,0.58021,USD,Azure Retail Prices API,2025-12-18T04:45:20.806676 +AZURE,westcentralus,Standard_E32ads_v6,on_demand,NA,2.781,USD,Azure Retail Prices API,2025-12-18T04:45:20.805443 +AZURE,westcentralus,Standard_E32ads_v6,reserved_1y,NA,1.640639,USD,Azure Retail Prices API,2025-12-18T04:45:21.853379 +AZURE,westcentralus,Standard_E32ads_v6,reserved_3y,NA,1.056697,USD,Azure Retail Prices API,2025-12-18T04:45:21.853382 +AZURE,westcentralus,Standard_E32ads_v6,spot,NA,0.513929,USD,Azure Retail Prices API,2025-12-18T04:45:20.806849 +AZURE,westcentralus,Standard_E32as_v4,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:45:20.806356 +AZURE,westcentralus,Standard_E32as_v4,reserved_1y,NA,1.451484,USD,Azure Retail Prices API,2025-12-18T04:45:21.853890 +AZURE,westcentralus,Standard_E32as_v4,reserved_3y,NA,0.967694,USD,Azure Retail Prices API,2025-12-18T04:45:21.853893 +AZURE,westcentralus,Standard_E32as_v4,spot,NA,0.542582,USD,Azure Retail Prices API,2025-12-18T04:45:20.806193 +AZURE,westcentralus,Standard_E32as_v5,on_demand,NA,3.642,USD,Azure Retail Prices API,2025-12-18T04:45:20.806324 +AZURE,westcentralus,Standard_E32as_v5,reserved_1y,NA,1.280023,USD,Azure Retail Prices API,2025-12-18T04:45:21.854611 +AZURE,westcentralus,Standard_E32as_v5,reserved_3y,NA,0.824429,USD,Azure Retail Prices API,2025-12-18T04:45:21.854614 +AZURE,westcentralus,Standard_E32as_v5,spot,NA,0.500619,USD,Azure Retail Prices API,2025-12-18T04:45:20.806060 +AZURE,westcentralus,Standard_E32d_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:20.806646 +AZURE,westcentralus,Standard_E32d_v4,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:45:21.854074 +AZURE,westcentralus,Standard_E32d_v4,reserved_3y,NA,1.050609,USD,Azure Retail Prices API,2025-12-18T04:45:21.854077 +AZURE,westcentralus,Standard_E32d_v4,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:20.807405 +AZURE,westcentralus,Standard_E32ds_v4,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:20.805787 +AZURE,westcentralus,Standard_E32ds_v4,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:45:21.853609 +AZURE,westcentralus,Standard_E32ds_v4,reserved_3y,NA,1.050609,USD,Azure Retail Prices API,2025-12-18T04:45:21.853612 +AZURE,westcentralus,Standard_E32ds_v4,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:20.807044 +AZURE,westcentralus,Standard_E32ds_v5,on_demand,NA,2.765,USD,Azure Retail Prices API,2025-12-18T04:45:20.806461 +AZURE,westcentralus,Standard_E32ds_v5,reserved_1y,NA,1.631279,USD,Azure Retail Prices API,2025-12-18T04:45:21.853973 +AZURE,westcentralus,Standard_E32ds_v5,reserved_3y,NA,1.050609,USD,Azure Retail Prices API,2025-12-18T04:45:21.853975 +AZURE,westcentralus,Standard_E32ds_v5,spot,NA,0.510972,USD,Azure Retail Prices API,2025-12-18T04:45:20.806995 +AZURE,westcentralus,Standard_E32ds_v6,on_demand,NA,3.14,USD,Azure Retail Prices API,2025-12-18T04:45:20.805769 +AZURE,westcentralus,Standard_E32ds_v6,reserved_1y,NA,1.946461,USD,Azure Retail Prices API,2025-12-18T04:45:21.853597 +AZURE,westcentralus,Standard_E32ds_v6,reserved_3y,NA,1.224429,USD,Azure Retail Prices API,2025-12-18T04:45:21.853600 +AZURE,westcentralus,Standard_E32ds_v6,spot,NA,0.580272,USD,Azure Retail Prices API,2025-12-18T04:45:20.806600 +AZURE,westcentralus,Standard_E32pds_v6,on_demand,NA,2.246,USD,Azure Retail Prices API,2025-12-18T04:45:20.807579 +AZURE,westcentralus,Standard_E32pds_v6,reserved_1y,NA,1.325342,USD,Azure Retail Prices API,2025-12-18T04:45:21.854842 +AZURE,westcentralus,Standard_E32pds_v6,reserved_3y,NA,0.853615,USD,Azure Retail Prices API,2025-12-18T04:45:21.854846 +AZURE,westcentralus,Standard_E32pds_v6,spot,NA,0.415061,USD,Azure Retail Prices API,2025-12-18T04:45:20.806108 +AZURE,westcentralus,Standard_E32ps_v6,on_demand,NA,1.77,USD,Azure Retail Prices API,2025-12-18T04:45:20.806508 +AZURE,westcentralus,Standard_E32ps_v6,reserved_1y,NA,1.044064,USD,Azure Retail Prices API,2025-12-18T04:45:21.853989 +AZURE,westcentralus,Standard_E32ps_v6,reserved_3y,NA,0.672451,USD,Azure Retail Prices API,2025-12-18T04:45:21.853991 +AZURE,westcentralus,Standard_E32ps_v6,spot,NA,0.327096,USD,Azure Retail Prices API,2025-12-18T04:45:20.806076 +AZURE,westcentralus,Standard_E32s_v3,on_demand,NA,2.333,USD,Azure Retail Prices API,2025-12-18T04:45:20.806384 +AZURE,westcentralus,Standard_E32s_v3,reserved_1y,NA,1.501484,USD,Azure Retail Prices API,2025-12-18T04:45:21.853918 +AZURE,westcentralus,Standard_E32s_v3,reserved_3y,NA,0.960122,USD,Azure Retail Prices API,2025-12-18T04:45:21.853921 +AZURE,westcentralus,Standard_E32s_v3,spot,NA,0.431138,USD,Azure Retail Prices API,2025-12-18T04:45:20.807335 +AZURE,westcentralus,Standard_E32s_v4,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:45:20.806649 +AZURE,westcentralus,Standard_E32s_v4,reserved_1y,NA,1.427283,USD,Azure Retail Prices API,2025-12-18T04:45:21.854080 +AZURE,westcentralus,Standard_E32s_v4,reserved_3y,NA,0.919292,USD,Azure Retail Prices API,2025-12-18T04:45:21.854083 +AZURE,westcentralus,Standard_E32s_v4,spot,NA,0.447031,USD,Azure Retail Prices API,2025-12-18T04:45:20.807058 +AZURE,westcentralus,Standard_E32s_v5,on_demand,NA,2.419,USD,Azure Retail Prices API,2025-12-18T04:45:20.806526 +AZURE,westcentralus,Standard_E32s_v5,reserved_1y,NA,1.427283,USD,Azure Retail Prices API,2025-12-18T04:45:21.854011 +AZURE,westcentralus,Standard_E32s_v5,reserved_3y,NA,0.895091,USD,Azure Retail Prices API,2025-12-18T04:45:21.854014 +AZURE,westcentralus,Standard_E32s_v5,spot,NA,0.447031,USD,Azure Retail Prices API,2025-12-18T04:45:20.806113 +AZURE,westcentralus,Standard_E48a_v4,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:20.807474 +AZURE,westcentralus,Standard_E48a_v4,reserved_1y,NA,2.177283,USD,Azure Retail Prices API,2025-12-18T04:45:21.854695 +AZURE,westcentralus,Standard_E48a_v4,reserved_3y,NA,1.451522,USD,Azure Retail Prices API,2025-12-18T04:45:21.854698 +AZURE,westcentralus,Standard_E48a_v4,spot,NA,0.813985,USD,Azure Retail Prices API,2025-12-18T04:45:20.807019 +AZURE,westcentralus,Standard_E48ads_v5,on_demand,NA,5.981,USD,Azure Retail Prices API,2025-12-18T04:45:20.806739 +AZURE,westcentralus,Standard_E48ads_v5,reserved_1y,NA,2.225913,USD,Azure Retail Prices API,2025-12-18T04:45:21.854572 +AZURE,westcentralus,Standard_E48ads_v5,reserved_3y,NA,1.433676,USD,Azure Retail Prices API,2025-12-18T04:45:21.854574 +AZURE,westcentralus,Standard_E48ads_v5,spot,NA,0.870431,USD,Azure Retail Prices API,2025-12-18T04:45:20.805938 +AZURE,westcentralus,Standard_E48ads_v6,on_demand,NA,4.171,USD,Azure Retail Prices API,2025-12-18T04:45:20.807338 +AZURE,westcentralus,Standard_E48ads_v6,reserved_1y,NA,2.460959,USD,Azure Retail Prices API,2025-12-18T04:45:21.854566 +AZURE,westcentralus,Standard_E48ads_v6,reserved_3y,NA,1.585046,USD,Azure Retail Prices API,2025-12-18T04:45:21.854569 +AZURE,westcentralus,Standard_E48ads_v6,spot,NA,0.770801,USD,Azure Retail Prices API,2025-12-18T04:45:20.806066 +AZURE,westcentralus,Standard_E48as_v4,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:20.806151 +AZURE,westcentralus,Standard_E48as_v4,reserved_1y,NA,2.177283,USD,Azure Retail Prices API,2025-12-18T04:45:21.853762 +AZURE,westcentralus,Standard_E48as_v4,reserved_3y,NA,1.451522,USD,Azure Retail Prices API,2025-12-18T04:45:21.853765 +AZURE,westcentralus,Standard_E48as_v4,spot,NA,0.813985,USD,Azure Retail Prices API,2025-12-18T04:45:20.806505 +AZURE,westcentralus,Standard_E48as_v5,on_demand,NA,3.254,USD,Azure Retail Prices API,2025-12-18T04:45:20.806664 +AZURE,westcentralus,Standard_E48as_v5,reserved_1y,NA,1.920091,USD,Azure Retail Prices API,2025-12-18T04:45:21.854096 +AZURE,westcentralus,Standard_E48as_v5,reserved_3y,NA,1.236682,USD,Azure Retail Prices API,2025-12-18T04:45:21.854099 +AZURE,westcentralus,Standard_E48as_v5,spot,NA,0.750698,USD,Azure Retail Prices API,2025-12-18T04:45:20.806607 +AZURE,westcentralus,Standard_E48d_v4,on_demand,NA,4.147,USD,Azure Retail Prices API,2025-12-18T04:45:20.806720 +AZURE,westcentralus,Standard_E48d_v4,reserved_1y,NA,2.446804,USD,Azure Retail Prices API,2025-12-18T04:45:21.854143 +AZURE,westcentralus,Standard_E48d_v4,reserved_3y,NA,1.575951,USD,Azure Retail Prices API,2025-12-18T04:45:21.854145 +AZURE,westcentralus,Standard_E48d_v4,spot,NA,0.766366,USD,Azure Retail Prices API,2025-12-18T04:45:20.805949 +AZURE,westcentralus,Standard_E48ds_v4,on_demand,NA,4.147,USD,Azure Retail Prices API,2025-12-18T04:45:20.807033 +AZURE,westcentralus,Standard_E48ds_v4,reserved_1y,NA,2.446804,USD,Azure Retail Prices API,2025-12-18T04:45:21.854492 +AZURE,westcentralus,Standard_E48ds_v4,reserved_3y,NA,1.575951,USD,Azure Retail Prices API,2025-12-18T04:45:21.854494 +AZURE,westcentralus,Standard_E48ds_v4,spot,NA,0.766366,USD,Azure Retail Prices API,2025-12-18T04:45:20.806265 +AZURE,westcentralus,Standard_E48ds_v5,on_demand,NA,4.147,USD,Azure Retail Prices API,2025-12-18T04:45:20.805801 +AZURE,westcentralus,Standard_E48ds_v5,reserved_1y,NA,2.446804,USD,Azure Retail Prices API,2025-12-18T04:45:21.853620 +AZURE,westcentralus,Standard_E48ds_v5,reserved_3y,NA,1.575951,USD,Azure Retail Prices API,2025-12-18T04:45:21.853623 +AZURE,westcentralus,Standard_E48ds_v5,spot,NA,0.766366,USD,Azure Retail Prices API,2025-12-18T04:45:20.807006 +AZURE,westcentralus,Standard_E48ds_v6,on_demand,NA,4.709,USD,Azure Retail Prices API,2025-12-18T04:45:20.806904 +AZURE,westcentralus,Standard_E48ds_v6,reserved_1y,NA,2.919749,USD,Azure Retail Prices API,2025-12-18T04:45:21.854363 +AZURE,westcentralus,Standard_E48ds_v6,reserved_3y,NA,1.836606,USD,Azure Retail Prices API,2025-12-18T04:45:21.854366 +AZURE,westcentralus,Standard_E48ds_v6,spot,NA,0.870223,USD,Azure Retail Prices API,2025-12-18T04:45:20.806003 +AZURE,westcentralus,Standard_E48pds_v6,on_demand,NA,3.37,USD,Azure Retail Prices API,2025-12-18T04:45:20.806415 +AZURE,westcentralus,Standard_E48pds_v6,reserved_1y,NA,1.988014,USD,Azure Retail Prices API,2025-12-18T04:45:21.853940 +AZURE,westcentralus,Standard_E48pds_v6,reserved_3y,NA,1.280441,USD,Azure Retail Prices API,2025-12-18T04:45:21.853943 +AZURE,westcentralus,Standard_E48pds_v6,spot,NA,0.622776,USD,Azure Retail Prices API,2025-12-18T04:45:20.805886 +AZURE,westcentralus,Standard_E48ps_v6,on_demand,NA,2.654,USD,Azure Retail Prices API,2025-12-18T04:45:20.806119 +AZURE,westcentralus,Standard_E48ps_v6,reserved_1y,NA,1.566096,USD,Azure Retail Prices API,2025-12-18T04:45:21.853751 +AZURE,westcentralus,Standard_E48ps_v6,reserved_3y,NA,1.008676,USD,Azure Retail Prices API,2025-12-18T04:45:21.853754 +AZURE,westcentralus,Standard_E48ps_v6,spot,NA,0.490459,USD,Azure Retail Prices API,2025-12-18T04:45:20.806496 +AZURE,westcentralus,Standard_E48s_v4,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:20.806954 +AZURE,westcentralus,Standard_E48s_v4,reserved_1y,NA,2.140982,USD,Azure Retail Prices API,2025-12-18T04:45:21.854418 +AZURE,westcentralus,Standard_E48s_v4,reserved_3y,NA,1.378957,USD,Azure Retail Prices API,2025-12-18T04:45:21.854421 +AZURE,westcentralus,Standard_E48s_v4,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:45:20.806843 +AZURE,westcentralus,Standard_E48s_v5,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:45:20.805454 +AZURE,westcentralus,Standard_E48s_v5,reserved_1y,NA,2.140982,USD,Azure Retail Prices API,2025-12-18T04:45:21.853393 +AZURE,westcentralus,Standard_E48s_v5,reserved_3y,NA,1.342656,USD,Azure Retail Prices API,2025-12-18T04:45:21.853396 +AZURE,westcentralus,Standard_E48s_v5,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:45:20.806957 +AZURE,westcentralus,Standard_E4_v3,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:45:20.807528 +AZURE,westcentralus,Standard_E4_v3,reserved_1y,NA,0.187671,USD,Azure Retail Prices API,2025-12-18T04:45:21.854742 +AZURE,westcentralus,Standard_E4_v3,reserved_3y,NA,0.119977,USD,Azure Retail Prices API,2025-12-18T04:45:21.854745 +AZURE,westcentralus,Standard_E4_v3,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:45:20.805465 +AZURE,westcentralus,Standard_E4a_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:20.805497 +AZURE,westcentralus,Standard_E4a_v4,reserved_1y,NA,0.181393,USD,Azure Retail Prices API,2025-12-18T04:45:21.853431 +AZURE,westcentralus,Standard_E4a_v4,reserved_3y,NA,0.120967,USD,Azure Retail Prices API,2025-12-18T04:45:21.853435 +AZURE,westcentralus,Standard_E4a_v4,spot,NA,0.067739,USD,Azure Retail Prices API,2025-12-18T04:45:20.806708 +AZURE,westcentralus,Standard_E4ads_v5,on_demand,NA,0.498,USD,Azure Retail Prices API,2025-12-18T04:45:20.805613 +AZURE,westcentralus,Standard_E4ads_v5,reserved_1y,NA,0.185502,USD,Azure Retail Prices API,2025-12-18T04:45:21.854281 +AZURE,westcentralus,Standard_E4ads_v5,reserved_3y,NA,0.119482,USD,Azure Retail Prices API,2025-12-18T04:45:21.854284 +AZURE,westcentralus,Standard_E4ads_v5,spot,NA,0.07244,USD,Azure Retail Prices API,2025-12-18T04:45:20.806951 +AZURE,westcentralus,Standard_E4ads_v6,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:45:20.806433 +AZURE,westcentralus,Standard_E4ads_v6,reserved_1y,NA,0.205137,USD,Azure Retail Prices API,2025-12-18T04:45:21.853961 +AZURE,westcentralus,Standard_E4ads_v6,reserved_3y,NA,0.132078,USD,Azure Retail Prices API,2025-12-18T04:45:21.853964 +AZURE,westcentralus,Standard_E4ads_v6,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:45:20.806288 +AZURE,westcentralus,Standard_E4as_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:20.807570 +AZURE,westcentralus,Standard_E4as_v4,reserved_1y,NA,0.181393,USD,Azure Retail Prices API,2025-12-18T04:45:21.854824 +AZURE,westcentralus,Standard_E4as_v4,reserved_3y,NA,0.120967,USD,Azure Retail Prices API,2025-12-18T04:45:21.854828 +AZURE,westcentralus,Standard_E4as_v4,spot,NA,0.067739,USD,Azure Retail Prices API,2025-12-18T04:45:20.807530 +AZURE,westcentralus,Standard_E4as_v5,on_demand,NA,0.455,USD,Azure Retail Prices API,2025-12-18T04:45:20.806768 +AZURE,westcentralus,Standard_E4as_v5,reserved_1y,NA,0.160046,USD,Azure Retail Prices API,2025-12-18T04:45:21.854309 +AZURE,westcentralus,Standard_E4as_v5,reserved_3y,NA,0.103044,USD,Azure Retail Prices API,2025-12-18T04:45:21.854312 +AZURE,westcentralus,Standard_E4as_v5,spot,NA,0.06252,USD,Azure Retail Prices API,2025-12-18T04:45:20.805431 +AZURE,westcentralus,Standard_E4d_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:20.806747 +AZURE,westcentralus,Standard_E4d_v4,reserved_1y,NA,0.203881,USD,Azure Retail Prices API,2025-12-18T04:45:21.854170 +AZURE,westcentralus,Standard_E4d_v4,reserved_3y,NA,0.131317,USD,Azure Retail Prices API,2025-12-18T04:45:21.854174 +AZURE,westcentralus,Standard_E4d_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:20.806029 +AZURE,westcentralus,Standard_E4ds_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:20.807014 +AZURE,westcentralus,Standard_E4ds_v4,reserved_1y,NA,0.203881,USD,Azure Retail Prices API,2025-12-18T04:45:21.854480 +AZURE,westcentralus,Standard_E4ds_v4,reserved_3y,NA,0.131317,USD,Azure Retail Prices API,2025-12-18T04:45:21.854483 +AZURE,westcentralus,Standard_E4ds_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:20.806456 +AZURE,westcentralus,Standard_E4ds_v5,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:20.806222 +AZURE,westcentralus,Standard_E4ds_v5,reserved_1y,NA,0.203881,USD,Azure Retail Prices API,2025-12-18T04:45:21.853801 +AZURE,westcentralus,Standard_E4ds_v5,reserved_3y,NA,0.131317,USD,Azure Retail Prices API,2025-12-18T04:45:21.853805 +AZURE,westcentralus,Standard_E4ds_v5,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:20.806927 +AZURE,westcentralus,Standard_E4ds_v6,on_demand,NA,0.392,USD,Azure Retail Prices API,2025-12-18T04:45:20.807294 +AZURE,westcentralus,Standard_E4ds_v6,reserved_1y,NA,0.243265,USD,Azure Retail Prices API,2025-12-18T04:45:21.854537 +AZURE,westcentralus,Standard_E4ds_v6,reserved_3y,NA,0.153044,USD,Azure Retail Prices API,2025-12-18T04:45:21.854539 +AZURE,westcentralus,Standard_E4ds_v6,spot,NA,0.072442,USD,Azure Retail Prices API,2025-12-18T04:45:20.807489 +AZURE,westcentralus,Standard_E4pds_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:45:20.807000 +AZURE,westcentralus,Standard_E4pds_v6,reserved_1y,NA,0.165639,USD,Azure Retail Prices API,2025-12-18T04:45:21.854475 +AZURE,westcentralus,Standard_E4pds_v6,reserved_3y,NA,0.106697,USD,Azure Retail Prices API,2025-12-18T04:45:21.854477 +AZURE,westcentralus,Standard_E4pds_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:45:20.806959 +AZURE,westcentralus,Standard_E4ps_v6,on_demand,NA,0.221,USD,Azure Retail Prices API,2025-12-18T04:45:20.807039 +AZURE,westcentralus,Standard_E4ps_v6,reserved_1y,NA,0.130479,USD,Azure Retail Prices API,2025-12-18T04:45:21.854504 +AZURE,westcentralus,Standard_E4ps_v6,reserved_3y,NA,0.084056,USD,Azure Retail Prices API,2025-12-18T04:45:21.854510 +AZURE,westcentralus,Standard_E4ps_v6,spot,NA,0.040841,USD,Azure Retail Prices API,2025-12-18T04:45:20.805481 +AZURE,westcentralus,Standard_E4s_v4,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:20.805437 +AZURE,westcentralus,Standard_E4s_v4,reserved_1y,NA,0.178425,USD,Azure Retail Prices API,2025-12-18T04:45:21.853372 +AZURE,westcentralus,Standard_E4s_v4,reserved_3y,NA,0.114916,USD,Azure Retail Prices API,2025-12-18T04:45:21.853376 +AZURE,westcentralus,Standard_E4s_v4,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:45:20.806406 +AZURE,westcentralus,Standard_E4s_v5,on_demand,NA,0.302,USD,Azure Retail Prices API,2025-12-18T04:45:20.806427 +AZURE,westcentralus,Standard_E4s_v5,reserved_1y,NA,0.178425,USD,Azure Retail Prices API,2025-12-18T04:45:21.853951 +AZURE,westcentralus,Standard_E4s_v5,reserved_3y,NA,0.111872,USD,Azure Retail Prices API,2025-12-18T04:45:21.853953 +AZURE,westcentralus,Standard_E4s_v5,spot,NA,0.05581,USD,Azure Retail Prices API,2025-12-18T04:45:20.806679 +AZURE,westcentralus,Standard_E64_v3,on_demand,NA,4.199,USD,Azure Retail Prices API,2025-12-18T04:45:20.806284 +AZURE,westcentralus,Standard_E64_v3,reserved_1y,NA,2.830251,USD,Azure Retail Prices API,2025-12-18T04:45:21.853843 +AZURE,westcentralus,Standard_E64_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:45:21.853846 +AZURE,westcentralus,Standard_E64_v3,spot,NA,0.775975,USD,Azure Retail Prices API,2025-12-18T04:45:20.807347 +AZURE,westcentralus,Standard_E64a_v4,on_demand,NA,4.838,USD,Azure Retail Prices API,2025-12-18T04:45:20.805843 +AZURE,westcentralus,Standard_E64a_v4,reserved_1y,NA,2.903082,USD,Azure Retail Prices API,2025-12-18T04:45:21.853643 +AZURE,westcentralus,Standard_E64a_v4,reserved_3y,NA,1.93535,USD,Azure Retail Prices API,2025-12-18T04:45:21.853646 +AZURE,westcentralus,Standard_E64a_v4,spot,NA,1.085163,USD,Azure Retail Prices API,2025-12-18T04:45:20.806424 +AZURE,westcentralus,Standard_E64ads_v5,on_demand,NA,7.974,USD,Azure Retail Prices API,2025-12-18T04:45:20.806975 +AZURE,westcentralus,Standard_E64ads_v5,reserved_1y,NA,2.967922,USD,Azure Retail Prices API,2025-12-18T04:45:21.854548 +AZURE,westcentralus,Standard_E64ads_v5,reserved_3y,NA,1.911568,USD,Azure Retail Prices API,2025-12-18T04:45:21.854551 +AZURE,westcentralus,Standard_E64ads_v5,spot,NA,1.160421,USD,Azure Retail Prices API,2025-12-18T04:45:20.807359 +AZURE,westcentralus,Standard_E64ads_v6,on_demand,NA,5.562,USD,Azure Retail Prices API,2025-12-18T04:45:20.807503 +AZURE,westcentralus,Standard_E64ads_v6,reserved_1y,NA,3.281393,USD,Azure Retail Prices API,2025-12-18T04:45:21.854718 +AZURE,westcentralus,Standard_E64ads_v6,reserved_3y,NA,2.113394,USD,Azure Retail Prices API,2025-12-18T04:45:21.854721 +AZURE,westcentralus,Standard_E64ads_v6,spot,NA,1.027858,USD,Azure Retail Prices API,2025-12-18T04:45:20.807016 +AZURE,westcentralus,Standard_E64as_v4,on_demand,NA,4.838,USD,Azure Retail Prices API,2025-12-18T04:45:20.805475 +AZURE,westcentralus,Standard_E64as_v4,reserved_1y,NA,2.903082,USD,Azure Retail Prices API,2025-12-18T04:45:21.853411 +AZURE,westcentralus,Standard_E64as_v4,reserved_3y,NA,1.93535,USD,Azure Retail Prices API,2025-12-18T04:45:21.853414 +AZURE,westcentralus,Standard_E64as_v4,spot,NA,1.085163,USD,Azure Retail Prices API,2025-12-18T04:45:20.806467 +AZURE,westcentralus,Standard_E64as_v5,on_demand,NA,7.283,USD,Azure Retail Prices API,2025-12-18T04:45:20.806024 +AZURE,westcentralus,Standard_E64as_v5,reserved_1y,NA,2.56016,USD,Azure Retail Prices API,2025-12-18T04:45:21.854247 +AZURE,westcentralus,Standard_E64as_v5,reserved_3y,NA,1.648896,USD,Azure Retail Prices API,2025-12-18T04:45:21.854250 +AZURE,westcentralus,Standard_E64as_v5,spot,NA,1.001007,USD,Azure Retail Prices API,2025-12-18T04:45:20.805696 +AZURE,westcentralus,Standard_E64d_v4,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:20.806103 +AZURE,westcentralus,Standard_E64d_v4,reserved_1y,NA,3.262443,USD,Azure Retail Prices API,2025-12-18T04:45:21.853745 +AZURE,westcentralus,Standard_E64d_v4,reserved_3y,NA,2.101256,USD,Azure Retail Prices API,2025-12-18T04:45:21.853748 +AZURE,westcentralus,Standard_E64d_v4,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:45:20.805865 +AZURE,westcentralus,Standard_E64ds_v4,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:20.806303 +AZURE,westcentralus,Standard_E64ds_v4,reserved_1y,NA,3.262443,USD,Azure Retail Prices API,2025-12-18T04:45:21.853854 +AZURE,westcentralus,Standard_E64ds_v4,reserved_3y,NA,2.101256,USD,Azure Retail Prices API,2025-12-18T04:45:21.853857 +AZURE,westcentralus,Standard_E64ds_v4,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:45:20.806049 +AZURE,westcentralus,Standard_E64ds_v5,on_demand,NA,5.53,USD,Azure Retail Prices API,2025-12-18T04:45:20.806742 +AZURE,westcentralus,Standard_E64ds_v5,reserved_1y,NA,3.262443,USD,Azure Retail Prices API,2025-12-18T04:45:21.854159 +AZURE,westcentralus,Standard_E64ds_v5,reserved_3y,NA,2.101256,USD,Azure Retail Prices API,2025-12-18T04:45:21.854162 +AZURE,westcentralus,Standard_E64ds_v5,spot,NA,1.021944,USD,Azure Retail Prices API,2025-12-18T04:45:20.806726 +AZURE,westcentralus,Standard_E64ds_v6,on_demand,NA,6.279,USD,Azure Retail Prices API,2025-12-18T04:45:20.806081 +AZURE,westcentralus,Standard_E64ds_v6,reserved_1y,NA,3.893037,USD,Azure Retail Prices API,2025-12-18T04:45:21.853734 +AZURE,westcentralus,Standard_E64ds_v6,reserved_3y,NA,2.44882,USD,Azure Retail Prices API,2025-12-18T04:45:21.853737 +AZURE,westcentralus,Standard_E64ds_v6,spot,NA,1.160359,USD,Azure Retail Prices API,2025-12-18T04:45:20.806623 +AZURE,westcentralus,Standard_E64pds_v6,on_demand,NA,4.493,USD,Azure Retail Prices API,2025-12-18T04:45:20.806977 +AZURE,westcentralus,Standard_E64pds_v6,reserved_1y,NA,2.650799,USD,Azure Retail Prices API,2025-12-18T04:45:21.854446 +AZURE,westcentralus,Standard_E64pds_v6,reserved_3y,NA,1.707268,USD,Azure Retail Prices API,2025-12-18T04:45:21.854449 +AZURE,westcentralus,Standard_E64pds_v6,spot,NA,0.830306,USD,Azure Retail Prices API,2025-12-18T04:45:20.806787 +AZURE,westcentralus,Standard_E64ps_v6,on_demand,NA,3.539,USD,Azure Retail Prices API,2025-12-18T04:45:20.806482 +AZURE,westcentralus,Standard_E64ps_v6,reserved_1y,NA,2.088128,USD,Azure Retail Prices API,2025-12-18T04:45:21.853983 +AZURE,westcentralus,Standard_E64ps_v6,reserved_3y,NA,1.344901,USD,Azure Retail Prices API,2025-12-18T04:45:21.853986 +AZURE,westcentralus,Standard_E64ps_v6,spot,NA,0.654007,USD,Azure Retail Prices API,2025-12-18T04:45:20.807422 +AZURE,westcentralus,Standard_E64s_v3,on_demand,NA,4.199,USD,Azure Retail Prices API,2025-12-18T04:45:20.806821 +AZURE,westcentralus,Standard_E64s_v3,reserved_1y,NA,2.830251,USD,Azure Retail Prices API,2025-12-18T04:45:21.854242 +AZURE,westcentralus,Standard_E64s_v3,reserved_3y,NA,1.809893,USD,Azure Retail Prices API,2025-12-18T04:45:21.854244 +AZURE,westcentralus,Standard_E64s_v3,spot,NA,0.775975,USD,Azure Retail Prices API,2025-12-18T04:45:20.806092 +AZURE,westcentralus,Standard_E64s_v4,on_demand,NA,4.838,USD,Azure Retail Prices API,2025-12-18T04:45:20.806034 +AZURE,westcentralus,Standard_E64s_v4,reserved_1y,NA,2.85468,USD,Azure Retail Prices API,2025-12-18T04:45:21.853723 +AZURE,westcentralus,Standard_E64s_v4,reserved_3y,NA,1.838584,USD,Azure Retail Prices API,2025-12-18T04:45:21.853726 +AZURE,westcentralus,Standard_E64s_v4,spot,NA,0.894062,USD,Azure Retail Prices API,2025-12-18T04:45:20.805659 +AZURE,westcentralus,Standard_E64s_v5,on_demand,NA,4.838,USD,Azure Retail Prices API,2025-12-18T04:45:20.806409 +AZURE,westcentralus,Standard_E64s_v5,reserved_1y,NA,2.85468,USD,Azure Retail Prices API,2025-12-18T04:45:21.853934 +AZURE,westcentralus,Standard_E64s_v5,reserved_3y,NA,1.790221,USD,Azure Retail Prices API,2025-12-18T04:45:21.853937 +AZURE,westcentralus,Standard_E64s_v5,spot,NA,0.894062,USD,Azure Retail Prices API,2025-12-18T04:45:20.806840 +AZURE,westcentralus,Standard_E80ids_v4,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:45:20.805998 +AZURE,westcentralus,Standard_E80ids_v4,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:45:21.853712 +AZURE,westcentralus,Standard_E80ids_v4,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:45:21.853715 +AZURE,westcentralus,Standard_E80ids_v4,spot,NA,1.277338,USD,Azure Retail Prices API,2025-12-18T04:45:20.806685 +AZURE,westcentralus,Standard_E80is_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:45:20.806931 +AZURE,westcentralus,Standard_E80is_v4,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:21.854385 +AZURE,westcentralus,Standard_E80is_v4,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:45:21.854388 +AZURE,westcentralus,Standard_E80is_v4,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:45:20.806368 +AZURE,westcentralus,Standard_E8_v3,on_demand,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:45:20.806986 +AZURE,westcentralus,Standard_E8_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:45:21.854463 +AZURE,westcentralus,Standard_E8_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:45:21.854466 +AZURE,westcentralus,Standard_E8_v3,spot,NA,0.107738,USD,Azure Retail Prices API,2025-12-18T04:45:20.806532 +AZURE,westcentralus,Standard_E8a_v4,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:45:20.805412 +AZURE,westcentralus,Standard_E8a_v4,reserved_1y,NA,0.3629,USD,Azure Retail Prices API,2025-12-18T04:45:21.853354 +AZURE,westcentralus,Standard_E8a_v4,reserved_3y,NA,0.241933,USD,Azure Retail Prices API,2025-12-18T04:45:21.853368 +AZURE,westcentralus,Standard_E8a_v4,spot,NA,0.135702,USD,Azure Retail Prices API,2025-12-18T04:45:20.806470 +AZURE,westcentralus,Standard_E8ads_v5,on_demand,NA,0.997,USD,Azure Retail Prices API,2025-12-18T04:45:20.806380 +AZURE,westcentralus,Standard_E8ads_v5,reserved_1y,NA,0.371005,USD,Azure Retail Prices API,2025-12-18T04:45:21.854440 +AZURE,westcentralus,Standard_E8ads_v5,reserved_3y,NA,0.238927,USD,Azure Retail Prices API,2025-12-18T04:45:21.854443 +AZURE,westcentralus,Standard_E8ads_v5,spot,NA,0.14511,USD,Azure Retail Prices API,2025-12-18T04:45:20.806912 +AZURE,westcentralus,Standard_E8ads_v6,on_demand,NA,0.695,USD,Azure Retail Prices API,2025-12-18T04:45:20.806640 +AZURE,westcentralus,Standard_E8ads_v6,reserved_1y,NA,0.41016,USD,Azure Retail Prices API,2025-12-18T04:45:21.854063 +AZURE,westcentralus,Standard_E8ads_v6,reserved_3y,NA,0.264193,USD,Azure Retail Prices API,2025-12-18T04:45:21.854066 +AZURE,westcentralus,Standard_E8ads_v6,spot,NA,0.128436,USD,Azure Retail Prices API,2025-12-18T04:45:20.807506 +AZURE,westcentralus,Standard_E8as_v4,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:45:20.806892 +AZURE,westcentralus,Standard_E8as_v4,reserved_1y,NA,0.3629,USD,Azure Retail Prices API,2025-12-18T04:45:21.854346 +AZURE,westcentralus,Standard_E8as_v4,reserved_3y,NA,0.241933,USD,Azure Retail Prices API,2025-12-18T04:45:21.854348 +AZURE,westcentralus,Standard_E8as_v4,spot,NA,0.135702,USD,Azure Retail Prices API,2025-12-18T04:45:20.807380 +AZURE,westcentralus,Standard_E8as_v5,on_demand,NA,0.542,USD,Azure Retail Prices API,2025-12-18T04:45:20.805649 +AZURE,westcentralus,Standard_E8as_v5,reserved_1y,NA,0.319977,USD,Azure Retail Prices API,2025-12-18T04:45:21.853528 +AZURE,westcentralus,Standard_E8as_v5,reserved_3y,NA,0.206126,USD,Azure Retail Prices API,2025-12-18T04:45:21.853530 +AZURE,westcentralus,Standard_E8as_v5,spot,NA,0.125039,USD,Azure Retail Prices API,2025-12-18T04:45:20.805680 +AZURE,westcentralus,Standard_E8d_v4,on_demand,NA,0.691,USD,Azure Retail Prices API,2025-12-18T04:45:20.806813 +AZURE,westcentralus,Standard_E8d_v4,reserved_1y,NA,0.407763,USD,Azure Retail Prices API,2025-12-18T04:45:21.854236 +AZURE,westcentralus,Standard_E8d_v4,reserved_3y,NA,0.262671,USD,Azure Retail Prices API,2025-12-18T04:45:21.854239 +AZURE,westcentralus,Standard_E8d_v4,spot,NA,0.127697,USD,Azure Retail Prices API,2025-12-18T04:45:20.806571 +AZURE,westcentralus,Standard_E8ds_v4,on_demand,NA,0.691,USD,Azure Retail Prices API,2025-12-18T04:45:20.805781 +AZURE,westcentralus,Standard_E8ds_v4,reserved_1y,NA,0.407763,USD,Azure Retail Prices API,2025-12-18T04:45:21.853603 +AZURE,westcentralus,Standard_E8ds_v4,reserved_3y,NA,0.262671,USD,Azure Retail Prices API,2025-12-18T04:45:21.853606 +AZURE,westcentralus,Standard_E8ds_v4,spot,NA,0.127697,USD,Azure Retail Prices API,2025-12-18T04:45:20.807052 +AZURE,westcentralus,Standard_E8ds_v5,on_demand,NA,0.691,USD,Azure Retail Prices API,2025-12-18T04:45:20.805448 +AZURE,westcentralus,Standard_E8ds_v5,reserved_1y,NA,0.407763,USD,Azure Retail Prices API,2025-12-18T04:45:21.853385 +AZURE,westcentralus,Standard_E8ds_v5,reserved_3y,NA,0.262671,USD,Azure Retail Prices API,2025-12-18T04:45:21.853389 +AZURE,westcentralus,Standard_E8ds_v5,spot,NA,0.127697,USD,Azure Retail Prices API,2025-12-18T04:45:20.806610 +AZURE,westcentralus,Standard_E8ds_v6,on_demand,NA,0.785,USD,Azure Retail Prices API,2025-12-18T04:45:20.805792 +AZURE,westcentralus,Standard_E8ds_v6,reserved_1y,NA,0.486644,USD,Azure Retail Prices API,2025-12-18T04:45:21.853615 +AZURE,westcentralus,Standard_E8ds_v6,reserved_3y,NA,0.306088,USD,Azure Retail Prices API,2025-12-18T04:45:21.853617 +AZURE,westcentralus,Standard_E8ds_v6,spot,NA,0.145068,USD,Azure Retail Prices API,2025-12-18T04:45:20.806816 +AZURE,westcentralus,Standard_E8pds_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:45:20.805571 +AZURE,westcentralus,Standard_E8pds_v6,reserved_1y,NA,0.331393,USD,Azure Retail Prices API,2025-12-18T04:45:21.853491 +AZURE,westcentralus,Standard_E8pds_v6,reserved_3y,NA,0.213394,USD,Azure Retail Prices API,2025-12-18T04:45:21.853494 +AZURE,westcentralus,Standard_E8pds_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:45:20.806450 +AZURE,westcentralus,Standard_E8ps_v6,on_demand,NA,0.442,USD,Azure Retail Prices API,2025-12-18T04:45:20.806962 +AZURE,westcentralus,Standard_E8ps_v6,reserved_1y,NA,0.261073,USD,Azure Retail Prices API,2025-12-18T04:45:21.854423 +AZURE,westcentralus,Standard_E8ps_v6,reserved_3y,NA,0.168113,USD,Azure Retail Prices API,2025-12-18T04:45:21.854426 +AZURE,westcentralus,Standard_E8ps_v6,spot,NA,0.081682,USD,Azure Retail Prices API,2025-12-18T04:45:20.807299 +AZURE,westcentralus,Standard_E8s_v3,on_demand,NA,0.583,USD,Azure Retail Prices API,2025-12-18T04:45:20.806643 +AZURE,westcentralus,Standard_E8s_v3,reserved_1y,NA,0.375342,USD,Azure Retail Prices API,2025-12-18T04:45:21.854068 +AZURE,westcentralus,Standard_E8s_v3,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:45:21.854071 +AZURE,westcentralus,Standard_E8s_v3,spot,NA,0.107738,USD,Azure Retail Prices API,2025-12-18T04:45:20.806628 +AZURE,westcentralus,Standard_E8s_v4,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:45:20.807567 +AZURE,westcentralus,Standard_E8s_v4,reserved_1y,NA,0.356849,USD,Azure Retail Prices API,2025-12-18T04:45:21.854815 +AZURE,westcentralus,Standard_E8s_v4,reserved_3y,NA,0.229833,USD,Azure Retail Prices API,2025-12-18T04:45:21.854819 +AZURE,westcentralus,Standard_E8s_v4,spot,NA,0.111804,USD,Azure Retail Prices API,2025-12-18T04:45:20.805582 +AZURE,westcentralus,Standard_E8s_v5,on_demand,NA,0.605,USD,Azure Retail Prices API,2025-12-18T04:45:20.807049 +AZURE,westcentralus,Standard_E8s_v5,reserved_1y,NA,0.356849,USD,Azure Retail Prices API,2025-12-18T04:45:21.854526 +AZURE,westcentralus,Standard_E8s_v5,reserved_3y,NA,0.223782,USD,Azure Retail Prices API,2025-12-18T04:45:21.854529 +AZURE,westcentralus,Standard_E8s_v5,spot,NA,0.111804,USD,Azure Retail Prices API,2025-12-18T04:45:20.805550 +AZURE,westcentralus,Standard_E96a_v4,on_demand,NA,7.258,USD,Azure Retail Prices API,2025-12-18T04:45:20.806762 +AZURE,westcentralus,Standard_E96a_v4,reserved_1y,NA,4.354566,USD,Azure Retail Prices API,2025-12-18T04:45:21.854193 +AZURE,westcentralus,Standard_E96a_v4,reserved_3y,NA,2.903044,USD,Azure Retail Prices API,2025-12-18T04:45:21.854195 +AZURE,westcentralus,Standard_E96a_v4,spot,NA,1.627969,USD,Azure Retail Prices API,2025-12-18T04:45:20.807010 +AZURE,westcentralus,Standard_E96ads_v5,on_demand,NA,7.546,USD,Azure Retail Prices API,2025-12-18T04:45:20.806251 +AZURE,westcentralus,Standard_E96ads_v5,reserved_1y,NA,4.451941,USD,Azure Retail Prices API,2025-12-18T04:45:21.853820 +AZURE,westcentralus,Standard_E96ads_v5,reserved_3y,NA,2.867314,USD,Azure Retail Prices API,2025-12-18T04:45:21.853823 +AZURE,westcentralus,Standard_E96ads_v5,spot,NA,1.740862,USD,Azure Retail Prices API,2025-12-18T04:45:20.807561 +AZURE,westcentralus,Standard_E96ads_v6,on_demand,NA,8.342,USD,Azure Retail Prices API,2025-12-18T04:45:20.807396 +AZURE,westcentralus,Standard_E96ads_v6,reserved_1y,NA,4.922032,USD,Azure Retail Prices API,2025-12-18T04:45:21.854583 +AZURE,westcentralus,Standard_E96ads_v6,reserved_3y,NA,3.170129,USD,Azure Retail Prices API,2025-12-18T04:45:21.854586 +AZURE,westcentralus,Standard_E96ads_v6,spot,NA,1.541602,USD,Azure Retail Prices API,2025-12-18T04:45:20.806464 +AZURE,westcentralus,Standard_E96as_v4,on_demand,NA,7.258,USD,Azure Retail Prices API,2025-12-18T04:45:20.806444 +AZURE,westcentralus,Standard_E96as_v4,reserved_1y,NA,4.354566,USD,Azure Retail Prices API,2025-12-18T04:45:21.853967 +AZURE,westcentralus,Standard_E96as_v4,reserved_3y,NA,2.903044,USD,Azure Retail Prices API,2025-12-18T04:45:21.853970 +AZURE,westcentralus,Standard_E96as_v4,spot,NA,1.627969,USD,Azure Retail Prices API,2025-12-18T04:45:20.805860 +AZURE,westcentralus,Standard_E96as_v5,on_demand,NA,6.509,USD,Azure Retail Prices API,2025-12-18T04:45:20.806670 +AZURE,westcentralus,Standard_E96as_v5,reserved_1y,NA,3.840183,USD,Azure Retail Prices API,2025-12-18T04:45:21.854108 +AZURE,westcentralus,Standard_E96as_v5,reserved_3y,NA,2.473326,USD,Azure Retail Prices API,2025-12-18T04:45:21.854110 +AZURE,westcentralus,Standard_E96as_v5,spot,NA,1.501626,USD,Azure Retail Prices API,2025-12-18T04:45:20.806278 +AZURE,westcentralus,Standard_E96ds_v5,on_demand,NA,8.294,USD,Azure Retail Prices API,2025-12-18T04:45:20.807576 +AZURE,westcentralus,Standard_E96ds_v5,reserved_1y,NA,4.893721,USD,Azure Retail Prices API,2025-12-18T04:45:21.854833 +AZURE,westcentralus,Standard_E96ds_v5,reserved_3y,NA,3.151865,USD,Azure Retail Prices API,2025-12-18T04:45:21.854838 +AZURE,westcentralus,Standard_E96ds_v5,spot,NA,1.532731,USD,Azure Retail Prices API,2025-12-18T04:45:20.806485 +AZURE,westcentralus,Standard_E96ds_v6,on_demand,NA,9.419,USD,Azure Retail Prices API,2025-12-18T04:45:20.807519 +AZURE,westcentralus,Standard_E96ds_v6,reserved_1y,NA,5.839498,USD,Azure Retail Prices API,2025-12-18T04:45:21.854730 +AZURE,westcentralus,Standard_E96ds_v6,reserved_3y,NA,3.67325,USD,Azure Retail Prices API,2025-12-18T04:45:21.854733 +AZURE,westcentralus,Standard_E96ds_v6,spot,NA,1.740631,USD,Azure Retail Prices API,2025-12-18T04:45:20.807425 +AZURE,westcentralus,Standard_E96pds_v6,on_demand,NA,6.739,USD,Azure Retail Prices API,2025-12-18T04:45:20.807464 +AZURE,westcentralus,Standard_E96pds_v6,reserved_1y,NA,3.976142,USD,Azure Retail Prices API,2025-12-18T04:45:21.854661 +AZURE,westcentralus,Standard_E96pds_v6,reserved_3y,NA,2.560883,USD,Azure Retail Prices API,2025-12-18T04:45:21.854664 +AZURE,westcentralus,Standard_E96pds_v6,spot,NA,1.245367,USD,Azure Retail Prices API,2025-12-18T04:45:20.806771 +AZURE,westcentralus,Standard_E96ps_v6,on_demand,NA,5.309,USD,Azure Retail Prices API,2025-12-18T04:45:20.806695 +AZURE,westcentralus,Standard_E96ps_v6,reserved_1y,NA,3.132192,USD,Azure Retail Prices API,2025-12-18T04:45:21.854113 +AZURE,westcentralus,Standard_E96ps_v6,reserved_3y,NA,2.017352,USD,Azure Retail Prices API,2025-12-18T04:45:21.854116 +AZURE,westcentralus,Standard_E96ps_v6,spot,NA,0.981103,USD,Azure Retail Prices API,2025-12-18T04:45:20.807585 +AZURE,westcentralus,Standard_E96s_v5,on_demand,NA,7.258,USD,Azure Retail Prices API,2025-12-18T04:45:20.807316 +AZURE,westcentralus,Standard_E96s_v5,reserved_1y,NA,4.281963,USD,Azure Retail Prices API,2025-12-18T04:45:21.854554 +AZURE,westcentralus,Standard_E96s_v5,reserved_3y,NA,2.685312,USD,Azure Retail Prices API,2025-12-18T04:45:21.854557 +AZURE,westcentralus,Standard_E96s_v5,spot,NA,1.341278,USD,Azure Retail Prices API,2025-12-18T04:45:20.805817 +AZURE,westcentralus,Standard_EC16ads_v6,on_demand,NA,1.39,USD,Azure Retail Prices API,2025-12-18T04:45:20.807599 +AZURE,westcentralus,Standard_EC16ads_v6,reserved_1y,NA,0.82032,USD,Azure Retail Prices API,2025-12-18T04:45:21.854870 +AZURE,westcentralus,Standard_EC16ads_v6,reserved_3y,NA,0.528349,USD,Azure Retail Prices API,2025-12-18T04:45:21.854872 +AZURE,westcentralus,Standard_EC16ads_v6,spot,NA,0.256872,USD,Azure Retail Prices API,2025-12-18T04:45:20.807353 +AZURE,westcentralus,Standard_EC16as_v6,on_demand,NA,1.142,USD,Azure Retail Prices API,2025-12-18T04:45:20.806097 +AZURE,westcentralus,Standard_EC16as_v6,reserved_1y,NA,0.673973,USD,Azure Retail Prices API,2025-12-18T04:45:21.853740 +AZURE,westcentralus,Standard_EC16as_v6,reserved_3y,NA,0.434094,USD,Azure Retail Prices API,2025-12-18T04:45:21.853743 +AZURE,westcentralus,Standard_EC16as_v6,spot,NA,0.211042,USD,Azure Retail Prices API,2025-12-18T04:45:20.805954 +AZURE,westcentralus,Standard_EC2ads_v6,on_demand,NA,0.174,USD,Azure Retail Prices API,2025-12-18T04:45:20.806549 +AZURE,westcentralus,Standard_EC2ads_v6,reserved_1y,NA,0.102511,USD,Azure Retail Prices API,2025-12-18T04:45:21.854023 +AZURE,westcentralus,Standard_EC2ads_v6,reserved_3y,NA,0.066058,USD,Azure Retail Prices API,2025-12-18T04:45:21.854026 +AZURE,westcentralus,Standard_EC2ads_v6,spot,NA,0.032155,USD,Azure Retail Prices API,2025-12-18T04:45:20.807498 +AZURE,westcentralus,Standard_EC2as_v6,on_demand,NA,0.143,USD,Azure Retail Prices API,2025-12-18T04:45:20.807545 +AZURE,westcentralus,Standard_EC2as_v6,reserved_1y,NA,0.084247,USD,Azure Retail Prices API,2025-12-18T04:45:21.854772 +AZURE,westcentralus,Standard_EC2as_v6,reserved_3y,NA,0.054262,USD,Azure Retail Prices API,2025-12-18T04:45:21.854791 +AZURE,westcentralus,Standard_EC2as_v6,spot,NA,0.026426,USD,Azure Retail Prices API,2025-12-18T04:45:20.806182 +AZURE,westcentralus,Standard_EC32ads_v6,on_demand,NA,2.781,USD,Azure Retail Prices API,2025-12-18T04:45:20.805686 +AZURE,westcentralus,Standard_EC32ads_v6,reserved_1y,NA,1.640639,USD,Azure Retail Prices API,2025-12-18T04:45:21.853545 +AZURE,westcentralus,Standard_EC32ads_v6,reserved_3y,NA,1.056697,USD,Azure Retail Prices API,2025-12-18T04:45:21.853548 +AZURE,westcentralus,Standard_EC32ads_v6,spot,NA,0.513929,USD,Azure Retail Prices API,2025-12-18T04:45:20.806441 +AZURE,westcentralus,Standard_EC32as_v6,on_demand,NA,2.285,USD,Azure Retail Prices API,2025-12-18T04:45:20.805759 +AZURE,westcentralus,Standard_EC32as_v6,reserved_1y,NA,1.348059,USD,Azure Retail Prices API,2025-12-18T04:45:21.853585 +AZURE,westcentralus,Standard_EC32as_v6,reserved_3y,NA,0.868227,USD,Azure Retail Prices API,2025-12-18T04:45:21.853588 +AZURE,westcentralus,Standard_EC32as_v6,spot,NA,0.422268,USD,Azure Retail Prices API,2025-12-18T04:45:20.806781 +AZURE,westcentralus,Standard_EC48ads_v6,on_demand,NA,4.171,USD,Azure Retail Prices API,2025-12-18T04:45:20.805764 +AZURE,westcentralus,Standard_EC48ads_v6,reserved_1y,NA,2.460959,USD,Azure Retail Prices API,2025-12-18T04:45:21.853591 +AZURE,westcentralus,Standard_EC48ads_v6,reserved_3y,NA,1.585046,USD,Azure Retail Prices API,2025-12-18T04:45:21.853594 +AZURE,westcentralus,Standard_EC48ads_v6,spot,NA,0.770801,USD,Azure Retail Prices API,2025-12-18T04:45:20.807432 +AZURE,westcentralus,Standard_EC48as_v6,on_demand,NA,3.427,USD,Azure Retail Prices API,2025-12-18T04:45:20.806810 +AZURE,westcentralus,Standard_EC48as_v6,reserved_1y,NA,2.022032,USD,Azure Retail Prices API,2025-12-18T04:45:21.854231 +AZURE,westcentralus,Standard_EC48as_v6,reserved_3y,NA,1.302321,USD,Azure Retail Prices API,2025-12-18T04:45:21.854233 +AZURE,westcentralus,Standard_EC48as_v6,spot,NA,0.63331,USD,Azure Retail Prices API,2025-12-18T04:45:20.805717 +AZURE,westcentralus,Standard_EC4ads_v6,on_demand,NA,0.348,USD,Azure Retail Prices API,2025-12-18T04:45:20.806044 +AZURE,westcentralus,Standard_EC4ads_v6,reserved_1y,NA,0.205137,USD,Azure Retail Prices API,2025-12-18T04:45:21.853729 +AZURE,westcentralus,Standard_EC4ads_v6,reserved_3y,NA,0.132078,USD,Azure Retail Prices API,2025-12-18T04:45:21.853731 +AZURE,westcentralus,Standard_EC4ads_v6,spot,NA,0.06431,USD,Azure Retail Prices API,2025-12-18T04:45:20.806919 +AZURE,westcentralus,Standard_EC4as_v6,on_demand,NA,0.286,USD,Azure Retail Prices API,2025-12-18T04:45:20.805907 +AZURE,westcentralus,Standard_EC4as_v6,reserved_1y,NA,0.168493,USD,Azure Retail Prices API,2025-12-18T04:45:21.853665 +AZURE,westcentralus,Standard_EC4as_v6,reserved_3y,NA,0.108524,USD,Azure Retail Prices API,2025-12-18T04:45:21.853668 +AZURE,westcentralus,Standard_EC4as_v6,spot,NA,0.052853,USD,Azure Retail Prices API,2025-12-18T04:45:20.806661 +AZURE,westcentralus,Standard_EC64ads_v6,on_demand,NA,5.562,USD,Azure Retail Prices API,2025-12-18T04:45:20.806597 +AZURE,westcentralus,Standard_EC64ads_v6,reserved_1y,NA,3.281393,USD,Azure Retail Prices API,2025-12-18T04:45:21.854039 +AZURE,westcentralus,Standard_EC64ads_v6,reserved_3y,NA,2.113394,USD,Azure Retail Prices API,2025-12-18T04:45:21.854042 +AZURE,westcentralus,Standard_EC64ads_v6,spot,NA,1.027858,USD,Azure Retail Prices API,2025-12-18T04:45:20.806616 +AZURE,westcentralus,Standard_EC64as_v6,on_demand,NA,4.57,USD,Azure Retail Prices API,2025-12-18T04:45:20.805975 +AZURE,westcentralus,Standard_EC64as_v6,reserved_1y,NA,2.696119,USD,Azure Retail Prices API,2025-12-18T04:45:21.853695 +AZURE,westcentralus,Standard_EC64as_v6,reserved_3y,NA,1.736454,USD,Azure Retail Prices API,2025-12-18T04:45:21.853698 +AZURE,westcentralus,Standard_EC64as_v6,spot,NA,0.844536,USD,Azure Retail Prices API,2025-12-18T04:45:20.807516 +AZURE,westcentralus,Standard_EC8ads_v6,on_demand,NA,0.695,USD,Azure Retail Prices API,2025-12-18T04:45:20.805838 +AZURE,westcentralus,Standard_EC8ads_v6,reserved_1y,NA,0.41016,USD,Azure Retail Prices API,2025-12-18T04:45:21.853637 +AZURE,westcentralus,Standard_EC8ads_v6,reserved_3y,NA,0.264193,USD,Azure Retail Prices API,2025-12-18T04:45:21.853640 +AZURE,westcentralus,Standard_EC8ads_v6,spot,NA,0.128436,USD,Azure Retail Prices API,2025-12-18T04:45:20.806729 +AZURE,westcentralus,Standard_EC8as_v6,on_demand,NA,0.571,USD,Azure Retail Prices API,2025-12-18T04:45:20.806992 +AZURE,westcentralus,Standard_EC8as_v6,reserved_1y,NA,0.336986,USD,Azure Retail Prices API,2025-12-18T04:45:21.854469 +AZURE,westcentralus,Standard_EC8as_v6,reserved_3y,NA,0.217047,USD,Azure Retail Prices API,2025-12-18T04:45:21.854472 +AZURE,westcentralus,Standard_EC8as_v6,spot,NA,0.105521,USD,Azure Retail Prices API,2025-12-18T04:45:20.806774 +AZURE,westcentralus,Standard_EC96ads_v6,on_demand,NA,8.342,USD,Azure Retail Prices API,2025-12-18T04:45:20.806790 +AZURE,westcentralus,Standard_EC96ads_v6,reserved_1y,NA,4.922032,USD,Azure Retail Prices API,2025-12-18T04:45:21.854209 +AZURE,westcentralus,Standard_EC96ads_v6,reserved_3y,NA,3.170129,USD,Azure Retail Prices API,2025-12-18T04:45:21.854212 +AZURE,westcentralus,Standard_EC96ads_v6,spot,NA,1.541602,USD,Azure Retail Prices API,2025-12-18T04:45:20.807456 +AZURE,westcentralus,Standard_EC96as_v6,on_demand,NA,6.854,USD,Azure Retail Prices API,2025-12-18T04:45:20.806247 +AZURE,westcentralus,Standard_EC96as_v6,reserved_1y,NA,4.044064,USD,Azure Retail Prices API,2025-12-18T04:45:21.853814 +AZURE,westcentralus,Standard_EC96as_v6,reserved_3y,NA,2.60468,USD,Azure Retail Prices API,2025-12-18T04:45:21.853817 +AZURE,westcentralus,Standard_EC96as_v6,spot,NA,1.266619,USD,Azure Retail Prices API,2025-12-18T04:45:20.806698 +AZURE,westcentralus,Standard_F16,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379362 +AZURE,westcentralus,Standard_F16,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379370 +AZURE,westcentralus,Standard_F16,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379374 +AZURE,westcentralus,Standard_F16,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379366 +AZURE,westcentralus,Standard_F16s,on_demand,NA,0.924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381671 +AZURE,westcentralus,Standard_F16s,reserved_1y,NA,0.5544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381679 +AZURE,westcentralus,Standard_F16s,reserved_3y,NA,0.3696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381684 +AZURE,westcentralus,Standard_F16s,spot,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381675 +AZURE,westcentralus,Standard_F16s_v2,on_demand,NA,0.784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384382 +AZURE,westcentralus,Standard_F16s_v2,reserved_1y,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384391 +AZURE,westcentralus,Standard_F16s_v2,reserved_3y,NA,0.3136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384396 +AZURE,westcentralus,Standard_F16s_v2,spot,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384387 +AZURE,westcentralus,Standard_F32s_v2,on_demand,NA,1.568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385157 +AZURE,westcentralus,Standard_F32s_v2,reserved_1y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385166 +AZURE,westcentralus,Standard_F32s_v2,reserved_3y,NA,0.6272,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385170 +AZURE,westcentralus,Standard_F32s_v2,spot,NA,0.4704,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385161 +AZURE,westcentralus,Standard_F4,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377749 +AZURE,westcentralus,Standard_F4,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377762 +AZURE,westcentralus,Standard_F4,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377768 +AZURE,westcentralus,Standard_F4,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377755 +AZURE,westcentralus,Standard_F48s_v2,on_demand,NA,2.352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385970 +AZURE,westcentralus,Standard_F48s_v2,reserved_1y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385978 +AZURE,westcentralus,Standard_F48s_v2,reserved_3y,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385983 +AZURE,westcentralus,Standard_F48s_v2,spot,NA,0.7056,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385974 +AZURE,westcentralus,Standard_F4s,on_demand,NA,0.231,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380118 +AZURE,westcentralus,Standard_F4s,reserved_1y,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380127 +AZURE,westcentralus,Standard_F4s,reserved_3y,NA,0.0924,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380131 +AZURE,westcentralus,Standard_F4s,spot,NA,0.0693,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380123 +AZURE,westcentralus,Standard_F4s_v2,on_demand,NA,0.196,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382710 +AZURE,westcentralus,Standard_F4s_v2,reserved_1y,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382723 +AZURE,westcentralus,Standard_F4s_v2,reserved_3y,NA,0.0784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382729 +AZURE,westcentralus,Standard_F4s_v2,spot,NA,0.0588,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382716 +AZURE,westcentralus,Standard_F64s_v2,on_demand,NA,3.136,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386760 +AZURE,westcentralus,Standard_F64s_v2,reserved_1y,NA,1.8816,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386768 +AZURE,westcentralus,Standard_F64s_v2,reserved_3y,NA,1.2544,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386772 +AZURE,westcentralus,Standard_F64s_v2,spot,NA,0.9408,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386764 +AZURE,westcentralus,Standard_F72s_v2,on_demand,NA,3.528,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387560 +AZURE,westcentralus,Standard_F72s_v2,reserved_1y,NA,2.1168,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387568 +AZURE,westcentralus,Standard_F72s_v2,reserved_3y,NA,1.4112,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387573 +AZURE,westcentralus,Standard_F72s_v2,spot,NA,1.0584,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387564 +AZURE,westcentralus,Standard_F8,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378548 +AZURE,westcentralus,Standard_F8,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378556 +AZURE,westcentralus,Standard_F8,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378560 +AZURE,westcentralus,Standard_F8,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378552 +AZURE,westcentralus,Standard_F8s,on_demand,NA,0.462,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380826 +AZURE,westcentralus,Standard_F8s,reserved_1y,NA,0.2772,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380834 +AZURE,westcentralus,Standard_F8s,reserved_3y,NA,0.1848,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380838 +AZURE,westcentralus,Standard_F8s,spot,NA,0.1386,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380830 +AZURE,westcentralus,Standard_F8s_v2,on_demand,NA,0.392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383560 +AZURE,westcentralus,Standard_F8s_v2,reserved_1y,NA,0.2352,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383568 +AZURE,westcentralus,Standard_F8s_v2,reserved_3y,NA,0.1568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383572 +AZURE,westcentralus,Standard_F8s_v2,spot,NA,0.1176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383564 +AZURE,westcentralus,Standard_L16s_v3,on_demand,NA,1.675,USD,Azure Retail Prices API,2025-12-18T04:45:20.805960 +AZURE,westcentralus,Standard_L16s_v3,reserved_1y,NA,1.072146,USD,Azure Retail Prices API,2025-12-18T04:45:21.853683 +AZURE,westcentralus,Standard_L16s_v3,reserved_3y,NA,0.703577,USD,Azure Retail Prices API,2025-12-18T04:45:21.853686 +AZURE,westcentralus,Standard_L16s_v3,spot,NA,0.30954,USD,Azure Retail Prices API,2025-12-18T04:45:20.806400 +AZURE,westcentralus,Standard_L32s_v3,on_demand,NA,3.35,USD,Azure Retail Prices API,2025-12-18T04:45:20.806711 +AZURE,westcentralus,Standard_L32s_v3,reserved_1y,NA,2.144292,USD,Azure Retail Prices API,2025-12-18T04:45:21.854125 +AZURE,westcentralus,Standard_L32s_v3,reserved_3y,NA,1.407154,USD,Azure Retail Prices API,2025-12-18T04:45:21.854129 +AZURE,westcentralus,Standard_L32s_v3,spot,NA,0.61908,USD,Azure Retail Prices API,2025-12-18T04:45:20.805587 +AZURE,westcentralus,Standard_L48s_v3,on_demand,NA,5.026,USD,Azure Retail Prices API,2025-12-18T04:45:20.805754 +AZURE,westcentralus,Standard_L48s_v3,reserved_1y,NA,3.216438,USD,Azure Retail Prices API,2025-12-18T04:45:21.853579 +AZURE,westcentralus,Standard_L48s_v3,reserved_3y,NA,2.110769,USD,Azure Retail Prices API,2025-12-18T04:45:21.853582 +AZURE,westcentralus,Standard_L48s_v3,spot,NA,0.928805,USD,Azure Retail Prices API,2025-12-18T04:45:20.805812 +AZURE,westcentralus,Standard_L64s_v3,on_demand,NA,6.701,USD,Azure Retail Prices API,2025-12-18T04:45:20.807409 +AZURE,westcentralus,Standard_L64s_v3,reserved_1y,NA,4.28847,USD,Azure Retail Prices API,2025-12-18T04:45:21.854595 +AZURE,westcentralus,Standard_L64s_v3,reserved_3y,NA,2.814346,USD,Azure Retail Prices API,2025-12-18T04:45:21.854598 +AZURE,westcentralus,Standard_L64s_v3,spot,NA,1.238345,USD,Azure Retail Prices API,2025-12-18T04:45:20.806459 +AZURE,westcentralus,Standard_L80s_v3,on_demand,NA,8.376,USD,Azure Retail Prices API,2025-12-18T04:45:20.805534 +AZURE,westcentralus,Standard_L80s_v3,reserved_1y,NA,5.360616,USD,Azure Retail Prices API,2025-12-18T04:45:21.853473 +AZURE,westcentralus,Standard_L80s_v3,reserved_3y,NA,3.517922,USD,Azure Retail Prices API,2025-12-18T04:45:21.853476 +AZURE,westcentralus,Standard_L80s_v3,spot,NA,1.547885,USD,Azure Retail Prices API,2025-12-18T04:45:20.806868 +AZURE,westcentralus,Standard_L8s_v3,on_demand,NA,0.838,USD,Azure Retail Prices API,2025-12-18T04:45:20.805827 +AZURE,westcentralus,Standard_L8s_v3,reserved_1y,NA,0.536073,USD,Azure Retail Prices API,2025-12-18T04:45:21.853631 +AZURE,westcentralus,Standard_L8s_v3,reserved_3y,NA,0.351788,USD,Azure Retail Prices API,2025-12-18T04:45:21.853634 +AZURE,westcentralus,Standard_L8s_v3,spot,NA,0.154862,USD,Azure Retail Prices API,2025-12-18T04:45:20.807461 +AZURE,westcentralus,Standard_ND96isr_H100_v5,on_demand,NA,117.984,USD,Azure Retail Prices API,2025-12-18T04:45:20.806177 +AZURE,westcentralus,Standard_ND96isr_H100_v5,reserved_1y,NA,75.509703,USD,Azure Retail Prices API,2025-12-18T04:45:21.853785 +AZURE,westcentralus,Standard_ND96isr_H100_v5,reserved_3y,NA,51.794977,USD,Azure Retail Prices API,2025-12-18T04:45:21.853788 +AZURE,westcentralus,Standard_ND96isr_H100_v5,spot,NA,21.803443,USD,Azure Retail Prices API,2025-12-18T04:45:20.807390 +AZURE,westeurope,Standard_D128ds_v6,on_demand,NA,9.551,USD,Azure Retail Prices API,2025-12-18T04:45:24.780776 +AZURE,westeurope,Standard_D128ds_v6,reserved_1y,NA,5.921804,USD,Azure Retail Prices API,2025-12-18T04:45:26.210209 +AZURE,westeurope,Standard_D128ds_v6,reserved_3y,NA,3.725038,USD,Azure Retail Prices API,2025-12-18T04:45:26.210212 +AZURE,westeurope,Standard_D128ds_v6,spot,NA,1.765025,USD,Azure Retail Prices API,2025-12-18T04:45:24.779162 +AZURE,westeurope,Standard_D12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488270 +AZURE,westeurope,Standard_D12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488278 +AZURE,westeurope,Standard_D12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488282 +AZURE,westeurope,Standard_D12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488274 +AZURE,westeurope,Standard_D13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489026 +AZURE,westeurope,Standard_D13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489034 +AZURE,westeurope,Standard_D13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489039 +AZURE,westeurope,Standard_D13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489030 +AZURE,westeurope,Standard_D14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490147 +AZURE,westeurope,Standard_D14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490156 +AZURE,westeurope,Standard_D14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490161 +AZURE,westeurope,Standard_D14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490152 +AZURE,westeurope,Standard_D15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490840 +AZURE,westeurope,Standard_D15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490848 +AZURE,westeurope,Standard_D15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490852 +AZURE,westeurope,Standard_D15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490844 +AZURE,westeurope,Standard_D16_v3,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:45:24.780115 +AZURE,westeurope,Standard_D16_v3,reserved_1y,NA,0.61153,USD,Azure Retail Prices API,2025-12-18T04:45:26.209775 +AZURE,westeurope,Standard_D16_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:45:26.209777 +AZURE,westeurope,Standard_D16_v3,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:45:24.778676 +AZURE,westeurope,Standard_D16a_v4,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:24.781391 +AZURE,westeurope,Standard_D16a_v4,reserved_1y,NA,0.611872,USD,Azure Retail Prices API,2025-12-18T04:45:26.210480 +AZURE,westeurope,Standard_D16a_v4,reserved_3y,NA,0.421005,USD,Azure Retail Prices API,2025-12-18T04:45:26.210483 +AZURE,westeurope,Standard_D16a_v4,spot,NA,0.198444,USD,Azure Retail Prices API,2025-12-18T04:45:24.778162 +AZURE,westeurope,Standard_D16ads_v5,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.778287 +AZURE,westeurope,Standard_D16ads_v5,reserved_1y,NA,0.589954,USD,Azure Retail Prices API,2025-12-18T04:45:26.208901 +AZURE,westeurope,Standard_D16ads_v5,reserved_3y,NA,0.379985,USD,Azure Retail Prices API,2025-12-18T04:45:26.208906 +AZURE,westeurope,Standard_D16ads_v5,spot,NA,0.2157,USD,Azure Retail Prices API,2025-12-18T04:45:24.779685 +AZURE,westeurope,Standard_D16ads_v6,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:45:24.779536 +AZURE,westeurope,Standard_D16ads_v6,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:45:26.209502 +AZURE,westeurope,Standard_D16ads_v6,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:45:26.209506 +AZURE,westeurope,Standard_D16ads_v6,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:45:24.778300 +AZURE,westeurope,Standard_D16as_v4,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:24.778448 +AZURE,westeurope,Standard_D16as_v4,reserved_1y,NA,0.611872,USD,Azure Retail Prices API,2025-12-18T04:45:26.208993 +AZURE,westeurope,Standard_D16as_v4,reserved_3y,NA,0.421005,USD,Azure Retail Prices API,2025-12-18T04:45:26.208996 +AZURE,westeurope,Standard_D16as_v4,spot,NA,0.198444,USD,Azure Retail Prices API,2025-12-18T04:45:24.779652 +AZURE,westeurope,Standard_D16as_v5,on_demand,NA,0.832,USD,Azure Retail Prices API,2025-12-18T04:45:24.778983 +AZURE,westeurope,Standard_D16as_v5,reserved_1y,NA,0.490868,USD,Azure Retail Prices API,2025-12-18T04:45:26.209260 +AZURE,westeurope,Standard_D16as_v5,reserved_3y,NA,0.316172,USD,Azure Retail Prices API,2025-12-18T04:45:26.209263 +AZURE,westeurope,Standard_D16as_v5,spot,NA,0.179462,USD,Azure Retail Prices API,2025-12-18T04:45:24.778890 +AZURE,westeurope,Standard_D16d_v4,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:45:24.780743 +AZURE,westeurope,Standard_D16d_v4,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:45:26.210182 +AZURE,westeurope,Standard_D16d_v4,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:45:26.210185 +AZURE,westeurope,Standard_D16d_v4,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:45:24.781163 +AZURE,westeurope,Standard_D16ds_v4,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:45:24.780732 +AZURE,westeurope,Standard_D16ds_v4,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:45:26.210170 +AZURE,westeurope,Standard_D16ds_v4,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:45:26.210173 +AZURE,westeurope,Standard_D16ds_v4,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:45:24.778342 +AZURE,westeurope,Standard_D16ds_v5,on_demand,NA,1.088,USD,Azure Retail Prices API,2025-12-18T04:45:24.780339 +AZURE,westeurope,Standard_D16ds_v5,reserved_1y,NA,0.641895,USD,Azure Retail Prices API,2025-12-18T04:45:26.209929 +AZURE,westeurope,Standard_D16ds_v5,reserved_3y,NA,0.413432,USD,Azure Retail Prices API,2025-12-18T04:45:26.209932 +AZURE,westeurope,Standard_D16ds_v5,spot,NA,0.201062,USD,Azure Retail Prices API,2025-12-18T04:45:24.778589 +AZURE,westeurope,Standard_D16ds_v6,on_demand,NA,1.194,USD,Azure Retail Prices API,2025-12-18T04:45:24.781346 +AZURE,westeurope,Standard_D16ds_v6,reserved_1y,NA,0.740183,USD,Azure Retail Prices API,2025-12-18T04:45:26.210449 +AZURE,westeurope,Standard_D16ds_v6,reserved_3y,NA,0.465639,USD,Azure Retail Prices API,2025-12-18T04:45:26.210453 +AZURE,westeurope,Standard_D16ds_v6,spot,NA,0.220651,USD,Azure Retail Prices API,2025-12-18T04:45:24.778244 +AZURE,westeurope,Standard_D16pds_v6,on_demand,NA,0.878,USD,Azure Retail Prices API,2025-12-18T04:45:24.778714 +AZURE,westeurope,Standard_D16pds_v6,reserved_1y,NA,0.518265,USD,Azure Retail Prices API,2025-12-18T04:45:26.209155 +AZURE,westeurope,Standard_D16pds_v6,reserved_3y,NA,0.33379,USD,Azure Retail Prices API,2025-12-18T04:45:26.209158 +AZURE,westeurope,Standard_D16pds_v6,spot,NA,0.170332,USD,Azure Retail Prices API,2025-12-18T04:45:24.779319 +AZURE,westeurope,Standard_D16ps_v6,on_demand,NA,0.67,USD,Azure Retail Prices API,2025-12-18T04:45:24.779409 +AZURE,westeurope,Standard_D16ps_v6,reserved_1y,NA,0.395548,USD,Azure Retail Prices API,2025-12-18T04:45:26.209428 +AZURE,westeurope,Standard_D16ps_v6,reserved_3y,NA,0.254756,USD,Azure Retail Prices API,2025-12-18T04:45:26.209431 +AZURE,westeurope,Standard_D16ps_v6,spot,NA,0.12998,USD,Azure Retail Prices API,2025-12-18T04:45:24.778119 +AZURE,westeurope,Standard_D16s_v3,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:45:24.780550 +AZURE,westeurope,Standard_D16s_v3,reserved_1y,NA,0.61153,USD,Azure Retail Prices API,2025-12-18T04:45:26.210040 +AZURE,westeurope,Standard_D16s_v3,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:45:26.210043 +AZURE,westeurope,Standard_D16s_v3,spot,NA,0.177408,USD,Azure Retail Prices API,2025-12-18T04:45:24.780404 +AZURE,westeurope,Standard_D16s_v4,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:24.780760 +AZURE,westeurope,Standard_D16s_v4,reserved_1y,NA,0.542808,USD,Azure Retail Prices API,2025-12-18T04:45:26.210204 +AZURE,westeurope,Standard_D16s_v4,reserved_3y,NA,0.349581,USD,Azure Retail Prices API,2025-12-18T04:45:26.210207 +AZURE,westeurope,Standard_D16s_v4,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:45:24.779597 +AZURE,westeurope,Standard_D16s_v5,on_demand,NA,0.92,USD,Azure Retail Prices API,2025-12-18T04:45:24.778719 +AZURE,westeurope,Standard_D16s_v5,reserved_1y,NA,0.524429,USD,Azure Retail Prices API,2025-12-18T04:45:26.209161 +AZURE,westeurope,Standard_D16s_v5,reserved_3y,NA,0.340411,USD,Azure Retail Prices API,2025-12-18T04:45:26.209163 +AZURE,westeurope,Standard_D16s_v5,spot,NA,0.170016,USD,Azure Retail Prices API,2025-12-18T04:45:24.778331 +AZURE,westeurope,Standard_D2ads_v6,on_demand,NA,0.138,USD,Azure Retail Prices API,2025-12-18T04:45:24.778649 +AZURE,westeurope,Standard_D2ads_v6,reserved_1y,NA,0.081393,USD,Azure Retail Prices API,2025-12-18T04:45:26.209106 +AZURE,westeurope,Standard_D2ads_v6,reserved_3y,NA,0.052435,USD,Azure Retail Prices API,2025-12-18T04:45:26.209109 +AZURE,westeurope,Standard_D2ads_v6,spot,NA,0.025502,USD,Azure Retail Prices API,2025-12-18T04:45:24.781055 +AZURE,westeurope,Standard_D2ds_v6,on_demand,NA,0.149,USD,Azure Retail Prices API,2025-12-18T04:45:24.780426 +AZURE,westeurope,Standard_D2ds_v6,reserved_1y,NA,0.09258,USD,Azure Retail Prices API,2025-12-18T04:45:26.209969 +AZURE,westeurope,Standard_D2ds_v6,reserved_3y,NA,0.058219,USD,Azure Retail Prices API,2025-12-18T04:45:26.209972 +AZURE,westeurope,Standard_D2ds_v6,spot,NA,0.027535,USD,Azure Retail Prices API,2025-12-18T04:45:24.781021 +AZURE,westeurope,Standard_D32_v3,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:45:24.781431 +AZURE,westeurope,Standard_D32_v3,reserved_1y,NA,1.223059,USD,Azure Retail Prices API,2025-12-18T04:45:26.210517 +AZURE,westeurope,Standard_D32_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:45:26.210520 +AZURE,westeurope,Standard_D32_v3,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:45:24.780456 +AZURE,westeurope,Standard_D32a_v4,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:24.779819 +AZURE,westeurope,Standard_D32a_v4,reserved_1y,NA,1.223744,USD,Azure Retail Prices API,2025-12-18T04:45:26.209625 +AZURE,westeurope,Standard_D32a_v4,reserved_3y,NA,0.842009,USD,Azure Retail Prices API,2025-12-18T04:45:26.209628 +AZURE,westeurope,Standard_D32a_v4,spot,NA,0.396888,USD,Azure Retail Prices API,2025-12-18T04:45:24.781470 +AZURE,westeurope,Standard_D32ads_v5,on_demand,NA,3.472,USD,Azure Retail Prices API,2025-12-18T04:45:24.778239 +AZURE,westeurope,Standard_D32ads_v5,reserved_1y,NA,1.180023,USD,Azure Retail Prices API,2025-12-18T04:45:26.210311 +AZURE,westeurope,Standard_D32ads_v5,reserved_3y,NA,0.760008,USD,Azure Retail Prices API,2025-12-18T04:45:26.210314 +AZURE,westeurope,Standard_D32ads_v5,spot,NA,0.4314,USD,Azure Retail Prices API,2025-12-18T04:45:24.780843 +AZURE,westeurope,Standard_D32ads_v6,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:45:24.780258 +AZURE,westeurope,Standard_D32ads_v6,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:45:26.209873 +AZURE,westeurope,Standard_D32ads_v6,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:45:26.209876 +AZURE,westeurope,Standard_D32ads_v6,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:45:24.779575 +AZURE,westeurope,Standard_D32as_v4,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:24.778040 +AZURE,westeurope,Standard_D32as_v4,reserved_1y,NA,1.223744,USD,Azure Retail Prices API,2025-12-18T04:45:26.208751 +AZURE,westeurope,Standard_D32as_v4,reserved_3y,NA,0.842009,USD,Azure Retail Prices API,2025-12-18T04:45:26.208754 +AZURE,westeurope,Standard_D32as_v4,spot,NA,0.396888,USD,Azure Retail Prices API,2025-12-18T04:45:24.779547 +AZURE,westeurope,Standard_D32as_v5,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:45:24.780044 +AZURE,westeurope,Standard_D32as_v5,reserved_1y,NA,0.981735,USD,Azure Retail Prices API,2025-12-18T04:45:26.209739 +AZURE,westeurope,Standard_D32as_v5,reserved_3y,NA,0.632306,USD,Azure Retail Prices API,2025-12-18T04:45:26.209742 +AZURE,westeurope,Standard_D32as_v5,spot,NA,0.358925,USD,Azure Retail Prices API,2025-12-18T04:45:24.778505 +AZURE,westeurope,Standard_D32d_v4,on_demand,NA,2.176,USD,Azure Retail Prices API,2025-12-18T04:45:24.779746 +AZURE,westeurope,Standard_D32d_v4,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:45:26.209578 +AZURE,westeurope,Standard_D32d_v4,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:45:26.209581 +AZURE,westeurope,Standard_D32d_v4,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:45:24.780967 +AZURE,westeurope,Standard_D32ds_v4,on_demand,NA,2.176,USD,Azure Retail Prices API,2025-12-18T04:45:24.778769 +AZURE,westeurope,Standard_D32ds_v4,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:45:26.209183 +AZURE,westeurope,Standard_D32ds_v4,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:45:26.209187 +AZURE,westeurope,Standard_D32ds_v4,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:45:24.779559 +AZURE,westeurope,Standard_D32ds_v5,on_demand,NA,2.176,USD,Azure Retail Prices API,2025-12-18T04:45:24.780160 +AZURE,westeurope,Standard_D32ds_v5,reserved_1y,NA,1.28379,USD,Azure Retail Prices API,2025-12-18T04:45:26.209798 +AZURE,westeurope,Standard_D32ds_v5,reserved_3y,NA,0.826865,USD,Azure Retail Prices API,2025-12-18T04:45:26.209801 +AZURE,westeurope,Standard_D32ds_v5,spot,NA,0.402125,USD,Azure Retail Prices API,2025-12-18T04:45:24.779825 +AZURE,westeurope,Standard_D32ds_v6,on_demand,NA,2.388,USD,Azure Retail Prices API,2025-12-18T04:45:24.778561 +AZURE,westeurope,Standard_D32ds_v6,reserved_1y,NA,1.480479,USD,Azure Retail Prices API,2025-12-18T04:45:26.209065 +AZURE,westeurope,Standard_D32ds_v6,reserved_3y,NA,0.93124,USD,Azure Retail Prices API,2025-12-18T04:45:26.209068 +AZURE,westeurope,Standard_D32ds_v6,spot,NA,0.441302,USD,Azure Retail Prices API,2025-12-18T04:45:24.779369 +AZURE,westeurope,Standard_D32pds_v6,on_demand,NA,1.757,USD,Azure Retail Prices API,2025-12-18T04:45:24.779908 +AZURE,westeurope,Standard_D32pds_v6,reserved_1y,NA,1.03653,USD,Azure Retail Prices API,2025-12-18T04:45:26.209677 +AZURE,westeurope,Standard_D32pds_v6,reserved_3y,NA,0.66758,USD,Azure Retail Prices API,2025-12-18T04:45:26.209679 +AZURE,westeurope,Standard_D32pds_v6,spot,NA,0.340858,USD,Azure Retail Prices API,2025-12-18T04:45:24.778296 +AZURE,westeurope,Standard_D32ps_v6,on_demand,NA,1.341,USD,Azure Retail Prices API,2025-12-18T04:45:24.779396 +AZURE,westeurope,Standard_D32ps_v6,reserved_1y,NA,0.791096,USD,Azure Retail Prices API,2025-12-18T04:45:26.209422 +AZURE,westeurope,Standard_D32ps_v6,reserved_3y,NA,0.509513,USD,Azure Retail Prices API,2025-12-18T04:45:26.209425 +AZURE,westeurope,Standard_D32ps_v6,spot,NA,0.260154,USD,Azure Retail Prices API,2025-12-18T04:45:24.779757 +AZURE,westeurope,Standard_D32s_v3,on_demand,NA,1.92,USD,Azure Retail Prices API,2025-12-18T04:45:24.781076 +AZURE,westeurope,Standard_D32s_v3,reserved_1y,NA,1.223059,USD,Azure Retail Prices API,2025-12-18T04:45:26.210356 +AZURE,westeurope,Standard_D32s_v3,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:45:26.210359 +AZURE,westeurope,Standard_D32s_v3,spot,NA,0.354816,USD,Azure Retail Prices API,2025-12-18T04:45:24.779348 +AZURE,westeurope,Standard_D32s_v4,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:24.781071 +AZURE,westeurope,Standard_D32s_v4,reserved_1y,NA,1.085616,USD,Azure Retail Prices API,2025-12-18T04:45:26.210351 +AZURE,westeurope,Standard_D32s_v4,reserved_3y,NA,0.699201,USD,Azure Retail Prices API,2025-12-18T04:45:26.210354 +AZURE,westeurope,Standard_D32s_v4,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:45:24.781318 +AZURE,westeurope,Standard_D32s_v5,on_demand,NA,1.84,USD,Azure Retail Prices API,2025-12-18T04:45:24.779036 +AZURE,westeurope,Standard_D32s_v5,reserved_1y,NA,1.048744,USD,Azure Retail Prices API,2025-12-18T04:45:26.209283 +AZURE,westeurope,Standard_D32s_v5,reserved_3y,NA,0.680784,USD,Azure Retail Prices API,2025-12-18T04:45:26.209285 +AZURE,westeurope,Standard_D32s_v5,spot,NA,0.340032,USD,Azure Retail Prices API,2025-12-18T04:45:24.779730 +AZURE,westeurope,Standard_D3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485258 +AZURE,westeurope,Standard_D3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485266 +AZURE,westeurope,Standard_D3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485270 +AZURE,westeurope,Standard_D3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485262 +AZURE,westeurope,Standard_D48a_v4,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:45:24.781049 +AZURE,westeurope,Standard_D48a_v4,reserved_1y,NA,1.835616,USD,Azure Retail Prices API,2025-12-18T04:45:26.210335 +AZURE,westeurope,Standard_D48a_v4,reserved_3y,NA,1.263014,USD,Azure Retail Prices API,2025-12-18T04:45:26.210337 +AZURE,westeurope,Standard_D48a_v4,spot,NA,0.595332,USD,Azure Retail Prices API,2025-12-18T04:45:24.778146 +AZURE,westeurope,Standard_D48ads_v5,on_demand,NA,3.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.778179 +AZURE,westeurope,Standard_D48ads_v5,reserved_1y,NA,1.769977,USD,Azure Retail Prices API,2025-12-18T04:45:26.208846 +AZURE,westeurope,Standard_D48ads_v5,reserved_3y,NA,1.139992,USD,Azure Retail Prices API,2025-12-18T04:45:26.208849 +AZURE,westeurope,Standard_D48ads_v5,spot,NA,0.6471,USD,Azure Retail Prices API,2025-12-18T04:45:24.779253 +AZURE,westeurope,Standard_D48ads_v6,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:45:24.779123 +AZURE,westeurope,Standard_D48ads_v6,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:45:26.209306 +AZURE,westeurope,Standard_D48ads_v6,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:45:26.209309 +AZURE,westeurope,Standard_D48ads_v6,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:45:24.780284 +AZURE,westeurope,Standard_D48as_v4,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:45:24.780988 +AZURE,westeurope,Standard_D48as_v4,reserved_1y,NA,1.835616,USD,Azure Retail Prices API,2025-12-18T04:45:26.210300 +AZURE,westeurope,Standard_D48as_v4,reserved_3y,NA,1.263014,USD,Azure Retail Prices API,2025-12-18T04:45:26.210303 +AZURE,westeurope,Standard_D48as_v4,spot,NA,0.595332,USD,Azure Retail Prices API,2025-12-18T04:45:24.780659 +AZURE,westeurope,Standard_D48as_v5,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:24.779592 +AZURE,westeurope,Standard_D48as_v5,reserved_1y,NA,1.472603,USD,Azure Retail Prices API,2025-12-18T04:45:26.209532 +AZURE,westeurope,Standard_D48as_v5,reserved_3y,NA,0.948478,USD,Azure Retail Prices API,2025-12-18T04:45:26.209535 +AZURE,westeurope,Standard_D48as_v5,spot,NA,0.538387,USD,Azure Retail Prices API,2025-12-18T04:45:24.778189 +AZURE,westeurope,Standard_D48d_v4,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:45:24.779930 +AZURE,westeurope,Standard_D48d_v4,reserved_1y,NA,1.925685,USD,Azure Retail Prices API,2025-12-18T04:45:26.209688 +AZURE,westeurope,Standard_D48d_v4,reserved_3y,NA,1.240297,USD,Azure Retail Prices API,2025-12-18T04:45:26.209691 +AZURE,westeurope,Standard_D48d_v4,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:45:24.779830 +AZURE,westeurope,Standard_D48ds_v4,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:45:24.779897 +AZURE,westeurope,Standard_D48ds_v4,reserved_1y,NA,1.925685,USD,Azure Retail Prices API,2025-12-18T04:45:26.209671 +AZURE,westeurope,Standard_D48ds_v4,reserved_3y,NA,1.240297,USD,Azure Retail Prices API,2025-12-18T04:45:26.209674 +AZURE,westeurope,Standard_D48ds_v4,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:45:24.781238 +AZURE,westeurope,Standard_D48ds_v5,on_demand,NA,3.264,USD,Azure Retail Prices API,2025-12-18T04:45:24.778896 +AZURE,westeurope,Standard_D48ds_v5,reserved_1y,NA,1.925799,USD,Azure Retail Prices API,2025-12-18T04:45:26.209254 +AZURE,westeurope,Standard_D48ds_v5,reserved_3y,NA,1.240335,USD,Azure Retail Prices API,2025-12-18T04:45:26.209257 +AZURE,westeurope,Standard_D48ds_v5,spot,NA,0.603187,USD,Azure Retail Prices API,2025-12-18T04:45:24.778013 +AZURE,westeurope,Standard_D48ds_v6,on_demand,NA,3.582,USD,Azure Retail Prices API,2025-12-18T04:45:24.780444 +AZURE,westeurope,Standard_D48ds_v6,reserved_1y,NA,2.220662,USD,Azure Retail Prices API,2025-12-18T04:45:26.209975 +AZURE,westeurope,Standard_D48ds_v6,reserved_3y,NA,1.39688,USD,Azure Retail Prices API,2025-12-18T04:45:26.209979 +AZURE,westeurope,Standard_D48ds_v6,spot,NA,0.661954,USD,Azure Retail Prices API,2025-12-18T04:45:24.779285 +AZURE,westeurope,Standard_D48pds_v6,on_demand,NA,2.635,USD,Azure Retail Prices API,2025-12-18T04:45:24.780906 +AZURE,westeurope,Standard_D48pds_v6,reserved_1y,NA,1.554795,USD,Azure Retail Prices API,2025-12-18T04:45:26.210267 +AZURE,westeurope,Standard_D48pds_v6,reserved_3y,NA,1.00137,USD,Azure Retail Prices API,2025-12-18T04:45:26.210270 +AZURE,westeurope,Standard_D48pds_v6,spot,NA,0.51119,USD,Azure Retail Prices API,2025-12-18T04:45:24.779993 +AZURE,westeurope,Standard_D48ps_v6,on_demand,NA,2.011,USD,Azure Retail Prices API,2025-12-18T04:45:24.778386 +AZURE,westeurope,Standard_D48ps_v6,reserved_1y,NA,1.186644,USD,Azure Retail Prices API,2025-12-18T04:45:26.208962 +AZURE,westeurope,Standard_D48ps_v6,reserved_3y,NA,0.764269,USD,Azure Retail Prices API,2025-12-18T04:45:26.208965 +AZURE,westeurope,Standard_D48ps_v6,spot,NA,0.390134,USD,Azure Retail Prices API,2025-12-18T04:45:24.779959 +AZURE,westeurope,Standard_D48s_v4,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:45:24.778488 +AZURE,westeurope,Standard_D48s_v4,reserved_1y,NA,1.628425,USD,Azure Retail Prices API,2025-12-18T04:45:26.209024 +AZURE,westeurope,Standard_D48s_v4,reserved_3y,NA,1.048782,USD,Azure Retail Prices API,2025-12-18T04:45:26.209027 +AZURE,westeurope,Standard_D48s_v4,spot,NA,0.510048,USD,Azure Retail Prices API,2025-12-18T04:45:24.779657 +AZURE,westeurope,Standard_D48s_v5,on_demand,NA,2.76,USD,Azure Retail Prices API,2025-12-18T04:45:24.779813 +AZURE,westeurope,Standard_D48s_v5,reserved_1y,NA,1.573174,USD,Azure Retail Prices API,2025-12-18T04:45:26.209619 +AZURE,westeurope,Standard_D48s_v5,reserved_3y,NA,1.021195,USD,Azure Retail Prices API,2025-12-18T04:45:26.209622 +AZURE,westeurope,Standard_D48s_v5,spot,NA,0.510048,USD,Azure Retail Prices API,2025-12-18T04:45:24.778797 +AZURE,westeurope,Standard_D4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486104 +AZURE,westeurope,Standard_D4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486113 +AZURE,westeurope,Standard_D4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486120 +AZURE,westeurope,Standard_D4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486108 +AZURE,westeurope,Standard_D4a_v4,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:24.780181 +AZURE,westeurope,Standard_D4a_v4,reserved_1y,NA,0.152968,USD,Azure Retail Prices API,2025-12-18T04:45:26.209809 +AZURE,westeurope,Standard_D4a_v4,reserved_3y,NA,0.105251,USD,Azure Retail Prices API,2025-12-18T04:45:26.209812 +AZURE,westeurope,Standard_D4a_v4,spot,NA,0.049611,USD,Azure Retail Prices API,2025-12-18T04:45:24.781179 +AZURE,westeurope,Standard_D4ads_v5,on_demand,NA,0.434,USD,Azure Retail Prices API,2025-12-18T04:45:24.778102 +AZURE,westeurope,Standard_D4ads_v5,reserved_1y,NA,0.147489,USD,Azure Retail Prices API,2025-12-18T04:45:26.210306 +AZURE,westeurope,Standard_D4ads_v5,reserved_3y,NA,0.095015,USD,Azure Retail Prices API,2025-12-18T04:45:26.210309 +AZURE,westeurope,Standard_D4ads_v5,spot,NA,0.053925,USD,Azure Retail Prices API,2025-12-18T04:45:24.781158 +AZURE,westeurope,Standard_D4ads_v6,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:45:24.778779 +AZURE,westeurope,Standard_D4ads_v6,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:45:26.209190 +AZURE,westeurope,Standard_D4ads_v6,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:45:26.209193 +AZURE,westeurope,Standard_D4ads_v6,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:45:24.778476 +AZURE,westeurope,Standard_D4as_v5,on_demand,NA,0.392,USD,Azure Retail Prices API,2025-12-18T04:45:24.779947 +AZURE,westeurope,Standard_D4as_v5,reserved_1y,NA,0.122717,USD,Azure Retail Prices API,2025-12-18T04:45:26.209993 +AZURE,westeurope,Standard_D4as_v5,reserved_3y,NA,0.079033,USD,Azure Retail Prices API,2025-12-18T04:45:26.209996 +AZURE,westeurope,Standard_D4as_v5,spot,NA,0.044866,USD,Azure Retail Prices API,2025-12-18T04:45:24.780121 +AZURE,westeurope,Standard_D4d_v4,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:45:24.779581 +AZURE,westeurope,Standard_D4d_v4,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:45:26.209520 +AZURE,westeurope,Standard_D4d_v4,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:45:26.209524 +AZURE,westeurope,Standard_D4d_v4,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:45:24.778195 +AZURE,westeurope,Standard_D4ds_v4,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:45:24.780506 +AZURE,westeurope,Standard_D4ds_v4,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:45:26.210022 +AZURE,westeurope,Standard_D4ds_v4,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:45:26.210025 +AZURE,westeurope,Standard_D4ds_v4,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:45:24.780849 +AZURE,westeurope,Standard_D4ds_v5,on_demand,NA,0.272,USD,Azure Retail Prices API,2025-12-18T04:45:24.778567 +AZURE,westeurope,Standard_D4ds_v5,reserved_1y,NA,0.160502,USD,Azure Retail Prices API,2025-12-18T04:45:26.209071 +AZURE,westeurope,Standard_D4ds_v5,reserved_3y,NA,0.103349,USD,Azure Retail Prices API,2025-12-18T04:45:26.209074 +AZURE,westeurope,Standard_D4ds_v5,spot,NA,0.050266,USD,Azure Retail Prices API,2025-12-18T04:45:24.777981 +AZURE,westeurope,Standard_D4ds_v6,on_demand,NA,0.298,USD,Azure Retail Prices API,2025-12-18T04:45:24.781060 +AZURE,westeurope,Standard_D4ds_v6,reserved_1y,NA,0.185046,USD,Azure Retail Prices API,2025-12-18T04:45:26.210340 +AZURE,westeurope,Standard_D4ds_v6,reserved_3y,NA,0.1164,USD,Azure Retail Prices API,2025-12-18T04:45:26.210343 +AZURE,westeurope,Standard_D4ds_v6,spot,NA,0.05507,USD,Azure Retail Prices API,2025-12-18T04:45:24.778736 +AZURE,westeurope,Standard_D4pds_v6,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:24.780832 +AZURE,westeurope,Standard_D4pds_v6,reserved_1y,NA,0.129566,USD,Azure Retail Prices API,2025-12-18T04:45:26.210244 +AZURE,westeurope,Standard_D4pds_v6,reserved_3y,NA,0.083447,USD,Azure Retail Prices API,2025-12-18T04:45:26.210246 +AZURE,westeurope,Standard_D4pds_v6,spot,NA,0.04268,USD,Azure Retail Prices API,2025-12-18T04:45:24.780296 +AZURE,westeurope,Standard_D4ps_v6,on_demand,NA,0.168,USD,Azure Retail Prices API,2025-12-18T04:45:24.778852 +AZURE,westeurope,Standard_D4ps_v6,reserved_1y,NA,0.098858,USD,Azure Retail Prices API,2025-12-18T04:45:26.209231 +AZURE,westeurope,Standard_D4ps_v6,reserved_3y,NA,0.063699,USD,Azure Retail Prices API,2025-12-18T04:45:26.209234 +AZURE,westeurope,Standard_D4ps_v6,spot,NA,0.032592,USD,Azure Retail Prices API,2025-12-18T04:45:24.780225 +AZURE,westeurope,Standard_D4s_v3,on_demand,NA,0.24,USD,Azure Retail Prices API,2025-12-18T04:45:24.780364 +AZURE,westeurope,Standard_D4s_v3,reserved_1y,NA,0.152854,USD,Azure Retail Prices API,2025-12-18T04:45:26.209940 +AZURE,westeurope,Standard_D4s_v3,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:45:26.209943 +AZURE,westeurope,Standard_D4s_v3,spot,NA,0.044352,USD,Azure Retail Prices API,2025-12-18T04:45:24.779707 +AZURE,westeurope,Standard_D4s_v4,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:24.778135 +AZURE,westeurope,Standard_D4s_v4,reserved_1y,NA,0.135731,USD,Azure Retail Prices API,2025-12-18T04:45:26.208821 +AZURE,westeurope,Standard_D4s_v4,reserved_3y,NA,0.087405,USD,Azure Retail Prices API,2025-12-18T04:45:26.208824 +AZURE,westeurope,Standard_D4s_v4,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:24.780268 +AZURE,westeurope,Standard_D4s_v5,on_demand,NA,0.23,USD,Azure Retail Prices API,2025-12-18T04:45:24.778320 +AZURE,westeurope,Standard_D4s_v5,reserved_1y,NA,0.13105,USD,Azure Retail Prices API,2025-12-18T04:45:26.208911 +AZURE,westeurope,Standard_D4s_v5,reserved_3y,NA,0.085084,USD,Azure Retail Prices API,2025-12-18T04:45:26.208915 +AZURE,westeurope,Standard_D4s_v5,spot,NA,0.042504,USD,Azure Retail Prices API,2025-12-18T04:45:24.779100 +AZURE,westeurope,Standard_D5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487173 +AZURE,westeurope,Standard_D5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487187 +AZURE,westeurope,Standard_D5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487194 +AZURE,westeurope,Standard_D5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487180 +AZURE,westeurope,Standard_D64_v3,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:24.780307 +AZURE,westeurope,Standard_D64_v3,reserved_1y,NA,2.446119,USD,Azure Retail Prices API,2025-12-18T04:45:26.209896 +AZURE,westeurope,Standard_D64_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:45:26.209899 +AZURE,westeurope,Standard_D64_v3,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:45:24.780038 +AZURE,westeurope,Standard_D64a_v4,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:24.781460 +AZURE,westeurope,Standard_D64a_v4,reserved_1y,NA,2.447489,USD,Azure Retail Prices API,2025-12-18T04:45:26.210529 +AZURE,westeurope,Standard_D64a_v4,reserved_3y,NA,1.684018,USD,Azure Retail Prices API,2025-12-18T04:45:26.210531 +AZURE,westeurope,Standard_D64a_v4,spot,NA,0.793776,USD,Azure Retail Prices API,2025-12-18T04:45:24.778752 +AZURE,westeurope,Standard_D64ads_v5,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.780208 +AZURE,westeurope,Standard_D64ads_v5,reserved_1y,NA,2.360046,USD,Azure Retail Prices API,2025-12-18T04:45:26.209832 +AZURE,westeurope,Standard_D64ads_v5,reserved_3y,NA,1.520015,USD,Azure Retail Prices API,2025-12-18T04:45:26.209834 +AZURE,westeurope,Standard_D64ads_v5,spot,NA,0.8628,USD,Azure Retail Prices API,2025-12-18T04:45:24.778064 +AZURE,westeurope,Standard_D64ads_v6,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:45:24.778698 +AZURE,westeurope,Standard_D64ads_v6,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:45:26.209136 +AZURE,westeurope,Standard_D64ads_v6,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:45:26.209139 +AZURE,westeurope,Standard_D64ads_v6,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:45:24.778681 +AZURE,westeurope,Standard_D64as_v4,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:24.779836 +AZURE,westeurope,Standard_D64as_v4,reserved_1y,NA,2.447489,USD,Azure Retail Prices API,2025-12-18T04:45:26.209631 +AZURE,westeurope,Standard_D64as_v4,reserved_3y,NA,1.684018,USD,Azure Retail Prices API,2025-12-18T04:45:26.209635 +AZURE,westeurope,Standard_D64as_v4,spot,NA,0.793776,USD,Azure Retail Prices API,2025-12-18T04:45:24.780247 +AZURE,westeurope,Standard_D64as_v5,on_demand,NA,6.272,USD,Azure Retail Prices API,2025-12-18T04:45:24.779280 +AZURE,westeurope,Standard_D64as_v5,reserved_1y,NA,1.96347,USD,Azure Retail Prices API,2025-12-18T04:45:26.209999 +AZURE,westeurope,Standard_D64as_v5,reserved_3y,NA,1.26465,USD,Azure Retail Prices API,2025-12-18T04:45:26.210002 +AZURE,westeurope,Standard_D64as_v5,spot,NA,0.71785,USD,Azure Retail Prices API,2025-12-18T04:45:24.780290 +AZURE,westeurope,Standard_D64d_v4,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:45:24.780393 +AZURE,westeurope,Standard_D64d_v4,reserved_1y,NA,2.56758,USD,Azure Retail Prices API,2025-12-18T04:45:26.209958 +AZURE,westeurope,Standard_D64d_v4,reserved_3y,NA,1.653691,USD,Azure Retail Prices API,2025-12-18T04:45:26.209960 +AZURE,westeurope,Standard_D64d_v4,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:45:24.780676 +AZURE,westeurope,Standard_D64ds_v4,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:45:24.780055 +AZURE,westeurope,Standard_D64ds_v4,reserved_1y,NA,2.56758,USD,Azure Retail Prices API,2025-12-18T04:45:26.209751 +AZURE,westeurope,Standard_D64ds_v4,reserved_3y,NA,1.653691,USD,Azure Retail Prices API,2025-12-18T04:45:26.209754 +AZURE,westeurope,Standard_D64ds_v4,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:45:24.780620 +AZURE,westeurope,Standard_D64ds_v5,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:45:24.779185 +AZURE,westeurope,Standard_D64ds_v5,reserved_1y,NA,2.567694,USD,Azure Retail Prices API,2025-12-18T04:45:26.209329 +AZURE,westeurope,Standard_D64ds_v5,reserved_3y,NA,1.653767,USD,Azure Retail Prices API,2025-12-18T04:45:26.209331 +AZURE,westeurope,Standard_D64ds_v5,spot,NA,0.80425,USD,Azure Retail Prices API,2025-12-18T04:45:24.780994 +AZURE,westeurope,Standard_D64ds_v6,on_demand,NA,4.776,USD,Azure Retail Prices API,2025-12-18T04:45:24.779313 +AZURE,westeurope,Standard_D64ds_v6,reserved_1y,NA,2.960959,USD,Azure Retail Prices API,2025-12-18T04:45:26.209406 +AZURE,westeurope,Standard_D64ds_v6,reserved_3y,NA,1.862519,USD,Azure Retail Prices API,2025-12-18T04:45:26.209409 +AZURE,westeurope,Standard_D64ds_v6,spot,NA,0.882605,USD,Azure Retail Prices API,2025-12-18T04:45:24.778510 +AZURE,westeurope,Standard_D64pds_v6,on_demand,NA,3.514,USD,Azure Retail Prices API,2025-12-18T04:45:24.780545 +AZURE,westeurope,Standard_D64pds_v6,reserved_1y,NA,2.073059,USD,Azure Retail Prices API,2025-12-18T04:45:26.210034 +AZURE,westeurope,Standard_D64pds_v6,reserved_3y,NA,1.33516,USD,Azure Retail Prices API,2025-12-18T04:45:26.210037 +AZURE,westeurope,Standard_D64pds_v6,spot,NA,0.681716,USD,Azure Retail Prices API,2025-12-18T04:45:24.779173 +AZURE,westeurope,Standard_D64ps_v6,on_demand,NA,2.682,USD,Azure Retail Prices API,2025-12-18T04:45:24.779058 +AZURE,westeurope,Standard_D64ps_v6,reserved_1y,NA,1.582192,USD,Azure Retail Prices API,2025-12-18T04:45:26.209288 +AZURE,westeurope,Standard_D64ps_v6,reserved_3y,NA,1.019026,USD,Azure Retail Prices API,2025-12-18T04:45:26.209291 +AZURE,westeurope,Standard_D64ps_v6,spot,NA,0.520308,USD,Azure Retail Prices API,2025-12-18T04:45:24.779779 +AZURE,westeurope,Standard_D64s_v3,on_demand,NA,3.84,USD,Azure Retail Prices API,2025-12-18T04:45:24.779976 +AZURE,westeurope,Standard_D64s_v3,reserved_1y,NA,2.446119,USD,Azure Retail Prices API,2025-12-18T04:45:26.209711 +AZURE,westeurope,Standard_D64s_v3,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:45:26.209713 +AZURE,westeurope,Standard_D64s_v3,spot,NA,0.709632,USD,Azure Retail Prices API,2025-12-18T04:45:24.780540 +AZURE,westeurope,Standard_D64s_v4,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:24.781221 +AZURE,westeurope,Standard_D64s_v4,reserved_1y,NA,2.171119,USD,Azure Retail Prices API,2025-12-18T04:45:26.210395 +AZURE,westeurope,Standard_D64s_v4,reserved_3y,NA,1.398364,USD,Azure Retail Prices API,2025-12-18T04:45:26.210398 +AZURE,westeurope,Standard_D64s_v4,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:45:24.779668 +AZURE,westeurope,Standard_D64s_v5,on_demand,NA,3.68,USD,Azure Retail Prices API,2025-12-18T04:45:24.778836 +AZURE,westeurope,Standard_D64s_v5,reserved_1y,NA,2.097603,USD,Azure Retail Prices API,2025-12-18T04:45:26.209219 +AZURE,westeurope,Standard_D64s_v5,reserved_3y,NA,1.361606,USD,Azure Retail Prices API,2025-12-18T04:45:26.209222 +AZURE,westeurope,Standard_D64s_v5,spot,NA,0.680064,USD,Azure Retail Prices API,2025-12-18T04:45:24.780344 +AZURE,westeurope,Standard_D8_v3,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:45:24.779841 +AZURE,westeurope,Standard_D8_v3,reserved_1y,NA,0.305708,USD,Azure Retail Prices API,2025-12-18T04:45:26.209637 +AZURE,westeurope,Standard_D8_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:45:26.209640 +AZURE,westeurope,Standard_D8_v3,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:45:24.780350 +AZURE,westeurope,Standard_D8a_v4,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:24.778858 +AZURE,westeurope,Standard_D8a_v4,reserved_1y,NA,0.305936,USD,Azure Retail Prices API,2025-12-18T04:45:26.209236 +AZURE,westeurope,Standard_D8a_v4,reserved_3y,NA,0.210502,USD,Azure Retail Prices API,2025-12-18T04:45:26.209239 +AZURE,westeurope,Standard_D8a_v4,spot,NA,0.099222,USD,Azure Retail Prices API,2025-12-18T04:45:24.778584 +AZURE,westeurope,Standard_D8ads_v5,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:45:24.779880 +AZURE,westeurope,Standard_D8ads_v5,reserved_1y,NA,0.294977,USD,Azure Retail Prices API,2025-12-18T04:45:26.209666 +AZURE,westeurope,Standard_D8ads_v5,reserved_3y,NA,0.189992,USD,Azure Retail Prices API,2025-12-18T04:45:26.209668 +AZURE,westeurope,Standard_D8ads_v5,spot,NA,0.10785,USD,Azure Retail Prices API,2025-12-18T04:45:24.781289 +AZURE,westeurope,Standard_D8ads_v6,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:45:24.780312 +AZURE,westeurope,Standard_D8ads_v6,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:45:26.209901 +AZURE,westeurope,Standard_D8ads_v6,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:45:26.209904 +AZURE,westeurope,Standard_D8ads_v6,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:45:24.780799 +AZURE,westeurope,Standard_D8as_v4,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:24.778526 +AZURE,westeurope,Standard_D8as_v4,reserved_1y,NA,0.305936,USD,Azure Retail Prices API,2025-12-18T04:45:26.209047 +AZURE,westeurope,Standard_D8as_v4,reserved_3y,NA,0.210502,USD,Azure Retail Prices API,2025-12-18T04:45:26.209050 +AZURE,westeurope,Standard_D8as_v4,spot,NA,0.099222,USD,Azure Retail Prices API,2025-12-18T04:45:24.780626 +AZURE,westeurope,Standard_D8as_v5,on_demand,NA,0.784,USD,Azure Retail Prices API,2025-12-18T04:45:24.779001 +AZURE,westeurope,Standard_D8as_v5,reserved_1y,NA,0.245434,USD,Azure Retail Prices API,2025-12-18T04:45:26.210199 +AZURE,westeurope,Standard_D8as_v5,reserved_3y,NA,0.158067,USD,Azure Retail Prices API,2025-12-18T04:45:26.210201 +AZURE,westeurope,Standard_D8as_v5,spot,NA,0.089731,USD,Azure Retail Prices API,2025-12-18T04:45:24.779430 +AZURE,westeurope,Standard_D8d_v4,on_demand,NA,0.544,USD,Azure Retail Prices API,2025-12-18T04:45:24.779999 +AZURE,westeurope,Standard_D8d_v4,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:45:26.209722 +AZURE,westeurope,Standard_D8d_v4,reserved_3y,NA,0.206697,USD,Azure Retail Prices API,2025-12-18T04:45:26.209724 +AZURE,westeurope,Standard_D8d_v4,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:45:24.780888 +AZURE,westeurope,Standard_D8ds_v4,on_demand,NA,0.544,USD,Azure Retail Prices API,2025-12-18T04:45:24.780682 +AZURE,westeurope,Standard_D8ds_v4,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:45:26.210130 +AZURE,westeurope,Standard_D8ds_v4,reserved_3y,NA,0.206697,USD,Azure Retail Prices API,2025-12-18T04:45:26.210133 +AZURE,westeurope,Standard_D8ds_v4,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:45:24.780359 +AZURE,westeurope,Standard_D8ds_v5,on_demand,NA,0.544,USD,Azure Retail Prices API,2025-12-18T04:45:24.778544 +AZURE,westeurope,Standard_D8ds_v5,reserved_1y,NA,0.321005,USD,Azure Retail Prices API,2025-12-18T04:45:26.209059 +AZURE,westeurope,Standard_D8ds_v5,reserved_3y,NA,0.206735,USD,Azure Retail Prices API,2025-12-18T04:45:26.209062 +AZURE,westeurope,Standard_D8ds_v5,spot,NA,0.100531,USD,Azure Retail Prices API,2025-12-18T04:45:24.780099 +AZURE,westeurope,Standard_D8ds_v6,on_demand,NA,0.597,USD,Azure Retail Prices API,2025-12-18T04:45:24.780556 +AZURE,westeurope,Standard_D8ds_v6,reserved_1y,NA,0.370091,USD,Azure Retail Prices API,2025-12-18T04:45:26.210046 +AZURE,westeurope,Standard_D8ds_v6,reserved_3y,NA,0.232801,USD,Azure Retail Prices API,2025-12-18T04:45:26.210048 +AZURE,westeurope,Standard_D8ds_v6,spot,NA,0.110326,USD,Azure Retail Prices API,2025-12-18T04:45:24.780590 +AZURE,westeurope,Standard_D8pds_v6,on_demand,NA,0.439,USD,Azure Retail Prices API,2025-12-18T04:45:24.781283 +AZURE,westeurope,Standard_D8pds_v6,reserved_1y,NA,0.259132,USD,Azure Retail Prices API,2025-12-18T04:45:26.210434 +AZURE,westeurope,Standard_D8pds_v6,reserved_3y,NA,0.166895,USD,Azure Retail Prices API,2025-12-18T04:45:26.210439 +AZURE,westeurope,Standard_D8pds_v6,spot,NA,0.085166,USD,Azure Retail Prices API,2025-12-18T04:45:24.779858 +AZURE,westeurope,Standard_D8ps_v6,on_demand,NA,0.335,USD,Azure Retail Prices API,2025-12-18T04:45:24.778572 +AZURE,westeurope,Standard_D8ps_v6,reserved_1y,NA,0.197717,USD,Azure Retail Prices API,2025-12-18T04:45:26.209077 +AZURE,westeurope,Standard_D8ps_v6,reserved_3y,NA,0.127359,USD,Azure Retail Prices API,2025-12-18T04:45:26.209080 +AZURE,westeurope,Standard_D8ps_v6,spot,NA,0.06499,USD,Azure Retail Prices API,2025-12-18T04:45:24.780387 +AZURE,westeurope,Standard_D8s_v3,on_demand,NA,0.48,USD,Azure Retail Prices API,2025-12-18T04:45:24.779796 +AZURE,westeurope,Standard_D8s_v3,reserved_1y,NA,0.305708,USD,Azure Retail Prices API,2025-12-18T04:45:26.209602 +AZURE,westeurope,Standard_D8s_v3,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:45:26.209605 +AZURE,westeurope,Standard_D8s_v3,spot,NA,0.088704,USD,Azure Retail Prices API,2025-12-18T04:45:24.780973 +AZURE,westeurope,Standard_D8s_v4,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:24.781313 +AZURE,westeurope,Standard_D8s_v4,reserved_1y,NA,0.271347,USD,Azure Retail Prices API,2025-12-18T04:45:26.210444 +AZURE,westeurope,Standard_D8s_v4,reserved_3y,NA,0.17481,USD,Azure Retail Prices API,2025-12-18T04:45:26.210446 +AZURE,westeurope,Standard_D8s_v4,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:45:24.779953 +AZURE,westeurope,Standard_D8s_v5,on_demand,NA,0.46,USD,Azure Retail Prices API,2025-12-18T04:45:24.779442 +AZURE,westeurope,Standard_D8s_v5,reserved_1y,NA,0.262215,USD,Azure Retail Prices API,2025-12-18T04:45:26.209445 +AZURE,westeurope,Standard_D8s_v5,reserved_3y,NA,0.170205,USD,Azure Retail Prices API,2025-12-18T04:45:26.209449 +AZURE,westeurope,Standard_D8s_v5,spot,NA,0.085008,USD,Azure Retail Prices API,2025-12-18T04:45:24.780410 +AZURE,westeurope,Standard_D96a_v4,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:45:24.779190 +AZURE,westeurope,Standard_D96a_v4,reserved_1y,NA,3.671233,USD,Azure Retail Prices API,2025-12-18T04:45:26.209334 +AZURE,westeurope,Standard_D96a_v4,reserved_3y,NA,2.526027,USD,Azure Retail Prices API,2025-12-18T04:45:26.209337 +AZURE,westeurope,Standard_D96a_v4,spot,NA,1.190664,USD,Azure Retail Prices API,2025-12-18T04:45:24.779785 +AZURE,westeurope,Standard_D96ads_v5,on_demand,NA,6.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.779696 +AZURE,westeurope,Standard_D96ads_v5,reserved_1y,NA,3.539954,USD,Azure Retail Prices API,2025-12-18T04:45:26.209550 +AZURE,westeurope,Standard_D96ads_v5,reserved_3y,NA,2.279985,USD,Azure Retail Prices API,2025-12-18T04:45:26.209553 +AZURE,westeurope,Standard_D96ads_v5,spot,NA,1.2942,USD,Azure Retail Prices API,2025-12-18T04:45:24.778305 +AZURE,westeurope,Standard_D96ads_v6,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:45:24.780579 +AZURE,westeurope,Standard_D96ads_v6,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:45:26.210072 +AZURE,westeurope,Standard_D96ads_v6,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:45:26.210078 +AZURE,westeurope,Standard_D96ads_v6,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:45:24.779519 +AZURE,westeurope,Standard_D96as_v4,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:45:24.778704 +AZURE,westeurope,Standard_D96as_v4,reserved_1y,NA,3.671233,USD,Azure Retail Prices API,2025-12-18T04:45:26.209142 +AZURE,westeurope,Standard_D96as_v4,reserved_3y,NA,2.526027,USD,Azure Retail Prices API,2025-12-18T04:45:26.209145 +AZURE,westeurope,Standard_D96as_v4,spot,NA,1.190664,USD,Azure Retail Prices API,2025-12-18T04:45:24.778606 +AZURE,westeurope,Standard_D96as_v5,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:45:24.778397 +AZURE,westeurope,Standard_D96as_v5,reserved_1y,NA,2.94532,USD,Azure Retail Prices API,2025-12-18T04:45:26.208968 +AZURE,westeurope,Standard_D96as_v5,reserved_3y,NA,1.896956,USD,Azure Retail Prices API,2025-12-18T04:45:26.208971 +AZURE,westeurope,Standard_D96as_v5,spot,NA,1.076774,USD,Azure Retail Prices API,2025-12-18T04:45:24.781043 +AZURE,westeurope,Standard_D96ds_v5,on_demand,NA,6.528,USD,Azure Retail Prices API,2025-12-18T04:45:24.778516 +AZURE,westeurope,Standard_D96ds_v5,reserved_1y,NA,3.851484,USD,Azure Retail Prices API,2025-12-18T04:45:26.209036 +AZURE,westeurope,Standard_D96ds_v5,reserved_3y,NA,2.480632,USD,Azure Retail Prices API,2025-12-18T04:45:26.209038 +AZURE,westeurope,Standard_D96ds_v5,spot,NA,1.206374,USD,Azure Retail Prices API,2025-12-18T04:45:24.779891 +AZURE,westeurope,Standard_D96ds_v6,on_demand,NA,7.164,USD,Azure Retail Prices API,2025-12-18T04:45:24.780584 +AZURE,westeurope,Standard_D96ds_v6,reserved_1y,NA,4.441438,USD,Azure Retail Prices API,2025-12-18T04:45:26.210082 +AZURE,westeurope,Standard_D96ds_v6,reserved_3y,NA,2.79376,USD,Azure Retail Prices API,2025-12-18T04:45:26.210087 +AZURE,westeurope,Standard_D96ds_v6,spot,NA,1.323907,USD,Azure Retail Prices API,2025-12-18T04:45:24.779219 +AZURE,westeurope,Standard_D96pds_v6,on_demand,NA,5.27,USD,Azure Retail Prices API,2025-12-18T04:45:24.780016 +AZURE,westeurope,Standard_D96pds_v6,reserved_1y,NA,3.109589,USD,Azure Retail Prices API,2025-12-18T04:45:26.209728 +AZURE,westeurope,Standard_D96pds_v6,reserved_3y,NA,2.00274,USD,Azure Retail Prices API,2025-12-18T04:45:26.209731 +AZURE,westeurope,Standard_D96pds_v6,spot,NA,1.02238,USD,Azure Retail Prices API,2025-12-18T04:45:24.779117 +AZURE,westeurope,Standard_D96ps_v6,on_demand,NA,4.022,USD,Azure Retail Prices API,2025-12-18T04:45:24.780738 +AZURE,westeurope,Standard_D96ps_v6,reserved_1y,NA,2.373174,USD,Azure Retail Prices API,2025-12-18T04:45:26.210176 +AZURE,westeurope,Standard_D96ps_v6,reserved_3y,NA,1.528501,USD,Azure Retail Prices API,2025-12-18T04:45:26.210179 +AZURE,westeurope,Standard_D96ps_v6,spot,NA,0.780268,USD,Azure Retail Prices API,2025-12-18T04:45:24.778901 +AZURE,westeurope,Standard_D96s_v5,on_demand,NA,5.52,USD,Azure Retail Prices API,2025-12-18T04:45:24.780816 +AZURE,westeurope,Standard_D96s_v5,reserved_1y,NA,3.146347,USD,Azure Retail Prices API,2025-12-18T04:45:26.210233 +AZURE,westeurope,Standard_D96s_v5,reserved_3y,NA,2.04239,USD,Azure Retail Prices API,2025-12-18T04:45:26.210235 +AZURE,westeurope,Standard_D96s_v5,spot,NA,1.020096,USD,Azure Retail Prices API,2025-12-18T04:45:24.779773 +AZURE,westeurope,Standard_DC16ads_v5,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.778365 +AZURE,westeurope,Standard_DC16ads_v5,reserved_1y,NA,0.8,USD,Azure Retail Prices API,2025-12-18T04:45:26.208944 +AZURE,westeurope,Standard_DC16ads_v5,reserved_3y,NA,0.6,USD,Azure Retail Prices API,2025-12-18T04:45:26.208947 +AZURE,westeurope,Standard_DC16ads_v5,spot,NA,0.1887,USD,Azure Retail Prices API,2025-12-18T04:45:24.779982 +AZURE,westeurope,Standard_DC16ads_v6,on_demand,NA,1.104,USD,Azure Retail Prices API,2025-12-18T04:45:24.781465 +AZURE,westeurope,Standard_DC16ads_v6,reserved_1y,NA,0.65137,USD,Azure Retail Prices API,2025-12-18T04:45:26.210535 +AZURE,westeurope,Standard_DC16ads_v6,reserved_3y,NA,0.419521,USD,Azure Retail Prices API,2025-12-18T04:45:26.210538 +AZURE,westeurope,Standard_DC16ads_v6,spot,NA,0.204019,USD,Azure Retail Prices API,2025-12-18T04:45:24.781363 +AZURE,westeurope,Standard_DC16as_v5,on_demand,NA,0.832,USD,Azure Retail Prices API,2025-12-18T04:45:24.780501 +AZURE,westeurope,Standard_DC16as_v5,reserved_1y,NA,0.665639,USD,Azure Retail Prices API,2025-12-18T04:45:26.210017 +AZURE,westeurope,Standard_DC16as_v5,reserved_3y,NA,0.499201,USD,Azure Retail Prices API,2025-12-18T04:45:26.210019 +AZURE,westeurope,Standard_DC16as_v5,spot,NA,0.156998,USD,Azure Retail Prices API,2025-12-18T04:45:24.779690 +AZURE,westeurope,Standard_DC2ads_v6,on_demand,NA,0.138,USD,Azure Retail Prices API,2025-12-18T04:45:24.781066 +AZURE,westeurope,Standard_DC2ads_v6,reserved_1y,NA,0.081393,USD,Azure Retail Prices API,2025-12-18T04:45:26.210346 +AZURE,westeurope,Standard_DC2ads_v6,reserved_3y,NA,0.052435,USD,Azure Retail Prices API,2025-12-18T04:45:26.210348 +AZURE,westeurope,Standard_DC2ads_v6,spot,NA,0.025502,USD,Azure Retail Prices API,2025-12-18T04:45:24.781448 +AZURE,westeurope,Standard_DC32ads_v5,on_demand,NA,2.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.779129 +AZURE,westeurope,Standard_DC32ads_v5,reserved_1y,NA,1.6,USD,Azure Retail Prices API,2025-12-18T04:45:26.209312 +AZURE,westeurope,Standard_DC32ads_v5,reserved_3y,NA,1.2,USD,Azure Retail Prices API,2025-12-18T04:45:26.209314 +AZURE,westeurope,Standard_DC32ads_v5,spot,NA,0.3774,USD,Azure Retail Prices API,2025-12-18T04:45:24.778030 +AZURE,westeurope,Standard_DC32ads_v6,on_demand,NA,2.208,USD,Azure Retail Prices API,2025-12-18T04:45:24.780653 +AZURE,westeurope,Standard_DC32ads_v6,reserved_1y,NA,1.30274,USD,Azure Retail Prices API,2025-12-18T04:45:26.210117 +AZURE,westeurope,Standard_DC32ads_v6,reserved_3y,NA,0.839041,USD,Azure Retail Prices API,2025-12-18T04:45:26.210120 +AZURE,westeurope,Standard_DC32ads_v6,spot,NA,0.408038,USD,Azure Retail Prices API,2025-12-18T04:45:24.780467 +AZURE,westeurope,Standard_DC32as_v5,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:45:24.781358 +AZURE,westeurope,Standard_DC32as_v5,reserved_1y,NA,1.331164,USD,Azure Retail Prices API,2025-12-18T04:45:26.210462 +AZURE,westeurope,Standard_DC32as_v5,reserved_3y,NA,0.998402,USD,Azure Retail Prices API,2025-12-18T04:45:26.210465 +AZURE,westeurope,Standard_DC32as_v5,spot,NA,0.313997,USD,Azure Retail Prices API,2025-12-18T04:45:24.778670 +AZURE,westeurope,Standard_DC48ads_v5,on_demand,NA,3.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.778414 +AZURE,westeurope,Standard_DC48ads_v5,reserved_1y,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:45:26.208974 +AZURE,westeurope,Standard_DC48ads_v5,reserved_3y,NA,1.8,USD,Azure Retail Prices API,2025-12-18T04:45:26.208978 +AZURE,westeurope,Standard_DC48ads_v5,spot,NA,0.5661,USD,Azure Retail Prices API,2025-12-18T04:45:24.779712 +AZURE,westeurope,Standard_DC48ads_v6,on_demand,NA,3.312,USD,Azure Retail Prices API,2025-12-18T04:45:24.780631 +AZURE,westeurope,Standard_DC48ads_v6,reserved_1y,NA,1.95411,USD,Azure Retail Prices API,2025-12-18T04:45:26.210110 +AZURE,westeurope,Standard_DC48ads_v6,reserved_3y,NA,1.258562,USD,Azure Retail Prices API,2025-12-18T04:45:26.210114 +AZURE,westeurope,Standard_DC48ads_v6,spot,NA,0.612058,USD,Azure Retail Prices API,2025-12-18T04:45:24.778326 +AZURE,westeurope,Standard_DC48as_v5,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:45:24.781010 +AZURE,westeurope,Standard_DC48as_v5,reserved_1y,NA,1.996804,USD,Azure Retail Prices API,2025-12-18T04:45:26.210317 +AZURE,westeurope,Standard_DC48as_v5,reserved_3y,NA,1.497603,USD,Azure Retail Prices API,2025-12-18T04:45:26.210320 +AZURE,westeurope,Standard_DC48as_v5,spot,NA,0.470995,USD,Azure Retail Prices API,2025-12-18T04:45:24.779325 +AZURE,westeurope,Standard_DC4ads_v5,on_demand,NA,0.25,USD,Azure Retail Prices API,2025-12-18T04:45:24.781201 +AZURE,westeurope,Standard_DC4ads_v5,reserved_1y,NA,0.2,USD,Azure Retail Prices API,2025-12-18T04:45:26.210390 +AZURE,westeurope,Standard_DC4ads_v5,reserved_3y,NA,0.15,USD,Azure Retail Prices API,2025-12-18T04:45:26.210393 +AZURE,westeurope,Standard_DC4ads_v5,spot,NA,0.047175,USD,Azure Retail Prices API,2025-12-18T04:45:24.781414 +AZURE,westeurope,Standard_DC4ads_v6,on_demand,NA,0.276,USD,Azure Retail Prices API,2025-12-18T04:45:24.779735 +AZURE,westeurope,Standard_DC4ads_v6,reserved_1y,NA,0.162785,USD,Azure Retail Prices API,2025-12-18T04:45:26.209567 +AZURE,westeurope,Standard_DC4ads_v6,reserved_3y,NA,0.104871,USD,Azure Retail Prices API,2025-12-18T04:45:26.209570 +AZURE,westeurope,Standard_DC4ads_v6,spot,NA,0.051005,USD,Azure Retail Prices API,2025-12-18T04:45:24.779414 +AZURE,westeurope,Standard_DC4as_v5,on_demand,NA,0.208,USD,Azure Retail Prices API,2025-12-18T04:45:24.781272 +AZURE,westeurope,Standard_DC4as_v5,reserved_1y,NA,0.166438,USD,Azure Retail Prices API,2025-12-18T04:45:26.210422 +AZURE,westeurope,Standard_DC4as_v5,reserved_3y,NA,0.12481,USD,Azure Retail Prices API,2025-12-18T04:45:26.210427 +AZURE,westeurope,Standard_DC4as_v5,spot,NA,0.03925,USD,Azure Retail Prices API,2025-12-18T04:45:24.778113 +AZURE,westeurope,Standard_DC64ads_v5,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.780722 +AZURE,westeurope,Standard_DC64ads_v5,reserved_1y,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:45:26.210159 +AZURE,westeurope,Standard_DC64ads_v5,reserved_3y,NA,2.4,USD,Azure Retail Prices API,2025-12-18T04:45:26.210162 +AZURE,westeurope,Standard_DC64ads_v5,spot,NA,0.7548,USD,Azure Retail Prices API,2025-12-18T04:45:24.778611 +AZURE,westeurope,Standard_DC64ads_v6,on_demand,NA,4.416,USD,Azure Retail Prices API,2025-12-18T04:45:24.780066 +AZURE,westeurope,Standard_DC64ads_v6,reserved_1y,NA,2.605479,USD,Azure Retail Prices API,2025-12-18T04:45:26.209757 +AZURE,westeurope,Standard_DC64ads_v6,reserved_3y,NA,1.678082,USD,Azure Retail Prices API,2025-12-18T04:45:26.209760 +AZURE,westeurope,Standard_DC64ads_v6,spot,NA,0.816077,USD,Azure Retail Prices API,2025-12-18T04:45:24.780022 +AZURE,westeurope,Standard_DC64as_v5,on_demand,NA,3.328,USD,Azure Retail Prices API,2025-12-18T04:45:24.778808 +AZURE,westeurope,Standard_DC64as_v5,reserved_1y,NA,2.662443,USD,Azure Retail Prices API,2025-12-18T04:45:26.209202 +AZURE,westeurope,Standard_DC64as_v5,reserved_3y,NA,1.996804,USD,Azure Retail Prices API,2025-12-18T04:45:26.209205 +AZURE,westeurope,Standard_DC64as_v5,spot,NA,0.627994,USD,Azure Retail Prices API,2025-12-18T04:45:24.779913 +AZURE,westeurope,Standard_DC8ads_v5,on_demand,NA,0.5,USD,Azure Retail Prices API,2025-12-18T04:45:24.779241 +AZURE,westeurope,Standard_DC8ads_v5,reserved_1y,NA,0.4,USD,Azure Retail Prices API,2025-12-18T04:45:26.209355 +AZURE,westeurope,Standard_DC8ads_v5,reserved_3y,NA,0.3,USD,Azure Retail Prices API,2025-12-18T04:45:26.209359 +AZURE,westeurope,Standard_DC8ads_v5,spot,NA,0.09435,USD,Azure Retail Prices API,2025-12-18T04:45:24.778499 +AZURE,westeurope,Standard_DC8ads_v6,on_demand,NA,0.552,USD,Azure Retail Prices API,2025-12-18T04:45:24.778355 +AZURE,westeurope,Standard_DC8ads_v6,reserved_1y,NA,0.325685,USD,Azure Retail Prices API,2025-12-18T04:45:26.208935 +AZURE,westeurope,Standard_DC8ads_v6,reserved_3y,NA,0.209741,USD,Azure Retail Prices API,2025-12-18T04:45:26.208941 +AZURE,westeurope,Standard_DC8ads_v6,spot,NA,0.10201,USD,Azure Retail Prices API,2025-12-18T04:45:24.779291 +AZURE,westeurope,Standard_DC8as_v5,on_demand,NA,0.416,USD,Azure Retail Prices API,2025-12-18T04:45:24.781016 +AZURE,westeurope,Standard_DC8as_v5,reserved_1y,NA,0.332763,USD,Azure Retail Prices API,2025-12-18T04:45:26.210323 +AZURE,westeurope,Standard_DC8as_v5,reserved_3y,NA,0.249581,USD,Azure Retail Prices API,2025-12-18T04:45:26.210326 +AZURE,westeurope,Standard_DC8as_v5,spot,NA,0.078499,USD,Azure Retail Prices API,2025-12-18T04:45:24.778315 +AZURE,westeurope,Standard_DC96ads_v5,on_demand,NA,6.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.779134 +AZURE,westeurope,Standard_DC96ads_v5,reserved_1y,NA,4.8,USD,Azure Retail Prices API,2025-12-18T04:45:26.209317 +AZURE,westeurope,Standard_DC96ads_v5,reserved_3y,NA,3.6,USD,Azure Retail Prices API,2025-12-18T04:45:26.209320 +AZURE,westeurope,Standard_DC96ads_v5,spot,NA,1.1322,USD,Azure Retail Prices API,2025-12-18T04:45:24.780782 +AZURE,westeurope,Standard_DC96ads_v6,on_demand,NA,6.624,USD,Azure Retail Prices API,2025-12-18T04:45:24.778521 +AZURE,westeurope,Standard_DC96ads_v6,reserved_1y,NA,3.908105,USD,Azure Retail Prices API,2025-12-18T04:45:26.209041 +AZURE,westeurope,Standard_DC96ads_v6,reserved_3y,NA,2.517123,USD,Azure Retail Prices API,2025-12-18T04:45:26.209044 +AZURE,westeurope,Standard_DC96ads_v6,spot,NA,1.224115,USD,Azure Retail Prices API,2025-12-18T04:45:24.778409 +AZURE,westeurope,Standard_DC96as_v5,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:45:24.779874 +AZURE,westeurope,Standard_DC96as_v5,reserved_1y,NA,3.993607,USD,Azure Retail Prices API,2025-12-18T04:45:26.209660 +AZURE,westeurope,Standard_DC96as_v5,reserved_3y,NA,2.995205,USD,Azure Retail Prices API,2025-12-18T04:45:26.209663 +AZURE,westeurope,Standard_DC96as_v5,spot,NA,0.94199,USD,Azure Retail Prices API,2025-12-18T04:45:24.779053 +AZURE,westeurope,Standard_DS12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495251 +AZURE,westeurope,Standard_DS12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495259 +AZURE,westeurope,Standard_DS12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495263 +AZURE,westeurope,Standard_DS12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495255 +AZURE,westeurope,Standard_DS13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496090 +AZURE,westeurope,Standard_DS13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496105 +AZURE,westeurope,Standard_DS13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496113 +AZURE,westeurope,Standard_DS13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496097 +AZURE,westeurope,Standard_DS14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496879 +AZURE,westeurope,Standard_DS14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496887 +AZURE,westeurope,Standard_DS14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496892 +AZURE,westeurope,Standard_DS14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496883 +AZURE,westeurope,Standard_DS15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497770 +AZURE,westeurope,Standard_DS15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497778 +AZURE,westeurope,Standard_DS15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497782 +AZURE,westeurope,Standard_DS15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497774 +AZURE,westeurope,Standard_DS1_v2,on_demand,NA,0.07665,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491604 +AZURE,westeurope,Standard_DS1_v2,reserved_1y,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491615 +AZURE,westeurope,Standard_DS1_v2,reserved_3y,NA,0.03066,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491619 +AZURE,westeurope,Standard_DS1_v2,spot,NA,0.022995,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491610 +AZURE,westeurope,Standard_DS2_v2,on_demand,NA,0.1533,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492351 +AZURE,westeurope,Standard_DS2_v2,reserved_1y,NA,0.09198,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492359 +AZURE,westeurope,Standard_DS2_v2,reserved_3y,NA,0.06132,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492363 +AZURE,westeurope,Standard_DS2_v2,spot,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492355 +AZURE,westeurope,Standard_DS3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493042 +AZURE,westeurope,Standard_DS3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493056 +AZURE,westeurope,Standard_DS3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493063 +AZURE,westeurope,Standard_DS3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493048 +AZURE,westeurope,Standard_DS4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493786 +AZURE,westeurope,Standard_DS4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493794 +AZURE,westeurope,Standard_DS4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493799 +AZURE,westeurope,Standard_DS4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493790 +AZURE,westeurope,Standard_DS5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494499 +AZURE,westeurope,Standard_DS5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494507 +AZURE,westeurope,Standard_DS5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494511 +AZURE,westeurope,Standard_DS5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494503 +AZURE,westeurope,Standard_E128ds_v6,on_demand,NA,12.625,USD,Azure Retail Prices API,2025-12-18T04:45:24.780788 +AZURE,westeurope,Standard_E128ds_v6,reserved_1y,NA,7.827283,USD,Azure Retail Prices API,2025-12-18T04:45:26.210215 +AZURE,westeurope,Standard_E128ds_v6,reserved_3y,NA,4.923592,USD,Azure Retail Prices API,2025-12-18T04:45:26.210218 +AZURE,westeurope,Standard_E128ds_v6,spot,NA,2.3331,USD,Azure Retail Prices API,2025-12-18T04:45:24.781454 +AZURE,westeurope,Standard_E16_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:45:24.778000 +AZURE,westeurope,Standard_E16_v3,reserved_1y,NA,0.752854,USD,Azure Retail Prices API,2025-12-18T04:45:26.208714 +AZURE,westeurope,Standard_E16_v3,reserved_3y,NA,0.481431,USD,Azure Retail Prices API,2025-12-18T04:45:26.208728 +AZURE,westeurope,Standard_E16_v3,spot,NA,0.236544,USD,Azure Retail Prices API,2025-12-18T04:45:24.779608 +AZURE,westeurope,Standard_E16a_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:24.779791 +AZURE,westeurope,Standard_E16a_v4,reserved_1y,NA,0.715068,USD,Azure Retail Prices API,2025-12-18T04:45:26.209597 +AZURE,westeurope,Standard_E16a_v4,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:45:26.209599 +AZURE,westeurope,Standard_E16a_v4,spot,NA,0.248794,USD,Azure Retail Prices API,2025-12-18T04:45:24.780439 +AZURE,westeurope,Standard_E16ads_v5,on_demand,NA,1.264,USD,Azure Retail Prices API,2025-12-18T04:45:24.779470 +AZURE,westeurope,Standard_E16ads_v5,reserved_1y,NA,0.745776,USD,Azure Retail Prices API,2025-12-18T04:45:26.209463 +AZURE,westeurope,Standard_E16ads_v5,reserved_3y,NA,0.480327,USD,Azure Retail Prices API,2025-12-18T04:45:26.209466 +AZURE,westeurope,Standard_E16ads_v5,spot,NA,0.257477,USD,Azure Retail Prices API,2025-12-18T04:45:24.779723 +AZURE,westeurope,Standard_E16ads_v6,on_demand,NA,1.403,USD,Azure Retail Prices API,2025-12-18T04:45:24.780334 +AZURE,westeurope,Standard_E16ads_v6,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:45:26.209923 +AZURE,westeurope,Standard_E16ads_v6,reserved_3y,NA,0.533219,USD,Azure Retail Prices API,2025-12-18T04:45:26.209926 +AZURE,westeurope,Standard_E16ads_v6,spot,NA,0.259274,USD,Azure Retail Prices API,2025-12-18T04:45:24.781278 +AZURE,westeurope,Standard_E16as_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:24.779481 +AZURE,westeurope,Standard_E16as_v4,reserved_1y,NA,0.715068,USD,Azure Retail Prices API,2025-12-18T04:45:26.209475 +AZURE,westeurope,Standard_E16as_v4,reserved_3y,NA,0.480061,USD,Azure Retail Prices API,2025-12-18T04:45:26.209478 +AZURE,westeurope,Standard_E16as_v4,spot,NA,0.248794,USD,Azure Retail Prices API,2025-12-18T04:45:24.779492 +AZURE,westeurope,Standard_E16as_v5,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:45:24.778152 +AZURE,westeurope,Standard_E16as_v5,reserved_1y,NA,0.646689,USD,Azure Retail Prices API,2025-12-18T04:45:26.208833 +AZURE,westeurope,Standard_E16as_v5,reserved_3y,NA,0.416476,USD,Azure Retail Prices API,2025-12-18T04:45:26.208838 +AZURE,westeurope,Standard_E16as_v5,spot,NA,0.223255,USD,Azure Retail Prices API,2025-12-18T04:45:24.778628 +AZURE,westeurope,Standard_E16d_v4,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:45:24.778482 +AZURE,westeurope,Standard_E16d_v4,reserved_1y,NA,0.816553,USD,Azure Retail Prices API,2025-12-18T04:45:26.209017 +AZURE,westeurope,Standard_E16d_v4,reserved_3y,NA,0.525913,USD,Azure Retail Prices API,2025-12-18T04:45:26.209020 +AZURE,westeurope,Standard_E16d_v4,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:45:24.778091 +AZURE,westeurope,Standard_E16ds_v4,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:45:24.780317 +AZURE,westeurope,Standard_E16ds_v4,reserved_1y,NA,0.816553,USD,Azure Retail Prices API,2025-12-18T04:45:26.209907 +AZURE,westeurope,Standard_E16ds_v4,reserved_3y,NA,0.525913,USD,Azure Retail Prices API,2025-12-18T04:45:26.209909 +AZURE,westeurope,Standard_E16ds_v4,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:45:24.779330 +AZURE,westeurope,Standard_E16ds_v5,on_demand,NA,1.384,USD,Azure Retail Prices API,2025-12-18T04:45:24.779436 +AZURE,westeurope,Standard_E16ds_v5,reserved_1y,NA,0.816553,USD,Azure Retail Prices API,2025-12-18T04:45:26.209440 +AZURE,westeurope,Standard_E16ds_v5,reserved_3y,NA,0.525913,USD,Azure Retail Prices API,2025-12-18T04:45:26.209443 +AZURE,westeurope,Standard_E16ds_v5,spot,NA,0.255763,USD,Azure Retail Prices API,2025-12-18T04:45:24.778310 +AZURE,westeurope,Standard_E16ds_v6,on_demand,NA,1.578,USD,Azure Retail Prices API,2025-12-18T04:45:24.778639 +AZURE,westeurope,Standard_E16ds_v6,reserved_1y,NA,0.978425,USD,Azure Retail Prices API,2025-12-18T04:45:26.209101 +AZURE,westeurope,Standard_E16ds_v6,reserved_3y,NA,0.615449,USD,Azure Retail Prices API,2025-12-18T04:45:26.209103 +AZURE,westeurope,Standard_E16ds_v6,spot,NA,0.291614,USD,Azure Retail Prices API,2025-12-18T04:45:24.778360 +AZURE,westeurope,Standard_E16pds_v6,on_demand,NA,1.118,USD,Azure Retail Prices API,2025-12-18T04:45:24.780382 +AZURE,westeurope,Standard_E16pds_v6,reserved_1y,NA,0.659817,USD,Azure Retail Prices API,2025-12-18T04:45:26.209952 +AZURE,westeurope,Standard_E16pds_v6,reserved_3y,NA,0.425,USD,Azure Retail Prices API,2025-12-18T04:45:26.209955 +AZURE,westeurope,Standard_E16pds_v6,spot,NA,0.252556,USD,Azure Retail Prices API,2025-12-18T04:45:24.781093 +AZURE,westeurope,Standard_E16ps_v6,on_demand,NA,0.882,USD,Azure Retail Prices API,2025-12-18T04:45:24.780263 +AZURE,westeurope,Standard_E16ps_v6,reserved_1y,NA,0.520091,USD,Azure Retail Prices API,2025-12-18T04:45:26.209879 +AZURE,westeurope,Standard_E16ps_v6,reserved_3y,NA,0.335008,USD,Azure Retail Prices API,2025-12-18T04:45:26.209881 +AZURE,westeurope,Standard_E16ps_v6,spot,NA,0.199244,USD,Azure Retail Prices API,2025-12-18T04:45:24.780642 +AZURE,westeurope,Standard_E16s_v3,on_demand,NA,1.28,USD,Azure Retail Prices API,2025-12-18T04:45:24.781353 +AZURE,westeurope,Standard_E16s_v3,reserved_1y,NA,0.752854,USD,Azure Retail Prices API,2025-12-18T04:45:26.210455 +AZURE,westeurope,Standard_E16s_v3,reserved_3y,NA,0.481431,USD,Azure Retail Prices API,2025-12-18T04:45:26.210459 +AZURE,westeurope,Standard_E16s_v3,spot,NA,0.236544,USD,Azure Retail Prices API,2025-12-18T04:45:24.780648 +AZURE,westeurope,Standard_E16s_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:24.781255 +AZURE,westeurope,Standard_E16s_v4,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:45:26.210407 +AZURE,westeurope,Standard_E16s_v4,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:45:26.210410 +AZURE,westeurope,Standard_E16s_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:45:24.779674 +AZURE,westeurope,Standard_E16s_v5,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:45:24.779751 +AZURE,westeurope,Standard_E16s_v5,reserved_1y,NA,0.705251,USD,Azure Retail Prices API,2025-12-18T04:45:26.209584 +AZURE,westeurope,Standard_E16s_v5,reserved_3y,NA,0.449924,USD,Azure Retail Prices API,2025-12-18T04:45:26.209588 +AZURE,westeurope,Standard_E16s_v5,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:45:24.778665 +AZURE,westeurope,Standard_E20a_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:24.778096 +AZURE,westeurope,Standard_E20a_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:45:26.208810 +AZURE,westeurope,Standard_E20a_v4,reserved_3y,NA,0.600076,USD,Azure Retail Prices API,2025-12-18T04:45:26.208813 +AZURE,westeurope,Standard_E20a_v4,spot,NA,0.310992,USD,Azure Retail Prices API,2025-12-18T04:45:24.779464 +AZURE,westeurope,Standard_E20ads_v5,on_demand,NA,2.5,USD,Azure Retail Prices API,2025-12-18T04:45:24.779224 +AZURE,westeurope,Standard_E20ads_v5,reserved_1y,NA,0.932192,USD,Azure Retail Prices API,2025-12-18T04:45:26.209786 +AZURE,westeurope,Standard_E20ads_v5,reserved_3y,NA,0.600419,USD,Azure Retail Prices API,2025-12-18T04:45:26.209789 +AZURE,westeurope,Standard_E20ads_v5,spot,NA,0.321846,USD,Azure Retail Prices API,2025-12-18T04:45:24.780005 +AZURE,westeurope,Standard_E20ads_v6,on_demand,NA,1.754,USD,Azure Retail Prices API,2025-12-18T04:45:24.778791 +AZURE,westeurope,Standard_E20ads_v6,reserved_1y,NA,1.034817,USD,Azure Retail Prices API,2025-12-18T04:45:26.209196 +AZURE,westeurope,Standard_E20ads_v6,reserved_3y,NA,0.666514,USD,Azure Retail Prices API,2025-12-18T04:45:26.209199 +AZURE,westeurope,Standard_E20ads_v6,spot,NA,0.324139,USD,Azure Retail Prices API,2025-12-18T04:45:24.778265 +AZURE,westeurope,Standard_E20as_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:24.780237 +AZURE,westeurope,Standard_E20as_v4,reserved_1y,NA,0.893836,USD,Azure Retail Prices API,2025-12-18T04:45:26.209855 +AZURE,westeurope,Standard_E20as_v4,reserved_3y,NA,0.600076,USD,Azure Retail Prices API,2025-12-18T04:45:26.209858 +AZURE,westeurope,Standard_E20as_v4,spot,NA,0.310992,USD,Azure Retail Prices API,2025-12-18T04:45:24.779247 +AZURE,westeurope,Standard_E20as_v5,on_demand,NA,2.29,USD,Azure Retail Prices API,2025-12-18T04:45:24.779013 +AZURE,westeurope,Standard_E20as_v5,reserved_1y,NA,0.808333,USD,Azure Retail Prices API,2025-12-18T04:45:26.209700 +AZURE,westeurope,Standard_E20as_v5,reserved_3y,NA,0.520586,USD,Azure Retail Prices API,2025-12-18T04:45:26.209703 +AZURE,westeurope,Standard_E20as_v5,spot,NA,0.279069,USD,Azure Retail Prices API,2025-12-18T04:45:24.780131 +AZURE,westeurope,Standard_E20d_v4,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:45:24.778437 +AZURE,westeurope,Standard_E20d_v4,reserved_1y,NA,1.020662,USD,Azure Retail Prices API,2025-12-18T04:45:26.208988 +AZURE,westeurope,Standard_E20d_v4,reserved_3y,NA,0.65742,USD,Azure Retail Prices API,2025-12-18T04:45:26.208990 +AZURE,westeurope,Standard_E20d_v4,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:45:24.781297 +AZURE,westeurope,Standard_E20ds_v4,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:45:24.780154 +AZURE,westeurope,Standard_E20ds_v4,reserved_1y,NA,1.020662,USD,Azure Retail Prices API,2025-12-18T04:45:26.209792 +AZURE,westeurope,Standard_E20ds_v4,reserved_3y,NA,0.65742,USD,Azure Retail Prices API,2025-12-18T04:45:26.209794 +AZURE,westeurope,Standard_E20ds_v4,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:45:24.781386 +AZURE,westeurope,Standard_E20ds_v5,on_demand,NA,1.73,USD,Azure Retail Prices API,2025-12-18T04:45:24.778830 +AZURE,westeurope,Standard_E20ds_v5,reserved_1y,NA,1.020662,USD,Azure Retail Prices API,2025-12-18T04:45:26.209213 +AZURE,westeurope,Standard_E20ds_v5,reserved_3y,NA,0.657382,USD,Azure Retail Prices API,2025-12-18T04:45:26.209216 +AZURE,westeurope,Standard_E20ds_v5,spot,NA,0.319704,USD,Azure Retail Prices API,2025-12-18T04:45:24.780883 +AZURE,westeurope,Standard_E20ds_v6,on_demand,NA,1.973,USD,Azure Retail Prices API,2025-12-18T04:45:24.780203 +AZURE,westeurope,Standard_E20ds_v6,reserved_1y,NA,1.223059,USD,Azure Retail Prices API,2025-12-18T04:45:26.209826 +AZURE,westeurope,Standard_E20ds_v6,reserved_3y,NA,0.76933,USD,Azure Retail Prices API,2025-12-18T04:45:26.209829 +AZURE,westeurope,Standard_E20ds_v6,spot,NA,0.36461,USD,Azure Retail Prices API,2025-12-18T04:45:24.778863 +AZURE,westeurope,Standard_E20s_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:24.780933 +AZURE,westeurope,Standard_E20s_v4,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:45:26.210283 +AZURE,westeurope,Standard_E20s_v4,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:45:26.210285 +AZURE,westeurope,Standard_E20s_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:45:24.780687 +AZURE,westeurope,Standard_E20s_v5,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:45:24.781032 +AZURE,westeurope,Standard_E20s_v5,reserved_1y,NA,0.881621,USD,Azure Retail Prices API,2025-12-18T04:45:26.210329 +AZURE,westeurope,Standard_E20s_v5,reserved_3y,NA,0.562405,USD,Azure Retail Prices API,2025-12-18T04:45:26.210332 +AZURE,westeurope,Standard_E20s_v5,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:45:24.779988 +AZURE,westeurope,Standard_E2_v3,on_demand,NA,0.16,USD,Azure Retail Prices API,2025-12-18T04:45:24.780495 +AZURE,westeurope,Standard_E2_v3,reserved_1y,NA,0.094064,USD,Azure Retail Prices API,2025-12-18T04:45:26.210011 +AZURE,westeurope,Standard_E2_v3,reserved_3y,NA,0.06016,USD,Azure Retail Prices API,2025-12-18T04:45:26.210014 +AZURE,westeurope,Standard_E2_v3,spot,NA,0.029568,USD,Azure Retail Prices API,2025-12-18T04:45:24.779448 +AZURE,westeurope,Standard_E2ads_v6,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:45:24.778465 +AZURE,westeurope,Standard_E2ads_v6,reserved_1y,NA,0.103539,USD,Azure Retail Prices API,2025-12-18T04:45:26.209005 +AZURE,westeurope,Standard_E2ads_v6,reserved_3y,NA,0.066667,USD,Azure Retail Prices API,2025-12-18T04:45:26.209008 +AZURE,westeurope,Standard_E2ads_v6,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:45:24.780027 +AZURE,westeurope,Standard_E2ds_v5,on_demand,NA,0.173,USD,Azure Retail Prices API,2025-12-18T04:45:24.778825 +AZURE,westeurope,Standard_E2ds_v5,reserved_1y,NA,0.102055,USD,Azure Retail Prices API,2025-12-18T04:45:26.209207 +AZURE,westeurope,Standard_E2ds_v5,reserved_3y,NA,0.065753,USD,Azure Retail Prices API,2025-12-18T04:45:26.209210 +AZURE,westeurope,Standard_E2ds_v5,spot,NA,0.03197,USD,Azure Retail Prices API,2025-12-18T04:45:24.778731 +AZURE,westeurope,Standard_E2ds_v6,on_demand,NA,0.197,USD,Azure Retail Prices API,2025-12-18T04:45:24.779302 +AZURE,westeurope,Standard_E2ds_v6,reserved_1y,NA,0.12226,USD,Azure Retail Prices API,2025-12-18T04:45:26.209400 +AZURE,westeurope,Standard_E2ds_v6,reserved_3y,NA,0.076941,USD,Azure Retail Prices API,2025-12-18T04:45:26.209403 +AZURE,westeurope,Standard_E2ds_v6,spot,NA,0.036406,USD,Azure Retail Prices API,2025-12-18T04:45:24.778814 +AZURE,westeurope,Standard_E2pds_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:45:24.779530 +AZURE,westeurope,Standard_E2pds_v6,reserved_1y,NA,0.082534,USD,Azure Retail Prices API,2025-12-18T04:45:26.209496 +AZURE,westeurope,Standard_E2pds_v6,reserved_3y,NA,0.05312,USD,Azure Retail Prices API,2025-12-18T04:45:26.209499 +AZURE,westeurope,Standard_E2pds_v6,spot,NA,0.031626,USD,Azure Retail Prices API,2025-12-18T04:45:24.778687 +AZURE,westeurope,Standard_E32_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:45:24.779095 +AZURE,westeurope,Standard_E32_v3,reserved_1y,NA,1.505708,USD,Azure Retail Prices API,2025-12-18T04:45:26.209293 +AZURE,westeurope,Standard_E32_v3,reserved_3y,NA,0.962861,USD,Azure Retail Prices API,2025-12-18T04:45:26.209297 +AZURE,westeurope,Standard_E32_v3,spot,NA,0.473088,USD,Azure Retail Prices API,2025-12-18T04:45:24.779151 +AZURE,westeurope,Standard_E32a_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:24.778058 +AZURE,westeurope,Standard_E32a_v4,reserved_1y,NA,1.430137,USD,Azure Retail Prices API,2025-12-18T04:45:26.208769 +AZURE,westeurope,Standard_E32a_v4,reserved_3y,NA,0.960122,USD,Azure Retail Prices API,2025-12-18T04:45:26.208773 +AZURE,westeurope,Standard_E32a_v4,spot,NA,0.497587,USD,Azure Retail Prices API,2025-12-18T04:45:24.780804 +AZURE,westeurope,Standard_E32ads_v5,on_demand,NA,4.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.778460 +AZURE,westeurope,Standard_E32ads_v5,reserved_1y,NA,1.491553,USD,Azure Retail Prices API,2025-12-18T04:45:26.210141 +AZURE,westeurope,Standard_E32ads_v5,reserved_3y,NA,0.960654,USD,Azure Retail Prices API,2025-12-18T04:45:26.210144 +AZURE,westeurope,Standard_E32ads_v5,spot,NA,0.514954,USD,Azure Retail Prices API,2025-12-18T04:45:24.778233 +AZURE,westeurope,Standard_E32ads_v6,on_demand,NA,2.806,USD,Azure Retail Prices API,2025-12-18T04:45:24.778763 +AZURE,westeurope,Standard_E32ads_v6,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:45:26.209178 +AZURE,westeurope,Standard_E32ads_v6,reserved_3y,NA,1.066438,USD,Azure Retail Prices API,2025-12-18T04:45:26.209180 +AZURE,westeurope,Standard_E32ads_v6,spot,NA,0.518549,USD,Azure Retail Prices API,2025-12-18T04:45:24.781261 +AZURE,westeurope,Standard_E32as_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:24.780077 +AZURE,westeurope,Standard_E32as_v4,reserved_1y,NA,1.430137,USD,Azure Retail Prices API,2025-12-18T04:45:26.209763 +AZURE,westeurope,Standard_E32as_v4,reserved_3y,NA,0.960122,USD,Azure Retail Prices API,2025-12-18T04:45:26.209766 +AZURE,westeurope,Standard_E32as_v4,spot,NA,0.497587,USD,Azure Retail Prices API,2025-12-18T04:45:24.778200 +AZURE,westeurope,Standard_E32as_v5,on_demand,NA,3.664,USD,Azure Retail Prices API,2025-12-18T04:45:24.778254 +AZURE,westeurope,Standard_E32as_v5,reserved_1y,NA,1.293265,USD,Azure Retail Prices API,2025-12-18T04:45:26.209562 +AZURE,westeurope,Standard_E32as_v5,reserved_3y,NA,0.832953,USD,Azure Retail Prices API,2025-12-18T04:45:26.209565 +AZURE,westeurope,Standard_E32as_v5,spot,NA,0.44651,USD,Azure Retail Prices API,2025-12-18T04:45:24.778747 +AZURE,westeurope,Standard_E32d_v4,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:45:24.780489 +AZURE,westeurope,Standard_E32d_v4,reserved_1y,NA,1.633105,USD,Azure Retail Prices API,2025-12-18T04:45:26.210005 +AZURE,westeurope,Standard_E32d_v4,reserved_3y,NA,1.051865,USD,Azure Retail Prices API,2025-12-18T04:45:26.210008 +AZURE,westeurope,Standard_E32d_v4,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:45:24.778874 +AZURE,westeurope,Standard_E32ds_v4,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:45:24.779767 +AZURE,westeurope,Standard_E32ds_v4,reserved_1y,NA,1.633105,USD,Azure Retail Prices API,2025-12-18T04:45:26.209591 +AZURE,westeurope,Standard_E32ds_v4,reserved_3y,NA,1.051865,USD,Azure Retail Prices API,2025-12-18T04:45:26.209594 +AZURE,westeurope,Standard_E32ds_v4,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:45:24.779964 +AZURE,westeurope,Standard_E32ds_v5,on_demand,NA,2.768,USD,Azure Retail Prices API,2025-12-18T04:45:24.779852 +AZURE,westeurope,Standard_E32ds_v5,reserved_1y,NA,1.633105,USD,Azure Retail Prices API,2025-12-18T04:45:26.209648 +AZURE,westeurope,Standard_E32ds_v5,reserved_3y,NA,1.051826,USD,Azure Retail Prices API,2025-12-18T04:45:26.209651 +AZURE,westeurope,Standard_E32ds_v5,spot,NA,0.511526,USD,Azure Retail Prices API,2025-12-18T04:45:24.779024 +AZURE,westeurope,Standard_E32ds_v6,on_demand,NA,3.156,USD,Azure Retail Prices API,2025-12-18T04:45:24.778129 +AZURE,westeurope,Standard_E32ds_v6,reserved_1y,NA,1.956849,USD,Azure Retail Prices API,2025-12-18T04:45:26.208816 +AZURE,westeurope,Standard_E32ds_v6,reserved_3y,NA,1.230898,USD,Azure Retail Prices API,2025-12-18T04:45:26.208819 +AZURE,westeurope,Standard_E32ds_v6,spot,NA,0.583229,USD,Azure Retail Prices API,2025-12-18T04:45:24.778443 +AZURE,westeurope,Standard_E32pds_v6,on_demand,NA,2.237,USD,Azure Retail Prices API,2025-12-18T04:45:24.779453 +AZURE,westeurope,Standard_E32pds_v6,reserved_1y,NA,1.319749,USD,Azure Retail Prices API,2025-12-18T04:45:26.209451 +AZURE,westeurope,Standard_E32pds_v6,reserved_3y,NA,0.85,USD,Azure Retail Prices API,2025-12-18T04:45:26.209454 +AZURE,westeurope,Standard_E32pds_v6,spot,NA,0.505338,USD,Azure Retail Prices API,2025-12-18T04:45:24.781308 +AZURE,westeurope,Standard_E32ps_v6,on_demand,NA,1.763,USD,Azure Retail Prices API,2025-12-18T04:45:24.779476 +AZURE,westeurope,Standard_E32ps_v6,reserved_1y,NA,1.040297,USD,Azure Retail Prices API,2025-12-18T04:45:26.209469 +AZURE,westeurope,Standard_E32ps_v6,reserved_3y,NA,0.670015,USD,Azure Retail Prices API,2025-12-18T04:45:26.209472 +AZURE,westeurope,Standard_E32ps_v6,spot,NA,0.398262,USD,Azure Retail Prices API,2025-12-18T04:45:24.781005 +AZURE,westeurope,Standard_E32s_v3,on_demand,NA,2.56,USD,Azure Retail Prices API,2025-12-18T04:45:24.779106 +AZURE,westeurope,Standard_E32s_v3,reserved_1y,NA,1.505708,USD,Azure Retail Prices API,2025-12-18T04:45:26.209299 +AZURE,westeurope,Standard_E32s_v3,reserved_3y,NA,0.962861,USD,Azure Retail Prices API,2025-12-18T04:45:26.209303 +AZURE,westeurope,Standard_E32s_v3,spot,NA,0.473088,USD,Azure Retail Prices API,2025-12-18T04:45:24.779508 +AZURE,westeurope,Standard_E32s_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:24.778228 +AZURE,westeurope,Standard_E32s_v4,reserved_1y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:45:26.208863 +AZURE,westeurope,Standard_E32s_v4,reserved_3y,NA,0.924163,USD,Azure Retail Prices API,2025-12-18T04:45:26.208866 +AZURE,westeurope,Standard_E32s_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:45:24.780450 +AZURE,westeurope,Standard_E32s_v5,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:45:24.781087 +AZURE,westeurope,Standard_E32s_v5,reserved_1y,NA,1.410616,USD,Azure Retail Prices API,2025-12-18T04:45:26.210362 +AZURE,westeurope,Standard_E32s_v5,reserved_3y,NA,0.899848,USD,Azure Retail Prices API,2025-12-18T04:45:26.210365 +AZURE,westeurope,Standard_E32s_v5,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:45:24.780944 +AZURE,westeurope,Standard_E48a_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:24.780793 +AZURE,westeurope,Standard_E48a_v4,reserved_1y,NA,2.145205,USD,Azure Retail Prices API,2025-12-18T04:45:26.210221 +AZURE,westeurope,Standard_E48a_v4,reserved_3y,NA,1.440183,USD,Azure Retail Prices API,2025-12-18T04:45:26.210224 +AZURE,westeurope,Standard_E48a_v4,spot,NA,0.746381,USD,Azure Retail Prices API,2025-12-18T04:45:24.780983 +AZURE,westeurope,Standard_E48ads_v5,on_demand,NA,3.792,USD,Azure Retail Prices API,2025-12-18T04:45:24.779941 +AZURE,westeurope,Standard_E48ads_v5,reserved_1y,NA,2.237329,USD,Azure Retail Prices API,2025-12-18T04:45:26.209694 +AZURE,westeurope,Standard_E48ads_v5,reserved_3y,NA,1.440944,USD,Azure Retail Prices API,2025-12-18T04:45:26.209697 +AZURE,westeurope,Standard_E48ads_v5,spot,NA,0.77243,USD,Azure Retail Prices API,2025-12-18T04:45:24.781341 +AZURE,westeurope,Standard_E48ads_v6,on_demand,NA,4.21,USD,Azure Retail Prices API,2025-12-18T04:45:24.780567 +AZURE,westeurope,Standard_E48ads_v6,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:45:26.210057 +AZURE,westeurope,Standard_E48ads_v6,reserved_3y,NA,1.599658,USD,Azure Retail Prices API,2025-12-18T04:45:26.210059 +AZURE,westeurope,Standard_E48ads_v6,spot,NA,0.778008,USD,Azure Retail Prices API,2025-12-18T04:45:24.778173 +AZURE,westeurope,Standard_E48as_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:24.778880 +AZURE,westeurope,Standard_E48as_v4,reserved_1y,NA,2.145205,USD,Azure Retail Prices API,2025-12-18T04:45:26.209242 +AZURE,westeurope,Standard_E48as_v4,reserved_3y,NA,1.440183,USD,Azure Retail Prices API,2025-12-18T04:45:26.209245 +AZURE,westeurope,Standard_E48as_v4,spot,NA,0.746381,USD,Azure Retail Prices API,2025-12-18T04:45:24.779385 +AZURE,westeurope,Standard_E48as_v5,on_demand,NA,3.288,USD,Azure Retail Prices API,2025-12-18T04:45:24.778281 +AZURE,westeurope,Standard_E48as_v5,reserved_1y,NA,1.939954,USD,Azure Retail Prices API,2025-12-18T04:45:26.208892 +AZURE,westeurope,Standard_E48as_v5,reserved_3y,NA,1.249429,USD,Azure Retail Prices API,2025-12-18T04:45:26.208897 +AZURE,westeurope,Standard_E48as_v5,spot,NA,0.669766,USD,Azure Retail Prices API,2025-12-18T04:45:24.779179 +AZURE,westeurope,Standard_E48d_v4,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:45:24.778622 +AZURE,westeurope,Standard_E48d_v4,reserved_1y,NA,2.449658,USD,Azure Retail Prices API,2025-12-18T04:45:26.209094 +AZURE,westeurope,Standard_E48d_v4,reserved_3y,NA,1.577778,USD,Azure Retail Prices API,2025-12-18T04:45:26.209097 +AZURE,westeurope,Standard_E48d_v4,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:45:24.778392 +AZURE,westeurope,Standard_E48ds_v4,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:45:24.780961 +AZURE,westeurope,Standard_E48ds_v4,reserved_1y,NA,2.449658,USD,Azure Retail Prices API,2025-12-18T04:45:26.210294 +AZURE,westeurope,Standard_E48ds_v4,reserved_3y,NA,1.577778,USD,Azure Retail Prices API,2025-12-18T04:45:26.210297 +AZURE,westeurope,Standard_E48ds_v4,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:45:24.781082 +AZURE,westeurope,Standard_E48ds_v5,on_demand,NA,4.152,USD,Azure Retail Prices API,2025-12-18T04:45:24.778275 +AZURE,westeurope,Standard_E48ds_v5,reserved_1y,NA,2.449658,USD,Azure Retail Prices API,2025-12-18T04:45:26.208882 +AZURE,westeurope,Standard_E48ds_v5,reserved_3y,NA,1.577778,USD,Azure Retail Prices API,2025-12-18T04:45:26.208887 +AZURE,westeurope,Standard_E48ds_v5,spot,NA,0.76729,USD,Azure Retail Prices API,2025-12-18T04:45:24.781330 +AZURE,westeurope,Standard_E48ds_v6,on_demand,NA,4.734,USD,Azure Retail Prices API,2025-12-18T04:45:24.779564 +AZURE,westeurope,Standard_E48ds_v6,reserved_1y,NA,2.935274,USD,Azure Retail Prices API,2025-12-18T04:45:26.209515 +AZURE,westeurope,Standard_E48ds_v6,reserved_3y,NA,1.846347,USD,Azure Retail Prices API,2025-12-18T04:45:26.209517 +AZURE,westeurope,Standard_E48ds_v6,spot,NA,0.874843,USD,Azure Retail Prices API,2025-12-18T04:45:24.780923 +AZURE,westeurope,Standard_E48pds_v6,on_demand,NA,3.355,USD,Azure Retail Prices API,2025-12-18T04:45:24.781419 +AZURE,westeurope,Standard_E48pds_v6,reserved_1y,NA,1.979566,USD,Azure Retail Prices API,2025-12-18T04:45:26.210506 +AZURE,westeurope,Standard_E48pds_v6,reserved_3y,NA,1.274962,USD,Azure Retail Prices API,2025-12-18T04:45:26.210508 +AZURE,westeurope,Standard_E48pds_v6,spot,NA,0.757894,USD,Azure Retail Prices API,2025-12-18T04:45:24.779924 +AZURE,westeurope,Standard_E48ps_v6,on_demand,NA,2.645,USD,Azure Retail Prices API,2025-12-18T04:45:24.780126 +AZURE,westeurope,Standard_E48ps_v6,reserved_1y,NA,1.560388,USD,Azure Retail Prices API,2025-12-18T04:45:26.209780 +AZURE,westeurope,Standard_E48ps_v6,reserved_3y,NA,1.005023,USD,Azure Retail Prices API,2025-12-18T04:45:26.209783 +AZURE,westeurope,Standard_E48ps_v6,spot,NA,0.597506,USD,Azure Retail Prices API,2025-12-18T04:45:24.778803 +AZURE,westeurope,Standard_E48s_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:24.779807 +AZURE,westeurope,Standard_E48s_v4,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:26.209614 +AZURE,westeurope,Standard_E48s_v4,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:26.209616 +AZURE,westeurope,Standard_E48s_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:45:24.779030 +AZURE,westeurope,Standard_E48s_v5,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:45:24.779869 +AZURE,westeurope,Standard_E48s_v5,reserved_1y,NA,2.115868,USD,Azure Retail Prices API,2025-12-18T04:45:26.209654 +AZURE,westeurope,Standard_E48s_v5,reserved_3y,NA,1.349772,USD,Azure Retail Prices API,2025-12-18T04:45:26.209657 +AZURE,westeurope,Standard_E48s_v5,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:45:24.779503 +AZURE,westeurope,Standard_E4_v3,on_demand,NA,0.32,USD,Azure Retail Prices API,2025-12-18T04:45:24.780301 +AZURE,westeurope,Standard_E4_v3,reserved_1y,NA,0.188242,USD,Azure Retail Prices API,2025-12-18T04:45:26.209890 +AZURE,westeurope,Standard_E4_v3,reserved_3y,NA,0.120358,USD,Azure Retail Prices API,2025-12-18T04:45:26.209893 +AZURE,westeurope,Standard_E4_v3,spot,NA,0.059136,USD,Azure Retail Prices API,2025-12-18T04:45:24.781302 +AZURE,westeurope,Standard_E4a_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:24.779970 +AZURE,westeurope,Standard_E4a_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:45:26.209705 +AZURE,westeurope,Standard_E4a_v4,reserved_3y,NA,0.120015,USD,Azure Retail Prices API,2025-12-18T04:45:26.209708 +AZURE,westeurope,Standard_E4a_v4,spot,NA,0.062198,USD,Azure Retail Prices API,2025-12-18T04:45:24.778036 +AZURE,westeurope,Standard_E4ads_v5,on_demand,NA,0.316,USD,Azure Retail Prices API,2025-12-18T04:45:24.780354 +AZURE,westeurope,Standard_E4ads_v5,reserved_1y,NA,0.186416,USD,Azure Retail Prices API,2025-12-18T04:45:26.209934 +AZURE,westeurope,Standard_E4ads_v5,reserved_3y,NA,0.120091,USD,Azure Retail Prices API,2025-12-18T04:45:26.209937 +AZURE,westeurope,Standard_E4ads_v5,spot,NA,0.064369,USD,Azure Retail Prices API,2025-12-18T04:45:24.779145 +AZURE,westeurope,Standard_E4ads_v6,on_demand,NA,0.351,USD,Azure Retail Prices API,2025-12-18T04:45:24.779614 +AZURE,westeurope,Standard_E4ads_v6,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:45:26.209538 +AZURE,westeurope,Standard_E4ads_v6,reserved_3y,NA,0.133295,USD,Azure Retail Prices API,2025-12-18T04:45:26.209541 +AZURE,westeurope,Standard_E4ads_v6,spot,NA,0.064865,USD,Azure Retail Prices API,2025-12-18T04:45:24.780771 +AZURE,westeurope,Standard_E4as_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:24.781375 +AZURE,westeurope,Standard_E4as_v4,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:45:26.210474 +AZURE,westeurope,Standard_E4as_v4,reserved_3y,NA,0.120015,USD,Azure Retail Prices API,2025-12-18T04:45:26.210477 +AZURE,westeurope,Standard_E4as_v4,spot,NA,0.062198,USD,Azure Retail Prices API,2025-12-18T04:45:24.779364 +AZURE,westeurope,Standard_E4as_v5,on_demand,NA,0.458,USD,Azure Retail Prices API,2025-12-18T04:45:24.778555 +AZURE,westeurope,Standard_E4as_v5,reserved_1y,NA,0.161644,USD,Azure Retail Prices API,2025-12-18T04:45:26.209716 +AZURE,westeurope,Standard_E4as_v5,reserved_3y,NA,0.10411,USD,Azure Retail Prices API,2025-12-18T04:45:26.209719 +AZURE,westeurope,Standard_E4as_v5,spot,NA,0.055814,USD,Azure Retail Prices API,2025-12-18T04:45:24.778538 +AZURE,westeurope,Standard_E4d_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:24.781227 +AZURE,westeurope,Standard_E4d_v4,reserved_1y,NA,0.20411,USD,Azure Retail Prices API,2025-12-18T04:45:26.210402 +AZURE,westeurope,Standard_E4d_v4,reserved_3y,NA,0.131469,USD,Azure Retail Prices API,2025-12-18T04:45:26.210404 +AZURE,westeurope,Standard_E4d_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:24.779553 +AZURE,westeurope,Standard_E4ds_v4,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:24.781403 +AZURE,westeurope,Standard_E4ds_v4,reserved_1y,NA,0.20411,USD,Azure Retail Prices API,2025-12-18T04:45:26.210493 +AZURE,westeurope,Standard_E4ds_v4,reserved_3y,NA,0.131469,USD,Azure Retail Prices API,2025-12-18T04:45:26.210496 +AZURE,westeurope,Standard_E4ds_v4,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:24.781324 +AZURE,westeurope,Standard_E4ds_v5,on_demand,NA,0.346,USD,Azure Retail Prices API,2025-12-18T04:45:24.780900 +AZURE,westeurope,Standard_E4ds_v5,reserved_1y,NA,0.20411,USD,Azure Retail Prices API,2025-12-18T04:45:26.210261 +AZURE,westeurope,Standard_E4ds_v5,reserved_3y,NA,0.131469,USD,Azure Retail Prices API,2025-12-18T04:45:26.210264 +AZURE,westeurope,Standard_E4ds_v5,spot,NA,0.063941,USD,Azure Retail Prices API,2025-12-18T04:45:24.779403 +AZURE,westeurope,Standard_E4ds_v6,on_demand,NA,0.395,USD,Azure Retail Prices API,2025-12-18T04:45:24.780083 +AZURE,westeurope,Standard_E4ds_v6,reserved_1y,NA,0.244635,USD,Azure Retail Prices API,2025-12-18T04:45:26.209769 +AZURE,westeurope,Standard_E4ds_v6,reserved_3y,NA,0.153881,USD,Azure Retail Prices API,2025-12-18T04:45:26.209771 +AZURE,westeurope,Standard_E4ds_v6,spot,NA,0.072996,USD,Azure Retail Prices API,2025-12-18T04:45:24.779391 +AZURE,westeurope,Standard_E4pds_v6,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:45:24.778847 +AZURE,westeurope,Standard_E4pds_v6,reserved_1y,NA,0.164954,USD,Azure Retail Prices API,2025-12-18T04:45:26.209225 +AZURE,westeurope,Standard_E4pds_v6,reserved_3y,NA,0.10624,USD,Azure Retail Prices API,2025-12-18T04:45:26.209228 +AZURE,westeurope,Standard_E4pds_v6,spot,NA,0.063252,USD,Azure Retail Prices API,2025-12-18T04:45:24.778184 +AZURE,westeurope,Standard_E4ps_v6,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:45:24.778024 +AZURE,westeurope,Standard_E4ps_v6,reserved_1y,NA,0.130023,USD,Azure Retail Prices API,2025-12-18T04:45:26.208745 +AZURE,westeurope,Standard_E4ps_v6,reserved_3y,NA,0.083752,USD,Azure Retail Prices API,2025-12-18T04:45:26.208748 +AZURE,westeurope,Standard_E4ps_v6,spot,NA,0.049698,USD,Azure Retail Prices API,2025-12-18T04:45:24.781397 +AZURE,westeurope,Standard_E4s_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:24.780602 +AZURE,westeurope,Standard_E4s_v4,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:45:26.210100 +AZURE,westeurope,Standard_E4s_v4,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:45:26.210105 +AZURE,westeurope,Standard_E4s_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:45:24.779646 +AZURE,westeurope,Standard_E4s_v5,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:45:24.780716 +AZURE,westeurope,Standard_E4s_v5,reserved_1y,NA,0.17637,USD,Azure Retail Prices API,2025-12-18T04:45:26.210153 +AZURE,westeurope,Standard_E4s_v5,reserved_3y,NA,0.112481,USD,Azure Retail Prices API,2025-12-18T04:45:26.210156 +AZURE,westeurope,Standard_E4s_v5,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:45:24.781173 +AZURE,westeurope,Standard_E64_v3,on_demand,NA,4.376,USD,Azure Retail Prices API,2025-12-18T04:45:24.780253 +AZURE,westeurope,Standard_E64_v3,reserved_1y,NA,2.838356,USD,Azure Retail Prices API,2025-12-18T04:45:26.209867 +AZURE,westeurope,Standard_E64_v3,reserved_3y,NA,1.814992,USD,Azure Retail Prices API,2025-12-18T04:45:26.209870 +AZURE,westeurope,Standard_E64_v3,spot,NA,0.808685,USD,Azure Retail Prices API,2025-12-18T04:45:24.780104 +AZURE,westeurope,Standard_E64a_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:45:24.778168 +AZURE,westeurope,Standard_E64a_v4,reserved_1y,NA,2.860274,USD,Azure Retail Prices API,2025-12-18T04:45:26.208840 +AZURE,westeurope,Standard_E64a_v4,reserved_3y,NA,1.920244,USD,Azure Retail Prices API,2025-12-18T04:45:26.208843 +AZURE,westeurope,Standard_E64a_v4,spot,NA,0.995174,USD,Azure Retail Prices API,2025-12-18T04:45:24.778211 +AZURE,westeurope,Standard_E64ads_v5,on_demand,NA,5.056,USD,Azure Retail Prices API,2025-12-18T04:45:24.778018 +AZURE,westeurope,Standard_E64ads_v5,reserved_1y,NA,2.982991,USD,Azure Retail Prices API,2025-12-18T04:45:26.208738 +AZURE,westeurope,Standard_E64ads_v5,reserved_3y,NA,1.921271,USD,Azure Retail Prices API,2025-12-18T04:45:26.208742 +AZURE,westeurope,Standard_E64ads_v5,spot,NA,1.029907,USD,Azure Retail Prices API,2025-12-18T04:45:24.779524 +AZURE,westeurope,Standard_E64ads_v6,on_demand,NA,5.613,USD,Azure Retail Prices API,2025-12-18T04:45:24.779259 +AZURE,westeurope,Standard_E64ads_v6,reserved_1y,NA,3.31153,USD,Azure Retail Prices API,2025-12-18T04:45:26.209366 +AZURE,westeurope,Standard_E64ads_v6,reserved_3y,NA,2.132877,USD,Azure Retail Prices API,2025-12-18T04:45:26.209371 +AZURE,westeurope,Standard_E64ads_v6,spot,NA,1.037282,USD,Azure Retail Prices API,2025-12-18T04:45:24.779936 +AZURE,westeurope,Standard_E64as_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:45:24.781103 +AZURE,westeurope,Standard_E64as_v4,reserved_1y,NA,2.860274,USD,Azure Retail Prices API,2025-12-18T04:45:26.210373 +AZURE,westeurope,Standard_E64as_v4,reserved_3y,NA,1.920244,USD,Azure Retail Prices API,2025-12-18T04:45:26.210376 +AZURE,westeurope,Standard_E64as_v4,spot,NA,0.995174,USD,Azure Retail Prices API,2025-12-18T04:45:24.780137 +AZURE,westeurope,Standard_E64as_v5,on_demand,NA,7.328,USD,Azure Retail Prices API,2025-12-18T04:45:24.779270 +AZURE,westeurope,Standard_E64as_v5,reserved_1y,NA,2.58653,USD,Azure Retail Prices API,2025-12-18T04:45:26.210486 +AZURE,westeurope,Standard_E64as_v5,reserved_3y,NA,1.665906,USD,Azure Retail Prices API,2025-12-18T04:45:26.210489 +AZURE,westeurope,Standard_E64as_v5,spot,NA,0.893021,USD,Azure Retail Prices API,2025-12-18T04:45:24.780866 +AZURE,westeurope,Standard_E64d_v4,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:45:24.778260 +AZURE,westeurope,Standard_E64d_v4,reserved_1y,NA,3.266324,USD,Azure Retail Prices API,2025-12-18T04:45:26.208869 +AZURE,westeurope,Standard_E64d_v4,reserved_3y,NA,2.103691,USD,Azure Retail Prices API,2025-12-18T04:45:26.208872 +AZURE,westeurope,Standard_E64d_v4,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:45:24.781027 +AZURE,westeurope,Standard_E64ds_v4,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:45:24.780827 +AZURE,westeurope,Standard_E64ds_v4,reserved_1y,NA,3.266324,USD,Azure Retail Prices API,2025-12-18T04:45:26.210238 +AZURE,westeurope,Standard_E64ds_v4,reserved_3y,NA,2.103691,USD,Azure Retail Prices API,2025-12-18T04:45:26.210241 +AZURE,westeurope,Standard_E64ds_v4,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:45:24.780665 +AZURE,westeurope,Standard_E64ds_v5,on_demand,NA,5.536,USD,Azure Retail Prices API,2025-12-18T04:45:24.780871 +AZURE,westeurope,Standard_E64ds_v5,reserved_1y,NA,3.26621,USD,Azure Retail Prices API,2025-12-18T04:45:26.210255 +AZURE,westeurope,Standard_E64ds_v5,reserved_3y,NA,2.103691,USD,Azure Retail Prices API,2025-12-18T04:45:26.210258 +AZURE,westeurope,Standard_E64ds_v5,spot,NA,1.023053,USD,Azure Retail Prices API,2025-12-18T04:45:24.779762 +AZURE,westeurope,Standard_E64ds_v6,on_demand,NA,6.312,USD,Azure Retail Prices API,2025-12-18T04:45:24.778222 +AZURE,westeurope,Standard_E64ds_v6,reserved_1y,NA,3.913584,USD,Azure Retail Prices API,2025-12-18T04:45:26.208857 +AZURE,westeurope,Standard_E64ds_v6,reserved_3y,NA,2.461796,USD,Azure Retail Prices API,2025-12-18T04:45:26.208860 +AZURE,westeurope,Standard_E64ds_v6,spot,NA,1.166458,USD,Azure Retail Prices API,2025-12-18T04:45:24.780197 +AZURE,westeurope,Standard_E64pds_v6,on_demand,NA,4.474,USD,Azure Retail Prices API,2025-12-18T04:45:24.778741 +AZURE,westeurope,Standard_E64pds_v6,reserved_1y,NA,2.639384,USD,Azure Retail Prices API,2025-12-18T04:45:26.209172 +AZURE,westeurope,Standard_E64pds_v6,reserved_3y,NA,1.699962,USD,Azure Retail Prices API,2025-12-18T04:45:26.209175 +AZURE,westeurope,Standard_E64pds_v6,spot,NA,1.010677,USD,Azure Retail Prices API,2025-12-18T04:45:24.780636 +AZURE,westeurope,Standard_E64ps_v6,on_demand,NA,3.526,USD,Azure Retail Prices API,2025-12-18T04:45:24.778080 +AZURE,westeurope,Standard_E64ps_v6,reserved_1y,NA,2.080594,USD,Azure Retail Prices API,2025-12-18T04:45:26.208804 +AZURE,westeurope,Standard_E64ps_v6,reserved_3y,NA,1.34003,USD,Azure Retail Prices API,2025-12-18T04:45:26.208807 +AZURE,westeurope,Standard_E64ps_v6,spot,NA,0.796523,USD,Azure Retail Prices API,2025-12-18T04:45:24.778841 +AZURE,westeurope,Standard_E64s_v3,on_demand,NA,4.376,USD,Azure Retail Prices API,2025-12-18T04:45:24.780328 +AZURE,westeurope,Standard_E64s_v3,reserved_1y,NA,2.838356,USD,Azure Retail Prices API,2025-12-18T04:45:26.209918 +AZURE,westeurope,Standard_E64s_v3,reserved_3y,NA,1.814992,USD,Azure Retail Prices API,2025-12-18T04:45:26.209921 +AZURE,westeurope,Standard_E64s_v3,spot,NA,0.808685,USD,Azure Retail Prices API,2025-12-18T04:45:24.780534 +AZURE,westeurope,Standard_E64s_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:45:24.780511 +AZURE,westeurope,Standard_E64s_v4,reserved_1y,NA,2.869749,USD,Azure Retail Prices API,2025-12-18T04:45:26.210028 +AZURE,westeurope,Standard_E64s_v4,reserved_3y,NA,1.848326,USD,Azure Retail Prices API,2025-12-18T04:45:26.210031 +AZURE,westeurope,Standard_E64s_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:45:24.779111 +AZURE,westeurope,Standard_E64s_v5,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:45:24.779374 +AZURE,westeurope,Standard_E64s_v5,reserved_1y,NA,2.821119,USD,Azure Retail Prices API,2025-12-18T04:45:26.209417 +AZURE,westeurope,Standard_E64s_v5,reserved_3y,NA,1.799696,USD,Azure Retail Prices API,2025-12-18T04:45:26.209419 +AZURE,westeurope,Standard_E64s_v5,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:45:24.778291 +AZURE,westeurope,Standard_E80ids_v4,on_demand,NA,6.92,USD,Azure Retail Prices API,2025-12-18T04:45:24.778494 +AZURE,westeurope,Standard_E80ids_v4,reserved_1y,NA,4.082877,USD,Azure Retail Prices API,2025-12-18T04:45:26.209030 +AZURE,westeurope,Standard_E80ids_v4,reserved_3y,NA,2.629642,USD,Azure Retail Prices API,2025-12-18T04:45:26.209033 +AZURE,westeurope,Standard_E80ids_v4,spot,NA,1.278816,USD,Azure Retail Prices API,2025-12-18T04:45:24.779202 +AZURE,westeurope,Standard_E80is_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:45:24.778370 +AZURE,westeurope,Standard_E80is_v4,reserved_1y,NA,3.5871,USD,Azure Retail Prices API,2025-12-18T04:45:26.208950 +AZURE,westeurope,Standard_E80is_v4,reserved_3y,NA,2.310312,USD,Azure Retail Prices API,2025-12-18T04:45:26.208953 +AZURE,westeurope,Standard_E80is_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:45:24.779514 +AZURE,westeurope,Standard_E8_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:45:24.781425 +AZURE,westeurope,Standard_E8_v3,reserved_1y,NA,0.376484,USD,Azure Retail Prices API,2025-12-18T04:45:26.210512 +AZURE,westeurope,Standard_E8_v3,reserved_3y,NA,0.240715,USD,Azure Retail Prices API,2025-12-18T04:45:26.210514 +AZURE,westeurope,Standard_E8_v3,spot,NA,0.118272,USD,Azure Retail Prices API,2025-12-18T04:45:24.780432 +AZURE,westeurope,Standard_E8a_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:24.780573 +AZURE,westeurope,Standard_E8a_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:45:26.210062 +AZURE,westeurope,Standard_E8a_v4,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:45:26.210067 +AZURE,westeurope,Standard_E8a_v4,spot,NA,0.124397,USD,Azure Retail Prices API,2025-12-18T04:45:24.779041 +AZURE,westeurope,Standard_E8ads_v5,on_demand,NA,1.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.778108 +AZURE,westeurope,Standard_E8ads_v5,reserved_1y,NA,0.372831,USD,Azure Retail Prices API,2025-12-18T04:45:26.209382 +AZURE,westeurope,Standard_E8ads_v5,reserved_3y,NA,0.240145,USD,Azure Retail Prices API,2025-12-18T04:45:26.209385 +AZURE,westeurope,Standard_E8ads_v5,spot,NA,0.128738,USD,Azure Retail Prices API,2025-12-18T04:45:24.780279 +AZURE,westeurope,Standard_E8ads_v6,on_demand,NA,0.702,USD,Azure Retail Prices API,2025-12-18T04:45:24.780416 +AZURE,westeurope,Standard_E8ads_v6,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:45:26.209963 +AZURE,westeurope,Standard_E8ads_v6,reserved_3y,NA,0.266591,USD,Azure Retail Prices API,2025-12-18T04:45:26.209966 +AZURE,westeurope,Standard_E8ads_v6,spot,NA,0.12973,USD,Azure Retail Prices API,2025-12-18T04:45:24.779353 +AZURE,westeurope,Standard_E8as_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:24.779541 +AZURE,westeurope,Standard_E8as_v4,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:45:26.209509 +AZURE,westeurope,Standard_E8as_v4,reserved_3y,NA,0.24003,USD,Azure Retail Prices API,2025-12-18T04:45:26.209512 +AZURE,westeurope,Standard_E8as_v4,spot,NA,0.124397,USD,Azure Retail Prices API,2025-12-18T04:45:24.780810 +AZURE,westeurope,Standard_E8as_v5,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:45:24.779275 +AZURE,westeurope,Standard_E8as_v5,reserved_1y,NA,0.323288,USD,Azure Retail Prices API,2025-12-18T04:45:26.209388 +AZURE,westeurope,Standard_E8as_v5,reserved_3y,NA,0.208257,USD,Azure Retail Prices API,2025-12-18T04:45:26.209391 +AZURE,westeurope,Standard_E8as_v5,spot,NA,0.111628,USD,Azure Retail Prices API,2025-12-18T04:45:24.779570 +AZURE,westeurope,Standard_E8d_v4,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:45:24.779459 +AZURE,westeurope,Standard_E8d_v4,reserved_1y,NA,0.408333,USD,Azure Retail Prices API,2025-12-18T04:45:26.209457 +AZURE,westeurope,Standard_E8d_v4,reserved_3y,NA,0.262976,USD,Azure Retail Prices API,2025-12-18T04:45:26.209460 +AZURE,westeurope,Standard_E8d_v4,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:45:24.780072 +AZURE,westeurope,Standard_E8ds_v4,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:45:24.780214 +AZURE,westeurope,Standard_E8ds_v4,reserved_1y,NA,0.408333,USD,Azure Retail Prices API,2025-12-18T04:45:26.209837 +AZURE,westeurope,Standard_E8ds_v4,reserved_3y,NA,0.262976,USD,Azure Retail Prices API,2025-12-18T04:45:26.209840 +AZURE,westeurope,Standard_E8ds_v4,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:45:24.778578 +AZURE,westeurope,Standard_E8ds_v5,on_demand,NA,0.692,USD,Azure Retail Prices API,2025-12-18T04:45:24.780950 +AZURE,westeurope,Standard_E8ds_v5,reserved_1y,NA,0.408333,USD,Azure Retail Prices API,2025-12-18T04:45:26.210288 +AZURE,westeurope,Standard_E8ds_v5,reserved_3y,NA,0.262976,USD,Azure Retail Prices API,2025-12-18T04:45:26.210291 +AZURE,westeurope,Standard_E8ds_v5,spot,NA,0.127882,USD,Azure Retail Prices API,2025-12-18T04:45:24.780399 +AZURE,westeurope,Standard_E8ds_v6,on_demand,NA,0.789,USD,Azure Retail Prices API,2025-12-18T04:45:24.778996 +AZURE,westeurope,Standard_E8ds_v6,reserved_1y,NA,0.489155,USD,Azure Retail Prices API,2025-12-18T04:45:26.209271 +AZURE,westeurope,Standard_E8ds_v6,reserved_3y,NA,0.307725,USD,Azure Retail Prices API,2025-12-18T04:45:26.209274 +AZURE,westeurope,Standard_E8ds_v6,spot,NA,0.145807,USD,Azure Retail Prices API,2025-12-18T04:45:24.781213 +AZURE,westeurope,Standard_E8pds_v6,on_demand,NA,0.559,USD,Azure Retail Prices API,2025-12-18T04:45:24.779208 +AZURE,westeurope,Standard_E8pds_v6,reserved_1y,NA,0.329909,USD,Azure Retail Prices API,2025-12-18T04:45:26.209340 +AZURE,westeurope,Standard_E8pds_v6,reserved_3y,NA,0.212481,USD,Azure Retail Prices API,2025-12-18T04:45:26.209343 +AZURE,westeurope,Standard_E8pds_v6,spot,NA,0.126278,USD,Azure Retail Prices API,2025-12-18T04:45:24.780518 +AZURE,westeurope,Standard_E8ps_v6,on_demand,NA,0.441,USD,Azure Retail Prices API,2025-12-18T04:45:24.779847 +AZURE,westeurope,Standard_E8ps_v6,reserved_1y,NA,0.260046,USD,Azure Retail Prices API,2025-12-18T04:45:26.209643 +AZURE,westeurope,Standard_E8ps_v6,reserved_3y,NA,0.167504,USD,Azure Retail Prices API,2025-12-18T04:45:26.209646 +AZURE,westeurope,Standard_E8ps_v6,spot,NA,0.099622,USD,Azure Retail Prices API,2025-12-18T04:45:24.781152 +AZURE,westeurope,Standard_E8s_v3,on_demand,NA,0.64,USD,Azure Retail Prices API,2025-12-18T04:45:24.778470 +AZURE,westeurope,Standard_E8s_v3,reserved_1y,NA,0.376484,USD,Azure Retail Prices API,2025-12-18T04:45:26.209011 +AZURE,westeurope,Standard_E8s_v3,reserved_3y,NA,0.240715,USD,Azure Retail Prices API,2025-12-18T04:45:26.209014 +AZURE,westeurope,Standard_E8s_v3,spot,NA,0.118272,USD,Azure Retail Prices API,2025-12-18T04:45:24.780939 +AZURE,westeurope,Standard_E8s_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:24.780219 +AZURE,westeurope,Standard_E8s_v4,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:45:26.209843 +AZURE,westeurope,Standard_E8s_v4,reserved_3y,NA,0.23105,USD,Azure Retail Prices API,2025-12-18T04:45:26.209845 +AZURE,westeurope,Standard_E8s_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:45:24.780608 +AZURE,westeurope,Standard_E8s_v5,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:45:24.781408 +AZURE,westeurope,Standard_E8s_v5,reserved_1y,NA,0.352626,USD,Azure Retail Prices API,2025-12-18T04:45:26.210499 +AZURE,westeurope,Standard_E8s_v5,reserved_3y,NA,0.224962,USD,Azure Retail Prices API,2025-12-18T04:45:26.210503 +AZURE,westeurope,Standard_E8s_v5,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:45:24.778124 +AZURE,westeurope,Standard_E96a_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:45:24.778075 +AZURE,westeurope,Standard_E96a_v4,reserved_1y,NA,4.290411,USD,Azure Retail Prices API,2025-12-18T04:45:26.208798 +AZURE,westeurope,Standard_E96a_v4,reserved_3y,NA,2.880365,USD,Azure Retail Prices API,2025-12-18T04:45:26.208801 +AZURE,westeurope,Standard_E96a_v4,spot,NA,1.492762,USD,Azure Retail Prices API,2025-12-18T04:45:24.779380 +AZURE,westeurope,Standard_E96ads_v5,on_demand,NA,12.0,USD,Azure Retail Prices API,2025-12-18T04:45:24.780615 +AZURE,westeurope,Standard_E96ads_v5,reserved_1y,NA,4.474543,USD,Azure Retail Prices API,2025-12-18T04:45:26.210227 +AZURE,westeurope,Standard_E96ads_v5,reserved_3y,NA,2.881925,USD,Azure Retail Prices API,2025-12-18T04:45:26.210230 +AZURE,westeurope,Standard_E96ads_v5,spot,NA,1.544861,USD,Azure Retail Prices API,2025-12-18T04:45:24.779864 +AZURE,westeurope,Standard_E96ads_v6,on_demand,NA,8.419,USD,Azure Retail Prices API,2025-12-18T04:45:24.780171 +AZURE,westeurope,Standard_E96ads_v6,reserved_1y,NA,4.967352,USD,Azure Retail Prices API,2025-12-18T04:45:26.209803 +AZURE,westeurope,Standard_E96ads_v6,reserved_3y,NA,3.199277,USD,Azure Retail Prices API,2025-12-18T04:45:26.209806 +AZURE,westeurope,Standard_E96ads_v6,spot,NA,1.555831,USD,Azure Retail Prices API,2025-12-18T04:45:24.779167 +AZURE,westeurope,Standard_E96as_v4,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:45:24.778709 +AZURE,westeurope,Standard_E96as_v4,reserved_1y,NA,4.290411,USD,Azure Retail Prices API,2025-12-18T04:45:26.209148 +AZURE,westeurope,Standard_E96as_v4,reserved_3y,NA,2.880365,USD,Azure Retail Prices API,2025-12-18T04:45:26.209151 +AZURE,westeurope,Standard_E96as_v4,spot,NA,1.492762,USD,Azure Retail Prices API,2025-12-18T04:45:24.780911 +AZURE,westeurope,Standard_E96as_v5,on_demand,NA,6.576,USD,Azure Retail Prices API,2025-12-18T04:45:24.778336 +AZURE,westeurope,Standard_E96as_v5,reserved_1y,NA,3.879795,USD,Azure Retail Prices API,2025-12-18T04:45:26.208919 +AZURE,westeurope,Standard_E96as_v5,reserved_3y,NA,2.498896,USD,Azure Retail Prices API,2025-12-18T04:45:26.208923 +AZURE,westeurope,Standard_E96as_v5,spot,NA,1.339531,USD,Azure Retail Prices API,2025-12-18T04:45:24.780148 +AZURE,westeurope,Standard_E96ds_v5,on_demand,NA,8.304,USD,Azure Retail Prices API,2025-12-18T04:45:24.778660 +AZURE,westeurope,Standard_E96ds_v5,reserved_1y,NA,4.899315,USD,Azure Retail Prices API,2025-12-18T04:45:26.209112 +AZURE,westeurope,Standard_E96ds_v5,reserved_3y,NA,3.155518,USD,Azure Retail Prices API,2025-12-18T04:45:26.209114 +AZURE,westeurope,Standard_E96ds_v5,spot,NA,1.534579,USD,Azure Retail Prices API,2025-12-18T04:45:24.778758 +AZURE,westeurope,Standard_E96ds_v6,on_demand,NA,9.468,USD,Azure Retail Prices API,2025-12-18T04:45:24.778454 +AZURE,westeurope,Standard_E96ds_v6,reserved_1y,NA,5.870434,USD,Azure Retail Prices API,2025-12-18T04:45:26.208999 +AZURE,westeurope,Standard_E96ds_v6,reserved_3y,NA,3.692694,USD,Azure Retail Prices API,2025-12-18T04:45:26.209002 +AZURE,westeurope,Standard_E96ds_v6,spot,NA,1.749686,USD,Azure Retail Prices API,2025-12-18T04:45:24.779603 +AZURE,westeurope,Standard_E96pds_v6,on_demand,NA,6.71,USD,Azure Retail Prices API,2025-12-18T04:45:24.781436 +AZURE,westeurope,Standard_E96pds_v6,reserved_1y,NA,3.959132,USD,Azure Retail Prices API,2025-12-18T04:45:26.210523 +AZURE,westeurope,Standard_E96pds_v6,reserved_3y,NA,2.549962,USD,Azure Retail Prices API,2025-12-18T04:45:26.210526 +AZURE,westeurope,Standard_E96pds_v6,spot,NA,1.515789,USD,Azure Retail Prices API,2025-12-18T04:45:24.780698 +AZURE,westeurope,Standard_E96ps_v6,on_demand,NA,5.29,USD,Azure Retail Prices API,2025-12-18T04:45:24.778600 +AZURE,westeurope,Standard_E96ps_v6,reserved_1y,NA,3.12089,USD,Azure Retail Prices API,2025-12-18T04:45:26.209082 +AZURE,westeurope,Standard_E96ps_v6,reserved_3y,NA,2.010046,USD,Azure Retail Prices API,2025-12-18T04:45:26.209085 +AZURE,westeurope,Standard_E96ps_v6,spot,NA,1.195011,USD,Azure Retail Prices API,2025-12-18T04:45:24.779663 +AZURE,westeurope,Standard_E96s_v5,on_demand,NA,7.296,USD,Azure Retail Prices API,2025-12-18T04:45:24.780917 +AZURE,westeurope,Standard_E96s_v5,reserved_1y,NA,4.231735,USD,Azure Retail Prices API,2025-12-18T04:45:26.210272 +AZURE,westeurope,Standard_E96s_v5,reserved_3y,NA,2.699505,USD,Azure Retail Prices API,2025-12-18T04:45:26.210275 +AZURE,westeurope,Standard_E96s_v5,spot,NA,1.348301,USD,Azure Retail Prices API,2025-12-18T04:45:24.780956 +AZURE,westeurope,Standard_EC16ads_v5,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:45:24.780231 +AZURE,westeurope,Standard_EC16ads_v5,reserved_1y,NA,0.947146,USD,Azure Retail Prices API,2025-12-18T04:45:26.209848 +AZURE,westeurope,Standard_EC16ads_v5,reserved_3y,NA,0.710388,USD,Azure Retail Prices API,2025-12-18T04:45:26.209852 +AZURE,westeurope,Standard_EC16ads_v5,spot,NA,0.223421,USD,Azure Retail Prices API,2025-12-18T04:45:24.780877 +AZURE,westeurope,Standard_EC16ads_v6,on_demand,NA,1.403,USD,Azure Retail Prices API,2025-12-18T04:45:24.779679 +AZURE,westeurope,Standard_EC16ads_v6,reserved_1y,NA,0.827854,USD,Azure Retail Prices API,2025-12-18T04:45:26.209544 +AZURE,westeurope,Standard_EC16ads_v6,reserved_3y,NA,0.533219,USD,Azure Retail Prices API,2025-12-18T04:45:26.209548 +AZURE,westeurope,Standard_EC16ads_v6,spot,NA,0.259274,USD,Azure Retail Prices API,2025-12-18T04:45:24.780822 +AZURE,westeurope,Standard_EC16as_v5,on_demand,NA,1.096,USD,Azure Retail Prices API,2025-12-18T04:45:24.778990 +AZURE,westeurope,Standard_EC16as_v5,reserved_1y,NA,0.876826,USD,Azure Retail Prices API,2025-12-18T04:45:26.209266 +AZURE,westeurope,Standard_EC16as_v5,reserved_3y,NA,0.65761,USD,Azure Retail Prices API,2025-12-18T04:45:26.209269 +AZURE,westeurope,Standard_EC16as_v5,spot,NA,0.206815,USD,Azure Retail Prices API,2025-12-18T04:45:24.780854 +AZURE,westeurope,Standard_EC16as_v6,on_demand,NA,1.154,USD,Azure Retail Prices API,2025-12-18T04:45:24.780727 +AZURE,westeurope,Standard_EC16as_v6,reserved_1y,NA,0.680594,USD,Azure Retail Prices API,2025-12-18T04:45:26.210164 +AZURE,westeurope,Standard_EC16as_v6,reserved_3y,NA,0.438356,USD,Azure Retail Prices API,2025-12-18T04:45:26.210168 +AZURE,westeurope,Standard_EC16as_v6,spot,NA,0.213259,USD,Azure Retail Prices API,2025-12-18T04:45:24.779625 +AZURE,westeurope,Standard_EC20ads_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:45:24.779802 +AZURE,westeurope,Standard_EC20ads_v5,reserved_1y,NA,1.184018,USD,Azure Retail Prices API,2025-12-18T04:45:26.209608 +AZURE,westeurope,Standard_EC20ads_v5,reserved_3y,NA,0.888014,USD,Azure Retail Prices API,2025-12-18T04:45:26.209611 +AZURE,westeurope,Standard_EC20ads_v5,spot,NA,0.279276,USD,Azure Retail Prices API,2025-12-18T04:45:24.780061 +AZURE,westeurope,Standard_EC20as_v5,on_demand,NA,1.37,USD,Azure Retail Prices API,2025-12-18T04:45:24.780192 +AZURE,westeurope,Standard_EC20as_v5,reserved_1y,NA,1.096005,USD,Azure Retail Prices API,2025-12-18T04:45:26.209820 +AZURE,westeurope,Standard_EC20as_v5,reserved_3y,NA,0.821994,USD,Azure Retail Prices API,2025-12-18T04:45:26.209823 +AZURE,westeurope,Standard_EC20as_v5,spot,NA,0.258519,USD,Azure Retail Prices API,2025-12-18T04:45:24.779047 +AZURE,westeurope,Standard_EC2ads_v6,on_demand,NA,0.175,USD,Azure Retail Prices API,2025-12-18T04:45:24.778007 +AZURE,westeurope,Standard_EC2ads_v6,reserved_1y,NA,0.103539,USD,Azure Retail Prices API,2025-12-18T04:45:26.208731 +AZURE,westeurope,Standard_EC2ads_v6,reserved_3y,NA,0.066667,USD,Azure Retail Prices API,2025-12-18T04:45:26.208735 +AZURE,westeurope,Standard_EC2ads_v6,spot,NA,0.03234,USD,Azure Retail Prices API,2025-12-18T04:45:24.781249 +AZURE,westeurope,Standard_EC2as_v6,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:45:24.780478 +AZURE,westeurope,Standard_EC2as_v6,reserved_1y,NA,0.085046,USD,Azure Retail Prices API,2025-12-18T04:45:26.209987 +AZURE,westeurope,Standard_EC2as_v6,reserved_3y,NA,0.054795,USD,Azure Retail Prices API,2025-12-18T04:45:26.209990 +AZURE,westeurope,Standard_EC2as_v6,spot,NA,0.026611,USD,Azure Retail Prices API,2025-12-18T04:45:24.780473 +AZURE,westeurope,Standard_EC32ads_v5,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:45:24.779296 +AZURE,westeurope,Standard_EC32ads_v5,reserved_1y,NA,1.894406,USD,Azure Retail Prices API,2025-12-18T04:45:26.209394 +AZURE,westeurope,Standard_EC32ads_v5,reserved_3y,NA,1.420814,USD,Azure Retail Prices API,2025-12-18T04:45:26.209398 +AZURE,westeurope,Standard_EC32ads_v5,spot,NA,0.446842,USD,Azure Retail Prices API,2025-12-18T04:45:24.779342 +AZURE,westeurope,Standard_EC32ads_v6,on_demand,NA,2.806,USD,Azure Retail Prices API,2025-12-18T04:45:24.779718 +AZURE,westeurope,Standard_EC32ads_v6,reserved_1y,NA,1.655822,USD,Azure Retail Prices API,2025-12-18T04:45:26.209556 +AZURE,westeurope,Standard_EC32ads_v6,reserved_3y,NA,1.066438,USD,Azure Retail Prices API,2025-12-18T04:45:26.209559 +AZURE,westeurope,Standard_EC32ads_v6,spot,NA,0.518549,USD,Azure Retail Prices API,2025-12-18T04:45:24.779701 +AZURE,westeurope,Standard_EC32as_v5,on_demand,NA,2.192,USD,Azure Retail Prices API,2025-12-18T04:45:24.778431 +AZURE,westeurope,Standard_EC32as_v5,reserved_1y,NA,1.753653,USD,Azure Retail Prices API,2025-12-18T04:45:26.208981 +AZURE,westeurope,Standard_EC32as_v5,reserved_3y,NA,1.315183,USD,Azure Retail Prices API,2025-12-18T04:45:26.208985 +AZURE,westeurope,Standard_EC32as_v5,spot,NA,0.41363,USD,Azure Retail Prices API,2025-12-18T04:45:24.780376 +AZURE,westeurope,Standard_EC32as_v6,on_demand,NA,2.307,USD,Azure Retail Prices API,2025-12-18T04:45:24.780322 +AZURE,westeurope,Standard_EC32as_v6,reserved_1y,NA,1.361301,USD,Azure Retail Prices API,2025-12-18T04:45:26.209912 +AZURE,westeurope,Standard_EC32as_v6,reserved_3y,NA,0.87675,USD,Azure Retail Prices API,2025-12-18T04:45:26.209915 +AZURE,westeurope,Standard_EC32as_v6,spot,NA,0.426334,USD,Azure Retail Prices API,2025-12-18T04:45:24.778426 +AZURE,westeurope,Standard_EC48ads_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:45:24.779230 +AZURE,westeurope,Standard_EC48ads_v5,reserved_1y,NA,2.841553,USD,Azure Retail Prices API,2025-12-18T04:45:26.209346 +AZURE,westeurope,Standard_EC48ads_v5,reserved_3y,NA,2.131202,USD,Azure Retail Prices API,2025-12-18T04:45:26.209349 +AZURE,westeurope,Standard_EC48ads_v5,spot,NA,0.670262,USD,Azure Retail Prices API,2025-12-18T04:45:24.779886 +AZURE,westeurope,Standard_EC48ads_v6,on_demand,NA,4.21,USD,Azure Retail Prices API,2025-12-18T04:45:24.779007 +AZURE,westeurope,Standard_EC48ads_v6,reserved_1y,NA,2.483676,USD,Azure Retail Prices API,2025-12-18T04:45:26.209277 +AZURE,westeurope,Standard_EC48ads_v6,reserved_3y,NA,1.599658,USD,Azure Retail Prices API,2025-12-18T04:45:26.209280 +AZURE,westeurope,Standard_EC48ads_v6,spot,NA,0.778008,USD,Azure Retail Prices API,2025-12-18T04:45:24.781441 +AZURE,westeurope,Standard_EC48as_v5,on_demand,NA,3.288,USD,Azure Retail Prices API,2025-12-18T04:45:24.780596 +AZURE,westeurope,Standard_EC48as_v5,reserved_1y,NA,2.630365,USD,Azure Retail Prices API,2025-12-18T04:45:26.210091 +AZURE,westeurope,Standard_EC48as_v5,reserved_3y,NA,1.972793,USD,Azure Retail Prices API,2025-12-18T04:45:26.210095 +AZURE,westeurope,Standard_EC48as_v5,spot,NA,0.620446,USD,Azure Retail Prices API,2025-12-18T04:45:24.781207 +AZURE,westeurope,Standard_EC48as_v6,on_demand,NA,3.461,USD,Azure Retail Prices API,2025-12-18T04:45:24.780749 +AZURE,westeurope,Standard_EC48as_v6,reserved_1y,NA,2.041895,USD,Azure Retail Prices API,2025-12-18T04:45:26.210188 +AZURE,westeurope,Standard_EC48as_v6,reserved_3y,NA,1.315107,USD,Azure Retail Prices API,2025-12-18T04:45:26.210190 +AZURE,westeurope,Standard_EC48as_v6,spot,NA,0.639593,USD,Azure Retail Prices API,2025-12-18T04:45:24.781381 +AZURE,westeurope,Standard_EC4ads_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:45:24.778046 +AZURE,westeurope,Standard_EC4ads_v5,reserved_1y,NA,0.236758,USD,Azure Retail Prices API,2025-12-18T04:45:26.208757 +AZURE,westeurope,Standard_EC4ads_v5,reserved_3y,NA,0.177588,USD,Azure Retail Prices API,2025-12-18T04:45:26.208760 +AZURE,westeurope,Standard_EC4ads_v5,spot,NA,0.055855,USD,Azure Retail Prices API,2025-12-18T04:45:24.778644 +AZURE,westeurope,Standard_EC4ads_v6,on_demand,NA,0.351,USD,Azure Retail Prices API,2025-12-18T04:45:24.780274 +AZURE,westeurope,Standard_EC4ads_v6,reserved_1y,NA,0.206963,USD,Azure Retail Prices API,2025-12-18T04:45:26.209884 +AZURE,westeurope,Standard_EC4ads_v6,reserved_3y,NA,0.133295,USD,Azure Retail Prices API,2025-12-18T04:45:26.209887 +AZURE,westeurope,Standard_EC4ads_v6,spot,NA,0.064865,USD,Azure Retail Prices API,2025-12-18T04:45:24.778655 +AZURE,westeurope,Standard_EC4as_v5,on_demand,NA,0.274,USD,Azure Retail Prices API,2025-12-18T04:45:24.778141 +AZURE,westeurope,Standard_EC4as_v5,reserved_1y,NA,0.219178,USD,Azure Retail Prices API,2025-12-18T04:45:26.208828 +AZURE,westeurope,Standard_EC4as_v5,reserved_3y,NA,0.164384,USD,Azure Retail Prices API,2025-12-18T04:45:26.208830 +AZURE,westeurope,Standard_EC4as_v5,spot,NA,0.051704,USD,Azure Retail Prices API,2025-12-18T04:45:24.779236 +AZURE,westeurope,Standard_EC4as_v6,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:45:24.780049 +AZURE,westeurope,Standard_EC4as_v6,reserved_1y,NA,0.170205,USD,Azure Retail Prices API,2025-12-18T04:45:26.209745 +AZURE,westeurope,Standard_EC4as_v6,reserved_3y,NA,0.109589,USD,Azure Retail Prices API,2025-12-18T04:45:26.209748 +AZURE,westeurope,Standard_EC4as_v6,spot,NA,0.053222,USD,Azure Retail Prices API,2025-12-18T04:45:24.780693 +AZURE,westeurope,Standard_EC64ads_v5,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:45:24.778069 +AZURE,westeurope,Standard_EC64ads_v5,reserved_1y,NA,3.788813,USD,Azure Retail Prices API,2025-12-18T04:45:26.208776 +AZURE,westeurope,Standard_EC64ads_v5,reserved_3y,NA,2.841591,USD,Azure Retail Prices API,2025-12-18T04:45:26.208795 +AZURE,westeurope,Standard_EC64ads_v5,spot,NA,0.893683,USD,Azure Retail Prices API,2025-12-18T04:45:24.781168 +AZURE,westeurope,Standard_EC64ads_v6,on_demand,NA,5.613,USD,Azure Retail Prices API,2025-12-18T04:45:24.778885 +AZURE,westeurope,Standard_EC64ads_v6,reserved_1y,NA,3.31153,USD,Azure Retail Prices API,2025-12-18T04:45:26.209248 +AZURE,westeurope,Standard_EC64ads_v6,reserved_3y,NA,2.132877,USD,Azure Retail Prices API,2025-12-18T04:45:26.209251 +AZURE,westeurope,Standard_EC64ads_v6,spot,NA,1.037282,USD,Azure Retail Prices API,2025-12-18T04:45:24.779196 +AZURE,westeurope,Standard_EC64as_v5,on_demand,NA,4.384,USD,Azure Retail Prices API,2025-12-18T04:45:24.778532 +AZURE,westeurope,Standard_EC64as_v5,reserved_1y,NA,3.507192,USD,Azure Retail Prices API,2025-12-18T04:45:26.209053 +AZURE,westeurope,Standard_EC64as_v5,reserved_3y,NA,2.630403,USD,Azure Retail Prices API,2025-12-18T04:45:26.209056 +AZURE,westeurope,Standard_EC64as_v5,spot,NA,0.827261,USD,Azure Retail Prices API,2025-12-18T04:45:24.778774 +AZURE,westeurope,Standard_EC64as_v6,on_demand,NA,4.614,USD,Azure Retail Prices API,2025-12-18T04:45:24.778616 +AZURE,westeurope,Standard_EC64as_v6,reserved_1y,NA,2.722489,USD,Azure Retail Prices API,2025-12-18T04:45:26.209088 +AZURE,westeurope,Standard_EC64as_v6,reserved_3y,NA,1.753463,USD,Azure Retail Prices API,2025-12-18T04:45:26.209091 +AZURE,westeurope,Standard_EC64as_v6,spot,NA,0.852667,USD,Azure Retail Prices API,2025-12-18T04:45:24.778157 +AZURE,westeurope,Standard_EC8ads_v5,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:45:24.779359 +AZURE,westeurope,Standard_EC8ads_v5,reserved_1y,NA,0.47363,USD,Azure Retail Prices API,2025-12-18T04:45:26.209411 +AZURE,westeurope,Standard_EC8ads_v5,reserved_3y,NA,0.355213,USD,Azure Retail Prices API,2025-12-18T04:45:26.209414 +AZURE,westeurope,Standard_EC8ads_v5,spot,NA,0.11171,USD,Azure Retail Prices API,2025-12-18T04:45:24.781038 +AZURE,westeurope,Standard_EC8ads_v6,on_demand,NA,0.702,USD,Azure Retail Prices API,2025-12-18T04:45:24.781098 +AZURE,westeurope,Standard_EC8ads_v6,reserved_1y,NA,0.413927,USD,Azure Retail Prices API,2025-12-18T04:45:26.210368 +AZURE,westeurope,Standard_EC8ads_v6,reserved_3y,NA,0.266591,USD,Azure Retail Prices API,2025-12-18T04:45:26.210370 +AZURE,westeurope,Standard_EC8ads_v6,spot,NA,0.12973,USD,Azure Retail Prices API,2025-12-18T04:45:24.779336 +AZURE,westeurope,Standard_EC8as_v5,on_demand,NA,0.548,USD,Azure Retail Prices API,2025-12-18T04:45:24.780461 +AZURE,westeurope,Standard_EC8as_v5,reserved_1y,NA,0.438356,USD,Azure Retail Prices API,2025-12-18T04:45:26.209981 +AZURE,westeurope,Standard_EC8as_v5,reserved_3y,NA,0.328805,USD,Azure Retail Prices API,2025-12-18T04:45:26.209984 +AZURE,westeurope,Standard_EC8as_v5,spot,NA,0.103408,USD,Azure Retail Prices API,2025-12-18T04:45:24.781196 +AZURE,westeurope,Standard_EC8as_v6,on_demand,NA,0.577,USD,Azure Retail Prices API,2025-12-18T04:45:24.780242 +AZURE,westeurope,Standard_EC8as_v6,reserved_1y,NA,0.340297,USD,Azure Retail Prices API,2025-12-18T04:45:26.209861 +AZURE,westeurope,Standard_EC8as_v6,reserved_3y,NA,0.219178,USD,Azure Retail Prices API,2025-12-18T04:45:26.209864 +AZURE,westeurope,Standard_EC8as_v6,spot,NA,0.10663,USD,Azure Retail Prices API,2025-12-18T04:45:24.779018 +AZURE,westeurope,Standard_EC96ads_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:45:24.779497 +AZURE,westeurope,Standard_EC96ads_v5,reserved_1y,NA,5.683219,USD,Azure Retail Prices API,2025-12-18T04:45:26.209490 +AZURE,westeurope,Standard_EC96ads_v5,reserved_3y,NA,4.262405,USD,Azure Retail Prices API,2025-12-18T04:45:26.209493 +AZURE,westeurope,Standard_EC96ads_v5,spot,NA,1.340525,USD,Azure Retail Prices API,2025-12-18T04:45:24.779619 +AZURE,westeurope,Standard_EC96ads_v6,on_demand,NA,8.419,USD,Azure Retail Prices API,2025-12-18T04:45:24.779156 +AZURE,westeurope,Standard_EC96ads_v6,reserved_1y,NA,4.967352,USD,Azure Retail Prices API,2025-12-18T04:45:26.209323 +AZURE,westeurope,Standard_EC96ads_v6,reserved_3y,NA,3.199277,USD,Azure Retail Prices API,2025-12-18T04:45:26.209326 +AZURE,westeurope,Standard_EC96ads_v6,spot,NA,1.555831,USD,Azure Retail Prices API,2025-12-18T04:45:24.778420 +AZURE,westeurope,Standard_EC96as_v5,on_demand,NA,6.576,USD,Azure Retail Prices API,2025-12-18T04:45:24.778725 +AZURE,westeurope,Standard_EC96as_v5,reserved_1y,NA,5.260845,USD,Azure Retail Prices API,2025-12-18T04:45:26.209166 +AZURE,westeurope,Standard_EC96as_v5,reserved_3y,NA,3.945586,USD,Azure Retail Prices API,2025-12-18T04:45:26.209169 +AZURE,westeurope,Standard_EC96as_v5,spot,NA,1.240891,USD,Azure Retail Prices API,2025-12-18T04:45:24.778403 +AZURE,westeurope,Standard_EC96as_v6,on_demand,NA,6.922,USD,Azure Retail Prices API,2025-12-18T04:45:24.779264 +AZURE,westeurope,Standard_EC96as_v6,reserved_1y,NA,4.08379,USD,Azure Retail Prices API,2025-12-18T04:45:26.209375 +AZURE,westeurope,Standard_EC96as_v6,reserved_3y,NA,2.630213,USD,Azure Retail Prices API,2025-12-18T04:45:26.209379 +AZURE,westeurope,Standard_EC96as_v6,spot,NA,1.279186,USD,Azure Retail Prices API,2025-12-18T04:45:24.780978 +AZURE,westeurope,Standard_F16,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379380 +AZURE,westeurope,Standard_F16,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379388 +AZURE,westeurope,Standard_F16,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379392 +AZURE,westeurope,Standard_F16,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379384 +AZURE,westeurope,Standard_F16s,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381690 +AZURE,westeurope,Standard_F16s,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381699 +AZURE,westeurope,Standard_F16s,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381703 +AZURE,westeurope,Standard_F16s,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381694 +AZURE,westeurope,Standard_F16s_v2,on_demand,NA,0.8232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384402 +AZURE,westeurope,Standard_F16s_v2,reserved_1y,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384411 +AZURE,westeurope,Standard_F16s_v2,reserved_3y,NA,0.32928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384417 +AZURE,westeurope,Standard_F16s_v2,spot,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384406 +AZURE,westeurope,Standard_F32s_v2,on_demand,NA,1.6464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385178 +AZURE,westeurope,Standard_F32s_v2,reserved_1y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385189 +AZURE,westeurope,Standard_F32s_v2,reserved_3y,NA,0.65856,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385194 +AZURE,westeurope,Standard_F32s_v2,spot,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385185 +AZURE,westeurope,Standard_F4,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377779 +AZURE,westeurope,Standard_F4,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377793 +AZURE,westeurope,Standard_F4,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377798 +AZURE,westeurope,Standard_F4,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377786 +AZURE,westeurope,Standard_F48s_v2,on_demand,NA,2.4696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385988 +AZURE,westeurope,Standard_F48s_v2,reserved_1y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385996 +AZURE,westeurope,Standard_F48s_v2,reserved_3y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386000 +AZURE,westeurope,Standard_F48s_v2,spot,NA,0.74088,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385992 +AZURE,westeurope,Standard_F4s,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380136 +AZURE,westeurope,Standard_F4s,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380148 +AZURE,westeurope,Standard_F4s,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380156 +AZURE,westeurope,Standard_F4s,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380141 +AZURE,westeurope,Standard_F4s_v2,on_demand,NA,0.2058,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382739 +AZURE,westeurope,Standard_F4s_v2,reserved_1y,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382750 +AZURE,westeurope,Standard_F4s_v2,reserved_3y,NA,0.08232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382754 +AZURE,westeurope,Standard_F4s_v2,spot,NA,0.06174,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382745 +AZURE,westeurope,Standard_F64s_v2,on_demand,NA,3.2928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386778 +AZURE,westeurope,Standard_F64s_v2,reserved_1y,NA,1.97568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386788 +AZURE,westeurope,Standard_F64s_v2,reserved_3y,NA,1.31712,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386792 +AZURE,westeurope,Standard_F64s_v2,spot,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386784 +AZURE,westeurope,Standard_F72s_v2,on_demand,NA,3.7044,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387579 +AZURE,westeurope,Standard_F72s_v2,reserved_1y,NA,2.22264,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387587 +AZURE,westeurope,Standard_F72s_v2,reserved_3y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387592 +AZURE,westeurope,Standard_F72s_v2,spot,NA,1.11132,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387583 +AZURE,westeurope,Standard_F8,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378566 +AZURE,westeurope,Standard_F8,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378574 +AZURE,westeurope,Standard_F8,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378579 +AZURE,westeurope,Standard_F8,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378570 +AZURE,westeurope,Standard_F8s,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380844 +AZURE,westeurope,Standard_F8s,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380854 +AZURE,westeurope,Standard_F8s,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380858 +AZURE,westeurope,Standard_F8s,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380849 +AZURE,westeurope,Standard_F8s_v2,on_demand,NA,0.4116,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383579 +AZURE,westeurope,Standard_F8s_v2,reserved_1y,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383590 +AZURE,westeurope,Standard_F8s_v2,reserved_3y,NA,0.16464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383594 +AZURE,westeurope,Standard_F8s_v2,spot,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383586 +AZURE,westeurope,Standard_H16,on_demand,NA,2.065,USD,Azure Retail Prices API,2025-12-18T04:45:24.781335 +AZURE,westeurope,Standard_H16,spot,NA,0.381612,USD,Azure Retail Prices API,2025-12-18T04:45:24.779140 +AZURE,westeurope,Standard_H8,on_demand,NA,1.032,USD,Azure Retail Prices API,2025-12-18T04:45:24.778085 +AZURE,westeurope,Standard_H8,spot,NA,0.190714,USD,Azure Retail Prices API,2025-12-18T04:45:24.778346 +AZURE,westeurope,Standard_L16as_v3,on_demand,NA,1.488,USD,Azure Retail Prices API,2025-12-18T04:45:24.781267 +AZURE,westeurope,Standard_L16as_v3,reserved_1y,NA,0.952283,USD,Azure Retail Prices API,2025-12-18T04:45:26.210413 +AZURE,westeurope,Standard_L16as_v3,reserved_3y,NA,0.624962,USD,Azure Retail Prices API,2025-12-18T04:45:26.210417 +AZURE,westeurope,Standard_L16as_v3,spot,NA,0.303106,USD,Azure Retail Prices API,2025-12-18T04:45:24.781244 +AZURE,westeurope,Standard_L16s_v3,on_demand,NA,1.664,USD,Azure Retail Prices API,2025-12-18T04:45:24.779420 +AZURE,westeurope,Standard_L16s_v3,reserved_1y,NA,1.064954,USD,Azure Retail Prices API,2025-12-18T04:45:26.209434 +AZURE,westeurope,Standard_L16s_v3,reserved_3y,NA,0.698896,USD,Azure Retail Prices API,2025-12-18T04:45:26.209437 +AZURE,westeurope,Standard_L16s_v3,spot,NA,0.307507,USD,Azure Retail Prices API,2025-12-18T04:45:24.779902 +AZURE,westeurope,Standard_L32as_v3,on_demand,NA,2.976,USD,Azure Retail Prices API,2025-12-18T04:45:24.780704 +AZURE,westeurope,Standard_L32as_v3,reserved_1y,NA,1.90468,USD,Azure Retail Prices API,2025-12-18T04:45:26.210136 +AZURE,westeurope,Standard_L32as_v3,reserved_3y,NA,1.249924,USD,Azure Retail Prices API,2025-12-18T04:45:26.210138 +AZURE,westeurope,Standard_L32as_v3,spot,NA,0.606211,USD,Azure Retail Prices API,2025-12-18T04:45:24.780010 +AZURE,westeurope,Standard_L32s_v3,on_demand,NA,3.328,USD,Azure Retail Prices API,2025-12-18T04:45:24.780370 +AZURE,westeurope,Standard_L32s_v3,reserved_1y,NA,2.129909,USD,Azure Retail Prices API,2025-12-18T04:45:26.209946 +AZURE,westeurope,Standard_L32s_v3,reserved_3y,NA,1.397755,USD,Azure Retail Prices API,2025-12-18T04:45:26.209949 +AZURE,westeurope,Standard_L32s_v3,spot,NA,0.615014,USD,Azure Retail Prices API,2025-12-18T04:45:24.778249 +AZURE,westeurope,Standard_L48as_v3,on_demand,NA,4.464,USD,Azure Retail Prices API,2025-12-18T04:45:24.778217 +AZURE,westeurope,Standard_L48as_v3,reserved_1y,NA,2.856963,USD,Azure Retail Prices API,2025-12-18T04:45:26.208852 +AZURE,westeurope,Standard_L48as_v3,reserved_3y,NA,1.874886,USD,Azure Retail Prices API,2025-12-18T04:45:26.208855 +AZURE,westeurope,Standard_L48as_v3,spot,NA,0.909317,USD,Azure Retail Prices API,2025-12-18T04:45:24.780529 +AZURE,westeurope,Standard_L48s_v3,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:45:24.779586 +AZURE,westeurope,Standard_L48s_v3,reserved_1y,NA,3.194863,USD,Azure Retail Prices API,2025-12-18T04:45:26.209527 +AZURE,westeurope,Standard_L48s_v3,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:45:26.209529 +AZURE,westeurope,Standard_L48s_v3,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:45:24.781191 +AZURE,westeurope,Standard_L64as_v3,on_demand,NA,5.952,USD,Azure Retail Prices API,2025-12-18T04:45:24.780561 +AZURE,westeurope,Standard_L64as_v3,reserved_1y,NA,3.809247,USD,Azure Retail Prices API,2025-12-18T04:45:26.210051 +AZURE,westeurope,Standard_L64as_v3,reserved_3y,NA,2.499848,USD,Azure Retail Prices API,2025-12-18T04:45:26.210054 +AZURE,westeurope,Standard_L64as_v3,spot,NA,1.212422,USD,Azure Retail Prices API,2025-12-18T04:45:24.781232 +AZURE,westeurope,Standard_L64s_v3,on_demand,NA,6.656,USD,Azure Retail Prices API,2025-12-18T04:45:24.780928 +AZURE,westeurope,Standard_L64s_v3,reserved_1y,NA,4.259817,USD,Azure Retail Prices API,2025-12-18T04:45:26.210277 +AZURE,westeurope,Standard_L64s_v3,reserved_3y,NA,2.79551,USD,Azure Retail Prices API,2025-12-18T04:45:26.210280 +AZURE,westeurope,Standard_L64s_v3,spot,NA,1.230029,USD,Azure Retail Prices API,2025-12-18T04:45:24.780165 +AZURE,westeurope,Standard_L80as_v3,on_demand,NA,7.44,USD,Azure Retail Prices API,2025-12-18T04:45:24.778351 +AZURE,westeurope,Standard_L80as_v3,reserved_1y,NA,4.761644,USD,Azure Retail Prices API,2025-12-18T04:45:26.208927 +AZURE,westeurope,Standard_L80as_v3,reserved_3y,NA,3.12481,USD,Azure Retail Prices API,2025-12-18T04:45:26.208931 +AZURE,westeurope,Standard_L80as_v3,spot,NA,1.515528,USD,Azure Retail Prices API,2025-12-18T04:45:24.780484 +AZURE,westeurope,Standard_L80s_v3,on_demand,NA,8.32,USD,Azure Retail Prices API,2025-12-18T04:45:24.778381 +AZURE,westeurope,Standard_L80s_v3,reserved_1y,NA,5.324772,USD,Azure Retail Prices API,2025-12-18T04:45:26.208956 +AZURE,westeurope,Standard_L80s_v3,reserved_3y,NA,3.494406,USD,Azure Retail Prices API,2025-12-18T04:45:26.208959 +AZURE,westeurope,Standard_L80s_v3,spot,NA,1.537536,USD,Azure Retail Prices API,2025-12-18T04:45:24.780765 +AZURE,westeurope,Standard_L8as_v3,on_demand,NA,0.744,USD,Azure Retail Prices API,2025-12-18T04:45:24.781185 +AZURE,westeurope,Standard_L8as_v3,reserved_1y,NA,0.476142,USD,Azure Retail Prices API,2025-12-18T04:45:26.210384 +AZURE,westeurope,Standard_L8as_v3,reserved_3y,NA,0.312481,USD,Azure Retail Prices API,2025-12-18T04:45:26.210387 +AZURE,westeurope,Standard_L8as_v3,spot,NA,0.151553,USD,Azure Retail Prices API,2025-12-18T04:45:24.780860 +AZURE,westeurope,Standard_L8s_v3,on_demand,NA,0.832,USD,Azure Retail Prices API,2025-12-18T04:45:24.778692 +AZURE,westeurope,Standard_L8s_v3,reserved_1y,NA,0.532534,USD,Azure Retail Prices API,2025-12-18T04:45:26.209117 +AZURE,westeurope,Standard_L8s_v3,reserved_3y,NA,0.349429,USD,Azure Retail Prices API,2025-12-18T04:45:26.209133 +AZURE,westeurope,Standard_L8s_v3,spot,NA,0.153754,USD,Azure Retail Prices API,2025-12-18T04:45:24.778785 +AZURE,westeurope,Standard_NC12s_v3,on_demand,NA,7.646,USD,Azure Retail Prices API,2025-12-18T04:45:24.778595 +AZURE,westeurope,Standard_NC12s_v3,spot,NA,1.412981,USD,Azure Retail Prices API,2025-12-18T04:45:24.779307 +AZURE,westeurope,Standard_NC16as_T4_v3,on_demand,NA,1.505,USD,Azure Retail Prices API,2025-12-18T04:45:24.781146 +AZURE,westeurope,Standard_NC16as_T4_v3,reserved_1y,NA,0.963242,USD,Azure Retail Prices API,2025-12-18T04:45:26.210379 +AZURE,westeurope,Standard_NC16as_T4_v3,reserved_3y,NA,0.571918,USD,Azure Retail Prices API,2025-12-18T04:45:26.210382 +AZURE,westeurope,Standard_NC16as_T4_v3,spot,NA,0.670778,USD,Azure Retail Prices API,2025-12-18T04:45:24.778869 +AZURE,westeurope,Standard_NC24ads_A100_v4,on_demand,NA,4.775,USD,Azure Retail Prices API,2025-12-18T04:45:24.780187 +AZURE,westeurope,Standard_NC24ads_A100_v4,reserved_1y,NA,3.121347,USD,Azure Retail Prices API,2025-12-18T04:45:26.209815 +AZURE,westeurope,Standard_NC24ads_A100_v4,reserved_3y,NA,1.771956,USD,Azure Retail Prices API,2025-12-18T04:45:26.209818 +AZURE,westeurope,Standard_NC24ads_A100_v4,spot,NA,1.99977,USD,Azure Retail Prices API,2025-12-18T04:45:24.780999 +AZURE,westeurope,Standard_NC24s_v3,on_demand,NA,15.292,USD,Azure Retail Prices API,2025-12-18T04:45:24.780094 +AZURE,westeurope,Standard_NC24s_v3,spot,NA,2.825962,USD,Azure Retail Prices API,2025-12-18T04:45:24.780523 +AZURE,westeurope,Standard_NC40ads_H100_v5,on_demand,NA,9.08,USD,Azure Retail Prices API,2025-12-18T04:45:24.781369 +AZURE,westeurope,Standard_NC40ads_H100_v5,reserved_1y,NA,6.810046,USD,Azure Retail Prices API,2025-12-18T04:45:26.210468 +AZURE,westeurope,Standard_NC40ads_H100_v5,reserved_3y,NA,4.993988,USD,Azure Retail Prices API,2025-12-18T04:45:26.210471 +AZURE,westeurope,Standard_NC40ads_H100_v5,spot,NA,8.172,USD,Azure Retail Prices API,2025-12-18T04:45:24.780110 +AZURE,westeurope,Standard_NC48ads_A100_v4,on_demand,NA,9.55,USD,Azure Retail Prices API,2025-12-18T04:45:24.779919 +AZURE,westeurope,Standard_NC48ads_A100_v4,reserved_1y,NA,6.242694,USD,Azure Retail Prices API,2025-12-18T04:45:26.209682 +AZURE,westeurope,Standard_NC48ads_A100_v4,reserved_3y,NA,3.54395,USD,Azure Retail Prices API,2025-12-18T04:45:26.209685 +AZURE,westeurope,Standard_NC48ads_A100_v4,spot,NA,3.99954,USD,Azure Retail Prices API,2025-12-18T04:45:24.778206 +AZURE,westeurope,Standard_NC4as_T4_v3,on_demand,NA,0.658,USD,Azure Retail Prices API,2025-12-18T04:45:24.780838 +AZURE,westeurope,Standard_NC4as_T4_v3,reserved_1y,NA,0.420776,USD,Azure Retail Prices API,2025-12-18T04:45:26.210249 +AZURE,westeurope,Standard_NC4as_T4_v3,reserved_3y,NA,0.249848,USD,Azure Retail Prices API,2025-12-18T04:45:26.210252 +AZURE,westeurope,Standard_NC4as_T4_v3,spot,NA,0.293271,USD,Azure Retail Prices API,2025-12-18T04:45:24.780421 +AZURE,westeurope,Standard_NC64as_T4_v3,on_demand,NA,5.44,USD,Azure Retail Prices API,2025-12-18T04:45:24.779741 +AZURE,westeurope,Standard_NC64as_T4_v3,reserved_1y,NA,3.481621,USD,Azure Retail Prices API,2025-12-18T04:45:26.209573 +AZURE,westeurope,Standard_NC64as_T4_v3,reserved_3y,NA,2.067199,USD,Azure Retail Prices API,2025-12-18T04:45:26.209576 +AZURE,westeurope,Standard_NC64as_T4_v3,spot,NA,2.424608,USD,Azure Retail Prices API,2025-12-18T04:45:24.779425 +AZURE,westeurope,Standard_NC6s_v3,on_demand,NA,3.823,USD,Azure Retail Prices API,2025-12-18T04:45:24.778634 +AZURE,westeurope,Standard_NC6s_v3,spot,NA,0.70649,USD,Azure Retail Prices API,2025-12-18T04:45:24.780894 +AZURE,westeurope,Standard_NC8as_T4_v3,on_demand,NA,0.94,USD,Azure Retail Prices API,2025-12-18T04:45:24.778052 +AZURE,westeurope,Standard_NC8as_T4_v3,reserved_1y,NA,0.601598,USD,Azure Retail Prices API,2025-12-18T04:45:26.208764 +AZURE,westeurope,Standard_NC8as_T4_v3,reserved_3y,NA,0.357192,USD,Azure Retail Prices API,2025-12-18T04:45:26.208766 +AZURE,westeurope,Standard_NC8as_T4_v3,spot,NA,0.418958,USD,Azure Retail Prices API,2025-12-18T04:45:24.780176 +AZURE,westeurope,Standard_NC96ads_A100_v4,on_demand,NA,19.1,USD,Azure Retail Prices API,2025-12-18T04:45:24.780671 +AZURE,westeurope,Standard_NC96ads_A100_v4,reserved_1y,NA,12.485388,USD,Azure Retail Prices API,2025-12-18T04:45:26.210123 +AZURE,westeurope,Standard_NC96ads_A100_v4,reserved_3y,NA,7.087861,USD,Azure Retail Prices API,2025-12-18T04:45:26.210126 +AZURE,westeurope,Standard_NC96ads_A100_v4,spot,NA,7.99908,USD,Azure Retail Prices API,2025-12-18T04:45:24.778376 +AZURE,westeurope,Standard_ND96asr_v4,on_demand,NA,35.357,USD,Azure Retail Prices API,2025-12-18T04:45:24.780710 +AZURE,westeurope,Standard_ND96asr_v4,reserved_1y,NA,24.477511,USD,Azure Retail Prices API,2025-12-18T04:45:26.210147 +AZURE,westeurope,Standard_ND96asr_v4,reserved_3y,NA,14.142732,USD,Azure Retail Prices API,2025-12-18T04:45:26.210150 +AZURE,westeurope,Standard_ND96asr_v4,spot,NA,7.77854,USD,Azure Retail Prices API,2025-12-18T04:45:24.780143 +AZURE,westeurope,Standard_ND96isr_H100_v5,on_demand,NA,127.816,USD,Azure Retail Prices API,2025-12-18T04:45:24.779487 +AZURE,westeurope,Standard_ND96isr_H100_v5,reserved_1y,NA,81.802283,USD,Azure Retail Prices API,2025-12-18T04:45:26.209481 +AZURE,westeurope,Standard_ND96isr_H100_v5,reserved_3y,NA,56.111225,USD,Azure Retail Prices API,2025-12-18T04:45:26.209484 +AZURE,westeurope,Standard_ND96isr_H100_v5,spot,NA,23.620397,USD,Azure Retail Prices API,2025-12-18T04:45:24.778819 +AZURE,westeurope,Standard_NV36adms_A10_v5,on_demand,NA,5.876,USD,Azure Retail Prices API,2025-12-18T04:45:24.780754 +AZURE,westeurope,Standard_NV36adms_A10_v5,reserved_1y,NA,3.760616,USD,Azure Retail Prices API,2025-12-18T04:45:26.210193 +AZURE,westeurope,Standard_NV36adms_A10_v5,reserved_3y,NA,2.585426,USD,Azure Retail Prices API,2025-12-18T04:45:26.210196 +AZURE,westeurope,Standard_NV36adms_A10_v5,spot,NA,1.185189,USD,Azure Retail Prices API,2025-12-18T04:45:24.779213 +AZURE,westeurope,Standard_NV36ads_A10_v5,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:45:24.780033 +AZURE,westeurope,Standard_NV36ads_A10_v5,reserved_1y,NA,2.662443,USD,Azure Retail Prices API,2025-12-18T04:45:26.209733 +AZURE,westeurope,Standard_NV36ads_A10_v5,reserved_3y,NA,1.830403,USD,Azure Retail Prices API,2025-12-18T04:45:26.209736 +AZURE,westeurope,Standard_NV36ads_A10_v5,spot,NA,0.839072,USD,Azure Retail Prices API,2025-12-18T04:45:24.778549 +AZURE,westeurope,Standard_NV72ads_A10_v5,on_demand,NA,8.476,USD,Azure Retail Prices API,2025-12-18T04:45:24.778270 +AZURE,westeurope,Standard_NV72ads_A10_v5,reserved_1y,NA,5.424658,USD,Azure Retail Prices API,2025-12-18T04:45:26.208875 +AZURE,westeurope,Standard_NV72ads_A10_v5,reserved_3y,NA,3.729452,USD,Azure Retail Prices API,2025-12-18T04:45:26.208878 +AZURE,westeurope,Standard_NV72ads_A10_v5,spot,NA,1.709609,USD,Azure Retail Prices API,2025-12-18T04:45:24.780088 +AZURE,westindia,Standard_D128ds_v6,on_demand,NA,10.207,USD,Azure Retail Prices API,2025-12-18T04:46:53.295813 +AZURE,westindia,Standard_D128ds_v6,reserved_1y,NA,6.328196,USD,Azure Retail Prices API,2025-12-18T04:46:54.030416 +AZURE,westindia,Standard_D128ds_v6,reserved_3y,NA,3.980632,USD,Azure Retail Prices API,2025-12-18T04:46:54.030419 +AZURE,westindia,Standard_D128ds_v6,spot,NA,1.886254,USD,Azure Retail Prices API,2025-12-18T04:46:53.296844 +AZURE,westindia,Standard_D12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488696 +AZURE,westindia,Standard_D12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488704 +AZURE,westindia,Standard_D12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488709 +AZURE,westindia,Standard_D12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488700 +AZURE,westindia,Standard_D13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489518 +AZURE,westindia,Standard_D13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489526 +AZURE,westindia,Standard_D13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489530 +AZURE,westindia,Standard_D13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.489522 +AZURE,westindia,Standard_D14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490567 +AZURE,westindia,Standard_D14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490575 +AZURE,westindia,Standard_D14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490579 +AZURE,westindia,Standard_D14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490571 +AZURE,westindia,Standard_D15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491317 +AZURE,westindia,Standard_D15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491325 +AZURE,westindia,Standard_D15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491329 +AZURE,westindia,Standard_D15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491321 +AZURE,westindia,Standard_D16_v3,on_demand,NA,0.984,USD,Azure Retail Prices API,2025-12-18T04:46:53.296948 +AZURE,westindia,Standard_D16_v3,reserved_1y,NA,0.572374,USD,Azure Retail Prices API,2025-12-18T04:46:54.031252 +AZURE,westindia,Standard_D16_v3,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:54.031254 +AZURE,westindia,Standard_D16_v3,spot,NA,0.181843,USD,Azure Retail Prices API,2025-12-18T04:46:53.296453 +AZURE,westindia,Standard_D16a_v4,on_demand,NA,0.983,USD,Azure Retail Prices API,2025-12-18T04:46:53.295789 +AZURE,westindia,Standard_D16a_v4,reserved_1y,NA,0.580023,USD,Azure Retail Prices API,2025-12-18T04:46:54.030404 +AZURE,westindia,Standard_D16a_v4,reserved_3y,NA,0.373554,USD,Azure Retail Prices API,2025-12-18T04:46:54.030407 +AZURE,westindia,Standard_D16a_v4,spot,NA,0.181658,USD,Azure Retail Prices API,2025-12-18T04:46:53.296681 +AZURE,westindia,Standard_D16ads_v5,on_demand,NA,1.791,USD,Azure Retail Prices API,2025-12-18T04:46:53.296960 +AZURE,westindia,Standard_D16ads_v5,reserved_1y,NA,0.62226,USD,Azure Retail Prices API,2025-12-18T04:46:54.031730 +AZURE,westindia,Standard_D16ads_v5,reserved_3y,NA,0.400799,USD,Azure Retail Prices API,2025-12-18T04:46:54.031733 +AZURE,westindia,Standard_D16ads_v5,spot,NA,0.194964,USD,Azure Retail Prices API,2025-12-18T04:46:53.297287 +AZURE,westindia,Standard_D16ads_v6,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:46:53.296701 +AZURE,westindia,Standard_D16ads_v6,reserved_1y,NA,0.689155,USD,Azure Retail Prices API,2025-12-18T04:46:54.030917 +AZURE,westindia,Standard_D16ads_v6,reserved_3y,NA,0.443836,USD,Azure Retail Prices API,2025-12-18T04:46:54.030920 +AZURE,westindia,Standard_D16ads_v6,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:46:53.296111 +AZURE,westindia,Standard_D16as_v4,on_demand,NA,0.983,USD,Azure Retail Prices API,2025-12-18T04:46:53.297189 +AZURE,westindia,Standard_D16as_v4,reserved_1y,NA,0.580023,USD,Azure Retail Prices API,2025-12-18T04:46:54.031544 +AZURE,westindia,Standard_D16as_v4,reserved_3y,NA,0.373554,USD,Azure Retail Prices API,2025-12-18T04:46:54.031549 +AZURE,westindia,Standard_D16as_v4,spot,NA,0.181658,USD,Azure Retail Prices API,2025-12-18T04:46:53.297362 +AZURE,westindia,Standard_D16as_v5,on_demand,NA,0.881,USD,Azure Retail Prices API,2025-12-18T04:46:53.296736 +AZURE,westindia,Standard_D16as_v5,reserved_1y,NA,0.519521,USD,Azure Retail Prices API,2025-12-18T04:46:54.030946 +AZURE,westindia,Standard_D16as_v5,reserved_3y,NA,0.334627,USD,Azure Retail Prices API,2025-12-18T04:46:54.030948 +AZURE,westindia,Standard_D16as_v5,spot,NA,0.162809,USD,Azure Retail Prices API,2025-12-18T04:46:53.297064 +AZURE,westindia,Standard_D16d_v4,on_demand,NA,1.112,USD,Azure Retail Prices API,2025-12-18T04:46:53.296327 +AZURE,westindia,Standard_D16d_v4,reserved_1y,NA,0.65605,USD,Azure Retail Prices API,2025-12-18T04:46:54.030631 +AZURE,westindia,Standard_D16d_v4,reserved_3y,NA,0.422565,USD,Azure Retail Prices API,2025-12-18T04:46:54.030633 +AZURE,westindia,Standard_D16d_v4,spot,NA,0.205498,USD,Azure Retail Prices API,2025-12-18T04:46:53.296536 +AZURE,westindia,Standard_D16ds_v4,on_demand,NA,1.112,USD,Azure Retail Prices API,2025-12-18T04:46:53.296696 +AZURE,westindia,Standard_D16ds_v4,reserved_1y,NA,0.65605,USD,Azure Retail Prices API,2025-12-18T04:46:54.030912 +AZURE,westindia,Standard_D16ds_v4,reserved_3y,NA,0.422565,USD,Azure Retail Prices API,2025-12-18T04:46:54.030915 +AZURE,westindia,Standard_D16ds_v4,spot,NA,0.205498,USD,Azure Retail Prices API,2025-12-18T04:46:53.297218 +AZURE,westindia,Standard_D16ds_v5,on_demand,NA,1.157,USD,Azure Retail Prices API,2025-12-18T04:46:53.296718 +AZURE,westindia,Standard_D16ds_v5,reserved_1y,NA,0.682648,USD,Azure Retail Prices API,2025-12-18T04:46:54.030935 +AZURE,westindia,Standard_D16ds_v5,reserved_3y,NA,0.439688,USD,Azure Retail Prices API,2025-12-18T04:46:54.030937 +AZURE,westindia,Standard_D16ds_v5,spot,NA,0.213814,USD,Azure Retail Prices API,2025-12-18T04:46:53.296449 +AZURE,westindia,Standard_D16ds_v6,on_demand,NA,1.276,USD,Azure Retail Prices API,2025-12-18T04:46:53.296637 +AZURE,westindia,Standard_D16ds_v6,reserved_1y,NA,0.790982,USD,Azure Retail Prices API,2025-12-18T04:46:54.030875 +AZURE,westindia,Standard_D16ds_v6,reserved_3y,NA,0.497565,USD,Azure Retail Prices API,2025-12-18T04:46:54.030877 +AZURE,westindia,Standard_D16ds_v6,spot,NA,0.235805,USD,Azure Retail Prices API,2025-12-18T04:46:53.296028 +AZURE,westindia,Standard_D16s_v3,on_demand,NA,0.984,USD,Azure Retail Prices API,2025-12-18T04:46:53.296945 +AZURE,westindia,Standard_D16s_v3,reserved_1y,NA,0.572374,USD,Azure Retail Prices API,2025-12-18T04:46:54.031246 +AZURE,westindia,Standard_D16s_v3,reserved_3y,NA,0.360959,USD,Azure Retail Prices API,2025-12-18T04:46:54.031249 +AZURE,westindia,Standard_D16s_v3,spot,NA,0.181843,USD,Azure Retail Prices API,2025-12-18T04:46:53.295896 +AZURE,westindia,Standard_D16s_v4,on_demand,NA,0.944,USD,Azure Retail Prices API,2025-12-18T04:46:53.296675 +AZURE,westindia,Standard_D16s_v4,reserved_1y,NA,0.556963,USD,Azure Retail Prices API,2025-12-18T04:46:54.030902 +AZURE,westindia,Standard_D16s_v4,reserved_3y,NA,0.358714,USD,Azure Retail Prices API,2025-12-18T04:46:54.030904 +AZURE,westindia,Standard_D16s_v4,spot,NA,0.174451,USD,Azure Retail Prices API,2025-12-18T04:46:53.296888 +AZURE,westindia,Standard_D16s_v5,on_demand,NA,0.983,USD,Azure Retail Prices API,2025-12-18T04:46:53.296577 +AZURE,westindia,Standard_D16s_v5,reserved_1y,NA,0.580023,USD,Azure Retail Prices API,2025-12-18T04:46:54.030809 +AZURE,westindia,Standard_D16s_v5,reserved_3y,NA,0.363737,USD,Azure Retail Prices API,2025-12-18T04:46:54.030812 +AZURE,westindia,Standard_D16s_v5,spot,NA,0.181658,USD,Azure Retail Prices API,2025-12-18T04:46:53.296784 +AZURE,westindia,Standard_D2ads_v6,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:46:53.297376 +AZURE,westindia,Standard_D2ads_v6,reserved_1y,NA,0.086187,USD,Azure Retail Prices API,2025-12-18T04:46:54.031811 +AZURE,westindia,Standard_D2ads_v6,reserved_3y,NA,0.055479,USD,Azure Retail Prices API,2025-12-18T04:46:54.031814 +AZURE,westindia,Standard_D2ads_v6,spot,NA,0.026981,USD,Azure Retail Prices API,2025-12-18T04:46:53.296868 +AZURE,westindia,Standard_D2ds_v6,on_demand,NA,0.159,USD,Azure Retail Prices API,2025-12-18T04:46:53.297266 +AZURE,westindia,Standard_D2ds_v6,reserved_1y,NA,0.098858,USD,Azure Retail Prices API,2025-12-18T04:46:54.031619 +AZURE,westindia,Standard_D2ds_v6,reserved_3y,NA,0.062215,USD,Azure Retail Prices API,2025-12-18T04:46:54.031623 +AZURE,westindia,Standard_D2ds_v6,spot,NA,0.029383,USD,Azure Retail Prices API,2025-12-18T04:46:53.296364 +AZURE,westindia,Standard_D32_v3,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:46:53.296812 +AZURE,westindia,Standard_D32_v3,reserved_1y,NA,1.144749,USD,Azure Retail Prices API,2025-12-18T04:46:54.031019 +AZURE,westindia,Standard_D32_v3,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:54.031022 +AZURE,westindia,Standard_D32_v3,spot,NA,0.363686,USD,Azure Retail Prices API,2025-12-18T04:46:53.296044 +AZURE,westindia,Standard_D32a_v4,on_demand,NA,1.966,USD,Azure Retail Prices API,2025-12-18T04:46:53.297281 +AZURE,westindia,Standard_D32a_v4,reserved_1y,NA,1.159932,USD,Azure Retail Prices API,2025-12-18T04:46:54.031648 +AZURE,westindia,Standard_D32a_v4,reserved_3y,NA,0.747108,USD,Azure Retail Prices API,2025-12-18T04:46:54.031653 +AZURE,westindia,Standard_D32a_v4,spot,NA,0.363317,USD,Azure Retail Prices API,2025-12-18T04:46:53.297384 +AZURE,westindia,Standard_D32ads_v5,on_demand,NA,3.581,USD,Azure Retail Prices API,2025-12-18T04:46:53.295747 +AZURE,westindia,Standard_D32ads_v5,reserved_1y,NA,1.244521,USD,Azure Retail Prices API,2025-12-18T04:46:54.030636 +AZURE,westindia,Standard_D32ads_v5,reserved_3y,NA,0.801598,USD,Azure Retail Prices API,2025-12-18T04:46:54.030639 +AZURE,westindia,Standard_D32ads_v5,spot,NA,0.389743,USD,Azure Retail Prices API,2025-12-18T04:46:53.297159 +AZURE,westindia,Standard_D32ads_v6,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:46:53.296331 +AZURE,westindia,Standard_D32ads_v6,reserved_1y,NA,1.378196,USD,Azure Retail Prices API,2025-12-18T04:46:54.030641 +AZURE,westindia,Standard_D32ads_v6,reserved_3y,NA,0.887671,USD,Azure Retail Prices API,2025-12-18T04:46:54.030644 +AZURE,westindia,Standard_D32ads_v6,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:46:53.297306 +AZURE,westindia,Standard_D32as_v4,on_demand,NA,1.966,USD,Azure Retail Prices API,2025-12-18T04:46:53.295927 +AZURE,westindia,Standard_D32as_v4,reserved_1y,NA,1.159932,USD,Azure Retail Prices API,2025-12-18T04:46:54.030458 +AZURE,westindia,Standard_D32as_v4,reserved_3y,NA,0.747108,USD,Azure Retail Prices API,2025-12-18T04:46:54.030461 +AZURE,westindia,Standard_D32as_v4,spot,NA,0.363317,USD,Azure Retail Prices API,2025-12-18T04:46:53.296533 +AZURE,westindia,Standard_D32as_v5,on_demand,NA,3.233,USD,Azure Retail Prices API,2025-12-18T04:46:53.297154 +AZURE,westindia,Standard_D32as_v5,reserved_1y,NA,1.039155,USD,Azure Retail Prices API,2025-12-18T04:46:54.031532 +AZURE,westindia,Standard_D32as_v5,reserved_3y,NA,0.669292,USD,Azure Retail Prices API,2025-12-18T04:46:54.031535 +AZURE,westindia,Standard_D32as_v5,spot,NA,0.325433,USD,Azure Retail Prices API,2025-12-18T04:46:53.295936 +AZURE,westindia,Standard_D32d_v4,on_demand,NA,2.224,USD,Azure Retail Prices API,2025-12-18T04:46:53.297011 +AZURE,westindia,Standard_D32d_v4,reserved_1y,NA,1.312215,USD,Azure Retail Prices API,2025-12-18T04:46:54.031328 +AZURE,westindia,Standard_D32d_v4,reserved_3y,NA,0.845129,USD,Azure Retail Prices API,2025-12-18T04:46:54.031332 +AZURE,westindia,Standard_D32d_v4,spot,NA,0.410995,USD,Azure Retail Prices API,2025-12-18T04:46:53.297263 +AZURE,westindia,Standard_D32ds_v4,on_demand,NA,2.224,USD,Azure Retail Prices API,2025-12-18T04:46:53.296629 +AZURE,westindia,Standard_D32ds_v4,reserved_1y,NA,1.312215,USD,Azure Retail Prices API,2025-12-18T04:46:54.030853 +AZURE,westindia,Standard_D32ds_v4,reserved_3y,NA,0.845129,USD,Azure Retail Prices API,2025-12-18T04:46:54.030856 +AZURE,westindia,Standard_D32ds_v4,spot,NA,0.410995,USD,Azure Retail Prices API,2025-12-18T04:46:53.296909 +AZURE,westindia,Standard_D32ds_v5,on_demand,NA,2.314,USD,Azure Retail Prices API,2025-12-18T04:46:53.297258 +AZURE,westindia,Standard_D32ds_v5,reserved_1y,NA,1.365411,USD,Azure Retail Prices API,2025-12-18T04:46:54.031607 +AZURE,westindia,Standard_D32ds_v5,reserved_3y,NA,0.879414,USD,Azure Retail Prices API,2025-12-18T04:46:54.031610 +AZURE,westindia,Standard_D32ds_v5,spot,NA,0.427627,USD,Azure Retail Prices API,2025-12-18T04:46:53.296982 +AZURE,westindia,Standard_D32ds_v6,on_demand,NA,2.552,USD,Azure Retail Prices API,2025-12-18T04:46:53.297017 +AZURE,westindia,Standard_D32ds_v6,reserved_1y,NA,1.582078,USD,Azure Retail Prices API,2025-12-18T04:46:54.031336 +AZURE,westindia,Standard_D32ds_v6,reserved_3y,NA,0.995167,USD,Azure Retail Prices API,2025-12-18T04:46:54.031341 +AZURE,westindia,Standard_D32ds_v6,spot,NA,0.47161,USD,Azure Retail Prices API,2025-12-18T04:46:53.296115 +AZURE,westindia,Standard_D32s_v3,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:46:53.296524 +AZURE,westindia,Standard_D32s_v3,reserved_1y,NA,1.144749,USD,Azure Retail Prices API,2025-12-18T04:46:54.030757 +AZURE,westindia,Standard_D32s_v3,reserved_3y,NA,0.721918,USD,Azure Retail Prices API,2025-12-18T04:46:54.030760 +AZURE,westindia,Standard_D32s_v3,spot,NA,0.363686,USD,Azure Retail Prices API,2025-12-18T04:46:53.297100 +AZURE,westindia,Standard_D32s_v4,on_demand,NA,1.888,USD,Azure Retail Prices API,2025-12-18T04:46:53.297370 +AZURE,westindia,Standard_D32s_v4,reserved_1y,NA,1.113927,USD,Azure Retail Prices API,2025-12-18T04:46:54.031796 +AZURE,westindia,Standard_D32s_v4,reserved_3y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:54.031799 +AZURE,westindia,Standard_D32s_v4,spot,NA,0.348902,USD,Azure Retail Prices API,2025-12-18T04:46:53.296699 +AZURE,westindia,Standard_D32s_v5,on_demand,NA,1.966,USD,Azure Retail Prices API,2025-12-18T04:46:53.296795 +AZURE,westindia,Standard_D32s_v5,reserved_1y,NA,1.159932,USD,Azure Retail Prices API,2025-12-18T04:46:54.030997 +AZURE,westindia,Standard_D32s_v5,reserved_3y,NA,0.727435,USD,Azure Retail Prices API,2025-12-18T04:46:54.031000 +AZURE,westindia,Standard_D32s_v5,spot,NA,0.363317,USD,Azure Retail Prices API,2025-12-18T04:46:53.296493 +AZURE,westindia,Standard_D3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485810 +AZURE,westindia,Standard_D3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485819 +AZURE,westindia,Standard_D3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485824 +AZURE,westindia,Standard_D3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485815 +AZURE,westindia,Standard_D48a_v4,on_demand,NA,2.949,USD,Azure Retail Prices API,2025-12-18T04:46:53.296505 +AZURE,westindia,Standard_D48a_v4,reserved_1y,NA,1.739954,USD,Azure Retail Prices API,2025-12-18T04:46:54.030740 +AZURE,westindia,Standard_D48a_v4,reserved_3y,NA,1.120662,USD,Azure Retail Prices API,2025-12-18T04:46:54.030743 +AZURE,westindia,Standard_D48a_v4,spot,NA,0.544975,USD,Azure Retail Prices API,2025-12-18T04:46:53.295839 +AZURE,westindia,Standard_D48ads_v5,on_demand,NA,3.164,USD,Azure Retail Prices API,2025-12-18T04:46:53.296440 +AZURE,westindia,Standard_D48ads_v5,reserved_1y,NA,1.866895,USD,Azure Retail Prices API,2025-12-18T04:46:54.030698 +AZURE,westindia,Standard_D48ads_v5,reserved_3y,NA,1.202397,USD,Azure Retail Prices API,2025-12-18T04:46:54.030701 +AZURE,westindia,Standard_D48ads_v5,spot,NA,0.584707,USD,Azure Retail Prices API,2025-12-18T04:46:53.296540 +AZURE,westindia,Standard_D48ads_v6,on_demand,NA,3.504,USD,Azure Retail Prices API,2025-12-18T04:46:53.297352 +AZURE,westindia,Standard_D48ads_v6,reserved_1y,NA,2.067352,USD,Azure Retail Prices API,2025-12-18T04:46:54.031760 +AZURE,westindia,Standard_D48ads_v6,reserved_3y,NA,1.331507,USD,Azure Retail Prices API,2025-12-18T04:46:54.031764 +AZURE,westindia,Standard_D48ads_v6,spot,NA,0.647539,USD,Azure Retail Prices API,2025-12-18T04:46:53.297103 +AZURE,westindia,Standard_D48as_v4,on_demand,NA,2.949,USD,Azure Retail Prices API,2025-12-18T04:46:53.295778 +AZURE,westindia,Standard_D48as_v4,reserved_1y,NA,1.739954,USD,Azure Retail Prices API,2025-12-18T04:46:54.030398 +AZURE,westindia,Standard_D48as_v4,reserved_3y,NA,1.120662,USD,Azure Retail Prices API,2025-12-18T04:46:54.030401 +AZURE,westindia,Standard_D48as_v4,spot,NA,0.544975,USD,Azure Retail Prices API,2025-12-18T04:46:53.296586 +AZURE,westindia,Standard_D48as_v5,on_demand,NA,2.642,USD,Azure Retail Prices API,2025-12-18T04:46:53.295986 +AZURE,westindia,Standard_D48as_v5,reserved_1y,NA,1.558676,USD,Azure Retail Prices API,2025-12-18T04:46:54.030481 +AZURE,westindia,Standard_D48as_v5,reserved_3y,NA,1.003919,USD,Azure Retail Prices API,2025-12-18T04:46:54.030484 +AZURE,westindia,Standard_D48as_v5,spot,NA,0.488242,USD,Azure Retail Prices API,2025-12-18T04:46:53.296459 +AZURE,westindia,Standard_D48d_v4,on_demand,NA,3.336,USD,Azure Retail Prices API,2025-12-18T04:46:53.297304 +AZURE,westindia,Standard_D48d_v4,reserved_1y,NA,1.968265,USD,Azure Retail Prices API,2025-12-18T04:46:54.031680 +AZURE,westindia,Standard_D48d_v4,reserved_3y,NA,1.267694,USD,Azure Retail Prices API,2025-12-18T04:46:54.031685 +AZURE,westindia,Standard_D48d_v4,spot,NA,0.616493,USD,Azure Retail Prices API,2025-12-18T04:46:53.296693 +AZURE,westindia,Standard_D48ds_v4,on_demand,NA,3.336,USD,Azure Retail Prices API,2025-12-18T04:46:53.296803 +AZURE,westindia,Standard_D48ds_v4,reserved_1y,NA,1.968265,USD,Azure Retail Prices API,2025-12-18T04:46:54.031008 +AZURE,westindia,Standard_D48ds_v4,reserved_3y,NA,1.267694,USD,Azure Retail Prices API,2025-12-18T04:46:54.031011 +AZURE,westindia,Standard_D48ds_v4,spot,NA,0.616493,USD,Azure Retail Prices API,2025-12-18T04:46:53.295833 +AZURE,westindia,Standard_D48ds_v5,on_demand,NA,3.471,USD,Azure Retail Prices API,2025-12-18T04:46:53.296988 +AZURE,westindia,Standard_D48ds_v5,reserved_1y,NA,2.048059,USD,Azure Retail Prices API,2025-12-18T04:46:54.031299 +AZURE,westindia,Standard_D48ds_v5,reserved_3y,NA,1.319102,USD,Azure Retail Prices API,2025-12-18T04:46:54.031305 +AZURE,westindia,Standard_D48ds_v5,spot,NA,0.641441,USD,Azure Retail Prices API,2025-12-18T04:46:53.295737 +AZURE,westindia,Standard_D48ds_v6,on_demand,NA,3.828,USD,Azure Retail Prices API,2025-12-18T04:46:53.297056 +AZURE,westindia,Standard_D48ds_v6,reserved_1y,NA,2.373059,USD,Azure Retail Prices API,2025-12-18T04:46:54.031382 +AZURE,westindia,Standard_D48ds_v6,reserved_3y,NA,1.492732,USD,Azure Retail Prices API,2025-12-18T04:46:54.031385 +AZURE,westindia,Standard_D48ds_v6,spot,NA,0.707414,USD,Azure Retail Prices API,2025-12-18T04:46:53.295854 +AZURE,westindia,Standard_D48s_v4,on_demand,NA,2.832,USD,Azure Retail Prices API,2025-12-18T04:46:53.296271 +AZURE,westindia,Standard_D48s_v4,reserved_1y,NA,1.67089,USD,Azure Retail Prices API,2025-12-18T04:46:54.030589 +AZURE,westindia,Standard_D48s_v4,reserved_3y,NA,1.07618,USD,Azure Retail Prices API,2025-12-18T04:46:54.030592 +AZURE,westindia,Standard_D48s_v4,spot,NA,0.523354,USD,Azure Retail Prices API,2025-12-18T04:46:53.296809 +AZURE,westindia,Standard_D48s_v5,on_demand,NA,2.949,USD,Azure Retail Prices API,2025-12-18T04:46:53.297246 +AZURE,westindia,Standard_D48s_v5,reserved_1y,NA,1.739954,USD,Azure Retail Prices API,2025-12-18T04:46:54.031596 +AZURE,westindia,Standard_D48s_v5,reserved_3y,NA,1.091172,USD,Azure Retail Prices API,2025-12-18T04:46:54.031599 +AZURE,westindia,Standard_D48s_v5,spot,NA,0.544975,USD,Azure Retail Prices API,2025-12-18T04:46:53.296412 +AZURE,westindia,Standard_D4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486674 +AZURE,westindia,Standard_D4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486687 +AZURE,westindia,Standard_D4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486693 +AZURE,westindia,Standard_D4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486681 +AZURE,westindia,Standard_D4a_v4,on_demand,NA,0.246,USD,Azure Retail Prices API,2025-12-18T04:46:53.296095 +AZURE,westindia,Standard_D4a_v4,reserved_1y,NA,0.144977,USD,Azure Retail Prices API,2025-12-18T04:46:54.030516 +AZURE,westindia,Standard_D4a_v4,reserved_3y,NA,0.093379,USD,Azure Retail Prices API,2025-12-18T04:46:54.030518 +AZURE,westindia,Standard_D4a_v4,spot,NA,0.045461,USD,Azure Retail Prices API,2025-12-18T04:46:53.297136 +AZURE,westindia,Standard_D4ads_v5,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:46:53.295726 +AZURE,westindia,Standard_D4ads_v5,reserved_1y,NA,0.155594,USD,Azure Retail Prices API,2025-12-18T04:46:54.030869 +AZURE,westindia,Standard_D4ads_v5,reserved_3y,NA,0.10019,USD,Azure Retail Prices API,2025-12-18T04:46:54.030872 +AZURE,westindia,Standard_D4ads_v5,spot,NA,0.048787,USD,Azure Retail Prices API,2025-12-18T04:46:53.296255 +AZURE,westindia,Standard_D4ads_v6,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:53.296380 +AZURE,westindia,Standard_D4ads_v6,reserved_1y,NA,0.17226,USD,Azure Retail Prices API,2025-12-18T04:46:54.030665 +AZURE,westindia,Standard_D4ads_v6,reserved_3y,NA,0.110959,USD,Azure Retail Prices API,2025-12-18T04:46:54.030668 +AZURE,westindia,Standard_D4ads_v6,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:46:53.296354 +AZURE,westindia,Standard_D4as_v5,on_demand,NA,0.22,USD,Azure Retail Prices API,2025-12-18T04:46:53.296402 +AZURE,westindia,Standard_D4as_v5,reserved_1y,NA,0.129909,USD,Azure Retail Prices API,2025-12-18T04:46:54.030681 +AZURE,westindia,Standard_D4as_v5,reserved_3y,NA,0.083676,USD,Azure Retail Prices API,2025-12-18T04:46:54.030684 +AZURE,westindia,Standard_D4as_v5,spot,NA,0.040656,USD,Azure Retail Prices API,2025-12-18T04:46:53.297224 +AZURE,westindia,Standard_D4d_v4,on_demand,NA,0.278,USD,Azure Retail Prices API,2025-12-18T04:46:53.296601 +AZURE,westindia,Standard_D4d_v4,reserved_1y,NA,0.164041,USD,Azure Retail Prices API,2025-12-18T04:46:54.030826 +AZURE,westindia,Standard_D4d_v4,reserved_3y,NA,0.105632,USD,Azure Retail Prices API,2025-12-18T04:46:54.030829 +AZURE,westindia,Standard_D4d_v4,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:46:53.295886 +AZURE,westindia,Standard_D4ds_v4,on_demand,NA,0.278,USD,Azure Retail Prices API,2025-12-18T04:46:53.296370 +AZURE,westindia,Standard_D4ds_v4,reserved_1y,NA,0.164041,USD,Azure Retail Prices API,2025-12-18T04:46:54.030659 +AZURE,westindia,Standard_D4ds_v4,reserved_3y,NA,0.105632,USD,Azure Retail Prices API,2025-12-18T04:46:54.030662 +AZURE,westindia,Standard_D4ds_v4,spot,NA,0.051374,USD,Azure Retail Prices API,2025-12-18T04:46:53.297174 +AZURE,westindia,Standard_D4ds_v5,on_demand,NA,0.289,USD,Azure Retail Prices API,2025-12-18T04:46:53.296963 +AZURE,westindia,Standard_D4ds_v5,reserved_1y,NA,0.170662,USD,Azure Retail Prices API,2025-12-18T04:46:54.031263 +AZURE,westindia,Standard_D4ds_v5,reserved_3y,NA,0.109932,USD,Azure Retail Prices API,2025-12-18T04:46:54.031266 +AZURE,westindia,Standard_D4ds_v5,spot,NA,0.053407,USD,Azure Retail Prices API,2025-12-18T04:46:53.296724 +AZURE,westindia,Standard_D4ds_v6,on_demand,NA,0.319,USD,Azure Retail Prices API,2025-12-18T04:46:53.296859 +AZURE,westindia,Standard_D4ds_v6,reserved_1y,NA,0.197717,USD,Azure Retail Prices API,2025-12-18T04:46:54.031154 +AZURE,westindia,Standard_D4ds_v6,reserved_3y,NA,0.124391,USD,Azure Retail Prices API,2025-12-18T04:46:54.031162 +AZURE,westindia,Standard_D4ds_v6,spot,NA,0.058951,USD,Azure Retail Prices API,2025-12-18T04:46:53.296789 +AZURE,westindia,Standard_D4s_v3,on_demand,NA,0.246,USD,Azure Retail Prices API,2025-12-18T04:46:53.296710 +AZURE,westindia,Standard_D4s_v3,reserved_1y,NA,0.143037,USD,Azure Retail Prices API,2025-12-18T04:46:54.030923 +AZURE,westindia,Standard_D4s_v3,reserved_3y,NA,0.090221,USD,Azure Retail Prices API,2025-12-18T04:46:54.030926 +AZURE,westindia,Standard_D4s_v3,spot,NA,0.045461,USD,Azure Retail Prices API,2025-12-18T04:46:53.296022 +AZURE,westindia,Standard_D4s_v4,on_demand,NA,0.236,USD,Azure Retail Prices API,2025-12-18T04:46:53.296091 +AZURE,westindia,Standard_D4s_v4,reserved_1y,NA,0.139269,USD,Azure Retail Prices API,2025-12-18T04:46:54.030510 +AZURE,westindia,Standard_D4s_v4,reserved_3y,NA,0.089688,USD,Azure Retail Prices API,2025-12-18T04:46:54.030513 +AZURE,westindia,Standard_D4s_v4,spot,NA,0.043613,USD,Azure Retail Prices API,2025-12-18T04:46:53.297244 +AZURE,westindia,Standard_D4s_v5,on_demand,NA,0.246,USD,Azure Retail Prices API,2025-12-18T04:46:53.296840 +AZURE,westindia,Standard_D4s_v5,reserved_1y,NA,0.144977,USD,Azure Retail Prices API,2025-12-18T04:46:54.031042 +AZURE,westindia,Standard_D4s_v5,reserved_3y,NA,0.090944,USD,Azure Retail Prices API,2025-12-18T04:46:54.031045 +AZURE,westindia,Standard_D4s_v5,spot,NA,0.045461,USD,Azure Retail Prices API,2025-12-18T04:46:53.296991 +AZURE,westindia,Standard_D5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487919 +AZURE,westindia,Standard_D5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487927 +AZURE,westindia,Standard_D5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487931 +AZURE,westindia,Standard_D5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487923 +AZURE,westindia,Standard_D64_v3,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:46:53.296177 +AZURE,westindia,Standard_D64_v3,reserved_1y,NA,2.289498,USD,Azure Retail Prices API,2025-12-18T04:46:54.030555 +AZURE,westindia,Standard_D64_v3,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:54.030560 +AZURE,westindia,Standard_D64_v3,spot,NA,0.727373,USD,Azure Retail Prices API,2025-12-18T04:46:53.296655 +AZURE,westindia,Standard_D64a_v4,on_demand,NA,3.932,USD,Azure Retail Prices API,2025-12-18T04:46:53.296007 +AZURE,westindia,Standard_D64a_v4,reserved_1y,NA,2.319977,USD,Azure Retail Prices API,2025-12-18T04:46:54.030487 +AZURE,westindia,Standard_D64a_v4,reserved_3y,NA,1.494216,USD,Azure Retail Prices API,2025-12-18T04:46:54.030489 +AZURE,westindia,Standard_D64a_v4,spot,NA,0.726634,USD,Azure Retail Prices API,2025-12-18T04:46:53.295732 +AZURE,westindia,Standard_D64ads_v5,on_demand,NA,4.219,USD,Azure Retail Prices API,2025-12-18T04:46:53.296608 +AZURE,westindia,Standard_D64ads_v5,reserved_1y,NA,2.489155,USD,Azure Retail Prices API,2025-12-18T04:46:54.030831 +AZURE,westindia,Standard_D64ads_v5,reserved_3y,NA,1.603158,USD,Azure Retail Prices API,2025-12-18T04:46:54.030834 +AZURE,westindia,Standard_D64ads_v5,spot,NA,0.779671,USD,Azure Retail Prices API,2025-12-18T04:46:53.297087 +AZURE,westindia,Standard_D64ads_v6,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:46:53.296166 +AZURE,westindia,Standard_D64ads_v6,reserved_1y,NA,2.756507,USD,Azure Retail Prices API,2025-12-18T04:46:54.030550 +AZURE,westindia,Standard_D64ads_v6,reserved_3y,NA,1.775342,USD,Azure Retail Prices API,2025-12-18T04:46:54.030553 +AZURE,westindia,Standard_D64ads_v6,spot,NA,0.863386,USD,Azure Retail Prices API,2025-12-18T04:46:53.297240 +AZURE,westindia,Standard_D64as_v4,on_demand,NA,3.932,USD,Azure Retail Prices API,2025-12-18T04:46:53.297067 +AZURE,westindia,Standard_D64as_v4,reserved_1y,NA,2.319977,USD,Azure Retail Prices API,2025-12-18T04:46:54.031394 +AZURE,westindia,Standard_D64as_v4,reserved_3y,NA,1.494216,USD,Azure Retail Prices API,2025-12-18T04:46:54.031397 +AZURE,westindia,Standard_D64as_v4,spot,NA,0.726634,USD,Azure Retail Prices API,2025-12-18T04:46:53.296870 +AZURE,westindia,Standard_D64as_v5,on_demand,NA,3.523,USD,Azure Retail Prices API,2025-12-18T04:46:53.295742 +AZURE,westindia,Standard_D64as_v5,reserved_1y,NA,2.078311,USD,Azure Retail Prices API,2025-12-18T04:46:54.030374 +AZURE,westindia,Standard_D64as_v5,reserved_3y,NA,1.338584,USD,Azure Retail Prices API,2025-12-18T04:46:54.030379 +AZURE,westindia,Standard_D64as_v5,spot,NA,0.65105,USD,Azure Retail Prices API,2025-12-18T04:46:53.295991 +AZURE,westindia,Standard_D64d_v4,on_demand,NA,4.448,USD,Azure Retail Prices API,2025-12-18T04:46:53.296985 +AZURE,westindia,Standard_D64d_v4,reserved_1y,NA,2.624315,USD,Azure Retail Prices API,2025-12-18T04:46:54.031275 +AZURE,westindia,Standard_D64d_v4,reserved_3y,NA,1.690259,USD,Azure Retail Prices API,2025-12-18T04:46:54.031293 +AZURE,westindia,Standard_D64d_v4,spot,NA,0.82199,USD,Azure Retail Prices API,2025-12-18T04:46:53.296690 +AZURE,westindia,Standard_D64ds_v4,on_demand,NA,4.448,USD,Azure Retail Prices API,2025-12-18T04:46:53.296879 +AZURE,westindia,Standard_D64ds_v4,reserved_1y,NA,2.624315,USD,Azure Retail Prices API,2025-12-18T04:46:54.031186 +AZURE,westindia,Standard_D64ds_v4,reserved_3y,NA,1.690259,USD,Azure Retail Prices API,2025-12-18T04:46:54.031189 +AZURE,westindia,Standard_D64ds_v4,spot,NA,0.82199,USD,Azure Retail Prices API,2025-12-18T04:46:53.296599 +AZURE,westindia,Standard_D64ds_v5,on_demand,NA,4.628,USD,Azure Retail Prices API,2025-12-18T04:46:53.296474 +AZURE,westindia,Standard_D64ds_v5,reserved_1y,NA,2.730822,USD,Azure Retail Prices API,2025-12-18T04:46:54.030716 +AZURE,westindia,Standard_D64ds_v5,reserved_3y,NA,1.758828,USD,Azure Retail Prices API,2025-12-18T04:46:54.030719 +AZURE,westindia,Standard_D64ds_v5,spot,NA,0.855254,USD,Azure Retail Prices API,2025-12-18T04:46:53.296425 +AZURE,westindia,Standard_D64ds_v6,on_demand,NA,5.103,USD,Azure Retail Prices API,2025-12-18T04:46:53.297230 +AZURE,westindia,Standard_D64ds_v6,reserved_1y,NA,3.164041,USD,Azure Retail Prices API,2025-12-18T04:46:54.031581 +AZURE,westindia,Standard_D64ds_v6,reserved_3y,NA,1.990297,USD,Azure Retail Prices API,2025-12-18T04:46:54.031584 +AZURE,westindia,Standard_D64ds_v6,spot,NA,0.943034,USD,Azure Retail Prices API,2025-12-18T04:46:53.296076 +AZURE,westindia,Standard_D64s_v3,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:46:53.297165 +AZURE,westindia,Standard_D64s_v3,reserved_1y,NA,2.289498,USD,Azure Retail Prices API,2025-12-18T04:46:54.031508 +AZURE,westindia,Standard_D64s_v3,reserved_3y,NA,1.443836,USD,Azure Retail Prices API,2025-12-18T04:46:54.031511 +AZURE,westindia,Standard_D64s_v3,spot,NA,0.727373,USD,Azure Retail Prices API,2025-12-18T04:46:53.297327 +AZURE,westindia,Standard_D64s_v4,on_demand,NA,3.776,USD,Azure Retail Prices API,2025-12-18T04:46:53.297036 +AZURE,westindia,Standard_D64s_v4,reserved_1y,NA,2.227854,USD,Azure Retail Prices API,2025-12-18T04:46:54.031348 +AZURE,westindia,Standard_D64s_v4,reserved_3y,NA,1.434932,USD,Azure Retail Prices API,2025-12-18T04:46:54.031352 +AZURE,westindia,Standard_D64s_v4,spot,NA,0.697805,USD,Azure Retail Prices API,2025-12-18T04:46:53.296071 +AZURE,westindia,Standard_D64s_v5,on_demand,NA,3.932,USD,Azure Retail Prices API,2025-12-18T04:46:53.295700 +AZURE,westindia,Standard_D64s_v5,reserved_1y,NA,2.319977,USD,Azure Retail Prices API,2025-12-18T04:46:54.030342 +AZURE,westindia,Standard_D64s_v5,reserved_3y,NA,1.454909,USD,Azure Retail Prices API,2025-12-18T04:46:54.030345 +AZURE,westindia,Standard_D64s_v5,spot,NA,0.726634,USD,Azure Retail Prices API,2025-12-18T04:46:53.296574 +AZURE,westindia,Standard_D8_v3,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:46:53.297356 +AZURE,westindia,Standard_D8_v3,reserved_1y,NA,0.286187,USD,Azure Retail Prices API,2025-12-18T04:46:54.031773 +AZURE,westindia,Standard_D8_v3,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:54.031776 +AZURE,westindia,Standard_D8_v3,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:46:53.296891 +AZURE,westindia,Standard_D8a_v4,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:46:53.296807 +AZURE,westindia,Standard_D8a_v4,reserved_1y,NA,0.289954,USD,Azure Retail Prices API,2025-12-18T04:46:54.031014 +AZURE,westindia,Standard_D8a_v4,reserved_3y,NA,0.186796,USD,Azure Retail Prices API,2025-12-18T04:46:54.031017 +AZURE,westindia,Standard_D8a_v4,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:46:53.296595 +AZURE,westindia,Standard_D8ads_v5,on_demand,NA,0.895,USD,Azure Retail Prices API,2025-12-18T04:46:53.296038 +AZURE,westindia,Standard_D8ads_v5,reserved_1y,NA,0.311187,USD,Azure Retail Prices API,2025-12-18T04:46:54.030774 +AZURE,westindia,Standard_D8ads_v5,reserved_3y,NA,0.200381,USD,Azure Retail Prices API,2025-12-18T04:46:54.030777 +AZURE,westindia,Standard_D8ads_v5,spot,NA,0.09739,USD,Azure Retail Prices API,2025-12-18T04:46:53.296508 +AZURE,westindia,Standard_D8ads_v6,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:46:53.297271 +AZURE,westindia,Standard_D8ads_v6,reserved_1y,NA,0.344521,USD,Azure Retail Prices API,2025-12-18T04:46:54.031628 +AZURE,westindia,Standard_D8ads_v6,reserved_3y,NA,0.221918,USD,Azure Retail Prices API,2025-12-18T04:46:54.031635 +AZURE,westindia,Standard_D8ads_v6,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:46:53.296546 +AZURE,westindia,Standard_D8as_v4,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:46:53.295864 +AZURE,westindia,Standard_D8as_v4,reserved_1y,NA,0.289954,USD,Azure Retail Prices API,2025-12-18T04:46:54.030435 +AZURE,westindia,Standard_D8as_v4,reserved_3y,NA,0.186796,USD,Azure Retail Prices API,2025-12-18T04:46:54.030438 +AZURE,westindia,Standard_D8as_v4,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:46:53.296232 +AZURE,westindia,Standard_D8as_v5,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:46:53.295922 +AZURE,westindia,Standard_D8as_v5,reserved_1y,NA,0.259817,USD,Azure Retail Prices API,2025-12-18T04:46:54.031700 +AZURE,westindia,Standard_D8as_v5,reserved_3y,NA,0.167314,USD,Azure Retail Prices API,2025-12-18T04:46:54.031703 +AZURE,westindia,Standard_D8as_v5,spot,NA,0.081312,USD,Azure Retail Prices API,2025-12-18T04:46:53.297227 +AZURE,westindia,Standard_D8d_v4,on_demand,NA,0.556,USD,Azure Retail Prices API,2025-12-18T04:46:53.296012 +AZURE,westindia,Standard_D8d_v4,reserved_1y,NA,0.328082,USD,Azure Retail Prices API,2025-12-18T04:46:54.030492 +AZURE,westindia,Standard_D8d_v4,reserved_3y,NA,0.211263,USD,Azure Retail Prices API,2025-12-18T04:46:54.030495 +AZURE,westindia,Standard_D8d_v4,spot,NA,0.102749,USD,Azure Retail Prices API,2025-12-18T04:46:53.295705 +AZURE,westindia,Standard_D8ds_v4,on_demand,NA,0.556,USD,Azure Retail Prices API,2025-12-18T04:46:53.297005 +AZURE,westindia,Standard_D8ds_v4,reserved_1y,NA,0.328082,USD,Azure Retail Prices API,2025-12-18T04:46:54.031319 +AZURE,westindia,Standard_D8ds_v4,reserved_3y,NA,0.211263,USD,Azure Retail Prices API,2025-12-18T04:46:54.031323 +AZURE,westindia,Standard_D8ds_v4,spot,NA,0.102749,USD,Azure Retail Prices API,2025-12-18T04:46:53.296266 +AZURE,westindia,Standard_D8ds_v5,on_demand,NA,0.579,USD,Azure Retail Prices API,2025-12-18T04:46:53.297061 +AZURE,westindia,Standard_D8ds_v5,reserved_1y,NA,0.341324,USD,Azure Retail Prices API,2025-12-18T04:46:54.031388 +AZURE,westindia,Standard_D8ds_v5,reserved_3y,NA,0.219863,USD,Azure Retail Prices API,2025-12-18T04:46:54.031391 +AZURE,westindia,Standard_D8ds_v5,spot,NA,0.106999,USD,Azure Retail Prices API,2025-12-18T04:46:53.296226 +AZURE,westindia,Standard_D8ds_v6,on_demand,NA,0.638,USD,Azure Retail Prices API,2025-12-18T04:46:53.297330 +AZURE,westindia,Standard_D8ds_v6,reserved_1y,NA,0.395548,USD,Azure Retail Prices API,2025-12-18T04:46:54.031711 +AZURE,westindia,Standard_D8ds_v6,reserved_3y,NA,0.248782,USD,Azure Retail Prices API,2025-12-18T04:46:54.031714 +AZURE,westindia,Standard_D8ds_v6,spot,NA,0.117902,USD,Azure Retail Prices API,2025-12-18T04:46:53.296215 +AZURE,westindia,Standard_D8s_v3,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:46:53.296626 +AZURE,westindia,Standard_D8s_v3,reserved_1y,NA,0.286187,USD,Azure Retail Prices API,2025-12-18T04:46:54.030847 +AZURE,westindia,Standard_D8s_v3,reserved_3y,NA,0.180479,USD,Azure Retail Prices API,2025-12-18T04:46:54.030850 +AZURE,westindia,Standard_D8s_v3,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:46:53.296086 +AZURE,westindia,Standard_D8s_v4,on_demand,NA,0.472,USD,Azure Retail Prices API,2025-12-18T04:46:53.296193 +AZURE,westindia,Standard_D8s_v4,reserved_1y,NA,0.278539,USD,Azure Retail Prices API,2025-12-18T04:46:54.030565 +AZURE,westindia,Standard_D8s_v4,reserved_3y,NA,0.179376,USD,Azure Retail Prices API,2025-12-18T04:46:54.030569 +AZURE,westindia,Standard_D8s_v4,spot,NA,0.087226,USD,Azure Retail Prices API,2025-12-18T04:46:53.297387 +AZURE,westindia,Standard_D8s_v5,on_demand,NA,0.492,USD,Azure Retail Prices API,2025-12-18T04:46:53.297373 +AZURE,westindia,Standard_D8s_v5,reserved_1y,NA,0.289954,USD,Azure Retail Prices API,2025-12-18T04:46:54.031804 +AZURE,westindia,Standard_D8s_v5,reserved_3y,NA,0.181849,USD,Azure Retail Prices API,2025-12-18T04:46:54.031808 +AZURE,westindia,Standard_D8s_v5,spot,NA,0.090922,USD,Azure Retail Prices API,2025-12-18T04:46:53.297269 +AZURE,westindia,Standard_D96a_v4,on_demand,NA,5.898,USD,Azure Retail Prices API,2025-12-18T04:46:53.296778 +AZURE,westindia,Standard_D96a_v4,reserved_1y,NA,3.479909,USD,Azure Retail Prices API,2025-12-18T04:46:54.030981 +AZURE,westindia,Standard_D96a_v4,reserved_3y,NA,2.241324,USD,Azure Retail Prices API,2025-12-18T04:46:54.030984 +AZURE,westindia,Standard_D96a_v4,spot,NA,1.08995,USD,Azure Retail Prices API,2025-12-18T04:46:53.296437 +AZURE,westindia,Standard_D96ads_v5,on_demand,NA,10.744,USD,Azure Retail Prices API,2025-12-18T04:46:53.295951 +AZURE,westindia,Standard_D96ads_v5,reserved_1y,NA,3.733676,USD,Azure Retail Prices API,2025-12-18T04:46:54.031613 +AZURE,westindia,Standard_D96ads_v5,reserved_3y,NA,2.404756,USD,Azure Retail Prices API,2025-12-18T04:46:54.031616 +AZURE,westindia,Standard_D96ads_v5,spot,NA,1.169414,USD,Azure Retail Prices API,2025-12-18T04:46:53.296951 +AZURE,westindia,Standard_D96ads_v6,on_demand,NA,7.008,USD,Azure Retail Prices API,2025-12-18T04:46:53.297095 +AZURE,westindia,Standard_D96ads_v6,reserved_1y,NA,4.134703,USD,Azure Retail Prices API,2025-12-18T04:46:54.031463 +AZURE,westindia,Standard_D96ads_v6,reserved_3y,NA,2.663052,USD,Azure Retail Prices API,2025-12-18T04:46:54.031467 +AZURE,westindia,Standard_D96ads_v6,spot,NA,1.295078,USD,Azure Retail Prices API,2025-12-18T04:46:53.296172 +AZURE,westindia,Standard_D96as_v4,on_demand,NA,5.898,USD,Azure Retail Prices API,2025-12-18T04:46:53.296296 +AZURE,westindia,Standard_D96as_v4,reserved_1y,NA,3.479909,USD,Azure Retail Prices API,2025-12-18T04:46:54.030606 +AZURE,westindia,Standard_D96as_v4,reserved_3y,NA,2.241324,USD,Azure Retail Prices API,2025-12-18T04:46:54.030610 +AZURE,westindia,Standard_D96as_v4,spot,NA,1.08995,USD,Azure Retail Prices API,2025-12-18T04:46:53.296592 +AZURE,westindia,Standard_D96as_v5,on_demand,NA,9.7,USD,Azure Retail Prices API,2025-12-18T04:46:53.296375 +AZURE,westindia,Standard_D96as_v5,reserved_1y,NA,3.117466,USD,Azure Retail Prices API,2025-12-18T04:46:54.031047 +AZURE,westindia,Standard_D96as_v5,reserved_3y,NA,2.007877,USD,Azure Retail Prices API,2025-12-18T04:46:54.031050 +AZURE,westindia,Standard_D96as_v5,spot,NA,0.976483,USD,Azure Retail Prices API,2025-12-18T04:46:53.296237 +AZURE,westindia,Standard_D96ds_v5,on_demand,NA,6.943,USD,Azure Retail Prices API,2025-12-18T04:46:53.296415 +AZURE,westindia,Standard_D96ds_v5,reserved_1y,NA,4.096233,USD,Azure Retail Prices API,2025-12-18T04:46:54.030686 +AZURE,westindia,Standard_D96ds_v5,reserved_3y,NA,2.638242,USD,Azure Retail Prices API,2025-12-18T04:46:54.030689 +AZURE,westindia,Standard_D96ds_v5,spot,NA,1.283066,USD,Azure Retail Prices API,2025-12-18T04:46:53.296759 +AZURE,westindia,Standard_D96ds_v6,on_demand,NA,7.655,USD,Azure Retail Prices API,2025-12-18T04:46:53.296623 +AZURE,westindia,Standard_D96ds_v6,reserved_1y,NA,4.746119,USD,Azure Retail Prices API,2025-12-18T04:46:54.030842 +AZURE,westindia,Standard_D96ds_v6,reserved_3y,NA,2.985464,USD,Azure Retail Prices API,2025-12-18T04:46:54.030845 +AZURE,westindia,Standard_D96ds_v6,spot,NA,1.414644,USD,Azure Retail Prices API,2025-12-18T04:46:53.295784 +AZURE,westindia,Standard_D96s_v5,on_demand,NA,5.898,USD,Azure Retail Prices API,2025-12-18T04:46:53.296894 +AZURE,westindia,Standard_D96s_v5,reserved_1y,NA,3.479909,USD,Azure Retail Prices API,2025-12-18T04:46:54.031210 +AZURE,westindia,Standard_D96s_v5,reserved_3y,NA,2.182344,USD,Azure Retail Prices API,2025-12-18T04:46:54.031213 +AZURE,westindia,Standard_D96s_v5,spot,NA,1.08995,USD,Azure Retail Prices API,2025-12-18T04:46:53.296993 +AZURE,westindia,Standard_DC16ads_v6,on_demand,NA,1.168,USD,Azure Retail Prices API,2025-12-18T04:46:53.296819 +AZURE,westindia,Standard_DC16ads_v6,reserved_1y,NA,0.689155,USD,Azure Retail Prices API,2025-12-18T04:46:54.031030 +AZURE,westindia,Standard_DC16ads_v6,reserved_3y,NA,0.443836,USD,Azure Retail Prices API,2025-12-18T04:46:54.031033 +AZURE,westindia,Standard_DC16ads_v6,spot,NA,0.215846,USD,Azure Retail Prices API,2025-12-18T04:46:53.296340 +AZURE,westindia,Standard_DC2ads_v6,on_demand,NA,0.146,USD,Azure Retail Prices API,2025-12-18T04:46:53.295767 +AZURE,westindia,Standard_DC2ads_v6,reserved_1y,NA,0.086187,USD,Azure Retail Prices API,2025-12-18T04:46:54.030392 +AZURE,westindia,Standard_DC2ads_v6,reserved_3y,NA,0.055479,USD,Azure Retail Prices API,2025-12-18T04:46:54.030395 +AZURE,westindia,Standard_DC2ads_v6,spot,NA,0.026981,USD,Azure Retail Prices API,2025-12-18T04:46:53.296733 +AZURE,westindia,Standard_DC32ads_v6,on_demand,NA,2.336,USD,Azure Retail Prices API,2025-12-18T04:46:53.295822 +AZURE,westindia,Standard_DC32ads_v6,reserved_1y,NA,1.378196,USD,Azure Retail Prices API,2025-12-18T04:46:54.030424 +AZURE,westindia,Standard_DC32ads_v6,reserved_3y,NA,0.887671,USD,Azure Retail Prices API,2025-12-18T04:46:54.030427 +AZURE,westindia,Standard_DC32ads_v6,spot,NA,0.431693,USD,Azure Retail Prices API,2025-12-18T04:46:53.297315 +AZURE,westindia,Standard_DC48ads_v6,on_demand,NA,3.504,USD,Azure Retail Prices API,2025-12-18T04:46:53.296515 +AZURE,westindia,Standard_DC48ads_v6,reserved_1y,NA,2.067352,USD,Azure Retail Prices API,2025-12-18T04:46:54.030746 +AZURE,westindia,Standard_DC48ads_v6,reserved_3y,NA,1.331507,USD,Azure Retail Prices API,2025-12-18T04:46:54.030749 +AZURE,westindia,Standard_DC48ads_v6,spot,NA,0.647539,USD,Azure Retail Prices API,2025-12-18T04:46:53.296824 +AZURE,westindia,Standard_DC4ads_v6,on_demand,NA,0.292,USD,Azure Retail Prices API,2025-12-18T04:46:53.297090 +AZURE,westindia,Standard_DC4ads_v6,reserved_1y,NA,0.17226,USD,Azure Retail Prices API,2025-12-18T04:46:54.031448 +AZURE,westindia,Standard_DC4ads_v6,reserved_3y,NA,0.110959,USD,Azure Retail Prices API,2025-12-18T04:46:54.031453 +AZURE,westindia,Standard_DC4ads_v6,spot,NA,0.053962,USD,Azure Retail Prices API,2025-12-18T04:46:53.297027 +AZURE,westindia,Standard_DC64ads_v6,on_demand,NA,4.672,USD,Azure Retail Prices API,2025-12-18T04:46:53.297084 +AZURE,westindia,Standard_DC64ads_v6,reserved_1y,NA,2.756507,USD,Azure Retail Prices API,2025-12-18T04:46:54.031429 +AZURE,westindia,Standard_DC64ads_v6,reserved_3y,NA,1.775342,USD,Azure Retail Prices API,2025-12-18T04:46:54.031434 +AZURE,westindia,Standard_DC64ads_v6,spot,NA,0.863386,USD,Azure Retail Prices API,2025-12-18T04:46:53.296939 +AZURE,westindia,Standard_DC8ads_v6,on_demand,NA,0.584,USD,Azure Retail Prices API,2025-12-18T04:46:53.296583 +AZURE,westindia,Standard_DC8ads_v6,reserved_1y,NA,0.344521,USD,Azure Retail Prices API,2025-12-18T04:46:54.030820 +AZURE,westindia,Standard_DC8ads_v6,reserved_3y,NA,0.221918,USD,Azure Retail Prices API,2025-12-18T04:46:54.030823 +AZURE,westindia,Standard_DC8ads_v6,spot,NA,0.107923,USD,Azure Retail Prices API,2025-12-18T04:46:53.295807 +AZURE,westindia,Standard_DC96ads_v6,on_demand,NA,7.008,USD,Azure Retail Prices API,2025-12-18T04:46:53.296562 +AZURE,westindia,Standard_DC96ads_v6,reserved_1y,NA,4.134703,USD,Azure Retail Prices API,2025-12-18T04:46:54.030786 +AZURE,westindia,Standard_DC96ads_v6,reserved_3y,NA,2.663052,USD,Azure Retail Prices API,2025-12-18T04:46:54.030789 +AZURE,westindia,Standard_DC96ads_v6,spot,NA,1.295078,USD,Azure Retail Prices API,2025-12-18T04:46:53.296183 +AZURE,westindia,Standard_DS12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495701 +AZURE,westindia,Standard_DS12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495709 +AZURE,westindia,Standard_DS12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495713 +AZURE,westindia,Standard_DS12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495705 +AZURE,westindia,Standard_DS13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496590 +AZURE,westindia,Standard_DS13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496598 +AZURE,westindia,Standard_DS13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496602 +AZURE,westindia,Standard_DS13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496594 +AZURE,westindia,Standard_DS14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497449 +AZURE,westindia,Standard_DS14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497457 +AZURE,westindia,Standard_DS14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497461 +AZURE,westindia,Standard_DS14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497453 +AZURE,westindia,Standard_DS15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498213 +AZURE,westindia,Standard_DS15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498221 +AZURE,westindia,Standard_DS15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498225 +AZURE,westindia,Standard_DS15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.498217 +AZURE,westindia,Standard_DS1_v2,on_demand,NA,0.07665,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492057 +AZURE,westindia,Standard_DS1_v2,reserved_1y,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492065 +AZURE,westindia,Standard_DS1_v2,reserved_3y,NA,0.03066,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492069 +AZURE,westindia,Standard_DS1_v2,spot,NA,0.022995,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492061 +AZURE,westindia,Standard_DS2_v2,on_demand,NA,0.1533,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492768 +AZURE,westindia,Standard_DS2_v2,reserved_1y,NA,0.09198,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492777 +AZURE,westindia,Standard_DS2_v2,reserved_3y,NA,0.06132,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492781 +AZURE,westindia,Standard_DS2_v2,spot,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492773 +AZURE,westindia,Standard_DS3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493502 +AZURE,westindia,Standard_DS3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493510 +AZURE,westindia,Standard_DS3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493514 +AZURE,westindia,Standard_DS3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493506 +AZURE,westindia,Standard_DS4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494214 +AZURE,westindia,Standard_DS4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494222 +AZURE,westindia,Standard_DS4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494227 +AZURE,westindia,Standard_DS4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494218 +AZURE,westindia,Standard_DS5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494925 +AZURE,westindia,Standard_DS5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494933 +AZURE,westindia,Standard_DS5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494937 +AZURE,westindia,Standard_DS5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494929 +AZURE,westindia,Standard_E128ds_v6,on_demand,NA,13.395,USD,Azure Retail Prices API,2025-12-18T04:46:53.296488 +AZURE,westindia,Standard_E128ds_v6,reserved_1y,NA,8.305023,USD,Azure Retail Prices API,2025-12-18T04:46:54.030734 +AZURE,westindia,Standard_E128ds_v6,reserved_3y,NA,5.224125,USD,Azure Retail Prices API,2025-12-18T04:46:54.030737 +AZURE,westindia,Standard_E128ds_v6,spot,NA,2.475396,USD,Azure Retail Prices API,2025-12-18T04:46:53.296906 +AZURE,westindia,Standard_E16_v3,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:53.296291 +AZURE,westindia,Standard_E16_v3,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:54.030601 +AZURE,westindia,Standard_E16_v3,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:54.030604 +AZURE,westindia,Standard_E16_v3,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:53.296649 +AZURE,westindia,Standard_E16a_v4,on_demand,NA,1.29,USD,Azure Retail Prices API,2025-12-18T04:46:53.297192 +AZURE,westindia,Standard_E16a_v4,reserved_1y,NA,0.761187,USD,Azure Retail Prices API,2025-12-18T04:46:54.031552 +AZURE,westindia,Standard_E16a_v4,reserved_3y,NA,0.490297,USD,Azure Retail Prices API,2025-12-18T04:46:54.031555 +AZURE,westindia,Standard_E16a_v4,spot,NA,0.238392,USD,Azure Retail Prices API,2025-12-18T04:46:53.296456 +AZURE,westindia,Standard_E16ads_v5,on_demand,NA,2.077,USD,Azure Retail Prices API,2025-12-18T04:46:53.296704 +AZURE,westindia,Standard_E16ads_v5,reserved_1y,NA,0.791438,USD,Azure Retail Prices API,2025-12-18T04:46:54.031706 +AZURE,westindia,Standard_E16ads_v5,reserved_3y,NA,0.509741,USD,Azure Retail Prices API,2025-12-18T04:46:54.031709 +AZURE,westindia,Standard_E16ads_v5,spot,NA,0.247817,USD,Azure Retail Prices API,2025-12-18T04:46:53.296418 +AZURE,westindia,Standard_E16ads_v6,on_demand,NA,1.485,USD,Azure Retail Prices API,2025-12-18T04:46:53.296287 +AZURE,westindia,Standard_E16ads_v6,reserved_1y,NA,0.876027,USD,Azure Retail Prices API,2025-12-18T04:46:54.030595 +AZURE,westindia,Standard_E16ads_v6,reserved_3y,NA,0.564231,USD,Azure Retail Prices API,2025-12-18T04:46:54.030598 +AZURE,westindia,Standard_E16ads_v6,spot,NA,0.274428,USD,Azure Retail Prices API,2025-12-18T04:46:53.296999 +AZURE,westindia,Standard_E16as_v4,on_demand,NA,1.29,USD,Azure Retail Prices API,2025-12-18T04:46:53.295801 +AZURE,westindia,Standard_E16as_v4,reserved_1y,NA,0.761187,USD,Azure Retail Prices API,2025-12-18T04:46:54.030410 +AZURE,westindia,Standard_E16as_v4,reserved_3y,NA,0.490297,USD,Azure Retail Prices API,2025-12-18T04:46:54.030413 +AZURE,westindia,Standard_E16as_v4,spot,NA,0.238392,USD,Azure Retail Prices API,2025-12-18T04:46:53.296527 +AZURE,westindia,Standard_E16as_v5,on_demand,NA,1.157,USD,Azure Retail Prices API,2025-12-18T04:46:53.296243 +AZURE,westindia,Standard_E16as_v5,reserved_1y,NA,0.682648,USD,Azure Retail Prices API,2025-12-18T04:46:54.030582 +AZURE,westindia,Standard_E16as_v5,reserved_3y,NA,0.439688,USD,Azure Retail Prices API,2025-12-18T04:46:54.030586 +AZURE,westindia,Standard_E16as_v5,spot,NA,0.213814,USD,Azure Retail Prices API,2025-12-18T04:46:53.297021 +AZURE,westindia,Standard_E16d_v4,on_demand,NA,1.39,USD,Azure Retail Prices API,2025-12-18T04:46:53.297093 +AZURE,westindia,Standard_E16d_v4,reserved_1y,NA,0.819863,USD,Azure Retail Prices API,2025-12-18T04:46:54.031456 +AZURE,westindia,Standard_E16d_v4,reserved_3y,NA,0.528082,USD,Azure Retail Prices API,2025-12-18T04:46:54.031459 +AZURE,westindia,Standard_E16d_v4,spot,NA,0.256872,USD,Azure Retail Prices API,2025-12-18T04:46:53.297050 +AZURE,westindia,Standard_E16ds_v4,on_demand,NA,1.39,USD,Azure Retail Prices API,2025-12-18T04:46:53.295901 +AZURE,westindia,Standard_E16ds_v4,reserved_1y,NA,0.819863,USD,Azure Retail Prices API,2025-12-18T04:46:54.030446 +AZURE,westindia,Standard_E16ds_v4,reserved_3y,NA,0.528082,USD,Azure Retail Prices API,2025-12-18T04:46:54.030449 +AZURE,westindia,Standard_E16ds_v4,spot,NA,0.256872,USD,Azure Retail Prices API,2025-12-18T04:46:53.297079 +AZURE,westindia,Standard_E16ds_v5,on_demand,NA,1.475,USD,Azure Retail Prices API,2025-12-18T04:46:53.296792 +AZURE,westindia,Standard_E16ds_v5,reserved_1y,NA,0.869977,USD,Azure Retail Prices API,2025-12-18T04:46:54.030992 +AZURE,westindia,Standard_E16ds_v5,reserved_3y,NA,0.56035,USD,Azure Retail Prices API,2025-12-18T04:46:54.030995 +AZURE,westindia,Standard_E16ds_v5,spot,NA,0.27258,USD,Azure Retail Prices API,2025-12-18T04:46:53.295912 +AZURE,westindia,Standard_E16ds_v6,on_demand,NA,1.674,USD,Azure Retail Prices API,2025-12-18T04:46:53.297381 +AZURE,westindia,Standard_E16ds_v6,reserved_1y,NA,1.038128,USD,Azure Retail Prices API,2025-12-18T04:46:54.031822 +AZURE,westindia,Standard_E16ds_v6,reserved_3y,NA,0.653006,USD,Azure Retail Prices API,2025-12-18T04:46:54.031825 +AZURE,westindia,Standard_E16ds_v6,spot,NA,0.309355,USD,Azure Retail Prices API,2025-12-18T04:46:53.296715 +AZURE,westindia,Standard_E16s_v3,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:53.296775 +AZURE,westindia,Standard_E16s_v3,reserved_1y,NA,0.714954,USD,Azure Retail Prices API,2025-12-18T04:46:54.030975 +AZURE,westindia,Standard_E16s_v3,reserved_3y,NA,0.45723,USD,Azure Retail Prices API,2025-12-18T04:46:54.030978 +AZURE,westindia,Standard_E16s_v3,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:53.296933 +AZURE,westindia,Standard_E16s_v4,on_demand,NA,1.216,USD,Azure Retail Prices API,2025-12-18T04:46:53.296634 +AZURE,westindia,Standard_E16s_v4,reserved_1y,NA,0.717466,USD,Azure Retail Prices API,2025-12-18T04:46:54.030864 +AZURE,westindia,Standard_E16s_v4,reserved_3y,NA,0.462062,USD,Azure Retail Prices API,2025-12-18T04:46:54.030867 +AZURE,westindia,Standard_E16s_v4,spot,NA,0.224717,USD,Azure Retail Prices API,2025-12-18T04:46:53.295978 +AZURE,westindia,Standard_E16s_v5,on_demand,NA,1.29,USD,Azure Retail Prices API,2025-12-18T04:46:53.296307 +AZURE,westindia,Standard_E16s_v5,reserved_1y,NA,0.761187,USD,Azure Retail Prices API,2025-12-18T04:46:54.030618 +AZURE,westindia,Standard_E16s_v5,reserved_3y,NA,0.477397,USD,Azure Retail Prices API,2025-12-18T04:46:54.030621 +AZURE,westindia,Standard_E16s_v5,spot,NA,0.238392,USD,Azure Retail Prices API,2025-12-18T04:46:53.296221 +AZURE,westindia,Standard_E20a_v4,on_demand,NA,1.613,USD,Azure Retail Prices API,2025-12-18T04:46:53.297278 +AZURE,westindia,Standard_E20a_v4,reserved_1y,NA,0.951598,USD,Azure Retail Prices API,2025-12-18T04:46:54.031639 +AZURE,westindia,Standard_E20a_v4,reserved_3y,NA,0.612861,USD,Azure Retail Prices API,2025-12-18T04:46:54.031644 +AZURE,westindia,Standard_E20a_v4,spot,NA,0.298082,USD,Azure Retail Prices API,2025-12-18T04:46:53.296498 +AZURE,westindia,Standard_E20ads_v5,on_demand,NA,2.597,USD,Azure Retail Prices API,2025-12-18T04:46:53.295967 +AZURE,westindia,Standard_E20ads_v5,reserved_1y,NA,0.989269,USD,Azure Retail Prices API,2025-12-18T04:46:54.030907 +AZURE,westindia,Standard_E20ads_v5,reserved_3y,NA,0.637177,USD,Azure Retail Prices API,2025-12-18T04:46:54.030909 +AZURE,westindia,Standard_E20ads_v5,spot,NA,0.30991,USD,Azure Retail Prices API,2025-12-18T04:46:53.296865 +AZURE,westindia,Standard_E20ads_v6,on_demand,NA,1.856,USD,Azure Retail Prices API,2025-12-18T04:46:53.296853 +AZURE,westindia,Standard_E20ads_v6,reserved_1y,NA,1.095091,USD,Azure Retail Prices API,2025-12-18T04:46:54.031135 +AZURE,westindia,Standard_E20ads_v6,reserved_3y,NA,0.705289,USD,Azure Retail Prices API,2025-12-18T04:46:54.031141 +AZURE,westindia,Standard_E20ads_v6,spot,NA,0.342989,USD,Azure Retail Prices API,2025-12-18T04:46:53.297235 +AZURE,westindia,Standard_E20as_v4,on_demand,NA,1.613,USD,Azure Retail Prices API,2025-12-18T04:46:53.296918 +AZURE,westindia,Standard_E20as_v4,reserved_1y,NA,0.951598,USD,Azure Retail Prices API,2025-12-18T04:46:54.031227 +AZURE,westindia,Standard_E20as_v4,reserved_3y,NA,0.612861,USD,Azure Retail Prices API,2025-12-18T04:46:54.031230 +AZURE,westindia,Standard_E20as_v4,spot,NA,0.298082,USD,Azure Retail Prices API,2025-12-18T04:46:53.295773 +AZURE,westindia,Standard_E20as_v5,on_demand,NA,1.446,USD,Azure Retail Prices API,2025-12-18T04:46:53.297002 +AZURE,westindia,Standard_E20as_v5,reserved_1y,NA,0.853425,USD,Azure Retail Prices API,2025-12-18T04:46:54.031309 +AZURE,westindia,Standard_E20as_v5,reserved_3y,NA,0.549619,USD,Azure Retail Prices API,2025-12-18T04:46:54.031314 +AZURE,westindia,Standard_E20as_v5,spot,NA,0.267221,USD,Azure Retail Prices API,2025-12-18T04:46:53.297221 +AZURE,westindia,Standard_E20d_v4,on_demand,NA,1.737,USD,Azure Retail Prices API,2025-12-18T04:46:53.296786 +AZURE,westindia,Standard_E20d_v4,reserved_1y,NA,1.024886,USD,Azure Retail Prices API,2025-12-18T04:46:54.030986 +AZURE,westindia,Standard_E20d_v4,reserved_3y,NA,0.660084,USD,Azure Retail Prices API,2025-12-18T04:46:54.030989 +AZURE,westindia,Standard_E20d_v4,spot,NA,0.320998,USD,Azure Retail Prices API,2025-12-18T04:46:53.297033 +AZURE,westindia,Standard_E20ds_v4,on_demand,NA,1.737,USD,Azure Retail Prices API,2025-12-18T04:46:53.296756 +AZURE,westindia,Standard_E20ds_v4,reserved_1y,NA,1.024886,USD,Azure Retail Prices API,2025-12-18T04:46:54.030963 +AZURE,westindia,Standard_E20ds_v4,reserved_3y,NA,0.660084,USD,Azure Retail Prices API,2025-12-18T04:46:54.030967 +AZURE,westindia,Standard_E20ds_v4,spot,NA,0.320998,USD,Azure Retail Prices API,2025-12-18T04:46:53.296898 +AZURE,westindia,Standard_E20ds_v5,on_demand,NA,1.843,USD,Azure Retail Prices API,2025-12-18T04:46:53.297309 +AZURE,westindia,Standard_E20ds_v5,reserved_1y,NA,1.087443,USD,Azure Retail Prices API,2025-12-18T04:46:54.031688 +AZURE,westindia,Standard_E20ds_v5,reserved_3y,NA,0.700419,USD,Azure Retail Prices API,2025-12-18T04:46:54.031691 +AZURE,westindia,Standard_E20ds_v5,spot,NA,0.340586,USD,Azure Retail Prices API,2025-12-18T04:46:53.297044 +AZURE,westindia,Standard_E20ds_v6,on_demand,NA,2.093,USD,Azure Retail Prices API,2025-12-18T04:46:53.296821 +AZURE,westindia,Standard_E20ds_v6,reserved_1y,NA,1.297717,USD,Azure Retail Prices API,2025-12-18T04:46:54.031037 +AZURE,westindia,Standard_E20ds_v6,reserved_3y,NA,0.816286,USD,Azure Retail Prices API,2025-12-18T04:46:54.031040 +AZURE,westindia,Standard_E20ds_v6,spot,NA,0.386786,USD,Azure Retail Prices API,2025-12-18T04:46:53.296033 +AZURE,westindia,Standard_E20s_v4,on_demand,NA,1.52,USD,Azure Retail Prices API,2025-12-18T04:46:53.297053 +AZURE,westindia,Standard_E20s_v4,reserved_1y,NA,0.896804,USD,Azure Retail Prices API,2025-12-18T04:46:54.031376 +AZURE,westindia,Standard_E20s_v4,reserved_3y,NA,0.577588,USD,Azure Retail Prices API,2025-12-18T04:46:54.031379 +AZURE,westindia,Standard_E20s_v4,spot,NA,0.280896,USD,Azure Retail Prices API,2025-12-18T04:46:53.297179 +AZURE,westindia,Standard_E20s_v5,on_demand,NA,1.613,USD,Azure Retail Prices API,2025-12-18T04:46:53.297359 +AZURE,westindia,Standard_E20s_v5,reserved_1y,NA,0.951598,USD,Azure Retail Prices API,2025-12-18T04:46:54.031778 +AZURE,westindia,Standard_E20s_v5,reserved_3y,NA,0.596728,USD,Azure Retail Prices API,2025-12-18T04:46:54.031781 +AZURE,westindia,Standard_E20s_v5,spot,NA,0.298082,USD,Azure Retail Prices API,2025-12-18T04:46:53.295982 +AZURE,westindia,Standard_E2_v3,on_demand,NA,0.152,USD,Azure Retail Prices API,2025-12-18T04:46:53.295675 +AZURE,westindia,Standard_E2_v3,reserved_1y,NA,0.089384,USD,Azure Retail Prices API,2025-12-18T04:46:54.030319 +AZURE,westindia,Standard_E2_v3,reserved_3y,NA,0.057154,USD,Azure Retail Prices API,2025-12-18T04:46:54.030332 +AZURE,westindia,Standard_E2_v3,spot,NA,0.02809,USD,Azure Retail Prices API,2025-12-18T04:46:53.297133 +AZURE,westindia,Standard_E2ads_v6,on_demand,NA,0.186,USD,Azure Retail Prices API,2025-12-18T04:46:53.296312 +AZURE,westindia,Standard_E2ads_v6,reserved_1y,NA,0.109475,USD,Azure Retail Prices API,2025-12-18T04:46:54.030625 +AZURE,westindia,Standard_E2ads_v6,reserved_3y,NA,0.07051,USD,Azure Retail Prices API,2025-12-18T04:46:54.030628 +AZURE,westindia,Standard_E2ads_v6,spot,NA,0.034373,USD,Azure Retail Prices API,2025-12-18T04:46:53.296386 +AZURE,westindia,Standard_E2ds_v5,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:46:53.297142 +AZURE,westindia,Standard_E2ds_v5,reserved_1y,NA,0.10879,USD,Azure Retail Prices API,2025-12-18T04:46:54.031494 +AZURE,westindia,Standard_E2ds_v5,reserved_3y,NA,0.070053,USD,Azure Retail Prices API,2025-12-18T04:46:54.031497 +AZURE,westindia,Standard_E2ds_v5,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:46:53.295817 +AZURE,westindia,Standard_E2ds_v6,on_demand,NA,0.209,USD,Azure Retail Prices API,2025-12-18T04:46:53.296631 +AZURE,westindia,Standard_E2ds_v6,reserved_1y,NA,0.129795,USD,Azure Retail Prices API,2025-12-18T04:46:54.030859 +AZURE,westindia,Standard_E2ds_v6,reserved_3y,NA,0.081621,USD,Azure Retail Prices API,2025-12-18T04:46:54.030861 +AZURE,westindia,Standard_E2ds_v6,spot,NA,0.038623,USD,Azure Retail Prices API,2025-12-18T04:46:53.296135 +AZURE,westindia,Standard_E32_v3,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:53.295956 +AZURE,westindia,Standard_E32_v3,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:54.030476 +AZURE,westindia,Standard_E32_v3,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:54.030478 +AZURE,westindia,Standard_E32_v3,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:53.296434 +AZURE,westindia,Standard_E32a_v4,on_demand,NA,2.58,USD,Azure Retail Prices API,2025-12-18T04:46:53.296335 +AZURE,westindia,Standard_E32a_v4,reserved_1y,NA,1.522489,USD,Azure Retail Prices API,2025-12-18T04:46:54.030647 +AZURE,westindia,Standard_E32a_v4,reserved_3y,NA,0.980594,USD,Azure Retail Prices API,2025-12-18T04:46:54.030650 +AZURE,westindia,Standard_E32a_v4,spot,NA,0.476784,USD,Azure Retail Prices API,2025-12-18T04:46:53.296687 +AZURE,westindia,Standard_E32ads_v5,on_demand,NA,4.155,USD,Azure Retail Prices API,2025-12-18T04:46:53.296317 +AZURE,westindia,Standard_E32ads_v5,reserved_1y,NA,1.582877,USD,Azure Retail Prices API,2025-12-18T04:46:54.030670 +AZURE,westindia,Standard_E32ads_v5,reserved_3y,NA,1.019482,USD,Azure Retail Prices API,2025-12-18T04:46:54.030673 +AZURE,westindia,Standard_E32ads_v5,spot,NA,0.495818,USD,Azure Retail Prices API,2025-12-18T04:46:53.296646 +AZURE,westindia,Standard_E32ads_v6,on_demand,NA,2.97,USD,Azure Retail Prices API,2025-12-18T04:46:53.296816 +AZURE,westindia,Standard_E32ads_v6,reserved_1y,NA,1.752055,USD,Azure Retail Prices API,2025-12-18T04:46:54.031025 +AZURE,westindia,Standard_E32ads_v6,reserved_3y,NA,1.128463,USD,Azure Retail Prices API,2025-12-18T04:46:54.031027 +AZURE,westindia,Standard_E32ads_v6,spot,NA,0.548856,USD,Azure Retail Prices API,2025-12-18T04:46:53.295941 +AZURE,westindia,Standard_E32as_v4,on_demand,NA,2.58,USD,Azure Retail Prices API,2025-12-18T04:46:53.296161 +AZURE,westindia,Standard_E32as_v4,reserved_1y,NA,1.522489,USD,Azure Retail Prices API,2025-12-18T04:46:54.030544 +AZURE,westindia,Standard_E32as_v4,reserved_3y,NA,0.980594,USD,Azure Retail Prices API,2025-12-18T04:46:54.030547 +AZURE,westindia,Standard_E32as_v4,spot,NA,0.476784,USD,Azure Retail Prices API,2025-12-18T04:46:53.297261 +AZURE,westindia,Standard_E32as_v5,on_demand,NA,3.786,USD,Azure Retail Prices API,2025-12-18T04:46:53.296762 +AZURE,westindia,Standard_E32as_v5,reserved_1y,NA,1.365411,USD,Azure Retail Prices API,2025-12-18T04:46:54.031717 +AZURE,westindia,Standard_E32as_v5,reserved_3y,NA,0.879414,USD,Azure Retail Prices API,2025-12-18T04:46:54.031721 +AZURE,westindia,Standard_E32as_v5,spot,NA,0.427627,USD,Azure Retail Prices API,2025-12-18T04:46:53.296873 +AZURE,westindia,Standard_E32d_v4,on_demand,NA,2.779,USD,Azure Retail Prices API,2025-12-18T04:46:53.296930 +AZURE,westindia,Standard_E32d_v4,reserved_1y,NA,1.63984,USD,Azure Retail Prices API,2025-12-18T04:46:54.031238 +AZURE,westindia,Standard_E32d_v4,reserved_3y,NA,1.056126,USD,Azure Retail Prices API,2025-12-18T04:46:54.031243 +AZURE,westindia,Standard_E32d_v4,spot,NA,0.513559,USD,Azure Retail Prices API,2025-12-18T04:46:53.297349 +AZURE,westindia,Standard_E32ds_v4,on_demand,NA,2.779,USD,Azure Retail Prices API,2025-12-18T04:46:53.296765 +AZURE,westindia,Standard_E32ds_v4,reserved_1y,NA,1.63984,USD,Azure Retail Prices API,2025-12-18T04:46:54.030969 +AZURE,westindia,Standard_E32ds_v4,reserved_3y,NA,1.056126,USD,Azure Retail Prices API,2025-12-18T04:46:54.030972 +AZURE,westindia,Standard_E32ds_v4,spot,NA,0.513559,USD,Azure Retail Prices API,2025-12-18T04:46:53.295762 +AZURE,westindia,Standard_E32ds_v5,on_demand,NA,2.949,USD,Azure Retail Prices API,2025-12-18T04:46:53.296543 +AZURE,westindia,Standard_E32ds_v5,reserved_1y,NA,1.739954,USD,Azure Retail Prices API,2025-12-18T04:46:54.030769 +AZURE,westindia,Standard_E32ds_v5,reserved_3y,NA,1.120662,USD,Azure Retail Prices API,2025-12-18T04:46:54.030771 +AZURE,westindia,Standard_E32ds_v5,spot,NA,0.544975,USD,Azure Retail Prices API,2025-12-18T04:46:53.296954 +AZURE,westindia,Standard_E32ds_v6,on_demand,NA,3.349,USD,Azure Retail Prices API,2025-12-18T04:46:53.297041 +AZURE,westindia,Standard_E32ds_v6,reserved_1y,NA,2.076256,USD,Azure Retail Prices API,2025-12-18T04:46:54.031369 +AZURE,westindia,Standard_E32ds_v6,reserved_3y,NA,1.30605,USD,Azure Retail Prices API,2025-12-18T04:46:54.031373 +AZURE,westindia,Standard_E32ds_v6,spot,NA,0.618895,USD,Azure Retail Prices API,2025-12-18T04:46:53.297336 +AZURE,westindia,Standard_E32s_v3,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:53.296739 +AZURE,westindia,Standard_E32s_v3,reserved_1y,NA,1.430023,USD,Azure Retail Prices API,2025-12-18T04:46:54.030951 +AZURE,westindia,Standard_E32s_v3,reserved_3y,NA,0.914422,USD,Azure Retail Prices API,2025-12-18T04:46:54.030954 +AZURE,westindia,Standard_E32s_v3,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:53.296552 +AZURE,westindia,Standard_E32s_v4,on_demand,NA,2.432,USD,Azure Retail Prices API,2025-12-18T04:46:53.296856 +AZURE,westindia,Standard_E32s_v4,reserved_1y,NA,1.434817,USD,Azure Retail Prices API,2025-12-18T04:46:54.031146 +AZURE,westindia,Standard_E32s_v4,reserved_3y,NA,0.924125,USD,Azure Retail Prices API,2025-12-18T04:46:54.031150 +AZURE,westindia,Standard_E32s_v4,spot,NA,0.449434,USD,Azure Retail Prices API,2025-12-18T04:46:53.296712 +AZURE,westindia,Standard_E32s_v5,on_demand,NA,2.58,USD,Azure Retail Prices API,2025-12-18T04:46:53.296530 +AZURE,westindia,Standard_E32s_v5,reserved_1y,NA,1.522489,USD,Azure Retail Prices API,2025-12-18T04:46:54.030763 +AZURE,westindia,Standard_E32s_v5,reserved_3y,NA,0.954795,USD,Azure Retail Prices API,2025-12-18T04:46:54.030766 +AZURE,westindia,Standard_E32s_v5,spot,NA,0.476784,USD,Azure Retail Prices API,2025-12-18T04:46:53.296707 +AZURE,westindia,Standard_E48a_v4,on_demand,NA,3.871,USD,Azure Retail Prices API,2025-12-18T04:46:53.297347 +AZURE,westindia,Standard_E48a_v4,reserved_1y,NA,2.283676,USD,Azure Retail Prices API,2025-12-18T04:46:54.031754 +AZURE,westindia,Standard_E48a_v4,reserved_3y,NA,1.47089,USD,Azure Retail Prices API,2025-12-18T04:46:54.031757 +AZURE,westindia,Standard_E48a_v4,spot,NA,0.715361,USD,Azure Retail Prices API,2025-12-18T04:46:53.296605 +AZURE,westindia,Standard_E48ads_v5,on_demand,NA,6.232,USD,Azure Retail Prices API,2025-12-18T04:46:53.296589 +AZURE,westindia,Standard_E48ads_v5,reserved_1y,NA,2.374315,USD,Azure Retail Prices API,2025-12-18T04:46:54.031175 +AZURE,westindia,Standard_E48ads_v5,reserved_3y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:46:54.031178 +AZURE,westindia,Standard_E48ads_v5,spot,NA,0.743635,USD,Azure Retail Prices API,2025-12-18T04:46:53.296055 +AZURE,westindia,Standard_E48ads_v6,on_demand,NA,4.454,USD,Azure Retail Prices API,2025-12-18T04:46:53.296359 +AZURE,westindia,Standard_E48ads_v6,reserved_1y,NA,2.628082,USD,Azure Retail Prices API,2025-12-18T04:46:54.030653 +AZURE,westindia,Standard_E48ads_v6,reserved_3y,NA,1.692656,USD,Azure Retail Prices API,2025-12-18T04:46:54.030656 +AZURE,westindia,Standard_E48ads_v6,spot,NA,0.823099,USD,Azure Retail Prices API,2025-12-18T04:46:53.296745 +AZURE,westindia,Standard_E48as_v4,on_demand,NA,3.871,USD,Azure Retail Prices API,2025-12-18T04:46:53.296081 +AZURE,westindia,Standard_E48as_v4,reserved_1y,NA,2.283676,USD,Azure Retail Prices API,2025-12-18T04:46:54.030504 +AZURE,westindia,Standard_E48as_v4,reserved_3y,NA,1.47089,USD,Azure Retail Prices API,2025-12-18T04:46:54.030507 +AZURE,westindia,Standard_E48as_v4,spot,NA,0.715361,USD,Azure Retail Prices API,2025-12-18T04:46:53.296781 +AZURE,westindia,Standard_E48as_v5,on_demand,NA,5.679,USD,Azure Retail Prices API,2025-12-18T04:46:53.297024 +AZURE,westindia,Standard_E48as_v5,reserved_1y,NA,2.048059,USD,Azure Retail Prices API,2025-12-18T04:46:54.031767 +AZURE,westindia,Standard_E48as_v5,reserved_3y,NA,1.319102,USD,Azure Retail Prices API,2025-12-18T04:46:54.031770 +AZURE,westindia,Standard_E48as_v5,spot,NA,0.641441,USD,Azure Retail Prices API,2025-12-18T04:46:53.296903 +AZURE,westindia,Standard_E48d_v4,on_demand,NA,4.169,USD,Azure Retail Prices API,2025-12-18T04:46:53.296957 +AZURE,westindia,Standard_E48d_v4,reserved_1y,NA,2.459703,USD,Azure Retail Prices API,2025-12-18T04:46:54.031257 +AZURE,westindia,Standard_E48d_v4,reserved_3y,NA,1.584209,USD,Azure Retail Prices API,2025-12-18T04:46:54.031260 +AZURE,westindia,Standard_E48d_v4,spot,NA,0.770431,USD,Azure Retail Prices API,2025-12-18T04:46:53.296798 +AZURE,westindia,Standard_E48ds_v4,on_demand,NA,4.169,USD,Azure Retail Prices API,2025-12-18T04:46:53.296302 +AZURE,westindia,Standard_E48ds_v4,reserved_1y,NA,2.459703,USD,Azure Retail Prices API,2025-12-18T04:46:54.030613 +AZURE,westindia,Standard_E48ds_v4,reserved_3y,NA,1.584209,USD,Azure Retail Prices API,2025-12-18T04:46:54.030616 +AZURE,westindia,Standard_E48ds_v4,spot,NA,0.770431,USD,Azure Retail Prices API,2025-12-18T04:46:53.296464 +AZURE,westindia,Standard_E48ds_v5,on_demand,NA,4.424,USD,Azure Retail Prices API,2025-12-18T04:46:53.296660 +AZURE,westindia,Standard_E48ds_v5,reserved_1y,NA,2.609932,USD,Azure Retail Prices API,2025-12-18T04:46:54.030896 +AZURE,westindia,Standard_E48ds_v5,reserved_3y,NA,1.681012,USD,Azure Retail Prices API,2025-12-18T04:46:54.030899 +AZURE,westindia,Standard_E48ds_v5,spot,NA,0.817555,USD,Azure Retail Prices API,2025-12-18T04:46:53.296065 +AZURE,westindia,Standard_E48ds_v6,on_demand,NA,5.023,USD,Azure Retail Prices API,2025-12-18T04:46:53.297073 +AZURE,westindia,Standard_E48ds_v6,reserved_1y,NA,3.114384,USD,Azure Retail Prices API,2025-12-18T04:46:54.031406 +AZURE,westindia,Standard_E48ds_v6,reserved_3y,NA,1.959056,USD,Azure Retail Prices API,2025-12-18T04:46:54.031415 +AZURE,westindia,Standard_E48ds_v6,spot,NA,0.92825,USD,Azure Retail Prices API,2025-12-18T04:46:53.297151 +AZURE,westindia,Standard_E48s_v4,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:46:53.297167 +AZURE,westindia,Standard_E48s_v4,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:46:54.031514 +AZURE,westindia,Standard_E48s_v4,reserved_3y,NA,1.386187,USD,Azure Retail Prices API,2025-12-18T04:46:54.031517 +AZURE,westindia,Standard_E48s_v4,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:46:53.296770 +AZURE,westindia,Standard_E48s_v5,on_demand,NA,3.871,USD,Azure Retail Prices API,2025-12-18T04:46:53.297252 +AZURE,westindia,Standard_E48s_v5,reserved_1y,NA,2.283676,USD,Azure Retail Prices API,2025-12-18T04:46:54.031602 +AZURE,westindia,Standard_E48s_v5,reserved_3y,NA,1.432154,USD,Azure Retail Prices API,2025-12-18T04:46:54.031605 +AZURE,westindia,Standard_E48s_v5,spot,NA,0.715361,USD,Azure Retail Prices API,2025-12-18T04:46:53.296322 +AZURE,westindia,Standard_E4_v3,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:53.295721 +AZURE,westindia,Standard_E4_v3,reserved_1y,NA,0.178767,USD,Azure Retail Prices API,2025-12-18T04:46:54.030360 +AZURE,westindia,Standard_E4_v3,reserved_3y,NA,0.114307,USD,Azure Retail Prices API,2025-12-18T04:46:54.030363 +AZURE,westindia,Standard_E4_v3,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:53.296559 +AZURE,westindia,Standard_E4a_v4,on_demand,NA,0.323,USD,Azure Retail Prices API,2025-12-18T04:46:53.297076 +AZURE,westindia,Standard_E4a_v4,reserved_1y,NA,0.190297,USD,Azure Retail Prices API,2025-12-18T04:46:54.031417 +AZURE,westindia,Standard_E4a_v4,reserved_3y,NA,0.122565,USD,Azure Retail Prices API,2025-12-18T04:46:54.031421 +AZURE,westindia,Standard_E4a_v4,spot,NA,0.05969,USD,Azure Retail Prices API,2025-12-18T04:46:53.296124 +AZURE,westindia,Standard_E4ads_v5,on_demand,NA,0.519,USD,Azure Retail Prices API,2025-12-18T04:46:53.296060 +AZURE,westindia,Standard_E4ads_v5,reserved_1y,NA,0.197831,USD,Azure Retail Prices API,2025-12-18T04:46:54.031439 +AZURE,westindia,Standard_E4ads_v5,reserved_3y,NA,0.127435,USD,Azure Retail Prices API,2025-12-18T04:46:54.031443 +AZURE,westindia,Standard_E4ads_v5,spot,NA,0.061908,USD,Azure Retail Prices API,2025-12-18T04:46:53.297293 +AZURE,westindia,Standard_E4ads_v6,on_demand,NA,0.371,USD,Azure Retail Prices API,2025-12-18T04:46:53.297070 +AZURE,westindia,Standard_E4ads_v6,reserved_1y,NA,0.219064,USD,Azure Retail Prices API,2025-12-18T04:46:54.031400 +AZURE,westindia,Standard_E4ads_v6,reserved_3y,NA,0.141058,USD,Azure Retail Prices API,2025-12-18T04:46:54.031403 +AZURE,westindia,Standard_E4ads_v6,spot,NA,0.068561,USD,Azure Retail Prices API,2025-12-18T04:46:53.295996 +AZURE,westindia,Standard_E4as_v4,on_demand,NA,0.323,USD,Azure Retail Prices API,2025-12-18T04:46:53.297195 +AZURE,westindia,Standard_E4as_v4,reserved_1y,NA,0.190297,USD,Azure Retail Prices API,2025-12-18T04:46:54.031558 +AZURE,westindia,Standard_E4as_v4,reserved_3y,NA,0.122565,USD,Azure Retail Prices API,2025-12-18T04:46:54.031561 +AZURE,westindia,Standard_E4as_v4,spot,NA,0.05969,USD,Azure Retail Prices API,2025-12-18T04:46:53.296901 +AZURE,westindia,Standard_E4as_v5,on_demand,NA,0.473,USD,Azure Retail Prices API,2025-12-18T04:46:53.296049 +AZURE,westindia,Standard_E4as_v5,reserved_1y,NA,0.170662,USD,Azure Retail Prices API,2025-12-18T04:46:54.031784 +AZURE,westindia,Standard_E4as_v5,reserved_3y,NA,0.109932,USD,Azure Retail Prices API,2025-12-18T04:46:54.031787 +AZURE,westindia,Standard_E4as_v5,spot,NA,0.053407,USD,Azure Retail Prices API,2025-12-18T04:46:53.295875 +AZURE,westindia,Standard_E4d_v4,on_demand,NA,0.347,USD,Azure Retail Prices API,2025-12-18T04:46:53.297341 +AZURE,westindia,Standard_E4d_v4,reserved_1y,NA,0.205023,USD,Azure Retail Prices API,2025-12-18T04:46:54.031742 +AZURE,westindia,Standard_E4d_v4,reserved_3y,NA,0.132002,USD,Azure Retail Prices API,2025-12-18T04:46:54.031745 +AZURE,westindia,Standard_E4d_v4,spot,NA,0.064126,USD,Azure Retail Prices API,2025-12-18T04:46:53.296773 +AZURE,westindia,Standard_E4ds_v4,on_demand,NA,0.347,USD,Azure Retail Prices API,2025-12-18T04:46:53.296204 +AZURE,westindia,Standard_E4ds_v4,reserved_1y,NA,0.205023,USD,Azure Retail Prices API,2025-12-18T04:46:54.030574 +AZURE,westindia,Standard_E4ds_v4,reserved_3y,NA,0.132002,USD,Azure Retail Prices API,2025-12-18T04:46:54.030579 +AZURE,westindia,Standard_E4ds_v4,spot,NA,0.064126,USD,Azure Retail Prices API,2025-12-18T04:46:53.296942 +AZURE,westindia,Standard_E4ds_v5,on_demand,NA,0.369,USD,Azure Retail Prices API,2025-12-18T04:46:53.297177 +AZURE,westindia,Standard_E4ds_v5,reserved_1y,NA,0.217466,USD,Azure Retail Prices API,2025-12-18T04:46:54.031520 +AZURE,westindia,Standard_E4ds_v5,reserved_3y,NA,0.140068,USD,Azure Retail Prices API,2025-12-18T04:46:54.031523 +AZURE,westindia,Standard_E4ds_v5,spot,NA,0.068191,USD,Azure Retail Prices API,2025-12-18T04:46:53.296469 +AZURE,westindia,Standard_E4ds_v6,on_demand,NA,0.419,USD,Azure Retail Prices API,2025-12-18T04:46:53.296446 +AZURE,westindia,Standard_E4ds_v6,reserved_1y,NA,0.259589,USD,Azure Retail Prices API,2025-12-18T04:46:54.030704 +AZURE,westindia,Standard_E4ds_v6,reserved_3y,NA,0.163242,USD,Azure Retail Prices API,2025-12-18T04:46:54.030707 +AZURE,westindia,Standard_E4ds_v6,spot,NA,0.077431,USD,Azure Retail Prices API,2025-12-18T04:46:53.297249 +AZURE,westindia,Standard_E4s_v4,on_demand,NA,0.304,USD,Azure Retail Prices API,2025-12-18T04:46:53.297127 +AZURE,westindia,Standard_E4s_v4,reserved_1y,NA,0.179338,USD,Azure Retail Prices API,2025-12-18T04:46:54.031476 +AZURE,westindia,Standard_E4s_v4,reserved_3y,NA,0.115525,USD,Azure Retail Prices API,2025-12-18T04:46:54.031478 +AZURE,westindia,Standard_E4s_v4,spot,NA,0.056179,USD,Azure Retail Prices API,2025-12-18T04:46:53.295858 +AZURE,westindia,Standard_E4s_v5,on_demand,NA,0.323,USD,Azure Retail Prices API,2025-12-18T04:46:53.295906 +AZURE,westindia,Standard_E4s_v5,reserved_1y,NA,0.190297,USD,Azure Retail Prices API,2025-12-18T04:46:54.030452 +AZURE,westindia,Standard_E4s_v5,reserved_3y,NA,0.11933,USD,Azure Retail Prices API,2025-12-18T04:46:54.030455 +AZURE,westindia,Standard_E4s_v5,spot,NA,0.05969,USD,Azure Retail Prices API,2025-12-18T04:46:53.297301 +AZURE,westindia,Standard_E64_v3,on_demand,NA,4.368,USD,Azure Retail Prices API,2025-12-18T04:46:53.297209 +AZURE,westindia,Standard_E64_v3,reserved_1y,NA,2.695548,USD,Azure Retail Prices API,2025-12-18T04:46:54.031564 +AZURE,westindia,Standard_E64_v3,reserved_3y,NA,1.723706,USD,Azure Retail Prices API,2025-12-18T04:46:54.031567 +AZURE,westindia,Standard_E64_v3,spot,NA,0.807206,USD,Azure Retail Prices API,2025-12-18T04:46:53.296443 +AZURE,westindia,Standard_E64a_v4,on_demand,NA,5.161,USD,Azure Retail Prices API,2025-12-18T04:46:53.296119 +AZURE,westindia,Standard_E64a_v4,reserved_1y,NA,3.044977,USD,Azure Retail Prices API,2025-12-18T04:46:54.030526 +AZURE,westindia,Standard_E64a_v4,reserved_3y,NA,1.961149,USD,Azure Retail Prices API,2025-12-18T04:46:54.030529 +AZURE,westindia,Standard_E64a_v4,spot,NA,0.953753,USD,Azure Retail Prices API,2025-12-18T04:46:53.297325 +AZURE,westindia,Standard_E64ads_v5,on_demand,NA,5.366,USD,Azure Retail Prices API,2025-12-18T04:46:53.295694 +AZURE,westindia,Standard_E64ads_v5,reserved_1y,NA,3.165753,USD,Azure Retail Prices API,2025-12-18T04:46:54.030336 +AZURE,westindia,Standard_E64ads_v5,reserved_3y,NA,2.039003,USD,Azure Retail Prices API,2025-12-18T04:46:54.030339 +AZURE,westindia,Standard_E64ads_v5,spot,NA,0.991637,USD,Azure Retail Prices API,2025-12-18T04:46:53.296406 +AZURE,westindia,Standard_E64ads_v6,on_demand,NA,5.939,USD,Azure Retail Prices API,2025-12-18T04:46:53.296923 +AZURE,westindia,Standard_E64ads_v6,reserved_1y,NA,3.50411,USD,Azure Retail Prices API,2025-12-18T04:46:54.031233 +AZURE,westindia,Standard_E64ads_v6,reserved_3y,NA,2.256887,USD,Azure Retail Prices API,2025-12-18T04:46:54.031235 +AZURE,westindia,Standard_E64ads_v6,spot,NA,1.097527,USD,Azure Retail Prices API,2025-12-18T04:46:53.295752 +AZURE,westindia,Standard_E64as_v4,on_demand,NA,5.161,USD,Azure Retail Prices API,2025-12-18T04:46:53.297379 +AZURE,westindia,Standard_E64as_v4,reserved_1y,NA,3.044977,USD,Azure Retail Prices API,2025-12-18T04:46:54.031817 +AZURE,westindia,Standard_E64as_v4,reserved_3y,NA,1.961149,USD,Azure Retail Prices API,2025-12-18T04:46:54.031819 +AZURE,westindia,Standard_E64as_v4,spot,NA,0.953753,USD,Azure Retail Prices API,2025-12-18T04:46:53.297047 +AZURE,westindia,Standard_E64as_v5,on_demand,NA,7.572,USD,Azure Retail Prices API,2025-12-18T04:46:53.296350 +AZURE,westindia,Standard_E64as_v5,reserved_1y,NA,2.730822,USD,Azure Retail Prices API,2025-12-18T04:46:54.030710 +AZURE,westindia,Standard_E64as_v5,reserved_3y,NA,1.758828,USD,Azure Retail Prices API,2025-12-18T04:46:54.030713 +AZURE,westindia,Standard_E64as_v5,spot,NA,0.855254,USD,Azure Retail Prices API,2025-12-18T04:46:53.296750 +AZURE,westindia,Standard_E64d_v4,on_demand,NA,5.559,USD,Azure Retail Prices API,2025-12-18T04:46:53.296658 +AZURE,westindia,Standard_E64d_v4,reserved_1y,NA,3.279566,USD,Azure Retail Prices API,2025-12-18T04:46:54.030891 +AZURE,westindia,Standard_E64d_v4,reserved_3y,NA,2.112291,USD,Azure Retail Prices API,2025-12-18T04:46:54.030894 +AZURE,westindia,Standard_E64d_v4,spot,NA,1.027303,USD,Azure Retail Prices API,2025-12-18T04:46:53.296684 +AZURE,westindia,Standard_E64ds_v4,on_demand,NA,5.559,USD,Azure Retail Prices API,2025-12-18T04:46:53.296885 +AZURE,westindia,Standard_E64ds_v4,reserved_1y,NA,3.279566,USD,Azure Retail Prices API,2025-12-18T04:46:54.031197 +AZURE,westindia,Standard_E64ds_v4,reserved_3y,NA,2.112291,USD,Azure Retail Prices API,2025-12-18T04:46:54.031200 +AZURE,westindia,Standard_E64ds_v4,spot,NA,1.027303,USD,Azure Retail Prices API,2025-12-18T04:46:53.296282 +AZURE,westindia,Standard_E64ds_v5,on_demand,NA,5.898,USD,Azure Retail Prices API,2025-12-18T04:46:53.296640 +AZURE,westindia,Standard_E64ds_v5,reserved_1y,NA,3.479909,USD,Azure Retail Prices API,2025-12-18T04:46:54.030880 +AZURE,westindia,Standard_E64ds_v5,reserved_3y,NA,2.241324,USD,Azure Retail Prices API,2025-12-18T04:46:54.030883 +AZURE,westindia,Standard_E64ds_v5,spot,NA,1.08995,USD,Azure Retail Prices API,2025-12-18T04:46:53.296105 +AZURE,westindia,Standard_E64ds_v6,on_demand,NA,6.698,USD,Azure Retail Prices API,2025-12-18T04:46:53.296876 +AZURE,westindia,Standard_E64ds_v6,reserved_1y,NA,4.152511,USD,Azure Retail Prices API,2025-12-18T04:46:54.031181 +AZURE,westindia,Standard_E64ds_v6,reserved_3y,NA,2.612062,USD,Azure Retail Prices API,2025-12-18T04:46:54.031183 +AZURE,westindia,Standard_E64ds_v6,spot,NA,1.23779,USD,Azure Retail Prices API,2025-12-18T04:46:53.296678 +AZURE,westindia,Standard_E64s_v3,on_demand,NA,4.368,USD,Azure Retail Prices API,2025-12-18T04:46:53.296727 +AZURE,westindia,Standard_E64s_v3,reserved_1y,NA,2.695548,USD,Azure Retail Prices API,2025-12-18T04:46:54.030940 +AZURE,westindia,Standard_E64s_v3,reserved_3y,NA,1.723706,USD,Azure Retail Prices API,2025-12-18T04:46:54.030943 +AZURE,westindia,Standard_E64s_v3,spot,NA,0.807206,USD,Azure Retail Prices API,2025-12-18T04:46:53.296730 +AZURE,westindia,Standard_E64s_v4,on_demand,NA,4.864,USD,Azure Retail Prices API,2025-12-18T04:46:53.295932 +AZURE,westindia,Standard_E64s_v4,reserved_1y,NA,2.869635,USD,Azure Retail Prices API,2025-12-18T04:46:54.030464 +AZURE,westindia,Standard_E64s_v4,reserved_3y,NA,1.84825,USD,Azure Retail Prices API,2025-12-18T04:46:54.030467 +AZURE,westindia,Standard_E64s_v4,spot,NA,0.898867,USD,Azure Retail Prices API,2025-12-18T04:46:53.296847 +AZURE,westindia,Standard_E64s_v5,on_demand,NA,5.161,USD,Azure Retail Prices API,2025-12-18T04:46:53.297312 +AZURE,westindia,Standard_E64s_v5,reserved_1y,NA,3.044977,USD,Azure Retail Prices API,2025-12-18T04:46:54.031694 +AZURE,westindia,Standard_E64s_v5,reserved_3y,NA,1.909551,USD,Azure Retail Prices API,2025-12-18T04:46:54.031697 +AZURE,westindia,Standard_E64s_v5,spot,NA,0.953753,USD,Azure Retail Prices API,2025-12-18T04:46:53.296277 +AZURE,westindia,Standard_E80ids_v4,on_demand,NA,6.948,USD,Azure Retail Prices API,2025-12-18T04:46:53.296862 +AZURE,westindia,Standard_E80ids_v4,reserved_1y,NA,4.099543,USD,Azure Retail Prices API,2025-12-18T04:46:54.031167 +AZURE,westindia,Standard_E80ids_v4,reserved_3y,NA,2.640335,USD,Azure Retail Prices API,2025-12-18T04:46:54.031172 +AZURE,westindia,Standard_E80ids_v4,spot,NA,1.28399,USD,Azure Retail Prices API,2025-12-18T04:46:53.296611 +AZURE,westindia,Standard_E80is_v4,on_demand,NA,6.08,USD,Azure Retail Prices API,2025-12-18T04:46:53.297212 +AZURE,westindia,Standard_E80is_v4,reserved_1y,NA,3.5871,USD,Azure Retail Prices API,2025-12-18T04:46:54.031570 +AZURE,westindia,Standard_E80is_v4,reserved_3y,NA,2.310312,USD,Azure Retail Prices API,2025-12-18T04:46:54.031573 +AZURE,westindia,Standard_E80is_v4,spot,NA,1.123584,USD,Azure Retail Prices API,2025-12-18T04:46:53.296742 +AZURE,westindia,Standard_E8_v3,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:53.295757 +AZURE,westindia,Standard_E8_v3,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:54.030384 +AZURE,westindia,Standard_E8_v3,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:54.030389 +AZURE,westindia,Standard_E8_v3,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:53.295795 +AZURE,westindia,Standard_E8a_v4,on_demand,NA,0.645,USD,Azure Retail Prices API,2025-12-18T04:46:53.296568 +AZURE,westindia,Standard_E8a_v4,reserved_1y,NA,0.380594,USD,Azure Retail Prices API,2025-12-18T04:46:54.030797 +AZURE,westindia,Standard_E8a_v4,reserved_3y,NA,0.245129,USD,Azure Retail Prices API,2025-12-18T04:46:54.030800 +AZURE,westindia,Standard_E8a_v4,spot,NA,0.119196,USD,Azure Retail Prices API,2025-12-18T04:46:53.296260 +AZURE,westindia,Standard_E8ads_v5,on_demand,NA,1.039,USD,Azure Retail Prices API,2025-12-18T04:46:53.296721 +AZURE,westindia,Standard_E8ads_v5,reserved_1y,NA,0.395776,USD,Azure Retail Prices API,2025-12-18T04:46:54.031205 +AZURE,westindia,Standard_E8ads_v5,reserved_3y,NA,0.254871,USD,Azure Retail Prices API,2025-12-18T04:46:54.031208 +AZURE,westindia,Standard_E8ads_v5,spot,NA,0.124001,USD,Azure Retail Prices API,2025-12-18T04:46:53.297030 +AZURE,westindia,Standard_E8ads_v6,on_demand,NA,0.742,USD,Azure Retail Prices API,2025-12-18T04:46:53.296130 +AZURE,westindia,Standard_E8ads_v6,reserved_1y,NA,0.438014,USD,Azure Retail Prices API,2025-12-18T04:46:54.030532 +AZURE,westindia,Standard_E8ads_v6,reserved_3y,NA,0.282116,USD,Azure Retail Prices API,2025-12-18T04:46:54.030535 +AZURE,westindia,Standard_E8ads_v6,spot,NA,0.137122,USD,Azure Retail Prices API,2025-12-18T04:46:53.296663 +AZURE,westindia,Standard_E8as_v4,on_demand,NA,0.645,USD,Azure Retail Prices API,2025-12-18T04:46:53.297038 +AZURE,westindia,Standard_E8as_v4,reserved_1y,NA,0.380594,USD,Azure Retail Prices API,2025-12-18T04:46:54.031356 +AZURE,westindia,Standard_E8as_v4,reserved_3y,NA,0.245129,USD,Azure Retail Prices API,2025-12-18T04:46:54.031361 +AZURE,westindia,Standard_E8as_v4,spot,NA,0.119196,USD,Azure Retail Prices API,2025-12-18T04:46:53.296926 +AZURE,westindia,Standard_E8as_v5,on_demand,NA,0.947,USD,Azure Retail Prices API,2025-12-18T04:46:53.296345 +AZURE,westindia,Standard_E8as_v5,reserved_1y,NA,0.341324,USD,Azure Retail Prices API,2025-12-18T04:46:54.030780 +AZURE,westindia,Standard_E8as_v5,reserved_3y,NA,0.219863,USD,Azure Retail Prices API,2025-12-18T04:46:54.030783 +AZURE,westindia,Standard_E8as_v5,spot,NA,0.106999,USD,Azure Retail Prices API,2025-12-18T04:46:53.295917 +AZURE,westindia,Standard_E8d_v4,on_demand,NA,0.695,USD,Azure Retail Prices API,2025-12-18T04:46:53.296882 +AZURE,westindia,Standard_E8d_v4,reserved_1y,NA,0.409932,USD,Azure Retail Prices API,2025-12-18T04:46:54.031192 +AZURE,westindia,Standard_E8d_v4,reserved_3y,NA,0.264041,USD,Azure Retail Prices API,2025-12-18T04:46:54.031194 +AZURE,westindia,Standard_E8d_v4,spot,NA,0.128436,USD,Azure Retail Prices API,2025-12-18T04:46:53.296666 +AZURE,westindia,Standard_E8ds_v4,on_demand,NA,0.695,USD,Azure Retail Prices API,2025-12-18T04:46:53.297139 +AZURE,westindia,Standard_E8ds_v4,reserved_1y,NA,0.409932,USD,Azure Retail Prices API,2025-12-18T04:46:54.031488 +AZURE,westindia,Standard_E8ds_v4,reserved_3y,NA,0.264041,USD,Azure Retail Prices API,2025-12-18T04:46:54.031491 +AZURE,westindia,Standard_E8ds_v4,spot,NA,0.128436,USD,Azure Retail Prices API,2025-12-18T04:46:53.296188 +AZURE,westindia,Standard_E8ds_v5,on_demand,NA,0.737,USD,Azure Retail Prices API,2025-12-18T04:46:53.297344 +AZURE,westindia,Standard_E8ds_v5,reserved_1y,NA,0.435046,USD,Azure Retail Prices API,2025-12-18T04:46:54.031748 +AZURE,westindia,Standard_E8ds_v5,reserved_3y,NA,0.280175,USD,Azure Retail Prices API,2025-12-18T04:46:54.031751 +AZURE,westindia,Standard_E8ds_v5,spot,NA,0.136198,USD,Azure Retail Prices API,2025-12-18T04:46:53.295973 +AZURE,westindia,Standard_E8ds_v6,on_demand,NA,0.837,USD,Azure Retail Prices API,2025-12-18T04:46:53.297186 +AZURE,westindia,Standard_E8ds_v6,reserved_1y,NA,0.519064,USD,Azure Retail Prices API,2025-12-18T04:46:54.031538 +AZURE,westindia,Standard_E8ds_v6,reserved_3y,NA,0.326522,USD,Azure Retail Prices API,2025-12-18T04:46:54.031541 +AZURE,westindia,Standard_E8ds_v6,spot,NA,0.154678,USD,Azure Retail Prices API,2025-12-18T04:46:53.296198 +AZURE,westindia,Standard_E8s_v3,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:53.297233 +AZURE,westindia,Standard_E8s_v3,reserved_1y,NA,0.357534,USD,Azure Retail Prices API,2025-12-18T04:46:54.031589 +AZURE,westindia,Standard_E8s_v3,reserved_3y,NA,0.228615,USD,Azure Retail Prices API,2025-12-18T04:46:54.031592 +AZURE,westindia,Standard_E8s_v3,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:53.296767 +AZURE,westindia,Standard_E8s_v4,on_demand,NA,0.608,USD,Azure Retail Prices API,2025-12-18T04:46:53.297109 +AZURE,westindia,Standard_E8s_v4,reserved_1y,NA,0.358676,USD,Azure Retail Prices API,2025-12-18T04:46:54.031470 +AZURE,westindia,Standard_E8s_v4,reserved_3y,NA,0.231012,USD,Azure Retail Prices API,2025-12-18T04:46:54.031473 +AZURE,westindia,Standard_E8s_v4,spot,NA,0.112358,USD,Azure Retail Prices API,2025-12-18T04:46:53.295870 +AZURE,westindia,Standard_E8s_v5,on_demand,NA,0.645,USD,Azure Retail Prices API,2025-12-18T04:46:53.296479 +AZURE,westindia,Standard_E8s_v5,reserved_1y,NA,0.380594,USD,Azure Retail Prices API,2025-12-18T04:46:54.030722 +AZURE,westindia,Standard_E8s_v5,reserved_3y,NA,0.238699,USD,Azure Retail Prices API,2025-12-18T04:46:54.030725 +AZURE,westindia,Standard_E8s_v5,spot,NA,0.119196,USD,Azure Retail Prices API,2025-12-18T04:46:53.296397 +AZURE,westindia,Standard_E96a_v4,on_demand,NA,7.741,USD,Azure Retail Prices API,2025-12-18T04:46:53.296141 +AZURE,westindia,Standard_E96a_v4,reserved_1y,NA,4.567466,USD,Azure Retail Prices API,2025-12-18T04:46:54.030538 +AZURE,westindia,Standard_E96a_v4,reserved_3y,NA,2.941743,USD,Azure Retail Prices API,2025-12-18T04:46:54.030541 +AZURE,westindia,Standard_E96a_v4,spot,NA,1.430537,USD,Azure Retail Prices API,2025-12-18T04:46:53.297319 +AZURE,westindia,Standard_E96ads_v5,on_demand,NA,8.049,USD,Azure Retail Prices API,2025-12-18T04:46:53.295716 +AZURE,westindia,Standard_E96ads_v5,reserved_1y,NA,4.748744,USD,Azure Retail Prices API,2025-12-18T04:46:54.030354 +AZURE,westindia,Standard_E96ads_v5,reserved_3y,NA,3.058486,USD,Azure Retail Prices API,2025-12-18T04:46:54.030357 +AZURE,westindia,Standard_E96ads_v5,spot,NA,1.487455,USD,Azure Retail Prices API,2025-12-18T04:46:53.296409 +AZURE,westindia,Standard_E96ads_v6,on_demand,NA,8.909,USD,Azure Retail Prices API,2025-12-18T04:46:53.296571 +AZURE,westindia,Standard_E96ads_v6,reserved_1y,NA,5.256164,USD,Azure Retail Prices API,2025-12-18T04:46:54.030804 +AZURE,westindia,Standard_E96ads_v6,reserved_3y,NA,3.38535,USD,Azure Retail Prices API,2025-12-18T04:46:54.030807 +AZURE,westindia,Standard_E96ads_v6,spot,NA,1.646383,USD,Azure Retail Prices API,2025-12-18T04:46:53.297199 +AZURE,westindia,Standard_E96as_v4,on_demand,NA,7.741,USD,Azure Retail Prices API,2025-12-18T04:46:53.296912 +AZURE,westindia,Standard_E96as_v4,reserved_1y,NA,4.567466,USD,Azure Retail Prices API,2025-12-18T04:46:54.031216 +AZURE,westindia,Standard_E96as_v4,reserved_3y,NA,2.941743,USD,Azure Retail Prices API,2025-12-18T04:46:54.031218 +AZURE,westindia,Standard_E96as_v4,spot,NA,1.430537,USD,Azure Retail Prices API,2025-12-18T04:46:53.296996 +AZURE,westindia,Standard_E96as_v5,on_demand,NA,11.359,USD,Azure Retail Prices API,2025-12-18T04:46:53.296248 +AZURE,westindia,Standard_E96as_v5,reserved_1y,NA,4.096233,USD,Azure Retail Prices API,2025-12-18T04:46:54.030929 +AZURE,westindia,Standard_E96as_v5,reserved_3y,NA,2.638242,USD,Azure Retail Prices API,2025-12-18T04:46:54.030932 +AZURE,westindia,Standard_E96as_v5,spot,NA,1.283066,USD,Azure Retail Prices API,2025-12-18T04:46:53.296936 +AZURE,westindia,Standard_E96ds_v5,on_demand,NA,8.847,USD,Azure Retail Prices API,2025-12-18T04:46:53.296753 +AZURE,westindia,Standard_E96ds_v5,reserved_1y,NA,5.219977,USD,Azure Retail Prices API,2025-12-18T04:46:54.030957 +AZURE,westindia,Standard_E96ds_v5,reserved_3y,NA,3.361986,USD,Azure Retail Prices API,2025-12-18T04:46:54.030960 +AZURE,westindia,Standard_E96ds_v5,spot,NA,1.634926,USD,Azure Retail Prices API,2025-12-18T04:46:53.296421 +AZURE,westindia,Standard_E96ds_v6,on_demand,NA,10.046,USD,Azure Retail Prices API,2025-12-18T04:46:53.297296 +AZURE,westindia,Standard_E96ds_v6,reserved_1y,NA,6.228767,USD,Azure Retail Prices API,2025-12-18T04:46:54.031669 +AZURE,westindia,Standard_E96ds_v6,reserved_3y,NA,3.918113,USD,Azure Retail Prices API,2025-12-18T04:46:54.031672 +AZURE,westindia,Standard_E96ds_v6,spot,NA,1.856501,USD,Azure Retail Prices API,2025-12-18T04:46:53.295849 +AZURE,westindia,Standard_E96s_v5,on_demand,NA,7.741,USD,Azure Retail Prices API,2025-12-18T04:46:53.296518 +AZURE,westindia,Standard_E96s_v5,reserved_1y,NA,4.567466,USD,Azure Retail Prices API,2025-12-18T04:46:54.030752 +AZURE,westindia,Standard_E96s_v5,reserved_3y,NA,2.864346,USD,Azure Retail Prices API,2025-12-18T04:46:54.030755 +AZURE,westindia,Standard_E96s_v5,spot,NA,1.430537,USD,Azure Retail Prices API,2025-12-18T04:46:53.296512 +AZURE,westindia,Standard_EC16ads_v6,on_demand,NA,1.485,USD,Azure Retail Prices API,2025-12-18T04:46:53.296643 +AZURE,westindia,Standard_EC16ads_v6,reserved_1y,NA,0.876027,USD,Azure Retail Prices API,2025-12-18T04:46:54.030885 +AZURE,westindia,Standard_EC16ads_v6,reserved_3y,NA,0.564231,USD,Azure Retail Prices API,2025-12-18T04:46:54.030888 +AZURE,westindia,Standard_EC16ads_v6,spot,NA,0.274428,USD,Azure Retail Prices API,2025-12-18T04:46:53.296001 +AZURE,westindia,Standard_EC16as_v6,on_demand,NA,1.219,USD,Azure Retail Prices API,2025-12-18T04:46:53.296966 +AZURE,westindia,Standard_EC16as_v6,reserved_1y,NA,0.719292,USD,Azure Retail Prices API,2025-12-18T04:46:54.031269 +AZURE,westindia,Standard_EC16as_v6,reserved_3y,NA,0.46328,USD,Azure Retail Prices API,2025-12-18T04:46:54.031272 +AZURE,westindia,Standard_EC16as_v6,spot,NA,0.225271,USD,Azure Retail Prices API,2025-12-18T04:46:53.297203 +AZURE,westindia,Standard_EC2ads_v6,on_demand,NA,0.186,USD,Azure Retail Prices API,2025-12-18T04:46:53.297298 +AZURE,westindia,Standard_EC2ads_v6,reserved_1y,NA,0.109475,USD,Azure Retail Prices API,2025-12-18T04:46:54.031675 +AZURE,westindia,Standard_EC2ads_v6,reserved_3y,NA,0.07051,USD,Azure Retail Prices API,2025-12-18T04:46:54.031678 +AZURE,westindia,Standard_EC2ads_v6,spot,NA,0.034373,USD,Azure Retail Prices API,2025-12-18T04:46:53.296652 +AZURE,westindia,Standard_EC2as_v6,on_demand,NA,0.152,USD,Azure Retail Prices API,2025-12-18T04:46:53.295880 +AZURE,westindia,Standard_EC2as_v6,reserved_1y,NA,0.089954,USD,Azure Retail Prices API,2025-12-18T04:46:54.030440 +AZURE,westindia,Standard_EC2as_v6,reserved_3y,NA,0.057915,USD,Azure Retail Prices API,2025-12-18T04:46:54.030443 +AZURE,westindia,Standard_EC2as_v6,spot,NA,0.02809,USD,Azure Retail Prices API,2025-12-18T04:46:53.297322 +AZURE,westindia,Standard_EC32ads_v6,on_demand,NA,2.97,USD,Azure Retail Prices API,2025-12-18T04:46:53.296800 +AZURE,westindia,Standard_EC32ads_v6,reserved_1y,NA,1.752055,USD,Azure Retail Prices API,2025-12-18T04:46:54.031003 +AZURE,westindia,Standard_EC32ads_v6,reserved_3y,NA,1.128463,USD,Azure Retail Prices API,2025-12-18T04:46:54.031006 +AZURE,westindia,Standard_EC32ads_v6,spot,NA,0.548856,USD,Azure Retail Prices API,2025-12-18T04:46:53.297162 +AZURE,westindia,Standard_EC32as_v6,on_demand,NA,2.438,USD,Azure Retail Prices API,2025-12-18T04:46:53.297333 +AZURE,westindia,Standard_EC32as_v6,reserved_1y,NA,1.438699,USD,Azure Retail Prices API,2025-12-18T04:46:54.031725 +AZURE,westindia,Standard_EC32as_v6,reserved_3y,NA,0.926598,USD,Azure Retail Prices API,2025-12-18T04:46:54.031728 +AZURE,westindia,Standard_EC32as_v6,spot,NA,0.450542,USD,Azure Retail Prices API,2025-12-18T04:46:53.296549 +AZURE,westindia,Standard_EC48ads_v6,on_demand,NA,4.454,USD,Azure Retail Prices API,2025-12-18T04:46:53.297215 +AZURE,westindia,Standard_EC48ads_v6,reserved_1y,NA,2.628082,USD,Azure Retail Prices API,2025-12-18T04:46:54.031576 +AZURE,westindia,Standard_EC48ads_v6,reserved_3y,NA,1.692656,USD,Azure Retail Prices API,2025-12-18T04:46:54.031579 +AZURE,westindia,Standard_EC48ads_v6,spot,NA,0.823099,USD,Azure Retail Prices API,2025-12-18T04:46:53.295891 +AZURE,westindia,Standard_EC48as_v6,on_demand,NA,3.658,USD,Azure Retail Prices API,2025-12-18T04:46:53.296915 +AZURE,westindia,Standard_EC48as_v6,reserved_1y,NA,2.157991,USD,Azure Retail Prices API,2025-12-18T04:46:54.031221 +AZURE,westindia,Standard_EC48as_v6,reserved_3y,NA,1.389878,USD,Azure Retail Prices API,2025-12-18T04:46:54.031224 +AZURE,westindia,Standard_EC48as_v6,spot,NA,0.675998,USD,Azure Retail Prices API,2025-12-18T04:46:53.296747 +AZURE,westindia,Standard_EC4ads_v6,on_demand,NA,0.371,USD,Azure Retail Prices API,2025-12-18T04:46:53.296565 +AZURE,westindia,Standard_EC4ads_v6,reserved_1y,NA,0.219064,USD,Azure Retail Prices API,2025-12-18T04:46:54.030792 +AZURE,westindia,Standard_EC4ads_v6,reserved_3y,NA,0.141058,USD,Azure Retail Prices API,2025-12-18T04:46:54.030794 +AZURE,westindia,Standard_EC4ads_v6,spot,NA,0.068561,USD,Azure Retail Prices API,2025-12-18T04:46:53.297255 +AZURE,westindia,Standard_EC4as_v6,on_demand,NA,0.305,USD,Azure Retail Prices API,2025-12-18T04:46:53.295711 +AZURE,westindia,Standard_EC4as_v6,reserved_1y,NA,0.179795,USD,Azure Retail Prices API,2025-12-18T04:46:54.030348 +AZURE,westindia,Standard_EC4as_v6,reserved_3y,NA,0.11583,USD,Azure Retail Prices API,2025-12-18T04:46:54.030351 +AZURE,westindia,Standard_EC4as_v6,spot,NA,0.056364,USD,Azure Retail Prices API,2025-12-18T04:46:53.296669 +AZURE,westindia,Standard_EC64ads_v6,on_demand,NA,5.939,USD,Azure Retail Prices API,2025-12-18T04:46:53.297284 +AZURE,westindia,Standard_EC64ads_v6,reserved_1y,NA,3.50411,USD,Azure Retail Prices API,2025-12-18T04:46:54.031657 +AZURE,westindia,Standard_EC64ads_v6,reserved_3y,NA,2.256887,USD,Azure Retail Prices API,2025-12-18T04:46:54.031660 +AZURE,westindia,Standard_EC64ads_v6,spot,NA,1.097527,USD,Azure Retail Prices API,2025-12-18T04:46:53.295828 +AZURE,westindia,Standard_EC64as_v6,on_demand,NA,4.877,USD,Azure Retail Prices API,2025-12-18T04:46:53.296614 +AZURE,westindia,Standard_EC64as_v6,reserved_1y,NA,2.877283,USD,Azure Retail Prices API,2025-12-18T04:46:54.030837 +AZURE,westindia,Standard_EC64as_v6,reserved_3y,NA,1.853196,USD,Azure Retail Prices API,2025-12-18T04:46:54.030840 +AZURE,westindia,Standard_EC64as_v6,spot,NA,0.90127,USD,Azure Retail Prices API,2025-12-18T04:46:53.296209 +AZURE,westindia,Standard_EC8ads_v6,on_demand,NA,0.742,USD,Azure Retail Prices API,2025-12-18T04:46:53.297338 +AZURE,westindia,Standard_EC8ads_v6,reserved_1y,NA,0.438014,USD,Azure Retail Prices API,2025-12-18T04:46:54.031736 +AZURE,westindia,Standard_EC8ads_v6,reserved_3y,NA,0.282116,USD,Azure Retail Prices API,2025-12-18T04:46:54.031739 +AZURE,westindia,Standard_EC8ads_v6,spot,NA,0.137122,USD,Azure Retail Prices API,2025-12-18T04:46:53.297106 +AZURE,westindia,Standard_EC8as_v6,on_demand,NA,0.61,USD,Azure Retail Prices API,2025-12-18T04:46:53.297367 +AZURE,westindia,Standard_EC8as_v6,reserved_1y,NA,0.359703,USD,Azure Retail Prices API,2025-12-18T04:46:54.031790 +AZURE,westindia,Standard_EC8as_v6,reserved_3y,NA,0.231659,USD,Azure Retail Prices API,2025-12-18T04:46:54.031794 +AZURE,westindia,Standard_EC8as_v6,spot,NA,0.112728,USD,Azure Retail Prices API,2025-12-18T04:46:53.297206 +AZURE,westindia,Standard_EC96ads_v6,on_demand,NA,8.909,USD,Azure Retail Prices API,2025-12-18T04:46:53.297290 +AZURE,westindia,Standard_EC96ads_v6,reserved_1y,NA,5.256164,USD,Azure Retail Prices API,2025-12-18T04:46:54.031663 +AZURE,westindia,Standard_EC96ads_v6,reserved_3y,NA,3.38535,USD,Azure Retail Prices API,2025-12-18T04:46:54.031666 +AZURE,westindia,Standard_EC96ads_v6,spot,NA,1.646383,USD,Azure Retail Prices API,2025-12-18T04:46:53.296620 +AZURE,westindia,Standard_EC96as_v6,on_demand,NA,7.315,USD,Azure Retail Prices API,2025-12-18T04:46:53.297145 +AZURE,westindia,Standard_EC96as_v6,reserved_1y,NA,4.315982,USD,Azure Retail Prices API,2025-12-18T04:46:54.031500 +AZURE,westindia,Standard_EC96as_v6,reserved_3y,NA,2.779795,USD,Azure Retail Prices API,2025-12-18T04:46:54.031503 +AZURE,westindia,Standard_EC96as_v6,spot,NA,1.351812,USD,Azure Retail Prices API,2025-12-18T04:46:53.297274 +AZURE,westindia,Standard_F16,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379825 +AZURE,westindia,Standard_F16,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379839 +AZURE,westindia,Standard_F16,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379843 +AZURE,westindia,Standard_F16,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379831 +AZURE,westindia,Standard_F16s,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382130 +AZURE,westindia,Standard_F16s,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382139 +AZURE,westindia,Standard_F16s,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382143 +AZURE,westindia,Standard_F16s,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382134 +AZURE,westindia,Standard_F16s_v2,on_demand,NA,0.8232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384863 +AZURE,westindia,Standard_F16s_v2,reserved_1y,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384871 +AZURE,westindia,Standard_F16s_v2,reserved_3y,NA,0.32928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384875 +AZURE,westindia,Standard_F16s_v2,spot,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384867 +AZURE,westindia,Standard_F32s_v2,on_demand,NA,1.6464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385701 +AZURE,westindia,Standard_F32s_v2,reserved_1y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385712 +AZURE,westindia,Standard_F32s_v2,reserved_3y,NA,0.65856,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385716 +AZURE,westindia,Standard_F32s_v2,spot,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385708 +AZURE,westindia,Standard_F4,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378284 +AZURE,westindia,Standard_F4,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378293 +AZURE,westindia,Standard_F4,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378297 +AZURE,westindia,Standard_F4,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378289 +AZURE,westindia,Standard_F48s_v2,on_demand,NA,2.4696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386477 +AZURE,westindia,Standard_F48s_v2,reserved_1y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386485 +AZURE,westindia,Standard_F48s_v2,reserved_3y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386489 +AZURE,westindia,Standard_F48s_v2,spot,NA,0.74088,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386481 +AZURE,westindia,Standard_F4s,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380567 +AZURE,westindia,Standard_F4s,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380575 +AZURE,westindia,Standard_F4s,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380579 +AZURE,westindia,Standard_F4s,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380571 +AZURE,westindia,Standard_F4s_v2,on_demand,NA,0.2058,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383259 +AZURE,westindia,Standard_F4s_v2,reserved_1y,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383274 +AZURE,westindia,Standard_F4s_v2,reserved_3y,NA,0.08232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383282 +AZURE,westindia,Standard_F4s_v2,spot,NA,0.06174,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383268 +AZURE,westindia,Standard_F64s_v2,on_demand,NA,3.2928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387246 +AZURE,westindia,Standard_F64s_v2,reserved_1y,NA,1.97568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387257 +AZURE,westindia,Standard_F64s_v2,reserved_3y,NA,1.31712,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387261 +AZURE,westindia,Standard_F64s_v2,spot,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387250 +AZURE,westindia,Standard_F72s_v2,on_demand,NA,3.7044,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388426 +AZURE,westindia,Standard_F72s_v2,reserved_1y,NA,2.22264,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388434 +AZURE,westindia,Standard_F72s_v2,reserved_3y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388439 +AZURE,westindia,Standard_F72s_v2,spot,NA,1.11132,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.388430 +AZURE,westindia,Standard_F8,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379042 +AZURE,westindia,Standard_F8,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379050 +AZURE,westindia,Standard_F8,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379054 +AZURE,westindia,Standard_F8,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379046 +AZURE,westindia,Standard_F8s,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381327 +AZURE,westindia,Standard_F8s,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381336 +AZURE,westindia,Standard_F8s,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381340 +AZURE,westindia,Standard_F8s,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381331 +AZURE,westindia,Standard_F8s_v2,on_demand,NA,0.4116,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384061 +AZURE,westindia,Standard_F8s_v2,reserved_1y,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384070 +AZURE,westindia,Standard_F8s_v2,reserved_3y,NA,0.16464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384074 +AZURE,westindia,Standard_F8s_v2,spot,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384066 +AZURE,westindia,Standard_L16as_v3,on_demand,NA,1.597,USD,Azure Retail Prices API,2025-12-18T04:46:53.296391 +AZURE,westindia,Standard_L16as_v3,reserved_1y,NA,1.022374,USD,Azure Retail Prices API,2025-12-18T04:46:54.030676 +AZURE,westindia,Standard_L16as_v3,reserved_3y,NA,0.670928,USD,Azure Retail Prices API,2025-12-18T04:46:54.030678 +AZURE,westindia,Standard_L16as_v3,spot,NA,0.295126,USD,Azure Retail Prices API,2025-12-18T04:46:53.296920 +AZURE,westindia,Standard_L16s_v3,on_demand,NA,1.787,USD,Azure Retail Prices API,2025-12-18T04:46:53.297082 +AZURE,westindia,Standard_L16s_v3,reserved_1y,NA,1.143607,USD,Azure Retail Prices API,2025-12-18T04:46:54.031424 +AZURE,westindia,Standard_L16s_v3,reserved_3y,NA,0.750495,USD,Azure Retail Prices API,2025-12-18T04:46:54.031427 +AZURE,westindia,Standard_L16s_v3,spot,NA,0.330238,USD,Azure Retail Prices API,2025-12-18T04:46:53.295962 +AZURE,westindia,Standard_L32as_v3,on_demand,NA,3.195,USD,Azure Retail Prices API,2025-12-18T04:46:53.297183 +AZURE,westindia,Standard_L32as_v3,reserved_1y,NA,2.044749,USD,Azure Retail Prices API,2025-12-18T04:46:54.031526 +AZURE,westindia,Standard_L32as_v3,reserved_3y,NA,1.341857,USD,Azure Retail Prices API,2025-12-18T04:46:54.031529 +AZURE,westindia,Standard_L32as_v3,spot,NA,0.590436,USD,Azure Retail Prices API,2025-12-18T04:46:53.296672 +AZURE,westindia,Standard_L32s_v3,on_demand,NA,3.574,USD,Azure Retail Prices API,2025-12-18T04:46:53.295946 +AZURE,westindia,Standard_L32s_v3,reserved_1y,NA,2.287215,USD,Azure Retail Prices API,2025-12-18T04:46:54.030470 +AZURE,westindia,Standard_L32s_v3,reserved_3y,NA,1.500989,USD,Azure Retail Prices API,2025-12-18T04:46:54.030472 +AZURE,westindia,Standard_L32s_v3,spot,NA,0.660475,USD,Azure Retail Prices API,2025-12-18T04:46:53.296431 +AZURE,westindia,Standard_L48as_v3,on_demand,NA,4.792,USD,Azure Retail Prices API,2025-12-18T04:46:53.296580 +AZURE,westindia,Standard_L48as_v3,reserved_1y,NA,3.067123,USD,Azure Retail Prices API,2025-12-18T04:46:54.030815 +AZURE,westindia,Standard_L48as_v3,reserved_3y,NA,2.012785,USD,Azure Retail Prices API,2025-12-18T04:46:54.030818 +AZURE,westindia,Standard_L48as_v3,spot,NA,0.885562,USD,Azure Retail Prices API,2025-12-18T04:46:53.297148 +AZURE,westindia,Standard_L48s_v3,on_demand,NA,5.361,USD,Azure Retail Prices API,2025-12-18T04:46:53.296100 +AZURE,westindia,Standard_L48s_v3,reserved_1y,NA,3.430822,USD,Azure Retail Prices API,2025-12-18T04:46:54.030521 +AZURE,westindia,Standard_L48s_v3,reserved_3y,NA,2.251484,USD,Azure Retail Prices API,2025-12-18T04:46:54.030523 +AZURE,westindia,Standard_L48s_v3,spot,NA,0.990713,USD,Azure Retail Prices API,2025-12-18T04:46:53.297014 +AZURE,westindia,Standard_L64as_v3,on_demand,NA,6.39,USD,Azure Retail Prices API,2025-12-18T04:46:53.296017 +AZURE,westindia,Standard_L64as_v3,reserved_1y,NA,4.089498,USD,Azure Retail Prices API,2025-12-18T04:46:54.030498 +AZURE,westindia,Standard_L64as_v3,reserved_3y,NA,2.683714,USD,Azure Retail Prices API,2025-12-18T04:46:54.030501 +AZURE,westindia,Standard_L64as_v3,spot,NA,1.180872,USD,Azure Retail Prices API,2025-12-18T04:46:53.297365 +AZURE,westindia,Standard_L64s_v3,on_demand,NA,7.148,USD,Azure Retail Prices API,2025-12-18T04:46:53.296428 +AZURE,westindia,Standard_L64s_v3,reserved_1y,NA,4.574429,USD,Azure Retail Prices API,2025-12-18T04:46:54.030692 +AZURE,westindia,Standard_L64s_v3,reserved_3y,NA,3.001941,USD,Azure Retail Prices API,2025-12-18T04:46:54.030695 +AZURE,westindia,Standard_L64s_v3,spot,NA,1.32095,USD,Azure Retail Prices API,2025-12-18T04:46:53.297170 +AZURE,westindia,Standard_L80as_v3,on_demand,NA,7.987,USD,Azure Retail Prices API,2025-12-18T04:46:53.297130 +AZURE,westindia,Standard_L80as_v3,reserved_1y,NA,5.111758,USD,Azure Retail Prices API,2025-12-18T04:46:54.031482 +AZURE,westindia,Standard_L80as_v3,reserved_3y,NA,3.354642,USD,Azure Retail Prices API,2025-12-18T04:46:54.031485 +AZURE,westindia,Standard_L80as_v3,spot,NA,1.475998,USD,Azure Retail Prices API,2025-12-18T04:46:53.296617 +AZURE,westindia,Standard_L80s_v3,on_demand,NA,8.934,USD,Azure Retail Prices API,2025-12-18T04:46:53.296850 +AZURE,westindia,Standard_L80s_v3,reserved_1y,NA,5.718037,USD,Azure Retail Prices API,2025-12-18T04:46:54.031053 +AZURE,westindia,Standard_L80s_v3,reserved_3y,NA,3.752435,USD,Azure Retail Prices API,2025-12-18T04:46:54.031055 +AZURE,westindia,Standard_L80s_v3,spot,NA,1.651003,USD,Azure Retail Prices API,2025-12-18T04:46:53.296521 +AZURE,westindia,Standard_L8as_v3,on_demand,NA,0.799,USD,Azure Retail Prices API,2025-12-18T04:46:53.296484 +AZURE,westindia,Standard_L8as_v3,reserved_1y,NA,0.511187,USD,Azure Retail Prices API,2025-12-18T04:46:54.030727 +AZURE,westindia,Standard_L8as_v3,reserved_3y,NA,0.335464,USD,Azure Retail Prices API,2025-12-18T04:46:54.030731 +AZURE,westindia,Standard_L8as_v3,spot,NA,0.147655,USD,Azure Retail Prices API,2025-12-18T04:46:53.297008 +AZURE,westindia,Standard_L8s_v3,on_demand,NA,0.893,USD,Azure Retail Prices API,2025-12-18T04:46:53.295844 +AZURE,westindia,Standard_L8s_v3,reserved_1y,NA,0.571804,USD,Azure Retail Prices API,2025-12-18T04:46:54.030430 +AZURE,westindia,Standard_L8s_v3,reserved_3y,NA,0.375228,USD,Azure Retail Prices API,2025-12-18T04:46:54.030432 +AZURE,westindia,Standard_L8s_v3,spot,NA,0.165026,USD,Azure Retail Prices API,2025-12-18T04:46:53.296555 +AZURE,westus,Standard_D128ds_v6,on_demand,NA,9.303,USD,Azure Retail Prices API,2025-12-18T04:44:48.664553 +AZURE,westus,Standard_D128ds_v6,reserved_1y,NA,5.767922,USD,Azure Retail Prices API,2025-12-18T04:44:50.654917 +AZURE,westus,Standard_D128ds_v6,reserved_3y,NA,3.628196,USD,Azure Retail Prices API,2025-12-18T04:44:50.654920 +AZURE,westus,Standard_D128ds_v6,spot,NA,1.719194,USD,Azure Retail Prices API,2025-12-18T04:44:48.658306 +AZURE,westus,Standard_D12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488145 +AZURE,westus,Standard_D12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488153 +AZURE,westus,Standard_D12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488157 +AZURE,westus,Standard_D12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488149 +AZURE,westus,Standard_D13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488888 +AZURE,westus,Standard_D13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488896 +AZURE,westus,Standard_D13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488901 +AZURE,westus,Standard_D13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488892 +AZURE,westus,Standard_D14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490008 +AZURE,westus,Standard_D14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490017 +AZURE,westus,Standard_D14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490021 +AZURE,westus,Standard_D14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490012 +AZURE,westus,Standard_D15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490714 +AZURE,westus,Standard_D15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490723 +AZURE,westus,Standard_D15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490727 +AZURE,westus,Standard_D15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490719 +AZURE,westus,Standard_D16_v3,on_demand,NA,0.936,USD,Azure Retail Prices API,2025-12-18T04:44:48.663683 +AZURE,westus,Standard_D16_v3,reserved_1y,NA,0.635046,USD,Azure Retail Prices API,2025-12-18T04:44:50.654260 +AZURE,westus,Standard_D16_v3,reserved_3y,NA,0.406088,USD,Azure Retail Prices API,2025-12-18T04:44:50.654263 +AZURE,westus,Standard_D16_v3,spot,NA,0.172973,USD,Azure Retail Prices API,2025-12-18T04:44:48.663768 +AZURE,westus,Standard_D16a_v4,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:44:48.663303 +AZURE,westus,Standard_D16a_v4,reserved_1y,NA,0.526826,USD,Azure Retail Prices API,2025-12-18T04:44:50.653995 +AZURE,westus,Standard_D16a_v4,reserved_3y,NA,0.33691,USD,Azure Retail Prices API,2025-12-18T04:44:50.653998 +AZURE,westus,Standard_D16a_v4,spot,NA,0.17033,USD,Azure Retail Prices API,2025-12-18T04:44:48.658151 +AZURE,westus,Standard_D16ads_v5,on_demand,NA,0.976,USD,Azure Retail Prices API,2025-12-18T04:44:48.658679 +AZURE,westus,Standard_D16ads_v5,reserved_1y,NA,0.575799,USD,Azure Retail Prices API,2025-12-18T04:44:50.653616 +AZURE,westus,Standard_D16ads_v5,reserved_3y,NA,0.37089,USD,Azure Retail Prices API,2025-12-18T04:44:50.653619 +AZURE,westus,Standard_D16ads_v5,spot,NA,0.180365,USD,Azure Retail Prices API,2025-12-18T04:44:48.663830 +AZURE,westus,Standard_D16ads_v6,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:44:48.663403 +AZURE,westus,Standard_D16ads_v6,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:44:50.654074 +AZURE,westus,Standard_D16ads_v6,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:44:50.654077 +AZURE,westus,Standard_D16ads_v6,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:44:48.663476 +AZURE,westus,Standard_D16as_v4,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:44:48.664472 +AZURE,westus,Standard_D16as_v4,reserved_1y,NA,0.526826,USD,Azure Retail Prices API,2025-12-18T04:44:50.654851 +AZURE,westus,Standard_D16as_v4,reserved_3y,NA,0.33691,USD,Azure Retail Prices API,2025-12-18T04:44:50.654853 +AZURE,westus,Standard_D16as_v4,spot,NA,0.17033,USD,Azure Retail Prices API,2025-12-18T04:44:48.664383 +AZURE,westus,Standard_D16as_v5,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:44:48.663960 +AZURE,westus,Standard_D16as_v5,reserved_1y,NA,0.476712,USD,Azure Retail Prices API,2025-12-18T04:44:50.654502 +AZURE,westus,Standard_D16as_v5,reserved_3y,NA,0.30704,USD,Azure Retail Prices API,2025-12-18T04:44:50.654505 +AZURE,westus,Standard_D16as_v5,spot,NA,0.149318,USD,Azure Retail Prices API,2025-12-18T04:44:48.658949 +AZURE,westus,Standard_D16d_v4,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:44:48.663273 +AZURE,westus,Standard_D16d_v4,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:44:50.653962 +AZURE,westus,Standard_D16d_v4,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:44:50.653964 +AZURE,westus,Standard_D16d_v4,spot,NA,0.196627,USD,Azure Retail Prices API,2025-12-18T04:44:48.658707 +AZURE,westus,Standard_D16ds_v4,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:44:48.663435 +AZURE,westus,Standard_D16ds_v4,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:44:50.654097 +AZURE,westus,Standard_D16ds_v4,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:44:50.654100 +AZURE,westus,Standard_D16ds_v4,spot,NA,0.196627,USD,Azure Retail Prices API,2025-12-18T04:44:48.658720 +AZURE,westus,Standard_D16ds_v5,on_demand,NA,1.064,USD,Azure Retail Prices API,2025-12-18T04:44:48.664166 +AZURE,westus,Standard_D16ds_v5,reserved_1y,NA,0.62774,USD,Azure Retail Prices API,2025-12-18T04:44:50.654663 +AZURE,westus,Standard_D16ds_v5,reserved_3y,NA,0.404338,USD,Azure Retail Prices API,2025-12-18T04:44:50.654666 +AZURE,westus,Standard_D16ds_v5,spot,NA,0.196627,USD,Azure Retail Prices API,2025-12-18T04:44:48.658535 +AZURE,westus,Standard_D16ds_v6,on_demand,NA,1.163,USD,Azure Retail Prices API,2025-12-18T04:44:48.663969 +AZURE,westus,Standard_D16ds_v6,reserved_1y,NA,0.721005,USD,Azure Retail Prices API,2025-12-18T04:44:50.654514 +AZURE,westus,Standard_D16ds_v6,reserved_3y,NA,0.453539,USD,Azure Retail Prices API,2025-12-18T04:44:50.654517 +AZURE,westus,Standard_D16ds_v6,spot,NA,0.214922,USD,Azure Retail Prices API,2025-12-18T04:44:48.658328 +AZURE,westus,Standard_D16pds_v6,on_demand,NA,0.859,USD,Azure Retail Prices API,2025-12-18T04:44:48.664089 +AZURE,westus,Standard_D16pds_v6,reserved_1y,NA,0.506963,USD,Azure Retail Prices API,2025-12-18T04:44:50.654627 +AZURE,westus,Standard_D16pds_v6,reserved_3y,NA,0.326484,USD,Azure Retail Prices API,2025-12-18T04:44:50.654630 +AZURE,westus,Standard_D16pds_v6,spot,NA,0.174291,USD,Azure Retail Prices API,2025-12-18T04:44:48.663848 +AZURE,westus,Standard_D16ps_v6,on_demand,NA,0.656,USD,Azure Retail Prices API,2025-12-18T04:44:48.658849 +AZURE,westus,Standard_D16ps_v6,reserved_1y,NA,0.386986,USD,Azure Retail Prices API,2025-12-18T04:44:50.653711 +AZURE,westus,Standard_D16ps_v6,reserved_3y,NA,0.249277,USD,Azure Retail Prices API,2025-12-18T04:44:50.653714 +AZURE,westus,Standard_D16ps_v6,spot,NA,0.133102,USD,Azure Retail Prices API,2025-12-18T04:44:48.663381 +AZURE,westus,Standard_D16s_v3,on_demand,NA,0.936,USD,Azure Retail Prices API,2025-12-18T04:44:48.663544 +AZURE,westus,Standard_D16s_v3,reserved_1y,NA,0.635046,USD,Azure Retail Prices API,2025-12-18T04:44:50.654166 +AZURE,westus,Standard_D16s_v3,reserved_3y,NA,0.406088,USD,Azure Retail Prices API,2025-12-18T04:44:50.654169 +AZURE,westus,Standard_D16s_v3,spot,NA,0.172973,USD,Azure Retail Prices API,2025-12-18T04:44:48.658944 +AZURE,westus,Standard_D16s_v4,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:44:48.664103 +AZURE,westus,Standard_D16s_v4,reserved_1y,NA,0.526826,USD,Azure Retail Prices API,2025-12-18T04:44:50.654633 +AZURE,westus,Standard_D16s_v4,reserved_3y,NA,0.33691,USD,Azure Retail Prices API,2025-12-18T04:44:50.654636 +AZURE,westus,Standard_D16s_v4,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:44:48.658360 +AZURE,westus,Standard_D16s_v5,on_demand,NA,0.896,USD,Azure Retail Prices API,2025-12-18T04:44:48.664005 +AZURE,westus,Standard_D16s_v5,reserved_1y,NA,0.528653,USD,Azure Retail Prices API,2025-12-18T04:44:50.654545 +AZURE,westus,Standard_D16s_v5,reserved_3y,NA,0.331507,USD,Azure Retail Prices API,2025-12-18T04:44:50.654548 +AZURE,westus,Standard_D16s_v5,spot,NA,0.165581,USD,Azure Retail Prices API,2025-12-18T04:44:48.663749 +AZURE,westus,Standard_D2ads_v6,on_demand,NA,0.134,USD,Azure Retail Prices API,2025-12-18T04:44:48.658812 +AZURE,westus,Standard_D2ads_v6,reserved_1y,NA,0.07911,USD,Azure Retail Prices API,2025-12-18T04:44:50.653677 +AZURE,westus,Standard_D2ads_v6,reserved_3y,NA,0.050913,USD,Azure Retail Prices API,2025-12-18T04:44:50.653680 +AZURE,westus,Standard_D2ads_v6,spot,NA,0.024763,USD,Azure Retail Prices API,2025-12-18T04:44:48.664368 +AZURE,westus,Standard_D2ds_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:48.658844 +AZURE,westus,Standard_D2ds_v6,reserved_1y,NA,0.090068,USD,Azure Retail Prices API,2025-12-18T04:44:50.653705 +AZURE,westus,Standard_D2ds_v6,reserved_3y,NA,0.056697,USD,Azure Retail Prices API,2025-12-18T04:44:50.653708 +AZURE,westus,Standard_D2ds_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:44:48.663361 +AZURE,westus,Standard_D32_v3,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:44:48.658619 +AZURE,westus,Standard_D32_v3,reserved_1y,NA,1.270091,USD,Azure Retail Prices API,2025-12-18T04:44:50.653573 +AZURE,westus,Standard_D32_v3,reserved_3y,NA,0.812177,USD,Azure Retail Prices API,2025-12-18T04:44:50.653578 +AZURE,westus,Standard_D32_v3,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:44:48.658337 +AZURE,westus,Standard_D32a_v4,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:44:48.663348 +AZURE,westus,Standard_D32a_v4,reserved_1y,NA,1.053653,USD,Azure Retail Prices API,2025-12-18T04:44:50.654039 +AZURE,westus,Standard_D32a_v4,reserved_3y,NA,0.673782,USD,Azure Retail Prices API,2025-12-18T04:44:50.654042 +AZURE,westus,Standard_D32a_v4,spot,NA,0.340659,USD,Azure Retail Prices API,2025-12-18T04:44:48.658863 +AZURE,westus,Standard_D32ads_v5,on_demand,NA,1.952,USD,Azure Retail Prices API,2025-12-18T04:44:48.663316 +AZURE,westus,Standard_D32ads_v5,reserved_1y,NA,1.151712,USD,Azure Retail Prices API,2025-12-18T04:44:50.654017 +AZURE,westus,Standard_D32ads_v5,reserved_3y,NA,0.741743,USD,Azure Retail Prices API,2025-12-18T04:44:50.654020 +AZURE,westus,Standard_D32ads_v5,spot,NA,0.36073,USD,Azure Retail Prices API,2025-12-18T04:44:48.658188 +AZURE,westus,Standard_D32ads_v6,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:44:48.663739 +AZURE,westus,Standard_D32ads_v6,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:44:50.654310 +AZURE,westus,Standard_D32ads_v6,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:44:50.654313 +AZURE,westus,Standard_D32ads_v6,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:44:48.664723 +AZURE,westus,Standard_D32as_v4,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:44:48.658146 +AZURE,westus,Standard_D32as_v4,reserved_1y,NA,1.053653,USD,Azure Retail Prices API,2025-12-18T04:44:50.653263 +AZURE,westus,Standard_D32as_v4,reserved_3y,NA,0.673782,USD,Azure Retail Prices API,2025-12-18T04:44:50.653266 +AZURE,westus,Standard_D32as_v4,spot,NA,0.340659,USD,Azure Retail Prices API,2025-12-18T04:44:48.664097 +AZURE,westus,Standard_D32as_v5,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:44:48.664415 +AZURE,westus,Standard_D32as_v5,reserved_1y,NA,0.953425,USD,Azure Retail Prices API,2025-12-18T04:44:50.654818 +AZURE,westus,Standard_D32as_v5,reserved_3y,NA,0.614079,USD,Azure Retail Prices API,2025-12-18T04:44:50.654820 +AZURE,westus,Standard_D32as_v5,spot,NA,0.298637,USD,Azure Retail Prices API,2025-12-18T04:44:48.664012 +AZURE,westus,Standard_D32d_v4,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:44:48.664446 +AZURE,westus,Standard_D32d_v4,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:44:50.654828 +AZURE,westus,Standard_D32d_v4,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:44:50.654831 +AZURE,westus,Standard_D32d_v4,spot,NA,0.393254,USD,Azure Retail Prices API,2025-12-18T04:44:48.664352 +AZURE,westus,Standard_D32ds_v4,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:44:48.664802 +AZURE,westus,Standard_D32ds_v4,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:44:50.655041 +AZURE,westus,Standard_D32ds_v4,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:44:50.655044 +AZURE,westus,Standard_D32ds_v4,spot,NA,0.393254,USD,Azure Retail Prices API,2025-12-18T04:44:48.658646 +AZURE,westus,Standard_D32ds_v5,on_demand,NA,2.128,USD,Azure Retail Prices API,2025-12-18T04:44:48.663655 +AZURE,westus,Standard_D32ds_v5,reserved_1y,NA,1.255479,USD,Azure Retail Prices API,2025-12-18T04:44:50.654241 +AZURE,westus,Standard_D32ds_v5,reserved_3y,NA,0.808638,USD,Azure Retail Prices API,2025-12-18T04:44:50.654244 +AZURE,westus,Standard_D32ds_v5,spot,NA,0.393254,USD,Azure Retail Prices API,2025-12-18T04:44:48.663341 +AZURE,westus,Standard_D32ds_v6,on_demand,NA,2.326,USD,Azure Retail Prices API,2025-12-18T04:44:48.663687 +AZURE,westus,Standard_D32ds_v6,reserved_1y,NA,1.442009,USD,Azure Retail Prices API,2025-12-18T04:44:50.654266 +AZURE,westus,Standard_D32ds_v6,reserved_3y,NA,0.90704,USD,Azure Retail Prices API,2025-12-18T04:44:50.654269 +AZURE,westus,Standard_D32ds_v6,spot,NA,0.429845,USD,Azure Retail Prices API,2025-12-18T04:44:48.663844 +AZURE,westus,Standard_D32pds_v6,on_demand,NA,1.718,USD,Azure Retail Prices API,2025-12-18T04:44:48.658507 +AZURE,westus,Standard_D32pds_v6,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:44:50.653497 +AZURE,westus,Standard_D32pds_v6,reserved_3y,NA,0.653006,USD,Azure Retail Prices API,2025-12-18T04:44:50.653502 +AZURE,westus,Standard_D32pds_v6,spot,NA,0.348582,USD,Azure Retail Prices API,2025-12-18T04:44:48.658902 +AZURE,westus,Standard_D32ps_v6,on_demand,NA,1.312,USD,Azure Retail Prices API,2025-12-18T04:44:48.658979 +AZURE,westus,Standard_D32ps_v6,reserved_1y,NA,0.774087,USD,Azure Retail Prices API,2025-12-18T04:44:50.653803 +AZURE,westus,Standard_D32ps_v6,reserved_3y,NA,0.498554,USD,Azure Retail Prices API,2025-12-18T04:44:50.653807 +AZURE,westus,Standard_D32ps_v6,spot,NA,0.266205,USD,Azure Retail Prices API,2025-12-18T04:44:48.663864 +AZURE,westus,Standard_D32s_v3,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:44:48.658324 +AZURE,westus,Standard_D32s_v3,reserved_1y,NA,1.270091,USD,Azure Retail Prices API,2025-12-18T04:44:50.653365 +AZURE,westus,Standard_D32s_v3,reserved_3y,NA,0.812177,USD,Azure Retail Prices API,2025-12-18T04:44:50.653368 +AZURE,westus,Standard_D32s_v3,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:44:48.659029 +AZURE,westus,Standard_D32s_v4,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:44:48.658068 +AZURE,westus,Standard_D32s_v4,reserved_1y,NA,1.053653,USD,Azure Retail Prices API,2025-12-18T04:44:50.653200 +AZURE,westus,Standard_D32s_v4,reserved_3y,NA,0.673782,USD,Azure Retail Prices API,2025-12-18T04:44:50.653203 +AZURE,westus,Standard_D32s_v4,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:44:48.658454 +AZURE,westus,Standard_D32s_v5,on_demand,NA,1.792,USD,Azure Retail Prices API,2025-12-18T04:44:48.658665 +AZURE,westus,Standard_D32s_v5,reserved_1y,NA,1.057306,USD,Azure Retail Prices API,2025-12-18T04:44:50.653606 +AZURE,westus,Standard_D32s_v5,reserved_3y,NA,0.663052,USD,Azure Retail Prices API,2025-12-18T04:44:50.653608 +AZURE,westus,Standard_D32s_v5,spot,NA,0.331162,USD,Azure Retail Prices API,2025-12-18T04:44:48.658384 +AZURE,westus,Standard_D3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485096 +AZURE,westus,Standard_D3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485117 +AZURE,westus,Standard_D3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485121 +AZURE,westus,Standard_D3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485100 +AZURE,westus,Standard_D48a_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:44:48.663555 +AZURE,westus,Standard_D48a_v4,reserved_1y,NA,1.580594,USD,Azure Retail Prices API,2025-12-18T04:44:50.654178 +AZURE,westus,Standard_D48a_v4,reserved_3y,NA,1.010693,USD,Azure Retail Prices API,2025-12-18T04:44:50.654181 +AZURE,westus,Standard_D48a_v4,spot,NA,0.510989,USD,Azure Retail Prices API,2025-12-18T04:44:48.664321 +AZURE,westus,Standard_D48ads_v5,on_demand,NA,5.136,USD,Azure Retail Prices API,2025-12-18T04:44:48.658572 +AZURE,westus,Standard_D48ads_v5,reserved_1y,NA,1.727511,USD,Azure Retail Prices API,2025-12-18T04:44:50.655014 +AZURE,westus,Standard_D48ads_v5,reserved_3y,NA,1.112633,USD,Azure Retail Prices API,2025-12-18T04:44:50.655017 +AZURE,westus,Standard_D48ads_v5,spot,NA,0.541094,USD,Azure Retail Prices API,2025-12-18T04:44:48.658440 +AZURE,westus,Standard_D48ads_v6,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:44:48.664689 +AZURE,westus,Standard_D48ads_v6,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:44:50.654977 +AZURE,westus,Standard_D48ads_v6,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:44:50.654979 +AZURE,westus,Standard_D48ads_v6,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:44:48.658956 +AZURE,westus,Standard_D48as_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:44:48.658140 +AZURE,westus,Standard_D48as_v4,reserved_1y,NA,1.580594,USD,Azure Retail Prices API,2025-12-18T04:44:50.653257 +AZURE,westus,Standard_D48as_v4,reserved_3y,NA,1.010693,USD,Azure Retail Prices API,2025-12-18T04:44:50.653260 +AZURE,westus,Standard_D48as_v4,spot,NA,0.510989,USD,Azure Retail Prices API,2025-12-18T04:44:48.663617 +AZURE,westus,Standard_D48as_v5,on_demand,NA,2.424,USD,Azure Retail Prices API,2025-12-18T04:44:48.663289 +AZURE,westus,Standard_D48as_v5,reserved_1y,NA,1.430137,USD,Azure Retail Prices API,2025-12-18T04:44:50.653984 +AZURE,westus,Standard_D48as_v5,reserved_3y,NA,0.921119,USD,Azure Retail Prices API,2025-12-18T04:44:50.653986 +AZURE,westus,Standard_D48as_v5,spot,NA,0.447955,USD,Azure Retail Prices API,2025-12-18T04:44:48.658003 +AZURE,westus,Standard_D48d_v4,on_demand,NA,3.192,USD,Azure Retail Prices API,2025-12-18T04:44:48.664558 +AZURE,westus,Standard_D48d_v4,reserved_1y,NA,1.876941,USD,Azure Retail Prices API,2025-12-18T04:44:50.654923 +AZURE,westus,Standard_D48d_v4,reserved_3y,NA,1.20019,USD,Azure Retail Prices API,2025-12-18T04:44:50.654925 +AZURE,westus,Standard_D48d_v4,spot,NA,0.589882,USD,Azure Retail Prices API,2025-12-18T04:44:48.663676 +AZURE,westus,Standard_D48ds_v4,on_demand,NA,3.192,USD,Azure Retail Prices API,2025-12-18T04:44:48.664306 +AZURE,westus,Standard_D48ds_v4,reserved_1y,NA,1.876941,USD,Azure Retail Prices API,2025-12-18T04:44:50.654752 +AZURE,westus,Standard_D48ds_v4,reserved_3y,NA,1.20019,USD,Azure Retail Prices API,2025-12-18T04:44:50.654755 +AZURE,westus,Standard_D48ds_v4,spot,NA,0.589882,USD,Azure Retail Prices API,2025-12-18T04:44:48.663894 +AZURE,westus,Standard_D48ds_v5,on_demand,NA,3.192,USD,Azure Retail Prices API,2025-12-18T04:44:48.658301 +AZURE,westus,Standard_D48ds_v5,reserved_1y,NA,1.883333,USD,Azure Retail Prices API,2025-12-18T04:44:50.653342 +AZURE,westus,Standard_D48ds_v5,reserved_3y,NA,1.212976,USD,Azure Retail Prices API,2025-12-18T04:44:50.653345 +AZURE,westus,Standard_D48ds_v5,spot,NA,0.589882,USD,Azure Retail Prices API,2025-12-18T04:44:48.664830 +AZURE,westus,Standard_D48ds_v6,on_demand,NA,3.489,USD,Azure Retail Prices API,2025-12-18T04:44:48.664015 +AZURE,westus,Standard_D48ds_v6,reserved_1y,NA,2.163014,USD,Azure Retail Prices API,2025-12-18T04:44:50.654557 +AZURE,westus,Standard_D48ds_v6,reserved_3y,NA,1.360578,USD,Azure Retail Prices API,2025-12-18T04:44:50.654560 +AZURE,westus,Standard_D48ds_v6,spot,NA,0.644767,USD,Azure Retail Prices API,2025-12-18T04:44:48.658083 +AZURE,westus,Standard_D48pds_v6,on_demand,NA,2.578,USD,Azure Retail Prices API,2025-12-18T04:44:48.658817 +AZURE,westus,Standard_D48pds_v6,reserved_1y,NA,1.520776,USD,Azure Retail Prices API,2025-12-18T04:44:50.653683 +AZURE,westus,Standard_D48pds_v6,reserved_3y,NA,0.97949,USD,Azure Retail Prices API,2025-12-18T04:44:50.653686 +AZURE,westus,Standard_D48pds_v6,spot,NA,0.523076,USD,Azure Retail Prices API,2025-12-18T04:44:48.664562 +AZURE,westus,Standard_D48ps_v6,on_demand,NA,1.968,USD,Azure Retail Prices API,2025-12-18T04:44:48.658449 +AZURE,westus,Standard_D48ps_v6,reserved_1y,NA,1.161073,USD,Azure Retail Prices API,2025-12-18T04:44:50.653452 +AZURE,westus,Standard_D48ps_v6,reserved_3y,NA,0.747831,USD,Azure Retail Prices API,2025-12-18T04:44:50.653455 +AZURE,westus,Standard_D48ps_v6,spot,NA,0.399307,USD,Azure Retail Prices API,2025-12-18T04:44:48.664718 +AZURE,westus,Standard_D48s_v4,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:44:48.658758 +AZURE,westus,Standard_D48s_v4,reserved_1y,NA,1.580594,USD,Azure Retail Prices API,2025-12-18T04:44:50.653639 +AZURE,westus,Standard_D48s_v4,reserved_3y,NA,1.010693,USD,Azure Retail Prices API,2025-12-18T04:44:50.653642 +AZURE,westus,Standard_D48s_v4,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:44:48.664638 +AZURE,westus,Standard_D48s_v5,on_demand,NA,2.688,USD,Azure Retail Prices API,2025-12-18T04:44:48.663458 +AZURE,westus,Standard_D48s_v5,reserved_1y,NA,1.585959,USD,Azure Retail Prices API,2025-12-18T04:44:50.654114 +AZURE,westus,Standard_D48s_v5,reserved_3y,NA,0.994559,USD,Azure Retail Prices API,2025-12-18T04:44:50.654117 +AZURE,westus,Standard_D48s_v5,spot,NA,0.496742,USD,Azure Retail Prices API,2025-12-18T04:44:48.663487 +AZURE,westus,Standard_D4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485977 +AZURE,westus,Standard_D4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485986 +AZURE,westus,Standard_D4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485990 +AZURE,westus,Standard_D4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485982 +AZURE,westus,Standard_D4a_v4,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:44:48.664441 +AZURE,westus,Standard_D4a_v4,reserved_1y,NA,0.131735,USD,Azure Retail Prices API,2025-12-18T04:44:50.654823 +AZURE,westus,Standard_D4a_v4,reserved_3y,NA,0.084209,USD,Azure Retail Prices API,2025-12-18T04:44:50.654826 +AZURE,westus,Standard_D4a_v4,spot,NA,0.042582,USD,Azure Retail Prices API,2025-12-18T04:44:48.658183 +AZURE,westus,Standard_D4ads_v5,on_demand,NA,0.244,USD,Azure Retail Prices API,2025-12-18T04:44:48.659039 +AZURE,westus,Standard_D4ads_v5,reserved_1y,NA,0.14395,USD,Azure Retail Prices API,2025-12-18T04:44:50.653860 +AZURE,westus,Standard_D4ads_v5,reserved_3y,NA,0.092732,USD,Azure Retail Prices API,2025-12-18T04:44:50.653863 +AZURE,westus,Standard_D4ads_v5,spot,NA,0.045091,USD,Azure Retail Prices API,2025-12-18T04:44:48.663329 +AZURE,westus,Standard_D4ads_v6,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:44:48.658472 +AZURE,westus,Standard_D4ads_v6,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:44:50.653469 +AZURE,westus,Standard_D4ads_v6,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:44:50.653472 +AZURE,westus,Standard_D4ads_v6,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:44:48.658494 +AZURE,westus,Standard_D4as_v5,on_demand,NA,0.202,USD,Azure Retail Prices API,2025-12-18T04:44:48.659015 +AZURE,westus,Standard_D4as_v5,reserved_1y,NA,0.119178,USD,Azure Retail Prices API,2025-12-18T04:44:50.653842 +AZURE,westus,Standard_D4as_v5,reserved_3y,NA,0.07675,USD,Azure Retail Prices API,2025-12-18T04:44:50.653846 +AZURE,westus,Standard_D4as_v5,spot,NA,0.03733,USD,Azure Retail Prices API,2025-12-18T04:44:48.663931 +AZURE,westus,Standard_D4d_v4,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:44:48.663430 +AZURE,westus,Standard_D4d_v4,reserved_1y,NA,0.156393,USD,Azure Retail Prices API,2025-12-18T04:44:50.654091 +AZURE,westus,Standard_D4d_v4,reserved_3y,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:44:50.654094 +AZURE,westus,Standard_D4d_v4,spot,NA,0.049157,USD,Azure Retail Prices API,2025-12-18T04:44:48.658237 +AZURE,westus,Standard_D4ds_v4,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:44:48.663414 +AZURE,westus,Standard_D4ds_v4,reserved_1y,NA,0.156393,USD,Azure Retail Prices API,2025-12-18T04:44:50.654080 +AZURE,westus,Standard_D4ds_v4,reserved_3y,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:44:50.654083 +AZURE,westus,Standard_D4ds_v4,spot,NA,0.049157,USD,Azure Retail Prices API,2025-12-18T04:44:48.658807 +AZURE,westus,Standard_D4ds_v5,on_demand,NA,0.266,USD,Azure Retail Prices API,2025-12-18T04:44:48.664208 +AZURE,westus,Standard_D4ds_v5,reserved_1y,NA,0.156963,USD,Azure Retail Prices API,2025-12-18T04:44:50.654685 +AZURE,westus,Standard_D4ds_v5,reserved_3y,NA,0.101065,USD,Azure Retail Prices API,2025-12-18T04:44:50.654688 +AZURE,westus,Standard_D4ds_v5,spot,NA,0.049157,USD,Azure Retail Prices API,2025-12-18T04:44:48.658697 +AZURE,westus,Standard_D4ds_v6,on_demand,NA,0.291,USD,Azure Retail Prices API,2025-12-18T04:44:48.664223 +AZURE,westus,Standard_D4ds_v6,reserved_1y,NA,0.180251,USD,Azure Retail Prices API,2025-12-18T04:44:50.654691 +AZURE,westus,Standard_D4ds_v6,reserved_3y,NA,0.113394,USD,Azure Retail Prices API,2025-12-18T04:44:50.654696 +AZURE,westus,Standard_D4ds_v6,spot,NA,0.053777,USD,Azure Retail Prices API,2025-12-18T04:44:48.663966 +AZURE,westus,Standard_D4pds_v6,on_demand,NA,0.215,USD,Azure Retail Prices API,2025-12-18T04:44:48.658388 +AZURE,westus,Standard_D4pds_v6,reserved_1y,NA,0.126712,USD,Azure Retail Prices API,2025-12-18T04:44:50.653393 +AZURE,westus,Standard_D4pds_v6,reserved_3y,NA,0.081621,USD,Azure Retail Prices API,2025-12-18T04:44:50.653397 +AZURE,westus,Standard_D4pds_v6,spot,NA,0.043624,USD,Azure Retail Prices API,2025-12-18T04:44:48.663322 +AZURE,westus,Standard_D4ps_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:44:48.658292 +AZURE,westus,Standard_D4ps_v6,reserved_1y,NA,0.096804,USD,Azure Retail Prices API,2025-12-18T04:44:50.653329 +AZURE,westus,Standard_D4ps_v6,reserved_3y,NA,0.062329,USD,Azure Retail Prices API,2025-12-18T04:44:50.653333 +AZURE,westus,Standard_D4ps_v6,spot,NA,0.033276,USD,Azure Retail Prices API,2025-12-18T04:44:48.658762 +AZURE,westus,Standard_D4s_v3,on_demand,NA,0.234,USD,Azure Retail Prices API,2025-12-18T04:44:48.664826 +AZURE,westus,Standard_D4s_v3,reserved_1y,NA,0.15879,USD,Azure Retail Prices API,2025-12-18T04:44:50.655057 +AZURE,westus,Standard_D4s_v3,reserved_3y,NA,0.101522,USD,Azure Retail Prices API,2025-12-18T04:44:50.655100 +AZURE,westus,Standard_D4s_v3,spot,NA,0.043243,USD,Azure Retail Prices API,2025-12-18T04:44:48.658798 +AZURE,westus,Standard_D4s_v4,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:44:48.664311 +AZURE,westus,Standard_D4s_v4,reserved_1y,NA,0.131735,USD,Azure Retail Prices API,2025-12-18T04:44:50.654757 +AZURE,westus,Standard_D4s_v4,reserved_3y,NA,0.084209,USD,Azure Retail Prices API,2025-12-18T04:44:50.654760 +AZURE,westus,Standard_D4s_v4,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:44:48.663607 +AZURE,westus,Standard_D4s_v5,on_demand,NA,0.224,USD,Azure Retail Prices API,2025-12-18T04:44:48.658296 +AZURE,westus,Standard_D4s_v5,reserved_1y,NA,0.132192,USD,Azure Retail Prices API,2025-12-18T04:44:50.653336 +AZURE,westus,Standard_D4s_v5,reserved_3y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:44:50.653339 +AZURE,westus,Standard_D4s_v5,spot,NA,0.041395,USD,Azure Retail Prices API,2025-12-18T04:44:48.663857 +AZURE,westus,Standard_D5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486923 +AZURE,westus,Standard_D5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486937 +AZURE,westus,Standard_D5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486944 +AZURE,westus,Standard_D5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486930 +AZURE,westus,Standard_D64_v3,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:48.663519 +AZURE,westus,Standard_D64_v3,reserved_1y,NA,2.540183,USD,Azure Retail Prices API,2025-12-18T04:44:50.654143 +AZURE,westus,Standard_D64_v3,reserved_3y,NA,1.624353,USD,Azure Retail Prices API,2025-12-18T04:44:50.654145 +AZURE,westus,Standard_D64_v3,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:44:48.663817 +AZURE,westus,Standard_D64a_v4,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:44:48.663397 +AZURE,westus,Standard_D64a_v4,reserved_1y,NA,2.10742,USD,Azure Retail Prices API,2025-12-18T04:44:50.654068 +AZURE,westus,Standard_D64a_v4,reserved_3y,NA,1.347603,USD,Azure Retail Prices API,2025-12-18T04:44:50.654071 +AZURE,westus,Standard_D64a_v4,spot,NA,0.681318,USD,Azure Retail Prices API,2025-12-18T04:44:48.658928 +AZURE,westus,Standard_D64ads_v5,on_demand,NA,6.848,USD,Azure Retail Prices API,2025-12-18T04:44:48.663644 +AZURE,westus,Standard_D64ads_v5,reserved_1y,NA,2.303311,USD,Azure Retail Prices API,2025-12-18T04:44:50.655030 +AZURE,westus,Standard_D64ads_v5,reserved_3y,NA,1.483524,USD,Azure Retail Prices API,2025-12-18T04:44:50.655033 +AZURE,westus,Standard_D64ads_v5,spot,NA,0.721459,USD,Azure Retail Prices API,2025-12-18T04:44:48.658831 +AZURE,westus,Standard_D64ads_v6,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:44:48.663903 +AZURE,westus,Standard_D64ads_v6,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:44:50.654417 +AZURE,westus,Standard_D64ads_v6,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:44:50.654420 +AZURE,westus,Standard_D64ads_v6,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:44:48.658351 +AZURE,westus,Standard_D64as_v4,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:44:48.658702 +AZURE,westus,Standard_D64as_v4,reserved_1y,NA,2.10742,USD,Azure Retail Prices API,2025-12-18T04:44:50.653628 +AZURE,westus,Standard_D64as_v4,reserved_3y,NA,1.347603,USD,Azure Retail Prices API,2025-12-18T04:44:50.653631 +AZURE,westus,Standard_D64as_v4,spot,NA,0.681318,USD,Azure Retail Prices API,2025-12-18T04:44:48.658174 +AZURE,westus,Standard_D64as_v5,on_demand,NA,3.232,USD,Azure Retail Prices API,2025-12-18T04:44:48.658445 +AZURE,westus,Standard_D64as_v5,reserved_1y,NA,1.906849,USD,Azure Retail Prices API,2025-12-18T04:44:50.653446 +AZURE,westus,Standard_D64as_v5,reserved_3y,NA,1.228158,USD,Azure Retail Prices API,2025-12-18T04:44:50.653449 +AZURE,westus,Standard_D64as_v5,spot,NA,0.597274,USD,Azure Retail Prices API,2025-12-18T04:44:48.663922 +AZURE,westus,Standard_D64d_v4,on_demand,NA,4.256,USD,Azure Retail Prices API,2025-12-18T04:44:48.664316 +AZURE,westus,Standard_D64d_v4,reserved_1y,NA,2.502511,USD,Azure Retail Prices API,2025-12-18T04:44:50.654763 +AZURE,westus,Standard_D64d_v4,reserved_3y,NA,1.600266,USD,Azure Retail Prices API,2025-12-18T04:44:50.654766 +AZURE,westus,Standard_D64d_v4,spot,NA,0.786509,USD,Azure Retail Prices API,2025-12-18T04:44:48.658587 +AZURE,westus,Standard_D64ds_v4,on_demand,NA,4.256,USD,Azure Retail Prices API,2025-12-18T04:44:48.663212 +AZURE,westus,Standard_D64ds_v4,reserved_1y,NA,2.502511,USD,Azure Retail Prices API,2025-12-18T04:44:50.653923 +AZURE,westus,Standard_D64ds_v4,reserved_3y,NA,1.600266,USD,Azure Retail Prices API,2025-12-18T04:44:50.653926 +AZURE,westus,Standard_D64ds_v4,spot,NA,0.786509,USD,Azure Retail Prices API,2025-12-18T04:44:48.663376 +AZURE,westus,Standard_D64ds_v5,on_demand,NA,4.256,USD,Azure Retail Prices API,2025-12-18T04:44:48.664142 +AZURE,westus,Standard_D64ds_v5,reserved_1y,NA,2.511073,USD,Azure Retail Prices API,2025-12-18T04:44:50.654645 +AZURE,westus,Standard_D64ds_v5,reserved_3y,NA,1.617275,USD,Azure Retail Prices API,2025-12-18T04:44:50.654648 +AZURE,westus,Standard_D64ds_v5,spot,NA,0.786509,USD,Azure Retail Prices API,2025-12-18T04:44:48.664080 +AZURE,westus,Standard_D64ds_v6,on_demand,NA,4.652,USD,Azure Retail Prices API,2025-12-18T04:44:48.664816 +AZURE,westus,Standard_D64ds_v6,reserved_1y,NA,2.883904,USD,Azure Retail Prices API,2025-12-18T04:44:50.655052 +AZURE,westus,Standard_D64ds_v6,reserved_3y,NA,1.814079,USD,Azure Retail Prices API,2025-12-18T04:44:50.655054 +AZURE,westus,Standard_D64ds_v6,spot,NA,0.85969,USD,Azure Retail Prices API,2025-12-18T04:44:48.664068 +AZURE,westus,Standard_D64pds_v6,on_demand,NA,3.437,USD,Azure Retail Prices API,2025-12-18T04:44:48.663912 +AZURE,westus,Standard_D64pds_v6,reserved_1y,NA,2.02774,USD,Azure Retail Prices API,2025-12-18T04:44:50.654435 +AZURE,westus,Standard_D64pds_v6,reserved_3y,NA,1.305974,USD,Azure Retail Prices API,2025-12-18T04:44:50.654438 +AZURE,westus,Standard_D64pds_v6,spot,NA,0.697367,USD,Azure Retail Prices API,2025-12-18T04:44:48.658748 +AZURE,westus,Standard_D64ps_v6,on_demand,NA,2.624,USD,Azure Retail Prices API,2025-12-18T04:44:48.664159 +AZURE,westus,Standard_D64ps_v6,reserved_1y,NA,1.548174,USD,Azure Retail Prices API,2025-12-18T04:44:50.654657 +AZURE,westus,Standard_D64ps_v6,reserved_3y,NA,0.997108,USD,Azure Retail Prices API,2025-12-18T04:44:50.654660 +AZURE,westus,Standard_D64ps_v6,spot,NA,0.53241,USD,Azure Retail Prices API,2025-12-18T04:44:48.658040 +AZURE,westus,Standard_D64s_v3,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:48.658421 +AZURE,westus,Standard_D64s_v3,reserved_1y,NA,2.540183,USD,Azure Retail Prices API,2025-12-18T04:44:50.653421 +AZURE,westus,Standard_D64s_v3,reserved_3y,NA,1.624353,USD,Azure Retail Prices API,2025-12-18T04:44:50.653425 +AZURE,westus,Standard_D64s_v3,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:44:48.663851 +AZURE,westus,Standard_D64s_v4,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:44:48.663700 +AZURE,westus,Standard_D64s_v4,reserved_1y,NA,2.10742,USD,Azure Retail Prices API,2025-12-18T04:44:50.654279 +AZURE,westus,Standard_D64s_v4,reserved_3y,NA,1.347603,USD,Azure Retail Prices API,2025-12-18T04:44:50.654282 +AZURE,westus,Standard_D64s_v4,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:44:48.664616 +AZURE,westus,Standard_D64s_v5,on_demand,NA,3.584,USD,Azure Retail Prices API,2025-12-18T04:44:48.663909 +AZURE,westus,Standard_D64s_v5,reserved_1y,NA,2.114612,USD,Azure Retail Prices API,2025-12-18T04:44:50.654429 +AZURE,westus,Standard_D64s_v5,reserved_3y,NA,1.326065,USD,Azure Retail Prices API,2025-12-18T04:44:50.654432 +AZURE,westus,Standard_D64s_v5,spot,NA,0.662323,USD,Azure Retail Prices API,2025-12-18T04:44:48.659024 +AZURE,westus,Standard_D8_v3,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:44:48.664708 +AZURE,westus,Standard_D8_v3,reserved_1y,NA,0.317466,USD,Azure Retail Prices API,2025-12-18T04:44:50.654987 +AZURE,westus,Standard_D8_v3,reserved_3y,NA,0.203044,USD,Azure Retail Prices API,2025-12-18T04:44:50.654990 +AZURE,westus,Standard_D8_v3,spot,NA,0.086486,USD,Azure Retail Prices API,2025-12-18T04:44:48.658656 +AZURE,westus,Standard_D8a_v4,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:44:48.664548 +AZURE,westus,Standard_D8a_v4,reserved_1y,NA,0.26347,USD,Azure Retail Prices API,2025-12-18T04:44:50.654912 +AZURE,westus,Standard_D8a_v4,reserved_3y,NA,0.168455,USD,Azure Retail Prices API,2025-12-18T04:44:50.654914 +AZURE,westus,Standard_D8a_v4,spot,NA,0.085165,USD,Azure Retail Prices API,2025-12-18T04:44:48.663192 +AZURE,westus,Standard_D8ads_v5,on_demand,NA,0.856,USD,Azure Retail Prices API,2025-12-18T04:44:48.658734 +AZURE,westus,Standard_D8ads_v5,reserved_1y,NA,0.2879,USD,Azure Retail Prices API,2025-12-18T04:44:50.654939 +AZURE,westus,Standard_D8ads_v5,reserved_3y,NA,0.185426,USD,Azure Retail Prices API,2025-12-18T04:44:50.654942 +AZURE,westus,Standard_D8ads_v5,spot,NA,0.090182,USD,Azure Retail Prices API,2025-12-18T04:44:48.658369 +AZURE,westus,Standard_D8ads_v6,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:44:48.658961 +AZURE,westus,Standard_D8ads_v6,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:44:50.653775 +AZURE,westus,Standard_D8ads_v6,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:44:50.653780 +AZURE,westus,Standard_D8ads_v6,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:44:48.663299 +AZURE,westus,Standard_D8as_v4,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:44:48.663697 +AZURE,westus,Standard_D8as_v4,reserved_1y,NA,0.26347,USD,Azure Retail Prices API,2025-12-18T04:44:50.654272 +AZURE,westus,Standard_D8as_v4,reserved_3y,NA,0.168455,USD,Azure Retail Prices API,2025-12-18T04:44:50.654276 +AZURE,westus,Standard_D8as_v4,spot,NA,0.085165,USD,Azure Retail Prices API,2025-12-18T04:44:48.664347 +AZURE,westus,Standard_D8as_v5,on_demand,NA,0.404,USD,Azure Retail Prices API,2025-12-18T04:44:48.663787 +AZURE,westus,Standard_D8as_v5,reserved_1y,NA,0.238356,USD,Azure Retail Prices API,2025-12-18T04:44:50.654348 +AZURE,westus,Standard_D8as_v5,reserved_3y,NA,0.153539,USD,Azure Retail Prices API,2025-12-18T04:44:50.654351 +AZURE,westus,Standard_D8as_v5,spot,NA,0.074659,USD,Azure Retail Prices API,2025-12-18T04:44:48.664651 +AZURE,westus,Standard_D8d_v4,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:44:48.663639 +AZURE,westus,Standard_D8d_v4,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:44:50.654228 +AZURE,westus,Standard_D8d_v4,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:44:50.654232 +AZURE,westus,Standard_D8d_v4,spot,NA,0.098314,USD,Azure Retail Prices API,2025-12-18T04:44:48.663972 +AZURE,westus,Standard_D8ds_v4,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:44:48.659001 +AZURE,westus,Standard_D8ds_v4,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:44:50.653812 +AZURE,westus,Standard_D8ds_v4,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:44:50.653817 +AZURE,westus,Standard_D8ds_v4,spot,NA,0.098314,USD,Azure Retail Prices API,2025-12-18T04:44:48.658347 +AZURE,westus,Standard_D8ds_v5,on_demand,NA,0.532,USD,Azure Retail Prices API,2025-12-18T04:44:48.659049 +AZURE,westus,Standard_D8ds_v5,reserved_1y,NA,0.313927,USD,Azure Retail Prices API,2025-12-18T04:44:50.653872 +AZURE,westus,Standard_D8ds_v5,reserved_3y,NA,0.202169,USD,Azure Retail Prices API,2025-12-18T04:44:50.653875 +AZURE,westus,Standard_D8ds_v5,spot,NA,0.098314,USD,Azure Retail Prices API,2025-12-18T04:44:48.658933 +AZURE,westus,Standard_D8ds_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:48.663612 +AZURE,westus,Standard_D8ds_v6,reserved_1y,NA,0.360502,USD,Azure Retail Prices API,2025-12-18T04:44:50.654209 +AZURE,westus,Standard_D8ds_v6,reserved_3y,NA,0.22675,USD,Azure Retail Prices API,2025-12-18T04:44:50.654212 +AZURE,westus,Standard_D8ds_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:44:48.663189 +AZURE,westus,Standard_D8pds_v6,on_demand,NA,0.43,USD,Azure Retail Prices API,2025-12-18T04:44:48.664747 +AZURE,westus,Standard_D8pds_v6,reserved_1y,NA,0.253425,USD,Azure Retail Prices API,2025-12-18T04:44:50.655009 +AZURE,westus,Standard_D8pds_v6,reserved_3y,NA,0.163242,USD,Azure Retail Prices API,2025-12-18T04:44:50.655011 +AZURE,westus,Standard_D8pds_v6,spot,NA,0.087247,USD,Azure Retail Prices API,2025-12-18T04:44:48.663814 +AZURE,westus,Standard_D8ps_v6,on_demand,NA,0.328,USD,Azure Retail Prices API,2025-12-18T04:44:48.658684 +AZURE,westus,Standard_D8ps_v6,reserved_1y,NA,0.193493,USD,Azure Retail Prices API,2025-12-18T04:44:50.653622 +AZURE,westus,Standard_D8ps_v6,reserved_3y,NA,0.124658,USD,Azure Retail Prices API,2025-12-18T04:44:50.653625 +AZURE,westus,Standard_D8ps_v6,spot,NA,0.066551,USD,Azure Retail Prices API,2025-12-18T04:44:48.664025 +AZURE,westus,Standard_D8s_v3,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:44:48.663470 +AZURE,westus,Standard_D8s_v3,reserved_1y,NA,0.317466,USD,Azure Retail Prices API,2025-12-18T04:44:50.654126 +AZURE,westus,Standard_D8s_v3,reserved_3y,NA,0.203044,USD,Azure Retail Prices API,2025-12-18T04:44:50.654129 +AZURE,westus,Standard_D8s_v3,spot,NA,0.086486,USD,Azure Retail Prices API,2025-12-18T04:44:48.664737 +AZURE,westus,Standard_D8s_v4,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:44:48.659058 +AZURE,westus,Standard_D8s_v4,reserved_1y,NA,0.26347,USD,Azure Retail Prices API,2025-12-18T04:44:50.653889 +AZURE,westus,Standard_D8s_v4,reserved_3y,NA,0.168455,USD,Azure Retail Prices API,2025-12-18T04:44:50.653896 +AZURE,westus,Standard_D8s_v4,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:44:48.663276 +AZURE,westus,Standard_D8s_v5,on_demand,NA,0.448,USD,Azure Retail Prices API,2025-12-18T04:44:48.658771 +AZURE,westus,Standard_D8s_v5,reserved_1y,NA,0.264269,USD,Azure Retail Prices API,2025-12-18T04:44:50.653646 +AZURE,westus,Standard_D8s_v5,reserved_3y,NA,0.165753,USD,Azure Retail Prices API,2025-12-18T04:44:50.653651 +AZURE,westus,Standard_D8s_v5,spot,NA,0.08279,USD,Azure Retail Prices API,2025-12-18T04:44:48.658078 +AZURE,westus,Standard_D96a_v4,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:44:48.659005 +AZURE,westus,Standard_D96a_v4,reserved_1y,NA,3.161073,USD,Azure Retail Prices API,2025-12-18T04:44:50.653821 +AZURE,westus,Standard_D96a_v4,reserved_3y,NA,2.021385,USD,Azure Retail Prices API,2025-12-18T04:44:50.653825 +AZURE,westus,Standard_D96a_v4,spot,NA,1.021978,USD,Azure Retail Prices API,2025-12-18T04:44:48.658029 +AZURE,westus,Standard_D96ads_v5,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:44:48.658853 +AZURE,westus,Standard_D96ads_v5,reserved_1y,NA,3.455023,USD,Azure Retail Prices API,2025-12-18T04:44:50.653716 +AZURE,westus,Standard_D96ads_v5,reserved_3y,NA,2.225266,USD,Azure Retail Prices API,2025-12-18T04:44:50.653719 +AZURE,westus,Standard_D96ads_v5,spot,NA,1.082189,USD,Azure Retail Prices API,2025-12-18T04:44:48.658254 +AZURE,westus,Standard_D96ads_v6,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:44:48.663292 +AZURE,westus,Standard_D96ads_v6,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:44:50.653989 +AZURE,westus,Standard_D96ads_v6,reserved_3y,NA,2.444178,USD,Azure Retail Prices API,2025-12-18T04:44:50.653992 +AZURE,westus,Standard_D96ads_v6,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:44:48.664647 +AZURE,westus,Standard_D96as_v4,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:44:48.664008 +AZURE,westus,Standard_D96as_v4,reserved_1y,NA,3.161073,USD,Azure Retail Prices API,2025-12-18T04:44:50.654551 +AZURE,westus,Standard_D96as_v4,reserved_3y,NA,2.021385,USD,Azure Retail Prices API,2025-12-18T04:44:50.654554 +AZURE,westus,Standard_D96as_v4,spot,NA,1.021978,USD,Azure Retail Prices API,2025-12-18T04:44:48.658563 +AZURE,westus,Standard_D96as_v5,on_demand,NA,9.264,USD,Azure Retail Prices API,2025-12-18T04:44:48.658624 +AZURE,westus,Standard_D96as_v5,reserved_1y,NA,2.860274,USD,Azure Retail Prices API,2025-12-18T04:44:50.653672 +AZURE,westus,Standard_D96as_v5,reserved_3y,NA,1.842237,USD,Azure Retail Prices API,2025-12-18T04:44:50.653674 +AZURE,westus,Standard_D96as_v5,spot,NA,0.89591,USD,Azure Retail Prices API,2025-12-18T04:44:48.658202 +AZURE,westus,Standard_D96ds_v5,on_demand,NA,6.384,USD,Azure Retail Prices API,2025-12-18T04:44:48.663597 +AZURE,westus,Standard_D96ds_v5,reserved_1y,NA,3.766553,USD,Azure Retail Prices API,2025-12-18T04:44:50.654203 +AZURE,westus,Standard_D96ds_v5,reserved_3y,NA,2.425913,USD,Azure Retail Prices API,2025-12-18T04:44:50.654206 +AZURE,westus,Standard_D96ds_v5,spot,NA,1.179763,USD,Azure Retail Prices API,2025-12-18T04:44:48.658887 +AZURE,westus,Standard_D96ds_v6,on_demand,NA,6.977,USD,Azure Retail Prices API,2025-12-18T04:44:48.663283 +AZURE,westus,Standard_D96ds_v6,reserved_1y,NA,4.325913,USD,Azure Retail Prices API,2025-12-18T04:44:50.653973 +AZURE,westus,Standard_D96ds_v6,reserved_3y,NA,2.721157,USD,Azure Retail Prices API,2025-12-18T04:44:50.653975 +AZURE,westus,Standard_D96ds_v6,spot,NA,1.28935,USD,Azure Retail Prices API,2025-12-18T04:44:48.664666 +AZURE,westus,Standard_D96pds_v6,on_demand,NA,5.155,USD,Azure Retail Prices API,2025-12-18T04:44:48.663992 +AZURE,westus,Standard_D96pds_v6,reserved_1y,NA,3.041553,USD,Azure Retail Prices API,2025-12-18T04:44:50.654532 +AZURE,westus,Standard_D96pds_v6,reserved_3y,NA,1.95898,USD,Azure Retail Prices API,2025-12-18T04:44:50.654535 +AZURE,westus,Standard_D96pds_v6,spot,NA,1.04595,USD,Azure Retail Prices API,2025-12-18T04:44:48.664451 +AZURE,westus,Standard_D96ps_v6,on_demand,NA,3.936,USD,Azure Retail Prices API,2025-12-18T04:44:48.663662 +AZURE,westus,Standard_D96ps_v6,reserved_1y,NA,2.32226,USD,Azure Retail Prices API,2025-12-18T04:44:50.654247 +AZURE,westus,Standard_D96ps_v6,reserved_3y,NA,1.495662,USD,Azure Retail Prices API,2025-12-18T04:44:50.654251 +AZURE,westus,Standard_D96ps_v6,spot,NA,0.798614,USD,Azure Retail Prices API,2025-12-18T04:44:48.663358 +AZURE,westus,Standard_D96s_v5,on_demand,NA,5.376,USD,Azure Retail Prices API,2025-12-18T04:44:48.663386 +AZURE,westus,Standard_D96s_v5,reserved_1y,NA,3.171804,USD,Azure Retail Prices API,2025-12-18T04:44:50.654062 +AZURE,westus,Standard_D96s_v5,reserved_3y,NA,1.989117,USD,Azure Retail Prices API,2025-12-18T04:44:50.654065 +AZURE,westus,Standard_D96s_v5,spot,NA,0.993485,USD,Azure Retail Prices API,2025-12-18T04:44:48.663897 +AZURE,westus,Standard_DC16ads_v5,on_demand,NA,0.976,USD,Azure Retail Prices API,2025-12-18T04:44:48.663946 +AZURE,westus,Standard_DC16ads_v5,reserved_1y,NA,0.780822,USD,Azure Retail Prices API,2025-12-18T04:44:50.654477 +AZURE,westus,Standard_DC16ads_v5,reserved_3y,NA,0.585616,USD,Azure Retail Prices API,2025-12-18T04:44:50.654481 +AZURE,westus,Standard_DC16ads_v5,spot,NA,0.184171,USD,Azure Retail Prices API,2025-12-18T04:44:48.658263 +AZURE,westus,Standard_DC16ads_v6,on_demand,NA,1.072,USD,Azure Retail Prices API,2025-12-18T04:44:48.664783 +AZURE,westus,Standard_DC16ads_v6,reserved_1y,NA,0.632534,USD,Azure Retail Prices API,2025-12-18T04:44:50.655024 +AZURE,westus,Standard_DC16ads_v6,reserved_3y,NA,0.407344,USD,Azure Retail Prices API,2025-12-18T04:44:50.655027 +AZURE,westus,Standard_DC16ads_v6,spot,NA,0.198106,USD,Azure Retail Prices API,2025-12-18T04:44:48.663408 +AZURE,westus,Standard_DC16as_v5,on_demand,NA,0.808,USD,Azure Retail Prices API,2025-12-18T04:44:48.658610 +AZURE,westus,Standard_DC16as_v5,reserved_1y,NA,0.646347,USD,Azure Retail Prices API,2025-12-18T04:44:50.653563 +AZURE,westus,Standard_DC16as_v5,reserved_3y,NA,0.484817,USD,Azure Retail Prices API,2025-12-18T04:44:50.653568 +AZURE,westus,Standard_DC16as_v5,spot,NA,0.15247,USD,Azure Retail Prices API,2025-12-18T04:44:48.663778 +AZURE,westus,Standard_DC2ads_v6,on_demand,NA,0.134,USD,Azure Retail Prices API,2025-12-18T04:44:48.658642 +AZURE,westus,Standard_DC2ads_v6,reserved_1y,NA,0.07911,USD,Azure Retail Prices API,2025-12-18T04:44:50.653600 +AZURE,westus,Standard_DC2ads_v6,reserved_3y,NA,0.050913,USD,Azure Retail Prices API,2025-12-18T04:44:50.653603 +AZURE,westus,Standard_DC2ads_v6,spot,NA,0.024763,USD,Azure Retail Prices API,2025-12-18T04:44:48.663810 +AZURE,westus,Standard_DC32ads_v5,on_demand,NA,1.952,USD,Azure Retail Prices API,2025-12-18T04:44:48.663925 +AZURE,westus,Standard_DC32ads_v5,reserved_1y,NA,1.561644,USD,Azure Retail Prices API,2025-12-18T04:44:50.654453 +AZURE,westus,Standard_DC32ads_v5,reserved_3y,NA,1.171195,USD,Azure Retail Prices API,2025-12-18T04:44:50.654456 +AZURE,westus,Standard_DC32ads_v5,spot,NA,0.368342,USD,Azure Retail Prices API,2025-12-18T04:44:48.664331 +AZURE,westus,Standard_DC32ads_v6,on_demand,NA,2.144,USD,Azure Retail Prices API,2025-12-18T04:44:48.663919 +AZURE,westus,Standard_DC32ads_v6,reserved_1y,NA,1.264954,USD,Azure Retail Prices API,2025-12-18T04:44:50.654447 +AZURE,westus,Standard_DC32ads_v6,reserved_3y,NA,0.814726,USD,Azure Retail Prices API,2025-12-18T04:44:50.654450 +AZURE,westus,Standard_DC32ads_v6,spot,NA,0.396211,USD,Azure Retail Prices API,2025-12-18T04:44:48.658365 +AZURE,westus,Standard_DC32as_v5,on_demand,NA,1.616,USD,Azure Retail Prices API,2025-12-18T04:44:48.664172 +AZURE,westus,Standard_DC32as_v5,reserved_1y,NA,1.292808,USD,Azure Retail Prices API,2025-12-18T04:44:50.654669 +AZURE,westus,Standard_DC32as_v5,reserved_3y,NA,0.969597,USD,Azure Retail Prices API,2025-12-18T04:44:50.654672 +AZURE,westus,Standard_DC32as_v5,spot,NA,0.304939,USD,Azure Retail Prices API,2025-12-18T04:44:48.658273 +AZURE,westus,Standard_DC48ads_v5,on_demand,NA,2.928,USD,Azure Retail Prices API,2025-12-18T04:44:48.664071 +AZURE,westus,Standard_DC48ads_v5,reserved_1y,NA,2.342352,USD,Azure Retail Prices API,2025-12-18T04:44:50.654614 +AZURE,westus,Standard_DC48ads_v5,reserved_3y,NA,1.756811,USD,Azure Retail Prices API,2025-12-18T04:44:50.654617 +AZURE,westus,Standard_DC48ads_v5,spot,NA,0.552514,USD,Azure Retail Prices API,2025-12-18T04:44:48.658615 +AZURE,westus,Standard_DC48ads_v6,on_demand,NA,3.216,USD,Azure Retail Prices API,2025-12-18T04:44:48.664357 +AZURE,westus,Standard_DC48ads_v6,reserved_1y,NA,1.897489,USD,Azure Retail Prices API,2025-12-18T04:44:50.654779 +AZURE,westus,Standard_DC48ads_v6,reserved_3y,NA,1.22207,USD,Azure Retail Prices API,2025-12-18T04:44:50.654782 +AZURE,westus,Standard_DC48ads_v6,spot,NA,0.594317,USD,Azure Retail Prices API,2025-12-18T04:44:48.663530 +AZURE,westus,Standard_DC48as_v5,on_demand,NA,2.424,USD,Azure Retail Prices API,2025-12-18T04:44:48.664282 +AZURE,westus,Standard_DC48as_v5,reserved_1y,NA,1.939155,USD,Azure Retail Prices API,2025-12-18T04:44:50.654741 +AZURE,westus,Standard_DC48as_v5,reserved_3y,NA,1.454414,USD,Azure Retail Prices API,2025-12-18T04:44:50.654744 +AZURE,westus,Standard_DC48as_v5,spot,NA,0.457409,USD,Azure Retail Prices API,2025-12-18T04:44:48.664572 +AZURE,westus,Standard_DC4ads_v5,on_demand,NA,0.244,USD,Azure Retail Prices API,2025-12-18T04:44:48.663983 +AZURE,westus,Standard_DC4ads_v5,reserved_1y,NA,0.195205,USD,Azure Retail Prices API,2025-12-18T04:44:50.654520 +AZURE,westus,Standard_DC4ads_v5,reserved_3y,NA,0.146385,USD,Azure Retail Prices API,2025-12-18T04:44:50.654523 +AZURE,westus,Standard_DC4ads_v5,spot,NA,0.046043,USD,Azure Retail Prices API,2025-12-18T04:44:48.658485 +AZURE,westus,Standard_DC4ads_v6,on_demand,NA,0.268,USD,Azure Retail Prices API,2025-12-18T04:44:48.664477 +AZURE,westus,Standard_DC4ads_v6,reserved_1y,NA,0.158105,USD,Azure Retail Prices API,2025-12-18T04:44:50.654856 +AZURE,westus,Standard_DC4ads_v6,reserved_3y,NA,0.101826,USD,Azure Retail Prices API,2025-12-18T04:44:50.654859 +AZURE,westus,Standard_DC4ads_v6,spot,NA,0.049526,USD,Azure Retail Prices API,2025-12-18T04:44:48.663694 +AZURE,westus,Standard_DC4as_v5,on_demand,NA,0.202,USD,Azure Retail Prices API,2025-12-18T04:44:48.663306 +AZURE,westus,Standard_DC4as_v5,reserved_1y,NA,0.161644,USD,Azure Retail Prices API,2025-12-18T04:44:50.654001 +AZURE,westus,Standard_DC4as_v5,reserved_3y,NA,0.121195,USD,Azure Retail Prices API,2025-12-18T04:44:50.654003 +AZURE,westus,Standard_DC4as_v5,spot,NA,0.038117,USD,Azure Retail Prices API,2025-12-18T04:44:48.663742 +AZURE,westus,Standard_DC64ads_v5,on_demand,NA,3.904,USD,Azure Retail Prices API,2025-12-18T04:44:48.663364 +AZURE,westus,Standard_DC64ads_v5,reserved_1y,NA,3.123174,USD,Azure Retail Prices API,2025-12-18T04:44:50.654050 +AZURE,westus,Standard_DC64ads_v5,reserved_3y,NA,2.34239,USD,Azure Retail Prices API,2025-12-18T04:44:50.654053 +AZURE,westus,Standard_DC64ads_v5,spot,NA,0.736685,USD,Azure Retail Prices API,2025-12-18T04:44:48.664488 +AZURE,westus,Standard_DC64ads_v6,on_demand,NA,4.288,USD,Azure Retail Prices API,2025-12-18T04:44:48.659044 +AZURE,westus,Standard_DC64ads_v6,reserved_1y,NA,2.529909,USD,Azure Retail Prices API,2025-12-18T04:44:50.653866 +AZURE,westus,Standard_DC64ads_v6,reserved_3y,NA,1.629452,USD,Azure Retail Prices API,2025-12-18T04:44:50.653869 +AZURE,westus,Standard_DC64ads_v6,spot,NA,0.792422,USD,Azure Retail Prices API,2025-12-18T04:44:48.664774 +AZURE,westus,Standard_DC64as_v5,on_demand,NA,3.232,USD,Azure Retail Prices API,2025-12-18T04:44:48.658101 +AZURE,westus,Standard_DC64as_v5,reserved_1y,NA,2.585616,USD,Azure Retail Prices API,2025-12-18T04:44:50.653219 +AZURE,westus,Standard_DC64as_v5,reserved_3y,NA,1.939193,USD,Azure Retail Prices API,2025-12-18T04:44:50.653223 +AZURE,westus,Standard_DC64as_v5,spot,NA,0.609878,USD,Azure Retail Prices API,2025-12-18T04:44:48.658435 +AZURE,westus,Standard_DC8ads_v5,on_demand,NA,0.488,USD,Azure Retail Prices API,2025-12-18T04:44:48.658463 +AZURE,westus,Standard_DC8ads_v5,reserved_1y,NA,0.390411,USD,Azure Retail Prices API,2025-12-18T04:44:50.653464 +AZURE,westus,Standard_DC8ads_v5,reserved_3y,NA,0.292808,USD,Azure Retail Prices API,2025-12-18T04:44:50.653467 +AZURE,westus,Standard_DC8ads_v5,spot,NA,0.092086,USD,Azure Retail Prices API,2025-12-18T04:44:48.663801 +AZURE,westus,Standard_DC8ads_v6,on_demand,NA,0.536,USD,Azure Retail Prices API,2025-12-18T04:44:48.663240 +AZURE,westus,Standard_DC8ads_v6,reserved_1y,NA,0.31621,USD,Azure Retail Prices API,2025-12-18T04:44:50.653940 +AZURE,westus,Standard_DC8ads_v6,reserved_3y,NA,0.203691,USD,Azure Retail Prices API,2025-12-18T04:44:50.653942 +AZURE,westus,Standard_DC8ads_v6,spot,NA,0.099053,USD,Azure Retail Prices API,2025-12-18T04:44:48.663441 +AZURE,westus,Standard_DC8as_v5,on_demand,NA,0.404,USD,Azure Retail Prices API,2025-12-18T04:44:48.664807 +AZURE,westus,Standard_DC8as_v5,reserved_1y,NA,0.323174,USD,Azure Retail Prices API,2025-12-18T04:44:50.655046 +AZURE,westus,Standard_DC8as_v5,reserved_3y,NA,0.24239,USD,Azure Retail Prices API,2025-12-18T04:44:50.655049 +AZURE,westus,Standard_DC8as_v5,spot,NA,0.076235,USD,Azure Retail Prices API,2025-12-18T04:44:48.664218 +AZURE,westus,Standard_DC96ads_v5,on_demand,NA,5.856,USD,Azure Retail Prices API,2025-12-18T04:44:48.663781 +AZURE,westus,Standard_DC96ads_v5,reserved_1y,NA,4.684817,USD,Azure Retail Prices API,2025-12-18T04:44:50.654335 +AZURE,westus,Standard_DC96ads_v5,reserved_3y,NA,3.513584,USD,Azure Retail Prices API,2025-12-18T04:44:50.654338 +AZURE,westus,Standard_DC96ads_v5,spot,NA,1.105027,USD,Azure Retail Prices API,2025-12-18T04:44:48.663755 +AZURE,westus,Standard_DC96ads_v6,on_demand,NA,6.432,USD,Azure Retail Prices API,2025-12-18T04:44:48.664543 +AZURE,westus,Standard_DC96ads_v6,reserved_1y,NA,3.794863,USD,Azure Retail Prices API,2025-12-18T04:44:50.654904 +AZURE,westus,Standard_DC96ads_v6,reserved_3y,NA,2.444178,USD,Azure Retail Prices API,2025-12-18T04:44:50.654909 +AZURE,westus,Standard_DC96ads_v6,spot,NA,1.188634,USD,Azure Retail Prices API,2025-12-18T04:44:48.663669 +AZURE,westus,Standard_DC96as_v5,on_demand,NA,4.848,USD,Azure Retail Prices API,2025-12-18T04:44:48.658123 +AZURE,westus,Standard_DC96as_v5,reserved_1y,NA,3.878425,USD,Azure Retail Prices API,2025-12-18T04:44:50.653248 +AZURE,westus,Standard_DC96as_v5,reserved_3y,NA,2.90879,USD,Azure Retail Prices API,2025-12-18T04:44:50.653253 +AZURE,westus,Standard_DC96as_v5,spot,NA,0.914818,USD,Azure Retail Prices API,2025-12-18T04:44:48.663867 +AZURE,westus,Standard_DS12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495100 +AZURE,westus,Standard_DS12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495109 +AZURE,westus,Standard_DS12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495113 +AZURE,westus,Standard_DS12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495105 +AZURE,westus,Standard_DS13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495885 +AZURE,westus,Standard_DS13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495912 +AZURE,westus,Standard_DS13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495921 +AZURE,westus,Standard_DS13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495892 +AZURE,westus,Standard_DS14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496743 +AZURE,westus,Standard_DS14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496751 +AZURE,westus,Standard_DS14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496756 +AZURE,westus,Standard_DS14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496747 +AZURE,westus,Standard_DS15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497619 +AZURE,westus,Standard_DS15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497627 +AZURE,westus,Standard_DS15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497631 +AZURE,westus,Standard_DS15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497623 +AZURE,westus,Standard_DS1_v2,on_demand,NA,0.07665,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491465 +AZURE,westus,Standard_DS1_v2,reserved_1y,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491473 +AZURE,westus,Standard_DS1_v2,reserved_3y,NA,0.03066,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491477 +AZURE,westus,Standard_DS1_v2,spot,NA,0.022995,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491469 +AZURE,westus,Standard_DS2_v2,on_demand,NA,0.1533,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492221 +AZURE,westus,Standard_DS2_v2,reserved_1y,NA,0.09198,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492230 +AZURE,westus,Standard_DS2_v2,reserved_3y,NA,0.06132,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492234 +AZURE,westus,Standard_DS2_v2,spot,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492226 +AZURE,westus,Standard_DS3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492916 +AZURE,westus,Standard_DS3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492925 +AZURE,westus,Standard_DS3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492929 +AZURE,westus,Standard_DS3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492920 +AZURE,westus,Standard_DS4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493661 +AZURE,westus,Standard_DS4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493669 +AZURE,westus,Standard_DS4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493673 +AZURE,westus,Standard_DS4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493665 +AZURE,westus,Standard_DS5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494374 +AZURE,westus,Standard_DS5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494382 +AZURE,westus,Standard_DS5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494386 +AZURE,westus,Standard_DS5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494378 +AZURE,westus,Standard_E128ds_v6,on_demand,NA,11.628,USD,Azure Retail Prices API,2025-12-18T04:44:48.658112 +AZURE,westus,Standard_E128ds_v6,reserved_1y,NA,7.209018,USD,Azure Retail Prices API,2025-12-18T04:44:50.653228 +AZURE,westus,Standard_E128ds_v6,reserved_3y,NA,4.534741,USD,Azure Retail Prices API,2025-12-18T04:44:50.653233 +AZURE,westus,Standard_E128ds_v6,spot,NA,2.148854,USD,Azure Retail Prices API,2025-12-18T04:44:48.664125 +AZURE,westus,Standard_E16_v3,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:44:48.663453 +AZURE,westus,Standard_E16_v3,reserved_1y,NA,0.697146,USD,Azure Retail Prices API,2025-12-18T04:44:50.654109 +AZURE,westus,Standard_E16_v3,reserved_3y,NA,0.445776,USD,Azure Retail Prices API,2025-12-18T04:44:50.654112 +AZURE,westus,Standard_E16_v3,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:44:48.664114 +AZURE,westus,Standard_E16a_v4,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:44:48.658826 +AZURE,westus,Standard_E16a_v4,reserved_1y,NA,0.658562,USD,Azure Retail Prices API,2025-12-18T04:44:50.653694 +AZURE,westus,Standard_E16a_v4,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:44:50.653697 +AZURE,westus,Standard_E16a_v4,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:44:48.658022 +AZURE,westus,Standard_E16ads_v5,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:44:48.658516 +AZURE,westus,Standard_E16ads_v5,reserved_1y,NA,0.698516,USD,Azure Retail Prices API,2025-12-18T04:44:50.653515 +AZURE,westus,Standard_E16ads_v5,reserved_3y,NA,0.449924,USD,Azure Retail Prices API,2025-12-18T04:44:50.653520 +AZURE,westus,Standard_E16ads_v5,spot,NA,0.218803,USD,Azure Retail Prices API,2025-12-18T04:44:48.663765 +AZURE,westus,Standard_E16ads_v6,on_demand,NA,1.363,USD,Azure Retail Prices API,2025-12-18T04:44:48.658287 +AZURE,westus,Standard_E16ads_v6,reserved_1y,NA,0.804338,USD,Azure Retail Prices API,2025-12-18T04:44:50.653318 +AZURE,westus,Standard_E16ads_v6,reserved_3y,NA,0.517998,USD,Azure Retail Prices API,2025-12-18T04:44:50.653324 +AZURE,westus,Standard_E16ads_v6,spot,NA,0.251882,USD,Azure Retail Prices API,2025-12-18T04:44:48.663704 +AZURE,westus,Standard_E16as_v4,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:44:48.658426 +AZURE,westus,Standard_E16as_v4,reserved_1y,NA,0.658562,USD,Azure Retail Prices API,2025-12-18T04:44:50.653429 +AZURE,westus,Standard_E16as_v4,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:44:50.653433 +AZURE,westus,Standard_E16as_v4,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:44:48.664058 +AZURE,westus,Standard_E16as_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:48.658568 +AZURE,westus,Standard_E16as_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:44:50.653545 +AZURE,westus,Standard_E16as_v5,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:44:50.653548 +AZURE,westus,Standard_E16as_v5,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:48.658558 +AZURE,westus,Standard_E16d_v4,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:44:48.658521 +AZURE,westus,Standard_E16d_v4,reserved_1y,NA,0.7621,USD,Azure Retail Prices API,2025-12-18T04:44:50.653526 +AZURE,westus,Standard_E16d_v4,reserved_3y,NA,0.487291,USD,Azure Retail Prices API,2025-12-18T04:44:50.653529 +AZURE,westus,Standard_E16d_v4,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:44:48.663586 +AZURE,westus,Standard_E16ds_v4,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:44:48.663174 +AZURE,westus,Standard_E16ds_v4,reserved_1y,NA,0.7621,USD,Azure Retail Prices API,2025-12-18T04:44:50.653900 +AZURE,westus,Standard_E16ds_v4,reserved_3y,NA,0.487291,USD,Azure Retail Prices API,2025-12-18T04:44:50.653903 +AZURE,westus,Standard_E16ds_v4,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:44:48.658729 +AZURE,westus,Standard_E16ds_v5,on_demand,NA,1.296,USD,Azure Retail Prices API,2025-12-18T04:44:48.663951 +AZURE,westus,Standard_E16ds_v5,reserved_1y,NA,0.764612,USD,Azure Retail Prices API,2025-12-18T04:44:50.654490 +AZURE,westus,Standard_E16ds_v5,reserved_3y,NA,0.492466,USD,Azure Retail Prices API,2025-12-18T04:44:50.654493 +AZURE,westus,Standard_E16ds_v5,spot,NA,0.239501,USD,Azure Retail Prices API,2025-12-18T04:44:48.664238 +AZURE,westus,Standard_E16ds_v6,on_demand,NA,1.453,USD,Azure Retail Prices API,2025-12-18T04:44:48.658840 +AZURE,westus,Standard_E16ds_v6,reserved_1y,NA,0.901142,USD,Azure Retail Prices API,2025-12-18T04:44:50.653700 +AZURE,westus,Standard_E16ds_v6,reserved_3y,NA,0.566857,USD,Azure Retail Prices API,2025-12-18T04:44:50.653702 +AZURE,westus,Standard_E16ds_v6,spot,NA,0.268514,USD,Azure Retail Prices API,2025-12-18T04:44:48.663269 +AZURE,westus,Standard_E16pds_v6,on_demand,NA,1.093,USD,Azure Retail Prices API,2025-12-18T04:44:48.664498 +AZURE,westus,Standard_E16pds_v6,reserved_1y,NA,0.644749,USD,Azure Retail Prices API,2025-12-18T04:44:50.654867 +AZURE,westus,Standard_E16pds_v6,reserved_3y,NA,0.415259,USD,Azure Retail Prices API,2025-12-18T04:44:50.654870 +AZURE,westus,Standard_E16pds_v6,spot,NA,0.202205,USD,Azure Retail Prices API,2025-12-18T04:44:48.663351 +AZURE,westus,Standard_E16ps_v6,on_demand,NA,0.862,USD,Azure Retail Prices API,2025-12-18T04:44:48.663833 +AZURE,westus,Standard_E16ps_v6,reserved_1y,NA,0.50879,USD,Azure Retail Prices API,2025-12-18T04:44:50.654385 +AZURE,westus,Standard_E16ps_v6,reserved_3y,NA,0.327702,USD,Azure Retail Prices API,2025-12-18T04:44:50.654388 +AZURE,westus,Standard_E16ps_v6,spot,NA,0.15947,USD,Azure Retail Prices API,2025-12-18T04:44:48.664378 +AZURE,westus,Standard_E16s_v3,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:44:48.658046 +AZURE,westus,Standard_E16s_v3,reserved_1y,NA,0.697146,USD,Azure Retail Prices API,2025-12-18T04:44:50.653194 +AZURE,westus,Standard_E16s_v3,reserved_3y,NA,0.445776,USD,Azure Retail Prices API,2025-12-18T04:44:50.653197 +AZURE,westus,Standard_E16s_v3,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:44:48.658393 +AZURE,westus,Standard_E16s_v4,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:44:48.663775 +AZURE,westus,Standard_E16s_v4,reserved_1y,NA,0.658562,USD,Azure Retail Prices API,2025-12-18T04:44:50.654329 +AZURE,westus,Standard_E16s_v4,reserved_3y,NA,0.421119,USD,Azure Retail Prices API,2025-12-18T04:44:50.654332 +AZURE,westus,Standard_E16s_v4,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:44:48.658867 +AZURE,westus,Standard_E16s_v5,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:44:48.663576 +AZURE,westus,Standard_E16s_v5,reserved_1y,NA,0.660845,USD,Azure Retail Prices API,2025-12-18T04:44:50.654197 +AZURE,westus,Standard_E16s_v5,reserved_3y,NA,0.414384,USD,Azure Retail Prices API,2025-12-18T04:44:50.654200 +AZURE,westus,Standard_E16s_v5,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:44:48.658990 +AZURE,westus,Standard_E20a_v4,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:44:48.664755 +AZURE,westus,Standard_E20a_v4,reserved_1y,NA,0.823059,USD,Azure Retail Prices API,2025-12-18T04:44:50.655019 +AZURE,westus,Standard_E20a_v4,reserved_3y,NA,0.526446,USD,Azure Retail Prices API,2025-12-18T04:44:50.655022 +AZURE,westus,Standard_E20a_v4,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:44:48.664083 +AZURE,westus,Standard_E20ads_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:44:48.664538 +AZURE,westus,Standard_E20ads_v5,reserved_1y,NA,0.873174,USD,Azure Retail Prices API,2025-12-18T04:44:50.654892 +AZURE,westus,Standard_E20ads_v5,reserved_3y,NA,0.562405,USD,Azure Retail Prices API,2025-12-18T04:44:50.654897 +AZURE,westus,Standard_E20ads_v5,spot,NA,0.273504,USD,Azure Retail Prices API,2025-12-18T04:44:48.664292 +AZURE,westus,Standard_E20ads_v6,on_demand,NA,1.704,USD,Azure Retail Prices API,2025-12-18T04:44:48.663710 +AZURE,westus,Standard_E20ads_v6,reserved_1y,NA,1.005365,USD,Azure Retail Prices API,2025-12-18T04:44:50.654285 +AZURE,westus,Standard_E20ads_v6,reserved_3y,NA,0.647527,USD,Azure Retail Prices API,2025-12-18T04:44:50.654288 +AZURE,westus,Standard_E20ads_v6,spot,NA,0.314899,USD,Azure Retail Prices API,2025-12-18T04:44:48.664769 +AZURE,westus,Standard_E20as_v4,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:44:48.663746 +AZURE,westus,Standard_E20as_v4,reserved_1y,NA,0.823059,USD,Azure Retail Prices API,2025-12-18T04:44:50.654316 +AZURE,westus,Standard_E20as_v4,reserved_3y,NA,0.526446,USD,Azure Retail Prices API,2025-12-18T04:44:50.654319 +AZURE,westus,Standard_E20as_v4,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:44:48.658208 +AZURE,westus,Standard_E20as_v5,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:48.658480 +AZURE,westus,Standard_E20as_v5,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:44:50.653476 +AZURE,westus,Standard_E20as_v5,reserved_3y,NA,0.478805,USD,Azure Retail Prices API,2025-12-18T04:44:50.653481 +AZURE,westus,Standard_E20as_v5,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:44:48.663841 +AZURE,westus,Standard_E20d_v4,on_demand,NA,1.62,USD,Azure Retail Prices API,2025-12-18T04:44:48.658379 +AZURE,westus,Standard_E20d_v4,reserved_1y,NA,0.952626,USD,Azure Retail Prices API,2025-12-18T04:44:50.653382 +AZURE,westus,Standard_E20d_v4,reserved_3y,NA,0.609209,USD,Azure Retail Prices API,2025-12-18T04:44:50.653388 +AZURE,westus,Standard_E20d_v4,spot,NA,0.299376,USD,Azure Retail Prices API,2025-12-18T04:44:48.658675 +AZURE,westus,Standard_E20ds_v4,on_demand,NA,1.62,USD,Azure Retail Prices API,2025-12-18T04:44:48.663784 +AZURE,westus,Standard_E20ds_v4,reserved_1y,NA,0.952626,USD,Azure Retail Prices API,2025-12-18T04:44:50.654341 +AZURE,westus,Standard_E20ds_v4,reserved_3y,NA,0.609209,USD,Azure Retail Prices API,2025-12-18T04:44:50.654344 +AZURE,westus,Standard_E20ds_v4,spot,NA,0.299376,USD,Azure Retail Prices API,2025-12-18T04:44:48.658526 +AZURE,westus,Standard_E20ds_v5,on_demand,NA,1.62,USD,Azure Retail Prices API,2025-12-18T04:44:48.664461 +AZURE,westus,Standard_E20ds_v5,reserved_1y,NA,0.955822,USD,Azure Retail Prices API,2025-12-18T04:44:50.654839 +AZURE,westus,Standard_E20ds_v5,reserved_3y,NA,0.615601,USD,Azure Retail Prices API,2025-12-18T04:44:50.654842 +AZURE,westus,Standard_E20ds_v5,spot,NA,0.299376,USD,Azure Retail Prices API,2025-12-18T04:44:48.663957 +AZURE,westus,Standard_E20ds_v6,on_demand,NA,1.817,USD,Azure Retail Prices API,2025-12-18T04:44:48.658315 +AZURE,westus,Standard_E20ds_v6,reserved_1y,NA,1.12637,USD,Azure Retail Prices API,2025-12-18T04:44:50.653354 +AZURE,westus,Standard_E20ds_v6,reserved_3y,NA,0.708562,USD,Azure Retail Prices API,2025-12-18T04:44:50.653356 +AZURE,westus,Standard_E20ds_v6,spot,NA,0.335782,USD,Azure Retail Prices API,2025-12-18T04:44:48.664508 +AZURE,westus,Standard_E20s_v4,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:44:48.663549 +AZURE,westus,Standard_E20s_v4,reserved_1y,NA,0.823059,USD,Azure Retail Prices API,2025-12-18T04:44:50.654172 +AZURE,westus,Standard_E20s_v4,reserved_3y,NA,0.526446,USD,Azure Retail Prices API,2025-12-18T04:44:50.654175 +AZURE,westus,Standard_E20s_v4,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:44:48.658250 +AZURE,westus,Standard_E20s_v5,on_demand,NA,1.4,USD,Azure Retail Prices API,2025-12-18T04:44:48.664255 +AZURE,westus,Standard_E20s_v5,reserved_1y,NA,0.826027,USD,Azure Retail Prices API,2025-12-18T04:44:50.654730 +AZURE,westus,Standard_E20s_v5,reserved_3y,NA,0.517998,USD,Azure Retail Prices API,2025-12-18T04:44:50.654733 +AZURE,westus,Standard_E20s_v5,spot,NA,0.25872,USD,Azure Retail Prices API,2025-12-18T04:44:48.658057 +AZURE,westus,Standard_E2_v3,on_demand,NA,0.148,USD,Azure Retail Prices API,2025-12-18T04:44:48.663279 +AZURE,westus,Standard_E2_v3,reserved_1y,NA,0.0871,USD,Azure Retail Prices API,2025-12-18T04:44:50.653967 +AZURE,westus,Standard_E2_v3,reserved_3y,NA,0.055708,USD,Azure Retail Prices API,2025-12-18T04:44:50.653970 +AZURE,westus,Standard_E2_v3,spot,NA,0.02735,USD,Azure Retail Prices API,2025-12-18T04:44:48.664765 +AZURE,westus,Standard_E2ads_v6,on_demand,NA,0.17,USD,Azure Retail Prices API,2025-12-18T04:44:48.658917 +AZURE,westus,Standard_E2ads_v6,reserved_1y,NA,0.100571,USD,Azure Retail Prices API,2025-12-18T04:44:50.653753 +AZURE,westus,Standard_E2ads_v6,reserved_3y,NA,0.064764,USD,Azure Retail Prices API,2025-12-18T04:44:50.653755 +AZURE,westus,Standard_E2ads_v6,spot,NA,0.031416,USD,Azure Retail Prices API,2025-12-18T04:44:48.658739 +AZURE,westus,Standard_E2ds_v5,on_demand,NA,0.162,USD,Azure Retail Prices API,2025-12-18T04:44:48.658876 +AZURE,westus,Standard_E2ds_v5,reserved_1y,NA,0.095548,USD,Azure Retail Prices API,2025-12-18T04:44:50.653728 +AZURE,westus,Standard_E2ds_v5,reserved_3y,NA,0.061568,USD,Azure Retail Prices API,2025-12-18T04:44:50.653734 +AZURE,westus,Standard_E2ds_v5,spot,NA,0.029938,USD,Azure Retail Prices API,2025-12-18T04:44:48.664798 +AZURE,westus,Standard_E2ds_v6,on_demand,NA,0.182,USD,Azure Retail Prices API,2025-12-18T04:44:48.663309 +AZURE,westus,Standard_E2ds_v6,reserved_1y,NA,0.112671,USD,Azure Retail Prices API,2025-12-18T04:44:50.654006 +AZURE,westus,Standard_E2ds_v6,reserved_3y,NA,0.070852,USD,Azure Retail Prices API,2025-12-18T04:44:50.654009 +AZURE,westus,Standard_E2ds_v6,spot,NA,0.033634,USD,Azure Retail Prices API,2025-12-18T04:44:48.658660 +AZURE,westus,Standard_E2pds_v6,on_demand,NA,0.137,USD,Azure Retail Prices API,2025-12-18T04:44:48.664411 +AZURE,westus,Standard_E2pds_v6,reserved_1y,NA,0.080594,USD,Azure Retail Prices API,2025-12-18T04:44:50.654812 +AZURE,westus,Standard_E2pds_v6,reserved_3y,NA,0.051903,USD,Azure Retail Prices API,2025-12-18T04:44:50.654815 +AZURE,westus,Standard_E2pds_v6,spot,NA,0.025345,USD,Azure Retail Prices API,2025-12-18T04:44:48.663249 +AZURE,westus,Standard_E32_v3,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:44:48.663963 +AZURE,westus,Standard_E32_v3,reserved_1y,NA,1.394292,USD,Azure Retail Prices API,2025-12-18T04:44:50.654508 +AZURE,westus,Standard_E32_v3,reserved_3y,NA,0.891553,USD,Azure Retail Prices API,2025-12-18T04:44:50.654511 +AZURE,westus,Standard_E32_v3,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:44:48.658232 +AZURE,westus,Standard_E32a_v4,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:44:48.663820 +AZURE,westus,Standard_E32a_v4,reserved_1y,NA,1.317123,USD,Azure Retail Prices API,2025-12-18T04:44:50.654367 +AZURE,westus,Standard_E32a_v4,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:44:50.654370 +AZURE,westus,Standard_E32a_v4,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:44:48.658744 +AZURE,westus,Standard_E32ads_v5,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:44:48.664733 +AZURE,westus,Standard_E32ads_v5,reserved_1y,NA,1.397146,USD,Azure Retail Prices API,2025-12-18T04:44:50.654998 +AZURE,westus,Standard_E32ads_v5,reserved_3y,NA,0.899848,USD,Azure Retail Prices API,2025-12-18T04:44:50.655001 +AZURE,westus,Standard_E32ads_v5,spot,NA,0.437606,USD,Azure Retail Prices API,2025-12-18T04:44:48.664093 +AZURE,westus,Standard_E32ads_v6,on_demand,NA,2.726,USD,Azure Retail Prices API,2025-12-18T04:44:48.663419 +AZURE,westus,Standard_E32ads_v6,reserved_1y,NA,1.608562,USD,Azure Retail Prices API,2025-12-18T04:44:50.654086 +AZURE,westus,Standard_E32ads_v6,reserved_3y,NA,1.036035,USD,Azure Retail Prices API,2025-12-18T04:44:50.654088 +AZURE,westus,Standard_E32ads_v6,spot,NA,0.503765,USD,Azure Retail Prices API,2025-12-18T04:44:48.664420 +AZURE,westus,Standard_E32as_v4,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:44:48.663882 +AZURE,westus,Standard_E32as_v4,reserved_1y,NA,1.317123,USD,Azure Retail Prices API,2025-12-18T04:44:50.654410 +AZURE,westus,Standard_E32as_v4,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:44:50.654414 +AZURE,westus,Standard_E32as_v4,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:44:48.658355 +AZURE,westus,Standard_E32as_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:48.658490 +AZURE,westus,Standard_E32as_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:44:50.653486 +AZURE,westus,Standard_E32as_v5,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:44:50.653491 +AZURE,westus,Standard_E32as_v5,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:48.664233 +AZURE,westus,Standard_E32d_v4,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:44:48.663230 +AZURE,westus,Standard_E32d_v4,reserved_1y,NA,1.524087,USD,Azure Retail Prices API,2025-12-18T04:44:50.653934 +AZURE,westus,Standard_E32d_v4,reserved_3y,NA,0.974581,USD,Azure Retail Prices API,2025-12-18T04:44:50.653937 +AZURE,westus,Standard_E32d_v4,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:44:48.664778 +AZURE,westus,Standard_E32ds_v4,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:44:48.663870 +AZURE,westus,Standard_E32ds_v4,reserved_1y,NA,1.524087,USD,Azure Retail Prices API,2025-12-18T04:44:50.654398 +AZURE,westus,Standard_E32ds_v4,reserved_3y,NA,0.974581,USD,Azure Retail Prices API,2025-12-18T04:44:50.654401 +AZURE,westus,Standard_E32ds_v4,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:44:48.663392 +AZURE,westus,Standard_E32ds_v5,on_demand,NA,2.592,USD,Azure Retail Prices API,2025-12-18T04:44:48.663326 +AZURE,westus,Standard_E32ds_v5,reserved_1y,NA,1.529224,USD,Azure Retail Prices API,2025-12-18T04:44:50.654034 +AZURE,westus,Standard_E32ds_v5,reserved_3y,NA,0.98497,USD,Azure Retail Prices API,2025-12-18T04:44:50.654036 +AZURE,westus,Standard_E32ds_v5,spot,NA,0.479002,USD,Azure Retail Prices API,2025-12-18T04:44:48.658198 +AZURE,westus,Standard_E32ds_v6,on_demand,NA,2.907,USD,Azure Retail Prices API,2025-12-18T04:44:48.664607 +AZURE,westus,Standard_E32ds_v6,reserved_1y,NA,1.802283,USD,Azure Retail Prices API,2025-12-18T04:44:50.654955 +AZURE,westus,Standard_E32ds_v6,reserved_3y,NA,1.133676,USD,Azure Retail Prices API,2025-12-18T04:44:50.654958 +AZURE,westus,Standard_E32ds_v6,spot,NA,0.537214,USD,Azure Retail Prices API,2025-12-18T04:44:48.663937 +AZURE,westus,Standard_E32pds_v6,on_demand,NA,2.186,USD,Azure Retail Prices API,2025-12-18T04:44:48.664148 +AZURE,westus,Standard_E32pds_v6,reserved_1y,NA,1.289498,USD,Azure Retail Prices API,2025-12-18T04:44:50.654651 +AZURE,westus,Standard_E32pds_v6,reserved_3y,NA,0.830518,USD,Azure Retail Prices API,2025-12-18T04:44:50.654654 +AZURE,westus,Standard_E32pds_v6,spot,NA,0.40441,USD,Azure Retail Prices API,2025-12-18T04:44:48.658402 +AZURE,westus,Standard_E32ps_v6,on_demand,NA,1.725,USD,Azure Retail Prices API,2025-12-18T04:44:48.663464 +AZURE,westus,Standard_E32ps_v6,reserved_1y,NA,1.01758,USD,Azure Retail Prices API,2025-12-18T04:44:50.654120 +AZURE,westus,Standard_E32ps_v6,reserved_3y,NA,0.655441,USD,Azure Retail Prices API,2025-12-18T04:44:50.654123 +AZURE,westus,Standard_E32ps_v6,spot,NA,0.319125,USD,Azure Retail Prices API,2025-12-18T04:44:48.663690 +AZURE,westus,Standard_E32s_v3,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:44:48.658333 +AZURE,westus,Standard_E32s_v3,reserved_1y,NA,1.394292,USD,Azure Retail Prices API,2025-12-18T04:44:50.653371 +AZURE,westus,Standard_E32s_v3,reserved_3y,NA,0.891553,USD,Azure Retail Prices API,2025-12-18T04:44:50.653374 +AZURE,westus,Standard_E32s_v3,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:44:48.663227 +AZURE,westus,Standard_E32s_v4,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:44:48.658784 +AZURE,westus,Standard_E32s_v4,reserved_1y,NA,1.317123,USD,Azure Retail Prices API,2025-12-18T04:44:50.653655 +AZURE,westus,Standard_E32s_v4,reserved_3y,NA,0.842237,USD,Azure Retail Prices API,2025-12-18T04:44:50.653660 +AZURE,westus,Standard_E32s_v4,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:44:48.658779 +AZURE,westus,Standard_E32s_v5,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:44:48.658545 +AZURE,westus,Standard_E32s_v5,reserved_1y,NA,1.321575,USD,Azure Retail Prices API,2025-12-18T04:44:50.653539 +AZURE,westus,Standard_E32s_v5,reserved_3y,NA,0.828805,USD,Azure Retail Prices API,2025-12-18T04:44:50.653542 +AZURE,westus,Standard_E32s_v5,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:44:48.664812 +AZURE,westus,Standard_E48a_v4,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:44:48.664019 +AZURE,westus,Standard_E48a_v4,reserved_1y,NA,1.975685,USD,Azure Retail Prices API,2025-12-18T04:44:50.654563 +AZURE,westus,Standard_E48a_v4,reserved_3y,NA,1.263356,USD,Azure Retail Prices API,2025-12-18T04:44:50.654566 +AZURE,westus,Standard_E48a_v4,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:44:48.658907 +AZURE,westus,Standard_E48ads_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:44:48.658179 +AZURE,westus,Standard_E48ads_v5,reserved_1y,NA,2.095662,USD,Azure Retail Prices API,2025-12-18T04:44:50.653281 +AZURE,westus,Standard_E48ads_v5,reserved_3y,NA,1.349772,USD,Azure Retail Prices API,2025-12-18T04:44:50.653284 +AZURE,westus,Standard_E48ads_v5,spot,NA,0.65641,USD,Azure Retail Prices API,2025-12-18T04:44:48.664154 +AZURE,westus,Standard_E48ads_v6,on_demand,NA,4.09,USD,Azure Retail Prices API,2025-12-18T04:44:48.663934 +AZURE,westus,Standard_E48ads_v6,reserved_1y,NA,2.4129,USD,Azure Retail Prices API,2025-12-18T04:44:50.654465 +AZURE,westus,Standard_E48ads_v6,reserved_3y,NA,1.554033,USD,Azure Retail Prices API,2025-12-18T04:44:50.654468 +AZURE,westus,Standard_E48ads_v6,spot,NA,0.755832,USD,Azure Retail Prices API,2025-12-18T04:44:48.658775 +AZURE,westus,Standard_E48as_v4,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:44:48.664373 +AZURE,westus,Standard_E48as_v4,reserved_1y,NA,1.975685,USD,Azure Retail Prices API,2025-12-18T04:44:50.654790 +AZURE,westus,Standard_E48as_v4,reserved_3y,NA,1.263356,USD,Azure Retail Prices API,2025-12-18T04:44:50.654793 +AZURE,westus,Standard_E48as_v4,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:44:48.658984 +AZURE,westus,Standard_E48as_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:48.664326 +AZURE,westus,Standard_E48as_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:44:50.654768 +AZURE,westus,Standard_E48as_v5,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:44:50.654771 +AZURE,westus,Standard_E48as_v5,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:44:48.658554 +AZURE,westus,Standard_E48d_v4,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:44:48.658793 +AZURE,westus,Standard_E48d_v4,reserved_1y,NA,2.286187,USD,Azure Retail Prices API,2025-12-18T04:44:50.653666 +AZURE,westus,Standard_E48d_v4,reserved_3y,NA,1.461872,USD,Azure Retail Prices API,2025-12-18T04:44:50.653669 +AZURE,westus,Standard_E48d_v4,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:44:48.663771 +AZURE,westus,Standard_E48ds_v4,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:44:48.663184 +AZURE,westus,Standard_E48ds_v4,reserved_1y,NA,2.286187,USD,Azure Retail Prices API,2025-12-18T04:44:50.653906 +AZURE,westus,Standard_E48ds_v4,reserved_3y,NA,1.461872,USD,Azure Retail Prices API,2025-12-18T04:44:50.653909 +AZURE,westus,Standard_E48ds_v4,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:44:48.664288 +AZURE,westus,Standard_E48ds_v5,on_demand,NA,3.888,USD,Azure Retail Prices API,2025-12-18T04:44:48.664713 +AZURE,westus,Standard_E48ds_v5,reserved_1y,NA,2.29395,USD,Azure Retail Prices API,2025-12-18T04:44:50.654992 +AZURE,westus,Standard_E48ds_v5,reserved_3y,NA,1.477435,USD,Azure Retail Prices API,2025-12-18T04:44:50.654995 +AZURE,westus,Standard_E48ds_v5,spot,NA,0.718502,USD,Azure Retail Prices API,2025-12-18T04:44:48.663209 +AZURE,westus,Standard_E48ds_v6,on_demand,NA,4.36,USD,Azure Retail Prices API,2025-12-18T04:44:48.658193 +AZURE,westus,Standard_E48ds_v6,reserved_1y,NA,2.703425,USD,Azure Retail Prices API,2025-12-18T04:44:50.653287 +AZURE,westus,Standard_E48ds_v6,reserved_3y,NA,1.700533,USD,Azure Retail Prices API,2025-12-18T04:44:50.653290 +AZURE,westus,Standard_E48ds_v6,spot,NA,0.805728,USD,Azure Retail Prices API,2025-12-18T04:44:48.658753 +AZURE,westus,Standard_E48pds_v6,on_demand,NA,3.278,USD,Azure Retail Prices API,2025-12-18T04:44:48.658458 +AZURE,westus,Standard_E48pds_v6,reserved_1y,NA,1.934247,USD,Azure Retail Prices API,2025-12-18T04:44:50.653458 +AZURE,westus,Standard_E48pds_v6,reserved_3y,NA,1.245776,USD,Azure Retail Prices API,2025-12-18T04:44:50.653461 +AZURE,westus,Standard_E48pds_v6,spot,NA,0.60643,USD,Azure Retail Prices API,2025-12-18T04:44:48.664642 +AZURE,westus,Standard_E48ps_v6,on_demand,NA,2.587,USD,Azure Retail Prices API,2025-12-18T04:44:48.663355 +AZURE,westus,Standard_E48ps_v6,reserved_1y,NA,1.526484,USD,Azure Retail Prices API,2025-12-18T04:44:50.654044 +AZURE,westus,Standard_E48ps_v6,reserved_3y,NA,0.983143,USD,Azure Retail Prices API,2025-12-18T04:44:50.654047 +AZURE,westus,Standard_E48ps_v6,spot,NA,0.478595,USD,Azure Retail Prices API,2025-12-18T04:44:48.664203 +AZURE,westus,Standard_E48s_v4,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:44:48.658596 +AZURE,westus,Standard_E48s_v4,reserved_1y,NA,1.975685,USD,Azure Retail Prices API,2025-12-18T04:44:50.653557 +AZURE,westus,Standard_E48s_v4,reserved_3y,NA,1.263356,USD,Azure Retail Prices API,2025-12-18T04:44:50.653560 +AZURE,westus,Standard_E48s_v4,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:44:48.663592 +AZURE,westus,Standard_E48s_v5,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:44:48.663371 +AZURE,westus,Standard_E48s_v5,reserved_1y,NA,1.98242,USD,Azure Retail Prices API,2025-12-18T04:44:50.654056 +AZURE,westus,Standard_E48s_v5,reserved_3y,NA,1.243189,USD,Azure Retail Prices API,2025-12-18T04:44:50.654059 +AZURE,westus,Standard_E48s_v5,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:44:48.658725 +AZURE,westus,Standard_E4_v3,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:44:48.664031 +AZURE,westus,Standard_E4_v3,reserved_1y,NA,0.174315,USD,Azure Retail Prices API,2025-12-18T04:44:50.654575 +AZURE,westus,Standard_E4_v3,reserved_3y,NA,0.111454,USD,Azure Retail Prices API,2025-12-18T04:44:50.654579 +AZURE,westus,Standard_E4_v3,spot,NA,0.054701,USD,Azure Retail Prices API,2025-12-18T04:44:48.663707 +AZURE,westus,Standard_E4a_v4,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:44:48.664582 +AZURE,westus,Standard_E4a_v4,reserved_1y,NA,0.164612,USD,Azure Retail Prices API,2025-12-18T04:44:50.654934 +AZURE,westus,Standard_E4a_v4,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:44:50.654936 +AZURE,westus,Standard_E4a_v4,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:44:48.658766 +AZURE,westus,Standard_E4ads_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:44:48.664394 +AZURE,westus,Standard_E4ads_v5,reserved_1y,NA,0.174658,USD,Azure Retail Prices API,2025-12-18T04:44:50.654796 +AZURE,westus,Standard_E4ads_v5,reserved_3y,NA,0.112481,USD,Azure Retail Prices API,2025-12-18T04:44:50.654798 +AZURE,westus,Standard_E4ads_v5,spot,NA,0.054701,USD,Azure Retail Prices API,2025-12-18T04:44:48.663752 +AZURE,westus,Standard_E4ads_v6,on_demand,NA,0.341,USD,Azure Retail Prices API,2025-12-18T04:44:48.658223 +AZURE,westus,Standard_E4ads_v6,reserved_1y,NA,0.201027,USD,Azure Retail Prices API,2025-12-18T04:44:50.653299 +AZURE,westus,Standard_E4ads_v6,reserved_3y,NA,0.12949,USD,Azure Retail Prices API,2025-12-18T04:44:50.653302 +AZURE,westus,Standard_E4ads_v6,spot,NA,0.063017,USD,Azure Retail Prices API,2025-12-18T04:44:48.658241 +AZURE,westus,Standard_E4as_v4,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:44:48.663286 +AZURE,westus,Standard_E4as_v4,reserved_1y,NA,0.164612,USD,Azure Retail Prices API,2025-12-18T04:44:50.653978 +AZURE,westus,Standard_E4as_v4,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:44:50.653981 +AZURE,westus,Standard_E4as_v4,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:44:48.658803 +AZURE,westus,Standard_E4as_v5,on_demand,NA,0.436,USD,Azure Retail Prices API,2025-12-18T04:44:48.658788 +AZURE,westus,Standard_E4as_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:44:50.654602 +AZURE,westus,Standard_E4as_v5,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:44:50.654605 +AZURE,westus,Standard_E4as_v5,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:44:48.658467 +AZURE,westus,Standard_E4d_v4,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:44:48.658397 +AZURE,westus,Standard_E4d_v4,reserved_1y,NA,0.190525,USD,Azure Retail Prices API,2025-12-18T04:44:50.653401 +AZURE,westus,Standard_E4d_v4,reserved_3y,NA,0.121842,USD,Azure Retail Prices API,2025-12-18T04:44:50.653408 +AZURE,westus,Standard_E4d_v4,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:44:48.658268 +AZURE,westus,Standard_E4ds_v4,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:44:48.664297 +AZURE,westus,Standard_E4ds_v4,reserved_1y,NA,0.190525,USD,Azure Retail Prices API,2025-12-18T04:44:50.654747 +AZURE,westus,Standard_E4ds_v4,reserved_3y,NA,0.121842,USD,Azure Retail Prices API,2025-12-18T04:44:50.654749 +AZURE,westus,Standard_E4ds_v4,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:44:48.663295 +AZURE,westus,Standard_E4ds_v5,on_demand,NA,0.324,USD,Azure Retail Prices API,2025-12-18T04:44:48.663266 +AZURE,westus,Standard_E4ds_v5,reserved_1y,NA,0.19121,USD,Azure Retail Prices API,2025-12-18T04:44:50.653956 +AZURE,westus,Standard_E4ds_v5,reserved_3y,NA,0.123135,USD,Azure Retail Prices API,2025-12-18T04:44:50.653959 +AZURE,westus,Standard_E4ds_v5,spot,NA,0.059875,USD,Azure Retail Prices API,2025-12-18T04:44:48.664431 +AZURE,westus,Standard_E4ds_v6,on_demand,NA,0.363,USD,Azure Retail Prices API,2025-12-18T04:44:48.658892 +AZURE,westus,Standard_E4ds_v6,reserved_1y,NA,0.225228,USD,Azure Retail Prices API,2025-12-18T04:44:50.653739 +AZURE,westus,Standard_E4ds_v6,reserved_3y,NA,0.141705,USD,Azure Retail Prices API,2025-12-18T04:44:50.653744 +AZURE,westus,Standard_E4ds_v6,spot,NA,0.067082,USD,Azure Retail Prices API,2025-12-18T04:44:48.663332 +AZURE,westus,Standard_E4pds_v6,on_demand,NA,0.273,USD,Azure Retail Prices API,2025-12-18T04:44:48.664065 +AZURE,westus,Standard_E4pds_v6,reserved_1y,NA,0.161187,USD,Azure Retail Prices API,2025-12-18T04:44:50.654608 +AZURE,westus,Standard_E4pds_v6,reserved_3y,NA,0.103805,USD,Azure Retail Prices API,2025-12-18T04:44:50.654611 +AZURE,westus,Standard_E4pds_v6,spot,NA,0.050505,USD,Azure Retail Prices API,2025-12-18T04:44:48.664109 +AZURE,westus,Standard_E4ps_v6,on_demand,NA,0.216,USD,Azure Retail Prices API,2025-12-18T04:44:48.658716 +AZURE,westus,Standard_E4ps_v6,reserved_1y,NA,0.127169,USD,Azure Retail Prices API,2025-12-18T04:44:50.653634 +AZURE,westus,Standard_E4ps_v6,reserved_3y,NA,0.081925,USD,Azure Retail Prices API,2025-12-18T04:44:50.653637 +AZURE,westus,Standard_E4ps_v6,spot,NA,0.03996,USD,Azure Retail Prices API,2025-12-18T04:44:48.663539 +AZURE,westus,Standard_E4s_v4,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:44:48.663906 +AZURE,westus,Standard_E4s_v4,reserved_1y,NA,0.164612,USD,Azure Retail Prices API,2025-12-18T04:44:50.654423 +AZURE,westus,Standard_E4s_v4,reserved_3y,NA,0.105289,USD,Azure Retail Prices API,2025-12-18T04:44:50.654426 +AZURE,westus,Standard_E4s_v4,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:44:48.658246 +AZURE,westus,Standard_E4s_v5,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:44:48.663860 +AZURE,westus,Standard_E4s_v5,reserved_1y,NA,0.165183,USD,Azure Retail Prices API,2025-12-18T04:44:50.654391 +AZURE,westus,Standard_E4s_v5,reserved_3y,NA,0.103615,USD,Azure Retail Prices API,2025-12-18T04:44:50.654395 +AZURE,westus,Standard_E4s_v5,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:44:48.664528 +AZURE,westus,Standard_E64_v3,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:48.658213 +AZURE,westus,Standard_E64_v3,reserved_1y,NA,2.628196,USD,Azure Retail Prices API,2025-12-18T04:44:50.653293 +AZURE,westus,Standard_E64_v3,reserved_3y,NA,1.680594,USD,Azure Retail Prices API,2025-12-18T04:44:50.653296 +AZURE,westus,Standard_E64_v3,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:44:48.663879 +AZURE,westus,Standard_E64a_v4,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:44:48.658407 +AZURE,westus,Standard_E64a_v4,reserved_1y,NA,2.634247,USD,Azure Retail Prices API,2025-12-18T04:44:50.653413 +AZURE,westus,Standard_E64a_v4,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:44:50.653417 +AZURE,westus,Standard_E64a_v4,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:44:48.658416 +AZURE,westus,Standard_E64ads_v5,on_demand,NA,7.68,USD,Azure Retail Prices API,2025-12-18T04:44:48.663602 +AZURE,westus,Standard_E64ads_v5,reserved_1y,NA,2.794292,USD,Azure Retail Prices API,2025-12-18T04:44:50.654379 +AZURE,westus,Standard_E64ads_v5,reserved_3y,NA,1.799696,USD,Azure Retail Prices API,2025-12-18T04:44:50.654382 +AZURE,westus,Standard_E64ads_v5,spot,NA,0.875213,USD,Azure Retail Prices API,2025-12-18T04:44:48.664028 +AZURE,westus,Standard_E64ads_v6,on_demand,NA,5.453,USD,Azure Retail Prices API,2025-12-18T04:44:48.664022 +AZURE,westus,Standard_E64ads_v6,reserved_1y,NA,3.217123,USD,Azure Retail Prices API,2025-12-18T04:44:50.654569 +AZURE,westus,Standard_E64ads_v6,reserved_3y,NA,2.07207,USD,Azure Retail Prices API,2025-12-18T04:44:50.654572 +AZURE,westus,Standard_E64ads_v6,spot,NA,1.007714,USD,Azure Retail Prices API,2025-12-18T04:44:48.663581 +AZURE,westus,Standard_E64as_v4,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:44:48.658540 +AZURE,westus,Standard_E64as_v4,reserved_1y,NA,2.634247,USD,Azure Retail Prices API,2025-12-18T04:44:50.653532 +AZURE,westus,Standard_E64as_v4,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:44:50.653535 +AZURE,westus,Standard_E64as_v4,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:44:48.664699 +AZURE,westus,Standard_E64as_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:48.658117 +AZURE,westus,Standard_E64as_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:44:50.653238 +AZURE,westus,Standard_E64as_v5,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:44:50.653243 +AZURE,westus,Standard_E64as_v5,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:44:48.663262 +AZURE,westus,Standard_E64d_v4,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:44:48.663719 +AZURE,westus,Standard_E64d_v4,reserved_1y,NA,3.048174,USD,Azure Retail Prices API,2025-12-18T04:44:50.654304 +AZURE,westus,Standard_E64d_v4,reserved_3y,NA,1.949201,USD,Azure Retail Prices API,2025-12-18T04:44:50.654307 +AZURE,westus,Standard_E64d_v4,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:44:48.663837 +AZURE,westus,Standard_E64ds_v4,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:44:48.663713 +AZURE,westus,Standard_E64ds_v4,reserved_1y,NA,3.048174,USD,Azure Retail Prices API,2025-12-18T04:44:50.654291 +AZURE,westus,Standard_E64ds_v4,reserved_3y,NA,1.949201,USD,Azure Retail Prices API,2025-12-18T04:44:50.654294 +AZURE,westus,Standard_E64ds_v4,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:44:48.663335 +AZURE,westus,Standard_E64ds_v5,on_demand,NA,5.184,USD,Azure Retail Prices API,2025-12-18T04:44:48.659010 +AZURE,westus,Standard_E64ds_v5,reserved_1y,NA,3.058562,USD,Azure Retail Prices API,2025-12-18T04:44:50.653830 +AZURE,westus,Standard_E64ds_v5,reserved_3y,NA,1.969901,USD,Azure Retail Prices API,2025-12-18T04:44:50.653837 +AZURE,westus,Standard_E64ds_v5,spot,NA,0.958003,USD,Azure Retail Prices API,2025-12-18T04:44:48.658996 +AZURE,westus,Standard_E64ds_v6,on_demand,NA,5.814,USD,Azure Retail Prices API,2025-12-18T04:44:48.663481 +AZURE,westus,Standard_E64ds_v6,reserved_1y,NA,3.604566,USD,Azure Retail Prices API,2025-12-18T04:44:50.654131 +AZURE,westus,Standard_E64ds_v6,reserved_3y,NA,2.267352,USD,Azure Retail Prices API,2025-12-18T04:44:50.654134 +AZURE,westus,Standard_E64ds_v6,spot,NA,1.074427,USD,Azure Retail Prices API,2025-12-18T04:44:48.658582 +AZURE,westus,Standard_E64pds_v6,on_demand,NA,4.371,USD,Azure Retail Prices API,2025-12-18T04:44:48.663649 +AZURE,westus,Standard_E64pds_v6,reserved_1y,NA,2.578995,USD,Azure Retail Prices API,2025-12-18T04:44:50.654235 +AZURE,westus,Standard_E64pds_v6,reserved_3y,NA,1.661073,USD,Azure Retail Prices API,2025-12-18T04:44:50.654238 +AZURE,westus,Standard_E64pds_v6,spot,NA,0.808635,USD,Azure Retail Prices API,2025-12-18T04:44:48.663680 +AZURE,westus,Standard_E64ps_v6,on_demand,NA,3.45,USD,Azure Retail Prices API,2025-12-18T04:44:48.659034 +AZURE,westus,Standard_E64ps_v6,reserved_1y,NA,2.035274,USD,Azure Retail Prices API,2025-12-18T04:44:50.653854 +AZURE,westus,Standard_E64ps_v6,reserved_3y,NA,1.310845,USD,Azure Retail Prices API,2025-12-18T04:44:50.653857 +AZURE,westus,Standard_E64ps_v6,spot,NA,0.63825,USD,Azure Retail Prices API,2025-12-18T04:44:48.663998 +AZURE,westus,Standard_E64s_v3,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:48.664576 +AZURE,westus,Standard_E64s_v3,reserved_1y,NA,2.628196,USD,Azure Retail Prices API,2025-12-18T04:44:50.654928 +AZURE,westus,Standard_E64s_v3,reserved_3y,NA,1.680594,USD,Azure Retail Prices API,2025-12-18T04:44:50.654931 +AZURE,westus,Standard_E64s_v3,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:44:48.658897 +AZURE,westus,Standard_E64s_v4,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:44:48.664035 +AZURE,westus,Standard_E64s_v4,reserved_1y,NA,2.634247,USD,Azure Retail Prices API,2025-12-18T04:44:50.654582 +AZURE,westus,Standard_E64s_v4,reserved_3y,NA,1.684475,USD,Azure Retail Prices API,2025-12-18T04:44:50.654585 +AZURE,westus,Standard_E64s_v4,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:44:48.664388 +AZURE,westus,Standard_E64s_v5,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:44:48.664634 +AZURE,westus,Standard_E64s_v5,reserved_1y,NA,2.643151,USD,Azure Retail Prices API,2025-12-18T04:44:50.654971 +AZURE,westus,Standard_E64s_v5,reserved_3y,NA,1.65761,USD,Azure Retail Prices API,2025-12-18T04:44:50.654974 +AZURE,westus,Standard_E64s_v5,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:44:48.663885 +AZURE,westus,Standard_E80ids_v4,on_demand,NA,6.48,USD,Azure Retail Prices API,2025-12-18T04:44:48.663988 +AZURE,westus,Standard_E80ids_v4,reserved_1y,NA,3.810502,USD,Azure Retail Prices API,2025-12-18T04:44:50.654526 +AZURE,westus,Standard_E80ids_v4,reserved_3y,NA,2.436834,USD,Azure Retail Prices API,2025-12-18T04:44:50.654529 +AZURE,westus,Standard_E80ids_v4,spot,NA,1.197504,USD,Azure Retail Prices API,2025-12-18T04:44:48.658228 +AZURE,westus,Standard_E80is_v4,on_demand,NA,5.599,USD,Azure Retail Prices API,2025-12-18T04:44:48.658973 +AZURE,westus,Standard_E80is_v4,reserved_1y,NA,3.292237,USD,Azure Retail Prices API,2025-12-18T04:44:50.653793 +AZURE,westus,Standard_E80is_v4,reserved_3y,NA,2.105784,USD,Azure Retail Prices API,2025-12-18T04:44:50.653798 +AZURE,westus,Standard_E80is_v4,spot,NA,1.034695,USD,Azure Retail Prices API,2025-12-18T04:44:48.663798 +AZURE,westus,Standard_E8_v3,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:44:48.664336 +AZURE,westus,Standard_E8_v3,reserved_1y,NA,0.348516,USD,Azure Retail Prices API,2025-12-18T04:44:50.654774 +AZURE,westus,Standard_E8_v3,reserved_3y,NA,0.222907,USD,Azure Retail Prices API,2025-12-18T04:44:50.654777 +AZURE,westus,Standard_E8_v3,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:44:48.664503 +AZURE,westus,Standard_E8a_v4,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:44:48.658278 +AZURE,westus,Standard_E8a_v4,reserved_1y,NA,0.329224,USD,Azure Retail Prices API,2025-12-18T04:44:50.653305 +AZURE,westus,Standard_E8a_v4,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:44:50.653308 +AZURE,westus,Standard_E8a_v4,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:44:48.664680 +AZURE,westus,Standard_E8ads_v5,on_demand,NA,0.96,USD,Azure Retail Prices API,2025-12-18T04:44:48.658601 +AZURE,westus,Standard_E8ads_v5,reserved_1y,NA,0.349315,USD,Azure Retail Prices API,2025-12-18T04:44:50.654022 +AZURE,westus,Standard_E8ads_v5,reserved_3y,NA,0.224962,USD,Azure Retail Prices API,2025-12-18T04:44:50.654025 +AZURE,westus,Standard_E8ads_v5,spot,NA,0.109402,USD,Azure Retail Prices API,2025-12-18T04:44:48.658374 +AZURE,westus,Standard_E8ads_v6,on_demand,NA,0.682,USD,Azure Retail Prices API,2025-12-18T04:44:48.663206 +AZURE,westus,Standard_E8ads_v6,reserved_1y,NA,0.402169,USD,Azure Retail Prices API,2025-12-18T04:44:50.653918 +AZURE,westus,Standard_E8ads_v6,reserved_3y,NA,0.259018,USD,Azure Retail Prices API,2025-12-18T04:44:50.653920 +AZURE,westus,Standard_E8ads_v6,spot,NA,0.126034,USD,Azure Retail Prices API,2025-12-18T04:44:48.663659 +AZURE,westus,Standard_E8as_v4,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:44:48.658922 +AZURE,westus,Standard_E8as_v4,reserved_1y,NA,0.329224,USD,Azure Retail Prices API,2025-12-18T04:44:50.653758 +AZURE,westus,Standard_E8as_v4,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:44:50.653761 +AZURE,westus,Standard_E8as_v4,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:44:48.663513 +AZURE,westus,Standard_E8as_v5,on_demand,NA,0.872,USD,Azure Retail Prices API,2025-12-18T04:44:48.658157 +AZURE,westus,Standard_E8as_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:44:50.654719 +AZURE,westus,Standard_E8as_v5,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:44:50.654722 +AZURE,westus,Standard_E8as_v5,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:48.663367 +AZURE,westus,Standard_E8d_v4,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:44:48.663627 +AZURE,westus,Standard_E8d_v4,reserved_1y,NA,0.38105,USD,Azure Retail Prices API,2025-12-18T04:44:50.654216 +AZURE,westus,Standard_E8d_v4,reserved_3y,NA,0.243645,USD,Azure Retail Prices API,2025-12-18T04:44:50.654219 +AZURE,westus,Standard_E8d_v4,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:44:48.663534 +AZURE,westus,Standard_E8ds_v4,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:44:48.664597 +AZURE,westus,Standard_E8ds_v4,reserved_1y,NA,0.38105,USD,Azure Retail Prices API,2025-12-18T04:44:50.654944 +AZURE,westus,Standard_E8ds_v4,reserved_3y,NA,0.243645,USD,Azure Retail Prices API,2025-12-18T04:44:50.654947 +AZURE,westus,Standard_E8ds_v4,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:44:48.663854 +AZURE,westus,Standard_E8ds_v5,on_demand,NA,0.648,USD,Azure Retail Prices API,2025-12-18T04:44:48.664742 +AZURE,westus,Standard_E8ds_v5,reserved_1y,NA,0.382306,USD,Azure Retail Prices API,2025-12-18T04:44:50.655003 +AZURE,westus,Standard_E8ds_v5,reserved_3y,NA,0.246233,USD,Azure Retail Prices API,2025-12-18T04:44:50.655006 +AZURE,westus,Standard_E8ds_v5,spot,NA,0.11975,USD,Azure Retail Prices API,2025-12-18T04:44:48.658606 +AZURE,westus,Standard_E8ds_v6,on_demand,NA,0.727,USD,Azure Retail Prices API,2025-12-18T04:44:48.663560 +AZURE,westus,Standard_E8ds_v6,reserved_1y,NA,0.450571,USD,Azure Retail Prices API,2025-12-18T04:44:50.654184 +AZURE,westus,Standard_E8ds_v6,reserved_3y,NA,0.283409,USD,Azure Retail Prices API,2025-12-18T04:44:50.654187 +AZURE,westus,Standard_E8ds_v6,spot,NA,0.13435,USD,Azure Retail Prices API,2025-12-18T04:44:48.664675 +AZURE,westus,Standard_E8pds_v6,on_demand,NA,0.546,USD,Azure Retail Prices API,2025-12-18T04:44:48.658168 +AZURE,westus,Standard_E8pds_v6,reserved_1y,NA,0.322374,USD,Azure Retail Prices API,2025-12-18T04:44:50.653275 +AZURE,westus,Standard_E8pds_v6,reserved_3y,NA,0.207648,USD,Azure Retail Prices API,2025-12-18T04:44:50.653278 +AZURE,westus,Standard_E8pds_v6,spot,NA,0.10101,USD,Azure Retail Prices API,2025-12-18T04:44:48.663622 +AZURE,westus,Standard_E8ps_v6,on_demand,NA,0.431,USD,Azure Retail Prices API,2025-12-18T04:44:48.658912 +AZURE,westus,Standard_E8ps_v6,reserved_1y,NA,0.254452,USD,Azure Retail Prices API,2025-12-18T04:44:50.653747 +AZURE,westus,Standard_E8ps_v6,reserved_3y,NA,0.163851,USD,Azure Retail Prices API,2025-12-18T04:44:50.653750 +AZURE,westus,Standard_E8ps_v6,spot,NA,0.079735,USD,Azure Retail Prices API,2025-12-18T04:44:48.663888 +AZURE,westus,Standard_E8s_v3,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:44:48.664051 +AZURE,westus,Standard_E8s_v3,reserved_1y,NA,0.348516,USD,Azure Retail Prices API,2025-12-18T04:44:50.654595 +AZURE,westus,Standard_E8s_v3,reserved_3y,NA,0.222907,USD,Azure Retail Prices API,2025-12-18T04:44:50.654598 +AZURE,westus,Standard_E8s_v3,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:44:48.658835 +AZURE,westus,Standard_E8s_v4,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:44:48.664400 +AZURE,westus,Standard_E8s_v4,reserved_1y,NA,0.329224,USD,Azure Retail Prices API,2025-12-18T04:44:50.654801 +AZURE,westus,Standard_E8s_v4,reserved_3y,NA,0.210578,USD,Azure Retail Prices API,2025-12-18T04:44:50.654804 +AZURE,westus,Standard_E8s_v4,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:44:48.664048 +AZURE,westus,Standard_E8s_v5,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:44:48.664835 +AZURE,westus,Standard_E8s_v5,reserved_1y,NA,0.330365,USD,Azure Retail Prices API,2025-12-18T04:44:50.655104 +AZURE,westus,Standard_E8s_v5,reserved_3y,NA,0.207192,USD,Azure Retail Prices API,2025-12-18T04:44:50.655107 +AZURE,westus,Standard_E8s_v5,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:44:48.663220 +AZURE,westus,Standard_E96a_v4,on_demand,NA,6.72,USD,Azure Retail Prices API,2025-12-18T04:44:48.659020 +AZURE,westus,Standard_E96a_v4,reserved_1y,NA,3.95137,USD,Azure Retail Prices API,2025-12-18T04:44:50.653849 +AZURE,westus,Standard_E96a_v4,reserved_3y,NA,2.526712,USD,Azure Retail Prices API,2025-12-18T04:44:50.653851 +AZURE,westus,Standard_E96a_v4,spot,NA,1.241856,USD,Azure Retail Prices API,2025-12-18T04:44:48.658106 +AZURE,westus,Standard_E96ads_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:44:48.663915 +AZURE,westus,Standard_E96ads_v5,reserved_1y,NA,4.191324,USD,Azure Retail Prices API,2025-12-18T04:44:50.654441 +AZURE,westus,Standard_E96ads_v5,reserved_3y,NA,2.699505,USD,Azure Retail Prices API,2025-12-18T04:44:50.654444 +AZURE,westus,Standard_E96ads_v5,spot,NA,1.312819,USD,Azure Retail Prices API,2025-12-18T04:44:48.664760 +AZURE,westus,Standard_E96ads_v6,on_demand,NA,8.179,USD,Azure Retail Prices API,2025-12-18T04:44:48.658282 +AZURE,westus,Standard_E96ads_v6,reserved_1y,NA,4.825685,USD,Azure Retail Prices API,2025-12-18T04:44:50.653311 +AZURE,westus,Standard_E96ads_v6,reserved_3y,NA,3.108105,USD,Azure Retail Prices API,2025-12-18T04:44:50.653314 +AZURE,westus,Standard_E96ads_v6,spot,NA,1.511479,USD,Azure Retail Prices API,2025-12-18T04:44:48.664074 +AZURE,westus,Standard_E96as_v4,on_demand,NA,6.72,USD,Azure Retail Prices API,2025-12-18T04:44:48.664363 +AZURE,westus,Standard_E96as_v4,reserved_1y,NA,3.95137,USD,Azure Retail Prices API,2025-12-18T04:44:50.654785 +AZURE,westus,Standard_E96as_v4,reserved_3y,NA,2.526712,USD,Azure Retail Prices API,2025-12-18T04:44:50.654788 +AZURE,westus,Standard_E96as_v4,spot,NA,1.241856,USD,Azure Retail Prices API,2025-12-18T04:44:48.664685 +AZURE,westus,Standard_E96as_v5,on_demand,NA,10.464,USD,Azure Retail Prices API,2025-12-18T04:44:48.664062 +AZURE,westus,Standard_E96as_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:44:50.655035 +AZURE,westus,Standard_E96as_v5,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:44:50.655038 +AZURE,westus,Standard_E96as_v5,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:44:48.663570 +AZURE,westus,Standard_E96ds_v5,on_demand,NA,7.776,USD,Azure Retail Prices API,2025-12-18T04:44:48.658342 +AZURE,westus,Standard_E96ds_v5,reserved_1y,NA,4.587785,USD,Azure Retail Prices API,2025-12-18T04:44:50.653377 +AZURE,westus,Standard_E96ds_v5,reserved_3y,NA,2.954871,USD,Azure Retail Prices API,2025-12-18T04:44:50.653379 +AZURE,westus,Standard_E96ds_v5,spot,NA,1.437005,USD,Azure Retail Prices API,2025-12-18T04:44:48.663345 +AZURE,westus,Standard_E96ds_v6,on_demand,NA,8.721,USD,Azure Retail Prices API,2025-12-18T04:44:48.663948 +AZURE,westus,Standard_E96ds_v6,reserved_1y,NA,5.406849,USD,Azure Retail Prices API,2025-12-18T04:44:50.654484 +AZURE,westus,Standard_E96ds_v6,reserved_3y,NA,3.401065,USD,Azure Retail Prices API,2025-12-18T04:44:50.654487 +AZURE,westus,Standard_E96ds_v6,spot,NA,1.611641,USD,Azure Retail Prices API,2025-12-18T04:44:48.663199 +AZURE,westus,Standard_E96pds_v6,on_demand,NA,6.557,USD,Azure Retail Prices API,2025-12-18T04:44:48.664465 +AZURE,westus,Standard_E96pds_v6,reserved_1y,NA,3.868493,USD,Azure Retail Prices API,2025-12-18T04:44:50.654845 +AZURE,westus,Standard_E96pds_v6,reserved_3y,NA,2.491591,USD,Azure Retail Prices API,2025-12-18T04:44:50.654848 +AZURE,westus,Standard_E96pds_v6,spot,NA,1.213045,USD,Azure Retail Prices API,2025-12-18T04:44:48.658476 +AZURE,westus,Standard_E96ps_v6,on_demand,NA,5.174,USD,Azure Retail Prices API,2025-12-18T04:44:48.663666 +AZURE,westus,Standard_E96ps_v6,reserved_1y,NA,3.052854,USD,Azure Retail Prices API,2025-12-18T04:44:50.654254 +AZURE,westus,Standard_E96ps_v6,reserved_3y,NA,1.966286,USD,Azure Retail Prices API,2025-12-18T04:44:50.654257 +AZURE,westus,Standard_E96ps_v6,spot,NA,0.95719,USD,Azure Retail Prices API,2025-12-18T04:44:48.658052 +AZURE,westus,Standard_E96s_v5,on_demand,NA,6.72,USD,Azure Retail Prices API,2025-12-18T04:44:48.658431 +AZURE,westus,Standard_E96s_v5,reserved_1y,NA,3.96484,USD,Azure Retail Prices API,2025-12-18T04:44:50.653437 +AZURE,westus,Standard_E96s_v5,reserved_3y,NA,2.486416,USD,Azure Retail Prices API,2025-12-18T04:44:50.653443 +AZURE,westus,Standard_E96s_v5,spot,NA,1.241856,USD,Azure Retail Prices API,2025-12-18T04:44:48.663338 +AZURE,westus,Standard_EC16ads_v5,on_demand,NA,1.184,USD,Azure Retail Prices API,2025-12-18T04:44:48.663928 +AZURE,westus,Standard_EC16ads_v5,reserved_1y,NA,0.947146,USD,Azure Retail Prices API,2025-12-18T04:44:50.654459 +AZURE,westus,Standard_EC16ads_v5,reserved_3y,NA,0.710388,USD,Azure Retail Prices API,2025-12-18T04:44:50.654462 +AZURE,westus,Standard_EC16ads_v5,spot,NA,0.223421,USD,Azure Retail Prices API,2025-12-18T04:44:48.658095 +AZURE,westus,Standard_EC16ads_v6,on_demand,NA,1.363,USD,Azure Retail Prices API,2025-12-18T04:44:48.663319 +AZURE,westus,Standard_EC16ads_v6,reserved_1y,NA,0.804338,USD,Azure Retail Prices API,2025-12-18T04:44:50.654028 +AZURE,westus,Standard_EC16ads_v6,reserved_3y,NA,0.517998,USD,Azure Retail Prices API,2025-12-18T04:44:50.654031 +AZURE,westus,Standard_EC16ads_v6,spot,NA,0.251882,USD,Azure Retail Prices API,2025-12-18T04:44:48.663804 +AZURE,westus,Standard_EC16as_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:48.658822 +AZURE,westus,Standard_EC16as_v5,reserved_1y,NA,0.806393,USD,Azure Retail Prices API,2025-12-18T04:44:50.653689 +AZURE,westus,Standard_EC16as_v5,reserved_3y,NA,0.604795,USD,Azure Retail Prices API,2025-12-18T04:44:50.653691 +AZURE,westus,Standard_EC16as_v5,spot,NA,0.19021,USD,Azure Retail Prices API,2025-12-18T04:44:48.664044 +AZURE,westus,Standard_EC16as_v6,on_demand,NA,1.12,USD,Azure Retail Prices API,2025-12-18T04:44:48.663256 +AZURE,westus,Standard_EC16as_v6,reserved_1y,NA,0.660845,USD,Azure Retail Prices API,2025-12-18T04:44:50.653951 +AZURE,westus,Standard_EC16as_v6,reserved_3y,NA,0.425609,USD,Azure Retail Prices API,2025-12-18T04:44:50.653953 +AZURE,westus,Standard_EC16as_v6,spot,NA,0.206976,USD,Azure Retail Prices API,2025-12-18T04:44:48.664821 +AZURE,westus,Standard_EC20ads_v5,on_demand,NA,1.48,USD,Azure Retail Prices API,2025-12-18T04:44:48.664228 +AZURE,westus,Standard_EC20ads_v5,reserved_1y,NA,1.184018,USD,Azure Retail Prices API,2025-12-18T04:44:50.654702 +AZURE,westus,Standard_EC20ads_v5,reserved_3y,NA,0.888014,USD,Azure Retail Prices API,2025-12-18T04:44:50.654708 +AZURE,westus,Standard_EC20ads_v5,spot,NA,0.279276,USD,Azure Retail Prices API,2025-12-18T04:44:48.663233 +AZURE,westus,Standard_EC20as_v5,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:48.664130 +AZURE,westus,Standard_EC20as_v5,reserved_1y,NA,1.007991,USD,Azure Retail Prices API,2025-12-18T04:44:50.654639 +AZURE,westus,Standard_EC20as_v5,reserved_3y,NA,0.756012,USD,Azure Retail Prices API,2025-12-18T04:44:50.654642 +AZURE,westus,Standard_EC20as_v5,spot,NA,0.237762,USD,Azure Retail Prices API,2025-12-18T04:44:48.663891 +AZURE,westus,Standard_EC2ads_v6,on_demand,NA,0.17,USD,Azure Retail Prices API,2025-12-18T04:44:48.663447 +AZURE,westus,Standard_EC2ads_v6,reserved_1y,NA,0.100571,USD,Azure Retail Prices API,2025-12-18T04:44:50.654103 +AZURE,westus,Standard_EC2ads_v6,reserved_3y,NA,0.064764,USD,Azure Retail Prices API,2025-12-18T04:44:50.654106 +AZURE,westus,Standard_EC2ads_v6,spot,NA,0.031416,USD,Azure Retail Prices API,2025-12-18T04:44:48.658693 +AZURE,westus,Standard_EC2as_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:44:48.663216 +AZURE,westus,Standard_EC2as_v6,reserved_1y,NA,0.082648,USD,Azure Retail Prices API,2025-12-18T04:44:50.653929 +AZURE,westus,Standard_EC2as_v6,reserved_3y,NA,0.053196,USD,Azure Retail Prices API,2025-12-18T04:44:50.653931 +AZURE,westus,Standard_EC2as_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:44:48.664788 +AZURE,westus,Standard_EC32ads_v5,on_demand,NA,2.368,USD,Azure Retail Prices API,2025-12-18T04:44:48.663807 +AZURE,westus,Standard_EC32ads_v5,reserved_1y,NA,1.894406,USD,Azure Retail Prices API,2025-12-18T04:44:50.654360 +AZURE,westus,Standard_EC32ads_v5,reserved_3y,NA,1.420814,USD,Azure Retail Prices API,2025-12-18T04:44:50.654363 +AZURE,westus,Standard_EC32ads_v5,spot,NA,0.446842,USD,Azure Retail Prices API,2025-12-18T04:44:48.664625 +AZURE,westus,Standard_EC32ads_v6,on_demand,NA,2.726,USD,Azure Retail Prices API,2025-12-18T04:44:48.664694 +AZURE,westus,Standard_EC32ads_v6,reserved_1y,NA,1.608562,USD,Azure Retail Prices API,2025-12-18T04:44:50.654982 +AZURE,westus,Standard_EC32ads_v6,reserved_3y,NA,1.036035,USD,Azure Retail Prices API,2025-12-18T04:44:50.654984 +AZURE,westus,Standard_EC32ads_v6,spot,NA,0.503765,USD,Azure Retail Prices API,2025-12-18T04:44:48.663673 +AZURE,westus,Standard_EC32as_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:48.663955 +AZURE,westus,Standard_EC32as_v5,reserved_1y,NA,1.612785,USD,Azure Retail Prices API,2025-12-18T04:44:50.654496 +AZURE,westus,Standard_EC32as_v5,reserved_3y,NA,1.209589,USD,Azure Retail Prices API,2025-12-18T04:44:50.654499 +AZURE,westus,Standard_EC32as_v5,spot,NA,0.380419,USD,Azure Retail Prices API,2025-12-18T04:44:48.663943 +AZURE,westus,Standard_EC32as_v6,on_demand,NA,2.24,USD,Azure Retail Prices API,2025-12-18T04:44:48.658512 +AZURE,westus,Standard_EC32as_v6,reserved_1y,NA,1.321575,USD,Azure Retail Prices API,2025-12-18T04:44:50.653507 +AZURE,westus,Standard_EC32as_v6,reserved_3y,NA,0.851218,USD,Azure Retail Prices API,2025-12-18T04:44:50.653511 +AZURE,westus,Standard_EC32as_v6,spot,NA,0.413952,USD,Azure Retail Prices API,2025-12-18T04:44:48.658129 +AZURE,westus,Standard_EC48ads_v5,on_demand,NA,3.552,USD,Azure Retail Prices API,2025-12-18T04:44:48.664250 +AZURE,westus,Standard_EC48ads_v5,reserved_1y,NA,2.841553,USD,Azure Retail Prices API,2025-12-18T04:44:50.654724 +AZURE,westus,Standard_EC48ads_v5,reserved_3y,NA,2.131202,USD,Azure Retail Prices API,2025-12-18T04:44:50.654727 +AZURE,westus,Standard_EC48ads_v5,spot,NA,0.670262,USD,Azure Retail Prices API,2025-12-18T04:44:48.663978 +AZURE,westus,Standard_EC48ads_v6,on_demand,NA,4.09,USD,Azure Retail Prices API,2025-12-18T04:44:48.663565 +AZURE,westus,Standard_EC48ads_v6,reserved_1y,NA,2.4129,USD,Azure Retail Prices API,2025-12-18T04:44:50.654191 +AZURE,westus,Standard_EC48ads_v6,reserved_3y,NA,1.554033,USD,Azure Retail Prices API,2025-12-18T04:44:50.654194 +AZURE,westus,Standard_EC48ads_v6,spot,NA,0.755832,USD,Azure Retail Prices API,2025-12-18T04:44:48.658592 +AZURE,westus,Standard_EC48as_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:48.663507 +AZURE,westus,Standard_EC48as_v5,reserved_1y,NA,2.419178,USD,Azure Retail Prices API,2025-12-18T04:44:50.654137 +AZURE,westus,Standard_EC48as_v5,reserved_3y,NA,1.814384,USD,Azure Retail Prices API,2025-12-18T04:44:50.654140 +AZURE,westus,Standard_EC48as_v5,spot,NA,0.570629,USD,Azure Retail Prices API,2025-12-18T04:44:48.663900 +AZURE,westus,Standard_EC48as_v6,on_demand,NA,3.36,USD,Azure Retail Prices API,2025-12-18T04:44:48.664611 +AZURE,westus,Standard_EC48as_v6,reserved_1y,NA,1.98242,USD,Azure Retail Prices API,2025-12-18T04:44:50.654960 +AZURE,westus,Standard_EC48as_v6,reserved_3y,NA,1.276788,USD,Azure Retail Prices API,2025-12-18T04:44:50.654963 +AZURE,westus,Standard_EC48as_v6,spot,NA,0.620928,USD,Azure Retail Prices API,2025-12-18T04:44:48.658411 +AZURE,westus,Standard_EC4ads_v5,on_demand,NA,0.296,USD,Azure Retail Prices API,2025-12-18T04:44:48.658628 +AZURE,westus,Standard_EC4ads_v5,reserved_1y,NA,0.236758,USD,Azure Retail Prices API,2025-12-18T04:44:50.653583 +AZURE,westus,Standard_EC4ads_v5,reserved_3y,NA,0.177588,USD,Azure Retail Prices API,2025-12-18T04:44:50.653585 +AZURE,westus,Standard_EC4ads_v5,spot,NA,0.055855,USD,Azure Retail Prices API,2025-12-18T04:44:48.658218 +AZURE,westus,Standard_EC4ads_v6,on_demand,NA,0.341,USD,Azure Retail Prices API,2025-12-18T04:44:48.658638 +AZURE,westus,Standard_EC4ads_v6,reserved_1y,NA,0.201027,USD,Azure Retail Prices API,2025-12-18T04:44:50.653595 +AZURE,westus,Standard_EC4ads_v6,reserved_3y,NA,0.12949,USD,Azure Retail Prices API,2025-12-18T04:44:50.653597 +AZURE,westus,Standard_EC4ads_v6,spot,NA,0.063017,USD,Azure Retail Prices API,2025-12-18T04:44:48.664656 +AZURE,westus,Standard_EC4as_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:48.658089 +AZURE,westus,Standard_EC4as_v5,reserved_1y,NA,0.201598,USD,Azure Retail Prices API,2025-12-18T04:44:50.653213 +AZURE,westus,Standard_EC4as_v5,reserved_3y,NA,0.151218,USD,Azure Retail Prices API,2025-12-18T04:44:50.653216 +AZURE,westus,Standard_EC4as_v5,spot,NA,0.047552,USD,Azure Retail Prices API,2025-12-18T04:44:48.663224 +AZURE,westus,Standard_EC4as_v6,on_demand,NA,0.28,USD,Azure Retail Prices API,2025-12-18T04:44:48.658311 +AZURE,westus,Standard_EC4as_v6,reserved_1y,NA,0.165183,USD,Azure Retail Prices API,2025-12-18T04:44:50.653348 +AZURE,westus,Standard_EC4as_v6,reserved_3y,NA,0.106393,USD,Azure Retail Prices API,2025-12-18T04:44:50.653351 +AZURE,westus,Standard_EC4as_v6,spot,NA,0.051744,USD,Azure Retail Prices API,2025-12-18T04:44:48.664703 +AZURE,westus,Standard_EC64ads_v5,on_demand,NA,4.736,USD,Azure Retail Prices API,2025-12-18T04:44:48.663633 +AZURE,westus,Standard_EC64ads_v5,reserved_1y,NA,3.788813,USD,Azure Retail Prices API,2025-12-18T04:44:50.654222 +AZURE,westus,Standard_EC64ads_v5,reserved_3y,NA,2.841591,USD,Azure Retail Prices API,2025-12-18T04:44:50.654225 +AZURE,westus,Standard_EC64ads_v5,spot,NA,0.893683,USD,Azure Retail Prices API,2025-12-18T04:44:48.663259 +AZURE,westus,Standard_EC64ads_v6,on_demand,NA,5.453,USD,Azure Retail Prices API,2025-12-18T04:44:48.663716 +AZURE,westus,Standard_EC64ads_v6,reserved_1y,NA,3.217123,USD,Azure Retail Prices API,2025-12-18T04:44:50.654297 +AZURE,westus,Standard_EC64ads_v6,reserved_3y,NA,2.07207,USD,Azure Retail Prices API,2025-12-18T04:44:50.654301 +AZURE,westus,Standard_EC64ads_v6,spot,NA,1.007714,USD,Azure Retail Prices API,2025-12-18T04:44:48.658881 +AZURE,westus,Standard_EC64as_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:48.658858 +AZURE,westus,Standard_EC64as_v5,reserved_1y,NA,3.225571,USD,Azure Retail Prices API,2025-12-18T04:44:50.653722 +AZURE,westus,Standard_EC64as_v5,reserved_3y,NA,2.419216,USD,Azure Retail Prices API,2025-12-18T04:44:50.653724 +AZURE,westus,Standard_EC64as_v5,spot,NA,0.760838,USD,Azure Retail Prices API,2025-12-18T04:44:48.663252 +AZURE,westus,Standard_EC64as_v6,on_demand,NA,4.48,USD,Azure Retail Prices API,2025-12-18T04:44:48.664523 +AZURE,westus,Standard_EC64as_v6,reserved_1y,NA,2.643151,USD,Azure Retail Prices API,2025-12-18T04:44:50.654878 +AZURE,westus,Standard_EC64as_v6,reserved_3y,NA,1.702397,USD,Azure Retail Prices API,2025-12-18T04:44:50.654881 +AZURE,westus,Standard_EC64as_v6,spot,NA,0.827904,USD,Azure Retail Prices API,2025-12-18T04:44:48.658711 +AZURE,westus,Standard_EC8ads_v5,on_demand,NA,0.592,USD,Azure Retail Prices API,2025-12-18T04:44:48.658577 +AZURE,westus,Standard_EC8ads_v5,reserved_1y,NA,0.47363,USD,Azure Retail Prices API,2025-12-18T04:44:50.653551 +AZURE,westus,Standard_EC8ads_v5,reserved_3y,NA,0.355213,USD,Azure Retail Prices API,2025-12-18T04:44:50.653554 +AZURE,westus,Standard_EC8ads_v5,spot,NA,0.11171,USD,Azure Retail Prices API,2025-12-18T04:44:48.663425 +AZURE,westus,Standard_EC8ads_v6,on_demand,NA,0.682,USD,Azure Retail Prices API,2025-12-18T04:44:48.663762 +AZURE,westus,Standard_EC8ads_v6,reserved_1y,NA,0.402169,USD,Azure Retail Prices API,2025-12-18T04:44:50.654323 +AZURE,westus,Standard_EC8ads_v6,reserved_3y,NA,0.259018,USD,Azure Retail Prices API,2025-12-18T04:44:50.654326 +AZURE,westus,Standard_EC8ads_v6,spot,NA,0.126034,USD,Azure Retail Prices API,2025-12-18T04:44:48.664793 +AZURE,westus,Standard_EC8as_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:48.664041 +AZURE,westus,Standard_EC8as_v5,reserved_1y,NA,0.403196,USD,Azure Retail Prices API,2025-12-18T04:44:50.654588 +AZURE,westus,Standard_EC8as_v5,reserved_3y,NA,0.302397,USD,Azure Retail Prices API,2025-12-18T04:44:50.654591 +AZURE,westus,Standard_EC8as_v5,spot,NA,0.095105,USD,Azure Retail Prices API,2025-12-18T04:44:48.658688 +AZURE,westus,Standard_EC8as_v6,on_demand,NA,0.56,USD,Azure Retail Prices API,2025-12-18T04:44:48.664265 +AZURE,westus,Standard_EC8as_v6,reserved_1y,NA,0.330365,USD,Azure Retail Prices API,2025-12-18T04:44:50.654735 +AZURE,westus,Standard_EC8as_v6,reserved_3y,NA,0.212785,USD,Azure Retail Prices API,2025-12-18T04:44:50.654738 +AZURE,westus,Standard_EC8as_v6,spot,NA,0.103488,USD,Azure Retail Prices API,2025-12-18T04:44:48.664437 +AZURE,westus,Standard_EC96ads_v5,on_demand,NA,7.104,USD,Azure Retail Prices API,2025-12-18T04:44:48.664518 +AZURE,westus,Standard_EC96ads_v5,reserved_1y,NA,5.683219,USD,Azure Retail Prices API,2025-12-18T04:44:50.654872 +AZURE,westus,Standard_EC96ads_v5,reserved_3y,NA,4.262405,USD,Azure Retail Prices API,2025-12-18T04:44:50.654875 +AZURE,westus,Standard_EC96ads_v5,spot,NA,1.340525,USD,Azure Retail Prices API,2025-12-18T04:44:48.664513 +AZURE,westus,Standard_EC96ads_v6,on_demand,NA,8.179,USD,Azure Retail Prices API,2025-12-18T04:44:48.663243 +AZURE,westus,Standard_EC96ads_v6,reserved_1y,NA,4.825685,USD,Azure Retail Prices API,2025-12-18T04:44:50.653945 +AZURE,westus,Standard_EC96ads_v6,reserved_3y,NA,3.108105,USD,Azure Retail Prices API,2025-12-18T04:44:50.653948 +AZURE,westus,Standard_EC96ads_v6,spot,NA,1.511479,USD,Azure Retail Prices API,2025-12-18T04:44:48.664213 +AZURE,westus,Standard_EC96as_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:48.663826 +AZURE,westus,Standard_EC96as_v5,reserved_1y,NA,4.838356,USD,Azure Retail Prices API,2025-12-18T04:44:50.654373 +AZURE,westus,Standard_EC96as_v5,reserved_3y,NA,3.628805,USD,Azure Retail Prices API,2025-12-18T04:44:50.654376 +AZURE,westus,Standard_EC96as_v5,spot,NA,1.141258,USD,Azure Retail Prices API,2025-12-18T04:44:48.664038 +AZURE,westus,Standard_EC96as_v6,on_demand,NA,6.72,USD,Azure Retail Prices API,2025-12-18T04:44:48.663525 +AZURE,westus,Standard_EC96as_v6,reserved_1y,NA,3.96484,USD,Azure Retail Prices API,2025-12-18T04:44:50.654148 +AZURE,westus,Standard_EC96as_v6,reserved_3y,NA,2.553615,USD,Azure Retail Prices API,2025-12-18T04:44:50.654163 +AZURE,westus,Standard_EC96as_v6,spot,NA,1.241856,USD,Azure Retail Prices API,2025-12-18T04:44:48.664425 +AZURE,westus,Standard_F16,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379240 +AZURE,westus,Standard_F16,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379248 +AZURE,westus,Standard_F16,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379252 +AZURE,westus,Standard_F16,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379244 +AZURE,westus,Standard_F16s,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381513 +AZURE,westus,Standard_F16s,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381570 +AZURE,westus,Standard_F16s,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381574 +AZURE,westus,Standard_F16s,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381565 +AZURE,westus,Standard_F16s_v2,on_demand,NA,0.8232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384243 +AZURE,westus,Standard_F16s_v2,reserved_1y,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384252 +AZURE,westus,Standard_F16s_v2,reserved_3y,NA,0.32928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384256 +AZURE,westus,Standard_F16s_v2,spot,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384247 +AZURE,westus,Standard_F32s_v2,on_demand,NA,1.6464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385023 +AZURE,westus,Standard_F32s_v2,reserved_1y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385034 +AZURE,westus,Standard_F32s_v2,reserved_3y,NA,0.65856,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385038 +AZURE,westus,Standard_F32s_v2,spot,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385028 +AZURE,westus,Standard_F4,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377608 +AZURE,westus,Standard_F4,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377616 +AZURE,westus,Standard_F4,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377621 +AZURE,westus,Standard_F4,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377612 +AZURE,westus,Standard_F48s_v2,on_demand,NA,2.4696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385857 +AZURE,westus,Standard_F48s_v2,reserved_1y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385866 +AZURE,westus,Standard_F48s_v2,reserved_3y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385870 +AZURE,westus,Standard_F48s_v2,spot,NA,0.74088,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385861 +AZURE,westus,Standard_F4s,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379996 +AZURE,westus,Standard_F4s,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380006 +AZURE,westus,Standard_F4s,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380010 +AZURE,westus,Standard_F4s,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380001 +AZURE,westus,Standard_F4s_v2,on_demand,NA,0.2058,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382316 +AZURE,westus,Standard_F4s_v2,reserved_1y,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382325 +AZURE,westus,Standard_F4s_v2,reserved_3y,NA,0.08232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382329 +AZURE,westus,Standard_F4s_v2,spot,NA,0.06174,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382321 +AZURE,westus,Standard_F64s_v2,on_demand,NA,3.2928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386647 +AZURE,westus,Standard_F64s_v2,reserved_1y,NA,1.97568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386655 +AZURE,westus,Standard_F64s_v2,reserved_3y,NA,1.31712,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386661 +AZURE,westus,Standard_F64s_v2,spot,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386651 +AZURE,westus,Standard_F72s_v2,on_demand,NA,3.7044,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387422 +AZURE,westus,Standard_F72s_v2,reserved_1y,NA,2.22264,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387431 +AZURE,westus,Standard_F72s_v2,reserved_3y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387436 +AZURE,westus,Standard_F72s_v2,spot,NA,1.11132,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387427 +AZURE,westus,Standard_F8,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378439 +AZURE,westus,Standard_F8,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378447 +AZURE,westus,Standard_F8,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378452 +AZURE,westus,Standard_F8,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378443 +AZURE,westus,Standard_F8s,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380715 +AZURE,westus,Standard_F8s,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380723 +AZURE,westus,Standard_F8s,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380728 +AZURE,westus,Standard_F8s,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380719 +AZURE,westus,Standard_F8s_v2,on_demand,NA,0.4116,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383446 +AZURE,westus,Standard_F8s_v2,reserved_1y,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383457 +AZURE,westus,Standard_F8s_v2,reserved_3y,NA,0.16464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383461 +AZURE,westus,Standard_F8s_v2,spot,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383452 +AZURE,westus,Standard_H16,on_demand,NA,1.941,USD,Azure Retail Prices API,2025-12-18T04:44:48.658503 +AZURE,westus,Standard_H16,spot,NA,0.358697,USD,Azure Retail Prices API,2025-12-18T04:44:48.664620 +AZURE,westus,Standard_H8,on_demand,NA,0.971,USD,Azure Retail Prices API,2025-12-18T04:44:48.658550 +AZURE,westus,Standard_H8,spot,NA,0.179441,USD,Azure Retail Prices API,2025-12-18T04:44:48.663759 +AZURE,westus,Standard_L16as_v3,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:44:48.664533 +AZURE,westus,Standard_L16as_v3,reserved_1y,NA,0.880594,USD,Azure Retail Prices API,2025-12-18T04:44:50.654884 +AZURE,westus,Standard_L16as_v3,reserved_3y,NA,0.57793,USD,Azure Retail Prices API,2025-12-18T04:44:50.654887 +AZURE,westus,Standard_L16as_v3,spot,NA,0.254285,USD,Azure Retail Prices API,2025-12-18T04:44:48.664260 +AZURE,westus,Standard_L16s_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:48.658967 +AZURE,westus,Standard_L16s_v3,reserved_1y,NA,0.982991,USD,Azure Retail Prices API,2025-12-18T04:44:50.653784 +AZURE,westus,Standard_L16s_v3,reserved_3y,NA,0.645129,USD,Azure Retail Prices API,2025-12-18T04:44:50.653789 +AZURE,westus,Standard_L16s_v3,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:48.664301 +AZURE,westus,Standard_L32as_v3,on_demand,NA,2.752,USD,Azure Retail Prices API,2025-12-18T04:44:48.664406 +AZURE,westus,Standard_L32as_v3,reserved_1y,NA,1.761301,USD,Azure Retail Prices API,2025-12-18T04:44:50.654807 +AZURE,westus,Standard_L32as_v3,reserved_3y,NA,1.155822,USD,Azure Retail Prices API,2025-12-18T04:44:50.654810 +AZURE,westus,Standard_L32as_v3,spot,NA,0.50857,USD,Azure Retail Prices API,2025-12-18T04:44:48.658134 +AZURE,westus,Standard_L32s_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:48.664086 +AZURE,westus,Standard_L32s_v3,reserved_1y,NA,1.966096,USD,Azure Retail Prices API,2025-12-18T04:44:50.654620 +AZURE,westus,Standard_L32s_v3,reserved_3y,NA,1.290259,USD,Azure Retail Prices API,2025-12-18T04:44:50.654624 +AZURE,westus,Standard_L32s_v3,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:48.664751 +AZURE,westus,Standard_L48as_v3,on_demand,NA,4.128,USD,Azure Retail Prices API,2025-12-18T04:44:48.658034 +AZURE,westus,Standard_L48as_v3,reserved_1y,NA,2.641895,USD,Azure Retail Prices API,2025-12-18T04:44:50.653172 +AZURE,westus,Standard_L48as_v3,reserved_3y,NA,1.733752,USD,Azure Retail Prices API,2025-12-18T04:44:50.653188 +AZURE,westus,Standard_L48as_v3,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:44:48.658530 +AZURE,westus,Standard_L48s_v3,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:48.664629 +AZURE,westus,Standard_L48s_v3,reserved_1y,NA,2.949087,USD,Azure Retail Prices API,2025-12-18T04:44:50.654966 +AZURE,westus,Standard_L48s_v3,reserved_3y,NA,1.93535,USD,Azure Retail Prices API,2025-12-18T04:44:50.654969 +AZURE,westus,Standard_L48s_v3,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:44:48.663246 +AZURE,westus,Standard_L64as_v3,on_demand,NA,5.504,USD,Azure Retail Prices API,2025-12-18T04:44:48.663876 +AZURE,westus,Standard_L64as_v3,reserved_1y,NA,3.522603,USD,Azure Retail Prices API,2025-12-18T04:44:50.654404 +AZURE,westus,Standard_L64as_v3,reserved_3y,NA,2.311682,USD,Azure Retail Prices API,2025-12-18T04:44:50.654407 +AZURE,westus,Standard_L64as_v3,spot,NA,1.017139,USD,Azure Retail Prices API,2025-12-18T04:44:48.664077 +AZURE,westus,Standard_L64s_v3,on_demand,NA,6.144,USD,Azure Retail Prices API,2025-12-18T04:44:48.664482 +AZURE,westus,Standard_L64s_v3,reserved_1y,NA,3.932192,USD,Azure Retail Prices API,2025-12-18T04:44:50.654861 +AZURE,westus,Standard_L64s_v3,reserved_3y,NA,2.580479,USD,Azure Retail Prices API,2025-12-18T04:44:50.654864 +AZURE,westus,Standard_L64s_v3,spot,NA,1.135411,USD,Azure Retail Prices API,2025-12-18T04:44:48.658063 +AZURE,westus,Standard_L80as_v3,on_demand,NA,6.88,USD,Azure Retail Prices API,2025-12-18T04:44:48.663202 +AZURE,westus,Standard_L80as_v3,reserved_1y,NA,4.403196,USD,Azure Retail Prices API,2025-12-18T04:44:50.653912 +AZURE,westus,Standard_L80as_v3,reserved_3y,NA,2.889612,USD,Azure Retail Prices API,2025-12-18T04:44:50.653915 +AZURE,westus,Standard_L80as_v3,spot,NA,1.271424,USD,Azure Retail Prices API,2025-12-18T04:44:48.663823 +AZURE,westus,Standard_L80s_v3,on_demand,NA,7.68,USD,Azure Retail Prices API,2025-12-18T04:44:48.664456 +AZURE,westus,Standard_L80s_v3,reserved_1y,NA,4.915183,USD,Azure Retail Prices API,2025-12-18T04:44:50.654834 +AZURE,westus,Standard_L80s_v3,reserved_3y,NA,3.225609,USD,Azure Retail Prices API,2025-12-18T04:44:50.654836 +AZURE,westus,Standard_L80s_v3,spot,NA,1.419264,USD,Azure Retail Prices API,2025-12-18T04:44:48.664055 +AZURE,westus,Standard_L8as_v3,on_demand,NA,0.688,USD,Azure Retail Prices API,2025-12-18T04:44:48.663794 +AZURE,westus,Standard_L8as_v3,reserved_1y,NA,0.440297,USD,Azure Retail Prices API,2025-12-18T04:44:50.654354 +AZURE,westus,Standard_L8as_v3,reserved_3y,NA,0.288965,USD,Azure Retail Prices API,2025-12-18T04:44:50.654357 +AZURE,westus,Standard_L8as_v3,spot,NA,0.127142,USD,Azure Retail Prices API,2025-12-18T04:44:48.663196 +AZURE,westus,Standard_L8s_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:48.664243 +AZURE,westus,Standard_L8s_v3,reserved_1y,NA,0.491553,USD,Azure Retail Prices API,2025-12-18T04:44:50.654713 +AZURE,westus,Standard_L8s_v3,reserved_3y,NA,0.322565,USD,Azure Retail Prices API,2025-12-18T04:44:50.654716 +AZURE,westus,Standard_L8s_v3,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:48.664587 +AZURE,westus,Standard_NC12s_v3,on_demand,NA,7.956,USD,Azure Retail Prices API,2025-12-18T04:44:48.658498 +AZURE,westus,Standard_NC12s_v3,spot,NA,1.470269,USD,Azure Retail Prices API,2025-12-18T04:44:48.658651 +AZURE,westus,Standard_NC16as_T4_v3,on_demand,NA,1.445,USD,Azure Retail Prices API,2025-12-18T04:44:48.664002 +AZURE,westus,Standard_NC16as_T4_v3,reserved_1y,NA,0.924658,USD,Azure Retail Prices API,2025-12-18T04:44:50.654539 +AZURE,westus,Standard_NC16as_T4_v3,reserved_3y,NA,0.549011,USD,Azure Retail Prices API,2025-12-18T04:44:50.654542 +AZURE,westus,Standard_NC16as_T4_v3,spot,NA,0.41905,USD,Azure Retail Prices API,2025-12-18T04:44:48.663791 +AZURE,westus,Standard_NC24ads_A100_v4,on_demand,NA,4.775,USD,Azure Retail Prices API,2025-12-18T04:44:48.658162 +AZURE,westus,Standard_NC24ads_A100_v4,reserved_1y,NA,3.121347,USD,Azure Retail Prices API,2025-12-18T04:44:50.653269 +AZURE,westus,Standard_NC24ads_A100_v4,reserved_3y,NA,1.771956,USD,Azure Retail Prices API,2025-12-18T04:44:50.653272 +AZURE,westus,Standard_NC24ads_A100_v4,spot,NA,0.88242,USD,Azure Retail Prices API,2025-12-18T04:44:48.664341 +AZURE,westus,Standard_NC24s_v3,on_demand,NA,15.912,USD,Azure Retail Prices API,2025-12-18T04:44:48.663237 +AZURE,westus,Standard_NC24s_v3,spot,NA,2.940538,USD,Azure Retail Prices API,2025-12-18T04:44:48.658871 +AZURE,westus,Standard_NC40ads_H100_v5,on_demand,NA,9.074,USD,Azure Retail Prices API,2025-12-18T04:44:48.663313 +AZURE,westus,Standard_NC40ads_H100_v5,reserved_1y,NA,6.805479,USD,Azure Retail Prices API,2025-12-18T04:44:50.654012 +AZURE,westus,Standard_NC40ads_H100_v5,reserved_3y,NA,4.990715,USD,Azure Retail Prices API,2025-12-18T04:44:50.654014 +AZURE,westus,Standard_NC40ads_H100_v5,spot,NA,5.820064,USD,Azure Retail Prices API,2025-12-18T04:44:48.664568 +AZURE,westus,Standard_NC48ads_A100_v4,on_demand,NA,9.55,USD,Azure Retail Prices API,2025-12-18T04:44:48.658073 +AZURE,westus,Standard_NC48ads_A100_v4,reserved_1y,NA,6.242694,USD,Azure Retail Prices API,2025-12-18T04:44:50.653206 +AZURE,westus,Standard_NC48ads_A100_v4,reserved_3y,NA,3.54395,USD,Azure Retail Prices API,2025-12-18T04:44:50.653210 +AZURE,westus,Standard_NC48ads_A100_v4,spot,NA,1.76484,USD,Azure Retail Prices API,2025-12-18T04:44:48.664119 +AZURE,westus,Standard_NC4as_T4_v3,on_demand,NA,0.631,USD,Azure Retail Prices API,2025-12-18T04:44:48.663940 +AZURE,westus,Standard_NC4as_T4_v3,reserved_1y,NA,0.403995,USD,Azure Retail Prices API,2025-12-18T04:44:50.654471 +AZURE,westus,Standard_NC4as_T4_v3,reserved_3y,NA,0.23984,USD,Azure Retail Prices API,2025-12-18T04:44:50.654474 +AZURE,westus,Standard_NC4as_T4_v3,spot,NA,0.18299,USD,Azure Retail Prices API,2025-12-18T04:44:48.663873 +AZURE,westus,Standard_NC64as_T4_v3,on_demand,NA,5.222,USD,Azure Retail Prices API,2025-12-18T04:44:48.659054 +AZURE,westus,Standard_NC64as_T4_v3,reserved_1y,NA,3.342352,USD,Azure Retail Prices API,2025-12-18T04:44:50.653879 +AZURE,westus,Standard_NC64as_T4_v3,reserved_3y,NA,1.984513,USD,Azure Retail Prices API,2025-12-18T04:44:50.653884 +AZURE,westus,Standard_NC64as_T4_v3,spot,NA,1.51438,USD,Azure Retail Prices API,2025-12-18T04:44:48.663736 +AZURE,westus,Standard_NC6s_v3,on_demand,NA,3.978,USD,Azure Retail Prices API,2025-12-18T04:44:48.664136 +AZURE,westus,Standard_NC6s_v3,spot,NA,0.735134,USD,Azure Retail Prices API,2025-12-18T04:44:48.658258 +AZURE,westus,Standard_NC8as_T4_v3,on_demand,NA,0.902,USD,Azure Retail Prices API,2025-12-18T04:44:48.658938 +AZURE,westus,Standard_NC8as_T4_v3,reserved_1y,NA,0.577511,USD,Azure Retail Prices API,2025-12-18T04:44:50.653766 +AZURE,westus,Standard_NC8as_T4_v3,reserved_3y,NA,0.342922,USD,Azure Retail Prices API,2025-12-18T04:44:50.653771 +AZURE,westus,Standard_NC8as_T4_v3,spot,NA,0.26158,USD,Azure Retail Prices API,2025-12-18T04:44:48.664728 +AZURE,westus,Standard_NC96ads_A100_v4,on_demand,NA,19.1,USD,Azure Retail Prices API,2025-12-18T04:44:48.658633 +AZURE,westus,Standard_NC96ads_A100_v4,reserved_1y,NA,12.485388,USD,Azure Retail Prices API,2025-12-18T04:44:50.653589 +AZURE,westus,Standard_NC96ads_A100_v4,reserved_3y,NA,7.087861,USD,Azure Retail Prices API,2025-12-18T04:44:50.653592 +AZURE,westus,Standard_NC96ads_A100_v4,spot,NA,3.52968,USD,Azure Retail Prices API,2025-12-18T04:44:48.664661 +AZURE,westus,Standard_ND96isr_H100_v5,on_demand,NA,127.816,USD,Azure Retail Prices API,2025-12-18T04:44:48.664177 +AZURE,westus,Standard_ND96isr_H100_v5,reserved_1y,NA,81.802283,USD,Azure Retail Prices API,2025-12-18T04:44:50.654675 +AZURE,westus,Standard_ND96isr_H100_v5,reserved_3y,NA,56.111225,USD,Azure Retail Prices API,2025-12-18T04:44:50.654678 +AZURE,westus,Standard_ND96isr_H100_v5,spot,NA,23.620397,USD,Azure Retail Prices API,2025-12-18T04:44:48.664592 +AZURE,westus,Standard_NV36adms_A10_v5,on_demand,NA,5.876,USD,Azure Retail Prices API,2025-12-18T04:44:48.658670 +AZURE,westus,Standard_NV36adms_A10_v5,reserved_1y,NA,3.760616,USD,Azure Retail Prices API,2025-12-18T04:44:50.653611 +AZURE,westus,Standard_NV36adms_A10_v5,reserved_3y,NA,2.585426,USD,Azure Retail Prices API,2025-12-18T04:44:50.653614 +AZURE,westus,Standard_NV36adms_A10_v5,spot,NA,1.085885,USD,Azure Retail Prices API,2025-12-18T04:44:48.664493 +AZURE,westus,Standard_NV36ads_A10_v5,on_demand,NA,4.16,USD,Azure Retail Prices API,2025-12-18T04:44:48.664602 +AZURE,westus,Standard_NV36ads_A10_v5,reserved_1y,NA,2.662443,USD,Azure Retail Prices API,2025-12-18T04:44:50.654950 +AZURE,westus,Standard_NV36ads_A10_v5,reserved_3y,NA,1.830403,USD,Azure Retail Prices API,2025-12-18T04:44:50.654952 +AZURE,westus,Standard_NV36ads_A10_v5,spot,NA,0.768768,USD,Azure Retail Prices API,2025-12-18T04:44:48.664671 +AZURE,westus,Standard_NV72ads_A10_v5,on_demand,NA,8.476,USD,Azure Retail Prices API,2025-12-18T04:44:48.658320 +AZURE,westus,Standard_NV72ads_A10_v5,reserved_1y,NA,5.424658,USD,Azure Retail Prices API,2025-12-18T04:44:50.653359 +AZURE,westus,Standard_NV72ads_A10_v5,reserved_3y,NA,3.729452,USD,Azure Retail Prices API,2025-12-18T04:44:50.653362 +AZURE,westus,Standard_NV72ads_A10_v5,spot,NA,1.566365,USD,Azure Retail Prices API,2025-12-18T04:44:48.664183 +AZURE,westus2,Standard_D128ds_v6,on_demand,NA,7.973,USD,Azure Retail Prices API,2025-12-18T04:44:53.524156 +AZURE,westus2,Standard_D128ds_v6,reserved_1y,NA,4.943379,USD,Azure Retail Prices API,2025-12-18T04:44:55.667697 +AZURE,westus2,Standard_D128ds_v6,reserved_3y,NA,3.109513,USD,Azure Retail Prices API,2025-12-18T04:44:55.667699 +AZURE,westus2,Standard_D128ds_v6,spot,NA,1.47341,USD,Azure Retail Prices API,2025-12-18T04:44:53.525729 +AZURE,westus2,Standard_D12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488163 +AZURE,westus2,Standard_D12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488171 +AZURE,westus2,Standard_D12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488175 +AZURE,westus2,Standard_D12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488167 +AZURE,westus2,Standard_D13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488906 +AZURE,westus2,Standard_D13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488914 +AZURE,westus2,Standard_D13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488919 +AZURE,westus2,Standard_D13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488910 +AZURE,westus2,Standard_D14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490027 +AZURE,westus2,Standard_D14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490035 +AZURE,westus2,Standard_D14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490039 +AZURE,westus2,Standard_D14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490031 +AZURE,westus2,Standard_D15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490733 +AZURE,westus2,Standard_D15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490741 +AZURE,westus2,Standard_D15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490745 +AZURE,westus2,Standard_D15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490737 +AZURE,westus2,Standard_D16_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:53.524201 +AZURE,westus2,Standard_D16_v3,reserved_1y,NA,0.457991,USD,Azure Retail Prices API,2025-12-18T04:44:55.667738 +AZURE,westus2,Standard_D16_v3,reserved_3y,NA,0.294787,USD,Azure Retail Prices API,2025-12-18T04:44:55.667741 +AZURE,westus2,Standard_D16_v3,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:53.524589 +AZURE,westus2,Standard_D16a_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:53.525903 +AZURE,westus2,Standard_D16a_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:44:55.668856 +AZURE,westus2,Standard_D16a_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:44:55.668859 +AZURE,westus2,Standard_D16a_v4,spot,NA,0.187469,USD,Azure Retail Prices API,2025-12-18T04:44:53.526153 +AZURE,westus2,Standard_D16ads_v5,on_demand,NA,1.56,USD,Azure Retail Prices API,2025-12-18T04:44:53.524828 +AZURE,westus2,Standard_D16ads_v5,reserved_1y,NA,0.486187,USD,Azure Retail Prices API,2025-12-18T04:44:55.668861 +AZURE,westus2,Standard_D16ads_v5,reserved_3y,NA,0.313128,USD,Azure Retail Prices API,2025-12-18T04:44:55.668865 +AZURE,westus2,Standard_D16ads_v5,spot,NA,0.207236,USD,Azure Retail Prices API,2025-12-18T04:44:53.526098 +AZURE,westus2,Standard_D16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:44:53.525952 +AZURE,westus2,Standard_D16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:44:55.668911 +AZURE,westus2,Standard_D16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:44:55.668913 +AZURE,westus2,Standard_D16ads_v6,spot,NA,0.168538,USD,Azure Retail Prices API,2025-12-18T04:44:53.525045 +AZURE,westus2,Standard_D16as_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:53.523927 +AZURE,westus2,Standard_D16as_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:44:55.667557 +AZURE,westus2,Standard_D16as_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:44:55.667560 +AZURE,westus2,Standard_D16as_v4,spot,NA,0.187469,USD,Azure Retail Prices API,2025-12-18T04:44:53.525519 +AZURE,westus2,Standard_D16as_v5,on_demand,NA,1.424,USD,Azure Retail Prices API,2025-12-18T04:44:53.524645 +AZURE,westus2,Standard_D16as_v5,reserved_1y,NA,0.405936,USD,Azure Retail Prices API,2025-12-18T04:44:55.668642 +AZURE,westus2,Standard_D16as_v5,reserved_3y,NA,0.261454,USD,Azure Retail Prices API,2025-12-18T04:44:55.668645 +AZURE,westus2,Standard_D16as_v5,spot,NA,0.173032,USD,Azure Retail Prices API,2025-12-18T04:44:53.524263 +AZURE,westus2,Standard_D16d_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:53.525945 +AZURE,westus2,Standard_D16d_v4,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:44:55.668905 +AZURE,westus2,Standard_D16d_v4,reserved_3y,NA,0.339916,USD,Azure Retail Prices API,2025-12-18T04:44:55.668908 +AZURE,westus2,Standard_D16d_v4,spot,NA,0.224825,USD,Azure Retail Prices API,2025-12-18T04:44:53.524529 +AZURE,westus2,Standard_D16ds_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:53.526332 +AZURE,westus2,Standard_D16ds_v4,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:44:55.669096 +AZURE,westus2,Standard_D16ds_v4,reserved_3y,NA,0.339916,USD,Azure Retail Prices API,2025-12-18T04:44:55.669098 +AZURE,westus2,Standard_D16ds_v4,spot,NA,0.224825,USD,Azure Retail Prices API,2025-12-18T04:44:53.523932 +AZURE,westus2,Standard_D16ds_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:53.525609 +AZURE,westus2,Standard_D16ds_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:44:55.668750 +AZURE,westus2,Standard_D16ds_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:44:55.668752 +AZURE,westus2,Standard_D16ds_v5,spot,NA,0.224825,USD,Azure Retail Prices API,2025-12-18T04:44:53.524766 +AZURE,westus2,Standard_D16ds_v6,on_demand,NA,0.997,USD,Azure Retail Prices API,2025-12-18T04:44:53.525005 +AZURE,westus2,Standard_D16ds_v6,reserved_1y,NA,0.617922,USD,Azure Retail Prices API,2025-12-18T04:44:55.668382 +AZURE,westus2,Standard_D16ds_v6,reserved_3y,NA,0.388699,USD,Azure Retail Prices API,2025-12-18T04:44:55.668384 +AZURE,westus2,Standard_D16ds_v6,spot,NA,0.184246,USD,Azure Retail Prices API,2025-12-18T04:44:53.524960 +AZURE,westus2,Standard_D16pds_v6,on_demand,NA,0.734,USD,Azure Retail Prices API,2025-12-18T04:44:53.525718 +AZURE,westus2,Standard_D16pds_v6,reserved_1y,NA,0.433333,USD,Azure Retail Prices API,2025-12-18T04:44:55.668777 +AZURE,westus2,Standard_D16pds_v6,reserved_3y,NA,0.279072,USD,Azure Retail Prices API,2025-12-18T04:44:55.668780 +AZURE,westus2,Standard_D16pds_v6,spot,NA,0.135643,USD,Azure Retail Prices API,2025-12-18T04:44:53.524410 +AZURE,westus2,Standard_D16ps_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:44:53.526347 +AZURE,westus2,Standard_D16ps_v6,reserved_1y,NA,0.331393,USD,Azure Retail Prices API,2025-12-18T04:44:55.669101 +AZURE,westus2,Standard_D16ps_v6,reserved_3y,NA,0.213394,USD,Azure Retail Prices API,2025-12-18T04:44:55.669104 +AZURE,westus2,Standard_D16ps_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:44:53.524808 +AZURE,westus2,Standard_D16s_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:53.525306 +AZURE,westus2,Standard_D16s_v3,reserved_1y,NA,0.457991,USD,Azure Retail Prices API,2025-12-18T04:44:55.668532 +AZURE,westus2,Standard_D16s_v3,reserved_3y,NA,0.294787,USD,Azure Retail Prices API,2025-12-18T04:44:55.668537 +AZURE,westus2,Standard_D16s_v3,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:53.525213 +AZURE,westus2,Standard_D16s_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:53.524673 +AZURE,westus2,Standard_D16s_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:44:55.668048 +AZURE,westus2,Standard_D16s_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:44:55.668051 +AZURE,westus2,Standard_D16s_v4,spot,NA,0.198835,USD,Azure Retail Prices API,2025-12-18T04:44:53.524586 +AZURE,westus2,Standard_D16s_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:53.524160 +AZURE,westus2,Standard_D16s_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:44:55.667702 +AZURE,westus2,Standard_D16s_v5,reserved_3y,NA,0.28417,USD,Azure Retail Prices API,2025-12-18T04:44:55.667705 +AZURE,westus2,Standard_D16s_v5,spot,NA,0.198835,USD,Azure Retail Prices API,2025-12-18T04:44:53.526179 +AZURE,westus2,Standard_D2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:44:53.525169 +AZURE,westus2,Standard_D2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:44:55.668447 +AZURE,westus2,Standard_D2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:44:55.668450 +AZURE,westus2,Standard_D2ads_v6,spot,NA,0.021067,USD,Azure Retail Prices API,2025-12-18T04:44:53.524868 +AZURE,westus2,Standard_D2ds_v6,on_demand,NA,0.125,USD,Azure Retail Prices API,2025-12-18T04:44:53.525933 +AZURE,westus2,Standard_D2ds_v6,reserved_1y,NA,0.077283,USD,Azure Retail Prices API,2025-12-18T04:44:55.668895 +AZURE,westus2,Standard_D2ds_v6,reserved_3y,NA,0.048592,USD,Azure Retail Prices API,2025-12-18T04:44:55.668897 +AZURE,westus2,Standard_D2ds_v6,spot,NA,0.0231,USD,Azure Retail Prices API,2025-12-18T04:44:53.525178 +AZURE,westus2,Standard_D32_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:53.524969 +AZURE,westus2,Standard_D32_v3,reserved_1y,NA,0.915982,USD,Azure Retail Prices API,2025-12-18T04:44:55.668342 +AZURE,westus2,Standard_D32_v3,reserved_3y,NA,0.589574,USD,Azure Retail Prices API,2025-12-18T04:44:55.668345 +AZURE,westus2,Standard_D32_v3,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:53.524329 +AZURE,westus2,Standard_D32a_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:53.523937 +AZURE,westus2,Standard_D32a_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:44:55.667564 +AZURE,westus2,Standard_D32a_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:44:55.667567 +AZURE,westus2,Standard_D32a_v4,spot,NA,0.374938,USD,Azure Retail Prices API,2025-12-18T04:44:53.524656 +AZURE,westus2,Standard_D32ads_v5,on_demand,NA,1.648,USD,Azure Retail Prices API,2025-12-18T04:44:53.524597 +AZURE,westus2,Standard_D32ads_v5,reserved_1y,NA,0.972374,USD,Azure Retail Prices API,2025-12-18T04:44:55.667998 +AZURE,westus2,Standard_D32ads_v5,reserved_3y,NA,0.626256,USD,Azure Retail Prices API,2025-12-18T04:44:55.668001 +AZURE,westus2,Standard_D32ads_v5,spot,NA,0.414472,USD,Azure Retail Prices API,2025-12-18T04:44:53.525105 +AZURE,westus2,Standard_D32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:44:53.526127 +AZURE,westus2,Standard_D32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:44:55.668984 +AZURE,westus2,Standard_D32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:44:55.668987 +AZURE,westus2,Standard_D32ads_v6,spot,NA,0.337075,USD,Azure Retail Prices API,2025-12-18T04:44:53.524858 +AZURE,westus2,Standard_D32as_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:53.526302 +AZURE,westus2,Standard_D32as_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:44:55.669069 +AZURE,westus2,Standard_D32as_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:44:55.669072 +AZURE,westus2,Standard_D32as_v4,spot,NA,0.374938,USD,Azure Retail Prices API,2025-12-18T04:44:53.524580 +AZURE,westus2,Standard_D32as_v5,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:44:53.525348 +AZURE,westus2,Standard_D32as_v5,reserved_1y,NA,0.811872,USD,Azure Retail Prices API,2025-12-18T04:44:55.668561 +AZURE,westus2,Standard_D32as_v5,reserved_3y,NA,0.522869,USD,Azure Retail Prices API,2025-12-18T04:44:55.668564 +AZURE,westus2,Standard_D32as_v5,spot,NA,0.346064,USD,Azure Retail Prices API,2025-12-18T04:44:53.524650 +AZURE,westus2,Standard_D32d_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:53.525343 +AZURE,westus2,Standard_D32d_v4,reserved_1y,NA,1.063128,USD,Azure Retail Prices API,2025-12-18T04:44:55.668552 +AZURE,westus2,Standard_D32d_v4,reserved_3y,NA,0.679795,USD,Azure Retail Prices API,2025-12-18T04:44:55.668557 +AZURE,westus2,Standard_D32d_v4,spot,NA,0.44965,USD,Azure Retail Prices API,2025-12-18T04:44:53.525353 +AZURE,westus2,Standard_D32ds_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:53.523966 +AZURE,westus2,Standard_D32ds_v4,reserved_1y,NA,1.063128,USD,Azure Retail Prices API,2025-12-18T04:44:55.667576 +AZURE,westus2,Standard_D32ds_v4,reserved_3y,NA,0.679795,USD,Azure Retail Prices API,2025-12-18T04:44:55.667579 +AZURE,westus2,Standard_D32ds_v4,spot,NA,0.44965,USD,Azure Retail Prices API,2025-12-18T04:44:53.524620 +AZURE,westus2,Standard_D32ds_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:53.524239 +AZURE,westus2,Standard_D32ds_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:44:55.667761 +AZURE,westus2,Standard_D32ds_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:44:55.667763 +AZURE,westus2,Standard_D32ds_v5,spot,NA,0.44965,USD,Azure Retail Prices API,2025-12-18T04:44:53.525587 +AZURE,westus2,Standard_D32ds_v6,on_demand,NA,1.993,USD,Azure Retail Prices API,2025-12-18T04:44:53.524955 +AZURE,westus2,Standard_D32ds_v6,reserved_1y,NA,1.235845,USD,Azure Retail Prices API,2025-12-18T04:44:55.668326 +AZURE,westus2,Standard_D32ds_v6,reserved_3y,NA,0.777397,USD,Azure Retail Prices API,2025-12-18T04:44:55.668328 +AZURE,westus2,Standard_D32ds_v6,spot,NA,0.368306,USD,Azure Retail Prices API,2025-12-18T04:44:53.523981 +AZURE,westus2,Standard_D32pds_v6,on_demand,NA,1.469,USD,Azure Retail Prices API,2025-12-18T04:44:53.525990 +AZURE,westus2,Standard_D32pds_v6,reserved_1y,NA,0.866553,USD,Azure Retail Prices API,2025-12-18T04:44:55.668937 +AZURE,westus2,Standard_D32pds_v6,reserved_3y,NA,0.558143,USD,Azure Retail Prices API,2025-12-18T04:44:55.668940 +AZURE,westus2,Standard_D32pds_v6,spot,NA,0.271471,USD,Azure Retail Prices API,2025-12-18T04:44:53.526322 +AZURE,westus2,Standard_D32ps_v6,on_demand,NA,1.123,USD,Azure Retail Prices API,2025-12-18T04:44:53.525805 +AZURE,westus2,Standard_D32ps_v6,reserved_1y,NA,0.662671,USD,Azure Retail Prices API,2025-12-18T04:44:55.668809 +AZURE,westus2,Standard_D32ps_v6,reserved_3y,NA,0.426826,USD,Azure Retail Prices API,2025-12-18T04:44:55.668811 +AZURE,westus2,Standard_D32ps_v6,spot,NA,0.20753,USD,Azure Retail Prices API,2025-12-18T04:44:53.525686 +AZURE,westus2,Standard_D32s_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:53.524606 +AZURE,westus2,Standard_D32s_v3,reserved_1y,NA,0.915982,USD,Azure Retail Prices API,2025-12-18T04:44:55.668004 +AZURE,westus2,Standard_D32s_v3,reserved_3y,NA,0.589574,USD,Azure Retail Prices API,2025-12-18T04:44:55.668006 +AZURE,westus2,Standard_D32s_v3,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:53.526046 +AZURE,westus2,Standard_D32s_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:53.526076 +AZURE,westus2,Standard_D32s_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:44:55.668958 +AZURE,westus2,Standard_D32s_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:44:55.668961 +AZURE,westus2,Standard_D32s_v4,spot,NA,0.39767,USD,Azure Retail Prices API,2025-12-18T04:44:53.524840 +AZURE,westus2,Standard_D32s_v5,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:53.525592 +AZURE,westus2,Standard_D32s_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:44:55.668744 +AZURE,westus2,Standard_D32s_v5,reserved_3y,NA,0.568303,USD,Azure Retail Prices API,2025-12-18T04:44:55.668747 +AZURE,westus2,Standard_D32s_v5,spot,NA,0.39767,USD,Azure Retail Prices API,2025-12-18T04:44:53.525634 +AZURE,westus2,Standard_D3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485127 +AZURE,westus2,Standard_D3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485136 +AZURE,westus2,Standard_D3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485140 +AZURE,westus2,Standard_D3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485132 +AZURE,westus2,Standard_D48a_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:53.524728 +AZURE,westus2,Standard_D48a_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:55.668107 +AZURE,westus2,Standard_D48a_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:55.668110 +AZURE,westus2,Standard_D48a_v4,spot,NA,0.562406,USD,Azure Retail Prices API,2025-12-18T04:44:53.525995 +AZURE,westus2,Standard_D48ads_v5,on_demand,NA,4.68,USD,Azure Retail Prices API,2025-12-18T04:44:53.524535 +AZURE,westus2,Standard_D48ads_v5,reserved_1y,NA,1.458447,USD,Azure Retail Prices API,2025-12-18T04:44:55.668414 +AZURE,westus2,Standard_D48ads_v5,reserved_3y,NA,0.939346,USD,Azure Retail Prices API,2025-12-18T04:44:55.668417 +AZURE,westus2,Standard_D48ads_v5,spot,NA,0.621708,USD,Azure Retail Prices API,2025-12-18T04:44:53.525571 +AZURE,westus2,Standard_D48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:44:53.525850 +AZURE,westus2,Standard_D48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:44:55.668835 +AZURE,westus2,Standard_D48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:44:55.668838 +AZURE,westus2,Standard_D48ads_v6,spot,NA,0.505613,USD,Azure Retail Prices API,2025-12-18T04:44:53.524421 +AZURE,westus2,Standard_D48as_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:53.525120 +AZURE,westus2,Standard_D48as_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:55.668425 +AZURE,westus2,Standard_D48as_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:55.668428 +AZURE,westus2,Standard_D48as_v4,spot,NA,0.562406,USD,Azure Retail Prices API,2025-12-18T04:44:53.525126 +AZURE,westus2,Standard_D48as_v5,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:44:53.524455 +AZURE,westus2,Standard_D48as_v5,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:44:55.667912 +AZURE,westus2,Standard_D48as_v5,reserved_3y,NA,0.784323,USD,Azure Retail Prices API,2025-12-18T04:44:55.667915 +AZURE,westus2,Standard_D48as_v5,spot,NA,0.519096,USD,Azure Retail Prices API,2025-12-18T04:44:53.525014 +AZURE,westus2,Standard_D48d_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:53.525488 +AZURE,westus2,Standard_D48d_v4,reserved_1y,NA,1.594635,USD,Azure Retail Prices API,2025-12-18T04:44:55.668685 +AZURE,westus2,Standard_D48d_v4,reserved_3y,NA,1.019711,USD,Azure Retail Prices API,2025-12-18T04:44:55.668688 +AZURE,westus2,Standard_D48d_v4,spot,NA,0.674474,USD,Azure Retail Prices API,2025-12-18T04:44:53.524659 +AZURE,westus2,Standard_D48ds_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:53.524850 +AZURE,westus2,Standard_D48ds_v4,reserved_1y,NA,1.594635,USD,Azure Retail Prices API,2025-12-18T04:44:55.668210 +AZURE,westus2,Standard_D48ds_v4,reserved_3y,NA,1.019711,USD,Azure Retail Prices API,2025-12-18T04:44:55.668212 +AZURE,westus2,Standard_D48ds_v4,spot,NA,0.674474,USD,Azure Retail Prices API,2025-12-18T04:44:53.525018 +AZURE,westus2,Standard_D48ds_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:53.525229 +AZURE,westus2,Standard_D48ds_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:44:55.668490 +AZURE,westus2,Standard_D48ds_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:44:55.668493 +AZURE,westus2,Standard_D48ds_v5,spot,NA,0.674474,USD,Azure Retail Prices API,2025-12-18T04:44:53.524400 +AZURE,westus2,Standard_D48ds_v6,on_demand,NA,2.99,USD,Azure Retail Prices API,2025-12-18T04:44:53.526142 +AZURE,westus2,Standard_D48ds_v6,reserved_1y,NA,1.853767,USD,Azure Retail Prices API,2025-12-18T04:44:55.669000 +AZURE,westus2,Standard_D48ds_v6,reserved_3y,NA,1.166058,USD,Azure Retail Prices API,2025-12-18T04:44:55.669003 +AZURE,westus2,Standard_D48ds_v6,spot,NA,0.552552,USD,Azure Retail Prices API,2025-12-18T04:44:53.524796 +AZURE,westus2,Standard_D48pds_v6,on_demand,NA,2.203,USD,Azure Retail Prices API,2025-12-18T04:44:53.525144 +AZURE,westus2,Standard_D48pds_v6,reserved_1y,NA,1.299886,USD,Azure Retail Prices API,2025-12-18T04:44:55.668430 +AZURE,westus2,Standard_D48pds_v6,reserved_3y,NA,0.837215,USD,Azure Retail Prices API,2025-12-18T04:44:55.668433 +AZURE,westus2,Standard_D48pds_v6,spot,NA,0.407114,USD,Azure Retail Prices API,2025-12-18T04:44:53.524614 +AZURE,westus2,Standard_D48ps_v6,on_demand,NA,1.685,USD,Azure Retail Prices API,2025-12-18T04:44:53.525051 +AZURE,westus2,Standard_D48ps_v6,reserved_1y,NA,0.994064,USD,Azure Retail Prices API,2025-12-18T04:44:55.668408 +AZURE,westus2,Standard_D48ps_v6,reserved_3y,NA,0.640221,USD,Azure Retail Prices API,2025-12-18T04:44:55.668411 +AZURE,westus2,Standard_D48ps_v6,spot,NA,0.311388,USD,Azure Retail Prices API,2025-12-18T04:44:53.526257 +AZURE,westus2,Standard_D48s_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:53.525923 +AZURE,westus2,Standard_D48s_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:55.668889 +AZURE,westus2,Standard_D48s_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:55.668892 +AZURE,westus2,Standard_D48s_v4,spot,NA,0.596506,USD,Azure Retail Prices API,2025-12-18T04:44:53.525028 +AZURE,westus2,Standard_D48s_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:53.526056 +AZURE,westus2,Standard_D48s_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:55.668947 +AZURE,westus2,Standard_D48s_v5,reserved_3y,NA,0.852473,USD,Azure Retail Prices API,2025-12-18T04:44:55.668950 +AZURE,westus2,Standard_D48s_v5,spot,NA,0.596506,USD,Azure Retail Prices API,2025-12-18T04:44:53.525234 +AZURE,westus2,Standard_D4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485996 +AZURE,westus2,Standard_D4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486004 +AZURE,westus2,Standard_D4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486008 +AZURE,westus2,Standard_D4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486000 +AZURE,westus2,Standard_D4a_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:53.524349 +AZURE,westus2,Standard_D4a_v4,reserved_1y,NA,0.1129,USD,Azure Retail Prices API,2025-12-18T04:44:55.667838 +AZURE,westus2,Standard_D4a_v4,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:44:55.667841 +AZURE,westus2,Standard_D4a_v4,spot,NA,0.046867,USD,Azure Retail Prices API,2025-12-18T04:44:53.525270 +AZURE,westus2,Standard_D4ads_v5,on_demand,NA,0.39,USD,Azure Retail Prices API,2025-12-18T04:44:53.524788 +AZURE,westus2,Standard_D4ads_v5,reserved_1y,NA,0.121575,USD,Azure Retail Prices API,2025-12-18T04:44:55.668727 +AZURE,westus2,Standard_D4ads_v5,reserved_3y,NA,0.078272,USD,Azure Retail Prices API,2025-12-18T04:44:55.668730 +AZURE,westus2,Standard_D4ads_v5,spot,NA,0.051809,USD,Azure Retail Prices API,2025-12-18T04:44:53.524506 +AZURE,westus2,Standard_D4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:44:53.524782 +AZURE,westus2,Standard_D4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:44:55.668150 +AZURE,westus2,Standard_D4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:44:55.668153 +AZURE,westus2,Standard_D4ads_v6,spot,NA,0.042134,USD,Azure Retail Prices API,2025-12-18T04:44:53.525783 +AZURE,westus2,Standard_D4as_v5,on_demand,NA,0.356,USD,Azure Retail Prices API,2025-12-18T04:44:53.523976 +AZURE,westus2,Standard_D4as_v5,reserved_1y,NA,0.101484,USD,Azure Retail Prices API,2025-12-18T04:44:55.667669 +AZURE,westus2,Standard_D4as_v5,reserved_3y,NA,0.065373,USD,Azure Retail Prices API,2025-12-18T04:44:55.667672 +AZURE,westus2,Standard_D4as_v5,spot,NA,0.043258,USD,Azure Retail Prices API,2025-12-18T04:44:53.525509 +AZURE,westus2,Standard_D4d_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:53.524925 +AZURE,westus2,Standard_D4d_v4,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:44:55.668292 +AZURE,westus2,Standard_D4d_v4,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:44:55.668295 +AZURE,westus2,Standard_D4d_v4,spot,NA,0.056206,USD,Azure Retail Prices API,2025-12-18T04:44:53.524572 +AZURE,westus2,Standard_D4ds_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:53.526137 +AZURE,westus2,Standard_D4ds_v4,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:44:55.668995 +AZURE,westus2,Standard_D4ds_v4,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:44:55.668997 +AZURE,westus2,Standard_D4ds_v4,spot,NA,0.056206,USD,Azure Retail Prices API,2025-12-18T04:44:53.524933 +AZURE,westus2,Standard_D4ds_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:53.525295 +AZURE,westus2,Standard_D4ds_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:44:55.668523 +AZURE,westus2,Standard_D4ds_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:44:55.668527 +AZURE,westus2,Standard_D4ds_v5,spot,NA,0.056206,USD,Azure Retail Prices API,2025-12-18T04:44:53.524436 +AZURE,westus2,Standard_D4ds_v6,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:44:53.524679 +AZURE,westus2,Standard_D4ds_v6,reserved_1y,NA,0.154452,USD,Azure Retail Prices API,2025-12-18T04:44:55.668054 +AZURE,westus2,Standard_D4ds_v6,reserved_3y,NA,0.097184,USD,Azure Retail Prices API,2025-12-18T04:44:55.668056 +AZURE,westus2,Standard_D4ds_v6,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:44:53.525793 +AZURE,westus2,Standard_D4pds_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:44:53.525473 +AZURE,westus2,Standard_D4pds_v6,reserved_1y,NA,0.108333,USD,Azure Retail Prices API,2025-12-18T04:44:55.668671 +AZURE,westus2,Standard_D4pds_v6,reserved_3y,NA,0.069787,USD,Azure Retail Prices API,2025-12-18T04:44:55.668676 +AZURE,westus2,Standard_D4pds_v6,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:44:53.524134 +AZURE,westus2,Standard_D4ps_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:44:53.524817 +AZURE,westus2,Standard_D4ps_v6,reserved_1y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:44:55.668183 +AZURE,westus2,Standard_D4ps_v6,reserved_3y,NA,0.053349,USD,Azure Retail Prices API,2025-12-18T04:44:55.668185 +AZURE,westus2,Standard_D4ps_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:44:53.526010 +AZURE,westus2,Standard_D4s_v3,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:53.524315 +AZURE,westus2,Standard_D4s_v3,reserved_1y,NA,0.114498,USD,Azure Retail Prices API,2025-12-18T04:44:55.667827 +AZURE,westus2,Standard_D4s_v3,reserved_3y,NA,0.073706,USD,Azure Retail Prices API,2025-12-18T04:44:55.667830 +AZURE,westus2,Standard_D4s_v3,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:44:53.524078 +AZURE,westus2,Standard_D4s_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:53.525918 +AZURE,westus2,Standard_D4s_v4,reserved_1y,NA,0.1129,USD,Azure Retail Prices API,2025-12-18T04:44:55.668881 +AZURE,westus2,Standard_D4s_v4,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:44:55.668886 +AZURE,westus2,Standard_D4s_v4,spot,NA,0.049709,USD,Azure Retail Prices API,2025-12-18T04:44:53.524740 +AZURE,westus2,Standard_D4s_v5,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:53.524708 +AZURE,westus2,Standard_D4s_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:44:55.668086 +AZURE,westus2,Standard_D4s_v5,reserved_3y,NA,0.071043,USD,Azure Retail Prices API,2025-12-18T04:44:55.668089 +AZURE,westus2,Standard_D4s_v5,spot,NA,0.049709,USD,Azure Retail Prices API,2025-12-18T04:44:53.524380 +AZURE,westus2,Standard_D5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486954 +AZURE,westus2,Standard_D5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486969 +AZURE,westus2,Standard_D5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486977 +AZURE,westus2,Standard_D5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486962 +AZURE,westus2,Standard_D64_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:53.524281 +AZURE,westus2,Standard_D64_v3,reserved_1y,NA,1.831963,USD,Azure Retail Prices API,2025-12-18T04:44:55.667792 +AZURE,westus2,Standard_D64_v3,reserved_3y,NA,1.179148,USD,Azure Retail Prices API,2025-12-18T04:44:55.667794 +AZURE,westus2,Standard_D64_v3,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:53.525963 +AZURE,westus2,Standard_D64a_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:53.525163 +AZURE,westus2,Standard_D64a_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:44:55.668441 +AZURE,westus2,Standard_D64a_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:44:55.668444 +AZURE,westus2,Standard_D64a_v4,spot,NA,0.749875,USD,Azure Retail Prices API,2025-12-18T04:44:53.525879 +AZURE,westus2,Standard_D64ads_v5,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:44:53.524532 +AZURE,westus2,Standard_D64ads_v5,reserved_1y,NA,1.944635,USD,Azure Retail Prices API,2025-12-18T04:44:55.669085 +AZURE,westus2,Standard_D64ads_v5,reserved_3y,NA,1.252473,USD,Azure Retail Prices API,2025-12-18T04:44:55.669088 +AZURE,westus2,Standard_D64ads_v5,spot,NA,0.828944,USD,Azure Retail Prices API,2025-12-18T04:44:53.525188 +AZURE,westus2,Standard_D64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:44:53.525535 +AZURE,westus2,Standard_D64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:44:55.668711 +AZURE,westus2,Standard_D64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:44:55.668714 +AZURE,westus2,Standard_D64ads_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:44:53.524465 +AZURE,westus2,Standard_D64as_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:53.525577 +AZURE,westus2,Standard_D64as_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:44:55.668733 +AZURE,westus2,Standard_D64as_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:44:55.668736 +AZURE,westus2,Standard_D64as_v4,spot,NA,0.749875,USD,Azure Retail Prices API,2025-12-18T04:44:53.526169 +AZURE,westus2,Standard_D64as_v5,on_demand,NA,2.752,USD,Azure Retail Prices API,2025-12-18T04:44:53.524705 +AZURE,westus2,Standard_D64as_v5,reserved_1y,NA,1.62363,USD,Azure Retail Prices API,2025-12-18T04:44:55.668081 +AZURE,westus2,Standard_D64as_v5,reserved_3y,NA,1.045776,USD,Azure Retail Prices API,2025-12-18T04:44:55.668083 +AZURE,westus2,Standard_D64as_v5,spot,NA,0.692128,USD,Azure Retail Prices API,2025-12-18T04:44:53.526061 +AZURE,westus2,Standard_D64d_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:53.524538 +AZURE,westus2,Standard_D64d_v4,reserved_1y,NA,2.126256,USD,Azure Retail Prices API,2025-12-18T04:44:55.667950 +AZURE,westus2,Standard_D64d_v4,reserved_3y,NA,1.359627,USD,Azure Retail Prices API,2025-12-18T04:44:55.667952 +AZURE,westus2,Standard_D64d_v4,spot,NA,0.899299,USD,Azure Retail Prices API,2025-12-18T04:44:53.525422 +AZURE,westus2,Standard_D64ds_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:53.525702 +AZURE,westus2,Standard_D64ds_v4,reserved_1y,NA,2.126256,USD,Azure Retail Prices API,2025-12-18T04:44:55.668766 +AZURE,westus2,Standard_D64ds_v4,reserved_3y,NA,1.359627,USD,Azure Retail Prices API,2025-12-18T04:44:55.668769 +AZURE,westus2,Standard_D64ds_v4,spot,NA,0.899299,USD,Azure Retail Prices API,2025-12-18T04:44:53.524225 +AZURE,westus2,Standard_D64ds_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:53.523910 +AZURE,westus2,Standard_D64ds_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:44:55.667541 +AZURE,westus2,Standard_D64ds_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:44:55.667554 +AZURE,westus2,Standard_D64ds_v5,spot,NA,0.899299,USD,Azure Retail Prices API,2025-12-18T04:44:53.524731 +AZURE,westus2,Standard_D64ds_v6,on_demand,NA,3.987,USD,Azure Retail Prices API,2025-12-18T04:44:53.524913 +AZURE,westus2,Standard_D64ds_v6,reserved_1y,NA,2.471689,USD,Azure Retail Prices API,2025-12-18T04:44:55.668281 +AZURE,westus2,Standard_D64ds_v6,reserved_3y,NA,1.554756,USD,Azure Retail Prices API,2025-12-18T04:44:55.668284 +AZURE,westus2,Standard_D64ds_v6,spot,NA,0.736798,USD,Azure Retail Prices API,2025-12-18T04:44:53.526042 +AZURE,westus2,Standard_D64pds_v6,on_demand,NA,2.938,USD,Azure Retail Prices API,2025-12-18T04:44:53.525499 +AZURE,westus2,Standard_D64pds_v6,reserved_1y,NA,1.733219,USD,Azure Retail Prices API,2025-12-18T04:44:55.668695 +AZURE,westus2,Standard_D64pds_v6,reserved_3y,NA,1.116286,USD,Azure Retail Prices API,2025-12-18T04:44:55.668698 +AZURE,westus2,Standard_D64pds_v6,spot,NA,0.542942,USD,Azure Retail Prices API,2025-12-18T04:44:53.524694 +AZURE,westus2,Standard_D64ps_v6,on_demand,NA,2.246,USD,Azure Retail Prices API,2025-12-18T04:44:53.525561 +AZURE,westus2,Standard_D64ps_v6,reserved_1y,NA,1.325342,USD,Azure Retail Prices API,2025-12-18T04:44:55.668722 +AZURE,westus2,Standard_D64ps_v6,reserved_3y,NA,0.853615,USD,Azure Retail Prices API,2025-12-18T04:44:55.668725 +AZURE,westus2,Standard_D64ps_v6,spot,NA,0.415061,USD,Azure Retail Prices API,2025-12-18T04:44:53.525338 +AZURE,westus2,Standard_D64s_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:53.524837 +AZURE,westus2,Standard_D64s_v3,reserved_1y,NA,1.831963,USD,Azure Retail Prices API,2025-12-18T04:44:55.668199 +AZURE,westus2,Standard_D64s_v3,reserved_3y,NA,1.179148,USD,Azure Retail Prices API,2025-12-18T04:44:55.668201 +AZURE,westus2,Standard_D64s_v3,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:53.525652 +AZURE,westus2,Standard_D64s_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:53.525433 +AZURE,westus2,Standard_D64s_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:44:55.668631 +AZURE,westus2,Standard_D64s_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:44:55.668634 +AZURE,westus2,Standard_D64s_v4,spot,NA,0.795341,USD,Azure Retail Prices API,2025-12-18T04:44:53.525464 +AZURE,westus2,Standard_D64s_v5,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:53.524892 +AZURE,westus2,Standard_D64s_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:44:55.668248 +AZURE,westus2,Standard_D64s_v5,reserved_3y,NA,1.136644,USD,Azure Retail Prices API,2025-12-18T04:44:55.668251 +AZURE,westus2,Standard_D64s_v5,spot,NA,0.795341,USD,Azure Retail Prices API,2025-12-18T04:44:53.524450 +AZURE,westus2,Standard_D8_v3,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:53.524051 +AZURE,westus2,Standard_D8_v3,reserved_1y,NA,0.228995,USD,Azure Retail Prices API,2025-12-18T04:44:55.667635 +AZURE,westus2,Standard_D8_v3,reserved_3y,NA,0.147374,USD,Azure Retail Prices API,2025-12-18T04:44:55.667638 +AZURE,westus2,Standard_D8_v3,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:44:53.524617 +AZURE,westus2,Standard_D8a_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:53.525311 +AZURE,westus2,Standard_D8a_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:44:55.668543 +AZURE,westus2,Standard_D8a_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:44:55.668548 +AZURE,westus2,Standard_D8a_v4,spot,NA,0.093734,USD,Azure Retail Prices API,2025-12-18T04:44:53.524769 +AZURE,westus2,Standard_D8ads_v5,on_demand,NA,0.78,USD,Azure Retail Prices API,2025-12-18T04:44:53.524734 +AZURE,westus2,Standard_D8ads_v5,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:44:55.668232 +AZURE,westus2,Standard_D8ads_v5,reserved_3y,NA,0.156545,USD,Azure Retail Prices API,2025-12-18T04:44:55.668234 +AZURE,westus2,Standard_D8ads_v5,spot,NA,0.103618,USD,Azure Retail Prices API,2025-12-18T04:44:53.525833 +AZURE,westus2,Standard_D8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:44:53.525401 +AZURE,westus2,Standard_D8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:44:55.668613 +AZURE,westus2,Standard_D8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:44:55.668617 +AZURE,westus2,Standard_D8ads_v6,spot,NA,0.084269,USD,Azure Retail Prices API,2025-12-18T04:44:53.525033 +AZURE,westus2,Standard_D8as_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:53.525443 +AZURE,westus2,Standard_D8as_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:44:55.668637 +AZURE,westus2,Standard_D8as_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:44:55.668639 +AZURE,westus2,Standard_D8as_v4,spot,NA,0.093734,USD,Azure Retail Prices API,2025-12-18T04:44:53.524595 +AZURE,westus2,Standard_D8as_v5,on_demand,NA,0.712,USD,Azure Retail Prices API,2025-12-18T04:44:53.524885 +AZURE,westus2,Standard_D8as_v5,reserved_1y,NA,0.202968,USD,Azure Retail Prices API,2025-12-18T04:44:55.668738 +AZURE,westus2,Standard_D8as_v5,reserved_3y,NA,0.130708,USD,Azure Retail Prices API,2025-12-18T04:44:55.668741 +AZURE,westus2,Standard_D8as_v5,spot,NA,0.086516,USD,Azure Retail Prices API,2025-12-18T04:44:53.524560 +AZURE,westus2,Standard_D8d_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:53.524229 +AZURE,westus2,Standard_D8d_v4,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:44:55.667749 +AZURE,westus2,Standard_D8d_v4,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:44:55.667752 +AZURE,westus2,Standard_D8d_v4,spot,NA,0.112412,USD,Azure Retail Prices API,2025-12-18T04:44:53.524025 +AZURE,westus2,Standard_D8ds_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:53.525183 +AZURE,westus2,Standard_D8ds_v4,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:44:55.668452 +AZURE,westus2,Standard_D8ds_v4,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:44:55.668455 +AZURE,westus2,Standard_D8ds_v4,spot,NA,0.112412,USD,Azure Retail Prices API,2025-12-18T04:44:53.524919 +AZURE,westus2,Standard_D8ds_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:53.525386 +AZURE,westus2,Standard_D8ds_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:44:55.668595 +AZURE,westus2,Standard_D8ds_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:44:55.668598 +AZURE,westus2,Standard_D8ds_v5,spot,NA,0.112412,USD,Azure Retail Prices API,2025-12-18T04:44:53.525556 +AZURE,westus2,Standard_D8ds_v6,on_demand,NA,0.498,USD,Azure Retail Prices API,2025-12-18T04:44:53.524930 +AZURE,westus2,Standard_D8ds_v6,reserved_1y,NA,0.308904,USD,Azure Retail Prices API,2025-12-18T04:44:55.668298 +AZURE,westus2,Standard_D8ds_v6,reserved_3y,NA,0.19433,USD,Azure Retail Prices API,2025-12-18T04:44:55.668301 +AZURE,westus2,Standard_D8ds_v6,spot,NA,0.09203,USD,Azure Retail Prices API,2025-12-18T04:44:53.524720 +AZURE,westus2,Standard_D8pds_v6,on_demand,NA,0.367,USD,Azure Retail Prices API,2025-12-18T04:44:53.525914 +AZURE,westus2,Standard_D8pds_v6,reserved_1y,NA,0.216667,USD,Azure Retail Prices API,2025-12-18T04:44:55.668870 +AZURE,westus2,Standard_D8pds_v6,reserved_3y,NA,0.139536,USD,Azure Retail Prices API,2025-12-18T04:44:55.668874 +AZURE,westus2,Standard_D8pds_v6,spot,NA,0.067822,USD,Azure Retail Prices API,2025-12-18T04:44:53.525624 +AZURE,westus2,Standard_D8ps_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:44:53.525370 +AZURE,westus2,Standard_D8ps_v6,reserved_1y,NA,0.165639,USD,Azure Retail Prices API,2025-12-18T04:44:55.668578 +AZURE,westus2,Standard_D8ps_v6,reserved_3y,NA,0.106697,USD,Azure Retail Prices API,2025-12-18T04:44:55.668581 +AZURE,westus2,Standard_D8ps_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:44:53.525603 +AZURE,westus2,Standard_D8s_v3,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:53.525249 +AZURE,westus2,Standard_D8s_v3,reserved_1y,NA,0.228995,USD,Azure Retail Prices API,2025-12-18T04:44:55.668506 +AZURE,westus2,Standard_D8s_v3,reserved_3y,NA,0.147374,USD,Azure Retail Prices API,2025-12-18T04:44:55.668509 +AZURE,westus2,Standard_D8s_v3,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:44:53.526036 +AZURE,westus2,Standard_D8s_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:53.524577 +AZURE,westus2,Standard_D8s_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:44:55.667988 +AZURE,westus2,Standard_D8s_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:44:55.667991 +AZURE,westus2,Standard_D8s_v4,spot,NA,0.099418,USD,Azure Retail Prices API,2025-12-18T04:44:53.526089 +AZURE,westus2,Standard_D8s_v5,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:53.524703 +AZURE,westus2,Standard_D8s_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:44:55.668075 +AZURE,westus2,Standard_D8s_v5,reserved_3y,NA,0.142085,USD,Azure Retail Prices API,2025-12-18T04:44:55.668078 +AZURE,westus2,Standard_D8s_v5,spot,NA,0.099418,USD,Azure Retail Prices API,2025-12-18T04:44:53.525406 +AZURE,westus2,Standard_D96a_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:53.524916 +AZURE,westus2,Standard_D96a_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:44:55.668287 +AZURE,westus2,Standard_D96a_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:44:55.668289 +AZURE,westus2,Standard_D96a_v4,spot,NA,1.124813,USD,Azure Retail Prices API,2025-12-18T04:44:53.525867 +AZURE,westus2,Standard_D96ads_v5,on_demand,NA,9.36,USD,Azure Retail Prices API,2025-12-18T04:44:53.524267 +AZURE,westus2,Standard_D96ads_v5,reserved_1y,NA,2.917009,USD,Azure Retail Prices API,2025-12-18T04:44:55.668932 +AZURE,westus2,Standard_D96ads_v5,reserved_3y,NA,1.878729,USD,Azure Retail Prices API,2025-12-18T04:44:55.668934 +AZURE,westus2,Standard_D96ads_v5,spot,NA,1.243416,USD,Azure Retail Prices API,2025-12-18T04:44:53.524714 +AZURE,westus2,Standard_D96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:44:53.525290 +AZURE,westus2,Standard_D96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:44:55.668517 +AZURE,westus2,Standard_D96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:44:55.668520 +AZURE,westus2,Standard_D96ads_v6,spot,NA,1.011226,USD,Azure Retail Prices API,2025-12-18T04:44:53.524682 +AZURE,westus2,Standard_D96as_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:53.524139 +AZURE,westus2,Standard_D96as_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:44:55.667675 +AZURE,westus2,Standard_D96as_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:44:55.667678 +AZURE,westus2,Standard_D96as_v4,spot,NA,1.124813,USD,Azure Retail Prices API,2025-12-18T04:44:53.523986 +AZURE,westus2,Standard_D96as_v5,on_demand,NA,8.544,USD,Azure Retail Prices API,2025-12-18T04:44:53.524882 +AZURE,westus2,Standard_D96as_v5,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:44:55.668259 +AZURE,westus2,Standard_D96as_v5,reserved_3y,NA,1.568645,USD,Azure Retail Prices API,2025-12-18T04:44:55.668262 +AZURE,westus2,Standard_D96as_v5,spot,NA,1.038192,USD,Azure Retail Prices API,2025-12-18T04:44:53.525327 +AZURE,westus2,Standard_D96ds_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:53.524344 +AZURE,westus2,Standard_D96ds_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:44:55.667833 +AZURE,westus2,Standard_D96ds_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:44:55.667835 +AZURE,westus2,Standard_D96ds_v5,spot,NA,1.348949,USD,Azure Retail Prices API,2025-12-18T04:44:53.524978 +AZURE,westus2,Standard_D96ds_v6,on_demand,NA,5.98,USD,Azure Retail Prices API,2025-12-18T04:44:53.524020 +AZURE,westus2,Standard_D96ds_v6,reserved_1y,NA,3.707534,USD,Azure Retail Prices API,2025-12-18T04:44:55.667615 +AZURE,westus2,Standard_D96ds_v6,reserved_3y,NA,2.332154,USD,Azure Retail Prices API,2025-12-18T04:44:55.667619 +AZURE,westus2,Standard_D96ds_v6,spot,NA,1.105104,USD,Azure Retail Prices API,2025-12-18T04:44:53.525275 +AZURE,westus2,Standard_D96pds_v6,on_demand,NA,4.406,USD,Azure Retail Prices API,2025-12-18T04:44:53.525265 +AZURE,westus2,Standard_D96pds_v6,reserved_1y,NA,2.599772,USD,Azure Retail Prices API,2025-12-18T04:44:55.668512 +AZURE,westus2,Standard_D96pds_v6,reserved_3y,NA,1.674429,USD,Azure Retail Prices API,2025-12-18T04:44:55.668514 +AZURE,westus2,Standard_D96pds_v6,spot,NA,0.814229,USD,Azure Retail Prices API,2025-12-18T04:44:53.525646 +AZURE,westus2,Standard_D96ps_v6,on_demand,NA,3.37,USD,Azure Retail Prices API,2025-12-18T04:44:53.524359 +AZURE,westus2,Standard_D96ps_v6,reserved_1y,NA,1.988014,USD,Azure Retail Prices API,2025-12-18T04:44:55.667850 +AZURE,westus2,Standard_D96ps_v6,reserved_3y,NA,1.280441,USD,Azure Retail Prices API,2025-12-18T04:44:55.667853 +AZURE,westus2,Standard_D96ps_v6,spot,NA,0.622776,USD,Azure Retail Prices API,2025-12-18T04:44:53.524563 +AZURE,westus2,Standard_D96s_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:53.523942 +AZURE,westus2,Standard_D96s_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:44:55.667570 +AZURE,westus2,Standard_D96s_v5,reserved_3y,NA,1.704947,USD,Azure Retail Prices API,2025-12-18T04:44:55.667573 +AZURE,westus2,Standard_D96s_v5,spot,NA,1.193011,USD,Azure Retail Prices API,2025-12-18T04:44:53.524067 +AZURE,westus2,Standard_DC16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:44:53.524901 +AZURE,westus2,Standard_DC16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:44:55.668264 +AZURE,westus2,Standard_DC16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:44:55.668267 +AZURE,westus2,Standard_DC16ads_v6,spot,NA,0.168538,USD,Azure Retail Prices API,2025-12-18T04:44:53.524895 +AZURE,westus2,Standard_DC2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:44:53.524648 +AZURE,westus2,Standard_DC2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:44:55.668031 +AZURE,westus2,Standard_DC2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:44:55.668034 +AZURE,westus2,Standard_DC2ads_v6,spot,NA,0.021067,USD,Azure Retail Prices API,2025-12-18T04:44:53.525766 +AZURE,westus2,Standard_DC32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:44:53.524995 +AZURE,westus2,Standard_DC32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:44:55.668376 +AZURE,westus2,Standard_DC32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:44:55.668379 +AZURE,westus2,Standard_DC32ads_v6,spot,NA,0.337075,USD,Azure Retail Prices API,2025-12-18T04:44:53.525009 +AZURE,westus2,Standard_DC48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:44:53.524667 +AZURE,westus2,Standard_DC48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:44:55.668042 +AZURE,westus2,Standard_DC48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:44:55.668045 +AZURE,westus2,Standard_DC48ads_v6,spot,NA,0.505613,USD,Azure Retail Prices API,2025-12-18T04:44:53.525023 +AZURE,westus2,Standard_DC4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:44:53.526113 +AZURE,westus2,Standard_DC4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:44:55.668979 +AZURE,westus2,Standard_DC4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:44:55.668982 +AZURE,westus2,Standard_DC4ads_v6,spot,NA,0.042134,USD,Azure Retail Prices API,2025-12-18T04:44:53.523956 +AZURE,westus2,Standard_DC64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:44:53.524975 +AZURE,westus2,Standard_DC64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:44:55.668353 +AZURE,westus2,Standard_DC64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:44:55.668356 +AZURE,westus2,Standard_DC64ads_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:44:53.524035 +AZURE,westus2,Standard_DC8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:44:53.525839 +AZURE,westus2,Standard_DC8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:44:55.668825 +AZURE,westus2,Standard_DC8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:44:55.668827 +AZURE,westus2,Standard_DC8ads_v6,spot,NA,0.084269,USD,Azure Retail Prices API,2025-12-18T04:44:53.525861 +AZURE,westus2,Standard_DC96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:44:53.524945 +AZURE,westus2,Standard_DC96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:44:55.668315 +AZURE,westus2,Standard_DC96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:44:55.668317 +AZURE,westus2,Standard_DC96ads_v6,spot,NA,1.011226,USD,Azure Retail Prices API,2025-12-18T04:44:53.524854 +AZURE,westus2,Standard_DS12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495118 +AZURE,westus2,Standard_DS12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495127 +AZURE,westus2,Standard_DS12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495131 +AZURE,westus2,Standard_DS12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495123 +AZURE,westus2,Standard_DS13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495931 +AZURE,westus2,Standard_DS13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495947 +AZURE,westus2,Standard_DS13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495954 +AZURE,westus2,Standard_DS13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495940 +AZURE,westus2,Standard_DS14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496761 +AZURE,westus2,Standard_DS14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496769 +AZURE,westus2,Standard_DS14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496774 +AZURE,westus2,Standard_DS14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496765 +AZURE,westus2,Standard_DS15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497637 +AZURE,westus2,Standard_DS15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497647 +AZURE,westus2,Standard_DS15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497651 +AZURE,westus2,Standard_DS15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497643 +AZURE,westus2,Standard_DS1_v2,on_demand,NA,0.07665,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491483 +AZURE,westus2,Standard_DS1_v2,reserved_1y,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491491 +AZURE,westus2,Standard_DS1_v2,reserved_3y,NA,0.03066,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491495 +AZURE,westus2,Standard_DS1_v2,spot,NA,0.022995,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491487 +AZURE,westus2,Standard_DS2_v2,on_demand,NA,0.1533,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492240 +AZURE,westus2,Standard_DS2_v2,reserved_1y,NA,0.09198,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492248 +AZURE,westus2,Standard_DS2_v2,reserved_3y,NA,0.06132,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492252 +AZURE,westus2,Standard_DS2_v2,spot,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492244 +AZURE,westus2,Standard_DS3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492934 +AZURE,westus2,Standard_DS3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492943 +AZURE,westus2,Standard_DS3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492947 +AZURE,westus2,Standard_DS3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492939 +AZURE,westus2,Standard_DS4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493679 +AZURE,westus2,Standard_DS4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493687 +AZURE,westus2,Standard_DS4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493691 +AZURE,westus2,Standard_DS4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493683 +AZURE,westus2,Standard_DS5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494393 +AZURE,westus2,Standard_DS5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494401 +AZURE,westus2,Standard_DS5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494405 +AZURE,westus2,Standard_DS5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494397 +AZURE,westus2,Standard_E128ds_v6,on_demand,NA,10.465,USD,Azure Retail Prices API,2025-12-18T04:44:53.524760 +AZURE,westus2,Standard_E128ds_v6,reserved_1y,NA,6.48847,USD,Azure Retail Prices API,2025-12-18T04:44:55.668129 +AZURE,westus2,Standard_E128ds_v6,reserved_3y,NA,4.081469,USD,Azure Retail Prices API,2025-12-18T04:44:55.668131 +AZURE,westus2,Standard_E128ds_v6,spot,NA,1.933932,USD,Azure Retail Prices API,2025-12-18T04:44:53.526019 +AZURE,westus2,Standard_E16_v3,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:53.524527 +AZURE,westus2,Standard_E16_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:44:55.667944 +AZURE,westus2,Standard_E16_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:44:55.667947 +AZURE,westus2,Standard_E16_v3,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:53.525259 +AZURE,westus2,Standard_E16a_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:53.524725 +AZURE,westus2,Standard_E16a_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:44:55.668102 +AZURE,westus2,Standard_E16a_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:44:55.668105 +AZURE,westus2,Standard_E16a_v4,spot,NA,0.237787,USD,Azure Retail Prices API,2025-12-18T04:44:53.525640 +AZURE,westus2,Standard_E16ads_v5,on_demand,NA,1.048,USD,Azure Retail Prices API,2025-12-18T04:44:53.524475 +AZURE,westus2,Standard_E16ads_v5,reserved_1y,NA,0.618265,USD,Azure Retail Prices API,2025-12-18T04:44:55.667923 +AZURE,westus2,Standard_E16ads_v5,reserved_3y,NA,0.39825,USD,Azure Retail Prices API,2025-12-18T04:44:55.667925 +AZURE,westus2,Standard_E16ads_v5,spot,NA,0.247538,USD,Azure Retail Prices API,2025-12-18T04:44:53.524876 +AZURE,westus2,Standard_E16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:44:53.525897 +AZURE,westus2,Standard_E16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:44:55.668851 +AZURE,westus2,Standard_E16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:44:55.668853 +AZURE,westus2,Standard_E16ads_v6,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:44:53.524493 +AZURE,westus2,Standard_E16as_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:53.525855 +AZURE,westus2,Standard_E16as_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:44:55.668840 +AZURE,westus2,Standard_E16as_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:44:55.668843 +AZURE,westus2,Standard_E16as_v4,spot,NA,0.237787,USD,Azure Retail Prices API,2025-12-18T04:44:53.524623 +AZURE,westus2,Standard_E16as_v5,on_demand,NA,1.64,USD,Azure Retail Prices API,2025-12-18T04:44:53.524942 +AZURE,westus2,Standard_E16as_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:44:55.669080 +AZURE,westus2,Standard_E16as_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:44:55.669082 +AZURE,westus2,Standard_E16as_v5,spot,NA,0.213525,USD,Azure Retail Prices API,2025-12-18T04:44:53.525582 +AZURE,westus2,Standard_E16d_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:53.524936 +AZURE,westus2,Standard_E16d_v4,reserved_1y,NA,0.677397,USD,Azure Retail Prices API,2025-12-18T04:44:55.668304 +AZURE,westus2,Standard_E16d_v4,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:44:55.668307 +AZURE,westus2,Standard_E16d_v4,spot,NA,0.287539,USD,Azure Retail Prices API,2025-12-18T04:44:53.524922 +AZURE,westus2,Standard_E16ds_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:53.526108 +AZURE,westus2,Standard_E16ds_v4,reserved_1y,NA,0.677397,USD,Azure Retail Prices API,2025-12-18T04:44:55.668974 +AZURE,westus2,Standard_E16ds_v4,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:44:55.668976 +AZURE,westus2,Standard_E16ds_v4,spot,NA,0.287539,USD,Azure Retail Prices API,2025-12-18T04:44:53.524192 +AZURE,westus2,Standard_E16ds_v5,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:53.524084 +AZURE,westus2,Standard_E16ds_v5,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:44:55.667653 +AZURE,westus2,Standard_E16ds_v5,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:44:55.667656 +AZURE,westus2,Standard_E16ds_v5,spot,NA,0.287539,USD,Azure Retail Prices API,2025-12-18T04:44:53.523996 +AZURE,westus2,Standard_E16ds_v6,on_demand,NA,1.308,USD,Azure Retail Prices API,2025-12-18T04:44:53.524791 +AZURE,westus2,Standard_E16ds_v6,reserved_1y,NA,0.811073,USD,Azure Retail Prices API,2025-12-18T04:44:55.668161 +AZURE,westus2,Standard_E16ds_v6,reserved_3y,NA,0.510198,USD,Azure Retail Prices API,2025-12-18T04:44:55.668164 +AZURE,westus2,Standard_E16ds_v6,spot,NA,0.241718,USD,Azure Retail Prices API,2025-12-18T04:44:53.523951 +AZURE,westus2,Standard_E16pds_v6,on_demand,NA,0.936,USD,Azure Retail Prices API,2025-12-18T04:44:53.524212 +AZURE,westus2,Standard_E16pds_v6,reserved_1y,NA,0.552283,USD,Azure Retail Prices API,2025-12-18T04:44:55.667744 +AZURE,westus2,Standard_E16pds_v6,reserved_3y,NA,0.35567,USD,Azure Retail Prices API,2025-12-18T04:44:55.667747 +AZURE,westus2,Standard_E16pds_v6,spot,NA,0.172973,USD,Azure Retail Prices API,2025-12-18T04:44:53.524879 +AZURE,westus2,Standard_E16ps_v6,on_demand,NA,0.738,USD,Azure Retail Prices API,2025-12-18T04:44:53.524073 +AZURE,westus2,Standard_E16ps_v6,reserved_1y,NA,0.43516,USD,Azure Retail Prices API,2025-12-18T04:44:55.667647 +AZURE,westus2,Standard_E16ps_v6,reserved_3y,NA,0.280289,USD,Azure Retail Prices API,2025-12-18T04:44:55.667650 +AZURE,westus2,Standard_E16ps_v6,spot,NA,0.136382,USD,Azure Retail Prices API,2025-12-18T04:44:53.524555 +AZURE,westus2,Standard_E16s_v3,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:53.524780 +AZURE,westus2,Standard_E16s_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:44:55.668145 +AZURE,westus2,Standard_E16s_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:44:55.668147 +AZURE,westus2,Standard_E16s_v3,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:53.524628 +AZURE,westus2,Standard_E16s_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:53.526307 +AZURE,westus2,Standard_E16s_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:44:55.669075 +AZURE,westus2,Standard_E16s_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:44:55.669077 +AZURE,westus2,Standard_E16s_v4,spot,NA,0.239198,USD,Azure Retail Prices API,2025-12-18T04:44:53.524460 +AZURE,westus2,Standard_E16s_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:53.526227 +AZURE,westus2,Standard_E16s_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:44:55.669037 +AZURE,westus2,Standard_E16s_v5,reserved_3y,NA,0.372945,USD,Azure Retail Prices API,2025-12-18T04:44:55.669040 +AZURE,westus2,Standard_E16s_v5,spot,NA,0.253008,USD,Azure Retail Prices API,2025-12-18T04:44:53.524122 +AZURE,westus2,Standard_E20a_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:53.523971 +AZURE,westus2,Standard_E20a_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:44:55.667583 +AZURE,westus2,Standard_E20a_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:44:55.667588 +AZURE,westus2,Standard_E20a_v4,spot,NA,0.297234,USD,Azure Retail Prices API,2025-12-18T04:44:53.526286 +AZURE,westus2,Standard_E20ads_v5,on_demand,NA,1.31,USD,Azure Retail Prices API,2025-12-18T04:44:53.524470 +AZURE,westus2,Standard_E20ads_v5,reserved_1y,NA,0.772945,USD,Azure Retail Prices API,2025-12-18T04:44:55.667917 +AZURE,westus2,Standard_E20ads_v5,reserved_3y,NA,0.497793,USD,Azure Retail Prices API,2025-12-18T04:44:55.667920 +AZURE,westus2,Standard_E20ads_v5,spot,NA,0.309422,USD,Azure Retail Prices API,2025-12-18T04:44:53.526218 +AZURE,westus2,Standard_E20ads_v6,on_demand,NA,1.452,USD,Azure Retail Prices API,2025-12-18T04:44:53.524717 +AZURE,westus2,Standard_E20ads_v6,reserved_1y,NA,0.856735,USD,Azure Retail Prices API,2025-12-18T04:44:55.668091 +AZURE,westus2,Standard_E20ads_v6,reserved_3y,NA,0.55175,USD,Azure Retail Prices API,2025-12-18T04:44:55.668094 +AZURE,westus2,Standard_E20ads_v6,spot,NA,0.26833,USD,Azure Retail Prices API,2025-12-18T04:44:53.524151 +AZURE,westus2,Standard_E20as_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:53.525036 +AZURE,westus2,Standard_E20as_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:44:55.668392 +AZURE,westus2,Standard_E20as_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:44:55.668395 +AZURE,westus2,Standard_E20as_v4,spot,NA,0.297234,USD,Azure Retail Prices API,2025-12-18T04:44:53.524001 +AZURE,westus2,Standard_E20as_v5,on_demand,NA,2.05,USD,Azure Retail Prices API,2025-12-18T04:44:53.524111 +AZURE,westus2,Standard_E20as_v5,reserved_1y,NA,0.666667,USD,Azure Retail Prices API,2025-12-18T04:44:55.667820 +AZURE,westus2,Standard_E20as_v5,reserved_3y,NA,0.429414,USD,Azure Retail Prices API,2025-12-18T04:44:55.667824 +AZURE,westus2,Standard_E20as_v5,spot,NA,0.266906,USD,Azure Retail Prices API,2025-12-18T04:44:53.524999 +AZURE,westus2,Standard_E20d_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:53.524518 +AZURE,westus2,Standard_E20d_v4,reserved_1y,NA,0.846461,USD,Azure Retail Prices API,2025-12-18T04:44:55.667933 +AZURE,westus2,Standard_E20d_v4,reserved_3y,NA,0.541476,USD,Azure Retail Prices API,2025-12-18T04:44:55.667936 +AZURE,westus2,Standard_E20d_v4,spot,NA,0.359424,USD,Azure Retail Prices API,2025-12-18T04:44:53.525551 +AZURE,westus2,Standard_E20ds_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:53.524566 +AZURE,westus2,Standard_E20ds_v4,reserved_1y,NA,0.846461,USD,Azure Retail Prices API,2025-12-18T04:44:55.667971 +AZURE,westus2,Standard_E20ds_v4,reserved_3y,NA,0.541476,USD,Azure Retail Prices API,2025-12-18T04:44:55.667974 +AZURE,westus2,Standard_E20ds_v4,spot,NA,0.359424,USD,Azure Retail Prices API,2025-12-18T04:44:53.525396 +AZURE,westus2,Standard_E20ds_v5,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:53.525148 +AZURE,westus2,Standard_E20ds_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:44:55.668436 +AZURE,westus2,Standard_E20ds_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:44:55.668438 +AZURE,westus2,Standard_E20ds_v5,spot,NA,0.359424,USD,Azure Retail Prices API,2025-12-18T04:44:53.524040 +AZURE,westus2,Standard_E20ds_v6,on_demand,NA,1.635,USD,Azure Retail Prices API,2025-12-18T04:44:53.525724 +AZURE,westus2,Standard_E20ds_v6,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:44:55.668782 +AZURE,westus2,Standard_E20ds_v6,reserved_3y,NA,0.637709,USD,Azure Retail Prices API,2025-12-18T04:44:55.668785 +AZURE,westus2,Standard_E20ds_v6,spot,NA,0.302148,USD,Azure Retail Prices API,2025-12-18T04:44:53.524306 +AZURE,westus2,Standard_E20s_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:53.525411 +AZURE,westus2,Standard_E20s_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:44:55.668619 +AZURE,westus2,Standard_E20s_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:44:55.668622 +AZURE,westus2,Standard_E20s_v4,spot,NA,0.298998,USD,Azure Retail Prices API,2025-12-18T04:44:53.525173 +AZURE,westus2,Standard_E20s_v5,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:53.524763 +AZURE,westus2,Standard_E20s_v5,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:44:55.668134 +AZURE,westus2,Standard_E20s_v5,reserved_3y,NA,0.46621,USD,Azure Retail Prices API,2025-12-18T04:44:55.668137 +AZURE,westus2,Standard_E20s_v5,spot,NA,0.31626,USD,Azure Retail Prices API,2025-12-18T04:44:53.523991 +AZURE,westus2,Standard_E2_v3,on_demand,NA,0.126,USD,Azure Retail Prices API,2025-12-18T04:44:53.526296 +AZURE,westus2,Standard_E2_v3,reserved_1y,NA,0.078196,USD,Azure Retail Prices API,2025-12-18T04:44:55.669064 +AZURE,westus2,Standard_E2_v3,reserved_3y,NA,0.05,USD,Azure Retail Prices API,2025-12-18T04:44:55.669066 +AZURE,westus2,Standard_E2_v3,spot,NA,0.023285,USD,Azure Retail Prices API,2025-12-18T04:44:53.525115 +AZURE,westus2,Standard_E2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:53.524552 +AZURE,westus2,Standard_E2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:44:55.667966 +AZURE,westus2,Standard_E2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:44:55.667969 +AZURE,westus2,Standard_E2ads_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:44:53.526198 +AZURE,westus2,Standard_E2ds_v5,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:44:53.524547 +AZURE,westus2,Standard_E2ds_v5,reserved_1y,NA,0.084932,USD,Azure Retail Prices API,2025-12-18T04:44:55.667955 +AZURE,westus2,Standard_E2ds_v5,reserved_3y,NA,0.054718,USD,Azure Retail Prices API,2025-12-18T04:44:55.667958 +AZURE,westus2,Standard_E2ds_v5,spot,NA,0.035942,USD,Azure Retail Prices API,2025-12-18T04:44:53.525778 +AZURE,westus2,Standard_E2ds_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:44:53.525816 +AZURE,westus2,Standard_E2ds_v6,reserved_1y,NA,0.10137,USD,Azure Retail Prices API,2025-12-18T04:44:55.668814 +AZURE,westus2,Standard_E2ds_v6,reserved_3y,NA,0.063775,USD,Azure Retail Prices API,2025-12-18T04:44:55.668817 +AZURE,westus2,Standard_E2ds_v6,spot,NA,0.030307,USD,Azure Retail Prices API,2025-12-18T04:44:53.526117 +AZURE,westus2,Standard_E2pds_v6,on_demand,NA,0.117,USD,Azure Retail Prices API,2025-12-18T04:44:53.524948 +AZURE,westus2,Standard_E2pds_v6,reserved_1y,NA,0.069064,USD,Azure Retail Prices API,2025-12-18T04:44:55.668320 +AZURE,westus2,Standard_E2pds_v6,reserved_3y,NA,0.044444,USD,Azure Retail Prices API,2025-12-18T04:44:55.668323 +AZURE,westus2,Standard_E2pds_v6,spot,NA,0.021622,USD,Azure Retail Prices API,2025-12-18T04:44:53.526261 +AZURE,westus2,Standard_E32_v3,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:53.525629 +AZURE,westus2,Standard_E32_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:44:55.668755 +AZURE,westus2,Standard_E32_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:44:55.668757 +AZURE,westus2,Standard_E32_v3,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:53.526025 +AZURE,westus2,Standard_E32a_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:53.524441 +AZURE,westus2,Standard_E32a_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:44:55.667901 +AZURE,westus2,Standard_E32a_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:44:55.667904 +AZURE,westus2,Standard_E32a_v4,spot,NA,0.475574,USD,Azure Retail Prices API,2025-12-18T04:44:53.524128 +AZURE,westus2,Standard_E32ads_v5,on_demand,NA,3.568,USD,Azure Retail Prices API,2025-12-18T04:44:53.524904 +AZURE,westus2,Standard_E32ads_v5,reserved_1y,NA,1.236644,USD,Azure Retail Prices API,2025-12-18T04:44:55.668387 +AZURE,westus2,Standard_E32ads_v5,reserved_3y,NA,0.796461,USD,Azure Retail Prices API,2025-12-18T04:44:55.668390 +AZURE,westus2,Standard_E32ads_v5,spot,NA,0.495075,USD,Azure Retail Prices API,2025-12-18T04:44:53.525153 +AZURE,westus2,Standard_E32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:44:53.524873 +AZURE,westus2,Standard_E32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:44:55.668226 +AZURE,westus2,Standard_E32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:44:55.668229 +AZURE,westus2,Standard_E32ads_v6,spot,NA,0.42929,USD,Azure Retail Prices API,2025-12-18T04:44:53.525597 +AZURE,westus2,Standard_E32as_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:53.524046 +AZURE,westus2,Standard_E32as_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:44:55.667629 +AZURE,westus2,Standard_E32as_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:44:55.667632 +AZURE,westus2,Standard_E32as_v4,spot,NA,0.475574,USD,Azure Retail Prices API,2025-12-18T04:44:53.524625 +AZURE,westus2,Standard_E32as_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:53.524575 +AZURE,westus2,Standard_E32as_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:44:55.667983 +AZURE,westus2,Standard_E32as_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:44:55.667985 +AZURE,westus2,Standard_E32as_v5,spot,NA,0.42705,USD,Azure Retail Prices API,2025-12-18T04:44:53.526342 +AZURE,westus2,Standard_E32d_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:53.524636 +AZURE,westus2,Standard_E32d_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:55.668020 +AZURE,westus2,Standard_E32d_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:55.668023 +AZURE,westus2,Standard_E32d_v4,spot,NA,0.575078,USD,Azure Retail Prices API,2025-12-18T04:44:53.526276 +AZURE,westus2,Standard_E32ds_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:53.525204 +AZURE,westus2,Standard_E32ds_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:44:55.668463 +AZURE,westus2,Standard_E32ds_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:44:55.668466 +AZURE,westus2,Standard_E32ds_v4,spot,NA,0.575078,USD,Azure Retail Prices API,2025-12-18T04:44:53.525619 +AZURE,westus2,Standard_E32ds_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:53.524907 +AZURE,westus2,Standard_E32ds_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:44:55.668269 +AZURE,westus2,Standard_E32ds_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:44:55.668273 +AZURE,westus2,Standard_E32ds_v5,spot,NA,0.575078,USD,Azure Retail Prices API,2025-12-18T04:44:53.525909 +AZURE,westus2,Standard_E32ds_v6,on_demand,NA,2.616,USD,Azure Retail Prices API,2025-12-18T04:44:53.524639 +AZURE,westus2,Standard_E32ds_v6,reserved_1y,NA,1.622146,USD,Azure Retail Prices API,2025-12-18T04:44:55.668026 +AZURE,westus2,Standard_E32ds_v6,reserved_3y,NA,1.020358,USD,Azure Retail Prices API,2025-12-18T04:44:55.668028 +AZURE,westus2,Standard_E32ds_v6,spot,NA,0.483437,USD,Azure Retail Prices API,2025-12-18T04:44:53.524513 +AZURE,westus2,Standard_E32pds_v6,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:44:53.526352 +AZURE,westus2,Standard_E32pds_v6,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:44:55.669106 +AZURE,westus2,Standard_E32pds_v6,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:44:55.669109 +AZURE,westus2,Standard_E32pds_v6,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:44:53.525772 +AZURE,westus2,Standard_E32ps_v6,on_demand,NA,1.475,USD,Azure Retail Prices API,2025-12-18T04:44:53.524549 +AZURE,westus2,Standard_E32ps_v6,reserved_1y,NA,0.87032,USD,Azure Retail Prices API,2025-12-18T04:44:55.667960 +AZURE,westus2,Standard_E32ps_v6,reserved_3y,NA,0.560578,USD,Azure Retail Prices API,2025-12-18T04:44:55.667963 +AZURE,westus2,Standard_E32ps_v6,spot,NA,0.27258,USD,Azure Retail Prices API,2025-12-18T04:44:53.525566 +AZURE,westus2,Standard_E32s_v3,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:53.526193 +AZURE,westus2,Standard_E32s_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:44:55.669027 +AZURE,westus2,Standard_E32s_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:44:55.669029 +AZURE,westus2,Standard_E32s_v3,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:53.525928 +AZURE,westus2,Standard_E32s_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:53.525244 +AZURE,westus2,Standard_E32s_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:44:55.668501 +AZURE,westus2,Standard_E32s_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:44:55.668504 +AZURE,westus2,Standard_E32s_v4,spot,NA,0.478397,USD,Azure Retail Prices API,2025-12-18T04:44:53.526051 +AZURE,westus2,Standard_E32s_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:53.524117 +AZURE,westus2,Standard_E32s_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:44:55.667664 +AZURE,westus2,Standard_E32s_v5,reserved_3y,NA,0.745928,USD,Azure Retail Prices API,2025-12-18T04:44:55.667667 +AZURE,westus2,Standard_E32s_v5,spot,NA,0.506016,USD,Azure Retail Prices API,2025-12-18T04:44:53.524334 +AZURE,westus2,Standard_E48a_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:53.525530 +AZURE,westus2,Standard_E48a_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:44:55.668706 +AZURE,westus2,Standard_E48a_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:44:55.668709 +AZURE,westus2,Standard_E48a_v4,spot,NA,0.713362,USD,Azure Retail Prices API,2025-12-18T04:44:53.526093 +AZURE,westus2,Standard_E48ads_v5,on_demand,NA,3.144,USD,Azure Retail Prices API,2025-12-18T04:44:53.525844 +AZURE,westus2,Standard_E48ads_v5,reserved_1y,NA,1.854909,USD,Azure Retail Prices API,2025-12-18T04:44:55.668830 +AZURE,westus2,Standard_E48ads_v5,reserved_3y,NA,1.194711,USD,Azure Retail Prices API,2025-12-18T04:44:55.668833 +AZURE,westus2,Standard_E48ads_v5,spot,NA,0.742613,USD,Azure Retail Prices API,2025-12-18T04:44:53.524631 +AZURE,westus2,Standard_E48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:44:53.526213 +AZURE,westus2,Standard_E48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:44:55.669032 +AZURE,westus2,Standard_E48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:44:55.669035 +AZURE,westus2,Standard_E48ads_v6,spot,NA,0.644028,USD,Azure Retail Prices API,2025-12-18T04:44:53.524173 +AZURE,westus2,Standard_E48as_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:53.525459 +AZURE,westus2,Standard_E48as_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:44:55.668653 +AZURE,westus2,Standard_E48as_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:44:55.668657 +AZURE,westus2,Standard_E48as_v4,spot,NA,0.713362,USD,Azure Retail Prices API,2025-12-18T04:44:53.525438 +AZURE,westus2,Standard_E48as_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:53.524235 +AZURE,westus2,Standard_E48as_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:44:55.667755 +AZURE,westus2,Standard_E48as_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:44:55.667758 +AZURE,westus2,Standard_E48as_v5,spot,NA,0.640574,USD,Azure Retail Prices API,2025-12-18T04:44:53.526103 +AZURE,westus2,Standard_E48d_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:53.525514 +AZURE,westus2,Standard_E48d_v4,reserved_1y,NA,2.032078,USD,Azure Retail Prices API,2025-12-18T04:44:55.668701 +AZURE,westus2,Standard_E48d_v4,reserved_3y,NA,1.299467,USD,Azure Retail Prices API,2025-12-18T04:44:55.668703 +AZURE,westus2,Standard_E48d_v4,spot,NA,0.862618,USD,Azure Retail Prices API,2025-12-18T04:44:53.524178 +AZURE,westus2,Standard_E48ds_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:53.525365 +AZURE,westus2,Standard_E48ds_v4,reserved_1y,NA,2.032078,USD,Azure Retail Prices API,2025-12-18T04:44:55.668573 +AZURE,westus2,Standard_E48ds_v4,reserved_3y,NA,1.299467,USD,Azure Retail Prices API,2025-12-18T04:44:55.668575 +AZURE,westus2,Standard_E48ds_v4,spot,NA,0.862618,USD,Azure Retail Prices API,2025-12-18T04:44:53.525614 +AZURE,westus2,Standard_E48ds_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:53.526084 +AZURE,westus2,Standard_E48ds_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:44:55.668968 +AZURE,westus2,Standard_E48ds_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:44:55.668971 +AZURE,westus2,Standard_E48ds_v5,spot,NA,0.862618,USD,Azure Retail Prices API,2025-12-18T04:44:53.524499 +AZURE,westus2,Standard_E48ds_v6,on_demand,NA,3.924,USD,Azure Retail Prices API,2025-12-18T04:44:53.525469 +AZURE,westus2,Standard_E48ds_v6,reserved_1y,NA,2.433219,USD,Azure Retail Prices API,2025-12-18T04:44:55.668662 +AZURE,westus2,Standard_E48ds_v6,reserved_3y,NA,1.530556,USD,Azure Retail Prices API,2025-12-18T04:44:55.668666 +AZURE,westus2,Standard_E48ds_v6,spot,NA,0.725155,USD,Azure Retail Prices API,2025-12-18T04:44:53.525873 +AZURE,westus2,Standard_E48pds_v6,on_demand,NA,2.808,USD,Azure Retail Prices API,2025-12-18T04:44:53.525478 +AZURE,westus2,Standard_E48pds_v6,reserved_1y,NA,1.656735,USD,Azure Retail Prices API,2025-12-18T04:44:55.668679 +AZURE,westus2,Standard_E48pds_v6,reserved_3y,NA,1.067047,USD,Azure Retail Prices API,2025-12-18T04:44:55.668682 +AZURE,westus2,Standard_E48pds_v6,spot,NA,0.518918,USD,Azure Retail Prices API,2025-12-18T04:44:53.524700 +AZURE,westus2,Standard_E48ps_v6,on_demand,NA,2.213,USD,Azure Retail Prices API,2025-12-18T04:44:53.526291 +AZURE,westus2,Standard_E48ps_v6,reserved_1y,NA,1.305594,USD,Azure Retail Prices API,2025-12-18T04:44:55.669059 +AZURE,westus2,Standard_E48ps_v6,reserved_3y,NA,0.840868,USD,Azure Retail Prices API,2025-12-18T04:44:55.669061 +AZURE,westus2,Standard_E48ps_v6,spot,NA,0.408962,USD,Azure Retail Prices API,2025-12-18T04:44:53.525449 +AZURE,westus2,Standard_E48s_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:53.524771 +AZURE,westus2,Standard_E48s_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:44:55.668140 +AZURE,westus2,Standard_E48s_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:44:55.668142 +AZURE,westus2,Standard_E48s_v4,spot,NA,0.717595,USD,Azure Retail Prices API,2025-12-18T04:44:53.525333 +AZURE,westus2,Standard_E48s_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:53.526188 +AZURE,westus2,Standard_E48s_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:44:55.669021 +AZURE,westus2,Standard_E48s_v5,reserved_3y,NA,1.118874,USD,Azure Retail Prices API,2025-12-18T04:44:55.669024 +AZURE,westus2,Standard_E48s_v5,spot,NA,0.759024,USD,Azure Retail Prices API,2025-12-18T04:44:53.526030 +AZURE,westus2,Standard_E4_v3,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:53.524743 +AZURE,westus2,Standard_E4_v3,reserved_1y,NA,0.156393,USD,Azure Retail Prices API,2025-12-18T04:44:55.668112 +AZURE,westus2,Standard_E4_v3,reserved_3y,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:44:55.668115 +AZURE,westus2,Standard_E4_v3,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:44:53.524277 +AZURE,westus2,Standard_E4a_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:53.524898 +AZURE,westus2,Standard_E4a_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:44:55.668253 +AZURE,westus2,Standard_E4a_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:44:55.668256 +AZURE,westus2,Standard_E4a_v4,spot,NA,0.059447,USD,Azure Retail Prices API,2025-12-18T04:44:53.524958 +AZURE,westus2,Standard_E4ads_v5,on_demand,NA,0.446,USD,Azure Retail Prices API,2025-12-18T04:44:53.524301 +AZURE,westus2,Standard_E4ads_v5,reserved_1y,NA,0.154566,USD,Azure Retail Prices API,2025-12-18T04:44:55.668309 +AZURE,westus2,Standard_E4ads_v5,reserved_3y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:44:55.668312 +AZURE,westus2,Standard_E4ads_v5,spot,NA,0.061884,USD,Azure Retail Prices API,2025-12-18T04:44:53.525668 +AZURE,westus2,Standard_E4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:44:53.524011 +AZURE,westus2,Standard_E4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:44:55.667604 +AZURE,westus2,Standard_E4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:44:55.667609 +AZURE,westus2,Standard_E4ads_v6,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:44:53.526247 +AZURE,westus2,Standard_E4as_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:53.526148 +AZURE,westus2,Standard_E4as_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:44:55.669006 +AZURE,westus2,Standard_E4as_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:44:55.669008 +AZURE,westus2,Standard_E4as_v4,spot,NA,0.059447,USD,Azure Retail Prices API,2025-12-18T04:44:53.524670 +AZURE,westus2,Standard_E4as_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:53.524296 +AZURE,westus2,Standard_E4as_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:44:55.667808 +AZURE,westus2,Standard_E4as_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:44:55.667815 +AZURE,westus2,Standard_E4as_v5,spot,NA,0.053381,USD,Azure Retail Prices API,2025-12-18T04:44:53.525316 +AZURE,westus2,Standard_E4d_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:53.526174 +AZURE,westus2,Standard_E4d_v4,reserved_1y,NA,0.169292,USD,Azure Retail Prices API,2025-12-18T04:44:55.669016 +AZURE,westus2,Standard_E4d_v4,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:44:55.669019 +AZURE,westus2,Standard_E4d_v4,spot,NA,0.071885,USD,Azure Retail Prices API,2025-12-18T04:44:53.524676 +AZURE,westus2,Standard_E4ds_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:53.526132 +AZURE,westus2,Standard_E4ds_v4,reserved_1y,NA,0.169292,USD,Azure Retail Prices API,2025-12-18T04:44:55.668990 +AZURE,westus2,Standard_E4ds_v4,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:44:55.668992 +AZURE,westus2,Standard_E4ds_v4,spot,NA,0.071885,USD,Azure Retail Prices API,2025-12-18T04:44:53.526312 +AZURE,westus2,Standard_E4ds_v5,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:53.525095 +AZURE,westus2,Standard_E4ds_v5,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:44:55.668420 +AZURE,westus2,Standard_E4ds_v5,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:44:55.668422 +AZURE,westus2,Standard_E4ds_v5,spot,NA,0.071885,USD,Azure Retail Prices API,2025-12-18T04:44:53.526183 +AZURE,westus2,Standard_E4ds_v6,on_demand,NA,0.327,USD,Azure Retail Prices API,2025-12-18T04:44:53.525540 +AZURE,westus2,Standard_E4ds_v6,reserved_1y,NA,0.20274,USD,Azure Retail Prices API,2025-12-18T04:44:55.668717 +AZURE,westus2,Standard_E4ds_v6,reserved_3y,NA,0.127549,USD,Azure Retail Prices API,2025-12-18T04:44:55.668720 +AZURE,westus2,Standard_E4ds_v6,spot,NA,0.06043,USD,Azure Retail Prices API,2025-12-18T04:44:53.525674 +AZURE,westus2,Standard_E4pds_v6,on_demand,NA,0.234,USD,Azure Retail Prices API,2025-12-18T04:44:53.524291 +AZURE,westus2,Standard_E4pds_v6,reserved_1y,NA,0.138014,USD,Azure Retail Prices API,2025-12-18T04:44:55.667799 +AZURE,westus2,Standard_E4pds_v6,reserved_3y,NA,0.088927,USD,Azure Retail Prices API,2025-12-18T04:44:55.667803 +AZURE,westus2,Standard_E4pds_v6,spot,NA,0.043243,USD,Azure Retail Prices API,2025-12-18T04:44:53.524541 +AZURE,westus2,Standard_E4ps_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:44:53.524365 +AZURE,westus2,Standard_E4ps_v6,reserved_1y,NA,0.10879,USD,Azure Retail Prices API,2025-12-18T04:44:55.667856 +AZURE,westus2,Standard_E4ps_v6,reserved_3y,NA,0.070053,USD,Azure Retail Prices API,2025-12-18T04:44:55.667859 +AZURE,westus2,Standard_E4ps_v6,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:44:53.524691 +AZURE,westus2,Standard_E4s_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:53.524426 +AZURE,westus2,Standard_E4s_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:44:55.667896 +AZURE,westus2,Standard_E4s_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:44:55.667898 +AZURE,westus2,Standard_E4s_v4,spot,NA,0.0598,USD,Azure Retail Prices API,2025-12-18T04:44:53.524339 +AZURE,westus2,Standard_E4s_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:53.525939 +AZURE,westus2,Standard_E4s_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:44:55.668900 +AZURE,westus2,Standard_E4s_v5,reserved_3y,NA,0.093227,USD,Azure Retail Prices API,2025-12-18T04:44:55.668903 +AZURE,westus2,Standard_E4s_v5,spot,NA,0.063252,USD,Azure Retail Prices API,2025-12-18T04:44:53.526337 +AZURE,westus2,Standard_E64_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:44:53.524524 +AZURE,westus2,Standard_E64_v3,reserved_1y,NA,2.358562,USD,Azure Retail Prices API,2025-12-18T04:44:55.667939 +AZURE,westus2,Standard_E64_v3,reserved_3y,NA,1.508219,USD,Azure Retail Prices API,2025-12-18T04:44:55.667942 +AZURE,westus2,Standard_E64_v3,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:44:53.525744 +AZURE,westus2,Standard_E64a_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:53.524845 +AZURE,westus2,Standard_E64a_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:44:55.668204 +AZURE,westus2,Standard_E64a_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:44:55.668207 +AZURE,westus2,Standard_E64a_v4,spot,NA,0.951149,USD,Azure Retail Prices API,2025-12-18T04:44:53.524105 +AZURE,westus2,Standard_E64ads_v5,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:44:53.524187 +AZURE,westus2,Standard_E64ads_v5,reserved_1y,NA,2.473288,USD,Azure Retail Prices API,2025-12-18T04:44:55.667732 +AZURE,westus2,Standard_E64ads_v5,reserved_3y,NA,1.59296,USD,Azure Retail Prices API,2025-12-18T04:44:55.667735 +AZURE,westus2,Standard_E64ads_v5,spot,NA,0.99015,USD,Azure Retail Prices API,2025-12-18T04:44:53.525504 +AZURE,westus2,Standard_E64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:44:53.526232 +AZURE,westus2,Standard_E64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:44:55.669042 +AZURE,westus2,Standard_E64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:44:55.669045 +AZURE,westus2,Standard_E64ads_v6,spot,NA,0.858581,USD,Azure Retail Prices API,2025-12-18T04:44:53.525750 +AZURE,westus2,Standard_E64as_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:53.524169 +AZURE,westus2,Standard_E64as_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:44:55.667726 +AZURE,westus2,Standard_E64as_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:44:55.667729 +AZURE,westus2,Standard_E64as_v4,spot,NA,0.951149,USD,Azure Retail Prices API,2025-12-18T04:44:53.524320 +AZURE,westus2,Standard_E64as_v5,on_demand,NA,6.56,USD,Azure Retail Prices API,2025-12-18T04:44:53.524569 +AZURE,westus2,Standard_E64as_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:44:55.667977 +AZURE,westus2,Standard_E64as_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:44:55.667980 +AZURE,westus2,Standard_E64as_v5,spot,NA,0.854099,USD,Azure Retail Prices API,2025-12-18T04:44:53.524801 +AZURE,westus2,Standard_E64d_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:53.524754 +AZURE,westus2,Standard_E64d_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:44:55.668124 +AZURE,westus2,Standard_E64d_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:44:55.668126 +AZURE,westus2,Standard_E64d_v4,spot,NA,1.150157,USD,Azure Retail Prices API,2025-12-18T04:44:53.524197 +AZURE,westus2,Standard_E64ds_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:53.524145 +AZURE,westus2,Standard_E64ds_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:44:55.667690 +AZURE,westus2,Standard_E64ds_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:44:55.667694 +AZURE,westus2,Standard_E64ds_v4,spot,NA,1.150157,USD,Azure Retail Prices API,2025-12-18T04:44:53.525223 +AZURE,westus2,Standard_E64ds_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:53.524805 +AZURE,westus2,Standard_E64ds_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:44:55.668172 +AZURE,westus2,Standard_E64ds_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:44:55.668174 +AZURE,westus2,Standard_E64ds_v5,spot,NA,1.150157,USD,Azure Retail Prices API,2025-12-18T04:44:53.526242 +AZURE,westus2,Standard_E64ds_v6,on_demand,NA,5.233,USD,Azure Retail Prices API,2025-12-18T04:44:53.525381 +AZURE,westus2,Standard_E64ds_v6,reserved_1y,NA,3.244292,USD,Azure Retail Prices API,2025-12-18T04:44:55.668590 +AZURE,westus2,Standard_E64ds_v6,reserved_3y,NA,2.040715,USD,Azure Retail Prices API,2025-12-18T04:44:55.668593 +AZURE,westus2,Standard_E64ds_v6,spot,NA,0.967058,USD,Azure Retail Prices API,2025-12-18T04:44:53.524016 +AZURE,westus2,Standard_E64pds_v6,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:53.525391 +AZURE,westus2,Standard_E64pds_v6,reserved_1y,NA,2.208904,USD,Azure Retail Prices API,2025-12-18T04:44:55.668603 +AZURE,westus2,Standard_E64pds_v6,reserved_3y,NA,1.422717,USD,Azure Retail Prices API,2025-12-18T04:44:55.668608 +AZURE,westus2,Standard_E64pds_v6,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:44:53.525483 +AZURE,westus2,Standard_E64ps_v6,on_demand,NA,2.95,USD,Azure Retail Prices API,2025-12-18T04:44:53.524244 +AZURE,westus2,Standard_E64ps_v6,reserved_1y,NA,1.740753,USD,Azure Retail Prices API,2025-12-18T04:44:55.667766 +AZURE,westus2,Standard_E64ps_v6,reserved_3y,NA,1.121157,USD,Azure Retail Prices API,2025-12-18T04:44:55.667769 +AZURE,westus2,Standard_E64ps_v6,spot,NA,0.54516,USD,Azure Retail Prices API,2025-12-18T04:44:53.525100 +AZURE,westus2,Standard_E64s_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:44:53.525048 +AZURE,westus2,Standard_E64s_v3,reserved_1y,NA,2.358562,USD,Azure Retail Prices API,2025-12-18T04:44:55.668403 +AZURE,westus2,Standard_E64s_v3,reserved_3y,NA,1.508219,USD,Azure Retail Prices API,2025-12-18T04:44:55.668406 +AZURE,westus2,Standard_E64s_v3,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:44:53.525300 +AZURE,westus2,Standard_E64s_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:53.526266 +AZURE,westus2,Standard_E64s_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:44:55.669053 +AZURE,westus2,Standard_E64s_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:44:55.669056 +AZURE,westus2,Standard_E64s_v4,spot,NA,0.956794,USD,Azure Retail Prices API,2025-12-18T04:44:53.524746 +AZURE,westus2,Standard_E64s_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:53.525239 +AZURE,westus2,Standard_E64s_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:44:55.668496 +AZURE,westus2,Standard_E64s_v5,reserved_3y,NA,1.491857,USD,Azure Retail Prices API,2025-12-18T04:44:55.668498 +AZURE,westus2,Standard_E64s_v5,spot,NA,1.012032,USD,Azure Retail Prices API,2025-12-18T04:44:53.526208 +AZURE,westus2,Standard_E80ids_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:44:53.524811 +AZURE,westus2,Standard_E80ids_v4,reserved_1y,NA,3.385845,USD,Azure Retail Prices API,2025-12-18T04:44:55.668177 +AZURE,westus2,Standard_E80ids_v4,reserved_3y,NA,2.165906,USD,Azure Retail Prices API,2025-12-18T04:44:55.668180 +AZURE,westus2,Standard_E80ids_v4,spot,NA,1.437696,USD,Azure Retail Prices API,2025-12-18T04:44:53.524431 +AZURE,westus2,Standard_E80is_v4,on_demand,NA,5.04,USD,Azure Retail Prices API,2025-12-18T04:44:53.524871 +AZURE,westus2,Standard_E80is_v4,reserved_1y,NA,2.96347,USD,Azure Retail Prices API,2025-12-18T04:44:55.668221 +AZURE,westus2,Standard_E80is_v4,reserved_3y,NA,1.894977,USD,Azure Retail Prices API,2025-12-18T04:44:55.668223 +AZURE,westus2,Standard_E80is_v4,spot,NA,1.195992,USD,Azure Retail Prices API,2025-12-18T04:44:53.525974 +AZURE,westus2,Standard_E8_v3,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:53.524688 +AZURE,westus2,Standard_E8_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:44:55.668064 +AZURE,westus2,Standard_E8_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:44:55.668067 +AZURE,westus2,Standard_E8_v3,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:53.524182 +AZURE,westus2,Standard_E8a_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:53.524030 +AZURE,westus2,Standard_E8a_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:44:55.667623 +AZURE,westus2,Standard_E8a_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:44:55.667626 +AZURE,westus2,Standard_E8a_v4,spot,NA,0.118894,USD,Azure Retail Prices API,2025-12-18T04:44:53.525158 +AZURE,westus2,Standard_E8ads_v5,on_demand,NA,0.524,USD,Azure Retail Prices API,2025-12-18T04:44:53.524354 +AZURE,westus2,Standard_E8ads_v5,reserved_1y,NA,0.309132,USD,Azure Retail Prices API,2025-12-18T04:44:55.667844 +AZURE,westus2,Standard_E8ads_v5,reserved_3y,NA,0.199125,USD,Azure Retail Prices API,2025-12-18T04:44:55.667847 +AZURE,westus2,Standard_E8ads_v5,spot,NA,0.123769,USD,Azure Retail Prices API,2025-12-18T04:44:53.526066 +AZURE,westus2,Standard_E8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:53.525218 +AZURE,westus2,Standard_E8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:44:55.668485 +AZURE,westus2,Standard_E8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:44:55.668487 +AZURE,westus2,Standard_E8ads_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:44:53.524216 +AZURE,westus2,Standard_E8as_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:53.525193 +AZURE,westus2,Standard_E8as_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:44:55.668458 +AZURE,westus2,Standard_E8as_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:44:55.668460 +AZURE,westus2,Standard_E8as_v4,spot,NA,0.118894,USD,Azure Retail Prices API,2025-12-18T04:44:53.524544 +AZURE,westus2,Standard_E8as_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:53.524910 +AZURE,westus2,Standard_E8as_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:44:55.668276 +AZURE,westus2,Standard_E8as_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:44:55.668278 +AZURE,westus2,Standard_E8as_v5,spot,NA,0.106762,USD,Azure Retail Prices API,2025-12-18T04:44:53.526271 +AZURE,westus2,Standard_E8d_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:53.524509 +AZURE,westus2,Standard_E8d_v4,reserved_1y,NA,0.338699,USD,Azure Retail Prices API,2025-12-18T04:44:55.667928 +AZURE,westus2,Standard_E8d_v4,reserved_3y,NA,0.216591,USD,Azure Retail Prices API,2025-12-18T04:44:55.667931 +AZURE,westus2,Standard_E8d_v4,spot,NA,0.14377,USD,Azure Retail Prices API,2025-12-18T04:44:53.524711 +AZURE,westus2,Standard_E8ds_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:53.525885 +AZURE,westus2,Standard_E8ds_v4,reserved_1y,NA,0.338699,USD,Azure Retail Prices API,2025-12-18T04:44:55.668846 +AZURE,westus2,Standard_E8ds_v4,reserved_3y,NA,0.216591,USD,Azure Retail Prices API,2025-12-18T04:44:55.668848 +AZURE,westus2,Standard_E8ds_v4,spot,NA,0.14377,USD,Azure Retail Prices API,2025-12-18T04:44:53.523946 +AZURE,westus2,Standard_E8ds_v5,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:53.524446 +AZURE,westus2,Standard_E8ds_v5,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:44:55.667907 +AZURE,westus2,Standard_E8ds_v5,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:44:55.667909 +AZURE,westus2,Standard_E8ds_v5,spot,NA,0.14377,USD,Azure Retail Prices API,2025-12-18T04:44:53.524592 +AZURE,westus2,Standard_E8ds_v6,on_demand,NA,0.654,USD,Azure Retail Prices API,2025-12-18T04:44:53.524697 +AZURE,westus2,Standard_E8ds_v6,reserved_1y,NA,0.405479,USD,Azure Retail Prices API,2025-12-18T04:44:55.668069 +AZURE,westus2,Standard_E8ds_v6,reserved_3y,NA,0.255099,USD,Azure Retail Prices API,2025-12-18T04:44:55.668072 +AZURE,westus2,Standard_E8ds_v6,spot,NA,0.120859,USD,Azure Retail Prices API,2025-12-18T04:44:53.524831 +AZURE,westus2,Standard_E8pds_v6,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:44:53.524249 +AZURE,westus2,Standard_E8pds_v6,reserved_1y,NA,0.276142,USD,Azure Retail Prices API,2025-12-18T04:44:55.667771 +AZURE,westus2,Standard_E8pds_v6,reserved_3y,NA,0.177854,USD,Azure Retail Prices API,2025-12-18T04:44:55.667774 +AZURE,westus2,Standard_E8pds_v6,spot,NA,0.086486,USD,Azure Retail Prices API,2025-12-18T04:44:53.525810 +AZURE,westus2,Standard_E8ps_v6,on_demand,NA,0.369,USD,Azure Retail Prices API,2025-12-18T04:44:53.524985 +AZURE,westus2,Standard_E8ps_v6,reserved_1y,NA,0.21758,USD,Azure Retail Prices API,2025-12-18T04:44:55.668364 +AZURE,westus2,Standard_E8ps_v6,reserved_3y,NA,0.140145,USD,Azure Retail Prices API,2025-12-18T04:44:55.668367 +AZURE,westus2,Standard_E8ps_v6,spot,NA,0.068191,USD,Azure Retail Prices API,2025-12-18T04:44:53.524502 +AZURE,westus2,Standard_E8s_v3,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:53.524862 +AZURE,westus2,Standard_E8s_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:44:55.668215 +AZURE,westus2,Standard_E8s_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:44:55.668218 +AZURE,westus2,Standard_E8s_v3,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:53.524777 +AZURE,westus2,Standard_E8s_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:53.526071 +AZURE,westus2,Standard_E8s_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:44:55.668953 +AZURE,westus2,Standard_E8s_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:44:55.668955 +AZURE,westus2,Standard_E8s_v4,spot,NA,0.119599,USD,Azure Retail Prices API,2025-12-18T04:44:53.524738 +AZURE,westus2,Standard_E8s_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:53.524395 +AZURE,westus2,Standard_E8s_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:44:55.667885 +AZURE,westus2,Standard_E8s_v5,reserved_3y,NA,0.186492,USD,Azure Retail Prices API,2025-12-18T04:44:55.667887 +AZURE,westus2,Standard_E8s_v5,spot,NA,0.126504,USD,Azure Retail Prices API,2025-12-18T04:44:53.524324 +AZURE,westus2,Standard_E96a_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:53.524664 +AZURE,westus2,Standard_E96a_v4,reserved_1y,NA,3.556164,USD,Azure Retail Prices API,2025-12-18T04:44:55.668037 +AZURE,westus2,Standard_E96a_v4,reserved_3y,NA,2.274049,USD,Azure Retail Prices API,2025-12-18T04:44:55.668040 +AZURE,westus2,Standard_E96a_v4,spot,NA,1.426723,USD,Azure Retail Prices API,2025-12-18T04:44:53.525761 +AZURE,westus2,Standard_E96ads_v5,on_demand,NA,10.704,USD,Azure Retail Prices API,2025-12-18T04:44:53.524310 +AZURE,westus2,Standard_E96ads_v5,reserved_1y,NA,3.709932,USD,Azure Retail Prices API,2025-12-18T04:44:55.668237 +AZURE,westus2,Standard_E96ads_v5,reserved_3y,NA,2.389422,USD,Azure Retail Prices API,2025-12-18T04:44:55.668240 +AZURE,westus2,Standard_E96ads_v5,spot,NA,1.485226,USD,Azure Retail Prices API,2025-12-18T04:44:53.526163 +AZURE,westus2,Standard_E96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:44:53.524799 +AZURE,westus2,Standard_E96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:44:55.668167 +AZURE,westus2,Standard_E96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:44:55.668169 +AZURE,westus2,Standard_E96ads_v6,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:44:53.524927 +AZURE,westus2,Standard_E96as_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:53.524749 +AZURE,westus2,Standard_E96as_v4,reserved_1y,NA,3.556164,USD,Azure Retail Prices API,2025-12-18T04:44:55.668118 +AZURE,westus2,Standard_E96as_v4,reserved_3y,NA,2.274049,USD,Azure Retail Prices API,2025-12-18T04:44:55.668121 +AZURE,westus2,Standard_E96as_v4,spot,NA,1.426723,USD,Azure Retail Prices API,2025-12-18T04:44:53.525546 +AZURE,westus2,Standard_E96as_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:53.525822 +AZURE,westus2,Standard_E96as_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:44:55.668819 +AZURE,westus2,Standard_E96as_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:44:55.668822 +AZURE,westus2,Standard_E96as_v5,spot,NA,1.281149,USD,Azure Retail Prices API,2025-12-18T04:44:53.525284 +AZURE,westus2,Standard_E96ds_v5,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:44:53.524972 +AZURE,westus2,Standard_E96ds_v5,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:44:55.668348 +AZURE,westus2,Standard_E96ds_v5,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:44:55.668351 +AZURE,westus2,Standard_E96ds_v5,spot,NA,1.725235,USD,Azure Retail Prices API,2025-12-18T04:44:53.525427 +AZURE,westus2,Standard_E96ds_v6,on_demand,NA,7.849,USD,Azure Retail Prices API,2025-12-18T04:44:53.525359 +AZURE,westus2,Standard_E96ds_v6,reserved_1y,NA,4.866324,USD,Azure Retail Prices API,2025-12-18T04:44:55.668567 +AZURE,westus2,Standard_E96ds_v6,reserved_3y,NA,3.061111,USD,Azure Retail Prices API,2025-12-18T04:44:55.668570 +AZURE,westus2,Standard_E96ds_v6,spot,NA,1.450495,USD,Azure Retail Prices API,2025-12-18T04:44:53.526281 +AZURE,westus2,Standard_E96pds_v6,on_demand,NA,5.616,USD,Azure Retail Prices API,2025-12-18T04:44:53.526014 +AZURE,westus2,Standard_E96pds_v6,reserved_1y,NA,3.31347,USD,Azure Retail Prices API,2025-12-18T04:44:55.668942 +AZURE,westus2,Standard_E96pds_v6,reserved_3y,NA,2.134094,USD,Azure Retail Prices API,2025-12-18T04:44:55.668945 +AZURE,westus2,Standard_E96pds_v6,spot,NA,1.037837,USD,Azure Retail Prices API,2025-12-18T04:44:53.524820 +AZURE,westus2,Standard_E96ps_v6,on_demand,NA,4.426,USD,Azure Retail Prices API,2025-12-18T04:44:53.525708 +AZURE,westus2,Standard_E96ps_v6,reserved_1y,NA,2.611073,USD,Azure Retail Prices API,2025-12-18T04:44:55.668772 +AZURE,westus2,Standard_E96ps_v6,reserved_3y,NA,1.681735,USD,Azure Retail Prices API,2025-12-18T04:44:55.668774 +AZURE,westus2,Standard_E96ps_v6,spot,NA,0.817925,USD,Azure Retail Prices API,2025-12-18T04:44:53.524757 +AZURE,westus2,Standard_E96s_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:53.524990 +AZURE,westus2,Standard_E96s_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:44:55.668370 +AZURE,westus2,Standard_E96s_v5,reserved_3y,NA,2.237747,USD,Azure Retail Prices API,2025-12-18T04:44:55.668373 +AZURE,westus2,Standard_E96s_v5,spot,NA,1.518048,USD,Azure Retail Prices API,2025-12-18T04:44:53.525199 +AZURE,westus2,Standard_EC16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:44:53.525738 +AZURE,westus2,Standard_EC16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:44:55.668788 +AZURE,westus2,Standard_EC16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:44:55.668790 +AZURE,westus2,Standard_EC16ads_v6,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:44:53.524521 +AZURE,westus2,Standard_EC16as_v6,on_demand,NA,0.954,USD,Azure Retail Prices API,2025-12-18T04:44:53.524390 +AZURE,westus2,Standard_EC16as_v6,reserved_1y,NA,0.562671,USD,Azure Retail Prices API,2025-12-18T04:44:55.667879 +AZURE,westus2,Standard_EC16as_v6,reserved_3y,NA,0.362367,USD,Azure Retail Prices API,2025-12-18T04:44:55.667882 +AZURE,westus2,Standard_EC16as_v6,spot,NA,0.176299,USD,Azure Retail Prices API,2025-12-18T04:44:53.524814 +AZURE,westus2,Standard_EC2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:53.524056 +AZURE,westus2,Standard_EC2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:44:55.667641 +AZURE,westus2,Standard_EC2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:44:55.667644 +AZURE,westus2,Standard_EC2ads_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:44:53.524100 +AZURE,westus2,Standard_EC2as_v6,on_demand,NA,0.119,USD,Azure Retail Prices API,2025-12-18T04:44:53.525375 +AZURE,westus2,Standard_EC2as_v6,reserved_1y,NA,0.07032,USD,Azure Retail Prices API,2025-12-18T04:44:55.668584 +AZURE,westus2,Standard_EC2as_v6,reserved_3y,NA,0.045282,USD,Azure Retail Prices API,2025-12-18T04:44:55.668587 +AZURE,westus2,Standard_EC2as_v6,spot,NA,0.021991,USD,Azure Retail Prices API,2025-12-18T04:44:53.524653 +AZURE,westus2,Standard_EC32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:44:53.524685 +AZURE,westus2,Standard_EC32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:44:55.668059 +AZURE,westus2,Standard_EC32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:44:55.668062 +AZURE,westus2,Standard_EC32ads_v6,spot,NA,0.42929,USD,Azure Retail Prices API,2025-12-18T04:44:53.525691 +AZURE,westus2,Standard_EC32as_v6,on_demand,NA,1.907,USD,Azure Retail Prices API,2025-12-18T04:44:53.524583 +AZURE,westus2,Standard_EC32as_v6,reserved_1y,NA,1.125228,USD,Azure Retail Prices API,2025-12-18T04:44:55.667993 +AZURE,westus2,Standard_EC32as_v6,reserved_3y,NA,0.724734,USD,Azure Retail Prices API,2025-12-18T04:44:55.667996 +AZURE,westus2,Standard_EC32as_v6,spot,NA,0.352414,USD,Azure Retail Prices API,2025-12-18T04:44:53.524415 +AZURE,westus2,Standard_EC48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:44:53.525981 +AZURE,westus2,Standard_EC48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:44:55.668926 +AZURE,westus2,Standard_EC48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:44:55.668929 +AZURE,westus2,Standard_EC48ads_v6,spot,NA,0.644028,USD,Azure Retail Prices API,2025-12-18T04:44:53.526005 +AZURE,westus2,Standard_EC48as_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:44:53.525696 +AZURE,westus2,Standard_EC48as_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:44:55.668760 +AZURE,westus2,Standard_EC48as_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:44:55.668763 +AZURE,westus2,Standard_EC48as_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:44:53.524095 +AZURE,westus2,Standard_EC4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:44:53.526080 +AZURE,westus2,Standard_EC4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:44:55.668963 +AZURE,westus2,Standard_EC4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:44:55.668966 +AZURE,westus2,Standard_EC4ads_v6,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:44:53.524939 +AZURE,westus2,Standard_EC4as_v6,on_demand,NA,0.238,USD,Azure Retail Prices API,2025-12-18T04:44:53.525208 +AZURE,westus2,Standard_EC4as_v6,reserved_1y,NA,0.140639,USD,Azure Retail Prices API,2025-12-18T04:44:55.668468 +AZURE,westus2,Standard_EC4as_v6,reserved_3y,NA,0.090601,USD,Azure Retail Prices API,2025-12-18T04:44:55.668482 +AZURE,westus2,Standard_EC4as_v6,spot,NA,0.043982,USD,Azure Retail Prices API,2025-12-18T04:44:53.524286 +AZURE,westus2,Standard_EC64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:44:53.524982 +AZURE,westus2,Standard_EC64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:44:55.668359 +AZURE,westus2,Standard_EC64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:44:55.668362 +AZURE,westus2,Standard_EC64ads_v6,spot,NA,0.858581,USD,Azure Retail Prices API,2025-12-18T04:44:53.524822 +AZURE,westus2,Standard_EC64as_v6,on_demand,NA,3.814,USD,Azure Retail Prices API,2025-12-18T04:44:53.526158 +AZURE,westus2,Standard_EC64as_v6,reserved_1y,NA,2.250457,USD,Azure Retail Prices API,2025-12-18T04:44:55.669011 +AZURE,westus2,Standard_EC64as_v6,reserved_3y,NA,1.449467,USD,Azure Retail Prices API,2025-12-18T04:44:55.669013 +AZURE,westus2,Standard_EC64as_v6,spot,NA,0.704827,USD,Azure Retail Prices API,2025-12-18T04:44:53.526000 +AZURE,westus2,Standard_EC8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:53.525042 +AZURE,westus2,Standard_EC8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:44:55.668398 +AZURE,westus2,Standard_EC8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:44:55.668400 +AZURE,westus2,Standard_EC8ads_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:44:53.524793 +AZURE,westus2,Standard_EC8as_v6,on_demand,NA,0.477,USD,Azure Retail Prices API,2025-12-18T04:44:53.525969 +AZURE,westus2,Standard_EC8as_v6,reserved_1y,NA,0.281279,USD,Azure Retail Prices API,2025-12-18T04:44:55.668921 +AZURE,westus2,Standard_EC8as_v6,reserved_3y,NA,0.181202,USD,Azure Retail Prices API,2025-12-18T04:44:55.668924 +AZURE,westus2,Standard_EC8as_v6,spot,NA,0.08815,USD,Azure Retail Prices API,2025-12-18T04:44:53.524600 +AZURE,westus2,Standard_EC96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:44:53.525788 +AZURE,westus2,Standard_EC96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:44:55.668798 +AZURE,westus2,Standard_EC96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:44:55.668801 +AZURE,westus2,Standard_EC96ads_v6,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:44:53.525663 +AZURE,westus2,Standard_EC96as_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:44:53.525454 +AZURE,westus2,Standard_EC96as_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:44:55.668648 +AZURE,westus2,Standard_EC96as_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:44:55.668651 +AZURE,westus2,Standard_EC96as_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:44:53.525986 +AZURE,westus2,Standard_F16,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379258 +AZURE,westus2,Standard_F16,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379277 +AZURE,westus2,Standard_F16,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379282 +AZURE,westus2,Standard_F16,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379262 +AZURE,westus2,Standard_F16s,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381579 +AZURE,westus2,Standard_F16s,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381587 +AZURE,westus2,Standard_F16s,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381591 +AZURE,westus2,Standard_F16s,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381583 +AZURE,westus2,Standard_F16s_v2,on_demand,NA,0.8232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384262 +AZURE,westus2,Standard_F16s_v2,reserved_1y,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384271 +AZURE,westus2,Standard_F16s_v2,reserved_3y,NA,0.32928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384275 +AZURE,westus2,Standard_F16s_v2,spot,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384266 +AZURE,westus2,Standard_F32s_v2,on_demand,NA,1.6464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385045 +AZURE,westus2,Standard_F32s_v2,reserved_1y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385054 +AZURE,westus2,Standard_F32s_v2,reserved_3y,NA,0.65856,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385058 +AZURE,westus2,Standard_F32s_v2,spot,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385049 +AZURE,westus2,Standard_F4,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377627 +AZURE,westus2,Standard_F4,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377647 +AZURE,westus2,Standard_F4,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377651 +AZURE,westus2,Standard_F4,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377643 +AZURE,westus2,Standard_F48s_v2,on_demand,NA,2.4696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385876 +AZURE,westus2,Standard_F48s_v2,reserved_1y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385885 +AZURE,westus2,Standard_F48s_v2,reserved_3y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385890 +AZURE,westus2,Standard_F48s_v2,spot,NA,0.74088,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385881 +AZURE,westus2,Standard_F4s,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380016 +AZURE,westus2,Standard_F4s,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380024 +AZURE,westus2,Standard_F4s,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380028 +AZURE,westus2,Standard_F4s,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380020 +AZURE,westus2,Standard_F4s_v2,on_demand,NA,0.2058,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382335 +AZURE,westus2,Standard_F4s_v2,reserved_1y,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382343 +AZURE,westus2,Standard_F4s_v2,reserved_3y,NA,0.08232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382347 +AZURE,westus2,Standard_F4s_v2,spot,NA,0.06174,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382339 +AZURE,westus2,Standard_F64s_v2,on_demand,NA,3.2928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386667 +AZURE,westus2,Standard_F64s_v2,reserved_1y,NA,1.97568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386675 +AZURE,westus2,Standard_F64s_v2,reserved_3y,NA,1.31712,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386679 +AZURE,westus2,Standard_F64s_v2,spot,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386671 +AZURE,westus2,Standard_F72s_v2,on_demand,NA,3.7044,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387442 +AZURE,westus2,Standard_F72s_v2,reserved_1y,NA,2.22264,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387451 +AZURE,westus2,Standard_F72s_v2,reserved_3y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387455 +AZURE,westus2,Standard_F72s_v2,spot,NA,1.11132,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387446 +AZURE,westus2,Standard_F8,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378457 +AZURE,westus2,Standard_F8,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378465 +AZURE,westus2,Standard_F8,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378469 +AZURE,westus2,Standard_F8,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378461 +AZURE,westus2,Standard_F8s,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380734 +AZURE,westus2,Standard_F8s,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380742 +AZURE,westus2,Standard_F8s,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380747 +AZURE,westus2,Standard_F8s,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380738 +AZURE,westus2,Standard_F8s_v2,on_demand,NA,0.4116,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383467 +AZURE,westus2,Standard_F8s_v2,reserved_1y,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383475 +AZURE,westus2,Standard_F8s_v2,reserved_3y,NA,0.16464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383480 +AZURE,westus2,Standard_F8s_v2,spot,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383471 +AZURE,westus2,Standard_H16,on_demand,NA,1.591,USD,Azure Retail Prices API,2025-12-18T04:44:53.525891 +AZURE,westus2,Standard_H16,spot,NA,0.294017,USD,Azure Retail Prices API,2025-12-18T04:44:53.524221 +AZURE,westus2,Standard_H8,on_demand,NA,0.796,USD,Azure Retail Prices API,2025-12-18T04:44:53.524662 +AZURE,westus2,Standard_H8,spot,NA,0.147101,USD,Azure Retail Prices API,2025-12-18T04:44:53.524952 +AZURE,westus2,Standard_L16as_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:44:53.525755 +AZURE,westus2,Standard_L16as_v3,reserved_1y,NA,0.798744,USD,Azure Retail Prices API,2025-12-18T04:44:55.668793 +AZURE,westus2,Standard_L16as_v3,reserved_3y,NA,0.524163,USD,Azure Retail Prices API,2025-12-18T04:44:55.668796 +AZURE,westus2,Standard_L16as_v3,spot,NA,0.293654,USD,Azure Retail Prices API,2025-12-18T04:44:53.525085 +AZURE,westus2,Standard_L16s_v3,on_demand,NA,1.396,USD,Azure Retail Prices API,2025-12-18T04:44:53.524385 +AZURE,westus2,Standard_L16s_v3,reserved_1y,NA,0.893493,USD,Azure Retail Prices API,2025-12-18T04:44:55.667873 +AZURE,westus2,Standard_L16s_v3,reserved_3y,NA,0.586301,USD,Azure Retail Prices API,2025-12-18T04:44:55.667876 +AZURE,westus2,Standard_L16s_v3,spot,NA,0.348442,USD,Azure Retail Prices API,2025-12-18T04:44:53.526222 +AZURE,westus2,Standard_L32as_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:44:53.525799 +AZURE,westus2,Standard_L32as_v3,reserved_1y,NA,1.597489,USD,Azure Retail Prices API,2025-12-18T04:44:55.668804 +AZURE,westus2,Standard_L32as_v3,reserved_3y,NA,1.048326,USD,Azure Retail Prices API,2025-12-18T04:44:55.668806 +AZURE,westus2,Standard_L32as_v3,spot,NA,0.587309,USD,Azure Retail Prices API,2025-12-18T04:44:53.524061 +AZURE,westus2,Standard_L32s_v3,on_demand,NA,2.792,USD,Azure Retail Prices API,2025-12-18T04:44:53.525493 +AZURE,westus2,Standard_L32s_v3,reserved_1y,NA,1.786872,USD,Azure Retail Prices API,2025-12-18T04:44:55.668690 +AZURE,westus2,Standard_L32s_v3,reserved_3y,NA,1.172641,USD,Azure Retail Prices API,2025-12-18T04:44:55.668693 +AZURE,westus2,Standard_L32s_v3,spot,NA,0.696883,USD,Azure Retail Prices API,2025-12-18T04:44:53.524496 +AZURE,westus2,Standard_L48as_v3,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:53.524090 +AZURE,westus2,Standard_L48as_v3,reserved_1y,NA,2.396119,USD,Azure Retail Prices API,2025-12-18T04:44:55.667658 +AZURE,westus2,Standard_L48as_v3,reserved_3y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:44:55.667661 +AZURE,westus2,Standard_L48as_v3,spot,NA,0.880963,USD,Azure Retail Prices API,2025-12-18T04:44:53.525524 +AZURE,westus2,Standard_L48s_v3,on_demand,NA,4.188,USD,Azure Retail Prices API,2025-12-18T04:44:53.525416 +AZURE,westus2,Standard_L48s_v3,reserved_1y,NA,2.680365,USD,Azure Retail Prices API,2025-12-18T04:44:55.668625 +AZURE,westus2,Standard_L48s_v3,reserved_3y,NA,1.758942,USD,Azure Retail Prices API,2025-12-18T04:44:55.668628 +AZURE,westus2,Standard_L48s_v3,spot,NA,1.045325,USD,Azure Retail Prices API,2025-12-18T04:44:53.525657 +AZURE,westus2,Standard_L64as_v3,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:44:53.524634 +AZURE,westus2,Standard_L64as_v3,reserved_1y,NA,3.194863,USD,Azure Retail Prices API,2025-12-18T04:44:55.668015 +AZURE,westus2,Standard_L64as_v3,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:44:55.668017 +AZURE,westus2,Standard_L64as_v3,spot,NA,1.174618,USD,Azure Retail Prices API,2025-12-18T04:44:53.526203 +AZURE,westus2,Standard_L64s_v3,on_demand,NA,5.584,USD,Azure Retail Prices API,2025-12-18T04:44:53.526327 +AZURE,westus2,Standard_L64s_v3,reserved_1y,NA,3.573744,USD,Azure Retail Prices API,2025-12-18T04:44:55.669090 +AZURE,westus2,Standard_L64s_v3,reserved_3y,NA,2.345282,USD,Azure Retail Prices API,2025-12-18T04:44:55.669093 +AZURE,westus2,Standard_L64s_v3,spot,NA,1.393766,USD,Azure Retail Prices API,2025-12-18T04:44:53.524515 +AZURE,westus2,Standard_L80as_v3,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:44:53.526237 +AZURE,westus2,Standard_L80as_v3,reserved_1y,NA,3.993607,USD,Azure Retail Prices API,2025-12-18T04:44:55.669048 +AZURE,westus2,Standard_L80as_v3,reserved_3y,NA,2.620814,USD,Azure Retail Prices API,2025-12-18T04:44:55.669050 +AZURE,westus2,Standard_L80as_v3,spot,NA,1.468272,USD,Azure Retail Prices API,2025-12-18T04:44:53.526122 +AZURE,westus2,Standard_L80s_v3,on_demand,NA,6.98,USD,Azure Retail Prices API,2025-12-18T04:44:53.524825 +AZURE,westus2,Standard_L80s_v3,reserved_1y,NA,4.467237,USD,Azure Retail Prices API,2025-12-18T04:44:55.668188 +AZURE,westus2,Standard_L80s_v3,reserved_3y,NA,2.931583,USD,Azure Retail Prices API,2025-12-18T04:44:55.668191 +AZURE,westus2,Standard_L80s_v3,spot,NA,1.742208,USD,Azure Retail Prices API,2025-12-18T04:44:53.524987 +AZURE,westus2,Standard_L8as_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:44:53.524785 +AZURE,westus2,Standard_L8as_v3,reserved_1y,NA,0.399315,USD,Azure Retail Prices API,2025-12-18T04:44:55.668156 +AZURE,westus2,Standard_L8as_v3,reserved_3y,NA,0.262062,USD,Azure Retail Prices API,2025-12-18T04:44:55.668159 +AZURE,westus2,Standard_L8as_v3,spot,NA,0.146827,USD,Azure Retail Prices API,2025-12-18T04:44:53.524611 +AZURE,westus2,Standard_L8s_v3,on_demand,NA,0.698,USD,Azure Retail Prices API,2025-12-18T04:44:53.524406 +AZURE,westus2,Standard_L8s_v3,reserved_1y,NA,0.446689,USD,Azure Retail Prices API,2025-12-18T04:44:55.667890 +AZURE,westus2,Standard_L8s_v3,reserved_3y,NA,0.293151,USD,Azure Retail Prices API,2025-12-18T04:44:55.667893 +AZURE,westus2,Standard_L8s_v3,spot,NA,0.174221,USD,Azure Retail Prices API,2025-12-18T04:44:53.525828 +AZURE,westus2,Standard_NC12s_v3,on_demand,NA,6.12,USD,Azure Retail Prices API,2025-12-18T04:44:53.524557 +AZURE,westus2,Standard_NC12s_v3,spot,NA,1.130976,USD,Azure Retail Prices API,2025-12-18T04:44:53.523961 +AZURE,westus2,Standard_NC16as_T4_v3,on_demand,NA,1.204,USD,Azure Retail Prices API,2025-12-18T04:44:53.524963 +AZURE,westus2,Standard_NC16as_T4_v3,reserved_1y,NA,0.707991,USD,Azure Retail Prices API,2025-12-18T04:44:55.668331 +AZURE,westus2,Standard_NC16as_T4_v3,reserved_3y,NA,0.452702,USD,Azure Retail Prices API,2025-12-18T04:44:55.668334 +AZURE,westus2,Standard_NC16as_T4_v3,spot,NA,0.34916,USD,Azure Retail Prices API,2025-12-18T04:44:53.525734 +AZURE,westus2,Standard_NC24ads_A100_v4,on_demand,NA,3.673,USD,Azure Retail Prices API,2025-12-18T04:44:53.524375 +AZURE,westus2,Standard_NC24ads_A100_v4,reserved_1y,NA,2.401027,USD,Azure Retail Prices API,2025-12-18T04:44:55.667867 +AZURE,westus2,Standard_NC24ads_A100_v4,reserved_3y,NA,1.363052,USD,Azure Retail Prices API,2025-12-18T04:44:55.667870 +AZURE,westus2,Standard_NC24ads_A100_v4,spot,NA,1.524295,USD,Azure Retail Prices API,2025-12-18T04:44:53.525110 +AZURE,westus2,Standard_NC24s_v3,on_demand,NA,12.24,USD,Azure Retail Prices API,2025-12-18T04:44:53.525680 +AZURE,westus2,Standard_NC24s_v3,spot,NA,2.261952,USD,Azure Retail Prices API,2025-12-18T04:44:53.524206 +AZURE,westus2,Standard_NC40ads_H100_v5,on_demand,NA,6.98,USD,Azure Retail Prices API,2025-12-18T04:44:53.525958 +AZURE,westus2,Standard_NC40ads_H100_v5,reserved_1y,NA,5.235046,USD,Azure Retail Prices API,2025-12-18T04:44:55.668916 +AZURE,westus2,Standard_NC40ads_H100_v5,reserved_3y,NA,3.839003,USD,Azure Retail Prices API,2025-12-18T04:44:55.668918 +AZURE,westus2,Standard_NC40ads_H100_v5,spot,NA,6.282,USD,Azure Retail Prices API,2025-12-18T04:44:53.526252 +AZURE,westus2,Standard_NC48ads_A100_v4,on_demand,NA,7.346,USD,Azure Retail Prices API,2025-12-18T04:44:53.524888 +AZURE,westus2,Standard_NC48ads_A100_v4,reserved_1y,NA,4.802055,USD,Azure Retail Prices API,2025-12-18T04:44:55.668242 +AZURE,westus2,Standard_NC48ads_A100_v4,reserved_3y,NA,2.726104,USD,Azure Retail Prices API,2025-12-18T04:44:55.668245 +AZURE,westus2,Standard_NC48ads_A100_v4,spot,NA,3.04859,USD,Azure Retail Prices API,2025-12-18T04:44:53.524642 +AZURE,westus2,Standard_NC4as_T4_v3,on_demand,NA,0.526,USD,Azure Retail Prices API,2025-12-18T04:44:53.524966 +AZURE,westus2,Standard_NC4as_T4_v3,reserved_1y,NA,0.309247,USD,Azure Retail Prices API,2025-12-18T04:44:55.668337 +AZURE,westus2,Standard_NC4as_T4_v3,reserved_3y,NA,0.197793,USD,Azure Retail Prices API,2025-12-18T04:44:55.668340 +AZURE,westus2,Standard_NC4as_T4_v3,spot,NA,0.15254,USD,Azure Retail Prices API,2025-12-18T04:44:53.525713 +AZURE,westus2,Standard_NC64as_T4_v3,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:44:53.524609 +AZURE,westus2,Standard_NC64as_T4_v3,reserved_1y,NA,2.559018,USD,Azure Retail Prices API,2025-12-18T04:44:55.668009 +AZURE,westus2,Standard_NC64as_T4_v3,reserved_3y,NA,1.636339,USD,Azure Retail Prices API,2025-12-18T04:44:55.668012 +AZURE,westus2,Standard_NC64as_T4_v3,spot,NA,1.26208,USD,Azure Retail Prices API,2025-12-18T04:44:53.524272 +AZURE,westus2,Standard_NC6s_v3,on_demand,NA,3.06,USD,Azure Retail Prices API,2025-12-18T04:44:53.525254 +AZURE,westus2,Standard_NC6s_v3,spot,NA,0.565488,USD,Azure Retail Prices API,2025-12-18T04:44:53.524774 +AZURE,westus2,Standard_NC8as_T4_v3,on_demand,NA,0.752,USD,Azure Retail Prices API,2025-12-18T04:44:53.524164 +AZURE,westus2,Standard_NC8as_T4_v3,reserved_1y,NA,0.442123,USD,Azure Retail Prices API,2025-12-18T04:44:55.667707 +AZURE,westus2,Standard_NC8as_T4_v3,reserved_3y,NA,0.282763,USD,Azure Retail Prices API,2025-12-18T04:44:55.667710 +AZURE,westus2,Standard_NC8as_T4_v3,spot,NA,0.21808,USD,Azure Retail Prices API,2025-12-18T04:44:53.525280 +AZURE,westus2,Standard_NC96ads_A100_v4,on_demand,NA,14.692,USD,Azure Retail Prices API,2025-12-18T04:44:53.524254 +AZURE,westus2,Standard_NC96ads_A100_v4,reserved_1y,NA,9.60411,USD,Azure Retail Prices API,2025-12-18T04:44:55.667777 +AZURE,westus2,Standard_NC96ads_A100_v4,reserved_3y,NA,5.452207,USD,Azure Retail Prices API,2025-12-18T04:44:55.667779 +AZURE,westus2,Standard_NC96ads_A100_v4,spot,NA,6.09718,USD,Azure Retail Prices API,2025-12-18T04:44:53.525091 +AZURE,westus2,Standard_ND96asr_v4,on_demand,NA,27.197,USD,Azure Retail Prices API,2025-12-18T04:44:53.524834 +AZURE,westus2,Standard_ND96asr_v4,reserved_1y,NA,18.828311,USD,Azure Retail Prices API,2025-12-18T04:44:55.668193 +AZURE,westus2,Standard_ND96asr_v4,reserved_3y,NA,10.878729,USD,Azure Retail Prices API,2025-12-18T04:44:55.668196 +AZURE,westus2,Standard_ND96asr_v4,spot,NA,5.98334,USD,Azure Retail Prices API,2025-12-18T04:44:53.526317 +AZURE,westus2,Standard_ND96isr_H100_v5,on_demand,NA,98.32,USD,Azure Retail Prices API,2025-12-18T04:44:53.524259 +AZURE,westus2,Standard_ND96isr_H100_v5,reserved_1y,NA,62.924772,USD,Azure Retail Prices API,2025-12-18T04:44:55.667783 +AZURE,westus2,Standard_ND96isr_H100_v5,reserved_3y,NA,43.162481,USD,Azure Retail Prices API,2025-12-18T04:44:55.667785 +AZURE,westus2,Standard_ND96isr_H100_v5,spot,NA,18.169536,USD,Azure Retail Prices API,2025-12-18T04:44:53.524603 +AZURE,westus2,Standard_NV36adms_A10_v5,on_demand,NA,4.52,USD,Azure Retail Prices API,2025-12-18T04:44:53.524006 +AZURE,westus2,Standard_NV36adms_A10_v5,reserved_1y,NA,2.892808,USD,Azure Retail Prices API,2025-12-18T04:44:55.667593 +AZURE,westus2,Standard_NV36adms_A10_v5,reserved_3y,NA,1.988813,USD,Azure Retail Prices API,2025-12-18T04:44:55.667598 +AZURE,westus2,Standard_NV36adms_A10_v5,spot,NA,0.835296,USD,Azure Retail Prices API,2025-12-18T04:44:53.525039 +AZURE,westus2,Standard_NV36ads_A10_v5,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:44:53.524723 +AZURE,westus2,Standard_NV36ads_A10_v5,reserved_1y,NA,2.047945,USD,Azure Retail Prices API,2025-12-18T04:44:55.668097 +AZURE,westus2,Standard_NV36ads_A10_v5,reserved_3y,NA,1.407991,USD,Azure Retail Prices API,2025-12-18T04:44:55.668099 +AZURE,westus2,Standard_NV36ads_A10_v5,spot,NA,0.59136,USD,Azure Retail Prices API,2025-12-18T04:44:53.525321 +AZURE,westus2,Standard_NV72ads_A10_v5,on_demand,NA,6.52,USD,Azure Retail Prices API,2025-12-18T04:44:53.524370 +AZURE,westus2,Standard_NV72ads_A10_v5,reserved_1y,NA,4.172831,USD,Azure Retail Prices API,2025-12-18T04:44:55.667862 +AZURE,westus2,Standard_NV72ads_A10_v5,reserved_3y,NA,2.868798,USD,Azure Retail Prices API,2025-12-18T04:44:55.667864 +AZURE,westus2,Standard_NV72ads_A10_v5,spot,NA,1.204896,USD,Azure Retail Prices API,2025-12-18T04:44:53.524751 +AZURE,westus3,Standard_D128ds_v6,on_demand,NA,7.973,USD,Azure Retail Prices API,2025-12-18T04:44:58.679853 +AZURE,westus3,Standard_D128ds_v6,reserved_1y,NA,4.943379,USD,Azure Retail Prices API,2025-12-18T04:45:00.740852 +AZURE,westus3,Standard_D128ds_v6,reserved_3y,NA,3.109513,USD,Azure Retail Prices API,2025-12-18T04:45:00.740857 +AZURE,westus3,Standard_D128ds_v6,spot,NA,1.47341,USD,Azure Retail Prices API,2025-12-18T04:44:58.679982 +AZURE,westus3,Standard_D12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488181 +AZURE,westus3,Standard_D12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488189 +AZURE,westus3,Standard_D12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488193 +AZURE,westus3,Standard_D12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488185 +AZURE,westus3,Standard_D13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488924 +AZURE,westus3,Standard_D13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488932 +AZURE,westus3,Standard_D13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488937 +AZURE,westus3,Standard_D13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.488928 +AZURE,westus3,Standard_D14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490045 +AZURE,westus3,Standard_D14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490053 +AZURE,westus3,Standard_D14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490057 +AZURE,westus3,Standard_D14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490049 +AZURE,westus3,Standard_D15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490750 +AZURE,westus3,Standard_D15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490759 +AZURE,westus3,Standard_D15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490763 +AZURE,westus3,Standard_D15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.490755 +AZURE,westus3,Standard_D16_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:58.680359 +AZURE,westus3,Standard_D16_v3,reserved_1y,NA,0.457991,USD,Azure Retail Prices API,2025-12-18T04:45:00.741571 +AZURE,westus3,Standard_D16_v3,reserved_3y,NA,0.294787,USD,Azure Retail Prices API,2025-12-18T04:45:00.741574 +AZURE,westus3,Standard_D16_v3,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:58.679708 +AZURE,westus3,Standard_D16a_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:58.681095 +AZURE,westus3,Standard_D16a_v4,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:45:00.742463 +AZURE,westus3,Standard_D16a_v4,reserved_3y,NA,0.291857,USD,Azure Retail Prices API,2025-12-18T04:45:00.742466 +AZURE,westus3,Standard_D16a_v4,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:58.680448 +AZURE,westus3,Standard_D16ads_v5,on_demand,NA,1.56,USD,Azure Retail Prices API,2025-12-18T04:44:58.679461 +AZURE,westus3,Standard_D16ads_v5,reserved_1y,NA,0.486187,USD,Azure Retail Prices API,2025-12-18T04:45:00.741170 +AZURE,westus3,Standard_D16ads_v5,reserved_3y,NA,0.313128,USD,Azure Retail Prices API,2025-12-18T04:45:00.741175 +AZURE,westus3,Standard_D16ads_v5,spot,NA,0.152275,USD,Azure Retail Prices API,2025-12-18T04:44:58.679750 +AZURE,westus3,Standard_D16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:44:58.680549 +AZURE,westus3,Standard_D16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:45:00.741787 +AZURE,westus3,Standard_D16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:45:00.741790 +AZURE,westus3,Standard_D16ads_v6,spot,NA,0.168538,USD,Azure Retail Prices API,2025-12-18T04:44:58.680285 +AZURE,westus3,Standard_D16as_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:58.680252 +AZURE,westus3,Standard_D16as_v4,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:45:00.741409 +AZURE,westus3,Standard_D16as_v4,reserved_3y,NA,0.291857,USD,Azure Retail Prices API,2025-12-18T04:45:00.741414 +AZURE,westus3,Standard_D16as_v4,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:58.681031 +AZURE,westus3,Standard_D16as_v5,on_demand,NA,1.424,USD,Azure Retail Prices API,2025-12-18T04:44:58.680794 +AZURE,westus3,Standard_D16as_v5,reserved_1y,NA,0.405936,USD,Azure Retail Prices API,2025-12-18T04:45:00.742375 +AZURE,westus3,Standard_D16as_v5,reserved_3y,NA,0.261454,USD,Azure Retail Prices API,2025-12-18T04:45:00.742380 +AZURE,westus3,Standard_D16as_v5,spot,NA,0.127142,USD,Azure Retail Prices API,2025-12-18T04:44:58.680912 +AZURE,westus3,Standard_D16d_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:58.679624 +AZURE,westus3,Standard_D16d_v4,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:45:00.740548 +AZURE,westus3,Standard_D16d_v4,reserved_3y,NA,0.339916,USD,Azure Retail Prices API,2025-12-18T04:45:00.740553 +AZURE,westus3,Standard_D16d_v4,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:44:58.680521 +AZURE,westus3,Standard_D16ds_v4,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:58.680960 +AZURE,westus3,Standard_D16ds_v4,reserved_1y,NA,0.531507,USD,Azure Retail Prices API,2025-12-18T04:45:00.742330 +AZURE,westus3,Standard_D16ds_v4,reserved_3y,NA,0.339916,USD,Azure Retail Prices API,2025-12-18T04:45:00.742333 +AZURE,westus3,Standard_D16ds_v4,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:44:58.679801 +AZURE,westus3,Standard_D16ds_v5,on_demand,NA,0.904,USD,Azure Retail Prices API,2025-12-18T04:44:58.680765 +AZURE,westus3,Standard_D16ds_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:45:00.742024 +AZURE,westus3,Standard_D16ds_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:45:00.742030 +AZURE,westus3,Standard_D16ds_v5,spot,NA,0.167602,USD,Azure Retail Prices API,2025-12-18T04:44:58.679483 +AZURE,westus3,Standard_D16ds_v6,on_demand,NA,0.997,USD,Azure Retail Prices API,2025-12-18T04:44:58.680957 +AZURE,westus3,Standard_D16ds_v6,reserved_1y,NA,0.617922,USD,Azure Retail Prices API,2025-12-18T04:45:00.742324 +AZURE,westus3,Standard_D16ds_v6,reserved_3y,NA,0.388699,USD,Azure Retail Prices API,2025-12-18T04:45:00.742327 +AZURE,westus3,Standard_D16ds_v6,spot,NA,0.184246,USD,Azure Retail Prices API,2025-12-18T04:44:58.680784 +AZURE,westus3,Standard_D16pds_v6,on_demand,NA,0.734,USD,Azure Retail Prices API,2025-12-18T04:44:58.681047 +AZURE,westus3,Standard_D16pds_v6,reserved_1y,NA,0.433333,USD,Azure Retail Prices API,2025-12-18T04:45:00.742426 +AZURE,westus3,Standard_D16pds_v6,reserved_3y,NA,0.279072,USD,Azure Retail Prices API,2025-12-18T04:45:00.742429 +AZURE,westus3,Standard_D16pds_v6,spot,NA,0.135643,USD,Azure Retail Prices API,2025-12-18T04:44:58.681093 +AZURE,westus3,Standard_D16ps_v6,on_demand,NA,0.562,USD,Azure Retail Prices API,2025-12-18T04:44:58.680986 +AZURE,westus3,Standard_D16ps_v6,reserved_1y,NA,0.331393,USD,Azure Retail Prices API,2025-12-18T04:45:00.742367 +AZURE,westus3,Standard_D16ps_v6,reserved_3y,NA,0.213394,USD,Azure Retail Prices API,2025-12-18T04:45:00.742371 +AZURE,westus3,Standard_D16ps_v6,spot,NA,0.103858,USD,Azure Retail Prices API,2025-12-18T04:44:58.680110 +AZURE,westus3,Standard_D16s_v3,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:58.679845 +AZURE,westus3,Standard_D16s_v3,reserved_1y,NA,0.457991,USD,Azure Retail Prices API,2025-12-18T04:45:00.740842 +AZURE,westus3,Standard_D16s_v3,reserved_3y,NA,0.294787,USD,Azure Retail Prices API,2025-12-18T04:45:00.740847 +AZURE,westus3,Standard_D16s_v3,spot,NA,0.141926,USD,Azure Retail Prices API,2025-12-18T04:44:58.680773 +AZURE,westus3,Standard_D16s_v4,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:58.680345 +AZURE,westus3,Standard_D16s_v4,reserved_1y,NA,0.451598,USD,Azure Retail Prices API,2025-12-18T04:45:00.741545 +AZURE,westus3,Standard_D16s_v4,reserved_3y,NA,0.288775,USD,Azure Retail Prices API,2025-12-18T04:45:00.741547 +AZURE,westus3,Standard_D16s_v4,spot,NA,0.142387,USD,Azure Retail Prices API,2025-12-18T04:44:58.680078 +AZURE,westus3,Standard_D16s_v5,on_demand,NA,0.768,USD,Azure Retail Prices API,2025-12-18T04:44:58.680353 +AZURE,westus3,Standard_D16s_v5,reserved_1y,NA,0.453082,USD,Azure Retail Prices API,2025-12-18T04:45:00.741558 +AZURE,westus3,Standard_D16s_v5,reserved_3y,NA,0.291857,USD,Azure Retail Prices API,2025-12-18T04:45:00.741561 +AZURE,westus3,Standard_D16s_v5,spot,NA,0.142387,USD,Azure Retail Prices API,2025-12-18T04:44:58.679499 +AZURE,westus3,Standard_D2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:44:58.679486 +AZURE,westus3,Standard_D2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:45:00.740354 +AZURE,westus3,Standard_D2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:45:00.740359 +AZURE,westus3,Standard_D2ads_v6,spot,NA,0.021067,USD,Azure Retail Prices API,2025-12-18T04:44:58.680470 +AZURE,westus3,Standard_D2ds_v6,on_demand,NA,0.125,USD,Azure Retail Prices API,2025-12-18T04:44:58.680613 +AZURE,westus3,Standard_D2ds_v6,reserved_1y,NA,0.077283,USD,Azure Retail Prices API,2025-12-18T04:45:00.741876 +AZURE,westus3,Standard_D2ds_v6,reserved_3y,NA,0.048592,USD,Azure Retail Prices API,2025-12-18T04:45:00.741879 +AZURE,westus3,Standard_D2ds_v6,spot,NA,0.0231,USD,Azure Retail Prices API,2025-12-18T04:44:58.680414 +AZURE,westus3,Standard_D32_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:58.680782 +AZURE,westus3,Standard_D32_v3,reserved_1y,NA,0.915982,USD,Azure Retail Prices API,2025-12-18T04:45:00.742090 +AZURE,westus3,Standard_D32_v3,reserved_3y,NA,0.589574,USD,Azure Retail Prices API,2025-12-18T04:45:00.742096 +AZURE,westus3,Standard_D32_v3,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:58.680610 +AZURE,westus3,Standard_D32a_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:58.679992 +AZURE,westus3,Standard_D32a_v4,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:45:00.741038 +AZURE,westus3,Standard_D32a_v4,reserved_3y,NA,0.583676,USD,Azure Retail Prices API,2025-12-18T04:45:00.741043 +AZURE,westus3,Standard_D32a_v4,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:58.679780 +AZURE,westus3,Standard_D32ads_v5,on_demand,NA,1.648,USD,Azure Retail Prices API,2025-12-18T04:44:58.680348 +AZURE,westus3,Standard_D32ads_v5,reserved_1y,NA,0.972374,USD,Azure Retail Prices API,2025-12-18T04:45:00.741550 +AZURE,westus3,Standard_D32ads_v5,reserved_3y,NA,0.626256,USD,Azure Retail Prices API,2025-12-18T04:45:00.741554 +AZURE,westus3,Standard_D32ads_v5,spot,NA,0.30455,USD,Azure Retail Prices API,2025-12-18T04:44:58.679919 +AZURE,westus3,Standard_D32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:44:58.680891 +AZURE,westus3,Standard_D32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:45:00.742240 +AZURE,westus3,Standard_D32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:45:00.742243 +AZURE,westus3,Standard_D32ads_v6,spot,NA,0.337075,USD,Azure Retail Prices API,2025-12-18T04:44:58.680376 +AZURE,westus3,Standard_D32as_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:58.680116 +AZURE,westus3,Standard_D32as_v4,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:45:00.741251 +AZURE,westus3,Standard_D32as_v4,reserved_3y,NA,0.583676,USD,Azure Retail Prices API,2025-12-18T04:45:00.741256 +AZURE,westus3,Standard_D32as_v4,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:58.679600 +AZURE,westus3,Standard_D32as_v5,on_demand,NA,1.376,USD,Azure Retail Prices API,2025-12-18T04:44:58.680017 +AZURE,westus3,Standard_D32as_v5,reserved_1y,NA,0.811872,USD,Azure Retail Prices API,2025-12-18T04:45:00.741057 +AZURE,westus3,Standard_D32as_v5,reserved_3y,NA,0.522869,USD,Azure Retail Prices API,2025-12-18T04:45:00.741063 +AZURE,westus3,Standard_D32as_v5,spot,NA,0.254285,USD,Azure Retail Prices API,2025-12-18T04:44:58.680530 +AZURE,westus3,Standard_D32d_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:58.680388 +AZURE,westus3,Standard_D32d_v4,reserved_1y,NA,1.063128,USD,Azure Retail Prices API,2025-12-18T04:45:00.741607 +AZURE,westus3,Standard_D32d_v4,reserved_3y,NA,0.679795,USD,Azure Retail Prices API,2025-12-18T04:45:00.741610 +AZURE,westus3,Standard_D32d_v4,spot,NA,0.334118,USD,Azure Retail Prices API,2025-12-18T04:44:58.680492 +AZURE,westus3,Standard_D32ds_v4,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:58.680570 +AZURE,westus3,Standard_D32ds_v4,reserved_1y,NA,1.063128,USD,Azure Retail Prices API,2025-12-18T04:45:00.741810 +AZURE,westus3,Standard_D32ds_v4,reserved_3y,NA,0.679795,USD,Azure Retail Prices API,2025-12-18T04:45:00.741813 +AZURE,westus3,Standard_D32ds_v4,spot,NA,0.334118,USD,Azure Retail Prices API,2025-12-18T04:44:58.680023 +AZURE,westus3,Standard_D32ds_v5,on_demand,NA,1.808,USD,Azure Retail Prices API,2025-12-18T04:44:58.680075 +AZURE,westus3,Standard_D32ds_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:45:00.741190 +AZURE,westus3,Standard_D32ds_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:45:00.741194 +AZURE,westus3,Standard_D32ds_v5,spot,NA,0.335203,USD,Azure Retail Prices API,2025-12-18T04:44:58.680479 +AZURE,westus3,Standard_D32ds_v6,on_demand,NA,1.993,USD,Azure Retail Prices API,2025-12-18T04:44:58.680033 +AZURE,westus3,Standard_D32ds_v6,reserved_1y,NA,1.235845,USD,Azure Retail Prices API,2025-12-18T04:45:00.741089 +AZURE,westus3,Standard_D32ds_v6,reserved_3y,NA,0.777397,USD,Azure Retail Prices API,2025-12-18T04:45:00.741094 +AZURE,westus3,Standard_D32ds_v6,spot,NA,0.368306,USD,Azure Retail Prices API,2025-12-18T04:44:58.679925 +AZURE,westus3,Standard_D32pds_v6,on_demand,NA,1.469,USD,Azure Retail Prices API,2025-12-18T04:44:58.680616 +AZURE,westus3,Standard_D32pds_v6,reserved_1y,NA,0.866553,USD,Azure Retail Prices API,2025-12-18T04:45:00.741881 +AZURE,westus3,Standard_D32pds_v6,reserved_3y,NA,0.558143,USD,Azure Retail Prices API,2025-12-18T04:45:00.741884 +AZURE,westus3,Standard_D32pds_v6,spot,NA,0.271471,USD,Azure Retail Prices API,2025-12-18T04:44:58.679815 +AZURE,westus3,Standard_D32ps_v6,on_demand,NA,1.123,USD,Azure Retail Prices API,2025-12-18T04:44:58.680893 +AZURE,westus3,Standard_D32ps_v6,reserved_1y,NA,0.662671,USD,Azure Retail Prices API,2025-12-18T04:45:00.742246 +AZURE,westus3,Standard_D32ps_v6,reserved_3y,NA,0.426826,USD,Azure Retail Prices API,2025-12-18T04:45:00.742249 +AZURE,westus3,Standard_D32ps_v6,spot,NA,0.20753,USD,Azure Retail Prices API,2025-12-18T04:44:58.680167 +AZURE,westus3,Standard_D32s_v3,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:58.679859 +AZURE,westus3,Standard_D32s_v3,reserved_1y,NA,0.915982,USD,Azure Retail Prices API,2025-12-18T04:45:00.740862 +AZURE,westus3,Standard_D32s_v3,reserved_3y,NA,0.589574,USD,Azure Retail Prices API,2025-12-18T04:45:00.740866 +AZURE,westus3,Standard_D32s_v3,spot,NA,0.283853,USD,Azure Retail Prices API,2025-12-18T04:44:58.680657 +AZURE,westus3,Standard_D32s_v4,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:58.679451 +AZURE,westus3,Standard_D32s_v4,reserved_1y,NA,0.903196,USD,Azure Retail Prices API,2025-12-18T04:45:00.740275 +AZURE,westus3,Standard_D32s_v4,reserved_3y,NA,0.577549,USD,Azure Retail Prices API,2025-12-18T04:45:00.740281 +AZURE,westus3,Standard_D32s_v4,spot,NA,0.284774,USD,Azure Retail Prices API,2025-12-18T04:44:58.679552 +AZURE,westus3,Standard_D32s_v5,on_demand,NA,1.536,USD,Azure Retail Prices API,2025-12-18T04:44:58.680564 +AZURE,westus3,Standard_D32s_v5,reserved_1y,NA,0.906279,USD,Azure Retail Prices API,2025-12-18T04:45:00.741804 +AZURE,westus3,Standard_D32s_v5,reserved_3y,NA,0.583676,USD,Azure Retail Prices API,2025-12-18T04:45:00.741807 +AZURE,westus3,Standard_D32s_v5,spot,NA,0.284774,USD,Azure Retail Prices API,2025-12-18T04:44:58.680007 +AZURE,westus3,Standard_D3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485146 +AZURE,westus3,Standard_D3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485155 +AZURE,westus3,Standard_D3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485159 +AZURE,westus3,Standard_D3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.485150 +AZURE,westus3,Standard_D48a_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:58.679458 +AZURE,westus3,Standard_D48a_v4,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:00.740297 +AZURE,westus3,Standard_D48a_v4,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:45:00.740302 +AZURE,westus3,Standard_D48a_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:44:58.679671 +AZURE,westus3,Standard_D48ads_v5,on_demand,NA,2.472,USD,Azure Retail Prices API,2025-12-18T04:44:58.680180 +AZURE,westus3,Standard_D48ads_v5,reserved_1y,NA,1.458447,USD,Azure Retail Prices API,2025-12-18T04:45:00.741319 +AZURE,westus3,Standard_D48ads_v5,reserved_3y,NA,0.939346,USD,Azure Retail Prices API,2025-12-18T04:45:00.741328 +AZURE,westus3,Standard_D48ads_v5,spot,NA,0.456826,USD,Azure Retail Prices API,2025-12-18T04:44:58.679995 +AZURE,westus3,Standard_D48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:44:58.680538 +AZURE,westus3,Standard_D48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:45:00.741768 +AZURE,westus3,Standard_D48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:45:00.741771 +AZURE,westus3,Standard_D48ads_v6,spot,NA,0.505613,USD,Azure Retail Prices API,2025-12-18T04:44:58.680936 +AZURE,westus3,Standard_D48as_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:58.680811 +AZURE,westus3,Standard_D48as_v4,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:00.742136 +AZURE,westus3,Standard_D48as_v4,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:45:00.742139 +AZURE,westus3,Standard_D48as_v4,spot,NA,0.425779,USD,Azure Retail Prices API,2025-12-18T04:44:58.680138 +AZURE,westus3,Standard_D48as_v5,on_demand,NA,2.064,USD,Azure Retail Prices API,2025-12-18T04:44:58.680963 +AZURE,westus3,Standard_D48as_v5,reserved_1y,NA,1.217808,USD,Azure Retail Prices API,2025-12-18T04:45:00.742336 +AZURE,westus3,Standard_D48as_v5,reserved_3y,NA,0.784323,USD,Azure Retail Prices API,2025-12-18T04:45:00.742339 +AZURE,westus3,Standard_D48as_v5,spot,NA,0.381427,USD,Azure Retail Prices API,2025-12-18T04:44:58.680212 +AZURE,westus3,Standard_D48d_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:58.679697 +AZURE,westus3,Standard_D48d_v4,reserved_1y,NA,1.594635,USD,Azure Retail Prices API,2025-12-18T04:45:00.740659 +AZURE,westus3,Standard_D48d_v4,reserved_3y,NA,1.019711,USD,Azure Retail Prices API,2025-12-18T04:45:00.740664 +AZURE,westus3,Standard_D48d_v4,spot,NA,0.501178,USD,Azure Retail Prices API,2025-12-18T04:44:58.679573 +AZURE,westus3,Standard_D48ds_v4,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:58.680487 +AZURE,westus3,Standard_D48ds_v4,reserved_1y,NA,1.594635,USD,Azure Retail Prices API,2025-12-18T04:45:00.741724 +AZURE,westus3,Standard_D48ds_v4,reserved_3y,NA,1.019711,USD,Azure Retail Prices API,2025-12-18T04:45:00.741728 +AZURE,westus3,Standard_D48ds_v4,spot,NA,0.501178,USD,Azure Retail Prices API,2025-12-18T04:44:58.680232 +AZURE,westus3,Standard_D48ds_v5,on_demand,NA,2.712,USD,Azure Retail Prices API,2025-12-18T04:44:58.679576 +AZURE,westus3,Standard_D48ds_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:45:00.740466 +AZURE,westus3,Standard_D48ds_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:45:00.740472 +AZURE,westus3,Standard_D48ds_v5,spot,NA,0.502805,USD,Azure Retail Prices API,2025-12-18T04:44:58.680039 +AZURE,westus3,Standard_D48ds_v6,on_demand,NA,2.99,USD,Azure Retail Prices API,2025-12-18T04:44:58.680439 +AZURE,westus3,Standard_D48ds_v6,reserved_1y,NA,1.853767,USD,Azure Retail Prices API,2025-12-18T04:45:00.741676 +AZURE,westus3,Standard_D48ds_v6,reserved_3y,NA,1.166058,USD,Azure Retail Prices API,2025-12-18T04:45:00.741681 +AZURE,westus3,Standard_D48ds_v6,spot,NA,0.552552,USD,Azure Retail Prices API,2025-12-18T04:44:58.680183 +AZURE,westus3,Standard_D48pds_v6,on_demand,NA,2.203,USD,Azure Retail Prices API,2025-12-18T04:44:58.680379 +AZURE,westus3,Standard_D48pds_v6,reserved_1y,NA,1.299886,USD,Azure Retail Prices API,2025-12-18T04:45:00.741589 +AZURE,westus3,Standard_D48pds_v6,reserved_3y,NA,0.837215,USD,Azure Retail Prices API,2025-12-18T04:45:00.741592 +AZURE,westus3,Standard_D48pds_v6,spot,NA,0.407114,USD,Azure Retail Prices API,2025-12-18T04:44:58.680701 +AZURE,westus3,Standard_D48ps_v6,on_demand,NA,1.685,USD,Azure Retail Prices API,2025-12-18T04:44:58.679797 +AZURE,westus3,Standard_D48ps_v6,reserved_1y,NA,0.994064,USD,Azure Retail Prices API,2025-12-18T04:45:00.740781 +AZURE,westus3,Standard_D48ps_v6,reserved_3y,NA,0.640221,USD,Azure Retail Prices API,2025-12-18T04:45:00.740786 +AZURE,westus3,Standard_D48ps_v6,spot,NA,0.311388,USD,Azure Retail Prices API,2025-12-18T04:44:58.680148 +AZURE,westus3,Standard_D48s_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:58.679753 +AZURE,westus3,Standard_D48s_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:45:00.740750 +AZURE,westus3,Standard_D48s_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:45:00.740755 +AZURE,westus3,Standard_D48s_v4,spot,NA,0.427162,USD,Azure Retail Prices API,2025-12-18T04:44:58.680607 +AZURE,westus3,Standard_D48s_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:58.680368 +AZURE,westus3,Standard_D48s_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:00.741577 +AZURE,westus3,Standard_D48s_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:45:00.741580 +AZURE,westus3,Standard_D48s_v5,spot,NA,0.427162,USD,Azure Retail Prices API,2025-12-18T04:44:58.680020 +AZURE,westus3,Standard_D4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486014 +AZURE,westus3,Standard_D4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486022 +AZURE,westus3,Standard_D4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486026 +AZURE,westus3,Standard_D4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486018 +AZURE,westus3,Standard_D4a_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:58.680209 +AZURE,westus3,Standard_D4a_v4,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:45:00.741361 +AZURE,westus3,Standard_D4a_v4,reserved_3y,NA,0.072945,USD,Azure Retail Prices API,2025-12-18T04:45:00.741365 +AZURE,westus3,Standard_D4a_v4,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:44:58.680619 +AZURE,westus3,Standard_D4ads_v5,on_demand,NA,0.206,USD,Azure Retail Prices API,2025-12-18T04:44:58.679627 +AZURE,westus3,Standard_D4ads_v5,reserved_1y,NA,0.121575,USD,Azure Retail Prices API,2025-12-18T04:45:00.740558 +AZURE,westus3,Standard_D4ads_v5,reserved_3y,NA,0.078272,USD,Azure Retail Prices API,2025-12-18T04:45:00.740563 +AZURE,westus3,Standard_D4ads_v5,spot,NA,0.038069,USD,Azure Retail Prices API,2025-12-18T04:44:58.680713 +AZURE,westus3,Standard_D4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:44:58.681058 +AZURE,westus3,Standard_D4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:45:00.742445 +AZURE,westus3,Standard_D4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:45:00.742448 +AZURE,westus3,Standard_D4ads_v6,spot,NA,0.042134,USD,Azure Retail Prices API,2025-12-18T04:44:58.679812 +AZURE,westus3,Standard_D4as_v5,on_demand,NA,0.172,USD,Azure Retail Prices API,2025-12-18T04:44:58.679549 +AZURE,westus3,Standard_D4as_v5,reserved_1y,NA,0.101484,USD,Azure Retail Prices API,2025-12-18T04:45:00.740436 +AZURE,westus3,Standard_D4as_v5,reserved_3y,NA,0.065373,USD,Azure Retail Prices API,2025-12-18T04:45:00.740441 +AZURE,westus3,Standard_D4as_v5,spot,NA,0.031786,USD,Azure Retail Prices API,2025-12-18T04:44:58.679594 +AZURE,westus3,Standard_D4d_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:58.680417 +AZURE,westus3,Standard_D4d_v4,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:45:00.741636 +AZURE,westus3,Standard_D4d_v4,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:45:00.741639 +AZURE,westus3,Standard_D4d_v4,spot,NA,0.041765,USD,Azure Retail Prices API,2025-12-18T04:44:58.679465 +AZURE,westus3,Standard_D4ds_v4,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:58.680278 +AZURE,westus3,Standard_D4ds_v4,reserved_1y,NA,0.132877,USD,Azure Retail Prices API,2025-12-18T04:45:00.741437 +AZURE,westus3,Standard_D4ds_v4,reserved_3y,NA,0.08497,USD,Azure Retail Prices API,2025-12-18T04:45:00.741442 +AZURE,westus3,Standard_D4ds_v4,spot,NA,0.041765,USD,Azure Retail Prices API,2025-12-18T04:44:58.680365 +AZURE,westus3,Standard_D4ds_v5,on_demand,NA,0.226,USD,Azure Retail Prices API,2025-12-18T04:44:58.680904 +AZURE,westus3,Standard_D4ds_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:45:00.742258 +AZURE,westus3,Standard_D4ds_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:45:00.742262 +AZURE,westus3,Standard_D4ds_v5,spot,NA,0.0419,USD,Azure Retail Prices API,2025-12-18T04:44:58.680648 +AZURE,westus3,Standard_D4ds_v6,on_demand,NA,0.249,USD,Azure Retail Prices API,2025-12-18T04:44:58.681002 +AZURE,westus3,Standard_D4ds_v6,reserved_1y,NA,0.154452,USD,Azure Retail Prices API,2025-12-18T04:45:00.742393 +AZURE,westus3,Standard_D4ds_v6,reserved_3y,NA,0.097184,USD,Azure Retail Prices API,2025-12-18T04:45:00.742396 +AZURE,westus3,Standard_D4ds_v6,spot,NA,0.046015,USD,Azure Retail Prices API,2025-12-18T04:44:58.679903 +AZURE,westus3,Standard_D4pds_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:44:58.679555 +AZURE,westus3,Standard_D4pds_v6,reserved_1y,NA,0.108333,USD,Azure Retail Prices API,2025-12-18T04:45:00.740446 +AZURE,westus3,Standard_D4pds_v6,reserved_3y,NA,0.069787,USD,Azure Retail Prices API,2025-12-18T04:45:00.740451 +AZURE,westus3,Standard_D4pds_v6,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:44:58.680814 +AZURE,westus3,Standard_D4ps_v6,on_demand,NA,0.14,USD,Azure Retail Prices API,2025-12-18T04:44:58.679806 +AZURE,westus3,Standard_D4ps_v6,reserved_1y,NA,0.082877,USD,Azure Retail Prices API,2025-12-18T04:45:00.740791 +AZURE,westus3,Standard_D4ps_v6,reserved_3y,NA,0.053349,USD,Azure Retail Prices API,2025-12-18T04:45:00.740795 +AZURE,westus3,Standard_D4ps_v6,spot,NA,0.025872,USD,Azure Retail Prices API,2025-12-18T04:44:58.680672 +AZURE,westus3,Standard_D4s_v3,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:58.680342 +AZURE,westus3,Standard_D4s_v3,reserved_1y,NA,0.114498,USD,Azure Retail Prices API,2025-12-18T04:45:00.741538 +AZURE,westus3,Standard_D4s_v3,reserved_3y,NA,0.073706,USD,Azure Retail Prices API,2025-12-18T04:45:00.741541 +AZURE,westus3,Standard_D4s_v3,spot,NA,0.035482,USD,Azure Retail Prices API,2025-12-18T04:44:58.679831 +AZURE,westus3,Standard_D4s_v4,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:58.679998 +AZURE,westus3,Standard_D4s_v4,reserved_1y,NA,0.1129,USD,Azure Retail Prices API,2025-12-18T04:45:00.741048 +AZURE,westus3,Standard_D4s_v4,reserved_3y,NA,0.072184,USD,Azure Retail Prices API,2025-12-18T04:45:00.741052 +AZURE,westus3,Standard_D4s_v4,spot,NA,0.035597,USD,Azure Retail Prices API,2025-12-18T04:44:58.680218 +AZURE,westus3,Standard_D4s_v5,on_demand,NA,0.192,USD,Azure Retail Prices API,2025-12-18T04:44:58.680546 +AZURE,westus3,Standard_D4s_v5,reserved_1y,NA,0.113242,USD,Azure Retail Prices API,2025-12-18T04:45:00.741781 +AZURE,westus3,Standard_D4s_v5,reserved_3y,NA,0.072945,USD,Azure Retail Prices API,2025-12-18T04:45:00.741784 +AZURE,westus3,Standard_D4s_v5,spot,NA,0.035597,USD,Azure Retail Prices API,2025-12-18T04:44:58.680193 +AZURE,westus3,Standard_D5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486988 +AZURE,westus3,Standard_D5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487002 +AZURE,westus3,Standard_D5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.487010 +AZURE,westus3,Standard_D5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.486995 +AZURE,westus3,Standard_D64_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:58.680844 +AZURE,westus3,Standard_D64_v3,reserved_1y,NA,1.831963,USD,Azure Retail Prices API,2025-12-18T04:45:00.742169 +AZURE,westus3,Standard_D64_v3,reserved_3y,NA,1.179148,USD,Azure Retail Prices API,2025-12-18T04:45:00.742172 +AZURE,westus3,Standard_D64_v3,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:58.681087 +AZURE,westus3,Standard_D64a_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:58.680687 +AZURE,westus3,Standard_D64a_v4,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:45:00.741951 +AZURE,westus3,Standard_D64a_v4,reserved_3y,NA,1.167352,USD,Azure Retail Prices API,2025-12-18T04:45:00.741958 +AZURE,westus3,Standard_D64a_v4,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:58.679856 +AZURE,westus3,Standard_D64ads_v5,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:44:58.679512 +AZURE,westus3,Standard_D64ads_v5,reserved_1y,NA,1.944635,USD,Azure Retail Prices API,2025-12-18T04:45:00.742129 +AZURE,westus3,Standard_D64ads_v5,reserved_3y,NA,1.252473,USD,Azure Retail Prices API,2025-12-18T04:45:00.742133 +AZURE,westus3,Standard_D64ads_v5,spot,NA,0.609101,USD,Azure Retail Prices API,2025-12-18T04:44:58.681063 +AZURE,westus3,Standard_D64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:44:58.680787 +AZURE,westus3,Standard_D64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:00.742103 +AZURE,westus3,Standard_D64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:00.742108 +AZURE,westus3,Standard_D64ads_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:44:58.680675 +AZURE,westus3,Standard_D64as_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:58.680587 +AZURE,westus3,Standard_D64as_v4,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:45:00.741840 +AZURE,westus3,Standard_D64as_v4,reserved_3y,NA,1.167352,USD,Azure Retail Prices API,2025-12-18T04:45:00.741843 +AZURE,westus3,Standard_D64as_v4,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:58.681084 +AZURE,westus3,Standard_D64as_v5,on_demand,NA,5.696,USD,Azure Retail Prices API,2025-12-18T04:44:58.679474 +AZURE,westus3,Standard_D64as_v5,reserved_1y,NA,1.62363,USD,Azure Retail Prices API,2025-12-18T04:45:00.740426 +AZURE,westus3,Standard_D64as_v5,reserved_3y,NA,1.045776,USD,Azure Retail Prices API,2025-12-18T04:45:00.740431 +AZURE,westus3,Standard_D64as_v5,spot,NA,0.50857,USD,Azure Retail Prices API,2025-12-18T04:44:58.680768 +AZURE,westus3,Standard_D64d_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:58.680637 +AZURE,westus3,Standard_D64d_v4,reserved_1y,NA,2.126256,USD,Azure Retail Prices API,2025-12-18T04:45:00.741910 +AZURE,westus3,Standard_D64d_v4,reserved_3y,NA,1.359627,USD,Azure Retail Prices API,2025-12-18T04:45:00.741913 +AZURE,westus3,Standard_D64d_v4,spot,NA,0.668237,USD,Azure Retail Prices API,2025-12-18T04:44:58.680248 +AZURE,westus3,Standard_D64ds_v4,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:58.679683 +AZURE,westus3,Standard_D64ds_v4,reserved_1y,NA,2.126256,USD,Azure Retail Prices API,2025-12-18T04:45:00.740640 +AZURE,westus3,Standard_D64ds_v4,reserved_3y,NA,1.359627,USD,Azure Retail Prices API,2025-12-18T04:45:00.740645 +AZURE,westus3,Standard_D64ds_v4,spot,NA,0.668237,USD,Azure Retail Prices API,2025-12-18T04:44:58.680333 +AZURE,westus3,Standard_D64ds_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:58.679975 +AZURE,westus3,Standard_D64ds_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:45:00.741028 +AZURE,westus3,Standard_D64ds_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:45:00.741033 +AZURE,westus3,Standard_D64ds_v5,spot,NA,0.670406,USD,Azure Retail Prices API,2025-12-18T04:44:58.681039 +AZURE,westus3,Standard_D64ds_v6,on_demand,NA,3.987,USD,Azure Retail Prices API,2025-12-18T04:44:58.679505 +AZURE,westus3,Standard_D64ds_v6,reserved_1y,NA,2.471689,USD,Azure Retail Prices API,2025-12-18T04:45:00.740374 +AZURE,westus3,Standard_D64ds_v6,reserved_3y,NA,1.554756,USD,Azure Retail Prices API,2025-12-18T04:45:00.740379 +AZURE,westus3,Standard_D64ds_v6,spot,NA,0.736798,USD,Azure Retail Prices API,2025-12-18T04:44:58.680288 +AZURE,westus3,Standard_D64pds_v6,on_demand,NA,2.938,USD,Azure Retail Prices API,2025-12-18T04:44:58.679668 +AZURE,westus3,Standard_D64pds_v6,reserved_1y,NA,1.733219,USD,Azure Retail Prices API,2025-12-18T04:45:00.740609 +AZURE,westus3,Standard_D64pds_v6,reserved_3y,NA,1.116286,USD,Azure Retail Prices API,2025-12-18T04:45:00.740614 +AZURE,westus3,Standard_D64pds_v6,spot,NA,0.542942,USD,Azure Retail Prices API,2025-12-18T04:44:58.680490 +AZURE,westus3,Standard_D64ps_v6,on_demand,NA,2.246,USD,Azure Retail Prices API,2025-12-18T04:44:58.680382 +AZURE,westus3,Standard_D64ps_v6,reserved_1y,NA,1.325342,USD,Azure Retail Prices API,2025-12-18T04:45:00.741595 +AZURE,westus3,Standard_D64ps_v6,reserved_3y,NA,0.853615,USD,Azure Retail Prices API,2025-12-18T04:45:00.741598 +AZURE,westus3,Standard_D64ps_v6,spot,NA,0.415061,USD,Azure Retail Prices API,2025-12-18T04:44:58.679433 +AZURE,westus3,Standard_D64s_v3,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:58.680399 +AZURE,westus3,Standard_D64s_v3,reserved_1y,NA,1.831963,USD,Azure Retail Prices API,2025-12-18T04:45:00.741618 +AZURE,westus3,Standard_D64s_v3,reserved_3y,NA,1.179148,USD,Azure Retail Prices API,2025-12-18T04:45:00.741621 +AZURE,westus3,Standard_D64s_v3,spot,NA,0.567706,USD,Azure Retail Prices API,2025-12-18T04:44:58.679767 +AZURE,westus3,Standard_D64s_v4,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:58.680925 +AZURE,westus3,Standard_D64s_v4,reserved_1y,NA,1.806393,USD,Azure Retail Prices API,2025-12-18T04:45:00.742291 +AZURE,westus3,Standard_D64s_v4,reserved_3y,NA,1.155061,USD,Azure Retail Prices API,2025-12-18T04:45:00.742294 +AZURE,westus3,Standard_D64s_v4,spot,NA,0.569549,USD,Azure Retail Prices API,2025-12-18T04:44:58.680874 +AZURE,westus3,Standard_D64s_v5,on_demand,NA,3.072,USD,Azure Retail Prices API,2025-12-18T04:44:58.680330 +AZURE,westus3,Standard_D64s_v5,reserved_1y,NA,1.812443,USD,Azure Retail Prices API,2025-12-18T04:45:00.741526 +AZURE,westus3,Standard_D64s_v5,reserved_3y,NA,1.167352,USD,Azure Retail Prices API,2025-12-18T04:45:00.741529 +AZURE,westus3,Standard_D64s_v5,spot,NA,0.569549,USD,Azure Retail Prices API,2025-12-18T04:44:58.679635 +AZURE,westus3,Standard_D8_v3,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:58.680944 +AZURE,westus3,Standard_D8_v3,reserved_1y,NA,0.228995,USD,Azure Retail Prices API,2025-12-18T04:45:00.742311 +AZURE,westus3,Standard_D8_v3,reserved_3y,NA,0.147374,USD,Azure Retail Prices API,2025-12-18T04:45:00.742314 +AZURE,westus3,Standard_D8_v3,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:44:58.680501 +AZURE,westus3,Standard_D8a_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:58.680625 +AZURE,westus3,Standard_D8a_v4,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:45:00.741893 +AZURE,westus3,Standard_D8a_v4,reserved_3y,NA,0.145928,USD,Azure Retail Prices API,2025-12-18T04:45:00.741896 +AZURE,westus3,Standard_D8a_v4,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:44:58.680888 +AZURE,westus3,Standard_D8ads_v5,on_demand,NA,0.412,USD,Azure Retail Prices API,2025-12-18T04:44:58.679865 +AZURE,westus3,Standard_D8ads_v5,reserved_1y,NA,0.243037,USD,Azure Retail Prices API,2025-12-18T04:45:00.740870 +AZURE,westus3,Standard_D8ads_v5,reserved_3y,NA,0.156545,USD,Azure Retail Prices API,2025-12-18T04:45:00.740875 +AZURE,westus3,Standard_D8ads_v5,spot,NA,0.076138,USD,Azure Retail Prices API,2025-12-18T04:44:58.680177 +AZURE,westus3,Standard_D8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:44:58.680883 +AZURE,westus3,Standard_D8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:45:00.742227 +AZURE,westus3,Standard_D8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:45:00.742230 +AZURE,westus3,Standard_D8ads_v6,spot,NA,0.084269,USD,Azure Retail Prices API,2025-12-18T04:44:58.680693 +AZURE,westus3,Standard_D8as_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:58.680885 +AZURE,westus3,Standard_D8as_v4,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:45:00.742233 +AZURE,westus3,Standard_D8as_v4,reserved_3y,NA,0.145928,USD,Azure Retail Prices API,2025-12-18T04:45:00.742236 +AZURE,westus3,Standard_D8as_v4,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:44:58.679988 +AZURE,westus3,Standard_D8as_v5,on_demand,NA,0.344,USD,Azure Retail Prices API,2025-12-18T04:44:58.679677 +AZURE,westus3,Standard_D8as_v5,reserved_1y,NA,0.202968,USD,Azure Retail Prices API,2025-12-18T04:45:00.740629 +AZURE,westus3,Standard_D8as_v5,reserved_3y,NA,0.130708,USD,Azure Retail Prices API,2025-12-18T04:45:00.740635 +AZURE,westus3,Standard_D8as_v5,spot,NA,0.063571,USD,Azure Retail Prices API,2025-12-18T04:44:58.680592 +AZURE,westus3,Standard_D8d_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:58.679612 +AZURE,westus3,Standard_D8d_v4,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:45:00.740508 +AZURE,westus3,Standard_D8d_v4,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:45:00.740513 +AZURE,westus3,Standard_D8d_v4,spot,NA,0.08353,USD,Azure Retail Prices API,2025-12-18T04:44:58.681044 +AZURE,westus3,Standard_D8ds_v4,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:58.680313 +AZURE,westus3,Standard_D8ds_v4,reserved_1y,NA,0.265753,USD,Azure Retail Prices API,2025-12-18T04:45:00.741489 +AZURE,westus3,Standard_D8ds_v4,reserved_3y,NA,0.169939,USD,Azure Retail Prices API,2025-12-18T04:45:00.741495 +AZURE,westus3,Standard_D8ds_v4,spot,NA,0.08353,USD,Azure Retail Prices API,2025-12-18T04:44:58.679585 +AZURE,westus3,Standard_D8ds_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:58.680872 +AZURE,westus3,Standard_D8ds_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:45:00.742221 +AZURE,westus3,Standard_D8ds_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:45:00.742224 +AZURE,westus3,Standard_D8ds_v5,spot,NA,0.083801,USD,Azure Retail Prices API,2025-12-18T04:44:58.680847 +AZURE,westus3,Standard_D8ds_v6,on_demand,NA,0.498,USD,Azure Retail Prices API,2025-12-18T04:44:58.679673 +AZURE,westus3,Standard_D8ds_v6,reserved_1y,NA,0.308904,USD,Azure Retail Prices API,2025-12-18T04:45:00.740619 +AZURE,westus3,Standard_D8ds_v6,reserved_3y,NA,0.19433,USD,Azure Retail Prices API,2025-12-18T04:45:00.740625 +AZURE,westus3,Standard_D8ds_v6,spot,NA,0.09203,USD,Azure Retail Prices API,2025-12-18T04:44:58.680262 +AZURE,westus3,Standard_D8pds_v6,on_demand,NA,0.367,USD,Azure Retail Prices API,2025-12-18T04:44:58.680258 +AZURE,westus3,Standard_D8pds_v6,reserved_1y,NA,0.216667,USD,Azure Retail Prices API,2025-12-18T04:45:00.741428 +AZURE,westus3,Standard_D8pds_v6,reserved_3y,NA,0.139536,USD,Azure Retail Prices API,2025-12-18T04:45:00.741433 +AZURE,westus3,Standard_D8pds_v6,spot,NA,0.067822,USD,Azure Retail Prices API,2025-12-18T04:44:58.679732 +AZURE,westus3,Standard_D8ps_v6,on_demand,NA,0.281,USD,Azure Retail Prices API,2025-12-18T04:44:58.680573 +AZURE,westus3,Standard_D8ps_v6,reserved_1y,NA,0.165639,USD,Azure Retail Prices API,2025-12-18T04:45:00.741816 +AZURE,westus3,Standard_D8ps_v6,reserved_3y,NA,0.106697,USD,Azure Retail Prices API,2025-12-18T04:45:00.741819 +AZURE,westus3,Standard_D8ps_v6,spot,NA,0.051929,USD,Azure Retail Prices API,2025-12-18T04:44:58.680122 +AZURE,westus3,Standard_D8s_v3,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:58.680631 +AZURE,westus3,Standard_D8s_v3,reserved_1y,NA,0.228995,USD,Azure Retail Prices API,2025-12-18T04:45:00.741904 +AZURE,westus3,Standard_D8s_v3,reserved_3y,NA,0.147374,USD,Azure Retail Prices API,2025-12-18T04:45:00.741907 +AZURE,westus3,Standard_D8s_v3,spot,NA,0.070963,USD,Azure Retail Prices API,2025-12-18T04:44:58.680917 +AZURE,westus3,Standard_D8s_v4,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:58.679720 +AZURE,westus3,Standard_D8s_v4,reserved_1y,NA,0.225799,USD,Azure Retail Prices API,2025-12-18T04:45:00.740699 +AZURE,westus3,Standard_D8s_v4,reserved_3y,NA,0.144368,USD,Azure Retail Prices API,2025-12-18T04:45:00.740704 +AZURE,westus3,Standard_D8s_v4,spot,NA,0.071194,USD,Azure Retail Prices API,2025-12-18T04:44:58.680391 +AZURE,westus3,Standard_D8s_v5,on_demand,NA,0.384,USD,Azure Retail Prices API,2025-12-18T04:44:58.680294 +AZURE,westus3,Standard_D8s_v5,reserved_1y,NA,0.226598,USD,Azure Retail Prices API,2025-12-18T04:45:00.741447 +AZURE,westus3,Standard_D8s_v5,reserved_3y,NA,0.145928,USD,Azure Retail Prices API,2025-12-18T04:45:00.741451 +AZURE,westus3,Standard_D8s_v5,spot,NA,0.071194,USD,Azure Retail Prices API,2025-12-18T04:44:58.680838 +AZURE,westus3,Standard_D96a_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:58.680434 +AZURE,westus3,Standard_D96a_v4,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:00.741658 +AZURE,westus3,Standard_D96a_v4,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:45:00.741663 +AZURE,westus3,Standard_D96a_v4,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:44:58.680728 +AZURE,westus3,Standard_D96ads_v5,on_demand,NA,4.944,USD,Azure Retail Prices API,2025-12-18T04:44:58.679775 +AZURE,westus3,Standard_D96ads_v5,reserved_1y,NA,2.917009,USD,Azure Retail Prices API,2025-12-18T04:45:00.740770 +AZURE,westus3,Standard_D96ads_v5,reserved_3y,NA,1.878729,USD,Azure Retail Prices API,2025-12-18T04:45:00.740776 +AZURE,westus3,Standard_D96ads_v5,spot,NA,0.913651,USD,Azure Retail Prices API,2025-12-18T04:44:58.680584 +AZURE,westus3,Standard_D96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:44:58.680835 +AZURE,westus3,Standard_D96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:45:00.742156 +AZURE,westus3,Standard_D96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:45:00.742159 +AZURE,westus3,Standard_D96ads_v6,spot,NA,1.011226,USD,Azure Retail Prices API,2025-12-18T04:44:58.679862 +AZURE,westus3,Standard_D96as_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:58.680307 +AZURE,westus3,Standard_D96as_v4,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:00.741477 +AZURE,westus3,Standard_D96as_v4,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:45:00.741483 +AZURE,westus3,Standard_D96as_v4,spot,NA,0.851558,USD,Azure Retail Prices API,2025-12-18T04:44:58.680754 +AZURE,westus3,Standard_D96as_v5,on_demand,NA,8.544,USD,Azure Retail Prices API,2025-12-18T04:44:58.679770 +AZURE,westus3,Standard_D96as_v5,reserved_1y,NA,2.435502,USD,Azure Retail Prices API,2025-12-18T04:45:00.741229 +AZURE,westus3,Standard_D96as_v5,reserved_3y,NA,1.568645,USD,Azure Retail Prices API,2025-12-18T04:45:00.741234 +AZURE,westus3,Standard_D96as_v5,spot,NA,0.762854,USD,Azure Retail Prices API,2025-12-18T04:44:58.680808 +AZURE,westus3,Standard_D96ds_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:58.680055 +AZURE,westus3,Standard_D96ds_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:45:00.741151 +AZURE,westus3,Standard_D96ds_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:45:00.741156 +AZURE,westus3,Standard_D96ds_v5,spot,NA,1.00561,USD,Azure Retail Prices API,2025-12-18T04:44:58.680281 +AZURE,westus3,Standard_D96ds_v6,on_demand,NA,5.98,USD,Azure Retail Prices API,2025-12-18T04:44:58.680085 +AZURE,westus3,Standard_D96ds_v6,reserved_1y,NA,3.707534,USD,Azure Retail Prices API,2025-12-18T04:45:00.741209 +AZURE,westus3,Standard_D96ds_v6,reserved_3y,NA,2.332154,USD,Azure Retail Prices API,2025-12-18T04:45:00.741214 +AZURE,westus3,Standard_D96ds_v6,spot,NA,1.105104,USD,Azure Retail Prices API,2025-12-18T04:44:58.680805 +AZURE,westus3,Standard_D96pds_v6,on_demand,NA,4.406,USD,Azure Retail Prices API,2025-12-18T04:44:58.680920 +AZURE,westus3,Standard_D96pds_v6,reserved_1y,NA,2.599772,USD,Azure Retail Prices API,2025-12-18T04:45:00.742277 +AZURE,westus3,Standard_D96pds_v6,reserved_3y,NA,1.674429,USD,Azure Retail Prices API,2025-12-18T04:45:00.742280 +AZURE,westus3,Standard_D96pds_v6,spot,NA,0.814229,USD,Azure Retail Prices API,2025-12-18T04:44:58.679609 +AZURE,westus3,Standard_D96ps_v6,on_demand,NA,3.37,USD,Azure Retail Prices API,2025-12-18T04:44:58.681079 +AZURE,westus3,Standard_D96ps_v6,reserved_1y,NA,1.988014,USD,Azure Retail Prices API,2025-12-18T04:45:00.742451 +AZURE,westus3,Standard_D96ps_v6,reserved_3y,NA,1.280441,USD,Azure Retail Prices API,2025-12-18T04:45:00.742454 +AZURE,westus3,Standard_D96ps_v6,spot,NA,0.622776,USD,Azure Retail Prices API,2025-12-18T04:44:58.681028 +AZURE,westus3,Standard_D96s_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:58.680598 +AZURE,westus3,Standard_D96s_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:00.741852 +AZURE,westus3,Standard_D96s_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:45:00.741855 +AZURE,westus3,Standard_D96s_v5,spot,NA,0.854323,USD,Azure Retail Prices API,2025-12-18T04:44:58.680291 +AZURE,westus3,Standard_DC16ads_v6,on_demand,NA,0.912,USD,Azure Retail Prices API,2025-12-18T04:44:58.680561 +AZURE,westus3,Standard_DC16ads_v6,reserved_1y,NA,0.538128,USD,Azure Retail Prices API,2025-12-18T04:45:00.741798 +AZURE,westus3,Standard_DC16ads_v6,reserved_3y,NA,0.346575,USD,Azure Retail Prices API,2025-12-18T04:45:00.741801 +AZURE,westus3,Standard_DC16ads_v6,spot,NA,0.168538,USD,Azure Retail Prices API,2025-12-18T04:44:58.681036 +AZURE,westus3,Standard_DC2ads_v6,on_demand,NA,0.114,USD,Azure Retail Prices API,2025-12-18T04:44:58.679603 +AZURE,westus3,Standard_DC2ads_v6,reserved_1y,NA,0.067237,USD,Azure Retail Prices API,2025-12-18T04:45:00.740498 +AZURE,westus3,Standard_DC2ads_v6,reserved_3y,NA,0.043303,USD,Azure Retail Prices API,2025-12-18T04:45:00.740503 +AZURE,westus3,Standard_DC2ads_v6,spot,NA,0.021067,USD,Azure Retail Prices API,2025-12-18T04:44:58.679874 +AZURE,westus3,Standard_DC32ads_v6,on_demand,NA,1.824,USD,Azure Retail Prices API,2025-12-18T04:44:58.679761 +AZURE,westus3,Standard_DC32ads_v6,reserved_1y,NA,1.076142,USD,Azure Retail Prices API,2025-12-18T04:45:00.740761 +AZURE,westus3,Standard_DC32ads_v6,reserved_3y,NA,0.693113,USD,Azure Retail Prices API,2025-12-18T04:45:00.740766 +AZURE,westus3,Standard_DC32ads_v6,spot,NA,0.337075,USD,Azure Retail Prices API,2025-12-18T04:44:58.679706 +AZURE,westus3,Standard_DC48ads_v6,on_demand,NA,2.736,USD,Azure Retail Prices API,2025-12-18T04:44:58.680725 +AZURE,westus3,Standard_DC48ads_v6,reserved_1y,NA,1.614269,USD,Azure Retail Prices API,2025-12-18T04:45:00.741981 +AZURE,westus3,Standard_DC48ads_v6,reserved_3y,NA,1.039688,USD,Azure Retail Prices API,2025-12-18T04:45:00.741984 +AZURE,westus3,Standard_DC48ads_v6,spot,NA,0.505613,USD,Azure Retail Prices API,2025-12-18T04:44:58.680484 +AZURE,westus3,Standard_DC4ads_v6,on_demand,NA,0.228,USD,Azure Retail Prices API,2025-12-18T04:44:58.680578 +AZURE,westus3,Standard_DC4ads_v6,reserved_1y,NA,0.134475,USD,Azure Retail Prices API,2025-12-18T04:45:00.741828 +AZURE,westus3,Standard_DC4ads_v6,reserved_3y,NA,0.086644,USD,Azure Retail Prices API,2025-12-18T04:45:00.741831 +AZURE,westus3,Standard_DC4ads_v6,spot,NA,0.042134,USD,Azure Retail Prices API,2025-12-18T04:44:58.680428 +AZURE,westus3,Standard_DC64ads_v6,on_demand,NA,3.648,USD,Azure Retail Prices API,2025-12-18T04:44:58.679714 +AZURE,westus3,Standard_DC64ads_v6,reserved_1y,NA,2.152283,USD,Azure Retail Prices API,2025-12-18T04:45:00.740678 +AZURE,westus3,Standard_DC64ads_v6,reserved_3y,NA,1.386225,USD,Azure Retail Prices API,2025-12-18T04:45:00.740683 +AZURE,westus3,Standard_DC64ads_v6,spot,NA,0.67415,USD,Azure Retail Prices API,2025-12-18T04:44:58.680145 +AZURE,westus3,Standard_DC8ads_v6,on_demand,NA,0.456,USD,Azure Retail Prices API,2025-12-18T04:44:58.680405 +AZURE,westus3,Standard_DC8ads_v6,reserved_1y,NA,0.269064,USD,Azure Retail Prices API,2025-12-18T04:45:00.741630 +AZURE,westus3,Standard_DC8ads_v6,reserved_3y,NA,0.173288,USD,Azure Retail Prices API,2025-12-18T04:45:00.741633 +AZURE,westus3,Standard_DC8ads_v6,spot,NA,0.084269,USD,Azure Retail Prices API,2025-12-18T04:44:58.679579 +AZURE,westus3,Standard_DC96ads_v6,on_demand,NA,5.472,USD,Azure Retail Prices API,2025-12-18T04:44:58.680776 +AZURE,westus3,Standard_DC96ads_v6,reserved_1y,NA,3.228425,USD,Azure Retail Prices API,2025-12-18T04:45:00.742048 +AZURE,westus3,Standard_DC96ads_v6,reserved_3y,NA,2.079376,USD,Azure Retail Prices API,2025-12-18T04:45:00.742074 +AZURE,westus3,Standard_DC96ads_v6,spot,NA,1.011226,USD,Azure Retail Prices API,2025-12-18T04:44:58.680316 +AZURE,westus3,Standard_DS12_v2,on_demand,NA,0.38955,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495136 +AZURE,westus3,Standard_DS12_v2,reserved_1y,NA,0.23373,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495145 +AZURE,westus3,Standard_DS12_v2,reserved_3y,NA,0.15582,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495149 +AZURE,westus3,Standard_DS12_v2,spot,NA,0.116865,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495141 +AZURE,westus3,Standard_DS13_v2,on_demand,NA,0.77805,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495963 +AZURE,westus3,Standard_DS13_v2,reserved_1y,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495978 +AZURE,westus3,Standard_DS13_v2,reserved_3y,NA,0.31122,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495984 +AZURE,westus3,Standard_DS13_v2,spot,NA,0.233415,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.495970 +AZURE,westus3,Standard_DS14_v2,on_demand,NA,1.5561,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496779 +AZURE,westus3,Standard_DS14_v2,reserved_1y,NA,0.93366,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496787 +AZURE,westus3,Standard_DS14_v2,reserved_3y,NA,0.62244,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496791 +AZURE,westus3,Standard_DS14_v2,spot,NA,0.46683,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.496783 +AZURE,westus3,Standard_DS15_v2,on_demand,NA,1.94565,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497660 +AZURE,westus3,Standard_DS15_v2,reserved_1y,NA,1.16739,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497673 +AZURE,westus3,Standard_DS15_v2,reserved_3y,NA,0.77826,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497677 +AZURE,westus3,Standard_DS15_v2,spot,NA,0.583695,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.497667 +AZURE,westus3,Standard_DS1_v2,on_demand,NA,0.07665,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491502 +AZURE,westus3,Standard_DS1_v2,reserved_1y,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491516 +AZURE,westus3,Standard_DS1_v2,reserved_3y,NA,0.03066,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491522 +AZURE,westus3,Standard_DS1_v2,spot,NA,0.022995,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.491509 +AZURE,westus3,Standard_DS2_v2,on_demand,NA,0.1533,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492258 +AZURE,westus3,Standard_DS2_v2,reserved_1y,NA,0.09198,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492266 +AZURE,westus3,Standard_DS2_v2,reserved_3y,NA,0.06132,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492271 +AZURE,westus3,Standard_DS2_v2,spot,NA,0.04599,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492262 +AZURE,westus3,Standard_DS3_v2,on_demand,NA,0.30765,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492952 +AZURE,westus3,Standard_DS3_v2,reserved_1y,NA,0.18459,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492960 +AZURE,westus3,Standard_DS3_v2,reserved_3y,NA,0.12306,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492965 +AZURE,westus3,Standard_DS3_v2,spot,NA,0.092295,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.492956 +AZURE,westus3,Standard_DS4_v2,on_demand,NA,0.61425,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493697 +AZURE,westus3,Standard_DS4_v2,reserved_1y,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493705 +AZURE,westus3,Standard_DS4_v2,reserved_3y,NA,0.2457,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493709 +AZURE,westus3,Standard_DS4_v2,spot,NA,0.184275,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.493701 +AZURE,westus3,Standard_DS5_v2,on_demand,NA,1.2285,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494411 +AZURE,westus3,Standard_DS5_v2,reserved_1y,NA,0.7371,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494419 +AZURE,westus3,Standard_DS5_v2,reserved_3y,NA,0.4914,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494423 +AZURE,westus3,Standard_DS5_v2,spot,NA,0.36855,USD,DEPRECATED - Estimated historical pricing,2025-12-18T04:47:26.494415 +AZURE,westus3,Standard_E128ds_v6,on_demand,NA,10.465,USD,Azure Retail Prices API,2025-12-18T04:44:58.679480 +AZURE,westus3,Standard_E128ds_v6,reserved_1y,NA,6.48847,USD,Azure Retail Prices API,2025-12-18T04:45:00.740343 +AZURE,westus3,Standard_E128ds_v6,reserved_3y,NA,4.081469,USD,Azure Retail Prices API,2025-12-18T04:45:00.740348 +AZURE,westus3,Standard_E128ds_v6,spot,NA,1.933932,USD,Azure Retail Prices API,2025-12-18T04:44:58.679524 +AZURE,westus3,Standard_E16_v3,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:58.680663 +AZURE,westus3,Standard_E16_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:45:00.741927 +AZURE,westus3,Standard_E16_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:45:00.741929 +AZURE,westus3,Standard_E16_v3,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:58.681052 +AZURE,westus3,Standard_E16a_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:58.680393 +AZURE,westus3,Standard_E16a_v4,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:45:00.741612 +AZURE,westus3,Standard_E16a_v4,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:45:00.741615 +AZURE,westus3,Standard_E16a_v4,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:58.680660 +AZURE,westus3,Standard_E16ads_v5,on_demand,NA,1.048,USD,Azure Retail Prices API,2025-12-18T04:44:58.680036 +AZURE,westus3,Standard_E16ads_v5,reserved_1y,NA,0.618265,USD,Azure Retail Prices API,2025-12-18T04:45:00.741100 +AZURE,westus3,Standard_E16ads_v5,reserved_3y,NA,0.39825,USD,Azure Retail Prices API,2025-12-18T04:45:00.741105 +AZURE,westus3,Standard_E16ads_v5,spot,NA,0.19367,USD,Azure Retail Prices API,2025-12-18T04:44:58.680817 +AZURE,westus3,Standard_E16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:44:58.680426 +AZURE,westus3,Standard_E16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:45:00.741642 +AZURE,westus3,Standard_E16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:45:00.741645 +AZURE,westus3,Standard_E16ads_v6,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:44:58.680362 +AZURE,westus3,Standard_E16as_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:58.679895 +AZURE,westus3,Standard_E16as_v4,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:45:00.740917 +AZURE,westus3,Standard_E16as_v4,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:45:00.740922 +AZURE,westus3,Standard_E16as_v4,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:58.680498 +AZURE,westus3,Standard_E16as_v5,on_demand,NA,1.64,USD,Azure Retail Prices API,2025-12-18T04:44:58.680690 +AZURE,westus3,Standard_E16as_v5,reserved_1y,NA,0.533333,USD,Azure Retail Prices API,2025-12-18T04:45:00.742011 +AZURE,westus3,Standard_E16as_v5,reserved_3y,NA,0.343531,USD,Azure Retail Prices API,2025-12-18T04:45:00.742014 +AZURE,westus3,Standard_E16as_v5,spot,NA,0.167059,USD,Azure Retail Prices API,2025-12-18T04:44:58.679606 +AZURE,westus3,Standard_E16d_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:58.679723 +AZURE,westus3,Standard_E16d_v4,reserved_1y,NA,0.677397,USD,Azure Retail Prices API,2025-12-18T04:45:00.740710 +AZURE,westus3,Standard_E16d_v4,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:45:00.740715 +AZURE,westus3,Standard_E16d_v4,spot,NA,0.213466,USD,Azure Retail Prices API,2025-12-18T04:44:58.680858 +AZURE,westus3,Standard_E16ds_v4,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:58.679966 +AZURE,westus3,Standard_E16ds_v4,reserved_1y,NA,0.677397,USD,Azure Retail Prices API,2025-12-18T04:45:00.741008 +AZURE,westus3,Standard_E16ds_v4,reserved_3y,NA,0.433143,USD,Azure Retail Prices API,2025-12-18T04:45:00.741013 +AZURE,westus3,Standard_E16ds_v4,spot,NA,0.213466,USD,Azure Retail Prices API,2025-12-18T04:44:58.679653 +AZURE,westus3,Standard_E16ds_v5,on_demand,NA,1.152,USD,Azure Retail Prices API,2025-12-18T04:44:58.681113 +AZURE,westus3,Standard_E16ds_v5,reserved_1y,NA,0.67968,USD,Azure Retail Prices API,2025-12-18T04:45:00.742486 +AZURE,westus3,Standard_E16ds_v5,reserved_3y,NA,0.437747,USD,Azure Retail Prices API,2025-12-18T04:45:00.742489 +AZURE,westus3,Standard_E16ds_v5,spot,NA,0.213466,USD,Azure Retail Prices API,2025-12-18T04:44:58.679691 +AZURE,westus3,Standard_E16ds_v6,on_demand,NA,1.308,USD,Azure Retail Prices API,2025-12-18T04:44:58.680058 +AZURE,westus3,Standard_E16ds_v6,reserved_1y,NA,0.811073,USD,Azure Retail Prices API,2025-12-18T04:45:00.741160 +AZURE,westus3,Standard_E16ds_v6,reserved_3y,NA,0.510198,USD,Azure Retail Prices API,2025-12-18T04:45:00.741165 +AZURE,westus3,Standard_E16ds_v6,spot,NA,0.241718,USD,Azure Retail Prices API,2025-12-18T04:44:58.680739 +AZURE,westus3,Standard_E16pds_v6,on_demand,NA,0.936,USD,Azure Retail Prices API,2025-12-18T04:44:58.680481 +AZURE,westus3,Standard_E16pds_v6,reserved_1y,NA,0.552283,USD,Azure Retail Prices API,2025-12-18T04:45:00.741718 +AZURE,westus3,Standard_E16pds_v6,reserved_3y,NA,0.35567,USD,Azure Retail Prices API,2025-12-18T04:45:00.741721 +AZURE,westus3,Standard_E16pds_v6,spot,NA,0.172973,USD,Azure Retail Prices API,2025-12-18T04:44:58.679521 +AZURE,westus3,Standard_E16ps_v6,on_demand,NA,0.738,USD,Azure Retail Prices API,2025-12-18T04:44:58.680242 +AZURE,westus3,Standard_E16ps_v6,reserved_1y,NA,0.43516,USD,Azure Retail Prices API,2025-12-18T04:45:00.741389 +AZURE,westus3,Standard_E16ps_v6,reserved_3y,NA,0.280289,USD,Azure Retail Prices API,2025-12-18T04:45:00.741394 +AZURE,westus3,Standard_E16ps_v6,spot,NA,0.136382,USD,Azure Retail Prices API,2025-12-18T04:44:58.681013 +AZURE,westus3,Standard_E16s_v3,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:58.680866 +AZURE,westus3,Standard_E16s_v3,reserved_1y,NA,0.625685,USD,Azure Retail Prices API,2025-12-18T04:45:00.742207 +AZURE,westus3,Standard_E16s_v3,reserved_3y,NA,0.400076,USD,Azure Retail Prices API,2025-12-18T04:45:00.742211 +AZURE,westus3,Standard_E16s_v3,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:58.680527 +AZURE,westus3,Standard_E16s_v4,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:58.681102 +AZURE,westus3,Standard_E16s_v4,reserved_1y,NA,0.592694,USD,Azure Retail Prices API,2025-12-18T04:45:00.742469 +AZURE,westus3,Standard_E16s_v4,reserved_3y,NA,0.378995,USD,Azure Retail Prices API,2025-12-18T04:45:00.742471 +AZURE,westus3,Standard_E16s_v4,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:58.679978 +AZURE,westus3,Standard_E16s_v5,on_demand,NA,1.008,USD,Azure Retail Prices API,2025-12-18T04:44:58.679546 +AZURE,westus3,Standard_E16s_v5,reserved_1y,NA,0.594749,USD,Azure Retail Prices API,2025-12-18T04:45:00.740415 +AZURE,westus3,Standard_E16s_v5,reserved_3y,NA,0.383029,USD,Azure Retail Prices API,2025-12-18T04:45:00.740420 +AZURE,westus3,Standard_E16s_v5,spot,NA,0.186278,USD,Azure Retail Prices API,2025-12-18T04:44:58.679880 +AZURE,westus3,Standard_E20a_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:58.679936 +AZURE,westus3,Standard_E20a_v4,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:45:00.740948 +AZURE,westus3,Standard_E20a_v4,reserved_3y,NA,0.478805,USD,Azure Retail Prices API,2025-12-18T04:45:00.740952 +AZURE,westus3,Standard_E20a_v4,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:44:58.680374 +AZURE,westus3,Standard_E20ads_v5,on_demand,NA,2.23,USD,Azure Retail Prices API,2025-12-18T04:44:58.679883 +AZURE,westus3,Standard_E20ads_v5,reserved_1y,NA,0.772945,USD,Azure Retail Prices API,2025-12-18T04:45:00.741834 +AZURE,westus3,Standard_E20ads_v5,reserved_3y,NA,0.497793,USD,Azure Retail Prices API,2025-12-18T04:45:00.741837 +AZURE,westus3,Standard_E20ads_v5,spot,NA,0.242088,USD,Azure Retail Prices API,2025-12-18T04:44:58.681071 +AZURE,westus3,Standard_E20ads_v6,on_demand,NA,1.452,USD,Azure Retail Prices API,2025-12-18T04:44:58.679689 +AZURE,westus3,Standard_E20ads_v6,reserved_1y,NA,0.856735,USD,Azure Retail Prices API,2025-12-18T04:45:00.740650 +AZURE,westus3,Standard_E20ads_v6,reserved_3y,NA,0.55175,USD,Azure Retail Prices API,2025-12-18T04:45:00.740655 +AZURE,westus3,Standard_E20ads_v6,spot,NA,0.26833,USD,Azure Retail Prices API,2025-12-18T04:44:58.679764 +AZURE,westus3,Standard_E20as_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:58.681110 +AZURE,westus3,Standard_E20as_v4,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:45:00.742480 +AZURE,westus3,Standard_E20as_v4,reserved_3y,NA,0.478805,USD,Azure Retail Prices API,2025-12-18T04:45:00.742483 +AZURE,westus3,Standard_E20as_v4,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:44:58.679644 +AZURE,westus3,Standard_E20as_v5,on_demand,NA,1.13,USD,Azure Retail Prices API,2025-12-18T04:44:58.679621 +AZURE,westus3,Standard_E20as_v5,reserved_1y,NA,0.666667,USD,Azure Retail Prices API,2025-12-18T04:45:00.740538 +AZURE,westus3,Standard_E20as_v5,reserved_3y,NA,0.429414,USD,Azure Retail Prices API,2025-12-18T04:45:00.740543 +AZURE,westus3,Standard_E20as_v5,spot,NA,0.208824,USD,Azure Retail Prices API,2025-12-18T04:44:58.679908 +AZURE,westus3,Standard_E20d_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:58.680190 +AZURE,westus3,Standard_E20d_v4,reserved_1y,NA,0.846461,USD,Azure Retail Prices API,2025-12-18T04:45:00.741332 +AZURE,westus3,Standard_E20d_v4,reserved_3y,NA,0.541476,USD,Azure Retail Prices API,2025-12-18T04:45:00.741337 +AZURE,westus3,Standard_E20d_v4,spot,NA,0.266832,USD,Azure Retail Prices API,2025-12-18T04:44:58.679785 +AZURE,westus3,Standard_E20ds_v4,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:58.680238 +AZURE,westus3,Standard_E20ds_v4,reserved_1y,NA,0.846461,USD,Azure Retail Prices API,2025-12-18T04:45:00.741379 +AZURE,westus3,Standard_E20ds_v4,reserved_3y,NA,0.541476,USD,Azure Retail Prices API,2025-12-18T04:45:00.741384 +AZURE,westus3,Standard_E20ds_v4,spot,NA,0.266832,USD,Azure Retail Prices API,2025-12-18T04:44:58.680669 +AZURE,westus3,Standard_E20ds_v5,on_demand,NA,1.44,USD,Azure Retail Prices API,2025-12-18T04:44:58.679455 +AZURE,westus3,Standard_E20ds_v5,reserved_1y,NA,0.849543,USD,Azure Retail Prices API,2025-12-18T04:45:00.740287 +AZURE,westus3,Standard_E20ds_v5,reserved_3y,NA,0.547184,USD,Azure Retail Prices API,2025-12-18T04:45:00.740292 +AZURE,westus3,Standard_E20ds_v5,spot,NA,0.266832,USD,Azure Retail Prices API,2025-12-18T04:44:58.680271 +AZURE,westus3,Standard_E20ds_v6,on_demand,NA,1.635,USD,Azure Retail Prices API,2025-12-18T04:44:58.679892 +AZURE,westus3,Standard_E20ds_v6,reserved_1y,NA,1.013813,USD,Azure Retail Prices API,2025-12-18T04:45:00.740906 +AZURE,westus3,Standard_E20ds_v6,reserved_3y,NA,0.637709,USD,Azure Retail Prices API,2025-12-18T04:45:00.740912 +AZURE,westus3,Standard_E20ds_v6,spot,NA,0.302148,USD,Azure Retail Prices API,2025-12-18T04:44:58.680651 +AZURE,westus3,Standard_E20s_v4,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:58.679530 +AZURE,westus3,Standard_E20s_v4,reserved_1y,NA,0.740868,USD,Azure Retail Prices API,2025-12-18T04:45:00.740394 +AZURE,westus3,Standard_E20s_v4,reserved_3y,NA,0.473744,USD,Azure Retail Prices API,2025-12-18T04:45:00.740399 +AZURE,westus3,Standard_E20s_v4,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:44:58.679877 +AZURE,westus3,Standard_E20s_v5,on_demand,NA,1.26,USD,Azure Retail Prices API,2025-12-18T04:44:58.680759 +AZURE,westus3,Standard_E20s_v5,reserved_1y,NA,0.743379,USD,Azure Retail Prices API,2025-12-18T04:45:00.742017 +AZURE,westus3,Standard_E20s_v5,reserved_3y,NA,0.478805,USD,Azure Retail Prices API,2025-12-18T04:45:00.742020 +AZURE,westus3,Standard_E20s_v5,spot,NA,0.232848,USD,Azure Retail Prices API,2025-12-18T04:44:58.680011 +AZURE,westus3,Standard_E2_v3,on_demand,NA,0.126,USD,Azure Retail Prices API,2025-12-18T04:44:58.679931 +AZURE,westus3,Standard_E2_v3,reserved_1y,NA,0.078196,USD,Azure Retail Prices API,2025-12-18T04:45:00.740938 +AZURE,westus3,Standard_E2_v3,reserved_3y,NA,0.05,USD,Azure Retail Prices API,2025-12-18T04:45:00.740943 +AZURE,westus3,Standard_E2_v3,spot,NA,0.023285,USD,Azure Retail Prices API,2025-12-18T04:44:58.679686 +AZURE,westus3,Standard_E2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:58.679944 +AZURE,westus3,Standard_E2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:45:00.740967 +AZURE,westus3,Standard_E2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:45:00.740972 +AZURE,westus3,Standard_E2ads_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:44:58.680993 +AZURE,westus3,Standard_E2ds_v5,on_demand,NA,0.144,USD,Azure Retail Prices API,2025-12-18T04:44:58.681019 +AZURE,westus3,Standard_E2ds_v5,reserved_1y,NA,0.084932,USD,Azure Retail Prices API,2025-12-18T04:45:00.742406 +AZURE,westus3,Standard_E2ds_v5,reserved_3y,NA,0.054718,USD,Azure Retail Prices API,2025-12-18T04:45:00.742410 +AZURE,westus3,Standard_E2ds_v5,spot,NA,0.026683,USD,Azure Retail Prices API,2025-12-18T04:44:58.680062 +AZURE,westus3,Standard_E2ds_v6,on_demand,NA,0.164,USD,Azure Retail Prices API,2025-12-18T04:44:58.679959 +AZURE,westus3,Standard_E2ds_v6,reserved_1y,NA,0.10137,USD,Azure Retail Prices API,2025-12-18T04:45:00.740988 +AZURE,westus3,Standard_E2ds_v6,reserved_3y,NA,0.063775,USD,Azure Retail Prices API,2025-12-18T04:45:00.740993 +AZURE,westus3,Standard_E2ds_v6,spot,NA,0.030307,USD,Azure Retail Prices API,2025-12-18T04:44:58.679694 +AZURE,westus3,Standard_E2pds_v6,on_demand,NA,0.117,USD,Azure Retail Prices API,2025-12-18T04:44:58.680695 +AZURE,westus3,Standard_E2pds_v6,reserved_1y,NA,0.069064,USD,Azure Retail Prices API,2025-12-18T04:45:00.741964 +AZURE,westus3,Standard_E2pds_v6,reserved_3y,NA,0.044444,USD,Azure Retail Prices API,2025-12-18T04:45:00.741970 +AZURE,westus3,Standard_E2pds_v6,spot,NA,0.021622,USD,Azure Retail Prices API,2025-12-18T04:44:58.680464 +AZURE,westus3,Standard_E32_v3,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:58.681090 +AZURE,westus3,Standard_E32_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:45:00.742457 +AZURE,westus3,Standard_E32_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:45:00.742460 +AZURE,westus3,Standard_E32_v3,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:58.680274 +AZURE,westus3,Standard_E32a_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:58.679591 +AZURE,westus3,Standard_E32a_v4,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:45:00.740488 +AZURE,westus3,Standard_E32a_v4,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:45:00.740493 +AZURE,westus3,Standard_E32a_v4,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:58.679489 +AZURE,westus3,Standard_E32ads_v5,on_demand,NA,2.096,USD,Azure Retail Prices API,2025-12-18T04:44:58.679717 +AZURE,westus3,Standard_E32ads_v5,reserved_1y,NA,1.236644,USD,Azure Retail Prices API,2025-12-18T04:45:00.740688 +AZURE,westus3,Standard_E32ads_v5,reserved_3y,NA,0.796461,USD,Azure Retail Prices API,2025-12-18T04:45:00.740694 +AZURE,westus3,Standard_E32ads_v5,spot,NA,0.387341,USD,Azure Retail Prices API,2025-12-18T04:44:58.680420 +AZURE,westus3,Standard_E32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:44:58.680105 +AZURE,westus3,Standard_E32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:45:00.741240 +AZURE,westus3,Standard_E32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:45:00.741246 +AZURE,westus3,Standard_E32ads_v6,spot,NA,0.42929,USD,Azure Retail Prices API,2025-12-18T04:44:58.680014 +AZURE,westus3,Standard_E32as_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:58.680445 +AZURE,westus3,Standard_E32as_v4,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:45:00.741686 +AZURE,westus3,Standard_E32as_v4,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:45:00.741691 +AZURE,westus3,Standard_E32as_v4,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:58.680518 +AZURE,westus3,Standard_E32as_v5,on_demand,NA,3.28,USD,Azure Retail Prices API,2025-12-18T04:44:58.679914 +AZURE,westus3,Standard_E32as_v5,reserved_1y,NA,1.066667,USD,Azure Retail Prices API,2025-12-18T04:45:00.741870 +AZURE,westus3,Standard_E32as_v5,reserved_3y,NA,0.687024,USD,Azure Retail Prices API,2025-12-18T04:45:00.741873 +AZURE,westus3,Standard_E32as_v5,spot,NA,0.334118,USD,Azure Retail Prices API,2025-12-18T04:44:58.679662 +AZURE,westus3,Standard_E32d_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:58.680826 +AZURE,westus3,Standard_E32d_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:45:00.742143 +AZURE,westus3,Standard_E32d_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:45:00.742146 +AZURE,westus3,Standard_E32d_v4,spot,NA,0.426931,USD,Azure Retail Prices API,2025-12-18T04:44:58.681066 +AZURE,westus3,Standard_E32ds_v4,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:58.680946 +AZURE,westus3,Standard_E32ds_v4,reserved_1y,NA,1.354795,USD,Azure Retail Prices API,2025-12-18T04:45:00.742317 +AZURE,westus3,Standard_E32ds_v4,reserved_3y,NA,0.866286,USD,Azure Retail Prices API,2025-12-18T04:45:00.742321 +AZURE,westus3,Standard_E32ds_v4,spot,NA,0.426931,USD,Azure Retail Prices API,2025-12-18T04:44:58.680751 +AZURE,westus3,Standard_E32ds_v5,on_demand,NA,2.304,USD,Azure Retail Prices API,2025-12-18T04:44:58.679972 +AZURE,westus3,Standard_E32ds_v5,reserved_1y,NA,1.359361,USD,Azure Retail Prices API,2025-12-18T04:45:00.741018 +AZURE,westus3,Standard_E32ds_v5,reserved_3y,NA,0.875533,USD,Azure Retail Prices API,2025-12-18T04:45:00.741023 +AZURE,westus3,Standard_E32ds_v5,spot,NA,0.426931,USD,Azure Retail Prices API,2025-12-18T04:44:58.679597 +AZURE,westus3,Standard_E32ds_v6,on_demand,NA,2.616,USD,Azure Retail Prices API,2025-12-18T04:44:58.680199 +AZURE,westus3,Standard_E32ds_v6,reserved_1y,NA,1.622146,USD,Azure Retail Prices API,2025-12-18T04:45:00.741342 +AZURE,westus3,Standard_E32ds_v6,reserved_3y,NA,1.020358,USD,Azure Retail Prices API,2025-12-18T04:45:00.741347 +AZURE,westus3,Standard_E32ds_v6,spot,NA,0.483437,USD,Azure Retail Prices API,2025-12-18T04:44:58.680930 +AZURE,westus3,Standard_E32pds_v6,on_demand,NA,1.872,USD,Azure Retail Prices API,2025-12-18T04:44:58.680402 +AZURE,westus3,Standard_E32pds_v6,reserved_1y,NA,1.104452,USD,Azure Retail Prices API,2025-12-18T04:45:00.741624 +AZURE,westus3,Standard_E32pds_v6,reserved_3y,NA,0.711377,USD,Azure Retail Prices API,2025-12-18T04:45:00.741627 +AZURE,westus3,Standard_E32pds_v6,spot,NA,0.345946,USD,Azure Retail Prices API,2025-12-18T04:44:58.679842 +AZURE,westus3,Standard_E32ps_v6,on_demand,NA,1.475,USD,Azure Retail Prices API,2025-12-18T04:44:58.679656 +AZURE,westus3,Standard_E32ps_v6,reserved_1y,NA,0.87032,USD,Azure Retail Prices API,2025-12-18T04:45:00.740589 +AZURE,westus3,Standard_E32ps_v6,reserved_3y,NA,0.560578,USD,Azure Retail Prices API,2025-12-18T04:45:00.740594 +AZURE,westus3,Standard_E32ps_v6,spot,NA,0.27258,USD,Azure Retail Prices API,2025-12-18T04:44:58.679632 +AZURE,westus3,Standard_E32s_v3,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:58.679899 +AZURE,westus3,Standard_E32s_v3,reserved_1y,NA,1.251256,USD,Azure Retail Prices API,2025-12-18T04:45:00.740928 +AZURE,westus3,Standard_E32s_v3,reserved_3y,NA,0.800114,USD,Azure Retail Prices API,2025-12-18T04:45:00.740932 +AZURE,westus3,Standard_E32s_v3,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:58.679527 +AZURE,westus3,Standard_E32s_v4,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:58.680646 +AZURE,westus3,Standard_E32s_v4,reserved_1y,NA,1.185388,USD,Azure Retail Prices API,2025-12-18T04:45:00.741921 +AZURE,westus3,Standard_E32s_v4,reserved_3y,NA,0.758029,USD,Azure Retail Prices API,2025-12-18T04:45:00.741924 +AZURE,westus3,Standard_E32s_v4,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:58.679871 +AZURE,westus3,Standard_E32s_v5,on_demand,NA,2.016,USD,Azure Retail Prices API,2025-12-18T04:44:58.680802 +AZURE,westus3,Standard_E32s_v5,reserved_1y,NA,1.189384,USD,Azure Retail Prices API,2025-12-18T04:45:00.742123 +AZURE,westus3,Standard_E32s_v5,reserved_3y,NA,0.766096,USD,Azure Retail Prices API,2025-12-18T04:45:00.742126 +AZURE,westus3,Standard_E32s_v5,spot,NA,0.372557,USD,Azure Retail Prices API,2025-12-18T04:44:58.679726 +AZURE,westus3,Standard_E48a_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:58.680974 +AZURE,westus3,Standard_E48a_v4,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:45:00.742349 +AZURE,westus3,Standard_E48a_v4,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:45:00.742352 +AZURE,westus3,Standard_E48a_v4,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:44:58.680099 +AZURE,westus3,Standard_E48ads_v5,on_demand,NA,3.144,USD,Azure Retail Prices API,2025-12-18T04:44:58.680052 +AZURE,westus3,Standard_E48ads_v5,reserved_1y,NA,1.854909,USD,Azure Retail Prices API,2025-12-18T04:45:00.741142 +AZURE,westus3,Standard_E48ads_v5,reserved_3y,NA,1.194711,USD,Azure Retail Prices API,2025-12-18T04:45:00.741146 +AZURE,westus3,Standard_E48ads_v5,spot,NA,0.581011,USD,Azure Retail Prices API,2025-12-18T04:44:58.680955 +AZURE,westus3,Standard_E48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:44:58.680321 +AZURE,westus3,Standard_E48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:45:00.741510 +AZURE,westus3,Standard_E48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:45:00.741515 +AZURE,westus3,Standard_E48ads_v6,spot,NA,0.644028,USD,Azure Retail Prices API,2025-12-18T04:44:58.680880 +AZURE,westus3,Standard_E48as_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:58.680909 +AZURE,westus3,Standard_E48as_v4,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:45:00.742265 +AZURE,westus3,Standard_E48as_v4,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:45:00.742268 +AZURE,westus3,Standard_E48as_v4,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:44:58.679518 +AZURE,westus3,Standard_E48as_v5,on_demand,NA,4.92,USD,Azure Retail Prices API,2025-12-18T04:44:58.679564 +AZURE,westus3,Standard_E48as_v5,reserved_1y,NA,1.600114,USD,Azure Retail Prices API,2025-12-18T04:45:00.741121 +AZURE,westus3,Standard_E48as_v5,reserved_3y,NA,1.030556,USD,Azure Retail Prices API,2025-12-18T04:45:00.741125 +AZURE,westus3,Standard_E48as_v5,spot,NA,0.501178,USD,Azure Retail Prices API,2025-12-18T04:44:58.679729 +AZURE,westus3,Standard_E48d_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:58.680914 +AZURE,westus3,Standard_E48d_v4,reserved_1y,NA,2.032078,USD,Azure Retail Prices API,2025-12-18T04:45:00.742271 +AZURE,westus3,Standard_E48d_v4,reserved_3y,NA,1.299467,USD,Azure Retail Prices API,2025-12-18T04:45:00.742274 +AZURE,westus3,Standard_E48d_v4,spot,NA,0.640397,USD,Azure Retail Prices API,2025-12-18T04:44:58.681004 +AZURE,westus3,Standard_E48ds_v4,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:58.680206 +AZURE,westus3,Standard_E48ds_v4,reserved_1y,NA,2.032078,USD,Azure Retail Prices API,2025-12-18T04:45:00.741352 +AZURE,westus3,Standard_E48ds_v4,reserved_3y,NA,1.299467,USD,Azure Retail Prices API,2025-12-18T04:45:00.741356 +AZURE,westus3,Standard_E48ds_v4,spot,NA,0.640397,USD,Azure Retail Prices API,2025-12-18T04:44:58.680933 +AZURE,westus3,Standard_E48ds_v5,on_demand,NA,3.456,USD,Azure Retail Prices API,2025-12-18T04:44:58.680980 +AZURE,westus3,Standard_E48ds_v5,reserved_1y,NA,2.039041,USD,Azure Retail Prices API,2025-12-18T04:45:00.742356 +AZURE,westus3,Standard_E48ds_v5,reserved_3y,NA,1.31328,USD,Azure Retail Prices API,2025-12-18T04:45:00.742362 +AZURE,westus3,Standard_E48ds_v5,spot,NA,0.640397,USD,Azure Retail Prices API,2025-12-18T04:44:58.680541 +AZURE,westus3,Standard_E48ds_v6,on_demand,NA,3.924,USD,Azure Retail Prices API,2025-12-18T04:44:58.680324 +AZURE,westus3,Standard_E48ds_v6,reserved_1y,NA,2.433219,USD,Azure Retail Prices API,2025-12-18T04:45:00.741519 +AZURE,westus3,Standard_E48ds_v6,reserved_3y,NA,1.530556,USD,Azure Retail Prices API,2025-12-18T04:45:00.741522 +AZURE,westus3,Standard_E48ds_v6,spot,NA,0.725155,USD,Azure Retail Prices API,2025-12-18T04:44:58.680515 +AZURE,westus3,Standard_E48pds_v6,on_demand,NA,2.808,USD,Azure Retail Prices API,2025-12-18T04:44:58.679533 +AZURE,westus3,Standard_E48pds_v6,reserved_1y,NA,1.656735,USD,Azure Retail Prices API,2025-12-18T04:45:00.740404 +AZURE,westus3,Standard_E48pds_v6,reserved_3y,NA,1.067047,USD,Azure Retail Prices API,2025-12-18T04:45:00.740409 +AZURE,westus3,Standard_E48pds_v6,spot,NA,0.518918,USD,Azure Retail Prices API,2025-12-18T04:44:58.679703 +AZURE,westus3,Standard_E48ps_v6,on_demand,NA,2.213,USD,Azure Retail Prices API,2025-12-18T04:44:58.680509 +AZURE,westus3,Standard_E48ps_v6,reserved_1y,NA,1.305594,USD,Azure Retail Prices API,2025-12-18T04:45:00.741743 +AZURE,westus3,Standard_E48ps_v6,reserved_3y,NA,0.840868,USD,Azure Retail Prices API,2025-12-18T04:45:00.741746 +AZURE,westus3,Standard_E48ps_v6,spot,NA,0.408962,USD,Azure Retail Prices API,2025-12-18T04:44:58.680748 +AZURE,westus3,Standard_E48s_v4,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:58.680088 +AZURE,westus3,Standard_E48s_v4,reserved_1y,NA,1.778082,USD,Azure Retail Prices API,2025-12-18T04:45:00.741220 +AZURE,westus3,Standard_E48s_v4,reserved_3y,NA,1.137024,USD,Azure Retail Prices API,2025-12-18T04:45:00.741224 +AZURE,westus3,Standard_E48s_v4,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:44:58.680507 +AZURE,westus3,Standard_E48s_v5,on_demand,NA,3.024,USD,Azure Retail Prices API,2025-12-18T04:44:58.680896 +AZURE,westus3,Standard_E48s_v5,reserved_1y,NA,1.784132,USD,Azure Retail Prices API,2025-12-18T04:45:00.742252 +AZURE,westus3,Standard_E48s_v5,reserved_3y,NA,1.149125,USD,Azure Retail Prices API,2025-12-18T04:45:00.742255 +AZURE,westus3,Standard_E48s_v5,spot,NA,0.558835,USD,Azure Retail Prices API,2025-12-18T04:44:58.679582 +AZURE,westus3,Standard_E4_v3,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:58.679561 +AZURE,westus3,Standard_E4_v3,reserved_1y,NA,0.156393,USD,Azure Retail Prices API,2025-12-18T04:45:00.740456 +AZURE,westus3,Standard_E4_v3,reserved_3y,NA,0.1,USD,Azure Retail Prices API,2025-12-18T04:45:00.740461 +AZURE,westus3,Standard_E4_v3,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:44:58.679848 +AZURE,westus3,Standard_E4a_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:58.679665 +AZURE,westus3,Standard_E4a_v4,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:45:00.740599 +AZURE,westus3,Standard_E4a_v4,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:45:00.740604 +AZURE,westus3,Standard_E4a_v4,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:44:58.681025 +AZURE,westus3,Standard_E4ads_v5,on_demand,NA,0.446,USD,Azure Retail Prices API,2025-12-18T04:44:58.679821 +AZURE,westus3,Standard_E4ads_v5,reserved_1y,NA,0.154566,USD,Azure Retail Prices API,2025-12-18T04:45:00.741418 +AZURE,westus3,Standard_E4ads_v5,reserved_3y,NA,0.099543,USD,Azure Retail Prices API,2025-12-18T04:45:00.741423 +AZURE,westus3,Standard_E4ads_v5,spot,NA,0.048418,USD,Azure Retail Prices API,2025-12-18T04:44:58.681105 +AZURE,westus3,Standard_E4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:44:58.680745 +AZURE,westus3,Standard_E4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:45:00.742005 +AZURE,westus3,Standard_E4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:45:00.742008 +AZURE,westus3,Standard_E4ads_v6,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:44:58.680589 +AZURE,westus3,Standard_E4as_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:58.680454 +AZURE,westus3,Standard_E4as_v4,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:45:00.741694 +AZURE,westus3,Standard_E4as_v4,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:45:00.741697 +AZURE,westus3,Standard_E4as_v4,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:44:58.681016 +AZURE,westus3,Standard_E4as_v5,on_demand,NA,0.41,USD,Azure Retail Prices API,2025-12-18T04:44:58.679956 +AZURE,westus3,Standard_E4as_v5,reserved_1y,NA,0.133333,USD,Azure Retail Prices API,2025-12-18T04:45:00.741756 +AZURE,westus3,Standard_E4as_v5,reserved_3y,NA,0.085883,USD,Azure Retail Prices API,2025-12-18T04:45:00.741759 +AZURE,westus3,Standard_E4as_v5,spot,NA,0.041765,USD,Azure Retail Prices API,2025-12-18T04:44:58.680716 +AZURE,westus3,Standard_E4d_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:58.680681 +AZURE,westus3,Standard_E4d_v4,reserved_1y,NA,0.169292,USD,Azure Retail Prices API,2025-12-18T04:45:00.741941 +AZURE,westus3,Standard_E4d_v4,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:45:00.741946 +AZURE,westus3,Standard_E4d_v4,spot,NA,0.053366,USD,Azure Retail Prices API,2025-12-18T04:44:58.679791 +AZURE,westus3,Standard_E4ds_v4,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:58.681033 +AZURE,westus3,Standard_E4ds_v4,reserved_1y,NA,0.169292,USD,Azure Retail Prices API,2025-12-18T04:45:00.742412 +AZURE,westus3,Standard_E4ds_v4,reserved_3y,NA,0.108295,USD,Azure Retail Prices API,2025-12-18T04:45:00.742416 +AZURE,westus3,Standard_E4ds_v4,spot,NA,0.053366,USD,Azure Retail Prices API,2025-12-18T04:44:58.680684 +AZURE,westus3,Standard_E4ds_v5,on_demand,NA,0.288,USD,Azure Retail Prices API,2025-12-18T04:44:58.680628 +AZURE,westus3,Standard_E4ds_v5,reserved_1y,NA,0.169863,USD,Azure Retail Prices API,2025-12-18T04:45:00.741899 +AZURE,westus3,Standard_E4ds_v5,reserved_3y,NA,0.109437,USD,Azure Retail Prices API,2025-12-18T04:45:00.741901 +AZURE,westus3,Standard_E4ds_v5,spot,NA,0.053366,USD,Azure Retail Prices API,2025-12-18T04:44:58.680822 +AZURE,westus3,Standard_E4ds_v6,on_demand,NA,0.327,USD,Azure Retail Prices API,2025-12-18T04:44:58.680666 +AZURE,westus3,Standard_E4ds_v6,reserved_1y,NA,0.20274,USD,Azure Retail Prices API,2025-12-18T04:45:00.741932 +AZURE,westus3,Standard_E4ds_v6,reserved_3y,NA,0.127549,USD,Azure Retail Prices API,2025-12-18T04:45:00.741936 +AZURE,westus3,Standard_E4ds_v6,spot,NA,0.06043,USD,Azure Retail Prices API,2025-12-18T04:44:58.680327 +AZURE,westus3,Standard_E4pds_v6,on_demand,NA,0.234,USD,Azure Retail Prices API,2025-12-18T04:44:58.680595 +AZURE,westus3,Standard_E4pds_v6,reserved_1y,NA,0.138014,USD,Azure Retail Prices API,2025-12-18T04:45:00.741846 +AZURE,westus3,Standard_E4pds_v6,reserved_3y,NA,0.088927,USD,Azure Retail Prices API,2025-12-18T04:45:00.741849 +AZURE,westus3,Standard_E4pds_v6,spot,NA,0.043243,USD,Azure Retail Prices API,2025-12-18T04:44:58.679680 +AZURE,westus3,Standard_E4ps_v6,on_demand,NA,0.184,USD,Azure Retail Prices API,2025-12-18T04:44:58.679818 +AZURE,westus3,Standard_E4ps_v6,reserved_1y,NA,0.10879,USD,Azure Retail Prices API,2025-12-18T04:45:00.740801 +AZURE,westus3,Standard_E4ps_v6,reserved_3y,NA,0.070053,USD,Azure Retail Prices API,2025-12-18T04:45:00.740805 +AZURE,westus3,Standard_E4ps_v6,spot,NA,0.034003,USD,Azure Retail Prices API,2025-12-18T04:44:58.680928 +AZURE,westus3,Standard_E4s_v4,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:58.680622 +AZURE,westus3,Standard_E4s_v4,reserved_1y,NA,0.148174,USD,Azure Retail Prices API,2025-12-18T04:45:00.741887 +AZURE,westus3,Standard_E4s_v4,reserved_3y,NA,0.094749,USD,Azure Retail Prices API,2025-12-18T04:45:00.741890 +AZURE,westus3,Standard_E4s_v4,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:44:58.680654 +AZURE,westus3,Standard_E4s_v5,on_demand,NA,0.252,USD,Azure Retail Prices API,2025-12-18T04:44:58.680855 +AZURE,westus3,Standard_E4s_v5,reserved_1y,NA,0.14863,USD,Azure Retail Prices API,2025-12-18T04:45:00.742188 +AZURE,westus3,Standard_E4s_v5,reserved_3y,NA,0.095776,USD,Azure Retail Prices API,2025-12-18T04:45:00.742191 +AZURE,westus3,Standard_E4s_v5,spot,NA,0.04657,USD,Azure Retail Prices API,2025-12-18T04:44:58.680235 +AZURE,westus3,Standard_E64_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:44:58.680065 +AZURE,westus3,Standard_E64_v3,reserved_1y,NA,2.358562,USD,Azure Retail Prices API,2025-12-18T04:45:00.741180 +AZURE,westus3,Standard_E64_v3,reserved_3y,NA,1.508219,USD,Azure Retail Prices API,2025-12-18T04:45:00.741185 +AZURE,westus3,Standard_E64_v3,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:44:58.679985 +AZURE,westus3,Standard_E64a_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:58.679886 +AZURE,westus3,Standard_E64a_v4,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:45:00.740892 +AZURE,westus3,Standard_E64a_v4,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:45:00.740898 +AZURE,westus3,Standard_E64a_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:44:58.681022 +AZURE,westus3,Standard_E64ads_v5,on_demand,NA,4.192,USD,Azure Retail Prices API,2025-12-18T04:44:58.679650 +AZURE,westus3,Standard_E64ads_v5,reserved_1y,NA,2.473288,USD,Azure Retail Prices API,2025-12-18T04:45:00.740579 +AZURE,westus3,Standard_E64ads_v5,reserved_3y,NA,1.59296,USD,Azure Retail Prices API,2025-12-18T04:45:00.740584 +AZURE,westus3,Standard_E64ads_v5,spot,NA,0.774682,USD,Azure Retail Prices API,2025-12-18T04:44:58.679756 +AZURE,westus3,Standard_E64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:44:58.680869 +AZURE,westus3,Standard_E64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:45:00.742214 +AZURE,westus3,Standard_E64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:45:00.742217 +AZURE,westus3,Standard_E64ads_v6,spot,NA,0.858581,USD,Azure Retail Prices API,2025-12-18T04:44:58.680907 +AZURE,westus3,Standard_E64as_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:58.680151 +AZURE,westus3,Standard_E64as_v4,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:45:00.741270 +AZURE,westus3,Standard_E64as_v4,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:45:00.741274 +AZURE,westus3,Standard_E64as_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:44:58.680736 +AZURE,westus3,Standard_E64as_v5,on_demand,NA,3.616,USD,Azure Retail Prices API,2025-12-18T04:44:58.679836 +AZURE,westus3,Standard_E64as_v5,reserved_1y,NA,2.133447,USD,Azure Retail Prices API,2025-12-18T04:45:00.740831 +AZURE,westus3,Standard_E64as_v5,reserved_3y,NA,1.374087,USD,Azure Retail Prices API,2025-12-18T04:45:00.740836 +AZURE,westus3,Standard_E64as_v5,spot,NA,0.668237,USD,Azure Retail Prices API,2025-12-18T04:44:58.680004 +AZURE,westus3,Standard_E64d_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:58.680829 +AZURE,westus3,Standard_E64d_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:45:00.742149 +AZURE,westus3,Standard_E64d_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:45:00.742152 +AZURE,westus3,Standard_E64d_v4,spot,NA,0.853862,USD,Azure Retail Prices API,2025-12-18T04:44:58.681060 +AZURE,westus3,Standard_E64ds_v4,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:58.680970 +AZURE,westus3,Standard_E64ds_v4,reserved_1y,NA,2.709475,USD,Azure Retail Prices API,2025-12-18T04:45:00.742342 +AZURE,westus3,Standard_E64ds_v4,reserved_3y,NA,1.73261,USD,Azure Retail Prices API,2025-12-18T04:45:00.742345 +AZURE,westus3,Standard_E64ds_v4,spot,NA,0.853862,USD,Azure Retail Prices API,2025-12-18T04:44:58.681074 +AZURE,westus3,Standard_E64ds_v5,on_demand,NA,4.608,USD,Azure Retail Prices API,2025-12-18T04:44:58.680576 +AZURE,westus3,Standard_E64ds_v5,reserved_1y,NA,2.718721,USD,Azure Retail Prices API,2025-12-18T04:45:00.741823 +AZURE,westus3,Standard_E64ds_v5,reserved_3y,NA,1.751027,USD,Azure Retail Prices API,2025-12-18T04:45:00.741826 +AZURE,westus3,Standard_E64ds_v5,spot,NA,0.853862,USD,Azure Retail Prices API,2025-12-18T04:44:58.680423 +AZURE,westus3,Standard_E64ds_v6,on_demand,NA,5.233,USD,Azure Retail Prices API,2025-12-18T04:44:58.679615 +AZURE,westus3,Standard_E64ds_v6,reserved_1y,NA,3.244292,USD,Azure Retail Prices API,2025-12-18T04:45:00.740518 +AZURE,westus3,Standard_E64ds_v6,reserved_3y,NA,2.040715,USD,Azure Retail Prices API,2025-12-18T04:45:00.740523 +AZURE,westus3,Standard_E64ds_v6,spot,NA,0.967058,USD,Azure Retail Prices API,2025-12-18T04:44:58.679839 +AZURE,westus3,Standard_E64pds_v6,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:58.680504 +AZURE,westus3,Standard_E64pds_v6,reserved_1y,NA,2.208904,USD,Azure Retail Prices API,2025-12-18T04:45:00.741737 +AZURE,westus3,Standard_E64pds_v6,reserved_3y,NA,1.422717,USD,Azure Retail Prices API,2025-12-18T04:45:00.741740 +AZURE,westus3,Standard_E64pds_v6,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:44:58.680679 +AZURE,westus3,Standard_E64ps_v6,on_demand,NA,2.95,USD,Azure Retail Prices API,2025-12-18T04:44:58.680864 +AZURE,westus3,Standard_E64ps_v6,reserved_1y,NA,1.740753,USD,Azure Retail Prices API,2025-12-18T04:45:00.742201 +AZURE,westus3,Standard_E64ps_v6,reserved_3y,NA,1.121157,USD,Azure Retail Prices API,2025-12-18T04:45:00.742204 +AZURE,westus3,Standard_E64ps_v6,spot,NA,0.54516,USD,Azure Retail Prices API,2025-12-18T04:44:58.680762 +AZURE,westus3,Standard_E64s_v3,on_demand,NA,3.629,USD,Azure Retail Prices API,2025-12-18T04:44:58.680215 +AZURE,westus3,Standard_E64s_v3,reserved_1y,NA,2.358562,USD,Azure Retail Prices API,2025-12-18T04:45:00.741369 +AZURE,westus3,Standard_E64s_v3,reserved_3y,NA,1.508219,USD,Azure Retail Prices API,2025-12-18T04:45:00.741374 +AZURE,westus3,Standard_E64s_v3,spot,NA,0.670639,USD,Azure Retail Prices API,2025-12-18T04:44:58.680476 +AZURE,westus3,Standard_E64s_v4,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:58.679618 +AZURE,westus3,Standard_E64s_v4,reserved_1y,NA,2.370776,USD,Azure Retail Prices API,2025-12-18T04:45:00.740528 +AZURE,westus3,Standard_E64s_v4,reserved_3y,NA,1.51602,USD,Azure Retail Prices API,2025-12-18T04:45:00.740533 +AZURE,westus3,Standard_E64s_v4,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:44:58.680092 +AZURE,westus3,Standard_E64s_v5,on_demand,NA,4.032,USD,Azure Retail Prices API,2025-12-18T04:44:58.679588 +AZURE,westus3,Standard_E64s_v5,reserved_1y,NA,2.378881,USD,Azure Retail Prices API,2025-12-18T04:45:00.740477 +AZURE,westus3,Standard_E64s_v5,reserved_3y,NA,1.532154,USD,Azure Retail Prices API,2025-12-18T04:45:00.740482 +AZURE,westus3,Standard_E64s_v5,spot,NA,0.745114,USD,Azure Retail Prices API,2025-12-18T04:44:58.680129 +AZURE,westus3,Standard_E80ids_v4,on_demand,NA,5.76,USD,Azure Retail Prices API,2025-12-18T04:44:58.681049 +AZURE,westus3,Standard_E80ids_v4,reserved_1y,NA,3.385845,USD,Azure Retail Prices API,2025-12-18T04:45:00.742432 +AZURE,westus3,Standard_E80ids_v4,reserved_3y,NA,2.165906,USD,Azure Retail Prices API,2025-12-18T04:45:00.742435 +AZURE,westus3,Standard_E80ids_v4,spot,NA,1.067328,USD,Azure Retail Prices API,2025-12-18T04:44:58.681098 +AZURE,westus3,Standard_E80is_v4,on_demand,NA,5.04,USD,Azure Retail Prices API,2025-12-18T04:44:58.680164 +AZURE,westus3,Standard_E80is_v4,reserved_1y,NA,2.96347,USD,Azure Retail Prices API,2025-12-18T04:45:00.741300 +AZURE,westus3,Standard_E80is_v4,reserved_3y,NA,1.894977,USD,Azure Retail Prices API,2025-12-18T04:45:00.741305 +AZURE,westus3,Standard_E80is_v4,spot,NA,0.931392,USD,Azure Retail Prices API,2025-12-18T04:44:58.679946 +AZURE,westus3,Standard_E8_v3,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:58.680319 +AZURE,westus3,Standard_E8_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:45:00.741500 +AZURE,westus3,Standard_E8_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:45:00.741505 +AZURE,westus3,Standard_E8_v3,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:58.680567 +AZURE,westus3,Standard_E8a_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:58.679741 +AZURE,westus3,Standard_E8a_v4,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:45:00.740731 +AZURE,westus3,Standard_E8a_v4,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:45:00.740736 +AZURE,westus3,Standard_E8a_v4,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:58.681076 +AZURE,westus3,Standard_E8ads_v5,on_demand,NA,0.524,USD,Azure Retail Prices API,2025-12-18T04:44:58.680640 +AZURE,westus3,Standard_E8ads_v5,reserved_1y,NA,0.309132,USD,Azure Retail Prices API,2025-12-18T04:45:00.741915 +AZURE,westus3,Standard_E8ads_v5,reserved_3y,NA,0.199125,USD,Azure Retail Prices API,2025-12-18T04:45:00.741918 +AZURE,westus3,Standard_E8ads_v5,spot,NA,0.096835,USD,Azure Retail Prices API,2025-12-18T04:44:58.680268 +AZURE,westus3,Standard_E8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:58.679641 +AZURE,westus3,Standard_E8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:45:00.740568 +AZURE,westus3,Standard_E8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:45:00.740574 +AZURE,westus3,Standard_E8ads_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:44:58.680174 +AZURE,westus3,Standard_E8as_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:58.680922 +AZURE,westus3,Standard_E8as_v4,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:45:00.742283 +AZURE,westus3,Standard_E8as_v4,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:45:00.742287 +AZURE,westus3,Standard_E8as_v4,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:58.680451 +AZURE,westus3,Standard_E8as_v5,on_demand,NA,0.452,USD,Azure Retail Prices API,2025-12-18T04:44:58.680298 +AZURE,westus3,Standard_E8as_v5,reserved_1y,NA,0.266667,USD,Azure Retail Prices API,2025-12-18T04:45:00.741457 +AZURE,westus3,Standard_E8as_v5,reserved_3y,NA,0.171766,USD,Azure Retail Prices API,2025-12-18T04:45:00.741462 +AZURE,westus3,Standard_E8as_v5,spot,NA,0.08353,USD,Azure Retail Prices API,2025-12-18T04:44:58.680411 +AZURE,westus3,Standard_E8d_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:58.680544 +AZURE,westus3,Standard_E8d_v4,reserved_1y,NA,0.338699,USD,Azure Retail Prices API,2025-12-18T04:45:00.741774 +AZURE,westus3,Standard_E8d_v4,reserved_3y,NA,0.216591,USD,Azure Retail Prices API,2025-12-18T04:45:00.741777 +AZURE,westus3,Standard_E8d_v4,spot,NA,0.106733,USD,Azure Retail Prices API,2025-12-18T04:44:58.680899 +AZURE,westus3,Standard_E8ds_v4,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:58.680852 +AZURE,westus3,Standard_E8ds_v4,reserved_1y,NA,0.338699,USD,Azure Retail Prices API,2025-12-18T04:45:00.742182 +AZURE,westus3,Standard_E8ds_v4,reserved_3y,NA,0.216591,USD,Azure Retail Prices API,2025-12-18T04:45:00.742185 +AZURE,westus3,Standard_E8ds_v4,spot,NA,0.106733,USD,Azure Retail Prices API,2025-12-18T04:44:58.680949 +AZURE,westus3,Standard_E8ds_v5,on_demand,NA,0.576,USD,Azure Retail Prices API,2025-12-18T04:44:58.680602 +AZURE,westus3,Standard_E8ds_v5,reserved_1y,NA,0.33984,USD,Azure Retail Prices API,2025-12-18T04:45:00.741858 +AZURE,westus3,Standard_E8ds_v5,reserved_3y,NA,0.218874,USD,Azure Retail Prices API,2025-12-18T04:45:00.741861 +AZURE,westus3,Standard_E8ds_v5,spot,NA,0.106733,USD,Azure Retail Prices API,2025-12-18T04:44:58.680095 +AZURE,westus3,Standard_E8ds_v6,on_demand,NA,0.654,USD,Azure Retail Prices API,2025-12-18T04:44:58.680339 +AZURE,westus3,Standard_E8ds_v6,reserved_1y,NA,0.405479,USD,Azure Retail Prices API,2025-12-18T04:45:00.741532 +AZURE,westus3,Standard_E8ds_v6,reserved_3y,NA,0.255099,USD,Azure Retail Prices API,2025-12-18T04:45:00.741535 +AZURE,westus3,Standard_E8ds_v6,spot,NA,0.120859,USD,Azure Retail Prices API,2025-12-18T04:44:58.680832 +AZURE,westus3,Standard_E8pds_v6,on_demand,NA,0.468,USD,Azure Retail Prices API,2025-12-18T04:44:58.680731 +AZURE,westus3,Standard_E8pds_v6,reserved_1y,NA,0.276142,USD,Azure Retail Prices API,2025-12-18T04:45:00.741987 +AZURE,westus3,Standard_E8pds_v6,reserved_3y,NA,0.177854,USD,Azure Retail Prices API,2025-12-18T04:45:00.741991 +AZURE,westus3,Standard_E8pds_v6,spot,NA,0.086486,USD,Azure Retail Prices API,2025-12-18T04:44:58.680336 +AZURE,westus3,Standard_E8ps_v6,on_demand,NA,0.369,USD,Azure Retail Prices API,2025-12-18T04:44:58.680861 +AZURE,westus3,Standard_E8ps_v6,reserved_1y,NA,0.21758,USD,Azure Retail Prices API,2025-12-18T04:45:00.742194 +AZURE,westus3,Standard_E8ps_v6,reserved_3y,NA,0.140145,USD,Azure Retail Prices API,2025-12-18T04:45:00.742198 +AZURE,westus3,Standard_E8ps_v6,spot,NA,0.068191,USD,Azure Retail Prices API,2025-12-18T04:44:58.680999 +AZURE,westus3,Standard_E8s_v3,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:58.680733 +AZURE,westus3,Standard_E8s_v3,reserved_1y,NA,0.312785,USD,Azure Retail Prices API,2025-12-18T04:45:00.741994 +AZURE,westus3,Standard_E8s_v3,reserved_3y,NA,0.200038,USD,Azure Retail Prices API,2025-12-18T04:45:00.741997 +AZURE,westus3,Standard_E8s_v3,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:58.680532 +AZURE,westus3,Standard_E8s_v4,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:58.680779 +AZURE,westus3,Standard_E8s_v4,reserved_1y,NA,0.296347,USD,Azure Retail Prices API,2025-12-18T04:45:00.742080 +AZURE,westus3,Standard_E8s_v4,reserved_3y,NA,0.189498,USD,Azure Retail Prices API,2025-12-18T04:45:00.742085 +AZURE,westus3,Standard_E8s_v4,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:58.680186 +AZURE,westus3,Standard_E8s_v5,on_demand,NA,0.504,USD,Azure Retail Prices API,2025-12-18T04:44:58.680141 +AZURE,westus3,Standard_E8s_v5,reserved_1y,NA,0.297374,USD,Azure Retail Prices API,2025-12-18T04:45:00.741261 +AZURE,westus3,Standard_E8s_v5,reserved_3y,NA,0.191514,USD,Azure Retail Prices API,2025-12-18T04:45:00.741266 +AZURE,westus3,Standard_E8s_v5,spot,NA,0.093139,USD,Azure Retail Prices API,2025-12-18T04:44:58.680558 +AZURE,westus3,Standard_E96a_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:58.680170 +AZURE,westus3,Standard_E96a_v4,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:00.741310 +AZURE,westus3,Standard_E96a_v4,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:45:00.741315 +AZURE,westus3,Standard_E96a_v4,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:44:58.679493 +AZURE,westus3,Standard_E96ads_v5,on_demand,NA,10.704,USD,Azure Retail Prices API,2025-12-18T04:44:58.679646 +AZURE,westus3,Standard_E96ads_v5,reserved_1y,NA,3.709932,USD,Azure Retail Prices API,2025-12-18T04:45:00.742384 +AZURE,westus3,Standard_E96ads_v5,reserved_3y,NA,2.389422,USD,Azure Retail Prices API,2025-12-18T04:45:00.742389 +AZURE,westus3,Standard_E96ads_v5,spot,NA,1.162022,USD,Azure Retail Prices API,2025-12-18T04:44:58.680535 +AZURE,westus3,Standard_E96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:44:58.680473 +AZURE,westus3,Standard_E96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:45:00.741712 +AZURE,westus3,Standard_E96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:45:00.741715 +AZURE,westus3,Standard_E96ads_v6,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:44:58.680704 +AZURE,westus3,Standard_E96as_v4,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:58.680555 +AZURE,westus3,Standard_E96as_v4,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:00.741793 +AZURE,westus3,Standard_E96as_v4,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:45:00.741795 +AZURE,westus3,Standard_E96as_v4,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:44:58.680255 +AZURE,westus3,Standard_E96as_v5,on_demand,NA,5.424,USD,Azure Retail Prices API,2025-12-18T04:44:58.680431 +AZURE,westus3,Standard_E96as_v5,reserved_1y,NA,3.200114,USD,Azure Retail Prices API,2025-12-18T04:45:00.741648 +AZURE,westus3,Standard_E96as_v5,reserved_3y,NA,2.061111,USD,Azure Retail Prices API,2025-12-18T04:45:00.741653 +AZURE,westus3,Standard_E96as_v5,spot,NA,1.002355,USD,Azure Retail Prices API,2025-12-18T04:44:58.679889 +AZURE,westus3,Standard_E96ds_v5,on_demand,NA,6.912,USD,Azure Retail Prices API,2025-12-18T04:44:58.680938 +AZURE,westus3,Standard_E96ds_v5,reserved_1y,NA,4.078082,USD,Azure Retail Prices API,2025-12-18T04:45:00.742297 +AZURE,westus3,Standard_E96ds_v5,reserved_3y,NA,2.62656,USD,Azure Retail Prices API,2025-12-18T04:45:00.742300 +AZURE,westus3,Standard_E96ds_v5,spot,NA,1.280794,USD,Azure Retail Prices API,2025-12-18T04:44:58.679969 +AZURE,westus3,Standard_E96ds_v6,on_demand,NA,7.849,USD,Azure Retail Prices API,2025-12-18T04:44:58.680799 +AZURE,westus3,Standard_E96ds_v6,reserved_1y,NA,4.866324,USD,Azure Retail Prices API,2025-12-18T04:45:00.742113 +AZURE,westus3,Standard_E96ds_v6,reserved_3y,NA,3.061111,USD,Azure Retail Prices API,2025-12-18T04:45:00.742118 +AZURE,westus3,Standard_E96ds_v6,spot,NA,1.450495,USD,Azure Retail Prices API,2025-12-18T04:44:58.679515 +AZURE,westus3,Standard_E96pds_v6,on_demand,NA,5.616,USD,Azure Retail Prices API,2025-12-18T04:44:58.680524 +AZURE,westus3,Standard_E96pds_v6,reserved_1y,NA,3.31347,USD,Azure Retail Prices API,2025-12-18T04:45:00.741762 +AZURE,westus3,Standard_E96pds_v6,reserved_3y,NA,2.134094,USD,Azure Retail Prices API,2025-12-18T04:45:00.741765 +AZURE,westus3,Standard_E96pds_v6,spot,NA,1.037837,USD,Azure Retail Prices API,2025-12-18T04:44:58.680634 +AZURE,westus3,Standard_E96ps_v6,on_demand,NA,4.426,USD,Azure Retail Prices API,2025-12-18T04:44:58.680245 +AZURE,westus3,Standard_E96ps_v6,reserved_1y,NA,2.611073,USD,Azure Retail Prices API,2025-12-18T04:45:00.741399 +AZURE,westus3,Standard_E96ps_v6,reserved_3y,NA,1.681735,USD,Azure Retail Prices API,2025-12-18T04:45:00.741404 +AZURE,westus3,Standard_E96ps_v6,spot,NA,0.817925,USD,Azure Retail Prices API,2025-12-18T04:44:58.679827 +AZURE,westus3,Standard_E96s_v5,on_demand,NA,6.048,USD,Azure Retail Prices API,2025-12-18T04:44:58.679508 +AZURE,westus3,Standard_E96s_v5,reserved_1y,NA,3.568265,USD,Azure Retail Prices API,2025-12-18T04:45:00.740384 +AZURE,westus3,Standard_E96s_v5,reserved_3y,NA,2.29825,USD,Azure Retail Prices API,2025-12-18T04:45:00.740388 +AZURE,westus3,Standard_E96s_v5,spot,NA,1.11767,USD,Azure Retail Prices API,2025-12-18T04:44:58.680552 +AZURE,westus3,Standard_EC16ads_v6,on_demand,NA,1.162,USD,Azure Retail Prices API,2025-12-18T04:44:58.679744 +AZURE,westus3,Standard_EC16ads_v6,reserved_1y,NA,0.685388,USD,Azure Retail Prices API,2025-12-18T04:45:00.740740 +AZURE,westus3,Standard_EC16ads_v6,reserved_3y,NA,0.4414,USD,Azure Retail Prices API,2025-12-18T04:45:00.740745 +AZURE,westus3,Standard_EC16ads_v6,spot,NA,0.214738,USD,Azure Retail Prices API,2025-12-18T04:44:58.680643 +AZURE,westus3,Standard_EC16as_v6,on_demand,NA,0.954,USD,Azure Retail Prices API,2025-12-18T04:44:58.680698 +AZURE,westus3,Standard_EC16as_v6,reserved_1y,NA,0.562671,USD,Azure Retail Prices API,2025-12-18T04:45:00.741975 +AZURE,westus3,Standard_EC16as_v6,reserved_3y,NA,0.362367,USD,Azure Retail Prices API,2025-12-18T04:45:00.741978 +AZURE,westus3,Standard_EC16as_v6,spot,NA,0.176299,USD,Azure Retail Prices API,2025-12-18T04:44:58.680581 +AZURE,westus3,Standard_EC2ads_v6,on_demand,NA,0.145,USD,Azure Retail Prices API,2025-12-18T04:44:58.679501 +AZURE,westus3,Standard_EC2ads_v6,reserved_1y,NA,0.085616,USD,Azure Retail Prices API,2025-12-18T04:45:00.740364 +AZURE,westus3,Standard_EC2ads_v6,reserved_3y,NA,0.055175,USD,Azure Retail Prices API,2025-12-18T04:45:00.740369 +AZURE,westus3,Standard_EC2ads_v6,spot,NA,0.026796,USD,Azure Retail Prices API,2025-12-18T04:44:58.680722 +AZURE,westus3,Standard_EC2as_v6,on_demand,NA,0.119,USD,Azure Retail Prices API,2025-12-18T04:44:58.679477 +AZURE,westus3,Standard_EC2as_v6,reserved_1y,NA,0.07032,USD,Azure Retail Prices API,2025-12-18T04:45:00.740334 +AZURE,westus3,Standard_EC2as_v6,reserved_3y,NA,0.045282,USD,Azure Retail Prices API,2025-12-18T04:45:00.740338 +AZURE,westus3,Standard_EC2as_v6,spot,NA,0.021991,USD,Azure Retail Prices API,2025-12-18T04:44:58.680796 +AZURE,westus3,Standard_EC32ads_v6,on_demand,NA,2.323,USD,Azure Retail Prices API,2025-12-18T04:44:58.679950 +AZURE,westus3,Standard_EC32ads_v6,reserved_1y,NA,1.370662,USD,Azure Retail Prices API,2025-12-18T04:45:00.740978 +AZURE,westus3,Standard_EC32ads_v6,reserved_3y,NA,0.882801,USD,Azure Retail Prices API,2025-12-18T04:45:00.740983 +AZURE,westus3,Standard_EC32ads_v6,spot,NA,0.42929,USD,Azure Retail Prices API,2025-12-18T04:44:58.680265 +AZURE,westus3,Standard_EC32as_v6,on_demand,NA,1.907,USD,Azure Retail Prices API,2025-12-18T04:44:58.680495 +AZURE,westus3,Standard_EC32as_v6,reserved_1y,NA,1.125228,USD,Azure Retail Prices API,2025-12-18T04:45:00.741731 +AZURE,westus3,Standard_EC32as_v6,reserved_3y,NA,0.724734,USD,Azure Retail Prices API,2025-12-18T04:45:00.741734 +AZURE,westus3,Standard_EC32as_v6,spot,NA,0.352414,USD,Azure Retail Prices API,2025-12-18T04:44:58.679747 +AZURE,westus3,Standard_EC48ads_v6,on_demand,NA,3.485,USD,Azure Retail Prices API,2025-12-18T04:44:58.679824 +AZURE,westus3,Standard_EC48ads_v6,reserved_1y,NA,2.05605,USD,Azure Retail Prices API,2025-12-18T04:45:00.740810 +AZURE,westus3,Standard_EC48ads_v6,reserved_3y,NA,1.324239,USD,Azure Retail Prices API,2025-12-18T04:45:00.740815 +AZURE,westus3,Standard_EC48ads_v6,spot,NA,0.644028,USD,Azure Retail Prices API,2025-12-18T04:44:58.681010 +AZURE,westus3,Standard_EC48as_v6,on_demand,NA,2.861,USD,Azure Retail Prices API,2025-12-18T04:44:58.681041 +AZURE,westus3,Standard_EC48as_v6,reserved_1y,NA,1.6879,USD,Azure Retail Prices API,2025-12-18T04:45:00.742419 +AZURE,westus3,Standard_EC48as_v6,reserved_3y,NA,1.0871,USD,Azure Retail Prices API,2025-12-18T04:45:00.742422 +AZURE,westus3,Standard_EC48as_v6,spot,NA,0.528713,USD,Azure Retail Prices API,2025-12-18T04:44:58.679496 +AZURE,westus3,Standard_EC4ads_v6,on_demand,NA,0.29,USD,Azure Retail Prices API,2025-12-18T04:44:58.680161 +AZURE,westus3,Standard_EC4ads_v6,reserved_1y,NA,0.171347,USD,Azure Retail Prices API,2025-12-18T04:45:00.741290 +AZURE,westus3,Standard_EC4ads_v6,reserved_3y,NA,0.11035,USD,Azure Retail Prices API,2025-12-18T04:45:00.741296 +AZURE,westus3,Standard_EC4ads_v6,spot,NA,0.053592,USD,Azure Retail Prices API,2025-12-18T04:44:58.680042 +AZURE,westus3,Standard_EC4as_v6,on_demand,NA,0.238,USD,Azure Retail Prices API,2025-12-18T04:44:58.680082 +AZURE,westus3,Standard_EC4as_v6,reserved_1y,NA,0.140639,USD,Azure Retail Prices API,2025-12-18T04:45:00.741199 +AZURE,westus3,Standard_EC4as_v6,reserved_3y,NA,0.090601,USD,Azure Retail Prices API,2025-12-18T04:45:00.741204 +AZURE,westus3,Standard_EC4as_v6,spot,NA,0.043982,USD,Azure Retail Prices API,2025-12-18T04:44:58.681068 +AZURE,westus3,Standard_EC64ads_v6,on_demand,NA,4.646,USD,Azure Retail Prices API,2025-12-18T04:44:58.680026 +AZURE,westus3,Standard_EC64ads_v6,reserved_1y,NA,2.741324,USD,Azure Retail Prices API,2025-12-18T04:45:00.741068 +AZURE,westus3,Standard_EC64ads_v6,reserved_3y,NA,1.765639,USD,Azure Retail Prices API,2025-12-18T04:45:00.741073 +AZURE,westus3,Standard_EC64ads_v6,spot,NA,0.858581,USD,Azure Retail Prices API,2025-12-18T04:44:58.680901 +AZURE,westus3,Standard_EC64as_v6,on_demand,NA,3.814,USD,Azure Retail Prices API,2025-12-18T04:44:58.681107 +AZURE,westus3,Standard_EC64as_v6,reserved_1y,NA,2.250457,USD,Azure Retail Prices API,2025-12-18T04:45:00.742474 +AZURE,westus3,Standard_EC64as_v6,reserved_3y,NA,1.449467,USD,Azure Retail Prices API,2025-12-18T04:45:00.742477 +AZURE,westus3,Standard_EC64as_v6,spot,NA,0.704827,USD,Azure Retail Prices API,2025-12-18T04:44:58.680877 +AZURE,westus3,Standard_EC8ads_v6,on_demand,NA,0.581,USD,Azure Retail Prices API,2025-12-18T04:44:58.679735 +AZURE,westus3,Standard_EC8ads_v6,reserved_1y,NA,0.342694,USD,Azure Retail Prices API,2025-12-18T04:45:00.740720 +AZURE,westus3,Standard_EC8ads_v6,reserved_3y,NA,0.2207,USD,Azure Retail Prices API,2025-12-18T04:45:00.740725 +AZURE,westus3,Standard_EC8ads_v6,spot,NA,0.107369,USD,Azure Retail Prices API,2025-12-18T04:44:58.680719 +AZURE,westus3,Standard_EC8as_v6,on_demand,NA,0.477,USD,Azure Retail Prices API,2025-12-18T04:44:58.680849 +AZURE,westus3,Standard_EC8as_v6,reserved_1y,NA,0.281279,USD,Azure Retail Prices API,2025-12-18T04:45:00.742175 +AZURE,westus3,Standard_EC8as_v6,reserved_3y,NA,0.181202,USD,Azure Retail Prices API,2025-12-18T04:45:00.742178 +AZURE,westus3,Standard_EC8as_v6,spot,NA,0.08815,USD,Azure Retail Prices API,2025-12-18T04:44:58.679850 +AZURE,westus3,Standard_EC96ads_v6,on_demand,NA,6.97,USD,Azure Retail Prices API,2025-12-18T04:44:58.680456 +AZURE,westus3,Standard_EC96ads_v6,reserved_1y,NA,4.1121,USD,Azure Retail Prices API,2025-12-18T04:45:00.741700 +AZURE,westus3,Standard_EC96ads_v6,reserved_3y,NA,2.64844,USD,Azure Retail Prices API,2025-12-18T04:45:00.741703 +AZURE,westus3,Standard_EC96ads_v6,spot,NA,1.288056,USD,Azure Retail Prices API,2025-12-18T04:44:58.680459 +AZURE,westus3,Standard_EC96as_v6,on_demand,NA,5.722,USD,Azure Retail Prices API,2025-12-18T04:44:58.680742 +AZURE,westus3,Standard_EC96as_v6,reserved_1y,NA,3.375799,USD,Azure Retail Prices API,2025-12-18T04:45:00.741999 +AZURE,westus3,Standard_EC96as_v6,reserved_3y,NA,2.174201,USD,Azure Retail Prices API,2025-12-18T04:45:00.742002 +AZURE,westus3,Standard_EC96as_v6,spot,NA,1.057426,USD,Azure Retail Prices API,2025-12-18T04:44:58.680757 +AZURE,westus3,Standard_F16,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379288 +AZURE,westus3,Standard_F16,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379296 +AZURE,westus3,Standard_F16,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379301 +AZURE,westus3,Standard_F16,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.379292 +AZURE,westus3,Standard_F16s,on_demand,NA,0.9702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381598 +AZURE,westus3,Standard_F16s,reserved_1y,NA,0.58212,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381606 +AZURE,westus3,Standard_F16s,reserved_3y,NA,0.38808,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381611 +AZURE,westus3,Standard_F16s,spot,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.381602 +AZURE,westus3,Standard_F16s_v2,on_demand,NA,0.8232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384287 +AZURE,westus3,Standard_F16s_v2,reserved_1y,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384300 +AZURE,westus3,Standard_F16s_v2,reserved_3y,NA,0.32928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384307 +AZURE,westus3,Standard_F16s_v2,spot,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.384294 +AZURE,westus3,Standard_F32s_v2,on_demand,NA,1.6464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385064 +AZURE,westus3,Standard_F32s_v2,reserved_1y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385074 +AZURE,westus3,Standard_F32s_v2,reserved_3y,NA,0.65856,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385078 +AZURE,westus3,Standard_F32s_v2,spot,NA,0.49392,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385069 +AZURE,westus3,Standard_F4,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377657 +AZURE,westus3,Standard_F4,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377666 +AZURE,westus3,Standard_F4,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377670 +AZURE,westus3,Standard_F4,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.377662 +AZURE,westus3,Standard_F48s_v2,on_demand,NA,2.4696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385895 +AZURE,westus3,Standard_F48s_v2,reserved_1y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385905 +AZURE,westus3,Standard_F48s_v2,reserved_3y,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385909 +AZURE,westus3,Standard_F48s_v2,spot,NA,0.74088,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.385901 +AZURE,westus3,Standard_F4s,on_demand,NA,0.24255,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380036 +AZURE,westus3,Standard_F4s,reserved_1y,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380051 +AZURE,westus3,Standard_F4s,reserved_3y,NA,0.09702,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380058 +AZURE,westus3,Standard_F4s,spot,NA,0.072765,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380042 +AZURE,westus3,Standard_F4s_v2,on_demand,NA,0.2058,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382353 +AZURE,westus3,Standard_F4s_v2,reserved_1y,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382361 +AZURE,westus3,Standard_F4s_v2,reserved_3y,NA,0.08232,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382365 +AZURE,westus3,Standard_F4s_v2,spot,NA,0.06174,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.382357 +AZURE,westus3,Standard_F64s_v2,on_demand,NA,3.2928,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386685 +AZURE,westus3,Standard_F64s_v2,reserved_1y,NA,1.97568,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386693 +AZURE,westus3,Standard_F64s_v2,reserved_3y,NA,1.31712,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386697 +AZURE,westus3,Standard_F64s_v2,spot,NA,0.98784,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.386689 +AZURE,westus3,Standard_F72s_v2,on_demand,NA,3.7044,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387461 +AZURE,westus3,Standard_F72s_v2,reserved_1y,NA,2.22264,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387473 +AZURE,westus3,Standard_F72s_v2,reserved_3y,NA,1.48176,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387477 +AZURE,westus3,Standard_F72s_v2,spot,NA,1.11132,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.387465 +AZURE,westus3,Standard_F8,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378475 +AZURE,westus3,Standard_F8,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378483 +AZURE,westus3,Standard_F8,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378487 +AZURE,westus3,Standard_F8,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.378479 +AZURE,westus3,Standard_F8s,on_demand,NA,0.4851,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380752 +AZURE,westus3,Standard_F8s,reserved_1y,NA,0.29106,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380761 +AZURE,westus3,Standard_F8s,reserved_3y,NA,0.19404,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380766 +AZURE,westus3,Standard_F8s,spot,NA,0.14553,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.380757 +AZURE,westus3,Standard_F8s_v2,on_demand,NA,0.4116,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383485 +AZURE,westus3,Standard_F8s_v2,reserved_1y,NA,0.24696,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383494 +AZURE,westus3,Standard_F8s_v2,reserved_3y,NA,0.16464,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383498 +AZURE,westus3,Standard_F8s_v2,spot,NA,0.12348,USD,"Manual - Azure Databricks pricing (Linux, southeastasia)",2025-12-18T04:47:23.383490 +AZURE,westus3,Standard_L16as_v3,on_demand,NA,1.248,USD,Azure Retail Prices API,2025-12-18T04:44:58.680941 +AZURE,westus3,Standard_L16as_v3,reserved_1y,NA,0.798744,USD,Azure Retail Prices API,2025-12-18T04:45:00.742304 +AZURE,westus3,Standard_L16as_v3,reserved_3y,NA,0.524163,USD,Azure Retail Prices API,2025-12-18T04:45:00.742307 +AZURE,westus3,Standard_L16as_v3,spot,NA,0.23063,USD,Azure Retail Prices API,2025-12-18T04:44:58.679558 +AZURE,westus3,Standard_L16s_v3,on_demand,NA,1.396,USD,Azure Retail Prices API,2025-12-18T04:44:58.679868 +AZURE,westus3,Standard_L16s_v3,reserved_1y,NA,0.893493,USD,Azure Retail Prices API,2025-12-18T04:45:00.740879 +AZURE,westus3,Standard_L16s_v3,reserved_3y,NA,0.586301,USD,Azure Retail Prices API,2025-12-18T04:45:00.740886 +AZURE,westus3,Standard_L16s_v3,spot,NA,0.258818,USD,Azure Retail Prices API,2025-12-18T04:44:58.680310 +AZURE,westus3,Standard_L32as_v3,on_demand,NA,2.496,USD,Azure Retail Prices API,2025-12-18T04:44:58.679448 +AZURE,westus3,Standard_L32as_v3,reserved_1y,NA,1.597489,USD,Azure Retail Prices API,2025-12-18T04:45:00.740252 +AZURE,westus3,Standard_L32as_v3,reserved_3y,NA,1.048326,USD,Azure Retail Prices API,2025-12-18T04:45:00.740269 +AZURE,westus3,Standard_L32as_v3,spot,NA,0.461261,USD,Azure Retail Prices API,2025-12-18T04:44:58.680071 +AZURE,westus3,Standard_L32s_v3,on_demand,NA,2.792,USD,Azure Retail Prices API,2025-12-18T04:44:58.680301 +AZURE,westus3,Standard_L32s_v3,reserved_1y,NA,1.786872,USD,Azure Retail Prices API,2025-12-18T04:45:00.741467 +AZURE,westus3,Standard_L32s_v3,reserved_3y,NA,1.172641,USD,Azure Retail Prices API,2025-12-18T04:45:00.741472 +AZURE,westus3,Standard_L32s_v3,spot,NA,0.517637,USD,Azure Retail Prices API,2025-12-18T04:44:58.680710 +AZURE,westus3,Standard_L48as_v3,on_demand,NA,3.744,USD,Azure Retail Prices API,2025-12-18T04:44:58.680356 +AZURE,westus3,Standard_L48as_v3,reserved_1y,NA,2.396119,USD,Azure Retail Prices API,2025-12-18T04:45:00.741564 +AZURE,westus3,Standard_L48as_v3,reserved_3y,NA,1.572489,USD,Azure Retail Prices API,2025-12-18T04:45:00.741568 +AZURE,westus3,Standard_L48as_v3,spot,NA,0.691891,USD,Azure Retail Prices API,2025-12-18T04:44:58.680304 +AZURE,westus3,Standard_L48s_v3,on_demand,NA,4.188,USD,Azure Retail Prices API,2025-12-18T04:44:58.680030 +AZURE,westus3,Standard_L48s_v3,reserved_1y,NA,2.680365,USD,Azure Retail Prices API,2025-12-18T04:45:00.741078 +AZURE,westus3,Standard_L48s_v3,reserved_3y,NA,1.758942,USD,Azure Retail Prices API,2025-12-18T04:45:00.741084 +AZURE,westus3,Standard_L48s_v3,spot,NA,0.776455,USD,Azure Retail Prices API,2025-12-18T04:44:58.680135 +AZURE,westus3,Standard_L64as_v3,on_demand,NA,4.992,USD,Azure Retail Prices API,2025-12-18T04:44:58.680045 +AZURE,westus3,Standard_L64as_v3,reserved_1y,NA,3.194863,USD,Azure Retail Prices API,2025-12-18T04:45:00.741111 +AZURE,westus3,Standard_L64as_v3,reserved_3y,NA,2.096651,USD,Azure Retail Prices API,2025-12-18T04:45:00.741116 +AZURE,westus3,Standard_L64as_v3,spot,NA,0.922522,USD,Azure Retail Prices API,2025-12-18T04:44:58.680157 +AZURE,westus3,Standard_L64s_v3,on_demand,NA,5.584,USD,Azure Retail Prices API,2025-12-18T04:44:58.680841 +AZURE,westus3,Standard_L64s_v3,reserved_1y,NA,3.573744,USD,Azure Retail Prices API,2025-12-18T04:45:00.742162 +AZURE,westus3,Standard_L64s_v3,reserved_3y,NA,2.345282,USD,Azure Retail Prices API,2025-12-18T04:45:00.742166 +AZURE,westus3,Standard_L64s_v3,spot,NA,1.035274,USD,Azure Retail Prices API,2025-12-18T04:44:58.680442 +AZURE,westus3,Standard_L80as_v3,on_demand,NA,6.24,USD,Azure Retail Prices API,2025-12-18T04:44:58.680437 +AZURE,westus3,Standard_L80as_v3,reserved_1y,NA,3.993607,USD,Azure Retail Prices API,2025-12-18T04:45:00.741668 +AZURE,westus3,Standard_L80as_v3,reserved_3y,NA,2.620814,USD,Azure Retail Prices API,2025-12-18T04:45:00.741672 +AZURE,westus3,Standard_L80as_v3,spot,NA,1.153152,USD,Azure Retail Prices API,2025-12-18T04:44:58.680462 +AZURE,westus3,Standard_L80s_v3,on_demand,NA,6.98,USD,Azure Retail Prices API,2025-12-18T04:44:58.680512 +AZURE,westus3,Standard_L80s_v3,reserved_1y,NA,4.467237,USD,Azure Retail Prices API,2025-12-18T04:45:00.741749 +AZURE,westus3,Standard_L80s_v3,reserved_3y,NA,2.931583,USD,Azure Retail Prices API,2025-12-18T04:45:00.741752 +AZURE,westus3,Standard_L80s_v3,spot,NA,1.294092,USD,Azure Retail Prices API,2025-12-18T04:44:58.680965 +AZURE,westus3,Standard_L8as_v3,on_demand,NA,0.624,USD,Azure Retail Prices API,2025-12-18T04:44:58.680771 +AZURE,westus3,Standard_L8as_v3,reserved_1y,NA,0.399315,USD,Azure Retail Prices API,2025-12-18T04:45:00.742035 +AZURE,westus3,Standard_L8as_v3,reserved_3y,NA,0.262062,USD,Azure Retail Prices API,2025-12-18T04:45:00.742042 +AZURE,westus3,Standard_L8as_v3,spot,NA,0.115315,USD,Azure Retail Prices API,2025-12-18T04:44:58.680196 +AZURE,westus3,Standard_L8s_v3,on_demand,NA,0.698,USD,Azure Retail Prices API,2025-12-18T04:44:58.680385 +AZURE,westus3,Standard_L8s_v3,reserved_1y,NA,0.446689,USD,Azure Retail Prices API,2025-12-18T04:45:00.741601 +AZURE,westus3,Standard_L8s_v3,reserved_3y,NA,0.293151,USD,Azure Retail Prices API,2025-12-18T04:45:00.741604 +AZURE,westus3,Standard_L8s_v3,spot,NA,0.129409,USD,Azure Retail Prices API,2025-12-18T04:44:58.680048 +AZURE,westus3,Standard_NC12s_v3,on_demand,NA,6.12,USD,Azure Retail Prices API,2025-12-18T04:44:58.679700 +AZURE,westus3,Standard_NC12s_v3,spot,NA,1.130976,USD,Azure Retail Prices API,2025-12-18T04:44:58.680001 +AZURE,westus3,Standard_NC16as_T4_v3,on_demand,NA,1.204,USD,Azure Retail Prices API,2025-12-18T04:44:58.679962 +AZURE,westus3,Standard_NC16as_T4_v3,reserved_1y,NA,0.707991,USD,Azure Retail Prices API,2025-12-18T04:45:00.740998 +AZURE,westus3,Standard_NC16as_T4_v3,reserved_3y,NA,0.452702,USD,Azure Retail Prices API,2025-12-18T04:45:00.741003 +AZURE,westus3,Standard_NC16as_T4_v3,spot,NA,0.34916,USD,Azure Retail Prices API,2025-12-18T04:44:58.680350 +AZURE,westus3,Standard_NC24ads_A100_v4,on_demand,NA,3.673,USD,Azure Retail Prices API,2025-12-18T04:44:58.679468 +AZURE,westus3,Standard_NC24ads_A100_v4,reserved_1y,NA,2.401027,USD,Azure Retail Prices API,2025-12-18T04:45:00.740307 +AZURE,westus3,Standard_NC24ads_A100_v4,reserved_3y,NA,1.363052,USD,Azure Retail Prices API,2025-12-18T04:45:00.740313 +AZURE,westus3,Standard_NC24ads_A100_v4,spot,NA,1.247351,USD,Azure Retail Prices API,2025-12-18T04:44:58.679758 +AZURE,westus3,Standard_NC24s_v3,on_demand,NA,12.24,USD,Azure Retail Prices API,2025-12-18T04:44:58.680820 +AZURE,westus3,Standard_NC24s_v3,spot,NA,2.261952,USD,Azure Retail Prices API,2025-12-18T04:44:58.680202 +AZURE,westus3,Standard_NC40ads_H100_v5,on_demand,NA,6.98,USD,Azure Retail Prices API,2025-12-18T04:44:58.680371 +AZURE,westus3,Standard_NC40ads_H100_v5,reserved_1y,NA,5.235046,USD,Azure Retail Prices API,2025-12-18T04:45:00.741583 +AZURE,westus3,Standard_NC40ads_H100_v5,reserved_3y,NA,3.839003,USD,Azure Retail Prices API,2025-12-18T04:45:00.741586 +AZURE,westus3,Standard_NC40ads_H100_v5,spot,NA,2.415778,USD,Azure Retail Prices API,2025-12-18T04:44:58.680069 +AZURE,westus3,Standard_NC48ads_A100_v4,on_demand,NA,7.346,USD,Azure Retail Prices API,2025-12-18T04:44:58.680154 +AZURE,westus3,Standard_NC48ads_A100_v4,reserved_1y,NA,4.802055,USD,Azure Retail Prices API,2025-12-18T04:45:00.741280 +AZURE,westus3,Standard_NC48ads_A100_v4,reserved_3y,NA,2.726104,USD,Azure Retail Prices API,2025-12-18T04:45:00.741285 +AZURE,westus3,Standard_NC48ads_A100_v4,spot,NA,2.494702,USD,Azure Retail Prices API,2025-12-18T04:44:58.679953 +AZURE,westus3,Standard_NC4as_T4_v3,on_demand,NA,0.526,USD,Azure Retail Prices API,2025-12-18T04:44:58.679940 +AZURE,westus3,Standard_NC4as_T4_v3,reserved_1y,NA,0.309247,USD,Azure Retail Prices API,2025-12-18T04:45:00.740957 +AZURE,westus3,Standard_NC4as_T4_v3,reserved_3y,NA,0.197793,USD,Azure Retail Prices API,2025-12-18T04:45:00.740962 +AZURE,westus3,Standard_NC4as_T4_v3,spot,NA,0.15254,USD,Azure Retail Prices API,2025-12-18T04:44:58.680396 +AZURE,westus3,Standard_NC64as_T4_v3,on_demand,NA,4.352,USD,Azure Retail Prices API,2025-12-18T04:44:58.680604 +AZURE,westus3,Standard_NC64as_T4_v3,reserved_1y,NA,2.559018,USD,Azure Retail Prices API,2025-12-18T04:45:00.741864 +AZURE,westus3,Standard_NC64as_T4_v3,reserved_3y,NA,1.636339,USD,Azure Retail Prices API,2025-12-18T04:45:00.741867 +AZURE,westus3,Standard_NC64as_T4_v3,spot,NA,1.26208,USD,Azure Retail Prices API,2025-12-18T04:44:58.679638 +AZURE,westus3,Standard_NC6s_v3,on_demand,NA,3.06,USD,Azure Retail Prices API,2025-12-18T04:44:58.680408 +AZURE,westus3,Standard_NC6s_v3,spot,NA,0.565488,USD,Azure Retail Prices API,2025-12-18T04:44:58.679738 +AZURE,westus3,Standard_NC8as_T4_v3,on_demand,NA,0.752,USD,Azure Retail Prices API,2025-12-18T04:44:58.679833 +AZURE,westus3,Standard_NC8as_T4_v3,reserved_1y,NA,0.442123,USD,Azure Retail Prices API,2025-12-18T04:45:00.740820 +AZURE,westus3,Standard_NC8as_T4_v3,reserved_3y,NA,0.282763,USD,Azure Retail Prices API,2025-12-18T04:45:00.740826 +AZURE,westus3,Standard_NC8as_T4_v3,spot,NA,0.21808,USD,Azure Retail Prices API,2025-12-18T04:44:58.679630 +AZURE,westus3,Standard_NC96ads_A100_v4,on_demand,NA,14.692,USD,Azure Retail Prices API,2025-12-18T04:44:58.681007 +AZURE,westus3,Standard_NC96ads_A100_v4,reserved_1y,NA,9.60411,USD,Azure Retail Prices API,2025-12-18T04:45:00.742400 +AZURE,westus3,Standard_NC96ads_A100_v4,reserved_3y,NA,5.452207,USD,Azure Retail Prices API,2025-12-18T04:45:00.742403 +AZURE,westus3,Standard_NC96ads_A100_v4,spot,NA,4.989403,USD,Azure Retail Prices API,2025-12-18T04:44:58.679659 +AZURE,westus3,Standard_ND96isr_H100_v5,on_demand,NA,1722566.0,USD,Azure Retail Prices API,2025-12-18T04:45:00.740329 +AZURE,westus3,Standard_ND96isr_H100_v5,reserved_1y,NA,62.924772,USD,Azure Retail Prices API,2025-12-18T04:45:00.740318 +AZURE,westus3,Standard_ND96isr_H100_v5,reserved_3y,NA,43.162481,USD,Azure Retail Prices API,2025-12-18T04:45:00.740323 +AZURE,westus3,Standard_ND96isr_H100_v5,spot,NA,18.169536,USD,Azure Retail Prices API,2025-12-18T04:44:58.680791 +AZURE,westus3,Standard_NV36adms_A10_v5,on_demand,NA,4.52,USD,Azure Retail Prices API,2025-12-18T04:44:58.681055 +AZURE,westus3,Standard_NV36adms_A10_v5,reserved_1y,NA,2.892808,USD,Azure Retail Prices API,2025-12-18T04:45:00.742439 +AZURE,westus3,Standard_NV36adms_A10_v5,reserved_3y,NA,1.988813,USD,Azure Retail Prices API,2025-12-18T04:45:00.742442 +AZURE,westus3,Standard_NV36adms_A10_v5,spot,NA,0.835296,USD,Azure Retail Prices API,2025-12-18T04:44:58.680952 +AZURE,westus3,Standard_NV36ads_A10_v5,on_demand,NA,3.2,USD,Azure Retail Prices API,2025-12-18T04:44:58.679711 +AZURE,westus3,Standard_NV36ads_A10_v5,reserved_1y,NA,2.047945,USD,Azure Retail Prices API,2025-12-18T04:45:00.740668 +AZURE,westus3,Standard_NV36ads_A10_v5,reserved_3y,NA,1.407991,USD,Azure Retail Prices API,2025-12-18T04:45:00.740672 +AZURE,westus3,Standard_NV36ads_A10_v5,spot,NA,0.59136,USD,Azure Retail Prices API,2025-12-18T04:44:58.680707 +AZURE,westus3,Standard_NV72ads_A10_v5,on_demand,NA,6.52,USD,Azure Retail Prices API,2025-12-18T04:44:58.680467 +AZURE,westus3,Standard_NV72ads_A10_v5,reserved_1y,NA,4.172831,USD,Azure Retail Prices API,2025-12-18T04:45:00.741706 +AZURE,westus3,Standard_NV72ads_A10_v5,reserved_3y,NA,2.868798,USD,Azure Retail Prices API,2025-12-18T04:45:00.741709 +AZURE,westus3,Standard_NV72ads_A10_v5,spot,NA,1.204896,USD,Azure Retail Prices API,2025-12-18T04:44:58.681082 +GCP,asia-northeast1,a2-highgpu-1g,on_demand,NA,0.728695,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770878 +GCP,asia-northeast1,a2-highgpu-1g,reserved_1y,NA,0.597229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770905 +GCP,asia-northeast1,a2-highgpu-1g,reserved_3y,NA,0.331842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770930 +GCP,asia-northeast1,a2-highgpu-1g,spot,NA,0.361045,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770891 +GCP,asia-northeast1,a2-highgpu-2g,on_demand,NA,1.45739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771960 +GCP,asia-northeast1,a2-highgpu-2g,reserved_1y,NA,1.194458,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771990 +GCP,asia-northeast1,a2-highgpu-2g,reserved_3y,NA,0.663683,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772004 +GCP,asia-northeast1,a2-highgpu-2g,spot,NA,0.72209,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771975 +GCP,asia-northeast1,a2-highgpu-4g,on_demand,NA,2.91478,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773075 +GCP,asia-northeast1,a2-highgpu-4g,reserved_1y,NA,2.388915,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773104 +GCP,asia-northeast1,a2-highgpu-4g,reserved_3y,NA,1.327366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773118 +GCP,asia-northeast1,a2-highgpu-4g,spot,NA,1.44418,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773089 +GCP,asia-northeast1,a2-highgpu-8g,on_demand,NA,5.82956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774198 +GCP,asia-northeast1,a2-highgpu-8g,reserved_1y,NA,4.77783,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774226 +GCP,asia-northeast1,a2-highgpu-8g,reserved_3y,NA,2.654732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774240 +GCP,asia-northeast1,a2-highgpu-8g,spot,NA,2.88836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774212 +GCP,asia-northeast1,a2-megagpu-16g,on_demand,NA,9.51448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775295 +GCP,asia-northeast1,a2-megagpu-16g,reserved_1y,NA,7.099078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775322 +GCP,asia-northeast1,a2-megagpu-16g,reserved_3y,NA,3.944692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775336 +GCP,asia-northeast1,a2-megagpu-16g,spot,NA,4.29256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775309 +GCP,asia-northeast1,a2-ultragpu-1g,on_demand,NA,1.18931,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776392 +GCP,asia-northeast1,a2-ultragpu-1g,reserved_1y,NA,0.887385,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776419 +GCP,asia-northeast1,a2-ultragpu-1g,reserved_3y,NA,0.493087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776433 +GCP,asia-northeast1,a2-ultragpu-1g,spot,NA,0.53657,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776405 +GCP,asia-northeast1,a2-ultragpu-2g,on_demand,NA,2.37862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777512 +GCP,asia-northeast1,a2-ultragpu-2g,reserved_1y,NA,1.77477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777541 +GCP,asia-northeast1,a2-ultragpu-2g,reserved_3y,NA,0.986173,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777555 +GCP,asia-northeast1,a2-ultragpu-2g,spot,NA,1.07314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777526 +GCP,asia-northeast1,a2-ultragpu-4g,on_demand,NA,4.75724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778556 +GCP,asia-northeast1,a2-ultragpu-4g,reserved_1y,NA,3.549539,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778584 +GCP,asia-northeast1,a2-ultragpu-4g,reserved_3y,NA,1.972346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778598 +GCP,asia-northeast1,a2-ultragpu-4g,spot,NA,2.14628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778570 +GCP,asia-northeast1,a2-ultragpu-8g,on_demand,NA,9.51448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779608 +GCP,asia-northeast1,a2-ultragpu-8g,reserved_1y,NA,7.099078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779635 +GCP,asia-northeast1,a2-ultragpu-8g,reserved_3y,NA,3.944692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779649 +GCP,asia-northeast1,a2-ultragpu-8g,spot,NA,4.29256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779621 +GCP,asia-northeast1,a3-highgpu-1g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780718 +GCP,asia-northeast1,a3-highgpu-1g,reserved_1y,NA,1.056087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780746 +GCP,asia-northeast1,a3-highgpu-1g,reserved_3y,NA,0.669277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780760 +GCP,asia-northeast1,a3-highgpu-1g,spot,NA,0.273182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780732 +GCP,asia-northeast1,a3-highgpu-2g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781766 +GCP,asia-northeast1,a3-highgpu-2g,reserved_1y,NA,1.056087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781794 +GCP,asia-northeast1,a3-highgpu-2g,reserved_3y,NA,0.669277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781808 +GCP,asia-northeast1,a3-highgpu-2g,spot,NA,0.273182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781780 +GCP,asia-northeast1,a3-highgpu-4g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782848 +GCP,asia-northeast1,a3-highgpu-4g,reserved_1y,NA,1.056087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782876 +GCP,asia-northeast1,a3-highgpu-4g,reserved_3y,NA,0.669277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782890 +GCP,asia-northeast1,a3-highgpu-4g,spot,NA,0.273182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782862 +GCP,asia-northeast1,a3-highgpu-8g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783946 +GCP,asia-northeast1,a3-highgpu-8g,reserved_1y,NA,1.056087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783974 +GCP,asia-northeast1,a3-highgpu-8g,reserved_3y,NA,0.669277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783987 +GCP,asia-northeast1,a3-highgpu-8g,spot,NA,0.273182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783960 +GCP,asia-northeast1,c2-standard-16,on_demand,NA,0.9328,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721867 +GCP,asia-northeast1,c2-standard-16,reserved_1y,NA,0.587664,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721915 +GCP,asia-northeast1,c2-standard-16,reserved_3y,NA,0.419776,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721938 +GCP,asia-northeast1,c2-standard-16,spot,NA,0.179968,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721893 +GCP,asia-northeast1,c2-standard-30,on_demand,NA,1.749,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723550 +GCP,asia-northeast1,c2-standard-30,reserved_1y,NA,1.10187,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723595 +GCP,asia-northeast1,c2-standard-30,reserved_3y,NA,0.78708,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723618 +GCP,asia-northeast1,c2-standard-30,spot,NA,0.33744,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723572 +GCP,asia-northeast1,c2-standard-4,on_demand,NA,0.2332,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718281 +GCP,asia-northeast1,c2-standard-4,reserved_1y,NA,0.146916,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718328 +GCP,asia-northeast1,c2-standard-4,reserved_3y,NA,0.104944,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718352 +GCP,asia-northeast1,c2-standard-4,spot,NA,0.044992,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718305 +GCP,asia-northeast1,c2-standard-60,on_demand,NA,3.498,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725286 +GCP,asia-northeast1,c2-standard-60,reserved_1y,NA,2.20374,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725332 +GCP,asia-northeast1,c2-standard-60,reserved_3y,NA,1.57416,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725355 +GCP,asia-northeast1,c2-standard-60,spot,NA,0.67488,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725309 +GCP,asia-northeast1,c2-standard-8,on_demand,NA,0.4664,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720160 +GCP,asia-northeast1,c2-standard-8,reserved_1y,NA,0.293832,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720206 +GCP,asia-northeast1,c2-standard-8,reserved_3y,NA,0.209888,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720229 +GCP,asia-northeast1,c2-standard-8,spot,NA,0.089984,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720183 +GCP,asia-northeast1,c3-highmem-22,on_demand,NA,1.869009,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800850 +GCP,asia-northeast1,c3-highmem-22,reserved_1y,NA,1.177504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800877 +GCP,asia-northeast1,c3-highmem-22,reserved_3y,NA,0.841045,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800890 +GCP,asia-northeast1,c3-highmem-22,spot,NA,0.190212,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800863 +GCP,asia-northeast1,c3-highmem-4,on_demand,NA,0.33982,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798774 +GCP,asia-northeast1,c3-highmem-4,reserved_1y,NA,0.214092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798802 +GCP,asia-northeast1,c3-highmem-4,reserved_3y,NA,0.152917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798816 +GCP,asia-northeast1,c3-highmem-4,spot,NA,0.034584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798788 +GCP,asia-northeast1,c3-highmem-44,on_demand,NA,3.738019,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801860 +GCP,asia-northeast1,c3-highmem-44,reserved_1y,NA,2.355007,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801893 +GCP,asia-northeast1,c3-highmem-44,reserved_3y,NA,1.682091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801906 +GCP,asia-northeast1,c3-highmem-44,spot,NA,0.380424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801878 +GCP,asia-northeast1,c3-highmem-8,on_demand,NA,0.67964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799823 +GCP,asia-northeast1,c3-highmem-8,reserved_1y,NA,0.428183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799850 +GCP,asia-northeast1,c3-highmem-8,reserved_3y,NA,0.305835,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799890 +GCP,asia-northeast1,c3-highmem-8,spot,NA,0.069168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799836 +GCP,asia-northeast1,c3-highmem-88,on_demand,NA,7.476037,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802886 +GCP,asia-northeast1,c3-highmem-88,reserved_1y,NA,4.710014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802922 +GCP,asia-northeast1,c3-highmem-88,reserved_3y,NA,3.364181,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802936 +GCP,asia-northeast1,c3-highmem-88,spot,NA,0.760848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802899 +GCP,asia-northeast1,c3-standard-22 (-lssd),on_demand,NA,1.423977,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795566 +GCP,asia-northeast1,c3-standard-22 (-lssd),reserved_1y,NA,0.897127,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795594 +GCP,asia-northeast1,c3-standard-22 (-lssd),reserved_3y,NA,0.640792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795608 +GCP,asia-northeast1,c3-standard-22 (-lssd),spot,NA,0.140756,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795580 +GCP,asia-northeast1,c3-standard-4 (-lssd),on_demand,NA,0.258905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793457 +GCP,asia-northeast1,c3-standard-4 (-lssd),reserved_1y,NA,0.163114,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793485 +GCP,asia-northeast1,c3-standard-4 (-lssd),reserved_3y,NA,0.116508,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793499 +GCP,asia-northeast1,c3-standard-4 (-lssd),spot,NA,0.025592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793470 +GCP,asia-northeast1,c3-standard-44 (-lssd),on_demand,NA,2.847955,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796669 +GCP,asia-northeast1,c3-standard-44 (-lssd),reserved_1y,NA,1.794254,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796697 +GCP,asia-northeast1,c3-standard-44 (-lssd),reserved_3y,NA,1.281585,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796713 +GCP,asia-northeast1,c3-standard-44 (-lssd),spot,NA,0.281512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796683 +GCP,asia-northeast1,c3-standard-8 (-lssd),on_demand,NA,0.51781,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794497 +GCP,asia-northeast1,c3-standard-8 (-lssd),reserved_1y,NA,0.326228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794526 +GCP,asia-northeast1,c3-standard-8 (-lssd),reserved_3y,NA,0.233015,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794539 +GCP,asia-northeast1,c3-standard-8 (-lssd),spot,NA,0.051184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794513 +GCP,asia-northeast1,c3-standard-88 (-lssd),on_demand,NA,5.69591,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797727 +GCP,asia-northeast1,c3-standard-88 (-lssd),reserved_1y,NA,3.588507,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797755 +GCP,asia-northeast1,c3-standard-88 (-lssd),reserved_3y,NA,2.56317,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797769 +GCP,asia-northeast1,c3-standard-88 (-lssd),spot,NA,0.563024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797741 +GCP,asia-northeast1,c3d-highmem-16 (-lssd),on_demand,NA,0.125821,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814658 +GCP,asia-northeast1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.792629,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814687 +GCP,asia-northeast1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.566096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814701 +GCP,asia-northeast1,c3d-highmem-16 (-lssd),spot,NA,0.427872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814672 +GCP,asia-northeast1,c3d-highmem-180 (-lssd),on_demand,NA,1.415483,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818838 +GCP,asia-northeast1,c3d-highmem-180 (-lssd),reserved_1y,NA,8.917074,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818865 +GCP,asia-northeast1,c3d-highmem-180 (-lssd),reserved_3y,NA,6.368578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818879 +GCP,asia-northeast1,c3d-highmem-180 (-lssd),spot,NA,4.81356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818851 +GCP,asia-northeast1,c3d-highmem-30 (-lssd),on_demand,NA,0.235914,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815716 +GCP,asia-northeast1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.486179,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815743 +GCP,asia-northeast1,c3d-highmem-30 (-lssd),reserved_3y,NA,1.06143,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815757 +GCP,asia-northeast1,c3d-highmem-30 (-lssd),spot,NA,0.80226,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815730 +GCP,asia-northeast1,c3d-highmem-360 (-lssd),on_demand,NA,2.830965,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819887 +GCP,asia-northeast1,c3d-highmem-360 (-lssd),reserved_1y,NA,17.834148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819915 +GCP,asia-northeast1,c3d-highmem-360 (-lssd),reserved_3y,NA,12.737156,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819929 +GCP,asia-northeast1,c3d-highmem-360 (-lssd),spot,NA,9.62712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819901 +GCP,asia-northeast1,c3d-highmem-4 (-lssd),on_demand,NA,0.031455,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812403 +GCP,asia-northeast1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.198157,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812430 +GCP,asia-northeast1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.141524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812444 +GCP,asia-northeast1,c3d-highmem-4 (-lssd),spot,NA,0.106968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812417 +GCP,asia-northeast1,c3d-highmem-60 (-lssd),on_demand,NA,0.471828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816772 +GCP,asia-northeast1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.972358,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816800 +GCP,asia-northeast1,c3d-highmem-60 (-lssd),reserved_3y,NA,2.122859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816814 +GCP,asia-northeast1,c3d-highmem-60 (-lssd),spot,NA,1.60452,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816786 +GCP,asia-northeast1,c3d-highmem-8 (-lssd),on_demand,NA,0.06291,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813444 +GCP,asia-northeast1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.396314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813472 +GCP,asia-northeast1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.283048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813486 +GCP,asia-northeast1,c3d-highmem-8 (-lssd),spot,NA,0.213936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813458 +GCP,asia-northeast1,c3d-highmem-90 (-lssd),on_demand,NA,0.707741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817807 +GCP,asia-northeast1,c3d-highmem-90 (-lssd),reserved_1y,NA,4.458537,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817835 +GCP,asia-northeast1,c3d-highmem-90 (-lssd),reserved_3y,NA,3.184289,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817849 +GCP,asia-northeast1,c3d-highmem-90 (-lssd),spot,NA,2.40678,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817821 +GCP,asia-northeast1,c3d-standard-16 (-lssd),on_demand,NA,0.093282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806031 +GCP,asia-northeast1,c3d-standard-16 (-lssd),reserved_1y,NA,0.58765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806061 +GCP,asia-northeast1,c3d-standard-16 (-lssd),reserved_3y,NA,0.419718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806075 +GCP,asia-northeast1,c3d-standard-16 (-lssd),spot,NA,0.317216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806048 +GCP,asia-northeast1,c3d-standard-180 (-lssd),on_demand,NA,1.049424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810285 +GCP,asia-northeast1,c3d-standard-180 (-lssd),reserved_1y,NA,6.611062,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810313 +GCP,asia-northeast1,c3d-standard-180 (-lssd),reserved_3y,NA,4.721823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810327 +GCP,asia-northeast1,c3d-standard-180 (-lssd),spot,NA,3.56868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810299 +GCP,asia-northeast1,c3d-standard-30 (-lssd),on_demand,NA,0.174904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807101 +GCP,asia-northeast1,c3d-standard-30 (-lssd),reserved_1y,NA,1.101844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807129 +GCP,asia-northeast1,c3d-standard-30 (-lssd),reserved_3y,NA,0.786971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807144 +GCP,asia-northeast1,c3d-standard-30 (-lssd),spot,NA,0.59478,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807115 +GCP,asia-northeast1,c3d-standard-360 (-lssd),on_demand,NA,2.098849,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811341 +GCP,asia-northeast1,c3d-standard-360 (-lssd),reserved_1y,NA,13.222123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811370 +GCP,asia-northeast1,c3d-standard-360 (-lssd),reserved_3y,NA,9.443646,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811384 +GCP,asia-northeast1,c3d-standard-360 (-lssd),spot,NA,7.13736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811355 +GCP,asia-northeast1,c3d-standard-4 (-lssd),on_demand,NA,0.023321,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803978 +GCP,asia-northeast1,c3d-standard-4 (-lssd),reserved_1y,NA,0.146912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804005 +GCP,asia-northeast1,c3d-standard-4 (-lssd),reserved_3y,NA,0.104929,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804023 +GCP,asia-northeast1,c3d-standard-4 (-lssd),spot,NA,0.079304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803991 +GCP,asia-northeast1,c3d-standard-60 (-lssd),on_demand,NA,0.349808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808173 +GCP,asia-northeast1,c3d-standard-60 (-lssd),reserved_1y,NA,2.203687,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808201 +GCP,asia-northeast1,c3d-standard-60 (-lssd),reserved_3y,NA,1.573941,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808215 +GCP,asia-northeast1,c3d-standard-60 (-lssd),spot,NA,1.18956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808187 +GCP,asia-northeast1,c3d-standard-8 (-lssd),on_demand,NA,0.046641,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805002 +GCP,asia-northeast1,c3d-standard-8 (-lssd),reserved_1y,NA,0.293825,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805028 +GCP,asia-northeast1,c3d-standard-8 (-lssd),reserved_3y,NA,0.209859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805042 +GCP,asia-northeast1,c3d-standard-8 (-lssd),spot,NA,0.158608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805015 +GCP,asia-northeast1,c3d-standard-90 (-lssd),on_demand,NA,0.524712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809231 +GCP,asia-northeast1,c3d-standard-90 (-lssd),reserved_1y,NA,3.305531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809259 +GCP,asia-northeast1,c3d-standard-90 (-lssd),reserved_3y,NA,2.360911,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809273 +GCP,asia-northeast1,c3d-standard-90 (-lssd),spot,NA,1.78434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809245 +GCP,asia-northeast1,c4-standard-16,on_demand,NA,0.101539,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841261 +GCP,asia-northeast1,c4-standard-16,reserved_1y,NA,0.639711,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841288 +GCP,asia-northeast1,c4-standard-16,reserved_3y,NA,0.456929,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841302 +GCP,asia-northeast1,c4-standard-16,spot,NA,0.40612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841274 +GCP,asia-northeast1,c4-standard-2,on_demand,NA,0.01244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837927 +GCP,asia-northeast1,c4-standard-2,reserved_1y,NA,0.078371,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837955 +GCP,asia-northeast1,c4-standard-2,reserved_3y,NA,0.055978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837970 +GCP,asia-northeast1,c4-standard-2,spot,NA,0.049754,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837942 +GCP,asia-northeast1,c4-standard-24,on_demand,NA,0.152309,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842339 +GCP,asia-northeast1,c4-standard-24,reserved_1y,NA,0.959567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842367 +GCP,asia-northeast1,c4-standard-24,reserved_3y,NA,0.685393,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842380 +GCP,asia-northeast1,c4-standard-24,spot,NA,0.60918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842353 +GCP,asia-northeast1,c4-standard-32,on_demand,NA,0.203078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843510 +GCP,asia-northeast1,c4-standard-32,reserved_1y,NA,1.279423,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843539 +GCP,asia-northeast1,c4-standard-32,reserved_3y,NA,0.913857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843554 +GCP,asia-northeast1,c4-standard-32,spot,NA,0.81224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843525 +GCP,asia-northeast1,c4-standard-4,on_demand,NA,0.025385,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839033 +GCP,asia-northeast1,c4-standard-4,reserved_1y,NA,0.159928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839060 +GCP,asia-northeast1,c4-standard-4,reserved_3y,NA,0.114232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839073 +GCP,asia-northeast1,c4-standard-4,spot,NA,0.10153,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839046 +GCP,asia-northeast1,c4-standard-8,on_demand,NA,0.05077,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840175 +GCP,asia-northeast1,c4-standard-8,reserved_1y,NA,0.319856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840204 +GCP,asia-northeast1,c4-standard-8,reserved_3y,NA,0.228464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840218 +GCP,asia-northeast1,c4-standard-8,spot,NA,0.20306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840190 +GCP,asia-northeast1,c4a-highmem-16 (-lssd),on_demand,NA,1.211052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832026 +GCP,asia-northeast1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.798258,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832054 +GCP,asia-northeast1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.545117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832068 +GCP,asia-northeast1,c4a-highmem-16 (-lssd),spot,NA,0.483729,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832040 +GCP,asia-northeast1,c4a-highmem-32 (-lssd),on_demand,NA,2.422103,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833243 +GCP,asia-northeast1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.596517,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833270 +GCP,asia-northeast1,c4a-highmem-32 (-lssd),reserved_3y,NA,1.090234,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833284 +GCP,asia-northeast1,c4a-highmem-32 (-lssd),spot,NA,0.967457,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833256 +GCP,asia-northeast1,c4a-highmem-4 (-lssd),on_demand,NA,0.302763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829559 +GCP,asia-northeast1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.199565,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829586 +GCP,asia-northeast1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.136279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829600 +GCP,asia-northeast1,c4a-highmem-4 (-lssd),spot,NA,0.120932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829572 +GCP,asia-northeast1,c4a-highmem-48 (-lssd),on_demand,NA,3.633155,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834459 +GCP,asia-northeast1,c4a-highmem-48 (-lssd),reserved_1y,NA,2.394775,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834485 +GCP,asia-northeast1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.635351,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834498 +GCP,asia-northeast1,c4a-highmem-48 (-lssd),spot,NA,1.451186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834472 +GCP,asia-northeast1,c4a-highmem-64 (-lssd),on_demand,NA,4.844207,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835620 +GCP,asia-northeast1,c4a-highmem-64 (-lssd),reserved_1y,NA,3.193034,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835647 +GCP,asia-northeast1,c4a-highmem-64 (-lssd),reserved_3y,NA,2.180468,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835660 +GCP,asia-northeast1,c4a-highmem-64 (-lssd),spot,NA,1.934915,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835634 +GCP,asia-northeast1,c4a-highmem-72 (-lssd),on_demand,NA,5.449733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836796 +GCP,asia-northeast1,c4a-highmem-72 (-lssd),reserved_1y,NA,3.592163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836822 +GCP,asia-northeast1,c4a-highmem-72 (-lssd),reserved_3y,NA,2.453027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836835 +GCP,asia-northeast1,c4a-highmem-72 (-lssd),spot,NA,2.176779,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836809 +GCP,asia-northeast1,c4a-highmem-8 (-lssd),on_demand,NA,0.605526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830782 +GCP,asia-northeast1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.399129,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830809 +GCP,asia-northeast1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.272559,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830822 +GCP,asia-northeast1,c4a-highmem-8 (-lssd),spot,NA,0.241864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830795 +GCP,asia-northeast1,c4a-standard-16 (-lssd),on_demand,NA,0.922569,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823473 +GCP,asia-northeast1,c4a-standard-16 (-lssd),reserved_1y,NA,0.608402,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823501 +GCP,asia-northeast1,c4a-standard-16 (-lssd),reserved_3y,NA,0.415259,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823515 +GCP,asia-northeast1,c4a-standard-16 (-lssd),spot,NA,0.368664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823487 +GCP,asia-northeast1,c4a-standard-32 (-lssd),on_demand,NA,1.845138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824719 +GCP,asia-northeast1,c4a-standard-32 (-lssd),reserved_1y,NA,1.216805,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824746 +GCP,asia-northeast1,c4a-standard-32 (-lssd),reserved_3y,NA,0.830517,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824760 +GCP,asia-northeast1,c4a-standard-32 (-lssd),spot,NA,0.737329,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824733 +GCP,asia-northeast1,c4a-standard-4 (-lssd),on_demand,NA,0.230642,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821015 +GCP,asia-northeast1,c4a-standard-4 (-lssd),reserved_1y,NA,0.152101,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821042 +GCP,asia-northeast1,c4a-standard-4 (-lssd),reserved_3y,NA,0.103815,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821056 +GCP,asia-northeast1,c4a-standard-4 (-lssd),spot,NA,0.092166,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821029 +GCP,asia-northeast1,c4a-standard-48 (-lssd),on_demand,NA,2.767707,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825942 +GCP,asia-northeast1,c4a-standard-48 (-lssd),reserved_1y,NA,1.825207,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825970 +GCP,asia-northeast1,c4a-standard-48 (-lssd),reserved_3y,NA,1.245776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825984 +GCP,asia-northeast1,c4a-standard-48 (-lssd),spot,NA,1.105993,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825956 +GCP,asia-northeast1,c4a-standard-64 (-lssd),on_demand,NA,3.690276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827167 +GCP,asia-northeast1,c4a-standard-64 (-lssd),reserved_1y,NA,2.43361,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827195 +GCP,asia-northeast1,c4a-standard-64 (-lssd),reserved_3y,NA,1.661034,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827209 +GCP,asia-northeast1,c4a-standard-64 (-lssd),spot,NA,1.474657,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827181 +GCP,asia-northeast1,c4a-standard-72 (-lssd),on_demand,NA,4.151561,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828372 +GCP,asia-northeast1,c4a-standard-72 (-lssd),reserved_1y,NA,2.737811,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828399 +GCP,asia-northeast1,c4a-standard-72 (-lssd),reserved_3y,NA,1.868664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828413 +GCP,asia-northeast1,c4a-standard-72 (-lssd),spot,NA,1.658989,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828385 +GCP,asia-northeast1,c4a-standard-8 (-lssd),on_demand,NA,0.461285,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822242 +GCP,asia-northeast1,c4a-standard-8 (-lssd),reserved_1y,NA,0.304201,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822270 +GCP,asia-northeast1,c4a-standard-8 (-lssd),reserved_3y,NA,0.207629,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822284 +GCP,asia-northeast1,c4a-standard-8 (-lssd),spot,NA,0.184332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822256 +GCP,asia-northeast1,c4d-standard-16,on_demand,NA,0.09503,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848632 +GCP,asia-northeast1,c4d-standard-16,reserved_1y,NA,0.59868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848662 +GCP,asia-northeast1,c4d-standard-16,reserved_3y,NA,0.427628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848676 +GCP,asia-northeast1,c4d-standard-16,spot,NA,0.321698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848648 +GCP,asia-northeast1,c4d-standard-2,on_demand,NA,0.011542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844741 +GCP,asia-northeast1,c4d-standard-2,reserved_1y,NA,0.072714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844769 +GCP,asia-northeast1,c4d-standard-2,reserved_3y,NA,0.051938,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844784 +GCP,asia-northeast1,c4d-standard-2,spot,NA,0.039073,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844755 +GCP,asia-northeast1,c4d-standard-32,on_demand,NA,0.190059,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849959 +GCP,asia-northeast1,c4d-standard-32,reserved_1y,NA,1.19736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849986 +GCP,asia-northeast1,c4d-standard-32,reserved_3y,NA,0.855256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.850000 +GCP,asia-northeast1,c4d-standard-32,spot,NA,0.643396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849972 +GCP,asia-northeast1,c4d-standard-4,on_demand,NA,0.023533,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846043 +GCP,asia-northeast1,c4d-standard-4,reserved_1y,NA,0.148256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846071 +GCP,asia-northeast1,c4d-standard-4,reserved_3y,NA,0.105897,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846085 +GCP,asia-northeast1,c4d-standard-4,spot,NA,0.079665,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846057 +GCP,asia-northeast1,c4d-standard-8,on_demand,NA,0.047515,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847313 +GCP,asia-northeast1,c4d-standard-8,reserved_1y,NA,0.29934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847340 +GCP,asia-northeast1,c4d-standard-8,reserved_3y,NA,0.213814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847354 +GCP,asia-northeast1,c4d-standard-8,spot,NA,0.160849,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847327 +GCP,asia-northeast1,e2_highcpu_16,on_demand,NA,0.508248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764444 +GCP,asia-northeast1,e2_highcpu_16,reserved_1y,NA,0.320197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764471 +GCP,asia-northeast1,e2_highcpu_16,reserved_3y,NA,0.228712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764485 +GCP,asia-northeast1,e2_highcpu_16,spot,NA,0.203296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764457 +GCP,asia-northeast1,e2_highcpu_32,on_demand,NA,1.016497,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765479 +GCP,asia-northeast1,e2_highcpu_32,reserved_1y,NA,0.640393,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765507 +GCP,asia-northeast1,e2_highcpu_32,reserved_3y,NA,0.457424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765521 +GCP,asia-northeast1,e2_highcpu_32,spot,NA,0.406592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765493 +GCP,asia-northeast1,e2_highmem_16,on_demand,NA,0.927029,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763335 +GCP,asia-northeast1,e2_highmem_16,reserved_1y,NA,0.584028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763363 +GCP,asia-northeast1,e2_highmem_16,reserved_3y,NA,0.417163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763377 +GCP,asia-northeast1,e2_highmem_16,spot,NA,0.370848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763349 +GCP,asia-northeast1,e2_highmem_2,on_demand,NA,0.115879,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760222 +GCP,asia-northeast1,e2_highmem_2,reserved_1y,NA,0.073004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760251 +GCP,asia-northeast1,e2_highmem_2,reserved_3y,NA,0.052145,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760265 +GCP,asia-northeast1,e2_highmem_2,spot,NA,0.046356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760236 +GCP,asia-northeast1,e2_highmem_4,on_demand,NA,0.231757,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761257 +GCP,asia-northeast1,e2_highmem_4,reserved_1y,NA,0.146007,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761284 +GCP,asia-northeast1,e2_highmem_4,reserved_3y,NA,0.104291,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761298 +GCP,asia-northeast1,e2_highmem_4,spot,NA,0.092712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761271 +GCP,asia-northeast1,e2_highmem_8,on_demand,NA,0.463514,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762285 +GCP,asia-northeast1,e2_highmem_8,reserved_1y,NA,0.292014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762313 +GCP,asia-northeast1,e2_highmem_8,reserved_3y,NA,0.208581,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762327 +GCP,asia-northeast1,e2_highmem_8,spot,NA,0.185424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762299 +GCP,asia-northeast1,e2_standard_16,on_demand,NA,0.687726,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768781 +GCP,asia-northeast1,e2_standard_16,reserved_1y,NA,0.433267,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768810 +GCP,asia-northeast1,e2_standard_16,reserved_3y,NA,0.309477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768825 +GCP,asia-northeast1,e2_standard_16,spot,NA,0.275104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768795 +GCP,asia-northeast1,e2_standard_32,on_demand,NA,1.375452,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769858 +GCP,asia-northeast1,e2_standard_32,reserved_1y,NA,0.866534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769886 +GCP,asia-northeast1,e2_standard_32,reserved_3y,NA,0.618953,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769901 +GCP,asia-northeast1,e2_standard_32,spot,NA,0.550208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769872 +GCP,asia-northeast1,e2_standard_4,on_demand,NA,0.171931,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766690 +GCP,asia-northeast1,e2_standard_4,reserved_1y,NA,0.108317,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766718 +GCP,asia-northeast1,e2_standard_4,reserved_3y,NA,0.077369,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766731 +GCP,asia-northeast1,e2_standard_4,spot,NA,0.068776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766704 +GCP,asia-northeast1,e2_standard_8,on_demand,NA,0.343863,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767738 +GCP,asia-northeast1,e2_standard_8,reserved_1y,NA,0.216634,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767766 +GCP,asia-northeast1,e2_standard_8,reserved_3y,NA,0.154738,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767780 +GCP,asia-northeast1,e2_standard_8,spot,NA,0.137552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767752 +GCP,asia-northeast1,g2-standard-12,on_demand,NA,0.565531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787067 +GCP,asia-northeast1,g2-standard-12,reserved_1y,NA,0.356284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787095 +GCP,asia-northeast1,g2-standard-12,reserved_3y,NA,0.254489,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787109 +GCP,asia-northeast1,g2-standard-12,spot,NA,0.226272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787081 +GCP,asia-northeast1,g2-standard-16,on_demand,NA,0.754041,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788155 +GCP,asia-northeast1,g2-standard-16,reserved_1y,NA,0.475046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788184 +GCP,asia-northeast1,g2-standard-16,reserved_3y,NA,0.339319,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788198 +GCP,asia-northeast1,g2-standard-16,spot,NA,0.301696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788169 +GCP,asia-northeast1,g2-standard-24,on_demand,NA,1.131062,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789195 +GCP,asia-northeast1,g2-standard-24,reserved_1y,NA,0.712569,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789222 +GCP,asia-northeast1,g2-standard-24,reserved_3y,NA,0.508978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789236 +GCP,asia-northeast1,g2-standard-24,spot,NA,0.452544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789208 +GCP,asia-northeast1,g2-standard-32,on_demand,NA,1.508082,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790222 +GCP,asia-northeast1,g2-standard-32,reserved_1y,NA,0.950092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790252 +GCP,asia-northeast1,g2-standard-32,reserved_3y,NA,0.678637,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790265 +GCP,asia-northeast1,g2-standard-32,spot,NA,0.603392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790237 +GCP,asia-northeast1,g2-standard-4,on_demand,NA,0.18851,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784994 +GCP,asia-northeast1,g2-standard-4,reserved_1y,NA,0.118761,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785023 +GCP,asia-northeast1,g2-standard-4,reserved_3y,NA,0.08483,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785037 +GCP,asia-northeast1,g2-standard-4,spot,NA,0.075424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785008 +GCP,asia-northeast1,g2-standard-48,on_demand,NA,2.262124,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791281 +GCP,asia-northeast1,g2-standard-48,reserved_1y,NA,1.425138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791308 +GCP,asia-northeast1,g2-standard-48,reserved_3y,NA,1.017956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791321 +GCP,asia-northeast1,g2-standard-48,spot,NA,0.905088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791295 +GCP,asia-northeast1,g2-standard-8,on_demand,NA,0.377021,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786034 +GCP,asia-northeast1,g2-standard-8,reserved_1y,NA,0.237523,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786061 +GCP,asia-northeast1,g2-standard-8,reserved_3y,NA,0.169659,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786075 +GCP,asia-northeast1,g2-standard-8,spot,NA,0.150848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786048 +GCP,asia-northeast1,g2-standard-96,on_demand,NA,4.524247,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792396 +GCP,asia-northeast1,g2-standard-96,reserved_1y,NA,2.850276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792425 +GCP,asia-northeast1,g2-standard-96,reserved_3y,NA,2.035912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792439 +GCP,asia-northeast1,g2-standard-96,spot,NA,1.810176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792410 +GCP,asia-northeast1,n1-highcpu-16,on_demand,NA,0.728241,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691086 +GCP,asia-northeast1,n1-highcpu-16,spot,NA,0.198926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691100 +GCP,asia-northeast1,n1-highcpu-32,on_demand,NA,1.456481,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691948 +GCP,asia-northeast1,n1-highcpu-32,spot,NA,0.397853,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691962 +GCP,asia-northeast1,n1-highcpu-64,on_demand,NA,2.912963,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692846 +GCP,asia-northeast1,n1-highcpu-64,spot,NA,0.795706,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692860 +GCP,asia-northeast1,n1-highcpu-96,on_demand,NA,4.369444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693682 +GCP,asia-northeast1,n1-highcpu-96,spot,NA,1.193558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693696 +GCP,asia-northeast1,n1-highmem-16,on_demand,NA,1.215768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687562 +GCP,asia-northeast1,n1-highmem-16,spot,NA,0.331624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687577 +GCP,asia-northeast1,n1-highmem-32,on_demand,NA,2.431536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688437 +GCP,asia-northeast1,n1-highmem-32,spot,NA,0.663248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688451 +GCP,asia-northeast1,n1-highmem-4,on_demand,NA,0.303942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685840 +GCP,asia-northeast1,n1-highmem-4,spot,NA,0.082906,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685853 +GCP,asia-northeast1,n1-highmem-64,on_demand,NA,4.863072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689369 +GCP,asia-northeast1,n1-highmem-64,spot,NA,1.326496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689384 +GCP,asia-northeast1,n1-highmem-8,on_demand,NA,0.607884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686647 +GCP,asia-northeast1,n1-highmem-8,spot,NA,0.165812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686661 +GCP,asia-northeast1,n1-highmem-96,on_demand,NA,7.294609,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690261 +GCP,asia-northeast1,n1-highmem-96,spot,NA,1.989744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690275 +GCP,asia-northeast1,n1-standard-16,on_demand,NA,0.976357,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681876 +GCP,asia-northeast1,n1-standard-16,spot,NA,0.26646,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681889 +GCP,asia-northeast1,n1-standard-32,on_demand,NA,1.952715,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682867 +GCP,asia-northeast1,n1-standard-32,spot,NA,0.53292,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682933 +GCP,asia-northeast1,n1-standard-4,on_demand,NA,0.244089,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680137 +GCP,asia-northeast1,n1-standard-4,spot,NA,0.066615,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680151 +GCP,asia-northeast1,n1-standard-64,on_demand,NA,3.905429,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683803 +GCP,asia-northeast1,n1-standard-64,spot,NA,1.06584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683817 +GCP,asia-northeast1,n1-standard-8,on_demand,NA,0.488179,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681021 +GCP,asia-northeast1,n1-standard-8,spot,NA,0.13323,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681035 +GCP,asia-northeast1,n1-standard-96,on_demand,NA,5.858144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684898 +GCP,asia-northeast1,n1-standard-96,spot,NA,1.59876,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684912 +GCP,asia-northeast1,n2-highcpu-16,on_demand,NA,0.736592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711527 +GCP,asia-northeast1,n2-highcpu-16,reserved_1y,NA,0.464048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711555 +GCP,asia-northeast1,n2-highcpu-16,reserved_3y,NA,0.331456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711569 +GCP,asia-northeast1,n2-highcpu-16,spot,NA,0.17536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711541 +GCP,asia-northeast1,n2-highcpu-32,on_demand,NA,1.473184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712637 +GCP,asia-northeast1,n2-highcpu-32,reserved_1y,NA,0.928096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712664 +GCP,asia-northeast1,n2-highcpu-32,reserved_3y,NA,0.662912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712677 +GCP,asia-northeast1,n2-highcpu-32,spot,NA,0.35072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712650 +GCP,asia-northeast1,n2-highcpu-48,on_demand,NA,2.209776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713756 +GCP,asia-northeast1,n2-highcpu-48,reserved_1y,NA,1.392144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713783 +GCP,asia-northeast1,n2-highcpu-48,reserved_3y,NA,0.994368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713797 +GCP,asia-northeast1,n2-highcpu-48,spot,NA,0.52608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713770 +GCP,asia-northeast1,n2-highcpu-64,on_demand,NA,2.946368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714848 +GCP,asia-northeast1,n2-highcpu-64,reserved_1y,NA,1.856192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714876 +GCP,asia-northeast1,n2-highcpu-64,reserved_3y,NA,1.325824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714890 +GCP,asia-northeast1,n2-highcpu-64,spot,NA,0.70144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714862 +GCP,asia-northeast1,n2-highcpu-80,on_demand,NA,3.68296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715960 +GCP,asia-northeast1,n2-highcpu-80,reserved_1y,NA,2.32024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715987 +GCP,asia-northeast1,n2-highcpu-80,reserved_3y,NA,1.65728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716000 +GCP,asia-northeast1,n2-highcpu-80,spot,NA,0.8768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715974 +GCP,asia-northeast1,n2-highmem-16,on_demand,NA,1.34352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705901 +GCP,asia-northeast1,n2-highmem-16,reserved_1y,NA,0.846416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705930 +GCP,asia-northeast1,n2-highmem-16,reserved_3y,NA,0.604512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705959 +GCP,asia-northeast1,n2-highmem-16,spot,NA,0.31984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705915 +GCP,asia-northeast1,n2-highmem-2,on_demand,NA,0.16794,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702558 +GCP,asia-northeast1,n2-highmem-2,reserved_1y,NA,0.105802,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702587 +GCP,asia-northeast1,n2-highmem-2,reserved_3y,NA,0.075564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702601 +GCP,asia-northeast1,n2-highmem-2,spot,NA,0.03998,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702573 +GCP,asia-northeast1,n2-highmem-32,on_demand,NA,2.68704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707034 +GCP,asia-northeast1,n2-highmem-32,reserved_1y,NA,1.692832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707064 +GCP,asia-northeast1,n2-highmem-32,reserved_3y,NA,1.209024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707078 +GCP,asia-northeast1,n2-highmem-32,spot,NA,0.63968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707049 +GCP,asia-northeast1,n2-highmem-4,on_demand,NA,0.33588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703661 +GCP,asia-northeast1,n2-highmem-4,reserved_1y,NA,0.211604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703690 +GCP,asia-northeast1,n2-highmem-4,reserved_3y,NA,0.151128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703705 +GCP,asia-northeast1,n2-highmem-4,spot,NA,0.07996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703676 +GCP,asia-northeast1,n2-highmem-48,on_demand,NA,4.03056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708169 +GCP,asia-northeast1,n2-highmem-48,reserved_1y,NA,2.539248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708197 +GCP,asia-northeast1,n2-highmem-48,reserved_3y,NA,1.813536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708211 +GCP,asia-northeast1,n2-highmem-48,spot,NA,0.95952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708183 +GCP,asia-northeast1,n2-highmem-64,on_demand,NA,5.37408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709265 +GCP,asia-northeast1,n2-highmem-64,reserved_1y,NA,3.385664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709325 +GCP,asia-northeast1,n2-highmem-64,reserved_3y,NA,2.418048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709345 +GCP,asia-northeast1,n2-highmem-64,spot,NA,1.27936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709279 +GCP,asia-northeast1,n2-highmem-8,on_demand,NA,0.67176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704800 +GCP,asia-northeast1,n2-highmem-8,reserved_1y,NA,0.423208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704827 +GCP,asia-northeast1,n2-highmem-8,reserved_3y,NA,0.302256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704841 +GCP,asia-northeast1,n2-highmem-8,spot,NA,0.15992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704814 +GCP,asia-northeast1,n2-highmem-80,on_demand,NA,6.7176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710335 +GCP,asia-northeast1,n2-highmem-80,reserved_1y,NA,4.23208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710423 +GCP,asia-northeast1,n2-highmem-80,reserved_3y,NA,3.02256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710438 +GCP,asia-northeast1,n2-highmem-80,spot,NA,1.5992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710348 +GCP,asia-northeast1,n2-standard-16,on_demand,NA,0.996704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696982 +GCP,asia-northeast1,n2-standard-16,reserved_1y,NA,0.62792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697010 +GCP,asia-northeast1,n2-standard-16,reserved_3y,NA,0.44848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697024 +GCP,asia-northeast1,n2-standard-16,spot,NA,0.23728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696996 +GCP,asia-northeast1,n2-standard-32,on_demand,NA,1.993408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698101 +GCP,asia-northeast1,n2-standard-32,reserved_1y,NA,1.25584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698130 +GCP,asia-northeast1,n2-standard-32,reserved_3y,NA,0.89696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698144 +GCP,asia-northeast1,n2-standard-32,spot,NA,0.47456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698115 +GCP,asia-northeast1,n2-standard-4,on_demand,NA,0.249176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694709 +GCP,asia-northeast1,n2-standard-4,reserved_1y,NA,0.15698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694737 +GCP,asia-northeast1,n2-standard-4,reserved_3y,NA,0.11212,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694751 +GCP,asia-northeast1,n2-standard-4,spot,NA,0.05932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694723 +GCP,asia-northeast1,n2-standard-48,on_demand,NA,2.990112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699236 +GCP,asia-northeast1,n2-standard-48,reserved_1y,NA,1.88376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699265 +GCP,asia-northeast1,n2-standard-48,reserved_3y,NA,1.34544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699279 +GCP,asia-northeast1,n2-standard-48,spot,NA,0.71184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699251 +GCP,asia-northeast1,n2-standard-64,on_demand,NA,3.986816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700335 +GCP,asia-northeast1,n2-standard-64,reserved_1y,NA,2.51168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700363 +GCP,asia-northeast1,n2-standard-64,reserved_3y,NA,1.79392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700377 +GCP,asia-northeast1,n2-standard-64,spot,NA,0.94912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700349 +GCP,asia-northeast1,n2-standard-8,on_demand,NA,0.498352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695822 +GCP,asia-northeast1,n2-standard-8,reserved_1y,NA,0.31396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695851 +GCP,asia-northeast1,n2-standard-8,reserved_3y,NA,0.22424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695908 +GCP,asia-northeast1,n2-standard-8,spot,NA,0.11864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695837 +GCP,asia-northeast1,n2-standard-80,on_demand,NA,4.98352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701463 +GCP,asia-northeast1,n2-standard-80,reserved_1y,NA,3.1396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701491 +GCP,asia-northeast1,n2-standard-80,reserved_3y,NA,2.2424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701504 +GCP,asia-northeast1,n2-standard-80,spot,NA,1.1864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701477 +GCP,asia-northeast1,n2d-highcpu-128,on_demand,NA,5.126784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752872 +GCP,asia-northeast1,n2d-highcpu-128,reserved_1y,NA,3.229696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752899 +GCP,asia-northeast1,n2d-highcpu-128,reserved_3y,NA,2.306944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752913 +GCP,asia-northeast1,n2d-highcpu-128,spot,NA,1.425792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752886 +GCP,asia-northeast1,n2d-highcpu-16,on_demand,NA,0.640848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746565 +GCP,asia-northeast1,n2d-highcpu-16,reserved_1y,NA,0.403712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746592 +GCP,asia-northeast1,n2d-highcpu-16,reserved_3y,NA,0.288368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746606 +GCP,asia-northeast1,n2d-highcpu-16,spot,NA,0.178224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746579 +GCP,asia-northeast1,n2d-highcpu-224,on_demand,NA,8.971872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753895 +GCP,asia-northeast1,n2d-highcpu-224,reserved_1y,NA,5.651968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753923 +GCP,asia-northeast1,n2d-highcpu-224,reserved_3y,NA,4.037152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753936 +GCP,asia-northeast1,n2d-highcpu-224,spot,NA,2.495136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753909 +GCP,asia-northeast1,n2d-highcpu-32,on_demand,NA,1.281696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747615 +GCP,asia-northeast1,n2d-highcpu-32,reserved_1y,NA,0.807424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747644 +GCP,asia-northeast1,n2d-highcpu-32,reserved_3y,NA,0.576736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747659 +GCP,asia-northeast1,n2d-highcpu-32,spot,NA,0.356448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747629 +GCP,asia-northeast1,n2d-highcpu-48,on_demand,NA,1.922544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748682 +GCP,asia-northeast1,n2d-highcpu-48,reserved_1y,NA,1.211136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748710 +GCP,asia-northeast1,n2d-highcpu-48,reserved_3y,NA,0.865104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748724 +GCP,asia-northeast1,n2d-highcpu-48,spot,NA,0.534672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748696 +GCP,asia-northeast1,n2d-highcpu-64,on_demand,NA,2.563392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749726 +GCP,asia-northeast1,n2d-highcpu-64,reserved_1y,NA,1.614848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749754 +GCP,asia-northeast1,n2d-highcpu-64,reserved_3y,NA,1.153472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749768 +GCP,asia-northeast1,n2d-highcpu-64,spot,NA,0.712896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749740 +GCP,asia-northeast1,n2d-highcpu-80,on_demand,NA,3.20424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750773 +GCP,asia-northeast1,n2d-highcpu-80,reserved_1y,NA,2.01856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750802 +GCP,asia-northeast1,n2d-highcpu-80,reserved_3y,NA,1.44184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750816 +GCP,asia-northeast1,n2d-highcpu-80,spot,NA,0.89112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750787 +GCP,asia-northeast1,n2d-highcpu-96,on_demand,NA,3.845088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751820 +GCP,asia-northeast1,n2d-highcpu-96,reserved_1y,NA,2.422272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751848 +GCP,asia-northeast1,n2d-highcpu-96,reserved_3y,NA,1.730208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751879 +GCP,asia-northeast1,n2d-highcpu-96,spot,NA,1.069344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751834 +GCP,asia-northeast1,n2d-highmem-16,on_demand,NA,1.168928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740297 +GCP,asia-northeast1,n2d-highmem-16,reserved_1y,NA,0.736352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740326 +GCP,asia-northeast1,n2d-highmem-16,reserved_3y,NA,0.52592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740340 +GCP,asia-northeast1,n2d-highmem-16,spot,NA,0.324832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740312 +GCP,asia-northeast1,n2d-highmem-2,on_demand,NA,0.146116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737077 +GCP,asia-northeast1,n2d-highmem-2,reserved_1y,NA,0.092044,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737105 +GCP,asia-northeast1,n2d-highmem-2,reserved_3y,NA,0.06574,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737119 +GCP,asia-northeast1,n2d-highmem-2,spot,NA,0.040604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737091 +GCP,asia-northeast1,n2d-highmem-32,on_demand,NA,2.337856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741308 +GCP,asia-northeast1,n2d-highmem-32,reserved_1y,NA,1.472704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741337 +GCP,asia-northeast1,n2d-highmem-32,reserved_3y,NA,1.05184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741351 +GCP,asia-northeast1,n2d-highmem-32,spot,NA,0.649664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741322 +GCP,asia-northeast1,n2d-highmem-4,on_demand,NA,0.292232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738147 +GCP,asia-northeast1,n2d-highmem-4,reserved_1y,NA,0.184088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738177 +GCP,asia-northeast1,n2d-highmem-4,reserved_3y,NA,0.13148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738191 +GCP,asia-northeast1,n2d-highmem-4,spot,NA,0.081208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738162 +GCP,asia-northeast1,n2d-highmem-48,on_demand,NA,3.506784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742388 +GCP,asia-northeast1,n2d-highmem-48,reserved_1y,NA,2.209056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742415 +GCP,asia-northeast1,n2d-highmem-48,reserved_3y,NA,1.57776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742428 +GCP,asia-northeast1,n2d-highmem-48,spot,NA,0.974496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742401 +GCP,asia-northeast1,n2d-highmem-64,on_demand,NA,4.675712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743437 +GCP,asia-northeast1,n2d-highmem-64,reserved_1y,NA,2.945408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743465 +GCP,asia-northeast1,n2d-highmem-64,reserved_3y,NA,2.10368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743480 +GCP,asia-northeast1,n2d-highmem-64,spot,NA,1.299328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743451 +GCP,asia-northeast1,n2d-highmem-8,on_demand,NA,0.584464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739228 +GCP,asia-northeast1,n2d-highmem-8,reserved_1y,NA,0.368176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739256 +GCP,asia-northeast1,n2d-highmem-8,reserved_3y,NA,0.26296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739270 +GCP,asia-northeast1,n2d-highmem-8,spot,NA,0.162416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739242 +GCP,asia-northeast1,n2d-highmem-80,on_demand,NA,5.84464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744520 +GCP,asia-northeast1,n2d-highmem-80,reserved_1y,NA,3.68176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744547 +GCP,asia-northeast1,n2d-highmem-80,reserved_3y,NA,2.6296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744561 +GCP,asia-northeast1,n2d-highmem-80,spot,NA,1.62416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744534 +GCP,asia-northeast1,n2d-highmem-96,on_demand,NA,7.013568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745547 +GCP,asia-northeast1,n2d-highmem-96,reserved_1y,NA,4.418112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745574 +GCP,asia-northeast1,n2d-highmem-96,reserved_3y,NA,3.15552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745587 +GCP,asia-northeast1,n2d-highmem-96,spot,NA,1.948992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745560 +GCP,asia-northeast1,n2d-standard-128,on_demand,NA,6.937344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734992 +GCP,asia-northeast1,n2d-standard-128,reserved_1y,NA,4.370176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735020 +GCP,asia-northeast1,n2d-standard-128,reserved_3y,NA,3.121408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735033 +GCP,asia-northeast1,n2d-standard-128,spot,NA,1.928448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735006 +GCP,asia-northeast1,n2d-standard-16,on_demand,NA,0.867168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728667 +GCP,asia-northeast1,n2d-standard-16,reserved_1y,NA,0.546272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728695 +GCP,asia-northeast1,n2d-standard-16,reserved_3y,NA,0.390176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728709 +GCP,asia-northeast1,n2d-standard-16,spot,NA,0.241056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728681 +GCP,asia-northeast1,n2d-standard-224,on_demand,NA,12.140352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736033 +GCP,asia-northeast1,n2d-standard-224,reserved_1y,NA,7.647808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736060 +GCP,asia-northeast1,n2d-standard-224,reserved_3y,NA,5.462464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736073 +GCP,asia-northeast1,n2d-standard-224,spot,NA,3.374784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736046 +GCP,asia-northeast1,n2d-standard-32,on_demand,NA,1.734336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729700 +GCP,asia-northeast1,n2d-standard-32,reserved_1y,NA,1.092544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729728 +GCP,asia-northeast1,n2d-standard-32,reserved_3y,NA,0.780352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729742 +GCP,asia-northeast1,n2d-standard-32,spot,NA,0.482112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729714 +GCP,asia-northeast1,n2d-standard-4,on_demand,NA,0.216792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726545 +GCP,asia-northeast1,n2d-standard-4,reserved_1y,NA,0.136568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726574 +GCP,asia-northeast1,n2d-standard-4,reserved_3y,NA,0.097544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726588 +GCP,asia-northeast1,n2d-standard-4,spot,NA,0.060264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726559 +GCP,asia-northeast1,n2d-standard-48,on_demand,NA,2.601504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730725 +GCP,asia-northeast1,n2d-standard-48,reserved_1y,NA,1.638816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730754 +GCP,asia-northeast1,n2d-standard-48,reserved_3y,NA,1.170528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730769 +GCP,asia-northeast1,n2d-standard-48,spot,NA,0.723168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730740 +GCP,asia-northeast1,n2d-standard-64,on_demand,NA,3.468672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731821 +GCP,asia-northeast1,n2d-standard-64,reserved_1y,NA,2.185088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731847 +GCP,asia-northeast1,n2d-standard-64,reserved_3y,NA,1.560704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731861 +GCP,asia-northeast1,n2d-standard-64,spot,NA,0.964224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731834 +GCP,asia-northeast1,n2d-standard-8,on_demand,NA,0.433584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727608 +GCP,asia-northeast1,n2d-standard-8,reserved_1y,NA,0.273136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727637 +GCP,asia-northeast1,n2d-standard-8,reserved_3y,NA,0.195088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727651 +GCP,asia-northeast1,n2d-standard-8,spot,NA,0.120528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727623 +GCP,asia-northeast1,n2d-standard-80,on_demand,NA,4.33584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732881 +GCP,asia-northeast1,n2d-standard-80,reserved_1y,NA,2.73136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732908 +GCP,asia-northeast1,n2d-standard-80,reserved_3y,NA,1.95088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732922 +GCP,asia-northeast1,n2d-standard-80,spot,NA,1.20528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732895 +GCP,asia-northeast1,n2d-standard-96,on_demand,NA,5.203008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733914 +GCP,asia-northeast1,n2d-standard-96,reserved_1y,NA,3.277632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733959 +GCP,asia-northeast1,n2d-standard-96,reserved_3y,NA,2.341056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733973 +GCP,asia-northeast1,n2d-standard-96,spot,NA,1.446336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733929 +GCP,asia-northeast1,n4-standard-16,on_demand,NA,0.931816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758060 +GCP,asia-northeast1,n4-standard-16,reserved_1y,NA,0.587034,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758088 +GCP,asia-northeast1,n4-standard-16,reserved_3y,NA,0.419327,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758102 +GCP,asia-northeast1,n4-standard-16,spot,NA,0.357216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758074 +GCP,asia-northeast1,n4-standard-2,on_demand,NA,0.116477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754940 +GCP,asia-northeast1,n4-standard-2,reserved_1y,NA,0.073379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754968 +GCP,asia-northeast1,n4-standard-2,reserved_3y,NA,0.052416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754982 +GCP,asia-northeast1,n4-standard-2,spot,NA,0.044652,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754954 +GCP,asia-northeast1,n4-standard-32,on_demand,NA,1.863631,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759104 +GCP,asia-northeast1,n4-standard-32,reserved_1y,NA,1.174067,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759132 +GCP,asia-northeast1,n4-standard-32,reserved_3y,NA,0.838655,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759146 +GCP,asia-northeast1,n4-standard-32,spot,NA,0.714432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759118 +GCP,asia-northeast1,n4-standard-4,on_demand,NA,0.232954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755995 +GCP,asia-northeast1,n4-standard-4,reserved_1y,NA,0.146758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756022 +GCP,asia-northeast1,n4-standard-4,reserved_3y,NA,0.104832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756035 +GCP,asia-northeast1,n4-standard-4,spot,NA,0.089304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756008 +GCP,asia-northeast1,n4-standard-8,on_demand,NA,0.465908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757023 +GCP,asia-northeast1,n4-standard-8,reserved_1y,NA,0.293517,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757051 +GCP,asia-northeast1,n4-standard-8,reserved_3y,NA,0.209664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757065 +GCP,asia-northeast1,n4-standard-8,spot,NA,0.178608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757037 +GCP,asia-northeast3,a2-highgpu-1g,on_demand,NA,0.52138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771056 +GCP,asia-northeast3,a2-highgpu-1g,reserved_1y,NA,0.597229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771082 +GCP,asia-northeast3,a2-highgpu-1g,reserved_3y,NA,0.331842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771096 +GCP,asia-northeast3,a2-highgpu-1g,spot,NA,0.342265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771069 +GCP,asia-northeast3,a2-highgpu-2g,on_demand,NA,1.04276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772161 +GCP,asia-northeast3,a2-highgpu-2g,reserved_1y,NA,1.194458,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772188 +GCP,asia-northeast3,a2-highgpu-2g,reserved_3y,NA,0.663683,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772201 +GCP,asia-northeast3,a2-highgpu-2g,spot,NA,0.68453,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772174 +GCP,asia-northeast3,a2-highgpu-4g,on_demand,NA,2.08552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773246 +GCP,asia-northeast3,a2-highgpu-4g,reserved_1y,NA,2.388915,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773274 +GCP,asia-northeast3,a2-highgpu-4g,reserved_3y,NA,1.327366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773289 +GCP,asia-northeast3,a2-highgpu-4g,spot,NA,1.36906,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773260 +GCP,asia-northeast3,a2-highgpu-8g,on_demand,NA,4.17104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774370 +GCP,asia-northeast3,a2-highgpu-8g,reserved_1y,NA,4.77783,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774398 +GCP,asia-northeast3,a2-highgpu-8g,reserved_3y,NA,2.654732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774412 +GCP,asia-northeast3,a2-highgpu-8g,spot,NA,2.73812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774384 +GCP,asia-northeast3,a2-megagpu-16g,on_demand,NA,6.19744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775463 +GCP,asia-northeast3,a2-megagpu-16g,reserved_1y,NA,7.099078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775490 +GCP,asia-northeast3,a2-megagpu-16g,reserved_3y,NA,3.944692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775504 +GCP,asia-northeast3,a2-megagpu-16g,spot,NA,4.06888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775476 +GCP,asia-northeast3,a2-ultragpu-1g,on_demand,NA,0.77468,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776559 +GCP,asia-northeast3,a2-ultragpu-1g,reserved_1y,NA,0.887385,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776586 +GCP,asia-northeast3,a2-ultragpu-1g,reserved_3y,NA,0.493087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776600 +GCP,asia-northeast3,a2-ultragpu-1g,spot,NA,0.50861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776573 +GCP,asia-northeast3,a2-ultragpu-2g,on_demand,NA,1.54936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777686 +GCP,asia-northeast3,a2-ultragpu-2g,reserved_1y,NA,1.77477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777714 +GCP,asia-northeast3,a2-ultragpu-2g,reserved_3y,NA,0.986173,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777729 +GCP,asia-northeast3,a2-ultragpu-2g,spot,NA,1.01722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777700 +GCP,asia-northeast3,a2-ultragpu-4g,on_demand,NA,3.09872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778728 +GCP,asia-northeast3,a2-ultragpu-4g,reserved_1y,NA,3.549539,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778756 +GCP,asia-northeast3,a2-ultragpu-4g,reserved_3y,NA,1.972346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778770 +GCP,asia-northeast3,a2-ultragpu-4g,spot,NA,2.03444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778742 +GCP,asia-northeast3,a2-ultragpu-8g,on_demand,NA,6.19744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779778 +GCP,asia-northeast3,a2-ultragpu-8g,reserved_1y,NA,7.099078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779806 +GCP,asia-northeast3,a2-ultragpu-8g,reserved_3y,NA,3.944692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779820 +GCP,asia-northeast3,a2-ultragpu-8g,spot,NA,4.06888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779792 +GCP,asia-northeast3,a3-highgpu-1g,on_demand,NA,1.074126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780893 +GCP,asia-northeast3,a3-highgpu-1g,reserved_1y,NA,1.056087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780921 +GCP,asia-northeast3,a3-highgpu-1g,reserved_3y,NA,0.669277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780935 +GCP,asia-northeast3,a3-highgpu-1g,spot,NA,0.273182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780907 +GCP,asia-northeast3,a3-highgpu-2g,on_demand,NA,1.074126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781936 +GCP,asia-northeast3,a3-highgpu-2g,reserved_1y,NA,1.056087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781964 +GCP,asia-northeast3,a3-highgpu-2g,reserved_3y,NA,0.669277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781977 +GCP,asia-northeast3,a3-highgpu-2g,spot,NA,0.273182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781950 +GCP,asia-northeast3,a3-highgpu-4g,on_demand,NA,1.074126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783064 +GCP,asia-northeast3,a3-highgpu-4g,reserved_1y,NA,1.056087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783093 +GCP,asia-northeast3,a3-highgpu-4g,reserved_3y,NA,0.669277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783106 +GCP,asia-northeast3,a3-highgpu-4g,spot,NA,0.273182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783078 +GCP,asia-northeast3,a3-highgpu-8g,on_demand,NA,1.074126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784117 +GCP,asia-northeast3,a3-highgpu-8g,reserved_1y,NA,1.056087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784145 +GCP,asia-northeast3,a3-highgpu-8g,reserved_3y,NA,0.669277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784158 +GCP,asia-northeast3,a3-highgpu-8g,spot,NA,0.273182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784131 +GCP,asia-northeast3,c2-standard-16,on_demand,NA,0.9328,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722147 +GCP,asia-northeast3,c2-standard-16,reserved_1y,NA,0.587664,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722192 +GCP,asia-northeast3,c2-standard-16,reserved_3y,NA,0.419776,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722215 +GCP,asia-northeast3,c2-standard-16,spot,NA,0.098304,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722170 +GCP,asia-northeast3,c2-standard-30,on_demand,NA,1.749,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723828 +GCP,asia-northeast3,c2-standard-30,reserved_1y,NA,1.10187,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723921 +GCP,asia-northeast3,c2-standard-30,reserved_3y,NA,0.78708,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723946 +GCP,asia-northeast3,c2-standard-30,spot,NA,0.18432,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723851 +GCP,asia-northeast3,c2-standard-4,on_demand,NA,0.2332,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718691 +GCP,asia-northeast3,c2-standard-4,reserved_1y,NA,0.146916,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718738 +GCP,asia-northeast3,c2-standard-4,reserved_3y,NA,0.104944,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718762 +GCP,asia-northeast3,c2-standard-4,spot,NA,0.024576,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718714 +GCP,asia-northeast3,c2-standard-60,on_demand,NA,3.498,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725565 +GCP,asia-northeast3,c2-standard-60,reserved_1y,NA,2.20374,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725611 +GCP,asia-northeast3,c2-standard-60,reserved_3y,NA,1.57416,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725634 +GCP,asia-northeast3,c2-standard-60,spot,NA,0.36864,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725588 +GCP,asia-northeast3,c2-standard-8,on_demand,NA,0.4664,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720457 +GCP,asia-northeast3,c2-standard-8,reserved_1y,NA,0.293832,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720504 +GCP,asia-northeast3,c2-standard-8,reserved_3y,NA,0.209888,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720527 +GCP,asia-northeast3,c2-standard-8,spot,NA,0.049152,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720480 +GCP,asia-northeast3,c3-highmem-22,on_demand,NA,1.067952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801019 +GCP,asia-northeast3,c3-highmem-22,reserved_1y,NA,1.177504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801046 +GCP,asia-northeast3,c3-highmem-22,reserved_3y,NA,0.841045,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801060 +GCP,asia-northeast3,c3-highmem-22,spot,NA,0.496276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801033 +GCP,asia-northeast3,c3-highmem-4,on_demand,NA,0.194173,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798958 +GCP,asia-northeast3,c3-highmem-4,reserved_1y,NA,0.214092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798986 +GCP,asia-northeast3,c3-highmem-4,reserved_3y,NA,0.152917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799000 +GCP,asia-northeast3,c3-highmem-4,spot,NA,0.090232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798972 +GCP,asia-northeast3,c3-highmem-44,on_demand,NA,2.135904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802033 +GCP,asia-northeast3,c3-highmem-44,reserved_1y,NA,2.355007,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802064 +GCP,asia-northeast3,c3-highmem-44,reserved_3y,NA,1.682091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802080 +GCP,asia-northeast3,c3-highmem-44,spot,NA,0.992552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802048 +GCP,asia-northeast3,c3-highmem-8,on_demand,NA,0.388346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800019 +GCP,asia-northeast3,c3-highmem-8,reserved_1y,NA,0.428183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800045 +GCP,asia-northeast3,c3-highmem-8,reserved_3y,NA,0.305835,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800059 +GCP,asia-northeast3,c3-highmem-8,spot,NA,0.180464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800032 +GCP,asia-northeast3,c3-highmem-88,on_demand,NA,4.271808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803061 +GCP,asia-northeast3,c3-highmem-88,reserved_1y,NA,4.710014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803089 +GCP,asia-northeast3,c3-highmem-88,reserved_3y,NA,3.364181,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803112 +GCP,asia-northeast3,c3-highmem-88,spot,NA,1.985104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803076 +GCP,asia-northeast3,c3-standard-22 (-lssd),on_demand,NA,1.023449,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795743 +GCP,asia-northeast3,c3-standard-22 (-lssd),reserved_1y,NA,0.897127,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795771 +GCP,asia-northeast3,c3-standard-22 (-lssd),reserved_3y,NA,0.640792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795785 +GCP,asia-northeast3,c3-standard-22 (-lssd),spot,NA,0.368148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795757 +GCP,asia-northeast3,c3-standard-4 (-lssd),on_demand,NA,0.186082,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793632 +GCP,asia-northeast3,c3-standard-4 (-lssd),reserved_1y,NA,0.163114,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793660 +GCP,asia-northeast3,c3-standard-4 (-lssd),reserved_3y,NA,0.116508,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793674 +GCP,asia-northeast3,c3-standard-4 (-lssd),spot,NA,0.066936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793646 +GCP,asia-northeast3,c3-standard-44 (-lssd),on_demand,NA,2.046898,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796843 +GCP,asia-northeast3,c3-standard-44 (-lssd),reserved_1y,NA,1.794254,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796871 +GCP,asia-northeast3,c3-standard-44 (-lssd),reserved_3y,NA,1.281585,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796884 +GCP,asia-northeast3,c3-standard-44 (-lssd),spot,NA,0.736296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796857 +GCP,asia-northeast3,c3-standard-8 (-lssd),on_demand,NA,0.372163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794667 +GCP,asia-northeast3,c3-standard-8 (-lssd),reserved_1y,NA,0.326228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794694 +GCP,asia-northeast3,c3-standard-8 (-lssd),reserved_3y,NA,0.233015,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794710 +GCP,asia-northeast3,c3-standard-8 (-lssd),spot,NA,0.133872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794680 +GCP,asia-northeast3,c3-standard-88 (-lssd),on_demand,NA,4.093795,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797900 +GCP,asia-northeast3,c3-standard-88 (-lssd),reserved_1y,NA,3.588507,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797928 +GCP,asia-northeast3,c3-standard-88 (-lssd),reserved_3y,NA,2.56317,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797942 +GCP,asia-northeast3,c3-standard-88 (-lssd),spot,NA,1.472592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797914 +GCP,asia-northeast3,c3d-highmem-16 (-lssd),on_demand,NA,1.258208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814831 +GCP,asia-northeast3,c3d-highmem-16 (-lssd),reserved_1y,NA,0.792629,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814859 +GCP,asia-northeast3,c3d-highmem-16 (-lssd),reserved_3y,NA,0.566096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814874 +GCP,asia-northeast3,c3d-highmem-16 (-lssd),spot,NA,0.427872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814846 +GCP,asia-northeast3,c3d-highmem-180 (-lssd),on_demand,NA,14.154837,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819015 +GCP,asia-northeast3,c3d-highmem-180 (-lssd),reserved_1y,NA,8.917074,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819043 +GCP,asia-northeast3,c3d-highmem-180 (-lssd),reserved_3y,NA,6.368578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819057 +GCP,asia-northeast3,c3d-highmem-180 (-lssd),spot,NA,4.81356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819029 +GCP,asia-northeast3,c3d-highmem-30 (-lssd),on_demand,NA,2.35914,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815906 +GCP,asia-northeast3,c3d-highmem-30 (-lssd),reserved_1y,NA,1.486179,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815934 +GCP,asia-northeast3,c3d-highmem-30 (-lssd),reserved_3y,NA,1.06143,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815948 +GCP,asia-northeast3,c3d-highmem-30 (-lssd),spot,NA,0.80226,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815920 +GCP,asia-northeast3,c3d-highmem-360 (-lssd),on_demand,NA,28.309674,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820061 +GCP,asia-northeast3,c3d-highmem-360 (-lssd),reserved_1y,NA,17.834148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820089 +GCP,asia-northeast3,c3d-highmem-360 (-lssd),reserved_3y,NA,12.737156,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820103 +GCP,asia-northeast3,c3d-highmem-360 (-lssd),spot,NA,9.62712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820075 +GCP,asia-northeast3,c3d-highmem-4 (-lssd),on_demand,NA,0.314552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812577 +GCP,asia-northeast3,c3d-highmem-4 (-lssd),reserved_1y,NA,0.198157,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812605 +GCP,asia-northeast3,c3d-highmem-4 (-lssd),reserved_3y,NA,0.141524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812619 +GCP,asia-northeast3,c3d-highmem-4 (-lssd),spot,NA,0.106968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812591 +GCP,asia-northeast3,c3d-highmem-60 (-lssd),on_demand,NA,4.718279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816943 +GCP,asia-northeast3,c3d-highmem-60 (-lssd),reserved_1y,NA,2.972358,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816972 +GCP,asia-northeast3,c3d-highmem-60 (-lssd),reserved_3y,NA,2.122859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816985 +GCP,asia-northeast3,c3d-highmem-60 (-lssd),spot,NA,1.60452,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816958 +GCP,asia-northeast3,c3d-highmem-8 (-lssd),on_demand,NA,0.629104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813628 +GCP,asia-northeast3,c3d-highmem-8 (-lssd),reserved_1y,NA,0.396314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813656 +GCP,asia-northeast3,c3d-highmem-8 (-lssd),reserved_3y,NA,0.283048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813670 +GCP,asia-northeast3,c3d-highmem-8 (-lssd),spot,NA,0.213936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813642 +GCP,asia-northeast3,c3d-highmem-90 (-lssd),on_demand,NA,7.077419,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817977 +GCP,asia-northeast3,c3d-highmem-90 (-lssd),reserved_1y,NA,4.458537,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818004 +GCP,asia-northeast3,c3d-highmem-90 (-lssd),reserved_3y,NA,3.184289,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818018 +GCP,asia-northeast3,c3d-highmem-90 (-lssd),spot,NA,2.40678,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817991 +GCP,asia-northeast3,c3d-standard-16 (-lssd),on_demand,NA,0.932822,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806211 +GCP,asia-northeast3,c3d-standard-16 (-lssd),reserved_1y,NA,0.58765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806240 +GCP,asia-northeast3,c3d-standard-16 (-lssd),reserved_3y,NA,0.419718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806254 +GCP,asia-northeast3,c3d-standard-16 (-lssd),spot,NA,0.317216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806226 +GCP,asia-northeast3,c3d-standard-180 (-lssd),on_demand,NA,10.494251,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810463 +GCP,asia-northeast3,c3d-standard-180 (-lssd),reserved_1y,NA,6.611062,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810490 +GCP,asia-northeast3,c3d-standard-180 (-lssd),reserved_3y,NA,4.721823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810504 +GCP,asia-northeast3,c3d-standard-180 (-lssd),spot,NA,3.56868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810476 +GCP,asia-northeast3,c3d-standard-30 (-lssd),on_demand,NA,1.749042,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807276 +GCP,asia-northeast3,c3d-standard-30 (-lssd),reserved_1y,NA,1.101844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807305 +GCP,asia-northeast3,c3d-standard-30 (-lssd),reserved_3y,NA,0.786971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807319 +GCP,asia-northeast3,c3d-standard-30 (-lssd),spot,NA,0.59478,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807290 +GCP,asia-northeast3,c3d-standard-360 (-lssd),on_demand,NA,20.988501,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811513 +GCP,asia-northeast3,c3d-standard-360 (-lssd),reserved_1y,NA,13.222123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811540 +GCP,asia-northeast3,c3d-standard-360 (-lssd),reserved_3y,NA,9.443646,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811556 +GCP,asia-northeast3,c3d-standard-360 (-lssd),spot,NA,7.13736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811526 +GCP,asia-northeast3,c3d-standard-4 (-lssd),on_demand,NA,0.233206,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804150 +GCP,asia-northeast3,c3d-standard-4 (-lssd),reserved_1y,NA,0.146912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804178 +GCP,asia-northeast3,c3d-standard-4 (-lssd),reserved_3y,NA,0.104929,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804191 +GCP,asia-northeast3,c3d-standard-4 (-lssd),spot,NA,0.079304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804163 +GCP,asia-northeast3,c3d-standard-60 (-lssd),on_demand,NA,3.498084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808349 +GCP,asia-northeast3,c3d-standard-60 (-lssd),reserved_1y,NA,2.203687,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808377 +GCP,asia-northeast3,c3d-standard-60 (-lssd),reserved_3y,NA,1.573941,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808391 +GCP,asia-northeast3,c3d-standard-60 (-lssd),spot,NA,1.18956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808363 +GCP,asia-northeast3,c3d-standard-8 (-lssd),on_demand,NA,0.466411,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805170 +GCP,asia-northeast3,c3d-standard-8 (-lssd),reserved_1y,NA,0.293825,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805197 +GCP,asia-northeast3,c3d-standard-8 (-lssd),reserved_3y,NA,0.209859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805210 +GCP,asia-northeast3,c3d-standard-8 (-lssd),spot,NA,0.158608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805183 +GCP,asia-northeast3,c3d-standard-90 (-lssd),on_demand,NA,5.247125,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809402 +GCP,asia-northeast3,c3d-standard-90 (-lssd),reserved_1y,NA,3.305531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809432 +GCP,asia-northeast3,c3d-standard-90 (-lssd),reserved_3y,NA,2.360911,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809446 +GCP,asia-northeast3,c3d-standard-90 (-lssd),spot,NA,1.78434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809416 +GCP,asia-northeast3,c4-standard-16,on_demand,NA,0.101539,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841430 +GCP,asia-northeast3,c4-standard-16,reserved_1y,NA,0.639711,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841458 +GCP,asia-northeast3,c4-standard-16,reserved_3y,NA,0.456929,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841471 +GCP,asia-northeast3,c4-standard-16,spot,NA,0.26192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841444 +GCP,asia-northeast3,c4-standard-2,on_demand,NA,0.01244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838162 +GCP,asia-northeast3,c4-standard-2,reserved_1y,NA,0.078371,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838190 +GCP,asia-northeast3,c4-standard-2,reserved_3y,NA,0.055978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838204 +GCP,asia-northeast3,c4-standard-2,spot,NA,0.032088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838177 +GCP,asia-northeast3,c4-standard-24,on_demand,NA,0.152309,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842509 +GCP,asia-northeast3,c4-standard-24,reserved_1y,NA,0.959567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842536 +GCP,asia-northeast3,c4-standard-24,reserved_3y,NA,0.685393,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842550 +GCP,asia-northeast3,c4-standard-24,spot,NA,0.39288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842522 +GCP,asia-northeast3,c4-standard-32,on_demand,NA,0.203078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843689 +GCP,asia-northeast3,c4-standard-32,reserved_1y,NA,1.279423,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843722 +GCP,asia-northeast3,c4-standard-32,reserved_3y,NA,0.913857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843738 +GCP,asia-northeast3,c4-standard-32,spot,NA,0.52384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843705 +GCP,asia-northeast3,c4-standard-4,on_demand,NA,0.025385,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839198 +GCP,asia-northeast3,c4-standard-4,reserved_1y,NA,0.159928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839226 +GCP,asia-northeast3,c4-standard-4,reserved_3y,NA,0.114232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839240 +GCP,asia-northeast3,c4-standard-4,spot,NA,0.06548,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839213 +GCP,asia-northeast3,c4-standard-8,on_demand,NA,0.05077,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840351 +GCP,asia-northeast3,c4-standard-8,reserved_1y,NA,0.319856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840379 +GCP,asia-northeast3,c4-standard-8,reserved_3y,NA,0.228464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840393 +GCP,asia-northeast3,c4-standard-8,spot,NA,0.13096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840365 +GCP,asia-northeast3,c4a-highmem-16 (-lssd),on_demand,NA,0.776692,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832245 +GCP,asia-northeast3,c4a-highmem-16 (-lssd),reserved_1y,NA,0.856366,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832290 +GCP,asia-northeast3,c4a-highmem-16 (-lssd),reserved_3y,NA,0.611669,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832314 +GCP,asia-northeast3,c4a-highmem-16 (-lssd),spot,NA,0.360928,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832268 +GCP,asia-northeast3,c4a-highmem-32 (-lssd),on_demand,NA,1.553385,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833456 +GCP,asia-northeast3,c4a-highmem-32 (-lssd),reserved_1y,NA,1.712732,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833501 +GCP,asia-northeast3,c4a-highmem-32 (-lssd),reserved_3y,NA,1.223339,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833523 +GCP,asia-northeast3,c4a-highmem-32 (-lssd),spot,NA,0.721856,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833478 +GCP,asia-northeast3,c4a-highmem-4 (-lssd),on_demand,NA,0.194173,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829777 +GCP,asia-northeast3,c4a-highmem-4 (-lssd),reserved_1y,NA,0.214092,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829821 +GCP,asia-northeast3,c4a-highmem-4 (-lssd),reserved_3y,NA,0.152917,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829843 +GCP,asia-northeast3,c4a-highmem-4 (-lssd),spot,NA,0.090232,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829799 +GCP,asia-northeast3,c4a-highmem-48 (-lssd),on_demand,NA,2.330077,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834662 +GCP,asia-northeast3,c4a-highmem-48 (-lssd),reserved_1y,NA,2.569099,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834704 +GCP,asia-northeast3,c4a-highmem-48 (-lssd),reserved_3y,NA,1.835008,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834725 +GCP,asia-northeast3,c4a-highmem-48 (-lssd),spot,NA,1.082784,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834683 +GCP,asia-northeast3,c4a-highmem-64 (-lssd),on_demand,NA,3.10677,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835822 +GCP,asia-northeast3,c4a-highmem-64 (-lssd),reserved_1y,NA,3.425465,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835896 +GCP,asia-northeast3,c4a-highmem-64 (-lssd),reserved_3y,NA,2.446677,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835918 +GCP,asia-northeast3,c4a-highmem-64 (-lssd),spot,NA,1.443712,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835844 +GCP,asia-northeast3,c4a-highmem-72 (-lssd),on_demand,NA,3.495116,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836997 +GCP,asia-northeast3,c4a-highmem-72 (-lssd),reserved_1y,NA,3.853648,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.837039 +GCP,asia-northeast3,c4a-highmem-72 (-lssd),reserved_3y,NA,2.752512,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.837060 +GCP,asia-northeast3,c4a-highmem-72 (-lssd),spot,NA,1.624176,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.837018 +GCP,asia-northeast3,c4a-highmem-8 (-lssd),on_demand,NA,0.388346,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830999 +GCP,asia-northeast3,c4a-highmem-8 (-lssd),reserved_1y,NA,0.428183,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831042 +GCP,asia-northeast3,c4a-highmem-8 (-lssd),reserved_3y,NA,0.305835,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831063 +GCP,asia-northeast3,c4a-highmem-8 (-lssd),spot,NA,0.180464,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831020 +GCP,asia-northeast3,c4a-standard-16 (-lssd),on_demand,NA,0.744326,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823691 +GCP,asia-northeast3,c4a-standard-16 (-lssd),reserved_1y,NA,0.652456,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823737 +GCP,asia-northeast3,c4a-standard-16 (-lssd),reserved_3y,NA,0.466031,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823760 +GCP,asia-northeast3,c4a-standard-16 (-lssd),spot,NA,0.267744,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823714 +GCP,asia-northeast3,c4a-standard-32 (-lssd),on_demand,NA,1.488653,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824935 +GCP,asia-northeast3,c4a-standard-32 (-lssd),reserved_1y,NA,1.304912,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824980 +GCP,asia-northeast3,c4a-standard-32 (-lssd),reserved_3y,NA,0.932062,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825003 +GCP,asia-northeast3,c4a-standard-32 (-lssd),spot,NA,0.535488,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824958 +GCP,asia-northeast3,c4a-standard-4 (-lssd),on_demand,NA,0.186082,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821230 +GCP,asia-northeast3,c4a-standard-4 (-lssd),reserved_1y,NA,0.163114,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821276 +GCP,asia-northeast3,c4a-standard-4 (-lssd),reserved_3y,NA,0.116508,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821299 +GCP,asia-northeast3,c4a-standard-4 (-lssd),spot,NA,0.066936,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821253 +GCP,asia-northeast3,c4a-standard-48 (-lssd),on_demand,NA,2.232979,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826157 +GCP,asia-northeast3,c4a-standard-48 (-lssd),reserved_1y,NA,1.957368,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826203 +GCP,asia-northeast3,c4a-standard-48 (-lssd),reserved_3y,NA,1.398093,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826226 +GCP,asia-northeast3,c4a-standard-48 (-lssd),spot,NA,0.803232,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826180 +GCP,asia-northeast3,c4a-standard-64 (-lssd),on_demand,NA,2.977306,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827380 +GCP,asia-northeast3,c4a-standard-64 (-lssd),reserved_1y,NA,2.609823,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827423 +GCP,asia-northeast3,c4a-standard-64 (-lssd),reserved_3y,NA,1.864124,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827444 +GCP,asia-northeast3,c4a-standard-64 (-lssd),spot,NA,1.070976,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827402 +GCP,asia-northeast3,c4a-standard-72 (-lssd),on_demand,NA,3.349469,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828581 +GCP,asia-northeast3,c4a-standard-72 (-lssd),reserved_1y,NA,2.936051,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828624 +GCP,asia-northeast3,c4a-standard-72 (-lssd),reserved_3y,NA,2.097139,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828646 +GCP,asia-northeast3,c4a-standard-72 (-lssd),spot,NA,1.204848,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828603 +GCP,asia-northeast3,c4a-standard-8 (-lssd),on_demand,NA,0.372163,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822452 +GCP,asia-northeast3,c4a-standard-8 (-lssd),reserved_1y,NA,0.326228,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822496 +GCP,asia-northeast3,c4a-standard-8 (-lssd),reserved_3y,NA,0.233015,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822517 +GCP,asia-northeast3,c4a-standard-8 (-lssd),spot,NA,0.133872,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822474 +GCP,asia-northeast3,c4d-standard-16,on_demand,NA,0.922654,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848852 +GCP,asia-northeast3,c4d-standard-16,reserved_1y,NA,0.581244,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848897 +GCP,asia-northeast3,c4d-standard-16,reserved_3y,NA,0.415143,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848921 +GCP,asia-northeast3,c4d-standard-16,spot,NA,0.313758,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848875 +GCP,asia-northeast3,c4d-standard-2,on_demand,NA,0.111519,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844961 +GCP,asia-northeast3,c4d-standard-2,reserved_1y,NA,0.070253,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845007 +GCP,asia-northeast3,c4d-standard-2,reserved_3y,NA,0.050178,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845030 +GCP,asia-northeast3,c4d-standard-2,spot,NA,0.037923,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844984 +GCP,asia-northeast3,c4d-standard-32,on_demand,NA,1.845308,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850170 +GCP,asia-northeast3,c4d-standard-32,reserved_1y,NA,1.162489,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850215 +GCP,asia-northeast3,c4d-standard-32,reserved_3y,NA,0.830287,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850237 +GCP,asia-northeast3,c4d-standard-32,spot,NA,0.627516,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850193 +GCP,asia-northeast3,c4d-standard-4,on_demand,NA,0.228121,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846258 +GCP,asia-northeast3,c4d-standard-4,reserved_1y,NA,0.14371,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846303 +GCP,asia-northeast3,c4d-standard-4,reserved_3y,NA,0.102642,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846325 +GCP,asia-northeast3,c4d-standard-4,spot,NA,0.077575,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846281 +GCP,asia-northeast3,c4d-standard-8,on_demand,NA,0.461327,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847525 +GCP,asia-northeast3,c4d-standard-8,reserved_1y,NA,0.290622,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847568 +GCP,asia-northeast3,c4d-standard-8,reserved_3y,NA,0.207572,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847591 +GCP,asia-northeast3,c4d-standard-8,spot,NA,0.156879,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847547 +GCP,asia-northeast3,e2_highcpu_16,on_demand,NA,0.508248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764613 +GCP,asia-northeast3,e2_highcpu_16,reserved_1y,NA,0.320197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764641 +GCP,asia-northeast3,e2_highcpu_16,reserved_3y,NA,0.228712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764654 +GCP,asia-northeast3,e2_highcpu_16,spot,NA,0.13096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764627 +GCP,asia-northeast3,e2_highcpu_32,on_demand,NA,1.016497,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765652 +GCP,asia-northeast3,e2_highcpu_32,reserved_1y,NA,0.640393,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765680 +GCP,asia-northeast3,e2_highcpu_32,reserved_3y,NA,0.457424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765694 +GCP,asia-northeast3,e2_highcpu_32,spot,NA,0.26192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765666 +GCP,asia-northeast3,e2_highmem_16,on_demand,NA,0.927029,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763509 +GCP,asia-northeast3,e2_highmem_16,reserved_1y,NA,0.584028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763537 +GCP,asia-northeast3,e2_highmem_16,reserved_3y,NA,0.417163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763551 +GCP,asia-northeast3,e2_highmem_16,spot,NA,0.23904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763523 +GCP,asia-northeast3,e2_highmem_2,on_demand,NA,0.115879,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760395 +GCP,asia-northeast3,e2_highmem_2,reserved_1y,NA,0.073004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760423 +GCP,asia-northeast3,e2_highmem_2,reserved_3y,NA,0.052145,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760437 +GCP,asia-northeast3,e2_highmem_2,spot,NA,0.02988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760409 +GCP,asia-northeast3,e2_highmem_4,on_demand,NA,0.231757,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761426 +GCP,asia-northeast3,e2_highmem_4,reserved_1y,NA,0.146007,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761453 +GCP,asia-northeast3,e2_highmem_4,reserved_3y,NA,0.104291,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761467 +GCP,asia-northeast3,e2_highmem_4,spot,NA,0.05976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761439 +GCP,asia-northeast3,e2_highmem_8,on_demand,NA,0.463514,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762457 +GCP,asia-northeast3,e2_highmem_8,reserved_1y,NA,0.292014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762485 +GCP,asia-northeast3,e2_highmem_8,reserved_3y,NA,0.208581,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762500 +GCP,asia-northeast3,e2_highmem_8,spot,NA,0.11952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762471 +GCP,asia-northeast3,e2_standard_16,on_demand,NA,0.687726,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768965 +GCP,asia-northeast3,e2_standard_16,reserved_1y,NA,0.433267,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768996 +GCP,asia-northeast3,e2_standard_16,reserved_3y,NA,0.309477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769011 +GCP,asia-northeast3,e2_standard_16,spot,NA,0.17728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768981 +GCP,asia-northeast3,e2_standard_32,on_demand,NA,1.375452,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770029 +GCP,asia-northeast3,e2_standard_32,reserved_1y,NA,0.866534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770057 +GCP,asia-northeast3,e2_standard_32,reserved_3y,NA,0.618953,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770070 +GCP,asia-northeast3,e2_standard_32,spot,NA,0.35456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770043 +GCP,asia-northeast3,e2_standard_4,on_demand,NA,0.171931,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766861 +GCP,asia-northeast3,e2_standard_4,reserved_1y,NA,0.108317,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766889 +GCP,asia-northeast3,e2_standard_4,reserved_3y,NA,0.077369,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766903 +GCP,asia-northeast3,e2_standard_4,spot,NA,0.04432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766875 +GCP,asia-northeast3,e2_standard_8,on_demand,NA,0.343863,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767922 +GCP,asia-northeast3,e2_standard_8,reserved_1y,NA,0.216634,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767947 +GCP,asia-northeast3,e2_standard_8,reserved_3y,NA,0.154738,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767959 +GCP,asia-northeast3,e2_standard_8,spot,NA,0.08864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767934 +GCP,asia-northeast3,g2-standard-12,on_demand,NA,0.403124,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787238 +GCP,asia-northeast3,g2-standard-12,reserved_1y,NA,0.356284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787266 +GCP,asia-northeast3,g2-standard-12,reserved_3y,NA,0.254489,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787281 +GCP,asia-northeast3,g2-standard-12,spot,NA,0.109632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787252 +GCP,asia-northeast3,g2-standard-16,on_demand,NA,0.537498,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788327 +GCP,asia-northeast3,g2-standard-16,reserved_1y,NA,0.475046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788355 +GCP,asia-northeast3,g2-standard-16,reserved_3y,NA,0.339319,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788369 +GCP,asia-northeast3,g2-standard-16,spot,NA,0.146176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788341 +GCP,asia-northeast3,g2-standard-24,on_demand,NA,0.806247,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789365 +GCP,asia-northeast3,g2-standard-24,reserved_1y,NA,0.712569,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789393 +GCP,asia-northeast3,g2-standard-24,reserved_3y,NA,0.508978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789407 +GCP,asia-northeast3,g2-standard-24,spot,NA,0.219264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789379 +GCP,asia-northeast3,g2-standard-32,on_demand,NA,1.074996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790404 +GCP,asia-northeast3,g2-standard-32,reserved_1y,NA,0.950092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790432 +GCP,asia-northeast3,g2-standard-32,reserved_3y,NA,0.678637,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790445 +GCP,asia-northeast3,g2-standard-32,spot,NA,0.292352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790418 +GCP,asia-northeast3,g2-standard-4,on_demand,NA,0.134375,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785168 +GCP,asia-northeast3,g2-standard-4,reserved_1y,NA,0.118761,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785197 +GCP,asia-northeast3,g2-standard-4,reserved_3y,NA,0.08483,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785211 +GCP,asia-northeast3,g2-standard-4,spot,NA,0.036544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785182 +GCP,asia-northeast3,g2-standard-48,on_demand,NA,1.612494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791444 +GCP,asia-northeast3,g2-standard-48,reserved_1y,NA,1.425138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791471 +GCP,asia-northeast3,g2-standard-48,reserved_3y,NA,1.017956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791486 +GCP,asia-northeast3,g2-standard-48,spot,NA,0.438528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791457 +GCP,asia-northeast3,g2-standard-8,on_demand,NA,0.268749,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786204 +GCP,asia-northeast3,g2-standard-8,reserved_1y,NA,0.237523,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786231 +GCP,asia-northeast3,g2-standard-8,reserved_3y,NA,0.169659,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786245 +GCP,asia-northeast3,g2-standard-8,spot,NA,0.073088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786217 +GCP,asia-northeast3,g2-standard-96,on_demand,NA,3.224988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792568 +GCP,asia-northeast3,g2-standard-96,reserved_1y,NA,2.850276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792598 +GCP,asia-northeast3,g2-standard-96,reserved_3y,NA,2.035912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792612 +GCP,asia-northeast3,g2-standard-96,spot,NA,0.877056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792584 +GCP,asia-northeast3,n1-highcpu-16,on_demand,NA,0.727551,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691252 +GCP,asia-northeast3,n1-highcpu-16,spot,NA,0.168123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691266 +GCP,asia-northeast3,n1-highcpu-32,on_demand,NA,1.455102,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692109 +GCP,asia-northeast3,n1-highcpu-32,spot,NA,0.336246,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692124 +GCP,asia-northeast3,n1-highcpu-64,on_demand,NA,2.910205,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692971 +GCP,asia-northeast3,n1-highcpu-64,spot,NA,0.672493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692986 +GCP,asia-northeast3,n1-highcpu-96,on_demand,NA,4.365307,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693809 +GCP,asia-northeast3,n1-highcpu-96,spot,NA,1.008739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693823 +GCP,asia-northeast3,n1-highmem-16,on_demand,NA,1.213094,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687689 +GCP,asia-northeast3,n1-highmem-16,spot,NA,0.280392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687705 +GCP,asia-northeast3,n1-highmem-32,on_demand,NA,2.426187,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688567 +GCP,asia-northeast3,n1-highmem-32,spot,NA,0.560784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688581 +GCP,asia-northeast3,n1-highmem-4,on_demand,NA,0.303273,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685964 +GCP,asia-northeast3,n1-highmem-4,spot,NA,0.070098,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685977 +GCP,asia-northeast3,n1-highmem-64,on_demand,NA,4.852374,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689497 +GCP,asia-northeast3,n1-highmem-64,spot,NA,1.121568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689512 +GCP,asia-northeast3,n1-highmem-8,on_demand,NA,0.606547,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686779 +GCP,asia-northeast3,n1-highmem-8,spot,NA,0.140196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686794 +GCP,asia-northeast3,n1-highmem-96,on_demand,NA,7.278562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690389 +GCP,asia-northeast3,n1-highmem-96,spot,NA,1.682352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690403 +GCP,asia-northeast3,n1-standard-16,on_demand,NA,0.974658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682001 +GCP,asia-northeast3,n1-standard-16,spot,NA,0.22526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682015 +GCP,asia-northeast3,n1-standard-32,on_demand,NA,1.949315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683041 +GCP,asia-northeast3,n1-standard-32,spot,NA,0.45052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683054 +GCP,asia-northeast3,n1-standard-4,on_demand,NA,0.243664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680258 +GCP,asia-northeast3,n1-standard-4,spot,NA,0.056315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680272 +GCP,asia-northeast3,n1-standard-64,on_demand,NA,3.89863,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683946 +GCP,asia-northeast3,n1-standard-64,spot,NA,0.90104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683960 +GCP,asia-northeast3,n1-standard-8,on_demand,NA,0.487329,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681146 +GCP,asia-northeast3,n1-standard-8,spot,NA,0.11263,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681160 +GCP,asia-northeast3,n1-standard-96,on_demand,NA,5.847946,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685048 +GCP,asia-northeast3,n1-standard-96,spot,NA,1.35156,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685090 +GCP,asia-northeast3,n2-highcpu-16,on_demand,NA,0.736576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711697 +GCP,asia-northeast3,n2-highcpu-16,reserved_1y,NA,0.464048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711724 +GCP,asia-northeast3,n2-highcpu-16,reserved_3y,NA,0.331472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711737 +GCP,asia-northeast3,n2-highcpu-16,spot,NA,0.237664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711710 +GCP,asia-northeast3,n2-highcpu-32,on_demand,NA,1.473152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712806 +GCP,asia-northeast3,n2-highcpu-32,reserved_1y,NA,0.928096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712849 +GCP,asia-northeast3,n2-highcpu-32,reserved_3y,NA,0.662944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712863 +GCP,asia-northeast3,n2-highcpu-32,spot,NA,0.475328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712820 +GCP,asia-northeast3,n2-highcpu-48,on_demand,NA,2.209728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713926 +GCP,asia-northeast3,n2-highcpu-48,reserved_1y,NA,1.392144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713954 +GCP,asia-northeast3,n2-highcpu-48,reserved_3y,NA,0.994416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713968 +GCP,asia-northeast3,n2-highcpu-48,spot,NA,0.712992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713940 +GCP,asia-northeast3,n2-highcpu-64,on_demand,NA,2.946304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715024 +GCP,asia-northeast3,n2-highcpu-64,reserved_1y,NA,1.856192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715052 +GCP,asia-northeast3,n2-highcpu-64,reserved_3y,NA,1.325888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715065 +GCP,asia-northeast3,n2-highcpu-64,spot,NA,0.950656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715038 +GCP,asia-northeast3,n2-highcpu-80,on_demand,NA,3.68288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716136 +GCP,asia-northeast3,n2-highcpu-80,reserved_1y,NA,2.32024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716165 +GCP,asia-northeast3,n2-highcpu-80,reserved_3y,NA,1.65736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716180 +GCP,asia-northeast3,n2-highcpu-80,spot,NA,1.18832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716151 +GCP,asia-northeast3,n2-highmem-16,on_demand,NA,1.345968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706131 +GCP,asia-northeast3,n2-highmem-16,reserved_1y,NA,0.847984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706162 +GCP,asia-northeast3,n2-highmem-16,reserved_3y,NA,0.60576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706176 +GCP,asia-northeast3,n2-highmem-16,spot,NA,0.434112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706147 +GCP,asia-northeast3,n2-highmem-2,on_demand,NA,0.168246,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702732 +GCP,asia-northeast3,n2-highmem-2,reserved_1y,NA,0.105998,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702773 +GCP,asia-northeast3,n2-highmem-2,reserved_3y,NA,0.07572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702787 +GCP,asia-northeast3,n2-highmem-2,spot,NA,0.054264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702747 +GCP,asia-northeast3,n2-highmem-32,on_demand,NA,2.691936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707266 +GCP,asia-northeast3,n2-highmem-32,reserved_1y,NA,1.695968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707294 +GCP,asia-northeast3,n2-highmem-32,reserved_3y,NA,1.21152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707308 +GCP,asia-northeast3,n2-highmem-32,spot,NA,0.868224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707280 +GCP,asia-northeast3,n2-highmem-4,on_demand,NA,0.336492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703837 +GCP,asia-northeast3,n2-highmem-4,reserved_1y,NA,0.211996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703909 +GCP,asia-northeast3,n2-highmem-4,reserved_3y,NA,0.15144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703928 +GCP,asia-northeast3,n2-highmem-4,spot,NA,0.108528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703850 +GCP,asia-northeast3,n2-highmem-48,on_demand,NA,4.037904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708379 +GCP,asia-northeast3,n2-highmem-48,reserved_1y,NA,2.543952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708407 +GCP,asia-northeast3,n2-highmem-48,reserved_3y,NA,1.81728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708421 +GCP,asia-northeast3,n2-highmem-48,spot,NA,1.302336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708393 +GCP,asia-northeast3,n2-highmem-64,on_demand,NA,5.383872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709476 +GCP,asia-northeast3,n2-highmem-64,reserved_1y,NA,3.391936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709504 +GCP,asia-northeast3,n2-highmem-64,reserved_3y,NA,2.42304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709518 +GCP,asia-northeast3,n2-highmem-64,spot,NA,1.736448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709490 +GCP,asia-northeast3,n2-highmem-8,on_demand,NA,0.672984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704968 +GCP,asia-northeast3,n2-highmem-8,reserved_1y,NA,0.423992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704996 +GCP,asia-northeast3,n2-highmem-8,reserved_3y,NA,0.30288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705052 +GCP,asia-northeast3,n2-highmem-8,spot,NA,0.217056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704982 +GCP,asia-northeast3,n2-highmem-80,on_demand,NA,6.72984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710563 +GCP,asia-northeast3,n2-highmem-80,reserved_1y,NA,4.23992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710591 +GCP,asia-northeast3,n2-highmem-80,reserved_3y,NA,3.0288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710604 +GCP,asia-northeast3,n2-highmem-80,spot,NA,2.17056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710577 +GCP,asia-northeast3,n2-standard-16,on_demand,NA,0.997744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697151 +GCP,asia-northeast3,n2-standard-16,reserved_1y,NA,0.628592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697181 +GCP,asia-northeast3,n2-standard-16,reserved_3y,NA,0.449024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697195 +GCP,asia-northeast3,n2-standard-16,spot,NA,0.321856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697167 +GCP,asia-northeast3,n2-standard-32,on_demand,NA,1.995488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698272 +GCP,asia-northeast3,n2-standard-32,reserved_1y,NA,1.257184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698301 +GCP,asia-northeast3,n2-standard-32,reserved_3y,NA,0.898048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698315 +GCP,asia-northeast3,n2-standard-32,spot,NA,0.643712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698287 +GCP,asia-northeast3,n2-standard-4,on_demand,NA,0.249436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694883 +GCP,asia-northeast3,n2-standard-4,reserved_1y,NA,0.157148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694911 +GCP,asia-northeast3,n2-standard-4,reserved_3y,NA,0.112256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694933 +GCP,asia-northeast3,n2-standard-4,spot,NA,0.080464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694897 +GCP,asia-northeast3,n2-standard-48,on_demand,NA,2.993232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699410 +GCP,asia-northeast3,n2-standard-48,reserved_1y,NA,1.885776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699439 +GCP,asia-northeast3,n2-standard-48,reserved_3y,NA,1.347072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699453 +GCP,asia-northeast3,n2-standard-48,spot,NA,0.965568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699424 +GCP,asia-northeast3,n2-standard-64,on_demand,NA,3.990976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700507 +GCP,asia-northeast3,n2-standard-64,reserved_1y,NA,2.514368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700535 +GCP,asia-northeast3,n2-standard-64,reserved_3y,NA,1.796096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700549 +GCP,asia-northeast3,n2-standard-64,spot,NA,1.287424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700521 +GCP,asia-northeast3,n2-standard-8,on_demand,NA,0.498872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696065 +GCP,asia-northeast3,n2-standard-8,reserved_1y,NA,0.314296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696094 +GCP,asia-northeast3,n2-standard-8,reserved_3y,NA,0.224512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696108 +GCP,asia-northeast3,n2-standard-8,spot,NA,0.160928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696079 +GCP,asia-northeast3,n2-standard-80,on_demand,NA,4.98872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701627 +GCP,asia-northeast3,n2-standard-80,reserved_1y,NA,3.14296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701654 +GCP,asia-northeast3,n2-standard-80,reserved_3y,NA,2.24512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701667 +GCP,asia-northeast3,n2-standard-80,spot,NA,1.60928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701641 +GCP,asia-northeast3,n2d-highcpu-128,on_demand,NA,5.126656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753040 +GCP,asia-northeast3,n2d-highcpu-128,reserved_1y,NA,3.229696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753068 +GCP,asia-northeast3,n2d-highcpu-128,reserved_3y,NA,2.306944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753082 +GCP,asia-northeast3,n2d-highcpu-128,spot,NA,0.6592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753054 +GCP,asia-northeast3,n2d-highcpu-16,on_demand,NA,0.640832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746733 +GCP,asia-northeast3,n2d-highcpu-16,reserved_1y,NA,0.403712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746761 +GCP,asia-northeast3,n2d-highcpu-16,reserved_3y,NA,0.288368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746774 +GCP,asia-northeast3,n2d-highcpu-16,spot,NA,0.0824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746747 +GCP,asia-northeast3,n2d-highcpu-224,on_demand,NA,8.971648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754064 +GCP,asia-northeast3,n2d-highcpu-224,reserved_1y,NA,5.651968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754092 +GCP,asia-northeast3,n2d-highcpu-224,reserved_3y,NA,4.037152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754106 +GCP,asia-northeast3,n2d-highcpu-224,spot,NA,1.1536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754078 +GCP,asia-northeast3,n2d-highcpu-32,on_demand,NA,1.281664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747790 +GCP,asia-northeast3,n2d-highcpu-32,reserved_1y,NA,0.807424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747819 +GCP,asia-northeast3,n2d-highcpu-32,reserved_3y,NA,0.576736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747833 +GCP,asia-northeast3,n2d-highcpu-32,spot,NA,0.1648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747804 +GCP,asia-northeast3,n2d-highcpu-48,on_demand,NA,1.922496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748855 +GCP,asia-northeast3,n2d-highcpu-48,reserved_1y,NA,1.211136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748884 +GCP,asia-northeast3,n2d-highcpu-48,reserved_3y,NA,0.865104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748898 +GCP,asia-northeast3,n2d-highcpu-48,spot,NA,0.2472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748869 +GCP,asia-northeast3,n2d-highcpu-64,on_demand,NA,2.563328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749898 +GCP,asia-northeast3,n2d-highcpu-64,reserved_1y,NA,1.614848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749926 +GCP,asia-northeast3,n2d-highcpu-64,reserved_3y,NA,1.153472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749941 +GCP,asia-northeast3,n2d-highcpu-64,spot,NA,0.3296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749912 +GCP,asia-northeast3,n2d-highcpu-80,on_demand,NA,3.20416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750953 +GCP,asia-northeast3,n2d-highcpu-80,reserved_1y,NA,2.01856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750981 +GCP,asia-northeast3,n2d-highcpu-80,reserved_3y,NA,1.44184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750995 +GCP,asia-northeast3,n2d-highcpu-80,spot,NA,0.412,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750967 +GCP,asia-northeast3,n2d-highcpu-96,on_demand,NA,3.844992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752009 +GCP,asia-northeast3,n2d-highcpu-96,reserved_1y,NA,2.422272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752037 +GCP,asia-northeast3,n2d-highcpu-96,reserved_3y,NA,1.730208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752051 +GCP,asia-northeast3,n2d-highcpu-96,spot,NA,0.4944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752023 +GCP,asia-northeast3,n2d-highmem-16,on_demand,NA,1.17104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740470 +GCP,asia-northeast3,n2d-highmem-16,reserved_1y,NA,0.737696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740498 +GCP,asia-northeast3,n2d-highmem-16,reserved_3y,NA,0.526928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740511 +GCP,asia-northeast3,n2d-highmem-16,spot,NA,0.15072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740485 +GCP,asia-northeast3,n2d-highmem-2,on_demand,NA,0.14638,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737247 +GCP,asia-northeast3,n2d-highmem-2,reserved_1y,NA,0.092212,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737276 +GCP,asia-northeast3,n2d-highmem-2,reserved_3y,NA,0.065866,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737290 +GCP,asia-northeast3,n2d-highmem-2,spot,NA,0.01884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737261 +GCP,asia-northeast3,n2d-highmem-32,on_demand,NA,2.34208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741478 +GCP,asia-northeast3,n2d-highmem-32,reserved_1y,NA,1.475392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741504 +GCP,asia-northeast3,n2d-highmem-32,reserved_3y,NA,1.053856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741518 +GCP,asia-northeast3,n2d-highmem-32,spot,NA,0.30144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741491 +GCP,asia-northeast3,n2d-highmem-4,on_demand,NA,0.29276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738325 +GCP,asia-northeast3,n2d-highmem-4,reserved_1y,NA,0.184424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738354 +GCP,asia-northeast3,n2d-highmem-4,reserved_3y,NA,0.131732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738368 +GCP,asia-northeast3,n2d-highmem-4,spot,NA,0.03768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738339 +GCP,asia-northeast3,n2d-highmem-48,on_demand,NA,3.51312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742553 +GCP,asia-northeast3,n2d-highmem-48,reserved_1y,NA,2.213088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742580 +GCP,asia-northeast3,n2d-highmem-48,reserved_3y,NA,1.580784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742593 +GCP,asia-northeast3,n2d-highmem-48,spot,NA,0.45216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742567 +GCP,asia-northeast3,n2d-highmem-64,on_demand,NA,4.68416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743610 +GCP,asia-northeast3,n2d-highmem-64,reserved_1y,NA,2.950784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743638 +GCP,asia-northeast3,n2d-highmem-64,reserved_3y,NA,2.107712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743652 +GCP,asia-northeast3,n2d-highmem-64,spot,NA,0.60288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743624 +GCP,asia-northeast3,n2d-highmem-8,on_demand,NA,0.58552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739401 +GCP,asia-northeast3,n2d-highmem-8,reserved_1y,NA,0.368848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739429 +GCP,asia-northeast3,n2d-highmem-8,reserved_3y,NA,0.263464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739443 +GCP,asia-northeast3,n2d-highmem-8,spot,NA,0.07536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739415 +GCP,asia-northeast3,n2d-highmem-80,on_demand,NA,5.8552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744689 +GCP,asia-northeast3,n2d-highmem-80,reserved_1y,NA,3.68848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744716 +GCP,asia-northeast3,n2d-highmem-80,reserved_3y,NA,2.63464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744730 +GCP,asia-northeast3,n2d-highmem-80,spot,NA,0.7536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744703 +GCP,asia-northeast3,n2d-highmem-96,on_demand,NA,7.02624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745713 +GCP,asia-northeast3,n2d-highmem-96,reserved_1y,NA,4.426176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745741 +GCP,asia-northeast3,n2d-highmem-96,reserved_3y,NA,3.161568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745754 +GCP,asia-northeast3,n2d-highmem-96,spot,NA,0.90432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745727 +GCP,asia-northeast3,n2d-standard-128,on_demand,NA,6.944512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735163 +GCP,asia-northeast3,n2d-standard-128,reserved_1y,NA,4.374784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735191 +GCP,asia-northeast3,n2d-standard-128,reserved_3y,NA,3.124864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735205 +GCP,asia-northeast3,n2d-standard-128,spot,NA,0.89344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735177 +GCP,asia-northeast3,n2d-standard-16,on_demand,NA,0.868064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728838 +GCP,asia-northeast3,n2d-standard-16,reserved_1y,NA,0.546848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728866 +GCP,asia-northeast3,n2d-standard-16,reserved_3y,NA,0.390608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728879 +GCP,asia-northeast3,n2d-standard-16,spot,NA,0.11168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728852 +GCP,asia-northeast3,n2d-standard-224,on_demand,NA,12.152896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736204 +GCP,asia-northeast3,n2d-standard-224,reserved_1y,NA,7.655872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736232 +GCP,asia-northeast3,n2d-standard-224,reserved_3y,NA,5.468512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736247 +GCP,asia-northeast3,n2d-standard-224,spot,NA,1.56352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736217 +GCP,asia-northeast3,n2d-standard-32,on_demand,NA,1.736128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729870 +GCP,asia-northeast3,n2d-standard-32,reserved_1y,NA,1.093696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729898 +GCP,asia-northeast3,n2d-standard-32,reserved_3y,NA,0.781216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729912 +GCP,asia-northeast3,n2d-standard-32,spot,NA,0.22336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729884 +GCP,asia-northeast3,n2d-standard-4,on_demand,NA,0.217016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726720 +GCP,asia-northeast3,n2d-standard-4,reserved_1y,NA,0.136712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726749 +GCP,asia-northeast3,n2d-standard-4,reserved_3y,NA,0.097652,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726763 +GCP,asia-northeast3,n2d-standard-4,spot,NA,0.02792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726735 +GCP,asia-northeast3,n2d-standard-48,on_demand,NA,2.604192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730900 +GCP,asia-northeast3,n2d-standard-48,reserved_1y,NA,1.640544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730936 +GCP,asia-northeast3,n2d-standard-48,reserved_3y,NA,1.171824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730950 +GCP,asia-northeast3,n2d-standard-48,spot,NA,0.33504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730921 +GCP,asia-northeast3,n2d-standard-64,on_demand,NA,3.472256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732011 +GCP,asia-northeast3,n2d-standard-64,reserved_1y,NA,2.187392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732039 +GCP,asia-northeast3,n2d-standard-64,reserved_3y,NA,1.562432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732053 +GCP,asia-northeast3,n2d-standard-64,spot,NA,0.44672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732025 +GCP,asia-northeast3,n2d-standard-8,on_demand,NA,0.434032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727782 +GCP,asia-northeast3,n2d-standard-8,reserved_1y,NA,0.273424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727809 +GCP,asia-northeast3,n2d-standard-8,reserved_3y,NA,0.195304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727823 +GCP,asia-northeast3,n2d-standard-8,spot,NA,0.05584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727796 +GCP,asia-northeast3,n2d-standard-80,on_demand,NA,4.34032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733053 +GCP,asia-northeast3,n2d-standard-80,reserved_1y,NA,2.73424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733081 +GCP,asia-northeast3,n2d-standard-80,reserved_3y,NA,1.95304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733096 +GCP,asia-northeast3,n2d-standard-80,spot,NA,0.5584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733067 +GCP,asia-northeast3,n2d-standard-96,on_demand,NA,5.208384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734106 +GCP,asia-northeast3,n2d-standard-96,reserved_1y,NA,3.281088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734135 +GCP,asia-northeast3,n2d-standard-96,reserved_3y,NA,2.343648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734149 +GCP,asia-northeast3,n2d-standard-96,spot,NA,0.67008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734121 +GCP,asia-northeast3,n4-standard-16,on_demand,NA,0.931816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758232 +GCP,asia-northeast3,n4-standard-16,reserved_1y,NA,0.587034,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758260 +GCP,asia-northeast3,n4-standard-16,reserved_3y,NA,0.419327,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758274 +GCP,asia-northeast3,n4-standard-16,spot,NA,0.389504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758246 +GCP,asia-northeast3,n4-standard-2,on_demand,NA,0.116477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755114 +GCP,asia-northeast3,n4-standard-2,reserved_1y,NA,0.073379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755141 +GCP,asia-northeast3,n4-standard-2,reserved_3y,NA,0.052416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755156 +GCP,asia-northeast3,n4-standard-2,spot,NA,0.048688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755128 +GCP,asia-northeast3,n4-standard-32,on_demand,NA,1.863631,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759276 +GCP,asia-northeast3,n4-standard-32,reserved_1y,NA,1.174067,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759304 +GCP,asia-northeast3,n4-standard-32,reserved_3y,NA,0.838655,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759318 +GCP,asia-northeast3,n4-standard-32,spot,NA,0.779008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759290 +GCP,asia-northeast3,n4-standard-4,on_demand,NA,0.232954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756165 +GCP,asia-northeast3,n4-standard-4,reserved_1y,NA,0.146758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756192 +GCP,asia-northeast3,n4-standard-4,reserved_3y,NA,0.104832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756206 +GCP,asia-northeast3,n4-standard-4,spot,NA,0.097376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756179 +GCP,asia-northeast3,n4-standard-8,on_demand,NA,0.465908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757194 +GCP,asia-northeast3,n4-standard-8,reserved_1y,NA,0.293517,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757222 +GCP,asia-northeast3,n4-standard-8,reserved_3y,NA,0.209664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757236 +GCP,asia-northeast3,n4-standard-8,spot,NA,0.194752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757208 +GCP,asia-south1,a2-highgpu-1g,on_demand,NA,0.88812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771001 +GCP,asia-south1,a2-highgpu-1g,reserved_1y,NA,0.559488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771028 +GCP,asia-south1,a2-highgpu-1g,reserved_3y,NA,0.310869,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771042 +GCP,asia-south1,a2-highgpu-1g,spot,NA,0.204763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771015 +GCP,asia-south1,a2-highgpu-2g,on_demand,NA,1.77624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772105 +GCP,asia-south1,a2-highgpu-2g,reserved_1y,NA,1.118976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772133 +GCP,asia-south1,a2-highgpu-2g,reserved_3y,NA,0.621739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772147 +GCP,asia-south1,a2-highgpu-2g,spot,NA,0.409527,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772120 +GCP,asia-south1,a2-highgpu-4g,on_demand,NA,3.55248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773190 +GCP,asia-south1,a2-highgpu-4g,reserved_1y,NA,2.237952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773218 +GCP,asia-south1,a2-highgpu-4g,reserved_3y,NA,1.243477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773232 +GCP,asia-south1,a2-highgpu-4g,spot,NA,0.819054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773204 +GCP,asia-south1,a2-highgpu-8g,on_demand,NA,7.10496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774313 +GCP,asia-south1,a2-highgpu-8g,reserved_1y,NA,4.475903,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774341 +GCP,asia-south1,a2-highgpu-8g,reserved_3y,NA,2.486955,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774355 +GCP,asia-south1,a2-highgpu-8g,spot,NA,1.638108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774327 +GCP,asia-south1,a2-megagpu-16g,on_demand,NA,10.5648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775407 +GCP,asia-south1,a2-megagpu-16g,reserved_1y,NA,6.655371,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775434 +GCP,asia-south1,a2-megagpu-16g,reserved_3y,NA,3.69811,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775448 +GCP,asia-south1,a2-megagpu-16g,spot,NA,2.502456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775421 +GCP,asia-south1,a2-ultragpu-1g,on_demand,NA,1.3206,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776504 +GCP,asia-south1,a2-ultragpu-1g,reserved_1y,NA,0.831921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776531 +GCP,asia-south1,a2-ultragpu-1g,reserved_3y,NA,0.462264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776544 +GCP,asia-south1,a2-ultragpu-1g,spot,NA,0.312807,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776517 +GCP,asia-south1,a2-ultragpu-2g,on_demand,NA,2.6412,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777629 +GCP,asia-south1,a2-ultragpu-2g,reserved_1y,NA,1.663843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777657 +GCP,asia-south1,a2-ultragpu-2g,reserved_3y,NA,0.924528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777671 +GCP,asia-south1,a2-ultragpu-2g,spot,NA,0.625614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777643 +GCP,asia-south1,a2-ultragpu-4g,on_demand,NA,5.2824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778670 +GCP,asia-south1,a2-ultragpu-4g,reserved_1y,NA,3.327686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778698 +GCP,asia-south1,a2-ultragpu-4g,reserved_3y,NA,1.849055,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778712 +GCP,asia-south1,a2-ultragpu-4g,spot,NA,1.251228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778685 +GCP,asia-south1,a2-ultragpu-8g,on_demand,NA,10.5648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779721 +GCP,asia-south1,a2-ultragpu-8g,reserved_1y,NA,6.655371,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779749 +GCP,asia-south1,a2-ultragpu-8g,reserved_3y,NA,3.69811,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779763 +GCP,asia-south1,a2-ultragpu-8g,spot,NA,2.502456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779735 +GCP,asia-south1,a3-highgpu-1g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780835 +GCP,asia-south1,a3-highgpu-1g,reserved_1y,NA,0.855265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780863 +GCP,asia-south1,a3-highgpu-1g,reserved_3y,NA,0.542009,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780877 +GCP,asia-south1,a3-highgpu-1g,spot,NA,0.221364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780849 +GCP,asia-south1,a3-highgpu-2g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781879 +GCP,asia-south1,a3-highgpu-2g,reserved_1y,NA,0.855265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781907 +GCP,asia-south1,a3-highgpu-2g,reserved_3y,NA,0.542009,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781921 +GCP,asia-south1,a3-highgpu-2g,spot,NA,0.221364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781893 +GCP,asia-south1,a3-highgpu-4g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783007 +GCP,asia-south1,a3-highgpu-4g,reserved_1y,NA,0.855265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783035 +GCP,asia-south1,a3-highgpu-4g,reserved_3y,NA,0.542009,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783048 +GCP,asia-south1,a3-highgpu-4g,spot,NA,0.221364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783021 +GCP,asia-south1,a3-highgpu-8g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784061 +GCP,asia-south1,a3-highgpu-8g,reserved_1y,NA,0.855265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784088 +GCP,asia-south1,a3-highgpu-8g,reserved_3y,NA,0.542009,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784102 +GCP,asia-south1,a3-highgpu-8g,spot,NA,0.221364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784075 +GCP,asia-south1,c2-standard-16,on_demand,NA,0.479424,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722055 +GCP,asia-south1,c2-standard-16,reserved_1y,NA,0.302016,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722100 +GCP,asia-south1,c2-standard-16,reserved_3y,NA,0.21568,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722123 +GCP,asia-south1,c2-standard-16,spot,NA,0.183072,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722078 +GCP,asia-south1,c2-standard-30,on_demand,NA,0.89892,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723735 +GCP,asia-south1,c2-standard-30,reserved_1y,NA,0.56628,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723781 +GCP,asia-south1,c2-standard-30,reserved_3y,NA,0.4044,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723804 +GCP,asia-south1,c2-standard-30,spot,NA,0.34326,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723758 +GCP,asia-south1,c2-standard-4,on_demand,NA,0.119856,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718590 +GCP,asia-south1,c2-standard-4,reserved_1y,NA,0.075504,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718642 +GCP,asia-south1,c2-standard-4,reserved_3y,NA,0.05392,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718666 +GCP,asia-south1,c2-standard-4,spot,NA,0.045768,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718617 +GCP,asia-south1,c2-standard-60,on_demand,NA,1.79784,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725473 +GCP,asia-south1,c2-standard-60,reserved_1y,NA,1.13256,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725518 +GCP,asia-south1,c2-standard-60,reserved_3y,NA,0.8088,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725541 +GCP,asia-south1,c2-standard-60,spot,NA,0.68652,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725495 +GCP,asia-south1,c2-standard-8,on_demand,NA,0.239712,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720348 +GCP,asia-south1,c2-standard-8,reserved_1y,NA,0.151008,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720396 +GCP,asia-south1,c2-standard-8,reserved_3y,NA,0.10784,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720419 +GCP,asia-south1,c2-standard-8,spot,NA,0.091536,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720372 +GCP,asia-south1,c3-highmem-22,on_demand,NA,0.15136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800965 +GCP,asia-south1,c3-highmem-22,reserved_1y,NA,0.953593,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800991 +GCP,asia-south1,c3-highmem-22,reserved_3y,NA,0.681115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801005 +GCP,asia-south1,c3-highmem-22,spot,NA,0.229504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800978 +GCP,asia-south1,c3-highmem-4,on_demand,NA,0.02752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798891 +GCP,asia-south1,c3-highmem-4,reserved_1y,NA,0.17338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798929 +GCP,asia-south1,c3-highmem-4,reserved_3y,NA,0.123839,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798943 +GCP,asia-south1,c3-highmem-4,spot,NA,0.041728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798905 +GCP,asia-south1,c3-highmem-44,on_demand,NA,0.302721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801975 +GCP,asia-south1,c3-highmem-44,reserved_1y,NA,1.907185,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802003 +GCP,asia-south1,c3-highmem-44,reserved_3y,NA,1.362229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802017 +GCP,asia-south1,c3-highmem-44,spot,NA,0.459008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801989 +GCP,asia-south1,c3-highmem-8,on_demand,NA,0.05504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799961 +GCP,asia-south1,c3-highmem-8,reserved_1y,NA,0.346761,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799988 +GCP,asia-south1,c3-highmem-8,reserved_3y,NA,0.247678,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800002 +GCP,asia-south1,c3-highmem-8,spot,NA,0.083456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799975 +GCP,asia-south1,c3-highmem-88,on_demand,NA,0.605441,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803007 +GCP,asia-south1,c3-highmem-88,reserved_1y,NA,3.814371,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803034 +GCP,asia-south1,c3-highmem-88,reserved_3y,NA,2.724459,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803047 +GCP,asia-south1,c3-highmem-88,spot,NA,0.918016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803020 +GCP,asia-south1,c3-standard-22 (-lssd),on_demand,NA,0.11532,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795684 +GCP,asia-south1,c3-standard-22 (-lssd),reserved_1y,NA,0.726532,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795714 +GCP,asia-south1,c3-standard-22 (-lssd),reserved_3y,NA,0.518941,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795728 +GCP,asia-south1,c3-standard-22 (-lssd),spot,NA,0.160952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795700 +GCP,asia-south1,c3-standard-4 (-lssd),on_demand,NA,0.020967,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793573 +GCP,asia-south1,c3-standard-4 (-lssd),reserved_1y,NA,0.132097,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793603 +GCP,asia-south1,c3-standard-4 (-lssd),reserved_3y,NA,0.094353,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793617 +GCP,asia-south1,c3-standard-4 (-lssd),spot,NA,0.029264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793587 +GCP,asia-south1,c3-standard-44 (-lssd),on_demand,NA,0.23064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796785 +GCP,asia-south1,c3-standard-44 (-lssd),reserved_1y,NA,1.453063,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796814 +GCP,asia-south1,c3-standard-44 (-lssd),reserved_3y,NA,1.037883,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796828 +GCP,asia-south1,c3-standard-44 (-lssd),spot,NA,0.321904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796800 +GCP,asia-south1,c3-standard-8 (-lssd),on_demand,NA,0.041934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794610 +GCP,asia-south1,c3-standard-8 (-lssd),reserved_1y,NA,0.264193,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794638 +GCP,asia-south1,c3-standard-8 (-lssd),reserved_3y,NA,0.188706,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794652 +GCP,asia-south1,c3-standard-8 (-lssd),spot,NA,0.058528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794624 +GCP,asia-south1,c3-standard-88 (-lssd),on_demand,NA,0.461279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797841 +GCP,asia-south1,c3-standard-88 (-lssd),reserved_1y,NA,2.906126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797869 +GCP,asia-south1,c3-standard-88 (-lssd),reserved_3y,NA,2.075765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797885 +GCP,asia-south1,c3-standard-88 (-lssd),spot,NA,0.643808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797855 +GCP,asia-south1,c3d-highmem-16 (-lssd),on_demand,NA,0.544631,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814773 +GCP,asia-south1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.641905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814802 +GCP,asia-south1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.458449,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814816 +GCP,asia-south1,c3d-highmem-16 (-lssd),spot,NA,0.374208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814787 +GCP,asia-south1,c3d-highmem-180 (-lssd),on_demand,NA,6.127093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818959 +GCP,asia-south1,c3d-highmem-180 (-lssd),reserved_1y,NA,7.221427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818987 +GCP,asia-south1,c3d-highmem-180 (-lssd),reserved_3y,NA,5.157547,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819000 +GCP,asia-south1,c3d-highmem-180 (-lssd),spot,NA,4.20984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818973 +GCP,asia-south1,c3d-highmem-30 (-lssd),on_demand,NA,1.021182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815831 +GCP,asia-south1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.203571,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815859 +GCP,asia-south1,c3d-highmem-30 (-lssd),reserved_3y,NA,0.859591,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815891 +GCP,asia-south1,c3d-highmem-30 (-lssd),spot,NA,0.70164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815845 +GCP,asia-south1,c3d-highmem-360 (-lssd),on_demand,NA,12.254187,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820003 +GCP,asia-south1,c3d-highmem-360 (-lssd),reserved_1y,NA,14.442854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820032 +GCP,asia-south1,c3d-highmem-360 (-lssd),reserved_3y,NA,10.315094,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820046 +GCP,asia-south1,c3d-highmem-360 (-lssd),spot,NA,8.41968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820017 +GCP,asia-south1,c3d-highmem-4 (-lssd),on_demand,NA,0.136158,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812516 +GCP,asia-south1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.160476,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812548 +GCP,asia-south1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.114612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812562 +GCP,asia-south1,c3d-highmem-4 (-lssd),spot,NA,0.093552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812530 +GCP,asia-south1,c3d-highmem-60 (-lssd),on_demand,NA,2.042364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816886 +GCP,asia-south1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.407142,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816914 +GCP,asia-south1,c3d-highmem-60 (-lssd),reserved_3y,NA,1.719182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816928 +GCP,asia-south1,c3d-highmem-60 (-lssd),spot,NA,1.40328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816900 +GCP,asia-south1,c3d-highmem-8 (-lssd),on_demand,NA,0.272315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813572 +GCP,asia-south1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.320952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813599 +GCP,asia-south1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.229224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813613 +GCP,asia-south1,c3d-highmem-8 (-lssd),spot,NA,0.187104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813586 +GCP,asia-south1,c3d-highmem-90 (-lssd),on_demand,NA,3.063547,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817920 +GCP,asia-south1,c3d-highmem-90 (-lssd),reserved_1y,NA,3.610714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817948 +GCP,asia-south1,c3d-highmem-90 (-lssd),reserved_3y,NA,2.578774,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817962 +GCP,asia-south1,c3d-highmem-90 (-lssd),spot,NA,2.10492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817934 +GCP,asia-south1,c3d-standard-16 (-lssd),on_demand,NA,0.518279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806153 +GCP,asia-south1,c3d-standard-16 (-lssd),reserved_1y,NA,0.475904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806182 +GCP,asia-south1,c3d-standard-16 (-lssd),reserved_3y,NA,0.339905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806196 +GCP,asia-south1,c3d-standard-16 (-lssd),spot,NA,0.277504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806168 +GCP,asia-south1,c3d-standard-180 (-lssd),on_demand,NA,5.830644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810405 +GCP,asia-south1,c3d-standard-180 (-lssd),reserved_1y,NA,5.35392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810433 +GCP,asia-south1,c3d-standard-180 (-lssd),reserved_3y,NA,3.823934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810447 +GCP,asia-south1,c3d-standard-180 (-lssd),spot,NA,3.12192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810419 +GCP,asia-south1,c3d-standard-30 (-lssd),on_demand,NA,0.971774,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807217 +GCP,asia-south1,c3d-standard-30 (-lssd),reserved_1y,NA,0.89232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807245 +GCP,asia-south1,c3d-standard-30 (-lssd),reserved_3y,NA,0.637322,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807259 +GCP,asia-south1,c3d-standard-30 (-lssd),spot,NA,0.52032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807231 +GCP,asia-south1,c3d-standard-360 (-lssd),on_demand,NA,11.661287,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811456 +GCP,asia-south1,c3d-standard-360 (-lssd),reserved_1y,NA,10.70784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811484 +GCP,asia-south1,c3d-standard-360 (-lssd),reserved_3y,NA,7.647869,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811498 +GCP,asia-south1,c3d-standard-360 (-lssd),spot,NA,6.24384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811470 +GCP,asia-south1,c3d-standard-4 (-lssd),on_demand,NA,0.12957,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804094 +GCP,asia-south1,c3d-standard-4 (-lssd),reserved_1y,NA,0.118976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804122 +GCP,asia-south1,c3d-standard-4 (-lssd),reserved_3y,NA,0.084976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804135 +GCP,asia-south1,c3d-standard-4 (-lssd),spot,NA,0.069376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804108 +GCP,asia-south1,c3d-standard-60 (-lssd),on_demand,NA,1.943548,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808288 +GCP,asia-south1,c3d-standard-60 (-lssd),reserved_1y,NA,1.78464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808320 +GCP,asia-south1,c3d-standard-60 (-lssd),reserved_3y,NA,1.274645,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808334 +GCP,asia-south1,c3d-standard-60 (-lssd),spot,NA,1.04064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808302 +GCP,asia-south1,c3d-standard-8 (-lssd),on_demand,NA,0.25914,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805112 +GCP,asia-south1,c3d-standard-8 (-lssd),reserved_1y,NA,0.237952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805142 +GCP,asia-south1,c3d-standard-8 (-lssd),reserved_3y,NA,0.169953,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805155 +GCP,asia-south1,c3d-standard-8 (-lssd),spot,NA,0.138752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805126 +GCP,asia-south1,c3d-standard-90 (-lssd),on_demand,NA,2.915322,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809346 +GCP,asia-south1,c3d-standard-90 (-lssd),reserved_1y,NA,2.67696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809373 +GCP,asia-south1,c3d-standard-90 (-lssd),reserved_3y,NA,1.911967,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809387 +GCP,asia-south1,c3d-standard-90 (-lssd),spot,NA,1.56096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809360 +GCP,asia-south1,c4-standard-16,on_demand,NA,0.822307,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841373 +GCP,asia-south1,c4-standard-16,reserved_1y,NA,0.518066,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841401 +GCP,asia-south1,c4-standard-16,reserved_3y,NA,0.37004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841415 +GCP,asia-south1,c4-standard-16,spot,NA,0.32878,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841387 +GCP,asia-south1,c4-standard-2,on_demand,NA,0.100741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838104 +GCP,asia-south1,c4-standard-2,reserved_1y,NA,0.063468,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838132 +GCP,asia-south1,c4-standard-2,reserved_3y,NA,0.045334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838147 +GCP,asia-south1,c4-standard-2,spot,NA,0.040279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838118 +GCP,asia-south1,c4-standard-24,on_demand,NA,1.233461,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842453 +GCP,asia-south1,c4-standard-24,reserved_1y,NA,0.777098,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842480 +GCP,asia-south1,c4-standard-24,reserved_3y,NA,0.55506,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842494 +GCP,asia-south1,c4-standard-24,spot,NA,0.49317,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842466 +GCP,asia-south1,c4-standard-32,on_demand,NA,1.644614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843629 +GCP,asia-south1,c4-standard-32,reserved_1y,NA,1.036131,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843658 +GCP,asia-south1,c4-standard-32,reserved_3y,NA,0.740081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843673 +GCP,asia-south1,c4-standard-32,spot,NA,0.65756,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843644 +GCP,asia-south1,c4-standard-4,on_demand,NA,0.205577,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839144 +GCP,asia-south1,c4-standard-4,reserved_1y,NA,0.129516,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839171 +GCP,asia-south1,c4-standard-4,reserved_3y,NA,0.09251,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839184 +GCP,asia-south1,c4-standard-4,spot,NA,0.082195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839157 +GCP,asia-south1,c4-standard-8,on_demand,NA,0.411154,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840291 +GCP,asia-south1,c4-standard-8,reserved_1y,NA,0.259033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840322 +GCP,asia-south1,c4-standard-8,reserved_3y,NA,0.18502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840336 +GCP,asia-south1,c4-standard-8,spot,NA,0.16439,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840307 +GCP,asia-south1,c4a-highmem-16 (-lssd),on_demand,NA,0.518618,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832178 +GCP,asia-south1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.646416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832206 +GCP,asia-south1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.441504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832220 +GCP,asia-south1,c4a-highmem-16 (-lssd),spot,NA,0.303712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832192 +GCP,asia-south1,c4a-highmem-32 (-lssd),on_demand,NA,1.037235,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833390 +GCP,asia-south1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.292832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833418 +GCP,asia-south1,c4a-highmem-32 (-lssd),reserved_3y,NA,0.883008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833432 +GCP,asia-south1,c4a-highmem-32 (-lssd),spot,NA,0.607424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833404 +GCP,asia-south1,c4a-highmem-4 (-lssd),on_demand,NA,0.129654,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829706 +GCP,asia-south1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.161604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829736 +GCP,asia-south1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.110376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829751 +GCP,asia-south1,c4a-highmem-4 (-lssd),spot,NA,0.075928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829722 +GCP,asia-south1,c4a-highmem-48 (-lssd),on_demand,NA,1.555853,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834600 +GCP,asia-south1,c4a-highmem-48 (-lssd),reserved_1y,NA,1.939248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834626 +GCP,asia-south1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.324512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834639 +GCP,asia-south1,c4a-highmem-48 (-lssd),spot,NA,0.911136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834613 +GCP,asia-south1,c4a-highmem-64 (-lssd),on_demand,NA,2.07447,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835761 +GCP,asia-south1,c4a-highmem-64 (-lssd),reserved_1y,NA,2.585664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835787 +GCP,asia-south1,c4a-highmem-64 (-lssd),reserved_3y,NA,1.766016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835800 +GCP,asia-south1,c4a-highmem-64 (-lssd),spot,NA,1.214848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835774 +GCP,asia-south1,c4a-highmem-72 (-lssd),on_demand,NA,2.333779,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836936 +GCP,asia-south1,c4a-highmem-72 (-lssd),reserved_1y,NA,2.908872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836962 +GCP,asia-south1,c4a-highmem-72 (-lssd),reserved_3y,NA,1.986768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836975 +GCP,asia-south1,c4a-highmem-72 (-lssd),spot,NA,1.366704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836949 +GCP,asia-south1,c4a-highmem-8 (-lssd),on_demand,NA,0.259309,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830935 +GCP,asia-south1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.323208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830962 +GCP,asia-south1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.220752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830976 +GCP,asia-south1,c4a-highmem-8 (-lssd),spot,NA,0.151856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830949 +GCP,asia-south1,c4a-standard-16 (-lssd),on_demand,NA,0.285018,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823624 +GCP,asia-south1,c4a-standard-16 (-lssd),reserved_1y,NA,0.492688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823652 +GCP,asia-south1,c4a-standard-16 (-lssd),reserved_3y,NA,0.336352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823666 +GCP,asia-south1,c4a-standard-16 (-lssd),spot,NA,0.249376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823638 +GCP,asia-south1,c4a-standard-32 (-lssd),on_demand,NA,0.570035,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824869 +GCP,asia-south1,c4a-standard-32 (-lssd),reserved_1y,NA,0.985376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824897 +GCP,asia-south1,c4a-standard-32 (-lssd),reserved_3y,NA,0.672704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824911 +GCP,asia-south1,c4a-standard-32 (-lssd),spot,NA,0.498752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824883 +GCP,asia-south1,c4a-standard-4 (-lssd),on_demand,NA,0.071254,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821164 +GCP,asia-south1,c4a-standard-4 (-lssd),reserved_1y,NA,0.123172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821192 +GCP,asia-south1,c4a-standard-4 (-lssd),reserved_3y,NA,0.084088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821206 +GCP,asia-south1,c4a-standard-4 (-lssd),spot,NA,0.062344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821178 +GCP,asia-south1,c4a-standard-48 (-lssd),on_demand,NA,0.855053,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826091 +GCP,asia-south1,c4a-standard-48 (-lssd),reserved_1y,NA,1.478064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826119 +GCP,asia-south1,c4a-standard-48 (-lssd),reserved_3y,NA,1.009056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826133 +GCP,asia-south1,c4a-standard-48 (-lssd),spot,NA,0.748128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826105 +GCP,asia-south1,c4a-standard-64 (-lssd),on_demand,NA,1.14007,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827315 +GCP,asia-south1,c4a-standard-64 (-lssd),reserved_1y,NA,1.970752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827343 +GCP,asia-south1,c4a-standard-64 (-lssd),reserved_3y,NA,1.345408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827357 +GCP,asia-south1,c4a-standard-64 (-lssd),spot,NA,0.997504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827329 +GCP,asia-south1,c4a-standard-72 (-lssd),on_demand,NA,1.282579,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828517 +GCP,asia-south1,c4a-standard-72 (-lssd),reserved_1y,NA,2.217096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828544 +GCP,asia-south1,c4a-standard-72 (-lssd),reserved_3y,NA,1.513584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828558 +GCP,asia-south1,c4a-standard-72 (-lssd),spot,NA,1.122192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828531 +GCP,asia-south1,c4a-standard-8 (-lssd),on_demand,NA,0.142509,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822388 +GCP,asia-south1,c4a-standard-8 (-lssd),reserved_1y,NA,0.246344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822416 +GCP,asia-south1,c4a-standard-8 (-lssd),reserved_3y,NA,0.168176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822429 +GCP,asia-south1,c4a-standard-8 (-lssd),spot,NA,0.124688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822402 +GCP,asia-south1,c4d-standard-16,on_demand,NA,0.279813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848786 +GCP,asia-south1,c4d-standard-16,reserved_1y,NA,0.484837,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848814 +GCP,asia-south1,c4d-standard-16,reserved_3y,NA,0.346312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848828 +GCP,asia-south1,c4d-standard-16,spot,NA,0.254746,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848800 +GCP,asia-south1,c4d-standard-2,on_demand,NA,0.03225,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844893 +GCP,asia-south1,c4d-standard-2,reserved_1y,NA,0.058887,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844922 +GCP,asia-south1,c4d-standard-2,reserved_3y,NA,0.042062,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844937 +GCP,asia-south1,c4d-standard-2,spot,NA,0.030941,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844908 +GCP,asia-south1,c4d-standard-32,on_demand,NA,0.559625,USD,GCP Cloud Billing API,2025-11-30T12:53:25.850105 +GCP,asia-south1,c4d-standard-32,reserved_1y,NA,0.969673,USD,GCP Cloud Billing API,2025-11-30T12:53:25.850133 +GCP,asia-south1,c4d-standard-32,reserved_3y,NA,0.692623,USD,GCP Cloud Billing API,2025-11-30T12:53:25.850146 +GCP,asia-south1,c4d-standard-32,spot,NA,0.509492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.850119 +GCP,asia-south1,c4d-standard-4,on_demand,NA,0.068135,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846192 +GCP,asia-south1,c4d-standard-4,reserved_1y,NA,0.120064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846220 +GCP,asia-south1,c4d-standard-4,reserved_3y,NA,0.08576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846234 +GCP,asia-south1,c4d-standard-4,spot,NA,0.063085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846207 +GCP,asia-south1,c4d-standard-8,on_demand,NA,0.139906,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847458 +GCP,asia-south1,c4d-standard-8,reserved_1y,NA,0.242418,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847487 +GCP,asia-south1,c4d-standard-8,reserved_3y,NA,0.173156,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847501 +GCP,asia-south1,c4d-standard-8,spot,NA,0.127373,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847472 +GCP,asia-south1,e2_highcpu_16,on_demand,NA,0.47536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764558 +GCP,asia-south1,e2_highcpu_16,reserved_1y,NA,0.299477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764586 +GCP,asia-south1,e2_highcpu_16,reserved_3y,NA,0.213912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764599 +GCP,asia-south1,e2_highcpu_16,spot,NA,0.190128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764572 +GCP,asia-south1,e2_highcpu_32,on_demand,NA,0.950721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765594 +GCP,asia-south1,e2_highcpu_32,reserved_1y,NA,0.598954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765623 +GCP,asia-south1,e2_highcpu_32,reserved_3y,NA,0.427824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765637 +GCP,asia-south1,e2_highcpu_32,spot,NA,0.380256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765609 +GCP,asia-south1,e2_highmem_16,on_demand,NA,0.868561,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763451 +GCP,asia-south1,e2_highmem_16,reserved_1y,NA,0.547193,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763480 +GCP,asia-south1,e2_highmem_16,reserved_3y,NA,0.390852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763494 +GCP,asia-south1,e2_highmem_16,spot,NA,0.347264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763466 +GCP,asia-south1,e2_highmem_2,on_demand,NA,0.10857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760339 +GCP,asia-south1,e2_highmem_2,reserved_1y,NA,0.068399,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760366 +GCP,asia-south1,e2_highmem_2,reserved_3y,NA,0.048857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760380 +GCP,asia-south1,e2_highmem_2,spot,NA,0.043408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760352 +GCP,asia-south1,e2_highmem_4,on_demand,NA,0.21714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761370 +GCP,asia-south1,e2_highmem_4,reserved_1y,NA,0.136798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761397 +GCP,asia-south1,e2_highmem_4,reserved_3y,NA,0.097713,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761411 +GCP,asia-south1,e2_highmem_4,spot,NA,0.086816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761383 +GCP,asia-south1,e2_highmem_8,on_demand,NA,0.43428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762401 +GCP,asia-south1,e2_highmem_8,reserved_1y,NA,0.273597,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762428 +GCP,asia-south1,e2_highmem_8,reserved_3y,NA,0.195426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762442 +GCP,asia-south1,e2_highmem_8,spot,NA,0.173632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762415 +GCP,asia-south1,e2_standard_16,on_demand,NA,0.643875,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768902 +GCP,asia-south1,e2_standard_16,reserved_1y,NA,0.405641,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768933 +GCP,asia-south1,e2_standard_16,reserved_3y,NA,0.289744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768948 +GCP,asia-south1,e2_standard_16,spot,NA,0.257472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768917 +GCP,asia-south1,e2_standard_32,on_demand,NA,1.28775,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769972 +GCP,asia-south1,e2_standard_32,reserved_1y,NA,0.811282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770000 +GCP,asia-south1,e2_standard_32,reserved_3y,NA,0.579487,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770013 +GCP,asia-south1,e2_standard_32,spot,NA,0.514944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769986 +GCP,asia-south1,e2_standard_4,on_demand,NA,0.160969,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766804 +GCP,asia-south1,e2_standard_4,reserved_1y,NA,0.10141,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766832 +GCP,asia-south1,e2_standard_4,reserved_3y,NA,0.072436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766846 +GCP,asia-south1,e2_standard_4,spot,NA,0.064368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766818 +GCP,asia-south1,e2_standard_8,on_demand,NA,0.321937,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767851 +GCP,asia-south1,e2_standard_8,reserved_1y,NA,0.202821,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767895 +GCP,asia-south1,e2_standard_8,reserved_3y,NA,0.144872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767909 +GCP,asia-south1,e2_standard_8,spot,NA,0.128736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767883 +GCP,asia-south1,g2-standard-12,on_demand,NA,0.326766,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787182 +GCP,asia-south1,g2-standard-12,reserved_1y,NA,0.288799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787209 +GCP,asia-south1,g2-standard-12,reserved_3y,NA,0.206285,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787223 +GCP,asia-south1,g2-standard-12,spot,NA,0.183312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787195 +GCP,asia-south1,g2-standard-16,on_demand,NA,0.435688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788270 +GCP,asia-south1,g2-standard-16,reserved_1y,NA,0.385065,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788298 +GCP,asia-south1,g2-standard-16,reserved_3y,NA,0.275046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788312 +GCP,asia-south1,g2-standard-16,spot,NA,0.244416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788284 +GCP,asia-south1,g2-standard-24,on_demand,NA,0.653532,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789308 +GCP,asia-south1,g2-standard-24,reserved_1y,NA,0.577598,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789336 +GCP,asia-south1,g2-standard-24,reserved_3y,NA,0.41257,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789350 +GCP,asia-south1,g2-standard-24,spot,NA,0.366624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789322 +GCP,asia-south1,g2-standard-32,on_demand,NA,0.871376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790337 +GCP,asia-south1,g2-standard-32,reserved_1y,NA,0.77013,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790365 +GCP,asia-south1,g2-standard-32,reserved_3y,NA,0.550093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790389 +GCP,asia-south1,g2-standard-32,spot,NA,0.488832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790351 +GCP,asia-south1,g2-standard-4,on_demand,NA,0.108922,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785110 +GCP,asia-south1,g2-standard-4,reserved_1y,NA,0.096266,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785139 +GCP,asia-south1,g2-standard-4,reserved_3y,NA,0.068762,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785153 +GCP,asia-south1,g2-standard-4,spot,NA,0.061104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785124 +GCP,asia-south1,g2-standard-48,on_demand,NA,1.307064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791389 +GCP,asia-south1,g2-standard-48,reserved_1y,NA,1.155196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791416 +GCP,asia-south1,g2-standard-48,reserved_3y,NA,0.825139,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791429 +GCP,asia-south1,g2-standard-48,spot,NA,0.733248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791402 +GCP,asia-south1,g2-standard-8,on_demand,NA,0.217844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786147 +GCP,asia-south1,g2-standard-8,reserved_1y,NA,0.192533,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786175 +GCP,asia-south1,g2-standard-8,reserved_3y,NA,0.137523,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786189 +GCP,asia-south1,g2-standard-8,spot,NA,0.122208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786161 +GCP,asia-south1,g2-standard-96,on_demand,NA,2.614127,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792511 +GCP,asia-south1,g2-standard-96,reserved_1y,NA,2.310391,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792539 +GCP,asia-south1,g2-standard-96,reserved_3y,NA,1.650279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792553 +GCP,asia-south1,g2-standard-96,spot,NA,1.466496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792525 +GCP,asia-south1,n1-highcpu-16,on_demand,NA,0.680787,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691209 +GCP,asia-south1,n1-highcpu-16,spot,NA,0.154014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691223 +GCP,asia-south1,n1-highcpu-32,on_demand,NA,1.361574,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692066 +GCP,asia-south1,n1-highcpu-32,spot,NA,0.308029,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692080 +GCP,asia-south1,n1-highcpu-64,on_demand,NA,2.723149,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692929 +GCP,asia-south1,n1-highcpu-64,spot,NA,0.616058,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692942 +GCP,asia-south1,n1-highcpu-96,on_demand,NA,4.084723,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693767 +GCP,asia-south1,n1-highcpu-96,spot,NA,0.924086,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693781 +GCP,asia-south1,n1-highmem-16,on_demand,NA,1.136672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687647 +GCP,asia-south1,n1-highmem-16,spot,NA,0.257144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687661 +GCP,asia-south1,n1-highmem-32,on_demand,NA,2.273344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688523 +GCP,asia-south1,n1-highmem-32,spot,NA,0.514288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688537 +GCP,asia-south1,n1-highmem-4,on_demand,NA,0.284168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685923 +GCP,asia-south1,n1-highmem-4,spot,NA,0.064286,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685936 +GCP,asia-south1,n1-highmem-64,on_demand,NA,4.546688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689455 +GCP,asia-south1,n1-highmem-64,spot,NA,1.028576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689469 +GCP,asia-south1,n1-highmem-8,on_demand,NA,0.568336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686736 +GCP,asia-south1,n1-highmem-8,spot,NA,0.128572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686750 +GCP,asia-south1,n1-highmem-96,on_demand,NA,6.820032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690347 +GCP,asia-south1,n1-highmem-96,spot,NA,1.542864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690361 +GCP,asia-south1,n1-standard-16,on_demand,NA,0.9128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681959 +GCP,asia-south1,n1-standard-16,spot,NA,0.2065,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681973 +GCP,asia-south1,n1-standard-32,on_demand,NA,1.8256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683001 +GCP,asia-south1,n1-standard-32,spot,NA,0.413,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683014 +GCP,asia-south1,n1-standard-4,on_demand,NA,0.2282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680217 +GCP,asia-south1,n1-standard-4,spot,NA,0.051625,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680231 +GCP,asia-south1,n1-standard-64,on_demand,NA,3.6512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683905 +GCP,asia-south1,n1-standard-64,spot,NA,0.826,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683919 +GCP,asia-south1,n1-standard-8,on_demand,NA,0.4564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681105 +GCP,asia-south1,n1-standard-8,spot,NA,0.10325,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681119 +GCP,asia-south1,n1-standard-96,on_demand,NA,5.4768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685005 +GCP,asia-south1,n1-standard-96,spot,NA,1.239,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685020 +GCP,asia-south1,n2-highcpu-16,on_demand,NA,0.172232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711641 +GCP,asia-south1,n2-highcpu-16,reserved_1y,NA,0.433968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711668 +GCP,asia-south1,n2-highcpu-16,reserved_3y,NA,0.31,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711682 +GCP,asia-south1,n2-highcpu-16,spot,NA,0.170512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711655 +GCP,asia-south1,n2-highcpu-32,on_demand,NA,0.344464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712749 +GCP,asia-south1,n2-highcpu-32,reserved_1y,NA,0.867936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712777 +GCP,asia-south1,n2-highcpu-32,reserved_3y,NA,0.62,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712791 +GCP,asia-south1,n2-highcpu-32,spot,NA,0.341024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712763 +GCP,asia-south1,n2-highcpu-48,on_demand,NA,0.516696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713869 +GCP,asia-south1,n2-highcpu-48,reserved_1y,NA,1.301904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713897 +GCP,asia-south1,n2-highcpu-48,reserved_3y,NA,0.93,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713911 +GCP,asia-south1,n2-highcpu-48,spot,NA,0.511536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713883 +GCP,asia-south1,n2-highcpu-64,on_demand,NA,0.688928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714969 +GCP,asia-south1,n2-highcpu-64,reserved_1y,NA,1.735872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714996 +GCP,asia-south1,n2-highcpu-64,reserved_3y,NA,1.24,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715009 +GCP,asia-south1,n2-highcpu-64,spot,NA,0.682048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714982 +GCP,asia-south1,n2-highcpu-80,on_demand,NA,0.86116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716078 +GCP,asia-south1,n2-highcpu-80,reserved_1y,NA,2.16984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716106 +GCP,asia-south1,n2-highcpu-80,reserved_3y,NA,1.55,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716121 +GCP,asia-south1,n2-highcpu-80,spot,NA,0.85256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716092 +GCP,asia-south1,n2-highmem-16,on_demand,NA,0.314696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706033 +GCP,asia-south1,n2-highmem-16,reserved_1y,NA,0.792928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706062 +GCP,asia-south1,n2-highmem-16,reserved_3y,NA,0.56648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706076 +GCP,asia-south1,n2-highmem-16,spot,NA,0.332576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706048 +GCP,asia-south1,n2-highmem-2,on_demand,NA,0.039337,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702674 +GCP,asia-south1,n2-highmem-2,reserved_1y,NA,0.099116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702703 +GCP,asia-south1,n2-highmem-2,reserved_3y,NA,0.07081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702717 +GCP,asia-south1,n2-highmem-2,spot,NA,0.041572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702689 +GCP,asia-south1,n2-highmem-32,on_demand,NA,0.629392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707205 +GCP,asia-south1,n2-highmem-32,reserved_1y,NA,1.585856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707236 +GCP,asia-south1,n2-highmem-32,reserved_3y,NA,1.13296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707250 +GCP,asia-south1,n2-highmem-32,spot,NA,0.665152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707222 +GCP,asia-south1,n2-highmem-4,on_demand,NA,0.078674,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703779 +GCP,asia-south1,n2-highmem-4,reserved_1y,NA,0.198232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703808 +GCP,asia-south1,n2-highmem-4,reserved_3y,NA,0.14162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703821 +GCP,asia-south1,n2-highmem-4,spot,NA,0.083144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703793 +GCP,asia-south1,n2-highmem-48,on_demand,NA,0.944088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708321 +GCP,asia-south1,n2-highmem-48,reserved_1y,NA,2.378784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708350 +GCP,asia-south1,n2-highmem-48,reserved_3y,NA,1.69944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708364 +GCP,asia-south1,n2-highmem-48,spot,NA,0.997728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708335 +GCP,asia-south1,n2-highmem-64,on_demand,NA,1.258784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709418 +GCP,asia-south1,n2-highmem-64,reserved_1y,NA,3.171712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709447 +GCP,asia-south1,n2-highmem-64,reserved_3y,NA,2.26592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709460 +GCP,asia-south1,n2-highmem-64,spot,NA,1.330304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709432 +GCP,asia-south1,n2-highmem-8,on_demand,NA,0.157348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704912 +GCP,asia-south1,n2-highmem-8,reserved_1y,NA,0.396464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704939 +GCP,asia-south1,n2-highmem-8,reserved_3y,NA,0.28324,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704953 +GCP,asia-south1,n2-highmem-8,spot,NA,0.166288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704926 +GCP,asia-south1,n2-highmem-80,on_demand,NA,1.57348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710509 +GCP,asia-south1,n2-highmem-80,reserved_1y,NA,3.96464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710535 +GCP,asia-south1,n2-highmem-80,reserved_3y,NA,2.8324,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710549 +GCP,asia-south1,n2-highmem-80,spot,NA,1.66288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710522 +GCP,asia-south1,n2-standard-16,on_demand,NA,0.233288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697095 +GCP,asia-south1,n2-standard-16,reserved_1y,NA,0.587808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697122 +GCP,asia-south1,n2-standard-16,reserved_3y,NA,0.41992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697136 +GCP,asia-south1,n2-standard-16,spot,NA,0.239968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697108 +GCP,asia-south1,n2-standard-32,on_demand,NA,0.466576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698216 +GCP,asia-south1,n2-standard-32,reserved_1y,NA,1.175616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698243 +GCP,asia-south1,n2-standard-32,reserved_3y,NA,0.83984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698257 +GCP,asia-south1,n2-standard-32,spot,NA,0.479936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698230 +GCP,asia-south1,n2-standard-4,on_demand,NA,0.058322,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694824 +GCP,asia-south1,n2-standard-4,reserved_1y,NA,0.146952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694853 +GCP,asia-south1,n2-standard-4,reserved_3y,NA,0.10498,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694867 +GCP,asia-south1,n2-standard-4,spot,NA,0.059992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694839 +GCP,asia-south1,n2-standard-48,on_demand,NA,0.699864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699352 +GCP,asia-south1,n2-standard-48,reserved_1y,NA,1.763424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699380 +GCP,asia-south1,n2-standard-48,reserved_3y,NA,1.25976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699395 +GCP,asia-south1,n2-standard-48,spot,NA,0.719904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699366 +GCP,asia-south1,n2-standard-64,on_demand,NA,0.933152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700450 +GCP,asia-south1,n2-standard-64,reserved_1y,NA,2.351232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700478 +GCP,asia-south1,n2-standard-64,reserved_3y,NA,1.67968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700492 +GCP,asia-south1,n2-standard-64,spot,NA,0.959872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700464 +GCP,asia-south1,n2-standard-8,on_demand,NA,0.116644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695982 +GCP,asia-south1,n2-standard-8,reserved_1y,NA,0.293904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696010 +GCP,asia-south1,n2-standard-8,reserved_3y,NA,0.20996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696024 +GCP,asia-south1,n2-standard-8,spot,NA,0.119984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695996 +GCP,asia-south1,n2-standard-80,on_demand,NA,1.16644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701575 +GCP,asia-south1,n2-standard-80,reserved_1y,NA,2.93904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701600 +GCP,asia-south1,n2-standard-80,reserved_3y,NA,2.0996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701613 +GCP,asia-south1,n2-standard-80,spot,NA,1.19984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701587 +GCP,asia-south1,n2d-highcpu-128,on_demand,NA,2.35447,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752984 +GCP,asia-south1,n2d-highcpu-128,reserved_1y,NA,1.659904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753011 +GCP,asia-south1,n2d-highcpu-128,reserved_3y,NA,1.185664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753025 +GCP,asia-south1,n2d-highcpu-128,spot,NA,1.053696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752998 +GCP,asia-south1,n2d-highcpu-16,on_demand,NA,0.294309,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746678 +GCP,asia-south1,n2d-highcpu-16,reserved_1y,NA,0.207488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746705 +GCP,asia-south1,n2d-highcpu-16,reserved_3y,NA,0.148208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746719 +GCP,asia-south1,n2d-highcpu-16,spot,NA,0.131712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746692 +GCP,asia-south1,n2d-highcpu-224,on_demand,NA,4.120323,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754008 +GCP,asia-south1,n2d-highcpu-224,reserved_1y,NA,2.904832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754035 +GCP,asia-south1,n2d-highcpu-224,reserved_3y,NA,2.074912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754049 +GCP,asia-south1,n2d-highcpu-224,spot,NA,1.843968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754022 +GCP,asia-south1,n2d-highcpu-32,on_demand,NA,0.588618,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747732 +GCP,asia-south1,n2d-highcpu-32,reserved_1y,NA,0.414976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747761 +GCP,asia-south1,n2d-highcpu-32,reserved_3y,NA,0.296416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747775 +GCP,asia-south1,n2d-highcpu-32,spot,NA,0.263424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747746 +GCP,asia-south1,n2d-highcpu-48,on_demand,NA,0.882926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748797 +GCP,asia-south1,n2d-highcpu-48,reserved_1y,NA,0.622464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748826 +GCP,asia-south1,n2d-highcpu-48,reserved_3y,NA,0.444624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748840 +GCP,asia-south1,n2d-highcpu-48,spot,NA,0.395136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748811 +GCP,asia-south1,n2d-highcpu-64,on_demand,NA,1.177235,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749841 +GCP,asia-south1,n2d-highcpu-64,reserved_1y,NA,0.829952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749869 +GCP,asia-south1,n2d-highcpu-64,reserved_3y,NA,0.592832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749883 +GCP,asia-south1,n2d-highcpu-64,spot,NA,0.526848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749855 +GCP,asia-south1,n2d-highcpu-80,on_demand,NA,1.471544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750889 +GCP,asia-south1,n2d-highcpu-80,reserved_1y,NA,1.03744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750924 +GCP,asia-south1,n2d-highcpu-80,reserved_3y,NA,0.74104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750938 +GCP,asia-south1,n2d-highcpu-80,spot,NA,0.65856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750903 +GCP,asia-south1,n2d-highcpu-96,on_demand,NA,1.765853,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751952 +GCP,asia-south1,n2d-highcpu-96,reserved_1y,NA,1.244928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751980 +GCP,asia-south1,n2d-highcpu-96,reserved_3y,NA,0.889248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751994 +GCP,asia-south1,n2d-highcpu-96,spot,NA,0.790272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751966 +GCP,asia-south1,n2d-highmem-16,on_demand,NA,0.321558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740413 +GCP,asia-south1,n2d-highmem-16,reserved_1y,NA,0.379184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740441 +GCP,asia-south1,n2d-highmem-16,reserved_3y,NA,0.270848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740455 +GCP,asia-south1,n2d-highmem-16,spot,NA,0.240576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740427 +GCP,asia-south1,n2d-highmem-2,on_demand,NA,0.040195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737191 +GCP,asia-south1,n2d-highmem-2,reserved_1y,NA,0.047398,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737218 +GCP,asia-south1,n2d-highmem-2,reserved_3y,NA,0.033856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737231 +GCP,asia-south1,n2d-highmem-2,spot,NA,0.030072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737205 +GCP,asia-south1,n2d-highmem-32,on_demand,NA,0.643117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741423 +GCP,asia-south1,n2d-highmem-32,reserved_1y,NA,0.758368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741449 +GCP,asia-south1,n2d-highmem-32,reserved_3y,NA,0.541696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741463 +GCP,asia-south1,n2d-highmem-32,spot,NA,0.481152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741436 +GCP,asia-south1,n2d-highmem-4,on_demand,NA,0.08039,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738266 +GCP,asia-south1,n2d-highmem-4,reserved_1y,NA,0.094796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738295 +GCP,asia-south1,n2d-highmem-4,reserved_3y,NA,0.067712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738309 +GCP,asia-south1,n2d-highmem-4,spot,NA,0.060144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738280 +GCP,asia-south1,n2d-highmem-48,on_demand,NA,0.964675,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742498 +GCP,asia-south1,n2d-highmem-48,reserved_1y,NA,1.137552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742524 +GCP,asia-south1,n2d-highmem-48,reserved_3y,NA,0.812544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742538 +GCP,asia-south1,n2d-highmem-48,spot,NA,0.721728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742511 +GCP,asia-south1,n2d-highmem-64,on_demand,NA,1.286234,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743554 +GCP,asia-south1,n2d-highmem-64,reserved_1y,NA,1.516736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743581 +GCP,asia-south1,n2d-highmem-64,reserved_3y,NA,1.083392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743595 +GCP,asia-south1,n2d-highmem-64,spot,NA,0.962304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743567 +GCP,asia-south1,n2d-highmem-8,on_demand,NA,0.160779,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739343 +GCP,asia-south1,n2d-highmem-8,reserved_1y,NA,0.189592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739372 +GCP,asia-south1,n2d-highmem-8,reserved_3y,NA,0.135424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739386 +GCP,asia-south1,n2d-highmem-8,spot,NA,0.120288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739358 +GCP,asia-south1,n2d-highmem-80,on_demand,NA,1.607792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744633 +GCP,asia-south1,n2d-highmem-80,reserved_1y,NA,1.89592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744660 +GCP,asia-south1,n2d-highmem-80,reserved_3y,NA,1.35424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744674 +GCP,asia-south1,n2d-highmem-80,spot,NA,1.20288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744647 +GCP,asia-south1,n2d-highmem-96,on_demand,NA,1.92935,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745657 +GCP,asia-south1,n2d-highmem-96,reserved_1y,NA,2.275104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745685 +GCP,asia-south1,n2d-highmem-96,reserved_3y,NA,1.625088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745698 +GCP,asia-south1,n2d-highmem-96,spot,NA,1.443456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745671 +GCP,asia-south1,n2d-standard-128,on_demand,NA,2.447898,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735106 +GCP,asia-south1,n2d-standard-128,reserved_1y,NA,2.248576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735133 +GCP,asia-south1,n2d-standard-128,reserved_3y,NA,1.606144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735147 +GCP,asia-south1,n2d-standard-128,spot,NA,1.426944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735119 +GCP,asia-south1,n2d-standard-16,on_demand,NA,0.305987,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728782 +GCP,asia-south1,n2d-standard-16,reserved_1y,NA,0.281072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728809 +GCP,asia-south1,n2d-standard-16,reserved_3y,NA,0.200768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728823 +GCP,asia-south1,n2d-standard-16,spot,NA,0.178368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728796 +GCP,asia-south1,n2d-standard-224,on_demand,NA,4.283821,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736145 +GCP,asia-south1,n2d-standard-224,reserved_1y,NA,3.935008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736174 +GCP,asia-south1,n2d-standard-224,reserved_3y,NA,2.810752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736189 +GCP,asia-south1,n2d-standard-224,spot,NA,2.497152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736160 +GCP,asia-south1,n2d-standard-32,on_demand,NA,0.611974,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729814 +GCP,asia-south1,n2d-standard-32,reserved_1y,NA,0.562144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729842 +GCP,asia-south1,n2d-standard-32,reserved_3y,NA,0.401536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729855 +GCP,asia-south1,n2d-standard-32,spot,NA,0.356736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729828 +GCP,asia-south1,n2d-standard-4,on_demand,NA,0.076497,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726662 +GCP,asia-south1,n2d-standard-4,reserved_1y,NA,0.070268,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726690 +GCP,asia-south1,n2d-standard-4,reserved_3y,NA,0.050192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726704 +GCP,asia-south1,n2d-standard-4,spot,NA,0.044592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726676 +GCP,asia-south1,n2d-standard-48,on_demand,NA,0.917962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730843 +GCP,asia-south1,n2d-standard-48,reserved_1y,NA,0.843216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730871 +GCP,asia-south1,n2d-standard-48,reserved_3y,NA,0.602304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730885 +GCP,asia-south1,n2d-standard-48,spot,NA,0.535104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730857 +GCP,asia-south1,n2d-standard-64,on_demand,NA,1.223949,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731953 +GCP,asia-south1,n2d-standard-64,reserved_1y,NA,1.124288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731982 +GCP,asia-south1,n2d-standard-64,reserved_3y,NA,0.803072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731996 +GCP,asia-south1,n2d-standard-64,spot,NA,0.713472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731968 +GCP,asia-south1,n2d-standard-8,on_demand,NA,0.152994,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727724 +GCP,asia-south1,n2d-standard-8,reserved_1y,NA,0.140536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727752 +GCP,asia-south1,n2d-standard-8,reserved_3y,NA,0.100384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727766 +GCP,asia-south1,n2d-standard-8,spot,NA,0.089184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727738 +GCP,asia-south1,n2d-standard-80,on_demand,NA,1.529936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732996 +GCP,asia-south1,n2d-standard-80,reserved_1y,NA,1.40536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733024 +GCP,asia-south1,n2d-standard-80,reserved_3y,NA,1.00384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733038 +GCP,asia-south1,n2d-standard-80,spot,NA,0.89184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733010 +GCP,asia-south1,n2d-standard-96,on_demand,NA,1.835923,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734047 +GCP,asia-south1,n2d-standard-96,reserved_1y,NA,1.686432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734076 +GCP,asia-south1,n2d-standard-96,reserved_3y,NA,1.204608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734091 +GCP,asia-south1,n2d-standard-96,spot,NA,1.070208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734062 +GCP,asia-south1,n4-standard-16,on_demand,NA,0.754624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758175 +GCP,asia-south1,n4-standard-16,reserved_1y,NA,0.475405,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758203 +GCP,asia-south1,n4-standard-16,reserved_3y,NA,0.339589,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758217 +GCP,asia-south1,n4-standard-16,spot,NA,0.31536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758189 +GCP,asia-south1,n4-standard-2,on_demand,NA,0.094328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755056 +GCP,asia-south1,n4-standard-2,reserved_1y,NA,0.059426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755084 +GCP,asia-south1,n4-standard-2,reserved_3y,NA,0.042449,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755098 +GCP,asia-south1,n4-standard-2,spot,NA,0.03942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755070 +GCP,asia-south1,n4-standard-32,on_demand,NA,1.509248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759219 +GCP,asia-south1,n4-standard-32,reserved_1y,NA,0.95081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759247 +GCP,asia-south1,n4-standard-32,reserved_3y,NA,0.679178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759261 +GCP,asia-south1,n4-standard-32,spot,NA,0.63072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759233 +GCP,asia-south1,n4-standard-4,on_demand,NA,0.188656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756108 +GCP,asia-south1,n4-standard-4,reserved_1y,NA,0.118851,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756136 +GCP,asia-south1,n4-standard-4,reserved_3y,NA,0.084897,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756150 +GCP,asia-south1,n4-standard-4,spot,NA,0.07884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756122 +GCP,asia-south1,n4-standard-8,on_demand,NA,0.377312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757137 +GCP,asia-south1,n4-standard-8,reserved_1y,NA,0.237702,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757165 +GCP,asia-south1,n4-standard-8,reserved_3y,NA,0.169795,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757179 +GCP,asia-south1,n4-standard-8,spot,NA,0.15768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757151 +GCP,asia-southeast1,a2-highgpu-1g,on_demand,NA,0.501678,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770822 +GCP,asia-southeast1,a2-highgpu-1g,reserved_1y,NA,0.574654,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770849 +GCP,asia-southeast1,a2-highgpu-1g,reserved_3y,NA,0.319296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770863 +GCP,asia-southeast1,a2-highgpu-1g,spot,NA,0.36485,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770836 +GCP,asia-southeast1,a2-highgpu-2g,on_demand,NA,1.003356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771855 +GCP,asia-southeast1,a2-highgpu-2g,reserved_1y,NA,1.149308,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771905 +GCP,asia-southeast1,a2-highgpu-2g,reserved_3y,NA,0.638592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771919 +GCP,asia-southeast1,a2-highgpu-2g,spot,NA,0.7297,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771891 +GCP,asia-southeast1,a2-highgpu-4g,on_demand,NA,2.006712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773005 +GCP,asia-southeast1,a2-highgpu-4g,reserved_1y,NA,2.298616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773043 +GCP,asia-southeast1,a2-highgpu-4g,reserved_3y,NA,1.277185,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773061 +GCP,asia-southeast1,a2-highgpu-4g,spot,NA,1.4594,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773023 +GCP,asia-southeast1,a2-highgpu-8g,on_demand,NA,4.013424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774128 +GCP,asia-southeast1,a2-highgpu-8g,reserved_1y,NA,4.597232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774169 +GCP,asia-southeast1,a2-highgpu-8g,reserved_3y,NA,2.55437,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774183 +GCP,asia-southeast1,a2-highgpu-8g,spot,NA,2.9188,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774154 +GCP,asia-southeast1,a2-megagpu-16g,on_demand,NA,5.967744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775239 +GCP,asia-southeast1,a2-megagpu-16g,reserved_1y,NA,6.835792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775266 +GCP,asia-southeast1,a2-megagpu-16g,reserved_3y,NA,3.798369,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775280 +GCP,asia-southeast1,a2-megagpu-16g,spot,NA,4.34,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775253 +GCP,asia-southeast1,a2-ultragpu-1g,on_demand,NA,0.745968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776336 +GCP,asia-southeast1,a2-ultragpu-1g,reserved_1y,NA,0.854474,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776363 +GCP,asia-southeast1,a2-ultragpu-1g,reserved_3y,NA,0.474796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776377 +GCP,asia-southeast1,a2-ultragpu-1g,spot,NA,0.5425,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776350 +GCP,asia-southeast1,a2-ultragpu-2g,on_demand,NA,1.491936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777439 +GCP,asia-southeast1,a2-ultragpu-2g,reserved_1y,NA,1.708948,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777468 +GCP,asia-southeast1,a2-ultragpu-2g,reserved_3y,NA,0.949592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777496 +GCP,asia-southeast1,a2-ultragpu-2g,spot,NA,1.085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777453 +GCP,asia-southeast1,a2-ultragpu-4g,on_demand,NA,2.983872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778499 +GCP,asia-southeast1,a2-ultragpu-4g,reserved_1y,NA,3.417896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778527 +GCP,asia-southeast1,a2-ultragpu-4g,reserved_3y,NA,1.899185,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778541 +GCP,asia-southeast1,a2-ultragpu-4g,spot,NA,2.17,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778513 +GCP,asia-southeast1,a2-ultragpu-8g,on_demand,NA,5.967744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779550 +GCP,asia-southeast1,a2-ultragpu-8g,reserved_1y,NA,6.835792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779579 +GCP,asia-southeast1,a2-ultragpu-8g,reserved_3y,NA,3.798369,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779593 +GCP,asia-southeast1,a2-ultragpu-8g,spot,NA,4.34,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779564 +GCP,asia-southeast1,a3-highgpu-1g,on_demand,NA,1.040647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780659 +GCP,asia-southeast1,a3-highgpu-1g,reserved_1y,NA,1.014558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780688 +GCP,asia-southeast1,a3-highgpu-1g,reserved_3y,NA,0.642959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780702 +GCP,asia-southeast1,a3-highgpu-1g,spot,NA,0.262522,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780673 +GCP,asia-southeast1,a3-highgpu-2g,on_demand,NA,1.040647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781708 +GCP,asia-southeast1,a3-highgpu-2g,reserved_1y,NA,1.014558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781737 +GCP,asia-southeast1,a3-highgpu-2g,reserved_3y,NA,0.642959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781751 +GCP,asia-southeast1,a3-highgpu-2g,spot,NA,0.262522,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781723 +GCP,asia-southeast1,a3-highgpu-4g,on_demand,NA,1.040647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782792 +GCP,asia-southeast1,a3-highgpu-4g,reserved_1y,NA,1.014558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782819 +GCP,asia-southeast1,a3-highgpu-4g,reserved_3y,NA,0.642959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782833 +GCP,asia-southeast1,a3-highgpu-4g,spot,NA,0.262522,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782805 +GCP,asia-southeast1,a3-highgpu-8g,on_demand,NA,1.040647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783889 +GCP,asia-southeast1,a3-highgpu-8g,reserved_1y,NA,1.014558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783917 +GCP,asia-southeast1,a3-highgpu-8g,reserved_3y,NA,0.642959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783931 +GCP,asia-southeast1,a3-highgpu-8g,spot,NA,0.262522,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783903 +GCP,asia-southeast1,c2-standard-16,on_demand,NA,0.896112,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721774 +GCP,asia-southeast1,c2-standard-16,reserved_1y,NA,0.56456,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721819 +GCP,asia-southeast1,c2-standard-16,reserved_3y,NA,0.403264,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721842 +GCP,asia-southeast1,c2-standard-16,spot,NA,0.251584,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721797 +GCP,asia-southeast1,c2-standard-30,on_demand,NA,1.68021,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723456 +GCP,asia-southeast1,c2-standard-30,reserved_1y,NA,1.05855,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723503 +GCP,asia-southeast1,c2-standard-30,reserved_3y,NA,0.75612,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723526 +GCP,asia-southeast1,c2-standard-30,spot,NA,0.47172,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723479 +GCP,asia-southeast1,c2-standard-4,on_demand,NA,0.224028,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718185 +GCP,asia-southeast1,c2-standard-4,reserved_1y,NA,0.14114,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718233 +GCP,asia-southeast1,c2-standard-4,reserved_3y,NA,0.100816,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718256 +GCP,asia-southeast1,c2-standard-4,spot,NA,0.062896,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718209 +GCP,asia-southeast1,c2-standard-60,on_demand,NA,3.36042,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725195 +GCP,asia-southeast1,c2-standard-60,reserved_1y,NA,2.1171,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725241 +GCP,asia-southeast1,c2-standard-60,reserved_3y,NA,1.51224,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725263 +GCP,asia-southeast1,c2-standard-60,spot,NA,0.94344,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725218 +GCP,asia-southeast1,c2-standard-8,on_demand,NA,0.448056,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720066 +GCP,asia-southeast1,c2-standard-8,reserved_1y,NA,0.28228,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720112 +GCP,asia-southeast1,c2-standard-8,reserved_3y,NA,0.201632,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720135 +GCP,asia-southeast1,c2-standard-8,spot,NA,0.125792,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720089 +GCP,asia-southeast1,c3-highmem-22,on_demand,NA,0.949108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800797 +GCP,asia-southeast1,c3-highmem-22,reserved_1y,NA,1.131199,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800823 +GCP,asia-southeast1,c3-highmem-22,reserved_3y,NA,0.807973,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800836 +GCP,asia-southeast1,c3-highmem-22,spot,NA,0.718168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800810 +GCP,asia-southeast1,c3-highmem-4,on_demand,NA,0.172565,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798717 +GCP,asia-southeast1,c3-highmem-4,reserved_1y,NA,0.205673,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798744 +GCP,asia-southeast1,c3-highmem-4,reserved_3y,NA,0.146904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798759 +GCP,asia-southeast1,c3-highmem-4,spot,NA,0.130576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798731 +GCP,asia-southeast1,c3-highmem-44,on_demand,NA,1.898215,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801806 +GCP,asia-southeast1,c3-highmem-44,reserved_1y,NA,2.262399,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801833 +GCP,asia-southeast1,c3-highmem-44,reserved_3y,NA,1.615946,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801846 +GCP,asia-southeast1,c3-highmem-44,spot,NA,1.436336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801819 +GCP,asia-southeast1,c3-highmem-8,on_demand,NA,0.34513,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799766 +GCP,asia-southeast1,c3-highmem-8,reserved_1y,NA,0.411345,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799793 +GCP,asia-southeast1,c3-highmem-8,reserved_3y,NA,0.293808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799809 +GCP,asia-southeast1,c3-highmem-8,spot,NA,0.261152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799780 +GCP,asia-southeast1,c3-highmem-88,on_demand,NA,3.79643,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802831 +GCP,asia-southeast1,c3-highmem-88,reserved_1y,NA,4.524797,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802859 +GCP,asia-southeast1,c3-highmem-88,reserved_3y,NA,3.231892,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802872 +GCP,asia-southeast1,c3-highmem-88,spot,NA,2.872672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802844 +GCP,asia-southeast1,c3-standard-22 (-lssd),on_demand,NA,0.521576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795508 +GCP,asia-southeast1,c3-standard-22 (-lssd),reserved_1y,NA,0.861848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795537 +GCP,asia-southeast1,c3-standard-22 (-lssd),reserved_3y,NA,0.615594,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795550 +GCP,asia-southeast1,c3-standard-22 (-lssd),spot,NA,0.547184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795523 +GCP,asia-southeast1,c3-standard-4 (-lssd),on_demand,NA,0.094832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793394 +GCP,asia-southeast1,c3-standard-4 (-lssd),reserved_1y,NA,0.1567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793426 +GCP,asia-southeast1,c3-standard-4 (-lssd),reserved_3y,NA,0.111926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793440 +GCP,asia-southeast1,c3-standard-4 (-lssd),spot,NA,0.099488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793408 +GCP,asia-southeast1,c3-standard-44 (-lssd),on_demand,NA,1.043152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796612 +GCP,asia-southeast1,c3-standard-44 (-lssd),reserved_1y,NA,1.723696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796640 +GCP,asia-southeast1,c3-standard-44 (-lssd),reserved_3y,NA,1.231189,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796654 +GCP,asia-southeast1,c3-standard-44 (-lssd),spot,NA,1.094368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796626 +GCP,asia-southeast1,c3-standard-8 (-lssd),on_demand,NA,0.189664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794442 +GCP,asia-southeast1,c3-standard-8 (-lssd),reserved_1y,NA,0.313399,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794469 +GCP,asia-southeast1,c3-standard-8 (-lssd),reserved_3y,NA,0.223852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794482 +GCP,asia-southeast1,c3-standard-8 (-lssd),spot,NA,0.198976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794456 +GCP,asia-southeast1,c3-standard-88 (-lssd),on_demand,NA,2.086305,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797666 +GCP,asia-southeast1,c3-standard-88 (-lssd),reserved_1y,NA,3.447392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797697 +GCP,asia-southeast1,c3-standard-88 (-lssd),reserved_3y,NA,2.462377,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797711 +GCP,asia-southeast1,c3-standard-88 (-lssd),spot,NA,2.188736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797684 +GCP,asia-southeast1,c3d-highmem-16 (-lssd),on_demand,NA,0.683535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814600 +GCP,asia-southeast1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.761459,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814629 +GCP,asia-southeast1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.543835,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814643 +GCP,asia-southeast1,c3d-highmem-16 (-lssd),spot,NA,0.483552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814614 +GCP,asia-southeast1,c3d-highmem-180 (-lssd),on_demand,NA,7.689768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818780 +GCP,asia-southeast1,c3d-highmem-180 (-lssd),reserved_1y,NA,8.566419,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818808 +GCP,asia-southeast1,c3d-highmem-180 (-lssd),reserved_3y,NA,6.118141,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818822 +GCP,asia-southeast1,c3d-highmem-180 (-lssd),spot,NA,5.43996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818794 +GCP,asia-southeast1,c3d-highmem-30 (-lssd),on_demand,NA,1.281628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815658 +GCP,asia-southeast1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.427736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815686 +GCP,asia-southeast1,c3d-highmem-30 (-lssd),reserved_3y,NA,1.01969,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815700 +GCP,asia-southeast1,c3d-highmem-30 (-lssd),spot,NA,0.90666,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815672 +GCP,asia-southeast1,c3d-highmem-360 (-lssd),on_demand,NA,15.379535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819811 +GCP,asia-southeast1,c3d-highmem-360 (-lssd),reserved_1y,NA,17.132837,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819839 +GCP,asia-southeast1,c3d-highmem-360 (-lssd),reserved_3y,NA,12.236281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819854 +GCP,asia-southeast1,c3d-highmem-360 (-lssd),spot,NA,10.87992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819825 +GCP,asia-southeast1,c3d-highmem-4 (-lssd),on_demand,NA,0.170884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812346 +GCP,asia-southeast1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.190365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812374 +GCP,asia-southeast1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.135959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812388 +GCP,asia-southeast1,c3d-highmem-4 (-lssd),spot,NA,0.120888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812360 +GCP,asia-southeast1,c3d-highmem-60 (-lssd),on_demand,NA,2.563256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816714 +GCP,asia-southeast1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.855473,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816742 +GCP,asia-southeast1,c3d-highmem-60 (-lssd),reserved_3y,NA,2.03938,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816756 +GCP,asia-southeast1,c3d-highmem-60 (-lssd),spot,NA,1.81332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816728 +GCP,asia-southeast1,c3d-highmem-8 (-lssd),on_demand,NA,0.341767,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813387 +GCP,asia-southeast1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.38073,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813415 +GCP,asia-southeast1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.271917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813429 +GCP,asia-southeast1,c3d-highmem-8 (-lssd),spot,NA,0.241776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813401 +GCP,asia-southeast1,c3d-highmem-90 (-lssd),on_demand,NA,3.844884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817750 +GCP,asia-southeast1,c3d-highmem-90 (-lssd),reserved_1y,NA,4.283209,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817778 +GCP,asia-southeast1,c3d-highmem-90 (-lssd),reserved_3y,NA,3.05907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817792 +GCP,asia-southeast1,c3d-highmem-90 (-lssd),spot,NA,2.71998,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817764 +GCP,asia-southeast1,c3d-standard-16 (-lssd),on_demand,NA,0.370945,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805974 +GCP,asia-southeast1,c3d-standard-16 (-lssd),reserved_1y,NA,0.564541,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806002 +GCP,asia-southeast1,c3d-standard-16 (-lssd),reserved_3y,NA,0.403213,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806016 +GCP,asia-southeast1,c3d-standard-16 (-lssd),spot,NA,0.358496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805988 +GCP,asia-southeast1,c3d-standard-180 (-lssd),on_demand,NA,4.173131,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810228 +GCP,asia-southeast1,c3d-standard-180 (-lssd),reserved_1y,NA,6.351088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810256 +GCP,asia-southeast1,c3d-standard-180 (-lssd),reserved_3y,NA,4.536142,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810270 +GCP,asia-southeast1,c3d-standard-180 (-lssd),spot,NA,4.03308,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810242 +GCP,asia-southeast1,c3d-standard-30 (-lssd),on_demand,NA,0.695522,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807042 +GCP,asia-southeast1,c3d-standard-30 (-lssd),reserved_1y,NA,1.058515,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807070 +GCP,asia-southeast1,c3d-standard-30 (-lssd),reserved_3y,NA,0.756024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807086 +GCP,asia-southeast1,c3d-standard-30 (-lssd),spot,NA,0.67218,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807056 +GCP,asia-southeast1,c3d-standard-360 (-lssd),on_demand,NA,8.346261,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811283 +GCP,asia-southeast1,c3d-standard-360 (-lssd),reserved_1y,NA,12.702176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811312 +GCP,asia-southeast1,c3d-standard-360 (-lssd),reserved_3y,NA,9.072284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811325 +GCP,asia-southeast1,c3d-standard-360 (-lssd),spot,NA,8.06616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811296 +GCP,asia-southeast1,c3d-standard-4 (-lssd),on_demand,NA,0.092736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803922 +GCP,asia-southeast1,c3d-standard-4 (-lssd),reserved_1y,NA,0.141135,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803950 +GCP,asia-southeast1,c3d-standard-4 (-lssd),reserved_3y,NA,0.100803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803963 +GCP,asia-southeast1,c3d-standard-4 (-lssd),spot,NA,0.089624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803936 +GCP,asia-southeast1,c3d-standard-60 (-lssd),on_demand,NA,1.391044,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808116 +GCP,asia-southeast1,c3d-standard-60 (-lssd),reserved_1y,NA,2.117029,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808144 +GCP,asia-southeast1,c3d-standard-60 (-lssd),reserved_3y,NA,1.512047,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808157 +GCP,asia-southeast1,c3d-standard-60 (-lssd),spot,NA,1.34436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808129 +GCP,asia-southeast1,c3d-standard-8 (-lssd),on_demand,NA,0.185472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804944 +GCP,asia-southeast1,c3d-standard-8 (-lssd),reserved_1y,NA,0.282271,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804973 +GCP,asia-southeast1,c3d-standard-8 (-lssd),reserved_3y,NA,0.201606,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804987 +GCP,asia-southeast1,c3d-standard-8 (-lssd),spot,NA,0.179248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804960 +GCP,asia-southeast1,c3d-standard-90 (-lssd),on_demand,NA,2.086565,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809171 +GCP,asia-southeast1,c3d-standard-90 (-lssd),reserved_1y,NA,3.175544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809199 +GCP,asia-southeast1,c3d-standard-90 (-lssd),reserved_3y,NA,2.268071,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809213 +GCP,asia-southeast1,c3d-standard-90 (-lssd),spot,NA,2.01654,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809185 +GCP,asia-southeast1,c4-standard-16,on_demand,NA,0.359895,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841203 +GCP,asia-southeast1,c4-standard-16,reserved_1y,NA,0.614555,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841231 +GCP,asia-southeast1,c4-standard-16,reserved_3y,NA,0.43896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841245 +GCP,asia-southeast1,c4-standard-16,spot,NA,0.39017,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841217 +GCP,asia-southeast1,c4-standard-2,on_demand,NA,0.042558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837871 +GCP,asia-southeast1,c4-standard-2,reserved_1y,NA,0.075289,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837899 +GCP,asia-southeast1,c4-standard-2,reserved_3y,NA,0.053777,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837913 +GCP,asia-southeast1,c4-standard-2,spot,NA,0.0478,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837885 +GCP,asia-southeast1,c4-standard-24,on_demand,NA,0.539842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842282 +GCP,asia-southeast1,c4-standard-24,reserved_1y,NA,0.921833,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842311 +GCP,asia-southeast1,c4-standard-24,reserved_3y,NA,0.65844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842324 +GCP,asia-southeast1,c4-standard-24,spot,NA,0.585255,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842296 +GCP,asia-southeast1,c4-standard-32,on_demand,NA,0.71979,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843451 +GCP,asia-southeast1,c4-standard-32,reserved_1y,NA,1.229111,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843479 +GCP,asia-southeast1,c4-standard-32,reserved_3y,NA,0.87792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843494 +GCP,asia-southeast1,c4-standard-32,spot,NA,0.78034,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843465 +GCP,asia-southeast1,c4-standard-4,on_demand,NA,0.089974,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838978 +GCP,asia-southeast1,c4-standard-4,reserved_1y,NA,0.153639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839006 +GCP,asia-southeast1,c4-standard-4,reserved_3y,NA,0.10974,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839019 +GCP,asia-southeast1,c4-standard-4,spot,NA,0.097542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838992 +GCP,asia-southeast1,c4-standard-8,on_demand,NA,0.179947,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840117 +GCP,asia-southeast1,c4-standard-8,reserved_1y,NA,0.307278,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840146 +GCP,asia-southeast1,c4-standard-8,reserved_3y,NA,0.21948,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840160 +GCP,asia-southeast1,c4-standard-8,spot,NA,0.195085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840131 +GCP,asia-southeast1,c4a-highmem-16 (-lssd),on_demand,NA,1.163429,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831968 +GCP,asia-southeast1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.766868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831997 +GCP,asia-southeast1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.523681,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832011 +GCP,asia-southeast1,c4a-highmem-16 (-lssd),spot,NA,0.464608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831983 +GCP,asia-southeast1,c4a-highmem-32 (-lssd),on_demand,NA,2.326858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833185 +GCP,asia-southeast1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.533737,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833213 +GCP,asia-southeast1,c4a-highmem-32 (-lssd),reserved_3y,NA,1.047363,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833228 +GCP,asia-southeast1,c4a-highmem-32 (-lssd),spot,NA,0.929216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833200 +GCP,asia-southeast1,c4a-highmem-4 (-lssd),on_demand,NA,0.290857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829503 +GCP,asia-southeast1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.191717,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829530 +GCP,asia-southeast1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.13092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829544 +GCP,asia-southeast1,c4a-highmem-4 (-lssd),spot,NA,0.116152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829517 +GCP,asia-southeast1,c4a-highmem-48 (-lssd),on_demand,NA,3.490286,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834405 +GCP,asia-southeast1,c4a-highmem-48 (-lssd),reserved_1y,NA,2.300605,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834431 +GCP,asia-southeast1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.571044,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834444 +GCP,asia-southeast1,c4a-highmem-48 (-lssd),spot,NA,1.393824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834417 +GCP,asia-southeast1,c4a-highmem-64 (-lssd),on_demand,NA,4.653715,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835566 +GCP,asia-southeast1,c4a-highmem-64 (-lssd),reserved_1y,NA,3.067473,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835593 +GCP,asia-southeast1,c4a-highmem-64 (-lssd),reserved_3y,NA,2.094726,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835606 +GCP,asia-southeast1,c4a-highmem-64 (-lssd),spot,NA,1.858432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835580 +GCP,asia-southeast1,c4a-highmem-72 (-lssd),on_demand,NA,5.23543,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836743 +GCP,asia-southeast1,c4a-highmem-72 (-lssd),reserved_1y,NA,3.450907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836769 +GCP,asia-southeast1,c4a-highmem-72 (-lssd),reserved_3y,NA,2.356566,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836782 +GCP,asia-southeast1,c4a-highmem-72 (-lssd),spot,NA,2.090736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836756 +GCP,asia-southeast1,c4a-highmem-8 (-lssd),on_demand,NA,0.581714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830727 +GCP,asia-southeast1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.383434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830754 +GCP,asia-southeast1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.261841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830768 +GCP,asia-southeast1,c4a-highmem-8 (-lssd),spot,NA,0.232304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830741 +GCP,asia-southeast1,c4a-standard-16 (-lssd),on_demand,NA,0.88629,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823415 +GCP,asia-southeast1,c4a-standard-16 (-lssd),reserved_1y,NA,0.584478,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823443 +GCP,asia-southeast1,c4a-standard-16 (-lssd),reserved_3y,NA,0.398929,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823458 +GCP,asia-southeast1,c4a-standard-16 (-lssd),spot,NA,0.354144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823429 +GCP,asia-southeast1,c4a-standard-32 (-lssd),on_demand,NA,1.77258,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824662 +GCP,asia-southeast1,c4a-standard-32 (-lssd),reserved_1y,NA,1.168956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824690 +GCP,asia-southeast1,c4a-standard-32 (-lssd),reserved_3y,NA,0.797859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824704 +GCP,asia-southeast1,c4a-standard-32 (-lssd),spot,NA,0.708288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824676 +GCP,asia-southeast1,c4a-standard-4 (-lssd),on_demand,NA,0.221573,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820959 +GCP,asia-southeast1,c4a-standard-4 (-lssd),reserved_1y,NA,0.146119,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820987 +GCP,asia-southeast1,c4a-standard-4 (-lssd),reserved_3y,NA,0.099732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821000 +GCP,asia-southeast1,c4a-standard-4 (-lssd),spot,NA,0.088536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820973 +GCP,asia-southeast1,c4a-standard-48 (-lssd),on_demand,NA,2.658871,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825885 +GCP,asia-southeast1,c4a-standard-48 (-lssd),reserved_1y,NA,1.753434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825913 +GCP,asia-southeast1,c4a-standard-48 (-lssd),reserved_3y,NA,1.196788,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825927 +GCP,asia-southeast1,c4a-standard-48 (-lssd),spot,NA,1.062432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825899 +GCP,asia-southeast1,c4a-standard-64 (-lssd),on_demand,NA,3.545161,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827111 +GCP,asia-southeast1,c4a-standard-64 (-lssd),reserved_1y,NA,2.337912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827139 +GCP,asia-southeast1,c4a-standard-64 (-lssd),reserved_3y,NA,1.595718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827152 +GCP,asia-southeast1,c4a-standard-64 (-lssd),spot,NA,1.416576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827125 +GCP,asia-southeast1,c4a-standard-72 (-lssd),on_demand,NA,3.988306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828317 +GCP,asia-southeast1,c4a-standard-72 (-lssd),reserved_1y,NA,2.630151,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828343 +GCP,asia-southeast1,c4a-standard-72 (-lssd),reserved_3y,NA,1.795182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828357 +GCP,asia-southeast1,c4a-standard-72 (-lssd),spot,NA,1.593648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828330 +GCP,asia-southeast1,c4a-standard-8 (-lssd),on_demand,NA,0.443145,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822185 +GCP,asia-southeast1,c4a-standard-8 (-lssd),reserved_1y,NA,0.292239,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822213 +GCP,asia-southeast1,c4a-standard-8 (-lssd),reserved_3y,NA,0.199465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822227 +GCP,asia-southeast1,c4a-standard-8 (-lssd),spot,NA,0.177072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822199 +GCP,asia-southeast1,c4d-standard-16,on_demand,NA,0.331928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848574 +GCP,asia-southeast1,c4d-standard-16,reserved_1y,NA,0.575139,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848602 +GCP,asia-southeast1,c4d-standard-16,reserved_3y,NA,0.410812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848617 +GCP,asia-southeast1,c4d-standard-16,spot,NA,0.363695,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848588 +GCP,asia-southeast1,c4d-standard-2,on_demand,NA,0.038257,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844682 +GCP,asia-southeast1,c4d-standard-2,reserved_1y,NA,0.069855,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844711 +GCP,asia-southeast1,c4d-standard-2,reserved_3y,NA,0.049896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844725 +GCP,asia-southeast1,c4d-standard-2,spot,NA,0.044174,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844697 +GCP,asia-southeast1,c4d-standard-32,on_demand,NA,0.663856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849902 +GCP,asia-southeast1,c4d-standard-32,reserved_1y,NA,1.150277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849930 +GCP,asia-southeast1,c4d-standard-32,reserved_3y,NA,0.821624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849944 +GCP,asia-southeast1,c4d-standard-32,spot,NA,0.72739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849916 +GCP,asia-southeast1,c4d-standard-4,on_demand,NA,0.080826,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845986 +GCP,asia-southeast1,c4d-standard-4,reserved_1y,NA,0.142426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846014 +GCP,asia-southeast1,c4d-standard-4,reserved_3y,NA,0.101733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846027 +GCP,asia-southeast1,c4d-standard-4,spot,NA,0.090065,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846000 +GCP,asia-southeast1,c4d-standard-8,on_demand,NA,0.165964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847259 +GCP,asia-southeast1,c4d-standard-8,reserved_1y,NA,0.287569,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847286 +GCP,asia-southeast1,c4d-standard-8,reserved_3y,NA,0.205406,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847299 +GCP,asia-southeast1,c4d-standard-8,spot,NA,0.181848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847272 +GCP,asia-southeast1,e2_highcpu_16,on_demand,NA,0.488244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764386 +GCP,asia-southeast1,e2_highcpu_16,reserved_1y,NA,0.307594,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764414 +GCP,asia-southeast1,e2_highcpu_16,reserved_3y,NA,0.21971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764428 +GCP,asia-southeast1,e2_highcpu_16,spot,NA,0.195232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764400 +GCP,asia-southeast1,e2_highcpu_32,on_demand,NA,0.976488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765420 +GCP,asia-southeast1,e2_highcpu_32,reserved_1y,NA,0.615187,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765448 +GCP,asia-southeast1,e2_highcpu_32,reserved_3y,NA,0.43942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765463 +GCP,asia-southeast1,e2_highcpu_32,spot,NA,0.390464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765434 +GCP,asia-southeast1,e2_highmem_16,on_demand,NA,0.892109,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763276 +GCP,asia-southeast1,e2_highmem_16,reserved_1y,NA,0.562029,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763305 +GCP,asia-southeast1,e2_highmem_16,reserved_3y,NA,0.401449,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763319 +GCP,asia-southeast1,e2_highmem_16,spot,NA,0.356736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763291 +GCP,asia-southeast1,e2_highmem_2,on_demand,NA,0.111514,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760164 +GCP,asia-southeast1,e2_highmem_2,reserved_1y,NA,0.070254,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760192 +GCP,asia-southeast1,e2_highmem_2,reserved_3y,NA,0.050181,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760206 +GCP,asia-southeast1,e2_highmem_2,spot,NA,0.044592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760178 +GCP,asia-southeast1,e2_highmem_4,on_demand,NA,0.223027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761201 +GCP,asia-southeast1,e2_highmem_4,reserved_1y,NA,0.140507,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761229 +GCP,asia-southeast1,e2_highmem_4,reserved_3y,NA,0.100362,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761243 +GCP,asia-southeast1,e2_highmem_4,spot,NA,0.089184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761215 +GCP,asia-southeast1,e2_highmem_8,on_demand,NA,0.446055,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762228 +GCP,asia-southeast1,e2_highmem_8,reserved_1y,NA,0.281014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762256 +GCP,asia-southeast1,e2_highmem_8,reserved_3y,NA,0.200725,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762269 +GCP,asia-southeast1,e2_highmem_8,spot,NA,0.178368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762241 +GCP,asia-southeast1,e2_standard_16,on_demand,NA,0.661329,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768722 +GCP,asia-southeast1,e2_standard_16,reserved_1y,NA,0.416637,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768750 +GCP,asia-southeast1,e2_standard_16,reserved_3y,NA,0.297598,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768765 +GCP,asia-southeast1,e2_standard_16,spot,NA,0.264448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768736 +GCP,asia-southeast1,e2_standard_32,on_demand,NA,1.322658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769801 +GCP,asia-southeast1,e2_standard_32,reserved_1y,NA,0.833275,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769829 +GCP,asia-southeast1,e2_standard_32,reserved_3y,NA,0.595196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769843 +GCP,asia-southeast1,e2_standard_32,spot,NA,0.528896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769815 +GCP,asia-southeast1,e2_standard_4,on_demand,NA,0.165332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766633 +GCP,asia-southeast1,e2_standard_4,reserved_1y,NA,0.104159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766661 +GCP,asia-southeast1,e2_standard_4,reserved_3y,NA,0.0744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766675 +GCP,asia-southeast1,e2_standard_4,spot,NA,0.066112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766647 +GCP,asia-southeast1,e2_standard_8,on_demand,NA,0.330665,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767681 +GCP,asia-southeast1,e2_standard_8,reserved_1y,NA,0.208319,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767709 +GCP,asia-southeast1,e2_standard_8,reserved_3y,NA,0.148799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767723 +GCP,asia-southeast1,e2_standard_8,spot,NA,0.132224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767695 +GCP,asia-southeast1,g2-standard-12,on_demand,NA,0.21035,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787010 +GCP,asia-southeast1,g2-standard-12,reserved_1y,NA,0.342274,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787038 +GCP,asia-southeast1,g2-standard-12,reserved_3y,NA,0.244481,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787052 +GCP,asia-southeast1,g2-standard-12,spot,NA,0.21732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787024 +GCP,asia-southeast1,g2-standard-16,on_demand,NA,0.280467,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788086 +GCP,asia-southeast1,g2-standard-16,reserved_1y,NA,0.456365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788114 +GCP,asia-southeast1,g2-standard-16,reserved_3y,NA,0.325975,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788128 +GCP,asia-southeast1,g2-standard-16,spot,NA,0.28976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788100 +GCP,asia-southeast1,g2-standard-24,on_demand,NA,0.4207,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789138 +GCP,asia-southeast1,g2-standard-24,reserved_1y,NA,0.684548,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789166 +GCP,asia-southeast1,g2-standard-24,reserved_3y,NA,0.488963,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789180 +GCP,asia-southeast1,g2-standard-24,spot,NA,0.43464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789152 +GCP,asia-southeast1,g2-standard-32,on_demand,NA,0.560933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790167 +GCP,asia-southeast1,g2-standard-32,reserved_1y,NA,0.91273,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790195 +GCP,asia-southeast1,g2-standard-32,reserved_3y,NA,0.65195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790208 +GCP,asia-southeast1,g2-standard-32,spot,NA,0.57952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790181 +GCP,asia-southeast1,g2-standard-4,on_demand,NA,0.070117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784936 +GCP,asia-southeast1,g2-standard-4,reserved_1y,NA,0.114091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784965 +GCP,asia-southeast1,g2-standard-4,reserved_3y,NA,0.081494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784979 +GCP,asia-southeast1,g2-standard-4,spot,NA,0.07244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784950 +GCP,asia-southeast1,g2-standard-48,on_demand,NA,0.8414,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791224 +GCP,asia-southeast1,g2-standard-48,reserved_1y,NA,1.369096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791252 +GCP,asia-southeast1,g2-standard-48,reserved_3y,NA,0.977926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791266 +GCP,asia-southeast1,g2-standard-48,spot,NA,0.86928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791238 +GCP,asia-southeast1,g2-standard-8,on_demand,NA,0.140233,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785977 +GCP,asia-southeast1,g2-standard-8,reserved_1y,NA,0.228183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786005 +GCP,asia-southeast1,g2-standard-8,reserved_3y,NA,0.162988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786019 +GCP,asia-southeast1,g2-standard-8,spot,NA,0.14488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785991 +GCP,asia-southeast1,g2-standard-96,on_demand,NA,1.6828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792336 +GCP,asia-southeast1,g2-standard-96,reserved_1y,NA,2.738191,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792364 +GCP,asia-southeast1,g2-standard-96,reserved_3y,NA,1.955851,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792378 +GCP,asia-southeast1,g2-standard-96,spot,NA,1.73856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792350 +GCP,asia-southeast1,n1-highcpu-16,on_demand,NA,0.699247,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691044 +GCP,asia-southeast1,n1-highcpu-16,spot,NA,0.115482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691058 +GCP,asia-southeast1,n1-highcpu-32,on_demand,NA,1.398495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691907 +GCP,asia-southeast1,n1-highcpu-32,spot,NA,0.230963,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691921 +GCP,asia-southeast1,n1-highcpu-64,on_demand,NA,2.796989,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692804 +GCP,asia-southeast1,n1-highcpu-64,spot,NA,0.461926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692817 +GCP,asia-southeast1,n1-highcpu-96,on_demand,NA,4.195484,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693641 +GCP,asia-southeast1,n1-highcpu-96,spot,NA,0.69289,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693654 +GCP,asia-southeast1,n1-highmem-16,on_demand,NA,1.167603,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687520 +GCP,asia-southeast1,n1-highmem-16,spot,NA,0.192896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687534 +GCP,asia-southeast1,n1-highmem-32,on_demand,NA,2.335207,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688393 +GCP,asia-southeast1,n1-highmem-32,spot,NA,0.385792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688407 +GCP,asia-southeast1,n1-highmem-4,on_demand,NA,0.291901,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685797 +GCP,asia-southeast1,n1-highmem-4,spot,NA,0.048224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685812 +GCP,asia-southeast1,n1-highmem-64,on_demand,NA,4.670413,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689326 +GCP,asia-southeast1,n1-highmem-64,spot,NA,0.771584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689341 +GCP,asia-southeast1,n1-highmem-8,on_demand,NA,0.583802,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686602 +GCP,asia-southeast1,n1-highmem-8,spot,NA,0.096448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686617 +GCP,asia-southeast1,n1-highmem-96,on_demand,NA,7.00562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690218 +GCP,asia-southeast1,n1-highmem-96,spot,NA,1.157376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690233 +GCP,asia-southeast1,n1-standard-16,on_demand,NA,0.937607,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681834 +GCP,asia-southeast1,n1-standard-16,spot,NA,0.15488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681848 +GCP,asia-southeast1,n1-standard-32,on_demand,NA,1.875214,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682827 +GCP,asia-southeast1,n1-standard-32,spot,NA,0.30976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682840 +GCP,asia-southeast1,n1-standard-4,on_demand,NA,0.234402,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680095 +GCP,asia-southeast1,n1-standard-4,spot,NA,0.03872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680109 +GCP,asia-southeast1,n1-standard-64,on_demand,NA,3.750428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683763 +GCP,asia-southeast1,n1-standard-64,spot,NA,0.61952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683776 +GCP,asia-southeast1,n1-standard-8,on_demand,NA,0.468804,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680979 +GCP,asia-southeast1,n1-standard-8,spot,NA,0.07744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680993 +GCP,asia-southeast1,n1-standard-96,on_demand,NA,5.625642,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684858 +GCP,asia-southeast1,n1-standard-96,spot,NA,0.92928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684871 +GCP,asia-southeast1,n2-highcpu-16,on_demand,NA,0.7076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711420 +GCP,asia-southeast1,n2-highcpu-16,reserved_1y,NA,0.445744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711494 +GCP,asia-southeast1,n2-highcpu-16,reserved_3y,NA,0.3184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711511 +GCP,asia-southeast1,n2-highcpu-16,spot,NA,0.252592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711433 +GCP,asia-southeast1,n2-highcpu-32,on_demand,NA,1.4152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712574 +GCP,asia-southeast1,n2-highcpu-32,reserved_1y,NA,0.891488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712606 +GCP,asia-southeast1,n2-highcpu-32,reserved_3y,NA,0.6368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712621 +GCP,asia-southeast1,n2-highcpu-32,spot,NA,0.505184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712592 +GCP,asia-southeast1,n2-highcpu-48,on_demand,NA,2.1228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713699 +GCP,asia-southeast1,n2-highcpu-48,reserved_1y,NA,1.337232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713726 +GCP,asia-southeast1,n2-highcpu-48,reserved_3y,NA,0.9552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713741 +GCP,asia-southeast1,n2-highcpu-48,spot,NA,0.757776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713713 +GCP,asia-southeast1,n2-highcpu-64,on_demand,NA,2.8304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714791 +GCP,asia-southeast1,n2-highcpu-64,reserved_1y,NA,1.782976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714819 +GCP,asia-southeast1,n2-highcpu-64,reserved_3y,NA,1.2736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714833 +GCP,asia-southeast1,n2-highcpu-64,spot,NA,1.010368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714805 +GCP,asia-southeast1,n2-highcpu-80,on_demand,NA,3.538,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715905 +GCP,asia-southeast1,n2-highcpu-80,reserved_1y,NA,2.22872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715932 +GCP,asia-southeast1,n2-highcpu-80,reserved_3y,NA,1.592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715946 +GCP,asia-southeast1,n2-highcpu-80,spot,NA,1.26296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715919 +GCP,asia-southeast1,n2-highmem-16,on_demand,NA,1.292912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705840 +GCP,asia-southeast1,n2-highmem-16,reserved_1y,NA,0.814448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705871 +GCP,asia-southeast1,n2-highmem-16,reserved_3y,NA,0.581824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705885 +GCP,asia-southeast1,n2-highmem-16,spot,NA,0.461696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705857 +GCP,asia-southeast1,n2-highmem-2,on_demand,NA,0.161614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702500 +GCP,asia-southeast1,n2-highmem-2,reserved_1y,NA,0.101806,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702529 +GCP,asia-southeast1,n2-highmem-2,reserved_3y,NA,0.072728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702543 +GCP,asia-southeast1,n2-highmem-2,spot,NA,0.057712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702514 +GCP,asia-southeast1,n2-highmem-32,on_demand,NA,2.585824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706975 +GCP,asia-southeast1,n2-highmem-32,reserved_1y,NA,1.628896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707004 +GCP,asia-southeast1,n2-highmem-32,reserved_3y,NA,1.163648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707019 +GCP,asia-southeast1,n2-highmem-32,spot,NA,0.923392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706990 +GCP,asia-southeast1,n2-highmem-4,on_demand,NA,0.323228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703603 +GCP,asia-southeast1,n2-highmem-4,reserved_1y,NA,0.203612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703631 +GCP,asia-southeast1,n2-highmem-4,reserved_3y,NA,0.145456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703645 +GCP,asia-southeast1,n2-highmem-4,spot,NA,0.115424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703617 +GCP,asia-southeast1,n2-highmem-48,on_demand,NA,3.878736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708111 +GCP,asia-southeast1,n2-highmem-48,reserved_1y,NA,2.443344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708139 +GCP,asia-southeast1,n2-highmem-48,reserved_3y,NA,1.745472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708153 +GCP,asia-southeast1,n2-highmem-48,spot,NA,1.385088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708125 +GCP,asia-southeast1,n2-highmem-64,on_demand,NA,5.171648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709196 +GCP,asia-southeast1,n2-highmem-64,reserved_1y,NA,3.257792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709235 +GCP,asia-southeast1,n2-highmem-64,reserved_3y,NA,2.327296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709249 +GCP,asia-southeast1,n2-highmem-64,spot,NA,1.846784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709210 +GCP,asia-southeast1,n2-highmem-8,on_demand,NA,0.646456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704744 +GCP,asia-southeast1,n2-highmem-8,reserved_1y,NA,0.407224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704772 +GCP,asia-southeast1,n2-highmem-8,reserved_3y,NA,0.290912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704785 +GCP,asia-southeast1,n2-highmem-8,spot,NA,0.230848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704758 +GCP,asia-southeast1,n2-highmem-80,on_demand,NA,6.46456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710281 +GCP,asia-southeast1,n2-highmem-80,reserved_1y,NA,4.07224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710308 +GCP,asia-southeast1,n2-highmem-80,reserved_3y,NA,2.90912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710321 +GCP,asia-southeast1,n2-highmem-80,spot,NA,2.30848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710294 +GCP,asia-southeast1,n2-standard-16,on_demand,NA,0.958448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696924 +GCP,asia-southeast1,n2-standard-16,reserved_1y,NA,0.60376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696952 +GCP,asia-southeast1,n2-standard-16,reserved_3y,NA,0.431296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696967 +GCP,asia-southeast1,n2-standard-16,spot,NA,0.342208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696938 +GCP,asia-southeast1,n2-standard-32,on_demand,NA,1.916896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698042 +GCP,asia-southeast1,n2-standard-32,reserved_1y,NA,1.20752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698071 +GCP,asia-southeast1,n2-standard-32,reserved_3y,NA,0.862592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698086 +GCP,asia-southeast1,n2-standard-32,spot,NA,0.684416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698056 +GCP,asia-southeast1,n2-standard-4,on_demand,NA,0.239612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694651 +GCP,asia-southeast1,n2-standard-4,reserved_1y,NA,0.15094,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694680 +GCP,asia-southeast1,n2-standard-4,reserved_3y,NA,0.107824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694694 +GCP,asia-southeast1,n2-standard-4,spot,NA,0.085552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694665 +GCP,asia-southeast1,n2-standard-48,on_demand,NA,2.875344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699175 +GCP,asia-southeast1,n2-standard-48,reserved_1y,NA,1.81128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699206 +GCP,asia-southeast1,n2-standard-48,reserved_3y,NA,1.293888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699220 +GCP,asia-southeast1,n2-standard-48,spot,NA,1.026624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699191 +GCP,asia-southeast1,n2-standard-64,on_demand,NA,3.833792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700279 +GCP,asia-southeast1,n2-standard-64,reserved_1y,NA,2.41504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700306 +GCP,asia-southeast1,n2-standard-64,reserved_3y,NA,1.725184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700320 +GCP,asia-southeast1,n2-standard-64,spot,NA,1.368832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700292 +GCP,asia-southeast1,n2-standard-8,on_demand,NA,0.479224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695764 +GCP,asia-southeast1,n2-standard-8,reserved_1y,NA,0.30188,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695793 +GCP,asia-southeast1,n2-standard-8,reserved_3y,NA,0.215648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695807 +GCP,asia-southeast1,n2-standard-8,spot,NA,0.171104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695778 +GCP,asia-southeast1,n2-standard-80,on_demand,NA,4.79224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701406 +GCP,asia-southeast1,n2-standard-80,reserved_1y,NA,3.0188,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701434 +GCP,asia-southeast1,n2-standard-80,reserved_3y,NA,2.15648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701448 +GCP,asia-southeast1,n2-standard-80,spot,NA,1.71104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701420 +GCP,asia-southeast1,n2d-highcpu-128,on_demand,NA,0.492493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752814 +GCP,asia-southeast1,n2d-highcpu-128,reserved_1y,NA,3.102336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752843 +GCP,asia-southeast1,n2d-highcpu-128,reserved_3y,NA,2.216064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752857 +GCP,asia-southeast1,n2d-highcpu-128,spot,NA,0.920064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752829 +GCP,asia-southeast1,n2d-highcpu-16,on_demand,NA,0.061562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746509 +GCP,asia-southeast1,n2d-highcpu-16,reserved_1y,NA,0.387792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746537 +GCP,asia-southeast1,n2d-highcpu-16,reserved_3y,NA,0.277008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746551 +GCP,asia-southeast1,n2d-highcpu-16,spot,NA,0.115008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746523 +GCP,asia-southeast1,n2d-highcpu-224,on_demand,NA,0.861862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753839 +GCP,asia-southeast1,n2d-highcpu-224,reserved_1y,NA,5.429088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753867 +GCP,asia-southeast1,n2d-highcpu-224,reserved_3y,NA,3.878112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753880 +GCP,asia-southeast1,n2d-highcpu-224,spot,NA,1.610112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753853 +GCP,asia-southeast1,n2d-highcpu-32,on_demand,NA,0.123123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747557 +GCP,asia-southeast1,n2d-highcpu-32,reserved_1y,NA,0.775584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747586 +GCP,asia-southeast1,n2d-highcpu-32,reserved_3y,NA,0.554016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747600 +GCP,asia-southeast1,n2d-highcpu-32,spot,NA,0.230016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747571 +GCP,asia-southeast1,n2d-highcpu-48,on_demand,NA,0.184685,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748624 +GCP,asia-southeast1,n2d-highcpu-48,reserved_1y,NA,1.163376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748652 +GCP,asia-southeast1,n2d-highcpu-48,reserved_3y,NA,0.831024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748667 +GCP,asia-southeast1,n2d-highcpu-48,spot,NA,0.345024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748638 +GCP,asia-southeast1,n2d-highcpu-64,on_demand,NA,0.246246,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749668 +GCP,asia-southeast1,n2d-highcpu-64,reserved_1y,NA,1.551168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749696 +GCP,asia-southeast1,n2d-highcpu-64,reserved_3y,NA,1.108032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749710 +GCP,asia-southeast1,n2d-highcpu-64,spot,NA,0.460032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749682 +GCP,asia-southeast1,n2d-highcpu-80,on_demand,NA,0.307808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750716 +GCP,asia-southeast1,n2d-highcpu-80,reserved_1y,NA,1.93896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750744 +GCP,asia-southeast1,n2d-highcpu-80,reserved_3y,NA,1.38504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750758 +GCP,asia-southeast1,n2d-highcpu-80,spot,NA,0.57504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750730 +GCP,asia-southeast1,n2d-highcpu-96,on_demand,NA,0.36937,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751762 +GCP,asia-southeast1,n2d-highcpu-96,reserved_1y,NA,2.326752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751790 +GCP,asia-southeast1,n2d-highcpu-96,reserved_3y,NA,1.662048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751804 +GCP,asia-southeast1,n2d-highcpu-96,spot,NA,0.690048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751776 +GCP,asia-southeast1,n2d-highmem-16,on_demand,NA,0.112488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740238 +GCP,asia-southeast1,n2d-highmem-16,reserved_1y,NA,0.70856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740267 +GCP,asia-southeast1,n2d-highmem-16,reserved_3y,NA,0.50616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740282 +GCP,asia-southeast1,n2d-highmem-16,spot,NA,0.209984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740253 +GCP,asia-southeast1,n2d-highmem-2,on_demand,NA,0.014061,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737018 +GCP,asia-southeast1,n2d-highmem-2,reserved_1y,NA,0.08857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737047 +GCP,asia-southeast1,n2d-highmem-2,reserved_3y,NA,0.06327,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737061 +GCP,asia-southeast1,n2d-highmem-2,spot,NA,0.026248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737032 +GCP,asia-southeast1,n2d-highmem-32,on_demand,NA,0.224976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741251 +GCP,asia-southeast1,n2d-highmem-32,reserved_1y,NA,1.41712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741278 +GCP,asia-southeast1,n2d-highmem-32,reserved_3y,NA,1.01232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741292 +GCP,asia-southeast1,n2d-highmem-32,spot,NA,0.419968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741264 +GCP,asia-southeast1,n2d-highmem-4,on_demand,NA,0.028122,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738094 +GCP,asia-southeast1,n2d-highmem-4,reserved_1y,NA,0.17714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738120 +GCP,asia-southeast1,n2d-highmem-4,reserved_3y,NA,0.12654,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738133 +GCP,asia-southeast1,n2d-highmem-4,spot,NA,0.052496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738107 +GCP,asia-southeast1,n2d-highmem-48,on_demand,NA,0.337464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742330 +GCP,asia-southeast1,n2d-highmem-48,reserved_1y,NA,2.12568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742360 +GCP,asia-southeast1,n2d-highmem-48,reserved_3y,NA,1.51848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742373 +GCP,asia-southeast1,n2d-highmem-48,spot,NA,0.629952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742344 +GCP,asia-southeast1,n2d-highmem-64,on_demand,NA,0.449952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743380 +GCP,asia-southeast1,n2d-highmem-64,reserved_1y,NA,2.83424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743408 +GCP,asia-southeast1,n2d-highmem-64,reserved_3y,NA,2.02464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743422 +GCP,asia-southeast1,n2d-highmem-64,spot,NA,0.839936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743394 +GCP,asia-southeast1,n2d-highmem-8,on_demand,NA,0.056244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739170 +GCP,asia-southeast1,n2d-highmem-8,reserved_1y,NA,0.35428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739199 +GCP,asia-southeast1,n2d-highmem-8,reserved_3y,NA,0.25308,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739213 +GCP,asia-southeast1,n2d-highmem-8,spot,NA,0.104992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739184 +GCP,asia-southeast1,n2d-highmem-80,on_demand,NA,0.56244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744461 +GCP,asia-southeast1,n2d-highmem-80,reserved_1y,NA,3.5428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744491 +GCP,asia-southeast1,n2d-highmem-80,reserved_3y,NA,2.5308,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744505 +GCP,asia-southeast1,n2d-highmem-80,spot,NA,1.04992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744477 +GCP,asia-southeast1,n2d-highmem-96,on_demand,NA,0.674928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745490 +GCP,asia-southeast1,n2d-highmem-96,reserved_1y,NA,4.25136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745518 +GCP,asia-southeast1,n2d-highmem-96,reserved_3y,NA,3.03696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745532 +GCP,asia-southeast1,n2d-highmem-96,spot,NA,1.259904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745504 +GCP,asia-southeast1,n2d-standard-128,on_demand,NA,0.667098,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734935 +GCP,asia-southeast1,n2d-standard-128,reserved_1y,NA,4.202112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734963 +GCP,asia-southeast1,n2d-standard-128,reserved_3y,NA,3.001728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734977 +GCP,asia-southeast1,n2d-standard-128,spot,NA,1.245696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734949 +GCP,asia-southeast1,n2d-standard-16,on_demand,NA,0.083387,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728608 +GCP,asia-southeast1,n2d-standard-16,reserved_1y,NA,0.525264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728636 +GCP,asia-southeast1,n2d-standard-16,reserved_3y,NA,0.375216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728650 +GCP,asia-southeast1,n2d-standard-16,spot,NA,0.155712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728622 +GCP,asia-southeast1,n2d-standard-224,on_demand,NA,1.167421,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735982 +GCP,asia-southeast1,n2d-standard-224,reserved_1y,NA,7.353696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736007 +GCP,asia-southeast1,n2d-standard-224,reserved_3y,NA,5.253024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736019 +GCP,asia-southeast1,n2d-standard-224,spot,NA,2.179968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735995 +GCP,asia-southeast1,n2d-standard-32,on_demand,NA,0.166774,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729643 +GCP,asia-southeast1,n2d-standard-32,reserved_1y,NA,1.050528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729671 +GCP,asia-southeast1,n2d-standard-32,reserved_3y,NA,0.750432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729685 +GCP,asia-southeast1,n2d-standard-32,spot,NA,0.311424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729657 +GCP,asia-southeast1,n2d-standard-4,on_demand,NA,0.020847,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726486 +GCP,asia-southeast1,n2d-standard-4,reserved_1y,NA,0.131316,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726515 +GCP,asia-southeast1,n2d-standard-4,reserved_3y,NA,0.093804,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726529 +GCP,asia-southeast1,n2d-standard-4,spot,NA,0.038928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726500 +GCP,asia-southeast1,n2d-standard-48,on_demand,NA,0.250162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730667 +GCP,asia-southeast1,n2d-standard-48,reserved_1y,NA,1.575792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730696 +GCP,asia-southeast1,n2d-standard-48,reserved_3y,NA,1.125648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730710 +GCP,asia-southeast1,n2d-standard-48,spot,NA,0.467136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730681 +GCP,asia-southeast1,n2d-standard-64,on_demand,NA,0.333549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731764 +GCP,asia-southeast1,n2d-standard-64,reserved_1y,NA,2.101056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731792 +GCP,asia-southeast1,n2d-standard-64,reserved_3y,NA,1.500864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731806 +GCP,asia-southeast1,n2d-standard-64,spot,NA,0.622848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731778 +GCP,asia-southeast1,n2d-standard-8,on_demand,NA,0.041694,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727551 +GCP,asia-southeast1,n2d-standard-8,reserved_1y,NA,0.262632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727579 +GCP,asia-southeast1,n2d-standard-8,reserved_3y,NA,0.187608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727593 +GCP,asia-southeast1,n2d-standard-8,spot,NA,0.077856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727565 +GCP,asia-southeast1,n2d-standard-80,on_demand,NA,0.416936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732825 +GCP,asia-southeast1,n2d-standard-80,reserved_1y,NA,2.62632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732852 +GCP,asia-southeast1,n2d-standard-80,reserved_3y,NA,1.87608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732866 +GCP,asia-southeast1,n2d-standard-80,spot,NA,0.77856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732838 +GCP,asia-southeast1,n2d-standard-96,on_demand,NA,0.500323,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733855 +GCP,asia-southeast1,n2d-standard-96,reserved_1y,NA,3.151584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733884 +GCP,asia-southeast1,n2d-standard-96,reserved_3y,NA,2.251296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733898 +GCP,asia-southeast1,n2d-standard-96,spot,NA,0.934272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733869 +GCP,asia-southeast1,n4-standard-16,on_demand,NA,0.68874,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758001 +GCP,asia-southeast1,n4-standard-16,reserved_1y,NA,0.563949,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758030 +GCP,asia-southeast1,n4-standard-16,reserved_3y,NA,0.402838,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758044 +GCP,asia-southeast1,n4-standard-16,spot,NA,0.3376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758016 +GCP,asia-southeast1,n4-standard-2,on_demand,NA,0.086093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754875 +GCP,asia-southeast1,n4-standard-2,reserved_1y,NA,0.070494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754904 +GCP,asia-southeast1,n4-standard-2,reserved_3y,NA,0.050355,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754924 +GCP,asia-southeast1,n4-standard-2,spot,NA,0.0422,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754890 +GCP,asia-southeast1,n4-standard-32,on_demand,NA,1.37748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759047 +GCP,asia-southeast1,n4-standard-32,reserved_1y,NA,1.127898,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759075 +GCP,asia-southeast1,n4-standard-32,reserved_3y,NA,0.805675,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759089 +GCP,asia-southeast1,n4-standard-32,spot,NA,0.6752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759061 +GCP,asia-southeast1,n4-standard-4,on_demand,NA,0.172185,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755938 +GCP,asia-southeast1,n4-standard-4,reserved_1y,NA,0.140987,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755966 +GCP,asia-southeast1,n4-standard-4,reserved_3y,NA,0.100709,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755980 +GCP,asia-southeast1,n4-standard-4,spot,NA,0.0844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755952 +GCP,asia-southeast1,n4-standard-8,on_demand,NA,0.34437,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756966 +GCP,asia-southeast1,n4-standard-8,reserved_1y,NA,0.281975,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756994 +GCP,asia-southeast1,n4-standard-8,reserved_3y,NA,0.201419,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757008 +GCP,asia-southeast1,n4-standard-8,spot,NA,0.1688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756980 +GCP,australia-southeast1,a2-highgpu-1g,on_demand,NA,1.049207,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770945 +GCP,australia-southeast1,a2-highgpu-1g,reserved_1y,NA,0.660965,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770973 +GCP,australia-southeast1,a2-highgpu-1g,reserved_3y,NA,0.367253,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770987 +GCP,australia-southeast1,a2-highgpu-1g,spot,NA,0.18852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770959 +GCP,australia-southeast1,a2-highgpu-2g,on_demand,NA,2.098414,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772047 +GCP,australia-southeast1,a2-highgpu-2g,reserved_1y,NA,1.321931,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772076 +GCP,australia-southeast1,a2-highgpu-2g,reserved_3y,NA,0.734506,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772090 +GCP,australia-southeast1,a2-highgpu-2g,spot,NA,0.37704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772062 +GCP,australia-southeast1,a2-highgpu-4g,on_demand,NA,4.196828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773133 +GCP,australia-southeast1,a2-highgpu-4g,reserved_1y,NA,2.643861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773162 +GCP,australia-southeast1,a2-highgpu-4g,reserved_3y,NA,1.469012,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773176 +GCP,australia-southeast1,a2-highgpu-4g,spot,NA,0.75408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773147 +GCP,australia-southeast1,a2-highgpu-8g,on_demand,NA,8.393656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774255 +GCP,australia-southeast1,a2-highgpu-8g,reserved_1y,NA,5.287722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774284 +GCP,australia-southeast1,a2-highgpu-8g,reserved_3y,NA,2.938025,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774298 +GCP,australia-southeast1,a2-highgpu-8g,spot,NA,1.50816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774270 +GCP,australia-southeast1,a2-megagpu-16g,on_demand,NA,12.481136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775351 +GCP,australia-southeast1,a2-megagpu-16g,reserved_1y,NA,7.862542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775378 +GCP,australia-southeast1,a2-megagpu-16g,reserved_3y,NA,4.368881,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775392 +GCP,australia-southeast1,a2-megagpu-16g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775364 +GCP,australia-southeast1,a2-ultragpu-1g,on_demand,NA,1.560142,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776448 +GCP,australia-southeast1,a2-ultragpu-1g,reserved_1y,NA,0.982818,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776475 +GCP,australia-southeast1,a2-ultragpu-1g,reserved_3y,NA,0.54611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776489 +GCP,australia-southeast1,a2-ultragpu-1g,spot,NA,0.28032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776461 +GCP,australia-southeast1,a2-ultragpu-2g,on_demand,NA,3.120284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777570 +GCP,australia-southeast1,a2-ultragpu-2g,reserved_1y,NA,1.965636,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777599 +GCP,australia-southeast1,a2-ultragpu-2g,reserved_3y,NA,1.09222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777613 +GCP,australia-southeast1,a2-ultragpu-2g,spot,NA,0.56064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777584 +GCP,australia-southeast1,a2-ultragpu-4g,on_demand,NA,6.240568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778613 +GCP,australia-southeast1,a2-ultragpu-4g,reserved_1y,NA,3.931271,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778641 +GCP,australia-southeast1,a2-ultragpu-4g,reserved_3y,NA,2.18444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778655 +GCP,australia-southeast1,a2-ultragpu-4g,spot,NA,1.12128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778627 +GCP,australia-southeast1,a2-ultragpu-8g,on_demand,NA,12.481136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779664 +GCP,australia-southeast1,a2-ultragpu-8g,reserved_1y,NA,7.862542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779692 +GCP,australia-southeast1,a2-ultragpu-8g,reserved_3y,NA,4.368881,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779706 +GCP,australia-southeast1,a2-ultragpu-8g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779678 +GCP,australia-southeast1,a3-highgpu-1g,on_demand,NA,1.478134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780776 +GCP,australia-southeast1,a3-highgpu-1g,reserved_1y,NA,1.027962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780805 +GCP,australia-southeast1,a3-highgpu-1g,reserved_3y,NA,0.651454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780819 +GCP,australia-southeast1,a3-highgpu-1g,spot,NA,0.26624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780790 +GCP,australia-southeast1,a3-highgpu-2g,on_demand,NA,1.478134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781823 +GCP,australia-southeast1,a3-highgpu-2g,reserved_1y,NA,1.027962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781850 +GCP,australia-southeast1,a3-highgpu-2g,reserved_3y,NA,0.651454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781864 +GCP,australia-southeast1,a3-highgpu-2g,spot,NA,0.26624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781836 +GCP,australia-southeast1,a3-highgpu-4g,on_demand,NA,1.478134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782905 +GCP,australia-southeast1,a3-highgpu-4g,reserved_1y,NA,1.027962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782939 +GCP,australia-southeast1,a3-highgpu-4g,reserved_3y,NA,0.651454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782989 +GCP,australia-southeast1,a3-highgpu-4g,spot,NA,0.26624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782925 +GCP,australia-southeast1,a3-highgpu-8g,on_demand,NA,1.478134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784003 +GCP,australia-southeast1,a3-highgpu-8g,reserved_1y,NA,1.027962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784032 +GCP,australia-southeast1,a3-highgpu-8g,reserved_3y,NA,0.651454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784046 +GCP,australia-southeast1,a3-highgpu-8g,spot,NA,0.26624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784017 +GCP,australia-southeast1,c2-standard-16,on_demand,NA,1.03104,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721962 +GCP,australia-southeast1,c2-standard-16,reserved_1y,NA,0.649552,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722008 +GCP,australia-southeast1,c2-standard-16,reserved_3y,NA,0.464,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722031 +GCP,australia-southeast1,c2-standard-16,spot,NA,0.236464,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721985 +GCP,australia-southeast1,c2-standard-30,on_demand,NA,1.9332,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723642 +GCP,australia-southeast1,c2-standard-30,reserved_1y,NA,1.21791,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723688 +GCP,australia-southeast1,c2-standard-30,reserved_3y,NA,0.87,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723711 +GCP,australia-southeast1,c2-standard-30,spot,NA,0.44337,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723665 +GCP,australia-southeast1,c2-standard-4,on_demand,NA,0.25776,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718377 +GCP,australia-southeast1,c2-standard-4,reserved_1y,NA,0.162388,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718424 +GCP,australia-southeast1,c2-standard-4,reserved_3y,NA,0.116,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718447 +GCP,australia-southeast1,c2-standard-4,spot,NA,0.059116,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718400 +GCP,australia-southeast1,c2-standard-60,on_demand,NA,3.8664,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725379 +GCP,australia-southeast1,c2-standard-60,reserved_1y,NA,2.43582,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725426 +GCP,australia-southeast1,c2-standard-60,reserved_3y,NA,1.74,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725449 +GCP,australia-southeast1,c2-standard-60,spot,NA,0.88674,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725403 +GCP,australia-southeast1,c2-standard-8,on_demand,NA,0.51552,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720253 +GCP,australia-southeast1,c2-standard-8,reserved_1y,NA,0.324776,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720301 +GCP,australia-southeast1,c2-standard-8,reserved_3y,NA,0.232,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720324 +GCP,australia-southeast1,c2-standard-8,spot,NA,0.118232,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720277 +GCP,australia-southeast1,c3-highmem-22,on_demand,NA,0.961647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800905 +GCP,australia-southeast1,c3-highmem-22,reserved_1y,NA,1.146145,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800935 +GCP,australia-southeast1,c3-highmem-22,reserved_3y,NA,0.818647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800950 +GCP,australia-southeast1,c3-highmem-22,spot,NA,0.48246,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800921 +GCP,australia-southeast1,c3-highmem-4,on_demand,NA,0.174845,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798831 +GCP,australia-southeast1,c3-highmem-4,reserved_1y,NA,0.20839,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798862 +GCP,australia-southeast1,c3-highmem-4,reserved_3y,NA,0.148845,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798876 +GCP,australia-southeast1,c3-highmem-4,spot,NA,0.08772,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798848 +GCP,australia-southeast1,c3-highmem-44,on_demand,NA,1.923295,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801921 +GCP,australia-southeast1,c3-highmem-44,reserved_1y,NA,2.29229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801948 +GCP,australia-southeast1,c3-highmem-44,reserved_3y,NA,1.637295,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801961 +GCP,australia-southeast1,c3-highmem-44,spot,NA,0.96492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801934 +GCP,australia-southeast1,c3-highmem-8,on_demand,NA,0.34969,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799905 +GCP,australia-southeast1,c3-highmem-8,reserved_1y,NA,0.41678,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799932 +GCP,australia-southeast1,c3-highmem-8,reserved_3y,NA,0.29769,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799945 +GCP,australia-southeast1,c3-highmem-8,spot,NA,0.17544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799919 +GCP,australia-southeast1,c3-highmem-88,on_demand,NA,3.84659,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802950 +GCP,australia-southeast1,c3-highmem-88,reserved_1y,NA,4.58458,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802977 +GCP,australia-southeast1,c3-highmem-88,reserved_3y,NA,3.27459,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802990 +GCP,australia-southeast1,c3-highmem-88,spot,NA,1.92984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802964 +GCP,australia-southeast1,c3-standard-22 (-lssd),on_demand,NA,0.528467,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795624 +GCP,australia-southeast1,c3-standard-22 (-lssd),reserved_1y,NA,0.873235,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795652 +GCP,australia-southeast1,c3-standard-22 (-lssd),reserved_3y,NA,0.623727,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795668 +GCP,australia-southeast1,c3-standard-22 (-lssd),spot,NA,0.36366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795638 +GCP,australia-southeast1,c3-standard-4 (-lssd),on_demand,NA,0.096085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793515 +GCP,australia-southeast1,c3-standard-4 (-lssd),reserved_1y,NA,0.15877,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793543 +GCP,australia-southeast1,c3-standard-4 (-lssd),reserved_3y,NA,0.113405,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793558 +GCP,australia-southeast1,c3-standard-4 (-lssd),spot,NA,0.06612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793529 +GCP,australia-southeast1,c3-standard-44 (-lssd),on_demand,NA,1.056935,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796728 +GCP,australia-southeast1,c3-standard-44 (-lssd),reserved_1y,NA,1.74647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796756 +GCP,australia-southeast1,c3-standard-44 (-lssd),reserved_3y,NA,1.247455,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796770 +GCP,australia-southeast1,c3-standard-44 (-lssd),spot,NA,0.72732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796742 +GCP,australia-southeast1,c3-standard-8 (-lssd),on_demand,NA,0.19217,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794554 +GCP,australia-southeast1,c3-standard-8 (-lssd),reserved_1y,NA,0.31754,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794582 +GCP,australia-southeast1,c3-standard-8 (-lssd),reserved_3y,NA,0.22681,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794595 +GCP,australia-southeast1,c3-standard-8 (-lssd),spot,NA,0.13224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794568 +GCP,australia-southeast1,c3-standard-88 (-lssd),on_demand,NA,2.11387,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797784 +GCP,australia-southeast1,c3-standard-88 (-lssd),reserved_1y,NA,3.49294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797812 +GCP,australia-southeast1,c3-standard-88 (-lssd),reserved_3y,NA,2.49491,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797826 +GCP,australia-southeast1,c3-standard-88 (-lssd),spot,NA,1.45464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797798 +GCP,australia-southeast1,c3d-highmem-16 (-lssd),on_demand,NA,0.692566,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814716 +GCP,australia-southeast1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.77152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814744 +GCP,australia-southeast1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.55102,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814758 +GCP,australia-southeast1,c3d-highmem-16 (-lssd),spot,NA,0.291488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814730 +GCP,australia-southeast1,c3d-highmem-180 (-lssd),on_demand,NA,7.791367,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818895 +GCP,australia-southeast1,c3d-highmem-180 (-lssd),reserved_1y,NA,8.6796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818930 +GCP,australia-southeast1,c3d-highmem-180 (-lssd),reserved_3y,NA,6.198975,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818944 +GCP,australia-southeast1,c3d-highmem-180 (-lssd),spot,NA,3.27924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818909 +GCP,australia-southeast1,c3d-highmem-30 (-lssd),on_demand,NA,1.298561,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815773 +GCP,australia-southeast1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.4466,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815801 +GCP,australia-southeast1,c3d-highmem-30 (-lssd),reserved_3y,NA,1.033162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815816 +GCP,australia-southeast1,c3d-highmem-30 (-lssd),spot,NA,0.54654,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815787 +GCP,australia-southeast1,c3d-highmem-360 (-lssd),on_demand,NA,15.582735,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819945 +GCP,australia-southeast1,c3d-highmem-360 (-lssd),reserved_1y,NA,17.3592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819973 +GCP,australia-southeast1,c3d-highmem-360 (-lssd),reserved_3y,NA,12.39795,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819987 +GCP,australia-southeast1,c3d-highmem-360 (-lssd),spot,NA,6.55848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819959 +GCP,australia-southeast1,c3d-highmem-4 (-lssd),on_demand,NA,0.173142,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812460 +GCP,australia-southeast1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.19288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812487 +GCP,australia-southeast1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.137755,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812501 +GCP,australia-southeast1,c3d-highmem-4 (-lssd),spot,NA,0.072872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812473 +GCP,australia-southeast1,c3d-highmem-60 (-lssd),on_demand,NA,2.597122,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816829 +GCP,australia-southeast1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.8932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816857 +GCP,australia-southeast1,c3d-highmem-60 (-lssd),reserved_3y,NA,2.066325,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816871 +GCP,australia-southeast1,c3d-highmem-60 (-lssd),spot,NA,1.09308,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816843 +GCP,australia-southeast1,c3d-highmem-8 (-lssd),on_demand,NA,0.346283,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813503 +GCP,australia-southeast1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.38576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813541 +GCP,australia-southeast1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.27551,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813557 +GCP,australia-southeast1,c3d-highmem-8 (-lssd),spot,NA,0.145744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813527 +GCP,australia-southeast1,c3d-highmem-90 (-lssd),on_demand,NA,3.895684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817864 +GCP,australia-southeast1,c3d-highmem-90 (-lssd),reserved_1y,NA,4.3398,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817891 +GCP,australia-southeast1,c3d-highmem-90 (-lssd),reserved_3y,NA,3.099488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817905 +GCP,australia-southeast1,c3d-highmem-90 (-lssd),spot,NA,1.63962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817877 +GCP,australia-southeast1,c3d-standard-16 (-lssd),on_demand,NA,0.375846,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806095 +GCP,australia-southeast1,c3d-standard-16 (-lssd),reserved_1y,NA,0.572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806123 +GCP,australia-southeast1,c3d-standard-16 (-lssd),reserved_3y,NA,0.40854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806137 +GCP,australia-southeast1,c3d-standard-16 (-lssd),spot,NA,0.221984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806109 +GCP,australia-southeast1,c3d-standard-180 (-lssd),on_demand,NA,4.228268,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810345 +GCP,australia-southeast1,c3d-standard-180 (-lssd),reserved_1y,NA,6.435,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810373 +GCP,australia-southeast1,c3d-standard-180 (-lssd),reserved_3y,NA,4.596075,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810387 +GCP,australia-southeast1,c3d-standard-180 (-lssd),spot,NA,2.49732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810359 +GCP,australia-southeast1,c3d-standard-30 (-lssd),on_demand,NA,0.704711,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807159 +GCP,australia-southeast1,c3d-standard-30 (-lssd),reserved_1y,NA,1.0725,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807187 +GCP,australia-southeast1,c3d-standard-30 (-lssd),reserved_3y,NA,0.766012,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807201 +GCP,australia-southeast1,c3d-standard-30 (-lssd),spot,NA,0.41622,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807173 +GCP,australia-southeast1,c3d-standard-360 (-lssd),on_demand,NA,8.456535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811399 +GCP,australia-southeast1,c3d-standard-360 (-lssd),reserved_1y,NA,12.87,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811427 +GCP,australia-southeast1,c3d-standard-360 (-lssd),reserved_3y,NA,9.19215,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811441 +GCP,australia-southeast1,c3d-standard-360 (-lssd),spot,NA,4.99464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811413 +GCP,australia-southeast1,c3d-standard-4 (-lssd),on_demand,NA,0.093962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804039 +GCP,australia-southeast1,c3d-standard-4 (-lssd),reserved_1y,NA,0.143,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804066 +GCP,australia-southeast1,c3d-standard-4 (-lssd),reserved_3y,NA,0.102135,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804080 +GCP,australia-southeast1,c3d-standard-4 (-lssd),spot,NA,0.055496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804052 +GCP,australia-southeast1,c3d-standard-60 (-lssd),on_demand,NA,1.409423,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808230 +GCP,australia-southeast1,c3d-standard-60 (-lssd),reserved_1y,NA,2.145,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808259 +GCP,australia-southeast1,c3d-standard-60 (-lssd),reserved_3y,NA,1.532025,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808273 +GCP,australia-southeast1,c3d-standard-60 (-lssd),spot,NA,0.83244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808244 +GCP,australia-southeast1,c3d-standard-8 (-lssd),on_demand,NA,0.187923,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805057 +GCP,australia-southeast1,c3d-standard-8 (-lssd),reserved_1y,NA,0.286,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805084 +GCP,australia-southeast1,c3d-standard-8 (-lssd),reserved_3y,NA,0.20427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805098 +GCP,australia-southeast1,c3d-standard-8 (-lssd),spot,NA,0.110992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805070 +GCP,australia-southeast1,c3d-standard-90 (-lssd),on_demand,NA,2.114134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809289 +GCP,australia-southeast1,c3d-standard-90 (-lssd),reserved_1y,NA,3.2175,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809317 +GCP,australia-southeast1,c3d-standard-90 (-lssd),reserved_3y,NA,2.298038,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809331 +GCP,australia-southeast1,c3d-standard-90 (-lssd),spot,NA,1.24866,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809303 +GCP,australia-southeast1,c4-standard-16,on_demand,NA,0.36465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841317 +GCP,australia-southeast1,c4-standard-16,reserved_1y,NA,0.622675,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841344 +GCP,australia-southeast1,c4-standard-16,reserved_3y,NA,0.44476,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841358 +GCP,australia-southeast1,c4-standard-16,spot,NA,0.33606,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841330 +GCP,australia-southeast1,c4-standard-2,on_demand,NA,0.04312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837985 +GCP,australia-southeast1,c4-standard-2,reserved_1y,NA,0.076284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838072 +GCP,australia-southeast1,c4-standard-2,reserved_3y,NA,0.054488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838088 +GCP,australia-southeast1,c4-standard-2,spot,NA,0.041171,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838050 +GCP,australia-southeast1,c4-standard-24,on_demand,NA,0.546975,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842395 +GCP,australia-southeast1,c4-standard-24,reserved_1y,NA,0.934013,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842423 +GCP,australia-southeast1,c4-standard-24,reserved_3y,NA,0.66714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842437 +GCP,australia-southeast1,c4-standard-24,spot,NA,0.50409,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842409 +GCP,australia-southeast1,c4-standard-32,on_demand,NA,0.7293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843570 +GCP,australia-southeast1,c4-standard-32,reserved_1y,NA,1.24535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843599 +GCP,australia-southeast1,c4-standard-32,reserved_3y,NA,0.88952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843613 +GCP,australia-southeast1,c4-standard-32,spot,NA,0.67212,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843584 +GCP,australia-southeast1,c4-standard-4,on_demand,NA,0.091163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839088 +GCP,australia-southeast1,c4-standard-4,reserved_1y,NA,0.155669,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839115 +GCP,australia-southeast1,c4-standard-4,reserved_3y,NA,0.11119,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839129 +GCP,australia-southeast1,c4-standard-4,spot,NA,0.084015,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839102 +GCP,australia-southeast1,c4-standard-8,on_demand,NA,0.182325,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840233 +GCP,australia-southeast1,c4-standard-8,reserved_1y,NA,0.311337,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840263 +GCP,australia-southeast1,c4-standard-8,reserved_3y,NA,0.22238,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840276 +GCP,australia-southeast1,c4-standard-8,spot,NA,0.16803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840248 +GCP,australia-southeast1,c4a-highmem-16 (-lssd),on_demand,NA,0.69938,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832092 +GCP,australia-southeast1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.83356,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832138 +GCP,australia-southeast1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.59538,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832162 +GCP,australia-southeast1,c4a-highmem-16 (-lssd),spot,NA,0.35088,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832116 +GCP,australia-southeast1,c4a-highmem-32 (-lssd),on_demand,NA,1.39876,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833308 +GCP,australia-southeast1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.66712,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833353 +GCP,australia-southeast1,c4a-highmem-32 (-lssd),reserved_3y,NA,1.19076,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833375 +GCP,australia-southeast1,c4a-highmem-32 (-lssd),spot,NA,0.70176,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833330 +GCP,australia-southeast1,c4a-highmem-4 (-lssd),on_demand,NA,0.174845,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829623 +GCP,australia-southeast1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.20839,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829667 +GCP,australia-southeast1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.148845,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829690 +GCP,australia-southeast1,c4a-highmem-4 (-lssd),spot,NA,0.08772,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829646 +GCP,australia-southeast1,c4a-highmem-48 (-lssd),on_demand,NA,2.09814,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834521 +GCP,australia-southeast1,c4a-highmem-48 (-lssd),reserved_1y,NA,2.50068,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834564 +GCP,australia-southeast1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.78614,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834585 +GCP,australia-southeast1,c4a-highmem-48 (-lssd),spot,NA,1.05264,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834543 +GCP,australia-southeast1,c4a-highmem-64 (-lssd),on_demand,NA,2.79752,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835682 +GCP,australia-southeast1,c4a-highmem-64 (-lssd),reserved_1y,NA,3.33424,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835725 +GCP,australia-southeast1,c4a-highmem-64 (-lssd),reserved_3y,NA,2.38152,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835746 +GCP,australia-southeast1,c4a-highmem-64 (-lssd),spot,NA,1.40352,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835704 +GCP,australia-southeast1,c4a-highmem-72 (-lssd),on_demand,NA,3.14721,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836857 +GCP,australia-southeast1,c4a-highmem-72 (-lssd),reserved_1y,NA,3.75102,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836900 +GCP,australia-southeast1,c4a-highmem-72 (-lssd),reserved_3y,NA,2.67921,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836921 +GCP,australia-southeast1,c4a-highmem-72 (-lssd),spot,NA,1.57896,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836878 +GCP,australia-southeast1,c4a-highmem-8 (-lssd),on_demand,NA,0.34969,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830845 +GCP,australia-southeast1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.41678,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830889 +GCP,australia-southeast1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.29769,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830910 +GCP,australia-southeast1,c4a-highmem-8 (-lssd),spot,NA,0.17544,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830867 +GCP,australia-southeast1,c4a-standard-16 (-lssd),on_demand,NA,0.38434,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823540 +GCP,australia-southeast1,c4a-standard-16 (-lssd),reserved_1y,NA,0.63508,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823586 +GCP,australia-southeast1,c4a-standard-16 (-lssd),reserved_3y,NA,0.45362,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823609 +GCP,australia-southeast1,c4a-standard-16 (-lssd),spot,NA,0.26448,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823563 +GCP,australia-southeast1,c4a-standard-32 (-lssd),on_demand,NA,0.76868,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824785 +GCP,australia-southeast1,c4a-standard-32 (-lssd),reserved_1y,NA,1.27016,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824830 +GCP,australia-southeast1,c4a-standard-32 (-lssd),reserved_3y,NA,0.90724,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824853 +GCP,australia-southeast1,c4a-standard-32 (-lssd),spot,NA,0.52896,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824807 +GCP,australia-southeast1,c4a-standard-4 (-lssd),on_demand,NA,0.096085,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821079 +GCP,australia-southeast1,c4a-standard-4 (-lssd),reserved_1y,NA,0.15877,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821125 +GCP,australia-southeast1,c4a-standard-4 (-lssd),reserved_3y,NA,0.113405,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821148 +GCP,australia-southeast1,c4a-standard-4 (-lssd),spot,NA,0.06612,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821102 +GCP,australia-southeast1,c4a-standard-48 (-lssd),on_demand,NA,1.15302,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826008 +GCP,australia-southeast1,c4a-standard-48 (-lssd),reserved_1y,NA,1.90524,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826054 +GCP,australia-southeast1,c4a-standard-48 (-lssd),reserved_3y,NA,1.36086,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826076 +GCP,australia-southeast1,c4a-standard-48 (-lssd),spot,NA,0.79344,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826031 +GCP,australia-southeast1,c4a-standard-64 (-lssd),on_demand,NA,1.53736,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827233 +GCP,australia-southeast1,c4a-standard-64 (-lssd),reserved_1y,NA,2.54032,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827277 +GCP,australia-southeast1,c4a-standard-64 (-lssd),reserved_3y,NA,1.81448,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827299 +GCP,australia-southeast1,c4a-standard-64 (-lssd),spot,NA,1.05792,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827255 +GCP,australia-southeast1,c4a-standard-72 (-lssd),on_demand,NA,1.72953,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828436 +GCP,australia-southeast1,c4a-standard-72 (-lssd),reserved_1y,NA,2.85786,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828480 +GCP,australia-southeast1,c4a-standard-72 (-lssd),reserved_3y,NA,2.04129,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828502 +GCP,australia-southeast1,c4a-standard-72 (-lssd),spot,NA,1.19016,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828458 +GCP,australia-southeast1,c4a-standard-8 (-lssd),on_demand,NA,0.19217,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822308 +GCP,australia-southeast1,c4a-standard-8 (-lssd),reserved_1y,NA,0.31754,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822352 +GCP,australia-southeast1,c4a-standard-8 (-lssd),reserved_3y,NA,0.22681,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822374 +GCP,australia-southeast1,c4a-standard-8 (-lssd),spot,NA,0.13224,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822330 +GCP,australia-southeast1,c4d-standard-16,on_demand,NA,0.365949,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848701 +GCP,australia-southeast1,c4d-standard-16,reserved_1y,NA,0.565765,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848748 +GCP,australia-southeast1,c4d-standard-16,reserved_3y,NA,0.404088,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848770 +GCP,australia-southeast1,c4d-standard-16,spot,NA,0.219812,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848725 +GCP,australia-southeast1,c4d-standard-2,on_demand,NA,0.042032,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844808 +GCP,australia-southeast1,c4d-standard-2,reserved_1y,NA,0.068382,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844855 +GCP,australia-southeast1,c4d-standard-2,reserved_3y,NA,0.048841,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844878 +GCP,australia-southeast1,c4d-standard-2,spot,NA,0.026662,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844832 +GCP,australia-southeast1,c4d-standard-32,on_demand,NA,0.731897,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850023 +GCP,australia-southeast1,c4d-standard-32,reserved_1y,NA,1.13153,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850068 +GCP,australia-southeast1,c4d-standard-32,reserved_3y,NA,0.808175,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850091 +GCP,australia-southeast1,c4d-standard-32,spot,NA,0.439624,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850045 +GCP,australia-southeast1,c4d-standard-4,on_demand,NA,0.089013,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846109 +GCP,australia-southeast1,c4d-standard-4,reserved_1y,NA,0.139882,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846155 +GCP,australia-southeast1,c4d-standard-4,reserved_3y,NA,0.099909,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846177 +GCP,australia-southeast1,c4d-standard-4,spot,NA,0.05441,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846132 +GCP,australia-southeast1,c4d-standard-8,on_demand,NA,0.182974,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847377 +GCP,australia-southeast1,c4d-standard-8,reserved_1y,NA,0.282882,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847421 +GCP,australia-southeast1,c4d-standard-8,reserved_3y,NA,0.202044,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847442 +GCP,australia-southeast1,c4d-standard-8,spot,NA,0.109906,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847398 +GCP,australia-southeast1,e2_highcpu_16,on_demand,NA,0.561572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764501 +GCP,australia-southeast1,e2_highcpu_16,reserved_1y,NA,0.35379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764530 +GCP,australia-southeast1,e2_highcpu_16,reserved_3y,NA,0.252707,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764544 +GCP,australia-southeast1,e2_highcpu_16,spot,NA,0.218304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764516 +GCP,australia-southeast1,e2_highcpu_32,on_demand,NA,1.123143,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765536 +GCP,australia-southeast1,e2_highcpu_32,reserved_1y,NA,0.70758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765565 +GCP,australia-southeast1,e2_highcpu_32,reserved_3y,NA,0.505414,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765579 +GCP,australia-southeast1,e2_highcpu_32,spot,NA,0.436608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765550 +GCP,australia-southeast1,e2_highmem_16,on_demand,NA,1.026102,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763392 +GCP,australia-southeast1,e2_highmem_16,reserved_1y,NA,0.646444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763421 +GCP,australia-southeast1,e2_highmem_16,reserved_3y,NA,0.461746,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763435 +GCP,australia-southeast1,e2_highmem_16,spot,NA,0.399072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763406 +GCP,australia-southeast1,e2_highmem_2,on_demand,NA,0.128263,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760281 +GCP,australia-southeast1,e2_highmem_2,reserved_1y,NA,0.080806,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760309 +GCP,australia-southeast1,e2_highmem_2,reserved_3y,NA,0.057718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760323 +GCP,australia-southeast1,e2_highmem_2,spot,NA,0.049884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760295 +GCP,australia-southeast1,e2_highmem_4,on_demand,NA,0.256525,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761313 +GCP,australia-southeast1,e2_highmem_4,reserved_1y,NA,0.161611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761341 +GCP,australia-southeast1,e2_highmem_4,reserved_3y,NA,0.115436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761355 +GCP,australia-southeast1,e2_highmem_4,spot,NA,0.099768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761327 +GCP,australia-southeast1,e2_highmem_8,on_demand,NA,0.513051,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762343 +GCP,australia-southeast1,e2_highmem_8,reserved_1y,NA,0.323222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762371 +GCP,australia-southeast1,e2_highmem_8,reserved_3y,NA,0.230873,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762386 +GCP,australia-southeast1,e2_highmem_8,spot,NA,0.199536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762357 +GCP,australia-southeast1,e2_standard_16,on_demand,NA,0.760656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768841 +GCP,australia-southeast1,e2_standard_16,reserved_1y,NA,0.479213,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768870 +GCP,australia-southeast1,e2_standard_16,reserved_3y,NA,0.342295,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768885 +GCP,australia-southeast1,e2_standard_16,spot,NA,0.295776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768855 +GCP,australia-southeast1,e2_standard_32,on_demand,NA,1.521312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769916 +GCP,australia-southeast1,e2_standard_32,reserved_1y,NA,0.958426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769943 +GCP,australia-southeast1,e2_standard_32,reserved_3y,NA,0.68459,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769957 +GCP,australia-southeast1,e2_standard_32,spot,NA,0.591552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769929 +GCP,australia-southeast1,e2_standard_4,on_demand,NA,0.190164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766747 +GCP,australia-southeast1,e2_standard_4,reserved_1y,NA,0.119803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766776 +GCP,australia-southeast1,e2_standard_4,reserved_3y,NA,0.085574,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766790 +GCP,australia-southeast1,e2_standard_4,spot,NA,0.073944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766762 +GCP,australia-southeast1,e2_standard_8,on_demand,NA,0.380328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767795 +GCP,australia-southeast1,e2_standard_8,reserved_1y,NA,0.239607,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767822 +GCP,australia-southeast1,e2_standard_8,reserved_3y,NA,0.171148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767836 +GCP,australia-southeast1,e2_standard_8,spot,NA,0.147888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767809 +GCP,australia-southeast1,g2-standard-12,on_demand,NA,0.213054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787125 +GCP,australia-southeast1,g2-standard-12,reserved_1y,NA,0.346674,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787152 +GCP,australia-southeast1,g2-standard-12,reserved_3y,NA,0.247624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787166 +GCP,australia-southeast1,g2-standard-12,spot,NA,0.15936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787139 +GCP,australia-southeast1,g2-standard-16,on_demand,NA,0.284072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788213 +GCP,australia-southeast1,g2-standard-16,reserved_1y,NA,0.462232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788241 +GCP,australia-southeast1,g2-standard-16,reserved_3y,NA,0.330166,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788254 +GCP,australia-southeast1,g2-standard-16,spot,NA,0.21248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788227 +GCP,australia-southeast1,g2-standard-24,on_demand,NA,0.426108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789251 +GCP,australia-southeast1,g2-standard-24,reserved_1y,NA,0.693348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789279 +GCP,australia-southeast1,g2-standard-24,reserved_3y,NA,0.495249,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789293 +GCP,australia-southeast1,g2-standard-24,spot,NA,0.31872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789265 +GCP,australia-southeast1,g2-standard-32,on_demand,NA,0.568144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790281 +GCP,australia-southeast1,g2-standard-32,reserved_1y,NA,0.924464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790308 +GCP,australia-southeast1,g2-standard-32,reserved_3y,NA,0.660332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790322 +GCP,australia-southeast1,g2-standard-32,spot,NA,0.42496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790295 +GCP,australia-southeast1,g2-standard-4,on_demand,NA,0.071018,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785052 +GCP,australia-southeast1,g2-standard-4,reserved_1y,NA,0.115558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785081 +GCP,australia-southeast1,g2-standard-4,reserved_3y,NA,0.082541,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785095 +GCP,australia-southeast1,g2-standard-4,spot,NA,0.05312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785067 +GCP,australia-southeast1,g2-standard-48,on_demand,NA,0.852217,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791334 +GCP,australia-southeast1,g2-standard-48,reserved_1y,NA,1.386696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791362 +GCP,australia-southeast1,g2-standard-48,reserved_3y,NA,0.990497,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791375 +GCP,australia-southeast1,g2-standard-48,spot,NA,0.63744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791349 +GCP,australia-southeast1,g2-standard-8,on_demand,NA,0.142036,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786090 +GCP,australia-southeast1,g2-standard-8,reserved_1y,NA,0.231116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786118 +GCP,australia-southeast1,g2-standard-8,reserved_3y,NA,0.165083,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786132 +GCP,australia-southeast1,g2-standard-8,spot,NA,0.10624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786104 +GCP,australia-southeast1,g2-standard-96,on_demand,NA,1.704433,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792454 +GCP,australia-southeast1,g2-standard-96,reserved_1y,NA,2.773392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792482 +GCP,australia-southeast1,g2-standard-96,reserved_3y,NA,1.980995,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792496 +GCP,australia-southeast1,g2-standard-96,spot,NA,1.27488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792468 +GCP,australia-southeast1,n1-highcpu-16,on_demand,NA,0.804254,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691163 +GCP,australia-southeast1,n1-highcpu-16,spot,NA,0.288781,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691179 +GCP,australia-southeast1,n1-highcpu-32,on_demand,NA,1.608509,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691991 +GCP,australia-southeast1,n1-highcpu-32,spot,NA,0.577562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692036 +GCP,australia-southeast1,n1-highcpu-64,on_demand,NA,3.217018,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692888 +GCP,australia-southeast1,n1-highcpu-64,spot,NA,1.155123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692901 +GCP,australia-southeast1,n1-highcpu-96,on_demand,NA,4.825526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693725 +GCP,australia-southeast1,n1-highcpu-96,spot,NA,1.732685,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693739 +GCP,australia-southeast1,n1-highmem-16,on_demand,NA,1.34284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687605 +GCP,australia-southeast1,n1-highmem-16,spot,NA,0.488768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687619 +GCP,australia-southeast1,n1-highmem-32,on_demand,NA,2.68568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688480 +GCP,australia-southeast1,n1-highmem-32,spot,NA,0.977536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688494 +GCP,australia-southeast1,n1-highmem-4,on_demand,NA,0.33571,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685881 +GCP,australia-southeast1,n1-highmem-4,spot,NA,0.122192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685895 +GCP,australia-southeast1,n1-highmem-64,on_demand,NA,5.37136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689413 +GCP,australia-southeast1,n1-highmem-64,spot,NA,1.955072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689427 +GCP,australia-southeast1,n1-highmem-8,on_demand,NA,0.67142,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686691 +GCP,australia-southeast1,n1-highmem-8,spot,NA,0.244384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686707 +GCP,australia-southeast1,n1-highmem-96,on_demand,NA,8.05704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690304 +GCP,australia-southeast1,n1-highmem-96,spot,NA,2.932608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690318 +GCP,australia-southeast1,n1-standard-16,on_demand,NA,1.078356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681917 +GCP,australia-southeast1,n1-standard-16,spot,NA,0.39056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681931 +GCP,australia-southeast1,n1-standard-32,on_demand,NA,2.156712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682960 +GCP,australia-southeast1,n1-standard-32,spot,NA,0.78112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682975 +GCP,australia-southeast1,n1-standard-4,on_demand,NA,0.269589,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680177 +GCP,australia-southeast1,n1-standard-4,spot,NA,0.09764,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680191 +GCP,australia-southeast1,n1-standard-64,on_demand,NA,4.313424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683844 +GCP,australia-southeast1,n1-standard-64,spot,NA,1.56224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683857 +GCP,australia-southeast1,n1-standard-8,on_demand,NA,0.539178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681063 +GCP,australia-southeast1,n1-standard-8,spot,NA,0.19528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681077 +GCP,australia-southeast1,n1-standard-96,on_demand,NA,6.470136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684939 +GCP,australia-southeast1,n1-standard-96,spot,NA,2.34336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684952 +GCP,australia-southeast1,n2-highcpu-16,on_demand,NA,0.813872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711584 +GCP,australia-southeast1,n2-highcpu-16,reserved_1y,NA,0.51296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711611 +GCP,australia-southeast1,n2-highcpu-16,reserved_3y,NA,0.3664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711625 +GCP,australia-southeast1,n2-highcpu-16,spot,NA,0.236144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711597 +GCP,australia-southeast1,n2-highcpu-32,on_demand,NA,1.627744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712693 +GCP,australia-southeast1,n2-highcpu-32,reserved_1y,NA,1.02592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712720 +GCP,australia-southeast1,n2-highcpu-32,reserved_3y,NA,0.7328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712734 +GCP,australia-southeast1,n2-highcpu-32,spot,NA,0.472288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712706 +GCP,australia-southeast1,n2-highcpu-48,on_demand,NA,2.441616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713812 +GCP,australia-southeast1,n2-highcpu-48,reserved_1y,NA,1.53888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713840 +GCP,australia-southeast1,n2-highcpu-48,reserved_3y,NA,1.0992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713854 +GCP,australia-southeast1,n2-highcpu-48,spot,NA,0.708432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713826 +GCP,australia-southeast1,n2-highcpu-64,on_demand,NA,3.255488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714905 +GCP,australia-southeast1,n2-highcpu-64,reserved_1y,NA,2.05184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714940 +GCP,australia-southeast1,n2-highcpu-64,reserved_3y,NA,1.4656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714954 +GCP,australia-southeast1,n2-highcpu-64,spot,NA,0.944576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714927 +GCP,australia-southeast1,n2-highcpu-80,on_demand,NA,4.06936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716017 +GCP,australia-southeast1,n2-highcpu-80,reserved_1y,NA,2.5648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716047 +GCP,australia-southeast1,n2-highcpu-80,reserved_3y,NA,1.832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716062 +GCP,australia-southeast1,n2-highcpu-80,spot,NA,1.18072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716032 +GCP,australia-southeast1,n2-highmem-16,on_demand,NA,1.487104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705974 +GCP,australia-southeast1,n2-highmem-16,reserved_1y,NA,0.936992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706004 +GCP,australia-southeast1,n2-highmem-16,reserved_3y,NA,0.669248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706018 +GCP,australia-southeast1,n2-highmem-16,spot,NA,0.430912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705989 +GCP,australia-southeast1,n2-highmem-2,on_demand,NA,0.185888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702616 +GCP,australia-southeast1,n2-highmem-2,reserved_1y,NA,0.117124,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702645 +GCP,australia-southeast1,n2-highmem-2,reserved_3y,NA,0.083656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702659 +GCP,australia-southeast1,n2-highmem-2,spot,NA,0.053864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702631 +GCP,australia-southeast1,n2-highmem-32,on_demand,NA,2.974208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707094 +GCP,australia-southeast1,n2-highmem-32,reserved_1y,NA,1.873984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707122 +GCP,australia-southeast1,n2-highmem-32,reserved_3y,NA,1.338496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707136 +GCP,australia-southeast1,n2-highmem-32,spot,NA,0.861824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707108 +GCP,australia-southeast1,n2-highmem-4,on_demand,NA,0.371776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703721 +GCP,australia-southeast1,n2-highmem-4,reserved_1y,NA,0.234248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703750 +GCP,australia-southeast1,n2-highmem-4,reserved_3y,NA,0.167312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703764 +GCP,australia-southeast1,n2-highmem-4,spot,NA,0.107728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703735 +GCP,australia-southeast1,n2-highmem-48,on_demand,NA,4.461312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708227 +GCP,australia-southeast1,n2-highmem-48,reserved_1y,NA,2.810976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708291 +GCP,australia-southeast1,n2-highmem-48,reserved_3y,NA,2.007744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708306 +GCP,australia-southeast1,n2-highmem-48,spot,NA,1.292736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708275 +GCP,australia-southeast1,n2-highmem-64,on_demand,NA,5.948416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709361 +GCP,australia-southeast1,n2-highmem-64,reserved_1y,NA,3.747968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709389 +GCP,australia-southeast1,n2-highmem-64,reserved_3y,NA,2.676992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709403 +GCP,australia-southeast1,n2-highmem-64,spot,NA,1.723648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709375 +GCP,australia-southeast1,n2-highmem-8,on_demand,NA,0.743552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704856 +GCP,australia-southeast1,n2-highmem-8,reserved_1y,NA,0.468496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704883 +GCP,australia-southeast1,n2-highmem-8,reserved_3y,NA,0.334624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704897 +GCP,australia-southeast1,n2-highmem-8,spot,NA,0.215456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704870 +GCP,australia-southeast1,n2-highmem-80,on_demand,NA,7.43552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710453 +GCP,australia-southeast1,n2-highmem-80,reserved_1y,NA,4.68496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710480 +GCP,australia-southeast1,n2-highmem-80,reserved_3y,NA,3.34624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710494 +GCP,australia-southeast1,n2-highmem-80,spot,NA,2.15456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710467 +GCP,australia-southeast1,n2-standard-16,on_demand,NA,1.1024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697039 +GCP,australia-southeast1,n2-standard-16,reserved_1y,NA,0.694688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697066 +GCP,australia-southeast1,n2-standard-16,reserved_3y,NA,0.496192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697080 +GCP,australia-southeast1,n2-standard-16,spot,NA,0.319616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697053 +GCP,australia-southeast1,n2-standard-32,on_demand,NA,2.2048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698159 +GCP,australia-southeast1,n2-standard-32,reserved_1y,NA,1.389376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698188 +GCP,australia-southeast1,n2-standard-32,reserved_3y,NA,0.992384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698202 +GCP,australia-southeast1,n2-standard-32,spot,NA,0.639232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698174 +GCP,australia-southeast1,n2-standard-4,on_demand,NA,0.2756,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694766 +GCP,australia-southeast1,n2-standard-4,reserved_1y,NA,0.173672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694794 +GCP,australia-southeast1,n2-standard-4,reserved_3y,NA,0.124048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694809 +GCP,australia-southeast1,n2-standard-4,spot,NA,0.079904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694781 +GCP,australia-southeast1,n2-standard-48,on_demand,NA,3.3072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699294 +GCP,australia-southeast1,n2-standard-48,reserved_1y,NA,2.084064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699323 +GCP,australia-southeast1,n2-standard-48,reserved_3y,NA,1.488576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699337 +GCP,australia-southeast1,n2-standard-48,spot,NA,0.958848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699308 +GCP,australia-southeast1,n2-standard-64,on_demand,NA,4.4096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700392 +GCP,australia-southeast1,n2-standard-64,reserved_1y,NA,2.778752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700421 +GCP,australia-southeast1,n2-standard-64,reserved_3y,NA,1.984768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700435 +GCP,australia-southeast1,n2-standard-64,spot,NA,1.278464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700406 +GCP,australia-southeast1,n2-standard-8,on_demand,NA,0.5512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695925 +GCP,australia-southeast1,n2-standard-8,reserved_1y,NA,0.347344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695953 +GCP,australia-southeast1,n2-standard-8,reserved_3y,NA,0.248096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695967 +GCP,australia-southeast1,n2-standard-8,spot,NA,0.159808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695939 +GCP,australia-southeast1,n2-standard-80,on_demand,NA,5.512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701519 +GCP,australia-southeast1,n2-standard-80,reserved_1y,NA,3.47344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701547 +GCP,australia-southeast1,n2-standard-80,reserved_3y,NA,2.48096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701561 +GCP,australia-southeast1,n2-standard-80,spot,NA,1.59808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701533 +GCP,australia-southeast1,n2d-highcpu-128,on_demand,NA,5.66464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752928 +GCP,australia-southeast1,n2d-highcpu-128,reserved_1y,NA,3.570176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752955 +GCP,australia-southeast1,n2d-highcpu-128,reserved_3y,NA,2.550144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752969 +GCP,australia-southeast1,n2d-highcpu-128,spot,NA,1.38432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752942 +GCP,australia-southeast1,n2d-highcpu-16,on_demand,NA,0.70808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746622 +GCP,australia-southeast1,n2d-highcpu-16,reserved_1y,NA,0.446272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746650 +GCP,australia-southeast1,n2d-highcpu-16,reserved_3y,NA,0.318768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746664 +GCP,australia-southeast1,n2d-highcpu-16,spot,NA,0.17304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746636 +GCP,australia-southeast1,n2d-highcpu-224,on_demand,NA,9.91312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753951 +GCP,australia-southeast1,n2d-highcpu-224,reserved_1y,NA,6.247808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753979 +GCP,australia-southeast1,n2d-highcpu-224,reserved_3y,NA,4.462752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753993 +GCP,australia-southeast1,n2d-highcpu-224,spot,NA,2.42256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753965 +GCP,australia-southeast1,n2d-highcpu-32,on_demand,NA,1.41616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747675 +GCP,australia-southeast1,n2d-highcpu-32,reserved_1y,NA,0.892544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747703 +GCP,australia-southeast1,n2d-highcpu-32,reserved_3y,NA,0.637536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747717 +GCP,australia-southeast1,n2d-highcpu-32,spot,NA,0.34608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747689 +GCP,australia-southeast1,n2d-highcpu-48,on_demand,NA,2.12424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748740 +GCP,australia-southeast1,n2d-highcpu-48,reserved_1y,NA,1.338816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748768 +GCP,australia-southeast1,n2d-highcpu-48,reserved_3y,NA,0.956304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748782 +GCP,australia-southeast1,n2d-highcpu-48,spot,NA,0.51912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748754 +GCP,australia-southeast1,n2d-highcpu-64,on_demand,NA,2.83232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749784 +GCP,australia-southeast1,n2d-highcpu-64,reserved_1y,NA,1.785088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749812 +GCP,australia-southeast1,n2d-highcpu-64,reserved_3y,NA,1.275072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749826 +GCP,australia-southeast1,n2d-highcpu-64,spot,NA,0.69216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749798 +GCP,australia-southeast1,n2d-highcpu-80,on_demand,NA,3.5404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750831 +GCP,australia-southeast1,n2d-highcpu-80,reserved_1y,NA,2.23136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750860 +GCP,australia-southeast1,n2d-highcpu-80,reserved_3y,NA,1.59384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750874 +GCP,australia-southeast1,n2d-highcpu-80,spot,NA,0.8652,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750846 +GCP,australia-southeast1,n2d-highcpu-96,on_demand,NA,4.24848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751895 +GCP,australia-southeast1,n2d-highcpu-96,reserved_1y,NA,2.677632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751923 +GCP,australia-southeast1,n2d-highcpu-96,reserved_3y,NA,1.912608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751937 +GCP,australia-southeast1,n2d-highcpu-96,spot,NA,1.03824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751908 +GCP,australia-southeast1,n2d-highmem-16,on_demand,NA,1.29384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740355 +GCP,australia-southeast1,n2d-highmem-16,reserved_1y,NA,0.8152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740383 +GCP,australia-southeast1,n2d-highmem-16,reserved_3y,NA,0.582192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740398 +GCP,australia-southeast1,n2d-highmem-16,spot,NA,0.31584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740369 +GCP,australia-southeast1,n2d-highmem-2,on_demand,NA,0.16173,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737133 +GCP,australia-southeast1,n2d-highmem-2,reserved_1y,NA,0.1019,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737162 +GCP,australia-southeast1,n2d-highmem-2,reserved_3y,NA,0.072774,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737177 +GCP,australia-southeast1,n2d-highmem-2,spot,NA,0.03948,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737146 +GCP,australia-southeast1,n2d-highmem-32,on_demand,NA,2.58768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741367 +GCP,australia-southeast1,n2d-highmem-32,reserved_1y,NA,1.6304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741395 +GCP,australia-southeast1,n2d-highmem-32,reserved_3y,NA,1.164384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741410 +GCP,australia-southeast1,n2d-highmem-32,spot,NA,0.63168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741381 +GCP,australia-southeast1,n2d-highmem-4,on_demand,NA,0.32346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738207 +GCP,australia-southeast1,n2d-highmem-4,reserved_1y,NA,0.2038,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738236 +GCP,australia-southeast1,n2d-highmem-4,reserved_3y,NA,0.145548,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738250 +GCP,australia-southeast1,n2d-highmem-4,spot,NA,0.07896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738221 +GCP,australia-southeast1,n2d-highmem-48,on_demand,NA,3.88152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742443 +GCP,australia-southeast1,n2d-highmem-48,reserved_1y,NA,2.4456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742470 +GCP,australia-southeast1,n2d-highmem-48,reserved_3y,NA,1.746576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742483 +GCP,australia-southeast1,n2d-highmem-48,spot,NA,0.94752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742457 +GCP,australia-southeast1,n2d-highmem-64,on_demand,NA,5.17536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743495 +GCP,australia-southeast1,n2d-highmem-64,reserved_1y,NA,3.2608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743524 +GCP,australia-southeast1,n2d-highmem-64,reserved_3y,NA,2.328768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743539 +GCP,australia-southeast1,n2d-highmem-64,spot,NA,1.26336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743510 +GCP,australia-southeast1,n2d-highmem-8,on_demand,NA,0.64692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739285 +GCP,australia-southeast1,n2d-highmem-8,reserved_1y,NA,0.4076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739314 +GCP,australia-southeast1,n2d-highmem-8,reserved_3y,NA,0.291096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739328 +GCP,australia-southeast1,n2d-highmem-8,spot,NA,0.15792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739299 +GCP,australia-southeast1,n2d-highmem-80,on_demand,NA,6.4692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744576 +GCP,australia-southeast1,n2d-highmem-80,reserved_1y,NA,4.076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744604 +GCP,australia-southeast1,n2d-highmem-80,reserved_3y,NA,2.91096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744618 +GCP,australia-southeast1,n2d-highmem-80,spot,NA,1.5792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744590 +GCP,australia-southeast1,n2d-highmem-96,on_demand,NA,7.76304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745602 +GCP,australia-southeast1,n2d-highmem-96,reserved_1y,NA,4.8912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745629 +GCP,australia-southeast1,n2d-highmem-96,reserved_3y,NA,3.493152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745643 +GCP,australia-southeast1,n2d-highmem-96,spot,NA,1.89504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745615 +GCP,australia-southeast1,n2d-standard-128,on_demand,NA,7.67296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735049 +GCP,australia-southeast1,n2d-standard-128,reserved_1y,NA,4.835072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735077 +GCP,australia-southeast1,n2d-standard-128,reserved_3y,NA,3.453312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735091 +GCP,australia-southeast1,n2d-standard-128,spot,NA,1.87392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735063 +GCP,australia-southeast1,n2d-standard-16,on_demand,NA,0.95912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728724 +GCP,australia-southeast1,n2d-standard-16,reserved_1y,NA,0.604384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728753 +GCP,australia-southeast1,n2d-standard-16,reserved_3y,NA,0.431664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728767 +GCP,australia-southeast1,n2d-standard-16,spot,NA,0.23424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728739 +GCP,australia-southeast1,n2d-standard-224,on_demand,NA,13.42768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736088 +GCP,australia-southeast1,n2d-standard-224,reserved_1y,NA,8.461376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736114 +GCP,australia-southeast1,n2d-standard-224,reserved_3y,NA,6.043296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736129 +GCP,australia-southeast1,n2d-standard-224,spot,NA,3.27936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736101 +GCP,australia-southeast1,n2d-standard-32,on_demand,NA,1.91824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729757 +GCP,australia-southeast1,n2d-standard-32,reserved_1y,NA,1.208768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729785 +GCP,australia-southeast1,n2d-standard-32,reserved_3y,NA,0.863328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729799 +GCP,australia-southeast1,n2d-standard-32,spot,NA,0.46848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729771 +GCP,australia-southeast1,n2d-standard-4,on_demand,NA,0.23978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726603 +GCP,australia-southeast1,n2d-standard-4,reserved_1y,NA,0.151096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726631 +GCP,australia-southeast1,n2d-standard-4,reserved_3y,NA,0.107916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726646 +GCP,australia-southeast1,n2d-standard-4,spot,NA,0.05856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726617 +GCP,australia-southeast1,n2d-standard-48,on_demand,NA,2.87736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730784 +GCP,australia-southeast1,n2d-standard-48,reserved_1y,NA,1.813152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730813 +GCP,australia-southeast1,n2d-standard-48,reserved_3y,NA,1.294992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730827 +GCP,australia-southeast1,n2d-standard-48,spot,NA,0.70272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730799 +GCP,australia-southeast1,n2d-standard-64,on_demand,NA,3.83648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731899 +GCP,australia-southeast1,n2d-standard-64,reserved_1y,NA,2.417536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731926 +GCP,australia-southeast1,n2d-standard-64,reserved_3y,NA,1.726656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731939 +GCP,australia-southeast1,n2d-standard-64,spot,NA,0.93696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731912 +GCP,australia-southeast1,n2d-standard-8,on_demand,NA,0.47956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727666 +GCP,australia-southeast1,n2d-standard-8,reserved_1y,NA,0.302192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727695 +GCP,australia-southeast1,n2d-standard-8,reserved_3y,NA,0.215832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727709 +GCP,australia-southeast1,n2d-standard-8,spot,NA,0.11712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727680 +GCP,australia-southeast1,n2d-standard-80,on_demand,NA,4.7956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732938 +GCP,australia-southeast1,n2d-standard-80,reserved_1y,NA,3.02192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732967 +GCP,australia-southeast1,n2d-standard-80,reserved_3y,NA,2.15832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732980 +GCP,australia-southeast1,n2d-standard-80,spot,NA,1.1712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732952 +GCP,australia-southeast1,n2d-standard-96,on_demand,NA,5.75472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733989 +GCP,australia-southeast1,n2d-standard-96,reserved_1y,NA,3.626304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734018 +GCP,australia-southeast1,n2d-standard-96,reserved_3y,NA,2.589984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734032 +GCP,australia-southeast1,n2d-standard-96,spot,NA,1.40544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734004 +GCP,australia-southeast1,n4-standard-16,on_demand,NA,0.907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758117 +GCP,australia-southeast1,n4-standard-16,reserved_1y,NA,0.5714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758146 +GCP,australia-southeast1,n4-standard-16,reserved_3y,NA,0.420642,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758160 +GCP,australia-southeast1,n4-standard-16,spot,NA,0.118464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758131 +GCP,australia-southeast1,n4-standard-2,on_demand,NA,0.113375,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754998 +GCP,australia-southeast1,n4-standard-2,reserved_1y,NA,0.071425,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755026 +GCP,australia-southeast1,n4-standard-2,reserved_3y,NA,0.05258,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755041 +GCP,australia-southeast1,n4-standard-2,spot,NA,0.014808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755012 +GCP,australia-southeast1,n4-standard-32,on_demand,NA,1.814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759161 +GCP,australia-southeast1,n4-standard-32,reserved_1y,NA,1.1428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759189 +GCP,australia-southeast1,n4-standard-32,reserved_3y,NA,0.841284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759203 +GCP,australia-southeast1,n4-standard-32,spot,NA,0.236928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759175 +GCP,australia-southeast1,n4-standard-4,on_demand,NA,0.22675,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756050 +GCP,australia-southeast1,n4-standard-4,reserved_1y,NA,0.14285,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756079 +GCP,australia-southeast1,n4-standard-4,reserved_3y,NA,0.105161,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756093 +GCP,australia-southeast1,n4-standard-4,spot,NA,0.029616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756064 +GCP,australia-southeast1,n4-standard-8,on_demand,NA,0.4535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757080 +GCP,australia-southeast1,n4-standard-8,reserved_1y,NA,0.2857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757108 +GCP,australia-southeast1,n4-standard-8,reserved_3y,NA,0.210321,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757122 +GCP,australia-southeast1,n4-standard-8,spot,NA,0.059232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757094 +GCP,europe-west1,a2-highgpu-1g,on_demand,NA,0.813461,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770540 +GCP,europe-west1,a2-highgpu-1g,reserved_1y,NA,0.512454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770567 +GCP,europe-west1,a2-highgpu-1g,reserved_3y,NA,0.284735,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770580 +GCP,europe-west1,a2-highgpu-1g,spot,NA,0.221843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770553 +GCP,europe-west1,a2-highgpu-2g,on_demand,NA,1.626922,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771575 +GCP,europe-west1,a2-highgpu-2g,reserved_1y,NA,1.024907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771602 +GCP,europe-west1,a2-highgpu-2g,reserved_3y,NA,0.56947,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771615 +GCP,europe-west1,a2-highgpu-2g,spot,NA,0.443686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771588 +GCP,europe-west1,a2-highgpu-4g,on_demand,NA,3.253844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772715 +GCP,europe-west1,a2-highgpu-4g,reserved_1y,NA,2.049815,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772743 +GCP,europe-west1,a2-highgpu-4g,reserved_3y,NA,1.13894,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772756 +GCP,europe-west1,a2-highgpu-4g,spot,NA,0.887372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772729 +GCP,europe-west1,a2-highgpu-8g,on_demand,NA,6.507688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773826 +GCP,europe-west1,a2-highgpu-8g,reserved_1y,NA,4.09963,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773853 +GCP,europe-west1,a2-highgpu-8g,reserved_3y,NA,2.277879,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773867 +GCP,europe-west1,a2-highgpu-8g,spot,NA,1.774745,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773840 +GCP,europe-west1,a2-megagpu-16g,on_demand,NA,9.677168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774957 +GCP,europe-west1,a2-megagpu-16g,reserved_1y,NA,6.096178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774985 +GCP,europe-west1,a2-megagpu-16g,reserved_3y,NA,3.387382,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774998 +GCP,europe-west1,a2-megagpu-16g,spot,NA,2.639093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774971 +GCP,europe-west1,a2-ultragpu-1g,on_demand,NA,1.209646,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776051 +GCP,europe-west1,a2-ultragpu-1g,reserved_1y,NA,0.762022,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776079 +GCP,europe-west1,a2-ultragpu-1g,reserved_3y,NA,0.423423,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776093 +GCP,europe-west1,a2-ultragpu-1g,spot,NA,0.329887,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776065 +GCP,europe-west1,a2-ultragpu-2g,on_demand,NA,2.419292,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777147 +GCP,europe-west1,a2-ultragpu-2g,reserved_1y,NA,1.524044,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777175 +GCP,europe-west1,a2-ultragpu-2g,reserved_3y,NA,0.846846,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777190 +GCP,europe-west1,a2-ultragpu-2g,spot,NA,0.659773,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777161 +GCP,europe-west1,a2-ultragpu-4g,on_demand,NA,4.838584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778210 +GCP,europe-west1,a2-ultragpu-4g,reserved_1y,NA,3.048089,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778238 +GCP,europe-west1,a2-ultragpu-4g,reserved_3y,NA,1.693691,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778252 +GCP,europe-west1,a2-ultragpu-4g,spot,NA,1.319546,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778225 +GCP,europe-west1,a2-ultragpu-8g,on_demand,NA,9.677168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779262 +GCP,europe-west1,a2-ultragpu-8g,reserved_1y,NA,6.096178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779290 +GCP,europe-west1,a2-ultragpu-8g,reserved_3y,NA,3.387382,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779304 +GCP,europe-west1,a2-ultragpu-8g,spot,NA,2.639093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779276 +GCP,europe-west1,a3-highgpu-1g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780365 +GCP,europe-west1,a3-highgpu-1g,reserved_1y,NA,0.905511,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780394 +GCP,europe-west1,a3-highgpu-1g,reserved_3y,NA,0.573852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780409 +GCP,europe-west1,a3-highgpu-1g,spot,NA,0.23426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780380 +GCP,europe-west1,a3-highgpu-2g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781420 +GCP,europe-west1,a3-highgpu-2g,reserved_1y,NA,0.905511,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781448 +GCP,europe-west1,a3-highgpu-2g,reserved_3y,NA,0.573852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781463 +GCP,europe-west1,a3-highgpu-2g,spot,NA,0.23426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781434 +GCP,europe-west1,a3-highgpu-4g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782507 +GCP,europe-west1,a3-highgpu-4g,reserved_1y,NA,0.905511,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782535 +GCP,europe-west1,a3-highgpu-4g,reserved_3y,NA,0.573852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782549 +GCP,europe-west1,a3-highgpu-4g,spot,NA,0.23426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782521 +GCP,europe-west1,a3-highgpu-8g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783588 +GCP,europe-west1,a3-highgpu-8g,reserved_1y,NA,0.905511,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783615 +GCP,europe-west1,a3-highgpu-8g,reserved_3y,NA,0.573852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783629 +GCP,europe-west1,a3-highgpu-8g,spot,NA,0.23426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783602 +GCP,europe-west1,c2-standard-16,on_demand,NA,0.799792,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721316 +GCP,europe-west1,c2-standard-16,reserved_1y,NA,0.503856,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721361 +GCP,europe-west1,c2-standard-16,reserved_3y,NA,0.359872,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721383 +GCP,europe-west1,c2-standard-16,spot,NA,0.089184,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721338 +GCP,europe-west1,c2-standard-30,on_demand,NA,1.49961,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722994 +GCP,europe-west1,c2-standard-30,reserved_1y,NA,0.94473,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723039 +GCP,europe-west1,c2-standard-30,reserved_3y,NA,0.67476,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723062 +GCP,europe-west1,c2-standard-30,spot,NA,0.16722,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723016 +GCP,europe-west1,c2-standard-4,on_demand,NA,0.199948,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717709 +GCP,europe-west1,c2-standard-4,reserved_1y,NA,0.125964,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717756 +GCP,europe-west1,c2-standard-4,reserved_3y,NA,0.089968,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717779 +GCP,europe-west1,c2-standard-4,spot,NA,0.022296,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717733 +GCP,europe-west1,c2-standard-60,on_demand,NA,2.99922,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724730 +GCP,europe-west1,c2-standard-60,reserved_1y,NA,1.88946,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724776 +GCP,europe-west1,c2-standard-60,reserved_3y,NA,1.34952,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724799 +GCP,europe-west1,c2-standard-60,spot,NA,0.33444,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724753 +GCP,europe-west1,c2-standard-8,on_demand,NA,0.399896,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719573 +GCP,europe-west1,c2-standard-8,reserved_1y,NA,0.251928,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719619 +GCP,europe-west1,c2-standard-8,reserved_3y,NA,0.179936,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719642 +GCP,europe-west1,c2-standard-8,spot,NA,0.044592,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719596 +GCP,europe-west1,c3-highmem-22,on_demand,NA,0.847096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800520 +GCP,europe-west1,c3-highmem-22,reserved_1y,NA,1.009616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800547 +GCP,europe-west1,c3-highmem-22,reserved_3y,NA,0.72113,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800561 +GCP,europe-west1,c3-highmem-22,spot,NA,0.48356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800533 +GCP,europe-west1,c3-highmem-4,on_demand,NA,0.154017,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798429 +GCP,europe-west1,c3-highmem-4,reserved_1y,NA,0.183567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798458 +GCP,europe-west1,c3-highmem-4,reserved_3y,NA,0.131115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798473 +GCP,europe-west1,c3-highmem-4,spot,NA,0.08792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798443 +GCP,europe-west1,c3-highmem-44,on_demand,NA,1.694191,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801531 +GCP,europe-west1,c3-highmem-44,reserved_1y,NA,2.019233,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801558 +GCP,europe-west1,c3-highmem-44,reserved_3y,NA,1.442261,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801571 +GCP,europe-west1,c3-highmem-44,spot,NA,0.96712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801545 +GCP,europe-west1,c3-highmem-8,on_demand,NA,0.308035,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799488 +GCP,europe-west1,c3-highmem-8,reserved_1y,NA,0.367133,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799516 +GCP,europe-west1,c3-highmem-8,reserved_3y,NA,0.262229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799529 +GCP,europe-west1,c3-highmem-8,spot,NA,0.17584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799502 +GCP,europe-west1,c3-highmem-88,on_demand,NA,3.388383,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802552 +GCP,europe-west1,c3-highmem-88,reserved_1y,NA,4.038465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802578 +GCP,europe-west1,c3-highmem-88,reserved_3y,NA,2.884521,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802591 +GCP,europe-west1,c3-highmem-88,spot,NA,1.93424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802565 +GCP,europe-west1,c3-standard-22 (-lssd),on_demand,NA,0.465516,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795212 +GCP,europe-west1,c3-standard-22 (-lssd),reserved_1y,NA,0.769215,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795240 +GCP,europe-west1,c3-standard-22 (-lssd),reserved_3y,NA,0.549429,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795254 +GCP,europe-west1,c3-standard-22 (-lssd),spot,NA,0.3674,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795226 +GCP,europe-west1,c3-standard-4 (-lssd),on_demand,NA,0.084639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793099 +GCP,europe-west1,c3-standard-4 (-lssd),reserved_1y,NA,0.139857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793128 +GCP,europe-west1,c3-standard-4 (-lssd),reserved_3y,NA,0.099896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793142 +GCP,europe-west1,c3-standard-4 (-lssd),spot,NA,0.0668,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793113 +GCP,europe-west1,c3-standard-44 (-lssd),on_demand,NA,0.931033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796323 +GCP,europe-west1,c3-standard-44 (-lssd),reserved_1y,NA,1.538431,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796352 +GCP,europe-west1,c3-standard-44 (-lssd),reserved_3y,NA,1.098858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796366 +GCP,europe-west1,c3-standard-44 (-lssd),spot,NA,0.7348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796339 +GCP,europe-west1,c3-standard-8 (-lssd),on_demand,NA,0.169279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794162 +GCP,europe-west1,c3-standard-8 (-lssd),reserved_1y,NA,0.279715,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794191 +GCP,europe-west1,c3-standard-8 (-lssd),reserved_3y,NA,0.199792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794205 +GCP,europe-west1,c3-standard-8 (-lssd),spot,NA,0.1336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794177 +GCP,europe-west1,c3-standard-88 (-lssd),on_demand,NA,1.862065,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797377 +GCP,europe-west1,c3-standard-88 (-lssd),reserved_1y,NA,3.076861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797405 +GCP,europe-west1,c3-standard-88 (-lssd),reserved_3y,NA,2.197716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797419 +GCP,europe-west1,c3-standard-88 (-lssd),spot,NA,1.4696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797391 +GCP,europe-west1,c3d-highmem-16 (-lssd),on_demand,NA,0.610068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814154 +GCP,europe-west1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.679617,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814181 +GCP,europe-west1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.485382,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814195 +GCP,europe-west1,c3d-highmem-16 (-lssd),spot,NA,0.259136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814168 +GCP,europe-west1,c3d-highmem-180 (-lssd),on_demand,NA,6.86326,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818496 +GCP,europe-west1,c3d-highmem-180 (-lssd),reserved_1y,NA,7.645686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818524 +GCP,europe-west1,c3d-highmem-180 (-lssd),reserved_3y,NA,5.460552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818538 +GCP,europe-west1,c3d-highmem-180 (-lssd),spot,NA,2.91528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818510 +GCP,europe-west1,c3d-highmem-30 (-lssd),on_demand,NA,1.143877,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815372 +GCP,europe-west1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.274281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815399 +GCP,europe-west1,c3d-highmem-30 (-lssd),reserved_3y,NA,0.910092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815413 +GCP,europe-west1,c3d-highmem-30 (-lssd),spot,NA,0.48588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815386 +GCP,europe-west1,c3d-highmem-360 (-lssd),on_demand,NA,13.72652,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819532 +GCP,europe-west1,c3d-highmem-360 (-lssd),reserved_1y,NA,15.291372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819558 +GCP,europe-west1,c3d-highmem-360 (-lssd),reserved_3y,NA,10.921105,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819571 +GCP,europe-west1,c3d-highmem-360 (-lssd),spot,NA,5.83056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819545 +GCP,europe-west1,c3d-highmem-4 (-lssd),on_demand,NA,0.152517,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812056 +GCP,europe-west1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.169904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812086 +GCP,europe-west1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.121346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812100 +GCP,europe-west1,c3d-highmem-4 (-lssd),spot,NA,0.064784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812072 +GCP,europe-west1,c3d-highmem-60 (-lssd),on_demand,NA,2.287753,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816429 +GCP,europe-west1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.548562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816457 +GCP,europe-west1,c3d-highmem-60 (-lssd),reserved_3y,NA,1.820184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816471 +GCP,europe-west1,c3d-highmem-60 (-lssd),spot,NA,0.97176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816443 +GCP,europe-west1,c3d-highmem-8 (-lssd),on_demand,NA,0.305034,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813101 +GCP,europe-west1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.339808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813130 +GCP,europe-west1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.242691,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813144 +GCP,europe-west1,c3d-highmem-8 (-lssd),spot,NA,0.129568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813116 +GCP,europe-west1,c3d-highmem-90 (-lssd),on_demand,NA,3.43163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817465 +GCP,europe-west1,c3d-highmem-90 (-lssd),reserved_1y,NA,3.822843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817493 +GCP,europe-west1,c3d-highmem-90 (-lssd),reserved_3y,NA,2.730276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817507 +GCP,europe-west1,c3d-highmem-90 (-lssd),spot,NA,1.45764,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817479 +GCP,europe-west1,c3d-standard-16 (-lssd),on_demand,NA,0.331075,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805680 +GCP,europe-west1,c3d-standard-16 (-lssd),reserved_1y,NA,0.503863,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805711 +GCP,europe-west1,c3d-standard-16 (-lssd),reserved_3y,NA,0.359875,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805725 +GCP,europe-west1,c3d-standard-16 (-lssd),spot,NA,0.192128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805694 +GCP,europe-west1,c3d-standard-180 (-lssd),on_demand,NA,3.724596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809937 +GCP,europe-west1,c3d-standard-180 (-lssd),reserved_1y,NA,5.668463,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809966 +GCP,europe-west1,c3d-standard-180 (-lssd),reserved_3y,NA,4.04859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809980 +GCP,europe-west1,c3d-standard-180 (-lssd),spot,NA,2.16144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809951 +GCP,europe-west1,c3d-standard-30 (-lssd),on_demand,NA,0.620766,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806747 +GCP,europe-west1,c3d-standard-30 (-lssd),reserved_1y,NA,0.944744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806775 +GCP,europe-west1,c3d-standard-30 (-lssd),reserved_3y,NA,0.674765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806789 +GCP,europe-west1,c3d-standard-30 (-lssd),spot,NA,0.36024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806761 +GCP,europe-west1,c3d-standard-360 (-lssd),on_demand,NA,7.449193,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810996 +GCP,europe-west1,c3d-standard-360 (-lssd),reserved_1y,NA,11.336926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811023 +GCP,europe-west1,c3d-standard-360 (-lssd),reserved_3y,NA,8.09718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811037 +GCP,europe-west1,c3d-standard-360 (-lssd),spot,NA,4.32288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811009 +GCP,europe-west1,c3d-standard-4 (-lssd),on_demand,NA,0.082769,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803611 +GCP,europe-west1,c3d-standard-4 (-lssd),reserved_1y,NA,0.125966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803638 +GCP,europe-west1,c3d-standard-4 (-lssd),reserved_3y,NA,0.089969,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803651 +GCP,europe-west1,c3d-standard-4 (-lssd),spot,NA,0.048032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803624 +GCP,europe-west1,c3d-standard-60 (-lssd),on_demand,NA,1.241532,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807807 +GCP,europe-west1,c3d-standard-60 (-lssd),reserved_1y,NA,1.889488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807834 +GCP,europe-west1,c3d-standard-60 (-lssd),reserved_3y,NA,1.34953,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807848 +GCP,europe-west1,c3d-standard-60 (-lssd),spot,NA,0.72048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807821 +GCP,europe-west1,c3d-standard-8 (-lssd),on_demand,NA,0.165538,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804665 +GCP,europe-west1,c3d-standard-8 (-lssd),reserved_1y,NA,0.251932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804692 +GCP,europe-west1,c3d-standard-8 (-lssd),reserved_3y,NA,0.179937,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804706 +GCP,europe-west1,c3d-standard-8 (-lssd),spot,NA,0.096064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804679 +GCP,europe-west1,c3d-standard-90 (-lssd),on_demand,NA,1.862298,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808881 +GCP,europe-west1,c3d-standard-90 (-lssd),reserved_1y,NA,2.834232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808909 +GCP,europe-west1,c3d-standard-90 (-lssd),reserved_3y,NA,2.024295,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808923 +GCP,europe-west1,c3d-standard-90 (-lssd),spot,NA,1.08072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808895 +GCP,europe-west1,c4-standard-16,on_demand,NA,0.870618,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840920 +GCP,europe-west1,c4-standard-16,reserved_1y,NA,0.548502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840950 +GCP,europe-west1,c4-standard-16,reserved_3y,NA,0.39178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840963 +GCP,europe-west1,c4-standard-16,spot,NA,0.3482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840935 +GCP,europe-west1,c4-standard-2,on_demand,NA,0.106659,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837584 +GCP,europe-west1,c4-standard-2,reserved_1y,NA,0.067197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837612 +GCP,europe-west1,c4-standard-2,reserved_3y,NA,0.047997,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837626 +GCP,europe-west1,c4-standard-2,spot,NA,0.042658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837598 +GCP,europe-west1,c4-standard-24,on_demand,NA,1.305927,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841950 +GCP,europe-west1,c4-standard-24,reserved_1y,NA,0.822753,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841977 +GCP,europe-west1,c4-standard-24,reserved_3y,NA,0.58767,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841990 +GCP,europe-west1,c4-standard-24,spot,NA,0.5223,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841963 +GCP,europe-west1,c4-standard-32,on_demand,NA,1.741236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843155 +GCP,europe-west1,c4-standard-32,reserved_1y,NA,1.097004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843185 +GCP,europe-west1,c4-standard-32,reserved_3y,NA,0.78356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843200 +GCP,europe-west1,c4-standard-32,spot,NA,0.6964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843170 +GCP,europe-west1,c4-standard-4,on_demand,NA,0.217654,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838688 +GCP,europe-west1,c4-standard-4,reserved_1y,NA,0.137125,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838716 +GCP,europe-west1,c4-standard-4,reserved_3y,NA,0.097945,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838730 +GCP,europe-west1,c4-standard-4,spot,NA,0.08705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838702 +GCP,europe-west1,c4-standard-8,on_demand,NA,0.435309,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839713 +GCP,europe-west1,c4-standard-8,reserved_1y,NA,0.274251,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839740 +GCP,europe-west1,c4-standard-8,reserved_3y,NA,0.19589,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839754 +GCP,europe-west1,c4-standard-8,spot,NA,0.1741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839727 +GCP,europe-west1,c4a-highmem-16 (-lssd),on_demand,NA,0.593008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831582 +GCP,europe-west1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.684444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831612 +GCP,europe-west1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.467395,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831625 +GCP,europe-west1,c4a-highmem-16 (-lssd),spot,NA,0.414816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831598 +GCP,europe-west1,c4a-highmem-32 (-lssd),on_demand,NA,1.186017,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832833 +GCP,europe-west1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.368887,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832861 +GCP,europe-west1,c4a-highmem-32 (-lssd),reserved_3y,NA,0.93479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832874 +GCP,europe-west1,c4a-highmem-32 (-lssd),spot,NA,0.829632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832847 +GCP,europe-west1,c4a-highmem-4 (-lssd),on_demand,NA,0.148252,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829156 +GCP,europe-west1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.171111,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829183 +GCP,europe-west1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.116849,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829196 +GCP,europe-west1,c4a-highmem-4 (-lssd),spot,NA,0.103704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829170 +GCP,europe-west1,c4a-highmem-48 (-lssd),on_demand,NA,1.779025,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834052 +GCP,europe-west1,c4a-highmem-48 (-lssd),reserved_1y,NA,2.053331,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834080 +GCP,europe-west1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.402186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834094 +GCP,europe-west1,c4a-highmem-48 (-lssd),spot,NA,1.244448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834066 +GCP,europe-west1,c4a-highmem-64 (-lssd),on_demand,NA,2.372034,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835233 +GCP,europe-west1,c4a-highmem-64 (-lssd),reserved_1y,NA,2.737775,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835259 +GCP,europe-west1,c4a-highmem-64 (-lssd),reserved_3y,NA,1.869581,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835272 +GCP,europe-west1,c4a-highmem-64 (-lssd),spot,NA,1.659264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835246 +GCP,europe-west1,c4a-highmem-72 (-lssd),on_demand,NA,2.668538,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836412 +GCP,europe-west1,c4a-highmem-72 (-lssd),reserved_1y,NA,3.079997,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836438 +GCP,europe-west1,c4a-highmem-72 (-lssd),reserved_3y,NA,2.103278,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836452 +GCP,europe-west1,c4a-highmem-72 (-lssd),spot,NA,1.866672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836425 +GCP,europe-west1,c4a-highmem-8 (-lssd),on_demand,NA,0.296504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830370 +GCP,europe-west1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.342222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830398 +GCP,europe-west1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.233698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830411 +GCP,europe-west1,c4a-highmem-8 (-lssd),spot,NA,0.207408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830384 +GCP,europe-west1,c4a-standard-16 (-lssd),on_demand,NA,0.568344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823052 +GCP,europe-west1,c4a-standard-16 (-lssd),reserved_1y,NA,0.521657,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823080 +GCP,europe-west1,c4a-standard-16 (-lssd),reserved_3y,NA,0.356052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823094 +GCP,europe-west1,c4a-standard-16 (-lssd),spot,NA,0.316128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823066 +GCP,europe-west1,c4a-standard-32 (-lssd),on_demand,NA,1.136688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824308 +GCP,europe-west1,c4a-standard-32 (-lssd),reserved_1y,NA,1.043314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824335 +GCP,europe-west1,c4a-standard-32 (-lssd),reserved_3y,NA,0.712104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824349 +GCP,europe-west1,c4a-standard-32 (-lssd),spot,NA,0.632256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824322 +GCP,europe-west1,c4a-standard-4 (-lssd),on_demand,NA,0.142086,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820590 +GCP,europe-west1,c4a-standard-4 (-lssd),reserved_1y,NA,0.130414,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820619 +GCP,europe-west1,c4a-standard-4 (-lssd),reserved_3y,NA,0.089013,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820633 +GCP,europe-west1,c4a-standard-4 (-lssd),spot,NA,0.079032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820605 +GCP,europe-west1,c4a-standard-48 (-lssd),on_demand,NA,1.705032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825527 +GCP,europe-west1,c4a-standard-48 (-lssd),reserved_1y,NA,1.564971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825555 +GCP,europe-west1,c4a-standard-48 (-lssd),reserved_3y,NA,1.068156,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825569 +GCP,europe-west1,c4a-standard-48 (-lssd),spot,NA,0.948384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825541 +GCP,europe-west1,c4a-standard-64 (-lssd),on_demand,NA,2.273375,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826747 +GCP,europe-west1,c4a-standard-64 (-lssd),reserved_1y,NA,2.086628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826775 +GCP,europe-west1,c4a-standard-64 (-lssd),reserved_3y,NA,1.424207,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826789 +GCP,europe-west1,c4a-standard-64 (-lssd),spot,NA,1.264512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826761 +GCP,europe-west1,c4a-standard-72 (-lssd),on_demand,NA,2.557547,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827967 +GCP,europe-west1,c4a-standard-72 (-lssd),reserved_1y,NA,2.347457,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827993 +GCP,europe-west1,c4a-standard-72 (-lssd),reserved_3y,NA,1.602233,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828007 +GCP,europe-west1,c4a-standard-72 (-lssd),spot,NA,1.422576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827980 +GCP,europe-west1,c4a-standard-8 (-lssd),on_demand,NA,0.284172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821830 +GCP,europe-west1,c4a-standard-8 (-lssd),reserved_1y,NA,0.260829,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821857 +GCP,europe-west1,c4a-standard-8 (-lssd),reserved_3y,NA,0.178026,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821871 +GCP,europe-west1,c4a-standard-8 (-lssd),spot,NA,0.158064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821843 +GCP,europe-west1,c4d-standard-16,on_demand,NA,0.814794,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848219 +GCP,europe-west1,c4d-standard-16,reserved_1y,NA,0.513322,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848247 +GCP,europe-west1,c4d-standard-16,reserved_3y,NA,0.366656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848261 +GCP,europe-west1,c4d-standard-16,spot,NA,0.324605,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848233 +GCP,europe-west1,c4d-standard-2,on_demand,NA,0.098962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844321 +GCP,europe-west1,c4d-standard-2,reserved_1y,NA,0.062347,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844350 +GCP,europe-west1,c4d-standard-2,reserved_3y,NA,0.044533,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844364 +GCP,europe-west1,c4d-standard-2,spot,NA,0.039426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844336 +GCP,europe-west1,c4d-standard-32,on_demand,NA,1.629587,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849502 +GCP,europe-west1,c4d-standard-32,reserved_1y,NA,1.026643,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849546 +GCP,europe-west1,c4d-standard-32,reserved_3y,NA,0.733312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849560 +GCP,europe-west1,c4d-standard-32,spot,NA,0.64921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849516 +GCP,europe-west1,c4d-standard-4,on_demand,NA,0.201774,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845616 +GCP,europe-west1,c4d-standard-4,reserved_1y,NA,0.127118,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845644 +GCP,europe-west1,c4d-standard-4,reserved_3y,NA,0.090798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845658 +GCP,europe-west1,c4d-standard-4,spot,NA,0.080385,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845630 +GCP,europe-west1,c4d-standard-8,on_demand,NA,0.407397,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846905 +GCP,europe-west1,c4d-standard-8,reserved_1y,NA,0.256661,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846941 +GCP,europe-west1,c4d-standard-8,reserved_3y,NA,0.183328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846955 +GCP,europe-west1,c4d-standard-8,spot,NA,0.162303,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846927 +GCP,europe-west1,e2_highcpu_16,on_demand,NA,0.435351,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764100 +GCP,europe-west1,e2_highcpu_16,reserved_1y,NA,0.274271,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764127 +GCP,europe-west1,e2_highcpu_16,reserved_3y,NA,0.195908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764142 +GCP,europe-west1,e2_highcpu_16,spot,NA,0.17416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764114 +GCP,europe-west1,e2_highcpu_32,on_demand,NA,0.870703,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765130 +GCP,europe-west1,e2_highcpu_32,reserved_1y,NA,0.548543,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765158 +GCP,europe-west1,e2_highcpu_32,reserved_3y,NA,0.391816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765172 +GCP,europe-west1,e2_highcpu_32,spot,NA,0.34832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765144 +GCP,europe-west1,e2_highmem_16,on_demand,NA,0.795553,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762994 +GCP,europe-west1,e2_highmem_16,reserved_1y,NA,0.501199,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763022 +GCP,europe-west1,e2_highmem_16,reserved_3y,NA,0.357999,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763036 +GCP,europe-west1,e2_highmem_16,spot,NA,0.31808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763008 +GCP,europe-west1,e2_highmem_2,on_demand,NA,0.099444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759804 +GCP,europe-west1,e2_highmem_2,reserved_1y,NA,0.06265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759832 +GCP,europe-west1,e2_highmem_2,reserved_3y,NA,0.04475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759846 +GCP,europe-west1,e2_highmem_2,spot,NA,0.03976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759818 +GCP,europe-west1,e2_highmem_4,on_demand,NA,0.198888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760919 +GCP,europe-west1,e2_highmem_4,reserved_1y,NA,0.1253,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760947 +GCP,europe-west1,e2_highmem_4,reserved_3y,NA,0.0895,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760961 +GCP,europe-west1,e2_highmem_4,spot,NA,0.07952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760933 +GCP,europe-west1,e2_highmem_8,on_demand,NA,0.397777,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761940 +GCP,europe-west1,e2_highmem_8,reserved_1y,NA,0.250599,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761968 +GCP,europe-west1,e2_highmem_8,reserved_3y,NA,0.178999,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761982 +GCP,europe-west1,e2_highmem_8,spot,NA,0.15904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761954 +GCP,europe-west1,e2_standard_16,on_demand,NA,0.589724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768423 +GCP,europe-west1,e2_standard_16,reserved_1y,NA,0.371526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768452 +GCP,europe-west1,e2_standard_16,reserved_3y,NA,0.265376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768466 +GCP,europe-west1,e2_standard_16,spot,NA,0.23584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768437 +GCP,europe-west1,e2_standard_32,on_demand,NA,1.179447,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769517 +GCP,europe-west1,e2_standard_32,reserved_1y,NA,0.743052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769543 +GCP,europe-west1,e2_standard_32,reserved_3y,NA,0.530751,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769558 +GCP,europe-west1,e2_standard_32,spot,NA,0.47168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769530 +GCP,europe-west1,e2_standard_4,on_demand,NA,0.147431,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766319 +GCP,europe-west1,e2_standard_4,reserved_1y,NA,0.092881,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766371 +GCP,europe-west1,e2_standard_4,reserved_3y,NA,0.066344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766387 +GCP,europe-west1,e2_standard_4,spot,NA,0.05896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766333 +GCP,europe-west1,e2_standard_8,on_demand,NA,0.294862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767398 +GCP,europe-west1,e2_standard_8,reserved_1y,NA,0.185763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767426 +GCP,europe-west1,e2_standard_8,reserved_3y,NA,0.132688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767440 +GCP,europe-west1,e2_standard_8,spot,NA,0.11792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767412 +GCP,europe-west1,g2-standard-12,on_demand,NA,0.484898,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786722 +GCP,europe-west1,g2-standard-12,reserved_1y,NA,0.305486,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786750 +GCP,europe-west1,g2-standard-12,reserved_3y,NA,0.218204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786764 +GCP,europe-west1,g2-standard-12,spot,NA,0.15888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786736 +GCP,europe-west1,g2-standard-16,on_demand,NA,0.646531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787775 +GCP,europe-west1,g2-standard-16,reserved_1y,NA,0.407314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787803 +GCP,europe-west1,g2-standard-16,reserved_3y,NA,0.290939,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787817 +GCP,europe-west1,g2-standard-16,spot,NA,0.21184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787789 +GCP,europe-west1,g2-standard-24,on_demand,NA,0.969796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788853 +GCP,europe-west1,g2-standard-24,reserved_1y,NA,0.610972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788881 +GCP,europe-west1,g2-standard-24,reserved_3y,NA,0.436408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788895 +GCP,europe-west1,g2-standard-24,spot,NA,0.31776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788867 +GCP,europe-west1,g2-standard-32,on_demand,NA,1.293062,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789887 +GCP,europe-west1,g2-standard-32,reserved_1y,NA,0.814629,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789914 +GCP,europe-west1,g2-standard-32,reserved_3y,NA,0.581878,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789928 +GCP,europe-west1,g2-standard-32,spot,NA,0.42368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789901 +GCP,europe-west1,g2-standard-4,on_demand,NA,0.161633,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784648 +GCP,europe-west1,g2-standard-4,reserved_1y,NA,0.101829,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784675 +GCP,europe-west1,g2-standard-4,reserved_3y,NA,0.072735,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784689 +GCP,europe-west1,g2-standard-4,spot,NA,0.05296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784661 +GCP,europe-west1,g2-standard-48,on_demand,NA,1.939592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790934 +GCP,europe-west1,g2-standard-48,reserved_1y,NA,1.221943,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790961 +GCP,europe-west1,g2-standard-48,reserved_3y,NA,0.872816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790981 +GCP,europe-west1,g2-standard-48,spot,NA,0.63552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790948 +GCP,europe-west1,g2-standard-8,on_demand,NA,0.323265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785692 +GCP,europe-west1,g2-standard-8,reserved_1y,NA,0.203657,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785720 +GCP,europe-west1,g2-standard-8,reserved_3y,NA,0.145469,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785734 +GCP,europe-west1,g2-standard-8,spot,NA,0.10592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785706 +GCP,europe-west1,g2-standard-96,on_demand,NA,3.879185,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792001 +GCP,europe-west1,g2-standard-96,reserved_1y,NA,2.443887,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792029 +GCP,europe-west1,g2-standard-96,reserved_3y,NA,1.745633,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792043 +GCP,europe-west1,g2-standard-96,spot,NA,1.27104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792015 +GCP,europe-west1,n1-highcpu-16,on_demand,NA,0.624091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690798 +GCP,europe-west1,n1-highcpu-16,spot,NA,0.186474,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690811 +GCP,europe-west1,n1-highcpu-32,on_demand,NA,1.248182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691666 +GCP,europe-west1,n1-highcpu-32,spot,NA,0.372947,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691679 +GCP,europe-west1,n1-highcpu-64,on_demand,NA,2.496364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692578 +GCP,europe-west1,n1-highcpu-64,spot,NA,0.745894,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692591 +GCP,europe-west1,n1-highcpu-96,on_demand,NA,3.744547,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693414 +GCP,europe-west1,n1-highcpu-96,spot,NA,1.118842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693428 +GCP,europe-west1,n1-highmem-16,on_demand,NA,1.042107,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687280 +GCP,europe-west1,n1-highmem-16,spot,NA,0.311376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687294 +GCP,europe-west1,n1-highmem-32,on_demand,NA,2.084215,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688162 +GCP,europe-west1,n1-highmem-32,spot,NA,0.622752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688176 +GCP,europe-west1,n1-highmem-4,on_demand,NA,0.260527,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685522 +GCP,europe-west1,n1-highmem-4,spot,NA,0.077844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685535 +GCP,europe-west1,n1-highmem-64,on_demand,NA,4.16843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689080 +GCP,europe-west1,n1-highmem-64,spot,NA,1.245504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689094 +GCP,europe-west1,n1-highmem-8,on_demand,NA,0.521054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686368 +GCP,europe-west1,n1-highmem-8,spot,NA,0.155688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686383 +GCP,europe-west1,n1-highmem-96,on_demand,NA,6.252645,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689914 +GCP,europe-west1,n1-highmem-96,spot,NA,1.868256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689928 +GCP,europe-west1,n1-standard-16,on_demand,NA,0.836832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681608 +GCP,europe-west1,n1-standard-16,spot,NA,0.25004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681623 +GCP,europe-west1,n1-standard-32,on_demand,NA,1.673663,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682561 +GCP,europe-west1,n1-standard-32,spot,NA,0.50008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682605 +GCP,europe-west1,n1-standard-4,on_demand,NA,0.209208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679853 +GCP,europe-west1,n1-standard-4,spot,NA,0.06251,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679886 +GCP,europe-west1,n1-standard-64,on_demand,NA,3.347326,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683457 +GCP,europe-west1,n1-standard-64,spot,NA,1.00016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683471 +GCP,europe-west1,n1-standard-8,on_demand,NA,0.418416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680758 +GCP,europe-west1,n1-standard-8,spot,NA,0.12502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680772 +GCP,europe-west1,n1-standard-96,on_demand,NA,5.020989,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684593 +GCP,europe-west1,n1-standard-96,spot,NA,1.50024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684606 +GCP,europe-west1,n2-highcpu-16,on_demand,NA,0.130213,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711140 +GCP,europe-west1,n2-highcpu-16,reserved_1y,NA,0.397488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711167 +GCP,europe-west1,n2-highcpu-16,reserved_3y,NA,0.28392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711181 +GCP,europe-west1,n2-highcpu-16,spot,NA,0.082368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711154 +GCP,europe-west1,n2-highcpu-32,on_demand,NA,0.260426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712247 +GCP,europe-west1,n2-highcpu-32,reserved_1y,NA,0.794976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712274 +GCP,europe-west1,n2-highcpu-32,reserved_3y,NA,0.56784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712288 +GCP,europe-west1,n2-highcpu-32,spot,NA,0.164736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712260 +GCP,europe-west1,n2-highcpu-48,on_demand,NA,0.390638,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713337 +GCP,europe-west1,n2-highcpu-48,reserved_1y,NA,1.192464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713364 +GCP,europe-west1,n2-highcpu-48,reserved_3y,NA,0.85176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713383 +GCP,europe-west1,n2-highcpu-48,spot,NA,0.247104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713351 +GCP,europe-west1,n2-highcpu-64,on_demand,NA,0.520851,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714454 +GCP,europe-west1,n2-highcpu-64,reserved_1y,NA,1.589952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714481 +GCP,europe-west1,n2-highcpu-64,reserved_3y,NA,1.13568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714495 +GCP,europe-west1,n2-highcpu-64,spot,NA,0.329472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714467 +GCP,europe-west1,n2-highcpu-80,on_demand,NA,0.651064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715544 +GCP,europe-west1,n2-highcpu-80,reserved_1y,NA,1.98744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715572 +GCP,europe-west1,n2-highcpu-80,reserved_3y,NA,1.4196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715586 +GCP,europe-west1,n2-highcpu-80,spot,NA,0.41184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715559 +GCP,europe-west1,n2-highmem-16,on_demand,NA,0.652245,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705547 +GCP,europe-west1,n2-highmem-16,reserved_1y,NA,0.72632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705576 +GCP,europe-west1,n2-highmem-16,reserved_3y,NA,0.518784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705590 +GCP,europe-west1,n2-highmem-16,spot,NA,0.150464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705562 +GCP,europe-west1,n2-highmem-2,on_demand,NA,0.081531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702206 +GCP,europe-west1,n2-highmem-2,reserved_1y,NA,0.09079,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702236 +GCP,europe-west1,n2-highmem-2,reserved_3y,NA,0.064848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702249 +GCP,europe-west1,n2-highmem-2,spot,NA,0.018808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702221 +GCP,europe-west1,n2-highmem-32,on_demand,NA,1.30449,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706677 +GCP,europe-west1,n2-highmem-32,reserved_1y,NA,1.45264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706706 +GCP,europe-west1,n2-highmem-32,reserved_3y,NA,1.037568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706720 +GCP,europe-west1,n2-highmem-32,spot,NA,0.300928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706691 +GCP,europe-west1,n2-highmem-4,on_demand,NA,0.163061,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703311 +GCP,europe-west1,n2-highmem-4,reserved_1y,NA,0.18158,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703341 +GCP,europe-west1,n2-highmem-4,reserved_3y,NA,0.129696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703355 +GCP,europe-west1,n2-highmem-4,spot,NA,0.037616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703326 +GCP,europe-west1,n2-highmem-48,on_demand,NA,1.956734,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707807 +GCP,europe-west1,n2-highmem-48,reserved_1y,NA,2.17896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707835 +GCP,europe-west1,n2-highmem-48,reserved_3y,NA,1.556352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707849 +GCP,europe-west1,n2-highmem-48,spot,NA,0.451392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707821 +GCP,europe-west1,n2-highmem-64,on_demand,NA,2.608979,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708909 +GCP,europe-west1,n2-highmem-64,reserved_1y,NA,2.90528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708937 +GCP,europe-west1,n2-highmem-64,reserved_3y,NA,2.075136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708951 +GCP,europe-west1,n2-highmem-64,spot,NA,0.601856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708923 +GCP,europe-west1,n2-highmem-8,on_demand,NA,0.326122,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704462 +GCP,europe-west1,n2-highmem-8,reserved_1y,NA,0.36316,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704490 +GCP,europe-west1,n2-highmem-8,reserved_3y,NA,0.259392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704504 +GCP,europe-west1,n2-highmem-8,spot,NA,0.075232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704476 +GCP,europe-west1,n2-highmem-80,on_demand,NA,3.261224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710002 +GCP,europe-west1,n2-highmem-80,reserved_1y,NA,3.6316,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710031 +GCP,europe-west1,n2-highmem-80,reserved_3y,NA,2.59392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710045 +GCP,europe-west1,n2-highmem-80,spot,NA,0.75232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710017 +GCP,europe-west1,n2-standard-16,on_demand,NA,0.353941,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696634 +GCP,europe-west1,n2-standard-16,reserved_1y,NA,0.538416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696662 +GCP,europe-west1,n2-standard-16,reserved_3y,NA,0.384576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696676 +GCP,europe-west1,n2-standard-16,spot,NA,0.111552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696648 +GCP,europe-west1,n2-standard-32,on_demand,NA,0.707882,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697759 +GCP,europe-west1,n2-standard-32,reserved_1y,NA,1.076832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697787 +GCP,europe-west1,n2-standard-32,reserved_3y,NA,0.769152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697802 +GCP,europe-west1,n2-standard-32,spot,NA,0.223104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697773 +GCP,europe-west1,n2-standard-4,on_demand,NA,0.088485,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694358 +GCP,europe-west1,n2-standard-4,reserved_1y,NA,0.134604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694388 +GCP,europe-west1,n2-standard-4,reserved_3y,NA,0.096144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694402 +GCP,europe-west1,n2-standard-4,spot,NA,0.027888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694374 +GCP,europe-west1,n2-standard-48,on_demand,NA,1.061822,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698865 +GCP,europe-west1,n2-standard-48,reserved_1y,NA,1.615248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698893 +GCP,europe-west1,n2-standard-48,reserved_3y,NA,1.153728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698907 +GCP,europe-west1,n2-standard-48,spot,NA,0.334656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698879 +GCP,europe-west1,n2-standard-64,on_demand,NA,1.415763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699987 +GCP,europe-west1,n2-standard-64,reserved_1y,NA,2.153664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700016 +GCP,europe-west1,n2-standard-64,reserved_3y,NA,1.538304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700030 +GCP,europe-west1,n2-standard-64,spot,NA,0.446208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700002 +GCP,europe-west1,n2-standard-8,on_demand,NA,0.17697,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695477 +GCP,europe-west1,n2-standard-8,reserved_1y,NA,0.269208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695506 +GCP,europe-west1,n2-standard-8,reserved_3y,NA,0.192288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695521 +GCP,europe-west1,n2-standard-8,spot,NA,0.055776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695492 +GCP,europe-west1,n2-standard-80,on_demand,NA,1.769704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701119 +GCP,europe-west1,n2-standard-80,reserved_1y,NA,2.69208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701147 +GCP,europe-west1,n2-standard-80,reserved_3y,NA,1.92288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701161 +GCP,europe-west1,n2-standard-80,spot,NA,0.55776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701134 +GCP,europe-west1,n2d-highcpu-128,on_demand,NA,1.02,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752530 +GCP,europe-west1,n2d-highcpu-128,reserved_1y,NA,2.766464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752560 +GCP,europe-west1,n2d-highcpu-128,reserved_3y,NA,1.976064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752574 +GCP,europe-west1,n2d-highcpu-128,spot,NA,1.60384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752545 +GCP,europe-west1,n2d-highcpu-16,on_demand,NA,0.1275,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746226 +GCP,europe-west1,n2d-highcpu-16,reserved_1y,NA,0.345808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746254 +GCP,europe-west1,n2d-highcpu-16,reserved_3y,NA,0.247008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746268 +GCP,europe-west1,n2d-highcpu-16,spot,NA,0.20048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746240 +GCP,europe-west1,n2d-highcpu-224,on_demand,NA,1.785,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753558 +GCP,europe-west1,n2d-highcpu-224,reserved_1y,NA,4.841312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753585 +GCP,europe-west1,n2d-highcpu-224,reserved_3y,NA,3.458112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753599 +GCP,europe-west1,n2d-highcpu-224,spot,NA,2.80672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753572 +GCP,europe-west1,n2d-highcpu-32,on_demand,NA,0.255,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747259 +GCP,europe-west1,n2d-highcpu-32,reserved_1y,NA,0.691616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747289 +GCP,europe-west1,n2d-highcpu-32,reserved_3y,NA,0.494016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747303 +GCP,europe-west1,n2d-highcpu-32,spot,NA,0.40096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747274 +GCP,europe-west1,n2d-highcpu-48,on_demand,NA,0.3825,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748341 +GCP,europe-west1,n2d-highcpu-48,reserved_1y,NA,1.037424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748368 +GCP,europe-west1,n2d-highcpu-48,reserved_3y,NA,0.741024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748382 +GCP,europe-west1,n2d-highcpu-48,spot,NA,0.60144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748354 +GCP,europe-west1,n2d-highcpu-64,on_demand,NA,0.51,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749380 +GCP,europe-west1,n2d-highcpu-64,reserved_1y,NA,1.383232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749408 +GCP,europe-west1,n2d-highcpu-64,reserved_3y,NA,0.988032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749422 +GCP,europe-west1,n2d-highcpu-64,spot,NA,0.80192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749394 +GCP,europe-west1,n2d-highcpu-80,on_demand,NA,0.6375,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750426 +GCP,europe-west1,n2d-highcpu-80,reserved_1y,NA,1.72904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750455 +GCP,europe-west1,n2d-highcpu-80,reserved_3y,NA,1.23504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750469 +GCP,europe-west1,n2d-highcpu-80,spot,NA,1.0024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750440 +GCP,europe-west1,n2d-highcpu-96,on_demand,NA,0.765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751476 +GCP,europe-west1,n2d-highcpu-96,reserved_1y,NA,2.074848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751504 +GCP,europe-west1,n2d-highcpu-96,reserved_3y,NA,1.482048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751518 +GCP,europe-west1,n2d-highcpu-96,spot,NA,1.20288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751490 +GCP,europe-west1,n2d-highmem-16,on_demand,NA,0.172916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739937 +GCP,europe-west1,n2d-highmem-16,reserved_1y,NA,0.631856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739965 +GCP,europe-west1,n2d-highmem-16,reserved_3y,NA,0.451296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739978 +GCP,europe-west1,n2d-highmem-16,spot,NA,0.36624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739950 +GCP,europe-west1,n2d-highmem-2,on_demand,NA,0.021614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736728 +GCP,europe-west1,n2d-highmem-2,reserved_1y,NA,0.078982,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736758 +GCP,europe-west1,n2d-highmem-2,reserved_3y,NA,0.056412,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736772 +GCP,europe-west1,n2d-highmem-2,spot,NA,0.04578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736743 +GCP,europe-west1,n2d-highmem-32,on_demand,NA,0.345832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740977 +GCP,europe-west1,n2d-highmem-32,reserved_1y,NA,1.263712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741004 +GCP,europe-west1,n2d-highmem-32,reserved_3y,NA,0.902592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741018 +GCP,europe-west1,n2d-highmem-32,spot,NA,0.73248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740991 +GCP,europe-west1,n2d-highmem-4,on_demand,NA,0.043229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737758 +GCP,europe-west1,n2d-highmem-4,reserved_1y,NA,0.157964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737784 +GCP,europe-west1,n2d-highmem-4,reserved_3y,NA,0.112824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737797 +GCP,europe-west1,n2d-highmem-4,spot,NA,0.09156,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737771 +GCP,europe-west1,n2d-highmem-48,on_demand,NA,0.518748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741988 +GCP,europe-west1,n2d-highmem-48,reserved_1y,NA,1.895568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742015 +GCP,europe-west1,n2d-highmem-48,reserved_3y,NA,1.353888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742029 +GCP,europe-west1,n2d-highmem-48,spot,NA,1.09872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742002 +GCP,europe-west1,n2d-highmem-64,on_demand,NA,0.691664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743099 +GCP,europe-west1,n2d-highmem-64,reserved_1y,NA,2.527424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743127 +GCP,europe-west1,n2d-highmem-64,reserved_3y,NA,1.805184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743141 +GCP,europe-west1,n2d-highmem-64,spot,NA,1.46496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743113 +GCP,europe-west1,n2d-highmem-8,on_demand,NA,0.086458,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738858 +GCP,europe-west1,n2d-highmem-8,reserved_1y,NA,0.315928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738882 +GCP,europe-west1,n2d-highmem-8,reserved_3y,NA,0.225648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738898 +GCP,europe-west1,n2d-highmem-8,spot,NA,0.18312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738870 +GCP,europe-west1,n2d-highmem-80,on_demand,NA,0.86458,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744159 +GCP,europe-west1,n2d-highmem-80,reserved_1y,NA,3.15928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744185 +GCP,europe-west1,n2d-highmem-80,reserved_3y,NA,2.25648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744198 +GCP,europe-west1,n2d-highmem-80,spot,NA,1.8312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744172 +GCP,europe-west1,n2d-highmem-96,on_demand,NA,1.037496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745211 +GCP,europe-west1,n2d-highmem-96,reserved_1y,NA,3.791136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745239 +GCP,europe-west1,n2d-highmem-96,reserved_3y,NA,2.707776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745252 +GCP,europe-west1,n2d-highmem-96,spot,NA,2.19744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745225 +GCP,europe-west1,n2d-standard-128,on_demand,NA,1.175712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734639 +GCP,europe-west1,n2d-standard-128,reserved_1y,NA,3.7472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734667 +GCP,europe-west1,n2d-standard-128,reserved_3y,NA,2.67648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734682 +GCP,europe-west1,n2d-standard-128,spot,NA,2.17216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734653 +GCP,europe-west1,n2d-standard-16,on_demand,NA,0.146964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728324 +GCP,europe-west1,n2d-standard-16,reserved_1y,NA,0.4684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728352 +GCP,europe-west1,n2d-standard-16,reserved_3y,NA,0.33456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728366 +GCP,europe-west1,n2d-standard-16,spot,NA,0.27152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728338 +GCP,europe-west1,n2d-standard-224,on_demand,NA,2.057496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735684 +GCP,europe-west1,n2d-standard-224,reserved_1y,NA,6.5576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735712 +GCP,europe-west1,n2d-standard-224,reserved_3y,NA,4.68384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735726 +GCP,europe-west1,n2d-standard-224,spot,NA,3.80128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735698 +GCP,europe-west1,n2d-standard-32,on_demand,NA,0.293928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729359 +GCP,europe-west1,n2d-standard-32,reserved_1y,NA,0.9368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729387 +GCP,europe-west1,n2d-standard-32,reserved_3y,NA,0.66912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729401 +GCP,europe-west1,n2d-standard-32,spot,NA,0.54304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729373 +GCP,europe-west1,n2d-standard-4,on_demand,NA,0.036741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726192 +GCP,europe-west1,n2d-standard-4,reserved_1y,NA,0.1171,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726221 +GCP,europe-west1,n2d-standard-4,reserved_3y,NA,0.08364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726235 +GCP,europe-west1,n2d-standard-4,spot,NA,0.06788,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726207 +GCP,europe-west1,n2d-standard-48,on_demand,NA,0.440892,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730387 +GCP,europe-west1,n2d-standard-48,reserved_1y,NA,1.4052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730414 +GCP,europe-west1,n2d-standard-48,reserved_3y,NA,1.00368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730426 +GCP,europe-west1,n2d-standard-48,spot,NA,0.81456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730400 +GCP,europe-west1,n2d-standard-64,on_demand,NA,0.587856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731473 +GCP,europe-west1,n2d-standard-64,reserved_1y,NA,1.8736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731502 +GCP,europe-west1,n2d-standard-64,reserved_3y,NA,1.33824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731516 +GCP,europe-west1,n2d-standard-64,spot,NA,1.08608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731487 +GCP,europe-west1,n2d-standard-8,on_demand,NA,0.073482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727266 +GCP,europe-west1,n2d-standard-8,reserved_1y,NA,0.2342,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727294 +GCP,europe-west1,n2d-standard-8,reserved_3y,NA,0.16728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727307 +GCP,europe-west1,n2d-standard-8,spot,NA,0.13576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727279 +GCP,europe-west1,n2d-standard-80,on_demand,NA,0.73482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732543 +GCP,europe-west1,n2d-standard-80,reserved_1y,NA,2.342,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732572 +GCP,europe-west1,n2d-standard-80,reserved_3y,NA,1.6728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732586 +GCP,europe-west1,n2d-standard-80,spot,NA,1.3576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732558 +GCP,europe-west1,n2d-standard-96,on_demand,NA,0.881784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733570 +GCP,europe-west1,n2d-standard-96,reserved_1y,NA,2.8104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733598 +GCP,europe-west1,n2d-standard-96,reserved_3y,NA,2.00736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733611 +GCP,europe-west1,n2d-standard-96,spot,NA,1.62912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733584 +GCP,europe-west1,n4-standard-16,on_demand,NA,0.574439,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757714 +GCP,europe-west1,n4-standard-16,reserved_1y,NA,0.503335,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757743 +GCP,europe-west1,n4-standard-16,reserved_3y,NA,0.35954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757757 +GCP,europe-west1,n4-standard-16,spot,NA,0.17104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757728 +GCP,europe-west1,n4-standard-2,on_demand,NA,0.071805,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754588 +GCP,europe-west1,n4-standard-2,reserved_1y,NA,0.062917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754616 +GCP,europe-west1,n4-standard-2,reserved_3y,NA,0.044942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754630 +GCP,europe-west1,n4-standard-2,spot,NA,0.02138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754602 +GCP,europe-west1,n4-standard-32,on_demand,NA,1.148879,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758754 +GCP,europe-west1,n4-standard-32,reserved_1y,NA,1.00667,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758782 +GCP,europe-west1,n4-standard-32,reserved_3y,NA,0.71908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758796 +GCP,europe-west1,n4-standard-32,spot,NA,0.34208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758768 +GCP,europe-west1,n4-standard-4,on_demand,NA,0.14361,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755638 +GCP,europe-west1,n4-standard-4,reserved_1y,NA,0.125834,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755666 +GCP,europe-west1,n4-standard-4,reserved_3y,NA,0.089885,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755679 +GCP,europe-west1,n4-standard-4,spot,NA,0.04276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755652 +GCP,europe-west1,n4-standard-8,on_demand,NA,0.28722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756686 +GCP,europe-west1,n4-standard-8,reserved_1y,NA,0.251667,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756710 +GCP,europe-west1,n4-standard-8,reserved_3y,NA,0.17977,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756722 +GCP,europe-west1,n4-standard-8,spot,NA,0.08552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756698 +GCP,europe-west2,a2-highgpu-1g,on_demand,NA,0.95269,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770596 +GCP,europe-west2,a2-highgpu-1g,reserved_1y,NA,0.600159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770625 +GCP,europe-west2,a2-highgpu-1g,reserved_3y,NA,0.333475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770639 +GCP,europe-west2,a2-highgpu-1g,spot,NA,0.18852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770610 +GCP,europe-west2,a2-highgpu-2g,on_demand,NA,1.90538,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771630 +GCP,europe-west2,a2-highgpu-2g,reserved_1y,NA,1.200317,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771658 +GCP,europe-west2,a2-highgpu-2g,reserved_3y,NA,0.666951,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771672 +GCP,europe-west2,a2-highgpu-2g,spot,NA,0.37704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771644 +GCP,europe-west2,a2-highgpu-4g,on_demand,NA,3.81076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772771 +GCP,europe-west2,a2-highgpu-4g,reserved_1y,NA,2.400634,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772799 +GCP,europe-west2,a2-highgpu-4g,reserved_3y,NA,1.333902,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772814 +GCP,europe-west2,a2-highgpu-4g,spot,NA,0.75408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772785 +GCP,europe-west2,a2-highgpu-8g,on_demand,NA,7.62152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773881 +GCP,europe-west2,a2-highgpu-8g,reserved_1y,NA,4.801268,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773908 +GCP,europe-west2,a2-highgpu-8g,reserved_3y,NA,2.667803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773922 +GCP,europe-west2,a2-highgpu-8g,spot,NA,1.50816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773894 +GCP,europe-west2,a2-megagpu-16g,on_demand,NA,11.33296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775013 +GCP,europe-west2,a2-megagpu-16g,reserved_1y,NA,7.139176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775041 +GCP,europe-west2,a2-megagpu-16g,reserved_3y,NA,3.967071,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775055 +GCP,europe-west2,a2-megagpu-16g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775027 +GCP,europe-west2,a2-ultragpu-1g,on_demand,NA,1.41662,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776109 +GCP,europe-west2,a2-ultragpu-1g,reserved_1y,NA,0.892397,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776136 +GCP,europe-west2,a2-ultragpu-1g,reserved_3y,NA,0.495884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776150 +GCP,europe-west2,a2-ultragpu-1g,spot,NA,0.28032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776123 +GCP,europe-west2,a2-ultragpu-2g,on_demand,NA,2.83324,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777206 +GCP,europe-west2,a2-ultragpu-2g,reserved_1y,NA,1.784794,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777235 +GCP,europe-west2,a2-ultragpu-2g,reserved_3y,NA,0.991768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777249 +GCP,europe-west2,a2-ultragpu-2g,spot,NA,0.56064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777220 +GCP,europe-west2,a2-ultragpu-4g,on_demand,NA,5.66648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778268 +GCP,europe-west2,a2-ultragpu-4g,reserved_1y,NA,3.569588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778296 +GCP,europe-west2,a2-ultragpu-4g,reserved_3y,NA,1.983536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778310 +GCP,europe-west2,a2-ultragpu-4g,spot,NA,1.12128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778282 +GCP,europe-west2,a2-ultragpu-8g,on_demand,NA,11.33296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779320 +GCP,europe-west2,a2-ultragpu-8g,reserved_1y,NA,7.139176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779348 +GCP,europe-west2,a2-ultragpu-8g,reserved_3y,NA,3.967071,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779362 +GCP,europe-west2,a2-ultragpu-8g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779334 +GCP,europe-west2,a3-highgpu-1g,on_demand,NA,0.998135,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780424 +GCP,europe-west2,a3-highgpu-1g,reserved_1y,NA,0.937501,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780453 +GCP,europe-west2,a3-highgpu-1g,reserved_3y,NA,0.594126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780468 +GCP,europe-west2,a3-highgpu-1g,spot,NA,0.242684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780439 +GCP,europe-west2,a3-highgpu-2g,on_demand,NA,0.998135,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781478 +GCP,europe-west2,a3-highgpu-2g,reserved_1y,NA,0.937501,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781506 +GCP,europe-west2,a3-highgpu-2g,reserved_3y,NA,0.594126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781520 +GCP,europe-west2,a3-highgpu-2g,spot,NA,0.242684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781492 +GCP,europe-west2,a3-highgpu-4g,on_demand,NA,0.998135,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782564 +GCP,europe-west2,a3-highgpu-4g,reserved_1y,NA,0.937501,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782591 +GCP,europe-west2,a3-highgpu-4g,reserved_3y,NA,0.594126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782605 +GCP,europe-west2,a3-highgpu-4g,spot,NA,0.242684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782578 +GCP,europe-west2,a3-highgpu-8g,on_demand,NA,0.998135,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783644 +GCP,europe-west2,a3-highgpu-8g,reserved_1y,NA,0.937501,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783672 +GCP,europe-west2,a3-highgpu-8g,reserved_3y,NA,0.594126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783686 +GCP,europe-west2,a3-highgpu-8g,spot,NA,0.242684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783658 +GCP,europe-west2,c2-standard-16,on_demand,NA,0.935808,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721407 +GCP,europe-west2,c2-standard-16,reserved_1y,NA,0.589568,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721452 +GCP,europe-west2,c2-standard-16,reserved_3y,NA,0.42112,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721474 +GCP,europe-west2,c2-standard-16,spot,NA,0.251168,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721430 +GCP,europe-west2,c2-standard-30,on_demand,NA,1.75464,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723086 +GCP,europe-west2,c2-standard-30,reserved_1y,NA,1.10544,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723131 +GCP,europe-west2,c2-standard-30,reserved_3y,NA,0.7896,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723154 +GCP,europe-west2,c2-standard-30,spot,NA,0.47094,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723109 +GCP,europe-west2,c2-standard-4,on_demand,NA,0.233952,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717804 +GCP,europe-west2,c2-standard-4,reserved_1y,NA,0.147392,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717850 +GCP,europe-west2,c2-standard-4,reserved_3y,NA,0.10528,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717874 +GCP,europe-west2,c2-standard-4,spot,NA,0.062792,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717827 +GCP,europe-west2,c2-standard-60,on_demand,NA,3.50928,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724823 +GCP,europe-west2,c2-standard-60,reserved_1y,NA,2.21088,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724869 +GCP,europe-west2,c2-standard-60,reserved_3y,NA,1.5792,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724892 +GCP,europe-west2,c2-standard-60,spot,NA,0.94188,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724846 +GCP,europe-west2,c2-standard-8,on_demand,NA,0.467904,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719667 +GCP,europe-west2,c2-standard-8,reserved_1y,NA,0.294784,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719713 +GCP,europe-west2,c2-standard-8,reserved_3y,NA,0.21056,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719737 +GCP,europe-west2,c2-standard-8,spot,NA,0.125584,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719690 +GCP,europe-west2,c3-highmem-22,on_demand,NA,1.659142,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800579 +GCP,europe-west2,c3-highmem-22,reserved_1y,NA,1.045284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800605 +GCP,europe-west2,c3-highmem-22,reserved_3y,NA,0.746607,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800618 +GCP,europe-west2,c3-highmem-22,spot,NA,0.409332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800592 +GCP,europe-west2,c3-highmem-4,on_demand,NA,0.301662,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798488 +GCP,europe-west2,c3-highmem-4,reserved_1y,NA,0.190052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798515 +GCP,europe-west2,c3-highmem-4,reserved_3y,NA,0.135747,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798529 +GCP,europe-west2,c3-highmem-4,spot,NA,0.074424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798502 +GCP,europe-west2,c3-highmem-44,on_demand,NA,3.318285,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801586 +GCP,europe-west2,c3-highmem-44,reserved_1y,NA,2.090568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801612 +GCP,europe-west2,c3-highmem-44,reserved_3y,NA,1.493213,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801627 +GCP,europe-west2,c3-highmem-44,spot,NA,0.818664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801599 +GCP,europe-west2,c3-highmem-8,on_demand,NA,0.603324,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799544 +GCP,europe-west2,c3-highmem-8,reserved_1y,NA,0.380103,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799572 +GCP,europe-west2,c3-highmem-8,reserved_3y,NA,0.271493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799586 +GCP,europe-west2,c3-highmem-8,spot,NA,0.148848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799558 +GCP,europe-west2,c3-highmem-88,on_demand,NA,6.636569,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802610 +GCP,europe-west2,c3-highmem-88,reserved_1y,NA,4.181137,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802639 +GCP,europe-west2,c3-highmem-88,reserved_3y,NA,2.986426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802652 +GCP,europe-west2,c3-highmem-88,spot,NA,1.637328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802624 +GCP,europe-west2,c3-standard-22 (-lssd),on_demand,NA,1.264082,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795269 +GCP,europe-west2,c3-standard-22 (-lssd),reserved_1y,NA,0.79639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795300 +GCP,europe-west2,c3-standard-22 (-lssd),reserved_3y,NA,0.568839,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795314 +GCP,europe-west2,c3-standard-22 (-lssd),spot,NA,0.303556,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795284 +GCP,europe-west2,c3-standard-4 (-lssd),on_demand,NA,0.229833,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793158 +GCP,europe-west2,c3-standard-4 (-lssd),reserved_1y,NA,0.144798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793189 +GCP,europe-west2,c3-standard-4 (-lssd),reserved_3y,NA,0.103425,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793203 +GCP,europe-west2,c3-standard-4 (-lssd),spot,NA,0.055192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793174 +GCP,europe-west2,c3-standard-44 (-lssd),on_demand,NA,2.528164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796382 +GCP,europe-west2,c3-standard-44 (-lssd),reserved_1y,NA,1.592781,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796409 +GCP,europe-west2,c3-standard-44 (-lssd),reserved_3y,NA,1.137679,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796423 +GCP,europe-west2,c3-standard-44 (-lssd),spot,NA,0.607112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796395 +GCP,europe-west2,c3-standard-8 (-lssd),on_demand,NA,0.459666,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794219 +GCP,europe-west2,c3-standard-8 (-lssd),reserved_1y,NA,0.289596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794246 +GCP,europe-west2,c3-standard-8 (-lssd),reserved_3y,NA,0.206851,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794260 +GCP,europe-west2,c3-standard-8 (-lssd),spot,NA,0.110384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794233 +GCP,europe-west2,c3-standard-88 (-lssd),on_demand,NA,5.056329,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797434 +GCP,europe-west2,c3-standard-88 (-lssd),reserved_1y,NA,3.185561,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797462 +GCP,europe-west2,c3-standard-88 (-lssd),reserved_3y,NA,2.275358,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797476 +GCP,europe-west2,c3-standard-88 (-lssd),spot,NA,1.214224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797448 +GCP,europe-west2,c3d-highmem-16 (-lssd),on_demand,NA,1.116926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814210 +GCP,europe-west2,c3d-highmem-16 (-lssd),reserved_1y,NA,0.703626,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814238 +GCP,europe-west2,c3d-highmem-16 (-lssd),reserved_3y,NA,0.50253,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814251 +GCP,europe-west2,c3d-highmem-16 (-lssd),spot,NA,0.446771,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814224 +GCP,europe-west2,c3d-highmem-180 (-lssd),on_demand,NA,12.565422,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818553 +GCP,europe-west2,c3d-highmem-180 (-lssd),reserved_1y,NA,7.915795,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818581 +GCP,europe-west2,c3d-highmem-180 (-lssd),reserved_3y,NA,5.653465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818595 +GCP,europe-west2,c3d-highmem-180 (-lssd),spot,NA,5.026169,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818567 +GCP,europe-west2,c3d-highmem-30 (-lssd),on_demand,NA,2.094237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815429 +GCP,europe-west2,c3d-highmem-30 (-lssd),reserved_1y,NA,1.319299,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815457 +GCP,europe-west2,c3d-highmem-30 (-lssd),reserved_3y,NA,0.942244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815471 +GCP,europe-west2,c3d-highmem-30 (-lssd),spot,NA,0.837695,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815443 +GCP,europe-west2,c3d-highmem-360 (-lssd),on_demand,NA,25.130844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819585 +GCP,europe-west2,c3d-highmem-360 (-lssd),reserved_1y,NA,15.83159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819611 +GCP,europe-west2,c3d-highmem-360 (-lssd),reserved_3y,NA,11.30693,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819624 +GCP,europe-west2,c3d-highmem-360 (-lssd),spot,NA,10.052338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819598 +GCP,europe-west2,c3d-highmem-4 (-lssd),on_demand,NA,0.279232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812114 +GCP,europe-west2,c3d-highmem-4 (-lssd),reserved_1y,NA,0.175907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812142 +GCP,europe-west2,c3d-highmem-4 (-lssd),reserved_3y,NA,0.125633,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812158 +GCP,europe-west2,c3d-highmem-4 (-lssd),spot,NA,0.111693,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812129 +GCP,europe-west2,c3d-highmem-60 (-lssd),on_demand,NA,4.188474,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816486 +GCP,europe-west2,c3d-highmem-60 (-lssd),reserved_1y,NA,2.638598,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816514 +GCP,europe-west2,c3d-highmem-60 (-lssd),reserved_3y,NA,1.884488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816528 +GCP,europe-west2,c3d-highmem-60 (-lssd),spot,NA,1.67539,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816500 +GCP,europe-west2,c3d-highmem-8 (-lssd),on_demand,NA,0.558463,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813159 +GCP,europe-west2,c3d-highmem-8 (-lssd),reserved_1y,NA,0.351813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813187 +GCP,europe-west2,c3d-highmem-8 (-lssd),reserved_3y,NA,0.251265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813201 +GCP,europe-west2,c3d-highmem-8 (-lssd),spot,NA,0.223385,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813173 +GCP,europe-west2,c3d-highmem-90 (-lssd),on_demand,NA,6.282711,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817522 +GCP,europe-west2,c3d-highmem-90 (-lssd),reserved_1y,NA,3.957898,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817550 +GCP,europe-west2,c3d-highmem-90 (-lssd),reserved_3y,NA,2.826733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817564 +GCP,europe-west2,c3d-highmem-90 (-lssd),spot,NA,2.513085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817536 +GCP,europe-west2,c3d-standard-16 (-lssd),on_demand,NA,0.828078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805740 +GCP,europe-west2,c3d-standard-16 (-lssd),reserved_1y,NA,0.521664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805769 +GCP,europe-west2,c3d-standard-16 (-lssd),reserved_3y,NA,0.372588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805783 +GCP,europe-west2,c3d-standard-16 (-lssd),spot,NA,0.331231,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805755 +GCP,europe-west2,c3d-standard-180 (-lssd),on_demand,NA,9.315875,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809996 +GCP,europe-west2,c3d-standard-180 (-lssd),reserved_1y,NA,5.86872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810025 +GCP,europe-west2,c3d-standard-180 (-lssd),reserved_3y,NA,4.19162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810039 +GCP,europe-west2,c3d-standard-180 (-lssd),spot,NA,3.72635,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810011 +GCP,europe-west2,c3d-standard-30 (-lssd),on_demand,NA,1.552646,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806804 +GCP,europe-west2,c3d-standard-30 (-lssd),reserved_1y,NA,0.97812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806834 +GCP,europe-west2,c3d-standard-30 (-lssd),reserved_3y,NA,0.698603,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806847 +GCP,europe-west2,c3d-standard-30 (-lssd),spot,NA,0.621058,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806820 +GCP,europe-west2,c3d-standard-360 (-lssd),on_demand,NA,18.63175,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811052 +GCP,europe-west2,c3d-standard-360 (-lssd),reserved_1y,NA,11.73744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811081 +GCP,europe-west2,c3d-standard-360 (-lssd),reserved_3y,NA,8.383241,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811096 +GCP,europe-west2,c3d-standard-360 (-lssd),spot,NA,7.452701,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811067 +GCP,europe-west2,c3d-standard-4 (-lssd),on_demand,NA,0.207019,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803666 +GCP,europe-west2,c3d-standard-4 (-lssd),reserved_1y,NA,0.130416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803693 +GCP,europe-west2,c3d-standard-4 (-lssd),reserved_3y,NA,0.093147,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803706 +GCP,europe-west2,c3d-standard-4 (-lssd),spot,NA,0.082808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803679 +GCP,europe-west2,c3d-standard-60 (-lssd),on_demand,NA,3.105292,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807884 +GCP,europe-west2,c3d-standard-60 (-lssd),reserved_1y,NA,1.95624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807912 +GCP,europe-west2,c3d-standard-60 (-lssd),reserved_3y,NA,1.397207,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807925 +GCP,europe-west2,c3d-standard-60 (-lssd),spot,NA,1.242117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807898 +GCP,europe-west2,c3d-standard-8 (-lssd),on_demand,NA,0.414039,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804720 +GCP,europe-west2,c3d-standard-8 (-lssd),reserved_1y,NA,0.260832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804749 +GCP,europe-west2,c3d-standard-8 (-lssd),reserved_3y,NA,0.186294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804762 +GCP,europe-west2,c3d-standard-8 (-lssd),spot,NA,0.165616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804733 +GCP,europe-west2,c3d-standard-90 (-lssd),on_demand,NA,4.657937,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808938 +GCP,europe-west2,c3d-standard-90 (-lssd),reserved_1y,NA,2.93436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808966 +GCP,europe-west2,c3d-standard-90 (-lssd),reserved_3y,NA,2.09581,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808980 +GCP,europe-west2,c3d-standard-90 (-lssd),spot,NA,1.863175,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808952 +GCP,europe-west2,c4-standard-16,on_demand,NA,0.901375,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840978 +GCP,europe-west2,c4-standard-16,reserved_1y,NA,0.56788,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841006 +GCP,europe-west2,c4-standard-16,reserved_3y,NA,0.405621,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841019 +GCP,europe-west2,c4-standard-16,spot,NA,0.3605,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840992 +GCP,europe-west2,c4-standard-2,on_demand,NA,0.110427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837641 +GCP,europe-west2,c4-standard-2,reserved_1y,NA,0.069571,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837669 +GCP,europe-west2,c4-standard-2,reserved_3y,NA,0.049693,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837683 +GCP,europe-west2,c4-standard-2,spot,NA,0.044165,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837656 +GCP,europe-west2,c4-standard-24,on_demand,NA,1.352063,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842005 +GCP,europe-west2,c4-standard-24,reserved_1y,NA,0.851819,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842033 +GCP,europe-west2,c4-standard-24,reserved_3y,NA,0.608432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842047 +GCP,europe-west2,c4-standard-24,spot,NA,0.54075,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842018 +GCP,europe-west2,c4-standard-32,on_demand,NA,1.80275,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843216 +GCP,europe-west2,c4-standard-32,reserved_1y,NA,1.135759,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843245 +GCP,europe-west2,c4-standard-32,reserved_3y,NA,0.811242,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843259 +GCP,europe-west2,c4-standard-32,spot,NA,0.721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843230 +GCP,europe-west2,c4-standard-4,on_demand,NA,0.225344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838746 +GCP,europe-west2,c4-standard-4,reserved_1y,NA,0.14197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838774 +GCP,europe-west2,c4-standard-4,reserved_3y,NA,0.101405,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838788 +GCP,europe-west2,c4-standard-4,spot,NA,0.090125,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838760 +GCP,europe-west2,c4-standard-8,on_demand,NA,0.450688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839769 +GCP,europe-west2,c4-standard-8,reserved_1y,NA,0.28394,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839798 +GCP,europe-west2,c4-standard-8,reserved_3y,NA,0.202811,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839812 +GCP,europe-west2,c4-standard-8,spot,NA,0.18025,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839785 +GCP,europe-west2,c4a-highmem-16 (-lssd),on_demand,NA,1.075008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831641 +GCP,europe-west2,c4a-highmem-16 (-lssd),reserved_1y,NA,0.708576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831669 +GCP,europe-west2,c4a-highmem-16 (-lssd),reserved_3y,NA,0.483808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831683 +GCP,europe-west2,c4a-highmem-16 (-lssd),spot,NA,0.421824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831655 +GCP,europe-west2,c4a-highmem-32 (-lssd),on_demand,NA,2.150016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832889 +GCP,europe-west2,c4a-highmem-32 (-lssd),reserved_1y,NA,1.417152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832917 +GCP,europe-west2,c4a-highmem-32 (-lssd),reserved_3y,NA,0.967616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832930 +GCP,europe-west2,c4a-highmem-32 (-lssd),spot,NA,0.843648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832903 +GCP,europe-west2,c4a-highmem-4 (-lssd),on_demand,NA,0.268752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829212 +GCP,europe-west2,c4a-highmem-4 (-lssd),reserved_1y,NA,0.177144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829239 +GCP,europe-west2,c4a-highmem-4 (-lssd),reserved_3y,NA,0.120952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829253 +GCP,europe-west2,c4a-highmem-4 (-lssd),spot,NA,0.105456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829226 +GCP,europe-west2,c4a-highmem-48 (-lssd),on_demand,NA,3.225024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834110 +GCP,europe-west2,c4a-highmem-48 (-lssd),reserved_1y,NA,2.125728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834139 +GCP,europe-west2,c4a-highmem-48 (-lssd),reserved_3y,NA,1.451424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834153 +GCP,europe-west2,c4a-highmem-48 (-lssd),spot,NA,1.265472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834124 +GCP,europe-west2,c4a-highmem-64 (-lssd),on_demand,NA,4.300032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835286 +GCP,europe-west2,c4a-highmem-64 (-lssd),reserved_1y,NA,2.834304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835311 +GCP,europe-west2,c4a-highmem-64 (-lssd),reserved_3y,NA,1.935232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835324 +GCP,europe-west2,c4a-highmem-64 (-lssd),spot,NA,1.687296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835298 +GCP,europe-west2,c4a-highmem-72 (-lssd),on_demand,NA,4.837536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836466 +GCP,europe-west2,c4a-highmem-72 (-lssd),reserved_1y,NA,3.188592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836492 +GCP,europe-west2,c4a-highmem-72 (-lssd),reserved_3y,NA,2.177136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836505 +GCP,europe-west2,c4a-highmem-72 (-lssd),spot,NA,1.898208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836478 +GCP,europe-west2,c4a-highmem-8 (-lssd),on_demand,NA,0.537504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830426 +GCP,europe-west2,c4a-highmem-8 (-lssd),reserved_1y,NA,0.354288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830465 +GCP,europe-west2,c4a-highmem-8 (-lssd),reserved_3y,NA,0.241904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830479 +GCP,europe-west2,c4a-highmem-8 (-lssd),spot,NA,0.210912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830451 +GCP,europe-west2,c4a-standard-16 (-lssd),on_demand,NA,0.818944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823110 +GCP,europe-west2,c4a-standard-16 (-lssd),reserved_1y,NA,0.540064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823139 +GCP,europe-west2,c4a-standard-16 (-lssd),reserved_3y,NA,0.368544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823153 +GCP,europe-west2,c4a-standard-16 (-lssd),spot,NA,0.321472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823124 +GCP,europe-west2,c4a-standard-32 (-lssd),on_demand,NA,1.637888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824364 +GCP,europe-west2,c4a-standard-32 (-lssd),reserved_1y,NA,1.080128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824392 +GCP,europe-west2,c4a-standard-32 (-lssd),reserved_3y,NA,0.737088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824406 +GCP,europe-west2,c4a-standard-32 (-lssd),spot,NA,0.642944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824378 +GCP,europe-west2,c4a-standard-4 (-lssd),on_demand,NA,0.204736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820649 +GCP,europe-west2,c4a-standard-4 (-lssd),reserved_1y,NA,0.135016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820677 +GCP,europe-west2,c4a-standard-4 (-lssd),reserved_3y,NA,0.092136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820691 +GCP,europe-west2,c4a-standard-4 (-lssd),spot,NA,0.080368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820663 +GCP,europe-west2,c4a-standard-48 (-lssd),on_demand,NA,2.456832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825585 +GCP,europe-west2,c4a-standard-48 (-lssd),reserved_1y,NA,1.620192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825613 +GCP,europe-west2,c4a-standard-48 (-lssd),reserved_3y,NA,1.105632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825627 +GCP,europe-west2,c4a-standard-48 (-lssd),spot,NA,0.964416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825599 +GCP,europe-west2,c4a-standard-64 (-lssd),on_demand,NA,3.275776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826804 +GCP,europe-west2,c4a-standard-64 (-lssd),reserved_1y,NA,2.160256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826832 +GCP,europe-west2,c4a-standard-64 (-lssd),reserved_3y,NA,1.474176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826846 +GCP,europe-west2,c4a-standard-64 (-lssd),spot,NA,1.285888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826818 +GCP,europe-west2,c4a-standard-72 (-lssd),on_demand,NA,3.685248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828021 +GCP,europe-west2,c4a-standard-72 (-lssd),reserved_1y,NA,2.430288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828048 +GCP,europe-west2,c4a-standard-72 (-lssd),reserved_3y,NA,1.658448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828061 +GCP,europe-west2,c4a-standard-72 (-lssd),spot,NA,1.446624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828034 +GCP,europe-west2,c4a-standard-8 (-lssd),on_demand,NA,0.409472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821886 +GCP,europe-west2,c4a-standard-8 (-lssd),reserved_1y,NA,0.270032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821914 +GCP,europe-west2,c4a-standard-8 (-lssd),reserved_3y,NA,0.184272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821927 +GCP,europe-west2,c4a-standard-8 (-lssd),spot,NA,0.160736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821900 +GCP,europe-west2,c4d-standard-16,on_demand,NA,0.306718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848276 +GCP,europe-west2,c4d-standard-16,reserved_1y,NA,0.531455,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848303 +GCP,europe-west2,c4d-standard-16,reserved_3y,NA,0.37961,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848317 +GCP,europe-west2,c4d-standard-16,spot,NA,0.336073,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848290 +GCP,europe-west2,c4d-standard-2,on_demand,NA,0.035351,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844380 +GCP,europe-west2,c4d-standard-2,reserved_1y,NA,0.064549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844408 +GCP,europe-west2,c4d-standard-2,reserved_3y,NA,0.046106,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844422 +GCP,europe-west2,c4d-standard-2,spot,NA,0.040819,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844393 +GCP,europe-west2,c4d-standard-32,on_demand,NA,0.613435,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849575 +GCP,europe-west2,c4d-standard-32,reserved_1y,NA,1.062911,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849603 +GCP,europe-west2,c4d-standard-32,reserved_3y,NA,0.759219,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849617 +GCP,europe-west2,c4d-standard-32,spot,NA,0.672146,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849589 +GCP,europe-west2,c4d-standard-4,on_demand,NA,0.074687,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845673 +GCP,europe-west2,c4d-standard-4,reserved_1y,NA,0.131609,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845701 +GCP,europe-west2,c4d-standard-4,reserved_3y,NA,0.094006,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845715 +GCP,europe-west2,c4d-standard-4,spot,NA,0.083225,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845687 +GCP,europe-west2,c4d-standard-8,on_demand,NA,0.153359,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846969 +GCP,europe-west2,c4d-standard-8,reserved_1y,NA,0.265728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846997 +GCP,europe-west2,c4d-standard-8,reserved_3y,NA,0.189805,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847011 +GCP,europe-west2,c4d-standard-8,spot,NA,0.168036,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846984 +GCP,europe-west2,e2_highcpu_16,on_demand,NA,0.509916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764157 +GCP,europe-west2,e2_highcpu_16,reserved_1y,NA,0.321247,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764183 +GCP,europe-west2,e2_highcpu_16,reserved_3y,NA,0.229462,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764197 +GCP,europe-west2,e2_highcpu_16,spot,NA,0.140224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764170 +GCP,europe-west2,e2_highcpu_32,on_demand,NA,1.019831,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765187 +GCP,europe-west2,e2_highcpu_32,reserved_1y,NA,0.642494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765216 +GCP,europe-west2,e2_highcpu_32,reserved_3y,NA,0.458924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765229 +GCP,europe-west2,e2_highcpu_32,spot,NA,0.280448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765201 +GCP,europe-west2,e2_highmem_16,on_demand,NA,0.93171,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763051 +GCP,europe-west2,e2_highmem_16,reserved_1y,NA,0.586977,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763078 +GCP,europe-west2,e2_highmem_16,reserved_3y,NA,0.419269,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763091 +GCP,europe-west2,e2_highmem_16,spot,NA,0.256032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763065 +GCP,europe-west2,e2_highmem_2,on_demand,NA,0.116464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759925 +GCP,europe-west2,e2_highmem_2,reserved_1y,NA,0.073372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759961 +GCP,europe-west2,e2_highmem_2,reserved_3y,NA,0.052409,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759975 +GCP,europe-west2,e2_highmem_2,spot,NA,0.032004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759946 +GCP,europe-west2,e2_highmem_4,on_demand,NA,0.232927,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760976 +GCP,europe-west2,e2_highmem_4,reserved_1y,NA,0.146744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761004 +GCP,europe-west2,e2_highmem_4,reserved_3y,NA,0.104817,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761017 +GCP,europe-west2,e2_highmem_4,spot,NA,0.064008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760990 +GCP,europe-west2,e2_highmem_8,on_demand,NA,0.465855,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761997 +GCP,europe-west2,e2_highmem_8,reserved_1y,NA,0.293489,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762026 +GCP,europe-west2,e2_highmem_8,reserved_3y,NA,0.209635,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762040 +GCP,europe-west2,e2_highmem_8,spot,NA,0.128016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762011 +GCP,europe-west2,e2_standard_16,on_demand,NA,0.690684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768482 +GCP,europe-west2,e2_standard_16,reserved_1y,NA,0.435131,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768511 +GCP,europe-west2,e2_standard_16,reserved_3y,NA,0.310808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768525 +GCP,europe-west2,e2_standard_16,spot,NA,0.189856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768496 +GCP,europe-west2,e2_standard_32,on_demand,NA,1.381369,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769573 +GCP,europe-west2,e2_standard_32,reserved_1y,NA,0.870262,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769601 +GCP,europe-west2,e2_standard_32,reserved_3y,NA,0.621616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769614 +GCP,europe-west2,e2_standard_32,spot,NA,0.379712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769587 +GCP,europe-west2,e2_standard_4,on_demand,NA,0.172671,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766403 +GCP,europe-west2,e2_standard_4,reserved_1y,NA,0.108783,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766431 +GCP,europe-west2,e2_standard_4,reserved_3y,NA,0.077702,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766445 +GCP,europe-west2,e2_standard_4,spot,NA,0.047464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766417 +GCP,europe-west2,e2_standard_8,on_demand,NA,0.345342,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767455 +GCP,europe-west2,e2_standard_8,reserved_1y,NA,0.217566,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767482 +GCP,europe-west2,e2_standard_8,reserved_3y,NA,0.155404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767496 +GCP,europe-west2,e2_standard_8,spot,NA,0.094928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767469 +GCP,europe-west2,g2-standard-12,on_demand,NA,0.357838,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786779 +GCP,europe-west2,g2-standard-12,reserved_1y,NA,0.315886,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786807 +GCP,europe-west2,g2-standard-12,reserved_3y,NA,0.225633,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786821 +GCP,europe-west2,g2-standard-12,spot,NA,0.200544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786793 +GCP,europe-west2,g2-standard-16,on_demand,NA,0.477117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787832 +GCP,europe-west2,g2-standard-16,reserved_1y,NA,0.421181,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787861 +GCP,europe-west2,g2-standard-16,reserved_3y,NA,0.300844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787899 +GCP,europe-west2,g2-standard-16,spot,NA,0.267392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787847 +GCP,europe-west2,g2-standard-24,on_demand,NA,0.715676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788910 +GCP,europe-west2,g2-standard-24,reserved_1y,NA,0.631772,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788939 +GCP,europe-west2,g2-standard-24,reserved_3y,NA,0.451265,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788953 +GCP,europe-west2,g2-standard-24,spot,NA,0.401088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788925 +GCP,europe-west2,g2-standard-32,on_demand,NA,0.954234,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789943 +GCP,europe-west2,g2-standard-32,reserved_1y,NA,0.842362,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789970 +GCP,europe-west2,g2-standard-32,reserved_3y,NA,0.601687,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789984 +GCP,europe-west2,g2-standard-32,spot,NA,0.534784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789957 +GCP,europe-west2,g2-standard-4,on_demand,NA,0.119279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784705 +GCP,europe-west2,g2-standard-4,reserved_1y,NA,0.105295,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784733 +GCP,europe-west2,g2-standard-4,reserved_3y,NA,0.075211,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784747 +GCP,europe-west2,g2-standard-4,spot,NA,0.066848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784719 +GCP,europe-west2,g2-standard-48,on_demand,NA,1.431351,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790997 +GCP,europe-west2,g2-standard-48,reserved_1y,NA,1.263543,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791024 +GCP,europe-west2,g2-standard-48,reserved_3y,NA,0.902531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791038 +GCP,europe-west2,g2-standard-48,spot,NA,0.802176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791011 +GCP,europe-west2,g2-standard-8,on_demand,NA,0.238559,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785749 +GCP,europe-west2,g2-standard-8,reserved_1y,NA,0.210591,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785777 +GCP,europe-west2,g2-standard-8,reserved_3y,NA,0.150422,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785791 +GCP,europe-west2,g2-standard-8,spot,NA,0.133696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785763 +GCP,europe-west2,g2-standard-96,on_demand,NA,2.862703,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792059 +GCP,europe-west2,g2-standard-96,reserved_1y,NA,2.527086,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792087 +GCP,europe-west2,g2-standard-96,reserved_3y,NA,1.805062,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792101 +GCP,europe-west2,g2-standard-96,spot,NA,1.604352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792073 +GCP,europe-west2,n1-highcpu-16,on_demand,NA,0.730275,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690840 +GCP,europe-west2,n1-highcpu-16,spot,NA,0.15201,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690854 +GCP,europe-west2,n1-highcpu-32,on_demand,NA,1.46055,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691708 +GCP,europe-west2,n1-highcpu-32,spot,NA,0.304019,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691722 +GCP,europe-west2,n1-highcpu-64,on_demand,NA,2.921101,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692619 +GCP,europe-west2,n1-highcpu-64,spot,NA,0.608038,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692634 +GCP,europe-west2,n1-highcpu-96,on_demand,NA,4.381651,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693457 +GCP,europe-west2,n1-highcpu-96,spot,NA,0.912058,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693471 +GCP,europe-west2,n1-highmem-16,on_demand,NA,1.219312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687323 +GCP,europe-west2,n1-highmem-16,spot,NA,0.253616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687337 +GCP,europe-west2,n1-highmem-32,on_demand,NA,2.438624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688205 +GCP,europe-west2,n1-highmem-32,spot,NA,0.507232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688220 +GCP,europe-west2,n1-highmem-4,on_demand,NA,0.304828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685563 +GCP,europe-west2,n1-highmem-4,spot,NA,0.063404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685577 +GCP,europe-west2,n1-highmem-64,on_demand,NA,4.877248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689136 +GCP,europe-west2,n1-highmem-64,spot,NA,1.014464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689151 +GCP,europe-west2,n1-highmem-8,on_demand,NA,0.609656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686413 +GCP,europe-west2,n1-highmem-8,spot,NA,0.126808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686427 +GCP,europe-west2,n1-highmem-96,on_demand,NA,7.315872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689957 +GCP,europe-west2,n1-highmem-96,spot,NA,1.521696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689972 +GCP,europe-west2,n1-standard-16,on_demand,NA,0.97916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681651 +GCP,europe-west2,n1-standard-16,spot,NA,0.20372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681665 +GCP,europe-west2,n1-standard-32,on_demand,NA,1.95832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682635 +GCP,europe-west2,n1-standard-32,spot,NA,0.40744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682649 +GCP,europe-west2,n1-standard-4,on_demand,NA,0.24479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679912 +GCP,europe-west2,n1-standard-4,spot,NA,0.05093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679926 +GCP,europe-west2,n1-standard-64,on_demand,NA,3.91664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683498 +GCP,europe-west2,n1-standard-64,spot,NA,0.81488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683510 +GCP,europe-west2,n1-standard-8,on_demand,NA,0.48958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680800 +GCP,europe-west2,n1-standard-8,spot,NA,0.10186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680814 +GCP,europe-west2,n1-standard-96,on_demand,NA,5.87496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684633 +GCP,europe-west2,n1-standard-96,spot,NA,1.22232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684647 +GCP,europe-west2,n2-highcpu-16,on_demand,NA,0.660413,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711196 +GCP,europe-west2,n2-highcpu-16,reserved_1y,NA,0.465136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711223 +GCP,europe-west2,n2-highcpu-16,reserved_3y,NA,0.332224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711237 +GCP,europe-west2,n2-highcpu-16,spot,NA,0.097904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711209 +GCP,europe-west2,n2-highcpu-32,on_demand,NA,1.320826,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712302 +GCP,europe-west2,n2-highcpu-32,reserved_1y,NA,0.930272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712329 +GCP,europe-west2,n2-highcpu-32,reserved_3y,NA,0.664448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712343 +GCP,europe-west2,n2-highcpu-32,spot,NA,0.195808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712316 +GCP,europe-west2,n2-highcpu-48,on_demand,NA,1.981238,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713407 +GCP,europe-west2,n2-highcpu-48,reserved_1y,NA,1.395408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713447 +GCP,europe-west2,n2-highcpu-48,reserved_3y,NA,0.996672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713461 +GCP,europe-west2,n2-highcpu-48,spot,NA,0.293712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713429 +GCP,europe-west2,n2-highcpu-64,on_demand,NA,2.641651,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714509 +GCP,europe-west2,n2-highcpu-64,reserved_1y,NA,1.860544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714536 +GCP,europe-west2,n2-highcpu-64,reserved_3y,NA,1.328896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714550 +GCP,europe-west2,n2-highcpu-64,spot,NA,0.391616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714523 +GCP,europe-west2,n2-highcpu-80,on_demand,NA,3.302064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715601 +GCP,europe-west2,n2-highcpu-80,reserved_1y,NA,2.32568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715628 +GCP,europe-west2,n2-highcpu-80,reserved_3y,NA,1.66112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715641 +GCP,europe-west2,n2-highcpu-80,spot,NA,0.48952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715615 +GCP,europe-west2,n2-highmem-16,on_demand,NA,0.721542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705606 +GCP,europe-west2,n2-highmem-16,reserved_1y,NA,0.849856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705634 +GCP,europe-west2,n2-highmem-16,reserved_3y,NA,0.60696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705648 +GCP,europe-west2,n2-highmem-16,spot,NA,0.178432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705620 +GCP,europe-west2,n2-highmem-2,on_demand,NA,0.090193,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702265 +GCP,europe-west2,n2-highmem-2,reserved_1y,NA,0.106232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702294 +GCP,europe-west2,n2-highmem-2,reserved_3y,NA,0.07587,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702308 +GCP,europe-west2,n2-highmem-2,spot,NA,0.022304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702279 +GCP,europe-west2,n2-highmem-32,on_demand,NA,1.443085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706735 +GCP,europe-west2,n2-highmem-32,reserved_1y,NA,1.699712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706763 +GCP,europe-west2,n2-highmem-32,reserved_3y,NA,1.21392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706778 +GCP,europe-west2,n2-highmem-32,spot,NA,0.356864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706749 +GCP,europe-west2,n2-highmem-4,on_demand,NA,0.180386,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703370 +GCP,europe-west2,n2-highmem-4,reserved_1y,NA,0.212464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703398 +GCP,europe-west2,n2-highmem-4,reserved_3y,NA,0.15174,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703412 +GCP,europe-west2,n2-highmem-4,spot,NA,0.044608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703384 +GCP,europe-west2,n2-highmem-48,on_demand,NA,2.164627,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707880 +GCP,europe-west2,n2-highmem-48,reserved_1y,NA,2.549568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707907 +GCP,europe-west2,n2-highmem-48,reserved_3y,NA,1.82088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707921 +GCP,europe-west2,n2-highmem-48,spot,NA,0.535296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707893 +GCP,europe-west2,n2-highmem-64,on_demand,NA,2.88617,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708966 +GCP,europe-west2,n2-highmem-64,reserved_1y,NA,3.399424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708995 +GCP,europe-west2,n2-highmem-64,reserved_3y,NA,2.42784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709009 +GCP,europe-west2,n2-highmem-64,spot,NA,0.713728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708980 +GCP,europe-west2,n2-highmem-8,on_demand,NA,0.360771,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704519 +GCP,europe-west2,n2-highmem-8,reserved_1y,NA,0.424928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704547 +GCP,europe-west2,n2-highmem-8,reserved_3y,NA,0.30348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704560 +GCP,europe-west2,n2-highmem-8,spot,NA,0.089216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704533 +GCP,europe-west2,n2-highmem-80,on_demand,NA,3.607712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710060 +GCP,europe-west2,n2-highmem-80,reserved_1y,NA,4.24928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710089 +GCP,europe-west2,n2-highmem-80,reserved_3y,NA,3.0348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710102 +GCP,europe-west2,n2-highmem-80,spot,NA,0.89216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710074 +GCP,europe-west2,n2-standard-16,on_demand,NA,0.686611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696692 +GCP,europe-west2,n2-standard-16,reserved_1y,NA,0.630016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696719 +GCP,europe-west2,n2-standard-16,reserved_3y,NA,0.449968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696733 +GCP,europe-west2,n2-standard-16,spot,NA,0.132416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696705 +GCP,europe-west2,n2-standard-32,on_demand,NA,1.373222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697817 +GCP,europe-west2,n2-standard-32,reserved_1y,NA,1.260032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697845 +GCP,europe-west2,n2-standard-32,reserved_3y,NA,0.899936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697860 +GCP,europe-west2,n2-standard-32,spot,NA,0.264832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697831 +GCP,europe-west2,n2-standard-4,on_demand,NA,0.171653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694418 +GCP,europe-west2,n2-standard-4,reserved_1y,NA,0.157504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694446 +GCP,europe-west2,n2-standard-4,reserved_3y,NA,0.112492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694460 +GCP,europe-west2,n2-standard-4,spot,NA,0.033104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694432 +GCP,europe-west2,n2-standard-48,on_demand,NA,2.059834,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698930 +GCP,europe-west2,n2-standard-48,reserved_1y,NA,1.890048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698958 +GCP,europe-west2,n2-standard-48,reserved_3y,NA,1.349904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698983 +GCP,europe-west2,n2-standard-48,spot,NA,0.397248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698944 +GCP,europe-west2,n2-standard-64,on_demand,NA,2.746445,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700045 +GCP,europe-west2,n2-standard-64,reserved_1y,NA,2.520064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700074 +GCP,europe-west2,n2-standard-64,reserved_3y,NA,1.799872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700088 +GCP,europe-west2,n2-standard-64,spot,NA,0.529664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700060 +GCP,europe-west2,n2-standard-8,on_demand,NA,0.343306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695536 +GCP,europe-west2,n2-standard-8,reserved_1y,NA,0.315008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695563 +GCP,europe-west2,n2-standard-8,reserved_3y,NA,0.224984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695577 +GCP,europe-west2,n2-standard-8,spot,NA,0.066208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695549 +GCP,europe-west2,n2-standard-80,on_demand,NA,3.433056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701176 +GCP,europe-west2,n2-standard-80,reserved_1y,NA,3.15008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701206 +GCP,europe-west2,n2-standard-80,reserved_3y,NA,2.24984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701220 +GCP,europe-west2,n2-standard-80,spot,NA,0.66208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701192 +GCP,europe-west2,n2d-highcpu-128,on_demand,NA,4.687616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752589 +GCP,europe-west2,n2d-highcpu-128,reserved_1y,NA,3.237248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752617 +GCP,europe-west2,n2d-highcpu-128,reserved_3y,NA,2.31232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752630 +GCP,europe-west2,n2d-highcpu-128,spot,NA,1.350272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752603 +GCP,europe-west2,n2d-highcpu-16,on_demand,NA,0.585952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746283 +GCP,europe-west2,n2d-highcpu-16,reserved_1y,NA,0.404656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746310 +GCP,europe-west2,n2d-highcpu-16,reserved_3y,NA,0.28904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746325 +GCP,europe-west2,n2d-highcpu-16,spot,NA,0.168784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746296 +GCP,europe-west2,n2d-highcpu-224,on_demand,NA,8.203328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753614 +GCP,europe-west2,n2d-highcpu-224,reserved_1y,NA,5.665184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753641 +GCP,europe-west2,n2d-highcpu-224,reserved_3y,NA,4.04656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753655 +GCP,europe-west2,n2d-highcpu-224,spot,NA,2.362976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753628 +GCP,europe-west2,n2d-highcpu-32,on_demand,NA,1.171904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747318 +GCP,europe-west2,n2d-highcpu-32,reserved_1y,NA,0.809312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747348 +GCP,europe-west2,n2d-highcpu-32,reserved_3y,NA,0.57808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747362 +GCP,europe-west2,n2d-highcpu-32,spot,NA,0.337568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747333 +GCP,europe-west2,n2d-highcpu-48,on_demand,NA,1.757856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748397 +GCP,europe-west2,n2d-highcpu-48,reserved_1y,NA,1.213968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748424 +GCP,europe-west2,n2d-highcpu-48,reserved_3y,NA,0.86712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748437 +GCP,europe-west2,n2d-highcpu-48,spot,NA,0.506352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748410 +GCP,europe-west2,n2d-highcpu-64,on_demand,NA,2.343808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749437 +GCP,europe-west2,n2d-highcpu-64,reserved_1y,NA,1.618624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749465 +GCP,europe-west2,n2d-highcpu-64,reserved_3y,NA,1.15616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749479 +GCP,europe-west2,n2d-highcpu-64,spot,NA,0.675136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749451 +GCP,europe-west2,n2d-highcpu-80,on_demand,NA,2.92976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750485 +GCP,europe-west2,n2d-highcpu-80,reserved_1y,NA,2.02328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750514 +GCP,europe-west2,n2d-highcpu-80,reserved_3y,NA,1.4452,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750528 +GCP,europe-west2,n2d-highcpu-80,spot,NA,0.84392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750500 +GCP,europe-west2,n2d-highcpu-96,on_demand,NA,3.515712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751534 +GCP,europe-west2,n2d-highcpu-96,reserved_1y,NA,2.427936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751561 +GCP,europe-west2,n2d-highcpu-96,reserved_3y,NA,1.73424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751575 +GCP,europe-west2,n2d-highcpu-96,spot,NA,1.012704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751547 +GCP,europe-west2,n2d-highmem-16,on_demand,NA,0.718896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739992 +GCP,europe-west2,n2d-highmem-16,reserved_1y,NA,0.739312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740017 +GCP,europe-west2,n2d-highmem-16,reserved_3y,NA,0.528048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740030 +GCP,europe-west2,n2d-highmem-16,spot,NA,0.308672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740005 +GCP,europe-west2,n2d-highmem-2,on_demand,NA,0.089862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736787 +GCP,europe-west2,n2d-highmem-2,reserved_1y,NA,0.092414,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736814 +GCP,europe-west2,n2d-highmem-2,reserved_3y,NA,0.066006,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736827 +GCP,europe-west2,n2d-highmem-2,spot,NA,0.038584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736800 +GCP,europe-west2,n2d-highmem-32,on_demand,NA,1.437792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741032 +GCP,europe-west2,n2d-highmem-32,reserved_1y,NA,1.478624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741059 +GCP,europe-west2,n2d-highmem-32,reserved_3y,NA,1.056096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741072 +GCP,europe-west2,n2d-highmem-32,spot,NA,0.617344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741045 +GCP,europe-west2,n2d-highmem-4,on_demand,NA,0.179724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737813 +GCP,europe-west2,n2d-highmem-4,reserved_1y,NA,0.184828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737841 +GCP,europe-west2,n2d-highmem-4,reserved_3y,NA,0.132012,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737855 +GCP,europe-west2,n2d-highmem-4,spot,NA,0.077168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737828 +GCP,europe-west2,n2d-highmem-48,on_demand,NA,2.156688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742043 +GCP,europe-west2,n2d-highmem-48,reserved_1y,NA,2.217936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742133 +GCP,europe-west2,n2d-highmem-48,reserved_3y,NA,1.584144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742149 +GCP,europe-west2,n2d-highmem-48,spot,NA,0.926016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742057 +GCP,europe-west2,n2d-highmem-64,on_demand,NA,2.875584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743155 +GCP,europe-west2,n2d-highmem-64,reserved_1y,NA,2.957248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743183 +GCP,europe-west2,n2d-highmem-64,reserved_3y,NA,2.112192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743197 +GCP,europe-west2,n2d-highmem-64,spot,NA,1.234688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743170 +GCP,europe-west2,n2d-highmem-8,on_demand,NA,0.359448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738924 +GCP,europe-west2,n2d-highmem-8,reserved_1y,NA,0.369656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738953 +GCP,europe-west2,n2d-highmem-8,reserved_3y,NA,0.264024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738981 +GCP,europe-west2,n2d-highmem-8,spot,NA,0.154336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738939 +GCP,europe-west2,n2d-highmem-80,on_demand,NA,3.59448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744212 +GCP,europe-west2,n2d-highmem-80,reserved_1y,NA,3.69656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744239 +GCP,europe-west2,n2d-highmem-80,reserved_3y,NA,2.64024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744253 +GCP,europe-west2,n2d-highmem-80,spot,NA,1.54336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744226 +GCP,europe-west2,n2d-highmem-96,on_demand,NA,4.313376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745267 +GCP,europe-west2,n2d-highmem-96,reserved_1y,NA,4.435872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745294 +GCP,europe-west2,n2d-highmem-96,reserved_3y,NA,3.168288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745308 +GCP,europe-west2,n2d-highmem-96,spot,NA,1.852032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745281 +GCP,europe-west2,n2d-standard-128,on_demand,NA,5.143424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734698 +GCP,europe-west2,n2d-standard-128,reserved_1y,NA,4.38464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734726 +GCP,europe-west2,n2d-standard-128,reserved_3y,NA,3.131776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734741 +GCP,europe-west2,n2d-standard-128,spot,NA,1.829888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734712 +GCP,europe-west2,n2d-standard-16,on_demand,NA,0.642928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728381 +GCP,europe-west2,n2d-standard-16,reserved_1y,NA,0.54808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728409 +GCP,europe-west2,n2d-standard-16,reserved_3y,NA,0.391472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728423 +GCP,europe-west2,n2d-standard-16,spot,NA,0.228736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728395 +GCP,europe-west2,n2d-standard-224,on_demand,NA,9.000992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735741 +GCP,europe-west2,n2d-standard-224,reserved_1y,NA,7.67312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735769 +GCP,europe-west2,n2d-standard-224,reserved_3y,NA,5.480608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735783 +GCP,europe-west2,n2d-standard-224,spot,NA,3.202304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735755 +GCP,europe-west2,n2d-standard-32,on_demand,NA,1.285856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729417 +GCP,europe-west2,n2d-standard-32,reserved_1y,NA,1.09616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729445 +GCP,europe-west2,n2d-standard-32,reserved_3y,NA,0.782944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729459 +GCP,europe-west2,n2d-standard-32,spot,NA,0.457472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729431 +GCP,europe-west2,n2d-standard-4,on_demand,NA,0.160732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726251 +GCP,europe-west2,n2d-standard-4,reserved_1y,NA,0.13702,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726280 +GCP,europe-west2,n2d-standard-4,reserved_3y,NA,0.097868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726294 +GCP,europe-west2,n2d-standard-4,spot,NA,0.057184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726266 +GCP,europe-west2,n2d-standard-48,on_demand,NA,1.928784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730440 +GCP,europe-west2,n2d-standard-48,reserved_1y,NA,1.64424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730467 +GCP,europe-west2,n2d-standard-48,reserved_3y,NA,1.174416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730481 +GCP,europe-west2,n2d-standard-48,spot,NA,0.686208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730453 +GCP,europe-west2,n2d-standard-64,on_demand,NA,2.571712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731531 +GCP,europe-west2,n2d-standard-64,reserved_1y,NA,2.19232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731559 +GCP,europe-west2,n2d-standard-64,reserved_3y,NA,1.565888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731574 +GCP,europe-west2,n2d-standard-64,spot,NA,0.914944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731545 +GCP,europe-west2,n2d-standard-8,on_demand,NA,0.321464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727323 +GCP,europe-west2,n2d-standard-8,reserved_1y,NA,0.27404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727351 +GCP,europe-west2,n2d-standard-8,reserved_3y,NA,0.195736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727365 +GCP,europe-west2,n2d-standard-8,spot,NA,0.114368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727337 +GCP,europe-west2,n2d-standard-80,on_demand,NA,3.21464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732601 +GCP,europe-west2,n2d-standard-80,reserved_1y,NA,2.7404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732628 +GCP,europe-west2,n2d-standard-80,reserved_3y,NA,1.95736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732641 +GCP,europe-west2,n2d-standard-80,spot,NA,1.14368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732615 +GCP,europe-west2,n2d-standard-96,on_demand,NA,3.857568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733626 +GCP,europe-west2,n2d-standard-96,reserved_1y,NA,3.28848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733654 +GCP,europe-west2,n2d-standard-96,reserved_3y,NA,2.348832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733668 +GCP,europe-west2,n2d-standard-96,spot,NA,1.372416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733640 +GCP,europe-west2,n4-standard-16,on_demand,NA,0.827184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757772 +GCP,europe-west2,n4-standard-16,reserved_1y,NA,0.521117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757800 +GCP,europe-west2,n4-standard-16,reserved_3y,NA,0.372242,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757814 +GCP,europe-west2,n4-standard-16,spot,NA,0.230688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757786 +GCP,europe-west2,n4-standard-2,on_demand,NA,0.103398,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754646 +GCP,europe-west2,n4-standard-2,reserved_1y,NA,0.06514,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754674 +GCP,europe-west2,n4-standard-2,reserved_3y,NA,0.04653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754688 +GCP,europe-west2,n4-standard-2,spot,NA,0.028836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754660 +GCP,europe-west2,n4-standard-32,on_demand,NA,1.654368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758812 +GCP,europe-west2,n4-standard-32,reserved_1y,NA,1.042234,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758840 +GCP,europe-west2,n4-standard-32,reserved_3y,NA,0.744484,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758854 +GCP,europe-west2,n4-standard-32,spot,NA,0.461376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758826 +GCP,europe-west2,n4-standard-4,on_demand,NA,0.206796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755694 +GCP,europe-west2,n4-standard-4,reserved_1y,NA,0.130279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755722 +GCP,europe-west2,n4-standard-4,reserved_3y,NA,0.09306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755736 +GCP,europe-west2,n4-standard-4,spot,NA,0.057672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755708 +GCP,europe-west2,n4-standard-8,on_demand,NA,0.413592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756737 +GCP,europe-west2,n4-standard-8,reserved_1y,NA,0.260558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756765 +GCP,europe-west2,n4-standard-8,reserved_3y,NA,0.186121,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756779 +GCP,europe-west2,n4-standard-8,spot,NA,0.115344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756751 +GCP,europe-west3,a2-highgpu-1g,on_demand,NA,0.95269,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770653 +GCP,europe-west3,a2-highgpu-1g,reserved_1y,NA,0.600159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770681 +GCP,europe-west3,a2-highgpu-1g,reserved_3y,NA,0.333475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770695 +GCP,europe-west3,a2-highgpu-1g,spot,NA,0.204763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770667 +GCP,europe-west3,a2-highgpu-2g,on_demand,NA,1.90538,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771686 +GCP,europe-west3,a2-highgpu-2g,reserved_1y,NA,1.200317,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771713 +GCP,europe-west3,a2-highgpu-2g,reserved_3y,NA,0.666951,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771727 +GCP,europe-west3,a2-highgpu-2g,spot,NA,0.409527,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771700 +GCP,europe-west3,a2-highgpu-4g,on_demand,NA,3.81076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772829 +GCP,europe-west3,a2-highgpu-4g,reserved_1y,NA,2.400634,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772859 +GCP,europe-west3,a2-highgpu-4g,reserved_3y,NA,1.333902,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772874 +GCP,europe-west3,a2-highgpu-4g,spot,NA,0.819054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772844 +GCP,europe-west3,a2-highgpu-8g,on_demand,NA,7.62152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773936 +GCP,europe-west3,a2-highgpu-8g,reserved_1y,NA,4.801268,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773963 +GCP,europe-west3,a2-highgpu-8g,reserved_3y,NA,2.667803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773977 +GCP,europe-west3,a2-highgpu-8g,spot,NA,1.638108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773950 +GCP,europe-west3,a2-megagpu-16g,on_demand,NA,11.33296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775069 +GCP,europe-west3,a2-megagpu-16g,reserved_1y,NA,7.139176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775096 +GCP,europe-west3,a2-megagpu-16g,reserved_3y,NA,3.967071,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775110 +GCP,europe-west3,a2-megagpu-16g,spot,NA,2.502456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775083 +GCP,europe-west3,a2-ultragpu-1g,on_demand,NA,1.41662,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776165 +GCP,europe-west3,a2-ultragpu-1g,reserved_1y,NA,0.892397,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776193 +GCP,europe-west3,a2-ultragpu-1g,reserved_3y,NA,0.495884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776207 +GCP,europe-west3,a2-ultragpu-1g,spot,NA,0.312807,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776179 +GCP,europe-west3,a2-ultragpu-2g,on_demand,NA,2.83324,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777264 +GCP,europe-west3,a2-ultragpu-2g,reserved_1y,NA,1.784794,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777293 +GCP,europe-west3,a2-ultragpu-2g,reserved_3y,NA,0.991768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777308 +GCP,europe-west3,a2-ultragpu-2g,spot,NA,0.625614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777279 +GCP,europe-west3,a2-ultragpu-4g,on_demand,NA,5.66648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778325 +GCP,europe-west3,a2-ultragpu-4g,reserved_1y,NA,3.569588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778353 +GCP,europe-west3,a2-ultragpu-4g,reserved_3y,NA,1.983536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778367 +GCP,europe-west3,a2-ultragpu-4g,spot,NA,1.251228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778339 +GCP,europe-west3,a2-ultragpu-8g,on_demand,NA,11.33296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779377 +GCP,europe-west3,a2-ultragpu-8g,reserved_1y,NA,7.139176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779405 +GCP,europe-west3,a2-ultragpu-8g,reserved_3y,NA,3.967071,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779419 +GCP,europe-west3,a2-ultragpu-8g,spot,NA,2.502456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779391 +GCP,europe-west3,a3-highgpu-1g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780484 +GCP,europe-west3,a3-highgpu-1g,reserved_1y,NA,0.970396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780513 +GCP,europe-west3,a3-highgpu-1g,reserved_3y,NA,0.614972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780527 +GCP,europe-west3,a3-highgpu-1g,spot,NA,0.251368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780498 +GCP,europe-west3,a3-highgpu-2g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781535 +GCP,europe-west3,a3-highgpu-2g,reserved_1y,NA,0.970396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781563 +GCP,europe-west3,a3-highgpu-2g,reserved_3y,NA,0.614972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781577 +GCP,europe-west3,a3-highgpu-2g,spot,NA,0.251368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781549 +GCP,europe-west3,a3-highgpu-4g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782620 +GCP,europe-west3,a3-highgpu-4g,reserved_1y,NA,0.970396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782648 +GCP,europe-west3,a3-highgpu-4g,reserved_3y,NA,0.614972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782662 +GCP,europe-west3,a3-highgpu-4g,spot,NA,0.251368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782634 +GCP,europe-west3,a3-highgpu-8g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783701 +GCP,europe-west3,a3-highgpu-8g,reserved_1y,NA,0.970396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783730 +GCP,europe-west3,a3-highgpu-8g,reserved_3y,NA,0.614972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783743 +GCP,europe-west3,a3-highgpu-8g,spot,NA,0.251368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783716 +GCP,europe-west3,c2-standard-16,on_demand,NA,0.935808,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721498 +GCP,europe-west3,c2-standard-16,reserved_1y,NA,0.589568,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721544 +GCP,europe-west3,c2-standard-16,reserved_3y,NA,0.42112,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721567 +GCP,europe-west3,c2-standard-16,spot,NA,0.248192,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721521 +GCP,europe-west3,c2-standard-30,on_demand,NA,1.75464,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723179 +GCP,europe-west3,c2-standard-30,reserved_1y,NA,1.10544,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723225 +GCP,europe-west3,c2-standard-30,reserved_3y,NA,0.7896,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723248 +GCP,europe-west3,c2-standard-30,spot,NA,0.46536,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723202 +GCP,europe-west3,c2-standard-4,on_demand,NA,0.233952,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717899 +GCP,europe-west3,c2-standard-4,reserved_1y,NA,0.147392,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717947 +GCP,europe-west3,c2-standard-4,reserved_3y,NA,0.10528,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717970 +GCP,europe-west3,c2-standard-4,spot,NA,0.062048,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717923 +GCP,europe-west3,c2-standard-60,on_demand,NA,3.50928,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724916 +GCP,europe-west3,c2-standard-60,reserved_1y,NA,2.21088,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724962 +GCP,europe-west3,c2-standard-60,reserved_3y,NA,1.5792,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724985 +GCP,europe-west3,c2-standard-60,spot,NA,0.93072,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724939 +GCP,europe-west3,c2-standard-8,on_demand,NA,0.467904,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719761 +GCP,europe-west3,c2-standard-8,reserved_1y,NA,0.294784,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719808 +GCP,europe-west3,c2-standard-8,reserved_3y,NA,0.21056,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719832 +GCP,europe-west3,c2-standard-8,spot,NA,0.124096,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719785 +GCP,europe-west3,c3-highmem-22,on_demand,NA,0.907795,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800631 +GCP,europe-west3,c3-highmem-22,reserved_1y,NA,1.081961,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800657 +GCP,europe-west3,c3-highmem-22,reserved_3y,NA,0.772803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800670 +GCP,europe-west3,c3-highmem-22,spot,NA,0.491392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800644 +GCP,europe-west3,c3-highmem-4,on_demand,NA,0.165054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798545 +GCP,europe-west3,c3-highmem-4,reserved_1y,NA,0.19672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798572 +GCP,europe-west3,c3-highmem-4,reserved_3y,NA,0.14051,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798586 +GCP,europe-west3,c3-highmem-4,spot,NA,0.089344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798558 +GCP,europe-west3,c3-highmem-44,on_demand,NA,1.81559,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801642 +GCP,europe-west3,c3-highmem-44,reserved_1y,NA,2.163922,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801669 +GCP,europe-west3,c3-highmem-44,reserved_3y,NA,1.545606,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801682 +GCP,europe-west3,c3-highmem-44,spot,NA,0.982784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801655 +GCP,europe-west3,c3-highmem-8,on_demand,NA,0.330107,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799601 +GCP,europe-west3,c3-highmem-8,reserved_1y,NA,0.39344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799631 +GCP,europe-west3,c3-highmem-8,reserved_3y,NA,0.281019,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799645 +GCP,europe-west3,c3-highmem-8,spot,NA,0.178688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799615 +GCP,europe-west3,c3-highmem-88,on_demand,NA,3.631181,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802667 +GCP,europe-west3,c3-highmem-88,reserved_1y,NA,4.327844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802694 +GCP,europe-west3,c3-highmem-88,reserved_3y,NA,3.091213,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802707 +GCP,europe-west3,c3-highmem-88,spot,NA,1.965568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802680 +GCP,europe-west3,c3-standard-22 (-lssd),on_demand,NA,0.498873,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795330 +GCP,europe-west3,c3-standard-22 (-lssd),reserved_1y,NA,0.824334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795358 +GCP,europe-west3,c3-standard-22 (-lssd),reserved_3y,NA,0.588799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795372 +GCP,europe-west3,c3-standard-22 (-lssd),spot,NA,0.362296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795344 +GCP,europe-west3,c3-standard-4 (-lssd),on_demand,NA,0.090704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793218 +GCP,europe-west3,c3-standard-4 (-lssd),reserved_1y,NA,0.149879,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793246 +GCP,europe-west3,c3-standard-4 (-lssd),reserved_3y,NA,0.107054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793260 +GCP,europe-west3,c3-standard-4 (-lssd),spot,NA,0.065872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793232 +GCP,europe-west3,c3-standard-44 (-lssd),on_demand,NA,0.997747,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796438 +GCP,europe-west3,c3-standard-44 (-lssd),reserved_1y,NA,1.648668,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796468 +GCP,europe-west3,c3-standard-44 (-lssd),reserved_3y,NA,1.177598,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796481 +GCP,europe-west3,c3-standard-44 (-lssd),spot,NA,0.724592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796452 +GCP,europe-west3,c3-standard-8 (-lssd),on_demand,NA,0.181408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794274 +GCP,europe-west3,c3-standard-8 (-lssd),reserved_1y,NA,0.299758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794301 +GCP,europe-west3,c3-standard-8 (-lssd),reserved_3y,NA,0.214109,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794315 +GCP,europe-west3,c3-standard-8 (-lssd),spot,NA,0.131744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794288 +GCP,europe-west3,c3-standard-88 (-lssd),on_demand,NA,1.995493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797493 +GCP,europe-west3,c3-standard-88 (-lssd),reserved_1y,NA,3.297335,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797521 +GCP,europe-west3,c3-standard-88 (-lssd),reserved_3y,NA,2.355195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797535 +GCP,europe-west3,c3-standard-88 (-lssd),spot,NA,1.449184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797507 +GCP,europe-west3,c3d-highmem-16 (-lssd),on_demand,NA,1.156117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814267 +GCP,europe-west3,c3d-highmem-16 (-lssd),reserved_1y,NA,0.728315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814296 +GCP,europe-west3,c3d-highmem-16 (-lssd),reserved_3y,NA,0.520163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814310 +GCP,europe-west3,c3d-highmem-16 (-lssd),spot,NA,0.462304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814281 +GCP,europe-west3,c3d-highmem-180 (-lssd),on_demand,NA,13.006314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818610 +GCP,europe-west3,c3d-highmem-180 (-lssd),reserved_1y,NA,8.193542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818637 +GCP,europe-west3,c3d-highmem-180 (-lssd),reserved_3y,NA,5.851832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818651 +GCP,europe-west3,c3d-highmem-180 (-lssd),spot,NA,5.20092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818623 +GCP,europe-west3,c3d-highmem-30 (-lssd),on_demand,NA,2.167719,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815486 +GCP,europe-west3,c3d-highmem-30 (-lssd),reserved_1y,NA,1.36559,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815514 +GCP,europe-west3,c3d-highmem-30 (-lssd),reserved_3y,NA,0.975305,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815528 +GCP,europe-west3,c3d-highmem-30 (-lssd),spot,NA,0.86682,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815500 +GCP,europe-west3,c3d-highmem-360 (-lssd),on_demand,NA,26.012628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819639 +GCP,europe-west3,c3d-highmem-360 (-lssd),reserved_1y,NA,16.387085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819666 +GCP,europe-west3,c3d-highmem-360 (-lssd),reserved_3y,NA,11.703665,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819680 +GCP,europe-west3,c3d-highmem-360 (-lssd),spot,NA,10.40184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819652 +GCP,europe-west3,c3d-highmem-4 (-lssd),on_demand,NA,0.289029,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812173 +GCP,europe-west3,c3d-highmem-4 (-lssd),reserved_1y,NA,0.182079,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812200 +GCP,europe-west3,c3d-highmem-4 (-lssd),reserved_3y,NA,0.130041,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812214 +GCP,europe-west3,c3d-highmem-4 (-lssd),spot,NA,0.115576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812186 +GCP,europe-west3,c3d-highmem-60 (-lssd),on_demand,NA,4.335438,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816543 +GCP,europe-west3,c3d-highmem-60 (-lssd),reserved_1y,NA,2.731181,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816571 +GCP,europe-west3,c3d-highmem-60 (-lssd),reserved_3y,NA,1.950611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816585 +GCP,europe-west3,c3d-highmem-60 (-lssd),spot,NA,1.73364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816557 +GCP,europe-west3,c3d-highmem-8 (-lssd),on_demand,NA,0.578058,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813215 +GCP,europe-west3,c3d-highmem-8 (-lssd),reserved_1y,NA,0.364157,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813243 +GCP,europe-west3,c3d-highmem-8 (-lssd),reserved_3y,NA,0.260081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813257 +GCP,europe-west3,c3d-highmem-8 (-lssd),spot,NA,0.231152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813229 +GCP,europe-west3,c3d-highmem-90 (-lssd),on_demand,NA,6.503157,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817579 +GCP,europe-west3,c3d-highmem-90 (-lssd),reserved_1y,NA,4.096771,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817606 +GCP,europe-west3,c3d-highmem-90 (-lssd),reserved_3y,NA,2.925916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817620 +GCP,europe-west3,c3d-highmem-90 (-lssd),spot,NA,2.60046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817592 +GCP,europe-west3,c3d-standard-16 (-lssd),on_demand,NA,0.857133,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805798 +GCP,europe-west3,c3d-standard-16 (-lssd),reserved_1y,NA,0.539968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805827 +GCP,europe-west3,c3d-standard-16 (-lssd),reserved_3y,NA,0.385662,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805841 +GCP,europe-west3,c3d-standard-16 (-lssd),spot,NA,0.342752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805812 +GCP,europe-west3,c3d-standard-180 (-lssd),on_demand,NA,9.642748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810055 +GCP,europe-west3,c3d-standard-180 (-lssd),reserved_1y,NA,6.07464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810083 +GCP,europe-west3,c3d-standard-180 (-lssd),reserved_3y,NA,4.338695,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810096 +GCP,europe-west3,c3d-standard-180 (-lssd),spot,NA,3.85596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810068 +GCP,europe-west3,c3d-standard-30 (-lssd),on_demand,NA,1.607125,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806862 +GCP,europe-west3,c3d-standard-30 (-lssd),reserved_1y,NA,1.01244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806891 +GCP,europe-west3,c3d-standard-30 (-lssd),reserved_3y,NA,0.723116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806905 +GCP,europe-west3,c3d-standard-30 (-lssd),spot,NA,0.64266,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806878 +GCP,europe-west3,c3d-standard-360 (-lssd),on_demand,NA,19.285495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811111 +GCP,europe-west3,c3d-standard-360 (-lssd),reserved_1y,NA,12.14928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811139 +GCP,europe-west3,c3d-standard-360 (-lssd),reserved_3y,NA,8.67739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811153 +GCP,europe-west3,c3d-standard-360 (-lssd),spot,NA,7.71192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811125 +GCP,europe-west3,c3d-standard-4 (-lssd),on_demand,NA,0.214283,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803724 +GCP,europe-west3,c3d-standard-4 (-lssd),reserved_1y,NA,0.134992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803757 +GCP,europe-west3,c3d-standard-4 (-lssd),reserved_3y,NA,0.096415,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803770 +GCP,europe-west3,c3d-standard-4 (-lssd),spot,NA,0.085688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803740 +GCP,europe-west3,c3d-standard-60 (-lssd),on_demand,NA,3.214249,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807941 +GCP,europe-west3,c3d-standard-60 (-lssd),reserved_1y,NA,2.02488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807969 +GCP,europe-west3,c3d-standard-60 (-lssd),reserved_3y,NA,1.446232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807983 +GCP,europe-west3,c3d-standard-60 (-lssd),spot,NA,1.28532,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807955 +GCP,europe-west3,c3d-standard-8 (-lssd),on_demand,NA,0.428567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804779 +GCP,europe-west3,c3d-standard-8 (-lssd),reserved_1y,NA,0.269984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804805 +GCP,europe-west3,c3d-standard-8 (-lssd),reserved_3y,NA,0.192831,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804818 +GCP,europe-west3,c3d-standard-8 (-lssd),spot,NA,0.171376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804792 +GCP,europe-west3,c3d-standard-90 (-lssd),on_demand,NA,4.821374,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808996 +GCP,europe-west3,c3d-standard-90 (-lssd),reserved_1y,NA,3.03732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809024 +GCP,europe-west3,c3d-standard-90 (-lssd),reserved_3y,NA,2.169347,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809040 +GCP,europe-west3,c3d-standard-90 (-lssd),spot,NA,1.92798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809010 +GCP,europe-west3,c4-standard-16,on_demand,NA,0.682073,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841035 +GCP,europe-west3,c4-standard-16,reserved_1y,NA,0.587805,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841062 +GCP,europe-west3,c4-standard-16,reserved_3y,NA,0.419853,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841076 +GCP,europe-west3,c4-standard-16,spot,NA,0.3733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841049 +GCP,europe-west3,c4-standard-2,on_demand,NA,0.085027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837699 +GCP,europe-west3,c4-standard-2,reserved_1y,NA,0.072012,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837726 +GCP,europe-west3,c4-standard-2,reserved_3y,NA,0.051436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837740 +GCP,europe-west3,c4-standard-2,spot,NA,0.045733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837713 +GCP,europe-west3,c4-standard-24,on_demand,NA,1.02311,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842062 +GCP,europe-west3,c4-standard-24,reserved_1y,NA,0.881708,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842090 +GCP,europe-west3,c4-standard-24,reserved_3y,NA,0.62978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842105 +GCP,europe-west3,c4-standard-24,spot,NA,0.55995,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842076 +GCP,europe-west3,c4-standard-32,on_demand,NA,1.364146,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843274 +GCP,europe-west3,c4-standard-32,reserved_1y,NA,1.17561,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843303 +GCP,europe-west3,c4-standard-32,reserved_3y,NA,0.839707,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843318 +GCP,europe-west3,c4-standard-32,spot,NA,0.7466,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843289 +GCP,europe-west3,c4-standard-4,on_demand,NA,0.170518,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838803 +GCP,europe-west3,c4-standard-4,reserved_1y,NA,0.146951,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838831 +GCP,europe-west3,c4-standard-4,reserved_3y,NA,0.104963,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838844 +GCP,europe-west3,c4-standard-4,spot,NA,0.093325,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838817 +GCP,europe-west3,c4-standard-8,on_demand,NA,0.341037,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839826 +GCP,europe-west3,c4-standard-8,reserved_1y,NA,0.293903,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839854 +GCP,europe-west3,c4-standard-8,reserved_3y,NA,0.209927,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839964 +GCP,europe-west3,c4-standard-8,spot,NA,0.18665,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839840 +GCP,europe-west3,c4a-highmem-16 (-lssd),on_demand,NA,0.588515,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831698 +GCP,europe-west3,c4a-highmem-16 (-lssd),reserved_1y,NA,0.73352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831726 +GCP,europe-west3,c4a-highmem-16 (-lssd),reserved_3y,NA,0.500832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831740 +GCP,europe-west3,c4a-highmem-16 (-lssd),spot,NA,0.366624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831712 +GCP,europe-west3,c4a-highmem-32 (-lssd),on_demand,NA,1.17703,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832945 +GCP,europe-west3,c4a-highmem-32 (-lssd),reserved_1y,NA,1.46704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832972 +GCP,europe-west3,c4a-highmem-32 (-lssd),reserved_3y,NA,1.001664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832985 +GCP,europe-west3,c4a-highmem-32 (-lssd),spot,NA,0.733248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832958 +GCP,europe-west3,c4a-highmem-4 (-lssd),on_demand,NA,0.147129,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829268 +GCP,europe-west3,c4a-highmem-4 (-lssd),reserved_1y,NA,0.18338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829294 +GCP,europe-west3,c4a-highmem-4 (-lssd),reserved_3y,NA,0.125208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829308 +GCP,europe-west3,c4a-highmem-4 (-lssd),spot,NA,0.091656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829281 +GCP,europe-west3,c4a-highmem-48 (-lssd),on_demand,NA,1.765546,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834169 +GCP,europe-west3,c4a-highmem-48 (-lssd),reserved_1y,NA,2.20056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834197 +GCP,europe-west3,c4a-highmem-48 (-lssd),reserved_3y,NA,1.502496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834212 +GCP,europe-west3,c4a-highmem-48 (-lssd),spot,NA,1.099872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834183 +GCP,europe-west3,c4a-highmem-64 (-lssd),on_demand,NA,2.354061,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835338 +GCP,europe-west3,c4a-highmem-64 (-lssd),reserved_1y,NA,2.93408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835364 +GCP,europe-west3,c4a-highmem-64 (-lssd),reserved_3y,NA,2.003328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835377 +GCP,europe-west3,c4a-highmem-64 (-lssd),spot,NA,1.466496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835351 +GCP,europe-west3,c4a-highmem-72 (-lssd),on_demand,NA,2.648318,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836519 +GCP,europe-west3,c4a-highmem-72 (-lssd),reserved_1y,NA,3.30084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836545 +GCP,europe-west3,c4a-highmem-72 (-lssd),reserved_3y,NA,2.253744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836557 +GCP,europe-west3,c4a-highmem-72 (-lssd),spot,NA,1.649808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836532 +GCP,europe-west3,c4a-highmem-8 (-lssd),on_demand,NA,0.294258,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830495 +GCP,europe-west3,c4a-highmem-8 (-lssd),reserved_1y,NA,0.36676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830521 +GCP,europe-west3,c4a-highmem-8 (-lssd),reserved_3y,NA,0.250416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830534 +GCP,europe-west3,c4a-highmem-8 (-lssd),spot,NA,0.183312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830509 +GCP,europe-west3,c4a-standard-16 (-lssd),on_demand,NA,0.323427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823168 +GCP,europe-west3,c4a-standard-16 (-lssd),reserved_1y,NA,0.559056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823197 +GCP,europe-west3,c4a-standard-16 (-lssd),reserved_3y,NA,0.381536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823211 +GCP,europe-west3,c4a-standard-16 (-lssd),spot,NA,0.279392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823183 +GCP,europe-west3,c4a-standard-32 (-lssd),on_demand,NA,0.646854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824421 +GCP,europe-west3,c4a-standard-32 (-lssd),reserved_1y,NA,1.118112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824449 +GCP,europe-west3,c4a-standard-32 (-lssd),reserved_3y,NA,0.763072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824463 +GCP,europe-west3,c4a-standard-32 (-lssd),spot,NA,0.558784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824435 +GCP,europe-west3,c4a-standard-4 (-lssd),on_demand,NA,0.080857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820707 +GCP,europe-west3,c4a-standard-4 (-lssd),reserved_1y,NA,0.139764,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820735 +GCP,europe-west3,c4a-standard-4 (-lssd),reserved_3y,NA,0.095384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820749 +GCP,europe-west3,c4a-standard-4 (-lssd),spot,NA,0.069848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820721 +GCP,europe-west3,c4a-standard-48 (-lssd),on_demand,NA,0.970282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825642 +GCP,europe-west3,c4a-standard-48 (-lssd),reserved_1y,NA,1.677168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825670 +GCP,europe-west3,c4a-standard-48 (-lssd),reserved_3y,NA,1.144608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825684 +GCP,europe-west3,c4a-standard-48 (-lssd),spot,NA,0.838176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825656 +GCP,europe-west3,c4a-standard-64 (-lssd),on_demand,NA,1.293709,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826860 +GCP,europe-west3,c4a-standard-64 (-lssd),reserved_1y,NA,2.236224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826888 +GCP,europe-west3,c4a-standard-64 (-lssd),reserved_3y,NA,1.526144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826902 +GCP,europe-west3,c4a-standard-64 (-lssd),spot,NA,1.117568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826875 +GCP,europe-west3,c4a-standard-72 (-lssd),on_demand,NA,1.455422,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828075 +GCP,europe-west3,c4a-standard-72 (-lssd),reserved_1y,NA,2.515752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828102 +GCP,europe-west3,c4a-standard-72 (-lssd),reserved_3y,NA,1.716912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828116 +GCP,europe-west3,c4a-standard-72 (-lssd),spot,NA,1.257264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828089 +GCP,europe-west3,c4a-standard-8 (-lssd),on_demand,NA,0.161714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821941 +GCP,europe-west3,c4a-standard-8 (-lssd),reserved_1y,NA,0.279528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821969 +GCP,europe-west3,c4a-standard-8 (-lssd),reserved_3y,NA,0.190768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821983 +GCP,europe-west3,c4a-standard-8 (-lssd),spot,NA,0.139696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821955 +GCP,europe-west3,c4d-standard-16,on_demand,NA,0.873178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848332 +GCP,europe-west3,c4d-standard-16,reserved_1y,NA,0.550104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848360 +GCP,europe-west3,c4d-standard-16,reserved_3y,NA,0.39293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848374 +GCP,europe-west3,c4d-standard-16,spot,NA,0.295672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848346 +GCP,europe-west3,c4d-standard-2,on_demand,NA,0.106054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844437 +GCP,europe-west3,c4d-standard-2,reserved_1y,NA,0.066814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844465 +GCP,europe-west3,c4d-standard-2,reserved_3y,NA,0.047724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844479 +GCP,europe-west3,c4d-standard-2,spot,NA,0.035912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844451 +GCP,europe-west3,c4d-standard-32,on_demand,NA,1.746356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849632 +GCP,europe-west3,c4d-standard-32,reserved_1y,NA,1.100208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849659 +GCP,europe-west3,c4d-standard-32,reserved_3y,NA,0.78586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849704 +GCP,europe-west3,c4d-standard-32,spot,NA,0.591344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849646 +GCP,europe-west3,c4d-standard-4,on_demand,NA,0.216232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845729 +GCP,europe-west3,c4d-standard-4,reserved_1y,NA,0.136227,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845757 +GCP,europe-west3,c4d-standard-4,reserved_3y,NA,0.097304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845770 +GCP,europe-west3,c4d-standard-4,spot,NA,0.07322,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845743 +GCP,europe-west3,c4d-standard-8,on_demand,NA,0.436589,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847025 +GCP,europe-west3,c4d-standard-8,reserved_1y,NA,0.275052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847051 +GCP,europe-west3,c4d-standard-8,reserved_3y,NA,0.196465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847064 +GCP,europe-west3,c4d-standard-8,spot,NA,0.147836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847038 +GCP,europe-west3,e2_highcpu_16,on_demand,NA,0.509916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764213 +GCP,europe-west3,e2_highcpu_16,reserved_1y,NA,0.321247,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764242 +GCP,europe-west3,e2_highcpu_16,reserved_3y,NA,0.229462,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764256 +GCP,europe-west3,e2_highcpu_16,spot,NA,0.20392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764227 +GCP,europe-west3,e2_highcpu_32,on_demand,NA,1.019831,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765245 +GCP,europe-west3,e2_highcpu_32,reserved_1y,NA,0.642494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765273 +GCP,europe-west3,e2_highcpu_32,reserved_3y,NA,0.458924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765288 +GCP,europe-west3,e2_highcpu_32,spot,NA,0.40784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765259 +GCP,europe-west3,e2_highmem_16,on_demand,NA,0.93171,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763106 +GCP,europe-west3,e2_highmem_16,reserved_1y,NA,0.586977,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763133 +GCP,europe-west3,e2_highmem_16,reserved_3y,NA,0.419269,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763147 +GCP,europe-west3,e2_highmem_16,spot,NA,0.37248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763120 +GCP,europe-west3,e2_highmem_2,on_demand,NA,0.116464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759990 +GCP,europe-west3,e2_highmem_2,reserved_1y,NA,0.073372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760018 +GCP,europe-west3,e2_highmem_2,reserved_3y,NA,0.052409,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760033 +GCP,europe-west3,e2_highmem_2,spot,NA,0.04656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760004 +GCP,europe-west3,e2_highmem_4,on_demand,NA,0.232927,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761033 +GCP,europe-west3,e2_highmem_4,reserved_1y,NA,0.146744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761060 +GCP,europe-west3,e2_highmem_4,reserved_3y,NA,0.104817,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761074 +GCP,europe-west3,e2_highmem_4,spot,NA,0.09312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761046 +GCP,europe-west3,e2_highmem_8,on_demand,NA,0.465855,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762055 +GCP,europe-west3,e2_highmem_8,reserved_1y,NA,0.293489,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762083 +GCP,europe-west3,e2_highmem_8,reserved_3y,NA,0.209635,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762097 +GCP,europe-west3,e2_highmem_8,spot,NA,0.18624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762069 +GCP,europe-west3,e2_standard_16,on_demand,NA,0.690684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768542 +GCP,europe-west3,e2_standard_16,reserved_1y,NA,0.435131,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768571 +GCP,europe-west3,e2_standard_16,reserved_3y,NA,0.310808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768585 +GCP,europe-west3,e2_standard_16,spot,NA,0.27616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768556 +GCP,europe-west3,e2_standard_32,on_demand,NA,1.381369,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769630 +GCP,europe-west3,e2_standard_32,reserved_1y,NA,0.870262,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769658 +GCP,europe-west3,e2_standard_32,reserved_3y,NA,0.621616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769672 +GCP,europe-west3,e2_standard_32,spot,NA,0.55232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769644 +GCP,europe-west3,e2_standard_4,on_demand,NA,0.172671,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766461 +GCP,europe-west3,e2_standard_4,reserved_1y,NA,0.108783,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766488 +GCP,europe-west3,e2_standard_4,reserved_3y,NA,0.077702,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766503 +GCP,europe-west3,e2_standard_4,spot,NA,0.06904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766475 +GCP,europe-west3,e2_standard_8,on_demand,NA,0.345342,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767511 +GCP,europe-west3,e2_standard_8,reserved_1y,NA,0.217566,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767539 +GCP,europe-west3,e2_standard_8,reserved_3y,NA,0.155404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767553 +GCP,europe-west3,e2_standard_8,spot,NA,0.13808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767525 +GCP,europe-west3,g2-standard-12,on_demand,NA,0.519644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786836 +GCP,europe-west3,g2-standard-12,reserved_1y,NA,0.326969,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786862 +GCP,europe-west3,g2-standard-12,reserved_3y,NA,0.23355,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786876 +GCP,europe-west3,g2-standard-12,spot,NA,0.207552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786849 +GCP,europe-west3,g2-standard-16,on_demand,NA,0.692858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787914 +GCP,europe-west3,g2-standard-16,reserved_1y,NA,0.435959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787942 +GCP,europe-west3,g2-standard-16,reserved_3y,NA,0.3114,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787956 +GCP,europe-west3,g2-standard-16,spot,NA,0.276736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787928 +GCP,europe-west3,g2-standard-24,on_demand,NA,1.039288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788968 +GCP,europe-west3,g2-standard-24,reserved_1y,NA,0.653939,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788995 +GCP,europe-west3,g2-standard-24,reserved_3y,NA,0.467099,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789009 +GCP,europe-west3,g2-standard-24,spot,NA,0.415104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788982 +GCP,europe-west3,g2-standard-32,on_demand,NA,1.385717,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789999 +GCP,europe-west3,g2-standard-32,reserved_1y,NA,0.871919,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790026 +GCP,europe-west3,g2-standard-32,reserved_3y,NA,0.622799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790040 +GCP,europe-west3,g2-standard-32,spot,NA,0.553472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790012 +GCP,europe-west3,g2-standard-4,on_demand,NA,0.173215,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784762 +GCP,europe-west3,g2-standard-4,reserved_1y,NA,0.10899,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784790 +GCP,europe-west3,g2-standard-4,reserved_3y,NA,0.07785,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784805 +GCP,europe-west3,g2-standard-4,spot,NA,0.069184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784776 +GCP,europe-west3,g2-standard-48,on_demand,NA,2.078575,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791053 +GCP,europe-west3,g2-standard-48,reserved_1y,NA,1.307878,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791081 +GCP,europe-west3,g2-standard-48,reserved_3y,NA,0.934199,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791095 +GCP,europe-west3,g2-standard-48,spot,NA,0.830208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791067 +GCP,europe-west3,g2-standard-8,on_demand,NA,0.346429,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785806 +GCP,europe-west3,g2-standard-8,reserved_1y,NA,0.21798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785834 +GCP,europe-west3,g2-standard-8,reserved_3y,NA,0.1557,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785847 +GCP,europe-west3,g2-standard-8,spot,NA,0.138368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785820 +GCP,europe-west3,g2-standard-96,on_demand,NA,4.15715,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792116 +GCP,europe-west3,g2-standard-96,reserved_1y,NA,2.615756,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792183 +GCP,europe-west3,g2-standard-96,reserved_3y,NA,1.868398,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792203 +GCP,europe-west3,g2-standard-96,spot,NA,1.660416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792130 +GCP,europe-west3,n1-highcpu-16,on_demand,NA,0.730275,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690883 +GCP,europe-west3,n1-highcpu-16,spot,NA,0.167483,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690896 +GCP,europe-west3,n1-highcpu-32,on_demand,NA,1.46055,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691749 +GCP,europe-west3,n1-highcpu-32,spot,NA,0.334966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691762 +GCP,europe-west3,n1-highcpu-64,on_demand,NA,2.921101,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692662 +GCP,europe-west3,n1-highcpu-64,spot,NA,0.669933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692676 +GCP,europe-west3,n1-highcpu-96,on_demand,NA,4.381651,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693500 +GCP,europe-west3,n1-highcpu-96,spot,NA,1.004899,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693514 +GCP,europe-west3,n1-highmem-16,on_demand,NA,1.219312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687365 +GCP,europe-west3,n1-highmem-16,spot,NA,0.279752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687379 +GCP,europe-west3,n1-highmem-32,on_demand,NA,2.438624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688249 +GCP,europe-west3,n1-highmem-32,spot,NA,0.559504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688263 +GCP,europe-west3,n1-highmem-4,on_demand,NA,0.304828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685605 +GCP,europe-west3,n1-highmem-4,spot,NA,0.069938,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685618 +GCP,europe-west3,n1-highmem-64,on_demand,NA,4.877248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689180 +GCP,europe-west3,n1-highmem-64,spot,NA,1.119008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689194 +GCP,europe-west3,n1-highmem-8,on_demand,NA,0.609656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686456 +GCP,europe-west3,n1-highmem-8,spot,NA,0.139876,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686471 +GCP,europe-west3,n1-highmem-96,on_demand,NA,7.315872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690001 +GCP,europe-west3,n1-highmem-96,spot,NA,1.678512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690080 +GCP,europe-west3,n1-standard-16,on_demand,NA,0.97916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681693 +GCP,europe-west3,n1-standard-16,spot,NA,0.22462,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681707 +GCP,europe-west3,n1-standard-32,on_demand,NA,1.95832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682677 +GCP,europe-west3,n1-standard-32,spot,NA,0.44924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682691 +GCP,europe-west3,n1-standard-4,on_demand,NA,0.24479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679954 +GCP,europe-west3,n1-standard-4,spot,NA,0.056155,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679968 +GCP,europe-west3,n1-standard-64,on_demand,NA,3.91664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683538 +GCP,europe-west3,n1-standard-64,spot,NA,0.89848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683551 +GCP,europe-west3,n1-standard-8,on_demand,NA,0.48958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680841 +GCP,europe-west3,n1-standard-8,spot,NA,0.11231,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680855 +GCP,europe-west3,n1-standard-96,on_demand,NA,5.87496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684720 +GCP,europe-west3,n1-standard-96,spot,NA,1.34772,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684734 +GCP,europe-west3,n2-highcpu-16,on_demand,NA,0.073901,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711252 +GCP,europe-west3,n2-highcpu-16,reserved_1y,NA,0.465136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711279 +GCP,europe-west3,n2-highcpu-16,reserved_3y,NA,0.332224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711293 +GCP,europe-west3,n2-highcpu-16,spot,NA,0.24568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711265 +GCP,europe-west3,n2-highcpu-32,on_demand,NA,0.147802,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712358 +GCP,europe-west3,n2-highcpu-32,reserved_1y,NA,0.930272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712386 +GCP,europe-west3,n2-highcpu-32,reserved_3y,NA,0.664448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712400 +GCP,europe-west3,n2-highcpu-32,spot,NA,0.49136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712371 +GCP,europe-west3,n2-highcpu-48,on_demand,NA,0.221702,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713475 +GCP,europe-west3,n2-highcpu-48,reserved_1y,NA,1.395408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713503 +GCP,europe-west3,n2-highcpu-48,reserved_3y,NA,0.996672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713517 +GCP,europe-west3,n2-highcpu-48,spot,NA,0.73704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713489 +GCP,europe-west3,n2-highcpu-64,on_demand,NA,0.295603,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714565 +GCP,europe-west3,n2-highcpu-64,reserved_1y,NA,1.860544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714593 +GCP,europe-west3,n2-highcpu-64,reserved_3y,NA,1.328896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714607 +GCP,europe-west3,n2-highcpu-64,spot,NA,0.98272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714579 +GCP,europe-west3,n2-highcpu-80,on_demand,NA,0.369504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715656 +GCP,europe-west3,n2-highcpu-80,reserved_1y,NA,2.32568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715684 +GCP,europe-west3,n2-highcpu-80,reserved_3y,NA,1.66112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715698 +GCP,europe-west3,n2-highcpu-80,spot,NA,1.2284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715670 +GCP,europe-west3,n2-highmem-16,on_demand,NA,0.13503,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705664 +GCP,europe-west3,n2-highmem-16,reserved_1y,NA,0.849856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705692 +GCP,europe-west3,n2-highmem-16,reserved_3y,NA,0.60696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705707 +GCP,europe-west3,n2-highmem-16,spot,NA,0.44896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705678 +GCP,europe-west3,n2-highmem-2,on_demand,NA,0.016879,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702324 +GCP,europe-west3,n2-highmem-2,reserved_1y,NA,0.106232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702352 +GCP,europe-west3,n2-highmem-2,reserved_3y,NA,0.07587,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702367 +GCP,europe-west3,n2-highmem-2,spot,NA,0.05612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702338 +GCP,europe-west3,n2-highmem-32,on_demand,NA,0.270061,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706793 +GCP,europe-west3,n2-highmem-32,reserved_1y,NA,1.699712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706821 +GCP,europe-west3,n2-highmem-32,reserved_3y,NA,1.21392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706836 +GCP,europe-west3,n2-highmem-32,spot,NA,0.89792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706807 +GCP,europe-west3,n2-highmem-4,on_demand,NA,0.033758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703427 +GCP,europe-west3,n2-highmem-4,reserved_1y,NA,0.212464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703457 +GCP,europe-west3,n2-highmem-4,reserved_3y,NA,0.15174,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703471 +GCP,europe-west3,n2-highmem-4,spot,NA,0.11224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703442 +GCP,europe-west3,n2-highmem-48,on_demand,NA,0.405091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707936 +GCP,europe-west3,n2-highmem-48,reserved_1y,NA,2.549568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707965 +GCP,europe-west3,n2-highmem-48,reserved_3y,NA,1.82088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707980 +GCP,europe-west3,n2-highmem-48,spot,NA,1.34688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707951 +GCP,europe-west3,n2-highmem-64,on_demand,NA,0.540122,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709024 +GCP,europe-west3,n2-highmem-64,reserved_1y,NA,3.399424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709052 +GCP,europe-west3,n2-highmem-64,reserved_3y,NA,2.42784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709066 +GCP,europe-west3,n2-highmem-64,spot,NA,1.79584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709038 +GCP,europe-west3,n2-highmem-8,on_demand,NA,0.067515,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704575 +GCP,europe-west3,n2-highmem-8,reserved_1y,NA,0.424928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704603 +GCP,europe-west3,n2-highmem-8,reserved_3y,NA,0.30348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704617 +GCP,europe-west3,n2-highmem-8,spot,NA,0.22448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704589 +GCP,europe-west3,n2-highmem-80,on_demand,NA,0.675152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710117 +GCP,europe-west3,n2-highmem-80,reserved_1y,NA,4.24928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710143 +GCP,europe-west3,n2-highmem-80,reserved_3y,NA,3.0348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710156 +GCP,europe-west3,n2-highmem-80,spot,NA,2.2448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710130 +GCP,europe-west3,n2-standard-16,on_demand,NA,0.100099,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696749 +GCP,europe-west3,n2-standard-16,reserved_1y,NA,0.630016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696778 +GCP,europe-west3,n2-standard-16,reserved_3y,NA,0.449968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696792 +GCP,europe-west3,n2-standard-16,spot,NA,0.3328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696763 +GCP,europe-west3,n2-standard-32,on_demand,NA,0.200198,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697875 +GCP,europe-west3,n2-standard-32,reserved_1y,NA,1.260032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697903 +GCP,europe-west3,n2-standard-32,reserved_3y,NA,0.899936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697917 +GCP,europe-west3,n2-standard-32,spot,NA,0.6656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697889 +GCP,europe-west3,n2-standard-4,on_demand,NA,0.025025,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694476 +GCP,europe-west3,n2-standard-4,reserved_1y,NA,0.157504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694505 +GCP,europe-west3,n2-standard-4,reserved_3y,NA,0.112492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694519 +GCP,europe-west3,n2-standard-4,spot,NA,0.0832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694491 +GCP,europe-west3,n2-standard-48,on_demand,NA,0.300298,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698999 +GCP,europe-west3,n2-standard-48,reserved_1y,NA,1.890048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699027 +GCP,europe-west3,n2-standard-48,reserved_3y,NA,1.349904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699042 +GCP,europe-west3,n2-standard-48,spot,NA,0.9984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699013 +GCP,europe-west3,n2-standard-64,on_demand,NA,0.400397,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700103 +GCP,europe-west3,n2-standard-64,reserved_1y,NA,2.520064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700131 +GCP,europe-west3,n2-standard-64,reserved_3y,NA,1.799872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700145 +GCP,europe-west3,n2-standard-64,spot,NA,1.3312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700117 +GCP,europe-west3,n2-standard-8,on_demand,NA,0.05005,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695592 +GCP,europe-west3,n2-standard-8,reserved_1y,NA,0.315008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695620 +GCP,europe-west3,n2-standard-8,reserved_3y,NA,0.224984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695634 +GCP,europe-west3,n2-standard-8,spot,NA,0.1664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695606 +GCP,europe-west3,n2-standard-80,on_demand,NA,0.500496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701236 +GCP,europe-west3,n2-standard-80,reserved_1y,NA,3.15008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701264 +GCP,europe-west3,n2-standard-80,reserved_3y,NA,2.24984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701278 +GCP,europe-west3,n2-standard-80,spot,NA,1.664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701250 +GCP,europe-west3,n2d-highcpu-128,on_demand,NA,1.285856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752645 +GCP,europe-west3,n2d-highcpu-128,reserved_1y,NA,3.237248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752673 +GCP,europe-west3,n2d-highcpu-128,reserved_3y,NA,2.31232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752687 +GCP,europe-west3,n2d-highcpu-128,spot,NA,2.056192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752659 +GCP,europe-west3,n2d-highcpu-16,on_demand,NA,0.160732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746340 +GCP,europe-west3,n2d-highcpu-16,reserved_1y,NA,0.404656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746368 +GCP,europe-west3,n2d-highcpu-16,reserved_3y,NA,0.28904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746382 +GCP,europe-west3,n2d-highcpu-16,spot,NA,0.257024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746354 +GCP,europe-west3,n2d-highcpu-224,on_demand,NA,2.250248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753670 +GCP,europe-west3,n2d-highcpu-224,reserved_1y,NA,5.665184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753698 +GCP,europe-west3,n2d-highcpu-224,reserved_3y,NA,4.04656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753712 +GCP,europe-west3,n2d-highcpu-224,spot,NA,3.598336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753684 +GCP,europe-west3,n2d-highcpu-32,on_demand,NA,0.321464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747379 +GCP,europe-west3,n2d-highcpu-32,reserved_1y,NA,0.809312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747408 +GCP,europe-west3,n2d-highcpu-32,reserved_3y,NA,0.57808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747422 +GCP,europe-west3,n2d-highcpu-32,spot,NA,0.514048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747393 +GCP,europe-west3,n2d-highcpu-48,on_demand,NA,0.482196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748452 +GCP,europe-west3,n2d-highcpu-48,reserved_1y,NA,1.213968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748480 +GCP,europe-west3,n2d-highcpu-48,reserved_3y,NA,0.86712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748494 +GCP,europe-west3,n2d-highcpu-48,spot,NA,0.771072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748466 +GCP,europe-west3,n2d-highcpu-64,on_demand,NA,0.642928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749494 +GCP,europe-west3,n2d-highcpu-64,reserved_1y,NA,1.618624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749523 +GCP,europe-west3,n2d-highcpu-64,reserved_3y,NA,1.15616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749537 +GCP,europe-west3,n2d-highcpu-64,spot,NA,1.028096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749509 +GCP,europe-west3,n2d-highcpu-80,on_demand,NA,0.80366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750543 +GCP,europe-west3,n2d-highcpu-80,reserved_1y,NA,2.02328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750572 +GCP,europe-west3,n2d-highcpu-80,reserved_3y,NA,1.4452,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750586 +GCP,europe-west3,n2d-highcpu-80,spot,NA,1.28512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750558 +GCP,europe-west3,n2d-highcpu-96,on_demand,NA,0.964392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751591 +GCP,europe-west3,n2d-highcpu-96,reserved_1y,NA,2.427936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751619 +GCP,europe-west3,n2d-highcpu-96,reserved_3y,NA,1.73424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751633 +GCP,europe-west3,n2d-highcpu-96,spot,NA,1.542144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751605 +GCP,europe-west3,n2d-highmem-16,on_demand,NA,0.293676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740048 +GCP,europe-west3,n2d-highmem-16,reserved_1y,NA,0.739312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740092 +GCP,europe-west3,n2d-highmem-16,reserved_3y,NA,0.528048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740106 +GCP,europe-west3,n2d-highmem-16,spot,NA,0.469152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740077 +GCP,europe-west3,n2d-highmem-2,on_demand,NA,0.036709,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736842 +GCP,europe-west3,n2d-highmem-2,reserved_1y,NA,0.092414,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736869 +GCP,europe-west3,n2d-highmem-2,reserved_3y,NA,0.066006,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736885 +GCP,europe-west3,n2d-highmem-2,spot,NA,0.058644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736856 +GCP,europe-west3,n2d-highmem-32,on_demand,NA,0.587352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741087 +GCP,europe-west3,n2d-highmem-32,reserved_1y,NA,1.478624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741114 +GCP,europe-west3,n2d-highmem-32,reserved_3y,NA,1.056096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741127 +GCP,europe-west3,n2d-highmem-32,spot,NA,0.938304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741101 +GCP,europe-west3,n2d-highmem-4,on_demand,NA,0.073419,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737869 +GCP,europe-west3,n2d-highmem-4,reserved_1y,NA,0.184828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737895 +GCP,europe-west3,n2d-highmem-4,reserved_3y,NA,0.132012,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737908 +GCP,europe-west3,n2d-highmem-4,spot,NA,0.117288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737881 +GCP,europe-west3,n2d-highmem-48,on_demand,NA,0.881028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742164 +GCP,europe-west3,n2d-highmem-48,reserved_1y,NA,2.217936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742190 +GCP,europe-west3,n2d-highmem-48,reserved_3y,NA,1.584144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742204 +GCP,europe-west3,n2d-highmem-48,spot,NA,1.407456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742177 +GCP,europe-west3,n2d-highmem-64,on_demand,NA,1.174704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743212 +GCP,europe-west3,n2d-highmem-64,reserved_1y,NA,2.957248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743240 +GCP,europe-west3,n2d-highmem-64,reserved_3y,NA,2.112192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743253 +GCP,europe-west3,n2d-highmem-64,spot,NA,1.876608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743226 +GCP,europe-west3,n2d-highmem-8,on_demand,NA,0.146838,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738997 +GCP,europe-west3,n2d-highmem-8,reserved_1y,NA,0.369656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739025 +GCP,europe-west3,n2d-highmem-8,reserved_3y,NA,0.264024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739039 +GCP,europe-west3,n2d-highmem-8,spot,NA,0.234576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739011 +GCP,europe-west3,n2d-highmem-80,on_demand,NA,1.46838,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744267 +GCP,europe-west3,n2d-highmem-80,reserved_1y,NA,3.69656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744295 +GCP,europe-west3,n2d-highmem-80,reserved_3y,NA,2.64024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744308 +GCP,europe-west3,n2d-highmem-80,spot,NA,2.34576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744281 +GCP,europe-west3,n2d-highmem-96,on_demand,NA,1.762056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745323 +GCP,europe-west3,n2d-highmem-96,reserved_1y,NA,4.435872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745350 +GCP,europe-west3,n2d-highmem-96,reserved_3y,NA,3.168288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745364 +GCP,europe-west3,n2d-highmem-96,spot,NA,2.814912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745337 +GCP,europe-west3,n2d-standard-128,on_demand,NA,1.741664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734756 +GCP,europe-west3,n2d-standard-128,reserved_1y,NA,4.38464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734785 +GCP,europe-west3,n2d-standard-128,reserved_3y,NA,3.131776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734799 +GCP,europe-west3,n2d-standard-128,spot,NA,2.783488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734771 +GCP,europe-west3,n2d-standard-16,on_demand,NA,0.217708,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728438 +GCP,europe-west3,n2d-standard-16,reserved_1y,NA,0.54808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728466 +GCP,europe-west3,n2d-standard-16,reserved_3y,NA,0.391472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728480 +GCP,europe-west3,n2d-standard-16,spot,NA,0.347936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728452 +GCP,europe-west3,n2d-standard-224,on_demand,NA,3.047912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735798 +GCP,europe-west3,n2d-standard-224,reserved_1y,NA,7.67312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735827 +GCP,europe-west3,n2d-standard-224,reserved_3y,NA,5.480608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735841 +GCP,europe-west3,n2d-standard-224,spot,NA,4.871104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735813 +GCP,europe-west3,n2d-standard-32,on_demand,NA,0.435416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729473 +GCP,europe-west3,n2d-standard-32,reserved_1y,NA,1.09616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729501 +GCP,europe-west3,n2d-standard-32,reserved_3y,NA,0.782944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729515 +GCP,europe-west3,n2d-standard-32,spot,NA,0.695872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729487 +GCP,europe-west3,n2d-standard-4,on_demand,NA,0.054427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726310 +GCP,europe-west3,n2d-standard-4,reserved_1y,NA,0.13702,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726339 +GCP,europe-west3,n2d-standard-4,reserved_3y,NA,0.097868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726353 +GCP,europe-west3,n2d-standard-4,spot,NA,0.086984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726324 +GCP,europe-west3,n2d-standard-48,on_demand,NA,0.653124,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730495 +GCP,europe-west3,n2d-standard-48,reserved_1y,NA,1.64424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730522 +GCP,europe-west3,n2d-standard-48,reserved_3y,NA,1.174416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730536 +GCP,europe-west3,n2d-standard-48,spot,NA,1.043808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730509 +GCP,europe-west3,n2d-standard-64,on_demand,NA,0.870832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731590 +GCP,europe-west3,n2d-standard-64,reserved_1y,NA,2.19232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731618 +GCP,europe-west3,n2d-standard-64,reserved_3y,NA,1.565888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731632 +GCP,europe-west3,n2d-standard-64,spot,NA,1.391744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731604 +GCP,europe-west3,n2d-standard-8,on_demand,NA,0.108854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727381 +GCP,europe-west3,n2d-standard-8,reserved_1y,NA,0.27404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727407 +GCP,europe-west3,n2d-standard-8,reserved_3y,NA,0.195736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727421 +GCP,europe-west3,n2d-standard-8,spot,NA,0.173968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727395 +GCP,europe-west3,n2d-standard-80,on_demand,NA,1.08854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732656 +GCP,europe-west3,n2d-standard-80,reserved_1y,NA,2.7404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732684 +GCP,europe-west3,n2d-standard-80,reserved_3y,NA,1.95736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732697 +GCP,europe-west3,n2d-standard-80,spot,NA,1.73968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732670 +GCP,europe-west3,n2d-standard-96,on_demand,NA,1.306248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733683 +GCP,europe-west3,n2d-standard-96,reserved_1y,NA,3.28848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733711 +GCP,europe-west3,n2d-standard-96,reserved_3y,NA,2.348832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733725 +GCP,europe-west3,n2d-standard-96,spot,NA,2.087616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733697 +GCP,europe-west3,n4-standard-16,on_demand,NA,0.856208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757829 +GCP,europe-west3,n4-standard-16,reserved_1y,NA,0.539402,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757857 +GCP,europe-west3,n4-standard-16,reserved_3y,NA,0.385303,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757871 +GCP,europe-west3,n4-standard-16,spot,NA,0.357888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757843 +GCP,europe-west3,n4-standard-2,on_demand,NA,0.107026,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754704 +GCP,europe-west3,n4-standard-2,reserved_1y,NA,0.067425,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754732 +GCP,europe-west3,n4-standard-2,reserved_3y,NA,0.048163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754746 +GCP,europe-west3,n4-standard-2,spot,NA,0.044736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754718 +GCP,europe-west3,n4-standard-32,on_demand,NA,1.712416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758869 +GCP,europe-west3,n4-standard-32,reserved_1y,NA,1.078803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758897 +GCP,europe-west3,n4-standard-32,reserved_3y,NA,0.770606,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758910 +GCP,europe-west3,n4-standard-32,spot,NA,0.715776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758883 +GCP,europe-west3,n4-standard-4,on_demand,NA,0.214052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755751 +GCP,europe-west3,n4-standard-4,reserved_1y,NA,0.13485,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755778 +GCP,europe-west3,n4-standard-4,reserved_3y,NA,0.096326,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755792 +GCP,europe-west3,n4-standard-4,spot,NA,0.089472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755764 +GCP,europe-west3,n4-standard-8,on_demand,NA,0.428104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756794 +GCP,europe-west3,n4-standard-8,reserved_1y,NA,0.269701,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756822 +GCP,europe-west3,n4-standard-8,reserved_3y,NA,0.192652,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756836 +GCP,europe-west3,n4-standard-8,spot,NA,0.178944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756808 +GCP,europe-west9,a2-highgpu-1g,on_demand,NA,0.857793,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770710 +GCP,europe-west9,a2-highgpu-1g,reserved_1y,NA,0.54038,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770737 +GCP,europe-west9,a2-highgpu-1g,reserved_3y,NA,0.300255,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770751 +GCP,europe-west9,a2-highgpu-1g,spot,NA,0.218705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770724 +GCP,europe-west9,a2-highgpu-2g,on_demand,NA,1.715587,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771742 +GCP,europe-west9,a2-highgpu-2g,reserved_1y,NA,1.08076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771769 +GCP,europe-west9,a2-highgpu-2g,reserved_3y,NA,0.60051,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771783 +GCP,europe-west9,a2-highgpu-2g,spot,NA,0.43741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771756 +GCP,europe-west9,a2-highgpu-4g,on_demand,NA,3.431173,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772891 +GCP,europe-west9,a2-highgpu-4g,reserved_1y,NA,2.161521,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772920 +GCP,europe-west9,a2-highgpu-4g,reserved_3y,NA,1.20102,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772934 +GCP,europe-west9,a2-highgpu-4g,spot,NA,0.87482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772906 +GCP,europe-west9,a2-highgpu-8g,on_demand,NA,6.862347,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773991 +GCP,europe-west9,a2-highgpu-8g,reserved_1y,NA,4.323042,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774018 +GCP,europe-west9,a2-highgpu-8g,reserved_3y,NA,2.40204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774032 +GCP,europe-west9,a2-highgpu-8g,spot,NA,1.74964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774005 +GCP,europe-west9,a2-megagpu-16g,on_demand,NA,10.204492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775126 +GCP,europe-west9,a2-megagpu-16g,reserved_1y,NA,6.428349,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775153 +GCP,europe-west9,a2-megagpu-16g,reserved_3y,NA,3.572006,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775167 +GCP,europe-west9,a2-megagpu-16g,spot,NA,2.60168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775140 +GCP,europe-west9,a2-ultragpu-1g,on_demand,NA,1.275562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776222 +GCP,europe-west9,a2-ultragpu-1g,reserved_1y,NA,0.803544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776250 +GCP,europe-west9,a2-ultragpu-1g,reserved_3y,NA,0.446501,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776264 +GCP,europe-west9,a2-ultragpu-1g,spot,NA,0.32521,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776236 +GCP,europe-west9,a2-ultragpu-2g,on_demand,NA,2.551123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777324 +GCP,europe-west9,a2-ultragpu-2g,reserved_1y,NA,1.607087,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777352 +GCP,europe-west9,a2-ultragpu-2g,reserved_3y,NA,0.893002,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777366 +GCP,europe-west9,a2-ultragpu-2g,spot,NA,0.65042,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777338 +GCP,europe-west9,a2-ultragpu-4g,on_demand,NA,5.102246,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778383 +GCP,europe-west9,a2-ultragpu-4g,reserved_1y,NA,3.214174,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778411 +GCP,europe-west9,a2-ultragpu-4g,reserved_3y,NA,1.786003,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778425 +GCP,europe-west9,a2-ultragpu-4g,spot,NA,1.30084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778397 +GCP,europe-west9,a2-ultragpu-8g,on_demand,NA,10.204492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779434 +GCP,europe-west9,a2-ultragpu-8g,reserved_1y,NA,6.428349,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779462 +GCP,europe-west9,a2-ultragpu-8g,reserved_3y,NA,3.572006,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779477 +GCP,europe-west9,a2-ultragpu-8g,spot,NA,2.60168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779449 +GCP,europe-west9,a3-highgpu-1g,on_demand,NA,0.911954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780542 +GCP,europe-west9,a3-highgpu-1g,reserved_1y,NA,0.953949,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780571 +GCP,europe-west9,a3-highgpu-1g,reserved_3y,NA,0.604549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780585 +GCP,europe-west9,a3-highgpu-1g,spot,NA,0.246896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780557 +GCP,europe-west9,a3-highgpu-2g,on_demand,NA,0.911954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781592 +GCP,europe-west9,a3-highgpu-2g,reserved_1y,NA,0.953949,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781620 +GCP,europe-west9,a3-highgpu-2g,reserved_3y,NA,0.604549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781635 +GCP,europe-west9,a3-highgpu-2g,spot,NA,0.246896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781606 +GCP,europe-west9,a3-highgpu-4g,on_demand,NA,0.911954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782677 +GCP,europe-west9,a3-highgpu-4g,reserved_1y,NA,0.953949,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782705 +GCP,europe-west9,a3-highgpu-4g,reserved_3y,NA,0.604549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782719 +GCP,europe-west9,a3-highgpu-4g,spot,NA,0.246896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782692 +GCP,europe-west9,a3-highgpu-8g,on_demand,NA,0.911954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783758 +GCP,europe-west9,a3-highgpu-8g,reserved_1y,NA,0.953949,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783786 +GCP,europe-west9,a3-highgpu-8g,reserved_3y,NA,0.604549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783800 +GCP,europe-west9,a3-highgpu-8g,spot,NA,0.246896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783772 +GCP,europe-west9,c2-standard-16,on_demand,NA,0.842605,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721591 +GCP,europe-west9,c2-standard-16,reserved_1y,NA,0.530816,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721637 +GCP,europe-west9,c2-standard-16,reserved_3y,NA,0.379125,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721660 +GCP,europe-west9,c2-standard-16,spot,NA,0.183922,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721614 +GCP,europe-west9,c2-standard-30,on_demand,NA,1.579885,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723272 +GCP,europe-west9,c2-standard-30,reserved_1y,NA,0.99528,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723317 +GCP,europe-west9,c2-standard-30,reserved_3y,NA,0.71086,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723339 +GCP,europe-west9,c2-standard-30,spot,NA,0.344854,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723294 +GCP,europe-west9,c2-standard-4,on_demand,NA,0.210651,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717995 +GCP,europe-west9,c2-standard-4,reserved_1y,NA,0.132704,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718041 +GCP,europe-west9,c2-standard-4,reserved_3y,NA,0.094781,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718065 +GCP,europe-west9,c2-standard-4,spot,NA,0.04598,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718018 +GCP,europe-west9,c2-standard-60,on_demand,NA,3.15977,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725009 +GCP,europe-west9,c2-standard-60,reserved_1y,NA,1.99056,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725055 +GCP,europe-west9,c2-standard-60,reserved_3y,NA,1.421719,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725078 +GCP,europe-west9,c2-standard-60,spot,NA,0.689707,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725032 +GCP,europe-west9,c2-standard-8,on_demand,NA,0.421303,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719856 +GCP,europe-west9,c2-standard-8,reserved_1y,NA,0.265408,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719923 +GCP,europe-west9,c2-standard-8,reserved_3y,NA,0.189563,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719946 +GCP,europe-west9,c2-standard-8,spot,NA,0.091961,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719900 +GCP,europe-west9,c3-highmem-22,on_demand,NA,0.964666,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800685 +GCP,europe-west9,c3-highmem-22,reserved_1y,NA,1.063623,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800711 +GCP,europe-west9,c3-highmem-22,reserved_3y,NA,0.759705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800724 +GCP,europe-west9,c3-highmem-22,spot,NA,0.276232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800698 +GCP,europe-west9,c3-highmem-4,on_demand,NA,0.175394,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798601 +GCP,europe-west9,c3-highmem-4,reserved_1y,NA,0.193386,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798628 +GCP,europe-west9,c3-highmem-4,reserved_3y,NA,0.138128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798642 +GCP,europe-west9,c3-highmem-4,spot,NA,0.050224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798615 +GCP,europe-west9,c3-highmem-44,on_demand,NA,1.929332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801698 +GCP,europe-west9,c3-highmem-44,reserved_1y,NA,2.127245,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801724 +GCP,europe-west9,c3-highmem-44,reserved_3y,NA,1.51941,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801737 +GCP,europe-west9,c3-highmem-44,spot,NA,0.552464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801711 +GCP,europe-west9,c3-highmem-8,on_demand,NA,0.350788,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799658 +GCP,europe-west9,c3-highmem-8,reserved_1y,NA,0.386772,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799685 +GCP,europe-west9,c3-highmem-8,reserved_3y,NA,0.276256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799698 +GCP,europe-west9,c3-highmem-8,spot,NA,0.100448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799671 +GCP,europe-west9,c3-highmem-88,on_demand,NA,3.858665,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802721 +GCP,europe-west9,c3-highmem-88,reserved_1y,NA,4.25449,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802748 +GCP,europe-west9,c3-highmem-88,reserved_3y,NA,3.03882,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802761 +GCP,europe-west9,c3-highmem-88,spot,NA,1.104928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802734 +GCP,europe-west9,c3-standard-22 (-lssd),on_demand,NA,0.924467,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795387 +GCP,europe-west9,c3-standard-22 (-lssd),reserved_1y,NA,0.810362,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795415 +GCP,europe-west9,c3-standard-22 (-lssd),reserved_3y,NA,0.578819,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795429 +GCP,europe-west9,c3-standard-22 (-lssd),spot,NA,0.204776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795401 +GCP,europe-west9,c3-standard-4 (-lssd),on_demand,NA,0.168085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793276 +GCP,europe-west9,c3-standard-4 (-lssd),reserved_1y,NA,0.147339,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793304 +GCP,europe-west9,c3-standard-4 (-lssd),reserved_3y,NA,0.10524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793318 +GCP,europe-west9,c3-standard-4 (-lssd),spot,NA,0.037232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793289 +GCP,europe-west9,c3-standard-44 (-lssd),on_demand,NA,1.848934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796496 +GCP,europe-west9,c3-standard-44 (-lssd),reserved_1y,NA,1.620724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796526 +GCP,europe-west9,c3-standard-44 (-lssd),reserved_3y,NA,1.157638,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796540 +GCP,europe-west9,c3-standard-44 (-lssd),spot,NA,0.409552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796510 +GCP,europe-west9,c3-standard-8 (-lssd),on_demand,NA,0.33617,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794331 +GCP,europe-west9,c3-standard-8 (-lssd),reserved_1y,NA,0.294677,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794358 +GCP,europe-west9,c3-standard-8 (-lssd),reserved_3y,NA,0.21048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794372 +GCP,europe-west9,c3-standard-8 (-lssd),spot,NA,0.074464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794344 +GCP,europe-west9,c3-standard-88 (-lssd),on_demand,NA,3.697868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797550 +GCP,europe-west9,c3-standard-88 (-lssd),reserved_1y,NA,3.241448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797578 +GCP,europe-west9,c3-standard-88 (-lssd),reserved_3y,NA,2.315276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797593 +GCP,europe-west9,c3-standard-88 (-lssd),spot,NA,0.819104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797564 +GCP,europe-west9,c3d-highmem-16 (-lssd),on_demand,NA,0.642701,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814326 +GCP,europe-west9,c3d-highmem-16 (-lssd),reserved_1y,NA,0.715971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814353 +GCP,europe-west9,c3d-highmem-16 (-lssd),reserved_3y,NA,0.511347,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814367 +GCP,europe-west9,c3d-highmem-16 (-lssd),spot,NA,0.386368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814340 +GCP,europe-west9,c3d-highmem-180 (-lssd),on_demand,NA,7.230389,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818666 +GCP,europe-west9,c3d-highmem-180 (-lssd),reserved_1y,NA,8.054669,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818694 +GCP,europe-west9,c3d-highmem-180 (-lssd),reserved_3y,NA,5.752649,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818708 +GCP,europe-west9,c3d-highmem-180 (-lssd),spot,NA,4.34664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818680 +GCP,europe-west9,c3d-highmem-30 (-lssd),on_demand,NA,1.205065,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815543 +GCP,europe-west9,c3d-highmem-30 (-lssd),reserved_1y,NA,1.342445,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815572 +GCP,europe-west9,c3d-highmem-30 (-lssd),reserved_3y,NA,0.958775,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815586 +GCP,europe-west9,c3d-highmem-30 (-lssd),spot,NA,0.72444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815557 +GCP,europe-west9,c3d-highmem-360 (-lssd),on_demand,NA,14.460778,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819694 +GCP,europe-west9,c3d-highmem-360 (-lssd),reserved_1y,NA,16.109338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819724 +GCP,europe-west9,c3d-highmem-360 (-lssd),reserved_3y,NA,11.505298,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819738 +GCP,europe-west9,c3d-highmem-360 (-lssd),spot,NA,8.69328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819709 +GCP,europe-west9,c3d-highmem-4 (-lssd),on_demand,NA,0.160675,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812231 +GCP,europe-west9,c3d-highmem-4 (-lssd),reserved_1y,NA,0.178993,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812258 +GCP,europe-west9,c3d-highmem-4 (-lssd),reserved_3y,NA,0.127837,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812272 +GCP,europe-west9,c3d-highmem-4 (-lssd),spot,NA,0.096592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812245 +GCP,europe-west9,c3d-highmem-60 (-lssd),on_demand,NA,2.41013,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816600 +GCP,europe-west9,c3d-highmem-60 (-lssd),reserved_1y,NA,2.68489,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816628 +GCP,europe-west9,c3d-highmem-60 (-lssd),reserved_3y,NA,1.91755,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816642 +GCP,europe-west9,c3d-highmem-60 (-lssd),spot,NA,1.44888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816615 +GCP,europe-west9,c3d-highmem-8 (-lssd),on_demand,NA,0.321351,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813272 +GCP,europe-west9,c3d-highmem-8 (-lssd),reserved_1y,NA,0.357985,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813299 +GCP,europe-west9,c3d-highmem-8 (-lssd),reserved_3y,NA,0.255673,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813315 +GCP,europe-west9,c3d-highmem-8 (-lssd),spot,NA,0.193184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813286 +GCP,europe-west9,c3d-highmem-90 (-lssd),on_demand,NA,3.615195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817636 +GCP,europe-west9,c3d-highmem-90 (-lssd),reserved_1y,NA,4.027334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817664 +GCP,europe-west9,c3d-highmem-90 (-lssd),reserved_3y,NA,2.876324,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817678 +GCP,europe-west9,c3d-highmem-90 (-lssd),spot,NA,2.17332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817649 +GCP,europe-west9,c3d-standard-16 (-lssd),on_demand,NA,0.348785,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805856 +GCP,europe-west9,c3d-standard-16 (-lssd),reserved_1y,NA,0.530816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805885 +GCP,europe-west9,c3d-standard-16 (-lssd),reserved_3y,NA,0.379125,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805901 +GCP,europe-west9,c3d-standard-16 (-lssd),spot,NA,0.286464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805871 +GCP,europe-west9,c3d-standard-180 (-lssd),on_demand,NA,3.923832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810112 +GCP,europe-west9,c3d-standard-180 (-lssd),reserved_1y,NA,5.97168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810140 +GCP,europe-west9,c3d-standard-180 (-lssd),reserved_3y,NA,4.265158,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810154 +GCP,europe-west9,c3d-standard-180 (-lssd),spot,NA,3.22272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810126 +GCP,europe-west9,c3d-standard-30 (-lssd),on_demand,NA,0.653972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806929 +GCP,europe-west9,c3d-standard-30 (-lssd),reserved_1y,NA,0.99528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806956 +GCP,europe-west9,c3d-standard-30 (-lssd),reserved_3y,NA,0.71086,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806970 +GCP,europe-west9,c3d-standard-30 (-lssd),spot,NA,0.53712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806943 +GCP,europe-west9,c3d-standard-360 (-lssd),on_demand,NA,7.847664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811168 +GCP,europe-west9,c3d-standard-360 (-lssd),reserved_1y,NA,11.94336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811198 +GCP,europe-west9,c3d-standard-360 (-lssd),reserved_3y,NA,8.530315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811211 +GCP,europe-west9,c3d-standard-360 (-lssd),spot,NA,6.44544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811184 +GCP,europe-west9,c3d-standard-4 (-lssd),on_demand,NA,0.087196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803785 +GCP,europe-west9,c3d-standard-4 (-lssd),reserved_1y,NA,0.132704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803815 +GCP,europe-west9,c3d-standard-4 (-lssd),reserved_3y,NA,0.094781,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803829 +GCP,europe-west9,c3d-standard-4 (-lssd),spot,NA,0.071616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803802 +GCP,europe-west9,c3d-standard-60 (-lssd),on_demand,NA,1.307944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807999 +GCP,europe-west9,c3d-standard-60 (-lssd),reserved_1y,NA,1.99056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808027 +GCP,europe-west9,c3d-standard-60 (-lssd),reserved_3y,NA,1.421719,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808041 +GCP,europe-west9,c3d-standard-60 (-lssd),spot,NA,1.07424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808013 +GCP,europe-west9,c3d-standard-8 (-lssd),on_demand,NA,0.174393,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804833 +GCP,europe-west9,c3d-standard-8 (-lssd),reserved_1y,NA,0.265408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804860 +GCP,europe-west9,c3d-standard-8 (-lssd),reserved_3y,NA,0.189563,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804874 +GCP,europe-west9,c3d-standard-8 (-lssd),spot,NA,0.143232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804847 +GCP,europe-west9,c3d-standard-90 (-lssd),on_demand,NA,1.961916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809055 +GCP,europe-west9,c3d-standard-90 (-lssd),reserved_1y,NA,2.98584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809085 +GCP,europe-west9,c3d-standard-90 (-lssd),reserved_3y,NA,2.132579,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809099 +GCP,europe-west9,c3d-standard-90 (-lssd),spot,NA,1.61136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809070 +GCP,europe-west9,c4-standard-16,on_demand,NA,0.917189,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841091 +GCP,europe-west9,c4-standard-16,reserved_1y,NA,0.577842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841118 +GCP,europe-west9,c4-standard-16,reserved_3y,NA,0.412737,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841133 +GCP,europe-west9,c4-standard-16,spot,NA,0.366862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841105 +GCP,europe-west9,c4-standard-2,on_demand,NA,0.112365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837755 +GCP,europe-west9,c4-standard-2,reserved_1y,NA,0.070791,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837783 +GCP,europe-west9,c4-standard-2,reserved_3y,NA,0.050564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837797 +GCP,europe-west9,c4-standard-2,spot,NA,0.044944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837769 +GCP,europe-west9,c4-standard-24,on_demand,NA,1.375783,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842120 +GCP,europe-west9,c4-standard-24,reserved_1y,NA,0.866764,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842149 +GCP,europe-west9,c4-standard-24,reserved_3y,NA,0.619106,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842163 +GCP,europe-west9,c4-standard-24,spot,NA,0.550292,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842134 +GCP,europe-west9,c4-standard-32,on_demand,NA,1.834378,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843334 +GCP,europe-west9,c4-standard-32,reserved_1y,NA,1.155685,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843363 +GCP,europe-west9,c4-standard-32,reserved_3y,NA,0.825475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843377 +GCP,europe-west9,c4-standard-32,spot,NA,0.733723,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843348 +GCP,europe-west9,c4-standard-4,on_demand,NA,0.229297,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838859 +GCP,europe-west9,c4-standard-4,reserved_1y,NA,0.144461,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838885 +GCP,europe-west9,c4-standard-4,reserved_3y,NA,0.103184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838899 +GCP,europe-west9,c4-standard-4,spot,NA,0.091715,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838872 +GCP,europe-west9,c4-standard-8,on_demand,NA,0.458594,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839983 +GCP,europe-west9,c4-standard-8,reserved_1y,NA,0.288921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840028 +GCP,europe-west9,c4-standard-8,reserved_3y,NA,0.206369,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840042 +GCP,europe-west9,c4-standard-8,spot,NA,0.183431,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840013 +GCP,europe-west9,c4a-highmem-16 (-lssd),on_demand,NA,0.701575,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831766 +GCP,europe-west9,c4a-highmem-16 (-lssd),reserved_1y,NA,0.773544,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831812 +GCP,europe-west9,c4a-highmem-16 (-lssd),reserved_3y,NA,0.552513,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831834 +GCP,europe-west9,c4a-highmem-16 (-lssd),spot,NA,0.200896,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831789 +GCP,europe-west9,c4a-highmem-32 (-lssd),on_demand,NA,1.403151,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833010 +GCP,europe-west9,c4a-highmem-32 (-lssd),reserved_1y,NA,1.547087,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833055 +GCP,europe-west9,c4a-highmem-32 (-lssd),reserved_3y,NA,1.105025,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833078 +GCP,europe-west9,c4a-highmem-32 (-lssd),spot,NA,0.401792,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833032 +GCP,europe-west9,c4a-highmem-4 (-lssd),on_demand,NA,0.175394,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829333 +GCP,europe-west9,c4a-highmem-4 (-lssd),reserved_1y,NA,0.193386,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829378 +GCP,europe-west9,c4a-highmem-4 (-lssd),reserved_3y,NA,0.138128,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829399 +GCP,europe-west9,c4a-highmem-4 (-lssd),spot,NA,0.050224,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829356 +GCP,europe-west9,c4a-highmem-48 (-lssd),on_demand,NA,2.104726,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834237 +GCP,europe-west9,c4a-highmem-48 (-lssd),reserved_1y,NA,2.320631,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834282 +GCP,europe-west9,c4a-highmem-48 (-lssd),reserved_3y,NA,1.657538,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834302 +GCP,europe-west9,c4a-highmem-48 (-lssd),spot,NA,0.602688,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834259 +GCP,europe-west9,c4a-highmem-64 (-lssd),on_demand,NA,2.806302,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835400 +GCP,europe-west9,c4a-highmem-64 (-lssd),reserved_1y,NA,3.094175,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835443 +GCP,europe-west9,c4a-highmem-64 (-lssd),reserved_3y,NA,2.210051,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835464 +GCP,europe-west9,c4a-highmem-64 (-lssd),spot,NA,0.803584,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835421 +GCP,europe-west9,c4a-highmem-72 (-lssd),on_demand,NA,3.157089,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836581 +GCP,europe-west9,c4a-highmem-72 (-lssd),reserved_1y,NA,3.480947,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836623 +GCP,europe-west9,c4a-highmem-72 (-lssd),reserved_3y,NA,2.486307,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836644 +GCP,europe-west9,c4a-highmem-72 (-lssd),spot,NA,0.904032,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836602 +GCP,europe-west9,c4a-highmem-8 (-lssd),on_demand,NA,0.350788,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830558 +GCP,europe-west9,c4a-highmem-8 (-lssd),reserved_1y,NA,0.386772,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830603 +GCP,europe-west9,c4a-highmem-8 (-lssd),reserved_3y,NA,0.276256,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830624 +GCP,europe-west9,c4a-highmem-8 (-lssd),spot,NA,0.100448,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830580 +GCP,europe-west9,c4a-standard-16 (-lssd),on_demand,NA,0.67234,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823237 +GCP,europe-west9,c4a-standard-16 (-lssd),reserved_1y,NA,0.589354,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823283 +GCP,europe-west9,c4a-standard-16 (-lssd),reserved_3y,NA,0.420959,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823306 +GCP,europe-west9,c4a-standard-16 (-lssd),spot,NA,0.148928,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823260 +GCP,europe-west9,c4a-standard-32 (-lssd),on_demand,NA,1.344679,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824487 +GCP,europe-west9,c4a-standard-32 (-lssd),reserved_1y,NA,1.178708,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824532 +GCP,europe-west9,c4a-standard-32 (-lssd),reserved_3y,NA,0.841919,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824555 +GCP,europe-west9,c4a-standard-32 (-lssd),spot,NA,0.297856,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824509 +GCP,europe-west9,c4a-standard-4 (-lssd),on_demand,NA,0.168085,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.820779 +GCP,europe-west9,c4a-standard-4 (-lssd),reserved_1y,NA,0.147339,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.820827 +GCP,europe-west9,c4a-standard-4 (-lssd),reserved_3y,NA,0.10524,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.820850 +GCP,europe-west9,c4a-standard-4 (-lssd),spot,NA,0.037232,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.820803 +GCP,europe-west9,c4a-standard-48 (-lssd),on_demand,NA,2.017019,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825708 +GCP,europe-west9,c4a-standard-48 (-lssd),reserved_1y,NA,1.768063,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825755 +GCP,europe-west9,c4a-standard-48 (-lssd),reserved_3y,NA,1.262878,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825778 +GCP,europe-west9,c4a-standard-48 (-lssd),spot,NA,0.446784,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825731 +GCP,europe-west9,c4a-standard-64 (-lssd),on_demand,NA,2.689359,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826933 +GCP,europe-west9,c4a-standard-64 (-lssd),reserved_1y,NA,2.357417,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826980 +GCP,europe-west9,c4a-standard-64 (-lssd),reserved_3y,NA,1.683837,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827003 +GCP,europe-west9,c4a-standard-64 (-lssd),spot,NA,0.595712,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826957 +GCP,europe-west9,c4a-standard-72 (-lssd),on_demand,NA,3.025529,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828140 +GCP,europe-west9,c4a-standard-72 (-lssd),reserved_1y,NA,2.652094,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828186 +GCP,europe-west9,c4a-standard-72 (-lssd),reserved_3y,NA,1.894317,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828209 +GCP,europe-west9,c4a-standard-72 (-lssd),spot,NA,0.670176,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828163 +GCP,europe-west9,c4a-standard-8 (-lssd),on_demand,NA,0.33617,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822006 +GCP,europe-west9,c4a-standard-8 (-lssd),reserved_1y,NA,0.294677,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822053 +GCP,europe-west9,c4a-standard-8 (-lssd),reserved_3y,NA,0.21048,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822076 +GCP,europe-west9,c4a-standard-8 (-lssd),spot,NA,0.074464,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822029 +GCP,europe-west9,c4d-standard-16,on_demand,NA,0.3396,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848398 +GCP,europe-west9,c4d-standard-16,reserved_1y,NA,0.52503,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848444 +GCP,europe-west9,c4d-standard-16,reserved_3y,NA,0.374993,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848468 +GCP,europe-west9,c4d-standard-16,spot,NA,0.283342,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848421 +GCP,europe-west9,c4d-standard-2,on_demand,NA,0.039006,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844504 +GCP,europe-west9,c4d-standard-2,reserved_1y,NA,0.063459,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844549 +GCP,europe-west9,c4d-standard-2,reserved_3y,NA,0.045325,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844573 +GCP,europe-west9,c4d-standard-2,spot,NA,0.034247,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844527 +GCP,europe-west9,c4d-standard-32,on_demand,NA,0.6792,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849728 +GCP,europe-west9,c4d-standard-32,reserved_1y,NA,1.05006,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849774 +GCP,europe-west9,c4d-standard-32,reserved_3y,NA,0.749986,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849796 +GCP,europe-west9,c4d-standard-32,spot,NA,0.566684,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849751 +GCP,europe-west9,c4d-standard-4,on_demand,NA,0.082604,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845794 +GCP,europe-west9,c4d-standard-4,reserved_1y,NA,0.129811,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845840 +GCP,europe-west9,c4d-standard-4,reserved_3y,NA,0.092715,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845862 +GCP,europe-west9,c4d-standard-4,spot,NA,0.070055,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845817 +GCP,europe-west9,c4d-standard-8,on_demand,NA,0.1698,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847089 +GCP,europe-west9,c4d-standard-8,reserved_1y,NA,0.262515,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847134 +GCP,europe-west9,c4d-standard-8,reserved_3y,NA,0.187497,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847156 +GCP,europe-west9,c4d-standard-8,spot,NA,0.141671,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847112 +GCP,europe-west9,e2_highcpu_16,on_demand,NA,0.459088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764272 +GCP,europe-west9,e2_highcpu_16,reserved_1y,NA,0.289216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764300 +GCP,europe-west9,e2_highcpu_16,reserved_3y,NA,0.206592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764314 +GCP,europe-west9,e2_highcpu_16,spot,NA,0.183536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764286 +GCP,europe-west9,e2_highcpu_32,on_demand,NA,0.918176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765303 +GCP,europe-west9,e2_highcpu_32,reserved_1y,NA,0.578432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765332 +GCP,europe-west9,e2_highcpu_32,reserved_3y,NA,0.413184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765346 +GCP,europe-west9,e2_highcpu_32,spot,NA,0.367072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765318 +GCP,europe-west9,e2_highmem_16,on_demand,NA,0.83888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763161 +GCP,europe-west9,e2_highmem_16,reserved_1y,NA,0.528448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763188 +GCP,europe-west9,e2_highmem_16,reserved_3y,NA,0.377504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763202 +GCP,europe-west9,e2_highmem_16,spot,NA,0.334848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763175 +GCP,europe-west9,e2_highmem_2,on_demand,NA,0.10486,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760048 +GCP,europe-west9,e2_highmem_2,reserved_1y,NA,0.066056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760076 +GCP,europe-west9,e2_highmem_2,reserved_3y,NA,0.047188,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760090 +GCP,europe-west9,e2_highmem_2,spot,NA,0.041856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760062 +GCP,europe-west9,e2_highmem_4,on_demand,NA,0.20972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761089 +GCP,europe-west9,e2_highmem_4,reserved_1y,NA,0.132112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761116 +GCP,europe-west9,e2_highmem_4,reserved_3y,NA,0.094376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761130 +GCP,europe-west9,e2_highmem_4,spot,NA,0.083712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761102 +GCP,europe-west9,e2_highmem_8,on_demand,NA,0.41944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762113 +GCP,europe-west9,e2_highmem_8,reserved_1y,NA,0.264224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762141 +GCP,europe-west9,e2_highmem_8,reserved_3y,NA,0.188752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762155 +GCP,europe-west9,e2_highmem_8,spot,NA,0.167424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762126 +GCP,europe-west9,e2_standard_16,on_demand,NA,0.621856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768601 +GCP,europe-west9,e2_standard_16,reserved_1y,NA,0.391744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768631 +GCP,europe-west9,e2_standard_16,reserved_3y,NA,0.27984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768646 +GCP,europe-west9,e2_standard_16,spot,NA,0.248384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768616 +GCP,europe-west9,e2_standard_32,on_demand,NA,1.243712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769687 +GCP,europe-west9,e2_standard_32,reserved_1y,NA,0.783488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769716 +GCP,europe-west9,e2_standard_32,reserved_3y,NA,0.55968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769730 +GCP,europe-west9,e2_standard_32,spot,NA,0.496768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769701 +GCP,europe-west9,e2_standard_4,on_demand,NA,0.155464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766518 +GCP,europe-west9,e2_standard_4,reserved_1y,NA,0.097936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766546 +GCP,europe-west9,e2_standard_4,reserved_3y,NA,0.06996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766560 +GCP,europe-west9,e2_standard_4,spot,NA,0.062096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766532 +GCP,europe-west9,e2_standard_8,on_demand,NA,0.310928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767568 +GCP,europe-west9,e2_standard_8,reserved_1y,NA,0.195872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767595 +GCP,europe-west9,e2_standard_8,reserved_3y,NA,0.13992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767609 +GCP,europe-west9,e2_standard_8,spot,NA,0.124192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767581 +GCP,europe-west9,g2-standard-12,on_demand,NA,0.510836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786890 +GCP,europe-west9,g2-standard-12,reserved_1y,NA,0.321827,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786925 +GCP,europe-west9,g2-standard-12,reserved_3y,NA,0.229876,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786938 +GCP,europe-west9,g2-standard-12,spot,NA,0.13758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786904 +GCP,europe-west9,g2-standard-16,on_demand,NA,0.681115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787970 +GCP,europe-west9,g2-standard-16,reserved_1y,NA,0.429102,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787999 +GCP,europe-west9,g2-standard-16,reserved_3y,NA,0.306502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788013 +GCP,europe-west9,g2-standard-16,spot,NA,0.18344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787984 +GCP,europe-west9,g2-standard-24,on_demand,NA,1.021673,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789024 +GCP,europe-west9,g2-standard-24,reserved_1y,NA,0.643654,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789052 +GCP,europe-west9,g2-standard-24,reserved_3y,NA,0.459753,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789066 +GCP,europe-west9,g2-standard-24,spot,NA,0.27516,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789038 +GCP,europe-west9,g2-standard-32,on_demand,NA,1.36223,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790055 +GCP,europe-west9,g2-standard-32,reserved_1y,NA,0.858205,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790082 +GCP,europe-west9,g2-standard-32,reserved_3y,NA,0.613004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790096 +GCP,europe-west9,g2-standard-32,spot,NA,0.36688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790068 +GCP,europe-west9,g2-standard-4,on_demand,NA,0.170279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784820 +GCP,europe-west9,g2-standard-4,reserved_1y,NA,0.107276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784849 +GCP,europe-west9,g2-standard-4,reserved_3y,NA,0.076625,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784863 +GCP,europe-west9,g2-standard-4,spot,NA,0.04586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784834 +GCP,europe-west9,g2-standard-48,on_demand,NA,2.043345,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791109 +GCP,europe-west9,g2-standard-48,reserved_1y,NA,1.287307,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791137 +GCP,europe-west9,g2-standard-48,reserved_3y,NA,0.919505,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791151 +GCP,europe-west9,g2-standard-48,spot,NA,0.55032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791123 +GCP,europe-west9,g2-standard-8,on_demand,NA,0.340558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785862 +GCP,europe-west9,g2-standard-8,reserved_1y,NA,0.214551,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785890 +GCP,europe-west9,g2-standard-8,reserved_3y,NA,0.153251,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785904 +GCP,europe-west9,g2-standard-8,spot,NA,0.09172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785876 +GCP,europe-west9,g2-standard-96,on_demand,NA,4.08669,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792220 +GCP,europe-west9,g2-standard-96,reserved_1y,NA,2.574615,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792248 +GCP,europe-west9,g2-standard-96,reserved_3y,NA,1.839011,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792262 +GCP,europe-west9,g2-standard-96,spot,NA,1.100641,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792234 +GCP,europe-west9,n1-highcpu-16,on_demand,NA,0.657475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690932 +GCP,europe-west9,n1-highcpu-16,reserved_1y,NA,0.414205,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690961 +GCP,europe-west9,n1-highcpu-16,reserved_3y,NA,0.295871,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690975 +GCP,europe-west9,n1-highcpu-16,spot,NA,0.117632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690946 +GCP,europe-west9,n1-highcpu-32,on_demand,NA,1.31495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691789 +GCP,europe-west9,n1-highcpu-32,reserved_1y,NA,0.828411,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691817 +GCP,europe-west9,n1-highcpu-32,reserved_3y,NA,0.591741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691831 +GCP,europe-west9,n1-highcpu-32,spot,NA,0.235264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691803 +GCP,europe-west9,n1-highcpu-64,on_demand,NA,2.6299,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692705 +GCP,europe-west9,n1-highcpu-64,reserved_1y,NA,1.656822,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692733 +GCP,europe-west9,n1-highcpu-64,reserved_3y,NA,1.183482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692747 +GCP,europe-west9,n1-highcpu-64,spot,NA,0.470528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692719 +GCP,europe-west9,n1-highcpu-96,on_demand,NA,3.94485,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693542 +GCP,europe-west9,n1-highcpu-96,reserved_1y,NA,2.485232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693569 +GCP,europe-west9,n1-highcpu-96,reserved_3y,NA,1.775223,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693583 +GCP,europe-west9,n1-highcpu-96,spot,NA,0.705792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693555 +GCP,europe-west9,n1-highmem-16,on_demand,NA,1.097852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687418 +GCP,europe-west9,n1-highmem-16,reserved_1y,NA,0.691611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687447 +GCP,europe-west9,n1-highmem-16,reserved_3y,NA,0.494076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687461 +GCP,europe-west9,n1-highmem-16,spot,NA,0.19648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687432 +GCP,europe-west9,n1-highmem-32,on_demand,NA,2.195704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688292 +GCP,europe-west9,n1-highmem-32,reserved_1y,NA,1.383221,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688321 +GCP,europe-west9,n1-highmem-32,reserved_3y,NA,0.988153,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688335 +GCP,europe-west9,n1-highmem-32,spot,NA,0.39296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688306 +GCP,europe-west9,n1-highmem-4,on_demand,NA,0.274463,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685646 +GCP,europe-west9,n1-highmem-4,reserved_1y,NA,0.172903,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685689 +GCP,europe-west9,n1-highmem-4,reserved_3y,NA,0.123519,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685702 +GCP,europe-west9,n1-highmem-4,spot,NA,0.04912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685675 +GCP,europe-west9,n1-highmem-64,on_demand,NA,4.391407,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689223 +GCP,europe-west9,n1-highmem-64,reserved_1y,NA,2.766442,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689252 +GCP,europe-west9,n1-highmem-64,reserved_3y,NA,1.976306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689266 +GCP,europe-west9,n1-highmem-64,spot,NA,0.78592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689237 +GCP,europe-west9,n1-highmem-8,on_demand,NA,0.548926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686500 +GCP,europe-west9,n1-highmem-8,reserved_1y,NA,0.345805,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686529 +GCP,europe-west9,n1-highmem-8,reserved_3y,NA,0.247038,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686543 +GCP,europe-west9,n1-highmem-8,spot,NA,0.09824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686514 +GCP,europe-west9,n1-highmem-96,on_demand,NA,6.587111,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690114 +GCP,europe-west9,n1-highmem-96,reserved_1y,NA,4.149663,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690145 +GCP,europe-west9,n1-highmem-96,reserved_3y,NA,2.964459,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690159 +GCP,europe-west9,n1-highmem-96,spot,NA,1.17888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690130 +GCP,europe-west9,n1-standard-16,on_demand,NA,0.881595,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681735 +GCP,europe-west9,n1-standard-16,reserved_1y,NA,0.555385,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681763 +GCP,europe-west9,n1-standard-16,reserved_3y,NA,0.396743,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681777 +GCP,europe-west9,n1-standard-16,spot,NA,0.15776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681749 +GCP,europe-west9,n1-standard-32,on_demand,NA,1.763191,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682719 +GCP,europe-west9,n1-standard-32,reserved_1y,NA,1.11077,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682747 +GCP,europe-west9,n1-standard-32,reserved_3y,NA,0.793486,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682761 +GCP,europe-west9,n1-standard-32,spot,NA,0.31552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682733 +GCP,europe-west9,n1-standard-4,on_demand,NA,0.220399,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679996 +GCP,europe-west9,n1-standard-4,reserved_1y,NA,0.138846,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680024 +GCP,europe-west9,n1-standard-4,reserved_3y,NA,0.099186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680037 +GCP,europe-west9,n1-standard-4,spot,NA,0.03944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680010 +GCP,europe-west9,n1-standard-64,on_demand,NA,3.526381,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683659 +GCP,europe-west9,n1-standard-64,reserved_1y,NA,2.221539,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683692 +GCP,europe-west9,n1-standard-64,reserved_3y,NA,1.586973,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683706 +GCP,europe-west9,n1-standard-64,spot,NA,0.63104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683678 +GCP,europe-west9,n1-standard-8,on_demand,NA,0.440798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680882 +GCP,europe-west9,n1-standard-8,reserved_1y,NA,0.277692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680909 +GCP,europe-west9,n1-standard-8,reserved_3y,NA,0.198372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680923 +GCP,europe-west9,n1-standard-8,spot,NA,0.07888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680896 +GCP,europe-west9,n1-standard-96,on_demand,NA,5.289572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684762 +GCP,europe-west9,n1-standard-96,reserved_1y,NA,3.332309,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684789 +GCP,europe-west9,n1-standard-96,reserved_3y,NA,2.380459,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684802 +GCP,europe-west9,n1-standard-96,spot,NA,0.94656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684775 +GCP,europe-west9,n2-highcpu-16,on_demand,NA,0.665339,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711307 +GCP,europe-west9,n2-highcpu-16,reserved_1y,NA,0.419159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711334 +GCP,europe-west9,n2-highcpu-16,reserved_3y,NA,0.29941,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711348 +GCP,europe-west9,n2-highcpu-16,spot,NA,0.18776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711321 +GCP,europe-west9,n2-highcpu-32,on_demand,NA,1.330678,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712414 +GCP,europe-west9,n2-highcpu-32,reserved_1y,NA,0.838318,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712442 +GCP,europe-west9,n2-highcpu-32,reserved_3y,NA,0.59882,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712456 +GCP,europe-west9,n2-highcpu-32,spot,NA,0.37552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712429 +GCP,europe-west9,n2-highcpu-48,on_demand,NA,1.996017,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713532 +GCP,europe-west9,n2-highcpu-48,reserved_1y,NA,1.257477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713560 +GCP,europe-west9,n2-highcpu-48,reserved_3y,NA,0.89823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713575 +GCP,europe-west9,n2-highcpu-48,spot,NA,0.56328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713546 +GCP,europe-west9,n2-highcpu-64,on_demand,NA,2.661356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714621 +GCP,europe-west9,n2-highcpu-64,reserved_1y,NA,1.676636,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714649 +GCP,europe-west9,n2-highcpu-64,reserved_3y,NA,1.19764,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714714 +GCP,europe-west9,n2-highcpu-64,spot,NA,0.75104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714635 +GCP,europe-west9,n2-highcpu-80,on_demand,NA,3.326694,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715713 +GCP,europe-west9,n2-highcpu-80,reserved_1y,NA,2.095795,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715786 +GCP,europe-west9,n2-highcpu-80,reserved_3y,NA,1.49705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715803 +GCP,europe-west9,n2-highcpu-80,spot,NA,0.9388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715726 +GCP,europe-west9,n2-highmem-16,on_demand,NA,1.21581,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705722 +GCP,europe-west9,n2-highmem-16,reserved_1y,NA,0.765916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705751 +GCP,europe-west9,n2-highmem-16,reserved_3y,NA,0.547167,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705765 +GCP,europe-west9,n2-highmem-16,spot,NA,0.34288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705737 +GCP,europe-west9,n2-highmem-2,on_demand,NA,0.151976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702382 +GCP,europe-west9,n2-highmem-2,reserved_1y,NA,0.095739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702410 +GCP,europe-west9,n2-highmem-2,reserved_3y,NA,0.068396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702424 +GCP,europe-west9,n2-highmem-2,spot,NA,0.04286,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702396 +GCP,europe-west9,n2-highmem-32,on_demand,NA,2.43162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706851 +GCP,europe-west9,n2-highmem-32,reserved_1y,NA,1.531831,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706881 +GCP,europe-west9,n2-highmem-32,reserved_3y,NA,1.094335,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706895 +GCP,europe-west9,n2-highmem-32,spot,NA,0.68576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706865 +GCP,europe-west9,n2-highmem-4,on_demand,NA,0.303952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703486 +GCP,europe-west9,n2-highmem-4,reserved_1y,NA,0.191479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703515 +GCP,europe-west9,n2-highmem-4,reserved_3y,NA,0.136792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703530 +GCP,europe-west9,n2-highmem-4,spot,NA,0.08572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703501 +GCP,europe-west9,n2-highmem-48,on_demand,NA,3.64743,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707995 +GCP,europe-west9,n2-highmem-48,reserved_1y,NA,2.297747,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708023 +GCP,europe-west9,n2-highmem-48,reserved_3y,NA,1.641502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708037 +GCP,europe-west9,n2-highmem-48,spot,NA,1.02864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708009 +GCP,europe-west9,n2-highmem-64,on_demand,NA,4.86324,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709082 +GCP,europe-west9,n2-highmem-64,reserved_1y,NA,3.063662,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709109 +GCP,europe-west9,n2-highmem-64,reserved_3y,NA,2.188669,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709123 +GCP,europe-west9,n2-highmem-64,spot,NA,1.37152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709095 +GCP,europe-west9,n2-highmem-8,on_demand,NA,0.607905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704632 +GCP,europe-west9,n2-highmem-8,reserved_1y,NA,0.382958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704659 +GCP,europe-west9,n2-highmem-8,reserved_3y,NA,0.273584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704673 +GCP,europe-west9,n2-highmem-8,spot,NA,0.17144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704646 +GCP,europe-west9,n2-highmem-80,on_demand,NA,6.07905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710170 +GCP,europe-west9,n2-highmem-80,reserved_1y,NA,3.829578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710197 +GCP,europe-west9,n2-highmem-80,reserved_3y,NA,2.735837,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710211 +GCP,europe-west9,n2-highmem-80,spot,NA,1.7144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710184 +GCP,europe-west9,n2-standard-16,on_demand,NA,0.901255,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696807 +GCP,europe-west9,n2-standard-16,reserved_1y,NA,0.567769,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696835 +GCP,europe-west9,n2-standard-16,reserved_3y,NA,0.405592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696850 +GCP,europe-west9,n2-standard-16,spot,NA,0.25424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696820 +GCP,europe-west9,n2-standard-32,on_demand,NA,1.80251,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697932 +GCP,europe-west9,n2-standard-32,reserved_1y,NA,1.135538,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697960 +GCP,europe-west9,n2-standard-32,reserved_3y,NA,0.811183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697974 +GCP,europe-west9,n2-standard-32,spot,NA,0.50848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697946 +GCP,europe-west9,n2-standard-4,on_demand,NA,0.225314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694535 +GCP,europe-west9,n2-standard-4,reserved_1y,NA,0.141942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694564 +GCP,europe-west9,n2-standard-4,reserved_3y,NA,0.101398,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694578 +GCP,europe-west9,n2-standard-4,spot,NA,0.06356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694550 +GCP,europe-west9,n2-standard-48,on_demand,NA,2.703765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699057 +GCP,europe-west9,n2-standard-48,reserved_1y,NA,1.703307,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699086 +GCP,europe-west9,n2-standard-48,reserved_3y,NA,1.216775,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699101 +GCP,europe-west9,n2-standard-48,spot,NA,0.76272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699071 +GCP,europe-west9,n2-standard-64,on_demand,NA,3.60502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700161 +GCP,europe-west9,n2-standard-64,reserved_1y,NA,2.271076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700190 +GCP,europe-west9,n2-standard-64,reserved_3y,NA,1.622367,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700204 +GCP,europe-west9,n2-standard-64,spot,NA,1.01696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700176 +GCP,europe-west9,n2-standard-8,on_demand,NA,0.450628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695649 +GCP,europe-west9,n2-standard-8,reserved_1y,NA,0.283884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695677 +GCP,europe-west9,n2-standard-8,reserved_3y,NA,0.202796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695691 +GCP,europe-west9,n2-standard-8,spot,NA,0.12712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695663 +GCP,europe-west9,n2-standard-80,on_demand,NA,4.506275,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701294 +GCP,europe-west9,n2-standard-80,reserved_1y,NA,2.838845,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701322 +GCP,europe-west9,n2-standard-80,reserved_3y,NA,2.027958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701335 +GCP,europe-west9,n2-standard-80,spot,NA,1.2712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701308 +GCP,europe-west9,n2d-highcpu-128,on_demand,NA,0.545174,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752702 +GCP,europe-west9,n2d-highcpu-128,reserved_1y,NA,2.917335,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752729 +GCP,europe-west9,n2d-highcpu-128,reserved_3y,NA,2.083917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752743 +GCP,europe-west9,n2d-highcpu-128,spot,NA,1.085568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752715 +GCP,europe-west9,n2d-highcpu-16,on_demand,NA,0.068147,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746397 +GCP,europe-west9,n2d-highcpu-16,reserved_1y,NA,0.364667,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746424 +GCP,europe-west9,n2d-highcpu-16,reserved_3y,NA,0.26049,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746438 +GCP,europe-west9,n2d-highcpu-16,spot,NA,0.135696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746410 +GCP,europe-west9,n2d-highcpu-224,on_demand,NA,0.954055,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753727 +GCP,europe-west9,n2d-highcpu-224,reserved_1y,NA,5.105336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753754 +GCP,europe-west9,n2d-highcpu-224,reserved_3y,NA,3.646854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753768 +GCP,europe-west9,n2d-highcpu-224,spot,NA,1.899744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753740 +GCP,europe-west9,n2d-highcpu-32,on_demand,NA,0.136294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747438 +GCP,europe-west9,n2d-highcpu-32,reserved_1y,NA,0.729334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747467 +GCP,europe-west9,n2d-highcpu-32,reserved_3y,NA,0.520979,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747482 +GCP,europe-west9,n2d-highcpu-32,spot,NA,0.271392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747453 +GCP,europe-west9,n2d-highcpu-48,on_demand,NA,0.20444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748509 +GCP,europe-west9,n2d-highcpu-48,reserved_1y,NA,1.094001,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748536 +GCP,europe-west9,n2d-highcpu-48,reserved_3y,NA,0.781469,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748551 +GCP,europe-west9,n2d-highcpu-48,spot,NA,0.407088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748522 +GCP,europe-west9,n2d-highcpu-64,on_demand,NA,0.272587,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749552 +GCP,europe-west9,n2d-highcpu-64,reserved_1y,NA,1.458668,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749580 +GCP,europe-west9,n2d-highcpu-64,reserved_3y,NA,1.041958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749595 +GCP,europe-west9,n2d-highcpu-64,spot,NA,0.542784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749566 +GCP,europe-west9,n2d-highcpu-80,on_demand,NA,0.340734,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750601 +GCP,europe-west9,n2d-highcpu-80,reserved_1y,NA,1.823334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750630 +GCP,europe-west9,n2d-highcpu-80,reserved_3y,NA,1.302448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750643 +GCP,europe-west9,n2d-highcpu-80,spot,NA,0.67848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750615 +GCP,europe-west9,n2d-highcpu-96,on_demand,NA,0.408881,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751648 +GCP,europe-west9,n2d-highcpu-96,reserved_1y,NA,2.188001,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751676 +GCP,europe-west9,n2d-highcpu-96,reserved_3y,NA,1.562938,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751689 +GCP,europe-west9,n2d-highcpu-96,spot,NA,0.814176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751662 +GCP,europe-west9,n2d-highmem-16,on_demand,NA,0.187868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740121 +GCP,europe-west9,n2d-highmem-16,reserved_1y,NA,0.666341,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740148 +GCP,europe-west9,n2d-highmem-16,reserved_3y,NA,0.476027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740164 +GCP,europe-west9,n2d-highmem-16,spot,NA,0.247808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740135 +GCP,europe-west9,n2d-highmem-2,on_demand,NA,0.023484,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736901 +GCP,europe-west9,n2d-highmem-2,reserved_1y,NA,0.083293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736929 +GCP,europe-west9,n2d-highmem-2,reserved_3y,NA,0.059503,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736943 +GCP,europe-west9,n2d-highmem-2,spot,NA,0.030976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736915 +GCP,europe-west9,n2d-highmem-32,on_demand,NA,0.375736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741141 +GCP,europe-west9,n2d-highmem-32,reserved_1y,NA,1.332682,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741168 +GCP,europe-west9,n2d-highmem-32,reserved_3y,NA,0.952054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741181 +GCP,europe-west9,n2d-highmem-32,spot,NA,0.495616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741155 +GCP,europe-west9,n2d-highmem-4,on_demand,NA,0.046967,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737970 +GCP,europe-west9,n2d-highmem-4,reserved_1y,NA,0.166585,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738004 +GCP,europe-west9,n2d-highmem-4,reserved_3y,NA,0.119007,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738019 +GCP,europe-west9,n2d-highmem-4,spot,NA,0.061952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737988 +GCP,europe-west9,n2d-highmem-48,on_demand,NA,0.563604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742219 +GCP,europe-west9,n2d-highmem-48,reserved_1y,NA,1.999023,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742246 +GCP,europe-west9,n2d-highmem-48,reserved_3y,NA,1.428081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742260 +GCP,europe-west9,n2d-highmem-48,spot,NA,0.743424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742232 +GCP,europe-west9,n2d-highmem-64,on_demand,NA,0.751472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743267 +GCP,europe-west9,n2d-highmem-64,reserved_1y,NA,2.665364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743295 +GCP,europe-west9,n2d-highmem-64,reserved_3y,NA,1.904108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743308 +GCP,europe-west9,n2d-highmem-64,spot,NA,0.991232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743281 +GCP,europe-west9,n2d-highmem-8,on_demand,NA,0.093934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739054 +GCP,europe-west9,n2d-highmem-8,reserved_1y,NA,0.333171,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739082 +GCP,europe-west9,n2d-highmem-8,reserved_3y,NA,0.238013,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739097 +GCP,europe-west9,n2d-highmem-8,spot,NA,0.123904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739069 +GCP,europe-west9,n2d-highmem-80,on_demand,NA,0.93934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744322 +GCP,europe-west9,n2d-highmem-80,reserved_1y,NA,3.331706,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744349 +GCP,europe-west9,n2d-highmem-80,reserved_3y,NA,2.380134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744363 +GCP,europe-west9,n2d-highmem-80,spot,NA,1.23904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744335 +GCP,europe-west9,n2d-highmem-96,on_demand,NA,1.127208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745378 +GCP,europe-west9,n2d-highmem-96,reserved_1y,NA,3.998047,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745406 +GCP,europe-west9,n2d-highmem-96,reserved_3y,NA,2.856161,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745419 +GCP,europe-west9,n2d-highmem-96,spot,NA,1.486848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745392 +GCP,europe-west9,n2d-standard-128,on_demand,NA,0.955647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734815 +GCP,europe-west9,n2d-standard-128,reserved_1y,NA,3.951647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734843 +GCP,europe-west9,n2d-standard-128,reserved_3y,NA,2.822902,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734857 +GCP,europe-west9,n2d-standard-128,spot,NA,1.469952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734829 +GCP,europe-west9,n2d-standard-16,on_demand,NA,0.119456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728493 +GCP,europe-west9,n2d-standard-16,reserved_1y,NA,0.493956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728521 +GCP,europe-west9,n2d-standard-16,reserved_3y,NA,0.352863,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728535 +GCP,europe-west9,n2d-standard-16,spot,NA,0.183744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728507 +GCP,europe-west9,n2d-standard-224,on_demand,NA,1.672382,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735856 +GCP,europe-west9,n2d-standard-224,reserved_1y,NA,6.915382,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735901 +GCP,europe-west9,n2d-standard-224,reserved_3y,NA,4.940078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735915 +GCP,europe-west9,n2d-standard-224,spot,NA,2.572416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735887 +GCP,europe-west9,n2d-standard-32,on_demand,NA,0.238912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729530 +GCP,europe-west9,n2d-standard-32,reserved_1y,NA,0.987912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729557 +GCP,europe-west9,n2d-standard-32,reserved_3y,NA,0.705725,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729571 +GCP,europe-west9,n2d-standard-32,spot,NA,0.367488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729543 +GCP,europe-west9,n2d-standard-4,on_demand,NA,0.029864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726369 +GCP,europe-west9,n2d-standard-4,reserved_1y,NA,0.123489,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726397 +GCP,europe-west9,n2d-standard-4,reserved_3y,NA,0.088216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726411 +GCP,europe-west9,n2d-standard-4,spot,NA,0.045936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726383 +GCP,europe-west9,n2d-standard-48,on_demand,NA,0.358368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730552 +GCP,europe-west9,n2d-standard-48,reserved_1y,NA,1.481868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730580 +GCP,europe-west9,n2d-standard-48,reserved_3y,NA,1.058588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730594 +GCP,europe-west9,n2d-standard-48,spot,NA,0.551232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730566 +GCP,europe-west9,n2d-standard-64,on_demand,NA,0.477823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731648 +GCP,europe-west9,n2d-standard-64,reserved_1y,NA,1.975823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731676 +GCP,europe-west9,n2d-standard-64,reserved_3y,NA,1.411451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731690 +GCP,europe-west9,n2d-standard-64,spot,NA,0.734976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731661 +GCP,europe-west9,n2d-standard-8,on_demand,NA,0.059728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727436 +GCP,europe-west9,n2d-standard-8,reserved_1y,NA,0.246978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727464 +GCP,europe-west9,n2d-standard-8,reserved_3y,NA,0.176431,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727478 +GCP,europe-west9,n2d-standard-8,spot,NA,0.091872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727450 +GCP,europe-west9,n2d-standard-80,on_demand,NA,0.597279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732713 +GCP,europe-west9,n2d-standard-80,reserved_1y,NA,2.469779,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732740 +GCP,europe-west9,n2d-standard-80,reserved_3y,NA,1.764314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732754 +GCP,europe-west9,n2d-standard-80,spot,NA,0.91872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732726 +GCP,europe-west9,n2d-standard-96,on_demand,NA,0.716735,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733740 +GCP,europe-west9,n2d-standard-96,reserved_1y,NA,2.963735,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733767 +GCP,europe-west9,n2d-standard-96,reserved_3y,NA,2.117176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733781 +GCP,europe-west9,n2d-standard-96,spot,NA,1.102464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733754 +GCP,europe-west9,n4-standard-16,on_demand,NA,0.841696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757887 +GCP,europe-west9,n4-standard-16,reserved_1y,NA,0.530259,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757915 +GCP,europe-west9,n4-standard-16,reserved_3y,NA,0.378772,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757929 +GCP,europe-west9,n4-standard-16,spot,NA,0.272224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757901 +GCP,europe-west9,n4-standard-2,on_demand,NA,0.105212,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754761 +GCP,europe-west9,n4-standard-2,reserved_1y,NA,0.066282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754789 +GCP,europe-west9,n4-standard-2,reserved_3y,NA,0.047347,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754803 +GCP,europe-west9,n4-standard-2,spot,NA,0.034028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754775 +GCP,europe-west9,n4-standard-32,on_demand,NA,1.683392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758932 +GCP,europe-west9,n4-standard-32,reserved_1y,NA,1.060518,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758960 +GCP,europe-west9,n4-standard-32,reserved_3y,NA,0.757545,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758974 +GCP,europe-west9,n4-standard-32,spot,NA,0.544448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758946 +GCP,europe-west9,n4-standard-4,on_demand,NA,0.210424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755807 +GCP,europe-west9,n4-standard-4,reserved_1y,NA,0.132565,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755835 +GCP,europe-west9,n4-standard-4,reserved_3y,NA,0.094693,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755848 +GCP,europe-west9,n4-standard-4,spot,NA,0.068056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755821 +GCP,europe-west9,n4-standard-8,on_demand,NA,0.420848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756851 +GCP,europe-west9,n4-standard-8,reserved_1y,NA,0.26513,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756880 +GCP,europe-west9,n4-standard-8,reserved_3y,NA,0.189386,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756894 +GCP,europe-west9,n4-standard-8,spot,NA,0.136112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756866 +GCP,me-central2,a2-highgpu-1g,on_demand,NA,1.183163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771168 +GCP,me-central2,a2-highgpu-1g,reserved_1y,NA,0.745352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771197 +GCP,me-central2,a2-highgpu-1g,reserved_3y,NA,0.414145,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771212 +GCP,me-central2,a2-highgpu-1g,spot,NA,0.354949,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771183 +GCP,me-central2,a2-highgpu-2g,on_demand,NA,2.366326,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772273 +GCP,me-central2,a2-highgpu-2g,reserved_1y,NA,1.490704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772300 +GCP,me-central2,a2-highgpu-2g,reserved_3y,NA,0.82829,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772314 +GCP,me-central2,a2-highgpu-2g,spot,NA,0.709898,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772286 +GCP,me-central2,a2-highgpu-4g,on_demand,NA,4.732653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773362 +GCP,me-central2,a2-highgpu-4g,reserved_1y,NA,2.981408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773391 +GCP,me-central2,a2-highgpu-4g,reserved_3y,NA,1.65658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773405 +GCP,me-central2,a2-highgpu-4g,spot,NA,1.419796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773377 +GCP,me-central2,a2-highgpu-8g,on_demand,NA,9.465306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774483 +GCP,me-central2,a2-highgpu-8g,reserved_1y,NA,5.962816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774511 +GCP,me-central2,a2-highgpu-8g,reserved_3y,NA,3.313159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774524 +GCP,me-central2,a2-highgpu-8g,spot,NA,2.839592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774497 +GCP,me-central2,a2-megagpu-16g,on_demand,NA,14.075162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775576 +GCP,me-central2,a2-megagpu-16g,reserved_1y,NA,8.866688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775603 +GCP,me-central2,a2-megagpu-16g,reserved_3y,NA,4.926905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775617 +GCP,me-central2,a2-megagpu-16g,spot,NA,4.222548,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775590 +GCP,me-central2,a2-ultragpu-1g,on_demand,NA,1.759395,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776680 +GCP,me-central2,a2-ultragpu-1g,reserved_1y,NA,1.108336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776707 +GCP,me-central2,a2-ultragpu-1g,reserved_3y,NA,0.615863,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776720 +GCP,me-central2,a2-ultragpu-1g,spot,NA,0.527819,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776693 +GCP,me-central2,a2-ultragpu-2g,on_demand,NA,3.51879,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777801 +GCP,me-central2,a2-ultragpu-2g,reserved_1y,NA,2.216672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777830 +GCP,me-central2,a2-ultragpu-2g,reserved_3y,NA,1.231726,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777844 +GCP,me-central2,a2-ultragpu-2g,spot,NA,1.055637,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777815 +GCP,me-central2,a2-ultragpu-4g,on_demand,NA,7.037581,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778842 +GCP,me-central2,a2-ultragpu-4g,reserved_1y,NA,4.433344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778870 +GCP,me-central2,a2-ultragpu-4g,reserved_3y,NA,2.463453,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778884 +GCP,me-central2,a2-ultragpu-4g,spot,NA,2.111274,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778856 +GCP,me-central2,a2-ultragpu-8g,on_demand,NA,14.075162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779940 +GCP,me-central2,a2-ultragpu-8g,reserved_1y,NA,8.866688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779968 +GCP,me-central2,a2-ultragpu-8g,reserved_3y,NA,4.926905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779982 +GCP,me-central2,a2-ultragpu-8g,spot,NA,4.222548,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779954 +GCP,me-central2,a3-highgpu-1g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781008 +GCP,me-central2,a3-highgpu-1g,reserved_1y,NA,1.315792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781037 +GCP,me-central2,a3-highgpu-1g,reserved_3y,NA,0.833861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781051 +GCP,me-central2,a3-highgpu-1g,spot,NA,0.340366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781023 +GCP,me-central2,a3-highgpu-2g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782050 +GCP,me-central2,a3-highgpu-2g,reserved_1y,NA,1.315792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782077 +GCP,me-central2,a3-highgpu-2g,reserved_3y,NA,0.833861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782091 +GCP,me-central2,a3-highgpu-2g,spot,NA,0.340366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782063 +GCP,me-central2,a3-highgpu-4g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783178 +GCP,me-central2,a3-highgpu-4g,reserved_1y,NA,1.315792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783206 +GCP,me-central2,a3-highgpu-4g,reserved_3y,NA,0.833861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783220 +GCP,me-central2,a3-highgpu-4g,spot,NA,0.340366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783192 +GCP,me-central2,a3-highgpu-8g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784230 +GCP,me-central2,a3-highgpu-8g,reserved_1y,NA,1.315792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784257 +GCP,me-central2,a3-highgpu-8g,reserved_3y,NA,0.833861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784271 +GCP,me-central2,a3-highgpu-8g,spot,NA,0.340366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784244 +GCP,me-central2,c2-standard-16,on_demand,NA,1.162214,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722332 +GCP,me-central2,c2-standard-16,reserved_1y,NA,0.73216,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722377 +GCP,me-central2,c2-standard-16,reserved_3y,NA,0.522931,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722400 +GCP,me-central2,c2-standard-16,spot,NA,0.209344,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722355 +GCP,me-central2,c2-standard-30,on_demand,NA,2.179152,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724063 +GCP,me-central2,c2-standard-30,reserved_1y,NA,1.3728,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724109 +GCP,me-central2,c2-standard-30,reserved_3y,NA,0.980496,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724133 +GCP,me-central2,c2-standard-30,spot,NA,0.39252,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724086 +GCP,me-central2,c2-standard-4,on_demand,NA,0.290554,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718881 +GCP,me-central2,c2-standard-4,reserved_1y,NA,0.18304,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718940 +GCP,me-central2,c2-standard-4,reserved_3y,NA,0.130733,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718964 +GCP,me-central2,c2-standard-4,spot,NA,0.052336,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718905 +GCP,me-central2,c2-standard-60,on_demand,NA,4.358304,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725751 +GCP,me-central2,c2-standard-60,reserved_1y,NA,2.7456,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725796 +GCP,me-central2,c2-standard-60,reserved_3y,NA,1.960992,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725819 +GCP,me-central2,c2-standard-60,spot,NA,0.78504,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725773 +GCP,me-central2,c2-standard-8,on_demand,NA,0.581107,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720645 +GCP,me-central2,c2-standard-8,reserved_1y,NA,0.36608,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720691 +GCP,me-central2,c2-standard-8,reserved_3y,NA,0.261466,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720715 +GCP,me-central2,c2-standard-8,spot,NA,0.104672,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720668 +GCP,me-central2,c3-highmem-22,on_demand,NA,2.328621,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801133 +GCP,me-central2,c3-highmem-22,reserved_1y,NA,1.467066,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801160 +GCP,me-central2,c3-highmem-22,reserved_3y,NA,0.991549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801174 +GCP,me-central2,c3-highmem-22,spot,NA,0.253044,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801147 +GCP,me-central2,c3-highmem-4,on_demand,NA,0.423386,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799076 +GCP,me-central2,c3-highmem-4,reserved_1y,NA,0.266739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799103 +GCP,me-central2,c3-highmem-4,reserved_3y,NA,0.180282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799117 +GCP,me-central2,c3-highmem-4,spot,NA,0.046008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799089 +GCP,me-central2,c3-highmem-44,on_demand,NA,4.657242,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802150 +GCP,me-central2,c3-highmem-44,reserved_1y,NA,2.934131,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802177 +GCP,me-central2,c3-highmem-44,reserved_3y,NA,1.983098,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802190 +GCP,me-central2,c3-highmem-44,spot,NA,0.506088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802164 +GCP,me-central2,c3-highmem-8,on_demand,NA,0.846771,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800127 +GCP,me-central2,c3-highmem-8,reserved_1y,NA,0.533478,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800153 +GCP,me-central2,c3-highmem-8,reserved_3y,NA,0.360563,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800167 +GCP,me-central2,c3-highmem-8,spot,NA,0.092016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800140 +GCP,me-central2,c3-highmem-88,on_demand,NA,9.314483,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803204 +GCP,me-central2,c3-highmem-88,reserved_1y,NA,5.868262,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803234 +GCP,me-central2,c3-highmem-88,reserved_3y,NA,3.966195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803247 +GCP,me-central2,c3-highmem-88,spot,NA,1.012176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803217 +GCP,me-central2,c3-standard-22 (-lssd),on_demand,NA,1.77415,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795858 +GCP,me-central2,c3-standard-22 (-lssd),reserved_1y,NA,1.117741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795936 +GCP,me-central2,c3-standard-22 (-lssd),reserved_3y,NA,0.735011,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795950 +GCP,me-central2,c3-standard-22 (-lssd),spot,NA,0.181412,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795917 +GCP,me-central2,c3-standard-4 (-lssd),on_demand,NA,0.322573,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793748 +GCP,me-central2,c3-standard-4 (-lssd),reserved_1y,NA,0.203226,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793775 +GCP,me-central2,c3-standard-4 (-lssd),reserved_3y,NA,0.133638,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793789 +GCP,me-central2,c3-standard-4 (-lssd),spot,NA,0.032984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793762 +GCP,me-central2,c3-standard-44 (-lssd),on_demand,NA,3.548301,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796959 +GCP,me-central2,c3-standard-44 (-lssd),reserved_1y,NA,2.235482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796985 +GCP,me-central2,c3-standard-44 (-lssd),reserved_3y,NA,1.470022,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796999 +GCP,me-central2,c3-standard-44 (-lssd),spot,NA,0.362824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796973 +GCP,me-central2,c3-standard-8 (-lssd),on_demand,NA,0.645146,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794781 +GCP,me-central2,c3-standard-8 (-lssd),reserved_1y,NA,0.406451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794809 +GCP,me-central2,c3-standard-8 (-lssd),reserved_3y,NA,0.267277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794822 +GCP,me-central2,c3-standard-8 (-lssd),spot,NA,0.065968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794795 +GCP,me-central2,c3-standard-88 (-lssd),on_demand,NA,7.096602,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798017 +GCP,me-central2,c3-standard-88 (-lssd),reserved_1y,NA,4.470963,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798045 +GCP,me-central2,c3-standard-88 (-lssd),reserved_3y,NA,2.940045,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798059 +GCP,me-central2,c3-standard-88 (-lssd),spot,NA,0.725648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798031 +GCP,me-central2,c3d-highmem-16 (-lssd),on_demand,NA,0.886484,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814956 +GCP,me-central2,c3d-highmem-16 (-lssd),reserved_1y,NA,0.987546,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814984 +GCP,me-central2,c3d-highmem-16 (-lssd),reserved_3y,NA,0.705306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814998 +GCP,me-central2,c3d-highmem-16 (-lssd),spot,NA,0.578437,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814970 +GCP,me-central2,c3d-highmem-180 (-lssd),on_demand,NA,9.97295,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819128 +GCP,me-central2,c3d-highmem-180 (-lssd),reserved_1y,NA,11.109888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819156 +GCP,me-central2,c3d-highmem-180 (-lssd),reserved_3y,NA,7.934688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819170 +GCP,me-central2,c3d-highmem-180 (-lssd),spot,NA,6.507418,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819142 +GCP,me-central2,c3d-highmem-30 (-lssd),on_demand,NA,1.662158,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816022 +GCP,me-central2,c3d-highmem-30 (-lssd),reserved_1y,NA,1.851648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816050 +GCP,me-central2,c3d-highmem-30 (-lssd),reserved_3y,NA,1.322448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816064 +GCP,me-central2,c3d-highmem-30 (-lssd),spot,NA,1.08457,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816036 +GCP,me-central2,c3d-highmem-360 (-lssd),on_demand,NA,19.945901,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820175 +GCP,me-central2,c3d-highmem-360 (-lssd),reserved_1y,NA,22.219776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820203 +GCP,me-central2,c3d-highmem-360 (-lssd),reserved_3y,NA,15.869376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820217 +GCP,me-central2,c3d-highmem-360 (-lssd),spot,NA,13.014835,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820189 +GCP,me-central2,c3d-highmem-4 (-lssd),on_demand,NA,0.221621,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812691 +GCP,me-central2,c3d-highmem-4 (-lssd),reserved_1y,NA,0.246886,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812718 +GCP,me-central2,c3d-highmem-4 (-lssd),reserved_3y,NA,0.176326,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812734 +GCP,me-central2,c3d-highmem-4 (-lssd),spot,NA,0.144609,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812704 +GCP,me-central2,c3d-highmem-60 (-lssd),on_demand,NA,3.324317,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817058 +GCP,me-central2,c3d-highmem-60 (-lssd),reserved_1y,NA,3.703296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817085 +GCP,me-central2,c3d-highmem-60 (-lssd),reserved_3y,NA,2.644896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817099 +GCP,me-central2,c3d-highmem-60 (-lssd),spot,NA,2.169139,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817071 +GCP,me-central2,c3d-highmem-8 (-lssd),on_demand,NA,0.443242,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813743 +GCP,me-central2,c3d-highmem-8 (-lssd),reserved_1y,NA,0.493773,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813771 +GCP,me-central2,c3d-highmem-8 (-lssd),reserved_3y,NA,0.352653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813785 +GCP,me-central2,c3d-highmem-8 (-lssd),spot,NA,0.289219,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813757 +GCP,me-central2,c3d-highmem-90 (-lssd),on_demand,NA,4.986475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818090 +GCP,me-central2,c3d-highmem-90 (-lssd),reserved_1y,NA,5.554944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818118 +GCP,me-central2,c3d-highmem-90 (-lssd),reserved_3y,NA,3.967344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818132 +GCP,me-central2,c3d-highmem-90 (-lssd),spot,NA,3.253709,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818104 +GCP,me-central2,c3d-standard-16 (-lssd),on_demand,NA,0.481083,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806329 +GCP,me-central2,c3d-standard-16 (-lssd),reserved_1y,NA,0.73216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806357 +GCP,me-central2,c3d-standard-16 (-lssd),reserved_3y,NA,0.522931,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806371 +GCP,me-central2,c3d-standard-16 (-lssd),spot,NA,0.440581,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806343 +GCP,me-central2,c3d-standard-180 (-lssd),on_demand,NA,5.412182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810577 +GCP,me-central2,c3d-standard-180 (-lssd),reserved_1y,NA,8.2368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810607 +GCP,me-central2,c3d-standard-180 (-lssd),reserved_3y,NA,5.882976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810620 +GCP,me-central2,c3d-standard-180 (-lssd),spot,NA,4.956538,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810593 +GCP,me-central2,c3d-standard-30 (-lssd),on_demand,NA,0.90203,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807392 +GCP,me-central2,c3d-standard-30 (-lssd),reserved_1y,NA,1.3728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807420 +GCP,me-central2,c3d-standard-30 (-lssd),reserved_3y,NA,0.980496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807434 +GCP,me-central2,c3d-standard-30 (-lssd),spot,NA,0.82609,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807406 +GCP,me-central2,c3d-standard-360 (-lssd),on_demand,NA,10.824365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811627 +GCP,me-central2,c3d-standard-360 (-lssd),reserved_1y,NA,16.4736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811655 +GCP,me-central2,c3d-standard-360 (-lssd),reserved_3y,NA,11.765952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811669 +GCP,me-central2,c3d-standard-360 (-lssd),spot,NA,9.913075,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811641 +GCP,me-central2,c3d-standard-4 (-lssd),on_demand,NA,0.120271,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804263 +GCP,me-central2,c3d-standard-4 (-lssd),reserved_1y,NA,0.18304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804290 +GCP,me-central2,c3d-standard-4 (-lssd),reserved_3y,NA,0.130733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804304 +GCP,me-central2,c3d-standard-4 (-lssd),spot,NA,0.110145,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804277 +GCP,me-central2,c3d-standard-60 (-lssd),on_demand,NA,1.804061,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808464 +GCP,me-central2,c3d-standard-60 (-lssd),reserved_1y,NA,2.7456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808494 +GCP,me-central2,c3d-standard-60 (-lssd),reserved_3y,NA,1.960992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808508 +GCP,me-central2,c3d-standard-60 (-lssd),spot,NA,1.652179,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808478 +GCP,me-central2,c3d-standard-8 (-lssd),on_demand,NA,0.240541,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805280 +GCP,me-central2,c3d-standard-8 (-lssd),reserved_1y,NA,0.36608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805309 +GCP,me-central2,c3d-standard-8 (-lssd),reserved_3y,NA,0.261466,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805324 +GCP,me-central2,c3d-standard-8 (-lssd),spot,NA,0.220291,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805294 +GCP,me-central2,c3d-standard-90 (-lssd),on_demand,NA,2.706091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809519 +GCP,me-central2,c3d-standard-90 (-lssd),reserved_1y,NA,4.1184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809547 +GCP,me-central2,c3d-standard-90 (-lssd),reserved_3y,NA,2.941488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809561 +GCP,me-central2,c3d-standard-90 (-lssd),spot,NA,2.478269,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809533 +GCP,me-central2,c4-standard-16,on_demand,NA,0.924845,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841543 +GCP,me-central2,c4-standard-16,reserved_1y,NA,0.797024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841571 +GCP,me-central2,c4-standard-16,reserved_3y,NA,0.569293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841585 +GCP,me-central2,c4-standard-16,spot,NA,0.4732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841557 +GCP,me-central2,c4-standard-2,on_demand,NA,0.115291,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838276 +GCP,me-central2,c4-standard-2,reserved_1y,NA,0.097643,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838305 +GCP,me-central2,c4-standard-2,reserved_3y,NA,0.069744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838319 +GCP,me-central2,c4-standard-2,spot,NA,0.057972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838290 +GCP,me-central2,c4-standard-24,on_demand,NA,1.387267,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842622 +GCP,me-central2,c4-standard-24,reserved_1y,NA,1.195536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842650 +GCP,me-central2,c4-standard-24,reserved_3y,NA,0.853939,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842664 +GCP,me-central2,c4-standard-24,spot,NA,0.7098,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842636 +GCP,me-central2,c4-standard-32,on_demand,NA,1.84969,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843821 +GCP,me-central2,c4-standard-32,reserved_1y,NA,1.594048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843855 +GCP,me-central2,c4-standard-32,reserved_3y,NA,1.138586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843892 +GCP,me-central2,c4-standard-32,spot,NA,0.9464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843838 +GCP,me-central2,c4-standard-4,on_demand,NA,0.231211,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839312 +GCP,me-central2,c4-standard-4,reserved_1y,NA,0.199256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839340 +GCP,me-central2,c4-standard-4,reserved_3y,NA,0.142323,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839354 +GCP,me-central2,c4-standard-4,spot,NA,0.1183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839326 +GCP,me-central2,c4-standard-8,on_demand,NA,0.462422,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840467 +GCP,me-central2,c4-standard-8,reserved_1y,NA,0.398512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840495 +GCP,me-central2,c4-standard-8,reserved_3y,NA,0.284646,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840509 +GCP,me-central2,c4-standard-8,spot,NA,0.2366,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840481 +GCP,me-central2,c4a-highmem-16 (-lssd),on_demand,NA,0.86176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832422 +GCP,me-central2,c4a-highmem-16 (-lssd),reserved_1y,NA,0.99504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832457 +GCP,me-central2,c4a-highmem-16 (-lssd),reserved_3y,NA,0.67936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832471 +GCP,me-central2,c4a-highmem-16 (-lssd),spot,NA,0.184032,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832443 +GCP,me-central2,c4a-highmem-32 (-lssd),on_demand,NA,1.72352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833628 +GCP,me-central2,c4a-highmem-32 (-lssd),reserved_1y,NA,1.99008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833665 +GCP,me-central2,c4a-highmem-32 (-lssd),reserved_3y,NA,1.35872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833678 +GCP,me-central2,c4a-highmem-32 (-lssd),spot,NA,0.368064,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833651 +GCP,me-central2,c4a-highmem-4 (-lssd),on_demand,NA,0.21544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829954 +GCP,me-central2,c4a-highmem-4 (-lssd),reserved_1y,NA,0.24876,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829989 +GCP,me-central2,c4a-highmem-4 (-lssd),reserved_3y,NA,0.16984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830002 +GCP,me-central2,c4a-highmem-4 (-lssd),spot,NA,0.046008,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829975 +GCP,me-central2,c4a-highmem-48 (-lssd),on_demand,NA,2.58528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834826 +GCP,me-central2,c4a-highmem-48 (-lssd),reserved_1y,NA,2.98512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834861 +GCP,me-central2,c4a-highmem-48 (-lssd),reserved_3y,NA,2.03808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834874 +GCP,me-central2,c4a-highmem-48 (-lssd),spot,NA,0.552096,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834848 +GCP,me-central2,c4a-highmem-64 (-lssd),on_demand,NA,3.44704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836020 +GCP,me-central2,c4a-highmem-64 (-lssd),reserved_1y,NA,3.98016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836054 +GCP,me-central2,c4a-highmem-64 (-lssd),reserved_3y,NA,2.71744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836067 +GCP,me-central2,c4a-highmem-64 (-lssd),spot,NA,0.736128,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836041 +GCP,me-central2,c4a-highmem-72 (-lssd),on_demand,NA,3.87792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837158 +GCP,me-central2,c4a-highmem-72 (-lssd),reserved_1y,NA,4.47768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837194 +GCP,me-central2,c4a-highmem-72 (-lssd),reserved_3y,NA,3.05712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837208 +GCP,me-central2,c4a-highmem-72 (-lssd),spot,NA,0.828144,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.837179 +GCP,me-central2,c4a-highmem-8 (-lssd),on_demand,NA,0.43088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831166 +GCP,me-central2,c4a-highmem-8 (-lssd),reserved_1y,NA,0.49752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831201 +GCP,me-central2,c4a-highmem-8 (-lssd),reserved_3y,NA,0.33968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831215 +GCP,me-central2,c4a-highmem-8 (-lssd),spot,NA,0.092016,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831187 +GCP,me-central2,c4a-standard-16 (-lssd),on_demand,NA,0.82592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823886 +GCP,me-central2,c4a-standard-16 (-lssd),reserved_1y,NA,0.75824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823923 +GCP,me-central2,c4a-standard-16 (-lssd),reserved_3y,NA,0.51744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823937 +GCP,me-central2,c4a-standard-16 (-lssd),spot,NA,0.131936,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823909 +GCP,me-central2,c4a-standard-32 (-lssd),on_demand,NA,1.65184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825110 +GCP,me-central2,c4a-standard-32 (-lssd),reserved_1y,NA,1.51648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825147 +GCP,me-central2,c4a-standard-32 (-lssd),reserved_3y,NA,1.03488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825161 +GCP,me-central2,c4a-standard-32 (-lssd),spot,NA,0.263872,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825132 +GCP,me-central2,c4a-standard-4 (-lssd),on_demand,NA,0.20648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821410 +GCP,me-central2,c4a-standard-4 (-lssd),reserved_1y,NA,0.18956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821446 +GCP,me-central2,c4a-standard-4 (-lssd),reserved_3y,NA,0.12936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821461 +GCP,me-central2,c4a-standard-4 (-lssd),spot,NA,0.032984,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821432 +GCP,me-central2,c4a-standard-48 (-lssd),on_demand,NA,2.47776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826333 +GCP,me-central2,c4a-standard-48 (-lssd),reserved_1y,NA,2.27472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826369 +GCP,me-central2,c4a-standard-48 (-lssd),reserved_3y,NA,1.55232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826383 +GCP,me-central2,c4a-standard-48 (-lssd),spot,NA,0.395808,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826355 +GCP,me-central2,c4a-standard-64 (-lssd),on_demand,NA,3.30368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827546 +GCP,me-central2,c4a-standard-64 (-lssd),reserved_1y,NA,3.03296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827580 +GCP,me-central2,c4a-standard-64 (-lssd),reserved_3y,NA,2.06976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827594 +GCP,me-central2,c4a-standard-64 (-lssd),spot,NA,0.527744,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827567 +GCP,me-central2,c4a-standard-72 (-lssd),on_demand,NA,3.71664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828750 +GCP,me-central2,c4a-standard-72 (-lssd),reserved_1y,NA,3.41208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828785 +GCP,me-central2,c4a-standard-72 (-lssd),reserved_3y,NA,2.32848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828799 +GCP,me-central2,c4a-standard-72 (-lssd),spot,NA,0.593712,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828771 +GCP,me-central2,c4a-standard-8 (-lssd),on_demand,NA,0.41296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822622 +GCP,me-central2,c4a-standard-8 (-lssd),reserved_1y,NA,0.37912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822658 +GCP,me-central2,c4a-standard-8 (-lssd),reserved_3y,NA,0.25872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822671 +GCP,me-central2,c4a-standard-8 (-lssd),spot,NA,0.065968,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822644 +GCP,me-central2,c4d-standard-16,on_demand,NA,0.468414,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849035 +GCP,me-central2,c4d-standard-16,reserved_1y,NA,0.724179,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849080 +GCP,me-central2,c4d-standard-16,reserved_3y,NA,0.517232,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849102 +GCP,me-central2,c4d-standard-16,spot,NA,0.436273,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849058 +GCP,me-central2,c4d-standard-2,on_demand,NA,0.053801,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845147 +GCP,me-central2,c4d-standard-2,reserved_1y,NA,0.08753,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845193 +GCP,me-central2,c4d-standard-2,reserved_3y,NA,0.062517,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845216 +GCP,me-central2,c4d-standard-2,spot,NA,0.052919,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845170 +GCP,me-central2,c4d-standard-32,on_demand,NA,0.936828,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850365 +GCP,me-central2,c4d-standard-32,reserved_1y,NA,1.448358,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850410 +GCP,me-central2,c4d-standard-32,reserved_3y,NA,1.034464,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850433 +GCP,me-central2,c4d-standard-32,spot,NA,0.872546,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850387 +GCP,me-central2,c4d-standard-4,on_demand,NA,0.113936,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846440 +GCP,me-central2,c4d-standard-4,reserved_1y,NA,0.17905,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846484 +GCP,me-central2,c4d-standard-4,reserved_3y,NA,0.127883,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846506 +GCP,me-central2,c4d-standard-4,spot,NA,0.107991,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846461 +GCP,me-central2,c4d-standard-8,on_demand,NA,0.234207,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847702 +GCP,me-central2,c4d-standard-8,reserved_1y,NA,0.36209,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847745 +GCP,me-central2,c4d-standard-8,reserved_3y,NA,0.258616,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847766 +GCP,me-central2,c4d-standard-8,spot,NA,0.218137,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847724 +GCP,me-central2,e2_highcpu_16,on_demand,NA,0.633219,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764724 +GCP,me-central2,e2_highcpu_16,reserved_1y,NA,0.398928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764753 +GCP,me-central2,e2_highcpu_16,reserved_3y,NA,0.284949,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764766 +GCP,me-central2,e2_highcpu_16,spot,NA,0.253296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764738 +GCP,me-central2,e2_highcpu_32,on_demand,NA,1.266438,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765767 +GCP,me-central2,e2_highcpu_32,reserved_1y,NA,0.797856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765795 +GCP,me-central2,e2_highcpu_32,reserved_3y,NA,0.569897,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765809 +GCP,me-central2,e2_highcpu_32,spot,NA,0.506592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765781 +GCP,me-central2,e2_highmem_16,on_demand,NA,1.157116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763624 +GCP,me-central2,e2_highmem_16,reserved_1y,NA,0.728983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763653 +GCP,me-central2,e2_highmem_16,reserved_3y,NA,0.520702,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763667 +GCP,me-central2,e2_highmem_16,spot,NA,0.462848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763638 +GCP,me-central2,e2_highmem_2,on_demand,NA,0.144639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760510 +GCP,me-central2,e2_highmem_2,reserved_1y,NA,0.091123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760538 +GCP,me-central2,e2_highmem_2,reserved_3y,NA,0.065088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760552 +GCP,me-central2,e2_highmem_2,spot,NA,0.057856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760524 +GCP,me-central2,e2_highmem_4,on_demand,NA,0.289279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761539 +GCP,me-central2,e2_highmem_4,reserved_1y,NA,0.182246,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761566 +GCP,me-central2,e2_highmem_4,reserved_3y,NA,0.130176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761580 +GCP,me-central2,e2_highmem_4,spot,NA,0.115712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761553 +GCP,me-central2,e2_highmem_8,on_demand,NA,0.578558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762572 +GCP,me-central2,e2_highmem_8,reserved_1y,NA,0.364491,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762600 +GCP,me-central2,e2_highmem_8,reserved_3y,NA,0.260351,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762614 +GCP,me-central2,e2_highmem_8,spot,NA,0.231424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762586 +GCP,me-central2,e2_standard_16,on_demand,NA,0.857746,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769092 +GCP,me-central2,e2_standard_16,reserved_1y,NA,0.54038,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769124 +GCP,me-central2,e2_standard_16,reserved_3y,NA,0.385986,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769140 +GCP,me-central2,e2_standard_16,spot,NA,0.343104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769108 +GCP,me-central2,e2_standard_32,on_demand,NA,1.715492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770141 +GCP,me-central2,e2_standard_32,reserved_1y,NA,1.08076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770168 +GCP,me-central2,e2_standard_32,reserved_3y,NA,0.771971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770182 +GCP,me-central2,e2_standard_32,spot,NA,0.686208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770155 +GCP,me-central2,e2_standard_4,on_demand,NA,0.214437,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766985 +GCP,me-central2,e2_standard_4,reserved_1y,NA,0.135095,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767013 +GCP,me-central2,e2_standard_4,reserved_3y,NA,0.096496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767027 +GCP,me-central2,e2_standard_4,spot,NA,0.085776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766999 +GCP,me-central2,e2_standard_8,on_demand,NA,0.428873,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768020 +GCP,me-central2,e2_standard_8,reserved_1y,NA,0.27019,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768045 +GCP,me-central2,e2_standard_8,reserved_3y,NA,0.192993,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768057 +GCP,me-central2,e2_standard_8,spot,NA,0.171552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768032 +GCP,me-central2,g2-standard-12,on_demand,NA,0.272805,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787353 +GCP,me-central2,g2-standard-12,reserved_1y,NA,0.443899,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787381 +GCP,me-central2,g2-standard-12,reserved_3y,NA,0.317071,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787395 +GCP,me-central2,g2-standard-12,spot,NA,0.241392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787368 +GCP,me-central2,g2-standard-16,on_demand,NA,0.363741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788442 +GCP,me-central2,g2-standard-16,reserved_1y,NA,0.591865,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788470 +GCP,me-central2,g2-standard-16,reserved_3y,NA,0.422761,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788484 +GCP,me-central2,g2-standard-16,spot,NA,0.321856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788456 +GCP,me-central2,g2-standard-24,on_demand,NA,0.545611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789479 +GCP,me-central2,g2-standard-24,reserved_1y,NA,0.887798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789507 +GCP,me-central2,g2-standard-24,reserved_3y,NA,0.634141,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789521 +GCP,me-central2,g2-standard-24,spot,NA,0.482784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789493 +GCP,me-central2,g2-standard-32,on_demand,NA,0.727481,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790517 +GCP,me-central2,g2-standard-32,reserved_1y,NA,1.183731,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790544 +GCP,me-central2,g2-standard-32,reserved_3y,NA,0.845522,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790558 +GCP,me-central2,g2-standard-32,spot,NA,0.643712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790530 +GCP,me-central2,g2-standard-4,on_demand,NA,0.090935,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785285 +GCP,me-central2,g2-standard-4,reserved_1y,NA,0.147966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785312 +GCP,me-central2,g2-standard-4,reserved_3y,NA,0.10569,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785326 +GCP,me-central2,g2-standard-4,spot,NA,0.080464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785299 +GCP,me-central2,g2-standard-48,on_demand,NA,1.091222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791561 +GCP,me-central2,g2-standard-48,reserved_1y,NA,1.775596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791589 +GCP,me-central2,g2-standard-48,reserved_3y,NA,1.268283,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791603 +GCP,me-central2,g2-standard-48,spot,NA,0.965568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791575 +GCP,me-central2,g2-standard-8,on_demand,NA,0.18187,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786316 +GCP,me-central2,g2-standard-8,reserved_1y,NA,0.295933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786344 +GCP,me-central2,g2-standard-8,reserved_3y,NA,0.21138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786358 +GCP,me-central2,g2-standard-8,spot,NA,0.160928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786330 +GCP,me-central2,g2-standard-96,on_demand,NA,2.182443,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792687 +GCP,me-central2,g2-standard-96,reserved_1y,NA,3.551193,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792714 +GCP,me-central2,g2-standard-96,reserved_3y,NA,2.536566,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792728 +GCP,me-central2,g2-standard-96,spot,NA,1.931136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792700 +GCP,me-central2,n1-highcpu-16,on_demand,NA,0.906862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691338 +GCP,me-central2,n1-highcpu-16,reserved_1y,NA,0.571318,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691366 +GCP,me-central2,n1-highcpu-16,reserved_3y,NA,0.408097,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691381 +GCP,me-central2,n1-highcpu-16,spot,NA,0.165352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691352 +GCP,me-central2,n1-highcpu-32,on_demand,NA,1.813724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692256 +GCP,me-central2,n1-highcpu-32,reserved_1y,NA,1.142636,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692284 +GCP,me-central2,n1-highcpu-32,reserved_3y,NA,0.816195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692299 +GCP,me-central2,n1-highcpu-32,spot,NA,0.330703,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692271 +GCP,me-central2,n1-highcpu-64,on_demand,NA,3.627448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693057 +GCP,me-central2,n1-highcpu-64,reserved_1y,NA,2.285271,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693084 +GCP,me-central2,n1-highcpu-64,reserved_3y,NA,1.632389,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693098 +GCP,me-central2,n1-highcpu-64,spot,NA,0.661407,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693070 +GCP,me-central2,n1-highcpu-96,on_demand,NA,5.441172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693894 +GCP,me-central2,n1-highcpu-96,reserved_1y,NA,3.427907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693921 +GCP,me-central2,n1-highcpu-96,reserved_3y,NA,2.448584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693935 +GCP,me-central2,n1-highcpu-96,spot,NA,0.99211,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693907 +GCP,me-central2,n1-highmem-16,on_demand,NA,1.514278,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687775 +GCP,me-central2,n1-highmem-16,reserved_1y,NA,0.953946,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687802 +GCP,me-central2,n1-highmem-16,reserved_3y,NA,0.681485,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687816 +GCP,me-central2,n1-highmem-16,spot,NA,0.293229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687788 +GCP,me-central2,n1-highmem-32,on_demand,NA,3.028557,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688652 +GCP,me-central2,n1-highmem-32,reserved_1y,NA,1.907891,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688681 +GCP,me-central2,n1-highmem-32,reserved_3y,NA,1.36297,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688695 +GCP,me-central2,n1-highmem-32,spot,NA,0.586458,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688666 +GCP,me-central2,n1-highmem-4,on_demand,NA,0.37857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686044 +GCP,me-central2,n1-highmem-4,reserved_1y,NA,0.238486,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686070 +GCP,me-central2,n1-highmem-4,reserved_3y,NA,0.170371,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686084 +GCP,me-central2,n1-highmem-4,spot,NA,0.073307,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686057 +GCP,me-central2,n1-highmem-64,on_demand,NA,6.057114,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689583 +GCP,me-central2,n1-highmem-64,reserved_1y,NA,3.815782,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689612 +GCP,me-central2,n1-highmem-64,reserved_3y,NA,2.725939,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689626 +GCP,me-central2,n1-highmem-64,spot,NA,1.172915,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689598 +GCP,me-central2,n1-highmem-8,on_demand,NA,0.757139,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686950 +GCP,me-central2,n1-highmem-8,reserved_1y,NA,0.476973,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686978 +GCP,me-central2,n1-highmem-8,reserved_3y,NA,0.340742,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686992 +GCP,me-central2,n1-highmem-8,spot,NA,0.146614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686964 +GCP,me-central2,n1-highmem-96,on_demand,NA,9.08567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690474 +GCP,me-central2,n1-highmem-96,reserved_1y,NA,5.723674,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690502 +GCP,me-central2,n1-highmem-96,reserved_3y,NA,4.088909,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690516 +GCP,me-central2,n1-highmem-96,spot,NA,1.759373,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690488 +GCP,me-central2,n1-standard-16,on_demand,NA,1.215994,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682083 +GCP,me-central2,n1-standard-16,reserved_1y,NA,0.766048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682110 +GCP,me-central2,n1-standard-16,reserved_3y,NA,0.547232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682124 +GCP,me-central2,n1-standard-16,spot,NA,0.230432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682097 +GCP,me-central2,n1-standard-32,on_demand,NA,2.431987,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683119 +GCP,me-central2,n1-standard-32,reserved_1y,NA,1.532096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683146 +GCP,me-central2,n1-standard-32,reserved_3y,NA,1.094464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683159 +GCP,me-central2,n1-standard-32,spot,NA,0.460864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683132 +GCP,me-central2,n1-standard-4,on_demand,NA,0.303998,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680376 +GCP,me-central2,n1-standard-4,reserved_1y,NA,0.191512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680406 +GCP,me-central2,n1-standard-4,reserved_3y,NA,0.136808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680471 +GCP,me-central2,n1-standard-4,spot,NA,0.057608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680392 +GCP,me-central2,n1-standard-64,on_demand,NA,4.863974,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684028 +GCP,me-central2,n1-standard-64,reserved_1y,NA,3.064192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684055 +GCP,me-central2,n1-standard-64,reserved_3y,NA,2.188928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684071 +GCP,me-central2,n1-standard-64,spot,NA,0.921728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684042 +GCP,me-central2,n1-standard-8,on_demand,NA,0.607997,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681229 +GCP,me-central2,n1-standard-8,reserved_1y,NA,0.383024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681258 +GCP,me-central2,n1-standard-8,reserved_3y,NA,0.273616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681272 +GCP,me-central2,n1-standard-8,spot,NA,0.115216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681244 +GCP,me-central2,n1-standard-96,on_demand,NA,7.295962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685207 +GCP,me-central2,n1-standard-96,reserved_1y,NA,4.596288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685236 +GCP,me-central2,n1-standard-96,reserved_3y,NA,3.283392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685250 +GCP,me-central2,n1-standard-96,spot,NA,1.382592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685222 +GCP,me-central2,n2-highcpu-16,on_demand,NA,0.836358,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711809 +GCP,me-central2,n2-highcpu-16,reserved_1y,NA,0.57815,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711838 +GCP,me-central2,n2-highcpu-16,reserved_3y,NA,0.412979,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711851 +GCP,me-central2,n2-highcpu-16,spot,NA,0.114672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711825 +GCP,me-central2,n2-highcpu-32,on_demand,NA,1.672717,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712938 +GCP,me-central2,n2-highcpu-32,reserved_1y,NA,1.156301,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712966 +GCP,me-central2,n2-highcpu-32,reserved_3y,NA,0.825958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712980 +GCP,me-central2,n2-highcpu-32,spot,NA,0.229344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712952 +GCP,me-central2,n2-highcpu-48,on_demand,NA,2.509075,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714043 +GCP,me-central2,n2-highcpu-48,reserved_1y,NA,1.734451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714075 +GCP,me-central2,n2-highcpu-48,reserved_3y,NA,1.238938,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714090 +GCP,me-central2,n2-highcpu-48,spot,NA,0.344016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714058 +GCP,me-central2,n2-highcpu-64,on_demand,NA,3.345434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715137 +GCP,me-central2,n2-highcpu-64,reserved_1y,NA,2.312602,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715164 +GCP,me-central2,n2-highcpu-64,reserved_3y,NA,1.651917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715178 +GCP,me-central2,n2-highcpu-64,spot,NA,0.458688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715150 +GCP,me-central2,n2-highcpu-80,on_demand,NA,4.181792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716255 +GCP,me-central2,n2-highcpu-80,reserved_1y,NA,2.890752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716284 +GCP,me-central2,n2-highcpu-80,reserved_3y,NA,2.064896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716298 +GCP,me-central2,n2-highcpu-80,spot,NA,0.57336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716269 +GCP,me-central2,n2-highmem-16,on_demand,NA,1.026176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706251 +GCP,me-central2,n2-highmem-16,reserved_1y,NA,1.056435,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706279 +GCP,me-central2,n2-highmem-16,reserved_3y,NA,0.754714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706294 +GCP,me-central2,n2-highmem-16,spot,NA,0.209536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706265 +GCP,me-central2,n2-highmem-2,on_demand,NA,0.128272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702860 +GCP,me-central2,n2-highmem-2,reserved_1y,NA,0.132054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702925 +GCP,me-central2,n2-highmem-2,reserved_3y,NA,0.094339,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702941 +GCP,me-central2,n2-highmem-2,spot,NA,0.026192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702874 +GCP,me-central2,n2-highmem-32,on_demand,NA,2.052352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707382 +GCP,me-central2,n2-highmem-32,reserved_1y,NA,2.11287,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707410 +GCP,me-central2,n2-highmem-32,reserved_3y,NA,1.509427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707424 +GCP,me-central2,n2-highmem-32,spot,NA,0.419072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707396 +GCP,me-central2,n2-highmem-4,on_demand,NA,0.256544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704046 +GCP,me-central2,n2-highmem-4,reserved_1y,NA,0.264109,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704074 +GCP,me-central2,n2-highmem-4,reserved_3y,NA,0.188678,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704088 +GCP,me-central2,n2-highmem-4,spot,NA,0.052384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704060 +GCP,me-central2,n2-highmem-48,on_demand,NA,3.078528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708495 +GCP,me-central2,n2-highmem-48,reserved_1y,NA,3.169306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708524 +GCP,me-central2,n2-highmem-48,reserved_3y,NA,2.264141,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708538 +GCP,me-central2,n2-highmem-48,spot,NA,0.628608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708510 +GCP,me-central2,n2-highmem-64,on_demand,NA,4.104704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709591 +GCP,me-central2,n2-highmem-64,reserved_1y,NA,4.225741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709619 +GCP,me-central2,n2-highmem-64,reserved_3y,NA,3.018854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709633 +GCP,me-central2,n2-highmem-64,spot,NA,0.838144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709605 +GCP,me-central2,n2-highmem-8,on_demand,NA,0.513088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705130 +GCP,me-central2,n2-highmem-8,reserved_1y,NA,0.528218,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705158 +GCP,me-central2,n2-highmem-8,reserved_3y,NA,0.377357,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705171 +GCP,me-central2,n2-highmem-8,spot,NA,0.104768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705144 +GCP,me-central2,n2-highmem-80,on_demand,NA,5.13088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710674 +GCP,me-central2,n2-highmem-80,reserved_1y,NA,5.282176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710701 +GCP,me-central2,n2-highmem-80,reserved_3y,NA,3.773568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710714 +GCP,me-central2,n2-highmem-80,spot,NA,1.04768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710687 +GCP,me-central2,n2-standard-16,on_demand,NA,0.917709,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697268 +GCP,me-central2,n2-standard-16,reserved_1y,NA,0.78313,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697296 +GCP,me-central2,n2-standard-16,reserved_3y,NA,0.559437,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697310 +GCP,me-central2,n2-standard-16,spot,NA,0.155328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697282 +GCP,me-central2,n2-standard-32,on_demand,NA,1.835418,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698389 +GCP,me-central2,n2-standard-32,reserved_1y,NA,1.566259,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698417 +GCP,me-central2,n2-standard-32,reserved_3y,NA,1.118874,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698431 +GCP,me-central2,n2-standard-32,spot,NA,0.310656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698403 +GCP,me-central2,n2-standard-4,on_demand,NA,0.229427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695007 +GCP,me-central2,n2-standard-4,reserved_1y,NA,0.195782,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695035 +GCP,me-central2,n2-standard-4,reserved_3y,NA,0.139859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695050 +GCP,me-central2,n2-standard-4,spot,NA,0.038832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695021 +GCP,me-central2,n2-standard-48,on_demand,NA,2.753126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699524 +GCP,me-central2,n2-standard-48,reserved_1y,NA,2.349389,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699552 +GCP,me-central2,n2-standard-48,reserved_3y,NA,1.67831,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699565 +GCP,me-central2,n2-standard-48,spot,NA,0.465984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699538 +GCP,me-central2,n2-standard-64,on_demand,NA,3.670835,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700622 +GCP,me-central2,n2-standard-64,reserved_1y,NA,3.132518,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700650 +GCP,me-central2,n2-standard-64,reserved_3y,NA,2.237747,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700664 +GCP,me-central2,n2-standard-64,spot,NA,0.621312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700636 +GCP,me-central2,n2-standard-8,on_demand,NA,0.458854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696180 +GCP,me-central2,n2-standard-8,reserved_1y,NA,0.391565,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696208 +GCP,me-central2,n2-standard-8,reserved_3y,NA,0.279718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696222 +GCP,me-central2,n2-standard-8,spot,NA,0.077664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696194 +GCP,me-central2,n2-standard-80,on_demand,NA,4.588544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701738 +GCP,me-central2,n2-standard-80,reserved_1y,NA,3.915648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701767 +GCP,me-central2,n2-standard-80,reserved_3y,NA,2.797184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701782 +GCP,me-central2,n2-standard-80,spot,NA,0.77664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701752 +GCP,me-central2,n2d-highcpu-128,on_demand,NA,6.387302,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753154 +GCP,me-central2,n2d-highcpu-128,reserved_1y,NA,4.02391,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753181 +GCP,me-central2,n2d-highcpu-128,reserved_3y,NA,2.874368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753195 +GCP,me-central2,n2d-highcpu-128,spot,NA,0.831744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753167 +GCP,me-central2,n2d-highcpu-16,on_demand,NA,0.798413,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746845 +GCP,me-central2,n2d-highcpu-16,reserved_1y,NA,0.502989,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746872 +GCP,me-central2,n2d-highcpu-16,reserved_3y,NA,0.359296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746885 +GCP,me-central2,n2d-highcpu-16,spot,NA,0.103968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746858 +GCP,me-central2,n2d-highcpu-224,on_demand,NA,11.177779,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754177 +GCP,me-central2,n2d-highcpu-224,reserved_1y,NA,7.041843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754205 +GCP,me-central2,n2d-highcpu-224,reserved_3y,NA,5.030144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754219 +GCP,me-central2,n2d-highcpu-224,spot,NA,1.455552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754191 +GCP,me-central2,n2d-highcpu-32,on_demand,NA,1.596826,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747927 +GCP,me-central2,n2d-highcpu-32,reserved_1y,NA,1.005978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747955 +GCP,me-central2,n2d-highcpu-32,reserved_3y,NA,0.718592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747970 +GCP,me-central2,n2d-highcpu-32,spot,NA,0.207936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747941 +GCP,me-central2,n2d-highcpu-48,on_demand,NA,2.395238,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748971 +GCP,me-central2,n2d-highcpu-48,reserved_1y,NA,1.508966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748999 +GCP,me-central2,n2d-highcpu-48,reserved_3y,NA,1.077888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749012 +GCP,me-central2,n2d-highcpu-48,spot,NA,0.311904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748985 +GCP,me-central2,n2d-highcpu-64,on_demand,NA,3.193651,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750013 +GCP,me-central2,n2d-highcpu-64,reserved_1y,NA,2.011955,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750041 +GCP,me-central2,n2d-highcpu-64,reserved_3y,NA,1.437184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750055 +GCP,me-central2,n2d-highcpu-64,spot,NA,0.415872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750027 +GCP,me-central2,n2d-highcpu-80,on_demand,NA,3.992064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751067 +GCP,me-central2,n2d-highcpu-80,reserved_1y,NA,2.514944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751095 +GCP,me-central2,n2d-highcpu-80,reserved_3y,NA,1.79648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751109 +GCP,me-central2,n2d-highcpu-80,spot,NA,0.51984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751081 +GCP,me-central2,n2d-highcpu-96,on_demand,NA,4.790477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752124 +GCP,me-central2,n2d-highcpu-96,reserved_1y,NA,3.017933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752152 +GCP,me-central2,n2d-highcpu-96,reserved_3y,NA,2.155776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752166 +GCP,me-central2,n2d-highcpu-96,spot,NA,0.623808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752138 +GCP,me-central2,n2d-highmem-16,on_demand,NA,1.458944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740581 +GCP,me-central2,n2d-highmem-16,reserved_1y,NA,0.919091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740608 +GCP,me-central2,n2d-highmem-16,reserved_3y,NA,0.656589,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740622 +GCP,me-central2,n2d-highmem-16,spot,NA,0.189984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740595 +GCP,me-central2,n2d-highmem-2,on_demand,NA,0.182368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737362 +GCP,me-central2,n2d-highmem-2,reserved_1y,NA,0.114886,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737388 +GCP,me-central2,n2d-highmem-2,reserved_3y,NA,0.082074,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737401 +GCP,me-central2,n2d-highmem-2,spot,NA,0.023748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737375 +GCP,me-central2,n2d-highmem-32,on_demand,NA,2.917888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741589 +GCP,me-central2,n2d-highmem-32,reserved_1y,NA,1.838182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741616 +GCP,me-central2,n2d-highmem-32,reserved_3y,NA,1.313178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741630 +GCP,me-central2,n2d-highmem-32,spot,NA,0.379968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741603 +GCP,me-central2,n2d-highmem-4,on_demand,NA,0.364736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738442 +GCP,me-central2,n2d-highmem-4,reserved_1y,NA,0.229773,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738471 +GCP,me-central2,n2d-highmem-4,reserved_3y,NA,0.164147,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738485 +GCP,me-central2,n2d-highmem-4,spot,NA,0.047496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738457 +GCP,me-central2,n2d-highmem-48,on_demand,NA,4.376832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742663 +GCP,me-central2,n2d-highmem-48,reserved_1y,NA,2.757274,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742691 +GCP,me-central2,n2d-highmem-48,reserved_3y,NA,1.969766,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742705 +GCP,me-central2,n2d-highmem-48,spot,NA,0.569952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742676 +GCP,me-central2,n2d-highmem-64,on_demand,NA,5.835776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743727 +GCP,me-central2,n2d-highmem-64,reserved_1y,NA,3.676365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743755 +GCP,me-central2,n2d-highmem-64,reserved_3y,NA,2.626355,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743769 +GCP,me-central2,n2d-highmem-64,spot,NA,0.759936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743741 +GCP,me-central2,n2d-highmem-8,on_demand,NA,0.729472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739515 +GCP,me-central2,n2d-highmem-8,reserved_1y,NA,0.459546,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739542 +GCP,me-central2,n2d-highmem-8,reserved_3y,NA,0.328294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739557 +GCP,me-central2,n2d-highmem-8,spot,NA,0.094992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739529 +GCP,me-central2,n2d-highmem-80,on_demand,NA,7.29472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744800 +GCP,me-central2,n2d-highmem-80,reserved_1y,NA,4.595456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744827 +GCP,me-central2,n2d-highmem-80,reserved_3y,NA,3.282944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744840 +GCP,me-central2,n2d-highmem-80,spot,NA,0.94992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744813 +GCP,me-central2,n2d-highmem-96,on_demand,NA,8.753664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745824 +GCP,me-central2,n2d-highmem-96,reserved_1y,NA,5.514547,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745851 +GCP,me-central2,n2d-highmem-96,reserved_3y,NA,3.939533,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745865 +GCP,me-central2,n2d-highmem-96,spot,NA,1.139904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745838 +GCP,me-central2,n2d-standard-128,on_demand,NA,8.651981,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735277 +GCP,me-central2,n2d-standard-128,reserved_1y,NA,5.450547,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735305 +GCP,me-central2,n2d-standard-128,reserved_3y,NA,3.893658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735319 +GCP,me-central2,n2d-standard-128,spot,NA,1.126656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735291 +GCP,me-central2,n2d-standard-16,on_demand,NA,1.081498,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728952 +GCP,me-central2,n2d-standard-16,reserved_1y,NA,0.681318,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728980 +GCP,me-central2,n2d-standard-16,reserved_3y,NA,0.486707,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728994 +GCP,me-central2,n2d-standard-16,spot,NA,0.140832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728966 +GCP,me-central2,n2d-standard-224,on_demand,NA,15.140966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736322 +GCP,me-central2,n2d-standard-224,reserved_1y,NA,9.538458,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736349 +GCP,me-central2,n2d-standard-224,reserved_3y,NA,6.813901,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736364 +GCP,me-central2,n2d-standard-224,spot,NA,1.971648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736336 +GCP,me-central2,n2d-standard-32,on_demand,NA,2.162995,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729983 +GCP,me-central2,n2d-standard-32,reserved_1y,NA,1.362637,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730011 +GCP,me-central2,n2d-standard-32,reserved_3y,NA,0.973414,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730025 +GCP,me-central2,n2d-standard-32,spot,NA,0.281664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729997 +GCP,me-central2,n2d-standard-4,on_demand,NA,0.270374,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726838 +GCP,me-central2,n2d-standard-4,reserved_1y,NA,0.17033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726867 +GCP,me-central2,n2d-standard-4,reserved_3y,NA,0.121677,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726881 +GCP,me-central2,n2d-standard-4,spot,NA,0.035208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726853 +GCP,me-central2,n2d-standard-48,on_demand,NA,3.244493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731024 +GCP,me-central2,n2d-standard-48,reserved_1y,NA,2.043955,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731085 +GCP,me-central2,n2d-standard-48,reserved_3y,NA,1.460122,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731100 +GCP,me-central2,n2d-standard-48,spot,NA,0.422496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731038 +GCP,me-central2,n2d-standard-64,on_demand,NA,4.32599,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732129 +GCP,me-central2,n2d-standard-64,reserved_1y,NA,2.725274,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732157 +GCP,me-central2,n2d-standard-64,reserved_3y,NA,1.946829,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732171 +GCP,me-central2,n2d-standard-64,spot,NA,0.563328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732143 +GCP,me-central2,n2d-standard-8,on_demand,NA,0.540749,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727913 +GCP,me-central2,n2d-standard-8,reserved_1y,NA,0.340659,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727942 +GCP,me-central2,n2d-standard-8,reserved_3y,NA,0.243354,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727956 +GCP,me-central2,n2d-standard-8,spot,NA,0.070416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727927 +GCP,me-central2,n2d-standard-80,on_demand,NA,5.407488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733169 +GCP,me-central2,n2d-standard-80,reserved_1y,NA,3.406592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733197 +GCP,me-central2,n2d-standard-80,reserved_3y,NA,2.433536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733211 +GCP,me-central2,n2d-standard-80,spot,NA,0.70416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733183 +GCP,me-central2,n2d-standard-96,on_demand,NA,6.488986,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734223 +GCP,me-central2,n2d-standard-96,reserved_1y,NA,4.08791,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734251 +GCP,me-central2,n2d-standard-96,reserved_3y,NA,2.920243,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734265 +GCP,me-central2,n2d-standard-96,spot,NA,0.844992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734237 +GCP,me-central2,n4-standard-16,on_demand,NA,1.16096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758347 +GCP,me-central2,n4-standard-16,reserved_1y,NA,0.731392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758373 +GCP,me-central2,n4-standard-16,reserved_3y,NA,0.522445,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758387 +GCP,me-central2,n4-standard-16,spot,NA,0.314368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758360 +GCP,me-central2,n4-standard-2,on_demand,NA,0.14512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755228 +GCP,me-central2,n4-standard-2,reserved_1y,NA,0.091424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755257 +GCP,me-central2,n4-standard-2,reserved_3y,NA,0.065306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755272 +GCP,me-central2,n4-standard-2,spot,NA,0.039296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755243 +GCP,me-central2,n4-standard-32,on_demand,NA,2.32192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759391 +GCP,me-central2,n4-standard-32,reserved_1y,NA,1.462784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759420 +GCP,me-central2,n4-standard-32,reserved_3y,NA,1.04489,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759434 +GCP,me-central2,n4-standard-32,spot,NA,0.628736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759406 +GCP,me-central2,n4-standard-4,on_demand,NA,0.29024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756278 +GCP,me-central2,n4-standard-4,reserved_1y,NA,0.182848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756305 +GCP,me-central2,n4-standard-4,reserved_3y,NA,0.130611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756319 +GCP,me-central2,n4-standard-4,spot,NA,0.078592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756291 +GCP,me-central2,n4-standard-8,on_demand,NA,0.58048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757307 +GCP,me-central2,n4-standard-8,reserved_1y,NA,0.365696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757334 +GCP,me-central2,n4-standard-8,reserved_3y,NA,0.261222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757348 +GCP,me-central2,n4-standard-8,spot,NA,0.157184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757320 +GCP,northamerica-northeast1,a2-highgpu-1g,on_demand,NA,0.814064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770766 +GCP,northamerica-northeast1,a2-highgpu-1g,reserved_1y,NA,0.512834,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770794 +GCP,northamerica-northeast1,a2-highgpu-1g,reserved_3y,NA,0.28495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770807 +GCP,northamerica-northeast1,a2-highgpu-1g,spot,NA,0.18852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770780 +GCP,northamerica-northeast1,a2-highgpu-2g,on_demand,NA,1.628128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771798 +GCP,northamerica-northeast1,a2-highgpu-2g,reserved_1y,NA,1.025667,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771826 +GCP,northamerica-northeast1,a2-highgpu-2g,reserved_3y,NA,0.5699,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771839 +GCP,northamerica-northeast1,a2-highgpu-2g,spot,NA,0.37704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771812 +GCP,northamerica-northeast1,a2-highgpu-4g,on_demand,NA,3.256256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772950 +GCP,northamerica-northeast1,a2-highgpu-4g,reserved_1y,NA,2.051334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772977 +GCP,northamerica-northeast1,a2-highgpu-4g,reserved_3y,NA,1.139799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772991 +GCP,northamerica-northeast1,a2-highgpu-4g,spot,NA,0.75408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772963 +GCP,northamerica-northeast1,a2-highgpu-8g,on_demand,NA,6.512512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774047 +GCP,northamerica-northeast1,a2-highgpu-8g,reserved_1y,NA,4.102669,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774076 +GCP,northamerica-northeast1,a2-highgpu-8g,reserved_3y,NA,2.279598,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774101 +GCP,northamerica-northeast1,a2-highgpu-8g,spot,NA,1.50816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774061 +GCP,northamerica-northeast1,a2-megagpu-16g,on_demand,NA,9.684032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775182 +GCP,northamerica-northeast1,a2-megagpu-16g,reserved_1y,NA,6.100509,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775210 +GCP,northamerica-northeast1,a2-megagpu-16g,reserved_3y,NA,3.389842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775224 +GCP,northamerica-northeast1,a2-megagpu-16g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775196 +GCP,northamerica-northeast1,a2-ultragpu-1g,on_demand,NA,1.210504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776279 +GCP,northamerica-northeast1,a2-ultragpu-1g,reserved_1y,NA,0.762564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776307 +GCP,northamerica-northeast1,a2-ultragpu-1g,reserved_3y,NA,0.42373,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776321 +GCP,northamerica-northeast1,a2-ultragpu-1g,spot,NA,0.28032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776293 +GCP,northamerica-northeast1,a2-ultragpu-2g,on_demand,NA,2.421008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777382 +GCP,northamerica-northeast1,a2-ultragpu-2g,reserved_1y,NA,1.525127,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777410 +GCP,northamerica-northeast1,a2-ultragpu-2g,reserved_3y,NA,0.84746,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777424 +GCP,northamerica-northeast1,a2-ultragpu-2g,spot,NA,0.56064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777396 +GCP,northamerica-northeast1,a2-ultragpu-4g,on_demand,NA,4.842016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778440 +GCP,northamerica-northeast1,a2-ultragpu-4g,reserved_1y,NA,3.050254,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778469 +GCP,northamerica-northeast1,a2-ultragpu-4g,reserved_3y,NA,1.694921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778483 +GCP,northamerica-northeast1,a2-ultragpu-4g,spot,NA,1.12128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778455 +GCP,northamerica-northeast1,a2-ultragpu-8g,on_demand,NA,9.684032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779492 +GCP,northamerica-northeast1,a2-ultragpu-8g,reserved_1y,NA,6.100509,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779520 +GCP,northamerica-northeast1,a2-ultragpu-8g,reserved_3y,NA,3.389842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779535 +GCP,northamerica-northeast1,a2-ultragpu-8g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779506 +GCP,northamerica-northeast1,a3-highgpu-1g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780601 +GCP,northamerica-northeast1,a3-highgpu-1g,reserved_1y,NA,0.905511,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780629 +GCP,northamerica-northeast1,a3-highgpu-1g,reserved_3y,NA,0.573852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780643 +GCP,northamerica-northeast1,a3-highgpu-1g,spot,NA,0.23426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780615 +GCP,northamerica-northeast1,a3-highgpu-2g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781651 +GCP,northamerica-northeast1,a3-highgpu-2g,reserved_1y,NA,0.905511,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781679 +GCP,northamerica-northeast1,a3-highgpu-2g,reserved_3y,NA,0.573852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781693 +GCP,northamerica-northeast1,a3-highgpu-2g,spot,NA,0.23426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781665 +GCP,northamerica-northeast1,a3-highgpu-4g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782735 +GCP,northamerica-northeast1,a3-highgpu-4g,reserved_1y,NA,0.905511,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782763 +GCP,northamerica-northeast1,a3-highgpu-4g,reserved_3y,NA,0.573852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782777 +GCP,northamerica-northeast1,a3-highgpu-4g,spot,NA,0.23426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782749 +GCP,northamerica-northeast1,a3-highgpu-8g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783815 +GCP,northamerica-northeast1,a3-highgpu-8g,reserved_1y,NA,0.905511,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783843 +GCP,northamerica-northeast1,a3-highgpu-8g,reserved_3y,NA,0.573852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783856 +GCP,northamerica-northeast1,a3-highgpu-8g,spot,NA,0.23426,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783829 +GCP,northamerica-northeast1,c2-standard-16,on_demand,NA,0.799792,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721684 +GCP,northamerica-northeast1,c2-standard-16,reserved_1y,NA,0.503856,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721728 +GCP,northamerica-northeast1,c2-standard-16,reserved_3y,NA,0.359872,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721751 +GCP,northamerica-northeast1,c2-standard-16,spot,NA,0.164608,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721706 +GCP,northamerica-northeast1,c2-standard-30,on_demand,NA,1.49961,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723364 +GCP,northamerica-northeast1,c2-standard-30,reserved_1y,NA,0.94473,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723409 +GCP,northamerica-northeast1,c2-standard-30,reserved_3y,NA,0.67476,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723432 +GCP,northamerica-northeast1,c2-standard-30,spot,NA,0.30864,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723386 +GCP,northamerica-northeast1,c2-standard-4,on_demand,NA,0.199948,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718090 +GCP,northamerica-northeast1,c2-standard-4,reserved_1y,NA,0.125964,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718136 +GCP,northamerica-northeast1,c2-standard-4,reserved_3y,NA,0.089968,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718160 +GCP,northamerica-northeast1,c2-standard-4,spot,NA,0.041152,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718113 +GCP,northamerica-northeast1,c2-standard-60,on_demand,NA,2.99922,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725102 +GCP,northamerica-northeast1,c2-standard-60,reserved_1y,NA,1.88946,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725148 +GCP,northamerica-northeast1,c2-standard-60,reserved_3y,NA,1.34952,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725170 +GCP,northamerica-northeast1,c2-standard-60,spot,NA,0.61728,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725125 +GCP,northamerica-northeast1,c2-standard-8,on_demand,NA,0.399896,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719971 +GCP,northamerica-northeast1,c2-standard-8,reserved_1y,NA,0.251928,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720018 +GCP,northamerica-northeast1,c2-standard-8,reserved_3y,NA,0.179936,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720042 +GCP,northamerica-northeast1,c2-standard-8,spot,NA,0.082304,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719994 +GCP,northamerica-northeast1,c3-highmem-22,on_demand,NA,0.160253,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800739 +GCP,northamerica-northeast1,c3-highmem-22,reserved_1y,NA,1.009616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800768 +GCP,northamerica-northeast1,c3-highmem-22,reserved_3y,NA,0.72113,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800782 +GCP,northamerica-northeast1,c3-highmem-22,spot,NA,0.27918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800754 +GCP,northamerica-northeast1,c3-highmem-4,on_demand,NA,0.029137,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798659 +GCP,northamerica-northeast1,c3-highmem-4,reserved_1y,NA,0.183567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798686 +GCP,northamerica-northeast1,c3-highmem-4,reserved_3y,NA,0.131115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798702 +GCP,northamerica-northeast1,c3-highmem-4,spot,NA,0.05076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798672 +GCP,northamerica-northeast1,c3-highmem-44,on_demand,NA,0.320506,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801752 +GCP,northamerica-northeast1,c3-highmem-44,reserved_1y,NA,2.019233,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801778 +GCP,northamerica-northeast1,c3-highmem-44,reserved_3y,NA,1.442261,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801791 +GCP,northamerica-northeast1,c3-highmem-44,spot,NA,0.55836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801765 +GCP,northamerica-northeast1,c3-highmem-8,on_demand,NA,0.058274,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799712 +GCP,northamerica-northeast1,c3-highmem-8,reserved_1y,NA,0.367133,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799738 +GCP,northamerica-northeast1,c3-highmem-8,reserved_3y,NA,0.262229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799752 +GCP,northamerica-northeast1,c3-highmem-8,spot,NA,0.10152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799725 +GCP,northamerica-northeast1,c3-highmem-88,on_demand,NA,0.641011,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802775 +GCP,northamerica-northeast1,c3-highmem-88,reserved_1y,NA,4.038465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802801 +GCP,northamerica-northeast1,c3-highmem-88,reserved_3y,NA,2.884521,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802817 +GCP,northamerica-northeast1,c3-highmem-88,spot,NA,1.11672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802788 +GCP,northamerica-northeast1,c3-standard-22 (-lssd),on_demand,NA,0.122095,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795447 +GCP,northamerica-northeast1,c3-standard-22 (-lssd),reserved_1y,NA,0.769215,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795475 +GCP,northamerica-northeast1,c3-standard-22 (-lssd),reserved_3y,NA,0.549429,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795489 +GCP,northamerica-northeast1,c3-standard-22 (-lssd),spot,NA,0.19558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795461 +GCP,northamerica-northeast1,c3-standard-4 (-lssd),on_demand,NA,0.022199,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793334 +GCP,northamerica-northeast1,c3-standard-4 (-lssd),reserved_1y,NA,0.139857,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793364 +GCP,northamerica-northeast1,c3-standard-4 (-lssd),reserved_3y,NA,0.099896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793378 +GCP,northamerica-northeast1,c3-standard-4 (-lssd),spot,NA,0.03556,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793348 +GCP,northamerica-northeast1,c3-standard-44 (-lssd),on_demand,NA,0.24419,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796555 +GCP,northamerica-northeast1,c3-standard-44 (-lssd),reserved_1y,NA,1.538431,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796583 +GCP,northamerica-northeast1,c3-standard-44 (-lssd),reserved_3y,NA,1.098858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796597 +GCP,northamerica-northeast1,c3-standard-44 (-lssd),spot,NA,0.39116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796569 +GCP,northamerica-northeast1,c3-standard-8 (-lssd),on_demand,NA,0.044398,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794387 +GCP,northamerica-northeast1,c3-standard-8 (-lssd),reserved_1y,NA,0.279715,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794413 +GCP,northamerica-northeast1,c3-standard-8 (-lssd),reserved_3y,NA,0.199792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794428 +GCP,northamerica-northeast1,c3-standard-8 (-lssd),spot,NA,0.07112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794400 +GCP,northamerica-northeast1,c3-standard-88 (-lssd),on_demand,NA,0.488379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797608 +GCP,northamerica-northeast1,c3-standard-88 (-lssd),reserved_1y,NA,3.076861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797636 +GCP,northamerica-northeast1,c3-standard-88 (-lssd),reserved_3y,NA,2.197716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797651 +GCP,northamerica-northeast1,c3-standard-88 (-lssd),spot,NA,0.78232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797622 +GCP,northamerica-northeast1,c3d-highmem-16 (-lssd),on_demand,NA,0.576628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814382 +GCP,northamerica-northeast1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.679617,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814570 +GCP,northamerica-northeast1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.485382,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814584 +GCP,northamerica-northeast1,c3d-highmem-16 (-lssd),spot,NA,0.366816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814555 +GCP,northamerica-northeast1,c3d-highmem-180 (-lssd),on_demand,NA,6.48706,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818723 +GCP,northamerica-northeast1,c3d-highmem-180 (-lssd),reserved_1y,NA,7.645686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818751 +GCP,northamerica-northeast1,c3d-highmem-180 (-lssd),reserved_3y,NA,5.460552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818765 +GCP,northamerica-northeast1,c3d-highmem-180 (-lssd),spot,NA,4.12668,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818737 +GCP,northamerica-northeast1,c3d-highmem-30 (-lssd),on_demand,NA,1.081177,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815601 +GCP,northamerica-northeast1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.274281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815629 +GCP,northamerica-northeast1,c3d-highmem-30 (-lssd),reserved_3y,NA,0.910092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815643 +GCP,northamerica-northeast1,c3d-highmem-30 (-lssd),spot,NA,0.68778,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815615 +GCP,northamerica-northeast1,c3d-highmem-360 (-lssd),on_demand,NA,12.974119,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819753 +GCP,northamerica-northeast1,c3d-highmem-360 (-lssd),reserved_1y,NA,15.291372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819781 +GCP,northamerica-northeast1,c3d-highmem-360 (-lssd),reserved_3y,NA,10.921105,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819795 +GCP,northamerica-northeast1,c3d-highmem-360 (-lssd),spot,NA,8.25336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819767 +GCP,northamerica-northeast1,c3d-highmem-4 (-lssd),on_demand,NA,0.144157,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812287 +GCP,northamerica-northeast1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.169904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812315 +GCP,northamerica-northeast1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.121346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812329 +GCP,northamerica-northeast1,c3d-highmem-4 (-lssd),spot,NA,0.091704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812301 +GCP,northamerica-northeast1,c3d-highmem-60 (-lssd),on_demand,NA,2.162353,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816657 +GCP,northamerica-northeast1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.548562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816685 +GCP,northamerica-northeast1,c3d-highmem-60 (-lssd),reserved_3y,NA,1.820184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816699 +GCP,northamerica-northeast1,c3d-highmem-60 (-lssd),spot,NA,1.37556,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816671 +GCP,northamerica-northeast1,c3d-highmem-8 (-lssd),on_demand,NA,0.288314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813330 +GCP,northamerica-northeast1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.339808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813358 +GCP,northamerica-northeast1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.242691,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813372 +GCP,northamerica-northeast1,c3d-highmem-8 (-lssd),spot,NA,0.183408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813344 +GCP,northamerica-northeast1,c3d-highmem-90 (-lssd),on_demand,NA,3.24353,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817693 +GCP,northamerica-northeast1,c3d-highmem-90 (-lssd),reserved_1y,NA,3.822843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817721 +GCP,northamerica-northeast1,c3d-highmem-90 (-lssd),reserved_3y,NA,2.730276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817735 +GCP,northamerica-northeast1,c3d-highmem-90 (-lssd),spot,NA,2.06334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817707 +GCP,northamerica-northeast1,c3d-standard-16 (-lssd),on_demand,NA,0.548728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805916 +GCP,northamerica-northeast1,c3d-standard-16 (-lssd),reserved_1y,NA,0.503863,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805944 +GCP,northamerica-northeast1,c3d-standard-16 (-lssd),reserved_3y,NA,0.359875,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805958 +GCP,northamerica-northeast1,c3d-standard-16 (-lssd),spot,NA,0.271968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805930 +GCP,northamerica-northeast1,c3d-standard-180 (-lssd),on_demand,NA,6.173194,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810169 +GCP,northamerica-northeast1,c3d-standard-180 (-lssd),reserved_1y,NA,5.668463,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810197 +GCP,northamerica-northeast1,c3d-standard-180 (-lssd),reserved_3y,NA,4.04859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810213 +GCP,northamerica-northeast1,c3d-standard-180 (-lssd),spot,NA,3.05964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810183 +GCP,northamerica-northeast1,c3d-standard-30 (-lssd),on_demand,NA,1.028866,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806985 +GCP,northamerica-northeast1,c3d-standard-30 (-lssd),reserved_1y,NA,0.944744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807013 +GCP,northamerica-northeast1,c3d-standard-30 (-lssd),reserved_3y,NA,0.674765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807027 +GCP,northamerica-northeast1,c3d-standard-30 (-lssd),spot,NA,0.50994,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806999 +GCP,northamerica-northeast1,c3d-standard-360 (-lssd),on_demand,NA,12.346387,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811227 +GCP,northamerica-northeast1,c3d-standard-360 (-lssd),reserved_1y,NA,11.336926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811254 +GCP,northamerica-northeast1,c3d-standard-360 (-lssd),reserved_3y,NA,8.09718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811268 +GCP,northamerica-northeast1,c3d-standard-360 (-lssd),spot,NA,6.11928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811240 +GCP,northamerica-northeast1,c3d-standard-4 (-lssd),on_demand,NA,0.137182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803843 +GCP,northamerica-northeast1,c3d-standard-4 (-lssd),reserved_1y,NA,0.125966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803895 +GCP,northamerica-northeast1,c3d-standard-4 (-lssd),reserved_3y,NA,0.089969,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803908 +GCP,northamerica-northeast1,c3d-standard-4 (-lssd),spot,NA,0.067992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803859 +GCP,northamerica-northeast1,c3d-standard-60 (-lssd),on_demand,NA,2.057731,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808056 +GCP,northamerica-northeast1,c3d-standard-60 (-lssd),reserved_1y,NA,1.889488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808086 +GCP,northamerica-northeast1,c3d-standard-60 (-lssd),reserved_3y,NA,1.34953,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808101 +GCP,northamerica-northeast1,c3d-standard-60 (-lssd),spot,NA,1.01988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808072 +GCP,northamerica-northeast1,c3d-standard-8 (-lssd),on_demand,NA,0.274364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804888 +GCP,northamerica-northeast1,c3d-standard-8 (-lssd),reserved_1y,NA,0.251932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804915 +GCP,northamerica-northeast1,c3d-standard-8 (-lssd),reserved_3y,NA,0.179937,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804929 +GCP,northamerica-northeast1,c3d-standard-8 (-lssd),spot,NA,0.135984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804902 +GCP,northamerica-northeast1,c3d-standard-90 (-lssd),on_demand,NA,3.086597,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809114 +GCP,northamerica-northeast1,c3d-standard-90 (-lssd),reserved_1y,NA,2.834232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809142 +GCP,northamerica-northeast1,c3d-standard-90 (-lssd),reserved_3y,NA,2.024295,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809156 +GCP,northamerica-northeast1,c3d-standard-90 (-lssd),spot,NA,1.52982,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809128 +GCP,northamerica-northeast1,c4-standard-16,on_demand,NA,0.636467,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841147 +GCP,northamerica-northeast1,c4-standard-16,reserved_1y,NA,0.548502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841175 +GCP,northamerica-northeast1,c4-standard-16,reserved_3y,NA,0.39178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841188 +GCP,northamerica-northeast1,c4-standard-16,spot,NA,0.33262,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841161 +GCP,northamerica-northeast1,c4-standard-2,on_demand,NA,0.079342,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837811 +GCP,northamerica-northeast1,c4-standard-2,reserved_1y,NA,0.067197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837841 +GCP,northamerica-northeast1,c4-standard-2,reserved_3y,NA,0.047997,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837856 +GCP,northamerica-northeast1,c4-standard-2,spot,NA,0.040841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837827 +GCP,northamerica-northeast1,c4-standard-24,on_demand,NA,0.9547,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842178 +GCP,northamerica-northeast1,c4-standard-24,reserved_1y,NA,0.822753,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842207 +GCP,northamerica-northeast1,c4-standard-24,reserved_3y,NA,0.58767,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842264 +GCP,northamerica-northeast1,c4-standard-24,spot,NA,0.49893,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842192 +GCP,northamerica-northeast1,c4-standard-32,on_demand,NA,1.272933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843392 +GCP,northamerica-northeast1,c4-standard-32,reserved_1y,NA,1.097004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843421 +GCP,northamerica-northeast1,c4-standard-32,reserved_3y,NA,0.78356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843435 +GCP,northamerica-northeast1,c4-standard-32,spot,NA,0.66524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843407 +GCP,northamerica-northeast1,c4-standard-4,on_demand,NA,0.159117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838924 +GCP,northamerica-northeast1,c4-standard-4,reserved_1y,NA,0.137125,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838951 +GCP,northamerica-northeast1,c4-standard-4,reserved_3y,NA,0.097945,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838964 +GCP,northamerica-northeast1,c4-standard-4,spot,NA,0.083155,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838938 +GCP,northamerica-northeast1,c4-standard-8,on_demand,NA,0.318233,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840057 +GCP,northamerica-northeast1,c4-standard-8,reserved_1y,NA,0.274251,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840086 +GCP,northamerica-northeast1,c4-standard-8,reserved_3y,NA,0.19589,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840101 +GCP,northamerica-northeast1,c4-standard-8,spot,NA,0.16631,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840072 +GCP,northamerica-northeast1,c4a-highmem-16 (-lssd),on_demand,NA,0.116547,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831858 +GCP,northamerica-northeast1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.734266,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831929 +GCP,northamerica-northeast1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.524458,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831952 +GCP,northamerica-northeast1,c4a-highmem-16 (-lssd),spot,NA,0.20304,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831905 +GCP,northamerica-northeast1,c4a-highmem-32 (-lssd),on_demand,NA,0.233095,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833102 +GCP,northamerica-northeast1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.468533,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833147 +GCP,northamerica-northeast1,c4a-highmem-32 (-lssd),reserved_3y,NA,1.048917,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833170 +GCP,northamerica-northeast1,c4a-highmem-32 (-lssd),spot,NA,0.40608,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833124 +GCP,northamerica-northeast1,c4a-highmem-4 (-lssd),on_demand,NA,0.029137,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829422 +GCP,northamerica-northeast1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.183567,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829466 +GCP,northamerica-northeast1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.131115,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829488 +GCP,northamerica-northeast1,c4a-highmem-4 (-lssd),spot,NA,0.05076,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829444 +GCP,northamerica-northeast1,c4a-highmem-48 (-lssd),on_demand,NA,0.349642,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834324 +GCP,northamerica-northeast1,c4a-highmem-48 (-lssd),reserved_1y,NA,2.202799,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834366 +GCP,northamerica-northeast1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.573375,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834390 +GCP,northamerica-northeast1,c4a-highmem-48 (-lssd),spot,NA,0.60912,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834344 +GCP,northamerica-northeast1,c4a-highmem-64 (-lssd),on_demand,NA,0.46619,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835487 +GCP,northamerica-northeast1,c4a-highmem-64 (-lssd),reserved_1y,NA,2.937066,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835530 +GCP,northamerica-northeast1,c4a-highmem-64 (-lssd),reserved_3y,NA,2.097834,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835551 +GCP,northamerica-northeast1,c4a-highmem-64 (-lssd),spot,NA,0.81216,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835508 +GCP,northamerica-northeast1,c4a-highmem-72 (-lssd),on_demand,NA,0.524464,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836666 +GCP,northamerica-northeast1,c4a-highmem-72 (-lssd),reserved_1y,NA,3.304199,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836708 +GCP,northamerica-northeast1,c4a-highmem-72 (-lssd),reserved_3y,NA,2.360063,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836729 +GCP,northamerica-northeast1,c4a-highmem-72 (-lssd),spot,NA,0.91368,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836687 +GCP,northamerica-northeast1,c4a-highmem-8 (-lssd),on_demand,NA,0.058274,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830647 +GCP,northamerica-northeast1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.367133,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830691 +GCP,northamerica-northeast1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.262229,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830712 +GCP,northamerica-northeast1,c4a-highmem-8 (-lssd),spot,NA,0.10152,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.830669 +GCP,northamerica-northeast1,c4a-standard-16 (-lssd),on_demand,NA,0.088796,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823331 +GCP,northamerica-northeast1,c4a-standard-16 (-lssd),reserved_1y,NA,0.559429,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823377 +GCP,northamerica-northeast1,c4a-standard-16 (-lssd),reserved_3y,NA,0.399585,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823400 +GCP,northamerica-northeast1,c4a-standard-16 (-lssd),spot,NA,0.14224,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823354 +GCP,northamerica-northeast1,c4a-standard-32 (-lssd),on_demand,NA,0.177592,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824579 +GCP,northamerica-northeast1,c4a-standard-32 (-lssd),reserved_1y,NA,1.118859,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824624 +GCP,northamerica-northeast1,c4a-standard-32 (-lssd),reserved_3y,NA,0.79917,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824647 +GCP,northamerica-northeast1,c4a-standard-32 (-lssd),spot,NA,0.28448,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.824602 +GCP,northamerica-northeast1,c4a-standard-4 (-lssd),on_demand,NA,0.022199,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.820874 +GCP,northamerica-northeast1,c4a-standard-4 (-lssd),reserved_1y,NA,0.139857,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.820920 +GCP,northamerica-northeast1,c4a-standard-4 (-lssd),reserved_3y,NA,0.099896,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.820943 +GCP,northamerica-northeast1,c4a-standard-4 (-lssd),spot,NA,0.03556,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.820898 +GCP,northamerica-northeast1,c4a-standard-48 (-lssd),on_demand,NA,0.266389,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825802 +GCP,northamerica-northeast1,c4a-standard-48 (-lssd),reserved_1y,NA,1.678288,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825848 +GCP,northamerica-northeast1,c4a-standard-48 (-lssd),reserved_3y,NA,1.198754,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825870 +GCP,northamerica-northeast1,c4a-standard-48 (-lssd),spot,NA,0.42672,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825825 +GCP,northamerica-northeast1,c4a-standard-64 (-lssd),on_demand,NA,0.355185,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827027 +GCP,northamerica-northeast1,c4a-standard-64 (-lssd),reserved_1y,NA,2.237717,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827072 +GCP,northamerica-northeast1,c4a-standard-64 (-lssd),reserved_3y,NA,1.598339,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827096 +GCP,northamerica-northeast1,c4a-standard-64 (-lssd),spot,NA,0.56896,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827049 +GCP,northamerica-northeast1,c4a-standard-72 (-lssd),on_demand,NA,0.399583,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828233 +GCP,northamerica-northeast1,c4a-standard-72 (-lssd),reserved_1y,NA,2.517432,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828279 +GCP,northamerica-northeast1,c4a-standard-72 (-lssd),reserved_3y,NA,1.798132,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828302 +GCP,northamerica-northeast1,c4a-standard-72 (-lssd),spot,NA,0.64008,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828257 +GCP,northamerica-northeast1,c4a-standard-8 (-lssd),on_demand,NA,0.044398,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822101 +GCP,northamerica-northeast1,c4a-standard-8 (-lssd),reserved_1y,NA,0.279715,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822147 +GCP,northamerica-northeast1,c4a-standard-8 (-lssd),reserved_3y,NA,0.199792,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822169 +GCP,northamerica-northeast1,c4a-standard-8 (-lssd),spot,NA,0.07112,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822124 +GCP,northamerica-northeast1,c4d-standard-16,on_demand,NA,0.547856,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848492 +GCP,northamerica-northeast1,c4d-standard-16,reserved_1y,NA,0.498371,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848537 +GCP,northamerica-northeast1,c4d-standard-16,reserved_3y,NA,0.355953,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848559 +GCP,northamerica-northeast1,c4d-standard-16,spot,NA,0.269004,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848514 +GCP,northamerica-northeast1,c4d-standard-2,on_demand,NA,0.068155,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844597 +GCP,northamerica-northeast1,c4d-standard-2,reserved_1y,NA,0.060237,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844644 +GCP,northamerica-northeast1,c4d-standard-2,reserved_3y,NA,0.043023,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844667 +GCP,northamerica-northeast1,c4d-standard-2,spot,NA,0.032514,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844621 +GCP,northamerica-northeast1,c4d-standard-32,on_demand,NA,1.095713,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849819 +GCP,northamerica-northeast1,c4d-standard-32,reserved_1y,NA,0.996742,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849865 +GCP,northamerica-northeast1,c4d-standard-32,reserved_3y,NA,0.711905,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849887 +GCP,northamerica-northeast1,c4d-standard-32,spot,NA,0.538008,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849842 +GCP,northamerica-northeast1,c4d-standard-4,on_demand,NA,0.136746,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845886 +GCP,northamerica-northeast1,c4d-standard-4,reserved_1y,NA,0.12322,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845931 +GCP,northamerica-northeast1,c4d-standard-4,reserved_3y,NA,0.088008,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845971 +GCP,northamerica-northeast1,c4d-standard-4,spot,NA,0.06651,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845908 +GCP,northamerica-northeast1,c4d-standard-8,on_demand,NA,0.273928,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847179 +GCP,northamerica-northeast1,c4d-standard-8,reserved_1y,NA,0.249186,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847222 +GCP,northamerica-northeast1,c4d-standard-8,reserved_3y,NA,0.177976,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847244 +GCP,northamerica-northeast1,c4d-standard-8,spot,NA,0.134502,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847201 +GCP,northamerica-northeast1,e2_highcpu_16,on_demand,NA,0.435705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764329 +GCP,northamerica-northeast1,e2_highcpu_16,reserved_1y,NA,0.274494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764357 +GCP,northamerica-northeast1,e2_highcpu_16,reserved_3y,NA,0.196067,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764371 +GCP,northamerica-northeast1,e2_highcpu_16,spot,NA,0.08912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764343 +GCP,northamerica-northeast1,e2_highcpu_32,on_demand,NA,0.871409,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765362 +GCP,northamerica-northeast1,e2_highcpu_32,reserved_1y,NA,0.548988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765390 +GCP,northamerica-northeast1,e2_highcpu_32,reserved_3y,NA,0.392134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765404 +GCP,northamerica-northeast1,e2_highcpu_32,spot,NA,0.17824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765376 +GCP,northamerica-northeast1,e2_highmem_16,on_demand,NA,0.796139,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763217 +GCP,northamerica-northeast1,e2_highmem_16,reserved_1y,NA,0.501567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763246 +GCP,northamerica-northeast1,e2_highmem_16,reserved_3y,NA,0.358262,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763260 +GCP,northamerica-northeast1,e2_highmem_16,spot,NA,0.16304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763231 +GCP,northamerica-northeast1,e2_highmem_2,on_demand,NA,0.099517,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760106 +GCP,northamerica-northeast1,e2_highmem_2,reserved_1y,NA,0.062696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760134 +GCP,northamerica-northeast1,e2_highmem_2,reserved_3y,NA,0.044783,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760148 +GCP,northamerica-northeast1,e2_highmem_2,spot,NA,0.02038,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760120 +GCP,northamerica-northeast1,e2_highmem_4,on_demand,NA,0.199035,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761145 +GCP,northamerica-northeast1,e2_highmem_4,reserved_1y,NA,0.125392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761172 +GCP,northamerica-northeast1,e2_highmem_4,reserved_3y,NA,0.089566,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761186 +GCP,northamerica-northeast1,e2_highmem_4,spot,NA,0.04076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761158 +GCP,northamerica-northeast1,e2_highmem_8,on_demand,NA,0.398069,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762170 +GCP,northamerica-northeast1,e2_highmem_8,reserved_1y,NA,0.250784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762198 +GCP,northamerica-northeast1,e2_highmem_8,reserved_3y,NA,0.179131,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762212 +GCP,northamerica-northeast1,e2_highmem_8,spot,NA,0.08152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762184 +GCP,northamerica-northeast1,e2_standard_16,on_demand,NA,0.590176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768662 +GCP,northamerica-northeast1,e2_standard_16,reserved_1y,NA,0.371811,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768691 +GCP,northamerica-northeast1,e2_standard_16,reserved_3y,NA,0.265579,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768706 +GCP,northamerica-northeast1,e2_standard_16,spot,NA,0.1208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768677 +GCP,northamerica-northeast1,e2_standard_32,on_demand,NA,1.180353,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769745 +GCP,northamerica-northeast1,e2_standard_32,reserved_1y,NA,0.743622,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769773 +GCP,northamerica-northeast1,e2_standard_32,reserved_3y,NA,0.531159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769786 +GCP,northamerica-northeast1,e2_standard_32,spot,NA,0.2416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769759 +GCP,northamerica-northeast1,e2_standard_4,on_demand,NA,0.147544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766576 +GCP,northamerica-northeast1,e2_standard_4,reserved_1y,NA,0.092953,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766604 +GCP,northamerica-northeast1,e2_standard_4,reserved_3y,NA,0.066395,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766618 +GCP,northamerica-northeast1,e2_standard_4,spot,NA,0.0302,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766590 +GCP,northamerica-northeast1,e2_standard_8,on_demand,NA,0.295088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767624 +GCP,northamerica-northeast1,e2_standard_8,reserved_1y,NA,0.185906,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767652 +GCP,northamerica-northeast1,e2_standard_8,reserved_3y,NA,0.13279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767666 +GCP,northamerica-northeast1,e2_standard_8,spot,NA,0.0604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767638 +GCP,northamerica-northeast1,g2-standard-12,on_demand,NA,0.187741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786953 +GCP,northamerica-northeast1,g2-standard-12,reserved_1y,NA,0.305486,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786981 +GCP,northamerica-northeast1,g2-standard-12,reserved_3y,NA,0.218204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786995 +GCP,northamerica-northeast1,g2-standard-12,spot,NA,0.123696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786967 +GCP,northamerica-northeast1,g2-standard-16,on_demand,NA,0.250322,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788028 +GCP,northamerica-northeast1,g2-standard-16,reserved_1y,NA,0.407314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788056 +GCP,northamerica-northeast1,g2-standard-16,reserved_3y,NA,0.290939,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788070 +GCP,northamerica-northeast1,g2-standard-16,spot,NA,0.164928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788042 +GCP,northamerica-northeast1,g2-standard-24,on_demand,NA,0.375483,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789081 +GCP,northamerica-northeast1,g2-standard-24,reserved_1y,NA,0.610972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789109 +GCP,northamerica-northeast1,g2-standard-24,reserved_3y,NA,0.436408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789123 +GCP,northamerica-northeast1,g2-standard-24,spot,NA,0.247392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789095 +GCP,northamerica-northeast1,g2-standard-32,on_demand,NA,0.500643,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790111 +GCP,northamerica-northeast1,g2-standard-32,reserved_1y,NA,0.814629,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790138 +GCP,northamerica-northeast1,g2-standard-32,reserved_3y,NA,0.581878,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790152 +GCP,northamerica-northeast1,g2-standard-32,spot,NA,0.329856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790124 +GCP,northamerica-northeast1,g2-standard-4,on_demand,NA,0.06258,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784878 +GCP,northamerica-northeast1,g2-standard-4,reserved_1y,NA,0.101829,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784906 +GCP,northamerica-northeast1,g2-standard-4,reserved_3y,NA,0.072735,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784920 +GCP,northamerica-northeast1,g2-standard-4,spot,NA,0.041232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784892 +GCP,northamerica-northeast1,g2-standard-48,on_demand,NA,0.750965,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791167 +GCP,northamerica-northeast1,g2-standard-48,reserved_1y,NA,1.221943,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791195 +GCP,northamerica-northeast1,g2-standard-48,reserved_3y,NA,0.872816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791209 +GCP,northamerica-northeast1,g2-standard-48,spot,NA,0.494784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791181 +GCP,northamerica-northeast1,g2-standard-8,on_demand,NA,0.125161,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785919 +GCP,northamerica-northeast1,g2-standard-8,reserved_1y,NA,0.203657,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785948 +GCP,northamerica-northeast1,g2-standard-8,reserved_3y,NA,0.145469,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785962 +GCP,northamerica-northeast1,g2-standard-8,spot,NA,0.082464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785934 +GCP,northamerica-northeast1,g2-standard-96,on_demand,NA,1.50193,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792278 +GCP,northamerica-northeast1,g2-standard-96,reserved_1y,NA,2.443887,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792307 +GCP,northamerica-northeast1,g2-standard-96,reserved_3y,NA,1.745633,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792321 +GCP,northamerica-northeast1,g2-standard-96,spot,NA,0.989568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792292 +GCP,northamerica-northeast1,n1-highcpu-16,on_demand,NA,0.624072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691001 +GCP,northamerica-northeast1,n1-highcpu-16,spot,NA,0.214907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691015 +GCP,northamerica-northeast1,n1-highcpu-32,on_demand,NA,1.248143,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691847 +GCP,northamerica-northeast1,n1-highcpu-32,spot,NA,0.429814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691860 +GCP,northamerica-northeast1,n1-highcpu-64,on_demand,NA,2.496286,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692762 +GCP,northamerica-northeast1,n1-highcpu-64,spot,NA,0.859629,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692776 +GCP,northamerica-northeast1,n1-highcpu-96,on_demand,NA,3.744429,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693598 +GCP,northamerica-northeast1,n1-highcpu-96,spot,NA,1.289443,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693612 +GCP,northamerica-northeast1,n1-highmem-16,on_demand,NA,1.041966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687477 +GCP,northamerica-northeast1,n1-highmem-16,spot,NA,0.359432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687491 +GCP,northamerica-northeast1,n1-highmem-32,on_demand,NA,2.083932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688350 +GCP,northamerica-northeast1,n1-highmem-32,spot,NA,0.718864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688365 +GCP,northamerica-northeast1,n1-highmem-4,on_demand,NA,0.260491,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685718 +GCP,northamerica-northeast1,n1-highmem-4,spot,NA,0.089858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685731 +GCP,northamerica-northeast1,n1-highmem-64,on_demand,NA,4.167864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689282 +GCP,northamerica-northeast1,n1-highmem-64,spot,NA,1.437728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689297 +GCP,northamerica-northeast1,n1-highmem-8,on_demand,NA,0.520983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686559 +GCP,northamerica-northeast1,n1-highmem-8,spot,NA,0.179716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686573 +GCP,northamerica-northeast1,n1-highmem-96,on_demand,NA,6.251796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690175 +GCP,northamerica-northeast1,n1-highmem-96,spot,NA,2.156592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690189 +GCP,northamerica-northeast1,n1-standard-16,on_demand,NA,0.83675,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681793 +GCP,northamerica-northeast1,n1-standard-16,spot,NA,0.28846,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681807 +GCP,northamerica-northeast1,n1-standard-32,on_demand,NA,1.6735,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682776 +GCP,northamerica-northeast1,n1-standard-32,spot,NA,0.57692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682796 +GCP,northamerica-northeast1,n1-standard-4,on_demand,NA,0.209187,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680053 +GCP,northamerica-northeast1,n1-standard-4,spot,NA,0.072115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680067 +GCP,northamerica-northeast1,n1-standard-64,on_demand,NA,3.347,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683722 +GCP,northamerica-northeast1,n1-standard-64,spot,NA,1.15384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683735 +GCP,northamerica-northeast1,n1-standard-8,on_demand,NA,0.418375,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680938 +GCP,northamerica-northeast1,n1-standard-8,spot,NA,0.14423,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680952 +GCP,northamerica-northeast1,n1-standard-96,on_demand,NA,5.0205,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684817 +GCP,northamerica-northeast1,n1-standard-96,spot,NA,1.73076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684830 +GCP,northamerica-northeast1,n2-highcpu-16,on_demand,NA,0.564294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711363 +GCP,northamerica-northeast1,n2-highcpu-16,reserved_1y,NA,0.397808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711390 +GCP,northamerica-northeast1,n2-highcpu-16,reserved_3y,NA,0.284128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711405 +GCP,northamerica-northeast1,n2-highcpu-16,spot,NA,0.149984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711376 +GCP,northamerica-northeast1,n2-highcpu-32,on_demand,NA,1.128589,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712470 +GCP,northamerica-northeast1,n2-highcpu-32,reserved_1y,NA,0.795616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712497 +GCP,northamerica-northeast1,n2-highcpu-32,reserved_3y,NA,0.568256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712512 +GCP,northamerica-northeast1,n2-highcpu-32,spot,NA,0.299968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712483 +GCP,northamerica-northeast1,n2-highcpu-48,on_demand,NA,1.692883,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713638 +GCP,northamerica-northeast1,n2-highcpu-48,reserved_1y,NA,1.193424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713670 +GCP,northamerica-northeast1,n2-highcpu-48,reserved_3y,NA,0.852384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713684 +GCP,northamerica-northeast1,n2-highcpu-48,spot,NA,0.449952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713656 +GCP,northamerica-northeast1,n2-highcpu-64,on_demand,NA,2.257178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714732 +GCP,northamerica-northeast1,n2-highcpu-64,reserved_1y,NA,1.591232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714761 +GCP,northamerica-northeast1,n2-highcpu-64,reserved_3y,NA,1.136512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714775 +GCP,northamerica-northeast1,n2-highcpu-64,spot,NA,0.599936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714746 +GCP,northamerica-northeast1,n2-highcpu-80,on_demand,NA,2.821472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715819 +GCP,northamerica-northeast1,n2-highcpu-80,reserved_1y,NA,1.98904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715846 +GCP,northamerica-northeast1,n2-highcpu-80,reserved_3y,NA,1.42064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715891 +GCP,northamerica-northeast1,n2-highcpu-80,spot,NA,0.74992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715833 +GCP,northamerica-northeast1,n2-highmem-16,on_demand,NA,0.616531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705781 +GCP,northamerica-northeast1,n2-highmem-16,reserved_1y,NA,0.726864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705810 +GCP,northamerica-northeast1,n2-highmem-16,reserved_3y,NA,0.519104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705825 +GCP,northamerica-northeast1,n2-highmem-16,spot,NA,0.274752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705796 +GCP,northamerica-northeast1,n2-highmem-2,on_demand,NA,0.077066,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702440 +GCP,northamerica-northeast1,n2-highmem-2,reserved_1y,NA,0.090858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702470 +GCP,northamerica-northeast1,n2-highmem-2,reserved_3y,NA,0.064888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702484 +GCP,northamerica-northeast1,n2-highmem-2,spot,NA,0.034344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702455 +GCP,northamerica-northeast1,n2-highmem-32,on_demand,NA,1.233062,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706910 +GCP,northamerica-northeast1,n2-highmem-32,reserved_1y,NA,1.453728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706946 +GCP,northamerica-northeast1,n2-highmem-32,reserved_3y,NA,1.038208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706960 +GCP,northamerica-northeast1,n2-highmem-32,spot,NA,0.549504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706932 +GCP,northamerica-northeast1,n2-highmem-4,on_demand,NA,0.154133,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703545 +GCP,northamerica-northeast1,n2-highmem-4,reserved_1y,NA,0.181716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703573 +GCP,northamerica-northeast1,n2-highmem-4,reserved_3y,NA,0.129776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703588 +GCP,northamerica-northeast1,n2-highmem-4,spot,NA,0.068688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703559 +GCP,northamerica-northeast1,n2-highmem-48,on_demand,NA,1.849594,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708053 +GCP,northamerica-northeast1,n2-highmem-48,reserved_1y,NA,2.180592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708081 +GCP,northamerica-northeast1,n2-highmem-48,reserved_3y,NA,1.557312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708095 +GCP,northamerica-northeast1,n2-highmem-48,spot,NA,0.824256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708067 +GCP,northamerica-northeast1,n2-highmem-64,on_demand,NA,2.466125,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709138 +GCP,northamerica-northeast1,n2-highmem-64,reserved_1y,NA,2.907456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709167 +GCP,northamerica-northeast1,n2-highmem-64,reserved_3y,NA,2.076416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709181 +GCP,northamerica-northeast1,n2-highmem-64,spot,NA,1.099008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709152 +GCP,northamerica-northeast1,n2-highmem-8,on_demand,NA,0.308266,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704688 +GCP,northamerica-northeast1,n2-highmem-8,reserved_1y,NA,0.363432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704716 +GCP,northamerica-northeast1,n2-highmem-8,reserved_3y,NA,0.259552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704729 +GCP,northamerica-northeast1,n2-highmem-8,spot,NA,0.137376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704702 +GCP,northamerica-northeast1,n2-highmem-80,on_demand,NA,3.082656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710226 +GCP,northamerica-northeast1,n2-highmem-80,reserved_1y,NA,3.63432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710253 +GCP,northamerica-northeast1,n2-highmem-80,reserved_3y,NA,2.59552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710266 +GCP,northamerica-northeast1,n2-highmem-80,spot,NA,1.37376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710240 +GCP,northamerica-northeast1,n2-standard-16,on_demand,NA,0.586682,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696866 +GCP,northamerica-northeast1,n2-standard-16,reserved_1y,NA,0.538832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696894 +GCP,northamerica-northeast1,n2-standard-16,reserved_3y,NA,0.384832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696908 +GCP,northamerica-northeast1,n2-standard-16,spot,NA,0.203456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696880 +GCP,northamerica-northeast1,n2-standard-32,on_demand,NA,1.173363,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697989 +GCP,northamerica-northeast1,n2-standard-32,reserved_1y,NA,1.077664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698017 +GCP,northamerica-northeast1,n2-standard-32,reserved_3y,NA,0.769664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698029 +GCP,northamerica-northeast1,n2-standard-32,spot,NA,0.406912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698004 +GCP,northamerica-northeast1,n2-standard-4,on_demand,NA,0.14667,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694593 +GCP,northamerica-northeast1,n2-standard-4,reserved_1y,NA,0.134708,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694621 +GCP,northamerica-northeast1,n2-standard-4,reserved_3y,NA,0.096208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694635 +GCP,northamerica-northeast1,n2-standard-4,spot,NA,0.050864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694607 +GCP,northamerica-northeast1,n2-standard-48,on_demand,NA,1.760045,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699116 +GCP,northamerica-northeast1,n2-standard-48,reserved_1y,NA,1.616496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699145 +GCP,northamerica-northeast1,n2-standard-48,reserved_3y,NA,1.154496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699160 +GCP,northamerica-northeast1,n2-standard-48,spot,NA,0.610368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699131 +GCP,northamerica-northeast1,n2-standard-64,on_demand,NA,2.346726,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700220 +GCP,northamerica-northeast1,n2-standard-64,reserved_1y,NA,2.155328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700249 +GCP,northamerica-northeast1,n2-standard-64,reserved_3y,NA,1.539328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700263 +GCP,northamerica-northeast1,n2-standard-64,spot,NA,0.813824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700234 +GCP,northamerica-northeast1,n2-standard-8,on_demand,NA,0.293341,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695707 +GCP,northamerica-northeast1,n2-standard-8,reserved_1y,NA,0.269416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695736 +GCP,northamerica-northeast1,n2-standard-8,reserved_3y,NA,0.192416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695749 +GCP,northamerica-northeast1,n2-standard-8,spot,NA,0.101728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695721 +GCP,northamerica-northeast1,n2-standard-80,on_demand,NA,2.933408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701350 +GCP,northamerica-northeast1,n2-standard-80,reserved_1y,NA,2.69416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701378 +GCP,northamerica-northeast1,n2-standard-80,reserved_3y,NA,1.92416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701392 +GCP,northamerica-northeast1,n2-standard-80,spot,NA,1.01728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701364 +GCP,northamerica-northeast1,n2d-highcpu-128,on_demand,NA,0.439501,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752758 +GCP,northamerica-northeast1,n2d-highcpu-128,reserved_1y,NA,2.768768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752786 +GCP,northamerica-northeast1,n2d-highcpu-128,reserved_3y,NA,1.977472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752799 +GCP,northamerica-northeast1,n2d-highcpu-128,spot,NA,1.424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752772 +GCP,northamerica-northeast1,n2d-highcpu-16,on_demand,NA,0.054938,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746453 +GCP,northamerica-northeast1,n2d-highcpu-16,reserved_1y,NA,0.346096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746480 +GCP,northamerica-northeast1,n2d-highcpu-16,reserved_3y,NA,0.247184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746493 +GCP,northamerica-northeast1,n2d-highcpu-16,spot,NA,0.178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746466 +GCP,northamerica-northeast1,n2d-highcpu-224,on_demand,NA,0.769126,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753783 +GCP,northamerica-northeast1,n2d-highcpu-224,reserved_1y,NA,4.845344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753810 +GCP,northamerica-northeast1,n2d-highcpu-224,reserved_3y,NA,3.460576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753824 +GCP,northamerica-northeast1,n2d-highcpu-224,spot,NA,2.492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753797 +GCP,northamerica-northeast1,n2d-highcpu-32,on_demand,NA,0.109875,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747497 +GCP,northamerica-northeast1,n2d-highcpu-32,reserved_1y,NA,0.692192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747526 +GCP,northamerica-northeast1,n2d-highcpu-32,reserved_3y,NA,0.494368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747541 +GCP,northamerica-northeast1,n2d-highcpu-32,spot,NA,0.356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747512 +GCP,northamerica-northeast1,n2d-highcpu-48,on_demand,NA,0.164813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748566 +GCP,northamerica-northeast1,n2d-highcpu-48,reserved_1y,NA,1.038288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748594 +GCP,northamerica-northeast1,n2d-highcpu-48,reserved_3y,NA,0.741552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748608 +GCP,northamerica-northeast1,n2d-highcpu-48,spot,NA,0.534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748580 +GCP,northamerica-northeast1,n2d-highcpu-64,on_demand,NA,0.21975,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749610 +GCP,northamerica-northeast1,n2d-highcpu-64,reserved_1y,NA,1.384384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749639 +GCP,northamerica-northeast1,n2d-highcpu-64,reserved_3y,NA,0.988736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749653 +GCP,northamerica-northeast1,n2d-highcpu-64,spot,NA,0.712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749625 +GCP,northamerica-northeast1,n2d-highcpu-80,on_demand,NA,0.274688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750659 +GCP,northamerica-northeast1,n2d-highcpu-80,reserved_1y,NA,1.73048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750687 +GCP,northamerica-northeast1,n2d-highcpu-80,reserved_3y,NA,1.23592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750700 +GCP,northamerica-northeast1,n2d-highcpu-80,spot,NA,0.89,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750673 +GCP,northamerica-northeast1,n2d-highcpu-96,on_demand,NA,0.329626,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751705 +GCP,northamerica-northeast1,n2d-highcpu-96,reserved_1y,NA,2.076576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751733 +GCP,northamerica-northeast1,n2d-highcpu-96,reserved_3y,NA,1.483104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751747 +GCP,northamerica-northeast1,n2d-highcpu-96,spot,NA,1.068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751719 +GCP,northamerica-northeast1,n2d-highmem-16,on_demand,NA,0.100387,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740180 +GCP,northamerica-northeast1,n2d-highmem-16,reserved_1y,NA,0.632368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740209 +GCP,northamerica-northeast1,n2d-highmem-16,reserved_3y,NA,0.451584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740223 +GCP,northamerica-northeast1,n2d-highmem-16,spot,NA,0.32528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740195 +GCP,northamerica-northeast1,n2d-highmem-2,on_demand,NA,0.012548,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736958 +GCP,northamerica-northeast1,n2d-highmem-2,reserved_1y,NA,0.079046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736988 +GCP,northamerica-northeast1,n2d-highmem-2,reserved_3y,NA,0.056448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737002 +GCP,northamerica-northeast1,n2d-highmem-2,spot,NA,0.04066,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736973 +GCP,northamerica-northeast1,n2d-highmem-32,on_demand,NA,0.200774,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741195 +GCP,northamerica-northeast1,n2d-highmem-32,reserved_1y,NA,1.264736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741223 +GCP,northamerica-northeast1,n2d-highmem-32,reserved_3y,NA,0.903168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741236 +GCP,northamerica-northeast1,n2d-highmem-32,spot,NA,0.65056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741209 +GCP,northamerica-northeast1,n2d-highmem-4,on_demand,NA,0.025097,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738035 +GCP,northamerica-northeast1,n2d-highmem-4,reserved_1y,NA,0.158092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738064 +GCP,northamerica-northeast1,n2d-highmem-4,reserved_3y,NA,0.112896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738080 +GCP,northamerica-northeast1,n2d-highmem-4,spot,NA,0.08132,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738050 +GCP,northamerica-northeast1,n2d-highmem-48,on_demand,NA,0.301162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742274 +GCP,northamerica-northeast1,n2d-highmem-48,reserved_1y,NA,1.897104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742302 +GCP,northamerica-northeast1,n2d-highmem-48,reserved_3y,NA,1.354752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742316 +GCP,northamerica-northeast1,n2d-highmem-48,spot,NA,0.97584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742288 +GCP,northamerica-northeast1,n2d-highmem-64,on_demand,NA,0.401549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743323 +GCP,northamerica-northeast1,n2d-highmem-64,reserved_1y,NA,2.529472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743351 +GCP,northamerica-northeast1,n2d-highmem-64,reserved_3y,NA,1.806336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743365 +GCP,northamerica-northeast1,n2d-highmem-64,spot,NA,1.30112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743337 +GCP,northamerica-northeast1,n2d-highmem-8,on_demand,NA,0.050194,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739113 +GCP,northamerica-northeast1,n2d-highmem-8,reserved_1y,NA,0.316184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739141 +GCP,northamerica-northeast1,n2d-highmem-8,reserved_3y,NA,0.225792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739155 +GCP,northamerica-northeast1,n2d-highmem-8,spot,NA,0.16264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739127 +GCP,northamerica-northeast1,n2d-highmem-80,on_demand,NA,0.501936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744377 +GCP,northamerica-northeast1,n2d-highmem-80,reserved_1y,NA,3.16184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744414 +GCP,northamerica-northeast1,n2d-highmem-80,reserved_3y,NA,2.25792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744437 +GCP,northamerica-northeast1,n2d-highmem-80,spot,NA,1.6264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744392 +GCP,northamerica-northeast1,n2d-highmem-96,on_demand,NA,0.602323,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745434 +GCP,northamerica-northeast1,n2d-highmem-96,reserved_1y,NA,3.794208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745461 +GCP,northamerica-northeast1,n2d-highmem-96,reserved_3y,NA,2.709504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745475 +GCP,northamerica-northeast1,n2d-highmem-96,spot,NA,1.95168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745447 +GCP,northamerica-northeast1,n2d-standard-128,on_demand,NA,0.595328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734872 +GCP,northamerica-northeast1,n2d-standard-128,reserved_1y,NA,3.750272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734900 +GCP,northamerica-northeast1,n2d-standard-128,reserved_3y,NA,2.678272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734920 +GCP,northamerica-northeast1,n2d-standard-128,spot,NA,1.92896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734886 +GCP,northamerica-northeast1,n2d-standard-16,on_demand,NA,0.074416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728551 +GCP,northamerica-northeast1,n2d-standard-16,reserved_1y,NA,0.468784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728579 +GCP,northamerica-northeast1,n2d-standard-16,reserved_3y,NA,0.334784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728593 +GCP,northamerica-northeast1,n2d-standard-16,spot,NA,0.24112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728565 +GCP,northamerica-northeast1,n2d-standard-224,on_demand,NA,1.041824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735930 +GCP,northamerica-northeast1,n2d-standard-224,reserved_1y,NA,6.562976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735958 +GCP,northamerica-northeast1,n2d-standard-224,reserved_3y,NA,4.686976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735970 +GCP,northamerica-northeast1,n2d-standard-224,spot,NA,3.37568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735944 +GCP,northamerica-northeast1,n2d-standard-32,on_demand,NA,0.148832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729586 +GCP,northamerica-northeast1,n2d-standard-32,reserved_1y,NA,0.937568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729614 +GCP,northamerica-northeast1,n2d-standard-32,reserved_3y,NA,0.669568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729628 +GCP,northamerica-northeast1,n2d-standard-32,spot,NA,0.48224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729600 +GCP,northamerica-northeast1,n2d-standard-4,on_demand,NA,0.018604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726427 +GCP,northamerica-northeast1,n2d-standard-4,reserved_1y,NA,0.117196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726456 +GCP,northamerica-northeast1,n2d-standard-4,reserved_3y,NA,0.083696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726470 +GCP,northamerica-northeast1,n2d-standard-4,spot,NA,0.06028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726441 +GCP,northamerica-northeast1,n2d-standard-48,on_demand,NA,0.223248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730610 +GCP,northamerica-northeast1,n2d-standard-48,reserved_1y,NA,1.406352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730638 +GCP,northamerica-northeast1,n2d-standard-48,reserved_3y,NA,1.004352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730652 +GCP,northamerica-northeast1,n2d-standard-48,spot,NA,0.72336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730624 +GCP,northamerica-northeast1,n2d-standard-64,on_demand,NA,0.297664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731705 +GCP,northamerica-northeast1,n2d-standard-64,reserved_1y,NA,1.875136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731734 +GCP,northamerica-northeast1,n2d-standard-64,reserved_3y,NA,1.339136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731748 +GCP,northamerica-northeast1,n2d-standard-64,spot,NA,0.96448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731720 +GCP,northamerica-northeast1,n2d-standard-8,on_demand,NA,0.037208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727493 +GCP,northamerica-northeast1,n2d-standard-8,reserved_1y,NA,0.234392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727521 +GCP,northamerica-northeast1,n2d-standard-8,reserved_3y,NA,0.167392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727535 +GCP,northamerica-northeast1,n2d-standard-8,spot,NA,0.12056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727508 +GCP,northamerica-northeast1,n2d-standard-80,on_demand,NA,0.37208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732770 +GCP,northamerica-northeast1,n2d-standard-80,reserved_1y,NA,2.34392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732797 +GCP,northamerica-northeast1,n2d-standard-80,reserved_3y,NA,1.67392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732811 +GCP,northamerica-northeast1,n2d-standard-80,spot,NA,1.2056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732784 +GCP,northamerica-northeast1,n2d-standard-96,on_demand,NA,0.446496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733797 +GCP,northamerica-northeast1,n2d-standard-96,reserved_1y,NA,2.812704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733826 +GCP,northamerica-northeast1,n2d-standard-96,reserved_3y,NA,2.008704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733840 +GCP,northamerica-northeast1,n2d-standard-96,spot,NA,1.44672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733812 +GCP,northamerica-northeast1,n4-standard-16,on_demand,NA,0.798958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757944 +GCP,northamerica-northeast1,n4-standard-16,reserved_1y,NA,0.503335,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757972 +GCP,northamerica-northeast1,n4-standard-16,reserved_3y,NA,0.35954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757986 +GCP,northamerica-northeast1,n4-standard-16,spot,NA,0.283904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757958 +GCP,northamerica-northeast1,n4-standard-2,on_demand,NA,0.09987,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754818 +GCP,northamerica-northeast1,n4-standard-2,reserved_1y,NA,0.062917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754846 +GCP,northamerica-northeast1,n4-standard-2,reserved_3y,NA,0.044942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754860 +GCP,northamerica-northeast1,n4-standard-2,spot,NA,0.035488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754832 +GCP,northamerica-northeast1,n4-standard-32,on_demand,NA,1.597916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758989 +GCP,northamerica-northeast1,n4-standard-32,reserved_1y,NA,1.00667,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759017 +GCP,northamerica-northeast1,n4-standard-32,reserved_3y,NA,0.71908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759031 +GCP,northamerica-northeast1,n4-standard-32,spot,NA,0.567808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759003 +GCP,northamerica-northeast1,n4-standard-4,on_demand,NA,0.19974,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755881 +GCP,northamerica-northeast1,n4-standard-4,reserved_1y,NA,0.125834,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755908 +GCP,northamerica-northeast1,n4-standard-4,reserved_3y,NA,0.089885,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755922 +GCP,northamerica-northeast1,n4-standard-4,spot,NA,0.070976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755895 +GCP,northamerica-northeast1,n4-standard-8,on_demand,NA,0.399479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756910 +GCP,northamerica-northeast1,n4-standard-8,reserved_1y,NA,0.251667,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756938 +GCP,northamerica-northeast1,n4-standard-8,reserved_3y,NA,0.17977,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756951 +GCP,northamerica-northeast1,n4-standard-8,spot,NA,0.141952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756924 +GCP,southamerica-east1,a2-highgpu-1g,on_demand,NA,1.173785,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771111 +GCP,southamerica-east1,a2-highgpu-1g,reserved_1y,NA,0.739448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771139 +GCP,southamerica-east1,a2-highgpu-1g,reserved_3y,NA,0.410862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771153 +GCP,southamerica-east1,a2-highgpu-1g,spot,NA,0.18852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771125 +GCP,southamerica-east1,a2-highgpu-2g,on_demand,NA,2.34757,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772217 +GCP,southamerica-east1,a2-highgpu-2g,reserved_1y,NA,1.478895,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772244 +GCP,southamerica-east1,a2-highgpu-2g,reserved_3y,NA,0.821724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772258 +GCP,southamerica-east1,a2-highgpu-2g,spot,NA,0.37704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772231 +GCP,southamerica-east1,a2-highgpu-4g,on_demand,NA,4.69514,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773304 +GCP,southamerica-east1,a2-highgpu-4g,reserved_1y,NA,2.95779,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773332 +GCP,southamerica-east1,a2-highgpu-4g,reserved_3y,NA,1.643448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773347 +GCP,southamerica-east1,a2-highgpu-4g,spot,NA,0.75408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773318 +GCP,southamerica-east1,a2-highgpu-8g,on_demand,NA,9.39028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774427 +GCP,southamerica-east1,a2-highgpu-8g,reserved_1y,NA,5.91558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774455 +GCP,southamerica-east1,a2-highgpu-8g,reserved_3y,NA,3.286896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774469 +GCP,southamerica-east1,a2-highgpu-8g,spot,NA,1.50816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774440 +GCP,southamerica-east1,a2-megagpu-16g,on_demand,NA,13.96328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775519 +GCP,southamerica-east1,a2-megagpu-16g,reserved_1y,NA,8.796264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775547 +GCP,southamerica-east1,a2-megagpu-16g,reserved_3y,NA,4.887736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775561 +GCP,southamerica-east1,a2-megagpu-16g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775533 +GCP,southamerica-east1,a2-ultragpu-1g,on_demand,NA,1.74541,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776615 +GCP,southamerica-east1,a2-ultragpu-1g,reserved_1y,NA,1.099533,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776653 +GCP,southamerica-east1,a2-ultragpu-1g,reserved_3y,NA,0.610967,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776666 +GCP,southamerica-east1,a2-ultragpu-1g,spot,NA,0.28032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776637 +GCP,southamerica-east1,a2-ultragpu-2g,on_demand,NA,3.49082,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777744 +GCP,southamerica-east1,a2-ultragpu-2g,reserved_1y,NA,2.199066,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777772 +GCP,southamerica-east1,a2-ultragpu-2g,reserved_3y,NA,1.221934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777786 +GCP,southamerica-east1,a2-ultragpu-2g,spot,NA,0.56064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777758 +GCP,southamerica-east1,a2-ultragpu-4g,on_demand,NA,6.98164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778785 +GCP,southamerica-east1,a2-ultragpu-4g,reserved_1y,NA,4.398132,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778813 +GCP,southamerica-east1,a2-ultragpu-4g,reserved_3y,NA,2.443868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778827 +GCP,southamerica-east1,a2-ultragpu-4g,spot,NA,1.12128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778799 +GCP,southamerica-east1,a2-ultragpu-8g,on_demand,NA,13.96328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779835 +GCP,southamerica-east1,a2-ultragpu-8g,reserved_1y,NA,8.796264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779907 +GCP,southamerica-east1,a2-ultragpu-8g,reserved_3y,NA,4.887736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779924 +GCP,southamerica-east1,a2-ultragpu-8g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779850 +GCP,southamerica-east1,a3-highgpu-1g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780951 +GCP,southamerica-east1,a3-highgpu-1g,reserved_1y,NA,1.305841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780979 +GCP,southamerica-east1,a3-highgpu-1g,reserved_3y,NA,0.827554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780993 +GCP,southamerica-east1,a3-highgpu-1g,spot,NA,0.33813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780965 +GCP,southamerica-east1,a3-highgpu-2g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781992 +GCP,southamerica-east1,a3-highgpu-2g,reserved_1y,NA,1.305841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782021 +GCP,southamerica-east1,a3-highgpu-2g,reserved_3y,NA,0.827554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782035 +GCP,southamerica-east1,a3-highgpu-2g,spot,NA,0.33813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782007 +GCP,southamerica-east1,a3-highgpu-4g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783122 +GCP,southamerica-east1,a3-highgpu-4g,reserved_1y,NA,1.305841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783150 +GCP,southamerica-east1,a3-highgpu-4g,reserved_3y,NA,0.827554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783163 +GCP,southamerica-east1,a3-highgpu-4g,spot,NA,0.33813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783136 +GCP,southamerica-east1,a3-highgpu-8g,on_demand,NA,0.55164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784173 +GCP,southamerica-east1,a3-highgpu-8g,reserved_1y,NA,1.305841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784201 +GCP,southamerica-east1,a3-highgpu-8g,reserved_3y,NA,0.827554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784215 +GCP,southamerica-east1,a3-highgpu-8g,spot,NA,0.33813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784187 +GCP,southamerica-east1,c2-standard-16,on_demand,NA,1.153376,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722240 +GCP,southamerica-east1,c2-standard-16,reserved_1y,NA,0.726624,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722285 +GCP,southamerica-east1,c2-standard-16,reserved_3y,NA,0.51904,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722309 +GCP,southamerica-east1,c2-standard-16,spot,NA,0.239072,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722262 +GCP,southamerica-east1,c2-standard-30,on_demand,NA,2.16258,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723971 +GCP,southamerica-east1,c2-standard-30,reserved_1y,NA,1.36242,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724017 +GCP,southamerica-east1,c2-standard-30,reserved_3y,NA,0.9732,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724041 +GCP,southamerica-east1,c2-standard-30,spot,NA,0.44826,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.723994 +GCP,southamerica-east1,c2-standard-4,on_demand,NA,0.288344,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718787 +GCP,southamerica-east1,c2-standard-4,reserved_1y,NA,0.181656,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718833 +GCP,southamerica-east1,c2-standard-4,reserved_3y,NA,0.12976,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718857 +GCP,southamerica-east1,c2-standard-4,spot,NA,0.059768,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.718810 +GCP,southamerica-east1,c2-standard-60,on_demand,NA,4.32516,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725658 +GCP,southamerica-east1,c2-standard-60,reserved_1y,NA,2.72484,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725704 +GCP,southamerica-east1,c2-standard-60,reserved_3y,NA,1.9464,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725727 +GCP,southamerica-east1,c2-standard-60,spot,NA,0.89652,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.725681 +GCP,southamerica-east1,c2-standard-8,on_demand,NA,0.576688,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720551 +GCP,southamerica-east1,c2-standard-8,reserved_1y,NA,0.363312,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720598 +GCP,southamerica-east1,c2-standard-8,reserved_3y,NA,0.25952,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720621 +GCP,southamerica-east1,c2-standard-8,spot,NA,0.119536,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720574 +GCP,southamerica-east1,c3-highmem-22,on_demand,NA,1.320512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801076 +GCP,southamerica-east1,c3-highmem-22,reserved_1y,NA,1.455971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801104 +GCP,southamerica-east1,c3-highmem-22,reserved_3y,NA,1.039944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801117 +GCP,southamerica-east1,c3-highmem-22,spot,NA,0.225764,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801090 +GCP,southamerica-east1,c3-highmem-4,on_demand,NA,0.240093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799015 +GCP,southamerica-east1,c3-highmem-4,reserved_1y,NA,0.264722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799046 +GCP,southamerica-east1,c3-highmem-4,reserved_3y,NA,0.189081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799060 +GCP,southamerica-east1,c3-highmem-4,spot,NA,0.041048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799030 +GCP,southamerica-east1,c3-highmem-44,on_demand,NA,2.641023,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802094 +GCP,southamerica-east1,c3-highmem-44,reserved_1y,NA,2.911942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802123 +GCP,southamerica-east1,c3-highmem-44,reserved_3y,NA,2.079889,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802136 +GCP,southamerica-east1,c3-highmem-44,spot,NA,0.451528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802109 +GCP,southamerica-east1,c3-highmem-8,on_demand,NA,0.480186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800073 +GCP,southamerica-east1,c3-highmem-8,reserved_1y,NA,0.529444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800100 +GCP,southamerica-east1,c3-highmem-8,reserved_3y,NA,0.378162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800113 +GCP,southamerica-east1,c3-highmem-8,spot,NA,0.082096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800086 +GCP,southamerica-east1,c3-highmem-88,on_demand,NA,5.282047,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803138 +GCP,southamerica-east1,c3-highmem-88,reserved_1y,NA,5.823884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803176 +GCP,southamerica-east1,c3-highmem-88,reserved_3y,NA,4.159778,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803189 +GCP,southamerica-east1,c3-highmem-88,spot,NA,0.903056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803161 +GCP,southamerica-east1,c3-standard-22 (-lssd),on_demand,NA,1.265484,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795801 +GCP,southamerica-east1,c3-standard-22 (-lssd),reserved_1y,NA,1.109288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795829 +GCP,southamerica-east1,c3-standard-22 (-lssd),reserved_3y,NA,0.792334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795843 +GCP,southamerica-east1,c3-standard-22 (-lssd),spot,NA,0.167332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795815 +GCP,southamerica-east1,c3-standard-4 (-lssd),on_demand,NA,0.230088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793690 +GCP,southamerica-east1,c3-standard-4 (-lssd),reserved_1y,NA,0.201689,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793719 +GCP,southamerica-east1,c3-standard-4 (-lssd),reserved_3y,NA,0.144061,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793732 +GCP,southamerica-east1,c3-standard-4 (-lssd),spot,NA,0.030424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793704 +GCP,southamerica-east1,c3-standard-44 (-lssd),on_demand,NA,2.530968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796902 +GCP,southamerica-east1,c3-standard-44 (-lssd),reserved_1y,NA,2.218576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796930 +GCP,southamerica-east1,c3-standard-44 (-lssd),reserved_3y,NA,1.584667,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796944 +GCP,southamerica-east1,c3-standard-44 (-lssd),spot,NA,0.334664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796916 +GCP,southamerica-east1,c3-standard-8 (-lssd),on_demand,NA,0.460176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794725 +GCP,southamerica-east1,c3-standard-8 (-lssd),reserved_1y,NA,0.403377,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794753 +GCP,southamerica-east1,c3-standard-8 (-lssd),reserved_3y,NA,0.288121,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794767 +GCP,southamerica-east1,c3-standard-8 (-lssd),spot,NA,0.060848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794739 +GCP,southamerica-east1,c3-standard-88 (-lssd),on_demand,NA,5.061936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797957 +GCP,southamerica-east1,c3-standard-88 (-lssd),reserved_1y,NA,4.437152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797988 +GCP,southamerica-east1,c3-standard-88 (-lssd),reserved_3y,NA,3.169334,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798002 +GCP,southamerica-east1,c3-standard-88 (-lssd),spot,NA,0.669328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797974 +GCP,southamerica-east1,c3d-highmem-16 (-lssd),on_demand,NA,1.555761,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814889 +GCP,southamerica-east1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.980077,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814926 +GCP,southamerica-east1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.699972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814940 +GCP,southamerica-east1,c3d-highmem-16 (-lssd),spot,NA,0.577229,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814903 +GCP,southamerica-east1,c3d-highmem-180 (-lssd),on_demand,NA,17.50231,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819072 +GCP,southamerica-east1,c3d-highmem-180 (-lssd),reserved_1y,NA,11.02587,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819100 +GCP,southamerica-east1,c3d-highmem-180 (-lssd),reserved_3y,NA,7.874681,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819113 +GCP,southamerica-east1,c3d-highmem-180 (-lssd),spot,NA,6.493821,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819086 +GCP,southamerica-east1,c3d-highmem-30 (-lssd),on_demand,NA,2.917052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815963 +GCP,southamerica-east1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.837645,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815992 +GCP,southamerica-east1,c3d-highmem-30 (-lssd),reserved_3y,NA,1.312447,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816007 +GCP,southamerica-east1,c3d-highmem-30 (-lssd),spot,NA,1.082304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815978 +GCP,southamerica-east1,c3d-highmem-360 (-lssd),on_demand,NA,35.004621,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820118 +GCP,southamerica-east1,c3d-highmem-360 (-lssd),reserved_1y,NA,22.05174,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820146 +GCP,southamerica-east1,c3d-highmem-360 (-lssd),reserved_3y,NA,15.749363,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820160 +GCP,southamerica-east1,c3d-highmem-360 (-lssd),spot,NA,12.987642,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820132 +GCP,southamerica-east1,c3d-highmem-4 (-lssd),on_demand,NA,0.38894,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812634 +GCP,southamerica-east1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.245019,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812662 +GCP,southamerica-east1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.174993,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812676 +GCP,southamerica-east1,c3d-highmem-4 (-lssd),spot,NA,0.144307,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812648 +GCP,southamerica-east1,c3d-highmem-60 (-lssd),on_demand,NA,5.834103,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817001 +GCP,southamerica-east1,c3d-highmem-60 (-lssd),reserved_1y,NA,3.67529,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817028 +GCP,southamerica-east1,c3d-highmem-60 (-lssd),reserved_3y,NA,2.624894,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817042 +GCP,southamerica-east1,c3d-highmem-60 (-lssd),spot,NA,2.164607,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817014 +GCP,southamerica-east1,c3d-highmem-8 (-lssd),on_demand,NA,0.77788,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813685 +GCP,southamerica-east1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.490039,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813714 +GCP,southamerica-east1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.349986,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813728 +GCP,southamerica-east1,c3d-highmem-8 (-lssd),spot,NA,0.288614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813700 +GCP,southamerica-east1,c3d-highmem-90 (-lssd),on_demand,NA,8.751155,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818033 +GCP,southamerica-east1,c3d-highmem-90 (-lssd),reserved_1y,NA,5.512935,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818060 +GCP,southamerica-east1,c3d-highmem-90 (-lssd),reserved_3y,NA,3.937341,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818075 +GCP,southamerica-east1,c3d-highmem-90 (-lssd),spot,NA,3.246911,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818047 +GCP,southamerica-east1,c3d-standard-16 (-lssd),on_demand,NA,1.153425,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806269 +GCP,southamerica-east1,c3d-standard-16 (-lssd),reserved_1y,NA,0.726623,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806299 +GCP,southamerica-east1,c3d-standard-16 (-lssd),reserved_3y,NA,0.518976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806313 +GCP,southamerica-east1,c3d-standard-16 (-lssd),spot,NA,0.416294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806284 +GCP,southamerica-east1,c3d-standard-180 (-lssd),on_demand,NA,12.976033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810520 +GCP,southamerica-east1,c3d-standard-180 (-lssd),reserved_1y,NA,8.17451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810547 +GCP,southamerica-east1,c3d-standard-180 (-lssd),reserved_3y,NA,5.838485,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810562 +GCP,southamerica-east1,c3d-standard-180 (-lssd),spot,NA,4.683311,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810534 +GCP,southamerica-east1,c3d-standard-30 (-lssd),on_demand,NA,2.162672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807334 +GCP,southamerica-east1,c3d-standard-30 (-lssd),reserved_1y,NA,1.362418,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807363 +GCP,southamerica-east1,c3d-standard-30 (-lssd),reserved_3y,NA,0.973081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807377 +GCP,southamerica-east1,c3d-standard-30 (-lssd),spot,NA,0.780552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807348 +GCP,southamerica-east1,c3d-standard-360 (-lssd),on_demand,NA,25.952067,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811571 +GCP,southamerica-east1,c3d-standard-360 (-lssd),reserved_1y,NA,16.349019,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811599 +GCP,southamerica-east1,c3d-standard-360 (-lssd),reserved_3y,NA,11.676971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811612 +GCP,southamerica-east1,c3d-standard-360 (-lssd),spot,NA,9.366621,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811585 +GCP,southamerica-east1,c3d-standard-4 (-lssd),on_demand,NA,0.288356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804208 +GCP,southamerica-east1,c3d-standard-4 (-lssd),reserved_1y,NA,0.181656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804235 +GCP,southamerica-east1,c3d-standard-4 (-lssd),reserved_3y,NA,0.129744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804249 +GCP,southamerica-east1,c3d-standard-4 (-lssd),spot,NA,0.104074,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804222 +GCP,southamerica-east1,c3d-standard-60 (-lssd),on_demand,NA,4.325344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808406 +GCP,southamerica-east1,c3d-standard-60 (-lssd),reserved_1y,NA,2.724837,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808434 +GCP,southamerica-east1,c3d-standard-60 (-lssd),reserved_3y,NA,1.946162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808449 +GCP,southamerica-east1,c3d-standard-60 (-lssd),spot,NA,1.561104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808420 +GCP,southamerica-east1,c3d-standard-8 (-lssd),on_demand,NA,0.576713,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805225 +GCP,southamerica-east1,c3d-standard-8 (-lssd),reserved_1y,NA,0.363312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805252 +GCP,southamerica-east1,c3d-standard-8 (-lssd),reserved_3y,NA,0.259488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805266 +GCP,southamerica-east1,c3d-standard-8 (-lssd),spot,NA,0.208147,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805239 +GCP,southamerica-east1,c3d-standard-90 (-lssd),on_demand,NA,6.488017,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809461 +GCP,southamerica-east1,c3d-standard-90 (-lssd),reserved_1y,NA,4.087255,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809489 +GCP,southamerica-east1,c3d-standard-90 (-lssd),reserved_3y,NA,2.919243,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809504 +GCP,southamerica-east1,c3d-standard-90 (-lssd),spot,NA,2.341655,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809475 +GCP,southamerica-east1,c4-standard-16,on_demand,NA,0.463222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841486 +GCP,southamerica-east1,c4-standard-16,reserved_1y,NA,0.790997,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841514 +GCP,southamerica-east1,c4-standard-16,reserved_3y,NA,0.564987,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841528 +GCP,southamerica-east1,c4-standard-16,spot,NA,0.42692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841500 +GCP,southamerica-east1,c4-standard-2,on_demand,NA,0.054776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838219 +GCP,southamerica-east1,c4-standard-2,reserved_1y,NA,0.096905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838246 +GCP,southamerica-east1,c4-standard-2,reserved_3y,NA,0.069217,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838261 +GCP,southamerica-east1,c4-standard-2,spot,NA,0.052302,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838233 +GCP,southamerica-east1,c4-standard-24,on_demand,NA,0.694833,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842565 +GCP,southamerica-east1,c4-standard-24,reserved_1y,NA,1.186495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842593 +GCP,southamerica-east1,c4-standard-24,reserved_3y,NA,0.847481,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842607 +GCP,southamerica-east1,c4-standard-24,spot,NA,0.64038,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842579 +GCP,southamerica-east1,c4-standard-32,on_demand,NA,0.926444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843755 +GCP,southamerica-east1,c4-standard-32,reserved_1y,NA,1.581993,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843786 +GCP,southamerica-east1,c4-standard-32,reserved_3y,NA,1.129975,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843803 +GCP,southamerica-east1,c4-standard-32,spot,NA,0.85384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843771 +GCP,southamerica-east1,c4-standard-4,on_demand,NA,0.115806,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839255 +GCP,southamerica-east1,c4-standard-4,reserved_1y,NA,0.197749,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839283 +GCP,southamerica-east1,c4-standard-4,reserved_3y,NA,0.141247,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839297 +GCP,southamerica-east1,c4-standard-4,spot,NA,0.10673,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839269 +GCP,southamerica-east1,c4-standard-8,on_demand,NA,0.231611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840409 +GCP,southamerica-east1,c4-standard-8,reserved_1y,NA,0.395498,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840437 +GCP,southamerica-east1,c4-standard-8,reserved_3y,NA,0.282494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840452 +GCP,southamerica-east1,c4-standard-8,spot,NA,0.21346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840423 +GCP,southamerica-east1,c4a-highmem-16 (-lssd),on_demand,NA,0.960372,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832339 +GCP,southamerica-east1,c4a-highmem-16 (-lssd),reserved_1y,NA,1.058888,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832385 +GCP,southamerica-east1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.756323,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832407 +GCP,southamerica-east1,c4a-highmem-16 (-lssd),spot,NA,0.164192,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.832361 +GCP,southamerica-east1,c4a-highmem-32 (-lssd),on_demand,NA,1.920744,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833547 +GCP,southamerica-east1,c4a-highmem-32 (-lssd),reserved_1y,NA,2.117776,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833591 +GCP,southamerica-east1,c4a-highmem-32 (-lssd),reserved_3y,NA,1.512646,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833613 +GCP,southamerica-east1,c4a-highmem-32 (-lssd),spot,NA,0.328384,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.833568 +GCP,southamerica-east1,c4a-highmem-4 (-lssd),on_demand,NA,0.240093,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829867 +GCP,southamerica-east1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.264722,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829915 +GCP,southamerica-east1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.189081,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829939 +GCP,southamerica-east1,c4a-highmem-4 (-lssd),spot,NA,0.041048,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.829889 +GCP,southamerica-east1,c4a-highmem-48 (-lssd),on_demand,NA,2.881116,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834747 +GCP,southamerica-east1,c4a-highmem-48 (-lssd),reserved_1y,NA,3.176664,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834790 +GCP,southamerica-east1,c4a-highmem-48 (-lssd),reserved_3y,NA,2.26897,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834811 +GCP,southamerica-east1,c4a-highmem-48 (-lssd),spot,NA,0.492576,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.834768 +GCP,southamerica-east1,c4a-highmem-64 (-lssd),on_demand,NA,3.841489,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835941 +GCP,southamerica-east1,c4a-highmem-64 (-lssd),reserved_1y,NA,4.235552,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835984 +GCP,southamerica-east1,c4a-highmem-64 (-lssd),reserved_3y,NA,3.025293,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.836005 +GCP,southamerica-east1,c4a-highmem-64 (-lssd),spot,NA,0.656768,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.835963 +GCP,southamerica-east1,c4a-highmem-72 (-lssd),on_demand,NA,4.321675,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.837081 +GCP,southamerica-east1,c4a-highmem-72 (-lssd),reserved_1y,NA,4.764996,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.837123 +GCP,southamerica-east1,c4a-highmem-72 (-lssd),reserved_3y,NA,3.403454,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.837144 +GCP,southamerica-east1,c4a-highmem-72 (-lssd),spot,NA,0.738864,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.837102 +GCP,southamerica-east1,c4a-highmem-8 (-lssd),on_demand,NA,0.480186,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831086 +GCP,southamerica-east1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.529444,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831129 +GCP,southamerica-east1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.378162,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831151 +GCP,southamerica-east1,c4a-highmem-8 (-lssd),spot,NA,0.082096,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.831107 +GCP,southamerica-east1,c4a-standard-16 (-lssd),on_demand,NA,0.920352,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823784 +GCP,southamerica-east1,c4a-standard-16 (-lssd),reserved_1y,NA,0.806755,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823830 +GCP,southamerica-east1,c4a-standard-16 (-lssd),reserved_3y,NA,0.576243,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823853 +GCP,southamerica-east1,c4a-standard-16 (-lssd),spot,NA,0.121696,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.823807 +GCP,southamerica-east1,c4a-standard-32 (-lssd),on_demand,NA,1.840704,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825027 +GCP,southamerica-east1,c4a-standard-32 (-lssd),reserved_1y,NA,1.61351,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825072 +GCP,southamerica-east1,c4a-standard-32 (-lssd),reserved_3y,NA,1.152485,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825095 +GCP,southamerica-east1,c4a-standard-32 (-lssd),spot,NA,0.243392,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.825049 +GCP,southamerica-east1,c4a-standard-4 (-lssd),on_demand,NA,0.230088,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821324 +GCP,southamerica-east1,c4a-standard-4 (-lssd),reserved_1y,NA,0.201689,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821371 +GCP,southamerica-east1,c4a-standard-4 (-lssd),reserved_3y,NA,0.144061,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821394 +GCP,southamerica-east1,c4a-standard-4 (-lssd),spot,NA,0.030424,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.821347 +GCP,southamerica-east1,c4a-standard-48 (-lssd),on_demand,NA,2.761056,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826249 +GCP,southamerica-east1,c4a-standard-48 (-lssd),reserved_1y,NA,2.420265,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826295 +GCP,southamerica-east1,c4a-standard-48 (-lssd),reserved_3y,NA,1.728728,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826318 +GCP,southamerica-east1,c4a-standard-48 (-lssd),spot,NA,0.365088,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.826272 +GCP,southamerica-east1,c4a-standard-64 (-lssd),on_demand,NA,3.681408,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827466 +GCP,southamerica-east1,c4a-standard-64 (-lssd),reserved_1y,NA,3.22702,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827509 +GCP,southamerica-east1,c4a-standard-64 (-lssd),reserved_3y,NA,2.30497,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827532 +GCP,southamerica-east1,c4a-standard-64 (-lssd),spot,NA,0.486784,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.827487 +GCP,southamerica-east1,c4a-standard-72 (-lssd),on_demand,NA,4.141584,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828669 +GCP,southamerica-east1,c4a-standard-72 (-lssd),reserved_1y,NA,3.630397,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828713 +GCP,southamerica-east1,c4a-standard-72 (-lssd),reserved_3y,NA,2.593092,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828735 +GCP,southamerica-east1,c4a-standard-72 (-lssd),spot,NA,0.547632,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.828691 +GCP,southamerica-east1,c4a-standard-8 (-lssd),on_demand,NA,0.460176,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822540 +GCP,southamerica-east1,c4a-standard-8 (-lssd),reserved_1y,NA,0.403377,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822585 +GCP,southamerica-east1,c4a-standard-8 (-lssd),reserved_3y,NA,0.288121,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822607 +GCP,southamerica-east1,c4a-standard-8 (-lssd),spot,NA,0.060848,USD,GCP Cloud Billing API (fallback: c3),2025-11-30T12:53:25.822563 +GCP,southamerica-east1,c4d-standard-16,on_demand,NA,1.140852,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848945 +GCP,southamerica-east1,c4d-standard-16,reserved_1y,NA,0.718703,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848989 +GCP,southamerica-east1,c4d-standard-16,reserved_3y,NA,0.51332,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849012 +GCP,southamerica-east1,c4d-standard-16,spot,NA,0.411265,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848967 +GCP,southamerica-east1,c4d-standard-2,on_demand,NA,0.137892,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845055 +GCP,southamerica-east1,c4d-standard-2,reserved_1y,NA,0.086868,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845100 +GCP,southamerica-east1,c4d-standard-2,reserved_3y,NA,0.062044,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845123 +GCP,southamerica-east1,c4d-standard-2,spot,NA,0.049522,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845078 +GCP,southamerica-east1,c4d-standard-32,on_demand,NA,2.281704,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850261 +GCP,southamerica-east1,c4d-standard-32,reserved_1y,NA,1.437405,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850319 +GCP,southamerica-east1,c4d-standard-32,reserved_3y,NA,1.026641,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850341 +GCP,southamerica-east1,c4d-standard-32,spot,NA,0.82253,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.850297 +GCP,southamerica-east1,c4d-standard-4,on_demand,NA,0.28207,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846350 +GCP,southamerica-east1,c4d-standard-4,reserved_1y,NA,0.177696,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846394 +GCP,southamerica-east1,c4d-standard-4,reserved_3y,NA,0.126916,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846416 +GCP,southamerica-east1,c4d-standard-4,spot,NA,0.101559,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846372 +GCP,southamerica-east1,c4d-standard-8,on_demand,NA,0.570426,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847614 +GCP,southamerica-east1,c4d-standard-8,reserved_1y,NA,0.359351,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847657 +GCP,southamerica-east1,c4d-standard-8,reserved_3y,NA,0.25666,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847679 +GCP,southamerica-east1,c4d-standard-8,spot,NA,0.205633,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.847636 +GCP,southamerica-east1,e2_highcpu_16,on_demand,NA,0.628231,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764669 +GCP,southamerica-east1,e2_highcpu_16,reserved_1y,NA,0.395786,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764696 +GCP,southamerica-east1,e2_highcpu_16,reserved_3y,NA,0.282704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764710 +GCP,southamerica-east1,e2_highcpu_16,spot,NA,0.095952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764683 +GCP,southamerica-east1,e2_highcpu_32,on_demand,NA,1.256462,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765709 +GCP,southamerica-east1,e2_highcpu_32,reserved_1y,NA,0.791571,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765737 +GCP,southamerica-east1,e2_highcpu_32,reserved_3y,NA,0.565408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765751 +GCP,southamerica-east1,e2_highcpu_32,spot,NA,0.191904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765723 +GCP,southamerica-east1,e2_highmem_16,on_demand,NA,1.147939,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763567 +GCP,southamerica-east1,e2_highmem_16,reserved_1y,NA,0.723202,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763595 +GCP,southamerica-east1,e2_highmem_16,reserved_3y,NA,0.516573,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763609 +GCP,southamerica-east1,e2_highmem_16,spot,NA,0.175136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763581 +GCP,southamerica-east1,e2_highmem_2,on_demand,NA,0.143492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760452 +GCP,southamerica-east1,e2_highmem_2,reserved_1y,NA,0.0904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760480 +GCP,southamerica-east1,e2_highmem_2,reserved_3y,NA,0.064572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760494 +GCP,southamerica-east1,e2_highmem_2,spot,NA,0.021892,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760466 +GCP,southamerica-east1,e2_highmem_4,on_demand,NA,0.286985,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761482 +GCP,southamerica-east1,e2_highmem_4,reserved_1y,NA,0.1808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761510 +GCP,southamerica-east1,e2_highmem_4,reserved_3y,NA,0.129143,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761524 +GCP,southamerica-east1,e2_highmem_4,spot,NA,0.043784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761496 +GCP,southamerica-east1,e2_highmem_8,on_demand,NA,0.57397,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762515 +GCP,southamerica-east1,e2_highmem_8,reserved_1y,NA,0.361601,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762543 +GCP,southamerica-east1,e2_highmem_8,reserved_3y,NA,0.258286,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762557 +GCP,southamerica-east1,e2_highmem_8,spot,NA,0.087568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762529 +GCP,southamerica-east1,e2_standard_16,on_demand,NA,0.850963,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769028 +GCP,southamerica-east1,e2_standard_16,reserved_1y,NA,0.536107,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769059 +GCP,southamerica-east1,e2_standard_16,reserved_3y,NA,0.382933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769075 +GCP,southamerica-east1,e2_standard_16,spot,NA,0.129888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769044 +GCP,southamerica-east1,e2_standard_32,on_demand,NA,1.701926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770085 +GCP,southamerica-east1,e2_standard_32,reserved_1y,NA,1.072214,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770112 +GCP,southamerica-east1,e2_standard_32,reserved_3y,NA,0.765867,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770126 +GCP,southamerica-east1,e2_standard_32,spot,NA,0.259776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770099 +GCP,southamerica-east1,e2_standard_4,on_demand,NA,0.212741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766927 +GCP,southamerica-east1,e2_standard_4,reserved_1y,NA,0.134027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766956 +GCP,southamerica-east1,e2_standard_4,reserved_3y,NA,0.095733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766970 +GCP,southamerica-east1,e2_standard_4,spot,NA,0.032472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766941 +GCP,southamerica-east1,e2_standard_8,on_demand,NA,0.425482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767972 +GCP,southamerica-east1,e2_standard_8,reserved_1y,NA,0.268053,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767996 +GCP,southamerica-east1,e2_standard_8,reserved_3y,NA,0.191467,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768007 +GCP,southamerica-east1,e2_standard_8,spot,NA,0.064944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767984 +GCP,southamerica-east1,g2-standard-12,on_demand,NA,0.498458,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787296 +GCP,southamerica-east1,g2-standard-12,reserved_1y,NA,0.440542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787324 +GCP,southamerica-east1,g2-standard-12,reserved_3y,NA,0.314673,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787338 +GCP,southamerica-east1,g2-standard-12,spot,NA,0.199724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787310 +GCP,southamerica-east1,g2-standard-16,on_demand,NA,0.664611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788384 +GCP,southamerica-east1,g2-standard-16,reserved_1y,NA,0.587389,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788413 +GCP,southamerica-east1,g2-standard-16,reserved_3y,NA,0.419564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788427 +GCP,southamerica-east1,g2-standard-16,spot,NA,0.266298,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788399 +GCP,southamerica-east1,g2-standard-24,on_demand,NA,0.996916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789422 +GCP,southamerica-east1,g2-standard-24,reserved_1y,NA,0.881084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789450 +GCP,southamerica-east1,g2-standard-24,reserved_3y,NA,0.629346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789464 +GCP,southamerica-east1,g2-standard-24,spot,NA,0.399447,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789436 +GCP,southamerica-east1,g2-standard-32,on_demand,NA,1.329222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790460 +GCP,southamerica-east1,g2-standard-32,reserved_1y,NA,1.174779,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790488 +GCP,southamerica-east1,g2-standard-32,reserved_3y,NA,0.839128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790502 +GCP,southamerica-east1,g2-standard-32,spot,NA,0.532596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790474 +GCP,southamerica-east1,g2-standard-4,on_demand,NA,0.166153,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785227 +GCP,southamerica-east1,g2-standard-4,reserved_1y,NA,0.146847,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785255 +GCP,southamerica-east1,g2-standard-4,reserved_3y,NA,0.104891,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785269 +GCP,southamerica-east1,g2-standard-4,spot,NA,0.066575,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785241 +GCP,southamerica-east1,g2-standard-48,on_demand,NA,1.993832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791501 +GCP,southamerica-east1,g2-standard-48,reserved_1y,NA,1.762168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791529 +GCP,southamerica-east1,g2-standard-48,reserved_3y,NA,1.258692,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791546 +GCP,southamerica-east1,g2-standard-48,spot,NA,0.798895,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791515 +GCP,southamerica-east1,g2-standard-8,on_demand,NA,0.332305,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786260 +GCP,southamerica-east1,g2-standard-8,reserved_1y,NA,0.293695,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786288 +GCP,southamerica-east1,g2-standard-8,reserved_3y,NA,0.209782,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786301 +GCP,southamerica-east1,g2-standard-8,spot,NA,0.133149,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786274 +GCP,southamerica-east1,g2-standard-96,on_demand,NA,3.987665,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792627 +GCP,southamerica-east1,g2-standard-96,reserved_1y,NA,3.524336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792655 +GCP,southamerica-east1,g2-standard-96,reserved_3y,NA,2.517383,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792671 +GCP,southamerica-east1,g2-standard-96,spot,NA,1.597789,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792641 +GCP,southamerica-east1,n1-highcpu-16,on_demand,NA,0.89972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691295 +GCP,southamerica-east1,n1-highcpu-16,spot,NA,0.129794,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691309 +GCP,southamerica-east1,n1-highcpu-32,on_demand,NA,1.79944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692152 +GCP,southamerica-east1,n1-highcpu-32,spot,NA,0.259587,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692218 +GCP,southamerica-east1,n1-highcpu-64,on_demand,NA,3.59888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693015 +GCP,southamerica-east1,n1-highcpu-64,spot,NA,0.519174,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693029 +GCP,southamerica-east1,n1-highcpu-96,on_demand,NA,5.39832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693852 +GCP,southamerica-east1,n1-highcpu-96,spot,NA,0.778762,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693866 +GCP,southamerica-east1,n1-highmem-16,on_demand,NA,1.50228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687733 +GCP,southamerica-east1,n1-highmem-16,spot,NA,0.216616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687747 +GCP,southamerica-east1,n1-highmem-32,on_demand,NA,3.00456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688610 +GCP,southamerica-east1,n1-highmem-32,spot,NA,0.433232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688624 +GCP,southamerica-east1,n1-highmem-4,on_demand,NA,0.37557,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686003 +GCP,southamerica-east1,n1-highmem-4,spot,NA,0.054154,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686017 +GCP,southamerica-east1,n1-highmem-64,on_demand,NA,6.00912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689541 +GCP,southamerica-east1,n1-highmem-64,spot,NA,0.866464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689555 +GCP,southamerica-east1,n1-highmem-8,on_demand,NA,0.75114,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686897 +GCP,southamerica-east1,n1-highmem-8,spot,NA,0.108308,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686919 +GCP,southamerica-east1,n1-highmem-96,on_demand,NA,9.01368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690432 +GCP,southamerica-east1,n1-highmem-96,spot,NA,1.299696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690446 +GCP,southamerica-east1,n1-standard-16,on_demand,NA,1.20638,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682042 +GCP,southamerica-east1,n1-standard-16,spot,NA,0.17398,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682056 +GCP,southamerica-east1,n1-standard-32,on_demand,NA,2.41276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683080 +GCP,southamerica-east1,n1-standard-32,spot,NA,0.34796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683094 +GCP,southamerica-east1,n1-standard-4,on_demand,NA,0.301595,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680298 +GCP,southamerica-east1,n1-standard-4,spot,NA,0.043495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680312 +GCP,southamerica-east1,n1-standard-64,on_demand,NA,4.82552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683988 +GCP,southamerica-east1,n1-standard-64,spot,NA,0.69592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684001 +GCP,southamerica-east1,n1-standard-8,on_demand,NA,0.60319,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681188 +GCP,southamerica-east1,n1-standard-8,spot,NA,0.08699,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681202 +GCP,southamerica-east1,n1-standard-96,on_demand,NA,7.23828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685140 +GCP,southamerica-east1,n1-standard-96,spot,NA,1.04388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685155 +GCP,southamerica-east1,n2-highcpu-16,on_demand,NA,0.30832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711752 +GCP,southamerica-east1,n2-highcpu-16,reserved_1y,NA,0.573744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711780 +GCP,southamerica-east1,n2-highcpu-16,reserved_3y,NA,0.409808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711794 +GCP,southamerica-east1,n2-highcpu-16,spot,NA,0.207744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711766 +GCP,southamerica-east1,n2-highcpu-32,on_demand,NA,0.61664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712881 +GCP,southamerica-east1,n2-highcpu-32,reserved_1y,NA,1.147488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712910 +GCP,southamerica-east1,n2-highcpu-32,reserved_3y,NA,0.819616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712923 +GCP,southamerica-east1,n2-highcpu-32,spot,NA,0.415488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712897 +GCP,southamerica-east1,n2-highcpu-48,on_demand,NA,0.92496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713983 +GCP,southamerica-east1,n2-highcpu-48,reserved_1y,NA,1.721232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714011 +GCP,southamerica-east1,n2-highcpu-48,reserved_3y,NA,1.229424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714026 +GCP,southamerica-east1,n2-highcpu-48,spot,NA,0.623232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713996 +GCP,southamerica-east1,n2-highcpu-64,on_demand,NA,1.23328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715080 +GCP,southamerica-east1,n2-highcpu-64,reserved_1y,NA,2.294976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715108 +GCP,southamerica-east1,n2-highcpu-64,reserved_3y,NA,1.639232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715122 +GCP,southamerica-east1,n2-highcpu-64,spot,NA,0.830976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715094 +GCP,southamerica-east1,n2-highcpu-80,on_demand,NA,1.5416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716195 +GCP,southamerica-east1,n2-highcpu-80,reserved_1y,NA,2.86872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716224 +GCP,southamerica-east1,n2-highcpu-80,reserved_3y,NA,2.04904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716239 +GCP,southamerica-east1,n2-highcpu-80,spot,NA,1.03872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.716210 +GCP,southamerica-east1,n2-highmem-16,on_demand,NA,1.06152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706192 +GCP,southamerica-east1,n2-highmem-16,reserved_1y,NA,1.048512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706221 +GCP,southamerica-east1,n2-highmem-16,reserved_3y,NA,0.748944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706235 +GCP,southamerica-east1,n2-highmem-16,spot,NA,0.379552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706206 +GCP,southamerica-east1,n2-highmem-2,on_demand,NA,0.13269,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702802 +GCP,southamerica-east1,n2-highmem-2,reserved_1y,NA,0.131064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702831 +GCP,southamerica-east1,n2-highmem-2,reserved_3y,NA,0.093618,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702845 +GCP,southamerica-east1,n2-highmem-2,spot,NA,0.047444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702816 +GCP,southamerica-east1,n2-highmem-32,on_demand,NA,2.12304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707324 +GCP,southamerica-east1,n2-highmem-32,reserved_1y,NA,2.097024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707352 +GCP,southamerica-east1,n2-highmem-32,reserved_3y,NA,1.497888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707366 +GCP,southamerica-east1,n2-highmem-32,spot,NA,0.759104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707338 +GCP,southamerica-east1,n2-highmem-4,on_demand,NA,0.26538,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703983 +GCP,southamerica-east1,n2-highmem-4,reserved_1y,NA,0.262128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704016 +GCP,southamerica-east1,n2-highmem-4,reserved_3y,NA,0.187236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704031 +GCP,southamerica-east1,n2-highmem-4,spot,NA,0.094888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704002 +GCP,southamerica-east1,n2-highmem-48,on_demand,NA,3.18456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708437 +GCP,southamerica-east1,n2-highmem-48,reserved_1y,NA,3.145536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708465 +GCP,southamerica-east1,n2-highmem-48,reserved_3y,NA,2.246832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708480 +GCP,southamerica-east1,n2-highmem-48,spot,NA,1.138656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708451 +GCP,southamerica-east1,n2-highmem-64,on_demand,NA,4.24608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709534 +GCP,southamerica-east1,n2-highmem-64,reserved_1y,NA,4.194048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709561 +GCP,southamerica-east1,n2-highmem-64,reserved_3y,NA,2.995776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709575 +GCP,southamerica-east1,n2-highmem-64,spot,NA,1.518208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709547 +GCP,southamerica-east1,n2-highmem-8,on_demand,NA,0.53076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705073 +GCP,southamerica-east1,n2-highmem-8,reserved_1y,NA,0.524256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705101 +GCP,southamerica-east1,n2-highmem-8,reserved_3y,NA,0.374472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705115 +GCP,southamerica-east1,n2-highmem-8,spot,NA,0.189776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705088 +GCP,southamerica-east1,n2-highmem-80,on_demand,NA,5.3076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710619 +GCP,southamerica-east1,n2-highmem-80,reserved_1y,NA,5.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710646 +GCP,southamerica-east1,n2-highmem-80,reserved_3y,NA,3.74472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710659 +GCP,southamerica-east1,n2-highmem-80,spot,NA,1.89776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710633 +GCP,southamerica-east1,n2-standard-16,on_demand,NA,0.63112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697211 +GCP,southamerica-east1,n2-standard-16,reserved_1y,NA,0.777216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697239 +GCP,southamerica-east1,n2-standard-16,reserved_3y,NA,0.555152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697253 +GCP,southamerica-east1,n2-standard-16,spot,NA,0.281376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697225 +GCP,southamerica-east1,n2-standard-32,on_demand,NA,1.26224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698331 +GCP,southamerica-east1,n2-standard-32,reserved_1y,NA,1.554432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698359 +GCP,southamerica-east1,n2-standard-32,reserved_3y,NA,1.110304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698373 +GCP,southamerica-east1,n2-standard-32,spot,NA,0.562752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698345 +GCP,southamerica-east1,n2-standard-4,on_demand,NA,0.15778,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694949 +GCP,southamerica-east1,n2-standard-4,reserved_1y,NA,0.194304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694978 +GCP,southamerica-east1,n2-standard-4,reserved_3y,NA,0.138788,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694992 +GCP,southamerica-east1,n2-standard-4,spot,NA,0.070344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694963 +GCP,southamerica-east1,n2-standard-48,on_demand,NA,1.89336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699468 +GCP,southamerica-east1,n2-standard-48,reserved_1y,NA,2.331648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699496 +GCP,southamerica-east1,n2-standard-48,reserved_3y,NA,1.665456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699509 +GCP,southamerica-east1,n2-standard-48,spot,NA,0.844128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699482 +GCP,southamerica-east1,n2-standard-64,on_demand,NA,2.52448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700564 +GCP,southamerica-east1,n2-standard-64,reserved_1y,NA,3.108864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700592 +GCP,southamerica-east1,n2-standard-64,reserved_3y,NA,2.220608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700606 +GCP,southamerica-east1,n2-standard-64,spot,NA,1.125504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700578 +GCP,southamerica-east1,n2-standard-8,on_demand,NA,0.31556,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696123 +GCP,southamerica-east1,n2-standard-8,reserved_1y,NA,0.388608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696151 +GCP,southamerica-east1,n2-standard-8,reserved_3y,NA,0.277576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696165 +GCP,southamerica-east1,n2-standard-8,spot,NA,0.140688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696137 +GCP,southamerica-east1,n2-standard-80,on_demand,NA,3.1556,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701682 +GCP,southamerica-east1,n2-standard-80,reserved_1y,NA,3.88608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701708 +GCP,southamerica-east1,n2-standard-80,reserved_3y,NA,2.77576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701722 +GCP,southamerica-east1,n2-standard-80,spot,NA,1.40688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701695 +GCP,southamerica-east1,n2d-highcpu-128,on_demand,NA,6.337024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753097 +GCP,southamerica-east1,n2d-highcpu-128,reserved_1y,NA,3.993216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753125 +GCP,southamerica-east1,n2d-highcpu-128,reserved_3y,NA,2.852224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753139 +GCP,southamerica-east1,n2d-highcpu-128,spot,NA,1.184768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753111 +GCP,southamerica-east1,n2d-highcpu-16,on_demand,NA,0.792128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746789 +GCP,southamerica-east1,n2d-highcpu-16,reserved_1y,NA,0.499152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746817 +GCP,southamerica-east1,n2d-highcpu-16,reserved_3y,NA,0.356528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746831 +GCP,southamerica-east1,n2d-highcpu-16,spot,NA,0.148096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746803 +GCP,southamerica-east1,n2d-highcpu-224,on_demand,NA,11.089792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754121 +GCP,southamerica-east1,n2d-highcpu-224,reserved_1y,NA,6.988128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754148 +GCP,southamerica-east1,n2d-highcpu-224,reserved_3y,NA,4.991392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754162 +GCP,southamerica-east1,n2d-highcpu-224,spot,NA,2.073344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754134 +GCP,southamerica-east1,n2d-highcpu-32,on_demand,NA,1.584256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747849 +GCP,southamerica-east1,n2d-highcpu-32,reserved_1y,NA,0.998304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747898 +GCP,southamerica-east1,n2d-highcpu-32,reserved_3y,NA,0.713056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747912 +GCP,southamerica-east1,n2d-highcpu-32,spot,NA,0.296192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747884 +GCP,southamerica-east1,n2d-highcpu-48,on_demand,NA,2.376384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748913 +GCP,southamerica-east1,n2d-highcpu-48,reserved_1y,NA,1.497456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748941 +GCP,southamerica-east1,n2d-highcpu-48,reserved_3y,NA,1.069584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748955 +GCP,southamerica-east1,n2d-highcpu-48,spot,NA,0.444288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748927 +GCP,southamerica-east1,n2d-highcpu-64,on_demand,NA,3.168512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749956 +GCP,southamerica-east1,n2d-highcpu-64,reserved_1y,NA,1.996608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749984 +GCP,southamerica-east1,n2d-highcpu-64,reserved_3y,NA,1.426112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749998 +GCP,southamerica-east1,n2d-highcpu-64,spot,NA,0.592384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749970 +GCP,southamerica-east1,n2d-highcpu-80,on_demand,NA,3.96064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751010 +GCP,southamerica-east1,n2d-highcpu-80,reserved_1y,NA,2.49576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751038 +GCP,southamerica-east1,n2d-highcpu-80,reserved_3y,NA,1.78264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751052 +GCP,southamerica-east1,n2d-highcpu-80,spot,NA,0.74048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751024 +GCP,southamerica-east1,n2d-highcpu-96,on_demand,NA,4.752768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752066 +GCP,southamerica-east1,n2d-highcpu-96,reserved_1y,NA,2.994912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752094 +GCP,southamerica-east1,n2d-highcpu-96,reserved_3y,NA,2.139168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752109 +GCP,southamerica-east1,n2d-highcpu-96,spot,NA,0.888576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752081 +GCP,southamerica-east1,n2d-highmem-16,on_demand,NA,1.44744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740526 +GCP,southamerica-east1,n2d-highmem-16,reserved_1y,NA,0.912208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740553 +GCP,southamerica-east1,n2d-highmem-16,reserved_3y,NA,0.651536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740566 +GCP,southamerica-east1,n2d-highmem-16,spot,NA,0.270848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740539 +GCP,southamerica-east1,n2d-highmem-2,on_demand,NA,0.18093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737306 +GCP,southamerica-east1,n2d-highmem-2,reserved_1y,NA,0.114026,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737334 +GCP,southamerica-east1,n2d-highmem-2,reserved_3y,NA,0.081442,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737348 +GCP,southamerica-east1,n2d-highmem-2,spot,NA,0.033856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737320 +GCP,southamerica-east1,n2d-highmem-32,on_demand,NA,2.89488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741533 +GCP,southamerica-east1,n2d-highmem-32,reserved_1y,NA,1.824416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741560 +GCP,southamerica-east1,n2d-highmem-32,reserved_3y,NA,1.303072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741574 +GCP,southamerica-east1,n2d-highmem-32,spot,NA,0.541696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741547 +GCP,southamerica-east1,n2d-highmem-4,on_demand,NA,0.36186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738384 +GCP,southamerica-east1,n2d-highmem-4,reserved_1y,NA,0.228052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738413 +GCP,southamerica-east1,n2d-highmem-4,reserved_3y,NA,0.162884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738427 +GCP,southamerica-east1,n2d-highmem-4,spot,NA,0.067712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738398 +GCP,southamerica-east1,n2d-highmem-48,on_demand,NA,4.34232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742608 +GCP,southamerica-east1,n2d-highmem-48,reserved_1y,NA,2.736624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742635 +GCP,southamerica-east1,n2d-highmem-48,reserved_3y,NA,1.954608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742648 +GCP,southamerica-east1,n2d-highmem-48,spot,NA,0.812544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742622 +GCP,southamerica-east1,n2d-highmem-64,on_demand,NA,5.78976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743668 +GCP,southamerica-east1,n2d-highmem-64,reserved_1y,NA,3.648832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743697 +GCP,southamerica-east1,n2d-highmem-64,reserved_3y,NA,2.606144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743712 +GCP,southamerica-east1,n2d-highmem-64,spot,NA,1.083392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743683 +GCP,southamerica-east1,n2d-highmem-8,on_demand,NA,0.72372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739458 +GCP,southamerica-east1,n2d-highmem-8,reserved_1y,NA,0.456104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739486 +GCP,southamerica-east1,n2d-highmem-8,reserved_3y,NA,0.325768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739500 +GCP,southamerica-east1,n2d-highmem-8,spot,NA,0.135424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739473 +GCP,southamerica-east1,n2d-highmem-80,on_demand,NA,7.2372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744744 +GCP,southamerica-east1,n2d-highmem-80,reserved_1y,NA,4.56104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744772 +GCP,southamerica-east1,n2d-highmem-80,reserved_3y,NA,3.25768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744785 +GCP,southamerica-east1,n2d-highmem-80,spot,NA,1.35424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744758 +GCP,southamerica-east1,n2d-highmem-96,on_demand,NA,8.68464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745769 +GCP,southamerica-east1,n2d-highmem-96,reserved_1y,NA,5.473248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745796 +GCP,southamerica-east1,n2d-highmem-96,reserved_3y,NA,3.909216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745809 +GCP,southamerica-east1,n2d-highmem-96,spot,NA,1.625088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745782 +GCP,southamerica-east1,n2d-standard-128,on_demand,NA,8.583808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735220 +GCP,southamerica-east1,n2d-standard-128,reserved_1y,NA,5.409408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735248 +GCP,southamerica-east1,n2d-standard-128,reserved_3y,NA,3.86368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735262 +GCP,southamerica-east1,n2d-standard-128,spot,NA,1.605632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735234 +GCP,southamerica-east1,n2d-standard-16,on_demand,NA,1.072976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728895 +GCP,southamerica-east1,n2d-standard-16,reserved_1y,NA,0.676176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728922 +GCP,southamerica-east1,n2d-standard-16,reserved_3y,NA,0.48296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728936 +GCP,southamerica-east1,n2d-standard-16,spot,NA,0.200704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728909 +GCP,southamerica-east1,n2d-standard-224,on_demand,NA,15.021664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736263 +GCP,southamerica-east1,n2d-standard-224,reserved_1y,NA,9.466464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736292 +GCP,southamerica-east1,n2d-standard-224,reserved_3y,NA,6.76144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736307 +GCP,southamerica-east1,n2d-standard-224,spot,NA,2.809856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736278 +GCP,southamerica-east1,n2d-standard-32,on_demand,NA,2.145952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729927 +GCP,southamerica-east1,n2d-standard-32,reserved_1y,NA,1.352352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729954 +GCP,southamerica-east1,n2d-standard-32,reserved_3y,NA,0.96592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729968 +GCP,southamerica-east1,n2d-standard-32,spot,NA,0.401408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729941 +GCP,southamerica-east1,n2d-standard-4,on_demand,NA,0.268244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726779 +GCP,southamerica-east1,n2d-standard-4,reserved_1y,NA,0.169044,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726807 +GCP,southamerica-east1,n2d-standard-4,reserved_3y,NA,0.12074,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726822 +GCP,southamerica-east1,n2d-standard-4,spot,NA,0.050176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726793 +GCP,southamerica-east1,n2d-standard-48,on_demand,NA,3.218928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730965 +GCP,southamerica-east1,n2d-standard-48,reserved_1y,NA,2.028528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730994 +GCP,southamerica-east1,n2d-standard-48,reserved_3y,NA,1.44888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731009 +GCP,southamerica-east1,n2d-standard-48,spot,NA,0.602112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730980 +GCP,southamerica-east1,n2d-standard-64,on_demand,NA,4.291904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732068 +GCP,southamerica-east1,n2d-standard-64,reserved_1y,NA,2.704704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732097 +GCP,southamerica-east1,n2d-standard-64,reserved_3y,NA,1.93184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732111 +GCP,southamerica-east1,n2d-standard-64,spot,NA,0.802816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732083 +GCP,southamerica-east1,n2d-standard-8,on_demand,NA,0.536488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727839 +GCP,southamerica-east1,n2d-standard-8,reserved_1y,NA,0.338088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727883 +GCP,southamerica-east1,n2d-standard-8,reserved_3y,NA,0.24148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727898 +GCP,southamerica-east1,n2d-standard-8,spot,NA,0.100352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727853 +GCP,southamerica-east1,n2d-standard-80,on_demand,NA,5.36488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733111 +GCP,southamerica-east1,n2d-standard-80,reserved_1y,NA,3.38088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733140 +GCP,southamerica-east1,n2d-standard-80,reserved_3y,NA,2.4148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733154 +GCP,southamerica-east1,n2d-standard-80,spot,NA,1.00352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733125 +GCP,southamerica-east1,n2d-standard-96,on_demand,NA,6.437856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734164 +GCP,southamerica-east1,n2d-standard-96,reserved_1y,NA,4.057056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734193 +GCP,southamerica-east1,n2d-standard-96,reserved_3y,NA,2.89776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734207 +GCP,southamerica-east1,n2d-standard-96,spot,NA,1.204224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734178 +GCP,southamerica-east1,n4-standard-16,on_demand,NA,1.15218,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758290 +GCP,southamerica-east1,n4-standard-16,reserved_1y,NA,0.725861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758318 +GCP,southamerica-east1,n4-standard-16,reserved_3y,NA,0.518494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758332 +GCP,southamerica-east1,n4-standard-16,spot,NA,0.409376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758304 +GCP,southamerica-east1,n4-standard-2,on_demand,NA,0.144023,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755171 +GCP,southamerica-east1,n4-standard-2,reserved_1y,NA,0.090733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755199 +GCP,southamerica-east1,n4-standard-2,reserved_3y,NA,0.064812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755213 +GCP,southamerica-east1,n4-standard-2,spot,NA,0.051172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755185 +GCP,southamerica-east1,n4-standard-32,on_demand,NA,2.30436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759333 +GCP,southamerica-east1,n4-standard-32,reserved_1y,NA,1.451722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759362 +GCP,southamerica-east1,n4-standard-32,reserved_3y,NA,1.036988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759376 +GCP,southamerica-east1,n4-standard-32,spot,NA,0.818752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759348 +GCP,southamerica-east1,n4-standard-4,on_demand,NA,0.288045,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756222 +GCP,southamerica-east1,n4-standard-4,reserved_1y,NA,0.181465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756249 +GCP,southamerica-east1,n4-standard-4,reserved_3y,NA,0.129623,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756263 +GCP,southamerica-east1,n4-standard-4,spot,NA,0.102344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756235 +GCP,southamerica-east1,n4-standard-8,on_demand,NA,0.57609,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757251 +GCP,southamerica-east1,n4-standard-8,reserved_1y,NA,0.36293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757278 +GCP,southamerica-east1,n4-standard-8,reserved_3y,NA,0.259247,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757292 +GCP,southamerica-east1,n4-standard-8,spot,NA,0.204688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757265 +GCP,us-central1,a2-highgpu-1g,on_demand,NA,0.406682,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770206 +GCP,us-central1,a2-highgpu-1g,reserved_1y,NA,0.465845,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770233 +GCP,us-central1,a2-highgpu-1g,reserved_3y,NA,0.258841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770247 +GCP,us-central1,a2-highgpu-1g,spot,NA,0.295755,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770220 +GCP,us-central1,a2-highgpu-2g,on_demand,NA,0.813364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771239 +GCP,us-central1,a2-highgpu-2g,reserved_1y,NA,0.93169,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771270 +GCP,us-central1,a2-highgpu-2g,reserved_3y,NA,0.517681,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771283 +GCP,us-central1,a2-highgpu-2g,spot,NA,0.59151,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771255 +GCP,us-central1,a2-highgpu-4g,on_demand,NA,1.626728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772341 +GCP,us-central1,a2-highgpu-4g,reserved_1y,NA,1.86338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772369 +GCP,us-central1,a2-highgpu-4g,reserved_3y,NA,1.035362,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772382 +GCP,us-central1,a2-highgpu-4g,spot,NA,1.18302,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772355 +GCP,us-central1,a2-highgpu-8g,on_demand,NA,3.253456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773433 +GCP,us-central1,a2-highgpu-8g,reserved_1y,NA,3.72676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773462 +GCP,us-central1,a2-highgpu-8g,reserved_3y,NA,2.070724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773476 +GCP,us-central1,a2-highgpu-8g,spot,NA,2.36604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773448 +GCP,us-central1,a2-megagpu-16g,on_demand,NA,4.837856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774552 +GCP,us-central1,a2-megagpu-16g,reserved_1y,NA,5.54168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774580 +GCP,us-central1,a2-megagpu-16g,reserved_3y,NA,3.079315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774593 +GCP,us-central1,a2-megagpu-16g,spot,NA,3.51864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774566 +GCP,us-central1,a2-ultragpu-1g,on_demand,NA,0.604732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775645 +GCP,us-central1,a2-ultragpu-1g,reserved_1y,NA,0.69271,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775710 +GCP,us-central1,a2-ultragpu-1g,reserved_3y,NA,0.384914,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775726 +GCP,us-central1,a2-ultragpu-1g,spot,NA,0.43983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775659 +GCP,us-central1,a2-ultragpu-2g,on_demand,NA,1.209464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776785 +GCP,us-central1,a2-ultragpu-2g,reserved_1y,NA,1.38542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776818 +GCP,us-central1,a2-ultragpu-2g,reserved_3y,NA,0.769829,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776832 +GCP,us-central1,a2-ultragpu-2g,spot,NA,0.87966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776803 +GCP,us-central1,a2-ultragpu-4g,on_demand,NA,2.418928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777871 +GCP,us-central1,a2-ultragpu-4g,reserved_1y,NA,2.77084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777899 +GCP,us-central1,a2-ultragpu-4g,reserved_3y,NA,1.539658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777913 +GCP,us-central1,a2-ultragpu-4g,spot,NA,1.75932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777885 +GCP,us-central1,a2-ultragpu-8g,on_demand,NA,4.837856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778908 +GCP,us-central1,a2-ultragpu-8g,reserved_1y,NA,5.54168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778943 +GCP,us-central1,a2-ultragpu-8g,reserved_3y,NA,3.079315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778957 +GCP,us-central1,a2-ultragpu-8g,spot,NA,3.51864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778928 +GCP,us-central1,a3-highgpu-1g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780010 +GCP,us-central1,a3-highgpu-1g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780040 +GCP,us-central1,a3-highgpu-1g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780054 +GCP,us-central1,a3-highgpu-1g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780025 +GCP,us-central1,a3-highgpu-2g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781076 +GCP,us-central1,a3-highgpu-2g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781104 +GCP,us-central1,a3-highgpu-2g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781118 +GCP,us-central1,a3-highgpu-2g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781090 +GCP,us-central1,a3-highgpu-4g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782116 +GCP,us-central1,a3-highgpu-4g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782145 +GCP,us-central1,a3-highgpu-4g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782159 +GCP,us-central1,a3-highgpu-4g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782131 +GCP,us-central1,a3-highgpu-8g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783246 +GCP,us-central1,a3-highgpu-8g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783275 +GCP,us-central1,a3-highgpu-8g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783288 +GCP,us-central1,a3-highgpu-8g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783260 +GCP,us-central1,c2-standard-16,on_demand,NA,0.726384,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720750 +GCP,us-central1,c2-standard-16,reserved_1y,NA,0.4576,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720797 +GCP,us-central1,c2-standard-16,reserved_3y,NA,0.326832,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720831 +GCP,us-central1,c2-standard-16,spot,NA,0.168928,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720773 +GCP,us-central1,c2-standard-30,on_demand,NA,1.36197,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722434 +GCP,us-central1,c2-standard-30,reserved_1y,NA,0.858,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722479 +GCP,us-central1,c2-standard-30,reserved_3y,NA,0.61281,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722502 +GCP,us-central1,c2-standard-30,spot,NA,0.31674,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722457 +GCP,us-central1,c2-standard-4,on_demand,NA,0.181596,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.716343 +GCP,us-central1,c2-standard-4,reserved_1y,NA,0.1144,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.716392 +GCP,us-central1,c2-standard-4,reserved_3y,NA,0.081708,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.716416 +GCP,us-central1,c2-standard-4,spot,NA,0.042232,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.716368 +GCP,us-central1,c2-standard-60,on_demand,NA,2.72394,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724169 +GCP,us-central1,c2-standard-60,reserved_1y,NA,1.716,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724216 +GCP,us-central1,c2-standard-60,reserved_3y,NA,1.22562,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724239 +GCP,us-central1,c2-standard-60,spot,NA,0.63348,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724192 +GCP,us-central1,c2-standard-8,on_demand,NA,0.363192,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719001 +GCP,us-central1,c2-standard-8,reserved_1y,NA,0.2288,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719048 +GCP,us-central1,c2-standard-8,reserved_3y,NA,0.163416,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719072 +GCP,us-central1,c2-standard-8,spot,NA,0.084464,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719025 +GCP,us-central1,c3-highmem-22,on_demand,NA,1.455388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800192 +GCP,us-central1,c3-highmem-22,reserved_1y,NA,0.916916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800222 +GCP,us-central1,c3-highmem-22,reserved_3y,NA,0.654918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800235 +GCP,us-central1,c3-highmem-22,spot,NA,0.233772,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800207 +GCP,us-central1,c3-highmem-4,on_demand,NA,0.264616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798086 +GCP,us-central1,c3-highmem-4,reserved_1y,NA,0.166712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798114 +GCP,us-central1,c3-highmem-4,reserved_3y,NA,0.119076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798128 +GCP,us-central1,c3-highmem-4,spot,NA,0.042504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798100 +GCP,us-central1,c3-highmem-44,on_demand,NA,2.910776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801201 +GCP,us-central1,c3-highmem-44,reserved_1y,NA,1.833832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801228 +GCP,us-central1,c3-highmem-44,reserved_3y,NA,1.309836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801241 +GCP,us-central1,c3-highmem-44,spot,NA,0.467544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801214 +GCP,us-central1,c3-highmem-8,on_demand,NA,0.529232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799141 +GCP,us-central1,c3-highmem-8,reserved_1y,NA,0.333424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799169 +GCP,us-central1,c3-highmem-8,reserved_3y,NA,0.238152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799183 +GCP,us-central1,c3-highmem-8,spot,NA,0.085008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799155 +GCP,us-central1,c3-highmem-88,on_demand,NA,5.821552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802217 +GCP,us-central1,c3-highmem-88,reserved_1y,NA,3.667664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802243 +GCP,us-central1,c3-highmem-88,reserved_3y,NA,2.619672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802258 +GCP,us-central1,c3-highmem-88,spot,NA,0.935088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802230 +GCP,us-central1,c3-standard-22 (-lssd),on_demand,NA,1.108844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794848 +GCP,us-central1,c3-standard-22 (-lssd),reserved_1y,NA,0.698588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794876 +GCP,us-central1,c3-standard-22 (-lssd),reserved_3y,NA,0.498982,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794891 +GCP,us-central1,c3-standard-22 (-lssd),spot,NA,0.173316,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794862 +GCP,us-central1,c3-standard-4 (-lssd),on_demand,NA,0.201608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792756 +GCP,us-central1,c3-standard-4 (-lssd),reserved_1y,NA,0.127016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792785 +GCP,us-central1,c3-standard-4 (-lssd),reserved_3y,NA,0.090724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792798 +GCP,us-central1,c3-standard-4 (-lssd),spot,NA,0.031512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792769 +GCP,us-central1,c3-standard-44 (-lssd),on_demand,NA,2.217688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795978 +GCP,us-central1,c3-standard-44 (-lssd),reserved_1y,NA,1.397176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796006 +GCP,us-central1,c3-standard-44 (-lssd),reserved_3y,NA,0.997964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796020 +GCP,us-central1,c3-standard-44 (-lssd),spot,NA,0.346632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795992 +GCP,us-central1,c3-standard-8 (-lssd),on_demand,NA,0.403216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793814 +GCP,us-central1,c3-standard-8 (-lssd),reserved_1y,NA,0.254032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793842 +GCP,us-central1,c3-standard-8 (-lssd),reserved_3y,NA,0.181448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793855 +GCP,us-central1,c3-standard-8 (-lssd),spot,NA,0.063024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793827 +GCP,us-central1,c3-standard-88 (-lssd),on_demand,NA,4.435376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797026 +GCP,us-central1,c3-standard-88 (-lssd),reserved_1y,NA,2.794352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797055 +GCP,us-central1,c3-standard-88 (-lssd),reserved_3y,NA,1.995928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797069 +GCP,us-central1,c3-standard-88 (-lssd),spot,NA,0.693264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797041 +GCP,us-central1,c3d-highmem-16 (-lssd),on_demand,NA,0.97976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813809 +GCP,us-central1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.617216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813837 +GCP,us-central1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.440816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813851 +GCP,us-central1,c3d-highmem-16 (-lssd),spot,NA,0.165216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813823 +GCP,us-central1,c3d-highmem-180 (-lssd),on_demand,NA,11.0223,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818157 +GCP,us-central1,c3d-highmem-180 (-lssd),reserved_1y,NA,6.94368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818184 +GCP,us-central1,c3d-highmem-180 (-lssd),reserved_3y,NA,4.95918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818198 +GCP,us-central1,c3d-highmem-180 (-lssd),spot,NA,1.85868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818170 +GCP,us-central1,c3d-highmem-30 (-lssd),on_demand,NA,1.83705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815024 +GCP,us-central1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.15728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815053 +GCP,us-central1,c3d-highmem-30 (-lssd),reserved_3y,NA,0.82653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815067 +GCP,us-central1,c3d-highmem-30 (-lssd),spot,NA,0.30978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815038 +GCP,us-central1,c3d-highmem-360 (-lssd),on_demand,NA,22.0446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819194 +GCP,us-central1,c3d-highmem-360 (-lssd),reserved_1y,NA,13.88736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819222 +GCP,us-central1,c3d-highmem-360 (-lssd),reserved_3y,NA,9.91836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819235 +GCP,us-central1,c3d-highmem-360 (-lssd),spot,NA,3.71736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819208 +GCP,us-central1,c3d-highmem-4 (-lssd),on_demand,NA,0.24494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811694 +GCP,us-central1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.154304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811721 +GCP,us-central1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.110204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811735 +GCP,us-central1,c3d-highmem-4 (-lssd),spot,NA,0.041304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811708 +GCP,us-central1,c3d-highmem-60 (-lssd),on_demand,NA,3.6741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816089 +GCP,us-central1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.31456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816116 +GCP,us-central1,c3d-highmem-60 (-lssd),reserved_3y,NA,1.65306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816130 +GCP,us-central1,c3d-highmem-60 (-lssd),spot,NA,0.61956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816103 +GCP,us-central1,c3d-highmem-8 (-lssd),on_demand,NA,0.48988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812758 +GCP,us-central1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.308608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812786 +GCP,us-central1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.220408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812800 +GCP,us-central1,c3d-highmem-8 (-lssd),spot,NA,0.082608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812772 +GCP,us-central1,c3d-highmem-90 (-lssd),on_demand,NA,5.51115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817123 +GCP,us-central1,c3d-highmem-90 (-lssd),reserved_1y,NA,3.47184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817151 +GCP,us-central1,c3d-highmem-90 (-lssd),reserved_3y,NA,2.47959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817165 +GCP,us-central1,c3d-highmem-90 (-lssd),spot,NA,0.92934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817137 +GCP,us-central1,c3d-standard-16 (-lssd),on_demand,NA,0.726384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805349 +GCP,us-central1,c3d-standard-16 (-lssd),reserved_1y,NA,0.4576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805376 +GCP,us-central1,c3d-standard-16 (-lssd),reserved_3y,NA,0.326832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805389 +GCP,us-central1,c3d-standard-16 (-lssd),spot,NA,0.122528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805363 +GCP,us-central1,c3d-standard-180 (-lssd),on_demand,NA,8.17182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809586 +GCP,us-central1,c3d-standard-180 (-lssd),reserved_1y,NA,5.148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809614 +GCP,us-central1,c3d-standard-180 (-lssd),reserved_3y,NA,3.67686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809630 +GCP,us-central1,c3d-standard-180 (-lssd),spot,NA,1.37844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809600 +GCP,us-central1,c3d-standard-30 (-lssd),on_demand,NA,1.36197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806397 +GCP,us-central1,c3d-standard-30 (-lssd),reserved_1y,NA,0.858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806426 +GCP,us-central1,c3d-standard-30 (-lssd),reserved_3y,NA,0.61281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806440 +GCP,us-central1,c3d-standard-30 (-lssd),spot,NA,0.22974,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806412 +GCP,us-central1,c3d-standard-360 (-lssd),on_demand,NA,16.34364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810645 +GCP,us-central1,c3d-standard-360 (-lssd),reserved_1y,NA,10.296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810673 +GCP,us-central1,c3d-standard-360 (-lssd),reserved_3y,NA,7.35372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810686 +GCP,us-central1,c3d-standard-360 (-lssd),spot,NA,2.75688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810659 +GCP,us-central1,c3d-standard-4 (-lssd),on_demand,NA,0.181596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803275 +GCP,us-central1,c3d-standard-4 (-lssd),reserved_1y,NA,0.1144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803303 +GCP,us-central1,c3d-standard-4 (-lssd),reserved_3y,NA,0.081708,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803316 +GCP,us-central1,c3d-standard-4 (-lssd),spot,NA,0.030632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803289 +GCP,us-central1,c3d-standard-60 (-lssd),on_demand,NA,2.72394,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807459 +GCP,us-central1,c3d-standard-60 (-lssd),reserved_1y,NA,1.716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807489 +GCP,us-central1,c3d-standard-60 (-lssd),reserved_3y,NA,1.22562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807503 +GCP,us-central1,c3d-standard-60 (-lssd),spot,NA,0.45948,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807475 +GCP,us-central1,c3d-standard-8 (-lssd),on_demand,NA,0.363192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804329 +GCP,us-central1,c3d-standard-8 (-lssd),reserved_1y,NA,0.2288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804356 +GCP,us-central1,c3d-standard-8 (-lssd),reserved_3y,NA,0.163416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804370 +GCP,us-central1,c3d-standard-8 (-lssd),spot,NA,0.061264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804343 +GCP,us-central1,c3d-standard-90 (-lssd),on_demand,NA,4.08591,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808533 +GCP,us-central1,c3d-standard-90 (-lssd),reserved_1y,NA,2.574,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808561 +GCP,us-central1,c3d-standard-90 (-lssd),reserved_3y,NA,1.83843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808574 +GCP,us-central1,c3d-standard-90 (-lssd),spot,NA,0.68922,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808547 +GCP,us-central1,c4-standard-16,on_demand,NA,0.29172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840538 +GCP,us-central1,c4-standard-16,reserved_1y,NA,0.49814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840566 +GCP,us-central1,c4-standard-16,reserved_3y,NA,0.355808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840581 +GCP,us-central1,c4-standard-16,spot,NA,0.31052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840552 +GCP,us-central1,c4-standard-2,on_demand,NA,0.034496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837239 +GCP,us-central1,c4-standard-2,reserved_1y,NA,0.061027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837269 +GCP,us-central1,c4-standard-2,reserved_3y,NA,0.04359,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837282 +GCP,us-central1,c4-standard-2,spot,NA,0.038042,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837257 +GCP,us-central1,c4-standard-24,on_demand,NA,0.43758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841611 +GCP,us-central1,c4-standard-24,reserved_1y,NA,0.74721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841640 +GCP,us-central1,c4-standard-24,reserved_3y,NA,0.533712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841654 +GCP,us-central1,c4-standard-24,spot,NA,0.46578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841626 +GCP,us-central1,c4-standard-32,on_demand,NA,0.58344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842691 +GCP,us-central1,c4-standard-32,reserved_1y,NA,0.99628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842719 +GCP,us-central1,c4-standard-32,reserved_3y,NA,0.711616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842733 +GCP,us-central1,c4-standard-32,spot,NA,0.62104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842706 +GCP,us-central1,c4-standard-4,on_demand,NA,0.07293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838347 +GCP,us-central1,c4-standard-4,reserved_1y,NA,0.124535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838375 +GCP,us-central1,c4-standard-4,reserved_3y,NA,0.088952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838390 +GCP,us-central1,c4-standard-4,spot,NA,0.07763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838361 +GCP,us-central1,c4-standard-8,on_demand,NA,0.14586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839380 +GCP,us-central1,c4-standard-8,reserved_1y,NA,0.24907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839407 +GCP,us-central1,c4-standard-8,reserved_3y,NA,0.177904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839421 +GCP,us-central1,c4-standard-8,spot,NA,0.15526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839394 +GCP,us-central1,c4a-highmem-16 (-lssd),on_demand,NA,0.53856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831241 +GCP,us-central1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.6216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831268 +GCP,us-central1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.42448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831281 +GCP,us-central1,c4a-highmem-16 (-lssd),spot,NA,0.294432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831254 +GCP,us-central1,c4a-highmem-32 (-lssd),on_demand,NA,1.07712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832500 +GCP,us-central1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.2432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832527 +GCP,us-central1,c4a-highmem-32 (-lssd),reserved_3y,NA,0.84896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832541 +GCP,us-central1,c4a-highmem-32 (-lssd),spot,NA,0.588864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832514 +GCP,us-central1,c4a-highmem-4 (-lssd),on_demand,NA,0.13464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828826 +GCP,us-central1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.1554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828853 +GCP,us-central1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.10612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828867 +GCP,us-central1,c4a-highmem-4 (-lssd),spot,NA,0.073608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828840 +GCP,us-central1,c4a-highmem-48 (-lssd),on_demand,NA,1.61568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833705 +GCP,us-central1,c4a-highmem-48 (-lssd),reserved_1y,NA,1.8648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833734 +GCP,us-central1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.27344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833749 +GCP,us-central1,c4a-highmem-48 (-lssd),spot,NA,0.883296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833720 +GCP,us-central1,c4a-highmem-64 (-lssd),on_demand,NA,2.15424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834900 +GCP,us-central1,c4a-highmem-64 (-lssd),reserved_1y,NA,2.4864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834938 +GCP,us-central1,c4a-highmem-64 (-lssd),reserved_3y,NA,1.69792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834951 +GCP,us-central1,c4a-highmem-64 (-lssd),spot,NA,1.177728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834924 +GCP,us-central1,c4a-highmem-72 (-lssd),on_demand,NA,2.42352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836092 +GCP,us-central1,c4a-highmem-72 (-lssd),reserved_1y,NA,2.7972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836119 +GCP,us-central1,c4a-highmem-72 (-lssd),reserved_3y,NA,1.91016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836132 +GCP,us-central1,c4a-highmem-72 (-lssd),spot,NA,1.324944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836106 +GCP,us-central1,c4a-highmem-8 (-lssd),on_demand,NA,0.26928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830029 +GCP,us-central1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.3108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830056 +GCP,us-central1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.21224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830070 +GCP,us-central1,c4a-highmem-8 (-lssd),spot,NA,0.147216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830043 +GCP,us-central1,c4a-standard-16 (-lssd),on_demand,NA,0.51616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822697 +GCP,us-central1,c4a-standard-16 (-lssd),reserved_1y,NA,0.47376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822724 +GCP,us-central1,c4a-standard-16 (-lssd),reserved_3y,NA,0.32336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822737 +GCP,us-central1,c4a-standard-16 (-lssd),spot,NA,0.224416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822710 +GCP,us-central1,c4a-standard-32 (-lssd),on_demand,NA,1.03232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823964 +GCP,us-central1,c4a-standard-32 (-lssd),reserved_1y,NA,0.94752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823992 +GCP,us-central1,c4a-standard-32 (-lssd),reserved_3y,NA,0.64672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824006 +GCP,us-central1,c4a-standard-32 (-lssd),spot,NA,0.448832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823978 +GCP,us-central1,c4a-standard-4 (-lssd),on_demand,NA,0.12904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820243 +GCP,us-central1,c4a-standard-4 (-lssd),reserved_1y,NA,0.11844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820272 +GCP,us-central1,c4a-standard-4 (-lssd),reserved_3y,NA,0.08084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820286 +GCP,us-central1,c4a-standard-4 (-lssd),spot,NA,0.056104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820257 +GCP,us-central1,c4a-standard-48 (-lssd),on_demand,NA,1.54848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825184 +GCP,us-central1,c4a-standard-48 (-lssd),reserved_1y,NA,1.42128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825213 +GCP,us-central1,c4a-standard-48 (-lssd),reserved_3y,NA,0.97008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825227 +GCP,us-central1,c4a-standard-48 (-lssd),spot,NA,0.673248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825198 +GCP,us-central1,c4a-standard-64 (-lssd),on_demand,NA,2.06464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826407 +GCP,us-central1,c4a-standard-64 (-lssd),reserved_1y,NA,1.89504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826435 +GCP,us-central1,c4a-standard-64 (-lssd),reserved_3y,NA,1.29344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826448 +GCP,us-central1,c4a-standard-64 (-lssd),spot,NA,0.897664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826421 +GCP,us-central1,c4a-standard-72 (-lssd),on_demand,NA,2.32272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827618 +GCP,us-central1,c4a-standard-72 (-lssd),reserved_1y,NA,2.13192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827645 +GCP,us-central1,c4a-standard-72 (-lssd),reserved_3y,NA,1.45512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827658 +GCP,us-central1,c4a-standard-72 (-lssd),spot,NA,1.009872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827632 +GCP,us-central1,c4a-standard-8 (-lssd),on_demand,NA,0.25808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821487 +GCP,us-central1,c4a-standard-8 (-lssd),reserved_1y,NA,0.23688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821515 +GCP,us-central1,c4a-standard-8 (-lssd),reserved_3y,NA,0.16168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821529 +GCP,us-central1,c4a-standard-8 (-lssd),spot,NA,0.112208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821501 +GCP,us-central1,c4d-standard-16,on_demand,NA,0.54493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847792 +GCP,us-central1,c4d-standard-16,reserved_1y,NA,0.46619,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847820 +GCP,us-central1,c4d-standard-16,reserved_3y,NA,0.332991,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847833 +GCP,us-central1,c4d-standard-16,spot,NA,0.28816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847806 +GCP,us-central1,c4d-standard-2,on_demand,NA,0.067854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843923 +GCP,us-central1,c4d-standard-2,reserved_1y,NA,0.056622,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843956 +GCP,us-central1,c4d-standard-2,reserved_3y,NA,0.040444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843972 +GCP,us-central1,c4d-standard-2,spot,NA,0.035,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843940 +GCP,us-central1,c4d-standard-32,on_demand,NA,1.089861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849129 +GCP,us-central1,c4d-standard-32,reserved_1y,NA,0.932379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849156 +GCP,us-central1,c4d-standard-32,reserved_3y,NA,0.665983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849170 +GCP,us-central1,c4d-standard-32,spot,NA,0.57632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849143 +GCP,us-central1,c4d-standard-4,on_demand,NA,0.136058,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845242 +GCP,us-central1,c4d-standard-4,reserved_1y,NA,0.115446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845270 +GCP,us-central1,c4d-standard-4,reserved_3y,NA,0.082461,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845283 +GCP,us-central1,c4d-standard-4,spot,NA,0.07136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845256 +GCP,us-central1,c4d-standard-8,on_demand,NA,0.272465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846531 +GCP,us-central1,c4d-standard-8,reserved_1y,NA,0.233095,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846559 +GCP,us-central1,c4d-standard-8,reserved_3y,NA,0.166496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846573 +GCP,us-central1,c4d-standard-8,spot,NA,0.14408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846545 +GCP,us-central1,e2_highcpu_16,on_demand,NA,0.395762,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763698 +GCP,us-central1,e2_highcpu_16,reserved_1y,NA,0.24933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763727 +GCP,us-central1,e2_highcpu_16,reserved_3y,NA,0.178093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763741 +GCP,us-central1,e2_highcpu_16,spot,NA,0.158224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763712 +GCP,us-central1,e2_highcpu_32,on_demand,NA,0.791524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764793 +GCP,us-central1,e2_highcpu_32,reserved_1y,NA,0.49866,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764821 +GCP,us-central1,e2_highcpu_32,reserved_3y,NA,0.356186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764835 +GCP,us-central1,e2_highcpu_32,spot,NA,0.316448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764807 +GCP,us-central1,e2_highmem_16,on_demand,NA,0.723197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762640 +GCP,us-central1,e2_highmem_16,reserved_1y,NA,0.455614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762667 +GCP,us-central1,e2_highmem_16,reserved_3y,NA,0.325439,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762681 +GCP,us-central1,e2_highmem_16,spot,NA,0.289152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762654 +GCP,us-central1,e2_highmem_2,on_demand,NA,0.0904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759459 +GCP,us-central1,e2_highmem_2,reserved_1y,NA,0.056952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759488 +GCP,us-central1,e2_highmem_2,reserved_3y,NA,0.04068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759502 +GCP,us-central1,e2_highmem_2,spot,NA,0.036144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759474 +GCP,us-central1,e2_highmem_4,on_demand,NA,0.180799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760579 +GCP,us-central1,e2_highmem_4,reserved_1y,NA,0.113904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760607 +GCP,us-central1,e2_highmem_4,reserved_3y,NA,0.08136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760621 +GCP,us-central1,e2_highmem_4,spot,NA,0.072288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760593 +GCP,us-central1,e2_highmem_8,on_demand,NA,0.361599,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761603 +GCP,us-central1,e2_highmem_8,reserved_1y,NA,0.227807,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761629 +GCP,us-central1,e2_highmem_8,reserved_3y,NA,0.162719,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761642 +GCP,us-central1,e2_highmem_8,spot,NA,0.144576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761616 +GCP,us-central1,e2_standard_16,on_demand,NA,0.536091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768080 +GCP,us-central1,e2_standard_16,reserved_1y,NA,0.337737,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768105 +GCP,us-central1,e2_standard_16,reserved_3y,NA,0.241241,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768117 +GCP,us-central1,e2_standard_16,spot,NA,0.214336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768093 +GCP,us-central1,e2_standard_32,on_demand,NA,1.072183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769168 +GCP,us-central1,e2_standard_32,reserved_1y,NA,0.675475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769199 +GCP,us-central1,e2_standard_32,reserved_3y,NA,0.482482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769215 +GCP,us-central1,e2_standard_32,spot,NA,0.428672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769183 +GCP,us-central1,e2_standard_4,on_demand,NA,0.134023,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765835 +GCP,us-central1,e2_standard_4,reserved_1y,NA,0.084434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765864 +GCP,us-central1,e2_standard_4,reserved_3y,NA,0.06031,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765878 +GCP,us-central1,e2_standard_4,spot,NA,0.053584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765850 +GCP,us-central1,e2_standard_8,on_demand,NA,0.268046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767055 +GCP,us-central1,e2_standard_8,reserved_1y,NA,0.168869,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767083 +GCP,us-central1,e2_standard_8,reserved_3y,NA,0.120621,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767097 +GCP,us-central1,e2_standard_8,spot,NA,0.107168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767069 +GCP,us-central1,g2-standard-12,on_demand,NA,0.440376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786382 +GCP,us-central1,g2-standard-12,reserved_1y,NA,0.277437,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786410 +GCP,us-central1,g2-standard-12,reserved_3y,NA,0.198169,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786424 +GCP,us-central1,g2-standard-12,spot,NA,0.176208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786396 +GCP,us-central1,g2-standard-16,on_demand,NA,0.587168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787420 +GCP,us-central1,g2-standard-16,reserved_1y,NA,0.369916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787448 +GCP,us-central1,g2-standard-16,reserved_3y,NA,0.264226,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787462 +GCP,us-central1,g2-standard-16,spot,NA,0.234944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787434 +GCP,us-central1,g2-standard-24,on_demand,NA,0.880752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788510 +GCP,us-central1,g2-standard-24,reserved_1y,NA,0.554874,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788538 +GCP,us-central1,g2-standard-24,reserved_3y,NA,0.396338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788552 +GCP,us-central1,g2-standard-24,spot,NA,0.352416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788524 +GCP,us-central1,g2-standard-32,on_demand,NA,1.174336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789545 +GCP,us-central1,g2-standard-32,reserved_1y,NA,0.739832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789573 +GCP,us-central1,g2-standard-32,reserved_3y,NA,0.528451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789587 +GCP,us-central1,g2-standard-32,spot,NA,0.469888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789559 +GCP,us-central1,g2-standard-4,on_demand,NA,0.146792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784296 +GCP,us-central1,g2-standard-4,reserved_1y,NA,0.092479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784325 +GCP,us-central1,g2-standard-4,reserved_3y,NA,0.066056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784340 +GCP,us-central1,g2-standard-4,spot,NA,0.058736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784311 +GCP,us-central1,g2-standard-48,on_demand,NA,1.761504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790585 +GCP,us-central1,g2-standard-48,reserved_1y,NA,1.109748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790613 +GCP,us-central1,g2-standard-48,reserved_3y,NA,0.792677,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790627 +GCP,us-central1,g2-standard-48,spot,NA,0.704832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790599 +GCP,us-central1,g2-standard-8,on_demand,NA,0.293584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785351 +GCP,us-central1,g2-standard-8,reserved_1y,NA,0.184958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785379 +GCP,us-central1,g2-standard-8,reserved_3y,NA,0.132113,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785393 +GCP,us-central1,g2-standard-8,spot,NA,0.117472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785365 +GCP,us-central1,g2-standard-96,on_demand,NA,3.523008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791629 +GCP,us-central1,g2-standard-96,reserved_1y,NA,2.219495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791658 +GCP,us-central1,g2-standard-96,reserved_3y,NA,1.585354,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791672 +GCP,us-central1,g2-standard-96,spot,NA,1.409664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791644 +GCP,us-central1,n1-highcpu-16,on_demand,NA,0.566789,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690542 +GCP,us-central1,n1-highcpu-16,spot,NA,0.144722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690556 +GCP,us-central1,n1-highcpu-32,on_demand,NA,1.133578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691407 +GCP,us-central1,n1-highcpu-32,spot,NA,0.289443,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691422 +GCP,us-central1,n1-highcpu-64,on_demand,NA,2.267155,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692325 +GCP,us-central1,n1-highcpu-64,spot,NA,0.578886,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692339 +GCP,us-central1,n1-highcpu-96,on_demand,NA,3.400733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693123 +GCP,us-central1,n1-highcpu-96,spot,NA,0.86833,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693137 +GCP,us-central1,n1-highmem-16,on_demand,NA,0.946424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687020 +GCP,us-central1,n1-highmem-16,spot,NA,0.237816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687034 +GCP,us-central1,n1-highmem-32,on_demand,NA,1.892848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687840 +GCP,us-central1,n1-highmem-32,spot,NA,0.475632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687854 +GCP,us-central1,n1-highmem-4,on_demand,NA,0.236606,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685277 +GCP,us-central1,n1-highmem-4,spot,NA,0.059454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685291 +GCP,us-central1,n1-highmem-64,on_demand,NA,3.785696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688721 +GCP,us-central1,n1-highmem-64,spot,NA,0.951264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688737 +GCP,us-central1,n1-highmem-8,on_demand,NA,0.473212,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686111 +GCP,us-central1,n1-highmem-8,spot,NA,0.118908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686124 +GCP,us-central1,n1-highmem-96,on_demand,NA,5.678544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689653 +GCP,us-central1,n1-highmem-96,spot,NA,1.426896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689667 +GCP,us-central1,n1-standard-16,on_demand,NA,0.759996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681299 +GCP,us-central1,n1-standard-16,spot,NA,0.1921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681313 +GCP,us-central1,n1-standard-32,on_demand,NA,1.519992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682151 +GCP,us-central1,n1-standard-32,spot,NA,0.3842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682165 +GCP,us-central1,n1-standard-4,on_demand,NA,0.189999,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679591 +GCP,us-central1,n1-standard-4,spot,NA,0.048025,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679611 +GCP,us-central1,n1-standard-64,on_demand,NA,3.039984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683185 +GCP,us-central1,n1-standard-64,spot,NA,0.7684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683198 +GCP,us-central1,n1-standard-8,on_demand,NA,0.379998,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680503 +GCP,us-central1,n1-standard-8,spot,NA,0.09605,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680518 +GCP,us-central1,n1-standard-96,on_demand,NA,4.559976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684105 +GCP,us-central1,n1-standard-96,spot,NA,1.1526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684119 +GCP,us-central1,n2-highcpu-16,on_demand,NA,0.573568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710741 +GCP,us-central1,n2-highcpu-16,reserved_1y,NA,0.361344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710822 +GCP,us-central1,n2-highcpu-16,reserved_3y,NA,0.258112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710836 +GCP,us-central1,n2-highcpu-16,spot,NA,0.179216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710806 +GCP,us-central1,n2-highcpu-32,on_demand,NA,1.147136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711912 +GCP,us-central1,n2-highcpu-32,reserved_1y,NA,0.722688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711940 +GCP,us-central1,n2-highcpu-32,reserved_3y,NA,0.516224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711954 +GCP,us-central1,n2-highcpu-32,spot,NA,0.358432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711927 +GCP,us-central1,n2-highcpu-48,on_demand,NA,1.720704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713007 +GCP,us-central1,n2-highcpu-48,reserved_1y,NA,1.084032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713034 +GCP,us-central1,n2-highcpu-48,reserved_3y,NA,0.774336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713048 +GCP,us-central1,n2-highcpu-48,spot,NA,0.537648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713021 +GCP,us-central1,n2-highcpu-64,on_demand,NA,2.294272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714118 +GCP,us-central1,n2-highcpu-64,reserved_1y,NA,1.445376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714146 +GCP,us-central1,n2-highcpu-64,reserved_3y,NA,1.032448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714160 +GCP,us-central1,n2-highcpu-64,spot,NA,0.716864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714133 +GCP,us-central1,n2-highcpu-80,on_demand,NA,2.86784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715206 +GCP,us-central1,n2-highcpu-80,reserved_1y,NA,1.80672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715233 +GCP,us-central1,n2-highcpu-80,reserved_3y,NA,1.29056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715247 +GCP,us-central1,n2-highcpu-80,spot,NA,0.89608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715219 +GCP,us-central1,n2-highmem-16,on_demand,NA,1.048112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705199 +GCP,us-central1,n2-highmem-16,reserved_1y,NA,0.660272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705226 +GCP,us-central1,n2-highmem-16,reserved_3y,NA,0.471696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705240 +GCP,us-central1,n2-highmem-16,spot,NA,0.327168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705213 +GCP,us-central1,n2-highmem-2,on_demand,NA,0.131014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701810 +GCP,us-central1,n2-highmem-2,reserved_1y,NA,0.082534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701881 +GCP,us-central1,n2-highmem-2,reserved_3y,NA,0.058962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701896 +GCP,us-central1,n2-highmem-2,spot,NA,0.040896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701866 +GCP,us-central1,n2-highmem-32,on_demand,NA,2.096224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706320 +GCP,us-central1,n2-highmem-32,reserved_1y,NA,1.320544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706348 +GCP,us-central1,n2-highmem-32,reserved_3y,NA,0.943392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706376 +GCP,us-central1,n2-highmem-32,spot,NA,0.654336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706334 +GCP,us-central1,n2-highmem-4,on_demand,NA,0.262028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702968 +GCP,us-central1,n2-highmem-4,reserved_1y,NA,0.165068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702997 +GCP,us-central1,n2-highmem-4,reserved_3y,NA,0.117924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703011 +GCP,us-central1,n2-highmem-4,spot,NA,0.081792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702983 +GCP,us-central1,n2-highmem-48,on_demand,NA,3.144336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707451 +GCP,us-central1,n2-highmem-48,reserved_1y,NA,1.980816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707480 +GCP,us-central1,n2-highmem-48,reserved_3y,NA,1.415088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707494 +GCP,us-central1,n2-highmem-48,spot,NA,0.981504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707465 +GCP,us-central1,n2-highmem-64,on_demand,NA,4.192448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708565 +GCP,us-central1,n2-highmem-64,reserved_1y,NA,2.641088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708593 +GCP,us-central1,n2-highmem-64,reserved_3y,NA,1.886784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708608 +GCP,us-central1,n2-highmem-64,spot,NA,1.308672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708579 +GCP,us-central1,n2-highmem-8,on_demand,NA,0.524056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704114 +GCP,us-central1,n2-highmem-8,reserved_1y,NA,0.330136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704143 +GCP,us-central1,n2-highmem-8,reserved_3y,NA,0.235848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704156 +GCP,us-central1,n2-highmem-8,spot,NA,0.163584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704128 +GCP,us-central1,n2-highmem-80,on_demand,NA,5.24056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709660 +GCP,us-central1,n2-highmem-80,reserved_1y,NA,3.30136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709688 +GCP,us-central1,n2-highmem-80,reserved_3y,NA,2.35848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709702 +GCP,us-central1,n2-highmem-80,spot,NA,1.63584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709674 +GCP,us-central1,n2-standard-16,on_demand,NA,0.776944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696249 +GCP,us-central1,n2-standard-16,reserved_1y,NA,0.489456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696278 +GCP,us-central1,n2-standard-16,reserved_3y,NA,0.349648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696292 +GCP,us-central1,n2-standard-16,spot,NA,0.242624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696264 +GCP,us-central1,n2-standard-32,on_demand,NA,1.553888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697338 +GCP,us-central1,n2-standard-32,reserved_1y,NA,0.978912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697367 +GCP,us-central1,n2-standard-32,reserved_3y,NA,0.699296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697381 +GCP,us-central1,n2-standard-32,spot,NA,0.485248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697353 +GCP,us-central1,n2-standard-4,on_demand,NA,0.194236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693962 +GCP,us-central1,n2-standard-4,reserved_1y,NA,0.122364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693990 +GCP,us-central1,n2-standard-4,reserved_3y,NA,0.087412,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694004 +GCP,us-central1,n2-standard-4,spot,NA,0.060656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693976 +GCP,us-central1,n2-standard-48,on_demand,NA,2.330832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698458 +GCP,us-central1,n2-standard-48,reserved_1y,NA,1.468368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698486 +GCP,us-central1,n2-standard-48,reserved_3y,NA,1.048944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698500 +GCP,us-central1,n2-standard-48,spot,NA,0.727872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698472 +GCP,us-central1,n2-standard-64,on_demand,NA,3.107776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699592 +GCP,us-central1,n2-standard-64,reserved_1y,NA,1.957824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699620 +GCP,us-central1,n2-standard-64,reserved_3y,NA,1.398592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699634 +GCP,us-central1,n2-standard-64,spot,NA,0.970496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699606 +GCP,us-central1,n2-standard-8,on_demand,NA,0.388472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695076 +GCP,us-central1,n2-standard-8,reserved_1y,NA,0.244728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695104 +GCP,us-central1,n2-standard-8,reserved_3y,NA,0.174824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695118 +GCP,us-central1,n2-standard-8,spot,NA,0.121312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695090 +GCP,us-central1,n2-standard-80,on_demand,NA,3.88472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700734 +GCP,us-central1,n2-standard-80,reserved_1y,NA,2.44728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700804 +GCP,us-central1,n2-standard-80,reserved_3y,NA,1.74824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700818 +GCP,us-central1,n2-standard-80,spot,NA,1.21312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700783 +GCP,us-central1,n2d-highcpu-128,on_demand,NA,3.638208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752190 +GCP,us-central1,n2d-highcpu-128,reserved_1y,NA,2.514944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752218 +GCP,us-central1,n2d-highcpu-128,reserved_3y,NA,1.79648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752231 +GCP,us-central1,n2d-highcpu-128,spot,NA,0.828672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752204 +GCP,us-central1,n2d-highcpu-16,on_demand,NA,0.454776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745891 +GCP,us-central1,n2d-highcpu-16,reserved_1y,NA,0.314368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745919 +GCP,us-central1,n2d-highcpu-16,reserved_3y,NA,0.22456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745932 +GCP,us-central1,n2d-highcpu-16,spot,NA,0.103584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745905 +GCP,us-central1,n2d-highcpu-224,on_demand,NA,6.366864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753219 +GCP,us-central1,n2d-highcpu-224,reserved_1y,NA,4.401152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753246 +GCP,us-central1,n2d-highcpu-224,reserved_3y,NA,3.14384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753260 +GCP,us-central1,n2d-highcpu-224,spot,NA,1.450176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753233 +GCP,us-central1,n2d-highcpu-32,on_demand,NA,0.909552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746908 +GCP,us-central1,n2d-highcpu-32,reserved_1y,NA,0.628736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746945 +GCP,us-central1,n2d-highcpu-32,reserved_3y,NA,0.44912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746958 +GCP,us-central1,n2d-highcpu-32,spot,NA,0.207168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746930 +GCP,us-central1,n2d-highcpu-48,on_demand,NA,1.364328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747997 +GCP,us-central1,n2d-highcpu-48,reserved_1y,NA,0.943104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748025 +GCP,us-central1,n2d-highcpu-48,reserved_3y,NA,0.67368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748038 +GCP,us-central1,n2d-highcpu-48,spot,NA,0.310752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748011 +GCP,us-central1,n2d-highcpu-64,on_demand,NA,1.819104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749037 +GCP,us-central1,n2d-highcpu-64,reserved_1y,NA,1.257472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749065 +GCP,us-central1,n2d-highcpu-64,reserved_3y,NA,0.89824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749079 +GCP,us-central1,n2d-highcpu-64,spot,NA,0.414336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749051 +GCP,us-central1,n2d-highcpu-80,on_demand,NA,2.27388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750079 +GCP,us-central1,n2d-highcpu-80,reserved_1y,NA,1.57184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750107 +GCP,us-central1,n2d-highcpu-80,reserved_3y,NA,1.1228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750121 +GCP,us-central1,n2d-highcpu-80,spot,NA,0.51792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750093 +GCP,us-central1,n2d-highcpu-96,on_demand,NA,2.728656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751133 +GCP,us-central1,n2d-highcpu-96,reserved_1y,NA,1.886208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751161 +GCP,us-central1,n2d-highcpu-96,reserved_3y,NA,1.34736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751175 +GCP,us-central1,n2d-highcpu-96,spot,NA,0.621504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751148 +GCP,us-central1,n2d-highmem-16,on_demand,NA,0.557984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739583 +GCP,us-central1,n2d-highmem-16,reserved_1y,NA,0.574432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739608 +GCP,us-central1,n2d-highmem-16,reserved_3y,NA,0.410368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739621 +GCP,us-central1,n2d-highmem-16,spot,NA,0.189152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739596 +GCP,us-central1,n2d-highmem-2,on_demand,NA,0.069748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736392 +GCP,us-central1,n2d-highmem-2,reserved_1y,NA,0.071804,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736419 +GCP,us-central1,n2d-highmem-2,reserved_3y,NA,0.051296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736433 +GCP,us-central1,n2d-highmem-2,spot,NA,0.023644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736406 +GCP,us-central1,n2d-highmem-32,on_demand,NA,1.115968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740648 +GCP,us-central1,n2d-highmem-32,reserved_1y,NA,1.148864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740675 +GCP,us-central1,n2d-highmem-32,reserved_3y,NA,0.820736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740688 +GCP,us-central1,n2d-highmem-32,spot,NA,0.378304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740662 +GCP,us-central1,n2d-highmem-4,on_demand,NA,0.139496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737429 +GCP,us-central1,n2d-highmem-4,reserved_1y,NA,0.143608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737458 +GCP,us-central1,n2d-highmem-4,reserved_3y,NA,0.102592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737473 +GCP,us-central1,n2d-highmem-4,spot,NA,0.047288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737444 +GCP,us-central1,n2d-highmem-48,on_demand,NA,1.673952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741657 +GCP,us-central1,n2d-highmem-48,reserved_1y,NA,1.723296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741684 +GCP,us-central1,n2d-highmem-48,reserved_3y,NA,1.231104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741698 +GCP,us-central1,n2d-highmem-48,spot,NA,0.567456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741670 +GCP,us-central1,n2d-highmem-64,on_demand,NA,2.231936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742732 +GCP,us-central1,n2d-highmem-64,reserved_1y,NA,2.297728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742759 +GCP,us-central1,n2d-highmem-64,reserved_3y,NA,1.641472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742773 +GCP,us-central1,n2d-highmem-64,spot,NA,0.756608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742746 +GCP,us-central1,n2d-highmem-8,on_demand,NA,0.278992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738514 +GCP,us-central1,n2d-highmem-8,reserved_1y,NA,0.287216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738542 +GCP,us-central1,n2d-highmem-8,reserved_3y,NA,0.205184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738556 +GCP,us-central1,n2d-highmem-8,spot,NA,0.094576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738528 +GCP,us-central1,n2d-highmem-80,on_demand,NA,2.78992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743797 +GCP,us-central1,n2d-highmem-80,reserved_1y,NA,2.87216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743826 +GCP,us-central1,n2d-highmem-80,reserved_3y,NA,2.05184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743843 +GCP,us-central1,n2d-highmem-80,spot,NA,0.94576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743812 +GCP,us-central1,n2d-highmem-96,on_demand,NA,3.347904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744867 +GCP,us-central1,n2d-highmem-96,reserved_1y,NA,3.446592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744894 +GCP,us-central1,n2d-highmem-96,reserved_3y,NA,2.462208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744908 +GCP,us-central1,n2d-highmem-96,spot,NA,1.134912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744881 +GCP,us-central1,n2d-standard-128,on_demand,NA,3.992064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734292 +GCP,us-central1,n2d-standard-128,reserved_1y,NA,3.406592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734321 +GCP,us-central1,n2d-standard-128,reserved_3y,NA,2.433536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734336 +GCP,us-central1,n2d-standard-128,spot,NA,1.122048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734306 +GCP,us-central1,n2d-standard-16,on_demand,NA,0.499008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727981 +GCP,us-central1,n2d-standard-16,reserved_1y,NA,0.425824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728009 +GCP,us-central1,n2d-standard-16,reserved_3y,NA,0.304192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728023 +GCP,us-central1,n2d-standard-16,spot,NA,0.140256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727995 +GCP,us-central1,n2d-standard-224,on_demand,NA,6.986112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735343 +GCP,us-central1,n2d-standard-224,reserved_1y,NA,5.961536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735370 +GCP,us-central1,n2d-standard-224,reserved_3y,NA,4.258688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735384 +GCP,us-central1,n2d-standard-224,spot,NA,1.963584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735356 +GCP,us-central1,n2d-standard-32,on_demand,NA,0.998016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729018 +GCP,us-central1,n2d-standard-32,reserved_1y,NA,0.851648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729046 +GCP,us-central1,n2d-standard-32,reserved_3y,NA,0.608384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729061 +GCP,us-central1,n2d-standard-32,spot,NA,0.280512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729032 +GCP,us-central1,n2d-standard-4,on_demand,NA,0.124752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725845 +GCP,us-central1,n2d-standard-4,reserved_1y,NA,0.106456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725873 +GCP,us-central1,n2d-standard-4,reserved_3y,NA,0.076048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725888 +GCP,us-central1,n2d-standard-4,spot,NA,0.035064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725859 +GCP,us-central1,n2d-standard-48,on_demand,NA,1.497024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730050 +GCP,us-central1,n2d-standard-48,reserved_1y,NA,1.277472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730077 +GCP,us-central1,n2d-standard-48,reserved_3y,NA,0.912576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730091 +GCP,us-central1,n2d-standard-48,spot,NA,0.420768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730063 +GCP,us-central1,n2d-standard-64,on_demand,NA,1.996032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731127 +GCP,us-central1,n2d-standard-64,reserved_1y,NA,1.703296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731155 +GCP,us-central1,n2d-standard-64,reserved_3y,NA,1.216768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731169 +GCP,us-central1,n2d-standard-64,spot,NA,0.561024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731141 +GCP,us-central1,n2d-standard-8,on_demand,NA,0.249504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726906 +GCP,us-central1,n2d-standard-8,reserved_1y,NA,0.212912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726945 +GCP,us-central1,n2d-standard-8,reserved_3y,NA,0.152096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726960 +GCP,us-central1,n2d-standard-8,spot,NA,0.070128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726930 +GCP,us-central1,n2d-standard-80,on_demand,NA,2.49504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732197 +GCP,us-central1,n2d-standard-80,reserved_1y,NA,2.12912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732225 +GCP,us-central1,n2d-standard-80,reserved_3y,NA,1.52096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732240 +GCP,us-central1,n2d-standard-80,spot,NA,0.70128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732211 +GCP,us-central1,n2d-standard-96,on_demand,NA,2.994048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733236 +GCP,us-central1,n2d-standard-96,reserved_1y,NA,2.554944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733262 +GCP,us-central1,n2d-standard-96,reserved_3y,NA,1.825152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733276 +GCP,us-central1,n2d-standard-96,spot,NA,0.841536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733249 +GCP,us-central1,n4-standard-16,on_demand,NA,0.07256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757372 +GCP,us-central1,n4-standard-16,reserved_1y,NA,0.45712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757400 +GCP,us-central1,n4-standard-16,reserved_3y,NA,0.326528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757413 +GCP,us-central1,n4-standard-16,spot,NA,0.244864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757385 +GCP,us-central1,n4-standard-2,on_demand,NA,0.00907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754243 +GCP,us-central1,n4-standard-2,reserved_1y,NA,0.05714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754271 +GCP,us-central1,n4-standard-2,reserved_3y,NA,0.040816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754285 +GCP,us-central1,n4-standard-2,spot,NA,0.030608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754257 +GCP,us-central1,n4-standard-32,on_demand,NA,0.14512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758410 +GCP,us-central1,n4-standard-32,reserved_1y,NA,0.91424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758439 +GCP,us-central1,n4-standard-32,reserved_3y,NA,0.653056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758453 +GCP,us-central1,n4-standard-32,spot,NA,0.489728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758424 +GCP,us-central1,n4-standard-4,on_demand,NA,0.01814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755296 +GCP,us-central1,n4-standard-4,reserved_1y,NA,0.11428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755324 +GCP,us-central1,n4-standard-4,reserved_3y,NA,0.081632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755338 +GCP,us-central1,n4-standard-4,spot,NA,0.061216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755310 +GCP,us-central1,n4-standard-8,on_demand,NA,0.03628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756345 +GCP,us-central1,n4-standard-8,reserved_1y,NA,0.22856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756373 +GCP,us-central1,n4-standard-8,reserved_3y,NA,0.163264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756388 +GCP,us-central1,n4-standard-8,spot,NA,0.122432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756359 +GCP,us-east1,a2-highgpu-1g,on_demand,NA,0.406682,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770320 +GCP,us-east1,a2-highgpu-1g,reserved_1y,NA,0.465845,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770347 +GCP,us-east1,a2-highgpu-1g,reserved_3y,NA,0.258841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770360 +GCP,us-east1,a2-highgpu-1g,spot,NA,0.295755,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770333 +GCP,us-east1,a2-highgpu-2g,on_demand,NA,0.813364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771353 +GCP,us-east1,a2-highgpu-2g,reserved_1y,NA,0.93169,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771380 +GCP,us-east1,a2-highgpu-2g,reserved_3y,NA,0.517681,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771393 +GCP,us-east1,a2-highgpu-2g,spot,NA,0.59151,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771366 +GCP,us-east1,a2-highgpu-4g,on_demand,NA,1.626728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772492 +GCP,us-east1,a2-highgpu-4g,reserved_1y,NA,1.86338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772520 +GCP,us-east1,a2-highgpu-4g,reserved_3y,NA,1.035362,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772534 +GCP,us-east1,a2-highgpu-4g,spot,NA,1.18302,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772507 +GCP,us-east1,a2-highgpu-8g,on_demand,NA,3.253456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773604 +GCP,us-east1,a2-highgpu-8g,reserved_1y,NA,3.72676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773631 +GCP,us-east1,a2-highgpu-8g,reserved_3y,NA,2.070724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773644 +GCP,us-east1,a2-highgpu-8g,spot,NA,2.36604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773617 +GCP,us-east1,a2-megagpu-16g,on_demand,NA,4.837856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774710 +GCP,us-east1,a2-megagpu-16g,reserved_1y,NA,5.54168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774738 +GCP,us-east1,a2-megagpu-16g,reserved_3y,NA,3.079315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774755 +GCP,us-east1,a2-megagpu-16g,spot,NA,3.51864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774724 +GCP,us-east1,a2-ultragpu-1g,on_demand,NA,0.604732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775798 +GCP,us-east1,a2-ultragpu-1g,reserved_1y,NA,0.69271,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775825 +GCP,us-east1,a2-ultragpu-1g,reserved_3y,NA,0.384914,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775839 +GCP,us-east1,a2-ultragpu-1g,spot,NA,0.43983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775812 +GCP,us-east1,a2-ultragpu-2g,on_demand,NA,1.209464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776910 +GCP,us-east1,a2-ultragpu-2g,reserved_1y,NA,1.38542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776940 +GCP,us-east1,a2-ultragpu-2g,reserved_3y,NA,0.769829,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776954 +GCP,us-east1,a2-ultragpu-2g,spot,NA,0.87966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776925 +GCP,us-east1,a2-ultragpu-4g,on_demand,NA,2.418928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777985 +GCP,us-east1,a2-ultragpu-4g,reserved_1y,NA,2.77084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778012 +GCP,us-east1,a2-ultragpu-4g,reserved_3y,NA,1.539658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778026 +GCP,us-east1,a2-ultragpu-4g,spot,NA,1.75932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777998 +GCP,us-east1,a2-ultragpu-8g,on_demand,NA,4.837856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779030 +GCP,us-east1,a2-ultragpu-8g,reserved_1y,NA,5.54168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779059 +GCP,us-east1,a2-ultragpu-8g,reserved_3y,NA,3.079315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779073 +GCP,us-east1,a2-ultragpu-8g,spot,NA,3.51864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779044 +GCP,us-east1,a3-highgpu-1g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780130 +GCP,us-east1,a3-highgpu-1g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780159 +GCP,us-east1,a3-highgpu-1g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780173 +GCP,us-east1,a3-highgpu-1g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780145 +GCP,us-east1,a3-highgpu-2g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781191 +GCP,us-east1,a3-highgpu-2g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781219 +GCP,us-east1,a3-highgpu-2g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781233 +GCP,us-east1,a3-highgpu-2g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781205 +GCP,us-east1,a3-highgpu-4g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782230 +GCP,us-east1,a3-highgpu-4g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782258 +GCP,us-east1,a3-highgpu-4g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782272 +GCP,us-east1,a3-highgpu-4g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782244 +GCP,us-east1,a3-highgpu-8g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783361 +GCP,us-east1,a3-highgpu-8g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783388 +GCP,us-east1,a3-highgpu-8g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783402 +GCP,us-east1,a3-highgpu-8g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783375 +GCP,us-east1,c2-standard-16,on_demand,NA,0.726384,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720949 +GCP,us-east1,c2-standard-16,reserved_1y,NA,0.4576,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720994 +GCP,us-east1,c2-standard-16,reserved_3y,NA,0.326832,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721016 +GCP,us-east1,c2-standard-16,spot,NA,0.168928,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720972 +GCP,us-east1,c2-standard-30,on_demand,NA,1.36197,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722619 +GCP,us-east1,c2-standard-30,reserved_1y,NA,0.858,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722665 +GCP,us-east1,c2-standard-30,reserved_3y,NA,0.61281,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722687 +GCP,us-east1,c2-standard-30,spot,NA,0.31674,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722642 +GCP,us-east1,c2-standard-4,on_demand,NA,0.181596,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717326 +GCP,us-east1,c2-standard-4,reserved_1y,NA,0.1144,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717374 +GCP,us-east1,c2-standard-4,reserved_3y,NA,0.081708,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717398 +GCP,us-east1,c2-standard-4,spot,NA,0.042232,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717351 +GCP,us-east1,c2-standard-60,on_demand,NA,2.72394,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724357 +GCP,us-east1,c2-standard-60,reserved_1y,NA,1.716,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724403 +GCP,us-east1,c2-standard-60,reserved_3y,NA,1.22562,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724426 +GCP,us-east1,c2-standard-60,spot,NA,0.63348,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724380 +GCP,us-east1,c2-standard-8,on_demand,NA,0.363192,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719192 +GCP,us-east1,c2-standard-8,reserved_1y,NA,0.2288,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719240 +GCP,us-east1,c2-standard-8,reserved_3y,NA,0.163416,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719263 +GCP,us-east1,c2-standard-8,spot,NA,0.084464,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719216 +GCP,us-east1,c3-highmem-22,on_demand,NA,1.455388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800302 +GCP,us-east1,c3-highmem-22,reserved_1y,NA,0.916916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800328 +GCP,us-east1,c3-highmem-22,reserved_3y,NA,0.654918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800340 +GCP,us-east1,c3-highmem-22,spot,NA,0.233772,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800315 +GCP,us-east1,c3-highmem-4,on_demand,NA,0.264616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798200 +GCP,us-east1,c3-highmem-4,reserved_1y,NA,0.166712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798228 +GCP,us-east1,c3-highmem-4,reserved_3y,NA,0.119076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798242 +GCP,us-east1,c3-highmem-4,spot,NA,0.042504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798214 +GCP,us-east1,c3-highmem-44,on_demand,NA,2.910776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801312 +GCP,us-east1,c3-highmem-44,reserved_1y,NA,1.833832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801340 +GCP,us-east1,c3-highmem-44,reserved_3y,NA,1.309836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801353 +GCP,us-east1,c3-highmem-44,spot,NA,0.467544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801327 +GCP,us-east1,c3-highmem-8,on_demand,NA,0.529232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799259 +GCP,us-east1,c3-highmem-8,reserved_1y,NA,0.333424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799287 +GCP,us-east1,c3-highmem-8,reserved_3y,NA,0.238152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799301 +GCP,us-east1,c3-highmem-8,spot,NA,0.085008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799273 +GCP,us-east1,c3-highmem-88,on_demand,NA,5.821552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802327 +GCP,us-east1,c3-highmem-88,reserved_1y,NA,3.667664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802356 +GCP,us-east1,c3-highmem-88,reserved_3y,NA,2.619672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802370 +GCP,us-east1,c3-highmem-88,spot,NA,0.935088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802341 +GCP,us-east1,c3-standard-22 (-lssd),on_demand,NA,1.108844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794979 +GCP,us-east1,c3-standard-22 (-lssd),reserved_1y,NA,0.698588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795007 +GCP,us-east1,c3-standard-22 (-lssd),reserved_3y,NA,0.498982,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795021 +GCP,us-east1,c3-standard-22 (-lssd),spot,NA,0.173316,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794993 +GCP,us-east1,c3-standard-4 (-lssd),on_demand,NA,0.201608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792867 +GCP,us-east1,c3-standard-4 (-lssd),reserved_1y,NA,0.127016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792895 +GCP,us-east1,c3-standard-4 (-lssd),reserved_3y,NA,0.090724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792909 +GCP,us-east1,c3-standard-4 (-lssd),spot,NA,0.031512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792880 +GCP,us-east1,c3-standard-44 (-lssd),on_demand,NA,2.217688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796092 +GCP,us-east1,c3-standard-44 (-lssd),reserved_1y,NA,1.397176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796120 +GCP,us-east1,c3-standard-44 (-lssd),reserved_3y,NA,0.997964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796136 +GCP,us-east1,c3-standard-44 (-lssd),spot,NA,0.346632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796106 +GCP,us-east1,c3-standard-8 (-lssd),on_demand,NA,0.403216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793928 +GCP,us-east1,c3-standard-8 (-lssd),reserved_1y,NA,0.254032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793958 +GCP,us-east1,c3-standard-8 (-lssd),reserved_3y,NA,0.181448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793973 +GCP,us-east1,c3-standard-8 (-lssd),spot,NA,0.063024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793942 +GCP,us-east1,c3-standard-88 (-lssd),on_demand,NA,4.435376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797143 +GCP,us-east1,c3-standard-88 (-lssd),reserved_1y,NA,2.794352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797171 +GCP,us-east1,c3-standard-88 (-lssd),reserved_3y,NA,1.995928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797185 +GCP,us-east1,c3-standard-88 (-lssd),spot,NA,0.693264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797157 +GCP,us-east1,c3d-highmem-16 (-lssd),on_demand,NA,0.97976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813924 +GCP,us-east1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.617216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813951 +GCP,us-east1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.440816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813965 +GCP,us-east1,c3d-highmem-16 (-lssd),spot,NA,0.165216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813938 +GCP,us-east1,c3d-highmem-180 (-lssd),on_demand,NA,11.0223,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818270 +GCP,us-east1,c3d-highmem-180 (-lssd),reserved_1y,NA,6.94368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818298 +GCP,us-east1,c3d-highmem-180 (-lssd),reserved_3y,NA,4.95918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818312 +GCP,us-east1,c3d-highmem-180 (-lssd),spot,NA,1.85868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818284 +GCP,us-east1,c3d-highmem-30 (-lssd),on_demand,NA,1.83705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815139 +GCP,us-east1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.15728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815167 +GCP,us-east1,c3d-highmem-30 (-lssd),reserved_3y,NA,0.82653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815181 +GCP,us-east1,c3d-highmem-30 (-lssd),spot,NA,0.30978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815153 +GCP,us-east1,c3d-highmem-360 (-lssd),on_demand,NA,22.0446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819307 +GCP,us-east1,c3d-highmem-360 (-lssd),reserved_1y,NA,13.88736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819334 +GCP,us-east1,c3d-highmem-360 (-lssd),reserved_3y,NA,9.91836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819348 +GCP,us-east1,c3d-highmem-360 (-lssd),spot,NA,3.71736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819321 +GCP,us-east1,c3d-highmem-4 (-lssd),on_demand,NA,0.24494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811809 +GCP,us-east1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.154304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811837 +GCP,us-east1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.110204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811850 +GCP,us-east1,c3d-highmem-4 (-lssd),spot,NA,0.041304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811823 +GCP,us-east1,c3d-highmem-60 (-lssd),on_demand,NA,3.6741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816203 +GCP,us-east1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.31456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816230 +GCP,us-east1,c3d-highmem-60 (-lssd),reserved_3y,NA,1.65306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816244 +GCP,us-east1,c3d-highmem-60 (-lssd),spot,NA,0.61956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816216 +GCP,us-east1,c3d-highmem-8 (-lssd),on_demand,NA,0.48988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812873 +GCP,us-east1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.308608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812901 +GCP,us-east1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.220408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812915 +GCP,us-east1,c3d-highmem-8 (-lssd),spot,NA,0.082608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812887 +GCP,us-east1,c3d-highmem-90 (-lssd),on_demand,NA,5.51115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817237 +GCP,us-east1,c3d-highmem-90 (-lssd),reserved_1y,NA,3.47184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817265 +GCP,us-east1,c3d-highmem-90 (-lssd),reserved_3y,NA,2.47959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817279 +GCP,us-east1,c3d-highmem-90 (-lssd),spot,NA,0.92934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817251 +GCP,us-east1,c3d-standard-16 (-lssd),on_demand,NA,0.726384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805458 +GCP,us-east1,c3d-standard-16 (-lssd),reserved_1y,NA,0.4576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805485 +GCP,us-east1,c3d-standard-16 (-lssd),reserved_3y,NA,0.326832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805498 +GCP,us-east1,c3d-standard-16 (-lssd),spot,NA,0.122528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805472 +GCP,us-east1,c3d-standard-180 (-lssd),on_demand,NA,8.17182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809703 +GCP,us-east1,c3d-standard-180 (-lssd),reserved_1y,NA,5.148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809731 +GCP,us-east1,c3d-standard-180 (-lssd),reserved_3y,NA,3.67686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809745 +GCP,us-east1,c3d-standard-180 (-lssd),spot,NA,1.37844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809717 +GCP,us-east1,c3d-standard-30 (-lssd),on_demand,NA,1.36197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806515 +GCP,us-east1,c3d-standard-30 (-lssd),reserved_1y,NA,0.858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806542 +GCP,us-east1,c3d-standard-30 (-lssd),reserved_3y,NA,0.61281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806556 +GCP,us-east1,c3d-standard-30 (-lssd),spot,NA,0.22974,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806528 +GCP,us-east1,c3d-standard-360 (-lssd),on_demand,NA,16.34364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810758 +GCP,us-east1,c3d-standard-360 (-lssd),reserved_1y,NA,10.296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810787 +GCP,us-east1,c3d-standard-360 (-lssd),reserved_3y,NA,7.35372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810801 +GCP,us-east1,c3d-standard-360 (-lssd),spot,NA,2.75688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810772 +GCP,us-east1,c3d-standard-4 (-lssd),on_demand,NA,0.181596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803386 +GCP,us-east1,c3d-standard-4 (-lssd),reserved_1y,NA,0.1144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803413 +GCP,us-east1,c3d-standard-4 (-lssd),reserved_3y,NA,0.081708,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803430 +GCP,us-east1,c3d-standard-4 (-lssd),spot,NA,0.030632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803400 +GCP,us-east1,c3d-standard-60 (-lssd),on_demand,NA,2.72394,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807577 +GCP,us-east1,c3d-standard-60 (-lssd),reserved_1y,NA,1.716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807604 +GCP,us-east1,c3d-standard-60 (-lssd),reserved_3y,NA,1.22562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807619 +GCP,us-east1,c3d-standard-60 (-lssd),spot,NA,0.45948,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807590 +GCP,us-east1,c3d-standard-8 (-lssd),on_demand,NA,0.363192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804441 +GCP,us-east1,c3d-standard-8 (-lssd),reserved_1y,NA,0.2288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804468 +GCP,us-east1,c3d-standard-8 (-lssd),reserved_3y,NA,0.163416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804481 +GCP,us-east1,c3d-standard-8 (-lssd),spot,NA,0.061264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804454 +GCP,us-east1,c3d-standard-90 (-lssd),on_demand,NA,4.08591,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808647 +GCP,us-east1,c3d-standard-90 (-lssd),reserved_1y,NA,2.574,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808676 +GCP,us-east1,c3d-standard-90 (-lssd),reserved_3y,NA,1.83843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808690 +GCP,us-east1,c3d-standard-90 (-lssd),spot,NA,0.68922,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808662 +GCP,us-east1,c4-standard-16,on_demand,NA,0.29172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840662 +GCP,us-east1,c4-standard-16,reserved_1y,NA,0.49814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840694 +GCP,us-east1,c4-standard-16,reserved_3y,NA,0.355808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840710 +GCP,us-east1,c4-standard-16,spot,NA,0.31052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840678 +GCP,us-east1,c4-standard-2,on_demand,NA,0.034496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837356 +GCP,us-east1,c4-standard-2,reserved_1y,NA,0.061027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837382 +GCP,us-east1,c4-standard-2,reserved_3y,NA,0.04359,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837396 +GCP,us-east1,c4-standard-2,spot,NA,0.038042,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837369 +GCP,us-east1,c4-standard-24,on_demand,NA,0.43758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841725 +GCP,us-east1,c4-standard-24,reserved_1y,NA,0.74721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841753 +GCP,us-east1,c4-standard-24,reserved_3y,NA,0.533712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841767 +GCP,us-east1,c4-standard-24,spot,NA,0.46578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841739 +GCP,us-east1,c4-standard-32,on_demand,NA,0.58344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842803 +GCP,us-east1,c4-standard-32,reserved_1y,NA,0.99628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842831 +GCP,us-east1,c4-standard-32,reserved_3y,NA,0.711616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842846 +GCP,us-east1,c4-standard-32,spot,NA,0.62104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842817 +GCP,us-east1,c4-standard-4,on_demand,NA,0.07293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838462 +GCP,us-east1,c4-standard-4,reserved_1y,NA,0.124535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838490 +GCP,us-east1,c4-standard-4,reserved_3y,NA,0.088952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838504 +GCP,us-east1,c4-standard-4,spot,NA,0.07763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838475 +GCP,us-east1,c4-standard-8,on_demand,NA,0.14586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839492 +GCP,us-east1,c4-standard-8,reserved_1y,NA,0.24907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839519 +GCP,us-east1,c4-standard-8,reserved_3y,NA,0.177904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839532 +GCP,us-east1,c4-standard-8,spot,NA,0.15526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839506 +GCP,us-east1,c4a-highmem-16 (-lssd),on_demand,NA,0.53856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831351 +GCP,us-east1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.6216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831379 +GCP,us-east1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.42448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831394 +GCP,us-east1,c4a-highmem-16 (-lssd),spot,NA,0.294432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831365 +GCP,us-east1,c4a-highmem-32 (-lssd),on_demand,NA,1.07712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832611 +GCP,us-east1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.2432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832639 +GCP,us-east1,c4a-highmem-32 (-lssd),reserved_3y,NA,0.84896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832652 +GCP,us-east1,c4a-highmem-32 (-lssd),spot,NA,0.588864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832625 +GCP,us-east1,c4a-highmem-4 (-lssd),on_demand,NA,0.13464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828936 +GCP,us-east1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.1554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828963 +GCP,us-east1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.10612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828976 +GCP,us-east1,c4a-highmem-4 (-lssd),spot,NA,0.073608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828949 +GCP,us-east1,c4a-highmem-48 (-lssd),on_demand,NA,1.61568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833821 +GCP,us-east1,c4a-highmem-48 (-lssd),reserved_1y,NA,1.8648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833849 +GCP,us-east1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.27344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833863 +GCP,us-east1,c4a-highmem-48 (-lssd),spot,NA,0.883296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833835 +GCP,us-east1,c4a-highmem-64 (-lssd),on_demand,NA,2.15424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835020 +GCP,us-east1,c4a-highmem-64 (-lssd),reserved_1y,NA,2.4864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835047 +GCP,us-east1,c4a-highmem-64 (-lssd),reserved_3y,NA,1.69792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835060 +GCP,us-east1,c4a-highmem-64 (-lssd),spot,NA,1.177728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835033 +GCP,us-east1,c4a-highmem-72 (-lssd),on_demand,NA,2.42352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836199 +GCP,us-east1,c4a-highmem-72 (-lssd),reserved_1y,NA,2.7972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836225 +GCP,us-east1,c4a-highmem-72 (-lssd),reserved_3y,NA,1.91016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836238 +GCP,us-east1,c4a-highmem-72 (-lssd),spot,NA,1.324944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836212 +GCP,us-east1,c4a-highmem-8 (-lssd),on_demand,NA,0.26928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830143 +GCP,us-east1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.3108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830170 +GCP,us-east1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.21224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830184 +GCP,us-east1,c4a-highmem-8 (-lssd),spot,NA,0.147216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830157 +GCP,us-east1,c4a-standard-16 (-lssd),on_demand,NA,0.51616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822810 +GCP,us-east1,c4a-standard-16 (-lssd),reserved_1y,NA,0.47376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822838 +GCP,us-east1,c4a-standard-16 (-lssd),reserved_3y,NA,0.32336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822852 +GCP,us-east1,c4a-standard-16 (-lssd),spot,NA,0.224416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822824 +GCP,us-east1,c4a-standard-32 (-lssd),on_demand,NA,1.03232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824079 +GCP,us-east1,c4a-standard-32 (-lssd),reserved_1y,NA,0.94752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824108 +GCP,us-east1,c4a-standard-32 (-lssd),reserved_3y,NA,0.64672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824122 +GCP,us-east1,c4a-standard-32 (-lssd),spot,NA,0.448832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824093 +GCP,us-east1,c4a-standard-4 (-lssd),on_demand,NA,0.12904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820358 +GCP,us-east1,c4a-standard-4 (-lssd),reserved_1y,NA,0.11844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820386 +GCP,us-east1,c4a-standard-4 (-lssd),reserved_3y,NA,0.08084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820401 +GCP,us-east1,c4a-standard-4 (-lssd),spot,NA,0.056104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820372 +GCP,us-east1,c4a-standard-48 (-lssd),on_demand,NA,1.54848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825299 +GCP,us-east1,c4a-standard-48 (-lssd),reserved_1y,NA,1.42128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825327 +GCP,us-east1,c4a-standard-48 (-lssd),reserved_3y,NA,0.97008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825341 +GCP,us-east1,c4a-standard-48 (-lssd),spot,NA,0.673248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825313 +GCP,us-east1,c4a-standard-64 (-lssd),on_demand,NA,2.06464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826520 +GCP,us-east1,c4a-standard-64 (-lssd),reserved_1y,NA,1.89504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826547 +GCP,us-east1,c4a-standard-64 (-lssd),reserved_3y,NA,1.29344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826561 +GCP,us-east1,c4a-standard-64 (-lssd),spot,NA,0.897664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826534 +GCP,us-east1,c4a-standard-72 (-lssd),on_demand,NA,2.32272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827728 +GCP,us-east1,c4a-standard-72 (-lssd),reserved_1y,NA,2.13192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827755 +GCP,us-east1,c4a-standard-72 (-lssd),reserved_3y,NA,1.45512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827768 +GCP,us-east1,c4a-standard-72 (-lssd),spot,NA,1.009872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827741 +GCP,us-east1,c4a-standard-8 (-lssd),on_demand,NA,0.25808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821603 +GCP,us-east1,c4a-standard-8 (-lssd),reserved_1y,NA,0.23688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821632 +GCP,us-east1,c4a-standard-8 (-lssd),reserved_3y,NA,0.16168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821646 +GCP,us-east1,c4a-standard-8 (-lssd),spot,NA,0.112208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821618 +GCP,us-east1,c4d-standard-16,on_demand,NA,0.54493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847955 +GCP,us-east1,c4d-standard-16,reserved_1y,NA,0.46619,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847983 +GCP,us-east1,c4d-standard-16,reserved_3y,NA,0.332991,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847997 +GCP,us-east1,c4d-standard-16,spot,NA,0.28816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847969 +GCP,us-east1,c4d-standard-2,on_demand,NA,0.067854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844053 +GCP,us-east1,c4d-standard-2,reserved_1y,NA,0.056622,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844081 +GCP,us-east1,c4d-standard-2,reserved_3y,NA,0.040444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844095 +GCP,us-east1,c4d-standard-2,spot,NA,0.035,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844067 +GCP,us-east1,c4d-standard-32,on_demand,NA,1.089861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849242 +GCP,us-east1,c4d-standard-32,reserved_1y,NA,0.932379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849270 +GCP,us-east1,c4d-standard-32,reserved_3y,NA,0.665983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849284 +GCP,us-east1,c4d-standard-32,spot,NA,0.57632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849257 +GCP,us-east1,c4d-standard-4,on_demand,NA,0.136058,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845356 +GCP,us-east1,c4d-standard-4,reserved_1y,NA,0.115446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845384 +GCP,us-east1,c4d-standard-4,reserved_3y,NA,0.082461,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845398 +GCP,us-east1,c4d-standard-4,spot,NA,0.07136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845370 +GCP,us-east1,c4d-standard-8,on_demand,NA,0.272465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846644 +GCP,us-east1,c4d-standard-8,reserved_1y,NA,0.233095,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846672 +GCP,us-east1,c4d-standard-8,reserved_3y,NA,0.166496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846685 +GCP,us-east1,c4d-standard-8,spot,NA,0.14408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846658 +GCP,us-east1,e2_highcpu_16,on_demand,NA,0.395762,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763814 +GCP,us-east1,e2_highcpu_16,reserved_1y,NA,0.24933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763842 +GCP,us-east1,e2_highcpu_16,reserved_3y,NA,0.178093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763856 +GCP,us-east1,e2_highcpu_16,spot,NA,0.158224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763828 +GCP,us-east1,e2_highcpu_32,on_demand,NA,0.791524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764905 +GCP,us-east1,e2_highcpu_32,reserved_1y,NA,0.49866,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764931 +GCP,us-east1,e2_highcpu_32,reserved_3y,NA,0.356186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764945 +GCP,us-east1,e2_highcpu_32,spot,NA,0.316448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764918 +GCP,us-east1,e2_highmem_16,on_demand,NA,0.723197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762756 +GCP,us-east1,e2_highmem_16,reserved_1y,NA,0.455614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762783 +GCP,us-east1,e2_highmem_16,reserved_3y,NA,0.325439,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762797 +GCP,us-east1,e2_highmem_16,spot,NA,0.289152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762769 +GCP,us-east1,e2_highmem_2,on_demand,NA,0.0904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759575 +GCP,us-east1,e2_highmem_2,reserved_1y,NA,0.056952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759603 +GCP,us-east1,e2_highmem_2,reserved_3y,NA,0.04068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759617 +GCP,us-east1,e2_highmem_2,spot,NA,0.036144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759589 +GCP,us-east1,e2_highmem_4,on_demand,NA,0.180799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760693 +GCP,us-east1,e2_highmem_4,reserved_1y,NA,0.113904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760720 +GCP,us-east1,e2_highmem_4,reserved_3y,NA,0.08136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760733 +GCP,us-east1,e2_highmem_4,spot,NA,0.072288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760706 +GCP,us-east1,e2_highmem_8,on_demand,NA,0.361599,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761710 +GCP,us-east1,e2_highmem_8,reserved_1y,NA,0.227807,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761737 +GCP,us-east1,e2_highmem_8,reserved_3y,NA,0.162719,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761751 +GCP,us-east1,e2_highmem_8,spot,NA,0.144576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761724 +GCP,us-east1,e2_standard_16,on_demand,NA,0.536091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768185 +GCP,us-east1,e2_standard_16,reserved_1y,NA,0.337737,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768211 +GCP,us-east1,e2_standard_16,reserved_3y,NA,0.241241,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768223 +GCP,us-east1,e2_standard_16,spot,NA,0.214336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768198 +GCP,us-east1,e2_standard_32,on_demand,NA,1.072183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769292 +GCP,us-east1,e2_standard_32,reserved_1y,NA,0.675475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769319 +GCP,us-east1,e2_standard_32,reserved_3y,NA,0.482482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769333 +GCP,us-east1,e2_standard_32,spot,NA,0.428672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769306 +GCP,us-east1,e2_standard_4,on_demand,NA,0.134023,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765950 +GCP,us-east1,e2_standard_4,reserved_1y,NA,0.084434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765978 +GCP,us-east1,e2_standard_4,reserved_3y,NA,0.06031,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765992 +GCP,us-east1,e2_standard_4,spot,NA,0.053584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765964 +GCP,us-east1,e2_standard_8,on_demand,NA,0.268046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767169 +GCP,us-east1,e2_standard_8,reserved_1y,NA,0.168869,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767198 +GCP,us-east1,e2_standard_8,reserved_3y,NA,0.120621,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767211 +GCP,us-east1,e2_standard_8,spot,NA,0.107168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767183 +GCP,us-east1,g2-standard-12,on_demand,NA,0.440376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786496 +GCP,us-east1,g2-standard-12,reserved_1y,NA,0.277437,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786524 +GCP,us-east1,g2-standard-12,reserved_3y,NA,0.198169,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786537 +GCP,us-east1,g2-standard-12,spot,NA,0.176208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786510 +GCP,us-east1,g2-standard-16,on_demand,NA,0.587168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787534 +GCP,us-east1,g2-standard-16,reserved_1y,NA,0.369916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787562 +GCP,us-east1,g2-standard-16,reserved_3y,NA,0.264226,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787576 +GCP,us-east1,g2-standard-16,spot,NA,0.234944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787548 +GCP,us-east1,g2-standard-24,on_demand,NA,0.880752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788624 +GCP,us-east1,g2-standard-24,reserved_1y,NA,0.554874,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788652 +GCP,us-east1,g2-standard-24,reserved_3y,NA,0.396338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788666 +GCP,us-east1,g2-standard-24,spot,NA,0.352416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788638 +GCP,us-east1,g2-standard-32,on_demand,NA,1.174336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789659 +GCP,us-east1,g2-standard-32,reserved_1y,NA,0.739832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789686 +GCP,us-east1,g2-standard-32,reserved_3y,NA,0.528451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789700 +GCP,us-east1,g2-standard-32,spot,NA,0.469888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789673 +GCP,us-east1,g2-standard-4,on_demand,NA,0.146792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784413 +GCP,us-east1,g2-standard-4,reserved_1y,NA,0.092479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784442 +GCP,us-east1,g2-standard-4,reserved_3y,NA,0.066056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784456 +GCP,us-east1,g2-standard-4,spot,NA,0.058736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784428 +GCP,us-east1,g2-standard-48,on_demand,NA,1.761504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790700 +GCP,us-east1,g2-standard-48,reserved_1y,NA,1.109748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790727 +GCP,us-east1,g2-standard-48,reserved_3y,NA,0.792677,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790741 +GCP,us-east1,g2-standard-48,spot,NA,0.704832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790714 +GCP,us-east1,g2-standard-8,on_demand,NA,0.293584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785465 +GCP,us-east1,g2-standard-8,reserved_1y,NA,0.184958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785493 +GCP,us-east1,g2-standard-8,reserved_3y,NA,0.132113,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785507 +GCP,us-east1,g2-standard-8,spot,NA,0.117472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785479 +GCP,us-east1,g2-standard-96,on_demand,NA,3.523008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791747 +GCP,us-east1,g2-standard-96,reserved_1y,NA,2.219495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791776 +GCP,us-east1,g2-standard-96,reserved_3y,NA,1.585354,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791790 +GCP,us-east1,g2-standard-96,spot,NA,1.409664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791761 +GCP,us-east1,n1-highcpu-16,on_demand,NA,0.566789,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690628 +GCP,us-east1,n1-highcpu-16,spot,NA,0.144722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690642 +GCP,us-east1,n1-highcpu-32,on_demand,NA,1.133578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691494 +GCP,us-east1,n1-highcpu-32,spot,NA,0.289443,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691508 +GCP,us-east1,n1-highcpu-64,on_demand,NA,2.267155,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692410 +GCP,us-east1,n1-highcpu-64,spot,NA,0.578886,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692423 +GCP,us-east1,n1-highcpu-96,on_demand,NA,3.400733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693206 +GCP,us-east1,n1-highcpu-96,spot,NA,0.86833,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693221 +GCP,us-east1,n1-highmem-16,on_demand,NA,0.946424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687107 +GCP,us-east1,n1-highmem-16,spot,NA,0.237816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687121 +GCP,us-east1,n1-highmem-32,on_demand,NA,1.892848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687989 +GCP,us-east1,n1-highmem-32,spot,NA,0.475632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688004 +GCP,us-east1,n1-highmem-4,on_demand,NA,0.236606,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685359 +GCP,us-east1,n1-highmem-4,spot,NA,0.059454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685373 +GCP,us-east1,n1-highmem-64,on_demand,NA,3.785696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688809 +GCP,us-east1,n1-highmem-64,spot,NA,0.951264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688823 +GCP,us-east1,n1-highmem-8,on_demand,NA,0.473212,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686192 +GCP,us-east1,n1-highmem-8,spot,NA,0.118908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686205 +GCP,us-east1,n1-highmem-96,on_demand,NA,5.678544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689739 +GCP,us-east1,n1-highmem-96,spot,NA,1.426896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689754 +GCP,us-east1,n1-standard-16,on_demand,NA,0.759996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681380 +GCP,us-east1,n1-standard-16,spot,NA,0.1921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681394 +GCP,us-east1,n1-standard-32,on_demand,NA,1.519992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682314 +GCP,us-east1,n1-standard-32,spot,NA,0.3842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682330 +GCP,us-east1,n1-standard-4,on_demand,NA,0.189999,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679684 +GCP,us-east1,n1-standard-4,spot,NA,0.048025,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679698 +GCP,us-east1,n1-standard-64,on_demand,NA,3.039984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683264 +GCP,us-east1,n1-standard-64,spot,NA,0.7684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683277 +GCP,us-east1,n1-standard-8,on_demand,NA,0.379998,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680589 +GCP,us-east1,n1-standard-8,spot,NA,0.09605,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680603 +GCP,us-east1,n1-standard-96,on_demand,NA,4.559976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684424 +GCP,us-east1,n1-standard-96,spot,NA,1.1526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684438 +GCP,us-east1,n2-highcpu-16,on_demand,NA,0.573568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710908 +GCP,us-east1,n2-highcpu-16,reserved_1y,NA,0.361344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710944 +GCP,us-east1,n2-highcpu-16,reserved_3y,NA,0.258112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710958 +GCP,us-east1,n2-highcpu-16,spot,NA,0.179216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710929 +GCP,us-east1,n2-highcpu-32,on_demand,NA,1.147136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712024 +GCP,us-east1,n2-highcpu-32,reserved_1y,NA,0.722688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712051 +GCP,us-east1,n2-highcpu-32,reserved_3y,NA,0.516224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712065 +GCP,us-east1,n2-highcpu-32,spot,NA,0.358432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712037 +GCP,us-east1,n2-highcpu-48,on_demand,NA,1.720704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713117 +GCP,us-east1,n2-highcpu-48,reserved_1y,NA,1.084032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713144 +GCP,us-east1,n2-highcpu-48,reserved_3y,NA,0.774336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713157 +GCP,us-east1,n2-highcpu-48,spot,NA,0.537648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713130 +GCP,us-east1,n2-highcpu-64,on_demand,NA,2.294272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714231 +GCP,us-east1,n2-highcpu-64,reserved_1y,NA,1.445376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714258 +GCP,us-east1,n2-highcpu-64,reserved_3y,NA,1.032448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714271 +GCP,us-east1,n2-highcpu-64,spot,NA,0.716864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714244 +GCP,us-east1,n2-highcpu-80,on_demand,NA,2.86784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715320 +GCP,us-east1,n2-highcpu-80,reserved_1y,NA,1.80672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715349 +GCP,us-east1,n2-highcpu-80,reserved_3y,NA,1.29056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715363 +GCP,us-east1,n2-highcpu-80,spot,NA,0.89608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715336 +GCP,us-east1,n2-highmem-16,on_demand,NA,1.048112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705314 +GCP,us-east1,n2-highmem-16,reserved_1y,NA,0.660272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705343 +GCP,us-east1,n2-highmem-16,reserved_3y,NA,0.471696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705357 +GCP,us-east1,n2-highmem-16,spot,NA,0.327168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705329 +GCP,us-east1,n2-highmem-2,on_demand,NA,0.131014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701973 +GCP,us-east1,n2-highmem-2,reserved_1y,NA,0.082534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702001 +GCP,us-east1,n2-highmem-2,reserved_3y,NA,0.058962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702015 +GCP,us-east1,n2-highmem-2,spot,NA,0.040896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701987 +GCP,us-east1,n2-highmem-32,on_demand,NA,2.096224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706449 +GCP,us-east1,n2-highmem-32,reserved_1y,NA,1.320544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706474 +GCP,us-east1,n2-highmem-32,reserved_3y,NA,0.943392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706488 +GCP,us-east1,n2-highmem-32,spot,NA,0.654336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706460 +GCP,us-east1,n2-highmem-4,on_demand,NA,0.262028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703083 +GCP,us-east1,n2-highmem-4,reserved_1y,NA,0.165068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703110 +GCP,us-east1,n2-highmem-4,reserved_3y,NA,0.117924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703123 +GCP,us-east1,n2-highmem-4,spot,NA,0.081792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703096 +GCP,us-east1,n2-highmem-48,on_demand,NA,3.144336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707566 +GCP,us-east1,n2-highmem-48,reserved_1y,NA,1.980816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707607 +GCP,us-east1,n2-highmem-48,reserved_3y,NA,1.415088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707621 +GCP,us-east1,n2-highmem-48,spot,NA,0.981504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707581 +GCP,us-east1,n2-highmem-64,on_demand,NA,4.192448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708679 +GCP,us-east1,n2-highmem-64,reserved_1y,NA,2.641088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708708 +GCP,us-east1,n2-highmem-64,reserved_3y,NA,1.886784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708722 +GCP,us-east1,n2-highmem-64,spot,NA,1.308672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708694 +GCP,us-east1,n2-highmem-8,on_demand,NA,0.524056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704230 +GCP,us-east1,n2-highmem-8,reserved_1y,NA,0.330136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704258 +GCP,us-east1,n2-highmem-8,reserved_3y,NA,0.235848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704272 +GCP,us-east1,n2-highmem-8,spot,NA,0.163584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704244 +GCP,us-east1,n2-highmem-80,on_demand,NA,5.24056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709775 +GCP,us-east1,n2-highmem-80,reserved_1y,NA,3.30136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709803 +GCP,us-east1,n2-highmem-80,reserved_3y,NA,2.35848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709817 +GCP,us-east1,n2-highmem-80,spot,NA,1.63584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709789 +GCP,us-east1,n2-standard-16,on_demand,NA,0.776944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696364 +GCP,us-east1,n2-standard-16,reserved_1y,NA,0.489456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696391 +GCP,us-east1,n2-standard-16,reserved_3y,NA,0.349648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696405 +GCP,us-east1,n2-standard-16,spot,NA,0.242624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696377 +GCP,us-east1,n2-standard-32,on_demand,NA,1.553888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697465 +GCP,us-east1,n2-standard-32,reserved_1y,NA,0.978912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697494 +GCP,us-east1,n2-standard-32,reserved_3y,NA,0.699296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697508 +GCP,us-east1,n2-standard-32,spot,NA,0.485248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697480 +GCP,us-east1,n2-standard-4,on_demand,NA,0.194236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694079 +GCP,us-east1,n2-standard-4,reserved_1y,NA,0.122364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694107 +GCP,us-east1,n2-standard-4,reserved_3y,NA,0.087412,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694122 +GCP,us-east1,n2-standard-4,spot,NA,0.060656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694093 +GCP,us-east1,n2-standard-48,on_demand,NA,2.330832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698573 +GCP,us-east1,n2-standard-48,reserved_1y,NA,1.468368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698601 +GCP,us-east1,n2-standard-48,reserved_3y,NA,1.048944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698672 +GCP,us-east1,n2-standard-48,spot,NA,0.727872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698587 +GCP,us-east1,n2-standard-64,on_demand,NA,3.107776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699742 +GCP,us-east1,n2-standard-64,reserved_1y,NA,1.957824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699770 +GCP,us-east1,n2-standard-64,reserved_3y,NA,1.398592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699784 +GCP,us-east1,n2-standard-64,spot,NA,0.970496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699756 +GCP,us-east1,n2-standard-8,on_demand,NA,0.388472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695190 +GCP,us-east1,n2-standard-8,reserved_1y,NA,0.244728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695219 +GCP,us-east1,n2-standard-8,reserved_3y,NA,0.174824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695233 +GCP,us-east1,n2-standard-8,spot,NA,0.121312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695205 +GCP,us-east1,n2-standard-80,on_demand,NA,3.88472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700893 +GCP,us-east1,n2-standard-80,reserved_1y,NA,2.44728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700921 +GCP,us-east1,n2-standard-80,reserved_3y,NA,1.74824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700935 +GCP,us-east1,n2-standard-80,spot,NA,1.21312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700907 +GCP,us-east1,n2d-highcpu-128,on_demand,NA,3.638208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752302 +GCP,us-east1,n2d-highcpu-128,reserved_1y,NA,2.514944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752331 +GCP,us-east1,n2d-highcpu-128,reserved_3y,NA,1.79648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752344 +GCP,us-east1,n2d-highcpu-128,spot,NA,0.828672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752317 +GCP,us-east1,n2d-highcpu-16,on_demand,NA,0.454776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746003 +GCP,us-east1,n2d-highcpu-16,reserved_1y,NA,0.314368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746030 +GCP,us-east1,n2d-highcpu-16,reserved_3y,NA,0.22456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746043 +GCP,us-east1,n2d-highcpu-16,spot,NA,0.103584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746016 +GCP,us-east1,n2d-highcpu-224,on_demand,NA,6.366864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753331 +GCP,us-east1,n2d-highcpu-224,reserved_1y,NA,4.401152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753359 +GCP,us-east1,n2d-highcpu-224,reserved_3y,NA,3.14384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753372 +GCP,us-east1,n2d-highcpu-224,spot,NA,1.450176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753345 +GCP,us-east1,n2d-highcpu-32,on_demand,NA,0.909552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747028 +GCP,us-east1,n2d-highcpu-32,reserved_1y,NA,0.628736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747055 +GCP,us-east1,n2d-highcpu-32,reserved_3y,NA,0.44912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747068 +GCP,us-east1,n2d-highcpu-32,spot,NA,0.207168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747041 +GCP,us-east1,n2d-highcpu-48,on_demand,NA,1.364328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748112 +GCP,us-east1,n2d-highcpu-48,reserved_1y,NA,0.943104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748140 +GCP,us-east1,n2d-highcpu-48,reserved_3y,NA,0.67368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748154 +GCP,us-east1,n2d-highcpu-48,spot,NA,0.310752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748126 +GCP,us-east1,n2d-highcpu-64,on_demand,NA,1.819104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749151 +GCP,us-east1,n2d-highcpu-64,reserved_1y,NA,1.257472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749180 +GCP,us-east1,n2d-highcpu-64,reserved_3y,NA,0.89824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749194 +GCP,us-east1,n2d-highcpu-64,spot,NA,0.414336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749165 +GCP,us-east1,n2d-highcpu-80,on_demand,NA,2.27388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750194 +GCP,us-east1,n2d-highcpu-80,reserved_1y,NA,1.57184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750222 +GCP,us-east1,n2d-highcpu-80,reserved_3y,NA,1.1228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750236 +GCP,us-east1,n2d-highcpu-80,spot,NA,0.51792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750208 +GCP,us-east1,n2d-highcpu-96,on_demand,NA,2.728656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751248 +GCP,us-east1,n2d-highcpu-96,reserved_1y,NA,1.886208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751276 +GCP,us-east1,n2d-highcpu-96,reserved_3y,NA,1.34736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751290 +GCP,us-east1,n2d-highcpu-96,spot,NA,0.621504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751262 +GCP,us-east1,n2d-highmem-16,on_demand,NA,0.557984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739696 +GCP,us-east1,n2d-highmem-16,reserved_1y,NA,0.574432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739724 +GCP,us-east1,n2d-highmem-16,reserved_3y,NA,0.410368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739739 +GCP,us-east1,n2d-highmem-16,spot,NA,0.189152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739710 +GCP,us-east1,n2d-highmem-2,on_demand,NA,0.069748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736506 +GCP,us-east1,n2d-highmem-2,reserved_1y,NA,0.071804,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736534 +GCP,us-east1,n2d-highmem-2,reserved_3y,NA,0.051296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736548 +GCP,us-east1,n2d-highmem-2,spot,NA,0.023644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736520 +GCP,us-east1,n2d-highmem-32,on_demand,NA,1.115968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740758 +GCP,us-east1,n2d-highmem-32,reserved_1y,NA,1.148864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740785 +GCP,us-east1,n2d-highmem-32,reserved_3y,NA,0.820736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740799 +GCP,us-east1,n2d-highmem-32,spot,NA,0.378304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740772 +GCP,us-east1,n2d-highmem-4,on_demand,NA,0.139496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737537 +GCP,us-east1,n2d-highmem-4,reserved_1y,NA,0.143608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737564 +GCP,us-east1,n2d-highmem-4,reserved_3y,NA,0.102592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737576 +GCP,us-east1,n2d-highmem-4,spot,NA,0.047288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737551 +GCP,us-east1,n2d-highmem-48,on_demand,NA,1.673952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741768 +GCP,us-east1,n2d-highmem-48,reserved_1y,NA,1.723296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741794 +GCP,us-east1,n2d-highmem-48,reserved_3y,NA,1.231104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741807 +GCP,us-east1,n2d-highmem-48,spot,NA,0.567456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741781 +GCP,us-east1,n2d-highmem-64,on_demand,NA,2.231936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742849 +GCP,us-east1,n2d-highmem-64,reserved_1y,NA,2.297728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742878 +GCP,us-east1,n2d-highmem-64,reserved_3y,NA,1.641472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742892 +GCP,us-east1,n2d-highmem-64,spot,NA,0.756608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742864 +GCP,us-east1,n2d-highmem-8,on_demand,NA,0.278992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738629 +GCP,us-east1,n2d-highmem-8,reserved_1y,NA,0.287216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738657 +GCP,us-east1,n2d-highmem-8,reserved_3y,NA,0.205184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738670 +GCP,us-east1,n2d-highmem-8,spot,NA,0.094576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738643 +GCP,us-east1,n2d-highmem-80,on_demand,NA,2.78992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743942 +GCP,us-east1,n2d-highmem-80,reserved_1y,NA,2.87216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743969 +GCP,us-east1,n2d-highmem-80,reserved_3y,NA,2.05184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743982 +GCP,us-east1,n2d-highmem-80,spot,NA,0.94576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743956 +GCP,us-east1,n2d-highmem-96,on_demand,NA,3.347904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744978 +GCP,us-east1,n2d-highmem-96,reserved_1y,NA,3.446592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745006 +GCP,us-east1,n2d-highmem-96,reserved_3y,NA,2.462208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745020 +GCP,us-east1,n2d-highmem-96,spot,NA,1.134912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744992 +GCP,us-east1,n2d-standard-128,on_demand,NA,3.992064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734409 +GCP,us-east1,n2d-standard-128,reserved_1y,NA,3.406592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734437 +GCP,us-east1,n2d-standard-128,reserved_3y,NA,2.433536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734451 +GCP,us-east1,n2d-standard-128,spot,NA,1.122048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734423 +GCP,us-east1,n2d-standard-16,on_demand,NA,0.499008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728095 +GCP,us-east1,n2d-standard-16,reserved_1y,NA,0.425824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728123 +GCP,us-east1,n2d-standard-16,reserved_3y,NA,0.304192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728137 +GCP,us-east1,n2d-standard-16,spot,NA,0.140256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728110 +GCP,us-east1,n2d-standard-224,on_demand,NA,6.986112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735455 +GCP,us-east1,n2d-standard-224,reserved_1y,NA,5.961536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735483 +GCP,us-east1,n2d-standard-224,reserved_3y,NA,4.258688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735497 +GCP,us-east1,n2d-standard-224,spot,NA,1.963584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735469 +GCP,us-east1,n2d-standard-32,on_demand,NA,0.998016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729133 +GCP,us-east1,n2d-standard-32,reserved_1y,NA,0.851648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729160 +GCP,us-east1,n2d-standard-32,reserved_3y,NA,0.608384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729174 +GCP,us-east1,n2d-standard-32,spot,NA,0.280512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729146 +GCP,us-east1,n2d-standard-4,on_demand,NA,0.124752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725962 +GCP,us-east1,n2d-standard-4,reserved_1y,NA,0.106456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725991 +GCP,us-east1,n2d-standard-4,reserved_3y,NA,0.076048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726005 +GCP,us-east1,n2d-standard-4,spot,NA,0.035064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725977 +GCP,us-east1,n2d-standard-48,on_demand,NA,1.497024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730163 +GCP,us-east1,n2d-standard-48,reserved_1y,NA,1.277472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730190 +GCP,us-east1,n2d-standard-48,reserved_3y,NA,0.912576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730204 +GCP,us-east1,n2d-standard-48,spot,NA,0.420768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730177 +GCP,us-east1,n2d-standard-64,on_demand,NA,1.996032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731243 +GCP,us-east1,n2d-standard-64,reserved_1y,NA,1.703296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731270 +GCP,us-east1,n2d-standard-64,reserved_3y,NA,1.216768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731285 +GCP,us-east1,n2d-standard-64,spot,NA,0.561024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731256 +GCP,us-east1,n2d-standard-8,on_demand,NA,0.249504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727034 +GCP,us-east1,n2d-standard-8,reserved_1y,NA,0.212912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727063 +GCP,us-east1,n2d-standard-8,reserved_3y,NA,0.152096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727077 +GCP,us-east1,n2d-standard-8,spot,NA,0.070128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727049 +GCP,us-east1,n2d-standard-80,on_demand,NA,2.49504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732312 +GCP,us-east1,n2d-standard-80,reserved_1y,NA,2.12912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732340 +GCP,us-east1,n2d-standard-80,reserved_3y,NA,1.52096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732354 +GCP,us-east1,n2d-standard-80,spot,NA,0.70128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732326 +GCP,us-east1,n2d-standard-96,on_demand,NA,2.994048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733346 +GCP,us-east1,n2d-standard-96,reserved_1y,NA,2.554944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733374 +GCP,us-east1,n2d-standard-96,reserved_3y,NA,1.825152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733387 +GCP,us-east1,n2d-standard-96,spot,NA,0.841536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733360 +GCP,us-east1,n4-standard-16,on_demand,NA,0.07256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757486 +GCP,us-east1,n4-standard-16,reserved_1y,NA,0.45712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757514 +GCP,us-east1,n4-standard-16,reserved_3y,NA,0.326528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757527 +GCP,us-east1,n4-standard-16,spot,NA,0.244864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757500 +GCP,us-east1,n4-standard-2,on_demand,NA,0.00907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754358 +GCP,us-east1,n4-standard-2,reserved_1y,NA,0.05714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754386 +GCP,us-east1,n4-standard-2,reserved_3y,NA,0.040816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754400 +GCP,us-east1,n4-standard-2,spot,NA,0.030608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754372 +GCP,us-east1,n4-standard-32,on_demand,NA,0.14512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758526 +GCP,us-east1,n4-standard-32,reserved_1y,NA,0.91424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758553 +GCP,us-east1,n4-standard-32,reserved_3y,NA,0.653056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758567 +GCP,us-east1,n4-standard-32,spot,NA,0.489728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758539 +GCP,us-east1,n4-standard-4,on_demand,NA,0.01814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755410 +GCP,us-east1,n4-standard-4,reserved_1y,NA,0.11428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755438 +GCP,us-east1,n4-standard-4,reserved_3y,NA,0.081632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755451 +GCP,us-east1,n4-standard-4,spot,NA,0.061216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755424 +GCP,us-east1,n4-standard-8,on_demand,NA,0.03628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756460 +GCP,us-east1,n4-standard-8,reserved_1y,NA,0.22856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756488 +GCP,us-east1,n4-standard-8,reserved_3y,NA,0.163264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756502 +GCP,us-east1,n4-standard-8,spot,NA,0.122432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756474 +GCP,us-east4,a2-highgpu-1g,on_demand,NA,0.832795,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770429 +GCP,us-east4,a2-highgpu-1g,reserved_1y,NA,0.524633,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770456 +GCP,us-east4,a2-highgpu-1g,reserved_3y,NA,0.291502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770469 +GCP,us-east4,a2-highgpu-1g,spot,NA,0.330085,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770442 +GCP,us-east4,a2-highgpu-2g,on_demand,NA,1.66559,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771463 +GCP,us-east4,a2-highgpu-2g,reserved_1y,NA,1.049267,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771491 +GCP,us-east4,a2-highgpu-2g,reserved_3y,NA,0.583004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771504 +GCP,us-east4,a2-highgpu-2g,spot,NA,0.66017,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771477 +GCP,us-east4,a2-highgpu-4g,on_demand,NA,3.33118,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772603 +GCP,us-east4,a2-highgpu-4g,reserved_1y,NA,2.098534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772630 +GCP,us-east4,a2-highgpu-4g,reserved_3y,NA,1.166007,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772643 +GCP,us-east4,a2-highgpu-4g,spot,NA,1.32034,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772617 +GCP,us-east4,a2-highgpu-8g,on_demand,NA,6.66236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773715 +GCP,us-east4,a2-highgpu-8g,reserved_1y,NA,4.197067,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773742 +GCP,us-east4,a2-highgpu-8g,reserved_3y,NA,2.332015,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773756 +GCP,us-east4,a2-highgpu-8g,spot,NA,2.64068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773729 +GCP,us-east4,a2-megagpu-16g,on_demand,NA,9.90664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774835 +GCP,us-east4,a2-megagpu-16g,reserved_1y,NA,6.240739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774863 +GCP,us-east4,a2-megagpu-16g,reserved_3y,NA,3.467698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774877 +GCP,us-east4,a2-megagpu-16g,spot,NA,3.91432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774849 +GCP,us-east4,a2-ultragpu-1g,on_demand,NA,1.23833,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775937 +GCP,us-east4,a2-ultragpu-1g,reserved_1y,NA,0.780092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775965 +GCP,us-east4,a2-ultragpu-1g,reserved_3y,NA,0.433462,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775979 +GCP,us-east4,a2-ultragpu-1g,spot,NA,0.48929,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775951 +GCP,us-east4,a2-ultragpu-2g,on_demand,NA,2.47666,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777029 +GCP,us-east4,a2-ultragpu-2g,reserved_1y,NA,1.560185,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777058 +GCP,us-east4,a2-ultragpu-2g,reserved_3y,NA,0.866924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777072 +GCP,us-east4,a2-ultragpu-2g,spot,NA,0.97858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777043 +GCP,us-east4,a2-ultragpu-4g,on_demand,NA,4.95332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778097 +GCP,us-east4,a2-ultragpu-4g,reserved_1y,NA,3.12037,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778124 +GCP,us-east4,a2-ultragpu-4g,reserved_3y,NA,1.733849,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778138 +GCP,us-east4,a2-ultragpu-4g,spot,NA,1.95716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778110 +GCP,us-east4,a2-ultragpu-8g,on_demand,NA,9.90664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779146 +GCP,us-east4,a2-ultragpu-8g,reserved_1y,NA,6.240739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779174 +GCP,us-east4,a2-ultragpu-8g,reserved_3y,NA,3.467698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779188 +GCP,us-east4,a2-ultragpu-8g,spot,NA,3.91432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779160 +GCP,us-east4,a3-highgpu-1g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780248 +GCP,us-east4,a3-highgpu-1g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780277 +GCP,us-east4,a3-highgpu-1g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780291 +GCP,us-east4,a3-highgpu-1g,spot,NA,0.21294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780262 +GCP,us-east4,a3-highgpu-2g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781306 +GCP,us-east4,a3-highgpu-2g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781334 +GCP,us-east4,a3-highgpu-2g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781348 +GCP,us-east4,a3-highgpu-2g,spot,NA,0.21294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781320 +GCP,us-east4,a3-highgpu-4g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782393 +GCP,us-east4,a3-highgpu-4g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782421 +GCP,us-east4,a3-highgpu-4g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782435 +GCP,us-east4,a3-highgpu-4g,spot,NA,0.21294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782407 +GCP,us-east4,a3-highgpu-8g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783475 +GCP,us-east4,a3-highgpu-8g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783502 +GCP,us-east4,a3-highgpu-8g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783516 +GCP,us-east4,a3-highgpu-8g,spot,NA,0.21294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783488 +GCP,us-east4,c2-standard-16,on_demand,NA,0.818048,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721133 +GCP,us-east4,c2-standard-16,reserved_1y,NA,0.515408,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721178 +GCP,us-east4,c2-standard-16,reserved_3y,NA,0.368112,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721200 +GCP,us-east4,c2-standard-16,spot,NA,0.240992,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721155 +GCP,us-east4,c2-standard-30,on_demand,NA,1.53384,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722803 +GCP,us-east4,c2-standard-30,reserved_1y,NA,0.96639,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722848 +GCP,us-east4,c2-standard-30,reserved_3y,NA,0.69021,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722871 +GCP,us-east4,c2-standard-30,spot,NA,0.45186,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722825 +GCP,us-east4,c2-standard-4,on_demand,NA,0.204512,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717519 +GCP,us-east4,c2-standard-4,reserved_1y,NA,0.128852,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717566 +GCP,us-east4,c2-standard-4,reserved_3y,NA,0.092028,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717589 +GCP,us-east4,c2-standard-4,spot,NA,0.060248,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717542 +GCP,us-east4,c2-standard-60,on_demand,NA,3.06768,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724544 +GCP,us-east4,c2-standard-60,reserved_1y,NA,1.93278,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724590 +GCP,us-east4,c2-standard-60,reserved_3y,NA,1.38042,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724613 +GCP,us-east4,c2-standard-60,spot,NA,0.90372,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724567 +GCP,us-east4,c2-standard-8,on_demand,NA,0.409024,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719383 +GCP,us-east4,c2-standard-8,reserved_1y,NA,0.257704,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719431 +GCP,us-east4,c2-standard-8,reserved_3y,NA,0.184056,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719454 +GCP,us-east4,c2-standard-8,spot,NA,0.120496,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719407 +GCP,us-east4,c3-highmem-22,on_demand,NA,1.455388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800409 +GCP,us-east4,c3-highmem-22,reserved_1y,NA,0.916916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800435 +GCP,us-east4,c3-highmem-22,reserved_3y,NA,0.654918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800448 +GCP,us-east4,c3-highmem-22,spot,NA,0.48906,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800422 +GCP,us-east4,c3-highmem-4,on_demand,NA,0.264616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798314 +GCP,us-east4,c3-highmem-4,reserved_1y,NA,0.166712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798342 +GCP,us-east4,c3-highmem-4,reserved_3y,NA,0.119076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798357 +GCP,us-east4,c3-highmem-4,spot,NA,0.08892,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798328 +GCP,us-east4,c3-highmem-44,on_demand,NA,2.910776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801420 +GCP,us-east4,c3-highmem-44,reserved_1y,NA,1.833832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801447 +GCP,us-east4,c3-highmem-44,reserved_3y,NA,1.309836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801460 +GCP,us-east4,c3-highmem-44,spot,NA,0.97812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801433 +GCP,us-east4,c3-highmem-8,on_demand,NA,0.529232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799373 +GCP,us-east4,c3-highmem-8,reserved_1y,NA,0.333424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799400 +GCP,us-east4,c3-highmem-8,reserved_3y,NA,0.238152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799414 +GCP,us-east4,c3-highmem-8,spot,NA,0.17784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799387 +GCP,us-east4,c3-highmem-88,on_demand,NA,5.821552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802440 +GCP,us-east4,c3-highmem-88,reserved_1y,NA,3.667664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802469 +GCP,us-east4,c3-highmem-88,reserved_3y,NA,2.619672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802482 +GCP,us-east4,c3-highmem-88,spot,NA,1.95624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802455 +GCP,us-east4,c3-standard-22 (-lssd),on_demand,NA,1.108844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795094 +GCP,us-east4,c3-standard-22 (-lssd),reserved_1y,NA,0.698588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795124 +GCP,us-east4,c3-standard-22 (-lssd),reserved_3y,NA,0.498982,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795137 +GCP,us-east4,c3-standard-22 (-lssd),spot,NA,0.36542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795110 +GCP,us-east4,c3-standard-4 (-lssd),on_demand,NA,0.201608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792983 +GCP,us-east4,c3-standard-4 (-lssd),reserved_1y,NA,0.127016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793011 +GCP,us-east4,c3-standard-4 (-lssd),reserved_3y,NA,0.090724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793026 +GCP,us-east4,c3-standard-4 (-lssd),spot,NA,0.06644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792997 +GCP,us-east4,c3-standard-44 (-lssd),on_demand,NA,2.217688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796209 +GCP,us-east4,c3-standard-44 (-lssd),reserved_1y,NA,1.397176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796237 +GCP,us-east4,c3-standard-44 (-lssd),reserved_3y,NA,0.997964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796250 +GCP,us-east4,c3-standard-44 (-lssd),spot,NA,0.73084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796223 +GCP,us-east4,c3-standard-8 (-lssd),on_demand,NA,0.403216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794047 +GCP,us-east4,c3-standard-8 (-lssd),reserved_1y,NA,0.254032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794074 +GCP,us-east4,c3-standard-8 (-lssd),reserved_3y,NA,0.181448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794088 +GCP,us-east4,c3-standard-8 (-lssd),spot,NA,0.13288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794061 +GCP,us-east4,c3-standard-88 (-lssd),on_demand,NA,4.435376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797259 +GCP,us-east4,c3-standard-88 (-lssd),reserved_1y,NA,2.794352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797287 +GCP,us-east4,c3-standard-88 (-lssd),reserved_3y,NA,1.995928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797302 +GCP,us-east4,c3-standard-88 (-lssd),spot,NA,1.46168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797273 +GCP,us-east4,c3d-highmem-16 (-lssd),on_demand,NA,0.523683,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814036 +GCP,us-east4,c3d-highmem-16 (-lssd),reserved_1y,NA,0.617216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814064 +GCP,us-east4,c3d-highmem-16 (-lssd),reserved_3y,NA,0.440816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814078 +GCP,us-east4,c3d-highmem-16 (-lssd),spot,NA,0.319744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814050 +GCP,us-east4,c3d-highmem-180 (-lssd),on_demand,NA,5.891436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818383 +GCP,us-east4,c3d-highmem-180 (-lssd),reserved_1y,NA,6.94368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818410 +GCP,us-east4,c3d-highmem-180 (-lssd),reserved_3y,NA,4.95918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818424 +GCP,us-east4,c3d-highmem-180 (-lssd),spot,NA,3.59712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818397 +GCP,us-east4,c3d-highmem-30 (-lssd),on_demand,NA,0.981906,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815258 +GCP,us-east4,c3d-highmem-30 (-lssd),reserved_1y,NA,1.15728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815286 +GCP,us-east4,c3d-highmem-30 (-lssd),reserved_3y,NA,0.82653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815300 +GCP,us-east4,c3d-highmem-30 (-lssd),spot,NA,0.59952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815272 +GCP,us-east4,c3d-highmem-360 (-lssd),on_demand,NA,11.782872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819419 +GCP,us-east4,c3d-highmem-360 (-lssd),reserved_1y,NA,13.88736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819447 +GCP,us-east4,c3d-highmem-360 (-lssd),reserved_3y,NA,9.91836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819461 +GCP,us-east4,c3d-highmem-360 (-lssd),spot,NA,7.19424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819433 +GCP,us-east4,c3d-highmem-4 (-lssd),on_demand,NA,0.130921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811940 +GCP,us-east4,c3d-highmem-4 (-lssd),reserved_1y,NA,0.154304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811970 +GCP,us-east4,c3d-highmem-4 (-lssd),reserved_3y,NA,0.110204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811984 +GCP,us-east4,c3d-highmem-4 (-lssd),spot,NA,0.079936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811954 +GCP,us-east4,c3d-highmem-60 (-lssd),on_demand,NA,1.963812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816317 +GCP,us-east4,c3d-highmem-60 (-lssd),reserved_1y,NA,2.31456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816345 +GCP,us-east4,c3d-highmem-60 (-lssd),reserved_3y,NA,1.65306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816359 +GCP,us-east4,c3d-highmem-60 (-lssd),spot,NA,1.19904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816331 +GCP,us-east4,c3d-highmem-8 (-lssd),on_demand,NA,0.261842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812988 +GCP,us-east4,c3d-highmem-8 (-lssd),reserved_1y,NA,0.308608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813015 +GCP,us-east4,c3d-highmem-8 (-lssd),reserved_3y,NA,0.220408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813029 +GCP,us-east4,c3d-highmem-8 (-lssd),spot,NA,0.159872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813001 +GCP,us-east4,c3d-highmem-90 (-lssd),on_demand,NA,2.945718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817351 +GCP,us-east4,c3d-highmem-90 (-lssd),reserved_1y,NA,3.47184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817380 +GCP,us-east4,c3d-highmem-90 (-lssd),reserved_3y,NA,2.47959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817393 +GCP,us-east4,c3d-highmem-90 (-lssd),spot,NA,1.79856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817365 +GCP,us-east4,c3d-standard-16 (-lssd),on_demand,NA,0.498346,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805569 +GCP,us-east4,c3d-standard-16 (-lssd),reserved_1y,NA,0.4576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805595 +GCP,us-east4,c3d-standard-16 (-lssd),reserved_3y,NA,0.326832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805608 +GCP,us-east4,c3d-standard-16 (-lssd),spot,NA,0.236992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805582 +GCP,us-east4,c3d-standard-180 (-lssd),on_demand,NA,5.606388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809820 +GCP,us-east4,c3d-standard-180 (-lssd),reserved_1y,NA,5.148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809850 +GCP,us-east4,c3d-standard-180 (-lssd),reserved_3y,NA,3.67686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809864 +GCP,us-east4,c3d-standard-180 (-lssd),spot,NA,2.66616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809836 +GCP,us-east4,c3d-standard-30 (-lssd),on_demand,NA,0.934398,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806630 +GCP,us-east4,c3d-standard-30 (-lssd),reserved_1y,NA,0.858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806659 +GCP,us-east4,c3d-standard-30 (-lssd),reserved_3y,NA,0.61281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806672 +GCP,us-east4,c3d-standard-30 (-lssd),spot,NA,0.44436,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806644 +GCP,us-east4,c3d-standard-360 (-lssd),on_demand,NA,11.212776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810873 +GCP,us-east4,c3d-standard-360 (-lssd),reserved_1y,NA,10.296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810901 +GCP,us-east4,c3d-standard-360 (-lssd),reserved_3y,NA,7.35372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810921 +GCP,us-east4,c3d-standard-360 (-lssd),spot,NA,5.33232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810887 +GCP,us-east4,c3d-standard-4 (-lssd),on_demand,NA,0.124586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803499 +GCP,us-east4,c3d-standard-4 (-lssd),reserved_1y,NA,0.1144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803526 +GCP,us-east4,c3d-standard-4 (-lssd),reserved_3y,NA,0.081708,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803539 +GCP,us-east4,c3d-standard-4 (-lssd),spot,NA,0.059248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803512 +GCP,us-east4,c3d-standard-60 (-lssd),on_demand,NA,1.868796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807692 +GCP,us-east4,c3d-standard-60 (-lssd),reserved_1y,NA,1.716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807720 +GCP,us-east4,c3d-standard-60 (-lssd),reserved_3y,NA,1.22562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807734 +GCP,us-east4,c3d-standard-60 (-lssd),spot,NA,0.88872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807706 +GCP,us-east4,c3d-standard-8 (-lssd),on_demand,NA,0.249173,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804551 +GCP,us-east4,c3d-standard-8 (-lssd),reserved_1y,NA,0.2288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804582 +GCP,us-east4,c3d-standard-8 (-lssd),reserved_3y,NA,0.163416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804597 +GCP,us-east4,c3d-standard-8 (-lssd),spot,NA,0.118496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804565 +GCP,us-east4,c3d-standard-90 (-lssd),on_demand,NA,2.803194,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808763 +GCP,us-east4,c3d-standard-90 (-lssd),reserved_1y,NA,2.574,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808792 +GCP,us-east4,c3d-standard-90 (-lssd),reserved_3y,NA,1.83843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808806 +GCP,us-east4,c3d-standard-90 (-lssd),spot,NA,1.33308,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808777 +GCP,us-east4,c4-standard-16,on_demand,NA,0.578028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840791 +GCP,us-east4,c4-standard-16,reserved_1y,NA,0.49814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840822 +GCP,us-east4,c4-standard-16,reserved_3y,NA,0.355808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840838 +GCP,us-east4,c4-standard-16,spot,NA,0.31626,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840806 +GCP,us-east4,c4-standard-2,on_demand,NA,0.072057,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837469 +GCP,us-east4,c4-standard-2,reserved_1y,NA,0.061027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837497 +GCP,us-east4,c4-standard-2,reserved_3y,NA,0.04359,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837511 +GCP,us-east4,c4-standard-2,spot,NA,0.038745,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837483 +GCP,us-east4,c4-standard-24,on_demand,NA,0.867042,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841838 +GCP,us-east4,c4-standard-24,reserved_1y,NA,0.74721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841866 +GCP,us-east4,c4-standard-24,reserved_3y,NA,0.533712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841879 +GCP,us-east4,c4-standard-24,spot,NA,0.47439,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841852 +GCP,us-east4,c4-standard-32,on_demand,NA,1.156056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842928 +GCP,us-east4,c4-standard-32,reserved_1y,NA,0.99628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842956 +GCP,us-east4,c4-standard-32,reserved_3y,NA,0.711616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842971 +GCP,us-east4,c4-standard-32,spot,NA,0.63252,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842942 +GCP,us-east4,c4-standard-4,on_demand,NA,0.144507,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838576 +GCP,us-east4,c4-standard-4,reserved_1y,NA,0.124535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838603 +GCP,us-east4,c4-standard-4,reserved_3y,NA,0.088952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838617 +GCP,us-east4,c4-standard-4,spot,NA,0.079065,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838589 +GCP,us-east4,c4-standard-8,on_demand,NA,0.289014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839603 +GCP,us-east4,c4-standard-8,reserved_1y,NA,0.24907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839630 +GCP,us-east4,c4-standard-8,reserved_3y,NA,0.177904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839644 +GCP,us-east4,c4-standard-8,spot,NA,0.15813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839617 +GCP,us-east4,c4a-highmem-16 (-lssd),on_demand,NA,0.94304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831467 +GCP,us-east4,c4a-highmem-16 (-lssd),reserved_1y,NA,0.6216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831495 +GCP,us-east4,c4a-highmem-16 (-lssd),reserved_3y,NA,0.42448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831509 +GCP,us-east4,c4a-highmem-16 (-lssd),spot,NA,0.280704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831481 +GCP,us-east4,c4a-highmem-32 (-lssd),on_demand,NA,1.88608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832722 +GCP,us-east4,c4a-highmem-32 (-lssd),reserved_1y,NA,1.2432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832749 +GCP,us-east4,c4a-highmem-32 (-lssd),reserved_3y,NA,0.84896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832763 +GCP,us-east4,c4a-highmem-32 (-lssd),spot,NA,0.561408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832735 +GCP,us-east4,c4a-highmem-4 (-lssd),on_demand,NA,0.23576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829046 +GCP,us-east4,c4a-highmem-4 (-lssd),reserved_1y,NA,0.1554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829073 +GCP,us-east4,c4a-highmem-4 (-lssd),reserved_3y,NA,0.10612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829086 +GCP,us-east4,c4a-highmem-4 (-lssd),spot,NA,0.070176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829060 +GCP,us-east4,c4a-highmem-48 (-lssd),on_demand,NA,2.82912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833934 +GCP,us-east4,c4a-highmem-48 (-lssd),reserved_1y,NA,1.8648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833963 +GCP,us-east4,c4a-highmem-48 (-lssd),reserved_3y,NA,1.27344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833978 +GCP,us-east4,c4a-highmem-48 (-lssd),spot,NA,0.842112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833948 +GCP,us-east4,c4a-highmem-64 (-lssd),on_demand,NA,3.77216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835127 +GCP,us-east4,c4a-highmem-64 (-lssd),reserved_1y,NA,2.4864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835153 +GCP,us-east4,c4a-highmem-64 (-lssd),reserved_3y,NA,1.69792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835166 +GCP,us-east4,c4a-highmem-64 (-lssd),spot,NA,1.122816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835140 +GCP,us-east4,c4a-highmem-72 (-lssd),on_demand,NA,4.24368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836305 +GCP,us-east4,c4a-highmem-72 (-lssd),reserved_1y,NA,2.7972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836331 +GCP,us-east4,c4a-highmem-72 (-lssd),reserved_3y,NA,1.91016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836345 +GCP,us-east4,c4a-highmem-72 (-lssd),spot,NA,1.263168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836318 +GCP,us-east4,c4a-highmem-8 (-lssd),on_demand,NA,0.47152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830256 +GCP,us-east4,c4a-highmem-8 (-lssd),reserved_1y,NA,0.3108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830284 +GCP,us-east4,c4a-highmem-8 (-lssd),reserved_3y,NA,0.21224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830298 +GCP,us-east4,c4a-highmem-8 (-lssd),spot,NA,0.140352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830270 +GCP,us-east4,c4a-standard-16 (-lssd),on_demand,NA,0.7184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822935 +GCP,us-east4,c4a-standard-16 (-lssd),reserved_1y,NA,0.47376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822964 +GCP,us-east4,c4a-standard-16 (-lssd),reserved_3y,NA,0.32336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822978 +GCP,us-east4,c4a-standard-16 (-lssd),spot,NA,0.213952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822949 +GCP,us-east4,c4a-standard-32 (-lssd),on_demand,NA,1.4368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824195 +GCP,us-east4,c4a-standard-32 (-lssd),reserved_1y,NA,0.94752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824222 +GCP,us-east4,c4a-standard-32 (-lssd),reserved_3y,NA,0.64672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824236 +GCP,us-east4,c4a-standard-32 (-lssd),spot,NA,0.427904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824208 +GCP,us-east4,c4a-standard-4 (-lssd),on_demand,NA,0.1796,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820474 +GCP,us-east4,c4a-standard-4 (-lssd),reserved_1y,NA,0.11844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820502 +GCP,us-east4,c4a-standard-4 (-lssd),reserved_3y,NA,0.08084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820516 +GCP,us-east4,c4a-standard-4 (-lssd),spot,NA,0.053488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820488 +GCP,us-east4,c4a-standard-48 (-lssd),on_demand,NA,2.1552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825412 +GCP,us-east4,c4a-standard-48 (-lssd),reserved_1y,NA,1.42128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825440 +GCP,us-east4,c4a-standard-48 (-lssd),reserved_3y,NA,0.97008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825454 +GCP,us-east4,c4a-standard-48 (-lssd),spot,NA,0.641856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825426 +GCP,us-east4,c4a-standard-64 (-lssd),on_demand,NA,2.8736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826634 +GCP,us-east4,c4a-standard-64 (-lssd),reserved_1y,NA,1.89504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826661 +GCP,us-east4,c4a-standard-64 (-lssd),reserved_3y,NA,1.29344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826675 +GCP,us-east4,c4a-standard-64 (-lssd),spot,NA,0.855808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826647 +GCP,us-east4,c4a-standard-72 (-lssd),on_demand,NA,3.2328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827836 +GCP,us-east4,c4a-standard-72 (-lssd),reserved_1y,NA,2.13192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827882 +GCP,us-east4,c4a-standard-72 (-lssd),reserved_3y,NA,1.45512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827896 +GCP,us-east4,c4a-standard-72 (-lssd),spot,NA,0.962784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827850 +GCP,us-east4,c4a-standard-8 (-lssd),on_demand,NA,0.3592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821718 +GCP,us-east4,c4a-standard-8 (-lssd),reserved_1y,NA,0.23688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821745 +GCP,us-east4,c4a-standard-8 (-lssd),reserved_3y,NA,0.16168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821758 +GCP,us-east4,c4a-standard-8 (-lssd),spot,NA,0.106976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821732 +GCP,us-east4,c4d-standard-16,on_demand,NA,0.269051,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848069 +GCP,us-east4,c4d-standard-16,reserved_1y,NA,0.46619,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848097 +GCP,us-east4,c4d-standard-16,reserved_3y,NA,0.332991,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848111 +GCP,us-east4,c4d-standard-16,spot,NA,0.2948,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848083 +GCP,us-east4,c4d-standard-2,on_demand,NA,0.03101,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844167 +GCP,us-east4,c4d-standard-2,reserved_1y,NA,0.056622,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844196 +GCP,us-east4,c4d-standard-2,reserved_3y,NA,0.040444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844210 +GCP,us-east4,c4d-standard-2,spot,NA,0.035806,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844182 +GCP,us-east4,c4d-standard-32,on_demand,NA,0.538101,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849355 +GCP,us-east4,c4d-standard-32,reserved_1y,NA,0.932379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849383 +GCP,us-east4,c4d-standard-32,reserved_3y,NA,0.665983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849397 +GCP,us-east4,c4d-standard-32,spot,NA,0.5896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849369 +GCP,us-east4,c4d-standard-4,on_demand,NA,0.065515,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845469 +GCP,us-east4,c4d-standard-4,reserved_1y,NA,0.115446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845497 +GCP,us-east4,c4d-standard-4,reserved_3y,NA,0.082461,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845510 +GCP,us-east4,c4d-standard-4,spot,NA,0.073004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845483 +GCP,us-east4,c4d-standard-8,on_demand,NA,0.134525,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846755 +GCP,us-east4,c4d-standard-8,reserved_1y,NA,0.233095,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846783 +GCP,us-east4,c4d-standard-8,reserved_3y,NA,0.166496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846797 +GCP,us-east4,c4d-standard-8,spot,NA,0.1474,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846769 +GCP,us-east4,e2_highcpu_16,on_demand,NA,0.445751,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763987 +GCP,us-east4,e2_highcpu_16,reserved_1y,NA,0.280823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764015 +GCP,us-east4,e2_highcpu_16,reserved_3y,NA,0.200588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764029 +GCP,us-east4,e2_highcpu_16,spot,NA,0.177792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764001 +GCP,us-east4,e2_highcpu_32,on_demand,NA,0.891502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765015 +GCP,us-east4,e2_highcpu_32,reserved_1y,NA,0.561646,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765043 +GCP,us-east4,e2_highcpu_32,reserved_3y,NA,0.401176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765057 +GCP,us-east4,e2_highcpu_32,spot,NA,0.355584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765029 +GCP,us-east4,e2_highmem_16,on_demand,NA,0.814454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762869 +GCP,us-east4,e2_highmem_16,reserved_1y,NA,0.513106,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762898 +GCP,us-east4,e2_highmem_16,reserved_3y,NA,0.366504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762912 +GCP,us-east4,e2_highmem_16,spot,NA,0.324736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762883 +GCP,us-east4,e2_highmem_2,on_demand,NA,0.101807,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759688 +GCP,us-east4,e2_highmem_2,reserved_1y,NA,0.064138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759717 +GCP,us-east4,e2_highmem_2,reserved_3y,NA,0.045813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759731 +GCP,us-east4,e2_highmem_2,spot,NA,0.040592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759703 +GCP,us-east4,e2_highmem_4,on_demand,NA,0.203613,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760805 +GCP,us-east4,e2_highmem_4,reserved_1y,NA,0.128276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760833 +GCP,us-east4,e2_highmem_4,reserved_3y,NA,0.091626,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760847 +GCP,us-east4,e2_highmem_4,spot,NA,0.081184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760819 +GCP,us-east4,e2_highmem_8,on_demand,NA,0.407227,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761825 +GCP,us-east4,e2_highmem_8,reserved_1y,NA,0.256553,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761853 +GCP,us-east4,e2_highmem_8,reserved_3y,NA,0.183252,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761867 +GCP,us-east4,e2_highmem_8,spot,NA,0.162368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761839 +GCP,us-east4,e2_standard_16,on_demand,NA,0.603767,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768301 +GCP,us-east4,e2_standard_16,reserved_1y,NA,0.380373,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768332 +GCP,us-east4,e2_standard_16,reserved_3y,NA,0.271695,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768347 +GCP,us-east4,e2_standard_16,spot,NA,0.240768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768317 +GCP,us-east4,e2_standard_32,on_demand,NA,1.207533,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769403 +GCP,us-east4,e2_standard_32,reserved_1y,NA,0.760746,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769431 +GCP,us-east4,e2_standard_32,reserved_3y,NA,0.54339,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769445 +GCP,us-east4,e2_standard_32,spot,NA,0.481536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769417 +GCP,us-east4,e2_standard_4,on_demand,NA,0.150942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766145 +GCP,us-east4,e2_standard_4,reserved_1y,NA,0.095093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766197 +GCP,us-east4,e2_standard_4,reserved_3y,NA,0.067924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766216 +GCP,us-east4,e2_standard_4,spot,NA,0.060192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766160 +GCP,us-east4,e2_standard_8,on_demand,NA,0.301883,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767284 +GCP,us-east4,e2_standard_8,reserved_1y,NA,0.190186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767312 +GCP,us-east4,e2_standard_8,reserved_3y,NA,0.135847,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767326 +GCP,us-east4,e2_standard_8,spot,NA,0.120384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767298 +GCP,us-east4,g2-standard-12,on_demand,NA,0.439916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786609 +GCP,us-east4,g2-standard-12,reserved_1y,NA,0.276529,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786637 +GCP,us-east4,g2-standard-12,reserved_3y,NA,0.19752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786650 +GCP,us-east4,g2-standard-12,spot,NA,0.175536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786623 +GCP,us-east4,g2-standard-16,on_demand,NA,0.586555,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787661 +GCP,us-east4,g2-standard-16,reserved_1y,NA,0.368705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787689 +GCP,us-east4,g2-standard-16,reserved_3y,NA,0.26336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787703 +GCP,us-east4,g2-standard-16,spot,NA,0.234048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787675 +GCP,us-east4,g2-standard-24,on_demand,NA,0.879832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788739 +GCP,us-east4,g2-standard-24,reserved_1y,NA,0.553057,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788766 +GCP,us-east4,g2-standard-24,reserved_3y,NA,0.395041,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788780 +GCP,us-east4,g2-standard-24,spot,NA,0.351072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788753 +GCP,us-east4,g2-standard-32,on_demand,NA,1.173109,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789772 +GCP,us-east4,g2-standard-32,reserved_1y,NA,0.737409,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789800 +GCP,us-east4,g2-standard-32,reserved_3y,NA,0.526721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789814 +GCP,us-east4,g2-standard-32,spot,NA,0.468096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789786 +GCP,us-east4,g2-standard-4,on_demand,NA,0.146639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784531 +GCP,us-east4,g2-standard-4,reserved_1y,NA,0.092176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784560 +GCP,us-east4,g2-standard-4,reserved_3y,NA,0.06584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784574 +GCP,us-east4,g2-standard-4,spot,NA,0.058512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784545 +GCP,us-east4,g2-standard-48,on_demand,NA,1.759664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790814 +GCP,us-east4,g2-standard-48,reserved_1y,NA,1.106114,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790841 +GCP,us-east4,g2-standard-48,reserved_3y,NA,0.790081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790855 +GCP,us-east4,g2-standard-48,spot,NA,0.702144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790828 +GCP,us-east4,g2-standard-8,on_demand,NA,0.293277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785579 +GCP,us-east4,g2-standard-8,reserved_1y,NA,0.184352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785607 +GCP,us-east4,g2-standard-8,reserved_3y,NA,0.13168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785621 +GCP,us-east4,g2-standard-8,spot,NA,0.117024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785593 +GCP,us-east4,g2-standard-96,on_demand,NA,3.519327,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791881 +GCP,us-east4,g2-standard-96,reserved_1y,NA,2.212228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791912 +GCP,us-east4,g2-standard-96,reserved_3y,NA,1.580163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791926 +GCP,us-east4,g2-standard-96,spot,NA,1.404288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791898 +GCP,us-east4,n1-highcpu-16,on_demand,NA,0.638382,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690713 +GCP,us-east4,n1-highcpu-16,spot,NA,0.138965,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690727 +GCP,us-east4,n1-highcpu-32,on_demand,NA,1.276765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691580 +GCP,us-east4,n1-highcpu-32,spot,NA,0.27793,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691594 +GCP,us-east4,n1-highcpu-64,on_demand,NA,2.55353,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692493 +GCP,us-east4,n1-highcpu-64,spot,NA,0.555859,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692507 +GCP,us-east4,n1-highcpu-96,on_demand,NA,3.830294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693329 +GCP,us-east4,n1-highcpu-96,spot,NA,0.833789,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693343 +GCP,us-east4,n1-highmem-16,on_demand,NA,1.065864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687194 +GCP,us-east4,n1-highmem-16,spot,NA,0.221128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687208 +GCP,us-east4,n1-highmem-32,on_demand,NA,2.131728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688076 +GCP,us-east4,n1-highmem-32,spot,NA,0.442256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688090 +GCP,us-east4,n1-highmem-4,on_demand,NA,0.266466,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685441 +GCP,us-east4,n1-highmem-4,spot,NA,0.055282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685454 +GCP,us-east4,n1-highmem-64,on_demand,NA,4.263456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688983 +GCP,us-east4,n1-highmem-64,spot,NA,0.884512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689005 +GCP,us-east4,n1-highmem-8,on_demand,NA,0.532932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686276 +GCP,us-east4,n1-highmem-8,spot,NA,0.110564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686289 +GCP,us-east4,n1-highmem-96,on_demand,NA,6.395184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689827 +GCP,us-east4,n1-highmem-96,spot,NA,1.326768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689841 +GCP,us-east4,n1-standard-16,on_demand,NA,0.85594,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681497 +GCP,us-east4,n1-standard-16,spot,NA,0.18078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681538 +GCP,us-east4,n1-standard-32,on_demand,NA,1.71188,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682400 +GCP,us-east4,n1-standard-32,spot,NA,0.36156,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682415 +GCP,us-east4,n1-standard-4,on_demand,NA,0.213985,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679768 +GCP,us-east4,n1-standard-4,spot,NA,0.045195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679782 +GCP,us-east4,n1-standard-64,on_demand,NA,3.42376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683372 +GCP,us-east4,n1-standard-64,spot,NA,0.72312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683389 +GCP,us-east4,n1-standard-8,on_demand,NA,0.42797,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680673 +GCP,us-east4,n1-standard-8,spot,NA,0.09039,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680686 +GCP,us-east4,n1-standard-96,on_demand,NA,5.13564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684511 +GCP,us-east4,n1-standard-96,spot,NA,1.08468,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684524 +GCP,us-east4,n2-highcpu-16,on_demand,NA,0.646016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711031 +GCP,us-east4,n2-highcpu-16,reserved_1y,NA,0.38664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711057 +GCP,us-east4,n2-highcpu-16,reserved_3y,NA,0.276176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711070 +GCP,us-east4,n2-highcpu-16,spot,NA,0.12992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711044 +GCP,us-east4,n2-highcpu-32,on_demand,NA,1.292032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712134 +GCP,us-east4,n2-highcpu-32,reserved_1y,NA,0.77328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712162 +GCP,us-east4,n2-highcpu-32,reserved_3y,NA,0.552352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712176 +GCP,us-east4,n2-highcpu-32,spot,NA,0.25984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712148 +GCP,us-east4,n2-highcpu-48,on_demand,NA,1.938048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713227 +GCP,us-east4,n2-highcpu-48,reserved_1y,NA,1.15992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713254 +GCP,us-east4,n2-highcpu-48,reserved_3y,NA,0.828528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713267 +GCP,us-east4,n2-highcpu-48,spot,NA,0.38976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713240 +GCP,us-east4,n2-highcpu-64,on_demand,NA,2.584064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714341 +GCP,us-east4,n2-highcpu-64,reserved_1y,NA,1.54656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714369 +GCP,us-east4,n2-highcpu-64,reserved_3y,NA,1.104704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714382 +GCP,us-east4,n2-highcpu-64,spot,NA,0.51968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714355 +GCP,us-east4,n2-highcpu-80,on_demand,NA,3.23008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715433 +GCP,us-east4,n2-highcpu-80,reserved_1y,NA,1.9332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715461 +GCP,us-east4,n2-highcpu-80,reserved_3y,NA,1.38088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715474 +GCP,us-east4,n2-highcpu-80,spot,NA,0.6496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715447 +GCP,us-east4,n2-highmem-16,on_demand,NA,1.180368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705431 +GCP,us-east4,n2-highmem-16,reserved_1y,NA,0.706512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705459 +GCP,us-east4,n2-highmem-16,reserved_3y,NA,0.504656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705474 +GCP,us-east4,n2-highmem-16,spot,NA,0.23744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705445 +GCP,us-east4,n2-highmem-2,on_demand,NA,0.147546,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702089 +GCP,us-east4,n2-highmem-2,reserved_1y,NA,0.088314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702119 +GCP,us-east4,n2-highmem-2,reserved_3y,NA,0.063082,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702133 +GCP,us-east4,n2-highmem-2,spot,NA,0.02968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702104 +GCP,us-east4,n2-highmem-32,on_demand,NA,2.360736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706561 +GCP,us-east4,n2-highmem-32,reserved_1y,NA,1.413024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706590 +GCP,us-east4,n2-highmem-32,reserved_3y,NA,1.009312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706604 +GCP,us-east4,n2-highmem-32,spot,NA,0.47488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706576 +GCP,us-east4,n2-highmem-4,on_demand,NA,0.295092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703194 +GCP,us-east4,n2-highmem-4,reserved_1y,NA,0.176628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703223 +GCP,us-east4,n2-highmem-4,reserved_3y,NA,0.126164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703237 +GCP,us-east4,n2-highmem-4,spot,NA,0.05936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703208 +GCP,us-east4,n2-highmem-48,on_demand,NA,3.541104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707694 +GCP,us-east4,n2-highmem-48,reserved_1y,NA,2.119536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707721 +GCP,us-east4,n2-highmem-48,reserved_3y,NA,1.513968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707735 +GCP,us-east4,n2-highmem-48,spot,NA,0.71232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707707 +GCP,us-east4,n2-highmem-64,on_demand,NA,4.721472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708794 +GCP,us-east4,n2-highmem-64,reserved_1y,NA,2.826048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708822 +GCP,us-east4,n2-highmem-64,reserved_3y,NA,2.018624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708836 +GCP,us-east4,n2-highmem-64,spot,NA,0.94976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708808 +GCP,us-east4,n2-highmem-8,on_demand,NA,0.590184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704345 +GCP,us-east4,n2-highmem-8,reserved_1y,NA,0.353256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704374 +GCP,us-east4,n2-highmem-8,reserved_3y,NA,0.252328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704389 +GCP,us-east4,n2-highmem-8,spot,NA,0.11872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704360 +GCP,us-east4,n2-highmem-80,on_demand,NA,5.90184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709888 +GCP,us-east4,n2-highmem-80,reserved_1y,NA,3.53256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709916 +GCP,us-east4,n2-highmem-80,reserved_3y,NA,2.52328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709930 +GCP,us-east4,n2-highmem-80,spot,NA,1.1872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709902 +GCP,us-east4,n2-standard-16,on_demand,NA,0.875024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696514 +GCP,us-east4,n2-standard-16,reserved_1y,NA,0.523728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696544 +GCP,us-east4,n2-standard-16,reserved_3y,NA,0.374096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696559 +GCP,us-east4,n2-standard-16,spot,NA,0.176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696529 +GCP,us-east4,n2-standard-32,on_demand,NA,1.750048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697642 +GCP,us-east4,n2-standard-32,reserved_1y,NA,1.047456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697671 +GCP,us-east4,n2-standard-32,reserved_3y,NA,0.748192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697685 +GCP,us-east4,n2-standard-32,spot,NA,0.352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697656 +GCP,us-east4,n2-standard-4,on_demand,NA,0.218756,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694194 +GCP,us-east4,n2-standard-4,reserved_1y,NA,0.130932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694223 +GCP,us-east4,n2-standard-4,reserved_3y,NA,0.093524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694251 +GCP,us-east4,n2-standard-4,spot,NA,0.044,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694208 +GCP,us-east4,n2-standard-48,on_demand,NA,2.625072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698748 +GCP,us-east4,n2-standard-48,reserved_1y,NA,1.571184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698776 +GCP,us-east4,n2-standard-48,reserved_3y,NA,1.122288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698791 +GCP,us-east4,n2-standard-48,spot,NA,0.528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698762 +GCP,us-east4,n2-standard-64,on_demand,NA,3.500096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699857 +GCP,us-east4,n2-standard-64,reserved_1y,NA,2.094912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699900 +GCP,us-east4,n2-standard-64,reserved_3y,NA,1.496384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699912 +GCP,us-east4,n2-standard-64,spot,NA,0.704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699885 +GCP,us-east4,n2-standard-8,on_demand,NA,0.437512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695306 +GCP,us-east4,n2-standard-8,reserved_1y,NA,0.261864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695334 +GCP,us-east4,n2-standard-8,reserved_3y,NA,0.187048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695348 +GCP,us-east4,n2-standard-8,spot,NA,0.088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695320 +GCP,us-east4,n2-standard-80,on_demand,NA,4.37512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701007 +GCP,us-east4,n2-standard-80,reserved_1y,NA,2.61864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701034 +GCP,us-east4,n2-standard-80,reserved_3y,NA,1.87048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701048 +GCP,us-east4,n2-standard-80,spot,NA,0.88,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701021 +GCP,us-east4,n2d-highcpu-128,on_demand,NA,0.927821,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752416 +GCP,us-east4,n2d-highcpu-128,reserved_1y,NA,2.691072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752444 +GCP,us-east4,n2d-highcpu-128,reserved_3y,NA,1.922176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752457 +GCP,us-east4,n2d-highcpu-128,spot,NA,1.255808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752430 +GCP,us-east4,n2d-highcpu-16,on_demand,NA,0.115978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746114 +GCP,us-east4,n2d-highcpu-16,reserved_1y,NA,0.336384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746142 +GCP,us-east4,n2d-highcpu-16,reserved_3y,NA,0.240272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746156 +GCP,us-east4,n2d-highcpu-16,spot,NA,0.156976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746128 +GCP,us-east4,n2d-highcpu-224,on_demand,NA,1.623686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753444 +GCP,us-east4,n2d-highcpu-224,reserved_1y,NA,4.709376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753472 +GCP,us-east4,n2d-highcpu-224,reserved_3y,NA,3.363808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753486 +GCP,us-east4,n2d-highcpu-224,spot,NA,2.197664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753458 +GCP,us-east4,n2d-highcpu-32,on_demand,NA,0.231955,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747141 +GCP,us-east4,n2d-highcpu-32,reserved_1y,NA,0.672768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747170 +GCP,us-east4,n2d-highcpu-32,reserved_3y,NA,0.480544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747185 +GCP,us-east4,n2d-highcpu-32,spot,NA,0.313952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747156 +GCP,us-east4,n2d-highcpu-48,on_demand,NA,0.347933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748226 +GCP,us-east4,n2d-highcpu-48,reserved_1y,NA,1.009152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748255 +GCP,us-east4,n2d-highcpu-48,reserved_3y,NA,0.720816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748268 +GCP,us-east4,n2d-highcpu-48,spot,NA,0.470928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748240 +GCP,us-east4,n2d-highcpu-64,on_demand,NA,0.46391,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749266 +GCP,us-east4,n2d-highcpu-64,reserved_1y,NA,1.345536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749293 +GCP,us-east4,n2d-highcpu-64,reserved_3y,NA,0.961088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749307 +GCP,us-east4,n2d-highcpu-64,spot,NA,0.627904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749280 +GCP,us-east4,n2d-highcpu-80,on_demand,NA,0.579888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750309 +GCP,us-east4,n2d-highcpu-80,reserved_1y,NA,1.68192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750338 +GCP,us-east4,n2d-highcpu-80,reserved_3y,NA,1.20136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750352 +GCP,us-east4,n2d-highcpu-80,spot,NA,0.78488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750323 +GCP,us-east4,n2d-highcpu-96,on_demand,NA,0.695866,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751362 +GCP,us-east4,n2d-highcpu-96,reserved_1y,NA,2.018304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751390 +GCP,us-east4,n2d-highcpu-96,reserved_3y,NA,1.441632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751404 +GCP,us-east4,n2d-highcpu-96,spot,NA,0.941856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751376 +GCP,us-east4,n2d-highmem-16,on_demand,NA,0.58089,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739812 +GCP,us-east4,n2d-highmem-16,reserved_1y,NA,0.614704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739838 +GCP,us-east4,n2d-highmem-16,reserved_3y,NA,0.439072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739851 +GCP,us-east4,n2d-highmem-16,spot,NA,0.311648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739825 +GCP,us-east4,n2d-highmem-2,on_demand,NA,0.072611,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736615 +GCP,us-east4,n2d-highmem-2,reserved_1y,NA,0.076838,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736639 +GCP,us-east4,n2d-highmem-2,reserved_3y,NA,0.054884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736655 +GCP,us-east4,n2d-highmem-2,spot,NA,0.038956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736627 +GCP,us-east4,n2d-highmem-32,on_demand,NA,1.161779,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740868 +GCP,us-east4,n2d-highmem-32,reserved_1y,NA,1.229408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740895 +GCP,us-east4,n2d-highmem-32,reserved_3y,NA,0.878144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740909 +GCP,us-east4,n2d-highmem-32,spot,NA,0.623296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740881 +GCP,us-east4,n2d-highmem-4,on_demand,NA,0.145222,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737641 +GCP,us-east4,n2d-highmem-4,reserved_1y,NA,0.153676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737669 +GCP,us-east4,n2d-highmem-4,reserved_3y,NA,0.109768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737684 +GCP,us-east4,n2d-highmem-4,spot,NA,0.077912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737655 +GCP,us-east4,n2d-highmem-48,on_demand,NA,1.742669,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741876 +GCP,us-east4,n2d-highmem-48,reserved_1y,NA,1.844112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741904 +GCP,us-east4,n2d-highmem-48,reserved_3y,NA,1.317216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741917 +GCP,us-east4,n2d-highmem-48,spot,NA,0.934944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741889 +GCP,us-east4,n2d-highmem-64,on_demand,NA,2.323558,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742973 +GCP,us-east4,n2d-highmem-64,reserved_1y,NA,2.458816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743009 +GCP,us-east4,n2d-highmem-64,reserved_3y,NA,1.756288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743027 +GCP,us-east4,n2d-highmem-64,spot,NA,1.246592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742989 +GCP,us-east4,n2d-highmem-8,on_demand,NA,0.290445,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738743 +GCP,us-east4,n2d-highmem-8,reserved_1y,NA,0.307352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738771 +GCP,us-east4,n2d-highmem-8,reserved_3y,NA,0.219536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738786 +GCP,us-east4,n2d-highmem-8,spot,NA,0.155824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738757 +GCP,us-east4,n2d-highmem-80,on_demand,NA,2.904448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744051 +GCP,us-east4,n2d-highmem-80,reserved_1y,NA,3.07352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744078 +GCP,us-east4,n2d-highmem-80,reserved_3y,NA,2.19536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744091 +GCP,us-east4,n2d-highmem-80,spot,NA,1.55824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744064 +GCP,us-east4,n2d-highmem-96,on_demand,NA,3.485338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745095 +GCP,us-east4,n2d-highmem-96,reserved_1y,NA,3.688224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745127 +GCP,us-east4,n2d-highmem-96,reserved_3y,NA,2.634432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745141 +GCP,us-east4,n2d-highmem-96,spot,NA,1.869888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745111 +GCP,us-east4,n2d-standard-128,on_demand,NA,2.521805,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734524 +GCP,us-east4,n2d-standard-128,reserved_1y,NA,3.645312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734552 +GCP,us-east4,n2d-standard-128,reserved_3y,NA,2.603776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734566 +GCP,us-east4,n2d-standard-128,spot,NA,1.786112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734538 +GCP,us-east4,n2d-standard-16,on_demand,NA,0.315226,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728210 +GCP,us-east4,n2d-standard-16,reserved_1y,NA,0.455664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728238 +GCP,us-east4,n2d-standard-16,reserved_3y,NA,0.325472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728252 +GCP,us-east4,n2d-standard-16,spot,NA,0.223264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728224 +GCP,us-east4,n2d-standard-224,on_demand,NA,4.413158,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735569 +GCP,us-east4,n2d-standard-224,reserved_1y,NA,6.379296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735595 +GCP,us-east4,n2d-standard-224,reserved_3y,NA,4.556608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735610 +GCP,us-east4,n2d-standard-224,spot,NA,3.125696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735582 +GCP,us-east4,n2d-standard-32,on_demand,NA,0.630451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729246 +GCP,us-east4,n2d-standard-32,reserved_1y,NA,0.911328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729273 +GCP,us-east4,n2d-standard-32,reserved_3y,NA,0.650944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729287 +GCP,us-east4,n2d-standard-32,spot,NA,0.446528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729260 +GCP,us-east4,n2d-standard-4,on_demand,NA,0.078806,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726076 +GCP,us-east4,n2d-standard-4,reserved_1y,NA,0.113916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726104 +GCP,us-east4,n2d-standard-4,reserved_3y,NA,0.081368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726118 +GCP,us-east4,n2d-standard-4,spot,NA,0.055816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726090 +GCP,us-east4,n2d-standard-48,on_demand,NA,0.945677,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730275 +GCP,us-east4,n2d-standard-48,reserved_1y,NA,1.366992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730303 +GCP,us-east4,n2d-standard-48,reserved_3y,NA,0.976416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730317 +GCP,us-east4,n2d-standard-48,spot,NA,0.669792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730289 +GCP,us-east4,n2d-standard-64,on_demand,NA,1.260902,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731357 +GCP,us-east4,n2d-standard-64,reserved_1y,NA,1.822656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731386 +GCP,us-east4,n2d-standard-64,reserved_3y,NA,1.301888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731400 +GCP,us-east4,n2d-standard-64,spot,NA,0.893056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731371 +GCP,us-east4,n2d-standard-8,on_demand,NA,0.157613,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727150 +GCP,us-east4,n2d-standard-8,reserved_1y,NA,0.227832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727178 +GCP,us-east4,n2d-standard-8,reserved_3y,NA,0.162736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727193 +GCP,us-east4,n2d-standard-8,spot,NA,0.111632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727164 +GCP,us-east4,n2d-standard-80,on_demand,NA,1.576128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732428 +GCP,us-east4,n2d-standard-80,reserved_1y,NA,2.27832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732456 +GCP,us-east4,n2d-standard-80,reserved_3y,NA,1.62736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732471 +GCP,us-east4,n2d-standard-80,spot,NA,1.11632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732442 +GCP,us-east4,n2d-standard-96,on_demand,NA,1.891354,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733458 +GCP,us-east4,n2d-standard-96,reserved_1y,NA,2.733984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733485 +GCP,us-east4,n2d-standard-96,reserved_3y,NA,1.952832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733500 +GCP,us-east4,n2d-standard-96,spot,NA,1.339584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733472 +GCP,us-east4,n4-standard-16,on_demand,NA,0.7256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757600 +GCP,us-east4,n4-standard-16,reserved_1y,NA,0.45712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757627 +GCP,us-east4,n4-standard-16,reserved_3y,NA,0.326528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757641 +GCP,us-east4,n4-standard-16,spot,NA,0.236064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757614 +GCP,us-east4,n4-standard-2,on_demand,NA,0.0907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754473 +GCP,us-east4,n4-standard-2,reserved_1y,NA,0.05714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754501 +GCP,us-east4,n4-standard-2,reserved_3y,NA,0.040816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754515 +GCP,us-east4,n4-standard-2,spot,NA,0.029508,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754487 +GCP,us-east4,n4-standard-32,on_demand,NA,1.4512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758640 +GCP,us-east4,n4-standard-32,reserved_1y,NA,0.91424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758667 +GCP,us-east4,n4-standard-32,reserved_3y,NA,0.653056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758681 +GCP,us-east4,n4-standard-32,spot,NA,0.472128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758654 +GCP,us-east4,n4-standard-4,on_demand,NA,0.1814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755523 +GCP,us-east4,n4-standard-4,reserved_1y,NA,0.11428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755552 +GCP,us-east4,n4-standard-4,reserved_3y,NA,0.081632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755566 +GCP,us-east4,n4-standard-4,spot,NA,0.059016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755537 +GCP,us-east4,n4-standard-8,on_demand,NA,0.3628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756574 +GCP,us-east4,n4-standard-8,reserved_1y,NA,0.22856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756602 +GCP,us-east4,n4-standard-8,reserved_3y,NA,0.163264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756616 +GCP,us-east4,n4-standard-8,spot,NA,0.118032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756588 +GCP,us-west1,a2-highgpu-1g,on_demand,NA,0.406682,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770374 +GCP,us-west1,a2-highgpu-1g,reserved_1y,NA,0.465845,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770400 +GCP,us-west1,a2-highgpu-1g,reserved_3y,NA,0.258841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770414 +GCP,us-west1,a2-highgpu-1g,spot,NA,0.295755,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770388 +GCP,us-west1,a2-highgpu-2g,on_demand,NA,0.813364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771407 +GCP,us-west1,a2-highgpu-2g,reserved_1y,NA,0.93169,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771435 +GCP,us-west1,a2-highgpu-2g,reserved_3y,NA,0.517681,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771448 +GCP,us-west1,a2-highgpu-2g,spot,NA,0.59151,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771421 +GCP,us-west1,a2-highgpu-4g,on_demand,NA,1.626728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772548 +GCP,us-west1,a2-highgpu-4g,reserved_1y,NA,1.86338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772576 +GCP,us-west1,a2-highgpu-4g,reserved_3y,NA,1.035362,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772589 +GCP,us-west1,a2-highgpu-4g,spot,NA,1.18302,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772562 +GCP,us-west1,a2-highgpu-8g,on_demand,NA,3.253456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773659 +GCP,us-west1,a2-highgpu-8g,reserved_1y,NA,3.72676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773687 +GCP,us-west1,a2-highgpu-8g,reserved_3y,NA,2.070724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773700 +GCP,us-west1,a2-highgpu-8g,spot,NA,2.36604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773673 +GCP,us-west1,a2-megagpu-16g,on_demand,NA,4.837856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774772 +GCP,us-west1,a2-megagpu-16g,reserved_1y,NA,5.54168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774806 +GCP,us-west1,a2-megagpu-16g,reserved_3y,NA,3.079315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774820 +GCP,us-west1,a2-megagpu-16g,spot,NA,3.51864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774789 +GCP,us-west1,a2-ultragpu-1g,on_demand,NA,0.604732,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775854 +GCP,us-west1,a2-ultragpu-1g,reserved_1y,NA,0.69271,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775908 +GCP,us-west1,a2-ultragpu-1g,reserved_3y,NA,0.384914,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775922 +GCP,us-west1,a2-ultragpu-1g,spot,NA,0.43983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775894 +GCP,us-west1,a2-ultragpu-2g,on_demand,NA,1.209464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776969 +GCP,us-west1,a2-ultragpu-2g,reserved_1y,NA,1.38542,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776998 +GCP,us-west1,a2-ultragpu-2g,reserved_3y,NA,0.769829,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777012 +GCP,us-west1,a2-ultragpu-2g,spot,NA,0.87966,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776984 +GCP,us-west1,a2-ultragpu-4g,on_demand,NA,2.418928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778041 +GCP,us-west1,a2-ultragpu-4g,reserved_1y,NA,2.77084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778068 +GCP,us-west1,a2-ultragpu-4g,reserved_3y,NA,1.539658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778082 +GCP,us-west1,a2-ultragpu-4g,spot,NA,1.75932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778054 +GCP,us-west1,a2-ultragpu-8g,on_demand,NA,4.837856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779088 +GCP,us-west1,a2-ultragpu-8g,reserved_1y,NA,5.54168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779116 +GCP,us-west1,a2-ultragpu-8g,reserved_3y,NA,3.079315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779131 +GCP,us-west1,a2-ultragpu-8g,spot,NA,3.51864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779102 +GCP,us-west1,a3-highgpu-1g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780188 +GCP,us-west1,a3-highgpu-1g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780218 +GCP,us-west1,a3-highgpu-1g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780232 +GCP,us-west1,a3-highgpu-1g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780203 +GCP,us-west1,a3-highgpu-2g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781248 +GCP,us-west1,a3-highgpu-2g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781277 +GCP,us-west1,a3-highgpu-2g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781291 +GCP,us-west1,a3-highgpu-2g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781263 +GCP,us-west1,a3-highgpu-4g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782287 +GCP,us-west1,a3-highgpu-4g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782362 +GCP,us-west1,a3-highgpu-4g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782377 +GCP,us-west1,a3-highgpu-4g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782301 +GCP,us-west1,a3-highgpu-8g,on_demand,NA,0.532033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783417 +GCP,us-west1,a3-highgpu-8g,reserved_1y,NA,0.82237,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783446 +GCP,us-west1,a3-highgpu-8g,reserved_3y,NA,0.521163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783459 +GCP,us-west1,a3-highgpu-8g,spot,NA,0.271934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783432 +GCP,us-west1,c2-standard-16,on_demand,NA,0.726384,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721041 +GCP,us-west1,c2-standard-16,reserved_1y,NA,0.4576,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721086 +GCP,us-west1,c2-standard-16,reserved_3y,NA,0.326832,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721109 +GCP,us-west1,c2-standard-16,spot,NA,0.168928,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721063 +GCP,us-west1,c2-standard-30,on_demand,NA,1.36197,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722711 +GCP,us-west1,c2-standard-30,reserved_1y,NA,0.858,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722756 +GCP,us-west1,c2-standard-30,reserved_3y,NA,0.61281,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722779 +GCP,us-west1,c2-standard-30,spot,NA,0.31674,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722734 +GCP,us-west1,c2-standard-4,on_demand,NA,0.181596,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717423 +GCP,us-west1,c2-standard-4,reserved_1y,NA,0.1144,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717471 +GCP,us-west1,c2-standard-4,reserved_3y,NA,0.081708,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717494 +GCP,us-west1,c2-standard-4,spot,NA,0.042232,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717446 +GCP,us-west1,c2-standard-60,on_demand,NA,2.72394,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724450 +GCP,us-west1,c2-standard-60,reserved_1y,NA,1.716,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724497 +GCP,us-west1,c2-standard-60,reserved_3y,NA,1.22562,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724520 +GCP,us-west1,c2-standard-60,spot,NA,0.63348,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724474 +GCP,us-west1,c2-standard-8,on_demand,NA,0.363192,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719288 +GCP,us-west1,c2-standard-8,reserved_1y,NA,0.2288,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719335 +GCP,us-west1,c2-standard-8,reserved_3y,NA,0.163416,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719358 +GCP,us-west1,c2-standard-8,spot,NA,0.084464,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719311 +GCP,us-west1,c3-highmem-22,on_demand,NA,1.455388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800354 +GCP,us-west1,c3-highmem-22,reserved_1y,NA,0.916916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800380 +GCP,us-west1,c3-highmem-22,reserved_3y,NA,0.654918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800395 +GCP,us-west1,c3-highmem-22,spot,NA,0.233772,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800367 +GCP,us-west1,c3-highmem-4,on_demand,NA,0.264616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798257 +GCP,us-west1,c3-highmem-4,reserved_1y,NA,0.166712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798286 +GCP,us-west1,c3-highmem-4,reserved_3y,NA,0.119076,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798299 +GCP,us-west1,c3-highmem-4,spot,NA,0.042504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798272 +GCP,us-west1,c3-highmem-44,on_demand,NA,2.910776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801367 +GCP,us-west1,c3-highmem-44,reserved_1y,NA,1.833832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801393 +GCP,us-west1,c3-highmem-44,reserved_3y,NA,1.309836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801406 +GCP,us-west1,c3-highmem-44,spot,NA,0.467544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801380 +GCP,us-west1,c3-highmem-8,on_demand,NA,0.529232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799316 +GCP,us-west1,c3-highmem-8,reserved_1y,NA,0.333424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799344 +GCP,us-west1,c3-highmem-8,reserved_3y,NA,0.238152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799358 +GCP,us-west1,c3-highmem-8,spot,NA,0.085008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799330 +GCP,us-west1,c3-highmem-88,on_demand,NA,5.821552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802385 +GCP,us-west1,c3-highmem-88,reserved_1y,NA,3.667664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802412 +GCP,us-west1,c3-highmem-88,reserved_3y,NA,2.619672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802425 +GCP,us-west1,c3-highmem-88,spot,NA,0.935088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802398 +GCP,us-west1,c3-standard-22 (-lssd),on_demand,NA,1.108844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795037 +GCP,us-west1,c3-standard-22 (-lssd),reserved_1y,NA,0.698588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795065 +GCP,us-west1,c3-standard-22 (-lssd),reserved_3y,NA,0.498982,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795079 +GCP,us-west1,c3-standard-22 (-lssd),spot,NA,0.173316,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795051 +GCP,us-west1,c3-standard-4 (-lssd),on_demand,NA,0.201608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792924 +GCP,us-west1,c3-standard-4 (-lssd),reserved_1y,NA,0.127016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792952 +GCP,us-west1,c3-standard-4 (-lssd),reserved_3y,NA,0.090724,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792968 +GCP,us-west1,c3-standard-4 (-lssd),spot,NA,0.031512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792938 +GCP,us-west1,c3-standard-44 (-lssd),on_demand,NA,2.217688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796152 +GCP,us-west1,c3-standard-44 (-lssd),reserved_1y,NA,1.397176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796180 +GCP,us-west1,c3-standard-44 (-lssd),reserved_3y,NA,0.997964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796194 +GCP,us-west1,c3-standard-44 (-lssd),spot,NA,0.346632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796166 +GCP,us-west1,c3-standard-8 (-lssd),on_demand,NA,0.403216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793989 +GCP,us-west1,c3-standard-8 (-lssd),reserved_1y,NA,0.254032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794017 +GCP,us-west1,c3-standard-8 (-lssd),reserved_3y,NA,0.181448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794031 +GCP,us-west1,c3-standard-8 (-lssd),spot,NA,0.063024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794003 +GCP,us-west1,c3-standard-88 (-lssd),on_demand,NA,4.435376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797200 +GCP,us-west1,c3-standard-88 (-lssd),reserved_1y,NA,2.794352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797230 +GCP,us-west1,c3-standard-88 (-lssd),reserved_3y,NA,1.995928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797244 +GCP,us-west1,c3-standard-88 (-lssd),spot,NA,0.693264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797216 +GCP,us-west1,c3d-highmem-16 (-lssd),on_demand,NA,0.97976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813980 +GCP,us-west1,c3d-highmem-16 (-lssd),reserved_1y,NA,0.617216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814007 +GCP,us-west1,c3d-highmem-16 (-lssd),reserved_3y,NA,0.440816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814021 +GCP,us-west1,c3d-highmem-16 (-lssd),spot,NA,0.165216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813994 +GCP,us-west1,c3d-highmem-180 (-lssd),on_demand,NA,11.0223,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818327 +GCP,us-west1,c3d-highmem-180 (-lssd),reserved_1y,NA,6.94368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818354 +GCP,us-west1,c3d-highmem-180 (-lssd),reserved_3y,NA,4.95918,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818368 +GCP,us-west1,c3d-highmem-180 (-lssd),spot,NA,1.85868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818340 +GCP,us-west1,c3d-highmem-30 (-lssd),on_demand,NA,1.83705,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815196 +GCP,us-west1,c3d-highmem-30 (-lssd),reserved_1y,NA,1.15728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815228 +GCP,us-west1,c3d-highmem-30 (-lssd),reserved_3y,NA,0.82653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815242 +GCP,us-west1,c3d-highmem-30 (-lssd),spot,NA,0.30978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815214 +GCP,us-west1,c3d-highmem-360 (-lssd),on_demand,NA,22.0446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819363 +GCP,us-west1,c3d-highmem-360 (-lssd),reserved_1y,NA,13.88736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819390 +GCP,us-west1,c3d-highmem-360 (-lssd),reserved_3y,NA,9.91836,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819404 +GCP,us-west1,c3d-highmem-360 (-lssd),spot,NA,3.71736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819377 +GCP,us-west1,c3d-highmem-4 (-lssd),on_demand,NA,0.24494,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811884 +GCP,us-west1,c3d-highmem-4 (-lssd),reserved_1y,NA,0.154304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811911 +GCP,us-west1,c3d-highmem-4 (-lssd),reserved_3y,NA,0.110204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811925 +GCP,us-west1,c3d-highmem-4 (-lssd),spot,NA,0.041304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811898 +GCP,us-west1,c3d-highmem-60 (-lssd),on_demand,NA,3.6741,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816260 +GCP,us-west1,c3d-highmem-60 (-lssd),reserved_1y,NA,2.31456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816288 +GCP,us-west1,c3d-highmem-60 (-lssd),reserved_3y,NA,1.65306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816302 +GCP,us-west1,c3d-highmem-60 (-lssd),spot,NA,0.61956,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816274 +GCP,us-west1,c3d-highmem-8 (-lssd),on_demand,NA,0.48988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812931 +GCP,us-west1,c3d-highmem-8 (-lssd),reserved_1y,NA,0.308608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812959 +GCP,us-west1,c3d-highmem-8 (-lssd),reserved_3y,NA,0.220408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812973 +GCP,us-west1,c3d-highmem-8 (-lssd),spot,NA,0.082608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812945 +GCP,us-west1,c3d-highmem-90 (-lssd),on_demand,NA,5.51115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817294 +GCP,us-west1,c3d-highmem-90 (-lssd),reserved_1y,NA,3.47184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817322 +GCP,us-west1,c3d-highmem-90 (-lssd),reserved_3y,NA,2.47959,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817336 +GCP,us-west1,c3d-highmem-90 (-lssd),spot,NA,0.92934,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817308 +GCP,us-west1,c3d-standard-16 (-lssd),on_demand,NA,0.726384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805512 +GCP,us-west1,c3d-standard-16 (-lssd),reserved_1y,NA,0.4576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805543 +GCP,us-west1,c3d-standard-16 (-lssd),reserved_3y,NA,0.326832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805555 +GCP,us-west1,c3d-standard-16 (-lssd),spot,NA,0.122528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805530 +GCP,us-west1,c3d-standard-180 (-lssd),on_demand,NA,8.17182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809761 +GCP,us-west1,c3d-standard-180 (-lssd),reserved_1y,NA,5.148,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809789 +GCP,us-west1,c3d-standard-180 (-lssd),reserved_3y,NA,3.67686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809803 +GCP,us-west1,c3d-standard-180 (-lssd),spot,NA,1.37844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809775 +GCP,us-west1,c3d-standard-30 (-lssd),on_demand,NA,1.36197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806571 +GCP,us-west1,c3d-standard-30 (-lssd),reserved_1y,NA,0.858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806601 +GCP,us-west1,c3d-standard-30 (-lssd),reserved_3y,NA,0.61281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806615 +GCP,us-west1,c3d-standard-30 (-lssd),spot,NA,0.22974,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806586 +GCP,us-west1,c3d-standard-360 (-lssd),on_demand,NA,16.34364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810816 +GCP,us-west1,c3d-standard-360 (-lssd),reserved_1y,NA,10.296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810843 +GCP,us-west1,c3d-standard-360 (-lssd),reserved_3y,NA,7.35372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810858 +GCP,us-west1,c3d-standard-360 (-lssd),spot,NA,2.75688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810830 +GCP,us-west1,c3d-standard-4 (-lssd),on_demand,NA,0.181596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803444 +GCP,us-west1,c3d-standard-4 (-lssd),reserved_1y,NA,0.1144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803471 +GCP,us-west1,c3d-standard-4 (-lssd),reserved_3y,NA,0.081708,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803485 +GCP,us-west1,c3d-standard-4 (-lssd),spot,NA,0.030632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803458 +GCP,us-west1,c3d-standard-60 (-lssd),on_demand,NA,2.72394,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807634 +GCP,us-west1,c3d-standard-60 (-lssd),reserved_1y,NA,1.716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807663 +GCP,us-west1,c3d-standard-60 (-lssd),reserved_3y,NA,1.22562,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807677 +GCP,us-west1,c3d-standard-60 (-lssd),spot,NA,0.45948,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807648 +GCP,us-west1,c3d-standard-8 (-lssd),on_demand,NA,0.363192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804496 +GCP,us-west1,c3d-standard-8 (-lssd),reserved_1y,NA,0.2288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804523 +GCP,us-west1,c3d-standard-8 (-lssd),reserved_3y,NA,0.163416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804537 +GCP,us-west1,c3d-standard-8 (-lssd),spot,NA,0.061264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804510 +GCP,us-west1,c3d-standard-90 (-lssd),on_demand,NA,4.08591,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808706 +GCP,us-west1,c3d-standard-90 (-lssd),reserved_1y,NA,2.574,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808734 +GCP,us-west1,c3d-standard-90 (-lssd),reserved_3y,NA,1.83843,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808748 +GCP,us-west1,c3d-standard-90 (-lssd),spot,NA,0.68922,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808720 +GCP,us-west1,c4-standard-16,on_demand,NA,0.29172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840727 +GCP,us-west1,c4-standard-16,reserved_1y,NA,0.49814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840758 +GCP,us-west1,c4-standard-16,reserved_3y,NA,0.355808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840774 +GCP,us-west1,c4-standard-16,spot,NA,0.31052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840743 +GCP,us-west1,c4-standard-2,on_demand,NA,0.034496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837411 +GCP,us-west1,c4-standard-2,reserved_1y,NA,0.061027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837439 +GCP,us-west1,c4-standard-2,reserved_3y,NA,0.04359,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837453 +GCP,us-west1,c4-standard-2,spot,NA,0.038042,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837425 +GCP,us-west1,c4-standard-24,on_demand,NA,0.43758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841782 +GCP,us-west1,c4-standard-24,reserved_1y,NA,0.74721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841810 +GCP,us-west1,c4-standard-24,reserved_3y,NA,0.533712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841823 +GCP,us-west1,c4-standard-24,spot,NA,0.46578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841796 +GCP,us-west1,c4-standard-32,on_demand,NA,0.58344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842861 +GCP,us-west1,c4-standard-32,reserved_1y,NA,0.99628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842888 +GCP,us-west1,c4-standard-32,reserved_3y,NA,0.711616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842902 +GCP,us-west1,c4-standard-32,spot,NA,0.62104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842875 +GCP,us-west1,c4-standard-4,on_demand,NA,0.07293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838519 +GCP,us-west1,c4-standard-4,reserved_1y,NA,0.124535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838547 +GCP,us-west1,c4-standard-4,reserved_3y,NA,0.088952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838561 +GCP,us-west1,c4-standard-4,spot,NA,0.07763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838533 +GCP,us-west1,c4-standard-8,on_demand,NA,0.14586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839547 +GCP,us-west1,c4-standard-8,reserved_1y,NA,0.24907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839575 +GCP,us-west1,c4-standard-8,reserved_3y,NA,0.177904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839588 +GCP,us-west1,c4-standard-8,spot,NA,0.15526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839561 +GCP,us-west1,c4a-highmem-16 (-lssd),on_demand,NA,0.53856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831409 +GCP,us-west1,c4a-highmem-16 (-lssd),reserved_1y,NA,0.6216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831437 +GCP,us-west1,c4a-highmem-16 (-lssd),reserved_3y,NA,0.42448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831451 +GCP,us-west1,c4a-highmem-16 (-lssd),spot,NA,0.294432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831423 +GCP,us-west1,c4a-highmem-32 (-lssd),on_demand,NA,1.07712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832667 +GCP,us-west1,c4a-highmem-32 (-lssd),reserved_1y,NA,1.2432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832694 +GCP,us-west1,c4a-highmem-32 (-lssd),reserved_3y,NA,0.84896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832707 +GCP,us-west1,c4a-highmem-32 (-lssd),spot,NA,0.588864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832681 +GCP,us-west1,c4a-highmem-4 (-lssd),on_demand,NA,0.13464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828991 +GCP,us-west1,c4a-highmem-4 (-lssd),reserved_1y,NA,0.1554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829018 +GCP,us-west1,c4a-highmem-4 (-lssd),reserved_3y,NA,0.10612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829031 +GCP,us-west1,c4a-highmem-4 (-lssd),spot,NA,0.073608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829005 +GCP,us-west1,c4a-highmem-48 (-lssd),on_demand,NA,1.61568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833878 +GCP,us-west1,c4a-highmem-48 (-lssd),reserved_1y,NA,1.8648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833906 +GCP,us-west1,c4a-highmem-48 (-lssd),reserved_3y,NA,1.27344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833918 +GCP,us-west1,c4a-highmem-48 (-lssd),spot,NA,0.883296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833892 +GCP,us-west1,c4a-highmem-64 (-lssd),on_demand,NA,2.15424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835074 +GCP,us-west1,c4a-highmem-64 (-lssd),reserved_1y,NA,2.4864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835100 +GCP,us-west1,c4a-highmem-64 (-lssd),reserved_3y,NA,1.69792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835112 +GCP,us-west1,c4a-highmem-64 (-lssd),spot,NA,1.177728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835087 +GCP,us-west1,c4a-highmem-72 (-lssd),on_demand,NA,2.42352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836252 +GCP,us-west1,c4a-highmem-72 (-lssd),reserved_1y,NA,2.7972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836278 +GCP,us-west1,c4a-highmem-72 (-lssd),reserved_3y,NA,1.91016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836291 +GCP,us-west1,c4a-highmem-72 (-lssd),spot,NA,1.324944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836265 +GCP,us-west1,c4a-highmem-8 (-lssd),on_demand,NA,0.26928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830199 +GCP,us-west1,c4a-highmem-8 (-lssd),reserved_1y,NA,0.3108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830228 +GCP,us-west1,c4a-highmem-8 (-lssd),reserved_3y,NA,0.21224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830242 +GCP,us-west1,c4a-highmem-8 (-lssd),spot,NA,0.147216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830214 +GCP,us-west1,c4a-standard-16 (-lssd),on_demand,NA,0.51616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822867 +GCP,us-west1,c4a-standard-16 (-lssd),reserved_1y,NA,0.47376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822896 +GCP,us-west1,c4a-standard-16 (-lssd),reserved_3y,NA,0.32336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822910 +GCP,us-west1,c4a-standard-16 (-lssd),spot,NA,0.224416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822882 +GCP,us-west1,c4a-standard-32 (-lssd),on_demand,NA,1.03232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824137 +GCP,us-west1,c4a-standard-32 (-lssd),reserved_1y,NA,0.94752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824165 +GCP,us-west1,c4a-standard-32 (-lssd),reserved_3y,NA,0.64672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824179 +GCP,us-west1,c4a-standard-32 (-lssd),spot,NA,0.448832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824151 +GCP,us-west1,c4a-standard-4 (-lssd),on_demand,NA,0.12904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820416 +GCP,us-west1,c4a-standard-4 (-lssd),reserved_1y,NA,0.11844,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820444 +GCP,us-west1,c4a-standard-4 (-lssd),reserved_3y,NA,0.08084,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820458 +GCP,us-west1,c4a-standard-4 (-lssd),spot,NA,0.056104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820430 +GCP,us-west1,c4a-standard-48 (-lssd),on_demand,NA,1.54848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825356 +GCP,us-west1,c4a-standard-48 (-lssd),reserved_1y,NA,1.42128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825383 +GCP,us-west1,c4a-standard-48 (-lssd),reserved_3y,NA,0.97008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825397 +GCP,us-west1,c4a-standard-48 (-lssd),spot,NA,0.673248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825370 +GCP,us-west1,c4a-standard-64 (-lssd),on_demand,NA,2.06464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826576 +GCP,us-west1,c4a-standard-64 (-lssd),reserved_1y,NA,1.89504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826604 +GCP,us-west1,c4a-standard-64 (-lssd),reserved_3y,NA,1.29344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826618 +GCP,us-west1,c4a-standard-64 (-lssd),spot,NA,0.897664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826590 +GCP,us-west1,c4a-standard-72 (-lssd),on_demand,NA,2.32272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827783 +GCP,us-west1,c4a-standard-72 (-lssd),reserved_1y,NA,2.13192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827809 +GCP,us-west1,c4a-standard-72 (-lssd),reserved_3y,NA,1.45512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827822 +GCP,us-west1,c4a-standard-72 (-lssd),spot,NA,1.009872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827796 +GCP,us-west1,c4a-standard-8 (-lssd),on_demand,NA,0.25808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821661 +GCP,us-west1,c4a-standard-8 (-lssd),reserved_1y,NA,0.23688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821689 +GCP,us-west1,c4a-standard-8 (-lssd),reserved_3y,NA,0.16168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821703 +GCP,us-west1,c4a-standard-8 (-lssd),spot,NA,0.112208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821675 +GCP,us-west1,c4d-standard-16,on_demand,NA,0.54493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848012 +GCP,us-west1,c4d-standard-16,reserved_1y,NA,0.46619,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848040 +GCP,us-west1,c4d-standard-16,reserved_3y,NA,0.332991,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848054 +GCP,us-west1,c4d-standard-16,spot,NA,0.28816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.848026 +GCP,us-west1,c4d-standard-2,on_demand,NA,0.067854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844110 +GCP,us-west1,c4d-standard-2,reserved_1y,NA,0.056622,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844138 +GCP,us-west1,c4d-standard-2,reserved_3y,NA,0.040444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844152 +GCP,us-west1,c4d-standard-2,spot,NA,0.035,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844124 +GCP,us-west1,c4d-standard-32,on_demand,NA,1.089861,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849299 +GCP,us-west1,c4d-standard-32,reserved_1y,NA,0.932379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849326 +GCP,us-west1,c4d-standard-32,reserved_3y,NA,0.665983,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849340 +GCP,us-west1,c4d-standard-32,spot,NA,0.57632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849312 +GCP,us-west1,c4d-standard-4,on_demand,NA,0.136058,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845413 +GCP,us-west1,c4d-standard-4,reserved_1y,NA,0.115446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845440 +GCP,us-west1,c4d-standard-4,reserved_3y,NA,0.082461,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845454 +GCP,us-west1,c4d-standard-4,spot,NA,0.07136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845427 +GCP,us-west1,c4d-standard-8,on_demand,NA,0.272465,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846700 +GCP,us-west1,c4d-standard-8,reserved_1y,NA,0.233095,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846727 +GCP,us-west1,c4d-standard-8,reserved_3y,NA,0.166496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846741 +GCP,us-west1,c4d-standard-8,spot,NA,0.14408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846713 +GCP,us-west1,e2_highcpu_16,on_demand,NA,0.395762,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763928 +GCP,us-west1,e2_highcpu_16,reserved_1y,NA,0.24933,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763958 +GCP,us-west1,e2_highcpu_16,reserved_3y,NA,0.178093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763971 +GCP,us-west1,e2_highcpu_16,spot,NA,0.158224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763943 +GCP,us-west1,e2_highcpu_32,on_demand,NA,0.791524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764959 +GCP,us-west1,e2_highcpu_32,reserved_1y,NA,0.49866,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764986 +GCP,us-west1,e2_highcpu_32,reserved_3y,NA,0.356186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765000 +GCP,us-west1,e2_highcpu_32,spot,NA,0.316448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764973 +GCP,us-west1,e2_highmem_16,on_demand,NA,0.723197,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762813 +GCP,us-west1,e2_highmem_16,reserved_1y,NA,0.455614,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762840 +GCP,us-west1,e2_highmem_16,reserved_3y,NA,0.325439,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762854 +GCP,us-west1,e2_highmem_16,spot,NA,0.289152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762826 +GCP,us-west1,e2_highmem_2,on_demand,NA,0.0904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759632 +GCP,us-west1,e2_highmem_2,reserved_1y,NA,0.056952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759659 +GCP,us-west1,e2_highmem_2,reserved_3y,NA,0.04068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759673 +GCP,us-west1,e2_highmem_2,spot,NA,0.036144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759646 +GCP,us-west1,e2_highmem_4,on_demand,NA,0.180799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760748 +GCP,us-west1,e2_highmem_4,reserved_1y,NA,0.113904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760776 +GCP,us-west1,e2_highmem_4,reserved_3y,NA,0.08136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760789 +GCP,us-west1,e2_highmem_4,spot,NA,0.072288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760762 +GCP,us-west1,e2_highmem_8,on_demand,NA,0.361599,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761766 +GCP,us-west1,e2_highmem_8,reserved_1y,NA,0.227807,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761794 +GCP,us-west1,e2_highmem_8,reserved_3y,NA,0.162719,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761809 +GCP,us-west1,e2_highmem_8,spot,NA,0.144576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761780 +GCP,us-west1,e2_standard_16,on_demand,NA,0.536091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768239 +GCP,us-west1,e2_standard_16,reserved_1y,NA,0.337737,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768270 +GCP,us-west1,e2_standard_16,reserved_3y,NA,0.241241,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768285 +GCP,us-west1,e2_standard_16,spot,NA,0.214336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768255 +GCP,us-west1,e2_standard_32,on_demand,NA,1.072183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769348 +GCP,us-west1,e2_standard_32,reserved_1y,NA,0.675475,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769375 +GCP,us-west1,e2_standard_32,reserved_3y,NA,0.482482,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769389 +GCP,us-west1,e2_standard_32,spot,NA,0.428672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769361 +GCP,us-west1,e2_standard_4,on_demand,NA,0.134023,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766054 +GCP,us-west1,e2_standard_4,reserved_1y,NA,0.084434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766086 +GCP,us-west1,e2_standard_4,reserved_3y,NA,0.06031,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766128 +GCP,us-west1,e2_standard_4,spot,NA,0.053584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766071 +GCP,us-west1,e2_standard_8,on_demand,NA,0.268046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767226 +GCP,us-west1,e2_standard_8,reserved_1y,NA,0.168869,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767254 +GCP,us-west1,e2_standard_8,reserved_3y,NA,0.120621,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767268 +GCP,us-west1,e2_standard_8,spot,NA,0.107168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767240 +GCP,us-west1,g2-standard-12,on_demand,NA,0.440376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786552 +GCP,us-west1,g2-standard-12,reserved_1y,NA,0.277437,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786580 +GCP,us-west1,g2-standard-12,reserved_3y,NA,0.198169,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786594 +GCP,us-west1,g2-standard-12,spot,NA,0.176208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786566 +GCP,us-west1,g2-standard-16,on_demand,NA,0.587168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787591 +GCP,us-west1,g2-standard-16,reserved_1y,NA,0.369916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787632 +GCP,us-west1,g2-standard-16,reserved_3y,NA,0.264226,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787646 +GCP,us-west1,g2-standard-16,spot,NA,0.234944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787618 +GCP,us-west1,g2-standard-24,on_demand,NA,0.880752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788682 +GCP,us-west1,g2-standard-24,reserved_1y,NA,0.554874,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788710 +GCP,us-west1,g2-standard-24,reserved_3y,NA,0.396338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788724 +GCP,us-west1,g2-standard-24,spot,NA,0.352416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788696 +GCP,us-west1,g2-standard-32,on_demand,NA,1.174336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789715 +GCP,us-west1,g2-standard-32,reserved_1y,NA,0.739832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789743 +GCP,us-west1,g2-standard-32,reserved_3y,NA,0.528451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789757 +GCP,us-west1,g2-standard-32,spot,NA,0.469888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789729 +GCP,us-west1,g2-standard-4,on_demand,NA,0.146792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784472 +GCP,us-west1,g2-standard-4,reserved_1y,NA,0.092479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784500 +GCP,us-west1,g2-standard-4,reserved_3y,NA,0.066056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784514 +GCP,us-west1,g2-standard-4,spot,NA,0.058736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784486 +GCP,us-west1,g2-standard-48,on_demand,NA,1.761504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790756 +GCP,us-west1,g2-standard-48,reserved_1y,NA,1.109748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790786 +GCP,us-west1,g2-standard-48,reserved_3y,NA,0.792677,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790799 +GCP,us-west1,g2-standard-48,spot,NA,0.704832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790770 +GCP,us-west1,g2-standard-8,on_demand,NA,0.293584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785522 +GCP,us-west1,g2-standard-8,reserved_1y,NA,0.184958,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785550 +GCP,us-west1,g2-standard-8,reserved_3y,NA,0.132113,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785564 +GCP,us-west1,g2-standard-8,spot,NA,0.117472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785536 +GCP,us-west1,g2-standard-96,on_demand,NA,3.523008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791805 +GCP,us-west1,g2-standard-96,reserved_1y,NA,2.219495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791833 +GCP,us-west1,g2-standard-96,reserved_3y,NA,1.585354,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791847 +GCP,us-west1,g2-standard-96,spot,NA,1.409664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791819 +GCP,us-west1,n1-highcpu-16,on_demand,NA,0.566789,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690671 +GCP,us-west1,n1-highcpu-16,spot,NA,0.144722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690685 +GCP,us-west1,n1-highcpu-32,on_demand,NA,1.133578,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691537 +GCP,us-west1,n1-highcpu-32,spot,NA,0.289443,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691551 +GCP,us-west1,n1-highcpu-64,on_demand,NA,2.267155,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692452 +GCP,us-west1,n1-highcpu-64,spot,NA,0.578886,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692465 +GCP,us-west1,n1-highcpu-96,on_demand,NA,3.400733,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693281 +GCP,us-west1,n1-highcpu-96,spot,NA,0.86833,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693300 +GCP,us-west1,n1-highmem-16,on_demand,NA,0.946424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687150 +GCP,us-west1,n1-highmem-16,spot,NA,0.237816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687164 +GCP,us-west1,n1-highmem-32,on_demand,NA,1.892848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688033 +GCP,us-west1,n1-highmem-32,spot,NA,0.475632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688047 +GCP,us-west1,n1-highmem-4,on_demand,NA,0.236606,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685400 +GCP,us-west1,n1-highmem-4,spot,NA,0.059454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685413 +GCP,us-west1,n1-highmem-64,on_demand,NA,3.785696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688852 +GCP,us-west1,n1-highmem-64,spot,NA,0.951264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688866 +GCP,us-west1,n1-highmem-8,on_demand,NA,0.473212,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686232 +GCP,us-west1,n1-highmem-8,spot,NA,0.118908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686246 +GCP,us-west1,n1-highmem-96,on_demand,NA,5.678544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689783 +GCP,us-west1,n1-highmem-96,spot,NA,1.426896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689798 +GCP,us-west1,n1-standard-16,on_demand,NA,0.759996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681455 +GCP,us-west1,n1-standard-16,spot,NA,0.1921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681470 +GCP,us-west1,n1-standard-32,on_demand,NA,1.519992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682358 +GCP,us-west1,n1-standard-32,spot,NA,0.3842,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682372 +GCP,us-west1,n1-standard-4,on_demand,NA,0.189999,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679726 +GCP,us-west1,n1-standard-4,spot,NA,0.048025,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679740 +GCP,us-west1,n1-standard-64,on_demand,NA,3.039984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683307 +GCP,us-west1,n1-standard-64,spot,NA,0.7684,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683331 +GCP,us-west1,n1-standard-8,on_demand,NA,0.379998,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680631 +GCP,us-west1,n1-standard-8,spot,NA,0.09605,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680645 +GCP,us-west1,n1-standard-96,on_demand,NA,4.559976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684468 +GCP,us-west1,n1-standard-96,spot,NA,1.1526,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684482 +GCP,us-west1,n2-highcpu-16,on_demand,NA,0.573568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710974 +GCP,us-west1,n2-highcpu-16,reserved_1y,NA,0.361344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711003 +GCP,us-west1,n2-highcpu-16,reserved_3y,NA,0.258112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711017 +GCP,us-west1,n2-highcpu-16,spot,NA,0.179216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710988 +GCP,us-west1,n2-highcpu-32,on_demand,NA,1.147136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712079 +GCP,us-west1,n2-highcpu-32,reserved_1y,NA,0.722688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712106 +GCP,us-west1,n2-highcpu-32,reserved_3y,NA,0.516224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712119 +GCP,us-west1,n2-highcpu-32,spot,NA,0.358432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712092 +GCP,us-west1,n2-highcpu-48,on_demand,NA,1.720704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713172 +GCP,us-west1,n2-highcpu-48,reserved_1y,NA,1.084032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713199 +GCP,us-west1,n2-highcpu-48,reserved_3y,NA,0.774336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713212 +GCP,us-west1,n2-highcpu-48,spot,NA,0.537648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713185 +GCP,us-west1,n2-highcpu-64,on_demand,NA,2.294272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714286 +GCP,us-west1,n2-highcpu-64,reserved_1y,NA,1.445376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714313 +GCP,us-west1,n2-highcpu-64,reserved_3y,NA,1.032448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714326 +GCP,us-west1,n2-highcpu-64,spot,NA,0.716864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714299 +GCP,us-west1,n2-highcpu-80,on_demand,NA,2.86784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715377 +GCP,us-west1,n2-highcpu-80,reserved_1y,NA,1.80672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715404 +GCP,us-west1,n2-highcpu-80,reserved_3y,NA,1.29056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715418 +GCP,us-west1,n2-highcpu-80,spot,NA,0.89608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715391 +GCP,us-west1,n2-highmem-16,on_demand,NA,1.048112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705372 +GCP,us-west1,n2-highmem-16,reserved_1y,NA,0.660272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705401 +GCP,us-west1,n2-highmem-16,reserved_3y,NA,0.471696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705415 +GCP,us-west1,n2-highmem-16,spot,NA,0.327168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705387 +GCP,us-west1,n2-highmem-2,on_demand,NA,0.131014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702031 +GCP,us-west1,n2-highmem-2,reserved_1y,NA,0.082534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702060 +GCP,us-west1,n2-highmem-2,reserved_3y,NA,0.058962,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702074 +GCP,us-west1,n2-highmem-2,spot,NA,0.040896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702045 +GCP,us-west1,n2-highmem-32,on_demand,NA,2.096224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706504 +GCP,us-west1,n2-highmem-32,reserved_1y,NA,1.320544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706532 +GCP,us-west1,n2-highmem-32,reserved_3y,NA,0.943392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706546 +GCP,us-west1,n2-highmem-32,spot,NA,0.654336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706518 +GCP,us-west1,n2-highmem-4,on_demand,NA,0.262028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703138 +GCP,us-west1,n2-highmem-4,reserved_1y,NA,0.165068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703166 +GCP,us-west1,n2-highmem-4,reserved_3y,NA,0.117924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703179 +GCP,us-west1,n2-highmem-4,spot,NA,0.081792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703152 +GCP,us-west1,n2-highmem-48,on_demand,NA,3.144336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707636 +GCP,us-west1,n2-highmem-48,reserved_1y,NA,1.980816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707664 +GCP,us-west1,n2-highmem-48,reserved_3y,NA,1.415088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707678 +GCP,us-west1,n2-highmem-48,spot,NA,0.981504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707650 +GCP,us-west1,n2-highmem-64,on_demand,NA,4.192448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708737 +GCP,us-west1,n2-highmem-64,reserved_1y,NA,2.641088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708765 +GCP,us-west1,n2-highmem-64,reserved_3y,NA,1.886784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708779 +GCP,us-west1,n2-highmem-64,spot,NA,1.308672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708751 +GCP,us-west1,n2-highmem-8,on_demand,NA,0.524056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704287 +GCP,us-west1,n2-highmem-8,reserved_1y,NA,0.330136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704315 +GCP,us-west1,n2-highmem-8,reserved_3y,NA,0.235848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704329 +GCP,us-west1,n2-highmem-8,spot,NA,0.163584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704301 +GCP,us-west1,n2-highmem-80,on_demand,NA,5.24056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709832 +GCP,us-west1,n2-highmem-80,reserved_1y,NA,3.30136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709860 +GCP,us-west1,n2-highmem-80,reserved_3y,NA,2.35848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709873 +GCP,us-west1,n2-highmem-80,spot,NA,1.63584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709846 +GCP,us-west1,n2-standard-16,on_demand,NA,0.776944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696420 +GCP,us-west1,n2-standard-16,reserved_1y,NA,0.489456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696447 +GCP,us-west1,n2-standard-16,reserved_3y,NA,0.349648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696497 +GCP,us-west1,n2-standard-16,spot,NA,0.242624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696434 +GCP,us-west1,n2-standard-32,on_demand,NA,1.553888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697580 +GCP,us-west1,n2-standard-32,reserved_1y,NA,0.978912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697613 +GCP,us-west1,n2-standard-32,reserved_3y,NA,0.699296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697627 +GCP,us-west1,n2-standard-32,spot,NA,0.485248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697598 +GCP,us-west1,n2-standard-4,on_demand,NA,0.194236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694137 +GCP,us-west1,n2-standard-4,reserved_1y,NA,0.122364,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694164 +GCP,us-west1,n2-standard-4,reserved_3y,NA,0.087412,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694178 +GCP,us-west1,n2-standard-4,spot,NA,0.060656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694151 +GCP,us-west1,n2-standard-48,on_demand,NA,2.330832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698690 +GCP,us-west1,n2-standard-48,reserved_1y,NA,1.468368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698718 +GCP,us-west1,n2-standard-48,reserved_3y,NA,1.048944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698732 +GCP,us-west1,n2-standard-48,spot,NA,0.727872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698704 +GCP,us-west1,n2-standard-64,on_demand,NA,3.107776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699799 +GCP,us-west1,n2-standard-64,reserved_1y,NA,1.957824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699827 +GCP,us-west1,n2-standard-64,reserved_3y,NA,1.398592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699841 +GCP,us-west1,n2-standard-64,spot,NA,0.970496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699814 +GCP,us-west1,n2-standard-8,on_demand,NA,0.388472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695248 +GCP,us-west1,n2-standard-8,reserved_1y,NA,0.244728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695277 +GCP,us-west1,n2-standard-8,reserved_3y,NA,0.174824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695291 +GCP,us-west1,n2-standard-8,spot,NA,0.121312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695262 +GCP,us-west1,n2-standard-80,on_demand,NA,3.88472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700951 +GCP,us-west1,n2-standard-80,reserved_1y,NA,2.44728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700978 +GCP,us-west1,n2-standard-80,reserved_3y,NA,1.74824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700992 +GCP,us-west1,n2-standard-80,spot,NA,1.21312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700964 +GCP,us-west1,n2d-highcpu-128,on_demand,NA,3.638208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752359 +GCP,us-west1,n2d-highcpu-128,reserved_1y,NA,2.514944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752387 +GCP,us-west1,n2d-highcpu-128,reserved_3y,NA,1.79648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752401 +GCP,us-west1,n2d-highcpu-128,spot,NA,0.828672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752373 +GCP,us-west1,n2d-highcpu-16,on_demand,NA,0.454776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746058 +GCP,us-west1,n2d-highcpu-16,reserved_1y,NA,0.314368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746085 +GCP,us-west1,n2d-highcpu-16,reserved_3y,NA,0.22456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746099 +GCP,us-west1,n2d-highcpu-16,spot,NA,0.103584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746071 +GCP,us-west1,n2d-highcpu-224,on_demand,NA,6.366864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753388 +GCP,us-west1,n2d-highcpu-224,reserved_1y,NA,4.401152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753415 +GCP,us-west1,n2d-highcpu-224,reserved_3y,NA,3.14384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753429 +GCP,us-west1,n2d-highcpu-224,spot,NA,1.450176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753401 +GCP,us-west1,n2d-highcpu-32,on_demand,NA,0.909552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747082 +GCP,us-west1,n2d-highcpu-32,reserved_1y,NA,0.628736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747112 +GCP,us-west1,n2d-highcpu-32,reserved_3y,NA,0.44912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747126 +GCP,us-west1,n2d-highcpu-32,spot,NA,0.207168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747097 +GCP,us-west1,n2d-highcpu-48,on_demand,NA,1.364328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748169 +GCP,us-west1,n2d-highcpu-48,reserved_1y,NA,0.943104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748197 +GCP,us-west1,n2d-highcpu-48,reserved_3y,NA,0.67368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748211 +GCP,us-west1,n2d-highcpu-48,spot,NA,0.310752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748183 +GCP,us-west1,n2d-highcpu-64,on_demand,NA,1.819104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749209 +GCP,us-west1,n2d-highcpu-64,reserved_1y,NA,1.257472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749237 +GCP,us-west1,n2d-highcpu-64,reserved_3y,NA,0.89824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749250 +GCP,us-west1,n2d-highcpu-64,spot,NA,0.414336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749223 +GCP,us-west1,n2d-highcpu-80,on_demand,NA,2.27388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750252 +GCP,us-west1,n2d-highcpu-80,reserved_1y,NA,1.57184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750280 +GCP,us-west1,n2d-highcpu-80,reserved_3y,NA,1.1228,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750294 +GCP,us-west1,n2d-highcpu-80,spot,NA,0.51792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750266 +GCP,us-west1,n2d-highcpu-96,on_demand,NA,2.728656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751305 +GCP,us-west1,n2d-highcpu-96,reserved_1y,NA,1.886208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751333 +GCP,us-west1,n2d-highcpu-96,reserved_3y,NA,1.34736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751347 +GCP,us-west1,n2d-highcpu-96,spot,NA,0.621504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751319 +GCP,us-west1,n2d-highmem-16,on_demand,NA,0.557984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739754 +GCP,us-west1,n2d-highmem-16,reserved_1y,NA,0.574432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739782 +GCP,us-west1,n2d-highmem-16,reserved_3y,NA,0.410368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739796 +GCP,us-west1,n2d-highmem-16,spot,NA,0.189152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739768 +GCP,us-west1,n2d-highmem-2,on_demand,NA,0.069748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736563 +GCP,us-west1,n2d-highmem-2,reserved_1y,NA,0.071804,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736589 +GCP,us-west1,n2d-highmem-2,reserved_3y,NA,0.051296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736602 +GCP,us-west1,n2d-highmem-2,spot,NA,0.023644,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736577 +GCP,us-west1,n2d-highmem-32,on_demand,NA,1.115968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740813 +GCP,us-west1,n2d-highmem-32,reserved_1y,NA,1.148864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740840 +GCP,us-west1,n2d-highmem-32,reserved_3y,NA,0.820736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740853 +GCP,us-west1,n2d-highmem-32,spot,NA,0.378304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740826 +GCP,us-west1,n2d-highmem-4,on_demand,NA,0.139496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737590 +GCP,us-west1,n2d-highmem-4,reserved_1y,NA,0.143608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737614 +GCP,us-west1,n2d-highmem-4,reserved_3y,NA,0.102592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737627 +GCP,us-west1,n2d-highmem-4,spot,NA,0.047288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737602 +GCP,us-west1,n2d-highmem-48,on_demand,NA,1.673952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741821 +GCP,us-west1,n2d-highmem-48,reserved_1y,NA,1.723296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741848 +GCP,us-west1,n2d-highmem-48,reserved_3y,NA,1.231104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741861 +GCP,us-west1,n2d-highmem-48,spot,NA,0.567456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741835 +GCP,us-west1,n2d-highmem-64,on_demand,NA,2.231936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742907 +GCP,us-west1,n2d-highmem-64,reserved_1y,NA,2.297728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742944 +GCP,us-west1,n2d-highmem-64,reserved_3y,NA,1.641472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742958 +GCP,us-west1,n2d-highmem-64,spot,NA,0.756608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742931 +GCP,us-west1,n2d-highmem-8,on_demand,NA,0.278992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738685 +GCP,us-west1,n2d-highmem-8,reserved_1y,NA,0.287216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738713 +GCP,us-west1,n2d-highmem-8,reserved_3y,NA,0.205184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738728 +GCP,us-west1,n2d-highmem-8,spot,NA,0.094576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738699 +GCP,us-west1,n2d-highmem-80,on_demand,NA,2.78992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743996 +GCP,us-west1,n2d-highmem-80,reserved_1y,NA,2.87216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744023 +GCP,us-west1,n2d-highmem-80,reserved_3y,NA,2.05184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744037 +GCP,us-west1,n2d-highmem-80,spot,NA,0.94576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744010 +GCP,us-west1,n2d-highmem-96,on_demand,NA,3.347904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745035 +GCP,us-west1,n2d-highmem-96,reserved_1y,NA,3.446592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745062 +GCP,us-west1,n2d-highmem-96,reserved_3y,NA,2.462208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745077 +GCP,us-west1,n2d-highmem-96,spot,NA,1.134912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745048 +GCP,us-west1,n2d-standard-128,on_demand,NA,3.992064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734466 +GCP,us-west1,n2d-standard-128,reserved_1y,NA,3.406592,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734494 +GCP,us-west1,n2d-standard-128,reserved_3y,NA,2.433536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734509 +GCP,us-west1,n2d-standard-128,spot,NA,1.122048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734480 +GCP,us-west1,n2d-standard-16,on_demand,NA,0.499008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728152 +GCP,us-west1,n2d-standard-16,reserved_1y,NA,0.425824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728180 +GCP,us-west1,n2d-standard-16,reserved_3y,NA,0.304192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728195 +GCP,us-west1,n2d-standard-16,spot,NA,0.140256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728167 +GCP,us-west1,n2d-standard-224,on_demand,NA,6.986112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735512 +GCP,us-west1,n2d-standard-224,reserved_1y,NA,5.961536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735539 +GCP,us-west1,n2d-standard-224,reserved_3y,NA,4.258688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735553 +GCP,us-west1,n2d-standard-224,spot,NA,1.963584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735526 +GCP,us-west1,n2d-standard-32,on_demand,NA,0.998016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729189 +GCP,us-west1,n2d-standard-32,reserved_1y,NA,0.851648,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729217 +GCP,us-west1,n2d-standard-32,reserved_3y,NA,0.608384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729230 +GCP,us-west1,n2d-standard-32,spot,NA,0.280512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729203 +GCP,us-west1,n2d-standard-4,on_demand,NA,0.124752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726020 +GCP,us-west1,n2d-standard-4,reserved_1y,NA,0.106456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726047 +GCP,us-west1,n2d-standard-4,reserved_3y,NA,0.076048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726061 +GCP,us-west1,n2d-standard-4,spot,NA,0.035064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726034 +GCP,us-west1,n2d-standard-48,on_demand,NA,1.497024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730219 +GCP,us-west1,n2d-standard-48,reserved_1y,NA,1.277472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730247 +GCP,us-west1,n2d-standard-48,reserved_3y,NA,0.912576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730260 +GCP,us-west1,n2d-standard-48,spot,NA,0.420768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730233 +GCP,us-west1,n2d-standard-64,on_demand,NA,1.996032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731300 +GCP,us-west1,n2d-standard-64,reserved_1y,NA,1.703296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731328 +GCP,us-west1,n2d-standard-64,reserved_3y,NA,1.216768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731342 +GCP,us-west1,n2d-standard-64,spot,NA,0.561024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731314 +GCP,us-west1,n2d-standard-8,on_demand,NA,0.249504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727092 +GCP,us-west1,n2d-standard-8,reserved_1y,NA,0.212912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727120 +GCP,us-west1,n2d-standard-8,reserved_3y,NA,0.152096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727135 +GCP,us-west1,n2d-standard-8,spot,NA,0.070128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727106 +GCP,us-west1,n2d-standard-80,on_demand,NA,2.49504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732370 +GCP,us-west1,n2d-standard-80,reserved_1y,NA,2.12912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732399 +GCP,us-west1,n2d-standard-80,reserved_3y,NA,1.52096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732413 +GCP,us-west1,n2d-standard-80,spot,NA,0.70128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732385 +GCP,us-west1,n2d-standard-96,on_demand,NA,2.994048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733403 +GCP,us-west1,n2d-standard-96,reserved_1y,NA,2.554944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733429 +GCP,us-west1,n2d-standard-96,reserved_3y,NA,1.825152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733443 +GCP,us-west1,n2d-standard-96,spot,NA,0.841536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733416 +GCP,us-west1,n4-standard-16,on_demand,NA,0.07256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757542 +GCP,us-west1,n4-standard-16,reserved_1y,NA,0.45712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757570 +GCP,us-west1,n4-standard-16,reserved_3y,NA,0.326528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757584 +GCP,us-west1,n4-standard-16,spot,NA,0.244864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757556 +GCP,us-west1,n4-standard-2,on_demand,NA,0.00907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754416 +GCP,us-west1,n4-standard-2,reserved_1y,NA,0.05714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754444 +GCP,us-west1,n4-standard-2,reserved_3y,NA,0.040816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754457 +GCP,us-west1,n4-standard-2,spot,NA,0.030608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754430 +GCP,us-west1,n4-standard-32,on_demand,NA,0.14512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758582 +GCP,us-west1,n4-standard-32,reserved_1y,NA,0.91424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758610 +GCP,us-west1,n4-standard-32,reserved_3y,NA,0.653056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758624 +GCP,us-west1,n4-standard-32,spot,NA,0.489728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758596 +GCP,us-west1,n4-standard-4,on_demand,NA,0.01814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755467 +GCP,us-west1,n4-standard-4,reserved_1y,NA,0.11428,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755494 +GCP,us-west1,n4-standard-4,reserved_3y,NA,0.081632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755508 +GCP,us-west1,n4-standard-4,spot,NA,0.061216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755480 +GCP,us-west1,n4-standard-8,on_demand,NA,0.03628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756517 +GCP,us-west1,n4-standard-8,reserved_1y,NA,0.22856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756545 +GCP,us-west1,n4-standard-8,reserved_3y,NA,0.163264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756559 +GCP,us-west1,n4-standard-8,spot,NA,0.122432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756531 +GCP,us-west2,a2-highgpu-1g,on_demand,NA,0.888205,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770484 +GCP,us-west2,a2-highgpu-1g,reserved_1y,NA,0.559539,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770512 +GCP,us-west2,a2-highgpu-1g,reserved_3y,NA,0.310902,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770525 +GCP,us-west2,a2-highgpu-1g,spot,NA,0.18852,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770498 +GCP,us-west2,a2-highgpu-2g,on_demand,NA,1.77641,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771519 +GCP,us-west2,a2-highgpu-2g,reserved_1y,NA,1.119078,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771547 +GCP,us-west2,a2-highgpu-2g,reserved_3y,NA,0.621805,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771561 +GCP,us-west2,a2-highgpu-2g,spot,NA,0.37704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771533 +GCP,us-west2,a2-highgpu-4g,on_demand,NA,3.55282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772658 +GCP,us-west2,a2-highgpu-4g,reserved_1y,NA,2.238156,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772686 +GCP,us-west2,a2-highgpu-4g,reserved_3y,NA,1.24361,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772701 +GCP,us-west2,a2-highgpu-4g,spot,NA,0.75408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772672 +GCP,us-west2,a2-highgpu-8g,on_demand,NA,7.10564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773771 +GCP,us-west2,a2-highgpu-8g,reserved_1y,NA,4.476311,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773798 +GCP,us-west2,a2-highgpu-8g,reserved_3y,NA,2.487219,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773812 +GCP,us-west2,a2-highgpu-8g,spot,NA,1.50816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773784 +GCP,us-west2,a2-megagpu-16g,on_demand,NA,10.56616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774892 +GCP,us-west2,a2-megagpu-16g,reserved_1y,NA,6.656187,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774928 +GCP,us-west2,a2-megagpu-16g,reserved_3y,NA,3.698639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774942 +GCP,us-west2,a2-megagpu-16g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774906 +GCP,us-west2,a2-ultragpu-1g,on_demand,NA,1.32077,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775994 +GCP,us-west2,a2-ultragpu-1g,reserved_1y,NA,0.832023,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776022 +GCP,us-west2,a2-ultragpu-1g,reserved_3y,NA,0.46233,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776036 +GCP,us-west2,a2-ultragpu-1g,spot,NA,0.28032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776007 +GCP,us-west2,a2-ultragpu-2g,on_demand,NA,2.64154,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777087 +GCP,us-west2,a2-ultragpu-2g,reserved_1y,NA,1.664047,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777117 +GCP,us-west2,a2-ultragpu-2g,reserved_3y,NA,0.92466,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777131 +GCP,us-west2,a2-ultragpu-2g,spot,NA,0.56064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777102 +GCP,us-west2,a2-ultragpu-4g,on_demand,NA,5.28308,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778153 +GCP,us-west2,a2-ultragpu-4g,reserved_1y,NA,3.328094,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778181 +GCP,us-west2,a2-ultragpu-4g,reserved_3y,NA,1.84932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778195 +GCP,us-west2,a2-ultragpu-4g,spot,NA,1.12128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778167 +GCP,us-west2,a2-ultragpu-8g,on_demand,NA,10.56616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779204 +GCP,us-west2,a2-ultragpu-8g,reserved_1y,NA,6.656187,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779232 +GCP,us-west2,a2-ultragpu-8g,reserved_3y,NA,3.698639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779246 +GCP,us-west2,a2-ultragpu-8g,spot,NA,2.24256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779218 +GCP,us-west2,a3-highgpu-1g,on_demand,NA,0.933828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780307 +GCP,us-west2,a3-highgpu-1g,reserved_1y,NA,0.988571,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780336 +GCP,us-west2,a3-highgpu-1g,reserved_3y,NA,0.62649,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780350 +GCP,us-west2,a3-highgpu-1g,spot,NA,0.25584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780321 +GCP,us-west2,a3-highgpu-2g,on_demand,NA,0.933828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781363 +GCP,us-west2,a3-highgpu-2g,reserved_1y,NA,0.988571,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781391 +GCP,us-west2,a3-highgpu-2g,reserved_3y,NA,0.62649,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781405 +GCP,us-west2,a3-highgpu-2g,spot,NA,0.25584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781377 +GCP,us-west2,a3-highgpu-4g,on_demand,NA,0.933828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782450 +GCP,us-west2,a3-highgpu-4g,reserved_1y,NA,0.988571,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782479 +GCP,us-west2,a3-highgpu-4g,reserved_3y,NA,0.62649,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782492 +GCP,us-west2,a3-highgpu-4g,spot,NA,0.25584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782465 +GCP,us-west2,a3-highgpu-8g,on_demand,NA,0.933828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783531 +GCP,us-west2,a3-highgpu-8g,reserved_1y,NA,0.988571,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783559 +GCP,us-west2,a3-highgpu-8g,reserved_3y,NA,0.62649,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783573 +GCP,us-west2,a3-highgpu-8g,spot,NA,0.25584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783545 +GCP,us-west2,c2-standard-16,on_demand,NA,0.873168,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721224 +GCP,us-west2,c2-standard-16,reserved_1y,NA,0.55008,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721269 +GCP,us-west2,c2-standard-16,reserved_3y,NA,0.392896,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721291 +GCP,us-west2,c2-standard-16,spot,NA,0.113184,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.721246 +GCP,us-west2,c2-standard-30,on_demand,NA,1.63719,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722895 +GCP,us-west2,c2-standard-30,reserved_1y,NA,1.0314,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722947 +GCP,us-west2,c2-standard-30,reserved_3y,NA,0.73668,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722970 +GCP,us-west2,c2-standard-30,spot,NA,0.21222,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722924 +GCP,us-west2,c2-standard-4,on_demand,NA,0.218292,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717614 +GCP,us-west2,c2-standard-4,reserved_1y,NA,0.13752,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717661 +GCP,us-west2,c2-standard-4,reserved_3y,NA,0.098224,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717684 +GCP,us-west2,c2-standard-4,spot,NA,0.028296,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717637 +GCP,us-west2,c2-standard-60,on_demand,NA,3.27438,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724638 +GCP,us-west2,c2-standard-60,reserved_1y,NA,2.0628,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724683 +GCP,us-west2,c2-standard-60,reserved_3y,NA,1.47336,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724706 +GCP,us-west2,c2-standard-60,spot,NA,0.42444,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724660 +GCP,us-west2,c2-standard-8,on_demand,NA,0.436584,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719478 +GCP,us-west2,c2-standard-8,reserved_1y,NA,0.27504,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719525 +GCP,us-west2,c2-standard-8,reserved_3y,NA,0.196448,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719548 +GCP,us-west2,c2-standard-8,spot,NA,0.056592,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719502 +GCP,us-west2,c3-highmem-22,on_demand,NA,1.749522,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800463 +GCP,us-west2,c3-highmem-22,reserved_1y,NA,1.102225,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800490 +GCP,us-west2,c3-highmem-22,reserved_3y,NA,0.787277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800505 +GCP,us-west2,c3-highmem-22,spot,NA,0.229812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800477 +GCP,us-west2,c3-highmem-4,on_demand,NA,0.318095,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798372 +GCP,us-west2,c3-highmem-4,reserved_1y,NA,0.200404,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798400 +GCP,us-west2,c3-highmem-4,reserved_3y,NA,0.143141,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798414 +GCP,us-west2,c3-highmem-4,spot,NA,0.041784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798386 +GCP,us-west2,c3-highmem-44,on_demand,NA,3.499044,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801474 +GCP,us-west2,c3-highmem-44,reserved_1y,NA,2.204449,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801503 +GCP,us-west2,c3-highmem-44,reserved_3y,NA,1.574554,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801517 +GCP,us-west2,c3-highmem-44,spot,NA,0.459624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801488 +GCP,us-west2,c3-highmem-8,on_demand,NA,0.63619,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799429 +GCP,us-west2,c3-highmem-8,reserved_1y,NA,0.400809,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799459 +GCP,us-west2,c3-highmem-8,reserved_3y,NA,0.286282,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799473 +GCP,us-west2,c3-highmem-8,spot,NA,0.083568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799444 +GCP,us-west2,c3-highmem-88,on_demand,NA,6.998088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802497 +GCP,us-west2,c3-highmem-88,reserved_1y,NA,4.408899,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802524 +GCP,us-west2,c3-highmem-88,reserved_3y,NA,3.149107,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802537 +GCP,us-west2,c3-highmem-88,spot,NA,0.919248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802511 +GCP,us-west2,c3-standard-22 (-lssd),on_demand,NA,1.332942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795154 +GCP,us-west2,c3-standard-22 (-lssd),reserved_1y,NA,0.839773,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795182 +GCP,us-west2,c3-standard-22 (-lssd),reserved_3y,NA,0.599826,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795196 +GCP,us-west2,c3-standard-22 (-lssd),spot,NA,0.170236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.795168 +GCP,us-west2,c3-standard-4 (-lssd),on_demand,NA,0.242353,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793041 +GCP,us-west2,c3-standard-4 (-lssd),reserved_1y,NA,0.152686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793069 +GCP,us-west2,c3-standard-4 (-lssd),reserved_3y,NA,0.109059,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793084 +GCP,us-west2,c3-standard-4 (-lssd),spot,NA,0.030952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793055 +GCP,us-west2,c3-standard-44 (-lssd),on_demand,NA,2.665883,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796266 +GCP,us-west2,c3-standard-44 (-lssd),reserved_1y,NA,1.679545,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796294 +GCP,us-west2,c3-standard-44 (-lssd),reserved_3y,NA,1.199653,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796308 +GCP,us-west2,c3-standard-44 (-lssd),spot,NA,0.340472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796280 +GCP,us-west2,c3-standard-8 (-lssd),on_demand,NA,0.484706,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794103 +GCP,us-west2,c3-standard-8 (-lssd),reserved_1y,NA,0.305372,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794131 +GCP,us-west2,c3-standard-8 (-lssd),reserved_3y,NA,0.218119,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794147 +GCP,us-west2,c3-standard-8 (-lssd),spot,NA,0.061904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794117 +GCP,us-west2,c3-standard-88 (-lssd),on_demand,NA,5.331766,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797318 +GCP,us-west2,c3-standard-88 (-lssd),reserved_1y,NA,3.35909,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797345 +GCP,us-west2,c3-standard-88 (-lssd),reserved_3y,NA,2.399305,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797359 +GCP,us-west2,c3-standard-88 (-lssd),spot,NA,0.680944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797331 +GCP,us-west2,c3d-highmem-16 (-lssd),on_demand,NA,0.629519,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814097 +GCP,us-west2,c3d-highmem-16 (-lssd),reserved_1y,NA,0.741955,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814124 +GCP,us-west2,c3d-highmem-16 (-lssd),reserved_3y,NA,0.529905,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814138 +GCP,us-west2,c3d-highmem-16 (-lssd),spot,NA,0.289472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.814110 +GCP,us-west2,c3d-highmem-180 (-lssd),on_demand,NA,7.082094,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818439 +GCP,us-west2,c3d-highmem-180 (-lssd),reserved_1y,NA,8.346997,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818467 +GCP,us-west2,c3d-highmem-180 (-lssd),reserved_3y,NA,5.961431,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818481 +GCP,us-west2,c3d-highmem-180 (-lssd),spot,NA,3.25656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818453 +GCP,us-west2,c3d-highmem-30 (-lssd),on_demand,NA,1.180349,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815316 +GCP,us-west2,c3d-highmem-30 (-lssd),reserved_1y,NA,1.391166,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815343 +GCP,us-west2,c3d-highmem-30 (-lssd),reserved_3y,NA,0.993572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815357 +GCP,us-west2,c3d-highmem-30 (-lssd),spot,NA,0.54276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815329 +GCP,us-west2,c3d-highmem-360 (-lssd),on_demand,NA,14.164188,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819476 +GCP,us-west2,c3d-highmem-360 (-lssd),reserved_1y,NA,16.693994,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819503 +GCP,us-west2,c3d-highmem-360 (-lssd),reserved_3y,NA,11.922862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819517 +GCP,us-west2,c3d-highmem-360 (-lssd),spot,NA,6.51312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819490 +GCP,us-west2,c3d-highmem-4 (-lssd),on_demand,NA,0.15738,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811999 +GCP,us-west2,c3d-highmem-4 (-lssd),reserved_1y,NA,0.185489,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812027 +GCP,us-west2,c3d-highmem-4 (-lssd),reserved_3y,NA,0.132476,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812041 +GCP,us-west2,c3d-highmem-4 (-lssd),spot,NA,0.072368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812013 +GCP,us-west2,c3d-highmem-60 (-lssd),on_demand,NA,2.360698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816373 +GCP,us-west2,c3d-highmem-60 (-lssd),reserved_1y,NA,2.782332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816400 +GCP,us-west2,c3d-highmem-60 (-lssd),reserved_3y,NA,1.987144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816414 +GCP,us-west2,c3d-highmem-60 (-lssd),spot,NA,1.08552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816386 +GCP,us-west2,c3d-highmem-8 (-lssd),on_demand,NA,0.31476,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813044 +GCP,us-west2,c3d-highmem-8 (-lssd),reserved_1y,NA,0.370978,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813072 +GCP,us-west2,c3d-highmem-8 (-lssd),reserved_3y,NA,0.264952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813086 +GCP,us-west2,c3d-highmem-8 (-lssd),spot,NA,0.144736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813058 +GCP,us-west2,c3d-highmem-90 (-lssd),on_demand,NA,3.541047,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817408 +GCP,us-west2,c3d-highmem-90 (-lssd),reserved_1y,NA,4.173499,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817436 +GCP,us-west2,c3d-highmem-90 (-lssd),reserved_3y,NA,2.980715,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817450 +GCP,us-west2,c3d-highmem-90 (-lssd),spot,NA,1.62828,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817422 +GCP,us-west2,c3d-standard-16 (-lssd),on_demand,NA,0.599061,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805622 +GCP,us-west2,c3d-standard-16 (-lssd),reserved_1y,NA,0.550081,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805650 +GCP,us-west2,c3d-standard-16 (-lssd),reserved_3y,NA,0.392885,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805664 +GCP,us-west2,c3d-standard-16 (-lssd),spot,NA,0.214656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805636 +GCP,us-west2,c3d-standard-180 (-lssd),on_demand,NA,6.739438,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809880 +GCP,us-west2,c3d-standard-180 (-lssd),reserved_1y,NA,6.18841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809908 +GCP,us-west2,c3d-standard-180 (-lssd),reserved_3y,NA,4.419954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809922 +GCP,us-west2,c3d-standard-180 (-lssd),spot,NA,2.41488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809894 +GCP,us-west2,c3d-standard-30 (-lssd),on_demand,NA,1.12324,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806689 +GCP,us-west2,c3d-standard-30 (-lssd),reserved_1y,NA,1.031402,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806718 +GCP,us-west2,c3d-standard-30 (-lssd),reserved_3y,NA,0.736659,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806732 +GCP,us-west2,c3d-standard-30 (-lssd),spot,NA,0.40248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806704 +GCP,us-west2,c3d-standard-360 (-lssd),on_demand,NA,13.478877,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810937 +GCP,us-west2,c3d-standard-360 (-lssd),reserved_1y,NA,12.376821,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810965 +GCP,us-west2,c3d-standard-360 (-lssd),reserved_3y,NA,8.839908,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810979 +GCP,us-west2,c3d-standard-360 (-lssd),spot,NA,4.82976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810951 +GCP,us-west2,c3d-standard-4 (-lssd),on_demand,NA,0.149765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803554 +GCP,us-west2,c3d-standard-4 (-lssd),reserved_1y,NA,0.13752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803581 +GCP,us-west2,c3d-standard-4 (-lssd),reserved_3y,NA,0.098221,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803594 +GCP,us-west2,c3d-standard-4 (-lssd),spot,NA,0.053664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803567 +GCP,us-west2,c3d-standard-60 (-lssd),on_demand,NA,2.246479,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807749 +GCP,us-west2,c3d-standard-60 (-lssd),reserved_1y,NA,2.062803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807778 +GCP,us-west2,c3d-standard-60 (-lssd),reserved_3y,NA,1.473318,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807792 +GCP,us-west2,c3d-standard-60 (-lssd),spot,NA,0.80496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807763 +GCP,us-west2,c3d-standard-8 (-lssd),on_demand,NA,0.299531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804611 +GCP,us-west2,c3d-standard-8 (-lssd),reserved_1y,NA,0.27504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804638 +GCP,us-west2,c3d-standard-8 (-lssd),reserved_3y,NA,0.196442,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804651 +GCP,us-west2,c3d-standard-8 (-lssd),spot,NA,0.107328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804624 +GCP,us-west2,c3d-standard-90 (-lssd),on_demand,NA,3.369719,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808821 +GCP,us-west2,c3d-standard-90 (-lssd),reserved_1y,NA,3.094205,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808851 +GCP,us-west2,c3d-standard-90 (-lssd),reserved_3y,NA,2.209977,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808865 +GCP,us-west2,c3d-standard-90 (-lssd),spot,NA,1.20744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808835 +GCP,us-west2,c4-standard-16,on_demand,NA,0.350677,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840856 +GCP,us-west2,c4-standard-16,reserved_1y,NA,0.598814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840887 +GCP,us-west2,c4-standard-16,reserved_3y,NA,0.427717,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840902 +GCP,us-west2,c4-standard-16,spot,NA,0.348658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840871 +GCP,us-west2,c4-standard-2,on_demand,NA,0.041468,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837526 +GCP,us-west2,c4-standard-2,reserved_1y,NA,0.073361,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837555 +GCP,us-west2,c4-standard-2,reserved_3y,NA,0.0524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837569 +GCP,us-west2,c4-standard-2,spot,NA,0.042898,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837541 +GCP,us-west2,c4-standard-24,on_demand,NA,0.526015,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841894 +GCP,us-west2,c4-standard-24,reserved_1y,NA,0.898221,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841921 +GCP,us-west2,c4-standard-24,reserved_3y,NA,0.641575,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841935 +GCP,us-west2,c4-standard-24,spot,NA,0.522987,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841907 +GCP,us-west2,c4-standard-32,on_demand,NA,0.701353,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843092 +GCP,us-west2,c4-standard-32,reserved_1y,NA,1.197628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843124 +GCP,us-west2,c4-standard-32,reserved_3y,NA,0.855434,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843139 +GCP,us-west2,c4-standard-32,spot,NA,0.697316,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843110 +GCP,us-west2,c4-standard-4,on_demand,NA,0.087669,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838632 +GCP,us-west2,c4-standard-4,reserved_1y,NA,0.149704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838659 +GCP,us-west2,c4-standard-4,reserved_3y,NA,0.106929,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838673 +GCP,us-west2,c4-standard-4,spot,NA,0.087164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838646 +GCP,us-west2,c4-standard-8,on_demand,NA,0.175338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839659 +GCP,us-west2,c4-standard-8,reserved_1y,NA,0.299407,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839685 +GCP,us-west2,c4-standard-8,reserved_3y,NA,0.213858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839699 +GCP,us-west2,c4-standard-8,spot,NA,0.174329,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839672 +GCP,us-west2,c4a-highmem-16 (-lssd),on_demand,NA,0.113286,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831524 +GCP,us-west2,c4a-highmem-16 (-lssd),reserved_1y,NA,0.747225,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831553 +GCP,us-west2,c4a-highmem-16 (-lssd),reserved_3y,NA,0.510268,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831567 +GCP,us-west2,c4a-highmem-16 (-lssd),spot,NA,0.452759,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831539 +GCP,us-west2,c4a-highmem-32 (-lssd),on_demand,NA,0.226572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832778 +GCP,us-west2,c4a-highmem-32 (-lssd),reserved_1y,NA,1.494451,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832805 +GCP,us-west2,c4a-highmem-32 (-lssd),reserved_3y,NA,1.020535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832819 +GCP,us-west2,c4a-highmem-32 (-lssd),spot,NA,0.905518,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832791 +GCP,us-west2,c4a-highmem-4 (-lssd),on_demand,NA,0.028321,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829100 +GCP,us-west2,c4a-highmem-4 (-lssd),reserved_1y,NA,0.186806,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829128 +GCP,us-west2,c4a-highmem-4 (-lssd),reserved_3y,NA,0.127567,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829141 +GCP,us-west2,c4a-highmem-4 (-lssd),spot,NA,0.11319,USD,GCP Cloud Billing API,2025-11-30T12:53:25.829114 +GCP,us-west2,c4a-highmem-48 (-lssd),on_demand,NA,0.339858,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833993 +GCP,us-west2,c4a-highmem-48 (-lssd),reserved_1y,NA,2.241676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834022 +GCP,us-west2,c4a-highmem-48 (-lssd),reserved_3y,NA,1.530803,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834036 +GCP,us-west2,c4a-highmem-48 (-lssd),spot,NA,1.358277,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834007 +GCP,us-west2,c4a-highmem-64 (-lssd),on_demand,NA,0.453144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835180 +GCP,us-west2,c4a-highmem-64 (-lssd),reserved_1y,NA,2.988901,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835206 +GCP,us-west2,c4a-highmem-64 (-lssd),reserved_3y,NA,2.041071,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835219 +GCP,us-west2,c4a-highmem-64 (-lssd),spot,NA,1.811036,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835193 +GCP,us-west2,c4a-highmem-72 (-lssd),on_demand,NA,0.509787,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836359 +GCP,us-west2,c4a-highmem-72 (-lssd),reserved_1y,NA,3.362514,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836385 +GCP,us-west2,c4a-highmem-72 (-lssd),reserved_3y,NA,2.296205,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836398 +GCP,us-west2,c4a-highmem-72 (-lssd),spot,NA,2.037415,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836372 +GCP,us-west2,c4a-highmem-8 (-lssd),on_demand,NA,0.056643,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830313 +GCP,us-west2,c4a-highmem-8 (-lssd),reserved_1y,NA,0.373613,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830341 +GCP,us-west2,c4a-highmem-8 (-lssd),reserved_3y,NA,0.255134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830355 +GCP,us-west2,c4a-highmem-8 (-lssd),spot,NA,0.226379,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830327 +GCP,us-west2,c4a-standard-16 (-lssd),on_demand,NA,0.086359,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822994 +GCP,us-west2,c4a-standard-16 (-lssd),reserved_1y,NA,0.569507,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823022 +GCP,us-west2,c4a-standard-16 (-lssd),reserved_3y,NA,0.388711,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823036 +GCP,us-west2,c4a-standard-16 (-lssd),spot,NA,0.345051,USD,GCP Cloud Billing API,2025-11-30T12:53:25.823008 +GCP,us-west2,c4a-standard-32 (-lssd),on_demand,NA,0.172718,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824251 +GCP,us-west2,c4a-standard-32 (-lssd),reserved_1y,NA,1.139014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824279 +GCP,us-west2,c4a-standard-32 (-lssd),reserved_3y,NA,0.777422,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824293 +GCP,us-west2,c4a-standard-32 (-lssd),spot,NA,0.690101,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824265 +GCP,us-west2,c4a-standard-4 (-lssd),on_demand,NA,0.02159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820532 +GCP,us-west2,c4a-standard-4 (-lssd),reserved_1y,NA,0.142377,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820560 +GCP,us-west2,c4a-standard-4 (-lssd),reserved_3y,NA,0.097178,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820575 +GCP,us-west2,c4a-standard-4 (-lssd),spot,NA,0.086263,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820546 +GCP,us-west2,c4a-standard-48 (-lssd),on_demand,NA,0.259077,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825470 +GCP,us-west2,c4a-standard-48 (-lssd),reserved_1y,NA,1.708521,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825498 +GCP,us-west2,c4a-standard-48 (-lssd),reserved_3y,NA,1.166134,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825512 +GCP,us-west2,c4a-standard-48 (-lssd),spot,NA,1.035152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825484 +GCP,us-west2,c4a-standard-64 (-lssd),on_demand,NA,0.345435,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826690 +GCP,us-west2,c4a-standard-64 (-lssd),reserved_1y,NA,2.278028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826718 +GCP,us-west2,c4a-standard-64 (-lssd),reserved_3y,NA,1.554845,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826732 +GCP,us-west2,c4a-standard-64 (-lssd),spot,NA,1.380203,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826704 +GCP,us-west2,c4a-standard-72 (-lssd),on_demand,NA,0.388615,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827911 +GCP,us-west2,c4a-standard-72 (-lssd),reserved_1y,NA,2.562781,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827938 +GCP,us-west2,c4a-standard-72 (-lssd),reserved_3y,NA,1.7492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827952 +GCP,us-west2,c4a-standard-72 (-lssd),spot,NA,1.552728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827925 +GCP,us-west2,c4a-standard-8 (-lssd),on_demand,NA,0.043179,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821773 +GCP,us-west2,c4a-standard-8 (-lssd),reserved_1y,NA,0.284753,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821801 +GCP,us-west2,c4a-standard-8 (-lssd),reserved_3y,NA,0.194356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821815 +GCP,us-west2,c4a-standard-8 (-lssd),spot,NA,0.172525,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821787 +GCP,us-west2,c4d-standard-16,on_demand,NA,0.598109,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848136 +GCP,us-west2,c4d-standard-16,reserved_1y,NA,0.544085,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848182 +GCP,us-west2,c4d-standard-16,reserved_3y,NA,0.388603,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848204 +GCP,us-west2,c4d-standard-16,spot,NA,0.212318,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.848159 +GCP,us-west2,c4d-standard-2,on_demand,NA,0.074407,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844238 +GCP,us-west2,c4d-standard-2,reserved_1y,NA,0.065762,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844284 +GCP,us-west2,c4d-standard-2,reserved_3y,NA,0.04697,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844307 +GCP,us-west2,c4d-standard-2,spot,NA,0.025663,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.844261 +GCP,us-west2,c4d-standard-32,on_demand,NA,1.196219,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849421 +GCP,us-west2,c4d-standard-32,reserved_1y,NA,1.08817,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849465 +GCP,us-west2,c4d-standard-32,reserved_3y,NA,0.777206,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849487 +GCP,us-west2,c4d-standard-32,spot,NA,0.424636,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.849443 +GCP,us-west2,c4d-standard-4,on_demand,NA,0.149289,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845534 +GCP,us-west2,c4d-standard-4,reserved_1y,NA,0.134522,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845579 +GCP,us-west2,c4d-standard-4,reserved_3y,NA,0.09608,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845601 +GCP,us-west2,c4d-standard-4,spot,NA,0.052495,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.845556 +GCP,us-west2,c4d-standard-8,on_demand,NA,0.299055,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846822 +GCP,us-west2,c4d-standard-8,reserved_1y,NA,0.272042,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846868 +GCP,us-west2,c4d-standard-8,reserved_3y,NA,0.194301,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846890 +GCP,us-west2,c4d-standard-8,spot,NA,0.106159,USD,GCP Cloud Billing API (fallback: c3d),2025-11-30T12:53:25.846845 +GCP,us-west2,e2_highcpu_16,on_demand,NA,0.475371,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764045 +GCP,us-west2,e2_highcpu_16,reserved_1y,NA,0.299484,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764072 +GCP,us-west2,e2_highcpu_16,reserved_3y,NA,0.213917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764086 +GCP,us-west2,e2_highcpu_16,spot,NA,0.1116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764058 +GCP,us-west2,e2_highcpu_32,on_demand,NA,0.950743,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765072 +GCP,us-west2,e2_highcpu_32,reserved_1y,NA,0.598968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765101 +GCP,us-west2,e2_highcpu_32,reserved_3y,NA,0.427834,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765115 +GCP,us-west2,e2_highcpu_32,spot,NA,0.2232,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765086 +GCP,us-west2,e2_highmem_16,on_demand,NA,0.868649,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762937 +GCP,us-west2,e2_highmem_16,reserved_1y,NA,0.547249,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762965 +GCP,us-west2,e2_highmem_16,reserved_3y,NA,0.390892,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762979 +GCP,us-west2,e2_highmem_16,spot,NA,0.204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762951 +GCP,us-west2,e2_highmem_2,on_demand,NA,0.108581,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759746 +GCP,us-west2,e2_highmem_2,reserved_1y,NA,0.068406,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759775 +GCP,us-west2,e2_highmem_2,reserved_3y,NA,0.048862,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759789 +GCP,us-west2,e2_highmem_2,spot,NA,0.0255,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759761 +GCP,us-west2,e2_highmem_4,on_demand,NA,0.217162,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760862 +GCP,us-west2,e2_highmem_4,reserved_1y,NA,0.136812,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760890 +GCP,us-west2,e2_highmem_4,reserved_3y,NA,0.097723,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760904 +GCP,us-west2,e2_highmem_4,spot,NA,0.051,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760876 +GCP,us-west2,e2_highmem_8,on_demand,NA,0.434325,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761882 +GCP,us-west2,e2_highmem_8,reserved_1y,NA,0.273625,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761910 +GCP,us-west2,e2_highmem_8,reserved_3y,NA,0.195446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761924 +GCP,us-west2,e2_highmem_8,spot,NA,0.102,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761896 +GCP,us-west2,e2_standard_16,on_demand,NA,0.643919,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768363 +GCP,us-west2,e2_standard_16,reserved_1y,NA,0.405669,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768392 +GCP,us-west2,e2_standard_16,reserved_3y,NA,0.289764,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768407 +GCP,us-west2,e2_standard_16,spot,NA,0.1512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768378 +GCP,us-west2,e2_standard_32,on_demand,NA,1.287838,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769460 +GCP,us-west2,e2_standard_32,reserved_1y,NA,0.811338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769488 +GCP,us-west2,e2_standard_32,reserved_3y,NA,0.579527,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769502 +GCP,us-west2,e2_standard_32,spot,NA,0.3024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769474 +GCP,us-west2,e2_standard_4,on_demand,NA,0.16098,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766232 +GCP,us-west2,e2_standard_4,reserved_1y,NA,0.101417,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766287 +GCP,us-west2,e2_standard_4,reserved_3y,NA,0.072441,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766304 +GCP,us-west2,e2_standard_4,spot,NA,0.0378,USD,GCP Cloud Billing API,2025-11-30T12:53:25.766247 +GCP,us-west2,e2_standard_8,on_demand,NA,0.32196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767342 +GCP,us-west2,e2_standard_8,reserved_1y,NA,0.202834,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767370 +GCP,us-west2,e2_standard_8,reserved_3y,NA,0.144882,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767383 +GCP,us-west2,e2_standard_8,spot,NA,0.0756,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767356 +GCP,us-west2,g2-standard-12,on_demand,NA,0.529376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786665 +GCP,us-west2,g2-standard-12,reserved_1y,NA,0.333507,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786693 +GCP,us-west2,g2-standard-12,reserved_3y,NA,0.238219,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786707 +GCP,us-west2,g2-standard-12,spot,NA,0.134976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786679 +GCP,us-west2,g2-standard-16,on_demand,NA,0.705835,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787718 +GCP,us-west2,g2-standard-16,reserved_1y,NA,0.444676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787746 +GCP,us-west2,g2-standard-16,reserved_3y,NA,0.317626,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787760 +GCP,us-west2,g2-standard-16,spot,NA,0.179968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787732 +GCP,us-west2,g2-standard-24,on_demand,NA,1.058752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788796 +GCP,us-west2,g2-standard-24,reserved_1y,NA,0.667014,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788824 +GCP,us-west2,g2-standard-24,reserved_3y,NA,0.476439,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788838 +GCP,us-west2,g2-standard-24,spot,NA,0.269952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788809 +GCP,us-west2,g2-standard-32,on_demand,NA,1.41167,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789829 +GCP,us-west2,g2-standard-32,reserved_1y,NA,0.889352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789857 +GCP,us-west2,g2-standard-32,reserved_3y,NA,0.635251,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789871 +GCP,us-west2,g2-standard-32,spot,NA,0.359936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789843 +GCP,us-west2,g2-standard-4,on_demand,NA,0.176459,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784589 +GCP,us-west2,g2-standard-4,reserved_1y,NA,0.111169,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784618 +GCP,us-west2,g2-standard-4,reserved_3y,NA,0.079406,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784632 +GCP,us-west2,g2-standard-4,spot,NA,0.044992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784603 +GCP,us-west2,g2-standard-48,on_demand,NA,2.117504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790870 +GCP,us-west2,g2-standard-48,reserved_1y,NA,1.334028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790898 +GCP,us-west2,g2-standard-48,reserved_3y,NA,0.952877,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790918 +GCP,us-west2,g2-standard-48,spot,NA,0.539904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790884 +GCP,us-west2,g2-standard-8,on_demand,NA,0.352917,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785636 +GCP,us-west2,g2-standard-8,reserved_1y,NA,0.222338,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785663 +GCP,us-west2,g2-standard-8,reserved_3y,NA,0.158813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785677 +GCP,us-west2,g2-standard-8,spot,NA,0.089984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785650 +GCP,us-west2,g2-standard-96,on_demand,NA,4.235009,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791942 +GCP,us-west2,g2-standard-96,reserved_1y,NA,2.668056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791972 +GCP,us-west2,g2-standard-96,reserved_3y,NA,1.905754,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791986 +GCP,us-west2,g2-standard-96,spot,NA,1.079808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791958 +GCP,us-west2,n1-highcpu-16,on_demand,NA,0.680802,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690756 +GCP,us-west2,n1-highcpu-16,spot,NA,0.208659,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690770 +GCP,us-west2,n1-highcpu-32,on_demand,NA,1.361603,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691623 +GCP,us-west2,n1-highcpu-32,spot,NA,0.417318,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691636 +GCP,us-west2,n1-highcpu-64,on_demand,NA,2.723206,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692536 +GCP,us-west2,n1-highcpu-64,spot,NA,0.834637,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692550 +GCP,us-west2,n1-highcpu-96,on_demand,NA,4.08481,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693371 +GCP,us-west2,n1-highcpu-96,spot,NA,1.251955,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693385 +GCP,us-west2,n1-highmem-16,on_demand,NA,1.136776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687236 +GCP,us-west2,n1-highmem-16,spot,NA,0.349152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687250 +GCP,us-west2,n1-highmem-32,on_demand,NA,2.273552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688119 +GCP,us-west2,n1-highmem-32,spot,NA,0.698304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688133 +GCP,us-west2,n1-highmem-4,on_demand,NA,0.284194,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685481 +GCP,us-west2,n1-highmem-4,spot,NA,0.087288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685495 +GCP,us-west2,n1-highmem-64,on_demand,NA,4.547104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689036 +GCP,us-west2,n1-highmem-64,spot,NA,1.396608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689050 +GCP,us-west2,n1-highmem-8,on_demand,NA,0.568388,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686315 +GCP,us-west2,n1-highmem-8,spot,NA,0.174576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686328 +GCP,us-west2,n1-highmem-96,on_demand,NA,6.820656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689871 +GCP,us-west2,n1-highmem-96,spot,NA,2.094912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689885 +GCP,us-west2,n1-standard-16,on_demand,NA,0.91286,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681566 +GCP,us-west2,n1-standard-16,spot,NA,0.28016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681580 +GCP,us-west2,n1-standard-32,on_demand,NA,1.82572,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682441 +GCP,us-west2,n1-standard-32,spot,NA,0.56032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682456 +GCP,us-west2,n1-standard-4,on_demand,NA,0.228215,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679811 +GCP,us-west2,n1-standard-4,spot,NA,0.07004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679825 +GCP,us-west2,n1-standard-64,on_demand,NA,3.65144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683416 +GCP,us-west2,n1-standard-64,spot,NA,1.12064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683429 +GCP,us-west2,n1-standard-8,on_demand,NA,0.45643,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680715 +GCP,us-west2,n1-standard-8,spot,NA,0.14008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680729 +GCP,us-west2,n1-standard-96,on_demand,NA,5.47716,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684551 +GCP,us-west2,n1-standard-96,spot,NA,1.68096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684565 +GCP,us-west2,n2-highcpu-16,on_demand,NA,0.233304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711085 +GCP,us-west2,n2-highcpu-16,reserved_1y,NA,0.434032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711112 +GCP,us-west2,n2-highcpu-16,reserved_3y,NA,0.310032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711125 +GCP,us-west2,n2-highcpu-16,spot,NA,0.185168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711098 +GCP,us-west2,n2-highcpu-32,on_demand,NA,0.466608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712190 +GCP,us-west2,n2-highcpu-32,reserved_1y,NA,0.868064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712218 +GCP,us-west2,n2-highcpu-32,reserved_3y,NA,0.620064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712231 +GCP,us-west2,n2-highcpu-32,spot,NA,0.370336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712204 +GCP,us-west2,n2-highcpu-48,on_demand,NA,0.699912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713282 +GCP,us-west2,n2-highcpu-48,reserved_1y,NA,1.302096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713309 +GCP,us-west2,n2-highcpu-48,reserved_3y,NA,0.930096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713323 +GCP,us-west2,n2-highcpu-48,spot,NA,0.555504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713296 +GCP,us-west2,n2-highcpu-64,on_demand,NA,0.933216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714398 +GCP,us-west2,n2-highcpu-64,reserved_1y,NA,1.736128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714425 +GCP,us-west2,n2-highcpu-64,reserved_3y,NA,1.240128,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714439 +GCP,us-west2,n2-highcpu-64,spot,NA,0.740672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714411 +GCP,us-west2,n2-highcpu-80,on_demand,NA,1.16652,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715489 +GCP,us-west2,n2-highcpu-80,reserved_1y,NA,2.17016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715516 +GCP,us-west2,n2-highcpu-80,reserved_3y,NA,1.55016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715529 +GCP,us-west2,n2-highcpu-80,spot,NA,0.92584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715503 +GCP,us-west2,n2-highmem-16,on_demand,NA,0.803272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705489 +GCP,us-west2,n2-highmem-16,reserved_1y,NA,0.793104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705518 +GCP,us-west2,n2-highmem-16,reserved_3y,NA,0.566512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705532 +GCP,us-west2,n2-highmem-16,spot,NA,0.338944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705503 +GCP,us-west2,n2-highmem-2,on_demand,NA,0.100409,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702149 +GCP,us-west2,n2-highmem-2,reserved_1y,NA,0.099138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702177 +GCP,us-west2,n2-highmem-2,reserved_3y,NA,0.070814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702191 +GCP,us-west2,n2-highmem-2,spot,NA,0.042368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.702163 +GCP,us-west2,n2-highmem-32,on_demand,NA,1.606544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706619 +GCP,us-west2,n2-highmem-32,reserved_1y,NA,1.586208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706648 +GCP,us-west2,n2-highmem-32,reserved_3y,NA,1.133024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706662 +GCP,us-west2,n2-highmem-32,spot,NA,0.677888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706634 +GCP,us-west2,n2-highmem-4,on_demand,NA,0.200818,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703253 +GCP,us-west2,n2-highmem-4,reserved_1y,NA,0.198276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703281 +GCP,us-west2,n2-highmem-4,reserved_3y,NA,0.141628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703296 +GCP,us-west2,n2-highmem-4,spot,NA,0.084736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703267 +GCP,us-west2,n2-highmem-48,on_demand,NA,2.409816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707750 +GCP,us-west2,n2-highmem-48,reserved_1y,NA,2.379312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707778 +GCP,us-west2,n2-highmem-48,reserved_3y,NA,1.699536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707792 +GCP,us-west2,n2-highmem-48,spot,NA,1.016832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707764 +GCP,us-west2,n2-highmem-64,on_demand,NA,3.213088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708851 +GCP,us-west2,n2-highmem-64,reserved_1y,NA,3.172416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708879 +GCP,us-west2,n2-highmem-64,reserved_3y,NA,2.266048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708893 +GCP,us-west2,n2-highmem-64,spot,NA,1.355776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708865 +GCP,us-west2,n2-highmem-8,on_demand,NA,0.401636,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704404 +GCP,us-west2,n2-highmem-8,reserved_1y,NA,0.396552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704433 +GCP,us-west2,n2-highmem-8,reserved_3y,NA,0.283256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704447 +GCP,us-west2,n2-highmem-8,spot,NA,0.169472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704418 +GCP,us-west2,n2-highmem-80,on_demand,NA,4.01636,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709945 +GCP,us-west2,n2-highmem-80,reserved_1y,NA,3.96552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709973 +GCP,us-west2,n2-highmem-80,reserved_3y,NA,2.83256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709987 +GCP,us-west2,n2-highmem-80,spot,NA,1.69472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709959 +GCP,us-west2,n2-standard-16,on_demand,NA,0.477576,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696574 +GCP,us-west2,n2-standard-16,reserved_1y,NA,0.58792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696605 +GCP,us-west2,n2-standard-16,reserved_3y,NA,0.419952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696619 +GCP,us-west2,n2-standard-16,spot,NA,0.251072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696589 +GCP,us-west2,n2-standard-32,on_demand,NA,0.955152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697700 +GCP,us-west2,n2-standard-32,reserved_1y,NA,1.17584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697729 +GCP,us-west2,n2-standard-32,reserved_3y,NA,0.839904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697744 +GCP,us-west2,n2-standard-32,spot,NA,0.502144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697715 +GCP,us-west2,n2-standard-4,on_demand,NA,0.119394,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694266 +GCP,us-west2,n2-standard-4,reserved_1y,NA,0.14698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694294 +GCP,us-west2,n2-standard-4,reserved_3y,NA,0.104988,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694309 +GCP,us-west2,n2-standard-4,spot,NA,0.062768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694280 +GCP,us-west2,n2-standard-48,on_demand,NA,1.432728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698806 +GCP,us-west2,n2-standard-48,reserved_1y,NA,1.76376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698835 +GCP,us-west2,n2-standard-48,reserved_3y,NA,1.259856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698850 +GCP,us-west2,n2-standard-48,spot,NA,0.753216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698821 +GCP,us-west2,n2-standard-64,on_demand,NA,1.910304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699929 +GCP,us-west2,n2-standard-64,reserved_1y,NA,2.35168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699958 +GCP,us-west2,n2-standard-64,reserved_3y,NA,1.679808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699972 +GCP,us-west2,n2-standard-64,spot,NA,1.004288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699944 +GCP,us-west2,n2-standard-8,on_demand,NA,0.238788,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695364 +GCP,us-west2,n2-standard-8,reserved_1y,NA,0.29396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695447 +GCP,us-west2,n2-standard-8,reserved_3y,NA,0.209976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695462 +GCP,us-west2,n2-standard-8,spot,NA,0.125536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695430 +GCP,us-west2,n2-standard-80,on_demand,NA,2.38788,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701063 +GCP,us-west2,n2-standard-80,reserved_1y,NA,2.9396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701090 +GCP,us-west2,n2-standard-80,reserved_3y,NA,2.09976,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701104 +GCP,us-west2,n2-standard-80,spot,NA,1.25536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701077 +GCP,us-west2,n2d-highcpu-128,on_demand,NA,1.113754,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752472 +GCP,us-west2,n2d-highcpu-128,reserved_1y,NA,3.0208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752501 +GCP,us-west2,n2d-highcpu-128,reserved_3y,NA,2.157824,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752515 +GCP,us-west2,n2d-highcpu-128,spot,NA,1.375872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752487 +GCP,us-west2,n2d-highcpu-16,on_demand,NA,0.139219,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746171 +GCP,us-west2,n2d-highcpu-16,reserved_1y,NA,0.3776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746198 +GCP,us-west2,n2d-highcpu-16,reserved_3y,NA,0.269728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746212 +GCP,us-west2,n2d-highcpu-16,spot,NA,0.171984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746184 +GCP,us-west2,n2d-highcpu-224,on_demand,NA,1.949069,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753501 +GCP,us-west2,n2d-highcpu-224,reserved_1y,NA,5.2864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753529 +GCP,us-west2,n2d-highcpu-224,reserved_3y,NA,3.776192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753543 +GCP,us-west2,n2d-highcpu-224,spot,NA,2.407776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753515 +GCP,us-west2,n2d-highcpu-32,on_demand,NA,0.278438,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747200 +GCP,us-west2,n2d-highcpu-32,reserved_1y,NA,0.7552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747229 +GCP,us-west2,n2d-highcpu-32,reserved_3y,NA,0.539456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747244 +GCP,us-west2,n2d-highcpu-32,spot,NA,0.343968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747214 +GCP,us-west2,n2d-highcpu-48,on_demand,NA,0.417658,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748284 +GCP,us-west2,n2d-highcpu-48,reserved_1y,NA,1.1328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748312 +GCP,us-west2,n2d-highcpu-48,reserved_3y,NA,0.809184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748326 +GCP,us-west2,n2d-highcpu-48,spot,NA,0.515952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748298 +GCP,us-west2,n2d-highcpu-64,on_demand,NA,0.556877,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749323 +GCP,us-west2,n2d-highcpu-64,reserved_1y,NA,1.5104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749351 +GCP,us-west2,n2d-highcpu-64,reserved_3y,NA,1.078912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749365 +GCP,us-west2,n2d-highcpu-64,spot,NA,0.687936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749337 +GCP,us-west2,n2d-highcpu-80,on_demand,NA,0.696096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750367 +GCP,us-west2,n2d-highcpu-80,reserved_1y,NA,1.888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750396 +GCP,us-west2,n2d-highcpu-80,reserved_3y,NA,1.34864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750411 +GCP,us-west2,n2d-highcpu-80,spot,NA,0.85992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750381 +GCP,us-west2,n2d-highcpu-96,on_demand,NA,0.835315,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751419 +GCP,us-west2,n2d-highcpu-96,reserved_1y,NA,2.2656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751447 +GCP,us-west2,n2d-highcpu-96,reserved_3y,NA,1.618368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751460 +GCP,us-west2,n2d-highcpu-96,spot,NA,1.031904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751433 +GCP,us-west2,n2d-highmem-16,on_demand,NA,0.188802,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739883 +GCP,us-west2,n2d-highmem-16,reserved_1y,NA,0.689968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739909 +GCP,us-west2,n2d-highmem-16,reserved_3y,NA,0.492832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739923 +GCP,us-west2,n2d-highmem-16,spot,NA,0.320832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739895 +GCP,us-west2,n2d-highmem-2,on_demand,NA,0.0236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736671 +GCP,us-west2,n2d-highmem-2,reserved_1y,NA,0.086246,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736699 +GCP,us-west2,n2d-highmem-2,reserved_3y,NA,0.061604,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736713 +GCP,us-west2,n2d-highmem-2,spot,NA,0.040104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736685 +GCP,us-west2,n2d-highmem-32,on_demand,NA,0.377603,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740923 +GCP,us-west2,n2d-highmem-32,reserved_1y,NA,1.379936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740950 +GCP,us-west2,n2d-highmem-32,reserved_3y,NA,0.985664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740963 +GCP,us-west2,n2d-highmem-32,spot,NA,0.641664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740936 +GCP,us-west2,n2d-highmem-4,on_demand,NA,0.0472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737700 +GCP,us-west2,n2d-highmem-4,reserved_1y,NA,0.172492,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737729 +GCP,us-west2,n2d-highmem-4,reserved_3y,NA,0.123208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737743 +GCP,us-west2,n2d-highmem-4,spot,NA,0.080208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737715 +GCP,us-west2,n2d-highmem-48,on_demand,NA,0.566405,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741932 +GCP,us-west2,n2d-highmem-48,reserved_1y,NA,2.069904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741960 +GCP,us-west2,n2d-highmem-48,reserved_3y,NA,1.478496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741973 +GCP,us-west2,n2d-highmem-48,spot,NA,0.962496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741946 +GCP,us-west2,n2d-highmem-64,on_demand,NA,0.755206,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743045 +GCP,us-west2,n2d-highmem-64,reserved_1y,NA,2.759872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743071 +GCP,us-west2,n2d-highmem-64,reserved_3y,NA,1.971328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743085 +GCP,us-west2,n2d-highmem-64,spot,NA,1.283328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743058 +GCP,us-west2,n2d-highmem-8,on_demand,NA,0.094401,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738801 +GCP,us-west2,n2d-highmem-8,reserved_1y,NA,0.344984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738829 +GCP,us-west2,n2d-highmem-8,reserved_3y,NA,0.246416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738843 +GCP,us-west2,n2d-highmem-8,spot,NA,0.160416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738815 +GCP,us-west2,n2d-highmem-80,on_demand,NA,0.944008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744105 +GCP,us-west2,n2d-highmem-80,reserved_1y,NA,3.44984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744131 +GCP,us-west2,n2d-highmem-80,reserved_3y,NA,2.46416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744144 +GCP,us-west2,n2d-highmem-80,spot,NA,1.60416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744118 +GCP,us-west2,n2d-highmem-96,on_demand,NA,1.13281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745156 +GCP,us-west2,n2d-highmem-96,reserved_1y,NA,4.139808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745183 +GCP,us-west2,n2d-highmem-96,reserved_3y,NA,2.956992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745197 +GCP,us-west2,n2d-highmem-96,spot,NA,1.924992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745169 +GCP,us-west2,n2d-standard-128,on_demand,NA,1.28375,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734582 +GCP,us-west2,n2d-standard-128,reserved_1y,NA,4.091776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734610 +GCP,us-west2,n2d-standard-128,reserved_3y,NA,2.922752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734624 +GCP,us-west2,n2d-standard-128,spot,NA,1.886208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734596 +GCP,us-west2,n2d-standard-16,on_demand,NA,0.160469,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728267 +GCP,us-west2,n2d-standard-16,reserved_1y,NA,0.511472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728295 +GCP,us-west2,n2d-standard-16,reserved_3y,NA,0.365344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728309 +GCP,us-west2,n2d-standard-16,spot,NA,0.235776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728281 +GCP,us-west2,n2d-standard-224,on_demand,NA,2.246563,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735626 +GCP,us-west2,n2d-standard-224,reserved_1y,NA,7.160608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735654 +GCP,us-west2,n2d-standard-224,reserved_3y,NA,5.114816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735668 +GCP,us-west2,n2d-standard-224,spot,NA,3.300864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735640 +GCP,us-west2,n2d-standard-32,on_demand,NA,0.320938,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729303 +GCP,us-west2,n2d-standard-32,reserved_1y,NA,1.022944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729330 +GCP,us-west2,n2d-standard-32,reserved_3y,NA,0.730688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729344 +GCP,us-west2,n2d-standard-32,spot,NA,0.471552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729317 +GCP,us-west2,n2d-standard-4,on_demand,NA,0.040117,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726133 +GCP,us-west2,n2d-standard-4,reserved_1y,NA,0.127868,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726163 +GCP,us-west2,n2d-standard-4,reserved_3y,NA,0.091336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726177 +GCP,us-west2,n2d-standard-4,spot,NA,0.058944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726148 +GCP,us-west2,n2d-standard-48,on_demand,NA,0.481406,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730332 +GCP,us-west2,n2d-standard-48,reserved_1y,NA,1.534416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730360 +GCP,us-west2,n2d-standard-48,reserved_3y,NA,1.096032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730373 +GCP,us-west2,n2d-standard-48,spot,NA,0.707328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730346 +GCP,us-west2,n2d-standard-64,on_demand,NA,0.641875,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731416 +GCP,us-west2,n2d-standard-64,reserved_1y,NA,2.045888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731443 +GCP,us-west2,n2d-standard-64,reserved_3y,NA,1.461376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731458 +GCP,us-west2,n2d-standard-64,spot,NA,0.943104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731429 +GCP,us-west2,n2d-standard-8,on_demand,NA,0.080234,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727208 +GCP,us-west2,n2d-standard-8,reserved_1y,NA,0.255736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727237 +GCP,us-west2,n2d-standard-8,reserved_3y,NA,0.182672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727250 +GCP,us-west2,n2d-standard-8,spot,NA,0.117888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727222 +GCP,us-west2,n2d-standard-80,on_demand,NA,0.802344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732486 +GCP,us-west2,n2d-standard-80,reserved_1y,NA,2.55736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732514 +GCP,us-west2,n2d-standard-80,reserved_3y,NA,1.82672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732528 +GCP,us-west2,n2d-standard-80,spot,NA,1.17888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732500 +GCP,us-west2,n2d-standard-96,on_demand,NA,0.962813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733515 +GCP,us-west2,n2d-standard-96,reserved_1y,NA,3.068832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733542 +GCP,us-west2,n2d-standard-96,reserved_3y,NA,2.192064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733555 +GCP,us-west2,n2d-standard-96,spot,NA,1.414656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733528 +GCP,us-west2,n4-standard-16,on_demand,NA,0.131192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757657 +GCP,us-west2,n4-standard-16,reserved_1y,NA,0.549504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757685 +GCP,us-west2,n4-standard-16,reserved_3y,NA,0.392519,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757699 +GCP,us-west2,n4-standard-16,spot,NA,0.364561,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757671 +GCP,us-west2,n4-standard-2,on_demand,NA,0.016399,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754531 +GCP,us-west2,n4-standard-2,reserved_1y,NA,0.068688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754559 +GCP,us-west2,n4-standard-2,reserved_3y,NA,0.049065,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754573 +GCP,us-west2,n4-standard-2,spot,NA,0.04557,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754545 +GCP,us-west2,n4-standard-32,on_demand,NA,0.262385,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758697 +GCP,us-west2,n4-standard-32,reserved_1y,NA,1.099008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758725 +GCP,us-west2,n4-standard-32,reserved_3y,NA,0.785039,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758739 +GCP,us-west2,n4-standard-32,spot,NA,0.729123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758711 +GCP,us-west2,n4-standard-4,on_demand,NA,0.032798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755581 +GCP,us-west2,n4-standard-4,reserved_1y,NA,0.137376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755609 +GCP,us-west2,n4-standard-4,reserved_3y,NA,0.09813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755622 +GCP,us-west2,n4-standard-4,spot,NA,0.09114,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755595 +GCP,us-west2,n4-standard-8,on_demand,NA,0.065596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756631 +GCP,us-west2,n4-standard-8,reserved_1y,NA,0.274752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756658 +GCP,us-west2,n4-standard-8,reserved_3y,NA,0.19626,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756672 +GCP,us-west2,n4-standard-8,spot,NA,0.182281,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756645 +GCP,us-west4,a2-highgpu-1g,on_demand,NA,0.832795,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770263 +GCP,us-west4,a2-highgpu-1g,reserved_1y,NA,0.524633,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770291 +GCP,us-west4,a2-highgpu-1g,reserved_3y,NA,0.291502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770305 +GCP,us-west4,a2-highgpu-1g,spot,NA,0.33306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.770277 +GCP,us-west4,a2-highgpu-2g,on_demand,NA,1.66559,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771299 +GCP,us-west4,a2-highgpu-2g,reserved_1y,NA,1.049267,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771325 +GCP,us-west4,a2-highgpu-2g,reserved_3y,NA,0.583004,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771338 +GCP,us-west4,a2-highgpu-2g,spot,NA,0.66612,USD,GCP Cloud Billing API,2025-11-30T12:53:25.771312 +GCP,us-west4,a2-highgpu-4g,on_demand,NA,3.33118,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772397 +GCP,us-west4,a2-highgpu-4g,reserved_1y,NA,2.098534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772424 +GCP,us-west4,a2-highgpu-4g,reserved_3y,NA,1.166007,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772438 +GCP,us-west4,a2-highgpu-4g,spot,NA,1.33224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.772411 +GCP,us-west4,a2-highgpu-8g,on_demand,NA,6.66236,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773492 +GCP,us-west4,a2-highgpu-8g,reserved_1y,NA,4.197067,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773563 +GCP,us-west4,a2-highgpu-8g,reserved_3y,NA,2.332015,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773586 +GCP,us-west4,a2-highgpu-8g,spot,NA,2.66448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.773506 +GCP,us-west4,a2-megagpu-16g,on_demand,NA,9.90664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774653 +GCP,us-west4,a2-megagpu-16g,reserved_1y,NA,6.240739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774681 +GCP,us-west4,a2-megagpu-16g,reserved_3y,NA,3.467698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774695 +GCP,us-west4,a2-megagpu-16g,spot,NA,3.96192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.774668 +GCP,us-west4,a2-ultragpu-1g,on_demand,NA,1.23833,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775741 +GCP,us-west4,a2-ultragpu-1g,reserved_1y,NA,0.780092,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775769 +GCP,us-west4,a2-ultragpu-1g,reserved_3y,NA,0.433462,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775783 +GCP,us-west4,a2-ultragpu-1g,spot,NA,0.49524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.775755 +GCP,us-west4,a2-ultragpu-2g,on_demand,NA,2.47666,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776848 +GCP,us-west4,a2-ultragpu-2g,reserved_1y,NA,1.560185,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776880 +GCP,us-west4,a2-ultragpu-2g,reserved_3y,NA,0.866924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776894 +GCP,us-west4,a2-ultragpu-2g,spot,NA,0.99048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.776864 +GCP,us-west4,a2-ultragpu-4g,on_demand,NA,4.95332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777928 +GCP,us-west4,a2-ultragpu-4g,reserved_1y,NA,3.12037,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777956 +GCP,us-west4,a2-ultragpu-4g,reserved_3y,NA,1.733849,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777970 +GCP,us-west4,a2-ultragpu-4g,spot,NA,1.98096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.777942 +GCP,us-west4,a2-ultragpu-8g,on_demand,NA,9.90664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778972 +GCP,us-west4,a2-ultragpu-8g,reserved_1y,NA,6.240739,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779001 +GCP,us-west4,a2-ultragpu-8g,reserved_3y,NA,3.467698,USD,GCP Cloud Billing API,2025-11-30T12:53:25.779015 +GCP,us-west4,a2-ultragpu-8g,spot,NA,3.96192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.778986 +GCP,us-west4,a3-highgpu-1g,on_demand,NA,0.969446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780070 +GCP,us-west4,a3-highgpu-1g,reserved_1y,NA,0.926235,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780100 +GCP,us-west4,a3-highgpu-1g,reserved_3y,NA,0.586986,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780114 +GCP,us-west4,a3-highgpu-1g,spot,NA,0.23972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.780085 +GCP,us-west4,a3-highgpu-2g,on_demand,NA,0.969446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781134 +GCP,us-west4,a3-highgpu-2g,reserved_1y,NA,0.926235,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781162 +GCP,us-west4,a3-highgpu-2g,reserved_3y,NA,0.586986,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781176 +GCP,us-west4,a3-highgpu-2g,spot,NA,0.23972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.781148 +GCP,us-west4,a3-highgpu-4g,on_demand,NA,0.969446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782174 +GCP,us-west4,a3-highgpu-4g,reserved_1y,NA,0.926235,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782202 +GCP,us-west4,a3-highgpu-4g,reserved_3y,NA,0.586986,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782215 +GCP,us-west4,a3-highgpu-4g,spot,NA,0.23972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.782188 +GCP,us-west4,a3-highgpu-8g,on_demand,NA,0.969446,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783303 +GCP,us-west4,a3-highgpu-8g,reserved_1y,NA,0.926235,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783331 +GCP,us-west4,a3-highgpu-8g,reserved_3y,NA,0.586986,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783345 +GCP,us-west4,a3-highgpu-8g,spot,NA,0.23972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.783317 +GCP,us-west4,c2-standard-16,on_demand,NA,0.818048,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720855 +GCP,us-west4,c2-standard-16,reserved_1y,NA,0.515408,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720902 +GCP,us-west4,c2-standard-16,reserved_3y,NA,0.368112,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720925 +GCP,us-west4,c2-standard-16,spot,NA,0.130816,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.720878 +GCP,us-west4,c2-standard-30,on_demand,NA,1.53384,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722526 +GCP,us-west4,c2-standard-30,reserved_1y,NA,0.96639,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722572 +GCP,us-west4,c2-standard-30,reserved_3y,NA,0.69021,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722594 +GCP,us-west4,c2-standard-30,spot,NA,0.24528,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.722548 +GCP,us-west4,c2-standard-4,on_demand,NA,0.204512,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.716440 +GCP,us-west4,c2-standard-4,reserved_1y,NA,0.128852,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717275 +GCP,us-west4,c2-standard-4,reserved_3y,NA,0.092028,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717300 +GCP,us-west4,c2-standard-4,spot,NA,0.032704,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.717248 +GCP,us-west4,c2-standard-60,on_demand,NA,3.06768,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724263 +GCP,us-west4,c2-standard-60,reserved_1y,NA,1.93278,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724309 +GCP,us-west4,c2-standard-60,reserved_3y,NA,1.38042,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724333 +GCP,us-west4,c2-standard-60,spot,NA,0.49056,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.724286 +GCP,us-west4,c2-standard-8,on_demand,NA,0.409024,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719096 +GCP,us-west4,c2-standard-8,reserved_1y,NA,0.257704,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719144 +GCP,us-west4,c2-standard-8,reserved_3y,NA,0.184056,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719167 +GCP,us-west4,c2-standard-8,spot,NA,0.065408,USD,GCP Cloud Billing API (fallback: c2d),2025-11-30T12:53:25.719120 +GCP,us-west4,c3-highmem-22,on_demand,NA,1.639204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800249 +GCP,us-west4,c3-highmem-22,reserved_1y,NA,1.032722,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800275 +GCP,us-west4,c3-highmem-22,reserved_3y,NA,0.737634,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800288 +GCP,us-west4,c3-highmem-22,spot,NA,0.239624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.800262 +GCP,us-west4,c3-highmem-4,on_demand,NA,0.298037,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798143 +GCP,us-west4,c3-highmem-4,reserved_1y,NA,0.187768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798171 +GCP,us-west4,c3-highmem-4,reserved_3y,NA,0.134115,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798185 +GCP,us-west4,c3-highmem-4,spot,NA,0.043568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.798157 +GCP,us-west4,c3-highmem-44,on_demand,NA,3.278407,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801256 +GCP,us-west4,c3-highmem-44,reserved_1y,NA,2.065445,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801283 +GCP,us-west4,c3-highmem-44,reserved_3y,NA,1.475267,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801296 +GCP,us-west4,c3-highmem-44,spot,NA,0.479248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.801270 +GCP,us-west4,c3-highmem-8,on_demand,NA,0.596074,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799198 +GCP,us-west4,c3-highmem-8,reserved_1y,NA,0.375535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799226 +GCP,us-west4,c3-highmem-8,reserved_3y,NA,0.26823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799242 +GCP,us-west4,c3-highmem-8,spot,NA,0.087136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.799212 +GCP,us-west4,c3-highmem-88,on_demand,NA,6.556815,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802272 +GCP,us-west4,c3-highmem-88,reserved_1y,NA,4.13089,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802299 +GCP,us-west4,c3-highmem-88,reserved_3y,NA,2.950534,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802313 +GCP,us-west4,c3-highmem-88,spot,NA,0.958496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.802286 +GCP,us-west4,c3-standard-22 (-lssd),on_demand,NA,1.248891,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794909 +GCP,us-west4,c3-standard-22 (-lssd),reserved_1y,NA,0.78682,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794949 +GCP,us-west4,c3-standard-22 (-lssd),reserved_3y,NA,0.562003,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794963 +GCP,us-west4,c3-standard-22 (-lssd),spot,NA,0.177672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.794935 +GCP,us-west4,c3-standard-4 (-lssd),on_demand,NA,0.227071,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792813 +GCP,us-west4,c3-standard-4 (-lssd),reserved_1y,NA,0.143058,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792840 +GCP,us-west4,c3-standard-4 (-lssd),reserved_3y,NA,0.102182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792853 +GCP,us-west4,c3-standard-4 (-lssd),spot,NA,0.032304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.792826 +GCP,us-west4,c3-standard-44 (-lssd),on_demand,NA,2.497782,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796035 +GCP,us-west4,c3-standard-44 (-lssd),reserved_1y,NA,1.573639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796063 +GCP,us-west4,c3-standard-44 (-lssd),reserved_3y,NA,1.124006,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796077 +GCP,us-west4,c3-standard-44 (-lssd),spot,NA,0.355344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.796049 +GCP,us-west4,c3-standard-8 (-lssd),on_demand,NA,0.454142,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793871 +GCP,us-west4,c3-standard-8 (-lssd),reserved_1y,NA,0.286116,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793899 +GCP,us-west4,c3-standard-8 (-lssd),reserved_3y,NA,0.204365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793913 +GCP,us-west4,c3-standard-8 (-lssd),spot,NA,0.064608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.793885 +GCP,us-west4,c3-standard-88 (-lssd),on_demand,NA,4.995565,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797085 +GCP,us-west4,c3-standard-88 (-lssd),reserved_1y,NA,3.147279,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797115 +GCP,us-west4,c3-standard-88 (-lssd),reserved_3y,NA,2.248013,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797128 +GCP,us-west4,c3-standard-88 (-lssd),spot,NA,0.710688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.797098 +GCP,us-west4,c3d-highmem-16 (-lssd),on_demand,NA,0.11035,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813866 +GCP,us-west4,c3d-highmem-16 (-lssd),reserved_1y,NA,0.69517,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813895 +GCP,us-west4,c3d-highmem-16 (-lssd),reserved_3y,NA,0.496491,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813909 +GCP,us-west4,c3d-highmem-16 (-lssd),spot,NA,0.247808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.813880 +GCP,us-west4,c3d-highmem-180 (-lssd),on_demand,NA,1.241441,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818214 +GCP,us-west4,c3d-highmem-180 (-lssd),reserved_1y,NA,7.820666,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818241 +GCP,us-west4,c3d-highmem-180 (-lssd),reserved_3y,NA,5.585524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818255 +GCP,us-west4,c3d-highmem-180 (-lssd),spot,NA,2.78784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.818227 +GCP,us-west4,c3d-highmem-30 (-lssd),on_demand,NA,0.206907,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815082 +GCP,us-west4,c3d-highmem-30 (-lssd),reserved_1y,NA,1.303444,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815110 +GCP,us-west4,c3d-highmem-30 (-lssd),reserved_3y,NA,0.930921,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815124 +GCP,us-west4,c3d-highmem-30 (-lssd),spot,NA,0.46464,USD,GCP Cloud Billing API,2025-11-30T12:53:25.815096 +GCP,us-west4,c3d-highmem-360 (-lssd),on_demand,NA,2.482883,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819251 +GCP,us-west4,c3d-highmem-360 (-lssd),reserved_1y,NA,15.641333,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819278 +GCP,us-west4,c3d-highmem-360 (-lssd),reserved_3y,NA,11.171048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819292 +GCP,us-west4,c3d-highmem-360 (-lssd),spot,NA,5.57568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.819265 +GCP,us-west4,c3d-highmem-4 (-lssd),on_demand,NA,0.027588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811750 +GCP,us-west4,c3d-highmem-4 (-lssd),reserved_1y,NA,0.173793,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811780 +GCP,us-west4,c3d-highmem-4 (-lssd),reserved_3y,NA,0.124123,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811793 +GCP,us-west4,c3d-highmem-4 (-lssd),spot,NA,0.061952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.811766 +GCP,us-west4,c3d-highmem-60 (-lssd),on_demand,NA,0.413814,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816146 +GCP,us-west4,c3d-highmem-60 (-lssd),reserved_1y,NA,2.606889,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816173 +GCP,us-west4,c3d-highmem-60 (-lssd),reserved_3y,NA,1.861841,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816187 +GCP,us-west4,c3d-highmem-60 (-lssd),spot,NA,0.92928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.816160 +GCP,us-west4,c3d-highmem-8 (-lssd),on_demand,NA,0.055175,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812815 +GCP,us-west4,c3d-highmem-8 (-lssd),reserved_1y,NA,0.347585,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812844 +GCP,us-west4,c3d-highmem-8 (-lssd),reserved_3y,NA,0.248246,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812858 +GCP,us-west4,c3d-highmem-8 (-lssd),spot,NA,0.123904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.812830 +GCP,us-west4,c3d-highmem-90 (-lssd),on_demand,NA,0.620721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817180 +GCP,us-west4,c3d-highmem-90 (-lssd),reserved_1y,NA,3.910333,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817208 +GCP,us-west4,c3d-highmem-90 (-lssd),reserved_3y,NA,2.792762,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817222 +GCP,us-west4,c3d-highmem-90 (-lssd),spot,NA,1.39392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.817194 +GCP,us-west4,c3d-standard-16 (-lssd),on_demand,NA,0.081813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805404 +GCP,us-west4,c3d-standard-16 (-lssd),reserved_1y,NA,0.515395,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805430 +GCP,us-west4,c3d-standard-16 (-lssd),reserved_3y,NA,0.368111,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805444 +GCP,us-west4,c3d-standard-16 (-lssd),spot,NA,0.183744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.805417 +GCP,us-west4,c3d-standard-180 (-lssd),on_demand,NA,0.920392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809646 +GCP,us-west4,c3d-standard-180 (-lssd),reserved_1y,NA,5.798192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809673 +GCP,us-west4,c3d-standard-180 (-lssd),reserved_3y,NA,4.141247,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809687 +GCP,us-west4,c3d-standard-180 (-lssd),spot,NA,2.06712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.809659 +GCP,us-west4,c3d-standard-30 (-lssd),on_demand,NA,0.153399,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806455 +GCP,us-west4,c3d-standard-30 (-lssd),reserved_1y,NA,0.966365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806484 +GCP,us-west4,c3d-standard-30 (-lssd),reserved_3y,NA,0.690208,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806500 +GCP,us-west4,c3d-standard-30 (-lssd),spot,NA,0.34452,USD,GCP Cloud Billing API,2025-11-30T12:53:25.806470 +GCP,us-west4,c3d-standard-360 (-lssd),on_demand,NA,1.840784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810701 +GCP,us-west4,c3d-standard-360 (-lssd),reserved_1y,NA,11.596384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810729 +GCP,us-west4,c3d-standard-360 (-lssd),reserved_3y,NA,8.282495,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810743 +GCP,us-west4,c3d-standard-360 (-lssd),spot,NA,4.13424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.810715 +GCP,us-west4,c3d-standard-4 (-lssd),on_demand,NA,0.020453,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803331 +GCP,us-west4,c3d-standard-4 (-lssd),reserved_1y,NA,0.128849,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803358 +GCP,us-west4,c3d-standard-4 (-lssd),reserved_3y,NA,0.092028,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803372 +GCP,us-west4,c3d-standard-4 (-lssd),spot,NA,0.045936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.803345 +GCP,us-west4,c3d-standard-60 (-lssd),on_demand,NA,0.306797,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807518 +GCP,us-west4,c3d-standard-60 (-lssd),reserved_1y,NA,1.932731,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807546 +GCP,us-west4,c3d-standard-60 (-lssd),reserved_3y,NA,1.380416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807561 +GCP,us-west4,c3d-standard-60 (-lssd),spot,NA,0.68904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.807532 +GCP,us-west4,c3d-standard-8 (-lssd),on_demand,NA,0.040906,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804384 +GCP,us-west4,c3d-standard-8 (-lssd),reserved_1y,NA,0.257697,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804413 +GCP,us-west4,c3d-standard-8 (-lssd),reserved_3y,NA,0.184055,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804426 +GCP,us-west4,c3d-standard-8 (-lssd),spot,NA,0.091872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.804400 +GCP,us-west4,c3d-standard-90 (-lssd),on_demand,NA,0.460196,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808590 +GCP,us-west4,c3d-standard-90 (-lssd),reserved_1y,NA,2.899096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808617 +GCP,us-west4,c3d-standard-90 (-lssd),reserved_3y,NA,2.070624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808632 +GCP,us-west4,c3d-standard-90 (-lssd),spot,NA,1.03356,USD,GCP Cloud Billing API,2025-11-30T12:53:25.808603 +GCP,us-west4,c4-standard-16,on_demand,NA,0.651033,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840598 +GCP,us-west4,c4-standard-16,reserved_1y,NA,0.561055,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840630 +GCP,us-west4,c4-standard-16,reserved_3y,NA,0.400747,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840645 +GCP,us-west4,c4-standard-16,spot,NA,0.356204,USD,GCP Cloud Billing API,2025-11-30T12:53:25.840614 +GCP,us-west4,c4-standard-2,on_demand,NA,0.081157,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837300 +GCP,us-west4,c4-standard-2,reserved_1y,NA,0.068735,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837327 +GCP,us-west4,c4-standard-2,reserved_3y,NA,0.049095,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837341 +GCP,us-west4,c4-standard-2,spot,NA,0.043639,USD,GCP Cloud Billing API,2025-11-30T12:53:25.837313 +GCP,us-west4,c4-standard-24,on_demand,NA,0.976549,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841669 +GCP,us-west4,c4-standard-24,reserved_1y,NA,0.841583,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841696 +GCP,us-west4,c4-standard-24,reserved_3y,NA,0.60112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841710 +GCP,us-west4,c4-standard-24,spot,NA,0.534306,USD,GCP Cloud Billing API,2025-11-30T12:53:25.841682 +GCP,us-west4,c4-standard-32,on_demand,NA,1.302066,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842748 +GCP,us-west4,c4-standard-32,reserved_1y,NA,1.12211,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842775 +GCP,us-west4,c4-standard-32,reserved_3y,NA,0.801493,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842788 +GCP,us-west4,c4-standard-32,spot,NA,0.712407,USD,GCP Cloud Billing API,2025-11-30T12:53:25.842761 +GCP,us-west4,c4-standard-4,on_demand,NA,0.162758,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838405 +GCP,us-west4,c4-standard-4,reserved_1y,NA,0.140264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838433 +GCP,us-west4,c4-standard-4,reserved_3y,NA,0.100187,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838447 +GCP,us-west4,c4-standard-4,spot,NA,0.089051,USD,GCP Cloud Billing API,2025-11-30T12:53:25.838419 +GCP,us-west4,c4-standard-8,on_demand,NA,0.325516,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839436 +GCP,us-west4,c4-standard-8,reserved_1y,NA,0.280528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839464 +GCP,us-west4,c4-standard-8,reserved_3y,NA,0.200373,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839477 +GCP,us-west4,c4-standard-8,spot,NA,0.178102,USD,GCP Cloud Billing API,2025-11-30T12:53:25.839450 +GCP,us-west4,c4a-highmem-16 (-lssd),on_demand,NA,0.561708,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831296 +GCP,us-west4,c4a-highmem-16 (-lssd),reserved_1y,NA,0.700108,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831324 +GCP,us-west4,c4a-highmem-16 (-lssd),reserved_3y,NA,0.478091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831337 +GCP,us-west4,c4a-highmem-16 (-lssd),spot,NA,0.42421,USD,GCP Cloud Billing API,2025-11-30T12:53:25.831310 +GCP,us-west4,c4a-highmem-32 (-lssd),on_demand,NA,1.123416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832556 +GCP,us-west4,c4a-highmem-32 (-lssd),reserved_1y,NA,1.400215,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832583 +GCP,us-west4,c4a-highmem-32 (-lssd),reserved_3y,NA,0.956183,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832597 +GCP,us-west4,c4a-highmem-32 (-lssd),spot,NA,0.848419,USD,GCP Cloud Billing API,2025-11-30T12:53:25.832570 +GCP,us-west4,c4a-highmem-4 (-lssd),on_demand,NA,0.140427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828882 +GCP,us-west4,c4a-highmem-4 (-lssd),reserved_1y,NA,0.175027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828909 +GCP,us-west4,c4a-highmem-4 (-lssd),reserved_3y,NA,0.119523,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828922 +GCP,us-west4,c4a-highmem-4 (-lssd),spot,NA,0.106052,USD,GCP Cloud Billing API,2025-11-30T12:53:25.828895 +GCP,us-west4,c4a-highmem-48 (-lssd),on_demand,NA,1.685124,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833764 +GCP,us-west4,c4a-highmem-48 (-lssd),reserved_1y,NA,2.100323,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833792 +GCP,us-west4,c4a-highmem-48 (-lssd),reserved_3y,NA,1.434274,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833806 +GCP,us-west4,c4a-highmem-48 (-lssd),spot,NA,1.272629,USD,GCP Cloud Billing API,2025-11-30T12:53:25.833778 +GCP,us-west4,c4a-highmem-64 (-lssd),on_demand,NA,2.246832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834965 +GCP,us-west4,c4a-highmem-64 (-lssd),reserved_1y,NA,2.800431,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834992 +GCP,us-west4,c4a-highmem-64 (-lssd),reserved_3y,NA,1.912365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.835005 +GCP,us-west4,c4a-highmem-64 (-lssd),spot,NA,1.696838,USD,GCP Cloud Billing API,2025-11-30T12:53:25.834979 +GCP,us-west4,c4a-highmem-72 (-lssd),on_demand,NA,2.527686,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836146 +GCP,us-west4,c4a-highmem-72 (-lssd),reserved_1y,NA,3.150485,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836172 +GCP,us-west4,c4a-highmem-72 (-lssd),reserved_3y,NA,2.151411,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836185 +GCP,us-west4,c4a-highmem-72 (-lssd),spot,NA,1.908943,USD,GCP Cloud Billing API,2025-11-30T12:53:25.836159 +GCP,us-west4,c4a-highmem-8 (-lssd),on_demand,NA,0.280854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830085 +GCP,us-west4,c4a-highmem-8 (-lssd),reserved_1y,NA,0.350054,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830114 +GCP,us-west4,c4a-highmem-8 (-lssd),reserved_3y,NA,0.239046,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830128 +GCP,us-west4,c4a-highmem-8 (-lssd),spot,NA,0.212105,USD,GCP Cloud Billing API,2025-11-30T12:53:25.830100 +GCP,us-west4,c4a-standard-16 (-lssd),on_demand,NA,0.308696,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822753 +GCP,us-west4,c4a-standard-16 (-lssd),reserved_1y,NA,0.533596,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822781 +GCP,us-west4,c4a-standard-16 (-lssd),reserved_3y,NA,0.3642,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822795 +GCP,us-west4,c4a-standard-16 (-lssd),spot,NA,0.323293,USD,GCP Cloud Billing API,2025-11-30T12:53:25.822767 +GCP,us-west4,c4a-standard-32 (-lssd),on_demand,NA,0.617392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824022 +GCP,us-west4,c4a-standard-32 (-lssd),reserved_1y,NA,1.067191,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824050 +GCP,us-west4,c4a-standard-32 (-lssd),reserved_3y,NA,0.7284,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824064 +GCP,us-west4,c4a-standard-32 (-lssd),spot,NA,0.646586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.824036 +GCP,us-west4,c4a-standard-4 (-lssd),on_demand,NA,0.077174,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820301 +GCP,us-west4,c4a-standard-4 (-lssd),reserved_1y,NA,0.133399,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820329 +GCP,us-west4,c4a-standard-4 (-lssd),reserved_3y,NA,0.09105,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820343 +GCP,us-west4,c4a-standard-4 (-lssd),spot,NA,0.080823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.820315 +GCP,us-west4,c4a-standard-48 (-lssd),on_demand,NA,0.926088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825242 +GCP,us-west4,c4a-standard-48 (-lssd),reserved_1y,NA,1.600787,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825270 +GCP,us-west4,c4a-standard-48 (-lssd),reserved_3y,NA,1.0926,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825284 +GCP,us-west4,c4a-standard-48 (-lssd),spot,NA,0.969879,USD,GCP Cloud Billing API,2025-11-30T12:53:25.825256 +GCP,us-west4,c4a-standard-64 (-lssd),on_demand,NA,1.234784,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826463 +GCP,us-west4,c4a-standard-64 (-lssd),reserved_1y,NA,2.134383,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826491 +GCP,us-west4,c4a-standard-64 (-lssd),reserved_3y,NA,1.456801,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826504 +GCP,us-west4,c4a-standard-64 (-lssd),spot,NA,1.293172,USD,GCP Cloud Billing API,2025-11-30T12:53:25.826477 +GCP,us-west4,c4a-standard-72 (-lssd),on_demand,NA,1.389133,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827673 +GCP,us-west4,c4a-standard-72 (-lssd),reserved_1y,NA,2.401181,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827700 +GCP,us-west4,c4a-standard-72 (-lssd),reserved_3y,NA,1.638901,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827713 +GCP,us-west4,c4a-standard-72 (-lssd),spot,NA,1.454819,USD,GCP Cloud Billing API,2025-11-30T12:53:25.827687 +GCP,us-west4,c4a-standard-8 (-lssd),on_demand,NA,0.154348,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821544 +GCP,us-west4,c4a-standard-8 (-lssd),reserved_1y,NA,0.266798,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821573 +GCP,us-west4,c4a-standard-8 (-lssd),reserved_3y,NA,0.1821,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821588 +GCP,us-west4,c4a-standard-8 (-lssd),spot,NA,0.161647,USD,GCP Cloud Billing API,2025-11-30T12:53:25.821559 +GCP,us-west4,c4d-standard-16,on_demand,NA,0.833442,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847848 +GCP,us-west4,c4d-standard-16,reserved_1y,NA,0.52507,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847924 +GCP,us-west4,c4d-standard-16,reserved_3y,NA,0.375048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847939 +GCP,us-west4,c4d-standard-16,spot,NA,0.282326,USD,GCP Cloud Billing API,2025-11-30T12:53:25.847905 +GCP,us-west4,c4d-standard-2,on_demand,NA,0.101227,USD,GCP Cloud Billing API,2025-11-30T12:53:25.843991 +GCP,us-west4,c4d-standard-2,reserved_1y,NA,0.063773,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844024 +GCP,us-west4,c4d-standard-2,reserved_3y,NA,0.045552,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844039 +GCP,us-west4,c4d-standard-2,spot,NA,0.034291,USD,GCP Cloud Billing API,2025-11-30T12:53:25.844008 +GCP,us-west4,c4d-standard-32,on_demand,NA,1.666885,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849185 +GCP,us-west4,c4d-standard-32,reserved_1y,NA,1.050139,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849213 +GCP,us-west4,c4d-standard-32,reserved_3y,NA,0.750096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849227 +GCP,us-west4,c4d-standard-32,spot,NA,0.564652,USD,GCP Cloud Billing API,2025-11-30T12:53:25.849199 +GCP,us-west4,c4d-standard-4,on_demand,NA,0.206392,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845299 +GCP,us-west4,c4d-standard-4,reserved_1y,NA,0.130027,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845326 +GCP,us-west4,c4d-standard-4,reserved_3y,NA,0.092876,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845341 +GCP,us-west4,c4d-standard-4,spot,NA,0.069915,USD,GCP Cloud Billing API,2025-11-30T12:53:25.845312 +GCP,us-west4,c4d-standard-8,on_demand,NA,0.416721,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846588 +GCP,us-west4,c4d-standard-8,reserved_1y,NA,0.262535,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846616 +GCP,us-west4,c4d-standard-8,reserved_3y,NA,0.187524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846629 +GCP,us-west4,c4d-standard-8,spot,NA,0.141163,USD,GCP Cloud Billing API,2025-11-30T12:53:25.846602 +GCP,us-west4,e2_highcpu_16,on_demand,NA,0.445751,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763756 +GCP,us-west4,e2_highcpu_16,reserved_1y,NA,0.280823,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763785 +GCP,us-west4,e2_highcpu_16,reserved_3y,NA,0.200588,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763799 +GCP,us-west4,e2_highcpu_16,spot,NA,0.0468,USD,GCP Cloud Billing API,2025-11-30T12:53:25.763771 +GCP,us-west4,e2_highcpu_32,on_demand,NA,0.891502,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764849 +GCP,us-west4,e2_highcpu_32,reserved_1y,NA,0.561646,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764876 +GCP,us-west4,e2_highcpu_32,reserved_3y,NA,0.401176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764890 +GCP,us-west4,e2_highcpu_32,spot,NA,0.0936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.764863 +GCP,us-west4,e2_highmem_16,on_demand,NA,0.814454,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762698 +GCP,us-west4,e2_highmem_16,reserved_1y,NA,0.513106,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762727 +GCP,us-west4,e2_highmem_16,reserved_3y,NA,0.366504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762741 +GCP,us-west4,e2_highmem_16,spot,NA,0.08544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.762713 +GCP,us-west4,e2_highmem_2,on_demand,NA,0.101807,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759518 +GCP,us-west4,e2_highmem_2,reserved_1y,NA,0.064138,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759546 +GCP,us-west4,e2_highmem_2,reserved_3y,NA,0.045813,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759559 +GCP,us-west4,e2_highmem_2,spot,NA,0.01068,USD,GCP Cloud Billing API,2025-11-30T12:53:25.759531 +GCP,us-west4,e2_highmem_4,on_demand,NA,0.203613,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760636 +GCP,us-west4,e2_highmem_4,reserved_1y,NA,0.128276,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760664 +GCP,us-west4,e2_highmem_4,reserved_3y,NA,0.091626,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760677 +GCP,us-west4,e2_highmem_4,spot,NA,0.02136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.760650 +GCP,us-west4,e2_highmem_8,on_demand,NA,0.407227,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761656 +GCP,us-west4,e2_highmem_8,reserved_1y,NA,0.256553,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761682 +GCP,us-west4,e2_highmem_8,reserved_3y,NA,0.183252,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761696 +GCP,us-west4,e2_highmem_8,spot,NA,0.04272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.761669 +GCP,us-west4,e2_standard_16,on_demand,NA,0.603767,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768131 +GCP,us-west4,e2_standard_16,reserved_1y,NA,0.380373,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768157 +GCP,us-west4,e2_standard_16,reserved_3y,NA,0.271695,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768171 +GCP,us-west4,e2_standard_16,spot,NA,0.06336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.768144 +GCP,us-west4,e2_standard_32,on_demand,NA,1.207533,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769232 +GCP,us-west4,e2_standard_32,reserved_1y,NA,0.760746,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769262 +GCP,us-west4,e2_standard_32,reserved_3y,NA,0.54339,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769277 +GCP,us-west4,e2_standard_32,spot,NA,0.12672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.769247 +GCP,us-west4,e2_standard_4,on_demand,NA,0.150942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765894 +GCP,us-west4,e2_standard_4,reserved_1y,NA,0.095093,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765921 +GCP,us-west4,e2_standard_4,reserved_3y,NA,0.067924,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765935 +GCP,us-west4,e2_standard_4,spot,NA,0.01584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.765908 +GCP,us-west4,e2_standard_8,on_demand,NA,0.301883,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767112 +GCP,us-west4,e2_standard_8,reserved_1y,NA,0.190186,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767140 +GCP,us-west4,e2_standard_8,reserved_3y,NA,0.135847,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767154 +GCP,us-west4,e2_standard_8,spot,NA,0.03168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.767126 +GCP,us-west4,g2-standard-12,on_demand,NA,0.495996,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786439 +GCP,us-west4,g2-standard-12,reserved_1y,NA,0.312477,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786467 +GCP,us-west4,g2-standard-12,reserved_3y,NA,0.223198,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786481 +GCP,us-west4,g2-standard-12,spot,NA,0.126792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.786453 +GCP,us-west4,g2-standard-16,on_demand,NA,0.661327,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787477 +GCP,us-west4,g2-standard-16,reserved_1y,NA,0.416636,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787505 +GCP,us-west4,g2-standard-16,reserved_3y,NA,0.297597,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787519 +GCP,us-west4,g2-standard-16,spot,NA,0.169056,USD,GCP Cloud Billing API,2025-11-30T12:53:25.787491 +GCP,us-west4,g2-standard-24,on_demand,NA,0.991991,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788567 +GCP,us-west4,g2-standard-24,reserved_1y,NA,0.624954,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788595 +GCP,us-west4,g2-standard-24,reserved_3y,NA,0.446396,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788609 +GCP,us-west4,g2-standard-24,spot,NA,0.253584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.788581 +GCP,us-west4,g2-standard-32,on_demand,NA,1.322655,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789602 +GCP,us-west4,g2-standard-32,reserved_1y,NA,0.833273,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789630 +GCP,us-west4,g2-standard-32,reserved_3y,NA,0.595195,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789644 +GCP,us-west4,g2-standard-32,spot,NA,0.338112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.789616 +GCP,us-west4,g2-standard-4,on_demand,NA,0.165332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784355 +GCP,us-west4,g2-standard-4,reserved_1y,NA,0.104159,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784383 +GCP,us-west4,g2-standard-4,reserved_3y,NA,0.074399,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784398 +GCP,us-west4,g2-standard-4,spot,NA,0.042264,USD,GCP Cloud Billing API,2025-11-30T12:53:25.784369 +GCP,us-west4,g2-standard-48,on_demand,NA,1.983982,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790642 +GCP,us-west4,g2-standard-48,reserved_1y,NA,1.249909,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790670 +GCP,us-west4,g2-standard-48,reserved_3y,NA,0.892792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790685 +GCP,us-west4,g2-standard-48,spot,NA,0.507168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.790656 +GCP,us-west4,g2-standard-8,on_demand,NA,0.330664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785409 +GCP,us-west4,g2-standard-8,reserved_1y,NA,0.208318,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785436 +GCP,us-west4,g2-standard-8,reserved_3y,NA,0.148799,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785450 +GCP,us-west4,g2-standard-8,spot,NA,0.084528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.785423 +GCP,us-west4,g2-standard-96,on_demand,NA,3.967964,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791687 +GCP,us-west4,g2-standard-96,reserved_1y,NA,2.499818,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791716 +GCP,us-west4,g2-standard-96,reserved_3y,NA,1.785584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791730 +GCP,us-west4,g2-standard-96,spot,NA,1.014336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.791701 +GCP,us-west4,n1-highcpu-16,on_demand,NA,0.638382,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690585 +GCP,us-west4,n1-highcpu-16,spot,NA,0.176928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.690599 +GCP,us-west4,n1-highcpu-32,on_demand,NA,1.276765,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691451 +GCP,us-west4,n1-highcpu-32,spot,NA,0.353856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.691465 +GCP,us-west4,n1-highcpu-64,on_demand,NA,2.55353,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692367 +GCP,us-west4,n1-highcpu-64,spot,NA,0.707712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.692381 +GCP,us-west4,n1-highcpu-96,on_demand,NA,3.830294,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693165 +GCP,us-west4,n1-highcpu-96,spot,NA,1.061568,USD,GCP Cloud Billing API,2025-11-30T12:53:25.693178 +GCP,us-west4,n1-highmem-16,on_demand,NA,1.065864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687063 +GCP,us-west4,n1-highmem-16,spot,NA,0.2952,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687078 +GCP,us-west4,n1-highmem-32,on_demand,NA,2.131728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687944 +GCP,us-west4,n1-highmem-32,spot,NA,0.5904,USD,GCP Cloud Billing API,2025-11-30T12:53:25.687960 +GCP,us-west4,n1-highmem-4,on_demand,NA,0.266466,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685318 +GCP,us-west4,n1-highmem-4,spot,NA,0.0738,USD,GCP Cloud Billing API,2025-11-30T12:53:25.685332 +GCP,us-west4,n1-highmem-64,on_demand,NA,4.263456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688765 +GCP,us-west4,n1-highmem-64,spot,NA,1.1808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.688780 +GCP,us-west4,n1-highmem-8,on_demand,NA,0.532932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686151 +GCP,us-west4,n1-highmem-8,spot,NA,0.1476,USD,GCP Cloud Billing API,2025-11-30T12:53:25.686165 +GCP,us-west4,n1-highmem-96,on_demand,NA,6.395184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689696 +GCP,us-west4,n1-highmem-96,spot,NA,1.7712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.689711 +GCP,us-west4,n1-standard-16,on_demand,NA,0.85594,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681341 +GCP,us-west4,n1-standard-16,spot,NA,0.23712,USD,GCP Cloud Billing API,2025-11-30T12:53:25.681354 +GCP,us-west4,n1-standard-32,on_demand,NA,1.71188,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682192 +GCP,us-west4,n1-standard-32,spot,NA,0.47424,USD,GCP Cloud Billing API,2025-11-30T12:53:25.682206 +GCP,us-west4,n1-standard-4,on_demand,NA,0.213985,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679641 +GCP,us-west4,n1-standard-4,spot,NA,0.05928,USD,GCP Cloud Billing API,2025-11-30T12:53:25.679655 +GCP,us-west4,n1-standard-64,on_demand,NA,3.42376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683224 +GCP,us-west4,n1-standard-64,spot,NA,0.94848,USD,GCP Cloud Billing API,2025-11-30T12:53:25.683238 +GCP,us-west4,n1-standard-8,on_demand,NA,0.42797,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680547 +GCP,us-west4,n1-standard-8,spot,NA,0.11856,USD,GCP Cloud Billing API,2025-11-30T12:53:25.680561 +GCP,us-west4,n1-standard-96,on_demand,NA,5.13564,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684377 +GCP,us-west4,n1-standard-96,spot,NA,1.42272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.684394 +GCP,us-west4,n2-highcpu-16,on_demand,NA,0.218748,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710851 +GCP,us-west4,n2-highcpu-16,reserved_1y,NA,0.38664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710878 +GCP,us-west4,n2-highcpu-16,reserved_3y,NA,0.276176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710892 +GCP,us-west4,n2-highcpu-16,spot,NA,0.252544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.710864 +GCP,us-west4,n2-highcpu-32,on_demand,NA,0.437496,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711969 +GCP,us-west4,n2-highcpu-32,reserved_1y,NA,0.77328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711996 +GCP,us-west4,n2-highcpu-32,reserved_3y,NA,0.552352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.712010 +GCP,us-west4,n2-highcpu-32,spot,NA,0.505088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.711983 +GCP,us-west4,n2-highcpu-48,on_demand,NA,0.656244,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713062 +GCP,us-west4,n2-highcpu-48,reserved_1y,NA,1.15992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713089 +GCP,us-west4,n2-highcpu-48,reserved_3y,NA,0.828528,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713102 +GCP,us-west4,n2-highcpu-48,spot,NA,0.757632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.713076 +GCP,us-west4,n2-highcpu-64,on_demand,NA,0.874992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714175 +GCP,us-west4,n2-highcpu-64,reserved_1y,NA,1.54656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714202 +GCP,us-west4,n2-highcpu-64,reserved_3y,NA,1.104704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714216 +GCP,us-west4,n2-highcpu-64,spot,NA,1.010176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.714189 +GCP,us-west4,n2-highcpu-80,on_demand,NA,1.09374,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715262 +GCP,us-west4,n2-highcpu-80,reserved_1y,NA,1.9332,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715290 +GCP,us-west4,n2-highcpu-80,reserved_3y,NA,1.38088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715304 +GCP,us-west4,n2-highcpu-80,spot,NA,1.26272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.715277 +GCP,us-west4,n2-highmem-16,on_demand,NA,0.7531,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705255 +GCP,us-west4,n2-highmem-16,reserved_1y,NA,0.706512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705284 +GCP,us-west4,n2-highmem-16,reserved_3y,NA,0.504656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705299 +GCP,us-west4,n2-highmem-16,spot,NA,0.461312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.705270 +GCP,us-west4,n2-highmem-2,on_demand,NA,0.094137,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701913 +GCP,us-west4,n2-highmem-2,reserved_1y,NA,0.088314,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701942 +GCP,us-west4,n2-highmem-2,reserved_3y,NA,0.063082,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701957 +GCP,us-west4,n2-highmem-2,spot,NA,0.057664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.701928 +GCP,us-west4,n2-highmem-32,on_demand,NA,1.5062,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706391 +GCP,us-west4,n2-highmem-32,reserved_1y,NA,1.413024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706420 +GCP,us-west4,n2-highmem-32,reserved_3y,NA,1.009312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706434 +GCP,us-west4,n2-highmem-32,spot,NA,0.922624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.706406 +GCP,us-west4,n2-highmem-4,on_demand,NA,0.188275,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703027 +GCP,us-west4,n2-highmem-4,reserved_1y,NA,0.176628,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703055 +GCP,us-west4,n2-highmem-4,reserved_3y,NA,0.126164,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703069 +GCP,us-west4,n2-highmem-4,spot,NA,0.115328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.703041 +GCP,us-west4,n2-highmem-48,on_demand,NA,2.2593,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707509 +GCP,us-west4,n2-highmem-48,reserved_1y,NA,2.119536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707537 +GCP,us-west4,n2-highmem-48,reserved_3y,NA,1.513968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707551 +GCP,us-west4,n2-highmem-48,spot,NA,1.383936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.707523 +GCP,us-west4,n2-highmem-64,on_demand,NA,3.0124,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708623 +GCP,us-west4,n2-highmem-64,reserved_1y,NA,2.826048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708650 +GCP,us-west4,n2-highmem-64,reserved_3y,NA,2.018624,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708664 +GCP,us-west4,n2-highmem-64,spot,NA,1.845248,USD,GCP Cloud Billing API,2025-11-30T12:53:25.708636 +GCP,us-west4,n2-highmem-8,on_demand,NA,0.37655,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704171 +GCP,us-west4,n2-highmem-8,reserved_1y,NA,0.353256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704199 +GCP,us-west4,n2-highmem-8,reserved_3y,NA,0.252328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704214 +GCP,us-west4,n2-highmem-8,spot,NA,0.230656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.704185 +GCP,us-west4,n2-highmem-80,on_demand,NA,3.7655,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709717 +GCP,us-west4,n2-highmem-80,reserved_1y,NA,3.53256,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709746 +GCP,us-west4,n2-highmem-80,reserved_3y,NA,2.52328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709760 +GCP,us-west4,n2-highmem-80,spot,NA,2.30656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.709731 +GCP,us-west4,n2-standard-16,on_demand,NA,0.447756,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696307 +GCP,us-west4,n2-standard-16,reserved_1y,NA,0.523728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696335 +GCP,us-west4,n2-standard-16,reserved_3y,NA,0.374096,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696349 +GCP,us-west4,n2-standard-16,spot,NA,0.342016,USD,GCP Cloud Billing API,2025-11-30T12:53:25.696321 +GCP,us-west4,n2-standard-32,on_demand,NA,0.895512,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697396 +GCP,us-west4,n2-standard-32,reserved_1y,NA,1.047456,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697425 +GCP,us-west4,n2-standard-32,reserved_3y,NA,0.748192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697439 +GCP,us-west4,n2-standard-32,spot,NA,0.684032,USD,GCP Cloud Billing API,2025-11-30T12:53:25.697411 +GCP,us-west4,n2-standard-4,on_demand,NA,0.111939,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694020 +GCP,us-west4,n2-standard-4,reserved_1y,NA,0.130932,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694049 +GCP,us-west4,n2-standard-4,reserved_3y,NA,0.093524,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694063 +GCP,us-west4,n2-standard-4,spot,NA,0.085504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.694034 +GCP,us-west4,n2-standard-48,on_demand,NA,1.343268,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698515 +GCP,us-west4,n2-standard-48,reserved_1y,NA,1.571184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698543 +GCP,us-west4,n2-standard-48,reserved_3y,NA,1.122288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698557 +GCP,us-west4,n2-standard-48,spot,NA,1.026048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.698529 +GCP,us-west4,n2-standard-64,on_demand,NA,1.791024,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699650 +GCP,us-west4,n2-standard-64,reserved_1y,NA,2.094912,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699678 +GCP,us-west4,n2-standard-64,reserved_3y,NA,1.496384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699723 +GCP,us-west4,n2-standard-64,spot,NA,1.368064,USD,GCP Cloud Billing API,2025-11-30T12:53:25.699664 +GCP,us-west4,n2-standard-8,on_demand,NA,0.223878,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695133 +GCP,us-west4,n2-standard-8,reserved_1y,NA,0.261864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695161 +GCP,us-west4,n2-standard-8,reserved_3y,NA,0.187048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695175 +GCP,us-west4,n2-standard-8,spot,NA,0.171008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.695147 +GCP,us-west4,n2-standard-80,on_demand,NA,2.23878,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700834 +GCP,us-west4,n2-standard-80,reserved_1y,NA,2.61864,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700863 +GCP,us-west4,n2-standard-80,reserved_3y,NA,1.87048,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700877 +GCP,us-west4,n2-standard-80,spot,NA,1.71008,USD,GCP Cloud Billing API,2025-11-30T12:53:25.700849 +GCP,us-west4,n2d-highcpu-128,on_demand,NA,1.044365,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752245 +GCP,us-west4,n2d-highcpu-128,reserved_1y,NA,2.691072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752273 +GCP,us-west4,n2d-highcpu-128,reserved_3y,NA,1.922176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752287 +GCP,us-west4,n2d-highcpu-128,spot,NA,0.895488,USD,GCP Cloud Billing API,2025-11-30T12:53:25.752259 +GCP,us-west4,n2d-highcpu-16,on_demand,NA,0.130546,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745947 +GCP,us-west4,n2d-highcpu-16,reserved_1y,NA,0.336384,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745974 +GCP,us-west4,n2d-highcpu-16,reserved_3y,NA,0.240272,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745988 +GCP,us-west4,n2d-highcpu-16,spot,NA,0.111936,USD,GCP Cloud Billing API,2025-11-30T12:53:25.745961 +GCP,us-west4,n2d-highcpu-224,on_demand,NA,1.827638,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753275 +GCP,us-west4,n2d-highcpu-224,reserved_1y,NA,4.709376,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753303 +GCP,us-west4,n2d-highcpu-224,reserved_3y,NA,3.363808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753316 +GCP,us-west4,n2d-highcpu-224,spot,NA,1.567104,USD,GCP Cloud Billing API,2025-11-30T12:53:25.753289 +GCP,us-west4,n2d-highcpu-32,on_demand,NA,0.261091,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746975 +GCP,us-west4,n2d-highcpu-32,reserved_1y,NA,0.672768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747002 +GCP,us-west4,n2d-highcpu-32,reserved_3y,NA,0.480544,USD,GCP Cloud Billing API,2025-11-30T12:53:25.747014 +GCP,us-west4,n2d-highcpu-32,spot,NA,0.223872,USD,GCP Cloud Billing API,2025-11-30T12:53:25.746988 +GCP,us-west4,n2d-highcpu-48,on_demand,NA,0.391637,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748054 +GCP,us-west4,n2d-highcpu-48,reserved_1y,NA,1.009152,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748082 +GCP,us-west4,n2d-highcpu-48,reserved_3y,NA,0.720816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748097 +GCP,us-west4,n2d-highcpu-48,spot,NA,0.335808,USD,GCP Cloud Billing API,2025-11-30T12:53:25.748068 +GCP,us-west4,n2d-highcpu-64,on_demand,NA,0.522182,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749094 +GCP,us-west4,n2d-highcpu-64,reserved_1y,NA,1.345536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749122 +GCP,us-west4,n2d-highcpu-64,reserved_3y,NA,0.961088,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749136 +GCP,us-west4,n2d-highcpu-64,spot,NA,0.447744,USD,GCP Cloud Billing API,2025-11-30T12:53:25.749108 +GCP,us-west4,n2d-highcpu-80,on_demand,NA,0.652728,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750137 +GCP,us-west4,n2d-highcpu-80,reserved_1y,NA,1.68192,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750164 +GCP,us-west4,n2d-highcpu-80,reserved_3y,NA,1.20136,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750179 +GCP,us-west4,n2d-highcpu-80,spot,NA,0.55968,USD,GCP Cloud Billing API,2025-11-30T12:53:25.750150 +GCP,us-west4,n2d-highcpu-96,on_demand,NA,0.783274,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751191 +GCP,us-west4,n2d-highcpu-96,reserved_1y,NA,2.018304,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751219 +GCP,us-west4,n2d-highcpu-96,reserved_3y,NA,1.441632,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751233 +GCP,us-west4,n2d-highcpu-96,spot,NA,0.671616,USD,GCP Cloud Billing API,2025-11-30T12:53:25.751205 +GCP,us-west4,n2d-highmem-16,on_demand,NA,0.177037,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739637 +GCP,us-west4,n2d-highmem-16,reserved_1y,NA,0.614704,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739666 +GCP,us-west4,n2d-highmem-16,reserved_3y,NA,0.439072,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739680 +GCP,us-west4,n2d-highmem-16,spot,NA,0.204448,USD,GCP Cloud Billing API,2025-11-30T12:53:25.739652 +GCP,us-west4,n2d-highmem-2,on_demand,NA,0.02213,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736449 +GCP,us-west4,n2d-highmem-2,reserved_1y,NA,0.076838,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736477 +GCP,us-west4,n2d-highmem-2,reserved_3y,NA,0.054884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736491 +GCP,us-west4,n2d-highmem-2,spot,NA,0.025556,USD,GCP Cloud Billing API,2025-11-30T12:53:25.736463 +GCP,us-west4,n2d-highmem-32,on_demand,NA,0.354074,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740703 +GCP,us-west4,n2d-highmem-32,reserved_1y,NA,1.229408,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740730 +GCP,us-west4,n2d-highmem-32,reserved_3y,NA,0.878144,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740744 +GCP,us-west4,n2d-highmem-32,spot,NA,0.408896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.740717 +GCP,us-west4,n2d-highmem-4,on_demand,NA,0.044259,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737486 +GCP,us-west4,n2d-highmem-4,reserved_1y,NA,0.153676,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737511 +GCP,us-west4,n2d-highmem-4,reserved_3y,NA,0.109768,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737524 +GCP,us-west4,n2d-highmem-4,spot,NA,0.051112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.737498 +GCP,us-west4,n2d-highmem-48,on_demand,NA,0.53111,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741713 +GCP,us-west4,n2d-highmem-48,reserved_1y,NA,1.844112,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741739 +GCP,us-west4,n2d-highmem-48,reserved_3y,NA,1.317216,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741753 +GCP,us-west4,n2d-highmem-48,spot,NA,0.613344,USD,GCP Cloud Billing API,2025-11-30T12:53:25.741726 +GCP,us-west4,n2d-highmem-64,on_demand,NA,0.708147,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742788 +GCP,us-west4,n2d-highmem-64,reserved_1y,NA,2.458816,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742818 +GCP,us-west4,n2d-highmem-64,reserved_3y,NA,1.756288,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742833 +GCP,us-west4,n2d-highmem-64,spot,NA,0.817792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.742802 +GCP,us-west4,n2d-highmem-8,on_demand,NA,0.088518,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738572 +GCP,us-west4,n2d-highmem-8,reserved_1y,NA,0.307352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738600 +GCP,us-west4,n2d-highmem-8,reserved_3y,NA,0.219536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738614 +GCP,us-west4,n2d-highmem-8,spot,NA,0.102224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.738586 +GCP,us-west4,n2d-highmem-80,on_demand,NA,0.885184,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743861 +GCP,us-west4,n2d-highmem-80,reserved_1y,NA,3.07352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743914 +GCP,us-west4,n2d-highmem-80,reserved_3y,NA,2.19536,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743928 +GCP,us-west4,n2d-highmem-80,spot,NA,1.02224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.743899 +GCP,us-west4,n2d-highmem-96,on_demand,NA,1.062221,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744922 +GCP,us-west4,n2d-highmem-96,reserved_1y,NA,3.688224,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744950 +GCP,us-west4,n2d-highmem-96,reserved_3y,NA,2.634432,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744963 +GCP,us-west4,n2d-highmem-96,spot,NA,1.226688,USD,GCP Cloud Billing API,2025-11-30T12:53:25.744936 +GCP,us-west4,n2d-standard-128,on_demand,NA,1.203763,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734351 +GCP,us-west4,n2d-standard-128,reserved_1y,NA,3.645312,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734380 +GCP,us-west4,n2d-standard-128,reserved_3y,NA,2.603776,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734394 +GCP,us-west4,n2d-standard-128,spot,NA,1.212672,USD,GCP Cloud Billing API,2025-11-30T12:53:25.734365 +GCP,us-west4,n2d-standard-16,on_demand,NA,0.15047,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728038 +GCP,us-west4,n2d-standard-16,reserved_1y,NA,0.455664,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728066 +GCP,us-west4,n2d-standard-16,reserved_3y,NA,0.325472,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728080 +GCP,us-west4,n2d-standard-16,spot,NA,0.151584,USD,GCP Cloud Billing API,2025-11-30T12:53:25.728052 +GCP,us-west4,n2d-standard-224,on_demand,NA,2.106586,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735399 +GCP,us-west4,n2d-standard-224,reserved_1y,NA,6.379296,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735426 +GCP,us-west4,n2d-standard-224,reserved_3y,NA,4.556608,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735440 +GCP,us-west4,n2d-standard-224,spot,NA,2.122176,USD,GCP Cloud Billing API,2025-11-30T12:53:25.735413 +GCP,us-west4,n2d-standard-32,on_demand,NA,0.300941,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729076 +GCP,us-west4,n2d-standard-32,reserved_1y,NA,0.911328,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729104 +GCP,us-west4,n2d-standard-32,reserved_3y,NA,0.650944,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729118 +GCP,us-west4,n2d-standard-32,spot,NA,0.303168,USD,GCP Cloud Billing API,2025-11-30T12:53:25.729090 +GCP,us-west4,n2d-standard-4,on_demand,NA,0.037618,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725903 +GCP,us-west4,n2d-standard-4,reserved_1y,NA,0.113916,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725931 +GCP,us-west4,n2d-standard-4,reserved_3y,NA,0.081368,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725946 +GCP,us-west4,n2d-standard-4,spot,NA,0.037896,USD,GCP Cloud Billing API,2025-11-30T12:53:25.725917 +GCP,us-west4,n2d-standard-48,on_demand,NA,0.451411,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730106 +GCP,us-west4,n2d-standard-48,reserved_1y,NA,1.366992,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730134 +GCP,us-west4,n2d-standard-48,reserved_3y,NA,0.976416,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730148 +GCP,us-west4,n2d-standard-48,spot,NA,0.454752,USD,GCP Cloud Billing API,2025-11-30T12:53:25.730120 +GCP,us-west4,n2d-standard-64,on_demand,NA,0.601882,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731184 +GCP,us-west4,n2d-standard-64,reserved_1y,NA,1.822656,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731213 +GCP,us-west4,n2d-standard-64,reserved_3y,NA,1.301888,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731227 +GCP,us-west4,n2d-standard-64,spot,NA,0.606336,USD,GCP Cloud Billing API,2025-11-30T12:53:25.731199 +GCP,us-west4,n2d-standard-8,on_demand,NA,0.075235,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726975 +GCP,us-west4,n2d-standard-8,reserved_1y,NA,0.227832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727004 +GCP,us-west4,n2d-standard-8,reserved_3y,NA,0.162736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.727019 +GCP,us-west4,n2d-standard-8,spot,NA,0.075792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.726990 +GCP,us-west4,n2d-standard-80,on_demand,NA,0.752352,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732255 +GCP,us-west4,n2d-standard-80,reserved_1y,NA,2.27832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732283 +GCP,us-west4,n2d-standard-80,reserved_3y,NA,1.62736,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732297 +GCP,us-west4,n2d-standard-80,spot,NA,0.75792,USD,GCP Cloud Billing API,2025-11-30T12:53:25.732269 +GCP,us-west4,n2d-standard-96,on_demand,NA,0.902822,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733291 +GCP,us-west4,n2d-standard-96,reserved_1y,NA,2.733984,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733318 +GCP,us-west4,n2d-standard-96,reserved_3y,NA,1.952832,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733332 +GCP,us-west4,n2d-standard-96,spot,NA,0.909504,USD,GCP Cloud Billing API,2025-11-30T12:53:25.733304 +GCP,us-west4,n4-standard-16,on_demand,NA,0.401945,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757428 +GCP,us-west4,n4-standard-16,reserved_1y,NA,0.514854,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757456 +GCP,us-west4,n4-standard-16,reserved_3y,NA,0.367769,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757471 +GCP,us-west4,n4-standard-16,spot,NA,0.341573,USD,GCP Cloud Billing API,2025-11-30T12:53:25.757442 +GCP,us-west4,n4-standard-2,on_demand,NA,0.050243,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754300 +GCP,us-west4,n4-standard-2,reserved_1y,NA,0.064357,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754329 +GCP,us-west4,n4-standard-2,reserved_3y,NA,0.045971,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754343 +GCP,us-west4,n4-standard-2,spot,NA,0.042697,USD,GCP Cloud Billing API,2025-11-30T12:53:25.754315 +GCP,us-west4,n4-standard-32,on_demand,NA,0.80389,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758468 +GCP,us-west4,n4-standard-32,reserved_1y,NA,1.029709,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758496 +GCP,us-west4,n4-standard-32,reserved_3y,NA,0.735537,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758510 +GCP,us-west4,n4-standard-32,spot,NA,0.683147,USD,GCP Cloud Billing API,2025-11-30T12:53:25.758482 +GCP,us-west4,n4-standard-4,on_demand,NA,0.100486,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755353 +GCP,us-west4,n4-standard-4,reserved_1y,NA,0.128714,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755381 +GCP,us-west4,n4-standard-4,reserved_3y,NA,0.091942,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755395 +GCP,us-west4,n4-standard-4,spot,NA,0.085393,USD,GCP Cloud Billing API,2025-11-30T12:53:25.755367 +GCP,us-west4,n4-standard-8,on_demand,NA,0.200972,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756403 +GCP,us-west4,n4-standard-8,reserved_1y,NA,0.257427,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756432 +GCP,us-west4,n4-standard-8,reserved_3y,NA,0.183884,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756445 +GCP,us-west4,n4-standard-8,spot,NA,0.170787,USD,GCP Cloud Billing API,2025-11-30T12:53:25.756417 diff --git a/lakemeter/deploy.sh b/lakemeter/deploy.sh new file mode 100755 index 00000000..c4c3f2ab --- /dev/null +++ b/lakemeter/deploy.sh @@ -0,0 +1,190 @@ +#!/bin/bash +# Lakemeter Deployment Script +# Builds frontend, syncs to workspace, and deploys to Databricks Apps +# +# Usage: +# ./deploy.sh # Build only (no deploy) +# DATABRICKS_HOST=... ./deploy.sh # Build + local deploy from backend/ +# ./deploy.sh --workspace-deploy # Build + sync to workspace + deploy +# +# Environment variables: +# DATABRICKS_HOST - Workspace host (required for deploy) +# LAKEMETER_APP_NAME - App name (default: lakemeter) +# LAKEMETER_WORKSPACE_PATH - Workspace path (default: auto-detect from app config) +# DATABRICKS_PROFILE - CLI profile to use (optional) + +set -e # Exit on error + +echo "Lakemeter Deployment Script" +echo "================================" + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Timing helper +DEPLOY_START=$(date +%s) +step_start() { STEP_T=$(date +%s); } +step_end() { + local elapsed=$(( $(date +%s) - STEP_T )) + echo -e "${BLUE} ⏱ ${1}: ${elapsed}s${NC}" +} + +# Configuration +APP_NAME="${LAKEMETER_APP_NAME:-lakemeter}" +WORKSPACE_HOST="${DATABRICKS_HOST:-}" +PROFILE_FLAG="" +if [ -n "$DATABRICKS_PROFILE" ]; then + PROFILE_FLAG="--profile $DATABRICKS_PROFILE" +fi +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +WORKSPACE_DEPLOY=false + +# Parse arguments +for arg in "$@"; do + case $arg in + --workspace-deploy) + WORKSPACE_DEPLOY=true + shift + ;; + esac +done + +cd "$SCRIPT_DIR" + +# Step 1: Build Frontend +echo -e "\n${YELLOW}Step 1: Building frontend...${NC}" +step_start +cd frontend + +# Update API URL for production (same origin, no CORS needed) +cat > .env.production << EOF +VITE_API_URL= +EOF + +npm ci --silent 2>/dev/null || npm install --silent +npm run build + +# Vite outputs directly to ../backend/static/ (configured in vite.config) +cd "$SCRIPT_DIR" +if [ ! -f "backend/static/index.html" ]; then + echo -e "${RED}Error: Frontend build failed - backend/static/index.html not found${NC}" + exit 1 +fi +echo -e "${GREEN}OK Frontend built successfully${NC}" +step_end "Frontend build" + +# Step 2: Verify the bundle +echo -e "\n${YELLOW}Step 2: Verifying bundle...${NC}" +JS_COUNT=$(find backend/static/assets -name "*.js" 2>/dev/null | wc -l | xargs) +CSS_COUNT=$(find backend/static/assets -name "*.css" 2>/dev/null | wc -l | xargs) +echo -e "${GREEN}OK Assets: ${JS_COUNT} JS, ${CSS_COUNT} CSS files${NC}" + +# Step 3: Deploy +if [ "$WORKSPACE_DEPLOY" = true ]; then + echo -e "\n${YELLOW}Step 3: Workspace deployment — syncing necessary files only...${NC}" + + if ! command -v databricks &> /dev/null; then + echo -e "${RED}Error: Databricks CLI not installed${NC}" + exit 1 + fi + + # Detect workspace path from app config + WS_PATH="${LAKEMETER_WORKSPACE_PATH:-}" + if [ -z "$WS_PATH" ]; then + WS_PATH=$(databricks apps get ${APP_NAME} ${PROFILE_FLAG} 2>/dev/null | python3 -c "import json,sys; print(json.load(sys.stdin).get('default_source_code_path',''))" 2>/dev/null || true) + fi + if [ -z "$WS_PATH" ]; then + echo -e "${RED}Error: Cannot detect workspace path. Set LAKEMETER_WORKSPACE_PATH.${NC}" + exit 1 + fi + echo "Workspace path: $WS_PATH" + + # Stage clean backend/app (exclude __pycache__, .databricks, .claude) + STAGING_DIR=$(mktemp -d) + trap "rm -rf $STAGING_DIR" EXIT + rsync -a --exclude='__pycache__' --exclude='.databricks' --exclude='.claude' backend/app/ "$STAGING_DIR/app/" + + # ── Parallel sync: runtime-essential files only ── + # Only backend/ + app.yaml + requirements.txt go to workspace. + # frontend/ excluded — pre-built assets are in backend/static/, app doesn't build from source. + # backend/scripts/ excluded — build-time tools only, not needed at runtime. + echo -e "\n${YELLOW} Syncing runtime files in parallel...${NC}" + step_start + + # Backend app code (staged, no __pycache__) + databricks workspace import-dir ${PROFILE_FLAG} "$STAGING_DIR/app" "${WS_PATH}/backend/app" --overwrite & + PID_APP=$! + + # Static: pre-built frontend + JSON pricing (exclude ALL CSVs — pricing data is in Lakebase) + ( + PRICING_STAGING=$(mktemp -d) + rsync -a --exclude='*.csv' --exclude='manifest.json' backend/static/pricing/ "$PRICING_STAGING/" + databricks workspace import-dir ${PROFILE_FLAG} "$PRICING_STAGING" "${WS_PATH}/backend/static/pricing" --overwrite + rm -rf "$PRICING_STAGING" + databricks workspace import-dir ${PROFILE_FLAG} "backend/static/assets" "${WS_PATH}/backend/static/assets" --overwrite + for f in backend/static/index.html backend/static/databricks-icon.svg; do + [ -f "$f" ] && databricks workspace import ${PROFILE_FLAG} --file "$f" "${WS_PATH}/$f" --overwrite 2>/dev/null || true + done + ) & + PID_STATIC=$! + + # Top-level config + ( + for f in app.yaml requirements.txt; do + [ -f "$f" ] && databricks workspace import ${PROFILE_FLAG} --file "$f" "${WS_PATH}/$f" --overwrite 2>/dev/null || true + done + ) & + PID_CFG=$! + + # Wait for all parallel syncs + wait $PID_APP $PID_STATIC $PID_CFG + step_end "parallel sync" + + echo -e "${GREEN}OK Files synced to workspace${NC}" + + # ── Deploy from workspace ── + echo -e "\n${YELLOW} Deploying app '${APP_NAME}'...${NC}" + step_start + databricks apps deploy ${APP_NAME} ${PROFILE_FLAG} --source-code-path "${WS_PATH}" + step_end "databricks apps deploy" + echo -e "${GREEN}OK Deployed from workspace${NC}" + +elif [ -n "$WORKSPACE_HOST" ]; then + echo -e "\n${YELLOW}Step 3: Local deployment to Databricks Apps...${NC}" + + if ! command -v databricks &> /dev/null; then + echo -e "${RED}Error: Databricks CLI not installed${NC}" + exit 1 + fi + + cd backend + echo "Deploying app '${APP_NAME}' from local backend/..." + databricks apps deploy ${APP_NAME} ${PROFILE_FLAG} --source-code-path . + echo -e "${GREEN}OK Deployed to Databricks Apps${NC}" + echo -e "App URL: ${BLUE}https://${WORKSPACE_HOST}/apps/${APP_NAME}${NC}" +else + echo -e "\n${YELLOW}Step 3: Skipping deployment (DATABRICKS_HOST not set)${NC}" + echo "" + echo "To deploy:" + echo -e " ${BLUE}# Option A: Workspace deploy (recommended for production)${NC}" + echo -e " ${BLUE}LAKEMETER_APP_NAME=lakemeter ./deploy.sh --workspace-deploy${NC}" + echo "" + echo -e " ${BLUE}# Option B: Local deploy${NC}" + echo -e " ${BLUE}DATABRICKS_HOST=your-workspace.cloud.databricks.com ./deploy.sh${NC}" + echo -e "\n${GREEN}OK Build complete - ready for deployment${NC}" +fi + +echo "" +echo "Bundle contents:" +du -sh backend/static/ 2>/dev/null || true + +# Total timing +DEPLOY_END=$(date +%s) +TOTAL_ELAPSED=$(( DEPLOY_END - DEPLOY_START )) +MINS=$(( TOTAL_ELAPSED / 60 )) +SECS=$(( TOTAL_ELAPSED % 60 )) +echo -e "\n${GREEN}Total deployment time: ${MINS}m ${SECS}s${NC}" diff --git a/lakemeter/docs-site/.gitignore b/lakemeter/docs-site/.gitignore new file mode 100644 index 00000000..b2d6de30 --- /dev/null +++ b/lakemeter/docs-site/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/lakemeter/docs-site/README.md b/lakemeter/docs-site/README.md new file mode 100644 index 00000000..b28211a9 --- /dev/null +++ b/lakemeter/docs-site/README.md @@ -0,0 +1,41 @@ +# Website + +This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. + +## Installation + +```bash +yarn +``` + +## Local Development + +```bash +yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +## Build + +```bash +yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +## Deployment + +Using SSH: + +```bash +USE_SSH=true yarn deploy +``` + +Not using SSH: + +```bash +GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/lakemeter/docs-site/docs/admin-guide/api-reference.md b/lakemeter/docs-site/docs/admin-guide/api-reference.md new file mode 100644 index 00000000..f16f2be0 --- /dev/null +++ b/lakemeter/docs-site/docs/admin-guide/api-reference.md @@ -0,0 +1,797 @@ +--- +sidebar_position: 4 +--- + +# API Reference + +Lakemeter exposes a REST API at `/api/v1/`. All endpoints require authentication through Databricks Apps SSO. + +![API Reference documentation page](/img/guides/admin-api-reference-guide.png) +*The API Reference — all REST endpoints organized by resource with request/response details.* + +## Base URL + +``` +https://-..databricksapps.com/api/v1 +``` + +:::tip +Interactive Swagger API docs are available at `/api/docs` and `/api/redoc` on your deployed app. +::: + +--- + +## Estimates + +**Router prefix:** `/api/v1/estimates` + +### List Estimates + +``` +GET /api/v1/estimates +``` + +Returns all estimates for the authenticated user (excludes soft-deleted). + +**Response:** `EstimateListResponse[]` + +```json +[ + { + "estimate_id": "uuid", + "estimate_name": "My Estimate", + "cloud": "AWS", + "region": "us-east-1", + "tier": "PREMIUM", + "status": "draft", + "version": 3, + "line_item_count": 5, + "created_at": "2025-01-15T10:30:00Z", + "updated_at": "2025-01-16T14:20:00Z" + } +] +``` + +### Create Estimate + +``` +POST /api/v1/estimates/ +``` + +**Request Body:** + +```json +{ + "estimate_name": "Q4 Data Platform", + "cloud": "AWS", + "region": "us-east-1", + "tier": "PREMIUM" +} +``` + +**Response:** `201 Created` with `EstimateResponse` + +### Get Current User's Estimate Info + +``` +GET /api/v1/estimates/me/info +``` + +Returns summary info (estimate count, recent activity) for the authenticated user. + +### Get Estimate + +``` +GET /api/v1/estimates/{estimate_id} +``` + +**Response:** `EstimateResponse` with full details. + +### Get Estimate with Line Items + +``` +GET /api/v1/estimates/{estimate_id}/full +``` + +Optimized single-query response with estimate and all line items. + +```json +{ + "estimate": { ... }, + "line_items": [ ... ] +} +``` + +### Update Estimate + +``` +PUT /api/v1/estimates/{estimate_id} +``` + +**Request Body:** (all fields optional) + +```json +{ + "estimate_name": "Updated Name", + "region": "us-west-2", + "tier": "ENTERPRISE", + "status": "approved" +} +``` + +### Delete Estimate + +``` +DELETE /api/v1/estimates/{estimate_id} +``` + +**Response:** `204 No Content` (soft delete) + +### Duplicate Estimate + +``` +POST /api/v1/estimates/{estimate_id}/duplicate +``` + +Creates a full copy with all workloads. Name gets "(Copy)" suffix. + +### Clone Estimate + +``` +POST /api/v1/estimates/{estimate_id}/clone +``` + +**Request Body:** (optional) + +```json +{ + "new_name": "Custom Clone Name" +} +``` + +--- + +## Line Items (Workloads) + +**Router prefix:** `/api/v1/line-items` + +### List Line Items for Estimate + +``` +GET /api/v1/line-items/estimate/{estimate_id} +``` + +**Response:** `LineItemResponse[]` + +### Create Line Item + +``` +POST /api/v1/line-items/ +``` + +**Request Body:** + +```json +{ + "estimate_id": "uuid", + "workload_name": "ETL Pipeline", + "workload_type": "JOBS", + "serverless_enabled": false, + "driver_node_type": "m5.xlarge", + "worker_node_type": "m5.2xlarge", + "num_workers": 4, + "photon_enabled": true, + "runs_per_day": 3, + "avg_runtime_minutes": 45, + "days_per_month": 30 +} +``` + +**Response:** `201 Created` with `LineItemResponse` + +### Get Line Item + +``` +GET /api/v1/line-items/{line_item_id} +``` + +### Update Line Item + +``` +PUT /api/v1/line-items/{line_item_id} +``` + +All fields are optional — only include fields you want to change. + +### Delete Line Item + +``` +DELETE /api/v1/line-items/{line_item_id} +``` + +**Response:** `204 No Content` + +### Reorder Line Items + +``` +POST /api/v1/line-items/reorder +``` + +```json +{ + "line_item_ids": ["uuid1", "uuid2", "uuid3"] +} +``` + +### Clone Line Item + +``` +POST /api/v1/line-items/{line_item_id}/clone +``` + +**Response:** `201 Created` with cloned `LineItemResponse` + +--- + +## Calculations + +**Router prefix:** `/api/v1/calculate` + +All calculation endpoints accept workload parameters and return cost breakdowns. + +| Endpoint | Workload Type | +|----------|--------------| +| `POST /api/v1/calculate/jobs-classic` | Jobs (Classic) | +| `POST /api/v1/calculate/jobs-serverless` | Jobs (Serverless) | +| `POST /api/v1/calculate/all-purpose-classic` | All-Purpose (Classic) | +| `POST /api/v1/calculate/all-purpose-serverless` | All-Purpose (Serverless) | +| `POST /api/v1/calculate/dbsql-classic-pro` | DBSQL (Classic/Pro) | +| `POST /api/v1/calculate/dbsql-serverless` | DBSQL (Serverless) | +| `POST /api/v1/calculate/dlt-classic` | DLT (Classic) | +| `POST /api/v1/calculate/dlt-serverless` | DLT (Serverless) | +| `POST /api/v1/calculate/model-serving` | Model Serving | +| `POST /api/v1/calculate/fmapi-databricks` | FMAPI (Databricks-hosted) | +| `POST /api/v1/calculate/fmapi-proprietary` | FMAPI (Proprietary) | +| `POST /api/v1/calculate/vector-search` | Vector Search | +| `POST /api/v1/calculate/lakebase` | Lakebase | +| `POST /api/v1/calculate/databricks-apps` | Databricks Apps | +| `POST /api/v1/calculate/ai-parse` | AI Parse (Document AI) | +| `POST /api/v1/calculate/shutterstock-imageai` | Shutterstock ImageAI | + +### Example: Jobs Classic + +```json +{ + "cloud": "AWS", + "region": "us-east-1", + "tier": "PREMIUM", + "driver_node_type": "m5.xlarge", + "worker_node_type": "m5.2xlarge", + "num_workers": 4, + "photon_enabled": false, + "runs_per_day": 3, + "avg_runtime_minutes": 45, + "days_per_month": 30 +} +``` + +### Example: Lakebase + +```json +{ + "cloud": "AWS", + "region": "us-east-1", + "tier": "PREMIUM", + "cu_size": 4, + "num_nodes": 2, + "storage_gb": 100, + "hours_per_month": 730 +} +``` + +### Example: Databricks Apps + +```json +{ + "cloud": "AWS", + "region": "us-east-1", + "tier": "PREMIUM", + "size": "medium", + "hours_per_month": 730 +} +``` + +### Example: AI Parse + +```json +{ + "cloud": "AWS", + "region": "us-east-1", + "tier": "PREMIUM", + "mode": "pages", + "complexity": "medium", + "pages_thousands": 10 +} +``` + +### Example: Shutterstock ImageAI + +```json +{ + "cloud": "AWS", + "region": "us-east-1", + "tier": "PREMIUM", + "images_per_month": 500 +} +``` + +--- + +## Export + +**Router prefix:** `/api/v1/export` + +### Export Estimate to Excel + +``` +GET /api/v1/export/estimate/{estimate_id}/excel +``` + +**Response:** Binary Excel file download (`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`) + +### Export All Estimates to Excel + +``` +GET /api/v1/export/estimates/excel +``` + +Exports all of the authenticated user's estimates into a single Excel file. + +--- + +## AI Chat + +**Router prefix:** `/api/v1/chat` + +### Send Message + +``` +POST /api/v1/chat/ +``` + +```json +{ + "message": "What would a DBSQL serverless warehouse cost?", + "conversation_id": "uuid", + "mode": "estimate", + "estimate_context": { ... }, + "workloads_context": [ ... ] +} +``` + +**Response:** + +```json +{ + "content": "A DBSQL Serverless warehouse...", + "conversation_id": "uuid", + "tool_results": [], + "proposed_workload": null +} +``` + +### Send Message (Streaming) + +``` +POST /api/v1/chat/stream +``` + +Same request body. Response is Server-Sent Events (SSE): + +``` +event: start +data: {"conversation_id": "uuid"} + +event: content +data: {"text": "A DBSQL"} + +event: content +data: {"text": " Serverless warehouse..."} + +event: done +data: {"final_state": {...}} +``` + +### Clear Conversation + +``` +DELETE /api/v1/chat/{conversation_id} +``` + +### Apply AI-Generated Estimate + +``` +POST /api/v1/chat/{conversation_id}/apply +``` + +Creates database records from the AI agent's draft estimate. + +### Get Conversation State + +``` +GET /api/v1/chat/{conversation_id}/state +``` + +Returns the current state of a conversation including any pending proposed workloads. + +### Confirm Proposed Workload + +``` +POST /api/v1/chat/{conversation_id}/confirm-workload +``` + +Accepts or rejects a workload proposed by the AI assistant. + +--- + +## Users + +**Router prefix:** `/api/v1/users` + +### Get Current User + +``` +GET /api/v1/users/me +``` + +### List Users + +``` +GET /api/v1/users?skip=0&limit=100 +``` + +### Create User + +``` +POST /api/v1/users/ +``` + +### Get User by ID + +``` +GET /api/v1/users/{user_id} +``` + +### Get User by Email + +``` +GET /api/v1/users/email/{email} +``` + +### Update User + +``` +PUT /api/v1/users/{user_id} +``` + +--- + +## Workload Types + +**Router prefix:** `/api/v1/workload-types` + +### List Workload Types + +``` +GET /api/v1/workload-types +``` + +Returns all 14 workload types with their UI configuration flags. + +### Get Workload Type + +``` +GET /api/v1/workload-types/{workload_type} +``` + +--- + +## Reference Data + +**Router prefix:** `/api/v1/reference` + +### Regions + +``` +GET /api/v1/reference/regions +``` + +### Pricing Tiers + +``` +GET /api/v1/reference/pricing-tiers +``` + +### Instance Types + +``` +GET /api/v1/reference/instances/types?cloud=AWS®ion=us-east-1 +``` + +### Instance Families + +``` +GET /api/v1/reference/instances/families +``` + +### VM Costs + +``` +GET /api/v1/reference/instances/vm-costs +``` + +### DBSQL Warehouse Sizes + +``` +GET /api/v1/reference/dbsql/warehouse-sizes +``` + +### Model Serving GPU Types + +``` +GET /api/v1/reference/model-serving/gpu-types +``` + +### FMAPI Databricks Models + +``` +GET /api/v1/reference/fmapi/databricks-models +``` + +### FMAPI Proprietary Models + +``` +GET /api/v1/reference/fmapi/proprietary-models +``` + +### DBU Rates + +``` +GET /api/v1/reference/dbu-rates +``` + +### Pricing Bundle Status + +``` +GET /api/v1/reference/pricing-bundle/status +``` + +### Regenerate Pricing Bundle + +``` +POST /api/v1/reference/pricing-bundle/regenerate +``` + +--- + +## VM Pricing + +**Router prefix:** `/api/v1/vm-pricing` + +### List VM Pricing + +``` +GET /api/v1/vm-pricing +``` + +### Instance Types + +``` +GET /api/v1/vm-pricing/instance-types +``` + +### Regions + +``` +GET /api/v1/vm-pricing/regions +``` + +### Get Price + +``` +GET /api/v1/vm-pricing/price +``` + +### Pricing Tiers + +``` +GET /api/v1/vm-pricing/tiers +``` + +### Payment Options + +``` +GET /api/v1/vm-pricing/payment-options +``` + +--- + +## Debug Endpoints + +These endpoints are available for diagnosing configuration issues: + +### Debug Headers + +``` +GET /api/v1/debug/headers +``` + +Returns all HTTP headers received by the app (useful for verifying SSO headers from Databricks Apps proxy). + +### Debug External API + +``` +GET /api/v1/debug/external-api +``` + +Tests external API authentication. Returns token availability status and attempts a test calculation. + +### Debug Database + +``` +GET /api/v1/debug/database +``` + +Returns database connection status, environment variable values (passwords redacted), token manager status, and connectivity test result. + +### Refresh Database Connection + +``` +POST /api/v1/debug/database/refresh +``` + +Forces a database engine refresh with a new OAuth token. + +--- + +## Frontend Data Endpoints + +These convenience endpoints are defined directly in `main.py` and provide reference data used by the frontend store. Many overlap with the router-based `/api/v1/reference/*` endpoints but return data in formats optimized for the frontend UI. + +### API Root + +``` +GET /api +``` + +Returns API name, version, and description. + +### Cloud Providers with Regions + +``` +GET /api/v1/reference/clouds +``` + +Returns cloud providers (AWS, Azure, GCP) with their available regions, queried from the `sync_ref_sku_region_map` table. Falls back to hardcoded defaults if the database is unavailable. + +### Regions by Cloud + +``` +GET /api/v1/regions?cloud=AWS +``` + +Returns all regions for a specific cloud provider from the SKU region map. + +### Pricing Tiers + +``` +GET /api/v1/reference/tiers +``` + +Returns Standard, Premium, and Enterprise tier options. + +### Instance Types + +``` +GET /api/v1/instances/types?cloud=AWS +GET /api/v1/reference/instance-types/{cloud} +``` + +Both return instance types with vCPU, memory, DBU rate, and family info. The `/reference/` variant uses a path parameter. Queries `sync_ref_instance_dbu_rates` with fallback to hardcoded lists. + +### Instance Families + +``` +GET /api/v1/instances/families +``` + +Returns: `["General Purpose", "Compute Optimized", "Memory Optimized", "Storage Optimized", "GPU"]` + +### VM Costs + +``` +GET /api/v1/instances/vm-costs?cloud=AWS®ion=us-east-1&instance_type=m5.xlarge +``` + +Proxies to the external Lakemeter pricing API. Optional query params: `pricing_tier`, `payment_option`. + +### DBSQL Warehouse Sizes + +``` +GET /api/v1/dbsql/warehouse-sizes +GET /api/v1/reference/dbsql-sizes +``` + +Both return the 9 DBSQL warehouse sizes (2X-Small through 4X-Large) with DBU/hour rates. + +### DBSQL Warehouse Types + +``` +GET /api/v1/dbsql/warehouse-types +``` + +Returns: `["CLASSIC", "PRO", "SERVERLESS"]` + +### DLT Editions + +``` +GET /api/v1/dlt/editions +GET /api/v1/reference/dlt-editions +``` + +Both return Core, Pro, and Advanced editions. The `/reference/` variant also includes `dbu_multiplier`. + +### Serverless Modes + +``` +GET /api/v1/serverless/modes +``` + +Returns standard (1.0x) and performance (1.3x) modes. + +### Model Serving GPU Types (by cloud) + +``` +GET /api/v1/model-serving/gpu-types?cloud=AWS +GET /api/v1/reference/model-serving-gpu-types/{cloud} +``` + +Returns GPU types with DBU/hour rates. Available types vary by cloud. + +### Photon Multipliers + +``` +GET /api/v1/photon/multipliers?cloud=AWS&sku_type=JOBS +``` + +Returns Photon multipliers by SKU type. Optional `sku_type` filter. + +### FMAPI Model Lists + +``` +GET /api/v1/fmapi/databricks-models/list +GET /api/v1/reference/fmapi-models +GET /api/v1/reference/fmapi-databricks +GET /api/v1/reference/fmapi-proprietary +``` + +Various views of available foundation models. `/reference/fmapi-databricks` includes model types, inference types, and per-type model lists. `/reference/fmapi-proprietary` includes providers, endpoint types, and context lengths. + +### Pricing Data + +``` +GET /api/v1/pricing/dbu-rates?cloud=AWS®ion=us-east-1&tier=PREMIUM +GET /api/v1/pricing/product-types?cloud=AWS®ion=us-east-1&tier=PREMIUM +``` + +`/dbu-rates` returns DBU prices per product type for a cloud/region/tier combination. Optional `product_type` filter returns a single rate. `/product-types` returns the list of available product type strings. + +--- + +## Health Check + +``` +GET /health +``` + +**Response:** `{"status": "healthy"}` diff --git a/lakemeter/docs-site/docs/admin-guide/dependencies-license.md b/lakemeter/docs-site/docs/admin-guide/dependencies-license.md new file mode 100644 index 00000000..1a8d2e21 --- /dev/null +++ b/lakemeter/docs-site/docs/admin-guide/dependencies-license.md @@ -0,0 +1,53 @@ +--- +sidebar_position: 5 +title: Dependencies & License +--- + +# Dependencies & License + +## Backend (Python) + +| Package | Description | +|---------|-------------| +| fastapi | Web framework | +| uvicorn | ASGI server | +| sqlalchemy | ORM / database toolkit | +| psycopg2-binary | PostgreSQL adapter | +| pydantic | Data validation | +| pydantic-settings | Settings management | +| python-multipart | Form data parsing | +| xlsxwriter | Excel export | +| python-jose | JWT token handling | +| passlib | Password hashing | +| python-dotenv | Environment variable loading | +| cachetools | In-memory caching | +| databricks-sdk | Databricks API client | + +## Frontend (Node.js) + +| Package | Description | +|---------|-------------| +| react / react-dom | UI framework | +| react-router-dom | Client-side routing | +| axios | HTTP client | +| zustand | State management | +| framer-motion | Animations | +| clsx | Class name utility | +| file-saver | Client-side file downloads | +| react-hot-toast | Toast notifications | +| react-markdown | Markdown rendering | +| remark-gfm | GitHub-flavored markdown | +| @headlessui/react | Accessible UI components | +| @heroicons/react | Icon library | +| @dnd-kit/core | Drag-and-drop framework | +| @dnd-kit/sortable | Sortable list support | +| @dnd-kit/modifiers | Drag modifiers | +| @dnd-kit/utilities | Drag-and-drop utilities | + +**Dev tooling:** TypeScript, Tailwind CSS, Vite, ESLint + +## License + +This project is licensed under the **Databricks License**. + +[View the full license text](https://www.databricks.com/legal/db-license) diff --git a/lakemeter/docs-site/docs/admin-guide/deployment-inventory.md b/lakemeter/docs-site/docs/admin-guide/deployment-inventory.md new file mode 100644 index 00000000..af76d514 --- /dev/null +++ b/lakemeter/docs-site/docs/admin-guide/deployment-inventory.md @@ -0,0 +1,110 @@ +--- +sidebar_position: 3 +--- + +# Deployment Inventory + +This page lists everything the Lakemeter installer creates in your Databricks workspace. Use this as a reference for auditing or manual cleanup. + +## Resource Summary + +| Resource | Name | Type | +|----------|------|------| +| Lakebase instance | `lakemeter-customer` | Managed PostgreSQL | +| Database | `lakemeter_pricing` | PostgreSQL database | +| Schema | `lakemeter` | PostgreSQL schema | +| Application tables | `users`, `estimates`, `line_items`, `templates`, `sharing`, `conversation_messages`, `decision_records`, `ref_cloud_tiers`, `ref_workload_types` | PostgreSQL tables | +| Stored functions | 19 cost calculation functions | PostgreSQL functions | +| Pricing sync tables | 10 tables with DBU rates, VM costs, model pricing | PostgreSQL tables | +| Derived reference tables | `ref_fmapi_databricks_models`, `ref_fmapi_proprietary_models`, `ref_model_serving_gpu_types` | PostgreSQL tables | +| SKU mapping | `ref_sku_discount_mapping` | PostgreSQL table | +| Secret scope | `lakemeter-secrets` | Databricks secret scope | +| Secrets | 5 key-value pairs | Databricks secrets | +| Databricks App | `lakemeter` | Databricks App | +| App resources | 5 environment variable bindings | App config | +| Lakebase role | App Service Principal | Database role | +| PostgreSQL role | `lakemeter_sync_role` | Password-auth role | + +--- + +## Lakebase Instance + +| Property | Value | +|----------|-------| +| **Name** | `lakemeter-customer` (configurable via `--instance-name`) | +| **Type** | Managed PostgreSQL (Lakebase) | +| **Autoscaling** | 1 CU – 16 CU | +| **Scale-to-zero** | Enabled | +| **pg_native_login** | Enabled (password auth fallback) | + +--- + +## Secret Scope: `lakemeter-secrets` + +| Secret Key | Description | +|------------|-------------| +| `lakebase-instance-name` | Lakebase instance name (e.g., `lakemeter-customer`) | +| `lakebase-host` | Lakebase read-write DNS endpoint | +| `lakebase-user` | PostgreSQL role name (`lakemeter_sync_role`) | +| `lakebase-database` | Database name (`lakemeter_pricing`) | +| `lakebase-password` | Auto-generated password for `lakemeter_sync_role` | + +--- + +## Databricks App: `lakemeter` + +| Property | Value | +|----------|-------| +| **Name** | `lakemeter` (configurable via `--app-name`) | +| **Compute size** | MEDIUM (2 vCPU, 6 GB RAM) | +| **Runtime** | Ubuntu 22.04, Python 3.11, Node.js 22.16 | +| **Source path** | `/Workspace/Users/{user}/apps/lakemeter` | +| **URL** | `https://lakemeter-..databricksapps.com` | + +### App Resources + +These environment variables are injected into the app container at runtime: + +| Resource Name | Environment Variable | Type | Source | +|---------------|---------------------|------|--------| +| `lm-lakebase-instance` | `LAKEBASE_INSTANCE_NAME` | Secret | `lakemeter-secrets:lakebase-instance-name` | +| `lm-db-host` | `DB_HOST` | Secret | `lakemeter-secrets:lakebase-host` | +| `lm-db-user` | `DB_USER` | Secret | `lakemeter-secrets:lakebase-user` | +| `lm-db-name` | `DB_NAME` | Secret | `lakemeter-secrets:lakebase-database` | +| `lm-claude-endpoint` | `CLAUDE_MODEL_ENDPOINT` | Serving Endpoint | `databricks-claude-opus-4-6` | + +### Service Principal + +The app gets an auto-created Service Principal with: + +| Permission | Target | Purpose | +|-----------|--------|---------| +| Lakebase role | `lakemeter-customer` instance | `DATABRICKS_SUPERUSER` — full database access | +| SQL grants | `lakemeter` schema | CONNECT, USAGE, ALL PRIVILEGES on tables/sequences/functions | +| Secret READ | `lakemeter-secrets` scope | Read database credentials | +| CAN_QUERY | `databricks-claude-opus-4-6` | Query the Claude model endpoint | + +--- + +## Cleanup + +To completely remove Lakemeter from your workspace: + +```bash +# 1. Delete the Databricks App +databricks apps delete lakemeter --profile + +# 2. Delete the Lakebase instance (destroys all data) +databricks api delete /api/2.0/database/instances/lakemeter-customer --profile + +# 3. Delete the secrets scope +databricks secrets delete-scope lakemeter-secrets --profile + +# 4. Remove bundle files (optional) +databricks workspace delete -r /Workspace/Users/{user}/.bundle/lakemeter-installer --profile + +# 5. Remove app source (optional) +databricks workspace delete -r /Workspace/Users/{user}/apps/lakemeter --profile +``` + +**Warning:** Deleting the Lakebase instance permanently destroys all databases, tables, and data within it. This cannot be undone. diff --git a/lakemeter/docs-site/docs/admin-guide/deployment.md b/lakemeter/docs-site/docs/admin-guide/deployment.md new file mode 100644 index 00000000..cffaca0f --- /dev/null +++ b/lakemeter/docs-site/docs/admin-guide/deployment.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 1 +--- + +# Getting Started + +Lakemeter is a **Databricks App** — a managed web application with built-in SSO authentication that runs entirely on the Databricks platform. + +## Prerequisites + +You need a **Databricks CLI** configured with a [workspace profile](https://docs.databricks.com/aws/en/dev-tools/cli/profiles.html). All other permissions (Lakebase, secret scopes, Apps, serverless compute) are granted to workspace users by default. + +:::tip No local CLI? Use the notebook terminal +If you can't install the Databricks CLI locally, you can run the installer directly from your workspace. Create any notebook on a serverless cluster, click the **terminal button** (bottom-right corner), and use the pre-installed CLI — no profile needed since it's already authenticated. + +![Notebook with terminal button highlighted](/img/guides/notebook-terminal-button.png) +*Click the terminal button in the bottom-right corner of any notebook.* + +![Terminal open with Databricks CLI available](/img/guides/notebook-terminal-cli.png) +*The Databricks CLI is pre-installed and authenticated in the notebook terminal.* + +```bash +# In the notebook terminal — CLI is pre-installed and authenticated +git clone +cd lakemeter-opensource +./scripts/install.sh --non-interactive +``` +::: + +## Install + +```bash +git clone +cd lakemeter-opensource + +./scripts/install.sh --profile +``` + +The installer provisions everything automatically in **~15 minutes**: Lakebase instance, database schema, pricing data, app configuration, and deployment. See the [Installer Guide](./installer) for the full walkthrough. + +For a list of all resources created by the installer, see the [Deployment Inventory](./deployment-inventory). + +## After Installation + +Once the installer completes, your app is live at: + +``` +https://lakemeter-..databricksapps.com +``` + +Users access the app through their Databricks workspace — authentication is handled automatically via SSO. No additional user setup is required. + +## Updating + +To update Lakemeter after a new release: + +```bash +git pull +./scripts/install.sh --profile +``` + +The installer is idempotent — re-running it updates pricing data and redeploys the app without losing existing estimates. diff --git a/lakemeter/docs-site/docs/admin-guide/installer.md b/lakemeter/docs-site/docs/admin-guide/installer.md new file mode 100644 index 00000000..4bd7454c --- /dev/null +++ b/lakemeter/docs-site/docs/admin-guide/installer.md @@ -0,0 +1,223 @@ +--- +sidebar_position: 2 +--- + +# Installer Guide + +Lakemeter includes a one-command installer (`scripts/install.sh`) that provisions a complete environment on Databricks — from Lakebase instance creation to app deployment and verification. All heavy lifting runs on Databricks serverless compute via a DABs (Databricks Asset Bundles) workflow. Total installation time is approximately **15-20 minutes**. + +## Prerequisites + +### Local machine + +- **Databricks CLI** installed and configured with a workspace profile ([installation guide](https://docs.databricks.com/en/dev-tools/cli/install.html)) + - DABs support is included in the CLI (no additional installation needed) + - Verify with: `databricks --version` (requires 0.200+) + +That's it — no Python packages, no Node.js, no other dependencies needed locally. + +### Databricks workspace + +- **AWS** or **Azure** workspace in a [Lakebase-supported region](https://docs.databricks.com/en/oltp/projects/manage-projects.html): + - **AWS:** `us-east-1`, `us-east-2`, `us-west-2`, `ca-central-1`, `sa-east-1`, `eu-central-1`, `eu-west-1`, `eu-west-2`, `ap-south-1`, `ap-southeast-1`, `ap-southeast-2` + - **Azure:** `eastus`, `eastus2`, `centralus`, `southcentralus`, `westus`, `westus2`, `canadacentral`, `brazilsouth`, `northeurope`, `uksouth`, `westeurope`, `australiaeast`, `centralindia`, `southeastasia` + +All required permissions (Lakebase, secret scopes, Apps, serverless compute) are granted to all workspace users by default. No special admin setup is needed. + +The installer handles everything else automatically: +- Lakebase instance provisioning (reuses existing if same name) +- Database creation, schema setup, and stored functions +- Pricing data loading from pre-flattened CSV files included in the repository +- App Service Principal creation and Lakebase access grants +- App deployment and smoke test verification + +## Usage + +```bash +# Clone the repository +git clone https://github.com/steven-tan_data/lakemeter-opensource.git +cd lakemeter-opensource + +# Interactive installation (prompts for names) +./scripts/install.sh --profile + +# Non-interactive (use all defaults) +./scripts/install.sh --profile --non-interactive +``` + +### CLI Flags + +| Flag | Description | +|------|-------------| +| `--profile` | Databricks CLI profile name (required if not using DEFAULT) | +| `--non-interactive` | Use all defaults with no prompts (for CI/CD pipelines) | +| `--instance-name` | Lakebase instance name (default: `lakemeter-customer`) | +| `--db-name` | Database name (default: `lakemeter_pricing`) | +| `--app-name` | App name (default: `lakemeter`) | +| `--secrets-scope` | Secret scope name (default: `lakemeter-secrets`) | +| `-h`, `--help` | Show usage help | + +## What You'll See + +### Phase 1: Configuration + +The installer checks connectivity and prompts for configuration (or uses defaults in `--non-interactive` mode): + +``` +Lakemeter Installer +================================ + +Checking workspace connectivity... +Connected as: admin@company.com + +Configuration (press Enter to accept defaults) + + Lakebase instance name [lakemeter-customer]: + Database name [lakemeter_pricing]: + App name [lakemeter]: + Secrets scope [lakemeter-secrets]: + +Configuration: + Instance name: lakemeter-customer + Database: lakemeter_pricing + App name: lakemeter + Secrets scope: lakemeter-secrets + Claude endpoint: databricks-claude-opus-4-6 +``` + +### Phase 2: Bundle Deploy + +Uploads notebooks, pricing data, and app source to the workspace: + +``` +Preparing bundle... + Splitting vm-costs.csv (12MB)... + Split into 2 parts + Pricing data: 11 CSV files + App source prepared + +Deploying bundle to workspace... +Uploading bundle files to /Workspace/Users/admin@company.com/.bundle/lakemeter-installer/default/files... +Deploying resources... +Updating deployment state... +Deployment complete! +Bundle deployed +``` + +### Phase 3: Workflow Execution (~15 minutes) + +The installer launches a DABs workflow with 9 tasks and shows live progress: + +``` +Running installer workflow on serverless compute... + This will provision Lakebase, create tables, load pricing data, + configure the app, and deploy it. + +Note: The full installation typically takes 15-20 minutes. + + Run URL: https://your-workspace.cloud.databricks.com/#job/.../run/... + + Task Progress: + [done] provision_lakebase + [done] create_app + [done] create_database + [done] create_functions + [done] load_pricing_data + [done] create_sku_mapping + [done] grant_app_access + [ .. ] deploy_app running + [ ] verify_installation waiting + Elapsed: 12m31s +``` + +The progress display refreshes every 10 seconds with live task status: +- `[done]` — completed +- `[ .. ]` — currently running +- `[ ]` — waiting for dependencies +- `[FAIL]` — task failed (installer exits with error details) + +### Phase 4: Completion + +``` +Installation complete! + + App URL: https://lakemeter-..databricksapps.com + Verification: All smoke tests passed + Details: databricks runs get-output --run-id XXXXX --profile +``` + +## The 9-Task Workflow + +The DABs workflow executes 9 notebook tasks with parallelization where possible: + +``` +provision_lakebase ║ create_app ← run in parallel + │ ║ │ +create_database ║ │ + │ ╠════════╝ + ┌───┴──────┐ │ +funcs data grant_app_access + │ │ + sku_map deploy_app + │ + verify_installation +``` + +| Task | Description | +|------|-------------| +| **provision_lakebase** | Creates or reuses a Lakebase instance with autoscaling and scale-to-zero | +| **create_app** | Creates the Databricks App and configures secret references (runs in parallel with provisioning) | +| **create_database** | Creates the database, schema, tables, reference data, and auth roles | +| **create_functions** | Deploys 19 stored functions for cost calculations | +| **load_pricing_data** | Bulk-loads pricing reference data from CSV files | +| **create_sku_mapping** | Populates SKU discount mapping table | +| **grant_app_access** | Grants the app's Service Principal access to Lakebase | +| **deploy_app** | Uploads app source and deploys (this is the longest step — mostly Databricks Apps infrastructure time) | +| **verify_installation** | Runs ~80 smoke tests covering all APIs, reference data, cost calculations, AI assistant, and Excel export | + +## Configuration + +| Parameter | Default | Description | +|-----------|---------|-------------| +| Instance name | `lakemeter-customer` | Lakebase instance identifier | +| Database name | `lakemeter_pricing` | PostgreSQL database name | +| App name | `lakemeter` | Databricks App name | +| Secrets scope | `lakemeter-secrets` | Databricks secret scope name | + +The following are fixed (not user-configurable): + +| Setting | Value | Reason | +|---------|-------|--------| +| Lakebase scaling | 1–16 CU, scale-to-zero | Optimal for cost and performance | +| Claude endpoint | `databricks-claude-opus-4-6` | Same endpoint on every Databricks workspace | +| Serverless environment | v5 | Latest serverless environment version | + +## What Gets Created + +After a successful installation, your workspace will have: + +| Resource | Details | +|----------|---------| +| **Lakebase instance** | `lakemeter-customer` — 1-16 CU, scale-to-zero | +| **Database** | `lakemeter_pricing` with `lakemeter` schema | +| **Secret scope** | `lakemeter-secrets` with 5 secrets | +| **Databricks App** | `lakemeter` with 5 resources | +| **App URL** | `https://lakemeter-..databricksapps.com` | + +For a detailed breakdown of all resources created, see the [Deployment Inventory](./deployment-inventory). + +## Re-running the Installer + +The installer is **idempotent** — running it again on the same workspace will: + +- Reuse the existing Lakebase instance (no data loss) +- Reuse the existing app (no downtime during reconfiguration) +- Re-create tables with `IF NOT EXISTS` (existing data preserved) +- Reload pricing data via `TRUNCATE + INSERT` (refreshes to latest) +- Re-grant SP access (harmless if already granted) +- Redeploy the app (picks up code changes) + +This means you can safely re-run the installer to: +- Update pricing data after a new release +- Fix a broken deployment +- Add newly created stored functions diff --git a/lakemeter/docs-site/docs/changelog.md b/lakemeter/docs-site/docs/changelog.md new file mode 100644 index 00000000..abc06053 --- /dev/null +++ b/lakemeter/docs-site/docs/changelog.md @@ -0,0 +1,28 @@ +--- +sidebar_position: 99 +--- + +# Changelog + +Lakemeter follows [Semantic Versioning](https://semver.org/): + +- **Major** (X.0.0) — Breaking changes, database migrations +- **Minor** (0.X.0) — New features, new workload types +- **Patch** (0.0.X) — Bug fixes, pricing data updates + +--- + +## v0.1.0 + +*2026-04-11* + +Initial open-source release. + +- 16 workload types: Jobs, All-Purpose, DBSQL, DLT, Model Serving, FMAPI (Databricks + Proprietary), Vector Search, Lakebase, Databricks Apps, AI Parse, Shutterstock ImageAI +- AI assistant with streaming chat, workload suggestions, and one-click accept +- Excel export with full cost breakdowns, SKU details, and discount calculations +- One-command installer (`scripts/install.sh`) using Databricks Asset Bundles +- Lakebase backend with 19 stored cost calculation functions +- Multi-cloud support: AWS, Azure, GCP +- SSO authentication via Databricks Apps +- Interactive API docs at `/api/docs` and `/api/redoc` diff --git a/lakemeter/docs-site/docs/intro.md b/lakemeter/docs-site/docs/intro.md new file mode 100644 index 00000000..ee6b5348 --- /dev/null +++ b/lakemeter/docs-site/docs/intro.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 1 +slug: / +--- + +# Lakemeter + +**Build accurate Databricks cost estimates in minutes, not days.** + +Lakemeter is a web-based tool that calculates Databricks pricing across 14 workload types, 3 cloud providers, and all available regions. It turns vague "how much will this cost?" conversations into precise, exportable estimates backed by real pricing data. + +## Who should use this? + +### Solutions Architects and Sales Engineers + +You need cost estimates for customer proposals, RFPs, or proof-of-concept planning. Lakemeter lets you configure workloads with real instance types and usage patterns, then export a professional Excel report you can hand directly to a customer. + +**Start here:** [5-Minute Tutorial](/user-guide/getting-started) | [End-to-End Workflow](/user-guide/end-to-end-workflow) + +### Data Engineers and Platform Teams + +You need to estimate costs for a new data platform, migration, or capacity expansion. Lakemeter covers Jobs, DLT, DBSQL, and more -- so you can model your full architecture in one estimate. + +**Start here:** [Quick Reference](/user-guide/quick-reference) | [Workload Guides](/user-guide/workloads) + +### Administrators + +You are deploying Lakemeter for your team or integrating it with other systems. + +**Start here:** [Deployment Guide](/admin-guide/deployment) | [API Reference](/admin-guide/api-reference) + +## What Lakemeter covers + +| Category | Workload Types | What it estimates | +|----------|---------------|-------------------| +| **Compute** | Jobs, All-Purpose, DLT | DBU costs + VM infrastructure for batch, interactive, and pipeline workloads | +| **SQL Analytics** | DBSQL | Warehouse costs for Classic, Pro, and Serverless SQL | +| **AI / ML** | Model Serving, Vector Search, FMAPI (Databricks), FMAPI (Proprietary), AI Parse, Shutterstock ImageAI | Inference endpoints, vector databases, foundation model token costs, document AI, image generation | +| **Data Services** | Lakebase, Databricks Apps | Managed PostgreSQL compute and storage, hosted web applications | + +**Multi-cloud:** AWS, Azure, and GCP with region-specific pricing. + +**Pricing tiers:** Standard, Premium, and Enterprise -- each with different DBU rates and feature availability. + +## Key capabilities + +- **Real-time cost calculation** -- costs update instantly as you adjust workload parameters +- **AI Assistant** -- describe what you need in plain English and get workload configurations suggested for you +- **Excel export** -- download professional reports with full cost breakdowns, ready for customer handoff +- **Estimate sharing** -- collaborate with team members on the same estimate +- **Duplicate and compare** -- clone estimates to model alternative configurations side by side + +## Quick start + +1. Open Lakemeter and click **New Estimate** +2. Choose your cloud (AWS/Azure/GCP), region, and pricing tier +3. Add workloads and configure their parameters +4. Review the cost breakdown +5. Export to Excel + +![Lakemeter estimates list — create and manage your cost estimates](/img/home-page.png) +*The Lakemeter home page showing your estimates with cloud provider, region, and AI assistant panel.* + +Ready for the full walkthrough? See the [5-Minute Tutorial](/user-guide/getting-started). diff --git a/lakemeter/docs-site/docs/testing/allpurpose-compute-tests.md b/lakemeter/docs-site/docs/testing/allpurpose-compute-tests.md new file mode 100644 index 00000000..02d2e0ad --- /dev/null +++ b/lakemeter/docs-site/docs/testing/allpurpose-compute-tests.md @@ -0,0 +1,113 @@ +--- +sidebar_position: 3 +--- + +# Sprint 2: ALL_PURPOSE Compute Tests + +Sprint 2 validates the AI assistant's ability to propose **All-Purpose Compute** (interactive cluster) workloads and correctly distinguish them from batch JOBS workloads. + +## What's Tested + +### Basic ALL_PURPOSE Proposal (11 tests) + +A single AI call simulates a user requesting an interactive data science cluster: + +> *"I need an interactive all-purpose cluster for data science work. 8 workers, running about 8 hours a day on weekdays on AWS us-east-1."* + +The test verifies all required fields: + +| Field | Assertion | +|-------|-----------| +| `workload_type` | Equals `"ALL_PURPOSE"` | +| `workload_name` | Non-empty, at least 3 characters | +| `num_workers` | Present and >= 1 | +| `hours_per_month` | Present and in range 50-750 | +| `driver_node_type` | Populated | +| `worker_node_type` | Populated | +| Pricing tier | At least one pricing tier field present | +| `reason` | Populated, at least 10 characters | +| `notes` | Populated, at least 1 character | +| `proposal_id` | Present | +| `serverless_enabled` | Explicitly set | + +![All Workloads Overview](/img/all-workloads-overview.png) +*The workload type selector showing All-Purpose Compute — tests verify the AI correctly selects this type for interactive use cases.* + +### Edge Case: Interactive vs Batch Disambiguation (2 tests) + +A separate conversation tests whether the AI correctly identifies an ambiguous request as ALL_PURPOSE rather than JOBS: + +> *"I need an interactive notebook environment for ad-hoc data exploration and development."* + +This is a critical edge case because: +- The prompt doesn't explicitly say "All-Purpose Compute" +- The use case (ad-hoc exploration) could theoretically be served by a JOBS workload +- The AI must recognize "interactive" and "ad-hoc" as signals for ALL_PURPOSE + +The tests verify: +1. `workload_type` is `"ALL_PURPOSE"` (not `"JOBS"`) +2. `hours_per_month` is present and > 0 + +### Flakiness Mitigation + +Sprint 2 introduced a third follow-up message for edge case prompts. The AI sometimes asks clarifying questions instead of proposing on the second message. The third message is maximally explicit: + +> *"Please go ahead and propose the All-Purpose Compute workload with 4 workers, m5.xlarge instances, 132 hours per month, standard tier, no Photon. This is interactive compute, not a batch job."* + +This reduces non-determinism significantly while still testing the AI's disambiguation ability on the initial prompt. + +![Calculator Overview](/img/calculator-overview.png) +*The calculator page with workload configuration — ALL_PURPOSE workloads include hours-per-month and node type fields validated by these tests.* + +## Running Sprint 2 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate +python -m pytest tests/ai_assistant/sprint_2/ -v +``` + +Expected output: + +``` +tests/ai_assistant/sprint_2/test_allpurpose_proposal.py::TestAllPurposeBasic::test_workload_type PASSED +tests/ai_assistant/sprint_2/test_allpurpose_proposal.py::TestAllPurposeBasic::test_workload_name PASSED +tests/ai_assistant/sprint_2/test_allpurpose_proposal.py::TestAllPurposeBasic::test_num_workers PASSED +... +tests/ai_assistant/sprint_2/test_allpurpose_proposal.py::TestAllPurposeEdgeCases::test_interactive_maps_to_allpurpose PASSED +tests/ai_assistant/sprint_2/test_allpurpose_proposal.py::TestAllPurposeEdgeCases::test_interactive_has_hours PASSED + +13 passed in ~120s +``` + +## Test Design: Module-Scoped Fixtures + +Following the Sprint 1 pattern, expensive AI calls are shared across test methods via module-scoped fixtures: + +```python +@pytest.fixture(scope="module") +def allpurpose_proposal(http_client, test_estimate): + """Single AI call for ALL_PURPOSE — shared by all basic tests.""" + proposal, resp = send_chat_until_proposal( + http_client, + [ALLPURPOSE_PRIMARY, ALLPURPOSE_FOLLOWUP, ALLPURPOSE_FINAL], + test_estimate, + ) + return proposal +``` + +This means 11 tests share 1 AI call instead of making 11 separate calls — reducing runtime from ~10 minutes to ~1 minute. + +## Known Limitations + +- `hours_per_month` uses a wide assertion range (50-750) because the AI interprets "8 hours a day on weekdays" differently across runs +- Edge case prompts may occasionally need retry if the AI is unusually terse or misinterprets the request +- Each edge case variant makes its own AI call (~30-60s each) + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| Edge case returns JOBS instead of ALL_PURPOSE | AI misinterpreted the prompt. The 3-message retry handles most cases. If persistent, make the follow-up more explicit about "interactive compute." | +| `hours_per_month` out of range | The AI may calculate hours differently. Widen the assertion range if the calculated value is reasonable for the described use case. | +| Timeout on AI call | Claude FMAPI can take up to 90s on complex requests. Ensure the test timeout is set appropriately. | diff --git a/lakemeter/docs-site/docs/testing/dbsql-ai-tests.md b/lakemeter/docs-site/docs/testing/dbsql-ai-tests.md new file mode 100644 index 00000000..5cc0f62c --- /dev/null +++ b/lakemeter/docs-site/docs/testing/dbsql-ai-tests.md @@ -0,0 +1,171 @@ +--- +sidebar_position: 6 +--- + +# Sprint 4: DBSQL Warehouse Tests + +Sprint 4 validates the AI assistant's ability to propose **Databricks SQL (DBSQL)** warehouse workloads across all three warehouse types (Serverless, Pro, Classic) and correctly reject non-DBSQL requests. + +## What's Tested + +### Overview + +| Variant | File | Tests | AI Calls | Warehouse Type | +|---------|------|-------|----------|----------------| +| Serverless | `test_dbsql_serverless.py` | 9 | 1 | SERVERLESS | +| Pro | `test_dbsql_pro.py` | 8 | 1 | PRO | +| Classic | `test_dbsql_classic.py` | 7 | 1 | CLASSIC | +| Negative (Interactive) | `test_dbsql_negative.py` | 2 | 1 | N/A | +| Negative (Batch ETL) | `test_dbsql_negative.py` | 2 | 1 | N/A | +| **Total** | **4 files** | **28** | **5** | | + +### Serverless SQL Warehouse (9 tests) + +A single AI call simulates a user requesting a serverless warehouse for BI dashboards: + +> *"I need a serverless SQL warehouse for BI dashboards on AWS us-east-1. Medium size, expecting about 50 concurrent queries at peak."* + +| Field | Assertion | +|-------|-----------| +| `workload_type` | Equals `"DBSQL"` | +| `dbsql_warehouse_type` | `"SERVERLESS"` | +| `dbsql_warehouse_size` | Valid size (one of: 2X-Small through 4X-Large) | +| `dbsql_num_clusters` | >= 1 | +| `workload_name` | Non-empty, at least 3 characters | +| `reason` | Populated, at least 10 characters | +| `notes` | Populated | +| `proposal_id` | Present | + +![DBSQL Warehouse Configuration](/img/workload-expanded-config.png) +*A DBSQL workload configuration in the calculator — the AI assistant maps natural language warehouse requests to these fields.* + +### Pro SQL Warehouse (8 tests) + +Tests a Pro warehouse with scaling for analytics: + +> *"I need a Databricks SQL Pro warehouse for analytics queries on AWS us-east-1. Large size with 2 clusters for scaling."* + +Verifies: +- `dbsql_warehouse_type` is `"PRO"` +- `dbsql_warehouse_size` is `"Large"` or larger +- `dbsql_num_clusters` is populated and > 0 +- Standard metadata fields present + +### Classic SQL Warehouse (7 tests) + +Tests a legacy Classic warehouse: + +> *"I need a classic legacy Databricks SQL warehouse on AWS us-east-1. Small size, single cluster. We have a legacy integration that requires it."* + +Verifies: +- `dbsql_warehouse_type` is `"CLASSIC"` +- Standard DBSQL fields present +- Metadata fields populated + +### Negative Discrimination (4 tests) + +Two separate negative test scenarios prevent the AI from incorrectly proposing DBSQL: + +**Interactive Compute (AC-12)**: +> *"I need an interactive notebook cluster for data science work with 4 workers."* +- Verifies: `workload_type` is **not** `"DBSQL"` + +**Batch ETL (AC-13)**: +> *"I need a batch ETL pipeline that runs daily to process raw data into curated Delta tables."* +- Verifies: `workload_type` is **not** `"DBSQL"` + +These tests ensure the AI understands that SQL warehouses serve BI/analytics use cases — not interactive development or batch processing. + +## File Structure + +``` +tests/ai_assistant/sprint_4/ +├── __init__.py +├── prompts.py # 5 prompt sequences (serverless, pro, classic, 2 negative) +├── conftest.py # 5 module-scoped fixtures (1 AI call each) +├── test_dbsql_serverless.py # 9 tests — Serverless warehouse +├── test_dbsql_pro.py # 8 tests — Pro warehouse +├── test_dbsql_classic.py # 7 tests — Classic warehouse +└── test_dbsql_negative.py # 4 tests — interactive + ETL discrimination +``` + +## Running Sprint 4 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate +python -m pytest tests/ai_assistant/sprint_4/ -v +``` + +Expected output: + +``` +tests/ai_assistant/sprint_4/test_dbsql_serverless.py::TestDbsqlServerless::test_workload_type PASSED +tests/ai_assistant/sprint_4/test_dbsql_serverless.py::TestDbsqlServerless::test_warehouse_type PASSED +... +tests/ai_assistant/sprint_4/test_dbsql_pro.py::TestDbsqlPro::test_warehouse_type_pro PASSED +tests/ai_assistant/sprint_4/test_dbsql_pro.py::TestDbsqlPro::test_warehouse_size_large_or_bigger PASSED +... +tests/ai_assistant/sprint_4/test_dbsql_classic.py::TestDbsqlClassic::test_warehouse_type_classic PASSED +... +tests/ai_assistant/sprint_4/test_dbsql_negative.py::TestDbsqlNegativeInteractive::test_not_dbsql PASSED +tests/ai_assistant/sprint_4/test_dbsql_negative.py::TestDbsqlNegativeEtl::test_not_dbsql PASSED + +28 passed in ~252s +``` + +![Estimates List](/img/estimates-list.png) +*An estimate with DBSQL workloads — the confirm flow creates these line items from AI-proposed configurations.* + +## Warehouse Type Selection Logic + +The AI must correctly map user intent to the right warehouse type: + +| User Intent | Expected Type | Key Signals | +|-------------|--------------|-------------| +| BI dashboards, ad-hoc SQL | **SERVERLESS** | "serverless", "BI", "dashboards", no mention of legacy | +| Analytics with scaling | **PRO** | "Pro", "analytics", "scaling", "multiple clusters" | +| Legacy integration | **CLASSIC** | "classic", "legacy", explicit Classic request | + +### Valid Warehouse Sizes + +The AI must propose one of these standard sizes: + +`2X-Small` | `X-Small` | `Small` | `Medium` | `Large` | `X-Large` | `2X-Large` | `3X-Large` | `4X-Large` + +## Acceptance Criteria + +All 13 acceptance criteria pass: + +| AC | Description | Status | +|----|-------------|--------| +| AC-1 | Serverless → `workload_type=DBSQL` | PASS | +| AC-2 | Serverless → `dbsql_warehouse_type=SERVERLESS` | PASS | +| AC-3 | Valid warehouse size (Medium) | PASS | +| AC-4 | `dbsql_num_clusters >= 1` | PASS | +| AC-5–7 | Metadata: name, reason/notes, proposal_id | PASS | +| AC-8 | Pro → `dbsql_warehouse_type=PRO` | PASS | +| AC-9 | Pro → Large or bigger size | PASS | +| AC-10 | Pro → `num_clusters` populated | PASS | +| AC-11 | Classic → `dbsql_warehouse_type=CLASSIC` | PASS | +| AC-12 | Interactive compute ≠ DBSQL | PASS | +| AC-13 | Batch ETL ≠ DBSQL | PASS | + +## Bug Fixes Included + +| Bug | Description | Fix | +|-----|-------------|-----| +| BUG-S4-001 | Missing batch ETL negative test (AC-13) — handoff incorrectly claimed 13/13 | Added `TestDbsqlNegativeEtl` class with 2 tests and a 5th prompt variant | + +## Known Limitations + +- AI may choose slightly different warehouse sizes or cluster counts across runs +- Sprint 1 AI tests may show transient fixture timeouts when running the full suite sequentially (concurrent API load issue, not a Sprint 4 regression) + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| Pro warehouse returns Medium instead of Large | AI interpretation varies. The assertion accepts Large or bigger — if it returns Medium, the prompt may need strengthening. | +| Classic test returns Pro or Serverless | Ensure the prompt explicitly says "classic" and "legacy." The 3-message retry handles most cases. | +| Negative test returns DBSQL | The AI misinterpreted the request. Check that the prompt doesn't mention "SQL" or "warehouse." | diff --git a/lakemeter/docs-site/docs/testing/dlt-ai-tests.md b/lakemeter/docs-site/docs/testing/dlt-ai-tests.md new file mode 100644 index 00000000..b89d4185 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/dlt-ai-tests.md @@ -0,0 +1,151 @@ +--- +sidebar_position: 5 +--- + +# Sprint 3 (AI): DLT/SDP Proposal Tests + +Sprint 3 validates the AI assistant's ability to propose **Spark Declarative Pipelines (DLT/SDP)** workloads across all three editions (Pro, Core, Advanced) and correctly reject non-DLT requests. + +## What's Tested + +### Overview + +| Variant | File | Tests | AI Calls | Edition | +|---------|------|-------|----------|---------| +| Pro Serverless | `test_dlt_pro.py` | 9 | 1 | PRO | +| Core Classic | `test_dlt_core.py` | 10 | 1 | CORE | +| Advanced | `test_dlt_advanced.py` | 8 | 1 | ADVANCED | +| Negative Discrimination | `test_dlt_negative.py` | 2 | 1 | N/A | +| **Total** | **4 files** | **29** | **4** | | + +### DLT Pro — Serverless CDC Pipeline (9 tests) + +A single AI call simulates a user requesting a CDC pipeline with Pro edition: + +> *"I need to set up a CDC pipeline using Spark Declarative Pipelines (SDP) with Pro edition and serverless compute on AWS us-east-1."* + +| Field | Assertion | +|-------|-----------| +| `workload_type` | Equals `"DLT"` | +| `dlt_edition` | Contains `"PRO"` | +| `serverless_enabled` | `True` | +| `workload_name` | Non-empty, at least 3 characters | +| `reason` | Populated, at least 10 characters | +| `notes` | Populated | +| `proposal_id` | Present | +| Scheduling fields | `runs_per_day`, `avg_runtime_minutes`, `days_per_month` present | + +![DLT Pipeline Configuration](/img/workload-expanded-config.png) +*A DLT workload configuration in the calculator — the AI assistant generates equivalent configurations from natural language descriptions.* + +### DLT Core — Basic Batch ETL (10 tests) + +Tests a basic ETL pipeline with Core edition and classic compute: + +> *"I need a basic DLT pipeline for simple batch ETL — just reading from S3, transforming, and writing to Delta tables."* + +Verifies all Pro assertions plus: +- `dlt_edition` contains `"CORE"` +- `num_workers` present when classic compute +- Node types (`driver_node_type`, `worker_node_type`) populated for classic +- `photon_enabled` field is set + +### DLT Advanced — Full Monitoring Pipeline (8 tests) + +Tests an advanced pipeline with data quality expectations: + +> *"I need an advanced DLT pipeline with full data quality expectations, monitoring, and enhanced autoscaling on AWS us-east-1."* + +Verifies: +- `dlt_edition` contains `"ADVANCED"` +- Standard metadata fields (name, reason, notes, proposal_id) +- Scheduling fields present + +### Negative Discrimination (2 tests) + +Tests that the AI does **not** propose a DLT workload when the request is clearly for interactive compute: + +> *"I need an interactive cluster for ad-hoc data exploration with 4 workers on AWS us-east-1."* + +Verifies: +1. The proposed `workload_type` is **not** `"DLT"` +2. The AI correctly identifies this as an All-Purpose Compute request + +This prevents false positives where the AI might incorrectly map any compute request to DLT. + +## File Structure + +``` +tests/ai_assistant/sprint_3/ +├── __init__.py +├── prompts.py # 4 prompt sequences (3 messages each) +├── conftest.py # 4 module-scoped fixtures (1 AI call each) +├── test_dlt_pro.py # 9 tests — Pro serverless CDC +├── test_dlt_core.py # 10 tests — Core classic batch ETL +├── test_dlt_advanced.py # 8 tests — Advanced monitoring +└── test_dlt_negative.py # 2 tests — non-DLT discrimination +``` + +### Design Decision: File Splitting + +The original monolithic `test_dlt_proposal.py` (262 lines) was split into 4 per-variant files to meet the 200-line guideline. Module-scoped fixtures moved to `conftest.py` so each variant makes exactly one AI call — identical behavior to the monolithic version. + +## Running Sprint 3 AI Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate +python -m pytest tests/ai_assistant/sprint_3/ -v +``` + +Expected output: + +``` +tests/ai_assistant/sprint_3/test_dlt_pro.py::TestDltPro::test_workload_type_is_dlt PASSED +tests/ai_assistant/sprint_3/test_dlt_pro.py::TestDltPro::test_edition_is_pro PASSED +... +tests/ai_assistant/sprint_3/test_dlt_core.py::TestDltCore::test_edition_is_core PASSED +tests/ai_assistant/sprint_3/test_dlt_core.py::TestDltCore::test_has_workers PASSED +... +tests/ai_assistant/sprint_3/test_dlt_advanced.py::TestDltAdvanced::test_edition_is_advanced PASSED +... +tests/ai_assistant/sprint_3/test_dlt_negative.py::TestDltNegative::test_not_dlt PASSED +tests/ai_assistant/sprint_3/test_dlt_negative.py::TestDltNegative::test_correct_type PASSED + +29 passed in ~216s +``` + +![All Workloads Overview](/img/all-workloads-overview.png) +*The workload type selector showing DLT (Spark Declarative Pipelines) — tests verify the AI correctly selects this type and the appropriate edition for pipeline use cases.* + +## Edition Selection Logic + +The AI must correctly map user intent to the right DLT edition: + +| User Intent | Expected Edition | Key Signals | +|-------------|-----------------|-------------| +| Basic batch ETL, no CDC | **CORE** | "simple", "basic", "batch ETL", no mention of CDC/SCD | +| CDC pipelines, SCD Type 2 | **PRO** | "CDC", "change data capture", "SCD", "slowly changing dimensions" | +| Full monitoring, expectations | **ADVANCED** | "advanced", "data quality", "expectations", "enhanced monitoring" | + +## Bug Fixes Included + +| Bug | Description | Fix | +|-----|-------------|-----| +| BUG-S3-001 | Advanced prompt not specific enough — AI sometimes chose Pro | Hardened `DLT_ADVANCED_FINAL` prompt with explicit "Advanced edition" | +| BUG-S3-002 | Missing `test_scheduling_fields_present` for Core variant | Added test to reach 15/15 acceptance criteria | +| BUG-S3-003 | FMAPI tool_use/tool_result message conversion failure | Fixed in `ai_client.py` and `ai_agent.py` — affected all AI tests | + +## Known Limitations + +- **Non-determinism**: DLT Core may choose serverless instead of classic — classic-specific tests use `pytest.skip` when this happens +- The negative test adds a 4th AI call per run (~30s additional runtime) +- AI may need all 3 messages in a prompt sequence to produce a proposal + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| Core test returns serverless instead of classic | Expected non-determinism. The test skips classic-specific assertions gracefully. | +| Advanced edition test fails with Pro | The prompt may need strengthening. Ensure the final message explicitly says "Advanced edition." | +| `tool_use`/`tool_result` conversion error | Verify BUG-S3-003 fix is present in `ai_client.py`. This was a message format issue with FMAPI. | diff --git a/lakemeter/docs-site/docs/testing/dlt-calculation-tests.md b/lakemeter/docs-site/docs/testing/dlt-calculation-tests.md new file mode 100644 index 00000000..4fd905d8 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/dlt-calculation-tests.md @@ -0,0 +1,134 @@ +--- +sidebar_position: 4 +--- + +# Sprint 3: DLT Calculation Tests + +Sprint 3 validates the **Delta Live Tables (DLT)** cost calculation logic across both frontend and backend, covering all three editions (Core, Pro, Advanced), classic and serverless compute modes, Photon pricing, SKU alignment, and Excel export accuracy. + +## What's Tested + +Sprint 3 contains **161 tests** across 12 test files — the largest test suite in the project. Unlike Sprints 1-2, these tests do **not** call the AI assistant. Instead, they directly test the calculation functions and export pipeline. + +### Test Categories + +| Category | Files | Tests | What's Verified | +|----------|-------|-------|----------------| +| **Classic Calculations** | `test_dlt_calc_classic.py` | 25 | Hours/month, DBU rates, edition multipliers, Photon pricing | +| **Serverless Calculations** | `test_dlt_calc_serverless.py` | 26 | Serverless DBU rates, edge cases, NaN guards | +| **SKU Discrepancies** | `test_dlt_disc_sku.py` | 16 | Frontend-backend SKU name alignment | +| **Pricing Discrepancies** | `test_dlt_disc_pricing.py` | 19 | Frontend-backend calculation alignment | +| **Export SKU Lookup** | `test_dlt_export_sku.py` | 17 | Backend SKU + DBU price resolution | +| **Export Calculations** | `test_dlt_export_calc.py` | 14 | Backend hours, serverless, calc pipeline | +| **Excel Formulas** | `test_dlt_excel_e2e_formulas.py` | 10 | Real .xlsx formula cell verification | +| **Excel Totals** | `test_dlt_excel_e2e_totals.py` | 5 | Real .xlsx SUM formula verification | +| **Excel Display** | `test_dlt_excel_export.py` | 22 | Display names, pipeline editions, matrix coverage | +| **VM Costs** | `test_dlt_vm_costs.py` | 7 | VM cost dollar amounts for node types | + +![Workload Calculation Detail](/img/workload-calculation-detail.png) +*DLT workload configuration with cost breakdown — Sprint 3 tests verify every number in this view is calculated correctly.* + +### Hours Calculation + +DLT workloads support two methods for specifying usage: + +1. **Direct hours**: `hours_per_month = 730` (24/7 operation) +2. **Run-based**: `runs_per_day × avg_runtime_minutes × days_per_month / 60` + +When both are provided, run-based takes priority. Tests verify this precedence: + +```python +def test_run_based_priority_over_hours(self): + result = frontend_calc_dlt( + runs_per_day=10, avg_runtime_minutes=30, days_per_month=22, + hours_per_month=730, # This should be ignored + ) + assert result["hours_per_month"] == pytest.approx(110.0) # 10 * 30 * 22 / 60 +``` + +### Edition Multipliers + +DLT has three editions with different DBU multipliers: + +| Edition | Multiplier | Use Case | +|---------|-----------|----------| +| **Core** | 1.0x | Basic ETL pipelines | +| **Pro** | 1.0x (same rate, different SKU) | CDC, SCD Type 2 | +| **Advanced** | 1.0x (same rate, different SKU) | Full monitoring, expectations | + +Tests verify that the correct SKU is selected for each edition and that multipliers are applied correctly to DBU calculations. + +### Photon Pricing + +Photon-enabled DLT workloads use different DBU rates. Tests verify: + +- Photon SKU is selected when `photon_enabled=True` +- Non-Photon SKU is used when `photon_enabled=False` +- The DBU rate difference is correctly reflected in cost calculations + +### Excel Export Verification + +Sprint 3 includes end-to-end Excel tests that: + +1. Generate a real `.xlsx` file using the export pipeline +2. Open it with `openpyxl` and verify cell formulas +3. Check that SUM formulas in totals rows reference the correct cell ranges +4. Validate display names match expected DLT terminology + +![Estimates List](/img/estimates-list.png) +*The estimates list with export option — Sprint 3 tests verify the exported Excel files contain accurate formulas.* + +## Running Sprint 3 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate +python -m pytest tests/sprint_3/ -v +``` + +Expected output: + +``` +tests/sprint_3/test_dlt_calc_classic.py::TestDLTHoursCalculation::test_direct_hours_24x7 PASSED +tests/sprint_3/test_dlt_calc_classic.py::TestDLTHoursCalculation::test_run_based_24_runs_60min_30days PASSED +... +tests/sprint_3/test_dlt_excel_e2e_formulas.py::TestDLTExcelFormulas::test_formula_structure PASSED +tests/sprint_3/test_dlt_vm_costs.py::TestDLTVMCosts::test_m6i_xlarge_cost PASSED + +161 passed in ~2s +``` + +:::tip Fast Execution +Sprint 3 tests run in under 2 seconds because they don't make any AI API calls. They test calculation logic directly using imported Python functions. +::: + +## Shared Calculation Helpers + +The `dlt_calc_helpers.py` module provides shared functions that mirror the frontend and backend calculation logic: + +```python +def frontend_calc_dlt( + driver_dbu_rate, worker_dbu_rate, num_workers, + dlt_edition, hours_per_month=0, + runs_per_day=0, avg_runtime_minutes=0, days_per_month=22, + photon_enabled=False, serverless_enabled=False, +) -> dict: + """Replicate frontend DLT cost calculation.""" + # Returns: hours_per_month, dbu_per_hour, monthly_dbus, dbu_cost +``` + +This ensures tests validate the same calculation path that users see in the browser. + +## Known Limitations + +- Backend DLT Photon SKU and Serverless SKU discrepancies are **documented**, not fixed (by design — these are known differences between frontend display names and backend SKU lookup keys) +- Tests use `pytest.approx()` for floating-point comparisons to avoid precision issues +- Excel formula tests require `openpyxl` as a test dependency + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| `ModuleNotFoundError: tests.sprint_3.dlt_calc_helpers` | Run from the project root directory so Python can find the test modules. | +| `FileNotFoundError` on Excel tests | The export endpoint must be accessible. Ensure the backend can connect to Lakebase. | +| `AssertionError: NaN != 0` | A NaN guard test caught an edge case where division by zero produces NaN. This is expected behavior — the test verifies the guard works. | diff --git a/lakemeter/docs-site/docs/testing/fmapi-databricks-ai-tests.md b/lakemeter/docs-site/docs/testing/fmapi-databricks-ai-tests.md new file mode 100644 index 00000000..6c2e0180 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/fmapi-databricks-ai-tests.md @@ -0,0 +1,180 @@ +--- +sidebar_position: 9 +--- + +# Sprint 7: FMAPI Databricks Tests + +Sprint 7 validates the AI assistant's ability to propose **Foundation Model API (Databricks)** workloads for open-source models hosted on Databricks, plus backend pricing calculation correctness. It covers Llama input tokens, output tokens, BGE embeddings, negative discrimination, and 36 backend pricing unit tests. + +## What's Tested + +### AI Assistant Proposal Tests + +| Variant | File | Tests | AI Calls | Model Category | +|---------|------|-------|----------|----------------| +| Llama Input Tokens (10M) | `test_fmapi_db_llama_input.py` | 8 | 1 | LLM (input) | +| Llama Output Tokens (5M) | `test_fmapi_db_output_tokens.py` | 8 | 1 | LLM (output) | +| BGE Embeddings (20M) | `test_fmapi_db_embeddings.py` | 7 | 1 | Embedding | +| Negative — Claude (Proprietary) | `test_fmapi_db_negative.py` | 4 | 1 | N/A | +| Negative — GPU Serving | `test_fmapi_db_negative.py` | 3 | 1 | N/A | +| **Total AI** | **4 files** | **30** | **5** | | + +### Backend Pricing Tests + +| Category | File | Tests | +|----------|------|-------| +| SKU mapping, rate lookup, calc formulas | `test_fmapi_db_pricing.py` | 36 | +| Edge cases (unknown provider, Google cache) | `test_fmapi_prop_edge_cases.py` | 10 | +| **Total Backend** | **2 files** | **46** | + +**Combined Sprint 7 Total: 76 tests (30 AI + 46 backend)** + +### Llama Input Tokens — 10M/month (8 tests) + +A single AI call simulates requesting Databricks-hosted Llama for input token processing: + +> *"I want to use Llama 4 via Foundation Model API, expecting 10M input tokens per month"* + +| Field | Assertion | +|-------|-----------| +| `workload_type` | Equals `"FMAPI_DATABRICKS"` | +| `fmapi_model` | Contains `"llama"` | +| `fmapi_rate_type` | Valid token type (input_token, output_token) | +| `fmapi_quantity` | In range 1-100 | +| `fmapi_endpoint_type` | In `[global, regional]` | +| `workload_name` | Non-empty, descriptive | +| `reason` | Populated | +| `proposal_id` | Present | + +![Calculator overview](/img/calculator-overview.png) +*The AI assistant proposes FMAPI Databricks workloads from natural language descriptions of model usage needs.* + +### Llama Output Tokens — 5M/month (8 tests) + +Tests output token rate type recognition: + +> *"Add DBRX usage with 5M output tokens per month"* + +Verifies: +- `workload_type` equals `"FMAPI_DATABRICKS"` +- `fmapi_rate_type` equals `"output_token"` +- `fmapi_quantity` in range 1-100 +- `fmapi_model` populated +- `fmapi_endpoint_type` valid +- Standard metadata fields (name, reason, proposal_id) + +### BGE Embeddings — 20M Tokens (7 tests) + +Tests embedding model recognition: + +> *"I need BGE-Large embeddings for 20M tokens per month via Databricks Foundation Models"* + +Verifies: +- `workload_type` equals `"FMAPI_DATABRICKS"` +- `fmapi_model` contains substring matching `bge`, `gte`, or `embed` +- `fmapi_quantity` > 0 +- `fmapi_endpoint_type` valid +- Standard metadata fields (name, reason) + +### Negative Discrimination (7 tests) + +Two scenarios ensure the AI doesn't propose FMAPI Databricks for incorrect use cases: + +**Claude (Proprietary Model) — AC-18**: +> *"I want to use Claude Sonnet for my chat application"* +- Verifies: `workload_type` is **not** `"FMAPI_DATABRICKS"` (should be `FMAPI_PROPRIETARY`) +- Also asserts: `fmapi_provider` contains `"anthropic"`, `fmapi_model` contains `"claude"` + +**GPU Model Serving — AC-19**: +> *"I need a GPU endpoint for serving my custom PyTorch model"* +- Verifies: `workload_type` is **not** `"FMAPI_DATABRICKS"` (should be `MODEL_SERVING`) +- Also asserts: GPU type present + +### Backend Pricing Tests (36 tests) + +The `test_fmapi_db_pricing.py` file tests calculation correctness without AI calls: + +| Category | What's Verified | Tests | +|----------|----------------|-------| +| **SKU Mapping** | All DB models -> `SERVERLESS_REAL_TIME_INFERENCE` | 4 | +| **Unknown Fallback** | Unknown/empty model returns valid fallback | 2 | +| **Rate Lookup** | Llama, BGE, GTE rates across rate types | 6 | +| **Output > Input** | Output token rate exceeds input for all models | 2 | +| **Embeddings Input-Only** | Embedding models only have input_token rates | 2 | +| **Hourly Classification** | Provisioned = hourly, token = not hourly | 3 | +| **calc_item_values** | Token-based and provisioned calculation paths | 6 | +| **Formula Verification** | Calculations match pricing JSON data | 4 | +| **Data Integrity** | Required fields, positive rates, hourly flags | 7 | + +### Edge Case Tests (10 tests) + +| Case | What's Verified | +|------|----------------| +| Unknown provider fallback | `_get_fmapi_sku` returns `OPENAI_MODEL_SERVING`, rate returns not-found | +| Empty provider / None model | Graceful handling, no exceptions | +| Google `cache_read` / `cache_write` | Rate lookup returns not-found, SKU still resolves | + +## File Structure + +``` +tests/ai_assistant/sprint_7/ # AI proposal tests +├── __init__.py +├── prompts.py # 5 prompt sequences +├── conftest.py # 5 module-scoped fixtures +├── test_fmapi_db_llama_input.py # 8 tests — Llama input tokens +├── test_fmapi_db_output_tokens.py # 8 tests — Output tokens +├── test_fmapi_db_embeddings.py # 7 tests — BGE embeddings +└── test_fmapi_db_negative.py # 7 tests — proprietary + GPU discrimination + +tests/sprint_7/ # Backend pricing tests +├── test_fmapi_db_pricing.py # 36 tests — SKU, rates, calculations +└── test_fmapi_prop_edge_cases.py # 10 tests — fallback edge cases +``` + +## Running Sprint 7 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate + +# Backend pricing only (fast, ~1 second) +python -m pytest tests/sprint_7/ -v + +# AI assistant only (~4 minutes) +python -m pytest tests/ai_assistant/sprint_7/ -v + +# All Sprint 7 tests +python -m pytest tests/sprint_7/ tests/ai_assistant/sprint_7/ -v +``` + +## Acceptance Criteria + +All acceptance criteria pass: + +| AC | Description | Status | +|----|-------------|--------| +| AC-1 | Llama -> `workload_type=FMAPI_DATABRICKS` | PASS | +| AC-2 | Llama -> `fmapi_model` contains "llama" | PASS | +| AC-3 | Llama -> `fmapi_rate_type` is valid token type | PASS | +| AC-4 | Llama -> `fmapi_quantity` in range 1-100 | PASS | +| AC-5 | Llama -> `fmapi_endpoint_type` in [global, regional] | PASS | +| AC-6-8 | Llama -> name, reason, proposal_id populated | PASS | +| AC-9-13 | Output -> FMAPI_DATABRICKS + output_token + quantity + model + name + reason | PASS | +| AC-14-17 | Embeddings -> FMAPI_DATABRICKS + model + quantity + endpoint + name + reason | PASS | +| AC-18 | Claude -> NOT FMAPI_DATABRICKS (is FMAPI_PROPRIETARY) | PASS | +| AC-19 | GPU serving -> NOT FMAPI_DATABRICKS (is MODEL_SERVING) | PASS | + +## Known Limitations + +- AI responses are non-deterministic — model name assertions use substring matching (e.g., `"llama"` not exact version) +- Embedding model assertion accepts `bge`, `gte`, or `embed` to handle AI's model name variations +- Backend pricing tests depend on the pricing JSON bundle being present in the test environment + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| `fmapi_model` doesn't contain expected substring | The AI may use a different model variant. Check if the proposed model is still a Databricks-hosted model. | +| `fmapi_rate_type` is `provisioned_scaling` | The AI may interpret high token volume as needing provisioned throughput. Adjust the prompt to specify "pay-per-token." | +| Backend pricing test fails on rate lookup | Verify the pricing JSON bundle exists and contains the expected model entries. | +| Negative Claude test returns FMAPI_DATABRICKS | The AI may not distinguish proprietary vs Databricks models. Ensure the prompt clearly says "Claude" or "Anthropic." | diff --git a/lakemeter/docs-site/docs/testing/fmapi-proprietary-ai-tests.md b/lakemeter/docs-site/docs/testing/fmapi-proprietary-ai-tests.md new file mode 100644 index 00000000..d66837b2 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/fmapi-proprietary-ai-tests.md @@ -0,0 +1,184 @@ +--- +sidebar_position: 10 +--- + +# Sprint 8: FMAPI Proprietary Tests + +Sprint 8 validates the AI assistant's ability to propose **Foundation Model API (Proprietary)** workloads for all three proprietary providers — Anthropic (Claude), OpenAI (GPT), and Google (Gemini) — plus negative discrimination against Databricks-hosted and GPU serving models. + +## What's Tested + +### Overview + +| Variant | File | Tests | AI Calls | Provider | +|---------|------|-------|----------|----------| +| Claude Sonnet 4.5 (Anthropic) | `test_fmapi_prop_claude.py` | 9 | 1 | anthropic | +| GPT-5 Mini (OpenAI) | `test_fmapi_prop_openai.py` | 9 | 1 | openai | +| Gemini 2.5 Flash (Google) | `test_fmapi_prop_google.py` | 9 | 1 | google | +| Negative — Llama (DB-hosted) | `test_fmapi_prop_negative.py` | 4 | 1 | N/A | +| Negative — GPU Serving | `test_fmapi_prop_negative.py` | 3 | 1 | N/A | +| **Total** | **4 files** | **34** | **5** | | + +### Claude — Anthropic (9 tests) + +A single AI call simulates requesting Claude through Databricks Foundation Model APIs: + +> *"Add Claude API usage, 5M input tokens and 1M output tokens per month"* + +| Field | Assertion | +|-------|-----------| +| `workload_type` | Equals `"FMAPI_PROPRIETARY"` | +| `fmapi_provider` | Contains `"anthropic"` | +| `fmapi_model` | Contains `"claude"` | +| `fmapi_rate_type` | Valid token type (input_token, output_token) | +| `fmapi_quantity` | In range 1-100 | +| `fmapi_endpoint_type` | Valid endpoint type | +| `workload_name` | Non-empty | +| `reason` | Populated | +| `proposal_id` | Present | + +![Calculator overview](/img/calculator-overview.png) +*The AI assistant proposes FMAPI Proprietary workloads — each provider (Anthropic, OpenAI, Google) has distinct pricing and model options.* + +:::note +The AI may propose two separate workloads for input and output tokens, since each rate_type is a separate line item. Tests validate whichever workload is returned first. +::: + +### GPT — OpenAI (9 tests) + +Tests OpenAI model recognition and provider classification: + +> *"I need GPT-5 mini for 20M input tokens per month"* + +Verifies: +- `workload_type` equals `"FMAPI_PROPRIETARY"` +- `fmapi_provider` contains `"openai"` +- `fmapi_model` contains `"gpt"` +- `fmapi_quantity` > 0 +- Standard metadata fields (name, reason, proposal_id) + +### Gemini — Google (9 tests) + +Tests Google model recognition: + +> *"Add Gemini 2.5 Flash usage, 15M input tokens per month"* + +Verifies: +- `workload_type` equals `"FMAPI_PROPRIETARY"` +- `fmapi_provider` contains `"google"` +- `fmapi_model` contains `"gemini"` +- `fmapi_quantity` > 0 +- Standard metadata fields (name, reason, proposal_id) + +### Negative Discrimination (7 tests) + +Two scenarios ensure the AI doesn't propose FMAPI Proprietary for incorrect use cases: + +**Llama (Databricks-Hosted) — AC-20**: +> *"I want to use Llama 3 for text generation"* +- Verifies: `workload_type` is **not** `"FMAPI_PROPRIETARY"` (should be `FMAPI_DATABRICKS`) + +**GPU Model Serving — AC-21**: +> *"Deploy my custom PyTorch model on a GPU endpoint"* +- Verifies: `workload_type` is **not** `"FMAPI_PROPRIETARY"` (should be `MODEL_SERVING`) + +## Iteration 2: Regression Fix + +Sprint 8 iteration 2 also fixed a regression in Sprint 5's ETL negative tests: + +**Bug**: `test_model_serving_negative.py::TestModelServingNegativeEtl` — 2 errors. The `non_serving_etl_proposal` fixture failed because the AI asked "Lakeflow Jobs (Procedural) or SDP (Declarative)?" instead of proposing a workload after 3 messages. + +**Root Cause**: The ETL prompts were ambiguous — "batch ETL workload" doesn't specify JOBS vs DLT, so the AI asked for clarification. + +**Fix**: Updated `tests/ai_assistant/sprint_5/prompts.py` to explicitly specify "Lakeflow Jobs" workload type and added "I want the JOBS workload type, not DLT" to the final escalation prompt. + +:::tip Lesson Learned +When testing negative scenarios, prompts must be unambiguous about what workload type *should* be proposed. If the AI can reasonably ask a clarifying question, it will — and the fixture will fail. +::: + +## File Structure + +``` +tests/ai_assistant/sprint_8/ +├── __init__.py +├── prompts.py # 5 prompt sequences (3 providers + 2 negative) +├── conftest.py # 5 module-scoped fixtures (1 AI call each) +├── test_fmapi_prop_claude.py # 9 tests — Anthropic Claude +├── test_fmapi_prop_openai.py # 9 tests — OpenAI GPT +├── test_fmapi_prop_google.py # 9 tests — Google Gemini +└── test_fmapi_prop_negative.py # 7 tests — Llama + GPU discrimination +``` + +## Running Sprint 8 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate + +# Sprint 8 AI tests only (~5 minutes) +python -m pytest tests/ai_assistant/sprint_8/ -v + +# Full regression (non-AI, ~6 seconds) +python -m pytest tests/ --ignore=tests/ai_assistant -v +``` + +Expected output: + +``` +tests/ai_assistant/sprint_8/test_fmapi_prop_claude.py::TestFmapiPropClaude::test_workload_type PASSED +tests/ai_assistant/sprint_8/test_fmapi_prop_claude.py::TestFmapiPropClaude::test_provider PASSED +tests/ai_assistant/sprint_8/test_fmapi_prop_claude.py::TestFmapiPropClaude::test_model PASSED +... +tests/ai_assistant/sprint_8/test_fmapi_prop_openai.py::TestFmapiPropOpenai::test_provider PASSED +... +tests/ai_assistant/sprint_8/test_fmapi_prop_google.py::TestFmapiPropGoogle::test_provider PASSED +... +tests/ai_assistant/sprint_8/test_fmapi_prop_negative.py::TestFmapiPropNegativeLlama::test_not_proprietary PASSED +tests/ai_assistant/sprint_8/test_fmapi_prop_negative.py::TestFmapiPropNegativeGpu::test_not_proprietary PASSED + +34 passed in ~300s +``` + +## Provider Selection Logic + +The AI must correctly map model names to the right provider and workload type: + +| User Request | Expected Type | Expected Provider | Key Signals | +|-------------|--------------|-------------------|-------------| +| Claude, Anthropic models | **FMAPI_PROPRIETARY** | `anthropic` | "Claude", "Anthropic", "Sonnet", "Opus", "Haiku" | +| GPT, OpenAI models | **FMAPI_PROPRIETARY** | `openai` | "GPT", "OpenAI", "GPT-4", "GPT-5" | +| Gemini, Google models | **FMAPI_PROPRIETARY** | `google` | "Gemini", "Google", "Gemini Flash", "Gemini Pro" | +| Llama, DBRX, BGE | **FMAPI_DATABRICKS** | N/A | "Llama", "DBRX", "BGE", "open-source" | +| Custom model + GPU | **MODEL_SERVING** | N/A | "custom model", "PyTorch", "GPU endpoint" | + +### Valid Providers + +The AI must propose one of: `anthropic` | `openai` | `google` + +## Acceptance Criteria + +All 21 acceptance criteria pass: + +| AC | Description | Status | +|----|-------------|--------| +| AC-1-9 | Claude -> FMAPI_PROPRIETARY + anthropic + claude + rate + quantity + endpoint + name + reason + proposal_id | PASS | +| AC-10-14 | GPT -> FMAPI_PROPRIETARY + openai + gpt + quantity + name + reason + proposal_id | PASS | +| AC-15-19 | Gemini -> FMAPI_PROPRIETARY + google + gemini + quantity + name + reason + proposal_id | PASS | +| AC-20 | Llama -> NOT FMAPI_PROPRIETARY (is FMAPI_DATABRICKS) | PASS | +| AC-21 | GPU serving -> NOT FMAPI_PROPRIETARY (is MODEL_SERVING) | PASS | + +## Known Limitations + +- AI responses are non-deterministic — model names use substring matching (e.g., `"claude"` not exact version string) +- AI may propose slightly different model names (e.g., `"claude-sonnet-4-5"` vs `"claude-4-5-sonnet"`) +- Quantity ranges are generous to accommodate AI's interpretation of token volume +- AI may propose 2 separate workloads (input + output) when a user specifies both — tests validate the first proposal + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| `fmapi_provider` doesn't match expected | The AI may use a different provider string format. Check if it's a valid alias (e.g., "openai" vs "open_ai"). | +| AI proposes FMAPI_DATABRICKS for Claude | Ensure the prompt clearly says "Claude" or specifies "Anthropic" as the provider. | +| Negative Llama test returns FMAPI_PROPRIETARY | The AI may misclassify open-source models. Ensure the prompt says "Llama" and mentions "Databricks-hosted" or "open-source." | +| Fixture fails with clarifying question | Check that the prompt sequence has 3 progressively specific messages. The final message should be explicit about the workload type. | diff --git a/lakemeter/docs-site/docs/testing/installation-tests.md b/lakemeter/docs-site/docs/testing/installation-tests.md new file mode 100644 index 00000000..5ec09fe1 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/installation-tests.md @@ -0,0 +1,97 @@ +--- +sidebar_position: 13 +--- + +# Installation Validation Tests + +The installation test suite (`tests/test_installation/`) validates the Lakemeter installer, pricing data files, and app configuration without requiring network access. All 91 tests run locally in under 1 second. + +## Test Files + +### `test_installer_script.py` (21 tests) + +Static analysis of `scripts/install_lakemeter.py` — verifies the installer's structure without executing it. + +| Test Area | Tests | What It Checks | +|-----------|-------|----------------| +| Script structure | 3 | File exists, parseable Python, all 10 step functions defined | +| Step functions | 2 | Each function has a docstring, all helpers exist (12 functions) | +| CLI arguments | 3 | `--profile`, `--skip-provision`, `--skip-deploy` flags present | +| Critical patterns | 4 | `identity_type=SERVICE_PRINCIPAL`, SSL connections, TRUNCATE before insert | +| Roles API | 2 | Correct URL pattern, `DATABRICKS_SUPERUSER` membership | +| Constants | 3 | `lakemeter_pricing` DB name, `DEFAULT_SCHEMA`, `TOTAL_STEPS = 9` | +| Error handling | 4 | `sys.exit` patterns, helper function signatures | + +### `test_pricing_data.py` (49 tests) + +Validates all 9 pricing JSON files in `backend/static/pricing/`: + +| Pricing File | Tests | Validations | +|-------------|-------|-------------| +| `manifest.json` | 3 | Lists all 9 files, total entries > 4000, all files present | +| `dbu_rates.json` | 5 | Valid JSON, entries present, `cloud:region:tier` key format, valid clouds | +| `instance_dbu_rates.json` | 5 | Top-level cloud keys, entries have `dbu_rate > 0` and `vcpus` | +| `dbu_multipliers.json` | 5 | `cloud:type:feature` format, `multiplier > 0` | +| `dbsql_rates.json` | 5 | `cloud:type:size` format, `dbu_per_hour > 0` | +| `dbsql_warehouse_config.json` | 5 | Entries present, correct key format | +| `model_serving_rates.json` | 5 | Entries present, key format valid | +| `vector_search_rates.json` | 5 | Entries present, key format valid | +| `fmapi_databricks_rates.json` | 5 | `cloud:model:rate_type` format | +| `fmapi_proprietary_rates.json` | 6 | `cloud:model:rate_type` format, provider names valid | + +### `test_app_config.py` (21 tests) + +Validates the `app.yaml` Databricks App configuration: + +| Test Area | Tests | What It Checks | +|-----------|-------|----------------| +| YAML validity | 1 | File parses as valid YAML | +| Command | 2 | Runs uvicorn on `0.0.0.0:8000` via bash | +| `valueFrom` references | 6 | All 5 resource references match expected names (parametrized) | +| Hardcoded values | 3 | `ENVIRONMENT=production`, `DB_PORT=5432`, `DB_SSLMODE=require` | +| Template variables | 2 | `DATABRICKS_HOST` uses `{{databricks_host}}` template | +| SP credentials | 2 | `SP_CLIENT_ID_KEY` and `SP_SECRET_KEY` present | +| Resource names | 5 | Each `valueFrom` maps to the correct resource name | + +## Running the Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate + +# Run all installation tests +python -m pytest tests/test_installation/ -v + +# Run a specific file +python -m pytest tests/test_installation/test_pricing_data.py -v +python -m pytest tests/test_installation/test_app_config.py -v +``` + +## Key Validations + +### Installer Uses Correct SP Identity Type + +The most critical validation: the installer must create SP roles with `identity_type=SERVICE_PRINCIPAL`, not `PG_ONLY`. Two dedicated tests verify this: + +- `test_sp_role_uses_service_principal_identity` — checks the string `identity_type=SERVICE_PRINCIPAL` or `"identity_type": "SERVICE_PRINCIPAL"` appears in the installer source +- `test_sp_role_not_pg_only_default` — checks that `PG_ONLY` is not used as the default identity type + +The installer handles SP role creation automatically with the correct `identity_type=SERVICE_PRINCIPAL`. + +### Pricing Data Integrity + +Every pricing file is validated for: + +1. **Existence** — File exists in `backend/static/pricing/` +2. **Valid JSON** — Parses without errors +3. **Non-empty** — Has at least one entry +4. **Key format** — Keys follow the expected `cloud:dimension:dimension` pattern +5. **Value ranges** — Numeric values (rates, multipliers) are positive + +### App Configuration Correctness + +The `app.yaml` tests verify: + +- The 5 `valueFrom` references point to the correct Databricks App resource names +- Hardcoded values match production defaults (port 5432, SSL required) +- The `DATABRICKS_HOST` uses the `{{databricks_host}}` template (not a hardcoded URL) diff --git a/lakemeter/docs-site/docs/testing/integration-validation-tests.md b/lakemeter/docs-site/docs/testing/integration-validation-tests.md new file mode 100644 index 00000000..9c31de90 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/integration-validation-tests.md @@ -0,0 +1,122 @@ +--- +sidebar_position: 14 +--- + +# Integration Validation Tests + +The integration validation suite (`tests/test_integration_validation/`) verifies the completeness, coverage, and consistency of the entire Lakemeter test suite. It contains 141 tests across 4 files. + +## Purpose + +These tests answer the question: **"Is the test suite itself complete and correct?"** They validate: + +- Every sprint has test files +- Every workload type has calculation and export tests +- Pricing data is consistent across all workloads +- The SP OAuth flow works end-to-end (when network is available) + +## Test Files + +### `test_suite_completeness.py` (44 tests) + +Structural validation of the test directory: + +| Test Area | Tests | What It Checks | +|-----------|-------|----------------| +| Sprint directories | 11 | Sprint directories 1-11 all exist | +| Support directories | 4 | `ai_assistant`, `regression`, `test_installation`, `test_integration_validation` exist | +| Conftest files | 9 | Each sprint directory (1-9) has a `conftest.py` | +| Test file counts | 11 | Minimum test files per directory (e.g., sprint_3 has >= 8 files) | +| Permission tests | 3 | Permission test file exists with 5 test classes and skip-guard | +| Package structure | 6 | `__init__.py` files in all test packages | + +### `test_workload_coverage.py` (49 tests) + +Validates that every workload type has adequate test coverage: + +| Workload Type | Checks | +|--------------|--------| +| JOBS | Has calculation tests + export tests + AI tests | +| ALL_PURPOSE | Has calculation tests + export tests + AI tests | +| DLT | Has calculation tests (8+ files) + export tests + AI tests | +| DBSQL | Has calculation tests + export tests + AI tests | +| MODEL_SERVING | Has AI tests + combined validation tests | +| VECTOR_SEARCH | Has AI tests | +| FMAPI_DATABRICKS | Has pricing tests + AI tests | +| FMAPI_PROPRIETARY | Has edge case tests + AI tests | +| LAKEBASE | Has 7+ test files covering DBU calc, edge cases, Excel, SKU pricing | + +Additional coverage checks: + +- Multi-workload sprints (10, 11) have cross-workload and regression tests +- All 9 pricing data files exist, are valid JSON, and non-empty +- Manifest lists all 9 files with total entries > 4,000 +- AI assistant has test coverage for JOBS and ALL_PURPOSE +- Regression test files exist for sprints 1-4 + +### `test_permission_flow.py` (7 tests, skip-guarded) + +Live integration tests that verify the SP OAuth flow end-to-end. These tests are **skip-guarded** — they only run when the Databricks workspace is network-reachable. + +| Test | What It Verifies | +|------|-----------------| +| Full SP OAuth flow | Token generation -> DB connection -> query execution | +| Token reuse | Same token works across multiple connections | +| App health endpoint | `GET /health` returns 200 with `status: healthy` | +| Pricing data access | All 14 workload types readable, names match expected set | +| DBU rates populated | DBU rate values are present and > 0 | + +### `test_cross_feature_consistency.py` (41 tests) + +Data consistency checks across all pricing files: + +| Check Area | Tests | Validations | +|-----------|-------|-------------| +| DBU rates | 6 | All 3 clouds (AWS, Azure, GCP) present, all rates > 0 | +| Instance rates | 6 | All 3 clouds present, all rates > 0 | +| Multipliers | 6 | All 3 clouds present, all values > 0 | +| DBSQL rates | 4 | Non-empty, correct `cloud:type:size` key format | +| FMAPI (Databricks) | 4 | Non-empty, correct key format | +| FMAPI (Proprietary) | 4 | Non-empty, correct key format | +| Model Serving | 4 | Non-empty, correct key format | +| Vector Search | 4 | Non-empty, correct key format | +| Manifest integrity | 7 | File count = 9, total > 4000, all listed files exist | + +## Running the Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate + +# Run all integration validation tests +python -m pytest tests/test_integration_validation/ -v + +# Run only the offline tests (no network required) +python -m pytest tests/test_integration_validation/ -v --ignore=tests/test_integration_validation/test_permission_flow.py + +# Run the full suite including permission flow (requires network) +python -m pytest tests/test_integration_validation/ -v +``` + +## Test Results Summary + +The full test suite (1,651 tests) breaks down as: + +| Module | Tests | +|--------|-------| +| Sprint 1 — JOBS | 128 | +| Sprint 2 — ALL_PURPOSE | 101 | +| Sprint 3 — DLT | 157 | +| Sprint 4 — DBSQL | 146 | +| Sprint 5 — MODEL_SERVING | 125 | +| Sprint 6 — FMAPI_DATABRICKS | 135 | +| Sprint 7 — FMAPI_PROPRIETARY | 116 | +| Sprint 8 — VECTOR_SEARCH | 118 | +| Sprint 9 — LAKEBASE | 158 | +| Sprint 10 — Multi-Workload | 123 | +| Sprint 11 — ML Pipeline | 50 | +| AI Assistant | 348 | +| Regression | 52 | +| Installation Validation | 91 | +| **Integration Validation** | **141** | +| **Total** | **1,651** | diff --git a/lakemeter/docs-site/docs/testing/jobs-workload-tests.md b/lakemeter/docs-site/docs/testing/jobs-workload-tests.md new file mode 100644 index 00000000..1dcc5320 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/jobs-workload-tests.md @@ -0,0 +1,113 @@ +--- +sidebar_position: 2 +--- + +# Sprint 1: JOBS Workload Tests + +Sprint 1 establishes the test infrastructure and validates the AI assistant's ability to propose **Lakeflow Jobs** workloads from natural language descriptions. + +## What's Tested + +### Test Infrastructure + +The shared test infrastructure in `tests/ai_assistant/conftest.py` provides: + +| Component | Purpose | +|-----------|---------| +| `http_client` | Session-scoped FastAPI TestClient with the real backend | +| `test_estimate` | Auto-created test estimate (AWS, us-east-1, Premium) | +| `send_chat_message()` | Send a chat message with retry on 500 errors | +| `extract_proposal()` | Parse `proposed_workload` from response or tool_results | +| `send_chat_until_proposal()` | Send multiple messages until AI proposes a workload | +| `confirm_proposal()` | Confirm a proposed workload via REST API | +| `reject_proposal()` | Reject a proposed workload via REST API | +| `get_conversation_state()` | Check conversation state (pending/confirmed workloads) | + +### Classic JOBS Proposal (12 tests) + +A single AI call simulates a user asking for a daily ETL job: + +> *"I need a daily ETL job processing 1TB of data with 4 workers, running 10 times a day for 30 minutes each on AWS us-east-1."* + +The test verifies all required fields: + +| Field | Assertion | +|-------|-----------| +| `workload_type` | Equals `"JOBS"` | +| `workload_name` | Non-empty, at least 3 characters | +| `runs_per_day` | Present and > 0 | +| `avg_runtime_minutes` | Present and > 0 | +| `days_per_month` | Present and > 0 | +| `num_workers` | Present and >= 1 | +| `reason` | Populated, at least 10 characters | +| `notes` | Populated, at least 1 character | +| `proposal_id` | Present (required for confirm/reject) | +| `serverless_enabled` | Explicitly set (not null) | +| `photon_enabled` | Set when classic compute | +| Node types | `driver_node_type` or `worker_node_type` populated for classic | + +![Workload Configuration](/img/workload-expanded-config.png) +*A configured JOBS workload in the calculator — the AI assistant generates equivalent configurations from natural language.* + +### Serverless JOBS Proposal (3 tests) + +Tests a serverless variant: + +> *"I need a serverless Lakeflow Jobs workload for nightly ETL data processing."* + +Verifies: +- `workload_type` is `"JOBS"` +- `serverless_enabled` is `True` +- Scheduling fields (`runs_per_day`, `avg_runtime_minutes`) are present + +### Confirm/Reject Workflow (3 tests) + +Each test creates its own conversation to verify: + +1. **Confirm** — Proposal is accepted, returns `workload_config` +2. **State check** — Confirmed proposal is removed from pending list +3. **Reject** — Proposal is rejected, returns `"rejected"` action + +## Running Sprint 1 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate +python -m pytest tests/ai_assistant/sprint_1/ -v +``` + +Expected output: + +``` +tests/ai_assistant/sprint_1/test_jobs_proposal.py::TestJobsProposalBasic::test_workload_type_is_jobs PASSED +tests/ai_assistant/sprint_1/test_jobs_proposal.py::TestJobsProposalBasic::test_workload_name_non_empty PASSED +tests/ai_assistant/sprint_1/test_jobs_proposal.py::TestJobsProposalBasic::test_runs_per_day PASSED +... +tests/ai_assistant/sprint_1/test_confirm_flow.py::TestConfirmFlow::test_confirm_returns_config PASSED +tests/ai_assistant/sprint_1/test_confirm_flow.py::TestConfirmFlow::test_state_after_confirm PASSED +tests/ai_assistant/sprint_1/test_confirm_flow.py::TestConfirmFlow::test_reject_returns_rejected PASSED + +18 passed in ~164s +``` + +![Estimate with Workloads](/img/estimate-with-workloads.png) +*An estimate with multiple workloads — the confirm flow creates workloads like these in the database.* + +## Architecture Decision: TestClient vs Live App + +The tests initially targeted the live Databricks App URL. However, the Databricks Apps proxy re-scopes OAuth tokens, removing the `model-serving` scope needed for FMAPI (Claude API calls). The solution uses FastAPI's `TestClient` which runs the backend in-process and uses the Databricks CLI token directly — this token has `all-apis` scope including `model-serving`. + +## Known Limitations + +- **Non-determinism**: AI may ask different clarifying questions across runs. Multi-message follow-ups mitigate this but 3 messages may not always be sufficient. +- **Confirm flow latency**: Each confirm test makes its own AI call (~30-60s each) since they need independent conversations. +- **Rate limiting**: Claude FMAPI has queries-per-hour limits. Running the full suite repeatedly may hit rate limits. + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| `AssertionError: No proposal after 2 messages` | AI asked a clarifying question. Add a more explicit follow-up message to the prompt sequence. | +| `500 status from chat endpoint` | FMAPI rate limit or transient failure. Wait 60s and retry. | +| `Failed to create estimate` | Check that the `lakemeter` CLI profile is configured and has workspace access. | +| `ModuleNotFoundError: app.main` | Ensure the backend directory is on `sys.path`. Run from the project root. | diff --git a/lakemeter/docs-site/docs/testing/lakebase-excel-tests.md b/lakemeter/docs-site/docs/testing/lakebase-excel-tests.md new file mode 100644 index 00000000..e852f409 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/lakebase-excel-tests.md @@ -0,0 +1,165 @@ +--- +sidebar_position: 11 +--- + +# Sprint 9: Lakebase Excel & Calculation Tests + +Sprint 9 validates the **Lakebase** workload's Excel export formulas, cost calculations, and edge-case handling. Unlike AI assistant sprints, these are **pure calculation tests** — no FMAPI calls required. + +## What's Tested + +### Overview + +| Area | File | Tests | Focus | +|------|------|-------|-------| +| Config Display | `test_lb_config_display.py` | 7 | Configuration string formatting | +| DBU Calculation | `test_lb_dbu_calc.py` | 44 | DBU/hr = CU × nodes (parametrized) | +| Edge Cases | `test_lb_edge_cases.py` | 28 | Zero, negative, None, max, discounts | +| Excel Compute | `test_lb_excel_compute.py` | 15 | Compute row SKU, formulas, serverless | +| Cross-Cloud Excel | `test_lb_excel_crosscloud.py` | 11 | AWS/Azure/GCP compute, storage, SKU | +| Excel Integrity | `test_lb_excel_integrity.py` | 9 | Multi-item rows, discount propagation | +| Excel Storage | `test_lb_excel_storage.py` | 18 | Storage row values, discounts, notes | +| Excel Totals | `test_lb_excel_totals.py` | 13 | Total cost columns (List + Disc.) | +| SKU & Pricing | `test_lb_sku_pricing.py` | 13 | SKU determination, pricing, serverless | +| **Total** | **9 files** | **158** | | + +### DBU Calculation (44 tests) + +The core formula `DBU/hr = CU × nodes` is verified across a comprehensive parametrized matrix: + +- **CU values**: 0.5, 1, 2, 4, 8, 16 +- **Node configurations**: read replicas (0-3), HA enabled/disabled +- **Boundary cases**: half-CU (0.5), maximum CU (16) +- **Zero handling**: 0 CU returns 0 DBU/hr + +![Calculator overview](/img/calculator-overview.png) +*Lakemeter's workload calculator — Lakebase configurations include CU size, HA, read replicas, and storage.* + +### Edge Cases (28 tests) + +Validates robust handling of invalid and boundary inputs: + +| Scenario | Tests | Behavior | +|----------|-------|----------| +| Negative CU values | 8 | Backend returns warning, computation continues | +| Zero CU | 3 | Returns zero DBU/hr | +| None/missing fields | 5 | Defaults applied gracefully | +| Maximum CU (16) | 3 | Correct calculation at upper bound | +| Discount ranges (0-100%) | 9 | Formula correctness across full range | + +:::tip +Negative CU values produce a backend warning rather than a hard rejection. This allows downstream consumers to detect and handle invalid input while preserving computation flow. +::: + +### Excel Export Verification (66 tests across 5 files) + +These tests generate real `.xlsx` files using the export engine and verify cell-by-cell correctness: + +**Compute rows** (`test_lb_excel_compute.py`): +- SKU name matches expected pattern (`LAKEBASE_*`) +- DBU cost formulas resolve correctly +- Serverless vs classic distinction handled + +**Storage rows** (`test_lb_excel_storage.py`): +- Storage pricing applied correctly +- Discount propagation from estimate-level to storage rows +- Notes column populated when user provides notes + +**Cross-cloud** (`test_lb_excel_crosscloud.py`): +- AWS, Azure, and GCP produce correct cloud-specific SKUs +- Half-CU (0.5) boundary handled in DBU/hr and storage pairing +- Cloud-specific pricing reflected in output + +![Workload calculation detail](/img/workload-calculation-detail.png) +*Detailed cost breakdown for a Lakebase workload — tests verify every column in this view matches the Excel export.* + +**Multi-item integrity** (`test_lb_excel_integrity.py`): +- Multiple Lakebase items in one estimate export correctly +- Discount propagation applies consistently across all items +- Row ordering and section boundaries maintained + +**Total cost columns** (`test_lb_excel_totals.py`): +- Total Cost (List) = DBU Cost (List) for serverless (VM costs = 0) +- Total Cost (Disc.) = DBU Cost (Disc.) for serverless +- Compute total exceeds storage total for standard configurations +- Notes propagate to the correct rows + +## Iteration History + +Sprint 9 went through 5 iterations, each adding coverage based on evaluator feedback: + +| Iteration | Tests Added | Key Focus | +|-----------|-------------|-----------| +| 1 | 111 | Core calculations, AI assistant Lakebase tests | +| 2 | +10 | Negative CU edge cases, storage discount propagation | +| 3 | +13 | Backend negative CU validation, multi-item integrity | +| 4 | +11 | Cross-cloud Excel output, half-CU boundary | +| 5 | +13 | Total cost columns, notes coverage | + +## File Structure + +``` +tests/sprint_9/ +├── conftest.py # Shared fixtures (make_line_item) +├── excel_helpers.py # Excel generation + row finders +├── lb_calc_helpers.py # Independent calculation helpers +├── test_lb_config_display.py # 7 tests — config string formatting +├── test_lb_dbu_calc.py # 44 tests — DBU/hr calculation +├── test_lb_edge_cases.py # 28 tests — zero/negative/None/max/discount +├── test_lb_excel_compute.py # 15 tests — compute row SKU, formula +├── test_lb_excel_crosscloud.py # 11 tests — AWS/Azure/GCP + half-CU +├── test_lb_excel_integrity.py # 9 tests — multi-item, discount propagation +├── test_lb_excel_storage.py # 18 tests — storage row values, notes +├── test_lb_excel_totals.py # 13 tests — total cost columns + notes +└── test_lb_sku_pricing.py # 13 tests — SKU determination, pricing +``` + +## Running Sprint 9 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate + +# Sprint 9 tests only (~3 seconds) +python -m pytest tests/sprint_9/ -v + +# Full non-AI regression (~7 seconds) +python -m pytest tests/ --ignore=tests/ai_assistant -v +``` + +Expected output: + +``` +tests/sprint_9/test_lb_config_display.py::TestLakebaseConfigDisplay::test_basic_config PASSED +tests/sprint_9/test_lb_dbu_calc.py::TestLakebaseDBUCalc::test_dbu_per_hour[cu_1_no_ha] PASSED +... +tests/sprint_9/test_lb_excel_totals.py::TestLakebaseExcelTotals::test_compute_total_list PASSED +tests/sprint_9/test_lb_excel_totals.py::TestLakebaseExcelTotals::test_notes_propagation PASSED + +158 passed in ~3.2s +``` + +## Key Formulas Verified + +| Formula | Description | +|---------|-------------| +| `DBU/hr = CU × (1 + read_replicas + (1 if HA else 0))` | Total compute units including replicas and HA standby | +| `Monthly DBU = DBU/hr × 730` | Standard month hours | +| `DBU Cost (List) = Monthly DBU × list_price` | Pre-discount cost | +| `DBU Cost (Disc.) = DBU Cost (List) × (1 - discount/100)` | Post-discount cost | +| `Total Cost (List) = DBU Cost (List) + VM Cost (List)` | Combined compute + VM | +| `Storage Cost = storage_gb × storage_rate` | Monthly storage fee | + +## Known Limitations + +- Storage discount is hardcoded at 0.0 in the backend — tests verify formula correctness at 0%, confirming the discount infrastructure works correctly +- Negative CU produces a warning but still computes (no hard rejection) — this is intentional behavior + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| Excel file not generated | Check that `xlsxwriter` is installed and the export route is accessible | +| SKU mismatch in cross-cloud tests | Verify the pricing bundle has entries for all three clouds | +| Half-CU test fails | Ensure the backend supports decimal CU values (0.5) | +| Discount propagation differs | Check estimate-level discount is correctly passed to the export engine | diff --git a/lakemeter/docs-site/docs/testing/ml-pipeline-ai-tests.md b/lakemeter/docs-site/docs/testing/ml-pipeline-ai-tests.md new file mode 100644 index 00000000..37394cd7 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/ml-pipeline-ai-tests.md @@ -0,0 +1,175 @@ +--- +sidebar_position: 13 +--- + +# Sprint 11: ML Pipeline AI Tests (VECTOR_SEARCH + FMAPI + MODEL_SERVING) + +Sprint 11 validates the AI assistant's ability to handle **ML/RAG pipeline conversations** — multi-workload scenarios targeting AI/ML workload types: Vector Search, Foundation Model API (Proprietary), and Model Serving. + +## What's Tested + +### Overview + +| Scenario | File | Tests | AI Calls | +|----------|------|-------|----------| +| 3-workload type checks | `test_ml_pipeline_types.py` | 24 | Shared (1 session) | +| 3-workload confirm flow | `test_ml_pipeline_confirm.py` | 12 | Shared | +| 2-workload variant (VS + FMAPI) | `test_ml_pipeline_two.py` | 14 | 1 session | +| Negative: Model Serving only | `test_ml_pipeline_negative.py` | 7 | 1 session | +| **Sprint 11 AI total** | **4 files** | **57** | **3 sessions** | +| Non-AI regression guards | `test_regression_s10_bugs.py` | 8 | 0 | +| Model Serving combined | `test_ms_combined_validation.py` | 34 | 0 | +| Notes completeness | `test_notes_completeness.py` | 8 | 0 | +| **Sprint 11 non-AI total** | **3 files** | **50** | **0** | + +### 3-Workload ML Pipeline (36 tests) + +The primary scenario simulates a full RAG application setup: + +> *"Set up a RAG application with vector search for embeddings, Claude for text generation, and a model serving endpoint for our custom reranker"* + +The test suite verifies the AI proposes all three ML workload types across the conversation: + +| Workload | Key Fields Asserted | +|----------|-------------------| +| **VECTOR_SEARCH** | `workload_type=VECTOR_SEARCH`, `endpoint_type` populated, `vector_capacity_millions` | +| **FMAPI_PROPRIETARY** | `workload_type=FMAPI_PROPRIETARY`, `fmapi_provider=anthropic`, `fmapi_model` contains `claude` | +| **MODEL_SERVING** | `workload_type=MODEL_SERVING`, `model_serving_type` populated | + +![Calculator overview](/img/calculator-overview.png) +*The AI assistant proposes ML pipeline workloads — Vector Search, FMAPI Proprietary, and Model Serving for a complete RAG architecture.* + +Each workload is checked for common metadata fields: +- `workload_name` — descriptive name +- `reason` — why this workload was proposed +- `notes` — additional context +- `proposal_id` — unique UUID + +**Confirm flow** (12 tests): +- All 3 confirmations succeed +- Conversation state shows ≥ 3 confirmed workloads with correct types +- Each proposal has a distinct `proposal_id` + +### 2-Workload Variant (14 tests) + +A simpler RAG scenario with only Vector Search and FMAPI: + +> *"I need vector search for embeddings and Claude for inference"* + +Verifies: +- Both VS and FMAPI_PROPRIETARY workloads proposed +- Both confirmations succeed +- No unnecessary Model Serving workload proposed + +### Negative Discrimination (7 tests) + +Ensures the AI correctly identifies a **Model Serving-only** request without proposing VS or FMAPI: + +> *"Deploy a custom PyTorch model on a GPU endpoint for real-time inference"* + +Verifies: +- `workload_type` is `MODEL_SERVING` +- Does **not** propose `VECTOR_SEARCH` or `FMAPI_PROPRIETARY` + +![Workload calculation detail](/img/workload-calculation-detail.png) +*Each ML workload in the pipeline has its own cost calculation — tests verify type-specific fields are correctly populated.* + +:::note +The AI may use the `propose_genai_architecture` bundle tool instead of individual `propose_workload` calls. Both are valid — the tests check the resulting set of workload types regardless of which tool was used. +::: + +## Acceptance Criteria + +All 12 acceptance criteria pass: + +| AC | Description | Status | +|----|-------------|--------| +| AC-1 | 3 proposals collected (VS, FMAPI_PROP, MS) | PASS | +| AC-2 | Types cover all three ML workloads | PASS | +| AC-3 | Common fields (name, reason, notes, proposal_id) | PASS | +| AC-4 | VS has `endpoint_type` populated | PASS | +| AC-5 | FMAPI_PROP has anthropic provider + claude model | PASS | +| AC-6 | MS has `model_serving_type` populated | PASS | +| AC-7 | All 3 confirmations succeed | PASS | +| AC-8 | State shows ≥ 3 confirmed with correct types | PASS | +| AC-9 | Distinct `proposal_id`s | PASS | +| AC-10 | 2-workload: VS + FMAPI_PROP only | PASS | +| AC-11 | Both 2-workload confirmations succeed | PASS | +| AC-12 | Negative: MS only, no VS/FMAPI | PASS | + +## File Structure + +``` +tests/ai_assistant/sprint_11/ +├── __init__.py +├── prompts.py # 119 lines — prompt constants for 3-wl, 2-wl, negative +├── conftest.py # 147 lines — module-scoped fixtures: sessions +├── test_ml_pipeline_types.py # 138 lines — 24 tests: type checks, fields +├── test_ml_pipeline_confirm.py # 90 lines — 12 tests: confirm flow, state +├── test_ml_pipeline_two.py # 81 lines — 14 tests: 2-workload variant +└── test_ml_pipeline_negative.py # 52 lines — 7 tests: MS-only discrimination + +tests/sprint_11/ +├── test_regression_s10_bugs.py # 8 tests — Sprint 10 regression guards +├── test_ms_combined_validation.py # 34 tests — Model Serving in combined Excel +└── test_notes_completeness.py # 8 tests — Notes column completeness +``` + +## Running Sprint 11 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate + +# Default pytest (excludes AI tests, completes in ~9s) +pytest -v + +# Sprint 11 non-AI tests only +pytest tests/sprint_11/ -v + +# Sprint 11 AI tests (explicit, requires FMAPI access) +pytest tests/ai_assistant/sprint_11/ --no-header --timeout=300 +``` + +Expected non-AI output: + +``` +tests/sprint_11/test_regression_s10_bugs.py::TestS10BugRegression::test_pyproject_ignores_ai PASSED +tests/sprint_11/test_ms_combined_validation.py::TestModelServingCombined::test_gpu_medium PASSED +... +tests/sprint_11/test_notes_completeness.py::TestNotesCompleteness::test_all_types_have_notes PASSED + +50 passed in ~2.5s +``` + +## Test Results + +| Suite | Tests | Runtime | AI Calls | +|-------|-------|---------|----------| +| Sprint 11 non-AI | 50 | ~2.5s | 0 | +| Sprint 11 AI (ML pipeline) | 57 | ~8 min | 3 sessions | +| Full non-AI regression | 1,409 | ~9.6s | 0 | + +## Multi-Workload Test Comparison + +| Sprint | Scenario | Workload Types | Tests | +|--------|----------|---------------|-------| +| Sprint 10 | Data Platform | JOBS + ALL_PURPOSE + DBSQL | ~40 AI | +| **Sprint 11** | **ML Pipeline** | **VECTOR_SEARCH + FMAPI_PROP + MODEL_SERVING** | **57 AI** | +| Sprint 12 (planned) | Complete Platform | 5+ workload types | TBD | + +## Known Limitations + +- AI tests are non-deterministic — auto-skip if FMAPI is unreachable +- The AI may propose workloads in different order than prompted — tests check the SET of types, not the order +- If the AI uses `propose_genai_architecture` (bundle tool) instead of individual proposals, the `extract_proposal` helper may need extension for edge cases + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| AI proposes wrong types | Check that the prompt clearly specifies "vector search", "Claude", and "model serving" | +| FMAPI provider not `anthropic` | Ensure the prompt says "Claude" — the AI may default to a different provider if prompt is ambiguous | +| Fewer than 3 proposals | The AI may bundle proposals or ask clarifying questions — escalation prompts handle this | +| AI tests skip | Check network access; tests auto-skip if FMAPI endpoint is unreachable | +| `extract_proposal` returns None | The AI may have used bundle tool — check `tool_results` for `propose_genai_architecture` | diff --git a/lakemeter/docs-site/docs/testing/model-serving-ai-tests.md b/lakemeter/docs-site/docs/testing/model-serving-ai-tests.md new file mode 100644 index 00000000..f9211937 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/model-serving-ai-tests.md @@ -0,0 +1,163 @@ +--- +sidebar_position: 7 +--- + +# Sprint 5: Model Serving Tests + +Sprint 5 validates the AI assistant's ability to propose **Model Serving** endpoint workloads across three GPU/CPU variants and correctly reject non-serving requests. + +## What's Tested + +### Overview + +| Variant | File | Tests | AI Calls | Compute Type | +|---------|------|-------|----------|--------------| +| GPU Medium (A10G) | `test_model_serving_gpu_medium.py` | 8 | 1 | gpu_medium | +| CPU Only | `test_model_serving_cpu.py` | 8 | 1 | cpu | +| GPU Small (T4) | `test_model_serving_gpu_small.py` | 8 | 1 | gpu_small | +| Negative (Interactive) | `test_model_serving_negative.py` | 2 | 1 | N/A | +| Negative (Batch ETL) | `test_model_serving_negative.py` | 2 | 1 | N/A | +| **Total** | **4 files** | **28** | **5** | | + +### GPU Medium — A10G Real-Time Inference (8 tests) + +A single AI call simulates deploying a GPU-accelerated serving endpoint: + +> *"I need to deploy a model serving endpoint with GPU medium A10G for real-time ML inference on AWS us-east-1. Expecting around 200 hours of usage per month."* + +| Field | Assertion | +|-------|-----------| +| `workload_type` | Equals `"MODEL_SERVING"` | +| `model_serving_type` | Contains `"gpu_medium"` | +| `hours_per_month` | In range 100–744 (tolerant of AI interpretation) | +| `workload_name` | Non-empty, at least 3 characters | +| `reason` | Populated, at least 10 characters | +| `notes` | Populated | +| `proposal_id` | Present | + +![Workload Configuration](/img/workload-expanded-config.png) +*A Model Serving workload configuration — the AI assistant generates these configurations from natural language descriptions of ML deployment needs.* + +### CPU Only — Lightweight Inference (8 tests) + +Tests a CPU-only endpoint for scikit-learn models: + +> *"I need a CPU-only model serving endpoint for lightweight scikit-learn model inference on AWS us-east-1. Running about 500 hours per month."* + +Verifies: +- `model_serving_type` contains `"cpu"` +- `hours_per_month` is present and > 0 +- `model_serving_scale_to_zero` is a boolean when present (conditional check — AI may omit this field) +- Standard metadata fields populated + +### GPU Small — T4 Embedding Generation (8 tests) + +Tests a smaller GPU endpoint for embeddings: + +> *"I need a GPU small T4 model serving endpoint for real-time embedding generation on AWS us-east-1. About 300 hours per month."* + +Verifies: +- `model_serving_type` contains `"gpu_small"` +- `hours_per_month` is present and > 0 +- Standard metadata fields populated + +### Negative Discrimination (4 tests) + +Two scenarios ensure the AI doesn't propose Model Serving for unrelated workloads: + +**Interactive Compute (AC-15)**: +> *"I need an interactive notebook cluster for data exploration with 4 workers."* +- Verifies: `workload_type` is **not** `"MODEL_SERVING"` + +**Batch ETL (AC-16)**: +> *"I need a daily batch ETL pipeline to transform raw CSV files into curated Delta tables."* +- Verifies: `workload_type` is **not** `"MODEL_SERVING"` + +## File Structure + +``` +tests/ai_assistant/sprint_5/ +├── __init__.py +├── prompts.py # 5 prompt sequences (3 GPU/CPU + 2 negative) +├── conftest.py # 5 module-scoped fixtures (1 AI call each) +├── test_model_serving_gpu_medium.py # 8 tests — GPU Medium A10G +├── test_model_serving_cpu.py # 8 tests — CPU only +├── test_model_serving_gpu_small.py # 8 tests — GPU Small T4 +└── test_model_serving_negative.py # 4 tests — interactive + ETL discrimination +``` + +## Running Sprint 5 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate +python -m pytest tests/ai_assistant/sprint_5/ -v +``` + +Expected output: + +``` +tests/ai_assistant/sprint_5/test_model_serving_gpu_medium.py::TestModelServingGpuMedium::test_workload_type PASSED +tests/ai_assistant/sprint_5/test_model_serving_gpu_medium.py::TestModelServingGpuMedium::test_serving_type PASSED +tests/ai_assistant/sprint_5/test_model_serving_gpu_medium.py::TestModelServingGpuMedium::test_hours_per_month PASSED +... +tests/ai_assistant/sprint_5/test_model_serving_cpu.py::TestModelServingCpu::test_serving_type_cpu PASSED +tests/ai_assistant/sprint_5/test_model_serving_cpu.py::TestModelServingCpu::test_scale_to_zero_boolean PASSED +... +tests/ai_assistant/sprint_5/test_model_serving_gpu_small.py::TestModelServingGpuSmall::test_serving_type PASSED +... +tests/ai_assistant/sprint_5/test_model_serving_negative.py::TestServingNegativeInteractive::test_not_serving PASSED +tests/ai_assistant/sprint_5/test_model_serving_negative.py::TestServingNegativeEtl::test_not_serving PASSED + +28 passed in ~250s +``` + +![Calculator Overview](/img/calculator-overview.png) +*The calculator with Model Serving workloads — tests verify the AI correctly proposes these configurations for ML inference use cases.* + +## Compute Type Selection Logic + +The AI must correctly map hardware requirements to serving compute types: + +| User Intent | Expected Type | Key Signals | +|-------------|--------------|-------------| +| GPU-intensive inference, A10G | **gpu_medium** | "GPU medium", "A10G", "real-time inference" | +| Lightweight inference, no GPU | **cpu** | "CPU-only", "scikit-learn", "lightweight" | +| Smaller GPU, embeddings | **gpu_small** | "GPU small", "T4", "embeddings" | +| Large models, A100 | **gpu_large** | "GPU large", "A100", "large models" | + +### Valid Serving Types + +The AI must propose one of: `cpu` | `gpu_small` | `gpu_medium` | `gpu_large` + +## Acceptance Criteria + +All 16 acceptance criteria pass: + +| AC | Description | Status | +|----|-------------|--------| +| AC-1 | GPU Medium → `workload_type=MODEL_SERVING` | PASS | +| AC-2 | GPU Medium → `model_serving_type` contains `gpu_medium` | PASS | +| AC-3 | GPU Medium → `hours_per_month` ~ 200 | PASS | +| AC-4–7 | GPU Medium → name, reason, notes, proposal_id | PASS | +| AC-8–9 | CPU → MODEL_SERVING + cpu type | PASS | +| AC-10 | CPU → `hours_per_month > 0` | PASS | +| AC-11 | CPU → `scale_to_zero` is boolean when present | PASS | +| AC-12–14 | GPU Small → MODEL_SERVING + gpu_small + hours | PASS | +| AC-15 | Interactive compute ≠ MODEL_SERVING | PASS | +| AC-16 | Batch ETL ≠ MODEL_SERVING | PASS | + +## Known Limitations + +- AI responses are non-deterministic — `hours_per_month` uses a tolerant range (100–744) instead of asserting the exact requested value +- `model_serving_scale_to_zero` is checked conditionally — the AI may not always include this optional field +- Each negative variant makes its own AI call (~30–60s each) + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| `hours_per_month` out of range | The AI may interpret "200 hours" differently. Widen the assertion range if the value is reasonable. | +| CPU test returns gpu_small | The AI may think any inference needs a GPU. Ensure the prompt explicitly says "CPU-only, no GPU." | +| `scale_to_zero` assertion fails | This field is optional. The test only checks it when present — if the assertion is running, the AI included it but with a non-boolean value. | +| Negative test returns MODEL_SERVING | Check that the prompt doesn't mention "model", "inference", or "serving." | diff --git a/lakemeter/docs-site/docs/testing/multi-workload-ai-tests.md b/lakemeter/docs-site/docs/testing/multi-workload-ai-tests.md new file mode 100644 index 00000000..370b44e0 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/multi-workload-ai-tests.md @@ -0,0 +1,162 @@ +--- +sidebar_position: 12 +--- + +# Sprint 10: Multi-Workload AI Tests (JOBS + ALL_PURPOSE + DBSQL) + +Sprint 10 validates the AI assistant's ability to handle **multi-workload conversations** — a single session where the user requests multiple workload types and the AI proposes, confirms, and tracks each one across conversation turns. + +## What's Tested + +### Overview + +| Area | File | Tests | AI Calls | +|------|------|-------|----------| +| JOBS type & fields | `test_data_platform_types.py` | ~8 | Shared | +| ALL_PURPOSE type & fields | `test_data_platform_types.py` | ~8 | Shared | +| DBSQL type & fields | `test_data_platform_types.py` | ~8 | Shared | +| Confirm flow (3 workloads) | `test_data_platform_confirm.py` | ~12 | Shared | +| Conversation state | `test_data_platform_confirm.py` | ~4 | Shared | +| **Non-AI regression** | `test_regression_s10.py` | 123 | 0 | + +### Multi-Turn Conversation Flow + +The AI handles a complex data platform request across multiple conversation turns: + +> *"I need a data platform with daily ETL jobs, interactive notebooks for data science, and a SQL warehouse for BI"* + +The test suite verifies the full lifecycle: + +1. **Initial prompt** → AI proposes the first workload (e.g., JOBS) +2. **Confirmation** → Test confirms the proposal via `/confirm-workload` +3. **Continue conversation** → AI proposes the second workload (ALL_PURPOSE) +4. **Confirmation** → Second workload confirmed +5. **Continue** → AI proposes the third workload (DBSQL) +6. **Final confirmation** → All three workloads confirmed +7. **State verification** → `/state` endpoint shows 3 confirmed workloads + +![Calculator overview](/img/calculator-overview.png) +*The AI assistant manages multi-workload conversations — proposing JOBS, ALL_PURPOSE, and DBSQL workloads across turns.* + +### Type Verification + +For each of the three workloads proposed, the tests verify: + +| Workload | Key Fields Asserted | +|----------|-------------------| +| **JOBS** | `workload_type=JOBS`, `serverless_enabled`, `num_workers`, `runs_per_day`, `avg_runtime_minutes`, `days_per_month` | +| **ALL_PURPOSE** | `workload_type=ALL_PURPOSE`, `num_workers`, `hours_per_month`, `driver_node_type`, `worker_node_type` | +| **DBSQL** | `workload_type=DBSQL`, `dbsql_warehouse_type`, `dbsql_warehouse_size`, `dbsql_num_clusters` | + +Each proposed workload must also include common metadata: +- `workload_name` — descriptive, non-empty +- `reason` — explanation of why this workload was proposed +- `notes` — additional context +- `proposal_id` — unique UUID for confirmation + +### Confirm Flow & State Management + +The confirm tests validate that: +- All 3 confirmations succeed (HTTP 200) +- Conversation state shows ≥ 3 confirmed workloads with correct types +- Each proposal has a distinct `proposal_id` +- The AI does not duplicate previously confirmed workloads + +### Test Suite Timeout Fix (BUG-S10-005) + +Sprint 10 also fixed a critical infrastructure bug: the default `pytest` run was timing out at 1800s because AI assistant tests (which make live FMAPI calls) were being collected. + +**Root cause**: `pyproject.toml` had `testpaths = ["tests"]` without excluding `tests/ai_assistant/`. + +**Fixes applied**: +1. Added `addopts = "--ignore=tests/ai_assistant"` to `pyproject.toml` +2. Added `_fmapi_reachable()` check + autouse skip fixture to `tests/ai_assistant/conftest.py` +3. Split `conftest.py` (227 lines) into `conftest.py` (106 lines) + `chat_helpers.py` (129 lines) + +![Workload calculation detail](/img/workload-calculation-detail.png) +*Each confirmed workload appears in the estimate with full cost breakdown — tests verify the end-to-end confirm flow.* + +**Regression tests** (4 tests in `test_regression_s10.py`): + +| Test | Verifies | +|------|----------| +| `test_ai_conftest_under_200_lines` | File size compliance after split | +| `test_pyproject_ignores_ai_tests` | `addopts` excludes AI directory | +| `test_ai_conftest_has_fmapi_skip` | FMAPI skip fixture exists | +| `test_default_pytest_collects_no_ai_tests` | Default run excludes AI tests | + +:::warning Important +After Sprint 10, the default `pytest` command excludes AI tests. To run AI tests explicitly: +```bash +pytest tests/ai_assistant/ --no-header --timeout=300 +``` +::: + +## File Structure + +``` +tests/ai_assistant/sprint_10/ +├── __init__.py +├── prompts.py # Multi-workload conversation prompts +├── conftest.py # Module-scoped fixtures, multi-turn session +├── test_data_platform_types.py # Type + field assertions for all 3 workloads +└── test_data_platform_confirm.py # Confirm flow + state verification + +tests/ai_assistant/ +├── conftest.py # Shared fixtures + FMAPI skip logic (106 lines) +└── chat_helpers.py # Extracted chat helper functions (129 lines) + +tests/sprint_10/ +└── test_regression_s10.py # 123 tests — regression guards + timeout fix +``` + +## Running Sprint 10 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate + +# Default pytest (excludes AI tests, completes in ~9s) +pytest -v + +# Sprint 10 non-AI regression tests +pytest tests/sprint_10/ -v + +# Sprint 10 AI assistant tests (explicit, requires FMAPI) +pytest tests/ai_assistant/sprint_10/ --no-header --timeout=300 +``` + +Expected non-AI output: + +``` +tests/sprint_10/test_regression_s10.py::TestBugS10005TestSuiteTimeout::test_pyproject_ignores_ai_tests PASSED +tests/sprint_10/test_regression_s10.py::TestBugS10005TestSuiteTimeout::test_ai_conftest_has_fmapi_skip PASSED +tests/sprint_10/test_regression_s10.py::TestBugS10005TestSuiteTimeout::test_default_pytest_collects_no_ai_tests PASSED +... + +123 passed in ~3.7s +``` + +## Test Results + +| Suite | Tests | Runtime | AI Calls | +|-------|-------|---------|----------| +| Sprint 10 non-AI regression | 123 | ~3.7s | 0 | +| Sprint 10 AI (multi-workload) | ~40 | ~5 min | 3-5 | +| Full non-AI regression | 1,409 | ~9s | 0 | + +## Known Limitations + +- DLT and Vector Search SKUs still use fallback pricing (real pricing data gap) +- AI assistant tests remain non-deterministic (LLM responses vary between runs) +- FMAPI reachability check uses TCP socket to port 443 (5s timeout) — doesn't verify authentication +- The AI may propose workloads in a different order than expected — tests check the set of types, not order + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| Default pytest times out | Verify `pyproject.toml` has `addopts = "--ignore=tests/ai_assistant"` | +| AI tests skip with "FMAPI unreachable" | Check network access to the Databricks workspace and FMAPI endpoint | +| Multi-turn session fails mid-conversation | AI may lose context — check if `conversation_id` is consistent across calls | +| AI proposes fewer than 3 workloads | The AI may bundle multiple workloads or ask clarifying questions — prompt escalation handles this | diff --git a/lakemeter/docs-site/docs/testing/overview.md b/lakemeter/docs-site/docs/testing/overview.md new file mode 100644 index 00000000..1d0e837b --- /dev/null +++ b/lakemeter/docs-site/docs/testing/overview.md @@ -0,0 +1,248 @@ +--- +sidebar_position: 1 +--- + +# Test Suite Overview + +Lakemeter includes a comprehensive end-to-end test harness that validates the AI assistant's ability to interpret natural language requests and produce correct workload configurations for all 14 supported workload types. + +## Purpose + +The test suite verifies that: + +- The AI assistant correctly maps natural language descriptions to the right workload type +- Proposed workload configurations contain all required fields with valid values +- The confirm/reject workflow functions correctly +- Cost calculation logic matches between frontend and backend +- Excel export formulas produce accurate results + +## Test Architecture + +``` +tests/ +├── parity/ # UI vs Excel export parity tests (Sprints 1-3) +│ ├── frontend_calc.py # Python reimplementation of frontend formulas +│ ├── test_parity_jobs.py +│ ├── test_parity_allpurpose.py +│ ├── test_parity_dlt.py +│ ├── test_parity_dbsql.py +│ ├── test_parity_vector_search.py +│ ├── test_parity_model_serving.py +│ └── test_parity_lakebase.py +├── ai_assistant/ # AI assistant end-to-end tests (Sprints 1-11) +│ ├── conftest.py # Shared fixtures: TestClient, estimate, FMAPI skip logic +│ ├── chat_helpers.py # Extracted chat helper functions +│ ├── sprint_1/ +│ │ ├── test_jobs_proposal.py # JOBS workload proposals (15 tests) +│ │ └── test_confirm_flow.py # Confirm/reject workflow (3 tests) +│ ├── sprint_2/ +│ │ └── test_allpurpose_proposal.py # ALL_PURPOSE proposals (13 tests) +│ ├── sprint_3/ +│ │ ├── test_dlt_pro.py # DLT Pro serverless (9 tests) +│ │ ├── test_dlt_core.py # DLT Core classic (10 tests) +│ │ ├── test_dlt_advanced.py # DLT Advanced (8 tests) +│ │ └── test_dlt_negative.py # Non-DLT discrimination (2 tests) +│ ├── sprint_4/ +│ │ ├── test_dbsql_serverless.py # DBSQL Serverless (9 tests) +│ │ ├── test_dbsql_pro.py # DBSQL Pro (8 tests) +│ │ ├── test_dbsql_classic.py # DBSQL Classic (7 tests) +│ │ └── test_dbsql_negative.py # Non-DBSQL discrimination (4 tests) +│ ├── sprint_5/ +│ │ ├── test_model_serving_gpu_medium.py # GPU Medium A10G (8 tests) +│ │ ├── test_model_serving_cpu.py # CPU only (8 tests) +│ │ ├── test_model_serving_gpu_small.py # GPU Small T4 (8 tests) +│ │ └── test_model_serving_negative.py # Non-Serving discrimination (4 tests) +│ ├── sprint_6/ +│ │ ├── test_vector_search_standard.py # Standard endpoint (8 tests) +│ │ ├── test_vector_search_storage_optimized.py # Storage-Optimized (7 tests) +│ │ ├── test_vector_search_small_rag.py # Small RAG chatbot (7 tests) +│ │ └── test_vector_search_negative.py # Non-VS discrimination (4 tests) +│ ├── sprint_7/ +│ │ ├── test_fmapi_db_llama_input.py # Llama input tokens (8 tests) +│ │ ├── test_fmapi_db_output_tokens.py # Output tokens (8 tests) +│ │ ├── test_fmapi_db_embeddings.py # BGE embeddings (7 tests) +│ │ └── test_fmapi_db_negative.py # Proprietary + GPU discrimination (7 tests) +│ ├── sprint_8/ +│ │ ├── test_fmapi_prop_claude.py # Anthropic Claude (9 tests) +│ │ ├── test_fmapi_prop_openai.py # OpenAI GPT (9 tests) +│ │ ├── test_fmapi_prop_google.py # Google Gemini (9 tests) +│ │ └── test_fmapi_prop_negative.py # DB-hosted + GPU discrimination (7 tests) +│ ├── sprint_10/ +│ │ ├── test_data_platform_types.py # Multi-workload JOBS+AP+DBSQL types +│ │ └── test_data_platform_confirm.py # Multi-workload confirm flow +│ └── sprint_11/ +│ ├── test_ml_pipeline_types.py # ML pipeline VS+FMAPI+MS types (24 tests) +│ ├── test_ml_pipeline_confirm.py # ML pipeline confirm flow (12 tests) +│ ├── test_ml_pipeline_two.py # 2-workload VS+FMAPI variant (14 tests) +│ └── test_ml_pipeline_negative.py # MS-only discrimination (7 tests) +├── sprint_3/ # DLT calculation verification tests +│ ├── conftest.py # make_line_item fixture +│ ├── dlt_calc_helpers.py # Shared FE/BE calculation functions +│ ├── test_dlt_calc_classic.py # Classic hours, editions, photon (25 tests) +│ ├── test_dlt_calc_serverless.py # Serverless, edge cases (26 tests) +│ ├── test_dlt_disc_sku.py # SKU alignment (16 tests) +│ ├── test_dlt_disc_pricing.py # Pricing alignment (19 tests) +│ ├── test_dlt_export_sku.py # Backend SKU lookup (17 tests) +│ ├── test_dlt_export_calc.py # Backend calc + hours (14 tests) +│ ├── test_dlt_excel_e2e_formulas.py # Excel formula verification (10 tests) +│ ├── test_dlt_excel_e2e_totals.py # Excel totals SUM verification (5 tests) +│ ├── test_dlt_excel_export.py # Display names, matrix (22 tests) +│ └── test_dlt_vm_costs.py # VM cost amounts (7 tests) +├── sprint_7/ # FMAPI backend pricing tests +│ ├── test_fmapi_db_pricing.py # SKU, rates, calculations (36 tests) +│ └── test_fmapi_prop_edge_cases.py # Fallback edge cases (10 tests) +├── sprint_9/ # Lakebase Excel & calculation tests (158 tests) +│ ├── test_lb_dbu_calc.py # DBU/hr = CU × nodes (44 tests) +│ ├── test_lb_edge_cases.py # Zero/negative/None/max (28 tests) +│ ├── test_lb_excel_compute.py # Compute row SKU, formula (15 tests) +│ ├── test_lb_excel_crosscloud.py # AWS/Azure/GCP + half-CU (11 tests) +│ ├── test_lb_excel_integrity.py # Multi-item, discount propagation (9 tests) +│ ├── test_lb_excel_storage.py # Storage row values, notes (18 tests) +│ ├── test_lb_excel_totals.py # Total cost columns (13 tests) +│ └── test_lb_sku_pricing.py # SKU determination, pricing (13 tests) +├── sprint_10/ # Sprint 10 regression + timeout fix (123 tests) +│ └── test_regression_s10.py # Bug regression guards +├── sprint_11/ # Sprint 11 non-AI tests (50 tests) +│ ├── test_regression_s10_bugs.py # S10 regression guards (8 tests) +│ ├── test_ms_combined_validation.py # Model Serving combined Excel (34 tests) +│ └── test_notes_completeness.py # Notes column completeness (8 tests) +├── regression/ # Regression tests from prior bug fixes +├── docs_media/ # Documentation media validation tests +│ ├── test_sprint3_guide_screenshots.py # Screenshot validation (113 tests) +│ ├── test_sprint4_workflow_gifs.py # GIF format/naming validation (63 tests) +│ └── test_sprint5_video_and_embeds.py # Video + embed validation (49 tests) +└── export/ # Export-related tests +``` + +## How Tests Connect to the App + +### AI Assistant Tests (Sprints 1-8) + +These tests use a **FastAPI TestClient** that wraps the actual backend. The TestClient: + +1. Starts the FastAPI app in-process (no separate server needed) +2. Uses the Databricks CLI token for FMAPI calls (Foundation Model API) +3. Connects to the live Lakebase database for estimate storage +4. Sends natural language prompts to `POST /api/v1/chat` +5. Validates the AI's proposed workload configuration + +![AI Assistant Chat Panel](/img/calculator-overview.png) +*The AI assistant chat panel where users send natural language requests — test prompts simulate this interaction.* + +### Calculation Tests (Sprint 3) + +These tests validate the cost calculation logic directly — no AI calls needed: + +1. Import frontend and backend calculation functions +2. Construct test workload configurations with known inputs +3. Verify calculated outputs match expected values +4. Test Excel export formulas against real `.xlsx` files + +![Workload Calculation Detail](/img/workload-calculation-detail.png) +*Workload configuration with cost breakdown — Sprint 3 tests verify these calculations are accurate.* + +### Documentation Media Tests (Docs Overhaul Sprints 3-5) + +These tests validate all documentation media assets — screenshots, GIFs, and video: + +1. **Screenshot validation** (113 tests): every guide screenshot exists, is non-empty, has reasonable file size (10KB-2MB), is referenced with descriptive alt text and caption in its doc page, and contains no forbidden customer names +2. **GIF validation** (63 tests): all 6 workflow GIFs exist in `static/img/gifs/`, use GIF89a format with multiple frames, are 800px wide, follow kebab-case naming, and stay under 5MB +3. **Video + embed validation** (49 tests): tutorial video exists as a valid MP4 container, all 7 GIF embeds and 2 video embeds are present in the correct doc pages with proper syntax, alt text, and accessibility attributes + +```bash +# Run all docs media tests +python -m pytest tests/docs_media/ -v +``` + +## Running the Tests + +### Prerequisites + +- Python 3.11+ with a virtual environment +- Databricks CLI profile `lakemeter` configured +- Access to the `fe-vm-lakemeter` workspace + +### Quick Start + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate + +# Run all tests +python -m pytest tests/ -v + +# Run parity tests (UI vs Excel export — fast, no AI calls) +python -m pytest tests/parity/ -v + +# Run a specific sprint +python -m pytest tests/ai_assistant/sprint_1/ -v # JOBS +python -m pytest tests/ai_assistant/sprint_2/ -v # ALL_PURPOSE +python -m pytest tests/sprint_3/ -v # DLT calculations +python -m pytest tests/ai_assistant/sprint_3/ -v # DLT/SDP AI proposals +python -m pytest tests/ai_assistant/sprint_4/ -v # DBSQL AI proposals +python -m pytest tests/ai_assistant/sprint_5/ -v # MODEL_SERVING AI proposals +python -m pytest tests/ai_assistant/sprint_6/ -v # VECTOR_SEARCH AI proposals +python -m pytest tests/ai_assistant/sprint_7/ -v # FMAPI_DATABRICKS AI proposals +python -m pytest tests/sprint_7/ -v # FMAPI backend pricing +python -m pytest tests/ai_assistant/sprint_8/ -v # FMAPI_PROPRIETARY AI proposals + +# Sprint 9 — Lakebase Excel (no AI calls) +python -m pytest tests/sprint_9/ -v + +# Sprint 10 — Multi-workload AI tests (requires FMAPI) +python -m pytest tests/ai_assistant/sprint_10/ --no-header --timeout=300 + +# Sprint 11 — ML pipeline AI tests (requires FMAPI) +python -m pytest tests/ai_assistant/sprint_11/ --no-header --timeout=300 + +# Run all non-AI tests (fast, ~9 seconds) +python -m pytest tests/ --ignore=tests/ai_assistant -v +``` + +### Test Performance + +| Suite | Tests | Typical Runtime | AI Calls | +|-------|-------|----------------|----------| +| Parity Tests (UI vs Excel) | 152 | ~5 seconds | 0 | +| Sprint 1 — JOBS (AI) | 18 | ~2-3 minutes | 5 | +| Sprint 2 — ALL_PURPOSE (AI) | 13 | ~2 minutes | 2-4 | +| Sprint 3 — DLT Calculations | 161 | ~2 seconds | 0 | +| Sprint 3 — DLT/SDP (AI) | 29 | ~3.5 minutes | 4 | +| Sprint 4 — DBSQL (AI) | 28 | ~4 minutes | 5 | +| Sprint 5 — MODEL_SERVING (AI) | 28 | ~4 minutes | 5 | +| Sprint 6 — VECTOR_SEARCH (AI) | 26 | ~5 minutes | 5 | +| Sprint 7 — FMAPI_DATABRICKS (AI) | 30 | ~4 minutes | 5 | +| Sprint 7 — FMAPI Backend Pricing | 46 | ~1 second | 0 | +| Sprint 8 — FMAPI_PROPRIETARY (AI) | 34 | ~5 minutes | 5 | +| Sprint 9 — Lakebase Excel (non-AI) | 158 | ~3 seconds | 0 | +| Sprint 10 — Multi-Workload (AI) | ~40 | ~5 minutes | 3-5 | +| Sprint 10 — Regression (non-AI) | 123 | ~4 seconds | 0 | +| Sprint 11 — ML Pipeline (AI) | 57 | ~8 minutes | 3 | +| Sprint 11 — Non-AI Tests | 50 | ~3 seconds | 0 | +| Docs Media — Screenshots (non-AI) | 113 | under 1 second | 0 | +| Docs Media — GIFs (non-AI) | 63 | under 1 second | 0 | +| Docs Media — Video + Embeds (non-AI) | 49 | under 1 second | 0 | +| Non-AI Regression (all sprints) | 1,409 | ~9 seconds | 0 | +| **Total** | **~2,109+** | **~45 minutes** | **42-46** | + +:::note +AI assistant tests take 30-60 seconds per API call due to Claude processing time. Module-scoped fixtures minimize the number of calls by sharing responses across test methods. +::: + +## Test Design Principles + +### Module-Scoped Fixtures + +Expensive AI calls are made once per module and shared across all test methods in that module. This reduces a 15-test class from 15 API calls to 1. + +### Multi-Message Retry + +The AI may ask clarifying questions instead of proposing immediately. Tests send up to 3 progressively more specific messages to handle this non-determinism. + +### Wide Assertion Ranges + +Since AI responses vary between runs, numeric assertions use ranges rather than exact values. For example, `hours_per_month` for "8 hours a day on weekdays" is asserted as `50 <= value <= 750` rather than exactly `176`. + +### Regression Protection + +Every bug found during evaluation gets a dedicated regression test to prevent recurrence. diff --git a/lakemeter/docs-site/docs/testing/parity-tests.md b/lakemeter/docs-site/docs/testing/parity-tests.md new file mode 100644 index 00000000..ef0c1c96 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/parity-tests.md @@ -0,0 +1,158 @@ +--- +sidebar_position: 2 +--- + +# Parity Tests (UI vs Excel Export) + +The parity test suite verifies that Lakemeter's Excel export produces cost values identical to those displayed in the browser UI. These tests were introduced in Sprint 1-3 of the Excel Export Parity Fix project. + +## Purpose + +Lakemeter has two independent calculation paths: + +1. **Frontend** (`frontend/src/utils/costCalculation.ts`) — calculates costs for the browser UI +2. **Backend** (`backend/app/routes/export/`) — independently calculates costs for the Excel export + +These paths can diverge, producing mismatched numbers. The parity test framework systematically verifies every workload type and configuration against both paths, ensuring the Excel export is pixel-perfect with the UI. + +## Test Architecture + +``` +tests/parity/ +├── frontend_calc.py # Python reimplementation of frontend formulas +├── test_parity_jobs.py # Jobs Classic, Photon, Serverless +├── test_parity_allpurpose.py # All-Purpose Classic, Photon, Serverless +├── test_parity_dlt.py # DLT Core/Pro/Advanced x Classic/Photon/Serverless +├── test_parity_dbsql.py # DBSQL Classic/Pro/Serverless x 9 sizes +├── test_parity_vector_search.py # Vector Search Standard/Storage-Optimized +├── test_parity_model_serving.py # Model Serving all GPU types +└── test_parity_lakebase.py # Lakebase CU sizes, HA nodes, storage +``` + +## Comparison Methodology + +For each workload configuration, the tests compare: + +| Comparison Point | Description | Tolerance | +|-----------------|-------------|-----------| +| **DBU/hr** | Computed DBU rate per hour | $0.01 | +| **$/DBU** | Price per DBU from pricing lookup | Exact match | +| **Hours/month** | From config or run-based calculation | Exact match | +| **Monthly DBUs** | DBU/hr x Hours/month | $0.01 | +| **Monthly DBU cost** | Monthly DBUs x $/DBU | $0.01 | +| **VM cost** | Driver + worker VM costs (where applicable) | $0.01 | +| **Total monthly cost** | DBU cost + VM cost | $0.01 | +| **SKU product type** | Correct SKU used for pricing lookup | Exact match | +| **Storage costs** | For Vector Search and Lakebase sub-rows | $0.01 | + +## Running the Tests + +```bash +# Run all parity tests +pytest tests/parity/ -v + +# Run by workload type +pytest tests/parity/test_parity_jobs.py -v +pytest tests/parity/test_parity_dlt.py -v +pytest tests/parity/test_parity_dbsql.py -v +pytest tests/parity/test_parity_vector_search.py -v +pytest tests/parity/test_parity_model_serving.py -v +pytest tests/parity/test_parity_lakebase.py -v +``` + +All parity tests are non-AI and run in under 5 seconds. + +## Test Coverage by Sprint + +### Sprint 1: Jobs + All-Purpose (18 tests) + +| Workload | Configuration | Tests | +|----------|--------------|-------| +| Jobs | Classic (2, 4, 8 workers) | 3 | +| Jobs | Classic (0 workers, driver only) | 1 | +| Jobs | Classic (run-based hours) | 1 | +| Jobs | Photon (2, 6 workers) | 2 | +| Jobs | Serverless Standard | 1 | +| Jobs | Serverless Performance | 1 | +| Jobs | Unknown instance fallback | 1 | +| All-Purpose | Classic (3 workers) | 1 | +| All-Purpose | Photon (2, 10 workers) | 2 | +| All-Purpose | Serverless (always 2x) | 1 | +| All-Purpose | Serverless ignores standard mode | 1 | +| All-Purpose | Unknown instance fallback | 1 | +| All-Purpose | Zero workers | 1 | +| General | Days per month default (22) | 1 | + +**Bugs found and fixed**: +- Driver DBU fallback rate: 0.25 -> 0.5 (aligned with frontend) +- Vector Search storage sub-row: AttributeError on missing field (safe getattr) +- Fallback warning message said "0.25" but actual value was 0.5 + +### Sprint 2: DLT + DBSQL (76 tests) + +| Workload | Configuration | Tests | +|----------|--------------|-------| +| DLT | Core/Pro/Advanced x Classic/Photon/Serverless (all 9 combos) | 12 | +| DLT | Zero workers, default edition, run-based hours | 3 | +| DBSQL | Classic x 9 sizes (DBU/hr + monthly cost) | 18 | +| DBSQL | Pro x 9 sizes | 18 | +| DBSQL | Serverless x 9 sizes | 18 | +| DBSQL | Multi-cluster (1-5 clusters, various types) | 9 | +| DBSQL | Default type/size, empty size, null clusters, run-based | 5 | + +**Bugs found and fixed**: +- Frontend DLT serverless photon lookup hardcoded to `DLT_CORE_COMPUTE` instead of edition-specific SKU + +### Sprint 3: Vector Search + Model Serving + Lakebase (58 tests) + +| Workload | Configuration | Tests | +|----------|--------------|-------| +| Vector Search | Standard mode (6 capacity levels) | 6 | +| Vector Search | Storage-Optimized mode (4 capacity levels) | 4 | +| Vector Search | Storage sub-rows (5 scenarios) | 5 | +| Vector Search | Total cost (compute + storage) | 3 | +| Model Serving | All 7 AWS GPU types | 7 | +| Model Serving | Case-insensitive GPU names | 1 | +| Model Serving | Run-based usage | 1 | +| Model Serving | Parametrized cost matrix (all GPUs) | 8 | +| Lakebase | CU sizes (1, 2, 4, 8, 16) | 5 | +| Lakebase | HA nodes (1, 2, 3 with CU combos) | 6 | +| Lakebase | Storage DSU pricing (100-8192 GB) | 4 | +| Lakebase | Total cost (compute + storage) | 3 | +| Lakebase | Run-based usage | 1 | +| Lakebase | Edge cases (CU=0, storage=None, zero) | 4 | + +**No backend code changes were needed** — existing export calculations already matched the frontend for all three workload types. + +## Total Test Count + +| Sprint | New Parity Tests | Cumulative Total | +|--------|-----------------|------------------| +| Sprint 1 | 18 | 18 | +| Sprint 2 | 76 | 94 | +| Sprint 3 | 58 | 152 | + +Combined with all existing tests: **1,884 tests passing** as of Sprint 3 completion. + +## Writing New Parity Tests + +To add parity tests for a new configuration: + +1. Add the frontend calculation to `tests/parity/frontend_calc.py` +2. Create a test that constructs a `LineItem` with known inputs +3. Call both the frontend calc helper and the backend export function +4. Assert that all comparison points match within $0.01 tolerance + +```python +def test_new_config(self, make_line_item): + item = make_line_item( + workload_type="JOBS", + num_workers=4, + photon_enabled=True, + # ... other config + ) + fe_result = fe_jobs_cost(item) + be_result = be_export_calc(item) + assert abs(fe_result.dbu_per_hour - be_result.dbu_per_hour) < 0.01 + assert fe_result.sku == be_result.sku +``` diff --git a/lakemeter/docs-site/docs/testing/vector-search-ai-tests.md b/lakemeter/docs-site/docs/testing/vector-search-ai-tests.md new file mode 100644 index 00000000..c82f2646 --- /dev/null +++ b/lakemeter/docs-site/docs/testing/vector-search-ai-tests.md @@ -0,0 +1,157 @@ +--- +sidebar_position: 8 +--- + +# Sprint 6: Vector Search Tests + +Sprint 6 validates the AI assistant's ability to propose **Vector Search** workloads across Standard and Storage-Optimized endpoint types, handle small RAG use cases, and correctly reject non-vector-search requests. + +## What's Tested + +### Overview + +| Variant | File | Tests | AI Calls | Endpoint Type | +|---------|------|-------|----------|---------------| +| Standard (50M vectors) | `test_vector_search_standard.py` | 8 | 1 | STANDARD | +| Storage-Optimized (200M) | `test_vector_search_storage_optimized.py` | 7 | 1 | STORAGE_OPTIMIZED | +| Small RAG (5M vectors) | `test_vector_search_small_rag.py` | 7 | 1 | Any valid | +| Negative (Model Serving) | `test_vector_search_negative.py` | 2 | 1 | N/A | +| Negative (SQL Analytics) | `test_vector_search_negative.py` | 2 | 1 | N/A | +| **Total** | **4 files** | **26** | **5** | | + +### Standard Endpoint — 50M Vectors (8 tests) + +A single AI call simulates setting up a standard vector search endpoint for a RAG application: + +> *"Set up vector search for RAG with 50 million embeddings"* + +| Field | Assertion | +|-------|-----------| +| `workload_type` | Equals `"VECTOR_SEARCH"` | +| `vector_search_endpoint_type` | Equals `"STANDARD"` | +| `vector_capacity_millions` | In range ~50 (tolerant) | +| `workload_name` | Non-empty, descriptive | +| `reason` | Populated, at least 10 characters | +| `notes` | Populated | +| `proposal_id` | Present | + +![Calculator with workloads](/img/calculator-overview.png) +*The AI assistant proposes Vector Search workloads from natural language descriptions of embedding storage needs.* + +### Storage-Optimized — 200M Vectors (7 tests) + +Tests a large-scale storage-optimized endpoint: + +> *"I need storage-optimized vector search for 200M vectors"* + +Verifies: +- `workload_type` equals `"VECTOR_SEARCH"` +- `vector_search_endpoint_type` contains `"STORAGE"` (substring match for robustness) +- `vector_capacity_millions` > 0, in range 50–500 +- Standard metadata fields populated + +### Small RAG Chatbot — 5M Vectors (7 tests) + +Tests a lightweight vector search for a simple chatbot: + +> *"Small RAG chatbot, 5 million vectors"* + +Verifies: +- `workload_type` equals `"VECTOR_SEARCH"` +- `vector_capacity_millions` populated and > 0 +- `vector_search_endpoint_type` is a valid enum value +- Standard metadata fields populated + +### Negative Discrimination (4 tests) + +Two scenarios ensure the AI doesn't propose Vector Search for unrelated workloads: + +**Model Deployment (AC-15)**: +> *"I need to deploy a custom ML model for real-time inference"* +- Verifies: `workload_type` is **not** `"VECTOR_SEARCH"` (should be `MODEL_SERVING`) + +**SQL Analytics (AC-16)**: +> *"I need a SQL warehouse for BI dashboard queries"* +- Verifies: `workload_type` is **not** `"VECTOR_SEARCH"` (should be `DBSQL`) + +## File Structure + +``` +tests/ai_assistant/sprint_6/ +├── __init__.py +├── prompts.py # 5 prompt sequences (3 variants + 2 negative) +├── conftest.py # 5 module-scoped fixtures (1 AI call each) +├── test_vector_search_standard.py # 8 tests — Standard endpoint +├── test_vector_search_storage_optimized.py # 7 tests — Storage-Optimized +├── test_vector_search_small_rag.py # 7 tests — Small RAG chatbot +└── test_vector_search_negative.py # 4 tests — model serving + SQL discrimination +``` + +## Running Sprint 6 Tests + +```bash +cd "/path/to/lakemeter_app" +source .venv/bin/activate +python -m pytest tests/ai_assistant/sprint_6/ -v +``` + +Expected output: + +``` +tests/ai_assistant/sprint_6/test_vector_search_standard.py::TestVectorSearchStandard::test_workload_type PASSED +tests/ai_assistant/sprint_6/test_vector_search_standard.py::TestVectorSearchStandard::test_endpoint_type PASSED +tests/ai_assistant/sprint_6/test_vector_search_standard.py::TestVectorSearchStandard::test_capacity PASSED +... +tests/ai_assistant/sprint_6/test_vector_search_storage_optimized.py::TestVectorSearchStorageOptimized::test_endpoint_type PASSED +... +tests/ai_assistant/sprint_6/test_vector_search_small_rag.py::TestVectorSearchSmallRag::test_workload_type PASSED +... +tests/ai_assistant/sprint_6/test_vector_search_negative.py::TestVectorSearchNegativeModelServing::test_not_vector_search PASSED +tests/ai_assistant/sprint_6/test_vector_search_negative.py::TestVectorSearchNegativeSql::test_not_vector_search PASSED + +26 passed in ~300s +``` + +## Endpoint Type Selection Logic + +The AI must correctly map user requirements to vector search endpoint types: + +| User Intent | Expected Type | Key Signals | +|-------------|--------------|-------------| +| Standard RAG, moderate scale | **STANDARD** | "vector search", "RAG", "embeddings", < 100M | +| Large-scale, cost-optimized storage | **STORAGE_OPTIMIZED** | "storage-optimized", "200M+", "large-scale" | +| Small chatbot, lightweight | **STANDARD** (default) | "small", "chatbot", "5M vectors" | + +### Valid Endpoint Types + +The AI must propose one of: `STANDARD` | `STORAGE_OPTIMIZED` + +## Acceptance Criteria + +All 16 acceptance criteria pass: + +| AC | Description | Status | +|----|-------------|--------| +| AC-1 | Standard -> `workload_type=VECTOR_SEARCH` | PASS | +| AC-2 | Standard -> `vector_search_endpoint_type=STANDARD` | PASS | +| AC-3 | Standard -> `vector_capacity_millions` ~ 50 | PASS | +| AC-4-7 | Standard -> name, reason, notes, proposal_id | PASS | +| AC-8-9 | Storage-Optimized -> VECTOR_SEARCH + STORAGE_OPTIMIZED | PASS | +| AC-10-11 | Storage-Optimized -> capacity > 0, in range 50-500 | PASS | +| AC-12-14 | Small RAG -> VECTOR_SEARCH + capacity + valid enum | PASS | +| AC-15 | Model deployment != VECTOR_SEARCH | PASS | +| AC-16 | SQL analytics != VECTOR_SEARCH | PASS | + +## Known Limitations + +- AI responses are non-deterministic — capacity uses tolerant ranges (e.g., 5-500 instead of exact 50) +- Storage-optimized endpoint type check uses substring `"STORAGE"` match for robustness +- Each negative variant makes its own AI call (~30-60s each) + +## Troubleshooting + +| Issue | Resolution | +|-------|-----------| +| `vector_capacity_millions` out of range | The AI may interpret "50 million" differently. Widen the assertion range if the value is reasonable. | +| Storage-Optimized returns STANDARD | Ensure the prompt explicitly says "storage-optimized." The AI defaults to STANDARD without a clear signal. | +| Negative test returns VECTOR_SEARCH | Check that the prompt doesn't mention "vector", "embedding", or "RAG." | diff --git a/lakemeter/docs-site/docs/user-guide/ai-assistant.md b/lakemeter/docs-site/docs/user-guide/ai-assistant.md new file mode 100644 index 00000000..5f344bf9 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/ai-assistant.md @@ -0,0 +1,130 @@ +--- +sidebar_position: 5 +--- + +# AI Assistant + +Lakemeter includes a built-in AI assistant powered by Claude that can answer pricing questions, configure workloads, and generate entire estimates from a natural language description. + +![AI Assistant documentation page](/img/guides/ai-assistant-guide.png) +*The AI Assistant guide — two modes, five specialized tools, and conversation examples.* + +![AI Assistant tools reference](/img/guides/ai-assistant-tools.png) +*The five tools the AI assistant uses to propose workloads, analyze estimates, and answer questions.* + +![AI Assistant in action — type a question, see the response with tool calls](/img/gifs/ai-assistant.gif) +*Animated: asking the AI assistant to add a workload — it proposes a configuration you can confirm, edit, or cancel.* + +## How It Works + +The assistant appears as a chat panel on the right side of the screen. It has access to Lakemeter's full pricing database and can create workloads directly in your estimate — no manual form-filling required. + +Behind the scenes, the assistant uses five specialized tools: + +| Tool | What it does | +|------|-------------| +| **Propose Workload** | Creates a fully configured workload (any of the 12 types) and adds it to your estimate after you confirm | +| **Ask Clarifying Questions** | Asks follow-up questions when your request is ambiguous before proposing anything | +| **Get Estimate Summary** | Reads your current estimate to understand what you already have | +| **Analyze Estimate** | Reviews your workloads and suggests cost optimizations or configuration improvements | +| **Propose GenAI Architecture** | Suggests a complete multi-workload stack for common AI patterns (RAG, document processing, etc.) | + +## Two Modes + +### Home Mode (Q&A Only) + +When you're on the home page with no estimate open, the assistant operates in **question-and-answer mode**. It can answer general Databricks pricing questions but cannot create or modify workloads. + +**Good questions for Home Mode:** +- "What's the difference between Classic and Serverless compute?" +- "How does DLT pricing work across editions?" +- "Which GPU types are available for Model Serving on AWS?" + +### Estimate Mode (Full Capabilities) + +When you have an estimate open, the assistant gains **full context** — it can see your cloud provider, region, pricing tier, and all existing workloads. This unlocks workload creation, optimization analysis, and architecture suggestions. + +## Conversation Examples + +### Example 1: Creating a Single Workload + +> **You:** I need a Spark ETL job that runs 5 times a day, takes about 45 minutes each run, with 8 i3.xlarge workers on AWS. Use Photon. +> +> **Assistant:** I'll set that up for you. Here's what I'm proposing: +> +> | Setting | Value | +> |---------|-------| +> | Type | Jobs Compute | +> | Mode | Classic | +> | Photon | Enabled | +> | Driver | i3.xlarge | +> | Workers | 8 x i3.xlarge | +> | Runs/Day | 5 | +> | Avg Runtime | 45 min | +> | Days/Month | 22 (business days) | +> +> Estimated monthly cost: ~$X,XXX +> +> **[Confirm]** **[Edit]** **[Cancel]** + +When you click **Confirm**, the workload is created in your estimate with all fields populated. Click **Edit** to adjust any values before confirming. + +### Example 2: Generating a Complete Estimate + +> **You:** I'm building a data platform for a mid-size company. We need daily ETL pipelines, a BI analytics warehouse for 20 analysts, and a real-time ML inference endpoint. We're on AWS us-east-1, Premium tier. +> +> **Assistant:** I'll design a complete platform for you. Let me propose three workloads: +> +> 1. **Daily ETL Pipeline** — Jobs Serverless with Photon for your ingestion and transformation +> 2. **BI Analytics Warehouse** — DBSQL Serverless (Medium) sized for 20 concurrent analysts +> 3. **ML Inference Endpoint** — Model Serving with GPU for real-time predictions +> +> *[The assistant proposes each workload one at a time for your confirmation]* + +### Example 3: Optimizing an Existing Estimate + +> **You:** How can I reduce costs on this estimate? +> +> **Assistant:** Looking at your current estimate, I see a few opportunities: +> +> 1. **Jobs workload "Nightly Ingest"** — You're using on-demand Classic compute. Switching to Serverless would eliminate VM costs and you'd only pay for actual compute time, saving ~30% for bursty workloads. +> 2. **DBSQL warehouse "Analyst Pool"** — Your Large warehouse runs 730 hours/month (24/7). If analysts only work business hours, reducing to ~200 hours/month saves ~70%. +> 3. **Model Serving "Recommender"** — Consider whether you need GPU Medium or if GPU Small would handle your throughput. + +### Example 4: Getting a GenAI Architecture + +> **You:** I want to build a RAG chatbot for our internal documentation. +> +> **Assistant:** Here's a recommended GenAI stack for a RAG chatbot: +> +> 1. **Vector Search** (Storage Optimized) — Store and query document embeddings +> 2. **Model Serving** (GPU) — Host the embedding model for document ingestion +> 3. **FMAPI** (Claude or GPT) — Generate responses using retrieved context +> 4. **Jobs** — Scheduled pipeline to re-index new documents +> +> Shall I create all four workloads? I'll configure each one with sensible defaults for a documentation chatbot use case. + +## Applying AI-Generated Workloads + +When the assistant proposes a workload: + +1. **Review** — The proposed configuration appears in the chat with all settings visible +2. **Confirm** — Click to accept and create the workload in your estimate +3. **Edit** — Modify any values before confirming (opens the workload form pre-filled) +4. **Cancel** — Reject the proposal without creating anything + +For multi-workload proposals (like a full platform estimate), the assistant proposes each workload sequentially. You confirm or reject each one individually. + +## Conversation Management + +- The assistant maintains conversation history within a session. When the history grows beyond 25 messages, it is trimmed to the 15 most recent messages to keep responses fast and relevant. +- Click **Clear** to reset the conversation and start fresh +- History does not persist across browser sessions + +:::tip +Be specific in your requests. Instead of "add a warehouse," say "add a DBSQL Serverless Medium warehouse running 8 hours per business day for our analytics team." The more detail you provide, the more accurate the proposed configuration will be. +::: + +:::caution +AI responses are generated by a language model and may contain inaccuracies. Always verify pricing details against the [official Databricks pricing page](https://www.databricks.com/product/pricing) before making procurement decisions. The assistant does not perform live pricing lookups — it uses Lakemeter's bundled pricing data. +::: diff --git a/lakemeter/docs-site/docs/user-guide/ai-parse.md b/lakemeter/docs-site/docs/user-guide/ai-parse.md new file mode 100644 index 00000000..c7f0df0a --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/ai-parse.md @@ -0,0 +1,142 @@ +--- +sidebar_position: 17 +--- + +# AI Parse (Document AI) + +> **Lakemeter UI name:** AI Parse + +AI Parse (Document AI) provides intelligent document parsing and extraction — converting PDFs, scanned images, and complex documents into structured data. Lakemeter supports two billing modes: **DBU-based** (direct DBU hours) and **Pages-based** (pages processed × complexity). + +## When to use AI Parse + +Use AI Parse when you need to **extract structured data from documents** — things like invoice processing, contract analysis, form digitization, or medical record parsing. If you need to call a language model for text generation or chat, see [FMAPI — Databricks Models](/user-guide/fmapi-databricks) instead. + +## Real-world example + +> **Scenario:** You are processing 50,000 scanned invoices per month on AWS us-east-1 (Premium tier). The invoices contain tables, logos, and multi-column layouts, so you classify them as "high" complexity. Each invoice is approximately 2 pages, totaling 100,000 pages per month. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | AI Parse | +| Billing Mode | Pages | +| Complexity | High | +| Pages (Thousands) | 100 | + +### Step-by-step calculation + +**1. DBU rate per 1,000 pages** + +Each complexity level has a fixed DBU rate per 1,000 pages processed: + +``` +DBU per 1,000 Pages = 87.5 (High complexity) +``` + +**2. Monthly DBUs and cost** + +``` +Monthly DBUs = Pages (thousands) × DBU per 1,000 Pages + = 100 × 87.5 = 8,750 DBUs +DBU Cost = 8,750 × $0.07/DBU = $612.50 +Total Cost = $612.50 (no VM costs — always serverless) +``` + +:::note +These are example rates for illustration. Actual $/DBU depends on your cloud, region, and pricing tier. The $0.07 rate is the fallback for the `SERVERLESS_REAL_TIME_INFERENCE` SKU on AWS/us-east-1/Premium. +::: + +### What about simpler documents? + +For plain-text documents (letters, memos) with no tables or images: + +``` +DBU per 1,000 Pages = 12.5 (Low Text complexity) +Monthly DBUs = 100 × 12.5 = 1,250 DBUs +Total Cost = 1,250 × $0.07 = $87.50/month +``` + +That's **7× cheaper** than high complexity for the same page count. + +## Billing modes + +| Mode | How it works | Best for | +|------|-------------|----------| +| **Pages** | Pages (thousands) × complexity rate → DBUs | Document processing with known page counts | +| **DBU** | Direct DBU hours per month | Pre-calculated DBU budgets or mixed usage | + +### Pages mode — complexity levels + +| Complexity | DBU per 1,000 Pages | Document types | +|-----------|---------------------|----------------| +| **Low (Text)** | 12.5 | Plain text documents, letters, simple memos | +| **Low (Images)** | 22.5 | Documents with embedded images but simple layout | +| **Medium** | 62.5 | Mixed content — text with some tables and images | +| **High** | 87.5 | Complex layouts — multi-column, dense tables, forms, scanned images | + +:::tip Choosing complexity +When in doubt, use **Medium**. Reserve **High** for documents with complex table extraction or multi-column scanned PDFs. Use **Low (Text)** only for well-structured digital PDFs with no images. +::: + +## Configuration reference + +| Field | Description | Default | +|-------|-------------|---------| +| **Billing Mode** | Pages or DBU. Pages mode uses complexity-based rates; DBU mode uses direct hours. | Pages | +| **Complexity** | Document complexity level (Pages mode only). Determines DBU rate per 1,000 pages. | Medium | +| **Pages (Thousands)** | Number of pages to process per month, in thousands (Pages mode only). | 100 | +| **Hours Per Month** | Direct DBU hours (DBU mode only). | 0 | + +## How costs are calculated + +### Pages mode + +``` +DBU/1000 Pages = Complexity Rate Lookup[complexity] +Monthly DBUs = Pages (thousands) × DBU/1000 Pages +DBU Cost = Monthly DBUs × $/DBU +Total Cost = DBU Cost (no VM costs — always serverless) +``` + +### DBU mode + +``` +Monthly DBUs = Hours Per Month (direct input) +DBU Cost = Monthly DBUs × $/DBU +Total Cost = DBU Cost +``` + +### SKU mapping + +| Workload | SKU | Fallback $/DBU | +|----------|-----|----------------| +| AI Parse (all modes) | `SERVERLESS_REAL_TIME_INFERENCE` | $0.07 | + +## Tips + +- **Estimate page counts accurately**: If you process 10,000 invoices with an average of 3 pages each, that's 30,000 pages = 30 thousands. Don't confuse document count with page count. +- **Batch by complexity**: If you have a mix of simple and complex documents, create separate workload entries for each complexity level to get a more accurate estimate. +- **Pages mode is usually clearer**: Unless you already know your DBU budget, Pages mode gives a more intuitive estimate based on actual document volumes. + +## Common mistakes + +- **Confusing thousands with actual page count**: The Pages field is in **thousands**. If you process 50,000 pages/month, enter 50, not 50,000. +- **Over-classifying complexity**: Not every document is "High" complexity. A well-formatted digital PDF with a simple table is "Medium" at most. Over-classifying inflates your estimate by up to 7×. +- **Expecting VM costs**: AI Parse is always serverless. $0 VM cost is correct. + +## Excel export + +Each AI Parse workload appears as one row in the exported spreadsheet: + +| Column | What it shows | +|--------|--------------| +| Configuration | Billing mode + complexity (if Pages mode) | +| Mode | Serverless (always) | +| SKU | `SERVERLESS_REAL_TIME_INFERENCE` | +| Monthly DBUs | Calculated from pages × complexity rate | +| DBU Cost (List) | At list price | +| DBU Cost (Discounted) | At negotiated rate | +| VM Cost | $0 (always serverless) | +| Total Cost | DBU Cost | diff --git a/lakemeter/docs-site/docs/user-guide/all-purpose-compute.md b/lakemeter/docs-site/docs/user-guide/all-purpose-compute.md new file mode 100644 index 00000000..708f73d7 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/all-purpose-compute.md @@ -0,0 +1,206 @@ +--- +sidebar_position: 8 +--- + +# All-Purpose Compute + +> **Lakemeter UI name:** All Purpose Compute + +All-Purpose Compute is for interactive notebooks, development clusters, and ad-hoc analysis. Like Jobs, it supports **Classic** and **Serverless** modes -- but with key differences in pricing and how usage is measured. + +![Estimate with configured workloads and cost summary](/img/estimate-with-workloads.png) +*Lakemeter showing workloads with live cost calculation — All-Purpose Compute appears alongside other workload types.* + +## When to use All-Purpose + +Use All-Purpose when you need an **always-on or frequently-used** interactive environment -- data scientists exploring data in notebooks, developers testing code, or analysts running ad-hoc queries. If your workload runs on a schedule and then stops, [Jobs](/user-guide/jobs-compute) is a better fit. + +## Real-world example + +> **Scenario:** Your data science team of 5 people shares a development cluster on AWS us-east-1 (Premium tier). The cluster runs during business hours -- about 8 hours a day, 22 business days a month. You want Photon enabled for faster DataFrame operations. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | All-Purpose | +| Serverless | Off | +| Driver Instance Type | m5d.xlarge | +| Worker Instance Type | m5d.xlarge | +| Number of Workers | 4 | +| Photon | On | +| Driver Pricing Tier | On-Demand | +| Worker Pricing Tier | On-Demand | +| Hours Per Month | 176 (= 8 hrs x 22 days) | + +### Step-by-step calculation + +**1. DBU rate per hour** + +``` +DBU/Hour = (Driver DBU + Worker DBU x Workers) x Photon Multiplier + = (1.0 + 1.0 x 4) x 2.0 + = 10.0 DBU/hour +``` + +:::info Photon multiplier for All-Purpose +The Photon multiplier for All-Purpose Compute is **2.0x on all clouds** (AWS, Azure, and GCP). This is lower than the Jobs and DLT multiplier (2.9x AWS / 2.5x Azure, GCP). Lakemeter loads the correct multiplier automatically from the pricing bundle. +::: + +**2. Monthly DBUs and cost** + +``` +Monthly DBUs = 10.0 x 176 = 1,760 DBUs +DBU Cost = 1,760 x $0.55/DBU (example All-Purpose Photon rate) = $968.00 +``` + +**3. VM cost** + +``` +VM Cost = (Driver $/hr + Worker $/hr x Workers) x Hours/Month + = ($0.192 + $0.192 x 4) x 176 + = $0.960/hr x 176 + = $168.96 +``` + +**4. Total** + +``` +Total = $968.00 + $168.96 = $1,136.96/month +``` + +### What if you used Serverless instead? + +All-Purpose Serverless always runs in **Performance mode** with a 4x total multiplier (2x Photon x 2x Performance): + +``` +DBU/Hour = (1.0 + 1.0 x 4) x 2 x 2 = 20.0 DBU/hour +Monthly DBUs = 20.0 x 176 = 3,520 DBUs +DBU Cost = 3,520 x $0.75/DBU (example Serverless rate) = $2,640.00 +VM Cost = $0 (no infrastructure costs) +Total = $2,640.00/month +``` + +In this case, Classic is significantly cheaper for a cluster running 176 hours/month. Serverless shines for shorter, less predictable usage. + +:::note +These are example rates for illustration. Actual prices depend on your cloud, region, and tier. +::: + +## Configuration reference + +### Compute mode + +| Field | Description | Default | +|-------|-------------|---------| +| **Serverless** | Toggle between Classic and Serverless. Requires **Premium** tier or above. | Off | + +:::caution +All-Purpose Serverless **always runs in Performance mode** -- there is no Standard option. This is a Databricks platform constraint, not a Lakemeter setting. The UI shows a fixed "Performance Mode" badge instead of a dropdown. +::: + +### Classic mode fields + +| Field | Description | Default | +|-------|-------------|---------| +| **Driver Instance Type** | VM size for the Spark driver | -- (select from list) | +| **Worker Instance Type** | VM size for the Spark executors | -- (select from list) | +| **Number of Workers** | Cluster size | 2 | +| **Photon** | Hardware-accelerated engine (2x DBU multiplier) | Off | +| **Driver Pricing Tier** | Spot Instances, On-Demand, 1-Year Reserved, or 3-Year Reserved | On-Demand | +| **Worker Pricing Tier** | Spot Instances, On-Demand, 1-Year Reserved, or 3-Year Reserved | Spot | + +:::tip AWS Reserved Payment Options +When you select a Reserved tier on AWS, an additional **Payment Option** field appears with choices: No Upfront, Partial Upfront, or All Upfront. This field is not shown for Azure or GCP. +::: + +### Usage fields + +All-Purpose supports two input methods (toggle between them in the UI): + +**Direct Hours (default for All-Purpose):** + +| Field | Description | Default | +|-------|-------------|---------| +| **Hours Per Month** | Total cluster uptime hours | 0 | + +Common values: 730 (24/7), 176 (8 hrs x 22 days), 44 (2 hrs x 22 days). + +**Run-Based:** + +| Field | Description | Default | +|-------|-------------|---------| +| **Runs Per Day** | Number of sessions per day | 1 | +| **Avg Runtime (minutes)** | Duration per session | 30 | +| **Days Per Month** | Active days | 22 | + +## How costs are calculated + +### Classic + +``` +DBU/Hour = (Driver DBU Rate + Worker DBU Rate x Workers) x Photon Multiplier +DBU Cost = DBU/Hour x Hours/Month x $/DBU +VM Cost = (Driver $/hr + Worker $/hr x Workers) x Hours/Month +Total = DBU Cost + VM Cost +``` + +### Serverless + +``` +DBU/Hour = (Driver DBU Rate + Worker DBU Rate x Workers) x 2 x 2 +DBU Cost = DBU/Hour x Hours/Month x $/DBU +Total = DBU Cost (no VM costs) +``` + +The two `x 2` factors are: +- **Photon** (always on for Serverless) = 2x +- **Performance mode** (always on for All-Purpose Serverless) = 2x + +Combined: **4x multiplier** on the base DBU rate. + +### SKU mapping + +| Configuration | SKU | +|--------------|-----| +| Classic, Photon off | `ALL_PURPOSE_COMPUTE` | +| Classic, Photon on | `ALL_PURPOSE_COMPUTE_(PHOTON)` | +| Serverless | `ALL_PURPOSE_SERVERLESS_COMPUTE` | + +## Classic vs Serverless comparison + +| Factor | Classic | Serverless | +|--------|---------|------------| +| DBU multiplier | 1x (or 2x with Photon) | 4x always | +| VM costs | Yes | No | +| $/DBU SKU | `ALL_PURPOSE_COMPUTE` | `ALL_PURPOSE_SERVERLESS_COMPUTE` | +| Cluster startup | Minutes | Seconds | +| Instance selection | You choose | Managed | +| Best for | Long-running, predictable usage | Short bursts, fast startup needed | + +## Tips + +- **Serverless is not always more expensive**: For short, infrequent sessions (e.g., 30 minutes a few times a week), Serverless often costs less because there are no VM costs and no time wasted on cluster startup. +- **For 24/7 clusters, Classic wins**: The 4x DBU multiplier on Serverless makes it expensive for always-on workloads. Use Classic with Reserved pricing for the best rate on long-running clusters. +- **Worker pricing tier**: Unlike Jobs, many teams use On-Demand for All-Purpose workers because interactive work is more sensitive to Spot interruptions. If your team can tolerate occasional restarts, Spot saves 60-70%. +- **Right-size the cluster**: Start with 2-4 workers and scale up if needed. Each additional worker adds to both DBU and VM costs linearly. + +## Common mistakes + +- **Leaving Hours Per Month at 0**: If you do not enter hours (or switch to run-based input and fill in those fields), the calculated cost will be $0. Make sure to set your expected usage. +- **Expecting a Standard mode option for Serverless**: All-Purpose Serverless only supports Performance mode. If you need lower Serverless costs for batch work, use [Jobs](/user-guide/jobs-compute) with Standard mode instead. +- **Comparing only DBU rates**: Serverless has a higher DBU rate but no VM costs. Always compare the **total monthly cost** between Classic and Serverless, not just the per-DBU price. + +## Excel export + +Each All-Purpose workload appears as one row in the exported spreadsheet: + +| Column | What it shows | +|--------|--------------| +| Hours/Month | Direct value or calculated from runs/runtime/days | +| DBU/Hour | Based on instance types, workers, and multipliers | +| Monthly DBUs | DBU/Hour x Hours/Month | +| DBU Cost (List) | At list price | +| DBU Cost (Discounted) | At negotiated rate | +| VM Cost | Classic: driver + workers infrastructure; Serverless: $0 | +| Total Cost | DBU Cost + VM Cost | diff --git a/lakemeter/docs-site/docs/user-guide/calculation-reference.md b/lakemeter/docs-site/docs/user-guide/calculation-reference.md new file mode 100644 index 00000000..8191d398 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/calculation-reference.md @@ -0,0 +1,405 @@ +--- +sidebar_position: 9 +--- + +# Calculation Reference + +This page documents the exact cost calculation formulas Lakemeter uses for each workload type, along with fully worked examples using real pricing data. + +![Calculation Reference documentation page](/img/guides/calculation-reference-guide.png) +*The Calculation Reference — general cost pattern and formula structure for all 14 workload types.* + +![Worked cost example](/img/guides/calculation-worked-example.png) +*Step-by-step worked example with real pricing data showing Jobs Classic with Photon.* + +## General Pattern + +All Databricks workload costs follow a common structure: + +``` +Monthly Cost = DBU Cost + VM Cost (Classic only) +DBU Cost = Monthly DBUs × $/DBU +VM Cost = (Driver $/hr + Worker $/hr × Workers) × Hours/Month +``` + +Serverless workloads have **no VM cost** — the infrastructure is included in the DBU price. + +## Hours Calculation + +How Lakemeter determines monthly hours depends on the workload's usage mode: + +| Usage Mode | Formula | Default | +|-----------|---------|---------| +| **Run-based** (Jobs, DLT) | Runs/Day × Avg Runtime (min) ÷ 60 × Days/Month | 22 business days | +| **Continuous** (DBSQL, Model Serving, etc.) | Hours/Month entered directly | 730 hrs (24/7) | + +--- + +## Worked Example 1: Jobs Classic with Photon + +**Scenario:** An ETL pipeline running 5 times per business day, 45 minutes per run, using 4 `i3.xlarge` workers on AWS us-east-1 (Premium tier) with Photon enabled. + +### Step 1: Calculate monthly hours + +``` +Hours/Month = (Runs/Day × Avg Runtime Minutes ÷ 60) × Days/Month + = (5 × 45 ÷ 60) × 22 + = 3.75 × 22 + = 82.5 hours +``` + +### Step 2: Calculate DBU/Hour + +The `i3.xlarge` instance has a DBU rate of **1.0 DBU/hr** per instance. + +``` +DBU/Hour = (Driver DBU + Worker DBU × Num Workers) × Photon Multiplier + = (1.0 + 1.0 × 4) × 2.9 + = 5.0 × 2.9 + = 14.5 DBU/hr +``` + +The Photon multiplier varies by workload type and cloud. For Jobs on AWS it is **2.9** (All-Purpose uses 2.0). The multiplier is 1.0 when Photon is disabled. + +### Step 3: Calculate monthly DBUs and DBU cost + +The `JOBS_COMPUTE_(PHOTON)` SKU on AWS us-east-1 Premium costs **$0.15/DBU**. + +``` +Monthly DBUs = DBU/Hour × Hours/Month + = 14.5 × 82.5 + = 1,196.25 DBUs + +DBU Cost = 1,196.25 × $0.15 + = $179.44/month +``` + +### Step 4: Calculate VM cost + +The `i3.xlarge` on-demand rate is **$0.312/hr** per instance. + +``` +VM Cost = (Driver $/hr + Worker $/hr × Workers) × Hours/Month + = ($0.312 + $0.312 × 4) × 82.5 + = $1.56 × 82.5 + = $128.70/month +``` + +### Step 5: Total cost + +``` +Monthly Cost = DBU Cost + VM Cost + = $179.44 + $128.70 + = $308.14/month + +Annual Cost = $308.14 × 12 = $3,697.65/year +``` + +--- + +## Worked Example 2: DBSQL Serverless Warehouse + +**Scenario:** A Medium Serverless SQL warehouse running 8 hours per business day (22 days/month) on AWS us-east-1 (Premium tier). + +### Step 1: Calculate monthly hours + +``` +Hours/Month = 8 hours/day × 22 days + = 176 hours +``` + +### Step 2: Look up DBU/Hour from size mapping + +| Size | DBU/Hour | +|------|----------| +| 2X-Small | 4 | +| X-Small | 6 | +| Small | 12 | +| **Medium** | **24** | +| Large | 40 | +| X-Large | 80 | +| 2X-Large | 144 | +| 3X-Large | 272 | +| 4X-Large | 528 | + +For a single cluster: + +``` +DBU/Hour = Size DBU × Number of Clusters + = 24 × 1 + = 24 DBU/hr +``` + +### Step 3: Calculate cost + +The `SERVERLESS_SQL_COMPUTE` SKU on AWS us-east-1 Premium costs **$0.70/DBU**. + +``` +Monthly DBUs = 24 × 176 = 4,224 DBUs +DBU Cost = 4,224 × $0.70 = $2,956.80/month +VM Cost = $0 (Serverless — no separate VM charges) + +Monthly Cost = $2,956.80 +Annual Cost = $2,956.80 × 12 = $35,481.60/year +``` + +--- + +## Worked Example 3: FMAPI Token-Based Pricing + +**Scenario:** Using Llama 3.1 8B on Databricks (AWS) with 50 million input tokens and 10 million output tokens per month. + +### Step 1: Look up token rates + +For Llama 3.1 8B on AWS: + +| Rate Type | DBU per 1M Tokens | +|-----------|-------------------| +| Input tokens | 2.143 | +| Output tokens | 6.429 | + +### Step 2: Calculate monthly DBUs for each rate type + +``` +Input DBUs = 50M tokens × 2.143 DBU/1M = 107.15 DBUs +Output DBUs = 10M tokens × 6.429 DBU/1M = 64.29 DBUs +``` + +### Step 3: Calculate cost + +The `SERVERLESS_REAL_TIME_INFERENCE` SKU on AWS us-east-1 Premium costs **$0.07/DBU**. + +``` +Input Cost = 107.15 × $0.07 = $7.50/month +Output Cost = 64.29 × $0.07 = $4.50/month + +Monthly Cost = $7.50 + $4.50 = $12.00/month +Annual Cost = $12.00 × 12 = $144.00/year +``` + +:::tip +Output tokens are typically more expensive than input tokens. For Llama 3.1 8B, output rates are 3x the input rate. Budget accordingly if your use case generates long responses. +::: + +--- + +## Worked Example 4: Classic vs Serverless Comparison + +**Scenario:** The same Jobs workload configured both ways — 4 `i3.xlarge` workers, 10 runs/day at 30 minutes each, on AWS us-east-1 Premium, Photon enabled. + +### Common: Monthly hours + +``` +Hours/Month = (10 × 30 ÷ 60) × 22 = 110 hours +``` + +### Classic Calculation + +The Photon multiplier for Jobs on AWS is **2.9**. The SKU is `JOBS_COMPUTE_(PHOTON)` at **$0.15/DBU**. + +``` +DBU/Hour = (1.0 + 1.0 × 4) × 2.9 = 14.5 DBU/hr +Monthly DBUs = 14.5 × 110 = 1,595 DBUs +DBU Cost = 1,595 × $0.15 = $239.25 +VM Cost = ($0.312 + $0.312 × 4) × 110 = $171.60 +Monthly Cost = $239.25 + $171.60 = $410.85 +``` + +### Serverless Calculation + +Jobs Serverless always applies the Photon multiplier (2.9 on AWS) and a Serverless mode multiplier (1x Standard, 2x Performance). Using Standard mode. The SKU is `JOBS_SERVERLESS_COMPUTE` at **$0.35/DBU**. + +``` +DBU/Hour = (1.0 + 1.0 × 4) × 2.9 × 1.0 = 14.5 DBU/hr +Monthly DBUs = 14.5 × 110 = 1,595 DBUs +DBU Cost = 1,595 × $0.35 = $558.25 +VM Cost = $0 (Serverless — no separate VM charges) +Monthly Cost = $558.25 +``` + +### Side-by-Side + +| | Classic | Serverless (Standard) | +|--|---------|----------------------| +| DBU/Hour | 14.5 | 14.5 | +| Monthly DBUs | 1,595 | 1,595 | +| $/DBU | $0.15 | $0.35 | +| DBU Cost | $239.25 | $558.25 | +| VM Cost | $171.60 | $0.00 | +| **Monthly Total** | **$410.85** | **$558.25** | +| **Annual Total** | **$4,930.20** | **$6,699.00** | + +:::note +In this scenario, Classic is cheaper because the VM costs ($171.60) are less than the DBU price premium for Serverless ($0.35 vs $0.15 per DBU). Serverless becomes more cost-effective for workloads with low utilization, burst patterns, or where you value the operational simplicity of not managing cluster infrastructure. +::: + +--- + +## Formula Reference by Workload Type + +### Jobs & All-Purpose (Classic) + +``` +DBU/Hour = (Driver DBU + Worker DBU × Workers) × Photon Multiplier +``` + +| Parameter | Value | +|-----------|-------| +| Photon Multiplier | Varies by workload and cloud: Jobs/DLT on AWS = 2.9, Azure/GCP = 2.5; All-Purpose = 2.0 on all clouds. 1.0 when Photon is disabled. Fallback = 2.0 if lookup fails. | +| Driver/Worker DBU | From instance type lookup (e.g., `i3.xlarge` = 1.0) | +| Fallback DBU | 0.5 for unknown instance types | + +**SKUs:** `JOBS_COMPUTE`, `JOBS_COMPUTE_(PHOTON)`, `ALL_PURPOSE_COMPUTE`, `ALL_PURPOSE_COMPUTE_(PHOTON)` + +### Jobs & All-Purpose (Serverless) + +``` +DBU/Hour = (Driver DBU + Worker DBU × Workers) × Photon × Serverless Multiplier +``` + +| Parameter | Jobs | All-Purpose | +|-----------|------|-------------| +| Photon | Always on (AWS: 2.9x, Azure/GCP: 2.5x) | Always on (2.0x) | +| Serverless Standard | 1x | N/A | +| Serverless Performance | 2x | Always 2x | + +**SKUs:** `JOBS_SERVERLESS_COMPUTE`, `ALL_PURPOSE_SERVERLESS_COMPUTE` + +No VM costs for serverless workloads. + +### Delta Live Tables (DLT) + +DLT Classic uses the same formula as Jobs Classic. DLT Serverless uses Jobs Serverless pricing. + +| Edition | Classic SKU | Photon SKU | Serverless SKU | +|---------|------------|------------|----------------| +| Core | `DLT_CORE_COMPUTE` | `DLT_CORE_COMPUTE_(PHOTON)` | `JOBS_SERVERLESS_COMPUTE` | +| Pro | `DLT_PRO_COMPUTE` | `DLT_PRO_COMPUTE_(PHOTON)` | `JOBS_SERVERLESS_COMPUTE` | +| Advanced | `DLT_ADVANCED_COMPUTE` | `DLT_ADVANCED_COMPUTE_(PHOTON)` | `JOBS_SERVERLESS_COMPUTE` | + +All DLT Serverless editions use the same `JOBS_SERVERLESS_COMPUTE` SKU. + +### Databricks SQL (DBSQL) + +``` +DBU/Hour = Size DBU Map[Warehouse Size] × Number of Clusters +``` + +| Type | SKU | +|------|-----| +| Classic | `SQL_COMPUTE` | +| Pro | `SQL_PRO_COMPUTE` | +| Serverless | `SERVERLESS_SQL_COMPUTE` | + +Classic and Pro include VM costs. Serverless does not. + +### Model Serving + +``` +DBU/Hour = GPU DBU Rate (from lookup by GPU type) +``` + +Each GPU type maps to a fixed DBU/hour rate. All Model Serving uses the `SERVERLESS_REAL_TIME_INFERENCE` SKU. No VM costs. + +### Vector Search + +``` +Units = CEILING(Capacity in Millions ÷ Divisor) +DBU/Hour = Units × Mode DBU Rate +``` + +| Mode | Divisor | DBU Rate per Unit | +|------|---------|-------------------| +| Standard | 2,000,000 vectors | 4.0 DBU/hr | +| Storage Optimized | 64,000,000 vectors | 18.29 DBU/hr | + +**SKU:** `SERVERLESS_REAL_TIME_INFERENCE` + +May produce a second storage row in exports when storage GB > 0. + +### FMAPI — Databricks Models + +| Pricing Type | Formula | +|-------------|---------| +| Token-based (input/output) | Monthly DBUs = Quantity (Millions) × DBU per 1M Tokens | +| Provisioned (entry/scaling) | Monthly DBUs = Hours × DBU per Hour | + +**SKU:** `SERVERLESS_REAL_TIME_INFERENCE` + +### FMAPI — Proprietary Models + +Same token-based formula as Databricks FMAPI. Rate types include `input`, `output`, `cache_read`, and `cache_write`. + +| Provider | SKU | +|----------|-----| +| Anthropic | `ANTHROPIC_MODEL_SERVING` | +| OpenAI | `OPENAI_MODEL_SERVING` | +| Google | `GEMINI_MODEL_SERVING` | + +### Lakebase + +**Compute:** +``` +DBU/Hour = CU Size × Number of Nodes +``` +- CU Size: 1, 2, 4, or 8 compute units per node +- Nodes: 1 (primary only), 2 (primary + 1 read replica), or 3 (primary + 2 read replicas) +- **SKU:** `DATABASE_SERVERLESS_COMPUTE` + +**Storage:** +``` +Storage Cost/Month = Storage GB × 15 DSU × $0.023/DSU +``` +- Maximum storage: 8,192 GB +- **SKU:** `DATABRICKS_STORAGE` + +Lakebase storage is a direct dollar cost (not DBU-based) and appears on a separate row in Excel exports. + +### Databricks Apps + +``` +DBU/Hour = App Size DBU Rate +``` + +| App Size | DBU/Hour | +|----------|----------| +| Medium | Uses `ALL_PURPOSE_SERVERLESS_COMPUTE` rate | +| Large | Uses `ALL_PURPOSE_SERVERLESS_COMPUTE` rate (higher DBU) | + +**SKU:** `ALL_PURPOSE_SERVERLESS_COMPUTE` + +No VM costs — Databricks Apps are always serverless. + +### AI Parse (Document AI) + +**Pages-based mode:** +``` +Monthly DBUs = Pages (thousands) × DBU per 1000 Pages +``` + +The DBU rate per 1000 pages depends on the document complexity: + +| Complexity | Description | +|------------|-------------| +| Low (Text) | Simple text documents | +| Low (Images) | Documents with images but simple layout | +| Medium | Mixed content documents | +| High | Complex documents with tables, forms, multi-column layouts | + +**SKU:** `SERVERLESS_REAL_TIME_INFERENCE` + +### Shutterstock ImageAI + +``` +Monthly Cost = Images Per Month × Cost Per Image +``` + +Shutterstock ImageAI uses a fixed per-image cost rather than DBU-based pricing. The cost per image is retrieved from the pricing bundle. + +No DBU calculation — this is a direct dollar cost. + +--- + +## Excel Export Column Layout + +The Excel export uses a 30-column layout. See the [Exporting guide](./exporting) for full details on sections and formatting. diff --git a/lakemeter/docs-site/docs/user-guide/creating-estimates.md b/lakemeter/docs-site/docs/user-guide/creating-estimates.md new file mode 100644 index 00000000..7ad95988 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/creating-estimates.md @@ -0,0 +1,84 @@ +--- +sidebar_position: 3 +--- + +# Creating Estimates + +An estimate is the top-level container for your Databricks cost analysis. Each estimate holds one or more workloads and is scoped to a specific cloud, region, and pricing tier. + +![Lakemeter estimates list](/img/estimates-list.png) +*The estimates list page — create, search, and manage your cost estimates.* + +![Creating an estimate — click New Estimate, fill the form, and submit](/img/gifs/creating-estimate.gif) +*Animated: the full estimate creation flow — enter a name, select cloud, region, and pricing tier, then click Create.* + +## Estimate Fields + +| Field | Required | Description | +|-------|----------|-------------| +| **Estimate Name** | Yes | A descriptive name for your estimate | +| **Cloud** | Yes | Cloud provider: `aws`, `azure`, or `gcp` | +| **Region** | Yes | Deployment region (options depend on selected cloud) | +| **Tier** | Yes | Pricing tier: Standard, Premium, or Enterprise | + +## Creating a New Estimate + +1. Navigate to the **Estimates** page +2. Click **New Estimate** +3. Fill in the required fields +4. Click **Create** + +You'll be redirected to the calculator page where you can start adding workloads. + +![Calculator page with workloads and cost summary](/img/calculator-overview.png) +*After creating an estimate, the calculator page is where you add and configure workloads.* + +## Managing Estimates + +### Viewing Estimates + +The estimates list page shows all your estimates with: +- Estimate name +- Number of workloads (line items) +- Creation and last updated dates +- Current status + +Use the search bar to filter estimates by name. + +### Editing an Estimate + +Click on any estimate to open it in the calculator. You can: +- Update the estimate name, region, or tier +- Add, edit, or remove workloads +- Reorder workloads by dragging + +![Drag and drop to reorder workloads in the estimate](/img/gifs/drag-and-drop.gif) +*Animated: drag workloads to reorder them — the display order updates instantly.* + +:::caution +Changing the **cloud provider** is blocked if the estimate already has workloads, since pricing and available instance types differ between clouds. +::: + +### Duplicating an Estimate + +To create a copy of an existing estimate: + +1. Open the estimate +2. Click **Duplicate** + +The copy includes all workloads and their configurations. The new estimate is named with a "(Copy)" suffix. + +### Deleting an Estimate + +Estimates are soft-deleted — they're hidden from the list but preserved in the database. Only the estimate owner can delete it. + +## Estimate Statuses + +| Status | Description | +|--------|-------------| +| **Draft** | Work in progress (default) | +| **Approved** | Finalized and approved | + +## Versioning + +Each save to an estimate increments its version number. This helps track changes over time. diff --git a/lakemeter/docs-site/docs/user-guide/databricks-apps.md b/lakemeter/docs-site/docs/user-guide/databricks-apps.md new file mode 100644 index 00000000..414049a1 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/databricks-apps.md @@ -0,0 +1,139 @@ +--- +sidebar_position: 16 +--- + +# Databricks Apps + +> **Lakemeter UI name:** Databricks Apps + +Databricks Apps lets you deploy and run custom web applications (dashboards, data apps, internal tools) directly on Databricks infrastructure. Apps are fully serverless — you choose a size (Medium or Large) and Databricks handles provisioning. Costs are based on a fixed DBU/hour rate and app uptime. + +## When to use Databricks Apps + +Use Databricks Apps when you need to **host a custom web application** on Databricks — things like Streamlit dashboards, Gradio ML demos, FastAPI backends, or React frontends. If you need to run batch data processing, see [Jobs Compute](/user-guide/jobs-compute). If you need interactive notebook exploration, see [All-Purpose Compute](/user-guide/all-purpose-compute). + +## Real-world example + +> **Scenario:** You are deploying an internal cost estimation dashboard on AWS us-east-1 (Premium tier). The app runs during business hours — about 10 hours a day, 22 days a month. You need a Large app size to handle concurrent users. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | Databricks Apps | +| App Size | Large | +| Hours Per Month | 220 (= 10 hrs × 22 days) | + +### Step-by-step calculation + +**1. DBU rate per hour** + +Each app size has a fixed DBU/hour rate: + +``` +DBU/Hour = 1.0 (Large size) +``` + +**2. Monthly DBUs and cost** + +``` +Monthly DBUs = DBU/Hour × Hours/Month = 1.0 × 220 = 220 DBUs +DBU Cost = 220 × $0.07/DBU = $15.40 +Total Cost = $15.40 (no VM costs — always serverless) +``` + +:::note +These are example rates for illustration. Actual $/DBU depends on your cloud, region, and pricing tier. The $0.07 rate is the fallback for the `ALL_PURPOSE_SERVERLESS_COMPUTE` SKU on AWS/us-east-1/Premium. +::: + +### What about a Medium app? + +For lighter workloads with fewer concurrent users: + +``` +DBU/Hour = 0.5 (Medium size) +Monthly DBUs = 0.5 × 220 = 110 DBUs +Total Cost = 110 × $0.07 = $7.70/month +``` + +### Always-on app (24/7) + +If your app needs to be available around the clock: + +``` +DBU/Hour = 1.0 (Large) +Monthly DBUs = 1.0 × 730 = 730 DBUs +Total Cost = 730 × $0.07 = $51.10/month +``` + +## App sizes + +| Size | DBU/Hour | Best for | +|------|----------|----------| +| **Medium** | 0.5 | Low-traffic dashboards, internal tools, dev/test apps | +| **Large** | 1.0 | Production apps, concurrent users, ML demos, heavier workloads | + +Both sizes use the `ALL_PURPOSE_SERVERLESS_COMPUTE` SKU. + +## Configuration reference + +| Field | Description | Default | +|-------|-------------|---------| +| **App Size** | Medium (0.5 DBU/hr) or Large (1.0 DBU/hr). Determines DBU consumption rate. | Medium | +| **Hours Per Month** | App uptime. Use 730 for 24/7 apps. | 730 | + +### Estimating hours for intermittent usage + +If your app only serves traffic during specific hours: + +``` +Hours/Month = Hours Per Day × Days Per Month +``` + +**Example**: Dashboard used 8 hours/day, 22 weekdays = 176 hours/month. + +## How costs are calculated + +``` +DBU/Hour = App Size Rate (0.5 for Medium, 1.0 for Large) +Monthly DBUs = DBU/Hour × Hours/Month +DBU Cost = Monthly DBUs × $/DBU +Total Cost = DBU Cost (no VM costs — always serverless) +``` + +Databricks Apps are **always serverless**. There are no VM infrastructure costs to estimate. + +### SKU mapping + +| Workload | SKU | Fallback $/DBU | +|----------|-----|----------------| +| Databricks Apps (all sizes) | `ALL_PURPOSE_SERVERLESS_COMPUTE` | $0.07 | + +## Tips + +- **Start with Medium**: Most internal dashboards and tools run fine on Medium. Only upgrade to Large if you see performance issues with concurrent users. +- **Right-size your hours**: If the app is only used during business hours, enter 176 (8 × 22) instead of 730. This cuts costs by ~76%. +- **Cross-cloud comparison**: Like all serverless workloads, the $/DBU rate varies by cloud and region. Create estimates for each cloud to compare. + +## Common mistakes + +- **Using 730 hours for business-only apps**: An internal dashboard used 9-to-5 doesn't need 24/7 uptime. Calculate your actual usage hours. +- **Choosing Large "just in case"**: Large costs exactly 2× Medium. Start with Medium and upgrade if needed. +- **Expecting VM costs**: Databricks Apps are always serverless. $0 in the VM Cost column is correct. + +## Excel export + +Each Databricks Apps workload appears as one row in the exported spreadsheet: + +| Column | What it shows | +|--------|--------------| +| Configuration | App size (Medium or Large) | +| Mode | Serverless (always) | +| SKU | `ALL_PURPOSE_SERVERLESS_COMPUTE` | +| DBU/Hour | 0.5 (Medium) or 1.0 (Large) | +| Hours/Month | Direct hours value | +| Monthly DBUs | DBU/Hour × Hours/Month | +| DBU Cost (List) | At list price | +| DBU Cost (Discounted) | At negotiated rate | +| VM Cost | $0 (always serverless) | +| Total Cost | DBU Cost | diff --git a/lakemeter/docs-site/docs/user-guide/dbsql-warehouses.md b/lakemeter/docs-site/docs/user-guide/dbsql-warehouses.md new file mode 100644 index 00000000..56681927 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/dbsql-warehouses.md @@ -0,0 +1,198 @@ +--- +sidebar_position: 11 +--- + +# Databricks SQL (DBSQL) + +> **Lakemeter UI name:** Databricks SQL + +DBSQL provides SQL analytics warehouses for business intelligence, reporting, and ad-hoc queries. It supports **Classic**, **Pro**, and **Serverless** warehouse types across 9 sizes, from 2X-Small to 4X-Large. + +![DBSQL Warehouses documentation page](/img/guides/dbsql-warehouses-guide.png) +*The DBSQL guide — real-world scenario, worked cost example, and configuration reference for Classic, Pro, and Serverless warehouses.* + +![DBSQL worked cost example](/img/guides/dbsql-worked-example.png) +*Step-by-step cost calculation showing DBU rates, warehouse sizing, and monthly totals.* + +## When to use DBSQL + +Use DBSQL when you need a **SQL-first analytics environment** -- dashboards, scheduled reports, BI tool connections (Tableau, Power BI, dbt), or ad-hoc SQL queries. Unlike Jobs or All-Purpose Compute, DBSQL pricing is based on fixed **warehouse sizes** rather than individual instance types. If you need a general-purpose Spark cluster for notebooks or Python/Scala workloads, see [All-Purpose Compute](/user-guide/all-purpose-compute). + +## Real-world example + +> **Scenario:** Your analytics team runs a BI dashboard platform on AWS us-east-1 (Premium tier). You need a Pro warehouse sized Medium for ~50 concurrent users, running 8 hours a day on business days. You also want a second cluster for peak-hour scaling. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | DBSQL | +| Warehouse Type | Pro | +| Warehouse Size | Medium | +| Number of Clusters | 2 | +| Hours Per Month | 176 (= 8 hrs x 22 days) | + +### Step-by-step calculation + +**1. DBU rate per hour** + +Each warehouse size has a fixed DBU/hour rate. Medium = 24 DBU/hr. With 2 clusters: + +``` +DBU/Hour = Warehouse Size DBU x Number of Clusters + = 24 x 2 + = 48 DBU/hour +``` + +**2. Monthly DBUs and cost** + +``` +Monthly DBUs = DBU/Hour x Hours/Month = 48 x 176 = 8,448 DBUs +DBU Cost = 8,448 x $0.55/DBU (Pro rate) = $4,646.40 +``` + +**3. VM infrastructure cost** + +Classic and Pro warehouses also have VM costs based on the warehouse size's underlying instances. Lakemeter uses default estimates: + +``` +VM Cost = (Driver VMs x Driver $/hr + Worker VMs x Worker $/hr) x Clusters x Hours/Month +``` + +The exact VM cost depends on the warehouse size. For illustration, a Medium warehouse might produce ~$200-400 in VM costs at 176 hours. + +**4. Total monthly cost** + +``` +Total = DBU Cost + VM Cost ≈ $4,646.40 + VM estimate +``` + +:::note +These are example rates for illustration. Actual $/DBU and VM prices depend on your cloud, region, and pricing tier. Lakemeter loads real rates from the Databricks pricing bundle. +::: + +### What if you used Serverless instead? + +Serverless eliminates VM costs entirely but has a higher $/DBU rate: + +``` +Monthly DBUs = 48 x 176 = 8,448 DBUs (same) +DBU Cost = 8,448 x $0.70/DBU (Serverless rate) = $5,913.60 +VM Cost = $0 +Total = $5,913.60 +``` + +Serverless costs more per DBU but eliminates VM overhead and provides instant startup. For intermittent or bursty BI workloads, the total cost may be lower because you only pay for active query time. + +## Warehouse sizes + +DBSQL uses a fixed mapping from warehouse size to DBU/hour. The DBU/hour is the same regardless of warehouse type (Classic, Pro, or Serverless) -- what changes is the $/DBU rate. + +| Size | DBU/Hour | Typical use case | +|------|----------|-----------------| +| **2X-Small** | 4 | Light dashboards, single-user queries | +| **X-Small** | 6 | Small team dashboards | +| **Small** | 12 | Team analytics, moderate concurrency | +| **Medium** | 24 | Department-level BI | +| **Large** | 40 | Heavy analytics, high concurrency | +| **X-Large** | 80 | Enterprise BI platforms | +| **2X-Large** | 144 | Large-scale data warehousing | +| **3X-Large** | 272 | Very large queries, complex joins | +| **4X-Large** | 528 | Maximum compute, extreme workloads | + +## Configuration reference + +| Field | Description | Default | +|-------|-------------|---------| +| **Warehouse Type** | Classic, Pro, or Serverless. Serverless requires **Premium** tier or above. | Serverless | +| **Warehouse Size** | 2X-Small through 4X-Large. Determines the DBU/hour rate. | Small | +| **Number of Clusters** | Concurrent cluster count for horizontal scaling. Multiplies DBU/hour linearly. | 1 | +| **Hours Per Month** | Warehouse uptime hours. Use 730 for 24/7, 176 for business hours (8 x 22 days). | 730 | + +### Classic and Pro VM costs + +Classic and Pro warehouses have underlying VM infrastructure. Lakemeter estimates VM costs using default rates ($0.20/hr driver, $0.10/hr worker) scaled by the warehouse size's instance counts. These are approximations -- actual VM costs depend on your cloud provider's instance pricing. + +Serverless warehouses have **no VM costs**. + +### Run-based usage + +DBSQL also supports run-based usage if your warehouse has intermittent query patterns: + +``` +Hours/Month = (Runs Per Day x Avg Runtime Minutes / 60) x Days Per Month +``` + +## How costs are calculated + +### DBU cost + +``` +DBU/Hour = Warehouse Size DBU Map[size] x Number of Clusters +Monthly DBUs = DBU/Hour x Hours/Month +DBU Cost = Monthly DBUs x $/DBU (from pricing tier) +``` + +### VM cost (Classic and Pro only) + +``` +VM Cost = (Driver Instance Count x Driver $/hr + Worker Instance Count x Worker $/hr) x Clusters x Hours/Month +``` + +VM instance counts are determined by the warehouse size configuration. Serverless has no VM costs. + +### Total + +``` +Total = DBU Cost + VM Cost +``` + +### SKU mapping + +| Warehouse Type | SKU | Fallback $/DBU | +|---------------|-----|----------------| +| Classic | `SQL_COMPUTE` | $0.22 | +| Pro | `SQL_PRO_COMPUTE` | $0.55 | +| Serverless | `SERVERLESS_SQL_COMPUTE` | $0.70 | + +## Choosing a warehouse type + +| Factor | Classic | Pro | Serverless | +|--------|---------|-----|------------| +| **Startup time** | Minutes | Minutes | Seconds | +| **Auto-scaling** | Manual config | Manual config | Automatic | +| **VM costs** | Yes | Yes | No | +| **$/DBU** | Lowest ($0.22) | Medium ($0.55) | Highest ($0.70) | +| **Management** | User-managed | User-managed | Fully managed | +| **Best for** | Cost-sensitive, predictable workloads | Advanced SQL features, materialized views | On-demand BI, variable or bursty workloads | + +## Tips + +- **Start small, scale up**: Begin with a Small warehouse (12 DBU/hr) and increase the size based on query performance and concurrency needs. Over-provisioning wastes DBUs. +- **Multi-cluster for concurrency, not speed**: Adding clusters helps when many users run queries simultaneously. It does not make individual queries faster -- increase warehouse size for that. +- **Serverless for intermittent use**: If your BI tool only runs queries during business hours with idle periods between, Serverless auto-scaling means you only pay during active queries. Classic/Pro charge for the full uptime window. +- **Pro vs Classic**: Pro adds features like materialized views and enhanced security. If you only need basic SQL analytics, Classic is significantly cheaper per DBU ($0.22 vs $0.55). + +## Common mistakes + +- **Comparing warehouse types by $/DBU alone**: Serverless has the highest $/DBU but zero VM costs and zero startup time. Compare total monthly cost, including VM estimates for Classic/Pro. +- **Setting too many clusters for low concurrency**: Each cluster multiplies the DBU rate. If you have fewer than 10 concurrent users, 1 cluster is usually sufficient. +- **Using 730 hours for a weekday-only dashboard**: If your team only uses dashboards during business hours (8 hrs x 22 days = 176 hrs), don't set 730 hours. The cost difference is 4x. +- **Ignoring VM costs on Classic/Pro**: The $/DBU rate is lower, but VM infrastructure adds significant cost. Always check the total, not just DBU cost. + +## Excel export + +Each DBSQL workload appears as one row in the exported spreadsheet: + +| Column | What it shows | +|--------|--------------| +| Configuration | Warehouse size and cluster count | +| Mode | Classic, Pro, or Serverless | +| SKU | `SQL_COMPUTE`, `SQL_PRO_COMPUTE`, or `SERVERLESS_SQL_COMPUTE` | +| DBU/Hour | Size DBU x clusters | +| Hours/Month | Direct value or run-based calculation | +| Monthly DBUs | DBU/Hour x Hours/Month | +| DBU Cost (List) | At list price | +| DBU Cost (Discounted) | At negotiated rate | +| VM Cost | Classic/Pro: estimated infrastructure; Serverless: $0 | +| Total Cost | DBU Cost + VM Cost | diff --git a/lakemeter/docs-site/docs/user-guide/dlt-pipelines.md b/lakemeter/docs-site/docs/user-guide/dlt-pipelines.md new file mode 100644 index 00000000..0f180fe2 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/dlt-pipelines.md @@ -0,0 +1,206 @@ +--- +sidebar_position: 10 +--- + +# Delta Live Tables (DLT) + +> **Lakemeter UI name:** Lakeflow Spark Declarative Pipelines (SDP) + +Delta Live Tables is Databricks' declarative ETL framework for building reliable, automated data pipelines. Lakemeter supports cost estimation for all three editions -- **Core**, **Pro**, and **Advanced** -- in both **Classic** and **Serverless** modes. + +![Workload configuration in Lakemeter calculator](/img/workload-expanded-config.png) +*Expanding a workload reveals its full configuration — DLT pipelines show edition, cluster size, and Photon settings.* + +## When to use DLT + +Use DLT when you need **managed, declarative data pipelines** with built-in data quality checks, automatic dependency management, and pipeline monitoring. If you just need simple batch jobs without the DLT framework, [Jobs](/user-guide/jobs-compute) is simpler and often cheaper. + +## Real-world example + +> **Scenario:** You are building a real-time streaming pipeline on AWS us-east-1 (Premium tier) that ingests change data from a source database using CDC. The pipeline runs continuously, 24/7. You need the **Pro** edition for CDC support and want a 3-worker cluster with Photon. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | DLT | +| Serverless | Off | +| SDP Edition | Pro | +| Driver Instance Type | m5d.xlarge | +| Worker Instance Type | m5d.xlarge | +| Number of Workers | 3 | +| Photon | On | +| Driver Pricing Tier | On-Demand | +| Worker Pricing Tier | On-Demand | +| Hours Per Month | 730 (24/7) | + +### Step-by-step calculation + +**1. DBU rate per hour** + +``` +DBU/Hour = (Driver DBU + Worker DBU x Workers) x Photon Multiplier + = (1.0 + 1.0 x 3) x 2.9 + = 4.0 x 2.9 + = 11.6 DBU/hour +``` + +:::info Photon multiplier varies by cloud +The Photon multiplier for DLT is **2.9x on AWS** and **2.5x on Azure/GCP**. This example uses the AWS rate. Lakemeter loads the correct multiplier automatically from the pricing bundle. +::: + +**2. Monthly DBUs and cost** + +``` +Monthly DBUs = 11.6 x 730 = 8,468 DBUs +DBU Cost = 8,468 x $0.25/DBU (example DLT Pro Photon rate) = $2,117.00 +``` + +**3. VM cost** + +``` +VM Cost = (Driver $/hr + Worker $/hr x Workers) x Hours/Month + = ($0.192 + $0.192 x 3) x 730 + = $0.768/hr x 730 + = $560.64 +``` + +**4. Total** + +``` +Total = $2,117.00 + $560.64 = $2,677.64/month +``` + +:::note +These are example rates for illustration. Actual $/DBU and VM prices depend on your cloud, region, and pricing tier. Lakemeter loads real rates from the Databricks pricing bundle. +::: + +## Choosing an edition + +| Feature | Core | Pro | Advanced | +|---------|:----:|:---:|:--------:| +| Change Data Capture (CDC) | No | Yes | Yes | +| Advanced monitoring | Basic | Enhanced | Full | +| Data quality expectations | No | No | Yes | + +All editions support pipeline orchestration, auto-scaling, Photon, and Serverless. + +- **Core** -- Simple ETL without CDC. Lowest cost. +- **Pro** -- CDC and enhanced monitoring. Most common choice. +- **Advanced** -- Data quality expectations (assertions). Highest cost. + +:::tip +The edition selector in the UI is labeled **"SDP Edition"** (Spark Declarative Pipelines). Core, Pro, and Advanced correspond to increasing levels of DLT features and pricing. +::: + +## Configuration reference + +### Compute mode + +| Field | Description | Default | +|-------|-------------|---------| +| **Serverless** | Toggle between Classic and Serverless. Requires **Premium** tier or above. | Off | +| **Serverless Mode** | Standard (1x) or Performance (2x). Only shown when Serverless is on. | Standard | + +### Classic mode fields + +| Field | Description | Default | +|-------|-------------|---------| +| **SDP Edition** | Core, Pro, or Advanced. Determines the DLT pricing tier. Hidden when Serverless is on. | Pro | +| **Driver Instance Type** | VM size for the driver | -- (select from list) | +| **Worker Instance Type** | VM size for the workers | -- (select from list) | +| **Number of Workers** | Cluster size | 2 | +| **Photon** | Hardware-accelerated engine (2.9x DBU multiplier on AWS, 2.5x on Azure/GCP) | Off | +| **Driver Pricing Tier** | Spot Instances, On-Demand, 1-Year Reserved, or 3-Year Reserved | On-Demand | +| **Worker Pricing Tier** | Spot Instances, On-Demand, 1-Year Reserved, or 3-Year Reserved | Spot | + +:::tip AWS Reserved Payment Options +When you select a Reserved tier on AWS, an additional **Payment Option** field appears with choices: No Upfront, Partial Upfront, or All Upfront. This field is not shown for Azure or GCP. +::: + +### Usage fields + +DLT supports two input methods: + +**Direct Hours (for continuous pipelines):** + +| Field | Description | Default | +|-------|-------------|---------| +| **Hours Per Month** | Total pipeline uptime | 0 | + +Common values: 730 (24/7 streaming), 176 (business hours), 44 (light usage). + +**Run-Based (for scheduled pipelines):** + +| Field | Description | Default | +|-------|-------------|---------| +| **Runs Per Day** | Pipeline executions per day | 1 | +| **Avg Runtime (minutes)** | Duration per run | 30 | +| **Days Per Month** | Active days | 22 | + +## How costs are calculated + +### Classic + +``` +DBU/Hour = (Driver DBU Rate + Worker DBU Rate x Workers) x Photon Multiplier +DBU Cost = DBU/Hour x Hours/Month x $/DBU +VM Cost = (Driver $/hr + Worker $/hr x Workers) x Hours/Month +Total = DBU Cost + VM Cost +``` + +The $/DBU rate depends on edition and Photon. The Photon multiplier is cloud-specific: **2.9x** on AWS, **2.5x** on Azure/GCP. + +### Serverless + +``` +DBU/Hour = (Driver DBU Rate + Worker DBU Rate x Workers) x Photon Multiplier x Serverless Multiplier +DBU Cost = DBU/Hour x Hours/Month x $/DBU +Total = DBU Cost (no VM costs) +``` + +- Photon is always applied for Serverless. The multiplier is cloud-specific: **2.9x** on AWS, **2.5x** on Azure/GCP. +- **Serverless Multiplier**: 1.0 for Standard, 2.0 for Performance + +:::caution Important +DLT Serverless uses the **`JOBS_SERVERLESS_COMPUTE`** SKU regardless of which edition you selected in Classic mode. This means all DLT Serverless workloads are billed at the same $/DBU rate -- the edition distinction only affects Classic pricing. + +When Serverless is enabled, the edition selector is hidden in the UI because the edition does not affect the Serverless price. +::: + +### SKU mapping + +| Edition | Classic SKU | Classic + Photon SKU | Serverless SKU | +|---------|------------|---------------------|----------------| +| Core | `DLT_CORE_COMPUTE` | `DLT_CORE_COMPUTE_(PHOTON)` | `JOBS_SERVERLESS_COMPUTE` | +| Pro | `DLT_PRO_COMPUTE` | `DLT_PRO_COMPUTE_(PHOTON)` | `JOBS_SERVERLESS_COMPUTE` | +| Advanced | `DLT_ADVANCED_COMPUTE` | `DLT_ADVANCED_COMPUTE_(PHOTON)` | `JOBS_SERVERLESS_COMPUTE` | + +## Tips + +- **DLT Serverless pricing is edition-independent**: All editions use the same Serverless rate. Pick edition based on features, not cost, when using Serverless. +- **Classic edition pricing varies significantly**: Core is cheapest, Advanced most expensive. Stick with Core Classic if you don't need CDC or data quality expectations. +- **Photon for DLT is almost always worth it**: Photon's higher DBU rate (2.9x AWS, 2.5x Azure/GCP) is usually offset by faster execution and fewer total hours billed. +- **Continuous vs scheduled**: Use run-based scheduling for batch pipelines (e.g., 4 runs/day x 15 min). Reserve 730 hours for true streaming. + +## Common mistakes + +- **Choosing Advanced "just in case"**: Advanced costs significantly more in Classic mode. Only choose it if you need data quality expectations. +- **Assuming edition affects Serverless cost**: All DLT Serverless uses `JOBS_SERVERLESS_COMPUTE` pricing. Edition has no effect on Serverless cost. +- **Setting 730 hours for a batch pipeline**: If your pipeline runs 4x/day for 15 min each, that is 22 hrs/month, not 730. Use run-based input. +- **Forgetting the Photon multiplier**: Photon increases DBUs by 2.9x (AWS) or 2.5x (Azure/GCP). Compare total cost, not just DBU rate. + +## Excel export + +Each DLT workload appears as one row in the exported spreadsheet: + +| Column | What it shows | +|--------|--------------| +| Hours/Month | Direct value or calculated from runs/runtime/days | +| DBU/Hour | Based on instance types, workers, and multipliers | +| Monthly DBUs | DBU/Hour x Hours/Month | +| SKU | Edition-specific Classic SKU or `JOBS_SERVERLESS_COMPUTE` | +| DBU Cost (List) | At list price | +| DBU Cost (Discounted) | At negotiated rate | +| VM Cost | Classic: driver + workers; Serverless: $0 | +| Total Cost | DBU Cost + VM Cost | diff --git a/lakemeter/docs-site/docs/user-guide/end-to-end-workflow.md b/lakemeter/docs-site/docs/user-guide/end-to-end-workflow.md new file mode 100644 index 00000000..eaf13141 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/end-to-end-workflow.md @@ -0,0 +1,160 @@ +--- +sidebar_position: 3 +--- + +# End-to-End Workflow + +This guide covers the complete Lakemeter workflow from creating an estimate to interpreting the exported Excel report. Follow this when you need to produce a cost estimate for a customer proposal, internal planning exercise, or vendor comparison. + +## Video walkthrough + + + +*Full walkthrough: create an estimate, add workloads, configure compute and usage, review costs, and export the report.* + +## Overview + +``` +Create Estimate → Add Workloads → Configure Each Workload → Review Costs → Export Excel → Interpret Report +``` + +![Lakemeter home page with estimates list](/img/home-page.png) +*Start from the Lakemeter home page — click **New Estimate** to begin building a cost estimate.* + +## 1. Plan your estimate + +Before opening Lakemeter, decide: + +- **Cloud provider** -- AWS, Azure, or GCP. This determines available regions, instance types, and pricing. +- **Region** -- Where the Databricks workspace will run. Pricing varies by region. +- **Pricing tier** -- Standard, Premium, or Enterprise. This affects DBU rates and which workload types are available. + +| Tier | Available Workloads | Typical Use | +|------|-------------------|-------------| +| **Standard** | Jobs, All-Purpose, DLT, DBSQL (Classic, Pro) | Basic data engineering | +| **Premium** | All Standard + DBSQL Serverless, Model Serving, Vector Search, FMAPI, Lakebase | Most production deployments | +| **Enterprise** | Same as Premium with enhanced SLAs | Large-scale, regulated workloads | + +:::caution +Once you add workloads to an estimate, you cannot change its cloud provider. Choose carefully, or create separate estimates for multi-cloud comparisons. +::: + +## 2. Create the estimate + +1. Click **New Estimate** from the home page. +2. Enter a descriptive name (e.g., "Acme Corp - AWS us-east-1 Premium"). +3. Select your cloud, region, and tier. +4. Click **Create**. + +You are taken to the Calculator page. + +## 3. Add and configure workloads + +Click **Add Workload** for each Databricks service in your architecture. For each workload: + +1. **Choose the workload type.** See the [Quick Reference](/user-guide/quick-reference) if you are unsure which type to use. +2. **Name it descriptively.** Use names like "Nightly ETL Pipeline" or "Analyst SQL Warehouse" -- not "Workload 1". +3. **Configure compute.** For classic workloads (Jobs, All-Purpose, DLT), select instance types and worker count. For serverless or managed services (DBSQL Serverless, Model Serving, Vector Search), choose the size or capacity tier. +4. **Set usage patterns.** Enter how much the workload runs: + - Jobs: runs per day, average runtime in minutes, days per month + - All-Purpose: hours per month + - DBSQL: hours per month + - Always-on services (Model Serving, Vector Search): default is 730 hrs/month (24/7) + - FMAPI: token quantity in millions +5. **Choose pricing options.** For classic compute, pick between on-demand, spot, or reserved (1-year/3-year) pricing for driver and worker nodes. +6. **Add notes** (optional). Use the notes field to document why you chose a particular configuration -- useful when reviewing the estimate later or sharing with others. + +Costs update in real-time as you adjust parameters. + +:::tip +**Use the AI Assistant** to speed up configuration. Open the chat panel and describe your workload: "I need a DLT pipeline processing 500GB daily with Pro edition." The assistant proposes a workload configuration you can accept, modify, or reject. +::: + +## 4. Review the cost breakdown + +The Calculator page displays: + +- **Per-workload costs** -- Monthly cost for each workload, broken down into DBU costs and VM infrastructure costs (where applicable). +- **Total estimate** -- Sum of all workloads displayed at the top. +- **DBU consumption** -- Total Databricks Units consumed per month by each workload. + +**Understanding the cost components:** + +| Component | Applies to | What it is | +|-----------|-----------|------------| +| **DBU cost** | All workloads | Databricks Units consumed x $/DBU rate. The rate depends on your cloud, region, tier, and workload type. | +| **VM cost** | Classic compute only (Jobs, All-Purpose, DLT, DBSQL Classic/Pro) | Cloud infrastructure cost for driver and worker VMs. Not applicable to serverless workloads. | +| **Token cost** | FMAPI workloads | Cost per million input/output tokens for foundation model API calls. | +| **Storage cost** | Lakebase, Vector Search | Storage capacity costs beyond the compute/DBU component. | + +### Quick cost optimization checks + +- **Spot pricing** on workers can reduce VM costs by 60-90% for fault-tolerant Jobs workloads. +- **Reserved instances** (1yr or 3yr) lower VM costs for always-on workloads like DBSQL warehouses. +- **Serverless** eliminates VM costs entirely -- the infrastructure cost is bundled into a higher DBU rate. Compare total cost, not just DBU rate. +- **Photon** doubles the DBU rate but often halves the runtime for compatible workloads. Check whether the faster execution offsets the higher per-hour cost. + +## 5. Export to Excel + +1. Click the **Export** button (download icon) at the top of the Calculator page. +2. The file downloads as `Databricks_Estimate_{name}_{date}.xlsx`. + +You can also export all your estimates at once from the home page using the bulk export option. + +## 6. Interpret the Excel report + +The exported spreadsheet contains several sections: + +### Header + +The estimate name, cloud provider, region, pricing tier, status, version, and timestamps. + +### Workload table + +One row per workload with columns for: + +| Column | Description | +|--------|-------------| +| Workload Name | The name you assigned | +| Type | Workload type (Jobs, DBSQL, etc.) | +| Config | Key configuration summary (instance types, warehouse size, etc.) | +| SKU | The specific Databricks SKU used for pricing | +| Driver / Workers | Instance types and worker count | +| Hours/Month | Total compute hours | +| Token Type / Qty | For FMAPI: input/output tokens in millions | +| DBU/hr | Databricks Units consumed per hour | +| Total DBUs/Month | DBU/hr x hours/month | +| $/DBU | Price per Databricks Unit | +| VM $/hr | Combined VM cost per hour (driver + workers) | +| Total Cost | Monthly cost for this workload | +| Notes | Configuration notes and any pricing warnings | + +### Summary section + +- **Total monthly cost** across all workloads +- **DBU breakdown** by SKU type (e.g., JOBS_COMPUTE, SERVERLESS_SQL_COMPUTE) +- **Assumptions** explaining the pricing basis and disclaimers + +### How to use the report + +| Use case | What to focus on | +|----------|-----------------| +| **Customer proposal / RFP** | Total cost, workload table, assumptions section | +| **Internal budget planning** | Total cost, DBU breakdown for chargeback allocation | +| **Vendor comparison** | Duplicate the estimate for each cloud/region, export both, compare total costs | +| **Architecture review** | Workload table configuration details, notes column | + +## 7. Iterate and refine + +Estimates are living documents. Common iteration patterns: + +- **Duplicate** the estimate to create a "what-if" scenario (e.g., "What if we use serverless instead of classic?") +- **Adjust usage patterns** as you learn more about actual workload behavior +- **Add workloads** as the project scope grows +- **Change pricing options** to model the impact of reserved capacity commitments +- **Re-export** after changes to get an updated report + +Each save increments the estimate's version number, so you can track how the estimate evolved over time. diff --git a/lakemeter/docs-site/docs/user-guide/exporting.md b/lakemeter/docs-site/docs/user-guide/exporting.md new file mode 100644 index 00000000..4beefa02 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/exporting.md @@ -0,0 +1,126 @@ +--- +sidebar_position: 6 +--- + +# Exporting to Excel + +Lakemeter exports your estimates to professionally formatted Excel spreadsheets — ready for RFP responses, procurement reviews, internal planning, or vendor comparisons. + +![Export guide documentation page](/img/guides/export-guide.png) +*The Export guide — single and bulk export workflows with file naming conventions.* + +![Excel spreadsheet structure](/img/guides/export-excel-structure.png) +*Detailed breakdown of the Excel export: header, workload table, cost summary, legend, and assumptions.* + +![Exporting an estimate to Excel — click Export, download completes](/img/gifs/export-excel.gif) +*Animated: exporting an estimate — click the Export button and the Excel file downloads automatically.* + +## How to Export + +### Single Estimate + +1. Open the estimate you want to export +2. Click the **Export** button (download arrow icon) in the top bar +3. An `.xlsx` file downloads automatically + +**File name format:** `Databricks_Estimate_{estimate_name}_{YYYYMMDD}.xlsx` + +### Bulk Export (All Estimates) + +From the Estimates list page, click the **Export All** button to download a summary spreadsheet containing all your estimates in one file. This creates an "All Estimates" sheet with each estimate's name, cloud, region, tier, status, and dates. + +## What's in the Excel File + +The exported spreadsheet contains a single sheet called "Databricks Estimate" with several sections: + +### 1. Header + +The top rows display your estimate metadata: +- Estimate name, cloud provider, region, and pricing tier +- Status and version number +- Created and last-updated dates + +### 2. Workloads Table (30 Columns) + +Each workload in your estimate becomes one row (or two rows for workloads with separate storage costs). The columns are grouped by purpose: + +| Group | Columns | What's there | +|-------|---------|-------------| +| **Identity** | Workload Name, Type, Mode, Configuration, SKU | What this workload is and how it's configured | +| **VM Configuration** | Driver Instance, Worker Instance, # Workers, Pricing Tiers | Instance types and cluster shape (Classic only) | +| **Usage** | Hours/Month | How much this workload runs — calculated from runs/day or entered directly | +| **Token Configuration** | Rate Type, Tokens/Month (M), DBU per 1M Tokens | For FMAPI workloads: token volumes and rates | +| **DBU Costs** | DBU/Hour, Monthly DBUs, List Rate, Discount %, Discounted Rate, List Cost, Discounted Cost | The core Databricks billing — all formula-based | +| **VM Costs** | Driver $/hr, Worker $/hr, Driver VM Cost, Worker VM Cost, Total VM Cost | Infrastructure costs for Classic compute (zero for Serverless) | +| **Totals** | Total Cost (List), Total Cost (Discounted) | Combined DBU + VM costs at list and discounted rates | +| **Notes** | Notes | Workload-specific details (e.g., "Photon enabled", "Storage Optimized") | + +:::info Key Detail +All cost cells use **Excel formulas**, not static values. If you change an input (like discount percentage), the costs recalculate automatically in Excel. +::: + +### 3. Multi-Row Workloads + +Two workload types produce **two rows** in the export: + +- **Lakebase** — Row 1: compute costs (DBU-based), Row 2: storage costs (DSU-based, direct dollar amount) +- **Vector Search** — Row 1: compute costs, Row 2: storage costs (if storage GB > 0) + +The totals row at the bottom uses `SUM` formulas that include both compute and storage sub-rows. + +### 4. Cost Summary + +Below the workloads table, a summary section shows: +- Monthly and annual totals for DBU costs, VM costs, and combined total +- Totals at both list price and discounted price + +### 5. Legend + +A color-coded legend explaining the column groups: +- **Blue** — DBU-related costs (Databricks compute units) +- **Cyan** — Token-based pricing (FMAPI workloads) +- **Pink** — Discount pricing (discounted DBU rate and cost) +- **Green** — VM infrastructure costs (cloud provider) +- **Purple** — Total cost (DBU + VM combined) + +Orange headers are used for general workload identity columns (name, type, configuration, SKU, notes) but are not listed in the legend section. + +### 6. Assumptions & Notes + +The bottom section documents: +- That all pricing uses Databricks list rates +- DBU rate source and lookup method +- How discount percentages are applied +- Export timestamp + +## Formatting + +The exported file includes professional formatting: +- **Color-coded column headers** matching the legend colors +- **Frozen panes** — the header row and first two columns stay visible when scrolling +- **Currency formatting** — all dollar amounts formatted as `$#,##0.00` +- **Percentage formatting** — discount column formatted as `0%` +- **Auto-sized columns** — widths adjust to content +- **Landscape orientation** — fits on standard paper for printing +- **Borders** — light grid lines for readability + +## Common Use Cases + +### RFP Response +Export your estimate to attach to a Request for Proposal. The professional formatting and complete cost breakdown make it ready for procurement teams. Adjust the discount percentage column to reflect your negotiated rates. + +### Internal Planning +Use the export to share cost projections with stakeholders who don't have Lakemeter access. The formula-based cells let finance teams adjust assumptions (hours, discounts) directly in Excel. + +### Vendor Comparison +Create separate estimates for different configurations (e.g., Classic vs Serverless, different instance types) and export both. Compare them side-by-side in Excel to find the most cost-effective option. + +### Cost Modeling +Since all cells use formulas, you can build additional analysis on top of the export — add growth projections, what-if scenarios, or integrate it into a larger financial model. + +## Tips + +- Export **after** finalizing your estimate — the file reflects the exact state at download time +- The **discount percentage** column is editable in Excel. Set it to your negotiated rate and all costs recalculate +- For FMAPI workloads, the token configuration columns show your volume assumptions — adjust these for different usage scenarios +- Lakebase and Vector Search storage costs appear on separate rows. Make sure to include both rows when referencing total costs diff --git a/lakemeter/docs-site/docs/user-guide/faq.md b/lakemeter/docs-site/docs/user-guide/faq.md new file mode 100644 index 00000000..3ea9671b --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/faq.md @@ -0,0 +1,101 @@ +--- +sidebar_position: 10 +--- + +# Frequently Asked Questions + +![FAQ documentation page](/img/guides/faq-guide.png) +*The FAQ page — answers to the most common questions about Lakemeter, organized by topic.* + +![Workload decision table](/img/guides/faq-workload-table.png) +*Quick reference table for choosing the right workload type.* + +## General + +### What is Lakemeter? + +Lakemeter is a cost estimation tool for the Databricks platform. It lets you model workloads across 12 Databricks product types (Jobs, DBSQL, DLT, Model Serving, Vector Search, FMAPI, Lakebase, Databricks Apps, AI Parse, Shutterstock ImageAI, and more), calculate monthly and annual costs based on real Databricks pricing data, and export professional Excel reports for procurement or planning. + +### How accurate are the cost estimates? + +Lakemeter uses DBU rates and instance pricing pulled directly from Databricks reference tables. The calculations match the formulas Databricks uses for billing. However, actual costs may differ due to committed-use discounts, spot pricing fluctuations, auto-scaling behavior, and usage patterns that deviate from your modeled assumptions. Always verify critical estimates against the [official Databricks pricing page](https://www.databricks.com/product/pricing). + +### Is Lakemeter an official Databricks product? + +No. Lakemeter is an internal field engineering tool built on Databricks Apps. It is not an officially supported Databricks product. + +## Configuration + +### What do Cloud, Region, and Tier mean? + +- **Cloud** — The cloud provider (AWS, Azure, or GCP). Each has different instance types and VM pricing. +- **Region** — The cloud region (e.g., `us-east-1`). DBU rates can vary by region for some SKUs. +- **Tier** — The Databricks pricing tier: **Standard**, **Premium**, or **Enterprise**. Standard tier only supports Classic compute workloads. Premium and Enterprise unlock Serverless, SQL Pro, Vector Search, FMAPI, and other advanced features. + +See the [Getting Started](./getting-started) guide for how to set these when creating an estimate. + +### Which workload type should I choose? + +| If you're estimating... | Use this workload type | +|------------------------|----------------------| +| Batch ETL, scheduled Spark jobs | [Jobs Compute](./jobs-compute) | +| Interactive notebooks, development clusters | [All-Purpose Compute](./all-purpose-compute) | +| Streaming or declarative ETL pipelines | [DLT Pipelines](./dlt-pipelines) | +| BI dashboards, ad-hoc SQL queries | [DBSQL Warehouses](./dbsql-warehouses) | +| Real-time ML inference with GPUs | [Model Serving](./model-serving) | +| Similarity search, embeddings storage | [Vector Search](./vector-search) | +| LLM inference (Llama, DBRX, etc.) | [FMAPI — Databricks](./fmapi-databricks) | +| LLM inference (Claude, GPT, Gemini) | [FMAPI — Proprietary](./fmapi-proprietary) | +| Managed PostgreSQL database | [Lakebase](./lakebase) | +| Hosting a web app on Databricks | Databricks Apps | +| Parsing documents with AI | AI Parse (Document AI) | +| Generating images with AI | Shutterstock ImageAI | + +### What's the difference between Classic and Serverless? + +**Classic** compute means you specify the exact instance types (e.g., `i3.xlarge`) and pay for both DBU consumption and VM infrastructure separately. You have full control over cluster configuration. + +**Serverless** compute means Databricks manages the infrastructure. You pay only for DBUs at a higher per-DBU rate, but there are no separate VM costs and no cluster startup time. Whether Serverless is cheaper depends on the workload — it excels for burst or low-utilization patterns, but sustained high-utilization workloads may cost less on Classic. See the [Classic vs Serverless comparison](./calculation-reference#worked-example-4-classic-vs-serverless-comparison) for a detailed cost breakdown. + +## AI Assistant + +### What can the AI assistant do? + +The assistant can create fully configured workloads from a natural language description, analyze your existing estimate for cost optimization opportunities, suggest complete multi-workload architectures for common patterns (like RAG chatbots), and answer general Databricks pricing questions. See the [AI Assistant guide](./ai-assistant) for conversation examples. + +### Can the AI assistant modify my existing workloads? + +The assistant can propose **new** workloads and can analyze your existing ones, but it cannot directly edit workloads you've already created. To modify an existing workload, use the workload form in the UI. + +## Export & Pricing + +### What format does the export use? + +Lakemeter exports to `.xlsx` (Excel) format. The file includes formula-based cells, color-coded headers, frozen panes, and a cost summary section. You can open it in Excel, Google Sheets, or any spreadsheet application. See the [Exporting guide](./exporting) for full details. + +### Can I apply my negotiated discount? + +Yes. Each workload row in the Excel export has a **Discount %** column. Enter your negotiated discount rate and all cost cells recalculate automatically using Excel formulas. You can also set different discounts per workload. + +### Why do some workloads show two rows in the export? + +**Lakebase** and **Vector Search** can produce two rows — one for compute costs (DBU-based) and one for storage costs (direct dollar amount). Both rows are included in the totals. See the [Exporting guide](./exporting#3-multi-row-workloads) for details. + +### How are DBU rates determined? + +Lakemeter uses DBU rates from Databricks reference pricing tables, loaded at deployment time. The rate depends on three factors: the **SKU** (product type, like `JOBS_COMPUTE` or `SERVERLESS_SQL_COMPUTE`), the **cloud region**, and the **pricing tier**. See the [Calculation Reference](./calculation-reference) for the exact formulas and rate tables. + +## Troubleshooting + +### A workload type is grayed out — why? + +Some workload types are only available on **Premium** or **Enterprise** tiers. If you selected the Standard tier for your estimate, workloads like DBSQL Serverless, Vector Search, FMAPI, Model Serving, Databricks Apps, AI Parse, and Shutterstock ImageAI will be disabled. Change your estimate's tier to Premium or Enterprise to unlock them. + +### The cost seems too high or too low — what should I check? + +Common things to verify: +1. **Hours/Month** — 730 means 24/7 operation. For business-hours-only usage, ~176 hours (8 hrs × 22 days) is more realistic. +2. **Number of workers** — Each worker multiplies both DBU and VM costs. +3. **Photon** — Increases the DBU rate by a multiplier that depends on the workload type and cloud provider (2.9x for Jobs/DLT on AWS, 2.5x on Azure/GCP, 2.0x for All-Purpose). Make sure it's enabled only if you plan to use it. +4. **Serverless vs Classic** — Serverless has no VM costs but higher DBU rates. Classic has both. +5. **Discount** — The export shows list prices by default. Apply your discount in the Excel file. diff --git a/lakemeter/docs-site/docs/user-guide/fmapi-databricks.md b/lakemeter/docs-site/docs/user-guide/fmapi-databricks.md new file mode 100644 index 00000000..d1a9d758 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/fmapi-databricks.md @@ -0,0 +1,207 @@ +--- +sidebar_position: 13 +--- + +# FMAPI — Databricks Models + +> **Lakemeter UI name:** FMAPI - Databricks + +Foundation Model APIs (FMAPI) let you access open-source models hosted by Databricks -- such as Llama, DBRX, Gemma, and embedding models -- through pay-per-token or provisioned-throughput pricing. Unlike compute workloads, FMAPI pricing is based on **token volume** or **reserved throughput capacity**, not compute hours. + +![FMAPI Databricks documentation page](/img/guides/fmapi-databricks-guide.png) +*The FMAPI Databricks guide — token-based and provisioned throughput pricing with worked cost examples.* + +![FMAPI Databricks worked cost example](/img/guides/fmapi-databricks-worked-example.png) +*Worked example showing input/output token costs and provisioned throughput comparison.* + +## When to use FMAPI Databricks + +Use FMAPI Databricks when you want to call **open-source models hosted on Databricks** without managing your own serving infrastructure. This includes LLMs (Llama, DBRX, Gemma, GPT-OSS) and embedding models (BGE, GTE). If you need commercial models from Anthropic, OpenAI, or Google, see [FMAPI — Proprietary Models](/user-guide/fmapi-proprietary) instead. If you are deploying your own custom model, see [Model Serving](/user-guide/model-serving). + +## Real-world example + +> **Scenario:** You are building a customer support chatbot on AWS us-east-1 (Premium tier) using Llama 3.3 70B. Based on your projected traffic, you estimate 50 million input tokens and 10 million output tokens per month. You want to estimate the pay-per-token cost. + +### Configuration (input tokens) + +| Field | Value | +|-------|-------| +| Workload Type | FMAPI Databricks | +| Model | Llama 3.3 70B | +| Rate Type | Input Token | +| Quantity (Millions) | 50 | + +### Configuration (output tokens) + +| Field | Value | +|-------|-------| +| Workload Type | FMAPI Databricks | +| Model | Llama 3.3 70B | +| Rate Type | Output Token | +| Quantity (Millions) | 10 | + +:::info +Each rate type (input token, output token) is a **separate line item** in Lakemeter. Add one workload entry for input tokens and another for output tokens. +::: + +### Step-by-step calculation + +**1. Input token cost** + +``` +Monthly DBUs = Quantity (millions) x DBU per 1M Tokens + = 50 x 7.143 + = 357.15 DBUs +DBU Cost = 357.15 x $0.07/DBU = $25.00 +``` + +**2. Output token cost** + +``` +Monthly DBUs = 10 x 21.429 = 214.29 DBUs +DBU Cost = 214.29 x $0.07/DBU = $15.00 +``` + +**3. Total monthly cost** + +``` +Total = Input Cost + Output Cost = $25.00 + $15.00 = $40.00/month +``` + +:::note +These are example rates for illustration using Llama 3.3 70B on AWS. Actual rates depend on the model and cloud. Output tokens always cost more than input tokens because generation is more compute-intensive. +::: + +### What about provisioned throughput? + +If you need guaranteed capacity for consistent high-throughput usage, you can reserve a provisioned endpoint. For Llama 3.3 70B with provisioned_scaling at 730 hours/month: + +``` +DBU/Hour = 342.857 (provisioned_scaling rate) +Monthly DBUs = 342.857 x 730 = 250,285.6 DBUs +DBU Cost = 250,285.6 x $0.07 = $17,520.00/month +``` + +Provisioned throughput is significantly more expensive but guarantees capacity. Use pay-per-token for variable workloads and provisioned for consistent, high-volume production traffic. + +## Supported models + +Lakemeter includes pricing data for all Databricks-hosted foundation models, loaded from the pricing bundle: + +| Category | Models | +|----------|--------| +| **Large Language Models** | Llama 4 Maverick, Llama 3.3 70B, Llama 3.1 8B, Llama 3.2 3B, Llama 3.2 1B, GPT-OSS 120B, GPT-OSS 20B, Gemma 3 12B | +| **Embedding Models** | BGE Large, GTE | + +:::tip +The model list updates with each pricing bundle release. If a model is missing, Lakemeter uses fallback rates so you can still generate estimates. +::: + +## Rate types + +| Rate Type | Category | Unit | Description | +|-----------|----------|------|-------------| +| `input_token` | Pay-Per-Token | DBU per 1M tokens | Tokens sent to the model (prompts, context) | +| `output_token` | Pay-Per-Token | DBU per 1M tokens | Tokens generated by the model (completions) | +| `provisioned_scaling` | Provisioned | DBU per hour | Reserved throughput (scaling tier) | +| `provisioned_entry` | Provisioned | DBU per hour | Reserved throughput (entry tier, lower cost) | + +### Pay-Per-Token vs Provisioned + +**Pay-Per-Token**: Best for variable or unpredictable workloads. You pay based on actual token volume processed. + +**Provisioned Throughput**: Best for consistent, high-throughput production workloads. You reserve fixed capacity and pay by the hour, regardless of actual token usage. Entry tier is cheaper; scaling tier provides higher throughput. + +:::info Key rate relationships +- **Output tokens always cost more than input tokens** for all models (generation requires more compute) +- **`provisioned_entry` is always cheaper than `provisioned_scaling`** (lower throughput tier) +- **Rates are identical across clouds** for most models, with occasional exceptions (e.g., GCP Llama 3.1 8B provisioned rates differ) +::: + +## Configuration reference + +| Field | Description | Default | +|-------|-------------|---------| +| **Model** | The Databricks-hosted model name | — (select from list) | +| **Rate Type** | Token direction or provisioned tier | Input Token | +| **Quantity** | Volume -- millions of tokens/month (token-based) or hours/month (provisioned) | — | + +### Rate type groups in the UI + +The UI groups rate types into two categories in the dropdown: + +| Group | Rate Types | +|-------|------------| +| **Token-based** | `input_token`, `output_token` | +| **Provisioned** | `provisioned_scaling`, `provisioned_entry` | + +## How costs are calculated + +### Token-based pricing + +``` +Monthly DBUs = Quantity (millions) x DBU per 1M Tokens +DBU Cost = Monthly DBUs x $/DBU +Total Cost = DBU Cost (no VM costs — always serverless) +``` + +### Provisioned pricing + +``` +Monthly DBUs = Hours x DBU per Hour +DBU Cost = Monthly DBUs x $/DBU +Total Cost = DBU Cost (no VM costs — always serverless) +``` + +### Fallback behavior + +When a model/rate_type is not found in the pricing bundle: + +| Component | Token fallback | Provisioned scaling fallback | Provisioned entry fallback | +|-----------|---------------|-----------------------------|-----------------------------| +| **Frontend** | 1.0 DBU/1M (input), 3.0 DBU/1M (output) | 200 DBU/hr | 50 DBU/hr | +| **Backend** | 0 DBU | 0 DBU/hr | 0 DBU/hr | + +The frontend provides defaults so you always see a non-zero estimate. The backend returns 0 for unknown models to avoid incorrect Excel exports. + +### SKU mapping + +| Workload | SKU | Fallback $/DBU | +|----------|-----|----------------| +| FMAPI Databricks (all models, all rate types) | `SERVERLESS_REAL_TIME_INFERENCE` | $0.07 | + +## Tips + +- **Pay-per-token for prototyping**: Start with pay-per-token to understand your actual usage patterns. Switch to provisioned only when you have consistent, high-volume production traffic. +- **Estimate both input and output**: Always add separate line items for input and output tokens. Output tokens cost 2-5x more than input, so underestimating output volume significantly understates cost. +- **Embedding models are cheap**: BGE Large and GTE only use input tokens (no output). They are significantly cheaper than LLMs per million tokens. +- **Compare open-source vs proprietary**: FMAPI Databricks models (Llama, DBRX) are much cheaper per token than proprietary models (Claude, GPT). Consider whether an open-source model meets your quality requirements. + +## Common mistakes + +- **Using provisioned for variable workloads**: Provisioned throughput charges by the hour regardless of usage. If your traffic is bursty (high during business hours, zero at night), pay-per-token is usually cheaper. +- **Forgetting output tokens are more expensive**: If you expect 50M input tokens, your output volume might be 10-20M tokens -- but at 3x the rate, output can dominate total cost. +- **Comparing $/DBU with compute workloads**: FMAPI uses the same `SERVERLESS_REAL_TIME_INFERENCE` SKU at $0.07/DBU as Model Serving. The cost difference is in how many DBUs each token or hour generates. +- **Treating provisioned entry as "free tier"**: Provisioned entry is a paid tier with dedicated capacity -- it is not a free tier. It offers lower throughput at a lower per-hour rate than provisioned scaling. + +## Excel export + +FMAPI Databricks workloads export as a single row per line item. The formula depends on rate type: + +| Column | Token-based | Provisioned | +|--------|-------------|-------------| +| Configuration | Model name + rate type | Model name + rate type | +| Mode | Serverless (always) | Serverless (always) | +| SKU | `SERVERLESS_REAL_TIME_INFERENCE` | `SERVERLESS_REAL_TIME_INFERENCE` | +| Token Type | Rate type label | Rate type label | +| Tokens/Mo in Millions | Quantity | — | +| DBU per 1M Tokens | DBU rate | — | +| DBU/Hour | — | DBU rate | +| Monthly DBUs | Quantity x DBU/1M | DBU/Hr x Hours | +| DBU Cost | Monthly DBUs x $/DBU | Monthly DBUs x $/DBU | +| VM Cost | $0 | $0 | +| Total Cost | DBU Cost | DBU Cost | + +:::caution +When auditing an exported spreadsheet, verify you are reading the correct formula for the rate type. Token-based rows multiply Tokens/Mo x DBU/1M. Provisioned rows multiply DBU/Hr x Hours/Mo. The columns are different. +::: diff --git a/lakemeter/docs-site/docs/user-guide/fmapi-proprietary.md b/lakemeter/docs-site/docs/user-guide/fmapi-proprietary.md new file mode 100644 index 00000000..6e07b2db --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/fmapi-proprietary.md @@ -0,0 +1,219 @@ +--- +sidebar_position: 15 +--- + +# FMAPI — Proprietary Models + +> **Lakemeter UI name:** FMAPI - Proprietary + +FMAPI for proprietary models lets you access commercial LLMs -- Claude (Anthropic), GPT (OpenAI), and Gemini (Google) -- through Databricks with pay-per-token pricing. Unlike Databricks-hosted open-source models, proprietary model pricing varies significantly by **provider**, **model**, **endpoint type**, and **context length**. + +![FMAPI Proprietary documentation page](/img/guides/fmapi-proprietary-guide.png) +*The FMAPI Proprietary guide — provider/model selection, endpoint types, context lengths, and cache read/write rates.* + +![FMAPI Proprietary worked cost example](/img/guides/fmapi-proprietary-worked-example.png) +*Worked example showing Claude Sonnet 4.5 token costs with global vs in-geo endpoint comparison.* + +## When to use FMAPI Proprietary + +Use FMAPI Proprietary when you want to call **commercial LLMs through Databricks** rather than directly through the provider's API. Databricks routes the requests and bills through your Databricks account using DBUs. If you need open-source models (Llama, DBRX, BGE), see [FMAPI — Databricks Models](/user-guide/fmapi-databricks) instead. + +## Real-world example + +> **Scenario:** You are building an AI-powered document analysis feature on AWS us-east-1 (Premium tier) using Claude Sonnet 4.5. Your users submit documents averaging 5,000 tokens each, and the model generates 1,000-token summaries. You estimate 5 million input tokens and 1 million output tokens per month. You will use the global endpoint with long context. + +### Configuration (input tokens) + +| Field | Value | +|-------|-------| +| Workload Type | FMAPI Proprietary | +| Provider | Anthropic | +| Model | Claude Sonnet 4.5 | +| Endpoint Type | Global | +| Context Length | Long | +| Rate Type | Input Token | +| Quantity (Millions) | 5 | + +### Configuration (output tokens) + +| Field | Value | +|-------|-------| +| Workload Type | FMAPI Proprietary | +| Provider | Anthropic | +| Model | Claude Sonnet 4.5 | +| Endpoint Type | Global | +| Context Length | Long | +| Rate Type | Output Token | +| Quantity (Millions) | 1 | + +:::info +Each rate type is a **separate line item**. Add one for input tokens and another for output tokens. If using prompt caching, add additional line items for Cache Read and Cache Write. +::: + +### Step-by-step calculation + +**1. Input token cost** + +``` +Monthly DBUs = Quantity (millions) x DBU per 1M Tokens + = 5 x 85.714 + = 428.57 DBUs +DBU Cost = 428.57 x $0.07/DBU = $30.00 +``` + +**2. Output token cost** + +``` +Monthly DBUs = 1 x 321.429 = 321.429 DBUs +DBU Cost = 321.429 x $0.07/DBU = $22.50 +``` + +**3. Total monthly cost** + +``` +Total = Input Cost + Output Cost = $30.00 + $22.50 = $52.50/month +``` + +:::note +These are example rates for Claude Sonnet 4.5 on AWS with global endpoint and long context. Actual rates depend on the model, provider, endpoint type, and context length. Lakemeter loads real rates from the pricing bundle. +::: + +### How does endpoint type affect cost? + +The same model with in-geo (regional) endpoint costs more: + +``` +Input: 5 x 94.285 x $0.07 = $33.00 (vs $30.00 for global) +Output: 1 x 353.572 x $0.07 = $24.75 (vs $22.50 for global) +Total: $57.75/month (vs $52.50 for global) +``` + +In-geo routes requests to a specific geographic region for data residency compliance. It costs ~10% more than global. + +### How does context length affect cost? + +Short context is cheaper than long context for the same model: + +``` +Input (short): 5 x 42.857 x $0.07 = $15.00 (vs $30.00 for long) +Output (short): 1 x 214.286 x $0.07 = $15.00 (vs $22.50 for long) +Total (short): $30.00/month (vs $52.50 for long) +``` + +Short context uses a smaller context window. If your prompts are under the short context limit, this is a significant cost saving. + +## Supported providers and models + +| Provider | Models | +|----------|--------| +| **Anthropic** | Claude Sonnet 3.7, Claude Sonnet 4, Claude Sonnet 4.1, Claude Sonnet 4.5, Claude Opus 4, Claude Opus 4.1, Claude Opus 4.5, Claude Haiku 4.5 | +| **OpenAI** | GPT-5, GPT-5.1, GPT-5 Mini, GPT-5 Nano | +| **Google** | Gemini 2.5 Flash, Gemini 2.5 Pro | + +## Configuration reference + +| Field | Description | Options | Default | +|-------|-------------|---------|---------| +| **Provider** | The commercial LLM provider | Anthropic, OpenAI, Google | Anthropic | +| **Model** | Specific model variant (filtered by provider) | See table above | First model in list | +| **Endpoint Type** | How requests are routed | Global, In-Geo (Regional) | Global | +| **Context Length** | Context window size tier | All, Short, Long | Long | +| **Rate Type** | Token direction | Input Token, Output Token | Input Token | +| **Quantity (Millions)** | Monthly token volume in millions | Any positive number | — | + +### Endpoint types + +| Type | Description | Cost | +|------|-------------|------| +| **Global** | Requests routed to nearest available region | Lower | +| **In-Geo (Regional)** | Requests stay within a specific geographic region | ~10% higher | + +Use In-Geo when you have data residency requirements (e.g., data must stay in EU). Use Global for the lowest cost. + +### Context lengths + +| Length | Description | Cost | +|--------|-------------|------| +| **Long** | Extended context window (default) | Higher | +| **Short** | Reduced context window | Lower (~50% less) | +| **All** | Standard context window — rate varies by model | Varies | + +Short context is significantly cheaper (often 50% less) than long context. Use short when your prompts fit within the shorter window. Not all models support all context lengths — Lakemeter automatically filters available options based on the selected model. + +## Rate types + +| Rate Type | Unit | Description | +|-----------|------|-------------| +| `input_token` | DBU per 1M tokens | Tokens sent to the model (prompts, documents, context) | +| `output_token` | DBU per 1M tokens | Tokens generated by the model (completions, summaries) | +| `cache_read` | DBU per 1M tokens | Reading from prompt cache (cheaper than input tokens for repeated context) | +| `cache_write` | DBU per 1M tokens | Writing to prompt cache (initial cost to cache context for reuse) | + +:::tip Prompt caching +Cache Read and Cache Write rate types are available for models that support prompt caching. If you repeatedly send the same system prompt or context, caching can significantly reduce costs -- Cache Read rates are typically much lower than Input Token rates. Add separate line items for each rate type you plan to use. +::: + +:::info No provisioned pricing +Unlike FMAPI Databricks, proprietary models **do not offer provisioned throughput**. All pricing is pay-per-token. +::: + +## How costs are calculated + +``` +Monthly DBUs = Quantity (millions) x DBU per 1M Tokens +DBU Cost = Monthly DBUs x $/DBU +Total Cost = DBU Cost (no VM costs — always serverless) +``` + +The DBU per 1M tokens rate depends on the combination of: cloud + provider + model + endpoint type + context length + rate type. Lakemeter looks up the exact rate from the pricing bundle. + +### Fallback behavior + +When a specific combination is not found in the pricing bundle: + +| Component | Input fallback | Output fallback | +|-----------|---------------|-----------------| +| **Frontend** | 21.43 DBU/1M | 321.43 DBU/1M | +| **Backend** | 0 DBU | 0 DBU | + +### SKU mapping + +Proprietary models use provider-specific SKUs: + +| Provider | SKU | +|----------|-----| +| Anthropic | `ANTHROPIC_MODEL_SERVING` | +| OpenAI | `OPENAI_MODEL_SERVING` | +| Google | `GOOGLE_MODEL_SERVING` | + +## Tips + +- **Compare providers for your use case**: Claude excels at long-context analysis, GPT at general-purpose tasks, and Gemini at multimodal workloads. Choose based on capability, then estimate cost. +- **Use short context when possible**: Short context rates are often 50% cheaper. If your prompts are consistently under the short context limit, this is the biggest cost lever. +- **Global endpoint is cheaper**: Unless you have regulatory data residency requirements, use Global to avoid the ~10% In-Geo premium. +- **Consider open-source alternatives**: FMAPI Databricks models (Llama 3.3 70B at ~7 DBU/1M input tokens) are dramatically cheaper than proprietary models (Claude Sonnet 4.5 at ~86 DBU/1M). Evaluate whether an open-source model meets your quality requirements. + +## Common mistakes + +- **Forgetting to add both input and output line items**: Each rate type is a separate workload entry. If you only add input tokens, you are underestimating by the output cost. +- **Ignoring context length**: Leaving context length at "Long" when your prompts would fit in "Short" doubles the cost. +- **Comparing raw DBU rates across providers**: Different providers have different DBU/1M rates. Compare the **total monthly cost** for your expected token volume, not just the per-million rate. +- **Expecting the same rate across all configurations**: The rate changes with endpoint type (global vs in-geo) and context length (short vs long). Always check that you have selected the correct options. + +## Excel export + +Each FMAPI Proprietary workload appears as one row in the exported spreadsheet: + +| Column | What it shows | +|--------|--------------| +| Configuration | Provider, model, endpoint type, context length, rate type | +| Mode | Serverless (always) | +| SKU | Provider-specific (`ANTHROPIC_MODEL_SERVING`, etc.) | +| Token Type | Rate type label | +| Tokens/Mo in Millions | Quantity | +| DBU per 1M Tokens | DBU rate for the specific configuration | +| Monthly DBUs | Quantity x DBU/1M | +| DBU Cost (List) | At list price | +| DBU Cost (Discounted) | At negotiated rate | +| VM Cost | $0 (always serverless) | +| Total Cost | DBU Cost | diff --git a/lakemeter/docs-site/docs/user-guide/getting-started.md b/lakemeter/docs-site/docs/user-guide/getting-started.md new file mode 100644 index 00000000..21c13991 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/getting-started.md @@ -0,0 +1,120 @@ +--- +sidebar_position: 2 +--- + +# 5-Minute Tutorial + +This tutorial walks you through creating a real cost estimate from scratch. By the end, you will have a complete estimate for a data platform with two workloads on AWS, ready to export. + +![Getting Started tutorial page](/img/guides/getting-started-page.png) +*The 5-Minute Tutorial — step-by-step guide to creating your first cost estimate with two workloads.* + +## Video walkthrough + + + +*End-to-end tutorial: create an estimate, add Jobs and DBSQL workloads, review costs, ask the AI assistant, and export to Excel.* + +## What we are building + +A cost estimate for a mid-size data platform running on **AWS us-east-1** with the **Premium** tier: + +| Workload | Purpose | Configuration | +|----------|---------|---------------| +| ETL Pipeline | Nightly batch ingestion | Jobs (Classic), 4 workers, runs 2x/day for 45 min | +| Analytics Warehouse | Business intelligence queries | DBSQL Serverless, Small size, 10 hrs/day | + +## Step 1: Create the estimate + +1. Open Lakemeter in your browser. You are automatically signed in via Databricks SSO. +2. On the home page, click **New Estimate**. +3. Fill in the form: + - **Estimate Name:** `Q4 Data Platform - AWS` + - **Cloud:** `AWS` + - **Region:** `us-east-1` + - **Pricing Tier:** `Premium` +4. Click **Create**. + +You land on the **Calculator** page -- an empty estimate ready for workloads. + +![Creating an estimate in Lakemeter — click New Estimate, fill the form, and submit](/img/gifs/creating-estimate.gif) +*Animated: creating a new estimate — fill in name, cloud, region, and tier, then click Create.* + +![Lakemeter calculator page with workloads and cost summary](/img/calculator-overview.png) +*The Calculator page showing configured workloads with live cost summary and AI assistant panel on the right.* + +## Step 2: Add the ETL Pipeline workload (Jobs) + +1. Click **Add Workload**. +2. Set **Workload Type** to **Jobs**. +3. Set **Workload Name** to `ETL Pipeline`. +4. Leave **Serverless** toggled off (we want classic compute for this example). +5. Configure compute (in the Driver Node and Worker Nodes cards): + - **Driver Instance Type:** `m5d.xlarge` + - **Worker Instance Type:** `m5d.xlarge` + - **Worker Count:** `4` + - **Photon:** Off (leave unchecked) +6. Configure pricing (within each card): + - **Driver Pricing Tier:** On-Demand (the default) + - **Worker Pricing Tier:** Spot Instances (the default) +7. Configure usage: + - **Runs Per Day:** `2` + - **Avg Runtime (minutes):** `45` + - **Days Per Month:** `30` (the default is 22 business days — change it to 30 since this ETL runs every day including weekends) + +8. Click **Save**. + +**What the numbers mean:** This job runs twice daily for 45 minutes, so it uses 1.5 hours/day x 30 days = **45 compute-hours/month**. Each hour consumes DBUs based on the instance type (driver + 4 workers), which Lakemeter multiplies by the $/DBU rate for Jobs on AWS Premium to calculate the monthly cost. You also see VM infrastructure costs for the driver (on-demand) and workers (spot pricing). + +## Step 3: Add the Analytics Warehouse workload (DBSQL) + +1. Click **Add Workload** again. +2. Set **Workload Type** to **DBSQL**. +3. Set **Workload Name** to `Analytics Warehouse`. +4. Leave the **Serverless** checkbox checked (this is the default). +5. Set **Size** to **Small** (12 DBU/hr). +6. Set **Number of Clusters** to `1`. +7. Configure usage: + - **Hours Per Month:** `220` (roughly 10 hrs/day x 22 business days) + +8. Click **Save**. + +**What the numbers mean:** A Small Serverless warehouse consumes 12 DBU per hour. At 220 hours/month, that is 2,640 DBUs/month. Lakemeter multiplies this by the Serverless SQL $/DBU rate for your cloud, region, and tier. Serverless workloads have no separate VM costs -- infrastructure is included in the DBU price. + +## Step 4: Review costs + +Back on the Calculator page, you can see: + +- **Each workload's monthly cost** displayed on its card or row +- **Total estimate cost** summed at the top +- **DBU breakdown** showing how many Databricks Units each workload consumes + +:::tip +Click on a workload to expand or edit it. Costs recalculate instantly when you change any parameter -- try adjusting the number of workers or warehouse size to see the impact. +::: + +![Estimate with multiple workloads configured](/img/estimate-with-workloads.png) +*An estimate with multiple workloads showing individual costs and the total cost summary.* + +## Step 5: Export to Excel + +1. Click the **Export** button (download icon) at the top of the calculator page. +2. An Excel file downloads named something like `Databricks_Estimate_Q4_Data_Platform_AWS_20260404.xlsx`. + +The spreadsheet includes: +- **Header section** with your estimate details (cloud, region, tier) +- **Workload table** with every configuration field, DBU rates, and costs per workload +- **Summary section** with total monthly cost and DBU breakdown by SKU type +- **Assumptions and notes** explaining the pricing basis + +This file is ready to attach to an RFP response, share in a planning meeting, or use for internal budgeting. + +## What to try next + +- **Add more workloads** -- try Model Serving or FMAPI to estimate AI/ML costs. See the [Quick Reference](/user-guide/quick-reference) for a summary of all 14 workload types. +- **Use the AI Assistant** -- click the chat icon on the right side and describe what you need. For example: "Add a DLT pipeline for real-time streaming with Pro edition." The assistant proposes workload configurations you can accept or modify. See the [AI Assistant guide](/user-guide/ai-assistant). +- **Duplicate and compare** -- duplicate your estimate, change the region or tier, and compare costs side by side. +- **Follow the full workflow** -- see the [End-to-End Workflow](/user-guide/end-to-end-workflow) guide for a complete walkthrough from creation through export interpretation. diff --git a/lakemeter/docs-site/docs/user-guide/jobs-compute.md b/lakemeter/docs-site/docs/user-guide/jobs-compute.md new file mode 100644 index 00000000..d845e617 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/jobs-compute.md @@ -0,0 +1,198 @@ +--- +sidebar_position: 7 +--- + +# Jobs Compute + +> **Lakemeter UI name:** Lakeflow Jobs + +Jobs is the workload type for batch processing, ETL workflows, and scheduled data pipelines. It supports both **Classic** (you manage the cluster) and **Serverless** (Databricks manages everything) modes. + +![Calculator page showing workloads with cost breakdown](/img/calculator-overview.png) +*The Calculator page with configured workloads — Jobs workloads appear in the list with their individual cost displayed.* + +## When to use Jobs + +Use Jobs when you have workloads that **start, run, and stop** on a schedule or trigger -- things like nightly data ingestion, hourly aggregation pipelines, or ML training runs. If you need an always-on interactive environment instead, see [All-Purpose Compute](/user-guide/all-purpose-compute). + +## Real-world example + +> **Scenario:** You are estimating cost for a nightly ETL pipeline on AWS us-east-1 (Premium tier). The pipeline runs twice a day, takes about 45 minutes per run, and uses a 4-worker cluster with Photon enabled for faster Spark processing. It runs every day of the month including weekends. + +Here is how to configure this in Lakemeter and what the numbers mean. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | Jobs | +| Serverless | Off | +| Driver Instance Type | m5d.xlarge | +| Worker Instance Type | m5d.xlarge | +| Number of Workers | 4 | +| Photon | On | +| Driver Pricing Tier | On-Demand | +| Worker Pricing Tier | Spot | +| Runs Per Day | 2 | +| Avg Runtime (minutes) | 45 | +| Days Per Month | 30 | + +### Step-by-step calculation + +**1. Compute hours per month** + +``` +Hours/Month = (Runs Per Day x Avg Runtime / 60) x Days Per Month + = (2 x 45 / 60) x 30 + = 1.5 x 30 + = 45 hours/month +``` + +**2. DBU rate per hour** + +Each m5d.xlarge has a DBU rate of approximately 1.0 DBU/hr. With 1 driver + 4 workers and Photon enabled: + +``` +DBU/Hour = (Driver DBU + Worker DBU x Workers) x Photon Multiplier + = (1.0 + 1.0 x 4) x 2.9 + = 5.0 x 2.9 + = 14.5 DBU/hour +``` + +:::info Photon multiplier varies by cloud +The Photon multiplier for Jobs is **2.9x on AWS** and **2.5x on Azure/GCP**. This example uses the AWS rate. Lakemeter loads the correct multiplier automatically from the pricing bundle based on your cloud selection. +::: + +**3. Monthly DBUs and cost** + +``` +Monthly DBUs = DBU/Hour x Hours/Month = 14.5 x 45 = 652.5 DBUs +DBU Cost = 652.5 x $0.15/DBU (example Jobs Photon rate) = $97.88 +``` + +**4. VM infrastructure cost** + +Classic workloads also have VM costs for the driver and worker instances: + +``` +VM Cost = (Driver $/hr + Worker $/hr x Workers) x Hours/Month + = ($0.192 on-demand + $0.069 spot x 4) x 45 + = $0.468/hr x 45 + = $21.06 +``` + +**5. Total monthly cost** + +``` +Total = DBU Cost + VM Cost = $97.88 + $21.06 = $118.94/month +``` + +:::note +These are example rates for illustration. Actual $/DBU and VM prices depend on your cloud, region, and pricing tier. Lakemeter loads real rates from the Databricks pricing bundle. +::: + +## Configuration reference + +### Compute mode + +| Field | Description | Default | +|-------|-------------|---------| +| **Serverless** | Toggle between Classic (off) and Serverless (on). Serverless requires **Premium** tier or above. | Off | +| **Serverless Mode** | Standard (1x) or Performance (2x multiplier). Only shown for Jobs and DLT when Serverless is on. | Standard | + +### Classic mode fields + +These fields appear when Serverless is **off**: + +| Field | Description | Default | +|-------|-------------|---------| +| **Driver Instance Type** | VM size for the Spark driver node | -- (select from list) | +| **Worker Instance Type** | VM size for the Spark executor nodes | -- (select from list) | +| **Number of Workers** | How many worker nodes in the cluster | 2 | +| **Photon** | Enables the hardware-accelerated Spark engine. Increases the DBU rate (2.9x on AWS, 2.5x on Azure/GCP) but often halves runtime for compatible workloads. | Off | +| **Driver Pricing Tier** | Spot Instances, On-Demand, 1-Year Reserved, or 3-Year Reserved | On-Demand | +| **Worker Pricing Tier** | Spot Instances, On-Demand, 1-Year Reserved, or 3-Year Reserved | Spot | + +:::tip AWS Reserved Payment Options +When you select a **1-Year Reserved** or **3-Year Reserved** tier on AWS, an additional **Payment Option** field appears with choices: No Upfront, Partial Upfront, or All Upfront. This field is not shown for Azure or GCP. +::: + +### Serverless mode fields + +When Serverless is **on**, you still select driver and worker instance types -- these are used to **estimate DBU consumption** only. You do not pay VM costs for serverless workloads. + +Photon is always enabled automatically when Serverless is on (shown with an "Auto" badge in the UI). + +### Usage fields + +| Field | Description | Default | +|-------|-------------|---------| +| **Runs Per Day** | Number of job executions per day | 1 | +| **Avg Runtime (minutes)** | Average duration of each run | 30 | +| **Days Per Month** | How many days per month the job runs | 22 | +| **Hours Per Month** | Alternative: set total hours directly (use the toggle to switch between Run-Based and Direct Hours input) | 0 | + +## How costs are calculated + +### Classic + +``` +DBU/Hour = (Driver DBU Rate + Worker DBU Rate x Workers) x Photon Multiplier +Hours/Month = (Runs Per Day x Runtime / 60) x Days Per Month +DBU Cost = DBU/Hour x Hours/Month x $/DBU +VM Cost = (Driver $/hr + Worker $/hr x Workers) x Hours/Month +Total = DBU Cost + VM Cost +``` + +- **Photon Multiplier** depends on your cloud: **2.9x** on AWS, **2.5x** on Azure/GCP. When Photon is off, the multiplier is 1.0. +- DBU rates come from the instance type (e.g., m5d.xlarge = ~1.0 DBU/hr) +- If an instance type is not found in the pricing data, Lakemeter uses a fallback of 0.5 DBU/hr + +### Serverless + +``` +DBU/Hour = (Driver DBU Rate + Worker DBU Rate x Workers) x Photon Multiplier x Serverless Multiplier +Hours/Month = (Runs Per Day x Runtime / 60) x Days Per Month +DBU Cost = DBU/Hour x Hours/Month x $/DBU +Total = DBU Cost (no VM costs) +``` + +- Photon is always applied for Serverless. The multiplier is cloud-specific: **2.9x** on AWS, **2.5x** on Azure/GCP. +- **Serverless Multiplier**: 1.0 for Standard mode, 2.0 for Performance mode +- The $/DBU rate comes from the `JOBS_SERVERLESS_COMPUTE` SKU + +### SKU mapping + +| Configuration | SKU | +|--------------|-----| +| Classic, Photon off | `JOBS_COMPUTE` | +| Classic, Photon on | `JOBS_COMPUTE_(PHOTON)` | +| Serverless (any mode) | `JOBS_SERVERLESS_COMPUTE` | + +## Tips + +- **Classic vs Serverless**: Classic gives you control over instance types and is usually cheaper for long-running, predictable workloads. Serverless eliminates startup time and management overhead -- good for short, frequent jobs or when you want zero infrastructure management. +- **Photon**: Enable Photon for data-heavy Spark workloads (aggregations, joins, ETL). It increases the DBU rate by 2.9x (AWS) or 2.5x (Azure/GCP), but often cuts runtime by 50% or more, resulting in similar or lower total cost. It has less impact on simple Python/ML workloads. +- **Spot pricing for workers**: The default worker tier is Spot, which is significantly cheaper than On-Demand. Spot is a good choice for batch jobs that can tolerate occasional interruptions. Use On-Demand for the driver to keep the job coordinator stable. +- **Days Per Month**: The default is 22 (business days). Change this to 30 or 31 for jobs that run on weekends too. + +## Common mistakes + +- **Using only 1 worker**: With 1 worker, parallelism is limited. Most production workloads benefit from at least 2-4 workers. The minimum in Lakemeter is 1. +- **Forgetting Photon increases DBUs**: If your cost estimate is nearly 3x what you expected (on AWS), check whether Photon is enabled. The higher DBU rate (2.9x on AWS) is intentional -- compare total cost (including shorter runtime) rather than just the DBU rate. +- **Serverless with Performance mode for simple ETL**: Performance mode (2x multiplier) is for latency-sensitive workloads. Standard mode is usually sufficient and cheaper for batch ETL. +- **Comparing Classic and Serverless by DBU rate alone**: Serverless has higher $/DBU but zero VM costs and zero startup time. Compare total monthly cost, not just the DBU price. + +## Excel export + +Each Jobs workload appears as one row in the exported spreadsheet with these key columns: + +| Column | What it shows | +|--------|--------------| +| Hours/Month | Calculated from runs, runtime, and days | +| DBU/Hour | Based on instance types, workers, and multipliers | +| Monthly DBUs | DBU/Hour x Hours/Month | +| DBU Cost (List) | At list price before any discounts | +| DBU Cost (Discounted) | At your negotiated rate (if applicable) | +| VM Cost | Driver + worker infrastructure (Classic only; $0 for Serverless) | +| Total Cost | DBU Cost + VM Cost | diff --git a/lakemeter/docs-site/docs/user-guide/lakebase.md b/lakemeter/docs-site/docs/user-guide/lakebase.md new file mode 100644 index 00000000..e84e5524 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/lakebase.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 16 +--- + +# Lakebase + +> **Lakemeter UI name:** Lakebase + +Lakebase is Databricks' managed PostgreSQL-compatible transactional database. Unlike compute workloads, Lakebase has two independent cost components: **compute** (CU-based) and **storage** (DSU-based), which appear as separate rows in the Excel export. + +![Lakebase documentation page](/img/guides/lakebase-guide.png) +*The Lakebase guide — compute units, storage pricing, and dual-row Excel export explained.* + +![Lakebase worked cost example](/img/guides/lakebase-worked-example.png) +*Worked example showing separate compute and storage cost calculations.* + +## When to use Lakebase + +Use Lakebase when you need a **managed transactional database** for your Databricks application -- CRUD operations, user data, application state, or any workload that needs PostgreSQL compatibility. If you need analytics/BI queries over large datasets, see [DBSQL](/user-guide/dbsql-warehouses) instead. + +## Real-world example + +> **Scenario:** You are deploying a web application backend on AWS us-east-1 (Premium tier). The database needs 4 Compute Units with a read replica for high availability (2 nodes total), 500 GB of storage, and runs 24/7. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | Lakebase | +| CU Size | 4 | +| Number of Nodes | 2 (primary + 1 read replica) | +| Storage (GB) | 500 | +| Hours Per Month | 730 (24/7) | + +### Step-by-step calculation + +**1. Compute cost** + +``` +DBU/Hour = CU Size x Number of Nodes = 4 x 2 = 8 DBU/hour +Monthly DBUs = DBU/Hour x Hours/Month = 8 x 730 = 5,840 DBUs +Compute Cost = 5,840 x $0.40/DBU = $2,336.00 +``` + +**2. Storage cost** + +Lakebase storage is measured in Databricks Storage Units (DSU). Each GB equals 15 DSU: + +``` +Total DSU = Storage GB x 15 = 500 x 15 = 7,500 DSU +Storage Cost = 7,500 x $0.023/DSU = $172.50/month +``` + +**3. Total monthly cost** + +``` +Total = Compute Cost + Storage Cost = $2,336.00 + $172.50 = $2,508.50/month +``` + +:::note +These are example rates for illustration. The $0.40/DBU rate is the fallback for `DATABASE_SERVERLESS_COMPUTE` on AWS/us-east-1/Premium. Actual rates depend on your cloud, region, and pricing tier. Storage at $0.023/DSU is a fixed rate. +::: + +### What about a smaller deployment? + +For a development database with 1 CU, 1 node, 100 GB, business hours only: + +``` +Compute: 1 x 1 x 176 hrs = 176 DBUs x $0.40 = $70.40 +Storage: 100 x 15 x $0.023 = $34.50 +Total: $104.90/month +``` + +## Configuration reference + +| Field | Description | Default | +|-------|-------------|---------| +| **CU Size** | Compute Units per node: 1, 2, 4, or 8. Determines the DBU/hour rate per node. | 1 | +| **Number of Nodes** | 1 = primary only. 2 = primary + 1 read replica (HA). 3 = primary + 2 read replicas (max HA). | 1 | +| **Storage (GB)** | Provisioned storage in gigabytes, 0 to 8,192. | 0 | +| **Hours Per Month** | Compute uptime. Use 730 for always-on databases. | 730 | + +### Nodes and high availability + +| Nodes | Description | Use case | +|-------|-------------|----------| +| 1 | Primary node only | Development, non-critical workloads | +| 2 | Primary + 1 read replica | Production with read scaling and failover | +| 3 | Primary + 2 read replicas | Maximum HA, heavy read workloads | + +Each additional node multiplies the compute cost linearly. + +### Estimating hours for part-time usage + +Lakebase uses direct hours input only. If your database is not always-on (e.g., a development database used during work hours), calculate your hours manually: + +``` +Hours/Month = Sessions Per Day x Avg Duration Hours x Days Per Month +``` + +**Example**: 8 hours/day x 22 business days = 176 hours/month — enter **176** in the Hours/Month field. + +## How costs are calculated + +### Compute + +``` +DBU/Hour = CU Size x Number of Nodes +Monthly DBUs = DBU/Hour x Hours/Month +Compute Cost = Monthly DBUs x $/DBU +``` + +**SKU**: `DATABASE_SERVERLESS_COMPUTE` (fallback: $0.40/DBU) + +### Storage + +``` +Total DSU = Storage GB x 15 +Storage Cost = Total DSU x $0.023/DSU +``` + +**SKU**: `DATABRICKS_STORAGE` + +Storage cost is a **fixed monthly amount** independent of compute hours. You pay for provisioned storage capacity regardless of how many hours the compute runs. + +### Total + +``` +Total = Compute Cost + Storage Cost +``` + +### Edge cases + +| Scenario | Behavior | +|----------|----------| +| Storage = 0 or not set | No storage sub-row emitted in Excel | +| Maximum storage (8,192 GB) | Storage cost = 8,192 x 15 x $0.023 = $2,826.24/month | + +## Tips + +- **Start with 1 CU for development**: A single CU with 1 node is sufficient for development and testing. Scale to 2, 4, or 8 CU based on query load and concurrency. +- **Use 2 nodes for production**: A read replica provides both read scaling and automatic failover. The 2x compute cost is worth it for production reliability. +- **Storage is cheap relative to compute**: 500 GB costs ~$172/month, while even 1 CU at 730 hours costs ~$292. Optimize CU size first. + +## Common mistakes + +- **Expecting a single cost number**: Lakebase produces **two rows** in the Excel export -- one for compute, one for storage. The total is the sum of both. +- **Setting storage to 0 for testing**: If storage is 0 or not set, no storage row appears. Remember to include realistic storage estimates for production sizing. +- **Forgetting nodes multiply compute**: 2 nodes doubles the DBU/hour, 3 nodes triples it. A 4 CU database with 3 nodes uses 12 DBU/hour, not 4. +- **Confusing CU with vCPU**: Compute Units (CU) are a Databricks-specific unit, not CPU cores. The available CU sizes (1, 2, 4, 8) map to DBU rates, not to hardware specifications. + +## Excel export + +Lakebase workloads export as **two rows** per line item: + +| Row | Contents | SKU | +|-----|----------|-----| +| **Compute row** | CU-based DBU costs (CU x nodes x hours x $/DBU) | `DATABASE_SERVERLESS_COMPUTE` | +| **Storage row** | GB-based storage costs (GB x 15 DSU x $0.023/DSU) | `DATABRICKS_STORAGE` | + +| Column (compute row) | What it shows | +|--------|--------------| +| Configuration | CU size and node count | +| Mode | Serverless (always) | +| SKU | `DATABASE_SERVERLESS_COMPUTE` | +| DBU/Hour | CU x nodes | +| Hours/Month | Direct hours value | +| Monthly DBUs | DBU/Hour x Hours/Month | +| DBU Cost | Monthly DBUs x $/DBU | +| VM Cost | $0 (always serverless) | +| Total Cost | Compute cost only (storage is in the second row) | + +The bottom-line total in the spreadsheet sums across both compute and storage rows for the final Lakebase cost. diff --git a/lakemeter/docs-site/docs/user-guide/model-serving.md b/lakemeter/docs-site/docs/user-guide/model-serving.md new file mode 100644 index 00000000..66397937 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/model-serving.md @@ -0,0 +1,170 @@ +--- +sidebar_position: 12 +--- + +# Model Serving + +> **Lakemeter UI name:** Model Serving + +Model Serving provides fully managed, real-time inference endpoints for deploying ML models at scale. You select a GPU type, and Databricks handles provisioning, scaling, and infrastructure. Costs are based on the GPU type's DBU rate and endpoint uptime. + +![Model Serving documentation page](/img/guides/model-serving-guide.png) +*The Model Serving guide — GPU selection, DBU rates, and real-world cost example for inference endpoints.* + +![Model Serving worked cost example](/img/guides/model-serving-worked-example.png) +*Worked example showing GPU type comparison and monthly cost calculation.* + +## When to use Model Serving + +Use Model Serving when you need to **deploy a custom ML model** (fine-tuned LLM, classification model, recommendation engine) as a REST API endpoint. If you want to call pre-built foundation models (Llama, Claude, GPT) without deploying your own endpoint, see [FMAPI — Databricks Models](/user-guide/fmapi-databricks) or [FMAPI — Proprietary Models](/user-guide/fmapi-proprietary) instead. + +## Real-world example + +> **Scenario:** You are deploying a fine-tuned text classification model on AWS us-east-1 (Premium tier). The model needs a single A10G GPU and serves requests during business hours -- about 8 hours a day, 22 days a month. You want to estimate the monthly cost. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | Model Serving | +| GPU Type | Medium (A10G 1x) | +| Hours Per Month | 176 (= 8 hrs x 22 days) | + +### Step-by-step calculation + +**1. DBU rate per hour** + +Each GPU type has a fixed DBU/hour rate that varies by cloud. For Medium (A10G 1x) on AWS: + +``` +DBU/Hour = 20.0 (from pricing bundle) +``` + +**2. Monthly DBUs and cost** + +``` +Monthly DBUs = DBU/Hour x Hours/Month = 20.0 x 176 = 3,520 DBUs +DBU Cost = 3,520 x $0.07/DBU = $246.40 +Total Cost = $246.40 (no VM costs — always serverless) +``` + +:::note +These are example rates for illustration. Actual $/DBU depends on your cloud, region, and pricing tier. The $0.07 rate is the fallback for the `SERVERLESS_REAL_TIME_INFERENCE` SKU on AWS/us-east-1/Premium. +::: + +### What about a smaller GPU? + +If a CPU endpoint is sufficient (for lightweight models): + +``` +DBU/Hour = 1.0 (CPU rate on AWS) +Monthly DBUs = 1.0 x 176 = 176 DBUs +Total Cost = 176 x $0.07 = $12.32/month +``` + +Or a GPU Small (T4) for moderate inference: + +``` +DBU/Hour = 10.48 (T4 rate on AWS) +Monthly DBUs = 10.48 x 176 = 1,844.48 DBUs +Total Cost = 1,844.48 x $0.07 = $129.11/month +``` + +## GPU types + +Model Serving supports 14 GPU configurations. Each has a cloud-specific DBU/hour rate: + +| GPU Type | Display Name | Typical use case | +|----------|-------------|-----------------| +| `cpu` | CPU | Light inference, small models, testing | +| `gpu_small_t4` | Small (T4) | Cost-effective inference, small-medium models | +| `gpu_medium_a10g_1x` | Medium (A10G 1x) | General-purpose inference | +| `gpu_medium_a10g_4x` | Medium (A10G 4x) | Medium models, higher throughput | +| `gpu_medium_a10g_8x` | Medium (A10G 8x) | Large models on A10G | +| `gpu_large_a10g_4x` | Large (A10G 4x) | High-throughput inference | +| `gpu_medium_a100_1x` | Medium (A100 1x) | Large models, high performance | +| `gpu_large_a100_2x` | Large (A100 2x) | Very large models | +| `gpu_xlarge_a100_40gb_8x` | XLarge (A100 40GB 8x) | LLM inference, maximum A100 40GB | +| `gpu_xlarge_a100_80gb_1x` | XLarge (A100 80GB 1x) | Single high-memory GPU | +| `gpu_xlarge_a100_80gb_8x` | XLarge (A100 80GB 8x) | Maximum compute, largest models | +| `gpu_2xlarge_a100_80gb_2x` | 2XLarge (A100 80GB 2x) | Multi-GPU high-memory | +| `gpu_4xlarge_a100_80gb_4x` | 4XLarge (A100 80GB 4x) | Extreme compute requirements | +| `gpu_medium_g2_standard_8` | Medium (G2 Standard 8) | GCP-specific GPU option | + +:::tip +DBU rates vary by cloud provider. The same GPU type may have a different DBU/hour on AWS vs Azure vs GCP. Lakemeter automatically loads the correct rates for your selected cloud. +::: + +## Configuration reference + +| Field | Description | Default | +|-------|-------------|---------| +| **GPU Type** | The GPU configuration for the endpoint. Determines DBU/hour rate. | CPU | +| **Number of Endpoints** | Number of identical serving endpoints. This field is visible in the UI for planning purposes but does not multiply the cost calculation — each endpoint should be added as a separate workload entry if you need to estimate multiple endpoints. | 1 | +| **Hours Per Month** | Endpoint uptime. Use 730 for 24/7 endpoints. | 730 | + +### Estimating hours for intermittent usage + +Model Serving uses direct hours input only. If your endpoint serves intermittent batch requests rather than continuous traffic, calculate your hours manually: + +``` +Hours/Month = (Batches Per Day x Avg Duration Minutes / 60) x Days Per Month +``` + +**Example**: 100 inference batches/day x 2 min each x 22 days = 73.3 hours/month — enter **73** in the Hours/Month field. + +## How costs are calculated + +``` +DBU/Hour = GPU Rate Lookup[cloud:gpu_type] +Monthly DBUs = DBU/Hour x Hours/Month +DBU Cost = Monthly DBUs x $/DBU +Total Cost = DBU Cost (no VM costs — always serverless) +``` + +Model Serving is **always serverless**. There are no VM infrastructure costs to estimate. + +### Fallback behavior + +If a GPU type is not found in the pricing bundle for your selected cloud: +- **Frontend**: Uses 2 DBU/hour as a default so you still see a non-zero estimate +- **Backend**: Uses 0 DBU/hour, which produces $0 in the Excel export + +This difference is by design -- the frontend provides a UX-friendly default, while the backend avoids generating incorrect export data for unknown GPU types. + +### SKU mapping + +| Workload | SKU | Fallback $/DBU | +|----------|-----|----------------| +| Model Serving (all GPU types) | `SERVERLESS_REAL_TIME_INFERENCE` | $0.07 | + +## Tips + +- **Start with CPU for testing**: CPU endpoints cost ~$0.07/hr in DBUs and are ideal for validating your model deployment before scaling to GPU. +- **Match GPU to model size**: Small models (< 1B parameters) run well on T4. Medium models (1-7B) need A10G. Large models (7B+) require A100. Over-provisioning wastes money. +- **24/7 vs on-demand**: If your endpoint serves real-time traffic, 730 hours is correct. If it only handles batch inference during business hours, enter 176 hours to avoid paying for idle time. +- **Cross-cloud comparison**: GPU rates differ by cloud. Create duplicate estimates for each cloud to compare -- a T4 on AWS may cost differently than on Azure. + +## Common mistakes + +- **Choosing the largest GPU "just in case"**: A100 80GB 8x costs hundreds of DBUs/hour. Start with the smallest GPU that meets your latency and throughput requirements, then scale up if needed. +- **Overestimating hours for intermittent usage**: If your model serves 100 requests/day taking 2 minutes each, that is only ~73 hours/month -- not 730. Calculate your actual usage hours and enter them directly. Using 730 hours for intermittent usage inflates cost by 10x. +- **Expecting VM costs**: Model Serving is always serverless. If you see $0 in the VM Cost column, that is correct. +- **Comparing $/DBU across workload types**: Model Serving uses `SERVERLESS_REAL_TIME_INFERENCE` at $0.07/DBU, which is much lower than DBSQL or Jobs. The total cost depends on DBU/hour x hours, not just the per-DBU rate. + +## Excel export + +Each Model Serving workload appears as one row in the exported spreadsheet: + +| Column | What it shows | +|--------|--------------| +| Configuration | GPU type display name | +| Mode | Serverless (always) | +| SKU | `SERVERLESS_REAL_TIME_INFERENCE` | +| DBU/Hour | GPU rate from pricing lookup | +| Hours/Month | Direct hours value | +| Monthly DBUs | DBU/Hour x Hours/Month | +| DBU Cost (List) | At list price | +| DBU Cost (Discounted) | At negotiated rate | +| VM Cost | $0 (always serverless) | +| Total Cost | DBU Cost | diff --git a/lakemeter/docs-site/docs/user-guide/overview.md b/lakemeter/docs-site/docs/user-guide/overview.md new file mode 100644 index 00000000..33666c4b --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/overview.md @@ -0,0 +1,78 @@ +--- +sidebar_position: 1 +--- + +# Overview + +Lakemeter is a web-based cost estimation tool for the Databricks platform. It allows you to build detailed pricing estimates across all major Databricks workload types, with support for AWS, Azure, and GCP. + +![Overview documentation page](/img/guides/overview-page.png) +*The Overview page — a summary of Lakemeter's capabilities, supported workloads, and cloud providers.* + +![Lakemeter home page showing estimates list](/img/home-page.png) +*The Lakemeter home page — manage your estimates, filter by cloud provider, and access the AI assistant.* + +![Cost summary panel — expand and collapse workload costs, hover for tooltips](/img/gifs/cost-summary.gif) +*Animated: the cost summary panel in action — expand workload costs and hover over values to see detailed breakdowns.* + +## What You Can Do + +### Create Estimates + +Build cost estimates that include multiple workloads. Each estimate is scoped to a specific cloud provider, region, and pricing tier. You can create, duplicate, and share estimates with your team. + +### Configure Workloads + +Add workloads to your estimate and configure compute resources, usage patterns, and pricing options. Lakemeter supports 14 workload types covering the full Databricks platform. + +### Get AI Assistance + +Use the built-in AI assistant to ask pricing questions, get help configuring workloads, or generate entire estimates from natural language descriptions. + +### Export Reports + +Download professional Excel reports with full cost breakdowns, ready for RFP responses, procurement reviews, or internal planning. + +## Supported Workload Types + +| Workload | Description | +|----------|-------------| +| **Jobs** | Batch processing and ETL workflows (classic and serverless) | +| **All-Purpose** | Interactive notebooks and development clusters (classic and serverless) | +| **DLT** | Delta Live Tables for declarative data pipelines | +| **DBSQL** | Databricks SQL warehouses for analytics and BI | +| **Model Serving** | Real-time model inference endpoints | +| **Vector Search** | Vector database for similarity search | +| **FMAPI (Databricks)** | Foundation Model APIs for open-source models | +| **FMAPI (Proprietary)** | Foundation Model APIs for OpenAI, Anthropic, Google models | +| **Lakebase** | Managed PostgreSQL-compatible transactional database | +| **Databricks Apps** | Managed app hosting on Databricks | +| **AI Parse (Document AI)** | Document parsing and extraction with AI | +| **Shutterstock ImageAI** | AI image generation via Shutterstock | + +Each workload type has a dedicated guide with real-world scenarios, worked cost examples, and configuration references. See [Which Workload Type Do I Need?](/user-guide/workloads) for a decision guide. + +![Workloads overview page](/img/guides/workloads-overview-page.png) +*The Workloads overview — decision guide for choosing between the 14 workload types.* + +## Supported Clouds and Regions + +Lakemeter supports all three major cloud providers: + +- **AWS** — US, EU, and AP regions +- **Azure** — All Azure regions where Databricks is available +- **GCP** — US and EU regions + +Pricing is region-specific and reflects the latest Databricks pricing data. + +## Pricing Tiers + +Each estimate uses a pricing tier that determines DBU rates: + +- **Standard** — Base pricing tier +- **Premium** — Includes advanced security and governance features +- **Enterprise** — Full platform capabilities with enhanced SLAs + +## Quality Assurance + +Lakemeter includes a comprehensive test suite covering AI assistant proposals, cost calculation accuracy, and Excel export verification. See the [Testing Guide](/testing/overview) for details on running and extending the test suite. diff --git a/lakemeter/docs-site/docs/user-guide/quick-reference.md b/lakemeter/docs-site/docs/user-guide/quick-reference.md new file mode 100644 index 00000000..c0ba7814 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/quick-reference.md @@ -0,0 +1,176 @@ +--- +sidebar_position: 4 +--- + +# Quick Reference + +A concise reference for all 14 workload types in Lakemeter. Use this page to quickly identify which workload type to use and what configuration options are available. + +## Workload types at a glance + +| Workload | What it is | When to use it | Min. Tier | +|----------|-----------|----------------|-----------| +| **Jobs** | Batch compute for ETL, ML training, data processing | Scheduled or triggered pipelines that run and terminate | Standard | +| **All-Purpose** | Interactive compute for notebooks and development | Ad-hoc analysis, prototyping, development clusters | Standard | +| **DLT** | Delta Live Tables declarative data pipelines | Managed ETL with built-in data quality and monitoring | Standard | +| **DBSQL** | SQL analytics warehouses | BI dashboards, SQL queries, analyst workloads | Standard (Classic/Pro), Premium (Serverless) | +| **Model Serving** | Real-time ML model inference endpoints | Deploying custom ML models for online predictions | Premium | +| **Vector Search** | Managed vector database | Similarity search, RAG applications, embeddings | Premium | +| **FMAPI (Databricks)** | Foundation Model API for open-source models | Llama, DBRX, Mixtral via Databricks-hosted endpoints | Premium | +| **FMAPI (Proprietary)** | Foundation Model API for third-party models | GPT-4, Claude, Gemini via Databricks gateway | Premium | +| **Lakebase** | Managed PostgreSQL-compatible database | Transactional workloads, application backends | Premium | +| **Databricks Apps** | Managed app hosting on Databricks | Hosting web applications, dashboards, internal tools | Premium | +| **AI Parse (Document AI)** | AI-powered document parsing and extraction | Processing PDFs, invoices, contracts with AI | Premium | +| **Shutterstock ImageAI** | AI image generation via Shutterstock | Generating images for marketing, content, prototyping | Premium | + +## Key terms + +| Term | Meaning | +|------|---------| +| **DBU** | Databricks Unit -- the billing unit for Databricks services. Different workload types have different $/DBU rates. | +| **SKU** | Stock Keeping Unit -- identifies the specific product being priced (e.g., `JOBS_COMPUTE`, `SERVERLESS_SQL_COMPUTE`). | +| **Photon** | Hardware-accelerated query engine. Doubles the DBU rate but often halves runtime for compatible workloads. | +| **Serverless** | Databricks-managed infrastructure. No VM configuration needed; infrastructure cost is included in the DBU price. | +| **Classic** | Customer-managed infrastructure. You choose instance types and pay DBU + VM costs separately. | + +## Configuration by workload type + +### Compute workloads (Jobs, All-Purpose, DLT) + +These workloads share a common configuration pattern: + +| Field | Description | Default | +|-------|-------------|---------| +| **Serverless** | Toggle on for Databricks-managed compute, off for classic | Off | +| **Serverless Mode** | Standard or Performance (Performance uses 2x DBU rate) | Standard | +| **Photon** | Hardware-accelerated engine (classic mode only) | Off | +| **Driver Instance Type** | VM instance for the driver (classic only) | -- | +| **Worker Instance Type** | VM instance for workers (classic only) | -- | +| **Worker Count** | Number of worker nodes (classic only) | 2 | +| **Driver Pricing Tier** | On-Demand, 1-Year Reserved, 3-Year Reserved | On-Demand | +| **Worker Pricing Tier** | Spot Instances, On-Demand, 1-Year Reserved, 3-Year Reserved | Spot Instances | +| **Payment Option** | No upfront, partial upfront, all upfront (reserved only) | No upfront | + +**DLT-specific (classic mode only):** + +| Field | Description | Options | +|-------|-------------|---------| +| **SDP Edition** | Feature tier for the pipeline (Core, Pro, Advanced). Hidden when Serverless is enabled. | Core, Pro, Advanced | + +**Usage fields (Jobs):** + +| Field | Description | Default | +|-------|-------------|---------| +| **Runs Per Day** | Number of job executions daily | 1 | +| **Avg Runtime (minutes)** | Average duration of each run | 30 | +| **Days Per Month** | Active days per month | 22 | + +**Usage fields (All-Purpose, DLT):** + +| Field | Description | Default | +|-------|-------------|---------| +| **Hours Per Month** | Total compute hours | -- | + +### DBSQL + +| Field | Description | Options | +|-------|-------------|---------| +| **Serverless** | Checkbox to enable Serverless SQL (Premium+ only). When off, choose Pro or Classic. | On (Serverless) | +| **Size** | Determines DBU/hr consumption | Small (12 DBU/hr) | +| **Number of Clusters** | Concurrent cluster count for scaling | 1+ | +| **Hours Per Month** | Warehouse uptime | -- | + +**DBSQL warehouse sizes and DBU rates:** + +| Size | DBU/hr | +|------|--------| +| 2X-Small | 4 | +| X-Small | 6 | +| Small | 12 | +| Medium | 24 | +| Large | 40 | +| X-Large | 80 | +| 2X-Large | 144 | +| 3X-Large | 272 | +| 4X-Large | 528 | + +### Model Serving + +| Field | Description | Options | +|-------|-------------|---------| +| **Endpoint Type** | Compute tier for the endpoint | CPU, GPU Small (T4), GPU Medium (A10G 1x), GPU Large (A10G 4x), etc. | +| **Number of Endpoints** | Concurrent endpoint instances | 1+ | +| **Hours Per Month** | Endpoint uptime | Default: 730 (24/7) | + +### Vector Search + +| Field | Description | Options | +|-------|-------------|---------| +| **Vector Search Type** | Standard (4 DBU/hr per 2M vectors) or Storage Optimized (18.29 DBU/hr per 64M vectors) | Standard | +| **Capacity (M vectors)** | Number of vectors in millions | 1 | +| **Storage (GB)** | Additional storage capacity (20 GB free per endpoint unit, $0.023/GB/mo above) | 0 | +| **Hours Per Month** | Service uptime | Default: 730 (24/7) | + +### FMAPI (Databricks models) + +| Field | Description | +|-------|-------------| +| **Model** | Databricks-hosted model (e.g., Llama, DBRX, Mixtral) — LLMs and Embedding models | +| **Rate Type** | Token-based (input token, output token) or Provisioned (provisioned scaling, provisioned entry) | +| **Quantity** | For token-based: millions of tokens/month. For provisioned: hours/month (730 = 24/7) | + +### FMAPI (Proprietary models) + +| Field | Description | +|-------|-------------| +| **Provider** | OpenAI, Anthropic, or Google | +| **Model** | Specific model (GPT-4, Claude, Gemini, etc.) | +| **Endpoint Type** | Global or In-Geo | +| **Context Length** | All, Short, or Long (affects pricing for some models) | +| **Rate Type** | Input Token, Output Token, Cache Read, Cache Write, Batch Inference, Provisioned Scaling (availability depends on model) | +| **Quantity (millions)** | Token volume | + +### Lakebase + +| Field | Description | Default | +|-------|-------------|---------| +| **Capacity Units (CU)** | Compute units: 1, 2, 4, or 8 CU | 1 | +| **Number of Nodes** | 1 = primary only, 2-3 = primary + read replicas (HA) | 1 | +| **Storage (GB)** | Database storage capacity (0-8192 GB) | 0 | +| **Hours Per Month** | Instance uptime | Default: 730 (24/7) | + +### Databricks Apps + +| Field | Description | Default | +|-------|-------------|---------| +| **App Size** | Medium or Large | Medium | +| **Hours Per Month** | App uptime | Default: 730 (24/7) | + +### AI Parse (Document AI) + +| Field | Description | Default | +|-------|-------------|---------| +| **Mode** | Pages-based or direct DBU | Pages | +| **Complexity** | Low (text), Low (images), Medium, High — affects DBU rate per 1000 pages | Medium | +| **Pages (thousands)** | Number of pages to process in thousands | -- | + +### Shutterstock ImageAI + +| Field | Description | Default | +|-------|-------------|---------| +| **Images Per Month** | Number of images to generate | -- | + +## Cost formula summary + +| Workload type | Cost formula | +|--------------|-------------| +| **Classic compute** (Jobs, All-Purpose, DLT) | (DBU/hr x hours/month x $/DBU) + (VM $/hr x hours/month) | +| **Serverless compute** (Jobs, All-Purpose, DLT, DBSQL) | DBU/hr x hours/month x $/DBU (VM cost included) | +| **DBSQL Classic/Pro** | (Warehouse DBU/hr x clusters x hours/month x $/DBU) + VM costs | +| **Model Serving** | Endpoint DBU/hr x endpoints x hours/month x $/DBU | +| **Vector Search** | Endpoint units x DBU/unit x hours/month x $/DBU | +| **FMAPI** | Token quantity (M) x DBU per M tokens x $/DBU | +| **Lakebase** | (CU x nodes x hours/month x $/DBU) + storage costs | +| **Databricks Apps** | App DBU/hr x hours/month x $/DBU | +| **AI Parse** | Pages (thousands) x DBU per 1000 pages x $/DBU | +| **Shutterstock ImageAI** | Images x fixed cost per image | diff --git a/lakemeter/docs-site/docs/user-guide/shutterstock-imageai.md b/lakemeter/docs-site/docs/user-guide/shutterstock-imageai.md new file mode 100644 index 00000000..13e7ee9e --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/shutterstock-imageai.md @@ -0,0 +1,109 @@ +--- +sidebar_position: 18 +--- + +# Shutterstock ImageAI + +> **Lakemeter UI name:** Shutterstock ImageAI + +Shutterstock ImageAI provides AI-powered image generation on Databricks. You specify the number of images to generate per month, and costs are calculated based on a fixed DBU rate per image. This is one of the simplest workload types to estimate. + +## When to use Shutterstock ImageAI + +Use Shutterstock ImageAI when you need to **generate images using AI** — things like marketing content, product mockups, creative assets, or data augmentation for ML training. If you need text generation or chat capabilities, see [FMAPI — Databricks Models](/user-guide/fmapi-databricks) instead. + +## Real-world example + +> **Scenario:** Your marketing team generates 2,000 AI images per month for social media and ad campaigns on AWS us-east-1 (Premium tier). + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | Shutterstock ImageAI | +| Images Per Month | 2,000 | + +### Step-by-step calculation + +**1. DBU rate per image** + +Each image costs a fixed 0.857 DBU: + +``` +DBU per Image = 0.857 +``` + +**2. Monthly DBUs and cost** + +``` +Monthly DBUs = Images × DBU per Image = 2,000 × 0.857 = 1,714 DBUs +DBU Cost = 1,714 × $0.07/DBU = $119.98 +Total Cost = $119.98 (no VM costs — always serverless) +``` + +:::note +These are example rates for illustration. Actual $/DBU depends on your cloud, region, and pricing tier. The $0.07 rate is the fallback for the `SERVERLESS_REAL_TIME_INFERENCE` SKU on AWS/us-east-1/Premium. +::: + +### Scaling examples + +| Images/Month | Monthly DBUs | Estimated Cost | +|-------------|-------------|----------------| +| 500 | 428.5 | ~$30 | +| 1,000 | 857.0 | ~$60 | +| 5,000 | 4,285.0 | ~$300 | +| 10,000 | 8,570.0 | ~$600 | + +Costs scale linearly with image count. + +## Configuration reference + +| Field | Description | Default | +|-------|-------------|---------| +| **Images Per Month** | Number of images to generate per month. | 1,000 | + +That's it — Shutterstock ImageAI has the simplest configuration of any workload type. + +## How costs are calculated + +``` +DBU per Image = 0.857 (fixed) +Monthly DBUs = Images Per Month × DBU per Image +DBU Cost = Monthly DBUs × $/DBU +Total Cost = DBU Cost (no VM costs — always serverless) +``` + +Shutterstock ImageAI is **always serverless**. There are no VM infrastructure costs. + +### SKU mapping + +| Workload | SKU | Fallback $/DBU | +|----------|-----|----------------| +| Shutterstock ImageAI | `SERVERLESS_REAL_TIME_INFERENCE` | $0.07 | + +## Tips + +- **Start with actual usage**: Track how many images your team generates in a typical month before estimating. Marketing teams often overestimate their needs. +- **Costs are linear**: Double the images = double the cost. No volume discounts or tier thresholds to worry about. +- **Compare with external services**: At ~$0.06 per image (at $0.07/DBU), Shutterstock ImageAI is competitive with other AI image generation APIs. + +## Common mistakes + +- **Overestimating image volume**: A marketing team generating 50 social media posts per week needs ~200 images/month, not 5,000. Estimate based on actual creative workflows. +- **Expecting VM costs**: Shutterstock ImageAI is always serverless. $0 VM cost is correct. + +## Excel export + +Each Shutterstock ImageAI workload appears as one row in the exported spreadsheet: + +| Column | What it shows | +|--------|--------------| +| Configuration | Image count | +| Mode | Serverless (always) | +| SKU | `SERVERLESS_REAL_TIME_INFERENCE` | +| Images/Month | Direct value | +| Monthly DBUs | Images × 0.857 | +| DBU Cost (List) | At list price | +| DBU Cost (Discounted) | At negotiated rate | +| VM Cost | $0 (always serverless) | +| Total Cost | DBU Cost | diff --git a/lakemeter/docs-site/docs/user-guide/vector-search.md b/lakemeter/docs-site/docs/user-guide/vector-search.md new file mode 100644 index 00000000..974228d1 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/vector-search.md @@ -0,0 +1,207 @@ +--- +sidebar_position: 14 +--- + +# Vector Search + +> **Lakemeter UI name:** Vector Search + +Vector Search provides managed vector database endpoints for similarity search, powering RAG (Retrieval Augmented Generation) applications, recommendation systems, and semantic search. Lakemeter supports cost estimation for **Standard** and **Storage-Optimized** endpoint types. + +![Vector Search documentation page](/img/guides/vector-search-guide.png) +*The Vector Search guide — endpoint types, vector capacity calculation, and free storage tier explained.* + +![Vector Search worked cost example](/img/guides/vector-search-worked-example.png) +*Worked example showing CEILING-based unit calculation, DBU costs, and storage tier breakdown.* + +## When to use Vector Search + +Use Vector Search when you need a **managed vector database** for storing and querying embeddings -- things like RAG chatbots, document retrieval, product recommendations, or image similarity search. If you need to call a language model directly (not store embeddings), see [FMAPI — Databricks Models](/user-guide/fmapi-databricks) instead. + +## Real-world example + +> **Scenario:** You are building a RAG-powered knowledge base on AWS us-east-1 (Premium tier). Your document corpus produces 10 million embeddings and you estimate 50 GB of associated metadata storage. You want a Standard endpoint running 24/7. + +### Configuration + +| Field | Value | +|-------|-------| +| Workload Type | Vector Search | +| Endpoint Type | Standard | +| Capacity (Millions) | 10 | +| Storage (GB) | 50 | +| Hours Per Month | 730 (24/7) | + +### Step-by-step calculation + +**1. Compute units** + +Vector Search divides your vector capacity into fixed-size units. For Standard mode, each unit holds 2 million vectors: + +``` +Units = CEILING(Capacity in Vectors / Divisor) + = CEILING(10,000,000 / 2,000,000) + = CEILING(5) + = 5 units +``` + +**2. DBU rate per hour** + +Each unit consumes 4.0 DBU/hour in Standard mode: + +``` +DBU/Hour = Units x DBU per Unit = 5 x 4.0 = 20.0 DBU/hour +``` + +**3. Monthly compute cost** + +``` +Monthly DBUs = DBU/Hour x Hours/Month = 20.0 x 730 = 14,600 DBUs +DBU Cost = 14,600 x $0.07/DBU = $1,022.00 +``` + +**4. Storage cost** + +Each unit includes 20 GB of free storage. Billing only applies to storage beyond this free tier: + +``` +Free Storage = Units x 20 GB = 5 x 20 = 100 GB +Billable = MAX(0, 50 - 100) = 0 GB (within free tier) +Storage Cost = $0.00 +``` + +In this case, 50 GB is fully covered by the 100 GB free tier. + +**5. Total monthly cost** + +``` +Total = DBU Cost + Storage Cost = $1,022.00 + $0.00 = $1,022.00/month +``` + +:::note +These are example rates for illustration. Actual $/DBU depends on your cloud, region, and pricing tier. Lakemeter loads real rates from the Databricks pricing bundle. +::: + +### What about Storage-Optimized? + +For the same 10 million vectors with Storage-Optimized: + +``` +Units = CEILING(10,000,000 / 64,000,000) = CEILING(0.15625) = 1 unit +DBU/Hour = 1 x 18.29 = 18.29 DBU/hour +Monthly = 18.29 x 730 = 13,351.7 DBUs +DBU Cost = 13,351.7 x $0.07 = $934.62 +``` + +Storage-Optimized uses a much larger unit size (64M vectors vs 2M), so small deployments may actually cost more per unit but fewer units are needed. At 10M vectors, Standard and Storage-Optimized end up being close in cost. + +:::tip When to choose Storage-Optimized +Storage-Optimized becomes significantly cheaper at **100M+ vectors** where the 64M divisor means far fewer units. For smaller deployments under 50M vectors, Standard is usually the better choice. +::: + +## Endpoint types + +| Type | Unit size | DBU/hr per unit | Best for | +|------|-----------|----------------|----------| +| **Standard** | 2 million vectors | 4.0 | General RAG, moderate vector counts (< 100M) | +| **Storage-Optimized** | 64 million vectors | 18.29 | Large-scale search, 100M+ vectors, cost-sensitive storage | + +### How the CEILING function works + +The number of compute units is always **rounded up** to the nearest whole number. This means: +- 1 vector → 1 unit (minimum) +- 2,000,001 vectors (Standard) → 2 units (crossed the 2M boundary) +- 63,999,999 vectors (Storage-Optimized) → 1 unit (still within 64M) + +This is important for cost planning -- there is no "partial unit" pricing. + +## Configuration reference + +| Field | Description | Default | +|-------|-------------|---------| +| **Endpoint Type** | Standard or Storage-Optimized. Determines unit size and DBU rate. | Standard | +| **Capacity (Millions)** | Number of vectors to store, in millions. | 1 | +| **Storage (GB)** | Metadata/additional storage in GB. Triggers a storage sub-row when it exceeds the free tier. | 0 | +| **Hours Per Month** | Service uptime. Use 730 for always-on endpoints. | 730 | + +### Free storage tier + +Each compute unit includes free storage: + +| Endpoint Type | Free storage per unit | +|--------------|----------------------| +| Standard | 20 GB | +| Storage-Optimized | 20 GB | + +Storage beyond the free tier is billed at **$0.023/GB/month** and appears as a separate sub-row in the Excel export. + +## How costs are calculated + +### Compute + +``` +Units = CEILING(Capacity Millions x 1,000,000 / Divisor) +DBU/Hour = Units x Mode DBU Rate +Monthly DBUs = DBU/Hour x Hours/Month +Compute Cost = Monthly DBUs x $/DBU +``` + +Where: +- Standard: Divisor = 2,000,000, DBU Rate = 4.0/hr per unit +- Storage-Optimized: Divisor = 64,000,000, DBU Rate = 18.29/hr per unit + +### Storage + +``` +Free Storage GB = Units x 20 +Billable GB = MAX(0, Storage GB - Free Storage GB) +Storage Cost = Billable GB x $0.023/month +``` + +### Total + +``` +Total = Compute Cost + Storage Cost +``` + +### SKU mapping + +| Component | SKU | Rate | +|-----------|-----|------| +| Compute (all modes) | `SERVERLESS_REAL_TIME_INFERENCE` | $0.07/DBU (fallback) | +| Storage (over free tier) | Direct dollar amount | $0.023/GB/month | + +## Tips + +- **Right-size your capacity**: Estimate the actual number of embeddings you will store. A typical RAG application with 10,000 documents (chunked into ~10 chunks each) needs ~100K vectors, not 100M. Enter capacity in millions. +- **Account for the CEILING function**: 2.1 million vectors costs the same as 4 million vectors in Standard mode (both need 2 units). Plan around unit boundaries to avoid paying for unused capacity. +- **Storage-Optimized for large catalogs**: If you have 100M+ product embeddings for e-commerce search, Storage-Optimized is significantly cheaper because each unit holds 64M vectors instead of 2M. +- **Free storage covers many use cases**: With 5 Standard units (10M vectors), you get 100 GB free storage. Most RAG metadata fits within the free tier. + +## Common mistakes + +- **Confusing millions with actual vector count**: The Capacity field is in **millions**. If you have 5 million vectors, enter 5, not 5,000,000. +- **Ignoring the unit rounding**: Going from 2M to 2.1M vectors in Standard mode doubles your cost (1 unit → 2 units). Be aware of the unit boundaries. +- **Choosing Storage-Optimized for small deployments**: At less than 10M vectors, Standard is almost always cheaper because the minimum is 1 unit either way, and Standard's per-unit DBU rate is lower. +- **Expecting VM costs**: Vector Search is always serverless. $0 VM cost is correct. + +## Excel export + +Vector Search workloads may export as **one or two rows**: + +| Row | When | Contents | +|-----|------|----------| +| **Compute row** | Always | DBU-based cost for the endpoint units | +| **Storage sub-row** | When storage exceeds free tier | Dollar-based storage cost ($0.023/GB/month for billable GB) | + +| Column (compute row) | What it shows | +|--------|--------------| +| Configuration | Endpoint type and capacity | +| Mode | Serverless (always) | +| SKU | `SERVERLESS_REAL_TIME_INFERENCE` | +| DBU/Hour | Units x mode DBU rate | +| Hours/Month | Direct value | +| Monthly DBUs | DBU/Hour x Hours/Month | +| DBU Cost | Monthly DBUs x $/DBU | +| VM Cost | $0 (always serverless) | +| Total Cost | DBU Cost + Storage Cost | diff --git a/lakemeter/docs-site/docs/user-guide/workloads.md b/lakemeter/docs-site/docs/user-guide/workloads.md new file mode 100644 index 00000000..cd66cf93 --- /dev/null +++ b/lakemeter/docs-site/docs/user-guide/workloads.md @@ -0,0 +1,119 @@ +--- +sidebar_position: 4 +--- + +# Which Workload Type Do I Need? + +Lakemeter supports 14 workload types covering the full Databricks platform. This page helps you choose the right one for your use case. + +![All workloads in a Lakemeter estimate](/img/all-workloads-overview.png) +*A Lakemeter estimate showing multiple workload types with their individual costs and configuration summaries.* + +![Adding a workload — select type, configure parameters, and save](/img/gifs/adding-workload.gif) +*Animated: adding a new workload to an estimate — choose the workload type, configure compute and usage, then save.* + +## Quick decision guide + +| I need to... | Use this workload | Guide | +|-------------|-------------------|-------| +| Run scheduled ETL/data pipelines | **Jobs** | [Jobs Compute](/user-guide/jobs-compute) | +| Work interactively in notebooks | **All-Purpose Compute** | [All-Purpose Compute](/user-guide/all-purpose-compute) | +| Build declarative data pipelines with quality checks | **DLT** | [Delta Live Tables](/user-guide/dlt-pipelines) | +| Run SQL queries, dashboards, BI tools | **DBSQL** | [DBSQL Warehouses](/user-guide/dbsql-warehouses) | +| Deploy a custom ML model as an API | **Model Serving** | [Model Serving](/user-guide/model-serving) | +| Store and query vector embeddings (RAG) | **Vector Search** | [Vector Search](/user-guide/vector-search) | +| Call open-source LLMs (Llama, DBRX, Gemma) | **FMAPI Databricks** | [FMAPI — Databricks](/user-guide/fmapi-databricks) | +| Call commercial LLMs (Claude, GPT, Gemini) | **FMAPI Proprietary** | [FMAPI — Proprietary](/user-guide/fmapi-proprietary) | +| Use a managed PostgreSQL database | **Lakebase** | [Lakebase](/user-guide/lakebase) | +| Host a web app on Databricks | **Databricks Apps** | — | +| Parse documents with AI | **AI Parse (Document AI)** | — | +| Generate images with AI | **Shutterstock ImageAI** | — | + +## Workload categories + +### Compute Workloads + +These workloads run Spark clusters or SQL warehouses. Costs are based on **instance types**, **cluster size**, and **hours of usage**. + +| Workload | Pricing model | Supports Classic | Supports Serverless | VM costs | +|----------|--------------|:----------------:|:-------------------:|:--------:| +| **Jobs** | DBU/hr x hours | Yes | Yes | Classic only | +| **All-Purpose** | DBU/hr x hours | Yes | Yes | Classic only | +| **DLT** | DBU/hr x hours | Yes | Yes | Classic only | +| **DBSQL** | DBU/hr x hours | Yes (Classic/Pro) | Yes | Classic/Pro only | + +### AI/ML & Data Services + +These workloads are always serverless with no VM costs. Pricing is based on **GPU type**, **token volume**, or **provisioned capacity**. + +| Workload | Pricing model | Unit | VM costs | +|----------|--------------|------|:--------:| +| **Model Serving** | DBU/hr by GPU type | Hours | Never | +| **Vector Search** | DBU/hr by endpoint units | Hours + storage | Never | +| **FMAPI Databricks** | DBU per million tokens or DBU/hr (provisioned) | Tokens or hours | Never | +| **FMAPI Proprietary** | DBU per million tokens | Tokens | Never | +| **Lakebase** | DBU/hr (compute) + DSU (storage) | Hours + GB | Never | +| **Databricks Apps** | DBU/hr by app size | Hours | Never | +| **AI Parse** | DBU per 1000 pages | Pages | Never | +| **Shutterstock ImageAI** | Fixed per image | Images | Never | + +## Common fields + +All workloads share these base fields: + +| Field | Description | +|-------|-------------| +| **Workload Name** | A descriptive label (e.g., "ETL Pipeline", "Analytics Warehouse") | +| **Workload Type** | The Databricks service type from the dropdown | +| **Display Order** | Sort position in the estimate (drag to reorder) | + +## Usage input modes + +Compute workloads (**Jobs**, **All-Purpose**, **DLT**, **DBSQL**) support two ways to specify usage: + +**Run-Based** (default): Specify runs per day, average runtime, and days per month. The formula is: +``` +Hours/Month = (Runs Per Day x Avg Runtime Minutes / 60) x Days Per Month +``` + +**Direct Hours**: Enter total hours per month directly. Common values: +- 730 = 24/7 (always-on) +- 176 = 8 hours x 22 business days +- 44 = 2 hours x 22 business days + +**Model Serving**, **Vector Search**, and **Lakebase** use direct hours only. **FMAPI** workloads use token volume (millions/month) or provisioned hours instead of either mode. + +## Pricing tier restrictions + +Some workloads require a **Premium** pricing tier or above: + +| Workload | Standard tier | Premium tier | +|----------|:------------:|:------------:| +| Jobs (Classic) | Yes | Yes | +| Jobs (Serverless) | No | Yes | +| All-Purpose (Classic) | Yes | Yes | +| All-Purpose (Serverless) | No | Yes | +| DLT | Yes | Yes | +| DBSQL (Classic/Pro) | Yes | Yes | +| DBSQL (Serverless) | No | Yes | +| Model Serving | No | Yes | +| Vector Search | No | Yes | +| FMAPI Databricks | No | Yes | +| FMAPI Proprietary | No | Yes | +| Lakebase | No | Yes | +| Databricks Apps | No | Yes | +| AI Parse | No | Yes | +| Shutterstock ImageAI | No | Yes | + +If you select Standard tier for your estimate, workloads that require Premium will not be available. + +## Cost components + +Depending on the workload type, your total cost may include one or more of: + +- **DBU Cost** -- Databricks Units consumed, multiplied by the $/DBU rate for your SKU +- **VM Cost** -- Cloud infrastructure costs for driver and worker VMs (Classic compute only) +- **Storage Cost** -- Provisioned storage (Lakebase DSU, Vector Search overflow) +- **Token Cost** -- For FMAPI workloads, based on millions of tokens processed + +The total monthly cost for each workload is displayed in the estimate summary. All workloads sum to the estimate total. diff --git a/lakemeter/docs-site/docusaurus.config.ts b/lakemeter/docs-site/docusaurus.config.ts new file mode 100644 index 00000000..bc8077f3 --- /dev/null +++ b/lakemeter/docs-site/docusaurus.config.ts @@ -0,0 +1,123 @@ +import {themes as prismThemes} from 'prism-react-renderer'; +import type {Config} from '@docusaurus/types'; +import type * as Preset from '@docusaurus/preset-classic'; + +const config: Config = { + title: 'Lakemeter', + tagline: 'Databricks Cost Estimation Tool', + favicon: 'img/favicon.ico', + + future: { + v4: true, + }, + + url: 'https://cheeyutan.github.io', + baseUrl: '/lakemeter-opensource/', + + organizationName: 'CheeYuTan', + projectName: 'lakemeter-opensource', + + onBrokenLinks: 'warn', + + markdown: { + hooks: { + onBrokenMarkdownLinks: 'warn', + }, + }, + + i18n: { + defaultLocale: 'en', + locales: ['en'], + }, + + presets: [ + [ + 'classic', + { + docs: { + sidebarPath: './sidebars.ts', + routeBasePath: '/', + }, + blog: false, + theme: { + customCss: './src/css/custom.css', + }, + } satisfies Preset.Options, + ], + ], + + themeConfig: { + colorMode: { + defaultMode: 'dark', + disableSwitch: false, + respectPrefersColorScheme: false, + }, + navbar: { + title: 'Lakemeter', + items: [ + { + type: 'docSidebar', + sidebarId: 'userGuideSidebar', + position: 'left', + label: 'User Guide', + }, + { + type: 'docSidebar', + sidebarId: 'adminGuideSidebar', + position: 'left', + label: 'Admin Guide', + }, + { + type: 'doc', + docId: 'changelog', + position: 'left', + label: 'Changelog', + }, + { + href: 'https://www.databricks.com/product/pricing', + label: 'Databricks Pricing', + position: 'right', + }, + ], + }, + footer: { + style: 'dark', + links: [ + { + title: 'Documentation', + items: [ + { + label: 'User Guide', + to: '/user-guide/overview', + }, + { + label: 'Admin Guide', + to: '/admin-guide/deployment', + }, + ], + }, + { + title: 'Databricks', + items: [ + { + label: 'Official Pricing', + href: 'https://www.databricks.com/product/pricing', + }, + { + label: 'Databricks Documentation', + href: 'https://docs.databricks.com', + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} Databricks, Inc.`, + }, + prism: { + theme: prismThemes.github, + darkTheme: prismThemes.dracula, + additionalLanguages: ['bash', 'json', 'python', 'yaml'], + }, + } satisfies Preset.ThemeConfig, +}; + +export default config; diff --git a/lakemeter/docs-site/package-lock.json b/lakemeter/docs-site/package-lock.json new file mode 100644 index 00000000..5c0b01e4 --- /dev/null +++ b/lakemeter/docs-site/package-lock.json @@ -0,0 +1,18448 @@ +{ + "name": "docs-site", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docs-site", + "version": "0.0.0", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/preset-classic": "3.9.2", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/tsconfig": "3.9.2", + "@docusaurus/types": "3.9.2", + "typescript": "~5.6.2" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.15.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/abtesting/-/abtesting-1.15.2.tgz", + "integrity": "sha512-rF7vRVE61E0QORw8e2NNdnttcl3jmFMWS9B4hhdga12COe+lMa26bQLfcBn/Nbp9/AF/8gXdaRCPsVns3CnjsA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.19.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz", + "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.19.2", + "@algolia/autocomplete-shared": "1.19.2" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.19.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz", + "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.19.2" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.19.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz", + "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/client-abtesting/-/client-abtesting-5.49.2.tgz", + "integrity": "sha512-XyvKCm0RRmovMI/ChaAVjTwpZhXdbgt3iZofK914HeEHLqD1MUFFVLz7M0+Ou7F56UkHXwRbpHwb9xBDNopprQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/client-analytics/-/client-analytics-5.49.2.tgz", + "integrity": "sha512-jq/3qvtmj3NijZlhq7A1B0Cl41GfaBpjJxcwukGsYds6aMSCWrEAJ9pUqw/C9B3hAmILYKl7Ljz3N9SFvekD3Q==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/client-common/-/client-common-5.49.2.tgz", + "integrity": "sha512-bn0biLequn3epobCfjUqCxlIlurLr4RHu7RaE4trgN+RDcUq6HCVC3/yqq1hwbNYpVtulnTOJzcaxYlSr1fnuw==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/client-insights/-/client-insights-5.49.2.tgz", + "integrity": "sha512-z14wfFs1T3eeYbCArC8pvntAWsPo9f6hnUGoj8IoRUJTwgJiiySECkm8bmmV47/x0oGHfsVn3kBdjMX0yq0sNA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/client-personalization/-/client-personalization-5.49.2.tgz", + "integrity": "sha512-GpRf7yuuAX93+Qt0JGEJZwgtL0MFdjFO9n7dn8s2pA9mTjzl0Sc5+uTk1VPbIAuf7xhCP9Mve+URGb6J+EYxgA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.49.2.tgz", + "integrity": "sha512-HZwApmNkp0DiAjZcLYdQLddcG4Agb88OkojiAHGgcm5DVXobT5uSZ9lmyrbw/tmQBJwgu2CNw4zTyXoIB7YbPA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/client-search/-/client-search-5.49.2.tgz", + "integrity": "sha512-y1IOpG6OSmTpGg/CT0YBb/EAhR2nsC18QWp9Jy8HO9iGySpcwaTvs5kHa17daP3BMTwWyaX9/1tDTDQshZzXdg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", + "license": "MIT" + }, + "node_modules/@algolia/ingestion": { + "version": "1.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/ingestion/-/ingestion-1.49.2.tgz", + "integrity": "sha512-YYJRjaZ2bqk923HxE4um7j/Cm3/xoSkF2HC2ZweOF8cXL3sqnlndSUYmCaxHFjNPWLaSHk2IfssX6J/tdKTULw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/monitoring/-/monitoring-1.49.2.tgz", + "integrity": "sha512-9WgH+Dha39EQQyGKCHlGYnxW/7W19DIrEbCEbnzwAMpGAv1yTWCHMPXHxYa+LcL3eCp2V/5idD1zHNlIKmHRHg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/recommend/-/recommend-5.49.2.tgz", + "integrity": "sha512-K7Gp5u+JtVYgaVpBxF5rGiM+Ia8SsMdcAJMTDV93rwh00DKNllC19o1g+PwrDjDvyXNrnTEbofzbTs2GLfFyKA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.49.2.tgz", + "integrity": "sha512-3UhYCcWX6fbtN8ABcxZlhaQEwXFh3CsFtARyyadQShHMPe3mJV9Wel4FpJTa+seugRkbezFz0tt6aPTZSYTBuA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/requester-fetch/-/requester-fetch-5.49.2.tgz", + "integrity": "sha512-G94VKSGbsr+WjsDDOBe5QDQ82QYgxvpxRGJfCHZBnYKYsy/jv9qGIDb93biza+LJWizQBUtDj7bZzp3QZyzhPQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/@algolia/requester-node-http/-/requester-node-http-5.49.2.tgz", + "integrity": "sha512-UuihBGHafG/ENsrcTGAn5rsOffrCIRuHMOsD85fZGLEY92ate+BMTUqxz60dv5zerh8ZumN4bRm8eW2z9L11jA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@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/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@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-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", + "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", + "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", + "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", + "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", + "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", + "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz", + "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-syntax-jsx": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", + "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", + "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", + "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.2", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.28.6", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://npm-proxy.dev.databricks.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.29.2", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/runtime-corejs3/-/runtime-corejs3-7.29.2.tgz", + "integrity": "sha512-Lc94FOD5+0aXhdb0Tdg3RUtqT6yWbI/BbFWvlaSJ3gAb9Ks+99nHRDKADVqC37er4eCB0fHyWT+y+K3QOvJKbw==", + "license": "MIT", + "dependencies": { + "core-js-pure": "^3.48.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://npm-proxy.dev.databricks.com/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "2.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", + "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/postcss-alpha-function": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz", + "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "5.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", + "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "4.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz", + "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-function-display-p3-linear": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz", + "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz", + "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz", + "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.8", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz", + "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-contrast-color-function": { + "version": "2.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz", + "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.9", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", + "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.11", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz", + "integrity": "sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "5.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz", + "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "4.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz", + "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "4.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz", + "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "5.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", + "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-light-dark-function": { + "version": "2.0.11", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz", + "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", + "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overflow": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", + "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overscroll-behavior": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", + "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", + "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", + "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "2.0.9", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", + "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "3.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", + "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", + "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz", + "integrity": "sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz", + "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-position-area-property": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz", + "integrity": "sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz", + "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-property-rule-prelude-list": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz", + "integrity": "sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-random-function": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", + "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "3.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz", + "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", + "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.4", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", + "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "4.0.9", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", + "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-syntax-descriptor-syntax-production": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz", + "integrity": "sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-system-ui-font-family": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz", + "integrity": "sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "4.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz", + "integrity": "sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "4.0.9", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", + "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", + "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://npm-proxy.dev.databricks.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/core": { + "version": "4.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/@docsearch/core/-/core-4.6.0.tgz", + "integrity": "sha512-IqG3oSd529jVRQ4dWZQKwZwQLVd//bWJTz2HiL0LkiHrI4U/vLrBasKB7lwQB/69nBAcCgs3TmudxTZSLH/ZQg==", + "license": "MIT", + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@docsearch/css": { + "version": "4.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/@docsearch/css/-/css-4.6.0.tgz", + "integrity": "sha512-YlcAimkXclvqta47g47efzCM5CFxDwv2ClkDfEs/fC/Ak0OxPH2b3czwa4o8O1TRBf+ujFF2RiUwszz2fPVNJQ==", + "license": "MIT" + }, + "node_modules/@docsearch/react": { + "version": "4.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/@docsearch/react/-/react-4.6.0.tgz", + "integrity": "sha512-j8H5B4ArGxBPBWvw3X0J0Rm/Pjv2JDa2rV5OE0DLTp5oiBCptIJ/YlNOhZxuzbO2nwge+o3Z52nJRi3hryK9cA==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.19.2", + "@docsearch/core": "4.6.0", + "@docsearch/css": "4.6.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@docusaurus/babel": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/babel/-/babel-3.9.2.tgz", + "integrity": "sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.25.9", + "@babel/preset-react": "^7.25.9", + "@babel/preset-typescript": "^7.25.9", + "@babel/runtime": "^7.25.9", + "@babel/runtime-corejs3": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/bundler": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/bundler/-/bundler-3.9.2.tgz", + "integrity": "sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@docusaurus/babel": "3.9.2", + "@docusaurus/cssnano-preset": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "babel-loader": "^9.2.1", + "clean-css": "^5.3.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.11.0", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", + "file-loader": "^6.2.0", + "html-minifier-terser": "^7.2.0", + "mini-css-extract-plugin": "^2.9.2", + "null-loader": "^4.0.1", + "postcss": "^8.5.4", + "postcss-loader": "^7.3.4", + "postcss-preset-env": "^10.2.1", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "webpack": "^5.95.0", + "webpackbar": "^6.0.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/core/-/core-3.9.2.tgz", + "integrity": "sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.9.2", + "@docusaurus/bundler": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "core-js": "^3.31.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "eval": "^0.1.8", + "execa": "5.1.1", + "fs-extra": "^11.1.1", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.6.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "open": "^8.4.0", + "p-map": "^4.0.0", + "prompts": "^2.4.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.6", + "tinypool": "^1.0.2", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "webpack": "^5.95.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-dev-server": "^5.2.2", + "webpack-merge": "^6.0.1" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@mdx-js/react": "^3.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.9.2.tgz", + "integrity": "sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ==", + "license": "MIT", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.5.4", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/logger": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/logger/-/logger-3.9.2.tgz", + "integrity": "sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/mdx-loader/-/mdx-loader-3.9.2.tgz", + "integrity": "sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^2.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.9.2.tgz", + "integrity": "sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.9.2", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.9.2.tgz", + "integrity": "sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "cheerio": "1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "schema-dts": "^1.1.2", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz", + "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "schema-dts": "^1.1.2", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.9.2.tgz", + "integrity": "sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-css-cascade-layers": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.9.2.tgz", + "integrity": "sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-debug/-/plugin-debug-3.9.2.tgz", + "integrity": "sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "fs-extra": "^11.1.1", + "react-json-view-lite": "^2.3.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.9.2.tgz", + "integrity": "sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.9.2.tgz", + "integrity": "sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@types/gtag.js": "^0.0.12", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.9.2.tgz", + "integrity": "sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.9.2.tgz", + "integrity": "sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-svgr": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.9.2.tgz", + "integrity": "sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@svgr/core": "8.1.0", + "@svgr/webpack": "^8.1.0", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/preset-classic/-/preset-classic-3.9.2.tgz", + "integrity": "sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/plugin-content-blog": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/plugin-content-pages": "3.9.2", + "@docusaurus/plugin-css-cascade-layers": "3.9.2", + "@docusaurus/plugin-debug": "3.9.2", + "@docusaurus/plugin-google-analytics": "3.9.2", + "@docusaurus/plugin-google-gtag": "3.9.2", + "@docusaurus/plugin-google-tag-manager": "3.9.2", + "@docusaurus/plugin-sitemap": "3.9.2", + "@docusaurus/plugin-svgr": "3.9.2", + "@docusaurus/theme-classic": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-search-algolia": "3.9.2", + "@docusaurus/types": "3.9.2" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/theme-classic/-/theme-classic-3.9.2.tgz", + "integrity": "sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/plugin-content-blog": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/plugin-content-pages": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-translations": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "infima": "0.2.0-alpha.45", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.5.4", + "prism-react-renderer": "^2.3.0", + "prismjs": "^1.29.0", + "react-router-dom": "^5.3.4", + "rtlcss": "^4.1.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/theme-common/-/theme-common-3.9.2.tgz", + "integrity": "sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag==", + "license": "MIT", + "dependencies": { + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^2.0.0", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.3.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.2.tgz", + "integrity": "sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw==", + "license": "MIT", + "dependencies": { + "@docsearch/react": "^3.9.0 || ^4.1.0", + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-translations": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "algoliasearch": "^5.37.0", + "algoliasearch-helper": "^3.26.0", + "clsx": "^2.0.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/theme-translations/-/theme-translations-3.9.2.tgz", + "integrity": "sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA==", + "license": "MIT", + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/tsconfig": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/tsconfig/-/tsconfig-3.9.2.tgz", + "integrity": "sha512-j6/Fp4Rlpxsc632cnRnl5HpOWeb6ZKssDj6/XzzAzVGXXfm9Eptx3rxCC+fDzySn9fHTS+CWJjPineCR1bB5WQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docusaurus/types": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/types/-/types-3.9.2.tgz", + "integrity": "sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q==", + "license": "MIT", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "@types/history": "^4.7.11", + "@types/mdast": "^4.0.2", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.9.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.95.0", + "webpack-merge": "^5.9.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/types/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://npm-proxy.dev.databricks.com/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/utils/-/utils-3.9.2.tgz", + "integrity": "sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "escape-string-regexp": "^4.0.0", + "execa": "5.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "p-queue": "^6.6.2", + "prompts": "^2.4.2", + "resolve-pathname": "^3.0.0", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/utils-common/-/utils-common-3.9.2.tgz", + "integrity": "sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.9.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "3.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/utils-validation/-/utils-validation-3.9.2.tgz", + "integrity": "sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://npm-proxy.dev.databricks.com/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://npm-proxy.dev.databricks.com/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://npm-proxy.dev.databricks.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "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://npm-proxy.dev.databricks.com/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "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://npm-proxy.dev.databricks.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://npm-proxy.dev.databricks.com/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://npm-proxy.dev.databricks.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://npm-proxy.dev.databricks.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/buffers": { + "version": "17.67.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-core": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/fs-core/-/fs-core-4.57.1.tgz", + "integrity": "sha512-YrEi/ZPmgc+GfdO0esBF04qv8boK9Dg9WpRQw/+vM8Qt3nnVIJWIa8HwZ/LXVZ0DB11XUROM8El/7yYTJX+WtA==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-fsa": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.1.tgz", + "integrity": "sha512-ooEPvSW/HQDivPDPZMibHGKZf/QS4WRir1czGZmXmp3MsQqLECZEpN0JobrD8iV9BzsuwdIv+PxtWX9WpPLsIA==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/fs-node/-/fs-node-4.57.1.tgz", + "integrity": "sha512-3YaKhP8gXEKN+2O49GLNfNb5l2gbnCFHyAaybbA2JkkbQP3dpdef7WcUaHAulg/c5Dg4VncHsA3NWAUSZMR5KQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-print": "4.57.1", + "@jsonjoy.com/fs-snapshot": "4.57.1", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-builtins": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.1.tgz", + "integrity": "sha512-XHkFKQ5GSH3uxm8c3ZYXVrexGdscpWKIcMWKFQpMpMJc8gA3AwOMBJXJlgpdJqmrhPyQXxaY9nbkNeYpacC0Og==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-to-fsa": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.1.tgz", + "integrity": "sha512-pqGHyWWzNck4jRfaGV39hkqpY5QjRUQ/nRbNT7FYbBa0xf4bDG+TE1Gt2KWZrSkrkZZDE3qZUjYMbjwSliX6pg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-fsa": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-utils": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.1.tgz", + "integrity": "sha512-vp+7ZzIB8v43G+GLXTS4oDUSQmhAsRz532QmmWBbdYA20s465JvwhkSFvX9cVTqRRAQg+vZ7zWDaIEh0lFe2gw==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.1" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-print": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/fs-print/-/fs-print-4.57.1.tgz", + "integrity": "sha512-Ynct7ZJmfk6qoXDOKfpovNA36ITUx8rChLmRQtW08J73VOiuNsU8PB6d/Xs7fxJC2ohWR3a5AqyjmLojfrw5yw==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-utils": "4.57.1", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.1.tgz", + "integrity": "sha512-/oG8xBNFMbDXTq9J7vepSA1kerS5vpgd3p5QZSPd+nX59uwodGJftI51gDYyHRpP57P3WCQf7LHtBYPqwUg2Bg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/util": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/@mdx-js/react/-/react-3.1.1.tgz", + "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://npm-proxy.dev.databricks.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "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://npm-proxy.dev.databricks.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://npm-proxy.dev.databricks.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", + "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", + "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", + "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", + "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-rsa": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", + "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", + "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pfx": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", + "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", + "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "license": "MIT", + "dependencies": { + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", + "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", + "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://npm-proxy.dev.databricks.com/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://npm-proxy.dev.databricks.com/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "3.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/@pnpm/npm-conf/-/npm-conf-3.0.2.tgz", + "integrity": "sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==", + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://npm-proxy.dev.databricks.com/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://npm-proxy.dev.databricks.com/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.10", + "resolved": "https://npm-proxy.dev.databricks.com/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@slorber/remark-comment": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", + "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.1.0", + "micromark-util-symbol": "^1.0.1" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://npm-proxy.dev.databricks.com/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://npm-proxy.dev.databricks.com/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://npm-proxy.dev.databricks.com/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://npm-proxy.dev.databricks.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://npm-proxy.dev.databricks.com/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://npm-proxy.dev.databricks.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://npm-proxy.dev.databricks.com/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://npm-proxy.dev.databricks.com/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.8", + "resolved": "https://npm-proxy.dev.databricks.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/gtag.js": { + "version": "0.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/@types/gtag.js/-/gtag.js-0.0.12.tgz", + "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://npm-proxy.dev.databricks.com/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://npm-proxy.dev.databricks.com/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://npm-proxy.dev.databricks.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://npm-proxy.dev.databricks.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://npm-proxy.dev.databricks.com/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://npm-proxy.dev.databricks.com/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/prismjs": { + "version": "1.26.6", + "resolved": "https://npm-proxy.dev.databricks.com/@types/prismjs/-/prismjs-1.26.6.tgz", + "integrity": "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.15.0", + "resolved": "https://npm-proxy.dev.databricks.com/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://npm-proxy.dev.databricks.com/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://npm-proxy.dev.databricks.com/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://npm-proxy.dev.databricks.com/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "version": "5.0.11", + "resolved": "https://npm-proxy.dev.databricks.com/@types/react-router-config/-/react-router-config-5.0.11.tgz", + "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://npm-proxy.dev.databricks.com/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "license": "MIT" + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://npm-proxy.dev.databricks.com/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://npm-proxy.dev.databricks.com/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://npm-proxy.dev.databricks.com/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://npm-proxy.dev.databricks.com/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://npm-proxy.dev.databricks.com/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://npm-proxy.dev.databricks.com/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://npm-proxy.dev.databricks.com/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://npm-proxy.dev.databricks.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://npm-proxy.dev.databricks.com/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/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://npm-proxy.dev.databricks.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://npm-proxy.dev.databricks.com/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://npm-proxy.dev.databricks.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.5", + "resolved": "https://npm-proxy.dev.databricks.com/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://npm-proxy.dev.databricks.com/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/algoliasearch": { + "version": "5.49.2", + "resolved": "https://npm-proxy.dev.databricks.com/algoliasearch/-/algoliasearch-5.49.2.tgz", + "integrity": "sha512-1K0wtDaRONwfhL4h8bbJ9qTjmY6rhGgRvvagXkMBsAOMNr+3Q2SffHECh9DIuNVrMA1JwA0zCwhyepgBZVakng==", + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.15.2", + "@algolia/client-abtesting": "5.49.2", + "@algolia/client-analytics": "5.49.2", + "@algolia/client-common": "5.49.2", + "@algolia/client-insights": "5.49.2", + "@algolia/client-personalization": "5.49.2", + "@algolia/client-query-suggestions": "5.49.2", + "@algolia/client-search": "5.49.2", + "@algolia/ingestion": "1.49.2", + "@algolia/monitoring": "1.49.2", + "@algolia/recommend": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.28.0", + "resolved": "https://npm-proxy.dev.databricks.com/algoliasearch-helper/-/algoliasearch-helper-3.28.0.tgz", + "integrity": "sha512-GBN0xsxGggaCPElZq24QzMdfphrjIiV2xA+hRXE4/UMpN3nsF2WrM8q+x80OGvGpJWtB7F+4Hq5eSfWwuejXrg==", + "license": "MIT", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://npm-proxy.dev.databricks.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://npm-proxy.dev.databricks.com/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://npm-proxy.dev.databricks.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://npm-proxy.dev.databricks.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asn1js": { + "version": "3.0.7", + "resolved": "https://npm-proxy.dev.databricks.com/asn1js/-/asn1js-3.0.7.tgz", + "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==", + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://npm-proxy.dev.databricks.com/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.27", + "resolved": "https://npm-proxy.dev.databricks.com/autoprefixer/-/autoprefixer-10.4.27.tgz", + "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", + "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.1", + "caniuse-lite": "^1.0.30001774", + "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/babel-loader": { + "version": "9.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "license": "MIT", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://npm-proxy.dev.databricks.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://npm-proxy.dev.databricks.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://npm-proxy.dev.databricks.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.10", + "resolved": "https://npm-proxy.dev.databricks.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz", + "integrity": "sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://npm-proxy.dev.databricks.com/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm-proxy.dev.databricks.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://npm-proxy.dev.databricks.com/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://npm-proxy.dev.databricks.com/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "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.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://npm-proxy.dev.databricks.com/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://npm-proxy.dev.databricks.com/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/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/call-bound": { + "version": "1.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001781", + "resolved": "https://npm-proxy.dev.databricks.com/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz", + "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==", + "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/ccount": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://npm-proxy.dev.databricks.com/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "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/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://npm-proxy.dev.databricks.com/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://npm-proxy.dev.databricks.com/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://npm-proxy.dev.databricks.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://npm-proxy.dev.databricks.com/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://npm-proxy.dev.databricks.com/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combine-promises": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/combine-promises/-/combine-promises-1.2.0.tgz", + "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "license": "ISC" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://npm-proxy.dev.databricks.com/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compressible/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://npm-proxy.dev.databricks.com/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm-proxy.dev.databricks.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://npm-proxy.dev.databricks.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://npm-proxy.dev.databricks.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://npm-proxy.dev.databricks.com/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://npm-proxy.dev.databricks.com/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://npm-proxy.dev.databricks.com/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://npm-proxy.dev.databricks.com/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.49.0", + "resolved": "https://npm-proxy.dev.databricks.com/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.49.0", + "resolved": "https://npm-proxy.dev.databricks.com/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.49.0", + "resolved": "https://npm-proxy.dev.databricks.com/core-js-pure/-/core-js-pure-3.49.0.tgz", + "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://npm-proxy.dev.databricks.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://npm-proxy.dev.databricks.com/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/css-blank-pseudo": { + "version": "7.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", + "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/css-declaration-sorter/-/css-declaration-sorter-7.3.1.tgz", + "integrity": "sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==", + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "7.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz", + "integrity": "sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://npm-proxy.dev.databricks.com/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "10.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", + "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "8.8.0", + "resolved": "https://npm-proxy.dev.databricks.com/cssdb/-/cssdb-8.8.0.tgz", + "integrity": "sha512-QbLeyz2Bgso1iRlh7IpWk6OKa3lLNGXsujVjDMPl9rOZpxKeiG69icLpbLCFxeURwmcdIfZqQyhlooKJYM4f8Q==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "MIT-0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "6.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://npm-proxy.dev.databricks.com/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://npm-proxy.dev.databricks.com/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/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://npm-proxy.dev.databricks.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port": { + "version": "1.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/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/duplexer": { + "version": "0.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.321", + "resolved": "https://npm-proxy.dev.databricks.com/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz", + "integrity": "sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "4.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/emoticon/-/emoticon-4.1.0.tgz", + "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.20.1", + "resolved": "https://npm-proxy.dev.databricks.com/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://npm-proxy.dev.databricks.com/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/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://npm-proxy.dev.databricks.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "2.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/eta/-/eta-2.2.0.tgz", + "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://npm-proxy.dev.databricks.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://npm-proxy.dev.databricks.com/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://npm-proxy.dev.databricks.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://npm-proxy.dev.databricks.com/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://npm-proxy.dev.databricks.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm-proxy.dev.databricks.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://npm-proxy.dev.databricks.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/express/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://npm-proxy.dev.databricks.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "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-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://npm-proxy.dev.databricks.com/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://npm-proxy.dev.databricks.com/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "license": "MIT", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://npm-proxy.dev.databricks.com/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://npm-proxy.dev.databricks.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://npm-proxy.dev.databricks.com/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm-proxy.dev.databricks.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://npm-proxy.dev.databricks.com/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://npm-proxy.dev.databricks.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://npm-proxy.dev.databricks.com/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://npm-proxy.dev.databricks.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://npm-proxy.dev.databricks.com/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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://npm-proxy.dev.databricks.com/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://npm-proxy.dev.databricks.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/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-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/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/get-stream": { + "version": "6.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/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/got": { + "version": "12.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://npm-proxy.dev.databricks.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://npm-proxy.dev.databricks.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://npm-proxy.dev.databricks.com/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/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-yarn": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://npm-proxy.dev.databricks.com/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://npm-proxy.dev.databricks.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://npm-proxy.dev.databricks.com/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://npm-proxy.dev.databricks.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://npm-proxy.dev.databricks.com/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://npm-proxy.dev.databricks.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.6", + "resolved": "https://npm-proxy.dev.databricks.com/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz", + "integrity": "sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://npm-proxy.dev.databricks.com/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://npm-proxy.dev.databricks.com/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://npm-proxy.dev.databricks.com/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://npm-proxy.dev.databricks.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://npm-proxy.dev.databricks.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://npm-proxy.dev.databricks.com/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://npm-proxy.dev.databricks.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infima": { + "version": "0.2.0-alpha.45", + "resolved": "https://npm-proxy.dev.databricks.com/infima/-/infima-0.2.0-alpha.45.tgz", + "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://npm-proxy.dev.databricks.com/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://npm-proxy.dev.databricks.com/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-network-error": { + "version": "1.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-network-error/-/is-network-error-1.3.1.tgz", + "integrity": "sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-npm/-/is-npm-6.1.0.tgz", + "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://npm-proxy.dev.databricks.com/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://npm-proxy.dev.databricks.com/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://npm-proxy.dev.databricks.com/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://npm-proxy.dev.databricks.com/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://npm-proxy.dev.databricks.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/launch-editor": { + "version": "2.13.2", + "resolved": "https://npm-proxy.dev.databricks.com/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://npm-proxy.dev.databricks.com/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://npm-proxy.dev.databricks.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://npm-proxy.dev.databricks.com/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://npm-proxy.dev.databricks.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/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/lower-case": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://npm-proxy.dev.databricks.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.57.1", + "resolved": "https://npm-proxy.dev.databricks.com/memfs/-/memfs-4.57.1.tgz", + "integrity": "sha512-WvzrWPwMQT+PtbX2Et64R4qXKK0fj/8pO85MrUCzymX3twwCiJCdvntW3HdhG1teLJcHDDLIKx5+c3HckWYZtQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-fsa": "4.57.1", + "@jsonjoy.com/fs-node": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-to-fsa": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-print": "4.57.1", + "@jsonjoy.com/fs-snapshot": "4.57.1", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-directive": { + "version": "3.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-space/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://npm-proxy.dev.databricks.com/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://npm-proxy.dev.databricks.com/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.10.1", + "resolved": "https://npm-proxy.dev.databricks.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.1.tgz", + "integrity": "sha512-k7G3Y5QOegl380tXmZ68foBRRjE9Ljavx835ObdvmZjQ639izvZD8CS7BkWw1qKPPzHsGL/JDhl0uyU1zc2rJw==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://npm-proxy.dev.databricks.com/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://npm-proxy.dev.databricks.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://npm-proxy.dev.databricks.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://npm-proxy.dev.databricks.com/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://npm-proxy.dev.databricks.com/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "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/negotiator": { + "version": "0.6.4", + "resolved": "https://npm-proxy.dev.databricks.com/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://npm-proxy.dev.databricks.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "2.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-releases": { + "version": "2.0.36", + "resolved": "https://npm-proxy.dev.databricks.com/node-releases/-/node-releases-2.0.36.tgz", + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/normalize-url/-/normalize-url-8.1.1.tgz", + "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/null-loader": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/null-loader/-/null-loader-4.0.1.tgz", + "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/null-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://npm-proxy.dev.databricks.com/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/null-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://npm-proxy.dev.databricks.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/null-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/null-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://npm-proxy.dev.databricks.com/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://npm-proxy.dev.databricks.com/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://npm-proxy.dev.databricks.com/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://npm-proxy.dev.databricks.com/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://npm-proxy.dev.databricks.com/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://npm-proxy.dev.databricks.com/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", + "license": "ISC" + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://npm-proxy.dev.databricks.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://npm-proxy.dev.databricks.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://npm-proxy.dev.databricks.com/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "license": "BSD-3-Clause", + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/postcss": { + "version": "8.5.8", + "resolved": "https://npm-proxy.dev.databricks.com/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "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.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "7.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", + "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "7.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz", + "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "10.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", + "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "10.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", + "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-custom-media": { + "version": "11.0.6", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", + "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "14.0.6", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", + "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "8.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", + "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "9.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", + "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-unused": { + "version": "6.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "6.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz", + "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "10.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", + "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within": { + "version": "9.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", + "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "6.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", + "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "7.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", + "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "7.0.12", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz", + "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "8.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-merge-idents": { + "version": "6.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "13.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-resolve-nested": "^3.1.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { + "version": "3.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", + "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "6.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", + "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "10.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-place/-/postcss-place-10.0.0.tgz", + "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "10.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz", + "integrity": "sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-alpha-function": "^1.0.1", + "@csstools/postcss-cascade-layers": "^5.0.2", + "@csstools/postcss-color-function": "^4.0.12", + "@csstools/postcss-color-function-display-p3-linear": "^1.0.1", + "@csstools/postcss-color-mix-function": "^3.0.12", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2", + "@csstools/postcss-content-alt-text": "^2.0.8", + "@csstools/postcss-contrast-color-function": "^2.0.12", + "@csstools/postcss-exponential-functions": "^2.0.9", + "@csstools/postcss-font-format-keywords": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.11", + "@csstools/postcss-gradients-interpolation-method": "^5.0.12", + "@csstools/postcss-hwb-function": "^4.0.12", + "@csstools/postcss-ic-unit": "^4.0.4", + "@csstools/postcss-initial": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^5.0.3", + "@csstools/postcss-light-dark-function": "^2.0.11", + "@csstools/postcss-logical-float-and-clear": "^3.0.0", + "@csstools/postcss-logical-overflow": "^2.0.0", + "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", + "@csstools/postcss-logical-resize": "^3.0.0", + "@csstools/postcss-logical-viewport-units": "^3.0.4", + "@csstools/postcss-media-minmax": "^2.0.9", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", + "@csstools/postcss-nested-calc": "^4.0.0", + "@csstools/postcss-normalize-display-values": "^4.0.1", + "@csstools/postcss-oklab-function": "^4.0.12", + "@csstools/postcss-position-area-property": "^1.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/postcss-property-rule-prelude-list": "^1.0.0", + "@csstools/postcss-random-function": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.12", + "@csstools/postcss-scope-pseudo-class": "^4.0.1", + "@csstools/postcss-sign-functions": "^1.1.4", + "@csstools/postcss-stepped-value-functions": "^4.0.9", + "@csstools/postcss-syntax-descriptor-syntax-production": "^1.0.1", + "@csstools/postcss-system-ui-font-family": "^1.0.0", + "@csstools/postcss-text-decoration-shorthand": "^4.0.3", + "@csstools/postcss-trigonometric-functions": "^4.0.9", + "@csstools/postcss-unset-value": "^4.0.0", + "autoprefixer": "^10.4.23", + "browserslist": "^4.28.1", + "css-blank-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.3", + "css-prefers-color-scheme": "^10.0.0", + "cssdb": "^8.6.0", + "postcss-attribute-case-insensitive": "^7.0.1", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^7.0.12", + "postcss-color-hex-alpha": "^10.0.0", + "postcss-color-rebeccapurple": "^10.0.0", + "postcss-custom-media": "^11.0.6", + "postcss-custom-properties": "^14.0.6", + "postcss-custom-selectors": "^8.0.5", + "postcss-dir-pseudo-class": "^9.0.1", + "postcss-double-position-gradients": "^6.0.4", + "postcss-focus-visible": "^10.0.1", + "postcss-focus-within": "^9.0.1", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^6.0.0", + "postcss-image-set-function": "^7.0.0", + "postcss-lab-function": "^7.0.12", + "postcss-logical": "^8.1.0", + "postcss-nesting": "^13.0.2", + "postcss-opacity-percentage": "^3.0.0", + "postcss-overflow-shorthand": "^6.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^10.0.0", + "postcss-pseudo-class-any-link": "^10.0.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^8.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "10.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", + "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "6.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "8.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", + "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "5.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "license": "MIT", + "dependencies": { + "sort-css-media-queries": "2.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.23" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/postcss-zindex": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "version": "2.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "license": "MIT", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://npm-proxy.dev.databricks.com/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://npm-proxy.dev.databricks.com/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://npm-proxy.dev.databricks.com/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/property-information": { + "version": "7.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://npm-proxy.dev.databricks.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://npm-proxy.dev.databricks.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://npm-proxy.dev.databricks.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "3.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/pupa/-/pupa-3.3.0.tgz", + "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==", + "license": "MIT", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://npm-proxy.dev.databricks.com/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://npm-proxy.dev.databricks.com/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qs": { + "version": "6.14.2", + "resolved": "https://npm-proxy.dev.databricks.com/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/quick-lru": { + "version": "5.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://npm-proxy.dev.databricks.com/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://npm-proxy.dev.databricks.com/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://npm-proxy.dev.databricks.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://npm-proxy.dev.databricks.com/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://npm-proxy.dev.databricks.com/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-helmet-async": { + "name": "@slorber/react-helmet-async", + "version": "1.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://npm-proxy.dev.databricks.com/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-json-view-lite": { + "version": "2.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz", + "integrity": "sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://npm-proxy.dev.databricks.com/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://npm-proxy.dev.databricks.com/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://npm-proxy.dev.databricks.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://npm-proxy.dev.databricks.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "5.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/registry-auth-token/-/registry-auth-token-5.1.1.tgz", + "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^3.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://npm-proxy.dev.databricks.com/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://npm-proxy.dev.databricks.com/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://npm-proxy.dev.databricks.com/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-directive": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/remark-directive/-/remark-directive-3.0.1.tgz", + "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-emoji": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/remark-emoji/-/remark-emoji-4.0.1.tgz", + "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.2", + "emoticon": "^4.0.1", + "mdast-util-find-and-replace": "^3.0.1", + "node-emoji": "^2.1.0", + "unified": "^11.0.4" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://npm-proxy.dev.databricks.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://npm-proxy.dev.databricks.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://npm-proxy.dev.databricks.com/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "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/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://npm-proxy.dev.databricks.com/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rtlcss": { + "version": "4.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/rtlcss/-/rtlcss-4.3.0.tgz", + "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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/safe-buffer": { + "version": "5.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://npm-proxy.dev.databricks.com/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/schema-dts": { + "version": "1.1.5", + "resolved": "https://npm-proxy.dev.databricks.com/schema-dts/-/schema-dts-1.1.5.tgz", + "integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==", + "license": "Apache-2.0" + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://npm-proxy.dev.databricks.com/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", + "peer": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "5.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", + "license": "MIT", + "dependencies": { + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://npm-proxy.dev.databricks.com/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://npm-proxy.dev.databricks.com/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm-proxy.dev.databricks.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.7", + "resolved": "https://npm-proxy.dev.databricks.com/serve-handler/-/serve-handler-6.1.7.tgz", + "integrity": "sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==", + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "mime-types": "2.1.18", + "minimatch": "3.1.5", + "path-is-inside": "1.0.2", + "path-to-regexp": "3.3.0", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "3.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" + }, + "node_modules/serve-index": { + "version": "1.9.2", + "resolved": "https://npm-proxy.dev.databricks.com/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm-proxy.dev.databricks.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://npm-proxy.dev.databricks.com/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://npm-proxy.dev.databricks.com/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/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://npm-proxy.dev.databricks.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://npm-proxy.dev.databricks.com/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://npm-proxy.dev.databricks.com/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://npm-proxy.dev.databricks.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "7.1.3", + "resolved": "https://npm-proxy.dev.databricks.com/sitemap/-/sitemap-7.1.3.tgz", + "integrity": "sha512-tAjEd+wt/YwnEbfNB2ht51ybBJxbEWwe5ki/Z//Wh0rpBFTCUSj46GnxUKEWzhfuJTsee8x3lybHxFgUMig2hw==", + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://npm-proxy.dev.databricks.com/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "license": "MIT" + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://npm-proxy.dev.databricks.com/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sort-css-media-queries": { + "version": "2.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "license": "MIT", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://npm-proxy.dev.databricks.com/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://npm-proxy.dev.databricks.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://npm-proxy.dev.databricks.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://npm-proxy.dev.databricks.com/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://npm-proxy.dev.databricks.com/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://npm-proxy.dev.databricks.com/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, + "node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "3.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", + "license": "MIT", + "dependencies": { + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tapable": { + "version": "2.3.2", + "resolved": "https://npm-proxy.dev.databricks.com/tapable/-/tapable-2.3.2.tgz", + "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.46.1", + "resolved": "https://npm-proxy.dev.databricks.com/terser/-/terser-5.46.1.tgz", + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", + "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://npm-proxy.dev.databricks.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://npm-proxy.dev.databricks.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/thingies": { + "version": "2.6.0", + "resolved": "https://npm-proxy.dev.databricks.com/thingies/-/thingies-2.6.0.tgz", + "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==", + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://npm-proxy.dev.databricks.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://npm-proxy.dev.databricks.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://npm-proxy.dev.databricks.com/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://npm-proxy.dev.databricks.com/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://npm-proxy.dev.databricks.com/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://npm-proxy.dev.databricks.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://npm-proxy.dev.databricks.com/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/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://npm-proxy.dev.databricks.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://npm-proxy.dev.databricks.com/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://npm-proxy.dev.databricks.com/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://npm-proxy.dev.databricks.com/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "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/update-notifier": { + "version": "6.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", + "is-installed-globally": "^0.4.0", + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "7.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://npm-proxy.dev.databricks.com/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://npm-proxy.dev.databricks.com/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/url-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://npm-proxy.dev.databricks.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/url-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://npm-proxy.dev.databricks.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/url-loader/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://npm-proxy.dev.databricks.com/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/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://npm-proxy.dev.databricks.com/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://npm-proxy.dev.databricks.com/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://npm-proxy.dev.databricks.com/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://npm-proxy.dev.databricks.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://npm-proxy.dev.databricks.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://npm-proxy.dev.databricks.com/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://npm-proxy.dev.databricks.com/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpack": { + "version": "5.105.4", + "resolved": "https://npm-proxy.dev.databricks.com/webpack/-/webpack-5.105.4.tgz", + "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.20.0", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.3.1", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.17", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.4" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://npm-proxy.dev.databricks.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.5", + "resolved": "https://npm-proxy.dev.databricks.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/webpack-dev-middleware/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://npm-proxy.dev.databricks.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server": { + "version": "5.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz", + "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.25", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.8.1", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.22.1", + "graceful-fs": "^4.2.6", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^5.5.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.20.0", + "resolved": "https://npm-proxy.dev.databricks.com/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.4", + "resolved": "https://npm-proxy.dev.databricks.com/webpack-sources/-/webpack-sources-3.3.4.tgz", + "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://npm-proxy.dev.databricks.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://npm-proxy.dev.databricks.com/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/webpackbar": { + "version": "6.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/webpackbar/-/webpackbar-6.0.1.tgz", + "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "consola": "^3.2.3", + "figures": "^3.2.0", + "markdown-table": "^2.0.0", + "pretty-time": "^1.1.0", + "std-env": "^3.7.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/webpackbar/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/webpackbar/node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "license": "MIT", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpackbar/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpackbar/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://npm-proxy.dev.databricks.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://npm-proxy.dev.databricks.com/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://npm-proxy.dev.databricks.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://npm-proxy.dev.databricks.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://npm-proxy.dev.databricks.com/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://npm-proxy.dev.databricks.com/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://npm-proxy.dev.databricks.com/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://npm-proxy.dev.databricks.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://npm-proxy.dev.databricks.com/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://npm-proxy.dev.databricks.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://npm-proxy.dev.databricks.com/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://npm-proxy.dev.databricks.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://npm-proxy.dev.databricks.com/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://npm-proxy.dev.databricks.com/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/lakemeter/docs-site/package.json b/lakemeter/docs-site/package.json new file mode 100644 index 00000000..ee65a7ee --- /dev/null +++ b/lakemeter/docs-site/package.json @@ -0,0 +1,47 @@ +{ + "name": "docs-site", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "typecheck": "tsc" + }, + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/preset-classic": "3.9.2", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/tsconfig": "3.9.2", + "@docusaurus/types": "3.9.2", + "typescript": "~5.6.2" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" + ] + }, + "engines": { + "node": ">=20.0" + } +} diff --git a/lakemeter/docs-site/sidebars.ts b/lakemeter/docs-site/sidebars.ts new file mode 100644 index 00000000..73258373 --- /dev/null +++ b/lakemeter/docs-site/sidebars.ts @@ -0,0 +1,76 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +const sidebars: SidebarsConfig = { + userGuideSidebar: [ + 'intro', + { + type: 'category', + label: 'Getting Started', + collapsed: false, + items: [ + 'user-guide/overview', + 'user-guide/getting-started', + 'user-guide/end-to-end-workflow', + 'user-guide/quick-reference', + 'user-guide/creating-estimates', + ], + }, + { + type: 'category', + label: 'Compute Workloads', + collapsed: false, + items: [ + 'user-guide/workloads', + 'user-guide/jobs-compute', + 'user-guide/all-purpose-compute', + 'user-guide/dlt-pipelines', + 'user-guide/dbsql-warehouses', + ], + }, + { + type: 'category', + label: 'AI/ML & Data Services', + collapsed: false, + items: [ + 'user-guide/model-serving', + 'user-guide/vector-search', + 'user-guide/fmapi-databricks', + 'user-guide/fmapi-proprietary', + 'user-guide/lakebase', + 'user-guide/databricks-apps', + 'user-guide/ai-parse', + 'user-guide/shutterstock-imageai', + ], + }, + { + type: 'category', + label: 'Features', + collapsed: false, + items: [ + 'user-guide/ai-assistant', + 'user-guide/exporting', + 'user-guide/calculation-reference', + 'user-guide/faq', + ], + }, + ], + adminGuideSidebar: [ + { + type: 'category', + label: 'Admin Guide', + collapsed: false, + items: [ + 'admin-guide/deployment', + 'admin-guide/installer', + 'admin-guide/deployment-inventory', + 'admin-guide/api-reference', + 'admin-guide/dependencies-license', + ], + }, + ], + changelogSidebar: [ + 'changelog', + ], +}; + +export default sidebars; diff --git a/lakemeter/docs-site/src/css/custom.css b/lakemeter/docs-site/src/css/custom.css new file mode 100644 index 00000000..d2162c3d --- /dev/null +++ b/lakemeter/docs-site/src/css/custom.css @@ -0,0 +1,96 @@ +:root { + --ifm-color-primary: #FF3621; + --ifm-color-primary-dark: #e62e18; + --ifm-color-primary-darker: #d92b16; + --ifm-color-primary-darkest: #b32312; + --ifm-color-primary-light: #ff4d3a; + --ifm-color-primary-lighter: #ff5947; + --ifm-color-primary-lightest: #ff7d70; + --ifm-code-font-size: 95%; + --ifm-font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); +} + +[data-theme='dark'] { + --ifm-color-primary: #FF5747; + --ifm-color-primary-dark: #ff3a27; + --ifm-color-primary-darker: #ff2b17; + --ifm-color-primary-darkest: #e30d00; + --ifm-color-primary-light: #ff7467; + --ifm-color-primary-lighter: #ff8377; + --ifm-color-primary-lightest: #ffb0a7; + --ifm-background-color: #1a1a2e; + --ifm-background-surface-color: #16213e; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} + +.hero { + background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); +} + +.hero__title { + font-size: 3rem; + font-weight: 700; +} + +.hero__subtitle { + font-size: 1.4rem; + opacity: 0.9; +} + +/* Card styling for feature sections */ +.card { + border-radius: 8px; + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); +} + +/* Table styling */ +table { + display: table; + width: 100%; +} + +table th { + background-color: var(--ifm-color-primary); + color: white; +} + +[data-theme='dark'] table th { + background-color: rgba(255, 87, 71, 0.2); + color: var(--ifm-color-primary-lighter); +} + +/* API reference code blocks */ +.api-method { + display: inline-block; + padding: 2px 8px; + border-radius: 4px; + font-weight: 700; + font-size: 0.85rem; + margin-right: 8px; +} + +.api-method-get { + background-color: #61affe; + color: white; +} + +.api-method-post { + background-color: #49cc90; + color: white; +} + +.api-method-put { + background-color: #fca130; + color: white; +} + +.api-method-delete { + background-color: #f93e3e; + color: white; +} diff --git a/lakemeter/docs-site/static/.nojekyll b/lakemeter/docs-site/static/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/lakemeter/docs-site/static/img/all-workloads-overview.png b/lakemeter/docs-site/static/img/all-workloads-overview.png new file mode 100644 index 00000000..37056137 Binary files /dev/null and b/lakemeter/docs-site/static/img/all-workloads-overview.png differ diff --git a/lakemeter/docs-site/static/img/calculator-overview.png b/lakemeter/docs-site/static/img/calculator-overview.png new file mode 100644 index 00000000..c2b8ac0a Binary files /dev/null and b/lakemeter/docs-site/static/img/calculator-overview.png differ diff --git a/lakemeter/docs-site/static/img/docusaurus-social-card.jpg b/lakemeter/docs-site/static/img/docusaurus-social-card.jpg new file mode 100644 index 00000000..ffcb4482 Binary files /dev/null and b/lakemeter/docs-site/static/img/docusaurus-social-card.jpg differ diff --git a/lakemeter/docs-site/static/img/docusaurus.png b/lakemeter/docs-site/static/img/docusaurus.png new file mode 100644 index 00000000..f458149e Binary files /dev/null and b/lakemeter/docs-site/static/img/docusaurus.png differ diff --git a/lakemeter/docs-site/static/img/estimate-with-workloads.png b/lakemeter/docs-site/static/img/estimate-with-workloads.png new file mode 100644 index 00000000..c2b8ac0a Binary files /dev/null and b/lakemeter/docs-site/static/img/estimate-with-workloads.png differ diff --git a/lakemeter/docs-site/static/img/estimates-list.png b/lakemeter/docs-site/static/img/estimates-list.png new file mode 100644 index 00000000..08712d71 Binary files /dev/null and b/lakemeter/docs-site/static/img/estimates-list.png differ diff --git a/lakemeter/docs-site/static/img/favicon.ico b/lakemeter/docs-site/static/img/favicon.ico new file mode 100644 index 00000000..c01d54bc Binary files /dev/null and b/lakemeter/docs-site/static/img/favicon.ico differ diff --git a/lakemeter/docs-site/static/img/gifs/.gitkeep b/lakemeter/docs-site/static/img/gifs/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/lakemeter/docs-site/static/img/gifs/adding-workload.gif b/lakemeter/docs-site/static/img/gifs/adding-workload.gif new file mode 100644 index 00000000..77ebaa58 Binary files /dev/null and b/lakemeter/docs-site/static/img/gifs/adding-workload.gif differ diff --git a/lakemeter/docs-site/static/img/gifs/ai-assistant.gif b/lakemeter/docs-site/static/img/gifs/ai-assistant.gif new file mode 100644 index 00000000..e98dab50 Binary files /dev/null and b/lakemeter/docs-site/static/img/gifs/ai-assistant.gif differ diff --git a/lakemeter/docs-site/static/img/gifs/cost-summary.gif b/lakemeter/docs-site/static/img/gifs/cost-summary.gif new file mode 100644 index 00000000..f797475e Binary files /dev/null and b/lakemeter/docs-site/static/img/gifs/cost-summary.gif differ diff --git a/lakemeter/docs-site/static/img/gifs/creating-estimate.gif b/lakemeter/docs-site/static/img/gifs/creating-estimate.gif new file mode 100644 index 00000000..931204d1 Binary files /dev/null and b/lakemeter/docs-site/static/img/gifs/creating-estimate.gif differ diff --git a/lakemeter/docs-site/static/img/gifs/drag-and-drop.gif b/lakemeter/docs-site/static/img/gifs/drag-and-drop.gif new file mode 100644 index 00000000..31c673b2 Binary files /dev/null and b/lakemeter/docs-site/static/img/gifs/drag-and-drop.gif differ diff --git a/lakemeter/docs-site/static/img/gifs/export-excel.gif b/lakemeter/docs-site/static/img/gifs/export-excel.gif new file mode 100644 index 00000000..1967a95d Binary files /dev/null and b/lakemeter/docs-site/static/img/gifs/export-excel.gif differ diff --git a/lakemeter/docs-site/static/img/guides/admin-api-reference-guide.png b/lakemeter/docs-site/static/img/guides/admin-api-reference-guide.png new file mode 100644 index 00000000..c76ee542 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/admin-api-reference-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/admin-architecture-guide.png b/lakemeter/docs-site/static/img/guides/admin-architecture-guide.png new file mode 100644 index 00000000..791baf68 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/admin-architecture-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/admin-configuration-guide.png b/lakemeter/docs-site/static/img/guides/admin-configuration-guide.png new file mode 100644 index 00000000..032c2c77 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/admin-configuration-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/admin-database-guide.png b/lakemeter/docs-site/static/img/guides/admin-database-guide.png new file mode 100644 index 00000000..0bcd3f6d Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/admin-database-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/admin-database-schema.png b/lakemeter/docs-site/static/img/guides/admin-database-schema.png new file mode 100644 index 00000000..c665ee70 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/admin-database-schema.png differ diff --git a/lakemeter/docs-site/static/img/guides/admin-deployment-guide.png b/lakemeter/docs-site/static/img/guides/admin-deployment-guide.png new file mode 100644 index 00000000..ac45c319 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/admin-deployment-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/admin-permissions-guide.png b/lakemeter/docs-site/static/img/guides/admin-permissions-guide.png new file mode 100644 index 00000000..c68d9d0c Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/admin-permissions-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/admin-troubleshooting-guide.png b/lakemeter/docs-site/static/img/guides/admin-troubleshooting-guide.png new file mode 100644 index 00000000..34f346ba Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/admin-troubleshooting-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/ai-assistant-guide.png b/lakemeter/docs-site/static/img/guides/ai-assistant-guide.png new file mode 100644 index 00000000..a6fca2f7 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/ai-assistant-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/ai-assistant-tools.png b/lakemeter/docs-site/static/img/guides/ai-assistant-tools.png new file mode 100644 index 00000000..a5dfb64f Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/ai-assistant-tools.png differ diff --git a/lakemeter/docs-site/static/img/guides/calculation-reference-guide.png b/lakemeter/docs-site/static/img/guides/calculation-reference-guide.png new file mode 100644 index 00000000..3a6f543f Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/calculation-reference-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/calculation-worked-example.png b/lakemeter/docs-site/static/img/guides/calculation-worked-example.png new file mode 100644 index 00000000..84b36fd5 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/calculation-worked-example.png differ diff --git a/lakemeter/docs-site/static/img/guides/dbsql-warehouses-guide.png b/lakemeter/docs-site/static/img/guides/dbsql-warehouses-guide.png new file mode 100644 index 00000000..3c09ff1b Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/dbsql-warehouses-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/dbsql-worked-example.png b/lakemeter/docs-site/static/img/guides/dbsql-worked-example.png new file mode 100644 index 00000000..d40877c9 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/dbsql-worked-example.png differ diff --git a/lakemeter/docs-site/static/img/guides/export-excel-structure.png b/lakemeter/docs-site/static/img/guides/export-excel-structure.png new file mode 100644 index 00000000..6b985b5d Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/export-excel-structure.png differ diff --git a/lakemeter/docs-site/static/img/guides/export-guide.png b/lakemeter/docs-site/static/img/guides/export-guide.png new file mode 100644 index 00000000..2a62d9f2 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/export-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/faq-guide.png b/lakemeter/docs-site/static/img/guides/faq-guide.png new file mode 100644 index 00000000..66b72aa8 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/faq-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/faq-workload-table.png b/lakemeter/docs-site/static/img/guides/faq-workload-table.png new file mode 100644 index 00000000..7407cb32 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/faq-workload-table.png differ diff --git a/lakemeter/docs-site/static/img/guides/fmapi-databricks-guide.png b/lakemeter/docs-site/static/img/guides/fmapi-databricks-guide.png new file mode 100644 index 00000000..3c09ff1b Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/fmapi-databricks-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/fmapi-databricks-worked-example.png b/lakemeter/docs-site/static/img/guides/fmapi-databricks-worked-example.png new file mode 100644 index 00000000..0fe07e7e Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/fmapi-databricks-worked-example.png differ diff --git a/lakemeter/docs-site/static/img/guides/fmapi-proprietary-guide.png b/lakemeter/docs-site/static/img/guides/fmapi-proprietary-guide.png new file mode 100644 index 00000000..04758435 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/fmapi-proprietary-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/fmapi-proprietary-worked-example.png b/lakemeter/docs-site/static/img/guides/fmapi-proprietary-worked-example.png new file mode 100644 index 00000000..61e61b16 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/fmapi-proprietary-worked-example.png differ diff --git a/lakemeter/docs-site/static/img/guides/getting-started-page.png b/lakemeter/docs-site/static/img/guides/getting-started-page.png new file mode 100644 index 00000000..8bcf2ab8 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/getting-started-page.png differ diff --git a/lakemeter/docs-site/static/img/guides/lakebase-guide.png b/lakemeter/docs-site/static/img/guides/lakebase-guide.png new file mode 100644 index 00000000..c64f84b6 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/lakebase-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/lakebase-worked-example.png b/lakemeter/docs-site/static/img/guides/lakebase-worked-example.png new file mode 100644 index 00000000..ba5223dd Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/lakebase-worked-example.png differ diff --git a/lakemeter/docs-site/static/img/guides/model-serving-guide.png b/lakemeter/docs-site/static/img/guides/model-serving-guide.png new file mode 100644 index 00000000..6103a4f6 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/model-serving-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/model-serving-worked-example.png b/lakemeter/docs-site/static/img/guides/model-serving-worked-example.png new file mode 100644 index 00000000..44a197d6 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/model-serving-worked-example.png differ diff --git a/lakemeter/docs-site/static/img/guides/notebook-terminal-button.png b/lakemeter/docs-site/static/img/guides/notebook-terminal-button.png new file mode 100644 index 00000000..a1008094 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/notebook-terminal-button.png differ diff --git a/lakemeter/docs-site/static/img/guides/notebook-terminal-cli.png b/lakemeter/docs-site/static/img/guides/notebook-terminal-cli.png new file mode 100644 index 00000000..5a72d620 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/notebook-terminal-cli.png differ diff --git a/lakemeter/docs-site/static/img/guides/overview-page.png b/lakemeter/docs-site/static/img/guides/overview-page.png new file mode 100644 index 00000000..f0dbfccd Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/overview-page.png differ diff --git a/lakemeter/docs-site/static/img/guides/vector-search-guide.png b/lakemeter/docs-site/static/img/guides/vector-search-guide.png new file mode 100644 index 00000000..ae40ec41 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/vector-search-guide.png differ diff --git a/lakemeter/docs-site/static/img/guides/vector-search-worked-example.png b/lakemeter/docs-site/static/img/guides/vector-search-worked-example.png new file mode 100644 index 00000000..f4091f98 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/vector-search-worked-example.png differ diff --git a/lakemeter/docs-site/static/img/guides/workloads-overview-page.png b/lakemeter/docs-site/static/img/guides/workloads-overview-page.png new file mode 100644 index 00000000..37056137 Binary files /dev/null and b/lakemeter/docs-site/static/img/guides/workloads-overview-page.png differ diff --git a/lakemeter/docs-site/static/img/home-page.png b/lakemeter/docs-site/static/img/home-page.png new file mode 100644 index 00000000..04152498 Binary files /dev/null and b/lakemeter/docs-site/static/img/home-page.png differ diff --git a/lakemeter/docs-site/static/img/login-page.png b/lakemeter/docs-site/static/img/login-page.png new file mode 100644 index 00000000..465ee9a5 Binary files /dev/null and b/lakemeter/docs-site/static/img/login-page.png differ diff --git a/lakemeter/docs-site/static/img/logo.svg b/lakemeter/docs-site/static/img/logo.svg new file mode 100644 index 00000000..9db6d0d0 --- /dev/null +++ b/lakemeter/docs-site/static/img/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lakemeter/docs-site/static/img/undraw_docusaurus_mountain.svg b/lakemeter/docs-site/static/img/undraw_docusaurus_mountain.svg new file mode 100644 index 00000000..af961c49 --- /dev/null +++ b/lakemeter/docs-site/static/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lakemeter/docs-site/static/img/undraw_docusaurus_react.svg b/lakemeter/docs-site/static/img/undraw_docusaurus_react.svg new file mode 100644 index 00000000..94b5cf08 --- /dev/null +++ b/lakemeter/docs-site/static/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lakemeter/docs-site/static/img/undraw_docusaurus_tree.svg b/lakemeter/docs-site/static/img/undraw_docusaurus_tree.svg new file mode 100644 index 00000000..d9161d33 --- /dev/null +++ b/lakemeter/docs-site/static/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lakemeter/docs-site/static/img/workload-calculation-detail.png b/lakemeter/docs-site/static/img/workload-calculation-detail.png new file mode 100644 index 00000000..9c02623a Binary files /dev/null and b/lakemeter/docs-site/static/img/workload-calculation-detail.png differ diff --git a/lakemeter/docs-site/static/img/workload-expanded-config.png b/lakemeter/docs-site/static/img/workload-expanded-config.png new file mode 100644 index 00000000..1175d9e1 Binary files /dev/null and b/lakemeter/docs-site/static/img/workload-expanded-config.png differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/concat.txt b/lakemeter/docs-site/static/video/_audio_clips/concat.txt new file mode 100644 index 00000000..445e0301 --- /dev/null +++ b/lakemeter/docs-site/static/video/_audio_clips/concat.txt @@ -0,0 +1,49 @@ +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s1_welcome.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s1_estimates.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s2_help.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s2_docs.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s2_pricing.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_create.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_name.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_region.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_tier.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_done.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4_add1.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4_type1.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4_config1.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4_cost1.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4_add2.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4_type2.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4_config2.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4_cost2.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s5_summary.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s5_detail.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_intro.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_ask.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_response.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s7_export.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/silence_500ms.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s8_close.mp3' diff --git a/lakemeter/docs-site/static/video/_audio_clips/s1_estimates.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s1_estimates.mp3 new file mode 100644 index 00000000..790b9892 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s1_estimates.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s1_welcome.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s1_welcome.mp3 new file mode 100644 index 00000000..bd47bf71 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s1_welcome.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s2_docs.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s2_docs.mp3 new file mode 100644 index 00000000..ce4d5220 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s2_docs.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s2_help.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s2_help.mp3 new file mode 100644 index 00000000..58714696 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s2_help.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s2_pricing.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s2_pricing.mp3 new file mode 100644 index 00000000..81d90352 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s2_pricing.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s3_create.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s3_create.mp3 new file mode 100644 index 00000000..e4ba79ef Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s3_create.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s3_done.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s3_done.mp3 new file mode 100644 index 00000000..e6f1c80b Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s3_done.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s3_name.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s3_name.mp3 new file mode 100644 index 00000000..c5d53f78 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s3_name.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s3_region.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s3_region.mp3 new file mode 100644 index 00000000..f4b2e751 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s3_region.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s3_tier.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s3_tier.mp3 new file mode 100644 index 00000000..5dba9694 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s3_tier.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_calc.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_calc.mp3 new file mode 100644 index 00000000..55db4390 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_calc.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_driver.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_driver.mp3 new file mode 100644 index 00000000..3b2b7fc8 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_driver.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_formula.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_formula.mp3 new file mode 100644 index 00000000..5ff6ef01 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_formula.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_formula_detail.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_formula_detail.mp3 new file mode 100644 index 00000000..6783c9db Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_formula_detail.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_intro.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_intro.mp3 new file mode 100644 index 00000000..3afc8509 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_intro.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_save.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_save.mp3 new file mode 100644 index 00000000..88c83e51 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_save.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_type.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_type.mp3 new file mode 100644 index 00000000..d6a673ed Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_type.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_usage.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_usage.mp3 new file mode 100644 index 00000000..ad2891c2 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_usage.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4a_worker.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4a_worker.mp3 new file mode 100644 index 00000000..cd644972 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4a_worker.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4b_compare.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4b_compare.mp3 new file mode 100644 index 00000000..1aaaf229 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4b_compare.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4b_intro.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4b_intro.mp3 new file mode 100644 index 00000000..aab753bc Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4b_intro.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4b_save.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4b_save.mp3 new file mode 100644 index 00000000..b745b33b Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4b_save.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4b_size.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4b_size.mp3 new file mode 100644 index 00000000..5a9163d3 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4b_size.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4b_type.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4b_type.mp3 new file mode 100644 index 00000000..7bf82aad Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4b_type.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s4b_usage.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s4b_usage.mp3 new file mode 100644 index 00000000..75f47906 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s4b_usage.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s5_detail.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s5_detail.mp3 new file mode 100644 index 00000000..1342074a Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s5_detail.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s5_summary.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s5_summary.mp3 new file mode 100644 index 00000000..eaa43c6e Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s5_summary.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s6_accept.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s6_accept.mp3 new file mode 100644 index 00000000..8ed5e17d Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s6_accept.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s6_added.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s6_added.mp3 new file mode 100644 index 00000000..51ee2a93 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s6_added.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s6_ask.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s6_ask.mp3 new file mode 100644 index 00000000..4d9c436a Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s6_ask.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s6_config.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s6_config.mp3 new file mode 100644 index 00000000..8b872e6c Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s6_config.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s6_intro.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s6_intro.mp3 new file mode 100644 index 00000000..4f495aad Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s6_intro.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s6_pick.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s6_pick.mp3 new file mode 100644 index 00000000..42358bd3 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s6_pick.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s6_response.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s6_response.mp3 new file mode 100644 index 00000000..1cc1448e Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s6_response.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s7_export.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s7_export.mp3 new file mode 100644 index 00000000..296afde1 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s7_export.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/s8_close.mp3 b/lakemeter/docs-site/static/video/_audio_clips/s8_close.mp3 new file mode 100644 index 00000000..4867ccae Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/s8_close.mp3 differ diff --git a/lakemeter/docs-site/static/video/_audio_clips/sync_concat.txt b/lakemeter/docs-site/static/video/_audio_clips/sync_concat.txt new file mode 100644 index 00000000..8667ee37 --- /dev/null +++ b/lakemeter/docs-site/static/video/_audio_clips/sync_concat.txt @@ -0,0 +1,67 @@ +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_0.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s1_welcome.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_2.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s2_help.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_4.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_create.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_6.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_name.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_8.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_region.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_10.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_tier.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_12.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s3_done.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_14.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_intro.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_16.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_type.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_18.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_driver.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_20.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_worker.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_22.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_usage.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_24.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_save.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_26.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_calc.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_28.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_formula.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_30.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4a_formula_detail.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_32.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4b_intro.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_34.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4b_type.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_36.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4b_size.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_38.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4b_usage.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_40.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4b_save.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_42.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s4b_compare.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_44.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s5_summary.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_46.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s5_detail.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_48.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_intro.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_50.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_ask.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_52.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_pick.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_54.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_config.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_56.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_response.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_58.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_accept.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_60.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s6_added.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_62.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s7_export.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_64.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/s8_close.mp3' +file '/Users/steven.tan/Desktop/Ent 1 - Q4 FY 2026 Team Project/lakemeter_app/docs-site/static/video/_audio_clips/_sil_trailing.mp3' diff --git a/lakemeter/docs-site/static/video/_audio_clips/synced_combined.mp3 b/lakemeter/docs-site/static/video/_audio_clips/synced_combined.mp3 new file mode 100644 index 00000000..4ea99955 Binary files /dev/null and b/lakemeter/docs-site/static/video/_audio_clips/synced_combined.mp3 differ diff --git a/lakemeter/docs-site/static/video/capture_screenshots.py b/lakemeter/docs-site/static/video/capture_screenshots.py new file mode 100644 index 00000000..04e185b9 --- /dev/null +++ b/lakemeter/docs-site/static/video/capture_screenshots.py @@ -0,0 +1,189 @@ +"""Re-capture all documentation screenshots with Playwright.""" +import asyncio +import os +from playwright.async_api import async_playwright + +APP_URL = "http://localhost:8000" +ESTIMATE_URL = f"{APP_URL}/calculator/2fc50a70-060d-49e2-b845-eb8c055f4aeb" +IMG_DIR = os.path.join(os.path.dirname(__file__), "..", "img") +GUIDES_DIR = os.path.join(IMG_DIR, "guides") + + +async def capture_all(): + os.makedirs(GUIDES_DIR, exist_ok=True) + + async with async_playwright() as p: + browser = await p.chromium.launch(headless=True) + page = await browser.new_page(viewport={"width": 1280, "height": 800}) + + # ─── Main screenshots ─── + + # 1. Home page (estimates list) + print("Capturing: home-page.png") + await page.goto(APP_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(3000) + await page.screenshot(path=os.path.join(IMG_DIR, "home-page.png")) + + # 2. Estimates list + print("Capturing: estimates-list.png") + await page.screenshot(path=os.path.join(IMG_DIR, "estimates-list.png")) + + # 3. Calculator overview (estimate with workloads, workload form open) + print("Capturing: calculator-overview.png") + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(5000) + # Click on a workload to expand it + try: + wl = page.locator('text=Vector Search').first + await wl.click(timeout=5000) + await page.wait_for_timeout(2000) + except: + pass + await page.screenshot(path=os.path.join(IMG_DIR, "calculator-overview.png")) + + # 4. Estimate with workloads (collapsed view) + print("Capturing: estimate-with-workloads.png") + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(5000) + await page.screenshot(path=os.path.join(IMG_DIR, "estimate-with-workloads.png")) + + # 5. Workload expanded config + print("Capturing: workload-expanded-config.png") + try: + wl = page.locator('text=Vector Search').first + await wl.click(timeout=5000) + await page.wait_for_timeout(2000) + except: + pass + await page.screenshot(path=os.path.join(IMG_DIR, "workload-expanded-config.png")) + + # 6. Workload calculation detail (same view, scrolled or different workload) + print("Capturing: workload-calculation-detail.png") + await page.screenshot(path=os.path.join(IMG_DIR, "workload-calculation-detail.png")) + + # 7. All workloads overview + print("Capturing: all-workloads-overview.png") + await page.goto(f"{APP_URL}/workloads", wait_until="load", timeout=60000) + await page.wait_for_timeout(3000) + await page.screenshot(path=os.path.join(IMG_DIR, "all-workloads-overview.png")) + + # 8. Login page + print("Capturing: login-page.png") + # Login page is at /login or the auth flow - skip if not accessible + # Keep existing login-page.png as it's a static auth page + + # ─── Guide screenshots ─── + # These show various pages of the app for the docs guides + # Re-capture the main ones that could show cost values + + # Calculator page for various guide screenshots + print("Capturing guide screenshots...") + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(5000) + + # Guide: getting-started + await page.screenshot(path=os.path.join(GUIDES_DIR, "getting-started-page.png")) + + # Guide: overview page + await page.goto(APP_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(3000) + await page.screenshot(path=os.path.join(GUIDES_DIR, "overview-page.png")) + + # Guide: workloads overview + await page.goto(f"{APP_URL}/workloads", wait_until="load", timeout=60000) + await page.wait_for_timeout(3000) + await page.screenshot(path=os.path.join(GUIDES_DIR, "workloads-overview-page.png")) + + # Guide: export guide (estimate page) + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(5000) + await page.screenshot(path=os.path.join(GUIDES_DIR, "export-guide.png")) + + # Guide: AI assistant (with chat panel visible) + await page.screenshot(path=os.path.join(GUIDES_DIR, "ai-assistant-guide.png")) + + # Guide: calculation reference + try: + wl = page.locator('text=JOBS Classic').first + await wl.click(timeout=5000) + await page.wait_for_timeout(2000) + except: + pass + await page.screenshot(path=os.path.join(GUIDES_DIR, "calculation-reference-guide.png")) + + # Guide: calculation worked example + await page.screenshot(path=os.path.join(GUIDES_DIR, "calculation-worked-example.png")) + + # Guide workload-specific screenshots - navigate to estimate and expand different workloads + workload_guides = [ + ("DBSQL", "dbsql-warehouses-guide.png", "dbsql-worked-example.png"), + ("FMAPI", "fmapi-databricks-guide.png", "fmapi-databricks-worked-example.png"), + ("Lakebase", "lakebase-guide.png", "lakebase-worked-example.png"), + ("Model Serving", "model-serving-guide.png", "model-serving-worked-example.png"), + ("Vector Search", "vector-search-guide.png", "vector-search-worked-example.png"), + ] + + for wl_name, guide_file, example_file in workload_guides: + print(f" Capturing: {guide_file}") + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(4000) + try: + wl = page.locator(f'text={wl_name}').first + await wl.click(timeout=5000) + await page.wait_for_timeout(2000) + except Exception as e: + print(f" [skip] Could not find workload '{wl_name}': {e}") + await page.screenshot(path=os.path.join(GUIDES_DIR, guide_file)) + await page.screenshot(path=os.path.join(GUIDES_DIR, example_file)) + + # Guide: FAQ + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(5000) + await page.screenshot(path=os.path.join(GUIDES_DIR, "faq-guide.png")) + await page.screenshot(path=os.path.join(GUIDES_DIR, "faq-workload-table.png")) + + # Guide: FMAPI proprietary + print(" Capturing: fmapi-proprietary screenshots") + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(4000) + try: + wl = page.locator('text=FMAPI').first + await wl.click(timeout=5000) + await page.wait_for_timeout(2000) + except: + pass + await page.screenshot(path=os.path.join(GUIDES_DIR, "fmapi-proprietary-guide.png")) + await page.screenshot(path=os.path.join(GUIDES_DIR, "fmapi-proprietary-worked-example.png")) + + # Guide: Excel export structure + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(5000) + await page.screenshot(path=os.path.join(GUIDES_DIR, "export-excel-structure.png")) + + # Admin guide screenshots - these are docs/architecture pages + # Re-capture from the docs site pages if running, otherwise from app + admin_pages = [ + "admin-api-reference-guide.png", + "admin-architecture-guide.png", + "admin-configuration-guide.png", + "admin-database-guide.png", + "admin-database-schema.png", + "admin-deployment-guide.png", + "admin-permissions-guide.png", + "admin-troubleshooting-guide.png", + ] + # Admin screenshots are typically of the docs site itself, not the app + # They don't show cost values so they won't have overflow issues + # Keep existing ones + + # AI assistant tools screenshot + await page.goto(ESTIMATE_URL, wait_until="load", timeout=60000) + await page.wait_for_timeout(5000) + await page.screenshot(path=os.path.join(GUIDES_DIR, "ai-assistant-tools.png")) + + await browser.close() + print("\nAll screenshots captured!") + + +if __name__ == "__main__": + asyncio.run(capture_all()) diff --git a/lakemeter/docs-site/static/video/cursor.py b/lakemeter/docs-site/static/video/cursor.py new file mode 100644 index 00000000..e0a24fdc --- /dev/null +++ b/lakemeter/docs-site/static/video/cursor.py @@ -0,0 +1,401 @@ +"""Shared cursor injection and mouse movement utilities for Playwright recordings. + +Includes: + - Custom cursor overlay (arrow + click ring) + - Subtitle bar (bottom of viewport) + - Visual dropdown simulation ─── + +async def visual_select(page, select_locator, *, label=None, value=None, index=None, + show_ms=1200, highlight_ms=800): + """Select an option with a visible dropdown overlay for video recording. + + Native + 2. Creates a floating dropdown overlay positioned below the element and show click ring + box = await move_to(page, select_locator, pause=300) + if box: + await fire_ring_at(page, box["x"] + box["width"]/2, box["y"] + box["height"]/2) + + # Build and display the visual overlay + await page.evaluate(""" + (args) => { + const {selectSelector, targetValue, targetLabel, targetIndex} = args; + const sel = document.querySelector(selectSelector) || document.activeElement; + if (!sel || sel.tagName !== 'SELECT') return; + + const rect = sel.getBoundingClientRect(); + const opts = Array.from(sel.options); + + // Create dropdown overlay + const overlay = document.createElement('div'); + overlay.id = 'pw-select-overlay'; + overlay.style.cssText = ` + position: fixed; z-index: 999997; + left: ${rect.left}px; top: ${rect.bottom + 2}px; + width: ${Math.max(rect.width, 220)}px; + max-height: 260px; overflow-y: auto; + background: white; border: 1px solid #d1d5db; + border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.15); + padding: 4px 0; opacity: 0; + transition: opacity 0.15s ease; + `; + + // Determine which option to highlight + let highlightIdx = -1; + if (targetValue !== null) highlightIdx = opts.findIndex(o => o.value === targetValue); + else if (targetLabel !== null) highlightIdx = opts.findIndex(o => o.textContent.trim() === targetLabel); + else if (targetIndex !== null) highlightIdx = targetIndex; + + opts.forEach((opt, i) => { + if (opt.value === '' && opt.textContent.includes('Select')) return; // skip placeholder + const row = document.createElement('div'); + row.style.cssText = ` + padding: 6px 12px; font-size: 13px; cursor: default; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; + color: #1f2937; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; + ${i === highlightIdx ? 'background: #3b82f6; color: white; border-radius: 4px; margin: 0 4px; padding: 6px 8px;' : ''} + `; + row.textContent = opt.textContent; + overlay.appendChild(row); + }); + + document.body.appendChild(overlay); + // Trigger fade-in + requestAnimationFrame(() => { overlay.style.opacity = '1'; }); + } + """, { + "selectSelector": await select_locator.evaluate("el => { const id = el.id; const name = el.name; if (id) return '#'+id; if (name) return 'select[name=\"'+name+'\"]'; return 'select'; }"), + "targetValue": value, + "targetLabel": label, + "targetIndex": index, + }) + + await page.wait_for_timeout(show_ms) + + # Highlight the target option briefly + await page.wait_for_timeout(highlight_ms) + + # Remove overlay with fade-out + await page.evaluate(""" + (() => { + const ol = document.getElementById('pw-select-overlay'); + if (ol) { + ol.style.opacity = '0'; + setTimeout(() => ol.remove(), 200); + } + })() + """) + await page.wait_for_timeout(300) + + # Actually select the option + if label: + await select_locator.select_option(label=label) + elif value: + await select_locator.select_option(value=value) + elif index is not None: + await select_locator.select_option(index=index) + + await page.wait_for_timeout(400) + + +# ─── Custom SearchableSelect interaction ─── + +async def visual_searchable_select(page, trigger_locator, search_text, + option_text=None, pause=500, load_wait=2000): + """Interact with a custom SearchableSelect React component for video recording. + + Custom dropdowns ARE visible in headless Chrome (unlike native